@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
@@ -1,9 +1,10 @@
1
- import type { PiShellComponentPort, PiShellEditorPort } from "../../integrations/pi/components/shell-shared-facade.js";
2
- import { type PiTuiInputSurfaceKind } from "../../integrations/pi/tui-runtime/input-presentation-coordinator.js";
1
+ import type { OwnedUiShellComponentPort, OwnedUiShellEditorPort } from "../../contracts/owned-ui/index.js";
2
+ import type { TerminalInputSurfaceKind, TerminalRuntimeFactory } from "../../contracts/presentation/index.js";
3
3
  import type { SessionViewportController } from "./session-viewport-controller.js";
4
- export interface InputSurfaceSwitchPorts {
4
+ interface InputSurfaceSwitchPorts {
5
5
  /** Whether keystrokes that cannot change the transcript may repaint the dock alone. */
6
6
  readonly dockInputReuse: boolean;
7
+ readonly classifyInput: TerminalRuntimeFactory["classifyInput"];
7
8
  readonly viewport: Pick<SessionViewportController, "invalidateInputSurface" | "presentationRevision">;
8
9
  /** The surface changed; listeners outside the root react. */
9
10
  readonly onChanged?: () => void;
@@ -15,9 +16,9 @@ export interface InputSurfaceSwitchPorts {
15
16
  */
16
17
  export declare class InputSurfaceSwitch {
17
18
  #private;
18
- constructor(editor: PiShellEditorPort, ports: InputSurfaceSwitchPorts);
19
- get surface(): PiShellComponentPort;
20
- get coordination(): PiTuiInputSurfaceKind;
19
+ constructor(editor: OwnedUiShellEditorPort, ports: InputSurfaceSwitchPorts);
20
+ get surface(): OwnedUiShellComponentPort;
21
+ get coordination(): TerminalInputSurfaceKind;
21
22
  get usesEditor(): boolean;
22
23
  get dockInputCandidate(): boolean;
23
24
  get dockInputRevision(): number | undefined;
@@ -25,7 +26,7 @@ export declare class InputSurfaceSwitch {
25
26
  * Shows `component` in the dock, or the editor for null. Returns false when the surface is
26
27
  * unchanged, in which case only its coordination kind is updated.
27
28
  */
28
- set(component: PiShellComponentPort | null, disposePrevious: boolean, coordination: Exclude<PiTuiInputSurfaceKind, "editor">): boolean;
29
+ set(component: OwnedUiShellComponentPort | null, disposePrevious: boolean, coordination: Exclude<TerminalInputSurfaceKind, "editor">): boolean;
29
30
  handleInput(data: string): void;
30
31
  /** Reads and clears the dock-only candidate for one composition. */
31
32
  takeDockInputCandidate(): boolean;
@@ -34,3 +35,4 @@ export declare class InputSurfaceSwitch {
34
35
  /** Disposes a replacement surface; the editor is disposed by its owner. */
35
36
  dispose(): void;
36
37
  }
38
+ export {};
@@ -1,4 +1,3 @@
1
- import { classifyPiTuiInput } from "../../integrations/pi/tui-runtime/input-presentation-coordinator.js";
2
1
  /**
3
2
  * Which component receives the dock's input: the prompt editor, or a selector, dialog, or prompt
4
3
  * that temporarily replaces it. It also records whether the latest keystroke is safe for a
@@ -55,7 +54,7 @@ export class InputSurfaceSwitch {
55
54
  return true;
56
55
  }
57
56
  handleInput(data) {
58
- this.#dockInputCandidate = this.#ports.dockInputReuse && classifyPiTuiInput(data, this.#coordination) === "safe";
57
+ this.#dockInputCandidate = this.#ports.dockInputReuse && this.#ports.classifyInput(data, this.#coordination) === "safe";
59
58
  this.#dockInputRevision = this.#dockInputCandidate ? this.#ports.viewport.presentationRevision : undefined;
60
59
  try {
61
60
  this.#surface.handleInput?.(data);
@@ -1,12 +1,12 @@
1
- import type { OwnedUiWorkflowInteractionRequest, OwnedUiWorkflowLoginNotification, OwnedUiWorkflowLoginStart } from "../../contracts/owned-ui/index.js";
2
- import type { ProgramStatusReporter } from "../../integrations/pi/components/upstream/program-status-reporter.js";
1
+ import type { OwnedUiShellComponents, OwnedUiShellProgramStatusReporter, OwnedUiWorkflowInteractionRequest, OwnedUiWorkflowLoginNotification, OwnedUiWorkflowLoginStart } from "../../contracts/owned-ui/index.js";
3
2
  import type { SessionConcern } from "./session-concern.js";
4
3
  import type { OwnedUiSessionShellRoot } from "./session-shell-root.js";
5
4
  import { type OwnedUiPresenterTerminal } from "./shell-host.js";
6
- export interface LoginInteractionPorts {
5
+ interface LoginInteractionPorts {
7
6
  readonly terminal: Pick<OwnedUiPresenterTerminal, "viewport" | "requestRender">;
8
7
  readonly root: Pick<OwnedUiSessionShellRoot, "setInputSurface">;
9
- readonly programStatus: Pick<ProgramStatusReporter, "setBlocked">;
8
+ readonly programStatus: Pick<OwnedUiShellProgramStatusReporter, "setBlocked">;
9
+ readonly dialogs: Pick<OwnedUiShellComponents["dialogs"], "loginDialog" | "extensionSelector">;
10
10
  /** The blocked-on-authentication state changed; the presenter republishes terminal progress. */
11
11
  readonly syncProgress: () => void;
12
12
  }
@@ -25,3 +25,4 @@ export declare class LoginInteraction implements SessionConcern {
25
25
  /** A replaced session forgets its dialog; the presenter clears the input surface as part of the same replacement. */
26
26
  onSessionReplaced(): void;
27
27
  }
28
+ export {};
@@ -1,4 +1,3 @@
1
- import { createPiShellExtensionSelector, createPiShellLoginDialog, } from "../../integrations/pi/components/shell-selectors-dialogs.js";
2
1
  import { componentRuntime } from "./shell-host.js";
3
2
  /**
4
3
  * The engine's login flow in the dock: one login dialog at a time, the prompts and selections the
@@ -12,7 +11,7 @@ export class LoginInteraction {
12
11
  }
13
12
  start(request) {
14
13
  this.finish();
15
- const dialog = createPiShellLoginDialog(componentRuntime(this.#ports.terminal), request.providerId, success => {
14
+ const dialog = this.#ports.dialogs.loginDialog(componentRuntime(this.#ports.terminal), request.providerId, success => {
16
15
  if (!success)
17
16
  this.finish();
18
17
  }, request.providerName);
@@ -39,7 +38,7 @@ export class LoginInteraction {
39
38
  this.#ports.root.setInputSurface(dialog);
40
39
  this.#ports.terminal.requestRender();
41
40
  };
42
- const selector = createPiShellExtensionSelector(request.message, labels, label => {
41
+ const selector = this.#ports.dialogs.extensionSelector(request.message, labels, label => {
43
42
  const id = options.find(option => option.label === label)?.id;
44
43
  restoreDialog();
45
44
  resolve(id ?? null);
@@ -1,5 +1,4 @@
1
- import { type ChildProcess } from "node:child_process";
2
- import type { PiShellClipboardContent } from "../../integrations/pi/components/shell-shared-facade.js";
1
+ import type { OwnedUiShellClipboardContent } from "../../contracts/owned-ui/index.js";
3
2
  import { type PreparedPaste, type PasteEvent } from "./paste-protocol.js";
4
3
  import { HelperPool } from "./helper-pool.js";
5
4
  export interface PasteExecutorJob {
@@ -7,12 +6,9 @@ export interface PasteExecutorJob {
7
6
  readonly stopped: Promise<void>;
8
7
  cancel(): void;
9
8
  }
10
- export type PastePhase = (phase: PasteEvent["phase"], bytes?: number) => void;
11
- /** Forks one paste helper: no inherited descriptors, JSON IPC only, and its own process group on POSIX. */
12
- export declare function forkPasteHelper(helper?: URL): ChildProcess;
13
- /** Kills a paste helper and everything it spawned, then lets the parent exit without waiting for it. */
14
- export declare function stopPasteHelper(child: ChildProcess): void;
9
+ type PastePhase = (phase: PasteEvent["phase"], bytes?: number) => void;
15
10
  /** A spare-of-one pool of paste helpers; `startPasteExecutor` takes its child and warms the next one after each paste. */
16
11
  export declare function createPasteHelperPool(helper?: URL, idleMs?: number): HelperPool;
17
12
  /** Streams bounded fragments through a killable child; native/codec/filesystem work never runs on the UI thread. */
18
- export declare function startPasteExecutor(content: PiShellClipboardContent | undefined, signal: AbortSignal, phase?: PastePhase, helper?: URL, pool?: HelperPool): PasteExecutorJob;
13
+ export declare function startPasteExecutor(content: OwnedUiShellClipboardContent | undefined, signal: AbortSignal, phase?: PastePhase, helper?: URL, pool?: HelperPool): PasteExecutorJob;
14
+ export {};
@@ -20,7 +20,7 @@ function permitConversion() {
20
20
  child.send({ kind: "convert" }, () => { });
21
21
  }
22
22
  /** Forks one paste helper: no inherited descriptors, JSON IPC only, and its own process group on POSIX. */
23
- export function forkPasteHelper(helper) {
23
+ function forkPasteHelper(helper) {
24
24
  const source = new URL(import.meta.url).pathname.endsWith(".ts");
25
25
  const entry = helper ?? new URL(source ? "./paste-helper.ts" : "./paste-helper.js", import.meta.url);
26
26
  const options = {
@@ -31,7 +31,7 @@ export function forkPasteHelper(helper) {
31
31
  return fork(entry, [], options);
32
32
  }
33
33
  /** Kills a paste helper and everything it spawned, then lets the parent exit without waiting for it. */
34
- export function stopPasteHelper(child) {
34
+ function stopPasteHelper(child) {
35
35
  // Concurrency: POSIX command fallbacks share this isolated process group; kill descendants too.
36
36
  if (process.platform !== "win32" && child.pid !== undefined) {
37
37
  try {
@@ -1,4 +1,4 @@
1
- import type { PiShellClipboardContent } from "../../integrations/pi/components/index.js";
1
+ import type { OwnedUiShellClipboardContent } from "../../contracts/owned-ui/index.js";
2
2
  import type { PreparedPasteText, ClipboardPath } from "./paste-text-preparation.js";
3
3
  import type { PreparedImage } from "./image-preparation.js";
4
4
  export declare const PASTE_READ_MS = 5000;
@@ -16,7 +16,7 @@ export type PasteSource = {
16
16
  readonly before?: (signal: AbortSignal) => Promise<boolean>;
17
17
  } | {
18
18
  readonly kind: "provided";
19
- readonly read: (signal: AbortSignal) => Promise<PiShellClipboardContent | null>;
19
+ readonly read: (signal: AbortSignal) => Promise<OwnedUiShellClipboardContent | null>;
20
20
  readonly before?: (signal: AbortSignal) => Promise<boolean>;
21
21
  } | {
22
22
  readonly kind: "text";
@@ -1,14 +1,9 @@
1
1
  import type { ClipboardPath, PreparedPasteText } from "./paste-types.js";
2
- export declare const PATH_CHIP_PRESENTATION_UNITS = 4096;
3
2
  /** Normalizes a path for host-filesystem identity comparisons. */
4
3
  export declare function normalizedPathIdentity(fullPath: string): string;
5
4
  /** Yields labels from the basename through the normalized rooted path, shortest first. */
6
5
  export declare function pathChipLabelCandidates(fullPath: string): Iterable<string>;
7
- /** Formats one path label with the established folder/file/image-file icon. */
8
- export declare function pathChipTag(item: ClipboardPath, label?: string): string;
9
6
  /** Yields complete deterministic tags lazily for path collision adoption. */
10
7
  export declare function pathChipTagCandidates(item: ClipboardPath): Iterable<string>;
11
- /** Returns the conservative UTF-16 presentation cost for one path occurrence. */
12
- export declare function pathChipPresentationUnits(item: ClipboardPath): number;
13
8
  /** Run in the isolated preparer: compact before path arrays become an oversized editor presentation. */
14
9
  export declare function preparePathPresentation(paths: readonly ClipboardPath[]): PreparedPasteText;
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- export const PATH_CHIP_PRESENTATION_UNITS = 4096;
2
+ const PATH_CHIP_PRESENTATION_UNITS = 4096;
3
3
  const IMAGE_EXTENSION = /\.(?:jpe?g|png|webp|gif|bmp|tiff?)$/iu;
4
4
  /** Normalizes a path for host-filesystem identity comparisons. */
5
5
  export function normalizedPathIdentity(fullPath) {
@@ -29,7 +29,7 @@ export function* pathChipLabelCandidates(fullPath) {
29
29
  yield rooted;
30
30
  }
31
31
  /** Formats one path label with the established folder/file/image-file icon. */
32
- export function pathChipTag(item, label = basePathLabel(item.fullPath)) {
32
+ function pathChipTag(item, label = basePathLabel(item.fullPath)) {
33
33
  const icon = item.kind === "folder" ? "📁" : IMAGE_EXTENSION.test(item.fullPath) ? "🖼 " : "📄";
34
34
  return `[${icon} ${label}]`;
35
35
  }
@@ -39,7 +39,7 @@ export function* pathChipTagCandidates(item) {
39
39
  yield pathChipTag(item, label);
40
40
  }
41
41
  /** Returns the conservative UTF-16 presentation cost for one path occurrence. */
42
- export function pathChipPresentationUnits(item) {
42
+ function pathChipPresentationUnits(item) {
43
43
  return pathChipTag(item, displayPath(path.normalize(item.fullPath.trim()))).length;
44
44
  }
45
45
  /** Run in the isolated preparer: compact before path arrays become an oversized editor presentation. */
@@ -1,7 +1,7 @@
1
- import type { PiShellClipboardContent, PiShellEditorTextRange } from "../../integrations/pi/components/shell-shared-facade.js";
1
+ import type { OwnedUiShellClipboardContent, OwnedUiShellEditorTextRange } from "../../contracts/owned-ui/index.js";
2
2
  import { type PastePreparationClientOptions } from "./paste-preparation-client.js";
3
3
  import type { PasteEvent, PasteSource } from "./paste-protocol.js";
4
- export interface PromptImageAttachment {
4
+ interface PromptImageAttachment {
5
5
  readonly type: "image";
6
6
  readonly data: string;
7
7
  readonly mimeType: string;
@@ -21,7 +21,7 @@ export declare class PromptChipStore {
21
21
  });
22
22
  /** Forks the spare paste helper so the session's first paste does not pay for helper startup. */
23
23
  warm(): void;
24
- beginPaste(currentText: string, read: ((signal: AbortSignal) => Promise<PiShellClipboardContent | null>) | PasteSource, onError: (error: unknown) => void, onImage?: () => void): {
24
+ beginPaste(currentText: string, read: ((signal: AbortSignal) => Promise<OwnedUiShellClipboardContent | null>) | PasteSource, onError: (error: unknown) => void, onImage?: () => void): {
25
25
  marker: string;
26
26
  result: Promise<string>;
27
27
  complete?(): void;
@@ -37,11 +37,11 @@ export declare class PromptChipStore {
37
37
  readonly limit: number;
38
38
  readonly corrected: boolean;
39
39
  };
40
- transformPastedContent(content: PiShellClipboardContent, currentText?: string): string;
40
+ transformPastedContent(content: OwnedUiShellClipboardContent, currentText?: string): string;
41
41
  /** Hide provisional clipboard identities until the read identifies an actual image. */
42
- hiddenRanges(line: string): readonly PiShellEditorTextRange[];
43
- atomicRanges(line: string): readonly PiShellEditorTextRange[];
44
- unsentRanges(line: string): readonly PiShellEditorTextRange[];
42
+ hiddenRanges(line: string): readonly OwnedUiShellEditorTextRange[];
43
+ atomicRanges(line: string): readonly OwnedUiShellEditorTextRange[];
44
+ unsentRanges(line: string): readonly OwnedUiShellEditorTextRange[];
45
45
  omitUnsentImages(text: string): string;
46
46
  hyperlinkRanges(text: string): readonly {
47
47
  start: number;
@@ -76,3 +76,4 @@ export declare class PromptChipStore {
76
76
  rehydrateHistoryText(text: string, resolveImage: (id: string) => PromptImageAttachment | null): string;
77
77
  prepareSubmission(text: string): PreparedPrompt;
78
78
  }
79
+ export {};
@@ -1,10 +1,10 @@
1
+ import type { OwnedUiShellEditorPort } from "../../contracts/owned-ui/index.js";
1
2
  import { type PromptHistoryKind, type PromptHistoryPort } from "../../contracts/owned-ui/index.js";
2
- import type { PiShellEditorPort } from "../../integrations/pi/components/index.js";
3
3
  /** Merges bounded recall snapshots; the editor alone owns browsing, draft, cursor, and undo state. */
4
4
  export declare class PromptHistoryController {
5
5
  #private;
6
6
  readonly options: {
7
- editor: PiShellEditorPort;
7
+ editor: OwnedUiShellEditorPort;
8
8
  store: PromptHistoryPort;
9
9
  limit: number;
10
10
  fallback: readonly string[];
@@ -16,7 +16,7 @@ export declare class PromptHistoryController {
16
16
  rehydrate?: (text: string) => string;
17
17
  };
18
18
  constructor(options: {
19
- editor: PiShellEditorPort;
19
+ editor: OwnedUiShellEditorPort;
20
20
  store: PromptHistoryPort;
21
21
  limit: number;
22
22
  fallback: readonly string[];
@@ -1,15 +1,15 @@
1
+ import type { OwnedUiShellComponents } from "../../contracts/owned-ui/index.js";
1
2
  import type { OwnedUiCommand, OwnedUiCommandResult, OwnedUiSessionBackend, OwnedUiSessionViewModel, PromptHistoryImageSidecarPort } from "../../contracts/owned-ui/index.js";
2
3
  import type { PromptHistoryController } from "./prompt-history-controller.js";
3
- import type { ResidentTabCoordinator } from "./resident-tab-coordinator.js";
4
4
  import type { SessionConcern } from "./session-concern.js";
5
5
  import type { OwnedUiSessionShellRoot } from "./session-shell-root.js";
6
6
  import type { OwnedUiPresenterTerminal } from "./shell-host.js";
7
- export interface PromptSubmissionPorts {
7
+ interface PromptSubmissionPorts {
8
8
  readonly backend: Pick<OwnedUiSessionBackend, "session" | "identity" | "workflows">;
9
- readonly root: Pick<OwnedUiSessionShellRoot, "editor" | "hasPendingPastes" | "waitForPromptPastes" | "setExtensionWidget" | "prepareHistoryText" | "imageChipAttachmentsFromEditor" | "preparePromptSubmission" | "omitUnsentPromptImages" | "resumeViewportFollowing" | "beginImageSubmissionStatus" | "appendWorkflowResult">;
9
+ readonly root: Pick<OwnedUiSessionShellRoot, "editor" | "hasPendingPastes" | "waitForPromptPastes" | "setExtensionWidget" | "prepareHistoryText" | "imageChipAttachmentsFromEditor" | "preparePromptSubmission" | "omitUnsentPromptImages" | "resumeViewportFollowing" | "beginImageSubmissionStatus" | "workflow">;
10
10
  readonly terminal: Pick<OwnedUiPresenterTerminal, "requestRender">;
11
- readonly residentTab: ResidentTabCoordinator;
12
11
  readonly cwd: string;
12
+ readonly statusText: OwnedUiShellComponents["info"]["statusText"];
13
13
  promptHistory(): PromptHistoryController | null;
14
14
  imageSidecar(): PromptHistoryImageSidecarPort | undefined;
15
15
  disposed(): boolean;
@@ -23,8 +23,8 @@ export interface PromptSubmissionPorts {
23
23
  }
24
24
  /**
25
25
  * Turns editor input into engine commands: prompts, steering, follow-ups, and bash, each recorded
26
- * in history first. It holds a submission whose image pastes are still preparing, journals prompts
27
- * for resident tabs, and recovers the draft when a submission is rejected.
26
+ * in history first. It holds a submission whose image pastes are still preparing and recovers the
27
+ * draft when a submission is rejected.
28
28
  */
29
29
  export declare class PromptSubmission implements SessionConcern {
30
30
  #private;
@@ -46,3 +46,4 @@ export declare class PromptSubmission implements SessionConcern {
46
46
  onSessionReplaced(): void;
47
47
  dispose(): void;
48
48
  }
49
+ export {};
@@ -1,10 +1,9 @@
1
1
  import { assertOwnedUiCommand, assertPromptImages, ImageAttachmentError, } from "../../contracts/owned-ui/index.js";
2
- import { renderPiShellStatusText } from "../../integrations/pi/components/shell-presenters-info.js";
3
2
  const rejected = (diagnostic) => ({ outcome: "rejected", diagnostic });
4
3
  /**
5
4
  * Turns editor input into engine commands: prompts, steering, follow-ups, and bash, each recorded
6
- * in history first. It holds a submission whose image pastes are still preparing, journals prompts
7
- * for resident tabs, and recovers the draft when a submission is rejected.
5
+ * in history first. It holds a submission whose image pastes are still preparing and recovers the
6
+ * draft when a submission is rejected.
8
7
  */
9
8
  export class PromptSubmission {
10
9
  #ports;
@@ -80,7 +79,7 @@ export class PromptSubmission {
80
79
  reportError(error, message) {
81
80
  // Security: arbitrary provider/extension error messages can contain the entire request.
82
81
  try {
83
- this.#ports.root.appendWorkflowResult({ command: "debug", outcome: "failed", message: message
82
+ this.#ports.root.workflow.appendResult({ command: "debug", outcome: "failed", message: message
84
83
  ?? (error instanceof ImageAttachmentError ? error.message : "Submission failed. Check the prompt and try again.") }, error instanceof ImageAttachmentError ? error.code : undefined);
85
84
  this.#ports.terminal.requestRender();
86
85
  }
@@ -120,7 +119,7 @@ export class PromptSubmission {
120
119
  #showWaiting() {
121
120
  const count = this.#waiting.size;
122
121
  this.#ports.root.setExtensionWidget("owned-image-preparation", count === 0 ? null : {
123
- render: width => [...renderPiShellStatusText(`Waiting for images (${count} submission${count === 1 ? "" : "s"}) — Esc cancels; dequeue restores`, width)],
122
+ render: width => [...this.#ports.statusText(`Waiting for images (${count} submission${count === 1 ? "" : "s"}) — Esc cancels; dequeue restores`, width)],
124
123
  invalidate: () => { },
125
124
  }, "aboveEditor");
126
125
  this.#ports.terminal.requestRender();
@@ -199,29 +198,9 @@ export class PromptSubmission {
199
198
  text: input,
200
199
  ...(prepared.images.length === 0 ? {} : { images: prepared.images }),
201
200
  };
202
- let submission;
203
- try {
204
- submission = await this.#ports.residentTab.admit({
205
- sessionId: command.sessionId,
206
- sessionFile: this.#ports.currentSessionFile(),
207
- kind: type,
208
- text: input,
209
- });
210
- }
211
- catch {
212
- if (root.editor.getText().length === 0)
213
- root.editor.setText(displayInput);
214
- const message = "Prompt was not sent because its recovery journal could not be synchronized.";
215
- this.reportError(undefined, message);
216
- return rejected(message);
217
- }
218
201
  const finishSending = prepared.images.length === 0 ? () => { } : root.beginImageSubmissionStatus();
219
202
  try {
220
- const result = await this.execute(command, displayInput);
221
- if (submission !== undefined && result.outcome !== "rejected") {
222
- await this.#ports.residentTab.dispatched(submission.id, command.correlationId);
223
- }
224
- return result;
203
+ return await this.execute(command, displayInput);
225
204
  }
226
205
  finally {
227
206
  finishSending();
@@ -242,13 +221,13 @@ export class PromptSubmission {
242
221
  message: result.cancelled ? "Bash command cancelled" : `Bash exited ${result.exitCode ?? 0}: ${command}`,
243
222
  ...(result.output ? { detail: result.output } : {}),
244
223
  };
245
- this.#ports.root.appendWorkflowResult(workflow);
224
+ this.#ports.root.workflow.appendResult(workflow);
246
225
  this.#ports.terminal.requestRender();
247
226
  return workflow.outcome === "failed" ? rejected(workflow.message) : { outcome: "completed", diagnostic: null };
248
227
  }
249
228
  catch (error) {
250
229
  const message = `Bash command failed: ${error instanceof Error ? error.message : String(error)}`;
251
- this.#ports.root.appendWorkflowResult({ command: "debug", outcome: "failed", message });
230
+ this.#ports.root.workflow.appendResult({ command: "debug", outcome: "failed", message });
252
231
  this.#ports.terminal.requestRender();
253
232
  return rejected(message);
254
233
  }
@@ -16,14 +16,14 @@ export interface QuitOutroCell {
16
16
  readonly glyph: string;
17
17
  readonly color: string;
18
18
  }
19
- export interface QuitOutroPlan {
19
+ interface QuitOutroPlan {
20
20
  /** Sorted by `start`. */
21
21
  readonly sparkles: readonly QuitOutroCell[];
22
22
  /** Sorted by `end`. */
23
23
  readonly clears: readonly QuitOutroCell[];
24
24
  }
25
- export declare const QUIT_OUTRO_EFFECTS: readonly ["fall", "dissolve", "starburst", "waves"];
25
+ declare const QUIT_OUTRO_EFFECTS: readonly ["fall", "dissolve", "starburst", "waves"];
26
26
  export type QuitOutroEffect = (typeof QUIT_OUTRO_EFFECTS)[number];
27
- export declare function isQuitOutroEffect(value: unknown): value is QuitOutroEffect;
28
27
  /** Builds the selected effect's deterministic plan for the captured row widths. */
29
28
  export declare function createQuitOutroPlan(effect: QuitOutroEffect, rowWidths: readonly number[], seed: number): QuitOutroPlan;
29
+ export {};
@@ -6,10 +6,7 @@
6
6
  * cell from `start`, and clears blank a cell at `end`. The player consumes both
7
7
  * in order, so a fixed seed yields a byte-stable animation.
8
8
  */
9
- export const QUIT_OUTRO_EFFECTS = Object.freeze(["fall", "dissolve", "starburst", "waves"]);
10
- export function isQuitOutroEffect(value) {
11
- return typeof value === "string" && QUIT_OUTRO_EFFECTS.includes(value);
12
- }
9
+ const QUIT_OUTRO_EFFECTS = Object.freeze(["fall", "dissolve", "starburst", "waves"]);
13
10
  const WHITE = "\x1b[38;2;238;238;238m";
14
11
  const DUST_GLYPHS = [".", "·", "'", ":", "+", "°"];
15
12
  const FALL_GLYPHS = [".", ".", "·", "'", ":", "°"];
@@ -1,5 +1,5 @@
1
1
  import { type QuitOutroEffect } from "./quit-outro-effects.js";
2
- export interface QuitOutroFrame {
2
+ interface QuitOutroFrame {
3
3
  /** Row content as presented, truncated to `columns`; index 0 is the top row. */
4
4
  readonly lines: readonly string[];
5
5
  readonly columns: number;
@@ -7,7 +7,7 @@ export interface QuitOutroFrame {
7
7
  /** Visible width of each line, at most `columns`. */
8
8
  readonly rowWidths: readonly number[];
9
9
  }
10
- export interface QuitOutroPlayback {
10
+ interface QuitOutroPlayback {
11
11
  write(data: string): void;
12
12
  /** Monotonic clock seam; defaults to `Date.now`. */
13
13
  now?(): number;
@@ -16,25 +16,22 @@ export interface QuitOutroPlayback {
16
16
  /** Plan seed; defaults to a time- and geometry-derived value. */
17
17
  readonly seed?: number;
18
18
  /** Active bare-A1 canvas; omitted preserves transparent playback bytes. */
19
- readonly canvasBackgroundAnsi?: string;
19
+ readonly canvas?: QuitOutroCanvas;
20
+ }
21
+ /** A painted canvas: its background sequence and how to rebase a row's default background onto it. */
22
+ export interface QuitOutroCanvas {
23
+ readonly ansi: string;
24
+ readonly rebase: (content: string, backgroundAnsi: string) => string;
20
25
  }
21
- export declare const QUIT_OUTRO_MIN_MS = 300;
22
- export declare const QUIT_OUTRO_MAX_MS = 2000;
23
- /** Wall-clock allowance beyond the clamped duration before playback abandons remaining ticks. */
24
- export declare const QUIT_OUTRO_GUARD_MS = 500;
25
- /** Tick ceiling for a clock that stops advancing: the longest playback plus its guard at 30 fps. */
26
- export declare const QUIT_OUTRO_MAX_TICKS: number;
27
- export declare function clampQuitOutroDuration(durationMs: number): number;
28
26
  /**
29
27
  * Captures the presented rows into an outro frame. Returns null when nothing is
30
28
  * visible, so a blank screen never animates.
31
29
  */
32
30
  export declare function captureQuitOutroFrame(presented: readonly string[], columns: number, rows: number): QuitOutroFrame | null;
33
- /** The clear-and-repaint block that seeds the animation surface with the captured frame. */
34
- export declare function createQuitOutroSurfaceFrame(frame: QuitOutroFrame, canvasBackgroundAnsi?: string): string;
35
31
  /**
36
32
  * Plays the effect over the frame. Resolves true when the plan was played to
37
33
  * completion or abandoned at its guard, false when there was nothing to play.
38
34
  * Write failures propagate so the caller can decide to continue restoration.
39
35
  */
40
36
  export declare function playQuitOutro(frame: QuitOutroFrame, effect: QuitOutroEffect, durationMs: number, playback: QuitOutroPlayback): Promise<boolean>;
37
+ export {};
@@ -6,22 +6,21 @@
6
6
  * terminal cannot delay restoration past the configured clamp.
7
7
  */
8
8
  import { displayWidth, truncateToWidth } from "../../ui/components/index.js";
9
- import { rebaseTerminalDefaultBackground } from "../../integrations/pi/tui-runtime/index.js";
10
9
  import { createQuitOutroPlan } from "./quit-outro-effects.js";
11
- export const QUIT_OUTRO_MIN_MS = 300;
12
- export const QUIT_OUTRO_MAX_MS = 2000;
10
+ const QUIT_OUTRO_MIN_MS = 300;
11
+ const QUIT_OUTRO_MAX_MS = 2000;
13
12
  /** Wall-clock allowance beyond the clamped duration before playback abandons remaining ticks. */
14
- export const QUIT_OUTRO_GUARD_MS = 500;
13
+ const QUIT_OUTRO_GUARD_MS = 500;
15
14
  const FRAME_MS = 1000 / 30;
16
15
  /** Tick ceiling for a clock that stops advancing: the longest playback plus its guard at 30 fps. */
17
- export const QUIT_OUTRO_MAX_TICKS = Math.ceil((QUIT_OUTRO_MAX_MS + QUIT_OUTRO_GUARD_MS) / FRAME_MS) + 1;
16
+ const QUIT_OUTRO_MAX_TICKS = Math.ceil((QUIT_OUTRO_MAX_MS + QUIT_OUTRO_GUARD_MS) / FRAME_MS) + 1;
18
17
  const SYNC_BEGIN = "\x1b[?2026h";
19
18
  const SYNC_END = "\x1b[?2026l";
20
19
  const RESET = "\x1b[0m";
21
20
  const CLEAR_SCREEN = "\x1b[2J";
22
21
  const HOME = "\x1b[H";
23
22
  const HIDE_CURSOR = "\x1b[?25l";
24
- export function clampQuitOutroDuration(durationMs) {
23
+ function clampQuitOutroDuration(durationMs) {
25
24
  if (!Number.isFinite(durationMs))
26
25
  return QUIT_OUTRO_MIN_MS;
27
26
  return Math.max(QUIT_OUTRO_MIN_MS, Math.min(QUIT_OUTRO_MAX_MS, Math.floor(durationMs)));
@@ -45,8 +44,8 @@ export function captureQuitOutroFrame(presented, columns, rows) {
45
44
  return { lines, columns: width, rows: height, rowWidths };
46
45
  }
47
46
  /** The clear-and-repaint block that seeds the animation surface with the captured frame. */
48
- export function createQuitOutroSurfaceFrame(frame, canvasBackgroundAnsi) {
49
- if (canvasBackgroundAnsi === undefined) {
47
+ function createQuitOutroSurfaceFrame(frame, canvas) {
48
+ if (canvas === undefined) {
50
49
  let output = `${SYNC_BEGIN}${HIDE_CURSOR}${CLEAR_SCREEN}${HOME}${RESET}`;
51
50
  for (let row = 0; row < frame.rows; row++) {
52
51
  const line = frame.lines[row] ?? "";
@@ -55,12 +54,13 @@ export function createQuitOutroSurfaceFrame(frame, canvasBackgroundAnsi) {
55
54
  }
56
55
  return `${output}${SYNC_END}`;
57
56
  }
57
+ const canvasBackgroundAnsi = canvas.ansi;
58
58
  let output = `${SYNC_BEGIN}${HIDE_CURSOR}${RESET}${canvasBackgroundAnsi}${CLEAR_SCREEN}${HOME}`;
59
59
  for (let row = 0; row < frame.rows; row++) {
60
60
  const line = frame.lines[row] ?? "";
61
61
  if (frame.rowWidths[row] > 0) {
62
62
  output += `${cursorAt(row, 0)}${canvasBackgroundAnsi}`
63
- + `${rebaseTerminalDefaultBackground(line, canvasBackgroundAnsi)}${RESET}${canvasBackgroundAnsi}`;
63
+ + `${canvas.rebase(line, canvasBackgroundAnsi)}${RESET}${canvasBackgroundAnsi}`;
64
64
  }
65
65
  }
66
66
  return `${output}${RESET}${SYNC_END}`;
@@ -81,8 +81,8 @@ export async function playQuitOutro(frame, effect, durationMs, playback) {
81
81
  let sparkleIndex = 0;
82
82
  let clearIndex = 0;
83
83
  let ticks = 0;
84
- const canvas = playback.canvasBackgroundAnsi;
85
- playback.write(createQuitOutroSurfaceFrame(frame, canvas));
84
+ playback.write(createQuitOutroSurfaceFrame(frame, playback.canvas));
85
+ const canvas = playback.canvas?.ansi;
86
86
  const startedAt = now();
87
87
  for (;;) {
88
88
  ticks += 1;
@@ -4,8 +4,8 @@ export declare const COPY_CLEANUP_MS = 250;
4
4
  export declare const MAX_COPY_BYTES: number;
5
5
  export declare const MAX_COPY_CONTROL_BYTES: number;
6
6
  export declare const COPY_CHUNK_UNITS = 16384;
7
- export type CopyOutcome = "delivered" | "submitted-unverified" | "failed" | "timed-out" | "superseded" | "canceled";
8
- export type CopyFailure = "size" | "unavailable" | "denied" | "transport" | "unsafe";
7
+ type CopyOutcome = "delivered" | "submitted-unverified" | "failed" | "timed-out" | "superseded" | "canceled";
8
+ type CopyFailure = "size" | "unavailable" | "denied" | "transport" | "unsafe";
9
9
  export interface CopyResult {
10
10
  readonly outcome: CopyOutcome;
11
11
  readonly failure?: CopyFailure;
@@ -54,3 +54,4 @@ export type CopyHelperOutput = {
54
54
  readonly result: CopyResult;
55
55
  readonly control?: string;
56
56
  };
57
+ export {};
@@ -15,26 +15,13 @@ export interface OwnedResponseCopyExecutor extends ResponseCopyExecutor {
15
15
  dispose(): void;
16
16
  readonly warmed: boolean;
17
17
  }
18
- export interface ResponseCopyTerminal {
18
+ interface ResponseCopyTerminal {
19
19
  readonly maxBytes?: number;
20
20
  /** A supported non-blocking submission boundary, not clipboard acknowledgment. */
21
21
  submit(control: string, signal: AbortSignal): Promise<void>;
22
22
  }
23
23
  /** Never substitute a remote host's native clipboard for the terminal user's clipboard. */
24
24
  export declare function responseCopyDestination(env: NodeJS.ProcessEnv): "native" | "terminal";
25
- /**
26
- * Spawn options for one operating-system clipboard writer.
27
- * Platform: on POSIX the writer is detached into its own process group, as pinned Pi 1.4 does, so a writer
28
- * that daemonizes to keep serving the clipboard is not stopped when Ctrl+Z sends SIGTSTP to the shell's group.
29
- */
30
- export declare function platformClipboardWriteOptions(signal: AbortSignal, platform?: NodeJS.Platform): {
31
- signal: AbortSignal;
32
- windowsHide: boolean;
33
- timeout: number;
34
- killSignal: "SIGKILL";
35
- maxBuffer: number;
36
- detached: boolean;
37
- };
38
25
  /** Isolates preparation and native clipboard access; only the owner may submit terminal controls. */
39
26
  export declare function createResponseCopyExecutor(options?: {
40
27
  readonly terminal?: ResponseCopyTerminal;
@@ -52,3 +39,4 @@ export declare function createResponseCopyExecutor(options?: {
52
39
  }): OwnedResponseCopyExecutor;
53
40
  /** A spare-of-one pool of copy helpers; `createResponseCopyExecutor` takes its child and warms the next one after each copy. */
54
41
  export declare function createCopyHelperPool(helper?: URL, idleMs?: number): HelperPool;
42
+ export {};
@@ -1,11 +1,10 @@
1
1
  import { execFile, fork } from "node:child_process";
2
2
  import { HelperPool } from "./helper-pool.js";
3
- import { PRODUCT_IDENTITY } from "../../product-identity.js";
4
3
  import { COPY_CHUNK_UNITS, COPY_CLEANUP_MS, MAX_COPY_BYTES, MAX_COPY_CONTROL_BYTES } from "./response-copy-protocol.js";
5
4
  const PLATFORM_WRITE_TIMEOUT_MS = 1_500;
6
5
  /** Never substitute a remote host's native clipboard for the terminal user's clipboard. */
7
6
  export function responseCopyDestination(env) {
8
- return env[PRODUCT_IDENTITY.environment.tabId] || env.SSH_CONNECTION || env.SSH_CLIENT || env.SSH_TTY || env.TMUX || env.STY || env.WSL_DISTRO_NAME
7
+ return env.SSH_CONNECTION || env.SSH_CLIENT || env.SSH_TTY || env.TMUX || env.STY || env.WSL_DISTRO_NAME
9
8
  ? "terminal" : "native";
10
9
  }
11
10
  function platformClipboardCommands() {
@@ -26,7 +25,7 @@ function platformClipboardCommands() {
26
25
  * Platform: on POSIX the writer is detached into its own process group, as pinned Pi 1.4 does, so a writer
27
26
  * that daemonizes to keep serving the clipboard is not stopped when Ctrl+Z sends SIGTSTP to the shell's group.
28
27
  */
29
- export function platformClipboardWriteOptions(signal, platform = process.platform) {
28
+ function platformClipboardWriteOptions(signal, platform = process.platform) {
30
29
  return {
31
30
  signal,
32
31
  windowsHide: true,
@@ -3,14 +3,13 @@ export interface SessionResumeCommandMetadata {
3
3
  readonly sessionDir: string;
4
4
  readonly usesDefaultSessionDir: boolean;
5
5
  }
6
- export declare function formatSessionResumeCommand(metadata: SessionResumeCommandMetadata, solo?: boolean): string;
6
+ export declare function formatSessionResumeCommand(metadata: SessionResumeCommandMetadata): string;
7
7
  export declare function quoteCommandArgument(value: string): string;
8
- export interface ExitTextInput {
8
+ interface ExitTextInput {
9
9
  readonly terminalMode: "regular" | "fullscreen";
10
10
  readonly customViewport: boolean;
11
11
  readonly exitMode: "transcript" | "resume-hint";
12
12
  readonly resume: SessionResumeCommandMetadata | null;
13
- readonly soloResumeHint?: boolean;
14
13
  /** The styled transcript, rendered only when the pinned profile asks for it. */
15
14
  readonly transcript: () => string;
16
15
  }
@@ -28,3 +27,4 @@ export declare class SessionStopLatch {
28
27
  /** The engine stopped on its own: dispose the shell, then resolve whether or not disposal failed. */
29
28
  settleAfter(dispose: () => Promise<void>): void;
30
29
  }
30
+ export {};