agent-nuvira 3.3.3 → 3.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -5
- package/dist/agent-sdk/src/agent.d.ts +2 -0
- package/dist/agent-sdk/src/agent.d.ts.map +1 -1
- package/dist/agent-sdk/src/define.d.ts +64 -0
- package/dist/agent-sdk/src/define.d.ts.map +1 -0
- package/dist/agent-sdk/src/define.js +76 -0
- package/dist/agent-sdk/src/define.js.map +1 -0
- package/dist/agent-sdk/src/index.d.ts +9 -0
- package/dist/agent-sdk/src/index.d.ts.map +1 -1
- package/dist/agent-sdk/src/index.js +9 -0
- package/dist/agent-sdk/src/index.js.map +1 -1
- package/dist/agent-sdk/src/scaffold.d.ts +11 -0
- package/dist/agent-sdk/src/scaffold.d.ts.map +1 -1
- package/dist/agent-sdk/src/scaffold.js +16 -6
- package/dist/agent-sdk/src/scaffold.js.map +1 -1
- package/dist/agents/long-form-plan.d.ts.map +1 -1
- package/dist/agents/long-form-plan.js +2 -1
- package/dist/agents/long-form-plan.js.map +1 -1
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +5 -4
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/cli/agent.d.ts +2 -2
- package/dist/cli/agent.js +10 -10
- package/dist/cli/chat.d.ts +94 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +354 -20
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +5 -0
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +9 -1
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +3 -2
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/edit.js +2 -2
- package/dist/cli/eval.d.ts +17 -0
- package/dist/cli/eval.d.ts.map +1 -1
- package/dist/cli/eval.js +105 -2
- package/dist/cli/eval.js.map +1 -1
- package/dist/cli/execute.d.ts +16 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +192 -22
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/loop-executor.d.ts +55 -0
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +212 -13
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/model.d.ts.map +1 -1
- package/dist/cli/model.js +9 -8
- package/dist/cli/model.js.map +1 -1
- package/dist/cli/models.d.ts +1 -1
- package/dist/cli/models.js +4 -4
- package/dist/cli/parity.d.ts +85 -0
- package/dist/cli/parity.d.ts.map +1 -0
- package/dist/cli/parity.js +506 -0
- package/dist/cli/parity.js.map +1 -0
- package/dist/cli/plan.d.ts.map +1 -1
- package/dist/cli/plan.js +2 -1
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/retrieval.d.ts.map +1 -1
- package/dist/cli/retrieval.js +5 -4
- package/dist/cli/retrieval.js.map +1 -1
- package/dist/cli/sdk.js +4 -4
- package/dist/cli/sdk.js.map +1 -1
- package/dist/cli/trace.d.ts.map +1 -1
- package/dist/cli/trace.js +2 -1
- package/dist/cli/trace.js.map +1 -1
- package/dist/cli/workflow.js +2 -2
- package/dist/cli/workflow.js.map +1 -1
- package/dist/config/types.d.ts +44 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/findings/verdicts.d.ts +241 -0
- package/dist/findings/verdicts.d.ts.map +1 -0
- package/dist/findings/verdicts.js +284 -0
- package/dist/findings/verdicts.js.map +1 -0
- package/dist/gateway/adapters.d.ts +65 -0
- package/dist/gateway/adapters.d.ts.map +1 -1
- package/dist/gateway/adapters.js +216 -10
- package/dist/gateway/adapters.js.map +1 -1
- package/dist/gateway/channel-directory.d.ts +31 -0
- package/dist/gateway/channel-directory.d.ts.map +1 -1
- package/dist/gateway/channel-directory.js +40 -0
- package/dist/gateway/channel-directory.js.map +1 -1
- package/dist/gateway/gateway-log.d.ts +1 -1
- package/dist/gateway/gateway-log.d.ts.map +1 -1
- package/dist/gateway/gateway-log.js.map +1 -1
- package/dist/gateway/hooks.d.ts +87 -19
- package/dist/gateway/hooks.d.ts.map +1 -1
- package/dist/gateway/hooks.js +62 -23
- package/dist/gateway/hooks.js.map +1 -1
- package/dist/gateway/inbound-media.d.ts +147 -0
- package/dist/gateway/inbound-media.d.ts.map +1 -0
- package/dist/gateway/inbound-media.js +317 -0
- package/dist/gateway/inbound-media.js.map +1 -0
- package/dist/gateway/inbox.d.ts +8 -1
- package/dist/gateway/inbox.d.ts.map +1 -1
- package/dist/gateway/inbox.js.map +1 -1
- package/dist/gateway/platform-config.d.ts +14 -0
- package/dist/gateway/platform-config.d.ts.map +1 -1
- package/dist/gateway/platform-config.js +26 -8
- package/dist/gateway/platform-config.js.map +1 -1
- package/dist/gateway/realtime.d.ts +114 -0
- package/dist/gateway/realtime.d.ts.map +1 -0
- package/dist/gateway/realtime.js +402 -0
- package/dist/gateway/realtime.js.map +1 -0
- package/dist/gateway/registry.d.ts +31 -0
- package/dist/gateway/registry.d.ts.map +1 -1
- package/dist/gateway/registry.js +224 -4
- package/dist/gateway/registry.js.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.js +123 -4
- package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
- package/dist/gateway/whatsapp/bridge.d.ts +6 -2
- package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/bridge.js.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/inference/factory.d.ts +14 -0
- package/dist/inference/factory.d.ts.map +1 -1
- package/dist/inference/factory.js +17 -0
- package/dist/inference/factory.js.map +1 -1
- package/dist/inference/groq-adapter.d.ts +2 -0
- package/dist/inference/groq-adapter.d.ts.map +1 -1
- package/dist/inference/groq-adapter.js +16 -6
- package/dist/inference/groq-adapter.js.map +1 -1
- package/dist/inference/tools.d.ts.map +1 -1
- package/dist/inference/tools.js +29 -0
- package/dist/inference/tools.js.map +1 -1
- package/dist/learning/benchmark.d.ts.map +1 -1
- package/dist/learning/benchmark.js +3 -2
- package/dist/learning/benchmark.js.map +1 -1
- package/dist/learning/continuation.d.ts.map +1 -1
- package/dist/learning/continuation.js +2 -1
- package/dist/learning/continuation.js.map +1 -1
- package/dist/learning/cost-tracker.d.ts.map +1 -1
- package/dist/learning/cost-tracker.js +2 -1
- package/dist/learning/cost-tracker.js.map +1 -1
- package/dist/learning/deferred-task.d.ts.map +1 -1
- package/dist/learning/deferred-task.js +13 -4
- package/dist/learning/deferred-task.js.map +1 -1
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +2 -1
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/long-form.d.ts.map +1 -1
- package/dist/learning/long-form.js +2 -1
- package/dist/learning/long-form.js.map +1 -1
- package/dist/learning/model-registry.d.ts.map +1 -1
- package/dist/learning/model-registry.js +2 -1
- package/dist/learning/model-registry.js.map +1 -1
- package/dist/learning/reasoning-cache.d.ts.map +1 -1
- package/dist/learning/reasoning-cache.js +2 -1
- package/dist/learning/reasoning-cache.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +37 -1
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +66 -0
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +2 -1
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/retrieval.d.ts.map +1 -1
- package/dist/learning/retrieval.js +2 -1
- package/dist/learning/retrieval.js.map +1 -1
- package/dist/learning/seeded-benchmark.d.ts +160 -0
- package/dist/learning/seeded-benchmark.d.ts.map +1 -0
- package/dist/learning/seeded-benchmark.js +321 -0
- package/dist/learning/seeded-benchmark.js.map +1 -0
- package/dist/learning/seeded-bugs.d.ts +142 -0
- package/dist/learning/seeded-bugs.d.ts.map +1 -0
- package/dist/learning/seeded-bugs.js +535 -0
- package/dist/learning/seeded-bugs.js.map +1 -0
- package/dist/learning/step-checkpoint.d.ts +127 -0
- package/dist/learning/step-checkpoint.d.ts.map +1 -0
- package/dist/learning/step-checkpoint.js +244 -0
- package/dist/learning/step-checkpoint.js.map +1 -0
- package/dist/nlu/intent-confirm.d.ts +23 -1
- package/dist/nlu/intent-confirm.d.ts.map +1 -1
- package/dist/nlu/intent-confirm.js +85 -2
- package/dist/nlu/intent-confirm.js.map +1 -1
- package/dist/nlu/learnings.d.ts +7 -0
- package/dist/nlu/learnings.d.ts.map +1 -1
- package/dist/nlu/learnings.js +7 -0
- package/dist/nlu/learnings.js.map +1 -1
- package/dist/observability/debug-log.d.ts +250 -0
- package/dist/observability/debug-log.d.ts.map +1 -0
- package/dist/observability/debug-log.js +500 -0
- package/dist/observability/debug-log.js.map +1 -0
- package/dist/observability/event-bus.d.ts.map +1 -1
- package/dist/observability/event-bus.js +4 -1
- package/dist/observability/event-bus.js.map +1 -1
- package/dist/observability/otel.d.ts +278 -0
- package/dist/observability/otel.d.ts.map +1 -0
- package/dist/observability/otel.js +590 -0
- package/dist/observability/otel.js.map +1 -0
- package/dist/parity/drivers.d.ts +99 -0
- package/dist/parity/drivers.d.ts.map +1 -0
- package/dist/parity/drivers.js +1362 -0
- package/dist/parity/drivers.js.map +1 -0
- package/dist/parity/graph.d.ts +73 -0
- package/dist/parity/graph.d.ts.map +1 -0
- package/dist/parity/graph.js +162 -0
- package/dist/parity/graph.js.map +1 -0
- package/dist/parity/matrix.d.ts +105 -0
- package/dist/parity/matrix.d.ts.map +1 -0
- package/dist/parity/matrix.js +352 -0
- package/dist/parity/matrix.js.map +1 -0
- package/dist/parity/observation.d.ts +444 -0
- package/dist/parity/observation.d.ts.map +1 -0
- package/dist/parity/observation.js +333 -0
- package/dist/parity/observation.js.map +1 -0
- package/dist/parity/scenarios.d.ts +229 -0
- package/dist/parity/scenarios.d.ts.map +1 -0
- package/dist/parity/scenarios.js +175 -0
- package/dist/parity/scenarios.js.map +1 -0
- package/dist/parity/surfaces.d.ts +122 -0
- package/dist/parity/surfaces.d.ts.map +1 -0
- package/dist/parity/surfaces.js +190 -0
- package/dist/parity/surfaces.js.map +1 -0
- package/dist/runtime/fault-injection.d.ts +173 -0
- package/dist/runtime/fault-injection.d.ts.map +1 -0
- package/dist/runtime/fault-injection.js +281 -0
- package/dist/runtime/fault-injection.js.map +1 -0
- package/dist/tools/child-agent-entry.d.ts +23 -0
- package/dist/tools/child-agent-entry.d.ts.map +1 -0
- package/dist/tools/child-agent-entry.js +129 -0
- package/dist/tools/child-agent-entry.js.map +1 -0
- package/dist/tools/child-agent-runtime.d.ts +124 -0
- package/dist/tools/child-agent-runtime.d.ts.map +1 -0
- package/dist/tools/child-agent-runtime.js +704 -0
- package/dist/tools/child-agent-runtime.js.map +1 -0
- package/dist/tools/coding-tools.d.ts.map +1 -1
- package/dist/tools/coding-tools.js +82 -10
- package/dist/tools/coding-tools.js.map +1 -1
- package/dist/tools/delegation-system.d.ts +31 -0
- package/dist/tools/delegation-system.d.ts.map +1 -1
- package/dist/tools/delegation-system.js +70 -9
- package/dist/tools/delegation-system.js.map +1 -1
- package/dist/tools/extract/docx.d.ts +27 -0
- package/dist/tools/extract/docx.d.ts.map +1 -0
- package/dist/tools/extract/docx.js +48 -0
- package/dist/tools/extract/docx.js.map +1 -0
- package/dist/tools/extract/html-text.d.ts +27 -0
- package/dist/tools/extract/html-text.d.ts.map +1 -0
- package/dist/tools/extract/html-text.js +86 -0
- package/dist/tools/extract/html-text.js.map +1 -0
- package/dist/tools/extract/pdf-ocr.d.ts +58 -0
- package/dist/tools/extract/pdf-ocr.d.ts.map +1 -0
- package/dist/tools/extract/pdf-ocr.js +116 -0
- package/dist/tools/extract/pdf-ocr.js.map +1 -0
- package/dist/tools/extract/pdf.d.ts +65 -0
- package/dist/tools/extract/pdf.d.ts.map +1 -0
- package/dist/tools/extract/pdf.js +197 -0
- package/dist/tools/extract/pdf.js.map +1 -0
- package/dist/tools/extract/pptx.d.ts +32 -0
- package/dist/tools/extract/pptx.d.ts.map +1 -0
- package/dist/tools/extract/pptx.js +77 -0
- package/dist/tools/extract/pptx.js.map +1 -0
- package/dist/tools/extract/xlsx.d.ts +47 -0
- package/dist/tools/extract/xlsx.d.ts.map +1 -0
- package/dist/tools/extract/xlsx.js +111 -0
- package/dist/tools/extract/xlsx.js.map +1 -0
- package/dist/tools/finding-tool.d.ts +76 -0
- package/dist/tools/finding-tool.d.ts.map +1 -0
- package/dist/tools/finding-tool.js +125 -0
- package/dist/tools/finding-tool.js.map +1 -0
- package/dist/tools/messaging-tools.d.ts +41 -11
- package/dist/tools/messaging-tools.d.ts.map +1 -1
- package/dist/tools/messaging-tools.js +104 -55
- package/dist/tools/messaging-tools.js.map +1 -1
- package/dist/tools/neutts-synth.d.ts +27 -3
- package/dist/tools/neutts-synth.d.ts.map +1 -1
- package/dist/tools/neutts-synth.js +57 -13
- package/dist/tools/neutts-synth.js.map +1 -1
- package/dist/tools/pipeline-tool.d.ts +43 -1
- package/dist/tools/pipeline-tool.d.ts.map +1 -1
- package/dist/tools/pipeline-tool.js +13 -2
- package/dist/tools/pipeline-tool.js.map +1 -1
- package/dist/tools/read-extract.d.ts +116 -45
- package/dist/tools/read-extract.d.ts.map +1 -1
- package/dist/tools/read-extract.js +494 -158
- package/dist/tools/read-extract.js.map +1 -1
- package/dist/tools/registry.d.ts +2 -2
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +152 -23
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/subagent-refusal.d.ts +15 -0
- package/dist/tools/subagent-refusal.d.ts.map +1 -0
- package/dist/tools/subagent-refusal.js +18 -0
- package/dist/tools/subagent-refusal.js.map +1 -0
- package/dist/tools/subagent-spawner.d.ts +122 -0
- package/dist/tools/subagent-spawner.d.ts.map +1 -1
- package/dist/tools/subagent-spawner.js +249 -28
- package/dist/tools/subagent-spawner.js.map +1 -1
- package/dist/tools/tool-hooks.d.ts +177 -0
- package/dist/tools/tool-hooks.d.ts.map +1 -0
- package/dist/tools/tool-hooks.js +427 -0
- package/dist/tools/tool-hooks.js.map +1 -0
- package/dist/tools/tool-loop.d.ts +82 -0
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +167 -9
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/tool-refusal.d.ts +68 -0
- package/dist/tools/tool-refusal.d.ts.map +1 -0
- package/dist/tools/tool-refusal.js +78 -0
- package/dist/tools/tool-refusal.js.map +1 -0
- package/dist/tools/toolsets.d.ts +8 -0
- package/dist/tools/toolsets.d.ts.map +1 -1
- package/dist/tools/toolsets.js +12 -2
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/tools/vision-tools.d.ts +88 -83
- package/dist/tools/vision-tools.d.ts.map +1 -1
- package/dist/tools/vision-tools.js +134 -103
- package/dist/tools/vision-tools.js.map +1 -1
- package/dist/tools/worktree.d.ts +210 -0
- package/dist/tools/worktree.d.ts.map +1 -0
- package/dist/tools/worktree.js +374 -0
- package/dist/tools/worktree.js.map +1 -0
- package/dist/utils/format.d.ts +3 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +32 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/web-dashboard/attachment-extract.d.ts +64 -0
- package/dist/web-dashboard/attachment-extract.d.ts.map +1 -0
- package/dist/web-dashboard/attachment-extract.js +154 -0
- package/dist/web-dashboard/attachment-extract.js.map +1 -0
- package/dist/web-dashboard/chat-console.d.ts +108 -1
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +36 -0
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/hub-data.d.ts +37 -0
- package/dist/web-dashboard/hub-data.d.ts.map +1 -1
- package/dist/web-dashboard/hub-data.js +61 -1
- package/dist/web-dashboard/hub-data.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +14 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +247 -13
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +196 -48
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +18 -3
- package/src/web-dashboard/public/assets/{index-Cyd6tIew.css → index-XJjj2cBX.css} +1 -1
- package/src/web-dashboard/public/assets/index-YWF9FpwQ.js +207 -0
- package/src/web-dashboard/public/assets/index-YWF9FpwQ.js.map +1 -0
- package/src/web-dashboard/public/index.html +2 -2
- package/dist/tools/child-agent-worker.js +0 -212
- package/src/web-dashboard/public/assets/index-CxDj7p6i.js +0 -207
- package/src/web-dashboard/public/assets/index-CxDj7p6i.js.map +0 -1
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nuvira parity` — run the surface-parity harness from the CLI.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. WS0 (#22) built the harness as a test suite: the registry,
|
|
5
|
+
* the import-graph ratchet and the capability matrix are pure modules in
|
|
6
|
+
* `src/parity/`, and the drivers that actually run a turn used to live in
|
|
7
|
+
* `tests/parity/` behind `vi.spyOn`. That left "is every surface at par?" as a
|
|
8
|
+
* question only CI could answer. This command makes the same facts — and the
|
|
9
|
+
* same run — available from a terminal, a script or a CI step, which is what
|
|
10
|
+
* the harness was for.
|
|
11
|
+
*
|
|
12
|
+
* FOUR SUBCOMMANDS, in the order a reader wants them:
|
|
13
|
+
*
|
|
14
|
+
* nuvira parity surfaces what the registry declares vs what the imports reach
|
|
15
|
+
* nuvira parity debt the anti-silo ratchet (observed == declared, exit 1 on drift)
|
|
16
|
+
* nuvira parity matrix every capability × surface, and any unproven claim
|
|
17
|
+
* nuvira parity run DRIVE all five surfaces through the real harness
|
|
18
|
+
*
|
|
19
|
+
* `surfaces`/`debt`/`matrix` read the real import graph (`src/parity/graph.ts`),
|
|
20
|
+
* so they need the repository SOURCES — they say so and fail honestly when run
|
|
21
|
+
* against an installed package (the alternative is a classifier that finds
|
|
22
|
+
* nothing and reports a clean bill of health, which is how a check stops
|
|
23
|
+
* checking). `run` drives the built surfaces and works from either.
|
|
24
|
+
*
|
|
25
|
+
* Exit codes are the point: each subcommand sets `process.exitCode = 1` on a
|
|
26
|
+
* real failure, so `nuvira parity debt` is usable as a gate.
|
|
27
|
+
*/
|
|
28
|
+
import { existsSync } from 'node:fs';
|
|
29
|
+
import { dirname, join, resolve } from 'node:path';
|
|
30
|
+
import { fileURLToPath } from 'node:url';
|
|
31
|
+
import { Command } from 'commander';
|
|
32
|
+
import { BaseCommand } from './commands.js';
|
|
33
|
+
import { logger } from '../utils/logger.js';
|
|
34
|
+
import { SURFACES, SURFACE_DEBT, TURN_ENTRIES } from '../parity/surfaces.js';
|
|
35
|
+
import { classifyAllSurfaces, declaredSurfaceDebt, observedSurfaceDebt } from '../parity/graph.js';
|
|
36
|
+
import { CAPABILITIES, UNVERIFIED_SUPPORTED, WORKSTREAM_ISSUES, cellKey, matrixCells, } from '../parity/matrix.js';
|
|
37
|
+
import { reportParityFailure } from '../parity/observation.js';
|
|
38
|
+
import { runParityScenario } from '../parity/scenarios.js';
|
|
39
|
+
// WS6 (#28) — the fault protocol, for the `faults` listing.
|
|
40
|
+
import { describeFaultProtocol } from '../runtime/fault-injection.js';
|
|
41
|
+
/**
|
|
42
|
+
* The repository root, derived from this module's own location.
|
|
43
|
+
*
|
|
44
|
+
* `dist/cli/parity.js` → `../..` is the repo root, and `src/cli/parity.ts` (the
|
|
45
|
+
* test/source run) resolves to the same place — so the graph checks read the
|
|
46
|
+
* REAL sources whether the command runs from `dist` or from source.
|
|
47
|
+
*/
|
|
48
|
+
const REPO_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
49
|
+
/** The source marker every import-graph check needs. */
|
|
50
|
+
function hasSources(root) {
|
|
51
|
+
return existsSync(join(root, 'src', 'cli', 'chat.ts'));
|
|
52
|
+
}
|
|
53
|
+
const NO_SOURCES = (root) => ({
|
|
54
|
+
ok: false,
|
|
55
|
+
lines: [
|
|
56
|
+
`✗ cannot find the repository sources under ${root}.`,
|
|
57
|
+
' The registry/graph checks read `src/` directly, so they only run from a',
|
|
58
|
+
' source checkout — run `nuvira parity run` for the driven comparison instead.',
|
|
59
|
+
],
|
|
60
|
+
});
|
|
61
|
+
/**
|
|
62
|
+
* The registry versus the real import graph: for each surface, the turn entries
|
|
63
|
+
* it DECLARES against the ones its own modules actually reach. A mismatch here
|
|
64
|
+
* is the drift the registry exists to catch — the same class of bug as the
|
|
65
|
+
* hand-maintained dashboard bundle that silently missed a whole tab.
|
|
66
|
+
*/
|
|
67
|
+
export function surfaceReachCheck(root = REPO_ROOT) {
|
|
68
|
+
if (!hasSources(root))
|
|
69
|
+
return NO_SOURCES(root);
|
|
70
|
+
const reaches = new Map(classifyAllSurfaces(root).map((r) => [r.surface, r]));
|
|
71
|
+
const lines = ['Surface registry vs the real import graph:'];
|
|
72
|
+
let ok = true;
|
|
73
|
+
for (const surface of SURFACES) {
|
|
74
|
+
const reach = reaches.get(surface.id);
|
|
75
|
+
const declared = [...surface.turnEntries].sort();
|
|
76
|
+
const observed = reach ? reach.entries : [];
|
|
77
|
+
const agrees = JSON.stringify(declared) === JSON.stringify(observed);
|
|
78
|
+
if (!agrees)
|
|
79
|
+
ok = false;
|
|
80
|
+
lines.push(` ${agrees ? '✅' : '✗ '} ${surface.id.padEnd(15)} engines=[${surface.engines.join(', ')}] entries=[${declared.join(', ')}]` +
|
|
81
|
+
(agrees ? '' : ` ← observed [${observed.join(', ')}]`));
|
|
82
|
+
if (reach) {
|
|
83
|
+
if (reach.providerFactory.length > 0) {
|
|
84
|
+
ok = false;
|
|
85
|
+
lines.push(` ✗ builds its own provider: ${reach.providerFactory.join(', ')}`);
|
|
86
|
+
}
|
|
87
|
+
if (reach.pipelineWrapperBypass.length > 0) {
|
|
88
|
+
ok = false;
|
|
89
|
+
lines.push(` ✗ drives the pipeline without the wrapper: ${reach.pipelineWrapperBypass.join(', ')}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
lines.push('', ok ? '✓ every surface matches its declaration.' : '✗ the registry drifted from the code.');
|
|
94
|
+
return { ok, lines };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The anti-silo ratchet. The set of surfaces that build their own provider or
|
|
98
|
+
* bypass the pipeline wrapper must EQUAL the frozen debt list, in both
|
|
99
|
+
* directions: growth means a new silo appeared, and a stale entry means one was
|
|
100
|
+
* fixed and the list still claims it — which would let the next real bypass hide.
|
|
101
|
+
*/
|
|
102
|
+
export function surfaceDebtCheck(root = REPO_ROOT) {
|
|
103
|
+
if (!hasSources(root))
|
|
104
|
+
return NO_SOURCES(root);
|
|
105
|
+
const observed = observedSurfaceDebt(root);
|
|
106
|
+
const declared = declaredSurfaceDebt();
|
|
107
|
+
const lines = ['Surface debt ratchet (observed must equal declared):'];
|
|
108
|
+
let ok = true;
|
|
109
|
+
const kinds = [...new Set([...Object.keys(observed), ...Object.keys(declared)])].sort();
|
|
110
|
+
for (const kind of kinds) {
|
|
111
|
+
const observedModules = observed[kind] ?? [];
|
|
112
|
+
const declaredModules = declared[kind] ?? [];
|
|
113
|
+
const agrees = JSON.stringify(observedModules) === JSON.stringify(declaredModules);
|
|
114
|
+
if (!agrees)
|
|
115
|
+
ok = false;
|
|
116
|
+
const frozen = SURFACE_DEBT[kind];
|
|
117
|
+
lines.push(` ${agrees ? '✅' : '✗ '} ${kind}: ${observedModules.length} observed, ${declaredModules.length} declared` +
|
|
118
|
+
(frozen === undefined ? ' ← the rule is no longer declared (frozen list missing)' : ''));
|
|
119
|
+
if (!agrees) {
|
|
120
|
+
lines.push(` observed: [${observedModules.join(', ')}]`);
|
|
121
|
+
lines.push(` declared: [${declaredModules.join(', ')}]`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
lines.push('', ok ? '✓ the debt ratchet holds — no new silo, no stale entry.' : '✗ surface debt drifted.');
|
|
125
|
+
return { ok, lines };
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The capability matrix. Statuses are what we BELIEVE; the unverified list is
|
|
129
|
+
* what the harness does not yet PROVE. The check asserts the invariant the CLI
|
|
130
|
+
* can see on its own: every cell on the frozen debt list is a `supported` cell
|
|
131
|
+
* with a reason (a cell that needs proof but carries no explanation is the debt
|
|
132
|
+
* nobody can act on), and every `scoped` cell says why it differs.
|
|
133
|
+
*/
|
|
134
|
+
export function capabilityMatrixCheck() {
|
|
135
|
+
const lines = ['Capability matrix (status is belief; the debt list is what is unproven):'];
|
|
136
|
+
let ok = true;
|
|
137
|
+
for (const capability of CAPABILITIES) {
|
|
138
|
+
const statuses = SURFACES.map((s) => `${s.id}=${capability.cells[s.id].status}`);
|
|
139
|
+
const issue = WORKSTREAM_ISSUES[capability.workstream];
|
|
140
|
+
const owner = capability.workstream === 'existing' ? 'existing' : `${capability.workstream}${issue ? ` (#${issue})` : ''}`;
|
|
141
|
+
lines.push(` ${capability.id.padEnd(20)} ${owner.padEnd(12)} ${statuses.join(' ')}`);
|
|
142
|
+
}
|
|
143
|
+
if (UNVERIFIED_SUPPORTED.length === 0) {
|
|
144
|
+
lines.push(' ✅ unverified supported claims: none — every `supported` cell is proven by the parity suite.');
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
lines.push(` ⚠ unverified supported claims (${UNVERIFIED_SUPPORTED.length}):`);
|
|
148
|
+
const byKey = new Map(matrixCells().map((c) => [cellKey(c.capability, c.surface), c.cell]));
|
|
149
|
+
for (const key of [...UNVERIFIED_SUPPORTED].sort()) {
|
|
150
|
+
const cell = byKey.get(key);
|
|
151
|
+
const note = cell?.note?.trim();
|
|
152
|
+
if (cell?.status !== 'supported' || !note) {
|
|
153
|
+
ok = false;
|
|
154
|
+
lines.push(` ✗ ${key} — on the debt list but not a supported cell with a reason`);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
lines.push(` • ${key} — ${note}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
for (const entry of matrixCells()) {
|
|
162
|
+
if (entry.cell.status !== 'scoped')
|
|
163
|
+
continue;
|
|
164
|
+
if (!entry.cell.note?.trim()) {
|
|
165
|
+
ok = false;
|
|
166
|
+
lines.push(` ✗ ${cellKey(entry.capability, entry.surface)} is scoped with no note`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return { ok, lines };
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* The scenarios `nuvira parity run` drives on every surface. Kept small and
|
|
173
|
+
* deterministic: a plain completion (does the turn and its attribution agree),
|
|
174
|
+
* a tool call that WORKS, a tool call that FAILS, and the WS1 finding pair — a
|
|
175
|
+
* claim with evidence (promoted to CONFIRMED) and a claim without (the gate
|
|
176
|
+
* refuses the promotion, so every surface must report PLAUSIBLE).
|
|
177
|
+
*
|
|
178
|
+
* The failing case is not a corner. Two surfaces can agree that a tool ran and
|
|
179
|
+
* disagree about whether it worked, and an outcome that is merely ABSENT is not
|
|
180
|
+
* a failure either — `compare` (`src/parity/observation.ts`) treats "no outcome"
|
|
181
|
+
* as equal to "no outcome", so five surfaces that all stopped reporting `ok`
|
|
182
|
+
* would still read as at-par. The test suite pins each of these scenarios by id
|
|
183
|
+
* so the CLI and the suite prove the same thing.
|
|
184
|
+
*/
|
|
185
|
+
export const PARITY_SCENARIOS = [
|
|
186
|
+
{
|
|
187
|
+
id: 'plain-completion',
|
|
188
|
+
message: 'reply with the single word: parity',
|
|
189
|
+
answer: 'Answered.',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
id: 'single-tool-call',
|
|
193
|
+
message: 'list the working directory, then answer',
|
|
194
|
+
toolCall: { tool: 'list_dir', args: { path: '.' } },
|
|
195
|
+
answer: 'Listed.',
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
id: 'failing-tool-call',
|
|
199
|
+
message: 'run a command that fails, then answer',
|
|
200
|
+
// Deterministic by construction, not by luck. The loop's own rule is that a
|
|
201
|
+
// tool result starting with `Error:` is a failure (`tools/tool-loop.ts:1526`,
|
|
202
|
+
// and the child's copy at `tools/child-agent-runtime.ts:405`), and
|
|
203
|
+
// `run_terminal` prefixes exactly that on a non-zero exit
|
|
204
|
+
// (`tools/run-terminal.ts:457`). `node --check` on a missing file is a
|
|
205
|
+
// VERIFY-class command (`tools/run-terminal.ts:95`), so it runs without a
|
|
206
|
+
// confirmation prompt and exits non-zero.
|
|
207
|
+
toolCall: {
|
|
208
|
+
tool: 'run_terminal',
|
|
209
|
+
args: { command: 'node --check no-such-file-parity-probe.js' },
|
|
210
|
+
},
|
|
211
|
+
answer: 'Command failed.',
|
|
212
|
+
// WS4 (#26) — a hook on the FAILING path, on every surface: the claim is a
|
|
213
|
+
// triple (before/after/failed) and exactly one of the last two fires, so a
|
|
214
|
+
// scenario that only ever succeeds could not tell `failed` from dead code.
|
|
215
|
+
// `after` is declared too, and asserting its ABSENCE is the other half: a
|
|
216
|
+
// hook that counts failures must not be told about a success, and vice versa.
|
|
217
|
+
hooks: { phases: ['before', 'after', 'failed'] },
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
id: 'finding-confirmed',
|
|
221
|
+
message: 'record what you checked as a finding, then answer',
|
|
222
|
+
// WS1 (#23) — a finding the turn recorded, on every surface. The stub asks
|
|
223
|
+
// for the `finding` tool WITH a usable evidence reference, so the gate
|
|
224
|
+
// promotes it: the case proves the surface carries the verdict AND the
|
|
225
|
+
// evidence behind it, not merely that a tool ran.
|
|
226
|
+
toolCall: {
|
|
227
|
+
tool: 'finding',
|
|
228
|
+
args: {
|
|
229
|
+
claim: 'the parity harness can drive every surface',
|
|
230
|
+
outcome: 'checked by running the harness',
|
|
231
|
+
evidence: [
|
|
232
|
+
{ kind: 'observation', ref: 'all five surfaces reported the same verdict' },
|
|
233
|
+
],
|
|
234
|
+
},
|
|
235
|
+
},
|
|
236
|
+
answer: 'Recorded.',
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
id: 'finding-refused',
|
|
240
|
+
message: 'record a finding you have not checked, then answer',
|
|
241
|
+
// The GATE, proved on every surface: the same tool with a blank evidence
|
|
242
|
+
// reference. `confirmFinding` refuses the promotion, so the verdict stays
|
|
243
|
+
// PLAUSIBLE and the outcome names the refusal. Asserting the PLAUSIBLE
|
|
244
|
+
// verdict (rather than only that the surfaces agree) is what makes this
|
|
245
|
+
// evidence that no surface can be handed a CONFIRMED verdict it did not earn.
|
|
246
|
+
toolCall: {
|
|
247
|
+
tool: 'finding',
|
|
248
|
+
args: {
|
|
249
|
+
claim: 'this claim was never checked',
|
|
250
|
+
outcome: 'reported as a guess',
|
|
251
|
+
evidence: [{ kind: 'file', ref: ' ' }],
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
answer: 'Recorded as a guess.',
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
id: 'failing-read',
|
|
258
|
+
message: 'open a file that does not exist, then answer',
|
|
259
|
+
// The regression guard for a REAL false-success defect, measured by this
|
|
260
|
+
// harness: `read_file` on a missing path returned a message with no `Error:`
|
|
261
|
+
// prefix, and the loop's accounting is `ok: !startsWith('Error:')`
|
|
262
|
+
// (`tools/tool-loop.ts:1526`), so a read that never happened was reported as a
|
|
263
|
+
// successful call on all five surfaces. `read_file` is the smallest
|
|
264
|
+
// reproducing case of that family — `list_dir` and `edit_file` had it too, and
|
|
265
|
+
// all three now report the failure (`tools/coding-tools.ts`).
|
|
266
|
+
toolCall: { tool: 'read_file', args: { path: 'no-such-file-parity-probe.ts' } },
|
|
267
|
+
answer: 'Read failed.',
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
id: 'otel-export',
|
|
271
|
+
message: 'list the working directory, then answer',
|
|
272
|
+
// WS3 (#25) — the turn's span tree, on every surface. A TOOL call is part of
|
|
273
|
+
// the scenario on purpose: the claim is a tree (`nuvira.turn` with one
|
|
274
|
+
// `nuvira.tool.<name>` child per call that actually ran), so a scenario with
|
|
275
|
+
// no tool would prove the root and say nothing about the nesting. The case
|
|
276
|
+
// reads what a real loopback collector received, so the assertion is on the
|
|
277
|
+
// wire — the resource attributes, the trace id and the parent edges — rather
|
|
278
|
+
// than on an exporter that was merely asked to send something.
|
|
279
|
+
toolCall: { tool: 'list_dir', args: { path: '.' } },
|
|
280
|
+
answer: 'Listed.',
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
id: 'tool-hooks',
|
|
284
|
+
message: 'list the working directory, then answer',
|
|
285
|
+
// WS4 (#26) — the operator's hooks, on every surface. The scenario is an
|
|
286
|
+
// ordinary successful tool call with a hook DECLARED for it, so what it
|
|
287
|
+
// measures is the hook plumbing rather than the call: the declared command is
|
|
288
|
+
// run with the call as JSON on stdin, once for `before` and once for `after`,
|
|
289
|
+
// and it is told WHICH surface called. The command is a real process (the
|
|
290
|
+
// harness writes it), so the assertion is on what an operator's own script
|
|
291
|
+
// received, not on a spy inside the loop.
|
|
292
|
+
toolCall: { tool: 'list_dir', args: { path: '.' } },
|
|
293
|
+
answer: 'Listed.',
|
|
294
|
+
hooks: { phases: ['before', 'after'] },
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
id: 'tool-hook-veto',
|
|
298
|
+
message: 'list the working directory, then answer',
|
|
299
|
+
// WS4 (#26) — the VETO, which is the half of the capability that changes what
|
|
300
|
+
// happens rather than recording it. The hook denies `list_dir`, a tool that
|
|
301
|
+
// otherwise SUCCEEDS here (`tool-hooks` above proves that), so a surface that
|
|
302
|
+
// ignored the decision cannot hide: the call would report success. Read
|
|
303
|
+
// together, the pair is the differential — same scenario, same tool, the
|
|
304
|
+
// only difference being what the operator declared.
|
|
305
|
+
toolCall: { tool: 'list_dir', args: { path: '.' } },
|
|
306
|
+
answer: 'Listed.',
|
|
307
|
+
hooks: { phases: ['before', 'failed'], deny: ['list_dir'] },
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
id: 'isolation-worktree',
|
|
311
|
+
message: 'write a marker file in an isolated copy, then answer',
|
|
312
|
+
// WS5 (#27) — an ISOLATED turn, on every surface: the turn runs in its own git
|
|
313
|
+
// worktree of the project and reports the diff against the commit it started
|
|
314
|
+
// from. The scenario CREATES A FILE, because the claim is a diff — a read-only
|
|
315
|
+
// turn would isolate nothing and prove the plumbing without ever exercising the
|
|
316
|
+
// measurement.
|
|
317
|
+
//
|
|
318
|
+
// THE WRITE GOES THROUGH `run_terminal`, and that is a deliberate, measured
|
|
319
|
+
// choice rather than convenience. `write_file` is one of `MUTATION_TOOLS`
|
|
320
|
+
// (`tools/edit-verification.ts`), so every surface that writes one spends a
|
|
321
|
+
// bounded VERIFICATION NUDGE — an extra model call. When this row was written a
|
|
322
|
+
// forked child's loop had no such gate, so a `write_file` scenario would have
|
|
323
|
+
// measured THAT difference (`modelCalls` would have differed by one on four of
|
|
324
|
+
// the five surfaces) instead of WHERE a turn works and WHAT it changed; the
|
|
325
|
+
// divergence is recorded in `TOOL_TRUTHFULNESS_TRACKER.md`, and the child's loop
|
|
326
|
+
// now applies the same gate, so the two would agree today. The row still makes
|
|
327
|
+
// its mutation the way a NON-`write_file` tool makes one, keeping it about
|
|
328
|
+
// isolation. `confirm: true` states the write is authorized (the command
|
|
329
|
+
// classifies as `confirm`, not `verify`), so the tool runs instead of asking.
|
|
330
|
+
toolCall: {
|
|
331
|
+
tool: 'run_terminal',
|
|
332
|
+
args: {
|
|
333
|
+
command: `node -e "require('fs').writeFileSync('parity-isolated.txt','created inside an isolated worktree\\n')"`,
|
|
334
|
+
confirm: true,
|
|
335
|
+
},
|
|
336
|
+
},
|
|
337
|
+
answer: 'Isolated.',
|
|
338
|
+
isolation: true,
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
id: 'fault-provider-error',
|
|
342
|
+
message: 'list the working directory, then answer',
|
|
343
|
+
// WS6 (#28) — a PROVIDER fault, served on the wire by the harness's own stub:
|
|
344
|
+
// every completion answers HTTP 500 for the whole turn. The real adapter's
|
|
345
|
+
// error mapping is therefore what runs, and the model call still happens (so
|
|
346
|
+
// the harness's "the turn must have reached a model" rule holds rather than
|
|
347
|
+
// refusing the row for a reason that hides what it was meant to measure).
|
|
348
|
+
//
|
|
349
|
+
// `times: all` rather than `1` on purpose: a single failure is one a surface
|
|
350
|
+
// may legitimately RETRY and recover from, and the row would then be comparing
|
|
351
|
+
// each surface's retry policy instead of what it reports when the backend is
|
|
352
|
+
// simply down. Every call failing is the unambiguous case — the turn cannot
|
|
353
|
+
// complete, so any surface that produces an answer is fabricating one.
|
|
354
|
+
toolCall: { tool: 'list_dir', args: { path: '.' } },
|
|
355
|
+
answer: 'Listed.',
|
|
356
|
+
fault: { site: 'provider', kind: 'error', times: Number.POSITIVE_INFINITY },
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
id: 'fault-provider-malformed',
|
|
360
|
+
message: 'list the working directory, then answer',
|
|
361
|
+
// WS6 (#28) — the other half of an honest provider failure: the response
|
|
362
|
+
// ARRIVES and says nothing (a truncated body). A surface that reads an
|
|
363
|
+
// unparseable reply as an empty-but-valid answer is the same false-success
|
|
364
|
+
// shape as a fabricated tool result, and this row is what makes it visible.
|
|
365
|
+
toolCall: { tool: 'list_dir', args: { path: '.' } },
|
|
366
|
+
answer: 'Listed.',
|
|
367
|
+
fault: { site: 'provider', kind: 'malformed', times: Number.POSITIVE_INFINITY },
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
id: 'fault-tool-error',
|
|
371
|
+
message: 'read the project readme, then answer',
|
|
372
|
+
// WS6 (#28) — a TOOL fault, injected by the RUNNING AGENT through the declared
|
|
373
|
+
// seam (`NUVIRA_INJECT_FAULT`) rather than by the stub, because that is the half
|
|
374
|
+
// of the workstream the stub cannot reach: the declaration has to be honoured by
|
|
375
|
+
// every surface, and the forked child in particular has to read it out of the
|
|
376
|
+
// environment it inherited. The named tool fails every time, the call is
|
|
377
|
+
// reported FAILED on every surface, and the fault's own words (which say it was
|
|
378
|
+
// injected) are what the model is handed.
|
|
379
|
+
toolCall: { tool: 'read_file', args: { path: 'README.md' } },
|
|
380
|
+
answer: 'Read failed.',
|
|
381
|
+
fault: { site: 'tool', kind: 'error', times: Number.POSITIVE_INFINITY, match: 'read_file' },
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
id: 'partial-resume',
|
|
385
|
+
message: 'list the working directory, then answer',
|
|
386
|
+
// WS5 (#27) — a RESUMED run, on every surface: the harness runs this ask
|
|
387
|
+
// twice, the second time against the record the first one wrote, and what is
|
|
388
|
+
// compared is what the second run did NOT pay for. The tool is READ-ONLY on
|
|
389
|
+
// purpose: a write would change the working state the next turn carries in its
|
|
390
|
+
// context, which is a REAL change to the input — the replay would rightly miss,
|
|
391
|
+
// and the row would measure that instead of the resume.
|
|
392
|
+
toolCall: { tool: 'list_dir', args: { path: '.' } },
|
|
393
|
+
answer: 'Listed.',
|
|
394
|
+
resume: true,
|
|
395
|
+
},
|
|
396
|
+
];
|
|
397
|
+
/**
|
|
398
|
+
* Drive the real harness: every surface, every scenario, one verdict each.
|
|
399
|
+
*
|
|
400
|
+
* The drivers run the REAL surfaces against a loopback stub provider (transport
|
|
401
|
+
* depth — see `src/parity/drivers.ts`), in an isolated config/memory profile, so
|
|
402
|
+
* this is a real comparison and not a smoke test. `verdict === 'divergent'` or a
|
|
403
|
+
* refusal both fail the check; the differences are printed by name.
|
|
404
|
+
*/
|
|
405
|
+
export async function harnessRunCheck() {
|
|
406
|
+
const { createParityHarness } = await import('../parity/drivers.js');
|
|
407
|
+
const harness = await createParityHarness();
|
|
408
|
+
const lines = ['Driving every surface (transport depth — real provider, stub server):'];
|
|
409
|
+
let ok = true;
|
|
410
|
+
try {
|
|
411
|
+
for (const scenario of PARITY_SCENARIOS) {
|
|
412
|
+
const run = await runParityScenario(scenario, harness.drivers);
|
|
413
|
+
const atPar = run.verdict === 'at-par';
|
|
414
|
+
if (!atPar)
|
|
415
|
+
ok = false;
|
|
416
|
+
lines.push(` ${atPar ? '✅' : '✗ '} ${scenario.id.padEnd(20)} ${run.verdict}` +
|
|
417
|
+
` [${run.observations.map((o) => o.surface).join(', ')}]`);
|
|
418
|
+
if (run.refusal)
|
|
419
|
+
lines.push(` refused: ${run.refusal.message}`);
|
|
420
|
+
for (const difference of run.differences)
|
|
421
|
+
lines.push(` - ${difference}`);
|
|
422
|
+
if (!atPar && run.differences.length > 0) {
|
|
423
|
+
lines.push(reportParityFailure(run.observations, run.differences));
|
|
424
|
+
}
|
|
425
|
+
for (const skipped of run.skipped) {
|
|
426
|
+
lines.push(` · skipped ${skipped.surface}: ${skipped.reason}`);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
finally {
|
|
431
|
+
await harness.dispose();
|
|
432
|
+
}
|
|
433
|
+
lines.push('', ok ? '✓ every surface is at par.' : '✗ cross-surface parity failed.');
|
|
434
|
+
return { ok, lines };
|
|
435
|
+
}
|
|
436
|
+
/** Print a check's lines and make its verdict the process exit code. */
|
|
437
|
+
function report(check) {
|
|
438
|
+
for (const line of check.lines)
|
|
439
|
+
console.log(line);
|
|
440
|
+
console.log('');
|
|
441
|
+
if (!check.ok)
|
|
442
|
+
process.exitCode = 1;
|
|
443
|
+
}
|
|
444
|
+
export class ParityCommand extends BaseCommand {
|
|
445
|
+
create() {
|
|
446
|
+
const cmd = new Command('parity')
|
|
447
|
+
.description('Surface-parity harness — prove the same experience on chat, execute, dashboard, gateway and subagents');
|
|
448
|
+
cmd
|
|
449
|
+
.command('surfaces')
|
|
450
|
+
.description('Compare the surface registry against the real import graph')
|
|
451
|
+
.action(async () => {
|
|
452
|
+
report(surfaceReachCheck());
|
|
453
|
+
});
|
|
454
|
+
cmd
|
|
455
|
+
.command('debt')
|
|
456
|
+
.description('Check the anti-silo debt ratchet (observed surface debt must equal the frozen list)')
|
|
457
|
+
.action(async () => {
|
|
458
|
+
report(surfaceDebtCheck());
|
|
459
|
+
});
|
|
460
|
+
cmd
|
|
461
|
+
.command('matrix')
|
|
462
|
+
.description('Show every capability × surface and any unproven `supported` claim')
|
|
463
|
+
.action(async () => {
|
|
464
|
+
report(capabilityMatrixCheck());
|
|
465
|
+
});
|
|
466
|
+
cmd
|
|
467
|
+
.command('faults')
|
|
468
|
+
.description('List the declared faults the harness can inject, and what each one proves')
|
|
469
|
+
.action(() => {
|
|
470
|
+
const lines = ['Declared fault injection (WS6 #28):', ''];
|
|
471
|
+
lines.push(...describeFaultProtocol());
|
|
472
|
+
lines.push('', 'Scenarios that DECLARE a fault, and the path each takes:', '');
|
|
473
|
+
for (const scenario of PARITY_SCENARIOS) {
|
|
474
|
+
if (!scenario.fault)
|
|
475
|
+
continue;
|
|
476
|
+
const plan = scenario.fault;
|
|
477
|
+
const where = plan.site === 'provider' ? 'the stub (the wire)' : 'the declared seam';
|
|
478
|
+
lines.push(` ${scenario.id.padEnd(26)} ${plan.site}:${plan.kind} — injected by ${where}`);
|
|
479
|
+
}
|
|
480
|
+
lines.push('', '`nuvira parity run` drives every one of them on all five surfaces.');
|
|
481
|
+
lines.push('');
|
|
482
|
+
report({ ok: true, lines });
|
|
483
|
+
});
|
|
484
|
+
cmd
|
|
485
|
+
.command('run')
|
|
486
|
+
.description('Drive all five surfaces through the real harness and report the verdict')
|
|
487
|
+
.action(async () => {
|
|
488
|
+
logger.highlight('\n🔎 Surface-parity harness — driving every surface\n');
|
|
489
|
+
report(await harnessRunCheck());
|
|
490
|
+
});
|
|
491
|
+
// A bare `nuvira parity` is a summary + the way in, matching `gateway`/`bedrock`.
|
|
492
|
+
cmd.action(() => {
|
|
493
|
+
logger.highlight('\n🔎 Surface-parity harness\n');
|
|
494
|
+
console.log(' nuvira parity surfaces registry vs the real import graph');
|
|
495
|
+
console.log(' nuvira parity debt the anti-silo debt ratchet');
|
|
496
|
+
console.log(' nuvira parity matrix capability × surface, and unproven claims');
|
|
497
|
+
console.log(' nuvira parity faults the declared faults, and what each one proves');
|
|
498
|
+
console.log(' nuvira parity run drive every surface and report the verdict\n');
|
|
499
|
+
console.log(' The first three read `src/` and need a source checkout; `run` drives the built surfaces.');
|
|
500
|
+
console.log(` Turn-parity entry points: ${Object.keys(TURN_ENTRIES).join(', ')}`);
|
|
501
|
+
console.log('');
|
|
502
|
+
});
|
|
503
|
+
return cmd;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
//# sourceMappingURL=parity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parity.js","sourceRoot":"","sources":["../../src/cli/parity.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/plan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAqB5C;;;GAGG;AACH,qBAAa,WAAY,SAAQ,WAAW;IAC1C,MAAM,IAAI,OAAO;YAeH,OAAO;CAoStB"}
|
package/dist/cli/plan.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { existsSync, statSync } from 'node:fs';
|
|
3
|
+
import { formatCount } from '../utils/format.js';
|
|
3
4
|
import inquirer from 'inquirer';
|
|
4
5
|
import { BaseCommand } from './commands.js';
|
|
5
6
|
import { PipelineBoard } from './pipeline-board.js';
|
|
@@ -95,7 +96,7 @@ export class PlanCommand extends BaseCommand {
|
|
|
95
96
|
return;
|
|
96
97
|
}
|
|
97
98
|
getEventBus().emit(EventNames.ORCHESTRATOR_INSPECTION, {
|
|
98
|
-
lines: [`Analyzed ${target}`, `Context: ~${contextStr.length
|
|
99
|
+
lines: [`Analyzed ${target}`, `Context: ~${formatCount(contextStr.length)} chars`],
|
|
99
100
|
}, 'plan');
|
|
100
101
|
if (options?.verbose) {
|
|
101
102
|
board.stop();
|
package/dist/cli/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../src/cli/retrieval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"retrieval.d.ts","sourceRoot":"","sources":["../../src/cli/retrieval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkD5C,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,IAAI,OAAO;CAoFlB"}
|
package/dist/cli/retrieval.js
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { readdirSync, existsSync, statSync } from 'node:fs';
|
|
16
16
|
import { join } from 'node:path';
|
|
17
|
+
import { formatCount } from '../utils/format.js';
|
|
17
18
|
import { Command } from 'commander';
|
|
18
19
|
import { BaseCommand } from './commands.js';
|
|
19
20
|
import { logger } from '../utils/logger.js';
|
|
@@ -70,15 +71,15 @@ export class RetrievalCommand extends BaseCommand {
|
|
|
70
71
|
const opts = retrievalOptionsFromConfig(this.configManager);
|
|
71
72
|
const stats = readRetrievalAggregateStats();
|
|
72
73
|
logger.highlight('\n🧠 Vector Retrieval — token-savings transparency');
|
|
73
|
-
logger.info(` Enabled: ${opts.enabled ? 'yes' : 'no'} (contexts > ${(opts.thresholdTokens ?? 12000)
|
|
74
|
+
logger.info(` Enabled: ${opts.enabled ? 'yes' : 'no'} (contexts > ${formatCount(opts.thresholdTokens ?? 12000)} tokens are vectorized)`);
|
|
74
75
|
logger.info(` Model: ${opts.model} · topK: ${opts.topK} · chunkTokens: ${opts.chunkTokens}`);
|
|
75
76
|
console.log('');
|
|
76
77
|
console.log(` Calls: ${stats.totalCalls}`);
|
|
77
78
|
console.log(` Retrievals used: ${stats.totalRetrievals}`);
|
|
78
79
|
console.log(` Failovers (fell back): ${stats.totalFailovers}`);
|
|
79
|
-
console.log(` Tokens before retrieval:${stats.totalOriginalTokens
|
|
80
|
-
console.log(` Tokens after retrieval: ${stats.totalReducedTokens
|
|
81
|
-
console.log(` TOKENS SAVED: ${stats.totalSavedTokens
|
|
80
|
+
console.log(` Tokens before retrieval:${formatCount(stats.totalOriginalTokens).padStart(11)}`);
|
|
81
|
+
console.log(` Tokens after retrieval: ${formatCount(stats.totalReducedTokens).padStart(11)}`);
|
|
82
|
+
console.log(` TOKENS SAVED: ${formatCount(stats.totalSavedTokens).padStart(11)}`);
|
|
82
83
|
console.log(` Avg reduction: ${stats.avgPctReduced.toFixed(1)}%`);
|
|
83
84
|
const idx = getVectorStore(REPO_NAMESPACE).stats();
|
|
84
85
|
console.log(` Repo index: ${idx.totalEntries} chunk(s) · ${idx.dimensions}-dim`);
|