@openrig/cli 0.5.9 → 0.5.11

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 (862) hide show
  1. package/daemon/assets/plugins/openrig-core/README.md +24 -5
  2. package/daemon/assets/plugins/openrig-core/skills/agent-operated-workflows/SKILL.md +4 -2
  3. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +11 -14
  4. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +51 -59
  5. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +11 -10
  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-operating-model/SKILL.md +39 -50
  9. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trunk-diff.sh +1 -1
  10. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/LEARNED.md +7 -5
  11. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/PLAYBOOK.md +3 -4
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/SPEC.md +7 -7
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +80 -64
  14. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +14 -58
  15. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +8 -9
  16. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +20 -46
  17. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +62 -76
  18. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +28 -22
  19. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +13 -15
  20. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -3
  21. package/daemon/context-packs/onboarding-width/public-reference-material.md +19 -24
  22. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +80 -33
  23. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/agent-operated-workflows/SKILL.md +4 -2
  25. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +11 -14
  27. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +51 -59
  29. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +21 -19
  31. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +32 -16
  33. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +84 -148
  35. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +3 -3
  36. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +48 -61
  38. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +3 -3
  39. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +40 -47
  40. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +16 -0
  45. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +12 -10
  49. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +15 -13
  52. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +11 -10
  56. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +19 -5
  59. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +39 -50
  61. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/openrig-operating-model/scripts/trunk-diff.sh +1 -1
  63. package/daemon/context-packs/skills/openrig-operating-model/templates/LEARNED.md +7 -5
  64. package/daemon/context-packs/skills/openrig-operating-model/templates/PLAYBOOK.md +3 -4
  65. package/daemon/context-packs/skills/openrig-operating-model/templates/SPEC.md +7 -7
  66. package/daemon/context-packs/skills/openrig-user/SKILL.md +80 -64
  67. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/CHANGELOG.md +14 -58
  69. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +1 -1
  73. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/pm/plan-review/SKILL.md +2 -2
  76. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +1 -1
  78. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +3 -3
  80. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/pods/development-team/SKILL.md +40 -139
  82. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +3 -3
  83. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +80 -118
  84. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +3 -3
  85. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/pods/review-team/SKILL.md +34 -31
  87. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +3 -3
  88. package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +24 -53
  89. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  93. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +29 -15
  94. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  95. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +53 -48
  96. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  97. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +3 -3
  98. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  99. package/daemon/context-packs/skills/queue-handoff/SKILL.md +8 -9
  100. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  101. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  102. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +20 -46
  103. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +62 -76
  104. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  105. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +28 -22
  106. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  107. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +13 -15
  108. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  109. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  110. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  111. package/daemon/context-packs/world-public/build-your-world.md +12 -7
  112. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  113. package/daemon/dist/adapters/tmux.d.ts +7 -9
  114. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  115. package/daemon/dist/adapters/tmux.js +7 -35
  116. package/daemon/dist/adapters/tmux.js.map +1 -1
  117. package/daemon/dist/build-info.js +3 -3
  118. package/daemon/dist/daemon-shutdown.d.ts +27 -0
  119. package/daemon/dist/daemon-shutdown.d.ts.map +1 -0
  120. package/daemon/dist/daemon-shutdown.js +84 -0
  121. package/daemon/dist/daemon-shutdown.js.map +1 -0
  122. package/daemon/dist/domain/codex-thread-id.d.ts +1 -0
  123. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  124. package/daemon/dist/domain/codex-thread-id.js +32 -23
  125. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  126. package/daemon/dist/domain/context-usage-store.d.ts +2 -0
  127. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  128. package/daemon/dist/domain/context-usage-store.js +7 -28
  129. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  130. package/daemon/dist/domain/crash-cart-conductor.js +1 -1
  131. package/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
  132. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  133. package/daemon/dist/domain/execution-view.js +24 -3
  134. package/daemon/dist/domain/execution-view.js.map +1 -1
  135. package/daemon/dist/domain/gateway/channel-operations.d.ts +39 -0
  136. package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -0
  137. package/daemon/dist/domain/gateway/channel-operations.js +35 -0
  138. package/daemon/dist/domain/gateway/channel-operations.js.map +1 -0
  139. package/daemon/dist/domain/gateway/connections-projection.d.ts +61 -0
  140. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -0
  141. package/daemon/dist/domain/gateway/connections-projection.js +149 -0
  142. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -0
  143. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +3 -0
  144. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  145. package/daemon/dist/domain/gateway/gateway-subsystem.js +3 -0
  146. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  147. package/daemon/dist/domain/gateway/human-readiness.d.ts +37 -0
  148. package/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -0
  149. package/daemon/dist/domain/gateway/human-readiness.js +44 -0
  150. package/daemon/dist/domain/gateway/human-readiness.js.map +1 -0
  151. package/daemon/dist/domain/gateway/human-registry.d.ts +5 -8
  152. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  153. package/daemon/dist/domain/gateway/human-registry.js +5 -8
  154. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  155. package/daemon/dist/domain/gateway/slack/inbound.d.ts +16 -1
  156. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  157. package/daemon/dist/domain/gateway/slack/inbound.js +35 -12
  158. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  159. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -0
  160. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  161. package/daemon/dist/domain/gateway/slack/queue-access.js +1 -0
  162. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  163. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +18 -0
  164. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  165. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +63 -8
  166. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  167. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +13 -0
  168. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  169. package/daemon/dist/domain/gateway/slack/socket-inbound.js +59 -1
  170. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  171. package/daemon/dist/domain/gateway/slack/state-store.d.ts +21 -0
  172. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  173. package/daemon/dist/domain/gateway/slack/state-store.js +28 -1
  174. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  175. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +2 -0
  176. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  177. package/daemon/dist/domain/gateway/slack/thread-routing.js +6 -1
  178. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  179. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +4 -0
  180. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  181. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +11 -0
  182. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  183. package/daemon/dist/domain/health-checkpoints.d.ts +57 -0
  184. package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -0
  185. package/daemon/dist/domain/health-checkpoints.js +198 -0
  186. package/daemon/dist/domain/health-checkpoints.js.map +1 -0
  187. package/daemon/dist/domain/health-context.d.ts +14 -0
  188. package/daemon/dist/domain/health-context.d.ts.map +1 -0
  189. package/daemon/dist/domain/health-context.js +93 -0
  190. package/daemon/dist/domain/health-context.js.map +1 -0
  191. package/daemon/dist/domain/health-detectors.d.ts +106 -0
  192. package/daemon/dist/domain/health-detectors.d.ts.map +1 -0
  193. package/daemon/dist/domain/health-detectors.js +392 -0
  194. package/daemon/dist/domain/health-detectors.js.map +1 -0
  195. package/daemon/dist/domain/health-diagnosis.d.ts +143 -0
  196. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -0
  197. package/daemon/dist/domain/health-diagnosis.js +249 -0
  198. package/daemon/dist/domain/health-diagnosis.js.map +1 -0
  199. package/daemon/dist/domain/health-passive-ceremony.d.ts +19 -0
  200. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -0
  201. package/daemon/dist/domain/health-passive-ceremony.js +234 -0
  202. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -0
  203. package/daemon/dist/domain/health-policy.d.ts +45 -0
  204. package/daemon/dist/domain/health-policy.d.ts.map +1 -0
  205. package/daemon/dist/domain/health-policy.js +89 -0
  206. package/daemon/dist/domain/health-policy.js.map +1 -0
  207. package/daemon/dist/domain/health-projection.d.ts +237 -0
  208. package/daemon/dist/domain/health-projection.d.ts.map +1 -0
  209. package/daemon/dist/domain/health-projection.js +312 -0
  210. package/daemon/dist/domain/health-projection.js.map +1 -0
  211. package/daemon/dist/domain/lifecycle-obligations.d.ts +18 -0
  212. package/daemon/dist/domain/lifecycle-obligations.d.ts.map +1 -0
  213. package/daemon/dist/domain/lifecycle-obligations.js +35 -0
  214. package/daemon/dist/domain/lifecycle-obligations.js.map +1 -0
  215. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  216. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +14 -11
  217. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  218. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  219. package/daemon/dist/domain/model-divergence/current-generation-record.js +6 -1
  220. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  221. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  222. package/daemon/dist/domain/node-inventory.js +1 -0
  223. package/daemon/dist/domain/node-inventory.js.map +1 -1
  224. package/daemon/dist/domain/policies/workflow-keepalive.d.ts +1 -0
  225. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  226. package/daemon/dist/domain/policies/workflow-keepalive.js +7 -4
  227. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  228. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +7 -0
  229. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  230. package/daemon/dist/domain/project-lifecycle-compiler.js +133 -8
  231. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  232. package/daemon/dist/domain/queue-repository.d.ts +14 -0
  233. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  234. package/daemon/dist/domain/queue-repository.js +60 -5
  235. package/daemon/dist/domain/queue-repository.js.map +1 -1
  236. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  237. package/daemon/dist/domain/queue-stuck-sweep.js +1 -0
  238. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  239. package/daemon/dist/domain/queue-transition-log.d.ts +5 -0
  240. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  241. package/daemon/dist/domain/queue-transition-log.js +28 -0
  242. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  243. package/daemon/dist/domain/queue-wait-backoff.d.ts +21 -0
  244. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -0
  245. package/daemon/dist/domain/queue-wait-backoff.js +96 -0
  246. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -0
  247. package/daemon/dist/domain/queue-wake-repository.d.ts +1 -0
  248. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  249. package/daemon/dist/domain/queue-wake-repository.js +8 -3
  250. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  251. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  252. package/daemon/dist/domain/seat-lifecycle-service.js +8 -1
  253. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  254. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  255. package/daemon/dist/domain/startup-orchestrator.js +27 -11
  256. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  257. package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  258. package/daemon/dist/domain/startup-proof.js +10 -9
  259. package/daemon/dist/domain/startup-proof.js.map +1 -1
  260. package/daemon/dist/domain/startup-resolver.d.ts +3 -1
  261. package/daemon/dist/domain/startup-resolver.d.ts.map +1 -1
  262. package/daemon/dist/domain/startup-resolver.js +18 -0
  263. package/daemon/dist/domain/startup-resolver.js.map +1 -1
  264. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  265. package/daemon/dist/domain/startup-validation.js +12 -1
  266. package/daemon/dist/domain/startup-validation.js.map +1 -1
  267. package/daemon/dist/domain/types.d.ts +16 -1
  268. package/daemon/dist/domain/types.d.ts.map +1 -1
  269. package/daemon/dist/domain/types.js.map +1 -1
  270. package/daemon/dist/domain/user-settings/settings-store.d.ts +9 -1
  271. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  272. package/daemon/dist/domain/user-settings/settings-store.js +86 -12
  273. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  274. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -0
  275. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  276. package/daemon/dist/domain/watchdog-jobs-repository.js +5 -0
  277. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  278. package/daemon/dist/domain/workflow-boot-sweep.d.ts +1 -0
  279. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  280. package/daemon/dist/domain/workflow-boot-sweep.js +3 -0
  281. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  282. package/daemon/dist/domain/workflow-exception-escalation.d.ts +4 -3
  283. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  284. package/daemon/dist/domain/workflow-exception-escalation.js +22 -21
  285. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  286. package/daemon/dist/domain/workflow-exception-router.d.ts +4 -3
  287. package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -1
  288. package/daemon/dist/domain/workflow-exception-router.js +7 -6
  289. package/daemon/dist/domain/workflow-exception-router.js.map +1 -1
  290. package/daemon/dist/domain/workflow-human-destination.d.ts +18 -0
  291. package/daemon/dist/domain/workflow-human-destination.d.ts.map +1 -0
  292. package/daemon/dist/domain/workflow-human-destination.js +40 -0
  293. package/daemon/dist/domain/workflow-human-destination.js.map +1 -0
  294. package/daemon/dist/domain/workflow-projector.d.ts +28 -3
  295. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  296. package/daemon/dist/domain/workflow-projector.js +134 -33
  297. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  298. package/daemon/dist/domain/workflow-role-context.d.ts +4 -6
  299. package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -1
  300. package/daemon/dist/domain/workflow-role-context.js +7 -14
  301. package/daemon/dist/domain/workflow-role-context.js.map +1 -1
  302. package/daemon/dist/domain/workflow-runtime.d.ts +12 -3
  303. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  304. package/daemon/dist/domain/workflow-runtime.js +124 -25
  305. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  306. package/daemon/dist/domain/workflow-spec-cache.d.ts +2 -2
  307. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  308. package/daemon/dist/domain/workflow-spec-cache.js +16 -0
  309. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  310. package/daemon/dist/domain/workflow-types.d.ts +8 -0
  311. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  312. package/daemon/dist/domain/workflow-types.js.map +1 -1
  313. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  314. package/daemon/dist/domain/workflow-validator.js +57 -24
  315. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  316. package/daemon/dist/gateway-human-registry-surface.d.ts +1 -0
  317. package/daemon/dist/gateway-human-registry-surface.d.ts.map +1 -1
  318. package/daemon/dist/gateway-human-registry-surface.js +1 -0
  319. package/daemon/dist/gateway-human-registry-surface.js.map +1 -1
  320. package/daemon/dist/gateway-slack-surface.d.ts +1 -0
  321. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  322. package/daemon/dist/gateway-slack-surface.js +1 -0
  323. package/daemon/dist/gateway-slack-surface.js.map +1 -1
  324. package/daemon/dist/health-detectors-surface.d.ts +2 -0
  325. package/daemon/dist/health-detectors-surface.d.ts.map +1 -0
  326. package/daemon/dist/health-detectors-surface.js +2 -0
  327. package/daemon/dist/health-detectors-surface.js.map +1 -0
  328. package/daemon/dist/health-projection-surface.d.ts +2 -0
  329. package/daemon/dist/health-projection-surface.d.ts.map +1 -0
  330. package/daemon/dist/health-projection-surface.js +2 -0
  331. package/daemon/dist/health-projection-surface.js.map +1 -0
  332. package/daemon/dist/index.d.ts.map +1 -1
  333. package/daemon/dist/index.js +38 -95
  334. package/daemon/dist/index.js.map +1 -1
  335. package/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  336. package/daemon/dist/lib/pane-envelope.js +4 -1
  337. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  338. package/daemon/dist/project-lifecycle-surface.d.ts +1 -1
  339. package/daemon/dist/project-lifecycle-surface.d.ts.map +1 -1
  340. package/daemon/dist/routes/gateway.d.ts +5 -1
  341. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  342. package/daemon/dist/routes/gateway.js +80 -22
  343. package/daemon/dist/routes/gateway.js.map +1 -1
  344. package/daemon/dist/routes/health-diagnosis.d.ts +3 -0
  345. package/daemon/dist/routes/health-diagnosis.d.ts.map +1 -0
  346. package/daemon/dist/routes/health-diagnosis.js +47 -0
  347. package/daemon/dist/routes/health-diagnosis.js.map +1 -0
  348. package/daemon/dist/routes/health.d.ts +3 -0
  349. package/daemon/dist/routes/health.d.ts.map +1 -0
  350. package/daemon/dist/routes/health.js +50 -0
  351. package/daemon/dist/routes/health.js.map +1 -0
  352. package/daemon/dist/routes/hosts.d.ts +2 -0
  353. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  354. package/daemon/dist/routes/hosts.js +12 -5
  355. package/daemon/dist/routes/hosts.js.map +1 -1
  356. package/daemon/dist/routes/queue.d.ts.map +1 -1
  357. package/daemon/dist/routes/queue.js +4 -3
  358. package/daemon/dist/routes/queue.js.map +1 -1
  359. package/daemon/dist/routes/require-sender-identity.d.ts +3 -1
  360. package/daemon/dist/routes/require-sender-identity.d.ts.map +1 -1
  361. package/daemon/dist/routes/require-sender-identity.js +11 -5
  362. package/daemon/dist/routes/require-sender-identity.js.map +1 -1
  363. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  364. package/daemon/dist/routes/sessions.js +95 -27
  365. package/daemon/dist/routes/sessions.js.map +1 -1
  366. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  367. package/daemon/dist/routes/workflow.js +6 -1
  368. package/daemon/dist/routes/workflow.js.map +1 -1
  369. package/daemon/dist/server.d.ts +8 -0
  370. package/daemon/dist/server.d.ts.map +1 -1
  371. package/daemon/dist/server.js +10 -1
  372. package/daemon/dist/server.js.map +1 -1
  373. package/daemon/dist/startup.d.ts.map +1 -1
  374. package/daemon/dist/startup.js +35 -4
  375. package/daemon/dist/startup.js.map +1 -1
  376. package/daemon/docs/reference/agent-spec.md +6 -0
  377. package/daemon/docs/reference/getting-started.md +134 -28
  378. package/daemon/docs/reference/health-diagnosis.md +331 -0
  379. package/daemon/docs/reference/mission-install.md +5 -0
  380. package/daemon/docs/reference/product-journey-sdlc.md +53 -15
  381. package/daemon/docs/reference/project-release-profile.yaml +82 -0
  382. package/daemon/docs/reference/release-boundary.md +5 -0
  383. package/daemon/docs/reference/rig-spec.md +43 -4
  384. package/daemon/docs/reference/sdlc-conventions.md +6 -4
  385. package/daemon/specs/agents/conveyor/planner/guidance/role.md +5 -3
  386. package/daemon/specs/agents/conveyor/planner/startup/context.md +13 -4
  387. package/daemon/specs/agents/design/product-designer/agent.yaml +4 -3
  388. package/daemon/specs/agents/design/product-designer/guidance/role.md +12 -10
  389. package/daemon/specs/agents/development/implementer/agent.yaml +1 -9
  390. package/daemon/specs/agents/development/implementer/guidance/role.md +21 -43
  391. package/daemon/specs/agents/development/qa/agent.yaml +2 -11
  392. package/daemon/specs/agents/development/qa/guidance/role.md +21 -73
  393. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -9
  394. package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +25 -72
  395. package/daemon/specs/agents/product-management/pm/guidance/role.md +19 -17
  396. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -9
  397. package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +20 -35
  398. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +21 -19
  399. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +32 -16
  400. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +84 -148
  401. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +48 -61
  402. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +40 -47
  403. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +16 -0
  404. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +12 -10
  405. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +15 -13
  406. package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +1 -1
  407. package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +2 -2
  408. package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +1 -1
  409. package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +3 -3
  410. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +40 -139
  411. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +80 -118
  412. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +34 -31
  413. package/daemon/specs/agents/shared/skills/process/agent-browser/LOCAL-INSIGHTS.md +24 -53
  414. package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +29 -15
  415. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +53 -48
  416. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +3 -3
  417. package/daemon/specs/rigs/launch/demo/CULTURE.md +21 -30
  418. package/daemon/specs/rigs/launch/first-project/CULTURE.md +39 -0
  419. package/daemon/specs/rigs/launch/first-project/rig.yaml +31 -0
  420. package/daemon/specs/rigs/launch/implementation-pair/rig.yaml +3 -3
  421. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +1 -1
  422. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +21 -7
  423. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +2 -2
  424. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +19 -11
  425. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +3 -2
  426. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +15 -8
  427. package/daemon/specs/rigs/launch/kernel/rig-claude-only.yaml +7 -0
  428. package/daemon/specs/rigs/launch/kernel/rig-codex-only.yaml +7 -0
  429. package/daemon/specs/rigs/launch/kernel/rig.yaml +9 -4
  430. package/daemon/specs/rigs/preview/product-team/CULTURE.md +26 -71
  431. package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +6 -4
  432. package/dist/build-info.js +3 -3
  433. package/dist/client.d.ts +6 -20
  434. package/dist/client.d.ts.map +1 -1
  435. package/dist/client.js +53 -32
  436. package/dist/client.js.map +1 -1
  437. package/dist/commands/config.d.ts.map +1 -1
  438. package/dist/commands/config.js +2 -0
  439. package/dist/commands/config.js.map +1 -1
  440. package/dist/commands/context.d.ts.map +1 -1
  441. package/dist/commands/context.js +15 -13
  442. package/dist/commands/context.js.map +1 -1
  443. package/dist/commands/daemon.d.ts.map +1 -1
  444. package/dist/commands/daemon.js +31 -27
  445. package/dist/commands/daemon.js.map +1 -1
  446. package/dist/commands/destroy.js +1 -1
  447. package/dist/commands/destroy.js.map +1 -1
  448. package/dist/commands/gateway.d.ts +17 -0
  449. package/dist/commands/gateway.d.ts.map +1 -1
  450. package/dist/commands/gateway.js +99 -13
  451. package/dist/commands/gateway.js.map +1 -1
  452. package/dist/commands/health.d.ts +12 -0
  453. package/dist/commands/health.d.ts.map +1 -0
  454. package/dist/commands/health.js +403 -0
  455. package/dist/commands/health.js.map +1 -0
  456. package/dist/commands/host.d.ts.map +1 -1
  457. package/dist/commands/host.js +2 -0
  458. package/dist/commands/host.js.map +1 -1
  459. package/dist/commands/launch.d.ts.map +1 -1
  460. package/dist/commands/launch.js +2 -2
  461. package/dist/commands/launch.js.map +1 -1
  462. package/dist/commands/queue.d.ts +18 -0
  463. package/dist/commands/queue.d.ts.map +1 -1
  464. package/dist/commands/queue.js +71 -5
  465. package/dist/commands/queue.js.map +1 -1
  466. package/dist/commands/send.d.ts.map +1 -1
  467. package/dist/commands/send.js +8 -9
  468. package/dist/commands/send.js.map +1 -1
  469. package/dist/commands/setup.d.ts.map +1 -1
  470. package/dist/commands/setup.js +10 -9
  471. package/dist/commands/setup.js.map +1 -1
  472. package/dist/commands/slack.d.ts.map +1 -1
  473. package/dist/commands/slack.js +39 -11
  474. package/dist/commands/slack.js.map +1 -1
  475. package/dist/commands/tui.d.ts +2 -0
  476. package/dist/commands/tui.d.ts.map +1 -1
  477. package/dist/commands/tui.js +26 -10
  478. package/dist/commands/tui.js.map +1 -1
  479. package/dist/commands/walk.d.ts.map +1 -1
  480. package/dist/commands/walk.js +24 -48
  481. package/dist/commands/walk.js.map +1 -1
  482. package/dist/commands/workflow-render.d.ts +19 -0
  483. package/dist/commands/workflow-render.d.ts.map +1 -1
  484. package/dist/commands/workflow-render.js +12 -1
  485. package/dist/commands/workflow-render.js.map +1 -1
  486. package/dist/commands/workflow.d.ts.map +1 -1
  487. package/dist/commands/workflow.js +12 -8
  488. package/dist/commands/workflow.js.map +1 -1
  489. package/dist/config-store.d.ts +10 -1
  490. package/dist/config-store.d.ts.map +1 -1
  491. package/dist/config-store.js +87 -14
  492. package/dist/config-store.js.map +1 -1
  493. package/dist/cross-host-executor.d.ts +1 -1
  494. package/dist/cross-host-executor.js +2 -2
  495. package/dist/cross-host-executor.js.map +1 -1
  496. package/dist/daemon-lifecycle.d.ts +12 -11
  497. package/dist/daemon-lifecycle.d.ts.map +1 -1
  498. package/dist/daemon-lifecycle.js +283 -146
  499. package/dist/daemon-lifecycle.js.map +1 -1
  500. package/dist/daemon-start-lock.d.ts +9 -0
  501. package/dist/daemon-start-lock.d.ts.map +1 -0
  502. package/dist/daemon-start-lock.js +47 -0
  503. package/dist/daemon-start-lock.js.map +1 -0
  504. package/dist/front-door.d.ts.map +1 -1
  505. package/dist/front-door.js +8 -1
  506. package/dist/front-door.js.map +1 -1
  507. package/dist/index.d.ts +4 -0
  508. package/dist/index.d.ts.map +1 -1
  509. package/dist/index.js +3 -1
  510. package/dist/index.js.map +1 -1
  511. package/dist/lib/file-transfer.js +1 -1
  512. package/dist/lib/file-transfer.js.map +1 -1
  513. package/dist/lib/scope/scope-fs.js +2 -2
  514. package/dist/lib/scope/scope-fs.js.map +1 -1
  515. package/dist/lib/walk-consumption.d.ts +6 -0
  516. package/dist/lib/walk-consumption.d.ts.map +1 -0
  517. package/dist/lib/walk-consumption.js +78 -0
  518. package/dist/lib/walk-consumption.js.map +1 -0
  519. package/dist/local-origin.d.ts +3 -0
  520. package/dist/local-origin.d.ts.map +1 -0
  521. package/dist/local-origin.js +37 -0
  522. package/dist/local-origin.js.map +1 -0
  523. package/dist/read-view.d.ts +17 -0
  524. package/dist/read-view.d.ts.map +1 -0
  525. package/dist/read-view.js +17 -0
  526. package/dist/read-view.js.map +1 -0
  527. package/dist/shared-tui.d.ts +12 -0
  528. package/dist/shared-tui.d.ts.map +1 -0
  529. package/dist/shared-tui.js +37 -0
  530. package/dist/shared-tui.js.map +1 -0
  531. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +7 -9
  532. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  533. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +7 -35
  534. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  535. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  536. package/node_modules/@openrig/daemon/dist/daemon-shutdown.d.ts +27 -0
  537. package/node_modules/@openrig/daemon/dist/daemon-shutdown.d.ts.map +1 -0
  538. package/node_modules/@openrig/daemon/dist/daemon-shutdown.js +84 -0
  539. package/node_modules/@openrig/daemon/dist/daemon-shutdown.js.map +1 -0
  540. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +1 -0
  541. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  542. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +32 -23
  543. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
  544. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts +2 -0
  545. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  546. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js +7 -28
  547. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js.map +1 -1
  548. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +1 -1
  549. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
  550. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -1
  551. package/node_modules/@openrig/daemon/dist/domain/execution-view.js +24 -3
  552. package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -1
  553. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts +39 -0
  554. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -0
  555. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.js +35 -0
  556. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.js.map +1 -0
  557. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts +61 -0
  558. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -0
  559. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js +149 -0
  560. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js.map +1 -0
  561. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +3 -0
  562. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  563. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +3 -0
  564. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  565. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.d.ts +37 -0
  566. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -0
  567. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.js +44 -0
  568. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.js.map +1 -0
  569. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +5 -8
  570. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  571. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +5 -8
  572. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  573. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +16 -1
  574. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  575. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +35 -12
  576. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  577. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -0
  578. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  579. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +1 -0
  580. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  581. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +18 -0
  582. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  583. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +63 -8
  584. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  585. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +13 -0
  586. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  587. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js +59 -1
  588. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  589. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts +21 -0
  590. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  591. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js +28 -1
  592. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  593. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts +2 -0
  594. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  595. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js +6 -1
  596. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  597. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +4 -0
  598. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  599. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js +11 -0
  600. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  601. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.d.ts +57 -0
  602. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.d.ts.map +1 -0
  603. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.js +198 -0
  604. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.js.map +1 -0
  605. package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts +14 -0
  606. package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts.map +1 -0
  607. package/node_modules/@openrig/daemon/dist/domain/health-context.js +93 -0
  608. package/node_modules/@openrig/daemon/dist/domain/health-context.js.map +1 -0
  609. package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts +106 -0
  610. package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts.map +1 -0
  611. package/node_modules/@openrig/daemon/dist/domain/health-detectors.js +392 -0
  612. package/node_modules/@openrig/daemon/dist/domain/health-detectors.js.map +1 -0
  613. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts +143 -0
  614. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts.map +1 -0
  615. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js +249 -0
  616. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js.map +1 -0
  617. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts +19 -0
  618. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -0
  619. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js +234 -0
  620. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js.map +1 -0
  621. package/node_modules/@openrig/daemon/dist/domain/health-policy.d.ts +45 -0
  622. package/node_modules/@openrig/daemon/dist/domain/health-policy.d.ts.map +1 -0
  623. package/node_modules/@openrig/daemon/dist/domain/health-policy.js +89 -0
  624. package/node_modules/@openrig/daemon/dist/domain/health-policy.js.map +1 -0
  625. package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts +237 -0
  626. package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts.map +1 -0
  627. package/node_modules/@openrig/daemon/dist/domain/health-projection.js +312 -0
  628. package/node_modules/@openrig/daemon/dist/domain/health-projection.js.map +1 -0
  629. package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.d.ts +18 -0
  630. package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.d.ts.map +1 -0
  631. package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.js +35 -0
  632. package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.js.map +1 -0
  633. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  634. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.js +14 -11
  635. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  636. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  637. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +6 -1
  638. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  639. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  640. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +1 -0
  641. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
  642. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts +1 -0
  643. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  644. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js +7 -4
  645. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  646. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts +7 -0
  647. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  648. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js +133 -8
  649. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  650. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +14 -0
  651. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  652. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +60 -5
  653. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  654. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  655. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +1 -0
  656. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  657. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +5 -0
  658. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  659. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +28 -0
  660. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
  661. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts +21 -0
  662. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -0
  663. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js +96 -0
  664. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js.map +1 -0
  665. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +1 -0
  666. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  667. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +8 -3
  668. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  669. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  670. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +8 -1
  671. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  672. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  673. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js +27 -11
  674. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  675. package/node_modules/@openrig/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  676. package/node_modules/@openrig/daemon/dist/domain/startup-proof.js +10 -9
  677. package/node_modules/@openrig/daemon/dist/domain/startup-proof.js.map +1 -1
  678. package/node_modules/@openrig/daemon/dist/domain/startup-resolver.d.ts +3 -1
  679. package/node_modules/@openrig/daemon/dist/domain/startup-resolver.d.ts.map +1 -1
  680. package/node_modules/@openrig/daemon/dist/domain/startup-resolver.js +18 -0
  681. package/node_modules/@openrig/daemon/dist/domain/startup-resolver.js.map +1 -1
  682. package/node_modules/@openrig/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  683. package/node_modules/@openrig/daemon/dist/domain/startup-validation.js +12 -1
  684. package/node_modules/@openrig/daemon/dist/domain/startup-validation.js.map +1 -1
  685. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +16 -1
  686. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  687. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  688. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +9 -1
  689. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  690. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +86 -12
  691. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  692. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -0
  693. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  694. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +5 -0
  695. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  696. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts +1 -0
  697. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  698. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js +3 -0
  699. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  700. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.d.ts +4 -3
  701. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  702. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js +22 -21
  703. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  704. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts +4 -3
  705. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -1
  706. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js +7 -6
  707. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js.map +1 -1
  708. package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.d.ts +18 -0
  709. package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.d.ts.map +1 -0
  710. package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.js +40 -0
  711. package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.js.map +1 -0
  712. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts +28 -3
  713. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  714. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js +134 -33
  715. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js.map +1 -1
  716. package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.d.ts +4 -6
  717. package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.d.ts.map +1 -1
  718. package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.js +7 -14
  719. package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.js.map +1 -1
  720. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts +12 -3
  721. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  722. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js +124 -25
  723. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js.map +1 -1
  724. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts +2 -2
  725. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  726. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js +16 -0
  727. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  728. package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts +8 -0
  729. package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  730. package/node_modules/@openrig/daemon/dist/domain/workflow-types.js.map +1 -1
  731. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  732. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js +57 -24
  733. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js.map +1 -1
  734. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.d.ts +1 -0
  735. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.d.ts.map +1 -1
  736. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.js +1 -0
  737. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.js.map +1 -1
  738. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts +1 -0
  739. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  740. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js +1 -0
  741. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js.map +1 -1
  742. package/node_modules/@openrig/daemon/dist/health-detectors-surface.d.ts +2 -0
  743. package/node_modules/@openrig/daemon/dist/health-detectors-surface.d.ts.map +1 -0
  744. package/node_modules/@openrig/daemon/dist/health-detectors-surface.js +2 -0
  745. package/node_modules/@openrig/daemon/dist/health-detectors-surface.js.map +1 -0
  746. package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts +2 -0
  747. package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts.map +1 -0
  748. package/node_modules/@openrig/daemon/dist/health-projection-surface.js +2 -0
  749. package/node_modules/@openrig/daemon/dist/health-projection-surface.js.map +1 -0
  750. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  751. package/node_modules/@openrig/daemon/dist/index.js +38 -95
  752. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  753. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  754. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js +4 -1
  755. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js.map +1 -1
  756. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts +1 -1
  757. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts.map +1 -1
  758. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts +5 -1
  759. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts.map +1 -1
  760. package/node_modules/@openrig/daemon/dist/routes/gateway.js +80 -22
  761. package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +1 -1
  762. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.d.ts +3 -0
  763. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.d.ts.map +1 -0
  764. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.js +47 -0
  765. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.js.map +1 -0
  766. package/node_modules/@openrig/daemon/dist/routes/health.d.ts +3 -0
  767. package/node_modules/@openrig/daemon/dist/routes/health.d.ts.map +1 -0
  768. package/node_modules/@openrig/daemon/dist/routes/health.js +50 -0
  769. package/node_modules/@openrig/daemon/dist/routes/health.js.map +1 -0
  770. package/node_modules/@openrig/daemon/dist/routes/hosts.d.ts +2 -0
  771. package/node_modules/@openrig/daemon/dist/routes/hosts.d.ts.map +1 -1
  772. package/node_modules/@openrig/daemon/dist/routes/hosts.js +12 -5
  773. package/node_modules/@openrig/daemon/dist/routes/hosts.js.map +1 -1
  774. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  775. package/node_modules/@openrig/daemon/dist/routes/queue.js +4 -3
  776. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  777. package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.d.ts +3 -1
  778. package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.d.ts.map +1 -1
  779. package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.js +11 -5
  780. package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.js.map +1 -1
  781. package/node_modules/@openrig/daemon/dist/routes/sessions.d.ts.map +1 -1
  782. package/node_modules/@openrig/daemon/dist/routes/sessions.js +95 -27
  783. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  784. package/node_modules/@openrig/daemon/dist/routes/workflow.d.ts.map +1 -1
  785. package/node_modules/@openrig/daemon/dist/routes/workflow.js +6 -1
  786. package/node_modules/@openrig/daemon/dist/routes/workflow.js.map +1 -1
  787. package/node_modules/@openrig/daemon/dist/server.d.ts +8 -0
  788. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  789. package/node_modules/@openrig/daemon/dist/server.js +10 -1
  790. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  791. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  792. package/node_modules/@openrig/daemon/dist/startup.js +35 -4
  793. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  794. package/node_modules/@openrig/daemon/package.json +13 -1
  795. package/package.json +1 -1
  796. package/tui/dist/commands/completion.d.ts +8 -0
  797. package/tui/dist/commands/completion.d.ts.map +1 -0
  798. package/tui/dist/commands/completion.js +37 -0
  799. package/tui/dist/commands/completion.js.map +1 -0
  800. package/tui/dist/commands/registry.d.ts +7 -1
  801. package/tui/dist/commands/registry.d.ts.map +1 -1
  802. package/tui/dist/commands/registry.js +48 -1
  803. package/tui/dist/commands/registry.js.map +1 -1
  804. package/tui/dist/connections/connections-model.d.ts +72 -0
  805. package/tui/dist/connections/connections-model.d.ts.map +1 -0
  806. package/tui/dist/connections/connections-model.js +64 -0
  807. package/tui/dist/connections/connections-model.js.map +1 -0
  808. package/tui/dist/daemon-client.d.ts +3 -0
  809. package/tui/dist/daemon-client.d.ts.map +1 -1
  810. package/tui/dist/daemon-client.js +5 -0
  811. package/tui/dist/daemon-client.js.map +1 -1
  812. package/tui/dist/detail.d.ts +3 -0
  813. package/tui/dist/detail.d.ts.map +1 -1
  814. package/tui/dist/detail.js +23 -0
  815. package/tui/dist/detail.js.map +1 -1
  816. package/tui/dist/execution/execution-model.d.ts +1 -1
  817. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  818. package/tui/dist/execution/execution-model.js +46 -170
  819. package/tui/dist/execution/execution-model.js.map +1 -1
  820. package/tui/dist/execution/workflow-model.d.ts +6 -0
  821. package/tui/dist/execution/workflow-model.d.ts.map +1 -0
  822. package/tui/dist/execution/workflow-model.js +219 -0
  823. package/tui/dist/execution/workflow-model.js.map +1 -0
  824. package/tui/dist/grammar.d.ts.map +1 -1
  825. package/tui/dist/grammar.js +1 -2
  826. package/tui/dist/grammar.js.map +1 -1
  827. package/tui/dist/health/health-model.d.ts +25 -0
  828. package/tui/dist/health/health-model.d.ts.map +1 -0
  829. package/tui/dist/health/health-model.js +323 -0
  830. package/tui/dist/health/health-model.js.map +1 -0
  831. package/tui/dist/hydrate.d.ts.map +1 -1
  832. package/tui/dist/hydrate.js +57 -9
  833. package/tui/dist/hydrate.js.map +1 -1
  834. package/tui/dist/input.d.ts +2 -0
  835. package/tui/dist/input.d.ts.map +1 -1
  836. package/tui/dist/input.js +30 -6
  837. package/tui/dist/input.js.map +1 -1
  838. package/tui/dist/main.js +47 -10
  839. package/tui/dist/main.js.map +1 -1
  840. package/tui/dist/render.d.ts +4 -0
  841. package/tui/dist/render.d.ts.map +1 -1
  842. package/tui/dist/render.js +150 -75
  843. package/tui/dist/render.js.map +1 -1
  844. package/tui/dist/sections.d.ts.map +1 -1
  845. package/tui/dist/sections.js +1 -0
  846. package/tui/dist/sections.js.map +1 -1
  847. package/tui/dist/socket-server.d.ts +4 -0
  848. package/tui/dist/socket-server.d.ts.map +1 -1
  849. package/tui/dist/socket-server.js +4 -0
  850. package/tui/dist/socket-server.js.map +1 -1
  851. package/tui/dist/state.d.ts +3 -1
  852. package/tui/dist/state.d.ts.map +1 -1
  853. package/tui/dist/state.js +58 -14
  854. package/tui/dist/state.js.map +1 -1
  855. package/tui/dist/stylize.js +3 -3
  856. package/tui/dist/stylize.js.map +1 -1
  857. package/tui/dist/time.d.ts +9 -0
  858. package/tui/dist/time.d.ts.map +1 -0
  859. package/tui/dist/time.js +42 -0
  860. package/tui/dist/time.js.map +1 -0
  861. package/tui/dist/types.d.ts +126 -2
  862. package/tui/dist/types.d.ts.map +1 -1
