harnery 0.35.0 → 0.37.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 +128 -96
- package/dist/commands/agents.d.ts +23 -3
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +464 -242
- package/dist/commands/artifacts.d.ts.map +1 -1
- package/dist/commands/artifacts.js +26 -1
- 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 +16 -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/diagnostics.d.ts +4 -0
- package/dist/commands/diagnostics.d.ts.map +1 -0
- package/dist/commands/diagnostics.js +229 -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 +34 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +166 -0
- package/dist/commands/governor.d.ts.map +1 -1
- package/dist/commands/governor.js +18 -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 +417 -2
- 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/qa-run.d.ts +4 -0
- package/dist/commands/qa-run.d.ts.map +1 -0
- package/dist/commands/qa-run.js +141 -0
- 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/resources.d.ts +4 -0
- package/dist/commands/resources.d.ts.map +1 -0
- package/dist/commands/resources.js +29 -0
- 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/supervisor.d.ts +4 -0
- package/dist/commands/supervisor.d.ts.map +1 -0
- package/dist/commands/supervisor.js +101 -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 +84 -7
- package/dist/commands/work.js +3 -3
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +17 -13
- package/dist/core/adapters/profiles.d.ts +1 -1
- package/dist/core/agents/cli.js +215 -41
- package/dist/core/agents/health.d.ts +17 -0
- package/dist/core/agents/health.d.ts.map +1 -0
- package/dist/core/agents/health.js +109 -0
- 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/mailbox.d.ts +92 -0
- package/dist/core/agents/mailbox.d.ts.map +1 -0
- package/dist/core/agents/mailbox.js +325 -0
- package/dist/core/agents/reconcile-coordination-v3.d.ts +44 -0
- package/dist/core/agents/reconcile-coordination-v3.d.ts.map +1 -0
- package/dist/core/agents/reconcile-coordination-v3.js +58 -0
- package/dist/core/agents/render/prompt-context.d.ts +14 -3
- package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.js +54 -16
- package/dist/core/agents/render/session-context.d.ts +8 -0
- package/dist/core/agents/render/session-context.d.ts.map +1 -1
- package/dist/core/agents/render/session-context.js +34 -3
- package/dist/core/agents/rules/commit-conflict.d.ts.map +1 -1
- package/dist/core/agents/rules/commit-conflict.js +50 -1
- 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 +93 -16
- 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 +9 -2
- 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 +47 -1
- package/dist/core/artifacts/index.d.ts.map +1 -1
- package/dist/core/artifacts/index.js +191 -6
- package/dist/core/config.d.ts +74 -4
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +141 -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/diagnostics/advice.d.ts +9 -0
- package/dist/core/diagnostics/advice.d.ts.map +1 -0
- package/dist/core/diagnostics/advice.js +112 -0
- package/dist/core/diagnostics/bundle.d.ts +35 -0
- package/dist/core/diagnostics/bundle.d.ts.map +1 -0
- package/dist/core/diagnostics/bundle.js +874 -0
- package/dist/core/diagnostics/comparison.d.ts +5 -0
- package/dist/core/diagnostics/comparison.d.ts.map +1 -0
- package/dist/core/diagnostics/comparison.js +444 -0
- package/dist/core/diagnostics/contract.d.ts +245 -0
- package/dist/core/diagnostics/contract.d.ts.map +1 -0
- package/dist/core/diagnostics/contract.js +18 -0
- package/dist/core/diagnostics/identity.d.ts +3 -0
- package/dist/core/diagnostics/identity.d.ts.map +1 -0
- package/dist/core/diagnostics/identity.js +10 -0
- package/dist/core/diagnostics/index.d.ts +8 -0
- package/dist/core/diagnostics/index.d.ts.map +1 -0
- package/dist/core/diagnostics/index.js +7 -0
- package/dist/core/diagnostics/replay.d.ts +8 -0
- package/dist/core/diagnostics/replay.d.ts.map +1 -0
- package/dist/core/diagnostics/replay.js +213 -0
- package/dist/core/diagnostics/sanitize.d.ts +9 -0
- package/dist/core/diagnostics/sanitize.d.ts.map +1 -0
- package/dist/core/diagnostics/sanitize.js +84 -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/compression.d.ts +13 -0
- package/dist/core/events/legacy-storage/compression.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/compression.js +107 -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 +7 -0
- package/dist/core/events/legacy-storage/index.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/index.js +6 -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/archive-retention.d.ts +33 -0
- package/dist/core/events/v3/archive-retention.d.ts.map +1 -0
- package/dist/core/events/v3/archive-retention.js +195 -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.d.ts +1 -1
- package/dist/core/events/v3/capabilities.d.ts.map +1 -1
- package/dist/core/events/v3/capabilities.js +4 -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 +5 -2
- package/dist/core/events/v3/index.d.ts.map +1 -1
- package/dist/core/events/v3/index.js +4 -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 +46 -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.d.ts +1 -1
- package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -1
- package/dist/core/events/v3/producers/hook-base.js +14 -3
- 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 +26 -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 +71 -1
- package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/recorder.js +441 -25
- 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 +12 -2
- package/dist/core/hooks/adapter/output.d.ts.map +1 -1
- package/dist/core/hooks/adapter/output.js +23 -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 +380 -207
- 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/health.d.ts +59 -0
- package/dist/core/hooks/health.d.ts.map +1 -0
- package/dist/core/hooks/health.js +84 -0
- 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/resources/contract.d.ts +90 -0
- package/dist/core/resources/contract.d.ts.map +1 -0
- package/dist/core/resources/contract.js +2 -0
- package/dist/core/resources/index.d.ts +6 -0
- package/dist/core/resources/index.d.ts.map +1 -0
- package/dist/core/resources/index.js +5 -0
- package/dist/core/resources/sampler.d.ts +27 -0
- package/dist/core/resources/sampler.d.ts.map +1 -0
- package/dist/core/resources/sampler.js +357 -0
- package/dist/core/resources/service-status.d.ts +3 -0
- package/dist/core/resources/service-status.d.ts.map +1 -0
- package/dist/core/resources/service-status.js +48 -0
- package/dist/core/resources/service.d.ts +26 -0
- package/dist/core/resources/service.d.ts.map +1 -0
- package/dist/core/resources/service.js +292 -0
- package/dist/core/resources/storage.d.ts +13 -0
- package/dist/core/resources/storage.d.ts.map +1 -0
- package/dist/core/resources/storage.js +30 -0
- 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/atomic-json.d.ts +3 -0
- package/dist/core/storage/atomic-json.d.ts.map +1 -0
- package/dist/core/storage/atomic-json.js +15 -0
- 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 +722 -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 +84 -0
- package/dist/core/storage/logger.d.ts.map +1 -0
- package/dist/core/storage/logger.js +413 -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 +48 -0
- package/dist/core/storage/query.d.ts.map +1 -0
- package/dist/core/storage/query.js +346 -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/supervisor/activity.d.ts +4 -0
- package/dist/core/supervisor/activity.d.ts.map +1 -0
- package/dist/core/supervisor/activity.js +141 -0
- package/dist/core/supervisor/contract.d.ts +268 -0
- package/dist/core/supervisor/contract.d.ts.map +1 -0
- package/dist/core/supervisor/contract.js +35 -0
- package/dist/core/supervisor/explanations.d.ts +4 -0
- package/dist/core/supervisor/explanations.d.ts.map +1 -0
- package/dist/core/supervisor/explanations.js +71 -0
- package/dist/core/supervisor/findings.d.ts +20 -0
- package/dist/core/supervisor/findings.d.ts.map +1 -0
- package/dist/core/supervisor/findings.js +399 -0
- package/dist/core/supervisor/history.d.ts +9 -0
- package/dist/core/supervisor/history.d.ts.map +1 -0
- package/dist/core/supervisor/history.js +46 -0
- package/dist/core/supervisor/hook-health-alerts.d.ts +14 -0
- package/dist/core/supervisor/hook-health-alerts.d.ts.map +1 -0
- package/dist/core/supervisor/hook-health-alerts.js +70 -0
- package/dist/core/supervisor/hook-health-storage.d.ts +5 -0
- package/dist/core/supervisor/hook-health-storage.d.ts.map +1 -0
- package/dist/core/supervisor/hook-health-storage.js +24 -0
- package/dist/core/supervisor/hook-health.d.ts +72 -0
- package/dist/core/supervisor/hook-health.d.ts.map +1 -0
- package/dist/core/supervisor/hook-health.js +203 -0
- package/dist/core/supervisor/hooks.d.ts +10 -0
- package/dist/core/supervisor/hooks.d.ts.map +1 -0
- package/dist/core/supervisor/hooks.js +28 -0
- package/dist/core/supervisor/index.d.ts +15 -0
- package/dist/core/supervisor/index.d.ts.map +1 -0
- package/dist/core/supervisor/index.js +14 -0
- package/dist/core/supervisor/log-feed.d.ts +9 -0
- package/dist/core/supervisor/log-feed.d.ts.map +1 -0
- package/dist/core/supervisor/log-feed.js +103 -0
- package/dist/core/supervisor/service.d.ts +29 -0
- package/dist/core/supervisor/service.d.ts.map +1 -0
- package/dist/core/supervisor/service.js +450 -0
- package/dist/core/supervisor/services.d.ts +11 -0
- package/dist/core/supervisor/services.d.ts.map +1 -0
- package/dist/core/supervisor/services.js +155 -0
- package/dist/core/supervisor/status.d.ts +3 -0
- package/dist/core/supervisor/status.d.ts.map +1 -0
- package/dist/core/supervisor/status.js +48 -0
- package/dist/core/supervisor/storage.d.ts +30 -0
- package/dist/core/supervisor/storage.d.ts.map +1 -0
- package/dist/core/supervisor/storage.js +73 -0
- package/dist/core/supervisor/timeline.d.ts +3 -0
- package/dist/core/supervisor/timeline.d.ts.map +1 -0
- package/dist/core/supervisor/timeline.js +87 -0
- package/dist/core/work/state.d.ts.map +1 -1
- package/dist/core/work/state.js +10 -14
- package/dist/core/workflow/admission.d.ts +23 -0
- package/dist/core/workflow/admission.d.ts.map +1 -0
- package/dist/core/workflow/admission.js +136 -0
- package/dist/core/workflow/engine.d.ts.map +1 -1
- package/dist/core/workflow/engine.js +77 -2
- package/dist/core/workflow/index.d.ts +3 -2
- package/dist/core/workflow/index.d.ts.map +1 -1
- package/dist/core/workflow/index.js +2 -1
- package/dist/core/workflow/live-session-v3.d.ts.map +1 -1
- package/dist/core/workflow/live-session-v3.js +2 -1
- package/dist/core/workflow/proof.d.ts +2 -1
- package/dist/core/workflow/proof.d.ts.map +1 -1
- package/dist/core/workflow/proof.js +39 -1
- package/dist/core/workflow/run-state.d.ts +3 -2
- package/dist/core/workflow/run-state.d.ts.map +1 -1
- package/dist/core/workflow/run-state.js +8 -1
- package/dist/core/workflow/types.d.ts +33 -1
- package/dist/core/workflow/types.d.ts.map +1 -1
- package/dist/core/workflow/types.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/browser/client.d.ts +5 -0
- package/dist/lib/browser/client.d.ts.map +1 -1
- package/dist/lib/browser/client.js +1 -0
- package/dist/lib/browser/index.d.ts +2 -0
- package/dist/lib/browser/index.d.ts.map +1 -1
- package/dist/lib/browser/index.js +2 -0
- package/dist/lib/browser/qa-run-contracts.d.ts +173 -0
- package/dist/lib/browser/qa-run-contracts.d.ts.map +1 -0
- package/dist/lib/browser/qa-run-contracts.js +226 -0
- package/dist/lib/browser/qa-run.d.ts +51 -0
- package/dist/lib/browser/qa-run.d.ts.map +1 -0
- package/dist/lib/browser/qa-run.js +684 -0
- package/dist/lib/coord-root-id.d.ts +9 -0
- package/dist/lib/coord-root-id.d.ts.map +1 -0
- package/dist/lib/coord-root-id.js +17 -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/apply.d.ts +3 -1
- package/dist/lib/instructions/apply.d.ts.map +1 -1
- package/dist/lib/instructions/apply.js +74 -3
- package/dist/lib/instructions/templates.d.ts.map +1 -1
- package/dist/lib/instructions/templates.js +11 -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 +40 -2
- package/schemas/config.schema.json +58 -0
- package/schemas/event-v3.schema.json +324 -112
- package/src/commander.ts +488 -95
- package/src/commands/agents.ts +617 -237
- package/src/commands/artifacts.ts +40 -2
- package/src/commands/backup.ts +18 -14
- package/src/commands/browse-session.ts +12 -0
- package/src/commands/browse.ts +21 -7
- package/src/commands/conversations.ts +279 -0
- package/src/commands/deinit.ts +6 -0
- package/src/commands/diagnostics.ts +271 -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 +243 -0
- package/src/commands/governor.ts +21 -12
- package/src/commands/inbox.ts +61 -0
- package/src/commands/init.ts +78 -16
- package/src/commands/ledger-v3.ts +503 -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/qa-run.ts +184 -0
- package/src/commands/read.ts +6 -2
- package/src/commands/resources.ts +38 -0
- package/src/commands/semantic.ts +66 -1
- package/src/commands/storage.ts +310 -0
- package/src/commands/supervisor.ts +141 -0
- package/src/commands/tunnel.ts +66 -52
- package/src/commands/web.ts +96 -7
- package/src/commands/work.ts +3 -3
- package/src/commands/workflow.ts +21 -13
- package/src/core/agents/cli.ts +265 -55
- package/src/core/agents/health.ts +142 -0
- 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/mailbox.ts +373 -0
- package/src/core/agents/reconcile-coordination-v3.ts +77 -0
- package/src/core/agents/render/prompt-context.ts +66 -15
- package/src/core/agents/render/session-context.ts +37 -3
- package/src/core/agents/rules/commit-conflict.ts +58 -1
- package/src/core/agents/rules/stop-hook.ts +105 -20
- 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 +8 -2
- 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 +260 -11
- package/src/core/config.ts +235 -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/diagnostics/advice.ts +147 -0
- package/src/core/diagnostics/bundle.ts +1142 -0
- package/src/core/diagnostics/comparison.ts +565 -0
- package/src/core/diagnostics/contract.ts +311 -0
- package/src/core/diagnostics/identity.ts +11 -0
- package/src/core/diagnostics/index.ts +7 -0
- package/src/core/diagnostics/replay.ts +314 -0
- package/src/core/diagnostics/sanitize.ts +97 -0
- package/src/core/events/legacy-storage/canary.ts +177 -0
- package/src/core/events/legacy-storage/compression.ts +130 -0
- package/src/core/events/legacy-storage/fence.ts +129 -0
- package/src/core/events/legacy-storage/index.ts +6 -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/archive-retention.ts +251 -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 +5 -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 +14 -2
- package/src/core/events/v3/live-route-observer.ts +80 -0
- package/src/core/events/v3/live-routing.ts +65 -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 +15 -3
- package/src/core/events/v3/producers/intake.ts +31 -2
- package/src/core/events/v3/producers/producer-state-observer.ts +52 -0
- package/src/core/events/v3/producers/recorder.ts +681 -34
- 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 +23 -5
- package/src/core/hooks/adapter/runtime-telemetry.ts +408 -13
- package/src/core/hooks/cli.ts +404 -233
- package/src/core/hooks/effects/image-capture.ts +4 -1
- package/src/core/hooks/health.ts +146 -0
- 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/resources/contract.ts +98 -0
- package/src/core/resources/index.ts +5 -0
- package/src/core/resources/sampler.ts +458 -0
- package/src/core/resources/service-status.ts +62 -0
- package/src/core/resources/service.ts +337 -0
- package/src/core/resources/storage.ts +44 -0
- 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/atomic-json.ts +15 -0
- package/src/core/storage/buffer.ts +124 -0
- package/src/core/storage/builtins.ts +972 -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 +548 -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 +418 -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/supervisor/activity.ts +193 -0
- package/src/core/supervisor/contract.ts +312 -0
- package/src/core/supervisor/explanations.ts +104 -0
- package/src/core/supervisor/findings.ts +788 -0
- package/src/core/supervisor/history.ts +61 -0
- package/src/core/supervisor/hook-health-alerts.ts +108 -0
- package/src/core/supervisor/hook-health-storage.ts +25 -0
- package/src/core/supervisor/hook-health.ts +301 -0
- package/src/core/supervisor/hooks.ts +35 -0
- package/src/core/supervisor/index.ts +14 -0
- package/src/core/supervisor/log-feed.ts +131 -0
- package/src/core/supervisor/service.ts +511 -0
- package/src/core/supervisor/services.ts +203 -0
- package/src/core/supervisor/status.ts +59 -0
- package/src/core/supervisor/storage.ts +126 -0
- package/src/core/supervisor/timeline.ts +133 -0
- package/src/core/work/state.ts +12 -21
- package/src/core/workflow/admission.ts +215 -0
- package/src/core/workflow/engine.ts +93 -1
- package/src/core/workflow/index.ts +10 -0
- package/src/core/workflow/live-session-v3.ts +2 -4
- package/src/core/workflow/proof.ts +54 -1
- package/src/core/workflow/run-state.ts +13 -1
- package/src/core/workflow/types.ts +39 -1
- package/src/index.ts +2 -0
- package/src/lazy-commands.ts +294 -0
- package/src/lib/browser/client.ts +6 -0
- package/src/lib/browser/index.ts +29 -0
- package/src/lib/browser/qa-run-contracts.ts +380 -0
- package/src/lib/browser/qa-run.ts +784 -0
- package/src/lib/coord-root-id.ts +23 -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/apply.ts +81 -2
- package/src/lib/instructions/templates.ts +11 -0
- package/src/lib/local-file-url.ts +31 -0
- package/src/lib/web-performance.ts +335 -0
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;
|
|
@@ -463,8 +621,10 @@ async function handleStaleSweep(root, _rest) {
|
|
|
463
621
|
return 0;
|
|
464
622
|
}
|
|
465
623
|
async function handleReconcileFinalization(root) {
|
|
466
|
-
|
|
467
|
-
|
|
624
|
+
// Shares the supervisor composition with `agents reconcile` so session start
|
|
625
|
+
// sweeps the stale cache in the same pass, as ADR 0077 specified.
|
|
626
|
+
const { reconcileCoordinationV3 } = await import("./reconcile-coordination-v3.js");
|
|
627
|
+
const result = reconcileCoordinationV3(root);
|
|
468
628
|
process.stdout.write(`${JSON.stringify(result)}\n`);
|
|
469
629
|
return result.diagnostics.some((item) => item === "ledger_not_authority_safe") ? 2 : 0;
|
|
470
630
|
}
|
|
@@ -513,14 +673,16 @@ async function handlePromptContext(root, rest) {
|
|
|
513
673
|
const instanceId = args.instance;
|
|
514
674
|
const sessionId = args.session ?? instanceId;
|
|
515
675
|
const agentName = args.name;
|
|
676
|
+
const adapter = args.adapter;
|
|
516
677
|
const sessionNameNudge = args["session-name-nudge"] === "true";
|
|
517
678
|
const taskNudge = args["task-nudge"] === "true";
|
|
679
|
+
const hostPromptReminder = args["host-prompt-reminder"] === "true";
|
|
518
680
|
const statusFooterNudge = args["status-footer-nudge"] === "true";
|
|
519
681
|
// Value is the adapter id; a bare flag (parsed as "true") still enables the
|
|
520
682
|
// reminder with the adapter-neutral wording.
|
|
521
683
|
const turnRitualNudge = args["turn-ritual-nudge"] === "true" ? "generic" : args["turn-ritual-nudge"];
|
|
522
684
|
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");
|
|
685
|
+
process.stderr.write("agent-coord prompt-context --instance <id> [--session <id>] [--name <agent-name>] [--adapter <id>] [--session-name-nudge] [--task-nudge] [--host-prompt-reminder] [--status-footer-nudge] [--turn-ritual-nudge <adapter>]\n");
|
|
524
686
|
return 2;
|
|
525
687
|
}
|
|
526
688
|
const { renderPromptContext } = await import("./render/prompt-context.js");
|
|
@@ -531,8 +693,10 @@ async function handlePromptContext(root, rest) {
|
|
|
531
693
|
agentName,
|
|
532
694
|
sessionNameNudge,
|
|
533
695
|
taskNudge,
|
|
696
|
+
hostPromptReminder,
|
|
534
697
|
statusFooterNudge,
|
|
535
698
|
turnRitualNudge,
|
|
699
|
+
adapter,
|
|
536
700
|
});
|
|
537
701
|
process.stdout.write(text);
|
|
538
702
|
return 0;
|
|
@@ -726,9 +890,12 @@ async function handleGitHook(fallbackRoot, rest) {
|
|
|
726
890
|
});
|
|
727
891
|
// Forensics channel shared with the stdin `verdict` path.
|
|
728
892
|
try {
|
|
729
|
-
const
|
|
730
|
-
|
|
731
|
-
|
|
893
|
+
const diagnostic = { via: "git-hook", staged, verdict: result };
|
|
894
|
+
if (!sharedDiagnostic(root, "agent_coord.git_hook_verdict", diagnostic)) {
|
|
895
|
+
const logPath = join(root, ".harnery", "debug", "agent-coord-verdict.ndjson");
|
|
896
|
+
await mkdir(dirname(logPath), { recursive: true });
|
|
897
|
+
await appendFile(logPath, `${JSON.stringify({ ts: new Date().toISOString(), ...diagnostic })}\n`);
|
|
898
|
+
}
|
|
732
899
|
}
|
|
733
900
|
catch {
|
|
734
901
|
/* diagnostics never break a verdict */
|
|
@@ -809,7 +976,8 @@ async function main() {
|
|
|
809
976
|
if (subcommand === "set-task" ||
|
|
810
977
|
subcommand === "release-claim" ||
|
|
811
978
|
subcommand === "heal-pidmap" ||
|
|
812
|
-
subcommand === "repair-coordination-cache"
|
|
979
|
+
subcommand === "repair-coordination-cache" ||
|
|
980
|
+
subcommand === "quarantine-authority-transaction") {
|
|
813
981
|
return handleStateAction(root, subcommand, rest);
|
|
814
982
|
}
|
|
815
983
|
if (subcommand === "append-journal" || subcommand === "edit-journal") {
|
|
@@ -859,17 +1027,23 @@ async function main() {
|
|
|
859
1027
|
return 0;
|
|
860
1028
|
}
|
|
861
1029
|
main()
|
|
862
|
-
.then((code) =>
|
|
863
|
-
|
|
1030
|
+
.then(async (code) => {
|
|
1031
|
+
await closeProcessLoggers();
|
|
1032
|
+
process.exit(code);
|
|
1033
|
+
})
|
|
1034
|
+
.catch(async (err) => {
|
|
864
1035
|
try {
|
|
865
1036
|
const root = findCoordRoot(process.cwd());
|
|
866
1037
|
if (root) {
|
|
867
|
-
|
|
868
|
-
|
|
1038
|
+
if (!sharedDiagnostic(root, "agent_coord.error", {}, err)) {
|
|
1039
|
+
const path = join(root, ".harnery", "debug", "agent-coord.errors.ndjson");
|
|
1040
|
+
appendFileSync(path, `${JSON.stringify({ ts: new Date().toISOString(), error: String(err) })}\n`);
|
|
1041
|
+
}
|
|
869
1042
|
}
|
|
870
1043
|
}
|
|
871
1044
|
catch {
|
|
872
1045
|
/* swallow */
|
|
873
1046
|
}
|
|
1047
|
+
await closeProcessLoggers();
|
|
874
1048
|
process.exit(0);
|
|
875
1049
|
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SupervisorCapability, SupervisorSourceReference } from "../supervisor/contract.js";
|
|
2
|
+
export interface CoordinationHealthDiagnostic {
|
|
3
|
+
code: "malformed_json" | "invalid_contract";
|
|
4
|
+
byte_offset: number;
|
|
5
|
+
segment_ordinal: number;
|
|
6
|
+
event_id?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface CoordinationHealthSnapshot {
|
|
9
|
+
observed_at: string;
|
|
10
|
+
capability: SupervisorCapability;
|
|
11
|
+
recent_events: readonly SupervisorSourceReference[];
|
|
12
|
+
diagnostics: readonly CoordinationHealthDiagnostic[];
|
|
13
|
+
omitted_event_count: number;
|
|
14
|
+
}
|
|
15
|
+
/** Read bounded V3 references without retaining event payloads or the full ledger reader. */
|
|
16
|
+
export declare function collectCoordinationHealthSnapshot(coordRoot: string, now?: Date): CoordinationHealthSnapshot;
|
|
17
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/core/agents/health.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEjG,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,oBAAoB,CAAC;IACjC,aAAa,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACpD,WAAW,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACrD,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAMD,6FAA6F;AAC7F,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,MAAM,EACjB,GAAG,OAAa,GACf,0BAA0B,CA4C5B"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { closeSync, existsSync, lstatSync, openSync, readSync } from "node:fs";
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
const MAX_EVENT_REFERENCES = 64;
|
|
4
|
+
const MAX_DIAGNOSTICS = 16;
|
|
5
|
+
const MAX_TAIL_BYTES = 256 * 1_024;
|
|
6
|
+
/** Read bounded V3 references without retaining event payloads or the full ledger reader. */
|
|
7
|
+
export function collectCoordinationHealthSnapshot(coordRoot, now = new Date()) {
|
|
8
|
+
const observedAt = now.toISOString();
|
|
9
|
+
const active = join(resolve(coordRoot), ".harnery", "ledgers", "v3", "active.ndjson");
|
|
10
|
+
if (!existsSync(active))
|
|
11
|
+
return unavailable(observedAt, "ledger-missing");
|
|
12
|
+
let handle;
|
|
13
|
+
try {
|
|
14
|
+
const stat = lstatSync(active);
|
|
15
|
+
if (stat.isSymbolicLink() || !stat.isFile())
|
|
16
|
+
return unavailable(observedAt, "ledger-unsafe");
|
|
17
|
+
if (stat.size === 0)
|
|
18
|
+
return available(observedAt, [], [], 0);
|
|
19
|
+
const start = Math.max(0, stat.size - MAX_TAIL_BYTES);
|
|
20
|
+
const bytes = Buffer.allocUnsafe(stat.size - start);
|
|
21
|
+
handle = openSync(active, "r");
|
|
22
|
+
const count = readSync(handle, bytes, 0, bytes.length, start);
|
|
23
|
+
const lines = bytes.subarray(0, count).toString("utf8").split("\n");
|
|
24
|
+
if (start > 0)
|
|
25
|
+
lines.shift();
|
|
26
|
+
const completeLines = lines.filter((line) => line.length > 0);
|
|
27
|
+
const diagnostics = [];
|
|
28
|
+
const references = [];
|
|
29
|
+
let byteOffset = start;
|
|
30
|
+
for (const line of completeLines) {
|
|
31
|
+
const reference = parseReference(line);
|
|
32
|
+
if (reference)
|
|
33
|
+
references.push(reference);
|
|
34
|
+
else if (diagnostics.length < MAX_DIAGNOSTICS) {
|
|
35
|
+
diagnostics.push({
|
|
36
|
+
code: line.trimStart().startsWith("{") ? "invalid_contract" : "malformed_json",
|
|
37
|
+
byte_offset: byteOffset,
|
|
38
|
+
segment_ordinal: 1,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
byteOffset += Buffer.byteLength(line) + 1;
|
|
42
|
+
}
|
|
43
|
+
const recent = references.slice(-MAX_EVENT_REFERENCES);
|
|
44
|
+
return available(observedAt, recent, diagnostics, Math.max(0, references.length - recent.length) + (start > 0 ? 1 : 0));
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return unavailable(observedAt, "tail-read-failed", "error");
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
if (handle !== undefined)
|
|
51
|
+
closeSync(handle);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function parseReference(line) {
|
|
55
|
+
try {
|
|
56
|
+
const value = JSON.parse(line);
|
|
57
|
+
const contract = object(value.contract);
|
|
58
|
+
const time = object(value.time);
|
|
59
|
+
const producer = object(value.producer);
|
|
60
|
+
if (contract.major !== 3 ||
|
|
61
|
+
typeof value.event_id !== "string" ||
|
|
62
|
+
typeof value.event_type !== "string" ||
|
|
63
|
+
typeof time.observed_at !== "string" ||
|
|
64
|
+
typeof producer.sequence !== "number" ||
|
|
65
|
+
!Number.isSafeInteger(producer.sequence))
|
|
66
|
+
return undefined;
|
|
67
|
+
return {
|
|
68
|
+
id: `v3:${value.event_id}`,
|
|
69
|
+
source_kind: "coordination.v3",
|
|
70
|
+
source_id: value.event_type,
|
|
71
|
+
record_id: value.event_id,
|
|
72
|
+
sequence: producer.sequence,
|
|
73
|
+
schema_version: 3,
|
|
74
|
+
observed_at: time.observed_at,
|
|
75
|
+
capability: "supported",
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function object(value) {
|
|
83
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
84
|
+
? value
|
|
85
|
+
: {};
|
|
86
|
+
}
|
|
87
|
+
function available(observedAt, recentEvents, diagnostics, omittedEventCount) {
|
|
88
|
+
const state = diagnostics.length === 0 ? "supported" : "partial";
|
|
89
|
+
return {
|
|
90
|
+
observed_at: observedAt,
|
|
91
|
+
capability: {
|
|
92
|
+
source_kind: "coordination.v3.references",
|
|
93
|
+
state,
|
|
94
|
+
...(state === "partial" ? { reason_code: diagnostics[0]?.code ?? "tail-invalid" } : {}),
|
|
95
|
+
},
|
|
96
|
+
recent_events: recentEvents.map((reference) => ({ ...reference, capability: state })),
|
|
97
|
+
diagnostics,
|
|
98
|
+
omitted_event_count: omittedEventCount,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function unavailable(observedAt, reasonCode, state = "unsupported") {
|
|
102
|
+
return {
|
|
103
|
+
observed_at: observedAt,
|
|
104
|
+
capability: { source_kind: "coordination.v3.references", state, reason_code: reasonCode },
|
|
105
|
+
recent_events: [],
|
|
106
|
+
diagnostics: [],
|
|
107
|
+
omitted_event_count: 0,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
@@ -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"}
|