harnery 0.33.0 → 0.34.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/dist/commander.d.ts.map +1 -1
- package/dist/commander.js +4 -0
- package/dist/commands/adapter.js +2 -2
- package/dist/commands/agents.d.ts +144 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +1220 -588
- package/dist/commands/artifacts.d.ts.map +1 -1
- package/dist/commands/artifacts.js +7 -6
- package/dist/commands/backup.d.ts +1 -1
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +29 -16
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +234 -12
- package/dist/commands/checkpoint.d.ts.map +1 -1
- package/dist/commands/checkpoint.js +3 -2
- package/dist/commands/claude-desktop.d.ts +1 -1
- package/dist/commands/claude-desktop.d.ts.map +1 -1
- package/dist/commands/claude-desktop.js +3 -74
- package/dist/commands/context.js +1 -6
- package/dist/commands/decision.d.ts.map +1 -1
- package/dist/commands/decision.js +22 -38
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +91 -28
- package/dist/commands/doctor.js +10 -1
- package/dist/commands/events.d.ts +5 -0
- package/dist/commands/events.d.ts.map +1 -0
- package/dist/commands/events.js +189 -0
- package/dist/commands/governor.d.ts.map +1 -1
- package/dist/commands/governor.js +13 -4
- package/dist/commands/init.d.ts +9 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +223 -51
- package/dist/commands/journal.d.ts.map +1 -1
- package/dist/commands/journal.js +4 -13
- package/dist/commands/ledger-v3.d.ts +5 -0
- package/dist/commands/ledger-v3.d.ts.map +1 -0
- package/dist/commands/ledger-v3.js +91 -0
- package/dist/commands/presence.d.ts.map +1 -1
- package/dist/commands/presence.js +11 -5
- package/dist/commands/sync.d.ts +1 -1
- package/dist/commands/sync.js +1 -1
- package/dist/commands/web.d.ts +6 -0
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +67 -7
- package/dist/commands/work.d.ts.map +1 -1
- package/dist/commands/work.js +22 -5
- package/dist/core/adapter.d.ts +5 -0
- package/dist/core/adapter.d.ts.map +1 -0
- package/dist/core/adapter.js +1 -0
- package/dist/core/adapters/attest.d.ts +5 -2
- package/dist/core/adapters/attest.d.ts.map +1 -1
- package/dist/core/adapters/attest.js +8 -3
- package/dist/core/adapters/profiles.d.ts +6 -6
- package/dist/core/adapters/profiles.d.ts.map +1 -1
- package/dist/core/adapters/profiles.js +4 -4
- package/dist/core/agents/canonical-emit.d.ts +17 -15
- package/dist/core/agents/canonical-emit.d.ts.map +1 -1
- package/dist/core/agents/canonical-emit.js +22 -22
- package/dist/core/agents/cli.js +207 -234
- package/dist/core/agents/codex-archive-v3.d.ts +14 -0
- package/dist/core/agents/codex-archive-v3.d.ts.map +1 -0
- package/dist/core/agents/codex-archive-v3.js +110 -0
- package/dist/core/agents/coord-client.d.ts +19 -81
- package/dist/core/agents/coord-client.d.ts.map +1 -1
- package/dist/core/agents/coord-client.js +65 -155
- package/dist/core/agents/finalization.d.ts +4 -1
- package/dist/core/agents/finalization.d.ts.map +1 -1
- package/dist/core/agents/finalization.js +89 -32
- package/dist/core/agents/index.d.ts +4 -5
- package/dist/core/agents/index.d.ts.map +1 -1
- package/dist/core/agents/index.js +4 -5
- package/dist/core/agents/live-authority-v3.d.ts +59 -0
- package/dist/core/agents/live-authority-v3.d.ts.map +1 -0
- package/dist/core/agents/live-authority-v3.js +233 -0
- package/dist/core/agents/live-lifecycle-v3.d.ts +20 -0
- package/dist/core/agents/live-lifecycle-v3.d.ts.map +1 -0
- package/dist/core/agents/live-lifecycle-v3.js +91 -0
- package/dist/core/agents/live-observation-v3.d.ts +25 -0
- package/dist/core/agents/live-observation-v3.d.ts.map +1 -0
- package/dist/core/agents/live-observation-v3.js +157 -0
- package/dist/core/agents/render/prompt-context.d.ts +4 -4
- package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.js +23 -58
- package/dist/core/agents/render/session-context.d.ts +1 -1
- package/dist/core/agents/render/session-context.d.ts.map +1 -1
- package/dist/core/agents/render/session-context.js +8 -32
- package/dist/core/agents/rules/claim-conflict.d.ts +3 -3
- package/dist/core/agents/rules/claim-conflict.d.ts.map +1 -1
- package/dist/core/agents/rules/claim-conflict.js +79 -127
- package/dist/core/agents/rules/commit-conflict.d.ts.map +1 -1
- package/dist/core/agents/rules/commit-conflict.js +3 -18
- package/dist/core/agents/rules/stop-hook.d.ts +9 -50
- package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
- package/dist/core/agents/rules/stop-hook.js +193 -236
- package/dist/core/agents/session-events.d.ts +5 -7
- package/dist/core/agents/session-events.d.ts.map +1 -1
- package/dist/core/agents/session-events.js +127 -95
- package/dist/core/agents/session-finalization-state-v3.d.ts +30 -0
- package/dist/core/agents/session-finalization-state-v3.d.ts.map +1 -0
- package/dist/core/agents/session-finalization-state-v3.js +40 -0
- package/dist/core/agents/session-finalizer-v3.d.ts +107 -0
- package/dist/core/agents/session-finalizer-v3.d.ts.map +1 -0
- package/dist/core/agents/session-finalizer-v3.js +734 -0
- package/dist/core/agents/session-name-display.d.ts +40 -0
- package/dist/core/agents/session-name-display.d.ts.map +1 -0
- package/dist/core/agents/session-name-display.js +119 -0
- package/dist/core/agents/state/activity-log.d.ts +3 -3
- package/dist/core/agents/state/activity-log.d.ts.map +1 -1
- package/dist/core/agents/state/activity-log.js +7 -16
- package/dist/core/agents/state/heartbeat-writer.d.ts +23 -55
- package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
- package/dist/core/agents/state/heartbeat-writer.js +56 -228
- package/dist/core/agents/state/live-coordination-view.d.ts +31 -0
- package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -0
- package/dist/core/agents/state/live-coordination-view.js +209 -0
- package/dist/core/agents/state/session-state.d.ts +4 -3
- package/dist/core/agents/state/session-state.d.ts.map +1 -1
- package/dist/core/agents/state/session-state.js +18 -9
- package/dist/core/agents/state/stale-sweep.d.ts +1 -1
- package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
- package/dist/core/agents/state/stale-sweep.js +26 -15
- package/dist/core/artifacts/index.d.ts.map +1 -1
- package/dist/core/artifacts/index.js +5 -7
- package/dist/core/config.d.ts +33 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +98 -2
- package/dist/core/context/index.d.ts +1 -4
- package/dist/core/context/index.d.ts.map +1 -1
- package/dist/core/context/index.js +9 -9
- package/dist/core/events/span-parent.d.ts +15 -0
- package/dist/core/events/span-parent.d.ts.map +1 -0
- package/dist/core/events/span-parent.js +34 -0
- package/dist/core/events/v3/advance.d.ts +14 -0
- package/dist/core/events/v3/advance.d.ts.map +1 -0
- package/dist/core/events/v3/advance.js +134 -0
- package/dist/core/events/v3/authority-outbox.d.ts +78 -0
- package/dist/core/events/v3/authority-outbox.d.ts.map +1 -0
- package/dist/core/events/v3/authority-outbox.js +399 -0
- package/dist/core/events/v3/base-builder.d.ts +20 -0
- package/dist/core/events/v3/base-builder.d.ts.map +1 -0
- package/dist/core/events/v3/base-builder.js +29 -0
- package/dist/core/events/v3/base-contract.d.ts +7576 -0
- package/dist/core/events/v3/base-contract.d.ts.map +1 -0
- package/dist/core/events/v3/base-contract.js +647 -0
- package/dist/core/events/v3/bootstrap.d.ts +34 -0
- package/dist/core/events/v3/bootstrap.d.ts.map +1 -0
- package/dist/core/events/v3/bootstrap.js +175 -0
- package/dist/core/events/v3/builder.d.ts +20 -0
- package/dist/core/events/v3/builder.d.ts.map +1 -0
- package/dist/core/events/v3/builder.js +28 -0
- package/dist/core/events/v3/canonical.d.ts +31 -0
- package/dist/core/events/v3/canonical.d.ts.map +1 -0
- package/dist/core/events/v3/canonical.js +100 -0
- package/dist/core/events/v3/capabilities.d.ts +31 -0
- package/dist/core/events/v3/capabilities.d.ts.map +1 -0
- package/dist/core/events/v3/capabilities.js +107 -0
- package/dist/core/events/v3/capability-drift.d.ts +22 -0
- package/dist/core/events/v3/capability-drift.d.ts.map +1 -0
- package/dist/core/events/v3/capability-drift.js +134 -0
- package/dist/core/events/v3/catalog.d.ts +38 -0
- package/dist/core/events/v3/catalog.d.ts.map +1 -0
- package/dist/core/events/v3/catalog.js +135 -0
- package/dist/core/events/v3/clock-order.d.ts +34 -0
- package/dist/core/events/v3/clock-order.d.ts.map +1 -0
- package/dist/core/events/v3/clock-order.js +35 -0
- package/dist/core/events/v3/contract.d.ts +171 -0
- package/dist/core/events/v3/contract.d.ts.map +1 -0
- package/dist/core/events/v3/contract.js +180 -0
- package/dist/core/events/v3/control.d.ts +111 -0
- package/dist/core/events/v3/control.d.ts.map +1 -0
- package/dist/core/events/v3/control.js +419 -0
- package/dist/core/events/v3/coordination-view.d.ts +69 -0
- package/dist/core/events/v3/coordination-view.d.ts.map +1 -0
- package/dist/core/events/v3/coordination-view.js +119 -0
- package/dist/core/events/v3/economics.d.ts +77 -0
- package/dist/core/events/v3/economics.d.ts.map +1 -0
- package/dist/core/events/v3/economics.js +274 -0
- package/dist/core/events/v3/finalization-view.d.ts +26 -0
- package/dist/core/events/v3/finalization-view.d.ts.map +1 -0
- package/dist/core/events/v3/finalization-view.js +37 -0
- package/dist/core/events/v3/fingerprint-keys.d.ts +25 -0
- package/dist/core/events/v3/fingerprint-keys.d.ts.map +1 -0
- package/dist/core/events/v3/fingerprint-keys.js +217 -0
- package/dist/core/events/v3/generated.d.ts +4 -0
- package/dist/core/events/v3/generated.d.ts.map +1 -0
- package/dist/core/events/v3/generated.js +47 -0
- package/dist/core/events/v3/ids.d.ts +9 -0
- package/dist/core/events/v3/ids.d.ts.map +1 -0
- package/dist/core/events/v3/ids.js +25 -0
- package/dist/core/events/v3/index.d.ts +35 -0
- package/dist/core/events/v3/index.d.ts.map +1 -0
- package/dist/core/events/v3/index.js +33 -0
- package/dist/core/events/v3/latency.d.ts +63 -0
- package/dist/core/events/v3/latency.d.ts.map +1 -0
- package/dist/core/events/v3/latency.js +412 -0
- package/dist/core/events/v3/live-feed.d.ts +45 -0
- package/dist/core/events/v3/live-feed.d.ts.map +1 -0
- package/dist/core/events/v3/live-feed.js +246 -0
- package/dist/core/events/v3/live-observation.d.ts +35 -0
- package/dist/core/events/v3/live-observation.d.ts.map +1 -0
- package/dist/core/events/v3/live-observation.js +1 -0
- package/dist/core/events/v3/live-routing.d.ts +57 -0
- package/dist/core/events/v3/live-routing.d.ts.map +1 -0
- package/dist/core/events/v3/live-routing.js +107 -0
- package/dist/core/events/v3/producers/command-recorder.d.ts +67 -0
- package/dist/core/events/v3/producers/command-recorder.d.ts.map +1 -0
- package/dist/core/events/v3/producers/command-recorder.js +477 -0
- package/dist/core/events/v3/producers/command.d.ts +50 -0
- package/dist/core/events/v3/producers/command.d.ts.map +1 -0
- package/dist/core/events/v3/producers/command.js +135 -0
- package/dist/core/events/v3/producers/coordination-recorder.d.ts +53 -0
- package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -0
- package/dist/core/events/v3/producers/coordination-recorder.js +376 -0
- package/dist/core/events/v3/producers/coordination.d.ts +90 -0
- package/dist/core/events/v3/producers/coordination.d.ts.map +1 -0
- package/dist/core/events/v3/producers/coordination.js +229 -0
- package/dist/core/events/v3/producers/hook-base.d.ts +54 -0
- package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -0
- package/dist/core/events/v3/producers/hook-base.js +424 -0
- package/dist/core/events/v3/producers/hook.d.ts +29 -0
- package/dist/core/events/v3/producers/hook.d.ts.map +1 -0
- package/dist/core/events/v3/producers/hook.js +71 -0
- package/dist/core/events/v3/producers/intake.d.ts +65 -0
- package/dist/core/events/v3/producers/intake.d.ts.map +1 -0
- package/dist/core/events/v3/producers/intake.js +244 -0
- package/dist/core/events/v3/producers/recorder.d.ts +240 -0
- package/dist/core/events/v3/producers/recorder.d.ts.map +1 -0
- package/dist/core/events/v3/producers/recorder.js +2176 -0
- package/dist/core/events/v3/projection.d.ts +101 -0
- package/dist/core/events/v3/projection.d.ts.map +1 -0
- package/dist/core/events/v3/projection.js +479 -0
- package/dist/core/events/v3/reader.d.ts +75 -0
- package/dist/core/events/v3/reader.d.ts.map +1 -0
- package/dist/core/events/v3/reader.js +778 -0
- package/dist/core/events/v3/recovery-record.d.ts +47 -0
- package/dist/core/events/v3/recovery-record.d.ts.map +1 -0
- package/dist/core/events/v3/recovery-record.js +167 -0
- package/dist/core/events/v3/recovery.d.ts +22 -0
- package/dist/core/events/v3/recovery.d.ts.map +1 -0
- package/dist/core/events/v3/recovery.js +227 -0
- package/dist/core/events/v3/span-state.d.ts +52 -0
- package/dist/core/events/v3/span-state.d.ts.map +1 -0
- package/dist/core/events/v3/span-state.js +142 -0
- package/dist/core/events/v3/targets.d.ts +23 -0
- package/dist/core/events/v3/targets.d.ts.map +1 -0
- package/dist/core/events/v3/targets.js +134 -0
- package/dist/core/events/v3/turn-telemetry.d.ts +41 -0
- package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -0
- package/dist/core/events/v3/turn-telemetry.js +168 -0
- package/dist/core/events/v3/validate.d.ts +9 -0
- package/dist/core/events/v3/validate.d.ts.map +1 -0
- package/dist/core/events/v3/validate.js +281 -0
- package/dist/core/events/v3/writer.d.ts +56 -0
- package/dist/core/events/v3/writer.d.ts.map +1 -0
- package/dist/core/events/v3/writer.js +335 -0
- package/dist/core/governor/index.d.ts +1 -1
- package/dist/core/governor/index.d.ts.map +1 -1
- package/dist/core/governor/index.js +1 -1
- package/dist/core/governor/plan-api.d.ts +2 -1
- package/dist/core/governor/plan-api.d.ts.map +1 -1
- package/dist/core/governor/plan-api.js +6 -3
- package/dist/core/governor/read.d.ts +1 -1
- package/dist/core/governor/read.d.ts.map +1 -1
- package/dist/core/governor/read.js +1 -1
- package/dist/core/governor/state.d.ts +9 -0
- package/dist/core/governor/state.d.ts.map +1 -1
- package/dist/core/governor/state.js +40 -3
- package/dist/core/guard/config.d.ts +5 -0
- package/dist/core/guard/config.d.ts.map +1 -0
- package/dist/core/guard/config.js +157 -0
- package/dist/core/guard/coordinator.d.ts +14 -0
- package/dist/core/guard/coordinator.d.ts.map +1 -0
- package/dist/core/guard/coordinator.js +173 -0
- package/dist/core/guard/evaluator.d.ts +4 -0
- package/dist/core/guard/evaluator.d.ts.map +1 -0
- package/dist/core/guard/evaluator.js +242 -0
- package/dist/core/guard/evidence-v3.d.ts +15 -0
- package/dist/core/guard/evidence-v3.d.ts.map +1 -0
- package/dist/core/guard/evidence-v3.js +171 -0
- package/dist/core/guard/index.d.ts +10 -0
- package/dist/core/guard/index.d.ts.map +1 -0
- package/dist/core/guard/index.js +6 -0
- package/dist/core/guard/live-source-v3.d.ts +40 -0
- package/dist/core/guard/live-source-v3.d.ts.map +1 -0
- package/dist/core/guard/live-source-v3.js +128 -0
- package/dist/core/guard/storage.d.ts +27 -0
- package/dist/core/guard/storage.d.ts.map +1 -0
- package/dist/core/guard/storage.js +140 -0
- package/dist/core/guard/types.d.ts +119 -0
- package/dist/core/guard/types.d.ts.map +1 -0
- package/dist/core/guard/types.js +1 -0
- package/dist/core/hooks/adapter/detect.d.ts +18 -1
- package/dist/core/hooks/adapter/detect.d.ts.map +1 -1
- package/dist/core/hooks/adapter/detect.js +29 -0
- package/dist/core/hooks/adapter/events.d.ts +7 -4
- package/dist/core/hooks/adapter/events.d.ts.map +1 -1
- package/dist/core/hooks/adapter/events.js +12 -4
- package/dist/core/hooks/adapter/output.d.ts +2 -2
- package/dist/core/hooks/adapter/output.d.ts.map +1 -1
- package/dist/core/hooks/adapter/parse.d.ts +7 -4
- package/dist/core/hooks/adapter/parse.d.ts.map +1 -1
- package/dist/core/hooks/adapter/parse.js +63 -25
- package/dist/core/hooks/adapter/wiring.d.ts +30 -4
- package/dist/core/hooks/adapter/wiring.d.ts.map +1 -1
- package/dist/core/hooks/adapter/wiring.js +89 -11
- package/dist/core/hooks/cli.d.ts +1 -1
- package/dist/core/hooks/cli.js +305 -444
- package/dist/core/hooks/effects/image-capture.d.ts +20 -34
- package/dist/core/hooks/effects/image-capture.d.ts.map +1 -1
- package/dist/core/hooks/effects/image-capture.js +212 -221
- package/dist/core/hooks/effects/index.d.ts +1 -9
- package/dist/core/hooks/effects/index.d.ts.map +1 -1
- package/dist/core/hooks/effects/index.js +1 -24
- package/dist/core/hooks/events/input-hash.d.ts +7 -0
- package/dist/core/hooks/events/input-hash.d.ts.map +1 -0
- package/dist/core/hooks/events/input-hash.js +43 -0
- package/dist/core/hooks/index.d.ts +4 -3
- package/dist/core/hooks/index.d.ts.map +1 -1
- package/dist/core/hooks/index.js +2 -3
- package/dist/core/hooks/resolve/coord-root.d.ts +1 -1
- package/dist/core/hooks/resolve/coord-root.js +1 -1
- package/dist/core/hooks/resolve/owner.d.ts +16 -15
- package/dist/core/hooks/resolve/owner.d.ts.map +1 -1
- package/dist/core/hooks/resolve/owner.js +51 -42
- package/dist/core/hooks/resolve/transcript.d.ts +33 -3
- package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
- package/dist/core/hooks/resolve/transcript.js +155 -14
- package/dist/core/hooks/session-name-presence.d.ts +9 -10
- package/dist/core/hooks/session-name-presence.d.ts.map +1 -1
- package/dist/core/hooks/session-name-presence.js +15 -15
- package/dist/core/hooks/unsafe-cross-shell.d.ts +1 -1
- package/dist/core/hooks/unsafe-cross-shell.d.ts.map +1 -1
- package/dist/core/journal/index.d.ts +2 -2
- package/dist/core/journal/index.d.ts.map +1 -1
- package/dist/core/journal/index.js +9 -22
- package/dist/core/presence/blob.d.ts +4 -3
- package/dist/core/presence/blob.d.ts.map +1 -1
- package/dist/core/presence/blob.js +45 -44
- package/dist/core/presence/codec-digest.d.ts +29 -0
- package/dist/core/presence/codec-digest.d.ts.map +1 -0
- package/dist/core/presence/codec-digest.js +170 -0
- package/dist/core/presence/relay-client.d.ts +1 -1
- package/dist/core/presence/relay-client.d.ts.map +1 -1
- package/dist/core/presence/relay-client.js +5 -5
- package/dist/core/work/index.d.ts +1 -1
- package/dist/core/work/index.d.ts.map +1 -1
- package/dist/core/work/index.js +1 -1
- package/dist/core/work/read.d.ts +1 -1
- package/dist/core/work/read.d.ts.map +1 -1
- package/dist/core/work/read.js +1 -1
- package/dist/core/work/runner.d.ts.map +1 -1
- package/dist/core/work/runner.js +6 -0
- package/dist/core/work/state.d.ts +9 -0
- package/dist/core/work/state.d.ts.map +1 -1
- package/dist/core/work/state.js +17 -3
- package/dist/core/workflow/engine.js +24 -25
- package/dist/core/workflow/live-session-v3.d.ts +19 -0
- package/dist/core/workflow/live-session-v3.d.ts.map +1 -0
- package/dist/core/workflow/live-session-v3.js +86 -0
- package/dist/core/workflow/scope-id.d.ts +3 -0
- package/dist/core/workflow/scope-id.d.ts.map +1 -0
- package/dist/core/workflow/scope-id.js +5 -0
- package/dist/core/workflow/workspaces/leases.d.ts +4 -0
- package/dist/core/workflow/workspaces/leases.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/leases.js +53 -19
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/browser/client.d.ts +41 -0
- package/dist/lib/browser/client.d.ts.map +1 -1
- package/dist/lib/browser/client.js +203 -0
- package/dist/lib/browser/critique.d.ts +28 -2
- package/dist/lib/browser/critique.d.ts.map +1 -1
- package/dist/lib/browser/critique.js +74 -18
- package/dist/lib/browser/geometry.d.ts +1 -1
- package/dist/lib/browser/geometry.d.ts.map +1 -1
- package/dist/lib/browser/geometry.js +130 -6
- package/dist/lib/browser/index.d.ts +3 -0
- package/dist/lib/browser/index.d.ts.map +1 -1
- package/dist/lib/browser/index.js +3 -0
- package/dist/lib/browser/qa-plan.d.ts +174 -0
- package/dist/lib/browser/qa-plan.d.ts.map +1 -0
- package/dist/lib/browser/qa-plan.js +321 -0
- package/dist/lib/browser/qa-reuse.d.ts +99 -0
- package/dist/lib/browser/qa-reuse.d.ts.map +1 -0
- package/dist/lib/browser/qa-reuse.js +222 -0
- package/dist/lib/browser/qa-snapshot.d.ts +64 -0
- package/dist/lib/browser/qa-snapshot.d.ts.map +1 -0
- package/dist/lib/browser/qa-snapshot.js +171 -0
- package/dist/lib/browser/runts.d.ts.map +1 -1
- package/dist/lib/browser/runts.js +22 -1
- package/dist/lib/browser/tiling.d.ts +71 -0
- package/dist/lib/browser/tiling.d.ts.map +1 -0
- package/dist/lib/browser/tiling.js +118 -0
- package/dist/lib/claude-desktop.d.ts +0 -47
- package/dist/lib/claude-desktop.d.ts.map +1 -1
- package/dist/lib/claude-desktop.js +1 -169
- package/dist/lib/context/index.d.ts +0 -3
- package/dist/lib/context/index.d.ts.map +1 -1
- package/dist/lib/context/index.js +20 -42
- package/dist/lib/council/index.d.ts +2 -2
- package/dist/lib/council/index.d.ts.map +1 -1
- package/dist/lib/council/index.js +9 -20
- package/dist/lib/docs-frontmatter.d.ts +1 -6
- package/dist/lib/docs-frontmatter.d.ts.map +1 -1
- package/dist/lib/docs-frontmatter.js +12 -78
- package/dist/lib/docs-index.d.ts +9 -0
- package/dist/lib/docs-index.d.ts.map +1 -1
- package/dist/lib/docs-index.js +32 -3
- package/dist/lib/docs-lint.d.ts.map +1 -1
- package/dist/lib/docs-lint.js +14 -30
- package/dist/lib/docs-metadata-audit.d.ts +19 -0
- package/dist/lib/docs-metadata-audit.d.ts.map +1 -0
- package/dist/lib/docs-metadata-audit.js +132 -0
- package/dist/lib/docs-metadata-managed.d.ts +23 -0
- package/dist/lib/docs-metadata-managed.d.ts.map +1 -0
- package/dist/lib/docs-metadata-managed.js +78 -0
- package/dist/lib/docs-metadata-sync.d.ts +20 -0
- package/dist/lib/docs-metadata-sync.d.ts.map +1 -0
- package/dist/lib/docs-metadata-sync.js +222 -0
- package/dist/lib/docs-metadata-v2-schema.d.ts +273 -0
- package/dist/lib/docs-metadata-v2-schema.d.ts.map +1 -0
- package/dist/lib/docs-metadata-v2-schema.js +134 -0
- package/dist/lib/docs-metadata-v2.d.ts +21 -0
- package/dist/lib/docs-metadata-v2.d.ts.map +1 -0
- package/dist/lib/docs-metadata-v2.js +424 -0
- package/dist/lib/docs-new.d.ts +11 -0
- package/dist/lib/docs-new.d.ts.map +1 -0
- package/dist/lib/docs-new.js +52 -0
- package/dist/lib/docs-sweep.d.ts.map +1 -1
- package/dist/lib/docs-sweep.js +45 -29
- package/dist/lib/headless/index.d.ts +98 -0
- package/dist/lib/headless/index.d.ts.map +1 -0
- package/dist/lib/headless/index.js +211 -0
- package/dist/lib/identities/assume.d.ts +4 -4
- package/dist/lib/identities/assume.d.ts.map +1 -1
- package/dist/lib/identities/assume.js +52 -68
- package/dist/lib/instructions/apply.d.ts +5 -4
- package/dist/lib/instructions/apply.d.ts.map +1 -1
- package/dist/lib/instructions/apply.js +32 -20
- package/dist/lib/instructions/bundle.d.ts +1 -1
- package/dist/lib/instructions/bundle.d.ts.map +1 -1
- package/dist/lib/instructions/bundle.js +1 -1
- package/dist/lib/instructions/splice.d.ts +0 -1
- package/dist/lib/instructions/splice.d.ts.map +1 -1
- package/dist/lib/instructions/splice.js +22 -6
- package/dist/lib/instructions/templates.d.ts +7 -5
- package/dist/lib/instructions/templates.d.ts.map +1 -1
- package/dist/lib/instructions/templates.js +79 -9
- package/package.json +26 -5
- package/schemas/config.schema.json +120 -2
- package/schemas/docs-metadata-v2.schema.json +441 -0
- package/schemas/event-v3.schema.json +24472 -0
- package/src/commander.ts +4 -0
- package/src/commands/adapter.ts +2 -2
- package/src/commands/agents.ts +1512 -592
- package/src/commands/artifacts.ts +7 -6
- package/src/commands/backup.ts +29 -21
- package/src/commands/browse.ts +349 -8
- package/src/commands/checkpoint.ts +4 -3
- package/src/commands/claude-desktop.ts +2 -101
- package/src/commands/context.ts +1 -6
- package/src/commands/decision.ts +27 -44
- package/src/commands/docs.ts +100 -33
- package/src/commands/doctor.ts +14 -1
- package/src/commands/events.ts +256 -0
- package/src/commands/governor.ts +18 -4
- package/src/commands/init.ts +253 -57
- package/src/commands/instructions.ts +1 -1
- package/src/commands/journal.ts +4 -13
- package/src/commands/ledger-v3.ts +111 -0
- package/src/commands/presence.ts +11 -10
- package/src/commands/sync.ts +1 -1
- package/src/commands/web.ts +67 -8
- package/src/commands/work.ts +28 -5
- package/src/core/adapter.ts +5 -0
- package/src/core/adapters/attest.ts +8 -3
- package/src/core/adapters/profiles.ts +4 -6
- package/src/core/agents/canonical-emit.ts +34 -25
- package/src/core/agents/cli.ts +236 -262
- package/src/core/agents/codex-archive-v3.ts +138 -0
- package/src/core/agents/coord-client.ts +75 -188
- package/src/core/agents/finalization.ts +120 -38
- package/src/core/agents/index.ts +4 -5
- package/src/core/agents/live-authority-v3.ts +375 -0
- package/src/core/agents/live-lifecycle-v3.ts +140 -0
- package/src/core/agents/live-observation-v3.ts +216 -0
- package/src/core/agents/render/prompt-context.ts +29 -60
- package/src/core/agents/render/session-context.ts +10 -31
- package/src/core/agents/rules/claim-conflict.ts +85 -126
- package/src/core/agents/rules/commit-conflict.ts +3 -14
- package/src/core/agents/rules/stop-hook.ts +239 -293
- package/src/core/agents/session-events.ts +137 -104
- package/src/core/agents/session-finalization-state-v3.ts +90 -0
- package/src/core/agents/session-finalizer-v3.ts +953 -0
- package/src/core/agents/session-name-display.ts +149 -0
- package/src/core/agents/state/activity-log.ts +6 -14
- package/src/core/agents/state/heartbeat-writer.ts +82 -277
- package/src/core/agents/state/live-coordination-view.ts +290 -0
- package/src/core/agents/state/session-state.ts +24 -12
- package/src/core/agents/state/stale-sweep.ts +40 -17
- package/src/core/artifacts/index.ts +4 -5
- package/src/core/config.ts +148 -3
- package/src/core/context/index.ts +9 -17
- package/src/core/events/span-parent.ts +46 -0
- package/src/core/events/v3/advance.ts +168 -0
- package/src/core/events/v3/authority-outbox.ts +548 -0
- package/src/core/events/v3/base-builder.ts +60 -0
- package/src/core/events/v3/base-contract.ts +882 -0
- package/src/core/events/v3/bootstrap.ts +226 -0
- package/src/core/events/v3/builder.ts +59 -0
- package/src/core/events/v3/canonical.ts +153 -0
- package/src/core/events/v3/capabilities.ts +171 -0
- package/src/core/events/v3/capability-drift.ts +177 -0
- package/src/core/events/v3/catalog.ts +202 -0
- package/src/core/events/v3/clock-order.ts +41 -0
- package/src/core/events/v3/contract.ts +365 -0
- package/src/core/events/v3/control.ts +576 -0
- package/src/core/events/v3/coordination-view.ts +193 -0
- package/src/core/events/v3/economics.ts +384 -0
- package/src/core/events/v3/finalization-view.ts +67 -0
- package/src/core/events/v3/fingerprint-keys.ts +260 -0
- package/src/core/events/v3/generated.ts +48 -0
- package/src/core/events/v3/ids.ts +33 -0
- package/src/core/events/v3/index.ts +322 -0
- package/src/core/events/v3/latency.ts +551 -0
- package/src/core/events/v3/live-feed.ts +319 -0
- package/src/core/events/v3/live-observation.ts +39 -0
- package/src/core/events/v3/live-routing.ts +135 -0
- package/src/core/events/v3/producers/command-recorder.ts +631 -0
- package/src/core/events/v3/producers/command.ts +201 -0
- package/src/core/events/v3/producers/coordination-recorder.ts +538 -0
- package/src/core/events/v3/producers/coordination.ts +355 -0
- package/src/core/events/v3/producers/hook-base.ts +578 -0
- package/src/core/events/v3/producers/hook.ts +119 -0
- package/src/core/events/v3/producers/intake.ts +319 -0
- package/src/core/events/v3/producers/recorder.ts +2805 -0
- package/src/core/events/v3/projection.ts +653 -0
- package/src/core/events/v3/reader.ts +1127 -0
- package/src/core/events/v3/recovery-record.ts +244 -0
- package/src/core/events/v3/recovery.ts +271 -0
- package/src/core/events/v3/span-state.ts +187 -0
- package/src/core/events/v3/targets.ts +182 -0
- package/src/core/events/v3/turn-telemetry.ts +259 -0
- package/src/core/events/v3/validate.ts +361 -0
- package/src/core/events/v3/writer.ts +419 -0
- package/src/core/governor/index.ts +3 -0
- package/src/core/governor/plan-api.ts +10 -2
- package/src/core/governor/read.ts +3 -0
- package/src/core/governor/state.ts +52 -5
- package/src/core/guard/config.ts +206 -0
- package/src/core/guard/coordinator.ts +227 -0
- package/src/core/guard/evaluator.ts +343 -0
- package/src/core/guard/evidence-v3.ts +227 -0
- package/src/core/guard/index.ts +35 -0
- package/src/core/guard/live-source-v3.ts +204 -0
- package/src/core/guard/storage.ts +188 -0
- package/src/core/guard/types.ts +152 -0
- package/src/core/hooks/adapter/detect.ts +28 -1
- package/src/core/hooks/adapter/events.ts +14 -6
- package/src/core/hooks/adapter/output.ts +7 -2
- package/src/core/hooks/adapter/parse.ts +80 -38
- package/src/core/hooks/adapter/wiring.ts +119 -13
- package/src/core/hooks/cli.ts +351 -466
- package/src/core/hooks/effects/image-capture.ts +228 -238
- package/src/core/hooks/effects/index.ts +1 -36
- package/src/core/hooks/events/input-hash.ts +47 -0
- package/src/core/hooks/index.ts +4 -11
- package/src/core/hooks/resolve/coord-root.ts +1 -1
- package/src/core/hooks/resolve/owner.ts +52 -45
- package/src/core/hooks/resolve/transcript.ts +165 -14
- package/src/core/hooks/session-name-presence.ts +14 -15
- package/src/core/hooks/unsafe-cross-shell.ts +1 -1
- package/src/core/journal/index.ts +15 -22
- package/src/core/presence/blob.ts +48 -41
- package/src/core/presence/codec-digest.ts +215 -0
- package/src/core/presence/relay-client.ts +5 -5
- package/src/core/work/index.ts +3 -0
- package/src/core/work/read.ts +3 -0
- package/src/core/work/runner.ts +6 -0
- package/src/core/work/state.ts +27 -3
- package/src/core/workflow/engine.ts +24 -24
- package/src/core/workflow/live-session-v3.ts +126 -0
- package/src/core/workflow/scope-id.ts +6 -0
- package/src/core/workflow/workspaces/leases.ts +56 -19
- package/src/index.ts +1 -1
- package/src/lib/browser/client.ts +230 -0
- package/src/lib/browser/critique.ts +104 -27
- package/src/lib/browser/geometry.ts +143 -14
- package/src/lib/browser/index.ts +34 -0
- package/src/lib/browser/qa-plan.ts +501 -0
- package/src/lib/browser/qa-reuse.ts +306 -0
- package/src/lib/browser/qa-snapshot.ts +223 -0
- package/src/lib/browser/runts.ts +27 -2
- package/src/lib/browser/tiling.ts +164 -0
- package/src/lib/claude-desktop.ts +1 -232
- package/src/lib/context/index.ts +22 -46
- package/src/lib/council/index.ts +9 -21
- package/src/lib/docs-frontmatter.ts +8 -79
- package/src/lib/docs-index.ts +33 -3
- package/src/lib/docs-lint.ts +15 -29
- package/src/lib/docs-metadata-audit.ts +166 -0
- package/src/lib/docs-metadata-managed.ts +83 -0
- package/src/lib/docs-metadata-sync.ts +262 -0
- package/src/lib/docs-metadata-v2-schema.ts +138 -0
- package/src/lib/docs-metadata-v2.ts +646 -0
- package/src/lib/docs-new.ts +63 -0
- package/src/lib/docs-sweep.ts +42 -28
- package/src/lib/headless/index.ts +287 -0
- package/src/lib/identities/assume.ts +67 -86
- package/src/lib/instructions/apply.ts +33 -20
- package/src/lib/instructions/bundle.ts +2 -2
- package/src/lib/instructions/splice.ts +21 -7
- package/src/lib/instructions/templates.ts +85 -13
- package/dist/core/agents/cli-emit.d.ts +0 -27
- package/dist/core/agents/cli-emit.d.ts.map +0 -1
- package/dist/core/agents/cli-emit.js +0 -57
- package/dist/core/agents/codex-replay.d.ts +0 -29
- package/dist/core/agents/codex-replay.d.ts.map +0 -1
- package/dist/core/agents/codex-replay.js +0 -138
- package/dist/core/agents/events/consume.d.ts +0 -82
- package/dist/core/agents/events/consume.d.ts.map +0 -1
- package/dist/core/agents/events/consume.js +0 -195
- package/dist/core/agents/events/emit.d.ts +0 -42
- package/dist/core/agents/events/emit.d.ts.map +0 -1
- package/dist/core/agents/events/emit.js +0 -75
- package/dist/core/agents/events/ulid.d.ts +0 -11
- package/dist/core/agents/events/ulid.d.ts.map +0 -1
- package/dist/core/agents/events/ulid.js +0 -47
- package/dist/core/agents/state/heartbeat-projector.d.ts +0 -76
- package/dist/core/agents/state/heartbeat-projector.d.ts.map +0 -1
- package/dist/core/agents/state/heartbeat-projector.js +0 -581
- package/dist/core/hooks/events/emit.d.ts +0 -31
- package/dist/core/hooks/events/emit.d.ts.map +0 -1
- package/dist/core/hooks/events/emit.js +0 -93
- package/dist/core/hooks/events/rotate.d.ts +0 -43
- package/dist/core/hooks/events/rotate.d.ts.map +0 -1
- package/dist/core/hooks/events/rotate.js +0 -142
- package/dist/core/hooks/events/schema.d.ts +0 -341
- package/dist/core/hooks/events/schema.d.ts.map +0 -1
- package/dist/core/hooks/events/schema.js +0 -12
- package/dist/core/hooks/events/ulid.d.ts +0 -10
- package/dist/core/hooks/events/ulid.d.ts.map +0 -1
- package/dist/core/hooks/events/ulid.js +0 -47
- package/dist/lib/docs-frontmatter-migrate.d.ts +0 -33
- package/dist/lib/docs-frontmatter-migrate.d.ts.map +0 -1
- package/dist/lib/docs-frontmatter-migrate.js +0 -364
- package/src/core/agents/cli-emit.ts +0 -64
- package/src/core/agents/codex-replay.ts +0 -163
- package/src/core/agents/events/consume.ts +0 -254
- package/src/core/agents/events/emit.ts +0 -115
- package/src/core/agents/events/ulid.ts +0 -51
- package/src/core/agents/state/heartbeat-projector.ts +0 -645
- package/src/core/hooks/events/emit.ts +0 -125
- package/src/core/hooks/events/rotate.ts +0 -151
- package/src/core/hooks/events/schema.ts +0 -582
- package/src/core/hooks/events/ulid.ts +0 -51
- package/src/lib/docs-frontmatter-migrate.ts +0 -427
package/dist/core/agents/cli.js
CHANGED
|
@@ -112,30 +112,25 @@ async function handleVerdict(root) {
|
|
|
112
112
|
return 0;
|
|
113
113
|
}
|
|
114
114
|
async function handleProject(root, rest) {
|
|
115
|
-
const {
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
115
|
+
const { resolveLiveEventLedgerRouteV3 } = await import("../events/v3/live-routing.js");
|
|
116
|
+
const route = resolveLiveEventLedgerRouteV3(root);
|
|
117
|
+
if (route.state === "blocked") {
|
|
118
|
+
process.stderr.write(`agent-coord project: V3 route is unsafe (${route.reason})\n`);
|
|
119
|
+
return 1;
|
|
120
|
+
}
|
|
121
|
+
const { readCoordinationViewV3 } = await import("../events/v3/coordination-view.js");
|
|
122
|
+
const view = readCoordinationViewV3(root);
|
|
120
123
|
const report = {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
124
|
+
contract_major: 2,
|
|
125
|
+
source_complete: view.source_complete,
|
|
126
|
+
authority_safe: view.authority_safe,
|
|
127
|
+
owners_projected: Object.keys(view.instances).length,
|
|
128
|
+
owners: Object.keys(view.instances).sort(),
|
|
129
|
+
diagnostics: view.diagnostics,
|
|
130
|
+
materialized: false,
|
|
127
131
|
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
if (rest.includes("--json")) {
|
|
131
|
-
process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
process.stdout.write(`projected ${report.events_consumed} events across ${report.owners_projected} owners\n cursor → ${report.cursor ?? "<none>"}\n${report.owners.length
|
|
135
|
-
? ` owners: ${report.owners.map((o) => o.slice(0, 8)).join(", ")}\n`
|
|
136
|
-
: ""}`);
|
|
137
|
-
}
|
|
138
|
-
return 0;
|
|
132
|
+
process.stdout.write(`${JSON.stringify(report, null, rest.includes("--json") ? 2 : 0)}\n`);
|
|
133
|
+
return view.authority_safe ? 0 : 1;
|
|
139
134
|
}
|
|
140
135
|
function adapterFromPlatform(platform) {
|
|
141
136
|
if (platform === "cursor")
|
|
@@ -144,62 +139,6 @@ function adapterFromPlatform(platform) {
|
|
|
144
139
|
return "codex";
|
|
145
140
|
return "claude-code";
|
|
146
141
|
}
|
|
147
|
-
/**
|
|
148
|
-
* Append a canonical `health.heartbeat_swept` event after an operator kill.
|
|
149
|
-
* Same envelope stale-sweep emits, so the projector's terminal / ended_at
|
|
150
|
-
* guards treat kill and sweep identically. Soft-fails: the unlink already
|
|
151
|
-
* happened.
|
|
152
|
-
*/
|
|
153
|
-
async function emitHeartbeatSwept(root, owner, hb) {
|
|
154
|
-
try {
|
|
155
|
-
const { emit } = await import("./events/emit.js");
|
|
156
|
-
let ageSecs;
|
|
157
|
-
if (hb.last_heartbeat) {
|
|
158
|
-
const ts = Date.parse(hb.last_heartbeat);
|
|
159
|
-
if (Number.isFinite(ts)) {
|
|
160
|
-
ageSecs = Math.max(0, Math.floor((Date.now() - ts) / 1000));
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
emit(root, {
|
|
164
|
-
event_type: "health.heartbeat_swept",
|
|
165
|
-
instance_id: owner,
|
|
166
|
-
session_id: hb.session_id ?? owner,
|
|
167
|
-
adapter: adapterFromPlatform(hb.platform),
|
|
168
|
-
source: "agent-coord",
|
|
169
|
-
data: {
|
|
170
|
-
reason: "killed",
|
|
171
|
-
...(ageSecs !== undefined ? { age_secs: ageSecs } : {}),
|
|
172
|
-
},
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
catch {
|
|
176
|
-
/* soft-fail: never break the caller */
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Append a canonical `claim.release` event for a path dropped from an owner's
|
|
181
|
-
* files_touched. The path is canonicalized to repo-relative (matching the
|
|
182
|
-
* projector's normalization) so the subtraction matches on replay regardless
|
|
183
|
-
* of the form the caller passed. Soft-fails: a failed emit must never break
|
|
184
|
-
* the release/kill flow — the file mutation already happened.
|
|
185
|
-
*/
|
|
186
|
-
async function emitClaimRelease(root, owner, hb, path, reason) {
|
|
187
|
-
try {
|
|
188
|
-
const { emit } = await import("./events/emit.js");
|
|
189
|
-
const canonical = path.startsWith(`${root}/`) ? path.slice(root.length + 1) : path;
|
|
190
|
-
emit(root, {
|
|
191
|
-
event_type: "claim.release",
|
|
192
|
-
instance_id: owner,
|
|
193
|
-
session_id: hb.session_id ?? owner,
|
|
194
|
-
adapter: adapterFromPlatform(hb.platform),
|
|
195
|
-
source: "agent-coord",
|
|
196
|
-
data: { path: canonical, reason },
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
catch {
|
|
200
|
-
/* soft-fail: never break the caller */
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
142
|
async function handleStateAction(root, action, rest) {
|
|
204
143
|
const writer = await import("./state/heartbeat-writer.js");
|
|
205
144
|
const [owner, ...args] = rest;
|
|
@@ -210,7 +149,23 @@ async function handleStateAction(root, action, rest) {
|
|
|
210
149
|
switch (action) {
|
|
211
150
|
case "set-task": {
|
|
212
151
|
const task = args.join(" ");
|
|
213
|
-
const
|
|
152
|
+
const before = writer.readHeartbeat(root, owner);
|
|
153
|
+
let hb;
|
|
154
|
+
try {
|
|
155
|
+
const { recordLiveTaskChangeV3 } = await import("./live-authority-v3.js");
|
|
156
|
+
recordLiveTaskChangeV3({
|
|
157
|
+
coordRoot: root,
|
|
158
|
+
owner,
|
|
159
|
+
nativeSessionId: before?.session_id ?? owner,
|
|
160
|
+
adapter: adapterFromPlatform(before?.platform),
|
|
161
|
+
task,
|
|
162
|
+
});
|
|
163
|
+
hb = writer.readHeartbeat(root, owner);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
process.stderr.write(`agent-coord set-task: V3 authority refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
167
|
+
return 1;
|
|
168
|
+
}
|
|
214
169
|
if (!hb) {
|
|
215
170
|
// Name the RESOLVED root: when a nested .harnery/ shadows the real
|
|
216
171
|
// coordination home, the full path is what makes that diagnosable.
|
|
@@ -220,14 +175,6 @@ async function handleStateAction(root, action, rest) {
|
|
|
220
175
|
process.stdout.write(`${JSON.stringify({ instance_id: owner, task: hb.task ?? null, cleared: !task })}\n`);
|
|
221
176
|
return 0;
|
|
222
177
|
}
|
|
223
|
-
case "set-turn-summary": {
|
|
224
|
-
const summary = args.join(" ");
|
|
225
|
-
const hb = writer.setTurnSummary(root, owner, summary);
|
|
226
|
-
if (!hb)
|
|
227
|
-
return 1;
|
|
228
|
-
process.stdout.write(`${JSON.stringify({ instance_id: owner, turn_summary: hb.turn_summary })}\n`);
|
|
229
|
-
return 0;
|
|
230
|
-
}
|
|
231
178
|
case "release-claim": {
|
|
232
179
|
const path = args[0];
|
|
233
180
|
if (!path) {
|
|
@@ -235,46 +182,29 @@ async function handleStateAction(root, action, rest) {
|
|
|
235
182
|
return 2;
|
|
236
183
|
}
|
|
237
184
|
const before = writer.readHeartbeat(root, owner);
|
|
238
|
-
|
|
239
|
-
|
|
185
|
+
let hb;
|
|
186
|
+
try {
|
|
187
|
+
const { recordLiveClaimChangeV3 } = await import("./live-authority-v3.js");
|
|
188
|
+
recordLiveClaimChangeV3({
|
|
189
|
+
coordRoot: root,
|
|
190
|
+
owner,
|
|
191
|
+
nativeSessionId: before?.session_id ?? owner,
|
|
192
|
+
adapter: adapterFromPlatform(before?.platform),
|
|
193
|
+
operation: "released",
|
|
194
|
+
path,
|
|
195
|
+
access: "write",
|
|
196
|
+
});
|
|
197
|
+
hb = writer.readHeartbeat(root, owner);
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
process.stderr.write(`agent-coord release-claim: V3 authority refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
240
201
|
return 1;
|
|
241
|
-
// Durability: the projector rebuilds files_touched by replaying the
|
|
242
|
-
// permanent Edit/Write events, so a file-only release is silently
|
|
243
|
-
// reverted by the next full replay. Emitting claim.release puts the
|
|
244
|
-
// subtraction into the stream so every future replay honors it. Only
|
|
245
|
-
// emit when the release actually removed a held path (idempotent
|
|
246
|
-
// re-releases stay quiet).
|
|
247
|
-
const heldBefore = before?.files_touched?.length ?? 0;
|
|
248
|
-
const heldAfter = hb.files_touched?.length ?? 0;
|
|
249
|
-
if (heldBefore > heldAfter) {
|
|
250
|
-
await emitClaimRelease(root, owner, before ?? hb, path, "explicit");
|
|
251
202
|
}
|
|
203
|
+
if (!hb)
|
|
204
|
+
return 1;
|
|
252
205
|
process.stdout.write(`${JSON.stringify({ instance_id: owner, files_touched: hb.files_touched })}\n`);
|
|
253
206
|
return 0;
|
|
254
207
|
}
|
|
255
|
-
case "kill-heartbeat": {
|
|
256
|
-
// Read held claims BEFORE the unlink so they can be released durably —
|
|
257
|
-
// killing only the file leaves the claims resurrectable from the
|
|
258
|
-
// permanent Edit/Write events on the next full replay (observed: a
|
|
259
|
-
// 6-day-dead agent's claims returning after its heartbeat was killed).
|
|
260
|
-
//
|
|
261
|
-
// Also emit health.heartbeat_swept so the stream records a terminal
|
|
262
|
-
// marker. Without it, a later drain that replays [session.start …
|
|
263
|
-
// tools … claim.release] treats the owner as still in-flight and
|
|
264
|
-
// re-creates the file (kill→resurrect loop observed 2026-08-03: 21
|
|
265
|
-
// killed zombies back within a minute via claim.release seeding +
|
|
266
|
-
// historical replay).
|
|
267
|
-
const before = writer.readHeartbeat(root, owner);
|
|
268
|
-
const ok = writer.killHeartbeat(root, owner);
|
|
269
|
-
if (ok && before) {
|
|
270
|
-
await emitHeartbeatSwept(root, owner, before);
|
|
271
|
-
for (const held of before.files_touched ?? []) {
|
|
272
|
-
await emitClaimRelease(root, owner, before, held, "heal");
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
process.stdout.write(`${JSON.stringify({ instance_id: owner, removed: ok })}\n`);
|
|
276
|
-
return ok ? 0 : 1;
|
|
277
|
-
}
|
|
278
208
|
case "heal-pidmap": {
|
|
279
209
|
const pidArg = args[0];
|
|
280
210
|
const pid = pidArg ? Number(pidArg) : process.ppid;
|
|
@@ -282,40 +212,54 @@ async function handleStateAction(root, action, rest) {
|
|
|
282
212
|
process.stderr.write(`agent-coord heal-pidmap: invalid pid ${pidArg}\n`);
|
|
283
213
|
return 2;
|
|
284
214
|
}
|
|
285
|
-
|
|
215
|
+
try {
|
|
216
|
+
const { liveCoordinationWriteModeV3 } = await import("./live-authority-v3.js");
|
|
217
|
+
liveCoordinationWriteModeV3(root);
|
|
218
|
+
writer.healPidmap(root, owner, pid);
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
process.stderr.write(`agent-coord heal-pidmap: V3 route refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
222
|
+
return 1;
|
|
223
|
+
}
|
|
286
224
|
process.stdout.write(`${JSON.stringify({ instance_id: owner, pid })}\n`);
|
|
287
225
|
return 0;
|
|
288
226
|
}
|
|
289
|
-
case "
|
|
227
|
+
case "repair-coordination-cache": {
|
|
290
228
|
// adapter arrives as a `--adapter=<h>` flag (not positional) so the live
|
|
291
|
-
// tool.
|
|
229
|
+
// tool.requested repair and the manual `harn agents heal` path (which pass
|
|
292
230
|
// different positional counts) can both supply it without arg-order
|
|
293
231
|
// fragility. Positionals (sessionId, model) stay as-is once flags are
|
|
294
232
|
// filtered out.
|
|
295
233
|
const adapter = args.find((a) => a.startsWith("--adapter="))?.slice("--adapter=".length);
|
|
296
|
-
const forkedFrom = args
|
|
297
|
-
.find((a) => a.startsWith("--forked-from="))
|
|
298
|
-
?.slice("--forked-from=".length);
|
|
299
234
|
const positional = args.filter((a) => !a.startsWith("--"));
|
|
300
235
|
const sessionId = positional[0];
|
|
301
236
|
const model = positional[1];
|
|
302
|
-
|
|
237
|
+
let hb;
|
|
238
|
+
try {
|
|
239
|
+
const { liveCoordinationWriteModeV3 } = await import("./live-authority-v3.js");
|
|
240
|
+
liveCoordinationWriteModeV3(root);
|
|
241
|
+
const { readCoordinationViewV3 } = await import("../events/v3/coordination-view.js");
|
|
242
|
+
const { liveInstanceIdV3 } = await import("../events/v3/live-routing.js");
|
|
243
|
+
const projected = readCoordinationViewV3(root).instances[liveInstanceIdV3(owner)];
|
|
244
|
+
if (projected?.provisional_termination) {
|
|
245
|
+
const { recordLiveResumeObservationV3 } = await import("./live-lifecycle-v3.js");
|
|
246
|
+
recordLiveResumeObservationV3({
|
|
247
|
+
coordRoot: root,
|
|
248
|
+
owner,
|
|
249
|
+
nativeSessionId: sessionId ?? owner,
|
|
250
|
+
adapter: adapterFromPlatform(adapter),
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
const { ensureLiveCoordinationHeartbeat } = await import("./state/live-coordination-view.js");
|
|
254
|
+
hb = ensureLiveCoordinationHeartbeat(root, owner, sessionId ?? owner, adapterFromPlatform(adapter), model);
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
process.stderr.write(`agent-coord repair-coordination-cache: V3 route refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
258
|
+
return 1;
|
|
259
|
+
}
|
|
303
260
|
process.stdout.write(`${JSON.stringify({ instance_id: owner, recreated: !!hb })}\n`);
|
|
304
261
|
return hb ? 0 : 1;
|
|
305
262
|
}
|
|
306
|
-
case "stamp-tool-activity": {
|
|
307
|
-
const toolName = args[0] ?? "";
|
|
308
|
-
const target = args.slice(1).join(" ");
|
|
309
|
-
const hb = writer.stampToolActivity(root, owner, toolName, target);
|
|
310
|
-
if (!hb)
|
|
311
|
-
return 1;
|
|
312
|
-
process.stdout.write(`${JSON.stringify({
|
|
313
|
-
instance_id: owner,
|
|
314
|
-
last_tool: hb.last_tool,
|
|
315
|
-
last_tool_target: hb.last_tool_target,
|
|
316
|
-
})}\n`);
|
|
317
|
-
return 0;
|
|
318
|
-
}
|
|
319
263
|
default:
|
|
320
264
|
process.stderr.write(`agent-coord: unknown state action ${action}\n`);
|
|
321
265
|
return 2;
|
|
@@ -507,33 +451,9 @@ async function handleShellMutationClaimLog(root, rest) {
|
|
|
507
451
|
const platform = args.platform ?? "unknown";
|
|
508
452
|
const owner = args.owner ?? null;
|
|
509
453
|
const { shellMutationPaths } = await import("./state/shell-mutation.js");
|
|
510
|
-
const { emit } = await import("./events/emit.js");
|
|
511
|
-
const { readHeartbeat } = await import("./state/heartbeat-writer.js");
|
|
512
454
|
const paths = shellMutationPaths(cmd, root);
|
|
513
455
|
const truncated = cmd.length > 80 ? cmd.slice(0, 80) : cmd;
|
|
514
|
-
|
|
515
|
-
// in a log file; now a canonical decision.warn so the
|
|
516
|
-
// signal survives in events.ndjson. (The blocking claim-conflict path is
|
|
517
|
-
// separate: claim.conflict / verdict, and unaffected.)
|
|
518
|
-
const adapter = platform === "cursor" ? "cursor" : platform === "codex" ? "codex" : "claude-code";
|
|
519
|
-
const hb = owner ? readHeartbeat(root, owner) : null;
|
|
520
|
-
for (const p of paths) {
|
|
521
|
-
try {
|
|
522
|
-
emit(root, {
|
|
523
|
-
event_type: "decision.warn",
|
|
524
|
-
instance_id: owner ?? "unknown",
|
|
525
|
-
session_id: hb?.session_id ?? owner ?? "unknown",
|
|
526
|
-
adapter,
|
|
527
|
-
data: {
|
|
528
|
-
rule: "shell_mutation_candidate",
|
|
529
|
-
reason: `path=${p} cmd=${truncated} platform=${platform}`,
|
|
530
|
-
},
|
|
531
|
-
});
|
|
532
|
-
}
|
|
533
|
-
catch {
|
|
534
|
-
/* telemetry only, never break the dispatcher */
|
|
535
|
-
}
|
|
536
|
-
}
|
|
456
|
+
process.stdout.write(`${JSON.stringify({ schema_version: 2, owner, platform, command_preview: truncated, paths })}\n`);
|
|
537
457
|
return 0;
|
|
538
458
|
}
|
|
539
459
|
async function handleStaleSweep(root, _rest) {
|
|
@@ -542,6 +462,38 @@ async function handleStaleSweep(root, _rest) {
|
|
|
542
462
|
process.stdout.write(`${JSON.stringify(result)}\n`);
|
|
543
463
|
return 0;
|
|
544
464
|
}
|
|
465
|
+
async function handleReconcileFinalization(root) {
|
|
466
|
+
const { reconcileSessionFinalizationV3 } = await import("./session-finalizer-v3.js");
|
|
467
|
+
const result = reconcileSessionFinalizationV3(root);
|
|
468
|
+
process.stdout.write(`${JSON.stringify(result)}\n`);
|
|
469
|
+
return result.diagnostics.some((item) => item === "ledger_not_authority_safe") ? 2 : 0;
|
|
470
|
+
}
|
|
471
|
+
async function handleEndSession(root, rest) {
|
|
472
|
+
const instanceId = rest[0];
|
|
473
|
+
if (!instanceId || !/^inst_[A-Za-z0-9._-]+$/.test(instanceId))
|
|
474
|
+
return 2;
|
|
475
|
+
const { listHookProducerStateRecordsV3 } = await import("../events/v3/producers/recorder.js");
|
|
476
|
+
const record = listHookProducerStateRecordsV3(root, { includeTerminal: false }).find(({ state }) => state.instance_id === instanceId);
|
|
477
|
+
if (!record)
|
|
478
|
+
return 2;
|
|
479
|
+
const { requestSessionEndExplicitV3 } = await import("./session-finalizer-v3.js");
|
|
480
|
+
const result = requestSessionEndExplicitV3({
|
|
481
|
+
coordRoot: root,
|
|
482
|
+
instance_id: record.state.instance_id,
|
|
483
|
+
generation_id: record.state.generation_id,
|
|
484
|
+
outcome: "interrupted",
|
|
485
|
+
coordination_finalized: false,
|
|
486
|
+
});
|
|
487
|
+
process.stdout.write(`${JSON.stringify(result)}\n`);
|
|
488
|
+
return result.state === "recorded" ||
|
|
489
|
+
result.state === "already_ended" ||
|
|
490
|
+
result.state === "queued" ||
|
|
491
|
+
result.state === "already_requested"
|
|
492
|
+
? 0
|
|
493
|
+
: result.state === "delegated_work_open"
|
|
494
|
+
? 3
|
|
495
|
+
: 2;
|
|
496
|
+
}
|
|
545
497
|
async function handlePromptContext(root, rest) {
|
|
546
498
|
const args = {};
|
|
547
499
|
for (let i = 0; i < rest.length; i++) {
|
|
@@ -620,41 +572,6 @@ async function handleSessionContext(root, rest) {
|
|
|
620
572
|
process.stdout.write(text);
|
|
621
573
|
return 0;
|
|
622
574
|
}
|
|
623
|
-
async function handleCodexReplay(root, rest) {
|
|
624
|
-
const args = {};
|
|
625
|
-
for (let i = 0; i < rest.length; i++) {
|
|
626
|
-
const a = rest[i];
|
|
627
|
-
if (a.startsWith("--")) {
|
|
628
|
-
const key = a.slice(2);
|
|
629
|
-
const val = rest[i + 1];
|
|
630
|
-
if (val === undefined || val.startsWith("--")) {
|
|
631
|
-
args[key] = "true";
|
|
632
|
-
}
|
|
633
|
-
else {
|
|
634
|
-
args[key] = val;
|
|
635
|
-
i++;
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
const jsonlPath = args.jsonl;
|
|
640
|
-
const sessionId = args.session;
|
|
641
|
-
const instanceId = args.owner ?? sessionId;
|
|
642
|
-
const lastMsg = args["last-message"];
|
|
643
|
-
if (!jsonlPath || !sessionId) {
|
|
644
|
-
process.stderr.write("agent-coord codex-replay --jsonl <path> --session <id> [--owner <id>] [--last-message <text>]\n");
|
|
645
|
-
return 2;
|
|
646
|
-
}
|
|
647
|
-
const { replayCodexJsonl } = await import("./codex-replay.js");
|
|
648
|
-
const result = replayCodexJsonl({
|
|
649
|
-
coordRoot: root,
|
|
650
|
-
jsonlPath,
|
|
651
|
-
sessionId,
|
|
652
|
-
instanceId: instanceId,
|
|
653
|
-
lastAssistantMessage: lastMsg,
|
|
654
|
-
});
|
|
655
|
-
process.stdout.write(`${JSON.stringify({ session_id: sessionId, emitted: result.emitted })}\n`);
|
|
656
|
-
return 0;
|
|
657
|
-
}
|
|
658
575
|
async function handleResolveName(root, rest) {
|
|
659
576
|
const { resolveName } = await import("./state/names.js");
|
|
660
577
|
const [owner, session] = rest;
|
|
@@ -671,7 +588,6 @@ async function handleResolveName(root, rest) {
|
|
|
671
588
|
return 0;
|
|
672
589
|
}
|
|
673
590
|
async function handleEmitEvent(root, rest) {
|
|
674
|
-
const { emitAndProject } = await import("./cli-emit.js");
|
|
675
591
|
const args = {};
|
|
676
592
|
for (let i = 0; i < rest.length; i++) {
|
|
677
593
|
const a = rest[i];
|
|
@@ -691,9 +607,9 @@ async function handleEmitEvent(root, rest) {
|
|
|
691
607
|
const instanceId = args.owner;
|
|
692
608
|
const sessionId = args.session;
|
|
693
609
|
const adapter = args.adapter;
|
|
694
|
-
const dataJson = args["data-
|
|
695
|
-
if (!eventType || !instanceId || !sessionId || !adapter) {
|
|
696
|
-
process.stderr.write("agent-coord emit-event --type <
|
|
610
|
+
const dataJson = args["data-stdin"] === "true" ? await readStdin() : "";
|
|
611
|
+
if (!eventType || !instanceId || !sessionId || !adapter || !dataJson) {
|
|
612
|
+
process.stderr.write("agent-coord emit-event --type <V3_TYPE> --owner <id> --session <id> --adapter <h> --data-stdin\n");
|
|
697
613
|
return 2;
|
|
698
614
|
}
|
|
699
615
|
let data;
|
|
@@ -703,30 +619,75 @@ async function handleEmitEvent(root, rest) {
|
|
|
703
619
|
data = parsed;
|
|
704
620
|
}
|
|
705
621
|
else {
|
|
706
|
-
process.stderr.write("agent-coord emit-event:
|
|
622
|
+
process.stderr.write("agent-coord emit-event: stdin must encode an object\n");
|
|
707
623
|
return 2;
|
|
708
624
|
}
|
|
709
625
|
}
|
|
710
626
|
catch (err) {
|
|
711
|
-
process.stderr.write(`agent-coord emit-event: invalid
|
|
627
|
+
process.stderr.write(`agent-coord emit-event: invalid stdin JSON (${err instanceof Error ? err.message : String(err)})\n`);
|
|
712
628
|
return 2;
|
|
713
629
|
}
|
|
714
|
-
const
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
adapter,
|
|
719
|
-
turn_id: args["turn-id"],
|
|
720
|
-
parent_session_id: args["parent-session-id"],
|
|
721
|
-
parent_turn_id: args["parent-turn-id"],
|
|
722
|
-
data,
|
|
723
|
-
}, { coordRoot: root });
|
|
724
|
-
if (!result) {
|
|
725
|
-
process.stderr.write("agent-coord emit-event: emission failed\n");
|
|
630
|
+
const { resolveLiveEventLedgerRouteV3 } = await import("../events/v3/live-routing.js");
|
|
631
|
+
const ledgerRoute = resolveLiveEventLedgerRouteV3(root);
|
|
632
|
+
if (ledgerRoute.state === "blocked") {
|
|
633
|
+
process.stderr.write(`agent-coord emit-event: V3 ledger route is unsafe (${ledgerRoute.reason})\n`);
|
|
726
634
|
return 1;
|
|
727
635
|
}
|
|
728
|
-
|
|
729
|
-
|
|
636
|
+
if (data.event_type !== eventType) {
|
|
637
|
+
process.stderr.write("agent-coord emit-event: envelope type does not match stdin event_type\n");
|
|
638
|
+
return 2;
|
|
639
|
+
}
|
|
640
|
+
if (eventType === "coord.lifecycle_changed") {
|
|
641
|
+
const state = data.new_state;
|
|
642
|
+
if (state !== "active" && state !== "blocked" && state !== "done") {
|
|
643
|
+
process.stderr.write("agent-coord emit-event: invalid V3 lifecycle state\n");
|
|
644
|
+
return 2;
|
|
645
|
+
}
|
|
646
|
+
const { recordLiveLifecycleChangeV3 } = await import("./live-authority-v3.js");
|
|
647
|
+
try {
|
|
648
|
+
const routed = recordLiveLifecycleChangeV3({
|
|
649
|
+
coordRoot: root,
|
|
650
|
+
owner: instanceId,
|
|
651
|
+
nativeSessionId: sessionId,
|
|
652
|
+
adapter,
|
|
653
|
+
state,
|
|
654
|
+
reason: typeof data.reason === "string" && data.reason.length > 0 ? data.reason : undefined,
|
|
655
|
+
suggestedSessionName: typeof data.suggested_session_name === "string" && data.suggested_session_name.length > 0
|
|
656
|
+
? data.suggested_session_name
|
|
657
|
+
: undefined,
|
|
658
|
+
});
|
|
659
|
+
process.stdout.write(`${JSON.stringify({ schema_version: 2, event_type: "coord.lifecycle_changed", state: routed.state })}\n`);
|
|
660
|
+
return 0;
|
|
661
|
+
}
|
|
662
|
+
catch (error) {
|
|
663
|
+
process.stderr.write(`agent-coord emit-event: V3 lifecycle authority refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
664
|
+
return 1;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
if (eventType === "coord.status_observed" ||
|
|
668
|
+
eventType === "coord.presence_changed" ||
|
|
669
|
+
eventType === "coord.message_observed" ||
|
|
670
|
+
eventType === "council.state_changed" ||
|
|
671
|
+
eventType === "decision.state_changed") {
|
|
672
|
+
const { recordLiveCoordinationObservationV3 } = await import("./live-observation-v3.js");
|
|
673
|
+
try {
|
|
674
|
+
const routed = recordLiveCoordinationObservationV3({
|
|
675
|
+
coordRoot: root,
|
|
676
|
+
owner: instanceId,
|
|
677
|
+
nativeSessionId: sessionId,
|
|
678
|
+
adapter,
|
|
679
|
+
observation: data,
|
|
680
|
+
});
|
|
681
|
+
process.stdout.write(`${JSON.stringify({ schema_version: 2, event_type: routed.event.event_type, event_id: routed.event.event_id })}\n`);
|
|
682
|
+
return 0;
|
|
683
|
+
}
|
|
684
|
+
catch (error) {
|
|
685
|
+
process.stderr.write(`agent-coord emit-event: V3 observation refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
686
|
+
return 1;
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
process.stderr.write(`agent-coord emit-event: unsupported V3 event type ${eventType}\n`);
|
|
690
|
+
return 2;
|
|
730
691
|
}
|
|
731
692
|
/**
|
|
732
693
|
* `agent-coord git-hook <event> [args]` — the single entry a host git hook
|
|
@@ -794,15 +755,27 @@ async function handleGitHook(fallbackRoot, rest) {
|
|
|
794
755
|
if (paths.length === 0)
|
|
795
756
|
return 0;
|
|
796
757
|
const { resolveOwner } = await import("../hooks/resolve/owner.js");
|
|
797
|
-
const owner = resolveOwner({
|
|
758
|
+
const owner = resolveOwner({
|
|
759
|
+
payload: null,
|
|
760
|
+
coordRoot: root,
|
|
761
|
+
})?.instance_id;
|
|
798
762
|
if (!owner)
|
|
799
763
|
return 0;
|
|
800
|
-
const {
|
|
801
|
-
const
|
|
764
|
+
const { findGroupClaims } = await import("./state/heartbeat-writer.js");
|
|
765
|
+
const { recordLiveClaimChangeV3 } = await import("./live-authority-v3.js");
|
|
802
766
|
for (const path of paths) {
|
|
803
767
|
try {
|
|
804
|
-
for (const hit of
|
|
805
|
-
|
|
768
|
+
for (const hit of findGroupClaims(root, owner, path)) {
|
|
769
|
+
recordLiveClaimChangeV3({
|
|
770
|
+
coordRoot: root,
|
|
771
|
+
owner,
|
|
772
|
+
subject: hit.instance_id,
|
|
773
|
+
nativeSessionId: hit.session_id ?? owner,
|
|
774
|
+
adapter: adapterFromPlatform(hit.platform),
|
|
775
|
+
operation: "released",
|
|
776
|
+
path,
|
|
777
|
+
access: "write",
|
|
778
|
+
});
|
|
806
779
|
}
|
|
807
780
|
}
|
|
808
781
|
catch {
|
|
@@ -834,12 +807,9 @@ async function main() {
|
|
|
834
807
|
return handleEmitEvent(root, rest);
|
|
835
808
|
}
|
|
836
809
|
if (subcommand === "set-task" ||
|
|
837
|
-
subcommand === "set-turn-summary" ||
|
|
838
810
|
subcommand === "release-claim" ||
|
|
839
|
-
subcommand === "kill-heartbeat" ||
|
|
840
811
|
subcommand === "heal-pidmap" ||
|
|
841
|
-
subcommand === "
|
|
842
|
-
subcommand === "stamp-tool-activity") {
|
|
812
|
+
subcommand === "repair-coordination-cache") {
|
|
843
813
|
return handleStateAction(root, subcommand, rest);
|
|
844
814
|
}
|
|
845
815
|
if (subcommand === "append-journal" || subcommand === "edit-journal") {
|
|
@@ -859,12 +829,15 @@ async function main() {
|
|
|
859
829
|
if (subcommand === "resolve-name") {
|
|
860
830
|
return handleResolveName(root, rest);
|
|
861
831
|
}
|
|
862
|
-
if (subcommand === "codex-replay") {
|
|
863
|
-
return handleCodexReplay(root, rest);
|
|
864
|
-
}
|
|
865
832
|
if (subcommand === "stale-sweep") {
|
|
866
833
|
return handleStaleSweep(root, rest);
|
|
867
834
|
}
|
|
835
|
+
if (subcommand === "reconcile-finalization") {
|
|
836
|
+
return handleReconcileFinalization(root);
|
|
837
|
+
}
|
|
838
|
+
if (subcommand === "end-session") {
|
|
839
|
+
return handleEndSession(root, rest);
|
|
840
|
+
}
|
|
868
841
|
if (subcommand === "session-context") {
|
|
869
842
|
return handleSessionContext(root, rest);
|
|
870
843
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SessionArchiveObservationV3 } from "./session-finalizer-v3.js";
|
|
2
|
+
export interface CodexArchiveScanResultV3 {
|
|
3
|
+
observations: SessionArchiveObservationV3[];
|
|
4
|
+
diagnostics: string[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Read only Codex's durable lifecycle columns. Conversation content, titles,
|
|
8
|
+
* working directories, and model metadata never leave the adapter database.
|
|
9
|
+
*/
|
|
10
|
+
export declare function readCodexArchiveObservationsV3(coordRoot: string, options?: {
|
|
11
|
+
databasePath?: string;
|
|
12
|
+
observedAt?: string;
|
|
13
|
+
}): CodexArchiveScanResultV3;
|
|
14
|
+
//# sourceMappingURL=codex-archive-v3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-archive-v3.d.ts","sourceRoot":"","sources":["../../../src/core/agents/codex-archive-v3.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAyB7E,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,2BAA2B,EAAE,CAAC;IAC5C,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3D,wBAAwB,CAmE1B"}
|