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
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { canonicalJsonV3, sha256V3 } from "../events/v3/canonical.js";
|
|
2
|
+
import { canonicalJsonV3, normalizeNativeIdV3, sha256V3 } from "../events/v3/canonical.js";
|
|
3
|
+
import { readEventV3ControlState } from "../events/v3/control.js";
|
|
3
4
|
import { readCoordinationViewV3, requireAuthoritySafeCoordinationViewV3, } from "../events/v3/coordination-view.js";
|
|
5
|
+
import { fingerprintContextV3 } from "../events/v3/fingerprint-keys.js";
|
|
4
6
|
import { LIVE_HOOK_V3_PRODUCER_ID, liveInstanceIdV3, livePlatformV3, resolveLiveEventLedgerRouteV3, } from "../events/v3/live-routing.js";
|
|
5
7
|
import { recordCoordinationAuthorityV3, } from "../events/v3/producers/coordination-recorder.js";
|
|
6
|
-
import { readTerminalHookProducerStateV3, recordHookSignalV3, } from "../events/v3/producers/recorder.js";
|
|
8
|
+
import { listHookProducerStateRecordsV3, readHookProducerStateV3, readTerminalHookProducerStateV3, recordHookSignalV3, } from "../events/v3/producers/recorder.js";
|
|
7
9
|
import { canonicalClaimPath } from "./claim-path.js";
|
|
8
10
|
import { acquireClaim, readHeartbeat, releaseClaim, setIdentityCache, setLifecycleCache, setTask, } from "./state/heartbeat-writer.js";
|
|
9
|
-
import {
|
|
11
|
+
import { liveCoordinationAdapterV3, readLiveCoordinationRow, } from "./state/live-coordination-view.js";
|
|
12
|
+
import { ensureLiveCoordinationHeartbeat } from "./state/live-coordination-writer.js";
|
|
10
13
|
import { recordNameAssumption } from "./state/names.js";
|
|
11
14
|
export const LIVE_COORDINATION_V3_PRODUCER_ID = "prd_agent-coord";
|
|
12
15
|
export class LiveCoordinationAuthorityV3Error extends Error {
|
|
@@ -17,6 +20,237 @@ export class LiveCoordinationAuthorityV3Error extends Error {
|
|
|
17
20
|
this.name = "LiveCoordinationAuthorityV3Error";
|
|
18
21
|
}
|
|
19
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Establish the missing generation authority for one adapter-native session,
|
|
25
|
+
* then reconstruct its disposable heartbeat cache.
|
|
26
|
+
*
|
|
27
|
+
* This is intentionally narrower than mid-flight hook onboarding. The caller
|
|
28
|
+
* must supply an already validated native session, adapter, and current
|
|
29
|
+
* instance identity. Existing authority is reused only when all three bind to
|
|
30
|
+
* the same non-terminal producer generation. A terminal generation, an
|
|
31
|
+
* adapter/session collision, or any disagreement between private producer
|
|
32
|
+
* control and the public projection fails closed. No turn is synthesized.
|
|
33
|
+
*/
|
|
34
|
+
export function bootstrapLiveCoordinationAuthorityV3(input) {
|
|
35
|
+
if (!/^[a-zA-Z0-9._-]{1,128}$/.test(input.owner)) {
|
|
36
|
+
throw new LiveCoordinationAuthorityV3Error("invalid_instance_identity");
|
|
37
|
+
}
|
|
38
|
+
if (input.nativeSessionId.length === 0 ||
|
|
39
|
+
input.nativeSessionId.length > 512 ||
|
|
40
|
+
input.nativeSessionId.includes("\0")) {
|
|
41
|
+
throw new LiveCoordinationAuthorityV3Error("invalid_native_session_identity");
|
|
42
|
+
}
|
|
43
|
+
const route = resolveLiveEventLedgerRouteV3(input.coordRoot);
|
|
44
|
+
if (route.state === "blocked")
|
|
45
|
+
throw new LiveCoordinationAuthorityV3Error(route.reason);
|
|
46
|
+
const control = readEventV3ControlState(input.coordRoot);
|
|
47
|
+
if (control.state !== route.mode) {
|
|
48
|
+
throw new LiveCoordinationAuthorityV3Error("control_state_mismatch");
|
|
49
|
+
}
|
|
50
|
+
const instanceId = liveInstanceIdV3(input.owner);
|
|
51
|
+
const rootId = control.genesis.event.scope.root_id;
|
|
52
|
+
const context = fingerprintContextV3(input.coordRoot, rootId, undefined, control.genesis.profile.privacy_key_epoch);
|
|
53
|
+
const sessionId = `sid_${normalizeNativeIdV3(context, `${input.adapter}.session`, input.nativeSessionId).slice(4)}`;
|
|
54
|
+
const view = readAuthoritySafeViewForBootstrap(input.coordRoot);
|
|
55
|
+
const existing = view.instances[instanceId];
|
|
56
|
+
const sessionStates = readSessionProducerStatesForBootstrap(input.coordRoot, input.nativeSessionId);
|
|
57
|
+
const instanceStates = readInstanceProducerStatesForBootstrap(input.coordRoot, instanceId);
|
|
58
|
+
const crossAdapter = sessionStates.find((state) => state.adapter !== input.adapter);
|
|
59
|
+
if (crossAdapter) {
|
|
60
|
+
throw new LiveCoordinationAuthorityV3Error("cross_adapter_identity");
|
|
61
|
+
}
|
|
62
|
+
const crossInstance = sessionStates.find((state) => state.instance_id !== instanceId);
|
|
63
|
+
if (crossInstance) {
|
|
64
|
+
throw new LiveCoordinationAuthorityV3Error("cross_instance_identity");
|
|
65
|
+
}
|
|
66
|
+
const direct = sessionStates.find((state) => state.adapter === input.adapter);
|
|
67
|
+
if (direct?.terminal ||
|
|
68
|
+
(!existing && terminalGenerationForSession(view, instanceId, sessionId))) {
|
|
69
|
+
throw new LiveCoordinationAuthorityV3Error("terminal_generation_forbidden");
|
|
70
|
+
}
|
|
71
|
+
const liveInstanceStates = instanceStates.filter((state) => !state.terminal);
|
|
72
|
+
if (liveInstanceStates.length > 1 || sessionStates.length > 1) {
|
|
73
|
+
throw new LiveCoordinationAuthorityV3Error("generation_ambiguous");
|
|
74
|
+
}
|
|
75
|
+
if (existing) {
|
|
76
|
+
const observedAdapter = existing.runtime_attestation.adapter;
|
|
77
|
+
if (observedAdapter.state !== "observed" || observedAdapter.value.id !== input.adapter) {
|
|
78
|
+
throw new LiveCoordinationAuthorityV3Error("cross_adapter_identity");
|
|
79
|
+
}
|
|
80
|
+
if (existing.session_id !== sessionId) {
|
|
81
|
+
throw new LiveCoordinationAuthorityV3Error("cross_session_identity");
|
|
82
|
+
}
|
|
83
|
+
if (!direct ||
|
|
84
|
+
direct.terminal ||
|
|
85
|
+
direct.generation_id !== existing.generation_id ||
|
|
86
|
+
liveInstanceStates.length !== 1 ||
|
|
87
|
+
liveInstanceStates[0]?.generation_id !== existing.generation_id) {
|
|
88
|
+
throw new LiveCoordinationAuthorityV3Error("generation_control_mismatch");
|
|
89
|
+
}
|
|
90
|
+
return materializeBootstrappedAuthority(input, existing.generation_id, "reused");
|
|
91
|
+
}
|
|
92
|
+
if (direct || liveInstanceStates.length > 0) {
|
|
93
|
+
throw new LiveCoordinationAuthorityV3Error("generation_control_mismatch");
|
|
94
|
+
}
|
|
95
|
+
const started = recordHookSignalV3({
|
|
96
|
+
coordRoot: input.coordRoot,
|
|
97
|
+
mode: route.mode,
|
|
98
|
+
signal: "session-start",
|
|
99
|
+
payload: { raw: {}, session_id: input.nativeSessionId },
|
|
100
|
+
adapter: input.adapter,
|
|
101
|
+
instance_id: instanceId,
|
|
102
|
+
producer_id: LIVE_HOOK_V3_PRODUCER_ID,
|
|
103
|
+
build_id: route.build_id,
|
|
104
|
+
platform: livePlatformV3(),
|
|
105
|
+
session_start_derivation: "validated_current_session_heal",
|
|
106
|
+
});
|
|
107
|
+
if (started.state !== "recorded" && started.state !== "already_started") {
|
|
108
|
+
const reason = "reason" in started ? `:${started.reason}` : "";
|
|
109
|
+
throw new LiveCoordinationAuthorityV3Error(`generation_bootstrap_failed:${started.state}${reason}`);
|
|
110
|
+
}
|
|
111
|
+
const after = readAuthoritySafeViewForBootstrap(input.coordRoot).instances[instanceId];
|
|
112
|
+
const producer = readSessionProducerStatesForBootstrap(input.coordRoot, input.nativeSessionId).filter((state) => state.adapter === input.adapter && state.instance_id === instanceId);
|
|
113
|
+
if (!after ||
|
|
114
|
+
after.session_id !== sessionId ||
|
|
115
|
+
producer.length !== 1 ||
|
|
116
|
+
producer[0]?.terminal ||
|
|
117
|
+
producer[0]?.generation_id !== after.generation_id) {
|
|
118
|
+
throw new LiveCoordinationAuthorityV3Error("generation_control_mismatch");
|
|
119
|
+
}
|
|
120
|
+
return materializeBootstrappedAuthority(input, after.generation_id, started.state === "recorded" ? "created" : "reused");
|
|
121
|
+
}
|
|
122
|
+
function readAuthoritySafeViewForBootstrap(coordRoot) {
|
|
123
|
+
try {
|
|
124
|
+
return requireAuthoritySafeCoordinationViewV3(readCoordinationViewV3(coordRoot));
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
if (error instanceof LiveCoordinationAuthorityV3Error)
|
|
128
|
+
throw error;
|
|
129
|
+
throw new LiveCoordinationAuthorityV3Error("coordination_view_unsafe");
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function readSessionProducerStatesForBootstrap(coordRoot, nativeSessionId) {
|
|
133
|
+
try {
|
|
134
|
+
return ["claude-code", "codex", "cursor"]
|
|
135
|
+
.map((adapter) => readHookProducerStateV3(coordRoot, adapter, nativeSessionId))
|
|
136
|
+
.filter((state) => state !== undefined);
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
throw new LiveCoordinationAuthorityV3Error("producer_state_unsafe");
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function readInstanceProducerStatesForBootstrap(coordRoot, instanceId) {
|
|
143
|
+
try {
|
|
144
|
+
return listHookProducerStateRecordsV3(coordRoot, { includeTerminal: true })
|
|
145
|
+
.map((record) => record.state)
|
|
146
|
+
.filter((state) => state.instance_id === instanceId);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
throw new LiveCoordinationAuthorityV3Error("producer_state_unsafe");
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function terminalGenerationForSession(view, instanceId, sessionId) {
|
|
153
|
+
return Object.values(view.terminal_generations).some((generation) => generation.instance_id === instanceId && generation.session_id === sessionId);
|
|
154
|
+
}
|
|
155
|
+
function materializeBootstrappedAuthority(input, generationId, state) {
|
|
156
|
+
const heartbeat = ensureLiveCoordinationHeartbeat(input.coordRoot, input.owner, input.nativeSessionId, input.adapter);
|
|
157
|
+
if (!heartbeat || heartbeat.v3_generation_id !== generationId) {
|
|
158
|
+
throw new LiveCoordinationAuthorityV3Error("generation_materialization_failed");
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
state,
|
|
162
|
+
adapter: input.adapter,
|
|
163
|
+
generation_id: generationId,
|
|
164
|
+
heartbeat,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Reapply private, generation-bound coordination state after a runtime epoch
|
|
169
|
+
* replaces the canonical ledger. The old heartbeat is only accepted for the
|
|
170
|
+
* same native session and a different V3 generation. Its task prose and
|
|
171
|
+
* lifecycle reason remain in the disposable cache; canonical events retain
|
|
172
|
+
* only the privacy-safe authority signals.
|
|
173
|
+
*/
|
|
174
|
+
export function restoreLiveCoordinationStateAfterEpochV3(input) {
|
|
175
|
+
const unchanged = {
|
|
176
|
+
state: "unchanged",
|
|
177
|
+
task: false,
|
|
178
|
+
claims: 0,
|
|
179
|
+
lifecycle: false,
|
|
180
|
+
};
|
|
181
|
+
const prior = input.prior;
|
|
182
|
+
if (!prior || prior.instance_id !== input.owner)
|
|
183
|
+
return unchanged;
|
|
184
|
+
if (prior.session_id !== input.nativeSessionId &&
|
|
185
|
+
prior.native_session_id !== input.nativeSessionId) {
|
|
186
|
+
return unchanged;
|
|
187
|
+
}
|
|
188
|
+
// The recorder just committed this hook under the named generation. When
|
|
189
|
+
// it is the cache's generation, no epoch replacement occurred and the
|
|
190
|
+
// expensive complete coordination projection cannot change the answer.
|
|
191
|
+
if (input.currentGenerationId && prior.v3_generation_id === input.currentGenerationId) {
|
|
192
|
+
return unchanged;
|
|
193
|
+
}
|
|
194
|
+
const view = requireAuthoritySafeCoordinationViewV3(readCoordinationViewV3(input.coordRoot));
|
|
195
|
+
const priorGenerationStillCurrent = [
|
|
196
|
+
...Object.values(view.instances),
|
|
197
|
+
...Object.values(view.terminal_generations),
|
|
198
|
+
].some((generation) => generation.generation_id === prior.v3_generation_id);
|
|
199
|
+
if (priorGenerationStillCurrent)
|
|
200
|
+
return unchanged;
|
|
201
|
+
const current = readLiveCoordinationRow(input.coordRoot, input.owner);
|
|
202
|
+
if (!current || !prior.v3_generation_id || current.v3_generation_id === prior.v3_generation_id) {
|
|
203
|
+
return unchanged;
|
|
204
|
+
}
|
|
205
|
+
let task = false;
|
|
206
|
+
let claims = 0;
|
|
207
|
+
let lifecycle = false;
|
|
208
|
+
if (typeof prior.task === "string" && prior.task.length > 0 && current.task !== prior.task) {
|
|
209
|
+
recordLiveTaskChangeV3({
|
|
210
|
+
coordRoot: input.coordRoot,
|
|
211
|
+
owner: input.owner,
|
|
212
|
+
nativeSessionId: input.nativeSessionId,
|
|
213
|
+
adapter: input.adapter,
|
|
214
|
+
task: prior.task,
|
|
215
|
+
});
|
|
216
|
+
task = true;
|
|
217
|
+
}
|
|
218
|
+
const currentClaims = new Set((current.files_touched ?? []).map((path) => canonicalClaimPath(input.coordRoot, path)));
|
|
219
|
+
for (const path of [...new Set(prior.files_touched ?? [])].sort()) {
|
|
220
|
+
const canonical = canonicalClaimPath(input.coordRoot, path);
|
|
221
|
+
if (currentClaims.has(canonical))
|
|
222
|
+
continue;
|
|
223
|
+
recordLiveClaimChangeV3({
|
|
224
|
+
coordRoot: input.coordRoot,
|
|
225
|
+
owner: input.owner,
|
|
226
|
+
nativeSessionId: input.nativeSessionId,
|
|
227
|
+
adapter: input.adapter,
|
|
228
|
+
operation: "acquired",
|
|
229
|
+
path: canonical,
|
|
230
|
+
});
|
|
231
|
+
currentClaims.add(canonical);
|
|
232
|
+
claims += 1;
|
|
233
|
+
}
|
|
234
|
+
const priorLifecycle = prior.task_state ?? "active";
|
|
235
|
+
if (priorLifecycle !== "active" &&
|
|
236
|
+
(current.task_state !== priorLifecycle || current.task_state_reason !== prior.task_state_reason)) {
|
|
237
|
+
recordLiveLifecycleChangeV3({
|
|
238
|
+
coordRoot: input.coordRoot,
|
|
239
|
+
owner: input.owner,
|
|
240
|
+
nativeSessionId: input.nativeSessionId,
|
|
241
|
+
adapter: input.adapter,
|
|
242
|
+
state: priorLifecycle,
|
|
243
|
+
...(prior.task_state_reason ? { reason: prior.task_state_reason } : {}),
|
|
244
|
+
...(prior.suggested_session_name
|
|
245
|
+
? { suggestedSessionName: prior.suggested_session_name }
|
|
246
|
+
: {}),
|
|
247
|
+
});
|
|
248
|
+
lifecycle = true;
|
|
249
|
+
}
|
|
250
|
+
return task || claims > 0 || lifecycle
|
|
251
|
+
? { state: "restored", task, claims, lifecycle }
|
|
252
|
+
: unchanged;
|
|
253
|
+
}
|
|
20
254
|
/**
|
|
21
255
|
* Open a fresh derived generation for a human-facing session that is executing
|
|
22
256
|
* again after an authoritative terminal. The terminal generation is never
|
|
@@ -102,7 +336,7 @@ export function recordLiveLifecycleChangeV3(input) {
|
|
|
102
336
|
task_state_reason: input.state === "active" ? undefined : input.reason,
|
|
103
337
|
...(input.suggestedSessionName ? { suggested_session_name: input.suggestedSessionName } : {}),
|
|
104
338
|
};
|
|
105
|
-
if (
|
|
339
|
+
if (coordinationAuthorityStateDigestV3(before) === coordinationAuthorityStateDigestV3(desired))
|
|
106
340
|
return { state: "unchanged" };
|
|
107
341
|
return recordLiveAuthority(input, "lifecycle-changed", {
|
|
108
342
|
native_observation_id: input.observationId ?? `lifecycle-${randomUUID()}`,
|
|
@@ -128,7 +362,7 @@ export function recordLiveClaimChangeV3(input) {
|
|
|
128
362
|
].sort()
|
|
129
363
|
: (before.files_touched ?? []).filter((path) => canonicalClaimPath(input.coordRoot, path) !== canonical);
|
|
130
364
|
const desired = { ...before, files_touched: desiredFiles };
|
|
131
|
-
if (
|
|
365
|
+
if (coordinationAuthorityStateDigestV3(before) === coordinationAuthorityStateDigestV3(desired))
|
|
132
366
|
return { state: "unchanged" };
|
|
133
367
|
return recordLiveAuthority(input, "claim-changed", {
|
|
134
368
|
native_observation_id: input.observationId ?? `claim-${randomUUID()}`,
|
|
@@ -148,7 +382,7 @@ export function recordLiveIdentityChangeV3(input) {
|
|
|
148
382
|
const subject = input.subject ?? input.owner;
|
|
149
383
|
const before = requireHeartbeat(input, subject);
|
|
150
384
|
const desired = { ...before, name: input.name, agent_id: input.identityId };
|
|
151
|
-
if (
|
|
385
|
+
if (coordinationAuthorityStateDigestV3(before) === coordinationAuthorityStateDigestV3(desired))
|
|
152
386
|
return { state: "unchanged" };
|
|
153
387
|
return recordLiveAuthority(input, "identity-attested", {
|
|
154
388
|
native_observation_id: input.observationId ?? `identity-${randomUUID()}`,
|
|
@@ -181,15 +415,15 @@ function recordLiveAuthority(input, signal, observation, expected, desired, appl
|
|
|
181
415
|
producer_id: LIVE_COORDINATION_V3_PRODUCER_ID,
|
|
182
416
|
build_id: route.build_id,
|
|
183
417
|
platform: livePlatformV3(),
|
|
184
|
-
expected_prior_state_digest:
|
|
185
|
-
desired_state_digest:
|
|
418
|
+
expected_prior_state_digest: coordinationAuthorityStateDigestV3(expected),
|
|
419
|
+
desired_state_digest: coordinationAuthorityStateDigestV3(desired),
|
|
186
420
|
reconciler: {
|
|
187
421
|
readStateDigest: () => {
|
|
188
422
|
const heartbeat = readHeartbeat(input.coordRoot, subject);
|
|
189
423
|
if (!heartbeat || heartbeat.v3_generation_id !== expected.v3_generation_id) {
|
|
190
424
|
throw new LiveCoordinationAuthorityV3Error(`heartbeat_generation_mismatch:${subject}`);
|
|
191
425
|
}
|
|
192
|
-
return
|
|
426
|
+
return coordinationAuthorityStateDigestV3(heartbeat);
|
|
193
427
|
},
|
|
194
428
|
apply: (_mutation) => apply(),
|
|
195
429
|
},
|
|
@@ -217,7 +451,7 @@ function requireHeartbeat(input, owner) {
|
|
|
217
451
|
throw new LiveCoordinationAuthorityV3Error(`heartbeat_missing:${owner}`);
|
|
218
452
|
return heartbeat;
|
|
219
453
|
}
|
|
220
|
-
function
|
|
454
|
+
export function coordinationAuthorityStateDigestV3(heartbeat) {
|
|
221
455
|
return sha256V3(canonicalJsonV3({
|
|
222
456
|
instance_id: heartbeat.v3_instance_id ?? heartbeat.instance_id,
|
|
223
457
|
generation_id: heartbeat.v3_generation_id ?? null,
|
|
@@ -73,7 +73,12 @@ function recordObservation(input, eventType, payload) {
|
|
|
73
73
|
monotonic_ns: process.hrtime.bigint().toString(),
|
|
74
74
|
};
|
|
75
75
|
const event = buildEventV3(eventType, { ...common, payload });
|
|
76
|
-
writeEventV3(input.coordRoot, event
|
|
76
|
+
const durability = writeEventV3(input.coordRoot, event, {
|
|
77
|
+
expectedGenesisId: control.genesis.event.payload.genesis_id,
|
|
78
|
+
});
|
|
79
|
+
if (durability.state === "epoch_replaced") {
|
|
80
|
+
throw new LiveCoordinationAuthorityV3Error("epoch_replaced");
|
|
81
|
+
}
|
|
77
82
|
return { state: "recorded", event };
|
|
78
83
|
}
|
|
79
84
|
function withAttestedAdapter(input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-observation-v3.d.ts","sourceRoot":"","sources":["../../../src/core/agents/live-observation-v3.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAQ7C,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAWtF,YAAY,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEtF,MAAM,WAAW,wCAAwC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,6BAA6B,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yCAAyC;IACxD,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,wCAAwC,GAC9C,yCAAyC,
|
|
1
|
+
{"version":3,"file":"live-observation-v3.d.ts","sourceRoot":"","sources":["../../../src/core/agents/live-observation-v3.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAQ7C,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAWtF,YAAY,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEtF,MAAM,WAAW,wCAAwC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,6BAA6B,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yCAAyC;IACxD,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,wCAAwC,GAC9C,yCAAyC,CA4J3C;AAkBD,MAAM,MAAM,sCAAsC,GAAG,OAAO,CAC1D,WAAW,EACX,6BAA6B,CAAC,YAAY,CAAC,CAC5C,CAAC"}
|
|
@@ -138,7 +138,12 @@ export function recordLiveCoordinationObservationV3(input) {
|
|
|
138
138
|
break;
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
writeEventV3(input.coordRoot, event
|
|
141
|
+
const durability = writeEventV3(input.coordRoot, event, {
|
|
142
|
+
expectedGenesisId: control.genesis.event.payload.genesis_id,
|
|
143
|
+
});
|
|
144
|
+
if (durability.state === "epoch_replaced") {
|
|
145
|
+
throw new LiveCoordinationAuthorityV3Error("epoch_replaced");
|
|
146
|
+
}
|
|
142
147
|
return { state: "recorded", event };
|
|
143
148
|
}
|
|
144
149
|
function safeToken(value) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* UserPromptSubmit UX renderer. Combines the peer-refresh dedup, the
|
|
3
3
|
* council-pending hash-dedup, the cross-adapter first-session naming nudge,
|
|
4
|
-
* the Cursor/Codex set-task staleness nudge,
|
|
5
|
-
* reminder.
|
|
4
|
+
* the Cursor/Codex set-task staleness nudge, a host-configured prompt reminder,
|
|
5
|
+
* and the Codex status-footer reminder.
|
|
6
6
|
* agent-hook's turn.started post-emit handler calls this
|
|
7
7
|
* and forwards the result as the adapter-shaped additionalContext payload.
|
|
8
8
|
*
|
|
@@ -18,7 +18,10 @@
|
|
|
18
18
|
* Cursor/Codex additionally get the existing unset/stale-task reminder
|
|
19
19
|
* because their Stop hooks do not enforce task declarations as reliably
|
|
20
20
|
* as Claude Code's.
|
|
21
|
-
* 4.
|
|
21
|
+
* 4. Host prompt reminder: a project-owned, non-deduplicated line for
|
|
22
|
+
* adapters whose prompt hook can inject context and which lack a native
|
|
23
|
+
* reminder mechanism. Hook routing decides which adapters enable it.
|
|
24
|
+
* 5. Codex status footer: a non-deduplicated reminder to put the live status
|
|
22
25
|
* box after the substantive answer. Stop stays observe-only, so missing the
|
|
23
26
|
* footer can never trigger a replacement response.
|
|
24
27
|
*
|
|
@@ -40,6 +43,9 @@ export interface PromptContextOpts {
|
|
|
40
43
|
/** When true, run the unset/stale-task check after the first set-task.
|
|
41
44
|
* Cursor/Codex use this; Claude Code has Stop-hook transcript enforcement. */
|
|
42
45
|
taskNudge?: boolean;
|
|
46
|
+
/** When true, append the project-configured prompt reminder without hash
|
|
47
|
+
* deduplication. The caller enables this only on supported adapter routes. */
|
|
48
|
+
hostPromptReminder?: boolean;
|
|
43
49
|
/** When true, append the non-deduplicated Codex status-footer reminder.
|
|
44
50
|
* The caller enables this only for human-facing Codex sessions. */
|
|
45
51
|
statusFooterNudge?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-context.d.ts","sourceRoot":"","sources":["../../../../src/core/agents/render/prompt-context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompt-context.d.ts","sourceRoot":"","sources":["../../../../src/core/agents/render/prompt-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AA4CH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;8EAC0E;IAC1E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;kFAC8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;kFAC8E;IAC9E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;uEACmE;IACnE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;wBAIoB;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CA8DnE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* UserPromptSubmit UX renderer. Combines the peer-refresh dedup, the
|
|
3
3
|
* council-pending hash-dedup, the cross-adapter first-session naming nudge,
|
|
4
|
-
* the Cursor/Codex set-task staleness nudge,
|
|
5
|
-
* reminder.
|
|
4
|
+
* the Cursor/Codex set-task staleness nudge, a host-configured prompt reminder,
|
|
5
|
+
* and the Codex status-footer reminder.
|
|
6
6
|
* agent-hook's turn.started post-emit handler calls this
|
|
7
7
|
* and forwards the result as the adapter-shaped additionalContext payload.
|
|
8
8
|
*
|
|
@@ -18,7 +18,10 @@
|
|
|
18
18
|
* Cursor/Codex additionally get the existing unset/stale-task reminder
|
|
19
19
|
* because their Stop hooks do not enforce task declarations as reliably
|
|
20
20
|
* as Claude Code's.
|
|
21
|
-
* 4.
|
|
21
|
+
* 4. Host prompt reminder: a project-owned, non-deduplicated line for
|
|
22
|
+
* adapters whose prompt hook can inject context and which lack a native
|
|
23
|
+
* reminder mechanism. Hook routing decides which adapters enable it.
|
|
24
|
+
* 5. Codex status footer: a non-deduplicated reminder to put the live status
|
|
22
25
|
* box after the substantive answer. Stop stays observe-only, so missing the
|
|
23
26
|
* footer can never trigger a replacement response.
|
|
24
27
|
*
|
|
@@ -33,7 +36,7 @@ import { createHash } from "node:crypto";
|
|
|
33
36
|
import { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, writeFileSync, } from "node:fs";
|
|
34
37
|
import { join } from "node:path";
|
|
35
38
|
import { coordEnv } from "../../../lib/env.js";
|
|
36
|
-
import { endOfTurnStatusCommand, resolveBinName } from "../../config.js";
|
|
39
|
+
import { endOfTurnStatusCommand, hostPromptReminder, resolveBinName } from "../../config.js";
|
|
37
40
|
import { readRemoteMachines } from "../../presence/index.js";
|
|
38
41
|
import { sessionNameDisplayBlock, sessionNameDisplayPending } from "../session-name-display.js";
|
|
39
42
|
import { readLiveCoordinationRow, readLiveCoordinationRows, } from "../state/live-coordination-view.js";
|
|
@@ -47,7 +50,7 @@ import { formatPendingCouncils } from "./session-context.js";
|
|
|
47
50
|
* councils are pending, matching the bash behavior).
|
|
48
51
|
*/
|
|
49
52
|
export function renderPromptContext(opts) {
|
|
50
|
-
const { coordRoot, instanceId, sessionId, agentName, sessionNameNudge, taskNudge, statusFooterNudge, turnRitualNudge, } = opts;
|
|
53
|
+
const { coordRoot, instanceId, sessionId, agentName, sessionNameNudge, taskNudge, hostPromptReminder: promptReminderEnabled, statusFooterNudge, turnRitualNudge, } = opts;
|
|
51
54
|
const sections = [];
|
|
52
55
|
// 1. Peer table with hash dedup.
|
|
53
56
|
const peerTable = computePeerTableIfChanged(coordRoot, instanceId, sessionId);
|
|
@@ -70,7 +73,15 @@ export function renderPromptContext(opts) {
|
|
|
70
73
|
if (nudgeMsg)
|
|
71
74
|
sections.push(nudgeMsg);
|
|
72
75
|
}
|
|
73
|
-
// 4.
|
|
76
|
+
// 4. A supported adapter gets the host reminder on every prompt. The text is
|
|
77
|
+
// intentionally not hash-deduped or persisted into runtime state: freshness
|
|
78
|
+
// is the feature, and the project config remains its only durable copy.
|
|
79
|
+
if (promptReminderEnabled) {
|
|
80
|
+
const reminder = renderHostPromptReminder(coordRoot, instanceId);
|
|
81
|
+
if (reminder)
|
|
82
|
+
sections.push(reminder);
|
|
83
|
+
}
|
|
84
|
+
// 5. Codex gets this on every prompt. It is intentionally not hash-deduped:
|
|
74
85
|
// the reminder must be fresh in the model's context when it writes the reply.
|
|
75
86
|
// Missing it is harmless because Codex Stop enforcement remains observe-only.
|
|
76
87
|
if (statusFooterNudge) {
|
|
@@ -78,7 +89,7 @@ export function renderPromptContext(opts) {
|
|
|
78
89
|
if (statusMsg)
|
|
79
90
|
sections.push(statusMsg);
|
|
80
91
|
}
|
|
81
|
-
//
|
|
92
|
+
// 6. Adapters whose Stop hook ENFORCES the turn ritual get a fresh reminder
|
|
82
93
|
// on every prompt. Reminding before the reply is drafted is far cheaper than
|
|
83
94
|
// the bounce-and-retry the Stop hook otherwise forces: enforcement-only
|
|
84
95
|
// compliance was measured missing on a double-digit share of turns. Not
|
|
@@ -90,6 +101,12 @@ export function renderPromptContext(opts) {
|
|
|
90
101
|
}
|
|
91
102
|
return sections.join("\n\n");
|
|
92
103
|
}
|
|
104
|
+
function renderHostPromptReminder(coordRoot, selfInstanceId) {
|
|
105
|
+
const hb = readLiveCoordinationRow(coordRoot, selfInstanceId);
|
|
106
|
+
if (!hb || hb.kind === "subagent" || hb.kind === "transient" || hb.workflow_run_id)
|
|
107
|
+
return "";
|
|
108
|
+
return hostPromptReminder(coordRoot) ?? "";
|
|
109
|
+
}
|
|
93
110
|
function renderTurnRitualReminder(coordRoot, selfInstanceId, adapter) {
|
|
94
111
|
const hb = readLiveCoordinationRow(coordRoot, selfInstanceId);
|
|
95
112
|
if (!hb || hb.kind === "subagent" || hb.kind === "transient" || hb.workflow_run_id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-hook.d.ts","sourceRoot":"","sources":["../../../../src/core/agents/rules/stop-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAM3D,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAInE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa,CA6BvF;AAED,oFAAoF;AACpF,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,SAAS,OAAO,EAAE,GACzB,aAAa,
|
|
1
|
+
{"version":3,"file":"stop-hook.d.ts","sourceRoot":"","sources":["../../../../src/core/agents/rules/stop-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAM3D,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAInE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,aAAa,CA6BvF;AAED,oFAAoF;AACpF,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,SAAS,OAAO,EAAE,GACzB,aAAa,CAuIf"}
|