@openrig/cli 0.7.0 → 0.7.1

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 (1007) hide show
  1. package/README.md +9 -8
  2. package/daemon/assets/claude-statusline-context.cjs +13 -3
  3. package/daemon/assets/guidance/openrig-seat-skills.md +1 -0
  4. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  6. package/daemon/assets/plugins/openrig-core/hooks/claude.json +11 -11
  7. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +9 -8
  8. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +2 -2
  9. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +9 -6
  10. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +1 -1
  11. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +13 -8
  12. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +19 -4
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +167 -46
  14. package/daemon/assets/skills/rigs/SKILL.md +2 -1
  15. package/daemon/context-packs/help/manifest.yaml +1 -1
  16. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  17. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +206 -28
  18. package/daemon/context-packs/reference/getting-started.md +65 -6
  19. package/daemon/context-packs/reference/manifest.yaml +1 -1
  20. package/daemon/context-packs/reference/rig-spec.md +82 -2
  21. package/daemon/context-packs/reference/whats-new.md +162 -113
  22. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +1 -1
  27. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +19 -4
  32. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +3 -0
  36. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +2 -2
  40. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +13 -8
  49. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/openrig-user/SKILL.md +167 -46
  54. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  80. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  81. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  82. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  83. package/daemon/dist/adapters/claude-code-adapter.js +94 -26
  84. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  85. package/daemon/dist/adapters/claude-resume.d.ts +2 -1
  86. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  87. package/daemon/dist/adapters/claude-resume.js +10 -3
  88. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  89. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +10 -4
  90. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  91. package/daemon/dist/adapters/codex-runtime-adapter.js +231 -41
  92. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  93. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts +21 -2
  94. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts.map +1 -1
  95. package/daemon/dist/adapters/community-harness-runtime-adapter.js +90 -8
  96. package/daemon/dist/adapters/community-harness-runtime-adapter.js.map +1 -1
  97. package/daemon/dist/adapters/pi-runner.d.ts +11 -0
  98. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  99. package/daemon/dist/adapters/pi-runner.js +59 -16
  100. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  101. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  102. package/daemon/dist/adapters/pi-runtime-adapter.js +9 -6
  103. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  104. package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
  105. package/daemon/dist/adapters/stub-runtime-adapter.js +9 -5
  106. package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
  107. package/daemon/dist/adapters/tmux.d.ts +15 -4
  108. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  109. package/daemon/dist/adapters/tmux.js +68 -26
  110. package/daemon/dist/adapters/tmux.js.map +1 -1
  111. package/daemon/dist/attention-surface.d.ts +14 -0
  112. package/daemon/dist/attention-surface.d.ts.map +1 -1
  113. package/daemon/dist/attention-surface.js.map +1 -1
  114. package/daemon/dist/build-info.js +3 -3
  115. package/daemon/dist/daemon-db-path.d.ts +6 -0
  116. package/daemon/dist/daemon-db-path.d.ts.map +1 -1
  117. package/daemon/dist/daemon-db-path.js +65 -1
  118. package/daemon/dist/daemon-db-path.js.map +1 -1
  119. package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
  120. package/daemon/dist/daemon-shutdown.js +4 -2
  121. package/daemon/dist/daemon-shutdown.js.map +1 -1
  122. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  123. package/daemon/dist/db/all-migrations.js +16 -0
  124. package/daemon/dist/db/all-migrations.js.map +1 -1
  125. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.d.ts +4 -0
  126. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.d.ts.map +1 -0
  127. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.js +9 -0
  128. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.js.map +1 -0
  129. package/daemon/dist/db/migrations/125_node_advisor.d.ts +3 -0
  130. package/daemon/dist/db/migrations/125_node_advisor.d.ts.map +1 -0
  131. package/daemon/dist/db/migrations/125_node_advisor.js +8 -0
  132. package/daemon/dist/db/migrations/125_node_advisor.js.map +1 -0
  133. package/daemon/dist/db/migrations/127_operation_correlation.d.ts +3 -0
  134. package/daemon/dist/db/migrations/127_operation_correlation.d.ts.map +1 -0
  135. package/daemon/dist/db/migrations/127_operation_correlation.js +10 -0
  136. package/daemon/dist/db/migrations/127_operation_correlation.js.map +1 -0
  137. package/daemon/dist/db/migrations/128_terminal_policy.d.ts +3 -0
  138. package/daemon/dist/db/migrations/128_terminal_policy.d.ts.map +1 -0
  139. package/daemon/dist/db/migrations/128_terminal_policy.js +37 -0
  140. package/daemon/dist/db/migrations/128_terminal_policy.js.map +1 -0
  141. package/daemon/dist/db/migrations/129_stream_dispositions.d.ts +10 -0
  142. package/daemon/dist/db/migrations/129_stream_dispositions.d.ts.map +1 -0
  143. package/daemon/dist/db/migrations/129_stream_dispositions.js +35 -0
  144. package/daemon/dist/db/migrations/129_stream_dispositions.js.map +1 -0
  145. package/daemon/dist/db/migrations/130_stream_subscriptions.d.ts +11 -0
  146. package/daemon/dist/db/migrations/130_stream_subscriptions.d.ts.map +1 -0
  147. package/daemon/dist/db/migrations/130_stream_subscriptions.js +33 -0
  148. package/daemon/dist/db/migrations/130_stream_subscriptions.js.map +1 -0
  149. package/daemon/dist/db/migrations/131_stream_retention_floor.d.ts +8 -0
  150. package/daemon/dist/db/migrations/131_stream_retention_floor.d.ts.map +1 -0
  151. package/daemon/dist/db/migrations/131_stream_retention_floor.js +20 -0
  152. package/daemon/dist/db/migrations/131_stream_retention_floor.js.map +1 -0
  153. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.d.ts +3 -0
  154. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.d.ts.map +1 -0
  155. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.js +16 -0
  156. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.js.map +1 -0
  157. package/daemon/dist/domain/active-occupant.d.ts +3 -0
  158. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  159. package/daemon/dist/domain/active-occupant.js +6 -2
  160. package/daemon/dist/domain/active-occupant.js.map +1 -1
  161. package/daemon/dist/domain/activity-taxonomy.d.ts +3 -0
  162. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  163. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  164. package/daemon/dist/domain/agent-activity-store.d.ts +6 -2
  165. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  166. package/daemon/dist/domain/agent-activity-store.js +13 -4
  167. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  168. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  169. package/daemon/dist/domain/agent-manifest.js +14 -2
  170. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  171. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +3 -0
  172. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  173. package/daemon/dist/domain/bootstrap-orchestrator.js +20 -6
  174. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  175. package/daemon/dist/domain/builtin-startup-files.d.ts.map +1 -1
  176. package/daemon/dist/domain/builtin-startup-files.js +2 -0
  177. package/daemon/dist/domain/builtin-startup-files.js.map +1 -1
  178. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -1
  179. package/daemon/dist/domain/bundle-behaviour.js +28 -1
  180. package/daemon/dist/domain/bundle-behaviour.js.map +1 -1
  181. package/daemon/dist/domain/claim-service.d.ts +19 -1
  182. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  183. package/daemon/dist/domain/claim-service.js +67 -19
  184. package/daemon/dist/domain/claim-service.js.map +1 -1
  185. package/daemon/dist/domain/classification-attempts.d.ts +4 -1
  186. package/daemon/dist/domain/classification-attempts.d.ts.map +1 -1
  187. package/daemon/dist/domain/classification-attempts.js +10 -1
  188. package/daemon/dist/domain/classification-attempts.js.map +1 -1
  189. package/daemon/dist/domain/classification-sources.d.ts +38 -0
  190. package/daemon/dist/domain/classification-sources.d.ts.map +1 -1
  191. package/daemon/dist/domain/classification-sources.js +24 -1
  192. package/daemon/dist/domain/classification-sources.js.map +1 -1
  193. package/daemon/dist/domain/claude-activity-hooks.d.ts +2 -2
  194. package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
  195. package/daemon/dist/domain/claude-activity-hooks.js +8 -7
  196. package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
  197. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +109 -7
  198. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  199. package/daemon/dist/domain/claude-compaction-enforcer.js +447 -52
  200. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  201. package/daemon/dist/domain/claude-core-plugin-env.d.ts +4 -1
  202. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -1
  203. package/daemon/dist/domain/claude-core-plugin-env.js +23 -12
  204. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -1
  205. package/daemon/dist/domain/claude-managed-launch.d.ts +1 -1
  206. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  207. package/daemon/dist/domain/claude-managed-launch.js +33 -15
  208. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  209. package/daemon/dist/domain/codex-owned-plugin-trust.d.ts +26 -0
  210. package/daemon/dist/domain/codex-owned-plugin-trust.d.ts.map +1 -0
  211. package/daemon/dist/domain/codex-owned-plugin-trust.js +187 -0
  212. package/daemon/dist/domain/codex-owned-plugin-trust.js.map +1 -0
  213. package/daemon/dist/domain/codex-rebuild-permissions.d.ts +54 -0
  214. package/daemon/dist/domain/codex-rebuild-permissions.d.ts.map +1 -0
  215. package/daemon/dist/domain/codex-rebuild-permissions.js +134 -0
  216. package/daemon/dist/domain/codex-rebuild-permissions.js.map +1 -0
  217. package/daemon/dist/domain/community-harness-launch-result.d.ts +33 -0
  218. package/daemon/dist/domain/community-harness-launch-result.d.ts.map +1 -0
  219. package/daemon/dist/domain/community-harness-launch-result.js +93 -0
  220. package/daemon/dist/domain/community-harness-launch-result.js.map +1 -0
  221. package/daemon/dist/domain/community-harness-presets.d.ts +27 -2
  222. package/daemon/dist/domain/community-harness-presets.d.ts.map +1 -1
  223. package/daemon/dist/domain/community-harness-presets.js +49 -5
  224. package/daemon/dist/domain/community-harness-presets.js.map +1 -1
  225. package/daemon/dist/domain/composer-prompts.d.ts +5 -2
  226. package/daemon/dist/domain/composer-prompts.d.ts.map +1 -1
  227. package/daemon/dist/domain/composer-prompts.js +2 -2
  228. package/daemon/dist/domain/composer-prompts.js.map +1 -1
  229. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  230. package/daemon/dist/domain/context-monitor.js +2 -1
  231. package/daemon/dist/domain/context-monitor.js.map +1 -1
  232. package/daemon/dist/domain/continuity-policy-materializer.d.ts +1 -0
  233. package/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -1
  234. package/daemon/dist/domain/continuity-policy-materializer.js +2 -0
  235. package/daemon/dist/domain/continuity-policy-materializer.js.map +1 -1
  236. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -1
  237. package/daemon/dist/domain/draft-aware-delivery.js +1 -1
  238. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -1
  239. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  240. package/daemon/dist/domain/execution-view.js +7 -6
  241. package/daemon/dist/domain/execution-view.js.map +1 -1
  242. package/daemon/dist/domain/footprint-choice.d.ts +41 -0
  243. package/daemon/dist/domain/footprint-choice.d.ts.map +1 -0
  244. package/daemon/dist/domain/footprint-choice.js +42 -0
  245. package/daemon/dist/domain/footprint-choice.js.map +1 -0
  246. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +3 -0
  247. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -1
  248. package/daemon/dist/domain/gateway/delivery-rules-engine.js +1 -1
  249. package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -1
  250. package/daemon/dist/domain/gateway/human-registry.d.ts +32 -0
  251. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  252. package/daemon/dist/domain/gateway/human-registry.js +71 -4
  253. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  254. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  255. package/daemon/dist/domain/gateway/slack/inbound.js +52 -4
  256. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  257. package/daemon/dist/domain/gateway/slack/message.d.ts +3 -0
  258. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  259. package/daemon/dist/domain/gateway/slack/message.js +9 -2
  260. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  261. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +7 -0
  262. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  263. package/daemon/dist/domain/gateway/slack/queue-access.js +14 -2
  264. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  265. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +1 -3
  266. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  267. package/daemon/dist/domain/gateway/slack/slack-delivery.js +22 -22
  268. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  269. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  270. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +4 -7
  271. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  272. package/daemon/dist/domain/generated-file-hygiene.js +1 -1
  273. package/daemon/dist/domain/generated-file-hygiene.js.map +1 -1
  274. package/daemon/dist/domain/graph-projection.d.ts +3 -0
  275. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  276. package/daemon/dist/domain/graph-projection.js +2 -0
  277. package/daemon/dist/domain/graph-projection.js.map +1 -1
  278. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  279. package/daemon/dist/domain/health-diagnosis.js +14 -6
  280. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  281. package/daemon/dist/domain/hot-potato-enforcer.d.ts +1 -1
  282. package/daemon/dist/domain/human-questions.d.ts +2 -0
  283. package/daemon/dist/domain/human-questions.d.ts.map +1 -1
  284. package/daemon/dist/domain/human-questions.js +5 -0
  285. package/daemon/dist/domain/human-questions.js.map +1 -1
  286. package/daemon/dist/domain/kernel-boot.d.ts +5 -1
  287. package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
  288. package/daemon/dist/domain/kernel-boot.js +34 -4
  289. package/daemon/dist/domain/kernel-boot.js.map +1 -1
  290. package/daemon/dist/domain/managed-blocks.d.ts +32 -1
  291. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  292. package/daemon/dist/domain/managed-blocks.js +109 -11
  293. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  294. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +1 -1
  295. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -1
  296. package/daemon/dist/domain/mission-control/mission-control-action-log.js +3 -0
  297. package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -1
  298. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +21 -0
  299. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  300. package/daemon/dist/domain/mission-control/mission-control-write-contract.js +110 -0
  301. package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  302. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts +2 -0
  303. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts.map +1 -1
  304. package/daemon/dist/domain/model-divergence/current-model-reader.js +7 -0
  305. package/daemon/dist/domain/model-divergence/current-model-reader.js.map +1 -1
  306. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +10 -1
  307. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  308. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +24 -5
  309. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  310. package/daemon/dist/domain/native-process-lineage.d.ts +3 -0
  311. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  312. package/daemon/dist/domain/native-process-lineage.js +60 -2
  313. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  314. package/daemon/dist/domain/native-resume-probe-evidence.d.ts +19 -0
  315. package/daemon/dist/domain/native-resume-probe-evidence.d.ts.map +1 -0
  316. package/daemon/dist/domain/native-resume-probe-evidence.js +37 -0
  317. package/daemon/dist/domain/native-resume-probe-evidence.js.map +1 -0
  318. package/daemon/dist/domain/native-resume-probe.d.ts +7 -0
  319. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  320. package/daemon/dist/domain/native-resume-probe.js +12 -9
  321. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  322. package/daemon/dist/domain/node-inventory.d.ts +49 -1
  323. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  324. package/daemon/dist/domain/node-inventory.js +119 -45
  325. package/daemon/dist/domain/node-inventory.js.map +1 -1
  326. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  327. package/daemon/dist/domain/node-launcher.js +9 -3
  328. package/daemon/dist/domain/node-launcher.js.map +1 -1
  329. package/daemon/dist/domain/occupant-invalidator.d.ts +16 -4
  330. package/daemon/dist/domain/occupant-invalidator.d.ts.map +1 -1
  331. package/daemon/dist/domain/occupant-invalidator.js +25 -5
  332. package/daemon/dist/domain/occupant-invalidator.js.map +1 -1
  333. package/daemon/dist/domain/operation-correlation.d.ts +78 -0
  334. package/daemon/dist/domain/operation-correlation.d.ts.map +1 -0
  335. package/daemon/dist/domain/operation-correlation.js +54 -0
  336. package/daemon/dist/domain/operation-correlation.js.map +1 -0
  337. package/daemon/dist/domain/permission-account.d.ts +28 -0
  338. package/daemon/dist/domain/permission-account.d.ts.map +1 -0
  339. package/daemon/dist/domain/permission-account.js +102 -0
  340. package/daemon/dist/domain/permission-account.js.map +1 -0
  341. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  342. package/daemon/dist/domain/permission-drift.js +11 -7
  343. package/daemon/dist/domain/permission-drift.js.map +1 -1
  344. package/daemon/dist/domain/pod-bundle-assembler.d.ts +1 -0
  345. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  346. package/daemon/dist/domain/pod-bundle-assembler.js +25 -0
  347. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  348. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts +7 -0
  349. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -1
  350. package/daemon/dist/domain/policies/artifact-pool-helpers.js +8 -4
  351. package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -1
  352. package/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -1
  353. package/daemon/dist/domain/policies/context-usage-threshold.js +109 -21
  354. package/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -1
  355. package/daemon/dist/domain/policies/edge-artifact-required.d.ts +6 -1
  356. package/daemon/dist/domain/policies/edge-artifact-required.d.ts.map +1 -1
  357. package/daemon/dist/domain/policies/edge-artifact-required.js +18 -13
  358. package/daemon/dist/domain/policies/edge-artifact-required.js.map +1 -1
  359. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts +2 -0
  360. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts.map +1 -1
  361. package/daemon/dist/domain/policies/mode-scheduled-end.js +5 -1
  362. package/daemon/dist/domain/policies/mode-scheduled-end.js.map +1 -1
  363. package/daemon/dist/domain/policies/periodic-reminder.d.ts +10 -0
  364. package/daemon/dist/domain/policies/periodic-reminder.d.ts.map +1 -1
  365. package/daemon/dist/domain/policies/periodic-reminder.js +11 -6
  366. package/daemon/dist/domain/policies/periodic-reminder.js.map +1 -1
  367. package/daemon/dist/domain/policies/types.d.ts +25 -0
  368. package/daemon/dist/domain/policies/types.d.ts.map +1 -1
  369. package/daemon/dist/domain/policies/workflow-keepalive.d.ts +6 -1
  370. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  371. package/daemon/dist/domain/policies/workflow-keepalive.js +11 -5
  372. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  373. package/daemon/dist/domain/profile-resolution-worker.d.ts +7 -0
  374. package/daemon/dist/domain/profile-resolution-worker.d.ts.map +1 -0
  375. package/daemon/dist/domain/profile-resolution-worker.js +83 -0
  376. package/daemon/dist/domain/profile-resolution-worker.js.map +1 -0
  377. package/daemon/dist/domain/profile-resolver.d.ts +6 -0
  378. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  379. package/daemon/dist/domain/profile-resolver.js +14 -2
  380. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  381. package/daemon/dist/domain/project-classifier.d.ts +7 -0
  382. package/daemon/dist/domain/project-classifier.d.ts.map +1 -1
  383. package/daemon/dist/domain/project-classifier.js +26 -0
  384. package/daemon/dist/domain/project-classifier.js.map +1 -1
  385. package/daemon/dist/domain/provider/subscription-move-report.d.ts +86 -0
  386. package/daemon/dist/domain/provider/subscription-move-report.d.ts.map +1 -0
  387. package/daemon/dist/domain/provider/subscription-move-report.js +227 -0
  388. package/daemon/dist/domain/provider/subscription-move-report.js.map +1 -0
  389. package/daemon/dist/domain/ps-projection.d.ts +6 -35
  390. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  391. package/daemon/dist/domain/ps-projection.js +14 -55
  392. package/daemon/dist/domain/ps-projection.js.map +1 -1
  393. package/daemon/dist/domain/queue-owner.d.ts +6 -3
  394. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  395. package/daemon/dist/domain/queue-owner.js +10 -5
  396. package/daemon/dist/domain/queue-owner.js.map +1 -1
  397. package/daemon/dist/domain/queue-pickup.d.ts +5 -2
  398. package/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
  399. package/daemon/dist/domain/queue-pickup.js +19 -2
  400. package/daemon/dist/domain/queue-pickup.js.map +1 -1
  401. package/daemon/dist/domain/queue-repository.d.ts +54 -21
  402. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  403. package/daemon/dist/domain/queue-repository.js +257 -97
  404. package/daemon/dist/domain/queue-repository.js.map +1 -1
  405. package/daemon/dist/domain/queue-retention.d.ts +18 -0
  406. package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  407. package/daemon/dist/domain/queue-retention.js +74 -0
  408. package/daemon/dist/domain/queue-retention.js.map +1 -1
  409. package/daemon/dist/domain/queue-stuck-sweep.d.ts +2 -0
  410. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  411. package/daemon/dist/domain/queue-stuck-sweep.js +37 -3
  412. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  413. package/daemon/dist/domain/queue-wait-backoff.d.ts +3 -0
  414. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
  415. package/daemon/dist/domain/queue-wait-backoff.js +9 -0
  416. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
  417. package/daemon/dist/domain/queue-waiting.d.ts +2 -0
  418. package/daemon/dist/domain/queue-waiting.d.ts.map +1 -1
  419. package/daemon/dist/domain/queue-waiting.js.map +1 -1
  420. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  421. package/daemon/dist/domain/queue-wake-ladder.js +18 -6
  422. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  423. package/daemon/dist/domain/reconciler.d.ts +23 -0
  424. package/daemon/dist/domain/reconciler.d.ts.map +1 -1
  425. package/daemon/dist/domain/reconciler.js +44 -1
  426. package/daemon/dist/domain/reconciler.js.map +1 -1
  427. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  428. package/daemon/dist/domain/rehydrate-eligibility.js +2 -3
  429. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  430. package/daemon/dist/domain/restore-guidance.d.ts +7 -0
  431. package/daemon/dist/domain/restore-guidance.d.ts.map +1 -1
  432. package/daemon/dist/domain/restore-guidance.js +20 -8
  433. package/daemon/dist/domain/restore-guidance.js.map +1 -1
  434. package/daemon/dist/domain/restore-orchestrator.d.ts +13 -1
  435. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  436. package/daemon/dist/domain/restore-orchestrator.js +151 -26
  437. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  438. package/daemon/dist/domain/restore-plan-preview.d.ts +7 -2
  439. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  440. package/daemon/dist/domain/restore-plan-preview.js +28 -7
  441. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  442. package/daemon/dist/domain/restore-policy.d.ts +4 -0
  443. package/daemon/dist/domain/restore-policy.d.ts.map +1 -1
  444. package/daemon/dist/domain/restore-policy.js +11 -0
  445. package/daemon/dist/domain/restore-policy.js.map +1 -1
  446. package/daemon/dist/domain/rig-edge-ops.d.ts +58 -0
  447. package/daemon/dist/domain/rig-edge-ops.d.ts.map +1 -0
  448. package/daemon/dist/domain/rig-edge-ops.js +113 -0
  449. package/daemon/dist/domain/rig-edge-ops.js.map +1 -0
  450. package/daemon/dist/domain/rig-name-override.d.ts +14 -0
  451. package/daemon/dist/domain/rig-name-override.d.ts.map +1 -0
  452. package/daemon/dist/domain/rig-name-override.js +38 -0
  453. package/daemon/dist/domain/rig-name-override.js.map +1 -0
  454. package/daemon/dist/domain/rig-repository.d.ts +10 -2
  455. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  456. package/daemon/dist/domain/rig-repository.js +14 -0
  457. package/daemon/dist/domain/rig-repository.js.map +1 -1
  458. package/daemon/dist/domain/rig-status-compose.d.ts +1 -1
  459. package/daemon/dist/domain/rig-status-compose.d.ts.map +1 -1
  460. package/daemon/dist/domain/rig-status-compose.js +3 -1
  461. package/daemon/dist/domain/rig-status-compose.js.map +1 -1
  462. package/daemon/dist/domain/rig-teardown.d.ts +19 -0
  463. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  464. package/daemon/dist/domain/rig-teardown.js +78 -8
  465. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  466. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  467. package/daemon/dist/domain/rigspec-codec.js +10 -0
  468. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  469. package/daemon/dist/domain/rigspec-exporter.d.ts +3 -0
  470. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  471. package/daemon/dist/domain/rigspec-exporter.js +22 -0
  472. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  473. package/daemon/dist/domain/rigspec-instantiator.d.ts +30 -2
  474. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  475. package/daemon/dist/domain/rigspec-instantiator.js +262 -47
  476. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  477. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  478. package/daemon/dist/domain/rigspec-preflight.js +15 -2
  479. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  480. package/daemon/dist/domain/rigspec-schema.d.ts +3 -0
  481. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  482. package/daemon/dist/domain/rigspec-schema.js +67 -3
  483. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  484. package/daemon/dist/domain/runtime-adapter.d.ts +20 -1
  485. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  486. package/daemon/dist/domain/runtime-adapter.js +5 -1
  487. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  488. package/daemon/dist/domain/scope/scope-view-projection.d.ts +6 -0
  489. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  490. package/daemon/dist/domain/scope/scope-view-projection.js +26 -10
  491. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  492. package/daemon/dist/domain/seat-activity-service.d.ts +4 -2
  493. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  494. package/daemon/dist/domain/seat-activity-service.js +13 -5
  495. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  496. package/daemon/dist/domain/seat-attention-reconciler.d.ts +19 -0
  497. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  498. package/daemon/dist/domain/seat-attention-reconciler.js +60 -6
  499. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  500. package/daemon/dist/domain/seat-delivery-guard.d.ts +20 -1
  501. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  502. package/daemon/dist/domain/seat-delivery-guard.js +66 -11
  503. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  504. package/daemon/dist/domain/seat-handover-service.d.ts +8 -0
  505. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  506. package/daemon/dist/domain/seat-handover-service.js +74 -4
  507. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  508. package/daemon/dist/domain/seat-identity-store.d.ts +11 -1
  509. package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
  510. package/daemon/dist/domain/seat-identity-store.js +29 -4
  511. package/daemon/dist/domain/seat-identity-store.js.map +1 -1
  512. package/daemon/dist/domain/seat-launch-additions.d.ts +115 -0
  513. package/daemon/dist/domain/seat-launch-additions.d.ts.map +1 -0
  514. package/daemon/dist/domain/seat-launch-additions.js +439 -0
  515. package/daemon/dist/domain/seat-launch-additions.js.map +1 -0
  516. package/daemon/dist/domain/seat-launch-environment.d.ts +1 -1
  517. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -1
  518. package/daemon/dist/domain/seat-launch-environment.js +1 -1
  519. package/daemon/dist/domain/seat-launch-environment.js.map +1 -1
  520. package/daemon/dist/domain/seat-lifecycle-service.d.ts +79 -4
  521. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  522. package/daemon/dist/domain/seat-lifecycle-service.js +202 -12
  523. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  524. package/daemon/dist/domain/seat-skill-apply.d.ts +139 -0
  525. package/daemon/dist/domain/seat-skill-apply.d.ts.map +1 -0
  526. package/daemon/dist/domain/seat-skill-apply.js +221 -0
  527. package/daemon/dist/domain/seat-skill-apply.js.map +1 -0
  528. package/daemon/dist/domain/seat-skill-storage.d.ts +295 -0
  529. package/daemon/dist/domain/seat-skill-storage.d.ts.map +1 -0
  530. package/daemon/dist/domain/seat-skill-storage.js +850 -0
  531. package/daemon/dist/domain/seat-skill-storage.js.map +1 -0
  532. package/daemon/dist/domain/seat-status-service.d.ts +9 -0
  533. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  534. package/daemon/dist/domain/seat-status-service.js +15 -3
  535. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  536. package/daemon/dist/domain/session-registry.d.ts +4 -0
  537. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  538. package/daemon/dist/domain/session-registry.js +13 -0
  539. package/daemon/dist/domain/session-registry.js.map +1 -1
  540. package/daemon/dist/domain/session-transport.d.ts +52 -21
  541. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  542. package/daemon/dist/domain/session-transport.js +150 -47
  543. package/daemon/dist/domain/session-transport.js.map +1 -1
  544. package/daemon/dist/domain/skill-catalog.d.ts +16 -0
  545. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  546. package/daemon/dist/domain/skill-catalog.js +15 -6
  547. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  548. package/daemon/dist/domain/skill-discovery.d.ts +17 -2
  549. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  550. package/daemon/dist/domain/skill-discovery.js +44 -5
  551. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  552. package/daemon/dist/domain/startup-orchestrator.d.ts +26 -2
  553. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  554. package/daemon/dist/domain/startup-orchestrator.js +226 -14
  555. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  556. package/daemon/dist/domain/stream-dispositions.d.ts +51 -0
  557. package/daemon/dist/domain/stream-dispositions.d.ts.map +1 -0
  558. package/daemon/dist/domain/stream-dispositions.js +112 -0
  559. package/daemon/dist/domain/stream-dispositions.js.map +1 -0
  560. package/daemon/dist/domain/stream-store.d.ts +22 -0
  561. package/daemon/dist/domain/stream-store.d.ts.map +1 -1
  562. package/daemon/dist/domain/stream-store.js +49 -6
  563. package/daemon/dist/domain/stream-store.js.map +1 -1
  564. package/daemon/dist/domain/stream-subscriptions.d.ts +94 -0
  565. package/daemon/dist/domain/stream-subscriptions.d.ts.map +1 -0
  566. package/daemon/dist/domain/stream-subscriptions.js +160 -0
  567. package/daemon/dist/domain/stream-subscriptions.js.map +1 -0
  568. package/daemon/dist/domain/successor-session-launcher.d.ts +6 -0
  569. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  570. package/daemon/dist/domain/successor-session-launcher.js +5 -2
  571. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  572. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +2 -0
  573. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  574. package/daemon/dist/domain/terminal/herdr-adapter.js +104 -1
  575. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  576. package/daemon/dist/domain/terminal/herdr-sessions.d.ts +9 -0
  577. package/daemon/dist/domain/terminal/herdr-sessions.d.ts.map +1 -0
  578. package/daemon/dist/domain/terminal/herdr-sessions.js +23 -0
  579. package/daemon/dist/domain/terminal/herdr-sessions.js.map +1 -0
  580. package/daemon/dist/domain/terminal/terminal-provider.d.ts +4 -0
  581. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  582. package/daemon/dist/domain/terminal/terminal-service.d.ts +12 -3
  583. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  584. package/daemon/dist/domain/terminal/terminal-service.js +42 -17
  585. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  586. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  587. package/daemon/dist/domain/terminal/view-composer.js +1 -0
  588. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  589. package/daemon/dist/domain/terminal-policy.d.ts +80 -0
  590. package/daemon/dist/domain/terminal-policy.d.ts.map +1 -0
  591. package/daemon/dist/domain/terminal-policy.js +117 -0
  592. package/daemon/dist/domain/terminal-policy.js.map +1 -0
  593. package/daemon/dist/domain/terminal-seat.d.ts +9 -0
  594. package/daemon/dist/domain/terminal-seat.d.ts.map +1 -0
  595. package/daemon/dist/domain/terminal-seat.js +37 -0
  596. package/daemon/dist/domain/terminal-seat.js.map +1 -0
  597. package/daemon/dist/domain/topology-converge.d.ts +25 -2
  598. package/daemon/dist/domain/topology-converge.d.ts.map +1 -1
  599. package/daemon/dist/domain/topology-converge.js +14 -1
  600. package/daemon/dist/domain/topology-converge.js.map +1 -1
  601. package/daemon/dist/domain/types.d.ts +58 -2
  602. package/daemon/dist/domain/types.d.ts.map +1 -1
  603. package/daemon/dist/domain/types.js.map +1 -1
  604. package/daemon/dist/domain/urgent-line.d.ts +4 -0
  605. package/daemon/dist/domain/urgent-line.d.ts.map +1 -0
  606. package/daemon/dist/domain/urgent-line.js +7 -0
  607. package/daemon/dist/domain/urgent-line.js.map +1 -0
  608. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  609. package/daemon/dist/domain/usage-series.js +6 -2
  610. package/daemon/dist/domain/usage-series.js.map +1 -1
  611. package/daemon/dist/domain/user-settings/settings-browser.js +2 -2
  612. package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
  613. package/daemon/dist/domain/user-settings/settings-store.d.ts +3 -1
  614. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  615. package/daemon/dist/domain/user-settings/settings-store.js +73 -1
  616. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  617. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  618. package/daemon/dist/domain/view-projector.js +2 -1
  619. package/daemon/dist/domain/view-projector.js.map +1 -1
  620. package/daemon/dist/domain/watchdog-delivery.js +1 -1
  621. package/daemon/dist/domain/watchdog-delivery.js.map +1 -1
  622. package/daemon/dist/domain/watchdog-job-update.d.ts +21 -0
  623. package/daemon/dist/domain/watchdog-job-update.d.ts.map +1 -0
  624. package/daemon/dist/domain/watchdog-job-update.js +143 -0
  625. package/daemon/dist/domain/watchdog-job-update.js.map +1 -0
  626. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +63 -7
  627. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  628. package/daemon/dist/domain/watchdog-jobs-repository.js +190 -21
  629. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  630. package/daemon/dist/domain/watchdog-policy-engine.d.ts +23 -0
  631. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  632. package/daemon/dist/domain/watchdog-policy-engine.js +46 -13
  633. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  634. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  635. package/daemon/dist/domain/workflow-exception-escalation.js +7 -3
  636. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  637. package/daemon/dist/domain/workflow-projector.d.ts +5 -2
  638. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  639. package/daemon/dist/domain/workflow-projector.js +16 -7
  640. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  641. package/daemon/dist/domain/workflow-runtime.d.ts +8 -2
  642. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  643. package/daemon/dist/domain/workflow-runtime.js +30 -7
  644. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  645. package/daemon/dist/domain/workspace/project-read.d.ts +2 -0
  646. package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -1
  647. package/daemon/dist/domain/workspace/project-read.js +10 -1
  648. package/daemon/dist/domain/workspace/project-read.js.map +1 -1
  649. package/daemon/dist/index.d.ts.map +1 -1
  650. package/daemon/dist/index.js +2 -0
  651. package/daemon/dist/index.js.map +1 -1
  652. package/daemon/dist/router-line-surface.d.ts +2 -0
  653. package/daemon/dist/router-line-surface.d.ts.map +1 -0
  654. package/daemon/dist/router-line-surface.js +3 -0
  655. package/daemon/dist/router-line-surface.js.map +1 -0
  656. package/daemon/dist/routes/activity.d.ts.map +1 -1
  657. package/daemon/dist/routes/activity.js +3 -0
  658. package/daemon/dist/routes/activity.js.map +1 -1
  659. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  660. package/daemon/dist/routes/agent-images.js +10 -2
  661. package/daemon/dist/routes/agent-images.js.map +1 -1
  662. package/daemon/dist/routes/attention.d.ts.map +1 -1
  663. package/daemon/dist/routes/attention.js +30 -3
  664. package/daemon/dist/routes/attention.js.map +1 -1
  665. package/daemon/dist/routes/bootstrap-failure-response.js +2 -2
  666. package/daemon/dist/routes/bootstrap-failure-response.js.map +1 -1
  667. package/daemon/dist/routes/bundles.js +1 -1
  668. package/daemon/dist/routes/bundles.js.map +1 -1
  669. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  670. package/daemon/dist/routes/compaction.js +31 -10
  671. package/daemon/dist/routes/compaction.js.map +1 -1
  672. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  673. package/daemon/dist/routes/hosts.js +2 -0
  674. package/daemon/dist/routes/hosts.js.map +1 -1
  675. package/daemon/dist/routes/mission-control.d.ts.map +1 -1
  676. package/daemon/dist/routes/mission-control.js +5 -1
  677. package/daemon/dist/routes/mission-control.js.map +1 -1
  678. package/daemon/dist/routes/projects.d.ts.map +1 -1
  679. package/daemon/dist/routes/projects.js +59 -12
  680. package/daemon/dist/routes/projects.js.map +1 -1
  681. package/daemon/dist/routes/proof.js +2 -2
  682. package/daemon/dist/routes/proof.js.map +1 -1
  683. package/daemon/dist/routes/provider.d.ts.map +1 -1
  684. package/daemon/dist/routes/provider.js +87 -0
  685. package/daemon/dist/routes/provider.js.map +1 -1
  686. package/daemon/dist/routes/queue.d.ts.map +1 -1
  687. package/daemon/dist/routes/queue.js +52 -3
  688. package/daemon/dist/routes/queue.js.map +1 -1
  689. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  690. package/daemon/dist/routes/rigs.js +75 -10
  691. package/daemon/dist/routes/rigs.js.map +1 -1
  692. package/daemon/dist/routes/rigspec.d.ts.map +1 -1
  693. package/daemon/dist/routes/rigspec.js +38 -12
  694. package/daemon/dist/routes/rigspec.js.map +1 -1
  695. package/daemon/dist/routes/scopes.d.ts.map +1 -1
  696. package/daemon/dist/routes/scopes.js +30 -7
  697. package/daemon/dist/routes/scopes.js.map +1 -1
  698. package/daemon/dist/routes/seat.d.ts.map +1 -1
  699. package/daemon/dist/routes/seat.js +19 -3
  700. package/daemon/dist/routes/seat.js.map +1 -1
  701. package/daemon/dist/routes/sessions.js +5 -0
  702. package/daemon/dist/routes/sessions.js.map +1 -1
  703. package/daemon/dist/routes/skills.d.ts.map +1 -1
  704. package/daemon/dist/routes/skills.js +54 -1
  705. package/daemon/dist/routes/skills.js.map +1 -1
  706. package/daemon/dist/routes/stream.d.ts.map +1 -1
  707. package/daemon/dist/routes/stream.js +62 -13
  708. package/daemon/dist/routes/stream.js.map +1 -1
  709. package/daemon/dist/routes/terminal.d.ts.map +1 -1
  710. package/daemon/dist/routes/terminal.js +20 -11
  711. package/daemon/dist/routes/terminal.js.map +1 -1
  712. package/daemon/dist/routes/transport.d.ts.map +1 -1
  713. package/daemon/dist/routes/transport.js +24 -2
  714. package/daemon/dist/routes/transport.js.map +1 -1
  715. package/daemon/dist/routes/up.js +5 -0
  716. package/daemon/dist/routes/up.js.map +1 -1
  717. package/daemon/dist/routes/watchdog.d.ts +1 -0
  718. package/daemon/dist/routes/watchdog.d.ts.map +1 -1
  719. package/daemon/dist/routes/watchdog.js +52 -3
  720. package/daemon/dist/routes/watchdog.js.map +1 -1
  721. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  722. package/daemon/dist/routes/workflow.js +24 -13
  723. package/daemon/dist/routes/workflow.js.map +1 -1
  724. package/daemon/dist/server.d.ts +2 -0
  725. package/daemon/dist/server.d.ts.map +1 -1
  726. package/daemon/dist/server.js +4 -1
  727. package/daemon/dist/server.js.map +1 -1
  728. package/daemon/dist/skill-loadout-surface.d.ts +2 -0
  729. package/daemon/dist/skill-loadout-surface.d.ts.map +1 -1
  730. package/daemon/dist/skill-loadout-surface.js +2 -0
  731. package/daemon/dist/skill-loadout-surface.js.map +1 -1
  732. package/daemon/dist/startup.d.ts.map +1 -1
  733. package/daemon/dist/startup.js +54 -21
  734. package/daemon/dist/startup.js.map +1 -1
  735. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  736. package/daemon/dist/terminal/TerminalSessionBroker.js +9 -2
  737. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  738. package/daemon/docs/reference/a2a-agents.md +343 -0
  739. package/daemon/docs/reference/acp-agents.md +77 -0
  740. package/daemon/docs/reference/agent-spec.md +7 -5
  741. package/daemon/docs/reference/agent-startup-guide.md +46 -0
  742. package/daemon/docs/reference/agent-state-taxonomy.md +27 -2
  743. package/daemon/docs/reference/checked-seat-stop.md +11 -0
  744. package/daemon/docs/reference/community-harness-examples/cursor/cursor.yaml +13 -0
  745. package/daemon/docs/reference/community-harness-examples/cursor/openrig-cursor-launch +61 -0
  746. package/daemon/docs/reference/community-harness-examples/hermes/config.yaml.example +18 -0
  747. package/daemon/docs/reference/community-harness-examples/hermes/hermes.yaml +12 -0
  748. package/daemon/docs/reference/community-harness-examples/hermes/openrig-hermes-launch +34 -0
  749. package/daemon/docs/reference/community-harness-examples/openclaw/openclaw.yaml +13 -0
  750. package/daemon/docs/reference/community-harness-examples/openclaw/openrig-openclaw-launch +38 -0
  751. package/daemon/docs/reference/community-harness-presets.md +179 -0
  752. package/daemon/docs/reference/getting-started.md +65 -6
  753. package/daemon/docs/reference/operation-correlation.md +9 -0
  754. package/daemon/docs/reference/project-workspace.md +6 -0
  755. package/daemon/docs/reference/quickstart.md +1 -1
  756. package/daemon/docs/reference/refocus-channel.md +6 -4
  757. package/daemon/docs/reference/rig-spec.md +82 -2
  758. package/daemon/docs/reference/seat-delivery.md +73 -2
  759. package/daemon/docs/reference/slack-app-setup.md +3 -1
  760. package/daemon/docs/reference/stream-classifier-worker.md +28 -0
  761. package/daemon/docs/reference/telemetry.md +3 -0
  762. package/daemon/docs/reference/terminal-sessions.md +90 -0
  763. package/daemon/docs/reference/topology-naming.md +1 -1
  764. package/daemon/docs/reference/whats-new.md +162 -113
  765. package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +0 -3
  766. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +19 -4
  767. package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +3 -0
  768. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +2 -2
  769. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +36 -10
  770. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +11 -0
  771. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +3 -1
  772. package/daemon/specs/rigs/launch/secrets-manager/secrets-manager.compose.yaml +1 -1
  773. package/dist/acp/connector.d.ts +72 -0
  774. package/dist/acp/connector.d.ts.map +1 -0
  775. package/dist/acp/connector.js +218 -0
  776. package/dist/acp/connector.js.map +1 -0
  777. package/dist/acp/json-rpc-stdio.d.ts +53 -0
  778. package/dist/acp/json-rpc-stdio.d.ts.map +1 -0
  779. package/dist/acp/json-rpc-stdio.js +141 -0
  780. package/dist/acp/json-rpc-stdio.js.map +1 -0
  781. package/dist/acp/run-processes.d.ts +10 -0
  782. package/dist/acp/run-processes.d.ts.map +1 -0
  783. package/dist/acp/run-processes.js +33 -0
  784. package/dist/acp/run-processes.js.map +1 -0
  785. package/dist/build-info.js +3 -3
  786. package/dist/client.d.ts +7 -2
  787. package/dist/client.d.ts.map +1 -1
  788. package/dist/client.js +14 -7
  789. package/dist/client.js.map +1 -1
  790. package/dist/commands/acp.d.ts +11 -0
  791. package/dist/commands/acp.d.ts.map +1 -0
  792. package/dist/commands/acp.js +198 -0
  793. package/dist/commands/acp.js.map +1 -0
  794. package/dist/commands/attach.js +1 -1
  795. package/dist/commands/attach.js.map +1 -1
  796. package/dist/commands/auth.d.ts +3 -0
  797. package/dist/commands/auth.d.ts.map +1 -1
  798. package/dist/commands/auth.js +39 -10
  799. package/dist/commands/auth.js.map +1 -1
  800. package/dist/commands/compact-plan.d.ts +2 -0
  801. package/dist/commands/compact-plan.d.ts.map +1 -1
  802. package/dist/commands/compact-plan.js +38 -3
  803. package/dist/commands/compact-plan.js.map +1 -1
  804. package/dist/commands/compact.js +1 -1
  805. package/dist/commands/compact.js.map +1 -1
  806. package/dist/commands/config.d.ts.map +1 -1
  807. package/dist/commands/config.js +7 -1
  808. package/dist/commands/config.js.map +1 -1
  809. package/dist/commands/create.js +2 -2
  810. package/dist/commands/create.js.map +1 -1
  811. package/dist/commands/daemon.d.ts.map +1 -1
  812. package/dist/commands/daemon.js +2 -0
  813. package/dist/commands/daemon.js.map +1 -1
  814. package/dist/commands/down.d.ts +5 -1
  815. package/dist/commands/down.d.ts.map +1 -1
  816. package/dist/commands/down.js +87 -3
  817. package/dist/commands/down.js.map +1 -1
  818. package/dist/commands/edge.d.ts +4 -0
  819. package/dist/commands/edge.d.ts.map +1 -0
  820. package/dist/commands/edge.js +135 -0
  821. package/dist/commands/edge.js.map +1 -0
  822. package/dist/commands/export.d.ts +1 -0
  823. package/dist/commands/export.d.ts.map +1 -1
  824. package/dist/commands/export.js +51 -0
  825. package/dist/commands/export.js.map +1 -1
  826. package/dist/commands/fork.d.ts.map +1 -1
  827. package/dist/commands/fork.js +19 -2
  828. package/dist/commands/fork.js.map +1 -1
  829. package/dist/commands/gateway.d.ts.map +1 -1
  830. package/dist/commands/gateway.js +2 -1
  831. package/dist/commands/gateway.js.map +1 -1
  832. package/dist/commands/grow.js +2 -2
  833. package/dist/commands/grow.js.map +1 -1
  834. package/dist/commands/launch.js +1 -1
  835. package/dist/commands/launch.js.map +1 -1
  836. package/dist/commands/mcp.d.ts.map +1 -1
  837. package/dist/commands/mcp.js +113 -1
  838. package/dist/commands/mcp.js.map +1 -1
  839. package/dist/commands/project-worker.d.ts +25 -1
  840. package/dist/commands/project-worker.d.ts.map +1 -1
  841. package/dist/commands/project-worker.js +9 -7
  842. package/dist/commands/project-worker.js.map +1 -1
  843. package/dist/commands/project.d.ts +2 -0
  844. package/dist/commands/project.d.ts.map +1 -1
  845. package/dist/commands/project.js +64 -1
  846. package/dist/commands/project.js.map +1 -1
  847. package/dist/commands/provider.d.ts.map +1 -1
  848. package/dist/commands/provider.js +101 -0
  849. package/dist/commands/provider.js.map +1 -1
  850. package/dist/commands/ps.d.ts +12 -1
  851. package/dist/commands/ps.d.ts.map +1 -1
  852. package/dist/commands/ps.js +50 -47
  853. package/dist/commands/ps.js.map +1 -1
  854. package/dist/commands/queue.d.ts +4 -2
  855. package/dist/commands/queue.d.ts.map +1 -1
  856. package/dist/commands/queue.js +24 -15
  857. package/dist/commands/queue.js.map +1 -1
  858. package/dist/commands/reconcile-session.d.ts.map +1 -1
  859. package/dist/commands/reconcile-session.js +6 -0
  860. package/dist/commands/reconcile-session.js.map +1 -1
  861. package/dist/commands/seat.d.ts +2 -0
  862. package/dist/commands/seat.d.ts.map +1 -1
  863. package/dist/commands/seat.js +124 -6
  864. package/dist/commands/seat.js.map +1 -1
  865. package/dist/commands/send.d.ts.map +1 -1
  866. package/dist/commands/send.js +62 -55
  867. package/dist/commands/send.js.map +1 -1
  868. package/dist/commands/setup.d.ts +24 -0
  869. package/dist/commands/setup.d.ts.map +1 -1
  870. package/dist/commands/setup.js +160 -7
  871. package/dist/commands/setup.js.map +1 -1
  872. package/dist/commands/skill.d.ts.map +1 -1
  873. package/dist/commands/skill.js +116 -3
  874. package/dist/commands/skill.js.map +1 -1
  875. package/dist/commands/start.d.ts.map +1 -1
  876. package/dist/commands/start.js +18 -25
  877. package/dist/commands/start.js.map +1 -1
  878. package/dist/commands/status.d.ts.map +1 -1
  879. package/dist/commands/status.js +4 -1
  880. package/dist/commands/status.js.map +1 -1
  881. package/dist/commands/stream-outcome.d.ts +157 -0
  882. package/dist/commands/stream-outcome.d.ts.map +1 -0
  883. package/dist/commands/stream-outcome.js +81 -0
  884. package/dist/commands/stream-outcome.js.map +1 -0
  885. package/dist/commands/stream.d.ts.map +1 -1
  886. package/dist/commands/stream.js +64 -2
  887. package/dist/commands/stream.js.map +1 -1
  888. package/dist/commands/terminal.d.ts +1 -0
  889. package/dist/commands/terminal.d.ts.map +1 -1
  890. package/dist/commands/terminal.js +35 -6
  891. package/dist/commands/terminal.js.map +1 -1
  892. package/dist/commands/topology-default-agent.d.ts +2 -2
  893. package/dist/commands/topology-default-agent.d.ts.map +1 -1
  894. package/dist/commands/topology-default-agent.js +5 -3
  895. package/dist/commands/topology-default-agent.js.map +1 -1
  896. package/dist/commands/up.d.ts.map +1 -1
  897. package/dist/commands/up.js +75 -30
  898. package/dist/commands/up.js.map +1 -1
  899. package/dist/commands/watchdog.d.ts.map +1 -1
  900. package/dist/commands/watchdog.js +80 -5
  901. package/dist/commands/watchdog.js.map +1 -1
  902. package/dist/commands/workflow-errors.js +1 -1
  903. package/dist/commands/workflow-errors.js.map +1 -1
  904. package/dist/commands/workflow-render.js +4 -4
  905. package/dist/commands/workflow-render.js.map +1 -1
  906. package/dist/commands/workflow.d.ts.map +1 -1
  907. package/dist/commands/workflow.js +34 -15
  908. package/dist/commands/workflow.js.map +1 -1
  909. package/dist/config-store.d.ts +15 -1
  910. package/dist/config-store.d.ts.map +1 -1
  911. package/dist/config-store.js +86 -4
  912. package/dist/config-store.js.map +1 -1
  913. package/dist/daemon-lifecycle.d.ts +4 -0
  914. package/dist/daemon-lifecycle.d.ts.map +1 -1
  915. package/dist/daemon-lifecycle.js +73 -21
  916. package/dist/daemon-lifecycle.js.map +1 -1
  917. package/dist/decisions/decisions.d.ts +203 -0
  918. package/dist/decisions/decisions.d.ts.map +1 -0
  919. package/dist/decisions/decisions.js +374 -0
  920. package/dist/decisions/decisions.js.map +1 -0
  921. package/dist/decisions/stream-consumer.d.ts +255 -0
  922. package/dist/decisions/stream-consumer.d.ts.map +1 -0
  923. package/dist/decisions/stream-consumer.js +282 -0
  924. package/dist/decisions/stream-consumer.js.map +1 -0
  925. package/dist/decisions/templates.d.ts +8 -0
  926. package/dist/decisions/templates.d.ts.map +1 -0
  927. package/dist/decisions/templates.js +34 -0
  928. package/dist/decisions/templates.js.map +1 -0
  929. package/dist/fresh-seat-command.d.ts +18 -0
  930. package/dist/fresh-seat-command.d.ts.map +1 -0
  931. package/dist/fresh-seat-command.js +36 -0
  932. package/dist/fresh-seat-command.js.map +1 -0
  933. package/dist/front-door.d.ts +4 -0
  934. package/dist/front-door.d.ts.map +1 -1
  935. package/dist/front-door.js +8 -4
  936. package/dist/front-door.js.map +1 -1
  937. package/dist/host-bindings.d.ts.map +1 -1
  938. package/dist/host-bindings.js +16 -9
  939. package/dist/host-bindings.js.map +1 -1
  940. package/dist/index.d.ts +2 -0
  941. package/dist/index.d.ts.map +1 -1
  942. package/dist/index.js +4 -0
  943. package/dist/index.js.map +1 -1
  944. package/dist/lazy-program.d.ts.map +1 -1
  945. package/dist/lazy-program.js +2 -0
  946. package/dist/lazy-program.js.map +1 -1
  947. package/dist/lib/run-on-host.d.ts +29 -0
  948. package/dist/lib/run-on-host.d.ts.map +1 -0
  949. package/dist/lib/run-on-host.js +69 -0
  950. package/dist/lib/run-on-host.js.map +1 -0
  951. package/dist/lib/seat-activity.d.ts +17 -0
  952. package/dist/lib/seat-activity.d.ts.map +1 -0
  953. package/dist/lib/seat-activity.js +29 -0
  954. package/dist/lib/seat-activity.js.map +1 -0
  955. package/dist/local-daemon-owner.d.ts +4 -0
  956. package/dist/local-daemon-owner.d.ts.map +1 -1
  957. package/dist/local-daemon-owner.js +1 -1
  958. package/dist/local-daemon-owner.js.map +1 -1
  959. package/dist/mcp-http.d.ts +42 -0
  960. package/dist/mcp-http.d.ts.map +1 -0
  961. package/dist/mcp-http.js +232 -0
  962. package/dist/mcp-http.js.map +1 -0
  963. package/dist/mcp-server.d.ts +30 -2
  964. package/dist/mcp-server.d.ts.map +1 -1
  965. package/dist/mcp-server.js +1112 -436
  966. package/dist/mcp-server.js.map +1 -1
  967. package/dist/seat-launch-additions-lines.d.ts +11 -0
  968. package/dist/seat-launch-additions-lines.d.ts.map +1 -0
  969. package/dist/seat-launch-additions-lines.js +14 -0
  970. package/dist/seat-launch-additions-lines.js.map +1 -0
  971. package/dist/terminal-window.d.ts +1 -1
  972. package/dist/terminal-window.d.ts.map +1 -1
  973. package/dist/terminal-window.js +50 -22
  974. package/dist/terminal-window.js.map +1 -1
  975. package/package.json +1 -1
  976. package/tui/dist/attention/attention-model.d.ts +3 -1
  977. package/tui/dist/attention/attention-model.d.ts.map +1 -1
  978. package/tui/dist/attention/attention-model.js +68 -1
  979. package/tui/dist/attention/attention-model.js.map +1 -1
  980. package/tui/dist/commands/registry.d.ts.map +1 -1
  981. package/tui/dist/commands/registry.js +2 -0
  982. package/tui/dist/commands/registry.js.map +1 -1
  983. package/tui/dist/config/config-model.d.ts.map +1 -1
  984. package/tui/dist/config/config-model.js +2 -0
  985. package/tui/dist/config/config-model.js.map +1 -1
  986. package/tui/dist/daemon-client.d.ts +18 -0
  987. package/tui/dist/daemon-client.d.ts.map +1 -1
  988. package/tui/dist/daemon-client.js +4 -0
  989. package/tui/dist/daemon-client.js.map +1 -1
  990. package/tui/dist/hydrate.d.ts.map +1 -1
  991. package/tui/dist/hydrate.js +9 -6
  992. package/tui/dist/hydrate.js.map +1 -1
  993. package/tui/dist/main.js +15 -1
  994. package/tui/dist/main.js.map +1 -1
  995. package/tui/dist/render.d.ts.map +1 -1
  996. package/tui/dist/render.js +10 -3
  997. package/tui/dist/render.js.map +1 -1
  998. package/tui/dist/topology/fixture.js +1 -1
  999. package/tui/dist/topology/fixture.js.map +1 -1
  1000. package/tui/dist/topology/glyphs.js +1 -1
  1001. package/tui/dist/topology/glyphs.js.map +1 -1
  1002. package/tui/dist/topology/graph-types.d.ts +1 -0
  1003. package/tui/dist/topology/graph-types.d.ts.map +1 -1
  1004. package/tui/dist/types.d.ts +25 -0
  1005. package/tui/dist/types.d.ts.map +1 -1
  1006. package/ui/dist/assets/{index-CVgod3Pm.js → index-Blg-p32B.js} +92 -92
  1007. package/ui/dist/index.html +1 -1
