@openrig/cli 0.6.5 → 0.6.7

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 (1125) hide show
  1. package/README.md +151 -63
  2. package/daemon/assets/claude-team-permissions.cjs +262 -0
  3. package/daemon/assets/onboarding/02-self-and-competent-action.md +46 -2
  4. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  6. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +41 -0
  7. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +69 -12
  8. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +41 -21
  9. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +24 -7
  10. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +4 -0
  11. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +1 -1
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +4 -5
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +9 -4
  14. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +31 -4
  15. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +24 -13
  16. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
  17. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +42 -0
  18. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +6 -0
  19. package/daemon/assets/skills/rigs/SKILL.md +133 -0
  20. package/daemon/context-packs/help/help.md +66 -12
  21. package/daemon/context-packs/help/manifest.yaml +1 -1
  22. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  23. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +218 -38
  24. package/daemon/context-packs/reference/getting-started.md +593 -139
  25. package/daemon/context-packs/reference/manifest.yaml +4 -1
  26. package/daemon/context-packs/reference/rig-spec.md +175 -26
  27. package/daemon/context-packs/reference/whats-new.md +134 -0
  28. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +41 -21
  31. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +24 -7
  33. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +4 -0
  35. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +0 -6
  36. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
  38. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +5 -5
  43. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +3 -3
  44. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +4 -5
  47. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +31 -21
  49. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +31 -31
  51. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +2 -0
  52. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
  54. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +0 -5
  57. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +1 -1
  63. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/openrig-user/SKILL.md +9 -4
  68. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +1 -1
  82. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +0 -2
  87. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/refocusing/SKILL.md +31 -4
  92. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  93. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +24 -13
  94. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
  95. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  96. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +42 -0
  97. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  98. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +6 -0
  99. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  100. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  101. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  102. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  103. package/daemon/dist/adapters/claude-code-adapter.d.ts +2 -2
  104. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  105. package/daemon/dist/adapters/claude-code-adapter.js +48 -26
  106. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  107. package/daemon/dist/adapters/claude-resume.d.ts +1 -1
  108. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  109. package/daemon/dist/adapters/claude-resume.js +7 -4
  110. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  111. package/daemon/dist/adapters/codex-resume.d.ts +3 -1
  112. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  113. package/daemon/dist/adapters/codex-resume.js +27 -4
  114. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  115. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
  116. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  117. package/daemon/dist/adapters/codex-runtime-adapter.js +61 -63
  118. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  119. package/daemon/dist/adapters/compose-services-adapter.js +1 -1
  120. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  121. package/daemon/dist/adapters/kernel-authority.d.ts +10 -0
  122. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -0
  123. package/daemon/dist/adapters/kernel-authority.js +71 -0
  124. package/daemon/dist/adapters/kernel-authority.js.map +1 -0
  125. package/daemon/dist/adapters/non-interruptive.d.ts +14 -0
  126. package/daemon/dist/adapters/non-interruptive.d.ts.map +1 -0
  127. package/daemon/dist/adapters/non-interruptive.js +38 -0
  128. package/daemon/dist/adapters/non-interruptive.js.map +1 -0
  129. package/daemon/dist/adapters/pi-readiness.d.ts +15 -0
  130. package/daemon/dist/adapters/pi-readiness.d.ts.map +1 -0
  131. package/daemon/dist/adapters/pi-readiness.js +90 -0
  132. package/daemon/dist/adapters/pi-readiness.js.map +1 -0
  133. package/daemon/dist/adapters/pi-resume.d.ts +3 -1
  134. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  135. package/daemon/dist/adapters/pi-resume.js +8 -1
  136. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  137. package/daemon/dist/adapters/pi-runner-protocol.d.ts +15 -0
  138. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  139. package/daemon/dist/adapters/pi-runner-protocol.js +28 -0
  140. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  141. package/daemon/dist/adapters/pi-runner.d.ts +3 -0
  142. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  143. package/daemon/dist/adapters/pi-runner.js +92 -15
  144. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  145. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +8 -0
  146. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  147. package/daemon/dist/adapters/pi-runtime-adapter.js +37 -9
  148. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  149. package/daemon/dist/adapters/stub-runner-protocol.d.ts +1 -1
  150. package/daemon/dist/adapters/stub-runner-protocol.d.ts.map +1 -1
  151. package/daemon/dist/adapters/stub-runner.d.ts +1 -1
  152. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  153. package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
  154. package/daemon/dist/adapters/stub-runtime-adapter.js +10 -7
  155. package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
  156. package/daemon/dist/adapters/tmux.d.ts +7 -3
  157. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  158. package/daemon/dist/adapters/tmux.js +20 -12
  159. package/daemon/dist/adapters/tmux.js.map +1 -1
  160. package/daemon/dist/adapters/yolo-mode.d.ts +1 -1
  161. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  162. package/daemon/dist/adapters/yolo-mode.js +3 -0
  163. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  164. package/daemon/dist/build-info.js +3 -3
  165. package/daemon/dist/bundle-behaviour-surface.d.ts +2 -0
  166. package/daemon/dist/bundle-behaviour-surface.d.ts.map +1 -0
  167. package/daemon/dist/bundle-behaviour-surface.js +2 -0
  168. package/daemon/dist/bundle-behaviour-surface.js.map +1 -0
  169. package/daemon/dist/bundle-identity-surface.d.ts +2 -0
  170. package/daemon/dist/bundle-identity-surface.d.ts.map +1 -0
  171. package/daemon/dist/bundle-identity-surface.js +4 -0
  172. package/daemon/dist/bundle-identity-surface.js.map +1 -0
  173. package/daemon/dist/daemon-shutdown.d.ts +1 -1
  174. package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
  175. package/daemon/dist/daemon-shutdown.js +5 -1
  176. package/daemon/dist/daemon-shutdown.js.map +1 -1
  177. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  178. package/daemon/dist/db/all-migrations.js +6 -0
  179. package/daemon/dist/db/all-migrations.js.map +1 -1
  180. package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts +3 -0
  181. package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts.map +1 -0
  182. package/daemon/dist/db/migrations/095_rig_non_interruptive.js +5 -0
  183. package/daemon/dist/db/migrations/095_rig_non_interruptive.js.map +1 -0
  184. package/daemon/dist/db/migrations/096_rig_install_root.d.ts +3 -0
  185. package/daemon/dist/db/migrations/096_rig_install_root.d.ts.map +1 -0
  186. package/daemon/dist/db/migrations/096_rig_install_root.js +5 -0
  187. package/daemon/dist/db/migrations/096_rig_install_root.js.map +1 -0
  188. package/daemon/dist/db/migrations/097_thread_part_map.d.ts +3 -0
  189. package/daemon/dist/db/migrations/097_thread_part_map.d.ts.map +1 -0
  190. package/daemon/dist/db/migrations/097_thread_part_map.js +20 -0
  191. package/daemon/dist/db/migrations/097_thread_part_map.js.map +1 -0
  192. package/daemon/dist/domain/activity-taxonomy.d.ts +7 -0
  193. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  194. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  195. package/daemon/dist/domain/agent-activity-store.d.ts +12 -0
  196. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  197. package/daemon/dist/domain/agent-activity-store.js +55 -30
  198. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  199. package/daemon/dist/domain/agent-images/agent-image-types.d.ts +1 -1
  200. package/daemon/dist/domain/agent-images/agent-image-types.d.ts.map +1 -1
  201. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  202. package/daemon/dist/domain/agent-manifest.js +4 -2
  203. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  204. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +10 -0
  205. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  206. package/daemon/dist/domain/bootstrap-orchestrator.js +136 -32
  207. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  208. package/daemon/dist/domain/builtin-policy-reference.d.ts +1 -1
  209. package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -1
  210. package/daemon/dist/domain/builtin-policy-reference.js +2 -2
  211. package/daemon/dist/domain/builtin-policy-reference.js.map +1 -1
  212. package/daemon/dist/domain/bundle-archive.d.ts +24 -0
  213. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  214. package/daemon/dist/domain/bundle-archive.js +52 -27
  215. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  216. package/daemon/dist/domain/bundle-audit.d.ts +5 -0
  217. package/daemon/dist/domain/bundle-audit.d.ts.map +1 -1
  218. package/daemon/dist/domain/bundle-audit.js.map +1 -1
  219. package/daemon/dist/domain/bundle-behaviour-inspect.d.ts +4 -0
  220. package/daemon/dist/domain/bundle-behaviour-inspect.d.ts.map +1 -0
  221. package/daemon/dist/domain/bundle-behaviour-inspect.js +56 -0
  222. package/daemon/dist/domain/bundle-behaviour-inspect.js.map +1 -0
  223. package/daemon/dist/domain/bundle-behaviour.d.ts +118 -0
  224. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -0
  225. package/daemon/dist/domain/bundle-behaviour.js +364 -0
  226. package/daemon/dist/domain/bundle-behaviour.js.map +1 -0
  227. package/daemon/dist/domain/bundle-carried-context-pack.d.ts +16 -0
  228. package/daemon/dist/domain/bundle-carried-context-pack.d.ts.map +1 -0
  229. package/daemon/dist/domain/bundle-carried-context-pack.js +67 -0
  230. package/daemon/dist/domain/bundle-carried-context-pack.js.map +1 -0
  231. package/daemon/dist/domain/bundle-carried-project.d.ts +13 -0
  232. package/daemon/dist/domain/bundle-carried-project.d.ts.map +1 -0
  233. package/daemon/dist/domain/bundle-carried-project.js +71 -0
  234. package/daemon/dist/domain/bundle-carried-project.js.map +1 -0
  235. package/daemon/dist/domain/bundle-conflict-detector.js +3 -3
  236. package/daemon/dist/domain/bundle-conflict-detector.js.map +1 -1
  237. package/daemon/dist/domain/bundle-content-routing.d.ts +49 -0
  238. package/daemon/dist/domain/bundle-content-routing.d.ts.map +1 -0
  239. package/daemon/dist/domain/bundle-content-routing.js +246 -0
  240. package/daemon/dist/domain/bundle-content-routing.js.map +1 -0
  241. package/daemon/dist/domain/bundle-context-packs-router.d.ts +7 -2
  242. package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  243. package/daemon/dist/domain/bundle-context-packs-router.js +19 -0
  244. package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  245. package/daemon/dist/domain/bundle-identity.d.ts +27 -0
  246. package/daemon/dist/domain/bundle-identity.d.ts.map +1 -0
  247. package/daemon/dist/domain/bundle-identity.js +34 -0
  248. package/daemon/dist/domain/bundle-identity.js.map +1 -0
  249. package/daemon/dist/domain/bundle-install-context.d.ts +22 -0
  250. package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -0
  251. package/daemon/dist/domain/bundle-install-context.js +64 -0
  252. package/daemon/dist/domain/bundle-install-context.js.map +1 -0
  253. package/daemon/dist/domain/bundle-integrity.d.ts +1 -0
  254. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
  255. package/daemon/dist/domain/bundle-integrity.js +1 -1
  256. package/daemon/dist/domain/bundle-integrity.js.map +1 -1
  257. package/daemon/dist/domain/bundle-source-resolver.d.ts +4 -1
  258. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
  259. package/daemon/dist/domain/bundle-source-resolver.js +73 -19
  260. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
  261. package/daemon/dist/domain/bundle-types.d.ts +38 -1
  262. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  263. package/daemon/dist/domain/bundle-types.js +78 -0
  264. package/daemon/dist/domain/bundle-types.js.map +1 -1
  265. package/daemon/dist/domain/chat-repository.d.ts +5 -0
  266. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  267. package/daemon/dist/domain/chat-repository.js +8 -0
  268. package/daemon/dist/domain/chat-repository.js.map +1 -1
  269. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  270. package/daemon/dist/domain/claim-service.js +5 -4
  271. package/daemon/dist/domain/claim-service.js.map +1 -1
  272. package/daemon/dist/domain/claude-activity-hooks.d.ts +3 -0
  273. package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
  274. package/daemon/dist/domain/claude-activity-hooks.js +8 -1
  275. package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
  276. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +15 -1
  277. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  278. package/daemon/dist/domain/claude-compaction-enforcer.js +87 -23
  279. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  280. package/daemon/dist/domain/codex-team-workspace.d.ts +8 -0
  281. package/daemon/dist/domain/codex-team-workspace.d.ts.map +1 -0
  282. package/daemon/dist/domain/codex-team-workspace.js +54 -0
  283. package/daemon/dist/domain/codex-team-workspace.js.map +1 -0
  284. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  285. package/daemon/dist/domain/codex-thread-id.js +4 -2
  286. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  287. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  288. package/daemon/dist/domain/context-monitor.js +9 -1
  289. package/daemon/dist/domain/context-monitor.js.map +1 -1
  290. package/daemon/dist/domain/daemon-version.d.ts +3 -1
  291. package/daemon/dist/domain/daemon-version.d.ts.map +1 -1
  292. package/daemon/dist/domain/daemon-version.js +6 -1
  293. package/daemon/dist/domain/daemon-version.js.map +1 -1
  294. package/daemon/dist/domain/event-loop-monitor.d.ts +6 -0
  295. package/daemon/dist/domain/event-loop-monitor.d.ts.map +1 -1
  296. package/daemon/dist/domain/event-loop-monitor.js +13 -0
  297. package/daemon/dist/domain/event-loop-monitor.js.map +1 -1
  298. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  299. package/daemon/dist/domain/execution-view.js +57 -11
  300. package/daemon/dist/domain/execution-view.js.map +1 -1
  301. package/daemon/dist/domain/finite-telemetry.d.ts +74 -0
  302. package/daemon/dist/domain/finite-telemetry.d.ts.map +1 -0
  303. package/daemon/dist/domain/finite-telemetry.js +236 -0
  304. package/daemon/dist/domain/finite-telemetry.js.map +1 -0
  305. package/daemon/dist/domain/gateway/connections-projection.d.ts +5 -1
  306. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  307. package/daemon/dist/domain/gateway/connections-projection.js +2 -0
  308. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  309. package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -1
  310. package/daemon/dist/domain/gateway/destination-resolver.js +7 -4
  311. package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -1
  312. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +2 -0
  313. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  314. package/daemon/dist/domain/gateway/gateway-subsystem.js +4 -0
  315. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  316. package/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -1
  317. package/daemon/dist/domain/gateway/human-readiness.js +23 -6
  318. package/daemon/dist/domain/gateway/human-readiness.js.map +1 -1
  319. package/daemon/dist/domain/gateway/human-registry.d.ts +2 -2
  320. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  321. package/daemon/dist/domain/gateway/human-registry.js +2 -2
  322. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  323. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
  324. package/daemon/dist/domain/gateway/slack/capabilities.js +3 -1
  325. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
  326. package/daemon/dist/domain/gateway/slack/channel-map.d.ts +39 -0
  327. package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -0
  328. package/daemon/dist/domain/gateway/slack/channel-map.js +114 -0
  329. package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -0
  330. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts +45 -0
  331. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -0
  332. package/daemon/dist/domain/gateway/slack/channel-recovery.js +176 -0
  333. package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -0
  334. package/daemon/dist/domain/gateway/slack/config.d.ts +7 -0
  335. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  336. package/daemon/dist/domain/gateway/slack/config.js +19 -2
  337. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  338. package/daemon/dist/domain/gateway/slack/inbound.d.ts +27 -2
  339. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  340. package/daemon/dist/domain/gateway/slack/inbound.js +123 -11
  341. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  342. package/daemon/dist/domain/gateway/slack/message.d.ts +7 -0
  343. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  344. package/daemon/dist/domain/gateway/slack/message.js +36 -0
  345. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  346. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +1 -0
  347. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  348. package/daemon/dist/domain/gateway/slack/slack-api.js +3 -1
  349. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  350. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +30 -7
  351. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  352. package/daemon/dist/domain/gateway/slack/slack-delivery.js +253 -51
  353. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  354. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  355. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +97 -11
  356. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  357. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +6 -0
  358. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  359. package/daemon/dist/domain/gateway/slack/socket-inbound.js +51 -1
  360. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  361. package/daemon/dist/domain/gateway/slack/state-store.d.ts +24 -0
  362. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  363. package/daemon/dist/domain/gateway/slack/state-store.js +84 -1
  364. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  365. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  366. package/daemon/dist/domain/gateway/slack/thread-routing.js +22 -2
  367. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  368. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +14 -0
  369. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  370. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +27 -0
  371. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  372. package/daemon/dist/domain/generated-file-hygiene.d.ts +3 -0
  373. package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -0
  374. package/daemon/dist/domain/generated-file-hygiene.js +145 -0
  375. package/daemon/dist/domain/generated-file-hygiene.js.map +1 -0
  376. package/daemon/dist/domain/install-planner.d.ts.map +1 -1
  377. package/daemon/dist/domain/install-planner.js +17 -0
  378. package/daemon/dist/domain/install-planner.js.map +1 -1
  379. package/daemon/dist/domain/managed-blocks.d.ts +1 -0
  380. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  381. package/daemon/dist/domain/managed-blocks.js +8 -2
  382. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  383. package/daemon/dist/domain/markdown-address.d.ts.map +1 -1
  384. package/daemon/dist/domain/markdown-address.js +23 -6
  385. package/daemon/dist/domain/markdown-address.js.map +1 -1
  386. package/daemon/dist/domain/native-permission-store.d.ts +14 -0
  387. package/daemon/dist/domain/native-permission-store.d.ts.map +1 -1
  388. package/daemon/dist/domain/native-permission-store.js +168 -4
  389. package/daemon/dist/domain/native-permission-store.js.map +1 -1
  390. package/daemon/dist/domain/native-process-executable.d.ts +4 -0
  391. package/daemon/dist/domain/native-process-executable.d.ts.map +1 -0
  392. package/daemon/dist/domain/native-process-executable.js +53 -0
  393. package/daemon/dist/domain/native-process-executable.js.map +1 -0
  394. package/daemon/dist/domain/native-process-lineage.d.ts +2 -0
  395. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  396. package/daemon/dist/domain/native-process-lineage.js +70 -8
  397. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  398. package/daemon/dist/domain/native-resume-probe.d.ts +3 -1
  399. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  400. package/daemon/dist/domain/native-resume-probe.js +38 -7
  401. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  402. package/daemon/dist/domain/node-inventory.d.ts +2 -2
  403. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  404. package/daemon/dist/domain/node-inventory.js +30 -4
  405. package/daemon/dist/domain/node-inventory.js.map +1 -1
  406. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  407. package/daemon/dist/domain/node-launcher.js +1 -0
  408. package/daemon/dist/domain/node-launcher.js.map +1 -1
  409. package/daemon/dist/domain/pane-binding-observation.d.ts +1 -0
  410. package/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -1
  411. package/daemon/dist/domain/pane-binding-observation.js +3 -1
  412. package/daemon/dist/domain/pane-binding-observation.js.map +1 -1
  413. package/daemon/dist/domain/permission-policy/policy-ref.d.ts +6 -1
  414. package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -1
  415. package/daemon/dist/domain/permission-policy/policy-ref.js +16 -4
  416. package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -1
  417. package/daemon/dist/domain/permission-policy/policy-spec.d.ts +1 -1
  418. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
  419. package/daemon/dist/domain/permission-policy/policy-spec.js +2 -2
  420. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
  421. package/daemon/dist/domain/plugin-vendor-service.d.ts +6 -0
  422. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  423. package/daemon/dist/domain/plugin-vendor-service.js +12 -0
  424. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  425. package/daemon/dist/domain/profile-resolver.d.ts +3 -2
  426. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  427. package/daemon/dist/domain/profile-resolver.js +71 -9
  428. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  429. package/daemon/dist/domain/projection-planner.d.ts +11 -0
  430. package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
  431. package/daemon/dist/domain/projection-planner.js +1 -1
  432. package/daemon/dist/domain/projection-planner.js.map +1 -1
  433. package/daemon/dist/domain/ps-projection.d.ts +11 -9
  434. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  435. package/daemon/dist/domain/ps-projection.js +15 -12
  436. package/daemon/dist/domain/ps-projection.js.map +1 -1
  437. package/daemon/dist/domain/queue-repository.d.ts +2 -0
  438. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  439. package/daemon/dist/domain/queue-repository.js +75 -24
  440. package/daemon/dist/domain/queue-repository.js.map +1 -1
  441. package/daemon/dist/domain/queue-retention.d.ts +2 -2
  442. package/daemon/dist/domain/queue-retention.js +4 -4
  443. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  444. package/daemon/dist/domain/queue-transition-log.js +12 -10
  445. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  446. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
  447. package/daemon/dist/domain/queue-wait-backoff.js +6 -2
  448. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
  449. package/daemon/dist/domain/queue-waiting.d.ts.map +1 -1
  450. package/daemon/dist/domain/queue-waiting.js +7 -2
  451. package/daemon/dist/domain/queue-waiting.js.map +1 -1
  452. package/daemon/dist/domain/queue-wake-ladder.d.ts +15 -2
  453. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  454. package/daemon/dist/domain/queue-wake-ladder.js +29 -6
  455. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  456. package/daemon/dist/domain/readiness-timeout.d.ts +7 -0
  457. package/daemon/dist/domain/readiness-timeout.d.ts.map +1 -0
  458. package/daemon/dist/domain/readiness-timeout.js +19 -0
  459. package/daemon/dist/domain/readiness-timeout.js.map +1 -0
  460. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  461. package/daemon/dist/domain/rehydrate-eligibility.js +5 -2
  462. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  463. package/daemon/dist/domain/reply-to-choice.d.ts +6 -2
  464. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
  465. package/daemon/dist/domain/reply-to-choice.js +9 -6
  466. package/daemon/dist/domain/reply-to-choice.js.map +1 -1
  467. package/daemon/dist/domain/request-phase-observer.d.ts +69 -0
  468. package/daemon/dist/domain/request-phase-observer.d.ts.map +1 -0
  469. package/daemon/dist/domain/request-phase-observer.js +206 -0
  470. package/daemon/dist/domain/request-phase-observer.js.map +1 -0
  471. package/daemon/dist/domain/restore-check-service.d.ts +5 -1
  472. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  473. package/daemon/dist/domain/restore-check-service.js +17 -3
  474. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  475. package/daemon/dist/domain/restore-orchestrator.d.ts +2 -0
  476. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  477. package/daemon/dist/domain/restore-orchestrator.js +58 -12
  478. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  479. package/daemon/dist/domain/rig-mode/operating-posture.d.ts +17 -1
  480. package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
  481. package/daemon/dist/domain/rig-mode/operating-posture.js +53 -15
  482. package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
  483. package/daemon/dist/domain/rig-repository.d.ts +15 -6
  484. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  485. package/daemon/dist/domain/rig-repository.js +62 -10
  486. package/daemon/dist/domain/rig-repository.js.map +1 -1
  487. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  488. package/daemon/dist/domain/rig-teardown.js +12 -3
  489. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  490. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  491. package/daemon/dist/domain/rigspec-codec.js +2 -0
  492. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  493. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  494. package/daemon/dist/domain/rigspec-exporter.js +1 -0
  495. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  496. package/daemon/dist/domain/rigspec-instantiator.d.ts +9 -3
  497. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  498. package/daemon/dist/domain/rigspec-instantiator.js +46 -13
  499. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  500. package/daemon/dist/domain/rigspec-preflight.d.ts +3 -2
  501. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  502. package/daemon/dist/domain/rigspec-preflight.js +24 -12
  503. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  504. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  505. package/daemon/dist/domain/rigspec-schema.js +24 -5
  506. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  507. package/daemon/dist/domain/route-timing-recorder.d.ts.map +1 -1
  508. package/daemon/dist/domain/route-timing-recorder.js +2 -0
  509. package/daemon/dist/domain/route-timing-recorder.js.map +1 -1
  510. package/daemon/dist/domain/runtime-adapter.d.ts +12 -3
  511. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  512. package/daemon/dist/domain/runtime-adapter.js +1 -0
  513. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  514. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  515. package/daemon/dist/domain/seat-activity-service.js +16 -6
  516. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  517. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  518. package/daemon/dist/domain/seat-attention-reconciler.js +10 -4
  519. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  520. package/daemon/dist/domain/seat-handover-service.d.ts +2 -0
  521. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  522. package/daemon/dist/domain/seat-handover-service.js +14 -8
  523. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  524. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -1
  525. package/daemon/dist/domain/seat-launch-environment.js +4 -0
  526. package/daemon/dist/domain/seat-launch-environment.js.map +1 -1
  527. package/daemon/dist/domain/seat-lifecycle-service.d.ts +4 -0
  528. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  529. package/daemon/dist/domain/seat-lifecycle-service.js +4 -0
  530. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  531. package/daemon/dist/domain/seat-status-service.d.ts +2 -1
  532. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  533. package/daemon/dist/domain/seat-status-service.js +6 -4
  534. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  535. package/daemon/dist/domain/service-orchestrator.d.ts +1 -0
  536. package/daemon/dist/domain/service-orchestrator.d.ts.map +1 -1
  537. package/daemon/dist/domain/service-orchestrator.js +4 -0
  538. package/daemon/dist/domain/service-orchestrator.js.map +1 -1
  539. package/daemon/dist/domain/session-jsonl.d.ts.map +1 -1
  540. package/daemon/dist/domain/session-jsonl.js +10 -4
  541. package/daemon/dist/domain/session-jsonl.js.map +1 -1
  542. package/daemon/dist/domain/session-transport.d.ts +9 -20
  543. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  544. package/daemon/dist/domain/session-transport.js +198 -44
  545. package/daemon/dist/domain/session-transport.js.map +1 -1
  546. package/daemon/dist/domain/skill-audit.d.ts +19 -0
  547. package/daemon/dist/domain/skill-audit.d.ts.map +1 -1
  548. package/daemon/dist/domain/skill-audit.js +97 -5
  549. package/daemon/dist/domain/skill-audit.js.map +1 -1
  550. package/daemon/dist/domain/skill-catalog.d.ts +19 -0
  551. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  552. package/daemon/dist/domain/skill-catalog.js +175 -17
  553. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  554. package/daemon/dist/domain/skill-discovery.d.ts +1 -1
  555. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  556. package/daemon/dist/domain/skill-discovery.js +6 -0
  557. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  558. package/daemon/dist/domain/skill-mirror-drift.d.ts +6 -1
  559. package/daemon/dist/domain/skill-mirror-drift.d.ts.map +1 -1
  560. package/daemon/dist/domain/skill-mirror-drift.js +23 -12
  561. package/daemon/dist/domain/skill-mirror-drift.js.map +1 -1
  562. package/daemon/dist/domain/slow-op-recorder.d.ts +5 -0
  563. package/daemon/dist/domain/slow-op-recorder.d.ts.map +1 -1
  564. package/daemon/dist/domain/slow-op-recorder.js +34 -1
  565. package/daemon/dist/domain/slow-op-recorder.js.map +1 -1
  566. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  567. package/daemon/dist/domain/snapshot-repository.js +12 -32
  568. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  569. package/daemon/dist/domain/startup-orchestrator.d.ts +30 -5
  570. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  571. package/daemon/dist/domain/startup-orchestrator.js +143 -43
  572. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  573. package/daemon/dist/domain/startup-proof.d.ts +7 -0
  574. package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  575. package/daemon/dist/domain/startup-proof.js +7 -0
  576. package/daemon/dist/domain/startup-proof.js.map +1 -1
  577. package/daemon/dist/domain/startup-submission-evidence.d.ts +5 -1
  578. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  579. package/daemon/dist/domain/startup-submission-evidence.js +19 -2
  580. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  581. package/daemon/dist/domain/successor-session-launcher.d.ts +9 -3
  582. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  583. package/daemon/dist/domain/successor-session-launcher.js +12 -4
  584. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  585. package/daemon/dist/domain/system-world.d.ts +3 -0
  586. package/daemon/dist/domain/system-world.d.ts.map +1 -1
  587. package/daemon/dist/domain/system-world.js +24 -21
  588. package/daemon/dist/domain/system-world.js.map +1 -1
  589. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
  590. package/daemon/dist/domain/terminal/cmux-provider-adapter.js +2 -3
  591. package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
  592. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +23 -5
  593. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  594. package/daemon/dist/domain/terminal/herdr-adapter.js +116 -15
  595. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  596. package/daemon/dist/domain/terminal/terminal-provider.d.ts +11 -0
  597. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  598. package/daemon/dist/domain/terminal/terminal-service.d.ts +14 -0
  599. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  600. package/daemon/dist/domain/terminal/terminal-service.js +91 -10
  601. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  602. package/daemon/dist/domain/terminal/view-composer.d.ts +6 -0
  603. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  604. package/daemon/dist/domain/terminal/view-composer.js +4 -2
  605. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  606. package/daemon/dist/domain/topology/remote-up-leaf.d.ts +1 -0
  607. package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -1
  608. package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -1
  609. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  610. package/daemon/dist/domain/transcript-store.js +24 -11
  611. package/daemon/dist/domain/transcript-store.js.map +1 -1
  612. package/daemon/dist/domain/types.d.ts +8 -0
  613. package/daemon/dist/domain/types.d.ts.map +1 -1
  614. package/daemon/dist/domain/types.js.map +1 -1
  615. package/daemon/dist/domain/usage-samples-store.js +2 -2
  616. package/daemon/dist/domain/usage-samples-store.js.map +1 -1
  617. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  618. package/daemon/dist/domain/usage-series.js +42 -10
  619. package/daemon/dist/domain/usage-series.js.map +1 -1
  620. package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -1
  621. package/daemon/dist/domain/user-settings/settings-browser.js +2 -0
  622. package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
  623. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  624. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  625. package/daemon/dist/domain/user-settings/settings-store.js +14 -1
  626. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  627. package/daemon/dist/domain/watchdog-due.d.ts +17 -0
  628. package/daemon/dist/domain/watchdog-due.d.ts.map +1 -0
  629. package/daemon/dist/domain/watchdog-due.js +45 -0
  630. package/daemon/dist/domain/watchdog-due.js.map +1 -0
  631. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  632. package/daemon/dist/domain/watchdog-scheduler.js +3 -7
  633. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  634. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  635. package/daemon/dist/domain/workflow-projector.js +15 -5
  636. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  637. package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
  638. package/daemon/dist/domain/workflow-runtime.js +1 -1
  639. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  640. package/daemon/dist/domain/workflow-step-trail-log.d.ts +6 -0
  641. package/daemon/dist/domain/workflow-step-trail-log.d.ts.map +1 -1
  642. package/daemon/dist/domain/workflow-step-trail-log.js +11 -0
  643. package/daemon/dist/domain/workflow-step-trail-log.js.map +1 -1
  644. package/daemon/dist/domain/workspace/project-catalog.d.ts +20 -0
  645. package/daemon/dist/domain/workspace/project-catalog.d.ts.map +1 -1
  646. package/daemon/dist/domain/workspace/project-catalog.js +92 -0
  647. package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
  648. package/daemon/dist/domain/workspace/project-registration.d.ts +49 -0
  649. package/daemon/dist/domain/workspace/project-registration.d.ts.map +1 -0
  650. package/daemon/dist/domain/workspace/project-registration.js +251 -0
  651. package/daemon/dist/domain/workspace/project-registration.js.map +1 -0
  652. package/daemon/dist/gateway-slack-surface.d.ts +1 -0
  653. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  654. package/daemon/dist/gateway-slack-surface.js +2 -1
  655. package/daemon/dist/gateway-slack-surface.js.map +1 -1
  656. package/daemon/dist/index.d.ts +1 -0
  657. package/daemon/dist/index.d.ts.map +1 -1
  658. package/daemon/dist/index.js +9 -8
  659. package/daemon/dist/index.js.map +1 -1
  660. package/daemon/dist/project-catalog-surface.d.ts +2 -1
  661. package/daemon/dist/project-catalog-surface.d.ts.map +1 -1
  662. package/daemon/dist/project-catalog-surface.js +1 -1
  663. package/daemon/dist/project-catalog-surface.js.map +1 -1
  664. package/daemon/dist/routes/agent-images.js +5 -5
  665. package/daemon/dist/routes/agent-images.js.map +1 -1
  666. package/daemon/dist/routes/bootstrap-failure-response.d.ts +13 -0
  667. package/daemon/dist/routes/bootstrap-failure-response.d.ts.map +1 -0
  668. package/daemon/dist/routes/bootstrap-failure-response.js +52 -0
  669. package/daemon/dist/routes/bootstrap-failure-response.js.map +1 -0
  670. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  671. package/daemon/dist/routes/bundles.js +197 -449
  672. package/daemon/dist/routes/bundles.js.map +1 -1
  673. package/daemon/dist/routes/chat.d.ts.map +1 -1
  674. package/daemon/dist/routes/chat.js +16 -1
  675. package/daemon/dist/routes/chat.js.map +1 -1
  676. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  677. package/daemon/dist/routes/compaction.js +14 -2
  678. package/daemon/dist/routes/compaction.js.map +1 -1
  679. package/daemon/dist/routes/env.d.ts.map +1 -1
  680. package/daemon/dist/routes/env.js +14 -4
  681. package/daemon/dist/routes/env.js.map +1 -1
  682. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  683. package/daemon/dist/routes/gateway.js +5 -0
  684. package/daemon/dist/routes/gateway.js.map +1 -1
  685. package/daemon/dist/routes/projects.d.ts.map +1 -1
  686. package/daemon/dist/routes/projects.js +4 -2
  687. package/daemon/dist/routes/projects.js.map +1 -1
  688. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  689. package/daemon/dist/routes/restore-check.js +2 -0
  690. package/daemon/dist/routes/restore-check.js.map +1 -1
  691. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  692. package/daemon/dist/routes/rigs.js +5 -4
  693. package/daemon/dist/routes/rigs.js.map +1 -1
  694. package/daemon/dist/routes/rigspec.js +4 -2
  695. package/daemon/dist/routes/rigspec.js.map +1 -1
  696. package/daemon/dist/routes/seat.js +23 -16
  697. package/daemon/dist/routes/seat.js.map +1 -1
  698. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  699. package/daemon/dist/routes/sessions.js +12 -11
  700. package/daemon/dist/routes/sessions.js.map +1 -1
  701. package/daemon/dist/routes/skills.d.ts.map +1 -1
  702. package/daemon/dist/routes/skills.js +15 -7
  703. package/daemon/dist/routes/skills.js.map +1 -1
  704. package/daemon/dist/routes/telemetry.d.ts +2 -0
  705. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  706. package/daemon/dist/routes/telemetry.js +16 -0
  707. package/daemon/dist/routes/telemetry.js.map +1 -1
  708. package/daemon/dist/routes/terminal-ws.js +15 -2
  709. package/daemon/dist/routes/terminal-ws.js.map +1 -1
  710. package/daemon/dist/routes/terminal.d.ts.map +1 -1
  711. package/daemon/dist/routes/terminal.js +6 -4
  712. package/daemon/dist/routes/terminal.js.map +1 -1
  713. package/daemon/dist/routes/up.d.ts.map +1 -1
  714. package/daemon/dist/routes/up.js +12 -59
  715. package/daemon/dist/routes/up.js.map +1 -1
  716. package/daemon/dist/server.d.ts +1 -0
  717. package/daemon/dist/server.d.ts.map +1 -1
  718. package/daemon/dist/server.js +4 -1
  719. package/daemon/dist/server.js.map +1 -1
  720. package/daemon/dist/spec-validation-surface.d.ts +2 -0
  721. package/daemon/dist/spec-validation-surface.d.ts.map +1 -1
  722. package/daemon/dist/spec-validation-surface.js +2 -0
  723. package/daemon/dist/spec-validation-surface.js.map +1 -1
  724. package/daemon/dist/startup.d.ts.map +1 -1
  725. package/daemon/dist/startup.js +65 -18
  726. package/daemon/dist/startup.js.map +1 -1
  727. package/daemon/dist/system-world-surface.d.ts +1 -1
  728. package/daemon/dist/system-world-surface.d.ts.map +1 -1
  729. package/daemon/dist/system-world-surface.js +1 -1
  730. package/daemon/dist/system-world-surface.js.map +1 -1
  731. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  732. package/daemon/dist/terminal/TerminalSessionBroker.js +9 -1
  733. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  734. package/daemon/docs/reference/agent-spec.md +114 -68
  735. package/daemon/docs/reference/agent-startup-guide.md +111 -33
  736. package/daemon/docs/reference/agent-state-taxonomy.md +44 -13
  737. package/daemon/docs/reference/browser-access.md +8 -7
  738. package/daemon/docs/reference/bundle-formats.md +209 -0
  739. package/daemon/docs/reference/chain-file-convention.md +18 -9
  740. package/daemon/docs/reference/developing.md +8 -1
  741. package/daemon/docs/reference/edge-types.md +18 -10
  742. package/daemon/docs/reference/getting-started.md +593 -139
  743. package/daemon/docs/reference/health-diagnosis.md +14 -6
  744. package/daemon/docs/reference/help.md +66 -12
  745. package/daemon/docs/reference/host-resources.md +3 -2
  746. package/daemon/docs/reference/inventory-request-diagnostics.md +75 -0
  747. package/daemon/docs/reference/knowledge-maturity.md +3 -1
  748. package/daemon/docs/reference/legacy-topology-migration.md +4 -2
  749. package/daemon/docs/reference/lore-routing.md +3 -1
  750. package/daemon/docs/reference/mission-install.md +3 -1
  751. package/daemon/docs/reference/non-interruptive-mode.md +63 -0
  752. package/daemon/docs/reference/planning-dial.md +2 -1
  753. package/daemon/docs/reference/product-journey-sdlc.md +11 -6
  754. package/daemon/docs/reference/product-management-pass.md +3 -1
  755. package/daemon/docs/reference/project-workspace.md +81 -4
  756. package/daemon/docs/reference/publishing-a-rig-bundle.md +147 -0
  757. package/daemon/docs/reference/refocus-channel.md +28 -7
  758. package/daemon/docs/reference/release-boundary.md +7 -3
  759. package/daemon/docs/reference/rig-bundle.md +292 -43
  760. package/daemon/docs/reference/rig-spec.md +175 -26
  761. package/daemon/docs/reference/rosters.md +61 -0
  762. package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +546 -0
  763. package/daemon/docs/reference/schemas/bundle-common.v1.schema.json +110 -0
  764. package/daemon/docs/reference/schemas/bundle-configurations.v1.schema.json +67 -0
  765. package/daemon/docs/reference/schemas/bundle-status.v1.schema.json +323 -0
  766. package/daemon/docs/reference/schemas/fixtures/identity-vectors.json +80 -0
  767. package/daemon/docs/reference/schemas/fixtures/invalid/behaviour/not-generated-with-sections.json +60 -0
  768. package/daemon/docs/reference/schemas/fixtures/invalid/configurations/spaced-member.configurations.yaml +6 -0
  769. package/daemon/docs/reference/schemas/fixtures/invalid/registry/listed-with-withdrawn-on.yaml +21 -0
  770. package/daemon/docs/reference/schemas/fixtures/invalid/registry/missing-source.yaml +16 -0
  771. package/daemon/docs/reference/schemas/fixtures/invalid/registry/parent-folder.yaml +20 -0
  772. package/daemon/docs/reference/schemas/fixtures/invalid/registry/short-commit.yaml +20 -0
  773. package/daemon/docs/reference/schemas/fixtures/invalid/registry/withdrawn-without-date.yaml +20 -0
  774. package/daemon/docs/reference/schemas/fixtures/invalid/run-record/harness-check-with-configuration.json +75 -0
  775. package/daemon/docs/reference/schemas/fixtures/invalid/run-record/unlabelable-platform.json +97 -0
  776. package/daemon/docs/reference/schemas/fixtures/invalid/status/hand-edited-notice.json +61 -0
  777. package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-with-assistance.json +62 -0
  778. package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-without-records.json +59 -0
  779. package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-harness-with-result.json +61 -0
  780. package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-listing-with-label.json +61 -0
  781. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/custom-not-generated.json +22 -0
  782. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/legacy-archive-unknown-identity.json +53 -0
  783. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-default.json +101 -0
  784. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-yolo.json +102 -0
  785. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/openrig-dev.recommended.json +258 -0
  786. package/daemon/docs/reference/schemas/fixtures/valid/configurations/openrig-dev.configurations.yaml +12 -0
  787. package/daemon/docs/reference/schemas/fixtures/valid/registry/openrig-dev.yaml +20 -0
  788. package/daemon/docs/reference/schemas/fixtures/valid/registry/withdrawn.yaml +21 -0
  789. package/daemon/docs/reference/schemas/fixtures/valid/run-record/pi-harness-check-blocked.json +74 -0
  790. package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-assisted-pass.json +97 -0
  791. package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-pass.json +97 -0
  792. package/daemon/docs/reference/schemas/fixtures/valid/run-record/withdraws-earlier.json +99 -0
  793. package/daemon/docs/reference/schemas/fixtures/valid/status/status.json +61 -0
  794. package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +139 -0
  795. package/daemon/docs/reference/schemas/run-record.v1.schema.json +315 -0
  796. package/daemon/docs/reference/scoped-operating-posture.md +17 -9
  797. package/daemon/docs/reference/sdlc-conventions.md +46 -28
  798. package/daemon/docs/reference/slack-app-setup.md +112 -11
  799. package/daemon/docs/reference/stream-classifier-worker.md +21 -8
  800. package/daemon/docs/reference/telemetry.md +114 -0
  801. package/daemon/docs/reference/whats-new.md +134 -0
  802. package/daemon/docs/reference/worktree-builds.md +12 -6
  803. package/daemon/policies/builtin/auto.policy.md +24 -0
  804. package/daemon/specs/agents/development/implementer/agent.yaml +2 -2
  805. package/daemon/specs/agents/development/qa/agent.yaml +1 -1
  806. package/daemon/specs/agents/product-management/pm/agent.yaml +10 -0
  807. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +0 -6
  808. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
  809. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +5 -5
  810. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +4 -5
  811. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +31 -21
  812. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +31 -31
  813. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +2 -0
  814. package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
  815. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +0 -5
  816. package/daemon/specs/agents/shared/skills/process/agent-browser/OPENRIG.md +1 -1
  817. package/daemon/specs/agents/shared/skills/process/systematic-debugging/SKILL.md +0 -2
  818. package/daemon/specs/rigs/focused/{adversarial-review → code-review}/rig.yaml +1 -1
  819. package/daemon/specs/rigs/focused/pm/CULTURE.md +21 -0
  820. package/daemon/specs/rigs/focused/{pm-team → pm}/rig.yaml +5 -5
  821. package/daemon/specs/rigs/focused/{research-team → research}/rig.yaml +1 -1
  822. package/daemon/specs/rigs/launch/factory/CULTURE.md +96 -0
  823. package/daemon/specs/rigs/launch/factory/guidance/advisor-role.md +10 -0
  824. package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +83 -0
  825. package/daemon/specs/rigs/launch/{demo → factory}/rig.yaml +46 -35
  826. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/instance/CRAFT.md +1 -1
  827. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/CRAFT.md +2 -2
  828. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/ORCHESTRATION-CRAFT.md +2 -2
  829. package/daemon/specs/rigs/{preview/product-team/topology/seats/dev1-qa → launch/factory/topology/seats/dev-qa}/CRAFT.md +1 -1
  830. package/daemon/specs/rigs/{preview/product-team/topology/seats/orch1-lead → launch/factory/topology/seats/orch-lead}/CRAFT.md +1 -1
  831. package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r1 → launch/factory/topology/seats/review-r1}/CRAFT.md +1 -1
  832. package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r2 → launch/factory/topology/seats/review-r2}/CRAFT.md +1 -1
  833. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +37 -0
  834. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +12 -13
  835. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +258 -9
  836. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +30 -7
  837. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +37 -0
  838. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +46 -2
  839. package/daemon/specs/rigs/launch/starter/CULTURE.md +39 -0
  840. package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +67 -0
  841. package/daemon/specs/rigs/launch/{first-project-mixed → starter}/rig.yaml +11 -8
  842. package/dist/build-info.js +3 -3
  843. package/dist/bundle-behaviour.d.ts +10 -0
  844. package/dist/bundle-behaviour.d.ts.map +1 -0
  845. package/dist/bundle-behaviour.js +72 -0
  846. package/dist/bundle-behaviour.js.map +1 -0
  847. package/dist/cli-error.d.ts.map +1 -1
  848. package/dist/cli-error.js +11 -3
  849. package/dist/cli-error.js.map +1 -1
  850. package/dist/client.d.ts +2 -0
  851. package/dist/client.d.ts.map +1 -1
  852. package/dist/client.js +2 -0
  853. package/dist/client.js.map +1 -1
  854. package/dist/commands/agent-image.js +2 -2
  855. package/dist/commands/agent-image.js.map +1 -1
  856. package/dist/commands/bootstrap.d.ts.map +1 -1
  857. package/dist/commands/bootstrap.js +30 -5
  858. package/dist/commands/bootstrap.js.map +1 -1
  859. package/dist/commands/bundle.d.ts +12 -0
  860. package/dist/commands/bundle.d.ts.map +1 -1
  861. package/dist/commands/bundle.js +288 -22
  862. package/dist/commands/bundle.js.map +1 -1
  863. package/dist/commands/capture.js +4 -4
  864. package/dist/commands/capture.js.map +1 -1
  865. package/dist/commands/chatroom.d.ts.map +1 -1
  866. package/dist/commands/chatroom.js +21 -1
  867. package/dist/commands/chatroom.js.map +1 -1
  868. package/dist/commands/compact-plan.js +2 -2
  869. package/dist/commands/compact-plan.js.map +1 -1
  870. package/dist/commands/config.d.ts.map +1 -1
  871. package/dist/commands/config.js +3 -0
  872. package/dist/commands/config.js.map +1 -1
  873. package/dist/commands/context.d.ts +3 -1
  874. package/dist/commands/context.d.ts.map +1 -1
  875. package/dist/commands/context.js +70 -20
  876. package/dist/commands/context.js.map +1 -1
  877. package/dist/commands/daemon.js +1 -1
  878. package/dist/commands/daemon.js.map +1 -1
  879. package/dist/commands/doctor.d.ts +3 -1
  880. package/dist/commands/doctor.d.ts.map +1 -1
  881. package/dist/commands/doctor.js +17 -5
  882. package/dist/commands/doctor.js.map +1 -1
  883. package/dist/commands/down.d.ts.map +1 -1
  884. package/dist/commands/down.js +49 -1
  885. package/dist/commands/down.js.map +1 -1
  886. package/dist/commands/env.js +1 -1
  887. package/dist/commands/env.js.map +1 -1
  888. package/dist/commands/gateway.d.ts.map +1 -1
  889. package/dist/commands/gateway.js +4 -3
  890. package/dist/commands/gateway.js.map +1 -1
  891. package/dist/commands/health.d.ts.map +1 -1
  892. package/dist/commands/health.js +4 -1
  893. package/dist/commands/health.js.map +1 -1
  894. package/dist/commands/host.d.ts +11 -0
  895. package/dist/commands/host.d.ts.map +1 -1
  896. package/dist/commands/host.js +25 -1
  897. package/dist/commands/host.js.map +1 -1
  898. package/dist/commands/import.d.ts.map +1 -1
  899. package/dist/commands/import.js +2 -0
  900. package/dist/commands/import.js.map +1 -1
  901. package/dist/commands/mcp.d.ts.map +1 -1
  902. package/dist/commands/mcp.js +25 -12
  903. package/dist/commands/mcp.js.map +1 -1
  904. package/dist/commands/package.d.ts.map +1 -1
  905. package/dist/commands/package.js +6 -3
  906. package/dist/commands/package.js.map +1 -1
  907. package/dist/commands/policy.d.ts.map +1 -1
  908. package/dist/commands/policy.js +9 -7
  909. package/dist/commands/policy.js.map +1 -1
  910. package/dist/commands/project-jev.js +1 -1
  911. package/dist/commands/project-jev.js.map +1 -1
  912. package/dist/commands/project.d.ts.map +1 -1
  913. package/dist/commands/project.js +5 -3
  914. package/dist/commands/project.js.map +1 -1
  915. package/dist/commands/ps.d.ts +1 -0
  916. package/dist/commands/ps.d.ts.map +1 -1
  917. package/dist/commands/ps.js +12 -2
  918. package/dist/commands/ps.js.map +1 -1
  919. package/dist/commands/queue.d.ts.map +1 -1
  920. package/dist/commands/queue.js +10 -5
  921. package/dist/commands/queue.js.map +1 -1
  922. package/dist/commands/restore-packet.d.ts.map +1 -1
  923. package/dist/commands/restore-packet.js +6 -4
  924. package/dist/commands/restore-packet.js.map +1 -1
  925. package/dist/commands/restore.d.ts.map +1 -1
  926. package/dist/commands/restore.js +5 -0
  927. package/dist/commands/restore.js.map +1 -1
  928. package/dist/commands/roster.d.ts +63 -0
  929. package/dist/commands/roster.d.ts.map +1 -0
  930. package/dist/commands/roster.js +169 -0
  931. package/dist/commands/roster.js.map +1 -0
  932. package/dist/commands/scope.js +5 -5
  933. package/dist/commands/scope.js.map +1 -1
  934. package/dist/commands/seat.d.ts.map +1 -1
  935. package/dist/commands/seat.js +57 -8
  936. package/dist/commands/seat.js.map +1 -1
  937. package/dist/commands/send.d.ts.map +1 -1
  938. package/dist/commands/send.js +20 -6
  939. package/dist/commands/send.js.map +1 -1
  940. package/dist/commands/setup.d.ts +7 -16
  941. package/dist/commands/setup.d.ts.map +1 -1
  942. package/dist/commands/setup.js +174 -338
  943. package/dist/commands/setup.js.map +1 -1
  944. package/dist/commands/skill.d.ts.map +1 -1
  945. package/dist/commands/skill.js +6 -1
  946. package/dist/commands/skill.js.map +1 -1
  947. package/dist/commands/slack.d.ts +6 -2
  948. package/dist/commands/slack.d.ts.map +1 -1
  949. package/dist/commands/slack.js +192 -10
  950. package/dist/commands/slack.js.map +1 -1
  951. package/dist/commands/specs.d.ts.map +1 -1
  952. package/dist/commands/specs.js +19 -2
  953. package/dist/commands/specs.js.map +1 -1
  954. package/dist/commands/start.js +1 -1
  955. package/dist/commands/start.js.map +1 -1
  956. package/dist/commands/stream.js +1 -1
  957. package/dist/commands/stream.js.map +1 -1
  958. package/dist/commands/telemetry.d.ts +5 -0
  959. package/dist/commands/telemetry.d.ts.map +1 -0
  960. package/dist/commands/telemetry.js +58 -0
  961. package/dist/commands/telemetry.js.map +1 -0
  962. package/dist/commands/terminal.d.ts +33 -0
  963. package/dist/commands/terminal.d.ts.map +1 -1
  964. package/dist/commands/terminal.js +30 -12
  965. package/dist/commands/terminal.js.map +1 -1
  966. package/dist/commands/tui.js +4 -4
  967. package/dist/commands/tui.js.map +1 -1
  968. package/dist/commands/up.d.ts.map +1 -1
  969. package/dist/commands/up.js +115 -68
  970. package/dist/commands/up.js.map +1 -1
  971. package/dist/commands/whoami.d.ts +3 -0
  972. package/dist/commands/whoami.d.ts.map +1 -1
  973. package/dist/commands/whoami.js +29 -2
  974. package/dist/commands/whoami.js.map +1 -1
  975. package/dist/commands/workflow-follow.d.ts +1 -1
  976. package/dist/commands/workflow-follow.d.ts.map +1 -1
  977. package/dist/commands/workflow-follow.js +4 -3
  978. package/dist/commands/workflow-follow.js.map +1 -1
  979. package/dist/commands/workflow.d.ts.map +1 -1
  980. package/dist/commands/workflow.js +30 -18
  981. package/dist/commands/workflow.js.map +1 -1
  982. package/dist/config-store.d.ts +5 -1
  983. package/dist/config-store.d.ts.map +1 -1
  984. package/dist/config-store.js +17 -2
  985. package/dist/config-store.js.map +1 -1
  986. package/dist/daemon-auto-start.d.ts +8 -0
  987. package/dist/daemon-auto-start.d.ts.map +1 -0
  988. package/dist/daemon-auto-start.js +39 -0
  989. package/dist/daemon-auto-start.js.map +1 -0
  990. package/dist/front-door.d.ts.map +1 -1
  991. package/dist/front-door.js +5 -2
  992. package/dist/front-door.js.map +1 -1
  993. package/dist/herdr-launch-config.d.ts +3 -0
  994. package/dist/herdr-launch-config.d.ts.map +1 -0
  995. package/dist/herdr-launch-config.js +37 -0
  996. package/dist/herdr-launch-config.js.map +1 -0
  997. package/dist/index.d.ts +1 -0
  998. package/dist/index.d.ts.map +1 -1
  999. package/dist/index.js +6 -1
  1000. package/dist/index.js.map +1 -1
  1001. package/dist/lib/bundle-check.d.ts +13 -0
  1002. package/dist/lib/bundle-check.d.ts.map +1 -0
  1003. package/dist/lib/bundle-check.js +191 -0
  1004. package/dist/lib/bundle-check.js.map +1 -0
  1005. package/dist/lib/bundle-configuration.d.ts +60 -0
  1006. package/dist/lib/bundle-configuration.d.ts.map +1 -0
  1007. package/dist/lib/bundle-configuration.js +198 -0
  1008. package/dist/lib/bundle-configuration.js.map +1 -0
  1009. package/dist/lib/bundle-source.d.ts +59 -0
  1010. package/dist/lib/bundle-source.d.ts.map +1 -0
  1011. package/dist/lib/bundle-source.js +366 -0
  1012. package/dist/lib/bundle-source.js.map +1 -0
  1013. package/dist/lib/context-git.d.ts +2 -0
  1014. package/dist/lib/context-git.d.ts.map +1 -1
  1015. package/dist/lib/context-git.js +55 -5
  1016. package/dist/lib/context-git.js.map +1 -1
  1017. package/dist/lib/context-install.d.ts.map +1 -1
  1018. package/dist/lib/context-install.js +2 -3
  1019. package/dist/lib/context-install.js.map +1 -1
  1020. package/dist/lib/permission-policy/policy-ref.d.ts +6 -1
  1021. package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -1
  1022. package/dist/lib/permission-policy/policy-ref.js +16 -4
  1023. package/dist/lib/permission-policy/policy-ref.js.map +1 -1
  1024. package/dist/lib/permission-policy/policy-spec.d.ts +1 -1
  1025. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
  1026. package/dist/lib/permission-policy/policy-spec.js +2 -2
  1027. package/dist/lib/permission-policy/policy-spec.js.map +1 -1
  1028. package/dist/lib/scope/scope-fs.d.ts +3 -2
  1029. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  1030. package/dist/lib/scope/scope-fs.js +97 -9
  1031. package/dist/lib/scope/scope-fs.js.map +1 -1
  1032. package/dist/lib/scope/templates.d.ts.map +1 -1
  1033. package/dist/lib/scope/templates.js +28 -23
  1034. package/dist/lib/scope/templates.js.map +1 -1
  1035. package/dist/lib/scope-templates/notes.md +1 -1
  1036. package/dist/lib/work-install.d.ts +12 -0
  1037. package/dist/lib/work-install.d.ts.map +1 -1
  1038. package/dist/lib/work-install.js +55 -4
  1039. package/dist/lib/work-install.js.map +1 -1
  1040. package/dist/provider-auth.d.ts +32 -0
  1041. package/dist/provider-auth.d.ts.map +1 -0
  1042. package/dist/provider-auth.js +128 -0
  1043. package/dist/provider-auth.js.map +1 -0
  1044. package/dist/terminal-window.d.ts +19 -0
  1045. package/dist/terminal-window.d.ts.map +1 -0
  1046. package/dist/terminal-window.js +513 -0
  1047. package/dist/terminal-window.js.map +1 -0
  1048. package/package.json +1 -1
  1049. package/tui/dist/commands/registry.d.ts.map +1 -1
  1050. package/tui/dist/commands/registry.js +9 -4
  1051. package/tui/dist/commands/registry.js.map +1 -1
  1052. package/tui/dist/config/config-model.d.ts.map +1 -1
  1053. package/tui/dist/config/config-model.js +1 -0
  1054. package/tui/dist/config/config-model.js.map +1 -1
  1055. package/tui/dist/connections/connections-model.d.ts +5 -0
  1056. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  1057. package/tui/dist/connections/connections-model.js +1 -1
  1058. package/tui/dist/connections/connections-model.js.map +1 -1
  1059. package/tui/dist/daemon-client.d.ts +6 -0
  1060. package/tui/dist/daemon-client.d.ts.map +1 -1
  1061. package/tui/dist/daemon-client.js +5 -2
  1062. package/tui/dist/daemon-client.js.map +1 -1
  1063. package/tui/dist/execution/workflow-model.d.ts.map +1 -1
  1064. package/tui/dist/execution/workflow-model.js +3 -1
  1065. package/tui/dist/execution/workflow-model.js.map +1 -1
  1066. package/tui/dist/hydrate.d.ts +1 -1
  1067. package/tui/dist/hydrate.d.ts.map +1 -1
  1068. package/tui/dist/hydrate.js +3 -1
  1069. package/tui/dist/hydrate.js.map +1 -1
  1070. package/tui/dist/main.js +53 -14
  1071. package/tui/dist/main.js.map +1 -1
  1072. package/tui/dist/page-read.js +1 -1
  1073. package/tui/dist/page-read.js.map +1 -1
  1074. package/tui/dist/pending-address.d.ts +7 -0
  1075. package/tui/dist/pending-address.d.ts.map +1 -0
  1076. package/tui/dist/pending-address.js +11 -0
  1077. package/tui/dist/pending-address.js.map +1 -0
  1078. package/tui/dist/render.d.ts.map +1 -1
  1079. package/tui/dist/render.js +74 -23
  1080. package/tui/dist/render.js.map +1 -1
  1081. package/tui/dist/socket-server.d.ts +3 -1
  1082. package/tui/dist/socket-server.d.ts.map +1 -1
  1083. package/tui/dist/socket-server.js +6 -0
  1084. package/tui/dist/socket-server.js.map +1 -1
  1085. package/tui/dist/specs/graph.d.ts +5 -0
  1086. package/tui/dist/specs/graph.d.ts.map +1 -0
  1087. package/tui/dist/specs/graph.js +16 -0
  1088. package/tui/dist/specs/graph.js.map +1 -0
  1089. package/tui/dist/specs/launch.d.ts +29 -0
  1090. package/tui/dist/specs/launch.d.ts.map +1 -0
  1091. package/tui/dist/specs/launch.js +64 -0
  1092. package/tui/dist/specs/launch.js.map +1 -0
  1093. package/tui/dist/startup.d.ts.map +1 -1
  1094. package/tui/dist/startup.js +15 -6
  1095. package/tui/dist/startup.js.map +1 -1
  1096. package/tui/dist/state.d.ts +2 -2
  1097. package/tui/dist/state.d.ts.map +1 -1
  1098. package/tui/dist/state.js +77 -27
  1099. package/tui/dist/state.js.map +1 -1
  1100. package/tui/dist/stylize.js +1 -1
  1101. package/tui/dist/stylize.js.map +1 -1
  1102. package/tui/dist/terminals/open-window.d.ts +5 -0
  1103. package/tui/dist/terminals/open-window.d.ts.map +1 -0
  1104. package/tui/dist/terminals/open-window.js +55 -0
  1105. package/tui/dist/terminals/open-window.js.map +1 -0
  1106. package/tui/dist/terminals/terminal-model.d.ts +1 -0
  1107. package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
  1108. package/tui/dist/terminals/terminal-model.js +21 -5
  1109. package/tui/dist/terminals/terminal-model.js.map +1 -1
  1110. package/tui/dist/types.d.ts +32 -0
  1111. package/tui/dist/types.d.ts.map +1 -1
  1112. package/ui/dist/assets/{index-HHSvwF97.js → index-D5n8EwkG.js} +1 -1
  1113. package/ui/dist/index.html +1 -1
  1114. package/daemon/specs/rigs/launch/conveyor/README.md +0 -33
  1115. package/daemon/specs/rigs/launch/conveyor/rig.yaml +0 -72
  1116. package/daemon/specs/rigs/launch/demo/project-example/README.md +0 -25
  1117. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +0 -19
  1118. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +0 -6
  1119. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +0 -7
  1120. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +0 -31
  1121. package/daemon/specs/rigs/launch/first-project/rig.yaml +0 -31
  1122. package/daemon/specs/rigs/launch/first-project-claude/rig.yaml +0 -30
  1123. package/daemon/specs/rigs/launch/implementation-pair/rig.yaml +0 -27
  1124. package/daemon/specs/rigs/preview/product-team/rig.yaml +0 -90
  1125. /package/daemon/specs/rigs/launch/factory-rsi/{rig.yaml → world-bundle.yaml} +0 -0
