@openrig/cli 0.1.12 → 0.3.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/assets/openrig-activity-hook-relay.cjs +104 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts +24 -6
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +221 -65
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +5 -0
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +13 -0
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +8 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +74 -5
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +9 -5
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +255 -28
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/terminal-adapter.d.ts +2 -1
- package/daemon/dist/adapters/terminal-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/terminal-adapter.js +7 -1
- package/daemon/dist/adapters/terminal-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +53 -5
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/builtins/workflow-specs/basic-loop.yaml +76 -0
- package/daemon/dist/builtins/workflow-specs/conveyor.yaml +80 -0
- package/daemon/dist/db/migrations/021_seat_handover_observability.d.ts +3 -0
- package/daemon/dist/db/migrations/021_seat_handover_observability.d.ts.map +1 -0
- package/daemon/dist/db/migrations/021_seat_handover_observability.js +11 -0
- package/daemon/dist/db/migrations/021_seat_handover_observability.js.map +1 -0
- package/daemon/dist/db/migrations/022_node_codex_config_profile.d.ts +3 -0
- package/daemon/dist/db/migrations/022_node_codex_config_profile.d.ts.map +1 -0
- package/daemon/dist/db/migrations/022_node_codex_config_profile.js +7 -0
- package/daemon/dist/db/migrations/022_node_codex_config_profile.js.map +1 -0
- package/daemon/dist/db/migrations/023_stream_items.d.ts +16 -0
- package/daemon/dist/db/migrations/023_stream_items.d.ts.map +1 -0
- package/daemon/dist/db/migrations/023_stream_items.js +37 -0
- package/daemon/dist/db/migrations/023_stream_items.js.map +1 -0
- package/daemon/dist/db/migrations/024_queue_items.d.ts +19 -0
- package/daemon/dist/db/migrations/024_queue_items.d.ts.map +1 -0
- package/daemon/dist/db/migrations/024_queue_items.js +52 -0
- package/daemon/dist/db/migrations/024_queue_items.js.map +1 -0
- package/daemon/dist/db/migrations/025_queue_transitions.d.ts +13 -0
- package/daemon/dist/db/migrations/025_queue_transitions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/025_queue_transitions.js +28 -0
- package/daemon/dist/db/migrations/025_queue_transitions.js.map +1 -0
- package/daemon/dist/db/migrations/026_inbox_entries.d.ts +14 -0
- package/daemon/dist/db/migrations/026_inbox_entries.d.ts.map +1 -0
- package/daemon/dist/db/migrations/026_inbox_entries.js +35 -0
- package/daemon/dist/db/migrations/026_inbox_entries.js.map +1 -0
- package/daemon/dist/db/migrations/027_outbox_entries.d.ts +12 -0
- package/daemon/dist/db/migrations/027_outbox_entries.d.ts.map +1 -0
- package/daemon/dist/db/migrations/027_outbox_entries.js +30 -0
- package/daemon/dist/db/migrations/027_outbox_entries.js.map +1 -0
- package/daemon/dist/db/migrations/028_project_classifications.d.ts +26 -0
- package/daemon/dist/db/migrations/028_project_classifications.d.ts.map +1 -0
- package/daemon/dist/db/migrations/028_project_classifications.js +44 -0
- package/daemon/dist/db/migrations/028_project_classifications.js.map +1 -0
- package/daemon/dist/db/migrations/029_classifier_leases.d.ts +22 -0
- package/daemon/dist/db/migrations/029_classifier_leases.d.ts.map +1 -0
- package/daemon/dist/db/migrations/029_classifier_leases.js +41 -0
- package/daemon/dist/db/migrations/029_classifier_leases.js.map +1 -0
- package/daemon/dist/db/migrations/030_views_custom.d.ts +15 -0
- package/daemon/dist/db/migrations/030_views_custom.d.ts.map +1 -0
- package/daemon/dist/db/migrations/030_views_custom.js +27 -0
- package/daemon/dist/db/migrations/030_views_custom.js.map +1 -0
- package/daemon/dist/db/migrations/031_watchdog_jobs.d.ts +34 -0
- package/daemon/dist/db/migrations/031_watchdog_jobs.d.ts.map +1 -0
- package/daemon/dist/db/migrations/031_watchdog_jobs.js +59 -0
- package/daemon/dist/db/migrations/031_watchdog_jobs.js.map +1 -0
- package/daemon/dist/db/migrations/032_watchdog_history.d.ts +28 -0
- package/daemon/dist/db/migrations/032_watchdog_history.d.ts.map +1 -0
- package/daemon/dist/db/migrations/032_watchdog_history.js +46 -0
- package/daemon/dist/db/migrations/032_watchdog_history.js.map +1 -0
- package/daemon/dist/db/migrations/033_workflow_specs.d.ts +30 -0
- package/daemon/dist/db/migrations/033_workflow_specs.d.ts.map +1 -0
- package/daemon/dist/db/migrations/033_workflow_specs.js +50 -0
- package/daemon/dist/db/migrations/033_workflow_specs.js.map +1 -0
- package/daemon/dist/db/migrations/034_workflow_instances.d.ts +42 -0
- package/daemon/dist/db/migrations/034_workflow_instances.d.ts.map +1 -0
- package/daemon/dist/db/migrations/034_workflow_instances.js +63 -0
- package/daemon/dist/db/migrations/034_workflow_instances.js.map +1 -0
- package/daemon/dist/db/migrations/035_workflow_step_trails.d.ts +29 -0
- package/daemon/dist/db/migrations/035_workflow_step_trails.d.ts.map +1 -0
- package/daemon/dist/db/migrations/035_workflow_step_trails.js +48 -0
- package/daemon/dist/db/migrations/035_workflow_step_trails.js.map +1 -0
- package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.d.ts +35 -0
- package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.d.ts.map +1 -0
- package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.js +43 -0
- package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.js.map +1 -0
- package/daemon/dist/db/migrations/037_mission_control_actions.d.ts +51 -0
- package/daemon/dist/db/migrations/037_mission_control_actions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/037_mission_control_actions.js +74 -0
- package/daemon/dist/db/migrations/037_mission_control_actions.js.map +1 -0
- package/daemon/dist/db/migrations/038_workspace_primitive.d.ts +16 -0
- package/daemon/dist/db/migrations/038_workspace_primitive.d.ts.map +1 -0
- package/daemon/dist/db/migrations/038_workspace_primitive.js +20 -0
- package/daemon/dist/db/migrations/038_workspace_primitive.js.map +1 -0
- package/daemon/dist/db/migrations/039_queue_target_repo.d.ts +16 -0
- package/daemon/dist/db/migrations/039_queue_target_repo.d.ts.map +1 -0
- package/daemon/dist/db/migrations/039_queue_target_repo.js +21 -0
- package/daemon/dist/db/migrations/039_queue_target_repo.js.map +1 -0
- package/daemon/dist/domain/active-lens-store.d.ts +23 -0
- package/daemon/dist/domain/active-lens-store.d.ts.map +1 -0
- package/daemon/dist/domain/active-lens-store.js +87 -0
- package/daemon/dist/domain/active-lens-store.js.map +1 -0
- package/daemon/dist/domain/agent-activity-store.d.ts +42 -0
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -0
- package/daemon/dist/domain/agent-activity-store.js +177 -0
- package/daemon/dist/domain/agent-activity-store.js.map +1 -0
- package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts +68 -0
- package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -0
- package/daemon/dist/domain/agent-images/agent-image-library-service.js +339 -0
- package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -0
- package/daemon/dist/domain/agent-images/agent-image-types.d.ts +113 -0
- package/daemon/dist/domain/agent-images/agent-image-types.d.ts.map +1 -0
- package/daemon/dist/domain/agent-images/agent-image-types.js +24 -0
- package/daemon/dist/domain/agent-images/agent-image-types.js.map +1 -0
- package/daemon/dist/domain/agent-images/evidence-guard.d.ts +26 -0
- package/daemon/dist/domain/agent-images/evidence-guard.d.ts.map +1 -0
- package/daemon/dist/domain/agent-images/evidence-guard.js +185 -0
- package/daemon/dist/domain/agent-images/evidence-guard.js.map +1 -0
- package/daemon/dist/domain/agent-images/manifest-parser.d.ts +3 -0
- package/daemon/dist/domain/agent-images/manifest-parser.d.ts.map +1 -0
- package/daemon/dist/domain/agent-images/manifest-parser.js +114 -0
- package/daemon/dist/domain/agent-images/manifest-parser.js.map +1 -0
- package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts +28 -0
- package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +1 -0
- package/daemon/dist/domain/agent-images/resume-token-discovery.js +83 -0
- package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -0
- package/daemon/dist/domain/agent-images/snapshot-capturer.d.ts +36 -0
- package/daemon/dist/domain/agent-images/snapshot-capturer.d.ts.map +1 -0
- package/daemon/dist/domain/agent-images/snapshot-capturer.js +58 -0
- package/daemon/dist/domain/agent-images/snapshot-capturer.js.map +1 -0
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +3 -0
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/agent-starter-resolver.d.ts +94 -0
- package/daemon/dist/domain/agent-starter-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/agent-starter-resolver.js +198 -0
- package/daemon/dist/domain/agent-starter-resolver.js.map +1 -0
- package/daemon/dist/domain/classifier-lease-manager.d.ts +130 -0
- package/daemon/dist/domain/classifier-lease-manager.d.ts.map +1 -0
- package/daemon/dist/domain/classifier-lease-manager.js +285 -0
- package/daemon/dist/domain/classifier-lease-manager.js.map +1 -0
- package/daemon/dist/domain/conflict-detector.d.ts.map +1 -1
- package/daemon/dist/domain/conflict-detector.js +6 -3
- package/daemon/dist/domain/conflict-detector.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts +5 -4
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +26 -11
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/context-packs/bundle-assembler.d.ts +49 -0
- package/daemon/dist/domain/context-packs/bundle-assembler.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/bundle-assembler.js +81 -0
- package/daemon/dist/domain/context-packs/bundle-assembler.js.map +1 -0
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts +41 -0
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +148 -0
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -0
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts +64 -0
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/context-pack-types.js +22 -0
- package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -0
- package/daemon/dist/domain/context-packs/manifest-parser.d.ts +3 -0
- package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/manifest-parser.js +74 -0
- package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -0
- package/daemon/dist/domain/context-usage-store.d.ts +15 -2
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +157 -2
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/files/file-write-service.d.ts +61 -0
- package/daemon/dist/domain/files/file-write-service.d.ts.map +1 -0
- package/daemon/dist/domain/files/file-write-service.js +180 -0
- package/daemon/dist/domain/files/file-write-service.js.map +1 -0
- package/daemon/dist/domain/files/path-safety.d.ts +47 -0
- package/daemon/dist/domain/files/path-safety.d.ts.map +1 -0
- package/daemon/dist/domain/files/path-safety.js +176 -0
- package/daemon/dist/domain/files/path-safety.js.map +1 -0
- package/daemon/dist/domain/graph-projection.d.ts +14 -1
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +8 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/hot-potato-enforcer.d.ts +45 -0
- package/daemon/dist/domain/hot-potato-enforcer.d.ts.map +1 -0
- package/daemon/dist/domain/hot-potato-enforcer.js +94 -0
- package/daemon/dist/domain/hot-potato-enforcer.js.map +1 -0
- package/daemon/dist/domain/inbox-handler.d.ts +68 -0
- package/daemon/dist/domain/inbox-handler.d.ts.map +1 -0
- package/daemon/dist/domain/inbox-handler.js +177 -0
- package/daemon/dist/domain/inbox-handler.js.map +1 -0
- package/daemon/dist/domain/install-engine.d.ts.map +1 -1
- package/daemon/dist/domain/install-engine.js +22 -6
- package/daemon/dist/domain/install-engine.js.map +1 -1
- package/daemon/dist/domain/install-verifier.d.ts.map +1 -1
- package/daemon/dist/domain/install-verifier.js +10 -5
- package/daemon/dist/domain/install-verifier.js.map +1 -1
- package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
- package/daemon/dist/domain/managed-blocks.js +22 -3
- package/daemon/dist/domain/managed-blocks.js.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.d.ts +26 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/audit-browse.js +101 -0
- package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -0
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +51 -0
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/mission-control-action-log.js +124 -0
- package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -0
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +131 -0
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +232 -0
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -0
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +85 -0
- package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js +265 -0
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +69 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js +300 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -0
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +18 -0
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +48 -0
- package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -0
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +25 -0
- package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/notification-adapter-types.js +7 -0
- package/daemon/dist/domain/mission-control/notification-adapter-types.js.map +1 -0
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +27 -0
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +47 -0
- package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -0
- package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts +53 -0
- package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts.map +1 -0
- package/daemon/dist/domain/mission-control/notification-dispatcher.js +181 -0
- package/daemon/dist/domain/mission-control/notification-dispatcher.js.map +1 -0
- package/daemon/dist/domain/native-resume-probe.d.ts +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +67 -0
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +29 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +184 -38
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +2 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +21 -7
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/outbox-handler.d.ts +48 -0
- package/daemon/dist/domain/outbox-handler.d.ts.map +1 -0
- package/daemon/dist/domain/outbox-handler.js +106 -0
- package/daemon/dist/domain/outbox-handler.js.map +1 -0
- package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts +64 -0
- package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -0
- package/daemon/dist/domain/policies/artifact-pool-helpers.js +226 -0
- package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -0
- package/daemon/dist/domain/policies/artifact-pool-ready.d.ts +3 -0
- package/daemon/dist/domain/policies/artifact-pool-ready.d.ts.map +1 -0
- package/daemon/dist/domain/policies/artifact-pool-ready.js +41 -0
- package/daemon/dist/domain/policies/artifact-pool-ready.js.map +1 -0
- package/daemon/dist/domain/policies/edge-artifact-required.d.ts +3 -0
- package/daemon/dist/domain/policies/edge-artifact-required.d.ts.map +1 -0
- package/daemon/dist/domain/policies/edge-artifact-required.js +90 -0
- package/daemon/dist/domain/policies/edge-artifact-required.js.map +1 -0
- package/daemon/dist/domain/policies/periodic-reminder.d.ts +3 -0
- package/daemon/dist/domain/policies/periodic-reminder.d.ts.map +1 -0
- package/daemon/dist/domain/policies/periodic-reminder.js +30 -0
- package/daemon/dist/domain/policies/periodic-reminder.js.map +1 -0
- package/daemon/dist/domain/policies/types.d.ts +51 -0
- package/daemon/dist/domain/policies/types.d.ts.map +1 -0
- package/daemon/dist/domain/policies/types.js +9 -0
- package/daemon/dist/domain/policies/types.js.map +1 -0
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -0
- package/daemon/dist/domain/policies/workflow-keepalive.js +123 -0
- package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -0
- package/daemon/dist/domain/preview/preview-rate-limiter.d.ts +20 -0
- package/daemon/dist/domain/preview/preview-rate-limiter.d.ts.map +1 -0
- package/daemon/dist/domain/preview/preview-rate-limiter.js +46 -0
- package/daemon/dist/domain/preview/preview-rate-limiter.js.map +1 -0
- package/daemon/dist/domain/profile-resolver.d.ts +5 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +62 -8
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/progress/progress-indexer.d.ts +73 -0
- package/daemon/dist/domain/progress/progress-indexer.d.ts.map +1 -0
- package/daemon/dist/domain/progress/progress-indexer.js +210 -0
- package/daemon/dist/domain/progress/progress-indexer.js.map +1 -0
- package/daemon/dist/domain/project-classifier.d.ts +75 -0
- package/daemon/dist/domain/project-classifier.d.ts.map +1 -0
- package/daemon/dist/domain/project-classifier.js +132 -0
- package/daemon/dist/domain/project-classifier.js.map +1 -0
- package/daemon/dist/domain/projection-planner.d.ts +1 -0
- package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
- package/daemon/dist/domain/projection-planner.js +3 -0
- package/daemon/dist/domain/projection-planner.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +31 -0
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +38 -0
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +340 -0
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -0
- package/daemon/dist/domain/queue-repository.js +744 -0
- package/daemon/dist/domain/queue-repository.js.map +1 -0
- package/daemon/dist/domain/queue-transition-log.d.ts +38 -0
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -0
- package/daemon/dist/domain/queue-transition-log.js +52 -0
- package/daemon/dist/domain/queue-transition-log.js.map +1 -0
- package/daemon/dist/domain/rehydrate-eligibility.d.ts +16 -0
- package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -0
- package/daemon/dist/domain/rehydrate-eligibility.js +43 -0
- package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -0
- package/daemon/dist/domain/restore-check-service.d.ts +203 -0
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -0
- package/daemon/dist/domain/restore-check-service.js +1060 -0
- package/daemon/dist/domain/restore-check-service.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +49 -3
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +464 -64
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +13 -0
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +31 -1
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +104 -5
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +5 -0
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +28 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +2 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +29 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +194 -2
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +349 -0
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +38 -2
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js +5 -0
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/seat-handover-planner.d.ts +84 -0
- package/daemon/dist/domain/seat-handover-planner.d.ts.map +1 -0
- package/daemon/dist/domain/seat-handover-planner.js +188 -0
- package/daemon/dist/domain/seat-handover-planner.js.map +1 -0
- package/daemon/dist/domain/seat-handover-service.d.ts +104 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-handover-service.js +343 -0
- package/daemon/dist/domain/seat-handover-service.js.map +1 -0
- package/daemon/dist/domain/seat-status-service.d.ts +50 -0
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-status-service.js +66 -0
- package/daemon/dist/domain/seat-status-service.js.map +1 -0
- package/daemon/dist/domain/session-source-rebuild-resolver.d.ts +53 -0
- package/daemon/dist/domain/session-source-rebuild-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/session-source-rebuild-resolver.js +59 -0
- package/daemon/dist/domain/session-source-rebuild-resolver.js.map +1 -0
- package/daemon/dist/domain/session-transport.d.ts +30 -0
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +322 -12
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/skill-discovery.d.ts +51 -0
- package/daemon/dist/domain/skill-discovery.d.ts.map +1 -0
- package/daemon/dist/domain/skill-discovery.js +144 -0
- package/daemon/dist/domain/skill-discovery.js.map +1 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts +182 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -0
- package/daemon/dist/domain/slices/slice-detail-projector.js +508 -0
- package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -0
- package/daemon/dist/domain/slices/slice-indexer.d.ts +118 -0
- package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -0
- package/daemon/dist/domain/slices/slice-indexer.js +503 -0
- package/daemon/dist/domain/slices/slice-indexer.js.map +1 -0
- package/daemon/dist/domain/snapshot-repository.d.ts +18 -0
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +77 -0
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/spec-library-service.d.ts +17 -2
- package/daemon/dist/domain/spec-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-service.js +31 -1
- package/daemon/dist/domain/spec-library-service.js.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +81 -0
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -0
- package/daemon/dist/domain/spec-library-workflow-scanner.js +171 -0
- package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts +22 -3
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +31 -5
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
- package/daemon/dist/domain/startup-validation.js +57 -11
- package/daemon/dist/domain/startup-validation.js.map +1 -1
- package/daemon/dist/domain/steering/health-summary.d.ts +39 -0
- package/daemon/dist/domain/steering/health-summary.d.ts.map +1 -0
- package/daemon/dist/domain/steering/health-summary.js +100 -0
- package/daemon/dist/domain/steering/health-summary.js.map +1 -0
- package/daemon/dist/domain/steering/steering-composer.d.ts +102 -0
- package/daemon/dist/domain/steering/steering-composer.d.ts.map +1 -0
- package/daemon/dist/domain/steering/steering-composer.js +263 -0
- package/daemon/dist/domain/steering/steering-composer.js.map +1 -0
- package/daemon/dist/domain/stream-store.d.ts +56 -0
- package/daemon/dist/domain/stream-store.d.ts.map +1 -0
- package/daemon/dist/domain/stream-store.js +108 -0
- package/daemon/dist/domain/stream-store.js.map +1 -0
- package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-capture.js +7 -4
- package/daemon/dist/domain/transcript-capture.js.map +1 -1
- package/daemon/dist/domain/transcript-redaction.d.ts +13 -0
- package/daemon/dist/domain/transcript-redaction.d.ts.map +1 -0
- package/daemon/dist/domain/transcript-redaction.js +34 -0
- package/daemon/dist/domain/transcript-redaction.js.map +1 -0
- package/daemon/dist/domain/transcript-rotation.d.ts +29 -0
- package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -0
- package/daemon/dist/domain/transcript-rotation.js +109 -0
- package/daemon/dist/domain/transcript-rotation.js.map +1 -0
- package/daemon/dist/domain/transcript-store.d.ts +15 -0
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +64 -2
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +416 -4
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js +8 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +42 -0
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -0
- package/daemon/dist/domain/user-settings/settings-store.js +364 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -0
- package/daemon/dist/domain/view-event-bridge.d.ts +12 -0
- package/daemon/dist/domain/view-event-bridge.d.ts.map +1 -0
- package/daemon/dist/domain/view-event-bridge.js +91 -0
- package/daemon/dist/domain/view-event-bridge.js.map +1 -0
- package/daemon/dist/domain/view-projector.d.ts +83 -0
- package/daemon/dist/domain/view-projector.d.ts.map +1 -0
- package/daemon/dist/domain/view-projector.js +296 -0
- package/daemon/dist/domain/view-projector.js.map +1 -0
- package/daemon/dist/domain/watchdog-history-log.d.ts +49 -0
- package/daemon/dist/domain/watchdog-history-log.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-history-log.js +67 -0
- package/daemon/dist/domain/watchdog-history-log.js.map +1 -0
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts +81 -0
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-jobs-repository.js +164 -0
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -0
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +92 -0
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-policy-engine.js +442 -0
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -0
- package/daemon/dist/domain/watchdog-scheduler.d.ts +76 -0
- package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-scheduler.js +112 -0
- package/daemon/dist/domain/watchdog-scheduler.js.map +1 -0
- package/daemon/dist/domain/whoami-service.d.ts +29 -0
- package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
- package/daemon/dist/domain/whoami-service.js +68 -0
- package/daemon/dist/domain/whoami-service.js.map +1 -1
- package/daemon/dist/domain/workflow/slice-workflow-binding.d.ts +21 -0
- package/daemon/dist/domain/workflow/slice-workflow-binding.d.ts.map +1 -0
- package/daemon/dist/domain/workflow/slice-workflow-binding.js +103 -0
- package/daemon/dist/domain/workflow/slice-workflow-binding.js.map +1 -0
- package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts +81 -0
- package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -0
- package/daemon/dist/domain/workflow/slice-workflow-projection.js +127 -0
- package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -0
- package/daemon/dist/domain/workflow/starter-spec-loader.d.ts +51 -0
- package/daemon/dist/domain/workflow/starter-spec-loader.d.ts.map +1 -0
- package/daemon/dist/domain/workflow/starter-spec-loader.js +140 -0
- package/daemon/dist/domain/workflow/starter-spec-loader.js.map +1 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts +46 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-instance-store.js +116 -0
- package/daemon/dist/domain/workflow-instance-store.js.map +1 -0
- package/daemon/dist/domain/workflow-projector.d.ts +64 -0
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-projector.js +432 -0
- package/daemon/dist/domain/workflow-projector.js.map +1 -0
- package/daemon/dist/domain/workflow-runtime.d.ts +63 -0
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-runtime.js +150 -0
- package/daemon/dist/domain/workflow-runtime.js.map +1 -0
- package/daemon/dist/domain/workflow-spec-cache.d.ts +42 -0
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-spec-cache.js +218 -0
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -0
- package/daemon/dist/domain/workflow-step-trail-log.d.ts +27 -0
- package/daemon/dist/domain/workflow-step-trail-log.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-step-trail-log.js +73 -0
- package/daemon/dist/domain/workflow-step-trail-log.js.map +1 -0
- package/daemon/dist/domain/workflow-types.d.ts +108 -0
- package/daemon/dist/domain/workflow-types.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-types.js +11 -0
- package/daemon/dist/domain/workflow-types.js.map +1 -0
- package/daemon/dist/domain/workflow-validator.d.ts +31 -0
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-validator.js +115 -0
- package/daemon/dist/domain/workflow-validator.js.map +1 -0
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +6 -0
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -0
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +207 -0
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -0
- package/daemon/dist/domain/workspace/frontmatter-validator.d.ts +40 -0
- package/daemon/dist/domain/workspace/frontmatter-validator.d.ts.map +1 -0
- package/daemon/dist/domain/workspace/frontmatter-validator.js +185 -0
- package/daemon/dist/domain/workspace/frontmatter-validator.js.map +1 -0
- package/daemon/dist/domain/workspace/workspace-resolver.d.ts +25 -0
- package/daemon/dist/domain/workspace/workspace-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/workspace/workspace-resolver.js +86 -0
- package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +30 -2
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/middleware/auth-bearer-token.d.ts +49 -0
- package/daemon/dist/middleware/auth-bearer-token.d.ts.map +1 -0
- package/daemon/dist/middleware/auth-bearer-token.js +135 -0
- package/daemon/dist/middleware/auth-bearer-token.js.map +1 -0
- package/daemon/dist/openrig-compat.d.ts +1 -1
- package/daemon/dist/openrig-compat.d.ts.map +1 -1
- package/daemon/dist/openrig-compat.js +6 -4
- package/daemon/dist/openrig-compat.js.map +1 -1
- package/daemon/dist/routes/activity.d.ts +3 -0
- package/daemon/dist/routes/activity.d.ts.map +1 -0
- package/daemon/dist/routes/activity.js +47 -0
- package/daemon/dist/routes/activity.js.map +1 -0
- package/daemon/dist/routes/agent-images.d.ts +8 -0
- package/daemon/dist/routes/agent-images.d.ts.map +1 -0
- package/daemon/dist/routes/agent-images.js +253 -0
- package/daemon/dist/routes/agent-images.js.map +1 -0
- package/daemon/dist/routes/config.d.ts +3 -0
- package/daemon/dist/routes/config.d.ts.map +1 -0
- package/daemon/dist/routes/config.js +109 -0
- package/daemon/dist/routes/config.js.map +1 -0
- package/daemon/dist/routes/context-packs.d.ts +3 -0
- package/daemon/dist/routes/context-packs.d.ts.map +1 -0
- package/daemon/dist/routes/context-packs.js +129 -0
- package/daemon/dist/routes/context-packs.js.map +1 -0
- package/daemon/dist/routes/files.d.ts +17 -0
- package/daemon/dist/routes/files.d.ts.map +1 -0
- package/daemon/dist/routes/files.js +262 -0
- package/daemon/dist/routes/files.js.map +1 -0
- package/daemon/dist/routes/health-summary.d.ts +9 -0
- package/daemon/dist/routes/health-summary.d.ts.map +1 -0
- package/daemon/dist/routes/health-summary.js +33 -0
- package/daemon/dist/routes/health-summary.js.map +1 -0
- package/daemon/dist/routes/mission-control.d.ts +37 -0
- package/daemon/dist/routes/mission-control.d.ts.map +1 -0
- package/daemon/dist/routes/mission-control.js +283 -0
- package/daemon/dist/routes/mission-control.js.map +1 -0
- package/daemon/dist/routes/progress.d.ts +7 -0
- package/daemon/dist/routes/progress.d.ts.map +1 -0
- package/daemon/dist/routes/progress.js +33 -0
- package/daemon/dist/routes/progress.js.map +1 -0
- package/daemon/dist/routes/projects.d.ts +12 -0
- package/daemon/dist/routes/projects.d.ts.map +1 -0
- package/daemon/dist/routes/projects.js +178 -0
- package/daemon/dist/routes/projects.js.map +1 -0
- package/daemon/dist/routes/queue.d.ts +10 -0
- package/daemon/dist/routes/queue.d.ts.map +1 -0
- package/daemon/dist/routes/queue.js +425 -0
- package/daemon/dist/routes/queue.js.map +1 -0
- package/daemon/dist/routes/restore-check.d.ts +3 -0
- package/daemon/dist/routes/restore-check.d.ts.map +1 -0
- package/daemon/dist/routes/restore-check.js +200 -0
- package/daemon/dist/routes/restore-check.js.map +1 -0
- package/daemon/dist/routes/rigs.d.ts +3 -0
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +131 -9
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/rigspec.js +6 -3
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts +3 -0
- package/daemon/dist/routes/seat.d.ts.map +1 -0
- package/daemon/dist/routes/seat.js +69 -0
- package/daemon/dist/routes/seat.js.map +1 -0
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +144 -4
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/slices.d.ts +9 -0
- package/daemon/dist/routes/slices.d.ts.map +1 -0
- package/daemon/dist/routes/slices.js +192 -0
- package/daemon/dist/routes/slices.js.map +1 -0
- package/daemon/dist/routes/snapshots.js +66 -29
- package/daemon/dist/routes/snapshots.js.map +1 -1
- package/daemon/dist/routes/spec-library.d.ts.map +1 -1
- package/daemon/dist/routes/spec-library.js +72 -5
- package/daemon/dist/routes/spec-library.js.map +1 -1
- package/daemon/dist/routes/steering.d.ts +7 -0
- package/daemon/dist/routes/steering.d.ts.map +1 -0
- package/daemon/dist/routes/steering.js +27 -0
- package/daemon/dist/routes/steering.js.map +1 -0
- package/daemon/dist/routes/stream.d.ts +9 -0
- package/daemon/dist/routes/stream.d.ts.map +1 -0
- package/daemon/dist/routes/stream.js +119 -0
- package/daemon/dist/routes/stream.js.map +1 -0
- package/daemon/dist/routes/transcripts.d.ts.map +1 -1
- package/daemon/dist/routes/transcripts.js +38 -0
- package/daemon/dist/routes/transcripts.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +21 -0
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/routes/up.d.ts.map +1 -1
- package/daemon/dist/routes/up.js +43 -4
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/views.d.ts +13 -0
- package/daemon/dist/routes/views.d.ts.map +1 -0
- package/daemon/dist/routes/views.js +120 -0
- package/daemon/dist/routes/views.js.map +1 -0
- package/daemon/dist/routes/watchdog.d.ts +18 -0
- package/daemon/dist/routes/watchdog.d.ts.map +1 -0
- package/daemon/dist/routes/watchdog.js +148 -0
- package/daemon/dist/routes/watchdog.js.map +1 -0
- package/daemon/dist/routes/whoami.d.ts.map +1 -1
- package/daemon/dist/routes/whoami.js +6 -1
- package/daemon/dist/routes/whoami.js.map +1 -1
- package/daemon/dist/routes/workflow.d.ts +20 -0
- package/daemon/dist/routes/workflow.d.ts.map +1 -0
- package/daemon/dist/routes/workflow.js +227 -0
- package/daemon/dist/routes/workflow.js.map +1 -0
- package/daemon/dist/routes/workspace.d.ts +3 -0
- package/daemon/dist/routes/workspace.d.ts.map +1 -0
- package/daemon/dist/routes/workspace.js +53 -0
- package/daemon/dist/routes/workspace.js.map +1 -0
- package/daemon/dist/server.d.ts +81 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +85 -1
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts +9 -0
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +585 -8
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +19 -12
- package/daemon/docs/reference/agent-startup-guide.md +11 -11
- package/daemon/docs/reference/project-workspace.md +102 -0
- package/daemon/specs/agents/apps/vault-specialist/agent.yaml +2 -2
- package/daemon/specs/agents/apps/vault-specialist/guidance/role.md +0 -1
- package/daemon/specs/agents/conveyor/builder/agent.yaml +35 -0
- package/daemon/specs/agents/conveyor/builder/guidance/role.md +31 -0
- package/daemon/specs/agents/conveyor/builder/startup/context.md +9 -0
- package/daemon/specs/agents/conveyor/lead/agent.yaml +35 -0
- package/daemon/specs/agents/conveyor/lead/guidance/role.md +34 -0
- package/daemon/specs/agents/conveyor/lead/startup/context.md +15 -0
- package/daemon/specs/agents/conveyor/planner/agent.yaml +35 -0
- package/daemon/specs/agents/conveyor/planner/guidance/role.md +29 -0
- package/daemon/specs/agents/conveyor/planner/startup/context.md +12 -0
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +35 -0
- package/daemon/specs/agents/conveyor/reviewer/guidance/role.md +29 -0
- package/daemon/specs/agents/conveyor/reviewer/startup/context.md +10 -0
- package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
- package/daemon/specs/agents/development/implementer/agent.yaml +2 -2
- package/daemon/specs/agents/development/implementer/guidance/role.md +0 -1
- package/daemon/specs/agents/development/qa/agent.yaml +1 -1
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +2 -2
- package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +2 -3
- package/daemon/specs/agents/product-management/pm/agent.yaml +4 -0
- package/daemon/specs/agents/research/analyst/agent.yaml +1 -1
- package/daemon/specs/agents/research/synthesizer/agent.yaml +1 -1
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/shared/agent.yaml +17 -2
- package/daemon/specs/agents/shared/runtime/claude-mcp.fragment.json +12 -0
- package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +16 -0
- package/daemon/specs/agents/shared/runtime/codex-config.fragment.toml +5 -0
- package/daemon/specs/agents/shared/skills/claude-compact-in-place/SKILL.md +100 -0
- package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +110 -0
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +69 -1
- package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +153 -0
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +3 -0
- package/daemon/specs/agents/shared/skills/rig-architect/SKILL.md +11 -1
- package/daemon/specs/rigs/launch/conveyor/CULTURE.md +34 -0
- package/daemon/specs/rigs/launch/conveyor/README.md +33 -0
- package/daemon/specs/rigs/launch/conveyor/rig.yaml +72 -0
- package/daemon/specs/rigs/preview/product-team/CULTURE.md +2 -2
- package/daemon/specs/rigs/preview/product-team/rig.yaml +3 -4
- package/dist/bin-wrapper.js +0 -0
- package/dist/commands/agent-image.d.ts +4 -0
- package/dist/commands/agent-image.d.ts.map +1 -0
- package/dist/commands/agent-image.js +352 -0
- package/dist/commands/agent-image.js.map +1 -0
- package/dist/commands/capture.d.ts +7 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +59 -1
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/compact-plan.d.ts +9 -0
- package/dist/commands/compact-plan.d.ts.map +1 -0
- package/dist/commands/compact-plan.js +354 -0
- package/dist/commands/compact-plan.js.map +1 -0
- package/dist/commands/config-init-workspace.d.ts +35 -0
- package/dist/commands/config-init-workspace.d.ts.map +1 -0
- package/dist/commands/config-init-workspace.js +300 -0
- package/dist/commands/config-init-workspace.js.map +1 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +78 -18
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context-pack.d.ts +4 -0
- package/dist/commands/context-pack.d.ts.map +1 -0
- package/dist/commands/context-pack.js +357 -0
- package/dist/commands/context-pack.js.map +1 -0
- package/dist/commands/context.d.ts +9 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +220 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +8 -0
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/expand.d.ts.map +1 -1
- package/dist/commands/expand.js +15 -4
- package/dist/commands/expand.js.map +1 -1
- package/dist/commands/heartbeat.d.ts +99 -0
- package/dist/commands/heartbeat.d.ts.map +1 -0
- package/dist/commands/heartbeat.js +393 -0
- package/dist/commands/heartbeat.js.map +1 -0
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +7 -2
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/project.d.ts +14 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +157 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/ps.d.ts +20 -3
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +614 -33
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +16 -0
- package/dist/commands/queue.d.ts.map +1 -0
- package/dist/commands/queue.js +410 -0
- package/dist/commands/queue.js.map +1 -0
- package/dist/commands/restore-check.d.ts +9 -0
- package/dist/commands/restore-check.d.ts.map +1 -0
- package/dist/commands/restore-check.js +234 -0
- package/dist/commands/restore-check.js.map +1 -0
- package/dist/commands/restore-packet.d.ts +9 -0
- package/dist/commands/restore-packet.d.ts.map +1 -0
- package/dist/commands/restore-packet.js +383 -0
- package/dist/commands/restore-packet.js.map +1 -0
- package/dist/commands/restore.d.ts.map +1 -1
- package/dist/commands/restore.js +44 -1
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/seat.d.ts +5 -0
- package/dist/commands/seat.d.ts.map +1 -0
- package/dist/commands/seat.js +170 -0
- package/dist/commands/seat.js.map +1 -0
- package/dist/commands/send.d.ts +19 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +116 -5
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.js +3 -3
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/specs.d.ts +4 -2
- package/dist/commands/specs.d.ts.map +1 -1
- package/dist/commands/specs.js +111 -24
- package/dist/commands/specs.js.map +1 -1
- package/dist/commands/stream.d.ts +12 -0
- package/dist/commands/stream.d.ts.map +1 -0
- package/dist/commands/stream.js +111 -0
- package/dist/commands/stream.js.map +1 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +79 -5
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/view.d.ts +12 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +82 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/commands/watchdog.d.ts +15 -0
- package/dist/commands/watchdog.d.ts.map +1 -0
- package/dist/commands/watchdog.js +120 -0
- package/dist/commands/watchdog.js.map +1 -0
- package/dist/commands/whoami.d.ts +8 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +69 -5
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workflow.d.ts +17 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +175 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/commands/workspace.d.ts +6 -0
- package/dist/commands/workspace.d.ts.map +1 -0
- package/dist/commands/workspace.js +83 -0
- package/dist/commands/workspace.js.map +1 -0
- package/dist/config-store.d.ts +73 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +314 -42
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-cli-helpers.d.ts +12 -0
- package/dist/cross-host-cli-helpers.d.ts.map +1 -0
- package/dist/cross-host-cli-helpers.js +48 -0
- package/dist/cross-host-cli-helpers.js.map +1 -0
- package/dist/cross-host-executor.d.ts +84 -0
- package/dist/cross-host-executor.d.ts.map +1 -0
- package/dist/cross-host-executor.js +138 -0
- package/dist/cross-host-executor.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts +22 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +41 -0
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/host-registry.d.ts +50 -0
- package/dist/host-registry.d.ts.map +1 -0
- package/dist/host-registry.js +116 -0
- package/dist/host-registry.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +22 -2
- package/dist/mcp-server.js.map +1 -1
- package/dist/openrig-compat.d.ts +1 -1
- package/dist/openrig-compat.d.ts.map +1 -1
- package/dist/openrig-compat.js +6 -4
- package/dist/openrig-compat.js.map +1 -1
- package/dist/restore-packet/claude-transcript-parser.d.ts +12 -0
- package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -0
- package/dist/restore-packet/claude-transcript-parser.js +221 -0
- package/dist/restore-packet/claude-transcript-parser.js.map +1 -0
- package/dist/restore-packet/codex-jsonl-parser.d.ts +11 -0
- package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -0
- package/dist/restore-packet/codex-jsonl-parser.js +159 -0
- package/dist/restore-packet/codex-jsonl-parser.js.map +1 -0
- package/dist/restore-packet/omitted-records.d.ts +60 -0
- package/dist/restore-packet/omitted-records.d.ts.map +1 -0
- package/dist/restore-packet/omitted-records.js +116 -0
- package/dist/restore-packet/omitted-records.js.map +1 -0
- package/dist/restore-packet/packet-writer.d.ts +59 -0
- package/dist/restore-packet/packet-writer.d.ts.map +1 -0
- package/dist/restore-packet/packet-writer.js +224 -0
- package/dist/restore-packet/packet-writer.js.map +1 -0
- package/dist/restore-packet/redaction.d.ts +30 -0
- package/dist/restore-packet/redaction.d.ts.map +1 -0
- package/dist/restore-packet/redaction.js +71 -0
- package/dist/restore-packet/redaction.js.map +1 -0
- package/dist/restore-packet/runtime-detect.d.ts +19 -0
- package/dist/restore-packet/runtime-detect.d.ts.map +1 -0
- package/dist/restore-packet/runtime-detect.js +81 -0
- package/dist/restore-packet/runtime-detect.js.map +1 -0
- package/dist/restore-packet/schema-validator.d.ts +13 -0
- package/dist/restore-packet/schema-validator.d.ts.map +1 -0
- package/dist/restore-packet/schema-validator.js +245 -0
- package/dist/restore-packet/schema-validator.js.map +1 -0
- package/dist/restore-packet/types.d.ts +76 -0
- package/dist/restore-packet/types.d.ts.map +1 -0
- package/dist/restore-packet/types.js +15 -0
- package/dist/restore-packet/types.js.map +1 -0
- package/dist/schemas/restore-summary.schema.json +98 -0
- package/package.json +10 -3
- package/scripts/check-abi.mjs +123 -0
- package/ui/dist/assets/index-BDHU1JUK.js +412 -0
- package/ui/dist/assets/index-DXTyJSqu.css +1 -0
- package/ui/dist/graphics/operator-climber-monochrome.png +0 -0
- package/ui/dist/index.html +3 -2
- package/daemon/specs/agents/shared/skills/mental-model-ha/SKILL.md +0 -953
- package/ui/dist/assets/index-B09doO8H.js +0 -139
- package/ui/dist/assets/index-Ccd-jwRN.js +0 -225
- package/ui/dist/assets/index-DlMH-REm.css +0 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
async function readStdin() {
|
|
5
|
+
return new Promise((resolve) => {
|
|
6
|
+
let data = "";
|
|
7
|
+
process.stdin.setEncoding("utf8");
|
|
8
|
+
process.stdin.on("data", (chunk) => {
|
|
9
|
+
data += chunk;
|
|
10
|
+
});
|
|
11
|
+
process.stdin.on("end", () => resolve(data));
|
|
12
|
+
process.stdin.on("error", () => resolve(""));
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function parseJson(value) {
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse(value || "{}");
|
|
19
|
+
return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
|
|
20
|
+
} catch {
|
|
21
|
+
return {};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function firstString(...values) {
|
|
26
|
+
for (const value of values) {
|
|
27
|
+
if (typeof value === "string" && value.trim().length > 0) return value.trim();
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function buildOpenRigPayload(providerPayload, env = process.env, now = () => new Date()) {
|
|
33
|
+
const sessionName = firstString(env.OPENRIG_SESSION_NAME, env.RIGGED_SESSION_NAME);
|
|
34
|
+
const nodeId = firstString(env.OPENRIG_NODE_ID, env.RIGGED_NODE_ID);
|
|
35
|
+
const runtime = firstString(env.OPENRIG_RUNTIME, env.RIGGED_RUNTIME);
|
|
36
|
+
const hookEvent = firstString(
|
|
37
|
+
providerPayload.hookEvent,
|
|
38
|
+
providerPayload.hookEventName,
|
|
39
|
+
providerPayload.hook_event_name,
|
|
40
|
+
providerPayload.event,
|
|
41
|
+
providerPayload.eventName
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
if ((!sessionName && !nodeId) || !runtime || !hookEvent) return null;
|
|
45
|
+
|
|
46
|
+
const subtype = firstString(
|
|
47
|
+
providerPayload.subtype,
|
|
48
|
+
providerPayload.notification_type,
|
|
49
|
+
providerPayload.notificationType,
|
|
50
|
+
providerPayload.tool_name,
|
|
51
|
+
providerPayload.toolName,
|
|
52
|
+
providerPayload.source,
|
|
53
|
+
providerPayload.matcher
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
sessionName,
|
|
58
|
+
nodeId,
|
|
59
|
+
runtime,
|
|
60
|
+
hookEvent,
|
|
61
|
+
subtype,
|
|
62
|
+
occurredAt: now().toISOString(),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async function postHookPayload(payload, env = process.env) {
|
|
67
|
+
const baseUrl = firstString(env.OPENRIG_URL, env.RIGGED_URL);
|
|
68
|
+
const token = firstString(env.OPENRIG_ACTIVITY_HOOK_TOKEN, env.RIGGED_ACTIVITY_HOOK_TOKEN);
|
|
69
|
+
if (!baseUrl || !token || !payload || typeof fetch !== "function") return;
|
|
70
|
+
|
|
71
|
+
const controller = new AbortController();
|
|
72
|
+
const timeout = setTimeout(() => controller.abort(), 1500);
|
|
73
|
+
try {
|
|
74
|
+
await fetch(new URL("/api/activity/hooks", baseUrl).toString(), {
|
|
75
|
+
method: "POST",
|
|
76
|
+
headers: {
|
|
77
|
+
"content-type": "application/json",
|
|
78
|
+
"authorization": `Bearer ${token}`,
|
|
79
|
+
},
|
|
80
|
+
body: JSON.stringify(payload),
|
|
81
|
+
signal: controller.signal,
|
|
82
|
+
});
|
|
83
|
+
} catch {
|
|
84
|
+
// Provider hooks must not block the agent loop if OpenRig is unavailable.
|
|
85
|
+
} finally {
|
|
86
|
+
clearTimeout(timeout);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async function main() {
|
|
91
|
+
const providerPayload = parseJson(await readStdin());
|
|
92
|
+
const payload = buildOpenRigPayload(providerPayload);
|
|
93
|
+
await postHookPayload(payload);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (require.main === module) {
|
|
97
|
+
main().catch(() => {});
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
module.exports = {
|
|
101
|
+
buildOpenRigPayload,
|
|
102
|
+
parseJson,
|
|
103
|
+
postHookPayload,
|
|
104
|
+
};
|
|
@@ -25,6 +25,8 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
|
|
|
25
25
|
private sleep;
|
|
26
26
|
private stateDir;
|
|
27
27
|
private collectorAssetPath;
|
|
28
|
+
private activityHookRelayAssetPath;
|
|
29
|
+
private autoDriveProviderPrompts;
|
|
28
30
|
constructor(deps: {
|
|
29
31
|
tmux: TmuxAdapter;
|
|
30
32
|
fsOps: ClaudeAdapterFsOps;
|
|
@@ -32,6 +34,8 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
|
|
|
32
34
|
sleep?: (ms: number) => Promise<void>;
|
|
33
35
|
stateDir?: string;
|
|
34
36
|
collectorAssetPath?: string;
|
|
37
|
+
activityHookRelayAssetPath?: string;
|
|
38
|
+
autoDriveProviderPrompts?: boolean;
|
|
35
39
|
});
|
|
36
40
|
listInstalled(binding: NodeBinding): Promise<InstalledResource[]>;
|
|
37
41
|
project(plan: ProjectionPlan, binding: NodeBinding): Promise<ProjectionResult>;
|
|
@@ -39,6 +43,7 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
|
|
|
39
43
|
launchHarness(binding: NodeBinding, opts: {
|
|
40
44
|
name: string;
|
|
41
45
|
resumeToken?: string;
|
|
46
|
+
forkSource?: import("../domain/runtime-adapter.js").ForkSource;
|
|
42
47
|
}): Promise<HarnessLaunchResult>;
|
|
43
48
|
checkReady(binding: NodeBinding): Promise<ReadinessResult>;
|
|
44
49
|
/** Best-effort public seam for tmux-bound Claude sessions adopted outside the launch path. */
|
|
@@ -54,6 +59,8 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
|
|
|
54
59
|
private verifyResumeLaunch;
|
|
55
60
|
private projectEntry;
|
|
56
61
|
private resolveTargetDir;
|
|
62
|
+
private applyRuntimeResource;
|
|
63
|
+
private mergeJsonFragment;
|
|
57
64
|
/**
|
|
58
65
|
* Merge a managed block into the target guidance file. Returns `true` when
|
|
59
66
|
* the merge happened, `false` when intentionally skipped (currently only the
|
|
@@ -67,14 +74,30 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
|
|
|
67
74
|
* Finds the session file whose name matches the expected session name.
|
|
68
75
|
* Returns the sessionId if found, undefined otherwise.
|
|
69
76
|
*/
|
|
77
|
+
/**
|
|
78
|
+
* PL-016 hardening v0+1 — poll captureResumeToken on the
|
|
79
|
+
* verifyResumeLaunch cadence. Returns the token as soon as the
|
|
80
|
+
* session file appears, or undefined after attempts × delayMs ceiling.
|
|
81
|
+
* Used by the fork branch where the new session-name file appears
|
|
82
|
+
* 1-3s after the Enter key is sent (cold-start fork-file write).
|
|
83
|
+
*/
|
|
84
|
+
private pollForResumeToken;
|
|
70
85
|
private captureResumeToken;
|
|
71
86
|
private detectDeliveryHint;
|
|
72
87
|
private provisionManagedBootstrap;
|
|
88
|
+
/** Managed rig command baseline.
|
|
89
|
+
* Additive only; never removes existing entries. Uses `Bash(cmd:*)`
|
|
90
|
+
* colon-form per Claude Code convention.
|
|
91
|
+
*
|
|
92
|
+
* NOTE: this is not OpenRig's permission system. Harness-native
|
|
93
|
+
* permissions should remain the primary control surface. */
|
|
94
|
+
static readonly CONVENIENCE_BASELINE: readonly string[];
|
|
73
95
|
private provisionRigPermissions;
|
|
74
96
|
private provisionWorkspaceTrust;
|
|
75
97
|
private provisionOnboardingState;
|
|
76
98
|
private workspaceTrustKeys;
|
|
77
99
|
private readJsonObject;
|
|
100
|
+
private readJsonObjectStrict;
|
|
78
101
|
private readJsonObjectField;
|
|
79
102
|
private readStringArray;
|
|
80
103
|
/**
|
|
@@ -83,11 +106,6 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
|
|
|
83
106
|
* Idempotent: safe to call multiple times (merge preserves existing settings).
|
|
84
107
|
*/
|
|
85
108
|
private provisionContextCollector;
|
|
86
|
-
|
|
87
|
-
* Best-effort: provision permissions allowlist and MCP config for managed Claude sessions.
|
|
88
|
-
* Merges into .claude/settings.local.json (project-level, gitignored).
|
|
89
|
-
* Idempotent: merge preserves existing settings.
|
|
90
|
-
*/
|
|
91
|
-
private provisionPermissionsAndMcps;
|
|
109
|
+
private provisionActivityHooks;
|
|
92
110
|
}
|
|
93
111
|
//# sourceMappingURL=claude-code-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-code-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EACV,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAChD,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAC3E,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,iCAAiC,CAAC;AAIvF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtC,6DAA6D;IAC7D,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACpC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"claude-code-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-code-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EACV,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAChD,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAC3E,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,iCAAiC,CAAC;AAIvF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtC,6DAA6D;IAC7D,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACpC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,QAAQ,CAAC,OAAO,iBAAiB;IACjC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,0BAA0B,CAAgB;IAClD,OAAO,CAAC,wBAAwB,CAAU;gBAE9B,IAAI,EAAE;QAChB,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,kBAAkB,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,MAAM,CAAC;QAChC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC;IAWK,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAWjE,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0B9E,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4DlG,aAAa,CACjB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,8BAA8B,EAAE,UAAU,CAAA;KAAE,GAC3G,OAAO,CAAC,mBAAmB,CAAC;IA4EzB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAqBhE,8FAA8F;IAC9F,sBAAsB,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI;IAI3F,wFAAwF;IACxF,sBAAsB,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI;YAM7E,kBAAkB;IA6DhC,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,iBAAiB;IAQzB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAmBrB;;;;OAIG;IACH;;;;;;OAMG;YACW,kBAAkB;IAehC,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,yBAAyB;IAMjC;;;;;iEAK6D;IAC7D,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAErD;IAEF,OAAO,CAAC,uBAAuB;IAsC/B,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,eAAe;IAIvB;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAyBjC,OAAO,CAAC,sBAAsB;CAoB/B"}
|
|
@@ -5,6 +5,12 @@ import { resolveConcreteHint } from "../domain/runtime-adapter.js";
|
|
|
5
5
|
import { assessNativeResumeProbe } from "../domain/native-resume-probe.js";
|
|
6
6
|
import { mergeManagedBlock } from "../domain/managed-blocks.js";
|
|
7
7
|
const SHELL_COMMANDS = new Set(["bash", "fish", "nu", "sh", "tmux", "zsh"]);
|
|
8
|
+
// Real Claude Code binary needs 1-3s to write the new fork session-name
|
|
9
|
+
// file under ~/.claude/sessions/. Poll instead of single-shot lookup.
|
|
10
|
+
// 12 × 500ms = 6s ceiling — comfortably above the observed cold-start
|
|
11
|
+
// fork-file write window without making a bad-token error feel slow.
|
|
12
|
+
const FORK_POLL_ATTEMPTS = 12;
|
|
13
|
+
const FORK_POLL_DELAY_MS = 500;
|
|
8
14
|
/**
|
|
9
15
|
* Claude Code runtime adapter. Projects resources to .claude/ targets
|
|
10
16
|
* and delivers startup files via guidance merge, skill install, or tmux send-text.
|
|
@@ -17,6 +23,8 @@ export class ClaudeCodeAdapter {
|
|
|
17
23
|
sleep;
|
|
18
24
|
stateDir;
|
|
19
25
|
collectorAssetPath;
|
|
26
|
+
activityHookRelayAssetPath;
|
|
27
|
+
autoDriveProviderPrompts;
|
|
20
28
|
constructor(deps) {
|
|
21
29
|
this.tmux = deps.tmux;
|
|
22
30
|
this.fs = deps.fsOps;
|
|
@@ -24,6 +32,8 @@ export class ClaudeCodeAdapter {
|
|
|
24
32
|
this.sleep = deps.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
25
33
|
this.stateDir = deps.stateDir ?? null;
|
|
26
34
|
this.collectorAssetPath = deps.collectorAssetPath ?? null;
|
|
35
|
+
this.activityHookRelayAssetPath = deps.activityHookRelayAssetPath ?? null;
|
|
36
|
+
this.autoDriveProviderPrompts = deps.autoDriveProviderPrompts ?? false;
|
|
27
37
|
}
|
|
28
38
|
async listInstalled(binding) {
|
|
29
39
|
const results = [];
|
|
@@ -74,12 +84,13 @@ export class ClaudeCodeAdapter {
|
|
|
74
84
|
// Log but don't fail — collector provisioning is best-effort
|
|
75
85
|
console.error(`[openrig] context collector provisioning warning: ${err.message}`);
|
|
76
86
|
}
|
|
77
|
-
// Best-effort: provision
|
|
87
|
+
// Best-effort: provision project-local activity hooks. The hook token is
|
|
88
|
+
// supplied through tmux session env, never written to provider settings.
|
|
78
89
|
try {
|
|
79
|
-
this.
|
|
90
|
+
this.provisionActivityHooks(binding);
|
|
80
91
|
}
|
|
81
92
|
catch (err) {
|
|
82
|
-
console.error(`[openrig]
|
|
93
|
+
console.error(`[openrig] claude activity hook provisioning warning: ${err.message}`);
|
|
83
94
|
}
|
|
84
95
|
let delivered = 0;
|
|
85
96
|
const failed = [];
|
|
@@ -128,8 +139,48 @@ export class ClaudeCodeAdapter {
|
|
|
128
139
|
if (!binding.tmuxSession) {
|
|
129
140
|
return { ok: false, error: "No tmux session bound — cannot launch Claude Code harness" };
|
|
130
141
|
}
|
|
131
|
-
|
|
142
|
+
if (opts.resumeToken && opts.forkSource) {
|
|
143
|
+
return { ok: false, error: "resumeToken and forkSource are mutually exclusive — pick one" };
|
|
144
|
+
}
|
|
132
145
|
const permissionMode = "--permission-mode acceptEdits";
|
|
146
|
+
// Fork branch: build `claude --resume <parent> --fork-session --name <seat>`
|
|
147
|
+
// and capture the NEW post-fork session id. The parent token is NEVER
|
|
148
|
+
// persisted onto the new seat record (identity-honesty bedrock).
|
|
149
|
+
if (opts.forkSource) {
|
|
150
|
+
if (opts.forkSource.kind !== "native_id") {
|
|
151
|
+
return {
|
|
152
|
+
ok: false,
|
|
153
|
+
error: `claude-code fork: ref.kind="${opts.forkSource.kind}" is not supported in v1; use ref.kind="native_id" with the prior conversation's session id`,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
const parentId = opts.forkSource.value?.trim();
|
|
157
|
+
if (!parentId) {
|
|
158
|
+
return { ok: false, error: "claude-code fork: forkSource.value is required (parent native_id)" };
|
|
159
|
+
}
|
|
160
|
+
const cmd = `claude ${permissionMode} --resume ${parentId} --fork-session --name ${opts.name}`;
|
|
161
|
+
const textResult = await this.tmux.sendText(binding.tmuxSession, cmd);
|
|
162
|
+
if (!textResult.ok) {
|
|
163
|
+
return { ok: false, error: `Failed to send launch command: ${textResult.message}` };
|
|
164
|
+
}
|
|
165
|
+
const enterResult = await this.tmux.sendKeys(binding.tmuxSession, ["Enter"]);
|
|
166
|
+
if (!enterResult.ok) {
|
|
167
|
+
return { ok: false, error: `Failed to send Enter: ${enterResult.message}` };
|
|
168
|
+
}
|
|
169
|
+
// claude needs 1-3s to write the new fork session-name file under
|
|
170
|
+
// ~/.claude/sessions/. The original implementation captured the
|
|
171
|
+
// token IMMEDIATELY after Enter, which always returned undefined
|
|
172
|
+
// against a real binary. Poll on the
|
|
173
|
+
// verifyResumeLaunch cadence (12 × 500ms = 6s ceiling).
|
|
174
|
+
const newToken = await this.pollForResumeToken(opts.name, FORK_POLL_ATTEMPTS, FORK_POLL_DELAY_MS);
|
|
175
|
+
if (!newToken) {
|
|
176
|
+
return {
|
|
177
|
+
ok: false,
|
|
178
|
+
error: `claude-code fork: could not capture new post-fork session id from claude session storage after ${FORK_POLL_ATTEMPTS} polls (${(FORK_POLL_ATTEMPTS * FORK_POLL_DELAY_MS) / 1000}s ceiling)`,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
return { ok: true, resumeToken: newToken, resumeType: "claude_id" };
|
|
182
|
+
}
|
|
183
|
+
const generatedSessionId = opts.resumeToken ? null : this.sessionIdFactory();
|
|
133
184
|
const cmd = opts.resumeToken
|
|
134
185
|
? `claude ${permissionMode} --resume ${opts.resumeToken} --name ${opts.name}`
|
|
135
186
|
: `claude ${permissionMode} --session-id ${generatedSessionId} --name ${opts.name}`;
|
|
@@ -201,6 +252,14 @@ export class ClaudeCodeAdapter {
|
|
|
201
252
|
if (probe.status === "resumed") {
|
|
202
253
|
return { ok: true };
|
|
203
254
|
}
|
|
255
|
+
if (this.autoDriveProviderPrompts && probe.code === "trust_gate") {
|
|
256
|
+
const enterResult = await this.tmux.sendKeys(tmuxSession, ["Enter"]);
|
|
257
|
+
if (!enterResult.ok) {
|
|
258
|
+
return { ok: false, error: `Claude trust prompt auto-drive failed: ${enterResult.message}` };
|
|
259
|
+
}
|
|
260
|
+
await this.sleep(200);
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
204
263
|
if (attempt < attempts - 1) {
|
|
205
264
|
await this.sleep(200);
|
|
206
265
|
}
|
|
@@ -225,6 +284,9 @@ export class ClaudeCodeAdapter {
|
|
|
225
284
|
return { ok: false, error: "Claude resume failed: timed out waiting for Claude to become active" };
|
|
226
285
|
}
|
|
227
286
|
projectEntry(entry, cwd) {
|
|
287
|
+
if (entry.category === "runtime_resource" && this.applyRuntimeResource(entry, cwd)) {
|
|
288
|
+
return true;
|
|
289
|
+
}
|
|
228
290
|
if (entry.category === "guidance" && entry.mergeStrategy === "managed_block") {
|
|
229
291
|
const targetPath = nodePath.join(cwd, "CLAUDE.md");
|
|
230
292
|
const content = this.fs.readFile(entry.absolutePath);
|
|
@@ -267,6 +329,25 @@ export class ClaudeCodeAdapter {
|
|
|
267
329
|
default: return null;
|
|
268
330
|
}
|
|
269
331
|
}
|
|
332
|
+
applyRuntimeResource(entry, cwd) {
|
|
333
|
+
switch (entry.resourceType) {
|
|
334
|
+
case "claude_settings_fragment":
|
|
335
|
+
this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".claude", "settings.local.json"));
|
|
336
|
+
return true;
|
|
337
|
+
case "claude_mcp_fragment":
|
|
338
|
+
this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".mcp.json"));
|
|
339
|
+
return true;
|
|
340
|
+
default:
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
mergeJsonFragment(sourcePath, targetPath) {
|
|
345
|
+
const fragment = this.readJsonObjectStrict(sourcePath);
|
|
346
|
+
const existing = this.readJsonObject(targetPath);
|
|
347
|
+
const merged = mergeJsonObjects(existing, fragment);
|
|
348
|
+
this.fs.mkdirp(nodePath.dirname(targetPath));
|
|
349
|
+
this.fs.writeFile(targetPath, JSON.stringify(merged, null, 2));
|
|
350
|
+
}
|
|
270
351
|
/**
|
|
271
352
|
* Merge a managed block into the target guidance file. Returns `true` when
|
|
272
353
|
* the merge happened, `false` when intentionally skipped (currently only the
|
|
@@ -295,6 +376,24 @@ export class ClaudeCodeAdapter {
|
|
|
295
376
|
* Finds the session file whose name matches the expected session name.
|
|
296
377
|
* Returns the sessionId if found, undefined otherwise.
|
|
297
378
|
*/
|
|
379
|
+
/**
|
|
380
|
+
* PL-016 hardening v0+1 — poll captureResumeToken on the
|
|
381
|
+
* verifyResumeLaunch cadence. Returns the token as soon as the
|
|
382
|
+
* session file appears, or undefined after attempts × delayMs ceiling.
|
|
383
|
+
* Used by the fork branch where the new session-name file appears
|
|
384
|
+
* 1-3s after the Enter key is sent (cold-start fork-file write).
|
|
385
|
+
*/
|
|
386
|
+
async pollForResumeToken(expectedName, attempts, delayMs) {
|
|
387
|
+
for (let attempt = 0; attempt < attempts; attempt++) {
|
|
388
|
+
const token = this.captureResumeToken(expectedName);
|
|
389
|
+
if (token)
|
|
390
|
+
return token;
|
|
391
|
+
if (attempt < attempts - 1) {
|
|
392
|
+
await this.sleep(delayMs);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
return undefined;
|
|
396
|
+
}
|
|
298
397
|
captureResumeToken(expectedName) {
|
|
299
398
|
try {
|
|
300
399
|
const home = this.fs.homedir ?? (typeof process !== "undefined" ? process.env.HOME : undefined);
|
|
@@ -328,6 +427,15 @@ export class ClaudeCodeAdapter {
|
|
|
328
427
|
this.provisionWorkspaceTrust(binding.cwd ?? null);
|
|
329
428
|
this.provisionOnboardingState();
|
|
330
429
|
}
|
|
430
|
+
/** Managed rig command baseline.
|
|
431
|
+
* Additive only; never removes existing entries. Uses `Bash(cmd:*)`
|
|
432
|
+
* colon-form per Claude Code convention.
|
|
433
|
+
*
|
|
434
|
+
* NOTE: this is not OpenRig's permission system. Harness-native
|
|
435
|
+
* permissions should remain the primary control surface. */
|
|
436
|
+
static CONVENIENCE_BASELINE = [
|
|
437
|
+
"Bash(rig:*)",
|
|
438
|
+
];
|
|
331
439
|
provisionRigPermissions() {
|
|
332
440
|
const home = this.fs.homedir ?? (typeof process !== "undefined" ? process.env.HOME : undefined);
|
|
333
441
|
if (!home)
|
|
@@ -337,9 +445,27 @@ export class ClaudeCodeAdapter {
|
|
|
337
445
|
const settings = this.readJsonObject(settingsPath);
|
|
338
446
|
const permissions = this.readJsonObjectField(settings, "permissions");
|
|
339
447
|
const allow = new Set(this.readStringArray(permissions["allow"]));
|
|
340
|
-
|
|
448
|
+
// Bash convenience baseline — additive only; never removes existing entries.
|
|
449
|
+
// Track whether any new patterns were actually added to avoid redundant writes
|
|
450
|
+
// (preserves provenance timestamp + file content idempotency on re-runs).
|
|
451
|
+
let added = 0;
|
|
452
|
+
for (const pattern of ClaudeCodeAdapter.CONVENIENCE_BASELINE) {
|
|
453
|
+
if (!allow.has(pattern)) {
|
|
454
|
+
allow.add(pattern);
|
|
455
|
+
added++;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
if (added === 0)
|
|
459
|
+
return; // All patterns already present; skip write
|
|
341
460
|
permissions["allow"] = Array.from(allow);
|
|
342
461
|
settings["permissions"] = permissions;
|
|
462
|
+
// Provenance marker so operators can distinguish rig-injected from human-authored
|
|
463
|
+
settings["_openrig_provenance"] = {
|
|
464
|
+
author: "openrig-at-spawn",
|
|
465
|
+
baseline: "convenience",
|
|
466
|
+
patterns_added: added,
|
|
467
|
+
ts: new Date().toISOString(),
|
|
468
|
+
};
|
|
343
469
|
this.fs.writeFile(settingsPath, JSON.stringify(settings, null, 2));
|
|
344
470
|
}
|
|
345
471
|
provisionWorkspaceTrust(cwd) {
|
|
@@ -391,6 +517,13 @@ export class ClaudeCodeAdapter {
|
|
|
391
517
|
return {};
|
|
392
518
|
}
|
|
393
519
|
}
|
|
520
|
+
readJsonObjectStrict(path) {
|
|
521
|
+
const parsed = JSON.parse(this.fs.readFile(path));
|
|
522
|
+
if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
|
|
523
|
+
return parsed;
|
|
524
|
+
}
|
|
525
|
+
throw new Error(`${path} must be a JSON object`);
|
|
526
|
+
}
|
|
394
527
|
readJsonObjectField(source, key) {
|
|
395
528
|
const value = source[key];
|
|
396
529
|
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
@@ -416,13 +549,7 @@ export class ClaudeCodeAdapter {
|
|
|
416
549
|
// 2. Merge status line config into .claude/settings.local.json
|
|
417
550
|
const settingsPath = nodePath.join(binding.cwd, ".claude", "settings.local.json");
|
|
418
551
|
this.fs.mkdirp(nodePath.dirname(settingsPath));
|
|
419
|
-
|
|
420
|
-
try {
|
|
421
|
-
if (this.fs.exists(settingsPath)) {
|
|
422
|
-
existing = JSON.parse(this.fs.readFile(settingsPath));
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
catch { /* corrupt file — overwrite */ }
|
|
552
|
+
const existing = this.readJsonObject(settingsPath);
|
|
426
553
|
const collectorCmd = `node ${collectorDest} ${contextDir}`;
|
|
427
554
|
existing["statusLine"] = {
|
|
428
555
|
...(typeof existing["statusLine"] === "object" && existing["statusLine"] !== null ? existing["statusLine"] : {}),
|
|
@@ -431,65 +558,94 @@ export class ClaudeCodeAdapter {
|
|
|
431
558
|
};
|
|
432
559
|
this.fs.writeFile(settingsPath, JSON.stringify(existing, null, 2));
|
|
433
560
|
}
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
* Merges into .claude/settings.local.json (project-level, gitignored).
|
|
437
|
-
* Idempotent: merge preserves existing settings.
|
|
438
|
-
*/
|
|
439
|
-
provisionPermissionsAndMcps(binding) {
|
|
440
|
-
if (!binding.cwd)
|
|
561
|
+
provisionActivityHooks(binding) {
|
|
562
|
+
if (!binding.cwd || !this.activityHookRelayAssetPath)
|
|
441
563
|
return;
|
|
564
|
+
const relayDest = nodePath.join(binding.cwd, ".openrig", "activity-hook-relay.cjs");
|
|
565
|
+
this.fs.mkdirp(nodePath.dirname(relayDest));
|
|
566
|
+
this.fs.writeFile(relayDest, this.fs.readFile(this.activityHookRelayAssetPath));
|
|
442
567
|
const settingsPath = nodePath.join(binding.cwd, ".claude", "settings.local.json");
|
|
443
568
|
this.fs.mkdirp(nodePath.dirname(settingsPath));
|
|
444
|
-
const
|
|
445
|
-
const
|
|
446
|
-
const
|
|
447
|
-
const
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
"Bash(head *)", "Bash(tail *)", "Bash(wc *)",
|
|
453
|
-
"Bash(mkdir *)", "Bash(cp *)", "Bash(mv *)",
|
|
454
|
-
"Bash(node *)", "Bash(npx *)", "Bash(npm *)",
|
|
455
|
-
"Read", "Edit",
|
|
456
|
-
];
|
|
457
|
-
const rigDenyRules = [
|
|
458
|
-
"Bash(git push*)", "Bash(git commit*)",
|
|
459
|
-
"Bash(rm -rf *)",
|
|
460
|
-
"Bash(gh pr *)",
|
|
461
|
-
];
|
|
462
|
-
// Merge without duplicating
|
|
463
|
-
const mergedAllow = [...new Set([...existingAllow, ...rigAllowRules])];
|
|
464
|
-
const mergedDeny = [...new Set([...existingDeny, ...rigDenyRules])];
|
|
465
|
-
existing["permissions"] = {
|
|
466
|
-
...existingPermissions,
|
|
467
|
-
defaultMode: "acceptEdits", // Unconditional: managed sessions must not inherit restrictive modes
|
|
468
|
-
allow: mergedAllow,
|
|
469
|
-
deny: mergedDeny,
|
|
470
|
-
};
|
|
471
|
-
this.fs.writeFile(settingsPath, JSON.stringify(existing, null, 2));
|
|
472
|
-
// Merge MCP config: ensure Exa and Context7 are configured at project level
|
|
473
|
-
const mcpPath = nodePath.join(binding.cwd, ".mcp.json");
|
|
474
|
-
const mcpConfig = this.readJsonObject(mcpPath);
|
|
475
|
-
const mcpServers = this.readJsonObjectField(mcpConfig, "mcpServers");
|
|
476
|
-
// Add Exa and Context7 if not already configured
|
|
477
|
-
if (!mcpServers["exa"]) {
|
|
478
|
-
mcpServers["exa"] = { type: "http", url: "https://mcp.exa.ai/mcp" };
|
|
479
|
-
}
|
|
480
|
-
if (!mcpServers["context7"]) {
|
|
481
|
-
mcpServers["context7"] = { type: "http", url: "https://mcp.context7.com/mcp" };
|
|
482
|
-
}
|
|
483
|
-
existing["enabledMcpjsonServers"] = [...new Set([
|
|
484
|
-
...existingEnabledMcpjsonServers,
|
|
485
|
-
...Object.keys(mcpServers),
|
|
486
|
-
])];
|
|
487
|
-
mcpConfig["mcpServers"] = mcpServers;
|
|
488
|
-
this.fs.writeFile(settingsPath, JSON.stringify(existing, null, 2));
|
|
489
|
-
this.fs.writeFile(mcpPath, JSON.stringify(mcpConfig, null, 2));
|
|
569
|
+
const settings = this.readJsonObject(settingsPath);
|
|
570
|
+
const hooks = this.readJsonObjectField(settings, "hooks");
|
|
571
|
+
const command = `node ${shellQuote(relayDest)}`;
|
|
572
|
+
for (const event of ["SessionStart", "UserPromptSubmit", "Stop", "Notification"]) {
|
|
573
|
+
upsertCommandHook(hooks, event, command);
|
|
574
|
+
}
|
|
575
|
+
settings["hooks"] = hooks;
|
|
576
|
+
this.fs.writeFile(settingsPath, JSON.stringify(settings, null, 2));
|
|
490
577
|
}
|
|
491
578
|
}
|
|
492
579
|
function hashContent(content) {
|
|
493
580
|
return createHash("sha256").update(content).digest("hex");
|
|
494
581
|
}
|
|
582
|
+
function mergeJsonObjects(base, fragment) {
|
|
583
|
+
const merged = { ...base };
|
|
584
|
+
for (const [key, value] of Object.entries(fragment)) {
|
|
585
|
+
merged[key] = mergeJsonValue(merged[key], value);
|
|
586
|
+
}
|
|
587
|
+
return merged;
|
|
588
|
+
}
|
|
589
|
+
function mergeJsonValue(base, fragment) {
|
|
590
|
+
if (isPlainObject(base) && isPlainObject(fragment)) {
|
|
591
|
+
return mergeJsonObjects(base, fragment);
|
|
592
|
+
}
|
|
593
|
+
if (Array.isArray(base) && Array.isArray(fragment)) {
|
|
594
|
+
return mergeJsonArrays(base, fragment);
|
|
595
|
+
}
|
|
596
|
+
return fragment;
|
|
597
|
+
}
|
|
598
|
+
function mergeJsonArrays(base, fragment) {
|
|
599
|
+
const result = [...base];
|
|
600
|
+
const seen = new Set(base.map(stableJsonKey));
|
|
601
|
+
for (const item of fragment) {
|
|
602
|
+
const key = stableJsonKey(item);
|
|
603
|
+
if (seen.has(key))
|
|
604
|
+
continue;
|
|
605
|
+
seen.add(key);
|
|
606
|
+
result.push(item);
|
|
607
|
+
}
|
|
608
|
+
return result;
|
|
609
|
+
}
|
|
610
|
+
function isPlainObject(value) {
|
|
611
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
612
|
+
}
|
|
613
|
+
function stableJsonKey(value) {
|
|
614
|
+
if (!isPlainObject(value))
|
|
615
|
+
return JSON.stringify(value);
|
|
616
|
+
const sorted = {};
|
|
617
|
+
for (const key of Object.keys(value).sort()) {
|
|
618
|
+
sorted[key] = value[key];
|
|
619
|
+
}
|
|
620
|
+
return JSON.stringify(sorted);
|
|
621
|
+
}
|
|
622
|
+
/** Shell-quote a string using single quotes (POSIX-safe). */
|
|
623
|
+
function shellQuote(s) {
|
|
624
|
+
return "'" + s.replace(/'/g, "'\"'\"'") + "'";
|
|
625
|
+
}
|
|
626
|
+
function upsertCommandHook(hooks, event, command) {
|
|
627
|
+
const eventEntries = Array.isArray(hooks[event]) ? hooks[event] : [];
|
|
628
|
+
if (eventEntries.some((entry) => hookEntryContainsCommand(entry, command))) {
|
|
629
|
+
hooks[event] = eventEntries;
|
|
630
|
+
return;
|
|
631
|
+
}
|
|
632
|
+
eventEntries.push({
|
|
633
|
+
hooks: [
|
|
634
|
+
{ type: "command", command, timeout: 5 },
|
|
635
|
+
],
|
|
636
|
+
});
|
|
637
|
+
hooks[event] = eventEntries;
|
|
638
|
+
}
|
|
639
|
+
function hookEntryContainsCommand(entry, command) {
|
|
640
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry))
|
|
641
|
+
return false;
|
|
642
|
+
const hooks = entry["hooks"];
|
|
643
|
+
if (!Array.isArray(hooks))
|
|
644
|
+
return false;
|
|
645
|
+
return hooks.some((hook) => typeof hook === "object" &&
|
|
646
|
+
hook !== null &&
|
|
647
|
+
!Array.isArray(hook) &&
|
|
648
|
+
hook["type"] === "command" &&
|
|
649
|
+
hook["command"] === command);
|
|
650
|
+
}
|
|
495
651
|
//# sourceMappingURL=claude-code-adapter.js.map
|