@timurproko/a1 0.1.8-dev.ece8cef → 0.2.0

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 (918) hide show
  1. package/README.md +104 -58
  2. package/bin/activate.js +8 -0
  3. package/bin/cli.js +39 -13
  4. package/bin/guardian.js +21 -6
  5. package/bin/module-identity.js +76 -69
  6. package/bin/module-resolver.js +138 -0
  7. package/bin/pinned-pi-public.d.ts +3 -0
  8. package/bin/pinned-pi-public.js +93 -0
  9. package/bin/release-cleanup.js +8 -0
  10. package/bin/supervisor.js +2 -2
  11. package/bin/sync-pi-tui-proxy.js +7 -0
  12. package/bin/ui.js +67 -22
  13. package/bin/update-recovery.js +365 -0
  14. package/bin/warmup.js +28 -0
  15. package/dist/app/session-shell/clipboard-diagnostics.d.ts +16 -0
  16. package/dist/app/session-shell/clipboard-diagnostics.js +65 -0
  17. package/dist/app/session-shell/clipboard-image.d.ts +11 -0
  18. package/dist/app/session-shell/clipboard-image.js +38 -0
  19. package/dist/app/session-shell/editor-hyperlink-budget.d.ts +9 -0
  20. package/dist/app/session-shell/editor-hyperlink-budget.js +23 -0
  21. package/dist/app/session-shell/helper-pool.d.ts +33 -0
  22. package/dist/app/session-shell/helper-pool.js +98 -0
  23. package/dist/app/session-shell/image-preparation-client.d.ts +20 -0
  24. package/dist/app/session-shell/image-preparation-client.js +145 -0
  25. package/dist/app/session-shell/image-preparation.d.ts +18 -0
  26. package/dist/app/session-shell/image-preparation.js +126 -0
  27. package/dist/app/session-shell/image-source.d.ts +13 -0
  28. package/dist/app/session-shell/image-source.js +171 -0
  29. package/dist/app/session-shell/image-worker.d.ts +17 -0
  30. package/dist/app/session-shell/image-worker.js +23 -0
  31. package/dist/app/session-shell/index.d.ts +7 -0
  32. package/dist/app/session-shell/index.js +4 -0
  33. package/dist/app/session-shell/paste-executor.d.ts +18 -0
  34. package/dist/app/session-shell/paste-executor.js +253 -0
  35. package/dist/app/session-shell/paste-helper.js +173 -0
  36. package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
  37. package/dist/app/session-shell/paste-preparation-client.js +170 -0
  38. package/dist/app/session-shell/paste-protocol.d.ts +78 -0
  39. package/dist/app/session-shell/paste-protocol.js +18 -0
  40. package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
  41. package/dist/app/session-shell/paste-text-preparation.js +134 -0
  42. package/dist/app/session-shell/paste-text-worker.js +12 -0
  43. package/dist/app/session-shell/paste-types.d.ts +17 -0
  44. package/dist/app/session-shell/path-chip-presentation.d.ts +7 -0
  45. package/dist/app/session-shell/path-chip-presentation.js +24 -0
  46. package/dist/app/session-shell/prompt-chips.d.ts +76 -0
  47. package/dist/app/session-shell/prompt-chips.js +499 -0
  48. package/dist/app/session-shell/prompt-history-controller.d.ts +36 -0
  49. package/dist/app/session-shell/prompt-history-controller.js +170 -0
  50. package/dist/app/session-shell/prompt-suggestion-controller.d.ts +37 -0
  51. package/dist/app/session-shell/prompt-suggestion-controller.js +219 -0
  52. package/dist/app/session-shell/quit-outro-effects.d.ts +29 -0
  53. package/dist/app/session-shell/quit-outro-effects.js +242 -0
  54. package/dist/app/session-shell/quit-outro.d.ts +38 -0
  55. package/dist/app/session-shell/quit-outro.js +98 -0
  56. package/dist/app/session-shell/response-copy-coordinator.d.ts +27 -0
  57. package/dist/app/session-shell/response-copy-coordinator.js +187 -0
  58. package/dist/app/session-shell/response-copy-helper.js +122 -0
  59. package/dist/app/session-shell/response-copy-protocol.d.ts +56 -0
  60. package/dist/app/session-shell/response-copy-protocol.js +5 -0
  61. package/dist/app/session-shell/response-copy-transport.d.ts +39 -0
  62. package/dist/app/session-shell/response-copy-transport.js +217 -0
  63. package/dist/app/session-shell/session-shell-root.d.ts +278 -0
  64. package/dist/app/session-shell/session-shell-root.js +1442 -0
  65. package/dist/app/session-shell/session-shell.d.ts +66 -0
  66. package/dist/app/session-shell/session-shell.js +2151 -0
  67. package/dist/app/session-shell/session-viewport-controller.d.ts +62 -0
  68. package/dist/app/session-shell/session-viewport-controller.js +623 -0
  69. package/dist/app/session-shell/stream-presentation-coalescer.d.ts +29 -0
  70. package/dist/app/session-shell/stream-presentation-coalescer.js +79 -0
  71. package/dist/app/session-shell/system-clipboard.d.ts +20 -0
  72. package/dist/app/session-shell/system-clipboard.js +159 -0
  73. package/dist/app/session-shell/text-paste.d.ts +5 -0
  74. package/dist/app/session-shell/text-paste.js +16 -0
  75. package/dist/cli/capabilities.d.ts +6 -0
  76. package/dist/cli/capabilities.js +7 -0
  77. package/dist/cli/dispatch.d.ts +53 -0
  78. package/dist/cli/dispatch.js +287 -0
  79. package/dist/cli/index.d.ts +8 -0
  80. package/dist/cli/index.js +4 -0
  81. package/dist/cli/package-messages.d.ts +27 -0
  82. package/dist/cli/package-messages.js +83 -0
  83. package/dist/cli/packages.d.ts +32 -0
  84. package/dist/cli/packages.js +81 -0
  85. package/dist/cli/session-context.d.ts +9 -0
  86. package/dist/cli/session-context.js +29 -0
  87. package/dist/cli/version-stats.d.ts +22 -0
  88. package/dist/cli/version-stats.js +112 -0
  89. package/dist/composition/index.d.ts +2 -0
  90. package/dist/composition/index.js +2 -0
  91. package/dist/composition/owned-ui.d.ts +37 -0
  92. package/dist/composition/owned-ui.js +159 -0
  93. package/dist/composition/settings-route-host.d.ts +16 -0
  94. package/dist/composition/settings-route-host.js +141 -0
  95. package/dist/contracts/agent-engine/capability-ports.d.ts +95 -0
  96. package/dist/contracts/agent-engine/domain-validation.js +107 -0
  97. package/dist/contracts/agent-engine/domain.d.ts +138 -0
  98. package/dist/contracts/agent-engine/index.d.ts +11 -0
  99. package/dist/contracts/agent-engine/index.js +6 -0
  100. package/dist/contracts/agent-engine/package-ports.d.ts +60 -0
  101. package/dist/contracts/agent-engine/ports.js +1 -0
  102. package/dist/contracts/owned-ui/extension-ui.d.ts +310 -0
  103. package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
  104. package/dist/contracts/owned-ui/image-attachments.js +67 -0
  105. package/dist/contracts/owned-ui/index.d.ts +14 -0
  106. package/dist/contracts/owned-ui/index.js +9 -0
  107. package/dist/contracts/owned-ui/model.d.ts +383 -0
  108. package/dist/contracts/owned-ui/prompt-chips.d.ts +15 -0
  109. package/dist/contracts/owned-ui/prompt-chips.js +59 -0
  110. package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
  111. package/dist/contracts/owned-ui/prompt-history.js +23 -0
  112. package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
  113. package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
  114. package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
  115. package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
  116. package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
  117. package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
  118. package/dist/contracts/owned-ui/validation.d.ts +15 -0
  119. package/dist/contracts/owned-ui/validation.js +554 -0
  120. package/dist/contracts/presentation/index.d.ts +117 -0
  121. package/dist/contracts/presentation/index.js +68 -0
  122. package/dist/features/launch/development-launch.js +36 -0
  123. package/dist/features/launch/index.d.ts +14 -0
  124. package/dist/features/launch/index.js +7 -0
  125. package/dist/features/launch/intent.d.ts +12 -0
  126. package/dist/features/launch/intent.js +8 -0
  127. package/dist/features/launch/prepare-launch.d.ts +11 -0
  128. package/dist/features/launch/prepare-launch.js +14 -0
  129. package/dist/features/launch/profile-paths.d.ts +16 -0
  130. package/dist/features/launch/profile-paths.js +36 -0
  131. package/dist/features/launch/runtime-selection.d.ts +16 -0
  132. package/dist/features/launch/runtime-selection.js +13 -0
  133. package/dist/features/launch/session-context.d.ts +8 -0
  134. package/dist/features/launch/session-context.js +8 -0
  135. package/dist/features/owned-ui/index.d.ts +9 -0
  136. package/dist/features/owned-ui/index.js +6 -0
  137. package/dist/features/owned-ui/project-trust-prompt.d.ts +25 -0
  138. package/dist/features/owned-ui/project-trust-prompt.js +149 -0
  139. package/dist/features/owned-ui/reference-routes.d.ts +6 -0
  140. package/dist/features/owned-ui/reference-routes.js +6 -0
  141. package/dist/features/owned-ui/reference-screen-app.d.ts +43 -0
  142. package/dist/features/owned-ui/reference-screen-app.js +279 -0
  143. package/dist/features/owned-ui/run.d.ts +17 -0
  144. package/dist/features/owned-ui/run.js +64 -0
  145. package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
  146. package/dist/features/owned-ui/session-fork-prompt.js +34 -0
  147. package/dist/features/owned-ui/settings-app.d.ts +21 -0
  148. package/dist/features/owned-ui/settings-app.js +851 -0
  149. package/dist/features/owned-ui/settings-route.d.ts +2 -0
  150. package/dist/features/owned-ui/settings-route.js +2 -0
  151. package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
  152. package/dist/features/prompt-history/image-sidecar.js +130 -0
  153. package/dist/features/prompt-history/index.d.ts +4 -0
  154. package/dist/features/prompt-history/index.js +3 -0
  155. package/dist/features/prompt-history/paths.d.ts +5 -0
  156. package/dist/features/prompt-history/paths.js +17 -0
  157. package/dist/features/prompt-history/service.d.ts +54 -0
  158. package/dist/features/prompt-history/service.js +425 -0
  159. package/dist/features/prompt-history/store.d.ts +16 -0
  160. package/dist/features/prompt-history/store.js +219 -0
  161. package/dist/features/prompt-history/worker.d.ts +9 -0
  162. package/dist/features/prompt-history/worker.js +45 -0
  163. package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
  164. package/dist/features/prompt-suggestions/diagnostics.js +82 -0
  165. package/dist/features/prompt-suggestions/index.d.ts +2 -0
  166. package/dist/features/prompt-suggestions/index.js +1 -0
  167. package/dist/foundation/launch-context/index.d.ts +59 -0
  168. package/dist/foundation/launch-context/index.js +136 -0
  169. package/dist/foundation/launch-guardian/index.d.ts +2 -0
  170. package/dist/foundation/launch-guardian/index.js +1 -0
  171. package/dist/foundation/launch-guardian/main.d.ts +33 -0
  172. package/dist/foundation/launch-guardian/main.js +179 -0
  173. package/dist/foundation/lifecycle/commands.js +1 -0
  174. package/dist/foundation/lifecycle/index.d.ts +13 -0
  175. package/dist/foundation/lifecycle/index.js +6 -0
  176. package/dist/foundation/lifecycle/model.d.ts +64 -0
  177. package/dist/foundation/lifecycle/model.js +40 -0
  178. package/dist/foundation/lifecycle/paths.d.ts +30 -0
  179. package/dist/foundation/lifecycle/paths.js +70 -0
  180. package/dist/foundation/lifecycle/session-repository-context.d.ts +18 -0
  181. package/dist/foundation/lifecycle/session-repository-context.js +173 -0
  182. package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
  183. package/dist/foundation/lifecycle/session-selection.js +39 -0
  184. package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
  185. package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
  186. package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
  187. package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
  188. package/dist/foundation/process-containment/index.d.ts +8 -0
  189. package/dist/foundation/process-containment/index.js +6 -0
  190. package/dist/foundation/process-containment/linux-process-inspector.d.ts +7 -0
  191. package/dist/foundation/process-containment/linux-process-inspector.js +27 -0
  192. package/dist/foundation/process-containment/native-guardian-containment.d.ts +17 -0
  193. package/dist/foundation/process-containment/native-guardian-containment.js +140 -0
  194. package/dist/foundation/process-containment/windows-process-inspector.d.ts +19 -0
  195. package/dist/foundation/process-containment/windows-process-inspector.js +56 -0
  196. package/dist/foundation/protocol/client.d.ts +18 -0
  197. package/dist/foundation/protocol/client.js +130 -0
  198. package/dist/foundation/protocol/index.d.ts +3 -0
  199. package/dist/foundation/protocol/index.js +2 -0
  200. package/dist/foundation/protocol/messages.d.ts +90 -0
  201. package/dist/foundation/protocol/messages.js +100 -0
  202. package/dist/foundation/release/bootstrap.d.ts +51 -0
  203. package/dist/foundation/release/bootstrap.js +470 -0
  204. package/dist/foundation/release/cohort-state.d.ts +159 -0
  205. package/dist/foundation/release/cohort-state.js +507 -0
  206. package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
  207. package/dist/foundation/release/dependency-certification-retention.js +88 -0
  208. package/dist/foundation/release/dependency-certification.d.ts +24 -0
  209. package/dist/foundation/release/dependency-certification.js +266 -0
  210. package/dist/foundation/release/dependency-layer.d.ts +78 -0
  211. package/dist/foundation/release/dependency-layer.js +466 -0
  212. package/dist/foundation/release/endpoints.d.ts +24 -0
  213. package/dist/foundation/release/endpoints.js +134 -0
  214. package/dist/foundation/release/immutable-platform.d.ts +6 -0
  215. package/dist/foundation/release/immutable-platform.js +13 -0
  216. package/dist/foundation/release/index.d.ts +33 -0
  217. package/dist/foundation/release/index.js +18 -0
  218. package/dist/foundation/release/ordinary-launch-selection.d.ts +14 -0
  219. package/dist/foundation/release/ordinary-launch-selection.js +15 -0
  220. package/dist/foundation/release/release-gc.d.ts +71 -0
  221. package/dist/foundation/release/release-gc.js +764 -0
  222. package/dist/foundation/release/release-store.d.ts +49 -0
  223. package/dist/foundation/release/release-store.js +235 -0
  224. package/dist/foundation/release/release.d.ts +43 -0
  225. package/dist/foundation/release/release.js +215 -0
  226. package/dist/foundation/release/restart-certification.d.ts +68 -0
  227. package/dist/foundation/release/restart-certification.js +227 -0
  228. package/dist/foundation/release/types.d.ts +11 -0
  229. package/dist/foundation/release/types.js +1 -0
  230. package/dist/foundation/release/update-activation.d.ts +72 -0
  231. package/dist/foundation/release/update-activation.js +204 -0
  232. package/dist/foundation/release/update-launch.d.ts +6 -0
  233. package/dist/foundation/release/update-launch.js +17 -0
  234. package/dist/foundation/release/update-recovery.d.ts +82 -0
  235. package/dist/foundation/release/update-recovery.js +386 -0
  236. package/dist/foundation/release/update-transaction.d.ts +42 -0
  237. package/dist/foundation/release/update-transaction.js +101 -0
  238. package/dist/foundation/release/update.d.ts +142 -0
  239. package/dist/foundation/release/update.js +773 -0
  240. package/dist/foundation/release/warmup.d.ts +3 -0
  241. package/dist/foundation/release/warmup.js +47 -0
  242. package/dist/foundation/startup/index.d.ts +4 -0
  243. package/dist/foundation/startup/index.js +2 -0
  244. package/dist/foundation/startup/startup-budget.d.ts +46 -0
  245. package/dist/foundation/startup/startup-budget.js +42 -0
  246. package/dist/foundation/startup/startup-descriptor.js +34 -0
  247. package/dist/foundation/startup/startup-runtime.d.ts +27 -0
  248. package/dist/foundation/startup/startup-runtime.js +128 -0
  249. package/dist/foundation/storage/control-store.d.ts +18 -0
  250. package/dist/foundation/storage/control-store.js +342 -0
  251. package/dist/foundation/storage/index.d.ts +1 -0
  252. package/dist/foundation/storage/index.js +1 -0
  253. package/dist/foundation/supervision/index.d.ts +3 -0
  254. package/dist/foundation/supervision/index.js +3 -0
  255. package/dist/foundation/supervision/main.d.ts +1 -0
  256. package/dist/foundation/supervision/main.js +84 -0
  257. package/dist/foundation/supervision/paths.d.ts +1 -0
  258. package/dist/foundation/supervision/paths.js +1 -0
  259. package/dist/foundation/supervision/server.d.ts +46 -0
  260. package/dist/foundation/supervision/server.js +584 -0
  261. package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
  262. package/dist/foundation/terminal-cleanup/fatal-exit.js +87 -0
  263. package/dist/foundation/terminal-cleanup/index.d.ts +3 -0
  264. package/dist/foundation/terminal-cleanup/index.js +2 -0
  265. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
  266. package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
  267. package/dist/integrations/pi/components/components.d.ts +4 -0
  268. package/dist/integrations/pi/components/components.js +64 -0
  269. package/dist/integrations/pi/components/conformance.d.ts +18 -0
  270. package/dist/integrations/pi/components/conformance.js +70 -0
  271. package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
  272. package/dist/integrations/pi/components/editor-interaction.js +1 -0
  273. package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
  274. package/dist/integrations/pi/components/history-editor-loader.js +5 -0
  275. package/dist/integrations/pi/components/index.d.ts +26 -0
  276. package/dist/integrations/pi/components/index.js +16 -0
  277. package/dist/integrations/pi/components/modal-frame.d.ts +41 -0
  278. package/dist/integrations/pi/components/modal-frame.js +110 -0
  279. package/dist/integrations/pi/components/models-dialog.d.ts +55 -0
  280. package/dist/integrations/pi/components/models-dialog.js +403 -0
  281. package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
  282. package/dist/integrations/pi/components/owned-editor-ux.js +1094 -0
  283. package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
  284. package/dist/integrations/pi/components/path-word-ranges.js +37 -0
  285. package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
  286. package/dist/integrations/pi/components/prompt-input-port.js +1 -0
  287. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +167 -0
  288. package/dist/integrations/pi/components/resources/builtin-themes.js +168 -0
  289. package/dist/integrations/pi/components/shell-components.d.ts +7 -0
  290. package/dist/integrations/pi/components/shell-components.js +7 -0
  291. package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +23 -0
  292. package/dist/integrations/pi/components/shell-editor-autocomplete.js +357 -0
  293. package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
  294. package/dist/integrations/pi/components/shell-extension-ui.js +282 -0
  295. package/dist/integrations/pi/components/shell-footer-status.d.ts +8 -0
  296. package/dist/integrations/pi/components/shell-footer-status.js +287 -0
  297. package/dist/integrations/pi/components/shell-hotkey-sections.d.ts +7 -0
  298. package/dist/integrations/pi/components/shell-hotkey-sections.js +29 -0
  299. package/dist/integrations/pi/components/shell-presenters-info.d.ts +73 -0
  300. package/dist/integrations/pi/components/shell-presenters-info.js +188 -0
  301. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
  302. package/dist/integrations/pi/components/shell-presenters-transcript.js +435 -0
  303. package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +134 -0
  304. package/dist/integrations/pi/components/shell-selectors-dialogs.js +286 -0
  305. package/dist/integrations/pi/components/shell-shared-facade.d.ts +233 -0
  306. package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
  307. package/dist/integrations/pi/components/skills-command.d.ts +49 -0
  308. package/dist/integrations/pi/components/skills-command.js +119 -0
  309. package/dist/integrations/pi/components/skills-dialog.d.ts +9 -0
  310. package/dist/integrations/pi/components/skills-dialog.js +128 -0
  311. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
  312. package/dist/integrations/pi/components/submitted-prompt-adapter.js +52 -0
  313. package/dist/integrations/pi/components/theme.d.ts +5 -0
  314. package/dist/integrations/pi/components/theme.js +11 -0
  315. package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +8 -0
  316. package/dist/integrations/pi/components/thinking-selector-dialog.js +22 -0
  317. package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
  318. package/dist/integrations/pi/components/tool-image-presentation.js +83 -0
  319. package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
  320. package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
  321. package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
  322. package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
  323. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +445 -0
  324. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +371 -0
  325. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
  326. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +13 -0
  327. package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +29 -0
  328. package/dist/integrations/pi/components/upstream/components/daxnuts.js +146 -0
  329. package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +4 -0
  330. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +48 -0
  331. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +22 -0
  332. package/dist/integrations/pi/components/upstream/components/extension-editor.js +89 -0
  333. package/dist/integrations/pi/components/upstream/components/extension-input.d.ts +17 -0
  334. package/dist/integrations/pi/components/upstream/components/extension-input.js +73 -0
  335. package/dist/integrations/pi/components/upstream/components/extension-selector.d.ts +15 -0
  336. package/dist/integrations/pi/components/upstream/components/extension-selector.js +93 -0
  337. package/dist/integrations/pi/components/upstream/components/mermaid.js +81 -0
  338. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +52 -0
  339. package/dist/integrations/pi/components/upstream/components/owned-editor.js +222 -0
  340. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +60 -0
  341. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +347 -0
  342. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +12 -0
  343. package/dist/integrations/pi/components/upstream/components/session-footer.js +150 -0
  344. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +161 -0
  345. package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +97 -0
  346. package/dist/integrations/pi/components/upstream/components/session-selector.js +935 -0
  347. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +21 -0
  348. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +54 -0
  349. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +35 -0
  350. package/dist/integrations/pi/components/upstream/components/status-indicator.js +69 -0
  351. package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +36 -0
  352. package/dist/integrations/pi/components/upstream/components/thinking-selector.js +153 -0
  353. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +67 -0
  354. package/dist/integrations/pi/components/upstream/components/tool-execution.js +365 -0
  355. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +102 -0
  356. package/dist/integrations/pi/components/upstream/components/tree-selector.js +1294 -0
  357. package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
  358. package/dist/integrations/pi/components/upstream/components/trust-selector.js +87 -0
  359. package/dist/integrations/pi/components/upstream/external-editor.js +43 -0
  360. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +289 -0
  361. package/dist/integrations/pi/components/upstream/history/editor-core.js +2145 -0
  362. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +35 -0
  363. package/dist/integrations/pi/components/upstream/history/kill-ring.js +51 -0
  364. package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
  365. package/dist/integrations/pi/components/upstream/history/printable-key.js +43 -0
  366. package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +17 -0
  367. package/dist/integrations/pi/components/upstream/history/text-helpers.js +34 -0
  368. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +25 -0
  369. package/dist/integrations/pi/components/upstream/history/undo-stack.js +39 -0
  370. package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
  371. package/dist/integrations/pi/components/upstream/history/word-navigation.js +103 -0
  372. package/dist/integrations/pi/components/upstream/model-search.d.ts +18 -0
  373. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +33 -0
  374. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +114 -0
  375. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +61 -0
  376. package/dist/integrations/pi/components/upstream/theme/theme.js +337 -0
  377. package/dist/integrations/pi/engine/adapter.d.ts +140 -0
  378. package/dist/integrations/pi/engine/adapter.js +663 -0
  379. package/dist/integrations/pi/engine/changelog.d.ts +2 -0
  380. package/dist/integrations/pi/engine/changelog.js +63 -0
  381. package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
  382. package/dist/integrations/pi/engine/command-dispatch.js +125 -0
  383. package/dist/integrations/pi/engine/compaction-progress.d.ts +24 -0
  384. package/dist/integrations/pi/engine/compaction-progress.js +97 -0
  385. package/dist/integrations/pi/engine/conformance.d.ts +39 -0
  386. package/dist/integrations/pi/engine/conformance.js +140 -0
  387. package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
  388. package/dist/integrations/pi/engine/event-delivery.js +184 -0
  389. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
  390. package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
  391. package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
  392. package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
  393. package/dist/integrations/pi/engine/index.d.ts +18 -0
  394. package/dist/integrations/pi/engine/index.js +10 -0
  395. package/dist/integrations/pi/engine/message-values.d.ts +29 -0
  396. package/dist/integrations/pi/engine/message-values.js +169 -0
  397. package/dist/integrations/pi/engine/package-integration.d.ts +13 -0
  398. package/dist/integrations/pi/engine/package-integration.js +118 -0
  399. package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
  400. package/dist/integrations/pi/engine/pending-delivery.js +156 -0
  401. package/dist/integrations/pi/engine/pi-settings-metadata.json +397 -0
  402. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +22 -0
  403. package/dist/integrations/pi/engine/project-trust-preflight.js +50 -0
  404. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
  405. package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
  406. package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
  407. package/dist/integrations/pi/engine/provider-authentication.js +209 -0
  408. package/dist/integrations/pi/engine/repository-pr.d.ts +8 -0
  409. package/dist/integrations/pi/engine/repository-pr.js +62 -0
  410. package/dist/integrations/pi/engine/resource-catalog.d.ts +50 -0
  411. package/dist/integrations/pi/engine/resource-catalog.js +299 -0
  412. package/dist/integrations/pi/engine/resources/changelog.json +12 -0
  413. package/dist/integrations/pi/engine/runtime-integration.d.ts +53 -0
  414. package/dist/integrations/pi/engine/runtime-integration.js +118 -0
  415. package/dist/integrations/pi/engine/session-events.d.ts +48 -0
  416. package/dist/integrations/pi/engine/session-events.js +223 -0
  417. package/dist/integrations/pi/engine/session-integration.d.ts +67 -0
  418. package/dist/integrations/pi/engine/session-integration.js +195 -0
  419. package/dist/integrations/pi/engine/session-runtime.d.ts +98 -0
  420. package/dist/integrations/pi/engine/session-runtime.js +412 -0
  421. package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
  422. package/dist/integrations/pi/engine/session-selection.js +90 -0
  423. package/dist/integrations/pi/engine/settings-bridge.d.ts +121 -0
  424. package/dist/integrations/pi/engine/settings-bridge.js +516 -0
  425. package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
  426. package/dist/integrations/pi/engine/settings-metadata.js +67 -0
  427. package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
  428. package/dist/integrations/pi/engine/settings-port.js +363 -0
  429. package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
  430. package/dist/integrations/pi/engine/tool-rendering.js +145 -0
  431. package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
  432. package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
  433. package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
  434. package/dist/integrations/pi/engine/transcript-projection.js +440 -0
  435. package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
  436. package/dist/integrations/pi/engine/usage-view.js +56 -0
  437. package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
  438. package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
  439. package/dist/integrations/pi/engine/workflow-contexts.d.ts +66 -0
  440. package/dist/integrations/pi/engine/workflow-contexts.js +360 -0
  441. package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
  442. package/dist/integrations/pi/engine/workflow-runner.js +536 -0
  443. package/dist/integrations/pi/engine/workflow-support.d.ts +38 -0
  444. package/dist/integrations/pi/engine/workflow-support.js +386 -0
  445. package/dist/integrations/pi/engine/workflows.d.ts +308 -0
  446. package/dist/integrations/pi/engine/workflows.js +81 -0
  447. package/dist/integrations/pi/startup-public.d.ts +2 -0
  448. package/dist/integrations/pi/startup-public.js +2254 -0
  449. package/dist/integrations/pi/startup-public.manifest.json +12679 -0
  450. package/dist/integrations/pi/tui-runtime/adapter.d.ts +58 -0
  451. package/dist/integrations/pi/tui-runtime/adapter.js +792 -0
  452. package/dist/integrations/pi/tui-runtime/contracts.d.ts +158 -0
  453. package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
  454. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +88 -0
  455. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +439 -0
  456. package/dist/integrations/pi/tui-runtime/index.d.ts +9 -0
  457. package/dist/integrations/pi/tui-runtime/index.js +5 -0
  458. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
  459. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
  460. package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +19 -0
  461. package/dist/integrations/pi/tui-runtime/mouse-report-input.js +91 -0
  462. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
  463. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +158 -0
  464. package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +4 -0
  465. package/dist/integrations/pi/tui-runtime/presentation-adapter.js +48 -0
  466. package/dist/native/darwin-arm64/manifest.json +4 -4
  467. package/dist/native/darwin-arm64/process-guardian +0 -0
  468. package/dist/native/linux-x64/manifest.json +3 -3
  469. package/dist/native/linux-x64/process-guardian +0 -0
  470. package/dist/native/win32-x64/manifest.json +3 -3
  471. package/dist/native/win32-x64/process-guardian.exe +0 -0
  472. package/dist/product-identity.d.ts +37 -0
  473. package/dist/product-identity.js +119 -0
  474. package/dist/product-identity.json +87 -0
  475. package/dist/runtime-payload-inventory.json +134179 -0
  476. package/dist/ui/apps/contracts.d.ts +72 -0
  477. package/dist/ui/apps/host.d.ts +42 -0
  478. package/dist/ui/apps/host.js +156 -0
  479. package/dist/ui/apps/index.d.ts +5 -0
  480. package/dist/ui/apps/index.js +3 -0
  481. package/dist/ui/apps/registry.d.ts +12 -0
  482. package/dist/ui/apps/registry.js +33 -0
  483. package/dist/ui/components/dialog-panel.d.ts +37 -0
  484. package/dist/ui/components/dialog-panel.js +58 -0
  485. package/dist/ui/components/frame.d.ts +22 -0
  486. package/dist/ui/components/frame.js +55 -0
  487. package/dist/ui/components/index.d.ts +50 -0
  488. package/dist/ui/components/index.js +26 -0
  489. package/dist/ui/components/line-input.d.ts +68 -0
  490. package/dist/ui/components/line-input.js +224 -0
  491. package/dist/ui/components/list-block.d.ts +70 -0
  492. package/dist/ui/components/list-block.js +189 -0
  493. package/dist/ui/components/list-view.d.ts +60 -0
  494. package/dist/ui/components/list-view.js +84 -0
  495. package/dist/ui/components/mouse.d.ts +25 -0
  496. package/dist/ui/components/mouse.js +72 -0
  497. package/dist/ui/components/progress-status.d.ts +9 -0
  498. package/dist/ui/components/progress-status.js +25 -0
  499. package/dist/ui/components/prompt-input.d.ts +32 -0
  500. package/dist/ui/components/prompt-input.js +51 -0
  501. package/dist/ui/components/scrollbar.d.ts +88 -0
  502. package/dist/ui/components/scrollbar.js +137 -0
  503. package/dist/ui/components/selection-copy.d.ts +24 -0
  504. package/dist/ui/components/selection-copy.js +39 -0
  505. package/dist/ui/components/shortcut-hints.d.ts +7 -0
  506. package/dist/ui/components/shortcut-hints.js +12 -0
  507. package/dist/ui/components/shortcuts.d.ts +60 -0
  508. package/dist/ui/components/shortcuts.js +85 -0
  509. package/dist/ui/components/spans.d.ts +28 -0
  510. package/dist/ui/components/spans.js +266 -0
  511. package/dist/ui/components/submitted-prompt.d.ts +23 -0
  512. package/dist/ui/components/submitted-prompt.js +50 -0
  513. package/dist/ui/components/surface.d.ts +20 -0
  514. package/dist/ui/components/surface.js +44 -0
  515. package/dist/ui/components/text-selection.d.ts +62 -0
  516. package/dist/ui/components/text-selection.js +210 -0
  517. package/dist/ui/components/text.d.ts +38 -0
  518. package/dist/ui/components/text.js +185 -0
  519. package/dist/ui/components/theme.d.ts +19 -0
  520. package/dist/ui/components/theme.js +9 -0
  521. package/dist/ui/components/transcript-viewport.d.ts +187 -0
  522. package/dist/ui/components/transcript-viewport.js +886 -0
  523. package/dist/ui/components/value-menu.d.ts +43 -0
  524. package/dist/ui/components/value-menu.js +41 -0
  525. package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
  526. package/dist/ui/components/visible-hyperlinks.js +97 -0
  527. package/dist/ui/settings/declarations.d.ts +127 -0
  528. package/dist/ui/settings/declarations.js +124 -0
  529. package/dist/ui/settings/index.d.ts +10 -0
  530. package/dist/ui/settings/index.js +5 -0
  531. package/dist/ui/settings/manager.d.ts +54 -0
  532. package/dist/ui/settings/manager.js +256 -0
  533. package/dist/ui/settings/migrations.d.ts +13 -0
  534. package/dist/ui/settings/migrations.js +92 -0
  535. package/dist/ui/settings/sections.d.ts +52 -0
  536. package/dist/ui/settings/sections.js +112 -0
  537. package/docs/architecture/boundaries.md +17 -13
  538. package/docs/architecture/code-documentation.md +77 -0
  539. package/docs/architecture/history-editor-provenance.md +100 -0
  540. package/docs/architecture/internal-naming.md +94 -0
  541. package/docs/architecture/process-guardian-provenance.md +3 -1
  542. package/docs/architecture/project-structure.md +72 -30
  543. package/docs/architecture/prompt-suggestions.md +68 -0
  544. package/docs/architecture/resource-and-data-policy.md +28 -2
  545. package/docs/architecture/response-copy-delivery.md +85 -0
  546. package/docs/architecture/terminal-host-proof-gate.md +1 -1
  547. package/docs/architecture/terminal-host-spike-evidence.md +1 -1
  548. package/docs/architecture/tool-image-presentation.md +62 -0
  549. package/docs/architecture/toolchain.md +34 -10
  550. package/docs/architecture/ui-reference-provenance.md +73 -6
  551. package/docs/ci-release-runbook.md +266 -77
  552. package/docs/features/launch-profiles.md +24 -17
  553. package/docs/features/modal-content-interaction.md +38 -0
  554. package/docs/features/prompt-history.md +149 -0
  555. package/docs/local-worktree-cleanup.md +214 -0
  556. package/docs/manual-code-streaming-cleanup.md +88 -0
  557. package/docs/manual-ghost-link-baseline.md +89 -0
  558. package/docs/manual-launch-instance-acceptance.md +12 -35
  559. package/docs/manual-owned-ui-checkpoint.md +79 -0
  560. package/docs/manual-pi-boundary-candidate.md +4 -5
  561. package/docs/manual-terminal-colour-check.md +4 -3
  562. package/docs/openspec-archive-automation.md +269 -0
  563. package/docs/repository-governance-live-acceptance.md +77 -0
  564. package/docs/validation.md +105 -0
  565. package/package.json +53 -34
  566. package/dist/src/cli/capabilities.d.ts +0 -15
  567. package/dist/src/cli/capabilities.js +0 -7
  568. package/dist/src/cli/dispatch.d.ts +0 -31
  569. package/dist/src/cli/dispatch.js +0 -123
  570. package/dist/src/cli/index.d.ts +0 -5
  571. package/dist/src/cli/index.js +0 -5
  572. package/dist/src/cli/packages.d.ts +0 -23
  573. package/dist/src/cli/packages.js +0 -84
  574. package/dist/src/cli/version-stats.d.ts +0 -16
  575. package/dist/src/cli/version-stats.js +0 -72
  576. package/dist/src/cli/version.d.ts +0 -2
  577. package/dist/src/cli/version.js +0 -23
  578. package/dist/src/composition/index.d.ts +0 -48
  579. package/dist/src/composition/index.js +0 -258
  580. package/dist/src/features/launch/development-launch.js +0 -28
  581. package/dist/src/features/launch/index.d.ts +0 -7
  582. package/dist/src/features/launch/index.js +0 -7
  583. package/dist/src/features/launch/intent.d.ts +0 -7
  584. package/dist/src/features/launch/intent.js +0 -4
  585. package/dist/src/features/launch/prepare-launch.d.ts +0 -13
  586. package/dist/src/features/launch/prepare-launch.js +0 -21
  587. package/dist/src/features/launch/profile-paths.d.ts +0 -15
  588. package/dist/src/features/launch/profile-paths.js +0 -31
  589. package/dist/src/features/launch/profiles.d.ts +0 -12
  590. package/dist/src/features/launch/profiles.js +0 -26
  591. package/dist/src/features/launch/runtime-selection.d.ts +0 -19
  592. package/dist/src/features/launch/runtime-selection.js +0 -13
  593. package/dist/src/features/owned-ui/customization.d.ts +0 -38
  594. package/dist/src/features/owned-ui/customization.js +0 -108
  595. package/dist/src/features/owned-ui/diagnostics.d.ts +0 -33
  596. package/dist/src/features/owned-ui/diagnostics.js +0 -94
  597. package/dist/src/features/owned-ui/index.d.ts +0 -4
  598. package/dist/src/features/owned-ui/index.js +0 -4
  599. package/dist/src/features/owned-ui/run.d.ts +0 -11
  600. package/dist/src/features/owned-ui/run.js +0 -15
  601. package/dist/src/features/owned-ui/settings-app.d.ts +0 -22
  602. package/dist/src/features/owned-ui/settings-app.js +0 -633
  603. package/dist/src/features/workspace/capabilities.d.ts +0 -31
  604. package/dist/src/features/workspace/capabilities.js +0 -75
  605. package/dist/src/features/workspace/index.d.ts +0 -6
  606. package/dist/src/features/workspace/index.js +0 -6
  607. package/dist/src/features/workspace/presentation.d.ts +0 -30
  608. package/dist/src/features/workspace/presentation.js +0 -70
  609. package/dist/src/features/workspace/reconciliation.d.ts +0 -15
  610. package/dist/src/features/workspace/reconciliation.js +0 -82
  611. package/dist/src/features/workspace/reducer.d.ts +0 -42
  612. package/dist/src/features/workspace/reducer.js +0 -213
  613. package/dist/src/features/workspace/router.d.ts +0 -31
  614. package/dist/src/features/workspace/router.js +0 -124
  615. package/dist/src/features/workspace/store.d.ts +0 -17
  616. package/dist/src/features/workspace/store.js +0 -54
  617. package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +0 -95
  618. package/dist/src/foundation/agent-engine-contracts/domain-validation.js +0 -89
  619. package/dist/src/foundation/agent-engine-contracts/domain.d.ts +0 -116
  620. package/dist/src/foundation/agent-engine-contracts/index.d.ts +0 -8
  621. package/dist/src/foundation/agent-engine-contracts/index.js +0 -8
  622. package/dist/src/foundation/agent-engine-contracts/package-ports.d.ts +0 -54
  623. package/dist/src/foundation/launch-guardian/index.d.ts +0 -1
  624. package/dist/src/foundation/launch-guardian/index.js +0 -1
  625. package/dist/src/foundation/launch-guardian/main.d.ts +0 -31
  626. package/dist/src/foundation/launch-guardian/main.js +0 -165
  627. package/dist/src/foundation/lifecycle/index.d.ts +0 -4
  628. package/dist/src/foundation/lifecycle/index.js +0 -4
  629. package/dist/src/foundation/lifecycle/model.d.ts +0 -64
  630. package/dist/src/foundation/lifecycle/model.js +0 -40
  631. package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
  632. package/dist/src/foundation/lifecycle/paths.js +0 -42
  633. package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -11
  634. package/dist/src/foundation/native-host-protocol/codec.js +0 -56
  635. package/dist/src/foundation/native-host-protocol/evidence.d.ts +0 -67
  636. package/dist/src/foundation/native-host-protocol/evidence.js +0 -141
  637. package/dist/src/foundation/native-host-protocol/index.d.ts +0 -4
  638. package/dist/src/foundation/native-host-protocol/index.js +0 -4
  639. package/dist/src/foundation/native-host-protocol/messages.d.ts +0 -56
  640. package/dist/src/foundation/native-host-protocol/messages.js +0 -149
  641. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -13
  642. package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -33
  643. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -302
  644. package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
  645. package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
  646. package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -241
  647. package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -11
  648. package/dist/src/foundation/owned-ui-contracts/validation.js +0 -395
  649. package/dist/src/foundation/owned-ui-settings/declarations.d.ts +0 -13
  650. package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
  651. package/dist/src/foundation/owned-ui-settings/index.d.ts +0 -6
  652. package/dist/src/foundation/owned-ui-settings/index.js +0 -6
  653. package/dist/src/foundation/owned-ui-settings/migrations.d.ts +0 -13
  654. package/dist/src/foundation/owned-ui-settings/migrations.js +0 -28
  655. package/dist/src/foundation/owned-ui-settings/sections.d.ts +0 -70
  656. package/dist/src/foundation/owned-ui-settings/sections.js +0 -93
  657. package/dist/src/foundation/owned-ui-settings/session.d.ts +0 -44
  658. package/dist/src/foundation/owned-ui-settings/session.js +0 -145
  659. package/dist/src/foundation/owned-ui-settings/store.d.ts +0 -28
  660. package/dist/src/foundation/owned-ui-settings/store.js +0 -90
  661. package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -4
  662. package/dist/src/foundation/pi-component-adapter/components.js +0 -64
  663. package/dist/src/foundation/pi-component-adapter/conformance.d.ts +0 -17
  664. package/dist/src/foundation/pi-component-adapter/conformance.js +0 -69
  665. package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -13
  666. package/dist/src/foundation/pi-component-adapter/index.js +0 -13
  667. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +0 -165
  668. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +0 -166
  669. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -6
  670. package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -6
  671. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts +0 -11
  672. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
  673. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -35
  674. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -279
  675. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -7
  676. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +0 -189
  677. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
  678. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -429
  679. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -113
  680. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -235
  681. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
  682. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -87
  683. package/dist/src/foundation/pi-component-adapter/theme.d.ts +0 -1
  684. package/dist/src/foundation/pi-component-adapter/theme.js +0 -1
  685. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -422
  686. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -296
  687. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -10
  688. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -17
  689. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -51
  690. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -22
  691. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -142
  692. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -4
  693. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
  694. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -17
  695. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -81
  696. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -24
  697. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -105
  698. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -2
  699. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -18
  700. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -77
  701. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
  702. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
  703. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -55
  704. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -342
  705. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +0 -10
  706. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +0 -120
  707. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -159
  708. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -95
  709. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -889
  710. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +0 -19
  711. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +0 -44
  712. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -30
  713. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -59
  714. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -98
  715. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1272
  716. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -33
  717. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -76
  718. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -39
  719. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -15
  720. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -25
  721. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +0 -117
  722. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -61
  723. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +0 -326
  724. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +0 -164
  725. package/dist/src/foundation/pi-engine-adapter/adapter.js +0 -2367
  726. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +0 -37
  727. package/dist/src/foundation/pi-engine-adapter/conformance.js +0 -130
  728. package/dist/src/foundation/pi-engine-adapter/index.d.ts +0 -10
  729. package/dist/src/foundation/pi-engine-adapter/index.js +0 -10
  730. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +0 -30
  731. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +0 -61
  732. package/dist/src/foundation/pi-engine-adapter/package-integration.d.ts +0 -13
  733. package/dist/src/foundation/pi-engine-adapter/package-integration.js +0 -112
  734. package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +0 -374
  735. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +0 -31
  736. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +0 -80
  737. package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +0 -35
  738. package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +0 -67
  739. package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +0 -43
  740. package/dist/src/foundation/pi-engine-adapter/session-integration.js +0 -97
  741. package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
  742. package/dist/src/foundation/pi-engine-adapter/settings-integration.js +0 -233
  743. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +0 -20
  744. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +0 -48
  745. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -173
  746. package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -60
  747. package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
  748. package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
  749. package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
  750. package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
  751. package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
  752. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -39
  753. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -493
  754. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +0 -18
  755. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +0 -145
  756. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -120
  757. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
  758. package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
  759. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +0 -4
  760. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +0 -48
  761. package/dist/src/foundation/presentation-contracts/index.d.ts +0 -96
  762. package/dist/src/foundation/presentation-contracts/index.js +0 -38
  763. package/dist/src/foundation/process-containment/index.d.ts +0 -5
  764. package/dist/src/foundation/process-containment/index.js +0 -5
  765. package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +0 -6
  766. package/dist/src/foundation/process-containment/linux-process-inspector.js +0 -26
  767. package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +0 -16
  768. package/dist/src/foundation/process-containment/native-guardian-containment.js +0 -139
  769. package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +0 -17
  770. package/dist/src/foundation/process-containment/windows-process-inspector.js +0 -53
  771. package/dist/src/foundation/protocol/client.d.ts +0 -17
  772. package/dist/src/foundation/protocol/client.js +0 -129
  773. package/dist/src/foundation/protocol/index.d.ts +0 -2
  774. package/dist/src/foundation/protocol/index.js +0 -2
  775. package/dist/src/foundation/protocol/messages.d.ts +0 -89
  776. package/dist/src/foundation/protocol/messages.js +0 -99
  777. package/dist/src/foundation/release/bootstrap.d.ts +0 -29
  778. package/dist/src/foundation/release/bootstrap.js +0 -335
  779. package/dist/src/foundation/release/cohort-state.d.ts +0 -70
  780. package/dist/src/foundation/release/cohort-state.js +0 -202
  781. package/dist/src/foundation/release/development-preview-release.d.ts +0 -49
  782. package/dist/src/foundation/release/development-preview-release.js +0 -114
  783. package/dist/src/foundation/release/index.d.ts +0 -11
  784. package/dist/src/foundation/release/index.js +0 -11
  785. package/dist/src/foundation/release/release-gc.d.ts +0 -5
  786. package/dist/src/foundation/release/release-gc.js +0 -16
  787. package/dist/src/foundation/release/release-store.d.ts +0 -43
  788. package/dist/src/foundation/release/release-store.js +0 -175
  789. package/dist/src/foundation/release/release.d.ts +0 -38
  790. package/dist/src/foundation/release/release.js +0 -204
  791. package/dist/src/foundation/release/update-transaction.d.ts +0 -31
  792. package/dist/src/foundation/release/update-transaction.js +0 -89
  793. package/dist/src/foundation/release/update.d.ts +0 -80
  794. package/dist/src/foundation/release/update.js +0 -458
  795. package/dist/src/foundation/storage/control-store.d.ts +0 -61
  796. package/dist/src/foundation/storage/control-store.js +0 -530
  797. package/dist/src/foundation/storage/index.d.ts +0 -1
  798. package/dist/src/foundation/storage/index.js +0 -1
  799. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -46
  800. package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -118
  801. package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -52
  802. package/dist/src/foundation/structured-agent-runtime/commands.js +0 -164
  803. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +0 -41
  804. package/dist/src/foundation/structured-agent-runtime/handshake.js +0 -151
  805. package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -5
  806. package/dist/src/foundation/structured-agent-runtime/index.js +0 -5
  807. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -37
  808. package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -129
  809. package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -56
  810. package/dist/src/foundation/structured-agent-runtime/state.js +0 -118
  811. package/dist/src/foundation/supervision/index.d.ts +0 -3
  812. package/dist/src/foundation/supervision/index.js +0 -3
  813. package/dist/src/foundation/supervision/main.d.ts +0 -1
  814. package/dist/src/foundation/supervision/main.js +0 -41
  815. package/dist/src/foundation/supervision/paths.d.ts +0 -1
  816. package/dist/src/foundation/supervision/paths.js +0 -1
  817. package/dist/src/foundation/supervision/server.d.ts +0 -22
  818. package/dist/src/foundation/supervision/server.js +0 -451
  819. package/dist/src/foundation/ui-apps/contracts.d.ts +0 -42
  820. package/dist/src/foundation/ui-apps/host.d.ts +0 -42
  821. package/dist/src/foundation/ui-apps/host.js +0 -152
  822. package/dist/src/foundation/ui-apps/index.d.ts +0 -3
  823. package/dist/src/foundation/ui-apps/index.js +0 -3
  824. package/dist/src/foundation/ui-apps/registry.d.ts +0 -11
  825. package/dist/src/foundation/ui-apps/registry.js +0 -32
  826. package/dist/src/foundation/ui-components/dialog-panel.d.ts +0 -36
  827. package/dist/src/foundation/ui-components/dialog-panel.js +0 -47
  828. package/dist/src/foundation/ui-components/frame.d.ts +0 -21
  829. package/dist/src/foundation/ui-components/frame.js +0 -54
  830. package/dist/src/foundation/ui-components/index.d.ts +0 -18
  831. package/dist/src/foundation/ui-components/index.js +0 -18
  832. package/dist/src/foundation/ui-components/line-input.d.ts +0 -74
  833. package/dist/src/foundation/ui-components/line-input.js +0 -245
  834. package/dist/src/foundation/ui-components/list-block.d.ts +0 -66
  835. package/dist/src/foundation/ui-components/list-block.js +0 -176
  836. package/dist/src/foundation/ui-components/list-view.d.ts +0 -66
  837. package/dist/src/foundation/ui-components/list-view.js +0 -76
  838. package/dist/src/foundation/ui-components/mouse.d.ts +0 -15
  839. package/dist/src/foundation/ui-components/mouse.js +0 -46
  840. package/dist/src/foundation/ui-components/scrollbar.d.ts +0 -62
  841. package/dist/src/foundation/ui-components/scrollbar.js +0 -102
  842. package/dist/src/foundation/ui-components/shortcuts.d.ts +0 -57
  843. package/dist/src/foundation/ui-components/shortcuts.js +0 -81
  844. package/dist/src/foundation/ui-components/spans.d.ts +0 -7
  845. package/dist/src/foundation/ui-components/spans.js +0 -59
  846. package/dist/src/foundation/ui-components/surface.d.ts +0 -20
  847. package/dist/src/foundation/ui-components/surface.js +0 -38
  848. package/dist/src/foundation/ui-components/text.d.ts +0 -24
  849. package/dist/src/foundation/ui-components/text.js +0 -123
  850. package/dist/src/foundation/ui-components/theme.d.ts +0 -23
  851. package/dist/src/foundation/ui-components/theme.js +0 -13
  852. package/dist/src/foundation/ui-components/value-menu.d.ts +0 -41
  853. package/dist/src/foundation/ui-components/value-menu.js +0 -33
  854. package/dist/src/foundation/workspace-contracts/index.d.ts +0 -2
  855. package/dist/src/foundation/workspace-contracts/index.js +0 -2
  856. package/dist/src/foundation/workspace-contracts/model.d.ts +0 -248
  857. package/dist/src/foundation/workspace-contracts/model.js +0 -2
  858. package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -13
  859. package/dist/src/foundation/workspace-contracts/validation.js +0 -335
  860. package/dist/src/product-identity.d.ts +0 -37
  861. package/dist/src/product-identity.js +0 -150
  862. package/dist/src/product-identity.json +0 -99
  863. package/docs/manual-transparent-checkpoint.md +0 -53
  864. /package/dist/{src/foundation/agent-engine-contracts/domain.js → app/session-shell/paste-helper.d.ts} +0 -0
  865. /package/dist/{src/foundation/agent-engine-contracts/ports.js → app/session-shell/paste-text-worker.d.ts} +0 -0
  866. /package/dist/{src/foundation/lifecycle/commands.js → app/session-shell/paste-types.js} +0 -0
  867. /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
  868. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
  869. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
  870. /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → contracts/agent-engine/domain.js} +0 -0
  871. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
  872. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
  873. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
  874. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
  875. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
  876. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
  877. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
  878. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
  879. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
  880. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
  881. /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
  882. /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
  883. /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
  884. /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
  885. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
  886. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
  887. /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
  888. /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
  889. /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
  890. /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
  891. /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
  892. /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
  893. /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
  894. /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
  895. /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
  896. /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
  897. /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
  898. /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
  899. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
  900. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
  901. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
  902. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
  903. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
  904. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
  905. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
  906. /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
  907. /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
  908. /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
  909. /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
  910. /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
  911. /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
  912. /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
  913. /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
  914. /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
  915. /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
  916. /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
  917. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
  918. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