@@ -61,6 +61,17 @@ export class ThreadSeatMap {
61
61
  .get(human, seat);
62
62
  return row ? project(row) : null;
63
63
  }
64
+ /** Outbound reply correlation is qitem-scoped. Reuse a thread only for another
65
+ * notification episode of the SAME durable conversation; a different human
66
+ * gate gets a fresh root so its reply cannot resolve an older/newer qitem. */
67
+ resolveOpenForConversation(human, seat, conversationId) {
68
+ const row = this.db
69
+ .prepare(`SELECT * FROM thread_seat_map
70
+ WHERE human = ? AND seat = ? AND conversation_id = ? AND state = 'open'
71
+ ORDER BY opened_at DESC LIMIT 1`)
72
+ .get(human, seat, conversationId);
73
+ return row ? project(row) : null;
74
+ }
64
75
  close(threadTs) {
65
76
  this.db
66
77
  .prepare(`UPDATE thread_seat_map SET state = 'closed', closed_at = ? WHERE thread_ts = ?`)
@@ -1 +1 @@
1
- {"version":3,"file":"thread-seat-map.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/thread-seat-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-seat-map.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/thread-seat-map.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,4FAA4F;AAC5F,+FAA+F;AAC/F,+FAA+F;AAC/F,sCAAsC;AACtC,EAAE;AACF,gGAAgG;AAChG,4FAA4F;AAC5F,+FAA+F;AAC/F,kEAAkE;AAelE,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CAAC;AAExD,oFAAoF;AACpF,MAAM,UAAU,iBAAiB,CAAC,CAAgH;IAChJ,OAAO,GAAG,yBAAyB,cAAc,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,cAAc,EAAE,CAAC;AAChL,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,yBAAyB,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAClF,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAC3F,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,OAAO,aAAa;IAEL;IACA;IAFnB,YACmB,EAAqB,EACrB,MAAkB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;QADlC,OAAE,GAAF,EAAE,CAAmB;QACrB,QAAG,GAAH,GAAG,CAA+B;IAClD,CAAC;IAEJ,0FAA0F;IAC1F,IAAI,CAAC,CAA6F;QAChG,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;2CAEmC,CACpC;aACA,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED;mGAC+F;IAC/F,eAAe,CAAC,QAAgB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAEhF,CAAC;QACd,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,oFAAoF;IACpF,kBAAkB,CAAC,KAAa,EAAE,IAAY;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,+GAA+G,CAAC;aACxH,GAAG,CAAC,KAAK,EAAE,IAAI,CAAwC,CAAC;QAC3D,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,CAAC;IAED;;kFAE8E;IAC9E,0BAA0B,CAAC,KAAa,EAAE,IAAY,EAAE,cAAsB;QAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;0CAEkC,CACnC;aACA,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAwC,CAAC;QAC3E,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAgB;QACpB,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,gFAAgF,CAAC;aACzF,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;iGAC6F;IAC7F,iBAAiB,CAAC,MAAgB;QAChC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAC,OAAO,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpG,IAAI,MAAM,EAAE,CAAC;gBAAC,OAAO,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;YACxH,QAAQ,EAAE,CAAC;QACb,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;CACF;AAED,SAAS,OAAO,CAAC,GAA4B;IAC3C,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;QAC3C,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;QACjD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/B,QAAQ,EAAG,GAAG,CAAC,SAA2B,IAAI,IAAI;KACnD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { QueueRepository } from "./queue-repository.js";
2
+ import { type HealthPolicyStore } from "./health-policy.js";
3
+ import { type HealthScope } from "./health-projection.js";
4
+ import type { HealthDetectorObservation, HealthObservationSource } from "./health-detectors.js";
5
+ /** Authored outcome-boundary census, not a per-edit event feed. Queue references
6
+ * are verified locally; product/authority meaning remains attributed testimony. */
7
+ export interface HealthCheckpoint {
8
+ schema: "openrig.health-checkpoint/v0alpha1";
9
+ lineageQitemId: string;
10
+ includeHandoffs?: boolean;
11
+ scope: HealthScope;
12
+ startedAt: string;
13
+ observedAt: string;
14
+ transitionIds: number[];
15
+ productOutcomes: Array<{
16
+ id: string;
17
+ observedAt: string;
18
+ evidenceRef: string;
19
+ }>;
20
+ productCensusRef: string;
21
+ boundedAuthority: {
22
+ applies: boolean | null;
23
+ evidenceRef: string;
24
+ };
25
+ sdlc?: {
26
+ expectation: string;
27
+ evidenceRef: string;
28
+ };
29
+ authorityPaths: {
30
+ project: string[];
31
+ mission: string[];
32
+ slice: string[];
33
+ };
34
+ }
35
+ interface StoredCheckpoint {
36
+ actor: string;
37
+ checkpoint: HealthCheckpoint;
38
+ episodeStartedAt: string;
39
+ active: boolean;
40
+ qualifying: HealthCheckpoint | null;
41
+ }
42
+ export declare class HealthCheckpointSource implements HealthObservationSource {
43
+ private readonly queue;
44
+ private readonly policy;
45
+ private readonly now;
46
+ private readonly workspace;
47
+ private readonly dir;
48
+ constructor(home: string, queue: QueueRepository, policy: HealthPolicyStore, now?: () => string, workspace?: string);
49
+ private validate;
50
+ private transitions;
51
+ private file;
52
+ submit(value: unknown, actor: string): StoredCheckpoint;
53
+ entries(): StoredCheckpoint[];
54
+ read(): HealthDetectorObservation[];
55
+ }
56
+ export {};
57
+ //# sourceMappingURL=health-checkpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-checkpoints.d.ts","sourceRoot":"","sources":["../../src/domain/health-checkpoints.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAiH,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACzK,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhG;mFACmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,oCAAoC,CAAC;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChF,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE;QAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC3E;AACD,UAAU,gBAAgB;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,gBAAgB,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAAE;AAS3J,qBAAa,sBAAuB,YAAW,uBAAuB;IAE1C,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAmB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAqB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAmC,OAAO,CAAC,QAAQ,CAAC,SAAS;IADhM,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBACjB,IAAI,EAAE,MAAM,EAAmB,KAAK,EAAE,eAAe,EAAmB,MAAM,EAAE,iBAAiB,EAAmB,GAAG,eAAiC,EAAmB,SAAS,SAA0B;IAG1N,OAAO,CAAC,QAAQ;IAwChB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,IAAI;IACZ,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAuBpC,OAAO,IAAI,gBAAgB,EAAE;IAc7B,IAAI,IAAI,yBAAyB,EAAE;CA4CpC"}
@@ -0,0 +1,198 @@
1
+ import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, writeFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { randomUUID } from "node:crypto";
4
+ import { readHealthArtifact } from "./health-context.js";
5
+ import { healthHash, object } from "./health-policy.js";
6
+ import { adaptQueueTransitionEvidence, adaptLifecycleReceiptEvidence, boundHealthEvidence, deriveHealthSourceFreshness } from "./health-projection.js";
7
+ function text(value) { if (typeof value !== "string" || !value.trim() || value.length > 4096)
8
+ throw new Error("Expected a nonempty bounded string"); }
9
+ function timestamp(value) { text(value); const time = Date.parse(value); if (!Number.isFinite(time))
10
+ throw new Error("Invalid checkpoint timestamp"); return time; }
11
+ function scope(value) {
12
+ const type = value?.type;
13
+ const fields = { instance: ["instanceId"], rig: ["rigId"], seat: ["rigId", "seatId"], mission: ["projectId", "missionId"], slice: ["projectId", "missionId", "sliceId"] }[type];
14
+ if (!fields)
15
+ throw new Error("Unknown health scope");
16
+ const s = object(value, ["type", ...fields]);
17
+ fields.forEach((f) => text(s[f]));
18
+ }
19
+ export class HealthCheckpointSource {
20
+ queue;
21
+ policy;
22
+ now;
23
+ workspace;
24
+ dir;
25
+ constructor(home, queue, policy, now = () => new Date().toISOString(), workspace = join(home, "workspace")) {
26
+ this.queue = queue;
27
+ this.policy = policy;
28
+ this.now = now;
29
+ this.workspace = workspace;
30
+ this.dir = join(home, "health", "checkpoints");
31
+ }
32
+ validate(value, allowDerive = false) {
33
+ const c = object(value, ["schema", "lineageQitemId", "scope", "startedAt", "observedAt", "transitionIds", "productOutcomes", "productCensusRef", "boundedAuthority", "authorityPaths", ...["includeHandoffs", "sdlc"].filter((key) => Object.hasOwn(value ?? {}, key))]);
34
+ if (c.schema !== "openrig.health-checkpoint/v0alpha1")
35
+ throw new Error("Unsupported checkpoint schema");
36
+ text(c.lineageQitemId);
37
+ text(c.productCensusRef);
38
+ scope(c.scope);
39
+ const start = timestamp(c.startedAt);
40
+ const end = timestamp(c.observedAt);
41
+ if (end < start || end > Date.parse(this.now()))
42
+ throw new Error("Checkpoint window is reversed or future");
43
+ // Resolve once on explicit submission, then retain exact IDs in the audit.
44
+ // Reads and stored checkpoints never silently acquire later traffic.
45
+ if (allowDerive && c.transitionIds === "derive")
46
+ c.transitionIds = this.transitions(c).map((t) => t.transitionId);
47
+ if (!Array.isArray(c.transitionIds) || c.transitionIds.length > 10000 || c.transitionIds.some((x) => !Number.isInteger(x) || x < 1) || new Set(c.transitionIds).size !== c.transitionIds.length)
48
+ throw new Error("Invalid, duplicate, or excessive transition IDs");
49
+ if (!Array.isArray(c.productOutcomes) || c.productOutcomes.length > 1000)
50
+ throw new Error("Invalid product outcomes");
51
+ const ids = new Set();
52
+ for (const outcome of c.productOutcomes) {
53
+ const o = object(outcome, ["id", "observedAt", "evidenceRef"]);
54
+ text(o.id);
55
+ text(o.evidenceRef);
56
+ const at = timestamp(o.observedAt);
57
+ if (at < start || at > end || ids.has(o.id))
58
+ throw new Error("Product outcome is duplicate or outside the lineage window");
59
+ ids.add(o.id);
60
+ }
61
+ const authority = object(c.boundedAuthority, ["applies", "evidenceRef"]);
62
+ text(authority.evidenceRef);
63
+ if (authority.applies !== null && typeof authority.applies !== "boolean")
64
+ throw new Error("Authority must be true, false or unknown");
65
+ if (c.includeHandoffs !== undefined && typeof c.includeHandoffs !== "boolean")
66
+ throw new Error("includeHandoffs must be boolean");
67
+ if (c.sdlc !== undefined) {
68
+ const sdlc = object(c.sdlc, ["expectation", "evidenceRef"]);
69
+ text(sdlc.expectation);
70
+ text(sdlc.evidenceRef);
71
+ }
72
+ const paths = object(c.authorityPaths, ["project", "mission", "slice"]);
73
+ for (const list of Object.values(paths)) {
74
+ if (!Array.isArray(list) || list.length > 10)
75
+ throw new Error("Invalid authority path list");
76
+ list.forEach(text);
77
+ }
78
+ const row = this.queue.getById(c.lineageQitemId);
79
+ if (!row || row.tags?.some((t) => t === "health-diagnosis" || t === "health-human"))
80
+ throw new Error("Checkpoint must name existing product work, not health traffic");
81
+ const transitions = this.transitions(value);
82
+ const members = [...new Set(transitions.map((t) => t.qitemId))].map((id) => this.queue.getById(id));
83
+ if (members.some((member) => member.tags?.some((tag) => tag === "health-diagnosis" || tag === "health-human")))
84
+ throw new Error("Checkpoint excludes health traffic");
85
+ if (c.includeHandoffs) {
86
+ const expected = c.scope.type === "slice" ? { "mission:": c.scope.missionId, "slice:": c.scope.sliceId }
87
+ : c.scope.type === "mission" ? { "mission:": c.scope.missionId } : {};
88
+ if (members.some((member) => member.tags?.some((tag) => Object.entries(expected).some(([prefix, id]) => tag.startsWith(prefix) && tag !== `${prefix}${id}`))))
89
+ throw new Error("Handoff lineage crosses the declared checkpoint scope");
90
+ }
91
+ const actual = new Set(transitions.map((t) => t.transitionId));
92
+ if (actual.size !== c.transitionIds.length || c.transitionIds.some((id) => !actual.has(id)))
93
+ throw new Error("Checkpoint transition census does not match this exact lineage/window");
94
+ return structuredClone(c);
95
+ }
96
+ transitions(c) {
97
+ const log = this.queue.transitionLog;
98
+ return c.includeHandoffs ? log.listForHandoffWindow(c.lineageQitemId, c.startedAt, c.observedAt, 10001)
99
+ : log.listForQitemWindow(c.lineageQitemId, c.startedAt, c.observedAt, 10001);
100
+ }
101
+ file(lineage) { return join(this.dir, `${healthHash(lineage)}.json`); }
102
+ submit(value, actor) {
103
+ const checkpoint = this.validate(structuredClone(value), true);
104
+ text(actor);
105
+ const file = this.file(checkpoint.lineageQitemId);
106
+ if (!existsSync(file) && existsSync(this.dir) && readdirSync(this.dir).filter((name) => /^[a-f0-9]{64}\.json$/.test(name)).length >= 200)
107
+ throw new Error("health_checkpoint_source_limit");
108
+ const previous = existsSync(file) ? JSON.parse(readFileSync(file, "utf8")) : null;
109
+ if (previous && healthHash(previous.checkpoint) === healthHash(checkpoint))
110
+ return previous;
111
+ if (previous && Date.parse(checkpoint.observedAt) <= Date.parse(previous.checkpoint.observedAt))
112
+ throw new Error("Checkpoint must advance observation time");
113
+ const p = this.policy.read().policy.thresholds;
114
+ const active = checkpoint.boundedAuthority.applies !== true && checkpoint.transitionIds.length >= p.ceremonyTransitions
115
+ && checkpoint.transitionIds.length / Math.max(checkpoint.productOutcomes.length, 1) >= p.ceremonyRatio;
116
+ const stored = { actor, checkpoint, active,
117
+ episodeStartedAt: previous?.active ? previous.episodeStartedAt : checkpoint.startedAt,
118
+ qualifying: active ? checkpoint : previous?.active ? previous.qualifying : null };
119
+ // Recurrence starts at the first new qualifying checkpoint, not the previous episode's window.
120
+ if (active && previous && !previous.active)
121
+ stored.episodeStartedAt = checkpoint.observedAt;
122
+ if (Buffer.byteLength(JSON.stringify(stored)) > 1048576)
123
+ throw new Error("health_checkpoint_too_large");
124
+ mkdirSync(join(this.dir, "history"), { recursive: true });
125
+ const id = randomUUID();
126
+ writeFileSync(join(this.dir, "history", `${id}.json`), JSON.stringify({ previous, current: stored }, null, 2), { flag: "wx" });
127
+ const tmp = join(this.dir, `${id}.tmp`);
128
+ writeFileSync(tmp, JSON.stringify(stored, null, 2));
129
+ renameSync(tmp, file);
130
+ return stored;
131
+ }
132
+ entries() {
133
+ if (!existsSync(this.dir))
134
+ return [];
135
+ const names = readdirSync(this.dir).filter((name) => /^[a-f0-9]{64}\.json$/.test(name));
136
+ if (names.length > 200)
137
+ throw new Error("health_checkpoint_source_limit");
138
+ return names.map((name) => {
139
+ const bytes = readFileSync(join(this.dir, name), "utf8");
140
+ if (Buffer.byteLength(bytes) > 1048576)
141
+ throw new Error("health_checkpoint_too_large");
142
+ const stored = JSON.parse(bytes);
143
+ this.validate(stored.checkpoint);
144
+ text(stored.actor);
145
+ timestamp(stored.episodeStartedAt);
146
+ if (stored.qualifying)
147
+ this.validate(stored.qualifying);
148
+ return stored;
149
+ });
150
+ }
151
+ read() {
152
+ const policy = this.policy.read().policy;
153
+ const now = this.now();
154
+ return this.entries().flatMap((stored) => {
155
+ const current = stored.checkpoint;
156
+ const thresholds = policy.thresholds;
157
+ const active = current.boundedAuthority.applies !== true && current.transitionIds.length >= thresholds.ceremonyTransitions
158
+ && current.transitionIds.length / Math.max(current.productOutcomes.length, 1) >= thresholds.ceremonyRatio;
159
+ // A missing counter-signal is unknown, even when the authored value would
160
+ // suppress the rule. Keep a potential observation until refs are resolved.
161
+ const c = active ? current : stored.qualifying ?? (current.transitionIds.length >= thresholds.ceremonyTransitions ? current : null);
162
+ if (!c)
163
+ return [];
164
+ const ids = new Set(c.transitionIds);
165
+ const transitions = this.transitions(c).filter((t) => ids.has(t.transitionId));
166
+ const evidence = transitions.map(adaptQueueTransitionEvidence);
167
+ const refs = [...c.productOutcomes.map((p) => ({ id: p.evidenceRef, at: p.observedAt, outcome: p.id })),
168
+ { id: current.productCensusRef, at: current.observedAt, outcome: `product census by ${stored.actor}: ${current.productOutcomes.length} outcomes` },
169
+ { id: current.boundedAuthority.evidenceRef, at: current.observedAt, outcome: `bounded authority: ${String(current.boundedAuthority.applies)}` },
170
+ ...(current.sdlc ? [{ id: current.sdlc.evidenceRef, at: current.observedAt, outcome: `selected SDLC expectation: ${current.sdlc.expectation}` }] : [])];
171
+ const resolved = new Map([...new Set([...c.productOutcomes, ...current.productOutcomes].map((p) => p.evidenceRef)
172
+ .concat(c.productCensusRef, c.boundedAuthority.evidenceRef, current.productCensusRef, current.boundedAuthority.evidenceRef, current.sdlc?.evidenceRef ?? ""))]
173
+ .map((ref) => [ref, readHealthArtifact(this.workspace, ref)]));
174
+ const missing = [...resolved].filter(([, result]) => result.state !== "available").map(([ref]) => ref);
175
+ const outcomeCount = resolved.get(c.productCensusRef)?.state === "available"
176
+ && c.productOutcomes.every((p) => resolved.get(p.evidenceRef)?.state === "available") ? c.productOutcomes.length : null;
177
+ const receipts = refs.flatMap((r, i) => {
178
+ const result = resolved.get(r.id);
179
+ return result.state === "available" ? [adaptLifecycleReceiptEvidence({ receiptId: r.id, operation: "health-outcome-checkpoint", outcome: `${r.outcome}; sha256:${result.sha256}`, observedAt: r.at, sourceOrder: evidence.length + i })] : [];
180
+ });
181
+ const available = transitions.length === ids.size && current.boundedAuthority.applies !== null && !!current.sdlc && missing.length === 0;
182
+ const gateCounts = new Map();
183
+ const rows = new Map([...new Set(transitions.map((t) => t.qitemId))].map((id) => [id, this.queue.getById(id)]));
184
+ for (const t of transitions) {
185
+ const tags = rows.get(t.qitemId)?.tags?.filter((tag) => tag.startsWith("gate:")).sort().join("+") || "untagged";
186
+ gateCounts.set(tags, (gateCounts.get(tags) ?? 0) + 1);
187
+ }
188
+ const breakdown = [...gateCounts].sort(([a], [b]) => a.localeCompare(b, "en-US")).map(([tag, count]) => `${tag}=${count}`).join(", ");
189
+ return [{ kind: "coordination-lineage", scope: current.scope, episodeStartedAt: stored.episodeStartedAt,
190
+ lastObservedAt: current.observedAt, conditionCleared: !active && stored.qualifying !== null, confidence: "medium", sourceDescription: `Outcome census attributed to ${stored.actor}; latest authored census: ${current.transitionIds.length} transitions, ${current.productOutcomes.length} listed product outcomes, bounded authority ${String(current.boundedAuthority.applies)}. Observed census: ${rows.size} qitems; transition breakdown by literal gate tags: ${breakdown}. Selected SDLC expectation: ${current.sdlc?.expectation ?? "SDLC expectation unavailable"}. Product, authority and expectation meaning are authored evidence, not inferred by the daemon. A known ratio is a signal to inspect proportionality against that expectation, not a verdict that a review was unnecessary. Unavailable references: ${missing.length ? missing.map((ref) => ref || "SDLC expectation unavailable").join(", ") : "none"}.`, lineageId: c.lineageQitemId,
191
+ coordinationTransitions: c.transitionIds.length, productStateChanges: outcomeCount,
192
+ boundedAuthority: available && c.boundedAuthority.applies === true,
193
+ reviewReturns: 0, candidateChanges: 0, newRiskClasses: 0,
194
+ source: boundHealthEvidence([...evidence, ...receipts], { source: "mixed", startedAt: new Date(Math.max(Date.parse(c.startedAt), Date.parse(now) - policy.observationWindowSeconds * 1000)).toISOString(), endedAt: now, limit: 11003, retentionSeconds: policy.observationWindowSeconds }, deriveHealthSourceFreshness({ evaluatedAt: now, newestSourceAt: current.observedAt, maxAgeSeconds: policy.freshnessSeconds, available })) }];
195
+ });
196
+ }
197
+ }
198
+ //# sourceMappingURL=health-checkpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-checkpoints.js","sourceRoot":"","sources":["../../src/domain/health-checkpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,EAA0B,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,2BAA2B,EAAoB,MAAM,wBAAwB,CAAC;AAoBzK,SAAS,IAAI,CAAC,KAAc,IAA6B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;IAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC;AACxL,SAAS,SAAS,CAAC,KAAc,IAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;AACrL,SAAS,KAAK,CAAC,KAAc;IAC3B,MAAM,IAAI,GAAI,KAAqB,EAAE,IAAI,CAAC;IAC1C,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAChL,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AACD,MAAM,OAAO,sBAAsB;IAEU;IAAyC;IAA4C;IAAuD;IADtK,GAAG,CAAS;IAC7B,YAAY,IAAY,EAAmB,KAAsB,EAAmB,MAAyB,EAAmB,MAAM,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAmB,YAAY,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QAA/K,UAAK,GAAL,KAAK,CAAiB;QAAmB,WAAM,GAAN,MAAM,CAAmB;QAAmB,QAAG,GAAH,GAAG,CAAiC;QAAmB,cAAS,GAAT,SAAS,CAA0B;QACxN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACjD,CAAC;IACO,QAAQ,CAAC,KAAc,EAAE,WAAW,GAAG,KAAK;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzQ,IAAI,CAAC,CAAC,MAAM,KAAK,oCAAoC;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACxG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAAC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC1E,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC5G,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,WAAW,IAAI,CAAC,CAAC,aAAa,KAAK,QAAQ;YAAE,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACjJ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACpQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACtH,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAChG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChL,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;QAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtG,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACtI,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAClI,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9G,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnH,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,IAAI,CAAC,KAAK,cAAc,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACvK,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAyB,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC,CAAC;QACrG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,kBAAkB,IAAI,GAAG,KAAK,cAAc,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACtK,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE;gBACtG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC1O,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACtL,OAAO,eAAe,CAAC,CAAgC,CAAC,CAAC;IAC3D,CAAC;IACO,WAAW,CAAC,CAAmB;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACrC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC;YACrG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACjF,CAAC;IACO,IAAI,CAAC,OAAe,IAAY,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,CAAC,KAAc,EAAE,KAAa;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,CAAC;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC5L,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;QACtG,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC5F,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC7J,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;QAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,OAAO,KAAK,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC,mBAAmB;eAClH,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;QACzG,MAAM,MAAM,GAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM;YAC1D,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS;YACrF,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpF,+FAA+F;QAC/F,IAAI,MAAM,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC;QAC5F,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACxG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/H,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACvF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAqB,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACvD,IAAI,MAAM,CAAC,UAAU;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QAAC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,IAAI,UAAU,CAAC,mBAAmB;mBACrH,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC;YAC5G,0EAA0E;YAC1E,2EAA2E;YAC3E,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpI,IAAI,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrG,EAAE,EAAE,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,qBAAqB,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,eAAe,CAAC,MAAM,WAAW,EAAE;gBAClJ,EAAE,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,sBAAsB,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE;gBAC/I,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,8BAA8B,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1J,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;qBAC9G,MAAM,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC7J,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YACvG,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,KAAK,KAAK,WAAW;mBACvE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1H,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;gBACnC,OAAO,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChP,CAAC,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;YACzI,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAChH,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC;gBAChH,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtI,OAAO,CAAC,EAAE,IAAI,EAAE,sBAA+B,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBAC9G,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,UAAU,EAAE,QAAiB,EAAE,iBAAiB,EAAE,gCAAgC,MAAM,CAAC,KAAK,6BAA6B,OAAO,CAAC,aAAa,CAAC,MAAM,iBAAiB,OAAO,CAAC,eAAe,CAAC,MAAM,+CAA+C,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,IAAI,uDAAuD,SAAS,gCAAgC,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,8BAA8B,uPAAuP,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,cAAc;oBAC36B,uBAAuB,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,YAAY;oBAClF,gBAAgB,EAAE,SAAS,IAAI,CAAC,CAAC,gBAAgB,CAAC,OAAO,KAAK,IAAI;oBAClE,aAAa,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;oBACxD,MAAM,EAAE,mBAAmB,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,wBAAwB,EAAE,EAAE,2BAA2B,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7a,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import type { HealthRecord } from "./health-projection.js";
2
+ import type { AuthorityReference } from "./health-diagnosis.js";
3
+ import type { HealthCheckpointSource } from "./health-checkpoints.js";
4
+ /** Local evidence files only. Unsupported addresses retain unavailable truth.
5
+ * Reuse the file surface's realpath resolver; callers choose whether to embed bytes. */
6
+ export declare function readHealthArtifact(workspace: string, path: string, maxBytes?: number, embed?: boolean): AuthorityReference;
7
+ export declare function healthAuthority(workspace: string, checkpoints: HealthCheckpointSource, record: HealthRecord): AuthorityReference[];
8
+ /** Connector-specific readiness lives behind the transport-neutral diagnosis port.
9
+ * No notification is posted here; the existing gateway owns posting and receipts. */
10
+ export declare function healthHumanReadiness(home: string, address: string, gatewayActive: boolean): Promise<{
11
+ ready: boolean;
12
+ reason: string;
13
+ }>;
14
+ //# sourceMappingURL=health-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-context.d.ts","sourceRoot":"","sources":["../../src/domain/health-context.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAMtE;wFACwF;AACxF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAU,EAAE,KAAK,UAAQ,GAAG,kBAAkB,CASzH;AAcD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,EAAE,YAAY,GAAG,kBAAkB,EAAE,CA2BlI;AAED;qFACqF;AACrF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO;;;GAa/F"}
@@ -0,0 +1,93 @@
1
+ import { readFileSync, statSync, realpathSync } from "node:fs";
2
+ import { join, relative, resolve } from "node:path";
3
+ import { parse as parseYaml } from "yaml";
4
+ import { createHash } from "node:crypto";
5
+ import { resolveAllowedFile } from "./files/path-safety.js";
6
+ import { healthEpisodeId } from "./health-projection.js";
7
+ import { loadHumanRegistry } from "./gateway/human-registry.js";
8
+ import { loadConfig } from "./gateway/slack/config.js";
9
+ import { resolveSecret } from "./gateway/slack/secrets.js";
10
+ import { resolveHumanDeliveryReadiness } from "./gateway/human-readiness.js";
11
+ /** Local evidence files only. Unsupported addresses retain unavailable truth.
12
+ * Reuse the file surface's realpath resolver; callers choose whether to embed bytes. */
13
+ export function readHealthArtifact(workspace, path, maxBytes = 1048576, embed = false) {
14
+ try {
15
+ const root = realpathSync(workspace);
16
+ const canonical = resolveAllowedFile([{ name: "workspace", canonicalPath: root }], "workspace", relative(resolve(workspace), resolve(workspace, path)));
17
+ const size = statSync(canonical).size;
18
+ if (size === 0 || size > maxBytes)
19
+ return { path, state: "unavailable" };
20
+ const bytes = readFileSync(canonical);
21
+ return { path, state: "available", ...(embed ? { content: bytes.toString("utf8") } : {}), sha256: createHash("sha256").update(bytes).digest("hex") };
22
+ }
23
+ catch {
24
+ return { path, state: "unavailable" };
25
+ }
26
+ }
27
+ /** Only read a canonical file at the selected work-tree node; aliases are unavailable. */
28
+ function readAuthorityFile(workspace, path) {
29
+ try {
30
+ const selected = relative(resolve(workspace), resolve(workspace, path));
31
+ const actual = relative(realpathSync(workspace), realpathSync(resolve(workspace, path)));
32
+ if (actual !== selected)
33
+ return { path, state: "unavailable" };
34
+ return readHealthArtifact(workspace, path, 65536, true);
35
+ }
36
+ catch {
37
+ return { path, state: "unavailable" };
38
+ }
39
+ }
40
+ export function healthAuthority(workspace, checkpoints, record) {
41
+ const checkpoint = record.detector === "process.ceremony-amplification" ? checkpoints.entries().find((c) => healthEpisodeId(record.detector, c.checkpoint.scope, c.episodeStartedAt) === record.id)?.checkpoint : undefined;
42
+ const scope = record.scope;
43
+ const mission = (scope.type === "mission" || scope.type === "slice") && /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(scope.missionId) ? scope.missionId : null;
44
+ const groups = {
45
+ project: [join(workspace, "SPEC.md"), join(workspace, "project.yaml"), ...checkpoint?.authorityPaths.project ?? []],
46
+ mission: [...(mission ? [join(workspace, "missions", mission, "SPEC.md"), join(workspace, "missions", mission, "mission.yaml")] : []), ...checkpoint?.authorityPaths.mission ?? []],
47
+ slice: [...checkpoint?.authorityPaths.slice ?? [], ...record.ceremony?.context.filter((r) => r.role.startsWith("slice authority")).map((r) => r.path).filter((p) => /(?:SPEC\.md|slice\.yaml)$/.test(p)) ?? []],
48
+ };
49
+ const belongs = (level, path) => {
50
+ const parts = relative(resolve(workspace), resolve(workspace, path)).split("/");
51
+ if (level === "project")
52
+ return parts.length === 1 && ["SPEC.md", "project.yaml"].includes(parts[0]);
53
+ if (!mission || parts[0] !== "missions" || parts[1] !== mission)
54
+ return false;
55
+ if (level === "mission")
56
+ return parts.length === 3 && ["SPEC.md", "mission.yaml"].includes(parts[2]);
57
+ if (scope.type !== "slice" || parts.length !== 5 || parts[2] !== "slices" || !["SPEC.md", "slice.yaml"].includes(parts[4]))
58
+ return false;
59
+ // Directory names are not slice IDs. The canonical sibling SPEC owns identity.
60
+ const spec = readAuthorityFile(workspace, join(workspace, ...parts.slice(0, 4), "SPEC.md"));
61
+ const frontmatter = spec.content?.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/)?.[1];
62
+ if (!frontmatter)
63
+ return false;
64
+ const identity = parseYaml(frontmatter);
65
+ return identity?.id === scope.sliceId && (identity.mission === undefined || identity.mission === mission);
66
+ };
67
+ return Object.keys(groups).flatMap((level) => [...new Set(groups[level])].map((path) => {
68
+ try {
69
+ return { ...(belongs(level, path) ? readAuthorityFile(workspace, path) : { path, state: "unavailable" }), level };
70
+ }
71
+ catch {
72
+ return { path, state: "unavailable", level };
73
+ }
74
+ }));
75
+ }
76
+ /** Connector-specific readiness lives behind the transport-neutral diagnosis port.
77
+ * No notification is posted here; the existing gateway owns posting and receipts. */
78
+ export async function healthHumanReadiness(home, address, gatewayActive) {
79
+ const registry = loadHumanRegistry(home);
80
+ const human = registry.ok ? registry.entities.find((h) => h.address === address) : undefined;
81
+ if (!human)
82
+ return { ready: false, reason: "registered human primary connector unavailable" };
83
+ const cfg = loadConfig(home);
84
+ const token = resolveSecret("SLACK_BOT_TOKEN", { envFile: cfg.secretsEnvFile ?? undefined });
85
+ const readiness = await resolveHumanDeliveryReadiness({
86
+ human,
87
+ config: cfg,
88
+ gatewayState: gatewayActive ? "active" : "inactive",
89
+ botToken: token,
90
+ });
91
+ return { ready: readiness.ready, reason: readiness.reason };
92
+ }
93
+ //# sourceMappingURL=health-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-context.js","sourceRoot":"","sources":["../../src/domain/health-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { type EffectiveHealthPolicy, type HealthPolicy } from "./health-policy.js";
2
+ import type Database from "better-sqlite3";
3
+ import { type BoundedHealthEvidence, type HealthConfidence, type HealthRecord, type PassiveCeremony, type HealthScope, type HealthSeverity, type HealthStatus } from "./health-projection.js";
4
+ import type { ContextUsageStore } from "./context-usage-store.js";
5
+ import type { RigRepository } from "./rig-repository.js";
6
+ import type { SessionRegistry } from "./session-registry.js";
7
+ export declare const HEALTH_LIST_SCHEMA: "openrig.health-list/v0alpha1";
8
+ interface ObservationBase {
9
+ episodeKey?: string;
10
+ ceremony?: PassiveCeremony;
11
+ conditionCleared?: boolean;
12
+ confidence?: HealthConfidence;
13
+ sourceDescription?: string;
14
+ scope: HealthScope;
15
+ episodeStartedAt: string;
16
+ lastObservedAt: string;
17
+ source: BoundedHealthEvidence;
18
+ }
19
+ export type HealthDetectorObservation = (ObservationBase & {
20
+ kind: "coordination-lineage";
21
+ lineageId: string;
22
+ coordinationTransitions: number;
23
+ productStateChanges: number | null;
24
+ boundedAuthority: boolean;
25
+ reviewReturns: number;
26
+ candidateChanges: number;
27
+ newRiskClasses: number;
28
+ }) | (ObservationBase & {
29
+ kind: "wake-lineage";
30
+ lineageId: string;
31
+ wakeCount: number;
32
+ rescueWakeCount: number;
33
+ existingNextAction: boolean;
34
+ }) | (ObservationBase & {
35
+ kind: "directive";
36
+ directiveId: string;
37
+ declaredPhase: string | null;
38
+ currentPhase: string | null;
39
+ declaredRigor: string | null;
40
+ currentRigor: string | null;
41
+ conflictSourceAddress: string | null;
42
+ }) | (ObservationBase & {
43
+ kind: "scope-admission";
44
+ sliceId: string;
45
+ missionActive: boolean;
46
+ buildable: boolean;
47
+ requiredAuthority: string | null;
48
+ admissionAuthority: string | null;
49
+ admissionState: "present" | "missing" | "contradictory" | "unavailable";
50
+ authoritySourceAddress: string | null;
51
+ }) | (ObservationBase & {
52
+ kind: "context-pressure";
53
+ sourceName: string | null;
54
+ continuity: string | null;
55
+ warningPercent?: number;
56
+ criticalPercent?: number;
57
+ });
58
+ export interface HealthObservationSource {
59
+ read(): readonly HealthDetectorObservation[];
60
+ }
61
+ export interface HealthListQuery {
62
+ limit?: number;
63
+ scopeType?: HealthScope["type"];
64
+ scopeId?: string;
65
+ severity?: HealthSeverity;
66
+ status?: HealthStatus;
67
+ }
68
+ export interface HealthListProjection {
69
+ schema: typeof HEALTH_LIST_SCHEMA;
70
+ evaluatedAt: string | null;
71
+ total: number;
72
+ limit: number;
73
+ truncated: boolean;
74
+ records: HealthRecord[];
75
+ }
76
+ export declare function evaluateHealthDetectors(observations: readonly HealthDetectorObservation[], policy?: HealthPolicy): HealthRecord[];
77
+ export declare function canonicalDetectorJson(records: readonly HealthRecord[]): string;
78
+ export declare class HealthProjectionService {
79
+ private readonly source;
80
+ private readonly policy?;
81
+ constructor(source: HealthObservationSource, policy?: (() => EffectiveHealthPolicy) | undefined);
82
+ records(): HealthRecord[];
83
+ list(query?: HealthListQuery): HealthListProjection;
84
+ get(id: string): HealthRecord | null;
85
+ }
86
+ /** The live v1 adapter intentionally supplies only context observations. The other
87
+ * detectors require structured product-change, directive, or admission facts that
88
+ * current tables cannot express without inference. Replay sources can supply them. */
89
+ export declare class LiveContextHealthSource implements HealthObservationSource {
90
+ private readonly deps;
91
+ constructor(deps: {
92
+ db: Database.Database;
93
+ rigRepo: RigRepository;
94
+ sessionRegistry: SessionRegistry;
95
+ contextUsageStore: ContextUsageStore;
96
+ resolveContextPressurePolicy?: () => {
97
+ warningPercent: number;
98
+ criticalPercent: number;
99
+ };
100
+ now?: () => Date;
101
+ });
102
+ read(): HealthDetectorObservation[];
103
+ }
104
+ export declare function healthScopeId(scope: HealthScope): string;
105
+ export {};
106
+ //# sourceMappingURL=health-detectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-detectors.d.ts","sourceRoot":"","sources":["../../src/domain/health-detectors.ts"],"names":[],"mappings":"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"}