harnery 0.35.0 → 0.36.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 +30 -5
- package/dist/commander.d.ts.map +1 -1
- package/dist/commander.js +124 -96
- package/dist/commands/agents.d.ts +23 -3
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +379 -198
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +10 -10
- package/dist/commands/browse-session.d.ts.map +1 -1
- package/dist/commands/browse-session.js +12 -0
- package/dist/commands/browse.d.ts +1 -1
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +5 -4
- package/dist/commands/conversations.d.ts +10 -0
- package/dist/commands/conversations.d.ts.map +1 -0
- package/dist/commands/conversations.js +201 -0
- package/dist/commands/deinit.d.ts.map +1 -1
- package/dist/commands/deinit.js +5 -0
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +13 -2
- package/dist/commands/doctor.d.ts +5 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +51 -7
- package/dist/commands/fetch.js +6 -5
- package/dist/commands/files.d.ts +22 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +113 -0
- package/dist/commands/governor.js +14 -12
- package/dist/commands/inbox.d.ts +5 -0
- package/dist/commands/inbox.d.ts.map +1 -0
- package/dist/commands/inbox.js +57 -0
- package/dist/commands/init.d.ts +4 -5
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +63 -13
- package/dist/commands/ledger-v3.d.ts.map +1 -1
- package/dist/commands/ledger-v3.js +347 -1
- package/dist/commands/logs.d.ts +4 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +169 -0
- package/dist/commands/messages.d.ts +5 -0
- package/dist/commands/messages.d.ts.map +1 -0
- package/dist/commands/messages.js +45 -0
- package/dist/commands/outline.d.ts +1 -1
- package/dist/commands/outline.d.ts.map +1 -1
- package/dist/commands/outline.js +2 -2
- package/dist/commands/read.d.ts +1 -1
- package/dist/commands/read.d.ts.map +1 -1
- package/dist/commands/read.js +2 -2
- package/dist/commands/semantic.d.ts.map +1 -1
- package/dist/commands/semantic.js +54 -2
- package/dist/commands/storage.d.ts +4 -0
- package/dist/commands/storage.d.ts.map +1 -0
- package/dist/commands/storage.js +238 -0
- package/dist/commands/tunnel.d.ts +5 -1
- package/dist/commands/tunnel.d.ts.map +1 -1
- package/dist/commands/tunnel.js +44 -31
- package/dist/commands/web.d.ts +3 -0
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +67 -7
- package/dist/commands/work.js +3 -3
- package/dist/commands/workflow.js +13 -13
- package/dist/core/adapters/profiles.d.ts +1 -1
- package/dist/core/agents/cli.js +209 -39
- package/dist/core/agents/live-authority-v3.d.ts +47 -1
- package/dist/core/agents/live-authority-v3.d.ts.map +1 -1
- package/dist/core/agents/live-authority-v3.js +244 -10
- package/dist/core/agents/live-lifecycle-v3.js +6 -1
- package/dist/core/agents/live-observation-v3.d.ts.map +1 -1
- package/dist/core/agents/live-observation-v3.js +6 -1
- package/dist/core/agents/render/prompt-context.d.ts +9 -3
- package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.js +24 -7
- package/dist/core/agents/rules/stop-hook.d.ts +2 -0
- package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
- package/dist/core/agents/rules/stop-hook.js +94 -13
- package/dist/core/agents/rules/verdict.d.ts +1 -0
- package/dist/core/agents/rules/verdict.d.ts.map +1 -1
- package/dist/core/agents/session-events.d.ts.map +1 -1
- package/dist/core/agents/session-events.js +4 -0
- package/dist/core/agents/session-finalization-state-v3.js +1 -1
- package/dist/core/agents/session-finalizer-v3.js +5 -1
- package/dist/core/agents/state/activity-log.d.ts +3 -0
- package/dist/core/agents/state/activity-log.d.ts.map +1 -1
- package/dist/core/agents/state/activity-log.js +6 -3
- package/dist/core/agents/state/heartbeat-writer.d.ts +6 -0
- package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
- package/dist/core/agents/state/heartbeat-writer.js +18 -0
- package/dist/core/agents/state/live-coordination-view.d.ts +5 -7
- package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -1
- package/dist/core/agents/state/live-coordination-view.js +15 -90
- package/dist/core/agents/state/live-coordination-writer.d.ts +12 -0
- package/dist/core/agents/state/live-coordination-writer.d.ts.map +1 -0
- package/dist/core/agents/state/live-coordination-writer.js +92 -0
- package/dist/core/artifacts/index.d.ts +21 -0
- package/dist/core/artifacts/index.d.ts.map +1 -1
- package/dist/core/artifacts/index.js +46 -1
- package/dist/core/config.d.ts +62 -4
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +98 -4
- package/dist/core/conversations/archive.d.ts +49 -0
- package/dist/core/conversations/archive.d.ts.map +1 -0
- package/dist/core/conversations/archive.js +136 -0
- package/dist/core/conversations/catalog.d.ts +10 -0
- package/dist/core/conversations/catalog.d.ts.map +1 -0
- package/dist/core/conversations/catalog.js +72 -0
- package/dist/core/conversations/context-pack.d.ts +6 -0
- package/dist/core/conversations/context-pack.d.ts.map +1 -0
- package/dist/core/conversations/context-pack.js +60 -0
- package/dist/core/conversations/contract.d.ts +155 -0
- package/dist/core/conversations/contract.d.ts.map +1 -0
- package/dist/core/conversations/contract.js +1 -0
- package/dist/core/conversations/evaluation.d.ts +16 -0
- package/dist/core/conversations/evaluation.d.ts.map +1 -0
- package/dist/core/conversations/evaluation.js +9 -0
- package/dist/core/conversations/index.d.ts +10 -0
- package/dist/core/conversations/index.d.ts.map +1 -0
- package/dist/core/conversations/index.js +9 -0
- package/dist/core/conversations/lifecycle.d.ts +28 -0
- package/dist/core/conversations/lifecycle.d.ts.map +1 -0
- package/dist/core/conversations/lifecycle.js +29 -0
- package/dist/core/conversations/normalize.d.ts +14 -0
- package/dist/core/conversations/normalize.d.ts.map +1 -0
- package/dist/core/conversations/normalize.js +82 -0
- package/dist/core/conversations/query.d.ts +8 -0
- package/dist/core/conversations/query.d.ts.map +1 -0
- package/dist/core/conversations/query.js +280 -0
- package/dist/core/conversations/search-index.d.ts +9 -0
- package/dist/core/conversations/search-index.d.ts.map +1 -0
- package/dist/core/conversations/search-index.js +29 -0
- package/dist/core/events/legacy-storage/canary.d.ts +18 -0
- package/dist/core/events/legacy-storage/canary.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/canary.js +150 -0
- package/dist/core/events/legacy-storage/fence.d.ts +15 -0
- package/dist/core/events/legacy-storage/fence.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/fence.js +115 -0
- package/dist/core/events/legacy-storage/index.d.ts +6 -0
- package/dist/core/events/legacy-storage/index.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/index.js +5 -0
- package/dist/core/events/legacy-storage/inventory.d.ts +10 -0
- package/dist/core/events/legacy-storage/inventory.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/inventory.js +40 -0
- package/dist/core/events/legacy-storage/manifest.d.ts +23 -0
- package/dist/core/events/legacy-storage/manifest.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/manifest.js +108 -0
- package/dist/core/events/legacy-storage/reader.d.ts +15 -0
- package/dist/core/events/legacy-storage/reader.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/reader.js +154 -0
- package/dist/core/events/v3/authority-outbox.d.ts +7 -2
- package/dist/core/events/v3/authority-outbox.d.ts.map +1 -1
- package/dist/core/events/v3/authority-outbox.js +16 -3
- package/dist/core/events/v3/base-contract.d.ts +81 -41
- package/dist/core/events/v3/base-contract.d.ts.map +1 -1
- package/dist/core/events/v3/base-contract.js +17 -7
- package/dist/core/events/v3/bootstrap.d.ts +39 -0
- package/dist/core/events/v3/bootstrap.d.ts.map +1 -1
- package/dist/core/events/v3/bootstrap.js +167 -3
- package/dist/core/events/v3/capabilities.js +3 -3
- package/dist/core/events/v3/control-witness.d.ts +44 -0
- package/dist/core/events/v3/control-witness.d.ts.map +1 -0
- package/dist/core/events/v3/control-witness.js +233 -0
- package/dist/core/events/v3/control-writer.d.ts +4 -0
- package/dist/core/events/v3/control-writer.d.ts.map +1 -0
- package/dist/core/events/v3/control-writer.js +16 -0
- package/dist/core/events/v3/control.d.ts +8 -2
- package/dist/core/events/v3/control.d.ts.map +1 -1
- package/dist/core/events/v3/control.js +46 -18
- package/dist/core/events/v3/coordination-transaction-recovery.d.ts +42 -0
- package/dist/core/events/v3/coordination-transaction-recovery.d.ts.map +1 -0
- package/dist/core/events/v3/coordination-transaction-recovery.js +342 -0
- package/dist/core/events/v3/coordination-view.d.ts.map +1 -1
- package/dist/core/events/v3/coordination-view.js +16 -1
- package/dist/core/events/v3/generated.d.ts +1 -1
- package/dist/core/events/v3/generated.js +1 -1
- package/dist/core/events/v3/index.d.ts +4 -2
- package/dist/core/events/v3/index.d.ts.map +1 -1
- package/dist/core/events/v3/index.js +3 -1
- package/dist/core/events/v3/live-route-observer.d.ts +31 -0
- package/dist/core/events/v3/live-route-observer.d.ts.map +1 -0
- package/dist/core/events/v3/live-route-observer.js +58 -0
- package/dist/core/events/v3/live-routing.d.ts +13 -21
- package/dist/core/events/v3/live-routing.d.ts.map +1 -1
- package/dist/core/events/v3/live-routing.js +45 -41
- package/dist/core/events/v3/producers/coordination-recorder.d.ts +11 -1
- package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/coordination-recorder.js +76 -10
- package/dist/core/events/v3/producers/diagnostic-summaries.d.ts +129 -0
- package/dist/core/events/v3/producers/diagnostic-summaries.d.ts.map +1 -0
- package/dist/core/events/v3/producers/diagnostic-summaries.js +499 -0
- package/dist/core/events/v3/producers/hook-base.js +1 -1
- package/dist/core/events/v3/producers/intake.d.ts +7 -0
- package/dist/core/events/v3/producers/intake.d.ts.map +1 -1
- package/dist/core/events/v3/producers/intake.js +25 -2
- package/dist/core/events/v3/producers/producer-state-observer.d.ts +8 -0
- package/dist/core/events/v3/producers/producer-state-observer.d.ts.map +1 -0
- package/dist/core/events/v3/producers/producer-state-observer.js +45 -0
- package/dist/core/events/v3/producers/recorder.d.ts +55 -1
- package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/recorder.js +353 -24
- package/dist/core/events/v3/reader.d.ts +51 -0
- package/dist/core/events/v3/reader.d.ts.map +1 -1
- package/dist/core/events/v3/reader.js +181 -1
- package/dist/core/events/v3/rotation-config.d.ts +9 -0
- package/dist/core/events/v3/rotation-config.d.ts.map +1 -0
- package/dist/core/events/v3/rotation-config.js +91 -0
- package/dist/core/events/v3/runtime-build.d.ts +11 -0
- package/dist/core/events/v3/runtime-build.d.ts.map +1 -0
- package/dist/core/events/v3/runtime-build.js +39 -0
- package/dist/core/events/v3/runtime-identity.d.ts +5 -0
- package/dist/core/events/v3/runtime-identity.d.ts.map +1 -0
- package/dist/core/events/v3/runtime-identity.js +18 -0
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts +6 -5
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts.map +1 -1
- package/dist/core/events/v3/runtime-telemetry-capabilities.js +1 -1
- package/dist/core/events/v3/support-storage/classify.d.ts +46 -0
- package/dist/core/events/v3/support-storage/classify.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/classify.js +149 -0
- package/dist/core/events/v3/support-storage/eligibility.d.ts +29 -0
- package/dist/core/events/v3/support-storage/eligibility.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/eligibility.js +35 -0
- package/dist/core/events/v3/support-storage/index.d.ts +10 -0
- package/dist/core/events/v3/support-storage/index.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/index.js +9 -0
- package/dist/core/events/v3/support-storage/inventory.d.ts +30 -0
- package/dist/core/events/v3/support-storage/inventory.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/inventory.js +94 -0
- package/dist/core/events/v3/support-storage/logical-authority.d.ts +14 -0
- package/dist/core/events/v3/support-storage/logical-authority.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/logical-authority.js +104 -0
- package/dist/core/events/v3/support-storage/maintenance.d.ts +98 -0
- package/dist/core/events/v3/support-storage/maintenance.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/maintenance.js +352 -0
- package/dist/core/events/v3/support-storage/pack-contract.d.ts +59 -0
- package/dist/core/events/v3/support-storage/pack-contract.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/pack-contract.js +249 -0
- package/dist/core/events/v3/support-storage/pack-reader.d.ts +34 -0
- package/dist/core/events/v3/support-storage/pack-reader.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/pack-reader.js +258 -0
- package/dist/core/events/v3/support-storage/pack-writer.d.ts +30 -0
- package/dist/core/events/v3/support-storage/pack-writer.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/pack-writer.js +268 -0
- package/dist/core/events/v3/support-storage/recovery.d.ts +15 -0
- package/dist/core/events/v3/support-storage/recovery.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/recovery.js +22 -0
- package/dist/core/events/v3/turn-telemetry.d.ts +14 -8
- package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -1
- package/dist/core/events/v3/turn-telemetry.js +32 -2
- package/dist/core/events/v3/writer.d.ts +13 -1
- package/dist/core/events/v3/writer.d.ts.map +1 -1
- package/dist/core/events/v3/writer.js +126 -12
- package/dist/core/governor/plan-read.d.ts.map +1 -1
- package/dist/core/governor/plan-read.js +5 -21
- package/dist/core/governor/planning.js +6 -8
- package/dist/core/governor/service-read.d.ts +12 -0
- package/dist/core/governor/service-read.d.ts.map +1 -1
- package/dist/core/governor/service-read.js +266 -2
- package/dist/core/governor/service.d.ts +1 -0
- package/dist/core/governor/service.d.ts.map +1 -1
- package/dist/core/governor/service.js +53 -18
- package/dist/core/guard/evidence-v3.d.ts.map +1 -1
- package/dist/core/guard/evidence-v3.js +2 -0
- package/dist/core/hooks/adapter/events.d.ts.map +1 -1
- package/dist/core/hooks/adapter/events.js +1 -0
- package/dist/core/hooks/adapter/output.d.ts +4 -2
- package/dist/core/hooks/adapter/output.d.ts.map +1 -1
- package/dist/core/hooks/adapter/output.js +13 -5
- package/dist/core/hooks/adapter/runtime-telemetry.d.ts +27 -4
- package/dist/core/hooks/adapter/runtime-telemetry.d.ts.map +1 -1
- package/dist/core/hooks/adapter/runtime-telemetry.js +307 -6
- package/dist/core/hooks/cli.js +212 -30
- package/dist/core/hooks/effects/image-capture.d.ts +1 -1
- package/dist/core/hooks/effects/image-capture.d.ts.map +1 -1
- package/dist/core/hooks/effects/image-capture.js +4 -2
- package/dist/core/hooks/remediation-cap.d.ts +8 -3
- package/dist/core/hooks/remediation-cap.d.ts.map +1 -1
- package/dist/core/hooks/remediation-cap.js +3 -11
- package/dist/core/hooks/resolve/coord-root.d.ts +22 -9
- package/dist/core/hooks/resolve/coord-root.d.ts.map +1 -1
- package/dist/core/hooks/resolve/coord-root.js +92 -11
- package/dist/core/hooks/resolve/owner.d.ts.map +1 -1
- package/dist/core/hooks/resolve/owner.js +5 -0
- package/dist/core/hooks/resolve/transcript.d.ts +8 -0
- package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
- package/dist/core/hooks/resolve/transcript.js +11 -0
- package/dist/core/inbox/contract.d.ts +64 -0
- package/dist/core/inbox/contract.d.ts.map +1 -0
- package/dist/core/inbox/contract.js +13 -0
- package/dist/core/inbox/index.d.ts +5 -0
- package/dist/core/inbox/index.d.ts.map +1 -0
- package/dist/core/inbox/index.js +4 -0
- package/dist/core/inbox/lifecycle.d.ts +22 -0
- package/dist/core/inbox/lifecycle.d.ts.map +1 -0
- package/dist/core/inbox/lifecycle.js +41 -0
- package/dist/core/inbox/service.d.ts +36 -0
- package/dist/core/inbox/service.d.ts.map +1 -0
- package/dist/core/inbox/service.js +210 -0
- package/dist/core/inbox/watcher.d.ts +7 -0
- package/dist/core/inbox/watcher.d.ts.map +1 -0
- package/dist/core/inbox/watcher.js +26 -0
- package/dist/core/presence/codec-digest.d.ts.map +1 -1
- package/dist/core/presence/codec-digest.js +14 -3
- package/dist/core/presence/relay-client.d.ts +1 -0
- package/dist/core/presence/relay-client.d.ts.map +1 -1
- package/dist/core/presence/relay-client.js +52 -8
- package/dist/core/semantic/adapters.d.ts +11 -8
- package/dist/core/semantic/adapters.d.ts.map +1 -1
- package/dist/core/semantic/adapters.js +169 -31
- package/dist/core/semantic/contract.d.ts +532 -48
- package/dist/core/semantic/contract.d.ts.map +1 -1
- package/dist/core/semantic/contract.js +104 -3
- package/dist/core/semantic/index.d.ts +7 -3
- package/dist/core/semantic/index.d.ts.map +1 -1
- package/dist/core/semantic/index.js +7 -3
- package/dist/core/semantic/once.d.ts +6 -1
- package/dist/core/semantic/once.d.ts.map +1 -1
- package/dist/core/semantic/once.js +80 -9
- package/dist/core/semantic/prompt.d.ts.map +1 -1
- package/dist/core/semantic/prompt.js +14 -1
- package/dist/core/semantic/review.d.ts +144 -0
- package/dist/core/semantic/review.d.ts.map +1 -0
- package/dist/core/semantic/review.js +544 -0
- package/dist/core/semantic/routes.d.ts +10 -0
- package/dist/core/semantic/routes.d.ts.map +1 -0
- package/dist/core/semantic/routes.js +21 -0
- package/dist/core/semantic/scheduler.d.ts +14 -3
- package/dist/core/semantic/scheduler.d.ts.map +1 -1
- package/dist/core/semantic/scheduler.js +30 -6
- package/dist/core/semantic/service-status.d.ts +20 -0
- package/dist/core/semantic/service-status.d.ts.map +1 -1
- package/dist/core/semantic/service-status.js +60 -4
- package/dist/core/semantic/service.d.ts +1 -0
- package/dist/core/semantic/service.d.ts.map +1 -1
- package/dist/core/semantic/service.js +104 -15
- package/dist/core/semantic/soak.d.ts +75 -0
- package/dist/core/semantic/soak.d.ts.map +1 -0
- package/dist/core/semantic/soak.js +476 -0
- package/dist/core/semantic/storage.d.ts +11 -1
- package/dist/core/semantic/storage.d.ts.map +1 -1
- package/dist/core/semantic/storage.js +4 -3
- package/dist/core/semantic/usage.d.ts +43 -0
- package/dist/core/semantic/usage.d.ts.map +1 -0
- package/dist/core/semantic/usage.js +193 -0
- package/dist/core/semantic/validate.d.ts +3 -1
- package/dist/core/semantic/validate.d.ts.map +1 -1
- package/dist/core/semantic/validate.js +34 -1
- package/dist/core/storage/buffer.d.ts +28 -0
- package/dist/core/storage/buffer.d.ts.map +1 -0
- package/dist/core/storage/buffer.js +101 -0
- package/dist/core/storage/builtins.d.ts +3 -0
- package/dist/core/storage/builtins.d.ts.map +1 -0
- package/dist/core/storage/builtins.js +683 -0
- package/dist/core/storage/catalog.d.ts +19 -0
- package/dist/core/storage/catalog.d.ts.map +1 -0
- package/dist/core/storage/catalog.js +365 -0
- package/dist/core/storage/config.d.ts +16 -0
- package/dist/core/storage/config.d.ts.map +1 -0
- package/dist/core/storage/config.js +311 -0
- package/dist/core/storage/contract.d.ts +275 -0
- package/dist/core/storage/contract.d.ts.map +1 -0
- package/dist/core/storage/contract.js +3 -0
- package/dist/core/storage/durable-history.d.ts +36 -0
- package/dist/core/storage/durable-history.d.ts.map +1 -0
- package/dist/core/storage/durable-history.js +606 -0
- package/dist/core/storage/health.d.ts +4 -0
- package/dist/core/storage/health.d.ts.map +1 -0
- package/dist/core/storage/health.js +65 -0
- package/dist/core/storage/index.d.ts +16 -0
- package/dist/core/storage/index.d.ts.map +1 -0
- package/dist/core/storage/index.js +15 -0
- package/dist/core/storage/inventory.d.ts +25 -0
- package/dist/core/storage/inventory.d.ts.map +1 -0
- package/dist/core/storage/inventory.js +666 -0
- package/dist/core/storage/jsonl.d.ts +52 -0
- package/dist/core/storage/jsonl.d.ts.map +1 -0
- package/dist/core/storage/jsonl.js +156 -0
- package/dist/core/storage/log-retention.d.ts +52 -0
- package/dist/core/storage/log-retention.d.ts.map +1 -0
- package/dist/core/storage/log-retention.js +419 -0
- package/dist/core/storage/logger.d.ts +82 -0
- package/dist/core/storage/logger.d.ts.map +1 -0
- package/dist/core/storage/logger.js +411 -0
- package/dist/core/storage/maintenance-providers.d.ts +26 -0
- package/dist/core/storage/maintenance-providers.d.ts.map +1 -0
- package/dist/core/storage/maintenance-providers.js +141 -0
- package/dist/core/storage/maintenance.d.ts +125 -0
- package/dist/core/storage/maintenance.d.ts.map +1 -0
- package/dist/core/storage/maintenance.js +609 -0
- package/dist/core/storage/metrics.d.ts +60 -0
- package/dist/core/storage/metrics.d.ts.map +1 -0
- package/dist/core/storage/metrics.js +134 -0
- package/dist/core/storage/policy.d.ts +7 -0
- package/dist/core/storage/policy.d.ts.map +1 -0
- package/dist/core/storage/policy.js +110 -0
- package/dist/core/storage/process-log.d.ts +38 -0
- package/dist/core/storage/process-log.d.ts.map +1 -0
- package/dist/core/storage/process-log.js +165 -0
- package/dist/core/storage/query.d.ts +34 -0
- package/dist/core/storage/query.d.ts.map +1 -0
- package/dist/core/storage/query.js +295 -0
- package/dist/core/storage/receipts.d.ts +23 -0
- package/dist/core/storage/receipts.d.ts.map +1 -0
- package/dist/core/storage/receipts.js +117 -0
- package/dist/core/storage/segments.d.ts +84 -0
- package/dist/core/storage/segments.d.ts.map +1 -0
- package/dist/core/storage/segments.js +542 -0
- package/dist/core/storage/sink-graph.d.ts +65 -0
- package/dist/core/storage/sink-graph.d.ts.map +1 -0
- package/dist/core/storage/sink-graph.js +213 -0
- package/dist/core/storage/storm-control.d.ts +23 -0
- package/dist/core/storage/storm-control.d.ts.map +1 -0
- package/dist/core/storage/storm-control.js +59 -0
- package/dist/core/work/state.d.ts.map +1 -1
- package/dist/core/work/state.js +10 -14
- package/dist/core/workflow/live-session-v3.d.ts.map +1 -1
- package/dist/core/workflow/live-session-v3.js +2 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/lazy-commands.d.ts +26 -0
- package/dist/lazy-commands.d.ts.map +1 -0
- package/dist/lazy-commands.js +210 -0
- package/dist/lib/docs-lint.d.ts +2 -0
- package/dist/lib/docs-lint.d.ts.map +1 -1
- package/dist/lib/docs-lint.js +45 -80
- package/dist/lib/docs-metadata-audit.d.ts +3 -0
- package/dist/lib/docs-metadata-audit.d.ts.map +1 -1
- package/dist/lib/docs-metadata-audit.js +13 -23
- package/dist/lib/docs-metadata-sync.d.ts +1 -0
- package/dist/lib/docs-metadata-sync.d.ts.map +1 -1
- package/dist/lib/docs-metadata-sync.js +28 -10
- package/dist/lib/docs-repository-view.d.ts +22 -0
- package/dist/lib/docs-repository-view.d.ts.map +1 -0
- package/dist/lib/docs-repository-view.js +185 -0
- package/dist/lib/http/client.d.ts +11 -5
- package/dist/lib/http/client.d.ts.map +1 -1
- package/dist/lib/http/client.js +22 -4
- package/dist/lib/http/index.d.ts +1 -1
- package/dist/lib/http/index.d.ts.map +1 -1
- package/dist/lib/http/index.js +1 -1
- package/dist/lib/indexer-exclusions.d.ts +27 -0
- package/dist/lib/indexer-exclusions.d.ts.map +1 -0
- package/dist/lib/indexer-exclusions.js +176 -0
- package/dist/lib/instructions/templates.d.ts.map +1 -1
- package/dist/lib/instructions/templates.js +5 -0
- package/dist/lib/local-file-url.d.ts +9 -0
- package/dist/lib/local-file-url.d.ts.map +1 -0
- package/dist/lib/local-file-url.js +20 -0
- package/dist/lib/web-performance.d.ts +118 -0
- package/dist/lib/web-performance.d.ts.map +1 -0
- package/dist/lib/web-performance.js +192 -0
- package/package.json +29 -2
- package/schemas/config.schema.json +58 -0
- package/schemas/event-v3.schema.json +324 -112
- package/src/commander.ts +462 -95
- package/src/commands/agents.ts +517 -190
- package/src/commands/backup.ts +18 -14
- package/src/commands/browse-session.ts +12 -0
- package/src/commands/browse.ts +6 -7
- package/src/commands/conversations.ts +279 -0
- package/src/commands/deinit.ts +6 -0
- package/src/commands/docs.ts +25 -6
- package/src/commands/doctor.ts +75 -9
- package/src/commands/fetch.ts +7 -6
- package/src/commands/files.ts +143 -0
- package/src/commands/governor.ts +13 -12
- package/src/commands/inbox.ts +61 -0
- package/src/commands/init.ts +78 -16
- package/src/commands/ledger-v3.ts +421 -1
- package/src/commands/logs.ts +224 -0
- package/src/commands/messages.ts +61 -0
- package/src/commands/outline.ts +6 -2
- package/src/commands/read.ts +6 -2
- package/src/commands/semantic.ts +66 -1
- package/src/commands/storage.ts +310 -0
- package/src/commands/tunnel.ts +66 -52
- package/src/commands/web.ts +77 -7
- package/src/commands/work.ts +3 -3
- package/src/commands/workflow.ts +13 -13
- package/src/core/agents/cli.ts +259 -53
- package/src/core/agents/live-authority-v3.ts +341 -10
- package/src/core/agents/live-lifecycle-v3.ts +6 -1
- package/src/core/agents/live-observation-v3.ts +6 -1
- package/src/core/agents/render/prompt-context.ts +27 -6
- package/src/core/agents/rules/stop-hook.ts +107 -16
- package/src/core/agents/rules/verdict.ts +1 -0
- package/src/core/agents/session-events.ts +4 -0
- package/src/core/agents/session-finalization-state-v3.ts +1 -1
- package/src/core/agents/session-finalizer-v3.ts +4 -1
- package/src/core/agents/state/activity-log.ts +7 -2
- package/src/core/agents/state/heartbeat-writer.ts +27 -0
- package/src/core/agents/state/live-coordination-view.ts +16 -105
- package/src/core/agents/state/live-coordination-writer.ts +141 -0
- package/src/core/artifacts/index.ts +64 -1
- package/src/core/config.ts +126 -5
- package/src/core/conversations/archive.ts +237 -0
- package/src/core/conversations/catalog.ts +79 -0
- package/src/core/conversations/context-pack.ts +72 -0
- package/src/core/conversations/contract.ts +178 -0
- package/src/core/conversations/evaluation.ts +30 -0
- package/src/core/conversations/index.ts +9 -0
- package/src/core/conversations/lifecycle.ts +63 -0
- package/src/core/conversations/normalize.ts +105 -0
- package/src/core/conversations/query.ts +318 -0
- package/src/core/conversations/search-index.ts +48 -0
- package/src/core/events/legacy-storage/canary.ts +177 -0
- package/src/core/events/legacy-storage/fence.ts +129 -0
- package/src/core/events/legacy-storage/index.ts +5 -0
- package/src/core/events/legacy-storage/inventory.ts +51 -0
- package/src/core/events/legacy-storage/manifest.ts +136 -0
- package/src/core/events/legacy-storage/reader.ts +178 -0
- package/src/core/events/v3/authority-outbox.ts +22 -1
- package/src/core/events/v3/base-contract.ts +17 -7
- package/src/core/events/v3/bootstrap.ts +195 -2
- package/src/core/events/v3/capabilities.ts +3 -3
- package/src/core/events/v3/control-witness.ts +339 -0
- package/src/core/events/v3/control-writer.ts +16 -0
- package/src/core/events/v3/control.ts +54 -18
- package/src/core/events/v3/coordination-transaction-recovery.ts +477 -0
- package/src/core/events/v3/coordination-view.ts +17 -1
- package/src/core/events/v3/generated.ts +1 -1
- package/src/core/events/v3/index.ts +5 -2
- package/src/core/events/v3/live-route-observer.ts +80 -0
- package/src/core/events/v3/live-routing.ts +64 -46
- package/src/core/events/v3/producers/coordination-recorder.ts +95 -10
- package/src/core/events/v3/producers/diagnostic-summaries.ts +593 -0
- package/src/core/events/v3/producers/hook-base.ts +1 -1
- package/src/core/events/v3/producers/intake.ts +30 -2
- package/src/core/events/v3/producers/producer-state-observer.ts +52 -0
- package/src/core/events/v3/producers/recorder.ts +571 -33
- package/src/core/events/v3/reader.ts +243 -2
- package/src/core/events/v3/rotation-config.ts +98 -0
- package/src/core/events/v3/runtime-build.ts +41 -0
- package/src/core/events/v3/runtime-identity.ts +16 -0
- package/src/core/events/v3/runtime-telemetry-capabilities.ts +14 -8
- package/src/core/events/v3/support-storage/classify.ts +209 -0
- package/src/core/events/v3/support-storage/eligibility.ts +58 -0
- package/src/core/events/v3/support-storage/index.ts +9 -0
- package/src/core/events/v3/support-storage/inventory.ts +135 -0
- package/src/core/events/v3/support-storage/logical-authority.ts +117 -0
- package/src/core/events/v3/support-storage/maintenance.ts +501 -0
- package/src/core/events/v3/support-storage/pack-contract.ts +337 -0
- package/src/core/events/v3/support-storage/pack-reader.ts +346 -0
- package/src/core/events/v3/support-storage/pack-writer.ts +352 -0
- package/src/core/events/v3/support-storage/recovery.ts +43 -0
- package/src/core/events/v3/turn-telemetry.ts +58 -7
- package/src/core/events/v3/writer.ts +168 -16
- package/src/core/governor/plan-read.ts +5 -18
- package/src/core/governor/planning.ts +5 -8
- package/src/core/governor/service-read.ts +320 -2
- package/src/core/governor/service.ts +49 -22
- package/src/core/guard/evidence-v3.ts +1 -0
- package/src/core/hooks/adapter/events.ts +1 -0
- package/src/core/hooks/adapter/output.ts +12 -5
- package/src/core/hooks/adapter/runtime-telemetry.ts +408 -13
- package/src/core/hooks/cli.ts +226 -32
- package/src/core/hooks/effects/image-capture.ts +4 -1
- package/src/core/hooks/remediation-cap.ts +12 -6
- package/src/core/hooks/resolve/coord-root.ts +91 -11
- package/src/core/hooks/resolve/owner.ts +4 -0
- package/src/core/hooks/resolve/transcript.ts +18 -0
- package/src/core/inbox/contract.ts +81 -0
- package/src/core/inbox/index.ts +4 -0
- package/src/core/inbox/lifecycle.ts +104 -0
- package/src/core/inbox/service.ts +305 -0
- package/src/core/inbox/watcher.ts +36 -0
- package/src/core/presence/codec-digest.ts +15 -9
- package/src/core/presence/relay-client.ts +55 -7
- package/src/core/semantic/adapters.ts +200 -41
- package/src/core/semantic/contract.ts +135 -3
- package/src/core/semantic/index.ts +76 -2
- package/src/core/semantic/once.ts +93 -7
- package/src/core/semantic/prompt.ts +13 -1
- package/src/core/semantic/review.ts +803 -0
- package/src/core/semantic/routes.ts +30 -0
- package/src/core/semantic/scheduler.ts +49 -5
- package/src/core/semantic/service-status.ts +99 -5
- package/src/core/semantic/service.ts +116 -15
- package/src/core/semantic/soak.ts +638 -0
- package/src/core/semantic/storage.ts +20 -6
- package/src/core/semantic/usage.ts +272 -0
- package/src/core/semantic/validate.ts +31 -0
- package/src/core/storage/buffer.ts +124 -0
- package/src/core/storage/builtins.ts +916 -0
- package/src/core/storage/catalog.ts +467 -0
- package/src/core/storage/config.ts +423 -0
- package/src/core/storage/contract.ts +342 -0
- package/src/core/storage/durable-history.ts +738 -0
- package/src/core/storage/health.ts +76 -0
- package/src/core/storage/index.ts +15 -0
- package/src/core/storage/inventory.ts +859 -0
- package/src/core/storage/jsonl.ts +213 -0
- package/src/core/storage/log-retention.ts +555 -0
- package/src/core/storage/logger.ts +546 -0
- package/src/core/storage/maintenance-providers.ts +200 -0
- package/src/core/storage/maintenance.ts +929 -0
- package/src/core/storage/metrics.ts +199 -0
- package/src/core/storage/policy.ts +141 -0
- package/src/core/storage/process-log.ts +203 -0
- package/src/core/storage/query.ts +360 -0
- package/src/core/storage/receipts.ts +162 -0
- package/src/core/storage/segments.ts +721 -0
- package/src/core/storage/sink-graph.ts +343 -0
- package/src/core/storage/storm-control.ts +91 -0
- package/src/core/work/state.ts +12 -21
- package/src/core/workflow/live-session-v3.ts +2 -4
- package/src/index.ts +2 -0
- package/src/lazy-commands.ts +294 -0
- package/src/lib/docs-lint.ts +58 -77
- package/src/lib/docs-metadata-audit.ts +26 -21
- package/src/lib/docs-metadata-sync.ts +32 -9
- package/src/lib/docs-repository-view.ts +220 -0
- package/src/lib/http/client.ts +44 -8
- package/src/lib/http/index.ts +6 -1
- package/src/lib/indexer-exclusions.ts +173 -0
- package/src/lib/instructions/templates.ts +5 -0
- package/src/lib/local-file-url.ts +31 -0
- package/src/lib/web-performance.ts +335 -0
package/dist/commands/work.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { resolve } from "node:path";
|
|
2
2
|
import { adapterProofInputs, createBuiltinAdapterRegistry, probeBinaryVersion, } from "../core/adapters/index.js";
|
|
3
|
+
import { resolveCoordRoot } from "../core/agents/coord-client.js";
|
|
3
4
|
import { workflowSubscriptionOnly } from "../core/config.js";
|
|
4
5
|
import { findCompletedMissionGoverning, reopenGovernorMission } from "../core/governor/index.js";
|
|
5
|
-
import { findCoordRoot } from "../core/hooks/resolve/coord-root.js";
|
|
6
6
|
import { loadPolicyFile } from "../core/policy/index.js";
|
|
7
7
|
import { acceptWorkItem, cancelWorkItem, createWorkItem, listWorkItemsWithWarnings, readWorkItem, reconcileAllWorkItems, reconcileWorkItem, reopenWorkItem, runWorkItem, } from "../core/work/index.js";
|
|
8
8
|
import { WorkflowParkedError } from "../core/workflow/index.js";
|
|
@@ -344,7 +344,7 @@ export function renderAttemptBudget(record) {
|
|
|
344
344
|
return uncharged > 0 ? `${base} (+${uncharged} uncharged)` : base;
|
|
345
345
|
}
|
|
346
346
|
function withWorkRoot(emit, fn) {
|
|
347
|
-
const coordRoot =
|
|
347
|
+
const coordRoot = resolveCoordRoot();
|
|
348
348
|
if (!coordRoot) {
|
|
349
349
|
emit.error({
|
|
350
350
|
code: "no_coord_root",
|
|
@@ -362,7 +362,7 @@ function withWorkRoot(emit, fn) {
|
|
|
362
362
|
}
|
|
363
363
|
}
|
|
364
364
|
async function withWorkRootAsync(emit, fn) {
|
|
365
|
-
const coordRoot =
|
|
365
|
+
const coordRoot = resolveCoordRoot();
|
|
366
366
|
if (!coordRoot) {
|
|
367
367
|
emit.error({
|
|
368
368
|
code: "no_coord_root",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { join, resolve } from "node:path";
|
|
3
3
|
import { adapterProofInputs, createBuiltinAdapterRegistry, probeBinaryVersion, } from "../core/adapters/index.js";
|
|
4
|
+
import { resolveCoordRoot } from "../core/agents/coord-client.js";
|
|
4
5
|
import { resolveBinName, workflowSubscriptionOnly } from "../core/config.js";
|
|
5
|
-
import { findCoordRoot } from "../core/hooks/resolve/coord-root.js";
|
|
6
6
|
import { loadPolicyFile } from "../core/policy/index.js";
|
|
7
7
|
import { WorkflowParkedError } from "../core/workflow/engine.js";
|
|
8
8
|
export function registerWorkflowCommand(program, emit) {
|
|
@@ -37,7 +37,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
37
37
|
.option("--approval-to <address>", "Address durable ASK requests (default: operator)")
|
|
38
38
|
.option("--json", "Emit the full RunReport as JSON")
|
|
39
39
|
.action(async (script, opts) => {
|
|
40
|
-
const coordRoot =
|
|
40
|
+
const coordRoot = resolveCoordRoot();
|
|
41
41
|
if (!coordRoot) {
|
|
42
42
|
emit.error({
|
|
43
43
|
code: "no_coord_root",
|
|
@@ -156,7 +156,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
156
156
|
.description("Resume a parked workflow after its durable approval has been resolved.")
|
|
157
157
|
.option("--json", "Emit the full RunReport or parked result as JSON")
|
|
158
158
|
.action(async (runId, opts) => {
|
|
159
|
-
const coordRoot =
|
|
159
|
+
const coordRoot = resolveCoordRoot();
|
|
160
160
|
if (!coordRoot) {
|
|
161
161
|
emit.error({
|
|
162
162
|
code: "no_coord_root",
|
|
@@ -228,7 +228,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
228
228
|
.description("Show validated allocation, verification, integration, and cleanup state.")
|
|
229
229
|
.option("--json", "Emit the validated workspace status as JSON")
|
|
230
230
|
.action(async (runId, opts) => {
|
|
231
|
-
const coordRoot =
|
|
231
|
+
const coordRoot = resolveCoordRoot();
|
|
232
232
|
if (!coordRoot) {
|
|
233
233
|
emit.error({
|
|
234
234
|
code: "no_coord_root",
|
|
@@ -254,7 +254,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
254
254
|
.description("List validated isolated and shared-compatibility workspace decisions.")
|
|
255
255
|
.option("--json", "Emit workspace inspections as JSON")
|
|
256
256
|
.action(async (opts) => {
|
|
257
|
-
const coordRoot =
|
|
257
|
+
const coordRoot = resolveCoordRoot();
|
|
258
258
|
if (!coordRoot) {
|
|
259
259
|
emit.error({
|
|
260
260
|
code: "no_coord_root",
|
|
@@ -300,7 +300,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
300
300
|
.option("--approval-to <address>", "Address a durable policy ASK request")
|
|
301
301
|
.option("--json", "Emit the durable integration plan as JSON")
|
|
302
302
|
.action(async (runId, opts) => {
|
|
303
|
-
const coordRoot =
|
|
303
|
+
const coordRoot = resolveCoordRoot();
|
|
304
304
|
if (!coordRoot) {
|
|
305
305
|
emit.error({
|
|
306
306
|
code: "no_coord_root",
|
|
@@ -384,7 +384,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
384
384
|
.option("--yes", "Confirm the target-branch mutation")
|
|
385
385
|
.option("--json", "Emit the durable integration receipt as JSON")
|
|
386
386
|
.action(async (runId, opts) => {
|
|
387
|
-
const coordRoot =
|
|
387
|
+
const coordRoot = resolveCoordRoot();
|
|
388
388
|
if (!coordRoot) {
|
|
389
389
|
emit.error({
|
|
390
390
|
code: "no_coord_root",
|
|
@@ -426,7 +426,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
426
426
|
.option("--yes", "Confirm the worktree and provider-branch removal attempt")
|
|
427
427
|
.option("--json", "Emit the cleanup attempt or receipt as JSON")
|
|
428
428
|
.action(async (runId, opts) => {
|
|
429
|
-
const coordRoot =
|
|
429
|
+
const coordRoot = resolveCoordRoot();
|
|
430
430
|
if (!coordRoot) {
|
|
431
431
|
emit.error({
|
|
432
432
|
code: "no_coord_root",
|
|
@@ -473,7 +473,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
473
473
|
.option("--discard", "Throw the uncommitted work away instead of salvaging it")
|
|
474
474
|
.option("--json", "Emit the reclaim preparation and cleanup result as JSON")
|
|
475
475
|
.action(async (runId, opts) => {
|
|
476
|
-
const coordRoot =
|
|
476
|
+
const coordRoot = resolveCoordRoot();
|
|
477
477
|
if (!coordRoot) {
|
|
478
478
|
emit.error({
|
|
479
479
|
code: "no_coord_root",
|
|
@@ -539,7 +539,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
539
539
|
.option("--status <status>", "Filter: pending | approved | denied")
|
|
540
540
|
.option("--json", "Emit approval records as JSON")
|
|
541
541
|
.action(async (opts) => {
|
|
542
|
-
const coordRoot =
|
|
542
|
+
const coordRoot = resolveCoordRoot();
|
|
543
543
|
if (!coordRoot) {
|
|
544
544
|
emit.error({ code: "no_coord_root", message: "no .harnery/ coordination root found" });
|
|
545
545
|
process.exit(1);
|
|
@@ -571,7 +571,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
571
571
|
.description("Show one durable workflow approval.")
|
|
572
572
|
.option("--json", "Emit the approval record as JSON")
|
|
573
573
|
.action(async (approvalId, opts) => {
|
|
574
|
-
const coordRoot =
|
|
574
|
+
const coordRoot = resolveCoordRoot();
|
|
575
575
|
if (!coordRoot) {
|
|
576
576
|
emit.error({ code: "no_coord_root", message: "no .harnery/ coordination root found" });
|
|
577
577
|
process.exit(1);
|
|
@@ -600,7 +600,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
600
600
|
.option("--reason <text>", "Bounded decision reason")
|
|
601
601
|
.option("--json", "Emit the resolved approval as JSON")
|
|
602
602
|
.action(async (approvalId, opts) => {
|
|
603
|
-
const coordRoot =
|
|
603
|
+
const coordRoot = resolveCoordRoot();
|
|
604
604
|
if (!coordRoot) {
|
|
605
605
|
emit.error({ code: "no_coord_root", message: "no .harnery/ coordination root found" });
|
|
606
606
|
process.exit(1);
|
|
@@ -640,7 +640,7 @@ export function registerWorkflowCommand(program, emit) {
|
|
|
640
640
|
.description("Show the bounded proof packet for a completed workflow run.")
|
|
641
641
|
.option("--json", "Emit the stored proof packet as JSON")
|
|
642
642
|
.action(async (runId, opts) => {
|
|
643
|
-
const coordRoot =
|
|
643
|
+
const coordRoot = resolveCoordRoot();
|
|
644
644
|
if (!coordRoot) {
|
|
645
645
|
emit.error({
|
|
646
646
|
code: "no_coord_root",
|
|
@@ -62,7 +62,7 @@ export declare const BUILTIN_ADAPTER_PROFILES: {
|
|
|
62
62
|
};
|
|
63
63
|
};
|
|
64
64
|
export type BuiltinAdapterId = keyof typeof BUILTIN_ADAPTER_PROFILES;
|
|
65
|
-
export declare const BUILTIN_ADAPTER_IDS: readonly ("
|
|
65
|
+
export declare const BUILTIN_ADAPTER_IDS: readonly ("cursor" | "claude-code" | "codex")[];
|
|
66
66
|
export declare function isBuiltinAdapter(id: string): id is BuiltinAdapterId;
|
|
67
67
|
export declare function builtinAdapterProfile(id: string): AdapterProfile | undefined;
|
|
68
68
|
export declare function validateAdapterEffort(id: string, effort: string | undefined): void;
|
package/dist/core/agents/cli.js
CHANGED
|
@@ -6,10 +6,29 @@
|
|
|
6
6
|
* Phase 2 replaces the no-op branches with real state projection + CLI
|
|
7
7
|
* handlers; Phase 4 flips the default so `harn agents …` shims through here.
|
|
8
8
|
*/
|
|
9
|
+
import { createHash } from "node:crypto";
|
|
9
10
|
import { appendFileSync, existsSync } from "node:fs";
|
|
10
11
|
import { appendFile, mkdir } from "node:fs/promises";
|
|
12
|
+
import { hostname } from "node:os";
|
|
11
13
|
import { dirname, join, resolve } from "node:path";
|
|
12
14
|
import { coordEnv } from "../../lib/env.js";
|
|
15
|
+
import { closeProcessLoggers, legacyLogFields, processLogger } from "../storage/logger.js";
|
|
16
|
+
import { acquireNoClobberLease } from "../workflow/workspaces/leases.js";
|
|
17
|
+
function sharedDiagnostic(root, event, fields, error) {
|
|
18
|
+
if (coordEnv("SHARED_LOGS") === "0")
|
|
19
|
+
return false;
|
|
20
|
+
try {
|
|
21
|
+
const logger = processLogger(root, "agent-coord");
|
|
22
|
+
if (error === undefined)
|
|
23
|
+
logger.debug(event, legacyLogFields(fields));
|
|
24
|
+
else
|
|
25
|
+
logger.error(event, legacyLogFields(fields), error);
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
13
32
|
function findCoordRoot(start) {
|
|
14
33
|
// HARNERY_COORD_ROOT_OVERRIDE: the bash side's test-mode escape hatch. agent-coord
|
|
15
34
|
// honors the same env so sandboxed test runs don't get derailed when cwd
|
|
@@ -39,8 +58,6 @@ async function readStdin() {
|
|
|
39
58
|
return Buffer.concat(chunks).toString("utf8");
|
|
40
59
|
}
|
|
41
60
|
async function logNoop(root, subcommand, argv) {
|
|
42
|
-
const logPath = join(root, ".harnery", "debug", "agent-coord.ndjson");
|
|
43
|
-
await mkdir(dirname(logPath), { recursive: true });
|
|
44
61
|
const entry = {
|
|
45
62
|
ts: new Date().toISOString(),
|
|
46
63
|
note: "called, no-op",
|
|
@@ -50,6 +67,10 @@ async function logNoop(root, subcommand, argv) {
|
|
|
50
67
|
pid: process.pid,
|
|
51
68
|
ppid: process.ppid,
|
|
52
69
|
};
|
|
70
|
+
if (sharedDiagnostic(root, "agent_coord.noop", entry))
|
|
71
|
+
return;
|
|
72
|
+
const logPath = join(root, ".harnery", "debug", "agent-coord.ndjson");
|
|
73
|
+
await mkdir(dirname(logPath), { recursive: true });
|
|
53
74
|
await appendFile(logPath, `${JSON.stringify(entry)}\n`, "utf8");
|
|
54
75
|
}
|
|
55
76
|
/**
|
|
@@ -62,8 +83,6 @@ async function logNoop(root, subcommand, argv) {
|
|
|
62
83
|
*/
|
|
63
84
|
async function handleVerdict(root) {
|
|
64
85
|
const raw = await readStdin();
|
|
65
|
-
const logPath = join(root, ".harnery", "debug", "agent-coord-verdict.ndjson");
|
|
66
|
-
await mkdir(dirname(logPath), { recursive: true });
|
|
67
86
|
let parsed = {};
|
|
68
87
|
let parseErr = null;
|
|
69
88
|
try {
|
|
@@ -103,11 +122,12 @@ async function handleVerdict(root) {
|
|
|
103
122
|
reason: `no evaluator for rule=${parsed.rule ?? "<missing>"} (fail-open)`,
|
|
104
123
|
};
|
|
105
124
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
125
|
+
const diagnostic = { request_preview: raw.slice(0, 500), verdict };
|
|
126
|
+
if (!sharedDiagnostic(root, "agent_coord.verdict", diagnostic)) {
|
|
127
|
+
const logPath = join(root, ".harnery", "debug", "agent-coord-verdict.ndjson");
|
|
128
|
+
await mkdir(dirname(logPath), { recursive: true });
|
|
129
|
+
await appendFile(logPath, `${JSON.stringify({ ts: new Date().toISOString(), ...diagnostic })}\n`, "utf8");
|
|
130
|
+
}
|
|
111
131
|
process.stdout.write(`${JSON.stringify(verdict)}\n`);
|
|
112
132
|
return 0;
|
|
113
133
|
}
|
|
@@ -139,6 +159,57 @@ function adapterFromPlatform(platform) {
|
|
|
139
159
|
return "codex";
|
|
140
160
|
return "claude-code";
|
|
141
161
|
}
|
|
162
|
+
const coordinationRetryCell = new Int32Array(new SharedArrayBuffer(4));
|
|
163
|
+
const COORDINATION_RETRY_ATTEMPTS = 240;
|
|
164
|
+
const COORDINATION_RETRY_DELAY_MS = 25;
|
|
165
|
+
function isRetryableCoordinationContention(error) {
|
|
166
|
+
return (error instanceof Error &&
|
|
167
|
+
error.message.includes("lease event-v3-coordination-producer is held by a live or unexpired owner"));
|
|
168
|
+
}
|
|
169
|
+
function waitForCoordinationLease() {
|
|
170
|
+
Atomics.wait(coordinationRetryCell, 0, 0, COORDINATION_RETRY_DELAY_MS);
|
|
171
|
+
}
|
|
172
|
+
function pidIsAlive(pid) {
|
|
173
|
+
if (!Number.isSafeInteger(pid) || pid < 1)
|
|
174
|
+
return false;
|
|
175
|
+
try {
|
|
176
|
+
process.kill(pid, 0);
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
return error.code !== "ESRCH";
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// The V3 producer lease begins after its caller has materialized and read the
|
|
184
|
+
// disposable heartbeat. Serialize that larger registration boundary per owner
|
|
185
|
+
// so overlapping first declarations cannot both derive state from an unnamed,
|
|
186
|
+
// missing heartbeat and then strand a conflicting authority transaction.
|
|
187
|
+
function acquireSetTaskLease(root, owner) {
|
|
188
|
+
const leasePath = join(root, ".harnery", "active", ".set-task-leases", `${owner}.lease`);
|
|
189
|
+
const authoritySha256 = createHash("sha256")
|
|
190
|
+
.update(resolve(root))
|
|
191
|
+
.update("\0")
|
|
192
|
+
.update(owner)
|
|
193
|
+
.digest("hex");
|
|
194
|
+
for (let attempt = 0;; attempt += 1) {
|
|
195
|
+
try {
|
|
196
|
+
return acquireNoClobberLease({
|
|
197
|
+
path: leasePath,
|
|
198
|
+
scope: "agent-set-task",
|
|
199
|
+
authoritySha256,
|
|
200
|
+
staleAfterMs: 5_000,
|
|
201
|
+
validateStaleOwner: (leaseOwner) => leaseOwner.host === hostname() && !pidIsAlive(leaseOwner.pid),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
const busy = error instanceof Error &&
|
|
206
|
+
error.message.includes("lease agent-set-task is held by a live or unexpired owner");
|
|
207
|
+
if (!busy || attempt >= COORDINATION_RETRY_ATTEMPTS - 1)
|
|
208
|
+
throw error;
|
|
209
|
+
waitForCoordinationLease();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
142
213
|
async function handleStateAction(root, action, rest) {
|
|
143
214
|
const writer = await import("./state/heartbeat-writer.js");
|
|
144
215
|
const [owner, ...args] = rest;
|
|
@@ -149,31 +220,79 @@ async function handleStateAction(root, action, rest) {
|
|
|
149
220
|
switch (action) {
|
|
150
221
|
case "set-task": {
|
|
151
222
|
const task = args.join(" ");
|
|
152
|
-
|
|
153
|
-
let hb;
|
|
223
|
+
let setTaskLease;
|
|
154
224
|
try {
|
|
155
|
-
|
|
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);
|
|
225
|
+
setTaskLease = acquireSetTaskLease(root, owner);
|
|
164
226
|
}
|
|
165
227
|
catch (error) {
|
|
166
|
-
process.stderr.write(`agent-coord set-task:
|
|
228
|
+
process.stderr.write(`agent-coord set-task: registration lease refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
167
229
|
return 1;
|
|
168
230
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
231
|
+
try {
|
|
232
|
+
let before = writer.readHeartbeat(root, owner);
|
|
233
|
+
const humanFacing = before?.kind !== "subagent" && before?.kind !== "transient" && !before?.workflow_run_id;
|
|
234
|
+
// A mid-flight-onboarded generation can exist before SessionStart's
|
|
235
|
+
// assign-name step ran. Repair that private display metadata before the
|
|
236
|
+
// first non-empty task mints its operator-facing title. assignName is the
|
|
237
|
+
// same durable, idempotent pool path used by normal SessionStart.
|
|
238
|
+
if (task && before && humanFacing && !before.name?.trim()) {
|
|
239
|
+
const { assignName } = await import("./state/names.js");
|
|
240
|
+
const name = assignName(root, owner, "session");
|
|
241
|
+
before = writer.setAssignedNameCache(root, owner, name, "session");
|
|
242
|
+
if (!before) {
|
|
243
|
+
process.stderr.write(`agent-coord set-task: could not restore assigned name for ${owner}\n`);
|
|
244
|
+
return 1;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
let hb;
|
|
248
|
+
try {
|
|
249
|
+
const { recordLiveTaskChangeV3 } = await import("./live-authority-v3.js");
|
|
250
|
+
for (let attempt = 0;; attempt += 1) {
|
|
251
|
+
try {
|
|
252
|
+
recordLiveTaskChangeV3({
|
|
253
|
+
coordRoot: root,
|
|
254
|
+
owner,
|
|
255
|
+
nativeSessionId: before?.session_id ?? owner,
|
|
256
|
+
adapter: adapterFromPlatform(before?.platform),
|
|
257
|
+
task,
|
|
258
|
+
});
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
if (!isRetryableCoordinationContention(error) ||
|
|
263
|
+
attempt >= COORDINATION_RETRY_ATTEMPTS - 1) {
|
|
264
|
+
throw error;
|
|
265
|
+
}
|
|
266
|
+
waitForCoordinationLease();
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
hb = writer.readHeartbeat(root, owner);
|
|
270
|
+
const currentHumanFacing = hb?.kind !== "subagent" && hb?.kind !== "transient" && !hb?.workflow_run_id;
|
|
271
|
+
if (task &&
|
|
272
|
+
hb &&
|
|
273
|
+
currentHumanFacing &&
|
|
274
|
+
(!hb.name?.trim() || /^Agent unknown - /.test(hb.suggested_session_name ?? ""))) {
|
|
275
|
+
const { assignName } = await import("./state/names.js");
|
|
276
|
+
const name = hb.name?.trim() || assignName(root, owner, "session");
|
|
277
|
+
hb = writer.setAssignedNameCache(root, owner, name, "session");
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
process.stderr.write(`agent-coord set-task: V3 authority refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
282
|
+
return 1;
|
|
283
|
+
}
|
|
284
|
+
if (!hb) {
|
|
285
|
+
// Name the RESOLVED root: when a nested .harnery/ shadows the real
|
|
286
|
+
// coordination home, the full path is what makes that diagnosable.
|
|
287
|
+
process.stderr.write(`agent-coord set-task: no heartbeat at ${root}/.harnery/active/${owner}.json\n`);
|
|
288
|
+
return 1;
|
|
289
|
+
}
|
|
290
|
+
process.stdout.write(`${JSON.stringify({ instance_id: owner, task: hb.task ?? null, cleared: !task })}\n`);
|
|
291
|
+
return 0;
|
|
292
|
+
}
|
|
293
|
+
finally {
|
|
294
|
+
setTaskLease.release();
|
|
174
295
|
}
|
|
175
|
-
process.stdout.write(`${JSON.stringify({ instance_id: owner, task: hb.task ?? null, cleared: !task })}\n`);
|
|
176
|
-
return 0;
|
|
177
296
|
}
|
|
178
297
|
case "release-claim": {
|
|
179
298
|
const path = args[0];
|
|
@@ -250,8 +369,8 @@ async function handleStateAction(root, action, rest) {
|
|
|
250
369
|
adapter: adapterFromPlatform(adapter),
|
|
251
370
|
});
|
|
252
371
|
}
|
|
253
|
-
const {
|
|
254
|
-
hb =
|
|
372
|
+
const { repairLiveCoordinationHeartbeat } = await import("./state/live-coordination-writer.js");
|
|
373
|
+
hb = repairLiveCoordinationHeartbeat(root, owner, sessionId ?? owner, adapterFromPlatform(adapter), model);
|
|
255
374
|
}
|
|
256
375
|
catch (error) {
|
|
257
376
|
process.stderr.write(`agent-coord repair-coordination-cache: V3 route refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
@@ -260,6 +379,45 @@ async function handleStateAction(root, action, rest) {
|
|
|
260
379
|
process.stdout.write(`${JSON.stringify({ instance_id: owner, recreated: !!hb })}\n`);
|
|
261
380
|
return hb ? 0 : 1;
|
|
262
381
|
}
|
|
382
|
+
case "quarantine-authority-transaction": {
|
|
383
|
+
const adapter = args.find((a) => a.startsWith("--adapter="))?.slice("--adapter=".length);
|
|
384
|
+
const positional = args.filter((a) => !a.startsWith("--"));
|
|
385
|
+
const [transactionId, approvalRecordId, sessionId] = positional;
|
|
386
|
+
if (!transactionId || !approvalRecordId) {
|
|
387
|
+
process.stderr.write("agent-coord quarantine-authority-transaction: missing <transaction-id> or <approval-record-id>\n");
|
|
388
|
+
return 2;
|
|
389
|
+
}
|
|
390
|
+
try {
|
|
391
|
+
const { coordinationAuthorityStateDigestV3, liveCoordinationWriteModeV3 } = await import("./live-authority-v3.js");
|
|
392
|
+
liveCoordinationWriteModeV3(root);
|
|
393
|
+
const { liveInstanceIdV3 } = await import("../events/v3/live-routing.js");
|
|
394
|
+
const { repairLiveCoordinationHeartbeat } = await import("./state/live-coordination-writer.js");
|
|
395
|
+
const heartbeat = repairLiveCoordinationHeartbeat(root, owner, sessionId ?? owner, adapterFromPlatform(adapter));
|
|
396
|
+
if (!heartbeat) {
|
|
397
|
+
throw new Error("authoritative coordination cache could not be materialized");
|
|
398
|
+
}
|
|
399
|
+
const { quarantineConflictingCoordinationTransactionV3 } = await import("../events/v3/coordination-transaction-recovery.js");
|
|
400
|
+
const receipt = quarantineConflictingCoordinationTransactionV3(root, {
|
|
401
|
+
transaction_id: transactionId,
|
|
402
|
+
actor_instance_id: liveInstanceIdV3(owner),
|
|
403
|
+
observed_current_state_digest: coordinationAuthorityStateDigestV3(heartbeat),
|
|
404
|
+
approval_record_id: approvalRecordId,
|
|
405
|
+
});
|
|
406
|
+
const repaired = repairLiveCoordinationHeartbeat(root, owner, sessionId ?? owner, adapterFromPlatform(adapter));
|
|
407
|
+
process.stdout.write(`${JSON.stringify({
|
|
408
|
+
instance_id: owner,
|
|
409
|
+
receipt,
|
|
410
|
+
heartbeat: repaired
|
|
411
|
+
? { task_state: repaired.task_state, files_touched: repaired.files_touched }
|
|
412
|
+
: null,
|
|
413
|
+
})}\n`);
|
|
414
|
+
return repaired ? 0 : 1;
|
|
415
|
+
}
|
|
416
|
+
catch (error) {
|
|
417
|
+
process.stderr.write(`agent-coord quarantine-authority-transaction: recovery refused (${error instanceof Error ? error.message : String(error)})\n`);
|
|
418
|
+
return 1;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
263
421
|
default:
|
|
264
422
|
process.stderr.write(`agent-coord: unknown state action ${action}\n`);
|
|
265
423
|
return 2;
|
|
@@ -515,12 +673,13 @@ async function handlePromptContext(root, rest) {
|
|
|
515
673
|
const agentName = args.name;
|
|
516
674
|
const sessionNameNudge = args["session-name-nudge"] === "true";
|
|
517
675
|
const taskNudge = args["task-nudge"] === "true";
|
|
676
|
+
const hostPromptReminder = args["host-prompt-reminder"] === "true";
|
|
518
677
|
const statusFooterNudge = args["status-footer-nudge"] === "true";
|
|
519
678
|
// Value is the adapter id; a bare flag (parsed as "true") still enables the
|
|
520
679
|
// reminder with the adapter-neutral wording.
|
|
521
680
|
const turnRitualNudge = args["turn-ritual-nudge"] === "true" ? "generic" : args["turn-ritual-nudge"];
|
|
522
681
|
if (!instanceId) {
|
|
523
|
-
process.stderr.write("agent-coord prompt-context --instance <id> [--session <id>] [--name <agent-name>] [--session-name-nudge] [--task-nudge] [--status-footer-nudge] [--turn-ritual-nudge <adapter>]\n");
|
|
682
|
+
process.stderr.write("agent-coord prompt-context --instance <id> [--session <id>] [--name <agent-name>] [--session-name-nudge] [--task-nudge] [--host-prompt-reminder] [--status-footer-nudge] [--turn-ritual-nudge <adapter>]\n");
|
|
524
683
|
return 2;
|
|
525
684
|
}
|
|
526
685
|
const { renderPromptContext } = await import("./render/prompt-context.js");
|
|
@@ -531,6 +690,7 @@ async function handlePromptContext(root, rest) {
|
|
|
531
690
|
agentName,
|
|
532
691
|
sessionNameNudge,
|
|
533
692
|
taskNudge,
|
|
693
|
+
hostPromptReminder,
|
|
534
694
|
statusFooterNudge,
|
|
535
695
|
turnRitualNudge,
|
|
536
696
|
});
|
|
@@ -726,9 +886,12 @@ async function handleGitHook(fallbackRoot, rest) {
|
|
|
726
886
|
});
|
|
727
887
|
// Forensics channel shared with the stdin `verdict` path.
|
|
728
888
|
try {
|
|
729
|
-
const
|
|
730
|
-
|
|
731
|
-
|
|
889
|
+
const diagnostic = { via: "git-hook", staged, verdict: result };
|
|
890
|
+
if (!sharedDiagnostic(root, "agent_coord.git_hook_verdict", diagnostic)) {
|
|
891
|
+
const logPath = join(root, ".harnery", "debug", "agent-coord-verdict.ndjson");
|
|
892
|
+
await mkdir(dirname(logPath), { recursive: true });
|
|
893
|
+
await appendFile(logPath, `${JSON.stringify({ ts: new Date().toISOString(), ...diagnostic })}\n`);
|
|
894
|
+
}
|
|
732
895
|
}
|
|
733
896
|
catch {
|
|
734
897
|
/* diagnostics never break a verdict */
|
|
@@ -809,7 +972,8 @@ async function main() {
|
|
|
809
972
|
if (subcommand === "set-task" ||
|
|
810
973
|
subcommand === "release-claim" ||
|
|
811
974
|
subcommand === "heal-pidmap" ||
|
|
812
|
-
subcommand === "repair-coordination-cache"
|
|
975
|
+
subcommand === "repair-coordination-cache" ||
|
|
976
|
+
subcommand === "quarantine-authority-transaction") {
|
|
813
977
|
return handleStateAction(root, subcommand, rest);
|
|
814
978
|
}
|
|
815
979
|
if (subcommand === "append-journal" || subcommand === "edit-journal") {
|
|
@@ -859,17 +1023,23 @@ async function main() {
|
|
|
859
1023
|
return 0;
|
|
860
1024
|
}
|
|
861
1025
|
main()
|
|
862
|
-
.then((code) =>
|
|
863
|
-
|
|
1026
|
+
.then(async (code) => {
|
|
1027
|
+
await closeProcessLoggers();
|
|
1028
|
+
process.exit(code);
|
|
1029
|
+
})
|
|
1030
|
+
.catch(async (err) => {
|
|
864
1031
|
try {
|
|
865
1032
|
const root = findCoordRoot(process.cwd());
|
|
866
1033
|
if (root) {
|
|
867
|
-
|
|
868
|
-
|
|
1034
|
+
if (!sharedDiagnostic(root, "agent_coord.error", {}, err)) {
|
|
1035
|
+
const path = join(root, ".harnery", "debug", "agent-coord.errors.ndjson");
|
|
1036
|
+
appendFileSync(path, `${JSON.stringify({ ts: new Date().toISOString(), error: String(err) })}\n`);
|
|
1037
|
+
}
|
|
869
1038
|
}
|
|
870
1039
|
}
|
|
871
1040
|
catch {
|
|
872
1041
|
/* swallow */
|
|
873
1042
|
}
|
|
1043
|
+
await closeProcessLoggers();
|
|
874
1044
|
process.exit(0);
|
|
875
1045
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Adapter } from "../adapter.js";
|
|
2
|
-
import type
|
|
2
|
+
import { type EventV3WriteMode } from "../events/v3/control.js";
|
|
3
3
|
import { type RecordCoordinationAuthorityV3Result } from "../events/v3/producers/coordination-recorder.js";
|
|
4
|
+
import { type Heartbeat } from "./state/heartbeat-writer.js";
|
|
4
5
|
export declare const LIVE_COORDINATION_V3_PRODUCER_ID: "prd_agent-coord";
|
|
5
6
|
export declare class LiveCoordinationAuthorityV3Error extends Error {
|
|
6
7
|
readonly reason: string;
|
|
@@ -18,6 +19,18 @@ export interface ReopenedLiveCoordinationGenerationV3 {
|
|
|
18
19
|
prior_generation_id: `gen_${string}`;
|
|
19
20
|
generation_id: `gen_${string}`;
|
|
20
21
|
}
|
|
22
|
+
export interface BootstrappedLiveCoordinationAuthorityV3 {
|
|
23
|
+
state: "created" | "reused";
|
|
24
|
+
adapter: Adapter;
|
|
25
|
+
generation_id: `gen_${string}`;
|
|
26
|
+
heartbeat: Heartbeat;
|
|
27
|
+
}
|
|
28
|
+
export interface RestoredLiveCoordinationStateV3 {
|
|
29
|
+
state: "unchanged" | "restored";
|
|
30
|
+
task: boolean;
|
|
31
|
+
claims: number;
|
|
32
|
+
lifecycle: boolean;
|
|
33
|
+
}
|
|
21
34
|
interface LiveAuthorityBaseV3 {
|
|
22
35
|
coordRoot: string;
|
|
23
36
|
owner: string;
|
|
@@ -26,6 +39,38 @@ interface LiveAuthorityBaseV3 {
|
|
|
26
39
|
adapter: Adapter;
|
|
27
40
|
observationId?: string;
|
|
28
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Establish the missing generation authority for one adapter-native session,
|
|
44
|
+
* then reconstruct its disposable heartbeat cache.
|
|
45
|
+
*
|
|
46
|
+
* This is intentionally narrower than mid-flight hook onboarding. The caller
|
|
47
|
+
* must supply an already validated native session, adapter, and current
|
|
48
|
+
* instance identity. Existing authority is reused only when all three bind to
|
|
49
|
+
* the same non-terminal producer generation. A terminal generation, an
|
|
50
|
+
* adapter/session collision, or any disagreement between private producer
|
|
51
|
+
* control and the public projection fails closed. No turn is synthesized.
|
|
52
|
+
*/
|
|
53
|
+
export declare function bootstrapLiveCoordinationAuthorityV3(input: {
|
|
54
|
+
coordRoot: string;
|
|
55
|
+
owner: string;
|
|
56
|
+
nativeSessionId: string;
|
|
57
|
+
adapter: Adapter;
|
|
58
|
+
}): BootstrappedLiveCoordinationAuthorityV3;
|
|
59
|
+
/**
|
|
60
|
+
* Reapply private, generation-bound coordination state after a runtime epoch
|
|
61
|
+
* replaces the canonical ledger. The old heartbeat is only accepted for the
|
|
62
|
+
* same native session and a different V3 generation. Its task prose and
|
|
63
|
+
* lifecycle reason remain in the disposable cache; canonical events retain
|
|
64
|
+
* only the privacy-safe authority signals.
|
|
65
|
+
*/
|
|
66
|
+
export declare function restoreLiveCoordinationStateAfterEpochV3(input: {
|
|
67
|
+
coordRoot: string;
|
|
68
|
+
owner: string;
|
|
69
|
+
nativeSessionId: string;
|
|
70
|
+
adapter: Adapter;
|
|
71
|
+
prior: Heartbeat | null;
|
|
72
|
+
currentGenerationId?: `gen_${string}`;
|
|
73
|
+
}): RestoredLiveCoordinationStateV3;
|
|
29
74
|
/**
|
|
30
75
|
* Open a fresh derived generation for a human-facing session that is executing
|
|
31
76
|
* again after an authoritative terminal. The terminal generation is never
|
|
@@ -55,5 +100,6 @@ export declare function recordLiveIdentityChangeV3(input: LiveAuthorityBaseV3 &
|
|
|
55
100
|
identityId: string;
|
|
56
101
|
}): LiveCoordinationAuthorityV3Result;
|
|
57
102
|
export declare function liveCoordinationWriteModeV3(coordRoot: string): EventV3WriteMode;
|
|
103
|
+
export declare function coordinationAuthorityStateDigestV3(heartbeat: Heartbeat): `sha256:${string}`;
|
|
58
104
|
export {};
|
|
59
105
|
//# sourceMappingURL=live-authority-v3.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-authority-v3.d.ts","sourceRoot":"","sources":["../../../src/core/agents/live-authority-v3.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"live-authority-v3.d.ts","sourceRoot":"","sources":["../../../src/core/agents/live-authority-v3.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,KAAK,gBAAgB,EAA2B,MAAM,yBAAyB,CAAC;AAgBzF,OAAO,EACL,KAAK,mCAAmC,EAEzC,MAAM,iDAAiD,CAAC;AASzD,OAAO,EAEL,KAAK,SAAS,EAMf,MAAM,6BAA6B,CAAC;AAQrC,eAAO,MAAM,gCAAgC,EAAG,iBAA0B,CAAC;AAE3E,qBAAa,gCAAiC,SAAQ,KAAK;aAC7B,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAI3C;AAED,MAAM,MAAM,iCAAiC,GACzC;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,mCAAmC,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,OAAO,MAAM,EAAE,CAAC;IACrC,aAAa,EAAE,OAAO,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,uCAAuC;IACtD,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,WAAW,GAAG,UAAU,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,EAAE;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,uCAAuC,CA6H1C;AAqED;;;;;;GAMG;AACH,wBAAgB,wCAAwC,CAAC,KAAK,EAAE;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,MAAM,EAAE,CAAC;CACvC,GAAG,+BAA+B,CAmFlC;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,oCAAoC,CAkDvC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5C,iCAAiC,CAiCnC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,mBAAmB,GAAG;IAC3B,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,iCAAiC,CAoCnC;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,mBAAmB,GAAG;IAC3B,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B,GACA,iCAAiC,CAwCnC;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAChE,iCAAiC,CAwBnC;AAuDD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAI/E;AAaD,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,MAAM,EAAE,CAa3F"}
|