@timurproko/a1 0.1.8-dev.50ebb19 → 0.1.8-dev.512

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 (869) hide show
  1. package/README.md +168 -65
  2. package/bin/activate.js +8 -0
  3. package/bin/cli.js +33 -11
  4. package/bin/guardian.js +16 -6
  5. package/bin/module-identity.js +76 -69
  6. package/bin/module-resolver.js +138 -0
  7. package/bin/pinned-pi-public.d.ts +3 -0
  8. package/bin/pinned-pi-public.js +93 -0
  9. package/bin/release-cleanup.js +8 -0
  10. package/bin/supervisor.js +2 -2
  11. package/bin/sync-pi-tui-proxy.js +7 -0
  12. package/bin/ui.js +67 -22
  13. package/bin/update-recovery.js +343 -0
  14. package/bin/warmup.js +28 -0
  15. package/dist/app/session-shell/clipboard-diagnostics.d.ts +16 -0
  16. package/dist/app/session-shell/clipboard-diagnostics.js +65 -0
  17. package/dist/app/session-shell/clipboard-image.d.ts +11 -0
  18. package/dist/app/session-shell/clipboard-image.js +38 -0
  19. package/dist/app/session-shell/editor-hyperlink-budget.d.ts +9 -0
  20. package/dist/app/session-shell/editor-hyperlink-budget.js +23 -0
  21. package/dist/app/session-shell/helper-pool.d.ts +33 -0
  22. package/dist/app/session-shell/helper-pool.js +98 -0
  23. package/dist/app/session-shell/image-preparation-client.d.ts +20 -0
  24. package/dist/app/session-shell/image-preparation-client.js +145 -0
  25. package/dist/app/session-shell/image-preparation.d.ts +18 -0
  26. package/dist/app/session-shell/image-preparation.js +126 -0
  27. package/dist/app/session-shell/image-source.d.ts +13 -0
  28. package/dist/app/session-shell/image-source.js +171 -0
  29. package/dist/app/session-shell/image-worker.d.ts +17 -0
  30. package/dist/app/session-shell/image-worker.js +23 -0
  31. package/dist/app/session-shell/index.d.ts +7 -0
  32. package/dist/app/session-shell/index.js +4 -0
  33. package/dist/app/session-shell/paste-executor.d.ts +18 -0
  34. package/dist/app/session-shell/paste-executor.js +253 -0
  35. package/dist/app/session-shell/paste-helper.js +173 -0
  36. package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
  37. package/dist/app/session-shell/paste-preparation-client.js +170 -0
  38. package/dist/app/session-shell/paste-protocol.d.ts +78 -0
  39. package/dist/app/session-shell/paste-protocol.js +18 -0
  40. package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
  41. package/dist/app/session-shell/paste-text-preparation.js +134 -0
  42. package/dist/app/session-shell/paste-text-worker.js +12 -0
  43. package/dist/app/session-shell/paste-types.d.ts +17 -0
  44. package/dist/app/session-shell/path-chip-presentation.d.ts +7 -0
  45. package/dist/app/session-shell/path-chip-presentation.js +24 -0
  46. package/dist/app/session-shell/prompt-chips.d.ts +76 -0
  47. package/dist/app/session-shell/prompt-chips.js +507 -0
  48. package/dist/app/session-shell/prompt-history-controller.d.ts +36 -0
  49. package/dist/app/session-shell/prompt-history-controller.js +170 -0
  50. package/dist/app/session-shell/prompt-suggestion-controller.d.ts +35 -0
  51. package/dist/app/session-shell/prompt-suggestion-controller.js +207 -0
  52. package/dist/app/session-shell/quit-outro-effects.d.ts +29 -0
  53. package/dist/app/session-shell/quit-outro-effects.js +242 -0
  54. package/dist/app/session-shell/quit-outro.d.ts +38 -0
  55. package/dist/app/session-shell/quit-outro.js +98 -0
  56. package/dist/app/session-shell/response-copy-coordinator.d.ts +27 -0
  57. package/dist/app/session-shell/response-copy-coordinator.js +187 -0
  58. package/dist/app/session-shell/response-copy-helper.js +122 -0
  59. package/dist/app/session-shell/response-copy-protocol.d.ts +56 -0
  60. package/dist/app/session-shell/response-copy-protocol.js +5 -0
  61. package/dist/app/session-shell/response-copy-transport.d.ts +39 -0
  62. package/dist/app/session-shell/response-copy-transport.js +217 -0
  63. package/dist/app/session-shell/session-shell-root.d.ts +265 -0
  64. package/dist/app/session-shell/session-shell-root.js +1366 -0
  65. package/dist/app/session-shell/session-shell.d.ts +59 -0
  66. package/dist/app/session-shell/session-shell.js +1917 -0
  67. package/dist/app/session-shell/session-viewport-controller.d.ts +61 -0
  68. package/dist/app/session-shell/session-viewport-controller.js +597 -0
  69. package/dist/app/session-shell/stream-presentation-coalescer.d.ts +29 -0
  70. package/dist/app/session-shell/stream-presentation-coalescer.js +79 -0
  71. package/dist/app/session-shell/system-clipboard.d.ts +20 -0
  72. package/dist/app/session-shell/system-clipboard.js +159 -0
  73. package/dist/app/session-shell/text-paste.d.ts +5 -0
  74. package/dist/app/session-shell/text-paste.js +16 -0
  75. package/dist/cli/capabilities.d.ts +6 -0
  76. package/dist/cli/capabilities.js +7 -0
  77. package/dist/cli/dispatch.d.ts +46 -0
  78. package/dist/cli/dispatch.js +261 -0
  79. package/dist/cli/index.d.ts +8 -0
  80. package/dist/cli/index.js +4 -0
  81. package/dist/cli/package-messages.d.ts +26 -0
  82. package/dist/cli/package-messages.js +71 -0
  83. package/dist/cli/packages.d.ts +32 -0
  84. package/dist/cli/packages.js +81 -0
  85. package/dist/cli/version-stats.d.ts +22 -0
  86. package/dist/cli/version-stats.js +112 -0
  87. package/dist/composition/index.d.ts +2 -0
  88. package/dist/composition/index.js +2 -0
  89. package/dist/composition/owned-ui.d.ts +37 -0
  90. package/dist/composition/owned-ui.js +136 -0
  91. package/dist/composition/settings-route-host.d.ts +7 -0
  92. package/dist/composition/settings-route-host.js +110 -0
  93. package/dist/contracts/agent-engine/capability-ports.d.ts +95 -0
  94. package/dist/contracts/agent-engine/domain-validation.js +107 -0
  95. package/dist/contracts/agent-engine/domain.d.ts +138 -0
  96. package/dist/contracts/agent-engine/index.d.ts +11 -0
  97. package/dist/contracts/agent-engine/index.js +6 -0
  98. package/dist/contracts/agent-engine/package-ports.d.ts +60 -0
  99. package/dist/contracts/agent-engine/ports.js +1 -0
  100. package/dist/contracts/owned-ui/extension-ui.d.ts +310 -0
  101. package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
  102. package/dist/contracts/owned-ui/image-attachments.js +67 -0
  103. package/dist/contracts/owned-ui/index.d.ts +12 -0
  104. package/dist/contracts/owned-ui/index.js +8 -0
  105. package/dist/contracts/owned-ui/model.d.ts +378 -0
  106. package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
  107. package/dist/contracts/owned-ui/prompt-history.js +23 -0
  108. package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
  109. package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
  110. package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
  111. package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
  112. package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
  113. package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
  114. package/dist/contracts/owned-ui/validation.d.ts +15 -0
  115. package/dist/contracts/owned-ui/validation.js +523 -0
  116. package/dist/contracts/presentation/index.d.ts +104 -0
  117. package/dist/features/launch/development-launch.js +36 -0
  118. package/dist/features/launch/index.d.ts +12 -0
  119. package/dist/features/launch/index.js +6 -0
  120. package/dist/features/launch/intent.d.ts +12 -0
  121. package/dist/features/launch/intent.js +8 -0
  122. package/dist/features/launch/prepare-launch.d.ts +11 -0
  123. package/dist/features/launch/prepare-launch.js +14 -0
  124. package/dist/features/launch/profile-paths.d.ts +16 -0
  125. package/dist/features/launch/profile-paths.js +36 -0
  126. package/dist/features/launch/runtime-selection.d.ts +16 -0
  127. package/dist/features/launch/runtime-selection.js +13 -0
  128. package/dist/features/owned-ui/index.d.ts +6 -0
  129. package/dist/features/owned-ui/index.js +4 -0
  130. package/dist/features/owned-ui/project-trust-prompt.d.ts +25 -0
  131. package/dist/features/owned-ui/project-trust-prompt.js +149 -0
  132. package/dist/features/owned-ui/run.d.ts +17 -0
  133. package/dist/features/owned-ui/run.js +64 -0
  134. package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
  135. package/dist/features/owned-ui/session-fork-prompt.js +34 -0
  136. package/dist/features/owned-ui/settings-app.d.ts +21 -0
  137. package/dist/features/owned-ui/settings-app.js +807 -0
  138. package/dist/features/owned-ui/settings-route.d.ts +2 -0
  139. package/dist/features/owned-ui/settings-route.js +2 -0
  140. package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
  141. package/dist/features/prompt-history/image-sidecar.js +130 -0
  142. package/dist/features/prompt-history/index.d.ts +4 -0
  143. package/dist/features/prompt-history/index.js +3 -0
  144. package/dist/features/prompt-history/paths.d.ts +5 -0
  145. package/dist/features/prompt-history/paths.js +17 -0
  146. package/dist/features/prompt-history/service.d.ts +54 -0
  147. package/dist/features/prompt-history/service.js +425 -0
  148. package/dist/features/prompt-history/store.d.ts +16 -0
  149. package/dist/features/prompt-history/store.js +219 -0
  150. package/dist/features/prompt-history/worker.d.ts +9 -0
  151. package/dist/features/prompt-history/worker.js +45 -0
  152. package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
  153. package/dist/features/prompt-suggestions/diagnostics.js +82 -0
  154. package/dist/features/prompt-suggestions/index.d.ts +2 -0
  155. package/dist/features/prompt-suggestions/index.js +1 -0
  156. package/dist/foundation/launch-context/index.d.ts +59 -0
  157. package/dist/foundation/launch-context/index.js +136 -0
  158. package/dist/foundation/launch-guardian/index.d.ts +2 -0
  159. package/dist/foundation/launch-guardian/index.js +1 -0
  160. package/dist/foundation/launch-guardian/main.d.ts +33 -0
  161. package/dist/foundation/launch-guardian/main.js +180 -0
  162. package/dist/foundation/lifecycle/commands.js +1 -0
  163. package/dist/foundation/lifecycle/index.d.ts +11 -0
  164. package/dist/foundation/lifecycle/index.js +5 -0
  165. package/dist/foundation/lifecycle/model.d.ts +64 -0
  166. package/dist/foundation/lifecycle/model.js +40 -0
  167. package/dist/foundation/lifecycle/paths.d.ts +30 -0
  168. package/dist/foundation/lifecycle/paths.js +70 -0
  169. package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
  170. package/dist/foundation/lifecycle/session-selection.js +39 -0
  171. package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
  172. package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
  173. package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
  174. package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
  175. package/dist/foundation/process-containment/index.d.ts +8 -0
  176. package/dist/foundation/process-containment/index.js +6 -0
  177. package/dist/foundation/process-containment/linux-process-inspector.d.ts +7 -0
  178. package/dist/foundation/process-containment/linux-process-inspector.js +27 -0
  179. package/dist/foundation/process-containment/native-guardian-containment.d.ts +17 -0
  180. package/dist/foundation/process-containment/native-guardian-containment.js +140 -0
  181. package/dist/foundation/process-containment/windows-process-inspector.d.ts +19 -0
  182. package/dist/foundation/process-containment/windows-process-inspector.js +56 -0
  183. package/dist/foundation/protocol/client.d.ts +18 -0
  184. package/dist/foundation/protocol/client.js +130 -0
  185. package/dist/foundation/protocol/index.d.ts +3 -0
  186. package/dist/foundation/protocol/index.js +2 -0
  187. package/dist/foundation/protocol/messages.d.ts +90 -0
  188. package/dist/foundation/protocol/messages.js +100 -0
  189. package/dist/foundation/release/bootstrap.d.ts +51 -0
  190. package/dist/foundation/release/bootstrap.js +427 -0
  191. package/dist/foundation/release/cohort-state.d.ts +157 -0
  192. package/dist/foundation/release/cohort-state.js +472 -0
  193. package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
  194. package/dist/foundation/release/dependency-certification-retention.js +88 -0
  195. package/dist/foundation/release/dependency-certification.d.ts +24 -0
  196. package/dist/foundation/release/dependency-certification.js +266 -0
  197. package/dist/foundation/release/dependency-layer.d.ts +78 -0
  198. package/dist/foundation/release/dependency-layer.js +466 -0
  199. package/dist/foundation/release/endpoints.d.ts +24 -0
  200. package/dist/foundation/release/endpoints.js +134 -0
  201. package/dist/foundation/release/immutable-platform.d.ts +6 -0
  202. package/dist/foundation/release/immutable-platform.js +13 -0
  203. package/dist/foundation/release/index.d.ts +32 -0
  204. package/dist/foundation/release/index.js +17 -0
  205. package/dist/foundation/release/release-gc.d.ts +71 -0
  206. package/dist/foundation/release/release-gc.js +764 -0
  207. package/dist/foundation/release/release-store.d.ts +49 -0
  208. package/dist/foundation/release/release-store.js +235 -0
  209. package/dist/foundation/release/release.d.ts +43 -0
  210. package/dist/foundation/release/release.js +215 -0
  211. package/dist/foundation/release/restart-certification.d.ts +68 -0
  212. package/dist/foundation/release/restart-certification.js +227 -0
  213. package/dist/foundation/release/types.d.ts +11 -0
  214. package/dist/foundation/release/types.js +1 -0
  215. package/dist/foundation/release/update-activation.d.ts +72 -0
  216. package/dist/foundation/release/update-activation.js +204 -0
  217. package/dist/foundation/release/update-launch.d.ts +6 -0
  218. package/dist/foundation/release/update-launch.js +17 -0
  219. package/dist/foundation/release/update-recovery.d.ts +76 -0
  220. package/dist/foundation/release/update-recovery.js +356 -0
  221. package/dist/foundation/release/update-transaction.d.ts +42 -0
  222. package/dist/foundation/release/update-transaction.js +101 -0
  223. package/dist/foundation/release/update.d.ts +114 -0
  224. package/dist/foundation/release/update.js +633 -0
  225. package/dist/foundation/release/warmup.d.ts +3 -0
  226. package/dist/foundation/release/warmup.js +47 -0
  227. package/dist/foundation/startup/index.d.ts +4 -0
  228. package/dist/foundation/startup/index.js +2 -0
  229. package/dist/foundation/startup/startup-budget.d.ts +46 -0
  230. package/dist/foundation/startup/startup-budget.js +42 -0
  231. package/dist/foundation/startup/startup-descriptor.js +34 -0
  232. package/dist/foundation/startup/startup-runtime.d.ts +27 -0
  233. package/dist/foundation/startup/startup-runtime.js +128 -0
  234. package/dist/foundation/storage/control-store.d.ts +18 -0
  235. package/dist/foundation/storage/control-store.js +342 -0
  236. package/dist/foundation/storage/index.d.ts +1 -0
  237. package/dist/foundation/storage/index.js +1 -0
  238. package/dist/foundation/supervision/index.d.ts +3 -0
  239. package/dist/foundation/supervision/index.js +3 -0
  240. package/dist/foundation/supervision/main.d.ts +1 -0
  241. package/dist/foundation/supervision/main.js +84 -0
  242. package/dist/foundation/supervision/paths.d.ts +1 -0
  243. package/dist/foundation/supervision/paths.js +1 -0
  244. package/dist/foundation/supervision/server.d.ts +46 -0
  245. package/dist/foundation/supervision/server.js +573 -0
  246. package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
  247. package/dist/foundation/terminal-cleanup/fatal-exit.js +87 -0
  248. package/dist/foundation/terminal-cleanup/index.d.ts +3 -0
  249. package/dist/foundation/terminal-cleanup/index.js +2 -0
  250. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
  251. package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
  252. package/dist/integrations/pi/components/components.d.ts +4 -0
  253. package/dist/integrations/pi/components/components.js +64 -0
  254. package/dist/integrations/pi/components/conformance.d.ts +18 -0
  255. package/dist/integrations/pi/components/conformance.js +70 -0
  256. package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
  257. package/dist/integrations/pi/components/editor-interaction.js +1 -0
  258. package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
  259. package/dist/integrations/pi/components/history-editor-loader.js +5 -0
  260. package/dist/integrations/pi/components/index.d.ts +21 -0
  261. package/dist/integrations/pi/components/index.js +13 -0
  262. package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
  263. package/dist/integrations/pi/components/owned-editor-ux.js +1094 -0
  264. package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
  265. package/dist/integrations/pi/components/path-word-ranges.js +37 -0
  266. package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
  267. package/dist/integrations/pi/components/prompt-input-port.js +1 -0
  268. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +167 -0
  269. package/dist/integrations/pi/components/resources/builtin-themes.js +168 -0
  270. package/dist/integrations/pi/components/shell-components.d.ts +7 -0
  271. package/dist/integrations/pi/components/shell-components.js +7 -0
  272. package/dist/integrations/pi/components/shell-editor-autocomplete.js +298 -0
  273. package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
  274. package/dist/integrations/pi/components/shell-extension-ui.js +280 -0
  275. package/dist/integrations/pi/components/shell-footer-status.d.ts +7 -0
  276. package/dist/integrations/pi/components/shell-footer-status.js +248 -0
  277. package/dist/integrations/pi/components/shell-presenters-info.d.ts +43 -0
  278. package/dist/integrations/pi/components/shell-presenters-info.js +114 -0
  279. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
  280. package/dist/integrations/pi/components/shell-presenters-transcript.js +433 -0
  281. package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +123 -0
  282. package/dist/integrations/pi/components/shell-selectors-dialogs.js +242 -0
  283. package/dist/integrations/pi/components/shell-shared-facade.d.ts +217 -0
  284. package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
  285. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
  286. package/dist/integrations/pi/components/submitted-prompt-adapter.js +49 -0
  287. package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
  288. package/dist/integrations/pi/components/tool-image-presentation.js +83 -0
  289. package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
  290. package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
  291. package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
  292. package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
  293. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +445 -0
  294. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +370 -0
  295. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
  296. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +13 -0
  297. package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +29 -0
  298. package/dist/integrations/pi/components/upstream/components/daxnuts.js +146 -0
  299. package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +4 -0
  300. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +48 -0
  301. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +20 -0
  302. package/dist/integrations/pi/components/upstream/components/extension-editor.js +84 -0
  303. package/dist/integrations/pi/components/upstream/components/mermaid.js +81 -0
  304. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +46 -0
  305. package/dist/integrations/pi/components/upstream/components/owned-editor.js +187 -0
  306. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +59 -0
  307. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +346 -0
  308. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +11 -0
  309. package/dist/integrations/pi/components/upstream/components/session-footer.js +123 -0
  310. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +161 -0
  311. package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +95 -0
  312. package/dist/integrations/pi/components/upstream/components/session-selector.js +893 -0
  313. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +21 -0
  314. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +46 -0
  315. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +35 -0
  316. package/dist/integrations/pi/components/upstream/components/status-indicator.js +69 -0
  317. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +67 -0
  318. package/dist/integrations/pi/components/upstream/components/tool-execution.js +365 -0
  319. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +101 -0
  320. package/dist/integrations/pi/components/upstream/components/tree-selector.js +1275 -0
  321. package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
  322. package/dist/integrations/pi/components/upstream/components/trust-selector.js +81 -0
  323. package/dist/integrations/pi/components/upstream/external-editor.js +43 -0
  324. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +289 -0
  325. package/dist/integrations/pi/components/upstream/history/editor-core.js +2144 -0
  326. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +35 -0
  327. package/dist/integrations/pi/components/upstream/history/kill-ring.js +51 -0
  328. package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
  329. package/dist/integrations/pi/components/upstream/history/printable-key.js +43 -0
  330. package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +14 -0
  331. package/dist/integrations/pi/components/upstream/history/text-helpers.js +31 -0
  332. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +25 -0
  333. package/dist/integrations/pi/components/upstream/history/undo-stack.js +39 -0
  334. package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
  335. package/dist/integrations/pi/components/upstream/history/word-navigation.js +103 -0
  336. package/dist/integrations/pi/components/upstream/model-search.d.ts +18 -0
  337. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +33 -0
  338. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +114 -0
  339. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +61 -0
  340. package/dist/integrations/pi/components/upstream/theme/theme.js +337 -0
  341. package/dist/integrations/pi/engine/adapter.d.ts +135 -0
  342. package/dist/integrations/pi/engine/adapter.js +648 -0
  343. package/dist/integrations/pi/engine/changelog.d.ts +2 -0
  344. package/dist/integrations/pi/engine/changelog.js +63 -0
  345. package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
  346. package/dist/integrations/pi/engine/command-dispatch.js +125 -0
  347. package/dist/integrations/pi/engine/compaction-progress.d.ts +28 -0
  348. package/dist/integrations/pi/engine/compaction-progress.js +96 -0
  349. package/dist/integrations/pi/engine/conformance.d.ts +39 -0
  350. package/dist/integrations/pi/engine/conformance.js +140 -0
  351. package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
  352. package/dist/integrations/pi/engine/event-delivery.js +184 -0
  353. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
  354. package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
  355. package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
  356. package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
  357. package/dist/integrations/pi/engine/index.d.ts +18 -0
  358. package/dist/integrations/pi/engine/index.js +10 -0
  359. package/dist/integrations/pi/engine/message-values.d.ts +29 -0
  360. package/dist/integrations/pi/engine/message-values.js +168 -0
  361. package/dist/integrations/pi/engine/package-integration.d.ts +13 -0
  362. package/dist/integrations/pi/engine/package-integration.js +118 -0
  363. package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
  364. package/dist/integrations/pi/engine/pending-delivery.js +156 -0
  365. package/dist/integrations/pi/engine/pi-settings-metadata.json +385 -0
  366. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +22 -0
  367. package/dist/integrations/pi/engine/project-trust-preflight.js +50 -0
  368. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
  369. package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
  370. package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
  371. package/dist/integrations/pi/engine/provider-authentication.js +209 -0
  372. package/dist/integrations/pi/engine/resource-catalog.d.ts +49 -0
  373. package/dist/integrations/pi/engine/resource-catalog.js +289 -0
  374. package/dist/integrations/pi/engine/resources/changelog.json +12 -0
  375. package/dist/integrations/pi/engine/runtime-integration.d.ts +53 -0
  376. package/dist/integrations/pi/engine/runtime-integration.js +118 -0
  377. package/dist/integrations/pi/engine/session-events.d.ts +48 -0
  378. package/dist/integrations/pi/engine/session-events.js +223 -0
  379. package/dist/integrations/pi/engine/session-integration.d.ts +67 -0
  380. package/dist/integrations/pi/engine/session-integration.js +195 -0
  381. package/dist/integrations/pi/engine/session-runtime.d.ts +84 -0
  382. package/dist/integrations/pi/engine/session-runtime.js +249 -0
  383. package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
  384. package/dist/integrations/pi/engine/session-selection.js +90 -0
  385. package/dist/integrations/pi/engine/settings-bridge.d.ts +121 -0
  386. package/dist/integrations/pi/engine/settings-bridge.js +514 -0
  387. package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
  388. package/dist/integrations/pi/engine/settings-metadata.js +67 -0
  389. package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
  390. package/dist/integrations/pi/engine/settings-port.js +353 -0
  391. package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
  392. package/dist/integrations/pi/engine/tool-rendering.js +145 -0
  393. package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
  394. package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
  395. package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
  396. package/dist/integrations/pi/engine/transcript-projection.js +405 -0
  397. package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
  398. package/dist/integrations/pi/engine/usage-view.js +56 -0
  399. package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
  400. package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
  401. package/dist/integrations/pi/engine/workflow-contexts.d.ts +59 -0
  402. package/dist/integrations/pi/engine/workflow-contexts.js +316 -0
  403. package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
  404. package/dist/integrations/pi/engine/workflow-runner.js +509 -0
  405. package/dist/integrations/pi/engine/workflow-support.d.ts +33 -0
  406. package/dist/integrations/pi/engine/workflow-support.js +352 -0
  407. package/dist/integrations/pi/engine/workflows.d.ts +251 -0
  408. package/dist/integrations/pi/engine/workflows.js +63 -0
  409. package/dist/integrations/pi/startup-public.d.ts +2 -0
  410. package/dist/integrations/pi/startup-public.js +2223 -0
  411. package/dist/integrations/pi/startup-public.manifest.json +12502 -0
  412. package/dist/integrations/pi/tui-runtime/adapter.d.ts +56 -0
  413. package/dist/integrations/pi/tui-runtime/adapter.js +783 -0
  414. package/dist/integrations/pi/tui-runtime/contracts.d.ts +156 -0
  415. package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
  416. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +88 -0
  417. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +433 -0
  418. package/dist/integrations/pi/tui-runtime/index.d.ts +9 -0
  419. package/dist/integrations/pi/tui-runtime/index.js +5 -0
  420. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
  421. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
  422. package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +13 -0
  423. package/dist/integrations/pi/tui-runtime/mouse-report-input.js +57 -0
  424. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
  425. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +158 -0
  426. package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +4 -0
  427. package/dist/integrations/pi/tui-runtime/presentation-adapter.js +48 -0
  428. package/dist/native/darwin-arm64/manifest.json +4 -4
  429. package/dist/native/darwin-arm64/process-guardian +0 -0
  430. package/dist/native/linux-x64/manifest.json +3 -3
  431. package/dist/native/linux-x64/process-guardian +0 -0
  432. package/dist/native/win32-x64/manifest.json +3 -3
  433. package/dist/native/win32-x64/process-guardian.exe +0 -0
  434. package/dist/product-identity.d.ts +37 -0
  435. package/dist/product-identity.js +119 -0
  436. package/dist/product-identity.json +85 -0
  437. package/dist/runtime-payload-inventory.json +127148 -0
  438. package/dist/ui/apps/contracts.d.ts +64 -0
  439. package/dist/ui/apps/host.d.ts +42 -0
  440. package/dist/ui/apps/host.js +156 -0
  441. package/dist/ui/apps/index.d.ts +5 -0
  442. package/dist/ui/apps/index.js +3 -0
  443. package/dist/ui/apps/registry.d.ts +12 -0
  444. package/dist/ui/apps/registry.js +33 -0
  445. package/dist/ui/components/dialog-panel.js +49 -0
  446. package/dist/ui/components/frame.d.ts +22 -0
  447. package/dist/ui/components/frame.js +55 -0
  448. package/dist/ui/components/index.d.ts +47 -0
  449. package/dist/ui/components/index.js +25 -0
  450. package/dist/ui/components/line-input.d.ts +68 -0
  451. package/dist/ui/components/line-input.js +224 -0
  452. package/dist/ui/components/list-view.d.ts +60 -0
  453. package/dist/ui/components/list-view.js +82 -0
  454. package/dist/ui/components/mouse.d.ts +25 -0
  455. package/dist/ui/components/mouse.js +70 -0
  456. package/dist/ui/components/progress-status.d.ts +2 -0
  457. package/dist/ui/components/progress-status.js +4 -0
  458. package/dist/ui/components/prompt-input.d.ts +32 -0
  459. package/dist/ui/components/prompt-input.js +51 -0
  460. package/dist/ui/components/scrollbar.d.ts +88 -0
  461. package/dist/ui/components/scrollbar.js +137 -0
  462. package/dist/ui/components/selection-copy.d.ts +24 -0
  463. package/dist/ui/components/selection-copy.js +39 -0
  464. package/dist/ui/components/shortcuts.d.ts +58 -0
  465. package/dist/ui/components/shortcuts.js +82 -0
  466. package/dist/ui/components/spans.d.ts +28 -0
  467. package/dist/ui/components/spans.js +266 -0
  468. package/dist/ui/components/submitted-prompt.d.ts +23 -0
  469. package/dist/ui/components/submitted-prompt.js +50 -0
  470. package/dist/ui/components/surface.d.ts +20 -0
  471. package/dist/ui/components/surface.js +44 -0
  472. package/dist/ui/components/text-selection.d.ts +62 -0
  473. package/dist/ui/components/text-selection.js +210 -0
  474. package/dist/ui/components/text.d.ts +38 -0
  475. package/dist/ui/components/text.js +185 -0
  476. package/dist/ui/components/transcript-viewport.d.ts +173 -0
  477. package/dist/ui/components/transcript-viewport.js +753 -0
  478. package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
  479. package/dist/ui/components/visible-hyperlinks.js +97 -0
  480. package/dist/ui/settings/declarations.d.ts +141 -0
  481. package/dist/ui/settings/declarations.js +135 -0
  482. package/dist/ui/settings/index.d.ts +10 -0
  483. package/dist/ui/settings/index.js +5 -0
  484. package/dist/ui/settings/manager.d.ts +54 -0
  485. package/dist/ui/settings/manager.js +256 -0
  486. package/dist/ui/settings/migrations.d.ts +13 -0
  487. package/dist/ui/settings/migrations.js +74 -0
  488. package/dist/ui/settings/sections.d.ts +52 -0
  489. package/dist/ui/settings/sections.js +112 -0
  490. package/docs/architecture/boundaries.md +17 -13
  491. package/docs/architecture/code-documentation.md +77 -0
  492. package/docs/architecture/history-editor-provenance.md +100 -0
  493. package/docs/architecture/internal-naming.md +93 -0
  494. package/docs/architecture/process-guardian-provenance.md +3 -1
  495. package/docs/architecture/project-structure.md +69 -30
  496. package/docs/architecture/prompt-suggestions.md +68 -0
  497. package/docs/architecture/resource-and-data-policy.md +28 -2
  498. package/docs/architecture/response-copy-delivery.md +85 -0
  499. package/docs/architecture/terminal-host-proof-gate.md +1 -1
  500. package/docs/architecture/terminal-host-spike-evidence.md +1 -1
  501. package/docs/architecture/tool-image-presentation.md +62 -0
  502. package/docs/architecture/toolchain.md +32 -10
  503. package/docs/architecture/ui-reference-provenance.md +60 -6
  504. package/docs/ci-release-runbook.md +256 -79
  505. package/docs/features/launch-profiles.md +24 -17
  506. package/docs/features/modal-content-interaction.md +37 -0
  507. package/docs/features/prompt-history.md +149 -0
  508. package/docs/local-worktree-cleanup.md +212 -0
  509. package/docs/manual-code-streaming-cleanup.md +88 -0
  510. package/docs/manual-ghost-link-baseline.md +89 -0
  511. package/docs/manual-launch-instance-acceptance.md +12 -35
  512. package/docs/manual-owned-ui-checkpoint.md +79 -0
  513. package/docs/manual-pi-boundary-candidate.md +4 -5
  514. package/docs/manual-terminal-colour-check.md +4 -3
  515. package/docs/openspec-archive-automation.md +259 -0
  516. package/docs/repository-governance-live-acceptance.md +77 -0
  517. package/docs/validation.md +100 -0
  518. package/package.json +52 -34
  519. package/dist/src/cli/capabilities.d.ts +0 -15
  520. package/dist/src/cli/capabilities.js +0 -7
  521. package/dist/src/cli/dispatch.d.ts +0 -32
  522. package/dist/src/cli/dispatch.js +0 -142
  523. package/dist/src/cli/index.d.ts +0 -5
  524. package/dist/src/cli/index.js +0 -5
  525. package/dist/src/cli/packages.d.ts +0 -23
  526. package/dist/src/cli/packages.js +0 -84
  527. package/dist/src/cli/version-stats.d.ts +0 -16
  528. package/dist/src/cli/version-stats.js +0 -72
  529. package/dist/src/cli/version.d.ts +0 -2
  530. package/dist/src/cli/version.js +0 -23
  531. package/dist/src/composition/index.d.ts +0 -48
  532. package/dist/src/composition/index.js +0 -258
  533. package/dist/src/features/launch/development-launch.js +0 -28
  534. package/dist/src/features/launch/index.d.ts +0 -7
  535. package/dist/src/features/launch/index.js +0 -7
  536. package/dist/src/features/launch/intent.d.ts +0 -7
  537. package/dist/src/features/launch/intent.js +0 -4
  538. package/dist/src/features/launch/prepare-launch.d.ts +0 -13
  539. package/dist/src/features/launch/prepare-launch.js +0 -21
  540. package/dist/src/features/launch/profile-paths.d.ts +0 -15
  541. package/dist/src/features/launch/profile-paths.js +0 -31
  542. package/dist/src/features/launch/profiles.d.ts +0 -12
  543. package/dist/src/features/launch/profiles.js +0 -26
  544. package/dist/src/features/launch/runtime-selection.d.ts +0 -19
  545. package/dist/src/features/launch/runtime-selection.js +0 -13
  546. package/dist/src/features/owned-ui/customization.d.ts +0 -38
  547. package/dist/src/features/owned-ui/customization.js +0 -108
  548. package/dist/src/features/owned-ui/diagnostics.d.ts +0 -33
  549. package/dist/src/features/owned-ui/diagnostics.js +0 -94
  550. package/dist/src/features/owned-ui/index.d.ts +0 -4
  551. package/dist/src/features/owned-ui/index.js +0 -4
  552. package/dist/src/features/owned-ui/run.d.ts +0 -11
  553. package/dist/src/features/owned-ui/run.js +0 -15
  554. package/dist/src/features/owned-ui/settings-app.d.ts +0 -22
  555. package/dist/src/features/owned-ui/settings-app.js +0 -633
  556. package/dist/src/features/workspace/capabilities.d.ts +0 -31
  557. package/dist/src/features/workspace/capabilities.js +0 -75
  558. package/dist/src/features/workspace/index.d.ts +0 -6
  559. package/dist/src/features/workspace/index.js +0 -6
  560. package/dist/src/features/workspace/presentation.d.ts +0 -30
  561. package/dist/src/features/workspace/presentation.js +0 -70
  562. package/dist/src/features/workspace/reconciliation.d.ts +0 -15
  563. package/dist/src/features/workspace/reconciliation.js +0 -82
  564. package/dist/src/features/workspace/reducer.d.ts +0 -42
  565. package/dist/src/features/workspace/reducer.js +0 -213
  566. package/dist/src/features/workspace/router.d.ts +0 -31
  567. package/dist/src/features/workspace/router.js +0 -124
  568. package/dist/src/features/workspace/store.d.ts +0 -17
  569. package/dist/src/features/workspace/store.js +0 -54
  570. package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +0 -95
  571. package/dist/src/foundation/agent-engine-contracts/domain-validation.js +0 -89
  572. package/dist/src/foundation/agent-engine-contracts/domain.d.ts +0 -116
  573. package/dist/src/foundation/agent-engine-contracts/index.d.ts +0 -8
  574. package/dist/src/foundation/agent-engine-contracts/index.js +0 -8
  575. package/dist/src/foundation/agent-engine-contracts/package-ports.d.ts +0 -54
  576. package/dist/src/foundation/launch-guardian/index.d.ts +0 -1
  577. package/dist/src/foundation/launch-guardian/index.js +0 -1
  578. package/dist/src/foundation/launch-guardian/main.d.ts +0 -31
  579. package/dist/src/foundation/launch-guardian/main.js +0 -165
  580. package/dist/src/foundation/lifecycle/index.d.ts +0 -4
  581. package/dist/src/foundation/lifecycle/index.js +0 -4
  582. package/dist/src/foundation/lifecycle/model.d.ts +0 -64
  583. package/dist/src/foundation/lifecycle/model.js +0 -40
  584. package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
  585. package/dist/src/foundation/lifecycle/paths.js +0 -42
  586. package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -11
  587. package/dist/src/foundation/native-host-protocol/codec.js +0 -56
  588. package/dist/src/foundation/native-host-protocol/evidence.d.ts +0 -67
  589. package/dist/src/foundation/native-host-protocol/evidence.js +0 -141
  590. package/dist/src/foundation/native-host-protocol/index.d.ts +0 -4
  591. package/dist/src/foundation/native-host-protocol/index.js +0 -4
  592. package/dist/src/foundation/native-host-protocol/messages.d.ts +0 -56
  593. package/dist/src/foundation/native-host-protocol/messages.js +0 -149
  594. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -13
  595. package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -33
  596. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -302
  597. package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
  598. package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
  599. package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -241
  600. package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -11
  601. package/dist/src/foundation/owned-ui-contracts/validation.js +0 -395
  602. package/dist/src/foundation/owned-ui-settings/declarations.d.ts +0 -13
  603. package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
  604. package/dist/src/foundation/owned-ui-settings/index.d.ts +0 -6
  605. package/dist/src/foundation/owned-ui-settings/index.js +0 -6
  606. package/dist/src/foundation/owned-ui-settings/migrations.d.ts +0 -13
  607. package/dist/src/foundation/owned-ui-settings/migrations.js +0 -28
  608. package/dist/src/foundation/owned-ui-settings/sections.d.ts +0 -70
  609. package/dist/src/foundation/owned-ui-settings/sections.js +0 -93
  610. package/dist/src/foundation/owned-ui-settings/session.d.ts +0 -44
  611. package/dist/src/foundation/owned-ui-settings/session.js +0 -145
  612. package/dist/src/foundation/owned-ui-settings/store.d.ts +0 -28
  613. package/dist/src/foundation/owned-ui-settings/store.js +0 -90
  614. package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -4
  615. package/dist/src/foundation/pi-component-adapter/components.js +0 -64
  616. package/dist/src/foundation/pi-component-adapter/conformance.d.ts +0 -17
  617. package/dist/src/foundation/pi-component-adapter/conformance.js +0 -69
  618. package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -13
  619. package/dist/src/foundation/pi-component-adapter/index.js +0 -13
  620. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +0 -165
  621. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +0 -166
  622. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -6
  623. package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -6
  624. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
  625. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -35
  626. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -279
  627. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -7
  628. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +0 -189
  629. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
  630. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -429
  631. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -113
  632. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -235
  633. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
  634. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -87
  635. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -422
  636. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -296
  637. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -10
  638. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -17
  639. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -51
  640. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -22
  641. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -142
  642. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -4
  643. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
  644. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -17
  645. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -81
  646. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -24
  647. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -105
  648. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -2
  649. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -18
  650. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -77
  651. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
  652. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
  653. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -55
  654. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -342
  655. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +0 -10
  656. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +0 -120
  657. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -159
  658. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -95
  659. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -889
  660. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +0 -19
  661. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +0 -44
  662. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -30
  663. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -59
  664. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -98
  665. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1272
  666. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -33
  667. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -76
  668. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -39
  669. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -15
  670. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -25
  671. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +0 -117
  672. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -61
  673. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +0 -326
  674. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +0 -164
  675. package/dist/src/foundation/pi-engine-adapter/adapter.js +0 -2367
  676. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +0 -37
  677. package/dist/src/foundation/pi-engine-adapter/conformance.js +0 -130
  678. package/dist/src/foundation/pi-engine-adapter/index.d.ts +0 -10
  679. package/dist/src/foundation/pi-engine-adapter/index.js +0 -10
  680. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +0 -30
  681. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +0 -61
  682. package/dist/src/foundation/pi-engine-adapter/package-integration.d.ts +0 -13
  683. package/dist/src/foundation/pi-engine-adapter/package-integration.js +0 -112
  684. package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +0 -374
  685. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +0 -31
  686. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +0 -80
  687. package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +0 -35
  688. package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +0 -67
  689. package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +0 -43
  690. package/dist/src/foundation/pi-engine-adapter/session-integration.js +0 -97
  691. package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
  692. package/dist/src/foundation/pi-engine-adapter/settings-integration.js +0 -233
  693. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +0 -20
  694. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +0 -48
  695. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -173
  696. package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -60
  697. package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
  698. package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
  699. package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
  700. package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
  701. package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
  702. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -39
  703. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -493
  704. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +0 -18
  705. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +0 -145
  706. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -120
  707. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
  708. package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
  709. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +0 -4
  710. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +0 -48
  711. package/dist/src/foundation/presentation-contracts/index.d.ts +0 -96
  712. package/dist/src/foundation/process-containment/index.d.ts +0 -5
  713. package/dist/src/foundation/process-containment/index.js +0 -5
  714. package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +0 -6
  715. package/dist/src/foundation/process-containment/linux-process-inspector.js +0 -26
  716. package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +0 -16
  717. package/dist/src/foundation/process-containment/native-guardian-containment.js +0 -139
  718. package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +0 -17
  719. package/dist/src/foundation/process-containment/windows-process-inspector.js +0 -53
  720. package/dist/src/foundation/protocol/client.d.ts +0 -17
  721. package/dist/src/foundation/protocol/client.js +0 -129
  722. package/dist/src/foundation/protocol/index.d.ts +0 -2
  723. package/dist/src/foundation/protocol/index.js +0 -2
  724. package/dist/src/foundation/protocol/messages.d.ts +0 -89
  725. package/dist/src/foundation/protocol/messages.js +0 -99
  726. package/dist/src/foundation/release/bootstrap.d.ts +0 -29
  727. package/dist/src/foundation/release/bootstrap.js +0 -335
  728. package/dist/src/foundation/release/cohort-state.d.ts +0 -70
  729. package/dist/src/foundation/release/cohort-state.js +0 -202
  730. package/dist/src/foundation/release/index.d.ts +0 -10
  731. package/dist/src/foundation/release/index.js +0 -10
  732. package/dist/src/foundation/release/release-gc.d.ts +0 -5
  733. package/dist/src/foundation/release/release-gc.js +0 -16
  734. package/dist/src/foundation/release/release-store.d.ts +0 -43
  735. package/dist/src/foundation/release/release-store.js +0 -175
  736. package/dist/src/foundation/release/release.d.ts +0 -38
  737. package/dist/src/foundation/release/release.js +0 -204
  738. package/dist/src/foundation/release/update-transaction.d.ts +0 -31
  739. package/dist/src/foundation/release/update-transaction.js +0 -89
  740. package/dist/src/foundation/release/update.d.ts +0 -82
  741. package/dist/src/foundation/release/update.js +0 -527
  742. package/dist/src/foundation/storage/control-store.d.ts +0 -61
  743. package/dist/src/foundation/storage/control-store.js +0 -530
  744. package/dist/src/foundation/storage/index.d.ts +0 -1
  745. package/dist/src/foundation/storage/index.js +0 -1
  746. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -46
  747. package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -118
  748. package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -52
  749. package/dist/src/foundation/structured-agent-runtime/commands.js +0 -164
  750. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +0 -41
  751. package/dist/src/foundation/structured-agent-runtime/handshake.js +0 -151
  752. package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -5
  753. package/dist/src/foundation/structured-agent-runtime/index.js +0 -5
  754. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -37
  755. package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -129
  756. package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -56
  757. package/dist/src/foundation/structured-agent-runtime/state.js +0 -118
  758. package/dist/src/foundation/supervision/index.d.ts +0 -3
  759. package/dist/src/foundation/supervision/index.js +0 -3
  760. package/dist/src/foundation/supervision/main.d.ts +0 -1
  761. package/dist/src/foundation/supervision/main.js +0 -41
  762. package/dist/src/foundation/supervision/paths.d.ts +0 -1
  763. package/dist/src/foundation/supervision/paths.js +0 -1
  764. package/dist/src/foundation/supervision/server.d.ts +0 -22
  765. package/dist/src/foundation/supervision/server.js +0 -451
  766. package/dist/src/foundation/ui-apps/contracts.d.ts +0 -42
  767. package/dist/src/foundation/ui-apps/host.d.ts +0 -42
  768. package/dist/src/foundation/ui-apps/host.js +0 -152
  769. package/dist/src/foundation/ui-apps/index.d.ts +0 -3
  770. package/dist/src/foundation/ui-apps/index.js +0 -3
  771. package/dist/src/foundation/ui-apps/registry.d.ts +0 -11
  772. package/dist/src/foundation/ui-apps/registry.js +0 -32
  773. package/dist/src/foundation/ui-components/dialog-panel.js +0 -47
  774. package/dist/src/foundation/ui-components/frame.d.ts +0 -21
  775. package/dist/src/foundation/ui-components/frame.js +0 -54
  776. package/dist/src/foundation/ui-components/index.d.ts +0 -18
  777. package/dist/src/foundation/ui-components/index.js +0 -18
  778. package/dist/src/foundation/ui-components/line-input.d.ts +0 -74
  779. package/dist/src/foundation/ui-components/line-input.js +0 -245
  780. package/dist/src/foundation/ui-components/list-view.d.ts +0 -66
  781. package/dist/src/foundation/ui-components/list-view.js +0 -76
  782. package/dist/src/foundation/ui-components/mouse.d.ts +0 -15
  783. package/dist/src/foundation/ui-components/mouse.js +0 -46
  784. package/dist/src/foundation/ui-components/scrollbar.d.ts +0 -62
  785. package/dist/src/foundation/ui-components/scrollbar.js +0 -102
  786. package/dist/src/foundation/ui-components/shortcuts.d.ts +0 -57
  787. package/dist/src/foundation/ui-components/shortcuts.js +0 -81
  788. package/dist/src/foundation/ui-components/spans.d.ts +0 -7
  789. package/dist/src/foundation/ui-components/spans.js +0 -59
  790. package/dist/src/foundation/ui-components/surface.d.ts +0 -20
  791. package/dist/src/foundation/ui-components/surface.js +0 -38
  792. package/dist/src/foundation/ui-components/text.d.ts +0 -24
  793. package/dist/src/foundation/ui-components/text.js +0 -123
  794. package/dist/src/foundation/workspace-contracts/index.d.ts +0 -2
  795. package/dist/src/foundation/workspace-contracts/index.js +0 -2
  796. package/dist/src/foundation/workspace-contracts/model.d.ts +0 -248
  797. package/dist/src/foundation/workspace-contracts/model.js +0 -2
  798. package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -13
  799. package/dist/src/foundation/workspace-contracts/validation.js +0 -335
  800. package/dist/src/product-identity.d.ts +0 -37
  801. package/dist/src/product-identity.js +0 -150
  802. package/dist/src/product-identity.json +0 -99
  803. package/docs/manual-transparent-checkpoint.md +0 -53
  804. /package/dist/{src/foundation/agent-engine-contracts/domain.js → app/session-shell/paste-helper.d.ts} +0 -0
  805. /package/dist/{src/foundation/agent-engine-contracts/ports.js → app/session-shell/paste-text-worker.d.ts} +0 -0
  806. /package/dist/{src/foundation/lifecycle/commands.js → app/session-shell/paste-types.js} +0 -0
  807. /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
  808. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
  809. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
  810. /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → contracts/agent-engine/domain.js} +0 -0
  811. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
  812. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
  813. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
  814. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
  815. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
  816. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
  817. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
  818. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
  819. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
  820. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
  821. /package/dist/{src/foundation/presentation-contracts → contracts/presentation}/index.js +0 -0
  822. /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
  823. /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
  824. /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
  825. /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
  826. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
  827. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
  828. /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
  829. /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
  830. /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
  831. /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
  832. /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
  833. /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
  834. /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
  835. /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
  836. /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
  837. /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
  838. /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
  839. /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
  840. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-editor-autocomplete.d.ts +0 -0
  841. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.d.ts +0 -0
  842. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.js +0 -0
  843. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
  844. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
  845. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
  846. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
  847. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
  848. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
  849. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
  850. /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
  851. /package/dist/{src/foundation/ui-components → ui/components}/dialog-panel.d.ts +0 -0
  852. /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
  853. /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
  854. /package/dist/{src/foundation/ui-components → ui/components}/list-block.d.ts +0 -0
  855. /package/dist/{src/foundation/ui-components → ui/components}/list-block.js +0 -0
  856. /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
  857. /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
  858. /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
  859. /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
  860. /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
  861. /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
  862. /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
  863. /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
  864. /package/dist/{src/foundation/ui-components → ui/components}/theme.d.ts +0 -0
  865. /package/dist/{src/foundation/ui-components → ui/components}/theme.js +0 -0
  866. /package/dist/{src/foundation/ui-components → ui/components}/value-menu.d.ts +0 -0
  867. /package/dist/{src/foundation/ui-components → ui/components}/value-menu.js +0 -0
  868. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
  869. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