@@ -1,8 +1,8 @@
1
1
  # SDLC conventions — the markdown control plane
2
2
 
3
3
  > **Source of truth:** this repo document is the living SSOT for the SDLC
4
- > conventions. Scaffold templates, the advisory scope audit, the
5
- > `mission-slice-sop` skill, and the shipped bootstrap overlay all point HERE —
4
+ > conventions. Scaffold templates, the advisory scope audit and the
5
+ > `mission-slice-sop` skill all point HERE —
6
6
  > they must not restate this document in full (restatement is how drift is born).
7
7
 
8
8
  OpenRig is a software factory the human steers from a high altitude. The human
@@ -37,7 +37,7 @@ one does not deprecate the others. Nothing below deletes or overrides an existin
37
37
  | **PRODUCT / MISSION PREPARATION** | **The product-management pass** — the layer above planning, run by the advisor/PM seat before planners touch a mission. The build is a lossy compression pipeline (PM intent → planner spec → builder code); nothing leaks downward by proximity, so this pass grounds in the raw sources, synthesizes ONE scope of record, presents owner decisions decision-ready, mints slices at plan time, deposits the full design contract INLINE in each design-bearing spec (owner words verbatim, settled decisions, evidence, shape of done, anti-goals), routes the complete reading list and internet-research assignments from the spec itself, frames each slice's planning-dial rung with its reason, and rereads every spec as the narrow downstream reader. The measuring stick: SPEC.md alone, plus what it explicitly routes to, reproduces the intent in a reader with none of the author's context. Full reference: `product-management-pass.md`. |
