@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
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { ClassifierLeaseError } from "./classifier-lease-manager.js";
|
|
2
|
+
import { ClassificationAttemptError, MAX_ELIGIBLE_PAGE } from "./classification-attempts.js";
|
|
3
|
+
import { ProjectClassifierError } from "./project-classifier.js";
|
|
4
|
+
export const LABEL_FIELDS = ["classificationType", "classificationUrgency", "classificationMaturity", "classificationConfidence",
|
|
5
|
+
"classificationDestination", "area", "scopeRef"];
|
|
6
|
+
/**
|
|
7
|
+
* Offline/agent-owned worker core. It is NOT instantiated by daemon startup.
|
|
8
|
+
* A selected occupant calls wake() from the existing watchdog/wake cadence.
|
|
9
|
+
* There is no polling loop, scheduler registration, provider or per-item queue here.
|
|
10
|
+
* Notification loss/overflow is harmless: each wake reads one bounded eligible page
|
|
11
|
+
* from its beginning. The durable ledger, not a high-water cursor, excludes done work.
|
|
12
|
+
*/
|
|
13
|
+
export class StreamClassificationWorker {
|
|
14
|
+
options;
|
|
15
|
+
now;
|
|
16
|
+
pageSize;
|
|
17
|
+
timeoutMs;
|
|
18
|
+
backoffMs;
|
|
19
|
+
lease = null;
|
|
20
|
+
heartbeatAt = 0;
|
|
21
|
+
acquireAfter = 0;
|
|
22
|
+
busy = false;
|
|
23
|
+
// One coalesced hint, no buffer of item IDs or automatic per-item work.
|
|
24
|
+
hinted = false;
|
|
25
|
+
// A deadline bounds wake(), not the injected operation. Never pile up calls when
|
|
26
|
+
// a classifier ignores AbortSignal. A late settlement is discarded and clears this slot.
|
|
27
|
+
pending = false;
|
|
28
|
+
constructor(options) {
|
|
29
|
+
for (const key of ["session", "classifierVersion", "taxonomyVersion", "evidenceEpoch"])
|
|
30
|
+
nonblank(options[key], key);
|
|
31
|
+
nonblank(options.candidates.version, "candidateSetVersion");
|
|
32
|
+
for (const field of LABEL_FIELDS) {
|
|
33
|
+
if (!Array.isArray(options.candidates.values[field]))
|
|
34
|
+
throw Error(`missing candidate list: ${field}`);
|
|
35
|
+
for (const value of options.candidates.values[field])
|
|
36
|
+
nonblank(value, field);
|
|
37
|
+
}
|
|
38
|
+
if (!Array.isArray(options.candidates.duplicateCandidates) || !Array.isArray(options.candidates.relatedRefs))
|
|
39
|
+
throw Error("candidate evidence lists must be arrays");
|
|
40
|
+
for (const c of options.candidates.duplicateCandidates) {
|
|
41
|
+
nonblank(c.streamItemId, "duplicate candidate");
|
|
42
|
+
nonblank(c.evidenceRef, "duplicate evidence");
|
|
43
|
+
}
|
|
44
|
+
for (const ref of options.candidates.relatedRefs)
|
|
45
|
+
nonblank(ref, "relatedRef");
|
|
46
|
+
this.options = { ...options, candidates: freeze(structuredClone(options.candidates)) };
|
|
47
|
+
this.now = options.now ?? (() => new Date());
|
|
48
|
+
this.pageSize = bounded(options.pageSize ?? 20, 1, MAX_ELIGIBLE_PAGE, "pageSize");
|
|
49
|
+
this.timeoutMs = bounded(options.requestTimeoutMs ?? 30_000, 1, 60_000, "requestTimeoutMs");
|
|
50
|
+
this.backoffMs = bounded(options.leaseBackoffMs ?? 60_000, 1_000, 300_000, "leaseBackoffMs");
|
|
51
|
+
}
|
|
52
|
+
/** Optional live/reconnect hint. Calling it a million times stores one boolean. */
|
|
53
|
+
notify() { this.hinted = true; }
|
|
54
|
+
/** Subscribe before the first catch-up; events only coalesce a hint, never start work. */
|
|
55
|
+
subscribe(bus) {
|
|
56
|
+
const unsubscribe = bus.subscribe(event => { if (event.type === "stream.emitted")
|
|
57
|
+
this.notify(); });
|
|
58
|
+
this.notify(); // reconnect needs durable catch-up even if no new event arrives.
|
|
59
|
+
return unsubscribe;
|
|
60
|
+
}
|
|
61
|
+
/** A descriptor for the EXISTING policy; returning it does not register anything. */
|
|
62
|
+
wakeRegistration(registeredBySession, targetGenerationUuid) {
|
|
63
|
+
nonblank(registeredBySession, "registeredBySession");
|
|
64
|
+
if (!this.lease)
|
|
65
|
+
throw Error("acquire a lease before selecting the wake cadence");
|
|
66
|
+
const intervalSeconds = Math.floor(this.leasePeriod() / 1000);
|
|
67
|
+
if (intervalSeconds < 1)
|
|
68
|
+
throw Error("lease TTL is too short for the existing seconds-based scheduler");
|
|
69
|
+
return {
|
|
70
|
+
policy: "periodic-reminder", targetSession: this.options.session, registeredBySession, targetGenerationUuid,
|
|
71
|
+
intervalSeconds,
|
|
72
|
+
specYaml: JSON.stringify({ target: { session: this.options.session }, message: "Run one bounded stream-classification wake; preserve lease and execution fences." }),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
async wake() {
|
|
76
|
+
const result = { state: "processed", nextWakeAt: this.now().toISOString(), moreEligible: false, outcomes: [] };
|
|
77
|
+
if (this.busy)
|
|
78
|
+
return { ...result, state: "busy" };
|
|
79
|
+
if (this.pending)
|
|
80
|
+
return { ...result, state: "classifier_pending", nextWakeAt: new Date(this.now().getTime() + this.backoffMs).toISOString() };
|
|
81
|
+
if (this.now().getTime() < this.acquireAfter)
|
|
82
|
+
return { ...result, state: "lease_backoff", nextWakeAt: new Date(this.acquireAfter).toISOString() };
|
|
83
|
+
this.busy = true;
|
|
84
|
+
this.hinted = false;
|
|
85
|
+
const o = this.options;
|
|
86
|
+
try {
|
|
87
|
+
if (this.stopped())
|
|
88
|
+
return { ...result, state: "stopped" };
|
|
89
|
+
if (!this.lease) {
|
|
90
|
+
await o.leases.evaluateDeadness();
|
|
91
|
+
this.lease = await o.leases.acquire(o.session);
|
|
92
|
+
this.heartbeatAt = Date.parse(this.lease.lastHeartbeat) + this.leasePeriod();
|
|
93
|
+
}
|
|
94
|
+
await this.maintainLease();
|
|
95
|
+
const page = await o.attempts.eligible({ classifierVersion: o.classifierVersion, taxonomyVersion: o.taxonomyVersion,
|
|
96
|
+
evidenceEpoch: o.evidenceEpoch, limit: this.pageSize });
|
|
97
|
+
result.moreEligible = page.nextAfterSortKey !== null;
|
|
98
|
+
for (const item of page.items) {
|
|
99
|
+
if (this.stopped()) {
|
|
100
|
+
result.state = "stopped";
|
|
101
|
+
result.moreEligible = true;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
await this.maintainLease();
|
|
105
|
+
let attempt;
|
|
106
|
+
try {
|
|
107
|
+
attempt = await o.attempts.begin({ streamItemId: item.streamItemId, classifierVersion: o.classifierVersion,
|
|
108
|
+
taxonomyVersion: o.taxonomyVersion, evidenceEpoch: o.evidenceEpoch, leaseId: this.lease.leaseId, classifierSession: o.session });
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
if (!(error instanceof ClassificationAttemptError))
|
|
112
|
+
throw error;
|
|
113
|
+
result.outcomes.push({ streamItemId: item.streamItemId, status: error.code });
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
// Never let the injected classifier rewrite the finishing execution identity.
|
|
117
|
+
const finish = Object.freeze({ attemptId: attempt.attemptId, executionId: attempt.executionId,
|
|
118
|
+
leaseId: attempt.leaseId, classifierSession: o.session });
|
|
119
|
+
try {
|
|
120
|
+
const source = await o.stream.getById(item.streamItemId);
|
|
121
|
+
if (!source)
|
|
122
|
+
throw Error("stream item unavailable");
|
|
123
|
+
const decision = await this.decide(freeze({ item: structuredClone(source), attempt: { ...attempt }, candidates: o.candidates }));
|
|
124
|
+
await this.maintainLease(); // refuses expiry/replacement before heartbeat; transaction checks again.
|
|
125
|
+
if (this.stopped()) {
|
|
126
|
+
await o.attempts.abstain({ ...finish, reason: "experiment stopped; result not applied" });
|
|
127
|
+
result.outcomes.push({ streamItemId: item.streamItemId, status: "abstained", reason: "stopped" });
|
|
128
|
+
result.state = "stopped";
|
|
129
|
+
result.moreEligible = true;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
if (decision.kind === "abstain") {
|
|
133
|
+
nonblank(decision.reason, "abstention reason");
|
|
134
|
+
await o.attempts.abstain({ ...finish, reason: decision.reason });
|
|
135
|
+
result.outcomes.push({ streamItemId: item.streamItemId, status: "abstained" });
|
|
136
|
+
}
|
|
137
|
+
else if (decision.kind === "classify") {
|
|
138
|
+
const labels = this.labels(decision.labels);
|
|
139
|
+
await o.classifier.classify({ ...labels, ...finish, streamItemId: item.streamItemId,
|
|
140
|
+
classifierVersion: o.classifierVersion, taxonomyVersion: o.taxonomyVersion, candidateSetVersion: o.candidates.version,
|
|
141
|
+
identityProvenance: "claimed:v1" }); // direct offline caller; no transport claim invented.
|
|
142
|
+
result.outcomes.push({ streamItemId: item.streamItemId, status: "written" });
|
|
143
|
+
}
|
|
144
|
+
else
|
|
145
|
+
throw Error("unknown classifier decision");
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
if (error instanceof ClassifierLeaseError)
|
|
149
|
+
throw error;
|
|
150
|
+
const code = error instanceof ProjectClassifierError || error instanceof ClassificationAttemptError ? error.code : null;
|
|
151
|
+
if (code === "idempotency_violation" || code === "already_classified" || code === "attempt_superseded" || code === "attempt_mismatch") {
|
|
152
|
+
result.outcomes.push({ streamItemId: item.streamItemId, status: code });
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
try {
|
|
156
|
+
const failed = await o.attempts.fail({ ...finish, reason: error instanceof Error ? error.message : "classifier failed" });
|
|
157
|
+
result.outcomes.push({ streamItemId: item.streamItemId, status: failed.status, reason: failed.reason ?? undefined });
|
|
158
|
+
}
|
|
159
|
+
catch (finishError) {
|
|
160
|
+
if (finishError instanceof ClassifierLeaseError)
|
|
161
|
+
throw finishError;
|
|
162
|
+
if (!(finishError instanceof ClassificationAttemptError))
|
|
163
|
+
throw finishError;
|
|
164
|
+
result.outcomes.push({ streamItemId: item.streamItemId, status: finishError.code });
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (this.pending) {
|
|
169
|
+
result.moreEligible = true;
|
|
170
|
+
break;
|
|
171
|
+
} // cancellation unconfirmed; no second operation.
|
|
172
|
+
}
|
|
173
|
+
result.moreEligible ||= this.hinted;
|
|
174
|
+
result.nextWakeAt = new Date(this.heartbeatAt).toISOString();
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
if (!(error instanceof ClassifierLeaseError)) {
|
|
179
|
+
this.acquireAfter = this.now().getTime() + this.backoffMs;
|
|
180
|
+
return { ...result, state: "unavailable", reason: error instanceof Error ? error.message : "worker source unavailable", nextWakeAt: new Date(this.acquireAfter).toISOString() };
|
|
181
|
+
}
|
|
182
|
+
this.lease = null;
|
|
183
|
+
this.acquireAfter = this.now().getTime() + this.backoffMs;
|
|
184
|
+
return { ...result, state: "lease_lost", reason: error.code, nextWakeAt: new Date(this.acquireAfter).toISOString() };
|
|
185
|
+
}
|
|
186
|
+
finally {
|
|
187
|
+
this.busy = false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
leasePeriod() {
|
|
191
|
+
return Math.max(1, Math.floor((Date.parse(this.lease.expiresAt) - Date.parse(this.lease.lastHeartbeat)) / 3));
|
|
192
|
+
}
|
|
193
|
+
async maintainLease() {
|
|
194
|
+
const o = this.options;
|
|
195
|
+
await o.leases.requireActiveHolder(o.session, this.lease.leaseId);
|
|
196
|
+
if (this.now().getTime() >= this.heartbeatAt) {
|
|
197
|
+
this.lease = await o.leases.heartbeat(this.lease.leaseId, o.session);
|
|
198
|
+
this.heartbeatAt = Date.parse(this.lease.lastHeartbeat) + this.leasePeriod();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
async decide(request) {
|
|
202
|
+
const controller = new AbortController();
|
|
203
|
+
const abort = () => controller.abort();
|
|
204
|
+
this.options.signal?.addEventListener("abort", abort, { once: true });
|
|
205
|
+
if (this.options.signal?.aborted)
|
|
206
|
+
abort();
|
|
207
|
+
this.pending = true;
|
|
208
|
+
let timer;
|
|
209
|
+
// Only this caller consumes the promise; the settled handler never writes a result.
|
|
210
|
+
const operation = Promise.resolve().then(() => this.options.classify(request, controller.signal))
|
|
211
|
+
.finally(() => { this.pending = false; });
|
|
212
|
+
try {
|
|
213
|
+
return await Promise.race([operation, new Promise((_, reject) => {
|
|
214
|
+
timer = setTimeout(() => { reject(Error("classifier deadline exceeded")); controller.abort(); }, Math.max(1, Math.min(this.timeoutMs, this.heartbeatAt - this.now().getTime())));
|
|
215
|
+
})]);
|
|
216
|
+
}
|
|
217
|
+
finally {
|
|
218
|
+
if (timer)
|
|
219
|
+
clearTimeout(timer);
|
|
220
|
+
this.options.signal?.removeEventListener("abort", abort);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
stopped() { return !!this.options.signal?.aborted || !!this.options.shouldStop?.(); }
|
|
224
|
+
labels(labels) {
|
|
225
|
+
if (!labels || typeof labels !== "object")
|
|
226
|
+
throw Error("classification labels must be an object");
|
|
227
|
+
const out = {};
|
|
228
|
+
for (const field of LABEL_FIELDS) {
|
|
229
|
+
const value = labels[field];
|
|
230
|
+
if (value === undefined || value === null)
|
|
231
|
+
continue;
|
|
232
|
+
if (typeof value !== "string" || !this.options.candidates.values[field].includes(value))
|
|
233
|
+
throw Error(`unavailable candidate: ${field}`);
|
|
234
|
+
out[field] = value;
|
|
235
|
+
}
|
|
236
|
+
if (labels.needsHuman != null && typeof labels.needsHuman !== "boolean")
|
|
237
|
+
throw Error("needsHuman must be boolean or unknown");
|
|
238
|
+
out.needsHuman = labels.needsHuman ?? null;
|
|
239
|
+
if (labels.duplicateOfStreamItemId != null) {
|
|
240
|
+
if (!this.options.candidates.duplicateCandidates.some(c => c.streamItemId === labels.duplicateOfStreamItemId && c.evidenceRef === labels.duplicateEvidenceRef && c.evidenceRef.trim())) {
|
|
241
|
+
throw Error("duplicate requires a positive supplied candidate and evidence reference");
|
|
242
|
+
}
|
|
243
|
+
out.duplicateOfStreamItemId = labels.duplicateOfStreamItemId;
|
|
244
|
+
}
|
|
245
|
+
return out;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
function nonblank(value, name) {
|
|
249
|
+
if (typeof value !== "string" || !value.trim())
|
|
250
|
+
throw Error(`${name} must be a non-empty string`);
|
|
251
|
+
}
|
|
252
|
+
function bounded(value, min, max, name) {
|
|
253
|
+
if (!Number.isInteger(value) || value < min || value > max)
|
|
254
|
+
throw Error(`${name} must be an integer in ${min}..${max}`);
|
|
255
|
+
return value;
|
|
256
|
+
}
|
|
257
|
+
function freeze(value) {
|
|
258
|
+
if (value && typeof value === "object" && !Object.isFrozen(value)) {
|
|
259
|
+
for (const child of Object.values(value))
|
|
260
|
+
freeze(child);
|
|
261
|
+
Object.freeze(value);
|
|
262
|
+
}
|
|
263
|
+
return value;
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=stream-classification-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-classification-worker.js","sourceRoot":"","sources":["../../src/domain/stream-classification-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ export interface SuccessorNode {
|
|
|
39
39
|
* the successor is a CONTINUITY edge of the same seat, so its policy posture
|
|
40
40
|
* carries (populated by the caller from node provenance; absent = env decision). */
|
|
41
41
|
launchPosture?: "floor" | "full_bypass";
|
|
42
|
+
permissionMode?: string;
|
|
42
43
|
/** 0.5.2-07 model fidelity: the seat's SPEC-pinned model (nodes.model). The successor is a continuity
|
|
43
44
|
* edge of the same seat, so its launch must READ THE SPEC — a launch path that drops it makes the
|
|
44
45
|
* running topology drift from the founder-designed one. Populated by the caller from node provenance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"successor-session-launcher.d.ts","sourceRoot":"","sources":["../../src/domain/successor-session-launcher.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"successor-session-launcher.d.ts","sourceRoot":"","sources":["../../src/domain/successor-session-launcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,cAAc,EAAgC,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAErG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAG3E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB;;yFAEqF;IACrF,aAAa,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;0FAGsF;IACtF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;0EAEsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,wBAAwB,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,kBAAkB,GAAG,cAAc,GAAG,aAAa,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEN,qBAAa,wBAAwB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;gBAG5B,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,mBAAmB,EAClC,IAAI,GAAE;QACJ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;QAChD,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;QACrB;8EACsE;QACtE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACjD,4EAA4E;QAC5E,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,gCAAgC;QAChC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC;;;;;WAKG;QACH,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;QAC/C,8FAA8F;QAC9F,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;KACnB;IAcR;;;;;;;OAOG;IACG,eAAe,CAAC,KAAK,EAAE;QAC3B,IAAI,EAAE,aAAa,CAAC;QACpB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,uGAAuG;QACvG,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;QAClC;;;kFAG0E;QAC1E,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA2HlC;;;;;;OAMG;YACW,UAAU;IA6FxB;;;OAGG;YACW,YAAY;IAsB1B;;;;;;;;OAQG;YACW,gBAAgB;IAiB9B;;;;;yFAKqF;YACvE,sBAAsB;IASpC,2GAA2G;YAC7F,YAAY;IAS1B;;;;;;OAMG;IACG,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhF"}
|
|
@@ -124,7 +124,7 @@ export class SuccessorSessionLauncher {
|
|
|
124
124
|
// on ANY launch/readiness failure we do NOT killSession the preserved seat — that would destroy
|
|
125
125
|
// the retiree's recoverable state. We return the structured failure and leave the re-wakeable
|
|
126
126
|
// shell in the pane; commit never runs, so the binding is not repointed.
|
|
127
|
-
const started = await this.startAgent(input.node, departingSession, pane.id, cwd, input.forkSource);
|
|
127
|
+
const started = await this.startAgent(input.node, departingSession, pane.id, cwd, input.forkSource, input.occupantGeneration);
|
|
128
128
|
if (!started.ok) {
|
|
129
129
|
return { ok: false, code: started.code, step: "start_agent", message: started.message, replacementStarted: true };
|
|
130
130
|
}
|
|
@@ -154,7 +154,7 @@ export class SuccessorSessionLauncher {
|
|
|
154
154
|
* registered — the successor stays unmanaged until commit. The token is NEVER
|
|
155
155
|
* logged or placed in a returned message.
|
|
156
156
|
*/
|
|
157
|
-
async startAgent(node, tmuxSession, tmuxPane, cwd, forkSource) {
|
|
157
|
+
async startAgent(node, tmuxSession, tmuxPane, cwd, forkSource, launchGeneration) {
|
|
158
158
|
const adapter = node.runtime ? this.runtimeAdapters[node.runtime] : undefined;
|
|
159
159
|
if (!adapter) {
|
|
160
160
|
return {
|
|
@@ -181,8 +181,10 @@ export class SuccessorSessionLauncher {
|
|
|
181
181
|
cmuxSurface: null,
|
|
182
182
|
updatedAt: "",
|
|
183
183
|
cwd: cwd ?? "",
|
|
184
|
+
launchGeneration: launchGeneration ?? undefined,
|
|
184
185
|
// Seam B: continuity — the successor launches at the departing seat's posture.
|
|
185
186
|
...(node.launchPosture ? { launchPosture: node.launchPosture } : {}),
|
|
187
|
+
...(node.permissionMode ? { permissionMode: node.permissionMode } : {}),
|
|
186
188
|
// 0.5.2-07: the successor reads the seat's SPEC-pinned model (adapter emits -m/--model).
|
|
187
189
|
model: node.model ?? undefined,
|
|
188
190
|
// 0.5.2-07 A4-profile: the successor reads the seat's SPEC-pinned codex config profile (adapter emits -p).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"successor-session-launcher.js","sourceRoot":"","sources":["../../src/domain/successor-session-launcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"successor-session-launcher.js","sourceRoot":"","sources":["../../src/domain/successor-session-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,9 +81,16 @@ export interface HerdrAdapterDeps {
|
|
|
81
81
|
/** Tab-name prefix (default `openrig`). */
|
|
82
82
|
tabPrefix?: string;
|
|
83
83
|
}
|
|
84
|
+
/** Herdr lays out 4×4 per tab (OPR.0.6.0.8); cmux keeps the composer default. */
|
|
85
|
+
export declare const HERDR_PANES_PER_PAGE = 16;
|
|
86
|
+
/** A `tab_id` from a herdr result body (`result.tab.tab_id`, `result.layout.tab_id`, or top-level). */
|
|
87
|
+
export declare function extractTabId(result: HerdrResult | null | undefined): string | null;
|
|
88
|
+
/** Workspace labels from a `workspace.list` result body; [] when the shape is unknown. */
|
|
89
|
+
export declare function extractWorkspaceLabels(result: HerdrResult | null | undefined): string[];
|
|
84
90
|
export declare class HerdrAdapter implements TerminalProvider {
|
|
85
91
|
private readonly deps;
|
|
86
92
|
readonly name = "herdr";
|
|
93
|
+
readonly panesPerPage = 16;
|
|
87
94
|
private readonly transport;
|
|
88
95
|
private readonly newLaunchToken;
|
|
89
96
|
private readonly tabPrefix;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"herdr-adapter.d.ts","sourceRoot":"","sources":["../../../src/domain/terminal/herdr-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"herdr-adapter.d.ts","sourceRoot":"","sources":["../../../src/domain/terminal/herdr-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,9 +47,13 @@
|
|
|
47
47
|
// The `workspace.create` response envelope is VM-confirmed (OPR.0.4.7.1):
|
|
48
48
|
// `result.workspace.workspace_id` + `result.tab.tab_id` + `result.root_pane`.
|
|
49
49
|
// Extraction stays null-safe/defensive for older builds (extractWorkspaceId).
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
//
|
|
50
|
+
// OPR.0.6.0.8: issue #26 is the live evidence the earlier ruling waited for — users
|
|
51
|
+
// landed on the create's blank default tab. After layout the adapter focuses the
|
|
52
|
+
// first populated tab it knows (tab.focus) and then closes the starting tab (tab.close)
|
|
53
|
+
// only when it is known blank: every page applied and reported a tab id, and none is
|
|
54
|
+
// the starting tab. Otherwise the starting tab is kept and the result says so. Both methods are in
|
|
55
|
+
// herdr 0.7.1's socket API (`herdr tab focus|close <tab_id>`); a refusal of either
|
|
56
|
+
// is reported as a note, never as a failed seat.
|
|
53
57
|
import { autoGridCols } from "../cmux-layout-service.js";
|
|
54
58
|
/** Sentinel host for herdr-surface degrades (a pane herdr itself failed to render). */
|
|
55
59
|
const HERDR_SURFACE_HOST = "herdr";
|
|
@@ -110,6 +114,9 @@ export function buildGridRoot(panes) {
|
|
|
110
114
|
*/
|
|
111
115
|
export function planHerdrLayout(view, launchToken, tabPrefix = "openrig") {
|
|
112
116
|
const base = `${tabPrefix}:${view.id}#${launchToken}`;
|
|
117
|
+
// The workspace is named for people: the rig name for a rig view, else the view id.
|
|
118
|
+
// Tab labels keep the launch token, so every open is still a fresh, distinct space.
|
|
119
|
+
const workspaceLabel = view.id.startsWith("rig:") ? view.id.slice("rig:".length) : view.id;
|
|
113
120
|
const pages = view.pages.map((page, pageIndex) => {
|
|
114
121
|
const grid = buildGridRoot(page);
|
|
115
122
|
return {
|
|
@@ -118,7 +125,7 @@ export function planHerdrLayout(view, launchToken, tabPrefix = "openrig") {
|
|
|
118
125
|
blanks: grid.blanks,
|
|
119
126
|
};
|
|
120
127
|
});
|
|
121
|
-
return { workspaceLabel
|
|
128
|
+
return { workspaceLabel, pages };
|
|
122
129
|
}
|
|
123
130
|
/**
|
|
124
131
|
* Extract the created workspace's id from a `workspace.create` result body.
|
|
@@ -147,9 +154,36 @@ export function extractWorkspaceId(result) {
|
|
|
147
154
|
return bare;
|
|
148
155
|
return null;
|
|
149
156
|
}
|
|
157
|
+
/** Herdr lays out 4×4 per tab (OPR.0.6.0.8); cmux keeps the composer default. */
|
|
158
|
+
export const HERDR_PANES_PER_PAGE = 16;
|
|
159
|
+
/** A `tab_id` from a herdr result body (`result.tab.tab_id`, `result.layout.tab_id`, or top-level). */
|
|
160
|
+
export function extractTabId(result) {
|
|
161
|
+
if (!result)
|
|
162
|
+
return null;
|
|
163
|
+
if (typeof result["tab_id"] === "string" && result["tab_id"])
|
|
164
|
+
return result["tab_id"];
|
|
165
|
+
for (const key of ["tab", "layout"]) {
|
|
166
|
+
const nested = result[key];
|
|
167
|
+
if (nested && typeof nested === "object") {
|
|
168
|
+
const id = nested["tab_id"];
|
|
169
|
+
if (typeof id === "string" && id)
|
|
170
|
+
return id;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
/** Workspace labels from a `workspace.list` result body; [] when the shape is unknown. */
|
|
176
|
+
export function extractWorkspaceLabels(result) {
|
|
177
|
+
const list = result?.["workspaces"];
|
|
178
|
+
if (!Array.isArray(list))
|
|
179
|
+
return [];
|
|
180
|
+
return list.map((w) => (w && typeof w === "object" ? w["label"] : null))
|
|
181
|
+
.filter((l) => typeof l === "string");
|
|
182
|
+
}
|
|
150
183
|
export class HerdrAdapter {
|
|
151
184
|
deps;
|
|
152
185
|
name = "herdr";
|
|
186
|
+
panesPerPage = HERDR_PANES_PER_PAGE;
|
|
153
187
|
transport;
|
|
154
188
|
newLaunchToken;
|
|
155
189
|
tabPrefix;
|
|
@@ -224,22 +258,53 @@ export class HerdrAdapter {
|
|
|
224
258
|
};
|
|
225
259
|
}
|
|
226
260
|
// A fresh workspace per open (BR-5 fresh-on-relaunch, strongest form).
|
|
227
|
-
// The labeled create is tried first
|
|
228
|
-
//
|
|
261
|
+
// The labeled create is tried first. If herdr refuses it and a workspace with
|
|
262
|
+
// that label already exists, retry once with a numbered suffix and say so;
|
|
263
|
+
// otherwise fall back ONCE to a bare create before degrading.
|
|
264
|
+
const notes = [];
|
|
229
265
|
let workspaceId = null;
|
|
266
|
+
let defaultTabId = null;
|
|
230
267
|
let createErr = null;
|
|
231
268
|
try {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}));
|
|
269
|
+
const created = await this.transport.request("workspace.create", { focus: false, label: plan.workspaceLabel });
|
|
270
|
+
workspaceId = extractWorkspaceId(created);
|
|
271
|
+
defaultTabId = extractTabId(created);
|
|
236
272
|
}
|
|
237
273
|
catch (err) {
|
|
238
274
|
createErr = err;
|
|
239
275
|
}
|
|
240
276
|
if (workspaceId == null) {
|
|
277
|
+
let existing = [];
|
|
241
278
|
try {
|
|
242
|
-
|
|
279
|
+
existing = extractWorkspaceLabels(await this.transport.request("workspace.list", {}));
|
|
280
|
+
}
|
|
281
|
+
catch { /* unknown → bare fallback */ }
|
|
282
|
+
if (existing.includes(plan.workspaceLabel)) {
|
|
283
|
+
let n = 2;
|
|
284
|
+
while (existing.includes(`${plan.workspaceLabel} (${n})`))
|
|
285
|
+
n++;
|
|
286
|
+
const suffixed = `${plan.workspaceLabel} (${n})`;
|
|
287
|
+
try {
|
|
288
|
+
const created = await this.transport.request("workspace.create", { focus: false, label: suffixed });
|
|
289
|
+
workspaceId = extractWorkspaceId(created);
|
|
290
|
+
defaultTabId = extractTabId(created);
|
|
291
|
+
if (workspaceId != null) {
|
|
292
|
+
createErr = null;
|
|
293
|
+
notes.push(`A workspace named "${plan.workspaceLabel}" already exists, so this one is "${suffixed}".`);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
createErr = createErr ?? err;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
if (workspaceId == null) {
|
|
302
|
+
try {
|
|
303
|
+
const created = await this.transport.request("workspace.create", { focus: false });
|
|
304
|
+
workspaceId = extractWorkspaceId(created);
|
|
305
|
+
defaultTabId = extractTabId(created);
|
|
306
|
+
if (workspaceId != null)
|
|
307
|
+
notes.push(`herdr refused the workspace name "${plan.workspaceLabel}"; the workspace is unnamed.`);
|
|
243
308
|
createErr = null;
|
|
244
309
|
}
|
|
245
310
|
catch (err) {
|
|
@@ -269,21 +334,34 @@ export class HerdrAdapter {
|
|
|
269
334
|
code: "herdr_workspace_failed",
|
|
270
335
|
};
|
|
271
336
|
}
|
|
337
|
+
const appliedTabIds = [];
|
|
338
|
+
let firstPopulatedTabId = null;
|
|
339
|
+
// The starting tab is known blank only if every page applied AND reported its tab id:
|
|
340
|
+
// an id-less reply or a failed (possibly still effective) apply may have used it.
|
|
341
|
+
let everyPageKnown = true;
|
|
272
342
|
for (let pageIndex = 0; pageIndex < plan.pages.length; pageIndex++) {
|
|
273
343
|
const pagePlan = plan.pages[pageIndex];
|
|
274
344
|
const pagePanes = view.pages[pageIndex];
|
|
275
345
|
try {
|
|
276
346
|
// ONE atomic layout.apply for the whole page (capture-verified shape).
|
|
277
|
-
await this.transport.request("layout.apply", {
|
|
347
|
+
const applied = await this.transport.request("layout.apply", {
|
|
278
348
|
workspace_id: workspaceId,
|
|
279
349
|
tab_label: pagePlan.tabLabel,
|
|
280
350
|
focus: true,
|
|
281
351
|
root: pagePlan.root,
|
|
282
352
|
});
|
|
353
|
+
const tabId = extractTabId(applied);
|
|
354
|
+
if (tabId) {
|
|
355
|
+
appliedTabIds.push(tabId);
|
|
356
|
+
firstPopulatedTabId ??= tabId;
|
|
357
|
+
}
|
|
358
|
+
else
|
|
359
|
+
everyPageKnown = false;
|
|
283
360
|
for (const pane of pagePanes)
|
|
284
361
|
opened.push(pane.seat);
|
|
285
362
|
}
|
|
286
363
|
catch (err) {
|
|
364
|
+
everyPageKnown = false;
|
|
287
365
|
// The whole page failed to apply — degrade its seats honestly.
|
|
288
366
|
for (const pane of pagePanes) {
|
|
289
367
|
degraded.push({
|
|
@@ -294,6 +372,34 @@ export class HerdrAdapter {
|
|
|
294
372
|
}
|
|
295
373
|
}
|
|
296
374
|
}
|
|
375
|
+
// Land on a known populated tab, then remove the create's starting tab (#26) only when it is
|
|
376
|
+
// known to be blank. When that is uncertain the tab is kept: closing it could remove seats.
|
|
377
|
+
if (opened.length > 0) {
|
|
378
|
+
if (firstPopulatedTabId) {
|
|
379
|
+
try {
|
|
380
|
+
await this.transport.request("tab.focus", { tab_id: firstPopulatedTabId });
|
|
381
|
+
}
|
|
382
|
+
catch (err) {
|
|
383
|
+
notes.push(`herdr did not focus the first tab: ${err instanceof Error ? err.message : String(err)}`);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
notes.push("herdr returned no tab id for any page, so no tab was focused explicitly.");
|
|
388
|
+
}
|
|
389
|
+
if (defaultTabId) {
|
|
390
|
+
if (!everyPageKnown) {
|
|
391
|
+
notes.push("The starting tab was kept because it could not be confirmed empty.");
|
|
392
|
+
}
|
|
393
|
+
else if (!appliedTabIds.includes(defaultTabId)) {
|
|
394
|
+
try {
|
|
395
|
+
await this.transport.request("tab.close", { tab_id: defaultTabId });
|
|
396
|
+
}
|
|
397
|
+
catch (err) {
|
|
398
|
+
notes.push(`herdr kept the blank starting tab: ${err instanceof Error ? err.message : String(err)}`);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
297
403
|
return {
|
|
298
404
|
provider: this.name,
|
|
299
405
|
ok: opened.length > 0 || view.opened.length === 0,
|
|
@@ -301,6 +407,7 @@ export class HerdrAdapter {
|
|
|
301
407
|
absent,
|
|
302
408
|
degraded,
|
|
303
409
|
pages: plan.pages.length,
|
|
410
|
+
...(notes.length ? { notes } : {}),
|
|
304
411
|
};
|
|
305
412
|
}
|
|
306
413
|
}
|