@openrig/cli 0.1.12 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (856) hide show
  1. package/daemon/assets/openrig-activity-hook-relay.cjs +104 -0
  2. package/daemon/dist/adapters/claude-code-adapter.d.ts +24 -6
  3. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  4. package/daemon/dist/adapters/claude-code-adapter.js +221 -65
  5. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  6. package/daemon/dist/adapters/claude-resume.d.ts +5 -0
  7. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  8. package/daemon/dist/adapters/claude-resume.js +13 -0
  9. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  10. package/daemon/dist/adapters/codex-resume.d.ts +8 -1
  11. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  12. package/daemon/dist/adapters/codex-resume.js +74 -5
  13. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  14. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +9 -5
  15. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  16. package/daemon/dist/adapters/codex-runtime-adapter.js +255 -28
  17. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  18. package/daemon/dist/adapters/terminal-adapter.d.ts +2 -1
  19. package/daemon/dist/adapters/terminal-adapter.d.ts.map +1 -1
  20. package/daemon/dist/adapters/terminal-adapter.js +7 -1
  21. package/daemon/dist/adapters/terminal-adapter.js.map +1 -1
  22. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  23. package/daemon/dist/adapters/tmux.js +53 -5
  24. package/daemon/dist/adapters/tmux.js.map +1 -1
  25. package/daemon/dist/builtins/workflow-specs/basic-loop.yaml +76 -0
  26. package/daemon/dist/builtins/workflow-specs/conveyor.yaml +80 -0
  27. package/daemon/dist/db/migrations/021_seat_handover_observability.d.ts +3 -0
  28. package/daemon/dist/db/migrations/021_seat_handover_observability.d.ts.map +1 -0
  29. package/daemon/dist/db/migrations/021_seat_handover_observability.js +11 -0
  30. package/daemon/dist/db/migrations/021_seat_handover_observability.js.map +1 -0
  31. package/daemon/dist/db/migrations/022_node_codex_config_profile.d.ts +3 -0
  32. package/daemon/dist/db/migrations/022_node_codex_config_profile.d.ts.map +1 -0
  33. package/daemon/dist/db/migrations/022_node_codex_config_profile.js +7 -0
  34. package/daemon/dist/db/migrations/022_node_codex_config_profile.js.map +1 -0
  35. package/daemon/dist/db/migrations/023_stream_items.d.ts +16 -0
  36. package/daemon/dist/db/migrations/023_stream_items.d.ts.map +1 -0
  37. package/daemon/dist/db/migrations/023_stream_items.js +37 -0
  38. package/daemon/dist/db/migrations/023_stream_items.js.map +1 -0
  39. package/daemon/dist/db/migrations/024_queue_items.d.ts +19 -0
  40. package/daemon/dist/db/migrations/024_queue_items.d.ts.map +1 -0
  41. package/daemon/dist/db/migrations/024_queue_items.js +52 -0
  42. package/daemon/dist/db/migrations/024_queue_items.js.map +1 -0
  43. package/daemon/dist/db/migrations/025_queue_transitions.d.ts +13 -0
  44. package/daemon/dist/db/migrations/025_queue_transitions.d.ts.map +1 -0
  45. package/daemon/dist/db/migrations/025_queue_transitions.js +28 -0
  46. package/daemon/dist/db/migrations/025_queue_transitions.js.map +1 -0
  47. package/daemon/dist/db/migrations/026_inbox_entries.d.ts +14 -0
  48. package/daemon/dist/db/migrations/026_inbox_entries.d.ts.map +1 -0
  49. package/daemon/dist/db/migrations/026_inbox_entries.js +35 -0
  50. package/daemon/dist/db/migrations/026_inbox_entries.js.map +1 -0
  51. package/daemon/dist/db/migrations/027_outbox_entries.d.ts +12 -0
  52. package/daemon/dist/db/migrations/027_outbox_entries.d.ts.map +1 -0
  53. package/daemon/dist/db/migrations/027_outbox_entries.js +30 -0
  54. package/daemon/dist/db/migrations/027_outbox_entries.js.map +1 -0
  55. package/daemon/dist/db/migrations/028_project_classifications.d.ts +26 -0
  56. package/daemon/dist/db/migrations/028_project_classifications.d.ts.map +1 -0
  57. package/daemon/dist/db/migrations/028_project_classifications.js +44 -0
  58. package/daemon/dist/db/migrations/028_project_classifications.js.map +1 -0
  59. package/daemon/dist/db/migrations/029_classifier_leases.d.ts +22 -0
  60. package/daemon/dist/db/migrations/029_classifier_leases.d.ts.map +1 -0
  61. package/daemon/dist/db/migrations/029_classifier_leases.js +41 -0
  62. package/daemon/dist/db/migrations/029_classifier_leases.js.map +1 -0
  63. package/daemon/dist/db/migrations/030_views_custom.d.ts +15 -0
  64. package/daemon/dist/db/migrations/030_views_custom.d.ts.map +1 -0
  65. package/daemon/dist/db/migrations/030_views_custom.js +27 -0
  66. package/daemon/dist/db/migrations/030_views_custom.js.map +1 -0
  67. package/daemon/dist/db/migrations/031_watchdog_jobs.d.ts +34 -0
  68. package/daemon/dist/db/migrations/031_watchdog_jobs.d.ts.map +1 -0
  69. package/daemon/dist/db/migrations/031_watchdog_jobs.js +59 -0
  70. package/daemon/dist/db/migrations/031_watchdog_jobs.js.map +1 -0
  71. package/daemon/dist/db/migrations/032_watchdog_history.d.ts +28 -0
  72. package/daemon/dist/db/migrations/032_watchdog_history.d.ts.map +1 -0
  73. package/daemon/dist/db/migrations/032_watchdog_history.js +46 -0
  74. package/daemon/dist/db/migrations/032_watchdog_history.js.map +1 -0
  75. package/daemon/dist/db/migrations/033_workflow_specs.d.ts +30 -0
  76. package/daemon/dist/db/migrations/033_workflow_specs.d.ts.map +1 -0
  77. package/daemon/dist/db/migrations/033_workflow_specs.js +50 -0
  78. package/daemon/dist/db/migrations/033_workflow_specs.js.map +1 -0
  79. package/daemon/dist/db/migrations/034_workflow_instances.d.ts +42 -0
  80. package/daemon/dist/db/migrations/034_workflow_instances.d.ts.map +1 -0
  81. package/daemon/dist/db/migrations/034_workflow_instances.js +63 -0
  82. package/daemon/dist/db/migrations/034_workflow_instances.js.map +1 -0
  83. package/daemon/dist/db/migrations/035_workflow_step_trails.d.ts +29 -0
  84. package/daemon/dist/db/migrations/035_workflow_step_trails.d.ts.map +1 -0
  85. package/daemon/dist/db/migrations/035_workflow_step_trails.js +48 -0
  86. package/daemon/dist/db/migrations/035_workflow_step_trails.js.map +1 -0
  87. package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.d.ts +35 -0
  88. package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.d.ts.map +1 -0
  89. package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.js +43 -0
  90. package/daemon/dist/db/migrations/036_watchdog_policy_enum_extension.js.map +1 -0
  91. package/daemon/dist/db/migrations/037_mission_control_actions.d.ts +51 -0
  92. package/daemon/dist/db/migrations/037_mission_control_actions.d.ts.map +1 -0
  93. package/daemon/dist/db/migrations/037_mission_control_actions.js +74 -0
  94. package/daemon/dist/db/migrations/037_mission_control_actions.js.map +1 -0
  95. package/daemon/dist/db/migrations/038_workspace_primitive.d.ts +16 -0
  96. package/daemon/dist/db/migrations/038_workspace_primitive.d.ts.map +1 -0
  97. package/daemon/dist/db/migrations/038_workspace_primitive.js +20 -0
  98. package/daemon/dist/db/migrations/038_workspace_primitive.js.map +1 -0
  99. package/daemon/dist/db/migrations/039_queue_target_repo.d.ts +16 -0
  100. package/daemon/dist/db/migrations/039_queue_target_repo.d.ts.map +1 -0
  101. package/daemon/dist/db/migrations/039_queue_target_repo.js +21 -0
  102. package/daemon/dist/db/migrations/039_queue_target_repo.js.map +1 -0
  103. package/daemon/dist/domain/active-lens-store.d.ts +23 -0
  104. package/daemon/dist/domain/active-lens-store.d.ts.map +1 -0
  105. package/daemon/dist/domain/active-lens-store.js +87 -0
  106. package/daemon/dist/domain/active-lens-store.js.map +1 -0
  107. package/daemon/dist/domain/agent-activity-store.d.ts +42 -0
  108. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -0
  109. package/daemon/dist/domain/agent-activity-store.js +177 -0
  110. package/daemon/dist/domain/agent-activity-store.js.map +1 -0
  111. package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts +68 -0
  112. package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -0
  113. package/daemon/dist/domain/agent-images/agent-image-library-service.js +339 -0
  114. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -0
  115. package/daemon/dist/domain/agent-images/agent-image-types.d.ts +113 -0
  116. package/daemon/dist/domain/agent-images/agent-image-types.d.ts.map +1 -0
  117. package/daemon/dist/domain/agent-images/agent-image-types.js +24 -0
  118. package/daemon/dist/domain/agent-images/agent-image-types.js.map +1 -0
  119. package/daemon/dist/domain/agent-images/evidence-guard.d.ts +26 -0
  120. package/daemon/dist/domain/agent-images/evidence-guard.d.ts.map +1 -0
  121. package/daemon/dist/domain/agent-images/evidence-guard.js +185 -0
  122. package/daemon/dist/domain/agent-images/evidence-guard.js.map +1 -0
  123. package/daemon/dist/domain/agent-images/manifest-parser.d.ts +3 -0
  124. package/daemon/dist/domain/agent-images/manifest-parser.d.ts.map +1 -0
  125. package/daemon/dist/domain/agent-images/manifest-parser.js +114 -0
  126. package/daemon/dist/domain/agent-images/manifest-parser.js.map +1 -0
  127. package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts +28 -0
  128. package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +1 -0
  129. package/daemon/dist/domain/agent-images/resume-token-discovery.js +83 -0
  130. package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -0
  131. package/daemon/dist/domain/agent-images/snapshot-capturer.d.ts +36 -0
  132. package/daemon/dist/domain/agent-images/snapshot-capturer.d.ts.map +1 -0
  133. package/daemon/dist/domain/agent-images/snapshot-capturer.js +58 -0
  134. package/daemon/dist/domain/agent-images/snapshot-capturer.js.map +1 -0
  135. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  136. package/daemon/dist/domain/agent-manifest.js +3 -0
  137. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  138. package/daemon/dist/domain/agent-starter-resolver.d.ts +94 -0
  139. package/daemon/dist/domain/agent-starter-resolver.d.ts.map +1 -0
  140. package/daemon/dist/domain/agent-starter-resolver.js +198 -0
  141. package/daemon/dist/domain/agent-starter-resolver.js.map +1 -0
  142. package/daemon/dist/domain/classifier-lease-manager.d.ts +130 -0
  143. package/daemon/dist/domain/classifier-lease-manager.d.ts.map +1 -0
  144. package/daemon/dist/domain/classifier-lease-manager.js +285 -0
  145. package/daemon/dist/domain/classifier-lease-manager.js.map +1 -0
  146. package/daemon/dist/domain/conflict-detector.d.ts.map +1 -1
  147. package/daemon/dist/domain/conflict-detector.js +6 -3
  148. package/daemon/dist/domain/conflict-detector.js.map +1 -1
  149. package/daemon/dist/domain/context-monitor.d.ts +5 -4
  150. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  151. package/daemon/dist/domain/context-monitor.js +26 -11
  152. package/daemon/dist/domain/context-monitor.js.map +1 -1
  153. package/daemon/dist/domain/context-packs/bundle-assembler.d.ts +49 -0
  154. package/daemon/dist/domain/context-packs/bundle-assembler.d.ts.map +1 -0
  155. package/daemon/dist/domain/context-packs/bundle-assembler.js +81 -0
  156. package/daemon/dist/domain/context-packs/bundle-assembler.js.map +1 -0
  157. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts +41 -0
  158. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -0
  159. package/daemon/dist/domain/context-packs/context-pack-library-service.js +148 -0
  160. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -0
  161. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +64 -0
  162. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -0
  163. package/daemon/dist/domain/context-packs/context-pack-types.js +22 -0
  164. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -0
  165. package/daemon/dist/domain/context-packs/manifest-parser.d.ts +3 -0
  166. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -0
  167. package/daemon/dist/domain/context-packs/manifest-parser.js +74 -0
  168. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -0
  169. package/daemon/dist/domain/context-usage-store.d.ts +15 -2
  170. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  171. package/daemon/dist/domain/context-usage-store.js +157 -2
  172. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  173. package/daemon/dist/domain/files/file-write-service.d.ts +61 -0
  174. package/daemon/dist/domain/files/file-write-service.d.ts.map +1 -0
  175. package/daemon/dist/domain/files/file-write-service.js +180 -0
  176. package/daemon/dist/domain/files/file-write-service.js.map +1 -0
  177. package/daemon/dist/domain/files/path-safety.d.ts +47 -0
  178. package/daemon/dist/domain/files/path-safety.d.ts.map +1 -0
  179. package/daemon/dist/domain/files/path-safety.js +176 -0
  180. package/daemon/dist/domain/files/path-safety.js.map +1 -0
  181. package/daemon/dist/domain/graph-projection.d.ts +14 -1
  182. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  183. package/daemon/dist/domain/graph-projection.js +8 -0
  184. package/daemon/dist/domain/graph-projection.js.map +1 -1
  185. package/daemon/dist/domain/hot-potato-enforcer.d.ts +45 -0
  186. package/daemon/dist/domain/hot-potato-enforcer.d.ts.map +1 -0
  187. package/daemon/dist/domain/hot-potato-enforcer.js +94 -0
  188. package/daemon/dist/domain/hot-potato-enforcer.js.map +1 -0
  189. package/daemon/dist/domain/inbox-handler.d.ts +68 -0
  190. package/daemon/dist/domain/inbox-handler.d.ts.map +1 -0
  191. package/daemon/dist/domain/inbox-handler.js +177 -0
  192. package/daemon/dist/domain/inbox-handler.js.map +1 -0
  193. package/daemon/dist/domain/install-engine.d.ts.map +1 -1
  194. package/daemon/dist/domain/install-engine.js +22 -6
  195. package/daemon/dist/domain/install-engine.js.map +1 -1
  196. package/daemon/dist/domain/install-verifier.d.ts.map +1 -1
  197. package/daemon/dist/domain/install-verifier.js +10 -5
  198. package/daemon/dist/domain/install-verifier.js.map +1 -1
  199. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  200. package/daemon/dist/domain/managed-blocks.js +22 -3
  201. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  202. package/daemon/dist/domain/mission-control/audit-browse.d.ts +26 -0
  203. package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -0
  204. package/daemon/dist/domain/mission-control/audit-browse.js +101 -0
  205. package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -0
  206. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +51 -0
  207. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -0
  208. package/daemon/dist/domain/mission-control/mission-control-action-log.js +124 -0
  209. package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -0
  210. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +131 -0
  211. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -0
  212. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +232 -0
  213. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -0
  214. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +85 -0
  215. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -0
  216. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +265 -0
  217. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -0
  218. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +69 -0
  219. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -0
  220. package/daemon/dist/domain/mission-control/mission-control-write-contract.js +300 -0
  221. package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -0
  222. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +18 -0
  223. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -0
  224. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +48 -0
  225. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -0
  226. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +25 -0
  227. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -0
  228. package/daemon/dist/domain/mission-control/notification-adapter-types.js +7 -0
  229. package/daemon/dist/domain/mission-control/notification-adapter-types.js.map +1 -0
  230. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +27 -0
  231. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -0
  232. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +47 -0
  233. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -0
  234. package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts +53 -0
  235. package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts.map +1 -0
  236. package/daemon/dist/domain/mission-control/notification-dispatcher.js +181 -0
  237. package/daemon/dist/domain/mission-control/notification-dispatcher.js.map +1 -0
  238. package/daemon/dist/domain/native-resume-probe.d.ts +1 -1
  239. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  240. package/daemon/dist/domain/native-resume-probe.js +67 -0
  241. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  242. package/daemon/dist/domain/node-inventory.d.ts +29 -1
  243. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  244. package/daemon/dist/domain/node-inventory.js +184 -38
  245. package/daemon/dist/domain/node-inventory.js.map +1 -1
  246. package/daemon/dist/domain/node-launcher.d.ts +2 -0
  247. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  248. package/daemon/dist/domain/node-launcher.js +21 -7
  249. package/daemon/dist/domain/node-launcher.js.map +1 -1
  250. package/daemon/dist/domain/outbox-handler.d.ts +48 -0
  251. package/daemon/dist/domain/outbox-handler.d.ts.map +1 -0
  252. package/daemon/dist/domain/outbox-handler.js +106 -0
  253. package/daemon/dist/domain/outbox-handler.js.map +1 -0
  254. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts +64 -0
  255. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -0
  256. package/daemon/dist/domain/policies/artifact-pool-helpers.js +226 -0
  257. package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -0
  258. package/daemon/dist/domain/policies/artifact-pool-ready.d.ts +3 -0
  259. package/daemon/dist/domain/policies/artifact-pool-ready.d.ts.map +1 -0
  260. package/daemon/dist/domain/policies/artifact-pool-ready.js +41 -0
  261. package/daemon/dist/domain/policies/artifact-pool-ready.js.map +1 -0
  262. package/daemon/dist/domain/policies/edge-artifact-required.d.ts +3 -0
  263. package/daemon/dist/domain/policies/edge-artifact-required.d.ts.map +1 -0
  264. package/daemon/dist/domain/policies/edge-artifact-required.js +90 -0
  265. package/daemon/dist/domain/policies/edge-artifact-required.js.map +1 -0
  266. package/daemon/dist/domain/policies/periodic-reminder.d.ts +3 -0
  267. package/daemon/dist/domain/policies/periodic-reminder.d.ts.map +1 -0
  268. package/daemon/dist/domain/policies/periodic-reminder.js +30 -0
  269. package/daemon/dist/domain/policies/periodic-reminder.js.map +1 -0
  270. package/daemon/dist/domain/policies/types.d.ts +51 -0
  271. package/daemon/dist/domain/policies/types.d.ts.map +1 -0
  272. package/daemon/dist/domain/policies/types.js +9 -0
  273. package/daemon/dist/domain/policies/types.js.map +1 -0
  274. package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
  275. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -0
  276. package/daemon/dist/domain/policies/workflow-keepalive.js +123 -0
  277. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -0
  278. package/daemon/dist/domain/preview/preview-rate-limiter.d.ts +20 -0
  279. package/daemon/dist/domain/preview/preview-rate-limiter.d.ts.map +1 -0
  280. package/daemon/dist/domain/preview/preview-rate-limiter.js +46 -0
  281. package/daemon/dist/domain/preview/preview-rate-limiter.js.map +1 -0
  282. package/daemon/dist/domain/profile-resolver.d.ts +5 -0
  283. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  284. package/daemon/dist/domain/profile-resolver.js +62 -8
  285. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  286. package/daemon/dist/domain/progress/progress-indexer.d.ts +73 -0
  287. package/daemon/dist/domain/progress/progress-indexer.d.ts.map +1 -0
  288. package/daemon/dist/domain/progress/progress-indexer.js +210 -0
  289. package/daemon/dist/domain/progress/progress-indexer.js.map +1 -0
  290. package/daemon/dist/domain/project-classifier.d.ts +75 -0
  291. package/daemon/dist/domain/project-classifier.d.ts.map +1 -0
  292. package/daemon/dist/domain/project-classifier.js +132 -0
  293. package/daemon/dist/domain/project-classifier.js.map +1 -0
  294. package/daemon/dist/domain/projection-planner.d.ts +1 -0
  295. package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
  296. package/daemon/dist/domain/projection-planner.js +3 -0
  297. package/daemon/dist/domain/projection-planner.js.map +1 -1
  298. package/daemon/dist/domain/ps-projection.d.ts +31 -0
  299. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  300. package/daemon/dist/domain/ps-projection.js +38 -0
  301. package/daemon/dist/domain/ps-projection.js.map +1 -1
  302. package/daemon/dist/domain/queue-repository.d.ts +340 -0
  303. package/daemon/dist/domain/queue-repository.d.ts.map +1 -0
  304. package/daemon/dist/domain/queue-repository.js +744 -0
  305. package/daemon/dist/domain/queue-repository.js.map +1 -0
  306. package/daemon/dist/domain/queue-transition-log.d.ts +38 -0
  307. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -0
  308. package/daemon/dist/domain/queue-transition-log.js +52 -0
  309. package/daemon/dist/domain/queue-transition-log.js.map +1 -0
  310. package/daemon/dist/domain/rehydrate-eligibility.d.ts +16 -0
  311. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -0
  312. package/daemon/dist/domain/rehydrate-eligibility.js +43 -0
  313. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -0
  314. package/daemon/dist/domain/restore-check-service.d.ts +203 -0
  315. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -0
  316. package/daemon/dist/domain/restore-check-service.js +1060 -0
  317. package/daemon/dist/domain/restore-check-service.js.map +1 -0
  318. package/daemon/dist/domain/restore-orchestrator.d.ts +49 -3
  319. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  320. package/daemon/dist/domain/restore-orchestrator.js +464 -64
  321. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  322. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  323. package/daemon/dist/domain/rig-expansion-service.js +13 -0
  324. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  325. package/daemon/dist/domain/rig-repository.d.ts +31 -1
  326. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  327. package/daemon/dist/domain/rig-repository.js +104 -5
  328. package/daemon/dist/domain/rig-repository.js.map +1 -1
  329. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  330. package/daemon/dist/domain/rig-teardown.js +5 -0
  331. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  332. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  333. package/daemon/dist/domain/rigspec-codec.js +28 -0
  334. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  335. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  336. package/daemon/dist/domain/rigspec-exporter.js +2 -0
  337. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  338. package/daemon/dist/domain/rigspec-instantiator.d.ts +29 -0
  339. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  340. package/daemon/dist/domain/rigspec-instantiator.js +194 -2
  341. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  342. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  343. package/daemon/dist/domain/rigspec-schema.js +349 -0
  344. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  345. package/daemon/dist/domain/runtime-adapter.d.ts +38 -2
  346. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  347. package/daemon/dist/domain/runtime-adapter.js +5 -0
  348. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  349. package/daemon/dist/domain/seat-handover-planner.d.ts +84 -0
  350. package/daemon/dist/domain/seat-handover-planner.d.ts.map +1 -0
  351. package/daemon/dist/domain/seat-handover-planner.js +188 -0
  352. package/daemon/dist/domain/seat-handover-planner.js.map +1 -0
  353. package/daemon/dist/domain/seat-handover-service.d.ts +104 -0
  354. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -0
  355. package/daemon/dist/domain/seat-handover-service.js +343 -0
  356. package/daemon/dist/domain/seat-handover-service.js.map +1 -0
  357. package/daemon/dist/domain/seat-status-service.d.ts +50 -0
  358. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -0
  359. package/daemon/dist/domain/seat-status-service.js +66 -0
  360. package/daemon/dist/domain/seat-status-service.js.map +1 -0
  361. package/daemon/dist/domain/session-source-rebuild-resolver.d.ts +53 -0
  362. package/daemon/dist/domain/session-source-rebuild-resolver.d.ts.map +1 -0
  363. package/daemon/dist/domain/session-source-rebuild-resolver.js +59 -0
  364. package/daemon/dist/domain/session-source-rebuild-resolver.js.map +1 -0
  365. package/daemon/dist/domain/session-transport.d.ts +30 -0
  366. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  367. package/daemon/dist/domain/session-transport.js +322 -12
  368. package/daemon/dist/domain/session-transport.js.map +1 -1
  369. package/daemon/dist/domain/skill-discovery.d.ts +51 -0
  370. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -0
  371. package/daemon/dist/domain/skill-discovery.js +144 -0
  372. package/daemon/dist/domain/skill-discovery.js.map +1 -0
  373. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +182 -0
  374. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -0
  375. package/daemon/dist/domain/slices/slice-detail-projector.js +508 -0
  376. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -0
  377. package/daemon/dist/domain/slices/slice-indexer.d.ts +118 -0
  378. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -0
  379. package/daemon/dist/domain/slices/slice-indexer.js +503 -0
  380. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -0
  381. package/daemon/dist/domain/snapshot-repository.d.ts +18 -0
  382. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  383. package/daemon/dist/domain/snapshot-repository.js +77 -0
  384. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  385. package/daemon/dist/domain/spec-library-service.d.ts +17 -2
  386. package/daemon/dist/domain/spec-library-service.d.ts.map +1 -1
  387. package/daemon/dist/domain/spec-library-service.js +31 -1
  388. package/daemon/dist/domain/spec-library-service.js.map +1 -1
  389. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +81 -0
  390. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -0
  391. package/daemon/dist/domain/spec-library-workflow-scanner.js +171 -0
  392. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -0
  393. package/daemon/dist/domain/startup-orchestrator.d.ts +22 -3
  394. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  395. package/daemon/dist/domain/startup-orchestrator.js +31 -5
  396. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  397. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  398. package/daemon/dist/domain/startup-validation.js +57 -11
  399. package/daemon/dist/domain/startup-validation.js.map +1 -1
  400. package/daemon/dist/domain/steering/health-summary.d.ts +39 -0
  401. package/daemon/dist/domain/steering/health-summary.d.ts.map +1 -0
  402. package/daemon/dist/domain/steering/health-summary.js +100 -0
  403. package/daemon/dist/domain/steering/health-summary.js.map +1 -0
  404. package/daemon/dist/domain/steering/steering-composer.d.ts +102 -0
  405. package/daemon/dist/domain/steering/steering-composer.d.ts.map +1 -0
  406. package/daemon/dist/domain/steering/steering-composer.js +263 -0
  407. package/daemon/dist/domain/steering/steering-composer.js.map +1 -0
  408. package/daemon/dist/domain/stream-store.d.ts +56 -0
  409. package/daemon/dist/domain/stream-store.d.ts.map +1 -0
  410. package/daemon/dist/domain/stream-store.js +108 -0
  411. package/daemon/dist/domain/stream-store.js.map +1 -0
  412. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  413. package/daemon/dist/domain/transcript-capture.js +7 -4
  414. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  415. package/daemon/dist/domain/transcript-redaction.d.ts +13 -0
  416. package/daemon/dist/domain/transcript-redaction.d.ts.map +1 -0
  417. package/daemon/dist/domain/transcript-redaction.js +34 -0
  418. package/daemon/dist/domain/transcript-redaction.js.map +1 -0
  419. package/daemon/dist/domain/transcript-rotation.d.ts +29 -0
  420. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -0
  421. package/daemon/dist/domain/transcript-rotation.js +109 -0
  422. package/daemon/dist/domain/transcript-rotation.js.map +1 -0
  423. package/daemon/dist/domain/transcript-store.d.ts +15 -0
  424. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  425. package/daemon/dist/domain/transcript-store.js +64 -2
  426. package/daemon/dist/domain/transcript-store.js.map +1 -1
  427. package/daemon/dist/domain/types.d.ts +416 -4
  428. package/daemon/dist/domain/types.d.ts.map +1 -1
  429. package/daemon/dist/domain/types.js +8 -1
  430. package/daemon/dist/domain/types.js.map +1 -1
  431. package/daemon/dist/domain/user-settings/settings-store.d.ts +42 -0
  432. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -0
  433. package/daemon/dist/domain/user-settings/settings-store.js +364 -0
  434. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -0
  435. package/daemon/dist/domain/view-event-bridge.d.ts +12 -0
  436. package/daemon/dist/domain/view-event-bridge.d.ts.map +1 -0
  437. package/daemon/dist/domain/view-event-bridge.js +91 -0
  438. package/daemon/dist/domain/view-event-bridge.js.map +1 -0
  439. package/daemon/dist/domain/view-projector.d.ts +83 -0
  440. package/daemon/dist/domain/view-projector.d.ts.map +1 -0
  441. package/daemon/dist/domain/view-projector.js +296 -0
  442. package/daemon/dist/domain/view-projector.js.map +1 -0
  443. package/daemon/dist/domain/watchdog-history-log.d.ts +49 -0
  444. package/daemon/dist/domain/watchdog-history-log.d.ts.map +1 -0
  445. package/daemon/dist/domain/watchdog-history-log.js +67 -0
  446. package/daemon/dist/domain/watchdog-history-log.js.map +1 -0
  447. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +81 -0
  448. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -0
  449. package/daemon/dist/domain/watchdog-jobs-repository.js +164 -0
  450. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -0
  451. package/daemon/dist/domain/watchdog-policy-engine.d.ts +92 -0
  452. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -0
  453. package/daemon/dist/domain/watchdog-policy-engine.js +442 -0
  454. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -0
  455. package/daemon/dist/domain/watchdog-scheduler.d.ts +76 -0
  456. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -0
  457. package/daemon/dist/domain/watchdog-scheduler.js +112 -0
  458. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -0
  459. package/daemon/dist/domain/whoami-service.d.ts +29 -0
  460. package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
  461. package/daemon/dist/domain/whoami-service.js +68 -0
  462. package/daemon/dist/domain/whoami-service.js.map +1 -1
  463. package/daemon/dist/domain/workflow/slice-workflow-binding.d.ts +21 -0
  464. package/daemon/dist/domain/workflow/slice-workflow-binding.d.ts.map +1 -0
  465. package/daemon/dist/domain/workflow/slice-workflow-binding.js +103 -0
  466. package/daemon/dist/domain/workflow/slice-workflow-binding.js.map +1 -0
  467. package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts +81 -0
  468. package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -0
  469. package/daemon/dist/domain/workflow/slice-workflow-projection.js +127 -0
  470. package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -0
  471. package/daemon/dist/domain/workflow/starter-spec-loader.d.ts +51 -0
  472. package/daemon/dist/domain/workflow/starter-spec-loader.d.ts.map +1 -0
  473. package/daemon/dist/domain/workflow/starter-spec-loader.js +140 -0
  474. package/daemon/dist/domain/workflow/starter-spec-loader.js.map +1 -0
  475. package/daemon/dist/domain/workflow-instance-store.d.ts +46 -0
  476. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -0
  477. package/daemon/dist/domain/workflow-instance-store.js +116 -0
  478. package/daemon/dist/domain/workflow-instance-store.js.map +1 -0
  479. package/daemon/dist/domain/workflow-projector.d.ts +64 -0
  480. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -0
  481. package/daemon/dist/domain/workflow-projector.js +432 -0
  482. package/daemon/dist/domain/workflow-projector.js.map +1 -0
  483. package/daemon/dist/domain/workflow-runtime.d.ts +63 -0
  484. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -0
  485. package/daemon/dist/domain/workflow-runtime.js +150 -0
  486. package/daemon/dist/domain/workflow-runtime.js.map +1 -0
  487. package/daemon/dist/domain/workflow-spec-cache.d.ts +42 -0
  488. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -0
  489. package/daemon/dist/domain/workflow-spec-cache.js +218 -0
  490. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -0
  491. package/daemon/dist/domain/workflow-step-trail-log.d.ts +27 -0
  492. package/daemon/dist/domain/workflow-step-trail-log.d.ts.map +1 -0
  493. package/daemon/dist/domain/workflow-step-trail-log.js +73 -0
  494. package/daemon/dist/domain/workflow-step-trail-log.js.map +1 -0
  495. package/daemon/dist/domain/workflow-types.d.ts +108 -0
  496. package/daemon/dist/domain/workflow-types.d.ts.map +1 -0
  497. package/daemon/dist/domain/workflow-types.js +11 -0
  498. package/daemon/dist/domain/workflow-types.js.map +1 -0
  499. package/daemon/dist/domain/workflow-validator.d.ts +31 -0
  500. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -0
  501. package/daemon/dist/domain/workflow-validator.js +115 -0
  502. package/daemon/dist/domain/workflow-validator.js.map +1 -0
  503. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +6 -0
  504. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -0
  505. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +207 -0
  506. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -0
  507. package/daemon/dist/domain/workspace/frontmatter-validator.d.ts +40 -0
  508. package/daemon/dist/domain/workspace/frontmatter-validator.d.ts.map +1 -0
  509. package/daemon/dist/domain/workspace/frontmatter-validator.js +185 -0
  510. package/daemon/dist/domain/workspace/frontmatter-validator.js.map +1 -0
  511. package/daemon/dist/domain/workspace/workspace-resolver.d.ts +25 -0
  512. package/daemon/dist/domain/workspace/workspace-resolver.d.ts.map +1 -0
  513. package/daemon/dist/domain/workspace/workspace-resolver.js +86 -0
  514. package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -0
  515. package/daemon/dist/index.d.ts.map +1 -1
  516. package/daemon/dist/index.js +30 -2
  517. package/daemon/dist/index.js.map +1 -1
  518. package/daemon/dist/middleware/auth-bearer-token.d.ts +49 -0
  519. package/daemon/dist/middleware/auth-bearer-token.d.ts.map +1 -0
  520. package/daemon/dist/middleware/auth-bearer-token.js +135 -0
  521. package/daemon/dist/middleware/auth-bearer-token.js.map +1 -0
  522. package/daemon/dist/openrig-compat.d.ts +1 -1
  523. package/daemon/dist/openrig-compat.d.ts.map +1 -1
  524. package/daemon/dist/openrig-compat.js +6 -4
  525. package/daemon/dist/openrig-compat.js.map +1 -1
  526. package/daemon/dist/routes/activity.d.ts +3 -0
  527. package/daemon/dist/routes/activity.d.ts.map +1 -0
  528. package/daemon/dist/routes/activity.js +47 -0
  529. package/daemon/dist/routes/activity.js.map +1 -0
  530. package/daemon/dist/routes/agent-images.d.ts +8 -0
  531. package/daemon/dist/routes/agent-images.d.ts.map +1 -0
  532. package/daemon/dist/routes/agent-images.js +253 -0
  533. package/daemon/dist/routes/agent-images.js.map +1 -0
  534. package/daemon/dist/routes/config.d.ts +3 -0
  535. package/daemon/dist/routes/config.d.ts.map +1 -0
  536. package/daemon/dist/routes/config.js +109 -0
  537. package/daemon/dist/routes/config.js.map +1 -0
  538. package/daemon/dist/routes/context-packs.d.ts +3 -0
  539. package/daemon/dist/routes/context-packs.d.ts.map +1 -0
  540. package/daemon/dist/routes/context-packs.js +129 -0
  541. package/daemon/dist/routes/context-packs.js.map +1 -0
  542. package/daemon/dist/routes/files.d.ts +17 -0
  543. package/daemon/dist/routes/files.d.ts.map +1 -0
  544. package/daemon/dist/routes/files.js +262 -0
  545. package/daemon/dist/routes/files.js.map +1 -0
  546. package/daemon/dist/routes/health-summary.d.ts +9 -0
  547. package/daemon/dist/routes/health-summary.d.ts.map +1 -0
  548. package/daemon/dist/routes/health-summary.js +33 -0
  549. package/daemon/dist/routes/health-summary.js.map +1 -0
  550. package/daemon/dist/routes/mission-control.d.ts +37 -0
  551. package/daemon/dist/routes/mission-control.d.ts.map +1 -0
  552. package/daemon/dist/routes/mission-control.js +283 -0
  553. package/daemon/dist/routes/mission-control.js.map +1 -0
  554. package/daemon/dist/routes/progress.d.ts +7 -0
  555. package/daemon/dist/routes/progress.d.ts.map +1 -0
  556. package/daemon/dist/routes/progress.js +33 -0
  557. package/daemon/dist/routes/progress.js.map +1 -0
  558. package/daemon/dist/routes/projects.d.ts +12 -0
  559. package/daemon/dist/routes/projects.d.ts.map +1 -0
  560. package/daemon/dist/routes/projects.js +178 -0
  561. package/daemon/dist/routes/projects.js.map +1 -0
  562. package/daemon/dist/routes/queue.d.ts +10 -0
  563. package/daemon/dist/routes/queue.d.ts.map +1 -0
  564. package/daemon/dist/routes/queue.js +425 -0
  565. package/daemon/dist/routes/queue.js.map +1 -0
  566. package/daemon/dist/routes/restore-check.d.ts +3 -0
  567. package/daemon/dist/routes/restore-check.d.ts.map +1 -0
  568. package/daemon/dist/routes/restore-check.js +200 -0
  569. package/daemon/dist/routes/restore-check.js.map +1 -0
  570. package/daemon/dist/routes/rigs.d.ts +3 -0
  571. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  572. package/daemon/dist/routes/rigs.js +131 -9
  573. package/daemon/dist/routes/rigs.js.map +1 -1
  574. package/daemon/dist/routes/rigspec.js +6 -3
  575. package/daemon/dist/routes/rigspec.js.map +1 -1
  576. package/daemon/dist/routes/seat.d.ts +3 -0
  577. package/daemon/dist/routes/seat.d.ts.map +1 -0
  578. package/daemon/dist/routes/seat.js +69 -0
  579. package/daemon/dist/routes/seat.js.map +1 -0
  580. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  581. package/daemon/dist/routes/sessions.js +144 -4
  582. package/daemon/dist/routes/sessions.js.map +1 -1
  583. package/daemon/dist/routes/slices.d.ts +9 -0
  584. package/daemon/dist/routes/slices.d.ts.map +1 -0
  585. package/daemon/dist/routes/slices.js +192 -0
  586. package/daemon/dist/routes/slices.js.map +1 -0
  587. package/daemon/dist/routes/snapshots.js +66 -29
  588. package/daemon/dist/routes/snapshots.js.map +1 -1
  589. package/daemon/dist/routes/spec-library.d.ts.map +1 -1
  590. package/daemon/dist/routes/spec-library.js +72 -5
  591. package/daemon/dist/routes/spec-library.js.map +1 -1
  592. package/daemon/dist/routes/steering.d.ts +7 -0
  593. package/daemon/dist/routes/steering.d.ts.map +1 -0
  594. package/daemon/dist/routes/steering.js +27 -0
  595. package/daemon/dist/routes/steering.js.map +1 -0
  596. package/daemon/dist/routes/stream.d.ts +9 -0
  597. package/daemon/dist/routes/stream.d.ts.map +1 -0
  598. package/daemon/dist/routes/stream.js +119 -0
  599. package/daemon/dist/routes/stream.js.map +1 -0
  600. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  601. package/daemon/dist/routes/transcripts.js +38 -0
  602. package/daemon/dist/routes/transcripts.js.map +1 -1
  603. package/daemon/dist/routes/transport.d.ts.map +1 -1
  604. package/daemon/dist/routes/transport.js +21 -0
  605. package/daemon/dist/routes/transport.js.map +1 -1
  606. package/daemon/dist/routes/up.d.ts.map +1 -1
  607. package/daemon/dist/routes/up.js +43 -4
  608. package/daemon/dist/routes/up.js.map +1 -1
  609. package/daemon/dist/routes/views.d.ts +13 -0
  610. package/daemon/dist/routes/views.d.ts.map +1 -0
  611. package/daemon/dist/routes/views.js +120 -0
  612. package/daemon/dist/routes/views.js.map +1 -0
  613. package/daemon/dist/routes/watchdog.d.ts +18 -0
  614. package/daemon/dist/routes/watchdog.d.ts.map +1 -0
  615. package/daemon/dist/routes/watchdog.js +148 -0
  616. package/daemon/dist/routes/watchdog.js.map +1 -0
  617. package/daemon/dist/routes/whoami.d.ts.map +1 -1
  618. package/daemon/dist/routes/whoami.js +6 -1
  619. package/daemon/dist/routes/whoami.js.map +1 -1
  620. package/daemon/dist/routes/workflow.d.ts +20 -0
  621. package/daemon/dist/routes/workflow.d.ts.map +1 -0
  622. package/daemon/dist/routes/workflow.js +227 -0
  623. package/daemon/dist/routes/workflow.js.map +1 -0
  624. package/daemon/dist/routes/workspace.d.ts +3 -0
  625. package/daemon/dist/routes/workspace.d.ts.map +1 -0
  626. package/daemon/dist/routes/workspace.js +53 -0
  627. package/daemon/dist/routes/workspace.js.map +1 -0
  628. package/daemon/dist/server.d.ts +81 -0
  629. package/daemon/dist/server.d.ts.map +1 -1
  630. package/daemon/dist/server.js +85 -1
  631. package/daemon/dist/server.js.map +1 -1
  632. package/daemon/dist/startup.d.ts +9 -0
  633. package/daemon/dist/startup.d.ts.map +1 -1
  634. package/daemon/dist/startup.js +585 -8
  635. package/daemon/dist/startup.js.map +1 -1
  636. package/daemon/docs/reference/agent-spec.md +19 -12
  637. package/daemon/docs/reference/agent-startup-guide.md +11 -11
  638. package/daemon/docs/reference/project-workspace.md +102 -0
  639. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +2 -2
  640. package/daemon/specs/agents/apps/vault-specialist/guidance/role.md +0 -1
  641. package/daemon/specs/agents/conveyor/builder/agent.yaml +35 -0
  642. package/daemon/specs/agents/conveyor/builder/guidance/role.md +31 -0
  643. package/daemon/specs/agents/conveyor/builder/startup/context.md +9 -0
  644. package/daemon/specs/agents/conveyor/lead/agent.yaml +35 -0
  645. package/daemon/specs/agents/conveyor/lead/guidance/role.md +34 -0
  646. package/daemon/specs/agents/conveyor/lead/startup/context.md +15 -0
  647. package/daemon/specs/agents/conveyor/planner/agent.yaml +35 -0
  648. package/daemon/specs/agents/conveyor/planner/guidance/role.md +29 -0
  649. package/daemon/specs/agents/conveyor/planner/startup/context.md +12 -0
  650. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +35 -0
  651. package/daemon/specs/agents/conveyor/reviewer/guidance/role.md +29 -0
  652. package/daemon/specs/agents/conveyor/reviewer/startup/context.md +10 -0
  653. package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
  654. package/daemon/specs/agents/development/implementer/agent.yaml +2 -2
  655. package/daemon/specs/agents/development/implementer/guidance/role.md +0 -1
  656. package/daemon/specs/agents/development/qa/agent.yaml +1 -1
  657. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +2 -2
  658. package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +2 -3
  659. package/daemon/specs/agents/product-management/pm/agent.yaml +4 -0
  660. package/daemon/specs/agents/research/analyst/agent.yaml +1 -1
  661. package/daemon/specs/agents/research/synthesizer/agent.yaml +1 -1
  662. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
  663. package/daemon/specs/agents/shared/agent.yaml +17 -2
  664. package/daemon/specs/agents/shared/runtime/claude-mcp.fragment.json +12 -0
  665. package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +16 -0
  666. package/daemon/specs/agents/shared/runtime/codex-config.fragment.toml +5 -0
  667. package/daemon/specs/agents/shared/skills/claude-compact-in-place/SKILL.md +100 -0
  668. package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +110 -0
  669. package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +69 -1
  670. package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +153 -0
  671. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +3 -0
  672. package/daemon/specs/agents/shared/skills/rig-architect/SKILL.md +11 -1
  673. package/daemon/specs/rigs/launch/conveyor/CULTURE.md +34 -0
  674. package/daemon/specs/rigs/launch/conveyor/README.md +33 -0
  675. package/daemon/specs/rigs/launch/conveyor/rig.yaml +72 -0
  676. package/daemon/specs/rigs/preview/product-team/CULTURE.md +2 -2
  677. package/daemon/specs/rigs/preview/product-team/rig.yaml +3 -4
  678. package/dist/bin-wrapper.js +0 -0
  679. package/dist/commands/agent-image.d.ts +4 -0
  680. package/dist/commands/agent-image.d.ts.map +1 -0
  681. package/dist/commands/agent-image.js +352 -0
  682. package/dist/commands/agent-image.js.map +1 -0
  683. package/dist/commands/capture.d.ts +7 -1
  684. package/dist/commands/capture.d.ts.map +1 -1
  685. package/dist/commands/capture.js +59 -1
  686. package/dist/commands/capture.js.map +1 -1
  687. package/dist/commands/compact-plan.d.ts +9 -0
  688. package/dist/commands/compact-plan.d.ts.map +1 -0
  689. package/dist/commands/compact-plan.js +354 -0
  690. package/dist/commands/compact-plan.js.map +1 -0
  691. package/dist/commands/config-init-workspace.d.ts +35 -0
  692. package/dist/commands/config-init-workspace.d.ts.map +1 -0
  693. package/dist/commands/config-init-workspace.js +300 -0
  694. package/dist/commands/config-init-workspace.js.map +1 -0
  695. package/dist/commands/config.d.ts.map +1 -1
  696. package/dist/commands/config.js +78 -18
  697. package/dist/commands/config.js.map +1 -1
  698. package/dist/commands/context-pack.d.ts +4 -0
  699. package/dist/commands/context-pack.d.ts.map +1 -0
  700. package/dist/commands/context-pack.js +357 -0
  701. package/dist/commands/context-pack.js.map +1 -0
  702. package/dist/commands/context.d.ts +9 -0
  703. package/dist/commands/context.d.ts.map +1 -0
  704. package/dist/commands/context.js +220 -0
  705. package/dist/commands/context.js.map +1 -0
  706. package/dist/commands/daemon.d.ts.map +1 -1
  707. package/dist/commands/daemon.js +8 -0
  708. package/dist/commands/daemon.js.map +1 -1
  709. package/dist/commands/expand.d.ts.map +1 -1
  710. package/dist/commands/expand.js +15 -4
  711. package/dist/commands/expand.js.map +1 -1
  712. package/dist/commands/heartbeat.d.ts +99 -0
  713. package/dist/commands/heartbeat.d.ts.map +1 -0
  714. package/dist/commands/heartbeat.js +393 -0
  715. package/dist/commands/heartbeat.js.map +1 -0
  716. package/dist/commands/import.d.ts.map +1 -1
  717. package/dist/commands/import.js +7 -2
  718. package/dist/commands/import.js.map +1 -1
  719. package/dist/commands/project.d.ts +14 -0
  720. package/dist/commands/project.d.ts.map +1 -0
  721. package/dist/commands/project.js +157 -0
  722. package/dist/commands/project.js.map +1 -0
  723. package/dist/commands/ps.d.ts +20 -3
  724. package/dist/commands/ps.d.ts.map +1 -1
  725. package/dist/commands/ps.js +614 -33
  726. package/dist/commands/ps.js.map +1 -1
  727. package/dist/commands/queue.d.ts +16 -0
  728. package/dist/commands/queue.d.ts.map +1 -0
  729. package/dist/commands/queue.js +410 -0
  730. package/dist/commands/queue.js.map +1 -0
  731. package/dist/commands/restore-check.d.ts +9 -0
  732. package/dist/commands/restore-check.d.ts.map +1 -0
  733. package/dist/commands/restore-check.js +234 -0
  734. package/dist/commands/restore-check.js.map +1 -0
  735. package/dist/commands/restore-packet.d.ts +9 -0
  736. package/dist/commands/restore-packet.d.ts.map +1 -0
  737. package/dist/commands/restore-packet.js +383 -0
  738. package/dist/commands/restore-packet.js.map +1 -0
  739. package/dist/commands/restore.d.ts.map +1 -1
  740. package/dist/commands/restore.js +44 -1
  741. package/dist/commands/restore.js.map +1 -1
  742. package/dist/commands/seat.d.ts +5 -0
  743. package/dist/commands/seat.d.ts.map +1 -0
  744. package/dist/commands/seat.js +170 -0
  745. package/dist/commands/seat.js.map +1 -0
  746. package/dist/commands/send.d.ts +19 -1
  747. package/dist/commands/send.d.ts.map +1 -1
  748. package/dist/commands/send.js +116 -5
  749. package/dist/commands/send.js.map +1 -1
  750. package/dist/commands/setup.js +3 -3
  751. package/dist/commands/setup.js.map +1 -1
  752. package/dist/commands/specs.d.ts +4 -2
  753. package/dist/commands/specs.d.ts.map +1 -1
  754. package/dist/commands/specs.js +111 -24
  755. package/dist/commands/specs.js.map +1 -1
  756. package/dist/commands/stream.d.ts +12 -0
  757. package/dist/commands/stream.d.ts.map +1 -0
  758. package/dist/commands/stream.js +111 -0
  759. package/dist/commands/stream.js.map +1 -0
  760. package/dist/commands/up.d.ts.map +1 -1
  761. package/dist/commands/up.js +79 -5
  762. package/dist/commands/up.js.map +1 -1
  763. package/dist/commands/view.d.ts +12 -0
  764. package/dist/commands/view.d.ts.map +1 -0
  765. package/dist/commands/view.js +82 -0
  766. package/dist/commands/view.js.map +1 -0
  767. package/dist/commands/watchdog.d.ts +15 -0
  768. package/dist/commands/watchdog.d.ts.map +1 -0
  769. package/dist/commands/watchdog.js +120 -0
  770. package/dist/commands/watchdog.js.map +1 -0
  771. package/dist/commands/whoami.d.ts +8 -1
  772. package/dist/commands/whoami.d.ts.map +1 -1
  773. package/dist/commands/whoami.js +69 -5
  774. package/dist/commands/whoami.js.map +1 -1
  775. package/dist/commands/workflow.d.ts +17 -0
  776. package/dist/commands/workflow.d.ts.map +1 -0
  777. package/dist/commands/workflow.js +175 -0
  778. package/dist/commands/workflow.js.map +1 -0
  779. package/dist/commands/workspace.d.ts +6 -0
  780. package/dist/commands/workspace.d.ts.map +1 -0
  781. package/dist/commands/workspace.js +83 -0
  782. package/dist/commands/workspace.js.map +1 -0
  783. package/dist/config-store.d.ts +73 -1
  784. package/dist/config-store.d.ts.map +1 -1
  785. package/dist/config-store.js +314 -42
  786. package/dist/config-store.js.map +1 -1
  787. package/dist/cross-host-cli-helpers.d.ts +12 -0
  788. package/dist/cross-host-cli-helpers.d.ts.map +1 -0
  789. package/dist/cross-host-cli-helpers.js +48 -0
  790. package/dist/cross-host-cli-helpers.js.map +1 -0
  791. package/dist/cross-host-executor.d.ts +84 -0
  792. package/dist/cross-host-executor.d.ts.map +1 -0
  793. package/dist/cross-host-executor.js +138 -0
  794. package/dist/cross-host-executor.js.map +1 -0
  795. package/dist/daemon-lifecycle.d.ts +22 -0
  796. package/dist/daemon-lifecycle.d.ts.map +1 -1
  797. package/dist/daemon-lifecycle.js +41 -0
  798. package/dist/daemon-lifecycle.js.map +1 -1
  799. package/dist/host-registry.d.ts +50 -0
  800. package/dist/host-registry.d.ts.map +1 -0
  801. package/dist/host-registry.js +116 -0
  802. package/dist/host-registry.js.map +1 -0
  803. package/dist/index.d.ts +24 -0
  804. package/dist/index.d.ts.map +1 -1
  805. package/dist/index.js +30 -0
  806. package/dist/index.js.map +1 -1
  807. package/dist/mcp-server.d.ts.map +1 -1
  808. package/dist/mcp-server.js +22 -2
  809. package/dist/mcp-server.js.map +1 -1
  810. package/dist/openrig-compat.d.ts +1 -1
  811. package/dist/openrig-compat.d.ts.map +1 -1
  812. package/dist/openrig-compat.js +6 -4
  813. package/dist/openrig-compat.js.map +1 -1
  814. package/dist/restore-packet/claude-transcript-parser.d.ts +12 -0
  815. package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -0
  816. package/dist/restore-packet/claude-transcript-parser.js +221 -0
  817. package/dist/restore-packet/claude-transcript-parser.js.map +1 -0
  818. package/dist/restore-packet/codex-jsonl-parser.d.ts +11 -0
  819. package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -0
  820. package/dist/restore-packet/codex-jsonl-parser.js +159 -0
  821. package/dist/restore-packet/codex-jsonl-parser.js.map +1 -0
  822. package/dist/restore-packet/omitted-records.d.ts +60 -0
  823. package/dist/restore-packet/omitted-records.d.ts.map +1 -0
  824. package/dist/restore-packet/omitted-records.js +116 -0
  825. package/dist/restore-packet/omitted-records.js.map +1 -0
  826. package/dist/restore-packet/packet-writer.d.ts +59 -0
  827. package/dist/restore-packet/packet-writer.d.ts.map +1 -0
  828. package/dist/restore-packet/packet-writer.js +224 -0
  829. package/dist/restore-packet/packet-writer.js.map +1 -0
  830. package/dist/restore-packet/redaction.d.ts +30 -0
  831. package/dist/restore-packet/redaction.d.ts.map +1 -0
  832. package/dist/restore-packet/redaction.js +71 -0
  833. package/dist/restore-packet/redaction.js.map +1 -0
  834. package/dist/restore-packet/runtime-detect.d.ts +19 -0
  835. package/dist/restore-packet/runtime-detect.d.ts.map +1 -0
  836. package/dist/restore-packet/runtime-detect.js +81 -0
  837. package/dist/restore-packet/runtime-detect.js.map +1 -0
  838. package/dist/restore-packet/schema-validator.d.ts +13 -0
  839. package/dist/restore-packet/schema-validator.d.ts.map +1 -0
  840. package/dist/restore-packet/schema-validator.js +245 -0
  841. package/dist/restore-packet/schema-validator.js.map +1 -0
  842. package/dist/restore-packet/types.d.ts +76 -0
  843. package/dist/restore-packet/types.d.ts.map +1 -0
  844. package/dist/restore-packet/types.js +15 -0
  845. package/dist/restore-packet/types.js.map +1 -0
  846. package/dist/schemas/restore-summary.schema.json +98 -0
  847. package/package.json +10 -3
  848. package/scripts/check-abi.mjs +123 -0
  849. package/ui/dist/assets/index-BDHU1JUK.js +412 -0
  850. package/ui/dist/assets/index-DXTyJSqu.css +1 -0
  851. package/ui/dist/graphics/operator-climber-monochrome.png +0 -0
  852. package/ui/dist/index.html +3 -2
  853. package/daemon/specs/agents/shared/skills/mental-model-ha/SKILL.md +0 -953
  854. package/ui/dist/assets/index-B09doO8H.js +0 -139
  855. package/ui/dist/assets/index-Ccd-jwRN.js +0 -225
  856. package/ui/dist/assets/index-DlMH-REm.css +0 -1
