@openrig/cli 0.5.17 → 0.6.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/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts +3 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +36 -14
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +3 -1
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +20 -6
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +4 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +8 -2
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +16 -3
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts +1 -0
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +7 -1
- package/daemon/dist/adapters/pi-runner.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +21 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +141 -3
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts +3 -2
- package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
- package/daemon/dist/adapters/yolo-mode.js +10 -2
- package/daemon/dist/adapters/yolo-mode.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/all-migrations.d.ts +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +10 -2
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/086_classification_fields_and_attempts.d.ts +26 -0
- package/daemon/dist/db/migrations/086_classification_fields_and_attempts.d.ts.map +1 -0
- package/daemon/dist/db/migrations/086_classification_fields_and_attempts.js +66 -0
- package/daemon/dist/db/migrations/086_classification_fields_and_attempts.js.map +1 -0
- package/daemon/dist/db/migrations/087_seat_delivery_guard.d.ts +3 -0
- package/daemon/dist/db/migrations/087_seat_delivery_guard.d.ts.map +1 -0
- package/daemon/dist/db/migrations/087_seat_delivery_guard.js +31 -0
- package/daemon/dist/db/migrations/087_seat_delivery_guard.js.map +1 -0
- package/daemon/dist/db/migrations/088_node_permission_selections.d.ts +3 -0
- package/daemon/dist/db/migrations/088_node_permission_selections.d.ts.map +1 -0
- package/daemon/dist/db/migrations/088_node_permission_selections.js +16 -0
- package/daemon/dist/db/migrations/088_node_permission_selections.js.map +1 -0
- package/daemon/dist/db/migrations/089_classification_identity_provenance.d.ts +3 -0
- package/daemon/dist/db/migrations/089_classification_identity_provenance.d.ts.map +1 -0
- package/daemon/dist/db/migrations/089_classification_identity_provenance.js +6 -0
- package/daemon/dist/db/migrations/089_classification_identity_provenance.js.map +1 -0
- package/daemon/dist/domain/applied-launch-observation-store.d.ts +1 -1
- package/daemon/dist/domain/applied-launch-observation-store.d.ts.map +1 -1
- package/daemon/dist/domain/applied-launch-observation-store.js +6 -4
- package/daemon/dist/domain/applied-launch-observation-store.js.map +1 -1
- package/daemon/dist/domain/capture-observer.d.ts +130 -0
- package/daemon/dist/domain/capture-observer.d.ts.map +1 -0
- package/daemon/dist/domain/capture-observer.js +113 -0
- package/daemon/dist/domain/capture-observer.js.map +1 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +24 -3
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/classification-attempts.d.ts +143 -0
- package/daemon/dist/domain/classification-attempts.d.ts.map +1 -0
- package/daemon/dist/domain/classification-attempts.js +316 -0
- package/daemon/dist/domain/classification-attempts.js.map +1 -0
- package/daemon/dist/domain/classification-sources.d.ts +44 -0
- package/daemon/dist/domain/classification-sources.d.ts.map +1 -0
- package/daemon/dist/domain/classification-sources.js +102 -0
- package/daemon/dist/domain/classification-sources.js.map +1 -0
- package/daemon/dist/domain/classifier-lease-manager.d.ts +15 -4
- package/daemon/dist/domain/classifier-lease-manager.d.ts.map +1 -1
- package/daemon/dist/domain/classifier-lease-manager.js +63 -21
- package/daemon/dist/domain/classifier-lease-manager.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +36 -7
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/claude-managed-launch.d.ts +28 -0
- package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -0
- package/daemon/dist/domain/claude-managed-launch.js +111 -0
- package/daemon/dist/domain/claude-managed-launch.js.map +1 -0
- package/daemon/dist/domain/codex-daemon-support.d.ts +16 -0
- package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -0
- package/daemon/dist/domain/codex-daemon-support.js +52 -0
- package/daemon/dist/domain/codex-daemon-support.js.map +1 -0
- package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.js +6 -3
- package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/capabilities.d.ts +19 -0
- package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/capabilities.js +24 -0
- package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/config.js +2 -1
- package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +2 -1
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/manifest.d.ts +54 -0
- package/daemon/dist/domain/gateway/slack/manifest.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/manifest.js +55 -0
- package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -0
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +3 -2
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +9 -5
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
- package/daemon/dist/domain/native-permission-selection.d.ts +13 -0
- package/daemon/dist/domain/native-permission-selection.d.ts.map +1 -0
- package/daemon/dist/domain/native-permission-selection.js +30 -0
- package/daemon/dist/domain/native-permission-selection.js.map +1 -0
- package/daemon/dist/domain/native-permission-store.d.ts +17 -0
- package/daemon/dist/domain/native-permission-store.d.ts.map +1 -0
- package/daemon/dist/domain/native-permission-store.js +36 -0
- package/daemon/dist/domain/native-permission-store.js.map +1 -0
- package/daemon/dist/domain/native-resume-probe.d.ts +3 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +5 -2
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +3 -0
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +2 -0
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +6 -0
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/outbox-handler.d.ts +25 -2
- package/daemon/dist/domain/outbox-handler.d.ts.map +1 -1
- package/daemon/dist/domain/outbox-handler.js +70 -1
- package/daemon/dist/domain/outbox-handler.js.map +1 -1
- package/daemon/dist/domain/permission-drift-observer.d.ts +1 -0
- package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
- package/daemon/dist/domain/permission-drift-observer.js +1 -1
- package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
- package/daemon/dist/domain/permission-drift.d.ts +10 -0
- package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
- package/daemon/dist/domain/permission-drift.js +29 -18
- package/daemon/dist/domain/permission-drift.js.map +1 -1
- package/daemon/dist/domain/project-classifier.d.ts +43 -0
- package/daemon/dist/domain/project-classifier.d.ts.map +1 -1
- package/daemon/dist/domain/project-classifier.js +141 -25
- package/daemon/dist/domain/project-classifier.js.map +1 -1
- package/daemon/dist/domain/proof/judgments.d.ts +16 -0
- package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
- package/daemon/dist/domain/proof/judgments.js +17 -1
- package/daemon/dist/domain/proof/judgments.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +8 -0
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +41 -14
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +28 -1
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +3 -1
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-lifecycle-service.js +7 -0
- package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +4 -0
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +36 -22
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +6 -0
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/seat-delivery-guard.d.ts +64 -0
- package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -0
- package/daemon/dist/domain/seat-delivery-guard.js +224 -0
- package/daemon/dist/domain/seat-delivery-guard.js.map +1 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +19 -1
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts +16 -2
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.js +70 -0
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts +10 -0
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +13 -0
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +19 -1
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +221 -23
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/shadow-capture.d.ts +97 -0
- package/daemon/dist/domain/shadow-capture.d.ts.map +1 -0
- package/daemon/dist/domain/shadow-capture.js +147 -0
- package/daemon/dist/domain/shadow-capture.js.map +1 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +11 -0
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/stream-classification-worker.d.ts +106 -0
- package/daemon/dist/domain/stream-classification-worker.d.ts.map +1 -0
- package/daemon/dist/domain/stream-classification-worker.js +265 -0
- package/daemon/dist/domain/stream-classification-worker.js.map +1 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts +1 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +4 -2
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +7 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +119 -12
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +5 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.js +6 -6
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.d.ts +6 -4
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/view-composer.js +5 -5
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +10 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +3 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +5 -3
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/gateway-slack-surface.d.ts +2 -0
- package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
- package/daemon/dist/gateway-slack-surface.js +2 -0
- package/daemon/dist/gateway-slack-surface.js.map +1 -1
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +28 -2
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/down.d.ts.map +1 -1
- package/daemon/dist/routes/down.js +3 -0
- package/daemon/dist/routes/down.js.map +1 -1
- package/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.js +3 -0
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/projects.d.ts.map +1 -1
- package/daemon/dist/routes/projects.js +205 -18
- package/daemon/dist/routes/projects.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +13 -5
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +78 -1
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +4 -1
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +9 -1
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/server.d.ts +5 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +3 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +32 -8
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/dist/stream-classifier-surface.d.ts +6 -0
- package/daemon/dist/stream-classifier-surface.d.ts.map +1 -0
- package/daemon/dist/stream-classifier-surface.js +6 -0
- package/daemon/dist/stream-classifier-surface.js.map +1 -0
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js +10 -6
- package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
- package/daemon/docs/reference/getting-started.md +63 -5
- package/daemon/docs/reference/rig-spec.md +6 -1
- package/daemon/docs/reference/slack-app-setup.md +90 -0
- package/daemon/docs/reference/stream-classifier-worker.md +244 -0
- package/daemon/policies/builtin/yolo.policy.md +5 -5
- package/daemon/specs/rigs/launch/kernel/rig.yaml +4 -0
- package/dist/build-info.js +3 -3
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +9 -6
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +8 -1
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/preflight.d.ts.map +1 -1
- package/dist/commands/preflight.js +2 -0
- package/dist/commands/preflight.js.map +1 -1
- package/dist/commands/project-jev.d.ts +115 -0
- package/dist/commands/project-jev.d.ts.map +1 -0
- package/dist/commands/project-jev.js +239 -0
- package/dist/commands/project-jev.js.map +1 -0
- package/dist/commands/project-worker.d.ts +96 -0
- package/dist/commands/project-worker.d.ts.map +1 -0
- package/dist/commands/project-worker.js +125 -0
- package/dist/commands/project-worker.js.map +1 -0
- package/dist/commands/project.d.ts +5 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +161 -0
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +79 -0
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +18 -5
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/slack.d.ts +4 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +41 -2
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/terminal.d.ts.map +1 -1
- package/dist/commands/terminal.js +2 -0
- package/dist/commands/terminal.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +6 -0
- package/dist/commands/walk.js.map +1 -1
- package/dist/node-support.d.ts +12 -0
- package/dist/node-support.d.ts.map +1 -0
- package/dist/node-support.js +37 -0
- package/dist/node-support.js.map +1 -0
- package/dist/system-preflight.d.ts +2 -0
- package/dist/system-preflight.d.ts.map +1 -1
- package/dist/system-preflight.js +9 -10
- package/dist/system-preflight.js.map +1 -1
- package/package.json +3 -3
- package/scripts/check-abi.mjs +119 -65
- package/tui/dist/commands/registry.d.ts.map +1 -1
- package/tui/dist/commands/registry.js +3 -0
- package/tui/dist/commands/registry.js.map +1 -1
- package/tui/dist/connections/connections-model.d.ts +11 -1
- package/tui/dist/connections/connections-model.d.ts.map +1 -1
- package/tui/dist/connections/connections-model.js +28 -1
- package/tui/dist/connections/connections-model.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +2 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +1 -0
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +5 -0
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/main.js +16 -2
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/print-for-copy.d.ts +36 -0
- package/tui/dist/print-for-copy.d.ts.map +1 -0
- package/tui/dist/print-for-copy.js +92 -0
- package/tui/dist/print-for-copy.js.map +1 -0
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +4 -1
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/state.d.ts.map +1 -1
- package/tui/dist/state.js +2 -0
- package/tui/dist/state.js.map +1 -1
- package/tui/dist/types.d.ts +8 -0
- package/tui/dist/types.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox-handler.js","sourceRoot":"","sources":["../../src/domain/outbox-handler.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD,kFAAkF;AAClF,oFAAoF;AACpF,mFAAmF;AACnF,uFAAuF;AACvF,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAChF,mFAAmF;AACnF,mFAAmF;AACnF,6EAA6E;AAC7E,mFAAmF;AACnF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"outbox-handler.js","sourceRoot":"","sources":["../../src/domain/outbox-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { type PermissionDriftDiagnostic, type PermissionDriftFs } from "./permis
|
|
|
3
3
|
export interface PermissionDriftReader {
|
|
4
4
|
diagnose(nodeId: string): PermissionDriftDiagnostic | null;
|
|
5
5
|
}
|
|
6
|
+
export declare function loadClaudePermissionModes(): Promise<string[] | null>;
|
|
6
7
|
/** Warmed outside request handling; cold reads are immediate UNKNOWN. */
|
|
7
8
|
export declare class ClaudePermissionModeCache {
|
|
8
9
|
private readonly load;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-drift-observer.d.ts","sourceRoot":"","sources":["../../src/domain/permission-drift-observer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAAC;CAC5D;
|
|
1
|
+
{"version":3,"file":"permission-drift-observer.d.ts","sourceRoot":"","sources":["../../src/domain/permission-drift-observer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAAC;CAC5D;AAiBD,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAQ1E;AAED,yEAAyE;AACzE,qBAAa,yBAAyB;IAMlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAPtB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAK;gBAGF,IAAI,GAAE,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAA6B,EAChE,KAAK,SAAS,EACd,GAAG,GAAE,MAAM,MAAiB;IAG/C,IAAI,IAAI,IAAI;IAYZ,IAAI,IAAI,MAAM,EAAE,GAAG,IAAI;CAIxB;AAED,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAoBxD,qFAAqF;AACrF,qBAAa,uBAAwB,YAAW,qBAAqB;IAMjE,OAAO,CAAC,QAAQ,CAAC,KAAK;IALxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAC7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAa;gBAGf,KAAK,EAAE;QACtB,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;QACtB,EAAE,CAAC,EAAE,iBAAiB,CAAC;QACvB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;QACjB,eAAe,CAAC,EAAE,yBAAyB,CAAC;QAC5C,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB;IAcH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI;CAc3D"}
|
|
@@ -20,7 +20,7 @@ function commandAvailable(command) {
|
|
|
20
20
|
}
|
|
21
21
|
return false;
|
|
22
22
|
}
|
|
23
|
-
async function loadClaudePermissionModes() {
|
|
23
|
+
export async function loadClaudePermissionModes() {
|
|
24
24
|
return await new Promise((resolve) => {
|
|
25
25
|
execFile("claude", ["--help"], {
|
|
26
26
|
encoding: "utf8",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-drift-observer.js","sourceRoot":"","sources":["../../src/domain/permission-drift-observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAG3B,MAAM,uBAAuB,CAAC;AAM/B,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACnC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,yBAAyB;
|
|
1
|
+
{"version":3,"file":"permission-drift-observer.js","sourceRoot":"","sources":["../../src/domain/permission-drift-observer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ export interface AppliedLaunchObservation {
|
|
|
6
6
|
state: AppliedLaunchState;
|
|
7
7
|
value: string | null;
|
|
8
8
|
reason?: string;
|
|
9
|
+
/** Emitted Codex approval argument; null/absent does not infer a native default. */
|
|
10
|
+
approvalPolicy?: "never" | null;
|
|
9
11
|
}
|
|
10
12
|
export type TransportState = "healthy" | "connect" | "timeout" | "response";
|
|
11
13
|
export type CwdReadState = "visible" | "denied" | "unknown";
|
|
@@ -36,6 +38,14 @@ export interface PermissionDriftDiagnostic {
|
|
|
36
38
|
state: CommandPathState;
|
|
37
39
|
};
|
|
38
40
|
enforcement: RuntimeEnforcementDiagnostic;
|
|
41
|
+
/** File comparison only; neither a settings file nor an argument proves native enforcement. */
|
|
42
|
+
configuration?: {
|
|
43
|
+
comparison: EnforcementState;
|
|
44
|
+
expected: string | null;
|
|
45
|
+
observed: EffectiveClaudePermission | null;
|
|
46
|
+
sourcePath: string | null;
|
|
47
|
+
reason?: string;
|
|
48
|
+
};
|
|
39
49
|
observedAt: string;
|
|
40
50
|
}
|
|
41
51
|
export interface PermissionDriftFs {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-drift.d.ts","sourceRoot":"","sources":["../../src/domain/permission-drift.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC/F,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"permission-drift.d.ts","sourceRoot":"","sources":["../../src/domain/permission-drift.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,21 +11,26 @@ export function parseClaudePermissionModes(help) {
|
|
|
11
11
|
return values.length > 0 ? values : null;
|
|
12
12
|
}
|
|
13
13
|
export function observeClaudePermission(flag) {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const selected = /^--permission-mode ([A-Za-z][A-Za-z0-9]*)$/.exec(flag.trim());
|
|
15
|
+
if (selected) {
|
|
16
|
+
return { runtime: "claude-code", axis: "permission", state: "observed", value: selected[1],
|
|
17
|
+
reason: "emitted_launch_arguments" };
|
|
16
18
|
}
|
|
17
19
|
if (flag.trim() === "--dangerously-skip-permissions") {
|
|
18
|
-
return { runtime: "claude-code", axis: "permission", state: "observed", value: "bypassPermissions" };
|
|
20
|
+
return { runtime: "claude-code", axis: "permission", state: "observed", value: "bypassPermissions", reason: "emitted_launch_arguments" };
|
|
19
21
|
}
|
|
20
22
|
return { runtime: "claude-code", axis: "permission", state: "unknown", value: null, reason: "unrecognized_launch_argument" };
|
|
21
23
|
}
|
|
22
24
|
export function observeCodexSandbox(arg) {
|
|
23
25
|
const normalized = arg.trim().replace(/\s+/g, " ");
|
|
24
26
|
if (normalized === "-s workspace-write") {
|
|
25
|
-
return { runtime: "codex", axis: "sandbox", state: "observed", value: "workspace-write" };
|
|
27
|
+
return { runtime: "codex", axis: "sandbox", state: "observed", value: "workspace-write", reason: "emitted_launch_arguments" };
|
|
26
28
|
}
|
|
27
29
|
if (normalized === "-s danger-full-access") {
|
|
28
|
-
return { runtime: "codex", axis: "sandbox", state: "observed", value: "danger-full-access" };
|
|
30
|
+
return { runtime: "codex", axis: "sandbox", state: "observed", value: "danger-full-access", reason: "emitted_launch_arguments" };
|
|
31
|
+
}
|
|
32
|
+
if (normalized === "-s danger-full-access -a never") {
|
|
33
|
+
return { runtime: "codex", axis: "sandbox", state: "observed", value: "danger-full-access", approvalPolicy: "never", reason: "emitted_launch_arguments" };
|
|
29
34
|
}
|
|
30
35
|
if (normalized.startsWith("-p ")) {
|
|
31
36
|
return { runtime: "codex", axis: "sandbox", state: "unknown", value: null, reason: "named_profile_unresolved" };
|
|
@@ -86,16 +91,6 @@ function inspectClaude(cwd, applied, fs) {
|
|
|
86
91
|
if (!applied || applied.runtime !== "claude-code" || applied.axis !== "permission" || applied.state !== "observed" || !expected) {
|
|
87
92
|
return unknownEnforcement("permission", expected, sourcePath, applied?.reason ?? "applied_launch_unknown");
|
|
88
93
|
}
|
|
89
|
-
if (expected === "bypassPermissions") {
|
|
90
|
-
return {
|
|
91
|
-
axis: "permission",
|
|
92
|
-
state: "aligned",
|
|
93
|
-
expected,
|
|
94
|
-
effective: expected,
|
|
95
|
-
sourcePath: null,
|
|
96
|
-
reason: "launch_bypasses_project_permissions",
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
94
|
let raw;
|
|
100
95
|
try {
|
|
101
96
|
raw = fs.readFile(sourcePath);
|
|
@@ -171,14 +166,30 @@ function inspectLaunchBoundRuntime(runtime, applied) {
|
|
|
171
166
|
};
|
|
172
167
|
}
|
|
173
168
|
export function diagnoseRuntimePosture(input) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
169
|
+
// This store records launch arguments, including older records without a reason.
|
|
170
|
+
// Preserve their bytes; generation matching does not prove native enforcement.
|
|
171
|
+
const applied = input.applied;
|
|
172
|
+
const launchArguments = applied?.state === "observed" && applied.runtime === input.runtime
|
|
173
|
+
&& (input.runtime === "claude-code" || input.runtime === "codex");
|
|
174
|
+
const enforcement = launchArguments
|
|
175
|
+
? unknownEnforcement(applied.axis, applied.value, null, "native_permission_effect_unverified")
|
|
176
|
+
: input.runtime === "claude-code"
|
|
177
|
+
? inspectClaude(input.cwd, input.applied, input.fs)
|
|
178
|
+
: inspectLaunchBoundRuntime(input.runtime, input.applied);
|
|
179
|
+
const config = input.runtime === "claude-code" && launchArguments
|
|
180
|
+
? inspectClaude(input.cwd, input.applied, input.fs) : null;
|
|
177
181
|
return {
|
|
178
182
|
transport: { state: "healthy" },
|
|
179
183
|
cwdRead: { state: cwdReadState(input.fs, input.cwd) },
|
|
180
184
|
commandPath: { state: commandPathState(input.fs, input.runtime) },
|
|
181
185
|
enforcement,
|
|
186
|
+
...(config ? { configuration: {
|
|
187
|
+
comparison: config.state,
|
|
188
|
+
expected: config.expected,
|
|
189
|
+
observed: typeof config.effective === "object" ? config.effective : null,
|
|
190
|
+
sourcePath: config.sourcePath,
|
|
191
|
+
...(config.reason ? { reason: config.reason } : {}),
|
|
192
|
+
} } : {}),
|
|
182
193
|
observedAt: (input.now?.() ?? new Date()).toISOString(),
|
|
183
194
|
};
|
|
184
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-drift.js","sourceRoot":"","sources":["../../src/domain/permission-drift.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"permission-drift.js","sourceRoot":"","sources":["../../src/domain/permission-drift.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import type { IdentityProvenance } from "../routes/require-sender-identity.js";
|
|
1
2
|
import type Database from "better-sqlite3";
|
|
2
3
|
import type { EventBus } from "./event-bus.js";
|
|
3
4
|
import type { ClassifierLeaseManager } from "./classifier-lease-manager.js";
|
|
4
5
|
/**
|
|
5
6
|
* Project classifier (PL-004 Phase B; L2 Project / Classifier — write path).
|
|
7
|
+
* 0.6.0 S02 P1: results bind to a lease id and are validated inside the write
|
|
8
|
+
* transaction; four nullable label fields and version bindings (migration 086).
|
|
6
9
|
*
|
|
7
10
|
* Per PRD § L2 + slice IMPL § Guard Checkpoint Focus item 1+2+4:
|
|
8
11
|
* - Lease validation via classifier-lease-manager (single-writer contract).
|
|
@@ -24,22 +27,55 @@ export interface ProjectClassification {
|
|
|
24
27
|
classificationConfidence: string | null;
|
|
25
28
|
classificationDestination: string | null;
|
|
26
29
|
action: string | null;
|
|
30
|
+
/** 0.6.0 S02 fields (migration 086). NULL = unknown; rows before 086 are NULL. */
|
|
31
|
+
area: string | null;
|
|
32
|
+
scopeRef: string | null;
|
|
33
|
+
duplicateOfStreamItemId: string | null;
|
|
34
|
+
/** true / false only when the classifier stated it; null = unknown, never false. */
|
|
35
|
+
needsHuman: boolean | null;
|
|
36
|
+
/** Result binding (086): the lease and versions the label was produced under. */
|
|
37
|
+
leaseId: string | null;
|
|
38
|
+
classifierVersion: string | null;
|
|
39
|
+
taxonomyVersion: string | null;
|
|
40
|
+
candidateSetVersion: string | null;
|
|
27
41
|
classifierSession: string;
|
|
28
42
|
tsProjected: string;
|
|
43
|
+
identityProvenance: IdentityProvenance | null;
|
|
29
44
|
}
|
|
30
45
|
export interface ProjectClassifyInput {
|
|
46
|
+
identityProvenance?: IdentityProvenance;
|
|
31
47
|
streamItemId: string;
|
|
32
48
|
classifierSession: string;
|
|
49
|
+
/** Required (S02 P1): the lease this result was computed under. */
|
|
50
|
+
leaseId: string;
|
|
51
|
+
/**
|
|
52
|
+
* Optional attempt-ledger binding; marked `written` in the same transaction.
|
|
53
|
+
* Omit it for a manual classification (not ledger-bound).
|
|
54
|
+
*/
|
|
55
|
+
attemptId?: string;
|
|
56
|
+
/** Required with attemptId: the executionId from the begin() that produced this result. */
|
|
57
|
+
executionId?: string;
|
|
33
58
|
classificationType?: string;
|
|
34
59
|
classificationUrgency?: string;
|
|
35
60
|
classificationMaturity?: string;
|
|
36
61
|
classificationConfidence?: string;
|
|
37
62
|
classificationDestination?: string;
|
|
38
63
|
action?: string;
|
|
64
|
+
area?: string;
|
|
65
|
+
scopeRef?: string;
|
|
66
|
+
duplicateOfStreamItemId?: string;
|
|
67
|
+
needsHuman?: boolean | null;
|
|
68
|
+
classifierVersion?: string;
|
|
69
|
+
taxonomyVersion?: string;
|
|
70
|
+
candidateSetVersion?: string;
|
|
39
71
|
}
|
|
40
72
|
export interface ProjectListOptions {
|
|
41
73
|
classifierSession?: string;
|
|
42
74
|
classificationDestination?: string;
|
|
75
|
+
area?: string;
|
|
76
|
+
scopeRef?: string;
|
|
77
|
+
/** "true" | "false" | "unknown" (NULL). */
|
|
78
|
+
needsHuman?: "true" | "false" | "unknown";
|
|
43
79
|
limit?: number;
|
|
44
80
|
}
|
|
45
81
|
export declare class ProjectClassifierError extends Error {
|
|
@@ -66,6 +102,13 @@ export declare class ProjectClassifier {
|
|
|
66
102
|
* 3. Emit project.classified event.
|
|
67
103
|
*/
|
|
68
104
|
classify(input: ProjectClassifyInput): ProjectClassification;
|
|
105
|
+
private streamItemExists;
|
|
106
|
+
/**
|
|
107
|
+
* The attempt must be in flight under THIS lease, for THIS item and the same
|
|
108
|
+
* classifier/taxonomy versions the result claims. Marked `written` inside the
|
|
109
|
+
* classify transaction, so the ledger and the row can never disagree.
|
|
110
|
+
*/
|
|
111
|
+
private bindAttemptWritten;
|
|
69
112
|
getById(projectId: string): ProjectClassification | null;
|
|
70
113
|
getByStreamItemId(streamItemId: string): ProjectClassification | null;
|
|
71
114
|
list(opts?: ProjectListOptions): ProjectClassification[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-classifier.d.ts","sourceRoot":"","sources":["../../src/domain/project-classifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E
|
|
1
|
+
{"version":3,"file":"project-classifier.d.ts","sourceRoot":"","sources":["../../src/domain/project-classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,39 +30,45 @@ export class ProjectClassifier {
|
|
|
30
30
|
* 3. Emit project.classified event.
|
|
31
31
|
*/
|
|
32
32
|
classify(input) {
|
|
33
|
-
|
|
34
|
-
// lease_held by other session, or lease_expired.
|
|
35
|
-
this.leaseManager.requireActiveHolder(input.classifierSession);
|
|
36
|
-
// R1 fix (BLOCKER 1): existence check on stream_item_id. The L1→L2
|
|
37
|
-
// FK in migration 028 is a defense-in-depth safety net, but the SQLite
|
|
38
|
-
// FK violation would surface as an opaque error string. Pre-checking
|
|
39
|
-
// here gives a clean structured error (`unknown_stream_item`) that
|
|
40
|
-
// routes can map to a 400-class status.
|
|
41
|
-
const streamRow = this.db
|
|
42
|
-
.prepare(`SELECT 1 FROM stream_items WHERE stream_item_id = ? LIMIT 1`)
|
|
43
|
-
.get(input.streamItemId);
|
|
44
|
-
if (!streamRow) {
|
|
45
|
-
throw new ProjectClassifierError("unknown_stream_item", `stream_item_id ${input.streamItemId} does not exist in stream_items; emit it first via 'rig stream emit' or check the id`, { streamItemId: input.streamItemId });
|
|
46
|
-
}
|
|
47
|
-
// Pre-check idempotency for a clean error path (constraint violation
|
|
48
|
-
// would also catch this but the SQLite error message is opaque).
|
|
49
|
-
const existing = this.db
|
|
50
|
-
.prepare(`SELECT * FROM project_classifications WHERE stream_item_id = ?`)
|
|
51
|
-
.get(input.streamItemId);
|
|
52
|
-
if (existing) {
|
|
53
|
-
throw new ProjectClassifierError("idempotency_violation", `stream_item_id ${input.streamItemId} is already projected as project_id ${existing.project_id} by ${existing.classifier_session}`, { existingProjectId: existing.project_id, existingClassifier: existing.classifier_session });
|
|
54
|
-
}
|
|
33
|
+
validateClassifyInput(input);
|
|
55
34
|
const projectId = ulid();
|
|
56
35
|
const tsProjected = this.now().toISOString();
|
|
36
|
+
// S02 P1: every check that decides whether this result may be written runs
|
|
37
|
+
// INSIDE the write transaction, so a lease replaced or expired between the
|
|
38
|
+
// check and the insert cannot let a late result through.
|
|
57
39
|
const txn = this.db.transaction(() => {
|
|
40
|
+
// Lease: active, same session, same lease id, not expired.
|
|
41
|
+
this.leaseManager.requireActiveHolder(input.classifierSession, input.leaseId);
|
|
42
|
+
// R1 fix (BLOCKER 1): existence check on stream_item_id. The L1→L2
|
|
43
|
+
// FK in migration 028 is a defense-in-depth safety net, but the SQLite
|
|
44
|
+
// FK violation would surface as an opaque error string. Pre-checking
|
|
45
|
+
// here gives a clean structured error (`unknown_stream_item`) that
|
|
46
|
+
// routes can map to a 400-class status.
|
|
47
|
+
if (!this.streamItemExists(input.streamItemId)) {
|
|
48
|
+
throw new ProjectClassifierError("unknown_stream_item", `stream_item_id ${input.streamItemId} does not exist in stream_items; emit it first via 'rig stream emit' or check the id`, { streamItemId: input.streamItemId });
|
|
49
|
+
}
|
|
50
|
+
if (input.duplicateOfStreamItemId !== undefined && !this.streamItemExists(input.duplicateOfStreamItemId)) {
|
|
51
|
+
throw new ProjectClassifierError("invalid_duplicate_of", `duplicateOfStreamItemId ${input.duplicateOfStreamItemId} does not exist in stream_items`, { duplicateOfStreamItemId: input.duplicateOfStreamItemId });
|
|
52
|
+
}
|
|
53
|
+
// First-write-wins (unchanged): a second classify is a clean 409.
|
|
54
|
+
const existing = this.db
|
|
55
|
+
.prepare(`SELECT * FROM project_classifications WHERE stream_item_id = ?`)
|
|
56
|
+
.get(input.streamItemId);
|
|
57
|
+
if (existing) {
|
|
58
|
+
throw new ProjectClassifierError("idempotency_violation", `stream_item_id ${input.streamItemId} is already projected as project_id ${existing.project_id} by ${existing.classifier_session}`, { existingProjectId: existing.project_id, existingClassifier: existing.classifier_session });
|
|
59
|
+
}
|
|
60
|
+
if (input.attemptId !== undefined)
|
|
61
|
+
this.bindAttemptWritten(input);
|
|
58
62
|
this.db
|
|
59
63
|
.prepare(`INSERT INTO project_classifications (
|
|
60
64
|
project_id, stream_item_id,
|
|
61
65
|
classification_type, classification_urgency, classification_maturity,
|
|
62
66
|
classification_confidence, classification_destination, action,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
67
|
+
area, scope_ref, duplicate_of_stream_item_id, needs_human,
|
|
68
|
+
lease_id, classifier_version, taxonomy_version, candidate_set_version,
|
|
69
|
+
classifier_session, ts_projected, identity_provenance
|
|
70
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
71
|
+
.run(projectId, input.streamItemId, input.classificationType ?? null, input.classificationUrgency ?? null, input.classificationMaturity ?? null, input.classificationConfidence ?? null, input.classificationDestination ?? null, input.action ?? null, input.area ?? null, input.scopeRef ?? null, input.duplicateOfStreamItemId ?? null, input.needsHuman === true ? 1 : input.needsHuman === false ? 0 : null, input.leaseId, input.classifierVersion ?? null, input.taxonomyVersion ?? null, input.candidateSetVersion ?? null, input.classifierSession, tsProjected, input.identityProvenance ?? null);
|
|
66
72
|
return this.eventBus.persistWithinTransaction({
|
|
67
73
|
type: "project.classified",
|
|
68
74
|
projectId,
|
|
@@ -76,6 +82,38 @@ export class ProjectClassifier {
|
|
|
76
82
|
this.eventBus.notifySubscribers(persisted);
|
|
77
83
|
return this.getByIdOrThrow(projectId);
|
|
78
84
|
}
|
|
85
|
+
streamItemExists(streamItemId) {
|
|
86
|
+
return this.db.prepare(`SELECT 1 FROM stream_items WHERE stream_item_id = ? LIMIT 1`).get(streamItemId) !== undefined;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The attempt must be in flight under THIS lease, for THIS item and the same
|
|
90
|
+
* classifier/taxonomy versions the result claims. Marked `written` inside the
|
|
91
|
+
* classify transaction, so the ledger and the row can never disagree.
|
|
92
|
+
*/
|
|
93
|
+
bindAttemptWritten(input) {
|
|
94
|
+
const attempt = this.db
|
|
95
|
+
.prepare(`SELECT * FROM classification_attempts WHERE attempt_id = ?`)
|
|
96
|
+
.get(input.attemptId);
|
|
97
|
+
if (attempt && attempt.execution_id !== input.executionId) {
|
|
98
|
+
throw new ProjectClassifierError("attempt_superseded", "this execution was superseded by a newer execution of the attempt", {
|
|
99
|
+
attemptId: input.attemptId,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
if (!attempt ||
|
|
103
|
+
attempt.status !== "in_flight" ||
|
|
104
|
+
attempt.lease_id !== input.leaseId ||
|
|
105
|
+
attempt.stream_item_id !== input.streamItemId ||
|
|
106
|
+
attempt.classifier_version !== input.classifierVersion ||
|
|
107
|
+
attempt.taxonomy_version !== input.taxonomyVersion) {
|
|
108
|
+
throw new ProjectClassifierError("attempt_mismatch", "attemptId is not in flight for this item, lease and versions", {
|
|
109
|
+
attemptId: input.attemptId,
|
|
110
|
+
attemptStatus: attempt?.status ?? null,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
this.db
|
|
114
|
+
.prepare(`UPDATE classification_attempts SET status = 'written', retry_after = NULL, updated_at = ? WHERE attempt_id = ?`)
|
|
115
|
+
.run(this.now().toISOString(), attempt.attempt_id);
|
|
116
|
+
}
|
|
79
117
|
getById(projectId) {
|
|
80
118
|
const row = this.db
|
|
81
119
|
.prepare(`SELECT * FROM project_classifications WHERE project_id = ?`)
|
|
@@ -100,6 +138,20 @@ export class ProjectClassifier {
|
|
|
100
138
|
conditions.push("classification_destination = ?");
|
|
101
139
|
params.push(opts.classificationDestination);
|
|
102
140
|
}
|
|
141
|
+
if (opts?.area) {
|
|
142
|
+
conditions.push("area = ?");
|
|
143
|
+
params.push(opts.area);
|
|
144
|
+
}
|
|
145
|
+
if (opts?.scopeRef) {
|
|
146
|
+
conditions.push("scope_ref = ?");
|
|
147
|
+
params.push(opts.scopeRef);
|
|
148
|
+
}
|
|
149
|
+
if (opts?.needsHuman === "true")
|
|
150
|
+
conditions.push("needs_human = 1");
|
|
151
|
+
else if (opts?.needsHuman === "false")
|
|
152
|
+
conditions.push("needs_human = 0");
|
|
153
|
+
else if (opts?.needsHuman === "unknown")
|
|
154
|
+
conditions.push("needs_human IS NULL");
|
|
103
155
|
const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
104
156
|
params.push(limit);
|
|
105
157
|
const rows = this.db
|
|
@@ -124,9 +176,73 @@ export class ProjectClassifier {
|
|
|
124
176
|
classificationConfidence: row.classification_confidence,
|
|
125
177
|
classificationDestination: row.classification_destination,
|
|
126
178
|
action: row.action,
|
|
179
|
+
area: row.area ?? null,
|
|
180
|
+
scopeRef: row.scope_ref ?? null,
|
|
181
|
+
duplicateOfStreamItemId: row.duplicate_of_stream_item_id ?? null,
|
|
182
|
+
needsHuman: row.needs_human === 1 ? true : row.needs_human === 0 ? false : null,
|
|
183
|
+
leaseId: row.lease_id ?? null,
|
|
184
|
+
classifierVersion: row.classifier_version ?? null,
|
|
185
|
+
taxonomyVersion: row.taxonomy_version ?? null,
|
|
186
|
+
candidateSetVersion: row.candidate_set_version ?? null,
|
|
127
187
|
classifierSession: row.classifier_session,
|
|
128
188
|
tsProjected: row.ts_projected,
|
|
189
|
+
identityProvenance: row.identity_provenance ?? null,
|
|
129
190
|
};
|
|
130
191
|
}
|
|
131
192
|
}
|
|
193
|
+
/** Consumed optional string fields: a string when supplied, never null/number/object. */
|
|
194
|
+
const OPTIONAL_STRING_FIELDS = [
|
|
195
|
+
"attemptId", "executionId",
|
|
196
|
+
"classificationType", "classificationUrgency", "classificationMaturity",
|
|
197
|
+
"classificationConfidence", "classificationDestination", "action",
|
|
198
|
+
"area", "scopeRef", "duplicateOfStreamItemId",
|
|
199
|
+
"classifierVersion", "taxonomyVersion", "candidateSetVersion",
|
|
200
|
+
];
|
|
201
|
+
/** IDs and versions must also be non-blank; free-text label fields may be any string. */
|
|
202
|
+
const NON_BLANK_FIELDS = new Set([
|
|
203
|
+
"attemptId", "executionId", "scopeRef", "duplicateOfStreamItemId",
|
|
204
|
+
"classifierVersion", "taxonomyVersion", "candidateSetVersion",
|
|
205
|
+
]);
|
|
206
|
+
/**
|
|
207
|
+
* Shape checks for consumed fields only (S02 P1). Label VALUES stay
|
|
208
|
+
* agent-authoritative; the daemon checks what code relies on, before any SQL.
|
|
209
|
+
* String-or-omitted everywhere except needsHuman (boolean, null = unknown, or omitted).
|
|
210
|
+
*/
|
|
211
|
+
function validateClassifyInput(input) {
|
|
212
|
+
const raw = input;
|
|
213
|
+
if (input.identityProvenance !== undefined && !["transport:v1", "relay:v1", "claimed:v1", "origin-unknown:v1"].includes(input.identityProvenance)) {
|
|
214
|
+
throw new ProjectClassifierError("invalid_field", "unknown identity provenance", { field: "identityProvenance" });
|
|
215
|
+
}
|
|
216
|
+
for (const field of ["streamItemId", "classifierSession"]) {
|
|
217
|
+
if (typeof raw[field] !== "string" || raw[field].trim() === "") {
|
|
218
|
+
throw new ProjectClassifierError("invalid_field", `${field} must be a non-empty string`, { field });
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (typeof input.leaseId !== "string" || input.leaseId.trim() === "") {
|
|
222
|
+
throw new ProjectClassifierError("lease_id_required", "leaseId is required: bind the result to the lease it was computed under (rig project lease-acquire returns it)");
|
|
223
|
+
}
|
|
224
|
+
for (const field of OPTIONAL_STRING_FIELDS) {
|
|
225
|
+
const value = raw[field];
|
|
226
|
+
if (value === undefined)
|
|
227
|
+
continue;
|
|
228
|
+
if (typeof value !== "string" || (NON_BLANK_FIELDS.has(field) && value.trim() === "")) {
|
|
229
|
+
throw new ProjectClassifierError("invalid_field", `${field} must be ${NON_BLANK_FIELDS.has(field) ? "a non-empty string" : "a string"} when supplied`, { field });
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (input.needsHuman !== undefined && input.needsHuman !== null && typeof input.needsHuman !== "boolean") {
|
|
233
|
+
throw new ProjectClassifierError("invalid_needs_human", "needsHuman must be true, false or null (unknown)");
|
|
234
|
+
}
|
|
235
|
+
if (input.duplicateOfStreamItemId !== undefined && input.duplicateOfStreamItemId === input.streamItemId) {
|
|
236
|
+
throw new ProjectClassifierError("invalid_duplicate_of", "an item cannot be a duplicate of itself");
|
|
237
|
+
}
|
|
238
|
+
if (input.scopeRef !== undefined && !input.candidateSetVersion) {
|
|
239
|
+
throw new ProjectClassifierError("candidate_set_version_required", "scopeRef must be bound to the scope candidate-set version it was chosen from");
|
|
240
|
+
}
|
|
241
|
+
if (input.attemptId !== undefined && (!input.classifierVersion || !input.taxonomyVersion)) {
|
|
242
|
+
throw new ProjectClassifierError("attempt_versions_required", "a result bound to an attemptId must carry classifierVersion and taxonomyVersion");
|
|
243
|
+
}
|
|
244
|
+
if (input.attemptId !== undefined && input.executionId === undefined) {
|
|
245
|
+
throw new ProjectClassifierError("execution_id_required", "a result bound to an attemptId must carry the executionId returned by its begin()");
|
|
246
|
+
}
|
|
247
|
+
}
|
|
132
248
|
//# sourceMappingURL=project-classifier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-classifier.js","sourceRoot":"","sources":["../../src/domain/project-classifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project-classifier.js","sourceRoot":"","sources":["../../src/domain/project-classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,11 +117,27 @@ export interface JudgeInput {
|
|
|
117
117
|
operationId?: string;
|
|
118
118
|
replace?: boolean;
|
|
119
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Records a verifiable proof judgment for a slice item into the judgments ledger.
|
|
122
|
+
*
|
|
123
|
+
* @param missionsRoot - Workspace root path for resolving scopes.
|
|
124
|
+
* @param input - Judgment details including scope, item, verdict, and evidence.
|
|
125
|
+
* @param actor - Identifier of the judging actor authorized under the proof policy.
|
|
126
|
+
* @param provenance - Attestation provenance string recorded in the ledger.
|
|
127
|
+
* @returns Recorded judgment receipt, current slice readiness, and replay status.
|
|
128
|
+
*/
|
|
120
129
|
export declare function recordJudgment(missionsRoot: string, input: JudgeInput, actor: string, provenance: string): {
|
|
121
130
|
judgment: Judgment;
|
|
122
131
|
readiness: ScopeReadiness;
|
|
123
132
|
replayed: boolean;
|
|
124
133
|
};
|
|
134
|
+
/**
|
|
135
|
+
* Evaluates readiness for a mission by reading its composition and resolving member slices.
|
|
136
|
+
*
|
|
137
|
+
* @param missionDir - Path to the mission directory containing mission.yaml.
|
|
138
|
+
* @param readPolicy - Reader function for determining applicable proof policy.
|
|
139
|
+
* @returns Evaluated mission readiness, including revision, state, slices, and any issues.
|
|
140
|
+
*/
|
|
125
141
|
export declare function readMissionReadiness(missionDir: string, readPolicy?: ProofPolicyRead): MissionReadiness;
|
|
126
142
|
export declare function readProjectReadiness(missionsRoot: string, readPolicy?: ProofPolicyRead): {
|
|
127
143
|
revision: string;
|