@openrig/cli 0.6.4 → 0.6.6

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 (1443) hide show
  1. package/README.md +405 -0
  2. package/daemon/assets/onboarding/02-self-and-competent-action.md +42 -0
  3. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  4. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +100 -20
  6. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +41 -21
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +207 -132
  8. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  9. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +12 -12
  10. package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  11. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
  12. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +2 -2
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +17 -0
  14. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +2 -2
  15. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +9 -4
  16. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +54 -23
  17. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  18. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +1 -19
  19. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +3 -0
  20. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +56 -4
  21. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +0 -5
  22. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +5 -6
  23. package/daemon/context-packs/help/help.md +40 -10
  24. package/daemon/context-packs/help/manifest.yaml +1 -1
  25. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  26. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +26 -12
  27. package/daemon/context-packs/reference/getting-started.md +426 -111
  28. package/daemon/context-packs/reference/instance-layout.md +11 -0
  29. package/daemon/context-packs/reference/manifest.yaml +1 -1
  30. package/daemon/context-packs/reference/rig-spec.md +180 -29
  31. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +41 -21
  34. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +207 -132
  36. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +5 -3
  37. package/daemon/context-packs/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  38. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +0 -6
  39. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
  41. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +24 -0
  45. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +5 -5
  47. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +3 -3
  48. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +9 -4
  51. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +12 -9
  53. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +29 -29
  55. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
  57. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +0 -5
  60. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  63. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +3 -3
  64. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +12 -12
  67. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  70. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +2 -2
  71. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +17 -0
  73. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +2 -2
  75. package/daemon/context-packs/skills/openrig-user/SKILL.md +54 -23
  76. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  78. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +1 -1
  91. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  93. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  94. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  95. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +0 -2
  96. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  97. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  98. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  99. package/daemon/context-packs/skills/queue-handoff/SKILL.md +1 -19
  100. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  101. package/daemon/context-packs/skills/refocusing/SKILL.md +3 -0
  102. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  103. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +56 -4
  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 +0 -5
  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 +5 -6
  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/manifest.yaml +1 -1
  112. package/daemon/dist/adapters/claude-code-adapter.d.ts +18 -4
  113. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  114. package/daemon/dist/adapters/claude-code-adapter.js +179 -63
  115. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  116. package/daemon/dist/adapters/claude-resume.d.ts +7 -1
  117. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  118. package/daemon/dist/adapters/claude-resume.js +44 -10
  119. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  120. package/daemon/dist/adapters/codex-resume.d.ts +9 -1
  121. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  122. package/daemon/dist/adapters/codex-resume.js +22 -8
  123. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  124. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -0
  125. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  126. package/daemon/dist/adapters/codex-runtime-adapter.js +93 -73
  127. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  128. package/daemon/dist/adapters/compose-services-adapter.d.ts +2 -1
  129. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  130. package/daemon/dist/adapters/compose-services-adapter.js +6 -3
  131. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  132. package/daemon/dist/adapters/daemon-url.d.ts +7 -0
  133. package/daemon/dist/adapters/daemon-url.d.ts.map +1 -0
  134. package/daemon/dist/adapters/daemon-url.js +12 -0
  135. package/daemon/dist/adapters/daemon-url.js.map +1 -0
  136. package/daemon/dist/adapters/kernel-authority.d.ts +10 -0
  137. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -0
  138. package/daemon/dist/adapters/kernel-authority.js +53 -0
  139. package/daemon/dist/adapters/kernel-authority.js.map +1 -0
  140. package/daemon/dist/adapters/non-interruptive.d.ts +14 -0
  141. package/daemon/dist/adapters/non-interruptive.d.ts.map +1 -0
  142. package/daemon/dist/adapters/non-interruptive.js +38 -0
  143. package/daemon/dist/adapters/non-interruptive.js.map +1 -0
  144. package/daemon/dist/adapters/omp-resume.d.ts +6 -0
  145. package/daemon/dist/adapters/omp-resume.d.ts.map +1 -0
  146. package/daemon/dist/adapters/omp-resume.js +6 -0
  147. package/daemon/dist/adapters/omp-resume.js.map +1 -0
  148. package/daemon/dist/adapters/omp-runtime-adapter.d.ts +10 -0
  149. package/daemon/dist/adapters/omp-runtime-adapter.d.ts.map +1 -0
  150. package/daemon/dist/adapters/omp-runtime-adapter.js +16 -0
  151. package/daemon/dist/adapters/omp-runtime-adapter.js.map +1 -0
  152. package/daemon/dist/adapters/pi-resume.d.ts +7 -1
  153. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  154. package/daemon/dist/adapters/pi-resume.js +27 -18
  155. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  156. package/daemon/dist/adapters/pi-runner-protocol.d.ts +29 -2
  157. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  158. package/daemon/dist/adapters/pi-runner-protocol.js +89 -5
  159. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  160. package/daemon/dist/adapters/pi-runner.d.ts +52 -5
  161. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  162. package/daemon/dist/adapters/pi-runner.js +429 -68
  163. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  164. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +11 -2
  165. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  166. package/daemon/dist/adapters/pi-runtime-adapter.js +85 -40
  167. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  168. package/daemon/dist/adapters/preflight-exec.d.ts +11 -0
  169. package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -0
  170. package/daemon/dist/adapters/preflight-exec.js +52 -0
  171. package/daemon/dist/adapters/preflight-exec.js.map +1 -0
  172. package/daemon/dist/adapters/stub-runner-protocol.d.ts +1 -1
  173. package/daemon/dist/adapters/stub-runner-protocol.d.ts.map +1 -1
  174. package/daemon/dist/adapters/stub-runner.d.ts +1 -1
  175. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  176. package/daemon/dist/adapters/stub-runner.js +3 -1
  177. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  178. package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
  179. package/daemon/dist/adapters/stub-runtime-adapter.js +11 -8
  180. package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
  181. package/daemon/dist/adapters/tmux.d.ts +52 -6
  182. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  183. package/daemon/dist/adapters/tmux.js +313 -57
  184. package/daemon/dist/adapters/tmux.js.map +1 -1
  185. package/daemon/dist/adapters/yolo-mode.d.ts +1 -1
  186. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  187. package/daemon/dist/adapters/yolo-mode.js +3 -0
  188. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  189. package/daemon/dist/build-info.js +3 -3
  190. package/daemon/dist/bundle-behaviour-surface.d.ts +2 -0
  191. package/daemon/dist/bundle-behaviour-surface.d.ts.map +1 -0
  192. package/daemon/dist/bundle-behaviour-surface.js +2 -0
  193. package/daemon/dist/bundle-behaviour-surface.js.map +1 -0
  194. package/daemon/dist/bundle-identity-surface.d.ts +2 -0
  195. package/daemon/dist/bundle-identity-surface.d.ts.map +1 -0
  196. package/daemon/dist/bundle-identity-surface.js +4 -0
  197. package/daemon/dist/bundle-identity-surface.js.map +1 -0
  198. package/daemon/dist/daemon-shutdown.d.ts +19 -0
  199. package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
  200. package/daemon/dist/daemon-shutdown.js +85 -0
  201. package/daemon/dist/daemon-shutdown.js.map +1 -1
  202. package/daemon/dist/db/all-migrations.d.ts +1 -1
  203. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  204. package/daemon/dist/db/all-migrations.js +12 -2
  205. package/daemon/dist/db/all-migrations.js.map +1 -1
  206. package/daemon/dist/db/migrations/090_human_reply_to.d.ts +3 -0
  207. package/daemon/dist/db/migrations/090_human_reply_to.d.ts.map +1 -0
  208. package/daemon/dist/db/migrations/090_human_reply_to.js +7 -0
  209. package/daemon/dist/db/migrations/090_human_reply_to.js.map +1 -0
  210. package/daemon/dist/db/migrations/091_human_questions.d.ts +3 -0
  211. package/daemon/dist/db/migrations/091_human_questions.d.ts.map +1 -0
  212. package/daemon/dist/db/migrations/091_human_questions.js +9 -0
  213. package/daemon/dist/db/migrations/091_human_questions.js.map +1 -0
  214. package/daemon/dist/db/migrations/092_node_effort.d.ts +3 -0
  215. package/daemon/dist/db/migrations/092_node_effort.d.ts.map +1 -0
  216. package/daemon/dist/db/migrations/092_node_effort.js +8 -0
  217. package/daemon/dist/db/migrations/092_node_effort.js.map +1 -0
  218. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts +3 -0
  219. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts.map +1 -0
  220. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js +12 -0
  221. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js.map +1 -0
  222. package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts +3 -0
  223. package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts.map +1 -0
  224. package/daemon/dist/db/migrations/095_rig_non_interruptive.js +5 -0
  225. package/daemon/dist/db/migrations/095_rig_non_interruptive.js.map +1 -0
  226. package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -1
  227. package/daemon/dist/domain/activity-endpoint.js +3 -1
  228. package/daemon/dist/domain/activity-endpoint.js.map +1 -1
  229. package/daemon/dist/domain/agent-activity-store.d.ts +3 -1
  230. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  231. package/daemon/dist/domain/agent-activity-store.js +13 -3
  232. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  233. package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -1
  234. package/daemon/dist/domain/agent-images/agent-image-library-service.js +76 -56
  235. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  236. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  237. package/daemon/dist/domain/agent-manifest.js +28 -5
  238. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  239. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +10 -0
  240. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  241. package/daemon/dist/domain/bootstrap-orchestrator.js +136 -33
  242. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  243. package/daemon/dist/domain/builtin-policy-reference.d.ts +1 -1
  244. package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -1
  245. package/daemon/dist/domain/builtin-policy-reference.js +2 -2
  246. package/daemon/dist/domain/builtin-policy-reference.js.map +1 -1
  247. package/daemon/dist/domain/bundle-archive.d.ts +24 -0
  248. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  249. package/daemon/dist/domain/bundle-archive.js +66 -21
  250. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  251. package/daemon/dist/domain/bundle-audit.d.ts +5 -0
  252. package/daemon/dist/domain/bundle-audit.d.ts.map +1 -1
  253. package/daemon/dist/domain/bundle-audit.js.map +1 -1
  254. package/daemon/dist/domain/bundle-behaviour-inspect.d.ts +4 -0
  255. package/daemon/dist/domain/bundle-behaviour-inspect.d.ts.map +1 -0
  256. package/daemon/dist/domain/bundle-behaviour-inspect.js +56 -0
  257. package/daemon/dist/domain/bundle-behaviour-inspect.js.map +1 -0
  258. package/daemon/dist/domain/bundle-behaviour.d.ts +118 -0
  259. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -0
  260. package/daemon/dist/domain/bundle-behaviour.js +364 -0
  261. package/daemon/dist/domain/bundle-behaviour.js.map +1 -0
  262. package/daemon/dist/domain/bundle-carried-context-pack.d.ts +16 -0
  263. package/daemon/dist/domain/bundle-carried-context-pack.d.ts.map +1 -0
  264. package/daemon/dist/domain/bundle-carried-context-pack.js +67 -0
  265. package/daemon/dist/domain/bundle-carried-context-pack.js.map +1 -0
  266. package/daemon/dist/domain/bundle-carried-project.d.ts +13 -0
  267. package/daemon/dist/domain/bundle-carried-project.d.ts.map +1 -0
  268. package/daemon/dist/domain/bundle-carried-project.js +71 -0
  269. package/daemon/dist/domain/bundle-carried-project.js.map +1 -0
  270. package/daemon/dist/domain/bundle-conflict-detector.js +3 -3
  271. package/daemon/dist/domain/bundle-conflict-detector.js.map +1 -1
  272. package/daemon/dist/domain/bundle-content-routing.d.ts +49 -0
  273. package/daemon/dist/domain/bundle-content-routing.d.ts.map +1 -0
  274. package/daemon/dist/domain/bundle-content-routing.js +246 -0
  275. package/daemon/dist/domain/bundle-content-routing.js.map +1 -0
  276. package/daemon/dist/domain/bundle-context-packs-router.d.ts +7 -2
  277. package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  278. package/daemon/dist/domain/bundle-context-packs-router.js +19 -0
  279. package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  280. package/daemon/dist/domain/bundle-identity.d.ts +27 -0
  281. package/daemon/dist/domain/bundle-identity.d.ts.map +1 -0
  282. package/daemon/dist/domain/bundle-identity.js +34 -0
  283. package/daemon/dist/domain/bundle-identity.js.map +1 -0
  284. package/daemon/dist/domain/bundle-install-context.d.ts +22 -0
  285. package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -0
  286. package/daemon/dist/domain/bundle-install-context.js +51 -0
  287. package/daemon/dist/domain/bundle-install-context.js.map +1 -0
  288. package/daemon/dist/domain/bundle-integrity.d.ts +1 -0
  289. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
  290. package/daemon/dist/domain/bundle-integrity.js +1 -1
  291. package/daemon/dist/domain/bundle-integrity.js.map +1 -1
  292. package/daemon/dist/domain/bundle-source-resolver.d.ts +4 -1
  293. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
  294. package/daemon/dist/domain/bundle-source-resolver.js +73 -19
  295. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
  296. package/daemon/dist/domain/bundle-types.d.ts +37 -0
  297. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  298. package/daemon/dist/domain/bundle-types.js +78 -0
  299. package/daemon/dist/domain/bundle-types.js.map +1 -1
  300. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  301. package/daemon/dist/domain/chat-repository.js +3 -1
  302. package/daemon/dist/domain/chat-repository.js.map +1 -1
  303. package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -1
  304. package/daemon/dist/domain/checkpoint-store.js +2 -2
  305. package/daemon/dist/domain/checkpoint-store.js.map +1 -1
  306. package/daemon/dist/domain/claim-service.d.ts +7 -0
  307. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  308. package/daemon/dist/domain/claim-service.js +6 -2
  309. package/daemon/dist/domain/claim-service.js.map +1 -1
  310. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +38 -12
  311. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  312. package/daemon/dist/domain/claude-compaction-enforcer.js +291 -128
  313. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  314. package/daemon/dist/domain/claude-managed-launch.d.ts +13 -0
  315. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  316. package/daemon/dist/domain/claude-managed-launch.js +31 -4
  317. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  318. package/daemon/dist/domain/codex-daemon-support.d.ts +1 -1
  319. package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -1
  320. package/daemon/dist/domain/codex-daemon-support.js +2 -2
  321. package/daemon/dist/domain/codex-daemon-support.js.map +1 -1
  322. package/daemon/dist/domain/codex-network-default.d.ts +42 -0
  323. package/daemon/dist/domain/codex-network-default.d.ts.map +1 -0
  324. package/daemon/dist/domain/codex-network-default.js +230 -0
  325. package/daemon/dist/domain/codex-network-default.js.map +1 -0
  326. package/daemon/dist/domain/codex-profile-preflight.d.ts +1 -1
  327. package/daemon/dist/domain/codex-profile-preflight.d.ts.map +1 -1
  328. package/daemon/dist/domain/codex-profile-preflight.js +3 -3
  329. package/daemon/dist/domain/codex-profile-preflight.js.map +1 -1
  330. package/daemon/dist/domain/codex-team-workspace.d.ts +8 -0
  331. package/daemon/dist/domain/codex-team-workspace.d.ts.map +1 -0
  332. package/daemon/dist/domain/codex-team-workspace.js +54 -0
  333. package/daemon/dist/domain/codex-team-workspace.js.map +1 -0
  334. package/daemon/dist/domain/codex-thread-id.d.ts +4 -2
  335. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  336. package/daemon/dist/domain/codex-thread-id.js +10 -6
  337. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  338. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  339. package/daemon/dist/domain/context-monitor.js +9 -2
  340. package/daemon/dist/domain/context-monitor.js.map +1 -1
  341. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  342. package/daemon/dist/domain/context-packs/context-pack-library-service.js +13 -2
  343. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  344. package/daemon/dist/domain/context-packs/profile-composer.d.ts +5 -0
  345. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  346. package/daemon/dist/domain/context-packs/profile-composer.js +30 -15
  347. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  348. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +10 -0
  349. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
  350. package/daemon/dist/domain/context-packs/profile-source-resolver.js +43 -8
  351. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
  352. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -1
  353. package/daemon/dist/domain/context-packs/seat-recap-store.js +73 -16
  354. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -1
  355. package/daemon/dist/domain/context-usage-store.d.ts +3 -0
  356. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  357. package/daemon/dist/domain/context-usage-store.js +4 -2
  358. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  359. package/daemon/dist/domain/crash-cart-detect.d.ts.map +1 -1
  360. package/daemon/dist/domain/crash-cart-detect.js +2 -1
  361. package/daemon/dist/domain/crash-cart-detect.js.map +1 -1
  362. package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
  363. package/daemon/dist/domain/crash-cart-discovery.js +4 -2
  364. package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
  365. package/daemon/dist/domain/current-work.d.ts +17 -0
  366. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  367. package/daemon/dist/domain/current-work.js +46 -0
  368. package/daemon/dist/domain/current-work.js.map +1 -1
  369. package/daemon/dist/domain/cwd-resolution.js +1 -1
  370. package/daemon/dist/domain/cwd-resolution.js.map +1 -1
  371. package/daemon/dist/domain/daemon-url.d.ts +7 -0
  372. package/daemon/dist/domain/daemon-url.d.ts.map +1 -0
  373. package/daemon/dist/domain/daemon-url.js +12 -0
  374. package/daemon/dist/domain/daemon-url.js.map +1 -0
  375. package/daemon/dist/domain/daemon-version.d.ts +3 -1
  376. package/daemon/dist/domain/daemon-version.d.ts.map +1 -1
  377. package/daemon/dist/domain/daemon-version.js +6 -1
  378. package/daemon/dist/domain/daemon-version.js.map +1 -1
  379. package/daemon/dist/domain/discovery-types.d.ts +1 -1
  380. package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
  381. package/daemon/dist/domain/event-bus.d.ts +1 -0
  382. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  383. package/daemon/dist/domain/event-bus.js +18 -7
  384. package/daemon/dist/domain/event-bus.js.map +1 -1
  385. package/daemon/dist/domain/event-loop-monitor.d.ts +6 -0
  386. package/daemon/dist/domain/event-loop-monitor.d.ts.map +1 -1
  387. package/daemon/dist/domain/event-loop-monitor.js +13 -0
  388. package/daemon/dist/domain/event-loop-monitor.js.map +1 -1
  389. package/daemon/dist/domain/execution-view.d.ts +3 -3
  390. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  391. package/daemon/dist/domain/execution-view.js +116 -93
  392. package/daemon/dist/domain/execution-view.js.map +1 -1
  393. package/daemon/dist/domain/finite-telemetry.d.ts +74 -0
  394. package/daemon/dist/domain/finite-telemetry.d.ts.map +1 -0
  395. package/daemon/dist/domain/finite-telemetry.js +236 -0
  396. package/daemon/dist/domain/finite-telemetry.js.map +1 -0
  397. package/daemon/dist/domain/gateway/connections-projection.d.ts +1 -1
  398. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +2 -0
  399. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  400. package/daemon/dist/domain/gateway/gateway-subsystem.js +4 -0
  401. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  402. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +9 -7
  403. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
  404. package/daemon/dist/domain/gateway/operator-delivery-engine.js +38 -16
  405. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
  406. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts +45 -0
  407. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -0
  408. package/daemon/dist/domain/gateway/slack/channel-recovery.js +176 -0
  409. package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -0
  410. package/daemon/dist/domain/gateway/slack/inbound.d.ts +74 -4
  411. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  412. package/daemon/dist/domain/gateway/slack/inbound.js +163 -18
  413. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  414. package/daemon/dist/domain/gateway/slack/manifest.js +1 -1
  415. package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -1
  416. package/daemon/dist/domain/gateway/slack/message.d.ts +17 -0
  417. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  418. package/daemon/dist/domain/gateway/slack/message.js +77 -3
  419. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  420. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  421. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  422. package/daemon/dist/domain/gateway/slack/outbound-driver.js +2 -0
  423. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  424. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
  425. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  426. package/daemon/dist/domain/gateway/slack/queue-access.js +15 -5
  427. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  428. package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -1
  429. package/daemon/dist/domain/gateway/slack/secrets.js +5 -4
  430. package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -1
  431. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +17 -10
  432. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  433. package/daemon/dist/domain/gateway/slack/slack-api.js +94 -24
  434. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  435. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +33 -10
  436. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  437. package/daemon/dist/domain/gateway/slack/slack-delivery.js +107 -26
  438. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  439. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +1 -1
  440. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  441. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +121 -28
  442. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  443. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +4 -0
  444. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  445. package/daemon/dist/domain/gateway/slack/socket-inbound.js +14 -1
  446. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  447. package/daemon/dist/domain/gateway/slack/state-store.d.ts +27 -0
  448. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  449. package/daemon/dist/domain/gateway/slack/state-store.js +102 -1
  450. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  451. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  452. package/daemon/dist/domain/gateway/slack/thread-routing.js +7 -2
  453. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  454. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +3 -0
  455. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  456. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +14 -2
  457. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  458. package/daemon/dist/domain/generated-file-hygiene.d.ts +3 -0
  459. package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -0
  460. package/daemon/dist/domain/generated-file-hygiene.js +142 -0
  461. package/daemon/dist/domain/generated-file-hygiene.js.map +1 -0
  462. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  463. package/daemon/dist/domain/graph-projection.js +1 -0
  464. package/daemon/dist/domain/graph-projection.js.map +1 -1
  465. package/daemon/dist/domain/health-checkpoints.d.ts +2 -0
  466. package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -1
  467. package/daemon/dist/domain/health-checkpoints.js +2 -0
  468. package/daemon/dist/domain/health-checkpoints.js.map +1 -1
  469. package/daemon/dist/domain/health-detectors.d.ts +32 -1
  470. package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
  471. package/daemon/dist/domain/health-detectors.js +40 -9
  472. package/daemon/dist/domain/health-detectors.js.map +1 -1
  473. package/daemon/dist/domain/health-diagnosis.d.ts +3 -1
  474. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  475. package/daemon/dist/domain/health-diagnosis.js +6 -3
  476. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  477. package/daemon/dist/domain/health-passive-ceremony.d.ts +5 -1
  478. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  479. package/daemon/dist/domain/health-passive-ceremony.js +20 -4
  480. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  481. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +3 -1
  482. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  483. package/daemon/dist/domain/hosts/remote-daemon-http.js +10 -3
  484. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  485. package/daemon/dist/domain/human-questions.d.ts +41 -0
  486. package/daemon/dist/domain/human-questions.d.ts.map +1 -0
  487. package/daemon/dist/domain/human-questions.js +81 -0
  488. package/daemon/dist/domain/human-questions.js.map +1 -0
  489. package/daemon/dist/domain/install-planner.d.ts.map +1 -1
  490. package/daemon/dist/domain/install-planner.js +17 -0
  491. package/daemon/dist/domain/install-planner.js.map +1 -1
  492. package/daemon/dist/domain/managed-blocks.d.ts +1 -0
  493. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  494. package/daemon/dist/domain/managed-blocks.js +3 -0
  495. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  496. package/daemon/dist/domain/markdown-address.js +1 -1
  497. package/daemon/dist/domain/markdown-address.js.map +1 -1
  498. package/daemon/dist/domain/mission-control/audit-browse.d.ts +5 -0
  499. package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
  500. package/daemon/dist/domain/mission-control/audit-browse.js +11 -1
  501. package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
  502. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +25 -63
  503. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -1
  504. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +34 -100
  505. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
  506. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +1 -0
  507. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  508. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +6 -3
  509. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  510. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +5 -0
  511. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -1
  512. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +33 -2
  513. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  514. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +2 -0
  515. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -1
  516. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +4 -0
  517. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -1
  518. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +33 -2
  519. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -1
  520. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts +27 -0
  521. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts.map +1 -0
  522. package/daemon/dist/domain/mission-control/outbound-url-validator.js +60 -0
  523. package/daemon/dist/domain/mission-control/outbound-url-validator.js.map +1 -0
  524. package/daemon/dist/domain/native-permission-store.d.ts +14 -0
  525. package/daemon/dist/domain/native-permission-store.d.ts.map +1 -1
  526. package/daemon/dist/domain/native-permission-store.js +168 -4
  527. package/daemon/dist/domain/native-permission-store.js.map +1 -1
  528. package/daemon/dist/domain/native-process-executable.d.ts +4 -0
  529. package/daemon/dist/domain/native-process-executable.d.ts.map +1 -0
  530. package/daemon/dist/domain/native-process-executable.js +53 -0
  531. package/daemon/dist/domain/native-process-executable.js.map +1 -0
  532. package/daemon/dist/domain/native-process-lineage.d.ts +11 -2
  533. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  534. package/daemon/dist/domain/native-process-lineage.js +135 -15
  535. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  536. package/daemon/dist/domain/native-resume-probe.d.ts +8 -2
  537. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  538. package/daemon/dist/domain/native-resume-probe.js +55 -11
  539. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  540. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  541. package/daemon/dist/domain/node-inventory.js +91 -44
  542. package/daemon/dist/domain/node-inventory.js.map +1 -1
  543. package/daemon/dist/domain/node-launcher.d.ts +4 -0
  544. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  545. package/daemon/dist/domain/node-launcher.js +4 -1
  546. package/daemon/dist/domain/node-launcher.js.map +1 -1
  547. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +1 -0
  548. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  549. package/daemon/dist/domain/periodic-snapshot-scheduler.js +25 -0
  550. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  551. package/daemon/dist/domain/permission-drift.d.ts +1 -0
  552. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  553. package/daemon/dist/domain/permission-drift.js +13 -1
  554. package/daemon/dist/domain/permission-drift.js.map +1 -1
  555. package/daemon/dist/domain/permission-policy/policy-ref.d.ts +6 -1
  556. package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -1
  557. package/daemon/dist/domain/permission-policy/policy-ref.js +16 -4
  558. package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -1
  559. package/daemon/dist/domain/permission-policy/policy-spec.d.ts +1 -1
  560. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
  561. package/daemon/dist/domain/permission-policy/policy-spec.js +2 -2
  562. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
  563. package/daemon/dist/domain/plugin-discovery-service.d.ts +5 -6
  564. package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  565. package/daemon/dist/domain/plugin-discovery-service.js +14 -8
  566. package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  567. package/daemon/dist/domain/pod-bundle-assembler.d.ts +6 -2
  568. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  569. package/daemon/dist/domain/pod-bundle-assembler.js +58 -15
  570. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  571. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +6 -0
  572. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  573. package/daemon/dist/domain/policies/parked-owner-consumer.js +11 -0
  574. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  575. package/daemon/dist/domain/profile-resolver.d.ts +4 -2
  576. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  577. package/daemon/dist/domain/profile-resolver.js +78 -9
  578. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  579. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  580. package/daemon/dist/domain/project-lifecycle-compiler.js +10 -2
  581. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  582. package/daemon/dist/domain/projection-planner.d.ts +11 -0
  583. package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
  584. package/daemon/dist/domain/projection-planner.js +14 -5
  585. package/daemon/dist/domain/projection-planner.js.map +1 -1
  586. package/daemon/dist/domain/proof/judgments.d.ts +3 -0
  587. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  588. package/daemon/dist/domain/proof/judgments.js +13 -8
  589. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  590. package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -1
  591. package/daemon/dist/domain/proof/source-watch.js +45 -27
  592. package/daemon/dist/domain/proof/source-watch.js.map +1 -1
  593. package/daemon/dist/domain/provider/host-usage-rollup.js +9 -5
  594. package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -1
  595. package/daemon/dist/domain/ps-projection.d.ts +22 -3
  596. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  597. package/daemon/dist/domain/ps-projection.js +50 -11
  598. package/daemon/dist/domain/ps-projection.js.map +1 -1
  599. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  600. package/daemon/dist/domain/queue-recovery.js +7 -1
  601. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  602. package/daemon/dist/domain/queue-repository.d.ts +98 -6
  603. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  604. package/daemon/dist/domain/queue-repository.js +337 -43
  605. package/daemon/dist/domain/queue-repository.js.map +1 -1
  606. package/daemon/dist/domain/queue-stuck-sweep.d.ts +3 -0
  607. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  608. package/daemon/dist/domain/queue-stuck-sweep.js +111 -26
  609. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  610. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  611. package/daemon/dist/domain/queue-transition-log.js +12 -10
  612. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  613. package/daemon/dist/domain/queue-wake-ladder.d.ts +8 -7
  614. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  615. package/daemon/dist/domain/queue-wake-ladder.js +278 -19
  616. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  617. package/daemon/dist/domain/queue-wake-repository.d.ts +10 -9
  618. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  619. package/daemon/dist/domain/queue-wake-repository.js +31 -11
  620. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  621. package/daemon/dist/domain/readiness-timeout.d.ts +7 -0
  622. package/daemon/dist/domain/readiness-timeout.d.ts.map +1 -0
  623. package/daemon/dist/domain/readiness-timeout.js +19 -0
  624. package/daemon/dist/domain/readiness-timeout.js.map +1 -0
  625. package/daemon/dist/domain/reply-to-choice.d.ts +26 -0
  626. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -0
  627. package/daemon/dist/domain/reply-to-choice.js +45 -0
  628. package/daemon/dist/domain/reply-to-choice.js.map +1 -0
  629. package/daemon/dist/domain/request-phase-observer.d.ts +69 -0
  630. package/daemon/dist/domain/request-phase-observer.d.ts.map +1 -0
  631. package/daemon/dist/domain/request-phase-observer.js +206 -0
  632. package/daemon/dist/domain/request-phase-observer.js.map +1 -0
  633. package/daemon/dist/domain/restore-check-service.d.ts +27 -8
  634. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  635. package/daemon/dist/domain/restore-check-service.js +202 -126
  636. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  637. package/daemon/dist/domain/restore-orchestrator.d.ts +5 -2
  638. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  639. package/daemon/dist/domain/restore-orchestrator.js +119 -216
  640. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  641. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  642. package/daemon/dist/domain/restore-plan-preview.js +2 -6
  643. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  644. package/daemon/dist/domain/restore-preconditions.d.ts +12 -0
  645. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -0
  646. package/daemon/dist/domain/restore-preconditions.js +202 -0
  647. package/daemon/dist/domain/restore-preconditions.js.map +1 -0
  648. package/daemon/dist/domain/resume-metadata-refresher.d.ts +20 -4
  649. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  650. package/daemon/dist/domain/resume-metadata-refresher.js +70 -8
  651. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  652. package/daemon/dist/domain/resume-token-capture.d.ts +22 -1
  653. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  654. package/daemon/dist/domain/resume-token-capture.js +32 -4
  655. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  656. package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
  657. package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
  658. package/daemon/dist/domain/resume-token-validation.js +24 -24
  659. package/daemon/dist/domain/resume-token-validation.js.map +1 -1
  660. package/daemon/dist/domain/rig-mode/operating-posture.d.ts +17 -1
  661. package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
  662. package/daemon/dist/domain/rig-mode/operating-posture.js +53 -15
  663. package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
  664. package/daemon/dist/domain/rig-repository.d.ts +15 -5
  665. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  666. package/daemon/dist/domain/rig-repository.js +70 -6
  667. package/daemon/dist/domain/rig-repository.js.map +1 -1
  668. package/daemon/dist/domain/rig-teardown.d.ts +3 -0
  669. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  670. package/daemon/dist/domain/rig-teardown.js +105 -19
  671. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  672. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  673. package/daemon/dist/domain/rigspec-codec.js +8 -0
  674. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  675. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  676. package/daemon/dist/domain/rigspec-exporter.js +5 -0
  677. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  678. package/daemon/dist/domain/rigspec-instantiator.d.ts +8 -3
  679. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  680. package/daemon/dist/domain/rigspec-instantiator.js +82 -20
  681. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  682. package/daemon/dist/domain/rigspec-preflight.d.ts +5 -2
  683. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  684. package/daemon/dist/domain/rigspec-preflight.js +36 -13
  685. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  686. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  687. package/daemon/dist/domain/rigspec-schema.js +19 -3
  688. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  689. package/daemon/dist/domain/route-timing-recorder.d.ts.map +1 -1
  690. package/daemon/dist/domain/route-timing-recorder.js +2 -0
  691. package/daemon/dist/domain/route-timing-recorder.js.map +1 -1
  692. package/daemon/dist/domain/runtime-adapter.d.ts +19 -3
  693. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  694. package/daemon/dist/domain/runtime-adapter.js +1 -0
  695. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  696. package/daemon/dist/domain/runtime-verifier.d.ts +3 -1
  697. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  698. package/daemon/dist/domain/runtime-verifier.js +10 -1
  699. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  700. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -4
  701. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  702. package/daemon/dist/domain/scope/scaffold-placeholder.js +4 -4
  703. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  704. package/daemon/dist/domain/seat-activity-service.d.ts +9 -4
  705. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  706. package/daemon/dist/domain/seat-activity-service.js +73 -22
  707. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  708. package/daemon/dist/domain/seat-attention-reconciler.d.ts +1 -0
  709. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  710. package/daemon/dist/domain/seat-attention-reconciler.js +38 -9
  711. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  712. package/daemon/dist/domain/seat-handover-service.d.ts +8 -0
  713. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  714. package/daemon/dist/domain/seat-handover-service.js +12 -11
  715. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  716. package/daemon/dist/domain/seat-identity-reconciler.d.ts +1 -1
  717. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  718. package/daemon/dist/domain/seat-identity-reconciler.js +99 -18
  719. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  720. package/daemon/dist/domain/seat-launch-environment.d.ts +26 -0
  721. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -0
  722. package/daemon/dist/domain/seat-launch-environment.js +182 -0
  723. package/daemon/dist/domain/seat-launch-environment.js.map +1 -0
  724. package/daemon/dist/domain/seat-lifecycle-service.d.ts +11 -0
  725. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  726. package/daemon/dist/domain/seat-lifecycle-service.js +41 -2
  727. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  728. package/daemon/dist/domain/seat-status-service.d.ts +2 -1
  729. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  730. package/daemon/dist/domain/seat-status-service.js +10 -6
  731. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  732. package/daemon/dist/domain/seat-structural-activity-service.d.ts +5 -4
  733. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  734. package/daemon/dist/domain/seat-structural-activity-service.js +23 -9
  735. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  736. package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
  737. package/daemon/dist/domain/seat-switch-client-service.js +3 -2
  738. package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
  739. package/daemon/dist/domain/service-orchestrator.d.ts +1 -0
  740. package/daemon/dist/domain/service-orchestrator.d.ts.map +1 -1
  741. package/daemon/dist/domain/service-orchestrator.js +4 -0
  742. package/daemon/dist/domain/service-orchestrator.js.map +1 -1
  743. package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
  744. package/daemon/dist/domain/services-readiness.js +6 -2
  745. package/daemon/dist/domain/services-readiness.js.map +1 -1
  746. package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
  747. package/daemon/dist/domain/session-fingerprinter.js +16 -1
  748. package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
  749. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  750. package/daemon/dist/domain/session-name.js +6 -0
  751. package/daemon/dist/domain/session-name.js.map +1 -1
  752. package/daemon/dist/domain/session-registry.d.ts +3 -0
  753. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  754. package/daemon/dist/domain/session-registry.js +7 -0
  755. package/daemon/dist/domain/session-registry.js.map +1 -1
  756. package/daemon/dist/domain/session-transport.d.ts +35 -1
  757. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  758. package/daemon/dist/domain/session-transport.js +450 -158
  759. package/daemon/dist/domain/session-transport.js.map +1 -1
  760. package/daemon/dist/domain/skill-catalog.d.ts +19 -0
  761. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  762. package/daemon/dist/domain/skill-catalog.js +166 -17
  763. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  764. package/daemon/dist/domain/skill-discovery.d.ts +1 -1
  765. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  766. package/daemon/dist/domain/skill-discovery.js +6 -0
  767. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  768. package/daemon/dist/domain/slow-op-recorder.d.ts +5 -0
  769. package/daemon/dist/domain/slow-op-recorder.d.ts.map +1 -1
  770. package/daemon/dist/domain/slow-op-recorder.js +34 -1
  771. package/daemon/dist/domain/slow-op-recorder.js.map +1 -1
  772. package/daemon/dist/domain/snapshot-repository.d.ts +2 -1
  773. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  774. package/daemon/dist/domain/snapshot-repository.js +39 -15
  775. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  776. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  777. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  778. package/daemon/dist/domain/spec-library-workflow-scanner.js +70 -11
  779. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  780. package/daemon/dist/domain/spec-validation-service.d.ts +6 -0
  781. package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -1
  782. package/daemon/dist/domain/spec-validation-service.js +16 -1
  783. package/daemon/dist/domain/spec-validation-service.js.map +1 -1
  784. package/daemon/dist/domain/startup-orchestrator.d.ts +38 -5
  785. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  786. package/daemon/dist/domain/startup-orchestrator.js +275 -64
  787. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  788. package/daemon/dist/domain/startup-proof.d.ts +7 -0
  789. package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  790. package/daemon/dist/domain/startup-proof.js +7 -0
  791. package/daemon/dist/domain/startup-proof.js.map +1 -1
  792. package/daemon/dist/domain/startup-submission-evidence.d.ts +45 -0
  793. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -0
  794. package/daemon/dist/domain/startup-submission-evidence.js +84 -0
  795. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -0
  796. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  797. package/daemon/dist/domain/startup-validation.js +4 -0
  798. package/daemon/dist/domain/startup-validation.js.map +1 -1
  799. package/daemon/dist/domain/successor-session-launcher.d.ts +14 -3
  800. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  801. package/daemon/dist/domain/successor-session-launcher.js +19 -9
  802. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  803. package/daemon/dist/domain/system-world.d.ts +3 -0
  804. package/daemon/dist/domain/system-world.d.ts.map +1 -1
  805. package/daemon/dist/domain/system-world.js +24 -21
  806. package/daemon/dist/domain/system-world.js.map +1 -1
  807. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
  808. package/daemon/dist/domain/terminal/cmux-provider-adapter.js +2 -3
  809. package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
  810. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +19 -4
  811. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  812. package/daemon/dist/domain/terminal/herdr-adapter.js +102 -8
  813. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  814. package/daemon/dist/domain/terminal/terminal-provider.d.ts +2 -0
  815. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  816. package/daemon/dist/domain/terminal/terminal-service.d.ts +10 -0
  817. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  818. package/daemon/dist/domain/terminal/terminal-service.js +75 -6
  819. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  820. package/daemon/dist/domain/terminal/view-composer.d.ts +6 -0
  821. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  822. package/daemon/dist/domain/terminal/view-composer.js +6 -3
  823. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  824. package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -1
  825. package/daemon/dist/domain/tmux-discovery-scanner.js +7 -2
  826. package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -1
  827. package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -1
  828. package/daemon/dist/domain/tmux-option-defaults.js +5 -0
  829. package/daemon/dist/domain/tmux-option-defaults.js.map +1 -1
  830. package/daemon/dist/domain/topology/remote-up-leaf.d.ts +1 -0
  831. package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -1
  832. package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -1
  833. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  834. package/daemon/dist/domain/transcript-capture.js +1 -1
  835. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  836. package/daemon/dist/domain/transcript-rotation.d.ts +26 -5
  837. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  838. package/daemon/dist/domain/transcript-rotation.js +176 -25
  839. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  840. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  841. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  842. package/daemon/dist/domain/transcript-store.js +14 -6
  843. package/daemon/dist/domain/transcript-store.js.map +1 -1
  844. package/daemon/dist/domain/types.d.ts +24 -5
  845. package/daemon/dist/domain/types.d.ts.map +1 -1
  846. package/daemon/dist/domain/types.js.map +1 -1
  847. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  848. package/daemon/dist/domain/usage-series.js +11 -6
  849. package/daemon/dist/domain/usage-series.js.map +1 -1
  850. package/daemon/dist/domain/user-settings/settings-store.d.ts +3 -1
  851. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  852. package/daemon/dist/domain/user-settings/settings-store.js +101 -6
  853. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  854. package/daemon/dist/domain/view-projector.d.ts +11 -6
  855. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  856. package/daemon/dist/domain/view-projector.js +2 -6
  857. package/daemon/dist/domain/view-projector.js.map +1 -1
  858. package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
  859. package/daemon/dist/domain/workflow-spec-cache.d.ts +29 -7
  860. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  861. package/daemon/dist/domain/workflow-spec-cache.js +103 -14
  862. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  863. package/daemon/dist/domain/workspace/project-catalog.d.ts +20 -0
  864. package/daemon/dist/domain/workspace/project-catalog.d.ts.map +1 -1
  865. package/daemon/dist/domain/workspace/project-catalog.js +92 -0
  866. package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
  867. package/daemon/dist/domain/workspace/project-registration.d.ts +49 -0
  868. package/daemon/dist/domain/workspace/project-registration.d.ts.map +1 -0
  869. package/daemon/dist/domain/workspace/project-registration.js +251 -0
  870. package/daemon/dist/domain/workspace/project-registration.js.map +1 -0
  871. package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
  872. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  873. package/daemon/dist/domain/workspace/workspace-resolver.js +1 -1
  874. package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -1
  875. package/daemon/dist/health-detectors-surface.d.ts +1 -1
  876. package/daemon/dist/health-detectors-surface.d.ts.map +1 -1
  877. package/daemon/dist/health-detectors-surface.js.map +1 -1
  878. package/daemon/dist/index.d.ts +4 -4
  879. package/daemon/dist/index.d.ts.map +1 -1
  880. package/daemon/dist/index.js +12 -7
  881. package/daemon/dist/index.js.map +1 -1
  882. package/daemon/dist/middleware/json-body-error.d.ts +17 -0
  883. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -0
  884. package/daemon/dist/middleware/json-body-error.js +42 -0
  885. package/daemon/dist/middleware/json-body-error.js.map +1 -0
  886. package/daemon/dist/project-catalog-surface.d.ts +2 -1
  887. package/daemon/dist/project-catalog-surface.d.ts.map +1 -1
  888. package/daemon/dist/project-catalog-surface.js +1 -1
  889. package/daemon/dist/project-catalog-surface.js.map +1 -1
  890. package/daemon/dist/routes/activity.d.ts.map +1 -1
  891. package/daemon/dist/routes/activity.js +85 -6
  892. package/daemon/dist/routes/activity.js.map +1 -1
  893. package/daemon/dist/routes/attention.d.ts.map +1 -1
  894. package/daemon/dist/routes/attention.js +7 -1
  895. package/daemon/dist/routes/attention.js.map +1 -1
  896. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  897. package/daemon/dist/routes/bundles.js +197 -407
  898. package/daemon/dist/routes/bundles.js.map +1 -1
  899. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  900. package/daemon/dist/routes/compaction.js +44 -4
  901. package/daemon/dist/routes/compaction.js.map +1 -1
  902. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  903. package/daemon/dist/routes/context-packs.js +10 -2
  904. package/daemon/dist/routes/context-packs.js.map +1 -1
  905. package/daemon/dist/routes/env.d.ts.map +1 -1
  906. package/daemon/dist/routes/env.js +14 -4
  907. package/daemon/dist/routes/env.js.map +1 -1
  908. package/daemon/dist/routes/files.js +2 -2
  909. package/daemon/dist/routes/files.js.map +1 -1
  910. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  911. package/daemon/dist/routes/gateway.js +11 -1
  912. package/daemon/dist/routes/gateway.js.map +1 -1
  913. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  914. package/daemon/dist/routes/hosts.js +51 -12
  915. package/daemon/dist/routes/hosts.js.map +1 -1
  916. package/daemon/dist/routes/mission-control.d.ts.map +1 -1
  917. package/daemon/dist/routes/mission-control.js +6 -2
  918. package/daemon/dist/routes/mission-control.js.map +1 -1
  919. package/daemon/dist/routes/missions.d.ts.map +1 -1
  920. package/daemon/dist/routes/missions.js +17 -5
  921. package/daemon/dist/routes/missions.js.map +1 -1
  922. package/daemon/dist/routes/plugins.d.ts.map +1 -1
  923. package/daemon/dist/routes/plugins.js +5 -1
  924. package/daemon/dist/routes/plugins.js.map +1 -1
  925. package/daemon/dist/routes/projects.d.ts.map +1 -1
  926. package/daemon/dist/routes/projects.js +4 -2
  927. package/daemon/dist/routes/projects.js.map +1 -1
  928. package/daemon/dist/routes/proof.d.ts.map +1 -1
  929. package/daemon/dist/routes/proof.js +9 -2
  930. package/daemon/dist/routes/proof.js.map +1 -1
  931. package/daemon/dist/routes/ps.d.ts.map +1 -1
  932. package/daemon/dist/routes/ps.js +18 -0
  933. package/daemon/dist/routes/ps.js.map +1 -1
  934. package/daemon/dist/routes/queue.d.ts.map +1 -1
  935. package/daemon/dist/routes/queue.js +150 -67
  936. package/daemon/dist/routes/queue.js.map +1 -1
  937. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  938. package/daemon/dist/routes/restore-check.js +40 -1
  939. package/daemon/dist/routes/restore-check.js.map +1 -1
  940. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  941. package/daemon/dist/routes/rigs.js +4 -3
  942. package/daemon/dist/routes/rigs.js.map +1 -1
  943. package/daemon/dist/routes/rigspec.d.ts.map +1 -1
  944. package/daemon/dist/routes/rigspec.js +11 -12
  945. package/daemon/dist/routes/rigspec.js.map +1 -1
  946. package/daemon/dist/routes/seat.d.ts.map +1 -1
  947. package/daemon/dist/routes/seat.js +22 -4
  948. package/daemon/dist/routes/seat.js.map +1 -1
  949. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  950. package/daemon/dist/routes/sessions.js +3 -2
  951. package/daemon/dist/routes/sessions.js.map +1 -1
  952. package/daemon/dist/routes/telemetry.d.ts +2 -0
  953. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  954. package/daemon/dist/routes/telemetry.js +22 -1
  955. package/daemon/dist/routes/telemetry.js.map +1 -1
  956. package/daemon/dist/routes/terminal-ws.d.ts +1 -2
  957. package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
  958. package/daemon/dist/routes/terminal-ws.js +1 -2
  959. package/daemon/dist/routes/terminal-ws.js.map +1 -1
  960. package/daemon/dist/routes/up.js +11 -6
  961. package/daemon/dist/routes/up.js.map +1 -1
  962. package/daemon/dist/routes/views.js +2 -2
  963. package/daemon/dist/routes/views.js.map +1 -1
  964. package/daemon/dist/server.d.ts +3 -0
  965. package/daemon/dist/server.d.ts.map +1 -1
  966. package/daemon/dist/server.js +11 -3
  967. package/daemon/dist/server.js.map +1 -1
  968. package/daemon/dist/spec-validation-surface.d.ts +4 -0
  969. package/daemon/dist/spec-validation-surface.d.ts.map +1 -0
  970. package/daemon/dist/spec-validation-surface.js +4 -0
  971. package/daemon/dist/spec-validation-surface.js.map +1 -0
  972. package/daemon/dist/startup.d.ts +1 -1
  973. package/daemon/dist/startup.d.ts.map +1 -1
  974. package/daemon/dist/startup.js +166 -57
  975. package/daemon/dist/startup.js.map +1 -1
  976. package/daemon/dist/system-world-surface.d.ts +1 -1
  977. package/daemon/dist/system-world-surface.d.ts.map +1 -1
  978. package/daemon/dist/system-world-surface.js +1 -1
  979. package/daemon/dist/system-world-surface.js.map +1 -1
  980. package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
  981. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  982. package/daemon/dist/terminal/TerminalSessionBroker.js +8 -1
  983. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  984. package/daemon/docs/reference/agent-spec.md +145 -64
  985. package/daemon/docs/reference/agent-startup-guide.md +187 -35
  986. package/daemon/docs/reference/agent-state-taxonomy.md +44 -13
  987. package/daemon/docs/reference/browser-access.md +8 -4
  988. package/daemon/docs/reference/bundle-formats.md +207 -0
  989. package/daemon/docs/reference/chain-file-convention.md +16 -7
  990. package/daemon/docs/reference/developing.md +24 -9
  991. package/daemon/docs/reference/edge-types.md +18 -10
  992. package/daemon/docs/reference/getting-started.md +426 -111
  993. package/daemon/docs/reference/health-diagnosis.md +23 -8
  994. package/daemon/docs/reference/help.md +40 -10
  995. package/daemon/docs/reference/host-resources.md +61 -0
  996. package/daemon/docs/reference/instance-layout.md +11 -0
  997. package/daemon/docs/reference/inventory-request-diagnostics.md +75 -0
  998. package/daemon/docs/reference/knowledge-maturity.md +3 -1
  999. package/daemon/docs/reference/legacy-topology-migration.md +4 -2
  1000. package/daemon/docs/reference/lore-routing.md +3 -1
  1001. package/daemon/docs/reference/mission-install.md +3 -1
  1002. package/daemon/docs/reference/non-interruptive-mode.md +60 -0
  1003. package/daemon/docs/reference/planning-dial.md +2 -1
  1004. package/daemon/docs/reference/product-journey-sdlc.md +11 -6
  1005. package/daemon/docs/reference/product-management-pass.md +3 -1
  1006. package/daemon/docs/reference/project-workspace.md +80 -3
  1007. package/daemon/docs/reference/publishing-a-rig-bundle.md +144 -0
  1008. package/daemon/docs/reference/refocus-channel.md +14 -5
  1009. package/daemon/docs/reference/release-boundary.md +7 -3
  1010. package/daemon/docs/reference/rig-bundle.md +271 -42
  1011. package/daemon/docs/reference/rig-spec.md +180 -29
  1012. package/daemon/docs/reference/rosters.md +60 -0
  1013. package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +546 -0
  1014. package/daemon/docs/reference/schemas/bundle-common.v1.schema.json +110 -0
  1015. package/daemon/docs/reference/schemas/bundle-configurations.v1.schema.json +67 -0
  1016. package/daemon/docs/reference/schemas/bundle-status.v1.schema.json +323 -0
  1017. package/daemon/docs/reference/schemas/fixtures/identity-vectors.json +80 -0
  1018. package/daemon/docs/reference/schemas/fixtures/invalid/behaviour/not-generated-with-sections.json +60 -0
  1019. package/daemon/docs/reference/schemas/fixtures/invalid/configurations/spaced-member.configurations.yaml +6 -0
  1020. package/daemon/docs/reference/schemas/fixtures/invalid/registry/listed-with-withdrawn-on.yaml +21 -0
  1021. package/daemon/docs/reference/schemas/fixtures/invalid/registry/missing-source.yaml +16 -0
  1022. package/daemon/docs/reference/schemas/fixtures/invalid/registry/parent-folder.yaml +20 -0
  1023. package/daemon/docs/reference/schemas/fixtures/invalid/registry/short-commit.yaml +20 -0
  1024. package/daemon/docs/reference/schemas/fixtures/invalid/registry/withdrawn-without-date.yaml +20 -0
  1025. package/daemon/docs/reference/schemas/fixtures/invalid/run-record/harness-check-with-configuration.json +75 -0
  1026. package/daemon/docs/reference/schemas/fixtures/invalid/run-record/unlabelable-platform.json +97 -0
  1027. package/daemon/docs/reference/schemas/fixtures/invalid/status/hand-edited-notice.json +61 -0
  1028. package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-with-assistance.json +62 -0
  1029. package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-without-records.json +59 -0
  1030. package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-harness-with-result.json +61 -0
  1031. package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-listing-with-label.json +61 -0
  1032. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/custom-not-generated.json +22 -0
  1033. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/legacy-archive-unknown-identity.json +53 -0
  1034. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-default.json +101 -0
  1035. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-yolo.json +102 -0
  1036. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/openrig-dev.recommended.json +258 -0
  1037. package/daemon/docs/reference/schemas/fixtures/valid/configurations/openrig-dev.configurations.yaml +12 -0
  1038. package/daemon/docs/reference/schemas/fixtures/valid/registry/openrig-dev.yaml +20 -0
  1039. package/daemon/docs/reference/schemas/fixtures/valid/registry/withdrawn.yaml +21 -0
  1040. package/daemon/docs/reference/schemas/fixtures/valid/run-record/pi-harness-check-blocked.json +74 -0
  1041. package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-assisted-pass.json +97 -0
  1042. package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-pass.json +97 -0
  1043. package/daemon/docs/reference/schemas/fixtures/valid/run-record/withdraws-earlier.json +99 -0
  1044. package/daemon/docs/reference/schemas/fixtures/valid/status/status.json +61 -0
  1045. package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +139 -0
  1046. package/daemon/docs/reference/schemas/run-record.v1.schema.json +315 -0
  1047. package/daemon/docs/reference/scoped-operating-posture.md +17 -9
  1048. package/daemon/docs/reference/sdlc-conventions.md +47 -28
  1049. package/daemon/docs/reference/slack-app-setup.md +58 -7
  1050. package/daemon/docs/reference/stream-classifier-worker.md +21 -8
  1051. package/daemon/docs/reference/telemetry.md +114 -0
  1052. package/daemon/docs/reference/worktree-builds.md +12 -6
  1053. package/daemon/policies/builtin/auto.policy.md +24 -0
  1054. package/daemon/specs/agents/development/implementer/agent.yaml +2 -2
  1055. package/daemon/specs/agents/development/qa/agent.yaml +1 -1
  1056. package/daemon/specs/agents/product-management/pm/agent.yaml +10 -0
  1057. package/daemon/specs/agents/shared/agent.yaml +1 -1
  1058. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +0 -6
  1059. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
  1060. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
  1061. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +5 -5
  1062. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +9 -4
  1063. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +12 -9
  1064. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +29 -29
  1065. package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
  1066. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +0 -5
  1067. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  1068. package/daemon/specs/agents/shared/skills/process/agent-browser/OPENRIG.md +1 -1
  1069. package/daemon/specs/agents/shared/skills/process/systematic-debugging/SKILL.md +0 -2
  1070. package/daemon/specs/rigs/focused/{adversarial-review → code-review}/rig.yaml +1 -1
  1071. package/daemon/specs/rigs/focused/pm/CULTURE.md +21 -0
  1072. package/daemon/specs/rigs/focused/{pm-team → pm}/rig.yaml +5 -5
  1073. package/daemon/specs/rigs/focused/{research-team → research}/rig.yaml +1 -1
  1074. package/daemon/specs/rigs/launch/factory/CULTURE.md +96 -0
  1075. package/daemon/specs/rigs/launch/factory/guidance/advisor-role.md +10 -0
  1076. package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +23 -0
  1077. package/daemon/specs/rigs/launch/{demo → factory}/rig.yaml +46 -35
  1078. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/instance/CRAFT.md +1 -1
  1079. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/CRAFT.md +2 -2
  1080. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/ORCHESTRATION-CRAFT.md +3 -3
  1081. package/daemon/specs/rigs/{preview/product-team/topology/seats/dev1-qa → launch/factory/topology/seats/dev-qa}/CRAFT.md +1 -1
  1082. package/daemon/specs/rigs/{preview/product-team/topology/seats/orch1-lead → launch/factory/topology/seats/orch-lead}/CRAFT.md +1 -1
  1083. package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r1 → launch/factory/topology/seats/review-r1}/CRAFT.md +1 -1
  1084. package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r2 → launch/factory/topology/seats/review-r2}/CRAFT.md +1 -1
  1085. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -8
  1086. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +37 -0
  1087. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +12 -13
  1088. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -8
  1089. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +167 -4
  1090. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +30 -7
  1091. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -8
  1092. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +37 -0
  1093. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +41 -0
  1094. package/daemon/specs/rigs/launch/starter/CULTURE.md +39 -0
  1095. package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +23 -0
  1096. package/daemon/specs/rigs/launch/{first-project-mixed → starter}/rig.yaml +11 -8
  1097. package/dist/atomic-text-write.d.ts +3 -0
  1098. package/dist/atomic-text-write.d.ts.map +1 -0
  1099. package/dist/atomic-text-write.js +79 -0
  1100. package/dist/atomic-text-write.js.map +1 -0
  1101. package/dist/build-info.js +3 -3
  1102. package/dist/bundle-behaviour.d.ts +10 -0
  1103. package/dist/bundle-behaviour.d.ts.map +1 -0
  1104. package/dist/bundle-behaviour.js +72 -0
  1105. package/dist/bundle-behaviour.js.map +1 -0
  1106. package/dist/cli-error.d.ts.map +1 -1
  1107. package/dist/cli-error.js +15 -2
  1108. package/dist/cli-error.js.map +1 -1
  1109. package/dist/client.d.ts +14 -1
  1110. package/dist/client.d.ts.map +1 -1
  1111. package/dist/client.js +29 -4
  1112. package/dist/client.js.map +1 -1
  1113. package/dist/commands/agent-image.d.ts.map +1 -1
  1114. package/dist/commands/agent-image.js +2 -0
  1115. package/dist/commands/agent-image.js.map +1 -1
  1116. package/dist/commands/ask.d.ts.map +1 -1
  1117. package/dist/commands/ask.js +10 -1
  1118. package/dist/commands/ask.js.map +1 -1
  1119. package/dist/commands/bootstrap.d.ts.map +1 -1
  1120. package/dist/commands/bootstrap.js +34 -11
  1121. package/dist/commands/bootstrap.js.map +1 -1
  1122. package/dist/commands/broadcast.js +1 -1
  1123. package/dist/commands/broadcast.js.map +1 -1
  1124. package/dist/commands/bundle.d.ts +12 -0
  1125. package/dist/commands/bundle.d.ts.map +1 -1
  1126. package/dist/commands/bundle.js +286 -21
  1127. package/dist/commands/bundle.js.map +1 -1
  1128. package/dist/commands/capture.js +4 -4
  1129. package/dist/commands/capture.js.map +1 -1
  1130. package/dist/commands/chatroom.d.ts.map +1 -1
  1131. package/dist/commands/chatroom.js +22 -1
  1132. package/dist/commands/chatroom.js.map +1 -1
  1133. package/dist/commands/compact-plan.d.ts.map +1 -1
  1134. package/dist/commands/compact-plan.js +36 -7
  1135. package/dist/commands/compact-plan.js.map +1 -1
  1136. package/dist/commands/compact.d.ts.map +1 -1
  1137. package/dist/commands/compact.js +24 -4
  1138. package/dist/commands/compact.js.map +1 -1
  1139. package/dist/commands/config.d.ts.map +1 -1
  1140. package/dist/commands/config.js +5 -4
  1141. package/dist/commands/config.js.map +1 -1
  1142. package/dist/commands/context.d.ts +3 -1
  1143. package/dist/commands/context.d.ts.map +1 -1
  1144. package/dist/commands/context.js +85 -32
  1145. package/dist/commands/context.js.map +1 -1
  1146. package/dist/commands/crash-cart.d.ts.map +1 -1
  1147. package/dist/commands/crash-cart.js +2 -1
  1148. package/dist/commands/crash-cart.js.map +1 -1
  1149. package/dist/commands/daemon.d.ts +13 -1
  1150. package/dist/commands/daemon.d.ts.map +1 -1
  1151. package/dist/commands/daemon.js +36 -18
  1152. package/dist/commands/daemon.js.map +1 -1
  1153. package/dist/commands/destroy.d.ts.map +1 -1
  1154. package/dist/commands/destroy.js +3 -2
  1155. package/dist/commands/destroy.js.map +1 -1
  1156. package/dist/commands/discover.d.ts.map +1 -1
  1157. package/dist/commands/discover.js +2 -4
  1158. package/dist/commands/discover.js.map +1 -1
  1159. package/dist/commands/doctor.d.ts.map +1 -1
  1160. package/dist/commands/doctor.js +10 -4
  1161. package/dist/commands/doctor.js.map +1 -1
  1162. package/dist/commands/down.d.ts.map +1 -1
  1163. package/dist/commands/down.js +7 -1
  1164. package/dist/commands/down.js.map +1 -1
  1165. package/dist/commands/env.d.ts.map +1 -1
  1166. package/dist/commands/env.js +9 -1
  1167. package/dist/commands/env.js.map +1 -1
  1168. package/dist/commands/export.js +2 -2
  1169. package/dist/commands/export.js.map +1 -1
  1170. package/dist/commands/gateway.d.ts.map +1 -1
  1171. package/dist/commands/gateway.js +23 -3
  1172. package/dist/commands/gateway.js.map +1 -1
  1173. package/dist/commands/health.d.ts.map +1 -1
  1174. package/dist/commands/health.js +13 -1
  1175. package/dist/commands/health.js.map +1 -1
  1176. package/dist/commands/host.d.ts +11 -0
  1177. package/dist/commands/host.d.ts.map +1 -1
  1178. package/dist/commands/host.js +38 -4
  1179. package/dist/commands/host.js.map +1 -1
  1180. package/dist/commands/import.d.ts.map +1 -1
  1181. package/dist/commands/import.js +2 -0
  1182. package/dist/commands/import.js.map +1 -1
  1183. package/dist/commands/mcp.d.ts.map +1 -1
  1184. package/dist/commands/mcp.js +25 -12
  1185. package/dist/commands/mcp.js.map +1 -1
  1186. package/dist/commands/plugin.d.ts.map +1 -1
  1187. package/dist/commands/plugin.js +12 -2
  1188. package/dist/commands/plugin.js.map +1 -1
  1189. package/dist/commands/policy.d.ts.map +1 -1
  1190. package/dist/commands/policy.js +3 -2
  1191. package/dist/commands/policy.js.map +1 -1
  1192. package/dist/commands/project-jev.js +1 -1
  1193. package/dist/commands/project-jev.js.map +1 -1
  1194. package/dist/commands/project.d.ts.map +1 -1
  1195. package/dist/commands/project.js +5 -3
  1196. package/dist/commands/project.js.map +1 -1
  1197. package/dist/commands/ps.d.ts +2 -0
  1198. package/dist/commands/ps.d.ts.map +1 -1
  1199. package/dist/commands/ps.js +109 -37
  1200. package/dist/commands/ps.js.map +1 -1
  1201. package/dist/commands/queue.d.ts +2 -0
  1202. package/dist/commands/queue.d.ts.map +1 -1
  1203. package/dist/commands/queue.js +133 -19
  1204. package/dist/commands/queue.js.map +1 -1
  1205. package/dist/commands/requirements.d.ts.map +1 -1
  1206. package/dist/commands/requirements.js +6 -3
  1207. package/dist/commands/requirements.js.map +1 -1
  1208. package/dist/commands/restore.d.ts.map +1 -1
  1209. package/dist/commands/restore.js +5 -0
  1210. package/dist/commands/restore.js.map +1 -1
  1211. package/dist/commands/rig-mode.d.ts.map +1 -1
  1212. package/dist/commands/rig-mode.js +6 -1
  1213. package/dist/commands/rig-mode.js.map +1 -1
  1214. package/dist/commands/rig.d.ts.map +1 -1
  1215. package/dist/commands/rig.js +20 -20
  1216. package/dist/commands/rig.js.map +1 -1
  1217. package/dist/commands/roster.d.ts +63 -0
  1218. package/dist/commands/roster.d.ts.map +1 -0
  1219. package/dist/commands/roster.js +169 -0
  1220. package/dist/commands/roster.js.map +1 -0
  1221. package/dist/commands/scope.d.ts.map +1 -1
  1222. package/dist/commands/scope.js +22 -0
  1223. package/dist/commands/scope.js.map +1 -1
  1224. package/dist/commands/seat.d.ts.map +1 -1
  1225. package/dist/commands/seat.js +96 -17
  1226. package/dist/commands/seat.js.map +1 -1
  1227. package/dist/commands/send.d.ts.map +1 -1
  1228. package/dist/commands/send.js +20 -6
  1229. package/dist/commands/send.js.map +1 -1
  1230. package/dist/commands/setup.d.ts +1 -1
  1231. package/dist/commands/setup.d.ts.map +1 -1
  1232. package/dist/commands/setup.js +78 -30
  1233. package/dist/commands/setup.js.map +1 -1
  1234. package/dist/commands/slack.d.ts +1 -1
  1235. package/dist/commands/slack.d.ts.map +1 -1
  1236. package/dist/commands/slack.js +57 -5
  1237. package/dist/commands/slack.js.map +1 -1
  1238. package/dist/commands/specs.d.ts.map +1 -1
  1239. package/dist/commands/specs.js +21 -2
  1240. package/dist/commands/specs.js.map +1 -1
  1241. package/dist/commands/start.js +7 -6
  1242. package/dist/commands/start.js.map +1 -1
  1243. package/dist/commands/startup-proof.d.ts.map +1 -1
  1244. package/dist/commands/startup-proof.js +2 -1
  1245. package/dist/commands/startup-proof.js.map +1 -1
  1246. package/dist/commands/status.d.ts.map +1 -1
  1247. package/dist/commands/status.js +7 -0
  1248. package/dist/commands/status.js.map +1 -1
  1249. package/dist/commands/telemetry.d.ts +5 -0
  1250. package/dist/commands/telemetry.d.ts.map +1 -0
  1251. package/dist/commands/telemetry.js +58 -0
  1252. package/dist/commands/telemetry.js.map +1 -0
  1253. package/dist/commands/terminal.d.ts.map +1 -1
  1254. package/dist/commands/terminal.js +5 -1
  1255. package/dist/commands/terminal.js.map +1 -1
  1256. package/dist/commands/transcript.js +5 -3
  1257. package/dist/commands/transcript.js.map +1 -1
  1258. package/dist/commands/tui.js +4 -4
  1259. package/dist/commands/tui.js.map +1 -1
  1260. package/dist/commands/up.d.ts +8 -0
  1261. package/dist/commands/up.d.ts.map +1 -1
  1262. package/dist/commands/up.js +193 -72
  1263. package/dist/commands/up.js.map +1 -1
  1264. package/dist/commands/walk.d.ts.map +1 -1
  1265. package/dist/commands/walk.js +3 -0
  1266. package/dist/commands/walk.js.map +1 -1
  1267. package/dist/commands/whoami.d.ts +3 -0
  1268. package/dist/commands/whoami.d.ts.map +1 -1
  1269. package/dist/commands/whoami.js +29 -2
  1270. package/dist/commands/whoami.js.map +1 -1
  1271. package/dist/commands/workflow-follow.d.ts +2 -0
  1272. package/dist/commands/workflow-follow.d.ts.map +1 -1
  1273. package/dist/commands/workflow-follow.js +6 -4
  1274. package/dist/commands/workflow-follow.js.map +1 -1
  1275. package/dist/commands/workflow.d.ts.map +1 -1
  1276. package/dist/commands/workflow.js +2 -4
  1277. package/dist/commands/workflow.js.map +1 -1
  1278. package/dist/commands/workspace.d.ts.map +1 -1
  1279. package/dist/commands/workspace.js +2 -4
  1280. package/dist/commands/workspace.js.map +1 -1
  1281. package/dist/config-store.d.ts +7 -1
  1282. package/dist/config-store.d.ts.map +1 -1
  1283. package/dist/config-store.js +40 -7
  1284. package/dist/config-store.js.map +1 -1
  1285. package/dist/daemon-auto-start.d.ts +8 -0
  1286. package/dist/daemon-auto-start.d.ts.map +1 -0
  1287. package/dist/daemon-auto-start.js +39 -0
  1288. package/dist/daemon-auto-start.js.map +1 -0
  1289. package/dist/daemon-lifecycle.d.ts +9 -0
  1290. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1291. package/dist/daemon-lifecycle.js +61 -19
  1292. package/dist/daemon-lifecycle.js.map +1 -1
  1293. package/dist/daemon-reachability.d.ts +18 -0
  1294. package/dist/daemon-reachability.d.ts.map +1 -0
  1295. package/dist/daemon-reachability.js +48 -0
  1296. package/dist/daemon-reachability.js.map +1 -0
  1297. package/dist/front-door.d.ts.map +1 -1
  1298. package/dist/front-door.js +3 -2
  1299. package/dist/front-door.js.map +1 -1
  1300. package/dist/index.d.ts +1 -0
  1301. package/dist/index.d.ts.map +1 -1
  1302. package/dist/index.js +4 -0
  1303. package/dist/index.js.map +1 -1
  1304. package/dist/lib/bundle-check.d.ts +13 -0
  1305. package/dist/lib/bundle-check.d.ts.map +1 -0
  1306. package/dist/lib/bundle-check.js +191 -0
  1307. package/dist/lib/bundle-check.js.map +1 -0
  1308. package/dist/lib/bundle-configuration.d.ts +60 -0
  1309. package/dist/lib/bundle-configuration.d.ts.map +1 -0
  1310. package/dist/lib/bundle-configuration.js +198 -0
  1311. package/dist/lib/bundle-configuration.js.map +1 -0
  1312. package/dist/lib/bundle-source.d.ts +57 -0
  1313. package/dist/lib/bundle-source.d.ts.map +1 -0
  1314. package/dist/lib/bundle-source.js +355 -0
  1315. package/dist/lib/bundle-source.js.map +1 -0
  1316. package/dist/lib/context-install.d.ts.map +1 -1
  1317. package/dist/lib/context-install.js +2 -3
  1318. package/dist/lib/context-install.js.map +1 -1
  1319. package/dist/lib/file-transfer.d.ts +1 -1
  1320. package/dist/lib/file-transfer.d.ts.map +1 -1
  1321. package/dist/lib/file-transfer.js +17 -5
  1322. package/dist/lib/file-transfer.js.map +1 -1
  1323. package/dist/lib/permission-policy/policy-ref.d.ts +6 -1
  1324. package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -1
  1325. package/dist/lib/permission-policy/policy-ref.js +16 -4
  1326. package/dist/lib/permission-policy/policy-ref.js.map +1 -1
  1327. package/dist/lib/permission-policy/policy-spec.d.ts +1 -1
  1328. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
  1329. package/dist/lib/permission-policy/policy-spec.js +2 -2
  1330. package/dist/lib/permission-policy/policy-spec.js.map +1 -1
  1331. package/dist/lib/scope/mission-composition.d.ts.map +1 -1
  1332. package/dist/lib/scope/mission-composition.js +11 -0
  1333. package/dist/lib/scope/mission-composition.js.map +1 -1
  1334. package/dist/lib/scope/scaffold-placeholder.d.ts +4 -4
  1335. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  1336. package/dist/lib/scope/scaffold-placeholder.js +4 -4
  1337. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  1338. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  1339. package/dist/lib/scope/scope-fs.js +10 -16
  1340. package/dist/lib/scope/scope-fs.js.map +1 -1
  1341. package/dist/lib/scope/templates.d.ts.map +1 -1
  1342. package/dist/lib/scope/templates.js +1 -0
  1343. package/dist/lib/scope/templates.js.map +1 -1
  1344. package/dist/lib/scope-templates/notes.md +1 -1
  1345. package/dist/lib/scope-templates/slice-progress.md +11 -7
  1346. package/dist/lib/work-install.d.ts +12 -0
  1347. package/dist/lib/work-install.d.ts.map +1 -1
  1348. package/dist/lib/work-install.js +55 -4
  1349. package/dist/lib/work-install.js.map +1 -1
  1350. package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -1
  1351. package/dist/restore-packet/claude-transcript-parser.js +2 -0
  1352. package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
  1353. package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -1
  1354. package/dist/restore-packet/codex-jsonl-parser.js +2 -0
  1355. package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
  1356. package/dist/restore-packet/runtime-detect.d.ts.map +1 -1
  1357. package/dist/restore-packet/runtime-detect.js +2 -0
  1358. package/dist/restore-packet/runtime-detect.js.map +1 -1
  1359. package/package.json +4 -3
  1360. package/tui/dist/attention/source-continuity.d.ts.map +1 -1
  1361. package/tui/dist/attention/source-continuity.js +5 -3
  1362. package/tui/dist/attention/source-continuity.js.map +1 -1
  1363. package/tui/dist/commands/registry.d.ts.map +1 -1
  1364. package/tui/dist/commands/registry.js +8 -3
  1365. package/tui/dist/commands/registry.js.map +1 -1
  1366. package/tui/dist/daemon-client.d.ts +3 -1
  1367. package/tui/dist/daemon-client.d.ts.map +1 -1
  1368. package/tui/dist/daemon-client.js +18 -6
  1369. package/tui/dist/daemon-client.js.map +1 -1
  1370. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  1371. package/tui/dist/execution/execution-model.js +19 -7
  1372. package/tui/dist/execution/execution-model.js.map +1 -1
  1373. package/tui/dist/grammar.d.ts.map +1 -1
  1374. package/tui/dist/grammar.js +3 -2
  1375. package/tui/dist/grammar.js.map +1 -1
  1376. package/tui/dist/health/health-model.d.ts.map +1 -1
  1377. package/tui/dist/health/health-model.js +17 -5
  1378. package/tui/dist/health/health-model.js.map +1 -1
  1379. package/tui/dist/hydrate.d.ts.map +1 -1
  1380. package/tui/dist/hydrate.js +1 -0
  1381. package/tui/dist/hydrate.js.map +1 -1
  1382. package/tui/dist/input.d.ts.map +1 -1
  1383. package/tui/dist/input.js +5 -0
  1384. package/tui/dist/input.js.map +1 -1
  1385. package/tui/dist/live-events.d.ts +2 -2
  1386. package/tui/dist/live-events.d.ts.map +1 -1
  1387. package/tui/dist/live-events.js +65 -27
  1388. package/tui/dist/live-events.js.map +1 -1
  1389. package/tui/dist/local-reading.d.ts.map +1 -1
  1390. package/tui/dist/local-reading.js +2 -0
  1391. package/tui/dist/local-reading.js.map +1 -1
  1392. package/tui/dist/main.js +46 -6
  1393. package/tui/dist/main.js.map +1 -1
  1394. package/tui/dist/page-read.d.ts.map +1 -1
  1395. package/tui/dist/page-read.js +4 -1
  1396. package/tui/dist/page-read.js.map +1 -1
  1397. package/tui/dist/render.d.ts +2 -0
  1398. package/tui/dist/render.d.ts.map +1 -1
  1399. package/tui/dist/render.js +81 -23
  1400. package/tui/dist/render.js.map +1 -1
  1401. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  1402. package/tui/dist/scopes/scopes-model.js +36 -31
  1403. package/tui/dist/scopes/scopes-model.js.map +1 -1
  1404. package/tui/dist/socket-server.d.ts +6 -2
  1405. package/tui/dist/socket-server.d.ts.map +1 -1
  1406. package/tui/dist/socket-server.js +159 -14
  1407. package/tui/dist/socket-server.js.map +1 -1
  1408. package/tui/dist/specs/graph.d.ts +5 -0
  1409. package/tui/dist/specs/graph.d.ts.map +1 -0
  1410. package/tui/dist/specs/graph.js +16 -0
  1411. package/tui/dist/specs/graph.js.map +1 -0
  1412. package/tui/dist/specs/launch.d.ts +29 -0
  1413. package/tui/dist/specs/launch.d.ts.map +1 -0
  1414. package/tui/dist/specs/launch.js +64 -0
  1415. package/tui/dist/specs/launch.js.map +1 -0
  1416. package/tui/dist/startup.d.ts.map +1 -1
  1417. package/tui/dist/startup.js +15 -6
  1418. package/tui/dist/startup.js.map +1 -1
  1419. package/tui/dist/state.d.ts +2 -2
  1420. package/tui/dist/state.d.ts.map +1 -1
  1421. package/tui/dist/state.js +41 -18
  1422. package/tui/dist/state.js.map +1 -1
  1423. package/tui/dist/terminals/terminal-model.d.ts +1 -0
  1424. package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
  1425. package/tui/dist/terminals/terminal-model.js +19 -2
  1426. package/tui/dist/terminals/terminal-model.js.map +1 -1
  1427. package/tui/dist/types.d.ts +35 -0
  1428. package/tui/dist/types.d.ts.map +1 -1
  1429. package/ui/dist/assets/{index-N-SdPj-I.css → index-DNU3XZr_.css} +1 -1
  1430. package/ui/dist/assets/{index-BVW54ItO.js → index-HHSvwF97.js} +75 -75
  1431. package/ui/dist/index.html +2 -2
  1432. package/daemon/specs/rigs/launch/conveyor/README.md +0 -33
  1433. package/daemon/specs/rigs/launch/conveyor/rig.yaml +0 -72
  1434. package/daemon/specs/rigs/launch/demo/project-example/README.md +0 -25
  1435. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +0 -19
  1436. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +0 -6
  1437. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +0 -7
  1438. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +0 -31
  1439. package/daemon/specs/rigs/launch/first-project/rig.yaml +0 -31
  1440. package/daemon/specs/rigs/launch/first-project-claude/rig.yaml +0 -30
  1441. package/daemon/specs/rigs/launch/implementation-pair/rig.yaml +0 -27
  1442. package/daemon/specs/rigs/preview/product-team/rig.yaml +0 -90
  1443. /package/daemon/specs/rigs/launch/factory-rsi/{rig.yaml → world-bundle.yaml} +0 -0
