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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/README.md +11 -36
  2. package/bin/cli.js +2 -17
  3. package/bin/ui.js +10 -51
  4. package/dist/app/session-shell/clipboard-diagnostics.d.ts +2 -2
  5. package/dist/app/session-shell/clipboard-image.d.ts +0 -1
  6. package/dist/app/session-shell/clipboard-image.js +1 -1
  7. package/dist/app/session-shell/dialog-coordinator.d.ts +6 -5
  8. package/dist/app/session-shell/dialog-coordinator.js +3 -4
  9. package/dist/app/session-shell/dock-chrome.d.ts +11 -6
  10. package/dist/app/session-shell/dock-chrome.js +5 -8
  11. package/dist/app/session-shell/editor-hyperlink-budget.d.ts +0 -2
  12. package/dist/app/session-shell/editor-hyperlink-budget.js +1 -1
  13. package/dist/app/session-shell/exit-notice.d.ts +3 -3
  14. package/dist/app/session-shell/exit-notice.js +10 -10
  15. package/dist/app/session-shell/extension-surface.d.ts +8 -7
  16. package/dist/app/session-shell/helper-pool.d.ts +3 -4
  17. package/dist/app/session-shell/helper-pool.js +1 -1
  18. package/dist/app/session-shell/image-preparation-client.d.ts +4 -3
  19. package/dist/app/session-shell/image-preparation.d.ts +0 -2
  20. package/dist/app/session-shell/image-preparation.js +2 -2
  21. package/dist/app/session-shell/image-source.d.ts +2 -3
  22. package/dist/app/session-shell/image-source.js +2 -2
  23. package/dist/app/session-shell/input-surface-switch.d.ts +9 -7
  24. package/dist/app/session-shell/input-surface-switch.js +1 -2
  25. package/dist/app/session-shell/login-interaction.d.ts +5 -4
  26. package/dist/app/session-shell/login-interaction.js +2 -3
  27. package/dist/app/session-shell/paste-executor.d.ts +4 -8
  28. package/dist/app/session-shell/paste-executor.js +2 -2
  29. package/dist/app/session-shell/paste-protocol.d.ts +2 -2
  30. package/dist/app/session-shell/path-chip-presentation.d.ts +0 -5
  31. package/dist/app/session-shell/path-chip-presentation.js +3 -3
  32. package/dist/app/session-shell/prompt-chips.d.ts +8 -7
  33. package/dist/app/session-shell/prompt-history-controller.d.ts +3 -3
  34. package/dist/app/session-shell/prompt-submission.d.ts +7 -6
  35. package/dist/app/session-shell/prompt-submission.js +7 -28
  36. package/dist/app/session-shell/quit-outro-effects.d.ts +3 -3
  37. package/dist/app/session-shell/quit-outro-effects.js +1 -4
  38. package/dist/app/session-shell/quit-outro.d.ts +9 -12
  39. package/dist/app/session-shell/quit-outro.js +11 -11
  40. package/dist/app/session-shell/response-copy-protocol.d.ts +3 -2
  41. package/dist/app/session-shell/response-copy-transport.d.ts +2 -14
  42. package/dist/app/session-shell/response-copy-transport.js +2 -3
  43. package/dist/app/session-shell/session-lifecycle.d.ts +3 -3
  44. package/dist/app/session-shell/session-lifecycle.js +2 -4
  45. package/dist/app/session-shell/session-shell-root.d.ts +74 -120
  46. package/dist/app/session-shell/session-shell-root.js +82 -115
  47. package/dist/app/session-shell/session-shell.d.ts +13 -16
  48. package/dist/app/session-shell/session-shell.js +149 -314
  49. package/dist/app/session-shell/session-viewport-controller.d.ts +7 -6
  50. package/dist/app/session-shell/session-viewport-controller.js +5 -8
  51. package/dist/app/session-shell/settings-bindings.d.ts +24 -2
  52. package/dist/app/session-shell/settings-bindings.js +24 -0
  53. package/dist/app/session-shell/share-operation.d.ts +3 -3
  54. package/dist/app/session-shell/share-operation.js +4 -6
  55. package/dist/app/session-shell/shell-clipboard.d.ts +59 -0
  56. package/dist/app/session-shell/shell-clipboard.js +119 -0
  57. package/dist/app/session-shell/shell-editor-factory.d.ts +8 -4
  58. package/dist/app/session-shell/shell-editor-factory.js +13 -15
  59. package/dist/app/session-shell/shell-host.d.ts +16 -17
  60. package/dist/app/session-shell/shell-host.js +20 -37
  61. package/dist/app/session-shell/shell-layout.d.ts +2 -2
  62. package/dist/app/session-shell/shell-prompt-suggestions.d.ts +26 -0
  63. package/dist/app/session-shell/shell-prompt-suggestions.js +48 -0
  64. package/dist/app/session-shell/suggestion-surface.d.ts +1 -6
  65. package/dist/app/session-shell/suggestion-surface.js +1 -1
  66. package/dist/app/session-shell/system-clipboard.d.ts +2 -14
  67. package/dist/app/session-shell/system-clipboard.js +2 -7
  68. package/dist/app/session-shell/transcript-document.d.ts +12 -10
  69. package/dist/app/session-shell/transcript-document.js +15 -41
  70. package/dist/app/session-shell/viewport-layout.d.ts +2 -2
  71. package/dist/app/session-shell/workflow-output.d.ts +5 -3
  72. package/dist/app/session-shell/workflow-output.js +13 -15
  73. package/dist/app/session-shell/workflow-router.d.ts +1 -3
  74. package/dist/app/session-shell/workflow-router.js +1 -4
  75. package/dist/cli/dispatch.d.ts +1 -11
  76. package/dist/cli/dispatch.js +5 -92
  77. package/dist/cli/package-messages.d.ts +0 -1
  78. package/dist/cli/package-messages.js +1 -1
  79. package/dist/cli/session-context.d.ts +1 -1
  80. package/dist/cli/session-context.js +5 -7
  81. package/dist/cli/uninstall.d.ts +4 -7
  82. package/dist/cli/uninstall.js +6 -35
  83. package/dist/cli/version-stats.js +4 -7
  84. package/dist/composition/owned-settings.d.ts +2 -2
  85. package/dist/composition/owned-settings.js +0 -4
  86. package/dist/composition/owned-ui.d.ts +3 -25
  87. package/dist/composition/owned-ui.js +37 -113
  88. package/dist/composition/reference-selection-options.d.ts +1 -1
  89. package/dist/composition/reference-selection-options.js +1 -1
  90. package/dist/composition/release-update-observation.d.ts +4 -4
  91. package/dist/composition/release-update-observation.js +17 -47
  92. package/dist/composition/session-backend.d.ts +0 -1
  93. package/dist/composition/session-runtime-registry.d.ts +5 -4
  94. package/dist/composition/settings-route-host.d.ts +0 -7
  95. package/dist/composition/settings-route-host.js +7 -20
  96. package/dist/composition/settings-search-input.d.ts +2 -1
  97. package/dist/composition/startup-route.d.ts +2 -3
  98. package/dist/composition/startup-route.js +2 -3
  99. package/dist/contracts/owned-ui/extension-ui.d.ts +2 -1
  100. package/dist/contracts/owned-ui/index.d.ts +2 -1
  101. package/dist/contracts/owned-ui/model.d.ts +0 -3
  102. package/dist/contracts/owned-ui/session-presenters.d.ts +3 -0
  103. package/dist/contracts/owned-ui/session-workflows.d.ts +1 -4
  104. package/dist/contracts/owned-ui/shell-components.d.ts +543 -0
  105. package/dist/contracts/presentation/component.d.ts +17 -0
  106. package/dist/contracts/presentation/component.js +8 -0
  107. package/dist/contracts/presentation/index.d.ts +6 -15
  108. package/dist/contracts/presentation/index.js +2 -0
  109. package/dist/contracts/presentation/terminal.d.ts +290 -0
  110. package/dist/contracts/presentation/theme.d.ts +46 -0
  111. package/dist/features/launch/development-launch.js +1 -2
  112. package/dist/features/launch/index.d.ts +1 -1
  113. package/dist/features/launch/intent.d.ts +1 -3
  114. package/dist/features/launch/intent.js +2 -4
  115. package/dist/features/launch/runtime-selection.d.ts +2 -2
  116. package/dist/features/launch/runtime-selection.js +2 -2
  117. package/dist/features/launch/session-context.d.ts +2 -2
  118. package/dist/features/owned-ui/project-trust-prompt.d.ts +2 -2
  119. package/dist/features/owned-ui/project-trust-prompt.js +1 -1
  120. package/dist/features/owned-ui/reference-screen-app.d.ts +0 -2
  121. package/dist/features/owned-ui/reference-screen-app.js +2 -9
  122. package/dist/features/owned-ui/release-note-state.d.ts +2 -1
  123. package/dist/features/owned-ui/settings-app.d.ts +0 -6
  124. package/dist/features/owned-ui/settings-app.js +42 -254
  125. package/dist/features/owned-ui/settings-edits.d.ts +31 -0
  126. package/dist/features/owned-ui/settings-edits.js +139 -0
  127. package/dist/features/owned-ui/settings-scroll-rail.d.ts +29 -0
  128. package/dist/features/owned-ui/settings-scroll-rail.js +79 -0
  129. package/dist/features/owned-ui/settings-search-input.d.ts +2 -1
  130. package/dist/features/prompt-history/service.d.ts +3 -2
  131. package/dist/foundation/launch-context/index.d.ts +0 -12
  132. package/dist/foundation/launch-context/index.js +0 -26
  133. package/dist/foundation/lifecycle/claim-gate.d.ts +9 -0
  134. package/dist/foundation/lifecycle/claim-gate.js +37 -0
  135. package/dist/foundation/lifecycle/index.d.ts +5 -9
  136. package/dist/foundation/lifecycle/index.js +3 -4
  137. package/dist/foundation/lifecycle/model.d.ts +2 -59
  138. package/dist/foundation/lifecycle/model.js +0 -35
  139. package/dist/foundation/lifecycle/paths.d.ts +0 -24
  140. package/dist/foundation/lifecycle/paths.js +0 -40
  141. package/dist/foundation/lifecycle/process-liveness.d.ts +8 -0
  142. package/dist/foundation/lifecycle/process-liveness.js +18 -0
  143. package/dist/foundation/lifecycle/session-claim-lock.d.ts +1 -1
  144. package/dist/foundation/lifecycle/session-claim-lock.js +2 -2
  145. package/dist/foundation/lifecycle/session-repository-context.d.ts +6 -6
  146. package/dist/foundation/lifecycle/session-repository-context.js +2 -3
  147. package/dist/foundation/release/automatic-update.d.ts +6 -17
  148. package/dist/foundation/release/automatic-update.js +23 -44
  149. package/dist/foundation/release/bootstrap.d.ts +2 -25
  150. package/dist/foundation/release/bootstrap.js +37 -348
  151. package/dist/foundation/release/dependency-certification.d.ts +1 -2
  152. package/dist/foundation/release/dependency-certification.js +1 -1
  153. package/dist/foundation/release/early-accent.d.ts +2 -2
  154. package/dist/foundation/release/early-accent.js +1 -1
  155. package/dist/foundation/release/index.d.ts +10 -17
  156. package/dist/foundation/release/index.js +7 -11
  157. package/dist/foundation/release/latest-release.d.ts +3 -19
  158. package/dist/foundation/release/latest-release.js +11 -12
  159. package/dist/foundation/release/ordinary-launch-selection.d.ts +1 -1
  160. package/dist/foundation/release/ordinary-launch-selection.js +1 -1
  161. package/dist/foundation/release/process-liveness.d.ts +2 -0
  162. package/dist/foundation/release/process-liveness.js +12 -0
  163. package/dist/foundation/release/release-gc.d.ts +13 -10
  164. package/dist/foundation/release/release-gc.js +37 -101
  165. package/dist/foundation/release/{cohort-state.d.ts → release-state.d.ts} +44 -69
  166. package/dist/foundation/release/{cohort-state.js → release-state.js} +38 -70
  167. package/dist/foundation/release/release-store.d.ts +2 -2
  168. package/dist/foundation/release/release-store.js +2 -2
  169. package/dist/foundation/release/restart-certification.js +1 -1
  170. package/dist/foundation/release/update-activation.d.ts +2 -9
  171. package/dist/foundation/release/update-activation.js +30 -45
  172. package/dist/foundation/release/update-execution-lease.d.ts +2 -3
  173. package/dist/foundation/release/update-execution-lease.js +2 -2
  174. package/dist/foundation/release/update-launch.d.ts +2 -4
  175. package/dist/foundation/release/update-launch.js +0 -7
  176. package/dist/foundation/release/update-recovery.js +1 -1
  177. package/dist/foundation/release/update-transaction.d.ts +1 -1
  178. package/dist/foundation/release/update-transaction.js +5 -2
  179. package/dist/foundation/release/update.d.ts +2 -12
  180. package/dist/foundation/release/update.js +37 -214
  181. package/dist/foundation/session-writer-lock/index.d.ts +14 -6
  182. package/dist/foundation/session-writer-lock/index.js +48 -103
  183. package/dist/foundation/startup/startup-budget.d.ts +5 -5
  184. package/dist/foundation/startup/startup-budget.js +2 -2
  185. package/dist/foundation/startup/startup-runtime.d.ts +1 -1
  186. package/dist/foundation/terminal-cleanup/exit-notice.d.ts +6 -0
  187. package/dist/foundation/terminal-cleanup/exit-notice.js +36 -0
  188. package/dist/foundation/terminal-cleanup/index.d.ts +2 -1
  189. package/dist/foundation/terminal-cleanup/index.js +2 -1
  190. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +0 -5
  191. package/dist/foundation/terminal-cleanup/terminal-reset.js +0 -5
  192. package/dist/integrations/pi/components/editor-interaction.d.ts +4 -12
  193. package/dist/integrations/pi/components/index.d.ts +15 -9
  194. package/dist/integrations/pi/components/index.js +9 -5
  195. package/dist/integrations/pi/components/lazy-selectors.d.ts +2 -10
  196. package/dist/integrations/pi/components/lazy-selectors.js +1 -1
  197. package/dist/integrations/pi/components/modal-frame.d.ts +5 -22
  198. package/dist/integrations/pi/components/modal-frame.js +3 -23
  199. package/dist/integrations/pi/components/owned-editor-ux.d.ts +4 -3
  200. package/dist/integrations/pi/components/prompt-input-port.d.ts +2 -19
  201. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +2 -1
  202. package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +3 -2
  203. package/dist/integrations/pi/components/shell-editor-autocomplete.js +1 -4
  204. package/dist/integrations/pi/components/shell-footer-status.d.ts +3 -3
  205. package/dist/integrations/pi/components/shell-footer-status.js +5 -4
  206. package/dist/integrations/pi/components/shell-hotkey-sections.js +1 -1
  207. package/dist/integrations/pi/components/shell-presenters-info.d.ts +6 -8
  208. package/dist/integrations/pi/components/shell-presenters-info.js +6 -19
  209. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +1 -1
  210. package/dist/integrations/pi/components/shell-presenters-transcript.js +1 -1
  211. package/dist/integrations/pi/components/shell-session-info-reference.d.ts +2 -1
  212. package/dist/integrations/pi/components/shell-shared-facade.d.ts +33 -229
  213. package/dist/integrations/pi/components/shell-shared-facade.js +8 -1
  214. package/dist/integrations/pi/components/skills-command.d.ts +1 -9
  215. package/dist/integrations/pi/components/skills-command.js +5 -5
  216. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +2 -5
  217. package/dist/integrations/pi/components/submitted-prompt-adapter.js +2 -16
  218. package/dist/integrations/pi/components/theme.d.ts +9 -2
  219. package/dist/integrations/pi/components/theme.js +17 -2
  220. package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +2 -1
  221. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +2 -2
  222. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +1 -2
  223. package/dist/integrations/pi/components/upstream/components/session-footer.js +6 -8
  224. package/dist/integrations/pi/engine/adapter.d.ts +3 -6
  225. package/dist/integrations/pi/engine/adapter.js +4 -28
  226. package/dist/integrations/pi/engine/changelog.d.ts +2 -2
  227. package/dist/integrations/pi/engine/changelog.js +3 -3
  228. package/dist/integrations/pi/engine/compaction-progress.d.ts +2 -3
  229. package/dist/integrations/pi/engine/compaction-progress.js +1 -1
  230. package/dist/integrations/pi/engine/conformance.d.ts +2 -1
  231. package/dist/integrations/pi/engine/default-model-setting.d.ts +0 -2
  232. package/dist/integrations/pi/engine/default-model-setting.js +1 -2
  233. package/dist/integrations/pi/engine/diagnostics-state.d.ts +0 -1
  234. package/dist/integrations/pi/engine/diagnostics-state.js +0 -14
  235. package/dist/integrations/pi/engine/event-delivery.d.ts +2 -1
  236. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +2 -1
  237. package/dist/integrations/pi/engine/host.js +2 -2
  238. package/dist/integrations/pi/engine/message-values.d.ts +0 -1
  239. package/dist/integrations/pi/engine/message-values.js +1 -1
  240. package/dist/integrations/pi/engine/pending-delivery.d.ts +0 -4
  241. package/dist/integrations/pi/engine/pending-delivery.js +3 -3
  242. package/dist/integrations/pi/engine/ports.d.ts +7 -1
  243. package/dist/integrations/pi/engine/ports.js +4 -0
  244. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +2 -1
  245. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +3 -3
  246. package/dist/integrations/pi/engine/prompt-suggestions.js +0 -40
  247. package/dist/integrations/pi/engine/provider-authentication.d.ts +1 -1
  248. package/dist/integrations/pi/engine/public-main-entry.d.ts +1 -5
  249. package/dist/integrations/pi/engine/public-main-entry.js +1 -1
  250. package/dist/integrations/pi/engine/repository-pr-rest.d.ts +1 -9
  251. package/dist/integrations/pi/engine/repository-pr-rest.js +2 -2
  252. package/dist/integrations/pi/engine/repository-pr.d.ts +1 -3
  253. package/dist/integrations/pi/engine/repository-pr.js +1 -1
  254. package/dist/integrations/pi/engine/resource-catalog.d.ts +2 -1
  255. package/dist/integrations/pi/engine/session-integration.d.ts +1 -1
  256. package/dist/integrations/pi/engine/session-runtime.d.ts +4 -3
  257. package/dist/integrations/pi/engine/session-runtime.js +0 -2
  258. package/dist/integrations/pi/engine/settings-bridge.d.ts +0 -2
  259. package/dist/integrations/pi/engine/settings-bridge.js +1 -1
  260. package/dist/integrations/pi/engine/settings-port.d.ts +3 -2
  261. package/dist/integrations/pi/engine/transcript-projection.d.ts +2 -1
  262. package/dist/integrations/pi/engine/workflow-contexts.d.ts +1 -1
  263. package/dist/integrations/pi/engine/workflow-runner.d.ts +1 -1
  264. package/dist/integrations/pi/engine/workflow-runner.js +1 -1
  265. package/dist/integrations/pi/engine/workflow-support.d.ts +0 -6
  266. package/dist/integrations/pi/engine/workflow-support.js +4 -18
  267. package/dist/integrations/pi/engine/workflows.d.ts +5 -5
  268. package/dist/integrations/pi/session-presenters/components.d.ts +3 -0
  269. package/dist/integrations/pi/session-presenters/components.js +75 -0
  270. package/dist/integrations/pi/session-presenters/index.d.ts +1 -0
  271. package/dist/integrations/pi/session-presenters/index.js +1 -0
  272. package/dist/integrations/pi/session-presenters/presentation.d.ts +3 -0
  273. package/dist/integrations/pi/session-presenters/presentation.js +10 -0
  274. package/dist/integrations/pi/session-presenters/presenters.d.ts +2 -1
  275. package/dist/integrations/pi/session-presenters/presenters.js +3 -1
  276. package/dist/integrations/pi/tui-runtime/adapter.d.ts +2 -2
  277. package/dist/integrations/pi/tui-runtime/adapter.js +23 -32
  278. package/dist/integrations/pi/tui-runtime/contracts.d.ts +22 -166
  279. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +5 -40
  280. package/dist/integrations/pi/tui-runtime/index.d.ts +1 -0
  281. package/dist/integrations/pi/tui-runtime/index.js +1 -0
  282. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +4 -6
  283. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +2 -8
  284. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +3 -9
  285. package/dist/integrations/pi/tui-runtime/runtime-factory.d.ts +3 -0
  286. package/dist/integrations/pi/tui-runtime/runtime-factory.js +11 -0
  287. package/dist/product-identity.d.ts +4 -6
  288. package/dist/product-identity.js +6 -11
  289. package/dist/product-identity.json +1 -40
  290. package/dist/runtime-payload-inventory.json +0 -3
  291. package/dist/ui/components/index.d.ts +4 -4
  292. package/dist/ui/components/index.js +2 -2
  293. package/dist/ui/components/selection-copy.d.ts +0 -1
  294. package/dist/ui/components/selection-copy.js +0 -12
  295. package/dist/ui/components/submitted-prompt.d.ts +3 -13
  296. package/dist/ui/components/submitted-prompt.js +8 -41
  297. package/dist/ui/components/theme.d.ts +4 -19
  298. package/dist/ui/components/theme.js +6 -0
  299. package/dist/ui/components/transcript-viewport.d.ts +1 -3
  300. package/dist/ui/components/transcript-viewport.js +1 -4
  301. package/dist/ui/settings/declarations.d.ts +2 -97
  302. package/dist/ui/settings/declarations.js +2 -78
  303. package/dist/ui/settings/early-accent.js +1 -1
  304. package/dist/ui/settings/index.d.ts +3 -5
  305. package/dist/ui/settings/index.js +2 -3
  306. package/dist/ui/settings/manager.d.ts +0 -4
  307. package/dist/ui/settings/manager.js +6 -62
  308. package/dist/ui/settings/resolution.d.ts +6 -18
  309. package/dist/ui/settings/resolution.js +4 -103
  310. package/dist/ui/settings/sections.d.ts +0 -4
  311. package/dist/ui/settings/sections.js +1 -1
  312. package/docs/architecture/boundaries.md +23 -40
  313. package/docs/architecture/code-documentation.md +2 -2
  314. package/docs/architecture/internal-naming.md +11 -17
  315. package/docs/architecture/project-structure.md +13 -16
  316. package/docs/architecture/resource-and-data-policy.md +16 -31
  317. package/docs/architecture/toolchain.md +14 -19
  318. package/docs/architecture/ui-reference-provenance.md +2 -2
  319. package/docs/ci-release-runbook.md +5 -5
  320. package/docs/features/launch-profiles.md +11 -17
  321. package/docs/features/prompt-history.md +10 -11
  322. package/docs/local-worktree-cleanup.md +28 -1
  323. package/docs/manual-owned-ui-checkpoint.md +0 -1
  324. package/docs/validation.md +5 -11
  325. package/docs/worktree-link-recovery.md +6 -6
  326. package/package.json +7 -20
  327. package/bin/guardian.js +0 -42
  328. package/bin/supervisor.js +0 -7
  329. package/bin/tab-launch-context.d.ts +0 -27
  330. package/bin/tab-launch-context.js +0 -94
  331. package/dist/app/session-shell/resident-tab-coordinator.d.ts +0 -38
  332. package/dist/app/session-shell/resident-tab-coordinator.js +0 -77
  333. package/dist/cli/tabs-request.d.ts +0 -7
  334. package/dist/cli/tabs.d.ts +0 -14
  335. package/dist/cli/tabs.js +0 -151
  336. package/dist/composition/resident-tab-bridge.d.ts +0 -41
  337. package/dist/composition/resident-tab-bridge.js +0 -209
  338. package/dist/composition/utility-tab.d.ts +0 -28
  339. package/dist/composition/utility-tab.js +0 -244
  340. package/dist/features/owned-ui/plus-menu-dialog.d.ts +0 -28
  341. package/dist/features/owned-ui/plus-menu-dialog.js +0 -89
  342. package/dist/features/resident-tab/auto-name.d.ts +0 -11
  343. package/dist/features/resident-tab/auto-name.js +0 -44
  344. package/dist/features/resident-tab/index.d.ts +0 -5
  345. package/dist/features/resident-tab/index.js +0 -7
  346. package/dist/features/resident-tab/shortcut-bindings-file.d.ts +0 -8
  347. package/dist/features/resident-tab/shortcut-bindings-file.js +0 -40
  348. package/dist/features/resident-tab/shortcut-declarations.d.ts +0 -13
  349. package/dist/features/resident-tab/shortcut-declarations.js +0 -26
  350. package/dist/features/resident-tab/shortcut-projection.d.ts +0 -29
  351. package/dist/features/resident-tab/shortcut-projection.js +0 -64
  352. package/dist/features/resident-tab/status-deriver.d.ts +0 -10
  353. package/dist/features/resident-tab/status-deriver.js +0 -12
  354. package/dist/foundation/launch-guardian/exit-watcher.d.ts +0 -14
  355. package/dist/foundation/launch-guardian/exit-watcher.js +0 -103
  356. package/dist/foundation/launch-guardian/index.d.ts +0 -2
  357. package/dist/foundation/launch-guardian/index.js +0 -1
  358. package/dist/foundation/launch-guardian/main.d.ts +0 -39
  359. package/dist/foundation/launch-guardian/main.js +0 -232
  360. package/dist/foundation/lifecycle/commands.d.ts +0 -40
  361. package/dist/foundation/lifecycle/launch-instance.d.ts +0 -46
  362. package/dist/foundation/lifecycle/launch-instance.js +0 -134
  363. package/dist/foundation/lifecycle/native-claim-gate.d.ts +0 -5
  364. package/dist/foundation/lifecycle/native-claim-gate.js +0 -41
  365. package/dist/foundation/lifecycle/supervisor-startup.d.ts +0 -30
  366. package/dist/foundation/lifecycle/supervisor-startup.js +0 -106
  367. package/dist/foundation/process-containment/addon-containment.d.ts +0 -20
  368. package/dist/foundation/process-containment/addon-containment.js +0 -139
  369. package/dist/foundation/process-containment/addon-process-inspector.d.ts +0 -11
  370. package/dist/foundation/process-containment/addon-process-inspector.js +0 -36
  371. package/dist/foundation/process-containment/addon.d.ts +0 -47
  372. package/dist/foundation/process-containment/addon.js +0 -57
  373. package/dist/foundation/process-containment/artifact.d.ts +0 -1
  374. package/dist/foundation/process-containment/artifact.js +0 -35
  375. package/dist/foundation/process-containment/contracts.d.ts +0 -33
  376. package/dist/foundation/process-containment/contracts.js +0 -35
  377. package/dist/foundation/process-containment/index.d.ts +0 -9
  378. package/dist/foundation/process-containment/index.js +0 -7
  379. package/dist/foundation/process-containment/linux-process-inspector.d.ts +0 -7
  380. package/dist/foundation/process-containment/linux-process-inspector.js +0 -27
  381. package/dist/foundation/process-containment/native-process-inspector.d.ts +0 -4
  382. package/dist/foundation/process-containment/native-process-inspector.js +0 -21
  383. package/dist/foundation/protocol/client.d.ts +0 -18
  384. package/dist/foundation/protocol/client.js +0 -130
  385. package/dist/foundation/protocol/index.d.ts +0 -3
  386. package/dist/foundation/protocol/index.js +0 -2
  387. package/dist/foundation/protocol/messages.d.ts +0 -90
  388. package/dist/foundation/protocol/messages.js +0 -100
  389. package/dist/foundation/release/cohort-selection.d.ts +0 -33
  390. package/dist/foundation/release/cohort-selection.js +0 -67
  391. package/dist/foundation/release/endpoint-lock.d.ts +0 -2
  392. package/dist/foundation/release/endpoint-lock.js +0 -37
  393. package/dist/foundation/release/endpoint-recovery.d.ts +0 -10
  394. package/dist/foundation/release/endpoint-recovery.js +0 -45
  395. package/dist/foundation/release/endpoints.d.ts +0 -32
  396. package/dist/foundation/release/endpoints.js +0 -152
  397. package/dist/foundation/release/prepared-update-activation.d.ts +0 -3
  398. package/dist/foundation/release/prepared-update-activation.js +0 -27
  399. package/dist/foundation/release/process-cleanup.d.ts +0 -14
  400. package/dist/foundation/release/process-cleanup.js +0 -76
  401. package/dist/foundation/release/supervisor-identity.d.ts +0 -15
  402. package/dist/foundation/release/supervisor-identity.js +0 -63
  403. package/dist/foundation/resident-tabs/boot-identity.d.ts +0 -6
  404. package/dist/foundation/resident-tabs/boot-identity.js +0 -16
  405. package/dist/foundation/resident-tabs/bounded-host-command.d.ts +0 -20
  406. package/dist/foundation/resident-tabs/bounded-host-command.js +0 -62
  407. package/dist/foundation/resident-tabs/bridge-client.d.ts +0 -73
  408. package/dist/foundation/resident-tabs/bridge-client.js +0 -327
  409. package/dist/foundation/resident-tabs/continuity.d.ts +0 -12
  410. package/dist/foundation/resident-tabs/continuity.js +0 -63
  411. package/dist/foundation/resident-tabs/doctor.d.ts +0 -28
  412. package/dist/foundation/resident-tabs/doctor.js +0 -166
  413. package/dist/foundation/resident-tabs/draft-checkpoint.d.ts +0 -27
  414. package/dist/foundation/resident-tabs/draft-checkpoint.js +0 -145
  415. package/dist/foundation/resident-tabs/ensure-terminal-host.d.ts +0 -36
  416. package/dist/foundation/resident-tabs/ensure-terminal-host.js +0 -151
  417. package/dist/foundation/resident-tabs/fault-injection.d.ts +0 -8
  418. package/dist/foundation/resident-tabs/fault-injection.js +0 -26
  419. package/dist/foundation/resident-tabs/fixture-control.d.ts +0 -7
  420. package/dist/foundation/resident-tabs/fixture-control.js +0 -35
  421. package/dist/foundation/resident-tabs/host-entry.js +0 -17
  422. package/dist/foundation/resident-tabs/index.d.ts +0 -15
  423. package/dist/foundation/resident-tabs/index.js +0 -10
  424. package/dist/foundation/resident-tabs/maintenance.d.ts +0 -39
  425. package/dist/foundation/resident-tabs/maintenance.js +0 -75
  426. package/dist/foundation/resident-tabs/progress-observation-schema.d.ts +0 -34
  427. package/dist/foundation/resident-tabs/progress-observation-schema.js +0 -1
  428. package/dist/foundation/resident-tabs/progress-observation.d.ts +0 -4
  429. package/dist/foundation/resident-tabs/progress-observation.js +0 -150
  430. package/dist/foundation/resident-tabs/prompt-journal.d.ts +0 -63
  431. package/dist/foundation/resident-tabs/prompt-journal.js +0 -213
  432. package/dist/foundation/resident-tabs/protocol.d.ts +0 -12
  433. package/dist/foundation/resident-tabs/protocol.js +0 -195
  434. package/dist/foundation/resident-tabs/recovery.d.ts +0 -26
  435. package/dist/foundation/resident-tabs/recovery.js +0 -205
  436. package/dist/foundation/resident-tabs/release-holds.d.ts +0 -28
  437. package/dist/foundation/resident-tabs/release-holds.js +0 -78
  438. package/dist/foundation/resident-tabs/routes.d.ts +0 -5
  439. package/dist/foundation/resident-tabs/routes.js +0 -5
  440. package/dist/foundation/resident-tabs/routing.d.ts +0 -11
  441. package/dist/foundation/resident-tabs/routing.js +0 -10
  442. package/dist/foundation/resident-tabs/runtime-control.d.ts +0 -38
  443. package/dist/foundation/resident-tabs/runtime-control.js +0 -74
  444. package/dist/foundation/resident-tabs/session-sync.d.ts +0 -14
  445. package/dist/foundation/resident-tabs/session-sync.js +0 -37
  446. package/dist/foundation/resident-tabs/settings.d.ts +0 -16
  447. package/dist/foundation/resident-tabs/settings.js +0 -60
  448. package/dist/foundation/resident-tabs/terminal-host-artifact.d.ts +0 -14
  449. package/dist/foundation/resident-tabs/terminal-host-artifact.js +0 -78
  450. package/dist/foundation/resident-tabs/zip-archive.d.ts +0 -9
  451. package/dist/foundation/resident-tabs/zip-archive.js +0 -56
  452. package/dist/foundation/storage/control-store.d.ts +0 -20
  453. package/dist/foundation/storage/control-store.js +0 -331
  454. package/dist/foundation/storage/index.d.ts +0 -1
  455. package/dist/foundation/storage/index.js +0 -1
  456. package/dist/foundation/supervision/index.d.ts +0 -3
  457. package/dist/foundation/supervision/index.js +0 -3
  458. package/dist/foundation/supervision/main.d.ts +0 -1
  459. package/dist/foundation/supervision/main.js +0 -86
  460. package/dist/foundation/supervision/paths.d.ts +0 -1
  461. package/dist/foundation/supervision/paths.js +0 -1
  462. package/dist/foundation/supervision/server.d.ts +0 -46
  463. package/dist/foundation/supervision/server.js +0 -611
  464. package/dist/integrations/pi/components/components.d.ts +0 -4
  465. package/dist/integrations/pi/components/components.js +0 -48
  466. package/dist/integrations/pi/components/conformance.d.ts +0 -18
  467. package/dist/integrations/pi/components/conformance.js +0 -70
  468. package/dist/integrations/pi/components/shell-components.d.ts +0 -7
  469. package/dist/integrations/pi/components/shell-components.js +0 -7
  470. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +0 -33
  471. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +0 -114
  472. package/dist/integrations/pi/engine/offline-settings-port.d.ts +0 -23
  473. package/dist/integrations/pi/engine/offline-settings-port.js +0 -54
  474. package/dist/native/darwin-arm64/manifest.json +0 -23
  475. package/dist/native/darwin-arm64/process-guardian.node +0 -0
  476. package/dist/native/darwin-arm64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10500
  477. package/dist/native/darwin-arm64/terminal-host.manifest.json +0 -46
  478. package/dist/native/darwin-arm64/terminal-host.node +0 -0
  479. package/dist/native/darwin-x64/manifest.json +0 -23
  480. package/dist/native/darwin-x64/process-guardian.node +0 -0
  481. package/dist/native/darwin-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10737
  482. package/dist/native/darwin-x64/terminal-host.manifest.json +0 -46
  483. package/dist/native/darwin-x64/terminal-host.node +0 -0
  484. package/dist/native/linux-x64/manifest.json +0 -23
  485. package/dist/native/linux-x64/process-guardian.node +0 -0
  486. package/dist/native/linux-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -11226
  487. package/dist/native/linux-x64/terminal-host.manifest.json +0 -46
  488. package/dist/native/linux-x64/terminal-host.node +0 -0
  489. package/dist/native/win32-x64/manifest.json +0 -23
  490. package/dist/native/win32-x64/process-guardian.node +0 -0
  491. package/dist/native/win32-x64/terminal-host-THIRD-PARTY-NOTICES.txt +0 -10757
  492. package/dist/native/win32-x64/terminal-host.manifest.json +0 -46
  493. package/dist/native/win32-x64/terminal-host.node +0 -0
  494. package/dist/ui/settings/migrations.d.ts +0 -19
  495. package/dist/ui/settings/migrations.js +0 -209
  496. package/dist/ui/settings/progress-palette.generated.d.ts +0 -139
  497. package/dist/ui/settings/progress-palette.generated.js +0 -139
  498. package/docs/architecture/evidence/resident-tabs/linux-x64.md +0 -37
  499. package/docs/architecture/evidence/resident-tabs/macos-arm64.md +0 -36
  500. package/docs/architecture/evidence/resident-tabs/macos-x64.md +0 -35
  501. package/docs/architecture/evidence/resident-tabs/windows-x64.md +0 -36
  502. package/docs/architecture/evidence/terminal-host-spike/manual-one-pane-terminal-host.md +0 -70
  503. package/docs/architecture/evidence/terminal-host-spike/manual-two-by-two-basic-terminal-host.md +0 -32
  504. package/docs/architecture/evidence/terminal-host-spike/milestone-baseline.json +0 -115
  505. package/docs/architecture/evidence/terminal-host-spike/owned-ui-foundation-prerequisite.json +0 -48
  506. package/docs/architecture/evidence/terminal-host-spike/terminal-host-provenance.json +0 -125
  507. package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-1.json +0 -56
  508. package/docs/architecture/evidence/terminal-host-spike/terminal-host-task-5-3.json +0 -174
  509. package/docs/architecture/evidence/terminal-host-spike/terminal-spike-acceptance-record.json +0 -18
  510. package/docs/architecture/native-fixture-isolation.md +0 -23
  511. package/docs/architecture/process-guardian-provenance.md +0 -36
  512. package/docs/architecture/resident-tabs-requirements.md +0 -18
  513. package/docs/architecture/resident-tabs.md +0 -668
  514. package/docs/architecture/terminal-host-proof-gate.md +0 -34
  515. package/docs/architecture/terminal-host-provenance.md +0 -81
  516. package/docs/architecture/terminal-host-spike-evidence.md +0 -39
  517. package/docs/launch-recovery.md +0 -23
  518. package/docs/manual-launch-instance-acceptance.md +0 -43
  519. package/docs/manual-resident-tabs-acceptance.md +0 -51
  520. /package/dist/{cli/tabs-request.js → contracts/owned-ui/shell-components.js} +0 -0
  521. /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.d.ts +0 -0
  522. /package/dist/{foundation/release → contracts/presentation}/progress-palette.generated.js +0 -0
  523. /package/dist/{foundation/lifecycle/commands.js → contracts/presentation/terminal.js} +0 -0
  524. /package/dist/{foundation/resident-tabs/host-entry.d.ts → contracts/presentation/theme.js} +0 -0
