@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,103 @@
1
+ // Slice Story View v1 — slice → workflow_instance binding helper.
2
+ //
3
+ // Given a slice's qitem set, find the workflow_instance(s) that touch
4
+ // any of those qitems. Two signals (UNION):
5
+ //
6
+ // 1. workflow_step_trails.prior_qitem_id IN (slice qitems) -- step closure
7
+ // OR workflow_step_trails.next_qitem_id IN (slice qitems) -- step projection
8
+ // → instance has historically touched this slice
9
+ // 2. workflow_instances.current_frontier_json LIKE '%qitemId%'
10
+ // → instance is currently active on a slice qitem
11
+ //
12
+ // Returns the instance id(s) sorted by created_at DESC. v1 picks the
13
+ // most-recent instance when multiple bind to the slice (per PRD: "when
14
+ // a slice has more than one workflow_instance, v1 picks the most recent
15
+ // or surfaces a 'multiple instances' indicator; driver picks the exact
16
+ // UX with review at audit time"). The picked-most-recent
17
+ // behavior is the operator-friendly default; the multiple-instance
18
+ // indicator is exposed via the `additionalInstanceIds` field so the UI
19
+ // can surface a "+N more" hint without losing data.
20
+ //
21
+ // MVP single-host context: this query runs ad-hoc per slice detail
22
+ // fetch; not cached. The detail projector itself caches at the slice
23
+ // indexer's TTL boundary.
24
+ export function findSliceWorkflowBinding(db, qitemIds) {
25
+ if (qitemIds.length === 0)
26
+ return { primary: null, additionalInstanceIds: [] };
27
+ const instanceIds = new Set();
28
+ // Signal 1: trails referencing slice qitems via prior_qitem_id or next_qitem_id.
29
+ try {
30
+ const placeholders = qitemIds.map(() => "?").join(",");
31
+ const trailRows = db.prepare(`SELECT DISTINCT instance_id FROM workflow_step_trails
32
+ WHERE prior_qitem_id IN (${placeholders})
33
+ OR next_qitem_id IN (${placeholders})`).all(...qitemIds, ...qitemIds);
34
+ for (const r of trailRows)
35
+ instanceIds.add(r.instance_id);
36
+ }
37
+ catch {
38
+ // workflow_step_trails absent — skip
39
+ }
40
+ // Signal 2: live frontier on a slice qitem (active step packet).
41
+ // current_frontier_json is a JSON array of strings; LIKE '%"qitem"%'
42
+ // is a cheap heuristic that matches the JSON-encoded form. False
43
+ // positives possible if a qitem id appears as a substring of an
44
+ // unrelated id, but ULID prefix discipline (timestamps + random) makes
45
+ // collisions astronomically unlikely at single-host MVP scale.
46
+ try {
47
+ for (const qid of qitemIds) {
48
+ const liveRows = db.prepare(`SELECT instance_id FROM workflow_instances
49
+ WHERE current_frontier_json LIKE ?`).all(`%${qid}%`);
50
+ for (const r of liveRows)
51
+ instanceIds.add(r.instance_id);
52
+ }
53
+ }
54
+ catch {
55
+ // workflow_instances absent — skip
56
+ }
57
+ if (instanceIds.size === 0)
58
+ return { primary: null, additionalInstanceIds: [] };
59
+ // Resolve full rows; sort by created_at DESC; pick most recent as primary.
60
+ const idList = Array.from(instanceIds);
61
+ const idPlaceholders = idList.map(() => "?").join(",");
62
+ let rows = [];
63
+ try {
64
+ rows = db.prepare(`SELECT instance_id, workflow_name, workflow_version, status,
65
+ current_frontier_json, current_step_id, hop_count,
66
+ created_at, completed_at
67
+ FROM workflow_instances
68
+ WHERE instance_id IN (${idPlaceholders})
69
+ ORDER BY created_at DESC, instance_id DESC`).all(...idList);
70
+ }
71
+ catch {
72
+ return { primary: null, additionalInstanceIds: [] };
73
+ }
74
+ if (rows.length === 0)
75
+ return { primary: null, additionalInstanceIds: [] };
76
+ const primary = rowToBinding(rows[0]);
77
+ const additional = rows.slice(1).map((r) => r.instance_id);
78
+ return { primary, additionalInstanceIds: additional };
79
+ }
80
+ function rowToBinding(row) {
81
+ let frontier = [];
82
+ try {
83
+ const parsed = JSON.parse(row.current_frontier_json);
84
+ if (Array.isArray(parsed))
85
+ frontier = parsed.filter((x) => typeof x === "string");
86
+ }
87
+ catch {
88
+ // malformed JSON — empty frontier (instance is in a degraded state;
89
+ // the v1 UI will still render the bound workflow_name + status).
90
+ }
91
+ return {
92
+ instanceId: row.instance_id,
93
+ workflowName: row.workflow_name,
94
+ workflowVersion: row.workflow_version,
95
+ status: row.status,
96
+ currentStepId: row.current_step_id,
97
+ currentFrontier: frontier,
98
+ hopCount: row.hop_count,
99
+ createdAt: row.created_at,
100
+ completedAt: row.completed_at,
101
+ };
102
+ }
103
+ //# sourceMappingURL=slice-workflow-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice-workflow-binding.js","sourceRoot":"","sources":["../../../src/domain/workflow/slice-workflow-binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import type { WorkflowSpec } from "../workflow-types.js";
2
+ export interface SpecGraphNode {
3
+ /** step.id (e.g., "discovery"). */
4
+ stepId: string;
5
+ /** Display label = step.role title with id fallback. */
6
+ label: string;
7
+ /** step.actor_role (e.g., "discovery-router"). */
8
+ role: string;
9
+ /** First preferred_target seat for this role, when declared. UI uses
10
+ * this to compose PL-019 activity indicators on the spec node. */
11
+ preferredTarget: string | null;
12
+ /** True for the spec's entry step (the one workflow_instance starts on). */
13
+ isEntry: boolean;
14
+ /** True when this is the active step on the bound instance. */
15
+ isCurrent: boolean;
16
+ /** True when this step has no next_hop pointing forward (possible terminal). */
17
+ isTerminal: boolean;
18
+ }
19
+ export interface SpecGraphEdge {
20
+ fromStepId: string;
21
+ toStepId: string;
22
+ /** "direct" only at v1 — Phase D's spec format does not carry
23
+ * routing_type yet (audit row 6 carve-out). */
24
+ routingType: "direct";
25
+ /** True when this edge is the loop-back edge (target step earlier in
26
+ * declared order than source). UI uses this to optionally curve the
27
+ * edge differently from forward edges. */
28
+ isLoopBack: boolean;
29
+ }
30
+ export interface SpecGraphPayload {
31
+ specName: string;
32
+ specVersion: string;
33
+ nodes: SpecGraphNode[];
34
+ edges: SpecGraphEdge[];
35
+ }
36
+ export interface PhaseDefinition {
37
+ /** step.id (the canonical phase tag). */
38
+ id: string;
39
+ /** Human label = role title fallback to step.id. */
40
+ label: string;
41
+ role: string;
42
+ }
43
+ export interface CurrentStepPayload {
44
+ stepId: string;
45
+ role: string;
46
+ objective: string | null;
47
+ /** Phase D's WorkflowStepSpec.allowed_exits enum subset. */
48
+ allowedExits: string[];
49
+ /** Resolved next-step destinations from next_hop.suggested_roles
50
+ * mapped back to step ids. Empty array when no next_hop or no roles. */
51
+ allowedNextSteps: Array<{
52
+ stepId: string;
53
+ role: string;
54
+ reason: "next_hop";
55
+ }>;
56
+ hopCount: number;
57
+ instanceStatus: string;
58
+ }
59
+ /**
60
+ * Projects the spec graph for the Topology tab. Nodes are ordered by
61
+ * the spec's declared step order; edges are derived from each step's
62
+ * next_hop.suggested_roles list resolved back to step ids.
63
+ */
64
+ export declare function projectSpecGraph(spec: WorkflowSpec, currentStepId: string | null): SpecGraphPayload;
65
+ /**
66
+ * Projects the spec's phase definitions. Each step contributes one phase
67
+ * (canonical tag = step.id; label = step.actor_role). The Story tab
68
+ * groups events by phase id when a step trail exists for the event's
69
+ * qitem; events without a trail mapping render in an "untagged" group
70
+ * (the UI decides the literal label).
71
+ */
72
+ export declare function projectPhaseDefinitions(spec: WorkflowSpec): PhaseDefinition[];
73
+ /**
74
+ * Projects the Current Step payload from the spec + the bound instance's
75
+ * current_step_id. Returns null when current_step_id is null (terminal
76
+ * instance) or doesn't resolve against the spec (instance instantiated
77
+ * against a different spec version that has since changed shape — UI
78
+ * surfaces this as "current step unknown").
79
+ */
80
+ export declare function projectCurrentStep(spec: WorkflowSpec, currentStepId: string | null, hopCount: number, instanceStatus: string): CurrentStepPayload | null;
81
+ //# sourceMappingURL=slice-workflow-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice-workflow-projection.d.ts","sourceRoot":"","sources":["../../../src/domain/workflow/slice-workflow-projection.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb;uEACmE;IACnE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB;oDACgD;IAChD,WAAW,EAAE,QAAQ,CAAC;IACtB;;+CAE2C;IAC3C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4DAA4D;IAC5D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;6EACyE;IACzE,gBAAgB,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,gBAAgB,CA+ClB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,EAAE,CAM7E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,kBAAkB,GAAG,IAAI,CAuB3B"}
@@ -0,0 +1,127 @@
1
+ // Slice Story View v1 — workflow_spec → per-tab payload projection.
2
+ //
3
+ // Given a SliceWorkflowBinding (the resolved instance) and the bound
4
+ // WorkflowSpec (read through Phase D's WorkflowSpecCache), project the
5
+ // four v1-floor dimensions:
6
+ //
7
+ // 1. specGraph — nodes (one per step) + edges (from each step's
8
+ // next_hop.suggested_roles → next-step ids). All edges carry
9
+ // routingType: "direct" because Phase D's spec format does NOT
10
+ // yet have a routing_type field (per audit row 6 carve-out:
11
+ // dimension #4 ships as default-styled solid edges only;
12
+ // routing-type metadata is v2+).
13
+ // 2. phaseDefinitions — step.id → { label, role } so the Story tab
14
+ // can group events by spec-declared phase tags. Replaces v0's
15
+ // hardcoded legacy phase taxonomy with spec-driven mapping.
16
+ // 3. currentStep — bound instance's current_step_id resolved against
17
+ // the spec, returning step.objective + allowed_exits + the
18
+ // enumerated next-step destinations from next_hop.
19
+ // 4. eventPhaseFor(stepId) — convenience used by SliceDetailProjector
20
+ // to tag each StoryEvent with the spec's phase id when the event
21
+ // can be mapped to a step (via workflow_step_trails join). When
22
+ // there is no mapping, the event stays untagged (UI renders it in
23
+ // the "Other" or "Untagged" group).
24
+ /**
25
+ * Projects the spec graph for the Topology tab. Nodes are ordered by
26
+ * the spec's declared step order; edges are derived from each step's
27
+ * next_hop.suggested_roles list resolved back to step ids.
28
+ */
29
+ export function projectSpecGraph(spec, currentStepId) {
30
+ const declaredOrder = spec.steps.map((s) => s.id);
31
+ const stepByRole = new Map();
32
+ for (const step of spec.steps) {
33
+ if (!stepByRole.has(step.actor_role))
34
+ stepByRole.set(step.actor_role, step);
35
+ }
36
+ const entryRole = spec.entry?.role ?? spec.steps[0]?.actor_role;
37
+ const entryStepId = entryRole ? stepByRole.get(entryRole)?.id : undefined;
38
+ const nodes = spec.steps.map((step) => {
39
+ const roleSpec = spec.roles[step.actor_role] ?? {};
40
+ const firstTarget = roleSpec.preferred_targets?.[0] ?? null;
41
+ return {
42
+ stepId: step.id,
43
+ label: step.actor_role,
44
+ role: step.actor_role,
45
+ preferredTarget: firstTarget,
46
+ isEntry: step.id === entryStepId,
47
+ isCurrent: step.id === currentStepId,
48
+ isTerminal: !hasNextHop(step),
49
+ };
50
+ });
51
+ const edges = [];
52
+ for (const step of spec.steps) {
53
+ const suggestedRoles = step.next_hop?.suggested_roles ?? [];
54
+ for (const role of suggestedRoles) {
55
+ const target = stepByRole.get(role);
56
+ if (!target)
57
+ continue;
58
+ const fromIdx = declaredOrder.indexOf(step.id);
59
+ const toIdx = declaredOrder.indexOf(target.id);
60
+ edges.push({
61
+ fromStepId: step.id,
62
+ toStepId: target.id,
63
+ routingType: "direct",
64
+ isLoopBack: toIdx >= 0 && fromIdx >= 0 && toIdx <= fromIdx,
65
+ });
66
+ }
67
+ }
68
+ return {
69
+ specName: spec.id,
70
+ specVersion: spec.version,
71
+ nodes,
72
+ edges,
73
+ };
74
+ }
75
+ /**
76
+ * Projects the spec's phase definitions. Each step contributes one phase
77
+ * (canonical tag = step.id; label = step.actor_role). The Story tab
78
+ * groups events by phase id when a step trail exists for the event's
79
+ * qitem; events without a trail mapping render in an "untagged" group
80
+ * (the UI decides the literal label).
81
+ */
82
+ export function projectPhaseDefinitions(spec) {
83
+ return spec.steps.map((step) => ({
84
+ id: step.id,
85
+ label: step.actor_role,
86
+ role: step.actor_role,
87
+ }));
88
+ }
89
+ /**
90
+ * Projects the Current Step payload from the spec + the bound instance's
91
+ * current_step_id. Returns null when current_step_id is null (terminal
92
+ * instance) or doesn't resolve against the spec (instance instantiated
93
+ * against a different spec version that has since changed shape — UI
94
+ * surfaces this as "current step unknown").
95
+ */
96
+ export function projectCurrentStep(spec, currentStepId, hopCount, instanceStatus) {
97
+ if (!currentStepId)
98
+ return null;
99
+ const step = spec.steps.find((s) => s.id === currentStepId);
100
+ if (!step)
101
+ return null;
102
+ const stepByRole = new Map();
103
+ for (const s of spec.steps) {
104
+ if (!stepByRole.has(s.actor_role))
105
+ stepByRole.set(s.actor_role, s);
106
+ }
107
+ const allowedNextSteps = [];
108
+ for (const role of step.next_hop?.suggested_roles ?? []) {
109
+ const target = stepByRole.get(role);
110
+ if (!target)
111
+ continue;
112
+ allowedNextSteps.push({ stepId: target.id, role, reason: "next_hop" });
113
+ }
114
+ return {
115
+ stepId: step.id,
116
+ role: step.actor_role,
117
+ objective: step.objective ?? null,
118
+ allowedExits: [...(step.allowed_exits ?? [])],
119
+ allowedNextSteps,
120
+ hopCount,
121
+ instanceStatus,
122
+ };
123
+ }
124
+ function hasNextHop(step) {
125
+ return (step.next_hop?.suggested_roles ?? []).length > 0;
126
+ }
127
+ //# sourceMappingURL=slice-workflow-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice-workflow-projection.js","sourceRoot":"","sources":["../../../src/domain/workflow/slice-workflow-projection.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,kEAAkE;AAClE,oEAAoE;AACpE,iEAAiE;AACjE,8DAA8D;AAC9D,sCAAsC;AACtC,qEAAqE;AACrE,mEAAmE;AACnE,iEAAiE;AACjE,uEAAuE;AACvE,gEAAgE;AAChE,wDAAwD;AACxD,wEAAwE;AACxE,sEAAsE;AACtE,qEAAqE;AACrE,uEAAuE;AACvE,yCAAyC;AA8DzC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAkB,EAClB,aAA4B;IAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAChE,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1E,MAAM,KAAK,GAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAI,IAAI,CAAC,KAA0D,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACzG,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC5D,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,eAAe,EAAE,WAAW;YAC5B,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,WAAW;YAChC,SAAS,EAAE,IAAI,CAAC,EAAE,KAAK,aAAa;YACpC,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;SAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC;gBACT,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,WAAW,EAAE,QAAQ;gBACrB,UAAU,EAAE,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,OAAO;aAC3D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,EAAE;QACjB,WAAW,EAAE,IAAI,CAAC,OAAO;QACzB,KAAK;QACL,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAkB;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,UAAU;QACtB,IAAI,EAAE,IAAI,CAAC,UAAU;KACtB,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAkB,EAClB,aAA4B,EAC5B,QAAgB,EAChB,cAAsB;IAEtB,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,gBAAgB,GAA2C,EAAE,CAAC;IACpE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,UAAU;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACjC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QAC7C,gBAAgB;QAChB,QAAQ;QACR,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAsB;IACxC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { type WorkflowSpecCache } from "../workflow-spec-cache.js";
2
+ export interface StarterSpecLoadResult {
3
+ /** Specs newly seeded into the cache during this call. */
4
+ loaded: Array<{
5
+ name: string;
6
+ version: string;
7
+ sourcePath: string;
8
+ }>;
9
+ /** Specs that were already cached (operator override or prior startup). */
10
+ skipped: Array<{
11
+ name: string;
12
+ version: string;
13
+ sourcePathInCache: string;
14
+ }>;
15
+ /** Specs that failed to parse / load — surfaced for diagnostic logging. */
16
+ errors: Array<{
17
+ sourcePath: string;
18
+ code: string;
19
+ message: string;
20
+ }>;
21
+ }
22
+ export interface StarterSpecLoaderOpts {
23
+ /** Phase D's workflow-spec-cache (already constructed in startup.ts). */
24
+ cache: WorkflowSpecCache;
25
+ /** Absolute directory containing built-in starter spec files (.yaml only at v0). */
26
+ builtinDir: string;
27
+ }
28
+ /**
29
+ * Walks the builtinDir and seeds each spec file into the cache, skipping
30
+ * those that are already cached for the same (name, version). Idempotent
31
+ * on repeated calls. Returns a structured result for diagnostic logging
32
+ * (which the daemon can log at INFO; tests assert on the shape).
33
+ *
34
+ * If the builtinDir doesn't exist, returns an empty result (no error) —
35
+ * a daemon shipped without bundled starter specs is a valid configuration.
36
+ */
37
+ export declare function loadStarterWorkflowSpecs(opts: StarterSpecLoaderOpts): StarterSpecLoadResult;
38
+ /**
39
+ * Resolves the default built-in starter directory relative to this
40
+ * loader file's location on disk. Works in both dev (running from
41
+ * `src/`) and prod (running from `dist/`) — the build step copies the
42
+ * workflow spec files to `dist/builtins/workflow-specs/` when bundled
43
+ * specs are present, so the resolved path works in both layouts.
44
+ *
45
+ * Layout: this file is at `<pkg>/{src|dist}/domain/workflow/`. The
46
+ * built-in dir is at `<pkg>/{src|dist}/builtins/workflow-specs/`. Two
47
+ * levels up from this file's dirname is the package's src/ or dist/
48
+ * root.
49
+ */
50
+ export declare function defaultBuiltinSpecsDir(): string;
51
+ //# sourceMappingURL=starter-spec-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter-spec-loader.d.ts","sourceRoot":"","sources":["../../../src/domain/workflow/starter-spec-loader.ts"],"names":[],"mappings":"AA0BA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,2EAA2E;IAC3E,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,2EAA2E;IAC3E,MAAM,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,KAAK,EAAE,iBAAiB,CAAC;IACzB,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,CAkF3F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAK/C"}
@@ -0,0 +1,140 @@
1
+ // Built-in workflow-spec loader.
2
+ //
3
+ // Walks a built-in starter directory at daemon startup and seeds each
4
+ // spec file into PL-004 Phase D's WorkflowSpecCache. Idempotent: on
5
+ // repeated startup (or when an operator has authored a competing spec
6
+ // at a workspace path), the loader SKIPS specs that are already cached
7
+ // for the same (name, version) — the workspace-surface reconciliation
8
+ // contract from Phase D requires that operator edits win at next read,
9
+ // so the loader must not clobber them.
10
+ //
11
+ // Why skip-if-present rather than always-readThrough:
12
+ // WorkflowSpecCache.readThrough(absPath) UPDATES the cached row's
13
+ // source_path to whatever the caller passes. If we called readThrough
14
+ // on the built-in path every startup, an operator-authored row at a
15
+ // workspace path would have its source_path overwritten back to the
16
+ // built-in path — silently undoing the operator's override. The
17
+ // skip-if-present check preserves the override.
18
+ //
19
+ // Resolution: operators who want to refresh the built-in row from the
20
+ // shipped file (e.g., after deleting a workspace override) can call
21
+ // `cache.readThrough(builtinAbsPath)` directly via a future explicit
22
+ // refresh path; v0 does not surface that path, since the typical case
23
+ // (cold daemon, no override) is handled by the loader on first start.
24
+ import * as fs from "node:fs";
25
+ import * as path from "node:path";
26
+ import { WorkflowSpecError, parseWorkflowSpec, } from "../workflow-spec-cache.js";
27
+ const SPEC_FILE_EXTENSIONS = new Set([".yaml", ".yml"]);
28
+ /**
29
+ * Walks the builtinDir and seeds each spec file into the cache, skipping
30
+ * those that are already cached for the same (name, version). Idempotent
31
+ * on repeated calls. Returns a structured result for diagnostic logging
32
+ * (which the daemon can log at INFO; tests assert on the shape).
33
+ *
34
+ * If the builtinDir doesn't exist, returns an empty result (no error) —
35
+ * a daemon shipped without bundled starter specs is a valid configuration.
36
+ */
37
+ export function loadStarterWorkflowSpecs(opts) {
38
+ const result = { loaded: [], skipped: [], errors: [] };
39
+ let entries;
40
+ try {
41
+ entries = fs.readdirSync(opts.builtinDir, { withFileTypes: true });
42
+ }
43
+ catch {
44
+ // Directory absent — no starter specs bundled. This is a valid
45
+ // configuration; not an error.
46
+ return result;
47
+ }
48
+ for (const entry of entries) {
49
+ if (!entry.isFile())
50
+ continue;
51
+ const ext = path.extname(entry.name).toLowerCase();
52
+ if (!SPEC_FILE_EXTENSIONS.has(ext))
53
+ continue;
54
+ const absPath = path.join(opts.builtinDir, entry.name);
55
+ let raw;
56
+ try {
57
+ raw = fs.readFileSync(absPath, "utf-8");
58
+ }
59
+ catch (err) {
60
+ result.errors.push({
61
+ sourcePath: absPath,
62
+ code: "spec_read_failed",
63
+ message: err instanceof Error ? err.message : String(err),
64
+ });
65
+ continue;
66
+ }
67
+ let parsedName;
68
+ let parsedVersion;
69
+ try {
70
+ const parsed = parseWorkflowSpec(raw, absPath);
71
+ parsedName = parsed.id;
72
+ parsedVersion = parsed.version;
73
+ }
74
+ catch (err) {
75
+ if (err instanceof WorkflowSpecError) {
76
+ result.errors.push({ sourcePath: absPath, code: err.code, message: err.message });
77
+ }
78
+ else {
79
+ result.errors.push({
80
+ sourcePath: absPath,
81
+ code: "spec_parse_failed",
82
+ message: err instanceof Error ? err.message : String(err),
83
+ });
84
+ }
85
+ continue;
86
+ }
87
+ // Workspace-surface reconciliation: if an entry already exists for
88
+ // this (name, version), DO NOT seed — operator override (or a prior
89
+ // startup's seed) wins.
90
+ const existing = opts.cache.getByNameVersion(parsedName, parsedVersion);
91
+ if (existing) {
92
+ result.skipped.push({
93
+ name: parsedName,
94
+ version: parsedVersion,
95
+ sourcePathInCache: existing.sourcePath,
96
+ });
97
+ continue;
98
+ }
99
+ // Seed via readThrough so the cache's normal insert path runs (hash
100
+ // computation, cached_at timestamp, JSON serialization of roles +
101
+ // steps). readThrough re-reads + re-parses the file; that's a small
102
+ // duplicate-work cost per spec at startup, acceptable for v0.
103
+ try {
104
+ const row = opts.cache.readThrough(absPath);
105
+ result.loaded.push({ name: row.name, version: row.version, sourcePath: row.sourcePath });
106
+ }
107
+ catch (err) {
108
+ if (err instanceof WorkflowSpecError) {
109
+ result.errors.push({ sourcePath: absPath, code: err.code, message: err.message });
110
+ }
111
+ else {
112
+ result.errors.push({
113
+ sourcePath: absPath,
114
+ code: "spec_seed_failed",
115
+ message: err instanceof Error ? err.message : String(err),
116
+ });
117
+ }
118
+ }
119
+ }
120
+ return result;
121
+ }
122
+ /**
123
+ * Resolves the default built-in starter directory relative to this
124
+ * loader file's location on disk. Works in both dev (running from
125
+ * `src/`) and prod (running from `dist/`) — the build step copies the
126
+ * workflow spec files to `dist/builtins/workflow-specs/` when bundled
127
+ * specs are present, so the resolved path works in both layouts.
128
+ *
129
+ * Layout: this file is at `<pkg>/{src|dist}/domain/workflow/`. The
130
+ * built-in dir is at `<pkg>/{src|dist}/builtins/workflow-specs/`. Two
131
+ * levels up from this file's dirname is the package's src/ or dist/
132
+ * root.
133
+ */
134
+ export function defaultBuiltinSpecsDir() {
135
+ const here = path.dirname(new URL(import.meta.url).pathname);
136
+ // here = .../{src|dist}/domain/workflow
137
+ // package src/dist root = .../{src|dist}
138
+ return path.resolve(here, "..", "..", "builtins", "workflow-specs");
139
+ }
140
+ //# sourceMappingURL=starter-spec-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter-spec-loader.js","sourceRoot":"","sources":["../../../src/domain/workflow/starter-spec-loader.ts"],"names":[],"mappings":"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"}
@@ -320,11 +320,19 @@ function resolveCurrentStep(spec, instance) {
320
320
  null);