@@ -1,335 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
3
- import { connect } from "node:net";
4
- import { platform } from "node:os";
5
- import { resolve } from "node:path";
6
- import { selectCohortLaunch } from "./cohort-selection.js";
7
- import { CohortStateStore } from "./cohort-state.js";
8
- import { assertLaunchProfileId, resolveProductPaths } from "../lifecycle/index.js";
9
- import { encodeFrame, LineFrameDecoder } from "../protocol/index.js";
10
- import { cleanupProvenIdleOwner, processIsAlive } from "./process-cleanup.js";
11
- import { consumeMaterializationProof, materializeRelease, readCertifiedReleaseManifest, readMaterializedRelease, resolveReleaseEntryPoint, verifyMaterializedRelease } from "./release-store.js";
12
- import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
13
- export async function runBootstrap(options) {
14
- const environment = { ...(options.environment ?? process.env) };
15
- const launchProfileId = options.launchIntent?.profile.id ?? "a1";
16
- assertLaunchProfileId(launchProfileId);
17
- environment[PRODUCT_IDENTITY.environment.launchProfile] = launchProfileId;
18
- const output = options.output ?? process.stderr;
19
- const paths = resolveProductPaths(environment);
20
- await mkdir(paths.runtimeDir, { recursive: true, mode: 0o700 });
21
- const stateStore = new CohortStateStore(paths.dataDir);
22
- let state = await stateStore.read();
23
- let endpoint = await readEndpointMetadata(paths.endpointMetadataPath);
24
- let probe = endpoint ? await probeOwnership(endpoint) : "dead";
25
- const installedVersion = await readInstalledVersion(options.packageRoot);
26
- const activeId = state.references.active;
27
- const active = activeId === null ? undefined : state.releases[activeId];
28
- if (active?.approval === "approved" && active.packageVersion === installedVersion) {
29
- const endpointMatches = endpoint?.releaseId === active.releaseId
30
- && endpoint.releaseRoot === active.releaseRoot
31
- && endpoint.contentDigest === active.contentDigest;
32
- if (endpointMatches && probe === "live-verified") {
33
- const retained = await readCertifiedReleaseManifest(active, resolve(paths.dataDir, "releases"));
34
- return await launchUi(retained, environment);
35
- }
36
- if (endpoint === null || probe === "dead") {
37
- if (endpoint)
38
- await removeEndpointArtifacts(paths.endpointMetadataPath, paths.endpoint);
39
- const retained = await readMaterializedRelease(active.releaseRoot);
40
- await startSupervisor(retained, environment);
41
- await waitForVerifiedEndpoint(paths.endpointMetadataPath, retained, 8_000);
42
- return await launchUi(retained, environment);
43
- }
44
- }
45
- const candidate = await materializeRelease(options.packageRoot, paths.dataDir);
46
- await stateStore.recordCandidate(candidate);
47
- state = await stateStore.read();
48
- if (!state.references.active) {
49
- const diagnosticsPath = await certifyMaterializedRelease(candidate, paths.dataDir);
50
- await stateStore.approve(candidate.releaseId, diagnosticsPath);
51
- await stateStore.activate(candidate.releaseId);
52
- state = await stateStore.read();
53
- }
54
- endpoint = await readEndpointMetadata(paths.endpointMetadataPath);
55
- probe = endpoint ? await probeOwnership(endpoint) : "dead";
56
- let decision = selectCohortLaunch(candidate, state, endpoint, probe);
57
- if (decision.action === "blocked") {
58
- await stateStore.blockPending(decision.reason, endpoint?.ownership.liveInstanceIds ?? []);
59
- output.write(`${PRODUCT_TEXT.diagnostic(`startup is blocked to preserve uncertain live ownership: ${decision.reason}`)}\n`);
60
- return 1;
61
- }
62
- if (decision.action === "clean-stale-owner" && endpoint) {
63
- const diagnostics = await cleanupProvenIdleOwner(endpoint);
64
- await writeFile(resolve(paths.dataDir, `cleanup-${Date.now()}.json`), JSON.stringify(diagnostics, null, 2));
65
- if (!diagnostics.terminated)
66
- throw new Error(`could not safely clean stale ${PRODUCT_TEXT.displayName} supervisor ${endpoint.pid}`);
67
- await removeEndpointArtifacts(paths.endpointMetadataPath, paths.endpoint);
68
- decision = selectCohortLaunch(candidate, await stateStore.read(), null, "dead");
69
- }
70
- else if (endpoint && probe === "dead") {
71
- await removeEndpointArtifacts(paths.endpointMetadataPath, paths.endpoint);
72
- }
73
- if (decision.action === "launch-retained-ui") {
74
- const retained = await verifyMaterializedRelease(decision.releaseRoot, undefined, resolve(paths.dataDir, "releases"));
75
- if (decision.recordPending && endpoint) {
76
- await stateStore.blockPending("candidate activation deferred by live non-resumable instances", endpoint.ownership.nonResumableInstanceIds);
77
- }
78
- const code = await launchUi(retained, environment);
79
- if (decision.recordPending)
80
- await activatePendingAfterBlockerExit(candidate, stateStore, paths, environment);
81
- return code;
82
- }
83
- if (decision.action === "replace-idle-cohort" && endpoint) {
84
- const diagnosticsPath = await certifyMaterializedRelease(candidate, paths.dataDir);
85
- await stateStore.approve(candidate.releaseId, diagnosticsPath);
86
- const released = await requestIdleOwnershipRelease(endpoint, candidate.releaseId, 2_000);
87
- if (!released) {
88
- await stateStore.blockPending("idle supervisor did not verify ownership release", endpoint.ownership.liveInstanceIds);
89
- output.write(`${PRODUCT_TEXT.diagnostic("could not verify idle cohort ownership release; the retained release remains selected.")}\n`);
90
- return 1;
91
- }
92
- if (!await releaseVerifiedIdleOwner(endpoint, paths.dataDir)) {
93
- await stateStore.blockPending("idle supervisor acknowledged release but did not terminate", endpoint.ownership.liveInstanceIds);
94
- output.write(`${PRODUCT_TEXT.diagnostic("could not complete bounded idle cohort shutdown; the candidate remains pending.")}\n`);
95
- return 1;
96
- }
97
- await removeEndpointArtifacts(paths.endpointMetadataPath, paths.endpoint);
98
- await stateStore.activate(candidate.releaseId);
99
- decision = { action: "activate-candidate", releaseId: candidate.releaseId, releaseRoot: candidate.releaseRoot, reason: "idle cohort released ownership" };
100
- }
101
- let selected;
102
- if (decision.action === "activate-candidate") {
103
- const current = await stateStore.read();
104
- if (current.releases[candidate.releaseId]?.approval !== "approved") {
105
- const diagnosticsPath = await certifyMaterializedRelease(candidate, paths.dataDir);
106
- await stateStore.approve(candidate.releaseId, diagnosticsPath);
107
- }
108
- if ((await stateStore.read()).references.active !== candidate.releaseId)
109
- await stateStore.activate(candidate.releaseId);
110
- selected = candidate;
111
- }
112
- else {
113
- selected = await readMaterializedRelease(decision.releaseRoot);
114
- }
115
- await startSupervisor(selected, environment);
116
- await waitForVerifiedEndpoint(paths.endpointMetadataPath, selected, 8_000);
117
- return await launchUi(selected, environment);
118
- }
119
- async function readInstalledVersion(packageRoot) {
120
- const manifest = JSON.parse(await readFile(resolve(packageRoot, "package.json"), "utf8"));
121
- if (typeof manifest.version !== "string" || manifest.version.length === 0) {
122
- throw new Error(PRODUCT_TEXT.diagnostic("package metadata has no version"));
123
- }
124
- return manifest.version;
125
- }
126
- export async function certifyMaterializedRelease(release, dataDir, verification = {}) {
127
- if (!consumeMaterializationProof(release)) {
128
- await verifyMaterializedRelease(release.releaseRoot, release, resolve(dataDir, "releases"), verification);
129
- }
130
- const path = resolve(dataDir, `certification-${release.releaseId}.json`);
131
- await writeFile(path, JSON.stringify({
132
- schema: PRODUCT_IDENTITY.evidence.releaseCertificationSchema,
133
- releaseId: release.releaseId,
134
- contentDigest: release.contentDigest,
135
- verifiedAt: new Date().toISOString(),
136
- checks: [{ id: "immutable-content", passed: true }],
137
- }, null, 2), { mode: 0o600 });
138
- return path;
139
- }
140
- export async function startSupervisor(release, environment) {
141
- const entry = await resolveReleaseEntryPoint(release, "bin/supervisor.js");
142
- const child = spawn(process.execPath, [entry], {
143
- detached: true,
144
- env: releaseEnvironment(environment, release),
145
- stdio: "ignore",
146
- windowsHide: true,
147
- });
148
- await new Promise((resolvePromise, rejectPromise) => {
149
- child.once("spawn", resolvePromise);
150
- child.once("error", rejectPromise);
151
- });
152
- child.unref();
153
- }
154
- async function launchUi(release, environment) {
155
- const entry = await resolveReleaseEntryPoint(release, "bin/guardian.js");
156
- return await new Promise((resolvePromise, rejectPromise) => {
157
- const child = spawn(process.execPath, [entry], {
158
- env: releaseEnvironment(environment, release),
159
- stdio: "inherit",
160
- windowsHide: false,
161
- });
162
- child.once("error", rejectPromise);
163
- child.once("close", (code, signal) => resolvePromise(code ?? (signal ? 1 : 0)));
164
- });
165
- }
166
- export function releaseEnvironment(environment, release) {
167
- return {
168
- ...environment,
169
- [PRODUCT_IDENTITY.environment.releaseId]: release.releaseId,
170
- [PRODUCT_IDENTITY.environment.releaseRoot]: release.releaseRoot,
171
- [PRODUCT_IDENTITY.environment.releaseDigest]: release.contentDigest,
172
- };
173
- }
174
- export async function waitForVerifiedEndpoint(path, release, timeoutMs) {
175
- const deadline = Date.now() + timeoutMs;
176
- while (Date.now() < deadline) {
177
- const metadata = await readEndpointMetadata(path);
178
- if (metadata && metadata.releaseId === release.releaseId && await probeOwnership(metadata) === "live-verified")
179
- return;
180
- await new Promise(resolvePromise => setTimeout(resolvePromise, 40));
181
- }
182
- throw new Error(PRODUCT_TEXT.diagnostic(`supervisor did not publish verified endpoint metadata within ${timeoutMs}ms`));
183
- }
184
- export async function readEndpointMetadata(path) {
185
- try {
186
- const value = JSON.parse(await readFile(path, "utf8"));
187
- const ownership = value.ownership;
188
- const liveInstanceIds = Array.isArray(ownership?.liveInstanceIds)
189
- ? ownership.liveInstanceIds
190
- : Array.isArray(ownership?.liveGenerationIds) ? ownership.liveGenerationIds : null;
191
- const nonResumableInstanceIds = Array.isArray(ownership?.nonResumableInstanceIds)
192
- ? ownership.nonResumableInstanceIds
193
- : Array.isArray(ownership?.nonResumableGenerationIds) ? ownership.nonResumableGenerationIds : null;
194
- const uncertainInstanceIds = Array.isArray(ownership?.uncertainInstanceIds) ? ownership.uncertainInstanceIds : [];
195
- if (!value || value.schema !== PRODUCT_IDENTITY.protocol.supervisorSchema || typeof value.supervisorId !== "string" || typeof value.endpoint !== "string" || !Number.isSafeInteger(value.pid)
196
- || typeof value.pidStartIdentity !== "string" || typeof value.bootNonce !== "string" || typeof value.releaseId !== "string"
197
- || typeof value.releaseRoot !== "string" || typeof value.contentDigest !== "string" || !ownership
198
- || !isStringArray(liveInstanceIds) || !isStringArray(nonResumableInstanceIds) || !isStringArray(uncertainInstanceIds)) {
199
- return null;
200
- }
201
- return {
202
- ...value,
203
- ownership: {
204
- ...ownership,
205
- liveInstanceIds,
206
- nonResumableInstanceIds,
207
- uncertainInstanceIds,
208
- },
209
- };
210
- }
211
- catch {
212
- return null;
213
- }
214
- }
215
- export async function probeOwnership(metadata) {
216
- if (!processIsAlive(metadata.pid))
217
- return "dead";
218
- const identity = await requestIdentity(metadata.endpoint, 500);
219
- if (!identity)
220
- return "unresponsive";
221
- return identity.supervisorId === metadata.supervisorId
222
- && identity.bootNonce === metadata.bootNonce
223
- && identity.pidStartIdentity === metadata.pidStartIdentity
224
- && identity.releaseId === metadata.releaseId
225
- ? "live-verified"
226
- : "identity-mismatch";
227
- }
228
- async function requestIdentity(endpoint, timeoutMs) {
229
- return await new Promise(resolvePromise => {
230
- const socket = connect(endpoint);
231
- const decoder = new LineFrameDecoder();
232
- let settled = false;
233
- const finish = (value) => {
234
- if (settled)
235
- return;
236
- settled = true;
237
- socket.destroy();
238
- resolvePromise(value);
239
- };
240
- socket.once("error", () => finish(null));
241
- socket.once("connect", () => socket.write(encodeFrame({ type: "identity-probe" })));
242
- socket.on("data", chunk => {
243
- try {
244
- const message = decoder.push(chunk)[0];
245
- if (message?.type === "identity" && typeof message.supervisorId === "string" && typeof message.bootNonce === "string"
246
- && typeof message.pidStartIdentity === "string" && typeof message.releaseId === "string") {
247
- finish({ supervisorId: message.supervisorId, bootNonce: message.bootNonce, pidStartIdentity: message.pidStartIdentity, releaseId: message.releaseId });
248
- }
249
- }
250
- catch {
251
- finish(null);
252
- }
253
- });
254
- setTimeout(() => finish(null), timeoutMs).unref();
255
- });
256
- }
257
- async function activatePendingAfterBlockerExit(candidate, stateStore, paths, environment) {
258
- const deadline = Date.now() + 2_000;
259
- let endpoint = null;
260
- while (Date.now() < deadline) {
261
- endpoint = await readEndpointMetadata(paths.endpointMetadataPath);
262
- if (!endpoint || endpoint.ownership.liveInstanceIds.length === 0)
263
- break;
264
- await new Promise(resolvePromise => setTimeout(resolvePromise, 40));
265
- }
266
- if (!endpoint || endpoint.ownership.liveInstanceIds.length > 0 || await probeOwnership(endpoint) !== "live-verified")
267
- return;
268
- const diagnosticsPath = await certifyMaterializedRelease(candidate, paths.dataDir);
269
- await stateStore.approve(candidate.releaseId, diagnosticsPath);
270
- if (!await requestIdleOwnershipRelease(endpoint, candidate.releaseId, 2_000))
271
- return;
272
- if (!await releaseVerifiedIdleOwner(endpoint, paths.dataDir))
273
- return;
274
- await removeEndpointArtifacts(paths.endpointMetadataPath, paths.endpoint);
275
- await stateStore.activate(candidate.releaseId);
276
- await startSupervisor(candidate, environment);
277
- await waitForVerifiedEndpoint(paths.endpointMetadataPath, candidate, 8_000);
278
- }
279
- export async function releaseVerifiedIdleOwner(metadata, dataDir, operations = {}) {
280
- try {
281
- await (operations.waitForExit ?? waitForProcessExit)(metadata.pid, 3_000);
282
- return true;
283
- }
284
- catch {
285
- // The authenticated idle-release handshake authorizes bounded cleanup of
286
- // this exact boot when a native handle outlives graceful shutdown.
287
- const diagnostics = await (operations.cleanup ?? cleanupProvenIdleOwner)(metadata);
288
- await writeFile(resolve(dataDir, `cleanup-${Date.now()}.json`), JSON.stringify(diagnostics, null, 2));
289
- return diagnostics.terminated;
290
- }
291
- }
292
- async function requestIdleOwnershipRelease(metadata, candidateReleaseId, timeoutMs) {
293
- return await new Promise(resolvePromise => {
294
- const socket = connect(metadata.endpoint);
295
- const decoder = new LineFrameDecoder();
296
- let settled = false;
297
- const finish = (released) => {
298
- if (settled)
299
- return;
300
- settled = true;
301
- socket.destroy();
302
- resolvePromise(released);
303
- };
304
- socket.once("error", () => finish(false));
305
- socket.once("connect", () => socket.write(encodeFrame({ type: "release-idle-ownership", bootNonce: metadata.bootNonce, candidateReleaseId })));
306
- socket.on("data", chunk => {
307
- try {
308
- const message = decoder.push(chunk)[0];
309
- if (message?.type === "release-ownership-result")
310
- finish(message.released === true);
311
- }
312
- catch {
313
- finish(false);
314
- }
315
- });
316
- setTimeout(() => finish(false), timeoutMs).unref();
317
- });
318
- }
319
- function isStringArray(value) {
320
- return Array.isArray(value) && value.every(item => typeof item === "string" && item.length > 0);
321
- }
322
- export async function waitForProcessExit(pid, timeoutMs) {
323
- const deadline = Date.now() + timeoutMs;
324
- while (Date.now() < deadline) {
325
- if (!processIsAlive(pid))
326
- return;
327
- await new Promise(resolvePromise => setTimeout(resolvePromise, 25));
328
- }
329
- throw new Error(PRODUCT_TEXT.diagnostic(`supervisor ${pid} did not release process ownership within ${timeoutMs}ms`));
330
- }
331
- export async function removeEndpointArtifacts(metadataPath, endpoint) {
332
- await rm(metadataPath, { force: true });
333
- if (platform() !== "win32")
334
- await rm(endpoint, { force: true });
335
- }
@@ -1,70 +0,0 @@
1
- import type { MaterializedRelease } from "./release-store.js";
2
- export declare const RELEASE_COHORT_SCHEMA: string;
3
- export type ReleaseApproval = "candidate" | "approved" | "rejected";
4
- export interface ReleaseRecord {
5
- readonly releaseId: string;
6
- readonly releaseRoot: string;
7
- readonly packageVersion: string;
8
- readonly contentDigest: string;
9
- readonly approval: ReleaseApproval;
10
- readonly materializedAt: string;
11
- readonly certifiedAt: string | null;
12
- readonly diagnosticsPath: string | null;
13
- }
14
- export interface ReleaseReferences {
15
- readonly active: string | null;
16
- readonly pending: string | null;
17
- readonly approved: string | null;
18
- readonly rollback: string | null;
19
- readonly retention: readonly string[];
20
- }
21
- export interface CohortState {
22
- readonly schema: typeof RELEASE_COHORT_SCHEMA;
23
- readonly revision: number;
24
- readonly releases: Readonly<Record<string, ReleaseRecord>>;
25
- readonly references: ReleaseReferences;
26
- readonly activation: {
27
- readonly state: "idle" | "pending" | "draining" | "blocked" | "failed";
28
- readonly reason: string | null;
29
- readonly blockerGenerationIds: readonly string[];
30
- readonly updatedAt: string;
31
- };
32
- }
33
- export interface EndpointOwnership {
34
- readonly state: "idle" | "busy" | "draining" | "released" | "blocked";
35
- readonly liveInstanceIds: readonly string[];
36
- readonly nonResumableInstanceIds: readonly string[];
37
- readonly uncertainInstanceIds: readonly string[];
38
- }
39
- export interface SupervisorEndpointMetadata {
40
- readonly schema: string;
41
- readonly supervisorId: string;
42
- readonly endpoint: string;
43
- readonly pid: number;
44
- readonly pidStartIdentity: string;
45
- readonly bootNonce: string;
46
- readonly startedAt: string;
47
- readonly releaseId: string;
48
- readonly releaseRoot: string;
49
- readonly contentDigest: string;
50
- readonly ownership: EndpointOwnership;
51
- readonly envelope: string;
52
- readonly envelopeRevision: number;
53
- readonly requiredFeatures: readonly string[];
54
- readonly optionalFeatures: readonly string[];
55
- readonly contractDigest: string;
56
- }
57
- export declare class CohortStateStore {
58
- readonly path: string;
59
- constructor(dataDir: string);
60
- read(): Promise<CohortState>;
61
- update(operation: (current: CohortState) => CohortState): Promise<CohortState>;
62
- recordCandidate(release: MaterializedRelease): Promise<CohortState>;
63
- approve(releaseId: string, diagnosticsPath: string): Promise<CohortState>;
64
- activate(releaseId: string): Promise<CohortState>;
65
- blockPending(reason: string, blockerGenerationIds: readonly string[]): Promise<CohortState>;
66
- rollback(ownershipReleased: boolean): Promise<CohortState>;
67
- setRetention(releaseIds: readonly string[]): Promise<CohortState>;
68
- removeUnreferencedRelease(releaseId: string, externalReferences: readonly string[]): Promise<CohortState>;
69
- }
70
- export declare function emptyState(): CohortState;
@@ -1,202 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { mkdir, open, readFile, rename, rm } from "node:fs/promises";
3
- import { dirname, resolve } from "node:path";
4
- import { PRODUCT_IDENTITY } from "../../product-identity.js";
5
- export const RELEASE_COHORT_SCHEMA = PRODUCT_IDENTITY.protocol.releaseCohortSchema;
6
- export class CohortStateStore {
7
- path;
8
- constructor(dataDir) {
9
- this.path = resolve(dataDir, "release-state.json");
10
- }
11
- async read() {
12
- try {
13
- const state = JSON.parse(await readFile(this.path, "utf8"));
14
- validateState(state);
15
- return state;
16
- }
17
- catch (error) {
18
- if (error instanceof Error && "code" in error && error.code === "ENOENT")
19
- return emptyState();
20
- throw error;
21
- }
22
- }
23
- async update(operation) {
24
- await mkdir(dirname(this.path), { recursive: true, mode: 0o700 });
25
- const lockPath = `${this.path}.lock`;
26
- const lock = await acquireLock(lockPath);
27
- try {
28
- const current = await this.read();
29
- const next = operation(current);
30
- validateTransition(current, next);
31
- const committed = { ...next, revision: current.revision + 1 };
32
- const temporary = `${this.path}.${process.pid}.${randomUUID()}.tmp`;
33
- const file = await open(temporary, "wx", 0o600);
34
- try {
35
- await file.writeFile(JSON.stringify(committed, null, 2));
36
- await file.sync();
37
- }
38
- finally {
39
- await file.close();
40
- }
41
- await rename(temporary, this.path);
42
- return committed;
43
- }
44
- finally {
45
- await lock.close();
46
- await rm(lockPath, { force: true });
47
- }
48
- }
49
- async recordCandidate(release) {
50
- return await this.update(current => {
51
- const existing = current.releases[release.releaseId];
52
- const record = existing ?? {
53
- releaseId: release.releaseId,
54
- releaseRoot: release.releaseRoot,
55
- packageVersion: release.packageVersion,
56
- contentDigest: release.contentDigest,
57
- approval: "candidate",
58
- materializedAt: new Date().toISOString(),
59
- certifiedAt: null,
60
- diagnosticsPath: null,
61
- };
62
- return {
63
- ...current,
64
- releases: { ...current.releases, [release.releaseId]: record },
65
- references: {
66
- ...current.references,
67
- pending: current.references.active === release.releaseId ? current.references.pending : release.releaseId,
68
- retention: unique([...current.references.retention, release.releaseId]),
69
- },
70
- activation: activation("pending", "candidate awaits certification and safe activation"),
71
- };
72
- });
73
- }
74
- async approve(releaseId, diagnosticsPath) {
75
- return await this.update(current => {
76
- const release = requiredRelease(current, releaseId);
77
- return {
78
- ...current,
79
- releases: { ...current.releases, [releaseId]: { ...release, approval: "approved", certifiedAt: new Date().toISOString(), diagnosticsPath } },
80
- references: { ...current.references, approved: releaseId, pending: current.references.active === releaseId ? null : releaseId },
81
- };
82
- });
83
- }
84
- async activate(releaseId) {
85
- return await this.update(current => {
86
- const release = requiredRelease(current, releaseId);
87
- if (release.approval !== "approved")
88
- throw new Error(`cannot activate unverified release ${releaseId}`);
89
- const prior = current.references.active;
90
- return {
91
- ...current,
92
- references: {
93
- active: releaseId,
94
- pending: null,
95
- approved: releaseId,
96
- rollback: prior && prior !== releaseId ? prior : current.references.rollback,
97
- retention: unique([...current.references.retention, releaseId, ...(prior ? [prior] : [])]),
98
- },
99
- activation: activation("idle", null),
100
- };
101
- });
102
- }
103
- async blockPending(reason, blockerGenerationIds) {
104
- return await this.update(current => ({ ...current, activation: { ...activation("blocked", reason), blockerGenerationIds: [...blockerGenerationIds] } }));
105
- }
106
- async rollback(ownershipReleased) {
107
- if (!ownershipReleased)
108
- throw new Error("cannot roll back before current cohort ownership is released");
109
- return await this.update(current => {
110
- const rollbackId = current.references.rollback;
111
- if (!rollbackId)
112
- throw new Error("no rollback release is recorded");
113
- const rollback = requiredRelease(current, rollbackId);
114
- if (rollback.approval !== "approved")
115
- throw new Error(`cannot roll back to unverified release ${rollbackId}`);
116
- return {
117
- ...current,
118
- references: {
119
- ...current.references,
120
- active: rollbackId,
121
- pending: null,
122
- approved: rollbackId,
123
- rollback: current.references.active,
124
- retention: unique([...current.references.retention, rollbackId, ...(current.references.active ? [current.references.active] : [])]),
125
- },
126
- activation: activation("idle", null),
127
- };
128
- });
129
- }
130
- async setRetention(releaseIds) {
131
- return await this.update(current => {
132
- for (const releaseId of releaseIds)
133
- requiredRelease(current, releaseId);
134
- return { ...current, references: { ...current.references, retention: unique(releaseIds) } };
135
- });
136
- }
137
- async removeUnreferencedRelease(releaseId, externalReferences) {
138
- return await this.update(current => {
139
- requiredRelease(current, releaseId);
140
- const protectedIds = new Set([
141
- current.references.active,
142
- current.references.pending,
143
- current.references.approved,
144
- current.references.rollback,
145
- ...current.references.retention,
146
- ...externalReferences,
147
- ].filter((value) => value !== null));
148
- if (protectedIds.has(releaseId))
149
- throw new Error(`release ${releaseId} is still referenced and cannot be collected`);
150
- const releases = { ...current.releases };
151
- delete releases[releaseId];
152
- return { ...current, releases };
153
- });
154
- }
155
- }
156
- export function emptyState() {
157
- return {
158
- schema: RELEASE_COHORT_SCHEMA,
159
- revision: 0,
160
- releases: {},
161
- references: { active: null, pending: null, approved: null, rollback: null, retention: [] },
162
- activation: activation("idle", null),
163
- };
164
- }
165
- function activation(state, reason) {
166
- return { state, reason, blockerGenerationIds: [], updatedAt: new Date().toISOString() };
167
- }
168
- function requiredRelease(state, releaseId) {
169
- const release = state.releases[releaseId];
170
- if (!release)
171
- throw new Error(`unknown release ${releaseId}`);
172
- return release;
173
- }
174
- function unique(values) { return [...new Set(values)]; }
175
- async function acquireLock(path) {
176
- const deadline = Date.now() + 5_000;
177
- while (true) {
178
- try {
179
- return await open(path, "wx", 0o600);
180
- }
181
- catch (error) {
182
- if (!(error instanceof Error && "code" in error && error.code === "EEXIST") || Date.now() >= deadline)
183
- throw error;
184
- await new Promise(resolvePromise => setTimeout(resolvePromise, 20));
185
- }
186
- }
187
- }
188
- function validateState(state) {
189
- if (state.schema !== RELEASE_COHORT_SCHEMA || !Number.isSafeInteger(state.revision) || state.revision < 0)
190
- throw new Error("invalid release cohort state");
191
- for (const reference of [state.references.active, state.references.pending, state.references.approved, state.references.rollback]) {
192
- if (reference !== null && !state.releases[reference])
193
- throw new Error(`release reference points to an unknown release: ${reference}`);
194
- }
195
- }
196
- function validateTransition(current, next) {
197
- validateState(next);
198
- if (next.schema !== current.schema)
199
- throw new Error("release cohort schema cannot change during a state update");
200
- if (next.revision !== current.revision)
201
- throw new Error("release cohort revision is controlled by the state store");
202
- }
@@ -1,49 +0,0 @@
1
- export declare const PREVIEW_RELEASE_SCHEMA: string;
2
- export interface DevelopmentPreviewCandidate {
3
- readonly version: string;
4
- readonly requiresVersionCommit: boolean;
5
- }
6
- export interface DevelopmentPreviewRegistryState {
7
- readonly published: boolean;
8
- readonly nextVersion: string | null;
9
- }
10
- export interface DevelopmentPreviewVerificationOptions {
11
- readonly attempts?: number;
12
- readonly delayMs?: number;
13
- readonly delay?: (milliseconds: number) => Promise<void>;
14
- }
15
- export interface DevelopmentPreviewPublishResult {
16
- readonly published: boolean;
17
- readonly recoveredPublishError: unknown | null;
18
- }
19
- export interface UncertifiedDevelopmentPreviewEvidenceInput {
20
- readonly packageName: string;
21
- readonly version: string;
22
- readonly commit: string;
23
- readonly tarball: string;
24
- readonly integrity: string;
25
- readonly shasum: string;
26
- readonly platform: NodeJS.Platform;
27
- readonly architecture: string;
28
- readonly recordedAt: string;
29
- }
30
- export interface UncertifiedDevelopmentPreviewEvidence extends UncertifiedDevelopmentPreviewEvidenceInput {
31
- readonly schema: typeof PREVIEW_RELEASE_SCHEMA;
32
- readonly channel: "next";
33
- readonly certificationStatus: "uncertified-development-preview";
34
- readonly terminalCapability: "owned-ui";
35
- readonly manualAcceptance: "accepted";
36
- readonly physicalHostCertification: "deferred";
37
- readonly crossPlatformCertification: "deferred";
38
- readonly stableReleaseEligible: false;
39
- }
40
- export declare function createUncertifiedDevelopmentPreviewEvidence(input: UncertifiedDevelopmentPreviewEvidenceInput): UncertifiedDevelopmentPreviewEvidence;
41
- export declare function requireManuallyAcceptedDevelopmentPreview(version: string, acceptedVersion: string): void;
42
- export declare function selectDevelopmentPreviewCandidate(currentVersion: string, publishedVersions: readonly string[]): DevelopmentPreviewCandidate;
43
- /**
44
- * Treats npm's process result as provisional: browser-auth completion can fail
45
- * after the immutable upload succeeds. Registry identity remains authoritative.
46
- */
47
- export declare function publishDevelopmentPreviewWithRecovery(publish: () => Promise<void>, verify: () => Promise<void>): Promise<DevelopmentPreviewPublishResult>;
48
- export declare function verifyDevelopmentPreviewRegistry(version: string, observe: () => Promise<DevelopmentPreviewRegistryState>, repairNextTag: () => Promise<void>, options?: DevelopmentPreviewVerificationOptions): Promise<void>;
49
- export declare function developmentPreviewTarballName(packageName: string, version: string): string;