@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
@@ -0,0 +1,219 @@
1
+ import { DEFAULT_TIME_ZONE, displayTime } from "../time.js";
2
+ import { fieldLine, listItem, sectionRule, wrapDetailLines } from "../detail.js";
3
+ const row = (v) => v !== null && typeof v === "object" && !Array.isArray(v) ? v : {};
4
+ const rows = (v) => Array.isArray(v) ? v.map(row) : [];
5
+ const text = (v, missing = "not recorded") => typeof v === "string" && v.length ? v : v == null ? missing : JSON.stringify(v);
6
+ const open = (key) => ({ type: "execution-open", key });
7
+ const words = (v) => text(v, "unknown step").replaceAll("-", " ");
8
+ const packets = (instance) => rows(instance.frontier_packets);
9
+ const title = (instance) => text(instance.description, "Mission lifecycle");
10
+ const field = (label, value, link) => fieldLine({ label, value: text(value), ...(link ? { link } : {}) });
11
+ export function workflowOverview(execution, width) {
12
+ const instances = execution.lifecycle_instances;
13
+ if (!instances?.length)
14
+ return [{ text: "" }, { text: instances ? " Workflows: none bound to this mission" : " Workflows: projection unavailable" }];
15
+ const lines = [{ text: "" }, sectionRule("WORKFLOWS", width)];
16
+ for (const instance of [...instances].sort((a, b) => Number(["completed", "aborted"].includes(text(a.status))) - Number(["completed", "aborted"].includes(text(b.status))))) {
17
+ lines.push(listItem(`${title(instance)} · ${text(instance.status, "unknown")}`, open(`workflow:${instance.instance_id}`)));
18
+ for (const packet of packets(instance)) {
19
+ lines.push(listItem(`${words(packet.step_id)} · ${text(packet.queue_state)} · ${text(packet.owner)}`, open(`packet:${packet.packet_id}`), 4));
20
+ const transition = row(packet.latest_transition);
21
+ if (packet.queue_state === "blocked")
22
+ lines.push({ text: ` Wait: ${text(row(packet.blocker).summary ?? transition.transition_note, "reason not recorded; open work for blocker and wake")}` });
23
+ }
24
+ }
25
+ return wrapDetailLines(lines, width);
26
+ }
27
+ /** All claims are served state or attributed records. No receipt is adjudicated here. */
28
+ export function workflowDetail(execution, key, width, timeZone = DEFAULT_TIME_ZONE) {
29
+ const instances = execution.lifecycle_instances ?? [];
30
+ const packetId = key.startsWith("packet:") ? key.slice(7) : null;
31
+ const instance = packetId ? instances.find((i) => packets(i).some((p) => p.packet_id === packetId)) : instances.find((i) => `workflow:${i.instance_id}` === key);
32
+ if (!instance)
33
+ return null;
34
+ const identity = row(instance.identity);
35
+ const packet = packetId ? packets(instance).find((p) => p.packet_id === packetId) : null;
36
+ const lines = [
37
+ { text: packet ? `Work · ${words(packet.step_id)}` : `${title(instance)} · ${text(instance.status)}` },
38
+ field("mission", execution.mission, { type: "scopes-mission-open", mission: execution.mission }),
39
+ field("project", identity.project),
40
+ field("as of", displayTime(execution.derived_at, timeZone)),
41
+ ];
42
+ if (packet) {
43
+ const transition = row(packet.latest_transition);
44
+ const wake = row(packet.wake);
45
+ const schedule = row(packet.wake_schedule);
46
+ lines.push(field("purpose", packet.objective), field("summary", packet.summary), field("state", packet.queue_state));
47
+ // The rendered owner remains the canonical address; navigation uses the existing
48
+ // resolver, which names unavailable/ambiguous seats rather than choosing a twin.
49
+ lines.push(field("owner", packet.owner, { type: "drill", resource: "agent", name: text(packet.owner) }));
50
+ lines.push(sectionRule("Waiting and continuation", width), field("last change", transition.transition_note), field("recorded by", transition.actor_session), field("at", displayTime(transition.ts, timeZone)));
51
+ if (packet.blocked_on)
52
+ lines.push(field("blocker", packet.blocked_on));
53
+ if (packet.blocker) {
54
+ const blocker = row(packet.blocker);
55
+ lines.push(field("waiting for", blocker.summary), field("blocker state", blocker.state), field("blocker owner", blocker.destination_session), field("evidence", blocker.evidence_ref));
56
+ }
57
+ lines.push(field("wake", packet.wake ? `${text(wake.kind)} · ${text(wake.phase)} · ${wake.live ? "live" : "not live"}${wake.unconsumed ? " · fired without pickup" : ""}` : "none recorded"));
58
+ if (packet.wake)
59
+ lines.push(field("wake ref", wake.ref), field("delivery", wake.deliveryStatus));
60
+ if (wake.expiresAt)
61
+ lines.push(field("due", displayTime(wake.expiresAt, timeZone)));
62
+ if (packet.wake_schedule)
63
+ lines.push(field("policy", schedule.policy), field("cadence", `${text(schedule.interval_seconds)} seconds (a check, not guaranteed delivery)`), field("last check", displayTime(schedule.last_evaluation_at, timeZone)));
64
+ lines.push(sectionRule("Next action", width), ...actionLines(text(packet.targeted_action), width));
65
+ if (packet.gate)
66
+ lines.push(field("gate", packet.gate));
67
+ if (packet.acceptance)
68
+ lines.push(field("decision", packet.acceptance));
69
+ lines.push(field("evidence", packet.evidence_ref), field("packet", packet.packet_id), listItem("Workflow, obligations and bound sources", open(`workflow:${instance.instance_id}`)));
70
+ }
71
+ else {
72
+ lines.push(sectionRule("Current work", width));
73
+ for (const current of packets(instance))
74
+ lines.push(listItem(`${words(current.step_id)} · ${text(current.queue_state)} · ${text(current.owner)}`, open(`packet:${current.packet_id}`)));
75
+ if (!packets(instance).length)
76
+ lines.push({ text: ` No current work packet · workflow ${text(instance.status)}. This is lifecycle state, not product acceptance.` });
77
+ const steps = rows(instance.steps);
78
+ const obligations = rows(instance.boundary_obligations);
79
+ const hasBoundary = obligations.some((o) => o.stepId === "release-boundary");
80
+ lines.push(sectionRule(hasBoundary ? "Release ceremony and post-release housekeeping" : "Obligations", width), { text: " Receipt recorded means an attributed evidence reference was recorded; it does not establish acceptance." });
81
+ for (const obligation of obligations) {
82
+ const label = obligation.stepId === "release-boundary" ? "Post-release housekeeping · release boundary" : obligation.stepId === "activate-successor" ? "Optional successor · activate successor" : words(obligation.stepId);
83
+ lines.push({ text: ` ${label} · ${obligation.required ? "required" : "extension"} · ${text(obligation.state)} · receipt ${text(obligation.receiptState)}` });
84
+ const step = steps.find((s) => s.id === obligation.stepId);
85
+ if (step?.objective)
86
+ lines.push({ text: ` ${text(step.objective)}` });
87
+ const receipt = row(obligation.receipt);
88
+ if (obligation.receipt)
89
+ lines.push(field("evidence", receipt.evidenceRef), field("recorded by", receipt.actorSession), field("at", displayTime(receipt.closedAt, timeZone)));
90
+ }
91
+ const dependencies = rows(instance.dependencies);
92
+ // Do not infer successor semantics from an arbitrary step name. Show the
93
+ // compiler's declared dependency graph and the end of the current workflow.
94
+ lines.push(sectionRule("Continuation", width));
95
+ if (hasBoundary)
96
+ lines.push({ text: obligations.some((o) => o.stepId === "activate-successor") ? " Successor activation is authored after the release boundary." : " No successor activation step is bound. This workflow ends after its own release boundary." });
97
+ for (const dependency of dependencies)
98
+ lines.push(field(words(dependency.stepId), dependency.dependsOn));
99
+ lines.push({ text: " An optional successor is separate from completing this workflow; only authored steps above are obligations." });
100
+ lines.push(sectionRule("Bound graph and sources", width), field("workflow", instance.workflow_name), field("version", instance.workflow_version), field("graph", instance.graph_source), { text: " Sources are bound at compilation. Current source bytes have not been compared." });
101
+ for (const source of rows(instance.sources)) {
102
+ if (source.kind === "slice" && typeof source.path === "string") {
103
+ const parts = source.path.split("/");
104
+ const slice = parts.at(-2);
105
+ if (slice)
106
+ lines.push(listItem(`Slice ${slice}`, { type: "scopes-open", mission: execution.mission, slice }));
107
+ }
108
+ for (const [label, value] of Object.entries(source))
109
+ lines.push(field(label, value));
110
+ }
111
+ lines.push(field("input digest", instance.compiled_input_digest));
112
+ for (const failure of rows(instance.failure_occurrences))
113
+ if (failure.status === "unresolved")
114
+ lines.push(sectionRule("Unresolved failure", width), field("step", failure.step_id), field("reason", failure.failure_reason), field("occurrence", failure.occurrence_id), ...actionLines(text(failure.targeted_action), width));
115
+ for (const unknown of Array.isArray(instance.unknowns) ? instance.unknowns : [])
116
+ lines.push(field("unknown", unknown));
117
+ lines.push(field("instance", instance.instance_id), field("operation", instance.operation_key));
118
+ }
119
+ lines.push({ text: "" }, listItem("Back · Esc", { type: "back" }));
120
+ return wrapDetailLines(lines, width);
121
+ }
122
+ /** Keep lifecycle commands complete in the scrollable pane. Shell continuations make the
123
+ * visual wrap usable as one command instead of turning the hidden suffix into guesswork. */
124
+ function shellWords(command) {
125
+ const words = [];
126
+ let word = "";
127
+ let quote = null;
128
+ let escaped = false;
129
+ for (const char of command) {
130
+ if (escaped) {
131
+ word += char;
132
+ escaped = false;
133
+ }
134
+ else if (char === "\\" && quote !== "'") {
135
+ word += char;
136
+ escaped = true;
137
+ }
138
+ else if ((char === "'" || char === '"') && (quote === null || quote === char)) {
139
+ word += char;
140
+ quote = quote === char ? null : char;
141
+ }
142
+ else if (/\s/.test(char) && quote === null) {
143
+ if (word)
144
+ words.push(word);
145
+ word = "";
146
+ }
147
+ else {
148
+ word += char;
149
+ }
150
+ }
151
+ if (word)
152
+ words.push(word);
153
+ return words;
154
+ }
155
+ function quoteShell(value) {
156
+ return `'${value.replace(/'/g, `'"'"'`)}'`;
157
+ }
158
+ /** Split only words emitted by the daemon's shellQuote helper. A continuation directly
159
+ * between adjacent quoted chunks is one shell argument; option-to-option continuations
160
+ * retain a separating space. */
161
+ function splitQuotedWord(word, maxWidth) {
162
+ if (!word.startsWith("'") || !word.endsWith("'"))
163
+ return null;
164
+ const value = word.slice(1, -1).replaceAll(`'"'"'`, "'");
165
+ if (quoteShell(value) !== word)
166
+ return null;
167
+ const chunks = [];
168
+ let chunk = "";
169
+ for (const char of value) {
170
+ if (chunk && quoteShell(chunk + char).length > maxWidth) {
171
+ chunks.push(quoteShell(chunk));
172
+ chunk = char;
173
+ }
174
+ else {
175
+ chunk += char;
176
+ }
177
+ }
178
+ chunks.push(quoteShell(chunk));
179
+ return chunks;
180
+ }
181
+ function actionLines(action, width) {
182
+ const firstIndent = " action ";
183
+ const nextIndent = " ";
184
+ const room = Math.max(width, 24);
185
+ const parts = shellWords(action);
186
+ const lines = [];
187
+ let current = `${firstIndent}${parts.shift() ?? ""}`;
188
+ for (let index = 0; index < parts.length; index++) {
189
+ const part = parts[index];
190
+ const more = index < parts.length - 1;
191
+ if (current && `${current} ${part}${more ? " \\" : ""}`.length <= room) {
192
+ current += ` ${part}`;
193
+ continue;
194
+ }
195
+ if (current)
196
+ lines.push({ text: `${current} \\` });
197
+ const chunks = splitQuotedWord(part, room - 2);
198
+ if (chunks && `${nextIndent}${part}${more ? " \\" : ""}`.length > room) {
199
+ for (let chunkIndex = 0; chunkIndex < chunks.length - 1; chunkIndex++) {
200
+ lines.push({ text: `${chunks[chunkIndex]}\\` });
201
+ }
202
+ const last = chunks[chunks.length - 1];
203
+ if (more) {
204
+ lines.push({ text: `${last} \\` });
205
+ current = "";
206
+ }
207
+ else {
208
+ current = last;
209
+ }
210
+ }
211
+ else {
212
+ current = `${nextIndent}${part}`;
213
+ }
214
+ }
215
+ if (current)
216
+ lines.push({ text: current });
217
+ return lines;
218
+ }
219
+ //# sourceMappingURL=workflow-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-model.js","sourceRoot":"","sources":["../../src/execution/workflow-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,SAAS,UAAU,EAAqB,GAAG,MAAM,CAyBpG"}
1
+ {"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,SAAS,UAAU,EAAqB,GAAG,MAAM,CAyBpG"}
@@ -2,8 +2,7 @@
2
2
  // <resource> <name> drill · spec-of / running cross-nav. k9s-primary taxonomy.