package/README.md CHANGED
@@ -53,19 +53,19 @@ The installer needs Node.js 22.19 or later. When npm's global folder is not writ
53
53
 
54
54
  ## Launch
55
55
 
56
- Launch A1 (profile: `~/.a1/agent`):
56
+ Launch A1, one agent in this terminal (profile: `~/.a1/agent`):
57
57
 
58
58
  ```text
59
59
  a1
60
60
  ```
61
61
 
62
- Launch A1 in single agent mode:
62
+ Resume a saved session:
63
63
 
64
64
  ```text
65
- a1 solo
65
+ a1 --session <id>
66
66
  ```
67
67
 
68
- When a solo session exits, its printed `a1 solo --session <id>` command resumes that same conversation in solo mode; a custom session store is included in the printed command. Resident tabs are different: they keep running after detach, and bare `a1` returns to them.
68
+ When a session exits, A1 prints the `a1 --session <id>` command that resumes it; a custom session store is included in the printed command. Closing the terminal ends the agent, as it does for Pi.
69
69
 
70
70
  Show all commands:
71
71
 
@@ -73,7 +73,7 @@ Show all commands:
73
73
  a1 help
74
74
  ```
75
75
 
76
- Show the current and latest versions:
76
+ Show the current version and the latest Develop and Release versions, from either installed channel:
77
77
 
78
78
  ```text
