@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,43 @@
1
+ /**
2
+ * Watchdog policy enum extension (PL-004 Phase D).
3
+ *
4
+ * DOCUMENTING NO-OP MIGRATION.
5
+ *
6
+ * Phase C implements the watchdog_jobs.policy enum at the application
7
+ * layer (in WatchdogJobsRepository.register() via the PHASE_C_POLICIES
8
+ * array + WORKFLOW_KEEPALIVE_DEFERRED_POLICY constant). The SQLite
9
+ * column itself is plain TEXT with no CHECK constraint, so extending
10
+ * the enum to include "workflow-keepalive" requires NO schema change.
11
+ *
12
+ * The actual enforcement extension lives in:
13
+ * packages/daemon/src/domain/watchdog-jobs-repository.ts
14
+ * - PHASE_C_POLICIES → renamed to PHASE_D_POLICIES (or extended)
15
+ * to include "workflow-keepalive"
16
+ * - WORKFLOW_KEEPALIVE_DEFERRED_POLICY rejection removed
17
+ *
18
+ * This migration exists for two reasons:
19
+ * 1. Audit trail: documents that Phase D extended the policy enum
20
+ * surface, even though no DDL was needed.
21
+ * 2. Migration sequence integrity: keeps Phase D's migration count
22
+ * visible in the daemon startup log alongside the three new
23
+ * workflow tables (033, 034, 035). Slice IMPL row 17 explicitly
24
+ * requires the extension migration land "cleanly without
25
+ * touching Phase C's existing migration files" — this no-op
26
+ * satisfies that constraint.
27
+ *
28
+ * Per slice IMPL § Write Set:
29
+ * "if the enforcement is application-layer in
30
+ * `watchdog-policy-engine.ts`, the migration is a no-op SQL but
31
+ * documents the policy enum intent."
32
+ */
33
+ export const watchdogPolicyEnumExtensionSchema = {
34
+ name: "036_watchdog_policy_enum_extension.sql",
35
+ sql: `
36
+ -- No DDL: Phase C policy enum is enforced at the application layer
37
+ -- via PHASE_D_POLICIES in watchdog-jobs-repository.ts. The
38
+ -- watchdog_jobs.policy column remains plain TEXT. This migration
39
+ -- exists as an audit-trail marker for the Phase D enum extension.
40
+ SELECT 1 WHERE 0;
41
+ `,
42
+ };
43
+ //# sourceMappingURL=036_watchdog_policy_enum_extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"036_watchdog_policy_enum_extension.js","sourceRoot":"","sources":["../../../src/db/migrations/036_watchdog_policy_enum_extension.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAc;IAC1D,IAAI,EAAE,wCAAwC;IAC9C,GAAG,EAAE;;;;;;GAMJ;CACF,CAAC"}
@@ -0,0 +1,51 @@
1
+ import type { Migration } from "../migrate.js";
2
+ /**
3
+ * Mission Control actions (PL-005 Phase A; daemon-backed action audit).
4
+ *
5
+ * Per PRD § Q5 + slice IMPL § Write Set: SQLite-canonical append-only
6
+ * audit log of every operator action through Mission Control. Records
7
+ * every invocation of the 7 Phase A verbs with before/after snapshots
8
+ * for forensic reconstruction.
9
+ *
10
+ * Append-only contract: writers only INSERT. UPDATE/DELETE are not
11
+ * exposed by MissionControlActionLog API; direct SQL UPDATE/DELETE
12
+ * would succeed at the DB level (SQLite has no view/role layer) but
13
+ * is a contract violation enforced at the domain-layer API boundary.
14
+ *
15
+ * Action verb enum (Phase A v1; 7 values):
16
+ * - approve — operator approved a human-gated item
17
+ * - deny — operator denied a human-gated item
18
+ * - route — operator routed an item to a different destination
19
+ * - annotate — operator added an annotation (annotation field required)
20
+ * - hold — operator held an item with a reason (reason required)
21
+ * - drop — operator dropped an item with a reason (reason required)
22
+ * - handoff — atomic 4-step (source-update + destination-create
23
+ * + opt-in best-effort notify + audit append)
24
+ *
25
+ * Columns:
26
+ * - action_id (ULID PK)
27
+ * - action_verb (TEXT, app-layer enum enforcement)
28
+ * - qitem_id (TEXT, FK to queue_items when applicable; nullable for
29
+ * observations / non-queue actions in future scope)
30
+ * - actor_session (TEXT NOT NULL) — operator session that fired the verb
31
+ * - acted_at (TEXT NOT NULL) — ISO timestamp
32
+ * - before_state_json (TEXT) — snapshot of qitem state pre-action
33
+ * - after_state_json (TEXT) — snapshot of qitem state post-action
34
+ * - reason (TEXT) — required for hold + drop
35
+ * - annotation (TEXT) — required for annotate
36
+ * - notify_attempted (INTEGER 0|1) — for handoff
37
+ * - notify_result (TEXT) — verified | sent-unverified | failed:<reason>
38
+ * - audit_notes_json (TEXT) — operator-supplied evidence map
39
+ *
40
+ * Indexes:
41
+ * - (acted_at DESC, action_verb) — recent-actions and per-verb scans
42
+ * - (qitem_id, acted_at DESC) — per-qitem audit trail
43
+ * - (actor_session, acted_at DESC) — per-operator audit
44
+ *
45
+ * Archive policy hooks: not implemented as automatic v1; the table is
46
+ * append-only and grows unbounded. Future archive can move rows older
47
+ * than N days into a sibling archive table OR export to filesystem.
48
+ * JSONL mirror is deferred unless a concrete durability need surfaces.
49
+ */
50
+ export declare const missionControlActionsSchema: Migration;
51
+ //# sourceMappingURL=037_mission_control_actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"037_mission_control_actions.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/037_mission_control_actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAwBzC,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Mission Control actions (PL-005 Phase A; daemon-backed action audit).
3
+ *
4
+ * Per PRD § Q5 + slice IMPL § Write Set: SQLite-canonical append-only
5
+ * audit log of every operator action through Mission Control. Records
6
+ * every invocation of the 7 Phase A verbs with before/after snapshots
7
+ * for forensic reconstruction.
8
+ *
9
+ * Append-only contract: writers only INSERT. UPDATE/DELETE are not
10
+ * exposed by MissionControlActionLog API; direct SQL UPDATE/DELETE
11
+ * would succeed at the DB level (SQLite has no view/role layer) but
12
+ * is a contract violation enforced at the domain-layer API boundary.
13
+ *
14
+ * Action verb enum (Phase A v1; 7 values):
15
+ * - approve — operator approved a human-gated item
16
+ * - deny — operator denied a human-gated item
17
+ * - route — operator routed an item to a different destination
18
+ * - annotate — operator added an annotation (annotation field required)
19
+ * - hold — operator held an item with a reason (reason required)
20
+ * - drop — operator dropped an item with a reason (reason required)
21
+ * - handoff — atomic 4-step (source-update + destination-create
22
+ * + opt-in best-effort notify + audit append)
23
+ *
24
+ * Columns:
25
+ * - action_id (ULID PK)
26
+ * - action_verb (TEXT, app-layer enum enforcement)
27
+ * - qitem_id (TEXT, FK to queue_items when applicable; nullable for
28
+ * observations / non-queue actions in future scope)
29
+ * - actor_session (TEXT NOT NULL) — operator session that fired the verb
30
+ * - acted_at (TEXT NOT NULL) — ISO timestamp
31
+ * - before_state_json (TEXT) — snapshot of qitem state pre-action
32
+ * - after_state_json (TEXT) — snapshot of qitem state post-action
33
+ * - reason (TEXT) — required for hold + drop
34
+ * - annotation (TEXT) — required for annotate
35
+ * - notify_attempted (INTEGER 0|1) — for handoff
36
+ * - notify_result (TEXT) — verified | sent-unverified | failed:<reason>
37
+ * - audit_notes_json (TEXT) — operator-supplied evidence map
38
+ *
39
+ * Indexes:
40
+ * - (acted_at DESC, action_verb) — recent-actions and per-verb scans
41
+ * - (qitem_id, acted_at DESC) — per-qitem audit trail
42
+ * - (actor_session, acted_at DESC) — per-operator audit
43
+ *
44
+ * Archive policy hooks: not implemented as automatic v1; the table is
45
+ * append-only and grows unbounded. Future archive can move rows older
46
+ * than N days into a sibling archive table OR export to filesystem.
47
+ * JSONL mirror is deferred unless a concrete durability need surfaces.
48
+ */
49
+ export const missionControlActionsSchema = {
50
+ name: "037_mission_control_actions.sql",
51
+ sql: `
52
+ CREATE TABLE IF NOT EXISTS mission_control_actions (
53
+ action_id TEXT PRIMARY KEY,
54
+ action_verb TEXT NOT NULL,
55
+ qitem_id TEXT REFERENCES queue_items(qitem_id),
56
+ actor_session TEXT NOT NULL,
57
+ acted_at TEXT NOT NULL,
58
+ before_state_json TEXT,
59
+ after_state_json TEXT,
60
+ reason TEXT,
61
+ annotation TEXT,
62
+ notify_attempted INTEGER NOT NULL DEFAULT 0,
63
+ notify_result TEXT,
64
+ audit_notes_json TEXT
65
+ );
66
+ CREATE INDEX IF NOT EXISTS idx_mc_actions_recent
67
+ ON mission_control_actions(acted_at DESC, action_verb);
68
+ CREATE INDEX IF NOT EXISTS idx_mc_actions_qitem
69
+ ON mission_control_actions(qitem_id, acted_at DESC);
70
+ CREATE INDEX IF NOT EXISTS idx_mc_actions_actor
71
+ ON mission_control_actions(actor_session, acted_at DESC);
72
+ `,
73
+ };
74
+ //# sourceMappingURL=037_mission_control_actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"037_mission_control_actions.js","sourceRoot":"","sources":["../../../src/db/migrations/037_mission_control_actions.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAc;IACpD,IAAI,EAAE,iCAAiC;IACvC,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;GAqBJ;CACF,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Migration } from "../migrate.js";
2
+ /**
3
+ * PL-007 Workspace Primitive v0 — rigs.workspace_json column.
4
+ *
5
+ * Adds `workspace_json TEXT` to the rigs table. Holds the typed
6
+ * RigSpec.workspace block as JSON when a rig declares one. Populated by
7
+ * RigRepository.setRigWorkspace at instantiate time. Whoami /
8
+ * node-inventory read this column to surface workspace fields alongside
9
+ * cwd. NULL for rigs without a workspace block.
10
+ *
11
+ * The companion queue_items.target_repo column ships in migration 039
12
+ * so test fixtures that exercise rigs without queue_items (and vice
13
+ * versa) can apply only the half they need.
14
+ */
15
+ export declare const workspacePrimitiveSchema: Migration;
16
+ //# sourceMappingURL=038_workspace_primitive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"038_workspace_primitive.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/038_workspace_primitive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAKtC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * PL-007 Workspace Primitive v0 — rigs.workspace_json column.
3
+ *
4
+ * Adds `workspace_json TEXT` to the rigs table. Holds the typed
5
+ * RigSpec.workspace block as JSON when a rig declares one. Populated by
6
+ * RigRepository.setRigWorkspace at instantiate time. Whoami /
7
+ * node-inventory read this column to surface workspace fields alongside
8
+ * cwd. NULL for rigs without a workspace block.
9
+ *
10
+ * The companion queue_items.target_repo column ships in migration 039
11
+ * so test fixtures that exercise rigs without queue_items (and vice
12
+ * versa) can apply only the half they need.
13
+ */
14
+ export const workspacePrimitiveSchema = {
15
+ name: "038_workspace_primitive.sql",
16
+ sql: `
17
+ ALTER TABLE rigs ADD COLUMN workspace_json TEXT;
18
+ `,
19
+ };
20
+ //# sourceMappingURL=038_workspace_primitive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"038_workspace_primitive.js","sourceRoot":"","sources":["../../../src/db/migrations/038_workspace_primitive.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAc;IACjD,IAAI,EAAE,6BAA6B;IACnC,GAAG,EAAE;;GAEJ;CACF,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Migration } from "../migrate.js";
2
+ /**
3
+ * PL-007 Workspace Primitive v0 — queue_items.target_repo column.
4
+ *
5
+ * Adds `target_repo TEXT` to the queue_items table. Carries the
6
+ * per-item typed repo scope when an operator passes
7
+ * `rigx queue create --target-repo <name>` etc. Validated at the
8
+ * route layer against the source rig's RigSpec.workspace.repos[].
9
+ * NULL when the qitem is unambiguous against the rig's default_repo
10
+ * or when no workspace is declared. Mission Control views surface
11
+ * the field for cross-rig handoff clarity.
12
+ *
13
+ * Companion to migration 038 which adds rigs.workspace_json.
14
+ */
15
+ export declare const queueTargetRepoSchema: Migration;
16
+ //# sourceMappingURL=039_queue_target_repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"039_queue_target_repo.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/039_queue_target_repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAMnC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * PL-007 Workspace Primitive v0 — queue_items.target_repo column.
3
+ *
4
+ * Adds `target_repo TEXT` to the queue_items table. Carries the
5
+ * per-item typed repo scope when an operator passes
6
+ * `rigx queue create --target-repo <name>` etc. Validated at the
7
+ * route layer against the source rig's RigSpec.workspace.repos[].
8
+ * NULL when the qitem is unambiguous against the rig's default_repo
9
+ * or when no workspace is declared. Mission Control views surface
10
+ * the field for cross-rig handoff clarity.
11
+ *
12
+ * Companion to migration 038 which adds rigs.workspace_json.
13
+ */
14
+ export const queueTargetRepoSchema = {
15
+ name: "039_queue_target_repo.sql",
16
+ sql: `
17
+ ALTER TABLE queue_items ADD COLUMN target_repo TEXT;
18
+ CREATE INDEX IF NOT EXISTS idx_queue_items_target_repo ON queue_items(target_repo);
19
+ `,
20
+ };
21
+ //# sourceMappingURL=039_queue_target_repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"039_queue_target_repo.js","sourceRoot":"","sources":["../../../src/db/migrations/039_queue_target_repo.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAc;IAC9C,IAAI,EAAE,2BAA2B;IACjC,GAAG,EAAE;;;GAGJ;CACF,CAAC"}
@@ -0,0 +1,23 @@
1
+ export interface ActiveLens {
2
+ specName: string;
3
+ specVersion: string;
4
+ /** ISO timestamp of the most recent activation; useful for
5
+ * diagnostics + UI staleness display. */
6
+ activatedAt: string;
7
+ }
8
+ export interface ActiveLensStoreOpts {
9
+ /** Absolute file path. Should fall under the daemon's OPENRIG_HOME so
10
+ * the lens stays isolated per host. */
11
+ filePath: string;
12
+ /** Test seam — defaults to () => new Date(). */
13
+ now?: () => Date;
14
+ }
15
+ export declare class ActiveLensStore {
16
+ private readonly filePath;
17
+ private readonly now;
18
+ constructor(opts: ActiveLensStoreOpts);
19
+ get(): ActiveLens | null;
20
+ set(specName: string, specVersion: string): ActiveLens;
21
+ clear(): void;
22
+ }
23
+ //# sourceMappingURL=active-lens-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-lens-store.d.ts","sourceRoot":"","sources":["../../src/domain/active-lens-store.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB;8CAC0C;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC;4CACwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,IAAI,EAAE,mBAAmB;IAKrC,GAAG,IAAI,UAAU,GAAG,IAAI;IAqBxB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU;IAuBtD,KAAK,IAAI,IAAI;CAOd"}
@@ -0,0 +1,87 @@
1
+ // Workflows in Spec Library + Activation Lens v0 — active lens persistence.
2
+ //
3
+ // PRD § Item 4: lens selection persists daemon-side across daemon
4
+ // restarts + browser refresh. The PRD bounce conditions explicitly
5
+ // reject ephemeral state.
6
+ //
7
+ // Implementation: a small JSON file under OPENRIG_HOME/active-workflow
8
+ // -lens.json. Same env-var-aware persistence pattern as UI Enhancement
9
+ // Pack v0's file-edit-audit JSONL — no new SQLite table, no new
10
+ // migration. The file is rewritten atomically on every set so concurrent
11
+ // daemons (rare at single-host MVP) don't tear the read.
12
+ //
13
+ // Single-active-lens invariant: setting a lens replaces any prior
14
+ // lens; clearing removes the file entirely. The store does NOT
15
+ // validate that the named workflow_spec actually exists in the
16
+ // workflow_specs cache — that's an upstream concern at the route
17
+ // layer, since the spec might be uncached temporarily during a
18
+ // workspace-surface reconciliation cycle and re-appear before the
19
+ // next read.
20
+ import * as fs from "node:fs";
21
+ import * as path from "node:path";
22
+ export class ActiveLensStore {
23
+ filePath;
24
+ now;
25
+ constructor(opts) {
26
+ this.filePath = opts.filePath;
27
+ this.now = opts.now ?? (() => new Date());
28
+ }
29
+ get() {
30
+ let raw;
31
+ try {
32
+ raw = fs.readFileSync(this.filePath, "utf-8");
33
+ }
34
+ catch {
35
+ return null;
36
+ }
37
+ try {
38
+ const parsed = JSON.parse(raw);
39
+ if (typeof parsed.specName !== "string" || typeof parsed.specVersion !== "string")
40
+ return null;
41
+ return {
42
+ specName: parsed.specName,
43
+ specVersion: parsed.specVersion,
44
+ activatedAt: typeof parsed.activatedAt === "string" ? parsed.activatedAt : this.now().toISOString(),
45
+ };
46
+ }
47
+ catch {
48
+ // Malformed file → treat as no lens. Operator can `rm` to recover.
49
+ return null;
50
+ }
51
+ }
52
+ set(specName, specVersion) {
53
+ const lens = {
54
+ specName,
55
+ specVersion,
56
+ activatedAt: this.now().toISOString(),
57
+ };
58
+ const dir = path.dirname(this.filePath);
59
+ fs.mkdirSync(dir, { recursive: true });
60
+ // Atomic-ish: write to temp + rename. v0 doesn't fsync (the lens
61
+ // is operator UX state, not an audit-record-keeping invariant —
62
+ // losing it across a hard crash is acceptable; the operator
63
+ // re-clicks Activate).
64
+ const tmp = `${this.filePath}.tmp-${process.pid}-${Math.random().toString(36).slice(2, 8)}`;
65
+ try {
66
+ fs.writeFileSync(tmp, JSON.stringify(lens));
67
+ fs.renameSync(tmp, this.filePath);
68
+ }
69
+ catch (err) {
70
+ try {
71
+ fs.unlinkSync(tmp);
72
+ }
73
+ catch { /* best-effort */ }
74
+ throw err;
75
+ }
76
+ return lens;
77
+ }
78
+ clear() {
79
+ try {
80
+ fs.unlinkSync(this.filePath);
81
+ }
82
+ catch {
83
+ // Already absent — no-op.
84
+ }
85
+ }
86
+ }
87
+ //# sourceMappingURL=active-lens-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-lens-store.js","sourceRoot":"","sources":["../../src/domain/active-lens-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { EventBus } from "./event-bus.js";
3
+ import type { AgentActivity, PersistedEvent } from "./types.js";
4
+ export interface HookActivityInput {
5
+ runtime: string | null;
6
+ sessionName?: string | null;
7
+ nodeId?: string | null;
8
+ hookEvent: string;
9
+ subtype?: string | null;
10
+ occurredAt?: string | null;
11
+ }
12
+ export type RecordHookActivityResult = {
13
+ ok: true;
14
+ activity: AgentActivity;
15
+ event: PersistedEvent;
16
+ } | {
17
+ ok: false;
18
+ code: "missing_session_identity" | "session_not_found";
19
+ error: string;
20
+ };
21
+ interface AgentActivityStoreDeps {
22
+ db: Database.Database;
23
+ eventBus: EventBus;
24
+ now?: () => Date;
25
+ freshnessMs?: number;
26
+ }
27
+ export declare class AgentActivityStore {
28
+ readonly db: Database.Database;
29
+ private readonly eventBus;
30
+ private readonly now;
31
+ private readonly freshnessMs;
32
+ constructor(deps: AgentActivityStoreDeps);
33
+ recordHookEvent(input: HookActivityInput): RecordHookActivityResult;
34
+ getLatestForNode(input: {
35
+ nodeId?: string | null;
36
+ sessionName?: string | null;
37
+ now?: Date;
38
+ }): AgentActivity | null;
39
+ private resolveSession;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=agent-activity-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-activity-store.d.ts","sourceRoot":"","sources":["../../src/domain/agent-activity-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIhE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,GAC5D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,0BAA0B,GAAG,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzF,UAAU,sBAAsB;IAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAaD,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,IAAI,EAAE,sBAAsB;IAOxC,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,wBAAwB;IAwCnE,gBAAgB,CAAC,KAAK,EAAE;QACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,GAAG,CAAC,EAAE,IAAI,CAAC;KACZ,GAAG,aAAa,GAAG,IAAI;IAqCxB,OAAO,CAAC,cAAc;CAwBvB"}
@@ -0,0 +1,177 @@
1
+ const DEFAULT_FRESHNESS_MS = 5 * 60 * 1000;
2
+ export class AgentActivityStore {
3
+ db;
4
+ eventBus;
5
+ now;
6
+ freshnessMs;
7
+ constructor(deps) {
8
+ this.db = deps.db;
9
+ this.eventBus = deps.eventBus;
10
+ this.now = deps.now ?? (() => new Date());
11
+ this.freshnessMs = deps.freshnessMs ?? DEFAULT_FRESHNESS_MS;
12
+ }
13
+ recordHookEvent(input) {
14
+ if (!input.sessionName && !input.nodeId) {
15
+ return {
16
+ ok: false,
17
+ code: "missing_session_identity",
18
+ error: "Hook activity requires a managed sessionName or nodeId",
19
+ };
20
+ }
21
+ const session = this.resolveSession(input);
22
+ if (!session) {
23
+ return {
24
+ ok: false,
25
+ code: "session_not_found",
26
+ error: "Hook activity did not match a managed session. List seats with: rig ps --nodes",
27
+ };
28
+ }
29
+ const sampledAt = this.now().toISOString();
30
+ const eventAt = parseTimestamp(input.occurredAt) ?? sampledAt;
31
+ const activity = normalizeHookActivity({
32
+ runtime: input.runtime ?? session.runtime,
33
+ hookEvent: input.hookEvent,
34
+ subtype: input.subtype ?? null,
35
+ sampledAt,
36
+ eventAt,
37
+ });
38
+ const event = this.eventBus.emit({
39
+ type: "agent.activity",
40
+ rigId: session.rig_id,
41
+ nodeId: session.node_id,
42
+ sessionName: session.session_name,
43
+ runtime: activity.runtime ?? session.runtime,
44
+ activity,
45
+ });
46
+ return { ok: true, activity, event };
47
+ }
48
+ getLatestForNode(input) {
49
+ const nodeId = input.nodeId ?? (input.sessionName ? this.resolveSession({ sessionName: input.sessionName })?.node_id : null);
50
+ if (!nodeId)
51
+ return null;
52
+ const row = this.db.prepare("SELECT payload FROM events WHERE node_id = ? AND type = 'agent.activity' ORDER BY seq DESC LIMIT 1").get(nodeId);
53
+ if (!row)
54
+ return null;
55
+ const payload = parseActivityPayload(row.payload);
56
+ if (!payload?.activity)
57
+ return null;
58
+ const activity = payload.activity;
59
+ if (input.sessionName && payload.sessionName !== input.sessionName)
60
+ return null;
61
+ const referenceTime = input.now ?? this.now();
62
+ const eventTime = activity.eventAt ? Date.parse(activity.eventAt) : NaN;
63
+ if (Number.isFinite(eventTime) && referenceTime.getTime() - eventTime > this.freshnessMs) {
64
+ return {
65
+ ...activity,
66
+ state: "unknown",
67
+ reason: "stale_runtime_hook",
68
+ evidenceSource: "runtime_hook",
69
+ sampledAt: referenceTime.toISOString(),
70
+ fallback: false,
71
+ stale: true,
72
+ };
73
+ }
74
+ return {
75
+ ...activity,
76
+ sampledAt: referenceTime.toISOString(),
77
+ fallback: false,
78
+ stale: false,
79
+ };
80
+ }
81
+ resolveSession(input) {
82
+ if (input.nodeId) {
83
+ const row = this.db.prepare(`
84
+ SELECT n.rig_id, n.id AS node_id, s.session_name, n.runtime
85
+ FROM nodes n
86
+ LEFT JOIN sessions s ON s.node_id = n.id
87
+ AND s.id = (SELECT s2.id FROM sessions s2 WHERE s2.node_id = n.id ORDER BY s2.id DESC LIMIT 1)
88
+ WHERE n.id = ?
89
+ LIMIT 1
90
+ `).get(input.nodeId);
91
+ if (row?.session_name)
92
+ return row;
93
+ }
94
+ if (!input.sessionName)
95
+ return null;
96
+ const row = this.db.prepare(`
97
+ SELECT n.rig_id, n.id AS node_id, s.session_name, n.runtime
98
+ FROM sessions s
99
+ JOIN nodes n ON n.id = s.node_id
100
+ WHERE s.session_name = ?
101
+ ORDER BY s.id DESC
102
+ LIMIT 1
103
+ `).get(input.sessionName);
104
+ return row ?? null;
105
+ }
106
+ }
107
+ function normalizeHookActivity(input) {
108
+ const rawEvent = input.hookEvent;
109
+ const rawSubtype = input.subtype;
110
+ const reason = normalizeReason(rawSubtype ?? rawEvent);
111
+ const runtime = input.runtime;
112
+ let state = "unknown";
113
+ let normalizedReason = reason;
114
+ if (rawEvent === "UserPromptSubmit" || rawEvent === "PreToolUse" || rawEvent === "active") {
115
+ state = "running";
116
+ }
117
+ else if (rawEvent === "Notification") {
118
+ if (rawSubtype === "permission_prompt" || rawSubtype === "elicitation_dialog") {
119
+ state = "needs_input";
120
+ }
121
+ else if (rawSubtype === "idle_prompt") {
122
+ state = "idle";
123
+ }
124
+ else {
125
+ state = "unknown";
126
+ normalizedReason = rawSubtype ? reason : "notification";
127
+ }
128
+ }
129
+ else if (rawEvent === "Stop" || rawEvent === "SessionEnd" || rawEvent === "stop" || rawEvent === "idle") {
130
+ state = "idle";
131
+ }
132
+ else if (rawEvent === "SessionStart") {
133
+ state = "unknown";
134
+ normalizedReason = "session_start_observed";
135
+ }
136
+ else {
137
+ state = "unknown";
138
+ normalizedReason = "unmapped_runtime_hook";
139
+ }
140
+ return {
141
+ state,
142
+ reason: normalizedReason,
143
+ evidenceSource: "runtime_hook",
144
+ sampledAt: input.sampledAt,
145
+ evidence: rawSubtype ?? rawEvent,
146
+ eventAt: input.eventAt,
147
+ rawEvent,
148
+ rawSubtype,
149
+ runtime,
150
+ fallback: false,
151
+ stale: false,
152
+ };
153
+ }
154
+ function normalizeReason(value) {
155
+ return value
156
+ .replace(/([a-z0-9])([A-Z])/g, "$1_$2")
157
+ .replace(/[^a-zA-Z0-9]+/g, "_")
158
+ .replace(/^_+|_+$/g, "")
159
+ .toLowerCase();
160
+ }
161
+ function parseTimestamp(value) {
162
+ if (!value)
163
+ return null;
164
+ const ms = Date.parse(value);
165
+ if (!Number.isFinite(ms))
166
+ return null;
167
+ return new Date(ms).toISOString();
168
+ }
169
+ function parseActivityPayload(payload) {
170
+ try {
171
+ return JSON.parse(payload);
172
+ }
173
+ catch {
174
+ return null;
175
+ }
176
+ }
177
+ //# sourceMappingURL=agent-activity-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-activity-store.js","sourceRoot":"","sources":["../../src/domain/agent-activity-store.ts"],"names":[],"mappings":"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"}