harnery 0.32.0 → 0.34.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/README.md +2 -0
- package/dist/commander.d.ts.map +1 -1
- package/dist/commander.js +7 -1
- package/dist/commands/adapter.js +2 -2
- package/dist/commands/agents.d.ts +144 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +1408 -565
- package/dist/commands/artifacts.d.ts.map +1 -1
- package/dist/commands/artifacts.js +7 -6
- package/dist/commands/backup.d.ts +1 -1
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +29 -16
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +234 -12
- package/dist/commands/checkpoint.d.ts.map +1 -1
- package/dist/commands/checkpoint.js +3 -2
- package/dist/commands/claude-desktop.d.ts +2 -2
- package/dist/commands/claude-desktop.d.ts.map +1 -1
- package/dist/commands/claude-desktop.js +2 -2
- package/dist/commands/context.js +1 -6
- package/dist/commands/decision.d.ts.map +1 -1
- package/dist/commands/decision.js +22 -38
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +91 -28
- package/dist/commands/doctor.d.ts +4 -2
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +55 -7
- package/dist/commands/events.d.ts +5 -0
- package/dist/commands/events.d.ts.map +1 -0
- package/dist/commands/events.js +189 -0
- package/dist/commands/governor.d.ts.map +1 -1
- package/dist/commands/governor.js +13 -4
- package/dist/commands/init.d.ts +10 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +233 -51
- package/dist/commands/instructions.d.ts +4 -0
- package/dist/commands/instructions.d.ts.map +1 -0
- package/dist/commands/instructions.js +100 -0
- package/dist/commands/journal.d.ts.map +1 -1
- package/dist/commands/journal.js +4 -13
- package/dist/commands/ledger-v3.d.ts +5 -0
- package/dist/commands/ledger-v3.d.ts.map +1 -0
- package/dist/commands/ledger-v3.js +91 -0
- package/dist/commands/presence.d.ts.map +1 -1
- package/dist/commands/presence.js +15 -6
- package/dist/commands/sync.d.ts +1 -1
- package/dist/commands/sync.js +1 -1
- package/dist/commands/web.d.ts +6 -0
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +67 -7
- package/dist/commands/work.d.ts.map +1 -1
- package/dist/commands/work.js +22 -5
- package/dist/core/adapter.d.ts +5 -0
- package/dist/core/adapter.d.ts.map +1 -0
- package/dist/core/adapter.js +1 -0
- package/dist/core/adapters/attest.d.ts +5 -2
- package/dist/core/adapters/attest.d.ts.map +1 -1
- package/dist/core/adapters/attest.js +8 -3
- package/dist/core/adapters/profiles.d.ts +6 -6
- package/dist/core/adapters/profiles.d.ts.map +1 -1
- package/dist/core/adapters/profiles.js +4 -4
- package/dist/core/agents/canonical-emit.d.ts +17 -15
- package/dist/core/agents/canonical-emit.d.ts.map +1 -1
- package/dist/core/agents/canonical-emit.js +27 -25
- package/dist/core/agents/cli.js +212 -235
- package/dist/core/agents/codex-archive-v3.d.ts +14 -0
- package/dist/core/agents/codex-archive-v3.d.ts.map +1 -0
- package/dist/core/agents/codex-archive-v3.js +110 -0
- package/dist/core/agents/coord-client.d.ts +19 -70
- package/dist/core/agents/coord-client.d.ts.map +1 -1
- package/dist/core/agents/coord-client.js +65 -155
- package/dist/core/agents/finalization.d.ts +4 -1
- package/dist/core/agents/finalization.d.ts.map +1 -1
- package/dist/core/agents/finalization.js +89 -32
- package/dist/core/agents/index.d.ts +5 -5
- package/dist/core/agents/index.d.ts.map +1 -1
- package/dist/core/agents/index.js +5 -5
- package/dist/core/agents/live-authority-v3.d.ts +59 -0
- package/dist/core/agents/live-authority-v3.d.ts.map +1 -0
- package/dist/core/agents/live-authority-v3.js +233 -0
- package/dist/core/agents/live-lifecycle-v3.d.ts +20 -0
- package/dist/core/agents/live-lifecycle-v3.d.ts.map +1 -0
- package/dist/core/agents/live-lifecycle-v3.js +91 -0
- package/dist/core/agents/live-observation-v3.d.ts +25 -0
- package/dist/core/agents/live-observation-v3.d.ts.map +1 -0
- package/dist/core/agents/live-observation-v3.js +157 -0
- package/dist/core/agents/render/prompt-context.d.ts +10 -4
- package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.js +61 -55
- package/dist/core/agents/render/session-context.d.ts +1 -1
- package/dist/core/agents/render/session-context.d.ts.map +1 -1
- package/dist/core/agents/render/session-context.js +15 -33
- package/dist/core/agents/rules/claim-conflict.d.ts +3 -3
- package/dist/core/agents/rules/claim-conflict.d.ts.map +1 -1
- package/dist/core/agents/rules/claim-conflict.js +79 -127
- package/dist/core/agents/rules/commit-conflict.d.ts.map +1 -1
- package/dist/core/agents/rules/commit-conflict.js +3 -18
- package/dist/core/agents/rules/stop-hook.d.ts +9 -50
- package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
- package/dist/core/agents/rules/stop-hook.js +193 -236
- package/dist/core/agents/session-events.d.ts +5 -7
- package/dist/core/agents/session-events.d.ts.map +1 -1
- package/dist/core/agents/session-events.js +127 -95
- package/dist/core/agents/session-finalization-state-v3.d.ts +30 -0
- package/dist/core/agents/session-finalization-state-v3.d.ts.map +1 -0
- package/dist/core/agents/session-finalization-state-v3.js +40 -0
- package/dist/core/agents/session-finalizer-v3.d.ts +107 -0
- package/dist/core/agents/session-finalizer-v3.d.ts.map +1 -0
- package/dist/core/agents/session-finalizer-v3.js +734 -0
- package/dist/core/agents/session-name-display.d.ts +40 -0
- package/dist/core/agents/session-name-display.d.ts.map +1 -0
- package/dist/core/agents/session-name-display.js +119 -0
- package/dist/core/agents/state/activity-log.d.ts +3 -3
- package/dist/core/agents/state/activity-log.d.ts.map +1 -1
- package/dist/core/agents/state/activity-log.js +7 -16
- package/dist/core/agents/state/heartbeat-writer.d.ts +29 -46
- package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
- package/dist/core/agents/state/heartbeat-writer.js +59 -199
- package/dist/core/agents/state/live-coordination-view.d.ts +31 -0
- package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -0
- package/dist/core/agents/state/live-coordination-view.js +209 -0
- package/dist/core/agents/state/session-state.d.ts +45 -0
- package/dist/core/agents/state/session-state.d.ts.map +1 -0
- package/dist/core/agents/state/session-state.js +90 -0
- package/dist/core/agents/state/stale-sweep.d.ts +1 -1
- package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
- package/dist/core/agents/state/stale-sweep.js +26 -15
- package/dist/core/artifacts/index.d.ts.map +1 -1
- package/dist/core/artifacts/index.js +5 -7
- package/dist/core/config.d.ts +33 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +98 -2
- package/dist/core/context/index.d.ts +1 -4
- package/dist/core/context/index.d.ts.map +1 -1
- package/dist/core/context/index.js +9 -9
- package/dist/core/events/span-parent.d.ts +15 -0
- package/dist/core/events/span-parent.d.ts.map +1 -0
- package/dist/core/events/span-parent.js +34 -0
- package/dist/core/events/v3/advance.d.ts +14 -0
- package/dist/core/events/v3/advance.d.ts.map +1 -0
- package/dist/core/events/v3/advance.js +134 -0
- package/dist/core/events/v3/authority-outbox.d.ts +78 -0
- package/dist/core/events/v3/authority-outbox.d.ts.map +1 -0
- package/dist/core/events/v3/authority-outbox.js +399 -0
- package/dist/core/events/v3/base-builder.d.ts +20 -0
- package/dist/core/events/v3/base-builder.d.ts.map +1 -0
- package/dist/core/events/v3/base-builder.js +29 -0
- package/dist/core/events/v3/base-contract.d.ts +7576 -0
- package/dist/core/events/v3/base-contract.d.ts.map +1 -0
- package/dist/core/events/v3/base-contract.js +647 -0
- package/dist/core/events/v3/bootstrap.d.ts +34 -0
- package/dist/core/events/v3/bootstrap.d.ts.map +1 -0
- package/dist/core/events/v3/bootstrap.js +175 -0
- package/dist/core/events/v3/builder.d.ts +20 -0
- package/dist/core/events/v3/builder.d.ts.map +1 -0
- package/dist/core/events/v3/builder.js +28 -0
- package/dist/core/events/v3/canonical.d.ts +31 -0
- package/dist/core/events/v3/canonical.d.ts.map +1 -0
- package/dist/core/events/v3/canonical.js +100 -0
- package/dist/core/events/v3/capabilities.d.ts +31 -0
- package/dist/core/events/v3/capabilities.d.ts.map +1 -0
- package/dist/core/events/v3/capabilities.js +107 -0
- package/dist/core/events/v3/capability-drift.d.ts +22 -0
- package/dist/core/events/v3/capability-drift.d.ts.map +1 -0
- package/dist/core/events/v3/capability-drift.js +134 -0
- package/dist/core/events/v3/catalog.d.ts +38 -0
- package/dist/core/events/v3/catalog.d.ts.map +1 -0
- package/dist/core/events/v3/catalog.js +135 -0
- package/dist/core/events/v3/clock-order.d.ts +34 -0
- package/dist/core/events/v3/clock-order.d.ts.map +1 -0
- package/dist/core/events/v3/clock-order.js +35 -0
- package/dist/core/events/v3/contract.d.ts +171 -0
- package/dist/core/events/v3/contract.d.ts.map +1 -0
- package/dist/core/events/v3/contract.js +180 -0
- package/dist/core/events/v3/control.d.ts +111 -0
- package/dist/core/events/v3/control.d.ts.map +1 -0
- package/dist/core/events/v3/control.js +419 -0
- package/dist/core/events/v3/coordination-view.d.ts +69 -0
- package/dist/core/events/v3/coordination-view.d.ts.map +1 -0
- package/dist/core/events/v3/coordination-view.js +119 -0
- package/dist/core/events/v3/economics.d.ts +77 -0
- package/dist/core/events/v3/economics.d.ts.map +1 -0
- package/dist/core/events/v3/economics.js +274 -0
- package/dist/core/events/v3/finalization-view.d.ts +26 -0
- package/dist/core/events/v3/finalization-view.d.ts.map +1 -0
- package/dist/core/events/v3/finalization-view.js +37 -0
- package/dist/core/events/v3/fingerprint-keys.d.ts +25 -0
- package/dist/core/events/v3/fingerprint-keys.d.ts.map +1 -0
- package/dist/core/events/v3/fingerprint-keys.js +217 -0
- package/dist/core/events/v3/generated.d.ts +4 -0
- package/dist/core/events/v3/generated.d.ts.map +1 -0
- package/dist/core/events/v3/generated.js +47 -0
- package/dist/core/events/v3/ids.d.ts +9 -0
- package/dist/core/events/v3/ids.d.ts.map +1 -0
- package/dist/core/events/v3/ids.js +25 -0
- package/dist/core/events/v3/index.d.ts +35 -0
- package/dist/core/events/v3/index.d.ts.map +1 -0
- package/dist/core/events/v3/index.js +33 -0
- package/dist/core/events/v3/latency.d.ts +63 -0
- package/dist/core/events/v3/latency.d.ts.map +1 -0
- package/dist/core/events/v3/latency.js +412 -0
- package/dist/core/events/v3/live-feed.d.ts +45 -0
- package/dist/core/events/v3/live-feed.d.ts.map +1 -0
- package/dist/core/events/v3/live-feed.js +246 -0
- package/dist/core/events/v3/live-observation.d.ts +35 -0
- package/dist/core/events/v3/live-observation.d.ts.map +1 -0
- package/dist/core/events/v3/live-observation.js +1 -0
- package/dist/core/events/v3/live-routing.d.ts +57 -0
- package/dist/core/events/v3/live-routing.d.ts.map +1 -0
- package/dist/core/events/v3/live-routing.js +107 -0
- package/dist/core/events/v3/producers/command-recorder.d.ts +67 -0
- package/dist/core/events/v3/producers/command-recorder.d.ts.map +1 -0
- package/dist/core/events/v3/producers/command-recorder.js +477 -0
- package/dist/core/events/v3/producers/command.d.ts +50 -0
- package/dist/core/events/v3/producers/command.d.ts.map +1 -0
- package/dist/core/events/v3/producers/command.js +135 -0
- package/dist/core/events/v3/producers/coordination-recorder.d.ts +53 -0
- package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -0
- package/dist/core/events/v3/producers/coordination-recorder.js +376 -0
- package/dist/core/events/v3/producers/coordination.d.ts +90 -0
- package/dist/core/events/v3/producers/coordination.d.ts.map +1 -0
- package/dist/core/events/v3/producers/coordination.js +229 -0
- package/dist/core/events/v3/producers/hook-base.d.ts +54 -0
- package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -0
- package/dist/core/events/v3/producers/hook-base.js +424 -0
- package/dist/core/events/v3/producers/hook.d.ts +29 -0
- package/dist/core/events/v3/producers/hook.d.ts.map +1 -0
- package/dist/core/events/v3/producers/hook.js +71 -0
- package/dist/core/events/v3/producers/intake.d.ts +65 -0
- package/dist/core/events/v3/producers/intake.d.ts.map +1 -0
- package/dist/core/events/v3/producers/intake.js +244 -0
- package/dist/core/events/v3/producers/recorder.d.ts +240 -0
- package/dist/core/events/v3/producers/recorder.d.ts.map +1 -0
- package/dist/core/events/v3/producers/recorder.js +2176 -0
- package/dist/core/events/v3/projection.d.ts +101 -0
- package/dist/core/events/v3/projection.d.ts.map +1 -0
- package/dist/core/events/v3/projection.js +479 -0
- package/dist/core/events/v3/reader.d.ts +75 -0
- package/dist/core/events/v3/reader.d.ts.map +1 -0
- package/dist/core/events/v3/reader.js +778 -0
- package/dist/core/events/v3/recovery-record.d.ts +47 -0
- package/dist/core/events/v3/recovery-record.d.ts.map +1 -0
- package/dist/core/events/v3/recovery-record.js +167 -0
- package/dist/core/events/v3/recovery.d.ts +22 -0
- package/dist/core/events/v3/recovery.d.ts.map +1 -0
- package/dist/core/events/v3/recovery.js +227 -0
- package/dist/core/events/v3/span-state.d.ts +52 -0
- package/dist/core/events/v3/span-state.d.ts.map +1 -0
- package/dist/core/events/v3/span-state.js +142 -0
- package/dist/core/events/v3/targets.d.ts +23 -0
- package/dist/core/events/v3/targets.d.ts.map +1 -0
- package/dist/core/events/v3/targets.js +134 -0
- package/dist/core/events/v3/turn-telemetry.d.ts +41 -0
- package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -0
- package/dist/core/events/v3/turn-telemetry.js +168 -0
- package/dist/core/events/v3/validate.d.ts +9 -0
- package/dist/core/events/v3/validate.d.ts.map +1 -0
- package/dist/core/events/v3/validate.js +281 -0
- package/dist/core/events/v3/writer.d.ts +56 -0
- package/dist/core/events/v3/writer.d.ts.map +1 -0
- package/dist/core/events/v3/writer.js +335 -0
- package/dist/core/governor/index.d.ts +1 -1
- package/dist/core/governor/index.d.ts.map +1 -1
- package/dist/core/governor/index.js +1 -1
- package/dist/core/governor/plan-api.d.ts +2 -1
- package/dist/core/governor/plan-api.d.ts.map +1 -1
- package/dist/core/governor/plan-api.js +6 -3
- package/dist/core/governor/read.d.ts +1 -1
- package/dist/core/governor/read.d.ts.map +1 -1
- package/dist/core/governor/read.js +1 -1
- package/dist/core/governor/state.d.ts +9 -0
- package/dist/core/governor/state.d.ts.map +1 -1
- package/dist/core/governor/state.js +40 -3
- package/dist/core/guard/config.d.ts +5 -0
- package/dist/core/guard/config.d.ts.map +1 -0
- package/dist/core/guard/config.js +157 -0
- package/dist/core/guard/coordinator.d.ts +14 -0
- package/dist/core/guard/coordinator.d.ts.map +1 -0
- package/dist/core/guard/coordinator.js +173 -0
- package/dist/core/guard/evaluator.d.ts +4 -0
- package/dist/core/guard/evaluator.d.ts.map +1 -0
- package/dist/core/guard/evaluator.js +242 -0
- package/dist/core/guard/evidence-v3.d.ts +15 -0
- package/dist/core/guard/evidence-v3.d.ts.map +1 -0
- package/dist/core/guard/evidence-v3.js +171 -0
- package/dist/core/guard/index.d.ts +10 -0
- package/dist/core/guard/index.d.ts.map +1 -0
- package/dist/core/guard/index.js +6 -0
- package/dist/core/guard/live-source-v3.d.ts +40 -0
- package/dist/core/guard/live-source-v3.d.ts.map +1 -0
- package/dist/core/guard/live-source-v3.js +128 -0
- package/dist/core/guard/storage.d.ts +27 -0
- package/dist/core/guard/storage.d.ts.map +1 -0
- package/dist/core/guard/storage.js +140 -0
- package/dist/core/guard/types.d.ts +119 -0
- package/dist/core/guard/types.d.ts.map +1 -0
- package/dist/core/guard/types.js +1 -0
- package/dist/core/hooks/adapter/detect.d.ts +18 -1
- package/dist/core/hooks/adapter/detect.d.ts.map +1 -1
- package/dist/core/hooks/adapter/detect.js +29 -0
- package/dist/core/hooks/adapter/events.d.ts +7 -4
- package/dist/core/hooks/adapter/events.d.ts.map +1 -1
- package/dist/core/hooks/adapter/events.js +13 -4
- package/dist/core/hooks/adapter/output.d.ts +2 -2
- package/dist/core/hooks/adapter/output.d.ts.map +1 -1
- package/dist/core/hooks/adapter/parse.d.ts +7 -4
- package/dist/core/hooks/adapter/parse.d.ts.map +1 -1
- package/dist/core/hooks/adapter/parse.js +64 -24
- package/dist/core/hooks/adapter/wiring.d.ts +30 -4
- package/dist/core/hooks/adapter/wiring.d.ts.map +1 -1
- package/dist/core/hooks/adapter/wiring.js +89 -11
- package/dist/core/hooks/cli.d.ts +1 -1
- package/dist/core/hooks/cli.js +345 -400
- package/dist/core/hooks/codex-authorization.d.ts +30 -0
- package/dist/core/hooks/codex-authorization.d.ts.map +1 -0
- package/dist/core/hooks/codex-authorization.js +199 -0
- package/dist/core/hooks/effects/image-capture.d.ts +20 -34
- package/dist/core/hooks/effects/image-capture.d.ts.map +1 -1
- package/dist/core/hooks/effects/image-capture.js +212 -221
- package/dist/core/hooks/effects/index.d.ts +1 -9
- package/dist/core/hooks/effects/index.d.ts.map +1 -1
- package/dist/core/hooks/effects/index.js +1 -24
- package/dist/core/hooks/events/input-hash.d.ts +7 -0
- package/dist/core/hooks/events/input-hash.d.ts.map +1 -0
- package/dist/core/hooks/events/input-hash.js +43 -0
- package/dist/core/hooks/index.d.ts +4 -3
- package/dist/core/hooks/index.d.ts.map +1 -1
- package/dist/core/hooks/index.js +2 -3
- package/dist/core/hooks/resolve/coord-root.d.ts +1 -1
- package/dist/core/hooks/resolve/coord-root.js +1 -1
- package/dist/core/hooks/resolve/owner.d.ts +16 -15
- package/dist/core/hooks/resolve/owner.d.ts.map +1 -1
- package/dist/core/hooks/resolve/owner.js +51 -42
- package/dist/core/hooks/resolve/transcript.d.ts +33 -3
- package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
- package/dist/core/hooks/resolve/transcript.js +155 -14
- package/dist/core/hooks/session-name-presence.d.ts +9 -10
- package/dist/core/hooks/session-name-presence.d.ts.map +1 -1
- package/dist/core/hooks/session-name-presence.js +15 -15
- package/dist/core/hooks/unsafe-cross-shell.d.ts +1 -1
- package/dist/core/hooks/unsafe-cross-shell.d.ts.map +1 -1
- package/dist/core/journal/index.d.ts +2 -2
- package/dist/core/journal/index.d.ts.map +1 -1
- package/dist/core/journal/index.js +9 -22
- package/dist/core/presence/blob.d.ts +8 -3
- package/dist/core/presence/blob.d.ts.map +1 -1
- package/dist/core/presence/blob.js +54 -41
- package/dist/core/presence/codec-digest.d.ts +29 -0
- package/dist/core/presence/codec-digest.d.ts.map +1 -0
- package/dist/core/presence/codec-digest.js +170 -0
- package/dist/core/presence/index.js +15 -1
- package/dist/core/presence/relay-client.d.ts +1 -1
- package/dist/core/presence/relay-client.d.ts.map +1 -1
- package/dist/core/presence/relay-client.js +5 -5
- package/dist/core/work/index.d.ts +1 -1
- package/dist/core/work/index.d.ts.map +1 -1
- package/dist/core/work/index.js +1 -1
- package/dist/core/work/read.d.ts +1 -1
- package/dist/core/work/read.d.ts.map +1 -1
- package/dist/core/work/read.js +1 -1
- package/dist/core/work/runner.d.ts.map +1 -1
- package/dist/core/work/runner.js +6 -0
- package/dist/core/work/state.d.ts +9 -0
- package/dist/core/work/state.d.ts.map +1 -1
- package/dist/core/work/state.js +17 -3
- package/dist/core/workflow/engine.js +24 -25
- package/dist/core/workflow/live-session-v3.d.ts +19 -0
- package/dist/core/workflow/live-session-v3.d.ts.map +1 -0
- package/dist/core/workflow/live-session-v3.js +86 -0
- package/dist/core/workflow/scope-id.d.ts +3 -0
- package/dist/core/workflow/scope-id.d.ts.map +1 -0
- package/dist/core/workflow/scope-id.js +5 -0
- package/dist/core/workflow/workspaces/leases.d.ts +4 -0
- package/dist/core/workflow/workspaces/leases.d.ts.map +1 -1
- package/dist/core/workflow/workspaces/leases.js +53 -19
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/browser/client.d.ts +41 -0
- package/dist/lib/browser/client.d.ts.map +1 -1
- package/dist/lib/browser/client.js +203 -0
- package/dist/lib/browser/critique.d.ts +28 -2
- package/dist/lib/browser/critique.d.ts.map +1 -1
- package/dist/lib/browser/critique.js +74 -18
- package/dist/lib/browser/geometry.d.ts +1 -1
- package/dist/lib/browser/geometry.d.ts.map +1 -1
- package/dist/lib/browser/geometry.js +130 -6
- package/dist/lib/browser/index.d.ts +3 -0
- package/dist/lib/browser/index.d.ts.map +1 -1
- package/dist/lib/browser/index.js +3 -0
- package/dist/lib/browser/qa-plan.d.ts +174 -0
- package/dist/lib/browser/qa-plan.d.ts.map +1 -0
- package/dist/lib/browser/qa-plan.js +321 -0
- package/dist/lib/browser/qa-reuse.d.ts +99 -0
- package/dist/lib/browser/qa-reuse.d.ts.map +1 -0
- package/dist/lib/browser/qa-reuse.js +222 -0
- package/dist/lib/browser/qa-snapshot.d.ts +64 -0
- package/dist/lib/browser/qa-snapshot.d.ts.map +1 -0
- package/dist/lib/browser/qa-snapshot.js +171 -0
- package/dist/lib/browser/runts.d.ts.map +1 -1
- package/dist/lib/browser/runts.js +22 -1
- package/dist/lib/browser/tiling.d.ts +71 -0
- package/dist/lib/browser/tiling.d.ts.map +1 -0
- package/dist/lib/browser/tiling.js +118 -0
- package/dist/lib/context/index.d.ts +0 -3
- package/dist/lib/context/index.d.ts.map +1 -1
- package/dist/lib/context/index.js +20 -42
- package/dist/lib/council/index.d.ts +2 -2
- package/dist/lib/council/index.d.ts.map +1 -1
- package/dist/lib/council/index.js +9 -20
- package/dist/lib/docs-frontmatter.d.ts +1 -6
- package/dist/lib/docs-frontmatter.d.ts.map +1 -1
- package/dist/lib/docs-frontmatter.js +12 -78
- package/dist/lib/docs-index.d.ts +9 -0
- package/dist/lib/docs-index.d.ts.map +1 -1
- package/dist/lib/docs-index.js +32 -3
- package/dist/lib/docs-lint.d.ts.map +1 -1
- package/dist/lib/docs-lint.js +14 -30
- package/dist/lib/docs-metadata-audit.d.ts +19 -0
- package/dist/lib/docs-metadata-audit.d.ts.map +1 -0
- package/dist/lib/docs-metadata-audit.js +132 -0
- package/dist/lib/docs-metadata-managed.d.ts +23 -0
- package/dist/lib/docs-metadata-managed.d.ts.map +1 -0
- package/dist/lib/docs-metadata-managed.js +78 -0
- package/dist/lib/docs-metadata-sync.d.ts +20 -0
- package/dist/lib/docs-metadata-sync.d.ts.map +1 -0
- package/dist/lib/docs-metadata-sync.js +222 -0
- package/dist/lib/docs-metadata-v2-schema.d.ts +273 -0
- package/dist/lib/docs-metadata-v2-schema.d.ts.map +1 -0
- package/dist/lib/docs-metadata-v2-schema.js +134 -0
- package/dist/lib/docs-metadata-v2.d.ts +21 -0
- package/dist/lib/docs-metadata-v2.d.ts.map +1 -0
- package/dist/lib/docs-metadata-v2.js +424 -0
- package/dist/lib/docs-new.d.ts +11 -0
- package/dist/lib/docs-new.d.ts.map +1 -0
- package/dist/lib/docs-new.js +52 -0
- package/dist/lib/docs-sweep.d.ts.map +1 -1
- package/dist/lib/docs-sweep.js +45 -29
- package/dist/lib/headless/index.d.ts +98 -0
- package/dist/lib/headless/index.d.ts.map +1 -0
- package/dist/lib/headless/index.js +211 -0
- package/dist/lib/identities/assume.d.ts +4 -4
- package/dist/lib/identities/assume.d.ts.map +1 -1
- package/dist/lib/identities/assume.js +52 -68
- package/dist/lib/instructions/apply.d.ts +5 -4
- package/dist/lib/instructions/apply.d.ts.map +1 -1
- package/dist/lib/instructions/apply.js +32 -20
- package/dist/lib/instructions/bundle.d.ts +33 -0
- package/dist/lib/instructions/bundle.d.ts.map +1 -0
- package/dist/lib/instructions/bundle.js +149 -0
- package/dist/lib/instructions/splice.d.ts +0 -1
- package/dist/lib/instructions/splice.d.ts.map +1 -1
- package/dist/lib/instructions/splice.js +22 -6
- package/dist/lib/instructions/templates.d.ts +7 -5
- package/dist/lib/instructions/templates.d.ts.map +1 -1
- package/dist/lib/instructions/templates.js +79 -9
- package/package.json +27 -6
- package/schemas/config.schema.json +120 -2
- package/schemas/docs-metadata-v2.schema.json +441 -0
- package/schemas/event-v3.schema.json +24472 -0
- package/src/commander.ts +7 -1
- package/src/commands/adapter.ts +2 -2
- package/src/commands/agents.ts +1737 -570
- package/src/commands/artifacts.ts +7 -6
- package/src/commands/backup.ts +29 -21
- package/src/commands/browse.ts +349 -8
- package/src/commands/checkpoint.ts +4 -3
- package/src/commands/claude-desktop.ts +7 -5
- package/src/commands/context.ts +1 -6
- package/src/commands/decision.ts +27 -44
- package/src/commands/docs.ts +100 -33
- package/src/commands/doctor.ts +73 -8
- package/src/commands/events.ts +256 -0
- package/src/commands/governor.ts +18 -4
- package/src/commands/init.ts +264 -57
- package/src/commands/instructions.ts +129 -0
- package/src/commands/journal.ts +4 -13
- package/src/commands/ledger-v3.ts +111 -0
- package/src/commands/presence.ts +18 -11
- package/src/commands/sync.ts +1 -1
- package/src/commands/web.ts +67 -8
- package/src/commands/work.ts +28 -5
- package/src/core/adapter.ts +5 -0
- package/src/core/adapters/attest.ts +8 -3
- package/src/core/adapters/profiles.ts +4 -6
- package/src/core/agents/canonical-emit.ts +39 -28
- package/src/core/agents/cli.ts +242 -263
- package/src/core/agents/codex-archive-v3.ts +138 -0
- package/src/core/agents/coord-client.ts +75 -177
- package/src/core/agents/finalization.ts +120 -38
- package/src/core/agents/index.ts +5 -5
- package/src/core/agents/live-authority-v3.ts +375 -0
- package/src/core/agents/live-lifecycle-v3.ts +140 -0
- package/src/core/agents/live-observation-v3.ts +216 -0
- package/src/core/agents/render/prompt-context.ts +89 -55
- package/src/core/agents/render/session-context.ts +23 -32
- package/src/core/agents/rules/claim-conflict.ts +85 -126
- package/src/core/agents/rules/commit-conflict.ts +3 -14
- package/src/core/agents/rules/stop-hook.ts +239 -293
- package/src/core/agents/session-events.ts +137 -104
- package/src/core/agents/session-finalization-state-v3.ts +90 -0
- package/src/core/agents/session-finalizer-v3.ts +953 -0
- package/src/core/agents/session-name-display.ts +149 -0
- package/src/core/agents/state/activity-log.ts +6 -14
- package/src/core/agents/state/heartbeat-writer.ts +98 -242
- package/src/core/agents/state/live-coordination-view.ts +290 -0
- package/src/core/agents/state/session-state.ts +143 -0
- package/src/core/agents/state/stale-sweep.ts +40 -17
- package/src/core/artifacts/index.ts +4 -5
- package/src/core/config.ts +148 -3
- package/src/core/context/index.ts +9 -17
- package/src/core/events/span-parent.ts +46 -0
- package/src/core/events/v3/advance.ts +168 -0
- package/src/core/events/v3/authority-outbox.ts +548 -0
- package/src/core/events/v3/base-builder.ts +60 -0
- package/src/core/events/v3/base-contract.ts +882 -0
- package/src/core/events/v3/bootstrap.ts +226 -0
- package/src/core/events/v3/builder.ts +59 -0
- package/src/core/events/v3/canonical.ts +153 -0
- package/src/core/events/v3/capabilities.ts +171 -0
- package/src/core/events/v3/capability-drift.ts +177 -0
- package/src/core/events/v3/catalog.ts +202 -0
- package/src/core/events/v3/clock-order.ts +41 -0
- package/src/core/events/v3/contract.ts +365 -0
- package/src/core/events/v3/control.ts +576 -0
- package/src/core/events/v3/coordination-view.ts +193 -0
- package/src/core/events/v3/economics.ts +384 -0
- package/src/core/events/v3/finalization-view.ts +67 -0
- package/src/core/events/v3/fingerprint-keys.ts +260 -0
- package/src/core/events/v3/generated.ts +48 -0
- package/src/core/events/v3/ids.ts +33 -0
- package/src/core/events/v3/index.ts +322 -0
- package/src/core/events/v3/latency.ts +551 -0
- package/src/core/events/v3/live-feed.ts +319 -0
- package/src/core/events/v3/live-observation.ts +39 -0
- package/src/core/events/v3/live-routing.ts +135 -0
- package/src/core/events/v3/producers/command-recorder.ts +631 -0
- package/src/core/events/v3/producers/command.ts +201 -0
- package/src/core/events/v3/producers/coordination-recorder.ts +538 -0
- package/src/core/events/v3/producers/coordination.ts +355 -0
- package/src/core/events/v3/producers/hook-base.ts +578 -0
- package/src/core/events/v3/producers/hook.ts +119 -0
- package/src/core/events/v3/producers/intake.ts +319 -0
- package/src/core/events/v3/producers/recorder.ts +2805 -0
- package/src/core/events/v3/projection.ts +653 -0
- package/src/core/events/v3/reader.ts +1127 -0
- package/src/core/events/v3/recovery-record.ts +244 -0
- package/src/core/events/v3/recovery.ts +271 -0
- package/src/core/events/v3/span-state.ts +187 -0
- package/src/core/events/v3/targets.ts +182 -0
- package/src/core/events/v3/turn-telemetry.ts +259 -0
- package/src/core/events/v3/validate.ts +361 -0
- package/src/core/events/v3/writer.ts +419 -0
- package/src/core/governor/index.ts +3 -0
- package/src/core/governor/plan-api.ts +10 -2
- package/src/core/governor/read.ts +3 -0
- package/src/core/governor/state.ts +52 -5
- package/src/core/guard/config.ts +206 -0
- package/src/core/guard/coordinator.ts +227 -0
- package/src/core/guard/evaluator.ts +343 -0
- package/src/core/guard/evidence-v3.ts +227 -0
- package/src/core/guard/index.ts +35 -0
- package/src/core/guard/live-source-v3.ts +204 -0
- package/src/core/guard/storage.ts +188 -0
- package/src/core/guard/types.ts +152 -0
- package/src/core/hooks/adapter/detect.ts +28 -1
- package/src/core/hooks/adapter/events.ts +15 -6
- package/src/core/hooks/adapter/output.ts +7 -2
- package/src/core/hooks/adapter/parse.ts +81 -36
- package/src/core/hooks/adapter/wiring.ts +119 -13
- package/src/core/hooks/cli.ts +398 -422
- package/src/core/hooks/codex-authorization.ts +253 -0
- package/src/core/hooks/effects/image-capture.ts +228 -238
- package/src/core/hooks/effects/index.ts +1 -36
- package/src/core/hooks/events/input-hash.ts +47 -0
- package/src/core/hooks/index.ts +4 -11
- package/src/core/hooks/resolve/coord-root.ts +1 -1
- package/src/core/hooks/resolve/owner.ts +52 -45
- package/src/core/hooks/resolve/transcript.ts +165 -14
- package/src/core/hooks/session-name-presence.ts +14 -15
- package/src/core/hooks/unsafe-cross-shell.ts +1 -1
- package/src/core/journal/index.ts +15 -22
- package/src/core/presence/blob.ts +63 -38
- package/src/core/presence/codec-digest.ts +215 -0
- package/src/core/presence/index.ts +18 -1
- package/src/core/presence/relay-client.ts +5 -5
- package/src/core/work/index.ts +3 -0
- package/src/core/work/read.ts +3 -0
- package/src/core/work/runner.ts +6 -0
- package/src/core/work/state.ts +27 -3
- package/src/core/workflow/engine.ts +24 -24
- package/src/core/workflow/live-session-v3.ts +126 -0
- package/src/core/workflow/scope-id.ts +6 -0
- package/src/core/workflow/workspaces/leases.ts +56 -19
- package/src/index.ts +1 -1
- package/src/lib/browser/client.ts +230 -0
- package/src/lib/browser/critique.ts +104 -27
- package/src/lib/browser/geometry.ts +143 -14
- package/src/lib/browser/index.ts +34 -0
- package/src/lib/browser/qa-plan.ts +501 -0
- package/src/lib/browser/qa-reuse.ts +306 -0
- package/src/lib/browser/qa-snapshot.ts +223 -0
- package/src/lib/browser/runts.ts +27 -2
- package/src/lib/browser/tiling.ts +164 -0
- package/src/lib/context/index.ts +22 -46
- package/src/lib/council/index.ts +9 -21
- package/src/lib/docs-frontmatter.ts +8 -79
- package/src/lib/docs-index.ts +33 -3
- package/src/lib/docs-lint.ts +15 -29
- package/src/lib/docs-metadata-audit.ts +166 -0
- package/src/lib/docs-metadata-managed.ts +83 -0
- package/src/lib/docs-metadata-sync.ts +262 -0
- package/src/lib/docs-metadata-v2-schema.ts +138 -0
- package/src/lib/docs-metadata-v2.ts +646 -0
- package/src/lib/docs-new.ts +63 -0
- package/src/lib/docs-sweep.ts +42 -28
- package/src/lib/headless/index.ts +287 -0
- package/src/lib/identities/assume.ts +67 -86
- package/src/lib/instructions/apply.ts +33 -20
- package/src/lib/instructions/bundle.ts +199 -0
- package/src/lib/instructions/splice.ts +21 -7
- package/src/lib/instructions/templates.ts +85 -13
- package/dist/core/agents/cli-emit.d.ts +0 -27
- package/dist/core/agents/cli-emit.d.ts.map +0 -1
- package/dist/core/agents/cli-emit.js +0 -57
- package/dist/core/agents/codex-replay.d.ts +0 -29
- package/dist/core/agents/codex-replay.d.ts.map +0 -1
- package/dist/core/agents/codex-replay.js +0 -138
- package/dist/core/agents/events/consume.d.ts +0 -82
- package/dist/core/agents/events/consume.d.ts.map +0 -1
- package/dist/core/agents/events/consume.js +0 -195
- package/dist/core/agents/events/emit.d.ts +0 -42
- package/dist/core/agents/events/emit.d.ts.map +0 -1
- package/dist/core/agents/events/emit.js +0 -75
- package/dist/core/agents/events/ulid.d.ts +0 -11
- package/dist/core/agents/events/ulid.d.ts.map +0 -1
- package/dist/core/agents/events/ulid.js +0 -47
- package/dist/core/agents/state/heartbeat-projector.d.ts +0 -65
- package/dist/core/agents/state/heartbeat-projector.d.ts.map +0 -1
- package/dist/core/agents/state/heartbeat-projector.js +0 -527
- package/dist/core/hooks/events/emit.d.ts +0 -31
- package/dist/core/hooks/events/emit.d.ts.map +0 -1
- package/dist/core/hooks/events/emit.js +0 -93
- package/dist/core/hooks/events/rotate.d.ts +0 -43
- package/dist/core/hooks/events/rotate.d.ts.map +0 -1
- package/dist/core/hooks/events/rotate.js +0 -142
- package/dist/core/hooks/events/schema.d.ts +0 -312
- package/dist/core/hooks/events/schema.d.ts.map +0 -1
- package/dist/core/hooks/events/schema.js +0 -12
- package/dist/core/hooks/events/ulid.d.ts +0 -10
- package/dist/core/hooks/events/ulid.d.ts.map +0 -1
- package/dist/core/hooks/events/ulid.js +0 -47
- package/dist/lib/docs-frontmatter-migrate.d.ts +0 -33
- package/dist/lib/docs-frontmatter-migrate.d.ts.map +0 -1
- package/dist/lib/docs-frontmatter-migrate.js +0 -364
- package/src/core/agents/cli-emit.ts +0 -64
- package/src/core/agents/codex-replay.ts +0 -163
- package/src/core/agents/events/consume.ts +0 -254
- package/src/core/agents/events/emit.ts +0 -115
- package/src/core/agents/events/ulid.ts +0 -51
- package/src/core/agents/state/heartbeat-projector.ts +0 -582
- package/src/core/hooks/events/emit.ts +0 -125
- package/src/core/hooks/events/rotate.ts +0 -151
- package/src/core/hooks/events/schema.ts +0 -538
- package/src/core/hooks/events/ulid.ts +0 -51
- package/src/lib/docs-frontmatter-migrate.ts +0 -427
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Adapter } from "
|
|
1
|
+
import type { Adapter } from "../../adapter.js";
|
|
2
2
|
/**
|
|
3
3
|
* Resolve the adapter firing the hook. The dispatcher binary is always
|
|
4
4
|
* invoked with `--adapter <name>` per the current wiring in each adapter's
|
|
@@ -6,4 +6,21 @@ import type { Adapter } from "../events/schema.js";
|
|
|
6
6
|
* the environment fallback or skips emission.
|
|
7
7
|
*/
|
|
8
8
|
export declare function detectAdapter(argv: readonly string[]): Adapter | null;
|
|
9
|
+
/**
|
|
10
|
+
* On a host wired for multiple adapters, Cursor also executes the Claude Code
|
|
11
|
+
* project hooks, piping them the same payload as its own hooks. Recording that
|
|
12
|
+
* stray `--adapter claude-code` dispatch mints a twin generation for the same
|
|
13
|
+
* instance (plus a stream of missing_session_start diagnostics), so the hook
|
|
14
|
+
* CLI skips it entirely.
|
|
15
|
+
*
|
|
16
|
+
* Detection reads the payload, not the environment: every hook payload Cursor
|
|
17
|
+
* emits carries a top-level `cursor_version` string (its dispatch envelope),
|
|
18
|
+
* and no Claude Code payload does. Environment sniffing cannot make this call
|
|
19
|
+
* in either direction — Cursor's own hook processes do not carry CURSOR_AGENT
|
|
20
|
+
* (only its agent tool shells do), and a genuine Claude Code session nested
|
|
21
|
+
* under a Cursor agent shell inherits Cursor-flavored variables it must not
|
|
22
|
+
* be skipped for. The check is the top-level key only: a Claude Code payload
|
|
23
|
+
* whose tool_input merely mentions the string must not match.
|
|
24
|
+
*/
|
|
25
|
+
export declare function shouldSkipHookAdapter(adapter: Adapter | null, rawPayload: string): boolean;
|
|
9
26
|
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/detect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/detect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAWrE;AAOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAS1F"}
|
|
@@ -22,3 +22,32 @@ function validate(v) {
|
|
|
22
22
|
return v;
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* On a host wired for multiple adapters, Cursor also executes the Claude Code
|
|
27
|
+
* project hooks, piping them the same payload as its own hooks. Recording that
|
|
28
|
+
* stray `--adapter claude-code` dispatch mints a twin generation for the same
|
|
29
|
+
* instance (plus a stream of missing_session_start diagnostics), so the hook
|
|
30
|
+
* CLI skips it entirely.
|
|
31
|
+
*
|
|
32
|
+
* Detection reads the payload, not the environment: every hook payload Cursor
|
|
33
|
+
* emits carries a top-level `cursor_version` string (its dispatch envelope),
|
|
34
|
+
* and no Claude Code payload does. Environment sniffing cannot make this call
|
|
35
|
+
* in either direction — Cursor's own hook processes do not carry CURSOR_AGENT
|
|
36
|
+
* (only its agent tool shells do), and a genuine Claude Code session nested
|
|
37
|
+
* under a Cursor agent shell inherits Cursor-flavored variables it must not
|
|
38
|
+
* be skipped for. The check is the top-level key only: a Claude Code payload
|
|
39
|
+
* whose tool_input merely mentions the string must not match.
|
|
40
|
+
*/
|
|
41
|
+
export function shouldSkipHookAdapter(adapter, rawPayload) {
|
|
42
|
+
if (adapter !== "claude-code")
|
|
43
|
+
return false;
|
|
44
|
+
if (!rawPayload || rawPayload.trim().length === 0)
|
|
45
|
+
return false;
|
|
46
|
+
try {
|
|
47
|
+
const json = JSON.parse(rawPayload);
|
|
48
|
+
return typeof json.cursor_version === "string" && json.cursor_version.length > 0;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* for each adapter (Claude Code `.claude/settings.json`, Cursor `.cursor/hooks.json`,
|
|
9
9
|
* Codex `.codex/hooks.json`).
|
|
10
10
|
*/
|
|
11
|
-
export type { Adapter as AdapterId } from "
|
|
12
|
-
import type { Adapter as AdapterId } from "
|
|
11
|
+
export type { Adapter as AdapterId } from "../../adapter.js";
|
|
12
|
+
import type { Adapter as AdapterId } from "../../adapter.js";
|
|
13
13
|
export interface HookEvent {
|
|
14
14
|
/** Key under the adapter settings file's `hooks` map (e.g. `SessionStart`, `preToolUse`). */
|
|
15
15
|
settingsKey: string;
|
|
@@ -49,14 +49,17 @@ export interface AdapterSpec {
|
|
|
49
49
|
export declare const CLAUDE_CODE_EVENTS: HookEvent[];
|
|
50
50
|
/**
|
|
51
51
|
* Cursor: `.cursor/hooks.json`. camelCase event keys; flat `{ command }` entries;
|
|
52
|
-
* no `StopFailure` event
|
|
52
|
+
* no `StopFailure` event. Generic tool hooks remain useful in the IDE, while
|
|
53
|
+
* shell-specific hooks are also installed because remote/CLI modes do not
|
|
54
|
+
* dispatch generic tool hooks consistently. V3 deduplicates overlapping shell
|
|
55
|
+
* deliveries by a private command fingerprint.
|
|
53
56
|
*/
|
|
54
57
|
export declare const CURSOR_EVENTS: HookEvent[];
|
|
55
58
|
/** Codex events that harnery uses from the current native lifecycle surface. */
|
|
56
59
|
export declare const CODEX_EVENTS: HookEvent[];
|
|
57
60
|
/** Entries written by harnery before Codex adopted a strict native hook schema. */
|
|
58
61
|
export declare const LEGACY_CODEX_EVENTS: HookEvent[];
|
|
59
|
-
/** Every hook key accepted by Codex
|
|
62
|
+
/** Every hook key accepted by Codex's current native hook schema. */
|
|
60
63
|
export declare const CODEX_ALLOWED_EVENT_KEYS: string[];
|
|
61
64
|
/** Every supported adapter, fully wireable by `harn init`. */
|
|
62
65
|
export declare const ADAPTER_SPECS: Record<AdapterId, AdapterSpec>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,6FAA6F;IAC7F,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,wDAAwD;IACxD,UAAU,EAAE,cAAc,CAAC;IAC3B,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3B,0FAA0F;IAC1F,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAczC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,EAapC,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,YAAY,EAAE,SAAS,EAYnC,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,EAAE,SAAS,EAG1C,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,wBAAwB,UAYpC,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAqBxD,CAAC"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
export const CLAUDE_CODE_EVENTS = [
|
|
13
13
|
{ settingsKey: "SessionStart", subcommand: "session-start" },
|
|
14
14
|
{ settingsKey: "UserPromptSubmit", subcommand: "user-prompt-submit" },
|
|
15
|
+
{ settingsKey: "PermissionRequest", subcommand: "permission-request" },
|
|
15
16
|
{ settingsKey: "Stop", subcommand: "stop" },
|
|
16
17
|
{ settingsKey: "StopFailure", subcommand: "stop-failure" },
|
|
17
18
|
{ settingsKey: "SessionEnd", subcommand: "session-end" },
|
|
@@ -21,27 +22,34 @@ export const CLAUDE_CODE_EVENTS = [
|
|
|
21
22
|
{ settingsKey: "PostToolUse", subcommand: "post-tool-use" },
|
|
22
23
|
{ settingsKey: "PostToolUseFailure", subcommand: "post-tool-use-failure" },
|
|
23
24
|
{ settingsKey: "PreCompact", subcommand: "pre-compact" },
|
|
25
|
+
{ settingsKey: "PostCompact", subcommand: "post-compact" },
|
|
24
26
|
];
|
|
25
27
|
/**
|
|
26
28
|
* Cursor: `.cursor/hooks.json`. camelCase event keys; flat `{ command }` entries;
|
|
27
|
-
* no `StopFailure` event
|
|
29
|
+
* no `StopFailure` event. Generic tool hooks remain useful in the IDE, while
|
|
30
|
+
* shell-specific hooks are also installed because remote/CLI modes do not
|
|
31
|
+
* dispatch generic tool hooks consistently. V3 deduplicates overlapping shell
|
|
32
|
+
* deliveries by a private command fingerprint.
|
|
28
33
|
*/
|
|
29
34
|
export const CURSOR_EVENTS = [
|
|
30
35
|
{ settingsKey: "sessionStart", subcommand: "session-start" },
|
|
31
36
|
{ settingsKey: "sessionEnd", subcommand: "session-end" },
|
|
32
37
|
{ settingsKey: "preToolUse", subcommand: "pre-tool-use" },
|
|
33
|
-
{ settingsKey: "beforeShellExecution", subcommand: "before-shell-execution" },
|
|
34
38
|
{ settingsKey: "postToolUse", subcommand: "post-tool-use" },
|
|
35
39
|
{ settingsKey: "postToolUseFailure", subcommand: "post-tool-use-failure" },
|
|
40
|
+
{ settingsKey: "beforeShellExecution", subcommand: "before-shell-execution" },
|
|
41
|
+
{ settingsKey: "afterShellExecution", subcommand: "after-shell-execution" },
|
|
36
42
|
{ settingsKey: "subagentStart", subcommand: "sub-agent-start" },
|
|
37
43
|
{ settingsKey: "subagentStop", subcommand: "sub-agent-stop" },
|
|
38
44
|
{ settingsKey: "beforeSubmitPrompt", subcommand: "user-prompt-submit" },
|
|
45
|
+
{ settingsKey: "preCompact", subcommand: "pre-compact" },
|
|
39
46
|
{ settingsKey: "stop", subcommand: "stop" },
|
|
40
47
|
];
|
|
41
48
|
/** Codex events that harnery uses from the current native lifecycle surface. */
|
|
42
49
|
export const CODEX_EVENTS = [
|
|
43
50
|
{ settingsKey: "SessionStart", subcommand: "session-start" },
|
|
44
51
|
{ settingsKey: "PreToolUse", subcommand: "pre-tool-use" },
|
|
52
|
+
{ settingsKey: "PermissionRequest", subcommand: "permission-request" },
|
|
45
53
|
{ settingsKey: "PostToolUse", subcommand: "post-tool-use" },
|
|
46
54
|
{ settingsKey: "UserPromptSubmit", subcommand: "user-prompt-submit" },
|
|
47
55
|
{ settingsKey: "SubagentStart", subcommand: "sub-agent-start" },
|
|
@@ -49,14 +57,14 @@ export const CODEX_EVENTS = [
|
|
|
49
57
|
{ settingsKey: "PreCompact", subcommand: "pre-compact" },
|
|
50
58
|
{ settingsKey: "PostCompact", subcommand: "post-compact" },
|
|
51
59
|
{ settingsKey: "Stop", subcommand: "stop" },
|
|
60
|
+
{ settingsKey: "SessionEnd", subcommand: "session-end" },
|
|
52
61
|
];
|
|
53
62
|
/** Entries written by harnery before Codex adopted a strict native hook schema. */
|
|
54
63
|
export const LEGACY_CODEX_EVENTS = [
|
|
55
|
-
{ settingsKey: "SessionEnd", subcommand: "session-end" },
|
|
56
64
|
{ settingsKey: "PostToolUseFailure", subcommand: "post-tool-use-failure" },
|
|
57
65
|
{ settingsKey: "StopFailure", subcommand: "stop-failure" },
|
|
58
66
|
];
|
|
59
|
-
/** Every hook key accepted by Codex
|
|
67
|
+
/** Every hook key accepted by Codex's current native hook schema. */
|
|
60
68
|
export const CODEX_ALLOWED_EVENT_KEYS = [
|
|
61
69
|
"SessionStart",
|
|
62
70
|
"PreToolUse",
|
|
@@ -68,6 +76,7 @@ export const CODEX_ALLOWED_EVENT_KEYS = [
|
|
|
68
76
|
"SubagentStart",
|
|
69
77
|
"SubagentStop",
|
|
70
78
|
"Stop",
|
|
79
|
+
"SessionEnd",
|
|
71
80
|
];
|
|
72
81
|
/** Every supported adapter, fully wireable by `harn init`. */
|
|
73
82
|
export const ADAPTER_SPECS = {
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* Every helper writes to process.stdout + newline-terminates so callers can
|
|
18
18
|
* fire-and-forget. Empty text → no-op (no JSON written).
|
|
19
19
|
*/
|
|
20
|
-
import type { Adapter } from "
|
|
21
|
-
export type SystemEvent = "SessionStart" | "UserPromptSubmit" | "SubagentStart";
|
|
20
|
+
import type { Adapter } from "../../adapter.js";
|
|
21
|
+
export type SystemEvent = "SessionStart" | "UserPromptSubmit" | "SubagentStart" | "PreToolUse" | "PostToolUse";
|
|
22
22
|
/** Emit a context-injection (peer table, wiring check, council pending, …). */
|
|
23
23
|
export declare function emitContext(adapter: Adapter, event: SystemEvent, text: string): void;
|
|
24
24
|
/** Emit a PreToolUse deny: blocks the tool call with `reason` shown to the model. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,aAAa,CAAC;AAElB,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIpF;AAED,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI/D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,SAAS,CAAC,EAAE,MAAM,GACjB,CAAC,GAAG,CAAC,CAwBP"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* Phase 2 ship criterion is "parser correctness across thousands of real
|
|
10
10
|
* events without affecting behavior": fail-soft beats fail-hard.
|
|
11
11
|
*/
|
|
12
|
-
import type { Adapter } from "
|
|
12
|
+
import type { Adapter } from "../../adapter.js";
|
|
13
13
|
export interface ParsedPayload {
|
|
14
14
|
hook_event_name?: string;
|
|
15
15
|
session_id?: string;
|
|
@@ -25,6 +25,7 @@ export interface ParsedPayload {
|
|
|
25
25
|
model?: string;
|
|
26
26
|
source?: string;
|
|
27
27
|
prompt?: string;
|
|
28
|
+
agent_message?: string;
|
|
28
29
|
tool_name?: string;
|
|
29
30
|
tool_input?: unknown;
|
|
30
31
|
tool_response?: unknown;
|
|
@@ -33,6 +34,8 @@ export interface ParsedPayload {
|
|
|
33
34
|
clean_exit?: boolean;
|
|
34
35
|
exit_status?: string;
|
|
35
36
|
reason?: string;
|
|
37
|
+
/** Privacy-safe Cursor execution surface, derived from native lifecycle metadata. */
|
|
38
|
+
cursor_mode?: "local" | "cloud" | "unknown";
|
|
36
39
|
/** original parsed object, preserved for callers that need a field we didn't pluck. */
|
|
37
40
|
raw: Record<string, unknown>;
|
|
38
41
|
}
|
|
@@ -56,12 +59,12 @@ export declare function extractToolDescription(toolInput: unknown): string | und
|
|
|
56
59
|
* Map the CLI-arg event-name (kebab-case, set by us in the wiring) to one of
|
|
57
60
|
* the canonical event_types. Phase 2's CLI passes the kebab event
|
|
58
61
|
* name; this returns the canonical event_type or null when the event has no
|
|
59
|
-
* canonical equivalent
|
|
60
|
-
*
|
|
62
|
+
* canonical equivalent. Cursor's shell-specific hooks are retained as reliable
|
|
63
|
+
* remote/CLI fallbacks and normalized to the same tool events as generic hooks.
|
|
61
64
|
*/
|
|
62
65
|
export declare function normalizeEventName(eventName: string): {
|
|
63
66
|
event_type: NormalizedEventType;
|
|
64
67
|
intra_turn: boolean;
|
|
65
68
|
} | null;
|
|
66
|
-
export type NormalizedEventType = "session.
|
|
69
|
+
export type NormalizedEventType = "session.started" | "session.ended" | "turn.started" | "turn.completed" | "agent.started" | "agent.completed" | "tool.requested" | "wait.started" | "tool.completed" | "context.compaction_started" | "context.compaction_completed";
|
|
67
70
|
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5C,uFAAuF;IACvF,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CA4DhF;AAsCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,EAAE,OAAO,GACjB,MAAM,GAAG,SAAS,CASpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAO7E;AAmBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,GAChB;IAAE,UAAU,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAgCjE;AAED,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,4BAA4B,GAC5B,8BAA8B,CAAC"}
|
|
@@ -23,9 +23,17 @@ export function parsePayload(raw, adapter) {
|
|
|
23
23
|
catch {
|
|
24
24
|
return null;
|
|
25
25
|
}
|
|
26
|
-
const
|
|
27
|
-
const
|
|
26
|
+
const rawSessionId = pickStr(json, "session_id");
|
|
27
|
+
const rawConversationId = pickStr(json, "conversation_id");
|
|
28
|
+
const sessionId = normalizeSessionId(adapter, rawSessionId);
|
|
29
|
+
const conversationId = normalizeSessionId(adapter, rawConversationId);
|
|
28
30
|
const parentSessionId = normalizeSessionId(adapter, pickStr(json, "parent_session_id"));
|
|
31
|
+
const hookEventName = pickStr(json, "hook_event_name");
|
|
32
|
+
const cursorGenerationId = adapter === "cursor" ? pickStr(json, "generation_id") : undefined;
|
|
33
|
+
const cursorShellHook = adapter === "cursor" &&
|
|
34
|
+
(hookEventName === "beforeShellExecution" || hookEventName === "afterShellExecution");
|
|
35
|
+
const cursorCommand = cursorShellHook ? pickStr(json, "command") : undefined;
|
|
36
|
+
const normalizedToolInput = normalizeToolInput(json.tool_input, adapter);
|
|
29
37
|
const normalizedRaw = adapter === "cursor"
|
|
30
38
|
? {
|
|
31
39
|
...json,
|
|
@@ -35,13 +43,15 @@ export function parsePayload(raw, adapter) {
|
|
|
35
43
|
}
|
|
36
44
|
: json;
|
|
37
45
|
return {
|
|
38
|
-
hook_event_name:
|
|
46
|
+
hook_event_name: hookEventName,
|
|
39
47
|
session_id: sessionId,
|
|
40
48
|
agent_id: pickStr(json, "agent_id"),
|
|
41
49
|
subagent_id: pickStr(json, "subagent_id"),
|
|
42
50
|
conversation_id: conversationId,
|
|
43
51
|
parent_session_id: parentSessionId,
|
|
44
|
-
|
|
52
|
+
// Claude Code names its native turn identifier prompt_id; both are the
|
|
53
|
+
// adapter's turn-scoped id and feed native turn stamping (ADR 0078).
|
|
54
|
+
turn_id: pickStr(json, "turn_id") ?? pickStr(json, "prompt_id") ?? cursorGenerationId,
|
|
45
55
|
parent_turn_id: pickStr(json, "parent_turn_id"),
|
|
46
56
|
transcript_path: pickStr(json, "transcript_path"),
|
|
47
57
|
cwd: pickStr(json, "cwd"),
|
|
@@ -49,17 +59,48 @@ export function parsePayload(raw, adapter) {
|
|
|
49
59
|
model: pickStr(json, "model"),
|
|
50
60
|
source: pickStr(json, "source"),
|
|
51
61
|
prompt: pickStr(json, "prompt"),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
62
|
+
agent_message: pickStr(json, "agent_message"),
|
|
63
|
+
tool_name: cursorShellHook ? "Shell" : pickStr(json, "tool_name"),
|
|
64
|
+
tool_input: cursorCommand ? { command: cursorCommand } : normalizedToolInput,
|
|
65
|
+
tool_response: hookEventName === "afterShellExecution" ? json.output : json.tool_response,
|
|
55
66
|
tool_use_id: pickStr(json, "tool_use_id"),
|
|
56
67
|
stop_hook_active: pickBool(json, "stop_hook_active"),
|
|
57
68
|
clean_exit: pickBool(json, "clean_exit"),
|
|
58
69
|
exit_status: pickStr(json, "exit_status"),
|
|
59
70
|
reason: pickStr(json, "reason"),
|
|
71
|
+
cursor_mode: cursorMode(json, adapter, rawSessionId, rawConversationId),
|
|
60
72
|
raw: normalizedRaw,
|
|
61
73
|
};
|
|
62
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Cursor prefixes cloud/private-worker conversations with `bc-`. Current
|
|
77
|
+
* sessionStart payloads also expose `is_background_agent`; either native
|
|
78
|
+
* signal is enough to classify the execution surface without retaining text.
|
|
79
|
+
*/
|
|
80
|
+
function cursorMode(json, adapter, sessionId, conversationId) {
|
|
81
|
+
if (adapter !== "cursor")
|
|
82
|
+
return undefined;
|
|
83
|
+
const background = pickBool(json, "is_background_agent");
|
|
84
|
+
if (background === true)
|
|
85
|
+
return "cloud";
|
|
86
|
+
if (background === false)
|
|
87
|
+
return "local";
|
|
88
|
+
const nativeId = conversationId ?? sessionId;
|
|
89
|
+
if (!nativeId)
|
|
90
|
+
return "unknown";
|
|
91
|
+
return nativeId.startsWith("bc-") ? "cloud" : "local";
|
|
92
|
+
}
|
|
93
|
+
/** Cursor can serialize generic tool_input as a JSON string instead of an object. */
|
|
94
|
+
function normalizeToolInput(value, adapter) {
|
|
95
|
+
if (adapter !== "cursor" || typeof value !== "string")
|
|
96
|
+
return value;
|
|
97
|
+
try {
|
|
98
|
+
return JSON.parse(value);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return value;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
63
104
|
/** Cursor Glass prefixes conversation ids with `bc-`; coordination uses the bare id everywhere. */
|
|
64
105
|
function normalizeSessionId(adapter, value) {
|
|
65
106
|
if (adapter !== "cursor" || !value?.startsWith("bc-") || value.length <= 3)
|
|
@@ -114,39 +155,38 @@ function pickBool(o, k) {
|
|
|
114
155
|
* Map the CLI-arg event-name (kebab-case, set by us in the wiring) to one of
|
|
115
156
|
* the canonical event_types. Phase 2's CLI passes the kebab event
|
|
116
157
|
* name; this returns the canonical event_type or null when the event has no
|
|
117
|
-
* canonical equivalent
|
|
118
|
-
*
|
|
158
|
+
* canonical equivalent. Cursor's shell-specific hooks are retained as reliable
|
|
159
|
+
* remote/CLI fallbacks and normalized to the same tool events as generic hooks.
|
|
119
160
|
*/
|
|
120
161
|
export function normalizeEventName(eventName) {
|
|
121
162
|
switch (eventName) {
|
|
122
163
|
case "session-start":
|
|
123
|
-
return { event_type: "session.
|
|
164
|
+
return { event_type: "session.started", intra_turn: false };
|
|
124
165
|
case "session-end":
|
|
125
|
-
return { event_type: "session.
|
|
166
|
+
return { event_type: "session.ended", intra_turn: false };
|
|
126
167
|
case "user-prompt-submit":
|
|
127
|
-
return { event_type: "
|
|
168
|
+
return { event_type: "turn.started", intra_turn: false };
|
|
128
169
|
case "stop":
|
|
129
|
-
return { event_type: "turn.
|
|
170
|
+
return { event_type: "turn.completed", intra_turn: false };
|
|
130
171
|
case "stop-failure":
|
|
131
|
-
|
|
132
|
-
// attach the failure signal in `data`. Phase 5 may introduce a
|
|
133
|
-
// dedicated `turn.stop_failure` event if the projector needs to branch.
|
|
134
|
-
return { event_type: "turn.stop", intra_turn: false };
|
|
172
|
+
return { event_type: "turn.completed", intra_turn: false };
|
|
135
173
|
case "sub-agent-start":
|
|
136
|
-
return { event_type: "
|
|
174
|
+
return { event_type: "agent.started", intra_turn: false };
|
|
137
175
|
case "sub-agent-stop":
|
|
138
|
-
return { event_type: "
|
|
176
|
+
return { event_type: "agent.completed", intra_turn: false };
|
|
139
177
|
case "pre-tool-use":
|
|
140
178
|
case "before-shell-execution":
|
|
141
|
-
return { event_type: "tool.
|
|
179
|
+
return { event_type: "tool.requested", intra_turn: true };
|
|
180
|
+
case "permission-request":
|
|
181
|
+
return { event_type: "wait.started", intra_turn: true };
|
|
142
182
|
case "post-tool-use":
|
|
143
|
-
|
|
183
|
+
case "after-shell-execution":
|
|
144
184
|
case "post-tool-use-failure":
|
|
145
|
-
return { event_type: "tool.
|
|
185
|
+
return { event_type: "tool.completed", intra_turn: true };
|
|
146
186
|
case "pre-compact":
|
|
147
|
-
return { event_type: "context.
|
|
187
|
+
return { event_type: "context.compaction_started", intra_turn: false };
|
|
148
188
|
case "post-compact":
|
|
149
|
-
return { event_type: "context.
|
|
189
|
+
return { event_type: "context.compaction_completed", intra_turn: false };
|
|
150
190
|
default:
|
|
151
191
|
return null;
|
|
152
192
|
}
|
|
@@ -38,9 +38,21 @@ export declare function makeEntry(shape: HookEntryShape, command: string): HookG
|
|
|
38
38
|
export declare function groupCommands(group: HookGroup): string[];
|
|
39
39
|
/**
|
|
40
40
|
* Whether a hook command string wires the given agent-hook subcommand. The
|
|
41
|
-
*
|
|
41
|
+
* token boundary keeps `stop` from matching `stop-failure`, while accepting a
|
|
42
|
+
* minimal command that ends immediately after the subcommand.
|
|
42
43
|
*/
|
|
43
44
|
export declare function commandWiresSubcommand(command: string, subcommand: string): boolean;
|
|
45
|
+
/** Whether a command invokes Harnery's agent-hook binary at all. */
|
|
46
|
+
export declare function isAgentHookCommand(command: string): boolean;
|
|
47
|
+
/** The canonical command installed for one adapter event. */
|
|
48
|
+
export declare function hookCommand(spec: AdapterSpec, agentHookPath: string, subcommand: string, adapter: AdapterId): string;
|
|
49
|
+
/**
|
|
50
|
+
* Pick a committed hook target that survives cloning the consumer elsewhere.
|
|
51
|
+
* Projects that contain Harnery can use its repo-relative launcher. Standalone
|
|
52
|
+
* consumers use the package's installed `agent-hook` executable from PATH
|
|
53
|
+
* instead of recording a relative path back into one developer's package tree.
|
|
54
|
+
*/
|
|
55
|
+
export declare function agentHookPathForProject(projectRoot: string, packageRoot: string): string;
|
|
44
56
|
export interface WiringDiff {
|
|
45
57
|
/** Spec events not wired in the settings file. */
|
|
46
58
|
missing: HookEvent[];
|
|
@@ -48,10 +60,16 @@ export interface WiringDiff {
|
|
|
48
60
|
present: HookEvent[];
|
|
49
61
|
/**
|
|
50
62
|
* agent-hook subcommands wired in the file that are NOT in the current spec
|
|
51
|
-
* (e.g. an event renamed/removed by an upgrade).
|
|
52
|
-
*
|
|
63
|
+
* (e.g. an event renamed/removed by an upgrade). Re-init removes these, so
|
|
64
|
+
* they are surfaced separately from missing hooks.
|
|
53
65
|
*/
|
|
54
66
|
orphans: string[];
|
|
67
|
+
/** Spec events wired more than once under their correct event key. */
|
|
68
|
+
duplicates: HookEvent[];
|
|
69
|
+
/** Spec events wired under an event key other than the canonical one. */
|
|
70
|
+
misplaced: HookEvent[];
|
|
71
|
+
/** Spec events whose correct-key command differs from init's canonical command. */
|
|
72
|
+
stale: HookEvent[];
|
|
55
73
|
/** Settings fields rejected by a adapter with a strict top-level schema. */
|
|
56
74
|
invalidTopLevelKeys: string[];
|
|
57
75
|
/** Hook event names rejected by a adapter with a strict event schema. */
|
|
@@ -61,13 +79,19 @@ export interface WiringDiff {
|
|
|
61
79
|
* Pure diff of one settings object against one adapter spec. Read-only inverse
|
|
62
80
|
* of `wireHooks`; no fs, so it's unit-testable.
|
|
63
81
|
*/
|
|
64
|
-
export declare function diffWiring(settings: SettingsFile, spec: AdapterSpec
|
|
82
|
+
export declare function diffWiring(settings: SettingsFile, spec: AdapterSpec, expected?: {
|
|
83
|
+
agentHookPath: string;
|
|
84
|
+
adapter: AdapterId;
|
|
85
|
+
}): WiringDiff;
|
|
65
86
|
export interface AdapterWiringStatus {
|
|
66
87
|
adapter: AdapterId;
|
|
67
88
|
/** Settings file path, relative to the project root. */
|
|
68
89
|
settingsFile: string;
|
|
69
90
|
missing: HookEvent[];
|
|
70
91
|
orphans: string[];
|
|
92
|
+
duplicates: HookEvent[];
|
|
93
|
+
misplaced: HookEvent[];
|
|
94
|
+
stale: HookEvent[];
|
|
71
95
|
invalidTopLevelKeys: string[];
|
|
72
96
|
invalidEventKeys: string[];
|
|
73
97
|
parseError?: string;
|
|
@@ -113,4 +137,6 @@ export declare function summarizeAdapterWiring(projectRoot: string): AdapterWiri
|
|
|
113
137
|
* from `dist/`). Returns "" if unresolved — callers omit it from the message.
|
|
114
138
|
*/
|
|
115
139
|
export declare function harneryVersion(): string;
|
|
140
|
+
/** Resolve the package root from either src/ (Bun) or dist/ (Node). */
|
|
141
|
+
export declare function harneryPackageRoot(): string | null;
|
|
116
142
|
//# sourceMappingURL=wiring.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAErB,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5C;AACD,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAE3E;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAMxD;AAED
|
|
1
|
+
{"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAErB,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5C;AACD,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAE3E;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAGnF;AAQD,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,SAAS,GACjB,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAOxF;AAED,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,iCAAiC;IACjC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;;;OAIG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sEAAsE;IACtE,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,yEAAyE;IACzE,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,mFAAmF;IACnF,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,4EAA4E;IAC5E,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,yEAAyE;IACzE,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,WAAW,EACjB,QAAQ,CAAC,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,CAAA;CAAE,GACvD,UAAU,CAoEZ;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,SAAS,CAAC;IACnB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,EAAE,CA2D5E;AAED,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB;;;;OAIG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAkBhF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAUvC;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAkBlD"}
|