79
79
  a1 version
@@ -87,30 +87,6 @@ a1 pi
87
87
 
88
88
  <p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/assets/readme/separator-dark.svg"><img src="docs/assets/readme/separator.svg" alt="" width="280"></picture></p>
89
89
 
90
- ## Tabs
91
-
92
- Tabs keep running after their terminal closes. List them, or stop one; its session stays resumable:
93
-
94
- ```text
95
- a1 tabs
96
- a1 tabs stop <id>
97
- ```
98
-
99
- Stop every tab and the resident host when you are finished with them (not required to run `a1 solo`):
100
-
101
- ```text
102
- a1 tabs host stop
103
- ```
104
-
105
- Show host health, or write a redacted diagnostic bundle:
106
-
107
- ```text
108
- a1 tabs host status
109
- a1 tabs doctor
110
- ```
111
-
112
- <p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/assets/readme/separator-dark.svg"><img src="docs/assets/readme/separator.svg" alt="" width="280"></picture></p>
113
-
114
90
  ## Update
115
91
 
116
92
  Update on the channel you already use (release stays on release, develop stays on develop):
@@ -157,17 +133,16 @@ npm x -y -- @timurproko/a1-install
157
133
 
158
134
  The **Update** setting controls release discovery:
159
135
 
160
- - **Auto** (default) checks the running release's stable or development channel at startup and every 15 minutes while open. It silently installs a verified update, then shows `Update installed, restart to update` above the editor; existing sessions keep running until restarted.
161
- - **Notify** checks at startup (at most daily), keeps the `Update Available` notice, and leaves installation manual.
136
+ - **Auto** (default) checks the running release's stable or development channel at startup and every 15 minutes while open. It silently installs a verified update, then shows `Update installed, restart to update` above the editor; existing sessions keep running on their release, and the next `a1` starts the new one.
162
137
  - **No** performs no update check; updates remain available through the commands above.