38
38
  | **PLAN** | **The planning dial** — planning rigor is a spectrum chosen per piece: P0 mini-requirements and pointers (simple, reversible work) · P1 an authored spec with a proof contract (the default) · P2 plus a research round before the spec freezes, run BEFORE build dispatch · P3 plus an adversarial pass by a non-author, judged against product goals, landing amendments with proof-contract teeth · P4 plus a blind from-scratch design diffed against priors before proceeding. Dial up by what the piece is, exactly as build care is priced below. Full reference: `planning-dial.md`. |
39
39
  | **BUILD** | **Part A, the simple flow** (below — the default) · **product-journey components** — a mission-selectable menu for greenfield work, drift recovery, public journey probes, one evidence-gated look at the layer below, minimal repair, independent QA/review, integration, and installed smoke; compose only what the work needs in mission/slice YAML, never as a new mode or mandatory pipeline. Full reference: `product-journey-sdlc.md` · **the wave model** — slices build in parallel in disjoint file territories, an integrator merges serially, and independent review fires once per wave (two reviewers with different vantages, never the writers; fix rounds re-earn verdicts at one final revision; per-slice discipline stays failing-test-first and verify-by-effect). The wave IS the care dial: what shares a wave decides how much review each piece gets · **Part B, the rigorous overlay** (below — only when assigned). These combine: a wave can carry one Part-B piece. Full wave reference: `wave-sdlc.md`. |
