@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,87 @@
|
|
|
1
|
+
import { ulid } from "ulid";
|
|
2
|
+
/**
|
|
3
|
+
* Executes approved external install actions via injected ExecFn.
|
|
4
|
+
* Journals everything to bootstrap_actions table.
|
|
5
|
+
* On failure: marks failed, continues to next (no global abort).
|
|
6
|
+
* No automatic uninstall rollback.
|
|
7
|
+
*/
|
|
8
|
+
export class ExternalInstallExecutor {
|
|
9
|
+
exec;
|
|
10
|
+
db;
|
|
11
|
+
constructor(deps) {
|
|
12
|
+
this.exec = deps.exec;
|
|
13
|
+
this.db = deps.db;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Execute tagged actions. All actions are journaled (including skipped).
|
|
17
|
+
* @param bootstrapId - links journal entries to a bootstrap run
|
|
18
|
+
* @param taggedActions - full action set with approval decisions
|
|
19
|
+
*/
|
|
20
|
+
async execute(bootstrapId, taggedActions, startSeq = 1) {
|
|
21
|
+
const results = [];
|
|
22
|
+
for (let i = 0; i < taggedActions.length; i++) {
|
|
23
|
+
const { action, approved } = taggedActions[i];
|
|
24
|
+
const seq = startSeq + i;
|
|
25
|
+
const actionId = ulid();
|
|
26
|
+
// Skip: unapproved, manual_only (defense in depth), or no command
|
|
27
|
+
if (!approved || action.classification === "manual_only" || !action.commandPreview) {
|
|
28
|
+
const result = {
|
|
29
|
+
actionId,
|
|
30
|
+
requirementName: action.requirementName,
|
|
31
|
+
status: "skipped",
|
|
32
|
+
command: action.commandPreview,
|
|
33
|
+
stdout: null,
|
|
34
|
+
errorMessage: null,
|
|
35
|
+
durationMs: 0,
|
|
36
|
+
};
|
|
37
|
+
this.journal(actionId, bootstrapId, seq, action, "skipped", { stdout: null, errorMessage: null, durationMs: 0 });
|
|
38
|
+
results.push(result);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
// Execute
|
|
42
|
+
const start = Date.now();
|
|
43
|
+
try {
|
|
44
|
+
const stdout = await this.exec(action.commandPreview);
|
|
45
|
+
const durationMs = Date.now() - start;
|
|
46
|
+
const result = {
|
|
47
|
+
actionId,
|
|
48
|
+
requirementName: action.requirementName,
|
|
49
|
+
status: "completed",
|
|
50
|
+
command: action.commandPreview,
|
|
51
|
+
stdout: stdout ?? null,
|
|
52
|
+
errorMessage: null,
|
|
53
|
+
durationMs,
|
|
54
|
+
};
|
|
55
|
+
this.journal(actionId, bootstrapId, seq, action, "completed", { stdout: stdout ?? null, errorMessage: null, durationMs });
|
|
56
|
+
results.push(result);
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
const durationMs = Date.now() - start;
|
|
60
|
+
const errorMessage = err.message ?? "unknown error";
|
|
61
|
+
const result = {
|
|
62
|
+
actionId,
|
|
63
|
+
requirementName: action.requirementName,
|
|
64
|
+
status: "failed",
|
|
65
|
+
command: action.commandPreview,
|
|
66
|
+
stdout: null,
|
|
67
|
+
errorMessage,
|
|
68
|
+
durationMs,
|
|
69
|
+
};
|
|
70
|
+
this.journal(actionId, bootstrapId, seq, action, "failed", { stdout: null, errorMessage, durationMs });
|
|
71
|
+
results.push(result);
|
|
72
|
+
// Continue to next — no abort
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
results,
|
|
77
|
+
completed: results.filter((r) => r.status === "completed"),
|
|
78
|
+
failed: results.filter((r) => r.status === "failed"),
|
|
79
|
+
skipped: results.filter((r) => r.status === "skipped"),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
journal(id, bootstrapId, seq, action, status, detail) {
|
|
83
|
+
this.db.prepare(`INSERT INTO bootstrap_actions (id, bootstrap_id, seq, action_kind, subject_type, subject_name, provider, command_preview, status, detail_json)
|
|
84
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(id, bootstrapId, seq, "external_install", action.kind, action.requirementName, action.provider, action.commandPreview, status, JSON.stringify(detail));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=external-install-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-install-executor.js","sourceRoot":"","sources":["../../src/domain/external-install-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ProbeResult } from "./requirements-probe.js";
|
|
2
|
+
/** Approval classification for an external install action */
|
|
3
|
+
export type ApprovalClassification = "auto_approvable" | "review_required" | "manual_only";
|
|
4
|
+
/** A single external install action in the plan */
|
|
5
|
+
export interface ExternalInstallAction {
|
|
6
|
+
requirementName: string;
|
|
7
|
+
kind: "cli_tool" | "system_package";
|
|
8
|
+
provider: string | null;
|
|
9
|
+
commandPreview: string | null;
|
|
10
|
+
classification: ApprovalClassification;
|
|
11
|
+
installHints: Record<string, string> | null;
|
|
12
|
+
reason: string;
|
|
13
|
+
}
|
|
14
|
+
/** The full external install plan */
|
|
15
|
+
export interface ExternalInstallPlan {
|
|
16
|
+
actions: ExternalInstallAction[];
|
|
17
|
+
autoApprovable: ExternalInstallAction[];
|
|
18
|
+
reviewRequired: ExternalInstallAction[];
|
|
19
|
+
manualOnly: ExternalInstallAction[];
|
|
20
|
+
alreadyInstalled: string[];
|
|
21
|
+
}
|
|
22
|
+
interface PlannerOptions {
|
|
23
|
+
platform?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Maps missing requirements to trusted provider install actions.
|
|
27
|
+
* Phase 5 ships Homebrew (darwin) only. All other platforms produce manual_only.
|
|
28
|
+
* install_hints from manifests are display-only — never executed.
|
|
29
|
+
*/
|
|
30
|
+
export declare class ExternalInstallPlanner {
|
|
31
|
+
private platform;
|
|
32
|
+
constructor(opts?: PlannerOptions);
|
|
33
|
+
/**
|
|
34
|
+
* Build an install plan from probe results.
|
|
35
|
+
* @param probeResults - results from RequirementsProbeRegistry.probeAll()
|
|
36
|
+
*/
|
|
37
|
+
planInstalls(probeResults: ProbeResult[]): ExternalInstallPlan;
|
|
38
|
+
private mapToAction;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=external-install-planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-install-planner.d.ts","sourceRoot":"","sources":["../../src/domain/external-install-planner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,6DAA6D;AAC7D,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAE3F,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,sBAAsB,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qCAAqC;AACrC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,cAAc,EAAE,qBAAqB,EAAE,CAAC;IACxC,cAAc,EAAE,qBAAqB,EAAE,CAAC;IACxC,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,CAAC,EAAE,cAAc;IAIjC;;;OAGG;IACH,YAAY,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,mBAAmB;IAuB9D,OAAO,CAAC,WAAW;CAkDpB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { shellQuote } from "../adapters/shell-quote.js";
|
|
2
|
+
/**
|
|
3
|
+
* Maps missing requirements to trusted provider install actions.
|
|
4
|
+
* Phase 5 ships Homebrew (darwin) only. All other platforms produce manual_only.
|
|
5
|
+
* install_hints from manifests are display-only — never executed.
|
|
6
|
+
*/
|
|
7
|
+
export class ExternalInstallPlanner {
|
|
8
|
+
platform;
|
|
9
|
+
constructor(opts) {
|
|
10
|
+
this.platform = opts?.platform ?? process.platform;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Build an install plan from probe results.
|
|
14
|
+
* @param probeResults - results from RequirementsProbeRegistry.probeAll()
|
|
15
|
+
*/
|
|
16
|
+
planInstalls(probeResults) {
|
|
17
|
+
const actions = [];
|
|
18
|
+
const alreadyInstalled = [];
|
|
19
|
+
for (const probe of probeResults) {
|
|
20
|
+
if (probe.status === "installed") {
|
|
21
|
+
alreadyInstalled.push(probe.name);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const action = this.mapToAction(probe);
|
|
25
|
+
actions.push(action);
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
actions,
|
|
29
|
+
autoApprovable: actions.filter((a) => a.classification === "auto_approvable"),
|
|
30
|
+
reviewRequired: actions.filter((a) => a.classification === "review_required"),
|
|
31
|
+
manualOnly: actions.filter((a) => a.classification === "manual_only"),
|
|
32
|
+
alreadyInstalled,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
mapToAction(probe) {
|
|
36
|
+
// Unsupported platform probe or unknown (probe failed) -> manual_only
|
|
37
|
+
if (probe.status === "unsupported") {
|
|
38
|
+
return {
|
|
39
|
+
requirementName: probe.name,
|
|
40
|
+
kind: probe.kind,
|
|
41
|
+
provider: null,
|
|
42
|
+
commandPreview: null,
|
|
43
|
+
classification: "manual_only",
|
|
44
|
+
installHints: probe.installHints,
|
|
45
|
+
reason: "no trusted provider for this platform",
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
if (probe.status === "unknown") {
|
|
49
|
+
return {
|
|
50
|
+
requirementName: probe.name,
|
|
51
|
+
kind: probe.kind,
|
|
52
|
+
provider: null,
|
|
53
|
+
commandPreview: null,
|
|
54
|
+
classification: "manual_only",
|
|
55
|
+
installHints: probe.installHints,
|
|
56
|
+
reason: "probe failed — cannot determine install action",
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// status === "missing" — try to map to a trusted provider
|
|
60
|
+
if (this.platform === "darwin") {
|
|
61
|
+
return {
|
|
62
|
+
requirementName: probe.name,
|
|
63
|
+
kind: probe.kind,
|
|
64
|
+
provider: "homebrew",
|
|
65
|
+
commandPreview: `brew install ${shellQuote(probe.name)}`,
|
|
66
|
+
classification: "auto_approvable",
|
|
67
|
+
installHints: probe.installHints,
|
|
68
|
+
reason: "trusted Homebrew install",
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// Non-darwin with missing requirement -> manual_only
|
|
72
|
+
return {
|
|
73
|
+
requirementName: probe.name,
|
|
74
|
+
kind: probe.kind,
|
|
75
|
+
provider: null,
|
|
76
|
+
commandPreview: null,
|
|
77
|
+
classification: "manual_only",
|
|
78
|
+
installHints: probe.installHints,
|
|
79
|
+
reason: "no trusted provider for this platform",
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=external-install-planner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-install-planner.js","sourceRoot":"","sources":["../../src/domain/external-install-planner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AA6BxD;;;;GAIG;AACH,MAAM,OAAO,sBAAsB;IACzB,QAAQ,CAAS;IAEzB,YAAY,IAAqB;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,YAA2B;QACtC,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACjC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,OAAO;YACL,OAAO;YACP,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,iBAAiB,CAAC;YAC7E,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,iBAAiB,CAAC;YAC7E,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,aAAa,CAAC;YACrE,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,KAAkB;QACpC,sEAAsE;QACtE,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACnC,OAAO;gBACL,eAAe,EAAE,KAAK,CAAC,IAAI;gBAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,aAAa;gBAC7B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,MAAM,EAAE,uCAAuC;aAChD,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;gBACL,eAAe,EAAE,KAAK,CAAC,IAAI;gBAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,aAAa;gBAC7B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,MAAM,EAAE,gDAAgD;aACzD,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO;gBACL,eAAe,EAAE,KAAK,CAAC,IAAI;gBAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,UAAU;gBACpB,cAAc,EAAE,gBAAgB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACxD,cAAc,EAAE,iBAAiB;gBACjC,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,MAAM,EAAE,0BAA0B;aACnC,CAAC;QACJ,CAAC;QAED,qDAAqD;QACrD,OAAO;YACL,eAAe,EAAE,KAAK,CAAC,IAAI;YAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,aAAa;YAC7B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,MAAM,EAAE,uCAAuC;SAChD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { RigWithRelations, Session, Binding, Pod } from "./types.js";
|
|
2
|
+
export interface RigGraphInput extends RigWithRelations {
|
|
3
|
+
sessions: Session[];
|
|
4
|
+
pods?: Pod[];
|
|
5
|
+
}
|
|
6
|
+
interface RFNodeData {
|
|
7
|
+
logicalId: string;
|
|
8
|
+
podLabel?: string | null;
|
|
9
|
+
podNamespace?: string | null;
|
|
10
|
+
rigId: string;
|
|
11
|
+
role: string | null;
|
|
12
|
+
runtime: string | null;
|
|
13
|
+
model: string | null;
|
|
14
|
+
status: string | null;
|
|
15
|
+
binding: Binding | null;
|
|
16
|
+
nodeKind: "agent" | "infrastructure";
|
|
17
|
+
startupStatus: "pending" | "ready" | "failed" | null;
|
|
18
|
+
canonicalSessionName: string | null;
|
|
19
|
+
podId: string | null;
|
|
20
|
+
restoreOutcome: string;
|
|
21
|
+
resumeToken?: string | null;
|
|
22
|
+
resolvedSpecName: string | null;
|
|
23
|
+
profile: string | null;
|
|
24
|
+
edgeCount: number;
|
|
25
|
+
contextUsedPercentage: number | null;
|
|
26
|
+
contextFresh: boolean;
|
|
27
|
+
contextAvailability: string;
|
|
28
|
+
}
|
|
29
|
+
interface RFNode {
|
|
30
|
+
id: string;
|
|
31
|
+
type: string;
|
|
32
|
+
position: {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
};
|
|
36
|
+
data: RFNodeData;
|
|
37
|
+
parentId?: string;
|
|
38
|
+
}
|
|
39
|
+
interface RFEdge {
|
|
40
|
+
id: string;
|
|
41
|
+
source: string;
|
|
42
|
+
target: string;
|
|
43
|
+
label: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ReactFlowGraph {
|
|
46
|
+
nodes: RFNode[];
|
|
47
|
+
edges: RFEdge[];
|
|
48
|
+
}
|
|
49
|
+
export interface InventoryOverlay {
|
|
50
|
+
logicalId: string;
|
|
51
|
+
startupStatus: "pending" | "ready" | "failed" | null;
|
|
52
|
+
canonicalSessionName: string | null;
|
|
53
|
+
restoreOutcome: string;
|
|
54
|
+
contextUsedPercentage?: number | null;
|
|
55
|
+
contextFresh?: boolean;
|
|
56
|
+
contextAvailability?: string;
|
|
57
|
+
}
|
|
58
|
+
export declare function projectRigToGraph(input: RigGraphInput, inventoryOverlay?: InventoryOverlay[]): ReactFlowGraph;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=graph-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-projection.d.ts","sourceRoot":"","sources":["../../src/domain/graph-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;CACd;AAED,UAAU,UAAU;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAAC;IACrC,aAAa,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IACrD,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,MAAM;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,MAAM;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAID,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IACrD,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAmG7G"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
const VERTICAL_SPACING = 200;
|
|
2
|
+
export function projectRigToGraph(input, inventoryOverlay) {
|
|
3
|
+
const { nodes: rigNodes, edges: rigEdges, sessions, pods = [] } = input;
|
|
4
|
+
const overlayMap = new Map((inventoryOverlay ?? []).map((o) => [o.logicalId, o]));
|
|
5
|
+
const podLabelById = new Map(pods.map((pod) => [pod.id, pod.label]));
|
|
6
|
+
const podNamespaceById = new Map(pods.map((pod) => [pod.id, pod.namespace]));
|
|
7
|
+
// Collect unique pods for group nodes
|
|
8
|
+
const podNodes = new Map(); // podId → node IDs
|
|
9
|
+
const nodes = rigNodes.map((node, index) => {
|
|
10
|
+
// Find latest session for this node by ULID ordering (max session.id)
|
|
11
|
+
const nodeSessions = sessions.filter((s) => s.nodeId === node.id);
|
|
12
|
+
const latestSession = nodeSessions.length > 0
|
|
13
|
+
? nodeSessions.reduce((latest, s) => s.id > latest.id ? s : latest)
|
|
14
|
+
: null;
|
|
15
|
+
const overlay = overlayMap.get(node.logicalId);
|
|
16
|
+
const effectiveStartupStatus = latestSession?.status === "running"
|
|
17
|
+
? (overlay?.startupStatus ?? latestSession.startupStatus ?? null)
|
|
18
|
+
: null;
|
|
19
|
+
// Track pods
|
|
20
|
+
if (node.podId) {
|
|
21
|
+
if (!podNodes.has(node.podId))
|
|
22
|
+
podNodes.set(node.podId, []);
|
|
23
|
+
podNodes.get(node.podId).push(node.id);
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
id: node.id,
|
|
27
|
+
type: "rigNode",
|
|
28
|
+
position: { x: 0, y: index * VERTICAL_SPACING },
|
|
29
|
+
parentId: node.podId ? `pod-${node.podId}` : undefined,
|
|
30
|
+
data: {
|
|
31
|
+
logicalId: node.logicalId,
|
|
32
|
+
podLabel: node.podId ? (podLabelById.get(node.podId) ?? null) : null,
|
|
33
|
+
podNamespace: node.podId ? (podNamespaceById.get(node.podId) ?? null) : null,
|
|
34
|
+
rigId: node.rigId,
|
|
35
|
+
role: node.role,
|
|
36
|
+
runtime: node.runtime,
|
|
37
|
+
model: node.model,
|
|
38
|
+
status: latestSession ? latestSession.status : null,
|
|
39
|
+
binding: node.binding,
|
|
40
|
+
nodeKind: node.runtime === "terminal" ? "infrastructure" : "agent",
|
|
41
|
+
startupStatus: effectiveStartupStatus,
|
|
42
|
+
canonicalSessionName: overlay?.canonicalSessionName ?? latestSession?.sessionName ?? null,
|
|
43
|
+
podId: node.podId ?? null,
|
|
44
|
+
restoreOutcome: overlay?.restoreOutcome ?? "n-a",
|
|
45
|
+
resumeToken: latestSession?.resumeToken ?? null,
|
|
46
|
+
resolvedSpecName: node.resolvedSpecName ?? null,
|
|
47
|
+
profile: node.profile ?? null,
|
|
48
|
+
edgeCount: rigEdges.filter((e) => e.sourceId === node.id || e.targetId === node.id).length,
|
|
49
|
+
contextUsedPercentage: overlay?.contextUsedPercentage ?? null,
|
|
50
|
+
contextFresh: overlay?.contextFresh ?? false,
|
|
51
|
+
contextAvailability: overlay?.contextAvailability ?? "unknown",
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
// Create pod group nodes
|
|
56
|
+
const groupNodes = [];
|
|
57
|
+
for (const [podId] of podNodes) {
|
|
58
|
+
groupNodes.push({
|
|
59
|
+
id: `pod-${podId}`,
|
|
60
|
+
type: "podGroup",
|
|
61
|
+
position: { x: 0, y: 0 },
|
|
62
|
+
data: {
|
|
63
|
+
logicalId: podNamespaceById.get(podId) ?? podId,
|
|
64
|
+
podLabel: podLabelById.get(podId) ?? podId,
|
|
65
|
+
podNamespace: podNamespaceById.get(podId) ?? podId,
|
|
66
|
+
rigId: input.rig.id,
|
|
67
|
+
role: null,
|
|
68
|
+
runtime: null,
|
|
69
|
+
model: null,
|
|
70
|
+
status: null,
|
|
71
|
+
binding: null,
|
|
72
|
+
nodeKind: "agent",
|
|
73
|
+
startupStatus: null,
|
|
74
|
+
canonicalSessionName: null,
|
|
75
|
+
podId,
|
|
76
|
+
restoreOutcome: "n-a",
|
|
77
|
+
resumeToken: null,
|
|
78
|
+
resolvedSpecName: null,
|
|
79
|
+
profile: null,
|
|
80
|
+
edgeCount: 0,
|
|
81
|
+
contextUsedPercentage: null,
|
|
82
|
+
contextFresh: false,
|
|
83
|
+
contextAvailability: "unknown",
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
const edges = rigEdges.map((edge) => ({
|
|
88
|
+
id: edge.id,
|
|
89
|
+
source: edge.sourceId,
|
|
90
|
+
target: edge.targetId,
|
|
91
|
+
label: edge.kind,
|
|
92
|
+
}));
|
|
93
|
+
return { nodes: [...groupNodes, ...nodes], edges };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=graph-projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-projection.js","sourceRoot":"","sources":["../../src/domain/graph-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type ExecDep = (cmd: string, args: string[]) => Promise<{
|
|
2
|
+
stdout: string;
|
|
3
|
+
exitCode: number;
|
|
4
|
+
}>;
|
|
5
|
+
export interface SearchResult {
|
|
6
|
+
backend: "rg" | "grep" | "none";
|
|
7
|
+
excerpts: string[];
|
|
8
|
+
insufficient: boolean;
|
|
9
|
+
noTranscriptDir?: boolean;
|
|
10
|
+
error?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ChatSearchResult {
|
|
13
|
+
sender: string;
|
|
14
|
+
body: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
}
|
|
17
|
+
interface HistoryQueryOpts {
|
|
18
|
+
transcriptsRoot: string;
|
|
19
|
+
exec: ExecDep;
|
|
20
|
+
chatSearchFn?: (rigId: string, pattern: string) => ChatSearchResult[];
|
|
21
|
+
}
|
|
22
|
+
export declare function extractKeywords(question: string): string[];
|
|
23
|
+
export declare class HistoryQuery {
|
|
24
|
+
private readonly transcriptsRoot;
|
|
25
|
+
private readonly exec;
|
|
26
|
+
private readonly chatSearchFn?;
|
|
27
|
+
constructor(opts: HistoryQueryOpts);
|
|
28
|
+
search(rigName: string, question: string): Promise<SearchResult>;
|
|
29
|
+
private parseExcerpts;
|
|
30
|
+
searchChat(rigId: string, question: string): ChatSearchResult[];
|
|
31
|
+
private getLogFiles;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=history-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-query.d.ts","sourceRoot":"","sources":["../../src/domain/history-query.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAErG,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,gBAAgB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;CACvE;AAuBD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB1D;AAYD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAyD;gBAE3E,IAAI,EAAE,gBAAgB;IAM5B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAyCtE,OAAO,CAAC,aAAa;IASrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAQ/D,OAAO,CAAC,WAAW;CASpB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { existsSync, readdirSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
const STOP_WORDS = new Set([
|
|
4
|
+
"the", "is", "was", "are", "were", "been", "being",
|
|
5
|
+
"have", "has", "had", "having",
|
|
6
|
+
"does", "did", "doing",
|
|
7
|
+
"will", "would", "shall", "should",
|
|
8
|
+
"may", "might", "must", "can", "could",
|
|
9
|
+
"and", "but", "for", "nor", "not", "yet", "also",
|
|
10
|
+
"this", "that", "these", "those",
|
|
11
|
+
"what", "which", "who", "whom", "whose",
|
|
12
|
+
"where", "when", "why", "how",
|
|
13
|
+
"all", "each", "every", "both", "few", "more", "most",
|
|
14
|
+
"other", "some", "such", "than", "too", "very",
|
|
15
|
+
"its", "his", "her", "our", "your", "their",
|
|
16
|
+
"with", "from", "into", "about", "between", "through",
|
|
17
|
+
"during", "before", "after", "above", "below",
|
|
18
|
+
]);
|
|
19
|
+
function escapeRegex(s) {
|
|
20
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
21
|
+
}
|
|
22
|
+
export function extractKeywords(question) {
|
|
23
|
+
const words = question.split(/\s+/).filter(Boolean);
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
const result = [];
|
|
26
|
+
for (const word of words) {
|
|
27
|
+
// Strip trailing punctuation for stop-word check, but keep original for escaping
|
|
28
|
+
const stripped = word.replace(/[?.!,;:]+$/, "");
|
|
29
|
+
if (stripped.length < 3)
|
|
30
|
+
continue;
|
|
31
|
+
if (STOP_WORDS.has(stripped.toLowerCase()))
|
|
32
|
+
continue;
|
|
33
|
+
const escaped = escapeRegex(word.replace(/[?.!,;:]+$/, ""));
|
|
34
|
+
if (seen.has(escaped))
|
|
35
|
+
continue;
|
|
36
|
+
seen.add(escaped);
|
|
37
|
+
result.push(escaped);
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
function stripAnsi(text) {
|
|
42
|
+
return text
|
|
43
|
+
.replace(/\x1b\[(\d*)C/g, (_, n) => " ".repeat(Math.max(1, Number(n || "1"))))
|
|
44
|
+
.replace(/\x1b\[(\d*)G/g, (_, n) => " ".repeat(Math.max(1, Number(n || "1"))))
|
|
45
|
+
.replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g, "")
|
|
46
|
+
.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, "")
|
|
47
|
+
.replace(/\x1b[@-_]/g, "")
|
|
48
|
+
.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g, "");
|
|
49
|
+
}
|
|
50
|
+
export class HistoryQuery {
|
|
51
|
+
transcriptsRoot;
|
|
52
|
+
exec;
|
|
53
|
+
chatSearchFn;
|
|
54
|
+
constructor(opts) {
|
|
55
|
+
this.transcriptsRoot = opts.transcriptsRoot;
|
|
56
|
+
this.exec = opts.exec;
|
|
57
|
+
this.chatSearchFn = opts.chatSearchFn;
|
|
58
|
+
}
|
|
59
|
+
async search(rigName, question) {
|
|
60
|
+
const rigDir = join(this.transcriptsRoot, rigName);
|
|
61
|
+
if (!existsSync(rigDir)) {
|
|
62
|
+
return { backend: "rg", excerpts: [], insufficient: true, noTranscriptDir: true };
|
|
63
|
+
}
|
|
64
|
+
const keywords = extractKeywords(question);
|
|
65
|
+
if (keywords.length === 0) {
|
|
66
|
+
return { backend: "none", excerpts: [], insufficient: true };
|
|
67
|
+
}
|
|
68
|
+
const pattern = keywords.join("|");
|
|
69
|
+
// Try rg first — use -e to avoid dash-led patterns being parsed as flags
|
|
70
|
+
const rgResult = await this.exec("rg", ["-i", "--no-filename", "-e", pattern, rigDir]);
|
|
71
|
+
if (rgResult.exitCode === 0 || rgResult.exitCode === 1) {
|
|
72
|
+
const excerpts = this.parseExcerpts(rgResult.stdout);
|
|
73
|
+
// exit 0 = matches found, exit 1 = no matches → insufficient
|
|
74
|
+
return { backend: "rg", excerpts, insufficient: excerpts.length === 0 };
|
|
75
|
+
}
|
|
76
|
+
// rg failed (exit code >= 2), fall back to grep
|
|
77
|
+
const logFiles = this.getLogFiles(rigDir);
|
|
78
|
+
if (logFiles.length === 0) {
|
|
79
|
+
return { backend: "grep", excerpts: [], insufficient: true };
|
|
80
|
+
}
|
|
81
|
+
// Use -e for grep too — prevents dash-led patterns from being parsed as flags
|
|
82
|
+
const grepResult = await this.exec("grep", ["-E", "-i", "-h", "-e", pattern, ...logFiles]);
|
|
83
|
+
if (grepResult.exitCode === 0 || grepResult.exitCode === 1) {
|
|
84
|
+
const excerpts = this.parseExcerpts(grepResult.stdout);
|
|
85
|
+
return { backend: "grep", excerpts, insufficient: excerpts.length === 0 };
|
|
86
|
+
}
|
|
87
|
+
// Both backends failed (exit code 2+) — honest error
|
|
88
|
+
return { backend: "none", excerpts: [], insufficient: true, error: "Search backends (rg, grep) both failed. Check that rg or grep is installed and the transcript directory is readable." };
|
|
89
|
+
}
|
|
90
|
+
parseExcerpts(stdout) {
|
|
91
|
+
if (!stdout.trim())
|
|
92
|
+
return [];
|
|
93
|
+
return stdout
|
|
94
|
+
.split("\n")
|
|
95
|
+
.filter((line) => line.trim() !== "")
|
|
96
|
+
.map((line) => stripAnsi(line).trim())
|
|
97
|
+
.filter((line) => line !== "");
|
|
98
|
+
}
|
|
99
|
+
searchChat(rigId, question) {
|
|
100
|
+
if (!this.chatSearchFn)
|
|
101
|
+
return [];
|
|
102
|
+
const keywords = extractKeywords(question);
|
|
103
|
+
if (keywords.length === 0)
|
|
104
|
+
return [];
|
|
105
|
+
const pattern = keywords.join("|");
|
|
106
|
+
return this.chatSearchFn(rigId, pattern);
|
|
107
|
+
}
|
|
108
|
+
getLogFiles(dir) {
|
|
109
|
+
try {
|
|
110
|
+
return readdirSync(dir)
|
|
111
|
+
.filter((f) => f.endsWith(".log"))
|
|
112
|
+
.map((f) => join(dir, f));
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return [];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=history-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-query.js","sourceRoot":"","sources":["../../src/domain/history-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { InstallPlanEntry } from "./install-planner.js";
|
|
2
|
+
import type { PolicyResult } from "./install-policy.js";
|
|
3
|
+
import type { RefinedInstallPlan } from "./conflict-detector.js";
|
|
4
|
+
import { InstallRepository, type JournalEntry } from "./install-repository.js";
|
|
5
|
+
export interface EngineFsOps {
|
|
6
|
+
readFile: (filePath: string) => string;
|
|
7
|
+
writeFile: (filePath: string, content: string) => void;
|
|
8
|
+
exists: (filePath: string) => boolean;
|
|
9
|
+
mkdirp: (dirPath: string) => void;
|
|
10
|
+
copyFile: (src: string, dest: string) => void;
|
|
11
|
+
deleteFile: (filePath: string) => void;
|
|
12
|
+
}
|
|
13
|
+
export interface InstallResult {
|
|
14
|
+
installId: string;
|
|
15
|
+
applied: JournalEntry[];
|
|
16
|
+
deferred: InstallPlanEntry[];
|
|
17
|
+
conflicts: InstallPlanEntry[];
|
|
18
|
+
}
|
|
19
|
+
export interface RollbackResult {
|
|
20
|
+
installId: string;
|
|
21
|
+
restored: string[];
|
|
22
|
+
deleted: string[];
|
|
23
|
+
}
|
|
24
|
+
export declare class InstallEngine {
|
|
25
|
+
private installRepo;
|
|
26
|
+
private fs;
|
|
27
|
+
constructor(installRepo: InstallRepository, fs: EngineFsOps);
|
|
28
|
+
apply(policyResult: PolicyResult, plan: RefinedInstallPlan, packageId: string, targetRoot: string, bootstrapId?: string): InstallResult;
|
|
29
|
+
rollback(installId: string): RollbackResult;
|
|
30
|
+
private rollbackEntries;
|
|
31
|
+
private applyGuidanceMerge;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=install-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-engine.d.ts","sourceRoot":"","sources":["../../src/domain/install-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AASD,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,EAAE,CAAc;gBAEZ,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE,WAAW;IAK3D,KAAK,CACH,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,aAAa;IA2EhB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAQ3C,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,kBAAkB;CA0B3B"}
|