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
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { realpathSync, statSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import type { Command } from "commander";
|
|
4
|
+
import type { EmitContext, HarneryProgramContext } from "../commander.ts";
|
|
5
|
+
import { resolveCoordRoot } from "../core/agents/coord-client.ts";
|
|
6
|
+
import { DEFAULT_WEB_PORT, resolveWebPort } from "../core/config.ts";
|
|
7
|
+
import { coordRootId, localCoordRootIdUrl } from "../lib/coord-root-id.ts";
|
|
8
|
+
import { localFilesOriginUrl, localFileViewerUrl } from "../lib/local-file-url.ts";
|
|
9
|
+
|
|
10
|
+
export { FILES_ORIGIN_HOST } from "../lib/local-file-url.ts";
|
|
11
|
+
|
|
12
|
+
export type LocalFileUrlMode = "auto" | "raw" | "viewer";
|
|
13
|
+
|
|
14
|
+
export interface LocalFileUrlOptions {
|
|
15
|
+
coordRoot: string;
|
|
16
|
+
port: number;
|
|
17
|
+
mode?: LocalFileUrlMode;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface LocalFileUrl {
|
|
21
|
+
url: string;
|
|
22
|
+
relPath: string;
|
|
23
|
+
mode: Exclude<LocalFileUrlMode, "auto">;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type DashboardRootErrorCode =
|
|
27
|
+
| "dashboard_unreachable"
|
|
28
|
+
| "dashboard_identity_unavailable"
|
|
29
|
+
| "dashboard_root_mismatch";
|
|
30
|
+
|
|
31
|
+
export class DashboardRootError extends Error {
|
|
32
|
+
constructor(
|
|
33
|
+
readonly code: DashboardRootErrorCode,
|
|
34
|
+
message: string,
|
|
35
|
+
readonly hint: string,
|
|
36
|
+
) {
|
|
37
|
+
super(message);
|
|
38
|
+
this.name = "DashboardRootError";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
interface DashboardRootPayload {
|
|
43
|
+
root_id?: unknown;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export type DashboardRootFetch = (
|
|
47
|
+
input: string | URL | Request,
|
|
48
|
+
init?: RequestInit,
|
|
49
|
+
) => Promise<Response>;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Prove that the dashboard on the selected port serves the same canonical
|
|
53
|
+
* coordination root used to mint the file URL.
|
|
54
|
+
*/
|
|
55
|
+
export async function verifyDashboardRoot(
|
|
56
|
+
coordRoot: string,
|
|
57
|
+
port: number,
|
|
58
|
+
fetchImpl: DashboardRootFetch = fetch,
|
|
59
|
+
): Promise<void> {
|
|
60
|
+
const url = localCoordRootIdUrl(port);
|
|
61
|
+
let response: Response;
|
|
62
|
+
try {
|
|
63
|
+
response = await fetchImpl(url, {
|
|
64
|
+
headers: { accept: "application/json" },
|
|
65
|
+
signal: AbortSignal.timeout(5_000),
|
|
66
|
+
});
|
|
67
|
+
} catch {
|
|
68
|
+
throw new DashboardRootError(
|
|
69
|
+
"dashboard_unreachable",
|
|
70
|
+
`dashboard is not reachable at http://localhost:${port}`,
|
|
71
|
+
"Start the dashboard for this repository, then retry.",
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
throw new DashboardRootError(
|
|
77
|
+
"dashboard_identity_unavailable",
|
|
78
|
+
`dashboard at http://localhost:${port} cannot report its repository identity (HTTP ${response.status})`,
|
|
79
|
+
"Update and restart the dashboard, then retry.",
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
let payload: DashboardRootPayload;
|
|
84
|
+
try {
|
|
85
|
+
payload = (await response.json()) as DashboardRootPayload;
|
|
86
|
+
} catch {
|
|
87
|
+
throw new DashboardRootError(
|
|
88
|
+
"dashboard_identity_unavailable",
|
|
89
|
+
`dashboard at http://localhost:${port} returned an invalid repository identity`,
|
|
90
|
+
"Update and restart the dashboard, then retry.",
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (typeof payload.root_id !== "string") {
|
|
95
|
+
throw new DashboardRootError(
|
|
96
|
+
"dashboard_identity_unavailable",
|
|
97
|
+
`dashboard at http://localhost:${port} returned an invalid repository identity`,
|
|
98
|
+
"Update and restart the dashboard, then retry.",
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const expected = coordRootId(coordRoot);
|
|
103
|
+
if (payload.root_id !== expected) {
|
|
104
|
+
throw new DashboardRootError(
|
|
105
|
+
"dashboard_root_mismatch",
|
|
106
|
+
`dashboard at http://localhost:${port} serves a different repository`,
|
|
107
|
+
"Stop that dashboard and start this repository's dashboard, then retry.",
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function isOutsideRoot(relPath: string): boolean {
|
|
113
|
+
return relPath === "" || relPath === ".." || relPath.startsWith(`..${path.sep}`);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function canonicalRepoPath(input: string, coordRoot: string): string {
|
|
117
|
+
if (input.trim() === "") throw new Error("path must not be empty");
|
|
118
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: URL output must stay one clean line
|
|
119
|
+
if (/[\u0000-\u001f\u007f]/.test(input)) throw new Error("path contains control bytes");
|
|
120
|
+
|
|
121
|
+
let root: string;
|
|
122
|
+
try {
|
|
123
|
+
root = realpathSync(coordRoot);
|
|
124
|
+
} catch {
|
|
125
|
+
throw new Error(`coord root does not exist: ${coordRoot}`);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
const candidate = path.isAbsolute(input) ? input : path.resolve(root, input);
|
|
129
|
+
let canonical: string;
|
|
130
|
+
try {
|
|
131
|
+
canonical = realpathSync(candidate);
|
|
132
|
+
} catch {
|
|
133
|
+
throw new Error(`file does not exist: ${input}`);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
const relPath = path.relative(root, canonical);
|
|
137
|
+
if (isOutsideRoot(relPath) || path.isAbsolute(relPath)) {
|
|
138
|
+
throw new Error(`file is outside the coord root: ${input}`);
|
|
139
|
+
}
|
|
140
|
+
if (!statSync(canonical).isFile()) throw new Error(`path is not a file: ${input}`);
|
|
141
|
+
return relPath.split(path.sep).join("/");
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function isHtmlPath(relPath: string): boolean {
|
|
145
|
+
const lower = relPath.toLowerCase();
|
|
146
|
+
return lower.endsWith(".html") || lower.endsWith(".htm");
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Mint the local browser URL for a file under the dashboard's coord root.
|
|
151
|
+
* HTML defaults to the isolated files origin so scripts and relative assets
|
|
152
|
+
* work. Other files default to the dashboard viewer.
|
|
153
|
+
*/
|
|
154
|
+
export function mintLocalFileUrl(input: string, options: LocalFileUrlOptions): LocalFileUrl {
|
|
155
|
+
const relPath = canonicalRepoPath(input, options.coordRoot);
|
|
156
|
+
const requestedMode = options.mode ?? "auto";
|
|
157
|
+
const mode = requestedMode === "auto" ? (isHtmlPath(relPath) ? "raw" : "viewer") : requestedMode;
|
|
158
|
+
const url =
|
|
159
|
+
mode === "raw"
|
|
160
|
+
? localFilesOriginUrl(relPath, options.port)
|
|
161
|
+
: localFileViewerUrl(relPath, options.port);
|
|
162
|
+
return { url, relPath, mode };
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export function registerFilesCommand(
|
|
166
|
+
program: Command,
|
|
167
|
+
emit: EmitContext,
|
|
168
|
+
context?: HarneryProgramContext,
|
|
169
|
+
): void {
|
|
170
|
+
const files = program
|
|
171
|
+
.command("files")
|
|
172
|
+
.description("Mint browser links for files served by the local dashboard");
|
|
173
|
+
|
|
174
|
+
files
|
|
175
|
+
.command("url")
|
|
176
|
+
.description("Mint the local browser URL for a repo file")
|
|
177
|
+
.argument("<path>", "Repo-relative path, or an absolute path inside the coord root")
|
|
178
|
+
.option("-p, --port <port>", `Dashboard port (default ${DEFAULT_WEB_PORT})`)
|
|
179
|
+
.option("--coord-root <dir>", "Override the coord root")
|
|
180
|
+
.option("--raw", "Use the isolated files origin, regardless of extension")
|
|
181
|
+
.option("--viewer", "Use the dashboard file viewer, regardless of extension")
|
|
182
|
+
.option("--no-verify", "Mint without checking the running dashboard's repository identity")
|
|
183
|
+
.action(
|
|
184
|
+
async (
|
|
185
|
+
filePath: string,
|
|
186
|
+
opts: {
|
|
187
|
+
port?: string;
|
|
188
|
+
coordRoot?: string;
|
|
189
|
+
raw?: boolean;
|
|
190
|
+
viewer?: boolean;
|
|
191
|
+
verify?: boolean;
|
|
192
|
+
},
|
|
193
|
+
) => {
|
|
194
|
+
if (opts.raw && opts.viewer) {
|
|
195
|
+
emit.error({
|
|
196
|
+
code: "conflicting_url_modes",
|
|
197
|
+
message: "--raw and --viewer cannot be used together",
|
|
198
|
+
});
|
|
199
|
+
emit.setExitCode(1);
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const coordRoot =
|
|
203
|
+
opts.coordRoot ??
|
|
204
|
+
context?.resolveCoordRoot?.() ??
|
|
205
|
+
context?.repoRoot ??
|
|
206
|
+
resolveCoordRoot(process.cwd()) ??
|
|
207
|
+
process.cwd();
|
|
208
|
+
let port: number;
|
|
209
|
+
try {
|
|
210
|
+
port = resolveWebPort(opts.port, coordRoot);
|
|
211
|
+
} catch (error) {
|
|
212
|
+
emit.error({
|
|
213
|
+
code: "invalid_web_port",
|
|
214
|
+
message: error instanceof Error ? error.message : "invalid web port",
|
|
215
|
+
hint: `Use an integer from 1024 through 65535; the default is ${DEFAULT_WEB_PORT}.`,
|
|
216
|
+
});
|
|
217
|
+
emit.setExitCode(1);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
try {
|
|
221
|
+
const result = mintLocalFileUrl(filePath, {
|
|
222
|
+
coordRoot,
|
|
223
|
+
port,
|
|
224
|
+
mode: opts.raw ? "raw" : opts.viewer ? "viewer" : "auto",
|
|
225
|
+
});
|
|
226
|
+
if (opts.verify !== false) await verifyDashboardRoot(coordRoot, port);
|
|
227
|
+
emit.text(`${result.url}\n`);
|
|
228
|
+
} catch (error) {
|
|
229
|
+
if (error instanceof DashboardRootError) {
|
|
230
|
+
emit.error({ code: error.code, message: error.message, hint: error.hint });
|
|
231
|
+
emit.setExitCode(1);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
emit.error({
|
|
235
|
+
code: "invalid_local_file",
|
|
236
|
+
message: error instanceof Error ? error.message : "invalid local file path",
|
|
237
|
+
hint: "Pass an existing file inside the dashboard coord root.",
|
|
238
|
+
});
|
|
239
|
+
emit.setExitCode(1);
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
);
|
|
243
|
+
}
|
package/src/commands/governor.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
2
|
import { dirname, isAbsolute, resolve } from "node:path";
|
|
3
3
|
import type { Command } from "commander";
|
|
4
4
|
import type { EmitContext } from "../commander.ts";
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
probeBinaryVersion,
|
|
9
9
|
readAttestation,
|
|
10
10
|
} from "../core/adapters/index.ts";
|
|
11
|
+
import { resolveCoordRoot } from "../core/agents/coord-client.ts";
|
|
11
12
|
import { workflowSubscriptionOnly } from "../core/config.ts";
|
|
12
13
|
import { inspectAdapterSpread } from "../core/governor/adapter-spread.ts";
|
|
13
14
|
import {
|
|
@@ -22,7 +23,6 @@ import {
|
|
|
22
23
|
type GovernorRunReport,
|
|
23
24
|
type GovernorServiceConfig,
|
|
24
25
|
type GovernorServiceStatus,
|
|
25
|
-
governorServiceLogPath,
|
|
26
26
|
listGovernorsWithWarnings,
|
|
27
27
|
readGovernor,
|
|
28
28
|
readGovernorPlan,
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
runGovernorServiceDaemon,
|
|
36
36
|
spawnGovernorService,
|
|
37
37
|
} from "../core/governor/index.ts";
|
|
38
|
-
import {
|
|
38
|
+
import { readGovernorServiceLogs } from "../core/governor/service-read.ts";
|
|
39
39
|
import type { PolicyIsolation } from "../core/policy/index.ts";
|
|
40
40
|
import { loadPolicyFile } from "../core/policy/index.ts";
|
|
41
41
|
import type { WorkflowSpecialistProfile } from "../core/workflow/index.ts";
|
|
@@ -62,6 +62,7 @@ interface CreateOpts {
|
|
|
62
62
|
interface RunOpts {
|
|
63
63
|
adapter?: string;
|
|
64
64
|
cwd?: string;
|
|
65
|
+
observePressure?: boolean;
|
|
65
66
|
subscriptionOnly?: boolean;
|
|
66
67
|
allowApiBilling?: boolean;
|
|
67
68
|
policy?: string;
|
|
@@ -401,16 +402,17 @@ function registerServiceCommand(
|
|
|
401
402
|
withGovernorRoot(emit, (coordRoot) => {
|
|
402
403
|
const lines = integer(opts.lines) ?? 50;
|
|
403
404
|
if (lines > 10_000) throw new Error("service log lines must not exceed 10000");
|
|
404
|
-
const
|
|
405
|
-
|
|
405
|
+
const result = readGovernorServiceLogs(coordRoot, {
|
|
406
|
+
max_bytes: 512 * 1024,
|
|
407
|
+
max_records: 10_000,
|
|
408
|
+
});
|
|
409
|
+
if (result.lines.length === 0) {
|
|
406
410
|
emit.text("no governor service log\n");
|
|
407
411
|
return;
|
|
408
412
|
}
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
.
|
|
412
|
-
.join("\n");
|
|
413
|
-
emit.text(selected.endsWith("\n") ? selected : `${selected}\n`);
|
|
413
|
+
emit.text(`${result.lines.slice(-lines).join("\n")}\n`);
|
|
414
|
+
if (result.truncated)
|
|
415
|
+
emit.log("governor service log read stopped at its bounded budget", "warn");
|
|
414
416
|
});
|
|
415
417
|
});
|
|
416
418
|
|
|
@@ -437,6 +439,10 @@ function addServiceOptions(command: Command): Command {
|
|
|
437
439
|
.option("--error-backoff-max-ms <n>", "Maximum service-error backoff (default 300000)")
|
|
438
440
|
.option("--adapter <name>", "Fallback adapter for agent calls without a specialist")
|
|
439
441
|
.option("--cwd <dir>", "Working directory for child agents")
|
|
442
|
+
.option(
|
|
443
|
+
"--observe-pressure",
|
|
444
|
+
"Record observer-only local pressure before each workflow's first real child dispatch",
|
|
445
|
+
)
|
|
440
446
|
.option("--subscription-only", "Require stored adapter-login billing")
|
|
441
447
|
.option("--allow-api-billing", "Permit API-key override billing")
|
|
442
448
|
.option("--policy <file>", "Host policy JSON/JSONC")
|
|
@@ -595,6 +601,9 @@ function registerRunCommand(
|
|
|
595
601
|
spawners: registry.spawners(),
|
|
596
602
|
defaultAdapter: opts.adapter,
|
|
597
603
|
cwd: opts.cwd,
|
|
604
|
+
diagnosticAdmission: opts.observePressure
|
|
605
|
+
? { schema_version: 1, mode: "shadow" }
|
|
606
|
+
: undefined,
|
|
598
607
|
subscriptionOnly:
|
|
599
608
|
opts.subscriptionOnly === true ? true : workflowSubscriptionOnly(coordRoot),
|
|
600
609
|
allowApiBilling: opts.allowApiBilling,
|
|
@@ -922,7 +931,7 @@ function delay(ms: number): Promise<void> {
|
|
|
922
931
|
}
|
|
923
932
|
|
|
924
933
|
function withGovernorRoot(emit: EmitContext, fn: (coordRoot: string) => void): void {
|
|
925
|
-
const coordRoot =
|
|
934
|
+
const coordRoot = resolveCoordRoot();
|
|
926
935
|
if (!coordRoot) {
|
|
927
936
|
emit.error({
|
|
928
937
|
code: "no_coord_root",
|
|
@@ -943,7 +952,7 @@ async function withGovernorRootAsync(
|
|
|
943
952
|
emit: EmitContext,
|
|
944
953
|
fn: (coordRoot: string) => Promise<void>,
|
|
945
954
|
): Promise<void> {
|
|
946
|
-
const coordRoot =
|
|
955
|
+
const coordRoot = resolveCoordRoot();
|
|
947
956
|
if (!coordRoot) {
|
|
948
957
|
emit.error({
|
|
949
958
|
code: "no_coord_root",
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { EmitContext } from "../commander.ts";
|
|
3
|
+
import type { HarneryInboxService } from "../core/inbox/service.ts";
|
|
4
|
+
|
|
5
|
+
export function registerInboxCommand(
|
|
6
|
+
program: Command,
|
|
7
|
+
emit: EmitContext,
|
|
8
|
+
service?: HarneryInboxService,
|
|
9
|
+
): void {
|
|
10
|
+
const inbox = program.command("inbox").description("Inspect private coordination inbox state");
|
|
11
|
+
inbox
|
|
12
|
+
.command("list <recipient>")
|
|
13
|
+
.option("--json", "Emit stable JSON")
|
|
14
|
+
.action((recipient: string, options: { json?: boolean }) => {
|
|
15
|
+
run(emit, () => {
|
|
16
|
+
const rows = requireInboxService(service)
|
|
17
|
+
.pending(recipient)
|
|
18
|
+
.map((record) => ({
|
|
19
|
+
message_id: record.message_id,
|
|
20
|
+
sender_instance_id: record.sender_instance_id,
|
|
21
|
+
sender_display_name: record.sender_display_name,
|
|
22
|
+
created_at: record.created_at,
|
|
23
|
+
body_bytes: record.body_bytes,
|
|
24
|
+
body: record.body,
|
|
25
|
+
}));
|
|
26
|
+
if (options.json) {
|
|
27
|
+
emit.config({ format: "json" });
|
|
28
|
+
emit.data({ schema: "harnery.inbox-list/v1", recipient_instance_id: recipient, rows });
|
|
29
|
+
} else emit.rows(rows);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
inbox
|
|
33
|
+
.command("status <recipient>")
|
|
34
|
+
.option("--json", "Emit stable JSON")
|
|
35
|
+
.action((recipient: string, options: { json?: boolean }) => {
|
|
36
|
+
run(emit, () => {
|
|
37
|
+
const status = requireInboxService(service).status(recipient);
|
|
38
|
+
if (options.json) {
|
|
39
|
+
emit.config({ format: "json" });
|
|
40
|
+
emit.data(status);
|
|
41
|
+
} else emit.rows([status as unknown as Record<string, unknown>]);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function requireInboxService(service?: HarneryInboxService): HarneryInboxService {
|
|
47
|
+
if (!service) throw new Error("coordination inbox is not configured by this host");
|
|
48
|
+
return service;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function run(emit: EmitContext, action: () => void): void {
|
|
52
|
+
try {
|
|
53
|
+
action();
|
|
54
|
+
} catch (error) {
|
|
55
|
+
emit.error({
|
|
56
|
+
code: "inbox_failed",
|
|
57
|
+
message: error instanceof Error ? error.message : String(error),
|
|
58
|
+
});
|
|
59
|
+
emit.setExitCode(1);
|
|
60
|
+
}
|
|
61
|
+
}
|
package/src/commands/init.ts
CHANGED
|
@@ -33,7 +33,6 @@ import {
|
|
|
33
33
|
readEventV3ControlState,
|
|
34
34
|
sha256V3,
|
|
35
35
|
} from "../core/events/v3/index.ts";
|
|
36
|
-
import { liveEventV3BuildId } from "../core/events/v3/live-routing.ts";
|
|
37
36
|
import { ADAPTER_SPECS, type AdapterId, type AdapterSpec } from "../core/hooks/adapter/events.ts";
|
|
38
37
|
import {
|
|
39
38
|
agentHookPathForProject,
|
|
@@ -46,6 +45,7 @@ import {
|
|
|
46
45
|
makeEntry,
|
|
47
46
|
type SettingsFile,
|
|
48
47
|
} from "../core/hooks/adapter/wiring.ts";
|
|
48
|
+
import { applyIndexerExclusions } from "../lib/indexer-exclusions.ts";
|
|
49
49
|
import {
|
|
50
50
|
type ApplyResult,
|
|
51
51
|
applyInstructions,
|
|
@@ -61,6 +61,7 @@ interface InitOpts {
|
|
|
61
61
|
adapter: string;
|
|
62
62
|
dryRun?: boolean;
|
|
63
63
|
check?: boolean;
|
|
64
|
+
instructionsOnly?: boolean;
|
|
64
65
|
projectRoot?: string;
|
|
65
66
|
}
|
|
66
67
|
|
|
@@ -75,7 +76,11 @@ export function registerInitCommand(program: Command, emit: EmitContext, binName
|
|
|
75
76
|
)
|
|
76
77
|
.option("--adapter <id>", "claude-code | cursor | codex", "claude-code")
|
|
77
78
|
.option("--dry-run", "Show what would change without writing")
|
|
78
|
-
.option("--check", "Report
|
|
79
|
+
.option("--check", "Report managed-surface drift without writing; exit 0/2/1")
|
|
80
|
+
.option(
|
|
81
|
+
"--instructions-only",
|
|
82
|
+
"Refresh only AGENTS.md regions and Harnery-owned skills; leave runtime wiring untouched",
|
|
83
|
+
)
|
|
79
84
|
.option("--project-root <path>", "Project root (default: git toplevel, else cwd)")
|
|
80
85
|
.action((opts: InitOpts) => {
|
|
81
86
|
const adapter = opts.adapter as AdapterId;
|
|
@@ -94,6 +99,44 @@ export function registerInitCommand(program: Command, emit: EmitContext, binName
|
|
|
94
99
|
// CLI re-stamps the host's name into committed agent-facing surfaces.
|
|
95
100
|
const bin = pinnedBinName(projectRoot) ?? (binName?.trim() ? binName : DEFAULT_BIN_NAME);
|
|
96
101
|
|
|
102
|
+
// ── --instructions-only: committed guidance, never runtime wiring ────
|
|
103
|
+
// Some hosts consume Harnery's managed instruction bundle without
|
|
104
|
+
// enabling local adapter hooks or an event ledger. Keep this branch
|
|
105
|
+
// before every coord-root, config, ledger, adapter-settings, and Git-hook
|
|
106
|
+
// operation so its no-runtime-writes contract is structural.
|
|
107
|
+
if (opts.instructionsOnly === true) {
|
|
108
|
+
if (opts.check === true) {
|
|
109
|
+
const { status, issues } = checkInstructions(projectRoot, { binName: bin, adapter });
|
|
110
|
+
const head =
|
|
111
|
+
status === "fresh"
|
|
112
|
+
? `${bin} init --instructions-only --check: instructions + skills are current`
|
|
113
|
+
: status === "drift"
|
|
114
|
+
? `${bin} init --instructions-only --check: drift found (re-run \`init --instructions-only\` to refresh)`
|
|
115
|
+
: `${bin} init --instructions-only --check: error`;
|
|
116
|
+
const lines = issues.length
|
|
117
|
+
? `\n${issues.map((issue) => ` ✗ ${issue}`).join("\n")}`
|
|
118
|
+
: "";
|
|
119
|
+
emit.text(`${head}${lines}`);
|
|
120
|
+
emit.setExitCode(status === "fresh" ? 0 : status === "drift" ? 2 : 1);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const dryRun = opts.dryRun === true;
|
|
125
|
+
let applied: ApplyResult;
|
|
126
|
+
try {
|
|
127
|
+
applied = applyInstructions(projectRoot, { binName: bin, adapter, dryRun });
|
|
128
|
+
} catch (err) {
|
|
129
|
+
if (!(err instanceof HostAddendumError)) throw err;
|
|
130
|
+
emit.text(`${bin} init --instructions-only: ${err.message}`);
|
|
131
|
+
emit.setExitCode(1);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
emit.text(
|
|
135
|
+
renderInstructionsOnly(projectRoot, bin, dryRun, applied.actions, applied.warnings),
|
|
136
|
+
);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
|
|
97
140
|
// ── --check: read-only drift report on every init-managed surface ─────
|
|
98
141
|
if (opts.check === true) {
|
|
99
142
|
const { status, issues } = checkInstructions(projectRoot, { binName: bin, adapter });
|
|
@@ -158,7 +201,7 @@ export function registerInitCommand(program: Command, emit: EmitContext, binName
|
|
|
158
201
|
if (gitHooks.status !== "fresh") issues.push(...gitHooks.issues);
|
|
159
202
|
const ledger = readEventV3ControlState(projectRoot);
|
|
160
203
|
if (ledger.state !== "active") issues.push(`event ledger V3 is ${ledger.state}`);
|
|
161
|
-
const ledgerRuntimeIssues = eventLedgerV3RuntimeIssues(ledger
|
|
204
|
+
const ledgerRuntimeIssues = eventLedgerV3RuntimeIssues(ledger);
|
|
162
205
|
if (ledgerRuntimeIssues.length > 0) {
|
|
163
206
|
issues.push(`event ledger V3 is runtime-stale (${ledgerRuntimeIssues.join(", ")})`);
|
|
164
207
|
}
|
|
@@ -199,6 +242,13 @@ export function registerInitCommand(program: Command, emit: EmitContext, binName
|
|
|
199
242
|
actions.push("+ created .harnery/ (+ .harnery/.gitignore)");
|
|
200
243
|
}
|
|
201
244
|
|
|
245
|
+
// ── 1a′. editor indexer exclusions ─────────────────────────────────────
|
|
246
|
+
// .harnery/.gitignore keeps git-aware tools out, but Cursor's codebase
|
|
247
|
+
// indexer and the VS Code/Cursor file watcher do not respect gitignore.
|
|
248
|
+
// A busy coord root holds enough ledger events and artifacts to become a
|
|
249
|
+
// boot-time indexing storm, so exclude it from both here.
|
|
250
|
+
actions.push(...applyIndexerExclusions(projectRoot, dryRun));
|
|
251
|
+
|
|
202
252
|
// ── 1b. stamp the host bin name ────────────────────────────────────────
|
|
203
253
|
// The coord binaries (agent-hook/agent-coord) and web UI run as harnery
|
|
204
254
|
// itself, so they can't see a consumer CLI's name; they read it back from
|
|
@@ -225,7 +275,7 @@ export function registerInitCommand(program: Command, emit: EmitContext, binName
|
|
|
225
275
|
// ── 1d. universal V3 event ledger ────────────────────────────────────
|
|
226
276
|
if (dryRun) {
|
|
227
277
|
const ledger = readEventV3ControlState(projectRoot);
|
|
228
|
-
const runtimeIssues = eventLedgerV3RuntimeIssues(ledger
|
|
278
|
+
const runtimeIssues = eventLedgerV3RuntimeIssues(ledger);
|
|
229
279
|
actions.push(
|
|
230
280
|
ledger.state === "active" && runtimeIssues.length === 0
|
|
231
281
|
? "· event ledger V3 is active"
|
|
@@ -236,7 +286,7 @@ export function registerInitCommand(program: Command, emit: EmitContext, binName
|
|
|
236
286
|
} else {
|
|
237
287
|
const harneryBuild = gitBuild(HARNERY_ROOT);
|
|
238
288
|
const ledgerBefore = readEventV3ControlState(projectRoot);
|
|
239
|
-
const runtimeIssues = eventLedgerV3RuntimeIssues(ledgerBefore
|
|
289
|
+
const runtimeIssues = eventLedgerV3RuntimeIssues(ledgerBefore);
|
|
240
290
|
const initialized = initializeEventLedgerV3({
|
|
241
291
|
coordRoot: projectRoot,
|
|
242
292
|
harneryBuild,
|
|
@@ -337,23 +387,16 @@ function digestConfig(path: string): `sha256:${string}` {
|
|
|
337
387
|
}
|
|
338
388
|
|
|
339
389
|
/**
|
|
340
|
-
* Runtime
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
* hooks fail closed against stale approvals.
|
|
390
|
+
* Runtime contracts bound into an immutable V3 epoch. `init` replaces the
|
|
391
|
+
* epoch only when the schema or adapter capability contract changed. A new
|
|
392
|
+
* Harnery build alone keeps the current epoch and its live session generations.
|
|
344
393
|
*/
|
|
345
|
-
export function eventLedgerV3RuntimeIssues(
|
|
346
|
-
control: EventV3ControlState,
|
|
347
|
-
harneryBuild: string,
|
|
348
|
-
): string[] {
|
|
394
|
+
export function eventLedgerV3RuntimeIssues(control: EventV3ControlState): string[] {
|
|
349
395
|
if (control.state !== "active") return [];
|
|
350
396
|
const issues: string[] = [];
|
|
351
397
|
const profile = control.genesis.profile;
|
|
352
398
|
if (profile.initial_schema_digest !== EVENT_V3_SCHEMA_DIGEST) issues.push("schema digest");
|
|
353
399
|
if (profile.contract_source_digest !== EVENT_V3_SCHEMA_DIGEST) issues.push("contract digest");
|
|
354
|
-
if (!profile.producer_build_ids.includes(liveEventV3BuildId(harneryBuild))) {
|
|
355
|
-
issues.push("producer build");
|
|
356
|
-
}
|
|
357
400
|
const expectedCapabilities = Object.values(ADAPTER_CAPABILITY_PROFILES_V3).map((value) =>
|
|
358
401
|
sha256V3(canonicalJsonV3(value)),
|
|
359
402
|
);
|
|
@@ -699,6 +742,25 @@ function render(
|
|
|
699
742
|
return `${head}\n root: ${projectRoot}\n${actions.map((a) => ` ${a}`).join("\n")}${warnBlock}${tail}`;
|
|
700
743
|
}
|
|
701
744
|
|
|
745
|
+
function renderInstructionsOnly(
|
|
746
|
+
projectRoot: string,
|
|
747
|
+
binName: string,
|
|
748
|
+
dryRun: boolean,
|
|
749
|
+
actions: string[],
|
|
750
|
+
warnings: string[] = [],
|
|
751
|
+
): string {
|
|
752
|
+
const head = dryRun
|
|
753
|
+
? `${binName} init --instructions-only (dry run): no changes written`
|
|
754
|
+
: `${binName} init --instructions-only`;
|
|
755
|
+
const warnBlock = warnings.length
|
|
756
|
+
? `\n${warnings.map((warning) => ` ! ${warning}`).join("\n")}`
|
|
757
|
+
: "";
|
|
758
|
+
const tail = dryRun
|
|
759
|
+
? "\nRe-run without --dry-run to apply."
|
|
760
|
+
: "\nDone. Adapter hooks, managed Git hooks, configuration, and event ledger state were left unchanged.";
|
|
761
|
+
return `${head}\n root: ${projectRoot}\n${actions.map((action) => ` ${action}`).join("\n")}${warnBlock}${tail}`;
|
|
762
|
+
}
|
|
763
|
+
|
|
702
764
|
function gitTopLevel(): string | null {
|
|
703
765
|
const r = spawnSync("git", ["rev-parse", "--show-toplevel"], { encoding: "utf8" });
|
|
704
766
|
const out = r.status === 0 ? r.stdout.trim() : "";
|