40
- | **DISPATCH DATA** | **The execution-data conventions (S27)** — three tiny data disciplines that make execution state derivable instead of hand-tabulated, consumed by `rig view show execution`. **EC-1, edges in frontmatter:** every open slice carries its hard edges in `depends_on:` (an inline JSON array; an explicit `[]` is a statement, absence is INDETERMINATE); soft/serialization edges are one machine-readable Territory line, exactly `SOFT-AFTER: [ids] — reason`. **EC-2, wave-as-data:** wave composition + review model live on a durable queue row tagged `wave-map` + `format:wave-map-v1` whose body carries one fenced ```json block (`{format:"wave-map-v1", mission, waves:[{id, slices, serialized_order?, review_model?}]}`) — composition only, never status labels (status derives at read time); the planning dial recorded at lock surfaces as the frontmatter field `approved-spec-dial:` beside the approve stamp. **EC-3, dispatch names the worktree:** build batons carry the exact body line `worktree_path=<path>` from dispatch onward — it is Q1's join key; batons without it join by naming only and the view marks them `fragile_join`. Existing batons are never rewritten. |
40
+ | **DISPATCH DATA** | **The execution-data conventions (S27)** — three tiny data disciplines that make execution state derivable instead of hand-tabulated, consumed by `rig view show execution`. **EC-1, edges in frontmatter:** every open slice carries its hard edges in `depends_on:` (an inline JSON array; an explicit `[]` is a statement, absence is INDETERMINATE; when the slice's `slice.yaml` carries `execution.depends_on`, that list takes precedence); soft/serialization edges are one machine-readable Territory line, exactly `SOFT-AFTER: [ids] — reason`. **EC-2, wave-as-data:** wave composition + review model live in `mission.yaml` `arrangement.waves` (`{id, slices, review_model?}`; a slice may also name its wave in `slice.yaml` `execution.wave`). Only when the mission has no `mission.yaml`, or it is malformed, does the view fall back to the legacy form: the newest queue row tagged `format:wave-map-v1` and `mission:<mission>` whose body carries one fenced ```json block (`{format:"wave-map-v1", mission, waves:[{id, slices, serialized_order?, review_model?}]}`) — composition only, never status labels (status derives at read time); the planning dial recorded at lock surfaces as the frontmatter field `approved-spec-dial:` beside the approve stamp. **EC-3, dispatch names the worktree:** build batons carry the exact body line `worktree_path=<path>` from dispatch onward — it is Q1's join key; batons without it join by naming only and the view marks them `fragile_join`. Existing batons are never rewritten. |
41
41
  | **RELEASE** | The release ceremony conventions (publication identity, honest release notes) and the CAPABILITY-DELTA LIFECYCLE LAW: each release's delta is authored at the fence and bound to the exact candidate, then reconciled to the published cut. Expiry requires both the canon header naming the absorbed delta and a distinct successor delta existing; a draft header alone is insufficient. Verify the actual boundary event and stop citing an expired delta. Full statement: `release-boundary.md` §6. |
