@openrig/cli 0.5.5 → 0.5.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 (915) hide show
  1. package/daemon/assets/continuity/apprentice-cutover.md +19 -0
  2. package/daemon/assets/continuity/apprentice-prepare.md +17 -0
  3. package/daemon/assets/plugins/openrig-core/README.md +1 -1
  4. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +81 -4
  5. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +3 -3
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +0 -0
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
  8. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +4 -9
  9. package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/SKILL.md +34 -0
  10. package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +170 -0
  11. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +82 -118
  12. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +24 -25
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +5 -12
  14. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +36 -117
  15. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +10 -10
  16. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +1 -12
  17. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +1 -1
  18. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +15 -0
  19. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +4 -16
  20. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +50 -7
  21. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +26 -6
  22. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +3 -0
  23. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-evidence-toolkit.md +32 -0
  24. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md +256 -0
  25. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/orchestrator-role.md +40 -0
  26. package/daemon/assets/vm-preview-fixtures/README.md +16 -38
  27. package/daemon/assets/vm-preview-fixtures/workflows/sample-basic-loop.yaml +7 -8
  28. package/daemon/context-packs/onboarding-width/manifest.yaml +4 -1
  29. package/daemon/context-packs/onboarding-width/public-reference-material.md +1 -1
  30. package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +120 -0
  31. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +10 -0
  32. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +166 -0
  33. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +18 -0
  34. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +174 -0
  35. package/daemon/context-packs/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +487 -0
  36. package/daemon/context-packs/skills/claude-compaction-restore/templates/compact-instruction.md +1 -0
  37. package/daemon/context-packs/skills/claude-compaction-restore/templates/post-compact-restore-instruction.md +1 -0
  38. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +2 -1
  39. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +2 -1
  40. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +6 -13
  41. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +2 -1
  42. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +2 -1
  43. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +98 -0
  44. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +10 -0
  45. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +2 -1
  46. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +2 -1
  47. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +2 -1
  48. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +115 -0
  49. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +10 -0
  50. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +19 -75
  51. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +2 -1
  52. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +2 -1
  53. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +2 -1
  54. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +2 -1
  55. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +2 -1
  56. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +2 -1
  57. package/daemon/context-packs/skills/core/watchdog/SKILL.md +4 -10
  58. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +2 -1
  59. package/daemon/context-packs/skills/delegating-work/SKILL.md +43 -0
  60. package/daemon/context-packs/skills/delegating-work/manifest.yaml +10 -0
  61. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +318 -0
  62. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +10 -0
  63. package/daemon/context-packs/skills/loading-addressable-markdown/SKILL.md +34 -0
  64. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +12 -0
  65. package/daemon/context-packs/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +170 -0
  66. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +94 -0
  67. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +10 -0
  68. package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +397 -0
  69. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +30 -0
  70. package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +572 -0
  71. package/daemon/context-packs/skills/openrig-operating-model/scripts/scaffold.sh +34 -0
  72. package/daemon/context-packs/skills/openrig-operating-model/scripts/trace-due.sh +32 -0
  73. package/daemon/context-packs/skills/openrig-operating-model/scripts/trace-stamp.sh +5 -0
  74. package/daemon/context-packs/skills/openrig-operating-model/scripts/trunk-diff.sh +18 -0
  75. package/daemon/context-packs/skills/openrig-operating-model/templates/LEARNED.md +40 -0
  76. package/daemon/context-packs/skills/openrig-operating-model/templates/NOTES.md +9 -0
  77. package/daemon/context-packs/skills/openrig-operating-model/templates/PLAYBOOK.md +5 -0
  78. package/daemon/context-packs/skills/openrig-operating-model/templates/SOP.md +24 -0
  79. package/daemon/context-packs/skills/openrig-operating-model/templates/SPEC.md +54 -0
  80. package/daemon/context-packs/skills/openrig-user/SKILL.md +1374 -0
  81. package/daemon/context-packs/skills/openrig-user/manifest.yaml +10 -0
  82. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
  83. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +250 -0
  84. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +12 -0
  85. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +2 -1
  86. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +2 -1
  87. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +2 -1
  88. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +2 -1
  89. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +2 -1
  90. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +2 -1
  91. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +2 -1
  92. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +2 -1
  93. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +1 -1
  94. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +2 -1
  95. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +2 -1
  96. package/daemon/context-packs/skills/pods/review-team/SKILL.md +1 -1
  97. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +2 -1
  98. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +2 -1
  99. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +2 -1
  100. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +2 -1
  101. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +2 -1
  102. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +0 -0
  103. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +2 -1
  104. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +2 -1
  105. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +2 -1
  106. package/daemon/context-packs/skills/queue-handoff/SKILL.md +192 -0
  107. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +10 -0
  108. package/daemon/context-packs/skills/refocusing/SKILL.md +31 -0
  109. package/daemon/context-packs/skills/refocusing/manifest.yaml +14 -0
  110. package/daemon/context-packs/skills/refocusing/references/refocus.md +22 -0
  111. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +264 -0
  112. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
  113. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +231 -0
  114. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +12 -0
  115. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +151 -0
  116. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +16 -0
  117. package/daemon/context-packs/skills/seat-continuity-and-handover/references/apprentice-evidence-toolkit.md +32 -0
  118. package/daemon/context-packs/skills/seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md +256 -0
  119. package/daemon/context-packs/skills/seat-continuity-and-handover/references/orchestrator-role.md +40 -0
  120. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +163 -0
  121. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +10 -0
  122. package/daemon/context-packs/skills/software-for-agents/SKILL.md +187 -0
  123. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +10 -0
  124. package/daemon/context-packs/world-example/manifest.yaml +15 -2
  125. package/daemon/context-packs/world-example/your-world.md +19 -2
  126. package/daemon/context-packs/world-public/boundaries.md +33 -0
  127. package/daemon/context-packs/world-public/build-your-world.md +84 -0
  128. package/daemon/context-packs/world-public/claims.yaml +205 -0
  129. package/daemon/context-packs/world-public/manifest.yaml +59 -0
  130. package/daemon/context-packs/world-public/start-here.md +51 -0
  131. package/daemon/context-packs/world-public/verify-world.sh +522 -0
  132. package/daemon/dist/build-info.js +3 -3
  133. package/daemon/dist/builtins/workflow-specs/basic-loop.yaml +3 -3
  134. package/daemon/dist/builtins/workflow-specs/conveyor.yaml +1 -1
  135. package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +1 -1
  136. package/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
  137. package/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
  138. package/daemon/dist/context-pack-taxonomy-surface.js +6 -0
  139. package/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
  140. package/daemon/dist/db/all-migrations.d.ts +1 -1
  141. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  142. package/daemon/dist/db/all-migrations.js +10 -2
  143. package/daemon/dist/db/all-migrations.js.map +1 -1
  144. package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
  145. package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
  146. package/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
  147. package/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
  148. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
  149. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
  150. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
  151. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
  152. package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
  153. package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
  154. package/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
  155. package/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
  156. package/daemon/dist/db/migrations/077_node_session_source.d.ts +4 -0
  157. package/daemon/dist/db/migrations/077_node_session_source.d.ts.map +1 -0
  158. package/daemon/dist/db/migrations/077_node_session_source.js +6 -0
  159. package/daemon/dist/db/migrations/077_node_session_source.js.map +1 -0
  160. package/daemon/dist/domain/active-occupant.d.ts +44 -0
  161. package/daemon/dist/domain/active-occupant.d.ts.map +1 -0
  162. package/daemon/dist/domain/active-occupant.js +72 -0
  163. package/daemon/dist/domain/active-occupant.js.map +1 -0
  164. package/daemon/dist/domain/agent-manifest.d.ts +6 -0
  165. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  166. package/daemon/dist/domain/agent-manifest.js +77 -15
  167. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  168. package/daemon/dist/domain/agent-resolver.d.ts +11 -0
  169. package/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
  170. package/daemon/dist/domain/agent-resolver.js +55 -0
  171. package/daemon/dist/domain/agent-resolver.js.map +1 -1
  172. package/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
  173. package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  174. package/daemon/dist/domain/bundle-context-packs-router.js +18 -0
  175. package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  176. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
  177. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  178. package/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
  179. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  180. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  181. package/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
  182. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  183. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -0
  184. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  185. package/daemon/dist/domain/context-packs/context-pack-types.js +11 -0
  186. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  187. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  188. package/daemon/dist/domain/context-packs/manifest-parser.js +18 -7
  189. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  190. package/daemon/dist/domain/context-packs/profile-composer.d.ts +1 -1
  191. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  192. package/daemon/dist/domain/context-packs/profile-composer.js +2 -2
  193. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  194. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +3 -1
  195. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
  196. package/daemon/dist/domain/context-packs/profile-source-resolver.js +3 -2
  197. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
  198. package/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
  199. package/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
  200. package/daemon/dist/domain/continuity-policy-materializer.js +290 -0
  201. package/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
  202. package/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
  203. package/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
  204. package/daemon/dist/domain/continuity-stack-packets.js +99 -0
  205. package/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
  206. package/daemon/dist/domain/execution-view.d.ts +39 -0
  207. package/daemon/dist/domain/execution-view.d.ts.map +1 -0
  208. package/daemon/dist/domain/execution-view.js +707 -0
  209. package/daemon/dist/domain/execution-view.js.map +1 -0
  210. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
  211. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
  212. package/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
  213. package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
  214. package/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
  215. package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
  216. package/daemon/dist/domain/gateway/destination-resolver.js +52 -0
  217. package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
  218. package/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
  219. package/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
  220. package/daemon/dist/domain/gateway/dispatcher.js +9 -2
  221. package/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
  222. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +6 -2
  223. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  224. package/daemon/dist/domain/gateway/gateway-subsystem.js +5 -3
  225. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  226. package/daemon/dist/domain/gateway/human-registry.d.ts +9 -1
  227. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  228. package/daemon/dist/domain/gateway/human-registry.js +32 -1
  229. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  230. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
  231. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
  232. package/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
  233. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
  234. package/daemon/dist/domain/gateway/slack/config.d.ts +3 -2
  235. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  236. package/daemon/dist/domain/gateway/slack/config.js +20 -4
  237. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  238. package/daemon/dist/domain/gateway/slack/inbound.d.ts +34 -6
  239. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  240. package/daemon/dist/domain/gateway/slack/inbound.js +60 -9
  241. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  242. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  243. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  244. package/daemon/dist/domain/gateway/slack/outbound-driver.js +12 -5
  245. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  246. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +10 -5
  247. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  248. package/daemon/dist/domain/gateway/slack/queue-access.js +46 -19
  249. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  250. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +29 -6
  251. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  252. package/daemon/dist/domain/gateway/slack/slack-api.js +41 -3
  253. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  254. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +9 -3
  255. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  256. package/daemon/dist/domain/gateway/slack/slack-delivery.js +132 -12
  257. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  258. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +10 -0
  259. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  260. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +286 -11
  261. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  262. package/daemon/dist/domain/graph-projection.d.ts +6 -0
  263. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  264. package/daemon/dist/domain/graph-projection.js +6 -0
  265. package/daemon/dist/domain/graph-projection.js.map +1 -1
  266. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  267. package/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
  268. package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  269. package/daemon/dist/domain/node-inventory.d.ts +41 -3
  270. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  271. package/daemon/dist/domain/node-inventory.js +45 -48
  272. package/daemon/dist/domain/node-inventory.js.map +1 -1
  273. package/daemon/dist/domain/parked-query.d.ts +1 -0
  274. package/daemon/dist/domain/parked-query.d.ts.map +1 -1
  275. package/daemon/dist/domain/parked-query.js +1 -0
  276. package/daemon/dist/domain/parked-query.js.map +1 -1
  277. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  278. package/daemon/dist/domain/pod-bundle-assembler.js +12 -5
  279. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  280. package/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
  281. package/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
  282. package/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
  283. package/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
  284. package/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
  285. package/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
  286. package/daemon/dist/domain/policies/delivery-deferral.js +153 -0
  287. package/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
  288. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
  289. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
  290. package/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
  291. package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
  292. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
  293. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
  294. package/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
  295. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
  296. package/daemon/dist/domain/policies/types.d.ts +8 -0
  297. package/daemon/dist/domain/policies/types.d.ts.map +1 -1
  298. package/daemon/dist/domain/profile-resolver.d.ts +4 -0
  299. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  300. package/daemon/dist/domain/profile-resolver.js +58 -0
  301. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  302. package/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
  303. package/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
  304. package/daemon/dist/domain/provider/provider-signals.js +64 -0
  305. package/daemon/dist/domain/provider/provider-signals.js.map +1 -1
  306. package/daemon/dist/domain/ps-projection.d.ts +7 -5
  307. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  308. package/daemon/dist/domain/ps-projection.js +19 -32
  309. package/daemon/dist/domain/ps-projection.js.map +1 -1
  310. package/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
  311. package/daemon/dist/domain/queue-pickup.js +5 -0
  312. package/daemon/dist/domain/queue-pickup.js.map +1 -1
  313. package/daemon/dist/domain/queue-repository.d.ts +55 -18
  314. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  315. package/daemon/dist/domain/queue-repository.js +387 -83
  316. package/daemon/dist/domain/queue-repository.js.map +1 -1
  317. package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  318. package/daemon/dist/domain/queue-retention.js +8 -2
  319. package/daemon/dist/domain/queue-retention.js.map +1 -1
  320. package/daemon/dist/domain/queue-stuck-sweep.d.ts +24 -1
  321. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  322. package/daemon/dist/domain/queue-stuck-sweep.js +161 -24
  323. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  324. package/daemon/dist/domain/queue-transition-log.d.ts +10 -0
  325. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  326. package/daemon/dist/domain/queue-transition-log.js +49 -11
  327. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  328. package/daemon/dist/domain/queue-wake-ladder.d.ts +20 -2
  329. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  330. package/daemon/dist/domain/queue-wake-ladder.js +187 -15
  331. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  332. package/daemon/dist/domain/queue-wake-repository.d.ts +16 -0
  333. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  334. package/daemon/dist/domain/queue-wake-repository.js +52 -3
  335. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  336. package/daemon/dist/domain/restore-check-service.js +1 -1
  337. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  338. package/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
  339. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  340. package/daemon/dist/domain/restore-orchestrator.js +88 -15
  341. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  342. package/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
  343. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  344. package/daemon/dist/domain/restore-plan-preview.js +37 -19
  345. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  346. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  347. package/daemon/dist/domain/rig-expansion-service.js +10 -9
  348. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  349. package/daemon/dist/domain/rig-lifecycle-service.d.ts +24 -4
  350. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  351. package/daemon/dist/domain/rig-lifecycle-service.js +116 -6
  352. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  353. package/daemon/dist/domain/rig-repository.d.ts +6 -1
  354. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  355. package/daemon/dist/domain/rig-repository.js +28 -3
  356. package/daemon/dist/domain/rig-repository.js.map +1 -1
  357. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  358. package/daemon/dist/domain/rigspec-codec.js +74 -4
  359. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  360. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  361. package/daemon/dist/domain/rigspec-exporter.js +2 -0
  362. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  363. package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  364. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  365. package/daemon/dist/domain/rigspec-instantiator.js +16 -0
  366. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  367. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  368. package/daemon/dist/domain/rigspec-schema.js +32 -4
  369. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  370. package/daemon/dist/domain/scope/node-file.d.ts +8 -0
  371. package/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
  372. package/daemon/dist/domain/scope/node-file.js +18 -0
  373. package/daemon/dist/domain/scope/node-file.js.map +1 -1
  374. package/daemon/dist/domain/scope/scope-audit.d.ts +5 -2
  375. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  376. package/daemon/dist/domain/scope/scope-audit.js +3 -3
  377. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  378. package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  379. package/daemon/dist/domain/snapshot-capture.js +6 -0
  380. package/daemon/dist/domain/snapshot-capture.js.map +1 -1
  381. package/daemon/dist/domain/types.d.ts +28 -4
  382. package/daemon/dist/domain/types.d.ts.map +1 -1
  383. package/daemon/dist/domain/types.js.map +1 -1
  384. package/daemon/dist/domain/view-projector.d.ts +5 -1
  385. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  386. package/daemon/dist/domain/view-projector.js +24 -0
  387. package/daemon/dist/domain/view-projector.js.map +1 -1
  388. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
  389. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  390. package/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
  391. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  392. package/daemon/dist/domain/watchdog-policy-engine.d.ts +40 -1
  393. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  394. package/daemon/dist/domain/watchdog-policy-engine.js +112 -6
  395. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  396. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  397. package/daemon/dist/domain/watchdog-scheduler.js +3 -2
  398. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  399. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  400. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +37 -2
  401. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  402. package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  403. package/daemon/dist/domain/workspace/workspace-doctor.js +2 -4
  404. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  405. package/daemon/dist/index.d.ts +9 -0
  406. package/daemon/dist/index.d.ts.map +1 -1
  407. package/daemon/dist/index.js +24 -1
  408. package/daemon/dist/index.js.map +1 -1
  409. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  410. package/daemon/dist/routes/agent-images.js +9 -0
  411. package/daemon/dist/routes/agent-images.js.map +1 -1
  412. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  413. package/daemon/dist/routes/bundles.js +61 -1
  414. package/daemon/dist/routes/bundles.js.map +1 -1
  415. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  416. package/daemon/dist/routes/context-packs.js +146 -6
  417. package/daemon/dist/routes/context-packs.js.map +1 -1
  418. package/daemon/dist/routes/gateway.js +1 -1
  419. package/daemon/dist/routes/gateway.js.map +1 -1
  420. package/daemon/dist/routes/queue.d.ts.map +1 -1
  421. package/daemon/dist/routes/queue.js +22 -11
  422. package/daemon/dist/routes/queue.js.map +1 -1
  423. package/daemon/dist/routes/rigs.js +45 -5
  424. package/daemon/dist/routes/rigs.js.map +1 -1
  425. package/daemon/dist/routes/scope-audit.js +6 -6
  426. package/daemon/dist/routes/scope-audit.js.map +1 -1
  427. package/daemon/dist/routes/sessions.js +7 -3
  428. package/daemon/dist/routes/sessions.js.map +1 -1
  429. package/daemon/dist/routes/views.d.ts.map +1 -1
  430. package/daemon/dist/routes/views.js +4 -1
  431. package/daemon/dist/routes/views.js.map +1 -1
  432. package/daemon/dist/routes/watchdog.d.ts.map +1 -1
  433. package/daemon/dist/routes/watchdog.js +40 -3
  434. package/daemon/dist/routes/watchdog.js.map +1 -1
  435. package/daemon/dist/server.d.ts.map +1 -1
  436. package/daemon/dist/server.js +5 -0
  437. package/daemon/dist/server.js.map +1 -1
  438. package/daemon/dist/startup.d.ts.map +1 -1
  439. package/daemon/dist/startup.js +197 -6
  440. package/daemon/dist/startup.js.map +1 -1
  441. package/daemon/docs/reference/agent-spec.md +5 -5
  442. package/daemon/docs/reference/agent-state-taxonomy.md +8 -13
  443. package/daemon/docs/reference/chain-file-convention.md +2 -2
  444. package/daemon/docs/reference/knowledge-maturity.md +123 -0
  445. package/daemon/docs/reference/lore-routing.md +173 -0
  446. package/daemon/docs/reference/mission-install.md +215 -0
  447. package/daemon/docs/reference/planning-dial.md +55 -0
  448. package/daemon/docs/reference/product-journey-sdlc.md +305 -0
  449. package/daemon/docs/reference/product-management-pass.md +139 -0
  450. package/daemon/docs/reference/release-boundary.md +88 -0
  451. package/daemon/docs/reference/sdlc-conventions.md +49 -69
  452. package/daemon/docs/reference/wave-sdlc.md +113 -0
  453. package/daemon/policies/builtin/standard.policy.md +3 -3
  454. package/daemon/policies/builtin/yolo.policy.md +7 -2
  455. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -1
  456. package/daemon/specs/agents/apps/vault-specialist/guidance/role.md +0 -1
  457. package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
  458. package/daemon/specs/agents/conveyor/builder/guidance/role.md +0 -1
  459. package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
  460. package/daemon/specs/agents/conveyor/lead/guidance/role.md +0 -3
  461. package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
  462. package/daemon/specs/agents/conveyor/planner/guidance/role.md +0 -1
  463. package/daemon/specs/agents/design/product-designer/agent.yaml +3 -4
  464. package/daemon/specs/agents/design/product-designer/guidance/role.md +0 -3
  465. package/daemon/specs/agents/development/implementer/agent.yaml +3 -4
  466. package/daemon/specs/agents/development/implementer/guidance/role.md +0 -3
  467. package/daemon/specs/agents/development/qa/agent.yaml +4 -4
  468. package/daemon/specs/agents/development/qa/guidance/role.md +1 -4
  469. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +1 -1
  470. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +1 -1
  471. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +3 -4
  472. package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +0 -4
  473. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +3 -4
  474. package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +0 -3
  475. package/daemon/specs/agents/shared/agent.yaml +2 -10
  476. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +6 -13
  477. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +98 -0
  478. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +115 -0
  479. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +19 -75
  480. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -10
  481. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +1 -1
  482. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +1 -1
  483. package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
  484. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +1 -1
  485. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +4 -5
  486. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +3 -3
  487. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -3
  488. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +1 -1
  489. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +1 -1
  490. package/daemon/substance-surfaces.json +8 -0
  491. package/dist/build-info.js +3 -3
  492. package/dist/commands/broadcast.d.ts.map +1 -1
  493. package/dist/commands/broadcast.js +6 -1
  494. package/dist/commands/broadcast.js.map +1 -1
  495. package/dist/commands/capture.js +1 -1
  496. package/dist/commands/config-init-workspace.d.ts.map +1 -1
  497. package/dist/commands/config-init-workspace.js +38 -3
  498. package/dist/commands/config-init-workspace.js.map +1 -1
  499. package/dist/commands/context.d.ts.map +1 -1
  500. package/dist/commands/context.js +49 -1
  501. package/dist/commands/context.js.map +1 -1
  502. package/dist/commands/create.d.ts +4 -0
  503. package/dist/commands/create.d.ts.map +1 -0
  504. package/dist/commands/create.js +84 -0
  505. package/dist/commands/create.js.map +1 -0
  506. package/dist/commands/expand.d.ts.map +1 -1
  507. package/dist/commands/expand.js +9 -13
  508. package/dist/commands/expand.js.map +1 -1
  509. package/dist/commands/grow.d.ts +4 -0
  510. package/dist/commands/grow.d.ts.map +1 -0
  511. package/dist/commands/grow.js +182 -0
  512. package/dist/commands/grow.js.map +1 -0
  513. package/dist/commands/ps.d.ts +4 -0
  514. package/dist/commands/ps.d.ts.map +1 -1
  515. package/dist/commands/ps.js +15 -7
  516. package/dist/commands/ps.js.map +1 -1
  517. package/dist/commands/remove.d.ts.map +1 -1
  518. package/dist/commands/remove.js +9 -1
  519. package/dist/commands/remove.js.map +1 -1
  520. package/dist/commands/rig.d.ts.map +1 -1
  521. package/dist/commands/rig.js +48 -1
  522. package/dist/commands/rig.js.map +1 -1
  523. package/dist/commands/scope.d.ts.map +1 -1
  524. package/dist/commands/scope.js +61 -13
  525. package/dist/commands/scope.js.map +1 -1
  526. package/dist/commands/send.d.ts +2 -0
  527. package/dist/commands/send.d.ts.map +1 -1
  528. package/dist/commands/send.js +24 -2
  529. package/dist/commands/send.js.map +1 -1
  530. package/dist/commands/shrink.d.ts.map +1 -1
  531. package/dist/commands/shrink.js +6 -1
  532. package/dist/commands/shrink.js.map +1 -1
  533. package/dist/commands/slack.d.ts.map +1 -1
  534. package/dist/commands/slack.js +4 -2
  535. package/dist/commands/slack.js.map +1 -1
  536. package/dist/commands/topology-default-agent.d.ts +4 -0
  537. package/dist/commands/topology-default-agent.d.ts.map +1 -0
  538. package/dist/commands/topology-default-agent.js +13 -0
  539. package/dist/commands/topology-default-agent.js.map +1 -0
  540. package/dist/commands/view.d.ts.map +1 -1
  541. package/dist/commands/view.js +3 -0
  542. package/dist/commands/view.js.map +1 -1
  543. package/dist/commands/walk.d.ts.map +1 -1
  544. package/dist/commands/walk.js +3 -0
  545. package/dist/commands/walk.js.map +1 -1
  546. package/dist/commands/watchdog.d.ts.map +1 -1
  547. package/dist/commands/watchdog.js +64 -9
  548. package/dist/commands/watchdog.js.map +1 -1
  549. package/dist/cross-host-target.js +1 -1
  550. package/dist/cross-host-target.js.map +1 -1
  551. package/dist/host-registry.d.ts +2 -2
  552. package/dist/host-registry.js +2 -2
  553. package/dist/index.d.ts +2 -0
  554. package/dist/index.d.ts.map +1 -1
  555. package/dist/index.js +4 -0
  556. package/dist/index.js.map +1 -1
  557. package/dist/lib/scope/scope-audit.d.ts +4 -1
  558. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  559. package/dist/lib/scope/scope-audit.js +3 -3
  560. package/dist/lib/scope/scope-audit.js.map +1 -1
  561. package/dist/lib/scope/scope-fs.d.ts +8 -0
  562. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  563. package/dist/lib/scope/scope-fs.js +18 -0
  564. package/dist/lib/scope/scope-fs.js.map +1 -1
  565. package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
  566. package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
  567. package/dist/lib/scope-templates/bug-fix.md +1 -1
  568. package/dist/lib/scope-templates/capability-delta.md +1 -0
  569. package/dist/lib/scope-templates/placeholder.md +1 -1
  570. package/dist/lib/scope-templates/release-feature.md +1 -1
  571. package/dist/lib/scope-templates/research.md +1 -1
  572. package/dist/lib/work-install.d.ts +39 -0
  573. package/dist/lib/work-install.d.ts.map +1 -0
  574. package/dist/lib/work-install.js +278 -0
  575. package/dist/lib/work-install.js.map +1 -0
  576. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  577. package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/basic-loop.yaml +3 -3
  578. package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/conveyor.yaml +1 -1
  579. package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +1 -1
  580. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
  581. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
  582. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js +6 -0
  583. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
  584. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +1 -1
  585. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
  586. package/node_modules/@openrig/daemon/dist/db/all-migrations.js +10 -2
  587. package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
  588. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
  589. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
  590. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
  591. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
  592. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
  593. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
  594. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
  595. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
  596. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
  597. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
  598. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
  599. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
  600. package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.d.ts +4 -0
  601. package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.d.ts.map +1 -0
  602. package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.js +6 -0
  603. package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.js.map +1 -0
  604. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +44 -0
  605. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -0
  606. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +72 -0
  607. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -0
  608. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts +6 -0
  609. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  610. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js +77 -15
  611. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js.map +1 -1
  612. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts +11 -0
  613. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
  614. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js +55 -0
  615. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js.map +1 -1
  616. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
  617. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  618. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js +18 -0
  619. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  620. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
  621. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  622. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
  623. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  624. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  625. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
  626. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  627. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -0
  628. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  629. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +11 -0
  630. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  631. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  632. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +18 -7
  633. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  634. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +1 -1
  635. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  636. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +2 -2
  637. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  638. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +3 -1
  639. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
  640. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +3 -2
  641. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
  642. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
  643. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
  644. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js +290 -0
  645. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
  646. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
  647. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
  648. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js +99 -0
  649. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
  650. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts +39 -0
  651. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -0
  652. package/node_modules/@openrig/daemon/dist/domain/execution-view.js +707 -0
  653. package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -0
  654. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
  655. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
  656. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
  657. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
  658. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
  659. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
  660. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js +52 -0
  661. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
  662. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
  663. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
  664. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js +9 -2
  665. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
  666. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +6 -2
  667. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  668. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +5 -3
  669. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  670. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +9 -1
  671. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  672. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +32 -1
  673. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  674. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
  675. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
  676. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
  677. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
  678. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts +3 -2
  679. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  680. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js +20 -4
  681. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  682. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +34 -6
  683. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  684. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +60 -9
  685. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  686. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  687. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  688. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js +12 -5
  689. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  690. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +10 -5
  691. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  692. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +46 -19
  693. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  694. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts +29 -6
  695. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  696. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js +41 -3
  697. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  698. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +9 -3
  699. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  700. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js +132 -12
  701. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  702. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +10 -0
  703. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  704. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +286 -11
  705. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  706. package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts +6 -0
  707. package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  708. package/node_modules/@openrig/daemon/dist/domain/graph-projection.js +6 -0
  709. package/node_modules/@openrig/daemon/dist/domain/graph-projection.js.map +1 -1
  710. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  711. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
  712. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  713. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts +41 -3
  714. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  715. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +45 -48
  716. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
  717. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts +1 -0
  718. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts.map +1 -1
  719. package/node_modules/@openrig/daemon/dist/domain/parked-query.js +1 -0
  720. package/node_modules/@openrig/daemon/dist/domain/parked-query.js.map +1 -1
  721. package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  722. package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js +12 -5
  723. package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  724. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
  725. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
  726. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
  727. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
  728. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
  729. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
  730. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js +153 -0
  731. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
  732. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
  733. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
  734. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
  735. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
  736. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
  737. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
  738. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
  739. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
  740. package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts +8 -0
  741. package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts.map +1 -1
  742. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts +4 -0
  743. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  744. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js +58 -0
  745. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js.map +1 -1
  746. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
  747. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
  748. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js +64 -0
  749. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js.map +1 -1
  750. package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts +7 -5
  751. package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  752. package/node_modules/@openrig/daemon/dist/domain/ps-projection.js +19 -32
  753. package/node_modules/@openrig/daemon/dist/domain/ps-projection.js.map +1 -1
  754. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
  755. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js +5 -0
  756. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js.map +1 -1
  757. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +55 -18
  758. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  759. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +387 -83
  760. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  761. package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  762. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js +8 -2
  763. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js.map +1 -1
  764. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts +24 -1
  765. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  766. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +161 -24
  767. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  768. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +10 -0
  769. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  770. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +49 -11
  771. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
  772. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts +20 -2
  773. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  774. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js +187 -15
  775. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  776. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +16 -0
  777. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  778. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +52 -3
  779. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  780. package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js +1 -1
  781. package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js.map +1 -1
  782. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
  783. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  784. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +88 -15
  785. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  786. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
  787. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  788. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js +37 -19
  789. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  790. package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  791. package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js +10 -9
  792. package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  793. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts +24 -4
  794. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  795. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js +116 -6
  796. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  797. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +6 -1
  798. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  799. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +28 -3
  800. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
  801. package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  802. package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js +74 -4
  803. package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js.map +1 -1
  804. package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  805. package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.js +2 -0
  806. package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  807. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  808. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  809. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +16 -0
  810. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  811. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  812. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +32 -4
  813. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  814. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +8 -0
  815. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
  816. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +18 -0
  817. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +1 -1
  818. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +5 -2
  819. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  820. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js +3 -3
  821. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  822. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  823. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +6 -0
  824. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
  825. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +28 -4
  826. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  827. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  828. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts +5 -1
  829. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts.map +1 -1
  830. package/node_modules/@openrig/daemon/dist/domain/view-projector.js +24 -0
  831. package/node_modules/@openrig/daemon/dist/domain/view-projector.js.map +1 -1
  832. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
  833. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  834. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
  835. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  836. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +40 -1
  837. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  838. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +112 -6
  839. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  840. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  841. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js +3 -2
  842. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  843. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  844. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +37 -2
  845. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  846. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  847. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +2 -4
  848. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  849. package/node_modules/@openrig/daemon/dist/index.d.ts +9 -0
  850. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  851. package/node_modules/@openrig/daemon/dist/index.js +24 -1
  852. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  853. package/node_modules/@openrig/daemon/dist/routes/agent-images.d.ts.map +1 -1
  854. package/node_modules/@openrig/daemon/dist/routes/agent-images.js +9 -0
  855. package/node_modules/@openrig/daemon/dist/routes/agent-images.js.map +1 -1
  856. package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +1 -1
  857. package/node_modules/@openrig/daemon/dist/routes/bundles.js +61 -1
  858. package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
  859. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  860. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +146 -6
  861. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  862. package/node_modules/@openrig/daemon/dist/routes/gateway.js +1 -1
  863. package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +1 -1
  864. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  865. package/node_modules/@openrig/daemon/dist/routes/queue.js +22 -11
  866. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  867. package/node_modules/@openrig/daemon/dist/routes/rigs.js +45 -5
  868. package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
  869. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +6 -6
  870. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
  871. package/node_modules/@openrig/daemon/dist/routes/sessions.js +7 -3
  872. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  873. package/node_modules/@openrig/daemon/dist/routes/views.d.ts.map +1 -1
  874. package/node_modules/@openrig/daemon/dist/routes/views.js +4 -1
  875. package/node_modules/@openrig/daemon/dist/routes/views.js.map +1 -1
  876. package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts.map +1 -1
  877. package/node_modules/@openrig/daemon/dist/routes/watchdog.js +40 -3
  878. package/node_modules/@openrig/daemon/dist/routes/watchdog.js.map +1 -1
  879. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  880. package/node_modules/@openrig/daemon/dist/server.js +5 -0
  881. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  882. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  883. package/node_modules/@openrig/daemon/dist/startup.js +197 -6
  884. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  885. package/node_modules/@openrig/daemon/package.json +5 -1
  886. package/package.json +1 -1
  887. package/tui/dist/demo-data.js +2 -2
  888. package/tui/dist/demo-data.js.map +1 -1
  889. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/CHANGELOG.md +0 -92
  890. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/REVISION-GUIDE.md +0 -34
  891. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROADMAP.md +0 -23
  892. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROLLOUT.md +0 -234
  893. package/daemon/context-packs/skills/core/attention-queue/SKILL.md +0 -264
  894. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +0 -9
  895. package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +0 -48
  896. package/daemon/context-packs/skills/process/brainstorming/SKILL.md +0 -107
  897. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +0 -11
  898. package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +0 -56
  899. package/daemon/context-packs/skills/process/executing-plans/SKILL.md +0 -94
  900. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +0 -11
  901. package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +0 -48
  902. package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +0 -106
  903. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +0 -11
  904. package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +0 -52
  905. package/daemon/context-packs/skills/process/writing-plans/SKILL.md +0 -126
  906. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +0 -11
  907. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +0 -264
  908. package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +0 -48
  909. package/daemon/specs/agents/shared/skills/process/brainstorming/SKILL.md +0 -107
  910. package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +0 -56
  911. package/daemon/specs/agents/shared/skills/process/executing-plans/SKILL.md +0 -94
  912. package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +0 -48
  913. package/daemon/specs/agents/shared/skills/process/using-superpowers/SKILL.md +0 -106
  914. package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +0 -52
  915. package/daemon/specs/agents/shared/skills/process/writing-plans/SKILL.md +0 -126
