@openrig/cli 0.5.8 → 0.5.10

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 (1083) hide show
  1. package/daemon/assets/claude-statusline-context.cjs +1 -0
  2. package/daemon/assets/plugins/openrig-core/README.md +1 -1
  3. package/daemon/assets/plugins/openrig-core/skills/agent-operated-software/SKILL.md +92 -0
  4. package/daemon/assets/plugins/openrig-core/skills/agent-operated-workflows/SKILL.md +79 -0
  5. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +2 -2
  6. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +48 -61
  7. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +19 -5
  8. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +4 -2
  9. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +37 -16
  10. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +11 -179
  11. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  12. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +88 -28
  13. package/daemon/context-packs/skills/agent-operated-software/SKILL.md +92 -0
  14. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +10 -0
  15. package/daemon/context-packs/skills/agent-operated-workflows/SKILL.md +79 -0
  16. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +10 -0
  17. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  18. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  19. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  20. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +21 -6
  21. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +48 -61
  25. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +3 -3
  26. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +4 -2
  30. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +81 -0
  32. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +3 -1
  33. package/daemon/context-packs/skills/core/openrig-upgrade/scripts/migrate-telemetry-state-0.5.9.mjs +1419 -0
  34. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +2 -2
  42. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +19 -5
  45. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/openrig-user/SKILL.md +37 -16
  48. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/pods/development-team/SKILL.md +40 -139
  58. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +3 -3
  59. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +40 -60
  60. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +3 -3
  61. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/pods/review-team/SKILL.md +34 -31
  63. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +3 -3
  64. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +6 -8
  70. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/software-for-agents/SKILL.md +11 -179
  78. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +3 -3
  79. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  80. package/daemon/context-packs/world-example/your-world.md +1 -1
  81. package/daemon/context-packs/world-public/build-your-world.md +19 -0
  82. package/daemon/context-packs/world-public/claims.yaml +5 -1
  83. package/daemon/context-packs/world-public/manifest.yaml +40 -1
  84. package/daemon/context-packs/world-public/verify-world.sh +25 -9
  85. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  86. package/daemon/dist/adapters/claude-code-adapter.js +4 -2
  87. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  88. package/daemon/dist/build-info.js +3 -3
  89. package/daemon/dist/db/all-migrations.d.ts +1 -1
  90. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  91. package/daemon/dist/db/all-migrations.js +3 -1
  92. package/daemon/dist/db/all-migrations.js.map +1 -1
  93. package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts +8 -5
  94. package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts.map +1 -1
  95. package/daemon/dist/db/migrations/046_seat_identity_verdicts.js +8 -5
  96. package/daemon/dist/db/migrations/046_seat_identity_verdicts.js.map +1 -1
  97. package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts +8 -0
  98. package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts.map +1 -0
  99. package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js +50 -0
  100. package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js.map +1 -0
  101. package/daemon/dist/domain/active-occupant.d.ts +6 -1
  102. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  103. package/daemon/dist/domain/active-occupant.js +47 -0
  104. package/daemon/dist/domain/active-occupant.js.map +1 -1
  105. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  106. package/daemon/dist/domain/bootstrap-orchestrator.js +8 -1
  107. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  108. package/daemon/dist/domain/bundle-context-packs-router.d.ts +3 -3
  109. package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  110. package/daemon/dist/domain/bundle-skills-router.d.ts +3 -0
  111. package/daemon/dist/domain/bundle-skills-router.d.ts.map +1 -1
  112. package/daemon/dist/domain/bundle-skills-router.js +5 -1
  113. package/daemon/dist/domain/bundle-skills-router.js.map +1 -1
  114. package/daemon/dist/domain/claim-service.d.ts +2 -0
  115. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  116. package/daemon/dist/domain/claim-service.js +33 -12
  117. package/daemon/dist/domain/claim-service.js.map +1 -1
  118. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  119. package/daemon/dist/domain/context-packs/context-pack-library-service.js +9 -1
  120. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  121. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +25 -0
  122. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  123. package/daemon/dist/domain/context-packs/context-pack-types.js +3 -1
  124. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  125. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  126. package/daemon/dist/domain/context-packs/manifest-parser.js +143 -3
  127. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  128. package/daemon/dist/domain/context-packs/profile-composer.d.ts +22 -1
  129. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  130. package/daemon/dist/domain/context-packs/profile-composer.js +105 -40
  131. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  132. package/daemon/dist/domain/context-usage-store.d.ts +4 -0
  133. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  134. package/daemon/dist/domain/context-usage-store.js +8 -4
  135. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  136. package/daemon/dist/domain/crash-cart-conductor.d.ts +13 -0
  137. package/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -1
  138. package/daemon/dist/domain/crash-cart-conductor.js +3 -1
  139. package/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
  140. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  141. package/daemon/dist/domain/execution-view.js +145 -16
  142. package/daemon/dist/domain/execution-view.js.map +1 -1
  143. package/daemon/dist/domain/gateway/channel-operations.d.ts +39 -0
  144. package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -0
  145. package/daemon/dist/domain/gateway/channel-operations.js +35 -0
  146. package/daemon/dist/domain/gateway/channel-operations.js.map +1 -0
  147. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +3 -0
  148. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  149. package/daemon/dist/domain/gateway/gateway-subsystem.js +3 -0
  150. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  151. package/daemon/dist/domain/gateway/human-readiness.d.ts +37 -0
  152. package/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -0
  153. package/daemon/dist/domain/gateway/human-readiness.js +44 -0
  154. package/daemon/dist/domain/gateway/human-readiness.js.map +1 -0
  155. package/daemon/dist/domain/gateway/human-registry.d.ts +2 -7
  156. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  157. package/daemon/dist/domain/gateway/human-registry.js +2 -7
  158. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  159. package/daemon/dist/domain/gateway/slack/inbound.d.ts +16 -1
  160. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  161. package/daemon/dist/domain/gateway/slack/inbound.js +35 -12
  162. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  163. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -0
  164. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  165. package/daemon/dist/domain/gateway/slack/queue-access.js +1 -0
  166. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  167. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +18 -0
  168. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  169. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +62 -8
  170. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  171. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +13 -0
  172. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  173. package/daemon/dist/domain/gateway/slack/socket-inbound.js +59 -1
  174. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  175. package/daemon/dist/domain/gateway/slack/state-store.d.ts +21 -0
  176. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  177. package/daemon/dist/domain/gateway/slack/state-store.js +28 -1
  178. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  179. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +2 -0
  180. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  181. package/daemon/dist/domain/gateway/slack/thread-routing.js +6 -1
  182. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  183. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +4 -0
  184. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  185. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +11 -0
  186. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  187. package/daemon/dist/domain/health-checkpoints.d.ts +57 -0
  188. package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -0
  189. package/daemon/dist/domain/health-checkpoints.js +198 -0
  190. package/daemon/dist/domain/health-checkpoints.js.map +1 -0
  191. package/daemon/dist/domain/health-context.d.ts +14 -0
  192. package/daemon/dist/domain/health-context.d.ts.map +1 -0
  193. package/daemon/dist/domain/health-context.js +93 -0
  194. package/daemon/dist/domain/health-context.js.map +1 -0
  195. package/daemon/dist/domain/health-detectors.d.ts +106 -0
  196. package/daemon/dist/domain/health-detectors.d.ts.map +1 -0
  197. package/daemon/dist/domain/health-detectors.js +392 -0
  198. package/daemon/dist/domain/health-detectors.js.map +1 -0
  199. package/daemon/dist/domain/health-diagnosis.d.ts +143 -0
  200. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -0
  201. package/daemon/dist/domain/health-diagnosis.js +249 -0
  202. package/daemon/dist/domain/health-diagnosis.js.map +1 -0
  203. package/daemon/dist/domain/health-passive-ceremony.d.ts +19 -0
  204. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -0
  205. package/daemon/dist/domain/health-passive-ceremony.js +234 -0
  206. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -0
  207. package/daemon/dist/domain/health-policy.d.ts +45 -0
  208. package/daemon/dist/domain/health-policy.d.ts.map +1 -0
  209. package/daemon/dist/domain/health-policy.js +89 -0
  210. package/daemon/dist/domain/health-policy.js.map +1 -0
  211. package/daemon/dist/domain/health-projection.d.ts +237 -0
  212. package/daemon/dist/domain/health-projection.d.ts.map +1 -0
  213. package/daemon/dist/domain/health-projection.js +312 -0
  214. package/daemon/dist/domain/health-projection.js.map +1 -0
  215. package/daemon/dist/domain/instance-initialization.d.ts +25 -0
  216. package/daemon/dist/domain/instance-initialization.d.ts.map +1 -0
  217. package/daemon/dist/domain/instance-initialization.js +81 -0
  218. package/daemon/dist/domain/instance-initialization.js.map +1 -0
  219. package/daemon/dist/domain/lifecycle-manifest.d.ts +19 -0
  220. package/daemon/dist/domain/lifecycle-manifest.d.ts.map +1 -0
  221. package/daemon/dist/domain/lifecycle-manifest.js +73 -0
  222. package/daemon/dist/domain/lifecycle-manifest.js.map +1 -0
  223. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  224. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +14 -11
  225. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  226. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +36 -36
  227. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  228. package/daemon/dist/domain/model-divergence/current-generation-record.js +104 -135
  229. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  230. package/daemon/dist/domain/native-process-lineage.d.ts +10 -0
  231. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -0
  232. package/daemon/dist/domain/native-process-lineage.js +86 -0
  233. package/daemon/dist/domain/native-process-lineage.js.map +1 -0
  234. package/daemon/dist/domain/native-resume-probe.js +12 -1
  235. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  236. package/daemon/dist/domain/node-inventory.d.ts +2 -0
  237. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  238. package/daemon/dist/domain/node-inventory.js +4 -1
  239. package/daemon/dist/domain/node-inventory.js.map +1 -1
  240. package/daemon/dist/domain/node-launcher.d.ts +3 -0
  241. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  242. package/daemon/dist/domain/node-launcher.js +21 -8
  243. package/daemon/dist/domain/node-launcher.js.map +1 -1
  244. package/daemon/dist/domain/pane-binding-observation.d.ts +22 -0
  245. package/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -0
  246. package/daemon/dist/domain/pane-binding-observation.js +54 -0
  247. package/daemon/dist/domain/pane-binding-observation.js.map +1 -0
  248. package/daemon/dist/domain/policies/parked-owner-consumer.js +1 -1
  249. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  250. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  251. package/daemon/dist/domain/policies/workflow-keepalive.js +16 -2
  252. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  253. package/daemon/dist/domain/profile-resolver.d.ts +12 -0
  254. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  255. package/daemon/dist/domain/profile-resolver.js +60 -0
  256. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  257. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +35 -0
  258. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -0
  259. package/daemon/dist/domain/project-lifecycle-compiler.js +219 -0
  260. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -0
  261. package/daemon/dist/domain/provider/claude-usage-reader.d.ts +1 -1
  262. package/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +1 -1
  263. package/daemon/dist/domain/provider/claude-usage-reader.js +28 -18
  264. package/daemon/dist/domain/provider/claude-usage-reader.js.map +1 -1
  265. package/daemon/dist/domain/queue-repository.d.ts +19 -1
  266. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  267. package/daemon/dist/domain/queue-repository.js +66 -5
  268. package/daemon/dist/domain/queue-repository.js.map +1 -1
  269. package/daemon/dist/domain/queue-retention.d.ts +3 -4
  270. package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  271. package/daemon/dist/domain/queue-retention.js +5 -8
  272. package/daemon/dist/domain/queue-retention.js.map +1 -1
  273. package/daemon/dist/domain/queue-transition-log.d.ts +33 -0
  274. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  275. package/daemon/dist/domain/queue-transition-log.js +152 -0
  276. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  277. package/daemon/dist/domain/queue-wait-backoff.d.ts +21 -0
  278. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -0
  279. package/daemon/dist/domain/queue-wait-backoff.js +96 -0
  280. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -0
  281. package/daemon/dist/domain/queue-wake-repository.d.ts +1 -0
  282. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  283. package/daemon/dist/domain/queue-wake-repository.js +8 -3
  284. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  285. package/daemon/dist/domain/restore-attempt-receipt.d.ts +34 -0
  286. package/daemon/dist/domain/restore-attempt-receipt.d.ts.map +1 -0
  287. package/daemon/dist/domain/restore-attempt-receipt.js +59 -0
  288. package/daemon/dist/domain/restore-attempt-receipt.js.map +1 -0
  289. package/daemon/dist/domain/restore-orchestrator.d.ts +57 -24
  290. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  291. package/daemon/dist/domain/restore-orchestrator.js +152 -26
  292. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  293. package/daemon/dist/domain/restore-topology.d.ts +14 -0
  294. package/daemon/dist/domain/restore-topology.d.ts.map +1 -0
  295. package/daemon/dist/domain/restore-topology.js +27 -0
  296. package/daemon/dist/domain/restore-topology.js.map +1 -0
  297. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  298. package/daemon/dist/domain/rig-lifecycle-service.js +9 -0
  299. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  300. package/daemon/dist/domain/rigspec-instantiator.d.ts +19 -0
  301. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  302. package/daemon/dist/domain/rigspec-instantiator.js +65 -1
  303. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  304. package/daemon/dist/domain/rigspec-preflight.d.ts +8 -0
  305. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  306. package/daemon/dist/domain/rigspec-preflight.js +4 -0
  307. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  308. package/daemon/dist/domain/seat-attention-reconciler.d.ts +23 -1
  309. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  310. package/daemon/dist/domain/seat-attention-reconciler.js +97 -46
  311. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  312. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  313. package/daemon/dist/domain/seat-identity-reconciler.js +15 -6
  314. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  315. package/daemon/dist/domain/seat-lifecycle-service.d.ts +47 -1
  316. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  317. package/daemon/dist/domain/seat-lifecycle-service.js +525 -29
  318. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  319. package/daemon/dist/domain/session-registry.d.ts +8 -1
  320. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  321. package/daemon/dist/domain/session-registry.js +19 -0
  322. package/daemon/dist/domain/session-registry.js.map +1 -1
  323. package/daemon/dist/domain/skill-catalog.d.ts +81 -0
  324. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -0
  325. package/daemon/dist/domain/skill-catalog.js +827 -0
  326. package/daemon/dist/domain/skill-catalog.js.map +1 -0
  327. package/daemon/dist/domain/skill-discovery.d.ts +3 -0
  328. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  329. package/daemon/dist/domain/skill-discovery.js +1 -1
  330. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  331. package/daemon/dist/domain/snapshot-capture.d.ts +4 -1
  332. package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  333. package/daemon/dist/domain/snapshot-capture.js +38 -2
  334. package/daemon/dist/domain/snapshot-capture.js.map +1 -1
  335. package/daemon/dist/domain/snapshot-repository.d.ts +15 -1
  336. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  337. package/daemon/dist/domain/snapshot-repository.js +103 -1
  338. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  339. package/daemon/dist/domain/startup-orchestrator.d.ts +2 -0
  340. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  341. package/daemon/dist/domain/startup-orchestrator.js +12 -0
  342. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  343. package/daemon/dist/domain/system-world.d.ts +45 -0
  344. package/daemon/dist/domain/system-world.d.ts.map +1 -0
  345. package/daemon/dist/domain/system-world.js +123 -0
  346. package/daemon/dist/domain/system-world.js.map +1 -0
  347. package/daemon/dist/domain/telemetry-state-paths.d.ts +7 -0
  348. package/daemon/dist/domain/telemetry-state-paths.d.ts.map +1 -0
  349. package/daemon/dist/domain/telemetry-state-paths.js +20 -0
  350. package/daemon/dist/domain/telemetry-state-paths.js.map +1 -0
  351. package/daemon/dist/domain/types.d.ts +106 -4
  352. package/daemon/dist/domain/types.d.ts.map +1 -1
  353. package/daemon/dist/domain/types.js.map +1 -1
  354. package/daemon/dist/domain/user-settings/settings-store.d.ts +16 -3
  355. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  356. package/daemon/dist/domain/user-settings/settings-store.js +137 -41
  357. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  358. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -0
  359. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  360. package/daemon/dist/domain/watchdog-jobs-repository.js +5 -0
  361. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  362. package/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -23
  363. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  364. package/daemon/dist/domain/watchdog-policy-engine.js +44 -226
  365. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  366. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  367. package/daemon/dist/domain/workflow-boot-sweep.js +20 -6
  368. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  369. package/daemon/dist/domain/workflow-instance-store.d.ts +33 -1
  370. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  371. package/daemon/dist/domain/workflow-instance-store.js +127 -2
  372. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  373. package/daemon/dist/domain/workflow-keepalive-arming.d.ts +7 -5
  374. package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -1
  375. package/daemon/dist/domain/workflow-keepalive-arming.js +27 -16
  376. package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -1
  377. package/daemon/dist/domain/workflow-projector.d.ts +30 -2
  378. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  379. package/daemon/dist/domain/workflow-projector.js +375 -14
  380. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  381. package/daemon/dist/domain/workflow-runtime.d.ts +62 -2
  382. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  383. package/daemon/dist/domain/workflow-runtime.js +391 -28
  384. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  385. package/daemon/dist/domain/workflow-spec-cache.d.ts +10 -2
  386. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  387. package/daemon/dist/domain/workflow-spec-cache.js +101 -0
  388. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  389. package/daemon/dist/domain/workflow-types.d.ts +46 -1
  390. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  391. package/daemon/dist/domain/workflow-types.js.map +1 -1
  392. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  393. package/daemon/dist/domain/workflow-validator.js +38 -3
  394. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  395. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +38 -9
  396. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  397. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +93 -347
  398. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  399. package/daemon/dist/gateway-human-registry-surface.d.ts +1 -0
  400. package/daemon/dist/gateway-human-registry-surface.d.ts.map +1 -1
  401. package/daemon/dist/gateway-human-registry-surface.js +1 -0
  402. package/daemon/dist/gateway-human-registry-surface.js.map +1 -1
  403. package/daemon/dist/gateway-slack-surface.d.ts +1 -0
  404. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  405. package/daemon/dist/gateway-slack-surface.js +1 -0
  406. package/daemon/dist/gateway-slack-surface.js.map +1 -1
  407. package/daemon/dist/health-detectors-surface.d.ts +2 -0
  408. package/daemon/dist/health-detectors-surface.d.ts.map +1 -0
  409. package/daemon/dist/health-detectors-surface.js +2 -0
  410. package/daemon/dist/health-detectors-surface.js.map +1 -0
  411. package/daemon/dist/health-projection-surface.d.ts +2 -0
  412. package/daemon/dist/health-projection-surface.d.ts.map +1 -0
  413. package/daemon/dist/health-projection-surface.js +2 -0
  414. package/daemon/dist/health-projection-surface.js.map +1 -0
  415. package/daemon/dist/index.d.ts.map +1 -1
  416. package/daemon/dist/index.js +15 -0
  417. package/daemon/dist/index.js.map +1 -1
  418. package/daemon/dist/instance-initialization-surface.d.ts +3 -0
  419. package/daemon/dist/instance-initialization-surface.d.ts.map +1 -0
  420. package/daemon/dist/instance-initialization-surface.js +3 -0
  421. package/daemon/dist/instance-initialization-surface.js.map +1 -0
  422. package/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  423. package/daemon/dist/lib/pane-envelope.js +4 -1
  424. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  425. package/daemon/dist/project-lifecycle-surface.d.ts +3 -0
  426. package/daemon/dist/project-lifecycle-surface.d.ts.map +1 -0
  427. package/daemon/dist/project-lifecycle-surface.js +3 -0
  428. package/daemon/dist/project-lifecycle-surface.js.map +1 -0
  429. package/daemon/dist/routes/bundles.js +10 -9
  430. package/daemon/dist/routes/bundles.js.map +1 -1
  431. package/daemon/dist/routes/config.d.ts.map +1 -1
  432. package/daemon/dist/routes/config.js +27 -49
  433. package/daemon/dist/routes/config.js.map +1 -1
  434. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  435. package/daemon/dist/routes/context-packs.js +114 -16
  436. package/daemon/dist/routes/context-packs.js.map +1 -1
  437. package/daemon/dist/routes/crash-cart.js +3 -0
  438. package/daemon/dist/routes/crash-cart.js.map +1 -1
  439. package/daemon/dist/routes/gateway.d.ts +5 -1
  440. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  441. package/daemon/dist/routes/gateway.js +70 -22
  442. package/daemon/dist/routes/gateway.js.map +1 -1
  443. package/daemon/dist/routes/health-diagnosis.d.ts +3 -0
  444. package/daemon/dist/routes/health-diagnosis.d.ts.map +1 -0
  445. package/daemon/dist/routes/health-diagnosis.js +47 -0
  446. package/daemon/dist/routes/health-diagnosis.js.map +1 -0
  447. package/daemon/dist/routes/health.d.ts +3 -0
  448. package/daemon/dist/routes/health.d.ts.map +1 -0
  449. package/daemon/dist/routes/health.js +50 -0
  450. package/daemon/dist/routes/health.js.map +1 -0
  451. package/daemon/dist/routes/hosts.d.ts +2 -0
  452. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  453. package/daemon/dist/routes/hosts.js +12 -5
  454. package/daemon/dist/routes/hosts.js.map +1 -1
  455. package/daemon/dist/routes/queue.d.ts.map +1 -1
  456. package/daemon/dist/routes/queue.js +20 -0
  457. package/daemon/dist/routes/queue.js.map +1 -1
  458. package/daemon/dist/routes/rigs.js +12 -1
  459. package/daemon/dist/routes/rigs.js.map +1 -1
  460. package/daemon/dist/routes/rigspec.js +9 -2
  461. package/daemon/dist/routes/rigspec.js.map +1 -1
  462. package/daemon/dist/routes/seat.js +21 -1
  463. package/daemon/dist/routes/seat.js.map +1 -1
  464. package/daemon/dist/routes/sessions.js +16 -6
  465. package/daemon/dist/routes/sessions.js.map +1 -1
  466. package/daemon/dist/routes/snapshots.d.ts.map +1 -1
  467. package/daemon/dist/routes/snapshots.js +41 -3
  468. package/daemon/dist/routes/snapshots.js.map +1 -1
  469. package/daemon/dist/routes/up.js +12 -1
  470. package/daemon/dist/routes/up.js.map +1 -1
  471. package/daemon/dist/routes/watchdog.d.ts.map +1 -1
  472. package/daemon/dist/routes/watchdog.js +7 -6
  473. package/daemon/dist/routes/watchdog.js.map +1 -1
  474. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  475. package/daemon/dist/routes/workflow.js +104 -39
  476. package/daemon/dist/routes/workflow.js.map +1 -1
  477. package/daemon/dist/server.d.ts +10 -0
  478. package/daemon/dist/server.d.ts.map +1 -1
  479. package/daemon/dist/server.js +9 -0
  480. package/daemon/dist/server.js.map +1 -1
  481. package/daemon/dist/skill-loadout-surface.d.ts +3 -0
  482. package/daemon/dist/skill-loadout-surface.d.ts.map +1 -0
  483. package/daemon/dist/skill-loadout-surface.js +2 -0
  484. package/daemon/dist/skill-loadout-surface.js.map +1 -0
  485. package/daemon/dist/startup.d.ts.map +1 -1
  486. package/daemon/dist/startup.js +101 -66
  487. package/daemon/dist/startup.js.map +1 -1
  488. package/daemon/dist/system-world-surface.d.ts +2 -0
  489. package/daemon/dist/system-world-surface.d.ts.map +1 -0
  490. package/daemon/dist/system-world-surface.js +2 -0
  491. package/daemon/dist/system-world-surface.js.map +1 -0
  492. package/daemon/docs/reference/getting-started.md +2 -1
  493. package/daemon/docs/reference/health-diagnosis.md +305 -0
  494. package/daemon/docs/reference/instance-layout.md +106 -0
  495. package/daemon/docs/reference/mission-install.md +12 -2
  496. package/daemon/docs/reference/product-journey-sdlc.md +53 -15
  497. package/daemon/docs/reference/project-workspace.md +66 -40
  498. package/daemon/docs/reference/sdlc-conventions.md +6 -4
  499. package/daemon/specs/agents/development/implementer/agent.yaml +1 -9
  500. package/daemon/specs/agents/development/implementer/guidance/role.md +21 -43
  501. package/daemon/specs/agents/development/qa/agent.yaml +2 -11
  502. package/daemon/specs/agents/development/qa/guidance/role.md +21 -73
  503. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -9
  504. package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +25 -72
  505. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -9
  506. package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +20 -35
  507. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +21 -6
  508. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +48 -61
  509. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +4 -2
  510. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +81 -0
  511. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/scripts/migrate-telemetry-state-0.5.9.mjs +1419 -0
  512. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +40 -139
  513. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +40 -60
  514. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +34 -31
  515. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +6 -8
  516. package/daemon/specs/rigs/launch/demo/CULTURE.md +21 -30
  517. package/daemon/specs/rigs/launch/implementation-pair/rig.yaml +3 -3
  518. package/daemon/specs/rigs/preview/product-team/CULTURE.md +26 -71
  519. package/dist/build-info.js +3 -3
  520. package/dist/commands/config-init-workspace.d.ts +4 -23
  521. package/dist/commands/config-init-workspace.d.ts.map +1 -1
  522. package/dist/commands/config-init-workspace.js +14 -576
  523. package/dist/commands/config-init-workspace.js.map +1 -1
  524. package/dist/commands/config.d.ts.map +1 -1
  525. package/dist/commands/config.js +7 -4
  526. package/dist/commands/config.js.map +1 -1
  527. package/dist/commands/context.d.ts.map +1 -1
  528. package/dist/commands/context.js +114 -8
  529. package/dist/commands/context.js.map +1 -1
  530. package/dist/commands/daemon.d.ts.map +1 -1
  531. package/dist/commands/daemon.js +16 -0
  532. package/dist/commands/daemon.js.map +1 -1
  533. package/dist/commands/gateway.d.ts +17 -0
  534. package/dist/commands/gateway.d.ts.map +1 -1
  535. package/dist/commands/gateway.js +99 -13
  536. package/dist/commands/gateway.js.map +1 -1
  537. package/dist/commands/health.d.ts +12 -0
  538. package/dist/commands/health.d.ts.map +1 -0
  539. package/dist/commands/health.js +351 -0
  540. package/dist/commands/health.js.map +1 -0
  541. package/dist/commands/host.d.ts.map +1 -1
  542. package/dist/commands/host.js +2 -0
  543. package/dist/commands/host.js.map +1 -1
  544. package/dist/commands/launch.d.ts.map +1 -1
  545. package/dist/commands/launch.js +51 -4
  546. package/dist/commands/launch.js.map +1 -1
  547. package/dist/commands/queue.d.ts +18 -0
  548. package/dist/commands/queue.d.ts.map +1 -1
  549. package/dist/commands/queue.js +62 -0
  550. package/dist/commands/queue.js.map +1 -1
  551. package/dist/commands/restore.d.ts.map +1 -1
  552. package/dist/commands/restore.js +43 -3
  553. package/dist/commands/restore.js.map +1 -1
  554. package/dist/commands/scope.d.ts.map +1 -1
  555. package/dist/commands/scope.js +169 -79
  556. package/dist/commands/scope.js.map +1 -1
  557. package/dist/commands/seat.d.ts.map +1 -1
  558. package/dist/commands/seat.js +30 -0
  559. package/dist/commands/seat.js.map +1 -1
  560. package/dist/commands/send.d.ts.map +1 -1
  561. package/dist/commands/send.js +4 -1
  562. package/dist/commands/send.js.map +1 -1
  563. package/dist/commands/skill.d.ts.map +1 -1
  564. package/dist/commands/skill.js +61 -0
  565. package/dist/commands/skill.js.map +1 -1
  566. package/dist/commands/slack.d.ts.map +1 -1
  567. package/dist/commands/slack.js +39 -11
  568. package/dist/commands/slack.js.map +1 -1
  569. package/dist/commands/snapshot.d.ts.map +1 -1
  570. package/dist/commands/snapshot.js +4 -2
  571. package/dist/commands/snapshot.js.map +1 -1
  572. package/dist/commands/start.d.ts.map +1 -1
  573. package/dist/commands/start.js +3 -0
  574. package/dist/commands/start.js.map +1 -1
  575. package/dist/commands/up.d.ts.map +1 -1
  576. package/dist/commands/up.js +3 -0
  577. package/dist/commands/up.js.map +1 -1
  578. package/dist/commands/walk.d.ts.map +1 -1
  579. package/dist/commands/walk.js +3 -0
  580. package/dist/commands/walk.js.map +1 -1
  581. package/dist/commands/workflow-render.d.ts +31 -0
  582. package/dist/commands/workflow-render.d.ts.map +1 -1
  583. package/dist/commands/workflow-render.js +84 -6
  584. package/dist/commands/workflow-render.js.map +1 -1
  585. package/dist/commands/workflow.d.ts.map +1 -1
  586. package/dist/commands/workflow.js +98 -8
  587. package/dist/commands/workflow.js.map +1 -1
  588. package/dist/config-store.d.ts +17 -4
  589. package/dist/config-store.d.ts.map +1 -1
  590. package/dist/config-store.js +139 -44
  591. package/dist/config-store.js.map +1 -1
  592. package/dist/daemon-lifecycle.d.ts +13 -16
  593. package/dist/daemon-lifecycle.d.ts.map +1 -1
  594. package/dist/daemon-lifecycle.js +28 -33
  595. package/dist/daemon-lifecycle.js.map +1 -1
  596. package/dist/index.d.ts +4 -0
  597. package/dist/index.d.ts.map +1 -1
  598. package/dist/index.js +3 -1
  599. package/dist/index.js.map +1 -1
  600. package/dist/lib/scope/mission-composition.d.ts +16 -0
  601. package/dist/lib/scope/mission-composition.d.ts.map +1 -0
  602. package/dist/lib/scope/mission-composition.js +110 -0
  603. package/dist/lib/scope/mission-composition.js.map +1 -0
  604. package/dist/lib/scope/scope-fs.d.ts +5 -0
  605. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  606. package/dist/lib/scope/scope-fs.js +36 -6
  607. package/dist/lib/scope/scope-fs.js.map +1 -1
  608. package/dist/lib/work-install.d.ts +17 -0
  609. package/dist/lib/work-install.d.ts.map +1 -1
  610. package/dist/lib/work-install.js +49 -6
  611. package/dist/lib/work-install.js.map +1 -1
  612. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  613. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +4 -2
  614. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  615. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  616. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +1 -1
  617. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
  618. package/node_modules/@openrig/daemon/dist/db/all-migrations.js +3 -1
  619. package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
  620. package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts +8 -5
  621. package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts.map +1 -1
  622. package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.js +8 -5
  623. package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.js.map +1 -1
  624. package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts +8 -0
  625. package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts.map +1 -0
  626. package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js +50 -0
  627. package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js.map +1 -0
  628. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +6 -1
  629. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  630. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +47 -0
  631. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -1
  632. package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  633. package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.js +8 -1
  634. package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  635. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts +3 -3
  636. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  637. package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.d.ts +3 -0
  638. package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.d.ts.map +1 -1
  639. package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.js +5 -1
  640. package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.js.map +1 -1
  641. package/node_modules/@openrig/daemon/dist/domain/claim-service.d.ts +2 -0
  642. package/node_modules/@openrig/daemon/dist/domain/claim-service.d.ts.map +1 -1
  643. package/node_modules/@openrig/daemon/dist/domain/claim-service.js +33 -12
  644. package/node_modules/@openrig/daemon/dist/domain/claim-service.js.map +1 -1
  645. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  646. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js +9 -1
  647. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  648. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +25 -0
  649. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  650. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +3 -1
  651. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  652. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  653. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +143 -3
  654. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  655. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +22 -1
  656. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  657. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +105 -40
  658. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  659. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts +4 -0
  660. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  661. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js +8 -4
  662. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js.map +1 -1
  663. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts +13 -0
  664. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -1
  665. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +3 -1
  666. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
  667. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -1
  668. package/node_modules/@openrig/daemon/dist/domain/execution-view.js +145 -16
  669. package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -1
  670. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts +39 -0
  671. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -0
  672. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.js +35 -0
  673. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.js.map +1 -0
  674. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +3 -0
  675. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  676. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +3 -0
  677. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  678. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.d.ts +37 -0
  679. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -0
  680. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.js +44 -0
  681. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.js.map +1 -0
  682. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +2 -7
  683. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  684. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +2 -7
  685. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  686. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +16 -1
  687. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  688. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +35 -12
  689. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  690. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -0
  691. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  692. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +1 -0
  693. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  694. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +18 -0
  695. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  696. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +62 -8
  697. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  698. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +13 -0
  699. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  700. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js +59 -1
  701. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  702. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts +21 -0
  703. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  704. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js +28 -1
  705. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  706. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts +2 -0
  707. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  708. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js +6 -1
  709. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  710. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +4 -0
  711. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  712. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js +11 -0
  713. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  714. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.d.ts +57 -0
  715. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.d.ts.map +1 -0
  716. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.js +198 -0
  717. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.js.map +1 -0
  718. package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts +14 -0
  719. package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts.map +1 -0
  720. package/node_modules/@openrig/daemon/dist/domain/health-context.js +93 -0
  721. package/node_modules/@openrig/daemon/dist/domain/health-context.js.map +1 -0
  722. package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts +106 -0
  723. package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts.map +1 -0
  724. package/node_modules/@openrig/daemon/dist/domain/health-detectors.js +392 -0
  725. package/node_modules/@openrig/daemon/dist/domain/health-detectors.js.map +1 -0
  726. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts +143 -0
  727. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts.map +1 -0
  728. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js +249 -0
  729. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js.map +1 -0
  730. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts +19 -0
  731. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -0
  732. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js +234 -0
  733. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js.map +1 -0
  734. package/node_modules/@openrig/daemon/dist/domain/health-policy.d.ts +45 -0
  735. package/node_modules/@openrig/daemon/dist/domain/health-policy.d.ts.map +1 -0
  736. package/node_modules/@openrig/daemon/dist/domain/health-policy.js +89 -0
  737. package/node_modules/@openrig/daemon/dist/domain/health-policy.js.map +1 -0
  738. package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts +237 -0
  739. package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts.map +1 -0
  740. package/node_modules/@openrig/daemon/dist/domain/health-projection.js +312 -0
  741. package/node_modules/@openrig/daemon/dist/domain/health-projection.js.map +1 -0
  742. package/node_modules/@openrig/daemon/dist/domain/instance-initialization.d.ts +25 -0
  743. package/node_modules/@openrig/daemon/dist/domain/instance-initialization.d.ts.map +1 -0
  744. package/node_modules/@openrig/daemon/dist/domain/instance-initialization.js +81 -0
  745. package/node_modules/@openrig/daemon/dist/domain/instance-initialization.js.map +1 -0
  746. package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.d.ts +19 -0
  747. package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.d.ts.map +1 -0
  748. package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.js +73 -0
  749. package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.js.map +1 -0
  750. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  751. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.js +14 -11
  752. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  753. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +36 -36
  754. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  755. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +104 -135
  756. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  757. package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.d.ts +10 -0
  758. package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.d.ts.map +1 -0
  759. package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.js +86 -0
  760. package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.js.map +1 -0
  761. package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js +12 -1
  762. package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js.map +1 -1
  763. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts +2 -0
  764. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  765. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +4 -1
  766. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
  767. package/node_modules/@openrig/daemon/dist/domain/node-launcher.d.ts +3 -0
  768. package/node_modules/@openrig/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  769. package/node_modules/@openrig/daemon/dist/domain/node-launcher.js +21 -8
  770. package/node_modules/@openrig/daemon/dist/domain/node-launcher.js.map +1 -1
  771. package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.d.ts +22 -0
  772. package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -0
  773. package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.js +54 -0
  774. package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.js.map +1 -0
  775. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +1 -1
  776. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  777. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  778. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js +16 -2
  779. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  780. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts +12 -0
  781. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  782. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js +60 -0
  783. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js.map +1 -1
  784. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts +35 -0
  785. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -0
  786. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js +219 -0
  787. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -0
  788. package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.d.ts +1 -1
  789. package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +1 -1
  790. package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.js +28 -18
  791. package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.js.map +1 -1
  792. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +19 -1
  793. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  794. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +66 -5
  795. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  796. package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts +3 -4
  797. package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  798. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js +5 -8
  799. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js.map +1 -1
  800. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +33 -0
  801. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  802. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +152 -0
  803. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
  804. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts +21 -0
  805. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -0
  806. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js +96 -0
  807. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js.map +1 -0
  808. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +1 -0
  809. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  810. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +8 -3
  811. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  812. package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.d.ts +34 -0
  813. package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.d.ts.map +1 -0
  814. package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.js +59 -0
  815. package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.js.map +1 -0
  816. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +57 -24
  817. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  818. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +152 -26
  819. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  820. package/node_modules/@openrig/daemon/dist/domain/restore-topology.d.ts +14 -0
  821. package/node_modules/@openrig/daemon/dist/domain/restore-topology.d.ts.map +1 -0
  822. package/node_modules/@openrig/daemon/dist/domain/restore-topology.js +27 -0
  823. package/node_modules/@openrig/daemon/dist/domain/restore-topology.js.map +1 -0
  824. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  825. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js +9 -0
  826. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  827. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +19 -0
  828. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  829. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +65 -1
  830. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  831. package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.d.ts +8 -0
  832. package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  833. package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.js +4 -0
  834. package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  835. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts +23 -1
  836. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  837. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js +97 -46
  838. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  839. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  840. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js +15 -6
  841. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  842. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +47 -1
  843. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  844. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +525 -29
  845. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  846. package/node_modules/@openrig/daemon/dist/domain/session-registry.d.ts +8 -1
  847. package/node_modules/@openrig/daemon/dist/domain/session-registry.d.ts.map +1 -1
  848. package/node_modules/@openrig/daemon/dist/domain/session-registry.js +19 -0
  849. package/node_modules/@openrig/daemon/dist/domain/session-registry.js.map +1 -1
  850. package/node_modules/@openrig/daemon/dist/domain/skill-catalog.d.ts +81 -0
  851. package/node_modules/@openrig/daemon/dist/domain/skill-catalog.d.ts.map +1 -0
  852. package/node_modules/@openrig/daemon/dist/domain/skill-catalog.js +827 -0
  853. package/node_modules/@openrig/daemon/dist/domain/skill-catalog.js.map +1 -0
  854. package/node_modules/@openrig/daemon/dist/domain/skill-discovery.d.ts +3 -0
  855. package/node_modules/@openrig/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  856. package/node_modules/@openrig/daemon/dist/domain/skill-discovery.js +1 -1
  857. package/node_modules/@openrig/daemon/dist/domain/skill-discovery.js.map +1 -1
  858. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts +4 -1
  859. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  860. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +38 -2
  861. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
  862. package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.d.ts +15 -1
  863. package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  864. package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.js +103 -1
  865. package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.js.map +1 -1
  866. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts +2 -0
  867. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  868. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js +12 -0
  869. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  870. package/node_modules/@openrig/daemon/dist/domain/system-world.d.ts +45 -0
  871. package/node_modules/@openrig/daemon/dist/domain/system-world.d.ts.map +1 -0
  872. package/node_modules/@openrig/daemon/dist/domain/system-world.js +123 -0
  873. package/node_modules/@openrig/daemon/dist/domain/system-world.js.map +1 -0
  874. package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.d.ts +7 -0
  875. package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.d.ts.map +1 -0
  876. package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.js +20 -0
  877. package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.js.map +1 -0
  878. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +106 -4
  879. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  880. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  881. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +16 -3
  882. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  883. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +137 -41
  884. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  885. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -0
  886. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  887. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +5 -0
  888. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  889. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -23
  890. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  891. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +44 -226
  892. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  893. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  894. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js +20 -6
  895. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  896. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts +33 -1
  897. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  898. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js +127 -2
  899. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  900. package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.d.ts +7 -5
  901. package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -1
  902. package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.js +27 -16
  903. package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -1
  904. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts +30 -2
  905. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  906. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js +375 -14
  907. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js.map +1 -1
  908. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts +62 -2
  909. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  910. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js +391 -28
  911. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js.map +1 -1
  912. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts +10 -2
  913. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  914. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js +101 -0
  915. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  916. package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts +46 -1
  917. package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  918. package/node_modules/@openrig/daemon/dist/domain/workflow-types.js.map +1 -1
  919. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  920. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js +38 -3
  921. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js.map +1 -1
  922. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +38 -9
  923. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  924. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +93 -347
  925. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  926. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.d.ts +1 -0
  927. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.d.ts.map +1 -1
  928. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.js +1 -0
  929. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.js.map +1 -1
  930. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts +1 -0
  931. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  932. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js +1 -0
  933. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js.map +1 -1
  934. package/node_modules/@openrig/daemon/dist/health-detectors-surface.d.ts +2 -0
  935. package/node_modules/@openrig/daemon/dist/health-detectors-surface.d.ts.map +1 -0
  936. package/node_modules/@openrig/daemon/dist/health-detectors-surface.js +2 -0
  937. package/node_modules/@openrig/daemon/dist/health-detectors-surface.js.map +1 -0
  938. package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts +2 -0
  939. package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts.map +1 -0
  940. package/node_modules/@openrig/daemon/dist/health-projection-surface.js +2 -0
  941. package/node_modules/@openrig/daemon/dist/health-projection-surface.js.map +1 -0
  942. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  943. package/node_modules/@openrig/daemon/dist/index.js +15 -0
  944. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  945. package/node_modules/@openrig/daemon/dist/instance-initialization-surface.d.ts +3 -0
  946. package/node_modules/@openrig/daemon/dist/instance-initialization-surface.d.ts.map +1 -0
  947. package/node_modules/@openrig/daemon/dist/instance-initialization-surface.js +3 -0
  948. package/node_modules/@openrig/daemon/dist/instance-initialization-surface.js.map +1 -0
  949. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  950. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js +4 -1
  951. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js.map +1 -1
  952. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts +3 -0
  953. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts.map +1 -0
  954. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.js +3 -0
  955. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.js.map +1 -0
  956. package/node_modules/@openrig/daemon/dist/routes/bundles.js +10 -9
  957. package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
  958. package/node_modules/@openrig/daemon/dist/routes/config.d.ts.map +1 -1
  959. package/node_modules/@openrig/daemon/dist/routes/config.js +27 -49
  960. package/node_modules/@openrig/daemon/dist/routes/config.js.map +1 -1
  961. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  962. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +114 -16
  963. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  964. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js +3 -0
  965. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js.map +1 -1
  966. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts +5 -1
  967. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts.map +1 -1
  968. package/node_modules/@openrig/daemon/dist/routes/gateway.js +70 -22
  969. package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +1 -1
  970. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.d.ts +3 -0
  971. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.d.ts.map +1 -0
  972. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.js +47 -0
  973. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.js.map +1 -0
  974. package/node_modules/@openrig/daemon/dist/routes/health.d.ts +3 -0
  975. package/node_modules/@openrig/daemon/dist/routes/health.d.ts.map +1 -0
  976. package/node_modules/@openrig/daemon/dist/routes/health.js +50 -0
  977. package/node_modules/@openrig/daemon/dist/routes/health.js.map +1 -0
  978. package/node_modules/@openrig/daemon/dist/routes/hosts.d.ts +2 -0
  979. package/node_modules/@openrig/daemon/dist/routes/hosts.d.ts.map +1 -1
  980. package/node_modules/@openrig/daemon/dist/routes/hosts.js +12 -5
  981. package/node_modules/@openrig/daemon/dist/routes/hosts.js.map +1 -1
  982. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  983. package/node_modules/@openrig/daemon/dist/routes/queue.js +20 -0
  984. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  985. package/node_modules/@openrig/daemon/dist/routes/rigs.js +12 -1
  986. package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
  987. package/node_modules/@openrig/daemon/dist/routes/rigspec.js +9 -2
  988. package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +1 -1
  989. package/node_modules/@openrig/daemon/dist/routes/seat.js +21 -1
  990. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  991. package/node_modules/@openrig/daemon/dist/routes/sessions.js +16 -6
  992. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  993. package/node_modules/@openrig/daemon/dist/routes/snapshots.d.ts.map +1 -1
  994. package/node_modules/@openrig/daemon/dist/routes/snapshots.js +41 -3
  995. package/node_modules/@openrig/daemon/dist/routes/snapshots.js.map +1 -1
  996. package/node_modules/@openrig/daemon/dist/routes/up.js +12 -1
  997. package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
  998. package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts.map +1 -1
  999. package/node_modules/@openrig/daemon/dist/routes/watchdog.js +7 -6
  1000. package/node_modules/@openrig/daemon/dist/routes/watchdog.js.map +1 -1
  1001. package/node_modules/@openrig/daemon/dist/routes/workflow.d.ts.map +1 -1
  1002. package/node_modules/@openrig/daemon/dist/routes/workflow.js +104 -39
  1003. package/node_modules/@openrig/daemon/dist/routes/workflow.js.map +1 -1
  1004. package/node_modules/@openrig/daemon/dist/server.d.ts +10 -0
  1005. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  1006. package/node_modules/@openrig/daemon/dist/server.js +9 -0
  1007. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  1008. package/node_modules/@openrig/daemon/dist/skill-loadout-surface.d.ts +3 -0
  1009. package/node_modules/@openrig/daemon/dist/skill-loadout-surface.d.ts.map +1 -0
  1010. package/node_modules/@openrig/daemon/dist/skill-loadout-surface.js +2 -0
  1011. package/node_modules/@openrig/daemon/dist/skill-loadout-surface.js.map +1 -0
  1012. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  1013. package/node_modules/@openrig/daemon/dist/startup.js +101 -66
  1014. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  1015. package/node_modules/@openrig/daemon/dist/system-world-surface.d.ts +2 -0
  1016. package/node_modules/@openrig/daemon/dist/system-world-surface.d.ts.map +1 -0
  1017. package/node_modules/@openrig/daemon/dist/system-world-surface.js +2 -0
  1018. package/node_modules/@openrig/daemon/dist/system-world-surface.js.map +1 -0
  1019. package/node_modules/@openrig/daemon/package.json +25 -1
  1020. package/package.json +1 -1
  1021. package/tui/dist/commands/registry.d.ts.map +1 -1
  1022. package/tui/dist/commands/registry.js +10 -1
  1023. package/tui/dist/commands/registry.js.map +1 -1
  1024. package/tui/dist/daemon-client.d.ts +13 -0
  1025. package/tui/dist/daemon-client.d.ts.map +1 -1
  1026. package/tui/dist/daemon-client.js +19 -0
  1027. package/tui/dist/daemon-client.js.map +1 -1
  1028. package/tui/dist/demo-data.d.ts.map +1 -1
  1029. package/tui/dist/demo-data.js +65 -9
  1030. package/tui/dist/demo-data.js.map +1 -1
  1031. package/tui/dist/detail.d.ts +9 -0
  1032. package/tui/dist/detail.d.ts.map +1 -1
  1033. package/tui/dist/detail.js.map +1 -1
  1034. package/tui/dist/execution/execution-model.d.ts +8 -2
  1035. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  1036. package/tui/dist/execution/execution-model.js +482 -119
  1037. package/tui/dist/execution/execution-model.js.map +1 -1
  1038. package/tui/dist/health/health-model.d.ts +25 -0
  1039. package/tui/dist/health/health-model.d.ts.map +1 -0
  1040. package/tui/dist/health/health-model.js +322 -0
  1041. package/tui/dist/health/health-model.js.map +1 -0
  1042. package/tui/dist/hydrate.d.ts +3 -2
  1043. package/tui/dist/hydrate.d.ts.map +1 -1
  1044. package/tui/dist/hydrate.js +77 -8
  1045. package/tui/dist/hydrate.js.map +1 -1
  1046. package/tui/dist/input.d.ts +6 -1
  1047. package/tui/dist/input.d.ts.map +1 -1
  1048. package/tui/dist/input.js +22 -10
  1049. package/tui/dist/input.js.map +1 -1
  1050. package/tui/dist/main.js +39 -8
  1051. package/tui/dist/main.js.map +1 -1
  1052. package/tui/dist/navigator.d.ts.map +1 -1
  1053. package/tui/dist/navigator.js +10 -6
  1054. package/tui/dist/navigator.js.map +1 -1
  1055. package/tui/dist/render.d.ts.map +1 -1
  1056. package/tui/dist/render.js +617 -155
  1057. package/tui/dist/render.js.map +1 -1
  1058. package/tui/dist/scopes/scopes-model.d.ts +14 -8
  1059. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  1060. package/tui/dist/scopes/scopes-model.js +218 -46
  1061. package/tui/dist/scopes/scopes-model.js.map +1 -1
  1062. package/tui/dist/socket-server.d.ts +13 -0
  1063. package/tui/dist/socket-server.d.ts.map +1 -1
  1064. package/tui/dist/socket-server.js +24 -0
  1065. package/tui/dist/socket-server.js.map +1 -1
  1066. package/tui/dist/state.d.ts.map +1 -1
  1067. package/tui/dist/state.js +31 -11
  1068. package/tui/dist/state.js.map +1 -1
  1069. package/tui/dist/stylize.d.ts.map +1 -1
  1070. package/tui/dist/stylize.js +22 -28
  1071. package/tui/dist/stylize.js.map +1 -1
  1072. package/tui/dist/theme.d.ts +1 -1
  1073. package/tui/dist/theme.d.ts.map +1 -1
  1074. package/tui/dist/theme.js +5 -4
  1075. package/tui/dist/theme.js.map +1 -1
  1076. package/tui/dist/types.d.ts +186 -1
  1077. package/tui/dist/types.d.ts.map +1 -1
  1078. package/tui/dist/visual-layout.d.ts +6 -0
  1079. package/tui/dist/visual-layout.d.ts.map +1 -0
  1080. package/tui/dist/visual-layout.js +8 -0
  1081. package/tui/dist/visual-layout.js.map +1 -0
  1082. package/ui/dist/assets/{index-B_wqzP0D.js → index-wyX378xb.js} +15 -15
  1083. package/ui/dist/index.html +1 -1