42
42
  | **BOUNDARY** | **The release boundary** — housekeeping run once per fence so the next release starts clean: seats reset or re-primed per their continuity needs, memory distilled (keep what changed a decision recently), every queue swept by destination and dispositioned, substrate torn down, boards frozen as records, a clean-box baseline captured. A checklist of judgment guides, not gates. Full reference: `release-boundary.md`. |
43
43
 
@@ -46,7 +46,7 @@ one does not deprecate the others. Nothing below deletes or overrides an existin
46
46
  > planning dial — `planning-dial.md` · the product-journey component catalog —
47
47
  > `product-journey-sdlc.md` · the wave model — `wave-sdlc.md` · the release
48
48
  > boundary (including the capability-delta lifecycle law) — `release-boundary.md` ·
49
- > the mission install — `mission-install.md` (lands with its own slice). The
49
+ > the mission install — `mission-install.md`. The
50
50
  > summaries above remain the one-glance description; this document remains the SSOT
51
51
  > pointer for the whole menu.
52
52
 
@@ -76,8 +76,10 @@ The authority lookup is `product-journey-sdlc.md#resolve-the-selected-path`.
76
76
  Bring work with evidence that its promised user outcome actually works.
77
77
 
78
78
  For a release mission, `mission.yaml` also names the Git strategy before build