@@ -0,0 +1,19 @@
1
+ # Apprentice handover — cutover fire stack
2
+
3
+ Purpose: turn the second context threshold into an **owned baton** for a named mechanic. The
4
+ notice may prepare and prove the cutover, but it must **never auto-rebind** the seat. The word of
5
+ the named owner remains the gate.
6
+
7
+ 1. Confirm the prepare rung fired in an earlier evaluation pass and the successor is still the
8
+ exact accepted history and model.
9
+ 2. Reconcile every deposit and enumerate standing-duty custody. A duty named in the deposit set
10
+ but absent from the custody table stops the cutover.
11
+ 3. Record gate receipts G0–G3—gate, evidence, and worder—or the policy's declared simpler model.
12
+ 4. Create or identify one accountable mechanic baton. Record one-active-walker ownership and
13
+ staged/submitted/consumed delivery boundaries.
14
+ 5. The mechanic follows `seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md`:
15
+ fence, derive, quiesce, realize the exact token, commit provenance, self-check READY, then
16
+ unfreeze only after the effect receipt.
17
+ 6. Preserve the predecessor's verbatim reach-back handle and pre-formed questions. Report
18
+ current seat identity, current generation, canonical tmux pane, duty acceptance, and usable
19
+ post-restore width in the final receipt.
@@ -0,0 +1,17 @@
1
+ # Apprentice handover — prepare fire stack
2
+
3
+ Purpose: turn the first context threshold into a prepared successor without moving seat
4
+ authority. This is orchestration over existing verbs, never a second scheduler or workflow.
5
+
6
+ 1. Create a **fresh**, staged, unbound successor and persist its exact provider history.
7
+ 2. Run the **model-divergence gate** before installing anything. A fallback model or reused
8
+ history stops the stack because every later receipt would describe the wrong occupant.
9
+ 3. Install the **world** and have the successor state the product outcome in its own words.
10
+ 4. Install the **mission**, including the whole mission and its addressed primary sources.
11
+ 5. Install the **position** from the seat chain and issue an explicit authority-free grant.
12
+ 6. Derive the successor's layer-5 delta, verify it independently, then **introduce** incumbent
13
+ and apprentice to open a conversation grounded in real work.
14
+
15
+ The successor packet carries `orienting-to-an-inherited-seat`; the incumbent notice carries
16
+ `retiring-and-inheriting-a-seat`. Record delivery as staged, submitted, and consumed. No step in
17
+ this stack binds the successor into the live seat.
@@ -4,7 +4,7 @@ Canonical OpenRig skills and hooks for cross-runtime agent topology coordination
4
4
 