163
138
 
164
- `A1_SKIP_VERSION_CHECK=1` disables both Auto and Notify discovery. Manual stable, development, and exact-version update commands remain available in every mode.
139
+ `A1_SKIP_VERSION_CHECK=1` disables Auto discovery. Manual stable, development, and exact-version update commands remain available in every mode.
165
140
 
166
141
  <p align="center"><picture><source media="(prefers-color-scheme: dark)" srcset="docs/assets/readme/separator-dark.svg"><img src="docs/assets/readme/separator.svg" alt="" width="280"></picture></p>
167
142
 
168
143
  ## Uninstall
169
144
 
170
- Remove A1 from this machine. It stops running tabs and asks before deleting your sessions and settings in `~/.a1`:
145
+ Remove A1 from this machine. It asks before deleting your sessions and settings in `~/.a1`:
171
146
 
172
147
  ```text
173
148
  a1 uninstall
@@ -217,7 +192,7 @@ a1 update npm:pi-mcp-adapter
217
192
 
218
193
  ## Develop
219
194
 
220
- A source build needs Node.js, npm, git, and Rustup. Windows additionally needs Visual Studio or Visual Studio Build Tools with the **Desktop development with C++** workload, MSVC x64/x86 tools, and a Windows SDK; Visual Studio Code is not required. A1 discovers installed Rustup and Visual Studio tools and initializes them for build children, so Git Bash and ordinary PowerShell do not need manual `PATH` or developer-shell setup. It never installs these tools or accepts their licenses automatically.
195
+ A source build needs Node.js, npm, and git. The product is pure TypeScript; there is no native toolchain to install.
221
196
 
222
197
  Install exact locked dependencies:
223
198
 
@@ -225,7 +200,7 @@ Install exact locked dependencies:
225
200
  npm ci
226
201
  ```