79
- work starts: the branch/ref that is cumulative integration truth, its base, and
80
- when that truth is reconciled to main. Continuous integration to main and a
79
+ work starts: the branch/ref that is cumulative integration truth
80
+ (`arrangement.source.integration_ref`, the ref `rig view show execution` tests
81
+ a candidate's folding against; `main` when unset), its base, and when that
82
+ truth is reconciled to main. Continuous integration to main and a
81
83
  release-line fold followed by one explicit merge are both valid; leaving the
82
84
  choice implicit is not.
83
85
 
@@ -99,17 +101,17 @@ Each slice directory carries:
99
101
  (numbered list). This is the human operator's first structured catchpoint;
100
102
  approval starts here.
101
103
  - **`## Proof contract`** — a checkbox list of promised deliverables (see
102
- §3). The UI's DELIVERED section pairs each item with its proof.
104
+ B1). The UI's DELIVERED section pairs each item with its proof.
103
105
  - **`PROGRESS.md`** — the slice's current delivery state and retained outcome
104
106
  log. Record material changes with links to proof; historical checkboxes are
105
107
  testimony, not current acceptance authority. For a selected proof policy,
106
- `rig proof show <slice>` derives current readiness from the proof contract
108
+ `rig proof show <mission>/slices/<slice>` derives current readiness from the proof contract
107
109
  and attributed judgments. In-process steps stay in the working agent's
108
110
  own todo tool.
109
111
  - **`PROOF.md`** — the retained proof summary, explicitly paired to the
110
112
  `SPEC.md` proof contract.
111
113
  - **`proof/`** — the proof-artifact directory. Curated canonical evidence
112
- lands here via `rig proof` with valid C1 headers (§5).
114
+ lands here via `rig proof` with valid C1 headers (B3).
113
115
 
114
116
  Legacy `README.md`, `IMPLEMENTATION-PRD.md`, and pre-convention trees remain
115
117
  readable indefinitely. New scaffolds do not create or mirror them, and repair
@@ -128,7 +130,9 @@ Part B or add a mandatory review gate.
128
130
 
129
131
  The three sections project into the UI's one review structure: a vertical
130
132
  stack of **INTENT → PLAN → DELIVERED**. A slice missing a section still
131
- renders (the projection degrades to a muted "—", never invents content) —
133
+ renders (a missing Intent or Delivered source shows a muted "—", missing
134
+ mini-requirements show "Not compliant · mini-requirements not authored";
135
+ nothing is invented) —
132
136
  but it does not carry its weight in review.
133
137
 
134
138
  ## A3. Honesty rails (public surfaces + cited hashes)
@@ -209,24 +213,31 @@ are losslessness checks on the decompression from intent to delivery, not
209
213
  paperwork. Scaffolding emits the sections; it must never mint ceremony.
210
214
  ## A6. The audit (advisory, fail-open — always)
211
215
 
212
- `rig scope audit` (and the advisory rows in `rig workspace validate` /
213
- `doctor`) checks these conventions: the section headings present, the proof
214
- contract well-formed, `proof/` artifacts carrying valid C1 headers, UI slices
215
- referencing a mockup. Every finding **records and advises — it never blocks a
216
- write path and never changes exit semantics into a gate**. Unknown is
216
+ `rig scope audit --mission <name>` (and the advisory `sdlc_convention_sections`
217
+ row in `rig workspace doctor`) checks these conventions: the section headings
218
+ present, the proof contract well-formed, `proof/` artifacts carrying valid C1
219
+ headers, UI slices referencing a mockup. Convention findings are low or info
220
+ severity, except an invalid C1 header on a `proof/` artifact, which is medium.
221
+ All of them **record and advise — they never block a write path and never
222
+ change the exit code**. (`rig scope audit` exits 1 only on high-severity
223
+ structural findings, such as a missing `PROGRESS.md` or id.) Unknown is
217
224
  reported as unknown, not failure.
218
225
  ## A7. Where the knowledge lives (the four pointers)
219
226
 
220
227
  - **This document** — the SSOT.
221
- - **Scaffold**: `rig scope slice create` emits `SPEC.md` + `PROGRESS.md` +
222
- `PROOF.md` + `proof/` for every template kind; `rig scope mission create`
223
- emits an intent-bearing `SPEC.md` + `NOTES.md`. Core emits only this
228
+ - **Scaffold**: `rig scope slice create` emits `SPEC.md` + `slice.yaml` +
229
+ `PROGRESS.md` + `PROOF.md` + `proof/` for every template kind (and registers
230
+ the slice in `mission.yaml` when that manifest exists; legacy missions
231
+ without one remain supported); `rig scope mission create` emits an
232
+ intent-bearing `SPEC.md` + `mission.yaml` + `PROGRESS.md` + `NOTES.md` +
233
+ `slices/` (plus `CAPABILITY-DELTA-v<version>.md` for a `release-X.Y.Z`
234
+ mission). Core emits only this
224
235
  mode-neutral shape; mode plugins add richer material through the extension
225
236
  seam rather than teaching core a mode.
226
237
  - **Skill**: `mission-slice-sop` teaches **Part A**, the light default. **Part B**
227
238
  is defined below and applies only when assigned — never self-selected.
228
- - **Bootstrap**: the shipped agent overlay points fresh seats at the skill
229
- and this document at boot.
239
+ - **Bootstrap**: the shipped `pm` rig culture points its seats at the skill
240
+ and this document; the generic `openrig-start.md` overlay no longer does.
230
241
 
231
242
  # PART B — THE RIGOROUS OVERLAY (assigned only)
232
243
 
@@ -266,7 +277,8 @@ deliverable, written as an observable outcome:
266
277
  that evidence it — that pairing is what the DELIVERED section renders, so
267
278
  the human never hunts through dozens of artifacts to find which one proves
