@openrig/cli 0.0.1 → 0.1.1
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/claude-statusline-context.cjs +80 -0
- package/daemon/assets/guidance/using-openrig.md +46 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts +67 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/claude-code-adapter.js +317 -0
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -0
- package/daemon/dist/adapters/claude-resume.d.ts +23 -0
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/claude-resume.js +90 -0
- package/daemon/dist/adapters/claude-resume.js.map +1 -0
- package/daemon/dist/adapters/cmux-transport.d.ts +9 -0
- package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -0
- package/daemon/dist/adapters/cmux-transport.js +64 -0
- package/daemon/dist/adapters/cmux-transport.js.map +1 -0
- package/daemon/dist/adapters/cmux.d.ts +50 -0
- package/daemon/dist/adapters/cmux.d.ts.map +1 -0
- package/daemon/dist/adapters/cmux.js +144 -0
- package/daemon/dist/adapters/cmux.js.map +1 -0
- package/daemon/dist/adapters/codex-resume.d.ts +10 -0
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/codex-resume.js +44 -0
- package/daemon/dist/adapters/codex-resume.js.map +1 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +53 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/codex-runtime-adapter.js +255 -0
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -0
- package/daemon/dist/adapters/shell-quote.d.ts +3 -0
- package/daemon/dist/adapters/shell-quote.d.ts.map +1 -0
- package/daemon/dist/adapters/shell-quote.js +5 -0
- package/daemon/dist/adapters/shell-quote.js.map +1 -0
- package/daemon/dist/adapters/terminal-adapter.d.ts +20 -0
- package/daemon/dist/adapters/terminal-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/terminal-adapter.js +25 -0
- package/daemon/dist/adapters/terminal-adapter.js.map +1 -0
- package/daemon/dist/adapters/tmux-exec.d.ts +7 -0
- package/daemon/dist/adapters/tmux-exec.d.ts.map +1 -0
- package/daemon/dist/adapters/tmux-exec.js +12 -0
- package/daemon/dist/adapters/tmux-exec.js.map +1 -0
- package/daemon/dist/adapters/tmux.d.ts +55 -0
- package/daemon/dist/adapters/tmux.d.ts.map +1 -0
- package/daemon/dist/adapters/tmux.js +244 -0
- package/daemon/dist/adapters/tmux.js.map +1 -0
- package/daemon/dist/db/connection.d.ts +7 -0
- package/daemon/dist/db/connection.d.ts.map +1 -0
- package/daemon/dist/db/connection.js +12 -0
- package/daemon/dist/db/connection.js.map +1 -0
- package/daemon/dist/db/migrate.d.ts +12 -0
- package/daemon/dist/db/migrate.d.ts.map +1 -0
- package/daemon/dist/db/migrate.js +27 -0
- package/daemon/dist/db/migrate.js.map +1 -0
- package/daemon/dist/db/migrations/001_core_schema.d.ts +3 -0
- package/daemon/dist/db/migrations/001_core_schema.d.ts.map +1 -0
- package/daemon/dist/db/migrations/001_core_schema.js +50 -0
- package/daemon/dist/db/migrations/001_core_schema.js.map +1 -0
- package/daemon/dist/db/migrations/002_bindings_sessions.d.ts +3 -0
- package/daemon/dist/db/migrations/002_bindings_sessions.d.ts.map +1 -0
- package/daemon/dist/db/migrations/002_bindings_sessions.js +29 -0
- package/daemon/dist/db/migrations/002_bindings_sessions.js.map +1 -0
- package/daemon/dist/db/migrations/003_events.d.ts +3 -0
- package/daemon/dist/db/migrations/003_events.d.ts.map +1 -0
- package/daemon/dist/db/migrations/003_events.js +22 -0
- package/daemon/dist/db/migrations/003_events.js.map +1 -0
- package/daemon/dist/db/migrations/004_snapshots.d.ts +3 -0
- package/daemon/dist/db/migrations/004_snapshots.d.ts.map +1 -0
- package/daemon/dist/db/migrations/004_snapshots.js +19 -0
- package/daemon/dist/db/migrations/004_snapshots.js.map +1 -0
- package/daemon/dist/db/migrations/005_checkpoints.d.ts +3 -0
- package/daemon/dist/db/migrations/005_checkpoints.d.ts.map +1 -0
- package/daemon/dist/db/migrations/005_checkpoints.js +22 -0
- package/daemon/dist/db/migrations/005_checkpoints.js.map +1 -0
- package/daemon/dist/db/migrations/006_resume_metadata.d.ts +3 -0
- package/daemon/dist/db/migrations/006_resume_metadata.d.ts.map +1 -0
- package/daemon/dist/db/migrations/006_resume_metadata.js +14 -0
- package/daemon/dist/db/migrations/006_resume_metadata.js.map +1 -0
- package/daemon/dist/db/migrations/007_node_spec_fields.d.ts +3 -0
- package/daemon/dist/db/migrations/007_node_spec_fields.d.ts.map +1 -0
- package/daemon/dist/db/migrations/007_node_spec_fields.js +11 -0
- package/daemon/dist/db/migrations/007_node_spec_fields.js.map +1 -0
- package/daemon/dist/db/migrations/008_packages.d.ts +3 -0
- package/daemon/dist/db/migrations/008_packages.d.ts.map +1 -0
- package/daemon/dist/db/migrations/008_packages.js +17 -0
- package/daemon/dist/db/migrations/008_packages.js.map +1 -0
- package/daemon/dist/db/migrations/009_install_journal.d.ts +3 -0
- package/daemon/dist/db/migrations/009_install_journal.d.ts.map +1 -0
- package/daemon/dist/db/migrations/009_install_journal.js +35 -0
- package/daemon/dist/db/migrations/009_install_journal.js.map +1 -0
- package/daemon/dist/db/migrations/010_journal_seq.d.ts +3 -0
- package/daemon/dist/db/migrations/010_journal_seq.d.ts.map +1 -0
- package/daemon/dist/db/migrations/010_journal_seq.js +36 -0
- package/daemon/dist/db/migrations/010_journal_seq.js.map +1 -0
- package/daemon/dist/db/migrations/011_bootstrap.d.ts +3 -0
- package/daemon/dist/db/migrations/011_bootstrap.d.ts.map +1 -0
- package/daemon/dist/db/migrations/011_bootstrap.js +43 -0
- package/daemon/dist/db/migrations/011_bootstrap.js.map +1 -0
- package/daemon/dist/db/migrations/012_discovery.d.ts +3 -0
- package/daemon/dist/db/migrations/012_discovery.d.ts.map +1 -0
- package/daemon/dist/db/migrations/012_discovery.js +28 -0
- package/daemon/dist/db/migrations/012_discovery.js.map +1 -0
- package/daemon/dist/db/migrations/013_discovery_fk_fix.d.ts +3 -0
- package/daemon/dist/db/migrations/013_discovery_fk_fix.d.ts.map +1 -0
- package/daemon/dist/db/migrations/013_discovery_fk_fix.js +37 -0
- package/daemon/dist/db/migrations/013_discovery_fk_fix.js.map +1 -0
- package/daemon/dist/db/migrations/014_agentspec_reboot.d.ts +3 -0
- package/daemon/dist/db/migrations/014_agentspec_reboot.d.ts.map +1 -0
- package/daemon/dist/db/migrations/014_agentspec_reboot.js +47 -0
- package/daemon/dist/db/migrations/014_agentspec_reboot.js.map +1 -0
- package/daemon/dist/db/migrations/015_startup_context.d.ts +3 -0
- package/daemon/dist/db/migrations/015_startup_context.d.ts.map +1 -0
- package/daemon/dist/db/migrations/015_startup_context.js +15 -0
- package/daemon/dist/db/migrations/015_startup_context.js.map +1 -0
- package/daemon/dist/db/migrations/016_chat_messages.d.ts +3 -0
- package/daemon/dist/db/migrations/016_chat_messages.d.ts.map +1 -0
- package/daemon/dist/db/migrations/016_chat_messages.js +17 -0
- package/daemon/dist/db/migrations/016_chat_messages.js.map +1 -0
- package/daemon/dist/db/migrations/017_pod_namespace.d.ts +3 -0
- package/daemon/dist/db/migrations/017_pod_namespace.d.ts.map +1 -0
- package/daemon/dist/db/migrations/017_pod_namespace.js +9 -0
- package/daemon/dist/db/migrations/017_pod_namespace.js.map +1 -0
- package/daemon/dist/db/migrations/018_context_usage.d.ts +3 -0
- package/daemon/dist/db/migrations/018_context_usage.d.ts.map +1 -0
- package/daemon/dist/db/migrations/018_context_usage.js +23 -0
- package/daemon/dist/db/migrations/018_context_usage.js.map +1 -0
- package/daemon/dist/db/migrations/019_external_cli_attachment.d.ts +3 -0
- package/daemon/dist/db/migrations/019_external_cli_attachment.d.ts.map +1 -0
- package/daemon/dist/db/migrations/019_external_cli_attachment.js +8 -0
- package/daemon/dist/db/migrations/019_external_cli_attachment.js.map +1 -0
- package/daemon/dist/domain/agent-manifest.d.ts +21 -0
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -0
- package/daemon/dist/domain/agent-manifest.js +322 -0
- package/daemon/dist/domain/agent-manifest.js.map +1 -0
- package/daemon/dist/domain/agent-preflight.d.ts +12 -0
- package/daemon/dist/domain/agent-preflight.d.ts.map +1 -0
- package/daemon/dist/domain/agent-preflight.js +37 -0
- package/daemon/dist/domain/agent-preflight.js.map +1 -0
- package/daemon/dist/domain/agent-resolver.d.ts +66 -0
- package/daemon/dist/domain/agent-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/agent-resolver.js +193 -0
- package/daemon/dist/domain/agent-resolver.js.map +1 -0
- package/daemon/dist/domain/ask-service.d.ts +57 -0
- package/daemon/dist/domain/ask-service.d.ts.map +1 -0
- package/daemon/dist/domain/ask-service.js +129 -0
- package/daemon/dist/domain/ask-service.js.map +1 -0
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts +76 -0
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -0
- package/daemon/dist/domain/bootstrap-orchestrator.js +510 -0
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -0
- package/daemon/dist/domain/bootstrap-repository.d.ts +23 -0
- package/daemon/dist/domain/bootstrap-repository.d.ts.map +1 -0
- package/daemon/dist/domain/bootstrap-repository.js +78 -0
- package/daemon/dist/domain/bootstrap-repository.js.map +1 -0
- package/daemon/dist/domain/bootstrap-types.d.ts +43 -0
- package/daemon/dist/domain/bootstrap-types.d.ts.map +1 -0
- package/daemon/dist/domain/bootstrap-types.js +2 -0
- package/daemon/dist/domain/bootstrap-types.js.map +1 -0
- package/daemon/dist/domain/bundle-archive.d.ts +23 -0
- package/daemon/dist/domain/bundle-archive.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-archive.js +156 -0
- package/daemon/dist/domain/bundle-archive.js.map +1 -0
- package/daemon/dist/domain/bundle-assembler.d.ts +34 -0
- package/daemon/dist/domain/bundle-assembler.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-assembler.js +86 -0
- package/daemon/dist/domain/bundle-assembler.js.map +1 -0
- package/daemon/dist/domain/bundle-integrity.d.ts +30 -0
- package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-integrity.js +120 -0
- package/daemon/dist/domain/bundle-integrity.js.map +1 -0
- package/daemon/dist/domain/bundle-source-resolver.d.ts +44 -0
- package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-source-resolver.js +158 -0
- package/daemon/dist/domain/bundle-source-resolver.js.map +1 -0
- package/daemon/dist/domain/bundle-types.d.ts +78 -0
- package/daemon/dist/domain/bundle-types.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-types.js +218 -0
- package/daemon/dist/domain/bundle-types.js.map +1 -0
- package/daemon/dist/domain/chat-repository.d.ts +31 -0
- package/daemon/dist/domain/chat-repository.d.ts.map +1 -0
- package/daemon/dist/domain/chat-repository.js +105 -0
- package/daemon/dist/domain/chat-repository.js.map +1 -0
- package/daemon/dist/domain/checkpoint-store.d.ts +24 -0
- package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -0
- package/daemon/dist/domain/checkpoint-store.js +55 -0
- package/daemon/dist/domain/checkpoint-store.js.map +1 -0
- package/daemon/dist/domain/claim-service.d.ts +68 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -0
- package/daemon/dist/domain/claim-service.js +250 -0
- package/daemon/dist/domain/claim-service.js.map +1 -0
- package/daemon/dist/domain/codex-thread-id.d.ts +4 -0
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -0
- package/daemon/dist/domain/codex-thread-id.js +65 -0
- package/daemon/dist/domain/codex-thread-id.js.map +1 -0
- package/daemon/dist/domain/conflict-detector.d.ts +33 -0
- package/daemon/dist/domain/conflict-detector.d.ts.map +1 -0
- package/daemon/dist/domain/conflict-detector.js +138 -0
- package/daemon/dist/domain/conflict-detector.js.map +1 -0
- package/daemon/dist/domain/context-monitor.d.ts +30 -0
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -0
- package/daemon/dist/domain/context-monitor.js +71 -0
- package/daemon/dist/domain/context-monitor.js.map +1 -0
- package/daemon/dist/domain/context-usage-store.d.ts +58 -0
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -0
- package/daemon/dist/domain/context-usage-store.js +195 -0
- package/daemon/dist/domain/context-usage-store.js.map +1 -0
- package/daemon/dist/domain/demo-rig-selector.d.ts +11 -0
- package/daemon/dist/domain/demo-rig-selector.d.ts.map +1 -0
- package/daemon/dist/domain/demo-rig-selector.js +21 -0
- package/daemon/dist/domain/demo-rig-selector.js.map +1 -0
- package/daemon/dist/domain/discovery-coordinator.d.ts +28 -0
- package/daemon/dist/domain/discovery-coordinator.d.ts.map +1 -0
- package/daemon/dist/domain/discovery-coordinator.js +107 -0
- package/daemon/dist/domain/discovery-coordinator.js.map +1 -0
- package/daemon/dist/domain/discovery-repository.d.ts +31 -0
- package/daemon/dist/domain/discovery-repository.d.ts.map +1 -0
- package/daemon/dist/domain/discovery-repository.js +75 -0
- package/daemon/dist/domain/discovery-repository.js.map +1 -0
- package/daemon/dist/domain/discovery-types.d.ts +27 -0
- package/daemon/dist/domain/discovery-types.d.ts.map +1 -0
- package/daemon/dist/domain/discovery-types.js +2 -0
- package/daemon/dist/domain/discovery-types.js.map +1 -0
- package/daemon/dist/domain/draft-rig-generator.d.ts +7 -0
- package/daemon/dist/domain/draft-rig-generator.d.ts.map +1 -0
- package/daemon/dist/domain/draft-rig-generator.js +87 -0
- package/daemon/dist/domain/draft-rig-generator.js.map +1 -0
- package/daemon/dist/domain/errors.d.ts +4 -0
- package/daemon/dist/domain/errors.d.ts.map +1 -0
- package/daemon/dist/domain/errors.js +7 -0
- package/daemon/dist/domain/errors.js.map +1 -0
- package/daemon/dist/domain/event-bus.d.ts +32 -0
- package/daemon/dist/domain/event-bus.d.ts.map +1 -0
- package/daemon/dist/domain/event-bus.js +82 -0
- package/daemon/dist/domain/event-bus.js.map +1 -0
- package/daemon/dist/domain/external-install-executor.d.ts +47 -0
- package/daemon/dist/domain/external-install-executor.d.ts.map +1 -0
- package/daemon/dist/domain/external-install-executor.js +87 -0
- package/daemon/dist/domain/external-install-executor.js.map +1 -0
- package/daemon/dist/domain/external-install-planner.d.ts +41 -0
- package/daemon/dist/domain/external-install-planner.d.ts.map +1 -0
- package/daemon/dist/domain/external-install-planner.js +83 -0
- package/daemon/dist/domain/external-install-planner.js.map +1 -0
- package/daemon/dist/domain/graph-projection.d.ts +60 -0
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -0
- package/daemon/dist/domain/graph-projection.js +95 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -0
- package/daemon/dist/domain/history-query.d.ts +34 -0
- package/daemon/dist/domain/history-query.d.ts.map +1 -0
- package/daemon/dist/domain/history-query.js +119 -0
- package/daemon/dist/domain/history-query.js.map +1 -0
- package/daemon/dist/domain/install-engine.d.ts +33 -0
- package/daemon/dist/domain/install-engine.d.ts.map +1 -0
- package/daemon/dist/domain/install-engine.js +154 -0
- package/daemon/dist/domain/install-engine.js.map +1 -0
- package/daemon/dist/domain/install-planner.d.ts +38 -0
- package/daemon/dist/domain/install-planner.d.ts.map +1 -0
- package/daemon/dist/domain/install-planner.js +243 -0
- package/daemon/dist/domain/install-planner.js.map +1 -0
- package/daemon/dist/domain/install-policy.d.ts +20 -0
- package/daemon/dist/domain/install-policy.d.ts.map +1 -0
- package/daemon/dist/domain/install-policy.js +56 -0
- package/daemon/dist/domain/install-policy.js.map +1 -0
- package/daemon/dist/domain/install-repository.d.ts +55 -0
- package/daemon/dist/domain/install-repository.d.ts.map +1 -0
- package/daemon/dist/domain/install-repository.js +122 -0
- package/daemon/dist/domain/install-repository.js.map +1 -0
- package/daemon/dist/domain/install-verifier.d.ts +31 -0
- package/daemon/dist/domain/install-verifier.d.ts.map +1 -0
- package/daemon/dist/domain/install-verifier.js +141 -0
- package/daemon/dist/domain/install-verifier.js.map +1 -0
- package/daemon/dist/domain/native-resume-probe.d.ts +19 -0
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -0
- package/daemon/dist/domain/native-resume-probe.js +113 -0
- package/daemon/dist/domain/native-resume-probe.js.map +1 -0
- package/daemon/dist/domain/node-inventory.d.ts +33 -0
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -0
- package/daemon/dist/domain/node-inventory.js +314 -0
- package/daemon/dist/domain/node-inventory.js.map +1 -0
- package/daemon/dist/domain/node-launcher.d.ts +42 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -0
- package/daemon/dist/domain/node-launcher.js +122 -0
- package/daemon/dist/domain/node-launcher.js.map +1 -0
- package/daemon/dist/domain/package-install-service.d.ts +64 -0
- package/daemon/dist/domain/package-install-service.d.ts.map +1 -0
- package/daemon/dist/domain/package-install-service.js +80 -0
- package/daemon/dist/domain/package-install-service.js.map +1 -0
- package/daemon/dist/domain/package-manifest.d.ts +93 -0
- package/daemon/dist/domain/package-manifest.d.ts.map +1 -0
- package/daemon/dist/domain/package-manifest.js +407 -0
- package/daemon/dist/domain/package-manifest.js.map +1 -0
- package/daemon/dist/domain/package-repository.d.ts +33 -0
- package/daemon/dist/domain/package-repository.d.ts.map +1 -0
- package/daemon/dist/domain/package-repository.js +63 -0
- package/daemon/dist/domain/package-repository.js.map +1 -0
- package/daemon/dist/domain/package-resolve-helper.d.ts +19 -0
- package/daemon/dist/domain/package-resolve-helper.d.ts.map +1 -0
- package/daemon/dist/domain/package-resolve-helper.js +47 -0
- package/daemon/dist/domain/package-resolve-helper.js.map +1 -0
- package/daemon/dist/domain/package-resolver.d.ts +19 -0
- package/daemon/dist/domain/package-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/package-resolver.js +35 -0
- package/daemon/dist/domain/package-resolver.js.map +1 -0
- package/daemon/dist/domain/path-safety.d.ts +8 -0
- package/daemon/dist/domain/path-safety.d.ts.map +1 -0
- package/daemon/dist/domain/path-safety.js +24 -0
- package/daemon/dist/domain/path-safety.js.map +1 -0
- package/daemon/dist/domain/pod-bundle-assembler.d.ts +43 -0
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -0
- package/daemon/dist/domain/pod-bundle-assembler.js +198 -0
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -0
- package/daemon/dist/domain/pod-repository.d.ts +47 -0
- package/daemon/dist/domain/pod-repository.d.ts.map +1 -0
- package/daemon/dist/domain/pod-repository.js +90 -0
- package/daemon/dist/domain/pod-repository.js.map +1 -0
- package/daemon/dist/domain/profile-resolver.d.ts +51 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/profile-resolver.js +201 -0
- package/daemon/dist/domain/profile-resolver.js.map +1 -0
- package/daemon/dist/domain/projection-planner.d.ts +54 -0
- package/daemon/dist/domain/projection-planner.d.ts.map +1 -0
- package/daemon/dist/domain/projection-planner.js +128 -0
- package/daemon/dist/domain/projection-planner.js.map +1 -0
- package/daemon/dist/domain/ps-projection.d.ts +22 -0
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -0
- package/daemon/dist/domain/ps-projection.js +65 -0
- package/daemon/dist/domain/ps-projection.js.map +1 -0
- package/daemon/dist/domain/reconciler.d.ts +28 -0
- package/daemon/dist/domain/reconciler.d.ts.map +1 -0
- package/daemon/dist/domain/reconciler.js +66 -0
- package/daemon/dist/domain/reconciler.js.map +1 -0
- package/daemon/dist/domain/requirements-probe.d.ts +63 -0
- package/daemon/dist/domain/requirements-probe.d.ts.map +1 -0
- package/daemon/dist/domain/requirements-probe.js +172 -0
- package/daemon/dist/domain/requirements-probe.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +59 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.js +477 -0
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -0
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +42 -0
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -0
- package/daemon/dist/domain/resume-metadata-refresher.js +167 -0
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -0
- package/daemon/dist/domain/rig-expansion-service.d.ts +27 -0
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -0
- package/daemon/dist/domain/rig-expansion-service.js +121 -0
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -0
- package/daemon/dist/domain/rig-lifecycle-service.d.ts +100 -0
- package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -0
- package/daemon/dist/domain/rig-lifecycle-service.js +421 -0
- package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -0
- package/daemon/dist/domain/rig-repository.d.ts +44 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -0
- package/daemon/dist/domain/rig-repository.js +165 -0
- package/daemon/dist/domain/rig-repository.js.map +1 -0
- package/daemon/dist/domain/rig-teardown.d.ts +51 -0
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -0
- package/daemon/dist/domain/rig-teardown.js +142 -0
- package/daemon/dist/domain/rig-teardown.js.map +1 -0
- package/daemon/dist/domain/rigspec-codec.d.ts +17 -0
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -0
- package/daemon/dist/domain/rigspec-codec.js +141 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -0
- package/daemon/dist/domain/rigspec-exporter.d.ts +21 -0
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -0
- package/daemon/dist/domain/rigspec-exporter.js +186 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts +133 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -0
- package/daemon/dist/domain/rigspec-instantiator.js +1104 -0
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts +38 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -0
- package/daemon/dist/domain/rigspec-preflight.js +198 -0
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -0
- package/daemon/dist/domain/rigspec-schema.d.ts +25 -0
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -0
- package/daemon/dist/domain/rigspec-schema.js +516 -0
- package/daemon/dist/domain/rigspec-schema.js.map +1 -0
- package/daemon/dist/domain/role-resolver.d.ts +21 -0
- package/daemon/dist/domain/role-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/role-resolver.js +83 -0
- package/daemon/dist/domain/role-resolver.js.map +1 -0
- package/daemon/dist/domain/runtime-adapter.d.ts +74 -0
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/domain/runtime-adapter.js +14 -0
- package/daemon/dist/domain/runtime-adapter.js.map +1 -0
- package/daemon/dist/domain/runtime-verifier.d.ts +45 -0
- package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -0
- package/daemon/dist/domain/runtime-verifier.js +148 -0
- package/daemon/dist/domain/runtime-verifier.js.map +1 -0
- package/daemon/dist/domain/self-attach-service.d.ts +90 -0
- package/daemon/dist/domain/self-attach-service.d.ts.map +1 -0
- package/daemon/dist/domain/self-attach-service.js +202 -0
- package/daemon/dist/domain/self-attach-service.js.map +1 -0
- package/daemon/dist/domain/session-enricher.d.ts +29 -0
- package/daemon/dist/domain/session-enricher.d.ts.map +1 -0
- package/daemon/dist/domain/session-enricher.js +54 -0
- package/daemon/dist/domain/session-enricher.js.map +1 -0
- package/daemon/dist/domain/session-fingerprinter.d.ts +53 -0
- package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -0
- package/daemon/dist/domain/session-fingerprinter.js +118 -0
- package/daemon/dist/domain/session-fingerprinter.js.map +1 -0
- package/daemon/dist/domain/session-name.d.ts +28 -0
- package/daemon/dist/domain/session-name.d.ts.map +1 -0
- package/daemon/dist/domain/session-name.js +85 -0
- package/daemon/dist/domain/session-name.js.map +1 -0
- package/daemon/dist/domain/session-registry.d.ts +32 -0
- package/daemon/dist/domain/session-registry.d.ts.map +1 -0
- package/daemon/dist/domain/session-registry.js +142 -0
- package/daemon/dist/domain/session-registry.js.map +1 -0
- package/daemon/dist/domain/session-transport.d.ts +79 -0
- package/daemon/dist/domain/session-transport.d.ts.map +1 -0
- package/daemon/dist/domain/session-transport.js +403 -0
- package/daemon/dist/domain/session-transport.js.map +1 -0
- package/daemon/dist/domain/snapshot-capture.d.ts +27 -0
- package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -0
- package/daemon/dist/domain/snapshot-capture.js +89 -0
- package/daemon/dist/domain/snapshot-capture.js.map +1 -0
- package/daemon/dist/domain/snapshot-repository.d.ts +19 -0
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -0
- package/daemon/dist/domain/snapshot-repository.js +77 -0
- package/daemon/dist/domain/snapshot-repository.js.map +1 -0
- package/daemon/dist/domain/spec-library-service.d.ts +45 -0
- package/daemon/dist/domain/spec-library-service.d.ts.map +1 -0
- package/daemon/dist/domain/spec-library-service.js +197 -0
- package/daemon/dist/domain/spec-library-service.js.map +1 -0
- package/daemon/dist/domain/spec-review-service.d.ts +104 -0
- package/daemon/dist/domain/spec-review-service.d.ts.map +1 -0
- package/daemon/dist/domain/spec-review-service.js +220 -0
- package/daemon/dist/domain/spec-review-service.js.map +1 -0
- package/daemon/dist/domain/spec-validation-service.d.ts +21 -0
- package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -0
- package/daemon/dist/domain/spec-validation-service.js +34 -0
- package/daemon/dist/domain/spec-validation-service.js.map +1 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts +83 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -0
- package/daemon/dist/domain/startup-orchestrator.js +252 -0
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -0
- package/daemon/dist/domain/startup-resolver.d.ts +28 -0
- package/daemon/dist/domain/startup-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/startup-resolver.js +57 -0
- package/daemon/dist/domain/startup-resolver.js.map +1 -0
- package/daemon/dist/domain/startup-validation.d.ts +31 -0
- package/daemon/dist/domain/startup-validation.d.ts.map +1 -0
- package/daemon/dist/domain/startup-validation.js +155 -0
- package/daemon/dist/domain/startup-validation.js.map +1 -0
- package/daemon/dist/domain/tmux-discovery-scanner.d.ts +29 -0
- package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -0
- package/daemon/dist/domain/tmux-discovery-scanner.js +50 -0
- package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -0
- package/daemon/dist/domain/transcript-capture.d.ts +7 -0
- package/daemon/dist/domain/transcript-capture.d.ts.map +1 -0
- package/daemon/dist/domain/transcript-capture.js +15 -0
- package/daemon/dist/domain/transcript-capture.js.map +1 -0
- package/daemon/dist/domain/transcript-store.d.ts +19 -0
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -0
- package/daemon/dist/domain/transcript-store.js +280 -0
- package/daemon/dist/domain/transcript-store.js.map +1 -0
- package/daemon/dist/domain/types.d.ts +720 -0
- package/daemon/dist/domain/types.d.ts.map +1 -0
- package/daemon/dist/domain/types.js +2 -0
- package/daemon/dist/domain/types.js.map +1 -0
- package/daemon/dist/domain/up-command-router.d.ts +25 -0
- package/daemon/dist/domain/up-command-router.d.ts.map +1 -0
- package/daemon/dist/domain/up-command-router.js +116 -0
- package/daemon/dist/domain/up-command-router.js.map +1 -0
- package/daemon/dist/domain/whoami-service.d.ts +86 -0
- package/daemon/dist/domain/whoami-service.d.ts.map +1 -0
- package/daemon/dist/domain/whoami-service.js +195 -0
- package/daemon/dist/domain/whoami-service.js.map +1 -0
- package/daemon/dist/index.d.ts +2 -0
- package/daemon/dist/index.d.ts.map +1 -0
- package/daemon/dist/index.js +21 -0
- package/daemon/dist/index.js.map +1 -0
- package/daemon/dist/openrig-compat.d.ts +9 -0
- package/daemon/dist/openrig-compat.d.ts.map +1 -0
- package/daemon/dist/openrig-compat.js +57 -0
- package/daemon/dist/openrig-compat.js.map +1 -0
- package/daemon/dist/routes/adapters.d.ts +3 -0
- package/daemon/dist/routes/adapters.d.ts.map +1 -0
- package/daemon/dist/routes/adapters.js +20 -0
- package/daemon/dist/routes/adapters.js.map +1 -0
- package/daemon/dist/routes/agents.d.ts +3 -0
- package/daemon/dist/routes/agents.d.ts.map +1 -0
- package/daemon/dist/routes/agents.js +13 -0
- package/daemon/dist/routes/agents.js.map +1 -0
- package/daemon/dist/routes/ask.d.ts +3 -0
- package/daemon/dist/routes/ask.d.ts.map +1 -0
- package/daemon/dist/routes/ask.js +15 -0
- package/daemon/dist/routes/ask.js.map +1 -0
- package/daemon/dist/routes/bootstrap.d.ts +3 -0
- package/daemon/dist/routes/bootstrap.d.ts.map +1 -0
- package/daemon/dist/routes/bootstrap.js +137 -0
- package/daemon/dist/routes/bootstrap.js.map +1 -0
- package/daemon/dist/routes/bundles.d.ts +3 -0
- package/daemon/dist/routes/bundles.d.ts.map +1 -0
- package/daemon/dist/routes/bundles.js +334 -0
- package/daemon/dist/routes/bundles.js.map +1 -0
- package/daemon/dist/routes/chat.d.ts +3 -0
- package/daemon/dist/routes/chat.d.ts.map +1 -0
- package/daemon/dist/routes/chat.js +138 -0
- package/daemon/dist/routes/chat.js.map +1 -0
- package/daemon/dist/routes/discovery.d.ts +3 -0
- package/daemon/dist/routes/discovery.d.ts.map +1 -0
- package/daemon/dist/routes/discovery.js +200 -0
- package/daemon/dist/routes/discovery.js.map +1 -0
- package/daemon/dist/routes/down.d.ts +3 -0
- package/daemon/dist/routes/down.d.ts.map +1 -0
- package/daemon/dist/routes/down.js +55 -0
- package/daemon/dist/routes/down.js.map +1 -0
- package/daemon/dist/routes/events.d.ts +3 -0
- package/daemon/dist/routes/events.d.ts.map +1 -0
- package/daemon/dist/routes/events.js +71 -0
- package/daemon/dist/routes/events.js.map +1 -0
- package/daemon/dist/routes/packages.d.ts +3 -0
- package/daemon/dist/routes/packages.d.ts.map +1 -0
- package/daemon/dist/routes/packages.js +341 -0
- package/daemon/dist/routes/packages.js.map +1 -0
- package/daemon/dist/routes/ps.d.ts +3 -0
- package/daemon/dist/routes/ps.d.ts.map +1 -0
- package/daemon/dist/routes/ps.js +7 -0
- package/daemon/dist/routes/ps.js.map +1 -0
- package/daemon/dist/routes/rigs.d.ts +3 -0
- package/daemon/dist/routes/rigs.d.ts.map +1 -0
- package/daemon/dist/routes/rigs.js +329 -0
- package/daemon/dist/routes/rigs.js.map +1 -0
- package/daemon/dist/routes/rigspec.d.ts +6 -0
- package/daemon/dist/routes/rigspec.d.ts.map +1 -0
- package/daemon/dist/routes/rigspec.js +182 -0
- package/daemon/dist/routes/rigspec.js.map +1 -0
- package/daemon/dist/routes/sessions.d.ts +5 -0
- package/daemon/dist/routes/sessions.d.ts.map +1 -0
- package/daemon/dist/routes/sessions.js +125 -0
- package/daemon/dist/routes/sessions.js.map +1 -0
- package/daemon/dist/routes/snapshots.d.ts +4 -0
- package/daemon/dist/routes/snapshots.d.ts.map +1 -0
- package/daemon/dist/routes/snapshots.js +77 -0
- package/daemon/dist/routes/snapshots.js.map +1 -0
- package/daemon/dist/routes/spec-library.d.ts +3 -0
- package/daemon/dist/routes/spec-library.d.ts.map +1 -0
- package/daemon/dist/routes/spec-library.js +95 -0
- package/daemon/dist/routes/spec-library.js.map +1 -0
- package/daemon/dist/routes/spec-review.d.ts +3 -0
- package/daemon/dist/routes/spec-review.d.ts.map +1 -0
- package/daemon/dist/routes/spec-review.js +41 -0
- package/daemon/dist/routes/spec-review.js.map +1 -0
- package/daemon/dist/routes/transcripts.d.ts +3 -0
- package/daemon/dist/routes/transcripts.d.ts.map +1 -0
- package/daemon/dist/routes/transcripts.js +130 -0
- package/daemon/dist/routes/transcripts.js.map +1 -0
- package/daemon/dist/routes/transport.d.ts +3 -0
- package/daemon/dist/routes/transport.d.ts.map +1 -0
- package/daemon/dist/routes/transport.js +89 -0
- package/daemon/dist/routes/transport.js.map +1 -0
- package/daemon/dist/routes/up.d.ts +3 -0
- package/daemon/dist/routes/up.d.ts.map +1 -0
- package/daemon/dist/routes/up.js +175 -0
- package/daemon/dist/routes/up.js.map +1 -0
- package/daemon/dist/routes/whoami.d.ts +3 -0
- package/daemon/dist/routes/whoami.d.ts.map +1 -0
- package/daemon/dist/routes/whoami.js +33 -0
- package/daemon/dist/routes/whoami.js.map +1 -0
- package/daemon/dist/seed.d.ts +2 -0
- package/daemon/dist/seed.d.ts.map +1 -0
- package/daemon/dist/seed.js +41 -0
- package/daemon/dist/seed.js.map +1 -0
- package/daemon/dist/server.d.ts +78 -0
- package/daemon/dist/server.d.ts.map +1 -0
- package/daemon/dist/server.js +206 -0
- package/daemon/dist/server.js.map +1 -0
- package/daemon/dist/startup.d.ts +21 -0
- package/daemon/dist/startup.d.ts.map +1 -0
- package/daemon/dist/startup.js +348 -0
- package/daemon/dist/startup.js.map +1 -0
- package/daemon/specs/adversarial-review.yaml +40 -0
- package/daemon/specs/agents/analyst/agent.yaml +21 -0
- package/daemon/specs/agents/analyst/guidance/role.md +27 -0
- package/daemon/specs/agents/design/agent.yaml +21 -0
- package/daemon/specs/agents/design/guidance/role.md +26 -0
- package/daemon/specs/agents/impl/agent.yaml +21 -0
- package/daemon/specs/agents/impl/guidance/role.md +27 -0
- package/daemon/specs/agents/lead/agent.yaml +21 -0
- package/daemon/specs/agents/lead/guidance/role.md +33 -0
- package/daemon/specs/agents/qa/agent.yaml +21 -0
- package/daemon/specs/agents/qa/guidance/role.md +26 -0
- package/daemon/specs/agents/reviewer/agent.yaml +21 -0
- package/daemon/specs/agents/reviewer/guidance/role.md +26 -0
- package/daemon/specs/agents/synthesizer/agent.yaml +21 -0
- package/daemon/specs/agents/synthesizer/guidance/role.md +26 -0
- package/daemon/specs/implementation-pair.yaml +27 -0
- package/daemon/specs/product-team.yaml +90 -0
- package/daemon/specs/research-team.yaml +40 -0
- package/dist/bin-wrapper.d.ts +5 -0
- package/dist/bin-wrapper.d.ts.map +1 -0
- package/dist/bin-wrapper.js +32 -0
- package/dist/bin-wrapper.js.map +1 -0
- package/dist/client.d.ts +21 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +76 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/adopt.d.ts +6 -0
- package/dist/commands/adopt.d.ts.map +1 -0
- package/dist/commands/adopt.js +212 -0
- package/dist/commands/adopt.js.map +1 -0
- package/dist/commands/agent.d.ts +7 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +79 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/ask.d.ts +4 -0
- package/dist/commands/ask.d.ts.map +1 -0
- package/dist/commands/ask.js +92 -0
- package/dist/commands/ask.js.map +1 -0
- package/dist/commands/attach.d.ts +14 -0
- package/dist/commands/attach.d.ts.map +1 -0
- package/dist/commands/attach.js +146 -0
- package/dist/commands/attach.js.map +1 -0
- package/dist/commands/bind.d.ts +4 -0
- package/dist/commands/bind.d.ts.map +1 -0
- package/dist/commands/bind.js +70 -0
- package/dist/commands/bind.js.map +1 -0
- package/dist/commands/bootstrap.d.ts +4 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/bootstrap.js +141 -0
- package/dist/commands/bootstrap.js.map +1 -0
- package/dist/commands/broadcast.d.ts +4 -0
- package/dist/commands/broadcast.d.ts.map +1 -0
- package/dist/commands/broadcast.js +71 -0
- package/dist/commands/broadcast.js.map +1 -0
- package/dist/commands/bundle.d.ts +4 -0
- package/dist/commands/bundle.d.ts.map +1 -0
- package/dist/commands/bundle.js +129 -0
- package/dist/commands/bundle.js.map +1 -0
- package/dist/commands/capture.d.ts +4 -0
- package/dist/commands/capture.d.ts.map +1 -0
- package/dist/commands/capture.js +80 -0
- package/dist/commands/capture.js.map +1 -0
- package/dist/commands/chatroom.d.ts +4 -0
- package/dist/commands/chatroom.d.ts.map +1 -0
- package/dist/commands/chatroom.js +314 -0
- package/dist/commands/chatroom.js.map +1 -0
- package/dist/commands/claim.d.ts +4 -0
- package/dist/commands/claim.d.ts.map +1 -0
- package/dist/commands/claim.js +40 -0
- package/dist/commands/claim.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +74 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/daemon.d.ts +11 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +167 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/discover.d.ts +4 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +60 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/doctor.d.ts +25 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +155 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/down.d.ts +9 -0
- package/dist/commands/down.d.ts.map +1 -0
- package/dist/commands/down.js +96 -0
- package/dist/commands/down.js.map +1 -0
- package/dist/commands/expand.d.ts +4 -0
- package/dist/commands/expand.d.ts.map +1 -0
- package/dist/commands/expand.js +98 -0
- package/dist/commands/expand.js.map +1 -0
- package/dist/commands/export.d.ts +7 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +46 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/import.d.ts +7 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +157 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/launch.d.ts +4 -0
- package/dist/commands/launch.d.ts.map +1 -0
- package/dist/commands/launch.js +45 -0
- package/dist/commands/launch.js.map +1 -0
- package/dist/commands/mcp.d.ts +9 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +52 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/package.d.ts +4 -0
- package/dist/commands/package.d.ts.map +1 -0
- package/dist/commands/package.js +234 -0
- package/dist/commands/package.js.map +1 -0
- package/dist/commands/preflight.d.ts +11 -0
- package/dist/commands/preflight.d.ts.map +1 -0
- package/dist/commands/preflight.js +53 -0
- package/dist/commands/preflight.js.map +1 -0
- package/dist/commands/ps.d.ts +9 -0
- package/dist/commands/ps.d.ts.map +1 -0
- package/dist/commands/ps.js +129 -0
- package/dist/commands/ps.js.map +1 -0
- package/dist/commands/release.d.ts +4 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.js +69 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/remove.d.ts +4 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +43 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/requirements.d.ts +4 -0
- package/dist/commands/requirements.d.ts.map +1 -0
- package/dist/commands/requirements.js +66 -0
- package/dist/commands/requirements.js.map +1 -0
- package/dist/commands/restore.d.ts +4 -0
- package/dist/commands/restore.d.ts.map +1 -0
- package/dist/commands/restore.js +57 -0
- package/dist/commands/restore.js.map +1 -0
- package/dist/commands/rig.d.ts +7 -0
- package/dist/commands/rig.d.ts.map +1 -0
- package/dist/commands/rig.js +139 -0
- package/dist/commands/rig.js.map +1 -0
- package/dist/commands/send.d.ts +4 -0
- package/dist/commands/send.d.ts.map +1 -0
- package/dist/commands/send.js +59 -0
- package/dist/commands/send.js.map +1 -0
- package/dist/commands/shrink.d.ts +4 -0
- package/dist/commands/shrink.d.ts.map +1 -0
- package/dist/commands/shrink.js +53 -0
- package/dist/commands/shrink.js.map +1 -0
- package/dist/commands/snapshot.d.ts +4 -0
- package/dist/commands/snapshot.d.ts.map +1 -0
- package/dist/commands/snapshot.js +74 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/commands/specs.d.ts +22 -0
- package/dist/commands/specs.d.ts.map +1 -0
- package/dist/commands/specs.js +260 -0
- package/dist/commands/specs.js.map +1 -0
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +68 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/transcript.d.ts +4 -0
- package/dist/commands/transcript.d.ts.map +1 -0
- package/dist/commands/transcript.js +77 -0
- package/dist/commands/transcript.js.map +1 -0
- package/dist/commands/ui.d.ts +8 -0
- package/dist/commands/ui.d.ts.map +1 -0
- package/dist/commands/ui.js +57 -0
- package/dist/commands/ui.js.map +1 -0
- package/dist/commands/unclaim.d.ts +4 -0
- package/dist/commands/unclaim.d.ts.map +1 -0
- package/dist/commands/unclaim.js +46 -0
- package/dist/commands/unclaim.js.map +1 -0
- package/dist/commands/up.d.ts +7 -0
- package/dist/commands/up.d.ts.map +1 -0
- package/dist/commands/up.js +195 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/commands/whoami.d.ts +24 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +196 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config-store.d.ts +23 -0
- package/dist/config-store.d.ts.map +1 -0
- package/dist/config-store.js +141 -0
- package/dist/config-store.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts +60 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -0
- package/dist/daemon-lifecycle.js +225 -0
- package/dist/daemon-lifecycle.js.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +103 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server.d.ts +9 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +308 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/openrig-compat.d.ts +9 -0
- package/dist/openrig-compat.d.ts.map +1 -0
- package/dist/openrig-compat.js +57 -0
- package/dist/openrig-compat.js.map +1 -0
- package/dist/system-preflight.d.ts +36 -0
- package/dist/system-preflight.d.ts.map +1 -0
- package/dist/system-preflight.js +136 -0
- package/dist/system-preflight.js.map +1 -0
- package/package.json +46 -3
- package/ui/dist/assets/index-B09doO8H.js +139 -0
- package/ui/dist/assets/index-CrjgHtlk.js +224 -0
- package/ui/dist/assets/index-DGPFTQEV.css +1 -0
- package/ui/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
- package/ui/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
- package/ui/dist/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
- package/ui/dist/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
- package/ui/dist/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
- package/ui/dist/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
- package/ui/dist/assets/inter-cyrillic-700-normal-CjBOestx.woff2 +0 -0
- package/ui/dist/assets/inter-cyrillic-700-normal-DrXBdSj3.woff +0 -0
- package/ui/dist/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
- package/ui/dist/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
- package/ui/dist/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
- package/ui/dist/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
- package/ui/dist/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
- package/ui/dist/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
- package/ui/dist/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2 +0 -0
- package/ui/dist/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff +0 -0
- package/ui/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
- package/ui/dist/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
- package/ui/dist/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
- package/ui/dist/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
- package/ui/dist/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
- package/ui/dist/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
- package/ui/dist/assets/inter-greek-700-normal-BUv2fZ6O.woff +0 -0
- package/ui/dist/assets/inter-greek-700-normal-C3JjAnD8.woff2 +0 -0
- package/ui/dist/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
- package/ui/dist/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
- package/ui/dist/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
- package/ui/dist/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
- package/ui/dist/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
- package/ui/dist/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
- package/ui/dist/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff +0 -0
- package/ui/dist/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2 +0 -0
- package/ui/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
- package/ui/dist/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
- package/ui/dist/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
- package/ui/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
- package/ui/dist/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
- package/ui/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
- package/ui/dist/assets/inter-latin-700-normal-BLAVimhd.woff +0 -0
- package/ui/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 +0 -0
- package/ui/dist/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
- package/ui/dist/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
- package/ui/dist/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
- package/ui/dist/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
- package/ui/dist/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
- package/ui/dist/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
- package/ui/dist/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2 +0 -0
- package/ui/dist/assets/inter-latin-ext-700-normal-TidjK2hL.woff +0 -0
- package/ui/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
- package/ui/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- package/ui/dist/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
- package/ui/dist/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
- package/ui/dist/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
- package/ui/dist/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
- package/ui/dist/assets/inter-vietnamese-700-normal-BZaoP0fm.woff +0 -0
- package/ui/dist/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 +0 -0
- package/ui/dist/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- package/ui/dist/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- package/ui/dist/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/ui/dist/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/ui/dist/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- package/ui/dist/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2 +0 -0
- package/ui/dist/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2 +0 -0
- package/ui/dist/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2 +0 -0
- package/ui/dist/index.html +14 -0
- package/index.js +0 -2
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import { getNodeInventory, getNodeDetail, getNodeInventoryWithContext, getNodeDetailWithContext } from "../domain/node-inventory.js";
|
|
3
|
+
export const sessionsRoutes = new Hono();
|
|
4
|
+
export const nodesRoutes = new Hono();
|
|
5
|
+
export const sessionAdminRoutes = new Hono();
|
|
6
|
+
function getDeps(c) {
|
|
7
|
+
return {
|
|
8
|
+
rigRepo: c.get("rigRepo"),
|
|
9
|
+
sessionRegistry: c.get("sessionRegistry"),
|
|
10
|
+
nodeLauncher: c.get("nodeLauncher"),
|
|
11
|
+
cmuxAdapter: c.get("cmuxAdapter"),
|
|
12
|
+
rigLifecycleService: c.get("rigLifecycleService"),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
// GET /api/rigs/:rigId/sessions
|
|
16
|
+
sessionsRoutes.get("/", (c) => {
|
|
17
|
+
const rigId = c.req.param("rigId");
|
|
18
|
+
const { sessionRegistry } = getDeps(c);
|
|
19
|
+
return c.json(sessionRegistry.getSessionsForRig(rigId));
|
|
20
|
+
});
|
|
21
|
+
// GET /api/rigs/:rigId/nodes — node inventory projection
|
|
22
|
+
nodesRoutes.get("/", (c) => {
|
|
23
|
+
const rigId = c.req.param("rigId");
|
|
24
|
+
const deps = getDeps(c);
|
|
25
|
+
const rig = deps.rigRepo.getRig(rigId);
|
|
26
|
+
if (!rig)
|
|
27
|
+
return c.json({ error: `Rig "${rigId}" not found. List rigs with: rig ps` }, 404);
|
|
28
|
+
const contextUsageStore = c.get("contextUsageStore");
|
|
29
|
+
const inventory = contextUsageStore
|
|
30
|
+
? getNodeInventoryWithContext(deps.rigRepo.db, rigId, contextUsageStore)
|
|
31
|
+
: getNodeInventory(deps.rigRepo.db, rigId);
|
|
32
|
+
return c.json(inventory);
|
|
33
|
+
});
|
|
34
|
+
// GET /api/rigs/:rigId/nodes/:logicalId — node detail
|
|
35
|
+
nodesRoutes.get("/:logicalId", (c) => {
|
|
36
|
+
const rigId = c.req.param("rigId");
|
|
37
|
+
const logicalId = decodeURIComponent(c.req.param("logicalId"));
|
|
38
|
+
const deps = getDeps(c);
|
|
39
|
+
const rig = deps.rigRepo.getRig(rigId);
|
|
40
|
+
if (!rig)
|
|
41
|
+
return c.json({ error: `Rig "${rigId}" not found. List rigs with: rig ps` }, 404);
|
|
42
|
+
const contextUsageStore = c.get("contextUsageStore");
|
|
43
|
+
const detail = contextUsageStore
|
|
44
|
+
? getNodeDetailWithContext(deps.rigRepo.db, rigId, logicalId, contextUsageStore)
|
|
45
|
+
: getNodeDetail(deps.rigRepo.db, rigId, logicalId);
|
|
46
|
+
if (!detail)
|
|
47
|
+
return c.json({ error: `Node "${logicalId}" not found in rig "${rigId}". Check node IDs with: rig ps --nodes` }, 404);
|
|
48
|
+
// Enrich transcript info from TranscriptStore (not available to pure DB helper)
|
|
49
|
+
const transcriptStore = c.get("transcriptStore");
|
|
50
|
+
if (transcriptStore?.enabled && detail.canonicalSessionName) {
|
|
51
|
+
const path = transcriptStore.getTranscriptPath(rig.rig.name, detail.canonicalSessionName);
|
|
52
|
+
detail.transcript = {
|
|
53
|
+
enabled: true,
|
|
54
|
+
path,
|
|
55
|
+
tailCommand: `rig transcript ${detail.canonicalSessionName} --tail 100`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return c.json(detail);
|
|
59
|
+
});
|
|
60
|
+
// POST /api/rigs/:rigId/nodes/:logicalId/launch
|
|
61
|
+
nodesRoutes.post("/:logicalId/launch", async (c) => {
|
|
62
|
+
const rigId = c.req.param("rigId");
|
|
63
|
+
const logicalId = c.req.param("logicalId");
|
|
64
|
+
const { nodeLauncher } = getDeps(c);
|
|
65
|
+
const result = await nodeLauncher.launchNode(rigId, logicalId);
|
|
66
|
+
if (!result.ok) {
|
|
67
|
+
const status = result.code === "node_not_found" ? 404
|
|
68
|
+
: result.code === "already_bound" ? 409
|
|
69
|
+
: result.code === "invalid_session_name" ? 400
|
|
70
|
+
: 500;
|
|
71
|
+
return c.json(result, status);
|
|
72
|
+
}
|
|
73
|
+
return c.json(result, 201);
|
|
74
|
+
});
|
|
75
|
+
// POST /api/rigs/:rigId/nodes/:logicalId/focus
|
|
76
|
+
nodesRoutes.post("/:logicalId/focus", async (c) => {
|
|
77
|
+
const rigId = c.req.param("rigId");
|
|
78
|
+
const logicalId = c.req.param("logicalId");
|
|
79
|
+
const { rigRepo, cmuxAdapter } = getDeps(c);
|
|
80
|
+
const rig = rigRepo.getRig(rigId);
|
|
81
|
+
if (!rig)
|
|
82
|
+
return c.json({ error: "rig not found" }, 404);
|
|
83
|
+
const node = rig.nodes.find((n) => n.logicalId === logicalId);
|
|
84
|
+
if (!node)
|
|
85
|
+
return c.json({ error: "node not found" }, 404);
|
|
86
|
+
const cmuxSurface = node.binding?.cmuxSurface;
|
|
87
|
+
if (!cmuxSurface) {
|
|
88
|
+
return c.json({ error: "node has no cmux surface binding" }, 409);
|
|
89
|
+
}
|
|
90
|
+
const result = await cmuxAdapter.focusSurface(cmuxSurface);
|
|
91
|
+
return c.json(result);
|
|
92
|
+
});
|
|
93
|
+
// DELETE /api/rigs/:rigId/nodes/:logicalId
|
|
94
|
+
nodesRoutes.delete("/:logicalId", async (c) => {
|
|
95
|
+
const rigId = c.req.param("rigId");
|
|
96
|
+
const nodeRef = decodeURIComponent(c.req.param("logicalId"));
|
|
97
|
+
const { rigLifecycleService } = getDeps(c);
|
|
98
|
+
if (!rigLifecycleService) {
|
|
99
|
+
return c.json({ error: "Lifecycle service not available" }, 500);
|
|
100
|
+
}
|
|
101
|
+
const result = await rigLifecycleService.removeNode(rigId, nodeRef);
|
|
102
|
+
if (!result.ok) {
|
|
103
|
+
const status = result.code === "rig_not_found" ? 404
|
|
104
|
+
: result.code === "node_not_found" ? 404
|
|
105
|
+
: result.code === "kill_failed" ? 409
|
|
106
|
+
: 500;
|
|
107
|
+
return c.json(result, status);
|
|
108
|
+
}
|
|
109
|
+
return c.json(result, 200);
|
|
110
|
+
});
|
|
111
|
+
// POST /api/sessions/:sessionRef/unclaim
|
|
112
|
+
sessionAdminRoutes.post("/:sessionRef/unclaim", async (c) => {
|
|
113
|
+
const sessionRef = decodeURIComponent(c.req.param("sessionRef"));
|
|
114
|
+
const { rigLifecycleService } = getDeps(c);
|
|
115
|
+
if (!rigLifecycleService) {
|
|
116
|
+
return c.json({ error: "Lifecycle service not available" }, 500);
|
|
117
|
+
}
|
|
118
|
+
const result = await rigLifecycleService.unclaimSession(sessionRef);
|
|
119
|
+
if (!result.ok) {
|
|
120
|
+
const status = result.code === "session_ambiguous" ? 409 : 404;
|
|
121
|
+
return c.json(result, status);
|
|
122
|
+
}
|
|
123
|
+
return c.json(result, 200);
|
|
124
|
+
});
|
|
125
|
+
//# sourceMappingURL=sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/routes/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
export declare const snapshotsRoutes: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
3
|
+
export declare const restoreRoutes: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
4
|
+
//# sourceMappingURL=snapshots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../src/routes/snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,eAAO,MAAM,eAAe,4EAAa,CAAC;AAC1C,eAAO,MAAM,aAAa,4EAAa,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import { RigNotFoundError } from "../domain/errors.js";
|
|
3
|
+
export const snapshotsRoutes = new Hono();
|
|
4
|
+
export const restoreRoutes = new Hono();
|
|
5
|
+
function getDeps(c) {
|
|
6
|
+
return {
|
|
7
|
+
snapshotCapture: c.get("snapshotCapture"),
|
|
8
|
+
snapshotRepo: c.get("snapshotRepo"),
|
|
9
|
+
restoreOrchestrator: c.get("restoreOrchestrator"),
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
// POST /api/rigs/:rigId/snapshots
|
|
13
|
+
snapshotsRoutes.post("/", async (c) => {
|
|
14
|
+
const rigId = c.req.param("rigId");
|
|
15
|
+
const body = await c.req.json().catch(() => ({}));
|
|
16
|
+
const kind = typeof body["kind"] === "string" ? body["kind"] : "manual";
|
|
17
|
+
const { snapshotCapture } = getDeps(c);
|
|
18
|
+
try {
|
|
19
|
+
const snapshot = snapshotCapture.captureSnapshot(rigId, kind);
|
|
20
|
+
return c.json(snapshot, 201);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
if (err instanceof RigNotFoundError) {
|
|
24
|
+
return c.json({ error: err.message }, 404);
|
|
25
|
+
}
|
|
26
|
+
return c.json({ error: "Failed to capture snapshot" }, 500);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
// GET /api/rigs/:rigId/snapshots
|
|
30
|
+
snapshotsRoutes.get("/", (c) => {
|
|
31
|
+
const rigId = c.req.param("rigId");
|
|
32
|
+
const { snapshotRepo } = getDeps(c);
|
|
33
|
+
return c.json(snapshotRepo.listSnapshots(rigId));
|
|
34
|
+
});
|
|
35
|
+
// GET /api/rigs/:rigId/snapshots/:id
|
|
36
|
+
snapshotsRoutes.get("/:id", (c) => {
|
|
37
|
+
const rigId = c.req.param("rigId");
|
|
38
|
+
const id = c.req.param("id");
|
|
39
|
+
const { snapshotRepo } = getDeps(c);
|
|
40
|
+
const snapshot = snapshotRepo.getSnapshot(id);
|
|
41
|
+
if (!snapshot || snapshot.rigId !== rigId) {
|
|
42
|
+
return c.json({ error: "Snapshot not found" }, 404);
|
|
43
|
+
}
|
|
44
|
+
return c.json(snapshot);
|
|
45
|
+
});
|
|
46
|
+
// POST /api/rigs/:rigId/restore/:snapshotId
|
|
47
|
+
restoreRoutes.post("/:snapshotId", async (c) => {
|
|
48
|
+
const rigId = c.req.param("rigId");
|
|
49
|
+
const snapshotId = c.req.param("snapshotId");
|
|
50
|
+
const { snapshotRepo, restoreOrchestrator } = getDeps(c);
|
|
51
|
+
// Cross-rig guard: verify snapshot belongs to this rig
|
|
52
|
+
const snapshot = snapshotRepo.getSnapshot(snapshotId);
|
|
53
|
+
if (!snapshot || snapshot.rigId !== rigId) {
|
|
54
|
+
return c.json({ error: "Snapshot not found" }, 404);
|
|
55
|
+
}
|
|
56
|
+
const adapters = c.get("runtimeAdapters");
|
|
57
|
+
const fs = await import("node:fs");
|
|
58
|
+
const outcome = await restoreOrchestrator.restore(snapshotId, {
|
|
59
|
+
adapters: adapters ?? {},
|
|
60
|
+
fsOps: { exists: (p) => fs.existsSync(p) },
|
|
61
|
+
});
|
|
62
|
+
if (!outcome.ok) {
|
|
63
|
+
const status = outcome.code === "snapshot_not_found" || outcome.code === "rig_not_found"
|
|
64
|
+
? 404
|
|
65
|
+
: outcome.code === "restore_in_progress" || outcome.code === "rig_not_stopped"
|
|
66
|
+
? 409
|
|
67
|
+
: 500;
|
|
68
|
+
return c.json({ error: outcome.message, code: outcome.code }, status);
|
|
69
|
+
}
|
|
70
|
+
// Compute attach command from first running node
|
|
71
|
+
const { getNodeInventory } = await import("../domain/node-inventory.js");
|
|
72
|
+
const inventory = getNodeInventory(restoreOrchestrator.db, rigId);
|
|
73
|
+
const firstRunning = inventory.find((n) => n.canonicalSessionName && n.sessionStatus === "running");
|
|
74
|
+
const attachCommand = firstRunning?.tmuxAttachCommand ?? inventory.find((n) => n.canonicalSessionName)?.tmuxAttachCommand ?? null;
|
|
75
|
+
return c.json({ ...outcome.result, attachCommand });
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=snapshots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/routes/snapshots.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-library.d.ts","sourceRoot":"","sources":["../../src/routes/spec-library.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,wBAAgB,iBAAiB,IAAI,IAAI,CAqGxC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import { SpecReviewError } from "../domain/spec-review-service.js";
|
|
3
|
+
export function specLibraryRoutes() {
|
|
4
|
+
const router = new Hono();
|
|
5
|
+
// GET / — list library entries
|
|
6
|
+
router.get("/", (c) => {
|
|
7
|
+
const lib = c.get("specLibraryService");
|
|
8
|
+
const kind = c.req.query("kind");
|
|
9
|
+
const entries = lib.list(kind ? { kind } : undefined);
|
|
10
|
+
return c.json(entries);
|
|
11
|
+
});
|
|
12
|
+
// GET /:id — entry metadata + YAML content
|
|
13
|
+
router.get("/:id", (c) => {
|
|
14
|
+
const lib = c.get("specLibraryService");
|
|
15
|
+
const id = c.req.param("id");
|
|
16
|
+
// Guard: don't match sub-paths like /review or /sync
|
|
17
|
+
if (id === "sync" || id === "review")
|
|
18
|
+
return c.notFound();
|
|
19
|
+
const result = lib.get(id);
|
|
20
|
+
if (!result) {
|
|
21
|
+
return c.json({ error: `Spec '${id}' not found in library` }, 404);
|
|
22
|
+
}
|
|
23
|
+
return c.json(result);
|
|
24
|
+
});
|
|
25
|
+
// GET /:id/review — structured review with library provenance
|
|
26
|
+
router.get("/:id/review", (c) => {
|
|
27
|
+
const lib = c.get("specLibraryService");
|
|
28
|
+
const svc = c.get("specReviewService");
|
|
29
|
+
const id = c.req.param("id");
|
|
30
|
+
const result = lib.get(id);
|
|
31
|
+
if (!result) {
|
|
32
|
+
return c.json({ error: `Spec '${id}' not found in library` }, 404);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
let review;
|
|
36
|
+
if (result.entry.kind === "rig") {
|
|
37
|
+
review = svc.reviewRigSpec(result.yaml, "library_item");
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
review = svc.reviewAgentSpec(result.yaml, "library_item");
|
|
41
|
+
}
|
|
42
|
+
// Add library provenance
|
|
43
|
+
return c.json({
|
|
44
|
+
...review,
|
|
45
|
+
libraryEntryId: id,
|
|
46
|
+
sourcePath: result.entry.sourcePath,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
if (err instanceof SpecReviewError) {
|
|
51
|
+
return c.json({ errors: err.errors }, 400);
|
|
52
|
+
}
|
|
53
|
+
return c.json({ error: err.message }, 500);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
// POST /sync — rescan roots
|
|
57
|
+
router.post("/sync", (c) => {
|
|
58
|
+
const lib = c.get("specLibraryService");
|
|
59
|
+
lib.scan();
|
|
60
|
+
return c.json(lib.list());
|
|
61
|
+
});
|
|
62
|
+
// DELETE /:id — remove a user-file library entry
|
|
63
|
+
router.delete("/:id", (c) => {
|
|
64
|
+
const lib = c.get("specLibraryService");
|
|
65
|
+
const result = lib.remove(c.req.param("id"));
|
|
66
|
+
if (!result.ok) {
|
|
67
|
+
const status = result.code === "not_found" ? 404
|
|
68
|
+
: result.code === "read_only" ? 409
|
|
69
|
+
: result.code === "conflict" ? 409
|
|
70
|
+
: 400;
|
|
71
|
+
return c.json(result, status);
|
|
72
|
+
}
|
|
73
|
+
return c.json({ ok: true, id: result.entry.id, name: result.entry.name });
|
|
74
|
+
});
|
|
75
|
+
// POST /:id/rename — rename a user-file library entry
|
|
76
|
+
router.post("/:id/rename", async (c) => {
|
|
77
|
+
const lib = c.get("specLibraryService");
|
|
78
|
+
const body = await c.req.json().catch(() => ({}));
|
|
79
|
+
const name = body["name"];
|
|
80
|
+
if (typeof name !== "string" || name.trim().length === 0) {
|
|
81
|
+
return c.json({ ok: false, code: "invalid_spec", error: "name is required" }, 400);
|
|
82
|
+
}
|
|
83
|
+
const result = lib.rename(c.req.param("id"), name);
|
|
84
|
+
if (!result.ok) {
|
|
85
|
+
const status = result.code === "not_found" ? 404
|
|
86
|
+
: result.code === "read_only" ? 409
|
|
87
|
+
: result.code === "conflict" ? 409
|
|
88
|
+
: 400;
|
|
89
|
+
return c.json(result, status);
|
|
90
|
+
}
|
|
91
|
+
return c.json({ ok: true, entry: result.entry });
|
|
92
|
+
});
|
|
93
|
+
return router;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=spec-library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-library.js","sourceRoot":"","sources":["../../src/routes/spec-library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-review.d.ts","sourceRoot":"","sources":["../../src/routes/spec-review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,wBAAgB,gBAAgB,IAAI,IAAI,CA0CvC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import { SpecReviewError } from "../domain/spec-review-service.js";
|
|
3
|
+
export function specReviewRoutes() {
|
|
4
|
+
const router = new Hono();
|
|
5
|
+
router.post("/rig", async (c) => {
|
|
6
|
+
const svc = c.get("specReviewService");
|
|
7
|
+
const body = await c.req.json();
|
|
8
|
+
if (!body.yaml) {
|
|
9
|
+
return c.json({ error: "Missing required field: yaml" }, 400);
|
|
10
|
+
}
|
|
11
|
+
try {
|
|
12
|
+
const review = svc.reviewRigSpec(body.yaml, body.sourceState ?? "draft");
|
|
13
|
+
return c.json(review);
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
if (err instanceof SpecReviewError) {
|
|
17
|
+
return c.json({ errors: err.errors }, 400);
|
|
18
|
+
}
|
|
19
|
+
return c.json({ error: err.message }, 500);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
router.post("/agent", async (c) => {
|
|
23
|
+
const svc = c.get("specReviewService");
|
|
24
|
+
const body = await c.req.json();
|
|
25
|
+
if (!body.yaml) {
|
|
26
|
+
return c.json({ error: "Missing required field: yaml" }, 400);
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const review = svc.reviewAgentSpec(body.yaml, body.sourceState ?? "draft");
|
|
30
|
+
return c.json(review);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
if (err instanceof SpecReviewError) {
|
|
34
|
+
return c.json({ errors: err.errors }, 400);
|
|
35
|
+
}
|
|
36
|
+
return c.json({ error: err.message }, 500);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return router;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=spec-review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-review.js","sourceRoot":"","sources":["../../src/routes/spec-review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAqB,eAAe,EAAoB,MAAM,kCAAkC,CAAC;AAExG,MAAM,UAAU,gBAAgB;IAC9B,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAE1B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,mBAA4B,CAAsB,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAA+C,CAAC;QAE7E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;YACzE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;gBACnC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,mBAA4B,CAAsB,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAA+C,CAAC;QAE7E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;YAC3E,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;gBACnC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcripts.d.ts","sourceRoot":"","sources":["../../src/routes/transcripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAiG5B,wBAAgB,gBAAgB,IAAI,IAAI,CA+GvC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import { startTmuxTranscriptCapture } from "../domain/transcript-capture.js";
|
|
3
|
+
const CAPTURE_WARMUP_MS = 150;
|
|
4
|
+
function resolveSessionToRig(db, rigRepo, sessionName) {
|
|
5
|
+
// Find ALL sessions with this name to detect ambiguity
|
|
6
|
+
const sessionRows = db
|
|
7
|
+
.prepare("SELECT node_id FROM sessions WHERE session_name = ? ORDER BY id DESC")
|
|
8
|
+
.all(sessionName);
|
|
9
|
+
if (sessionRows.length === 0) {
|
|
10
|
+
return {
|
|
11
|
+
error: `Session '${sessionName}' not found. Check session names with: rig ps --nodes`,
|
|
12
|
+
status: 404,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
// Collect distinct rig names for all matching sessions
|
|
16
|
+
const rigNames = new Set();
|
|
17
|
+
for (const row of sessionRows) {
|
|
18
|
+
const nodeRow = db
|
|
19
|
+
.prepare("SELECT rig_id FROM nodes WHERE id = ?")
|
|
20
|
+
.get(row.node_id);
|
|
21
|
+
if (nodeRow) {
|
|
22
|
+
const rig = rigRepo.getRig(nodeRow.rig_id);
|
|
23
|
+
if (rig)
|
|
24
|
+
rigNames.add(rig.rig.name);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (rigNames.size === 0) {
|
|
28
|
+
return {
|
|
29
|
+
error: `Session '${sessionName}' not found. Check session names with: rig ps --nodes`,
|
|
30
|
+
status: 404,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (rigNames.size > 1) {
|
|
34
|
+
const names = Array.from(rigNames).join(", ");
|
|
35
|
+
return {
|
|
36
|
+
error: `Session '${sessionName}' is ambiguous — found in rigs: ${names}. Use a unique session name or specify the rig.`,
|
|
37
|
+
status: 409,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return { rigName: rigNames.values().next().value, nodeId: sessionRows[0].node_id };
|
|
41
|
+
}
|
|
42
|
+
async function tryStartCaptureForSession(db, transcriptStore, tmuxAdapter, rigName, nodeId, sessionName) {
|
|
43
|
+
const binding = db
|
|
44
|
+
.prepare("SELECT attachment_type, tmux_session FROM bindings WHERE node_id = ?")
|
|
45
|
+
.get(nodeId);
|
|
46
|
+
if (!binding)
|
|
47
|
+
return false;
|
|
48
|
+
if ((binding.attachment_type ?? "tmux") !== "tmux")
|
|
49
|
+
return false;
|
|
50
|
+
if (!binding.tmux_session || binding.tmux_session !== sessionName)
|
|
51
|
+
return false;
|
|
52
|
+
const result = await startTmuxTranscriptCapture(tmuxAdapter, transcriptStore, rigName, sessionName);
|
|
53
|
+
return result.started;
|
|
54
|
+
}
|
|
55
|
+
async function warmTranscriptTail(transcriptStore, rigName, sessionName, lines) {
|
|
56
|
+
await new Promise((resolve) => setTimeout(resolve, CAPTURE_WARMUP_MS));
|
|
57
|
+
return transcriptStore.readTail(rigName, sessionName, lines);
|
|
58
|
+
}
|
|
59
|
+
export function transcriptRoutes() {
|
|
60
|
+
const router = new Hono();
|
|
61
|
+
router.get("/:session/tail", async (c) => {
|
|
62
|
+
const transcriptStore = c.get("transcriptStore");
|
|
63
|
+
const db = c.get("db");
|
|
64
|
+
const rigRepo = c.get("rigRepo");
|
|
65
|
+
const tmuxAdapter = c.get("tmuxAdapter");
|
|
66
|
+
const sessionName = c.req.param("session");
|
|
67
|
+
const rawLines = parseInt(c.req.query("lines") ?? "50", 10);
|
|
68
|
+
const lines = isNaN(rawLines) || rawLines < 1 ? 50 : rawLines;
|
|
69
|
+
if (!transcriptStore?.enabled) {
|
|
70
|
+
return c.json({ error: "Transcripts are disabled. Enable with: rig config set transcripts.enabled true" }, 404);
|
|
71
|
+
}
|
|
72
|
+
const resolution = resolveSessionToRig(db, rigRepo, sessionName);
|
|
73
|
+
if ("error" in resolution) {
|
|
74
|
+
return c.json({ error: resolution.error }, resolution.status);
|
|
75
|
+
}
|
|
76
|
+
const content = transcriptStore.readTail(resolution.rigName, sessionName, lines);
|
|
77
|
+
if (content === null) {
|
|
78
|
+
const startedNow = await tryStartCaptureForSession(db, transcriptStore, tmuxAdapter, resolution.rigName, resolution.nodeId, sessionName);
|
|
79
|
+
if (startedNow) {
|
|
80
|
+
const warmedContent = await warmTranscriptTail(transcriptStore, resolution.rigName, sessionName, lines);
|
|
81
|
+
if (warmedContent !== null && warmedContent !== "") {
|
|
82
|
+
return c.json({ session: sessionName, lines, content: warmedContent });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return c.json({
|
|
86
|
+
error: startedNow
|
|
87
|
+
? `No transcript for '${sessionName}' yet. Transcript capture was missing and has been started now. Retry after the session emits new output.`
|
|
88
|
+
: `No transcript for '${sessionName}'. Transcripts start automatically on next rig up.`,
|
|
89
|
+
}, 404);
|
|
90
|
+
}
|
|
91
|
+
return c.json({ session: sessionName, lines, content });
|
|
92
|
+
});
|
|
93
|
+
router.get("/:session/grep", async (c) => {
|
|
94
|
+
const transcriptStore = c.get("transcriptStore");
|
|
95
|
+
const db = c.get("db");
|
|
96
|
+
const rigRepo = c.get("rigRepo");
|
|
97
|
+
const tmuxAdapter = c.get("tmuxAdapter");
|
|
98
|
+
const sessionName = c.req.param("session");
|
|
99
|
+
const pattern = c.req.query("pattern");
|
|
100
|
+
if (!pattern) {
|
|
101
|
+
return c.json({ error: "Missing required query parameter: pattern" }, 400);
|
|
102
|
+
}
|
|
103
|
+
// Pre-validate regex
|
|
104
|
+
try {
|
|
105
|
+
new RegExp(pattern);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
return c.json({ error: `Invalid grep pattern: ${err.message}` }, 400);
|
|
109
|
+
}
|
|
110
|
+
if (!transcriptStore?.enabled) {
|
|
111
|
+
return c.json({ error: "Transcripts are disabled. Enable with: rig config set transcripts.enabled true" }, 404);
|
|
112
|
+
}
|
|
113
|
+
const resolution = resolveSessionToRig(db, rigRepo, sessionName);
|
|
114
|
+
if ("error" in resolution) {
|
|
115
|
+
return c.json({ error: resolution.error }, resolution.status);
|
|
116
|
+
}
|
|
117
|
+
const matches = transcriptStore.grep(resolution.rigName, sessionName, pattern);
|
|
118
|
+
if (matches === null) {
|
|
119
|
+
const startedNow = await tryStartCaptureForSession(db, transcriptStore, tmuxAdapter, resolution.rigName, resolution.nodeId, sessionName);
|
|
120
|
+
return c.json({
|
|
121
|
+
error: startedNow
|
|
122
|
+
? `No transcript for '${sessionName}' yet. Transcript capture was missing and has been started now. Retry after the session emits new output.`
|
|
123
|
+
: `No transcript for '${sessionName}'. Transcripts start automatically on next rig up.`,
|
|
124
|
+
}, 404);
|
|
125
|
+
}
|
|
126
|
+
return c.json({ session: sessionName, pattern, matches });
|
|
127
|
+
});
|
|
128
|
+
return router;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=transcripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcripts.js","sourceRoot":"","sources":["../../src/routes/transcripts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/routes/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,wBAAgB,eAAe,IAAI,IAAI,CAwHtC"}
|