@@ -15,8 +15,13 @@
15
15
  import fs from "node:fs";
16
16
  import path from "node:path";
17
17
  import { postChatMessage, getUploadURLExternal, uploadBytesExternal, completeUploadExternal, fetchRecentMessageTexts } from "./slack-api.js";
18
- import { buildOutboundMessage, attributionFromSession, reconcileToken } from "./message.js";
18
+ import { buildOutboundMessage, attributionFromSession, reconcileToken, redactSecrets } from "./message.js";
19
19
  const LOCAL_IMAGE_EXT = new Set([".png", ".jpg", ".jpeg", ".gif", ".webp"]);
20
+ /** Local evidence files uploaded into the thread: images, video (Slack plays mp4/webm/mov inline)
21
+ * and PDF. Wider than LOCAL_IMAGE_EXT, which gates https Block Kit image blocks. */
22
+ const LOCAL_ATTACHMENT_EXT = new Set([...LOCAL_IMAGE_EXT, ".mp4", ".webm", ".mov", ".pdf"]);
23
+ /** Well under Slack's 1 GB per-file limit, and bounded for a daemon that holds the bytes in memory. */
24
+ export const LOCAL_ATTACHMENT_MAX_BYTES = 50 * 1024 * 1024;
20
25
  const TRANSPORT_FAILURE_RECEIPT_PREFIX = "::transport-failure-receipt::";