@@ -1,3 +1,4 @@
1
+ import { codexEnvelopeArgs } from "../domain/codex-rebuild-permissions.js";
1
2
  import { operationalLaunchArg } from "./kernel-authority.js";
2
3
  import nodePath from "node:path";
3
4
  import fs from "node:fs";
@@ -5,6 +6,7 @@ import { createHash } from "node:crypto";
5
6
  import { execFile } from "node:child_process";
6
7
  import { createRequire } from "node:module";
7
8
  import os from "node:os";
9
+ import { isDeepStrictEqual } from "node:util";
8
10
  import { parse as parseToml } from "smol-toml";
9
11
  import { codexPostureArg } from "./yolo-mode.js";
10
12
  import { resolveConcreteHint } from "../domain/runtime-adapter.js";
@@ -14,7 +16,7 @@ import { assessNativeResumeProbe, buildCodexResumeCore, hasCodexUpdateHeader } f
14
16
  import { unknownDaemonSupportMessage } from "../domain/codex-daemon-support.js";
15
17
  import { CODEX_NETWORK_DEFAULT_OVERRIDE, codexNetworkDefaultArg } from "../domain/codex-network-default.js";
16
18
  import { resolveCodexGitAddDirs } from "../domain/codex-git-add-dirs.js";
17
- import { mergeManagedBlock } from "../domain/managed-blocks.js";
19
+ import { isPerSeatRoleGuidance, mergeManagedBlock, perSeatRoleSkipWarning } from "../domain/managed-blocks.js";
18
20
  import { excludeNewGeneratedFiles } from "../domain/generated-file-hygiene.js";
