@openrig/cli 0.6.7 → 0.6.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 (261) hide show
  1. package/README.md +6 -4
  2. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +41 -2
  3. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +18 -4
  4. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +218 -7
  5. package/daemon/context-packs/help/manifest.yaml +1 -1
  6. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  7. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +40 -13
  8. package/daemon/context-packs/reference/getting-started.md +2 -2
  9. package/daemon/context-packs/reference/instance-layout.md +5 -0
  10. package/daemon/context-packs/reference/manifest.yaml +1 -1
  11. package/daemon/context-packs/reference/rig-spec.md +12 -9
  12. package/daemon/context-packs/reference/whats-new.md +71 -114
  13. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  14. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  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/SKILL.md +1 -0
  20. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  21. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +18 -4
  23. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +3 -0
  25. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +15 -14
  31. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  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/refocusing/scripts/trace-to-root.py +218 -7
  66. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  70. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  71. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  72. package/daemon/dist/build-info.js +3 -3
  73. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  74. package/daemon/dist/db/all-migrations.js +2 -0
  75. package/daemon/dist/db/all-migrations.js.map +1 -1
  76. package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.d.ts +3 -0
  77. package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.d.ts.map +1 -0
  78. package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.js +12 -0
  79. package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.js.map +1 -0
  80. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +23 -2
  81. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  82. package/daemon/dist/domain/claude-compaction-enforcer.js +153 -94
  83. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  84. package/daemon/dist/domain/context-monitor.d.ts +5 -0
  85. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  86. package/daemon/dist/domain/context-monitor.js +21 -6
  87. package/daemon/dist/domain/context-monitor.js.map +1 -1
  88. package/daemon/dist/domain/current-work.d.ts +74 -0
  89. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  90. package/daemon/dist/domain/current-work.js +165 -0
  91. package/daemon/dist/domain/current-work.js.map +1 -1
  92. package/daemon/dist/domain/gateway/connections-projection.d.ts +2 -0
  93. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  94. package/daemon/dist/domain/gateway/connections-projection.js +3 -1
  95. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  96. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +3 -1
  97. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  98. package/daemon/dist/domain/gateway/gateway-subsystem.js +3 -1
  99. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  100. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  101. package/daemon/dist/domain/gateway/slack/inbound.js +1 -0
  102. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  103. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +5 -0
  104. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  105. package/daemon/dist/domain/gateway/slack/queue-access.js +6 -1
  106. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  107. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +7 -2
  108. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  109. package/daemon/dist/domain/gateway/slack/slack-api.js +35 -3
  110. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  111. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +4 -0
  112. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  113. package/daemon/dist/domain/gateway/slack/slack-delivery.js +16 -1
  114. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  115. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +17 -0
  116. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  117. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +92 -34
  118. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  119. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +37 -0
  120. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  121. package/daemon/dist/domain/gateway/slack/socket-inbound.js +281 -38
  122. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  123. package/daemon/dist/domain/gateway/slack/state-store.d.ts +14 -1
  124. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  125. package/daemon/dist/domain/gateway/slack/state-store.js +16 -0
  126. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  127. package/daemon/dist/domain/human-questions.d.ts +12 -3
  128. package/daemon/dist/domain/human-questions.d.ts.map +1 -1
  129. package/daemon/dist/domain/human-questions.js +10 -5
  130. package/daemon/dist/domain/human-questions.js.map +1 -1
  131. package/daemon/dist/domain/kernel-boot-tracker.d.ts +20 -1
  132. package/daemon/dist/domain/kernel-boot-tracker.d.ts.map +1 -1
  133. package/daemon/dist/domain/kernel-boot-tracker.js +66 -14
  134. package/daemon/dist/domain/kernel-boot-tracker.js.map +1 -1
  135. package/daemon/dist/domain/kernel-boot.d.ts +4 -0
  136. package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
  137. package/daemon/dist/domain/kernel-boot.js +26 -1
  138. package/daemon/dist/domain/kernel-boot.js.map +1 -1
  139. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  140. package/daemon/dist/domain/native-process-lineage.js +44 -9
  141. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  142. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  143. package/daemon/dist/domain/profile-resolver.js +54 -15
  144. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  145. package/daemon/dist/domain/queue-nudge-text.d.ts +4 -0
  146. package/daemon/dist/domain/queue-nudge-text.d.ts.map +1 -0
  147. package/daemon/dist/domain/queue-nudge-text.js +35 -0
  148. package/daemon/dist/domain/queue-nudge-text.js.map +1 -0
  149. package/daemon/dist/domain/queue-repository.d.ts +17 -0
  150. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  151. package/daemon/dist/domain/queue-repository.js +58 -7
  152. package/daemon/dist/domain/queue-repository.js.map +1 -1
  153. package/daemon/dist/domain/queue-transition-log.d.ts +12 -4
  154. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  155. package/daemon/dist/domain/queue-transition-log.js +24 -0
  156. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  157. package/daemon/dist/domain/restore-orchestrator.d.ts +1 -0
  158. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  159. package/daemon/dist/domain/restore-orchestrator.js +17 -11
  160. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  161. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  162. package/daemon/dist/domain/rig-teardown.js +6 -0
  163. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  164. package/daemon/dist/domain/scope/scope-approve.d.ts +21 -0
  165. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  166. package/daemon/dist/domain/scope/scope-approve.js +48 -4
  167. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  168. package/daemon/dist/domain/session-transport.d.ts +12 -1
  169. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  170. package/daemon/dist/domain/session-transport.js +33 -7
  171. package/daemon/dist/domain/session-transport.js.map +1 -1
  172. package/daemon/dist/domain/skill-catalog.d.ts +11 -0
  173. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  174. package/daemon/dist/domain/skill-catalog.js +136 -12
  175. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  176. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  177. package/daemon/dist/domain/workflow-validator.js +22 -1
  178. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  179. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  180. package/daemon/dist/routes/gateway.js +2 -0
  181. package/daemon/dist/routes/gateway.js.map +1 -1
  182. package/daemon/dist/routes/kernel-status.js +3 -1
  183. package/daemon/dist/routes/kernel-status.js.map +1 -1
  184. package/daemon/dist/routes/queue.d.ts.map +1 -1
  185. package/daemon/dist/routes/queue.js +17 -2
  186. package/daemon/dist/routes/queue.js.map +1 -1
  187. package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
  188. package/daemon/dist/routes/scope-approve.js +3 -0
  189. package/daemon/dist/routes/scope-approve.js.map +1 -1
  190. package/daemon/dist/routes/sessions.js +1 -1
  191. package/daemon/dist/routes/sessions.js.map +1 -1
  192. package/daemon/docs/reference/agent-startup-guide.md +1 -1
  193. package/daemon/docs/reference/bundle-formats.md +1 -1
  194. package/daemon/docs/reference/getting-started.md +2 -2
  195. package/daemon/docs/reference/instance-layout.md +5 -0
  196. package/daemon/docs/reference/publishing-a-rig-bundle.md +4 -2
  197. package/daemon/docs/reference/refocus-channel.md +33 -0
  198. package/daemon/docs/reference/rig-spec.md +12 -9
  199. package/daemon/docs/reference/slack-app-setup.md +18 -1
  200. package/daemon/docs/reference/topology-naming.md +74 -0
  201. package/daemon/docs/reference/whats-new.md +71 -114
  202. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +1 -0
  203. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +18 -4
  204. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +3 -0
  205. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +15 -14
  206. package/dist/build-info.js +3 -3
  207. package/dist/commands/chatroom.d.ts.map +1 -1
  208. package/dist/commands/chatroom.js +25 -5
  209. package/dist/commands/chatroom.js.map +1 -1
  210. package/dist/commands/context.d.ts.map +1 -1
  211. package/dist/commands/context.js +8 -0
  212. package/dist/commands/context.js.map +1 -1
  213. package/dist/commands/launch.d.ts.map +1 -1
  214. package/dist/commands/launch.js +114 -8
  215. package/dist/commands/launch.js.map +1 -1
  216. package/dist/commands/proof.js +1 -1
  217. package/dist/commands/proof.js.map +1 -1
  218. package/dist/commands/queue.d.ts.map +1 -1
  219. package/dist/commands/queue.js +3 -0
  220. package/dist/commands/queue.js.map +1 -1
  221. package/dist/commands/scope.d.ts.map +1 -1
  222. package/dist/commands/scope.js +11 -2
  223. package/dist/commands/scope.js.map +1 -1
  224. package/dist/commands/send.d.ts.map +1 -1
  225. package/dist/commands/send.js +23 -5
  226. package/dist/commands/send.js.map +1 -1
  227. package/dist/commands/skill.d.ts.map +1 -1
  228. package/dist/commands/skill.js +6 -0
  229. package/dist/commands/skill.js.map +1 -1
  230. package/dist/commands/slack.d.ts +17 -0
  231. package/dist/commands/slack.d.ts.map +1 -1
  232. package/dist/commands/slack.js +41 -0
  233. package/dist/commands/slack.js.map +1 -1
  234. package/dist/commands/status.d.ts.map +1 -1
  235. package/dist/commands/status.js +5 -0
  236. package/dist/commands/status.js.map +1 -1
  237. package/dist/cross-host-types.d.ts +1 -1
  238. package/dist/cross-host-types.d.ts.map +1 -1
  239. package/dist/launch-plan-guard.d.ts +27 -0
  240. package/dist/launch-plan-guard.d.ts.map +1 -0
  241. package/dist/launch-plan-guard.js +73 -0
  242. package/dist/launch-plan-guard.js.map +1 -0
  243. package/dist/lib/scope/scope-fs.d.ts +13 -0
  244. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  245. package/dist/lib/scope/scope-fs.js +28 -4
  246. package/dist/lib/scope/scope-fs.js.map +1 -1
  247. package/dist/remote-host-ops.d.ts +4 -0
  248. package/dist/remote-host-ops.d.ts.map +1 -1
  249. package/dist/remote-host-ops.js +20 -2
  250. package/dist/remote-host-ops.js.map +1 -1
  251. package/package.json +2 -2
  252. package/tui/dist/commands/registry.js +1 -1
  253. package/tui/dist/connections/connections-model.d.ts +5 -0
  254. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  255. package/tui/dist/connections/connections-model.js +16 -1
  256. package/tui/dist/connections/connections-model.js.map +1 -1
  257. package/tui/dist/main.js +16 -4
  258. package/tui/dist/main.js.map +1 -1
  259. package/tui/dist/render.js +1 -1
  260. package/tui/dist/scopes/scopes-model.js +4 -4
  261. package/tui/dist/types.d.ts +1 -1
