harnery 0.30.0 → 0.31.0
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 +4 -4
- package/dist/commander.d.ts +8 -0
- package/dist/commander.d.ts.map +1 -1
- package/dist/commander.js +14 -13
- package/dist/commands/adapter.d.ts +12 -0
- package/dist/commands/adapter.d.ts.map +1 -0
- package/dist/commands/{harness.js → adapter.js} +35 -35
- package/dist/commands/agents.d.ts +3 -2
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +61 -60
- package/dist/commands/artifacts.d.ts +4 -0
- package/dist/commands/artifacts.d.ts.map +1 -0
- package/dist/commands/artifacts.js +143 -0
- package/dist/commands/backup.d.ts +1 -1
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +5 -2
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +310 -7
- package/dist/commands/checkpoint.d.ts +12 -0
- package/dist/commands/checkpoint.d.ts.map +1 -0
- package/dist/commands/checkpoint.js +162 -0
- package/dist/commands/context.d.ts +2 -2
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +3 -151
- package/dist/commands/decision.d.ts.map +1 -1
- package/dist/commands/decision.js +31 -7
- package/dist/commands/deinit.d.ts +2 -2
- package/dist/commands/deinit.js +15 -15
- package/dist/commands/doctor.js +23 -23
- package/dist/commands/governor.d.ts +4 -0
- package/dist/commands/governor.d.ts.map +1 -0
- package/dist/commands/{supervisor.js → governor.js} +133 -108
- package/dist/commands/init.d.ts +12 -12
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +44 -30
- package/dist/commands/{session.d.ts → journal.d.ts} +2 -2
- package/dist/commands/journal.d.ts.map +1 -0
- package/dist/commands/{scratch.js → journal.js} +47 -47
- package/dist/commands/policy.js +1 -1
- package/dist/commands/presence.js +2 -2
- package/dist/commands/sync.d.ts +1 -1
- package/dist/commands/sync.js +3 -3
- package/dist/commands/tunnel.d.ts +16 -0
- package/dist/commands/tunnel.d.ts.map +1 -1
- package/dist/commands/tunnel.js +193 -23
- package/dist/commands/web-fetch.js +1 -1
- package/dist/commands/web.d.ts +19 -0
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +51 -0
- package/dist/commands/work.d.ts.map +1 -1
- package/dist/commands/work.js +38 -22
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +35 -28
- package/dist/core/{harnesses → adapters}/attest-projection.d.ts +2 -2
- package/dist/core/adapters/attest-projection.d.ts.map +1 -0
- package/dist/core/{harnesses → adapters}/attest.d.ts +16 -16
- package/dist/core/adapters/attest.d.ts.map +1 -0
- package/dist/core/{harnesses → adapters}/attest.js +9 -9
- package/dist/core/{harnesses → adapters}/attestation.d.ts +16 -16
- package/dist/core/adapters/attestation.d.ts.map +1 -0
- package/dist/core/{harnesses → adapters}/attestation.js +20 -20
- package/dist/core/{harnesses → adapters}/bench.d.ts +12 -12
- package/dist/core/adapters/bench.d.ts.map +1 -0
- package/dist/core/{harnesses → adapters}/bench.js +12 -12
- package/dist/core/adapters/index.d.ts +13 -0
- package/dist/core/adapters/index.d.ts.map +1 -0
- package/dist/core/adapters/index.js +6 -0
- package/dist/core/{harnesses → adapters}/profiles.d.ts +11 -11
- package/dist/core/adapters/profiles.d.ts.map +1 -0
- package/dist/core/{harnesses → adapters}/profiles.js +11 -11
- package/dist/core/adapters/registry.d.ts +15 -0
- package/dist/core/adapters/registry.d.ts.map +1 -0
- package/dist/core/{harnesses → adapters}/registry.js +11 -11
- package/dist/core/{harnesses → adapters}/types.d.ts +23 -23
- package/dist/core/adapters/types.d.ts.map +1 -0
- package/dist/core/{harnesses → adapters}/types.js +1 -1
- package/dist/core/agents/canonical-emit.d.ts +4 -4
- package/dist/core/agents/canonical-emit.js +5 -5
- package/dist/core/agents/cli-emit.js +1 -1
- package/dist/core/agents/cli.js +30 -26
- package/dist/core/agents/codex-replay.d.ts +1 -1
- package/dist/core/agents/codex-replay.js +6 -6
- package/dist/core/agents/coord-client.d.ts +21 -2
- package/dist/core/agents/coord-client.d.ts.map +1 -1
- package/dist/core/agents/coord-client.js +122 -27
- package/dist/core/agents/events/consume.d.ts +1 -1
- package/dist/core/agents/events/emit.d.ts +5 -6
- package/dist/core/agents/events/emit.d.ts.map +1 -1
- package/dist/core/agents/events/emit.js +2 -2
- package/dist/core/agents/render/prompt-context.d.ts +21 -9
- package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.js +82 -30
- package/dist/core/agents/render/session-context.d.ts +1 -1
- package/dist/core/agents/render/session-context.js +5 -5
- package/dist/core/agents/rules/claim-conflict.d.ts +2 -6
- package/dist/core/agents/rules/claim-conflict.d.ts.map +1 -1
- package/dist/core/agents/rules/claim-conflict.js +1 -1
- package/dist/core/agents/rules/commit-conflict.js +98 -22
- package/dist/core/agents/rules/stop-hook.d.ts +9 -9
- package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
- package/dist/core/agents/rules/stop-hook.js +23 -5
- package/dist/core/agents/rules/verdict.d.ts +14 -0
- package/dist/core/agents/rules/verdict.d.ts.map +1 -0
- package/dist/core/agents/rules/verdict.js +1 -0
- package/dist/core/agents/session-events.js +3 -3
- package/dist/core/agents/state/council.d.ts +1 -1
- package/dist/core/agents/state/council.js +1 -1
- package/dist/core/agents/state/heartbeat-projector.d.ts +3 -2
- package/dist/core/agents/state/heartbeat-projector.d.ts.map +1 -1
- package/dist/core/agents/state/heartbeat-projector.js +14 -10
- package/dist/core/agents/state/heartbeat-writer.d.ts +1 -1
- package/dist/core/agents/state/heartbeat-writer.js +12 -12
- package/dist/core/agents/state/{scratch.d.ts → journal.d.ts} +7 -7
- package/dist/core/agents/state/{scratch.d.ts.map → journal.d.ts.map} +1 -1
- package/dist/core/agents/state/{scratch.js → journal.js} +12 -12
- package/dist/core/agents/state/pidmap.d.ts +28 -4
- package/dist/core/agents/state/pidmap.d.ts.map +1 -1
- package/dist/core/agents/state/pidmap.js +130 -15
- package/dist/core/agents/state/proc-start.d.ts +95 -0
- package/dist/core/agents/state/proc-start.d.ts.map +1 -0
- package/dist/core/agents/state/proc-start.js +199 -0
- package/dist/core/agents/state/shell-mutation.d.ts +1 -1
- package/dist/core/agents/state/shell-mutation.js +1 -1
- package/dist/core/agents/state/stale-sweep.js +7 -7
- package/dist/core/artifacts/index.d.ts +86 -0
- package/dist/core/artifacts/index.d.ts.map +1 -0
- package/dist/core/artifacts/index.js +421 -0
- package/dist/core/config.d.ts +9 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +26 -2
- package/dist/core/context/index.d.ts +12 -12
- package/dist/core/context/index.js +10 -10
- package/dist/core/governor/adapter-spread.d.ts +52 -0
- package/dist/core/governor/adapter-spread.d.ts.map +1 -0
- package/dist/core/governor/adapter-spread.js +52 -0
- package/dist/core/governor/index.d.ts +7 -0
- package/dist/core/governor/index.d.ts.map +1 -0
- package/dist/core/governor/index.js +6 -0
- package/dist/core/governor/plan-api.d.ts +38 -0
- package/dist/core/governor/plan-api.d.ts.map +1 -0
- package/dist/core/governor/plan-api.js +83 -0
- package/dist/core/governor/plan-read.d.ts +5 -0
- package/dist/core/governor/plan-read.d.ts.map +1 -0
- package/dist/core/{supervisor → governor}/plan-read.js +66 -52
- package/dist/core/{supervisor → governor}/plan-types.d.ts +57 -56
- package/dist/core/governor/plan-types.d.ts.map +1 -0
- package/dist/core/{supervisor → governor}/plan-types.js +4 -4
- package/dist/core/governor/planning.d.ts +48 -0
- package/dist/core/governor/planning.d.ts.map +1 -0
- package/dist/core/{supervisor → governor}/planning.js +125 -94
- package/dist/core/governor/read.d.ts +6 -0
- package/dist/core/governor/read.d.ts.map +1 -0
- package/dist/core/governor/read.js +4 -0
- package/dist/core/governor/runner.d.ts +37 -0
- package/dist/core/governor/runner.d.ts.map +1 -0
- package/dist/core/{supervisor → governor}/runner.js +15 -15
- package/dist/core/governor/service-read.d.ts +6 -0
- package/dist/core/governor/service-read.d.ts.map +1 -0
- package/dist/core/{supervisor → governor}/service-read.js +12 -12
- package/dist/core/governor/service.d.ts +114 -0
- package/dist/core/governor/service.d.ts.map +1 -0
- package/dist/core/{supervisor → governor}/service.js +57 -57
- package/dist/core/governor/state.d.ts +116 -0
- package/dist/core/governor/state.d.ts.map +1 -0
- package/dist/core/{supervisor → governor}/state.js +228 -108
- package/dist/core/hooks/adapter/detect.d.ts +9 -0
- package/dist/core/hooks/{harness → adapter}/detect.d.ts.map +1 -1
- package/dist/core/hooks/{harness → adapter}/detect.js +8 -8
- package/dist/core/hooks/{harness → adapter}/events.d.ts +15 -14
- package/dist/core/hooks/adapter/events.d.ts.map +1 -0
- package/dist/core/hooks/{harness → adapter}/events.js +5 -5
- package/dist/core/hooks/{harness → adapter}/output.d.ts +20 -14
- package/dist/core/hooks/adapter/output.d.ts.map +1 -0
- package/dist/core/hooks/{harness → adapter}/output.js +30 -22
- package/dist/core/hooks/{harness → adapter}/parse.d.ts +5 -5
- package/dist/core/hooks/{harness → adapter}/parse.d.ts.map +1 -1
- package/dist/core/hooks/{harness → adapter}/parse.js +4 -4
- package/dist/core/hooks/{harness → adapter}/wiring.d.ts +15 -15
- package/dist/core/hooks/{harness → adapter}/wiring.d.ts.map +1 -1
- package/dist/core/hooks/{harness → adapter}/wiring.js +13 -13
- package/dist/core/hooks/cli.d.ts +3 -3
- package/dist/core/hooks/cli.js +175 -151
- package/dist/core/hooks/effects/image-capture.d.ts +5 -5
- package/dist/core/hooks/effects/image-capture.d.ts.map +1 -1
- package/dist/core/hooks/effects/image-capture.js +3 -3
- package/dist/core/hooks/effects/index.d.ts +12 -12
- package/dist/core/hooks/effects/index.d.ts.map +1 -1
- package/dist/core/hooks/effects/index.js +17 -17
- package/dist/core/hooks/events/emit.d.ts +2 -2
- package/dist/core/hooks/events/emit.d.ts.map +1 -1
- package/dist/core/hooks/events/emit.js +1 -1
- package/dist/core/hooks/events/rotate.js +1 -1
- package/dist/core/hooks/events/schema.d.ts +13 -5
- package/dist/core/hooks/events/schema.d.ts.map +1 -1
- package/dist/core/hooks/guard-path.d.ts +2 -2
- package/dist/core/hooks/guard-path.js +2 -2
- package/dist/core/hooks/index.d.ts +1 -1
- package/dist/core/hooks/index.d.ts.map +1 -1
- package/dist/core/hooks/resolve/anchor.d.ts +14 -5
- package/dist/core/hooks/resolve/anchor.d.ts.map +1 -1
- package/dist/core/hooks/resolve/anchor.js +64 -7
- package/dist/core/hooks/resolve/coord-root.d.ts +3 -3
- package/dist/core/hooks/resolve/coord-root.js +4 -4
- package/dist/core/hooks/resolve/intent.js +1 -1
- package/dist/core/hooks/resolve/owner.d.ts +1 -1
- package/dist/core/hooks/resolve/owner.d.ts.map +1 -1
- package/dist/core/hooks/resolve/owner.js +11 -5
- package/dist/core/{scratch → journal}/index.d.ts +25 -25
- package/dist/core/{scratch → journal}/index.d.ts.map +1 -1
- package/dist/core/{scratch → journal}/index.js +38 -38
- package/dist/core/policy/evaluate.d.ts +1 -1
- package/dist/core/policy/evaluate.d.ts.map +1 -1
- package/dist/core/policy/evaluate.js +7 -7
- package/dist/core/policy/types.d.ts +3 -3
- package/dist/core/policy/types.d.ts.map +1 -1
- package/dist/core/work/state.d.ts +12 -4
- package/dist/core/work/state.d.ts.map +1 -1
- package/dist/core/work/state.js +50 -17
- package/dist/core/workflow/adapters.d.ts +17 -0
- package/dist/core/workflow/adapters.d.ts.map +1 -0
- package/dist/core/workflow/adapters.js +21 -0
- package/dist/core/workflow/approvals.js +6 -6
- package/dist/core/workflow/billing.d.ts +9 -9
- package/dist/core/workflow/billing.js +9 -9
- package/dist/core/workflow/child-env.d.ts +10 -2
- package/dist/core/workflow/child-env.d.ts.map +1 -1
- package/dist/core/workflow/child-env.js +12 -4
- package/dist/core/workflow/engine.d.ts +15 -5
- package/dist/core/workflow/engine.d.ts.map +1 -1
- package/dist/core/workflow/engine.js +138 -83
- package/dist/core/workflow/evidence-preflight.d.ts +24 -0
- package/dist/core/workflow/evidence-preflight.d.ts.map +1 -0
- package/dist/core/workflow/evidence-preflight.js +134 -0
- package/dist/core/workflow/index.d.ts +1 -1
- package/dist/core/workflow/index.d.ts.map +1 -1
- package/dist/core/workflow/proof.d.ts +11 -5
- package/dist/core/workflow/proof.d.ts.map +1 -1
- package/dist/core/workflow/proof.js +45 -36
- package/dist/core/workflow/run-state.d.ts +1 -1
- package/dist/core/workflow/run-state.js +7 -7
- package/dist/core/workflow/sandbox-projection.d.ts +6 -6
- package/dist/core/workflow/sandbox-projection.d.ts.map +1 -1
- package/dist/core/workflow/sandbox-projection.js +11 -11
- package/dist/core/workflow/spawn-claude.d.ts +3 -3
- package/dist/core/workflow/spawn-claude.d.ts.map +1 -1
- package/dist/core/workflow/spawn-claude.js +9 -6
- package/dist/core/workflow/spawn-codex.d.ts +4 -4
- package/dist/core/workflow/spawn-codex.d.ts.map +1 -1
- package/dist/core/workflow/spawn-codex.js +9 -6
- package/dist/core/workflow/spawn-cursor.d.ts +4 -4
- package/dist/core/workflow/spawn-cursor.d.ts.map +1 -1
- package/dist/core/workflow/spawn-cursor.js +9 -6
- package/dist/core/workflow/spawn-failure.d.ts +1 -1
- package/dist/core/workflow/spawn-failure.js +1 -1
- package/dist/core/workflow/specialists.js +2 -2
- package/dist/core/workflow/{journal.d.ts → transcript.d.ts} +8 -8
- package/dist/core/workflow/transcript.d.ts.map +1 -0
- package/dist/core/workflow/{journal.js → transcript.js} +14 -14
- package/dist/core/workflow/types.d.ts +98 -51
- package/dist/core/workflow/types.d.ts.map +1 -1
- package/dist/core/workflow/types.js +11 -1
- package/dist/core/workflow/validate.d.ts +1 -1
- package/dist/core/workflow/validate.js +1 -1
- package/dist/core/workflow/workspaces/cancellation.js +2 -2
- package/dist/core/workflow/workspaces/cleanup.js +2 -2
- package/dist/core/workflow/workspaces/execution.js +6 -6
- package/dist/core/workflow/workspaces/inspect.js +9 -9
- package/dist/core/workflow/workspaces/integration.js +14 -14
- package/dist/core/workflow/workspaces/lifecycle.d.ts +1 -1
- package/dist/core/workflow/workspaces/lifecycle.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/lifecycle.js +9 -9
- package/dist/core/workflow/workspaces/local-git.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/local-git.js +39 -5
- package/dist/core/workflow/workspaces/recovery.js +3 -3
- package/dist/core/workflow/workspaces/state.d.ts +1 -1
- package/dist/core/workflow/workspaces/state.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/state.js +3 -3
- package/dist/core/workflow/workspaces/types.d.ts +1 -1
- package/dist/core/workflow/workspaces/types.d.ts.map +1 -1
- package/dist/lib/browser/asserts.d.ts +28 -0
- package/dist/lib/browser/asserts.d.ts.map +1 -0
- package/dist/lib/browser/asserts.js +152 -0
- package/dist/lib/browser/client.d.ts +49 -0
- package/dist/lib/browser/client.d.ts.map +1 -1
- package/dist/lib/browser/client.js +155 -14
- package/dist/lib/browser/content-checks.d.ts +108 -0
- package/dist/lib/browser/content-checks.d.ts.map +1 -0
- package/dist/lib/browser/content-checks.js +474 -0
- package/dist/lib/browser/critique.d.ts +91 -0
- package/dist/lib/browser/critique.d.ts.map +1 -0
- package/dist/lib/browser/critique.js +167 -0
- package/dist/lib/browser/geometry.d.ts +32 -0
- package/dist/lib/browser/geometry.d.ts.map +1 -1
- package/dist/lib/browser/geometry.js +244 -1
- package/dist/lib/browser/index.d.ts +4 -1
- package/dist/lib/browser/index.d.ts.map +1 -1
- package/dist/lib/browser/index.js +2 -0
- package/dist/lib/claude-desktop.d.ts.map +1 -1
- package/dist/lib/claude-desktop.js +4 -1
- package/dist/lib/council/index.d.ts +6 -6
- package/dist/lib/council/index.d.ts.map +1 -1
- package/dist/lib/council/index.js +8 -8
- package/dist/lib/identities/assume.d.ts +2 -2
- package/dist/lib/identities/assume.js +7 -7
- package/dist/lib/instructions/apply.d.ts +3 -3
- package/dist/lib/instructions/apply.d.ts.map +1 -1
- package/dist/lib/instructions/apply.js +75 -27
- package/dist/lib/instructions/host-addendum.d.ts +54 -0
- package/dist/lib/instructions/host-addendum.d.ts.map +1 -0
- package/dist/lib/instructions/host-addendum.js +107 -0
- package/dist/lib/instructions/templates.d.ts +10 -3
- package/dist/lib/instructions/templates.d.ts.map +1 -1
- package/dist/lib/instructions/templates.js +41 -12
- package/dist/lib/machine.d.ts +2 -2
- package/dist/lib/machine.js +2 -2
- package/package.json +26 -21
- package/schemas/config.schema.json +26 -1
- package/src/commander.ts +22 -13
- package/src/commands/{harness.ts → adapter.ts} +46 -46
- package/src/commands/agents.ts +71 -64
- package/src/commands/artifacts.ts +168 -0
- package/src/commands/backup.ts +47 -33
- package/src/commands/browse.ts +438 -2
- package/src/commands/checkpoint.ts +196 -0
- package/src/commands/context.ts +3 -176
- package/src/commands/decision.ts +41 -7
- package/src/commands/deinit.ts +16 -16
- package/src/commands/doctor.ts +28 -28
- package/src/commands/{supervisor.ts → governor.ts} +184 -154
- package/src/commands/init.ts +50 -34
- package/src/commands/{scratch.ts → journal.ts} +60 -60
- package/src/commands/policy.ts +1 -1
- package/src/commands/presence.ts +2 -2
- package/src/commands/sync.ts +3 -3
- package/src/commands/tunnel.ts +237 -34
- package/src/commands/web-fetch.ts +1 -1
- package/src/commands/web.ts +56 -1
- package/src/commands/work.ts +50 -35
- package/src/commands/workflow.ts +43 -34
- package/src/core/{harnesses → adapters}/attest-projection.ts +2 -2
- package/src/core/{harnesses → adapters}/attest.ts +27 -27
- package/src/core/{harnesses → adapters}/attestation.ts +41 -41
- package/src/core/{harnesses → adapters}/bench.ts +34 -43
- package/src/core/adapters/index.ts +56 -0
- package/src/core/{harnesses → adapters}/profiles.ts +16 -16
- package/src/core/{harnesses → adapters}/registry.ts +23 -23
- package/src/core/{harnesses → adapters}/types.ts +23 -23
- package/src/core/agents/canonical-emit.ts +6 -6
- package/src/core/agents/cli-emit.ts +1 -1
- package/src/core/agents/cli.ts +30 -28
- package/src/core/agents/codex-replay.ts +6 -6
- package/src/core/agents/coord-client.ts +119 -28
- package/src/core/agents/events/consume.ts +1 -1
- package/src/core/agents/events/emit.ts +7 -6
- package/src/core/agents/render/prompt-context.ts +107 -31
- package/src/core/agents/render/session-context.ts +6 -6
- package/src/core/agents/rules/claim-conflict.ts +4 -7
- package/src/core/agents/rules/commit-conflict.ts +103 -22
- package/src/core/agents/rules/stop-hook.ts +33 -17
- package/src/core/agents/rules/verdict.ts +13 -0
- package/src/core/agents/session-events.ts +4 -4
- package/src/core/agents/state/council.ts +1 -1
- package/src/core/agents/state/heartbeat-projector.ts +16 -12
- package/src/core/agents/state/heartbeat-writer.ts +12 -12
- package/src/core/agents/state/{scratch.ts → journal.ts} +12 -12
- package/src/core/agents/state/pidmap.ts +130 -15
- package/src/core/agents/state/proc-start.ts +208 -0
- package/src/core/agents/state/shell-mutation.ts +1 -1
- package/src/core/agents/state/stale-sweep.ts +7 -7
- package/src/core/artifacts/index.ts +557 -0
- package/src/core/config.ts +30 -2
- package/src/core/context/index.ts +15 -15
- package/src/core/governor/adapter-spread.ts +82 -0
- package/src/core/governor/index.ts +91 -0
- package/src/core/governor/plan-api.ts +115 -0
- package/src/core/{supervisor → governor}/plan-read.ts +112 -97
- package/src/core/{supervisor → governor}/plan-types.ts +59 -56
- package/src/core/{supervisor → governor}/planning.ts +223 -192
- package/src/core/governor/read.ts +59 -0
- package/src/core/{supervisor → governor}/runner.ts +39 -39
- package/src/core/{supervisor → governor}/service-read.ts +22 -22
- package/src/core/{supervisor → governor}/service.ts +117 -119
- package/src/core/{supervisor → governor}/state.ts +325 -167
- package/src/core/hooks/adapter/detect.ts +30 -0
- package/src/core/hooks/{harness → adapter}/events.ts +16 -14
- package/src/core/hooks/{harness → adapter}/output.ts +31 -23
- package/src/core/hooks/{harness → adapter}/parse.ts +5 -5
- package/src/core/hooks/{harness → adapter}/wiring.ts +21 -21
- package/src/core/hooks/cli.ts +185 -162
- package/src/core/hooks/effects/image-capture.ts +6 -6
- package/src/core/hooks/effects/index.ts +17 -17
- package/src/core/hooks/events/emit.ts +3 -3
- package/src/core/hooks/events/rotate.ts +1 -1
- package/src/core/hooks/events/schema.ts +15 -7
- package/src/core/hooks/guard-path.ts +2 -2
- package/src/core/hooks/index.ts +1 -1
- package/src/core/hooks/resolve/anchor.ts +63 -8
- package/src/core/hooks/resolve/coord-root.ts +4 -4
- package/src/core/hooks/resolve/intent.ts +1 -1
- package/src/core/hooks/resolve/owner.ts +11 -5
- package/src/core/{scratch → journal}/index.ts +53 -53
- package/src/core/policy/evaluate.ts +8 -8
- package/src/core/policy/types.ts +3 -3
- package/src/core/work/state.ts +65 -23
- package/src/core/workflow/adapters.ts +33 -0
- package/src/core/workflow/approvals.ts +7 -7
- package/src/core/workflow/billing.ts +12 -12
- package/src/core/workflow/child-env.ts +13 -4
- package/src/core/workflow/engine.ts +155 -90
- package/src/core/workflow/evidence-preflight.ts +165 -0
- package/src/core/workflow/index.ts +3 -3
- package/src/core/workflow/proof.ts +60 -50
- package/src/core/workflow/run-state.ts +7 -7
- package/src/core/workflow/sandbox-projection.ts +16 -16
- package/src/core/workflow/spawn-claude.ts +13 -10
- package/src/core/workflow/spawn-codex.ts +13 -10
- package/src/core/workflow/spawn-cursor.ts +13 -10
- package/src/core/workflow/spawn-failure.ts +1 -1
- package/src/core/workflow/specialists.ts +2 -2
- package/src/core/workflow/{journal.ts → transcript.ts} +16 -16
- package/src/core/workflow/types.ts +108 -51
- package/src/core/workflow/validate.ts +1 -1
- package/src/core/workflow/workspaces/cancellation.ts +2 -2
- package/src/core/workflow/workspaces/cleanup.ts +2 -2
- package/src/core/workflow/workspaces/execution.ts +6 -6
- package/src/core/workflow/workspaces/inspect.ts +14 -11
- package/src/core/workflow/workspaces/integration.ts +18 -14
- package/src/core/workflow/workspaces/lifecycle.ts +10 -10
- package/src/core/workflow/workspaces/local-git.ts +47 -5
- package/src/core/workflow/workspaces/recovery.ts +3 -3
- package/src/core/workflow/workspaces/state.ts +4 -3
- package/src/core/workflow/workspaces/types.ts +1 -1
- package/src/lib/browser/asserts.ts +177 -0
- package/src/lib/browser/client.ts +189 -14
- package/src/lib/browser/content-checks.ts +571 -0
- package/src/lib/browser/critique.ts +231 -0
- package/src/lib/browser/geometry.ts +297 -1
- package/src/lib/browser/index.ts +34 -0
- package/src/lib/claude-desktop.ts +4 -1
- package/src/lib/council/index.ts +9 -9
- package/src/lib/identities/assume.ts +7 -7
- package/src/lib/instructions/apply.ts +87 -25
- package/src/lib/instructions/host-addendum.ts +126 -0
- package/src/lib/instructions/templates.ts +44 -15
- package/src/lib/machine.ts +2 -2
- package/dist/commands/harness.d.ts +0 -12
- package/dist/commands/harness.d.ts.map +0 -1
- package/dist/commands/scratch.d.ts +0 -4
- package/dist/commands/scratch.d.ts.map +0 -1
- package/dist/commands/session.d.ts.map +0 -1
- package/dist/commands/session.js +0 -162
- package/dist/commands/supervisor.d.ts +0 -4
- package/dist/commands/supervisor.d.ts.map +0 -1
- package/dist/core/harnesses/attest-projection.d.ts.map +0 -1
- package/dist/core/harnesses/attest.d.ts.map +0 -1
- package/dist/core/harnesses/attestation.d.ts.map +0 -1
- package/dist/core/harnesses/bench.d.ts.map +0 -1
- package/dist/core/harnesses/index.d.ts +0 -13
- package/dist/core/harnesses/index.d.ts.map +0 -1
- package/dist/core/harnesses/index.js +0 -6
- package/dist/core/harnesses/profiles.d.ts.map +0 -1
- package/dist/core/harnesses/registry.d.ts +0 -15
- package/dist/core/harnesses/registry.d.ts.map +0 -1
- package/dist/core/harnesses/types.d.ts.map +0 -1
- package/dist/core/hooks/harness/detect.d.ts +0 -9
- package/dist/core/hooks/harness/events.d.ts.map +0 -1
- package/dist/core/hooks/harness/output.d.ts.map +0 -1
- package/dist/core/supervisor/index.d.ts +0 -7
- package/dist/core/supervisor/index.d.ts.map +0 -1
- package/dist/core/supervisor/index.js +0 -6
- package/dist/core/supervisor/plan-api.d.ts +0 -23
- package/dist/core/supervisor/plan-api.d.ts.map +0 -1
- package/dist/core/supervisor/plan-api.js +0 -50
- package/dist/core/supervisor/plan-read.d.ts +0 -5
- package/dist/core/supervisor/plan-read.d.ts.map +0 -1
- package/dist/core/supervisor/plan-types.d.ts.map +0 -1
- package/dist/core/supervisor/planning.d.ts +0 -33
- package/dist/core/supervisor/planning.d.ts.map +0 -1
- package/dist/core/supervisor/read.d.ts +0 -6
- package/dist/core/supervisor/read.d.ts.map +0 -1
- package/dist/core/supervisor/read.js +0 -4
- package/dist/core/supervisor/runner.d.ts +0 -37
- package/dist/core/supervisor/runner.d.ts.map +0 -1
- package/dist/core/supervisor/service-read.d.ts +0 -6
- package/dist/core/supervisor/service-read.d.ts.map +0 -1
- package/dist/core/supervisor/service.d.ts +0 -114
- package/dist/core/supervisor/service.d.ts.map +0 -1
- package/dist/core/supervisor/state.d.ts +0 -95
- package/dist/core/supervisor/state.d.ts.map +0 -1
- package/dist/core/workflow/harnesses.d.ts +0 -17
- package/dist/core/workflow/harnesses.d.ts.map +0 -1
- package/dist/core/workflow/harnesses.js +0 -21
- package/dist/core/workflow/journal.d.ts.map +0 -1
- package/src/commands/session.ts +0 -187
- package/src/core/harnesses/index.ts +0 -56
- package/src/core/hooks/harness/detect.ts +0 -30
- package/src/core/supervisor/index.ts +0 -89
- package/src/core/supervisor/plan-api.ts +0 -73
- package/src/core/supervisor/read.ts +0 -59
- package/src/core/workflow/harnesses.ts +0 -33
- /package/dist/core/{harnesses → adapters}/attest-projection.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
|
-
import {
|
|
2
|
+
import { ADAPTER_SPECS } from "../hooks/adapter/events.js";
|
|
3
3
|
import { isAttestationCurrent, readAttestation } from "./attestation.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ADAPTER_CAPABILITY_DIMENSIONS } from "./types.js";
|
|
5
5
|
const EMPTY_SUMMARY = {
|
|
6
6
|
supported: 0,
|
|
7
7
|
partial: 0,
|
|
@@ -43,17 +43,17 @@ function versionToken(value) {
|
|
|
43
43
|
const match = value.match(/\d+(?:\.\d+)+(?:[-.][0-9a-z]+)*/i);
|
|
44
44
|
return match ? match[0].toLowerCase() : null;
|
|
45
45
|
}
|
|
46
|
-
export function
|
|
47
|
-
const ids = opts.
|
|
46
|
+
export function runAdapterBench(registry, opts = {}) {
|
|
47
|
+
const ids = opts.adapters?.length ? [...opts.adapters] : registry.ids();
|
|
48
48
|
const dimensions = opts.dimensions?.length
|
|
49
49
|
? [...new Set(opts.dimensions)]
|
|
50
|
-
: [...
|
|
50
|
+
: [...ADAPTER_CAPABILITY_DIMENSIONS];
|
|
51
51
|
const versionProbe = opts.versionProbe ?? probeBinaryVersion;
|
|
52
52
|
const results = [];
|
|
53
53
|
for (const id of ids) {
|
|
54
54
|
const adapter = registry.require(id);
|
|
55
55
|
results.push({
|
|
56
|
-
|
|
56
|
+
adapter: id,
|
|
57
57
|
dimension: "registration",
|
|
58
58
|
declared: "supported",
|
|
59
59
|
observed: "supported",
|
|
@@ -63,7 +63,7 @@ export function runHarnessBench(registry, opts = {}) {
|
|
|
63
63
|
});
|
|
64
64
|
const version = versionProbe(adapter.profile.binary);
|
|
65
65
|
results.push({
|
|
66
|
-
|
|
66
|
+
adapter: id,
|
|
67
67
|
dimension: "binary",
|
|
68
68
|
declared: "supported",
|
|
69
69
|
observed: version ? "supported" : "skipped",
|
|
@@ -84,7 +84,7 @@ export function runHarnessBench(registry, opts = {}) {
|
|
|
84
84
|
? { observed: live, basis: "attested" }
|
|
85
85
|
: observations[dimension];
|
|
86
86
|
results.push({
|
|
87
|
-
|
|
87
|
+
adapter: id,
|
|
88
88
|
dimension,
|
|
89
89
|
declared: claim.support,
|
|
90
90
|
observed,
|
|
@@ -103,7 +103,7 @@ export function runHarnessBench(registry, opts = {}) {
|
|
|
103
103
|
return {
|
|
104
104
|
generatedAt: new Date().toISOString(),
|
|
105
105
|
mode: "offline",
|
|
106
|
-
|
|
106
|
+
adapters: ids,
|
|
107
107
|
results,
|
|
108
108
|
summary,
|
|
109
109
|
basisSummary,
|
|
@@ -121,7 +121,7 @@ export function runHarnessBench(registry, opts = {}) {
|
|
|
121
121
|
* inferred from the installed one. */
|
|
122
122
|
function contractResult(id, adapter, version) {
|
|
123
123
|
const recorded = adapter.profile.verified;
|
|
124
|
-
const base = {
|
|
124
|
+
const base = { adapter: id, dimension: "contract", declared: "supported" };
|
|
125
125
|
if (!version) {
|
|
126
126
|
return {
|
|
127
127
|
...base,
|
|
@@ -209,8 +209,8 @@ function observeAdapter(adapter) {
|
|
|
209
209
|
const finalMatches = normalized?.ok === fixture.ok && normalized?.text === fixture.text;
|
|
210
210
|
const sessionObserved = normalized?.sessionId !== undefined ? "supported" : "unsupported";
|
|
211
211
|
const costObserved = normalized?.costUsd !== undefined ? "supported" : "unsupported";
|
|
212
|
-
const hookSpec = adapter.profile.id in
|
|
213
|
-
?
|
|
212
|
+
const hookSpec = adapter.profile.id in ADAPTER_SPECS
|
|
213
|
+
? ADAPTER_SPECS[adapter.profile.id]
|
|
214
214
|
: undefined;
|
|
215
215
|
const hookSubcommands = new Set(hookSpec?.events.map((event) => event.subcommand) ?? []);
|
|
216
216
|
return {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type { Spawner, SpawnRequest, SpawnResult } from "../workflow/types.js";
|
|
2
|
+
export type { AdapterAttestationReport, AdapterAttestationResult, AttestationOutcome, RunAdapterAttestationOptions, } from "./attest.js";
|
|
3
|
+
export { ATTESTATION_PROMPT, runAdapterAttestation } from "./attest.js";
|
|
4
|
+
export type { AdapterAttestation, AttestableDimension, AttestationStoreOptions, } from "./attestation.js";
|
|
5
|
+
export { ATTESTABLE_DIMENSIONS, ATTESTATION_SCHEMA_VERSION, adapterProofInputs, attestationsDir, isAttestationCurrent, listAttestations, profileDigest, readAttestation, validateAttestation, writeAttestation, } from "./attestation.js";
|
|
6
|
+
export type { AdapterBenchOptions, AdapterBenchReport, BenchBasis, BenchDimension, BenchResult, BenchVerdict, } from "./bench.js";
|
|
7
|
+
export { probeBinaryVersion, runAdapterBench } from "./bench.js";
|
|
8
|
+
export type { BuiltinAdapterId } from "./profiles.js";
|
|
9
|
+
export { BUILTIN_ADAPTER_IDS, BUILTIN_ADAPTER_PROFILES, builtinAdapterProfile, isBuiltinAdapter, validateAdapterEffort, } from "./profiles.js";
|
|
10
|
+
export { AdapterRegistry, createBuiltinAdapterRegistry } from "./registry.js";
|
|
11
|
+
export type { Adapter, AdapterBenchFixture, AdapterCapabilities, AdapterCapabilityDimension, AdapterId, AdapterInvocation, AdapterProfile, AdapterRawResult, CapabilityClaim, CapabilitySupport, } from "./types.js";
|
|
12
|
+
export { ADAPTER_CAPABILITY_DIMENSIONS } from "./types.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/E,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EACV,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ATTESTATION_PROMPT, runAdapterAttestation } from "./attest.js";
|
|
2
|
+
export { ATTESTABLE_DIMENSIONS, ATTESTATION_SCHEMA_VERSION, adapterProofInputs, attestationsDir, isAttestationCurrent, listAttestations, profileDigest, readAttestation, validateAttestation, writeAttestation, } from "./attestation.js";
|
|
3
|
+
export { probeBinaryVersion, runAdapterBench } from "./bench.js";
|
|
4
|
+
export { BUILTIN_ADAPTER_IDS, BUILTIN_ADAPTER_PROFILES, builtinAdapterProfile, isBuiltinAdapter, validateAdapterEffort, } from "./profiles.js";
|
|
5
|
+
export { AdapterRegistry, createBuiltinAdapterRegistry } from "./registry.js";
|
|
6
|
+
export { ADAPTER_CAPABILITY_DIMENSIONS } from "./types.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
/** The one built-in profile catalog. Adding a fourth
|
|
1
|
+
import type { AdapterCapabilities, AdapterProfile } from "./types.js";
|
|
2
|
+
/** The one built-in profile catalog. Adding a fourth adapter starts here; CLI
|
|
3
3
|
* choices, doctor metadata, workflow dispatch, and the bench derive from it. */
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const BUILTIN_ADAPTER_PROFILES: {
|
|
5
5
|
readonly "claude-code": {
|
|
6
6
|
readonly id: "claude-code";
|
|
7
7
|
readonly displayName: "Claude Code";
|
|
@@ -17,7 +17,7 @@ export declare const BUILTIN_HARNESS_PROFILES: {
|
|
|
17
17
|
readonly date: "2026-07-25";
|
|
18
18
|
readonly version: "2.1.197 (Claude Code)";
|
|
19
19
|
};
|
|
20
|
-
readonly capabilities:
|
|
20
|
+
readonly capabilities: AdapterCapabilities;
|
|
21
21
|
};
|
|
22
22
|
readonly codex: {
|
|
23
23
|
readonly id: "codex";
|
|
@@ -41,7 +41,7 @@ export declare const BUILTIN_HARNESS_PROFILES: {
|
|
|
41
41
|
};
|
|
42
42
|
readonly writableRoots: true;
|
|
43
43
|
};
|
|
44
|
-
readonly capabilities:
|
|
44
|
+
readonly capabilities: AdapterCapabilities;
|
|
45
45
|
};
|
|
46
46
|
readonly cursor: {
|
|
47
47
|
readonly id: "cursor";
|
|
@@ -58,12 +58,12 @@ export declare const BUILTIN_HARNESS_PROFILES: {
|
|
|
58
58
|
readonly date: "2026-07-25";
|
|
59
59
|
readonly version: "2026.07.23-e383d2b";
|
|
60
60
|
};
|
|
61
|
-
readonly capabilities:
|
|
61
|
+
readonly capabilities: AdapterCapabilities;
|
|
62
62
|
};
|
|
63
63
|
};
|
|
64
|
-
export type
|
|
65
|
-
export declare const
|
|
66
|
-
export declare function
|
|
67
|
-
export declare function
|
|
68
|
-
export declare function
|
|
64
|
+
export type BuiltinAdapterId = keyof typeof BUILTIN_ADAPTER_PROFILES;
|
|
65
|
+
export declare const BUILTIN_ADAPTER_IDS: readonly ("claude-code" | "codex" | "cursor")[];
|
|
66
|
+
export declare function isBuiltinAdapter(id: string): id is BuiltinAdapterId;
|
|
67
|
+
export declare function builtinAdapterProfile(id: string): AdapterProfile | undefined;
|
|
68
|
+
export declare function validateAdapterEffort(id: string, effort: string | undefined): void;
|
|
69
69
|
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAmB,MAAM,YAAY,CAAC;AAgCvF;gFACgF;AAChF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Fc,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,wBAAwB,CAAC;AAErE,eAAO,MAAM,mBAAmB,iDAE/B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,gBAAgB,CAEnE;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE5E;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAUlF"}
|
|
@@ -22,13 +22,13 @@ function capabilities(overrides) {
|
|
|
22
22
|
contextTelemetry: unknown("The workflow adapter does not expose live context usage."),
|
|
23
23
|
preCompactionSignal: unknown("No compaction lifecycle probe has certified this adapter."),
|
|
24
24
|
postCompactionSignal: unknown("No compaction lifecycle probe has certified this adapter."),
|
|
25
|
-
compaction: unsupported("Harnery does not initiate native
|
|
25
|
+
compaction: unsupported("Harnery does not initiate native adapter compaction."),
|
|
26
26
|
...overrides,
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
/** The one built-in profile catalog. Adding a fourth
|
|
29
|
+
/** The one built-in profile catalog. Adding a fourth adapter starts here; CLI
|
|
30
30
|
* choices, doctor metadata, workflow dispatch, and the bench derive from it. */
|
|
31
|
-
export const
|
|
31
|
+
export const BUILTIN_ADAPTER_PROFILES = {
|
|
32
32
|
"claude-code": {
|
|
33
33
|
id: "claude-code",
|
|
34
34
|
displayName: "Claude Code",
|
|
@@ -104,19 +104,19 @@ export const BUILTIN_HARNESS_PROFILES = {
|
|
|
104
104
|
}),
|
|
105
105
|
},
|
|
106
106
|
};
|
|
107
|
-
export const
|
|
108
|
-
export function
|
|
109
|
-
return Object.hasOwn(
|
|
107
|
+
export const BUILTIN_ADAPTER_IDS = Object.freeze(Object.keys(BUILTIN_ADAPTER_PROFILES));
|
|
108
|
+
export function isBuiltinAdapter(id) {
|
|
109
|
+
return Object.hasOwn(BUILTIN_ADAPTER_PROFILES, id);
|
|
110
110
|
}
|
|
111
|
-
export function
|
|
112
|
-
return
|
|
111
|
+
export function builtinAdapterProfile(id) {
|
|
112
|
+
return isBuiltinAdapter(id) ? BUILTIN_ADAPTER_PROFILES[id] : undefined;
|
|
113
113
|
}
|
|
114
|
-
export function
|
|
114
|
+
export function validateAdapterEffort(id, effort) {
|
|
115
115
|
if (!effort)
|
|
116
116
|
return;
|
|
117
|
-
const profile =
|
|
117
|
+
const profile = builtinAdapterProfile(id);
|
|
118
118
|
if (!profile)
|
|
119
|
-
throw new Error(`unknown
|
|
119
|
+
throw new Error(`unknown adapter ${JSON.stringify(id)}`);
|
|
120
120
|
if (!profile.effortValues.includes(effort)) {
|
|
121
121
|
const supportedValues = profile.effortValues.length ? profile.effortValues.join(", ") : "none";
|
|
122
122
|
throw new Error(`effort ${JSON.stringify(effort)} is not supported by ${id}; supported values: ${supportedValues}`);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Adapter, AdapterId } from "./types.js";
|
|
2
|
+
/** Mutable registry for embedders, initialized empty unless adapters are
|
|
3
|
+
* provided. Duplicate ids fail loud instead of silently replacing behavior. */
|
|
4
|
+
export declare class AdapterRegistry {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(adapters?: Iterable<Adapter>);
|
|
7
|
+
register(adapter: Adapter): this;
|
|
8
|
+
get(id: AdapterId): Adapter | undefined;
|
|
9
|
+
require(id: AdapterId): Adapter;
|
|
10
|
+
list(): Adapter[];
|
|
11
|
+
ids(): AdapterId[];
|
|
12
|
+
spawners(): Record<AdapterId, Adapter["spawn"]>;
|
|
13
|
+
}
|
|
14
|
+
export declare function createBuiltinAdapterRegistry(): AdapterRegistry;
|
|
15
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/registry.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAqErD;+EAC+E;AAC/E,qBAAa,eAAe;;gBAGd,QAAQ,GAAE,QAAQ,CAAC,OAAO,CAAM;IAI5C,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAYhC,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS;IAIvC,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO;IAU/B,IAAI,IAAI,OAAO,EAAE;IAIjB,GAAG,IAAI,SAAS,EAAE;IAIlB,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;CAGhD;AAED,wBAAgB,4BAA4B,IAAI,eAAe,CAE9D"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { buildClaudeInvocation, claudeCodeSpawner, normalizeClaudeResult, } from "../workflow/spawn-claude.js";
|
|
2
2
|
import { buildCodexInvocation, codexSpawner, normalizeCodexResult, } from "../workflow/spawn-codex.js";
|
|
3
3
|
import { buildCursorInvocation, cursorSpawner, normalizeCursorResult, } from "../workflow/spawn-cursor.js";
|
|
4
|
-
import {
|
|
4
|
+
import { BUILTIN_ADAPTER_IDS, BUILTIN_ADAPTER_PROFILES, } from "./profiles.js";
|
|
5
5
|
const BUILTIN_ADAPTERS = {
|
|
6
6
|
"claude-code": {
|
|
7
|
-
profile:
|
|
7
|
+
profile: BUILTIN_ADAPTER_PROFILES["claude-code"],
|
|
8
8
|
spawn: claudeCodeSpawner,
|
|
9
9
|
buildInvocation: buildClaudeInvocation,
|
|
10
10
|
normalizeResult: normalizeClaudeResult,
|
|
@@ -29,7 +29,7 @@ const BUILTIN_ADAPTERS = {
|
|
|
29
29
|
},
|
|
30
30
|
},
|
|
31
31
|
codex: {
|
|
32
|
-
profile:
|
|
32
|
+
profile: BUILTIN_ADAPTER_PROFILES.codex,
|
|
33
33
|
spawn: codexSpawner,
|
|
34
34
|
buildInvocation: buildCodexInvocation,
|
|
35
35
|
normalizeResult: normalizeCodexResult,
|
|
@@ -45,7 +45,7 @@ const BUILTIN_ADAPTERS = {
|
|
|
45
45
|
},
|
|
46
46
|
},
|
|
47
47
|
cursor: {
|
|
48
|
-
profile:
|
|
48
|
+
profile: BUILTIN_ADAPTER_PROFILES.cursor,
|
|
49
49
|
spawn: cursorSpawner,
|
|
50
50
|
buildInvocation: buildCursorInvocation,
|
|
51
51
|
normalizeResult: normalizeCursorResult,
|
|
@@ -70,7 +70,7 @@ const BUILTIN_ADAPTERS = {
|
|
|
70
70
|
};
|
|
71
71
|
/** Mutable registry for embedders, initialized empty unless adapters are
|
|
72
72
|
* provided. Duplicate ids fail loud instead of silently replacing behavior. */
|
|
73
|
-
export class
|
|
73
|
+
export class AdapterRegistry {
|
|
74
74
|
#adapters = new Map();
|
|
75
75
|
constructor(adapters = []) {
|
|
76
76
|
for (const adapter of adapters)
|
|
@@ -79,11 +79,11 @@ export class HarnessRegistry {
|
|
|
79
79
|
register(adapter) {
|
|
80
80
|
const id = adapter.profile.id.trim();
|
|
81
81
|
if (!id)
|
|
82
|
-
throw new Error("
|
|
82
|
+
throw new Error("adapter adapter id cannot be empty");
|
|
83
83
|
if (this.#adapters.has(id))
|
|
84
|
-
throw new Error(`
|
|
84
|
+
throw new Error(`adapter adapter ${JSON.stringify(id)} is already registered`);
|
|
85
85
|
if (adapter.profile.binary.trim() === "") {
|
|
86
|
-
throw new Error(`
|
|
86
|
+
throw new Error(`adapter adapter ${JSON.stringify(id)} has no binary`);
|
|
87
87
|
}
|
|
88
88
|
this.#adapters.set(id, adapter);
|
|
89
89
|
return this;
|
|
@@ -94,7 +94,7 @@ export class HarnessRegistry {
|
|
|
94
94
|
require(id) {
|
|
95
95
|
const adapter = this.get(id);
|
|
96
96
|
if (!adapter) {
|
|
97
|
-
throw new Error(`unknown
|
|
97
|
+
throw new Error(`unknown adapter ${JSON.stringify(id)} (registered: ${this.ids().join(", ") || "none"})`);
|
|
98
98
|
}
|
|
99
99
|
return adapter;
|
|
100
100
|
}
|
|
@@ -108,6 +108,6 @@ export class HarnessRegistry {
|
|
|
108
108
|
return Object.fromEntries(this.list().map((adapter) => [adapter.profile.id, adapter.spawn]));
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
export function
|
|
112
|
-
return new
|
|
111
|
+
export function createBuiltinAdapterRegistry() {
|
|
112
|
+
return new AdapterRegistry(BUILTIN_ADAPTER_IDS.map((id) => BUILTIN_ADAPTERS[id]));
|
|
113
113
|
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import type { Spawner, SpawnRequest, SpawnResult } from "../workflow/types.js";
|
|
2
|
-
/** Open
|
|
2
|
+
/** Open adapter identifier. Built-ins are registered at runtime rather than
|
|
3
3
|
* repeated through closed unions in every consumer. */
|
|
4
|
-
export type
|
|
4
|
+
export type AdapterId = string;
|
|
5
5
|
export type CapabilitySupport = "supported" | "partial" | "unsupported" | "unknown";
|
|
6
|
-
export declare const
|
|
7
|
-
export type
|
|
6
|
+
export declare const ADAPTER_CAPABILITY_DIMENSIONS: readonly ["invocation", "modelSelection", "effortSelection", "maxTurns", "finalResult", "sessionId", "cost", "toolEvidence", "policyMapping", "filesystemPolicyProjection", "interruption", "streaming", "steering", "resume", "images", "contextTelemetry", "preCompactionSignal", "postCompactionSignal", "compaction"];
|
|
7
|
+
export type AdapterCapabilityDimension = (typeof ADAPTER_CAPABILITY_DIMENSIONS)[number];
|
|
8
8
|
export interface CapabilityClaim {
|
|
9
9
|
support: CapabilitySupport;
|
|
10
10
|
/** Operational qualification. Required for partial/unknown claims and useful
|
|
11
11
|
* whenever "supported" has a narrower meaning than the vendor CLI itself. */
|
|
12
12
|
note?: string;
|
|
13
13
|
}
|
|
14
|
-
export type
|
|
15
|
-
/** What one
|
|
16
|
-
* (ADR 0039). `null` means the
|
|
17
|
-
* fact about the
|
|
14
|
+
export type AdapterCapabilities = Record<AdapterCapabilityDimension, CapabilityClaim>;
|
|
15
|
+
/** What one adapter can represent of a filesystem-policy projection
|
|
16
|
+
* (ADR 0039). `null` means the adapter does not distinguish that, which is a
|
|
17
|
+
* fact about the adapter rather than something to paper over: a projection the
|
|
18
18
|
* adapter would silently drop must be refused instead. */
|
|
19
|
-
export interface
|
|
19
|
+
export interface AdapterSandboxProjection {
|
|
20
20
|
/** Native representation per canonical mode, or null when unrepresentable. */
|
|
21
21
|
modes: Record<"read-only" | "workspace-write", string | null>;
|
|
22
|
-
/** Whether the
|
|
22
|
+
/** Whether the adapter accepts an explicit writable-root set. */
|
|
23
23
|
writableRoots: boolean;
|
|
24
24
|
}
|
|
25
|
-
export interface
|
|
26
|
-
id:
|
|
25
|
+
export interface AdapterProfile {
|
|
26
|
+
id: AdapterId;
|
|
27
27
|
displayName: string;
|
|
28
28
|
binary: string;
|
|
29
29
|
installHint: string;
|
|
@@ -33,7 +33,7 @@ export interface HarnessProfile {
|
|
|
33
33
|
authModel: "own-auth";
|
|
34
34
|
modelFamily: "claude" | "gpt" | "multi";
|
|
35
35
|
effortValues: readonly string[];
|
|
36
|
-
capabilities:
|
|
36
|
+
capabilities: AdapterCapabilities;
|
|
37
37
|
/** The last real vendor CLI contract used to validate this declaration. */
|
|
38
38
|
verified?: {
|
|
39
39
|
date: string;
|
|
@@ -41,16 +41,16 @@ export interface HarnessProfile {
|
|
|
41
41
|
};
|
|
42
42
|
/** How this adapter projects host filesystem policy into the vendor's own
|
|
43
43
|
* sandbox (ADR 0039). Absent means it cannot project any of it. */
|
|
44
|
-
sandboxProjection?:
|
|
44
|
+
sandboxProjection?: AdapterSandboxProjection;
|
|
45
45
|
}
|
|
46
46
|
/** Fully planned child invocation. `resultFile` is used by adapters such as
|
|
47
47
|
* Codex that deliver the authoritative final answer out-of-band. */
|
|
48
|
-
export interface
|
|
48
|
+
export interface AdapterInvocation {
|
|
49
49
|
argv: string[];
|
|
50
50
|
resultFile?: string;
|
|
51
51
|
}
|
|
52
52
|
/** Vendor subprocess material passed through an adapter's normalizer. */
|
|
53
|
-
export interface
|
|
53
|
+
export interface AdapterRawResult {
|
|
54
54
|
stdout: string;
|
|
55
55
|
stderr: string;
|
|
56
56
|
exitCode: number;
|
|
@@ -67,8 +67,8 @@ export interface HarnessRawResult {
|
|
|
67
67
|
* (run never started) rather than a work failure. Absent on ordinary exit. */
|
|
68
68
|
spawnErrno?: string;
|
|
69
69
|
}
|
|
70
|
-
export interface
|
|
71
|
-
raw:
|
|
70
|
+
export interface AdapterBenchFixture {
|
|
71
|
+
raw: AdapterRawResult;
|
|
72
72
|
expected: Pick<SpawnResult, "ok" | "text"> & {
|
|
73
73
|
sessionId?: string;
|
|
74
74
|
costUsd?: number;
|
|
@@ -77,11 +77,11 @@ export interface HarnessBenchFixture {
|
|
|
77
77
|
/** One registered executable adapter. The same planner and normalizer power
|
|
78
78
|
* production workflow runs and the offline conformance bench, preventing the
|
|
79
79
|
* bench from testing a parallel mock implementation. */
|
|
80
|
-
export interface
|
|
81
|
-
profile:
|
|
80
|
+
export interface Adapter {
|
|
81
|
+
profile: AdapterProfile;
|
|
82
82
|
spawn: Spawner;
|
|
83
|
-
buildInvocation: (request: SpawnRequest, resultFile?: string) =>
|
|
84
|
-
normalizeResult: (raw:
|
|
85
|
-
fixture:
|
|
83
|
+
buildInvocation: (request: SpawnRequest, resultFile?: string) => AdapterInvocation;
|
|
84
|
+
normalizeResult: (raw: AdapterRawResult) => SpawnResult;
|
|
85
|
+
fixture: AdapterBenchFixture;
|
|
86
86
|
}
|
|
87
87
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE/E;uDACuD;AACvD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAEpF,eAAO,MAAM,6BAA6B,2TAoBhC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAExF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B;iFAC6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,0BAA0B,EAAE,eAAe,CAAC,CAAC;AAEtF;;;0DAG0D;AAC1D,MAAM,WAAW,wBAAwB;IACvC,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC,WAAW,GAAG,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,SAAS,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,gBAAgB,CAAC;IAClC,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;IACxC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,EAAE,mBAAmB,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C;uEACmE;IACnE,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;CAC9C;AAED;oEACoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;0BAGsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;kFAG8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,gBAAgB,CAAC;IACtB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG;QAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;wDAEwD;AACxD,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAC;IACnF,eAAe,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,WAAW,CAAC;IACxD,OAAO,EAAE,mBAAmB,CAAC;CAC9B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Emit canonical events by spawning `agent-coord emit-event`. Used by every
|
|
3
|
-
* `agents …` / `
|
|
3
|
+
* `agents …` / `journal` / `presence` write that has a canonical state event.
|
|
4
4
|
*
|
|
5
5
|
* Soft-fails: never throws into the caller. A failed emit logs to stderr
|
|
6
6
|
* (visible to operators in their terminal) but never breaks the CLI flow.
|
|
@@ -12,7 +12,7 @@ export interface CanonicalEmitInput {
|
|
|
12
12
|
type: string;
|
|
13
13
|
owner: string;
|
|
14
14
|
session: string;
|
|
15
|
-
|
|
15
|
+
adapter: "claude-code" | "cursor" | "codex";
|
|
16
16
|
data: Record<string, unknown>;
|
|
17
17
|
turnId?: string;
|
|
18
18
|
parentSessionId?: string;
|
|
@@ -36,7 +36,7 @@ export declare function resolveEmitRoot(start?: string): string | null;
|
|
|
36
36
|
export declare function emitCanonical(input: CanonicalEmitInput): void;
|
|
37
37
|
/**
|
|
38
38
|
* Normalize the heartbeat's `platform` field (which uses snake_case
|
|
39
|
-
* `claude_code`) to the canonical kebab-case
|
|
39
|
+
* `claude_code`) to the canonical kebab-case Adapter type.
|
|
40
40
|
*/
|
|
41
|
-
export declare function
|
|
41
|
+
export declare function normalizeAdapter(platform: string | undefined): "claude-code" | "cursor" | "codex";
|
|
42
42
|
//# sourceMappingURL=canonical-emit.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Emit canonical events by spawning `agent-coord emit-event`. Used by every
|
|
3
|
-
* `agents …` / `
|
|
3
|
+
* `agents …` / `journal` / `presence` write that has a canonical state event.
|
|
4
4
|
*
|
|
5
5
|
* Soft-fails: never throws into the caller. A failed emit logs to stderr
|
|
6
6
|
* (visible to operators in their terminal) but never breaks the CLI flow.
|
|
@@ -57,8 +57,8 @@ export function emitCanonical(input) {
|
|
|
57
57
|
input.owner,
|
|
58
58
|
"--session",
|
|
59
59
|
input.session,
|
|
60
|
-
"--
|
|
61
|
-
input.
|
|
60
|
+
"--adapter",
|
|
61
|
+
input.adapter,
|
|
62
62
|
"--data-json",
|
|
63
63
|
JSON.stringify(input.data),
|
|
64
64
|
];
|
|
@@ -88,9 +88,9 @@ export function emitCanonical(input) {
|
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
90
90
|
* Normalize the heartbeat's `platform` field (which uses snake_case
|
|
91
|
-
* `claude_code`) to the canonical kebab-case
|
|
91
|
+
* `claude_code`) to the canonical kebab-case Adapter type.
|
|
92
92
|
*/
|
|
93
|
-
export function
|
|
93
|
+
export function normalizeAdapter(platform) {
|
|
94
94
|
if (platform === "cursor")
|
|
95
95
|
return "cursor";
|
|
96
96
|
if (platform === "codex")
|
|
@@ -38,7 +38,7 @@ export function emitAndProject(input, opts = {}) {
|
|
|
38
38
|
parent_session_id: envelope.parent_session_id,
|
|
39
39
|
turn_id: envelope.turn_id,
|
|
40
40
|
parent_turn_id: envelope.parent_turn_id,
|
|
41
|
-
|
|
41
|
+
adapter: envelope.adapter,
|
|
42
42
|
source: envelope.source,
|
|
43
43
|
data: envelope.data,
|
|
44
44
|
},
|