268
279
  what.
269
- - **UI deliverables carry a planned mockup** (`plannedRef`): the planning
280
+ - **UI deliverables carry a planned mockup** (`plannedRef`, written as an
281
+ inline image on the checkbox line, e.g. `- [ ] … ![mockup](mockups/review.png)`): the planning
270
282
  agent produces the mockup and attaches it to the locked set. A UI slice
271
283
  with no mockup in its locked set is an incomplete plan. Non-UI slices
272
284
  (backend, skills, markdown) have no mockup and no `plannedRef` — that is
@@ -283,14 +295,18 @@ append-only audit row land together):
283
295
  - **Plan-lock:** `rig scope slice approve <slice> --scope spec` — "the spec
284
296
  matches my intent; THIS artifact set is what gets built." Pins `SPEC.md`
285
297
  (and planned mockups, when present) out of everything else in the folder.
298
+ `--locked-artifacts "SPEC.md,…"` names the set explicitly instead; a
299
+ plan-lock on an unedited scaffold `SPEC.md` with nothing else to pin refuses.
286
300
  - **Proof-lock:** `rig scope slice approve <slice> --scope delivery`
287
- (the default scope) — the terminal "this is done" sign-off; fires the
288
- freeze.
301
+ (the default scope) — the terminal "this is done" sign-off. (It does not
302
+ render the frozen export; the approve result reports `freezeFired: false`.)
289
303
 
290
304
  Approval is freeze/sign-off — **never** proven-green. Proven-green requires a
291
- recorded verdict (a C1 proof artifact, §5); presence of an approval stamp does
305
+ recorded verdict (a C1 proof artifact, B3); presence of an approval stamp does
292
306
  not assert the work was proven. `--on-behalf-of` records delegation honestly
293
- (the actor stays the real invoking session).
307
+ (the actor stays the real invoking session). A second approve of the same
308
+ scope refuses; `--re-approve --reason "<why>"` supersedes the stamp and keeps
309
+ the prior one in the audit log.
294
310
 
295
311
  ## B3. Proof drops and the C1 header (closed sets)
296
312
 