@@ -8,8 +8,16 @@ export interface HumanQuestion {
8
8
  question: string;
9
9
  options: HumanQuestionOption[];
10
10
  }
11
- /** questionId → chosen optionId. */
12
- export type HumanAnswers = Record<string, string>;
11
+ /** A whole thread reply, not a button choice or a human-selected question. */
12
+ export interface TypedHumanReply {
13
+ kind: "typed-reply";
14
+ text: string;
15
+ placement: "first-unanswered";
16
+ /** Other question slots still empty immediately after this reply's placement. */
17
+ unansweredCount: number;
18
+ }
19
+ /** questionId → chosen optionId (string) or explicitly tagged whole typed reply. */
20
+ export type HumanAnswers = Record<string, string | TypedHumanReply>;
13
21
  /** The outcome of recording one clicked answer (QueueRepository.recordHumanAnswer). */
14
22
  export type RecordHumanAnswerResult = {
15
23
  status: "recorded";
@@ -34,7 +42,8 @@ export type HumanQuestionsParse = {
34
42
  };
35
43
  /** Validate an authored questions value. Returns a normalized copy (only known fields kept). */
36
44
  export declare function parseHumanQuestions(value: unknown): HumanQuestionsParse;
37
- /** One "question: chosen label" line per answered question, in question order. */
45
+ export declare function describeTypedReplyPlacement(question: HumanQuestion, reply: TypedHumanReply): string;
46
+ /** Button choices use option labels; typed replies keep their words and placement provenance. */
38
47
  export declare function formatHumanAnswers(questions: readonly HumanQuestion[], answers: HumanAnswers): string[];
39
48
  /** The questions still waiting for an answer. */
40
49
  export declare function unansweredQuestions(questions: readonly HumanQuestion[], answers: HumanAnswers): HumanQuestion[];
@@ -1 +1 @@
1
- {"version":3,"file":"human-questions.d.ts","sourceRoot":"","sources":["../../src/domain/human-questions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD,uFAAuF;AACvF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,aAAa,EAAE,CAAA;CAAE,GAC5F;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAIrC,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1G,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAoCvE;AAQD,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAMvG;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,aAAa,EAAE,CAE/G"}
1
+ {"version":3,"file":"human-questions.d.ts","sourceRoot":"","sources":["../../src/domain/human-questions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,kBAAkB,CAAC;IAC9B,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,oFAAoF;AACpF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC;AAEpE,uFAAuF;AACvF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,aAAa,EAAE,CAAA;CAAE,GAC5F;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAIrC,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1G,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAoCvE;AAQD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAEnG;AAED,iGAAiG;AACjG,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAOvG;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,aAAa,EAAE,CAE/G"}
@@ -60,18 +60,23 @@ export function parseHumanQuestions(value) {
60
60
  }
61
61
  return { ok: true, questions };
62
62
  }
63
- /** The recorded option for a question. Own keys only: a question id like "constructor" must
63
+ /** The recorded answer for a question. Own keys only: a question id like "constructor" must
64
64
  * not read the inherited Object.prototype member as an answer. */
65
65
  function ownAnswer(answers, questionId) {
66
66
  return Object.prototype.hasOwnProperty.call(answers, questionId) ? answers[questionId] : undefined;
67
67
  }
68
- /** One "question: chosen label" line per answered question, in question order. */
68
+ export function describeTypedReplyPlacement(question, reply) {
69
+ return `Whole typed reply, automatically placed under first unanswered question ${JSON.stringify(question.question)}; ${reply.unansweredCount} question${reply.unansweredCount === 1 ? "" : "s"} left unanswered`;
70
+ }
71
+ /** Button choices use option labels; typed replies keep their words and placement provenance. */
69
72
  export function formatHumanAnswers(questions, answers) {
70
73
  return questions.flatMap((q) => {
71
- const optionId = ownAnswer(answers, q.id);
72
- if (optionId == null)
74
+ const answer = ownAnswer(answers, q.id);
75
+ if (answer == null)
73
76
  return [];
74
- return [`${q.question}: ${q.options.find((o) => o.id === optionId)?.label ?? optionId}`];
77
+ if (typeof answer !== "string")
78
+ return [`${describeTypedReplyPlacement(q, answer)}: ${answer.text}`];
79
+ return [`${q.question}: ${q.options.find((o) => o.id === answer)?.label ?? answer}`];
75
80
  });
76
81
  }
77
82
  /** The questions still waiting for an answer. */
@@ -1 +1 @@
1
- {"version":3,"file":"human-questions.js","sourceRoot":"","sources":["../../src/domain/human-questions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"human-questions.js","sourceRoot":"","sources":["../../src/domain/human-questions.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,14 @@ export interface KernelBootStatus {
23
23
  /** Human-readable detail for auth_blocked / spec_missing /
24
24
  * bootstrap_failed / degraded states. null otherwise. */
25
25
  detail: string | null;
26
+ /** A boot failure the kernel has since recovered from: every seat it expects is ready again, so
27
+ * kernelState is ready and this keeps the failure as history. null otherwise, including while
28
+ * the failure is still current. */
29
+ lastBootFailure: {
30
+ state: "bootstrap_failed" | "degraded";
31
+ detail: string | null;
32
+ at: string | null;
33
+ } | null;
26
34
  }
27
35
  export interface KernelBootTrackerDeps {
28
36
  eventBus: EventBus;
@@ -41,6 +49,10 @@ export declare class KernelBootTracker {
41
49
  private variant;
42
50
  private detail;
43
51
  private firstUnreadySince;
52
+ private failedAt;
53
+ /** The seats the booting kernel spec declares (`pod.member`). null when unknown, which keeps a
54
+ * boot failure current: recovery needs the whole expected roster, never just the rows present. */
55
+ private expectedSeats;
44
56
  private degradedTimer;
45
57
  private degradedEmitted;
46
58
  private bootstrapInFlight;
@@ -55,7 +67,7 @@ export declare class KernelBootTracker {
55
67
  setSpecMissing(specPath: string): void;
56
68
  /** Begin tracking an in-flight bootstrap. The bootstrap promise
57
69
  * is awaited internally; the caller does NOT block on it. */
58
- startBooting(variant: string, bootstrapPromise: Promise<BootstrapResult>): void;
70
+ startBooting(variant: string, bootstrapPromise: Promise<BootstrapResult>, expectedSeats?: readonly string[] | null): void;
59
71
  /** Read current status. Computes agents[] live from the sessions
60
72
  * table so the response always reflects the freshest startup_status. */
61
73
  getStatus(): KernelBootStatus;
@@ -67,6 +79,13 @@ export declare class KernelBootTracker {
67
79
  private onBootstrapError;
68
80
  private aggregateReadinessFromAgents;
69
81
  private computeAgents;
82
+ /** A relaunch or `rig seat continue` adds a session row for the same node, so only each node's
83
+ * newest row is the seat's current startup status. */
84
+ private latestSessionByNode;
85
+ /** True only when every kernel node's newest session is ready and every expected seat has such a
86
+ * node. A node with no session is not ready, and a member that failed before its node was
87
+ * created is missing. False when the expected roster is unknown, and on any read error. */
88
+ private rosterRecovered;
70
89
  private scheduleDegradedTimer;
71
90
  private cancelTimer;
72
91
  private checkDegraded;
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-boot-tracker.d.ts","sourceRoot":"","sources":["../../src/domain/kernel-boot-tracker.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,cAAc,GACd,cAAc,GACd,SAAS,GACT,eAAe,GACf,OAAO,GACP,kBAAkB,GAClB,UAAU,CAAC;AAEf,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,aAAa,EAAE,SAAS,GAAG,OAAO,GAAG,oBAAoB,GAAG,QAAQ,CAAC;CACtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B;mCAC+B;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;mEAC+D;IAC/D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;8DAC0D;IAC1D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB;;;;+CAI2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,iBAAiB;IAShB,OAAO,CAAC,QAAQ,CAAC,IAAI;IARjC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAS;gBAEL,IAAI,EAAE,qBAAqB;IAExD;;6BAEyB;IACzB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOhC,uEAAuE;IACvE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOrC,+DAA+D;IAC/D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOtC;kEAC8D;IAC9D,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAe/E;6EACyE;IACzE,SAAS,IAAI,gBAAgB;IAoB7B;;uBAEmB;IACnB,IAAI,IAAI,IAAI;IAIZ,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;CA6BtB"}
1
+ {"version":3,"file":"kernel-boot-tracker.d.ts","sourceRoot":"","sources":["../../src/domain/kernel-boot-tracker.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,cAAc,GACd,cAAc,GACd,SAAS,GACT,eAAe,GACf,OAAO,GACP,kBAAkB,GAClB,UAAU,CAAC;AAEf,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,aAAa,EAAE,SAAS,GAAG,OAAO,GAAG,oBAAoB,GAAG,QAAQ,CAAC;CACtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B;mCAC+B;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;mEAC+D;IAC/D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;8DAC0D;IAC1D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;wCAEoC;IACpC,eAAe,EAAE;QAAE,KAAK,EAAE,kBAAkB,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9G;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB;;;;+CAI2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,iBAAiB;IAahB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZjC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAuB;IACvC;uGACmG;IACnG,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAS;gBAEL,IAAI,EAAE,qBAAqB;IAExD;;6BAEyB;IACzB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOhC,uEAAuE;IACvE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOrC,+DAA+D;IAC/D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOtC;kEAC8D;IAC9D,YAAY,CACV,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAAC,EAC1C,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GACvC,IAAI;IAiBP;6EACyE;IACzE,SAAS,IAAI,gBAAgB;IAkC7B;;uBAEmB;IACnB,IAAI,IAAI,IAAI;IAIZ,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,aAAa;IA0BrB;2DACuD;IACvD,OAAO,CAAC,mBAAmB;IAW3B;;gGAE4F;IAC5F,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;CA8BtB"}
@@ -24,6 +24,10 @@ export class KernelBootTracker {
24
24
  variant = null;
25
25
  detail = null;
26
26
  firstUnreadySince = null;
27
+ failedAt = null;
28
+ /** The seats the booting kernel spec declares (`pod.member`). null when unknown, which keeps a
29
+ * boot failure current: recovery needs the whole expected roster, never just the rows present. */
30
+ expectedSeats = null;
27
31
  degradedTimer = null;
28
32
  degradedEmitted = false;
29
33
  bootstrapInFlight = false;
@@ -55,7 +59,7 @@ export class KernelBootTracker {
55
59
  }
56
60
  /** Begin tracking an in-flight bootstrap. The bootstrap promise
57
61
  * is awaited internally; the caller does NOT block on it. */
58
- startBooting(variant, bootstrapPromise) {
62
+ startBooting(variant, bootstrapPromise, expectedSeats) {
59
63
  if (this.bootstrapInFlight)
60
64
  return;
61
65
  this.bootstrapInFlight = true;
@@ -63,6 +67,8 @@ export class KernelBootTracker {
63
67
  this.variant = variant;
64
68
  this.detail = null;
65
69
  this.firstUnreadySince = new Date().toISOString();
70
+ this.failedAt = null;
71
+ this.expectedSeats = expectedSeats && expectedSeats.length > 0 ? [...expectedSeats] : null;
66
72
  this.degradedEmitted = false;
67
73
  this.scheduleDegradedTimer();
68
74
  bootstrapPromise
@@ -73,12 +79,24 @@ export class KernelBootTracker {
73
79
  * table so the response always reflects the freshest startup_status. */
74
80
  getStatus() {
75
81
  const agents = this.computeAgents();
76
- let kernelState = this.state;
82
+ const state = this.state;
83
+ let kernelState = state;
84
+ let lastBootFailure = null;
77
85
  // Once bootstrap has completed (state == 'booting' before then),
78
86
  // promote to ready / partial_ready based on agent startup_status.
79
- if (this.state === "booting" && !this.bootstrapInFlight) {
87
+ if (state === "booting" && !this.bootstrapInFlight) {
80
88
  kernelState = this.aggregateReadinessFromAgents(agents);
81
89
  }
90
+ else if ((state === "bootstrap_failed" || state === "degraded")
91
+ && !this.bootstrapInFlight
92
+ && this.aggregateReadinessFromAgents(agents) === "ready"
93
+ && this.rosterRecovered()) {
94
+ // Every seat the kernel expects has since reached ready (a resolved startup gate, a
95
+ // `rig seat continue`), so the failure is history, not current health. A seat that is not
96
+ // ready, has no session, or has no node keeps it current, and so does an unknown roster.
97
+ kernelState = "ready";
98
+ lastBootFailure = { state, detail: this.detail, at: this.failedAt };
99
+ }
82
100
  return {
83
101
  kernelState,
84
102
  agents,
@@ -86,7 +104,8 @@ export class KernelBootTracker {
86
104
  ? null
87
105
  : this.firstUnreadySince,
88
106
  variant: this.variant,
89
- detail: this.detail,
107
+ detail: lastBootFailure ? null : this.detail,
108
+ lastBootFailure,
90
109
  };
91
110
  }
92
111
  /** Stop the degraded timer. Safe to call from anywhere (idempotent).
@@ -101,6 +120,7 @@ export class KernelBootTracker {
101
120
  this.cancelTimer();
102
121
  this.state = "bootstrap_failed";
103
122
  this.detail = result.errors.join("; ");
123
+ this.failedAt = new Date().toISOString();
104
124
  return;
105
125
  }
106
126
  // Bootstrap returned cleanly. State transitions to ready /
@@ -119,6 +139,7 @@ export class KernelBootTracker {
119
139
  this.cancelTimer();
120
140
  this.state = "bootstrap_failed";
121
141
  this.detail = err instanceof Error ? err.message : String(err);
142
+ this.failedAt = new Date().toISOString();
122
143
  }
123
144
  aggregateReadinessFromAgents(agents) {
124
145
  if (agents.length === 0) {
@@ -136,19 +157,15 @@ export class KernelBootTracker {
136
157
  }
137
158
  computeAgents() {
138
159
  try {
139
- const kernelRigs = this.deps.rigRepo.findRigsByName("kernel");
140
- if (kernelRigs.length === 0)
141
- return [];
160
+ // Archived kernel generations aren't the current kernel.
142
161
  const out = [];
143
- for (const rig of kernelRigs) {
144
- const sessions = this.deps.sessionRegistry.getSessionsForRig(rig.id);
145
- for (const s of sessions) {
146
- // session-registry's Session shape carries startupStatus +
147
- // sessionName; runtime comes from the node row. Read minimal
148
- // fields here so the tracker doesn't pull in node-repository.
162
+ for (const rig of this.deps.rigRepo.findUnarchivedRigsByName("kernel")) {
163
+ // One entry per seat. The runtime is on the node row, not the session.
164
+ const runtimeByNode = new Map((this.deps.rigRepo.getRig(rig.id)?.nodes ?? []).map((node) => [node.id, node.runtime]));
165
+ for (const s of this.latestSessionByNode(rig.id).values()) {
149
166
  out.push({
150
167
  sessionName: s.sessionName,
151
- runtime: s.runtime ?? "unknown",
168
+ runtime: runtimeByNode.get(s.nodeId) ?? "unknown",
152
169
  startupStatus: s.startupStatus,
153
170
  });
154
171
  }
@@ -162,6 +179,40 @@ export class KernelBootTracker {
162
179
  return [];
163
180
  }
164
181
  }
182
+ /** A relaunch or `rig seat continue` adds a session row for the same node, so only each node's
183
+ * newest row is the seat's current startup status. */
184
+ latestSessionByNode(rigId) {
185
+ const latestByNode = new Map();
186
+ for (const s of this.deps.sessionRegistry.getSessionsForRig(rigId)) {
187
+ const prior = latestByNode.get(s.nodeId);
188
+ if (!prior || s.createdAt > prior.createdAt || (s.createdAt === prior.createdAt && s.id > prior.id)) {
189
+ latestByNode.set(s.nodeId, s);
190
+ }
191
+ }
192
+ return latestByNode;
193
+ }
194
+ /** True only when every kernel node's newest session is ready and every expected seat has such a
195
+ * node. A node with no session is not ready, and a member that failed before its node was
196
+ * created is missing. False when the expected roster is unknown, and on any read error. */
197
+ rosterRecovered() {
198
+ if (!this.expectedSeats)
199
+ return false;
200
+ try {
201
+ const readySeats = new Set();
202
+ for (const rig of this.deps.rigRepo.findUnarchivedRigsByName("kernel")) {
203
+ const latest = this.latestSessionByNode(rig.id);
204
+ for (const node of this.deps.rigRepo.getRig(rig.id)?.nodes ?? []) {
205
+ if (latest.get(node.id)?.startupStatus !== "ready")
206
+ return false;
207
+ readySeats.add(node.logicalId);
208
+ }
209
+ }
210
+ return readySeats.size > 0 && this.expectedSeats.every((seat) => readySeats.has(seat));
211
+ }
212
+ catch {
213
+ return false;
214
+ }
215
+ }
165
216
  scheduleDegradedTimer() {
166
217
  const ms = this.deps.degradedTimeoutMs ?? 90_000;
167
218
  if (ms <= 0)
@@ -193,6 +244,7 @@ export class KernelBootTracker {
193
244
  return;
194
245
  this.degradedEmitted = true;
195
246
  this.state = "degraded";
247
+ this.failedAt = new Date().toISOString();
196
248
  try {
197
249
  this.deps.eventBus.emit({
198
250
  type: "kernel.agent.degraded",
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-boot-tracker.js","sourceRoot":"","sources":["../../src/domain/kernel-boot-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel-boot-tracker.js","sourceRoot":"","sources":["../../src/domain/kernel-boot-tracker.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,10 @@ export interface KernelBootDeps {
40
40
  * decoupling. Tracker state is observable via getStatus() and the
41
41
  * /api/kernel/status route. */
42
42
  export declare function bootKernelIfNeeded(deps: KernelBootDeps): Promise<KernelBootTracker>;
43
+ /** The seats the selected kernel spec declares, as `pod.member` logical IDs, so a boot failure is treated as
44
+ * recovered only when every one of them is ready. null when the spec can't be read as pods with members: the
45
+ * tracker then keeps a failure current, because an unknown roster must never read as ready. */
46
+ export declare function expectedKernelSeats(specPath: string): string[] | null;
43
47
  /** True when a rig named `kernel` already exists in the DB. */
44
48
  export declare function kernelAlreadyManaged(rigRepo: RigRepository): boolean;
45
49
  /** Choose a rig variant from the auth probe. */
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-boot.d.ts","sourceRoot":"","sources":["../../src/domain/kernel-boot.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,aAAa,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C;;sDAEkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;0BAKsB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClD;gCAC4B;IAC5B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE;gEAC4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;gCAKgC;AAChC,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAiEzF;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAGpE;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAO/D;AAED,2DAA2D;AAC3D,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAkCxE;AAED;;;;;;;kEAOkE;AAClE,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAuBpF;AAED;;+EAE+E;AAC/E,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjD,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAK7B;AAED;2DAC2D;AAC3D,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC"}
1
+ {"version":3,"file":"kernel-boot.d.ts","sourceRoot":"","sources":["../../src/domain/kernel-boot.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,aAAa,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C;;sDAEkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;0BAKsB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClD;gCAC4B;IAC5B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE;gEAC4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;gCAKgC;AAChC,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAiEzF;AAED;;gGAEgG;AAChG,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAgBrE;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAGpE;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAO/D;AAED,2DAA2D;AAC3D,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAkCxE;AAED;;;;;;;kEAOkE;AAClE,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAuBpF;AAED;;+EAE+E;AAC/E,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjD,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAK7B;AAED;2DAC2D;AAC3D,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC"}
@@ -20,6 +20,7 @@ import os from "node:os";
20
20
  import { existsSync, readFileSync } from "node:fs";
21
21
  import { parse as parseToml } from "smol-toml";
22
22
  import { KernelBootTracker } from "./kernel-boot-tracker.js";
23
+ import { RigSpecCodec } from "./rigspec-codec.js";
23
24
  /** Entry point. Idempotent: safe to call on every daemon startup.
24
25
  * Returns the tracker immediately; bootstrap (if fired) runs in the
25
26
  * background. Callers should NOT await the tracker's internal
@@ -82,9 +83,33 @@ export async function bootKernelIfNeeded(deps) {
82
83
  autoApprove: true,
83
84
  cwdOverride: deps.cwdOverride,
84
85
  });
85
- tracker.startBooting(variant, bootstrapPromise);
86
+ tracker.startBooting(variant, bootstrapPromise, expectedKernelSeats(specPath));
86
87
  return tracker;
87
88
  }
89
+ /** The seats the selected kernel spec declares, as `pod.member` logical IDs, so a boot failure is treated as
90
+ * recovered only when every one of them is ready. null when the spec can't be read as pods with members: the
91
+ * tracker then keeps a failure current, because an unknown roster must never read as ready. */
92
+ export function expectedKernelSeats(specPath) {
93
+ try {
94
+ const raw = RigSpecCodec.parse(readFileSync(specPath, "utf-8"));
95
+ if (!raw || !Array.isArray(raw.pods))
96
+ return null;
97
+ const seats = [];
98
+ for (const pod of raw.pods) {
99
+ if (typeof pod?.id !== "string" || !Array.isArray(pod.members))
100
+ return null;
101
+ for (const member of pod.members) {
102
+ if (typeof member?.id !== "string")
103
+ return null;
104
+ seats.push(`${pod.id}.${member.id}`);
105
+ }
106
+ }
107
+ return seats.length > 0 ? seats : null;
108
+ }
109
+ catch {
110
+ return null;
111
+ }
112
+ }
88
113
  /** True when a rig named `kernel` already exists in the DB. */
89
114
  export function kernelAlreadyManaged(rigRepo) {
90
115
  const rigs = rigRepo.listRigs();
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-boot.js","sourceRoot":"","sources":["../../src/domain/kernel-boot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel-boot.js","sourceRoot":"","sources":["../../src/domain/kernel-boot.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,mEAAmE;AACnE,mEAAmE;AACnE,iEAAiE;AACjE,+BAA+B;AAC/B,mEAAmE;AACnE,4DAA4D;AAC5D,sEAAsE;AACtE,kDAAkD;AAClD,EAAE;AACF,iEAAiE;AACjE,sEAAsE;AACtE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,wCAAwC;AAExC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAK/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmClD;;;;;gCAKgC;AAChC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAoB;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC;QACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;KAC1C,CAAC,CAAC;IAEH,qEAAqE;IACrE,gEAAgE;IAChE,kEAAkE;IAClE,8DAA8D;IAC9D,mEAAmE;IACnE,qEAAqE;IACrE,mEAAmE;IACnE,iEAAiE;IACjE,kDAAkD;IAClD,MAAM,aAAa,GAAG,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC;IAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACrG,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,CAAC;QAChG,GAAG,CAAC,MAAM,EAAE,gBAAgB,MAAM,8BAA8B,CAAC,CAAC;QAClE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mEAAmE;IACnE,mEAAmE;IACnE,yCAAyC;IACzC,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,MAAM,EAAE,gEAAgE,CAAC,CAAC;QAC9E,OAAO,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iDAAiD;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,oBAAoB,CAAC,EAAE,CAAC;IAEnE,IAAI,KAAK,CAAC,UAAU,KAAK,aAAa,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACxE,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAE7E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,MAAM,EAAE,gCAAgC,QAAQ,aAAa,CAAC,CAAC;QACnE,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2EAA2E;IAC3E,GAAG,CAAC,MAAM,EAAE,wCAAwC,OAAO,EAAE,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;QAC5D,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IACH,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;gGAEgG;AAChG,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAA8B,CAAC;QAC7F,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAyD,EAAE,CAAC;YAChF,IAAI,OAAO,GAAG,EAAE,EAAE,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5E,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAyC,EAAE,CAAC;gBACnE,IAAI,OAAO,MAAM,EAAE,EAAE,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,UAAU,CAAC;IACzE,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,sBAAsB,CAAC;IAC7D,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,qBAAqB,CAAC;IACvD,kEAAkE;IAClE,kEAAkE;IAClE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,UAAU,QAAQ,CAAC,GAAW;QACjC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,MAAM,GAAG,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;YACjD,6DAA6D;YAC7D,iEAAiE;YACjE,2BAA2B;YAC3B,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACtG,OAAO,aAAa,CAAC;YACvB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClF,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,QAAQ,CAAC,oBAAoB,CAAC;QAC9B,mBAAmB,CAAC;YAClB,GAAG,EAAE,QAAQ;YACb,UAAU,EAAE,GAAG,EAAE;gBACf,IAAI,CAAC;oBAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,IAAI,CAAC;gBAAC,CAAC;YACvG,CAAC;YACD,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC;AAcD,MAAM,UAAU,uBAAuB,CAAC,UAAyB;IAC/D,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACzD,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,UAAU,CAA4B,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,iCAAiC,EAAE,CAAC;IACjF,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,kEAAkE,EAAE,CAAC;IAClH,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;QAC3H,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,KAAK,GAAI,SAAqC,CAAC,UAAU,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACzE,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAgC,CAAC;IACvG,IAAI,kBAAkB,KAAK,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3G,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AACjD,CAAC;AAED;;+EAE+E;AAC/E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAIzC;IACC,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;QAAE,OAAO,aAAa,CAAC;IACzD,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACrC,CAAC;AAED;2DAC2D;AAC3D,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,iEAAiE;QACjE,uGAAuG;QACvG,uJAAuJ;KACxJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAgC,EAAE,OAAe;IACnE,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACzC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;QAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"native-process-lineage.d.ts","sourceRoot":"","sources":["../../src/domain/native-process-lineage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-process-lineage.d.ts","sourceRoot":"","sources":["../../src/domain/native-process-lineage.ts"],"names":[],"mappings":"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"}
@@ -60,23 +60,46 @@ function claudeExecutable(token, selectedExecutable) {
60
60
  return token.startsWith("/") && !token.split("/").some(part => part === "." || part === "..")
61
61
  && /\/\.local\/share\/claude\/versions\/\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/.test(token);
62
62
  }
63
+ // Nixpkgs packages Claude as a wrapper that execs its sibling `.claude-unwrapped`
64
+ // (wrapProgram: `.claude-wrapped`) with argv[0] inherited. Linux truncates that OS
65
+ // name to 15 bytes, so ucomm reads `.claude-unwrapp`.
66
+ const NIX_WRAPPED_CLAUDE_NAMES = [".claude-unwrapped", ".claude-wrapped"];
67
+ const TASK_COMM_LENGTH = 15;
68
+ function osNameIs(osName, name) {
69
+ return osName === name || (osName.length === TASK_COMM_LENGTH && name.startsWith(osName));
70
+ }
71
+ // Only the wrapped binary inside a claude-code store output, and when a launch froze
72
+ // its executable, only the sibling of that wrapper.
73
+ function nixWrappedClaudeExecutable(path, selectedExecutable) {
74
+ const match = path.match(/^(\/nix\/store\/[0-9a-df-np-sv-z]{32}-claude-code(?:-[^/]+)?\/bin)\/\.claude-(?:un)?wrapped$/);
75
+ if (!match || path.split("/").some(part => part === "." || part === ".."))
76
+ return false;
77
+ return !selectedExecutable || selectedExecutable === `${match[1]}/claude`;
78
+ }
63
79
  function claudeProcess(row, selectedExecutable) {
64
80
  const argv0 = tokens(row.command)[0] ?? "";
65
81
  if (!claudeExecutable(argv0, selectedExecutable))
66
82
  return false;
67
- if (executableName(row.executableName ?? "") === executableName(argv0))
83
+ const osName = row.executableName ?? "";
84
+ if (executableName(osName) === executableName(argv0))
68
85
  return true;
69
86
  // Native Claude can retain its versioned OS name while rewriting argv[0] to
70
- // claude. A version only selects candidates for an OS path read; it is not proof.
71
- return needsClaudeExecutablePath(row) && !!row.executablePath
72
- && claudeExecutable(row.executablePath, selectedExecutable)
73
- && executableName(row.executablePath) === executableName(row.executableName ?? "");
87
+ // claude, and a Nix wrapper leaves its wrapped OS name. Either name only selects
88
+ // candidates for an OS path read; it is not proof.
89
+ const path = row.executablePath;
90
+ if (!needsClaudeExecutablePath(row) || !path)
91
+ return false;
92
+ if (claudeExecutable(path, selectedExecutable) && executableName(path) === executableName(osName))
93
+ return true;
94
+ return nixWrappedClaudeExecutable(path, selectedExecutable) && osNameIs(osName, path.split("/").pop());
74
95
  }
75
96
  function needsClaudeExecutablePath(row) {
76
97
  const argv0 = tokens(row.command)[0] ?? "";
98
+ const osName = row.executableName ?? "";
77
99
  return claudeExecutable(argv0)
78
- && executableName(row.executableName ?? "") !== executableName(argv0)
79
- && /^\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/.test(row.executableName ?? "");
100
+ && executableName(osName) !== executableName(argv0)
101
+ && (/^\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/.test(osName)
102
+ || NIX_WRAPPED_CLAUDE_NAMES.some(name => osNameIs(osName, name)));
80
103
  }
81
104
  function commandUsesExpectedToken(command, runtime, expectedToken) {
82
105
  const argv = tokens(command);
@@ -148,11 +171,17 @@ function claudeSessionToken(args) {
148
171
  return null;
149
172
  continue;
150
173
  }
174
+ if (arg === "--remote-control") {
175
+ if (args[index + 1] && !args[index + 1].startsWith("-"))
176
+ index += 1;
177
+ continue;
178
+ }
151
179
  if (["--permission-mode", "--model", "--name", "--effort"].includes(arg)) {
152
180
  index += 1;
153
181
  continue;
154
182
  }
155
- if (/^--(?:permission-mode|model|name|settings|effort)=/.test(arg) || arg === "--dangerously-skip-permissions")
183
+ if (/^--(?:permission-mode|model|name|settings|effort)=/.test(arg)
184
+ || arg.startsWith("--remote-control=") || arg === "--dangerously-skip-permissions")
156
185
  continue;
157
186
  const identity = arg.match(/^--(?:session-id|resume)(?:=(.*))?$/);
158
187
  if (!identity)
@@ -180,7 +209,13 @@ function claudeSessionIdentity(args) {
180
209
  return unparsed;
181
210
  continue;
182
211
  }
183
- if (/^--(?:permission-mode|model|name|settings|effort)=/.test(arg) || arg === "--dangerously-skip-permissions")
212
+ if (arg === "--remote-control") {
213
+ if (args[index + 1] && !args[index + 1].startsWith("-"))
214
+ index += 1;
215
+ continue;
216
+ }
217
+ if (/^--(?:permission-mode|model|name|settings|effort)=/.test(arg)
218
+ || arg.startsWith("--remote-control=") || arg === "--dangerously-skip-permissions")
184
219
  continue;
185
220
  const identity = arg.match(/^--(?:session-id|resume)(?:=(.*))?$/);
186
221
  if (!identity)