@openrig/cli 0.5.8 → 0.5.9

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 (781) hide show
  1. package/daemon/assets/claude-statusline-context.cjs +1 -0
  2. package/daemon/assets/plugins/openrig-core/README.md +1 -1
  3. package/daemon/assets/plugins/openrig-core/skills/agent-operated-software/SKILL.md +92 -0
  4. package/daemon/assets/plugins/openrig-core/skills/agent-operated-workflows/SKILL.md +79 -0
  5. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +2 -2
  6. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +4 -2
  7. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +12 -16
  8. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +11 -179
  9. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  10. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +63 -19
  11. package/daemon/context-packs/skills/agent-operated-software/SKILL.md +92 -0
  12. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +10 -0
  13. package/daemon/context-packs/skills/agent-operated-workflows/SKILL.md +79 -0
  14. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +10 -0
  15. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  16. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  17. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  18. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  19. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  20. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  21. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +4 -2
  26. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +81 -0
  28. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +3 -1
  29. package/daemon/context-packs/skills/core/openrig-upgrade/scripts/migrate-telemetry-state-0.5.9.mjs +1419 -0
  30. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +2 -2
  38. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/openrig-user/SKILL.md +12 -16
  43. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/software-for-agents/SKILL.md +11 -179
  69. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +3 -3
  70. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  71. package/daemon/context-packs/world-example/your-world.md +1 -1
  72. package/daemon/context-packs/world-public/build-your-world.md +19 -0
  73. package/daemon/context-packs/world-public/claims.yaml +5 -1
  74. package/daemon/context-packs/world-public/manifest.yaml +40 -1
  75. package/daemon/context-packs/world-public/verify-world.sh +25 -9
  76. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  77. package/daemon/dist/adapters/claude-code-adapter.js +4 -2
  78. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  79. package/daemon/dist/build-info.js +3 -3
  80. package/daemon/dist/db/all-migrations.d.ts +1 -1
  81. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  82. package/daemon/dist/db/all-migrations.js +3 -1
  83. package/daemon/dist/db/all-migrations.js.map +1 -1
  84. package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts +8 -5
  85. package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts.map +1 -1
  86. package/daemon/dist/db/migrations/046_seat_identity_verdicts.js +8 -5
  87. package/daemon/dist/db/migrations/046_seat_identity_verdicts.js.map +1 -1
  88. package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts +8 -0
  89. package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts.map +1 -0
  90. package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js +50 -0
  91. package/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js.map +1 -0
  92. package/daemon/dist/domain/active-occupant.d.ts +6 -1
  93. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  94. package/daemon/dist/domain/active-occupant.js +47 -0
  95. package/daemon/dist/domain/active-occupant.js.map +1 -1
  96. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  97. package/daemon/dist/domain/bootstrap-orchestrator.js +8 -1
  98. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  99. package/daemon/dist/domain/bundle-context-packs-router.d.ts +3 -3
  100. package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  101. package/daemon/dist/domain/bundle-skills-router.d.ts +3 -0
  102. package/daemon/dist/domain/bundle-skills-router.d.ts.map +1 -1
  103. package/daemon/dist/domain/bundle-skills-router.js +5 -1
  104. package/daemon/dist/domain/bundle-skills-router.js.map +1 -1
  105. package/daemon/dist/domain/claim-service.d.ts +2 -0
  106. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  107. package/daemon/dist/domain/claim-service.js +33 -12
  108. package/daemon/dist/domain/claim-service.js.map +1 -1
  109. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  110. package/daemon/dist/domain/context-packs/context-pack-library-service.js +9 -1
  111. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  112. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +25 -0
  113. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  114. package/daemon/dist/domain/context-packs/context-pack-types.js +3 -1
  115. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  116. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  117. package/daemon/dist/domain/context-packs/manifest-parser.js +143 -3
  118. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  119. package/daemon/dist/domain/context-packs/profile-composer.d.ts +22 -1
  120. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  121. package/daemon/dist/domain/context-packs/profile-composer.js +105 -40
  122. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  123. package/daemon/dist/domain/context-usage-store.d.ts +4 -0
  124. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  125. package/daemon/dist/domain/context-usage-store.js +8 -4
  126. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  127. package/daemon/dist/domain/crash-cart-conductor.d.ts +13 -0
  128. package/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -1
  129. package/daemon/dist/domain/crash-cart-conductor.js +3 -1
  130. package/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
  131. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  132. package/daemon/dist/domain/execution-view.js +145 -16
  133. package/daemon/dist/domain/execution-view.js.map +1 -1
  134. package/daemon/dist/domain/instance-initialization.d.ts +25 -0
  135. package/daemon/dist/domain/instance-initialization.d.ts.map +1 -0
  136. package/daemon/dist/domain/instance-initialization.js +81 -0
  137. package/daemon/dist/domain/instance-initialization.js.map +1 -0
  138. package/daemon/dist/domain/lifecycle-manifest.d.ts +19 -0
  139. package/daemon/dist/domain/lifecycle-manifest.d.ts.map +1 -0
  140. package/daemon/dist/domain/lifecycle-manifest.js +73 -0
  141. package/daemon/dist/domain/lifecycle-manifest.js.map +1 -0
  142. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +36 -36
  143. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  144. package/daemon/dist/domain/model-divergence/current-generation-record.js +104 -135
  145. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  146. package/daemon/dist/domain/native-process-lineage.d.ts +10 -0
  147. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -0
  148. package/daemon/dist/domain/native-process-lineage.js +86 -0
  149. package/daemon/dist/domain/native-process-lineage.js.map +1 -0
  150. package/daemon/dist/domain/native-resume-probe.js +12 -1
  151. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  152. package/daemon/dist/domain/node-inventory.d.ts +2 -0
  153. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  154. package/daemon/dist/domain/node-inventory.js +3 -1
  155. package/daemon/dist/domain/node-inventory.js.map +1 -1
  156. package/daemon/dist/domain/node-launcher.d.ts +3 -0
  157. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  158. package/daemon/dist/domain/node-launcher.js +21 -8
  159. package/daemon/dist/domain/node-launcher.js.map +1 -1
  160. package/daemon/dist/domain/pane-binding-observation.d.ts +22 -0
  161. package/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -0
  162. package/daemon/dist/domain/pane-binding-observation.js +54 -0
  163. package/daemon/dist/domain/pane-binding-observation.js.map +1 -0
  164. package/daemon/dist/domain/policies/parked-owner-consumer.js +1 -1
  165. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  166. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  167. package/daemon/dist/domain/policies/workflow-keepalive.js +16 -2
  168. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  169. package/daemon/dist/domain/profile-resolver.d.ts +12 -0
  170. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  171. package/daemon/dist/domain/profile-resolver.js +60 -0
  172. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  173. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +35 -0
  174. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -0
  175. package/daemon/dist/domain/project-lifecycle-compiler.js +190 -0
  176. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -0
  177. package/daemon/dist/domain/provider/claude-usage-reader.d.ts +1 -1
  178. package/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +1 -1
  179. package/daemon/dist/domain/provider/claude-usage-reader.js +28 -18
  180. package/daemon/dist/domain/provider/claude-usage-reader.js.map +1 -1
  181. package/daemon/dist/domain/queue-repository.d.ts +5 -1
  182. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  183. package/daemon/dist/domain/queue-repository.js +6 -0
  184. package/daemon/dist/domain/queue-repository.js.map +1 -1
  185. package/daemon/dist/domain/queue-retention.d.ts +3 -4
  186. package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  187. package/daemon/dist/domain/queue-retention.js +5 -8
  188. package/daemon/dist/domain/queue-retention.js.map +1 -1
  189. package/daemon/dist/domain/queue-transition-log.d.ts +28 -0
  190. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  191. package/daemon/dist/domain/queue-transition-log.js +124 -0
  192. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  193. package/daemon/dist/domain/restore-attempt-receipt.d.ts +34 -0
  194. package/daemon/dist/domain/restore-attempt-receipt.d.ts.map +1 -0
  195. package/daemon/dist/domain/restore-attempt-receipt.js +59 -0
  196. package/daemon/dist/domain/restore-attempt-receipt.js.map +1 -0
  197. package/daemon/dist/domain/restore-orchestrator.d.ts +57 -24
  198. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  199. package/daemon/dist/domain/restore-orchestrator.js +152 -26
  200. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  201. package/daemon/dist/domain/restore-topology.d.ts +14 -0
  202. package/daemon/dist/domain/restore-topology.d.ts.map +1 -0
  203. package/daemon/dist/domain/restore-topology.js +27 -0
  204. package/daemon/dist/domain/restore-topology.js.map +1 -0
  205. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  206. package/daemon/dist/domain/rig-lifecycle-service.js +9 -0
  207. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  208. package/daemon/dist/domain/rigspec-instantiator.d.ts +19 -0
  209. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  210. package/daemon/dist/domain/rigspec-instantiator.js +65 -1
  211. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  212. package/daemon/dist/domain/rigspec-preflight.d.ts +8 -0
  213. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  214. package/daemon/dist/domain/rigspec-preflight.js +4 -0
  215. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  216. package/daemon/dist/domain/seat-attention-reconciler.d.ts +23 -1
  217. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  218. package/daemon/dist/domain/seat-attention-reconciler.js +97 -46
  219. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  220. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  221. package/daemon/dist/domain/seat-identity-reconciler.js +15 -6
  222. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  223. package/daemon/dist/domain/seat-lifecycle-service.d.ts +47 -1
  224. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  225. package/daemon/dist/domain/seat-lifecycle-service.js +525 -29
  226. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  227. package/daemon/dist/domain/session-registry.d.ts +8 -1
  228. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  229. package/daemon/dist/domain/session-registry.js +19 -0
  230. package/daemon/dist/domain/session-registry.js.map +1 -1
  231. package/daemon/dist/domain/skill-catalog.d.ts +81 -0
  232. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -0
  233. package/daemon/dist/domain/skill-catalog.js +827 -0
  234. package/daemon/dist/domain/skill-catalog.js.map +1 -0
  235. package/daemon/dist/domain/skill-discovery.d.ts +3 -0
  236. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  237. package/daemon/dist/domain/skill-discovery.js +1 -1
  238. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  239. package/daemon/dist/domain/snapshot-capture.d.ts +4 -1
  240. package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  241. package/daemon/dist/domain/snapshot-capture.js +38 -2
  242. package/daemon/dist/domain/snapshot-capture.js.map +1 -1
  243. package/daemon/dist/domain/snapshot-repository.d.ts +15 -1
  244. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  245. package/daemon/dist/domain/snapshot-repository.js +103 -1
  246. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  247. package/daemon/dist/domain/startup-orchestrator.d.ts +2 -0
  248. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  249. package/daemon/dist/domain/startup-orchestrator.js +12 -0
  250. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  251. package/daemon/dist/domain/system-world.d.ts +45 -0
  252. package/daemon/dist/domain/system-world.d.ts.map +1 -0
  253. package/daemon/dist/domain/system-world.js +123 -0
  254. package/daemon/dist/domain/system-world.js.map +1 -0
  255. package/daemon/dist/domain/telemetry-state-paths.d.ts +7 -0
  256. package/daemon/dist/domain/telemetry-state-paths.d.ts.map +1 -0
  257. package/daemon/dist/domain/telemetry-state-paths.js +20 -0
  258. package/daemon/dist/domain/telemetry-state-paths.js.map +1 -0
  259. package/daemon/dist/domain/types.d.ts +103 -4
  260. package/daemon/dist/domain/types.d.ts.map +1 -1
  261. package/daemon/dist/domain/types.js.map +1 -1
  262. package/daemon/dist/domain/user-settings/settings-store.d.ts +8 -3
  263. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  264. package/daemon/dist/domain/user-settings/settings-store.js +65 -29
  265. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  266. package/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -23
  267. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  268. package/daemon/dist/domain/watchdog-policy-engine.js +44 -226
  269. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  270. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  271. package/daemon/dist/domain/workflow-boot-sweep.js +20 -6
  272. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  273. package/daemon/dist/domain/workflow-instance-store.d.ts +33 -1
  274. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  275. package/daemon/dist/domain/workflow-instance-store.js +127 -2
  276. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  277. package/daemon/dist/domain/workflow-keepalive-arming.d.ts +7 -5
  278. package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -1
  279. package/daemon/dist/domain/workflow-keepalive-arming.js +27 -16
  280. package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -1
  281. package/daemon/dist/domain/workflow-projector.d.ts +6 -2
  282. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  283. package/daemon/dist/domain/workflow-projector.js +271 -2
  284. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  285. package/daemon/dist/domain/workflow-runtime.d.ts +62 -2
  286. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  287. package/daemon/dist/domain/workflow-runtime.js +334 -18
  288. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  289. package/daemon/dist/domain/workflow-spec-cache.d.ts +9 -1
  290. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  291. package/daemon/dist/domain/workflow-spec-cache.js +85 -0
  292. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  293. package/daemon/dist/domain/workflow-types.d.ts +38 -1
  294. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  295. package/daemon/dist/domain/workflow-types.js.map +1 -1
  296. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  297. package/daemon/dist/domain/workflow-validator.js +20 -3
  298. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  299. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +38 -9
  300. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  301. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +93 -347
  302. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  303. package/daemon/dist/index.d.ts.map +1 -1
  304. package/daemon/dist/index.js +13 -0
  305. package/daemon/dist/index.js.map +1 -1
  306. package/daemon/dist/instance-initialization-surface.d.ts +3 -0
  307. package/daemon/dist/instance-initialization-surface.d.ts.map +1 -0
  308. package/daemon/dist/instance-initialization-surface.js +3 -0
  309. package/daemon/dist/instance-initialization-surface.js.map +1 -0
  310. package/daemon/dist/project-lifecycle-surface.d.ts +3 -0
  311. package/daemon/dist/project-lifecycle-surface.d.ts.map +1 -0
  312. package/daemon/dist/project-lifecycle-surface.js +3 -0
  313. package/daemon/dist/project-lifecycle-surface.js.map +1 -0
  314. package/daemon/dist/routes/bundles.js +10 -9
  315. package/daemon/dist/routes/bundles.js.map +1 -1
  316. package/daemon/dist/routes/config.d.ts.map +1 -1
  317. package/daemon/dist/routes/config.js +27 -49
  318. package/daemon/dist/routes/config.js.map +1 -1
  319. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  320. package/daemon/dist/routes/context-packs.js +114 -16
  321. package/daemon/dist/routes/context-packs.js.map +1 -1
  322. package/daemon/dist/routes/crash-cart.js +3 -0
  323. package/daemon/dist/routes/crash-cart.js.map +1 -1
  324. package/daemon/dist/routes/queue.d.ts.map +1 -1
  325. package/daemon/dist/routes/queue.js +20 -0
  326. package/daemon/dist/routes/queue.js.map +1 -1
  327. package/daemon/dist/routes/rigs.js +12 -1
  328. package/daemon/dist/routes/rigs.js.map +1 -1
  329. package/daemon/dist/routes/rigspec.js +9 -2
  330. package/daemon/dist/routes/rigspec.js.map +1 -1
  331. package/daemon/dist/routes/seat.js +21 -1
  332. package/daemon/dist/routes/seat.js.map +1 -1
  333. package/daemon/dist/routes/sessions.js +16 -6
  334. package/daemon/dist/routes/sessions.js.map +1 -1
  335. package/daemon/dist/routes/snapshots.d.ts.map +1 -1
  336. package/daemon/dist/routes/snapshots.js +41 -3
  337. package/daemon/dist/routes/snapshots.js.map +1 -1
  338. package/daemon/dist/routes/up.js +12 -1
  339. package/daemon/dist/routes/up.js.map +1 -1
  340. package/daemon/dist/routes/watchdog.d.ts.map +1 -1
  341. package/daemon/dist/routes/watchdog.js +7 -6
  342. package/daemon/dist/routes/watchdog.js.map +1 -1
  343. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  344. package/daemon/dist/routes/workflow.js +104 -39
  345. package/daemon/dist/routes/workflow.js.map +1 -1
  346. package/daemon/dist/server.d.ts +2 -0
  347. package/daemon/dist/server.d.ts.map +1 -1
  348. package/daemon/dist/server.js +1 -0
  349. package/daemon/dist/server.js.map +1 -1
  350. package/daemon/dist/skill-loadout-surface.d.ts +3 -0
  351. package/daemon/dist/skill-loadout-surface.d.ts.map +1 -0
  352. package/daemon/dist/skill-loadout-surface.js +2 -0
  353. package/daemon/dist/skill-loadout-surface.js.map +1 -0
  354. package/daemon/dist/startup.d.ts.map +1 -1
  355. package/daemon/dist/startup.js +72 -65
  356. package/daemon/dist/startup.js.map +1 -1
  357. package/daemon/dist/system-world-surface.d.ts +2 -0
  358. package/daemon/dist/system-world-surface.d.ts.map +1 -0
  359. package/daemon/dist/system-world-surface.js +2 -0
  360. package/daemon/dist/system-world-surface.js.map +1 -0
  361. package/daemon/docs/reference/getting-started.md +2 -1
  362. package/daemon/docs/reference/instance-layout.md +106 -0
  363. package/daemon/docs/reference/mission-install.md +12 -2
  364. package/daemon/docs/reference/project-workspace.md +66 -40
  365. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +4 -2
  366. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +81 -0
  367. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/scripts/migrate-telemetry-state-0.5.9.mjs +1419 -0
  368. package/dist/build-info.js +3 -3
  369. package/dist/commands/config-init-workspace.d.ts +4 -23
  370. package/dist/commands/config-init-workspace.d.ts.map +1 -1
  371. package/dist/commands/config-init-workspace.js +14 -576
  372. package/dist/commands/config-init-workspace.js.map +1 -1
  373. package/dist/commands/config.d.ts.map +1 -1
  374. package/dist/commands/config.js +6 -4
  375. package/dist/commands/config.js.map +1 -1
  376. package/dist/commands/context.d.ts.map +1 -1
  377. package/dist/commands/context.js +114 -8
  378. package/dist/commands/context.js.map +1 -1
  379. package/dist/commands/daemon.d.ts.map +1 -1
  380. package/dist/commands/daemon.js +16 -0
  381. package/dist/commands/daemon.js.map +1 -1
  382. package/dist/commands/launch.d.ts.map +1 -1
  383. package/dist/commands/launch.js +51 -4
  384. package/dist/commands/launch.js.map +1 -1
  385. package/dist/commands/restore.d.ts.map +1 -1
  386. package/dist/commands/restore.js +43 -3
  387. package/dist/commands/restore.js.map +1 -1
  388. package/dist/commands/scope.d.ts.map +1 -1
  389. package/dist/commands/scope.js +169 -79
  390. package/dist/commands/scope.js.map +1 -1
  391. package/dist/commands/seat.d.ts.map +1 -1
  392. package/dist/commands/seat.js +30 -0
  393. package/dist/commands/seat.js.map +1 -1
  394. package/dist/commands/skill.d.ts.map +1 -1
  395. package/dist/commands/skill.js +61 -0
  396. package/dist/commands/skill.js.map +1 -1
  397. package/dist/commands/snapshot.d.ts.map +1 -1
  398. package/dist/commands/snapshot.js +4 -2
  399. package/dist/commands/snapshot.js.map +1 -1
  400. package/dist/commands/start.d.ts.map +1 -1
  401. package/dist/commands/start.js +3 -0
  402. package/dist/commands/start.js.map +1 -1
  403. package/dist/commands/up.d.ts.map +1 -1
  404. package/dist/commands/up.js +3 -0
  405. package/dist/commands/up.js.map +1 -1
  406. package/dist/commands/walk.d.ts.map +1 -1
  407. package/dist/commands/walk.js +3 -0
  408. package/dist/commands/walk.js.map +1 -1
  409. package/dist/commands/workflow-render.d.ts +31 -0
  410. package/dist/commands/workflow-render.d.ts.map +1 -1
  411. package/dist/commands/workflow-render.js +84 -6
  412. package/dist/commands/workflow-render.js.map +1 -1
  413. package/dist/commands/workflow.d.ts.map +1 -1
  414. package/dist/commands/workflow.js +96 -8
  415. package/dist/commands/workflow.js.map +1 -1
  416. package/dist/config-store.d.ts +9 -4
  417. package/dist/config-store.d.ts.map +1 -1
  418. package/dist/config-store.js +67 -30
  419. package/dist/config-store.js.map +1 -1
  420. package/dist/daemon-lifecycle.d.ts +8 -15
  421. package/dist/daemon-lifecycle.d.ts.map +1 -1
  422. package/dist/daemon-lifecycle.js +24 -31
  423. package/dist/daemon-lifecycle.js.map +1 -1
  424. package/dist/lib/scope/mission-composition.d.ts +16 -0
  425. package/dist/lib/scope/mission-composition.d.ts.map +1 -0
  426. package/dist/lib/scope/mission-composition.js +110 -0
  427. package/dist/lib/scope/mission-composition.js.map +1 -0
  428. package/dist/lib/scope/scope-fs.d.ts +5 -0
  429. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  430. package/dist/lib/scope/scope-fs.js +34 -4
  431. package/dist/lib/scope/scope-fs.js.map +1 -1
  432. package/dist/lib/work-install.d.ts +17 -0
  433. package/dist/lib/work-install.d.ts.map +1 -1
  434. package/dist/lib/work-install.js +49 -6
  435. package/dist/lib/work-install.js.map +1 -1
  436. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  437. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +4 -2
  438. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  439. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  440. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +1 -1
  441. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
  442. package/node_modules/@openrig/daemon/dist/db/all-migrations.js +3 -1
  443. package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
  444. package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts +8 -5
  445. package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts.map +1 -1
  446. package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.js +8 -5
  447. package/node_modules/@openrig/daemon/dist/db/migrations/046_seat_identity_verdicts.js.map +1 -1
  448. package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts +8 -0
  449. package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.d.ts.map +1 -0
  450. package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js +50 -0
  451. package/node_modules/@openrig/daemon/dist/db/migrations/079_workflow_lifecycle_parallel.js.map +1 -0
  452. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +6 -1
  453. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  454. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +47 -0
  455. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -1
  456. package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  457. package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.js +8 -1
  458. package/node_modules/@openrig/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  459. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts +3 -3
  460. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  461. package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.d.ts +3 -0
  462. package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.d.ts.map +1 -1
  463. package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.js +5 -1
  464. package/node_modules/@openrig/daemon/dist/domain/bundle-skills-router.js.map +1 -1
  465. package/node_modules/@openrig/daemon/dist/domain/claim-service.d.ts +2 -0
  466. package/node_modules/@openrig/daemon/dist/domain/claim-service.d.ts.map +1 -1
  467. package/node_modules/@openrig/daemon/dist/domain/claim-service.js +33 -12
  468. package/node_modules/@openrig/daemon/dist/domain/claim-service.js.map +1 -1
  469. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  470. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js +9 -1
  471. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  472. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +25 -0
  473. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  474. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +3 -1
  475. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  476. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  477. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +143 -3
  478. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  479. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +22 -1
  480. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  481. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +105 -40
  482. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  483. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts +4 -0
  484. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  485. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js +8 -4
  486. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js.map +1 -1
  487. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts +13 -0
  488. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -1
  489. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +3 -1
  490. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
  491. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -1
  492. package/node_modules/@openrig/daemon/dist/domain/execution-view.js +145 -16
  493. package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -1
  494. package/node_modules/@openrig/daemon/dist/domain/instance-initialization.d.ts +25 -0
  495. package/node_modules/@openrig/daemon/dist/domain/instance-initialization.d.ts.map +1 -0
  496. package/node_modules/@openrig/daemon/dist/domain/instance-initialization.js +81 -0
  497. package/node_modules/@openrig/daemon/dist/domain/instance-initialization.js.map +1 -0
  498. package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.d.ts +19 -0
  499. package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.d.ts.map +1 -0
  500. package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.js +73 -0
  501. package/node_modules/@openrig/daemon/dist/domain/lifecycle-manifest.js.map +1 -0
  502. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +36 -36
  503. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  504. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +104 -135
  505. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  506. package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.d.ts +10 -0
  507. package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.d.ts.map +1 -0
  508. package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.js +86 -0
  509. package/node_modules/@openrig/daemon/dist/domain/native-process-lineage.js.map +1 -0
  510. package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js +12 -1
  511. package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js.map +1 -1
  512. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts +2 -0
  513. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  514. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +3 -1
  515. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
  516. package/node_modules/@openrig/daemon/dist/domain/node-launcher.d.ts +3 -0
  517. package/node_modules/@openrig/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  518. package/node_modules/@openrig/daemon/dist/domain/node-launcher.js +21 -8
  519. package/node_modules/@openrig/daemon/dist/domain/node-launcher.js.map +1 -1
  520. package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.d.ts +22 -0
  521. package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -0
  522. package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.js +54 -0
  523. package/node_modules/@openrig/daemon/dist/domain/pane-binding-observation.js.map +1 -0
  524. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +1 -1
  525. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  526. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  527. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js +16 -2
  528. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  529. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts +12 -0
  530. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  531. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js +60 -0
  532. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js.map +1 -1
  533. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts +35 -0
  534. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -0
  535. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js +190 -0
  536. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -0
  537. package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.d.ts +1 -1
  538. package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +1 -1
  539. package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.js +28 -18
  540. package/node_modules/@openrig/daemon/dist/domain/provider/claude-usage-reader.js.map +1 -1
  541. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +5 -1
  542. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  543. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +6 -0
  544. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  545. package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts +3 -4
  546. package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  547. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js +5 -8
  548. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js.map +1 -1
  549. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +28 -0
  550. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  551. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +124 -0
  552. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
  553. package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.d.ts +34 -0
  554. package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.d.ts.map +1 -0
  555. package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.js +59 -0
  556. package/node_modules/@openrig/daemon/dist/domain/restore-attempt-receipt.js.map +1 -0
  557. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +57 -24
  558. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  559. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +152 -26
  560. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  561. package/node_modules/@openrig/daemon/dist/domain/restore-topology.d.ts +14 -0
  562. package/node_modules/@openrig/daemon/dist/domain/restore-topology.d.ts.map +1 -0
  563. package/node_modules/@openrig/daemon/dist/domain/restore-topology.js +27 -0
  564. package/node_modules/@openrig/daemon/dist/domain/restore-topology.js.map +1 -0
  565. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  566. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js +9 -0
  567. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  568. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +19 -0
  569. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  570. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +65 -1
  571. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  572. package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.d.ts +8 -0
  573. package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  574. package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.js +4 -0
  575. package/node_modules/@openrig/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  576. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts +23 -1
  577. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  578. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js +97 -46
  579. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  580. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  581. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js +15 -6
  582. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  583. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +47 -1
  584. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  585. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +525 -29
  586. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  587. package/node_modules/@openrig/daemon/dist/domain/session-registry.d.ts +8 -1
  588. package/node_modules/@openrig/daemon/dist/domain/session-registry.d.ts.map +1 -1
  589. package/node_modules/@openrig/daemon/dist/domain/session-registry.js +19 -0
  590. package/node_modules/@openrig/daemon/dist/domain/session-registry.js.map +1 -1
  591. package/node_modules/@openrig/daemon/dist/domain/skill-catalog.d.ts +81 -0
  592. package/node_modules/@openrig/daemon/dist/domain/skill-catalog.d.ts.map +1 -0
  593. package/node_modules/@openrig/daemon/dist/domain/skill-catalog.js +827 -0
  594. package/node_modules/@openrig/daemon/dist/domain/skill-catalog.js.map +1 -0
  595. package/node_modules/@openrig/daemon/dist/domain/skill-discovery.d.ts +3 -0
  596. package/node_modules/@openrig/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  597. package/node_modules/@openrig/daemon/dist/domain/skill-discovery.js +1 -1
  598. package/node_modules/@openrig/daemon/dist/domain/skill-discovery.js.map +1 -1
  599. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts +4 -1
  600. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  601. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +38 -2
  602. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
  603. package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.d.ts +15 -1
  604. package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  605. package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.js +103 -1
  606. package/node_modules/@openrig/daemon/dist/domain/snapshot-repository.js.map +1 -1
  607. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts +2 -0
  608. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  609. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js +12 -0
  610. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  611. package/node_modules/@openrig/daemon/dist/domain/system-world.d.ts +45 -0
  612. package/node_modules/@openrig/daemon/dist/domain/system-world.d.ts.map +1 -0
  613. package/node_modules/@openrig/daemon/dist/domain/system-world.js +123 -0
  614. package/node_modules/@openrig/daemon/dist/domain/system-world.js.map +1 -0
  615. package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.d.ts +7 -0
  616. package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.d.ts.map +1 -0
  617. package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.js +20 -0
  618. package/node_modules/@openrig/daemon/dist/domain/telemetry-state-paths.js.map +1 -0
  619. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +103 -4
  620. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  621. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  622. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +8 -3
  623. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  624. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +65 -29
  625. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  626. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -23
  627. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  628. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +44 -226
  629. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  630. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  631. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js +20 -6
  632. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  633. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts +33 -1
  634. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  635. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js +127 -2
  636. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  637. package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.d.ts +7 -5
  638. package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -1
  639. package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.js +27 -16
  640. package/node_modules/@openrig/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -1
  641. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts +6 -2
  642. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  643. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js +271 -2
  644. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js.map +1 -1
  645. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts +62 -2
  646. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  647. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js +334 -18
  648. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js.map +1 -1
  649. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts +9 -1
  650. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  651. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js +85 -0
  652. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  653. package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts +38 -1
  654. package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  655. package/node_modules/@openrig/daemon/dist/domain/workflow-types.js.map +1 -1
  656. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  657. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js +20 -3
  658. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js.map +1 -1
  659. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +38 -9
  660. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  661. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +93 -347
  662. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  663. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  664. package/node_modules/@openrig/daemon/dist/index.js +13 -0
  665. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  666. package/node_modules/@openrig/daemon/dist/instance-initialization-surface.d.ts +3 -0
  667. package/node_modules/@openrig/daemon/dist/instance-initialization-surface.d.ts.map +1 -0
  668. package/node_modules/@openrig/daemon/dist/instance-initialization-surface.js +3 -0
  669. package/node_modules/@openrig/daemon/dist/instance-initialization-surface.js.map +1 -0
  670. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts +3 -0
  671. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts.map +1 -0
  672. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.js +3 -0
  673. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.js.map +1 -0
  674. package/node_modules/@openrig/daemon/dist/routes/bundles.js +10 -9
  675. package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
  676. package/node_modules/@openrig/daemon/dist/routes/config.d.ts.map +1 -1
  677. package/node_modules/@openrig/daemon/dist/routes/config.js +27 -49
  678. package/node_modules/@openrig/daemon/dist/routes/config.js.map +1 -1
  679. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  680. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +114 -16
  681. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  682. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js +3 -0
  683. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js.map +1 -1
  684. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  685. package/node_modules/@openrig/daemon/dist/routes/queue.js +20 -0
  686. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  687. package/node_modules/@openrig/daemon/dist/routes/rigs.js +12 -1
  688. package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
  689. package/node_modules/@openrig/daemon/dist/routes/rigspec.js +9 -2
  690. package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +1 -1
  691. package/node_modules/@openrig/daemon/dist/routes/seat.js +21 -1
  692. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  693. package/node_modules/@openrig/daemon/dist/routes/sessions.js +16 -6
  694. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  695. package/node_modules/@openrig/daemon/dist/routes/snapshots.d.ts.map +1 -1
  696. package/node_modules/@openrig/daemon/dist/routes/snapshots.js +41 -3
  697. package/node_modules/@openrig/daemon/dist/routes/snapshots.js.map +1 -1
  698. package/node_modules/@openrig/daemon/dist/routes/up.js +12 -1
  699. package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
  700. package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts.map +1 -1
  701. package/node_modules/@openrig/daemon/dist/routes/watchdog.js +7 -6
  702. package/node_modules/@openrig/daemon/dist/routes/watchdog.js.map +1 -1
  703. package/node_modules/@openrig/daemon/dist/routes/workflow.d.ts.map +1 -1
  704. package/node_modules/@openrig/daemon/dist/routes/workflow.js +104 -39
  705. package/node_modules/@openrig/daemon/dist/routes/workflow.js.map +1 -1
  706. package/node_modules/@openrig/daemon/dist/server.d.ts +2 -0
  707. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  708. package/node_modules/@openrig/daemon/dist/server.js +1 -0
  709. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  710. package/node_modules/@openrig/daemon/dist/skill-loadout-surface.d.ts +3 -0
  711. package/node_modules/@openrig/daemon/dist/skill-loadout-surface.d.ts.map +1 -0
  712. package/node_modules/@openrig/daemon/dist/skill-loadout-surface.js +2 -0
  713. package/node_modules/@openrig/daemon/dist/skill-loadout-surface.js.map +1 -0
  714. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  715. package/node_modules/@openrig/daemon/dist/startup.js +72 -65
  716. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  717. package/node_modules/@openrig/daemon/dist/system-world-surface.d.ts +2 -0
  718. package/node_modules/@openrig/daemon/dist/system-world-surface.d.ts.map +1 -0
  719. package/node_modules/@openrig/daemon/dist/system-world-surface.js +2 -0
  720. package/node_modules/@openrig/daemon/dist/system-world-surface.js.map +1 -0
  721. package/node_modules/@openrig/daemon/package.json +17 -1
  722. package/package.json +1 -1
  723. package/tui/dist/commands/registry.d.ts.map +1 -1
  724. package/tui/dist/commands/registry.js +10 -1
  725. package/tui/dist/commands/registry.js.map +1 -1
  726. package/tui/dist/daemon-client.d.ts +11 -0
  727. package/tui/dist/daemon-client.d.ts.map +1 -1
  728. package/tui/dist/daemon-client.js +15 -0
  729. package/tui/dist/daemon-client.js.map +1 -1
  730. package/tui/dist/demo-data.d.ts.map +1 -1
  731. package/tui/dist/demo-data.js +65 -9
  732. package/tui/dist/demo-data.js.map +1 -1
  733. package/tui/dist/detail.d.ts +9 -0
  734. package/tui/dist/detail.d.ts.map +1 -1
  735. package/tui/dist/detail.js.map +1 -1
  736. package/tui/dist/execution/execution-model.d.ts +8 -2
  737. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  738. package/tui/dist/execution/execution-model.js +482 -119
  739. package/tui/dist/execution/execution-model.js.map +1 -1
  740. package/tui/dist/hydrate.d.ts +3 -2
  741. package/tui/dist/hydrate.d.ts.map +1 -1
  742. package/tui/dist/hydrate.js +66 -8
  743. package/tui/dist/hydrate.js.map +1 -1
  744. package/tui/dist/input.d.ts +6 -1
  745. package/tui/dist/input.d.ts.map +1 -1
  746. package/tui/dist/input.js +20 -10
  747. package/tui/dist/input.js.map +1 -1
  748. package/tui/dist/main.js +39 -8
  749. package/tui/dist/main.js.map +1 -1
  750. package/tui/dist/navigator.d.ts.map +1 -1
  751. package/tui/dist/navigator.js +10 -6
  752. package/tui/dist/navigator.js.map +1 -1
  753. package/tui/dist/render.d.ts.map +1 -1
  754. package/tui/dist/render.js +596 -155
  755. package/tui/dist/render.js.map +1 -1
  756. package/tui/dist/scopes/scopes-model.d.ts +14 -8
  757. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  758. package/tui/dist/scopes/scopes-model.js +218 -46
  759. package/tui/dist/scopes/scopes-model.js.map +1 -1
  760. package/tui/dist/socket-server.d.ts +13 -0
  761. package/tui/dist/socket-server.d.ts.map +1 -1
  762. package/tui/dist/socket-server.js +24 -0
  763. package/tui/dist/socket-server.js.map +1 -1
  764. package/tui/dist/state.d.ts.map +1 -1
  765. package/tui/dist/state.js +20 -6
  766. package/tui/dist/state.js.map +1 -1
  767. package/tui/dist/stylize.d.ts.map +1 -1
  768. package/tui/dist/stylize.js +22 -28
  769. package/tui/dist/stylize.js.map +1 -1
  770. package/tui/dist/theme.d.ts +1 -1
  771. package/tui/dist/theme.d.ts.map +1 -1
  772. package/tui/dist/theme.js +5 -4
  773. package/tui/dist/theme.js.map +1 -1
  774. package/tui/dist/types.d.ts +97 -1
  775. package/tui/dist/types.d.ts.map +1 -1
  776. package/tui/dist/visual-layout.d.ts +6 -0
  777. package/tui/dist/visual-layout.d.ts.map +1 -0
  778. package/tui/dist/visual-layout.js +8 -0
  779. package/tui/dist/visual-layout.js.map +1 -0
  780. package/ui/dist/assets/{index-B_wqzP0D.js → index-wyX378xb.js} +15 -15
  781. package/ui/dist/index.html +1 -1