19
21
  import { codexQueueStateRoot, codexTeamWorkspaceArg } from "../domain/codex-team-workspace.js";
20
22
  import { shellQuote } from "./shell-quote.js";
@@ -32,6 +34,8 @@ const defaultCodexCli = (args, env) => new Promise((resolve) => {
32
34
  // Codex's hook trust recipe (the key and hash Codex records for a trusted hook), kept in one script.
33
35
  const codexHookTrust = createRequire(import.meta.url)("../../assets/plugins/openrig-core/hooks/scripts/codex-hook-trust.cjs");
34
36
  import { listNativeProcesses, observeCodexPaneProcess, observeCodexForkProcess, verifyPaneIdleShell } from "../domain/native-process-lineage.js";
37
+ import { recordSeatSkillWrite, seatPluginSkillsLossNote, seatProjectionComplete, seatSkillWriteRefusal } from "../domain/seat-skill-storage.js";
38
+ import { codexPluginContentHash, planOwnedCodexContentApproval, recordOwnedCodexApproval } from "../domain/codex-owned-plugin-trust.js";
35
39
  // The managed resume check's poll window: a quick phase, then an extended one for a slow boot.
36
40
  const RESUME_QUICK_ATTEMPTS = 6;
37
41
  const RESUME_EXTENDED_ATTEMPTS = 24;
@@ -88,6 +92,7 @@ export class CodexRuntimeAdapter {
88
92
  // so each of those runs its whole setup under this one lock, one after another.
89
93
  configLock = Promise.resolve();
90
94
  codexSystemConfigDir;
95
+ /** Build the Codex launch adapter with injectable filesystem, process, and CLI seams for isolated checks. */
91
96
  constructor(deps) {
92
97
  this.resolveCorePluginDir = deps.resolveCorePluginDir;
93
98
  this.resolveCorePluginSelected = deps.resolveCorePluginSelected;
@@ -183,9 +188,9 @@ export class CodexRuntimeAdapter {
183
188
  }
184
189
  /**
185
190
  * Install the vendored openrig-core plugin into Codex through Codex's own commands, so a seat that selected it gets its
186
- * refocus and skills, trusting only exact shipped hooks on its first install. It runs only when the person's config
191
+ * refocus and skills, trusting exact shipped hooks on first install and renewing proven owned content approvals. It runs only when the person's config
187
192
  * doesn't disable the plugin (codexCorePluginEnablement), and only when the installed version differs from the vendored
188
- * one. Codex owns its plugin cache; OpenRig writes the marketplace manifest and first-install exact-hook trust.
193
+ * one. Codex owns its plugin cache; its immutable legacy trust baseline is never rewritten.
189
194
  */
190
195
  async ensureCodexCorePlugin() {
191
196
  const report = (outcome, reason) => {
@@ -228,8 +233,17 @@ export class CodexRuntimeAdapter {
228
233
  });
229
234
  if (!matchesShipped(pluginDir))
230
235
  return report("skipped", "vendored hook files differ from this daemon's shipped plugin; existing choices are left alone");
236
+ // Installation retains the hook-file predicate; any approval requires the complete shipped tree.
237
+ const matchesShippedTree = (dir) => {
238
+ try {
239
+ return codexPluginContentHash(dir, true) === codexPluginContentHash(shipped, true);
240
+ }
241
+ catch {
242
+ return false;
243
+ }
244
+ };
231
245
  const codexHome = nodePath.dirname(this.resolveCodexConfigPath());
232
- const layers = codexReadableConfigLayers(codexHome, this.codexSystemConfigDir).map((layer) => {
246
+ const readLayers = () => codexReadableConfigLayers(codexHome, this.codexSystemConfigDir).map((layer) => {
233
247
  if (!this.fs.exists(layer.path))
234
248
  return { ...layer, state: "absent" };
235
249
  try {
@@ -239,6 +253,7 @@ export class CodexRuntimeAdapter {
239
253
  return { ...layer, state: "unreadable", reason: error.message };
240
254
  }
241
255
  });
256
+ const layers = readLayers();
242
257
  const enablement = codexCorePluginEnablement(layers);
243
258
  if (enablement.decision !== "allow")
244
259
  return report("skipped", enablement.reason);
@@ -263,11 +278,44 @@ export class CodexRuntimeAdapter {
263
278
  const cachedDir = nodePath.join(cacheRoot, version);
264
279
  const cached = this.fs.exists(cachedDir);
265
280
  // Codex's "continue without trusting" choice writes no state. An existing install/configuration may therefore be a
266
- // decline even with no hooks.state entry. Only the very first installation earns automatic trust; reinstalls and
267
- // upgrades retain whatever native choices already exist, including an unrecorded decline.
281
+ // decline even with no hooks.state entry. Absent grants still stay under native review. A proven owned grant may
282
+ // renew its content approval; an unrecorded skip of that exact owned upgrade cannot be distinguished from pending approval.
268
283
  const firstInstall = !this.fs.exists(cacheRoot) && !layers.some(layer => layer.state === "read"
269
284
  && Object.hasOwn((parseToml(layer.content).plugins ?? {}), CODEX_CORE_PLUGIN_KEY));
285
+ const renewContentApproval = (freshGrant = false) => {
286
+ const configPath = this.resolveCodexConfigPath();
287
+ const currentLayers = readLayers();
288
+ if (codexCorePluginEnablement(currentLayers).decision !== "allow")
289
+ return;
290
+ const before = this.fs.readFile(configPath);
291
+ const currentSource = recordedMarketplaceSource(before);
292
+ if (currentSource == null || canonical(currentSource) !== canonical(pluginsDir) || !userLayerEnablesCorePlugin(before))
293
+ return;
294
+ let content = before;
295
+ const planned = planOwnedCodexContentApproval({ configPath, content, layers: currentLayers, shipped, installed: cachedDir, freshGrant });
296
+ if (!planned)
297
+ return;
298
+ for (const [key, hash] of Object.entries(planned.hashes))
299
+ content = upsertCodexHookTrust(content, key, hash, "trusted_content_hash");
300
+ // The line writer must not alter examples in strings or duplicate quoted keys.
301
+ try {
302
+ const expected = parseToml(before);
303
+ for (const [key, hash] of Object.entries(planned.hashes))
304
+ expected.hooks.state[key].trusted_content_hash = hash;
305
+ if (!isDeepStrictEqual(parseToml(content), expected))
306
+ return;
307
+ }
308
+ catch {
309
+ return;
310
+ } // Leave native review and owner bytes intact for unsupported TOML spellings.
311
+ if (this.fs.readFile(configPath) !== before)
312
+ return; // A concurrent native choice wins.
313
+ if (content !== before)
314
+ this.fs.writeFile(configPath, content);
315
+ recordOwnedCodexApproval(configPath, planned.approval);
316
+ };
270
317
  if (cached && recorded !== undefined && userLayerEnablesCorePlugin(userConfig)) {
318
+ renewContentApproval();
271
319
  return report("current", `${CODEX_CORE_PLUGIN_KEY} ${version} is installed and registered`);
272
320
  }
273
321
  const manifestPath = nodePath.join(pluginsDir, CODEX_MARKETPLACE_MANIFEST_PATH);
@@ -285,9 +333,11 @@ export class CodexRuntimeAdapter {
285
333
  const installed = await this.runCodexCli(["plugin", "add", CODEX_CORE_PLUGIN_KEY], env);
286
334
  if (installed.status !== 0)
287
335
  return report("skipped", `codex plugin add failed: ${(installed.stderr || installed.stdout).trim() || `exit ${installed.status}`}`);
288
- // Trust is over normalized definitions, not script contents. Byte equality is an additional pre-grant check;
289
- // Codex remains responsible for later native review if definitions change. No cache files are rewritten here.
290
- if (firstInstall && matchesShipped(cachedDir)) {
336
+ // First install grants declarations; Codex0.164 also requires full-bundle content approval. Existing declaration
337
+ // choices are never rewritten. No cache files or native baseline files are rewritten here.
338
+ let freshGrants = 0;
339
+ const grantLayers = readLayers();
340
+ if (firstInstall && codexCorePluginEnablement(grantLayers).decision === "allow" && matchesShippedTree(cachedDir)) {
291
341
  let content = this.fs.readFile(this.resolveCodexConfigPath());
292
342
  const hookManifest = JSON.parse(fs.readFileSync(nodePath.join(shipped, "hooks/codex.json"), "utf8"));
293
343
  for (const [event, groups] of Object.entries(hookManifest.hooks)) {
@@ -303,13 +353,15 @@ export class CodexRuntimeAdapter {
303
353
  const value = doc;
304
354
  return Object.hasOwn(value.hooks?.state ?? {}, key) || Object.values(doc).some(hasChoice);
305
355
  };
306
- if (!hasChoice(parseToml(content)) && !layers.some(layer => layer.state === "read" && hasChoice(parseToml(layer.content)))) {
356
+ if (!hasChoice(parseToml(content)) && !grantLayers.some(layer => layer.state === "read" && hasChoice(parseToml(layer.content)))) {
307
357
  content = upsertCodexHookTrust(content, key, hash);
358
+ freshGrants++;
308
359
  }
309
360
  }));
310
361
  }
311
362
  this.fs.writeFile(this.resolveCodexConfigPath(), content);
312
363
  }
364
+ renewContentApproval(freshGrants === 6);
313
365
  return report("installed", `${CODEX_CORE_PLUGIN_KEY} ${version} through Codex's own install (${enablement.reason})`);
314
366
  }
315
367
  /**
@@ -452,7 +504,7 @@ export class CodexRuntimeAdapter {
452
504
  }
453
505
  async listInstalled(binding) {
454
506
  const results = [];
455
- const skillsDir = nodePath.join(binding.cwd, ".agents", "skills");
507
+ const skillsDir = binding.seatSkillsRoot ?? nodePath.join(binding.cwd, ".agents", "skills");
456
508
  if (this.fs.exists(skillsDir) && this.fs.listFiles) {
457
509
  for (const file of this.fs.listFiles(skillsDir)) {
458
510
  results.push({ effectiveId: file, category: "skill", installedPath: nodePath.join(skillsDir, file) });
@@ -471,7 +523,7 @@ export class CodexRuntimeAdapter {
471
523
  continue;
472
524
  }
473
525
  try {
474
- const didProject = this.projectEntry(entry, binding.cwd, warnings);
526
+ const didProject = this.projectEntry(entry, binding.cwd, warnings, binding.seatSkillsRoot, binding.seatSkillsRefused);
475
527
  if (didProject) {
476
528
  projected.push(entry.effectiveId);
477
529
  }
@@ -498,7 +550,7 @@ export class CodexRuntimeAdapter {
498
550
  for (const file of files) {
499
551
  try {
500
552
  const content = this.fs.readFile(file.absolutePath);
501
- const hint = file.deliveryHint === "auto" ? this.detectDeliveryHint(file.path, content) : file.deliveryHint;
553
+ const hint = file.deliveryHint === "auto" ? this.detectDeliveryHint(file.path, content, file.orientation) : file.deliveryHint;
502
554
  switch (hint) {
503
555
  case "guidance_merge": {
504
556
  const targetPath = nodePath.join(binding.cwd, "AGENTS.md");
@@ -508,9 +560,18 @@ export class CodexRuntimeAdapter {
508
560
  break;
509
561
  }
510
562
  case "skill_install": {
511
- const targetDir = nodePath.join(binding.cwd, ".agents", "skills", nodePath.basename(nodePath.dirname(file.absolutePath)));
563
+ const targetDir = nodePath.join(binding.seatSkillsRoot ?? nodePath.join(binding.cwd, ".agents", "skills"), nodePath.basename(nodePath.dirname(file.absolutePath)));
564
+ const skillTarget = nodePath.join(targetDir, nodePath.basename(file.path));
565
+ // OPR.0.7.0.13: never write through a link out of the seat's storage.
566
+ const refusal = binding.seatSkillsRoot ? binding.seatSkillsRefused ?? seatSkillWriteRefusal(binding.seatSkillsRoot, skillTarget) : undefined;
567
+ if (refusal) {
568
+ warnings.push(`skill_install: ${refusal}`);
569
+ continue;
570
+ }
512
571
  this.fs.mkdirp(targetDir);
513
- this.fs.writeFile(nodePath.join(targetDir, nodePath.basename(file.path)), content);
572
+ this.fs.writeFile(skillTarget, content);
573
+ if (binding.seatSkillsRoot)
574
+ recordSeatSkillWrite(binding.seatSkillsRoot, skillTarget, file.absolutePath, content);
514
575
  break;
515
576
  }
516
577
  case "send_text": {
@@ -548,7 +609,7 @@ export class CodexRuntimeAdapter {
548
609
  const prepared = await this.prepareLaunch(binding, opts.name, undefined, { installCorePlugin: !opts.resumeToken });
549
610
  if (!prepared.ok)
550
611
  return prepared;
551
- const { modelArg, effortArg, appliedLaunch, postureArg, queueStateDirArg, daemonArg, networkArg } = prepared;
612
+ const { modelArg, effortArg, appliedLaunch, postureArg, queueStateDirArg, daemonArg, networkArg, suppressAutoAddDirs } = prepared;
552
613
  // Fork branch: `codex fork <parent_thread_id>`. Captures the NEW thread id
553
614
  // post-fork. Parent thread id is NOT persisted onto the new seat record
554
615
  // (identity-honesty bedrock).
@@ -602,9 +663,9 @@ export class CodexRuntimeAdapter {
602
663
  // -s danger-full-access (overrides even a named profile); otherwise the named profile, or
603
664
  // OpenRig's explicit -s workspace-write floor flag.
604
665
  // Issue #121: only the fresh launch adds git metadata dirs; resume and fork never did.
605
- const gitDirArg = opts.resumeToken
666
+ const gitDirArg = opts.resumeToken || binding.codexRebuildPermissions
606
667
  ? ""
607
- : (await this.resolveGitAddDirs(binding.cwd)).map((dir) => ` --add-dir ${shellQuote(dir)}`).join("");
668
+ : suppressAutoAddDirs ? "" : (await this.resolveGitAddDirs(binding.cwd)).map((dir) => ` --add-dir ${shellQuote(dir)}`).join("");
608
669
  const cmd = opts.resumeToken
609
670
  // 0.5.2-07 A2-3: the pod-aware RESUME path threads the SPEC model too (reverted before — the
610
671
  // grounding map assumed codex parity with the claude adapter, but only fresh emitted -m).
@@ -683,13 +744,19 @@ export class CodexRuntimeAdapter {
683
744
  const effortArg = effort ? ` -c ${shellQuote(`model_reasoning_effort="${effort}"`)}` : "";
684
745
  const profile = binding.codexConfigProfile?.trim();
685
746
  const profileArg = profile ? ` -p ${shellQuote(profile)}` : "";
686
- const posture = codexPostureArg(profileArg, process.env, binding.launchPosture);
687
- const appliedLaunch = observeCodexSandbox(posture);
747
+ const posture = binding.codexRebuildPermissions
748
+ ? profileArg + codexEnvelopeArgs(binding.codexRebuildPermissions)
749
+ : codexPostureArg(profileArg, process.env, binding.launchPosture);
750
+ const appliedLaunch = binding.codexRebuildPermissions
751
+ ? { runtime: "codex", axis: "sandbox", state: "observed", value: binding.codexRebuildPermissions.sandboxPolicy.type,
752
+ reason: "emitted_launch_arguments", ...(binding.codexRebuildPermissions.approvalPolicy === "never" ? { approvalPolicy: "never" } : {}) }
753
+ : observeCodexSandbox(posture);
688
754
  const postureArg = posture + operationalLaunchArg(this.runtime, binding);
689
755
  if (running) {
690
756
  // The running Codex already loaded its profile; drift in -p is the caller's to compare.
691
757
  return { ok: true, model, modelArg, effort, effortArg, profile, appliedLaunch, postureArg,
692
758
  queueStateDirArg: running.addDirs.map((dir) => ` --add-dir ${shellQuote(dir)}`).join(""),
759
+ suppressAutoAddDirs: false,
693
760
  daemonOptOut: running.daemonOptOut, daemonArg: running.daemonOptOut ? " --no-daemon" : "",
694
761
  networkArg: running.networkOverride ? ` -c ${shellQuote(CODEX_NETWORK_DEFAULT_OVERRIDE)}` : "" };
695
762
  }
@@ -706,10 +773,15 @@ export class CodexRuntimeAdapter {
706
773
  };
707
774
  }
708
775
  }
709
- const teamWorkspaceArg = binding.teamPermissionDefault && !profile
776
+ // Codex rejects writable --add-dir roots under a read-only sandbox. Only
777
+ // suppress OpenRig's generated roots when later project layers cannot make it writable.
778
+ const suppressAutoAddDirs = Boolean(!binding.codexRebuildPermissions && profile
779
+ && posture === profileArg && this.profileRemainsReadOnly(profile, binding.cwd));
780
+ const teamWorkspaceArg = !binding.codexRebuildPermissions && binding.teamPermissionDefault && !profile
710
781
  && appliedLaunch.state === "observed" && appliedLaunch.value === "workspace-write"
711
782
  ? codexTeamWorkspaceArg(this.prepareTeamWorkspace, name) : "";
712
- const queueStateDirArg = teamWorkspaceArg || this.buildQueueStateAddDirArg(name);
783
+ const queueStateDirArg = binding.codexRebuildPermissions || suppressAutoAddDirs
784
+ ? "" : teamWorkspaceArg || this.buildQueueStateAddDirArg(name);
713
785
  // #69: one daemon-support decision for this launch, for the Codex the seat pane runs
714
786
  // (its cwd, the launch PATH), applied to fresh, fork and resume.
715
787
  const daemonSupport = this.detectDaemonSupport ? await this.detectDaemonSupport(binding.cwd) : undefined;
@@ -719,10 +791,11 @@ export class CodexRuntimeAdapter {
719
791
  const daemonOptOut = daemonSupport?.kind === "supported";
720
792
  const daemonArg = daemonOptOut ? " --no-daemon" : "";
721
793
  // #275: on the plain floor, network access unless Codex reports an opt-out or policy.
722
- const networkArg = await codexNetworkDefaultArg(this.readNetworkDefault, appliedLaunch, binding.cwd, name);
794
+ const networkArg = binding.codexRebuildPermissions ? ""
795
+ : await codexNetworkDefaultArg(this.readNetworkDefault, appliedLaunch, binding.cwd, name);
723
796
  // The launch facts keep the probed daemon choice, so a printed recovery command can repeat it; no probe, no fact.
724
797
  const launchFacts = daemonSupport ? { ...appliedLaunch, daemonOptOut } : appliedLaunch;
725
- return { ok: true, model, modelArg, effort, effortArg, profile, appliedLaunch: launchFacts, postureArg, queueStateDirArg, daemonOptOut, daemonArg, networkArg };
798
+ return { ok: true, model, modelArg, effort, effortArg, profile, appliedLaunch: launchFacts, postureArg, queueStateDirArg, suppressAutoAddDirs, daemonOptOut, daemonArg, networkArg };
726
799
  }
727
800
  resumeCore(prepared, resumeToken, binding) {
728
801
  const { profile, queueStateDirArg, model, postureArg, networkArg, daemonOptOut, effort } = prepared;
@@ -739,6 +812,81 @@ export class CodexRuntimeAdapter {
739
812
  const root = codexQueueStateRoot(sessionName, sharedDocsRoot);
740
813
  return root ? ` --add-dir ${shellQuote(root)}` : "";
741
814
  }
815
+ /**
816
+ * Return true only when visible config proves a read-only profile within Codex's default project root.
817
+ * Unknown markers or unreadable layers retain the generated roots for native launch handling.
818
+ */
819
+ profileRemainsReadOnly(profile, cwd) {
820
+ const root = this.codexHome ?? nodePath.join(this.fs.homedir ?? os.homedir(), ".codex");
821
+ const path = nodePath.join(root, `${profile}.config.toml`);
822
+ const userPath = nodePath.join(root, "config.toml");
823
+ if (!this.fs.exists(path))
824
+ return false;
825
+ try {
826
+ const value = parseToml(this.fs.readFile(path));
827
+ if (value.sandbox_mode !== "read-only" || value.default_permissions !== undefined || !nodePath.isAbsolute(cwd))
828
+ return false;
829
+ // A custom marker set may change the project boundary; leave the prior
830
+ // generated roots in place unless this default-marker scan proves it.
831
+ if (value.project_root_markers !== undefined)
832
+ return false;
833
+ // Codex merges fixed system/user/legacy-managed layers before choosing
834
+ // project markers. Any visible override or unreadable layer keeps roots.
835
+ for (const fixedPath of [
836
+ nodePath.join(this.codexSystemConfigDir, "config.toml"),
837
+ userPath,
838
+ nodePath.join(this.codexSystemConfigDir, "managed_config.toml"),
839
+ ]) {
840
+ if (!this.fs.exists(fixedPath))
841
+ continue;
842
+ const fixed = parseToml(this.fs.readFile(fixedPath));
843
+ if (fixed.default_permissions !== undefined || fixed.project_root_markers !== undefined)
844
+ return false;
845
+ }
846
+ // Codex's default root is the nearest .git file or a .git directory
847
+ // containing HEAD. When none exists, Codex uses cwd itself.
848
+ let projectRoot = nodePath.normalize(cwd);
849
+ for (let dir = projectRoot;;) {
850
+ const marker = nodePath.join(dir, ".git");
851
+ if (this.fs.exists(marker)) {
852
+ if (!this.fs.statMode)
853
+ return false;
854
+ const kind = this.fs.statMode(marker) & fs.constants.S_IFMT;
855
+ // statMode may expose permission bits alone; that cannot prove a file.
856
+ if (kind !== fs.constants.S_IFREG && kind !== fs.constants.S_IFDIR)
857
+ return false;
858
+ if (kind === fs.constants.S_IFREG || this.fs.exists(nodePath.join(marker, "HEAD"))) {
859
+ projectRoot = dir;
860
+ break;
861
+ }
862
+ }
863
+ const parent = nodePath.dirname(dir);
864
+ if (parent === dir)
865
+ break;
866
+ dir = parent;
867
+ }
868
+ // Trust can exclude a closer project file, leaving a writable ancestor active.
869
+ // Keep roots if any visible applicable ancestor could make the launch writable.
870
+ for (let dir = nodePath.normalize(cwd);;) {
871
+ const projectPath = nodePath.join(dir, ".codex", "config.toml");
872
+ // At the home ancestor this is the user config, which loaded before the profile.
873
+ if (projectPath !== userPath && this.fs.exists(projectPath)) {
874
+ const project = parseToml(this.fs.readFile(projectPath));
875
+ if (project.default_permissions !== undefined)
876
+ return false;
877
+ if (project.sandbox_mode !== undefined && project.sandbox_mode !== "read-only")
878
+ return false;
879
+ }
880
+ if (dir === projectRoot)
881
+ return true;
882
+ dir = nodePath.dirname(dir);
883
+ }
884
+ }
885
+ catch {
886
+ // Preflight owns profile errors; unreadable user or project state keeps prior roots.
887
+ return false;
888
+ }
889
+ }
742
890
  async captureProbeScreen(target) {
743
891
  // Current readiness belongs to the rendered screen. Scrollback may retain
744
892
  // dismissed prompts, loading headers, or refusals from earlier attempts.
@@ -865,14 +1013,14 @@ export class CodexRuntimeAdapter {
865
1013
  ensureManagedBootstrap(binding) {
866
1014
  this.provisionWorkspaceTrust(binding.cwd ?? null);
867
1015
  }
868
- projectEntry(entry, cwd, warnings) {
1016
+ projectEntry(entry, cwd, warnings, seatSkillsRoot, seatSkillsRefused) {
869
1017
  if (entry.category === "runtime_resource" && this.applyRuntimeResource(entry)) {
870
1018
  return true;
871
1019
  }
872
1020
  if (entry.category === "guidance" && entry.mergeStrategy === "managed_block") {
873
1021
  const targetPath = nodePath.join(cwd, "AGENTS.md");
874
1022
  const content = this.fs.readFile(entry.absolutePath);
875
- return this.mergeGuidance(targetPath, entry.effectiveId, content, warnings);
1023
+ return this.mergeGuidance(targetPath, entry.effectiveId, content, warnings, entry.absolutePath);
876
1024
  }
877
1025
  // HG-1.3 plugin runtime applicability filter (per DESIGN.md §5.1):
878
1026
  // - explicit pluginType="claude" → skip Codex projection
@@ -881,9 +1029,23 @@ export class CodexRuntimeAdapter {
881
1029
  if (entry.category === "plugin" && !this.pluginAppliesToCodex(entry)) {
882
1030
  return false;
883
1031
  }
884
- const targetDir = this.resolveTargetDir(entry, cwd);
1032
+ const targetDir = this.resolveTargetDir(entry, cwd, seatSkillsRoot);
885
1033
  if (!targetDir)
886
1034
  return true;
1035
+ // OPR.0.7.0.13: never write through a link out of the seat's storage.
1036
+ // A refused seat storage refuses every skill meant for it, named; otherwise each destination is checked.
1037
+ const refusal = seatSkillsRoot && entry.category === "skill"
1038
+ ? seatSkillsRefused ?? seatSkillWriteRefusal(seatSkillsRoot, nodePath.join(targetDir, "SKILL.md")) : undefined;
1039
+ if (refusal) {
1040
+ warnings.push(`${entry.effectiveId}: ${refusal}`);
1041
+ return false;
1042
+ }
1043
+ // OPR.0.7.0.13: destinations refused below (a link on the way); an entry with any is reported incomplete, not projected.
1044
+ const notProjected = [];
1045
+ // OPR.0.7.0.13: a skill written to the seat's own storage is recorded, so cleanup and restore know it as OpenRig's.
1046
+ const record = seatSkillsRoot && entry.category === "skill"
1047
+ ? (dest, src, content) => recordSeatSkillWrite(seatSkillsRoot, dest, src, content)
1048
+ : () => { };
887
1049
  this.fs.mkdirp(targetDir);
888
1050
  let isDir = false;
889
1051
  if (this.fs.listFiles) {
@@ -899,10 +1061,26 @@ export class CodexRuntimeAdapter {
899
1061
  const createdFiles = [];
900
1062
  try {
901
1063
  if (isDir && this.fs.listFiles) {
1064
+ let skippedPluginSkills = 0;
902
1065
  for (const file of this.fs.listFiles(entry.absolutePath)) {
1066
+ // OPR.0.7.0.13: a seat with its own storage gets a selected plugin's bundled skills there, through its loadout, so
1067
+ // the project's copy of the plugin leaves its skills out; its manifest, hooks and settings are copied as before.
1068
+ if (seatSkillsRoot && entry.category === "plugin" && file.split(/[\\/]/)[0] === "skills") {
1069
+ skippedPluginSkills++;
1070
+ continue;
1071
+ }
903
1072
  const src = nodePath.join(entry.absolutePath, file);
904
1073
  const dest = nodePath.join(targetDir, file);
1074
+ // OPR.0.7.0.13: each destination in a seat's storage is checked before it's recorded, written or re-moded, so a
1075
+ // helper folder or file found to be a link is not written through (the identical-content, mode-only branch included).
1076
+ const refusedDest = seatSkillsRoot && entry.category === "skill" ? seatSkillWriteRefusal(seatSkillsRoot, dest) : undefined;
1077
+ if (refusedDest) {
1078
+ warnings.push(`${entry.effectiveId}: ${refusedDest}`);
1079
+ notProjected.push(dest);
1080
+ continue;
1081
+ }
905
1082
  const content = this.fs.readFile(src);
1083
+ record(dest, src, content);
906
1084
  // Reconcile mode even when the content write is skipped: a byte-identical dest
907
1085
  // projected earlier may still carry the wrong (default) mode.
908
1086
  if (this.fs.exists(dest) && hashContent(content) === hashContent(this.fs.readFile(dest))) {
@@ -916,10 +1094,19 @@ export class CodexRuntimeAdapter {
916
1094
  createdFiles.push(dest);
917
1095
  this.preserveMode(src, dest);
918
1096
  }
1097
+ const pluginLoss = seatSkillsRefused ? seatPluginSkillsLossNote(entry.effectiveId, skippedPluginSkills, seatSkillsRefused) : undefined;
1098
+ if (pluginLoss)
1099
+ warnings.push(pluginLoss);
919
1100
  }
920
1101
  else {
921
- const content = this.fs.readFile(entry.absolutePath);
922
1102
  const destFile = nodePath.join(targetDir, nodePath.basename(entry.absolutePath));
1103
+ const refusedFile = seatSkillsRoot && entry.category === "skill" ? seatSkillWriteRefusal(seatSkillsRoot, destFile) : undefined;
1104
+ if (refusedFile) {
1105
+ warnings.push(`${entry.effectiveId}: ${refusedFile}`);
1106
+ return false;
1107
+ }
1108
+ const content = this.fs.readFile(entry.absolutePath);
1109
+ record(destFile, entry.absolutePath, content);
923
1110
  if (this.fs.exists(destFile) && hashContent(content) === hashContent(this.fs.readFile(destFile))) {
924
1111
  this.preserveMode(entry.absolutePath, destFile);
925
1112
  return true;
@@ -935,7 +1122,7 @@ export class CodexRuntimeAdapter {
935
1122
  if (entry.category === "plugin")
936
1123
  warnings.push(...excludeNewGeneratedFiles(cwd, createdFiles));
937
1124
  }
938
- return true;
1125
+ return seatProjectionComplete(entry.effectiveId, notProjected, warnings);
939
1126
  }
940
1127
  /**
941
1128
  * Reapply the source file's permission bits to the projected dest. Plain
@@ -960,9 +1147,9 @@ export class CodexRuntimeAdapter {
960
1147
  // auto: detect via .codex-plugin/plugin.json presence in the source tree
961
1148
  return this.fs.exists(nodePath.join(entry.absolutePath, ".codex-plugin", "plugin.json"));
962
1149
  }
963
- resolveTargetDir(entry, cwd) {
1150
+ resolveTargetDir(entry, cwd, seatSkillsRoot) {
964
1151
  switch (entry.category) {
965
- case "skill": return nodePath.join(cwd, ".agents", "skills", entry.effectiveId);
1152
+ case "skill": return nodePath.join(seatSkillsRoot ?? nodePath.join(cwd, ".agents", "skills"), entry.effectiveId);
966
1153
  case "guidance": return null; // handled via merge
967
1154
  case "subagent": return nodePath.join(cwd, ".agents"); // .agents/{id}.yaml per preserved contract
968
1155
  case "plugin": return nodePath.join(cwd, ".codex", "plugins", entry.effectiveId);
@@ -995,14 +1182,17 @@ export class CodexRuntimeAdapter {
995
1182
  * propagate the skip signal so ProjectionResult and StartupDeliveryResult
996
1183
  * report honest counts.
997
1184
  */
998
- mergeGuidance(targetPath, blockId, content, warnings) {
1185
+ mergeGuidance(targetPath, blockId, content, warnings, sourcePath) {
999
1186
  // Mirrors Claude Code adapter: the `rig-role` managed block collides across
1000
1187
  // pod-mates because the regenerator pairs (target-file × spec) without
1001
1188
  // seat correlation. Per-seat role content is delivered through `send_text`
1002
1189
  // startup instead. Refuse the merge loudly; silent skip would mask the
1003
1190
  // collision. See ADR-0006.
1004
- if (blockId === "rig-role") {
1005
- console.log(`[openrig] skip: effectiveId is rig-role, per-seat delivery via send_text path required (target=${targetPath})`);
1191
+ if (isPerSeatRoleGuidance(blockId, sourcePath)) {
1192
+ console.log(`[openrig] skip: effectiveId is ${blockId}, a seat's own role; per-seat delivery via send_text path required (target=${targetPath})`);
1193
+ const warning = perSeatRoleSkipWarning(blockId, targetPath);
1194
+ if (warning)
1195
+ warnings.push(warning);
1006
1196
  return false;
1007
1197
  }
1008
1198
  mergeManagedBlock(this.fs, targetPath, blockId, content, {
@@ -1011,8 +1201,8 @@ export class CodexRuntimeAdapter {
1011
1201
  });
1012
1202
  return true;
1013
1203
  }
1014
- detectDeliveryHint(path, content) {
1015
- return resolveConcreteHint(path, content);
1204
+ detectDeliveryHint(path, content, orientation) {
1205
+ return resolveConcreteHint(path, content, orientation);
1016
1206
  }
1017
1207
  provisionWorkspaceTrust(cwd) {
1018
1208
  if (!cwd)
@@ -1484,11 +1674,11 @@ export function computeCodexHookTrust(event, input) {
1484
1674
  * `[hooks.state."<key>"] trusted_hash = "<hash>"` record. Mirrors upsertCodexProjectTrust:
1485
1675
  * find/create the exact table header, splice ONLY its `trusted_hash` line, leave every other
1486
1676
  * `[hooks.state]` / `[projects]` entry and the managed hook block byte-identical. Same key+hash
1487
- * ⇒ no-op. Only called for our authored inline or exact first-install plugin keys (never blanket trust).
1677
+ * ⇒ no-op. Only called for our authored inline or verified owned plugin keys (never blanket trust).
1488
1678
  */
1489
- export function upsertCodexHookTrust(content, key, hash) {
1679
+ export function upsertCodexHookTrust(content, key, hash, field = "trusted_hash") {
1490
1680
  const header = `[hooks.state.${JSON.stringify(key)}]`;
1491
- const trustLine = `trusted_hash = ${JSON.stringify(hash)}`;
1681
+ const trustLine = `${field} = ${JSON.stringify(hash)}`;
1492
1682
  const lines = content.length > 0 ? content.split("\n") : [];
1493
1683
  const headerIndex = lines.findIndex((line) => line.trim() === header);
1494
1684
  if (headerIndex === -1) {
@@ -1503,14 +1693,14 @@ export function upsertCodexHookTrust(content, key, hash) {
1503
1693
  break;
1504
1694
  }
1505
1695
  }
1506
- const hashIndex = lines.findIndex((line, index) => index > headerIndex && index < nextSectionIndex && line.trim().startsWith("trusted_hash"));
1696
+ const hashIndex = lines.findIndex((line, index) => index > headerIndex && index < nextSectionIndex && line.trim().startsWith(field));
1507
1697
  if (hashIndex >= 0) {
1508
1698
  lines[hashIndex] = trustLine;
1509
1699
  }
1510
1700
  else {
1511
1701
  lines.splice(headerIndex + 1, 0, trustLine);
1512
1702
  }
1513
- return `${lines.join("\n").replace(/\n*$/, "\n")}`;
1703
+ return field === "trusted_content_hash" ? lines.join("\n") : `${lines.join("\n").replace(/\n*$/, "\n")}`;
1514
1704
  }
1515
1705
  export function isCodex013xOrLater(version) {
1516
1706
  const match = /^(\d+)\.(\d+)/.exec(version);