@@ -12,16 +12,17 @@ import { WorkflowInstanceStore, WorkflowInstanceError, } from "./workflow-instan
12
12
  import { resolveExceptionRoute } from "./workflow-exception-router.js";
13
13
  import { classifyGateTrip, workflowExceptionTags } from "./workflow-exception.js";
14
14
  import { newQitemId } from "./queue-repository.js";
15
- import { WorkflowProjector, WorkflowProjectorError, compileGate, nodeRuntimeOf, reconcileExplicitOwnerHarness, resolveDefaultOwner, } from "./workflow-projector.js";
15
+ import { WorkflowProjector, WorkflowProjectorError, compileGate, nodeRuntimeOf, reconcileExplicitOwnerHarness, resolveDefaultOwner, withWorkflowContinuation, workflowWaitWakeMessage, } from "./workflow-projector.js";
16
16
  import { loadHostRegistry } from "./hosts/hosts-registry-reader.js";
17
17
  import { WorkflowSpecCache, WorkflowSpecError } from "./workflow-spec-cache.js";
18
18
  import { WorkflowStepTrailLog } from "./workflow-step-trail-log.js";
19
19
  import { WorkflowValidator, } from "./workflow-validator.js";
20
- import { disarmWorkflowKeepalive, ensureWorkflowKeepaliveArmed } from "./workflow-keepalive-arming.js";
20
+ import { disarmAllWorkflowKeepalives, disarmWorkflowKeepalive, ensureWorkflowKeepaliveArmed } from "./workflow-keepalive-arming.js";
21
21
  import { evaluateStepDeadline } from "./workflow-deadline.js";