21
26
  const TRANSPORT_FAILURE_RECEIPT_REPAIRED = "::repaired";
22
27
  function transportFailureReceiptKey(decisionId, failureClass, detail) {
@@ -41,19 +46,81 @@ function pendingTransportFailureReceipt(attempted, decisionId) {
41
46
  return { key, error: `pending transport-failure receipt is unreadable: ${e.message}` };
42
47
  }
43
48
  }
44
- /** Default local-image reader: absolute path, image extension, readable — else null. */
49
+ /** Default local-attachment reader: an absolute path with an attachment extension, a regular file
50
+ * of at most LOCAL_ATTACHMENT_MAX_BYTES, readable — else null (not an attachment), or { skipped }
51
+ * when it is an attachment that can't be sent (too large, missing, unreadable), so the miss is
52
+ * logged rather than silent. */
45
53
  export function defaultReadLocalImage(refPath) {
54
+ if (!path.isAbsolute(refPath))
55
+ return null;
56
+ if (!LOCAL_ATTACHMENT_EXT.has(path.extname(refPath).toLowerCase()))
57
+ return null;
58
+ // The path is resolved ONCE: open it, then stat and read that same descriptor, so the file checked is the file
59
+ // sent. O_NONBLOCK keeps the open from waiting on a FIFO (refused below as not a regular file), and the read is
60
+ // bounded by the size just checked.
61
+ let fd = null;
46
62
  try {
47
- if (!path.isAbsolute(refPath))
48
- return null;
49
- if (!LOCAL_IMAGE_EXT.has(path.extname(refPath).toLowerCase()))
50
- return null;
51
- const bytes = fs.readFileSync(refPath);
52
- return { bytes: new Uint8Array(bytes), filename: path.basename(refPath) };
63
+ fd = fs.openSync(refPath, fs.constants.O_RDONLY | fs.constants.O_NONBLOCK);
64
+ const st = fs.fstatSync(fd);
65
+ if (!st.isFile())
66
+ return { skipped: "not a regular file" };
67
+ if (st.size > LOCAL_ATTACHMENT_MAX_BYTES) {
68
+ return { skipped: `${st.size} bytes is over the ${LOCAL_ATTACHMENT_MAX_BYTES}-byte attachment cap` };
69
+ }
70
+ const bytes = new Uint8Array(st.size);
71
+ let read = 0;
72
+ while (read < bytes.length) {
73
+ const n = fs.readSync(fd, bytes, read, bytes.length - read, read);
74
+ if (n === 0)
75
+ break;
76
+ read += n;
77
+ }
78
+ return { bytes: read === bytes.length ? bytes : bytes.subarray(0, read), filename: path.basename(refPath) };
79
+ }
80
+ catch (e) {
81
+ return { skipped: `unreadable (${e.code ?? "error"})` };
82
+ }
83
+ finally {
84
+ if (fd !== null)
85
+ fs.closeSync(fd);
86
+ }
87
+ }
88
+ /** #47 — only an https evidenceRef with an image-like extension may ride as a Block Kit
89
+ * `image` block (extension set mirrors LOCAL_IMAGE_EXT). Slack rejects the ENTIRE
90
+ * message with `invalid_blocks` when an image block's URL is not a real image (e.g. a
91
+ * GitLab issue link or a PROOF.md URL — both explicitly documented evidenceRef uses),
92
+ * so a non-image https ref must never become an image block. Query strings and
93
+ * fragments are stripped before the extension check. */
94
+ export function isHttpsImageRef(ref) {
95
+ if (typeof ref !== "string")
96
+ return false;
97
+ const url = ref.trim();
98
+ if (!/^https:\/\/\S+$/.test(url))
99
+ return false;
100
+ try {
101
+ return LOCAL_IMAGE_EXT.has(path.extname(new URL(url).pathname).toLowerCase());
53
102
  }
54
103
  catch {
55
- return null;
104
+ return false;
105
+ }
106
+ }
107
+ /** #47 — split an evidenceRef into an image attachment vs. a plain link. An explicit
108
+ * `media` array stays fully caller-controlled; otherwise an image-looking https
109
+ * evidenceRef becomes a Block Kit image and a non-image https evidenceRef becomes a
110
+ * plain link (rendered by buildEvidenceLink, never an image block). Local refs keep
111
+ * their existing handling (image upload flow / clean skip). */
112
+ export function evidenceAttachment(media, evidenceRef, summary) {
113
+ if (Array.isArray(media))
114
+ return { mediaRefs: media, evidenceLink: undefined };
115
+ if (typeof evidenceRef !== "string")
116
+ return { mediaRefs: undefined, evidenceLink: undefined };
117
+ const ref = evidenceRef.trim();
118
+ if (isHttpsImageRef(ref)) {
119
+ return { mediaRefs: [{ imageUrl: ref, altText: summary ?? "attachment" }], evidenceLink: undefined };
56
120
  }
121
+ if (/^https:\/\/\S+$/.test(ref))
122
+ return { mediaRefs: undefined, evidenceLink: ref };
123
+ return { mediaRefs: undefined, evidenceLink: undefined };
57
124
  }