5
5
  ## What this plugin ships
6
6
 
7
- **Skills (16):** canonical OpenRig operating knowledge, including the public `refocusing` skill and
7
+ **Skills (17):** canonical OpenRig operating knowledge, including the public `refocusing` skill and
8
8
  its path-only topology/work trace.
9
9
 
10
10
  **Hooks:** activity tracking, compaction continuity, and the default-on refocus channel. Refocus is
@@ -9,6 +9,7 @@
9
9
 
10
10
  const fs = require("node:fs");
11
11
  const path = require("node:path");
12
+ const crypto = require("node:crypto");
12
13
  const { spawnSync } = require("node:child_process");
13
14
 
14
15
  const DEFAULT_THRESHOLD = 2_600_000;
@@ -133,9 +134,65 @@ function renderTrace() {
133
134
  try { size = fs.statSync(transcriptPath).size; } catch {}
134
135
 
135
136
  const stateDir = path.join(home, "refocus");
136
- const stateFile = path.join(stateDir, `${seat.replace(/[^A-Za-z0-9@._-]/g, "_")}.json`);
137
- let state = { lastBytes: 0 };
138
- try { state = JSON.parse(fs.readFileSync(stateFile, "utf8")) || state; } catch {}
137
+
138
+ // OPR.0.5.6.25 — state keys to the OCCUPANT, not the seat. A seat-keyed file made
139
+ // a fresh occupant inherit its predecessor's lastBytes (permanently zero growth on
140
+ // exactly the seats that swap) and its pending delivery. Identity derives from the
141
+ // hook family's own fields; the guarded expression never evaluates basename on an
142
+ // absent value. The legacy `${seat}.json` is NEVER read, imported, or rewritten —
143
+ // it stays on disk as diagnosis/migration material only.
144
+ const sanitize = (raw) => String(raw).replace(/[^A-Za-z0-9@._-]/g, "_");
145
+ const seatKey = sanitize(seat);
146
+ const firstString = (...vals) => {
147
+ for (const v of vals) if (typeof v === "string" && v.trim()) return v.trim();
148
+ return null;
149
+ };
150
+ const transcriptIdentity = input.transcript_path
151
+ ? path.basename(input.transcript_path, ".jsonl")
152
+ : input.transcriptPath
153
+ ? path.basename(input.transcriptPath, ".jsonl")
154
+ : null;
155
+ const identity = firstString(input.session_id, input.sessionId, transcriptIdentity);
156
+
157
+ // Bounded, deterministic, collision-stable key: lossy sanitization or truncation
158
+ // appends a stable short hash of the full pre-sanitization identity, so distinct
159
+ // identities stay distinct and every path stays inside the state directory.
160
+ const KEY_MAX = 64;
161
+ const keyFor = (raw) => {
162
+ const bounded = sanitize(raw).slice(0, KEY_MAX);
163
+ if (bounded === String(raw)) return bounded;
164
+ const suffix = crypto.createHash("sha256").update(String(raw)).digest("hex").slice(0, 8);
165
+ return `${bounded}__${suffix}`;
166
+ };
167
+
168
+ // No-identity diagnostic sentinel: an ACTIVE-EPISODE marker only — never a
169
+ // baseline, growth claim, pending, or fire. "#" is outside the key character
170
+ // class, so no derived identity path can ever collide with it. First missing
171
+ // event records and surfaces once; repeats stay silent; a valid-identity event
172
+ // clears the marker so a later distinct episode surfaces once again.
173
+ const sentinelFile = path.join(stateDir, `${seatKey}#no-identity-sentinel.json`);
174
+ if (identity === null) {
175
+ let sentinel = null;
176
+ try { sentinel = JSON.parse(fs.readFileSync(sentinelFile, "utf8")); } catch {}
177
+ if (!sentinel || sentinel.activeEpisode !== true) {
178
+ try {
179
+ fs.mkdirSync(stateDir, { recursive: true });
180
+ fs.writeFileSync(sentinelFile, JSON.stringify({ activeEpisode: true, recordedAt: new Date().toISOString() }));
181
+ } catch {}
182
+ process.stderr.write(`refocus: no session identity and no transcript path for ${seat} — measurement unavailable this episode\n`);
183
+ }
184
+ process.exit(0);
185
+ }
186
+ try {
187
+ const sentinel = JSON.parse(fs.readFileSync(sentinelFile, "utf8"));
188
+ if (sentinel && sentinel.activeEpisode === true) {
189
+ fs.writeFileSync(sentinelFile, JSON.stringify({ activeEpisode: false, clearedAt: new Date().toISOString() }));
190
+ }
191
+ } catch {}
192
+
193
+ const stateFile = path.join(stateDir, `${seatKey}__${keyFor(identity)}.json`);
194
+ let state = null;
195
+ try { state = JSON.parse(fs.readFileSync(stateFile, "utf8")) || null; } catch {}
139
196
  const persist = () => {
140
197
  try {
141
198
  fs.mkdirSync(stateDir, { recursive: true });
@@ -143,6 +200,26 @@ function renderTrace() {
143
200
  } catch {}
144
201
  };
145
202
 
203
+ if (state === null) {
204
+ // First observation for this occupant: the baseline is its OWN current size —
205
+ // growth accumulates from here; nothing is inherited. A zero-size read means
206
+ // the transcript is absent/unreadable, which is instrument absence, not a
207
+ // baseline: record zero only when that is what was genuinely measured.
208
+ state = { lastBytes: size, baselineAt: new Date().toISOString() };
209
+ persist();
210
+ } else if (size > 0 && size < Number(state.lastBytes || 0)) {
211
+ // Shrink clears pending and resets the baseline BEFORE due computation. The
212
+ // reset itself emits no refocus, and a stale pending can never ride through a
213
+ // reset into a delivery. Advisory once per reset episode: the reset moment is
214
+ // the dedupe (afterwards lastBytes === size), and the marker records in state.
215
+ delete state.pendingOn;
216
+ delete state.pendingAt;
217
+ state.lastReset = { at: new Date().toISOString(), fromBytes: Number(state.lastBytes || 0), toBytes: size };
218
+ state.lastBytes = size;
219
+ persist();
220
+ process.stderr.write(`refocus: transcript shrank for ${seat} — baseline reset, pending cleared\n`);
221
+ }
222
+
146
223
  const lastBytes = Number(state.lastBytes || 0);
147
224
  const grown = size > lastBytes ? size - lastBytes : 0;
148
225
  const onDemand = enabled(process.env.OPENRIG_REFOCUS_NOW, false);
@@ -212,7 +289,7 @@ function renderTrace() {
212
289
  },
213
290
  });