@@ -323,9 +339,11 @@ that it LOOKED at the evidence. `--media` names the curated media files
323
339
  (relative to the slice's `proof/` dir — co-located, never absolute) this
324
340
  drop stands behind; the composer projects them into the DELIVERED items'
325
341
  proof set. Validation happens at drop time; the audit
326
- (§6) backstops artifacts that arrived by other paths. **Hand-placing files
327
- in `proof/` without a drop is the anti-pattern**: the deliverable stays
328
- unpaired and `unverified` in the DELIVERED view — always attach media via
342
+ (A6) backstops artifacts that arrived by other paths. **Hand-placing files
343
+ in `proof/` without a drop is the anti-pattern**: media alone pairs with
344
+ nothing, so a deliverable with no covering proof artifact (one whose
345
+ `evidences` names it) shows as `missing` in the DELIVERED view, or as current
346
+ acceptance absent under a selected proof policy — always attach media via
329
347
  `--media` on a drop.
330
348
 
331
349
  ## B4. Role contracts (what makes the structure self-enforcing)
@@ -44,9 +44,15 @@ not fill in; if so, follow the form.
44
44
  SLACK_APP_TOKEN=xapp-...
45
45
  ```
46
46
 
47
- 8. Run `rig slack setup --channel <channel-id> --secrets-env-file <path>`, then
48
- `rig slack verify`, then `rig slack enable`.
49
- 9. Invite the bot to the channel you configured (`/invite @OpenRig` in that channel).
47
+ 8. Invite the bot to the channel you will use (`/invite @OpenRig` in that channel).
48
+ `rig slack verify` reports NOT ready until the app is a member.
49
+ 9. Register yourself as the human the connector delivers to, with a Slack binding that names
50
+ your Slack user ID (`rig gateway human add`; its `--help` shows the binding format).
51
+ Messages from Slack users who are not registered are not delivered. `rig slack enable`
52
+ needs a readable human registry: on a fresh install with no registry, or with an invalid
53
+ one, it is refused.
54
+ 10. Run `rig slack setup --channel <channel-id> --secrets-env-file <path>`, then
55
+ `rig slack verify`, then `rig slack enable`.
50
56
 
51
57
  ## What the app asks for
52
58
 
@@ -57,9 +63,10 @@ groups:
57
63
  a member of, and reading channel details.
58
64
  `rig slack verify` checks these.
59
65
  - **Feature scopes**: `files:read` (download attachments people send), `files:write` (upload
60
- attachments to Slack), and `app_mentions:read` (receive @-mentions of the app). `rig slack verify`
61
- does **not** check these, so a READY from verify does not prove attachments or mentions will
62
- work.
66
+ attachments to Slack), `app_mentions:read` (receive @-mentions of the app), and `reactions:read`
67
+ (receive emoji reactions). `rig slack verify` warns when one of these is missing (if Slack returns
68
+ the granted scopes) but does not require them, so a READY from verify does not prove attachments,
69
+ mentions or reactions will work.
63
70
 
64
71
  If a feature scope was not granted, the effect differs by feature:
65
72
 
@@ -67,14 +74,24 @@ If a feature scope was not granted, the effect differs by feature:
67
74
  message with an attachment that could not be downloaded is still delivered, with the failed
68
75
  file named in it. A post whose attachment could not be uploaded still delivers its text, and
69
76
  the failure appears only in the daemon log (`rig daemon logs`).
70
- - **Mentions** (`app_mentions:read`): Slack does not deliver `app_mention` events to the app, and
71
- nothing in OpenRig reports that they are missing.
77
+ - **Mentions** (`app_mentions:read`): Slack does not deliver `app_mention` events to the app.
78
+ Only `rig slack verify` warns that the scope is missing; nothing reports the missing events.
79
+ - **Reactions** (`reactions:read`): Slack does not deliver `reaction_added` events, so a reaction
80
+ on an ask doesn't reach the asking agent. A reply in the ask's thread still does.
72
81
 
73
- So after installing, compare the granted scopes Slack shows for the app with all six scopes that
82
+ So after installing, compare the granted scopes Slack shows for the app with all seven scopes that
74
83
  `rig slack manifest --json` lists.
75
84
 
76
- The app subscribes to messages in public channels it is a member of (`message.channels`) and to
77
- mentions of the app (`app_mention`). It does not request direct-message or private-channel access.
85
+ The app subscribes to messages in public channels it is a member of (`message.channels`), to
86
+ mentions of the app (`app_mention`), and to emoji reactions (`reaction_added`). It does not request
87
+ direct-message or private-channel access.
88
+
89
+ A reaction added to an ask reaches the agent that asked, as a note naming who reacted and with
90
+ which emoji; the agent decides what it means. Every message OpenRig posted for the ask counts:
91
+ its first message, a long ask's numbered parts, and an ask posted as a reply in a thread. A
92
+ reaction on any other message, including a person's reply in the thread, is ignored. An app created from an older manifest has neither the `reactions:read` scope nor the
93
+ `reaction_added` event: add both under **OAuth & Permissions** and **Event Subscriptions**, then
94
+ reinstall the app to the workspace.
78
95
 
79
96
  The manifest also turns on **Interactivity**, so the human can answer a decision's structured
80
97
  questions by clicking a button (`rig queue create --human-questions-file`). In Socket Mode the
@@ -94,3 +111,87 @@ part of OpenRig.
94
111
 
95
112
  - `rig slack status` shows what is still missing, without contacting Slack.
96
113
  - `rig slack verify` checks the granted baseline scopes and channel membership with Slack.
114
+
115
+ ## One channel per rig or seat (optional)
116
+
117
+ By default every human-bound item posts to the one channel from `rig slack setup --channel`.
118
+ To follow each rig separately, post a rig's items, or a single seat's, to its own channel:
119
+
120
+ ```bash
121
+ rig slack channel-map set my-rig C0EXAMPLE1
122
+ rig slack channel-map set pr@my-rig C0EXAMPLE2
123
+ rig slack channel-map list
124
+ rig slack channel-map remove pr@my-rig
125
+ ```
126
+
127
+ - **Which channel an item posts to.** The item's seat is matched exactly first (`pr@my-rig`),
128
+ then its rig (`my-rig`). Anything unmapped posts to the default channel, so a config
129
+ without a map behaves exactly as before. Aggregate delivery digests have no single seat and
130
+ always post to the default channel.
131
+ - **Threads.** Updates, `--reply-to` and later notifications for an item stay in its thread.
132
+ With a map configured, if a seat's channel has changed since the thread was opened, the
133
+ next post opens a new thread in the seat's current channel, and `--reply-to` records the
134
+ fallback as `root-other-channel`. With no map, threads behave exactly as before: an item's
135
+ next notification reuses its open thread in whatever channel that thread was posted in.
136
+ - **Changing the map.** A change applies to new posts. A post already in flight (one being
137
+ retried after a failure or an unconfirmed send) finishes in the channel and thread it started
138
+ in, and its retry checks that channel first so it is not posted twice. This includes adding
139
+ the first map: a post first tried before any map existed finishes in the default channel.
140
+ Without a map, OpenRig records nothing about a post's channel, so if the default channel
141
+ changes while a post is being retried, the retry goes to the new default channel (as it always
142
+ has); that also applies to a post first tried before the map was added.
143
+ - **Replies and new messages.** A reply in an item's thread reaches that item's seat, in any
144
+ channel. A message the human starts (or a reply in a thread OpenRig does not know) goes to
145
+ the connector's inbound destination, whichever channel it is in. Missed-message recovery
146
+ (below) covers the default channel only.
147
+
148
+ Invite the app to every mapped channel (`/invite @OpenRig`). `rig slack verify` checks
149
+ membership in the default channel and every mapped channel, and reports NOT ready until the
150
+ app is in all of them. A saved change reaches a running connector when it next rewires:
151
+ `rig slack disable` then `rig slack enable`, or a daemon restart. The TUI's Connections page
152
+ says whether the running configuration matches the file.
153
+
154
+ The map is stored as `channelMap` in `slack-connector.json`, as a list of `{ "match", "channel" }`
155
+ entries. Saving refuses any other field. A field written by a newer OpenRig is ignored when the
156
+ connector reads the file, and `rig slack status` names it. Private channels and direct messages
157
+ are not supported targets.
158
+
159
+ ## Reconnect recovery and status
160
+
161
+ The daemon scans available top-level messages in the configured channel after a
162
+ Socket Mode connection and on its existing five-minute retry cadence. Recovered
163
+ tasks say **Recovered after a gap** and show the original Slack posting time.
164
+ They use the same sender admission, routing, attachment handling, fixed identity
165
+ and dead-letter path as live messages. A durable dead letter is custody of a
166
+ failed delivery, not successful delivery.
167
+
168
+ Recovery keeps a per-channel checkpoint across reconnects, restarts and channel
169
+ switches. On upgrade it initializes once from the newest retained accepted
170
+ channel landing; without such evidence it starts at feature adoption. **Older
171
+ history is unknown.** New live messages never move the recovery checkpoint. A
172
+ partial scan resumes its saved interval; only an exhausted interval advances the
173
+ covered boundary. Each new interval ends five seconds before the local clock to
174
+ allow recent messages to become visible; larger clock skew or visibility lag is
175
+ not covered by that margin. A corrupt or unreadable checkpoint leaves recovery unavailable
176
+ and preserves the existing file; live inbound continues.
177
+
178
+ Each pass admits at most four pages, 100 entries and 15 seconds of work, with a
179
+ five-second history-request ceiling. Work already started on a message, such as
180
+ an attachment transfer, is not cancelled by these limits or by a stop, and a new
181
+ pass waits for it to finish. Rate limits retain Slack's Retry-After across restart.
182
+ Transport and server failures use a five-second backoff unless Slack supplies Retry-After.
183
+ When Slack reports a plan history limit, recovery still lands the available page
184
+ and advances normally, retaining an older-history limitation in status across restarts.
185
+ Missing bot credentials, history scope, membership, retention limits and API
186
+ failures appear as recovery limitations. No additional scope is required to keep
187
+ live delivery working. Thread-reply catch-up and dead-connection detection remain
188
+ outside this recovery scope; global chronological order is not promised.
189
+
190
+ `rig slack status` retains local configuration checks and adds a bounded daemon
191
+ snapshot: socket state/generation, last event, recovery interval/state/reason,
192
+ retry time and accepted/dead-lettered recovery counts since the connector last
193
+ started (they reset when it is enabled or disabled, and when the daemon restarts).
194
+ Human-readable coverage and pending bounds use ISO timestamps; JSON keeps Slack timestamps.
195
+ The status read calls no Slack API and starts no scan. If the daemon cannot be
196
+ observed, local configuration remains visible and live state is unknown. A
197
+ connected socket or valid configuration alone does not prove end-to-end delivery.
@@ -61,12 +61,19 @@ The smaller of `--limit` and the configured request maximum bounds the wake.
61
61
  Unknown answers remain null; a wholly unknown answer abstains. Invalid model,
62
62
  provider, answer keys, choices, probabilities or response bytes reject the whole
63
63
  answer. Probability sums retain the strict 0.001 tolerance; there is no rounding
64
- repair or partial salvage. Unavailable/invalid provider work stops that run with
65
- no classification write. Inspect the returned attempt state: terminal abstentions
64
+ repair or partial salvage. Unavailable/invalid provider work, Ctrl-C or SIGTERM
65
+ stops that run with no classification write; when the classifier returns that
66
+ outcome, the item in hand is recorded as an abstention, final for that classifier
67
+ version, taxonomy version and evidence epoch. The worker's own deadline (the lesser
68
+ of the request timeout and the time left before the next lease heartbeat) is
69
+ different: when it fires
70
+ first, the attempt is recorded as `error` with a retry time, or `exhausted` once the
71
+ retry budget is spent, not as an abstention. Inspect the returned attempt state: terminal abstentions
66
72
  are not reopened, and failed/unknown daemon writes must be reconciled through the
67
73
  existing ledger. Never change the evidence epoch merely to retry an experiment.
68
74
 
69
- Disable is checked before each call and before applying its result. A separate
75
+ Disable, a changed `--max-requests` or `--timeout-ms`, or an unreadable configuration
76
+ is checked before each call and before applying its result, and stops the run. A separate
70
77
  disable command cannot cancel an already forwarded remote request; its late
71
78
  result is discarded, with the existing deadline bounding the wait. Ctrl-C or
72
79
  SIGTERM requests immediate cancellation of the foreground run. An uncooperative
@@ -169,7 +176,8 @@ source churn can require repeated preparation and is not a throughput claim.
169
176
  Each wake processes at most `--limit` items (1–100; default 20), starting with the
170
177
  oldest eligible work rather than relying on a lossy notification cursor. Durable
171
178
  terminal attempts stay excluded. A new candidate version does **not** authorize
172
- another pass: only an owner-selected evidence epoch changes that attempt identity.
179
+ another pass: only a new classifier version, taxonomy version or owner-selected
180
+ evidence epoch changes that attempt identity.
173
181
  Retain the candidates output beside the decisions and result so its version is
174
182
  reproducible. The CLI does not keep a second local ledger.
175
183
 
@@ -197,6 +205,9 @@ capture. Retained-no-write is a separate event, never delivery evidence.
197
205
 
198
206
  Activation requires explicitly supplied `OPENRIG_SHADOW_CAPTURE` JSON at a later
199
207
  authorized daemon start. Absence or invalid configuration leaves capture disabled.
208
+ Daemon start checks only that `destination` is an absolute normalized path and the
209
+ numeric ceilings; the private-directory checks and exclusive file creation happen
210
+ at the first drain, and a failure there stops the sink.
200
211
  This document supplies no live destination or activation instruction. Required
201
212
  fields and engineering ceilings are:
202
213
 
@@ -218,8 +229,9 @@ observation; explicit production configuration supplies each value.
218
229
 
219
230
  `rig project shadow-status` only inspects configuration/counters.
220
231
  `rig project shadow-drain` asks the existing HTTP service to drain up to 64 rows;
221
- it requires an actor and never enables capture. No background drain timer is added.
222
- `rig project shadow-stop` disables new enqueueing immediately, finishes any active
232
+ it requires an actor (outside a managed seat, name one with `--actor <name>`)
233
+ and never enables capture. No background drain timer is added.
234
+ `rig project shadow-stop` (which needs an actor the same way) disables new enqueueing immediately, finishes any active
223
235
  drain and the finite retained queue, then closes the sink. Repeated stop is
224
236
  idempotent; it cannot enable capture or delete the existing archive. Existing
225
237
  quota and sink-failure losses remain counted. A slow disk can leave stop pending;
@@ -236,8 +248,9 @@ start another writer. Overflow drops new observations. Capacity exhaustion stops
236
248
  the sink. Errors stop writes, count losses and preserve any partial file; failed
237
249
  batches are not replayed. `reservedRecords/Bytes` include attempted writes, while
238
250
  `completedRecords/Bytes` count successful appends. `drained` means removed from
239
- the observer, not necessarily persisted. Queue count drops, byte-bound drops,
240
- record errors, missing/unavailable captures and sink failures remain separate.
251
+ the observer, not necessarily persisted. Queue drops (count-bound and byte-bound
252
+ together in `dropped`; `droppedBytes` adds the bytes of byte-bound drops), record
253
+ errors, missing/unavailable captures and sink failures remain separate.
241
254
 
242
255
  Live collection, private destination/retention selection, corpus labels, hosted
243
256
  calibration, native placement, package/install proof and independent visible /
@@ -0,0 +1,114 @@
1
+ # Finite telemetry metadata
2
+
3
+ `rig telemetry` reads one bounded page of retained history from the daemon. It is
4
+ useful for collectors and operators that need a cursor without reading OpenRig's
5
+ private SQLite schema. It neither watches nor automatically drains history.
6
+
7
+ ```sh
8
+ rig telemetry events --json
9
+ rig telemetry events --start retained --node NODE_ID --limit 128 --json
10
+ rig telemetry events --start retained --rig RIG_ID --json
11
+ rig telemetry events --cursor CURSOR --node NODE_ID --json
12
+ rig telemetry transitions --start retained --qitem QUEUE_ITEM_ID --json
13
+ rig telemetry tenures NODE_ID --json
14
+ ```
15
+
16
+ Events and transitions initially return an empty checkpoint at the current high
17
+ watermark, with `historical_events_not_read` or `historical_transitions_not_read`.
18
+ Use `--start retained` to request the retained past. Tenures start with the newest
19
+ 32 records for the immutable node ID, with a descending continuation when needed.
20
+ An empty match set can still have more source records: check `page.hasMore` and
21
+ `page.nextCursor`. The cursor binds the stream and filters; retain the same filter
22
+ options when continuing. Do not use `--start` with `--cursor`.
23
+
24
+ ## HTTP and envelope
25
+
26
+ These reads use the daemon's existing browser/access boundary:
27
+
28
+ | GET path | Query parameters |
29
+ | --- | --- |
30
+ | `/api/telemetry/v1/events` | `cursor`, `limit`, `start=latest\|retained`, `nodeId`, `rigId` |
31
+ | `/api/telemetry/v1/queue-transitions` | `cursor`, `limit`, `start=latest\|retained`, `qitemId` |
32
+ | `/api/telemetry/v1/nodes/:nodeId/tenures` | `cursor`, `limit` |
33
+
34
+ The envelope contains `schemaVersion: 1`, `stream`, `observedAt`, `source`, `rows`,
35
+ `page`, and `coverage`. Integer IDs are **decimal strings**, including values larger
36
+ than JavaScript's safe integer range. `--json` preserves the complete envelope.
37
+
38
+ - Events: `seq`, `rigId`, `nodeId`, `type`, `originalTimestamp`, `createdAt`.
39
+ - Transitions: original `transitionId`, `qitemId`, `state`, `actorSession`,
40
+ `identityProvenance`, `closureReason`, `closureTarget`, `originalTimestamp`, `createdAt`.
41
+ - Tenures: `nodeId`, `generationOrdinal`, `generationUuid`, `kind`,
42
+ `nativeSessionIdAtBoot`, `originalTimestamp`, `bootAt`.
43
+
44
+ Normalized `createdAt` and `bootAt` are explicit UTC or null with a named gap.
45
+ SQLite timestamps without a timezone are interpreted as UTC. Original timestamps
46
+ remain available. Streams have separate sequences; their IDs do not establish
47
+ cross-stream causal ordering. Event type alone establishes no readiness, activity,
48
+ or native-exit verdict. Repeated same-state transitions remain separate records.
49
+ Null boot identity stays unknown, and a tenure has no inferred end time. Historical
50
+ records are never joined to today's owner or node name.
51
+
52
+ `page` reports the requested boundary (`requestedAfter` or `requestedBefore`),
53
+ `lastScanned`, fixed `through`, `retainedHighWatermark`, `hasMore`, `nextCursor`,
54
+ `restartCursor`, and `fetched`, `scanned`, `filtered`, `withheld`, `returned`,
55
+ `capReason`. New writes above a window's `through` wait until that window is
56
+ complete. A complete ascending checkpoint opens another finite window on its next
57
+ use. Descending tenure history ends with a null continuation.
58
+ Its cursor also retains the first observed lower ordinal, so disappearance of that
59
+ older range produces a named gap even when some records remain on the final page.
60
+
61
+ ## Bounds and privacy
62
+
63
+ The default/max source page is 128 rows; tenures default to 32. Sparse filters run
64
+ **after** that bound, so matching nothing still advances over scanned records.
65
+ Transitions fetch at most 128 candidates from each of the active/archive tables
66
+ in one read snapshot, then process at most 128 distinct ordered IDs. Equal
67
+ projected duplicates collapse; conflicting IDs are withheld with a named gap.
68
+ Physical `fetched` can therefore exceed logical `scanned`.
69
+
70
+ Responses are at most 128 KiB, with a 4 KiB projected-record cap. SQL guards bound
71
+ fields before fetching them: identifiers 256 bytes, timestamps/enums 128 bytes,
72
+ and actor/closure references 512 bytes. Oversized fields become null with an
73
+ `oversized_field` gap, and non-text values become null with an `invalid_type` gap;
74
+ they are never truncated into a different identity. A record
75
+ whose JSON escaping still exceeds 4 KiB is withheld and counted. A response-byte
76
+ stop leaves the next unprocessed record for the continuation. Gap details are
77
+ capped at 32; `gapCount` and `gapDetailsTruncated` preserve the count. Cursor input
78
+ is limited to 2 KiB. These are work/size bounds, not a disk-latency guarantee.
79
+
80
+ No event payload, transition note, queue body/summary, transcript, command, path,
81
+ or environment is selected. Operational IDs, native conversation IDs and actor
82
+ addresses are intentional metadata; they can still identify people or seats.
83
+ This interface does not make that metadata public or anonymous.
84
+
85
+ ## Unknown history and errors
86
+
87
+ `coverage.historyCompleteness` is always `unknown`. Coverage status is
88
+ `retained_window`, `partial`, or `unavailable`; a retained window does not prove
89
+ that older history exists or is complete. `retainedMinimum` and named gaps expose
90
+ missing retained identifiers with unknown cause, never inferred downtime. Missing
91
+ tenure history cannot distinguish node deletion from never-recorded history.
92
+
93
+ `source` contains `hostId`, `bootEpoch`, and **`sequenceSpaceId: null`**. A daemon
94
+ boot epoch is not durable store identity. On a boot change or observed watermark
95
+ regression, the API returns no old-window rows, a named unavailable-history gap,
96
+ and (for ascending streams) a separate fresh `restartCursor`. Record that gap
97
+ before explicitly adopting the fresh checkpoint. Tenures may be requested fresh
98
+ without a cursor. Do not silently reset to zero or conflate existing collector
99
+ source identity, native-tail cursors and these cursors. An arbitrary in-place
100
+ database restore/copy without an observable regression is not detected.
101
+
102
+ After **every daemon restart**, a following collector cannot continue its old
103
+ cursor. To recover available retained history, record the boot gap and start a new
104
+ read with `start=retained`, accepting possible overlap with previously read records.
105
+ Alternatively, adopting `restartCursor` observes only new records after the fresh
106
+ high watermark; it does not recover the missed interval. Neither choice proves
107
+ continuity across the restart while `sequenceSpaceId` remains null.
108
+
109
+ Malformed cursors/options return HTTP 400 `telemetry_invalid_request`.
110
+ Schema/read/source failures return HTTP 503 `telemetry_read_unavailable`, never a
111
+ successful empty history. The CLI preserves the error body in JSON mode and exits
112
+ 1 for request errors, 2 for unavailable reads. Existing SSE and usage APIs retain
113
+ their behavior. Collector deployment, exporters and durable store epochs are
114
+ separate work.