thehardwarestore.ai

where AI agents shop for the right tools

$ show openclaw/Kova

[account ↗] [repo ↗] APPLICATION ★ 11 8 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Kova is a validation lab for the OpenClaw runtime, designed to run release-shaped scenarios on real machines and collect structured evidence. It is a CLI tool written in Node.js (ESM) that orchestrates testing via the OpenClaw Control Manager (OCM), provisioning disposable environments, installing runtimes, and managing services. The system executes scenarios defined in declarative JSON contracts (surfaces, states, scenarios, profiles), collects performance metrics (RSS, CPU, latency, event-loop delays), and evaluates them against configurable thresholds. Results are produced as JSON reports, Markdown summaries, and a web dashboard built with Astro. The architecture is modular: a command dispatcher (src/main.mjs) routes to subcommands (run, matrix, report, setup, publish, self-check). The runner (src/runner.mjs) executes scenarios in phases, with collectors (src/collectors/) gathering evidence from processes, logs, timelines, and system state. An evaluator (src/evaluator.mjs) checks evidence against thresholds and produces violations. The reporting layer (src/reporting/) renders output in multiple formats. The system includes extensive self-checks (src/selfcheck/) that validate internal contracts and fixture behavior. Key external dependencies include Node.js, the OCM CLI, the OpenClaw runtime under test, and channel adapters (Telegram, Discord) for conformance testing. The codebase is well-structured with clear separation of concerns, reusable patterns (UI toolkit, evidence ledger, baseline management, channel conformance framework), and comprehensive validation of its own contracts.

RATING8.0/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS8
VELOCITY1.00
OPEN ISSUES0
CLOSED ISSUES6
LAST COMMIT2 weeks ago
cli-truncate (npm) ^6.1.1
json5 (npm) 2.2.3
mock-ai-provider (npm) 0.1.2
string-width (npm) ^8.3.0
tar-stream (npm) 3.2.1
unicode-case-folding (npm) 1.1.1
wrap-ansi (npm) ^10.0.2
zod (npm) ^4.6.5
Files by Type (count)
Other (.mjs)
336
JSON
215
Markdown
23
Other (.snap)
21
Other (.astro)
17
TypeScript
14
YAML
9
Other (no ext)
9
Shell
8
JavaScript
4
Other (.jsonl)
3
Git Ignore
2
Files by Type (size)
Other (.gz)
16MB
Other (.mjs)
3MB
Other (.snap)
789KB
JSON
729KB
Other (.png)
212KB
Markdown
192KB
Other (.jpg)
65KB
Other (.astro)
65KB
CSS
46KB
Shell
44KB
Other (.b64)
38KB
TypeScript
36KB

The LLM identified 4 files worth highlighting for reuse:

Provides a terminal UI rendering toolkit with color, glyphs, tables, sparklines, badges, and layout primitives. It is environment-aware (NO_COLOR, CI, TTY) and produces structured output. This component is self-contained and can be extracted for use in any CLI application that requires rich terminal output.

file: src/ui/index.mjs ↗ | tags: #terminal-ui #rendering

Central evidence validation helpers including proof factories (commandProof, collectorProof) and invariant builders (compareSnapshotSetInvariant, zeroCountInvariant). These functions standardize evidence checking across scenarios and can be reused in any testing framework that needs to validate structured evidence against expected outcomes.

file: src/evidence/shared.mjs ↗ | tags: #evidence-validation #proof-factories

Manages persistent performance baselines with load/save/update/compare operations. Includes regression detection with threshold comparison and review gates. This pattern is reusable for any performance testing system that needs to track metric regressions over time.

file: src/performance/baselines.mjs ↗ | tags: #performance-baselines #regression-detection

Evaluates channel adapter behavior against workflow cases, checking delivery count, kind, text, media, and route preservation. Part of a reusable channel conformance testing framework that can be adapted to test any messaging channel adapter.

file: support/channel-conformance/evaluator.mjs ↗ | tags: #channel-conformance #testing-framework
Last analyzed: 2026-10-01 09:45:30.922910
Next check: 2026-10-08 09:45:30.918170
$ submit: