@openrig/cli 0.2.0 → 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 (469) hide show
  1. package/daemon/dist/adapters/claude-code-adapter.d.ts +10 -0
  2. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  3. package/daemon/dist/adapters/claude-code-adapter.js +41 -3
  4. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  5. package/daemon/dist/builtins/workflow-specs/basic-loop.yaml +76 -0
  6. package/daemon/dist/builtins/workflow-specs/conveyor.yaml +80 -0
  7. package/daemon/dist/db/migrations/026_inbox_entries.d.ts +1 -1
  8. package/daemon/dist/db/migrations/026_inbox_entries.js +1 -1
  9. package/daemon/dist/db/migrations/029_classifier_leases.d.ts +1 -1
  10. package/daemon/dist/db/migrations/029_classifier_leases.js +1 -1
  11. package/daemon/dist/db/migrations/037_mission_control_actions.d.ts +51 -0
  12. package/daemon/dist/db/migrations/037_mission_control_actions.d.ts.map +1 -0
  13. package/daemon/dist/db/migrations/037_mission_control_actions.js +74 -0
  14. package/daemon/dist/db/migrations/037_mission_control_actions.js.map +1 -0
  15. package/daemon/dist/db/migrations/038_workspace_primitive.d.ts +16 -0
  16. package/daemon/dist/db/migrations/038_workspace_primitive.d.ts.map +1 -0
  17. package/daemon/dist/db/migrations/038_workspace_primitive.js +20 -0
  18. package/daemon/dist/db/migrations/038_workspace_primitive.js.map +1 -0
  19. package/daemon/dist/db/migrations/039_queue_target_repo.d.ts +16 -0
  20. package/daemon/dist/db/migrations/039_queue_target_repo.d.ts.map +1 -0
  21. package/daemon/dist/db/migrations/039_queue_target_repo.js +21 -0
  22. package/daemon/dist/db/migrations/039_queue_target_repo.js.map +1 -0
  23. package/daemon/dist/domain/active-lens-store.d.ts +23 -0
  24. package/daemon/dist/domain/active-lens-store.d.ts.map +1 -0
  25. package/daemon/dist/domain/active-lens-store.js +87 -0
  26. package/daemon/dist/domain/active-lens-store.js.map +1 -0
  27. package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts +68 -0
  28. package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -0
  29. package/daemon/dist/domain/agent-images/agent-image-library-service.js +339 -0
  30. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -0
  31. package/daemon/dist/domain/agent-images/agent-image-types.d.ts +113 -0
  32. package/daemon/dist/domain/agent-images/agent-image-types.d.ts.map +1 -0
  33. package/daemon/dist/domain/agent-images/agent-image-types.js +24 -0
  34. package/daemon/dist/domain/agent-images/agent-image-types.js.map +1 -0
  35. package/daemon/dist/domain/agent-images/evidence-guard.d.ts +26 -0
  36. package/daemon/dist/domain/agent-images/evidence-guard.d.ts.map +1 -0
  37. package/daemon/dist/domain/agent-images/evidence-guard.js +185 -0
  38. package/daemon/dist/domain/agent-images/evidence-guard.js.map +1 -0
  39. package/daemon/dist/domain/agent-images/manifest-parser.d.ts +3 -0
  40. package/daemon/dist/domain/agent-images/manifest-parser.d.ts.map +1 -0
  41. package/daemon/dist/domain/agent-images/manifest-parser.js +114 -0
  42. package/daemon/dist/domain/agent-images/manifest-parser.js.map +1 -0
  43. package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts +28 -0
  44. package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +1 -0
  45. package/daemon/dist/domain/agent-images/resume-token-discovery.js +83 -0
  46. package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -0
  47. package/daemon/dist/domain/agent-images/snapshot-capturer.d.ts +36 -0
  48. package/daemon/dist/domain/agent-images/snapshot-capturer.d.ts.map +1 -0
  49. package/daemon/dist/domain/agent-images/snapshot-capturer.js +58 -0
  50. package/daemon/dist/domain/agent-images/snapshot-capturer.js.map +1 -0
  51. package/daemon/dist/domain/agent-starter-resolver.d.ts +10 -16
  52. package/daemon/dist/domain/agent-starter-resolver.d.ts.map +1 -1
  53. package/daemon/dist/domain/agent-starter-resolver.js +11 -13
  54. package/daemon/dist/domain/agent-starter-resolver.js.map +1 -1
  55. package/daemon/dist/domain/classifier-lease-manager.d.ts +1 -1
  56. package/daemon/dist/domain/classifier-lease-manager.js +1 -1
  57. package/daemon/dist/domain/conflict-detector.d.ts.map +1 -1
  58. package/daemon/dist/domain/conflict-detector.js +6 -3
  59. package/daemon/dist/domain/conflict-detector.js.map +1 -1
  60. package/daemon/dist/domain/context-monitor.d.ts +5 -4
  61. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  62. package/daemon/dist/domain/context-monitor.js +26 -11
  63. package/daemon/dist/domain/context-monitor.js.map +1 -1
  64. package/daemon/dist/domain/context-packs/bundle-assembler.d.ts +49 -0
  65. package/daemon/dist/domain/context-packs/bundle-assembler.d.ts.map +1 -0
  66. package/daemon/dist/domain/context-packs/bundle-assembler.js +81 -0
  67. package/daemon/dist/domain/context-packs/bundle-assembler.js.map +1 -0
  68. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts +41 -0
  69. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -0
  70. package/daemon/dist/domain/context-packs/context-pack-library-service.js +148 -0
  71. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -0
  72. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +64 -0
  73. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -0
  74. package/daemon/dist/domain/context-packs/context-pack-types.js +22 -0
  75. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -0
  76. package/daemon/dist/domain/context-packs/manifest-parser.d.ts +3 -0
  77. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -0
  78. package/daemon/dist/domain/context-packs/manifest-parser.js +74 -0
  79. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -0
  80. package/daemon/dist/domain/context-usage-store.d.ts +14 -1
  81. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  82. package/daemon/dist/domain/context-usage-store.js +156 -1
  83. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  84. package/daemon/dist/domain/files/file-write-service.d.ts +61 -0
  85. package/daemon/dist/domain/files/file-write-service.d.ts.map +1 -0
  86. package/daemon/dist/domain/files/file-write-service.js +180 -0
  87. package/daemon/dist/domain/files/file-write-service.js.map +1 -0
  88. package/daemon/dist/domain/files/path-safety.d.ts +47 -0
  89. package/daemon/dist/domain/files/path-safety.d.ts.map +1 -0
  90. package/daemon/dist/domain/files/path-safety.js +176 -0
  91. package/daemon/dist/domain/files/path-safety.js.map +1 -0
  92. package/daemon/dist/domain/graph-projection.d.ts +14 -1
  93. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  94. package/daemon/dist/domain/graph-projection.js +8 -0
  95. package/daemon/dist/domain/graph-projection.js.map +1 -1
  96. package/daemon/dist/domain/install-engine.d.ts.map +1 -1
  97. package/daemon/dist/domain/install-engine.js +22 -6
  98. package/daemon/dist/domain/install-engine.js.map +1 -1
  99. package/daemon/dist/domain/install-verifier.d.ts.map +1 -1
  100. package/daemon/dist/domain/install-verifier.js +10 -5
  101. package/daemon/dist/domain/install-verifier.js.map +1 -1
  102. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  103. package/daemon/dist/domain/managed-blocks.js +22 -3
  104. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  105. package/daemon/dist/domain/mission-control/audit-browse.d.ts +26 -0
  106. package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -0
  107. package/daemon/dist/domain/mission-control/audit-browse.js +101 -0
  108. package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -0
  109. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +51 -0
  110. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -0
  111. package/daemon/dist/domain/mission-control/mission-control-action-log.js +124 -0
  112. package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -0
  113. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +131 -0
  114. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -0
  115. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +232 -0
  116. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -0
  117. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +85 -0
  118. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -0
  119. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +265 -0
  120. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -0
  121. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +69 -0
  122. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -0
  123. package/daemon/dist/domain/mission-control/mission-control-write-contract.js +300 -0
  124. package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -0
  125. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +18 -0
  126. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -0
  127. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +48 -0
  128. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -0
  129. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +25 -0
  130. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -0
  131. package/daemon/dist/domain/mission-control/notification-adapter-types.js +7 -0
  132. package/daemon/dist/domain/mission-control/notification-adapter-types.js.map +1 -0
  133. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +27 -0
  134. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -0
  135. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +47 -0
  136. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -0
  137. package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts +53 -0
  138. package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts.map +1 -0
  139. package/daemon/dist/domain/mission-control/notification-dispatcher.js +181 -0
  140. package/daemon/dist/domain/mission-control/notification-dispatcher.js.map +1 -0
  141. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  142. package/daemon/dist/domain/node-inventory.js +24 -0
  143. package/daemon/dist/domain/node-inventory.js.map +1 -1
  144. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  145. package/daemon/dist/domain/node-launcher.js +7 -5
  146. package/daemon/dist/domain/node-launcher.js.map +1 -1
  147. package/daemon/dist/domain/preview/preview-rate-limiter.d.ts +20 -0
  148. package/daemon/dist/domain/preview/preview-rate-limiter.d.ts.map +1 -0
  149. package/daemon/dist/domain/preview/preview-rate-limiter.js +46 -0
  150. package/daemon/dist/domain/preview/preview-rate-limiter.js.map +1 -0
  151. package/daemon/dist/domain/profile-resolver.d.ts +5 -0
  152. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  153. package/daemon/dist/domain/profile-resolver.js +62 -8
  154. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  155. package/daemon/dist/domain/progress/progress-indexer.d.ts +73 -0
  156. package/daemon/dist/domain/progress/progress-indexer.d.ts.map +1 -0
  157. package/daemon/dist/domain/progress/progress-indexer.js +210 -0
  158. package/daemon/dist/domain/progress/progress-indexer.js.map +1 -0
  159. package/daemon/dist/domain/project-classifier.d.ts +1 -1
  160. package/daemon/dist/domain/queue-repository.d.ts +22 -4
  161. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  162. package/daemon/dist/domain/queue-repository.js +80 -22
  163. package/daemon/dist/domain/queue-repository.js.map +1 -1
  164. package/daemon/dist/domain/rehydrate-eligibility.d.ts +16 -0
  165. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -0
  166. package/daemon/dist/domain/rehydrate-eligibility.js +43 -0
  167. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -0
  168. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  169. package/daemon/dist/domain/restore-check-service.js +19 -6
  170. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  171. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  172. package/daemon/dist/domain/restore-orchestrator.js +4 -2
  173. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  174. package/daemon/dist/domain/rig-repository.d.ts +14 -0
  175. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  176. package/daemon/dist/domain/rig-repository.js +41 -0
  177. package/daemon/dist/domain/rig-repository.js.map +1 -1
  178. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  179. package/daemon/dist/domain/rig-teardown.js +5 -0
  180. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  181. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  182. package/daemon/dist/domain/rigspec-codec.js +15 -0
  183. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  184. package/daemon/dist/domain/rigspec-instantiator.d.ts +29 -0
  185. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  186. package/daemon/dist/domain/rigspec-instantiator.js +136 -4
  187. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  188. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  189. package/daemon/dist/domain/rigspec-schema.js +157 -4
  190. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  191. package/daemon/dist/domain/runtime-adapter.d.ts +11 -0
  192. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  193. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  194. package/daemon/dist/domain/skill-discovery.d.ts +51 -0
  195. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -0
  196. package/daemon/dist/domain/skill-discovery.js +144 -0
  197. package/daemon/dist/domain/skill-discovery.js.map +1 -0
  198. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +182 -0
  199. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -0
  200. package/daemon/dist/domain/slices/slice-detail-projector.js +508 -0
  201. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -0
  202. package/daemon/dist/domain/slices/slice-indexer.d.ts +118 -0
  203. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -0
  204. package/daemon/dist/domain/slices/slice-indexer.js +503 -0
  205. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -0
  206. package/daemon/dist/domain/spec-library-service.d.ts +17 -2
  207. package/daemon/dist/domain/spec-library-service.d.ts.map +1 -1
  208. package/daemon/dist/domain/spec-library-service.js +31 -1
  209. package/daemon/dist/domain/spec-library-service.js.map +1 -1
  210. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +81 -0
  211. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -0
  212. package/daemon/dist/domain/spec-library-workflow-scanner.js +171 -0
  213. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -0
  214. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  215. package/daemon/dist/domain/startup-validation.js +57 -11
  216. package/daemon/dist/domain/startup-validation.js.map +1 -1
  217. package/daemon/dist/domain/steering/health-summary.d.ts +39 -0
  218. package/daemon/dist/domain/steering/health-summary.d.ts.map +1 -0
  219. package/daemon/dist/domain/steering/health-summary.js +100 -0
  220. package/daemon/dist/domain/steering/health-summary.js.map +1 -0
  221. package/daemon/dist/domain/steering/steering-composer.d.ts +102 -0
  222. package/daemon/dist/domain/steering/steering-composer.d.ts.map +1 -0
  223. package/daemon/dist/domain/steering/steering-composer.js +263 -0
  224. package/daemon/dist/domain/steering/steering-composer.js.map +1 -0
  225. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  226. package/daemon/dist/domain/transcript-capture.js +7 -4
  227. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  228. package/daemon/dist/domain/transcript-rotation.d.ts +29 -0
  229. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -0
  230. package/daemon/dist/domain/transcript-rotation.js +109 -0
  231. package/daemon/dist/domain/transcript-rotation.js.map +1 -0
  232. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  233. package/daemon/dist/domain/transcript-store.js +7 -1
  234. package/daemon/dist/domain/transcript-store.js.map +1 -1
  235. package/daemon/dist/domain/types.d.ts +101 -2
  236. package/daemon/dist/domain/types.d.ts.map +1 -1
  237. package/daemon/dist/domain/types.js +8 -1
  238. package/daemon/dist/domain/types.js.map +1 -1
  239. package/daemon/dist/domain/user-settings/settings-store.d.ts +42 -0
  240. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -0
  241. package/daemon/dist/domain/user-settings/settings-store.js +364 -0
  242. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -0
  243. package/daemon/dist/domain/view-event-bridge.d.ts.map +1 -1
  244. package/daemon/dist/domain/view-event-bridge.js +2 -3
  245. package/daemon/dist/domain/view-event-bridge.js.map +1 -1
  246. package/daemon/dist/domain/whoami-service.d.ts +29 -0
  247. package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
  248. package/daemon/dist/domain/whoami-service.js +68 -0
  249. package/daemon/dist/domain/whoami-service.js.map +1 -1
  250. package/daemon/dist/domain/workflow/slice-workflow-binding.d.ts +21 -0
  251. package/daemon/dist/domain/workflow/slice-workflow-binding.d.ts.map +1 -0
  252. package/daemon/dist/domain/workflow/slice-workflow-binding.js +103 -0
  253. package/daemon/dist/domain/workflow/slice-workflow-binding.js.map +1 -0
  254. package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts +81 -0
  255. package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -0
  256. package/daemon/dist/domain/workflow/slice-workflow-projection.js +127 -0
  257. package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -0
  258. package/daemon/dist/domain/workflow/starter-spec-loader.d.ts +51 -0
  259. package/daemon/dist/domain/workflow/starter-spec-loader.d.ts.map +1 -0
  260. package/daemon/dist/domain/workflow/starter-spec-loader.js +140 -0
  261. package/daemon/dist/domain/workflow/starter-spec-loader.js.map +1 -0
  262. package/daemon/dist/domain/workflow-projector.js +11 -3
  263. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  264. package/daemon/dist/domain/workflow-spec-cache.d.ts +7 -0
  265. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  266. package/daemon/dist/domain/workflow-spec-cache.js +62 -15
  267. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  268. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +6 -0
  269. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -0
  270. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +207 -0
  271. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -0
  272. package/daemon/dist/domain/workspace/frontmatter-validator.d.ts +40 -0
  273. package/daemon/dist/domain/workspace/frontmatter-validator.d.ts.map +1 -0
  274. package/daemon/dist/domain/workspace/frontmatter-validator.js +185 -0
  275. package/daemon/dist/domain/workspace/frontmatter-validator.js.map +1 -0
  276. package/daemon/dist/domain/workspace/workspace-resolver.d.ts +25 -0
  277. package/daemon/dist/domain/workspace/workspace-resolver.d.ts.map +1 -0
  278. package/daemon/dist/domain/workspace/workspace-resolver.js +86 -0
  279. package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -0
  280. package/daemon/dist/index.d.ts.map +1 -1
  281. package/daemon/dist/index.js +10 -1
  282. package/daemon/dist/index.js.map +1 -1
  283. package/daemon/dist/middleware/auth-bearer-token.d.ts +49 -0
  284. package/daemon/dist/middleware/auth-bearer-token.d.ts.map +1 -0
  285. package/daemon/dist/middleware/auth-bearer-token.js +135 -0
  286. package/daemon/dist/middleware/auth-bearer-token.js.map +1 -0
  287. package/daemon/dist/openrig-compat.d.ts +1 -1
  288. package/daemon/dist/openrig-compat.d.ts.map +1 -1
  289. package/daemon/dist/openrig-compat.js +6 -4
  290. package/daemon/dist/openrig-compat.js.map +1 -1
  291. package/daemon/dist/routes/agent-images.d.ts +8 -0
  292. package/daemon/dist/routes/agent-images.d.ts.map +1 -0
  293. package/daemon/dist/routes/agent-images.js +253 -0
  294. package/daemon/dist/routes/agent-images.js.map +1 -0
  295. package/daemon/dist/routes/config.d.ts +3 -0
  296. package/daemon/dist/routes/config.d.ts.map +1 -0
  297. package/daemon/dist/routes/config.js +109 -0
  298. package/daemon/dist/routes/config.js.map +1 -0
  299. package/daemon/dist/routes/context-packs.d.ts +3 -0
  300. package/daemon/dist/routes/context-packs.d.ts.map +1 -0
  301. package/daemon/dist/routes/context-packs.js +129 -0
  302. package/daemon/dist/routes/context-packs.js.map +1 -0
  303. package/daemon/dist/routes/files.d.ts +17 -0
  304. package/daemon/dist/routes/files.d.ts.map +1 -0
  305. package/daemon/dist/routes/files.js +262 -0
  306. package/daemon/dist/routes/files.js.map +1 -0
  307. package/daemon/dist/routes/health-summary.d.ts +9 -0
  308. package/daemon/dist/routes/health-summary.d.ts.map +1 -0
  309. package/daemon/dist/routes/health-summary.js +33 -0
  310. package/daemon/dist/routes/health-summary.js.map +1 -0
  311. package/daemon/dist/routes/mission-control.d.ts +37 -0
  312. package/daemon/dist/routes/mission-control.d.ts.map +1 -0
  313. package/daemon/dist/routes/mission-control.js +283 -0
  314. package/daemon/dist/routes/mission-control.js.map +1 -0
  315. package/daemon/dist/routes/progress.d.ts +7 -0
  316. package/daemon/dist/routes/progress.d.ts.map +1 -0
  317. package/daemon/dist/routes/progress.js +33 -0
  318. package/daemon/dist/routes/progress.js.map +1 -0
  319. package/daemon/dist/routes/queue.d.ts.map +1 -1
  320. package/daemon/dist/routes/queue.js +52 -1
  321. package/daemon/dist/routes/queue.js.map +1 -1
  322. package/daemon/dist/routes/rigs.d.ts +3 -0
  323. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  324. package/daemon/dist/routes/rigs.js +73 -7
  325. package/daemon/dist/routes/rigs.js.map +1 -1
  326. package/daemon/dist/routes/rigspec.js +6 -3
  327. package/daemon/dist/routes/rigspec.js.map +1 -1
  328. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  329. package/daemon/dist/routes/sessions.js +119 -0
  330. package/daemon/dist/routes/sessions.js.map +1 -1
  331. package/daemon/dist/routes/slices.d.ts +9 -0
  332. package/daemon/dist/routes/slices.d.ts.map +1 -0
  333. package/daemon/dist/routes/slices.js +192 -0
  334. package/daemon/dist/routes/slices.js.map +1 -0
  335. package/daemon/dist/routes/spec-library.d.ts.map +1 -1
  336. package/daemon/dist/routes/spec-library.js +72 -5
  337. package/daemon/dist/routes/spec-library.js.map +1 -1
  338. package/daemon/dist/routes/steering.d.ts +7 -0
  339. package/daemon/dist/routes/steering.d.ts.map +1 -0
  340. package/daemon/dist/routes/steering.js +27 -0
  341. package/daemon/dist/routes/steering.js.map +1 -0
  342. package/daemon/dist/routes/up.d.ts.map +1 -1
  343. package/daemon/dist/routes/up.js +21 -3
  344. package/daemon/dist/routes/up.js.map +1 -1
  345. package/daemon/dist/routes/whoami.d.ts.map +1 -1
  346. package/daemon/dist/routes/whoami.js +6 -1
  347. package/daemon/dist/routes/whoami.js.map +1 -1
  348. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  349. package/daemon/dist/routes/workflow.js +43 -0
  350. package/daemon/dist/routes/workflow.js.map +1 -1
  351. package/daemon/dist/routes/workspace.d.ts +3 -0
  352. package/daemon/dist/routes/workspace.d.ts.map +1 -0
  353. package/daemon/dist/routes/workspace.js +53 -0
  354. package/daemon/dist/routes/workspace.js.map +1 -0
  355. package/daemon/dist/server.d.ts +51 -0
  356. package/daemon/dist/server.d.ts.map +1 -1
  357. package/daemon/dist/server.js +52 -1
  358. package/daemon/dist/server.js.map +1 -1
  359. package/daemon/dist/startup.d.ts +9 -0
  360. package/daemon/dist/startup.d.ts.map +1 -1
  361. package/daemon/dist/startup.js +385 -2
  362. package/daemon/dist/startup.js.map +1 -1
  363. package/daemon/docs/reference/agent-spec.md +7 -7
  364. package/daemon/docs/reference/agent-startup-guide.md +2 -2
  365. package/daemon/docs/reference/project-workspace.md +102 -0
  366. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -1
  367. package/daemon/specs/agents/apps/vault-specialist/guidance/role.md +0 -1
  368. package/daemon/specs/agents/conveyor/builder/agent.yaml +35 -0
  369. package/daemon/specs/agents/conveyor/builder/guidance/role.md +31 -0
  370. package/daemon/specs/agents/conveyor/builder/startup/context.md +9 -0
  371. package/daemon/specs/agents/conveyor/lead/agent.yaml +35 -0
  372. package/daemon/specs/agents/conveyor/lead/guidance/role.md +34 -0
  373. package/daemon/specs/agents/conveyor/lead/startup/context.md +15 -0
  374. package/daemon/specs/agents/conveyor/planner/agent.yaml +35 -0
  375. package/daemon/specs/agents/conveyor/planner/guidance/role.md +29 -0
  376. package/daemon/specs/agents/conveyor/planner/startup/context.md +12 -0
  377. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +35 -0
  378. package/daemon/specs/agents/conveyor/reviewer/guidance/role.md +29 -0
  379. package/daemon/specs/agents/conveyor/reviewer/startup/context.md +10 -0
  380. package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
  381. package/daemon/specs/agents/development/implementer/guidance/role.md +0 -1
  382. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
  383. package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +2 -3
  384. package/daemon/specs/agents/shared/agent.yaml +0 -2
  385. package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +25 -0
  386. package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +153 -0
  387. package/daemon/specs/agents/shared/skills/rig-architect/SKILL.md +1 -1
  388. package/daemon/specs/rigs/launch/conveyor/CULTURE.md +34 -0
  389. package/daemon/specs/rigs/launch/conveyor/README.md +33 -0
  390. package/daemon/specs/rigs/launch/conveyor/rig.yaml +72 -0
  391. package/daemon/specs/rigs/preview/product-team/CULTURE.md +2 -2
  392. package/daemon/specs/rigs/preview/product-team/rig.yaml +3 -4
  393. package/dist/commands/agent-image.d.ts +4 -0
  394. package/dist/commands/agent-image.d.ts.map +1 -0
  395. package/dist/commands/agent-image.js +352 -0
  396. package/dist/commands/agent-image.js.map +1 -0
  397. package/dist/commands/config-init-workspace.d.ts +35 -0
  398. package/dist/commands/config-init-workspace.d.ts.map +1 -0
  399. package/dist/commands/config-init-workspace.js +300 -0
  400. package/dist/commands/config-init-workspace.js.map +1 -0
  401. package/dist/commands/config.d.ts.map +1 -1
  402. package/dist/commands/config.js +78 -18
  403. package/dist/commands/config.js.map +1 -1
  404. package/dist/commands/context-pack.d.ts +4 -0
  405. package/dist/commands/context-pack.d.ts.map +1 -0
  406. package/dist/commands/context-pack.js +357 -0
  407. package/dist/commands/context-pack.js.map +1 -0
  408. package/dist/commands/daemon.d.ts.map +1 -1
  409. package/dist/commands/daemon.js +8 -0
  410. package/dist/commands/daemon.js.map +1 -1
  411. package/dist/commands/import.d.ts.map +1 -1
  412. package/dist/commands/import.js +7 -2
  413. package/dist/commands/import.js.map +1 -1
  414. package/dist/commands/ps.d.ts.map +1 -1
  415. package/dist/commands/ps.js +173 -14
  416. package/dist/commands/ps.js.map +1 -1
  417. package/dist/commands/queue.d.ts.map +1 -1
  418. package/dist/commands/queue.js +9 -0
  419. package/dist/commands/queue.js.map +1 -1
  420. package/dist/commands/send.d.ts +7 -0
  421. package/dist/commands/send.d.ts.map +1 -1
  422. package/dist/commands/send.js +24 -1
  423. package/dist/commands/send.js.map +1 -1
  424. package/dist/commands/specs.d.ts +4 -2
  425. package/dist/commands/specs.d.ts.map +1 -1
  426. package/dist/commands/specs.js +12 -8
  427. package/dist/commands/specs.js.map +1 -1
  428. package/dist/commands/up.d.ts.map +1 -1
  429. package/dist/commands/up.js +17 -3
  430. package/dist/commands/up.js.map +1 -1
  431. package/dist/commands/whoami.d.ts.map +1 -1
  432. package/dist/commands/whoami.js +9 -4
  433. package/dist/commands/whoami.js.map +1 -1
  434. package/dist/commands/workflow.d.ts.map +1 -1
  435. package/dist/commands/workflow.js +37 -0
  436. package/dist/commands/workflow.js.map +1 -1
  437. package/dist/commands/workspace.d.ts +6 -0
  438. package/dist/commands/workspace.d.ts.map +1 -0
  439. package/dist/commands/workspace.js +83 -0
  440. package/dist/commands/workspace.js.map +1 -0
  441. package/dist/config-store.d.ts +73 -1
  442. package/dist/config-store.d.ts.map +1 -1
  443. package/dist/config-store.js +314 -42
  444. package/dist/config-store.js.map +1 -1
  445. package/dist/daemon-lifecycle.d.ts +22 -0
  446. package/dist/daemon-lifecycle.d.ts.map +1 -1
  447. package/dist/daemon-lifecycle.js +41 -0
  448. package/dist/daemon-lifecycle.js.map +1 -1
  449. package/dist/index.d.ts +4 -0
  450. package/dist/index.d.ts.map +1 -1
  451. package/dist/index.js +6 -0
  452. package/dist/index.js.map +1 -1
  453. package/dist/openrig-compat.d.ts +1 -1
  454. package/dist/openrig-compat.d.ts.map +1 -1
  455. package/dist/openrig-compat.js +6 -4
  456. package/dist/openrig-compat.js.map +1 -1
  457. package/dist/restore-packet/claude-transcript-parser.js +1 -1
  458. package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
  459. package/dist/restore-packet/codex-jsonl-parser.js +1 -1
  460. package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
  461. package/package.json +2 -2
  462. package/ui/dist/assets/index-BDHU1JUK.js +412 -0
  463. package/ui/dist/assets/index-DXTyJSqu.css +1 -0
  464. package/ui/dist/graphics/operator-climber-monochrome.png +0 -0
  465. package/ui/dist/index.html +3 -2
  466. package/daemon/specs/agents/shared/skills/mental-model-ha/SKILL.md +0 -956
  467. package/ui/dist/assets/index-B09doO8H.js +0 -139
  468. package/ui/dist/assets/index-Dec25siz.css +0 -1
  469. package/ui/dist/assets/index-GNYaWmBj.js +0 -225
@@ -0,0 +1,36 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { SessionRegistry } from "../session-registry.js";
3
+ import type { RigRepository } from "../rig-repository.js";
4
+ import { type AgentImageManifest } from "./agent-image-types.js";
5
+ import { AgentImageLibraryService } from "./agent-image-library-service.js";
6
+ export interface CaptureSnapshotOpts {
7
+ sourceSession: string;
8
+ name: string;
9
+ version?: string;
10
+ notes?: string;
11
+ estimatedTokens?: number;
12
+ lineage?: string[];
13
+ files?: Map<string, string>;
14
+ }
15
+ export interface CaptureSnapshotResult {
16
+ imageId: string;
17
+ imagePath: string;
18
+ manifest: AgentImageManifest;
19
+ }
20
+ export interface SnapshotCapturerDeps {
21
+ db: Database.Database;
22
+ rigRepo: RigRepository;
23
+ sessionRegistry: SessionRegistry;
24
+ agentImageLibrary: AgentImageLibraryService;
25
+ /** Target install root — typically ~/.openrig/agent-images/. */
26
+ targetRoot: string;
27
+ /** Test seam — defaults to () => new Date(). */
28
+ now?: () => Date;
29
+ }
30
+ export declare class SnapshotCapturer {
31
+ private readonly deps;
32
+ private readonly now;
33
+ constructor(deps: SnapshotCapturerDeps);
34
+ capture(opts: CaptureSnapshotOpts): CaptureSnapshotResult;
35
+ }
36
+ //# sourceMappingURL=snapshot-capturer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-capturer.d.ts","sourceRoot":"","sources":["../../../src/domain/agent-images/snapshot-capturer.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAG5E,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,IAAI,EAAE,oBAAoB;IAKtC,OAAO,CAAC,IAAI,EAAE,mBAAmB,GAAG,qBAAqB;CA6C1D"}
@@ -0,0 +1,58 @@
1
+ // Fork Primitive + Starter Agent Images v0 (PL-016) — snapshot capturer.
2
+ //
3
+ // Captures a productive seat's resumable state into a new agent_image:
4
+ // runtime-specific resume token + manifest + optional cwd-deltas. Used
5
+ // by `rig agent-image create <source-session> --name <name>` and the
6
+ // daemon HTTP route /api/agent-images/snapshot.
7
+ //
8
+ // Resume-token discovery routes through resume-token-discovery.ts so
9
+ // the same logic is shared with the /api/agent-images/fork route.
10
+ //
11
+ // Failure modes surface honest errors per architecture.md § Resume
12
+ // honesty (no fabricated tokens; no auto-fallback to fresh).
13
+ import { AgentImageError, } from "./agent-image-types.js";
14
+ import { discoverResumeToken } from "./resume-token-discovery.js";
15
+ export class SnapshotCapturer {
16
+ deps;
17
+ now;
18
+ constructor(deps) {
19
+ this.deps = deps;
20
+ this.now = deps.now ?? (() => new Date());
21
+ }
22
+ capture(opts) {
23
+ const { sourceSession, name } = opts;
24
+ const version = opts.version ?? "1";
25
+ const discovery = discoverResumeToken(this.deps.db, sourceSession);
26
+ if (!discovery.ok) {
27
+ throw new AgentImageError(discovery.failure.code === "session_not_found" ? "image_not_found" : "runtime_mismatch", discovery.failure.message, { sourceSession });
28
+ }
29
+ const { runtime, nativeId, nodeCwd } = discovery.result;
30
+ if (!nativeId) {
31
+ throw new AgentImageError("image_not_found", `Could not discover a resume token for ${runtime} source session '${sourceSession}'. The session may not have a native conversation id yet — try again after the seat has produced output, or use rig context --refresh to re-sample.`, { sourceSession, runtime });
32
+ }
33
+ const manifest = {
34
+ name,
35
+ version,
36
+ runtime,
37
+ sourceSeat: sourceSession,
38
+ sourceSessionId: nativeId,
39
+ sourceResumeToken: nativeId,
40
+ // PL-016 source-cwd behavior:
41
+ // capture source seat's resolved cwd so the Use-as-starter
42
+ // snippet can emit `cwd: <source_cwd>`. nodeCwd may be null when
43
+ // the source node has no recorded cwd (legacy fixture or seat
44
+ // pre-cwd-capture); manifest field is omitted in that case.
45
+ ...(nodeCwd ? { sourceCwd: nodeCwd } : {}),
46
+ createdAt: this.now().toISOString(),
47
+ ...(opts.notes !== undefined ? { notes: opts.notes } : {}),
48
+ files: [],
49
+ ...(opts.estimatedTokens !== undefined ? { estimatedTokens: opts.estimatedTokens } : {}),
50
+ ...(opts.lineage !== undefined ? { lineage: [...opts.lineage] } : {}),
51
+ };
52
+ const fileContents = opts.files ?? new Map();
53
+ const imagePath = this.deps.agentImageLibrary.install(this.deps.targetRoot, manifest, fileContents);
54
+ this.deps.agentImageLibrary.scan();
55
+ return { imageId: `agent-image:${name}:${version}`, imagePath, manifest };
56
+ }
57
+ }
58
+ //# sourceMappingURL=snapshot-capturer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-capturer.js","sourceRoot":"","sources":["../../../src/domain/agent-images/snapshot-capturer.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,7 @@ import type { ResolvedStartupFile } from "./runtime-adapter.js";
4
4
  * Mirrors the v0 wrapper-tier `bin/agent-starter-resolve` semantics:
5
5
  * read the named registry entry; run the path-aware no-credentials scan;
6
6
  * THROW on a failed scan (the orchestrator MUST treat any throw as a
7
- * hard launch failure see review-independent finding 2 in the slice
8
- * IMPL); on a clean scan, emit a `ResolvedStartupFile[]` rooted at the
7
+ * hard launch failure); on a clean scan, emit a `ResolvedStartupFile[]` rooted at the
9
8
  * registry directory.
10
9
  *
11
10
  * v0 wrapper references:
@@ -35,12 +34,8 @@ export interface AgentStarterResolverOpts {
35
34
  * `os.homedir()`).
36
35
  */
37
36
  homeDirRoot?: string;
38
- /**
39
- * Substrate fallback consulted last for dogfood proofs. Defaults to
40
- * the v0 prototype location at
41
- * `~/code/substrate/shared-docs/openrig-work/specs/agent-starters/`.
42
- */
43
- substrateFallback?: string;
37
+ /** Optional fallback consulted last when the home registry is absent. */
38
+ fallbackRoot?: string;
44
39
  exists?: ExistsFn;
45
40
  readFile?: ReadFileFn;
46
41
  /** Test seam: lets unit tests inject a controlled env map. */
@@ -51,8 +46,8 @@ export interface AgentStarterResolveResult {
51
46
  registryPath: string;
52
47
  }
53
48
  /**
54
- * Thrown by `resolveStarter` when the no-credentials scan fails. Per
55
- * review-independent finding 2, the resolver MUST throw rather than
49
+ * Thrown by `resolveStarter` when the no-credentials scan fails. The
50
+ * resolver MUST throw rather than
56
51
  * return a structured "ok: false" result the orchestrator could ignore;
57
52
  * a failed scan is a hard refusal point that aborts the launch.
58
53
  */
@@ -70,13 +65,12 @@ export declare class AgentStarterResolver {
70
65
  getRegistryRoot(): string;
71
66
  /**
72
67
  * Look up the registry root via the documented chain:
73
- * opts.registryRoot > env[envVarName] > homeDirRoot (if exists) > substrateFallback
68
+ * opts.registryRoot > env[envVarName] > homeDirRoot (if exists) > fallbackRoot
74
69
  *
75
- * The first three are explicit; the substrate fallback is the dogfood
76
- * default and always returns even if the path doesn't exist (resolveStarter
77
- * will throw with a missing-entry error when the fallback is dead). This
78
- * keeps the constructor side-effect-free; the file-existence check lives
79
- * inside `resolveStarter`.
70
+ * The fallback returns even if the path doesn't exist. `resolveStarter`
71
+ * throws a missing-entry error when the selected root is dead. This keeps
72
+ * the constructor side-effect-free; the file-existence check lives inside
73
+ * `resolveStarter`.
80
74
  */
81
75
  static resolveRegistryRoot(opts: AgentStarterResolverOpts, exists: ExistsFn): string;
82
76
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent-starter-resolver.d.ts","sourceRoot":"","sources":["../../src/domain/agent-starter-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AACjD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,qCAAsC,SAAQ,KAAK;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAMhD;AAOD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;gBAE1B,IAAI,GAAE,wBAA6B;IAM/C,uCAAuC;IACvC,eAAe,IAAI,MAAM;IAIzB;;;;;;;;;OASG;IACH,MAAM,CAAC,mBAAmB,CACxB,IAAI,EAAE,wBAAwB,EAC9B,MAAM,EAAE,QAAQ,GACf,MAAM;IAkBT;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB;CAgExD"}
1
+ {"version":3,"file":"agent-starter-resolver.d.ts","sourceRoot":"","sources":["../../src/domain/agent-starter-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AACjD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,qCAAsC,SAAQ,KAAK;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAMhD;AAID,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;gBAE1B,IAAI,GAAE,wBAA6B;IAM/C,uCAAuC;IACvC,eAAe,IAAI,MAAM;IAIzB;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,CACxB,IAAI,EAAE,wBAAwB,EAC9B,MAAM,EAAE,QAAQ,GACf,MAAM;IAkBT;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB;CAgExD"}
@@ -2,8 +2,8 @@ import { existsSync, readFileSync } from "node:fs";
2
2
  import { join, basename } from "node:path";
3
3
  import os from "node:os";
4
4
  /**
5
- * Thrown by `resolveStarter` when the no-credentials scan fails. Per
6
- * review-independent finding 2, the resolver MUST throw rather than
5
+ * Thrown by `resolveStarter` when the no-credentials scan fails. The
6
+ * resolver MUST throw rather than
7
7
  * return a structured "ok: false" result the orchestrator could ignore;
8
8
  * a failed scan is a hard refusal point that aborts the launch.
9
9
  */
@@ -19,7 +19,6 @@ export class AgentStarterCredentialScanFailedError extends Error {
19
19
  }
20
20
  const DEFAULT_ENV_VAR = "OPENRIG_AGENT_STARTER_ROOT";
21
21
  const DEFAULT_HOME_SUBPATH = ".openrig/agent-starters";
22
- const DEFAULT_SUBSTRATE_FALLBACK = "/Users/wrandom/code/substrate/shared-docs/openrig-work/specs/agent-starters";
23
22
  export class AgentStarterResolver {
24
23
  registryRoot;
25
24
  exists;
@@ -35,13 +34,12 @@ export class AgentStarterResolver {
35
34
  }
36
35
  /**
37
36
  * Look up the registry root via the documented chain:
38
- * opts.registryRoot > env[envVarName] > homeDirRoot (if exists) > substrateFallback
37
+ * opts.registryRoot > env[envVarName] > homeDirRoot (if exists) > fallbackRoot
39
38
  *
40
- * The first three are explicit; the substrate fallback is the dogfood
41
- * default and always returns even if the path doesn't exist (resolveStarter
42
- * will throw with a missing-entry error when the fallback is dead). This
43
- * keeps the constructor side-effect-free; the file-existence check lives
44
- * inside `resolveStarter`.
39
+ * The fallback returns even if the path doesn't exist. `resolveStarter`
40
+ * throws a missing-entry error when the selected root is dead. This keeps
41
+ * the constructor side-effect-free; the file-existence check lives inside
42
+ * `resolveStarter`.
45
43
  */
46
44
  static resolveRegistryRoot(opts, exists) {
47
45
  if (typeof opts.registryRoot === "string" && opts.registryRoot !== "") {
@@ -58,7 +56,7 @@ export class AgentStarterResolver {
58
56
  if (exists(homeBase)) {
59
57
  return homeBase;
60
58
  }
61
- return opts.substrateFallback ?? DEFAULT_SUBSTRATE_FALLBACK;
59
+ return opts.fallbackRoot ?? homeBase;
62
60
  }
63
61
  /**
64
62
  * Resolve a starter by registry name. THROWS on:
@@ -103,8 +101,8 @@ export class AgentStarterResolver {
103
101
  }
104
102
  // Path-aware + content-aware credential scan. Mirrors the v0 wrapper
105
103
  // helper at `specs/agent-starters/lib/agent-starter-helpers.sh`
106
- // `scan_starter_file`. THROWS on match (per finding 2: refuse, do
107
- // not return).
104
+ // `scan_starter_file`. THROWS on match instead of returning a
105
+ // recoverable result.
108
106
  const scanResult = scanForCredentials(content, registryPath);
109
107
  if (!scanResult.ok) {
110
108
  throw new AgentStarterCredentialScanFailedError(name, scanResult.reason);
@@ -164,7 +162,7 @@ function scanForCredentials(content, filePath) {
164
162
  // the deny-list is meant to catch. Operators see refusal code + line
165
163
  // number + file path; that's enough to triage. Closes the v0 wrapper
166
164
  // diagnostic-`match`-field caveat at the daemon-tier productization
167
- // layer (per M1 Revision 2 finding 3).
165
+ // layer.
168
166
  for (const literal of CRED_PATH_LITERALS) {
169
167
  if (line.includes(literal)) {
170
168
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-starter-resolver.js","sourceRoot":"","sources":["../../src/domain/agent-starter-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-starter-resolver.js","sourceRoot":"","sources":["../../src/domain/agent-starter-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type Database from "better-sqlite3";
2
2
  import type { EventBus } from "./event-bus.js";
3
3
  /**
4
- * Classifier lease manager (PL-004 Phase B; L2 founder-resolved).
4
+ * Classifier lease manager (PL-004 Phase B).
5
5
  *
6
6
  * Daemon-enforced single-writer lease for the project (classifier) primitive.
7
7
  * Per PRD § L2 hard rule + slice IMPL § Guard Checkpoint Focus item 2:
@@ -1,6 +1,6 @@
1
1
  import { ulid } from "ulid";
2
2
  /**
3
- * Classifier lease manager (PL-004 Phase B; L2 founder-resolved).
3
+ * Classifier lease manager (PL-004 Phase B).
4
4
  *
5
5
  * Daemon-enforced single-writer lease for the project (classifier) primitive.
6
6
  * Per PRD § L2 hard rule + slice IMPL § Guard Checkpoint Focus item 2:
@@ -1 +1 @@
1
- {"version":3,"file":"conflict-detector.d.ts","sourceRoot":"","sources":["../../src/domain/conflict-detector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAgB,MAAM,sBAAsB,CAAC;AAExF,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,KAAK,GACR,kBAAkB,CA6FpB;AAID,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,KAAK,EAAE,eAAe,GACrB,wBAAwB,CAyB1B"}
1
+ {"version":3,"file":"conflict-detector.d.ts","sourceRoot":"","sources":["../../src/domain/conflict-detector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAgB,MAAM,sBAAsB,CAAC;AAExF,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,KAAK,GACR,kBAAkB,CAiGpB;AAID,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,KAAK,EAAE,eAAe,GACrB,wBAAwB,CAyB1B"}
@@ -2,8 +2,8 @@ import { createHash } from "node:crypto";
2
2
  function hashContent(content) {
3
3
  return createHash("sha256").update(content).digest("hex");
4
4
  }
5
- const MANAGED_BLOCK_START = (packageName) => `<!-- BEGIN RIGGED MANAGED BLOCK: ${packageName} -->`;
6
- const MANAGED_BLOCK_END = (packageName) => `<!-- END RIGGED MANAGED BLOCK: ${packageName} -->`;
5
+ const MANAGED_BLOCK_START = (packageName) => `<!-- BEGIN OpenRig MANAGED BLOCK: ${packageName} -->`;
6
+ const MANAGED_BLOCK_END = (packageName) => `<!-- END OpenRig MANAGED BLOCK: ${packageName} -->`;
7
7
  /**
8
8
  * Refines an InstallPlan with content-aware conflict detection.
9
9
  * - Skills/agents: same content = no-op, different content = conflict with hashes
@@ -74,7 +74,10 @@ export function detectConflicts(plan, fs) {
74
74
  const targetContent = fs.readFile(entry.targetPath);
75
75
  const beginMarker = MANAGED_BLOCK_START(plan.packageName);
76
76
  const endMarker = MANAGED_BLOCK_END(plan.packageName);
77
- const hasExistingBlock = targetContent.includes(beginMarker) && targetContent.includes(endMarker);
77
+ const legacyBegin = `<!-- BEGIN RIGGED MANAGED BLOCK: ${plan.packageName} -->`;
78
+ const legacyEnd = `<!-- END RIGGED MANAGED BLOCK: ${plan.packageName} -->`;
79
+ const hasExistingBlock = (targetContent.includes(beginMarker) && targetContent.includes(endMarker)) ||
80
+ (targetContent.includes(legacyBegin) && targetContent.includes(legacyEnd));
78
81
  const refined = {
79
82
  ...entry,
80
83
  guidanceMeta: { hasExistingBlock },
@@ -1 +1 @@
1
- {"version":3,"file":"conflict-detector.js","sourceRoot":"","sources":["../../src/domain/conflict-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conflict-detector.js","sourceRoot":"","sources":["../../src/domain/conflict-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAazC,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAClD,qCAAqC,WAAW,MAAM,CAAC;AACzD,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAChD,mCAAmC,WAAW,MAAM,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAiB,EACjB,EAAS;IAET,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAuB,EAAE,CAAC;IAE1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,gCAAgC;QAChC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QAED,wEAAwE;QACxE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,yCAAyC;gBACzC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,SAAS;YACX,CAAC;YAED,kCAAkC;YAClC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACpD,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;gBAC9C,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;gBAEhD,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;oBAChC,uBAAuB;oBACvB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC9C,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACN,wCAAwC;oBACxC,MAAM,QAAQ,GAAqB;wBACjC,GAAG,KAAK;wBACR,QAAQ,EAAE;4BACR,YAAY,EAAE,KAAK,CAAC,UAAU;4BAC9B,YAAY;4BACZ,UAAU;4BACV,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,iCAAiC;yBACnB;qBACjE,CAAC;oBACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;gBACvC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC3C,mCAAmC;YACnC,IAAI,KAAK,CAAC,cAAc,KAAK,eAAe,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5E,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACtD,MAAM,WAAW,GAAG,oCAAoC,IAAI,CAAC,WAAW,MAAM,CAAC;gBAC/E,MAAM,SAAS,GAAG,kCAAkC,IAAI,CAAC,WAAW,MAAM,CAAC;gBAC3E,MAAM,gBAAgB,GACpB,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC1E,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBAE7E,MAAM,OAAO,GAA+D;oBAC1E,GAAG,KAAK;oBACR,YAAY,EAAE,EAAE,gBAAgB,EAAE;iBAC0B,CAAC;gBAE/D,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,UAAU;QACnB,UAAU;QACV,QAAQ;QACR,SAAS;QACT,KAAK;KACN,CAAC;AACJ,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAAkB,EAClB,UAAkB,EAClB,QAAgB,EAChB,aAAiC,EACjC,KAAsB;IAEtB,oDAAoD;IACpD,IAAI,QAAQ,KAAK,UAAU,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;QACjE,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -11,9 +11,9 @@ interface ClaudeContextProvisioner {
11
11
  checkReady?(binding: NodeBinding): Promise<ReadinessResult>;
12
12
  }
13
13
  /**
14
- * Polls known managed Claude sidecar files and persists the latest
15
- * normalized context telemetry. Scheduler-only: no queries, no response
16
- * shaping, no in-memory truth.
14
+ * Polls known managed runtime context sources and persists the latest
15
+ * normalized telemetry. Scheduler-only: no queries, no response shaping,
16
+ * no in-memory truth.
17
17
  */
18
18
  export declare class ContextMonitor {
19
19
  private db;
@@ -27,8 +27,9 @@ export declare class ContextMonitor {
27
27
  start(intervalMs?: number): void;
28
28
  /** Stop polling. Safe to call before start or multiple times. */
29
29
  stop(): void;
30
- /** Query for managed Claude sessions that are currently running. */
30
+ /** Query for managed runtime sessions with readable context sources. */
31
31
  private getEligibleSessions;
32
+ private readContextUsage;
32
33
  private normalizeStartupStatus;
33
34
  }
34
35
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"context-monitor.d.ts","sourceRoot":"","sources":["../../src/domain/context-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAU/C,UAAU,wBAAwB;IAChC,sBAAsB,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5F,UAAU,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,wBAAwB,CAAkC;IAClE,OAAO,CAAC,KAAK,CAA+C;gBAG1D,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,iBAAiB,EACxB,wBAAwB,CAAC,EAAE,wBAAwB;IAOrD,4EAA4E;IACtE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB/B,uDAAuD;IACvD,KAAK,CAAC,UAAU,GAAE,MAAiC,GAAG,IAAI;IAW1D,iEAAiE;IACjE,IAAI,IAAI,IAAI;IAOZ,oEAAoE;IACpE,OAAO,CAAC,mBAAmB;YAmBb,sBAAsB;CAsCrC"}
1
+ {"version":3,"file":"context-monitor.d.ts","sourceRoot":"","sources":["../../src/domain/context-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAY/C,UAAU,wBAAwB;IAChC,sBAAsB,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5F,UAAU,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,wBAAwB,CAAkC;IAClE,OAAO,CAAC,KAAK,CAA+C;gBAG1D,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,iBAAiB,EACxB,wBAAwB,CAAC,EAAE,wBAAwB;IAOrD,4EAA4E;IACtE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB/B,uDAAuD;IACvD,KAAK,CAAC,UAAU,GAAE,MAAiC,GAAG,IAAI;IAW1D,iEAAiE;IACjE,IAAI,IAAI,IAAI;IAOZ,wEAAwE;IACxE,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,gBAAgB;YAeV,sBAAsB;CAuCrC"}
@@ -2,9 +2,9 @@ import { isAttentionRequiredReadinessCode, } from "./runtime-adapter.js";
2
2
  /** Default polling interval: 30 seconds. */
3
3
  export const DEFAULT_POLL_INTERVAL_MS = 30_000;
4
4
  /**
5
- * Polls known managed Claude sidecar files and persists the latest
6
- * normalized context telemetry. Scheduler-only: no queries, no response
7
- * shaping, no in-memory truth.
5
+ * Polls known managed runtime context sources and persists the latest
6
+ * normalized telemetry. Scheduler-only: no queries, no response shaping,
7
+ * no in-memory truth.
8
8
  */
9
9
  export class ContextMonitor {
10
10
  db;
@@ -21,11 +21,7 @@ export class ContextMonitor {
21
21
  const sessions = this.getEligibleSessions();
22
22
  for (const session of sessions) {
23
23
  try {
24
- this.claudeContextProvisioner?.ensureContextCollector({
25
- cwd: session.cwd ?? undefined,
26
- tmuxSession: session.session_name,
27
- });
28
- const usage = this.store.readAndNormalize(session.session_name);
24
+ const usage = this.readContextUsage(session);
29
25
  this.store.persist(session.node_id, usage);
30
26
  }
31
27
  catch {
@@ -57,26 +53,45 @@ export class ContextMonitor {
57
53
  this.timer = null;
58
54
  }
59
55
  }
60
- /** Query for managed Claude sessions that are currently running. */
56
+ /** Query for managed runtime sessions with readable context sources. */
61
57
  getEligibleSessions() {
62
58
  return this.db.prepare(`
63
59
  SELECT
64
60
  n.id as node_id,
65
61
  s.id as session_id,
66
62
  s.session_name,
63
+ n.runtime,
64
+ s.resume_token,
67
65
  n.cwd,
68
66
  s.startup_status
69
67
  FROM nodes n
70
68
  JOIN sessions s ON s.node_id = n.id
71
69
  AND s.id = (SELECT s2.id FROM sessions s2 WHERE s2.node_id = n.id ORDER BY s2.id DESC LIMIT 1)
72
70
  LEFT JOIN bindings b ON b.node_id = n.id
73
- WHERE n.runtime = 'claude-code'
74
- AND s.status = 'running'
71
+ WHERE (
72
+ (n.runtime = 'claude-code' AND s.status = 'running')
73
+ OR (n.runtime = 'codex' AND s.resume_token IS NOT NULL)
74
+ )
75
75
  AND COALESCE(b.attachment_type, 'tmux') = 'tmux'
76
76
  AND COALESCE(b.tmux_session, s.session_name) IS NOT NULL
77
77
  `).all();
78
78
  }
79
+ readContextUsage(session) {
80
+ if (session.runtime === "codex") {
81
+ return this.store.readCodexAndNormalize({
82
+ threadId: session.resume_token,
83
+ sessionName: session.session_name,
84
+ });
85
+ }
86
+ this.claudeContextProvisioner?.ensureContextCollector({
87
+ cwd: session.cwd ?? undefined,
88
+ tmuxSession: session.session_name,
89
+ });
90
+ return this.store.readAndNormalize(session.session_name);
91
+ }
79
92
  async normalizeStartupStatus(session) {
93
+ if (session.runtime !== "claude-code")
94
+ return;
80
95
  if (!this.claudeContextProvisioner?.checkReady)
81
96
  return;
82
97
  if (session.startup_status !== "failed" && session.startup_status !== "attention_required")
@@ -1 +1 @@
1
- {"version":3,"file":"context-monitor.js","sourceRoot":"","sources":["../../src/domain/context-monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-monitor.js","sourceRoot":"","sources":["../../src/domain/context-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { type ContextPackEntry } from "./context-pack-types.js";
2
+ export interface AssembledBundle {
3
+ /** Concatenated bundle string ready for SessionTransport.send. */
4
+ text: string;
5
+ /** Total length in bytes of the assembled string (UTF-8 encoded). */
6
+ bytes: number;
7
+ /** Daemon-derived estimate (chars / 4 rounded). */
8
+ estimatedTokens: number;
9
+ /** Per-file metadata threaded through assembly for the dry-run preview. */
10
+ files: Array<{
11
+ path: string;
12
+ role: string;
13
+ bytes: number;
14
+ estimatedTokens: number;
15
+ }>;
16
+ /** Files that were referenced in the manifest but missing on disk;
17
+ * surfaced as a warning in the preview rather than a hard fail so
18
+ * operator can repair. */
19
+ missingFiles: Array<{
20
+ path: string;
21
+ role: string;
22
+ }>;
23
+ }
24
+ export interface AssembleOpts {
25
+ packEntry: ContextPackEntry;
26
+ /** Defaults to readFileSync; injected for tests. */
27
+ readFile?: (absPath: string) => string;
28
+ }
29
+ /**
30
+ * Assembles a context pack into a single paste-ready string.
31
+ *
32
+ * Frame:
33
+ * # OpenRig Context Pack: <name> v<version>
34
+ * <purpose, if any>
35
+ *
36
+ * ## File: <path> (role: <role>)
37
+ * <file contents>
38
+ *
39
+ * ## File: <path> (role: <role>)
40
+ * <file contents>
41
+ *
42
+ * ...
43
+ *
44
+ * Each file is separated by a blank line so adjacent contents don't
45
+ * accidentally merge into a contiguous markdown block. Missing files
46
+ * are skipped (operator sees them in `missingFiles` for repair).
47
+ */
48
+ export declare function assembleBundle(opts: AssembleOpts): AssembledBundle;
49
+ //# sourceMappingURL=bundle-assembler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-assembler.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/bundle-assembler.ts"],"names":[],"mappings":"AAaA,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrF;;+BAE2B;IAC3B,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CACxC;AAKD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,CAmDlE"}
@@ -0,0 +1,81 @@
1
+ // Rig Context / Composable Context Injection v0 (PL-014) — bundle
2
+ // assembler.
3
+ //
4
+ // Concatenates a context_pack's included files into a single coherent
5
+ // paste-ready string. Each file gets a `## File: <path> (role: <role>)`
6
+ // header so the destination seat can recognize the bundle structure.
7
+ // The full bundle leads with a one-line manifest summary so the
8
+ // destination has at-a-glance context.
9
+ //
10
+ // One coherent paste, NOT N separate sends — matches PRD § Item 5: "the
11
+ // seat receives the pack as a single coherent priming injection."
12
+ import { readFileSync } from "node:fs";
13
+ import { ContextPackError } from "./context-pack-types.js";
14
+ import { estimateTokensFromBytes } from "./context-pack-library-service.js";
15
+ const PACK_HEADER_PREFIX = "# OpenRig Context Pack:";
16
+ const FILE_HEADER_PREFIX = "## File:";
17
+ /**
18
+ * Assembles a context pack into a single paste-ready string.
19
+ *
20
+ * Frame:
21
+ * # OpenRig Context Pack: <name> v<version>
22
+ * <purpose, if any>
23
+ *
24
+ * ## File: <path> (role: <role>)
25
+ * <file contents>
26
+ *
27
+ * ## File: <path> (role: <role>)
28
+ * <file contents>
29
+ *
30
+ * ...
31
+ *
32
+ * Each file is separated by a blank line so adjacent contents don't
33
+ * accidentally merge into a contiguous markdown block. Missing files
34
+ * are skipped (operator sees them in `missingFiles` for repair).
35
+ */
36
+ export function assembleBundle(opts) {
37
+ const { packEntry } = opts;
38
+ const reader = opts.readFile ?? ((p) => readFileSync(p, "utf-8"));
39
+ const sections = [];
40
+ sections.push(`${PACK_HEADER_PREFIX} ${packEntry.name} v${packEntry.version}`);
41
+ if (packEntry.purpose) {
42
+ sections.push(packEntry.purpose.trim());
43
+ }
44
+ const files = [];
45
+ const missingFiles = [];
46
+ for (const f of packEntry.files) {
47
+ if (f.absolutePath === null) {
48
+ missingFiles.push({ path: f.path, role: f.role });
49
+ continue;
50
+ }
51
+ let content;
52
+ try {
53
+ content = reader(f.absolutePath);
54
+ }
55
+ catch (err) {
56
+ throw new ContextPackError("file_read_failed", `failed to read pack file ${f.absolutePath}: ${err.message}`, { packId: packEntry.id, path: f.path });
57
+ }
58
+ const headerLine = f.summary
59
+ ? `${FILE_HEADER_PREFIX} ${f.path} (role: ${f.role}) — ${f.summary}`
60
+ : `${FILE_HEADER_PREFIX} ${f.path} (role: ${f.role})`;
61
+ sections.push(headerLine);
62
+ sections.push(content.trimEnd());
63
+ const bytes = Buffer.byteLength(content, "utf-8");
64
+ files.push({
65
+ path: f.path,
66
+ role: f.role,
67
+ bytes,
68
+ estimatedTokens: estimateTokensFromBytes(bytes),
69
+ });
70
+ }
71
+ const text = sections.join("\n\n") + "\n";
72
+ const bytes = Buffer.byteLength(text, "utf-8");
73
+ return {
74
+ text,
75
+ bytes,
76
+ estimatedTokens: estimateTokensFromBytes(bytes),
77
+ files,
78
+ missingFiles,
79
+ };
80
+ }
81
+ //# sourceMappingURL=bundle-assembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-assembler.js","sourceRoot":"","sources":["../../../src/domain/context-packs/bundle-assembler.ts"],"names":[],"mappings":"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"}