harnery 0.35.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commander.d.ts +30 -5
- package/dist/commander.d.ts.map +1 -1
- package/dist/commander.js +124 -96
- package/dist/commands/agents.d.ts +23 -3
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +379 -198
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +10 -10
- package/dist/commands/browse-session.d.ts.map +1 -1
- package/dist/commands/browse-session.js +12 -0
- package/dist/commands/browse.d.ts +1 -1
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +5 -4
- package/dist/commands/conversations.d.ts +10 -0
- package/dist/commands/conversations.d.ts.map +1 -0
- package/dist/commands/conversations.js +201 -0
- package/dist/commands/deinit.d.ts.map +1 -1
- package/dist/commands/deinit.js +5 -0
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +13 -2
- package/dist/commands/doctor.d.ts +5 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +51 -7
- package/dist/commands/fetch.js +6 -5
- package/dist/commands/files.d.ts +22 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +113 -0
- package/dist/commands/governor.js +14 -12
- package/dist/commands/inbox.d.ts +5 -0
- package/dist/commands/inbox.d.ts.map +1 -0
- package/dist/commands/inbox.js +57 -0
- package/dist/commands/init.d.ts +4 -5
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +63 -13
- package/dist/commands/ledger-v3.d.ts.map +1 -1
- package/dist/commands/ledger-v3.js +347 -1
- package/dist/commands/logs.d.ts +4 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +169 -0
- package/dist/commands/messages.d.ts +5 -0
- package/dist/commands/messages.d.ts.map +1 -0
- package/dist/commands/messages.js +45 -0
- package/dist/commands/outline.d.ts +1 -1
- package/dist/commands/outline.d.ts.map +1 -1
- package/dist/commands/outline.js +2 -2
- package/dist/commands/read.d.ts +1 -1
- package/dist/commands/read.d.ts.map +1 -1
- package/dist/commands/read.js +2 -2
- package/dist/commands/semantic.d.ts.map +1 -1
- package/dist/commands/semantic.js +54 -2
- package/dist/commands/storage.d.ts +4 -0
- package/dist/commands/storage.d.ts.map +1 -0
- package/dist/commands/storage.js +238 -0
- package/dist/commands/tunnel.d.ts +5 -1
- package/dist/commands/tunnel.d.ts.map +1 -1
- package/dist/commands/tunnel.js +44 -31
- package/dist/commands/web.d.ts +3 -0
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +67 -7
- package/dist/commands/work.js +3 -3
- package/dist/commands/workflow.js +13 -13
- package/dist/core/adapters/profiles.d.ts +1 -1
- package/dist/core/agents/cli.js +209 -39
- package/dist/core/agents/live-authority-v3.d.ts +47 -1
- package/dist/core/agents/live-authority-v3.d.ts.map +1 -1
- package/dist/core/agents/live-authority-v3.js +244 -10
- package/dist/core/agents/live-lifecycle-v3.js +6 -1
- package/dist/core/agents/live-observation-v3.d.ts.map +1 -1
- package/dist/core/agents/live-observation-v3.js +6 -1
- package/dist/core/agents/render/prompt-context.d.ts +9 -3
- package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.js +24 -7
- package/dist/core/agents/rules/stop-hook.d.ts +2 -0
- package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
- package/dist/core/agents/rules/stop-hook.js +94 -13
- package/dist/core/agents/rules/verdict.d.ts +1 -0
- package/dist/core/agents/rules/verdict.d.ts.map +1 -1
- package/dist/core/agents/session-events.d.ts.map +1 -1
- package/dist/core/agents/session-events.js +4 -0
- package/dist/core/agents/session-finalization-state-v3.js +1 -1
- package/dist/core/agents/session-finalizer-v3.js +5 -1
- package/dist/core/agents/state/activity-log.d.ts +3 -0
- package/dist/core/agents/state/activity-log.d.ts.map +1 -1
- package/dist/core/agents/state/activity-log.js +6 -3
- package/dist/core/agents/state/heartbeat-writer.d.ts +6 -0
- package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
- package/dist/core/agents/state/heartbeat-writer.js +18 -0
- package/dist/core/agents/state/live-coordination-view.d.ts +5 -7
- package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -1
- package/dist/core/agents/state/live-coordination-view.js +15 -90
- package/dist/core/agents/state/live-coordination-writer.d.ts +12 -0
- package/dist/core/agents/state/live-coordination-writer.d.ts.map +1 -0
- package/dist/core/agents/state/live-coordination-writer.js +92 -0
- package/dist/core/artifacts/index.d.ts +21 -0
- package/dist/core/artifacts/index.d.ts.map +1 -1
- package/dist/core/artifacts/index.js +46 -1
- package/dist/core/config.d.ts +62 -4
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +98 -4
- package/dist/core/conversations/archive.d.ts +49 -0
- package/dist/core/conversations/archive.d.ts.map +1 -0
- package/dist/core/conversations/archive.js +136 -0
- package/dist/core/conversations/catalog.d.ts +10 -0
- package/dist/core/conversations/catalog.d.ts.map +1 -0
- package/dist/core/conversations/catalog.js +72 -0
- package/dist/core/conversations/context-pack.d.ts +6 -0
- package/dist/core/conversations/context-pack.d.ts.map +1 -0
- package/dist/core/conversations/context-pack.js +60 -0
- package/dist/core/conversations/contract.d.ts +155 -0
- package/dist/core/conversations/contract.d.ts.map +1 -0
- package/dist/core/conversations/contract.js +1 -0
- package/dist/core/conversations/evaluation.d.ts +16 -0
- package/dist/core/conversations/evaluation.d.ts.map +1 -0
- package/dist/core/conversations/evaluation.js +9 -0
- package/dist/core/conversations/index.d.ts +10 -0
- package/dist/core/conversations/index.d.ts.map +1 -0
- package/dist/core/conversations/index.js +9 -0
- package/dist/core/conversations/lifecycle.d.ts +28 -0
- package/dist/core/conversations/lifecycle.d.ts.map +1 -0
- package/dist/core/conversations/lifecycle.js +29 -0
- package/dist/core/conversations/normalize.d.ts +14 -0
- package/dist/core/conversations/normalize.d.ts.map +1 -0
- package/dist/core/conversations/normalize.js +82 -0
- package/dist/core/conversations/query.d.ts +8 -0
- package/dist/core/conversations/query.d.ts.map +1 -0
- package/dist/core/conversations/query.js +280 -0
- package/dist/core/conversations/search-index.d.ts +9 -0
- package/dist/core/conversations/search-index.d.ts.map +1 -0
- package/dist/core/conversations/search-index.js +29 -0
- package/dist/core/events/legacy-storage/canary.d.ts +18 -0
- package/dist/core/events/legacy-storage/canary.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/canary.js +150 -0
- package/dist/core/events/legacy-storage/fence.d.ts +15 -0
- package/dist/core/events/legacy-storage/fence.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/fence.js +115 -0
- package/dist/core/events/legacy-storage/index.d.ts +6 -0
- package/dist/core/events/legacy-storage/index.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/index.js +5 -0
- package/dist/core/events/legacy-storage/inventory.d.ts +10 -0
- package/dist/core/events/legacy-storage/inventory.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/inventory.js +40 -0
- package/dist/core/events/legacy-storage/manifest.d.ts +23 -0
- package/dist/core/events/legacy-storage/manifest.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/manifest.js +108 -0
- package/dist/core/events/legacy-storage/reader.d.ts +15 -0
- package/dist/core/events/legacy-storage/reader.d.ts.map +1 -0
- package/dist/core/events/legacy-storage/reader.js +154 -0
- package/dist/core/events/v3/authority-outbox.d.ts +7 -2
- package/dist/core/events/v3/authority-outbox.d.ts.map +1 -1
- package/dist/core/events/v3/authority-outbox.js +16 -3
- package/dist/core/events/v3/base-contract.d.ts +81 -41
- package/dist/core/events/v3/base-contract.d.ts.map +1 -1
- package/dist/core/events/v3/base-contract.js +17 -7
- package/dist/core/events/v3/bootstrap.d.ts +39 -0
- package/dist/core/events/v3/bootstrap.d.ts.map +1 -1
- package/dist/core/events/v3/bootstrap.js +167 -3
- package/dist/core/events/v3/capabilities.js +3 -3
- package/dist/core/events/v3/control-witness.d.ts +44 -0
- package/dist/core/events/v3/control-witness.d.ts.map +1 -0
- package/dist/core/events/v3/control-witness.js +233 -0
- package/dist/core/events/v3/control-writer.d.ts +4 -0
- package/dist/core/events/v3/control-writer.d.ts.map +1 -0
- package/dist/core/events/v3/control-writer.js +16 -0
- package/dist/core/events/v3/control.d.ts +8 -2
- package/dist/core/events/v3/control.d.ts.map +1 -1
- package/dist/core/events/v3/control.js +46 -18
- package/dist/core/events/v3/coordination-transaction-recovery.d.ts +42 -0
- package/dist/core/events/v3/coordination-transaction-recovery.d.ts.map +1 -0
- package/dist/core/events/v3/coordination-transaction-recovery.js +342 -0
- package/dist/core/events/v3/coordination-view.d.ts.map +1 -1
- package/dist/core/events/v3/coordination-view.js +16 -1
- package/dist/core/events/v3/generated.d.ts +1 -1
- package/dist/core/events/v3/generated.js +1 -1
- package/dist/core/events/v3/index.d.ts +4 -2
- package/dist/core/events/v3/index.d.ts.map +1 -1
- package/dist/core/events/v3/index.js +3 -1
- package/dist/core/events/v3/live-route-observer.d.ts +31 -0
- package/dist/core/events/v3/live-route-observer.d.ts.map +1 -0
- package/dist/core/events/v3/live-route-observer.js +58 -0
- package/dist/core/events/v3/live-routing.d.ts +13 -21
- package/dist/core/events/v3/live-routing.d.ts.map +1 -1
- package/dist/core/events/v3/live-routing.js +45 -41
- package/dist/core/events/v3/producers/coordination-recorder.d.ts +11 -1
- package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/coordination-recorder.js +76 -10
- package/dist/core/events/v3/producers/diagnostic-summaries.d.ts +129 -0
- package/dist/core/events/v3/producers/diagnostic-summaries.d.ts.map +1 -0
- package/dist/core/events/v3/producers/diagnostic-summaries.js +499 -0
- package/dist/core/events/v3/producers/hook-base.js +1 -1
- package/dist/core/events/v3/producers/intake.d.ts +7 -0
- package/dist/core/events/v3/producers/intake.d.ts.map +1 -1
- package/dist/core/events/v3/producers/intake.js +25 -2
- package/dist/core/events/v3/producers/producer-state-observer.d.ts +8 -0
- package/dist/core/events/v3/producers/producer-state-observer.d.ts.map +1 -0
- package/dist/core/events/v3/producers/producer-state-observer.js +45 -0
- package/dist/core/events/v3/producers/recorder.d.ts +55 -1
- package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/recorder.js +353 -24
- package/dist/core/events/v3/reader.d.ts +51 -0
- package/dist/core/events/v3/reader.d.ts.map +1 -1
- package/dist/core/events/v3/reader.js +181 -1
- package/dist/core/events/v3/rotation-config.d.ts +9 -0
- package/dist/core/events/v3/rotation-config.d.ts.map +1 -0
- package/dist/core/events/v3/rotation-config.js +91 -0
- package/dist/core/events/v3/runtime-build.d.ts +11 -0
- package/dist/core/events/v3/runtime-build.d.ts.map +1 -0
- package/dist/core/events/v3/runtime-build.js +39 -0
- package/dist/core/events/v3/runtime-identity.d.ts +5 -0
- package/dist/core/events/v3/runtime-identity.d.ts.map +1 -0
- package/dist/core/events/v3/runtime-identity.js +18 -0
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts +6 -5
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts.map +1 -1
- package/dist/core/events/v3/runtime-telemetry-capabilities.js +1 -1
- package/dist/core/events/v3/support-storage/classify.d.ts +46 -0
- package/dist/core/events/v3/support-storage/classify.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/classify.js +149 -0
- package/dist/core/events/v3/support-storage/eligibility.d.ts +29 -0
- package/dist/core/events/v3/support-storage/eligibility.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/eligibility.js +35 -0
- package/dist/core/events/v3/support-storage/index.d.ts +10 -0
- package/dist/core/events/v3/support-storage/index.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/index.js +9 -0
- package/dist/core/events/v3/support-storage/inventory.d.ts +30 -0
- package/dist/core/events/v3/support-storage/inventory.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/inventory.js +94 -0
- package/dist/core/events/v3/support-storage/logical-authority.d.ts +14 -0
- package/dist/core/events/v3/support-storage/logical-authority.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/logical-authority.js +104 -0
- package/dist/core/events/v3/support-storage/maintenance.d.ts +98 -0
- package/dist/core/events/v3/support-storage/maintenance.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/maintenance.js +352 -0
- package/dist/core/events/v3/support-storage/pack-contract.d.ts +59 -0
- package/dist/core/events/v3/support-storage/pack-contract.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/pack-contract.js +249 -0
- package/dist/core/events/v3/support-storage/pack-reader.d.ts +34 -0
- package/dist/core/events/v3/support-storage/pack-reader.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/pack-reader.js +258 -0
- package/dist/core/events/v3/support-storage/pack-writer.d.ts +30 -0
- package/dist/core/events/v3/support-storage/pack-writer.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/pack-writer.js +268 -0
- package/dist/core/events/v3/support-storage/recovery.d.ts +15 -0
- package/dist/core/events/v3/support-storage/recovery.d.ts.map +1 -0
- package/dist/core/events/v3/support-storage/recovery.js +22 -0
- package/dist/core/events/v3/turn-telemetry.d.ts +14 -8
- package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -1
- package/dist/core/events/v3/turn-telemetry.js +32 -2
- package/dist/core/events/v3/writer.d.ts +13 -1
- package/dist/core/events/v3/writer.d.ts.map +1 -1
- package/dist/core/events/v3/writer.js +126 -12
- package/dist/core/governor/plan-read.d.ts.map +1 -1
- package/dist/core/governor/plan-read.js +5 -21
- package/dist/core/governor/planning.js +6 -8
- package/dist/core/governor/service-read.d.ts +12 -0
- package/dist/core/governor/service-read.d.ts.map +1 -1
- package/dist/core/governor/service-read.js +266 -2
- package/dist/core/governor/service.d.ts +1 -0
- package/dist/core/governor/service.d.ts.map +1 -1
- package/dist/core/governor/service.js +53 -18
- package/dist/core/guard/evidence-v3.d.ts.map +1 -1
- package/dist/core/guard/evidence-v3.js +2 -0
- package/dist/core/hooks/adapter/events.d.ts.map +1 -1
- package/dist/core/hooks/adapter/events.js +1 -0
- package/dist/core/hooks/adapter/output.d.ts +4 -2
- package/dist/core/hooks/adapter/output.d.ts.map +1 -1
- package/dist/core/hooks/adapter/output.js +13 -5
- package/dist/core/hooks/adapter/runtime-telemetry.d.ts +27 -4
- package/dist/core/hooks/adapter/runtime-telemetry.d.ts.map +1 -1
- package/dist/core/hooks/adapter/runtime-telemetry.js +307 -6
- package/dist/core/hooks/cli.js +212 -30
- package/dist/core/hooks/effects/image-capture.d.ts +1 -1
- package/dist/core/hooks/effects/image-capture.d.ts.map +1 -1
- package/dist/core/hooks/effects/image-capture.js +4 -2
- package/dist/core/hooks/remediation-cap.d.ts +8 -3
- package/dist/core/hooks/remediation-cap.d.ts.map +1 -1
- package/dist/core/hooks/remediation-cap.js +3 -11
- package/dist/core/hooks/resolve/coord-root.d.ts +22 -9
- package/dist/core/hooks/resolve/coord-root.d.ts.map +1 -1
- package/dist/core/hooks/resolve/coord-root.js +92 -11
- package/dist/core/hooks/resolve/owner.d.ts.map +1 -1
- package/dist/core/hooks/resolve/owner.js +5 -0
- package/dist/core/hooks/resolve/transcript.d.ts +8 -0
- package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
- package/dist/core/hooks/resolve/transcript.js +11 -0
- package/dist/core/inbox/contract.d.ts +64 -0
- package/dist/core/inbox/contract.d.ts.map +1 -0
- package/dist/core/inbox/contract.js +13 -0
- package/dist/core/inbox/index.d.ts +5 -0
- package/dist/core/inbox/index.d.ts.map +1 -0
- package/dist/core/inbox/index.js +4 -0
- package/dist/core/inbox/lifecycle.d.ts +22 -0
- package/dist/core/inbox/lifecycle.d.ts.map +1 -0
- package/dist/core/inbox/lifecycle.js +41 -0
- package/dist/core/inbox/service.d.ts +36 -0
- package/dist/core/inbox/service.d.ts.map +1 -0
- package/dist/core/inbox/service.js +210 -0
- package/dist/core/inbox/watcher.d.ts +7 -0
- package/dist/core/inbox/watcher.d.ts.map +1 -0
- package/dist/core/inbox/watcher.js +26 -0
- package/dist/core/presence/codec-digest.d.ts.map +1 -1
- package/dist/core/presence/codec-digest.js +14 -3
- package/dist/core/presence/relay-client.d.ts +1 -0
- package/dist/core/presence/relay-client.d.ts.map +1 -1
- package/dist/core/presence/relay-client.js +52 -8
- package/dist/core/semantic/adapters.d.ts +11 -8
- package/dist/core/semantic/adapters.d.ts.map +1 -1
- package/dist/core/semantic/adapters.js +169 -31
- package/dist/core/semantic/contract.d.ts +532 -48
- package/dist/core/semantic/contract.d.ts.map +1 -1
- package/dist/core/semantic/contract.js +104 -3
- package/dist/core/semantic/index.d.ts +7 -3
- package/dist/core/semantic/index.d.ts.map +1 -1
- package/dist/core/semantic/index.js +7 -3
- package/dist/core/semantic/once.d.ts +6 -1
- package/dist/core/semantic/once.d.ts.map +1 -1
- package/dist/core/semantic/once.js +80 -9
- package/dist/core/semantic/prompt.d.ts.map +1 -1
- package/dist/core/semantic/prompt.js +14 -1
- package/dist/core/semantic/review.d.ts +144 -0
- package/dist/core/semantic/review.d.ts.map +1 -0
- package/dist/core/semantic/review.js +544 -0
- package/dist/core/semantic/routes.d.ts +10 -0
- package/dist/core/semantic/routes.d.ts.map +1 -0
- package/dist/core/semantic/routes.js +21 -0
- package/dist/core/semantic/scheduler.d.ts +14 -3
- package/dist/core/semantic/scheduler.d.ts.map +1 -1
- package/dist/core/semantic/scheduler.js +30 -6
- package/dist/core/semantic/service-status.d.ts +20 -0
- package/dist/core/semantic/service-status.d.ts.map +1 -1
- package/dist/core/semantic/service-status.js +60 -4
- package/dist/core/semantic/service.d.ts +1 -0
- package/dist/core/semantic/service.d.ts.map +1 -1
- package/dist/core/semantic/service.js +104 -15
- package/dist/core/semantic/soak.d.ts +75 -0
- package/dist/core/semantic/soak.d.ts.map +1 -0
- package/dist/core/semantic/soak.js +476 -0
- package/dist/core/semantic/storage.d.ts +11 -1
- package/dist/core/semantic/storage.d.ts.map +1 -1
- package/dist/core/semantic/storage.js +4 -3
- package/dist/core/semantic/usage.d.ts +43 -0
- package/dist/core/semantic/usage.d.ts.map +1 -0
- package/dist/core/semantic/usage.js +193 -0
- package/dist/core/semantic/validate.d.ts +3 -1
- package/dist/core/semantic/validate.d.ts.map +1 -1
- package/dist/core/semantic/validate.js +34 -1
- package/dist/core/storage/buffer.d.ts +28 -0
- package/dist/core/storage/buffer.d.ts.map +1 -0
- package/dist/core/storage/buffer.js +101 -0
- package/dist/core/storage/builtins.d.ts +3 -0
- package/dist/core/storage/builtins.d.ts.map +1 -0
- package/dist/core/storage/builtins.js +683 -0
- package/dist/core/storage/catalog.d.ts +19 -0
- package/dist/core/storage/catalog.d.ts.map +1 -0
- package/dist/core/storage/catalog.js +365 -0
- package/dist/core/storage/config.d.ts +16 -0
- package/dist/core/storage/config.d.ts.map +1 -0
- package/dist/core/storage/config.js +311 -0
- package/dist/core/storage/contract.d.ts +275 -0
- package/dist/core/storage/contract.d.ts.map +1 -0
- package/dist/core/storage/contract.js +3 -0
- package/dist/core/storage/durable-history.d.ts +36 -0
- package/dist/core/storage/durable-history.d.ts.map +1 -0
- package/dist/core/storage/durable-history.js +606 -0
- package/dist/core/storage/health.d.ts +4 -0
- package/dist/core/storage/health.d.ts.map +1 -0
- package/dist/core/storage/health.js +65 -0
- package/dist/core/storage/index.d.ts +16 -0
- package/dist/core/storage/index.d.ts.map +1 -0
- package/dist/core/storage/index.js +15 -0
- package/dist/core/storage/inventory.d.ts +25 -0
- package/dist/core/storage/inventory.d.ts.map +1 -0
- package/dist/core/storage/inventory.js +666 -0
- package/dist/core/storage/jsonl.d.ts +52 -0
- package/dist/core/storage/jsonl.d.ts.map +1 -0
- package/dist/core/storage/jsonl.js +156 -0
- package/dist/core/storage/log-retention.d.ts +52 -0
- package/dist/core/storage/log-retention.d.ts.map +1 -0
- package/dist/core/storage/log-retention.js +419 -0
- package/dist/core/storage/logger.d.ts +82 -0
- package/dist/core/storage/logger.d.ts.map +1 -0
- package/dist/core/storage/logger.js +411 -0
- package/dist/core/storage/maintenance-providers.d.ts +26 -0
- package/dist/core/storage/maintenance-providers.d.ts.map +1 -0
- package/dist/core/storage/maintenance-providers.js +141 -0
- package/dist/core/storage/maintenance.d.ts +125 -0
- package/dist/core/storage/maintenance.d.ts.map +1 -0
- package/dist/core/storage/maintenance.js +609 -0
- package/dist/core/storage/metrics.d.ts +60 -0
- package/dist/core/storage/metrics.d.ts.map +1 -0
- package/dist/core/storage/metrics.js +134 -0
- package/dist/core/storage/policy.d.ts +7 -0
- package/dist/core/storage/policy.d.ts.map +1 -0
- package/dist/core/storage/policy.js +110 -0
- package/dist/core/storage/process-log.d.ts +38 -0
- package/dist/core/storage/process-log.d.ts.map +1 -0
- package/dist/core/storage/process-log.js +165 -0
- package/dist/core/storage/query.d.ts +34 -0
- package/dist/core/storage/query.d.ts.map +1 -0
- package/dist/core/storage/query.js +295 -0
- package/dist/core/storage/receipts.d.ts +23 -0
- package/dist/core/storage/receipts.d.ts.map +1 -0
- package/dist/core/storage/receipts.js +117 -0
- package/dist/core/storage/segments.d.ts +84 -0
- package/dist/core/storage/segments.d.ts.map +1 -0
- package/dist/core/storage/segments.js +542 -0
- package/dist/core/storage/sink-graph.d.ts +65 -0
- package/dist/core/storage/sink-graph.d.ts.map +1 -0
- package/dist/core/storage/sink-graph.js +213 -0
- package/dist/core/storage/storm-control.d.ts +23 -0
- package/dist/core/storage/storm-control.d.ts.map +1 -0
- package/dist/core/storage/storm-control.js +59 -0
- package/dist/core/work/state.d.ts.map +1 -1
- package/dist/core/work/state.js +10 -14
- package/dist/core/workflow/live-session-v3.d.ts.map +1 -1
- package/dist/core/workflow/live-session-v3.js +2 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/lazy-commands.d.ts +26 -0
- package/dist/lazy-commands.d.ts.map +1 -0
- package/dist/lazy-commands.js +210 -0
- package/dist/lib/docs-lint.d.ts +2 -0
- package/dist/lib/docs-lint.d.ts.map +1 -1
- package/dist/lib/docs-lint.js +45 -80
- package/dist/lib/docs-metadata-audit.d.ts +3 -0
- package/dist/lib/docs-metadata-audit.d.ts.map +1 -1
- package/dist/lib/docs-metadata-audit.js +13 -23
- package/dist/lib/docs-metadata-sync.d.ts +1 -0
- package/dist/lib/docs-metadata-sync.d.ts.map +1 -1
- package/dist/lib/docs-metadata-sync.js +28 -10
- package/dist/lib/docs-repository-view.d.ts +22 -0
- package/dist/lib/docs-repository-view.d.ts.map +1 -0
- package/dist/lib/docs-repository-view.js +185 -0
- package/dist/lib/http/client.d.ts +11 -5
- package/dist/lib/http/client.d.ts.map +1 -1
- package/dist/lib/http/client.js +22 -4
- package/dist/lib/http/index.d.ts +1 -1
- package/dist/lib/http/index.d.ts.map +1 -1
- package/dist/lib/http/index.js +1 -1
- package/dist/lib/indexer-exclusions.d.ts +27 -0
- package/dist/lib/indexer-exclusions.d.ts.map +1 -0
- package/dist/lib/indexer-exclusions.js +176 -0
- package/dist/lib/instructions/templates.d.ts.map +1 -1
- package/dist/lib/instructions/templates.js +5 -0
- package/dist/lib/local-file-url.d.ts +9 -0
- package/dist/lib/local-file-url.d.ts.map +1 -0
- package/dist/lib/local-file-url.js +20 -0
- package/dist/lib/web-performance.d.ts +118 -0
- package/dist/lib/web-performance.d.ts.map +1 -0
- package/dist/lib/web-performance.js +192 -0
- package/package.json +29 -2
- package/schemas/config.schema.json +58 -0
- package/schemas/event-v3.schema.json +324 -112
- package/src/commander.ts +462 -95
- package/src/commands/agents.ts +517 -190
- package/src/commands/backup.ts +18 -14
- package/src/commands/browse-session.ts +12 -0
- package/src/commands/browse.ts +6 -7
- package/src/commands/conversations.ts +279 -0
- package/src/commands/deinit.ts +6 -0
- package/src/commands/docs.ts +25 -6
- package/src/commands/doctor.ts +75 -9
- package/src/commands/fetch.ts +7 -6
- package/src/commands/files.ts +143 -0
- package/src/commands/governor.ts +13 -12
- package/src/commands/inbox.ts +61 -0
- package/src/commands/init.ts +78 -16
- package/src/commands/ledger-v3.ts +421 -1
- package/src/commands/logs.ts +224 -0
- package/src/commands/messages.ts +61 -0
- package/src/commands/outline.ts +6 -2
- package/src/commands/read.ts +6 -2
- package/src/commands/semantic.ts +66 -1
- package/src/commands/storage.ts +310 -0
- package/src/commands/tunnel.ts +66 -52
- package/src/commands/web.ts +77 -7
- package/src/commands/work.ts +3 -3
- package/src/commands/workflow.ts +13 -13
- package/src/core/agents/cli.ts +259 -53
- package/src/core/agents/live-authority-v3.ts +341 -10
- package/src/core/agents/live-lifecycle-v3.ts +6 -1
- package/src/core/agents/live-observation-v3.ts +6 -1
- package/src/core/agents/render/prompt-context.ts +27 -6
- package/src/core/agents/rules/stop-hook.ts +107 -16
- package/src/core/agents/rules/verdict.ts +1 -0
- package/src/core/agents/session-events.ts +4 -0
- package/src/core/agents/session-finalization-state-v3.ts +1 -1
- package/src/core/agents/session-finalizer-v3.ts +4 -1
- package/src/core/agents/state/activity-log.ts +7 -2
- package/src/core/agents/state/heartbeat-writer.ts +27 -0
- package/src/core/agents/state/live-coordination-view.ts +16 -105
- package/src/core/agents/state/live-coordination-writer.ts +141 -0
- package/src/core/artifacts/index.ts +64 -1
- package/src/core/config.ts +126 -5
- package/src/core/conversations/archive.ts +237 -0
- package/src/core/conversations/catalog.ts +79 -0
- package/src/core/conversations/context-pack.ts +72 -0
- package/src/core/conversations/contract.ts +178 -0
- package/src/core/conversations/evaluation.ts +30 -0
- package/src/core/conversations/index.ts +9 -0
- package/src/core/conversations/lifecycle.ts +63 -0
- package/src/core/conversations/normalize.ts +105 -0
- package/src/core/conversations/query.ts +318 -0
- package/src/core/conversations/search-index.ts +48 -0
- package/src/core/events/legacy-storage/canary.ts +177 -0
- package/src/core/events/legacy-storage/fence.ts +129 -0
- package/src/core/events/legacy-storage/index.ts +5 -0
- package/src/core/events/legacy-storage/inventory.ts +51 -0
- package/src/core/events/legacy-storage/manifest.ts +136 -0
- package/src/core/events/legacy-storage/reader.ts +178 -0
- package/src/core/events/v3/authority-outbox.ts +22 -1
- package/src/core/events/v3/base-contract.ts +17 -7
- package/src/core/events/v3/bootstrap.ts +195 -2
- package/src/core/events/v3/capabilities.ts +3 -3
- package/src/core/events/v3/control-witness.ts +339 -0
- package/src/core/events/v3/control-writer.ts +16 -0
- package/src/core/events/v3/control.ts +54 -18
- package/src/core/events/v3/coordination-transaction-recovery.ts +477 -0
- package/src/core/events/v3/coordination-view.ts +17 -1
- package/src/core/events/v3/generated.ts +1 -1
- package/src/core/events/v3/index.ts +5 -2
- package/src/core/events/v3/live-route-observer.ts +80 -0
- package/src/core/events/v3/live-routing.ts +64 -46
- package/src/core/events/v3/producers/coordination-recorder.ts +95 -10
- package/src/core/events/v3/producers/diagnostic-summaries.ts +593 -0
- package/src/core/events/v3/producers/hook-base.ts +1 -1
- package/src/core/events/v3/producers/intake.ts +30 -2
- package/src/core/events/v3/producers/producer-state-observer.ts +52 -0
- package/src/core/events/v3/producers/recorder.ts +571 -33
- package/src/core/events/v3/reader.ts +243 -2
- package/src/core/events/v3/rotation-config.ts +98 -0
- package/src/core/events/v3/runtime-build.ts +41 -0
- package/src/core/events/v3/runtime-identity.ts +16 -0
- package/src/core/events/v3/runtime-telemetry-capabilities.ts +14 -8
- package/src/core/events/v3/support-storage/classify.ts +209 -0
- package/src/core/events/v3/support-storage/eligibility.ts +58 -0
- package/src/core/events/v3/support-storage/index.ts +9 -0
- package/src/core/events/v3/support-storage/inventory.ts +135 -0
- package/src/core/events/v3/support-storage/logical-authority.ts +117 -0
- package/src/core/events/v3/support-storage/maintenance.ts +501 -0
- package/src/core/events/v3/support-storage/pack-contract.ts +337 -0
- package/src/core/events/v3/support-storage/pack-reader.ts +346 -0
- package/src/core/events/v3/support-storage/pack-writer.ts +352 -0
- package/src/core/events/v3/support-storage/recovery.ts +43 -0
- package/src/core/events/v3/turn-telemetry.ts +58 -7
- package/src/core/events/v3/writer.ts +168 -16
- package/src/core/governor/plan-read.ts +5 -18
- package/src/core/governor/planning.ts +5 -8
- package/src/core/governor/service-read.ts +320 -2
- package/src/core/governor/service.ts +49 -22
- package/src/core/guard/evidence-v3.ts +1 -0
- package/src/core/hooks/adapter/events.ts +1 -0
- package/src/core/hooks/adapter/output.ts +12 -5
- package/src/core/hooks/adapter/runtime-telemetry.ts +408 -13
- package/src/core/hooks/cli.ts +226 -32
- package/src/core/hooks/effects/image-capture.ts +4 -1
- package/src/core/hooks/remediation-cap.ts +12 -6
- package/src/core/hooks/resolve/coord-root.ts +91 -11
- package/src/core/hooks/resolve/owner.ts +4 -0
- package/src/core/hooks/resolve/transcript.ts +18 -0
- package/src/core/inbox/contract.ts +81 -0
- package/src/core/inbox/index.ts +4 -0
- package/src/core/inbox/lifecycle.ts +104 -0
- package/src/core/inbox/service.ts +305 -0
- package/src/core/inbox/watcher.ts +36 -0
- package/src/core/presence/codec-digest.ts +15 -9
- package/src/core/presence/relay-client.ts +55 -7
- package/src/core/semantic/adapters.ts +200 -41
- package/src/core/semantic/contract.ts +135 -3
- package/src/core/semantic/index.ts +76 -2
- package/src/core/semantic/once.ts +93 -7
- package/src/core/semantic/prompt.ts +13 -1
- package/src/core/semantic/review.ts +803 -0
- package/src/core/semantic/routes.ts +30 -0
- package/src/core/semantic/scheduler.ts +49 -5
- package/src/core/semantic/service-status.ts +99 -5
- package/src/core/semantic/service.ts +116 -15
- package/src/core/semantic/soak.ts +638 -0
- package/src/core/semantic/storage.ts +20 -6
- package/src/core/semantic/usage.ts +272 -0
- package/src/core/semantic/validate.ts +31 -0
- package/src/core/storage/buffer.ts +124 -0
- package/src/core/storage/builtins.ts +916 -0
- package/src/core/storage/catalog.ts +467 -0
- package/src/core/storage/config.ts +423 -0
- package/src/core/storage/contract.ts +342 -0
- package/src/core/storage/durable-history.ts +738 -0
- package/src/core/storage/health.ts +76 -0
- package/src/core/storage/index.ts +15 -0
- package/src/core/storage/inventory.ts +859 -0
- package/src/core/storage/jsonl.ts +213 -0
- package/src/core/storage/log-retention.ts +555 -0
- package/src/core/storage/logger.ts +546 -0
- package/src/core/storage/maintenance-providers.ts +200 -0
- package/src/core/storage/maintenance.ts +929 -0
- package/src/core/storage/metrics.ts +199 -0
- package/src/core/storage/policy.ts +141 -0
- package/src/core/storage/process-log.ts +203 -0
- package/src/core/storage/query.ts +360 -0
- package/src/core/storage/receipts.ts +162 -0
- package/src/core/storage/segments.ts +721 -0
- package/src/core/storage/sink-graph.ts +343 -0
- package/src/core/storage/storm-control.ts +91 -0
- package/src/core/work/state.ts +12 -21
- package/src/core/workflow/live-session-v3.ts +2 -4
- package/src/index.ts +2 -0
- package/src/lazy-commands.ts +294 -0
- package/src/lib/docs-lint.ts +58 -77
- package/src/lib/docs-metadata-audit.ts +26 -21
- package/src/lib/docs-metadata-sync.ts +32 -9
- package/src/lib/docs-repository-view.ts +220 -0
- package/src/lib/http/client.ts +44 -8
- package/src/lib/http/index.ts +6 -1
- package/src/lib/indexer-exclusions.ts +173 -0
- package/src/lib/instructions/templates.ts +5 -0
- package/src/lib/local-file-url.ts +31 -0
- package/src/lib/web-performance.ts +335 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { EmitContext, HarneryProgramContext } from "../commander.js";
|
|
3
|
+
export { FILES_ORIGIN_HOST } from "../lib/local-file-url.js";
|
|
4
|
+
export type LocalFileUrlMode = "auto" | "raw" | "viewer";
|
|
5
|
+
export interface LocalFileUrlOptions {
|
|
6
|
+
coordRoot: string;
|
|
7
|
+
port: number;
|
|
8
|
+
mode?: LocalFileUrlMode;
|
|
9
|
+
}
|
|
10
|
+
export interface LocalFileUrl {
|
|
11
|
+
url: string;
|
|
12
|
+
relPath: string;
|
|
13
|
+
mode: Exclude<LocalFileUrlMode, "auto">;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Mint the local browser URL for a file under the dashboard's coord root.
|
|
17
|
+
* HTML defaults to the isolated files origin so scripts and relative assets
|
|
18
|
+
* work. Other files default to the dashboard viewer.
|
|
19
|
+
*/
|
|
20
|
+
export declare function mintLocalFileUrl(input: string, options: LocalFileUrlOptions): LocalFileUrl;
|
|
21
|
+
export declare function registerFilesCommand(program: Command, emit: EmitContext, context?: HarneryProgramContext): void;
|
|
22
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAK1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;CACzC;AAuCD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAS1F;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,IAAI,CA6DN"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { realpathSync, statSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { resolveCoordRoot } from "../core/agents/coord-client.js";
|
|
4
|
+
import { DEFAULT_WEB_PORT, resolveWebPort } from "../core/config.js";
|
|
5
|
+
import { localFilesOriginUrl, localFileViewerUrl } from "../lib/local-file-url.js";
|
|
6
|
+
export { FILES_ORIGIN_HOST } from "../lib/local-file-url.js";
|
|
7
|
+
function isOutsideRoot(relPath) {
|
|
8
|
+
return relPath === "" || relPath === ".." || relPath.startsWith(`..${path.sep}`);
|
|
9
|
+
}
|
|
10
|
+
function canonicalRepoPath(input, coordRoot) {
|
|
11
|
+
if (input.trim() === "")
|
|
12
|
+
throw new Error("path must not be empty");
|
|
13
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: URL output must stay one clean line
|
|
14
|
+
if (/[\u0000-\u001f\u007f]/.test(input))
|
|
15
|
+
throw new Error("path contains control bytes");
|
|
16
|
+
let root;
|
|
17
|
+
try {
|
|
18
|
+
root = realpathSync(coordRoot);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
throw new Error(`coord root does not exist: ${coordRoot}`);
|
|
22
|
+
}
|
|
23
|
+
const candidate = path.isAbsolute(input) ? input : path.resolve(root, input);
|
|
24
|
+
let canonical;
|
|
25
|
+
try {
|
|
26
|
+
canonical = realpathSync(candidate);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
throw new Error(`file does not exist: ${input}`);
|
|
30
|
+
}
|
|
31
|
+
const relPath = path.relative(root, canonical);
|
|
32
|
+
if (isOutsideRoot(relPath) || path.isAbsolute(relPath)) {
|
|
33
|
+
throw new Error(`file is outside the coord root: ${input}`);
|
|
34
|
+
}
|
|
35
|
+
if (!statSync(canonical).isFile())
|
|
36
|
+
throw new Error(`path is not a file: ${input}`);
|
|
37
|
+
return relPath.split(path.sep).join("/");
|
|
38
|
+
}
|
|
39
|
+
function isHtmlPath(relPath) {
|
|
40
|
+
const lower = relPath.toLowerCase();
|
|
41
|
+
return lower.endsWith(".html") || lower.endsWith(".htm");
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Mint the local browser URL for a file under the dashboard's coord root.
|
|
45
|
+
* HTML defaults to the isolated files origin so scripts and relative assets
|
|
46
|
+
* work. Other files default to the dashboard viewer.
|
|
47
|
+
*/
|
|
48
|
+
export function mintLocalFileUrl(input, options) {
|
|
49
|
+
const relPath = canonicalRepoPath(input, options.coordRoot);
|
|
50
|
+
const requestedMode = options.mode ?? "auto";
|
|
51
|
+
const mode = requestedMode === "auto" ? (isHtmlPath(relPath) ? "raw" : "viewer") : requestedMode;
|
|
52
|
+
const url = mode === "raw"
|
|
53
|
+
? localFilesOriginUrl(relPath, options.port)
|
|
54
|
+
: localFileViewerUrl(relPath, options.port);
|
|
55
|
+
return { url, relPath, mode };
|
|
56
|
+
}
|
|
57
|
+
export function registerFilesCommand(program, emit, context) {
|
|
58
|
+
const files = program
|
|
59
|
+
.command("files")
|
|
60
|
+
.description("Mint browser links for files served by the local dashboard");
|
|
61
|
+
files
|
|
62
|
+
.command("url")
|
|
63
|
+
.description("Mint the local browser URL for a repo file")
|
|
64
|
+
.argument("<path>", "Repo-relative path, or an absolute path inside the coord root")
|
|
65
|
+
.option("-p, --port <port>", `Dashboard port (default ${DEFAULT_WEB_PORT})`)
|
|
66
|
+
.option("--coord-root <dir>", "Override the coord root")
|
|
67
|
+
.option("--raw", "Use the isolated files origin, regardless of extension")
|
|
68
|
+
.option("--viewer", "Use the dashboard file viewer, regardless of extension")
|
|
69
|
+
.action((filePath, opts) => {
|
|
70
|
+
if (opts.raw && opts.viewer) {
|
|
71
|
+
emit.error({
|
|
72
|
+
code: "conflicting_url_modes",
|
|
73
|
+
message: "--raw and --viewer cannot be used together",
|
|
74
|
+
});
|
|
75
|
+
emit.setExitCode(1);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const coordRoot = opts.coordRoot ??
|
|
79
|
+
context?.resolveCoordRoot?.() ??
|
|
80
|
+
context?.repoRoot ??
|
|
81
|
+
resolveCoordRoot(process.cwd()) ??
|
|
82
|
+
process.cwd();
|
|
83
|
+
let port;
|
|
84
|
+
try {
|
|
85
|
+
port = resolveWebPort(opts.port, coordRoot);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
emit.error({
|
|
89
|
+
code: "invalid_web_port",
|
|
90
|
+
message: error instanceof Error ? error.message : "invalid web port",
|
|
91
|
+
hint: `Use an integer from 1024 through 65535; the default is ${DEFAULT_WEB_PORT}.`,
|
|
92
|
+
});
|
|
93
|
+
emit.setExitCode(1);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
const result = mintLocalFileUrl(filePath, {
|
|
98
|
+
coordRoot,
|
|
99
|
+
port,
|
|
100
|
+
mode: opts.raw ? "raw" : opts.viewer ? "viewer" : "auto",
|
|
101
|
+
});
|
|
102
|
+
emit.text(`${result.url}\n`);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
emit.error({
|
|
106
|
+
code: "invalid_local_file",
|
|
107
|
+
message: error instanceof Error ? error.message : "invalid local file path",
|
|
108
|
+
hint: "Pass an existing file inside the dashboard coord root.",
|
|
109
|
+
});
|
|
110
|
+
emit.setExitCode(1);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
2
|
import { dirname, isAbsolute, resolve } from "node:path";
|
|
3
3
|
import { adapterProofInputs, createBuiltinAdapterRegistry, probeBinaryVersion, readAttestation, } from "../core/adapters/index.js";
|
|
4
|
+
import { resolveCoordRoot } from "../core/agents/coord-client.js";
|
|
4
5
|
import { workflowSubscriptionOnly } from "../core/config.js";
|
|
5
6
|
import { inspectAdapterSpread } from "../core/governor/adapter-spread.js";
|
|
6
|
-
import { approveGovernorPlan, configureGovernorService, createGovernor,
|
|
7
|
-
import {
|
|
7
|
+
import { approveGovernorPlan, configureGovernorService, createGovernor, listGovernorsWithWarnings, readGovernor, readGovernorPlan, readGovernorServiceConfig, readGovernorServiceStatus, rejectGovernorPlan, requestGovernorServiceStop, retryGovernorPlan, runGovernor, runGovernorServiceDaemon, spawnGovernorService, } from "../core/governor/index.js";
|
|
8
|
+
import { readGovernorServiceLogs } from "../core/governor/service-read.js";
|
|
8
9
|
import { loadPolicyFile } from "../core/policy/index.js";
|
|
9
10
|
export function registerGovernorCommand(program, emit) {
|
|
10
11
|
const registry = createBuiltinAdapterRegistry();
|
|
@@ -266,16 +267,17 @@ function registerServiceCommand(governor, registry, emit) {
|
|
|
266
267
|
const lines = integer(opts.lines) ?? 50;
|
|
267
268
|
if (lines > 10_000)
|
|
268
269
|
throw new Error("service log lines must not exceed 10000");
|
|
269
|
-
const
|
|
270
|
-
|
|
270
|
+
const result = readGovernorServiceLogs(coordRoot, {
|
|
271
|
+
max_bytes: 512 * 1024,
|
|
272
|
+
max_records: 10_000,
|
|
273
|
+
});
|
|
274
|
+
if (result.lines.length === 0) {
|
|
271
275
|
emit.text("no governor service log\n");
|
|
272
276
|
return;
|
|
273
277
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
.
|
|
277
|
-
.join("\n");
|
|
278
|
-
emit.text(selected.endsWith("\n") ? selected : `${selected}\n`);
|
|
278
|
+
emit.text(`${result.lines.slice(-lines).join("\n")}\n`);
|
|
279
|
+
if (result.truncated)
|
|
280
|
+
emit.log("governor service log read stopped at its bounded budget", "warn");
|
|
279
281
|
});
|
|
280
282
|
});
|
|
281
283
|
service
|
|
@@ -706,7 +708,7 @@ function delay(ms) {
|
|
|
706
708
|
return new Promise((resolveDelay) => setTimeout(resolveDelay, ms));
|
|
707
709
|
}
|
|
708
710
|
function withGovernorRoot(emit, fn) {
|
|
709
|
-
const coordRoot =
|
|
711
|
+
const coordRoot = resolveCoordRoot();
|
|
710
712
|
if (!coordRoot) {
|
|
711
713
|
emit.error({
|
|
712
714
|
code: "no_coord_root",
|
|
@@ -724,7 +726,7 @@ function withGovernorRoot(emit, fn) {
|
|
|
724
726
|
}
|
|
725
727
|
}
|
|
726
728
|
async function withGovernorRootAsync(emit, fn) {
|
|
727
|
-
const coordRoot =
|
|
729
|
+
const coordRoot = resolveCoordRoot();
|
|
728
730
|
if (!coordRoot) {
|
|
729
731
|
emit.error({
|
|
730
732
|
code: "no_coord_root",
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { EmitContext } from "../commander.js";
|
|
3
|
+
import type { HarneryInboxService } from "../core/inbox/service.js";
|
|
4
|
+
export declare function registerInboxCommand(program: Command, emit: EmitContext, service?: HarneryInboxService): void;
|
|
5
|
+
//# sourceMappingURL=inbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,CAmCN"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export function registerInboxCommand(program, emit, service) {
|
|
2
|
+
const inbox = program.command("inbox").description("Inspect private coordination inbox state");
|
|
3
|
+
inbox
|
|
4
|
+
.command("list <recipient>")
|
|
5
|
+
.option("--json", "Emit stable JSON")
|
|
6
|
+
.action((recipient, options) => {
|
|
7
|
+
run(emit, () => {
|
|
8
|
+
const rows = requireInboxService(service)
|
|
9
|
+
.pending(recipient)
|
|
10
|
+
.map((record) => ({
|
|
11
|
+
message_id: record.message_id,
|
|
12
|
+
sender_instance_id: record.sender_instance_id,
|
|
13
|
+
sender_display_name: record.sender_display_name,
|
|
14
|
+
created_at: record.created_at,
|
|
15
|
+
body_bytes: record.body_bytes,
|
|
16
|
+
body: record.body,
|
|
17
|
+
}));
|
|
18
|
+
if (options.json) {
|
|
19
|
+
emit.config({ format: "json" });
|
|
20
|
+
emit.data({ schema: "harnery.inbox-list/v1", recipient_instance_id: recipient, rows });
|
|
21
|
+
}
|
|
22
|
+
else
|
|
23
|
+
emit.rows(rows);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
inbox
|
|
27
|
+
.command("status <recipient>")
|
|
28
|
+
.option("--json", "Emit stable JSON")
|
|
29
|
+
.action((recipient, options) => {
|
|
30
|
+
run(emit, () => {
|
|
31
|
+
const status = requireInboxService(service).status(recipient);
|
|
32
|
+
if (options.json) {
|
|
33
|
+
emit.config({ format: "json" });
|
|
34
|
+
emit.data(status);
|
|
35
|
+
}
|
|
36
|
+
else
|
|
37
|
+
emit.rows([status]);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function requireInboxService(service) {
|
|
42
|
+
if (!service)
|
|
43
|
+
throw new Error("coordination inbox is not configured by this host");
|
|
44
|
+
return service;
|
|
45
|
+
}
|
|
46
|
+
function run(emit, action) {
|
|
47
|
+
try {
|
|
48
|
+
action();
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
emit.error({
|
|
52
|
+
code: "inbox_failed",
|
|
53
|
+
message: error instanceof Error ? error.message : String(error),
|
|
54
|
+
});
|
|
55
|
+
emit.setExitCode(1);
|
|
56
|
+
}
|
|
57
|
+
}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -22,12 +22,11 @@ import { type AdapterId, type AdapterSpec } from "../core/hooks/adapter/events.j
|
|
|
22
22
|
import { type SettingsFile } from "../core/hooks/adapter/wiring.js";
|
|
23
23
|
export declare function registerInitCommand(program: Command, emit: EmitContext, binName?: string): void;
|
|
24
24
|
/**
|
|
25
|
-
* Runtime
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* hooks fail closed against stale approvals.
|
|
25
|
+
* Runtime contracts bound into an immutable V3 epoch. `init` replaces the
|
|
26
|
+
* epoch only when the schema or adapter capability contract changed. A new
|
|
27
|
+
* Harnery build alone keeps the current epoch and its live session generations.
|
|
29
28
|
*/
|
|
30
|
-
export declare function eventLedgerV3RuntimeIssues(control: EventV3ControlState
|
|
29
|
+
export declare function eventLedgerV3RuntimeIssues(control: EventV3ControlState): string[];
|
|
31
30
|
export declare function codexHookReviewAction(adapter: AdapterId): string | null;
|
|
32
31
|
/**
|
|
33
32
|
* Merge agent-hook entries into a adapter settings object in place, idempotently.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAInD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAInD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAOxE,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EASL,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAC;AAqBzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAgT/F;AAiBD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAiBjF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAOvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,SAAS,GACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA8CvE;AAwFD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAa1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAmDhG;AASD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAkCxF"}
|
package/dist/commands/init.js
CHANGED
|
@@ -25,9 +25,9 @@ import { canonicalJsonV3 } from "../core/events/v3/canonical.js";
|
|
|
25
25
|
import { ADAPTER_CAPABILITY_PROFILES_V3 } from "../core/events/v3/capabilities.js";
|
|
26
26
|
import { EVENT_V3_SCHEMA_DIGEST } from "../core/events/v3/generated.js";
|
|
27
27
|
import { initializeEventLedgerV3, readEventV3ControlState, sha256V3, } from "../core/events/v3/index.js";
|
|
28
|
-
import { liveEventV3BuildId } from "../core/events/v3/live-routing.js";
|
|
29
28
|
import { ADAPTER_SPECS } from "../core/hooks/adapter/events.js";
|
|
30
29
|
import { agentHookPathForProject, commandWiresSubcommand, diffWiring, groupCommands, hookCommand, isAgentHookCommand, makeEntry, } from "../core/hooks/adapter/wiring.js";
|
|
30
|
+
import { applyIndexerExclusions } from "../lib/indexer-exclusions.js";
|
|
31
31
|
import { applyInstructions, checkInstructions, } from "../lib/instructions/apply.js";
|
|
32
32
|
import { applyGitHooks, checkGitHooks } from "../lib/instructions/git-hooks.js";
|
|
33
33
|
import { HostAddendumError } from "../lib/instructions/host-addendum.js";
|
|
@@ -42,7 +42,8 @@ export function registerInitCommand(program, emit, binName) {
|
|
|
42
42
|
"report drift without writing (exit 0 fresh / 2 drift / 1 error).")
|
|
43
43
|
.option("--adapter <id>", "claude-code | cursor | codex", "claude-code")
|
|
44
44
|
.option("--dry-run", "Show what would change without writing")
|
|
45
|
-
.option("--check", "Report
|
|
45
|
+
.option("--check", "Report managed-surface drift without writing; exit 0/2/1")
|
|
46
|
+
.option("--instructions-only", "Refresh only AGENTS.md regions and Harnery-owned skills; leave runtime wiring untouched")
|
|
46
47
|
.option("--project-root <path>", "Project root (default: git toplevel, else cwd)")
|
|
47
48
|
.action((opts) => {
|
|
48
49
|
const adapter = opts.adapter;
|
|
@@ -59,6 +60,41 @@ export function registerInitCommand(program, emit, binName) {
|
|
|
59
60
|
// init inside any checkout). Without this, re-running init from a host
|
|
60
61
|
// CLI re-stamps the host's name into committed agent-facing surfaces.
|
|
61
62
|
const bin = pinnedBinName(projectRoot) ?? (binName?.trim() ? binName : DEFAULT_BIN_NAME);
|
|
63
|
+
// ── --instructions-only: committed guidance, never runtime wiring ────
|
|
64
|
+
// Some hosts consume Harnery's managed instruction bundle without
|
|
65
|
+
// enabling local adapter hooks or an event ledger. Keep this branch
|
|
66
|
+
// before every coord-root, config, ledger, adapter-settings, and Git-hook
|
|
67
|
+
// operation so its no-runtime-writes contract is structural.
|
|
68
|
+
if (opts.instructionsOnly === true) {
|
|
69
|
+
if (opts.check === true) {
|
|
70
|
+
const { status, issues } = checkInstructions(projectRoot, { binName: bin, adapter });
|
|
71
|
+
const head = status === "fresh"
|
|
72
|
+
? `${bin} init --instructions-only --check: instructions + skills are current`
|
|
73
|
+
: status === "drift"
|
|
74
|
+
? `${bin} init --instructions-only --check: drift found (re-run \`init --instructions-only\` to refresh)`
|
|
75
|
+
: `${bin} init --instructions-only --check: error`;
|
|
76
|
+
const lines = issues.length
|
|
77
|
+
? `\n${issues.map((issue) => ` ✗ ${issue}`).join("\n")}`
|
|
78
|
+
: "";
|
|
79
|
+
emit.text(`${head}${lines}`);
|
|
80
|
+
emit.setExitCode(status === "fresh" ? 0 : status === "drift" ? 2 : 1);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const dryRun = opts.dryRun === true;
|
|
84
|
+
let applied;
|
|
85
|
+
try {
|
|
86
|
+
applied = applyInstructions(projectRoot, { binName: bin, adapter, dryRun });
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
if (!(err instanceof HostAddendumError))
|
|
90
|
+
throw err;
|
|
91
|
+
emit.text(`${bin} init --instructions-only: ${err.message}`);
|
|
92
|
+
emit.setExitCode(1);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
emit.text(renderInstructionsOnly(projectRoot, bin, dryRun, applied.actions, applied.warnings));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
62
98
|
// ── --check: read-only drift report on every init-managed surface ─────
|
|
63
99
|
if (opts.check === true) {
|
|
64
100
|
const { status, issues } = checkInstructions(projectRoot, { binName: bin, adapter });
|
|
@@ -115,7 +151,7 @@ export function registerInitCommand(program, emit, binName) {
|
|
|
115
151
|
const ledger = readEventV3ControlState(projectRoot);
|
|
116
152
|
if (ledger.state !== "active")
|
|
117
153
|
issues.push(`event ledger V3 is ${ledger.state}`);
|
|
118
|
-
const ledgerRuntimeIssues = eventLedgerV3RuntimeIssues(ledger
|
|
154
|
+
const ledgerRuntimeIssues = eventLedgerV3RuntimeIssues(ledger);
|
|
119
155
|
if (ledgerRuntimeIssues.length > 0) {
|
|
120
156
|
issues.push(`event ledger V3 is runtime-stale (${ledgerRuntimeIssues.join(", ")})`);
|
|
121
157
|
}
|
|
@@ -153,6 +189,12 @@ export function registerInitCommand(program, emit, binName) {
|
|
|
153
189
|
writeFileSync(resolve(coordDir, ".gitignore"), "*\n!.gitignore\n");
|
|
154
190
|
actions.push("+ created .harnery/ (+ .harnery/.gitignore)");
|
|
155
191
|
}
|
|
192
|
+
// ── 1a′. editor indexer exclusions ─────────────────────────────────────
|
|
193
|
+
// .harnery/.gitignore keeps git-aware tools out, but Cursor's codebase
|
|
194
|
+
// indexer and the VS Code/Cursor file watcher do not respect gitignore.
|
|
195
|
+
// A busy coord root holds enough ledger events and artifacts to become a
|
|
196
|
+
// boot-time indexing storm, so exclude it from both here.
|
|
197
|
+
actions.push(...applyIndexerExclusions(projectRoot, dryRun));
|
|
156
198
|
// ── 1b. stamp the host bin name ────────────────────────────────────────
|
|
157
199
|
// The coord binaries (agent-hook/agent-coord) and web UI run as harnery
|
|
158
200
|
// itself, so they can't see a consumer CLI's name; they read it back from
|
|
@@ -179,7 +221,7 @@ export function registerInitCommand(program, emit, binName) {
|
|
|
179
221
|
// ── 1d. universal V3 event ledger ────────────────────────────────────
|
|
180
222
|
if (dryRun) {
|
|
181
223
|
const ledger = readEventV3ControlState(projectRoot);
|
|
182
|
-
const runtimeIssues = eventLedgerV3RuntimeIssues(ledger
|
|
224
|
+
const runtimeIssues = eventLedgerV3RuntimeIssues(ledger);
|
|
183
225
|
actions.push(ledger.state === "active" && runtimeIssues.length === 0
|
|
184
226
|
? "· event ledger V3 is active"
|
|
185
227
|
: ledger.state === "active"
|
|
@@ -189,7 +231,7 @@ export function registerInitCommand(program, emit, binName) {
|
|
|
189
231
|
else {
|
|
190
232
|
const harneryBuild = gitBuild(HARNERY_ROOT);
|
|
191
233
|
const ledgerBefore = readEventV3ControlState(projectRoot);
|
|
192
|
-
const runtimeIssues = eventLedgerV3RuntimeIssues(ledgerBefore
|
|
234
|
+
const runtimeIssues = eventLedgerV3RuntimeIssues(ledgerBefore);
|
|
193
235
|
const initialized = initializeEventLedgerV3({
|
|
194
236
|
coordRoot: projectRoot,
|
|
195
237
|
harneryBuild,
|
|
@@ -278,12 +320,11 @@ function digestConfig(path) {
|
|
|
278
320
|
return sha256V3(existsSync(path) ? readFileSync(path) : Buffer.from("{}\n"));
|
|
279
321
|
}
|
|
280
322
|
/**
|
|
281
|
-
* Runtime
|
|
282
|
-
*
|
|
283
|
-
*
|
|
284
|
-
* hooks fail closed against stale approvals.
|
|
323
|
+
* Runtime contracts bound into an immutable V3 epoch. `init` replaces the
|
|
324
|
+
* epoch only when the schema or adapter capability contract changed. A new
|
|
325
|
+
* Harnery build alone keeps the current epoch and its live session generations.
|
|
285
326
|
*/
|
|
286
|
-
export function eventLedgerV3RuntimeIssues(control
|
|
327
|
+
export function eventLedgerV3RuntimeIssues(control) {
|
|
287
328
|
if (control.state !== "active")
|
|
288
329
|
return [];
|
|
289
330
|
const issues = [];
|
|
@@ -292,9 +333,6 @@ export function eventLedgerV3RuntimeIssues(control, harneryBuild) {
|
|
|
292
333
|
issues.push("schema digest");
|
|
293
334
|
if (profile.contract_source_digest !== EVENT_V3_SCHEMA_DIGEST)
|
|
294
335
|
issues.push("contract digest");
|
|
295
|
-
if (!profile.producer_build_ids.includes(liveEventV3BuildId(harneryBuild))) {
|
|
296
|
-
issues.push("producer build");
|
|
297
|
-
}
|
|
298
336
|
const expectedCapabilities = Object.values(ADAPTER_CAPABILITY_PROFILES_V3).map((value) => sha256V3(canonicalJsonV3(value)));
|
|
299
337
|
if (expectedCapabilities.some((digest) => !profile.adapter_capability_profile_digests.includes(digest))) {
|
|
300
338
|
issues.push("adapter capabilities");
|
|
@@ -623,6 +661,18 @@ function render(projectRoot, dryRun, actions, warnings = []) {
|
|
|
623
661
|
: "\nDone. Start a session and check `harn agents whoami`.";
|
|
624
662
|
return `${head}\n root: ${projectRoot}\n${actions.map((a) => ` ${a}`).join("\n")}${warnBlock}${tail}`;
|
|
625
663
|
}
|
|
664
|
+
function renderInstructionsOnly(projectRoot, binName, dryRun, actions, warnings = []) {
|
|
665
|
+
const head = dryRun
|
|
666
|
+
? `${binName} init --instructions-only (dry run): no changes written`
|
|
667
|
+
: `${binName} init --instructions-only`;
|
|
668
|
+
const warnBlock = warnings.length
|
|
669
|
+
? `\n${warnings.map((warning) => ` ! ${warning}`).join("\n")}`
|
|
670
|
+
: "";
|
|
671
|
+
const tail = dryRun
|
|
672
|
+
? "\nRe-run without --dry-run to apply."
|
|
673
|
+
: "\nDone. Adapter hooks, managed Git hooks, configuration, and event ledger state were left unchanged.";
|
|
674
|
+
return `${head}\n root: ${projectRoot}\n${actions.map((action) => ` ${action}`).join("\n")}${warnBlock}${tail}`;
|
|
675
|
+
}
|
|
626
676
|
function gitTopLevel() {
|
|
627
677
|
const r = spawnSync("git", ["rev-parse", "--show-toplevel"], { encoding: "utf8" });
|
|
628
678
|
const out = r.status === 0 ? r.stdout.trim() : "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger-v3.d.ts","sourceRoot":"","sources":["../../src/commands/ledger-v3.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ledger-v3.d.ts","sourceRoot":"","sources":["../../src/commands/ledger-v3.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAmC1E,2DAA2D;AAC3D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,IAAI,CAsWN"}
|