58
125
  /** Build the subsystem DeliverFn. Contract mirrors the retired connector handleDecision. */
59
126
  function deliverSinglePart(opts, markEpisode = true) {
@@ -66,22 +133,21 @@ function deliverSinglePart(opts, markEpisode = true) {
66
133
  }
67
134
  const q = (decision.payload ?? {});
68
135
  // M1 A5b (carried over from the retired sweep): an alert's evidenceRef IS the artifact the
69
- // human judges — an https image URL rides as a Block Kit image. buildImageBlocks stays the
70
- // single hygiene gate (drops non-https / secret-bearing), so the predicate lives in ONE place.
71
- const mediaRefs = Array.isArray(q.media)
72
- ? q.media
73
- : q.evidenceRef
74
- ? [{ imageUrl: String(q.evidenceRef), altText: q.summary ?? "attachment" }]
75
- : undefined;
136
+ // human judges. #47 — it rides as a Block Kit image ONLY when it looks like an image;
137
+ // a non-image https ref rides as a plain link instead (Slack's invalid_blocks rejects
138
+ // the whole message when an image block's URL is not a real image).
139
+ const { mediaRefs, evidenceLink } = evidenceAttachment(q.media, q.evidenceRef, q.summary);
76
140
  const payload = buildOutboundMessage({
77
141
  qitemId: q.qitemId ?? decision.decisionId,
78
142
  summary: q.summary,
79
143
  body: q.body,
144
+ humanQuestions: q.humanQuestions,
80
145
  destinationSession: q.destinationSession ?? decision.entityBindingRef,
81
146
  }, {
82
147
  sourceLabel: opts.sourceLabel,
83
148
  bodyExcerpt: opts.bodyExcerpt,
84
149
  mediaRefs,
150
+ evidenceLink,
85
151
  // A1.2 — attribution rides every post; identity stays the app's own (postChatMessage
86
152
  // structurally cannot carry username/icon overrides — the customize-absence rail).
87
153
  attribution: attributionFromSession(q.sourceSession),
@@ -115,9 +181,9 @@ function deliverSinglePart(opts, markEpisode = true) {
115
181
  // H — RECONCILE-BY-MARKER before any RESEND: if this decision was attempted before, the
116
182
  // prior outcome is ambiguous (a timeout may have posted). Search where the message would
117
183
  // live (the thread, else channel history) for the message's STRUCTURAL identity; FOUND →
118
- // already delivered, record + ack, never repost. Search failure = stay ambiguous = retain
119
- // for the next replay (never a blind repost on an unreadable channel — a duplicate human
120
- // notification is the red; a delay is not).
184
+ // already delivered, record + ack, never repost. An initial unreadable request
185
+ // retains the decision. A partial scan warns and keeps main's at-least-once
186
+ // retry trade-off rather than indefinitely stranding a human notification.
121
187
  // fix-r3 (R2 exactly-once): the identity is reconcileToken(decisionId) — a bounded,
122
188
  // decision-scoped token the renderer reserves OUTSIDE the clamp budget, so it is
123
189
  // GUARANTEED present in the scanned top-level text at any ordinary length, and ordinary
@@ -126,7 +192,7 @@ function deliverSinglePart(opts, markEpisode = true) {
126
192
  // identity, same bytes, both sides.
127
193
  const marker = reconcileToken(decision.decisionId);
128
194
  if (attempted.has(decision.decisionId)) {
129
- const scan = await fetchRecentMessageTexts(opts.botToken, opts.channel, threadTs, opts.fetchImpl);
195
+ const scan = await fetchRecentMessageTexts(opts.botToken, opts.channel, threadTs, opts.fetchImpl, undefined, undefined, marker);
130
196
  if (!scan.ok) {
131
197
  log(`reconcile scan failed for ${decision.decisionId} (${scan.error}) — retained, no blind repost`);
132
198
  return { ok: false, class: "reconcile-unreadable", detail: scan.error };
@@ -167,7 +233,12 @@ function deliverSinglePart(opts, markEpisode = true) {
167
233
  }
168
234
  return { ok: true };
169
235
  }
170
- log(`reconcile: marker "${marker}" absent — safe to send`);
236
+ if (scan.incomplete) {
237
+ log(`reconcile WARNING: incomplete scan for ${decision.decisionId}: ${scan.incomplete} — marker not located; attempting one post`);
238
+ }
239
+ else {
240
+ log(`reconcile: marker "${marker}" absent — safe to send`);
241
+ }
171
242
  }
172
243
  // Marked ATTEMPTED durably BEFORE the post: from here any outcome is ambiguous until 2xx.
173
244
  opts.attempted.mark(decision.decisionId, "attempted");
@@ -236,17 +307,23 @@ function deliverSinglePart(opts, markEpisode = true) {
236
307
  // into the conversation thread (files.upload is sunset). Upload failure is fail-VISIBLE
237
308
  // but does NOT fail the decision: the text delivered; failing here would replay the whole
238
309
  // post and duplicate the human notification (the H red). https refs already rode as Block
239
- // Kit image blocks above; non-image/non-existent refs are a clean skip.
310
+ // Kit image blocks above; refs that are not attachments (e.g. a PROOF.md path) are a clean
311
+ // skip, and an attachment that can't be sent is logged.
240
312
  const local = q.evidenceRef && !/^https:\/\//.test(String(q.evidenceRef))
241
313
  ? (opts.readLocalImage ?? defaultReadLocalImage)(String(q.evidenceRef))
242
314
  : null;
243
- if (local) {
315
+ if (local && "skipped" in local) {
316
+ log(`ATTACHMENT skipped for ${q.qitemId ?? decision.decisionId}: ${path.basename(String(q.evidenceRef))} ${local.skipped} (text delivered; attachment missing)`);
317
+ }
318
+ else if (local) {
244
319
  const intoThread = threadTs ?? res.ts;
245
320
  const up = await getUploadURLExternal(opts.botToken, local.filename, local.bytes.length, opts.fetchImpl);
246
321
  if (up.ok && up.uploadUrl && up.fileId) {
247
322
  const put = await uploadBytesExternal(up.uploadUrl, local.bytes, opts.fetchImpl);
248
323
  if (put.ok) {
249
- const done = await completeUploadExternal(opts.botToken, { files: [{ id: up.fileId, title: q.summary ?? local.filename }], channelId: opts.channel, threadTs: intoThread }, opts.fetchImpl);
324
+ const done = await completeUploadExternal(opts.botToken,
325
+ // #300: the title is shown in Slack like the text, so it gets the same secret redaction.
326
+ { files: [{ id: up.fileId, title: redactSecrets(q.summary ?? local.filename) }], channelId: opts.channel, threadTs: intoThread }, opts.fetchImpl);
250
327
  if (done.ok)
251
328
  log(`uploaded ${local.filename} into thread ${intoThread ?? "(root)"} for ${q.qitemId ?? decision.decisionId}`);
252
329
  else
@@ -276,18 +353,22 @@ export function subsystemSlackDeliver(opts) {
276
353
  const parts = q.humanDetail
277
354
  ? [
278
355
  { ...q, humanDetail: undefined, body: `${q.body ?? ""}\n\nSupplemental detail follows in this thread.` },
279
- { ...q, humanDetail: undefined, summary: `Supplemental detail: ${q.summary ?? ""}`, body: q.humanDetail, media: [], evidenceRef: null },
356
+ { ...q, humanDetail: undefined, humanQuestions: undefined, summary: `Supplemental detail: ${q.summary ?? ""}`, body: q.humanDetail, media: [], evidenceRef: null },
280
357
  ]
281
358
  : [q];
282
359
  const partId = (index) => parts.length === 1 ? decision.decisionId : `${decision.decisionId}:part:${index + 1}`;
283
360
  try {
284
361
  for (const [index, part] of parts.entries()) {
362
+ // #47 — preflight must mirror deliverSinglePart exactly: the same evidenceRef
363
+ // split (image attachment vs. plain link) so the shape check sees the true payload.
364
+ const partEvidence = evidenceAttachment(part.media, part.evidenceRef, part.summary);
285
365
  buildOutboundMessage(part, {
286
366
  sourceLabel: opts.sourceLabel,
287
367
  attribution: attributionFromSession(part.sourceSession),
288
368
  mentionUserId: index === 0 ? opts.resolveMentionUserId?.(q) : undefined,
289
369
  reconcileMarker: reconcileToken(partId(index)),
290
- mediaRefs: Array.isArray(part.media) ? part.media : part.evidenceRef ? [{ imageUrl: part.evidenceRef, altText: part.summary ?? "attachment" }] : undefined,
370
+ mediaRefs: partEvidence.mediaRefs,
371
+ evidenceLink: partEvidence.evidenceLink,
291
372
  });
292
373
  }
293
374
  }
@@ -1 +1 @@
1
- {"version":3,"file":"slack-delivery.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/slack-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-delivery.js","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/slack-delivery.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { type GatewayWire } from "../gateway-subsystem.js";
2
2
  import { type InboundFilePort } from "./inbound.js";
3
3
  import { type RegistrySurface } from "./inbound-admission.js";
4
4
  import { type WsLike } from "./socket-inbound.js";
5
- import type { QueueRepository } from "../../queue-repository.js";
5
+ import { type QueueRepository } from "../../queue-repository.js";
6
6
  import type { FetchImpl } from "./slack-api.js";
7
7
  export interface SlackWireOpts {
8
8
  home: string;
@@ -1 +1 @@
1
- {"version":3,"file":"slack-subsystem.d.ts","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/slack-subsystem.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAsB,KAAK,WAAW,EAA2B,MAAM,yBAAyB,CAAC;AAQxG,OAAO,EAAkC,KAAK,eAAe,EAA0E,MAAM,cAAc,CAAC;AAC5J,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzF,OAAO,EAAgD,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoBhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,CAAC;IAC3B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,2FAA2F;IAC3F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,UAAU,GAAG,kBAAkB,GAAG,gBAAgB,CAAC,CAAC;CACzJ;AAED,UAAU,oBAAoB;IAC5B,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5G;AAED;;yEAEyE;AACzE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAqCjD;AAyBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,eAAe,CA2ClB;AAMD;wEACwE;AACxE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAkXtE"}
1
+ {"version":3,"file":"slack-subsystem.d.ts","sourceRoot":"","sources":["../../../../src/domain/gateway/slack/slack-subsystem.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAsB,KAAK,WAAW,EAA2B,MAAM,yBAAyB,CAAC;AAQxG,OAAO,EAA0D,KAAK,eAAe,EAA0E,MAAM,cAAc,CAAC;AACpL,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzF,OAAO,EAAgD,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhG,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoBhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,CAAC;IAC3B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,2FAA2F;IAC3F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,UAAU,GAAG,kBAAkB,GAAG,gBAAgB,CAAC,CAAC;CACzJ;AAED,UAAU,oBAAoB;IAC5B,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5G;AAED;;yEAEyE;AACzE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,WAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAqCjD;AA0BD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,eAAe,CA4ClB;AAMD;wEACwE;AACxE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CA0btE"}
@@ -11,11 +11,13 @@
11
11
  // (slack-outbound-seen.jsonl, slack-inbound-seen.jsonl, slack-inbound-deadletter.jsonl), so
12
12
  // the relay's history IS the subsystem's history — enabling the subsystem replays nothing the
13
13
  // relay already delivered (the enable-time backlog rule survives the cutover by construction).
14
+ import { ChannelRecovery } from "./channel-recovery.js";
14
15
  import { channelStateDigest } from "../channel-operations.js";
15
16
  import path from "node:path";
17
+ import { createHash } from "node:crypto";
16
18
  import fs from "node:fs";
17
19
  import { buildInProcessWire } from "../gateway-subsystem.js";
18
- import { downloadPrivateFile } from "./slack-api.js";
20
+ import { downloadPrivateFile, postChatMessage } from "./slack-api.js";
19
21
  import { loadConfig } from "./config.js";
20
22
  import { resolveSecret } from "./secrets.js";
21
23
  import { SeenStore, DeadLetterStore, InboundReceiptStore } from "./state-store.js";
@@ -28,6 +30,8 @@ import { ThreadSeatMap, formatPostedStamp } from "./thread-seat-map.js";
28
30
  import { makeThreadRouteResolver } from "./thread-routing.js";
29
31
  import { startSocketInbound } from "./socket-inbound.js";
30
32
  import { loadHumanRegistry, resolveSlackHandle } from "../human-registry.js";
33
+ import { hasLiveHumanGate } from "../../queue-repository.js";
34
+ import { formatReplyToChoice, REPLY_TO_CHOICE_ACTOR } from "../../reply-to-choice.js";
31
35
  import { parseSessionName } from "../../session-name.js";
32
36
  import { ownerNotificationLevelAtLeast } from "../../queue-transition-log.js";
33
37
  // OPR.0.5.6.1 — the delivery rules engine: ONE decision per message replaces
@@ -91,7 +95,8 @@ export function makeHumanReplyResolver(queueRepo, contract) {
91
95
  * yields `{ name, error }`, never an exception that could cost the message.
92
96
  *
93
97
  * Safe-path discipline: filenames sanitize to a bounded [A-Za-z0-9._-] basename
94
- * prefixed with the event ts + index (unique per event), and the resolved path
98
+ * prefixed with the event ts, a channel/message/file identity digest, and index,
99
+ * so messages sharing a timestamp across channels cannot overwrite each other. The resolved path
95
100
  * is verified to stay inside `mediaDir` before any write.
96
101
  */
97
102
  /** R1 F1 — the anchored Slack-host verdict: https + URL-parsed hostname that is
@@ -110,7 +115,7 @@ export function makeInboundFilePort(opts) {
110
115
  const mkdirp = opts.mkdirp ?? ((dir) => { fs.mkdirSync(dir, { recursive: true }); });
111
116
  const writeFile = opts.writeFile ?? ((p, bytes) => { fs.writeFileSync(p, bytes); });
112
117
  return {
113
- async transfer(files, eventTs) {
118
+ async transfer(files, eventTs, eventChannel) {
114
119
  const stored = [];
115
120
  const failed = [];
116
121
  mkdirp(opts.mediaDir);
@@ -132,7 +137,8 @@ export function makeInboundFilePort(opts) {
132
137
  continue;
133
138
  }
134
139
  const safeBase = path.basename(name).replace(/[^A-Za-z0-9._-]/g, "_").slice(0, 80) || `file-${i + 1}`;
135
- const localPath = path.join(opts.mediaDir, `${eventTs.replace(/[^0-9.]/g, "")}-${i + 1}-${safeBase}`);
140
+ const identity = createHash("sha256").update(JSON.stringify([eventChannel ?? "-", eventTs, meta.id ?? null])).digest("hex").slice(0, 20);
141
+ const localPath = path.join(opts.mediaDir, `${eventTs.replace(/[^0-9.]/g, "")}-${identity}-${i + 1}-${safeBase}`);
136
142
  if (!path.resolve(localPath).startsWith(path.resolve(opts.mediaDir) + path.sep)) {
137
143
  failed.push({ name, error: "unsafe path refused" });
138
144
  continue;
@@ -172,7 +178,7 @@ export function buildSlackGatewayWire(opts) {
172
178
  deliver: async () => ({ ok: false, class: "slack-not-configured", detail: missing }),
173
179
  log,
174
180
  });
175
- return { ...inert, status: () => ({ platform: "slack", configurationDigest: channelStateDigest(cfg), outboundReady: false, inboundReady: false, inbound: { state: "not-configured" } }) };
181
+ return { ...inert, status: () => ({ platform: "slack", configurationDigest: channelStateDigest(cfg), outboundReady: false, inboundReady: false, recovery: { state: "unavailable", reason: "inbound-not-configured" }, inbound: { state: "not-configured" } }) };
176
182
  }
177
183
  const registrySurface = opts.registry ?? { loadHumanRegistry, resolveSlackHandle };
178
184
  const ports = makeQueuePorts(opts.queueRepo, {
@@ -210,6 +216,81 @@ export function buildSlackGatewayWire(opts) {
210
216
  const attempted = new SeenStore(path.join(stateDir(opts.home), "slack-attempted-decisions.jsonl"));
211
217
  // S10 thread routing — the map shares the daemon DB (queue rows carry the rebuild stamps).
212
218
  const threadMap = new ThreadSeatMap(opts.queueRepo.db);
219
+ // OPR.0.5.6.14 — a failed post writes the transport-failed ledger transition so the
220
+ // undelivered surface (and --verify) can name the gateway's error instead of guessing
221
+ // from nudge telemetry. One receipt per episode.
222
+ const recordTransportFailed = (p, failureClass, detail) => {
223
+ if (!p.qitemId)
224
+ return;
225
+ const key = p.notificationKey ?? p.qitemId;
226
+ const alreadyRecorded = opts.queueRepo.transitionLog.listForQitem(p.qitemId).some((transition) => transition.transitionNote?.startsWith("slack-owner-notification-transport-failed ")
227
+ && transition.transitionNote.split(/\s+/).includes(`notification_key=${key}`));
228
+ if (alreadyRecorded)
229
+ return;
230
+ opts.queueRepo.update({
231
+ qitemId: p.qitemId,
232
+ actorSession: "daemon@kernel",
233
+ transitionNote: [
234
+ "slack-owner-notification-transport-failed",
235
+ `notification_key=${key}`,
236
+ `class=${failureClass}`,
237
+ `error=${detail}`,
238
+ ].join(" "),
239
+ });
240
+ };
241
+ // #96 — where a replyTo update posts. Walks back through earlier threaded updates (which
242
+ // open no root of their own) to the item that owns the root.
243
+ const MAX_REPLY_TO_CHAIN = 32;
244
+ const deriveReplyToChoice = (p) => {
245
+ let item = p.replyTo ? opts.queueRepo.getById(p.replyTo) : null;
246
+ for (let depth = 0; item && depth < MAX_REPLY_TO_CHAIN; depth++) {
247
+ if (hasLiveHumanGate(item))
248
+ return { kind: "fallback", reason: "reference-has-live-gate", qitemId: item.qitemId };
249
+ const root = threadMap.resolveByConversation(item.qitemId);
250
+ if (root) {
251
+ if (root.state === "closed")
252
+ return { kind: "fallback", reason: "root-closed", threadTs: root.threadTs };
253
+ if (root.channel !== cfg.channel)
254
+ return { kind: "fallback", reason: "root-other-channel", threadTs: root.threadTs };
255
+ if (root.human !== (p.destinationSession ?? ""))
256
+ return { kind: "fallback", reason: "root-other-human", threadTs: root.threadTs };
257
+ if (root.seat !== (p.sourceSession ?? ""))
258
+ return { kind: "fallback", reason: "root-other-seat", threadTs: root.threadTs };
259
+ return { kind: "thread", threadTs: root.threadTs };
260
+ }
261
+ if (!item.replyTo)
262
+ return { kind: "fallback", reason: "root-missing", qitemId: item.qitemId };
263
+ item = opts.queueRepo.getById(item.replyTo);
264
+ }
265
+ return item
266
+ ? { kind: "fallback", reason: "chain-too-long", qitemId: item.qitemId }
267
+ : { kind: "fallback", reason: "root-missing", qitemId: p.replyTo ?? "" };
268
+ };
269
+ // Decided ONCE and recorded on the row before the first post. Every later attempt reuses
270
+ // the record, so a reconcile scan searches where the message actually went and --verify
271
+ // reports what happened. If the record cannot be written, nothing posts: the delivery is
272
+ // retained for replay and a transport-failed receipt names why, so --verify does not just
273
+ // time out.
274
+ const chooseReplyToThread = (p) => {
275
+ const recorded = opts.queueRepo.replyToChoiceFor(p.qitemId);
276
+ if (recorded)
277
+ return recorded;
278
+ const choice = deriveReplyToChoice(p);
279
+ try {
280
+ opts.queueRepo.update({ qitemId: p.qitemId, actorSession: REPLY_TO_CHOICE_ACTOR, transitionNote: formatReplyToChoice(choice) });
281
+ }
282
+ catch (e) {
283
+ const detail = `reply-to thread choice could not be recorded: ${e.message}`;
284
+ try {
285
+ recordTransportFailed(p, "reply-to-choice-unrecorded", detail);
286
+ }
287
+ catch (receiptError) {
288
+ log(`transport-failed receipt write FAILED for ${p.qitemId}: ${receiptError.message}`);
289
+ }
290
+ throw new Error(detail);
291
+ }
292
+ return choice;
293
+ };
213
294
  // Late-bound so deliver can release the driver's in-flight guard (built after the wire).
214
295
  let releaseRef = () => { };
215
296
  const deliver = outboundReady
@@ -226,7 +307,20 @@ export function buildSlackGatewayWire(opts) {
226
307
  // Slack replies identify only the root thread. Giving two qitems the same root
227
308
  // would make an inbound reply ambiguous and could resume the wrong human gate.
228
309
  // Re-delivery/new notification episodes for one qitem still reuse its exact root.
229
- resolveThreadTs: (p) => threadMap.resolveOpenForConversation(p.destinationSession ?? "", p.sourceSession ?? "", p.qitemId)?.threadTs,
310
+ // #96: an update may name an earlier qitem's root; the guard lives in deriveReplyToChoice.
311
+ resolveThreadTs: (p) => {
312
+ if (p.replyTo) {
313
+ const choice = chooseReplyToThread(p);
314
+ if (choice.kind === "thread")
315
+ return choice.threadTs;
316
+ }
317
+ const own = threadMap.resolveOpenForConversation(p.destinationSession ?? "", p.sourceSession ?? "", p.qitemId);
318
+ // #96: once an update shares this root, a new decision from its owner starts a fresh
319
+ // root instead, so the decision never lands in a thread a reader took as FYI-only.
320
+ if (own && !p.replyTo && opts.queueRepo.isReplyToThread(own.threadTs))
321
+ return undefined;
322
+ return own?.threadTs;
323
+ },
230
324
  // S14: posting and interruption are separate threshold dials over one vocabulary.
231
325
  resolveMentionUserId: (p) => {
232
326
  if (p.humanIntent === "update")
@@ -277,28 +371,7 @@ export function buildSlackGatewayWire(opts) {
277
371
  log(`thread stamp failed for ${p.qitemId}: ${e.message}`);
278
372
  }
279
373
  },
280
- // OPR.0.5.6.14 — a failed post writes the transport-failed ledger
281
- // transition so the undelivered surface can name the gateway's error
282
- // instead of guessing from nudge telemetry.
283
- onTransportFailed: (p, failureClass, detail) => {
284
- if (!p.qitemId)
285
- return;
286
- const key = p.notificationKey ?? p.qitemId;
287
- const alreadyRecorded = opts.queueRepo.transitionLog.listForQitem(p.qitemId).some((transition) => transition.transitionNote?.startsWith("slack-owner-notification-transport-failed ")
288
- && transition.transitionNote.split(/\s+/).includes(`notification_key=${key}`));
289
- if (alreadyRecorded)
290
- return;
291
- opts.queueRepo.update({
292
- qitemId: p.qitemId,
293
- actorSession: "daemon@kernel",
294
- transitionNote: [
295
- "slack-owner-notification-transport-failed",
296
- `notification_key=${key}`,
297
- `class=${failureClass}`,
298
- `error=${detail}`,
299
- ].join(" "),
300
- });
301
- },
374
+ onTransportFailed: recordTransportFailed,
302
375
  onPosted: (p, messageTs, threadTs) => {
303
376
  // v3 digest branch: transport truth first — every member receipt is
304
377
  // stamped HERE, after the real post, digest-tokened and episode-keyed.
@@ -443,6 +516,7 @@ export function buildSlackGatewayWire(opts) {
443
516
  const stops = [];
444
517
  const starts = [];
445
518
  let inboundHandle;
519
+ let recovery;
446
520
  if (outboundReady) {
447
521
  const driver = new SlackOutboundDriver({
448
522
  home: opts.home,
@@ -475,6 +549,21 @@ export function buildSlackGatewayWire(opts) {
475
549
  // or human-initiated → the configured orchestrator slot as an unrouted-signal row.
476
550
  resolveRoute: makeThreadRouteResolver({ map: threadMap, unroutedDestination: cfg.inboundDestination, log }),
477
551
  resolveHumanReply: opts.resolveHumanReply,
552
+ // #193 — a button click records its answer on the decision the clicked root belongs to;
553
+ // a failed hand-back is retried with the event dead-letters, and each click is confirmed
554
+ // in the decision's thread (a bot post, so inbound never ingests it).
555
+ recordHumanAnswer: (input) => opts.queueRepo.recordHumanAnswer(input),
556
+ actionDeadLetter: new DeadLetterStore(path.join(stateDir(opts.home), "slack-inbound-action-deadletter.jsonl")),
557
+ ...(bot ? {
558
+ acknowledgeAnswer: async ({ channel, threadTs, text }) => {
559
+ const target = channel ?? cfg.channel;
560
+ if (!target)
561
+ return;
562
+ const r = await postChatMessage(bot, { channel: target, thread_ts: threadTs, text }, opts.fetchImpl);
563
+ if (!r.ok)
564
+ log(`answer acknowledgement not posted thread=${threadTs}: ${r.error}`);
565
+ },
566
+ } : {}),
478
567
  // OPR.0.5.6.2 — inbound file transfer: wired only when the bot token exists
479
568
  // (downloads need `files:read`); absent → the router's own named-failure
480
569
  // arm keeps failure honest. Media lives beside the gateway's other durable
@@ -489,13 +578,16 @@ export function buildSlackGatewayWire(opts) {
489
578
  } : {}),
490
579
  log,
491
580
  });
581
+ recovery = new ChannelRecovery({ channel: cfg.channel, token: bot, stateDir: stateDir(opts.home), router, fetchImpl: opts.fetchImpl });
492
582
  starts.push(() => {
583
+ recovery.initialize(); // persist the once-only floor before any live events
493
584
  inboundHandle = startSocketInbound(app, router, {
494
585
  fetchImpl: opts.fetchImpl,
495
586
  wsFactory: opts.wsFactory,
496
587
  retryIntervalMs: opts.inboundRetryIntervalMs,
497
588
  inboundMaxConnects: opts.inboundMaxConnects,
498
589
  receipts,
590
+ recovery,
499
591
  log,
500
592
  });
501
593
  log("slack socket-mode inbound started (subsystem path)");
@@ -528,6 +620,7 @@ export function buildSlackGatewayWire(opts) {
528
620
  platform: "slack", configurationDigest: channelStateDigest(cfg),
529
621
  outboundReady,
530
622
  inboundReady,
623
+ recovery: recovery?.status() ?? { state: "unavailable", reason: "inbound-not-configured" },
531
624
  inbound: inboundHandle?.status() ?? { state: inboundReady ? "not-started" : "not-configured", generation: 0, reconnects: 0 },
532
625
  }),
533
626
  };