214
291
  process.stdout.write(output, () => {
215
- state.lastBytes = size;
292
+ if (size > 0) state.lastBytes = size;
216
293
  state.firedAt = new Date().toISOString();
217
294
  state.firedOn = event;
218
295
  delete state.pendingOn;
@@ -3,12 +3,12 @@ name: applying-a-permission-policy
3
3
  description: "Use when a permission policy is attached to a rig/seat (rig.yaml permission_policy:), or a user asks you to apply one, and you must translate that harness-neutral policy into the target harness's LIVE permission config — Claude settings.json / Codex config.toml / Pi run flags. Agent-driven and interactive: you read the policy, ground yourself in YOUR harness version, show the diff, and ask before writing. NOT for defining policies (that's the policy spec) and NOT a set-and-forget updater."
4
4
  metadata:
5
5
  openrig:
6
- stage: established # config cells VM-verified + cold-transfer PASSING (rerun #2, 627abbb6) + built-in SPEC FILES landed → skill translates FROM the spec (POINT-not-COPY). The two established criteria met 2026-08-04. Reviewed at push.
6
+ stage: established # config cells VM-verified + cold-transfer PASSING (rerun #2) + built-in SPEC FILES landed → skill translates FROM the spec (POINT-not-COPY). The two established criteria met 2026-08-04. Reviewed at push.
7
7
  tested_against: # VERSION STAMP — the whole point; re-verify at every harness bump
8
8
  claude_code: "2.1.220 — VM-CONFIRMED 2026-08-03 (all cells)"
9
9
  codex: "0.120.0 — VM-CONFIRMED 2026-08-03 (sandbox_mode/approval_policy; on-failure deprecated-but-accepted)"
10
10
  pi: "0.83.0 — VM-CONFIRMED 2026-08-03: --approve/--no-approve govern PROJECT-RESOURCE TRUST, NOT tool permissions; Pi has NO permission surface (see Pi leg)"
11
- verification_status: "Live-verified 2026-08-03/04 (dev-qa @ v-openrig-build). Claude 2.1.220 + Codex 0.120.0 config cells CONFIRMED live. Pi 0.83.0 divergence folded (flags = project-resource trust, not a permission gate). Cold-transfer rerun #1 blocked on the force_push/push_to_remote prefix collision → added the PREFIX-COLLISION rule. Cold-transfer rerun #2 (qitem 001c95fd, verdict SHA 627abbb6bf08ad2f350e2101f11438975def7b193b8da8bbcb747647239afc358): TRANSFERS — all 5 gate checks pass (collision resolved deterministically without asking; single ordinary write confirmation; defaultMode floor written; Codex workspace-write/on-request; Pi compute-nothing). Blocking collision/floor defect CLOSED → gate cleared, 4.8-shippable (provisional-with-passing-cold-transfer). Non-blocking seam closed: the built-in SPEC FILES landed (arch-accepted, source:builtin) → skill translates FROM the spec, interim in-skill pinned summary retired (POINT-not-COPY). stage:ESTABLISHED 2026-08-04 — both criteria met."
11
+ verification_status: "Live-verified 2026-08-03/04. Claude 2.1.220 + Codex 0.120.0 config cells CONFIRMED live. Pi 0.83.0 divergence folded (flags = project-resource trust, not a permission gate). Cold-transfer rerun #1 blocked on the force_push/push_to_remote prefix collision → added the PREFIX-COLLISION rule. Cold-transfer rerun #2: TRANSFERS — all 5 gate checks pass (collision resolved deterministically without asking; single ordinary write confirmation; defaultMode floor written; Codex workspace-write/on-request; Pi compute-nothing). Blocking collision/floor defect CLOSED → gate cleared, 4.8-shippable (provisional-with-passing-cold-transfer). Non-blocking seam closed: the built-in SPEC FILES landed (arch-accepted, source:builtin) → skill translates FROM the spec, interim in-skill pinned summary retired (POINT-not-COPY). stage:ESTABLISHED 2026-08-04 — both criteria met."
12
12
  ---
13
13
 
14
14
  # Applying a permission policy
@@ -117,4 +117,4 @@ Built-ins ship read-only in the package (canonical names); copy-to-customize int
117
117
  This skill TRANSLATES + APPLIES only. It does **not** define policies (the policy spec does) and does **not** enforce at the daemon (OpenRig is agnostic). Spec = *what* (neutral intent); this skill = *how, on this harness version* (the caveated, version-stamped translation).
118
118
 
119
119
  ---
120
- *Stage: ESTABLISHED (2026-08-04) — both criteria met: (1) cold-transfer PASSING (rerun #2, verdict SHA 627abbb6, all 5 gate checks TRANSFER); (2) the built-in policy SPEC FILES landed (`source: builtin`, arch-accepted) as the authoritative source — the skill now translates FROM the spec and the interim in-skill pinned summary is retired (POINT-not-COPY). Config cells VM-CONFIRMED (Claude 2.1.220 / Codex 0.120.0); Pi has no permission surface (compute-nothing). Reviewed at push. feedback.md maintained.*
120
+ *Stage: ESTABLISHED (2026-08-04) — both criteria met: (1) cold-transfer PASSING (rerun #2, all 5 gate checks TRANSFER); (2) the built-in policy SPEC FILES landed (`source: builtin`, arch-accepted) as the authoritative source — the skill now translates FROM the spec and the interim in-skill pinned summary is retired (POINT-not-COPY). Config cells VM-CONFIRMED (Claude 2.1.220 / Codex 0.120.0); Pi has no permission surface (compute-nothing). Reviewed at push. feedback.md maintained.*
@@ -263,17 +263,12 @@ For real depth, these are the load-bearing canonical docs:
263
263
  | `openrig/docs/reference/agent-spec.md` | The AgentSpec YAML format — resources, profiles, imports |
264
264
  | `openrig/docs/reference/agent-startup-guide.md` | The 7-layer startup layering model; delivery hints |
265
265
  | the product taxonomy | Canonical vocabulary (read literally) |
266
- | `substrate/shared-docs/HOST-TOPOLOGY.md` | Host-level doctrine — rig classes, context patterns, lifecycle, authoring SOP |
267
- | `substrate/shared-docs/SUBSTRATE-CONVENTIONS.md` | Filesystem layout doctrine for substrate |
266
+ | `openrig-operating-model` skill | Placement and operating-model guidance — topology and work trees, context altitude |
267
+ | `openrig-architect` skill | Rig and topology authoring |
268
268
  | `https://agentskills.io/specification` | The cross-runtime skill standard |
269
269
 
270
- If you're going to be authoring rigs, read `HOST-TOPOLOGY.md` §7 (the
271
- authoring SOP) before touching YAML.
272
-
273
- If you're going to be doing skill work, read
274
- the factory-design reference and the
275
- `operating-the-skill-library` skill that lives in
276
- `substrate/shared-docs/rigs/skill-library/agents/shared/skills/`.
270
+ If you're going to be authoring rigs, use the `openrig-architect` skill before
271
+ touching YAML.
277
272
 
278
273
  ---
279
274
 
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: loading-addressable-markdown
3
+ description: Use when a mission, slice, dashboard, or task references Markdown as path#h2-slug or path#h2-slug/h3-slug outside the OpenRig context-pack library.
4
+ ---
5
+
6
+ # Loading Addressable Markdown
7
+
8
+ ## Overview
9
+
10
+ Load exactly one addressed Markdown section from any filesystem tree. The resolver mirrors OpenRig's shipped H2/H3 grammar without requiring the file to live in the context library.
11
+
12
+ ## Use
13
+
14
+ Run the bundled script. Relative file references resolve from `--root`; without it they resolve from the current directory.
15
+
16
+ ```bash
17
+ node ~/.agents/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs \
18
+ --root /path/to/mission \
19
+ 'slices/09-source-cleanup/SPEC.md#proposal'
20
+ ```
21
+
22
+ The accepted forms are:
23
+
24
+ - `file.md` — whole file
25
+ - `file.md#h2-slug` — full H2 span, including child sections
26
+ - `file.md#h2-slug/h3-slug` — full H3 span
27
+
28
+ Slugs are lowercase; Markdown emphasis/code markers are removed; each other non-alphanumeric run becomes `-`. Duplicate or missing paths fail loudly. Headings inside fenced code blocks are ignored.
29
+
30
+ ## Common mistakes
31
+
32
+ - Do not use `rig context get` for an arbitrary filesystem path; that command resolves context-library refs.
33
+ - Do not hand-slice headings with `sed` or line numbers; the bundled resolver owns span and fence behavior.
34
+ - Quote addresses in shell commands.
@@ -0,0 +1,170 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { readFile } from "node:fs/promises";
4
+ import { realpathSync } from "node:fs";
5
+ import path from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+
8
+ const MIN_LEVEL = 2;
9
+ const MAX_LEVEL = 3;
10
+
11
+ export class AddressResolutionError extends Error {
12
+ constructor(message) {
13
+ super(message);
14
+ this.name = "AddressResolutionError";
15
+ }
16
+ }
17
+
18
+ export function slugifyHeader(title) {
19
+ return title
20
+ .toLowerCase()
21
+ .replace(/[`*_~]/g, "")
22
+ .replace(/[^a-z0-9]+/g, "-")
23
+ .replace(/^-+|-+$/g, "");
24
+ }
25
+
26
+ export function parseAddress(address) {
27
+ const hashCount = (address.match(/#/g) ?? []).length;
28
+ if (hashCount > 1) {
29
+ throw new AddressResolutionError(`address '${address}' must contain at most one '#' separator`);
30
+ }
31
+
32
+ const [ref, headerPart] = hashCount === 1 ? address.split("#") : [address, undefined];
33
+ if (!ref) throw new AddressResolutionError(`address '${address}' has no file before '#'`);
34
+ if (headerPart === undefined) return { ref, headerPath: [] };
35
+
36
+ const headerPath = headerPart.split("/");
37
+ if (headerPath.some((segment) => segment.length === 0)) {
38
+ throw new AddressResolutionError(`address '${address}' has an empty header segment`);
39
+ }
40
+ if (headerPath.length > MAX_LEVEL - MIN_LEVEL + 1) {
41
+ throw new AddressResolutionError(`address '${address}' is too deep; addresses target H2 and H3 only`);
42
+ }
43
+ return { ref, headerPath };
44
+ }
45
+
46
+ function scanHeaders(lines) {
47
+ const hits = [];
48
+ let fence = null;
49
+
50
+ for (let lineNumber = 0; lineNumber < lines.length; lineNumber++) {
51
+ const line = lines[lineNumber];
52
+ const fenceMatch = line.match(/^\s{0,3}(`{3,}|~{3,})/);
53
+ if (fenceMatch) {
54
+ const marker = fenceMatch[1][0];
55
+ const length = fenceMatch[1].length;
56
+ if (!fence) fence = { marker, length };
57
+ else if (fence.marker === marker && length >= fence.length) fence = null;
58
+ continue;
59
+ }
60
+ if (fence) continue;
61
+
62
+ const heading = line.match(/^(#{1,6})\s+(.*\S)\s*$/);
63
+ if (heading) hits.push({ level: heading[1].length, title: heading[2], line: lineNumber });
64
+ }
65
+ return hits;
66
+ }
67
+
68
+ export function parseMarkdownSections(text) {
69
+ const lines = text.split("\n");
70
+ const headers = scanHeaders(lines);
71
+ const sections = [];
72
+ let currentH2 = null;
73
+
74
+ for (let index = 0; index < headers.length; index++) {
75
+ const heading = headers[index];
76
+ if (heading.level < MIN_LEVEL || heading.level > MAX_LEVEL) {
77
+ if (heading.level < MIN_LEVEL) currentH2 = null;
78
+ continue;
79
+ }
80
+
81
+ const slug = slugifyHeader(heading.title);
82
+ if (heading.level === 2) currentH2 = slug;
83
+ const headerPath = heading.level === 2
84
+ ? [slug]
85
+ : currentH2 !== null
86
+ ? [currentH2, slug]
87
+ : [slug];
88
+ const fullEnd = headers.slice(index + 1).find((next) => next.level <= heading.level)?.line ?? lines.length;
89
+ const ownEnd = headers[index + 1]?.line ?? lines.length;
90
+
91
+ sections.push({
92
+ level: heading.level,
93
+ title: heading.title,
94
+ headerPath,
95
+ headerLine: heading.line,
96
+ text: lines.slice(heading.line, fullEnd).join("\n"),
97
+ ownText: lines.slice(heading.line, ownEnd).join("\n"),
98
+ });
99
+ }
100
+ return sections;
101
+ }
102
+
103
+ export function resolveAddress(text, headerPath) {
104
+ if (headerPath.length === 0) {
105
+ throw new AddressResolutionError("a bare file resolves without section lookup");
106
+ }
107
+
108
+ const sections = parseMarkdownSections(text);
109
+ const wanted = headerPath.join("/");
110
+ const hits = sections.filter((section) => section.headerPath.join("/") === wanted);
111
+ if (hits.length > 1) {
112
+ throw new AddressResolutionError(
113
+ `address '#${wanted}' is AMBIGUOUS: ${hits.length} sections match at lines ${hits.map((hit) => hit.headerLine + 1).join(", ")}`,
114
+ );
115
+ }
116
+ if (hits.length === 1) return hits[0];
117
+
118
+ const parentPath = headerPath.slice(0, -1).join("/");
119
+ const candidates = sections
120
+ .filter((section) => section.headerPath.slice(0, -1).join("/") === parentPath)
121
+ .map((section) => section.headerPath.join("/"));
122
+ throw new AddressResolutionError(
123
+ `address '#${wanted}' matches no header. ` +
124
+ (candidates.length > 0
125
+ ? `Addressable sections under '${parentPath || "(top)"}': ${candidates.join(", ")}.`
126
+ : `Addressable sections: ${sections.map((section) => section.headerPath.join("/")).join(", ") || "(none)"}.`),
127
+ );
128
+ }
129
+
130
+ function usage() {
131
+ return "Usage: resolve-markdown.mjs [--root DIR] FILE[#h2-slug[/h3-slug]]\n";
132
+ }
133
+
134
+ async function main(argv) {
135
+ let root = process.cwd();
136
+ const args = [...argv];
137
+
138
+ if (args[0] === "--help" || args[0] === "-h") {
139
+ process.stdout.write(usage());
140
+ return;
141
+ }
142
+ if (args[0] === "--root") {
143
+ if (!args[1]) throw new AddressResolutionError("--root needs a directory");
144
+ root = path.resolve(args[1]);
145
+ args.splice(0, 2);
146
+ }
147
+ if (args.length !== 1) throw new AddressResolutionError(usage().trim());
148
+
149
+ const { ref, headerPath } = parseAddress(args[0]);
150
+ const filePath = path.isAbsolute(ref) ? ref : path.resolve(root, ref);
151
+ const text = await readFile(filePath, "utf8");
152
+ process.stdout.write(headerPath.length === 0 ? text : resolveAddress(text, headerPath).text);
153
+ }
154
+
155
+ function isMainModule() {
156
+ const entry = process.argv[1];
157
+ if (!entry) return false;
158
+ try {
159
+ return realpathSync(entry) === realpathSync(fileURLToPath(import.meta.url));
160
+ } catch {
161
+ return false;
162
+ }
163
+ }
164
+
165
+ if (isMainModule()) {
166
+ main(process.argv.slice(2)).catch((error) => {
167
+ process.stderr.write(`${error.name ?? "Error"}: ${error.message}\n`);
168
+ process.exitCode = 1;
169
+ });
170
+ }
@@ -1,134 +1,98 @@
1
1
  ---
2
2
  name: messaging-the-human
3
- description: |
4
- When and who should send a message to the human operator, at
5
- operator-human@your-rig — which routes straight to his Slack. Role-gated:
6
- orchestrators and PMs use discretion to send anything worth his attention
7
- (blockers, ships/completions, changes, good news); every other agent may
8
- message him ONLY for a real blocker he can personally unblock, and routes
9
- everything else through an orchestrator. Use to protect a scarce human's
10
- manage-by-exception attention. NOT for agent-to-agent coordination (send/queue
11
- a peer) or durable agent work-handoffs (use the queue to the owning seat).
3
+ description: "Use when a human decision, access grant, external action, or escalation must survive the operator's absence, or when an orchestrator or PM has a judgment-worthy update for the operator."
12
4
  metadata:
5
+ cli_surfaces_referenced:
6
+ - gateway human add
7
+ - gateway human list
8
+ - queue block
9
+ - queue handoff
10
+ - queue transitions
11
+ - send
13
12
  openrig:
14
- stage: provisional # operator-directed, freshly authored 2026-07-30; hardens as agents use it
15
- audience: ALL agents (universal); orchestrators + PMs are the primary discretionary senders
13
+ stage: provisional
14
+ audience: all agents
16
15
  sibling_skills:
17
16
  - queue-handoff
18
- - status-not-chat-orchestrator
19
17
  - human-in-the-loop
20
18
  - openrig-user
21
19
  ---
22
20
 
23
21
  # Messaging the Human
24
22
 
25
- ## The one-line mechanism
23
+ The human is an addressable participant, but their attention is scarce and they
24
+ may not be at a terminal. Anything that must survive their absence needs a
25
+ durable queue row; the gateway turns the human blocker on that row into the
26
+ external notification.
27
+
28
+ Any seat may contact the human directly for a real escalation. Orchestrators
29
+ and product managers may also send updates they judge the human would want to
30
+ know. Do not add a routing intermediary merely because of your role.
31
+
32
+ ## The supported route
33
+
34
+ First discover the registered human identity. Never invent or remember an
35
+ address:
36
+
37
+ ```bash
38
+ rig gateway human list --json
39
+ ```
40
+
41
+ Use `humans[].entityId` to derive the durable blocker as `<entityId>@host`.
42
+ The entity id must use the human-seat prefix (`human` or `human-...`); if it
43
+ does not, stop and repair the registration rather than guessing. The returned
44
+ `humans[].address` is the gateway delivery address, not the `--on` value. If no
45
+ unambiguous registered human is returned, stop: registration is lifecycle work
46
+ (`rig gateway human add --help`), not an address to guess.
47
+
48
+ Keep the work row owned by the agent who must resume it, then park that row on
49
+ the registered human:
50
+
51
+ ```bash
52
+ rig queue block <qitem-id> --on <entityId>@host \
53
+ --summary "<decision owed>" \
54
+ --evidence-ref "<durable artifact the human should judge>" \
55
+ --continuation "<what resumes after the answer>"
56
+ ```
57
+
58
+ The gateway resolves the registered human to the configured connector, sends
59
+ the Slack notification, and records its receipt on the same row. Confirm the
60
+ effect from the append-only history:
26
61
 
27
62
  ```bash
28
- rig send operator-human@your-rig "your message"
63
+ rig queue transitions <qitem-id>
29
64
  ```
30
65
 
31
- That goes straight to the human's Slack — that is the *how* for **text**. For **images**
32
- (screenshots, renders), send through the **image connector** instead; text and images are separate
33
- live channels today (a release upgrade will unify them). Either way the *how* is trivial; everything
34
- below is the *when* and the *who* — the part that actually matters.
35
-
36
- ## The mental model: the human is a scarce attention resource managing by exception
37
-
38
- There is one human. He is single-threaded across many agents, so his attention
39
- is the bottleneck of the whole system. He operates **by exception**: he wants to
40
- be pulled in when it genuinely matters and left alone when it doesn't. Every
41
- message you send spends a slice of that scarce attention.
42
-
43
- So the rule is not "can I reach him" (you can, trivially — one `rig send`). The
44
- rule is **should this reach him, coming from me**. Two things decide that: **who
45
- you are** (your role sets how much of his attention you're trusted to spend) and
46
- **what it is** (does it clear the bar for that role). Get the altitude wrong in
47
- either direction and you fail him: spam his Slack with noise, or sit silently on
48
- something he needed to know or could have unblocked.
49
-
50
- ## WHO sends WHAT
51
-
52
- ### If you are an ORCHESTRATOR or a PRODUCT MANAGER — use discretion
53
-
54
- You are the primary channel to the human. You may send **more than blockers** —
55
- anything you judge he would want to know:
56
-
57
- - something **shipped**, **completed**, or a **milestone** was hit
58
- - something **important happened**, or something **changed**
59
- - **environmental** changes (infra, hosts, tools, external state)
60
- - **good news**
61
- - anything that needs his attention, or is simply **good for him to know**
62
-
63
- There is no hard trigger here — it is judgment, and you are trusted with it. The
64
- test is: **"would he want to know this?"** If yes, send it. Lean toward sending
65
- genuine signal and real good news; do not manufacture noise or narrate routine
66
- churn. Discernment is the skill: you are curating his attention, not flooding it.
67
-
68
- ### The v0 event classes — reach out on these, unprompted
69
-
70
- "Use discretion" left the *when* unspecified, so it did not happen — the channel exists and nobody
71
- reaches for it. Here are the **named event classes** that should trigger a proactive message —
72
- anchors for the judgment, not an exhaustive gate:
73
-
74
- - **Model-fallback boots** — a seat that came up on a fallback model instead of its pinned one. Send
75
- on **every occurrence**; a silent downgrade is exactly what the human needs to see.
76
- - **Capacity / authority requests** — you need a fork/spin-up authorization, a spend-or-limit call, or
77
- any authority only the human holds. This is a **guaranteed-answer** path — don't sit blocked on it.
78
- - **Security-category flags** — anything in the security / consequence-boundary class.
79
- - **Acceptance / milestone moments** — a slice proven, a release cut, a real "it's done and it works."
80
- - **Human-addressed work blocked beyond its settle window** — a decision or request routed to the
81
- human that has sat past the time it should have moved.
82
- - **Idle / stall alarms** — the line stopped and isn't resuming (the idle-detector's signal).
83
-
84
- These are v0, drawn from real rulings; treat them as the anchors that make the *when* concrete. New
85
- classes earn their place the same way — from a real event the human wanted to know about.
86
-
87
- **Why this is a norm, not a nicety — WORKS ≠ USED.** A channel that *works* is not a channel that is
88
- *used*. This path is proven only when agents **reach for it unprompted** across the lifecycle — a
89
- boot, a blocker, a ship, an alarm. If the channel exists and nobody reaches for it, the human is
90
- blind by default. Reaching out on these classes is the job, not an interruption of it.
91
-
92
- ### If you are ANY OTHER agent — blockers only
93
-
94
- You may message the human **only** when you are **blocked** and **he** is the one
95
- who can unblock you. That authority is universal — you do **not** have to be an
96
- orchestrator to raise a real blocker. But a blocker is the **only** thing you may
97
- send him directly.
98
-
99
- For anything that is **not** a blocker — an update, an idea, a question, an
100
- interesting finding — do **not** message the human. Send it to your
101
- **orchestrator**, who decides whether it is the human's role to handle or whether
102
- it is handled another way. The orchestrator/PM layer is the filter that protects
103
- the human's attention; routing through it is how the system keeps his queue at
104
- manage-by-exception altitude.
105
-
106
- ## What counts as a real blocker (for non-orchestrator / non-PM agents)
107
-
108
- You are **blocked** AND **only the human** can clear it:
109
-
110
- - a **decision** only he can make,
111
- - **access / a credential / an authority** only he holds,
112
- - an **external action** only he can take (something in the real world, an
113
- account or service he owns).
114
-
115
- Not a blocker: "I'd like a second opinion," "which approach do you prefer,"
116
- "here's a cool thing I found." Those go to your **orchestrator**. And if an
117
- orchestrator or PM *could* unblock you, route to them first — reserve the human
118
- for what genuinely only he can do.
119
-
120
- ## How to write it (so it earns the interruption)
121
-
122
- - **Lead with the point.** Blocker: what is blocked + exactly what you need from
123
- him. Update: the headline first, detail after.
124
- - **Full absolute paths.** No internal jargon he can't parse. **No backticks** in
125
- `rig send` bodies (they trigger shell substitution).
126
- - `rig send` is an **ephemeral conversation** to his Slack. For a durable *agent*
127
- work-handoff, use the queue to the owning seat — not the human.
128
-
129
- ## Quick reference
130
-
131
- | You are… | You may send the human… |
132
- |---|---|
133
- | Orchestrator / PM | anything worth his attention — blockers, ships, completions, changes, good news (your discretion) |
134
- | Any other agent | a real blocker only he can unblock — **and nothing else** (everything else → your orchestrator) |
66
+ The row is the obligation and the audit trail. Slack is the attention leg. A
67
+ reply resolves the durable blocker and wakes the row owner; it does not create
68
+ a second private work stream.
69
+
70
+ ## When to use it
71
+
72
+ Escalate directly when only the human can supply the missing capability:
73
+
74
+ - a decision or irreversible judgment only they own;
75
+ - access, credentials, authority, or capacity only they can grant;
76
+ - an external action only they can perform;
77
+ - a security-class or provider/model-fallback event they need to know about.
78
+
79
+ Orchestrators and product managers may additionally send meaningful milestone,
80
+ environment, or completion updates. Prefer signal over routine narration.
81
+
82
+ ## Boundaries
83
+
84
+ - `rig send` sends text to an agent's terminal. It is not the Slack route and
85
+ does not create a durable human obligation.
86
+ - An unregistered or ambiguous human identity must fail loudly. Register or
87
+ repair the identity; never downgrade it to an agent seat or a guessed
88
+ `@external` address.
89
+ - Agent-to-agent work that needs closure uses `rig queue handoff`, not this
90
+ human-blocker path.
91
+ - Deferred work that is not imminent belongs in the mission workspace, not on
92
+ the queue.
93
+
94
+ ## Writing the escalation
95
+
96
+ Lead with what is blocked and the exact decision or action needed. Point at the
97
+ durable evidence instead of pasting a second copy, and name the continuation so
98
+ the system can resume the right work when the answer arrives.