3
3
  // parseCommand is pure text → action; target existence is validated by
4
4
  // dispatch, so every input adapter shares one failure surface.
5
- // Richer grammar (compound commands, prefixes, history/completion) was
6
- // RETIRED by the Phase-0 kill-criterion — see the spike verdict.
5
+ // Completion proposes text from the registry; compound-command parsing stays out of scope.
7
6
  //
8
7
  // REGISTRY I1 (ruling 64f1dbdf): the verb table is DERIVED from the ONE command
9
8
  // registry (commands/registry.ts) — an unregistered verb cannot parse, so an
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,+EAA+E;AAC/E,uEAAuE;AACvE,+DAA+D;AAC/D,uEAAuE;AACvE,iEAAiE;AACjE,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,6EAA6E;AAC7E,6DAA6D;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG3E,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,WAAkC,gBAAgB;IAC1F,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAE1C,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,qBAAqB,OAAO,cAAc,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;SACzF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,EAAE,KAAK;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,+EAA+E;AAC/E,uEAAuE;AACvE,+DAA+D;AAC/D,2FAA2F;AAC3F,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,6EAA6E;AAC7E,6DAA6D;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG3E,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,WAAkC,gBAAgB;IAC1F,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAE1C,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,qBAAqB,OAAO,cAAc,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;SACzF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,EAAE,KAAK;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;AACjE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { type ContentLine } from "../detail.js";
2
+ import type { FleetSnapshot, HealthRecord } from "../types.js";
3
+ export type HealthDisplayScope = {
4
+ kind: "instance";
5
+ local: boolean;
6
+ } | {
7
+ kind: "rig";
8
+ rigId: string;
9
+ rigName: string;
10
+ local: boolean;
11
+ } | {
12
+ kind: "seat";
13
+ rigId: string;
14
+ seatId: string | null;
15
+ seatName: string;
16
+ local: boolean;
17
+ };
18
+ export declare function healthRecordsForScope(snap: FleetSnapshot, scope: HealthDisplayScope): HealthRecord[];
19
+ export declare function healthSummaryLine(snap: FleetSnapshot, scope: HealthDisplayScope, width: number): ContentLine;
20
+ export declare function healthListLines(snap: FleetSnapshot, scope: HealthDisplayScope, width: number): ContentLine[];
21
+ export declare function healthDetailLines(snap: FleetSnapshot, findingId: string, width: number, timeZone?: string): ContentLine[];
22
+ export declare function healthAgentLines(snap: FleetSnapshot, scope: Extract<HealthDisplayScope, {
23
+ kind: "seat";
24
+ }>, width: number): ContentLine[];
25
+ //# sourceMappingURL=health-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-model.d.ts","sourceRoot":"","sources":["../../src/health/health-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAU,aAAa,EAA2B,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhG,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAc7F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,GAAG,YAAY,EAAE,CAEpG;AAwHD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CA4B5G;AA+BD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAmB5G;AAwCD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAoB,GAAG,WAAW,EAAE,CAsCpI;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CASxI"}
@@ -0,0 +1,323 @@
1
+ import { DEFAULT_TIME_ZONE, displayTime } from "../time.js";
2
+ import { sectionRule } from "../detail.js";
3
+ function scopeMatches(record, scope) {
4
+ if (scope.kind === "instance")
5
+ return true;
6
+ if (scope.kind === "rig") {
7
+ return (record.scope.type === "rig" && record.scope.rigId === scope.rigId)
8
+ || (record.scope.type === "seat" && record.scope.rigId === scope.rigId);
9
+ }
10
+ return record.scope.type === "seat"
11
+ && record.scope.rigId === scope.rigId
12
+ && scope.seatId !== null
13
+ && record.scope.seatId === scope.seatId;
14
+ }
15
+ export function healthRecordsForScope(snap, scope) {
16
+ return [...(snap.health?.records ?? [])].filter((record) => scopeMatches(record, scope)).sort(compareHealthRecords);
17
+ }
18
+ function compareHealthRecords(a, b) {
19
+ const status = { active: 0, indeterminate: 1, cleared: 2 };
20
+ const severity = { critical: 0, warning: 1, info: 2 };
21
+ return status[a.status] - status[b.status]
22
+ || severity[a.severity] - severity[b.severity]
23
+ || Date.parse(b.lastObservedAt ?? "") - Date.parse(a.lastObservedAt ?? "")
24
+ || a.id.localeCompare(b.id, "en-US");
25
+ }
26
+ function tokenFor(record) {
27
+ if (record.status === "indeterminate" || record.freshness.state !== "fresh")
28
+ return "warn";
29
+ if (record.status === "cleared")
30
+ return "dim";
31
+ if (record.severity === "critical")
32
+ return "error";
33
+ if (record.severity === "warning")
34
+ return "warn";
35
+ return "info";
36
+ }
37
+ function conditionLabel(record) {
38
+ if (record.status === "indeterminate")
39
+ return "INDETERMINATE";
40
+ if (record.freshness.state === "stale")
41
+ return "STALE";
42
+ if (record.freshness.state === "unavailable" || record.freshness.state === "contradictory")
43
+ return "INDETERMINATE";
44
+ if (record.status === "cleared")
45
+ return "CLEARED";
46
+ return null;
47
+ }
48
+ function stateLabel(record) {
49
+ const condition = conditionLabel(record);
50
+ return `${record.severity.toUpperCase()}${condition ? ` ${condition}` : ""}`;
51
+ }
52
+ function signalLabel(record) {
53
+ const condition = conditionLabel(record);
54
+ return `${condition ? `${condition} · ` : ""}${record.summary}`;
55
+ }
56
+ function clip(text, width) {
57
+ if (width <= 0)
58
+ return "";
59
+ return text.length <= width ? text : `${text.slice(0, Math.max(0, width - 1))}…`;
60
+ }
61
+ function cell(text, width) {
62
+ const clipped = clip(text, width);
63
+ return clipped + " ".repeat(Math.max(0, width - clipped.length));
64
+ }
65
+ function fitLine(parts, width, action) {
66
+ const out = [];
67
+ let room = Math.max(0, width);
68
+ for (const part of parts) {
69
+ if (room <= 0)
70
+ break;
71
+ const text = clip(part.text, room);
72
+ out.push({ ...part, text });
73
+ room -= text.length;
74
+ if (text.length < part.text.length)
75
+ break;
76
+ }
77
+ return { text: out.map((part) => part.text).join(""), segs: out, ...(action ? { action } : {}) };
78
+ }
79
+ function scopeName(record, snap) {
80
+ const recordScope = record.scope;
81
+ switch (recordScope.type) {
82
+ case "instance": return recordScope.instanceId;
83
+ case "rig": return snap.hosts.flatMap((host) => host.rigs).find((rig) => rig.id === recordScope.rigId)?.name ?? recordScope.rigId;
84
+ case "seat": {
85
+ for (const host of snap.hosts)
86
+ for (const rig of host.rigs)
87
+ for (const pod of rig.pods) {
88
+ const agent = pod.agents.find((candidate) => candidate.nodeId === recordScope.seatId);
89
+ if (agent)
90
+ return agent.name;
91
+ }
92
+ return recordScope.seatId;
93
+ }
94
+ case "mission": return recordScope.missionId;
95
+ case "slice": return recordScope.sliceId;
96
+ }
97
+ }
98
+ function age(record) {
99
+ const seconds = record.freshness.ageSeconds;
100
+ if (seconds === null || !Number.isFinite(seconds))
101
+ return "—";
102
+ if (seconds < 60)
103
+ return `${Math.floor(seconds)}s`;
104
+ if (seconds < 3600)
105
+ return `${Math.floor(seconds / 60)}m`;
106
+ if (seconds < 86_400)
107
+ return `${Math.floor(seconds / 3600)}h`;
108
+ return `${Math.floor(seconds / 86_400)}d`;
109
+ }
110
+ function evidenceSummary(record) {
111
+ if (record.evidence.length === 0)
112
+ return "none";
113
+ const counts = new Map();
114
+ for (const evidence of record.evidence)
115
+ counts.set(evidence.type, (counts.get(evidence.type) ?? 0) + 1);
116
+ return [...counts].map(([type, count]) => `${type}${count > 1 ? ` ×${count}` : ""}`).join(", ");
117
+ }
118
+ function scopedEmptyLabel(scope) {
119
+ return scope.kind === "instance" ? "EMPTY" : `EMPTY FOR ${scope.kind.toUpperCase()}`;
120
+ }
121
+ function unavailableLine(width, reason = "canonical health records could not be read") {
122
+ return fitLine([
123
+ { text: "HEALTH ", token: "bright", bold: true },
124
+ { text: "UNAVAILABLE", token: "warn", bold: true },
125
+ { text: ` · ${reason}`, token: "dim" },
126
+ ], width);
127
+ }
128
+ function unavailableReason(snap, scope) {
129
+ if (!scope.local)
130
+ return "canonical findings are not served for this remote instance";
131
+ if (!snap.health || snap.health.availability !== "loaded")
132
+ return "canonical health records could not be read";
133
+ if (scope.kind === "seat" && scope.seatId === null)
134
+ return "stable seat identity was not served; findings cannot be scoped";
135
+ return null;
136
+ }
137
+ function emptyLine(scope, width) {
138
+ return fitLine([
139
+ { text: "HEALTH ", token: "bright", bold: true },
140
+ { text: scopedEmptyLabel(scope), token: "dim", bold: true },
141
+ { text: " · no findings served; not a healthy verdict", token: "dim" },
142
+ ], width);
143
+ }
144
+ export function healthSummaryLine(snap, scope, width) {
145
+ const unavailable = unavailableReason(snap, scope);
146
+ if (unavailable)
147
+ return unavailableLine(width, unavailable);
148
+ const records = healthRecordsForScope(snap, scope);
149
+ if (records.length === 0)
150
+ return emptyLine(scope, width);
151
+ const active = records.filter((record) => record.status === "active");
152
+ const counts = {
153
+ critical: active.filter((record) => record.severity === "critical").length,
154
+ warning: active.filter((record) => record.severity === "warning").length,
155
+ info: active.filter((record) => record.severity === "info").length,
156
+ };
157
+ const categories = new Map();
158
+ for (const record of active)
159
+ categories.set(record.category, (categories.get(record.category) ?? 0) + 1);
160
+ const categoryText = [...categories].sort(([a], [b]) => a.localeCompare(b, "en-US")).map(([name, count]) => `${name} ${count}`).join(" ");
161
+ const indeterminate = records.filter((record) => record.status === "indeterminate").length;
162
+ const top = records[0];
163
+ const compact = width < 80;
164
+ return fitLine([
165
+ { text: "HEALTH ", token: "bright", bold: true },
166
+ { text: compact ? "ACTIVE " : "ACTIVE · ", token: "bright", bold: true },
167
+ { text: `CRIT ${counts.critical}`, token: counts.critical ? "error" : "dim", bold: counts.critical > 0 },
168
+ { text: ` WARN ${counts.warning}`, token: counts.warning ? "warn" : "dim", bold: counts.warning > 0 },
169
+ ...(!compact ? [{ text: ` INFO ${counts.info}`, token: counts.info ? "info" : "dim" }] : []),
170
+ ...(indeterminate > 0 ? [{ text: compact ? ` · INDET ${indeterminate}` : ` · INDETERMINATE ${indeterminate}`, token: "warn", bold: true }] : []),
171
+ ...(categoryText ? [{ text: compact ? ` · TYPE ${categoryText}` : ` · BY TYPE ${categoryText}`, token: "bright" }] : []),
172
+ { text: ` · ${stateLabel(top)} ${top.summary}`, token: tokenFor(top) },
173
+ ...(snap.health?.truncated ? [{ text: " · PARTIAL", token: "warn", bold: true }] : []),
174
+ ], width, { type: "tab", tab: "health" });
175
+ }
176
+ function healthColumnWidths(width) {
177
+ const wide = width >= 100;
178
+ const sevWidth = 13;
179
+ const scopeWidth = wide ? 18 : 12;
180
+ const ageWidth = wide ? 7 : 5;
181
+ const confWidth = 6;
182
+ const evidenceWidth = wide ? Math.min(22, Math.max(14, Math.floor(width * 0.24))) : 0;
183
+ const fixed = sevWidth + scopeWidth + ageWidth + (wide ? confWidth + evidenceWidth + 5 : 3);
184
+ const signalWidth = Math.max(12, width - fixed);
185
+ return { wide, sevWidth, signalWidth, scopeWidth, ageWidth, confWidth, evidenceWidth };
186
+ }
187
+ function healthTableRow(record, snap, width) {
188
+ const { wide, sevWidth, signalWidth, scopeWidth, ageWidth, confWidth, evidenceWidth } = healthColumnWidths(width);
189
+ const values = [
190
+ cell(record.severity.toUpperCase(), sevWidth),
191
+ cell(signalLabel(record), signalWidth),
192
+ cell(scopeName(record, snap), scopeWidth),
193
+ cell(age(record), ageWidth),
194
+ ...(wide ? [cell(record.confidence, confWidth), cell(evidenceSummary(record), evidenceWidth)] : []),
195
+ ];
196
+ const text = values.join(" ").trimEnd();
197
+ return {
198
+ text,
199
+ segs: [{ text: values[0], token: tokenFor(record), bold: record.status === "active" }, { text: text.slice(values[0].length), token: "bright" }],
200
+ action: { type: "health-open", findingId: record.id },
201
+ };
202
+ }
203
+ export function healthListLines(snap, scope, width) {
204
+ const unavailable = unavailableReason(snap, scope);
205
+ if (unavailable)
206
+ return [unavailableLine(width, unavailable)];
207
+ const records = healthRecordsForScope(snap, scope);
208
+ if (records.length === 0)
209
+ return [emptyLine(scope, width)];
210
+ const { wide, sevWidth, signalWidth, scopeWidth, ageWidth, confWidth, evidenceWidth } = healthColumnWidths(width);
211
+ const columns = [
212
+ cell("SEV", sevWidth),
213
+ cell("SIGNAL", signalWidth),
214
+ cell("SCOPE", scopeWidth),
215
+ cell("AGE", ageWidth),
216
+ ...(wide ? [cell("CONF", confWidth), cell("EVIDENCE", evidenceWidth)] : []),
217
+ ].join(" ").trimEnd();
218
+ const heading = fitLine([{ text: columns, token: "dim", bold: true }], width);
219
+ const lines = [sectionRule(`HEALTH · ${scope.kind} · canonical findings`, width), heading, { text: "─".repeat(Math.min(width, Math.max(1, heading.text.length))) }];
220
+ lines.push(...records.map((record) => healthTableRow(record, snap, width)));
221
+ if (snap.health?.truncated)
222
+ lines.push(fitLine([{ text: "PARTIAL · daemon result limit reached", token: "warn", bold: true }], width));
223
+ lines.push(fitLine([{ text: "Enter opens explanation and typed evidence · Escape returns", token: "dim" }], width));
224
+ return lines;
225
+ }
226
+ function value(evidence, key) {
227
+ const item = evidence[key];
228
+ if (item === null || item === undefined)
229
+ return "—";
230
+ if (Array.isArray(item))
231
+ return item.join(", ");
232
+ return String(item);
233
+ }
234
+ function evidenceText(evidence) {
235
+ switch (evidence.type) {
236
+ case "queue-transition": return `qitem ${value(evidence, "qitemId")} · transition ${value(evidence, "transitionId")} · ${value(evidence, "state")} · actor ${value(evidence, "actorSession")}`;
237
+ case "watchdog-history": return `job ${value(evidence, "jobId")} · history ${value(evidence, "historyId")} · ${value(evidence, "outcome")} · delivery ${value(evidence, "deliveryStatus")}`;
238
+ case "work-graph": return `${value(evidence, "nodeType")} ${value(evidence, "nodeId")} · mission ${value(evidence, "missionId")} · stage ${value(evidence, "stage")} · depends on ${value(evidence, "dependsOn")}`;
239
+ case "topology-activity": return `node ${value(evidence, "nodeId")} · session ${value(evidence, "sessionName")} · activity ${value(evidence, "activity")} · sequence ${value(evidence, "activitySequence")}`;
240
+ case "context-usage": return `node ${value(evidence, "nodeId")} · session ${value(evidence, "sessionId")} · used ${value(evidence, "usedPercentage")}% · available ${value(evidence, "available")} · fresh ${value(evidence, "fresh")}`;
241
+ case "occupant-model": return `node ${value(evidence, "nodeId")} · generation ${value(evidence, "occupantGeneration")} · runtime ${value(evidence, "runtime")} · model ${value(evidence, "model")}`;
242
+ case "lifecycle-receipt": return `receipt ${value(evidence, "receiptId")} · ${value(evidence, "operation")} · ${value(evidence, "outcome")}`;
243
+ }
244
+ }
245
+ function wrap(label, text, width, token = "bright") {
246
+ const prefix = ` ${`${label}:`.padEnd(12)} `;
247
+ const continuation = " ".repeat(prefix.length);
248
+ const room = Math.max(8, width - prefix.length);
249
+ const words = text.trim().split(/\s+/).filter(Boolean);
250
+ const chunks = [];
251
+ let line = "";
252
+ for (const word of words) {
253
+ if (!line)
254
+ line = word;
255
+ else if (line.length + word.length + 1 <= room)
256
+ line += ` ${word}`;
257
+ else {
258
+ chunks.push(line);
259
+ line = word;
260
+ }
261
+ }
262
+ if (line)
263
+ chunks.push(line);
264
+ return (chunks.length ? chunks : ["—"]).map((chunk, index) => fitLine([
265
+ { text: index === 0 ? prefix : continuation, token: "dim" },
266
+ { text: chunk, token },
267
+ ], width));
268
+ }
269
+ export function healthDetailLines(snap, findingId, width, timeZone = DEFAULT_TIME_ZONE) {
270
+ const record = snap.health?.records.find((candidate) => candidate.id === findingId);
271
+ if (!record)
272
+ return [fitLine([{ text: `HEALTH finding ${findingId} is no longer in the bounded canonical read`, token: "warn" }], width)];
273
+ const lines = [
274
+ fitLine([{ text: `${stateLabel(record)} `, token: tokenFor(record), bold: true }, { text: record.detector, token: "bright", bold: true }, { text: " · Escape returns", token: "dim" }], width),
275
+ { text: "" },
276
+ sectionRule("SIGNAL", width),
277
+ ...wrap("summary", record.summary, width),
278
+ ...wrap("finding id", record.id, width),
279
+ ...wrap("scope", scopeName(record, snap), width),
280
+ ...wrap("category", record.category, width),
281
+ ...wrap("severity", record.severity, width, tokenFor(record)),
282
+ ...wrap("status", record.status, width),
283
+ ...(record.ceremony ? wrap("diagnosis stage", record.ceremony.stage, width) : []),
284
+ ...wrap("confidence", record.confidence, width),
285
+ ...wrap("freshness", `${record.freshness.state} · source age ${age(record)}`, width),
286
+ ...wrap("started", displayTime(record.startedAt, timeZone), width),
287
+ ...wrap("observed", displayTime(record.lastObservedAt, timeZone), width),
288
+ { text: "" },
289
+ sectionRule("EXPLANATION", width),
290
+ ...wrap("why", record.explanation, width),
291
+ ...wrap("threshold", record.threshold, width),
292
+ ...wrap("policy", record.policyVersion ?? "not reported by source", width),
293
+ ...wrap("inspect", record.suggestedInspection, width),
294
+ ...(record.indeterminateReason ? wrap("unknown", record.indeterminateReason, width, "warn") : []),
295
+ { text: "" },
296
+ sectionRule(`EVIDENCE · ${record.evidence.length}`, width),
297
+ ];
298
+ if (record.ceremony) {
299
+ for (const ref of record.ceremony.context)
300
+ lines.push(...wrap("normal context", `${ref.role}: ${ref.path} (${ref.state}${ref.sha256 ? ` sha256:${ref.sha256}` : ""})`, width));
301
+ lines.push(...wrap("assessment basis", record.ceremony.basis, width));
302
+ }
303
+ if (record.evidence.length === 0)
304
+ lines.push(...wrap("evidence", "none served", width, "warn"));
305
+ for (const evidence of record.evidence) {
306
+ lines.push(...wrap(evidence.type, evidenceText(evidence), width));
307
+ lines.push(...wrap("observed", displayTime(evidence.observedAt, timeZone), width, evidence.observedAt ? "dim" : "warn"));
308
+ }
309
+ return lines;
310
+ }
311
+ export function healthAgentLines(snap, scope, width) {
312
+ const unavailable = unavailableReason(snap, scope);
313
+ if (unavailable)
314
+ return [unavailableLine(width, unavailable)];
315
+ const records = healthRecordsForScope(snap, scope);
316
+ if (records.length === 0)
317
+ return [emptyLine(scope, width)];
318
+ return records.map((record) => fitLine([
319
+ { text: `${stateLabel(record).padEnd(13)} `, token: tokenFor(record), bold: record.status === "active" },
320
+ { text: record.summary, token: "bright" },
321
+ ], width, { type: "health-open", findingId: record.id }));
322
+ }
323
+ //# sourceMappingURL=health-model.js.map