@@ -22,51 +22,51 @@ export type CurrentRecordResolution = {
22
22
  ok: false;
23
23
  reason: string;
24
24
  };
25
- /** The pane process's claude session-id LAUNCH ARGUMENT — one CANDIDATE, never the answer alone:
26
- * measured on the live specimen, claude rolls session ids internally (the slice-13 lesson — the
27
- * argument records what was LAUNCHED; hooks report what RUNS), so the argument can be the stale
28
- * pointer while the sidecar is current. Feed it into LiveClaudeRecordSelector with the others. */
29
- export declare function paneClaudeSessionIdArgument(sessionTarget: string, deps: Pick<CurrentGenerationDeps, "getPanePid" | "listProcesses">): Promise<CurrentRecordResolution>;
30
- export interface ClaudeRecordCandidate {
31
- /** Where this candidate id came from (sidecar / registry / pane-argument) — rides the verdict. */
32
- source: string;
33
- id: string;
34
- /** Absolute transcript path for the id, when derivable. */
35
- path: string | null;
25
+ export interface ClaudeOccupantRecordInput {
26
+ sessionName: string;
27
+ generation: string | null;
28
+ occupantBootAt: string | null;
29
+ binding: {
30
+ tmuxSession: string | null;
31
+ tmuxPane: string | null;
32
+ } | null;
33
+ identity: {
34
+ verdict: string;
35
+ sessionName: string | null;
36
+ observedAt: string;
37
+ evidence: {
38
+ registeredPane: string | null;
39
+ observedPid: number | null;
40
+ };
41
+ } | null;
42
+ sidecar: {
43
+ session_id?: string;
44
+ session_name?: string;
45
+ transcript_path?: string;
46
+ sampled_at?: string;
47
+ occupant_generation?: string;
48
+ } | null;
36
49
  }
37
50
  export type ClaudeRecordSelection = {
38
51
  ok: true;
39
52
  id: string;
40
53
  path: string;
41
- source: string;
54
+ source: "generation-sidecar" | "verified-pane-argument";
42
55
  } | {
43
56
  ok: false;
44
57
  reason: string;
45
58
  };
46
- export interface RecordStat {
47
- mtimeMs: number;
48
- size: number;
49
- }
50
- /** The CURRENT claude record via CROSS-POLL OBSERVED ADVANCEMENT (r2 rounds 2-4 on this family):
51
- * neither existence, nor recency, nor a 1.5s in-poll sample proves a record is being written —
52
- * the in-poll window forgot everything between polls and oscillated truth/indeterminate with
53
- * write timing (r2 round-4). This selector is STATEFUL per seat:
54
- * - an id is readable if ANY of its candidate paths stats (all paths retained per id — r2's
55
- * adjacent pin: a dead sidecar path must not mask a readable registry-derived one).
56
- * - an UNREADABLE contender with a different id → ALWAYS a named INDETERMINATE.
57
- * - exactly one readable id, no differing unreadable contender → that record (unanimity).
58
- * - multiple readable ids → advancement is observed ACROSS POLLS: current stats vs the previous
59
- * poll's cached stats (the full poll interval is the observation window, catching every
60
- * intervening write). Exactly one record advanced → selected and RETAINED until the candidate
61
- * id set changes; none/several advanced → named INDETERMINATE, re-observed next poll. The
62
- * first observation of a disagreeing set is INDETERMINATE by construction (nothing to compare
63
- * against yet — named as such). */
64
- export declare class LiveClaudeRecordSelector {
65
- private readonly perSeat;
66
- select(seatKey: string, candidates: ClaudeRecordCandidate[], statRecord: (path: string) => RecordStat | null): ClaudeRecordSelection;
67
- private rememberStats;
68
- private rememberSelection;
69
- }
59
+ /** The pane process's Claude session-id LAUNCH ARGUMENT. It is authoritative only after the caller
60
+ * verifies the canonical binding and current pane identity. A current-generation sidecar may
61
+ * supersede it after a provider-internal session rollover. */
62
+ export declare function paneClaudeSessionIdArgument(sessionTarget: string, deps: Pick<CurrentGenerationDeps, "getPanePid" | "listProcesses">): Promise<CurrentRecordResolution>;
63
+ /**
64
+ * Resolve a Claude record only after the canonical seat's current occupant is joined to its
65
+ * registered pane and the pane's PID still matches the durable identity verdict. The pane's launch
66
+ * argument is the legacy identity anchor. A generation-stamped sidecar may supersede it after a
67
+ * provider-internal session rollover; an unstamped sidecar may locate files but cannot override it.
68
+ */
69
+ export declare function resolveIdentityVerifiedClaudeRecord(input: ClaudeOccupantRecordInput, deps: Pick<CurrentGenerationDeps, "getPanePid" | "listProcesses">, isReadableRecord: (path: string) => boolean): Promise<ClaudeRecordSelection>;
70
70
  /** The live codex occupant's thread id, via its own pid's log join — bypasses the stored resume
71
71
  * token entirely (the stored token is exactly what went stale on the specimen class). */
72
72
  export declare function resolveLiveCodexThreadId(sessionTarget: string, deps: CurrentGenerationDeps): Promise<CurrentRecordResolution>;
@@ -1 +1 @@
1
- {"version":3,"file":"current-generation-record.d.ts","sourceRoot":"","sources":["../../../src/domain/model-divergence/current-generation-record.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;;iEAG6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,aAAa,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3C;gFAC4E;IAC5E,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;CACzG;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA+BlC;;;mGAGmG;AACnG,wBAAsB,2BAA2B,CAC/C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,GAAG,eAAe,CAAC,GAChE,OAAO,CAAC,uBAAuB,CAAC,CAYlC;AAED,MAAM,WAAW,qBAAqB;IACpC,kGAAkG;IAClG,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;sCAasC;AACtC,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAInB;IAEL,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,qBAAqB,EAAE,EACnC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,GAC9C,qBAAqB;IAkFxB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;CAQ1B;AAMD;0FAC0F;AAC1F,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,uBAAuB,CAAC,CAWlC"}
1
+ {"version":3,"file":"current-generation-record.d.ts","sourceRoot":"","sources":["../../../src/domain/model-divergence/current-generation-record.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;;iEAG6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D,aAAa,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3C;gFAC4E;IAC5E,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;CACzG;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACxE,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE;YAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;KACzE,GAAG,IAAI,CAAC;IACT,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GAAG,IAAI,CAAC;CACV;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,oBAAoB,GAAG,wBAAwB,CAAA;CAAE,GAC/F;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA+BlC;;+DAE+D;AAC/D,wBAAsB,2BAA2B,CAC/C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,GAAG,eAAe,CAAC,GAChE,OAAO,CAAC,uBAAuB,CAAC,CAelC;AAED;;;;;GAKG;AACH,wBAAsB,mCAAmC,CACvD,KAAK,EAAE,yBAAyB,EAChC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,GAAG,eAAe,CAAC,EACjE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAC1C,OAAO,CAAC,qBAAqB,CAAC,CAwFhC;AAQD;0FAC0F;AAC1F,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,uBAAuB,CAAC,CAWlC"}
@@ -1,25 +1,8 @@
1
- // D-a (B8-family) — resolve the CURRENT OCCUPANT's provider record by RECORD-LIVENESS.
2
- //
3
- // Fourth cross-generation-keying lesson tonight, and this module's own first cut was specimen #4:
4
- // ~~"the pane's process tree is the only record that IS the occupant"~~ — WRONG, withdrawn by the
5
- // author before review. Measured on dev.planner: the pane process's --session-id ARGUMENT pointed
6
- // at a transcript dormant for a day (reading an old model), while the sidecar/registry id matched
7
- // the transcript being APPENDED that minute (reading the pinned model). Claude rolls session ids
8
- // internally — the launch argument records what was LAUNCHED; hooks report what RUNS (the slice-13
9
- // lesson, met again from the other side). On the B16 specimen the SIDECAR was the stale one. So no
10
- // single pointer — argument, sidecar, or registry row — is generation-true.
11
- //
12
- // What IS generation-true: the record being WRITTEN. LiveClaudeRecordSelector gathers every candidate
13
- // session id this seat is associated with (sidecar, newest registry hook row, pane argument),
14
- // resolves each to its transcript, and selects the freshest-mtime one. Codex differs: the
15
- // pid-to-logs join reads the live process's OWN log rows, so it needs no selection.
16
- //
17
- // Also measured: occupant_tenures.native_session_id_at_boot is NULL on every tenure on this box
18
- // (the ledger join the fix shape named is unpopulated — flagged upstream; when backfilled it joins
19
- // the candidate set, it does not replace liveness).
20
- //
21
- // All process reads are async (the F1/B12 discipline). Every no-answer is a NAMED reason, never a
22
- // silent fall-through — the ruled shape: honest INDETERMINATE over a masked stale read.
1
+ // Resolve the CURRENT OCCUPANT's provider record through the registered pane and its verified
2
+ // process identity. Transcript metadata is consulted only after that physical/occupant join holds.
3
+ // A registry token is continuity metadata, not live identity, and transcript recency is never an
4
+ // identity tie-breaker: a deliberately retained predecessor may keep writing forever.
5
+ import { dirname, join } from "node:path";
23
6
  /** Descendants of `parentPid` whose command matches `matches`, breadth-first. (Deliberately local:
24
7
  * the two existing walkers are module-private in the codex adapter and the refresher; a shared
25
8
  * extraction is a cleanup for calmer water.) */
@@ -48,10 +31,9 @@ function commandBasenameIs(name) {
48
31
  return unquoted.split("/").pop() === name;
49
32
  });
50
33
  }
51
- /** The pane process's claude session-id LAUNCH ARGUMENT — one CANDIDATE, never the answer alone:
52
- * measured on the live specimen, claude rolls session ids internally (the slice-13 lesson — the
53
- * argument records what was LAUNCHED; hooks report what RUNS), so the argument can be the stale
54
- * pointer while the sidecar is current. Feed it into LiveClaudeRecordSelector with the others. */
34
+ /** The pane process's Claude session-id LAUNCH ARGUMENT. It is authoritative only after the caller
35
+ * verifies the canonical binding and current pane identity. A current-generation sidecar may
36
+ * supersede it after a provider-internal session rollover. */
55
37
  export async function paneClaudeSessionIdArgument(sessionTarget, deps) {
56
38
  const panePid = await deps.getPanePid(sessionTarget);
57
39
  if (!panePid)
@@ -60,129 +42,116 @@ export async function paneClaudeSessionIdArgument(sessionTarget, deps) {
60
42
  const claudePids = findDescendants(processes, panePid, commandBasenameIs("claude"));
61
43
  if (claudePids.length === 0)
62
44
  return { ok: false, reason: `no claude process under the live pane of ${sessionTarget}` };
45
+ const ids = new Set();
63
46
  for (const pid of claudePids) {
64
47
  const command = processes.find((p) => p.pid === pid)?.command ?? "";
65
48
  const match = command.match(/--session-id[= ]([0-9a-f-]{36})/) ?? command.match(/--resume[= ]([0-9a-f-]{36})/);
66
49
  if (match?.[1])
67
- return { ok: true, id: match[1] };
50
+ ids.add(match[1]);
68
51
  }
52
+ if (ids.size === 1)
53
+ return { ok: true, id: [...ids][0] };
54
+ if (ids.size > 1)
55
+ return { ok: false, reason: `multiple claude session ids under the live pane of ${sessionTarget}: ${[...ids].join(", ")}` };
69
56
  return { ok: false, reason: `live claude process under ${sessionTarget} carries no --session-id/--resume argument` };
70
57
  }
71
- /** The CURRENT claude record via CROSS-POLL OBSERVED ADVANCEMENT (r2 rounds 2-4 on this family):
72
- * neither existence, nor recency, nor a 1.5s in-poll sample proves a record is being written —
73
- * the in-poll window forgot everything between polls and oscillated truth/indeterminate with
74
- * write timing (r2 round-4). This selector is STATEFUL per seat:
75
- * - an id is readable if ANY of its candidate paths stats (all paths retained per id — r2's
76
- * adjacent pin: a dead sidecar path must not mask a readable registry-derived one).
77
- * - an UNREADABLE contender with a different id → ALWAYS a named INDETERMINATE.
78
- * - exactly one readable id, no differing unreadable contender → that record (unanimity).
79
- * - multiple readable ids → advancement is observed ACROSS POLLS: current stats vs the previous
80
- * poll's cached stats (the full poll interval is the observation window, catching every
81
- * intervening write). Exactly one record advanced → selected and RETAINED until the candidate
82
- * id set changes; none/several advanced → named INDETERMINATE, re-observed next poll. The
83
- * first observation of a disagreeing set is INDETERMINATE by construction (nothing to compare
84
- * against yet — named as such). */
85
- export class LiveClaudeRecordSelector {
86
- perSeat = new Map();
87
- select(seatKey, candidates, statRecord) {
88
- // Dedupe by id, RETAINING every path offered for the id (first source labels it).
89
- const byId = new Map();
90
- for (const c of candidates) {
91
- if (!c.id)
92
- continue;
93
- const entry = byId.get(c.id) ?? { source: c.source, paths: [] };
94
- if (c.path && !entry.paths.includes(c.path))
95
- entry.paths.push(c.path);
96
- byId.set(c.id, entry);
97
- }
98
- const readable = [];
99
- const unreadable = [];
100
- for (const [id, { source, paths }] of byId) {
101
- let hit = null;
102
- for (const path of paths) {
103
- const stat = statRecord(path);
104
- if (stat) {
105
- hit = { path, stat };
106
- break;
107
- }
108
- }
109
- if (hit)
110
- readable.push({ id, path: hit.path, source, stat: hit.stat });
111
- else
112
- unreadable.push(`${source}:${id.slice(0, 8)}… (${paths.length ? "no file" : "no path"})`);
113
- }
114
- if (readable.length === 0) {
115
- this.perSeat.delete(seatKey);
116
- return { ok: false, reason: `no readable transcript for any candidate session (${unreadable.join(", ") || "no candidates"})` };
117
- }
118
- if (unreadable.length > 0) {
119
- // ALWAYS indeterminate: the unreadable contender may be the current record before its first
120
- // readable byte — confident stale truth here is the exact defect class.
121
- this.rememberStats(seatKey, byIdKey(byId), readable);
122
- return {
123
- ok: false,
124
- reason: `candidate sessions disagree and ${unreadable.length} contender(s) are unreadable (${unreadable.join(", ")}; readable: ${readable.map((r) => `${r.source}:${r.id.slice(0, 8)}…`).join(", ")}) — the unreadable one may be the record being written`,
125
- };
126
- }
127
- if (readable.length === 1) {
128
- const only = readable[0];
129
- this.rememberSelection(seatKey, byIdKey(byId), readable, only);
130
- return { ok: true, id: only.id, path: only.path, source: only.source };
131
- }
132
- const idSetKey = byIdKey(byId);
133
- const state = this.perSeat.get(seatKey);
134
- const retainedCurrent = state && state.idSetKey === idSetKey && state.selected
135
- ? readable.find((r) => r.id === state.selected.id)
136
- : undefined;
137
- if (retainedCurrent) {
138
- // RETAIN the resolved ID until the candidate set changes (r2 round-4 remedy) — but rebind
139
- // path/source to THIS poll's readable entry (r2 round-5): the cached path can die while a
140
- // same-id fallback path stays readable, and returning the cached path verbatim is the
141
- // temporal form of the dead-first-path-masks-readable-second defect.
142
- const selected = { id: retainedCurrent.id, path: retainedCurrent.path, source: retainedCurrent.source };
143
- this.rememberSelection(seatKey, idSetKey, readable, selected);
144
- return { ok: true, ...selected };
145
- }
146
- const prev = state && state.idSetKey === idSetKey ? state.prevStats : null;
147
- if (prev) {
148
- const advanced = readable.filter((r) => {
149
- const before = prev.get(r.id);
150
- return before !== undefined && (before.size !== r.stat.size || before.mtimeMs !== r.stat.mtimeMs);
151
- });
152
- if (advanced.length === 1) {
153
- const winner = advanced[0];
154
- const selected = { id: winner.id, path: winner.path, source: winner.source };
155
- this.rememberSelection(seatKey, idSetKey, readable, selected);
156
- return { ok: true, ...selected };
157
- }
158
- this.rememberStats(seatKey, idSetKey, readable);
159
- return {
160
- ok: false,
161
- reason: `candidate sessions disagree (${readable.map((r) => `${r.source}:${r.id.slice(0, 8)}…`).join(", ")}) and ` +
162
- (advanced.length === 0
163
- ? "no record advanced since the previous poll — idle; re-observed next poll"
164
- : `${advanced.length} records advanced since the previous poll — genuinely ambiguous`),
165
- };
166
- }
167
- this.rememberStats(seatKey, idSetKey, readable);
58
+ /**
59
+ * Resolve a Claude record only after the canonical seat's current occupant is joined to its
60
+ * registered pane and the pane's PID still matches the durable identity verdict. The pane's launch
61
+ * argument is the legacy identity anchor. A generation-stamped sidecar may supersede it after a
62
+ * provider-internal session rollover; an unstamped sidecar may locate files but cannot override it.
63
+ */
64
+ export async function resolveIdentityVerifiedClaudeRecord(input, deps, isReadableRecord) {
65
+ if (!input.generation) {
66
+ return { ok: false, reason: `current occupant generation is unknown for ${input.sessionName}` };
67
+ }
68
+ if (!input.occupantBootAt || !Number.isFinite(Date.parse(input.occupantBootAt))) {
69
+ return { ok: false, reason: `current occupant boot time is unknown for ${input.sessionName}` };
70
+ }
71
+ const binding = input.binding;
72
+ if (!binding?.tmuxPane || binding.tmuxSession !== input.sessionName) {
73
+ return { ok: false, reason: `no canonical tmux pane binding for ${input.sessionName}` };
74
+ }
75
+ const identity = input.identity;
76
+ if (!identity || identity.verdict !== "verified") {
77
+ return { ok: false, reason: `no verified pane identity for ${input.sessionName}${identity ? ` (verdict ${identity.verdict})` : ""}` };
78
+ }
79
+ if (identity.sessionName !== input.sessionName) {
80
+ return { ok: false, reason: `verified identity names ${identity.sessionName ?? "no session"}, not ${input.sessionName}` };
81
+ }
82
+ if (identity.evidence.registeredPane !== binding.tmuxPane) {
83
+ return { ok: false, reason: `verified identity's registered pane does not match binding ${binding.tmuxPane}` };
84
+ }
85
+ const observedAt = Date.parse(identity.observedAt);
86
+ if (!Number.isFinite(observedAt) || observedAt < Date.parse(input.occupantBootAt)) {
87
+ return { ok: false, reason: `verified pane identity predates occupant generation ${input.generation}` };
88
+ }
89
+ if (identity.evidence.observedPid === null) {
90
+ return { ok: false, reason: `verified pane identity carries no observed pid for ${input.sessionName}` };
91
+ }
92
+ const panePid = await deps.getPanePid(binding.tmuxPane);
93
+ if (!panePid)
94
+ return { ok: false, reason: `registered pane ${binding.tmuxPane} has no live pid` };
95
+ if (panePid !== identity.evidence.observedPid) {
168
96
  return {
169
97
  ok: false,
170
- reason: `candidate sessions disagree (${readable.map((r) => `${r.source}:${r.id.slice(0, 8)}…`).join(", ")}) — first observation of this candidate set; advancement compares from the next poll`,
98
+ reason: `registered pane pid changed since identity verification (${identity.evidence.observedPid} -> ${panePid})`,
171
99
  };
172
100
  }
173
- rememberStats(seatKey, idSetKey, readable, selected = null) {
174
- this.perSeat.set(seatKey, {
175
- idSetKey,
176
- prevStats: new Map(readable.map((r) => [r.id, r.stat])),
177
- selected,
178
- });
101
+ const processes = await deps.listProcesses();
102
+ const claudePids = findDescendants(processes, panePid, commandBasenameIs("claude"));
103
+ if (claudePids.length === 0) {
104
+ return { ok: false, reason: `no claude process under verified pane ${binding.tmuxPane}` };
179
105
  }
180
- rememberSelection(seatKey, idSetKey, readable, selected) {
181
- this.rememberStats(seatKey, idSetKey, readable, selected);
106
+ const paneIds = new Set();
107
+ for (const pid of claudePids) {
108
+ const command = processes.find((process) => process.pid === pid)?.command ?? "";
109
+ const match = command.match(/--session-id[= ]([0-9a-f-]{36})/) ?? command.match(/--resume[= ]([0-9a-f-]{36})/);
110
+ if (match?.[1])
111
+ paneIds.add(match[1]);
112
+ }
113
+ if (paneIds.size === 0) {
114
+ return { ok: false, reason: `claude process under verified pane ${binding.tmuxPane} carries no session id` };
115
+ }
116
+ if (paneIds.size > 1) {
117
+ return { ok: false, reason: `multiple claude session ids under verified pane ${binding.tmuxPane}: ${[...paneIds].join(", ")}` };
118
+ }
119
+ const paneId = [...paneIds][0];
120
+ const sidecar = input.sidecar;
121
+ const sidecarPath = cleanString(sidecar?.transcript_path);
122
+ const sidecarId = cleanString(sidecar?.session_id);
123
+ const sidecarGeneration = cleanString(sidecar?.occupant_generation);
124
+ // A current-generation sidecar is the supported provider-rollover signal. Its generation stamp
125
+ // comes from the managed occupant's launch environment, so a retained predecessor carries its
126
+ // old generation even when its launch-time --name aliases the canonical seat.
127
+ if (sidecarGeneration === input.generation && sidecarId && sidecarPath) {
128
+ const sampledAt = Date.parse(cleanString(sidecar?.sampled_at) ?? "");
129
+ if (sidecar?.session_name === input.sessionName
130
+ && Number.isFinite(sampledAt)
131
+ && sampledAt >= Date.parse(input.occupantBootAt)
132
+ && isReadableRecord(sidecarPath)) {
133
+ return { ok: true, id: sidecarId, path: sidecarPath, source: "generation-sidecar" };
134
+ }
135
+ }
136
+ // Legacy sidecars have no occupant-generation stamp. They may locate the project transcript
137
+ // directory, but the verified pane's own launch id chooses the file. No registry token and no
138
+ // mtime participate in this decision.
139
+ if (sidecarPath) {
140
+ const panePath = sidecarId === paneId ? sidecarPath : join(dirname(sidecarPath), `${paneId}.jsonl`);
141
+ if (isReadableRecord(panePath)) {
142
+ return { ok: true, id: paneId, path: panePath, source: "verified-pane-argument" };
143
+ }
182
144
  }
145
+ return {
146
+ ok: false,
147
+ reason: `verified occupant ${input.generation} resolves native session ${paneId}, but its transcript is unreadable`,
148
+ };
183
149
  }
184
- function byIdKey(byId) {
185
- return [...byId.keys()].sort().join("|");
150
+ function cleanString(value) {
151
+ if (typeof value !== "string")
152
+ return null;
153
+ const trimmed = value.trim();
154
+ return trimmed.length > 0 ? trimmed : null;
186
155
  }
187
156
  /** The live codex occupant's thread id, via its own pid's log join — bypasses the stored resume
188
157
  * token entirely (the stored token is exactly what went stale on the specimen class). */
@@ -1 +1 @@
1
- {"version":3,"file":"current-generation-record.js","sourceRoot":"","sources":["../../../src/domain/model-divergence/current-generation-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"current-generation-record.js","sourceRoot":"","sources":["../../../src/domain/model-divergence/current-generation-record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface NativeProcessRow {
2
+ pid: number;
3
+ ppid: number;
4
+ command: string;
5
+ }
6
+ export type NativeRuntime = "claude-code" | "codex";
7
+ /** Require a live process in the pane's own lineage whose argv names both the
8
+ * declared runtime and the exact native resume identity. */
9
+ export declare function findExactNativeResumeProcess(processes: NativeProcessRow[], panePid: number, runtime: string | null, expectedToken: string): NativeProcessRow | null;
10
+ //# sourceMappingURL=native-process-lineage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-process-lineage.d.ts","sourceRoot":"","sources":["../../src/domain/native-process-lineage.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;AAiDpD;4DAC4D;AAC5D,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,gBAAgB,EAAE,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,aAAa,EAAE,MAAM,GACpB,gBAAgB,GAAG,IAAI,CAoBzB"}
@@ -0,0 +1,86 @@
1
+ function tokens(command) {
2
+ return command.match(/"[^"]*"|'[^']*'|\S+/g)?.map((token) => token.replace(/^['"]|['"]$/g, "")) ?? [];
3
+ }
4
+ function executableName(token) {
5
+ return (token.split("/").pop() ?? token).toLowerCase().replace(/\.exe$/, "");
6
+ }
7
+ function commandUsesExpectedToken(command, runtime, expectedToken) {
8
+ const argv = tokens(command);
9
+ const executable = runtime === "claude-code" ? "claude" : "codex";
10
+ const executableIndex = argv.findIndex((token) => executableName(token) === executable);
11
+ if (executableIndex < 0)
12
+ return false;
13
+ const args = argv.slice(executableIndex + 1);
14
+ if (runtime === "claude-code") {
15
+ for (let index = 0; index < args.length; index += 1) {
16
+ const arg = args[index];
17
+ if ((arg === "--resume" || arg === "--session-id") && args[index + 1] === expectedToken)
18
+ return true;
19
+ if (arg === `--resume=${expectedToken}` || arg === `--session-id=${expectedToken}`)
20
+ return true;
21
+ }
22
+ return false;
23
+ }
24
+ const topLevelOptionsWithValues = new Set([
25
+ "-a", "--ask-for-approval", "-c", "--config", "-m", "--model",
26
+ "-p", "--profile", "-s", "--sandbox",
27
+ ]);
28
+ let resumeIndex = -1;
29
+ for (let index = 0; index < args.length; index += 1) {
30
+ const arg = args[index];
31
+ if (topLevelOptionsWithValues.has(arg)) {
32
+ index += 1;
33
+ continue;
34
+ }
35
+ if (arg.startsWith("-"))
36
+ continue;
37
+ if (arg === "resume")
38
+ resumeIndex = index;
39
+ break;
40
+ }
41
+ if (resumeIndex < 0)
42
+ return false;
43
+ const resumeArgs = args.slice(resumeIndex + 1);
44
+ let index = 0;
45
+ while (index < resumeArgs.length) {
46
+ const arg = resumeArgs[index];
47
+ if (arg === "--add-dir") {
48
+ index += 2;
49
+ continue;
50
+ }
51
+ if (arg.startsWith("-")) {
52
+ index += 1;
53
+ continue;
54
+ }
55
+ return arg === expectedToken;
56
+ }
57
+ return false;
58
+ }
59
+ /** Require a live process in the pane's own lineage whose argv names both the
60
+ * declared runtime and the exact native resume identity. */
61
+ export function findExactNativeResumeProcess(processes, panePid, runtime, expectedToken) {
62
+ if (runtime !== "claude-code" && runtime !== "codex")
63
+ return null;
64
+ const byParent = new Map();
65
+ for (const process of processes) {
66
+ const children = byParent.get(process.ppid) ?? [];
67
+ children.push(process);
68
+ byParent.set(process.ppid, children);
69
+ }
70
+ const byPid = new Map(processes.map((process) => [process.pid, process]));
71
+ const queue = [panePid];
72
+ const visited = new Set();
73
+ while (queue.length > 0) {
74
+ const pid = queue.shift();
75
+ if (visited.has(pid))
76
+ continue;
77
+ visited.add(pid);
78
+ const process = byPid.get(pid);
79
+ if (process && commandUsesExpectedToken(process.command, runtime, expectedToken))
80
+ return process;
81
+ for (const child of byParent.get(pid) ?? [])
82
+ queue.push(child.pid);
83
+ }
84
+ return null;
85
+ }
86
+ //# sourceMappingURL=native-process-lineage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-process-lineage.js","sourceRoot":"","sources":["../../src/domain/native-process-lineage.ts"],"names":[],"mappings":"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"}
@@ -203,6 +203,18 @@ function looksLikeClaudeTrustPrompt(paneContent) {
203
203
  // operator choose; later reconciliation upgrades to `operator_recovered` only
204
204
  // when the operator reaches a usable state.
205
205
  function looksLikeClaudeResumeSelectionPrompt(paneContent) {
206
+ // Current Claude chooser (observed 2026-09-04) asks which fidelity to
207
+ // resume with. Require the heading, both option rows, and a selection cursor;
208
+ // prose containing the labels is intentionally insufficient.
209
+ const recentLines = paneContent.split("\n").slice(-30);
210
+ const currentChooserHeading = recentLines.some((line) => line.trim() === "How would you like to resume?");
211
+ const currentChooserOptions = recentLines.filter((line) => /^\s*(?:[❯›]\s+)?(?:Resume from summary|Resume full session as-is)\s*$/.test(line));
212
+ const currentChooserSelection = currentChooserOptions.some((line) => /^\s*[❯›]\s+/.test(line));
213
+ if (currentChooserHeading
214
+ && currentChooserSelection
215
+ && currentChooserOptions.some((line) => line.includes("Resume from summary"))
216
+ && currentChooserOptions.some((line) => line.includes("Resume full session as-is")))
217
+ return true;
206
218
  // Stable substring is the explicit "Choose ... conversation" verb plus the
207
219
  // numbered/arrow option marker that Claude prints. Both must be present so
208
220
  // we don't false-positive on similar TUI strings.
@@ -212,7 +224,6 @@ function looksLikeClaudeResumeSelectionPrompt(paneContent) {
212
224
  if (!hasChooseVerb)
213
225
  return false;
214
226
  // Look for the numbered/arrow option marker in recent lines.
215
- const recentLines = paneContent.split("\n").slice(-30);
216
227
  const numberedOption = recentLines.some((line) => /^\s*(?:›\s*)?\d+\.\s+\S/.test(line));
217
228
  return numberedOption;
218
229
  }