@@ -0,0 +1,523 @@
1
+ import { OWNED_UI_CONTRACT_VERSION, } from "./model.js";
2
+ import { assertPromptImages } from "./image-attachments.js";
3
+ const MAX_ID_LENGTH = 128;
4
+ const MAX_LABEL_LENGTH = 256;
5
+ const MAX_MESSAGE_LENGTH = 4_096;
6
+ const MAX_TEXT_BYTES = 256 * 1024;
7
+ const MAX_PAYLOAD_BYTES = 64 * 1024;
8
+ const MAX_SESSION_VIEW_BYTES = 1024 * 1024;
9
+ const MAX_BLOCKS = 10_000;
10
+ const MAX_CUSTOMIZATIONS = 1_000;
11
+ const MAX_DIAGNOSTICS = 1_000;
12
+ const MAX_QUEUE = 32;
13
+ const MAX_BADGES = 32;
14
+ const MAX_STATUS_DIAGNOSTICS = 32;
15
+ const MAX_ACTIVE_COMMANDS = 64;
16
+ const IMAGE_REFERENCE_SOURCES = new Set(["user", "tool-result"]);
17
+ const TOOL_EXECUTIONS = new Set(["pending", "running", "succeeded", "failed", "aborted"]);
18
+ const BLOCK_KINDS = new Set([
19
+ "user",
20
+ "assistant",
21
+ "thinking",
22
+ "tool-call",
23
+ "tool-result",
24
+ "retry",
25
+ "compaction",
26
+ "error",
27
+ "system",
28
+ "custom",
29
+ "bash",
30
+ ]);
31
+ const LIFECYCLES = new Set(["starting", "ready", "busy", "suspended", "stopping", "stopped", "failed"]);
32
+ const BLOCK_STATUSES = new Set(["live", "finalized"]);
33
+ const SEVERITIES = new Set(["info", "warning", "error"]);
34
+ const THINKING_LEVELS = new Set(["off", "minimal", "low", "medium", "high", "xhigh"]);
35
+ const SLOT_IDS = new Set([
36
+ "theme",
37
+ "transcript-block",
38
+ "tool-card",
39
+ "editor",
40
+ "status",
41
+ "command",
42
+ "selector",
43
+ "dialog",
44
+ "overlay",
45
+ "layout",
46
+ ]);
47
+ const OUTCOMES = new Set(["accepted", "rejected", "completed", "failed", "timed-out", "cancelled"]);
48
+ const FOCUSED_REGIONS = new Set(["transcript", "editor", "dialog", "overlay", "status"]);
49
+ const DIALOG_KINDS = new Set(["choice", "editor", "settings", "confirmation"]);
50
+ const OVERLAY_PLACEMENTS = new Set(["bottom", "center"]);
51
+ export function assertOwnedUiCommand(command) {
52
+ assertId(command.correlationId, "owned-UI correlation id");
53
+ assertId(command.sessionId, "owned-UI session id");
54
+ switch (command.type) {
55
+ case "prompt":
56
+ case "steer":
57
+ case "follow-up":
58
+ assertBoundedText(command.text, "owned-UI prompt text", MAX_TEXT_BYTES);
59
+ if (command.images !== undefined) {
60
+ assertPromptImages(command.images);
61
+ }
62
+ return;
63
+ case "abort":
64
+ case "retry":
65
+ case "compact":
66
+ case "shutdown":
67
+ case "new-session":
68
+ return;
69
+ case "resume-session":
70
+ assertBoundedText(command.sessionPath, "owned-UI resume session path", MAX_TEXT_BYTES);
71
+ return;
72
+ case "set-model":
73
+ assertId(command.model.providerId, "owned-UI provider id");
74
+ assertId(command.model.modelId, "owned-UI model id");
75
+ assertBoundedText(command.model.displayName, "owned-UI model display name", MAX_LABEL_LENGTH);
76
+ return;
77
+ case "set-thinking-level":
78
+ assertEnum(command.thinkingLevel, THINKING_LEVELS, "owned-UI thinking level");
79
+ return;
80
+ case "set-setting":
81
+ assertId(command.key, "owned-UI setting key");
82
+ assertJsonValue(command.value, "owned-UI setting value", MAX_PAYLOAD_BYTES);
83
+ return;
84
+ case "apply-customization":
85
+ assertOwnedUiCustomization(command.customization);
86
+ return;
87
+ case "remove-customization":
88
+ assertId(command.customizationId, "owned-UI customization id");
89
+ return;
90
+ case "resize-surface":
91
+ assertOwnedUiTerminalSurface(command.surface);
92
+ return;
93
+ default:
94
+ throw new TypeError("owned-UI command type is unknown");
95
+ }
96
+ }
97
+ export function assertOwnedUiEvent(event) {
98
+ assertId(event.sessionId, "owned-UI event session id");
99
+ assertNonNegativeInteger(event.sequence, "owned-UI event sequence");
100
+ switch (event.type) {
101
+ case "session-lifecycle":
102
+ assertEnum(event.lifecycle, LIFECYCLES, "owned-UI lifecycle");
103
+ assertOptionalText(event.reason, "owned-UI lifecycle reason", MAX_MESSAGE_LENGTH);
104
+ return;
105
+ case "session-view":
106
+ assertOwnedUiSessionViewModel(event.view);
107
+ assertViewSession(event.view, event.sessionId);
108
+ return;
109
+ case "transcript-block":
110
+ assertOwnedUiTranscriptBlock(event.block);
111
+ return;
112
+ case "assistant-message-completed":
113
+ assertNonNegativeInteger(event.sessionGeneration, "owned-UI assistant response session generation");
114
+ assertNonNegativeInteger(event.runSequence, "owned-UI assistant response run sequence");
115
+ assertNonNegativeInteger(event.responseSequence, "owned-UI assistant response sequence");
116
+ assertNonNegativeInteger(event.assistantMessageCount, "owned-UI assistant response count");
117
+ if (event.model !== null)
118
+ assertOwnedUiModelInfo(event.model);
119
+ if (typeof event.successful !== "boolean")
120
+ throw new TypeError("owned-UI assistant response success state is invalid");
121
+ assertOptionalText(event.stopReason, "owned-UI assistant response stop reason", MAX_LABEL_LENGTH);
122
+ if (typeof event.toolContinuation !== "boolean")
123
+ throw new TypeError("owned-UI assistant response tool-continuation state is invalid");
124
+ return;
125
+ case "agent-run-started":
126
+ return;
127
+ case "agent-run-settled":
128
+ assertNonNegativeInteger(event.sessionGeneration, "owned-UI settlement session generation");
129
+ assertNonNegativeInteger(event.runSequence, "owned-UI settlement run sequence");
130
+ assertNonNegativeInteger(event.responseSequence, "owned-UI settlement response sequence");
131
+ assertNonNegativeInteger(event.assistantMessageCount, "owned-UI settlement assistant message count");
132
+ if (event.model !== null)
133
+ assertOwnedUiModelInfo(event.model);
134
+ if (typeof event.successful !== "boolean")
135
+ throw new TypeError("owned-UI settlement success state is invalid");
136
+ return;
137
+ case "editor-state":
138
+ assertOwnedUiEditorState(event.editor);
139
+ return;
140
+ case "status":
141
+ assertOwnedUiStatusView(event.status);
142
+ return;
143
+ case "dialog":
144
+ if (event.dialog !== null)
145
+ assertOwnedUiDialog(event.dialog);
146
+ return;
147
+ case "overlay":
148
+ if (event.overlay !== null)
149
+ assertOwnedUiOverlay(event.overlay);
150
+ return;
151
+ case "command-outcome":
152
+ assertId(event.correlationId, "owned-UI outcome correlation id");
153
+ assertEnum(event.outcome, OUTCOMES, "owned-UI command outcome");
154
+ assertOptionalText(event.diagnostic, "owned-UI command diagnostic", MAX_MESSAGE_LENGTH);
155
+ return;
156
+ case "customization":
157
+ assertCollection(event.customizations, "owned-UI customizations", MAX_CUSTOMIZATIONS);
158
+ assertUniqueCustomizations(event.customizations);
159
+ for (const customization of event.customizations)
160
+ assertOwnedUiCustomization(customization);
161
+ return;
162
+ case "terminal-surface":
163
+ assertOwnedUiTerminalSurface(event.surface);
164
+ return;
165
+ case "diagnostic":
166
+ assertOwnedUiDiagnostics(event.diagnostic);
167
+ return;
168
+ default:
169
+ throw new TypeError("owned-UI event type is unknown");
170
+ }
171
+ }
172
+ export function assertOwnedUiPromptSuggestionIdentity(identity) {
173
+ assertId(identity.sessionId, "prompt-suggestion session id");
174
+ assertNonNegativeInteger(identity.sessionGeneration, "prompt-suggestion session generation");
175
+ assertNonNegativeInteger(identity.runSequence, "prompt-suggestion run sequence");
176
+ assertNonNegativeInteger(identity.responseSequence, "prompt-suggestion response sequence");
177
+ assertOwnedUiModelInfo(identity.model);
178
+ }
179
+ export function assertOwnedUiPromptSuggestionRequest(request) {
180
+ assertOwnedUiPromptSuggestionIdentity(request.identity);
181
+ if (typeof request.signal !== "object" || request.signal === null
182
+ || typeof request.signal.aborted !== "boolean"
183
+ || typeof request.signal.addEventListener !== "function") {
184
+ throw new TypeError("prompt-suggestion abort signal is invalid");
185
+ }
186
+ }
187
+ export function assertOwnedUiPromptSuggestionResult(result) {
188
+ assertOwnedUiPromptSuggestionIdentity(result.identity);
189
+ if (result.outcome === "candidate") {
190
+ assertPromptSuggestionText(result.text, false);
191
+ if (!result.text.trim())
192
+ throw new TypeError("prompt-suggestion candidate is empty");
193
+ }
194
+ else if (!["empty", "rejected", "provider-failure", "unavailable", "cancelled"].includes(result.outcome) || result.text !== null) {
195
+ throw new TypeError("prompt-suggestion outcome is invalid");
196
+ }
197
+ }
198
+ export function assertOwnedUiPromptSuggestionState(state) {
199
+ if (state.status === "idle")
200
+ return;
201
+ if (state.status !== "generating" && state.status !== "prepared" && state.status !== "available") {
202
+ throw new TypeError("prompt-suggestion state is invalid");
203
+ }
204
+ assertOwnedUiPromptSuggestionIdentity(state.identity);
205
+ if (state.status === "generating" && typeof state.settled !== "boolean") {
206
+ throw new TypeError("prompt-suggestion settlement state is invalid");
207
+ }
208
+ if (state.status === "prepared" || state.status === "available")
209
+ assertPromptSuggestionText(state.text, false);
210
+ }
211
+ export function assertOwnedUiSessionViewModel(view) {
212
+ if (view.contractVersion !== OWNED_UI_CONTRACT_VERSION) {
213
+ throw new TypeError("unsupported owned-UI contract version");
214
+ }
215
+ assertId(view.sessionId, "owned-UI view session id");
216
+ assertNonNegativeInteger(view.revision, "owned-UI view revision");
217
+ assertEnum(view.lifecycle, LIFECYCLES, "owned-UI lifecycle");
218
+ assertOwnedUiEditorState(view.editor);
219
+ assertOwnedUiStatusView(view.status);
220
+ assertOwnedUiTerminalSurface(view.terminal);
221
+ if (view.activeModel !== null) {
222
+ assertOwnedUiModelInfo(view.activeModel);
223
+ }
224
+ assertEnum(view.thinkingLevel, THINKING_LEVELS, "owned-UI thinking level");
225
+ assertCollection(view.activeCommandIds, "owned-UI active commands", MAX_ACTIVE_COMMANDS);
226
+ for (const commandId of view.activeCommandIds)
227
+ assertId(commandId, "owned-UI active command id");
228
+ if (view.dialog !== null)
229
+ assertOwnedUiDialog(view.dialog);
230
+ if (view.overlay !== null)
231
+ assertOwnedUiOverlay(view.overlay);
232
+ if (view.dialog !== null && view.terminal.focusedRegion !== "dialog") {
233
+ throw new TypeError("an active owned-UI dialog must own dialog focus");
234
+ }
235
+ if (view.dialog === null && view.overlay !== null && view.terminal.focusedRegion !== "overlay") {
236
+ throw new TypeError("an active owned-UI overlay must own overlay focus");
237
+ }
238
+ assertCollection(view.transcript, "owned-UI transcript blocks", MAX_BLOCKS);
239
+ const blockIds = new Set();
240
+ for (const block of view.transcript) {
241
+ assertOwnedUiTranscriptBlock(block);
242
+ if (blockIds.has(block.id))
243
+ throw new TypeError(`duplicate owned-UI transcript block id: ${block.id}`);
244
+ blockIds.add(block.id);
245
+ }
246
+ assertCollection(view.customizations, "owned-UI customizations", MAX_CUSTOMIZATIONS);
247
+ assertUniqueCustomizations(view.customizations);
248
+ for (const customization of view.customizations)
249
+ assertOwnedUiCustomization(customization);
250
+ assertCollection(view.diagnostics, "owned-UI diagnostics", MAX_DIAGNOSTICS);
251
+ for (const diagnostic of view.diagnostics)
252
+ assertOwnedUiDiagnostics(diagnostic);
253
+ assertJsonBytes(view, "owned-UI session view", MAX_SESSION_VIEW_BYTES);
254
+ }
255
+ export function assertOwnedUiSnapshot(snapshot) {
256
+ if (snapshot.contractVersion !== OWNED_UI_CONTRACT_VERSION) {
257
+ throw new TypeError("unsupported owned-UI snapshot contract version");
258
+ }
259
+ assertId(snapshot.snapshotId, "owned-UI snapshot id");
260
+ assertId(snapshot.sessionId, "owned-UI snapshot session id");
261
+ assertNonNegativeInteger(snapshot.sequence, "owned-UI snapshot sequence");
262
+ assertOwnedUiSessionViewModel(snapshot.view);
263
+ assertViewSession(snapshot.view, snapshot.sessionId);
264
+ assertJsonBytes(snapshot, "owned-UI snapshot", MAX_SESSION_VIEW_BYTES);
265
+ }
266
+ export function assertOwnedUiCustomization(customization) {
267
+ assertId(customization.id, "owned-UI customization id");
268
+ assertEnum(customization.slot, SLOT_IDS, "owned-UI customization slot");
269
+ assertIntegerInRange(customization.version, 1, Number.MAX_SAFE_INTEGER, "owned-UI customization version");
270
+ assertIntegerInRange(customization.precedence, 0, 10_000, "owned-UI customization precedence");
271
+ assertBoundedText(customization.label, "owned-UI customization label", MAX_LABEL_LENGTH);
272
+ assertJsonObject(customization.payload, "owned-UI customization payload", MAX_PAYLOAD_BYTES);
273
+ }
274
+ export function assertOwnedUiTranscriptBlock(block) {
275
+ assertId(block.id, "owned-UI transcript block id");
276
+ assertEnum(block.kind, BLOCK_KINDS, "owned-UI transcript block kind");
277
+ assertEnum(block.status, BLOCK_STATUSES, "owned-UI transcript block status");
278
+ assertNonNegativeInteger(block.revision, "owned-UI transcript block revision");
279
+ assertOptionalText(block.title, "owned-UI transcript block title", MAX_LABEL_LENGTH);
280
+ assertPossiblyEmptyText(block.text, "owned-UI transcript block text", MAX_TEXT_BYTES);
281
+ assertJsonValue(block.toolRendering === undefined ? block.payload : {
282
+ payload: block.payload, toolRendering: block.toolRendering,
283
+ }, "owned-UI transcript block payload", MAX_PAYLOAD_BYTES);
284
+ if (block.toolRendering !== undefined) {
285
+ if (block.kind !== "tool-call" && block.kind !== "tool-result")
286
+ throw new TypeError("owned-UI tool rendering requires a tool block");
287
+ assertJsonValue(block.toolRendering.arguments, "owned-UI tool arguments", MAX_PAYLOAD_BYTES);
288
+ if (block.toolRendering.unavailable !== undefined) {
289
+ assertBoundedText(block.toolRendering.unavailable, "owned-UI rendering fallback", MAX_MESSAGE_LENGTH);
290
+ }
291
+ if (block.toolRendering.result !== undefined) {
292
+ const result = block.toolRendering.result;
293
+ assertCollection(result.content, "owned-UI tool result parts", MAX_PAYLOAD_BYTES);
294
+ for (const part of result.content) {
295
+ if (part.type === "text") {
296
+ assertIntegerInRange(part.start, 0, block.text.length, "owned-UI tool text start");
297
+ assertIntegerInRange(part.end, part.start, block.text.length, "owned-UI tool text end");
298
+ }
299
+ else if (part.type === "image") {
300
+ assertIntegerInRange(part.imageIndex, 0, (block.imageReferences?.length ?? 0) - 1, "owned-UI tool image index");
301
+ }
302
+ else
303
+ throw new TypeError("owned-UI tool result part is invalid");
304
+ }
305
+ }
306
+ }
307
+ if (block.toolState !== undefined) {
308
+ if (block.kind !== "tool-call" && block.kind !== "tool-result")
309
+ throw new TypeError("owned-UI tool state requires a tool block");
310
+ if (typeof block.toolState.argsComplete !== "boolean")
311
+ throw new TypeError("owned-UI tool argument completion is invalid");
312
+ assertEnum(block.toolState.execution, TOOL_EXECUTIONS, "owned-UI tool execution state");
313
+ const settled = block.toolState.execution !== "pending" && block.toolState.execution !== "running";
314
+ if (settled !== (block.status === "finalized"))
315
+ throw new TypeError("owned-UI tool execution finality is inconsistent");
316
+ }
317
+ if (block.imageReferences !== undefined) {
318
+ assertCollection(block.imageReferences, "owned-UI transcript image references", 16);
319
+ for (const reference of block.imageReferences) {
320
+ assertId(reference.assetId, "owned-UI transcript image asset id");
321
+ if (!/^image\/[a-z0-9.+-]+$/i.test(reference.mimeType))
322
+ throw new TypeError("owned-UI transcript image MIME type is invalid");
323
+ assertIntegerInRange(reference.byteLength, 1, 20 * 1024 * 1024, "owned-UI transcript image byte length");
324
+ assertEnum(reference.source, IMAGE_REFERENCE_SOURCES, "owned-UI transcript image source");
325
+ }
326
+ }
327
+ }
328
+ export function assertOwnedUiEditorState(editor) {
329
+ assertPossiblyEmptyText(editor.text, "owned-UI editor text", MAX_TEXT_BYTES);
330
+ assertCollection(editor.queuedSubmissions, "owned-UI queued submissions", MAX_QUEUE);
331
+ let queuedBytes = 0;
332
+ for (const submission of editor.queuedSubmissions) {
333
+ assertBoundedText(submission, "owned-UI queued submission", MAX_TEXT_BYTES);
334
+ queuedBytes += textBytes(submission);
335
+ }
336
+ if (queuedBytes > MAX_TEXT_BYTES)
337
+ throw new RangeError("owned-UI queued submissions exceed their byte limit");
338
+ assertIntegerInRange(editor.cursorOffset, 0, editor.text.length, "owned-UI editor cursor offset");
339
+ assertNonNegativeInteger(editor.historyRevision, "owned-UI editor history revision");
340
+ if (typeof editor.submitEnabled !== "boolean")
341
+ throw new TypeError("owned-UI submit state is invalid");
342
+ if (editor.selection !== null) {
343
+ assertIntegerInRange(editor.selection.start, 0, editor.text.length, "owned-UI selection start");
344
+ assertIntegerInRange(editor.selection.end, editor.selection.start, editor.text.length, "owned-UI selection end");
345
+ }
346
+ }
347
+ export function assertOwnedUiStatusView(status) {
348
+ assertBoundedText(status.title, "owned-UI status title", MAX_LABEL_LENGTH);
349
+ assertOptionalText(status.workingMessage, "owned-UI working message", MAX_MESSAGE_LENGTH);
350
+ if (status.workingProgress !== undefined && status.workingProgress !== null) {
351
+ assertIntegerInRange(status.workingProgress, 0, 99, "owned-UI working progress");
352
+ }
353
+ assertCollection(status.diagnostics, "owned-UI status diagnostics", MAX_STATUS_DIAGNOSTICS);
354
+ for (const diagnostic of status.diagnostics) {
355
+ assertBoundedText(diagnostic, "owned-UI status diagnostic", MAX_MESSAGE_LENGTH);
356
+ }
357
+ assertCollection(status.badges, "owned-UI status badges", MAX_BADGES);
358
+ for (const badge of status.badges)
359
+ assertBoundedText(badge, "owned-UI status badge", MAX_LABEL_LENGTH);
360
+ if (status.usage !== undefined) {
361
+ for (const [name, value] of Object.entries({
362
+ input: status.usage.input,
363
+ output: status.usage.output,
364
+ cacheRead: status.usage.cacheRead,
365
+ cacheWrite: status.usage.cacheWrite,
366
+ cost: status.usage.cost,
367
+ contextWindow: status.usage.contextWindow,
368
+ })) {
369
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0)
370
+ throw new TypeError(`owned-UI usage ${name} is invalid`);
371
+ }
372
+ if (status.usage.latestCacheHitRate !== null
373
+ && (typeof status.usage.latestCacheHitRate !== "number" || !Number.isFinite(status.usage.latestCacheHitRate))) {
374
+ throw new TypeError("owned-UI cache-hit rate is invalid");
375
+ }
376
+ if (status.usage.latestPrompt !== undefined && status.usage.latestPrompt !== null) {
377
+ for (const [name, value] of Object.entries(status.usage.latestPrompt)) {
378
+ if (!Number.isSafeInteger(value) || value < 0)
379
+ throw new TypeError(`owned-UI latest prompt ${name} is invalid`);
380
+ }
381
+ }
382
+ if (status.usage.contextAvailable !== undefined && typeof status.usage.contextAvailable !== "boolean") {
383
+ throw new TypeError("owned-UI context availability is invalid");
384
+ }
385
+ if (status.usage.contextTokens !== null
386
+ && (!Number.isSafeInteger(status.usage.contextTokens) || status.usage.contextTokens < 0)) {
387
+ throw new TypeError("owned-UI context tokens are invalid");
388
+ }
389
+ if (status.usage.contextPercent !== null
390
+ && (typeof status.usage.contextPercent !== "number" || !Number.isFinite(status.usage.contextPercent))) {
391
+ throw new TypeError("owned-UI context percentage is invalid");
392
+ }
393
+ if (typeof status.usage.usingSubscription !== "boolean" || typeof status.usage.autoCompactEnabled !== "boolean") {
394
+ throw new TypeError("owned-UI usage flags are invalid");
395
+ }
396
+ }
397
+ if (status.footer !== undefined) {
398
+ assertOptionalText(status.footer.branch, "owned-UI footer branch", MAX_LABEL_LENGTH);
399
+ assertOptionalText(status.footer.sessionName, "owned-UI footer session name", MAX_LABEL_LENGTH);
400
+ assertIntegerInRange(status.footer.availableProviderCount, 0, 1_000, "owned-UI footer provider count");
401
+ assertCollection(status.footer.extensionStatuses, "owned-UI footer extension statuses", MAX_BADGES);
402
+ for (const entry of status.footer.extensionStatuses) {
403
+ if (!Array.isArray(entry) || entry.length !== 2)
404
+ throw new TypeError("owned-UI footer extension status is invalid");
405
+ assertBoundedText(entry[0], "owned-UI footer extension id", MAX_LABEL_LENGTH);
406
+ assertBoundedText(entry[1], "owned-UI footer extension value", MAX_LABEL_LENGTH);
407
+ }
408
+ }
409
+ }
410
+ export function assertOwnedUiTerminalSurface(surface) {
411
+ assertIntegerInRange(surface.columns, 20, 500, "owned-UI terminal columns");
412
+ assertIntegerInRange(surface.rows, 8, 300, "owned-UI terminal rows");
413
+ assertEnum(surface.focusedRegion, FOCUSED_REGIONS, "owned-UI focused region");
414
+ if (typeof surface.hardwareCursor !== "boolean")
415
+ throw new TypeError("owned-UI hardware-cursor state is invalid");
416
+ }
417
+ export function assertOwnedUiDiagnostics(diagnostic) {
418
+ assertNonNegativeInteger(diagnostic.sequence, "owned-UI diagnostic sequence");
419
+ assertId(diagnostic.code, "owned-UI diagnostic code");
420
+ assertEnum(diagnostic.severity, SEVERITIES, "owned-UI diagnostic severity");
421
+ assertBoundedText(diagnostic.message, "owned-UI diagnostic message", MAX_MESSAGE_LENGTH);
422
+ if (typeof diagnostic.recoverable !== "boolean")
423
+ throw new TypeError("owned-UI diagnostic recoverability is invalid");
424
+ }
425
+ function assertOwnedUiModelInfo(model) {
426
+ assertId(model.providerId, "owned-UI provider id");
427
+ assertId(model.modelId, "owned-UI model id");
428
+ assertBoundedText(model.displayName, "owned-UI model display name", MAX_LABEL_LENGTH);
429
+ }
430
+ function assertOwnedUiDialog(dialog) {
431
+ assertId(dialog.id, "owned-UI dialog id");
432
+ assertBoundedText(dialog.title, "owned-UI dialog title", MAX_LABEL_LENGTH);
433
+ assertEnum(dialog.kind, DIALOG_KINDS, "owned-UI dialog kind");
434
+ assertJsonValue(dialog.payload, "owned-UI dialog payload", MAX_PAYLOAD_BYTES);
435
+ }
436
+ function assertOwnedUiOverlay(overlay) {
437
+ assertId(overlay.id, "owned-UI overlay id");
438
+ assertId(overlay.componentSlotId, "owned-UI overlay component slot id");
439
+ assertEnum(overlay.placement, OVERLAY_PLACEMENTS, "owned-UI overlay placement");
440
+ if (typeof overlay.modal !== "boolean")
441
+ throw new TypeError("owned-UI overlay modal state is invalid");
442
+ assertJsonValue(overlay.payload, "owned-UI overlay payload", MAX_PAYLOAD_BYTES);
443
+ }
444
+ function assertUniqueCustomizations(customizations) {
445
+ const ids = new Set();
446
+ for (const customization of customizations) {
447
+ if (ids.has(customization.id))
448
+ throw new TypeError(`duplicate owned-UI customization id: ${customization.id}`);
449
+ ids.add(customization.id);
450
+ }
451
+ }
452
+ function assertViewSession(view, sessionId) {
453
+ if (view.sessionId !== sessionId)
454
+ throw new TypeError("owned-UI view session identity does not match its envelope");
455
+ }
456
+ function assertEnum(value, allowed, name) {
457
+ if (typeof value !== "string" || !allowed.has(value))
458
+ throw new TypeError(`${name} is invalid`);
459
+ }
460
+ function assertId(value, name) {
461
+ assertBoundedText(value, name, MAX_ID_LENGTH);
462
+ if (!/^[A-Za-z0-9][A-Za-z0-9._:-]*$/.test(value))
463
+ throw new TypeError(`${name} contains unsupported characters`);
464
+ }
465
+ function assertBoundedText(value, name, maximumBytes) {
466
+ if (typeof value !== "string" || value.length === 0 || value.includes("\0") || textBytes(value) > maximumBytes) {
467
+ throw new TypeError(`${name} is invalid`);
468
+ }
469
+ }
470
+ function assertPossiblyEmptyText(value, name, maximumBytes) {
471
+ if (typeof value !== "string" || value.includes("\0") || textBytes(value) > maximumBytes) {
472
+ throw new TypeError(`${name} is invalid`);
473
+ }
474
+ }
475
+ function assertOptionalText(value, name, maximumBytes) {
476
+ if (value === null)
477
+ return;
478
+ assertBoundedText(value, name, maximumBytes);
479
+ }
480
+ function assertPromptSuggestionText(value, allowEmpty) {
481
+ if (value === null)
482
+ return;
483
+ if (typeof value !== "string" || value.includes("\0") || (!allowEmpty && value.length === 0) || [...value].length >= 100) {
484
+ throw new TypeError("prompt-suggestion text is invalid");
485
+ }
486
+ }
487
+ function assertCollection(value, name, maximum) {
488
+ if (!Array.isArray(value) || value.length > maximum)
489
+ throw new RangeError(`${name} exceeds its maximum length`);
490
+ }
491
+ function assertNonNegativeInteger(value, name) {
492
+ assertIntegerInRange(value, 0, Number.MAX_SAFE_INTEGER, name);
493
+ }
494
+ function assertIntegerInRange(value, minimum, maximum, name) {
495
+ if (!Number.isSafeInteger(value) || value < minimum || value > maximum) {
496
+ throw new RangeError(`${name} must be an integer from ${minimum} to ${maximum}`);
497
+ }
498
+ }
499
+ function assertJsonObject(value, name, maximumBytes) {
500
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
501
+ throw new TypeError(`${name} must be an object`);
502
+ }
503
+ assertJsonValue(value, name, maximumBytes);
504
+ }
505
+ function assertJsonValue(value, name, maximumBytes) {
506
+ let encoded;
507
+ try {
508
+ encoded = JSON.stringify(value);
509
+ }
510
+ catch {
511
+ throw new TypeError(`${name} must be JSON serializable`);
512
+ }
513
+ if (encoded === undefined)
514
+ throw new TypeError(`${name} must be JSON serializable`);
515
+ if (textBytes(encoded) > maximumBytes)
516
+ throw new RangeError(`${name} exceeds its byte limit`);
517
+ }
518
+ function assertJsonBytes(value, name, maximumBytes) {
519
+ assertJsonValue(value, name, maximumBytes);
520
+ }
521
+ function textBytes(value) {
522
+ return new TextEncoder().encode(value).byteLength;
523
+ }
@@ -0,0 +1,104 @@
1
+ export type PresentationRuntimeState = "idle" | "running" | "stopping" | "stopped" | "failed";
2
+ export interface PresentationComponentPort {
3
+ render(width: number): readonly string[];
4
+ invalidate(): void;
5
+ handleInput?(data: string): void;
6
+ setFocused?(focused: boolean): void;
7
+ dispose?(): void;
8
+ }
9
+ /** A painted input surface in terminal coordinates (one-based, inclusive bounds). */
10
+ export interface PresentationPointerSurface {
11
+ readonly component: PresentationComponentPort;
12
+ readonly columnStart: number;
13
+ readonly columnEnd: number;
14
+ readonly rowStart: number;
15
+ readonly rowEnd: number;
16
+ }
17
+ export interface PresentationEditorPort extends PresentationComponentPort {
18
+ getText(): string;
19
+ setText(text: string): void;
20
+ submit(): Promise<void> | void;
21
+ }
22
+ export interface PresentationSelectorItem {
23
+ readonly id: string;
24
+ readonly label: string;
25
+ readonly detail?: string;
26
+ }
27
+ export interface PresentationSelectorPort extends PresentationComponentPort {
28
+ setItems(items: readonly PresentationSelectorItem[]): void;
29
+ readonly selectedId: string | null;
30
+ }
31
+ export interface PresentationDialogPort extends PresentationComponentPort {
32
+ readonly dialogId: string;
33
+ close(outcome: "accepted" | "cancelled"): void;
34
+ }
35
+ export interface PresentationExtensionUiPort {
36
+ mount(slot: PresentationContributionSlot, component: PresentationComponentPort): () => void;
37
+ }
38
+ export type PresentationContributionSlot = "transcript" | "tool" | "editor" | "status" | "dialog" | "overlay";
39
+ export type PresentationFocusTarget = "transcript" | "editor" | "dialog" | "overlay" | "status";
40
+ export interface PresentationFocusPort {
41
+ readonly focused: PresentationFocusTarget;
42
+ focus(target: PresentationFocusTarget): void;
43
+ }
44
+ export interface PresentationTerminalPort {
45
+ readonly columns: number;
46
+ readonly rows: number;
47
+ readonly enhancedKeyboard: boolean;
48
+ start(onInput: (data: string) => void, onResize: () => void): void;
49
+ stop(): void;
50
+ drainInput(maxMs?: number, idleMs?: number): Promise<void>;
51
+ write(data: string): void;
52
+ moveBy(lines: number): void;
53
+ clearLine(): void;
54
+ clearFromCursor(): void;
55
+ clearScreen(): void;
56
+ setTitle(title: string): void;
57
+ setProgress(active: boolean): void;
58
+ showCursor(): void;
59
+ hideCursor(): void;
60
+ }
61
+ export type PresentationLayoutNode = {
62
+ readonly type: "component";
63
+ readonly component: PresentationComponentPort;
64
+ } | {
65
+ readonly type: "stack";
66
+ readonly direction: "vertical" | "horizontal";
67
+ readonly children: readonly PresentationLayoutNode[];
68
+ readonly gap?: number;
69
+ } | {
70
+ readonly type: "scroll";
71
+ readonly id: string;
72
+ readonly child: PresentationLayoutNode;
73
+ readonly follow: "none" | "end";
74
+ };
75
+ export interface PresentationOverlayOptions {
76
+ readonly anchor: "center" | "top" | "bottom";
77
+ readonly width?: number | `${number}%`;
78
+ readonly modal: boolean;
79
+ }
80
+ export interface PresentationOverlayHandle {
81
+ readonly visible: boolean;
82
+ hide(): void;
83
+ show(): void;
84
+ focus(): void;
85
+ dispose(): void;
86
+ }
87
+ export interface OwnedUiApplicationPort {
88
+ readonly disposed: boolean;
89
+ start(): void;
90
+ flush(): Promise<void>;
91
+ waitUntilStopped(): Promise<void>;
92
+ dispose(): Promise<void>;
93
+ }
94
+ export interface PresentationRuntimePort {
95
+ readonly state: PresentationRuntimeState;
96
+ readonly terminal: PresentationTerminalPort;
97
+ start(): void;
98
+ render(force?: boolean): void;
99
+ showOverlay(component: PresentationComponentPort, options: PresentationOverlayOptions): PresentationOverlayHandle;
100
+ stop(): Promise<void>;
101
+ }
102
+ export declare function assertPresentationComponent(component: PresentationComponentPort): void;
103
+ export declare function assertPresentationRuntime(runtime: PresentationRuntimePort): void;
104
+ export declare function probePresentationLifecycle(runtime: PresentationRuntimePort): Promise<void>;
@@ -0,0 +1,36 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { tmpdir } from "node:os";
3
+ import { join, resolve } from "node:path";
4
+ import { PRODUCT_IDENTITY } from "../../product-identity.js";
5
+ export function resolveDevelopmentLaunchEnvironment(canonicalPackageRoot, releaseId, source = process.env, temporaryDirectory = tmpdir()) {
6
+ const checkoutId = createHash("sha256").update(resolve(canonicalPackageRoot).toLowerCase()).digest("hex").slice(0, 16);
7
+ const selectedInstanceId = source[PRODUCT_IDENTITY.environment.developmentInstanceId];
8
+ const instanceId = selectedInstanceId
9
+ ? createHash("sha256").update(selectedInstanceId).digest("hex").slice(0, 16)
10
+ : randomUUID().replaceAll("-", "").slice(0, 16);
11
+ const checkoutRoot = resolve(temporaryDirectory, PRODUCT_IDENTITY.state.developmentDirectory, checkoutId);
12
+ const selectedDevelopmentRoot = source[PRODUCT_IDENTITY.environment.developmentRoot];
13
+ const developmentRoot = resolve(selectedDevelopmentRoot
14
+ ?? join(checkoutRoot, releaseId, "instances", instanceId));
15
+ // Rationale: runtime/data remain instance-isolated, but product settings are user
16
+ // preferences and must survive a fresh local launch (and a rebuilt candidate).
17
+ // An explicit development root retains its historical self-contained policy.
18
+ const persistentConfigDir = selectedDevelopmentRoot
19
+ ? join(developmentRoot, "config")
20
+ : join(checkoutRoot, "config");
21
+ const dataDir = resolve(source[PRODUCT_IDENTITY.environment.dataDir] ?? join(developmentRoot, "data"));
22
+ return {
23
+ checkoutId,
24
+ releaseId,
25
+ instanceId,
26
+ developmentRoot,
27
+ environment: {
28
+ ...source,
29
+ [PRODUCT_IDENTITY.environment.developmentInstanceId]: instanceId,
30
+ [PRODUCT_IDENTITY.environment.configDir]: resolve(source[PRODUCT_IDENTITY.environment.configDir] ?? persistentConfigDir),
31
+ [PRODUCT_IDENTITY.environment.dataDir]: dataDir,
32
+ [PRODUCT_IDENTITY.environment.runtimeDir]: resolve(source[PRODUCT_IDENTITY.environment.runtimeDir] ?? join(developmentRoot, "runtime")),
33
+ [PRODUCT_IDENTITY.environment.databasePath]: resolve(source[PRODUCT_IDENTITY.environment.databasePath] ?? join(dataDir, PRODUCT_IDENTITY.endpoint.databaseFilename)),
34
+ },
35
+ };
36
+ }