22
22
  import { rigDeclaresRole, rigMemberExists, roleResolutionContext, tryResolveRoleByCapability, } from "./workflow-role-context.js";
23
23
  import { isHumanSeatSession } from "./human-route-enforcer.js";
24
24
  import { parseSessionName } from "./session-name.js";
25
+ import { compileProjectLifecycle } from "./project-lifecycle-compiler.js";
25
26
  export class WorkflowRuntime {
26
27
  specCache;
27
28
  instanceStore;
@@ -47,6 +48,33 @@ export class WorkflowRuntime {
47
48
  this.validator = new WorkflowValidator();
48
49
  this.projector = new WorkflowProjector(this.db, this.eventBus, this.queueRepo, this.instanceStore, this.trailLog, this.specCache, this.now, this.watchdogJobsRepo, deps.exceptionDial);
49
50
  }
51
+ compileLifecycle(missionPath, operationKey) {
52
+ return compileProjectLifecycle({ missionPath, operationKey });
53
+ }
54
+ async instantiateLifecycle(input) {
55
+ const compilation = this.compileLifecycle(input.missionPath, input.operationKey);
56
+ if (!compilation.eligible || !compilation.workflowSpec) {
57
+ throw new WorkflowProjectorError("lifecycle_not_eligible", "compiled lifecycle is inspectable but not eligible for instantiation", { missionPath: input.missionPath, unknowns: compilation.unknowns });
58
+ }
59
+ const result = await this.instantiate({
60
+ specPath: input.missionPath,
61
+ rootObjective: input.rootObjective,
62
+ createdBySession: input.createdBySession,
63
+ entryOwnerSession: input.entryOwnerSession,
64
+ targetRig: input.targetRig,
65
+ compiledLifecycle: compilation,
66
+ lifecycle: {
67
+ operationKey: input.operationKey,
68
+ compiledInputDigest: compilation.compiledInputDigest,
69
+ binding: {
70
+ identity: compilation.identity,
71
+ sources: compilation.sources,
72
+ dependencies: compilation.dependencies,
73
+ },
74
+ },
75
+ });
76
+ return { ...result, compilation };
77
+ }
50
78
  /**
51
79
  * OPR.0.4.6.WF5 FR-2: resolve the maturity dial for a CACHED spec —
52
80
  * the class-(b) detection paths (sweep/keepalive) call this through
@@ -119,6 +147,42 @@ export class WorkflowRuntime {
119
147
  * see the workflow.instantiated + queue.created events together.
120
148
  */
121
149
  async instantiate(input) {
150
+ // Replay/conflict classification must precede every cache or queue write.
151
+ // The operation key is the durable outer identity; an exact replay reads
152
+ // the already-cached spec and entry row, while changed bytes refuse with
153
+ // zero mutation.
154
+ if (input.lifecycle) {
155
+ if (!input.lifecycle.operationKey || !input.lifecycle.compiledInputDigest) {
156
+ throw new WorkflowProjectorError("lifecycle_identity_invalid", "lifecycle instantiation requires non-empty operationKey and compiledInputDigest");
157
+ }
158
+ const existing = this.instanceStore.getByLifecycleOperationKey(input.lifecycle.operationKey);
159
+ if (existing) {
160
+ if (existing.compiledInputDigest !== input.lifecycle.compiledInputDigest) {
161
+ throw new WorkflowProjectorError("lifecycle_operation_conflict", `lifecycle operation key ${input.lifecycle.operationKey} already binds different compiled input bytes`, {
162
+ operationKey: input.lifecycle.operationKey,
163
+ expectedDigest: existing.compiledInputDigest,
164
+ attemptedDigest: input.lifecycle.compiledInputDigest,
165
+ instanceId: existing.instanceId,
166
+ });
167
+ }
168
+ const spec = this.specCache.getByNameVersion(existing.workflowName, existing.workflowVersion);
169
+ const entryQitemId = typeof existing.lifecycleBinding?.entryQitemId === "string"
170
+ ? existing.lifecycleBinding.entryQitemId
171
+ : null;
172
+ const entryPacket = entryQitemId ? this.queueRepo.getById(entryQitemId) : null;
173
+ if (!spec || !entryQitemId || !entryPacket) {
174
+ throw new WorkflowProjectorError("lifecycle_replay_indeterminate", `lifecycle operation ${input.lifecycle.operationKey} exists but its cached spec or entry packet cannot be resolved`, { operationKey: input.lifecycle.operationKey, instanceId: existing.instanceId, entryQitemId });
175
+ }
176
+ return {
177
+ instance: existing,
178
+ spec,
179
+ entryQitemId,
180
+ entryOwnerSession: entryPacket.destinationSession,
181
+ advisories: [],
182
+ replayed: true,
183
+ };
184
+ }
185
+ }
122
186
  // OPR.0.3.3.04.1 (AC-3 reachability): a fresh operator runs
123
187
  // `workflow instantiate <discovered-name>` (e.g. `conveyor`), not a hidden
124
188
  // file path. Resolve the identifier against the seeded spec cache BY NAME
@@ -127,7 +191,10 @@ export class WorkflowRuntime {
127
191
  // operator-authored spec at an explicit path). Before this, instantiate fed
128
192
  // the bare name straight to readThrough -> spec_file_missing.
129
193
  const resolvedSpecPath = this.specCache.resolveSourcePathByName(input.specPath) ?? input.specPath;
130
- const specRow = this.specCache.readThrough(resolvedSpecPath);
194
+ const generatedSpec = input.compiledLifecycle?.workflowSpec;
195
+ const specRow = generatedSpec
196
+ ? this.specCache.putGenerated(generatedSpec, input.compiledLifecycle.sources.find((source) => source.kind === "mission")?.path ?? resolvedSpecPath, input.compiledLifecycle.compiledInputDigest)
197
+ : this.specCache.readThrough(resolvedSpecPath);
131
198
  const validation = this.validator.validate(specRow.spec, this.seatLivenessCheck, this.hostRegistryLookup);
132
199
  if (!validation.ok) {
133
200
  throw new WorkflowProjectorError("spec_invalid", `cannot instantiate: spec ${specRow.name}@${specRow.version} has ${validation.issues.filter((i) => i.severity === "error").length} validation error(s); run validate to inspect`, { specPath: input.specPath, issues: validation.issues });
@@ -379,6 +446,7 @@ export class WorkflowRuntime {
379
446
  throw new WorkflowProjectorError("entry_owner_unresolved", `cannot instantiate: entry step "${entryStep.id}" (role "${entryStep.actor_role}") has no preferred_targets and no entryOwnerSession was supplied`, { specPath: input.specPath, entryStepId: entryStep.id, entryRole: entryStep.actor_role });
380
447
  }
381
448
  const createdAt = this.now().toISOString();
449
+ const preallocatedEntryQitemId = newQitemId();
382
450
  let entryQitemId;
383
451
  let entryQitemDestinationSession;
384
452
  let entryQitemNudge;
@@ -396,6 +464,12 @@ export class WorkflowRuntime {
396
464
  // OPR.0.4.6.FAC1: the resolved rig binding persists with the
397
465
  // instance row (same txn as the entry packet).
398
466
  boundRig,
467
+ lifecycle: input.lifecycle
468
+ ? {
469
+ ...input.lifecycle,
470
+ binding: { ...input.lifecycle.binding, entryQitemId: preallocatedEntryQitemId },
471
+ }
472
+ : undefined,
399
473
  });
400
474
  instanceId = instance.instanceId;
401
475
  // Create entry qitem in the same txn (gate-aware: a gated entry
@@ -405,7 +479,7 @@ export class WorkflowRuntime {
405
479
  // carries the class-(c) exception identity on the WF-2 item
406
480
  // itself, occurrence = the preallocated packet id. Handler-role
407
481
  // entries stay negative.
408
- const entryGateQitemId = entryGate ? newQitemId() : undefined;
482
+ const entryGateQitemId = preallocatedEntryQitemId;
409
483
  const entryGateException = entryGate && entryGateQitemId
410
484
  ? classifyGateTrip({
411
485
  workflowName: specRow.name,
@@ -426,6 +500,8 @@ export class WorkflowRuntime {
426
500
  entryStep,
427
501
  rootObjective: input.rootObjective,
428
502
  gate: entryGate,
503
+ packetId: entryGateQitemId,
504
+ ownerSession: entryOwner,
429
505
  }),
430
506
  priority: "routine",
431
507
  tier: entryGate?.tier ?? "mode2",
@@ -443,6 +519,14 @@ export class WorkflowRuntime {
443
519
  entryQitemDestinationSession = created.destinationSession;
444
520
  entryQitemNudge = created.nudge;
445
521
  register(created.persistedEvent);
522
+ const packetAddressed = specRow.spec.steps.some((step) => step.depends_on !== undefined);
523
+ if (packetAddressed) {
524
+ this.instanceStore.bindFrontierPacket({
525
+ instanceId: instance.instanceId,
526
+ packetId: created.qitemId,
527
+ stepId: entryStep.id,
528
+ });
529
+ }
446
530
  // OPR.0.4.6.WF2 FR-5 (guard blocker 1): a HUMAN-gated ENTRY parks
447
531
  // in the same txn — the leg-1 blocked_on human-seat shape the
448
532
  // shipped resolve verb acts on (same as the projector's mid-flow
@@ -464,14 +548,15 @@ export class WorkflowRuntime {
464
548
  // txn at version 0; uniformity keeps every advance guarded.
465
549
  expectedVersion: instance.version,
466
550
  });
467
- // FR-3: arm the per-instance keepalive INSIDE the same txn that
468
- // creates the entry packet (covers commit-then-crash-before-nudge
469
- // from the very first step).
551
+ // FR-3: arm the packet-addressed keepalive (or legacy instance job)
552
+ // INSIDE the same txn that creates the entry packet. This covers the
553
+ // commit-then-crash-before-nudge window from the very first step.
470
554
  if (this.watchdogJobsRepo) {
471
555
  ensureWorkflowKeepaliveArmed(this.watchdogJobsRepo, {
472
556
  instanceId: instance.instanceId,
473
557
  targetSession: entryOwner,
474
558
  registeredBySession: input.createdBySession,
559
+ packetId: packetAddressed ? created.qitemId : undefined,
475
560
  });
476
561
  }
477
562
  register(this.eventBus.persistWithinTransaction({
@@ -492,11 +577,103 @@ export class WorkflowRuntime {
492
577
  entryQitemId: entryQitemId,
493
578
  entryOwnerSession: entryOwner,
494
579
  advisories,
580
+ replayed: false,
495
581
  };
496
582
  }
497
583
  async project(input) {
498
584
  return this.projector.project(input);
499
585
  }
586
+ inspect(instanceId) {
587
+ const instance = this.instanceStore.getByIdOrThrow(instanceId);
588
+ const unknowns = [];
589
+ const spec = this.specCache.getByNameVersion(instance.workflowName, instance.workflowVersion)?.spec;
590
+ const frontier = instance.currentFrontier.map((packetId) => {
591
+ const binding = this.instanceStore.getFrontierBinding(instanceId, packetId);
592
+ const packet = this.queueRepo.getById(packetId);
593
+ const stepId = binding?.stepId ?? (instance.currentFrontier.length === 1 ? instance.currentStepId : null);
594
+ const step = stepId ? spec?.steps.find((candidate) => candidate.id === stepId) : undefined;
595
+ if (!binding && instance.currentFrontier.length > 1)
596
+ unknowns.push(`frontier packet ${packetId} has no unique step binding`);
597
+ if (!packet)
598
+ unknowns.push(`frontier packet ${packetId} has no queue row`);
599
+ return {
600
+ packetId,
601
+ stepId,
602
+ ownerSession: packet?.destinationSession ?? null,
603
+ queueState: packet?.state ?? null,
604
+ blockedOn: packet?.blockedOn ?? null,
605
+ targetedAction: stepId && packet ? "project" : "indeterminate",
606
+ dependsOn: step?.depends_on ?? [],
607
+ gate: step?.gate ?? null,
608
+ acceptance: step?.acceptance ?? null,
609
+ deadline: evaluateStepDeadline({ ...instance, currentFrontier: [packetId], currentStepId: stepId }, packet ? [packet] : [], this.now()),
610
+ };
611
+ });
612
+ const failureResumeAvailable = instance.status !== "completed" && instance.status !== "aborted";
613
+ const failures = this.instanceStore.listFailureOccurrences(instanceId).map((failure) => ({
614
+ ...failure,
615
+ targetedAction: failure.status === "unresolved" && failureResumeAvailable
616
+ ? "resume"
617
+ : "none",
618
+ }));
619
+ return { instance, frontier, failures, unknowns };
620
+ }
621
+ async abort(input) {
622
+ if (!input.reason.trim()) {
623
+ throw new WorkflowProjectorError("abort_reason_required", "workflow abort requires a non-empty reason");
624
+ }
625
+ const closedPacketIds = [];
626
+ this.eventBus.withNotifyEnvelope((register) => {
627
+ const instance = this.instanceStore.getByIdOrThrow(input.instanceId);
628
+ if (instance.status === "completed" || instance.status === "aborted") {
629
+ throw new WorkflowProjectorError("instance_not_abortable", `instance ${instance.instanceId} is ${instance.status}`, { instanceId: instance.instanceId, status: instance.status });
630
+ }
631
+ const spec = this.specCache.getByNameVersion(instance.workflowName, instance.workflowVersion)?.spec;
632
+ const bindingByPacket = new Map(this.instanceStore.listFrontierBindings(instance.instanceId).map((binding) => [binding.packetId, binding]));
633
+ const closedAt = this.now().toISOString();
634
+ for (const packetId of instance.currentFrontier) {
635
+ const packet = this.queueRepo.getById(packetId);
636
+ if (!packet)
637
+ throw new WorkflowProjectorError("packet_not_found", `frontier packet ${packetId} not found`, { instanceId: instance.instanceId, packetId });
638
+ const binding = bindingByPacket.get(packetId);
639
+ const stepId = binding?.stepId ?? (instance.currentFrontier.length === 1 ? instance.currentStepId : null);
640
+ if (!stepId)
641
+ throw new WorkflowProjectorError("frontier_binding_indeterminate", `cannot abort: packet ${packetId} has no step binding`, { instanceId: instance.instanceId, packetId });
642
+ const step = spec?.steps.find((candidate) => candidate.id === stepId);
643
+ const closed = this.queueRepo.updateWithinTransaction({
644
+ qitemId: packetId,
645
+ actorSession: input.actorSession,
646
+ viaWorkflowVerb: true,
647
+ state: "canceled",
648
+ transitionNote: `workflow abort by ${input.actorSession}: ${input.reason}`,
649
+ });
650
+ register(closed.persistedEvent);
651
+ this.trailLog.record({
652
+ instanceId: instance.instanceId,
653
+ stepId,
654
+ stepRole: step?.actor_role ?? "unknown",
655
+ closedAt,
656
+ closureReason: "failed",
657
+ closureEvidence: { abort: { reason: input.reason, actorSession: input.actorSession } },
658
+ actorSession: input.actorSession,
659
+ nextQitemId: null,
660
+ priorQitemId: packetId,
661
+ });
662
+ this.instanceStore.removeFrontierBinding(instance.instanceId, packetId);
663
+ closedPacketIds.push(packetId);
664
+ }
665
+ this.instanceStore.updateFrontier(instance.instanceId, [], "aborted", {
666
+ currentStepId: "clear",
667
+ completedAt: closedAt,
668
+ expectedVersion: instance.version,
669
+ lastContinuationDecision: { action: "abort", actorSession: input.actorSession, reason: input.reason, closedPacketIds },
670
+ });
671
+ if (this.watchdogJobsRepo)
672
+ disarmAllWorkflowKeepalives(this.watchdogJobsRepo, instance.instanceId, `workflow_aborted: ${input.reason}`);
673
+ register(this.eventBus.persistWithinTransaction({ type: "workflow.failed", instanceId: instance.instanceId, workflowName: instance.workflowName, reason: `aborted: ${input.reason}` }));
674
+ });
675
+ return { instanceId: input.instanceId, closedPacketIds, status: "aborted" };
676
+ }
500
677
  /**
501
678
  * OPR.0.4.6.WF3 FR-4 — `route`: re-target the CURRENT FRONTIER step
502
679
  * of a live instance to a new owner. THE ADJUDICATED MECHANISM
@@ -535,6 +712,10 @@ export class WorkflowRuntime {
535
712
  * upgrades uniformly.
536
713
  */
537
714
  async resume(input) {
715
+ const occurrences = this.instanceStore.listFailureOccurrences(input.instanceId);
716
+ if (input.occurrenceId || occurrences.length > 0) {
717
+ return this.resumeFailureOccurrence(input);
718
+ }
538
719
  let result;
539
720
  let nudgeTo = null;
540
721
  this.eventBus.withNotifyEnvelope((register) => {
@@ -570,16 +751,25 @@ export class WorkflowRuntime {
570
751
  // Fresh frontier packet — the redrive delivery. The --decision
571
752
  // text lands durably in the packet body (the resumer’s
572
753
  // instruction reaches the step owner).
754
+ const redrivePacketId = newQitemId();
573
755
  const created = this.queueRepo.createWithinTransaction({
756
+ qitemId: redrivePacketId,
574
757
  sourceSession: input.actorSession,
575
758
  destinationSession: owner,
576
- body: `WORKFLOW RESUME (redrive)\n` +
577
- `workflow: ${instance.workflowName} v${instance.workflowVersion}\n` +
578
- `instance: ${instance.instanceId}\n` +
579
- `step: ${step.id} (role ${step.actor_role}) — re-driven from the recorded failure; completed steps are NOT re-run\n` +
580
- `resumed by: ${input.actorSession} (redrive #${(instance.resumeCount ?? 0) + 1})\n` +
581
- (input.decision ? `decision: ${input.decision}\n` : "") +
582
- `history: rig workflow trace ${instance.instanceId}`,
759
+ body: withWorkflowContinuation({
760
+ body: `WORKFLOW RESUME (redrive)\n` +
761
+ `workflow: ${instance.workflowName} v${instance.workflowVersion}\n` +
762
+ `instance: ${instance.instanceId}\n` +
763
+ `step: ${step.id} (role ${step.actor_role}) — re-driven from the recorded failure; completed steps are NOT re-run\n` +
764
+ `resumed by: ${input.actorSession} (redrive #${(instance.resumeCount ?? 0) + 1})\n` +
765
+ (input.decision ? `decision: ${input.decision}\n` : "") +
766
+ `history: rig workflow trace ${instance.instanceId}`,
767
+ instanceId: instance.instanceId,
768
+ packetId: redrivePacketId,
769
+ ownerSession: owner,
770
+ step,
771
+ contextRefs: specRow.spec.context_refs,
772
+ }),
583
773
  priority: "routine",
584
774
  tier: "mode2",
585
775
  tags: [
@@ -685,6 +875,104 @@ export class WorkflowRuntime {
685
875
  }
686
876
  return result;
687
877
  }
878
+ async resumeFailureOccurrence(input) {
879
+ const all = this.instanceStore.listFailureOccurrences(input.instanceId);
880
+ const selected = input.occurrenceId
881
+ ? all.find((occurrence) => occurrence.occurrenceId === input.occurrenceId)
882
+ : undefined;
883
+ if (selected?.status === "resolved" && selected.redrivePacketId) {
884
+ if (selected.resumeDecision !== (input.decision ?? null)) {
885
+ throw new WorkflowProjectorError("failure_occurrence_replay_conflict", `failure occurrence ${selected.occurrenceId} was already resumed with different decision bytes`, {
886
+ instanceId: input.instanceId,
887
+ occurrenceId: selected.occurrenceId,
888
+ expectedDecision: selected.resumeDecision,
889
+ attemptedDecision: input.decision ?? null,
890
+ });
891
+ }
892
+ const packet = this.queueRepo.getById(selected.redrivePacketId);
893
+ if (!packet) {
894
+ throw new WorkflowProjectorError("failure_occurrence_replay_indeterminate", `resolved occurrence ${selected.occurrenceId} points to missing redrive packet ${selected.redrivePacketId}`, { instanceId: input.instanceId, occurrenceId: selected.occurrenceId });
895
+ }
896
+ const instance = this.instanceStore.getByIdOrThrow(input.instanceId);
897
+ return { instanceId: input.instanceId, stepId: selected.stepId, newPacketId: selected.redrivePacketId, ownerSession: packet.destinationSession, resumeCount: instance.resumeCount, exceptionItemsClosed: 0, absorbedReplay: true };
898
+ }
899
+ const unresolved = all.filter((occurrence) => occurrence.status === "unresolved");
900
+ if (!input.occurrenceId && unresolved.length !== 1) {
901
+ throw new WorkflowProjectorError("failure_occurrence_required", `instance ${input.instanceId} has ${unresolved.length} unresolved failure occurrences; --occurrence is required`, { instanceId: input.instanceId, candidates: unresolved });
902
+ }
903
+ const occurrence = selected ?? unresolved[0];
904
+ if (!occurrence || occurrence.status !== "unresolved") {
905
+ throw new WorkflowProjectorError("failure_occurrence_not_unresolved", `failure occurrence ${input.occurrenceId ?? "(unspecified)"} is not unresolved`, { instanceId: input.instanceId, occurrenceId: input.occurrenceId ?? null });
906
+ }
907
+ let output;
908
+ let wake = null;
909
+ this.eventBus.withNotifyEnvelope((register) => {
910
+ const instance = this.instanceStore.getByIdOrThrow(input.instanceId);
911
+ if (instance.status === "completed" || instance.status === "aborted") {
912
+ throw new WorkflowProjectorError("instance_not_resumable", `instance ${instance.instanceId} is ${instance.status}`, { instanceId: instance.instanceId, status: instance.status });
913
+ }
914
+ const specRow = this.specCache.getByNameVersion(instance.workflowName, instance.workflowVersion);
915
+ if (!specRow)
916
+ throw new WorkflowProjectorError("spec_not_cached", `workflow spec ${instance.workflowName}@${instance.workflowVersion} is not cached`);
917
+ const step = specRow.spec.steps.find((candidate) => candidate.id === occurrence.stepId);
918
+ if (!step)
919
+ throw new WorkflowProjectorError("resume_step_missing_from_spec", `failed step "${occurrence.stepId}" no longer exists`, { instanceId: instance.instanceId, stepId: occurrence.stepId });
920
+ const owner = resolveDefaultOwner(specRow.spec, step, (session) => nodeRuntimeOf(this.db, session), roleResolutionContext(this.db, instance.boundRig));
921
+ if (!owner)
922
+ throw new WorkflowProjectorError("next_owner_unresolved", `cannot resolve owner for failed step "${step.id}"`);
923
+ const redrivePacketId = newQitemId();
924
+ const created = this.queueRepo.createWithinTransaction({
925
+ qitemId: redrivePacketId,
926
+ sourceSession: input.actorSession,
927
+ destinationSession: owner,
928
+ body: withWorkflowContinuation({
929
+ body: `WORKFLOW RESUME (packet redrive)\nworkflow: ${instance.workflowName} v${instance.workflowVersion}\ninstance: ${instance.instanceId}\noccurrence: ${occurrence.occurrenceId}\nstep: ${step.id}\n${input.decision ? `decision: ${input.decision}\n` : ""}`,
930
+ instanceId: instance.instanceId,
931
+ packetId: redrivePacketId,
932
+ ownerSession: owner,
933
+ step,
934
+ contextRefs: specRow.spec.context_refs,
935
+ }),
936
+ priority: "routine",
937
+ tier: "mode2",
938
+ tags: ["workflow", "resume", `workflow:${instance.workflowName}`, `instance:${instance.instanceId}`, `occurrence:${occurrence.occurrenceId}`],
939
+ chainOfRecord: [occurrence.failedPacketId],
940
+ });
941
+ register(created.persistedEvent);
942
+ this.queueRepo.stageWakeIntent(created.qitemId, input.actorSession, created.destinationSession, null, created.nudge);
943
+ this.instanceStore.bindFrontierPacket({
944
+ instanceId: instance.instanceId,
945
+ packetId: created.qitemId,
946
+ stepId: occurrence.stepId,
947
+ branchDrive: occurrence.branchDrive + 1,
948
+ hopCount: occurrence.hopCount,
949
+ hopsBaseline: occurrence.hopCount,
950
+ });
951
+ this.instanceStore.resolveFailureOccurrence(instance.instanceId, occurrence.occurrenceId, created.qitemId, input.decision);
952
+ const nextFrontier = [...instance.currentFrontier, created.qitemId];
953
+ const bindings = this.instanceStore.listFrontierBindings(instance.instanceId);
954
+ this.instanceStore.updateFrontier(instance.instanceId, nextFrontier, "active", {
955
+ currentStepId: bindings.length === 1 ? bindings[0].stepId : "clear",
956
+ expectedVersion: instance.version,
957
+ resumeStamp: { resumeCount: instance.resumeCount + 1, hopsBaseline: instance.hopCount },
958
+ lastContinuationDecision: { action: "resume_occurrence", occurrenceId: occurrence.occurrenceId, redrivePacketId: created.qitemId, actorSession: input.actorSession, decision: input.decision ?? null },
959
+ });
960
+ if (this.watchdogJobsRepo)
961
+ ensureWorkflowKeepaliveArmed(this.watchdogJobsRepo, {
962
+ instanceId: instance.instanceId,
963
+ packetId: created.qitemId,
964
+ targetSession: owner,
965
+ registeredBySession: input.actorSession,
966
+ });
967
+ register(this.eventBus.persistWithinTransaction({ type: "workflow.resumed", instanceId: instance.instanceId, workflowName: instance.workflowName, stepId: step.id, occurrenceId: occurrence.occurrenceId, resumedBy: input.actorSession, decision: input.decision ?? null, resumeCount: instance.resumeCount + 1 }));
968
+ wake = { qitemId: created.qitemId, session: created.destinationSession, nudge: created.nudge };
969
+ output = { instanceId: instance.instanceId, stepId: step.id, newPacketId: created.qitemId, ownerSession: owner, resumeCount: instance.resumeCount + 1, exceptionItemsClosed: 0 };
970
+ });
971
+ const nudge = wake;
972
+ if (nudge)
973
+ await this.queueRepo.deliverWakeForSuccessor(nudge.qitemId, nudge.session, nudge.nudge, input.actorSession);
974
+ return output;
975
+ }
688
976
  async route(input) {
689
977
  let result;
690
978
  let nudgeTo = null;
@@ -693,9 +981,26 @@ export class WorkflowRuntime {
693
981
  if (instance.status !== "active" && instance.status !== "waiting") {
694
982
  throw new WorkflowProjectorError("instance_not_active", `instance ${instance.instanceId} is ${instance.status}; only a live (active|waiting) instance can be re-routed`, { instanceId: instance.instanceId, status: instance.status });
695
983
  }
696
- const oldPacketId = instance.currentFrontier[0];
984
+ let oldPacketId = input.packetId;
985
+ if (!oldPacketId) {
986
+ if (instance.currentFrontier.length !== 1) {
987
+ if (instance.currentFrontier.length === 0) {
988
+ throw new WorkflowProjectorError("packet_not_found", `instance ${instance.instanceId} has an empty frontier; nothing to re-route`, { instanceId: instance.instanceId });
989
+ }
990
+ const candidates = instance.currentFrontier.map((packetId) => {
991
+ const binding = this.instanceStore.getFrontierBinding(instance.instanceId, packetId);
992
+ const packet = this.queueRepo.getById(packetId);
993
+ return { packetId, stepId: binding?.stepId ?? null, ownerSession: packet?.destinationSession ?? null };
994
+ });
995
+ throw new WorkflowProjectorError("frontier_packet_required", `instance ${instance.instanceId} has ${instance.currentFrontier.length} live packets; --packet is required`, { instanceId: instance.instanceId, candidates });
996
+ }
997
+ [oldPacketId] = instance.currentFrontier;
998
+ }
697
999
  if (!oldPacketId) {
698
- throw new WorkflowProjectorError("packet_not_found", `instance ${instance.instanceId} has an empty frontier; nothing to re-route`, { instanceId: instance.instanceId });
1000
+ throw new WorkflowProjectorError("packet_not_found", `instance ${instance.instanceId} has no selectable frontier packet`, { instanceId: instance.instanceId });
1001
+ }
1002
+ if (!instance.currentFrontier.includes(oldPacketId)) {
1003
+ throw new WorkflowProjectorError("packet_not_on_frontier", `qitem ${oldPacketId} is not in workflow instance ${instance.instanceId} frontier`, { instanceId: instance.instanceId, packetId: oldPacketId, frontier: instance.currentFrontier });
699
1004
  }
700
1005
  const oldPacket = this.queueRepo.getById(oldPacketId);
701
1006
  if (!oldPacket) {
@@ -706,8 +1011,10 @@ export class WorkflowRuntime {
706
1011
  // to explicit --next-owner overrides — an explicit route target
707
1012
  // never silently defeats a declared pin.
708
1013
  const specRow = this.specCache.getByNameVersion(instance.workflowName, instance.workflowVersion);
709
- const step = instance.currentStepId && specRow
710
- ? specRow.spec.steps.find((s) => s.id === instance.currentStepId) ?? null
1014
+ const oldBinding = this.instanceStore.getFrontierBinding(instance.instanceId, oldPacketId);
1015
+ const selectedStepId = oldBinding?.stepId ?? (instance.currentFrontier.length === 1 ? instance.currentStepId : null);
1016
+ const step = selectedStepId && specRow
1017
+ ? specRow.spec.steps.find((s) => s.id === selectedStepId) ?? null
711
1018
  : null;
712
1019
  if (step) {
713
1020
  reconcileExplicitOwnerHarness(step, input.toSession, (session) => nodeRuntimeOf(this.db, session));
@@ -722,7 +1029,7 @@ export class WorkflowRuntime {
722
1029
  closureReason: "handed_off_to",
723
1030
  closureTarget: input.toSession,
724
1031
  handedOffTo: input.toSession,
725
- transitionNote: `workflow route: ${input.actorSession} re-routed step ${instance.currentStepId ?? "?"} from ${fromSession} to ${input.toSession}${input.reason ? ` — ${input.reason}` : ""}`,
1032
+ transitionNote: `workflow route: ${input.actorSession} re-routed step ${selectedStepId ?? "?"} from ${fromSession} to ${input.toSession}${input.reason ? ` — ${input.reason}` : ""}`,
726
1033
  });
727
1034
  register(closed.persistedEvent);
728
1035
  // Recreate the SAME step for the new owner (step identity is the
@@ -736,10 +1043,19 @@ export class WorkflowRuntime {
736
1043
  // rejects the repark below (human_route_fields_required) and
737
1044
  // the waiting-on-human class — the one route most exists for —
738
1045
  // becomes un-routable.
1046
+ const routedPacketId = newQitemId();
739
1047
  const created = this.queueRepo.createWithinTransaction({
1048
+ qitemId: routedPacketId,
740
1049
  sourceSession: input.actorSession,
741
1050
  destinationSession: input.toSession,
742
- body: oldPacket.body,
1051
+ body: withWorkflowContinuation({
1052
+ body: oldPacket.body,
1053
+ instanceId: instance.instanceId,
1054
+ packetId: routedPacketId,
1055
+ ownerSession: input.toSession,
1056
+ step: step ?? undefined,
1057
+ contextRefs: specRow?.spec.context_refs,
1058
+ }),
743
1059
  priority: oldPacket.priority ?? "routine",
744
1060
  tier: oldPacket.tier ?? "mode2",
745
1061
  // OPR.0.4.6.WF5 (rev1-r2 B1 fold): the successor IS the same work
@@ -786,21 +1102,46 @@ export class WorkflowRuntime {
786
1102
  closureTarget: oldPacket.blockedOn,
787
1103
  blockedOn: oldPacket.blockedOn,
788
1104
  transitionNote: `workflow route: park preserved (${oldPacket.blockedOn})`,
1105
+ wakeAfterSeconds: step?.re_present_after_seconds,
1106
+ wakeMaxSeconds: step?.re_present_max_seconds,
1107
+ wakeMessage: step?.re_present_after_seconds !== undefined
1108
+ ? workflowWaitWakeMessage({
1109
+ spec: specRow.spec,
1110
+ instance,
1111
+ step,
1112
+ packetId: routedPacketId,
1113
+ ownerSession: input.toSession,
1114
+ })
1115
+ : undefined,
789
1116
  });
790
1117
  register(reparked.persistedEvent);
791
1118
  }
792
1119
  // (2)+(5)+(7) frontier REBIND: same step, new packet, version
793
1120
  // guard held; NO hop bump (not an advance).
794
- this.instanceStore.updateFrontier(instance.instanceId, [created.qitemId], instance.status, {
795
- currentStepId: "preserve",
1121
+ const nextFrontier = instance.currentFrontier.map((packetId) => packetId === oldPacketId ? created.qitemId : packetId);
1122
+ if (oldBinding) {
1123
+ this.instanceStore.removeFrontierBinding(instance.instanceId, oldPacketId);
1124
+ this.instanceStore.bindFrontierPacket({
1125
+ instanceId: instance.instanceId,
1126
+ packetId: created.qitemId,
1127
+ stepId: oldBinding.stepId,
1128
+ branchDrive: oldBinding.branchDrive,
1129
+ hopCount: oldBinding.hopCount,
1130
+ hopsBaseline: oldBinding.hopsBaseline,
1131
+ });
1132
+ }
1133
+ const rebound = this.instanceStore.listFrontierBindings(instance.instanceId);
1134
+ this.instanceStore.updateFrontier(instance.instanceId, nextFrontier, instance.status, {
1135
+ currentStepId: rebound.length === 1 ? rebound[0].stepId : rebound.length > 1 ? "clear" : "preserve",
796
1136
  expectedVersion: instance.version,
797
1137
  });
798
1138
  // Keepalive re-target IN-TXN (arch n3: covers route's lost-nudge
799
1139
  // window — the armed job re-nudges the new owner).
800
1140
  if (this.watchdogJobsRepo) {
801
- disarmWorkflowKeepalive(this.watchdogJobsRepo, instance.instanceId, `workflow route: re-targeted to ${input.toSession}`);
1141
+ disarmWorkflowKeepalive(this.watchdogJobsRepo, instance.instanceId, `workflow route: re-targeted to ${input.toSession}`, oldBinding ? oldPacketId : undefined);
802
1142
  ensureWorkflowKeepaliveArmed(this.watchdogJobsRepo, {
803
1143
  instanceId: instance.instanceId,
1144
+ packetId: oldBinding ? created.qitemId : undefined,
804
1145
  targetSession: input.toSession,
805
1146
  registeredBySession: input.actorSession,
806
1147
  });
@@ -813,13 +1154,13 @@ export class WorkflowRuntime {
813
1154
  rigName: instance.boundRig ?? specRow?.targetRig ?? "",
814
1155
  cause: "workflow_route",
815
1156
  instanceId: instance.instanceId,
816
- stepId: instance.currentStepId,
1157
+ stepId: selectedStepId,
817
1158
  from: fromSession,
818
1159
  to: input.toSession,
819
1160
  }));
820
1161
  result = {
821
1162
  instanceId: instance.instanceId,
822
- stepId: instance.currentStepId,
1163
+ stepId: selectedStepId,
823
1164
  closedPacketId: oldPacketId,
824
1165
  newPacketId: created.qitemId,
825
1166
  fromSession,
@@ -847,7 +1188,14 @@ export class WorkflowRuntime {
847
1188
  continue(instanceId) {
848
1189
  const instance = this.instanceStore.getByIdOrThrow(instanceId);
849
1190
  const trail = this.trailLog.listForInstance(instanceId);
850
- return { instance: this.withDeadline(instance), trail };
1191
+ const inspected = this.inspect(instanceId);
1192
+ return {
1193
+ instance: this.withDeadline(instance),
1194
+ trail,
1195
+ frontier: inspected.frontier,
1196
+ failures: inspected.failures,
1197
+ unknowns: inspected.unknowns,
1198
+ };
851
1199
  }
852
1200
  /**
853
1201
  * OPR.0.4.6.WF1 FR-2 COMPLETION FIXBACK (build-vs-ratified-AC debt,
@@ -879,7 +1227,15 @@ export class WorkflowRuntime {
879
1227
  /** List instances (optionally filtered) with the deadline verdict attached. */
880
1228
  listInstancesWithDeadline(status) {
881
1229
  const rows = status ? this.instanceStore.listByStatus(status) : this.instanceStore.listAll();
882
- return rows.map((row) => this.withDeadline(row));
1230
+ return rows.map((row) => {
1231
+ const inspected = this.inspect(row.instanceId);
1232
+ return {
1233
+ ...this.withDeadline(row),
1234
+ frontierPackets: inspected.frontier,
1235
+ failureOccurrences: inspected.failures,
1236
+ unknowns: inspected.unknowns,
1237
+ };
1238
+ });
883
1239
  }
884
1240
  }
885
1241
  function workflowInstantiateBody(input) {
@@ -901,7 +1257,14 @@ function workflowInstantiateBody(input) {
901
1257
  if (input.entryStep.objective) {
902
1258
  lines.push("", `Step objective: ${input.entryStep.objective}`);
903
1259
  }
904
- return lines.join("\n");
1260
+ return withWorkflowContinuation({
1261
+ body: lines.join("\n"),
1262
+ contextRefs: input.spec.context_refs,
1263
+ instanceId: input.instanceId,
1264
+ packetId: input.packetId,
1265
+ ownerSession: input.ownerSession,
1266
+ step: input.entryStep,
1267
+ });
905
1268
  }
906
1269
  export { WorkflowInstanceError, WorkflowProjectorError, WorkflowSpecError, };
907
1270
  //# sourceMappingURL=workflow-runtime.js.map