227
202
 
228
- Compile TypeScript and the native addons into `dist`:
203
+ Compile TypeScript into `dist`:
229
204
 
230
205
  ```text
231
206
  npm run build
@@ -255,7 +230,7 @@ Complete non-physical suite:
255
230
  npm run test:full
256
231
  ```
257
232
 
258
- Report Node, npm, git, Rust, dependency, and Windows C++ readiness. Missing Windows tools are listed in setup order; after installing them, rerun the same build command:
233
+ Report Node, npm, git, GitHub CLI, and dependency readiness; after fixing anything it lists, rerun the same build command:
259
234
 
260
235
  ```text
261
236
  npm run doctor
package/bin/cli.js CHANGED
@@ -55,23 +55,8 @@ process.exitCode = await dispatchCli(process.argv.slice(2), {
55
55
  return await runPackageCommand(request, { createPort: createPiPackagesPort });
56
56
  },
57
57
  sessionContext: async request => {
58
- const [{ runSessionContextCommand }, { createNativeProcessInspector }, { readLaunchContext }] = await Promise.all([
59
- import("../dist/cli/session-context.js"),
60
- import("../dist/foundation/process-containment/native-process-inspector.js"),
61
- import("../dist/foundation/launch-context/index.js"),
62
- ]);
63
- const launch = readLaunchContext(process.env);
64
- let inspector;
65
- return await runSessionContextCommand(request, {
66
- inspectProcess: async pid => {
67
- inspector ??= createNativeProcessInspector(process.env, process.platform, launch.releaseRoot);
68
- return (await inspector).observe(pid);
69
- },
70
- });
71
- },
72
- tabs: async request => {
73
- const { runTabsCommand } = await import("../dist/cli/tabs.js");
74
- return await runTabsCommand(request, { packageRoot: fileURLToPath(packageRoot) });
58
+ const { runSessionContextCommand } = await import("../dist/cli/session-context.js");
59
+ return await runSessionContextCommand(request);
75
60
  },
76
61
  uninstall: async request => {
77
62
  const [{ runUninstall }, { createInterface }] = await Promise.all([
package/bin/ui.js CHANGED
@@ -1,18 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- // Security: this helper has no A1, Pi, tool, or extension dependency and erases credentials before those modules load.
4
- const { assignFreshSessionRuntimeId, consumeTabLaunchContext, formatResidentFallbackNotice, waitForStandbyPromotion } = await import("./tab-launch-context.js");
5
- const { uiArguments, tabCredentials, tabDataDir, tabIncarnation, tabStandby } = consumeTabLaunchContext(process.argv.slice(2), process.env);
6
-
7
3
  // Invariant: one terminal module identity per process, decided before any A1 or Pi module loads.
8
4
  const { installPinnedPiTuiResolver } = await import("./module-resolver.js");
9
5
  installPinnedPiTuiResolver(new URL("..", import.meta.url).pathname.replace(/^\/(.:)/, "$1").replace(/\/$/, ""));
10
- const utilityRoute = tabCredentials === undefined
11
- ? null
12
- : (await import("../dist/foundation/resident-tabs/routes.js")).residentUtilityRoute(tabCredentials.tabId);
13
6
  const startup = await import("../dist/foundation/startup/startup-runtime.js");
14
7
  startup.enableEnvironmentCompileCache(process.env);
15
- const { hidesTabSettings, readLaunchContext } = await import("../dist/foundation/launch-context/index.js");
8
+ const { readLaunchContext } = await import("../dist/foundation/launch-context/index.js");
16
9
  const launchContext = readLaunchContext(process.env, "profile");
17
10
  const profile = launchContext.launchProfile;
18
11
  if (profile === undefined) throw new Error("A1 launch profile is missing");
@@ -21,17 +14,16 @@ if (profile === "a1") {
21
14
  import("node:crypto"),
22
15
  import("../dist/product-identity.js"),
23
16
  ]);
24
- assignFreshSessionRuntimeId(process.env, PRODUCT_IDENTITY.environment.sessionRuntimeId, randomUUID);
17
+ // Invariant: every UI process is its own session runtime, never one inherited from a parent shell.
18
+ process.env[PRODUCT_IDENTITY.environment.sessionRuntimeId] = randomUUID();
25
19
  }
26
20
  const { installFatalExit } = await import("../dist/foundation/terminal-cleanup/fatal-exit.js");
27
21
  const { resolveProductPaths } = await import("../dist/foundation/lifecycle/paths.js");
28
- const { dirname, join } = await import("node:path");
22
+ const { join } = await import("node:path");
29
23
  /** @type {{ dispose(): void | Promise<unknown> } | undefined} */
30
24
  let runningApplication;
31
25
  const fatal = profile === "a1" ? installFatalExit({
32
- directory: tabDataDir === undefined
33
- ? join(resolveProductPaths().runtimeDir, "crashes")
34
- : join(dirname(tabDataDir), "diagnostics"),
26
+ directory: join(resolveProductPaths().runtimeDir, "crashes"),
35
27
  ...(launchContext.releaseId === undefined ? {} : { releaseId: launchContext.releaseId }),
36
28
  dispose: () => runningApplication?.dispose(),
37
29
  }) : undefined;
@@ -49,21 +41,7 @@ const assertPiTuiIdentity = () => identity.assertSinglePiTuiModuleAtLaunch(
49
41
  (/** @type {string} */ message) => process.stderr.write(message),
50
42
  );
51
43
 
52
- if (utilityRoute !== null) {
53
- if (profile !== "a1" || tabCredentials === undefined) throw new Error("utility tabs require the normal A1 tab profile");
54
- await startup.markStartupPhase(process.env, "ui-entry");
55
- assertPiTuiIdentity();
56
- const utility = await import("../dist/composition/utility-tab.js");
57
- await startup.markStartupPhase(process.env, "ui-modules-loaded");
58
- const bridge = new (await import("../dist/foundation/resident-tabs/bridge-client.js")).TabBridgeClient({ credentials: tabCredentials });
59
- completeRun(utility.runUtilityTab({
60
- route: utilityRoute,
61
- bridge,
62
- cwd: process.cwd(),
63
- profileId: profile,
64
- onApplication: application => { runningApplication = application; },
65
- }), utility.terminateOwnedUiProcess);
66
- } else {
44
+ {
67
45
  const descriptor = await import("../dist/foundation/startup/startup-descriptor.js");
68
46
  // Performance: begin the exact Agent launch graph together while the trace write is pending.
69
47
  // Direct owned-module entries avoid evaluating unrelated barrel exports before first paint.
@@ -78,40 +56,21 @@ if (utilityRoute !== null) {
78
56
  { composeOwnedUi },
79
57
  ] = await modules;
80
58
 
81
- if (tabStandby) await waitForStandbyPromotion(process.stdin, tabDataDir === undefined ? undefined : join(tabDataDir, "standby-promote"));
82
59
  assertPiTuiIdentity();
83
60
  await startup.markStartupPhase(process.env, "ui-modules-loaded");
84
61
 
85
- const sessionSelection = parseSessionSelection(uiArguments);
62
+ const sessionSelection = parseSessionSelection(process.argv.slice(2));
86
63
  completeRun(Promise.resolve().then(async () => {
87
- const tab = tabCredentials === undefined ? undefined : {
88
- bridge: new (await import("../dist/foundation/resident-tabs/bridge-client.js")).TabBridgeClient({ credentials: tabCredentials }),
89
- dataDir: /** @type {string} */ (tabDataDir),
90
- incarnation: /** @type {number} */ (tabIncarnation),
91
- };
92
64
  if (sessionSelection && profile !== "a1") throw new Error("session selection requires the normal A1 profile");
93
65
  return runSelectedInteractiveRuntime(profile, {
94
- ownedUi: async (profileId, ownedSurfaces) => {
95
- const processInspector = ownedSurfaces
96
- ? await import("../dist/foundation/process-containment/native-process-inspector.js")
97
- .then(module => module.createNativeProcessInspector(process.env, process.platform, launchContext.releaseRoot))
98
- .catch(() => null)
99
- : null;
66
+ ownedUi: async (profileId, productMode) => {
100
67
  const { application, settings } = await composeOwnedUi({
101
68
  cwd: process.cwd(),
102
69
  profileId,
103
- ownedSurfaces,
104
- notificationVersion: launchContext.updateVersion,
105
- ...(hidesTabSettings(launchContext) ? { hideTabSettings: true } : {}),
106
- soloResumeHint: profile === "a1" && launchContext.launchMode === "solo",
107
- ...(processInspector === null ? {} : { inspectProcess: pid => processInspector.observe(pid) }),
108
- projectTrustPrompt: createConsoleProjectTrustPrompt({ presentation: profile === "a1" ? "bare" : "comparison" }),
70
+ productMode,
71
+ projectTrustPrompt: createConsoleProjectTrustPrompt({ productMode }),
109
72
  sessionForkPrompt: createConsoleSessionForkPrompt(),
110
73
  ...(sessionSelection === undefined ? {} : { sessionSelection }),
111
- ...(tab === undefined ? {} : { tab }),
112
- ...(launchContext.residentFallback === undefined ? {} : {
113
- residentFallbackNotice: formatResidentFallbackNotice(launchContext.residentFallback),
114
- }),
115
74
  });
116
75
  runningApplication = application;
117
76
  return await runOwnedUi({ application, ...(settings === null ? {} : { settings }) });
@@ -1,4 +1,4 @@
1
- import type { PiTuiInputDiagnosticsEvent } from "../../integrations/pi/tui-runtime/contracts.js";
1
+ import type { TerminalInputDiagnosticsEvent } from "../../contracts/presentation/index.js";
2
2
  import type { ResponseCopyEvent } from "./response-copy-protocol.js";
3
3
  import type { PasteEvent } from "./paste-protocol.js";
4
4
  /** Opt-in scalar-only snapshots, bounded to 128 rows and one pending asynchronous write. */
@@ -9,7 +9,7 @@ export declare class ClipboardDiagnosticCapture {
9
9
  constructor(destination: string, write?: (file: string, data: string) => Promise<void>);
10
10
  copy(event: ResponseCopyEvent): void;
11
11
  paste(event: PasteEvent): void;
12
- runtime(event: PiTuiInputDiagnosticsEvent): void;
12
+ runtime(event: TerminalInputDiagnosticsEvent): void;
13
13
  /** Explicit test/evidence boundary; the interactive UI never waits for disk diagnostics. */
14
14
  flush(): Promise<void>;
15
15
  dispose(): void;
@@ -8,4 +8,3 @@ export interface ClipboardImageData {
8
8
  * that Node's permissive base64 decoder would otherwise partially accept.
9
9
  */
10
10
  export declare function canonicalizeClipboardImage(image: ClipboardImageData, source?: boolean): ClipboardImageData | null;
11
- export declare function canonicalizeStandardBase64(value: string, source?: boolean): string | null;
@@ -10,7 +10,7 @@ export function canonicalizeClipboardImage(image, source = false) {
10
10
  const data = canonicalizeStandardBase64(image.data, source);
11
11
  return data === null ? null : { data, mimeType: image.mimeType };
12
12
  }
13
- export function canonicalizeStandardBase64(value, source = false) {
13
+ function canonicalizeStandardBase64(value, source = false) {
14
14
  if (typeof value !== "string" || value.length === 0)
15
15
  return null;
16
16
  const maximum = source ? Math.ceil(MAX_SOURCE_IMAGE_BYTES / 3) * 4 : MAX_IMAGE_DATA_BYTES;
@@ -1,14 +1,15 @@
1
+ import type { OwnedUiShellComponents, OwnedUiShellSelectorOption } from "../../contracts/owned-ui/index.js";
2
+ import type { TerminalOverlayHandle } from "../../contracts/presentation/index.js";
1
3
  import type { OwnedUiCommandResult, OwnedUiDialog } from "../../contracts/owned-ui/index.js";
2
4
  import type { UiRouteHost, UiRouteInput } from "../../ui/apps/contracts.js";
3
- import type { PiShellSelectorOption } from "../../integrations/pi/components/shell-shared-facade.js";
4
- import type { PiTuiOverlayHandle } from "../../integrations/pi/tui-runtime/contracts.js";
5
5
  import type { OwnedUiPresenterTerminal } from "./shell-host.js";
6
6
  import type { OwnedUiSessionShellOptions, OwnedUiSessionShellRoot } from "./session-shell-root.js";
7
7
  type StartupRoute = NonNullable<OwnedUiSessionShellOptions["engine"]["startupRoute"]>;
8
- export interface SessionDialogPorts {
8
+ interface SessionDialogPorts {
9
9
  readonly terminal: Pick<OwnedUiPresenterTerminal, "running" | "hasOverlay" | "showOverlay" | "openRoute" | "requestRender">;
10
- readonly root: Pick<OwnedUiSessionShellRoot, "dismissNotice" | "setInputSurface" | "usesDefaultInputSurface">;
10
+ readonly root: Pick<OwnedUiSessionShellRoot, "chrome" | "setInputSurface" | "usesDefaultInputSurface">;
11
11
  readonly routeHost: UiRouteHost | null;
12
+ readonly dialogs: Pick<OwnedUiShellComponents["dialogs"], "dialog" | "selector">;
12
13
  readonly disposed: () => boolean;
13
14
  /** A route, or the interrupt chord over it, asked to leave A1. */
14
15
  readonly exit: () => void;
@@ -26,7 +27,7 @@ export declare class SessionDialogCoordinator {
26
27
  constructor(ports: SessionDialogPorts);
27
28
  /** Clears the replacement input surface a selector put in the dock; the shared close action of every dock selector. */
28
29
  readonly closeInputSurface: () => void;
29
- showSelector(title: string, options: readonly PiShellSelectorOption[], onSelect: (id: string) => void, onCancel?: () => void): PiTuiOverlayHandle;
30
+ showSelector(title: string, options: readonly OwnedUiShellSelectorOption[], onSelect: (id: string) => void, onCancel?: () => void): TerminalOverlayHandle;
30
31
  /** Mirrors the backend's pending dialog; locally owned routes and selectors are left alone when it has none. */
31
32
  syncBackend(dialog: OwnedUiDialog | null): void;
32
33
  openRoute(route: string, input?: UiRouteInput, onClosed?: () => void | Promise<void>): OwnedUiCommandResult;
@@ -1,4 +1,3 @@
1
- import { createPiShellDialog, createPiShellSelector } from "../../integrations/pi/components/shell-selectors-dialogs.js";
2
1
  const OVERLAY_OPTIONS = { width: "70%", maxHeight: "80%", anchor: "center", inputCoordination: "owned" };
3
2
  const STARTUP_ROUTE_RETRY_MS = 25;
4
3
  /**
@@ -26,7 +25,7 @@ export class SessionDialogCoordinator {
26
25
  this.#handle?.hide();
27
26
  this.#source = "local";
28
27
  this.#id = undefined;
29
- const component = createPiShellSelector({
28
+ const component = this.#ports.dialogs.selector({
30
29
  title,
31
30
  options,
32
31
  onSelect: id => {
@@ -57,7 +56,7 @@ export class SessionDialogCoordinator {
57
56
  return;
58
57
  this.#handle?.hide();
59
58
  this.#source = "backend";
60
- const component = createPiShellDialog(dialog, { onSelect: () => this.#close(), onCancel: () => this.#close() });
59
+ const component = this.#ports.dialogs.dialog(dialog, { onSelect: () => this.#close(), onCancel: () => this.#close() });
61
60
  this.#handle = this.#ports.terminal.showOverlay(component, OVERLAY_OPTIONS);
62
61
  this.#id = dialog.id;
63
62
  }
@@ -67,7 +66,7 @@ export class SessionDialogCoordinator {
67
66
  return { outcome: "failed", diagnostic: `route is unavailable: ${route}` };
68
67
  if (!this.#ports.terminal.running)
69
68
  return { outcome: "failed", diagnostic: "runtime is not active" };
70
- this.#ports.root.dismissNotice();
69
+ this.#ports.root.chrome.dismissNotice();
71
70
  this.#handle?.hide();
72
71
  this.#source = "route";
73
72
  const handle = this.#ports.terminal.openRoute(surface, {
@@ -1,13 +1,17 @@
1
- import type { ImageAttachmentError, OwnedUiSessionViewModel } from "../../contracts/owned-ui/index.js";
1
+ import type { ImageAttachmentError, OwnedUiSessionViewModel, OwnedUiShellComponents, OwnedUiShellReleaseUpdateBanner } from "../../contracts/owned-ui/index.js";
2
+ import type { ThemeSource } from "../../contracts/presentation/index.js";
2
3
  import type { TranscriptViewportFrame } from "../../ui/components/transcript-viewport.js";
3
- import { type PiShellReleaseUpdateBanner } from "../../integrations/pi/components/shell-presenters-info.js";
4
4
  import type { SessionViewportController } from "./session-viewport-controller.js";
5
- export interface DockNotice {
5
+ interface DockNotice {
6
6
  readonly kind: "status" | "warning" | "error" | "new-session";
7
7
  readonly message: string;
8
8
  readonly errorCode?: ImageAttachmentError["code"];
9
9
  }
10
- export interface DockChromePorts {
10
+ interface DockChromePorts {
11
+ readonly theme: ThemeSource;
12
+ readonly components: Pick<OwnedUiShellComponents, "chrome" | "info" | "text">;
13
+ /** Columns the pinned layout pads command output with. */
14
+ readonly outputPad: 0 | 1;
11
15
  /** Chrome changed; the root invalidates its chrome components. */
12
16
  readonly invalidateChrome: () => void;
13
17
  readonly requestRender: () => void;
@@ -30,6 +34,7 @@ export declare class DockChrome {
30
34
  clearCopyAcknowledgement(requestRender: boolean): void;
31
35
  renderCopyAcknowledgement(width: number): string | undefined;
32
36
  renderPromptOverlay(diagnostics: OwnedUiSessionViewModel["diagnostics"], width: number): string | undefined;
33
- renderReleaseBanner(diagnostics: OwnedUiSessionViewModel["diagnostics"], width: number): PiShellReleaseUpdateBanner | undefined;
34
- locateReleaseClose(frame: TranscriptViewportFrame, banner: PiShellReleaseUpdateBanner | undefined, tailEnd: number, tailLength: number): void;
37
+ renderReleaseBanner(diagnostics: OwnedUiSessionViewModel["diagnostics"], width: number): OwnedUiShellReleaseUpdateBanner | undefined;
38
+ locateReleaseClose(frame: TranscriptViewportFrame, banner: OwnedUiShellReleaseUpdateBanner | undefined, tailEnd: number, tailLength: number): void;
35
39
  }
40
+ export {};
@@ -1,7 +1,4 @@
1
1
  import { COPY_ACKNOWLEDGEMENT_DURATION_MS } from "../../ui/components/selection-copy.js";
2
- import { renderPiShellCommandMessage, renderPiShellReleaseUpdateBanner, renderPiShellStatusText, } from "../../integrations/pi/components/shell-presenters-info.js";
3
- import { PINNED_PI_LAYOUT, piTheme } from "../../integrations/pi/components/upstream/theme/theme.js";
4
- import { piShellTruncateToWidth, renderPiShellInstalledUpdateStatus } from "../../integrations/pi/components/shell-shared-facade.js";
5
2
  import { parseReleaseUpdateDiagnostic } from "./transcript-document.js";
6
3
  /**
7
4
  * The transient chrome around bare A1's dock: the one command notice above the editor, the release
@@ -41,9 +38,9 @@ export class DockChrome {
41
38
  return [];
42
39
  if (notice.kind === "status") {
43
40
  // Compatibility: Pi pads its status text by one cell regardless of the output pad setting.
44
- return ["", ...renderPiShellStatusText(notice.message, width, PINNED_PI_LAYOUT.outputPad)];
41
+ return ["", ...this.#ports.components.info.statusText(notice.message, width, this.#ports.outputPad)];
45
42
  }
46
- return renderPiShellCommandMessage({
43
+ return this.#ports.components.info.commandMessage({
47
44
  kind: notice.kind === "new-session" ? "accent" : notice.kind,
48
45
  message: notice.message,
49
46
  }, width, outputPad);
@@ -78,14 +75,14 @@ export class DockChrome {
78
75
  renderCopyAcknowledgement(width) {
79
76
  if (this.#copyAcknowledgement === undefined || width <= 0)
80
77
  return undefined;
81
- return piTheme().fg("accent", piShellTruncateToWidth(this.#copyAcknowledgement, width));
78
+ return this.#ports.theme.current().fg("accent", this.#ports.components.text.truncateToWidth(this.#copyAcknowledgement, width));
82
79
  }
83
80
  renderPromptOverlay(diagnostics, width) {
84
81
  const acknowledgement = this.renderCopyAcknowledgement(width);
85
82
  if (acknowledgement !== undefined)
86
83
  return acknowledgement;
87
84
  if (diagnostics.some(diagnostic => diagnostic.code === "release-update-installed")) {
88
- return renderPiShellInstalledUpdateStatus(width) || undefined;
85
+ return this.#ports.components.chrome.installedUpdateStatus(width) || undefined;
89
86
  }
90
87
  return undefined;
91
88
  }
@@ -96,7 +93,7 @@ export class DockChrome {
96
93
  const release = diagnostic === undefined ? null : parseReleaseUpdateDiagnostic(diagnostic.message);
97
94
  if (release === null)
98
95
  return undefined;
99
- return renderPiShellReleaseUpdateBanner(release, width, this.#ports.viewport.tailControlHovered(this.#releaseCloseTarget));
96
+ return this.#ports.components.chrome.releaseUpdateBanner(release, width, this.#ports.viewport.tailControlHovered(this.#releaseCloseTarget));
100
97
  }
101
98
  locateReleaseClose(frame, banner, tailEnd, tailLength) {
102
99
  // Invariant: the tail is the document suffix, so the control's document row is fixed relative to its
@@ -1,5 +1,3 @@
1
- /** Aggregate explicit URL-chip metadata allowance for one owned editor decoration pass. */
2
- export declare const EDITOR_HYPERLINK_METADATA_BYTES: number;
3
1
  /** Accounts complete OSC 8 controls before construction, without scanning oversized backing URLs. */
4
2
  export declare class EditorHyperlinkBudget {
5
3
  #private;
@@ -1,5 +1,5 @@
1
1
  /** Aggregate explicit URL-chip metadata allowance for one owned editor decoration pass. */
2
- export const EDITOR_HYPERLINK_METADATA_BYTES = 64 * 1024;
2
+ const EDITOR_HYPERLINK_METADATA_BYTES = 64 * 1024;
3
3
  const CLOSE_BYTES = 7;
4
4
  const PAIR_BYTES = CLOSE_BYTES * 2;
5
5
  /** Accounts complete OSC 8 controls before construction, without scanning oversized backing URLs. */
@@ -10,9 +10,9 @@ export interface ExitNoticeSource {
10
10
  }) => void): () => void;
11
11
  };
12
12
  }
13
- export interface ArmedExitNotice {
13
+ interface ArmedExitNotice {
14
14
  clear(): void;
15
15
  }
16
- export declare function uncleanExitNoticeLines(resume: SessionResumeCommandMetadata | null, soloResumeHint?: boolean): string[];
17
16
  /** Arms the notice and keeps its resume command following the bound session until cleared. */
18
- export declare function armExitNotice(source: ExitNoticeSource, path: string, soloResumeHint?: boolean): ArmedExitNotice;
17
+ export declare function armExitNotice(source: ExitNoticeSource, path: string): ArmedExitNotice;
18
+ export {};
@@ -1,32 +1,32 @@
1
1
  /**
2
- * The runtime's half of the unclean-exit protocol with the native process guardian. While the
3
- * notice is armed, the guardian treats the runtime's end as unclean: it restores the terminal and
4
- * prints these lines, so a killed session still leaves its resume command behind. A clean shutdown
5
- * clears the notice after the terminal is restored.
2
+ * The runtime's half of the unclean-exit protocol with the launcher. While the notice is armed,
3
+ * the launcher treats the runtime's end as unclean: it restores the terminal and prints these
4
+ * lines, so a killed session still leaves its resume command behind. A clean shutdown clears the
5
+ * notice after the terminal is restored.
6
6
  */
7
7
  import { renameSync, rmSync, writeFileSync } from "node:fs";
8
8
  import { PRODUCT_IDENTITY } from "../../product-identity.js";
9
9
  import { formatSessionResumeCommand } from "./session-lifecycle.js";
10
- export function uncleanExitNoticeLines(resume, soloResumeHint = false) {
10
+ function uncleanExitNoticeLines(resume) {
11
11
  return [
12
12
  `${PRODUCT_IDENTITY.displayName} was stopped unexpectedly.`,
13
- ...(resume === null ? [] : [`To resume this session: ${formatSessionResumeCommand(resume, soloResumeHint)}`]),
13
+ ...(resume === null ? [] : [`To resume this session: ${formatSessionResumeCommand(resume)}`]),
14
14
  ];
15
15
  }
16
16
  /** Arms the notice and keeps its resume command following the bound session until cleared. */
17
- export function armExitNotice(source, path, soloResumeHint = false) {
17
+ export function armExitNotice(source, path) {
18
18
  let current = null;
19
19
  let cleared = false;
20
20
  let generation = source.identity.sessionGeneration;
21
21
  const write = () => {
22
22
  if (cleared)
23
23
  return;
24
- // Protocol: plain text only; the guardian strips control characters, so styling would be lost.
25
- const text = `${uncleanExitNoticeLines(source.identity.currentSessionResumeMetadata(), soloResumeHint).join("\n")}\n`;
24
+ // Protocol: plain text only; the launcher strips control characters, so styling would be lost.
25
+ const text = `${uncleanExitNoticeLines(source.identity.currentSessionResumeMetadata()).join("\n")}\n`;
26
26
  if (text === current)
27
27
  return;
28
28
  try {
29
- // Invariant: the guardian may read at any instant, so it sees the previous or the next notice, never half of one.
29
+ // Invariant: the launcher may read at any instant, so it sees the previous or the next notice, never half of one.
30
30
  const temporary = `${path}.${process.pid}.tmp`;
31
31
  writeFileSync(temporary, text, { mode: 0o600 });
32
32
  renameSync(temporary, path);
@@ -1,6 +1,6 @@
1
+ import type { OwnedUiShellComponentPort } from "../../contracts/owned-ui/index.js";
1
2
  import type { OwnedUiSessionViewModel } from "../../contracts/owned-ui/index.js";
2
- import type { PiShellComponentPort } from "../../integrations/pi/components/shell-shared-facade.js";
3
- export type ExtensionWidgetPlacement = "aboveEditor" | "belowEditor";
3
+ type ExtensionWidgetPlacement = "aboveEditor" | "belowEditor";
4
4
  /**
5
5
  * What extensions draw into the shell: a header that replaces the built-in one, a footer, widgets
6
6
  * above and below the editor, footer statuses, and a working message. It owns those components and
@@ -8,15 +8,15 @@ export type ExtensionWidgetPlacement = "aboveEditor" | "belowEditor";
8
8
  */
9
9
  export declare class ExtensionSurface {
10
10
  #private;
11
- get header(): PiShellComponentPort | null;
12
- get footer(): PiShellComponentPort | null;
11
+ get header(): OwnedUiShellComponentPort | null;
12
+ get footer(): OwnedUiShellComponentPort | null;
13
13
  get working(): {
14
14
  readonly message: string | undefined;
15
15
  readonly visible: boolean;
16
16
  };
17
- placeWidget(key: string, component: PiShellComponentPort | null, placement: ExtensionWidgetPlacement): void;
18
- replaceHeader(component: PiShellComponentPort | null): void;
19
- replaceFooter(component: PiShellComponentPort | null): void;
17
+ placeWidget(key: string, component: OwnedUiShellComponentPort | null, placement: ExtensionWidgetPlacement): void;
18
+ replaceHeader(component: OwnedUiShellComponentPort | null): void;
19
+ replaceFooter(component: OwnedUiShellComponentPort | null): void;
20
20
  setStatus(key: string, text: string | undefined): void;
21
21
  setWorking(message: string | undefined, visible: boolean): void;
22
22
  statuses(): Map<string, string>;
@@ -28,3 +28,4 @@ export declare class ExtensionSurface {
28
28
  reset(): void;
29
29
  dispose(): void;
30
30
  }
31
+ export {};
@@ -1,12 +1,10 @@
1
1
  import type { ChildProcess } from "node:child_process";
2
- /** How long an unused spare helper may idle before it is stopped so a background session holds no extra process. */
3
- export declare const HELPER_SPARE_IDLE_MS: number;
4
- export interface SpareHelper {
2
+ interface SpareHelper {
5
3
  readonly child: ChildProcess;
6
4
  /** Whether the helper already announced itself; the taker must then send the first request itself. */
7
5
  readonly ready: boolean;
8
6
  }
9
- export interface HelperPoolOptions {
7
+ interface HelperPoolOptions {
10
8
  readonly fork: () => ChildProcess;
11
9
  /** Stops a spare that is no longer wanted; the paste helper needs its process group killed on POSIX. */
12
10
  readonly stop: (child: ChildProcess) => void;
@@ -29,3 +27,4 @@ export declare class HelperPool {
29
27
  /** Stops the held spare and refuses further warming. */
30
28
  dispose(): void;
31
29
  }
30
+ export {};
@@ -1,5 +1,5 @@
1
1
  /** How long an unused spare helper may idle before it is stopped so a background session holds no extra process. */
2
- export const HELPER_SPARE_IDLE_MS = 5 * 60_000;
2
+ const HELPER_SPARE_IDLE_MS = 5 * 60_000;
3
3
  /** Holds one idle IPC helper; requests take it, and exits, expiry, or use trigger replacement. */
4
4
  export class HelperPool {
5
5
  #fork;
@@ -1,7 +1,7 @@
1
- import type { PiShellClipboardContent } from "../../integrations/pi/components/index.js";
1
+ import type { OwnedUiShellClipboardContent } from "../../contracts/owned-ui/index.js";
2
2
  import type { ImagePreparationLimits, PreparedImage } from "./image-preparation.js";
3
3
  import type { ImageWorkerRequest } from "./image-worker.js";
4
- export type PreparedClipboardContent = {
4
+ type PreparedClipboardContent = {
5
5
  readonly kind: "text";
6
6
  readonly text: string;
7
7
  } | ({
@@ -14,7 +14,8 @@ export interface ImagePasteJob {
14
14
  /** Owns bounded paste acquisition and one off-thread conversion, canceled on session disposal. */
15
15
  export declare class ImagePreparationClient {
16
16
  #private;
17
- start(read?: (signal: AbortSignal) => Promise<PiShellClipboardContent | null>, limits?: ImagePreparationLimits): ImagePasteJob;
17
+ start(read?: (signal: AbortSignal) => Promise<OwnedUiShellClipboardContent | null>, limits?: ImagePreparationLimits): ImagePasteJob;
18
18
  dispose(): Promise<void>;
19
19
  }
20
20
  export declare function runImageWorker<T>(request: ImageWorkerRequest, signal: AbortSignal): Promise<T>;
21
+ export {};
@@ -10,8 +10,6 @@ export interface PreparedImage {
10
10
  readonly height: number;
11
11
  readonly transformed: boolean;
12
12
  }
13
- export declare const IMAGE_TARGET_BASE64_BYTES: number;
14
- export declare const IMAGE_TARGET_DECODED_BYTES: number;
15
13
  export declare function prepareImage(source: {
16
14
  readonly data: string;
17
15
  readonly mimeType: string;
@@ -2,8 +2,8 @@ import { isMainThread } from "node:worker_threads";
2
2
  import { ImageAttachmentError } from "../../contracts/owned-ui/index.js";
3
3
  import { canonicalizeClipboardImage } from "./clipboard-image.js";
4
4
  import { sourceImageInfo } from "./image-source.js";
5
- export const IMAGE_TARGET_BASE64_BYTES = 4.5 * 1024 * 1024;
6
- export const IMAGE_TARGET_DECODED_BYTES = 5 * 1024 * 1024;
5
+ const IMAGE_TARGET_BASE64_BYTES = 4.5 * 1024 * 1024;
6
+ const IMAGE_TARGET_DECODED_BYTES = 5 * 1024 * 1024;
7
7
  export async function prepareImage(source, limits = {}) {
8
8
  // Performance: an async signature does not move synchronous WASM work off the interactive thread.
9
9
  if (isMainThread)
@@ -1,8 +1,6 @@
1
1
  export declare const MAX_SOURCE_IMAGE_BYTES: number;
2
- export declare const MAX_SOURCE_PIXELS = 40000000;
3
- export declare const MAX_SOURCE_DIMENSION = 32768;
4
2
  export declare const IMAGE_PREPARATION_MS = 15000;
5
- export interface ImageSourceInfo {
3
+ interface ImageSourceInfo {
6
4
  readonly width: number;
7
5
  readonly height: number;
8
6
  readonly mimeType: string;
@@ -11,3 +9,4 @@ export interface ImageSourceInfo {
11
9
  }
12
10
  export declare function assertSourceBytes(length: number): void;
13
11
  export declare function sourceImageInfo(bytes: Uint8Array, mimeType: string): ImageSourceInfo;
12
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { ImageAttachmentError } from "../../contracts/owned-ui/index.js";
2
2
  export const MAX_SOURCE_IMAGE_BYTES = 20 * 1024 * 1024;
3
- export const MAX_SOURCE_PIXELS = 40_000_000;
4
- export const MAX_SOURCE_DIMENSION = 32_768;
3
+ const MAX_SOURCE_PIXELS = 40_000_000;
4
+ const MAX_SOURCE_DIMENSION = 32_768;
5
5
  export const IMAGE_PREPARATION_MS = 15_000;
6
6
  export function assertSourceBytes(length) {
7
7
  if (length > MAX_SOURCE_IMAGE_BYTES)