@@ -0,0 +1,232 @@
1
+ // PL-005 Phase A: per-rig CLI capability cache + fleet roll-up.
2
+ //
3
+ // Implements the 4 sub-clauses of PRD § Runtime/Source Drift Acceptance:
4
+ // 1. Per-field availability check on `rig ps --fields <field>`.
5
+ // 2. Per-rig CLI capability honesty (each rig surfaces its own capabilities).
6
+ // 3. Once-per-session-per-rig logging — degradation logs ONCE per (rig, field),
7
+ // not per render.
8
+ // 4. "Rigs running stale CLI" indicator surfaced in fleet view meta.
9
+ //
10
+ // At v0 the daemon owns its own DB-bound topology + queue surfaces and
11
+ // can synthesize a fleet roll-up from PL-004 Phase A queue_items + the
12
+ // rig registry. The implementation supports an optional `psShellOut`
13
+ // hook for future direct CLI shelling; default keeps the fleet roll-up
14
+ // in-process so tests are deterministic.
15
+ /**
16
+ * Fields the operator-friendly fleet view tries to present. When a rig
17
+ * does not surface one of these fields, the per-row drift indicator is
18
+ * set + the per-(rig,field) "logged once" event is emitted.
19
+ *
20
+ * `recoveryGuidance` is intentionally listed even though it is not in
21
+ * the 0.2.0 CLI allow-list (audit row 5 yellow). This is the canonical
22
+ * cross-CLI-version drift case: the spec assumes some future CLI
23
+ * surfaces this; the read-layer surfaces "field unavailable on this
24
+ * rig's daemon version" honestly today.
25
+ */
26
+ export const MISSION_CONTROL_DESIRED_FIELDS = [
27
+ "agentActivity",
28
+ "recoveryGuidance",
29
+ ];
30
+ /**
31
+ * Daemon-side mirror of the CLI's `rig ps --nodes --fields ...`
32
+ * node-level allow-list. Sourced from
33
+ * `packages/cli/src/commands/ps.ts:79-96` (ALLOWED_NODE_FIELDS).
34
+ * The CLI does not export this set, so the daemon mirrors it here at
35
+ * the workspace version (Phase A v0 ships at OpenRig 0.2.0). Future
36
+ * graduation can replace this mirror with a live CLI introspection
37
+ * shell-out per rig; v1 single-host topology makes that overhead
38
+ * unnecessary.
39
+ *
40
+ * To compute drift: any field in MISSION_CONTROL_DESIRED_FIELDS that
41
+ * is NOT in this set is "missing on this rig's CLI version" — the
42
+ * production probe surfaces it as drift.
43
+ */
44
+ export const LOCAL_CLI_NODE_FIELDS_AT_0_2_0 = new Set([
45
+ "rigId",
46
+ "rigName",
47
+ "logicalId",
48
+ "podId",
49
+ "podNamespace",
50
+ "canonicalSessionName",
51
+ "nodeKind",
52
+ "runtime",
53
+ "sessionStatus",
54
+ "startupStatus",
55
+ "restoreOutcome",
56
+ "lifecycleState",
57
+ "tmuxAttachCommand",
58
+ "resumeCommand",
59
+ "latestError",
60
+ "agentActivity",
61
+ ]);
62
+ /**
63
+ * Local CLI version label embedded at workspace build time. Mission
64
+ * Control reports this label in the drift indicator alongside per-rig
65
+ * field availability. Hardcoded at v0.2.0 (the workspace shipping
66
+ * version); a future graduation can read it from package.json or a
67
+ * build-time constant.
68
+ */
69
+ export const LOCAL_CLI_VERSION_LABEL = "0.2.0";
70
+ /**
71
+ * Production probe factory (R1 fix per guard PL-005 Phase A review).
72
+ * Returns a probeRig function that compares MISSION_CONTROL_DESIRED_FIELDS
73
+ * against the daemon-mirrored LOCAL_CLI_NODE_FIELDS_AT_0_2_0 set and
74
+ * reports any missing fields as drift. Per-rig honesty (sub-clause 2):
75
+ * each rig is probed individually; in v1 single-host topology all rigs
76
+ * share the same local CLI, so they all report the same drift result,
77
+ * which is the honest outcome for the audit-row-5 case.
78
+ *
79
+ * For test scaffolding (or a future per-rig shell-out probe), callers
80
+ * can override probeRig in the constructor; this factory is the v1
81
+ * production default and is wired into createDaemon's startup so the
82
+ * `/api/mission-control/cli-capabilities` route reports drift honestly
83
+ * out of the box.
84
+ */
85
+ export function makeLocalCliCapabilityProbe(opts) {
86
+ const versionLabel = opts?.versionLabel ?? LOCAL_CLI_VERSION_LABEL;
87
+ const knownFields = opts?.knownNodeFields ?? LOCAL_CLI_NODE_FIELDS_AT_0_2_0;
88
+ return async (_rigName) => {
89
+ const unsupportedFields = [];
90
+ for (const desired of MISSION_CONTROL_DESIRED_FIELDS) {
91
+ if (!knownFields.has(desired)) {
92
+ unsupportedFields.push(desired);
93
+ }
94
+ }
95
+ return { cliVersionLabel: versionLabel, unsupportedFields };
96
+ };
97
+ }
98
+ export class MissionControlFleetCliCapability {
99
+ db;
100
+ eventBus;
101
+ rigRepo;
102
+ probeRig;
103
+ now;
104
+ /** Per-(rig, field) once-per-session log set. Cleared on daemon restart. */
105
+ loggedDriftKeys = new Set();
106
+ constructor(deps) {
107
+ this.db = deps.db;
108
+ this.eventBus = deps.eventBus;
109
+ this.rigRepo = deps.rigRepo;
110
+ this.probeRig =
111
+ deps.probeRig ??
112
+ (async () => ({ cliVersionLabel: "unknown", unsupportedFields: [] }));
113
+ this.now = deps.now ?? (() => new Date());
114
+ }
115
+ async rollupFleet() {
116
+ const rigs = this.rigRepo.listRigs();
117
+ const rows = [];
118
+ const allDegradedFields = new Set();
119
+ let staleCliCount = 0;
120
+ for (const rig of rigs) {
121
+ let probe;
122
+ try {
123
+ probe = await this.probeRig(rig.name);
124
+ }
125
+ catch {
126
+ probe = { cliVersionLabel: "unknown", unsupportedFields: [...MISSION_CONTROL_DESIRED_FIELDS] };
127
+ }
128
+ const driftDetected = probe.unsupportedFields.length > 0;
129
+ if (driftDetected)
130
+ staleCliCount++;
131
+ for (const f of probe.unsupportedFields) {
132
+ allDegradedFields.add(f);
133
+ this.maybeLogDriftOnce(rig.name, f);
134
+ }
135
+ const queueState = this.summarizeRigQueue(rig.name);
136
+ rows.push({
137
+ rigName: rig.name,
138
+ activityState: queueState.activityState,
139
+ lifecycleState: queueState.lifecycleState,
140
+ attentionReason: queueState.attentionReason,
141
+ lastUpdate: queueState.lastUpdate,
142
+ cliVersionLabel: probe.cliVersionLabel,
143
+ cliDriftDetected: driftDetected,
144
+ });
145
+ }
146
+ return {
147
+ rows,
148
+ staleCliCount,
149
+ degradedFields: Array.from(allDegradedFields),
150
+ // v0 reads from the daemon-internal rig registry + queue_items;
151
+ // future versions can shell out to `rig ps --nodes --json` and
152
+ // set sourceFallback to "daemon-internal" when the CLI is
153
+ // unavailable.
154
+ sourceFallback: "daemon-internal-projection",
155
+ };
156
+ }
157
+ /**
158
+ * Per-(rig, field) once-per-session-per-rig log per PRD sub-clause 3.
159
+ * Daemon restart clears the set so logging fires again on first
160
+ * post-restart observation.
161
+ */
162
+ maybeLogDriftOnce(rigName, missingField) {
163
+ const key = `${rigName}::${missingField}`;
164
+ if (this.loggedDriftKeys.has(key))
165
+ return;
166
+ this.loggedDriftKeys.add(key);
167
+ const observedAt = this.now().toISOString();
168
+ this.eventBus.emit({
169
+ type: "mission_control.cli_drift_detected",
170
+ rigName,
171
+ missingField,
172
+ observedAt,
173
+ });
174
+ }
175
+ /**
176
+ * Summarize a rig's queue state for the fleet view. Synthesized
177
+ * from PL-004 Phase A queue_items via a single SQL aggregation:
178
+ * - active: any in-progress qitem
179
+ * - blocked: any blocked qitem (no in-progress)
180
+ * - attention: only pending qitems older than 1h
181
+ * - idle: no active queue activity
182
+ * - degraded: any failed/denied/canceled qitem in last 24h
183
+ */
184
+ summarizeRigQueue(rigName) {
185
+ const ownedSessions = this.db
186
+ .prepare(`SELECT destination_session, state, ts_updated, blocked_on
187
+ FROM queue_items
188
+ WHERE destination_session LIKE ?
189
+ OR source_session LIKE ?
190
+ ORDER BY ts_updated DESC LIMIT 100`)
191
+ .all(`%@${rigName}`, `%@${rigName}`);
192
+ if (ownedSessions.length === 0) {
193
+ return {
194
+ activityState: "idle",
195
+ lifecycleState: null,
196
+ attentionReason: null,
197
+ lastUpdate: this.now().toISOString(),
198
+ };
199
+ }
200
+ const lastUpdate = ownedSessions[0].ts_updated;
201
+ const hasInProgress = ownedSessions.some((q) => q.state === "in-progress");
202
+ const hasBlocked = ownedSessions.some((q) => q.state === "blocked");
203
+ const hasFailed = ownedSessions.some((q) => q.state === "failed" || q.state === "denied" || q.state === "canceled");
204
+ let activityState = "idle";
205
+ let attentionReason = null;
206
+ if (hasInProgress) {
207
+ activityState = "active";
208
+ }
209
+ else if (hasBlocked) {
210
+ activityState = "blocked";
211
+ const blockedRow = ownedSessions.find((q) => q.state === "blocked");
212
+ attentionReason = blockedRow?.blocked_on
213
+ ? `blocked-on: ${blockedRow.blocked_on}`
214
+ : "blocked";
215
+ }
216
+ else if (hasFailed) {
217
+ activityState = "degraded";
218
+ attentionReason = "recent failure / denial / cancel in queue";
219
+ }
220
+ return {
221
+ activityState,
222
+ lifecycleState: ownedSessions[0].state,
223
+ attentionReason,
224
+ lastUpdate,
225
+ };
226
+ }
227
+ /** Test/observability helper: clear the once-per-session log set. */
228
+ resetDriftLogForTest() {
229
+ this.loggedDriftKeys.clear();
230
+ }
231
+ }
232
+ //# sourceMappingURL=mission-control-fleet-cli-capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mission-control-fleet-cli-capability.js","sourceRoot":"","sources":["../../../src/domain/mission-control/mission-control-fleet-cli-capability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { QueueRepository } from "../queue-repository.js";
3
+ import type { ViewProjector } from "../view-projector.js";
4
+ import type { StreamStore } from "../stream-store.js";
5
+ import type { MissionControlFleetCliCapability } from "./mission-control-fleet-cli-capability.js";
6
+ export declare const MISSION_CONTROL_VIEWS: readonly ["my-queue", "human-gate", "fleet", "active-work", "recent-ships", "recently-active", "recent-observations"];
7
+ export type MissionControlViewName = (typeof MISSION_CONTROL_VIEWS)[number];
8
+ /**
9
+ * The 9-field phone-friendly content model. Per PRD § Acceptance
10
+ * Criteria item 1, non-negotiable across all 7 views wherever
11
+ * row-shaped status is shown. UI may render compact; JSON preserves
12
+ * all 9 fields.
13
+ *
14
+ * 9 fields verbatim from PRD:
15
+ * 1. rig/mission name
16
+ * 2. current phase
17
+ * 3. active/idle/attention/blocked/degraded
18
+ * 4. next-action
19
+ * 5. pending-human-decision
20
+ * 6. read-cost (full / skim/approve / summary-only)
21
+ * 7. last-update timestamp
22
+ * 8. confidence/freshness
23
+ * 9. evidence link
24
+ */
25
+ export interface CompactStatusRow {
26
+ rigOrMissionName: string;
27
+ currentPhase: string | null;
28
+ state: "active" | "idle" | "attention" | "blocked" | "degraded";
29
+ nextAction: string | null;
30
+ pendingHumanDecision: string | null;
31
+ readCost: "full" | "skim/approve" | "summary-only" | null;
32
+ lastUpdate: string;
33
+ confidenceFreshness: string | null;
34
+ evidenceLink: string | null;
35
+ /** Carrier metadata (id used for verb actions). */
36
+ qitemId?: string | null;
37
+ rawSourceRef?: string | null;
38
+ /** Human-readable qitem context for phone decisions. */
39
+ qitemSummary?: string | null;
40
+ qitemBody?: string | null;
41
+ }
42
+ export interface MissionControlReadResult {
43
+ viewName: MissionControlViewName;
44
+ rows: CompactStatusRow[];
45
+ /**
46
+ * Per-view metadata. Includes "rigs running stale CLI" indicator on
47
+ * the fleet view (sub-clause 4 of graceful-degradation acceptance).
48
+ */
49
+ meta: {
50
+ rowCount: number;
51
+ rigsRunningStaleCli?: number;
52
+ degradedFields?: string[];
53
+ sourceFallback?: string;
54
+ };
55
+ }
56
+ interface ReadLayerDeps {
57
+ db: Database.Database;
58
+ queueRepo: QueueRepository;
59
+ viewProjector: ViewProjector;
60
+ streamStore?: StreamStore;
61
+ fleetCliCapability: MissionControlFleetCliCapability;
62
+ /** Operator's default human-seat session for `my-queue`. */
63
+ defaultOperatorSession?: string;
64
+ now?: () => Date;
65
+ }
66
+ export declare class MissionControlReadLayer {
67
+ private readonly queueRepo;
68
+ private readonly viewProjector;
69
+ private readonly streamStore;
70
+ private readonly fleetCliCapability;
71
+ private readonly defaultOperatorSession;
72
+ constructor(deps: ReadLayerDeps);
73
+ readView(viewName: MissionControlViewName, opts?: {
74
+ operatorSession?: string;
75
+ }): Promise<MissionControlReadResult>;
76
+ private readMyQueue;
77
+ private readHumanGate;
78
+ private readFleet;
79
+ private readActiveWork;
80
+ private readRecentShips;
81
+ private readRecentlyActive;
82
+ private readRecentObservations;
83
+ }
84
+ export {};
85
+ //# sourceMappingURL=mission-control-read-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mission-control-read-layer.d.ts","sourceRoot":"","sources":["../../../src/domain/mission-control/mission-control-read-layer.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,gCAAgC,EAAkB,MAAM,2CAA2C,CAAC;AAElH,eAAO,MAAM,qBAAqB,uHAQxB,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IAChE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,GAAG,IAAI,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB;;;OAGG;IACH,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,SAAS,EAAE,eAAe,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,kBAAkB,EAAE,gCAAgC,CAAC;IACrD,4DAA4D;IAC5D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAcD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmC;IACtE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;gBAEpC,IAAI,EAAE,aAAa;IAQzB,QAAQ,CACZ,QAAQ,EAAE,sBAAsB,EAChC,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,wBAAwB,CAAC;IAmBpC,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,aAAa;YAaP,SAAS;IAevB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,sBAAsB;CAgB/B"}
@@ -0,0 +1,265 @@
1
+ // PL-005 Phase A: Mission Control read layer.
2
+ //
3
+ // Maps the 7 Mission Control views to data sources:
4
+ // - my-queue → queue_items where destination_session = operator
5
+ // AND tier='human-gate'
6
+ // - human-gate → queue_items where tier='human-gate'
7
+ // - fleet → shell out to `rig ps --nodes --json` (graceful
8
+ // degradation per 4-sub-clause spec)
9
+ // - active-work → queue_items where state in (pending, in-progress,
10
+ // blocked) sorted by priority
11
+ // - recent-ships → queue_items where state in (done, handed-off)
12
+ // ORDER BY ts_updated DESC LIMIT 10
13
+ // - recently-active → PL-004 Phase B ViewProjector built-in view
14
+ // - recent-observations → stream_items table (Phase A daemon-backed source)
15
+ // with ~/.openrig/stream/<date>.jsonl as graceful
16
+ // degradation fallback
17
+ //
18
+ // Each row carries the 9-field phone-friendly content model (PRD § Acceptance
19
+ // Criteria item 1; non-negotiable across all 7 views regardless of UI density).
20
+ //
21
+ // Source-of-truth integration: PL-004 daemon-backed coordination services
22
+ // are the primary read path. Filesystem/CLI fallbacks are for graceful
23
+ // degradation only.
24
+ export const MISSION_CONTROL_VIEWS = [
25
+ "my-queue",
26
+ "human-gate",
27
+ "fleet",
28
+ "active-work",
29
+ "recent-ships",
30
+ "recently-active",
31
+ "recent-observations",
32
+ ];
33
+ const DEFAULT_OPERATOR_SESSION = "human-operator@kernel";
34
+ const RECENT_SHIPS_LIMIT = 10;
35
+ const ACTIVE_WORK_LIMIT = 50;
36
+ const RECENT_OBSERVATIONS_LIMIT = 50;
37
+ const PRIORITY_RANK = {
38
+ critical: 0,
39
+ high: 1,
40
+ routine: 2,
41
+ background: 3,
42
+ };
43
+ export class MissionControlReadLayer {
44
+ queueRepo;
45
+ viewProjector;
46
+ streamStore;
47
+ fleetCliCapability;
48
+ defaultOperatorSession;
49
+ constructor(deps) {
50
+ this.queueRepo = deps.queueRepo;
51
+ this.viewProjector = deps.viewProjector;
52
+ this.streamStore = deps.streamStore;
53
+ this.fleetCliCapability = deps.fleetCliCapability;
54
+ this.defaultOperatorSession = deps.defaultOperatorSession ?? DEFAULT_OPERATOR_SESSION;
55
+ }
56
+ async readView(viewName, opts) {
57
+ switch (viewName) {
58
+ case "my-queue":
59
+ return this.readMyQueue(opts?.operatorSession ?? this.defaultOperatorSession);
60
+ case "human-gate":
61
+ return this.readHumanGate();
62
+ case "fleet":
63
+ return this.readFleet();
64
+ case "active-work":
65
+ return this.readActiveWork();
66
+ case "recent-ships":
67
+ return this.readRecentShips();
68
+ case "recently-active":
69
+ return this.readRecentlyActive();
70
+ case "recent-observations":
71
+ return this.readRecentObservations();
72
+ }
73
+ }
74
+ readMyQueue(operatorSession) {
75
+ const items = this.queueRepo.list({
76
+ destinationSession: operatorSession,
77
+ state: ["pending", "in-progress", "blocked"],
78
+ limit: ACTIVE_WORK_LIMIT,
79
+ });
80
+ const humanGateOnly = items.filter((q) => q.tier === "human-gate");
81
+ return {
82
+ viewName: "my-queue",
83
+ rows: humanGateOnly.map((q) => qitemToRow(q, { defaultReadCost: "skim/approve" })),
84
+ meta: { rowCount: humanGateOnly.length },
85
+ };
86
+ }
87
+ readHumanGate() {
88
+ const items = this.queueRepo.list({
89
+ state: ["pending", "in-progress", "blocked"],
90
+ limit: ACTIVE_WORK_LIMIT,
91
+ });
92
+ const humanGateOnly = items.filter((q) => q.tier === "human-gate");
93
+ return {
94
+ viewName: "human-gate",
95
+ rows: humanGateOnly.map((q) => qitemToRow(q, { defaultReadCost: "skim/approve" })),
96
+ meta: { rowCount: humanGateOnly.length },
97
+ };
98
+ }
99
+ async readFleet() {
100
+ const fleet = await this.fleetCliCapability.rollupFleet();
101
+ const rows = fleet.rows.map((r) => fleetRowToCompactRow(r));
102
+ return {
103
+ viewName: "fleet",
104
+ rows,
105
+ meta: {
106
+ rowCount: rows.length,
107
+ rigsRunningStaleCli: fleet.staleCliCount,
108
+ degradedFields: fleet.degradedFields.length > 0 ? fleet.degradedFields : undefined,
109
+ sourceFallback: fleet.sourceFallback ?? undefined,
110
+ },
111
+ };
112
+ }
113
+ readActiveWork() {
114
+ const items = this.queueRepo.list({
115
+ state: ["pending", "in-progress", "blocked"],
116
+ limit: ACTIVE_WORK_LIMIT,
117
+ });
118
+ items.sort((a, b) => {
119
+ const ar = PRIORITY_RANK[a.priority] ?? 99;
120
+ const br = PRIORITY_RANK[b.priority] ?? 99;
121
+ if (ar !== br)
122
+ return ar - br;
123
+ return a.tsUpdated.localeCompare(b.tsUpdated);
124
+ });
125
+ return {
126
+ viewName: "active-work",
127
+ rows: items.map((q) => qitemToRow(q, { defaultReadCost: "full" })),
128
+ meta: { rowCount: items.length },
129
+ };
130
+ }
131
+ readRecentShips() {
132
+ const done = this.queueRepo.list({
133
+ state: ["done", "handed-off"],
134
+ limit: RECENT_SHIPS_LIMIT * 4,
135
+ });
136
+ done.sort((a, b) => b.tsUpdated.localeCompare(a.tsUpdated));
137
+ const top = done.slice(0, RECENT_SHIPS_LIMIT);
138
+ return {
139
+ viewName: "recent-ships",
140
+ rows: top.map((q) => qitemToRow(q, { defaultReadCost: "summary-only" })),
141
+ meta: { rowCount: top.length },
142
+ };
143
+ }
144
+ readRecentlyActive() {
145
+ // Delegates to PL-004 Phase B's built-in `recently-active` view.
146
+ const result = this.viewProjector.show("recently-active");
147
+ const rows = result.rows.map((row) => builtinViewRowToCompactRow("recently-active", row));
148
+ return {
149
+ viewName: "recently-active",
150
+ rows,
151
+ meta: { rowCount: rows.length },
152
+ };
153
+ }
154
+ readRecentObservations() {
155
+ if (!this.streamStore) {
156
+ return {
157
+ viewName: "recent-observations",
158
+ rows: [],
159
+ meta: { rowCount: 0, sourceFallback: "stream-store-not-wired" },
160
+ };
161
+ }
162
+ const items = this.streamStore.list({ limit: RECENT_OBSERVATIONS_LIMIT });
163
+ const rows = items.map((s) => streamItemToCompactRow(s));
164
+ return {
165
+ viewName: "recent-observations",
166
+ rows,
167
+ meta: { rowCount: rows.length },
168
+ };
169
+ }
170
+ }
171
+ function qitemToRow(q, opts) {
172
+ const state = qitemStateToCompactState(q.state);
173
+ const nextAction = q.state === "blocked" ? `unblock: ${q.blockedOn ?? "external-gate"}` : null;
174
+ const pendingHumanDecision = q.tier === "human-gate" ? `${q.priority} human-gate item` : null;
175
+ return {
176
+ rigOrMissionName: q.destinationSession,
177
+ currentPhase: q.tier ?? null,
178
+ state,
179
+ nextAction,
180
+ pendingHumanDecision,
181
+ readCost: opts.defaultReadCost,
182
+ lastUpdate: q.tsUpdated,
183
+ confidenceFreshness: q.priority,
184
+ evidenceLink: null,
185
+ qitemId: q.qitemId,
186
+ rawSourceRef: q.sourceSession,
187
+ qitemSummary: summarizeBody(q.body),
188
+ qitemBody: q.body,
189
+ };
190
+ }
191
+ function summarizeBody(body) {
192
+ const compact = body.replace(/\s+/g, " ").trim();
193
+ if (compact.length <= 120)
194
+ return compact;
195
+ return `${compact.slice(0, 117).trimEnd()}...`;
196
+ }
197
+ function qitemStateToCompactState(state) {
198
+ switch (state) {
199
+ case "in-progress":
200
+ return "active";
201
+ case "pending":
202
+ return "idle";
203
+ case "blocked":
204
+ return "blocked";
205
+ case "failed":
206
+ case "denied":
207
+ case "canceled":
208
+ return "degraded";
209
+ case "done":
210
+ case "handed-off":
211
+ return "idle";
212
+ }
213
+ }
214
+ function fleetRowToCompactRow(r) {
215
+ return {
216
+ rigOrMissionName: r.rigName,
217
+ currentPhase: r.lifecycleState ?? null,
218
+ state: r.activityState,
219
+ nextAction: r.attentionReason ?? null,
220
+ pendingHumanDecision: null,
221
+ readCost: "summary-only",
222
+ lastUpdate: r.lastUpdate,
223
+ confidenceFreshness: r.cliVersionLabel,
224
+ evidenceLink: null,
225
+ qitemId: null,
226
+ rawSourceRef: r.rigName,
227
+ };
228
+ }
229
+ function builtinViewRowToCompactRow(viewName, row) {
230
+ const get = (k) => {
231
+ const v = row[k];
232
+ if (v === undefined || v === null)
233
+ return null;
234
+ return String(v);
235
+ };
236
+ return {
237
+ rigOrMissionName: get("destination_session") ?? get("rig_name") ?? get("rigName") ?? viewName,
238
+ currentPhase: get("tier") ?? get("state") ?? null,
239
+ state: "idle",
240
+ nextAction: null,
241
+ pendingHumanDecision: null,
242
+ readCost: "summary-only",
243
+ lastUpdate: get("ts_updated") ?? get("ts_emitted") ?? new Date().toISOString(),
244
+ confidenceFreshness: get("priority") ?? null,
245
+ evidenceLink: null,
246
+ qitemId: get("qitem_id"),
247
+ rawSourceRef: get("source_session"),
248
+ };
249
+ }
250
+ function streamItemToCompactRow(s) {
251
+ return {
252
+ rigOrMissionName: s.sourceSession,
253
+ currentPhase: s.hintType ?? null,
254
+ state: s.hintUrgency === "critical" ? "attention" : "idle",
255
+ nextAction: s.hintDestination ?? null,
256
+ pendingHumanDecision: null,
257
+ readCost: "summary-only",
258
+ lastUpdate: s.tsEmitted,
259
+ confidenceFreshness: s.hintUrgency ?? null,
260
+ evidenceLink: null,
261
+ qitemId: null,
262
+ rawSourceRef: s.streamItemId,
263
+ };
264
+ }
265
+ //# sourceMappingURL=mission-control-read-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mission-control-read-layer.js","sourceRoot":"","sources":["../../../src/domain/mission-control/mission-control-read-layer.ts"],"names":[],"mappings":"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"}