@timurproko/a1 0.2.7-dev.1249 → 0.2.7-dev.1255

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 (524) hide show
  1. package/README.md +11 -36
  2. package/bin/cli.js +2 -17
  3. package/bin/ui.js +10 -51
  4. package/dist/app/session-shell/clipboard-diagnostics.d.ts +2 -2
  5. package/dist/app/session-shell/clipboard-image.d.ts +0 -1
  6. package/dist/app/session-shell/clipboard-image.js +1 -1
  7. package/dist/app/session-shell/dialog-coordinator.d.ts +6 -5
  8. package/dist/app/session-shell/dialog-coordinator.js +3 -4
  9. package/dist/app/session-shell/dock-chrome.d.ts +11 -6
  10. package/dist/app/session-shell/dock-chrome.js +5 -8
  11. package/dist/app/session-shell/editor-hyperlink-budget.d.ts +0 -2
  12. package/dist/app/session-shell/editor-hyperlink-budget.js +1 -1
  13. package/dist/app/session-shell/exit-notice.d.ts +3 -3
  14. package/dist/app/session-shell/exit-notice.js +10 -10
  15. package/dist/app/session-shell/extension-surface.d.ts +8 -7
  16. package/dist/app/session-shell/helper-pool.d.ts +3 -4
  17. package/dist/app/session-shell/helper-pool.js +1 -1
  18. package/dist/app/session-shell/image-preparation-client.d.ts +4 -3
  19. package/dist/app/session-shell/image-preparation.d.ts +0 -2
  20. package/dist/app/session-shell/image-preparation.js +2 -2
  21. package/dist/app/session-shell/image-source.d.ts +2 -3
  22. package/dist/app/session-shell/image-source.js +2 -2
  23. package/dist/app/session-shell/input-surface-switch.d.ts +9 -7
  24. package/dist/app/session-shell/input-surface-switch.js +1 -2
  25. package/dist/app/session-shell/login-interaction.d.ts +5 -4
  26. package/dist/app/session-shell/login-interaction.js +2 -3
  27. package/dist/app/session-shell/paste-executor.d.ts +4 -8
  28. package/dist/app/session-shell/paste-executor.js +2 -2
  29. package/dist/app/session-shell/paste-protocol.d.ts +2 -2
  30. package/dist/app/session-shell/path-chip-presentation.d.ts +0 -5
  31. package/dist/app/session-shell/path-chip-presentation.js +3 -3
  32. package/dist/app/session-shell/prompt-chips.d.ts +8 -7
  33. package/dist/app/session-shell/prompt-history-controller.d.ts +3 -3
  34. package/dist/app/session-shell/prompt-submission.d.ts +7 -6
  35. package/dist/app/session-shell/prompt-submission.js +7 -28
  36. package/dist/app/session-shell/quit-outro-effects.d.ts +3 -3
  37. package/dist/app/session-shell/quit-outro-effects.js +1 -4
  38. package/dist/app/session-shell/quit-outro.d.ts +9 -12
  39. package/dist/app/session-shell/quit-outro.js +11 -11
  40. package/dist/app/session-shell/response-copy-protocol.d.ts +3 -2
  41. package/dist/app/session-shell/response-copy-transport.d.ts +2 -14
  42. package/dist/app/session-shell/response-copy-transport.js +2 -3
  43. package/dist/app/session-shell/session-lifecycle.d.ts +3 -3
  44. package/dist/app/session-shell/session-lifecycle.js +2 -4
  45. package/dist/app/session-shell/session-shell-root.d.ts +74 -120
  46. package/dist/app/session-shell/session-shell-root.js +82 -115
  47. package/dist/app/session-shell/session-shell.d.ts +13 -16
  48. package/dist/app/session-shell/session-shell.js +149 -314
  49. package/dist/app/session-shell/session-viewport-controller.d.ts +7 -6
  50. package/dist/app/session-shell/session-viewport-controller.js +5 -8
  51. package/dist/app/session-shell/settings-bindings.d.ts +24 -2
  52. package/dist/app/session-shell/settings-bindings.js +24 -0
  53. package/dist/app/session-shell/share-operation.d.ts +3 -3
  54. package/dist/app/session-shell/share-operation.js +4 -6
  55. package/dist/app/session-shell/shell-clipboard.d.ts +59 -0
  56. package/dist/app/session-shell/shell-clipboard.js +119 -0
  57. package/dist/app/session-shell/shell-editor-factory.d.ts +8 -4
  58. package/dist/app/session-shell/shell-editor-factory.js +13 -15
  59. package/dist/app/session-shell/shell-host.d.ts +16 -17
  60. package/dist/app/session-shell/shell-host.js +20 -37
  61. package/dist/app/session-shell/shell-layout.d.ts +2 -2
  62. package/dist/app/session-shell/shell-prompt-suggestions.d.ts +26 -0
  63. package/dist/app/session-shell/shell-prompt-suggestions.js +48 -0
  64. package/dist/app/session-shell/suggestion-surface.d.ts +1 -6
  65. package/dist/app/session-shell/suggestion-surface.js +1 -1
  66. package/dist/app/session-shell/system-clipboard.d.ts +2 -14
  67. package/dist/app/session-shell/system-clipboard.js +2 -7
  68. package/dist/app/session-shell/transcript-document.d.ts +12 -10
  69. package/dist/app/session-shell/transcript-document.js +15 -41
  70. package/dist/app/session-shell/viewport-layout.d.ts +2 -2
  71. package/dist/app/session-shell/workflow-output.d.ts +5 -3
  72. package/dist/app/session-shell/workflow-output.js +13 -15
  73. package/dist/app/session-shell/workflow-router.d.ts +1 -3
  74. package/dist/app/session-shell/workflow-router.js +1 -4
  75. package/dist/cli/dispatch.d.ts +1 -11
  76. package/dist/cli/dispatch.js +5 -92
  77. package/dist/cli/package-messages.d.ts +0 -1
  78. package/dist/cli/package-messages.js +1 -1
  79. package/dist/cli/session-context.d.ts +1 -1
  80. package/dist/cli/session-context.js +5 -7
  81. package/dist/cli/uninstall.d.ts +4 -7
  82. package/dist/cli/uninstall.js +6 -35
  83. package/dist/cli/version-stats.js +4 -7
  84. package/dist/composition/owned-settings.d.ts +2 -2
  85. package/dist/composition/owned-settings.js +0 -4
  86. package/dist/composition/owned-ui.d.ts +3 -25
  87. package/dist/composition/owned-ui.js +37 -113
  88. package/dist/composition/reference-selection-options.d.ts +1 -1
  89. package/dist/composition/reference-selection-options.js +1 -1
  90. package/dist/composition/release-update-observation.d.ts +4 -4
  91. package/dist/composition/release-update-observation.js +17 -47
  92. package/dist/composition/session-backend.d.ts +0 -1
  93. package/dist/composition/session-runtime-registry.d.ts +5 -4
  94. package/dist/composition/settings-route-host.d.ts +0 -7
  95. package/dist/composition/settings-route-host.js +7 -20
  96. package/dist/composition/settings-search-input.d.ts +2 -1
  97. package/dist/composition/startup-route.d.ts +2 -3
  98. package/dist/composition/startup-route.js +2 -3
  99. package/dist/contracts/owned-ui/extension-ui.d.ts +2 -1
  100. package/dist/contracts/owned-ui/index.d.ts +2 -1
  101. package/dist/contracts/owned-ui/model.d.ts +0 -3
  102. package/dist/contracts/owned-ui/session-presenters.d.ts +3 -0
  103. package/dist/contracts/owned-ui/session-workflows.d.ts +1 -4
  104. package/dist/contracts/owned-ui/shell-components.d.ts +543 -0
  105. package/dist/contracts/presentation/component.d.ts +17 -0
  106. package/dist/contracts/presentation/component.js +8 -0
  107. package/dist/contracts/presentation/index.d.ts +6 -15
  108. package/dist/contracts/presentation/index.js +2 -0
  109. package/dist/contracts/presentation/terminal.d.ts +290 -0
  110. package/dist/contracts/presentation/theme.d.ts +46 -0
  111. package/dist/features/launch/development-launch.js +1 -2
  112. package/dist/features/launch/index.d.ts +1 -1
  113. package/dist/features/launch/intent.d.ts +1 -3
  114. package/dist/features/launch/intent.js +2 -4
  115. package/dist/features/launch/runtime-selection.d.ts +2 -2
  116. package/dist/features/launch/runtime-selection.js +2 -2
  117. package/dist/features/launch/session-context.d.ts +2 -2
  118. package/dist/features/owned-ui/project-trust-prompt.d.ts +2 -2
  119. package/dist/features/owned-ui/project-trust-prompt.js +1 -1
  120. package/dist/features/owned-ui/reference-screen-app.d.ts +0 -2
  121. package/dist/features/owned-ui/reference-screen-app.js +2 -9
  122. package/dist/features/owned-ui/release-note-state.d.ts +2 -1
  123. package/dist/features/owned-ui/settings-app.d.ts +0 -6
  124. package/dist/features/owned-ui/settings-app.js +42 -254
  125. package/dist/features/owned-ui/settings-edits.d.ts +31 -0
  126. package/dist/features/owned-ui/settings-edits.js +139 -0
  127. package/dist/features/owned-ui/settings-scroll-rail.d.ts +29 -0
  128. package/dist/features/owned-ui/settings-scroll-rail.js +79 -0
  129. package/dist/features/owned-ui/settings-search-input.d.ts +2 -1
  130. package/dist/features/prompt-history/service.d.ts +3 -2
  131. package/dist/foundation/launch-context/index.d.ts +0 -12
  132. package/dist/foundation/launch-context/index.js +0 -26
  133. package/dist/foundation/lifecycle/claim-gate.d.ts +9 -0
  134. package/dist/foundation/lifecycle/claim-gate.js +37 -0
  135. package/dist/foundation/lifecycle/index.d.ts +5 -9
  136. package/dist/foundation/lifecycle/index.js +3 -4
  137. package/dist/foundation/lifecycle/model.d.ts +2 -59
  138. package/dist/foundation/lifecycle/model.js +0 -35
  139. package/dist/foundation/lifecycle/paths.d.ts +0 -24
  140. package/dist/foundation/lifecycle/paths.js +0 -40
  141. package/dist/foundation/lifecycle/process-liveness.d.ts +8 -0
  142. package/dist/foundation/lifecycle/process-liveness.js +18 -0
  143. package/dist/foundation/lifecycle/session-claim-lock.d.ts +1 -1
  144. package/dist/foundation/lifecycle/session-claim-lock.js +2 -2
  145. package/dist/foundation/lifecycle/session-repository-context.d.ts +6 -6
  146. package/dist/foundation/lifecycle/session-repository-context.js +2 -3
  147. package/dist/foundation/release/automatic-update.d.ts +6 -17
  148. package/dist/foundation/release/automatic-update.js +23 -44
  149. package/dist/foundation/release/bootstrap.d.ts +2 -25
  150. package/dist/foundation/release/bootstrap.js +37 -348
  151. package/dist/foundation/release/dependency-certification.d.ts +1 -2
  152. package/dist/foundation/release/dependency-certification.js +1 -1
  153. package/dist/foundation/release/early-accent.d.ts +2 -2
  154. package/dist/foundation/release/early-accent.js +1 -1
  155. package/dist/foundation/release/index.d.ts +10 -17
  156. package/dist/foundation/release/index.js +7 -11
  157. package/dist/foundation/release/latest-release.d.ts +3 -19
  158. package/dist/foundation/release/latest-release.js +11 -12
  159. package/dist/foundation/release/ordinary-launch-selection.d.ts +1 -1
  160. package/dist/foundation/release/ordinary-launch-selection.js +1 -1
  161. package/dist/foundation/release/process-liveness.d.ts +2 -0
  162. package/dist/foundation/release/process-liveness.js +12 -0
  163. package/dist/foundation/release/release-gc.d.ts +13 -10
  164. package/dist/foundation/release/release-gc.js +37 -101
  165. package/dist/foundation/release/{cohort-state.d.ts → release-state.d.ts} +44 -69
  166. package/dist/foundation/release/{cohort-state.js → release-state.js} +38 -70
  167. package/dist/foundation/release/release-store.d.ts +2 -2
  168. package/dist/foundation/release/release-store.js +2 -2
  169. package/dist/foundation/release/restart-certification.js +1 -1
  170. package/dist/foundation/release/update-activation.d.ts +2 -9
  171. package/dist/foundation/release/update-activation.js +30 -45
  172. package/dist/foundation/release/update-execution-lease.d.ts +2 -3
  173. package/dist/foundation/release/update-execution-lease.js +2 -2
  174. package/dist/foundation/release/update-launch.d.ts +2 -4
  175. package/dist/foundation/release/update-launch.js +0 -7
  176. package/dist/foundation/release/update-recovery.js +1 -1
  177. package/dist/foundation/release/update-transaction.d.ts +1 -1
  178. package/dist/foundation/release/update-transaction.js +5 -2
  179. package/dist/foundation/release/update.d.ts +2 -12
  180. package/dist/foundation/release/update.js +37 -214
  181. package/dist/foundation/session-writer-lock/index.d.ts +14 -6
  182. package/dist/foundation/session-writer-lock/index.js +48 -103
  183. package/dist/foundation/startup/startup-budget.d.ts +5 -5
  184. package/dist/foundation/startup/startup-budget.js +2 -2
  185. package/dist/foundation/startup/startup-runtime.d.ts +1 -1
  186. package/dist/foundation/terminal-cleanup/exit-notice.d.ts +6 -0
  187. package/dist/foundation/terminal-cleanup/exit-notice.js +36 -0
  188. package/dist/foundation/terminal-cleanup/index.d.ts +2 -1
  189. package/dist/foundation/terminal-cleanup/index.js +2 -1
  190. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +0 -5
  191. package/dist/foundation/terminal-cleanup/terminal-reset.js +0 -5
  192. package/dist/integrations/pi/components/editor-interaction.d.ts +4 -12
  193. package/dist/integrations/pi/components/index.d.ts +15 -9
  194. package/dist/integrations/pi/components/index.js +9 -5
  195. package/dist/integrations/pi/components/lazy-selectors.d.ts +2 -10
  196. package/dist/integrations/pi/components/lazy-selectors.js +1 -1
  197. package/dist/integrations/pi/components/modal-frame.d.ts +5 -22
  198. package/dist/integrations/pi/components/modal-frame.js +3 -23
  199. package/dist/integrations/pi/components/owned-editor-ux.d.ts +4 -3
  200. package/dist/integrations/pi/components/prompt-input-port.d.ts +2 -19
  201. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +2 -1
  202. package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +3 -2
  203. package/dist/integrations/pi/components/shell-editor-autocomplete.js +1 -4
  204. package/dist/integrations/pi/components/shell-footer-status.d.ts +3 -3
  205. package/dist/integrations/pi/components/shell-footer-status.js +5 -4
  206. package/dist/integrations/pi/components/shell-hotkey-sections.js +1 -1
  207. package/dist/integrations/pi/components/shell-presenters-info.d.ts +6 -8
  208. package/dist/integrations/pi/components/shell-presenters-info.js +6 -19
  209. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +1 -1
  210. package/dist/integrations/pi/components/shell-presenters-transcript.js +1 -1
  211. package/dist/integrations/pi/components/shell-session-info-reference.d.ts +2 -1
  212. package/dist/integrations/pi/components/shell-shared-facade.d.ts +33 -229
  213. package/dist/integrations/pi/components/shell-shared-facade.js +8 -1
  214. package/dist/integrations/pi/components/skills-command.d.ts +1 -9
  215. package/dist/integrations/pi/components/skills-command.js +5 -5
  216. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +2 -5
  217. package/dist/integrations/pi/components/submitted-prompt-adapter.js +2 -16
  218. package/dist/integrations/pi/components/theme.d.ts +9 -2
  219. package/dist/integrations/pi/components/theme.js +17 -2
  220. package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +2 -1
  221. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +2 -2
  222. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +1 -2
  223. package/dist/integrations/pi/components/upstream/components/session-footer.js +6 -8
  224. package/dist/integrations/pi/engine/adapter.d.ts +3 -6
  225. package/dist/integrations/pi/engine/adapter.js +4 -28
  226. package/dist/integrations/pi/engine/changelog.d.ts +2 -2
  227. package/dist/integrations/pi/engine/changelog.js +3 -3
  228. package/dist/integrations/pi/engine/compaction-progress.d.ts +2 -3
  229. package/dist/integrations/pi/engine/compaction-progress.js +1 -1
  230. package/dist/integrations/pi/engine/conformance.d.ts +2 -1
  231. package/dist/integrations/pi/engine/default-model-setting.d.ts +0 -2
  232. package/dist/integrations/pi/engine/default-model-setting.js +1 -2
  233. package/dist/integrations/pi/engine/diagnostics-state.d.ts +0 -1
  234. package/dist/integrations/pi/engine/diagnostics-state.js +0 -14
  235. package/dist/integrations/pi/engine/event-delivery.d.ts +2 -1
  236. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +2 -1
  237. package/dist/integrations/pi/engine/host.js +2 -2
  238. package/dist/integrations/pi/engine/message-values.d.ts +0 -1
  239. package/dist/integrations/pi/engine/message-values.js +1 -1
  240. package/dist/integrations/pi/engine/pending-delivery.d.ts +0 -4
  241. package/dist/integrations/pi/engine/pending-delivery.js +3 -3
  242. package/dist/integrations/pi/engine/ports.d.ts +7 -1
  243. package/dist/integrations/pi/engine/ports.js +4 -0
  244. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +2 -1
  245. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +3 -3
  246. package/dist/integrations/pi/engine/prompt-suggestions.js +0 -40
  247. package/dist/integrations/pi/engine/provider-authentication.d.ts +1 -1
  248. package/dist/integrations/pi/engine/public-main-entry.d.ts +1 -5
  249. package/dist/integrations/pi/engine/public-main-entry.js +1 -1
  250. package/dist/integrations/pi/engine/repository-pr-rest.d.ts +1 -9
  251. package/dist/integrations/pi/engine/repository-pr-rest.js +2 -2
  252. package/dist/integrations/pi/engine/repository-pr.d.ts +1 -3
  253. package/dist/integrations/pi/engine/repository-pr.js +1 -1
  254. package/dist/integrations/pi/engine/resource-catalog.d.ts +2 -1
  255. package/dist/integrations/pi/engine/session-integration.d.ts +1 -1
  256. package/dist/integrations/pi/engine/session-runtime.d.ts +4 -3
  257. package/dist/integrations/pi/engine/session-runtime.js +0 -2
  258. package/dist/integrations/pi/engine/settings-bridge.d.ts +0 -2
  259. package/dist/integrations/pi/engine/settings-bridge.js +1 -1
  260. package/dist/integrations/pi/engine/settings-port.d.ts +3 -2
  261. package/dist/integrations/pi/engine/transcript-projection.d.ts +2 -1
  262. package/dist/integrations/pi/engine/workflow-contexts.d.ts +1 -1
  263. package/dist/integrations/pi/engine/workflow-runner.d.ts +1 -1
  264. package/dist/integrations/pi/engine/workflow-runner.js +1 -1
  265. package/dist/integrations/pi/engine/workflow-support.d.ts +0 -6
  266. package/dist/integrations/pi/engine/workflow-support.js +4 -18
  267. package/dist/integrations/pi/engine/workflows.d.ts +5 -5
  268. package/dist/integrations/pi/session-presenters/components.d.ts +3 -0
  269. package/dist/integrations/pi/session-presenters/components.js +75 -0
  270. package/dist/integrations/pi/session-presenters/index.d.ts +1 -0
  271. package/dist/integrations/pi/session-presenters/index.js +1 -0
  272. package/dist/integrations/pi/session-presenters/presentation.d.ts +3 -0
  273. package/dist/integrations/pi/session-presenters/presentation.js +10 -0
  274. package/dist/integrations/pi/session-presenters/presenters.d.ts +2 -1
  275. package/dist/integrations/pi/session-presenters/presenters.js +3 -1
  276. package/dist/integrations/pi/tui-runtime/adapter.d.ts +2 -2
  277. package/dist/integrations/pi/tui-runtime/adapter.js +23 -32
  278. package/dist/integrations/pi/tui-runtime/contracts.d.ts +22 -166
  279. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +5 -40
  280. package/dist/integrations/pi/tui-runtime/index.d.ts +1 -0
  281. package/dist/integrations/pi/tui-runtime/index.js +1 -0
  282. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +4 -6
  283. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +2 -8
  284. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +3 -9
  285. package/dist/integrations/pi/tui-runtime/runtime-factory.d.ts +3 -0
  286. package/dist/integrations/pi/tui-runtime/runtime-factory.js +11 -0
  287. package/dist/product-identity.d.ts +4 -6
  288. package/dist/product-identity.js +6 -11
  289. package/dist/product-identity.json +1 -40
  290. package/dist/runtime-payload-inventory.json +0 -3
  291. package/dist/ui/components/index.d.ts +4 -4
  292. package/dist/ui/components/index.js +2 -2
  293. package/dist/ui/components/selection-copy.d.ts +0 -1
  294. package/dist/ui/components/selection-copy.js +0 -12
  295. package/dist/ui/components/submitted-prompt.d.ts +3 -13
  296. package/dist/ui/components/submitted-prompt.js +8 -41
  297. package/dist/ui/components/theme.d.ts +4 -19
  298. package/dist/ui/components/theme.js +6 -0
  299. package/dist/ui/components/transcript-viewport.d.ts +1 -3
  300. package/dist/ui/components/transcript-viewport.js +1 -4
  301. package/dist/ui/settings/declarations.d.ts +2 -97
  302. package/dist/ui/settings/declarations.js +2 -78
  303. package/dist/ui/settings/early-accent.js +1 -1
  304. package/dist/ui/settings/index.d.ts +3 -5
  305. package/dist/ui/settings/index.js +2 -3
  306. package/dist/ui/settings/manager.d.ts +0 -4
  307. package/dist/ui/settings/manager.js +6 -62
  308. package/dist/ui/settings/resolution.d.ts +6 -18
  309. package/dist/ui/settings/resolution.js +4 -103
  310. package/dist/ui/settings/sections.d.ts +0 -4
  311. package/dist/ui/settings/sections.js +1 -1
  312. package/docs/architecture/boundaries.md +23 -40
  313. package/docs/architecture/code-documentation.md +2 -2
  314. package/docs/architecture/internal-naming.md +11 -17
  315. package/docs/architecture/project-structure.md +13 -16
  316. package/docs/architecture/resource-and-data-policy.md +16 -31
  317. package/docs/architecture/toolchain.md +14 -19
  318. package/docs/architecture/ui-reference-provenance.md +2 -2
  319. package/docs/ci-release-runbook.md +5 -5
  320. package/docs/features/launch-profiles.md +11 -17
  321. package/docs/features/prompt-history.md +10 -11
  322. package/docs/local-worktree-cleanup.md +28 -1
  323. package/docs/manual-owned-ui-checkpoint.md +0 -1
  324. package/docs/validation.md +5 -11
  325. package/docs/worktree-link-recovery.md +6 -6
  326. package/package.json +7 -20
  327. package/bin/guardian.js +0 -42
  328. package/bin/supervisor.js +0 -7
  329. package/bin/tab-launch-context.d.ts +0 -27
  330. package/bin/tab-launch-context.js +0 -94
  331. package/dist/app/session-shell/resident-tab-coordinator.d.ts +0 -38
  332. package/dist/app/session-shell/resident-tab-coordinator.js +0 -77
  333. package/dist/cli/tabs-request.d.ts +0 -7
  334. package/dist/cli/tabs.d.ts +0 -14
  335. package/dist/cli/tabs.js +0 -151
  336. package/dist/composition/resident-tab-bridge.d.ts +0 -41
  337. package/dist/composition/resident-tab-bridge.js +0 -209
  338. package/dist/composition/utility-tab.d.ts +0 -28
  339. package/dist/composition/utility-tab.js +0 -244
  340. package/dist/features/owned-ui/plus-menu-dialog.d.ts +0 -28
  341. package/dist/features/owned-ui/plus-menu-dialog.js +0 -89
  342. package/dist/features/resident-tab/auto-name.d.ts +0 -11
  343. package/dist/features/resident-tab/auto-name.js +0 -44
  344. package/dist/features/resident-tab/index.d.ts +0 -5
  345. package/dist/features/resident-tab/index.js +0 -7
  346. package/dist/features/resident-tab/shortcut-bindings-file.d.ts +0 -8
  347. package/dist/features/resident-tab/shortcut-bindings-file.js +0 -40
  348. package/dist/features/resident-tab/shortcut-declarations.d.ts +0 -13
  349. package/dist/features/resident-tab/shortcut-declarations.js +0 -26
  350. package/dist/features/resident-tab/shortcut-projection.d.ts +0 -29
  351. package/dist/features/resident-tab/shortcut-projection.js +0 -64
  352. package/dist/features/resident-tab/status-deriver.d.ts +0 -10
  353. package/dist/features/resident-tab/status-deriver.js +0 -12
  354. package/dist/foundation/launch-guardian/exit-watcher.d.ts +0 -14
  355. package/dist/foundation/launch-guardian/exit-watcher.js +0 -103
  356. package/dist/foundation/launch-guardian/index.d.ts +0 -2
  357. package/dist/foundation/launch-guardian/index.js +0 -1
  358. package/dist/foundation/launch-guardian/main.d.ts +0 -39
  359. package/dist/foundation/launch-guardian/main.js +0 -232
  360. package/dist/foundation/lifecycle/commands.d.ts +0 -40
  361. package/dist/foundation/lifecycle/launch-instance.d.ts +0 -46
  362. package/dist/foundation/lifecycle/launch-instance.js +0 -134
  363. package/dist/foundation/lifecycle/native-claim-gate.d.ts +0 -5
  364. package/dist/foundation/lifecycle/native-claim-gate.js +0 -41
  365. package/dist/foundation/lifecycle/supervisor-startup.d.ts +0 -30
  366. package/dist/foundation/lifecycle/supervisor-startup.js +0 -106
  367. package/dist/foundation/process-containment/addon-containment.d.ts +0 -20
  368. package/dist/foundation/process-containment/addon-containment.js +0 -139
  369. package/dist/foundation/process-containment/addon-process-inspector.d.ts +0 -11
  370. package/dist/foundation/process-containment/addon-process-inspector.js +0 -36
  371. package/dist/foundation/process-containment/addon.d.ts +0 -47
  372. package/dist/foundation/process-containment/addon.js +0 -57
  373. package/dist/foundation/process-containment/artifact.d.ts +0 -1
  374. package/dist/foundation/process-containment/artifact.js +0 -35
  375. package/dist/foundation/process-containment/contracts.d.ts +0 -33
  376. package/dist/foundation/process-containment/contracts.js +0 -35
  377. package/dist/foundation/process-containment/index.d.ts +0 -9
  378. package/dist/foundation/process-containment/index.js +0 -7
  379. package/dist/foundation/process-containment/linux-process-inspector.d.ts +0 -7
  380. package/dist/foundation/process-containment/linux-process-inspector.js +0 -27
  381. package/dist/foundation/process-containment/native-process-inspector.d.ts +0 -4
  382. package/dist/foundation/process-containment/native-process-inspector.js +0 -21
  383. package/dist/foundation/protocol/client.d.ts +0 -18
  384. package/dist/foundation/protocol/client.js +0 -130
  385. package/dist/foundation/protocol/index.d.ts +0 -3
  386. package/dist/foundation/protocol/index.js +0 -2
  387. package/dist/foundation/protocol/messages.d.ts +0 -90
  388. package/dist/foundation/protocol/messages.js +0 -100
  389. package/dist/foundation/release/cohort-selection.d.ts +0 -33
  390. package/dist/foundation/release/cohort-selection.js +0 -67
  391. package/dist/foundation/release/endpoint-lock.d.ts +0 -2
  392. package/dist/foundation/release/endpoint-lock.js +0 -37
  393. package/dist/foundation/release/endpoint-recovery.d.ts +0 -10
  394. package/dist/foundation/release/endpoint-recovery.js +0 -45
  395. package/dist/foundation/release/endpoints.d.ts +0 -32
  396. package/dist/foundation/release/endpoints.js +0 -152
  397. package/dist/foundation/release/prepared-update-activation.d.ts +0 -3
  398. package/dist/foundation/release/prepared-update-activation.js +0 -27
  399. package/dist/foundation/release/process-cleanup.d.ts +0 -14
  400. package/dist/foundation/release/process-cleanup.js +0 -76
  401. package/dist/foundation/release/supervisor-identity.d.ts +0 -15
  402. package/dist/foundation/release/supervisor-identity.js +0 -63
  403. package/dist/foundation/resident-tabs/boot-identity.d.ts +0 -6
  404. package/dist/foundation/resident-tabs/boot-identity.js +0 -16
  405. package/dist/foundation/resident-tabs/bounded-host-command.d.ts +0 -20
  406. package/dist/foundation/resident-tabs/bounded-host-command.js +0 -62
  407. package/dist/foundation/resident-tabs/bridge-client.d.ts +0 -73
  408. package/dist/foundation/resident-tabs/bridge-client.js +0 -327
  409. package/dist/foundation/resident-tabs/continuity.d.ts +0 -12
  410. package/dist/foundation/resident-tabs/continuity.js +0 -63
  411. package/dist/foundation/resident-tabs/doctor.d.ts +0 -28
  412. package/dist/foundation/resident-tabs/doctor.js +0 -166
  413. package/dist/foundation/resident-tabs/draft-checkpoint.d.ts +0 -27
  414. package/dist/foundation/resident-tabs/draft-checkpoint.js +0 -145
  415. package/dist/foundation/resident-tabs/ensure-terminal-host.d.ts +0 -36
  416. package/dist/foundation/resident-tabs/ensure-terminal-host.js +0 -151
  417. package/dist/foundation/resident-tabs/fault-injection.d.ts +0 -8
  418. package/dist/foundation/resident-tabs/fault-injection.js +0 -26
  419. package/dist/foundation/resident-tabs/fixture-control.d.ts +0 -7
  420. package/dist/foundation/resident-tabs/fixture-control.js +0 -35
  421. package/dist/foundation/resident-tabs/host-entry.js +0 -17
  422. package/dist/foundation/resident-tabs/index.d.ts +0 -15
  423. package/dist/foundation/resident-tabs/index.js +0 -10
  424. package/dist/foundation/resident-tabs/maintenance.d.ts +0 -39
  425. package/dist/foundation/resident-tabs/maintenance.js +0 -75
  426. package/dist/foundation/resident-tabs/progress-observation-schema.d.ts +0 -34
  427. package/dist/foundation/resident-tabs/progress-observation-schema.js +0 -1
  428. package/dist/foundation/resident-tabs/progress-observation.d.ts +0 -4
  429. package/dist/foundation/resident-tabs/progress-observation.js +0 -150
  430. package/dist/foundation/resident-tabs/prompt-journal.d.ts +0 -63
  431. package/dist/foundation/resident-tabs/prompt-journal.js +0 -213
  432. package/dist/foundation/resident-tabs/protocol.d.ts +0 -12
  433. package/dist/foundation/resident-tabs/protocol.js +0 -195
  434. package/dist/foundation/resident-tabs/recovery.d.ts +0 -26
  435. package/dist/foundation/resident-tabs/recovery.js +0 -205
  436. package/dist/foundation/resident-tabs/release-holds.d.ts +0 -28
  437. package/dist/foundation/resident-tabs/release-holds.js +0 -78
  438. package/dist/foundation/resident-tabs/routes.d.ts +0 -5
  439. package/dist/foundation/resident-tabs/routes.js +0 -5
  440. package/dist/foundation/resident-tabs/routing.d.ts +0 -11
  441. package/dist/foundation/resident-tabs/routing.js +0 -10
  442. package/dist/foundation/resident-tabs/runtime-control.d.ts +0 -38
  443. package/dist/foundation/resident-tabs/runtime-control.js +0 -74
  444. package/dist/foundation/resident-tabs/session-sync.d.ts +0 -14
  445. package/dist/foundation/resident-tabs/session-sync.js +0 -37
  446. package/dist/foundation/resident-tabs/settings.d.ts +0 -16
  447. package/dist/foundation/resident-tabs/settings.js +0 -60
  448. package/dist/foundation/resident-tabs/terminal-host-artifact.d.ts +0 -14
  449. package/dist/foundation/resident-tabs/terminal-host-artifact.js +0 -78
  450. package/dist/foundation/resident-tabs/zip-archive.d.ts +0 -9
  451. package/dist/foundation/resident-tabs/zip-archive.js +0 -56
  452. package/dist/foundation/storage/control-store.d.ts +0 -20
  453. package/dist/foundation/storage/control-store.js +0 -331
  454. package/dist/foundation/storage/index.d.ts +0 -1
  455. package/dist/foundation/storage/index.js +0 -1
  456. package/dist/foundation/supervision/index.d.ts +0 -3
  457. package/dist/foundation/supervision/index.js +0 -3
  458. package/dist/foundation/supervision/main.d.ts +0 -1
  459. package/dist/foundation/supervision/main.js +0 -86
  460. package/dist/foundation/supervision/paths.d.ts +0 -1
  461. package/dist/foundation/supervision/paths.js +0 -1
  462. package/dist/foundation/supervision/server.d.ts +0 -46
  463. package/dist/foundation/supervision/server.js +0 -611
  464. package/dist/integrations/pi/components/components.d.ts +0 -4
  465. package/dist/integrations/pi/components/components.js +0 -48
  466. package/dist/integrations/pi/components/conformance.d.ts +0 -18
  467. package/dist/integrations/pi/components/conformance.js +0 -70
  468. package/dist/integrations/pi/components/shell-components.d.ts +0 -7
  469. package/dist/integrations/pi/components/shell-components.js +0 -7
  470. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +0 -33
  471. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +0 -114
  472. package/dist/integrations/pi/engine/offline-settings-port.d.ts +0 -23
  473. package/dist/integrations/pi/engine/offline-settings-port.js +0 -54
  474. package/dist/native/darwin-arm64/manifest.json +0 -23
  475. package/dist/native/darwin-arm64/process-guardian.node +0 -0
  476. package/dist/native/darwin-arm64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10500
  477. package/dist/native/darwin-arm64/terminal-host.manifest.json +0 -46
  478. package/dist/native/darwin-arm64/terminal-host.node +0 -0
  479. package/dist/native/darwin-x64/manifest.json +0 -23
  480. package/dist/native/darwin-x64/process-guardian.node +0 -0
  481. package/dist/native/darwin-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10737
  482. package/dist/native/darwin-x64/terminal-host.manifest.json +0 -46
  483. package/dist/native/darwin-x64/terminal-host.node +0 -0
  484. package/dist/native/linux-x64/manifest.json +0 -23
  485. package/dist/native/linux-x64/process-guardian.node +0 -0
  486. package/dist/native/linux-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -11226
  487. package/dist/native/linux-x64/terminal-host.manifest.json +0 -46
  488. package/dist/native/linux-x64/terminal-host.node +0 -0
  489. package/dist/native/win32-x64/manifest.json +0 -23
  490. package/dist/native/win32-x64/process-guardian.node +0 -0
  491. package/dist/native/win32-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10757
  492. package/dist/native/win32-x64/terminal-host.manifest.json +0 -46
  493. package/dist/native/win32-x64/terminal-host.node +0 -0
  494. package/dist/ui/settings/migrations.d.ts +0 -19
  495. package/dist/ui/settings/migrations.js +0 -209
  496. package/dist/ui/settings/progress-palette.generated.d.ts +0 -139
  497. package/dist/ui/settings/progress-palette.generated.js +0 -139
  498. package/docs/architecture/evidence/resident-tabs/linux-x64.md +0 -37
  499. package/docs/architecture/evidence/resident-tabs/macos-arm64.md +0 -36
  500. package/docs/architecture/evidence/resident-tabs/macos-x64.md +0 -35
  501. package/docs/architecture/evidence/resident-tabs/windows-x64.md +0 -36
  502. package/docs/architecture/evidence/terminal-host-spike/manual-one-pane-terminal-host.md +0 -70
  503. package/docs/architecture/evidence/terminal-host-spike/manual-two-by-two-basic-terminal-host.md +0 -32
  504. package/docs/architecture/evidence/terminal-host-spike/milestone-baseline.json +0 -115
  505. package/docs/architecture/evidence/terminal-host-spike/owned-ui-foundation-prerequisite.json +0 -48
  506. package/docs/architecture/evidence/terminal-host-spike/terminal-host-provenance.json +0 -125
  507. package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-1.json +0 -56
  508. package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-3.json +0 -174
  509. package/docs/architecture/evidence/terminal-host-spike/terminal-spike-acceptance-record.json +0 -18
  510. package/docs/architecture/native-fixture-isolation.md +0 -23
  511. package/docs/architecture/process-guardian-provenance.md +0 -36
  512. package/docs/architecture/resident-tabs-requirements.md +0 -18
  513. package/docs/architecture/resident-tabs.md +0 -668
  514. package/docs/architecture/terminal-host-proof-gate.md +0 -34
  515. package/docs/architecture/terminal-host-provenance.md +0 -81
  516. package/docs/architecture/terminal-host-spike-evidence.md +0 -39
  517. package/docs/launch-recovery.md +0 -23
  518. package/docs/manual-launch-instance-acceptance.md +0 -43
  519. package/docs/manual-resident-tabs-acceptance.md +0 -51
  520. /package/dist/{cli/tabs-request.js → contracts/owned-ui/shell-components.js} +0 -0
  521. /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.d.ts +0 -0
  522. /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.js +0 -0
  523. /package/dist/{foundation/lifecycle/commands.js → contracts/presentation/terminal.js} +0 -0
  524. /package/dist/{foundation/resident-tabs/host-entry.d.ts → contracts/presentation/theme.js} +0 -0
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The identity every record written by this build carries. Liveness is a pid probe, so the
3
+ * identity only distinguishes records this build wrote from records an older build left.
4
+ */
5
+ export const PID_LIVENESS_IDENTITY = "pid-liveness";
6
+ /** Observe whether a process is running; a permission refusal still proves the pid exists. */
7
+ export async function inspectLiveProcess(pid) {
8
+ if (!Number.isSafeInteger(pid) || pid <= 0)
9
+ return null;
10
+ try {
11
+ process.kill(pid, 0);
12
+ }
13
+ catch (error) {
14
+ if (!(error instanceof Error && "code" in error && error.code === "EPERM"))
15
+ return null;
16
+ }
17
+ return { pid, startIdentity: PID_LIVENESS_IDENTITY };
18
+ }
@@ -5,7 +5,7 @@ interface ClaimLockOptions {
5
5
  /** Inventory is advisory and read-only, including when abandoned metadata needs recovery. */
6
6
  export declare function claimMutationPending(directory: string): Promise<boolean>;
7
7
  /**
8
- * The persistent directory excludes legacy wx-file writers. Only native descriptor authority
8
+ * The persistent directory excludes legacy wx-file writers. Only the gate beside the authority file
9
9
  * permits upgraded mutations; owner.json is disposable evidence, never a liveness oracle.
10
10
  * Never remove the barrier or authority file: doing so would create a second lock universe.
11
11
  */
@@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto";
2
2
  import { lstat, mkdir, open, readdir, realpath, rename, rm } from "node:fs/promises";
3
3
  import { join } from "node:path";
4
4
  import { setTimeout as delay } from "node:timers/promises";
5
- import { tryAcquireClaimGate } from "./native-claim-gate.js";
5
+ import { tryAcquireClaimGate } from "./claim-gate.js";
6
6
  const FILES = new Set(["owner.json", "owner.next", "recovery.json", "recovery.next"]);
7
7
  /** Inventory is advisory and read-only, including when abandoned metadata needs recovery. */
8
8
  export async function claimMutationPending(directory) {
@@ -19,7 +19,7 @@ export async function claimMutationPending(directory) {
19
19
  }
20
20
  }
21
21
  /**
22
- * The persistent directory excludes legacy wx-file writers. Only native descriptor authority
22
+ * The persistent directory excludes legacy wx-file writers. Only the gate beside the authority file
23
23
  * permits upgraded mutations; owner.json is disposable evidence, never a liveness oracle.
24
24
  * Never remove the barrier or authority file: doing so would create a second lock universe.
25
25
  */
@@ -1,4 +1,4 @@
1
- import type { NativeProcessIdentity } from "./model.js";
1
+ import type { ProcessIdentity } from "./model.js";
2
2
  /** Records without an agent id were written by a single-agent release and belong to its one agent. */
3
3
  export declare const PRIMARY_SESSION_AGENT_ID = "primary";
4
4
  export interface SessionRepositoryIdentity {
@@ -21,16 +21,16 @@ export interface SessionRepositoryContextOptions {
21
21
  readonly runtimeId?: string;
22
22
  /** Agent within the runtime that owns the claim; defaults to the primary agent. */
23
23
  readonly agentId?: string;
24
- readonly runtimeIdentity?: NativeProcessIdentity;
25
- readonly inspectProcess?: (pid: number) => Promise<NativeProcessIdentity | null>;
24
+ readonly runtimeIdentity?: ProcessIdentity;
25
+ readonly inspectProcess?: (pid: number) => Promise<ProcessIdentity | null>;
26
26
  readonly lockTimeoutMs?: number;
27
27
  }
28
28
  /** Publish the exact live runtime that may acquire a delivery worktree. */
29
- export declare function registerSessionRepositoryRuntime(identity: SessionRepositoryIdentity, runtimeId: string, runtimeIdentity: NativeProcessIdentity, options?: SessionRepositoryContextOptions): Promise<void>;
29
+ export declare function registerSessionRepositoryRuntime(identity: SessionRepositoryIdentity, runtimeId: string, runtimeIdentity: ProcessIdentity, options?: SessionRepositoryContextOptions): Promise<void>;
30
30
  /** Revalidate a durable association and acquire its live claim for this runtime's agent; sibling agents' claims stay. */
31
- export declare function activateSessionRepositoryContext(identity: SessionRepositoryIdentity, runtimeId: string, runtimeIdentity: NativeProcessIdentity, options?: SessionRepositoryContextOptions): Promise<SessionRepositoryContext | null>;
31
+ export declare function activateSessionRepositoryContext(identity: SessionRepositoryIdentity, runtimeId: string, runtimeIdentity: ProcessIdentity, options?: SessionRepositoryContextOptions): Promise<SessionRepositoryContext | null>;
32
32
  /** Release every agent's cooperative editing claims held by this exact runtime generation. */
33
- export declare function releaseSessionRepositoryRuntime(runtimeId: string, runtimeIdentity: NativeProcessIdentity, options?: SessionRepositoryContextOptions): Promise<void>;
33
+ export declare function releaseSessionRepositoryRuntime(runtimeId: string, runtimeIdentity: ProcessIdentity, options?: SessionRepositoryContextOptions): Promise<void>;
34
34
  /** Persist one explicit same-repository worktree association after atomically claiming it. */
35
35
  export declare function setSessionRepositoryContext(identity: SessionRepositoryIdentity, worktreePath: string, options?: SessionRepositoryContextOptions): Promise<SessionRepositoryContext>;
36
36
  /** Remove only the association and live claim belonging to the supplied stable session/runtime. */
@@ -3,6 +3,7 @@ import { open, lstat, mkdir, readFile, readdir, realpath, rename, rm, writeFile
3
3
  import { dirname, isAbsolute, join, resolve } from "node:path";
4
4
  import { promisify } from "node:util";
5
5
  import { PRODUCT_IDENTITY } from "../../product-identity.js";
6
+ import { inspectLiveProcess } from "./process-liveness.js";
6
7
  import { resolveProductPaths } from "./paths.js";
7
8
  import { claimMutationPending, withSessionClaimLock } from "./session-claim-lock.js";
8
9
  const CONTEXT_SCHEMA = "a1-session-repository-context-v1";
@@ -512,9 +513,7 @@ function ownedBy(record, owner) {
512
513
  return record.runtimeId === owner.runtimeId && record.agentId === owner.agentId;
513
514
  }
514
515
  function requireInspector(options) {
515
- if (options.inspectProcess === undefined)
516
- throw contextError("native process identity inspection is unavailable", "process-inspection-unavailable");
517
- return options.inspectProcess;
516
+ return options.inspectProcess ?? inspectLiveProcess;
518
517
  }
519
518
  function processIdentityOf(record) {
520
519
  return { pid: record.pid, startIdentity: record.startIdentity };
@@ -1,36 +1,25 @@
1
1
  import { type AvailableRelease, type ReleaseChannel } from "./latest-release.js";
2
- export declare const AUTOMATIC_UPDATE_STATE_SCHEMA = 1;
3
- export declare const AUTOMATIC_UPDATE_RETRY_MS: number;
4
- export declare const AUTOMATIC_UPDATE_ACTIVATION_RETRY_MS = 15000;
5
- export declare const ACTIVE_RELEASE_FALLBACK_MS = 5000;
2
+ declare const AUTOMATIC_UPDATE_STATE_SCHEMA = 1;
6
3
  export interface AutomaticUpdateState {
7
4
  readonly schema: typeof AUTOMATIC_UPDATE_STATE_SCHEMA;
8
5
  readonly channel: ReleaseChannel;
9
6
  readonly targetVersion: string;
10
- readonly status: "running" | "blocked" | "installed" | "failed";
7
+ readonly status: "running" | "installed" | "failed";
11
8
  readonly attemptedAt: number;
12
9
  readonly updatedAt: number;
13
10
  readonly installedVersion: string | null;
14
11
  readonly failure: string | null;
15
12
  }
16
- export declare class AutomaticUpdateStateStore {
17
- readonly path: string;
18
- constructor(dataDir: string);
19
- read(): Promise<AutomaticUpdateState | null>;
20
- write(value: AutomaticUpdateState): Promise<void>;
21
- }
22
- export interface ActiveReleaseObservationOptions {
13
+ interface ActiveReleaseObservationOptions {
23
14
  readonly runningVersion: string;
24
15
  readonly environment?: NodeJS.ProcessEnv;
25
16
  readonly signal?: AbortSignal;
26
17
  readonly onNewer: (version: string) => void;
27
18
  readonly fallbackMs?: number;
28
19
  }
29
- /** Read the approved active release only when this process executes an older release on that channel. */
30
- export declare function readNewerActiveRelease(runningVersion: string, environment?: NodeJS.ProcessEnv): Promise<string | null>;
31
20
  /** Observe local release activation promptly, with a bounded fallback for missed filesystem events. */
32
21
  export declare function observeNewerActiveRelease(options: ActiveReleaseObservationOptions): () => void;
33
- export interface AutomaticUpdateRequestOptions {
22
+ interface AutomaticUpdateRequestOptions {
34
23
  readonly release: AvailableRelease;
35
24
  readonly runningVersion: string;
36
25
  readonly environment?: NodeJS.ProcessEnv;
@@ -38,14 +27,14 @@ export interface AutomaticUpdateRequestOptions {
38
27
  readonly now?: () => number;
39
28
  readonly spawnWorker?: (entry: string, arguments_: readonly string[], environment: NodeJS.ProcessEnv) => Promise<void>;
40
29
  readonly sleep?: (durationMs: number) => Promise<void>;
41
- /** Focused-test seams; production resolves both from the certified launch cohort. */
30
+ /** Focused-test seams; production resolves both from the certified launch release. */
42
31
  readonly worker?: {
43
32
  readonly entry: string;
44
33
  readonly packageRoot: string;
45
34
  };
46
35
  readonly activeVersion?: () => Promise<string | null>;
47
- readonly onActivationBlocked?: (version: string | null) => void;
48
36
  }
49
37
  /** Start or observe one silent update and resolve with the active newer version once restart is useful. */
50
38
  export declare function requestAutomaticUpdate(options: AutomaticUpdateRequestOptions): Promise<string | null>;
51
39
  export declare function runAutomaticUpdateWorker(argv: readonly string[], environment?: NodeJS.ProcessEnv): Promise<number>;
40
+ export {};
@@ -6,22 +6,21 @@ import { basename, dirname, resolve } from "node:path";
6
6
  import { valid as validSemver } from "semver";
7
7
  import { readLaunchContext } from "../launch-context/index.js";
8
8
  import { resolveProductPaths } from "../lifecycle/index.js";
9
- import { CohortStateStore } from "./cohort-state.js";
10
- import { processIsAlive } from "./process-cleanup.js";
9
+ import { ReleaseStateStore } from "./release-state.js";
10
+ import { processIsAlive } from "./process-liveness.js";
11
11
  import { isNewerRelease, releaseChannelOf } from "./latest-release.js";
12
12
  import { readCertifiedReleaseManifest, resolveReleaseEntryPoint } from "./release-store.js";
13
13
  import { acquireUpdateExecutionLease, readUpdateExecutionOwner } from "./update-execution-lease.js";
14
14
  import { UpdateTransactionStore } from "./update-transaction.js";
15
- import { runSelfUpdate, UPDATE_ACTIVATION_BLOCKED_EXIT_CODE, UPDATE_ALREADY_RUNNING_EXIT_CODE } from "./update.js";
16
- export const AUTOMATIC_UPDATE_STATE_SCHEMA = 1;
17
- export const AUTOMATIC_UPDATE_RETRY_MS = 24 * 60 * 60_000;
18
- export const AUTOMATIC_UPDATE_ACTIVATION_RETRY_MS = 15_000;
15
+ import { runSelfUpdate, UPDATE_ALREADY_RUNNING_EXIT_CODE } from "./update.js";
16
+ const AUTOMATIC_UPDATE_STATE_SCHEMA = 1;
17
+ const AUTOMATIC_UPDATE_RETRY_MS = 24 * 60 * 60_000;
19
18
  const AUTOMATIC_UPDATE_STATE_FILENAME = "automatic-update.json";
20
19
  const MAX_STATE_BYTES = 16_384;
21
20
  const OBSERVER_POLL_MS = 250;
22
21
  const WORKER_START_GRACE_MS = 5_000;
23
- export const ACTIVE_RELEASE_FALLBACK_MS = 5_000;
24
- export class AutomaticUpdateStateStore {
22
+ const ACTIVE_RELEASE_FALLBACK_MS = 5_000;
23
+ class AutomaticUpdateStateStore {
25
24
  path;
26
25
  constructor(dataDir) { this.path = resolve(dataDir, AUTOMATIC_UPDATE_STATE_FILENAME); }
27
26
  async read() {
@@ -37,6 +36,10 @@ export class AutomaticUpdateStateStore {
37
36
  if (Buffer.byteLength(source, "utf8") > MAX_STATE_BYTES)
38
37
  throw new Error("automatic update state is oversized");
39
38
  const value = JSON.parse(source);
39
+ // Compatibility: a record left by an activation that waited on resident tabs says nothing
40
+ // about the next attempt, so it is read as no record at all.
41
+ if (value?.status === "blocked")
42
+ return null;
40
43
  validateState(value);
41
44
  return value;
42
45
  }
@@ -62,7 +65,7 @@ export class AutomaticUpdateStateStore {
62
65
  }
63
66
  }
64
67
  /** Read the approved active release only when this process executes an older release on that channel. */
65
- export async function readNewerActiveRelease(runningVersion, environment = process.env) {
68
+ async function readNewerActiveRelease(runningVersion, environment = process.env) {
66
69
  const channel = releaseChannelOf(runningVersion);
67
70
  if (channel === null)
68
71
  return null;
@@ -80,7 +83,7 @@ export function observeNewerActiveRelease(options) {
80
83
  if (releaseChannelOf(options.runningVersion) === null || options.signal?.aborted)
81
84
  return () => { };
82
85
  const paths = resolveProductPaths(options.environment ?? process.env);
83
- const store = new CohortStateStore(paths.dataDir);
86
+ const store = new ReleaseStateStore(paths.dataDir);
84
87
  let closed = false;
85
88
  let checking = false;
86
89
  let requested = false;
@@ -183,14 +186,6 @@ export async function requestAutomaticUpdate(options) {
183
186
  await store.write(existing).catch(() => undefined);
184
187
  }
185
188
  }
186
- const blockedUpdatedAt = existing?.status === "blocked" && existing.channel === options.release.channel
187
- && existing.targetVersion === options.release.version ? existing.updatedAt : null;
188
- const observedBlocked = blockedUpdatedAt !== null;
189
- if (observedBlocked) {
190
- options.onActivationBlocked?.(options.release.version);
191
- if (now() - blockedUpdatedAt >= 0 && now() - blockedUpdatedAt < AUTOMATIC_UPDATE_ACTIVATION_RETRY_MS)
192
- return null;
193
- }
194
189
  if (existing?.status === "failed" && existing.channel === options.release.channel && now() - existing.attemptedAt >= 0
195
190
  && now() - existing.attemptedAt < AUTOMATIC_UPDATE_RETRY_MS
196
191
  && !isNewerRelease(options.release.version, existing.targetVersion))
@@ -198,8 +193,8 @@ export async function requestAutomaticUpdate(options) {
198
193
  let worker = options.worker;
199
194
  if (worker === undefined) {
200
195
  const launch = readLaunchContext(environment, "release");
201
- const cohort = await new CohortStateStore(paths.dataDir).read();
202
- const record = launch.releaseId === undefined ? undefined : cohort.releases[launch.releaseId];
196
+ const releaseState = await new ReleaseStateStore(paths.dataDir).read();
197
+ const record = launch.releaseId === undefined ? undefined : releaseState.releases[launch.releaseId];
203
198
  if (!record || record.approval !== "approved" || record.releaseRoot !== launch.releaseRoot
204
199
  || record.contentDigest !== launch.releaseDigest)
205
200
  return null;
@@ -223,8 +218,6 @@ export async function requestAutomaticUpdate(options) {
223
218
  // Invariant: no worker began this attempt. Do not invent a successful install or an owner.
224
219
  await store.write(state({ packageRoot: worker.packageRoot, channel: options.release.channel,
225
220
  targetVersion: options.release.version, dataDir: paths.dataDir }, "failed", now(), null, "worker-start-failed")).catch(() => undefined);
226
- if (observedBlocked)
227
- options.onActivationBlocked?.(null);
228
221
  return null;
229
222
  }
230
223
  }
@@ -238,15 +231,8 @@ export async function requestAutomaticUpdate(options) {
238
231
  if (installed !== null)
239
232
  return installed;
240
233
  const state = await store.read().catch(() => null);
241
- if (state?.targetVersion === options.release.version && state.status === "blocked") {
242
- options.onActivationBlocked?.(state.targetVersion);
243
- return null;
244
- }
245
- if (state?.targetVersion === options.release.version && state.status === "failed" && state.attemptedAt >= startedAt) {
246
- if (observedBlocked)
247
- options.onActivationBlocked?.(null);
234
+ if (state?.targetVersion === options.release.version && state.status === "failed" && state.attemptedAt >= startedAt)
248
235
  return null;
249
- }
250
236
  const owner = await readUpdateExecutionOwner(paths.dataDir).catch(() => null);
251
237
  if ((owner === null || !processIsAlive(owner.pid)) && now() - startedAt >= WORKER_START_GRACE_MS)
252
238
  return null;
@@ -262,8 +248,8 @@ export async function runAutomaticUpdateWorker(argv, environment = process.env)
262
248
  let verified = false;
263
249
  try {
264
250
  const launch = readLaunchContext(environment, "release");
265
- const cohort = await new CohortStateStore(paths.dataDir).read();
266
- const record = launch.releaseId === undefined ? undefined : cohort.releases[launch.releaseId];
251
+ const releaseState = await new ReleaseStateStore(paths.dataDir).read();
252
+ const record = launch.releaseId === undefined ? undefined : releaseState.releases[launch.releaseId];
267
253
  if (record?.approval === "approved" && samePath(record.releaseRoot, launch.releaseRoot ?? "")
268
254
  && record.contentDigest === launch.releaseDigest) {
269
255
  const selected = await readCertifiedReleaseManifest(record, resolve(paths.dataDir, "releases"));
@@ -296,12 +282,6 @@ export async function runAutomaticUpdateWorker(argv, environment = process.env)
296
282
  });
297
283
  if (code === UPDATE_ALREADY_RUNNING_EXIT_CODE)
298
284
  return 0;
299
- if (code === UPDATE_ACTIVATION_BLOCKED_EXIT_CODE) {
300
- await runningWrite;
301
- if (acquired)
302
- await store.write(state(parsed, "blocked", attemptedAt, null, "resident-continuity-blocked"));
303
- return code;
304
- }
305
285
  if (code !== 0) {
306
286
  await runningWrite;
307
287
  if (acquired)
@@ -380,11 +360,11 @@ function activeNewerPackageVersion(active, runningVersion, channel, minimum) {
380
360
  ? active.packageVersion : null;
381
361
  }
382
362
  async function activeRelease(dataDir) {
383
- const cohort = await new CohortStateStore(dataDir).read();
384
- const activeId = cohort.references.active;
363
+ const releaseState = await new ReleaseStateStore(dataDir).read();
364
+ const activeId = releaseState.references.active;
385
365
  if (activeId === null)
386
366
  return null;
387
- const active = cohort.releases[activeId];
367
+ const active = releaseState.releases[activeId];
388
368
  return active?.approval === "approved" ? active : null;
389
369
  }
390
370
  function state(parsed, status, attemptedAt, installedVersion, failure) {
@@ -419,11 +399,10 @@ function parseWorkerArguments(argv) {
419
399
  }
420
400
  function validateState(value) {
421
401
  if (value.schema !== AUTOMATIC_UPDATE_STATE_SCHEMA || (value.channel !== "stable" && value.channel !== "development")
422
- || validSemver(value.targetVersion) === null || !["running", "blocked", "installed", "failed"].includes(value.status)
402
+ || validSemver(value.targetVersion) === null || !["running", "installed", "failed"].includes(value.status)
423
403
  || !Number.isFinite(value.attemptedAt) || !Number.isFinite(value.updatedAt)
424
404
  || (value.installedVersion !== null && validSemver(value.installedVersion) === null)
425
- || (value.failure !== null && (typeof value.failure !== "string" || value.failure.length > 512))
426
- || value.status === "blocked" && (value.installedVersion !== null || value.failure !== "resident-continuity-blocked")) {
405
+ || (value.failure !== null && (typeof value.failure !== "string" || value.failure.length > 512))) {
427
406
  throw new Error("invalid automatic update state");
428
407
  }
429
408
  }
@@ -1,49 +1,26 @@
1
- import { type SupervisorEndpointMetadata } from "./cohort-state.js";
2
- import { resolveProductPaths, type SessionSelection, type LaunchProfileId, type SupervisorStartupAttemptIdentity } from "../lifecycle/index.js";
3
- import { cleanupProvenIdleOwner } from "./process-cleanup.js";
1
+ import { resolveProductPaths, type SessionSelection, type LaunchProfileId } from "../lifecycle/index.js";
4
2
  import { type MaterializedRelease, type VerifyMaterializedReleaseOptions } from "./release-store.js";
5
- import { type EnsureTerminalHostOptions, type EnsureTerminalHostResult } from "../resident-tabs/index.js";
6
3
  export interface BootstrapOptions {
7
4
  readonly packageRoot: string;
8
5
  readonly launchIntent?: {
9
6
  readonly kind: "interactive";
10
7
  readonly profileId: LaunchProfileId;
11
- readonly launchMode: "tabs" | "solo";
12
8
  readonly sessionSelection?: SessionSelection;
13
9
  };
14
10
  readonly environment?: NodeJS.ProcessEnv;
15
11
  readonly output?: Pick<NodeJS.WriteStream, "write">;
16
12
  /** Optional package-resolution probe that excludes a damaged retained release. */
17
13
  readonly releaseIsLaunchable?: (releaseRoot: string) => boolean;
18
- /** Test seam for bounded maintenance scheduled after stale endpoint sweeping. */
14
+ /** Test seam for bounded maintenance scheduled before the UI starts. */
19
15
  readonly scheduleMaintenance?: (dataDir: string, paths: ReturnType<typeof resolveProductPaths>) => Promise<void>;
20
- /** Test seam for resident launch routing before the guardian starts. */
21
- readonly ensureTerminalHost?: (options: EnsureTerminalHostOptions) => Promise<EnsureTerminalHostResult>;
22
- /** Test seam for whether this process's standard input and output are terminals; absent reads them. */
23
- readonly interactiveTerminal?: boolean;
24
16
  }
25
17
  export declare function runBootstrap(options: BootstrapOptions): Promise<number>;
26
18
  export declare function certifyMaterializedRelease(release: MaterializedRelease, dataDir: string, verification?: VerifyMaterializedReleaseOptions): Promise<string>;
27
19
  /** Persist current-format evidence after an authenticated parent has certified the exact release. */
28
20
  export declare function recordParentCertifiedRelease(release: MaterializedRelease, dataDir: string): Promise<string>;
29
- export interface SupervisorStartupAttempt extends SupervisorStartupAttemptIdentity {
30
- readonly childOutcome: Promise<{
31
- readonly exitCode: number | null;
32
- readonly signal: NodeJS.Signals | null;
33
- }>;
34
- }
35
- /** Reuse a verified owner, or join the winner if another launch starts the same cohort first. */
36
- export declare function ensureSupervisor(release: MaterializedRelease, environment: NodeJS.ProcessEnv): Promise<void>;
37
- export declare function startSupervisor(release: MaterializedRelease, environment: NodeJS.ProcessEnv): Promise<SupervisorStartupAttempt>;
38
21
  /**
39
22
  * Hand a release the key set its own build reads. A retained pre-cutover release is
40
23
  * still startable this way, which is what lets a launch fall back to the previous
41
24
  * version instead of failing while an installation is being replaced.
42
25
  */
43
26
  export declare function releaseEnvironment(environment: NodeJS.ProcessEnv, release: MaterializedRelease, profile?: LaunchProfileId): NodeJS.ProcessEnv;
44
- export declare function waitForVerifiedEndpoint(path: string, release: MaterializedRelease, timeoutMs: number, startup?: SupervisorStartupAttempt): Promise<void>;
45
- export declare function releaseVerifiedIdleOwner(metadata: SupervisorEndpointMetadata, dataDir: string, operations?: {
46
- readonly waitForExit?: typeof waitForProcessExit;
47
- readonly cleanup?: typeof cleanupProvenIdleOwner;
48
- }): Promise<boolean>;
49
- export declare function waitForProcessExit(pid: number, timeoutMs: number): Promise<void>;