@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,114 +0,0 @@
1
- import { compare, inc, prerelease, valid } from "semver";
2
- import { PRODUCT_IDENTITY } from "../../product-identity.js";
3
- export const PREVIEW_RELEASE_SCHEMA = PRODUCT_IDENTITY.evidence.previewReleaseSchema;
4
- export function createUncertifiedDevelopmentPreviewEvidence(input) {
5
- const prereleaseParts = prerelease(input.version);
6
- if (valid(input.version) === null || prereleaseParts?.[0] !== "dev") {
7
- throw new Error(`uncertified preview requires a development prerelease: ${input.version}`);
8
- }
9
- return {
10
- schema: PREVIEW_RELEASE_SCHEMA,
11
- channel: "next",
12
- certificationStatus: "uncertified-development-preview",
13
- terminalCapability: "owned-ui",
14
- manualAcceptance: "accepted",
15
- physicalHostCertification: "deferred",
16
- crossPlatformCertification: "deferred",
17
- stableReleaseEligible: false,
18
- ...input,
19
- };
20
- }
21
- export function requireManuallyAcceptedDevelopmentPreview(version, acceptedVersion) {
22
- const acceptedPrerelease = prerelease(acceptedVersion);
23
- if (valid(acceptedVersion) === null || acceptedPrerelease?.[0] !== "dev") {
24
- throw new Error(`invalid manually accepted development preview: ${acceptedVersion}`);
25
- }
26
- if (version !== acceptedVersion) {
27
- throw new Error(`development preview ${version} has no exact manual acceptance; accepted version is ${acceptedVersion}`);
28
- }
29
- }
30
- export function selectDevelopmentPreviewCandidate(currentVersion, publishedVersions) {
31
- if (valid(currentVersion) === null)
32
- throw new Error(`invalid current package version: ${currentVersion}`);
33
- const published = publishedVersions.map(version => {
34
- if (valid(version) === null)
35
- throw new Error(`invalid published package version: ${version}`);
36
- return version;
37
- });
38
- const publishedSet = new Set(published);
39
- const highestPublished = published.reduce((highest, version) => highest === null || compare(version, highest) > 0 ? version : highest, null);
40
- const currentPrerelease = prerelease(currentVersion);
41
- const currentIsUnpublishedLeadingDev = currentPrerelease?.[0] === "dev"
42
- && !publishedSet.has(currentVersion)
43
- && (highestPublished === null || compare(currentVersion, highestPublished) > 0);
44
- if (currentIsUnpublishedLeadingDev)
45
- return { version: currentVersion, requiresVersionCommit: false };
46
- const base = highestPublished === null || compare(currentVersion, highestPublished) > 0
47
- ? currentVersion
48
- : highestPublished;
49
- const basePrerelease = prerelease(base);
50
- let candidate = basePrerelease?.[0] === "dev"
51
- ? inc(base, "prerelease", "dev")
52
- : inc(base, "prepatch", "dev");
53
- if (candidate === null)
54
- throw new Error(`could not increment development preview from ${base}`);
55
- while (publishedSet.has(candidate)) {
56
- candidate = inc(candidate, "prerelease", "dev");
57
- if (candidate === null)
58
- throw new Error(`could not increment development preview from ${base}`);
59
- }
60
- return { version: candidate, requiresVersionCommit: candidate !== currentVersion };
61
- }
62
- /**
63
- * Treats npm's process result as provisional: browser-auth completion can fail
64
- * after the immutable upload succeeds. Registry identity remains authoritative.
65
- */
66
- export async function publishDevelopmentPreviewWithRecovery(publish, verify) {
67
- let publishError = null;
68
- try {
69
- await publish();
70
- }
71
- catch (error) {
72
- publishError = error;
73
- }
74
- try {
75
- await verify();
76
- return { published: true, recoveredPublishError: publishError };
77
- }
78
- catch (verificationError) {
79
- if (publishError !== null)
80
- throw new AggregateError([publishError, verificationError], "npm publish failed and the exact version could not be verified in the registry");
81
- throw verificationError;
82
- }
83
- }
84
- export async function verifyDevelopmentPreviewRegistry(version, observe, repairNextTag, options = {}) {
85
- const attempts = options.attempts ?? 12;
86
- const delayMs = options.delayMs ?? 2_000;
87
- const delay = options.delay ?? (async (milliseconds) => await new Promise(resolvePromise => setTimeout(resolvePromise, milliseconds)));
88
- if (!Number.isInteger(attempts) || attempts < 1)
89
- throw new Error(`invalid registry verification attempts: ${attempts}`);
90
- let repaired = false;
91
- let last = { published: false, nextVersion: null };
92
- for (let attempt = 1; attempt <= attempts; attempt += 1) {
93
- last = await observe();
94
- if (last.published && last.nextVersion === version)
95
- return;
96
- if (last.published && !repaired) {
97
- await repairNextTag();
98
- repaired = true;
99
- }
100
- if (attempt < attempts)
101
- await delay(delayMs);
102
- }
103
- if (!last.published)
104
- throw new Error(`npm registry did not expose published version ${version} after ${attempts} attempts`);
105
- throw new Error(`npm next resolved ${last.nextVersion ?? "nothing"}; expected ${version} after ${attempts} attempts`);
106
- }
107
- export function developmentPreviewTarballName(packageName, version) {
108
- if (valid(version) === null)
109
- throw new Error(`invalid development preview version: ${version}`);
110
- const unscopedName = packageName.startsWith("@") ? packageName.slice(1).replace("/", "-") : packageName;
111
- if (!/^[a-z0-9._-]+$/i.test(unscopedName))
112
- throw new Error(`invalid package name: ${packageName}`);
113
- return `${unscopedName}-${version}.tgz`;
114
- }
@@ -1,11 +0,0 @@
1
- export * from "./bootstrap.js";
2
- export * from "./cohort-selection.js";
3
- export * from "./cohort-state.js";
4
- export * from "./development-preview-release.js";
5
- export * from "./process-cleanup.js";
6
- export * from "./release.js";
7
- export * from "./release-gc.js";
8
- export * from "./release-store.js";
9
- export * from "./stable-release.js";
10
- export * from "./update.js";
11
- export * from "./update-transaction.js";
@@ -1,11 +0,0 @@
1
- export * from "./bootstrap.js";
2
- export * from "./cohort-selection.js";
3
- export * from "./cohort-state.js";
4
- export * from "./development-preview-release.js";
5
- export * from "./process-cleanup.js";
6
- export * from "./release.js";
7
- export * from "./release-gc.js";
8
- export * from "./release-store.js";
9
- export * from "./stable-release.js";
10
- export * from "./update.js";
11
- export * from "./update-transaction.js";
@@ -1,5 +0,0 @@
1
- import { CohortStateStore } from "./cohort-state.js";
2
- /** Remove only a release that has no active, pending, approval, rollback,
3
- * retention, process, agent, or migration reference. State is detached first;
4
- * a filesystem failure can leave a safe orphan but never a dangling selector. */
5
- export declare function collectRelease(store: CohortStateStore, dataDir: string, releaseId: string, externalReferences: readonly string[]): Promise<void>;
@@ -1,16 +0,0 @@
1
- import { rm } from "node:fs/promises";
2
- import { resolve } from "node:path";
3
- import { CohortStateStore } from "./cohort-state.js";
4
- import { verifyMaterializedRelease } from "./release-store.js";
5
- /** Remove only a release that has no active, pending, approval, rollback,
6
- * retention, process, agent, or migration reference. State is detached first;
7
- * a filesystem failure can leave a safe orphan but never a dangling selector. */
8
- export async function collectRelease(store, dataDir, releaseId, externalReferences) {
9
- const state = await store.read();
10
- const release = state.releases[releaseId];
11
- if (!release)
12
- throw new Error(`unknown release ${releaseId}`);
13
- await verifyMaterializedRelease(release.releaseRoot, undefined, resolve(dataDir, "releases"));
14
- await store.removeUnreferencedRelease(releaseId, externalReferences);
15
- await rm(release.releaseRoot, { recursive: true, force: false });
16
- }
@@ -1,43 +0,0 @@
1
- import { type ReleaseIdentity } from "./release.js";
2
- export declare const RELEASE_MANIFEST_FILENAME: string;
3
- export interface MaterializedRelease extends ReleaseIdentity {
4
- readonly releaseRoot: string;
5
- }
6
- export type ReleaseContentOperation = "source-read" | "candidate-write" | "verification-read";
7
- export interface ReleaseContentOperationEvent {
8
- readonly operation: ReleaseContentOperation;
9
- readonly path: string;
10
- readonly bytes: number;
11
- }
12
- export interface MaterializeReleaseOptions {
13
- readonly onProgress?: (progress: {
14
- readonly phase: "copying";
15
- readonly fileCount: number;
16
- }) => void;
17
- readonly onOperation?: (event: ReleaseContentOperationEvent) => void;
18
- /** Test seam for deterministic write-failure coverage. */
19
- readonly writeCandidateFile?: (path: string, bytes: Uint8Array, mode: number) => Promise<void>;
20
- }
21
- export interface VerifyMaterializedReleaseOptions {
22
- readonly onOperation?: (event: ReleaseContentOperationEvent) => void;
23
- }
24
- export interface CertifiedReleaseRecord {
25
- readonly releaseId: string;
26
- readonly releaseRoot: string;
27
- readonly packageVersion?: string;
28
- readonly contentDigest: string;
29
- }
30
- export declare function materializeRelease(packageRoot: string, dataDir: string, options?: MaterializeReleaseOptions): Promise<MaterializedRelease>;
31
- /** Consume proof that this exact object was freshly materialized or fully verified in this process. */
32
- export declare function consumeMaterializationProof(release: MaterializedRelease): boolean;
33
- export declare function readMaterializedRelease(releaseRoot: string): Promise<MaterializedRelease>;
34
- /**
35
- * Load metadata for a release whose bytes were already certified by the
36
- * current parent process or an authenticated live supervisor. Callers must
37
- * establish one of those preconditions; untrusted releases require full
38
- * verification.
39
- */
40
- export declare function readCertifiedReleaseManifest(record: CertifiedReleaseRecord, selectedStoreRoot: string): Promise<MaterializedRelease>;
41
- export declare function verifyMaterializedRelease(releaseRoot: string, expected?: ReleaseIdentity, selectedStoreRoot?: string, options?: VerifyMaterializedReleaseOptions): Promise<MaterializedRelease>;
42
- export declare function assertImmutableExecutionRoot(release: MaterializedRelease, dataDir: string): Promise<void>;
43
- export declare function resolveReleaseEntryPoint(release: MaterializedRelease, entryPoint: string): Promise<string>;
@@ -1,175 +0,0 @@
1
- import { createHash, randomUUID } from "node:crypto";
2
- import { chmod, lstat, mkdir, readFile, realpath, rename, rm, writeFile } from "node:fs/promises";
3
- import { dirname, isAbsolute, relative, resolve, sep } from "node:path";
4
- import { PRODUCT_PACKAGE_NAME, createReleaseIdentity, digestManifestFiles, discoverReleasePayload, releaseFileIdentity, resolveWithin, } from "./release.js";
5
- import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
6
- import { mapWithConcurrency } from "./concurrency.js";
7
- const RELEASE_FILE_IO_CONCURRENCY = 32;
8
- const certificationReady = new WeakSet();
9
- export const RELEASE_MANIFEST_FILENAME = PRODUCT_IDENTITY.manifest.releaseFilename;
10
- export async function materializeRelease(packageRoot, dataDir, options = {}) {
11
- const payload = await discoverReleasePayload(packageRoot, {
12
- onSourceRead: (path, bytes) => options.onOperation?.({ operation: "source-read", path, bytes }),
13
- });
14
- const storeRoot = resolve(dataDir, "releases");
15
- await mkdir(storeRoot, { recursive: true, mode: 0o700 });
16
- options.onProgress?.({ phase: "copying", fileCount: payload.paths.length });
17
- const candidate = resolveWithin(storeRoot, `.candidate-${randomUUID()}`);
18
- await mkdir(candidate, { recursive: false, mode: 0o700 });
19
- try {
20
- const directories = [...new Set(payload.paths.map(path => dirname(resolveWithin(candidate, path))))];
21
- await mapWithConcurrency(directories, RELEASE_FILE_IO_CONCURRENCY, async (directory) => {
22
- await mkdir(directory, { recursive: true, mode: 0o700 });
23
- });
24
- const files = await mapWithConcurrency(payload.paths, RELEASE_FILE_IO_CONCURRENCY, async (path) => {
25
- const source = resolveWithin(payload.packageRoot, path);
26
- const destination = resolveWithin(candidate, path);
27
- const metadata = await lstat(source);
28
- if (!metadata.isFile() || metadata.isSymbolicLink())
29
- throw new Error(`release payload is not a regular file: ${path}`);
30
- const cached = payload.cachedFiles.get(path);
31
- const bytes = cached ?? await readFile(source);
32
- if (!cached)
33
- options.onOperation?.({ operation: "source-read", path, bytes: bytes.length });
34
- const mode = (metadata.mode & 0o111) !== 0 ? 0o500 : 0o400;
35
- if (options.writeCandidateFile)
36
- await options.writeCandidateFile(destination, bytes, mode);
37
- else {
38
- await writeFile(destination, bytes, { flag: "wx", mode });
39
- await chmod(destination, mode);
40
- }
41
- options.onOperation?.({ operation: "candidate-write", path, bytes: bytes.length });
42
- return releaseFileIdentity(path, bytes, (metadata.mode & 0o111) !== 0);
43
- });
44
- const identity = createReleaseIdentity(payload.packageRoot, payload.packageVersion, files);
45
- const releaseRoot = resolveWithin(storeRoot, identity.releaseId);
46
- if (await lstat(releaseRoot).catch(() => null)) {
47
- await rm(candidate, { recursive: true, force: true });
48
- return certificationReadyRelease(await verifyMaterializedRelease(releaseRoot, identity));
49
- }
50
- await writeFile(resolve(candidate, RELEASE_MANIFEST_FILENAME), JSON.stringify(identity, null, 2), { mode: 0o400, flag: "wx" });
51
- try {
52
- await rename(candidate, releaseRoot);
53
- }
54
- catch (error) {
55
- if (!await lstat(releaseRoot).catch(() => null))
56
- throw error;
57
- await rm(candidate, { recursive: true, force: true });
58
- return certificationReadyRelease(await verifyMaterializedRelease(releaseRoot, identity));
59
- }
60
- return certificationReadyRelease({ ...identity, releaseRoot: await realpath(releaseRoot) });
61
- }
62
- catch (error) {
63
- await rm(candidate, { recursive: true, force: true });
64
- throw error;
65
- }
66
- }
67
- /** Consume proof that this exact object was freshly materialized or fully verified in this process. */
68
- export function consumeMaterializationProof(release) {
69
- if (!certificationReady.has(release))
70
- return false;
71
- certificationReady.delete(release);
72
- return true;
73
- }
74
- export async function readMaterializedRelease(releaseRoot) {
75
- const canonical = await realpath(releaseRoot);
76
- const manifest = JSON.parse(await readFile(resolve(canonical, RELEASE_MANIFEST_FILENAME), "utf8"));
77
- return await verifyMaterializedRelease(canonical, manifest);
78
- }
79
- /**
80
- * Load metadata for a release whose bytes were already certified by the
81
- * current parent process or an authenticated live supervisor. Callers must
82
- * establish one of those preconditions; untrusted releases require full
83
- * verification.
84
- */
85
- export async function readCertifiedReleaseManifest(record, selectedStoreRoot) {
86
- const canonical = await realpath(record.releaseRoot);
87
- assertContained(await realpath(selectedStoreRoot), canonical, "release root is outside the selected release store");
88
- const manifest = JSON.parse(await readFile(resolveWithin(canonical, RELEASE_MANIFEST_FILENAME), "utf8"));
89
- validateManifest(manifest);
90
- if (manifest.releaseId !== record.releaseId || manifest.contentDigest !== record.contentDigest
91
- || (record.packageVersion !== undefined && manifest.packageVersion !== record.packageVersion)) {
92
- throw new Error(`certified release record differs from manifest for ${canonical}`);
93
- }
94
- if (canonical.split(sep).at(-1) !== manifest.releaseId)
95
- throw new Error(`release directory does not match identity ${manifest.releaseId}`);
96
- return { ...manifest, releaseRoot: canonical };
97
- }
98
- export async function verifyMaterializedRelease(releaseRoot, expected, selectedStoreRoot, options = {}) {
99
- const canonical = await realpath(releaseRoot);
100
- if (selectedStoreRoot)
101
- assertContained(await realpath(selectedStoreRoot), canonical, "release root is outside the selected release store");
102
- const manifestPath = resolveWithin(canonical, RELEASE_MANIFEST_FILENAME);
103
- const manifest = JSON.parse(await readFile(manifestPath, "utf8"));
104
- validateManifest(manifest);
105
- if (expected && (manifest.releaseId !== expected.releaseId || manifest.contentDigest !== expected.contentDigest)) {
106
- throw new Error(`release identity mismatch for ${canonical}`);
107
- }
108
- if (canonical.split(sep).at(-1) !== manifest.releaseId && !canonical.split(sep).at(-1)?.startsWith(`.candidate-${manifest.releaseId}-`)) {
109
- throw new Error(`release directory does not match identity ${manifest.releaseId}`);
110
- }
111
- await mapWithConcurrency(manifest.files, RELEASE_FILE_IO_CONCURRENCY, async (file) => {
112
- await verifyFile(canonical, file, options);
113
- });
114
- const recomputed = digestManifestFiles(manifest.files);
115
- if (recomputed !== manifest.contentDigest)
116
- throw new Error(`release content digest mismatch for ${manifest.releaseId}`);
117
- return { ...manifest, releaseRoot: canonical };
118
- }
119
- export async function assertImmutableExecutionRoot(release, dataDir) {
120
- const storeRoot = await realpath(resolve(dataDir, "releases"));
121
- assertContained(storeRoot, release.releaseRoot, "release root is outside the selected release store");
122
- const selectedRoot = process.env[PRODUCT_IDENTITY.environment.releaseRoot];
123
- if (!selectedRoot)
124
- throw new Error(PRODUCT_TEXT.diagnostic("persistent process has no immutable release root"));
125
- const selected = await realpath(selectedRoot);
126
- if (selected !== release.releaseRoot)
127
- throw new Error(PRODUCT_TEXT.diagnostic("persistent process selected a different immutable release root"));
128
- }
129
- export async function resolveReleaseEntryPoint(release, entryPoint) {
130
- const normalized = entryPoint.split("\\").join("/").replace(/^\.\//, "");
131
- if (!release.files.some(file => file.path === normalized))
132
- throw new Error(`entry point is not in the verified release manifest: ${entryPoint}`);
133
- const path = resolveWithin(release.releaseRoot, normalized);
134
- const canonical = await realpath(path);
135
- assertContained(release.releaseRoot, canonical, "entry point resolves outside the selected release root");
136
- return canonical;
137
- }
138
- async function verifyFile(root, file, options) {
139
- const path = resolveWithin(root, file.path);
140
- const metadata = await lstat(path).catch(() => null);
141
- if (!metadata?.isFile() || metadata.isSymbolicLink())
142
- throw new Error(`release candidate is incomplete: ${file.path}`);
143
- if (metadata.size !== file.bytes)
144
- throw new Error(`release file size mismatch: ${file.path}`);
145
- const bytes = await readFile(path);
146
- options.onOperation?.({ operation: "verification-read", path: file.path, bytes: bytes.length });
147
- const digest = createHash("sha256").update(bytes).digest("hex");
148
- if (digest !== file.sha256)
149
- throw new Error(`release file digest mismatch: ${file.path}`);
150
- }
151
- function certificationReadyRelease(release) {
152
- certificationReady.add(release);
153
- return release;
154
- }
155
- function validateManifest(value) {
156
- if (value.packageName !== PRODUCT_PACKAGE_NAME || typeof value.packageVersion !== "string")
157
- throw new Error(PRODUCT_TEXT.diagnostic("release manifest metadata is invalid"));
158
- if (!/^[a-f0-9]{64}$/.test(value.contentDigest) || !/^[0-9A-Za-z.+_-]+-[a-f0-9]{20}$/.test(value.releaseId))
159
- throw new Error(PRODUCT_TEXT.diagnostic("release identity is invalid"));
160
- if (!Array.isArray(value.files) || value.files.length === 0)
161
- throw new Error("release manifest contains no files");
162
- for (const file of value.files) {
163
- if (typeof file.path !== "string" || file.path.length === 0 || file.path.includes("\\") || file.path.startsWith("/") || file.path.split("/").includes("..")) {
164
- throw new Error(`invalid release manifest path: ${String(file.path)}`);
165
- }
166
- if (!Number.isSafeInteger(file.bytes) || file.bytes < 0 || !/^[a-f0-9]{64}$/.test(file.sha256))
167
- throw new Error(`invalid release manifest file identity: ${file.path}`);
168
- }
169
- }
170
- function assertContained(parent, child, message) {
171
- const fromParent = relative(parent, child);
172
- if (fromParent === "" || (!fromParent.startsWith(`..${sep}`) && fromParent !== ".." && !isAbsolute(fromParent)))
173
- return;
174
- throw new Error(`${message}: ${child}`);
175
- }
@@ -1,38 +0,0 @@
1
- export declare const PRODUCT_PACKAGE_NAME: string;
2
- export interface ReleaseFileIdentity {
3
- readonly path: string;
4
- readonly bytes: number;
5
- readonly sha256: string;
6
- readonly executable: boolean;
7
- }
8
- export interface ReleaseIdentity {
9
- readonly packageName: typeof PRODUCT_PACKAGE_NAME;
10
- readonly packageVersion: string;
11
- readonly contentDigest: string;
12
- readonly releaseId: string;
13
- readonly packageRoot: string;
14
- readonly files: readonly ReleaseFileIdentity[];
15
- }
16
- export interface DiscoveredReleasePayload {
17
- readonly packageRoot: string;
18
- readonly packageVersion: string;
19
- readonly paths: readonly string[];
20
- /** Package manifests already read to discover the dependency closure. */
21
- readonly cachedFiles: ReadonlyMap<string, Buffer>;
22
- }
23
- export interface DiscoverReleasePayloadOptions {
24
- readonly onSourceRead?: (path: string, bytes: number) => void;
25
- }
26
- /** Discover the complete payload without reading ordinary file contents. */
27
- export declare function discoverReleasePayload(packageRoot: string, options?: DiscoverReleasePayloadOptions): Promise<DiscoveredReleasePayload>;
28
- /**
29
- * Derive release execution identity only from installed distribution metadata and
30
- * bytes. The version remains display metadata; the digest selects executable
31
- * content.
32
- */
33
- export declare function deriveReleaseIdentity(packageRoot: string): Promise<ReleaseIdentity>;
34
- export declare function createReleaseIdentity(packageRoot: string, packageVersion: string, files: readonly ReleaseFileIdentity[]): ReleaseIdentity;
35
- export declare function releaseFileIdentity(path: string, bytes: Uint8Array, executable: boolean): ReleaseFileIdentity;
36
- export declare function digestManifestFiles(files: readonly ReleaseFileIdentity[]): string;
37
- export declare function resolveWithin(root: string, candidate: string): string;
38
- export declare function packageRootFromModule(moduleUrl: string): string;
@@ -1,204 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { lstat, readFile, readdir, realpath } from "node:fs/promises";
3
- import { basename, dirname, isAbsolute, relative, resolve, sep } from "node:path";
4
- import { PRODUCT_IDENTITY, PRODUCT_TEXT } from "../../product-identity.js";
5
- import { mapWithConcurrency } from "./concurrency.js";
6
- const RELEASE_FILE_IO_CONCURRENCY = 32;
7
- export const PRODUCT_PACKAGE_NAME = PRODUCT_IDENTITY.packageName;
8
- /** Discover the complete payload without reading ordinary file contents. */
9
- export async function discoverReleasePayload(packageRoot, options = {}) {
10
- const canonicalRoot = await realpath(packageRoot);
11
- const cachedFiles = new Map();
12
- const readManifest = async (manifestRoot) => {
13
- const manifestPath = resolve(manifestRoot, "package.json");
14
- const bytes = await readFile(manifestPath);
15
- const path = normalizeRelative(relative(canonicalRoot, manifestPath));
16
- cachedFiles.set(path, bytes);
17
- options.onSourceRead?.(path, bytes.length);
18
- return JSON.parse(bytes.toString("utf8"));
19
- };
20
- const manifest = await readManifest(canonicalRoot);
21
- if (manifest.name !== PRODUCT_PACKAGE_NAME)
22
- throw new Error(`unexpected ${PRODUCT_TEXT.displayName} package name: ${String(manifest.name)}`);
23
- if (typeof manifest.version !== "string" || manifest.version.length === 0)
24
- throw new Error(PRODUCT_TEXT.diagnostic("package metadata has no version"));
25
- const roots = distributionRoots(manifest);
26
- const paths = new Set(["package.json"]);
27
- for (const root of roots)
28
- await collectFiles(canonicalRoot, resolveWithin(canonicalRoot, root), paths);
29
- await collectDependencyClosure(canonicalRoot, canonicalRoot, manifest, paths, new Set(), readManifest);
30
- return {
31
- packageRoot: canonicalRoot,
32
- packageVersion: manifest.version,
33
- paths: [...paths].sort(),
34
- cachedFiles,
35
- };
36
- }
37
- /**
38
- * Derive release execution identity only from installed distribution metadata and
39
- * bytes. The version remains display metadata; the digest selects executable
40
- * content.
41
- */
42
- export async function deriveReleaseIdentity(packageRoot) {
43
- const payload = await discoverReleasePayload(packageRoot);
44
- const files = await mapWithConcurrency(payload.paths, RELEASE_FILE_IO_CONCURRENCY, async (path) => {
45
- const absolute = resolveWithin(payload.packageRoot, path);
46
- const metadata = await lstat(absolute);
47
- if (!metadata.isFile() || metadata.isSymbolicLink())
48
- throw new Error(`release payload is not a regular file: ${path}`);
49
- const bytes = payload.cachedFiles.get(path) ?? await readFile(absolute);
50
- return releaseFileIdentity(path, bytes, (metadata.mode & 0o111) !== 0);
51
- });
52
- return createReleaseIdentity(payload.packageRoot, payload.packageVersion, files);
53
- }
54
- export function createReleaseIdentity(packageRoot, packageVersion, files) {
55
- const contentDigest = digestManifestFiles(files);
56
- return {
57
- packageName: PRODUCT_PACKAGE_NAME,
58
- packageVersion,
59
- contentDigest,
60
- releaseId: `${packageVersion}-${contentDigest.slice(0, 20)}`,
61
- packageRoot,
62
- files: [...files].sort(compareReleaseFiles),
63
- };
64
- }
65
- export function releaseFileIdentity(path, bytes, executable) {
66
- return {
67
- path: normalizeRelative(path),
68
- bytes: bytes.length,
69
- sha256: createHash("sha256").update(bytes).digest("hex"),
70
- executable,
71
- };
72
- }
73
- export function digestManifestFiles(files) {
74
- const digest = createHash("sha256");
75
- for (const file of [...files].sort(compareReleaseFiles)) {
76
- digest.update(`${file.path}\0${file.bytes}\0${file.sha256}\0${file.executable ? 1 : 0}\n`);
77
- }
78
- return digest.digest("hex");
79
- }
80
- export function resolveWithin(root, candidate) {
81
- if (candidate.includes("\0"))
82
- throw new Error("release path contains a null byte");
83
- const absolute = resolve(root, candidate);
84
- const fromRoot = relative(root, absolute);
85
- if (fromRoot === "" || (!isAbsolute(fromRoot) && fromRoot !== ".." && !fromRoot.startsWith(`..${sep}`)))
86
- return absolute;
87
- throw new Error(`release path escapes selected root: ${candidate}`);
88
- }
89
- function distributionRoots(manifest) {
90
- if (!Array.isArray(manifest.files))
91
- throw new Error(PRODUCT_TEXT.diagnostic("package metadata has no distribution files list"));
92
- const roots = manifest.files.map(value => {
93
- if (typeof value !== "string" || value.length === 0)
94
- throw new Error(PRODUCT_TEXT.diagnostic("distribution file entry is invalid"));
95
- const normalized = normalizeRelative(value);
96
- if (normalized === "package.json")
97
- return normalized;
98
- if (isAbsolute(value) || normalized === ".." || normalized.startsWith("../"))
99
- throw new Error(PRODUCT_TEXT.diagnostic(`distribution path escapes package root: ${value}`));
100
- return normalized;
101
- });
102
- return [...new Set(roots)];
103
- }
104
- async function collectFiles(root, path, output, skipNodeModules = false) {
105
- const metadata = await lstat(path);
106
- const relativePath = normalizeRelative(relative(root, path));
107
- if (metadata.isSymbolicLink())
108
- throw new Error(`release payload contains a symbolic link: ${relativePath}`);
109
- if (metadata.isFile()) {
110
- output.add(relativePath);
111
- return;
112
- }
113
- if (!metadata.isDirectory())
114
- throw new Error(`release payload contains an unsupported entry: ${relativePath}`);
115
- for (const entry of await readdir(path)) {
116
- if (entry === ".bin" || (skipNodeModules && entry === "node_modules"))
117
- continue;
118
- await collectFiles(root, resolve(path, entry), output, skipNodeModules);
119
- }
120
- }
121
- async function collectDependencyClosure(root, requesterRoot, manifest, output, visited, readManifest) {
122
- const required = dependencyNames(manifest.dependencies);
123
- const optional = new Set(dependencyNames(manifest.optionalDependencies));
124
- for (const name of [...new Set([...required, ...optional])].sort()) {
125
- const packagePath = await findInstalledDependency(root, requesterRoot, name);
126
- if (!packagePath) {
127
- if (optional.has(name))
128
- continue;
129
- throw new Error(`installed ${PRODUCT_TEXT.displayName} dependency is missing: ${name}`);
130
- }
131
- if (visited.has(packagePath))
132
- continue;
133
- visited.add(packagePath);
134
- await collectFiles(root, packagePath, output, true);
135
- await collectDependencyClosure(root, packagePath, await readManifest(packagePath), output, visited, readManifest);
136
- }
137
- }
138
- async function findInstalledDependency(root, requesterRoot, name) {
139
- let directory = requesterRoot;
140
- while (true) {
141
- const candidate = resolve(directory, "node_modules", name);
142
- if (await isContained(root, candidate)) {
143
- const metadata = await lstat(candidate).catch(() => null);
144
- if (metadata?.isDirectory() && !metadata.isSymbolicLink())
145
- return candidate;
146
- // A linked dependency directory is how this installation unifies a module
147
- // that would otherwise be present twice, and the link is made by A1 itself
148
- // at install and at every launch. Follow it to the directory it names and
149
- // collect from there, so the payload still reads only real files — but
150
- // only when the target is inside this installation, so a link can never
151
- // pull bytes in from somewhere else.
152
- if (metadata?.isSymbolicLink()) {
153
- const target = await realpath(candidate).catch(() => null);
154
- if (target !== null && await isContained(root, target)) {
155
- const targetMetadata = await lstat(target).catch(() => null);
156
- if (targetMetadata?.isDirectory())
157
- return target;
158
- }
159
- }
160
- }
161
- if (directory === root)
162
- return null;
163
- const parent = dirname(directory);
164
- if (parent === directory || relative(root, parent).startsWith(".."))
165
- return null;
166
- directory = parent;
167
- }
168
- }
169
- /** True when `path` sits inside `root`, comparing what each one actually resolves to. */
170
- async function isContained(root, path) {
171
- const within = (from, to) => {
172
- const value = relative(from, to);
173
- return value !== ".." && !value.startsWith(`..${sep}`) && !isAbsolute(value);
174
- };
175
- if (within(root, path))
176
- return true;
177
- const canonicalRoot = await realpath(root).catch(() => null);
178
- return canonicalRoot !== null && within(canonicalRoot, path);
179
- }
180
- function dependencyNames(value) {
181
- if (value === undefined)
182
- return [];
183
- if (typeof value !== "object" || value === null || Array.isArray(value))
184
- throw new Error(PRODUCT_TEXT.diagnostic("dependency metadata is invalid"));
185
- return Object.keys(value);
186
- }
187
- function compareReleaseFiles(left, right) {
188
- return left.path < right.path ? -1 : left.path > right.path ? 1 : 0;
189
- }
190
- function normalizeRelative(path) {
191
- return path.split(sep).join("/").replace(/^\.\//, "");
192
- }
193
- export function packageRootFromModule(moduleUrl) {
194
- const url = new URL(moduleUrl);
195
- if (url.protocol !== "file:")
196
- throw new Error(PRODUCT_TEXT.diagnostic(`module URL must be a file URL: ${moduleUrl}`));
197
- let directory = dirname(url.pathname.replace(/^\/(.:)/, "$1"));
198
- while (basename(directory) !== "") {
199
- if (basename(directory) === "dist")
200
- return dirname(directory);
201
- directory = dirname(directory);
202
- }
203
- throw new Error(PRODUCT_TEXT.diagnostic("package root could not be derived from module URL"));
204
- }
@@ -1,31 +0,0 @@
1
- export declare const UPDATE_JOURNAL_SCHEMA: string;
2
- import type { UpdateChannel } from "./update.js";
3
- export type UpdateTransactionPhase = "shutdown-intent" | "ownership-released" | "package-installed" | "materialized" | "certified" | "active-reference-committed" | "supervisor-verified";
4
- export interface UpdateTransaction {
5
- readonly schema: typeof UPDATE_JOURNAL_SCHEMA;
6
- readonly transactionId: string;
7
- readonly channel: UpdateChannel;
8
- readonly targetVersion: string;
9
- readonly packageRoot: string;
10
- readonly priorActiveReleaseId: string | null;
11
- readonly phase: UpdateTransactionPhase;
12
- readonly status: "active" | "completed" | "rolled-back" | "failed";
13
- readonly error: string | null;
14
- readonly startedAt: string;
15
- readonly updatedAt: string;
16
- }
17
- export declare class UpdateTransactionStore {
18
- #private;
19
- readonly path: string;
20
- constructor(dataDir: string);
21
- read(): Promise<UpdateTransaction | null>;
22
- begin(input: {
23
- channel: UpdateChannel;
24
- targetVersion: string;
25
- packageRoot: string;
26
- priorActiveReleaseId: string | null;
27
- }): Promise<UpdateTransaction>;
28
- advance(phase: UpdateTransactionPhase): Promise<UpdateTransaction>;
29
- finish(status: "completed" | "rolled-back" | "failed", error?: string | null): Promise<UpdateTransaction>;
30
- clearCompleted(): Promise<void>;
31
- }