321
321
  }
322
322
  /**
323
- * Resolve the next step. v1 = one-hop continuity (the next step in
324
- * declaration order). Multi-hop chaining via `next_hop.suggested_roles`
325
- * is a graduation feature per PRD § Risks "Workflow runtime over-engineered".
323
+ * Resolve the next step. Prefer the spec-authored `next_hop.suggested_roles`
324
+ * edge, then fall back to declaration order for legacy/simple specs.
326
325
  */
327
326
  function resolveNextStep(spec, currentStep) {
327
+ if (currentStep.next_hop?.mode === "forbid")
328
+ return null;
329
+ for (const role of currentStep.next_hop?.suggested_roles ?? []) {
330
+ const target = spec.steps.find((s) => s.actor_role === role);
331
+ if (target)
332
+ return target;
333
+ }
334
+ if (currentStep.next_hop?.mode === "require")
335
+ return null;
328
336
  const idx = spec.steps.findIndex((s) => s.id === currentStep.id);
329
337
  if (idx === -1)
330
338
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-projector.js","sourceRoot":"","sources":["../../src/domain/workflow-projector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-projector.js","sourceRoot":"","sources":["../../src/domain/workflow-projector.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,13 @@ export declare class WorkflowSpecCache {
30
30
  */
31
31
  readThrough(sourcePath: string): WorkflowSpecRow;
32
32
  getByNameVersion(name: string, version: string): WorkflowSpecRow | null;
33
+ /**
34
+ * Lists every cached spec, ordered by name then version. Used by the
35
+ * `GET /api/workflow/specs` endpoint. Cheap —
36
+ * the workflow_specs table is bounded by the number of operator-
37
+ * authored + built-in starter specs (single-host MVP).
38
+ */
39
+ listAll(): WorkflowSpecRow[];
33
40
  getByIdOrThrow(specId: string): WorkflowSpecRow;
34
41
  }
35
42
  //# sourceMappingURL=workflow-spec-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-spec-cache.d.ts","sourceRoot":"","sources":["../../src/domain/workflow-spec-cache.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgBzE,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,IAAI,EAAE,MAAM;aAEZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAuEnF;AAED,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,GAAG,GAAE,MAAM,IAAuB;IAGrD;;;;OAIG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;IAoEhD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAOvE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;CAahD"}
1
+ {"version":3,"file":"workflow-spec-cache.d.ts","sourceRoot":"","sources":["../../src/domain/workflow-spec-cache.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgBzE,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,IAAI,EAAE,MAAM;aAEZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAuEnF;AAED,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,GAAG,GAAE,MAAM,IAAuB;IAGrD;;;;OAIG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;IAkGhD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAOvE;;;;;OAKG;IACH,OAAO,IAAI,eAAe,EAAE;IAO5B,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;CAahD"}