@timurproko/a1 0.1.8-dev.49ff83a → 0.1.8-dev.508

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 (865) hide show
  1. package/README.md +168 -65
  2. package/bin/cli.js +33 -11
  3. package/bin/guardian.js +16 -6
  4. package/bin/module-identity.js +76 -69
  5. package/bin/module-resolver.js +138 -0
  6. package/bin/pinned-pi-public.d.ts +3 -0
  7. package/bin/pinned-pi-public.js +93 -0
  8. package/bin/release-cleanup.js +8 -0
  9. package/bin/supervisor.js +2 -2
  10. package/bin/ui.js +67 -22
  11. package/bin/update-recovery.js +343 -0
  12. package/bin/warmup.js +28 -0
  13. package/dist/app/session-shell/clipboard-diagnostics.d.ts +16 -0
  14. package/dist/app/session-shell/clipboard-diagnostics.js +65 -0
  15. package/dist/app/session-shell/clipboard-image.d.ts +11 -0
  16. package/dist/app/session-shell/clipboard-image.js +38 -0
  17. package/dist/app/session-shell/editor-hyperlink-budget.d.ts +9 -0
  18. package/dist/app/session-shell/editor-hyperlink-budget.js +23 -0
  19. package/dist/app/session-shell/helper-pool.d.ts +33 -0
  20. package/dist/app/session-shell/helper-pool.js +98 -0
  21. package/dist/app/session-shell/image-preparation-client.d.ts +20 -0
  22. package/dist/app/session-shell/image-preparation-client.js +145 -0
  23. package/dist/app/session-shell/image-preparation.d.ts +18 -0
  24. package/dist/app/session-shell/image-preparation.js +126 -0
  25. package/dist/app/session-shell/image-source.d.ts +13 -0
  26. package/dist/app/session-shell/image-source.js +171 -0
  27. package/dist/app/session-shell/image-worker.d.ts +17 -0
  28. package/dist/app/session-shell/image-worker.js +23 -0
  29. package/dist/app/session-shell/index.d.ts +7 -0
  30. package/dist/app/session-shell/index.js +4 -0
  31. package/dist/app/session-shell/paste-executor.d.ts +18 -0
  32. package/dist/app/session-shell/paste-executor.js +253 -0
  33. package/dist/app/session-shell/paste-helper.js +173 -0
  34. package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
  35. package/dist/app/session-shell/paste-preparation-client.js +170 -0
  36. package/dist/app/session-shell/paste-protocol.d.ts +78 -0
  37. package/dist/app/session-shell/paste-protocol.js +18 -0
  38. package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
  39. package/dist/app/session-shell/paste-text-preparation.js +134 -0
  40. package/dist/app/session-shell/paste-text-worker.js +12 -0
  41. package/dist/app/session-shell/paste-types.d.ts +17 -0
  42. package/dist/app/session-shell/path-chip-presentation.d.ts +7 -0
  43. package/dist/app/session-shell/path-chip-presentation.js +24 -0
  44. package/dist/app/session-shell/prompt-chips.d.ts +76 -0
  45. package/dist/app/session-shell/prompt-chips.js +507 -0
  46. package/dist/app/session-shell/prompt-history-controller.d.ts +36 -0
  47. package/dist/app/session-shell/prompt-history-controller.js +170 -0
  48. package/dist/app/session-shell/prompt-suggestion-controller.d.ts +35 -0
  49. package/dist/app/session-shell/prompt-suggestion-controller.js +207 -0
  50. package/dist/app/session-shell/quit-outro-effects.d.ts +29 -0
  51. package/dist/app/session-shell/quit-outro-effects.js +242 -0
  52. package/dist/app/session-shell/quit-outro.d.ts +38 -0
  53. package/dist/app/session-shell/quit-outro.js +98 -0
  54. package/dist/app/session-shell/response-copy-coordinator.d.ts +27 -0
  55. package/dist/app/session-shell/response-copy-coordinator.js +187 -0
  56. package/dist/app/session-shell/response-copy-helper.js +122 -0
  57. package/dist/app/session-shell/response-copy-protocol.d.ts +56 -0
  58. package/dist/app/session-shell/response-copy-protocol.js +5 -0
  59. package/dist/app/session-shell/response-copy-transport.d.ts +39 -0
  60. package/dist/app/session-shell/response-copy-transport.js +217 -0
  61. package/dist/app/session-shell/session-shell-root.d.ts +265 -0
  62. package/dist/app/session-shell/session-shell-root.js +1366 -0
  63. package/dist/app/session-shell/session-shell.d.ts +59 -0
  64. package/dist/app/session-shell/session-shell.js +1917 -0
  65. package/dist/app/session-shell/session-viewport-controller.d.ts +61 -0
  66. package/dist/app/session-shell/session-viewport-controller.js +597 -0
  67. package/dist/app/session-shell/stream-presentation-coalescer.d.ts +29 -0
  68. package/dist/app/session-shell/stream-presentation-coalescer.js +79 -0
  69. package/dist/app/session-shell/system-clipboard.d.ts +20 -0
  70. package/dist/app/session-shell/system-clipboard.js +159 -0
  71. package/dist/app/session-shell/text-paste.d.ts +5 -0
  72. package/dist/app/session-shell/text-paste.js +16 -0
  73. package/dist/cli/capabilities.d.ts +6 -0
  74. package/dist/cli/capabilities.js +7 -0
  75. package/dist/cli/dispatch.d.ts +46 -0
  76. package/dist/cli/dispatch.js +261 -0
  77. package/dist/cli/index.d.ts +8 -0
  78. package/dist/cli/index.js +4 -0
  79. package/dist/cli/package-messages.d.ts +26 -0
  80. package/dist/cli/package-messages.js +71 -0
  81. package/dist/cli/packages.d.ts +32 -0
  82. package/dist/cli/packages.js +81 -0
  83. package/dist/cli/version-stats.d.ts +22 -0
  84. package/dist/cli/version-stats.js +112 -0
  85. package/dist/composition/index.d.ts +2 -0
  86. package/dist/composition/index.js +2 -0
  87. package/dist/composition/owned-ui.d.ts +37 -0
  88. package/dist/composition/owned-ui.js +136 -0
  89. package/dist/composition/settings-route-host.d.ts +7 -0
  90. package/dist/composition/settings-route-host.js +110 -0
  91. package/dist/contracts/agent-engine/capability-ports.d.ts +95 -0
  92. package/dist/contracts/agent-engine/domain-validation.js +107 -0
  93. package/dist/contracts/agent-engine/domain.d.ts +138 -0
  94. package/dist/contracts/agent-engine/index.d.ts +11 -0
  95. package/dist/contracts/agent-engine/index.js +6 -0
  96. package/dist/contracts/agent-engine/package-ports.d.ts +60 -0
  97. package/dist/contracts/agent-engine/ports.js +1 -0
  98. package/dist/contracts/owned-ui/extension-ui.d.ts +310 -0
  99. package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
  100. package/dist/contracts/owned-ui/image-attachments.js +67 -0
  101. package/dist/contracts/owned-ui/index.d.ts +12 -0
  102. package/dist/contracts/owned-ui/index.js +8 -0
  103. package/dist/contracts/owned-ui/model.d.ts +378 -0
  104. package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
  105. package/dist/contracts/owned-ui/prompt-history.js +23 -0
  106. package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
  107. package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
  108. package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
  109. package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
  110. package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
  111. package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
  112. package/dist/contracts/owned-ui/validation.d.ts +15 -0
  113. package/dist/contracts/owned-ui/validation.js +523 -0
  114. package/dist/contracts/presentation/index.d.ts +104 -0
  115. package/dist/features/launch/development-launch.js +36 -0
  116. package/dist/features/launch/index.d.ts +12 -0
  117. package/dist/features/launch/index.js +6 -0
  118. package/dist/features/launch/intent.d.ts +12 -0
  119. package/dist/features/launch/intent.js +8 -0
  120. package/dist/features/launch/prepare-launch.d.ts +11 -0
  121. package/dist/features/launch/prepare-launch.js +14 -0
  122. package/dist/features/launch/profile-paths.d.ts +16 -0
  123. package/dist/features/launch/profile-paths.js +36 -0
  124. package/dist/features/launch/runtime-selection.d.ts +16 -0
  125. package/dist/features/launch/runtime-selection.js +13 -0
  126. package/dist/features/owned-ui/index.d.ts +6 -0
  127. package/dist/features/owned-ui/index.js +4 -0
  128. package/dist/features/owned-ui/project-trust-prompt.d.ts +25 -0
  129. package/dist/features/owned-ui/project-trust-prompt.js +149 -0
  130. package/dist/features/owned-ui/run.d.ts +17 -0
  131. package/dist/features/owned-ui/run.js +64 -0
  132. package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
  133. package/dist/features/owned-ui/session-fork-prompt.js +34 -0
  134. package/dist/features/owned-ui/settings-app.d.ts +21 -0
  135. package/dist/features/owned-ui/settings-app.js +807 -0
  136. package/dist/features/owned-ui/settings-route.d.ts +2 -0
  137. package/dist/features/owned-ui/settings-route.js +2 -0
  138. package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
  139. package/dist/features/prompt-history/image-sidecar.js +130 -0
  140. package/dist/features/prompt-history/index.d.ts +4 -0
  141. package/dist/features/prompt-history/index.js +3 -0
  142. package/dist/features/prompt-history/paths.d.ts +5 -0
  143. package/dist/features/prompt-history/paths.js +17 -0
  144. package/dist/features/prompt-history/service.d.ts +54 -0
  145. package/dist/features/prompt-history/service.js +425 -0
  146. package/dist/features/prompt-history/store.d.ts +16 -0
  147. package/dist/features/prompt-history/store.js +219 -0
  148. package/dist/features/prompt-history/worker.d.ts +9 -0
  149. package/dist/features/prompt-history/worker.js +45 -0
  150. package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
  151. package/dist/features/prompt-suggestions/diagnostics.js +82 -0
  152. package/dist/features/prompt-suggestions/index.d.ts +2 -0
  153. package/dist/features/prompt-suggestions/index.js +1 -0
  154. package/dist/foundation/launch-context/index.d.ts +59 -0
  155. package/dist/foundation/launch-context/index.js +136 -0
  156. package/dist/foundation/launch-guardian/index.d.ts +2 -0
  157. package/dist/foundation/launch-guardian/index.js +1 -0
  158. package/dist/foundation/launch-guardian/main.d.ts +33 -0
  159. package/dist/foundation/launch-guardian/main.js +180 -0
  160. package/dist/foundation/lifecycle/commands.js +1 -0
  161. package/dist/foundation/lifecycle/index.d.ts +11 -0
  162. package/dist/foundation/lifecycle/index.js +5 -0
  163. package/dist/foundation/lifecycle/model.d.ts +64 -0
  164. package/dist/foundation/lifecycle/model.js +40 -0
  165. package/dist/foundation/lifecycle/paths.d.ts +30 -0
  166. package/dist/foundation/lifecycle/paths.js +70 -0
  167. package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
  168. package/dist/foundation/lifecycle/session-selection.js +39 -0
  169. package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
  170. package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
  171. package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
  172. package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
  173. package/dist/foundation/process-containment/index.d.ts +8 -0
  174. package/dist/foundation/process-containment/index.js +6 -0
  175. package/dist/foundation/process-containment/linux-process-inspector.d.ts +7 -0
  176. package/dist/foundation/process-containment/linux-process-inspector.js +27 -0
  177. package/dist/foundation/process-containment/native-guardian-containment.d.ts +17 -0
  178. package/dist/foundation/process-containment/native-guardian-containment.js +140 -0
  179. package/dist/foundation/process-containment/windows-process-inspector.d.ts +19 -0
  180. package/dist/foundation/process-containment/windows-process-inspector.js +56 -0
  181. package/dist/foundation/protocol/client.d.ts +18 -0
  182. package/dist/foundation/protocol/client.js +130 -0
  183. package/dist/foundation/protocol/index.d.ts +3 -0
  184. package/dist/foundation/protocol/index.js +2 -0
  185. package/dist/foundation/protocol/messages.d.ts +90 -0
  186. package/dist/foundation/protocol/messages.js +100 -0
  187. package/dist/foundation/release/bootstrap.d.ts +51 -0
  188. package/dist/foundation/release/bootstrap.js +427 -0
  189. package/dist/foundation/release/cohort-state.d.ts +157 -0
  190. package/dist/foundation/release/cohort-state.js +472 -0
  191. package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
  192. package/dist/foundation/release/dependency-certification-retention.js +88 -0
  193. package/dist/foundation/release/dependency-certification.d.ts +24 -0
  194. package/dist/foundation/release/dependency-certification.js +266 -0
  195. package/dist/foundation/release/dependency-layer.d.ts +78 -0
  196. package/dist/foundation/release/dependency-layer.js +466 -0
  197. package/dist/foundation/release/endpoints.d.ts +24 -0
  198. package/dist/foundation/release/endpoints.js +134 -0
  199. package/dist/foundation/release/immutable-platform.d.ts +6 -0
  200. package/dist/foundation/release/immutable-platform.js +13 -0
  201. package/dist/foundation/release/index.d.ts +30 -0
  202. package/dist/foundation/release/index.js +16 -0
  203. package/dist/foundation/release/release-gc.d.ts +71 -0
  204. package/dist/foundation/release/release-gc.js +764 -0
  205. package/dist/foundation/release/release-store.d.ts +49 -0
  206. package/dist/foundation/release/release-store.js +235 -0
  207. package/dist/foundation/release/release.d.ts +43 -0
  208. package/dist/foundation/release/release.js +215 -0
  209. package/dist/foundation/release/restart-certification.d.ts +68 -0
  210. package/dist/foundation/release/restart-certification.js +227 -0
  211. package/dist/foundation/release/types.d.ts +11 -0
  212. package/dist/foundation/release/types.js +1 -0
  213. package/dist/foundation/release/update-launch.d.ts +6 -0
  214. package/dist/foundation/release/update-launch.js +17 -0
  215. package/dist/foundation/release/update-recovery.d.ts +76 -0
  216. package/dist/foundation/release/update-recovery.js +356 -0
  217. package/dist/foundation/release/update-transaction.d.ts +42 -0
  218. package/dist/foundation/release/update-transaction.js +101 -0
  219. package/dist/foundation/release/update.d.ts +119 -0
  220. package/dist/foundation/release/update.js +632 -0
  221. package/dist/foundation/release/warmup.d.ts +3 -0
  222. package/dist/foundation/release/warmup.js +47 -0
  223. package/dist/foundation/startup/index.d.ts +4 -0
  224. package/dist/foundation/startup/index.js +2 -0
  225. package/dist/foundation/startup/startup-budget.d.ts +46 -0
  226. package/dist/foundation/startup/startup-budget.js +42 -0
  227. package/dist/foundation/startup/startup-descriptor.js +34 -0
  228. package/dist/foundation/startup/startup-runtime.d.ts +27 -0
  229. package/dist/foundation/startup/startup-runtime.js +128 -0
  230. package/dist/foundation/storage/control-store.d.ts +18 -0
  231. package/dist/foundation/storage/control-store.js +342 -0
  232. package/dist/foundation/storage/index.d.ts +1 -0
  233. package/dist/foundation/storage/index.js +1 -0
  234. package/dist/foundation/supervision/index.d.ts +3 -0
  235. package/dist/foundation/supervision/index.js +3 -0
  236. package/dist/foundation/supervision/main.d.ts +1 -0
  237. package/dist/foundation/supervision/main.js +84 -0
  238. package/dist/foundation/supervision/paths.d.ts +1 -0
  239. package/dist/foundation/supervision/paths.js +1 -0
  240. package/dist/foundation/supervision/server.d.ts +46 -0
  241. package/dist/foundation/supervision/server.js +573 -0
  242. package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
  243. package/dist/foundation/terminal-cleanup/fatal-exit.js +87 -0
  244. package/dist/foundation/terminal-cleanup/index.d.ts +3 -0
  245. package/dist/foundation/terminal-cleanup/index.js +2 -0
  246. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
  247. package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
  248. package/dist/integrations/pi/components/components.d.ts +4 -0
  249. package/dist/integrations/pi/components/components.js +64 -0
  250. package/dist/integrations/pi/components/conformance.d.ts +18 -0
  251. package/dist/integrations/pi/components/conformance.js +70 -0
  252. package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
  253. package/dist/integrations/pi/components/editor-interaction.js +1 -0
  254. package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
  255. package/dist/integrations/pi/components/history-editor-loader.js +5 -0
  256. package/dist/integrations/pi/components/index.d.ts +21 -0
  257. package/dist/integrations/pi/components/index.js +13 -0
  258. package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
  259. package/dist/integrations/pi/components/owned-editor-ux.js +1094 -0
  260. package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
  261. package/dist/integrations/pi/components/path-word-ranges.js +37 -0
  262. package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
  263. package/dist/integrations/pi/components/prompt-input-port.js +1 -0
  264. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +167 -0
  265. package/dist/integrations/pi/components/resources/builtin-themes.js +168 -0
  266. package/dist/integrations/pi/components/shell-components.d.ts +7 -0
  267. package/dist/integrations/pi/components/shell-components.js +7 -0
  268. package/dist/integrations/pi/components/shell-editor-autocomplete.js +298 -0
  269. package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
  270. package/dist/integrations/pi/components/shell-extension-ui.js +280 -0
  271. package/dist/integrations/pi/components/shell-footer-status.d.ts +7 -0
  272. package/dist/integrations/pi/components/shell-footer-status.js +248 -0
  273. package/dist/integrations/pi/components/shell-presenters-info.d.ts +43 -0
  274. package/dist/integrations/pi/components/shell-presenters-info.js +114 -0
  275. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
  276. package/dist/integrations/pi/components/shell-presenters-transcript.js +433 -0
  277. package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +123 -0
  278. package/dist/integrations/pi/components/shell-selectors-dialogs.js +242 -0
  279. package/dist/integrations/pi/components/shell-shared-facade.d.ts +217 -0
  280. package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
  281. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
  282. package/dist/integrations/pi/components/submitted-prompt-adapter.js +49 -0
  283. package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
  284. package/dist/integrations/pi/components/tool-image-presentation.js +83 -0
  285. package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
  286. package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
  287. package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
  288. package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
  289. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +445 -0
  290. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +370 -0
  291. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
  292. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +13 -0
  293. package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +29 -0
  294. package/dist/integrations/pi/components/upstream/components/daxnuts.js +146 -0
  295. package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +4 -0
  296. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +48 -0
  297. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +20 -0
  298. package/dist/integrations/pi/components/upstream/components/extension-editor.js +84 -0
  299. package/dist/integrations/pi/components/upstream/components/mermaid.js +81 -0
  300. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +46 -0
  301. package/dist/integrations/pi/components/upstream/components/owned-editor.js +187 -0
  302. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +59 -0
  303. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +346 -0
  304. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +11 -0
  305. package/dist/integrations/pi/components/upstream/components/session-footer.js +123 -0
  306. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +161 -0
  307. package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +95 -0
  308. package/dist/integrations/pi/components/upstream/components/session-selector.js +893 -0
  309. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +21 -0
  310. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +46 -0
  311. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +35 -0
  312. package/dist/integrations/pi/components/upstream/components/status-indicator.js +69 -0
  313. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +67 -0
  314. package/dist/integrations/pi/components/upstream/components/tool-execution.js +365 -0
  315. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +101 -0
  316. package/dist/integrations/pi/components/upstream/components/tree-selector.js +1275 -0
  317. package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
  318. package/dist/integrations/pi/components/upstream/components/trust-selector.js +81 -0
  319. package/dist/integrations/pi/components/upstream/external-editor.js +43 -0
  320. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +289 -0
  321. package/dist/integrations/pi/components/upstream/history/editor-core.js +2144 -0
  322. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +35 -0
  323. package/dist/integrations/pi/components/upstream/history/kill-ring.js +51 -0
  324. package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
  325. package/dist/integrations/pi/components/upstream/history/printable-key.js +43 -0
  326. package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +14 -0
  327. package/dist/integrations/pi/components/upstream/history/text-helpers.js +31 -0
  328. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +25 -0
  329. package/dist/integrations/pi/components/upstream/history/undo-stack.js +39 -0
  330. package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
  331. package/dist/integrations/pi/components/upstream/history/word-navigation.js +103 -0
  332. package/dist/integrations/pi/components/upstream/model-search.d.ts +18 -0
  333. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +33 -0
  334. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +114 -0
  335. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +61 -0
  336. package/dist/integrations/pi/components/upstream/theme/theme.js +337 -0
  337. package/dist/integrations/pi/engine/adapter.d.ts +135 -0
  338. package/dist/integrations/pi/engine/adapter.js +648 -0
  339. package/dist/integrations/pi/engine/changelog.d.ts +2 -0
  340. package/dist/integrations/pi/engine/changelog.js +63 -0
  341. package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
  342. package/dist/integrations/pi/engine/command-dispatch.js +125 -0
  343. package/dist/integrations/pi/engine/compaction-progress.d.ts +28 -0
  344. package/dist/integrations/pi/engine/compaction-progress.js +96 -0
  345. package/dist/integrations/pi/engine/conformance.d.ts +39 -0
  346. package/dist/integrations/pi/engine/conformance.js +140 -0
  347. package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
  348. package/dist/integrations/pi/engine/event-delivery.js +184 -0
  349. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
  350. package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
  351. package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
  352. package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
  353. package/dist/integrations/pi/engine/index.d.ts +18 -0
  354. package/dist/integrations/pi/engine/index.js +10 -0
  355. package/dist/integrations/pi/engine/message-values.d.ts +29 -0
  356. package/dist/integrations/pi/engine/message-values.js +168 -0
  357. package/dist/integrations/pi/engine/package-integration.d.ts +13 -0
  358. package/dist/integrations/pi/engine/package-integration.js +118 -0
  359. package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
  360. package/dist/integrations/pi/engine/pending-delivery.js +156 -0
  361. package/dist/integrations/pi/engine/pi-settings-metadata.json +385 -0
  362. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +22 -0
  363. package/dist/integrations/pi/engine/project-trust-preflight.js +50 -0
  364. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
  365. package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
  366. package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
  367. package/dist/integrations/pi/engine/provider-authentication.js +209 -0
  368. package/dist/integrations/pi/engine/resource-catalog.d.ts +49 -0
  369. package/dist/integrations/pi/engine/resource-catalog.js +289 -0
  370. package/dist/integrations/pi/engine/resources/changelog.json +12 -0
  371. package/dist/integrations/pi/engine/runtime-integration.d.ts +53 -0
  372. package/dist/integrations/pi/engine/runtime-integration.js +118 -0
  373. package/dist/integrations/pi/engine/session-events.d.ts +48 -0
  374. package/dist/integrations/pi/engine/session-events.js +223 -0
  375. package/dist/integrations/pi/engine/session-integration.d.ts +67 -0
  376. package/dist/integrations/pi/engine/session-integration.js +195 -0
  377. package/dist/integrations/pi/engine/session-runtime.d.ts +84 -0
  378. package/dist/integrations/pi/engine/session-runtime.js +249 -0
  379. package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
  380. package/dist/integrations/pi/engine/session-selection.js +90 -0
  381. package/dist/integrations/pi/engine/settings-bridge.d.ts +121 -0
  382. package/dist/integrations/pi/engine/settings-bridge.js +514 -0
  383. package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
  384. package/dist/integrations/pi/engine/settings-metadata.js +67 -0
  385. package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
  386. package/dist/integrations/pi/engine/settings-port.js +353 -0
  387. package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
  388. package/dist/integrations/pi/engine/tool-rendering.js +145 -0
  389. package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
  390. package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
  391. package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
  392. package/dist/integrations/pi/engine/transcript-projection.js +405 -0
  393. package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
  394. package/dist/integrations/pi/engine/usage-view.js +56 -0
  395. package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
  396. package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
  397. package/dist/integrations/pi/engine/workflow-contexts.d.ts +59 -0
  398. package/dist/integrations/pi/engine/workflow-contexts.js +316 -0
  399. package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
  400. package/dist/integrations/pi/engine/workflow-runner.js +509 -0
  401. package/dist/integrations/pi/engine/workflow-support.d.ts +33 -0
  402. package/dist/integrations/pi/engine/workflow-support.js +352 -0
  403. package/dist/integrations/pi/engine/workflows.d.ts +251 -0
  404. package/dist/integrations/pi/engine/workflows.js +63 -0
  405. package/dist/integrations/pi/startup-public.d.ts +2 -0
  406. package/dist/integrations/pi/startup-public.js +2223 -0
  407. package/dist/integrations/pi/startup-public.manifest.json +12502 -0
  408. package/dist/integrations/pi/tui-runtime/adapter.d.ts +56 -0
  409. package/dist/integrations/pi/tui-runtime/adapter.js +783 -0
  410. package/dist/integrations/pi/tui-runtime/contracts.d.ts +156 -0
  411. package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
  412. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +88 -0
  413. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +433 -0
  414. package/dist/integrations/pi/tui-runtime/index.d.ts +9 -0
  415. package/dist/integrations/pi/tui-runtime/index.js +5 -0
  416. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
  417. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
  418. package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +13 -0
  419. package/dist/integrations/pi/tui-runtime/mouse-report-input.js +57 -0
  420. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
  421. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +158 -0
  422. package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +4 -0
  423. package/dist/integrations/pi/tui-runtime/presentation-adapter.js +48 -0
  424. package/dist/native/darwin-arm64/manifest.json +4 -4
  425. package/dist/native/darwin-arm64/process-guardian +0 -0
  426. package/dist/native/linux-x64/manifest.json +3 -3
  427. package/dist/native/linux-x64/process-guardian +0 -0
  428. package/dist/native/win32-x64/manifest.json +3 -3
  429. package/dist/native/win32-x64/process-guardian.exe +0 -0
  430. package/dist/product-identity.d.ts +37 -0
  431. package/dist/product-identity.js +119 -0
  432. package/dist/product-identity.json +85 -0
  433. package/dist/runtime-payload-inventory.json +127147 -0
  434. package/dist/ui/apps/contracts.d.ts +64 -0
  435. package/dist/ui/apps/host.d.ts +42 -0
  436. package/dist/ui/apps/host.js +156 -0
  437. package/dist/ui/apps/index.d.ts +5 -0
  438. package/dist/ui/apps/index.js +3 -0
  439. package/dist/ui/apps/registry.d.ts +12 -0
  440. package/dist/ui/apps/registry.js +33 -0
  441. package/dist/ui/components/dialog-panel.js +49 -0
  442. package/dist/ui/components/frame.d.ts +22 -0
  443. package/dist/ui/components/frame.js +55 -0
  444. package/dist/ui/components/index.d.ts +47 -0
  445. package/dist/ui/components/index.js +25 -0
  446. package/dist/ui/components/line-input.d.ts +68 -0
  447. package/dist/ui/components/line-input.js +224 -0
  448. package/dist/ui/components/list-view.d.ts +60 -0
  449. package/dist/ui/components/list-view.js +82 -0
  450. package/dist/ui/components/mouse.d.ts +25 -0
  451. package/dist/ui/components/mouse.js +70 -0
  452. package/dist/ui/components/progress-status.d.ts +2 -0
  453. package/dist/ui/components/progress-status.js +4 -0
  454. package/dist/ui/components/prompt-input.d.ts +32 -0
  455. package/dist/ui/components/prompt-input.js +51 -0
  456. package/dist/ui/components/scrollbar.d.ts +88 -0
  457. package/dist/ui/components/scrollbar.js +137 -0
  458. package/dist/ui/components/selection-copy.d.ts +24 -0
  459. package/dist/ui/components/selection-copy.js +39 -0
  460. package/dist/ui/components/shortcuts.d.ts +58 -0
  461. package/dist/ui/components/shortcuts.js +82 -0
  462. package/dist/ui/components/spans.d.ts +28 -0
  463. package/dist/ui/components/spans.js +266 -0
  464. package/dist/ui/components/submitted-prompt.d.ts +23 -0
  465. package/dist/ui/components/submitted-prompt.js +50 -0
  466. package/dist/ui/components/surface.d.ts +20 -0
  467. package/dist/ui/components/surface.js +44 -0
  468. package/dist/ui/components/text-selection.d.ts +62 -0
  469. package/dist/ui/components/text-selection.js +210 -0
  470. package/dist/ui/components/text.d.ts +38 -0
  471. package/dist/ui/components/text.js +185 -0
  472. package/dist/ui/components/transcript-viewport.d.ts +173 -0
  473. package/dist/ui/components/transcript-viewport.js +753 -0
  474. package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
  475. package/dist/ui/components/visible-hyperlinks.js +97 -0
  476. package/dist/ui/settings/declarations.d.ts +141 -0
  477. package/dist/ui/settings/declarations.js +135 -0
  478. package/dist/ui/settings/index.d.ts +10 -0
  479. package/dist/ui/settings/index.js +5 -0
  480. package/dist/ui/settings/manager.d.ts +54 -0
  481. package/dist/ui/settings/manager.js +256 -0
  482. package/dist/ui/settings/migrations.d.ts +13 -0
  483. package/dist/ui/settings/migrations.js +74 -0
  484. package/dist/ui/settings/sections.d.ts +52 -0
  485. package/dist/ui/settings/sections.js +112 -0
  486. package/docs/architecture/boundaries.md +17 -13
  487. package/docs/architecture/code-documentation.md +77 -0
  488. package/docs/architecture/history-editor-provenance.md +100 -0
  489. package/docs/architecture/internal-naming.md +91 -0
  490. package/docs/architecture/process-guardian-provenance.md +3 -1
  491. package/docs/architecture/project-structure.md +69 -30
  492. package/docs/architecture/prompt-suggestions.md +68 -0
  493. package/docs/architecture/resource-and-data-policy.md +28 -2
  494. package/docs/architecture/response-copy-delivery.md +85 -0
  495. package/docs/architecture/terminal-host-proof-gate.md +1 -1
  496. package/docs/architecture/terminal-host-spike-evidence.md +1 -1
  497. package/docs/architecture/tool-image-presentation.md +62 -0
  498. package/docs/architecture/toolchain.md +32 -10
  499. package/docs/architecture/ui-reference-provenance.md +60 -6
  500. package/docs/ci-release-runbook.md +256 -79
  501. package/docs/features/launch-profiles.md +24 -17
  502. package/docs/features/modal-content-interaction.md +37 -0
  503. package/docs/features/prompt-history.md +149 -0
  504. package/docs/local-worktree-cleanup.md +212 -0
  505. package/docs/manual-code-streaming-cleanup.md +88 -0
  506. package/docs/manual-ghost-link-baseline.md +89 -0
  507. package/docs/manual-launch-instance-acceptance.md +12 -35
  508. package/docs/manual-owned-ui-checkpoint.md +79 -0
  509. package/docs/manual-pi-boundary-candidate.md +4 -5
  510. package/docs/manual-terminal-colour-check.md +4 -3
  511. package/docs/openspec-archive-automation.md +259 -0
  512. package/docs/repository-governance-live-acceptance.md +77 -0
  513. package/docs/validation.md +100 -0
  514. package/package.json +49 -34
  515. package/dist/src/cli/capabilities.d.ts +0 -15
  516. package/dist/src/cli/capabilities.js +0 -7
  517. package/dist/src/cli/dispatch.d.ts +0 -32
  518. package/dist/src/cli/dispatch.js +0 -142
  519. package/dist/src/cli/index.d.ts +0 -5
  520. package/dist/src/cli/index.js +0 -5
  521. package/dist/src/cli/packages.d.ts +0 -23
  522. package/dist/src/cli/packages.js +0 -84
  523. package/dist/src/cli/version-stats.d.ts +0 -16
  524. package/dist/src/cli/version-stats.js +0 -72
  525. package/dist/src/cli/version.d.ts +0 -2
  526. package/dist/src/cli/version.js +0 -23
  527. package/dist/src/composition/index.d.ts +0 -48
  528. package/dist/src/composition/index.js +0 -258
  529. package/dist/src/features/launch/development-launch.js +0 -28
  530. package/dist/src/features/launch/index.d.ts +0 -7
  531. package/dist/src/features/launch/index.js +0 -7
  532. package/dist/src/features/launch/intent.d.ts +0 -7
  533. package/dist/src/features/launch/intent.js +0 -4
  534. package/dist/src/features/launch/prepare-launch.d.ts +0 -13
  535. package/dist/src/features/launch/prepare-launch.js +0 -21
  536. package/dist/src/features/launch/profile-paths.d.ts +0 -15
  537. package/dist/src/features/launch/profile-paths.js +0 -31
  538. package/dist/src/features/launch/profiles.d.ts +0 -12
  539. package/dist/src/features/launch/profiles.js +0 -26
  540. package/dist/src/features/launch/runtime-selection.d.ts +0 -19
  541. package/dist/src/features/launch/runtime-selection.js +0 -13
  542. package/dist/src/features/owned-ui/customization.d.ts +0 -38
  543. package/dist/src/features/owned-ui/customization.js +0 -108
  544. package/dist/src/features/owned-ui/diagnostics.d.ts +0 -33
  545. package/dist/src/features/owned-ui/diagnostics.js +0 -94
  546. package/dist/src/features/owned-ui/index.d.ts +0 -4
  547. package/dist/src/features/owned-ui/index.js +0 -4
  548. package/dist/src/features/owned-ui/run.d.ts +0 -11
  549. package/dist/src/features/owned-ui/run.js +0 -15
  550. package/dist/src/features/owned-ui/settings-app.d.ts +0 -22
  551. package/dist/src/features/owned-ui/settings-app.js +0 -633
  552. package/dist/src/features/workspace/capabilities.d.ts +0 -31
  553. package/dist/src/features/workspace/capabilities.js +0 -75
  554. package/dist/src/features/workspace/index.d.ts +0 -6
  555. package/dist/src/features/workspace/index.js +0 -6
  556. package/dist/src/features/workspace/presentation.d.ts +0 -30
  557. package/dist/src/features/workspace/presentation.js +0 -70
  558. package/dist/src/features/workspace/reconciliation.d.ts +0 -15
  559. package/dist/src/features/workspace/reconciliation.js +0 -82
  560. package/dist/src/features/workspace/reducer.d.ts +0 -42
  561. package/dist/src/features/workspace/reducer.js +0 -213
  562. package/dist/src/features/workspace/router.d.ts +0 -31
  563. package/dist/src/features/workspace/router.js +0 -124
  564. package/dist/src/features/workspace/store.d.ts +0 -17
  565. package/dist/src/features/workspace/store.js +0 -54
  566. package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +0 -95
  567. package/dist/src/foundation/agent-engine-contracts/domain-validation.js +0 -89
  568. package/dist/src/foundation/agent-engine-contracts/domain.d.ts +0 -116
  569. package/dist/src/foundation/agent-engine-contracts/index.d.ts +0 -8
  570. package/dist/src/foundation/agent-engine-contracts/index.js +0 -8
  571. package/dist/src/foundation/agent-engine-contracts/package-ports.d.ts +0 -54
  572. package/dist/src/foundation/launch-guardian/index.d.ts +0 -1
  573. package/dist/src/foundation/launch-guardian/index.js +0 -1
  574. package/dist/src/foundation/launch-guardian/main.d.ts +0 -31
  575. package/dist/src/foundation/launch-guardian/main.js +0 -165
  576. package/dist/src/foundation/lifecycle/index.d.ts +0 -4
  577. package/dist/src/foundation/lifecycle/index.js +0 -4
  578. package/dist/src/foundation/lifecycle/model.d.ts +0 -64
  579. package/dist/src/foundation/lifecycle/model.js +0 -40
  580. package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
  581. package/dist/src/foundation/lifecycle/paths.js +0 -42
  582. package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -11
  583. package/dist/src/foundation/native-host-protocol/codec.js +0 -56
  584. package/dist/src/foundation/native-host-protocol/evidence.d.ts +0 -67
  585. package/dist/src/foundation/native-host-protocol/evidence.js +0 -141
  586. package/dist/src/foundation/native-host-protocol/index.d.ts +0 -4
  587. package/dist/src/foundation/native-host-protocol/index.js +0 -4
  588. package/dist/src/foundation/native-host-protocol/messages.d.ts +0 -56
  589. package/dist/src/foundation/native-host-protocol/messages.js +0 -149
  590. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -13
  591. package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -33
  592. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -302
  593. package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
  594. package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
  595. package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -241
  596. package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -11
  597. package/dist/src/foundation/owned-ui-contracts/validation.js +0 -395
  598. package/dist/src/foundation/owned-ui-settings/declarations.d.ts +0 -13
  599. package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
  600. package/dist/src/foundation/owned-ui-settings/index.d.ts +0 -6
  601. package/dist/src/foundation/owned-ui-settings/index.js +0 -6
  602. package/dist/src/foundation/owned-ui-settings/migrations.d.ts +0 -13
  603. package/dist/src/foundation/owned-ui-settings/migrations.js +0 -28
  604. package/dist/src/foundation/owned-ui-settings/sections.d.ts +0 -70
  605. package/dist/src/foundation/owned-ui-settings/sections.js +0 -93
  606. package/dist/src/foundation/owned-ui-settings/session.d.ts +0 -44
  607. package/dist/src/foundation/owned-ui-settings/session.js +0 -145
  608. package/dist/src/foundation/owned-ui-settings/store.d.ts +0 -28
  609. package/dist/src/foundation/owned-ui-settings/store.js +0 -90
  610. package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -4
  611. package/dist/src/foundation/pi-component-adapter/components.js +0 -64
  612. package/dist/src/foundation/pi-component-adapter/conformance.d.ts +0 -17
  613. package/dist/src/foundation/pi-component-adapter/conformance.js +0 -69
  614. package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -13
  615. package/dist/src/foundation/pi-component-adapter/index.js +0 -13
  616. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +0 -165
  617. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +0 -166
  618. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -6
  619. package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -6
  620. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
  621. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -35
  622. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -279
  623. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -7
  624. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +0 -189
  625. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
  626. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -429
  627. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -113
  628. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -235
  629. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
  630. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -87
  631. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -422
  632. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -296
  633. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -10
  634. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -17
  635. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -51
  636. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -22
  637. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -142
  638. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -4
  639. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
  640. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -17
  641. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -81
  642. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -24
  643. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -105
  644. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -2
  645. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -18
  646. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -77
  647. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
  648. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
  649. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -55
  650. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -342
  651. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +0 -10
  652. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +0 -120
  653. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -159
  654. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -95
  655. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -889
  656. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +0 -19
  657. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +0 -44
  658. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -30
  659. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -59
  660. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -98
  661. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1272
  662. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -33
  663. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -76
  664. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -39
  665. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -15
  666. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -25
  667. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +0 -117
  668. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -61
  669. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +0 -326
  670. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +0 -164
  671. package/dist/src/foundation/pi-engine-adapter/adapter.js +0 -2367
  672. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +0 -37
  673. package/dist/src/foundation/pi-engine-adapter/conformance.js +0 -130
  674. package/dist/src/foundation/pi-engine-adapter/index.d.ts +0 -10
  675. package/dist/src/foundation/pi-engine-adapter/index.js +0 -10
  676. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +0 -30
  677. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +0 -61
  678. package/dist/src/foundation/pi-engine-adapter/package-integration.d.ts +0 -13
  679. package/dist/src/foundation/pi-engine-adapter/package-integration.js +0 -112
  680. package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +0 -374
  681. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +0 -31
  682. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +0 -80
  683. package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +0 -35
  684. package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +0 -67
  685. package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +0 -43
  686. package/dist/src/foundation/pi-engine-adapter/session-integration.js +0 -97
  687. package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
  688. package/dist/src/foundation/pi-engine-adapter/settings-integration.js +0 -233
  689. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +0 -20
  690. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +0 -48
  691. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -173
  692. package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -60
  693. package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
  694. package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
  695. package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
  696. package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
  697. package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
  698. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -39
  699. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -493
  700. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +0 -18
  701. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +0 -145
  702. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -120
  703. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
  704. package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
  705. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +0 -4
  706. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +0 -48
  707. package/dist/src/foundation/presentation-contracts/index.d.ts +0 -96
  708. package/dist/src/foundation/process-containment/index.d.ts +0 -5
  709. package/dist/src/foundation/process-containment/index.js +0 -5
  710. package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +0 -6
  711. package/dist/src/foundation/process-containment/linux-process-inspector.js +0 -26
  712. package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +0 -16
  713. package/dist/src/foundation/process-containment/native-guardian-containment.js +0 -139
  714. package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +0 -17
  715. package/dist/src/foundation/process-containment/windows-process-inspector.js +0 -53
  716. package/dist/src/foundation/protocol/client.d.ts +0 -17
  717. package/dist/src/foundation/protocol/client.js +0 -129
  718. package/dist/src/foundation/protocol/index.d.ts +0 -2
  719. package/dist/src/foundation/protocol/index.js +0 -2
  720. package/dist/src/foundation/protocol/messages.d.ts +0 -89
  721. package/dist/src/foundation/protocol/messages.js +0 -99
  722. package/dist/src/foundation/release/bootstrap.d.ts +0 -29
  723. package/dist/src/foundation/release/bootstrap.js +0 -335
  724. package/dist/src/foundation/release/cohort-state.d.ts +0 -70
  725. package/dist/src/foundation/release/cohort-state.js +0 -202
  726. package/dist/src/foundation/release/index.d.ts +0 -10
  727. package/dist/src/foundation/release/index.js +0 -10
  728. package/dist/src/foundation/release/release-gc.d.ts +0 -5
  729. package/dist/src/foundation/release/release-gc.js +0 -16
  730. package/dist/src/foundation/release/release-store.d.ts +0 -43
  731. package/dist/src/foundation/release/release-store.js +0 -175
  732. package/dist/src/foundation/release/release.d.ts +0 -38
  733. package/dist/src/foundation/release/release.js +0 -204
  734. package/dist/src/foundation/release/update-transaction.d.ts +0 -31
  735. package/dist/src/foundation/release/update-transaction.js +0 -89
  736. package/dist/src/foundation/release/update.d.ts +0 -82
  737. package/dist/src/foundation/release/update.js +0 -529
  738. package/dist/src/foundation/storage/control-store.d.ts +0 -61
  739. package/dist/src/foundation/storage/control-store.js +0 -530
  740. package/dist/src/foundation/storage/index.d.ts +0 -1
  741. package/dist/src/foundation/storage/index.js +0 -1
  742. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -46
  743. package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -118
  744. package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -52
  745. package/dist/src/foundation/structured-agent-runtime/commands.js +0 -164
  746. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +0 -41
  747. package/dist/src/foundation/structured-agent-runtime/handshake.js +0 -151
  748. package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -5
  749. package/dist/src/foundation/structured-agent-runtime/index.js +0 -5
  750. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -37
  751. package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -129
  752. package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -56
  753. package/dist/src/foundation/structured-agent-runtime/state.js +0 -118
  754. package/dist/src/foundation/supervision/index.d.ts +0 -3
  755. package/dist/src/foundation/supervision/index.js +0 -3
  756. package/dist/src/foundation/supervision/main.d.ts +0 -1
  757. package/dist/src/foundation/supervision/main.js +0 -41
  758. package/dist/src/foundation/supervision/paths.d.ts +0 -1
  759. package/dist/src/foundation/supervision/paths.js +0 -1
  760. package/dist/src/foundation/supervision/server.d.ts +0 -22
  761. package/dist/src/foundation/supervision/server.js +0 -451
  762. package/dist/src/foundation/ui-apps/contracts.d.ts +0 -42
  763. package/dist/src/foundation/ui-apps/host.d.ts +0 -42
  764. package/dist/src/foundation/ui-apps/host.js +0 -152
  765. package/dist/src/foundation/ui-apps/index.d.ts +0 -3
  766. package/dist/src/foundation/ui-apps/index.js +0 -3
  767. package/dist/src/foundation/ui-apps/registry.d.ts +0 -11
  768. package/dist/src/foundation/ui-apps/registry.js +0 -32
  769. package/dist/src/foundation/ui-components/dialog-panel.js +0 -47
  770. package/dist/src/foundation/ui-components/frame.d.ts +0 -21
  771. package/dist/src/foundation/ui-components/frame.js +0 -54
  772. package/dist/src/foundation/ui-components/index.d.ts +0 -18
  773. package/dist/src/foundation/ui-components/index.js +0 -18
  774. package/dist/src/foundation/ui-components/line-input.d.ts +0 -74
  775. package/dist/src/foundation/ui-components/line-input.js +0 -245
  776. package/dist/src/foundation/ui-components/list-view.d.ts +0 -66
  777. package/dist/src/foundation/ui-components/list-view.js +0 -76
  778. package/dist/src/foundation/ui-components/mouse.d.ts +0 -15
  779. package/dist/src/foundation/ui-components/mouse.js +0 -46
  780. package/dist/src/foundation/ui-components/scrollbar.d.ts +0 -62
  781. package/dist/src/foundation/ui-components/scrollbar.js +0 -102
  782. package/dist/src/foundation/ui-components/shortcuts.d.ts +0 -57
  783. package/dist/src/foundation/ui-components/shortcuts.js +0 -81
  784. package/dist/src/foundation/ui-components/spans.d.ts +0 -7
  785. package/dist/src/foundation/ui-components/spans.js +0 -59
  786. package/dist/src/foundation/ui-components/surface.d.ts +0 -20
  787. package/dist/src/foundation/ui-components/surface.js +0 -38
  788. package/dist/src/foundation/ui-components/text.d.ts +0 -24
  789. package/dist/src/foundation/ui-components/text.js +0 -123
  790. package/dist/src/foundation/workspace-contracts/index.d.ts +0 -2
  791. package/dist/src/foundation/workspace-contracts/index.js +0 -2
  792. package/dist/src/foundation/workspace-contracts/model.d.ts +0 -248
  793. package/dist/src/foundation/workspace-contracts/model.js +0 -2
  794. package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -13
  795. package/dist/src/foundation/workspace-contracts/validation.js +0 -335
  796. package/dist/src/product-identity.d.ts +0 -37
  797. package/dist/src/product-identity.js +0 -150
  798. package/dist/src/product-identity.json +0 -99
  799. package/docs/manual-transparent-checkpoint.md +0 -53
  800. /package/dist/{src/foundation/agent-engine-contracts/domain.js → app/session-shell/paste-helper.d.ts} +0 -0
  801. /package/dist/{src/foundation/agent-engine-contracts/ports.js → app/session-shell/paste-text-worker.d.ts} +0 -0
  802. /package/dist/{src/foundation/lifecycle/commands.js → app/session-shell/paste-types.js} +0 -0
  803. /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
  804. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
  805. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
  806. /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → contracts/agent-engine/domain.js} +0 -0
  807. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
  808. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
  809. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
  810. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
  811. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
  812. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
  813. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
  814. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
  815. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
  816. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
  817. /package/dist/{src/foundation/presentation-contracts → contracts/presentation}/index.js +0 -0
  818. /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
  819. /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
  820. /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
  821. /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
  822. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
  823. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
  824. /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
  825. /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
  826. /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
  827. /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
  828. /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
  829. /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
  830. /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
  831. /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
  832. /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
  833. /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
  834. /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
  835. /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
  836. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-editor-autocomplete.d.ts +0 -0
  837. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.d.ts +0 -0
  838. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.js +0 -0
  839. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
  840. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
  841. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
  842. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
  843. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
  844. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
  845. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
  846. /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
  847. /package/dist/{src/foundation/ui-components → ui/components}/dialog-panel.d.ts +0 -0
  848. /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
  849. /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
  850. /package/dist/{src/foundation/ui-components → ui/components}/list-block.d.ts +0 -0
  851. /package/dist/{src/foundation/ui-components → ui/components}/list-block.js +0 -0
  852. /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
  853. /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
  854. /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
  855. /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
  856. /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
  857. /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
  858. /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
  859. /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
  860. /package/dist/{src/foundation/ui-components → ui/components}/theme.d.ts +0 -0
  861. /package/dist/{src/foundation/ui-components → ui/components}/theme.js +0 -0
  862. /package/dist/{src/foundation/ui-components → ui/components}/value-menu.d.ts +0 -0
  863. /package/dist/{src/foundation/ui-components → ui/components}/value-menu.js +0 -0
  864. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
  865. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
@@ -0,0 +1,242 @@
1
+ import { ArminComponent, BorderedLoader, DynamicBorder, ExtensionSelectorComponent, getSelectListTheme, LoginDialogComponent, ModelSelectorComponent, OAuthSelectorComponent, SettingsSelectorComponent, ShowImagesSelectorComponent, ThemeSelectorComponent, ThinkingSelectorComponent, UserMessageSelectorComponent, } from "../startup-public.js";
2
+ import { DaxnutsComponent, } from "./upstream/components/daxnuts.js";
3
+ import { EarendilAnnouncementComponent, } from "./upstream/components/earendil-announcement.js";
4
+ import { SessionSelectorComponent, } from "./upstream/components/session-selector.js";
5
+ import { TreeSelectorComponent, } from "./upstream/components/tree-selector.js";
6
+ import { Box, Container, SelectList, Spacer, Text, } from "@earendil-works/pi-tui";
7
+ import { ScopedModelsSelectorComponent, } from "./upstream/components/scoped-models-selector.js";
8
+ import { TrustSelectorComponent, } from "./upstream/components/trust-selector.js";
9
+ import { PINNED_PI_LAYOUT, piTheme, } from "./theme.js";
10
+ import { componentFromPort, componentPort, createTuiFacade, ensureTheme, isRecord, } from "./shell-shared-facade.js";
11
+ export function createPiShellSelector(options) {
12
+ ensureTheme();
13
+ const items = options.options.map(toSelectItem);
14
+ const list = new SelectList(items, options.maxVisible ?? Math.min(PINNED_PI_LAYOUT.selectorMaxVisible, Math.max(1, items.length)), getSelectListTheme());
15
+ if (options.onSelect !== undefined)
16
+ list.onSelect = item => options.onSelect?.(item.value);
17
+ if (options.onCancel !== undefined)
18
+ list.onCancel = options.onCancel;
19
+ if (!options.title)
20
+ return componentPort(list);
21
+ const container = new Container();
22
+ container.addChild(new Text(piTheme().fg("accent", piTheme().bold(options.title)), PINNED_PI_LAYOUT.contentPaddingX, 0));
23
+ container.addChild(list);
24
+ return componentPort(container, data => list.handleInput(data));
25
+ }
26
+ export function createPiShellSettingsSelector(options) {
27
+ ensureTheme();
28
+ // Protocol: one-argument callbacks pass the value; the per-model callbacks carry (provider, modelId[, level]) as a tuple.
29
+ const change = (name) => (...values) => options.onChange(name, values.length > 1 ? values : values[0]);
30
+ const callbacks = {
31
+ onAutoCompactChange: change("onAutoCompactChange"),
32
+ onShowImagesChange: change("onShowImagesChange"),
33
+ onImageWidthCellsChange: change("onImageWidthCellsChange"),
34
+ onAutoResizeImagesChange: change("onAutoResizeImagesChange"),
35
+ onBlockImagesChange: change("onBlockImagesChange"),
36
+ onEnableSkillCommandsChange: change("onEnableSkillCommandsChange"),
37
+ onSteeringModeChange: change("onSteeringModeChange"),
38
+ onFollowUpModeChange: change("onFollowUpModeChange"),
39
+ onTransportChange: change("onTransportChange"),
40
+ onHttpIdleTimeoutMsChange: change("onHttpIdleTimeoutMsChange"),
41
+ onModelThinkingLevelChange: change("onModelThinkingLevelChange"),
42
+ onModelThinkingLevelRemove: change("onModelThinkingLevelRemove"),
43
+ onThemeChange: change("onThemeChange"),
44
+ onThemePreview: change("onThemePreview"),
45
+ onHideThinkingBlockChange: change("onHideThinkingBlockChange"),
46
+ onMermaidRenderingModeChange: change("onMermaidRenderingModeChange"),
47
+ onShowCacheMissNoticesChange: change("onShowCacheMissNoticesChange"),
48
+ onCollapseChangelogChange: change("onCollapseChangelogChange"),
49
+ onEnableInstallTelemetryChange: change("onEnableInstallTelemetryChange"),
50
+ onDoubleEscapeActionChange: change("onDoubleEscapeActionChange"),
51
+ onTreeFilterModeChange: change("onTreeFilterModeChange"),
52
+ onShowHardwareCursorChange: change("onShowHardwareCursorChange"),
53
+ onEditorPaddingXChange: change("onEditorPaddingXChange"),
54
+ onOutputPadChange: change("onOutputPadChange"),
55
+ onAutocompleteMaxVisibleChange: change("onAutocompleteMaxVisibleChange"),
56
+ onQuietStartupChange: change("onQuietStartupChange"),
57
+ onDefaultProjectTrustChange: change("onDefaultProjectTrustChange"),
58
+ onClearOnShrinkChange: change("onClearOnShrinkChange"),
59
+ onShowTerminalProgressChange: change("onShowTerminalProgressChange"),
60
+ onTuiModeChange: change("onTuiModeChange"),
61
+ onFullscreenExitOutputChange: change("onFullscreenExitOutputChange"),
62
+ onFullscreenScrollbarChange: change("onFullscreenScrollbarChange"),
63
+ onFullscreenCopyOnSelectChange: change("onFullscreenCopyOnSelectChange"),
64
+ onWarningsChange: change("onWarningsChange"),
65
+ onCancel: options.onCancel,
66
+ };
67
+ const selector = new SettingsSelectorComponent(options.config, callbacks);
68
+ const settingsList = selector.getSettingsList();
69
+ return componentPort(selector, data => settingsList.handleInput(data));
70
+ }
71
+ export function createPiShellModelSelector(options) {
72
+ ensureTheme();
73
+ const selector = new ModelSelectorComponent(createTuiFacade(options.runtime), options.currentModel, options.modelRuntime, options.scopedModels, options.onSelect, options.onCancel, options.initialSearchInput, options.onSelectAsDefault, options.defaultModel);
74
+ return componentPort(selector);
75
+ }
76
+ function toPiScopedModel(model) {
77
+ const candidate = { provider: model.provider, id: model.id, name: model.name };
78
+ if (!isPiScopedModel(candidate))
79
+ throw new TypeError("Pi scoped-model façade rejected malformed model metadata");
80
+ return candidate;
81
+ }
82
+ function isPiScopedModel(value) {
83
+ return isRecord(value) && typeof value.provider === "string" && typeof value.id === "string" && typeof value.name === "string";
84
+ }
85
+ export function createPiShellScopedModelsSelector(options) {
86
+ ensureTheme();
87
+ const selector = new ScopedModelsSelectorComponent({
88
+ allModels: options.models.map(toPiScopedModel),
89
+ enabledModelIds: options.enabledModelIds === null ? null : [...options.enabledModelIds],
90
+ ...(options.refreshStatus === undefined ? {} : { refreshStatus: options.refreshStatus }),
91
+ }, {
92
+ onChange: ids => options.onChange(ids),
93
+ onPersist: ids => options.onPersist(ids),
94
+ onCancel: options.onCancel,
95
+ });
96
+ return {
97
+ ...componentPort(selector),
98
+ updateModels(models, enabledModelIds) {
99
+ selector.updateModels(models.map(toPiScopedModel), enabledModelIds === undefined
100
+ ? undefined
101
+ : enabledModelIds === null ? null : [...enabledModelIds]);
102
+ },
103
+ setRefreshStatus: (message, kind) => selector.setRefreshStatus(message, kind),
104
+ };
105
+ }
106
+ export function createPiShellTrustSelector(options) {
107
+ ensureTheme();
108
+ return componentPort(new TrustSelectorComponent(options));
109
+ }
110
+ export function createPiShellSessionSelector(options) {
111
+ ensureTheme();
112
+ const selector = new SessionSelectorComponent(options.currentSessionsLoader, options.allSessionsLoader, options.onSelect, options.onCancel, options.onExit, options.requestRender, { renameSession: options.renameSession, showRenameHint: true }, options.currentSessionFilePath);
113
+ return componentPort(selector);
114
+ }
115
+ export function createPiShellTreeSelector(options) {
116
+ ensureTheme();
117
+ const selector = new TreeSelectorComponent([...options.tree], options.currentLeafId, options.terminalHeight, options.onSelect, options.onCancel, options.onLabelChange, options.initialSelectedId, options.initialFilterMode);
118
+ if (options.onCopy)
119
+ selector.onCopy = options.onCopy;
120
+ return componentPort(selector);
121
+ }
122
+ export function createPiShellUserMessageSelector(messages, onSelect, onCancel, initialSelectedId) {
123
+ ensureTheme();
124
+ const selector = new UserMessageSelectorComponent(messages.map(message => ({ id: message.id, text: message.label })), onSelect, onCancel, initialSelectedId);
125
+ const list = selector.getMessageList();
126
+ return componentPort(selector, data => list.handleInput(data));
127
+ }
128
+ export function createPiShellLoginDialog(runtime, providerId, onComplete, providerName, title) {
129
+ ensureTheme();
130
+ const dialog = new LoginDialogComponent(createTuiFacade(runtime), providerId, onComplete, providerName, title);
131
+ return {
132
+ ...componentPort(dialog),
133
+ showAuth: (url, instructions) => dialog.showAuth(url, instructions),
134
+ showDeviceCode: info => dialog.showDeviceCode(info),
135
+ showManualInput: message => dialog.showManualInput(message),
136
+ showPrompt: (message, placeholder) => dialog.showPrompt(message, placeholder),
137
+ showDetails: lines => dialog.showDetails([...lines]),
138
+ showInfo: (message, links = [], showCloseHint = false) => dialog.showInfo(message, [...links], showCloseHint),
139
+ showWaiting: message => dialog.showWaiting(message),
140
+ showProgress: message => dialog.showProgress(message),
141
+ };
142
+ }
143
+ export function createPiShellArmin(runtime) {
144
+ ensureTheme();
145
+ return componentPort(new ArminComponent(createTuiFacade(runtime)));
146
+ }
147
+ export function createPiShellDaxnuts(runtime) {
148
+ ensureTheme();
149
+ return componentPort(new DaxnutsComponent(createTuiFacade(runtime)));
150
+ }
151
+ export function createPiShellEarendilAnnouncement() {
152
+ ensureTheme();
153
+ return componentPort(new EarendilAnnouncementComponent());
154
+ }
155
+ export function createPiShellOperationLoader(runtime, message) {
156
+ ensureTheme();
157
+ const loader = new BorderedLoader(createTuiFacade(runtime), piTheme(), message, { cancellable: true });
158
+ return { ...componentPort(loader), signal: loader.signal };
159
+ }
160
+ export function createPiShellReloadBox() {
161
+ ensureTheme();
162
+ const container = new Container();
163
+ const borderColor = (text) => piTheme().fg("border", text);
164
+ container.addChild(new DynamicBorder(borderColor));
165
+ container.addChild(new Spacer(1));
166
+ container.addChild(new Text(piTheme().fg("muted", "Reloading keybindings, extensions, skills, prompts, themes, and context files..."), 1, 0));
167
+ container.addChild(new Spacer(1));
168
+ container.addChild(new DynamicBorder(borderColor));
169
+ return componentPort(container);
170
+ }
171
+ export function createPiShellAuthProviderSelector(mode, providers, onSelect, onCancel, initialSearchInput) {
172
+ ensureTheme();
173
+ const selector = new OAuthSelectorComponent(mode, providers.map(provider => ({
174
+ id: provider.providerId,
175
+ name: provider.label,
176
+ authType: provider.authType,
177
+ ...(provider.status === undefined ? {} : { status: provider.status }),
178
+ })), (providerId, authType) => {
179
+ const selected = providers.find(provider => provider.providerId === providerId && provider.authType === authType);
180
+ if (selected)
181
+ onSelect(selected.id);
182
+ }, onCancel, initialSearchInput);
183
+ return componentPort(selector);
184
+ }
185
+ export function createPiShellExtensionSelector(title, options, onSelect, onCancel) {
186
+ ensureTheme();
187
+ return componentPort(new ExtensionSelectorComponent(title, [...options], onSelect, onCancel));
188
+ }
189
+ export function createPiShellThinkingSelector(currentLevel, availableLevels, onSelect, onCancel, onSelectAsDefault, defaultLevel) {
190
+ ensureTheme();
191
+ const selector = new ThinkingSelectorComponent(currentLevel, [...availableLevels], onSelect, onCancel, onSelectAsDefault, defaultLevel);
192
+ const list = selector.getSelectList();
193
+ return componentPort(selector, data => list.handleInput(data));
194
+ }
195
+ export function createPiShellThemeSelector(currentTheme, onSelect, onCancel, onPreview) {
196
+ ensureTheme();
197
+ const selector = new ThemeSelectorComponent(currentTheme, onSelect, onCancel, onPreview);
198
+ const list = selector.getSelectList();
199
+ return componentPort(selector, data => list.handleInput(data));
200
+ }
201
+ export function createPiShellShowImagesSelector(currentValue, onSelect, onCancel) {
202
+ ensureTheme();
203
+ const selector = new ShowImagesSelectorComponent(currentValue, onSelect, onCancel);
204
+ const list = selector.getSelectList();
205
+ return componentPort(selector, data => list.handleInput(data));
206
+ }
207
+ export function createPiShellDialog(dialog, handlers = {}) {
208
+ ensureTheme();
209
+ const selector = createPiShellSelector({
210
+ title: dialog.title,
211
+ options: dialogOptions(dialog),
212
+ maxVisible: 8,
213
+ ...(handlers.onSelect === undefined ? {} : { onSelect: handlers.onSelect }),
214
+ ...(handlers.onCancel === undefined ? {} : { onCancel: handlers.onCancel }),
215
+ });
216
+ const box = new Box(1, 1);
217
+ box.addChild(componentFromPort(selector));
218
+ return componentPort(box, data => selector.handleInput?.(data));
219
+ }
220
+ function toSelectItem(option) {
221
+ return {
222
+ value: option.id,
223
+ label: option.label,
224
+ ...(option.description === undefined ? {} : { description: option.description }),
225
+ };
226
+ }
227
+ function dialogOptions(dialog) {
228
+ if (isRecord(dialog.payload) && Array.isArray(dialog.payload.options)) {
229
+ const values = dialog.payload.options.filter(isRecord).flatMap(option => {
230
+ if (typeof option.id !== "string" || typeof option.label !== "string")
231
+ return [];
232
+ return [{
233
+ id: option.id,
234
+ label: option.label,
235
+ ...(typeof option.description === "string" ? { description: option.description } : {}),
236
+ }];
237
+ });
238
+ if (values.length > 0)
239
+ return values;
240
+ }
241
+ return [{ id: "accept", label: "Accept" }, { id: "cancel", label: "Cancel" }];
242
+ }
@@ -0,0 +1,217 @@
1
+ import { visibleWidth, type AutocompleteProvider, type Component, type KeybindingsConfig, type TUI } from "@earendil-works/pi-tui";
2
+ import type { OwnedUiImageAttachment, OwnedUiSessionViewModel, OwnedUiThinkingLevel, OwnedUiTranscriptBlock, SuggestionDecision } from "../../../contracts/owned-ui/index.js";
3
+ import type { HistoryEditorConstructor } from "./history-editor-loader.js";
4
+ import type { PiShellPromptInputPresentation } from "./prompt-input-port.js";
5
+ import type { EditorRecallPort } from "./editor-interaction.js";
6
+ import type { PresentationComponentPort } from "../../../contracts/presentation/index.js";
7
+ /** Terminal-cell width authority used by Pi-rendered component rows. */
8
+ export declare const piShellVisibleWidth: typeof visibleWidth;
9
+ export declare const piShellTruncateToWidth: (text: string, width: number) => string;
10
+ /** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
11
+ export declare const piShellHyperlink: (url: string, text?: string) => string;
12
+ export interface PiShellComponentPort extends PresentationComponentPort {
13
+ }
14
+ export type PiShellClipboardContent = {
15
+ readonly kind: "text";
16
+ readonly text: string;
17
+ } | {
18
+ readonly kind: "image";
19
+ readonly data: string;
20
+ readonly mimeType: string;
21
+ };
22
+ export interface PiShellEditorTextRange {
23
+ readonly start: number;
24
+ readonly end: number;
25
+ }
26
+ export interface PiShellEditorPointerEvent {
27
+ readonly kind: "press" | "motion" | "release";
28
+ readonly button: number;
29
+ readonly column: number;
30
+ /** One-based row relative to the top border of the editor body, excluding its menu. */
31
+ readonly row: number;
32
+ }
33
+ export interface PiShellEditorBodyGeometry {
34
+ /** Zero-based body offset in the most recently rendered component rows. */
35
+ readonly rowOffset: number;
36
+ /** Border-inclusive body height, excluding autocomplete. */
37
+ readonly rowCount: number;
38
+ }
39
+ export interface PiShellEditorPort extends PiShellComponentPort {
40
+ /** Present only for the owned above-prompt autocomplete presentation. */
41
+ bodyGeometry?(): PiShellEditorBodyGeometry;
42
+ readonly recall?: EditorRecallPort;
43
+ readonly historyReplacement?: typeof import("../../../contracts/owned-ui/index.js").PROMPT_HISTORY_EDITOR_REPLACEMENT;
44
+ /** Restores this editor's profile after another Pi component changed the global manager. */
45
+ activateKeybindings(): void;
46
+ keybindingConfig(): KeybindingsConfig;
47
+ reloadKeybindings(): void;
48
+ /** Uses Pi's terminal decoder rather than assuming one terminal escape spelling. */
49
+ matchesTerminalKey(data: string, key: "home" | "end" | "ctrl+home" | "ctrl+end" | "alt+home" | "ctrl+v"): boolean;
50
+ getText(): string;
51
+ setText(text: string): void;
52
+ insertText(text: string): void;
53
+ addToHistory(text: string): void;
54
+ setSubmitEnabled(enabled: boolean): void;
55
+ setSubmitHandler(handler: (text: string) => void): void;
56
+ setInterruptHandler(handler: () => void): void;
57
+ setAutocompleteCommands(commands: readonly PiShellAutocompleteCommand[]): void;
58
+ setPaddingX(padding: number): void;
59
+ setAutocompleteMaxVisible(maxVisible: number): void;
60
+ addAutocompleteProvider(factory: unknown): void;
61
+ setThinkingLevel(level: OwnedUiThinkingLevel): void;
62
+ setPromptSuggestion(text: string | null): void;
63
+ canPresentPromptSuggestion(): boolean;
64
+ promptSuggestionBlockReason?(): SuggestionDecision;
65
+ hasSelection(): boolean;
66
+ ownsPointer(): boolean;
67
+ handlePointer(event: PiShellEditorPointerEvent): boolean;
68
+ pasteClipboard(): boolean;
69
+ cancelPendingPastes?(): void;
70
+ }
71
+ export interface PiShellAutocompleteCommand {
72
+ readonly name: string;
73
+ readonly description?: string;
74
+ readonly argumentHint?: string;
75
+ readonly argumentOptions?: readonly PiShellSelectorOption[];
76
+ }
77
+ export interface PiShellViewComponentPort extends PiShellComponentPort {
78
+ update(view: OwnedUiSessionViewModel): void;
79
+ }
80
+ export type PiShellStatusPlacement = "live" | "dock" | "hidden";
81
+ export interface PiShellStatusPort extends PiShellViewComponentPort {
82
+ setWorkingOverride(message: string | undefined): void;
83
+ setOutputPad(padding: 0 | 1): void;
84
+ /** Bare A1 shows engine-measured progress beside the working word; the pinned route keeps the bare word. */
85
+ setProgressPresentation(presentation: "pinned" | "custom-viewport"): void;
86
+ /** Semantic row placement; callers must not inspect rendered text. */
87
+ placement(): PiShellStatusPlacement;
88
+ renderDock(width: number): readonly string[];
89
+ renderLive(width: number): readonly string[];
90
+ }
91
+ export interface PiShellQueuedInputPort extends PiShellComponentPort {
92
+ update(submissions: readonly string[]): void;
93
+ }
94
+ export interface PiShellHeaderPort extends PiShellComponentPort {
95
+ readonly expanded: boolean;
96
+ setExpanded(expanded: boolean): void;
97
+ }
98
+ export type PiShellResourceSection = "Context" | "Skills" | "Prompts" | "Extensions" | "Themes";
99
+ export interface PiShellResourceEntry {
100
+ readonly section: PiShellResourceSection;
101
+ readonly label: string;
102
+ readonly sourcePath: string | null;
103
+ readonly diagnostic?: string | null;
104
+ }
105
+ export interface PiShellLoadedResourcesPort extends PiShellComponentPort {
106
+ setExpanded(expanded: boolean): void;
107
+ }
108
+ export interface PiShellImageAssetResolver {
109
+ resolve(assetId: string): OwnedUiImageAttachment | null;
110
+ }
111
+ export interface PiShellExtensionRendererResolver {
112
+ getMessageRenderer(customType: string): unknown;
113
+ getToolDefinition(toolName: string): unknown;
114
+ getShortcuts?(bindings: KeybindingsConfig): readonly {
115
+ readonly key: string;
116
+ readonly description: string;
117
+ }[];
118
+ }
119
+ export interface PiShellTranscriptComponentPort extends PiShellComponentPort {
120
+ readonly id: string;
121
+ readonly revision: number;
122
+ readonly presentationRevision?: number;
123
+ update(block: OwnedUiTranscriptBlock): void;
124
+ setExpanded(expanded: boolean): void;
125
+ setOutputPad(padding: 0 | 1): void;
126
+ setHideThinkingBlock(hidden: boolean): void;
127
+ setMermaidRenderingMode(mode: "off" | "final" | "streaming"): void;
128
+ setImagePresentation(showImages: boolean, imageWidthCells: number): void;
129
+ }
130
+ export interface PiShellStartupNotice {
131
+ readonly kind: "info" | "warning" | "error";
132
+ readonly message: string;
133
+ }
134
+ export interface PiShellHeaderOptions {
135
+ readonly getKeybindings?: () => KeybindingsConfig;
136
+ readonly quiet?: boolean;
137
+ readonly expanded?: boolean;
138
+ readonly notices?: readonly PiShellStartupNotice[];
139
+ readonly resources?: readonly PiShellResourceEntry[];
140
+ }
141
+ /** An owned paste reserves its edit immediately and acknowledges completion only after insertion. */
142
+ export interface PiShellPasteReservation {
143
+ readonly marker: string;
144
+ readonly result: Promise<string>;
145
+ complete?(): void;
146
+ isCurrent?(): boolean;
147
+ }
148
+ export interface PiShellEditorOptions {
149
+ readonly persistentHistory?: boolean;
150
+ readonly historyEditor?: HistoryEditorConstructor;
151
+ /** Bare A1 adds ergonomic aliases while comparison profiles retain Pi defaults. */
152
+ readonly keybindingProfile?: "pi" | "a1";
153
+ readonly getColumns: () => number;
154
+ readonly getRows: () => number;
155
+ readonly requestRender: () => void;
156
+ readonly onSubmit: (text: string) => void;
157
+ readonly onChange?: (text: string) => void;
158
+ readonly onInterrupt?: () => void;
159
+ readonly onClear?: () => void;
160
+ readonly onExit?: () => void;
161
+ readonly onSuspend?: () => void;
162
+ readonly onExternalEditor?: () => void;
163
+ readonly onPasteImage?: () => void;
164
+ readonly onExtensionShortcut?: (data: string) => boolean;
165
+ readonly onModelSelect?: () => void;
166
+ readonly onModelCycle?: ((direction: "forward" | "backward") => void) | undefined;
167
+ readonly onThinkingCycle?: (() => void) | undefined;
168
+ readonly onThinkingToggle?: (() => void) | undefined;
169
+ readonly onToolsExpand?: (() => void) | undefined;
170
+ readonly onMessageCopy?: (() => void) | undefined;
171
+ readonly onFollowUp?: (() => void) | undefined;
172
+ readonly onDequeue?: (() => void) | undefined;
173
+ readonly onPromptSuggestionAccepted?: (text: string) => void;
174
+ readonly onCopyText?: (text: string) => void;
175
+ readonly readClipboardContent?: (signal?: AbortSignal) => Promise<PiShellClipboardContent | null>;
176
+ readonly beginClipboardPaste?: () => PiShellPasteReservation;
177
+ readonly beginTextPaste?: (text: string) => PiShellPasteReservation;
178
+ readonly deferTextPaste?: (text: string) => boolean;
179
+ readonly onPasteRejected?: (error: unknown) => void;
180
+ readonly onPasteInput?: (bytes: number, phase: "framing" | "inserting" | "settled") => void;
181
+ readonly editorHiddenRanges?: (line: string) => readonly PiShellEditorTextRange[];
182
+ readonly transformPastedContent?: (content: PiShellClipboardContent) => string;
183
+ readonly editorAtomicRanges?: (line: string) => readonly PiShellEditorTextRange[];
184
+ readonly expandCopiedEditorText?: (text: string) => string;
185
+ readonly paintEditorSelection?: (line: string, from: number, to: number, atomic: boolean) => string;
186
+ /** Row indices restart at zero for each complete owned editor decoration pass. */
187
+ readonly decorateEditorRow?: (row: string, width: number, rowIndex: number) => string;
188
+ readonly cwd?: string;
189
+ readonly agentDir?: string;
190
+ readonly autocompleteCommands?: readonly PiShellAutocompleteCommand[];
191
+ readonly promptPresentation?: {
192
+ readonly input: PiShellPromptInputPresentation;
193
+ readonly styleSuggestion: (text: string) => string;
194
+ readonly styleSuggestionCaret: (text: string) => string;
195
+ };
196
+ }
197
+ export interface PiShellSelectorOption {
198
+ readonly id: string;
199
+ readonly label: string;
200
+ readonly description?: string;
201
+ }
202
+ export interface PiShellSelectorOptions {
203
+ readonly title?: string;
204
+ readonly options: readonly PiShellSelectorOption[];
205
+ readonly maxVisible?: number;
206
+ readonly onSelect?: (id: string) => void;
207
+ readonly onCancel?: () => void;
208
+ }
209
+ export declare function createTuiFacade(options: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender"> & {
210
+ readonly onSubmit?: (text: string) => void;
211
+ }): TUI;
212
+ export declare function componentPort(component: Component, handleInput?: (data: string) => void): PiShellComponentPort;
213
+ export declare function componentFromPort(port: PiShellComponentPort): Component;
214
+ export declare function formatSessionTokens(count: number): string;
215
+ export declare function isAutocompleteProvider(value: unknown): value is AutocompleteProvider;
216
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
217
+ export declare function ensureTheme(): void;
@@ -0,0 +1,92 @@
1
+ import { hyperlink, setKeybindings, visibleWidth, truncateToWidth, } from "@earendil-works/pi-tui";
2
+ import { KeybindingsManager, } from "./upstream/adjacent/core/keybindings.js";
3
+ import { ensurePiTheme, } from "./theme.js";
4
+ /** Terminal-cell width authority used by Pi-rendered component rows. */
5
+ export const piShellVisibleWidth = visibleWidth;
6
+ export const piShellTruncateToWidth = (text, width) => truncateToWidth(text, width, "");
7
+ /** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
8
+ export const piShellHyperlink = (url, text = url) => hyperlink(url, text);
9
+ // Provenance: pinned from packages/coding-agent/src/core/slash-commands.ts at 914cf14.
10
+ export function createTuiFacade(options) {
11
+ const children = [];
12
+ const terminal = {
13
+ start() { }, stop() { }, async drainInput() { }, write() { },
14
+ get columns() { return Math.max(1, options.getColumns()); },
15
+ get rows() { return Math.max(1, options.getRows()); },
16
+ get kittyProtocolActive() { return false; },
17
+ moveBy() { }, hideCursor() { }, showCursor() { }, clearLine() { }, clearFromCursor() { }, clearScreen() { }, setTitle() { }, setProgress() { },
18
+ };
19
+ return {
20
+ mode: "regular",
21
+ children,
22
+ terminal,
23
+ fullRedraws: 0,
24
+ addChild: component => children.push(component),
25
+ removeChild: component => {
26
+ const index = children.indexOf(component);
27
+ if (index >= 0)
28
+ children.splice(index, 1);
29
+ },
30
+ clear: () => children.splice(0),
31
+ render: width => children.flatMap(component => component.render(width)),
32
+ invalidate: () => children.forEach(component => component.invalidate()),
33
+ getShowHardwareCursor: () => false,
34
+ setShowHardwareCursor() { },
35
+ getClearOnShrink: () => true,
36
+ setClearOnShrink() { },
37
+ setFocus() { },
38
+ showOverlay: () => ({ hide() { }, setHidden() { }, isHidden: () => false, focus() { }, unfocus() { }, isFocused: () => false, getBounds: () => undefined }),
39
+ hideOverlay() { },
40
+ hasOverlay: () => false,
41
+ start() { },
42
+ stop() { },
43
+ renderNow() { },
44
+ requestRender: options.requestRender,
45
+ addInputListener: () => () => { },
46
+ removeInputListener() { },
47
+ onTerminalColorSchemeChange: () => () => { },
48
+ setTerminalColorSchemeNotifications() { },
49
+ queryTerminalBackgroundColor: async () => undefined,
50
+ queryTerminalColorScheme: async () => undefined,
51
+ };
52
+ }
53
+ export function componentPort(component, handleInput) {
54
+ const input = handleInput ?? component.handleInput;
55
+ const focusable = component;
56
+ const disposable = component;
57
+ return {
58
+ render: width => component.render(width),
59
+ ...(input === undefined ? {} : { handleInput: (data) => input.call(component, data) }),
60
+ invalidate: () => component.invalidate(),
61
+ ...("focused" in focusable ? { setFocused: (focused) => { focusable.focused = focused; } } : {}),
62
+ ...(typeof disposable.dispose === "function" ? { dispose: () => disposable.dispose?.() } : {}),
63
+ };
64
+ }
65
+ export function componentFromPort(port) {
66
+ return {
67
+ render: width => [...port.render(width)],
68
+ ...(port.handleInput === undefined ? {} : { handleInput: (data) => port.handleInput?.(data) }),
69
+ invalidate: () => port.invalidate(),
70
+ };
71
+ }
72
+ export function formatSessionTokens(count) {
73
+ if (count < 1000)
74
+ return count.toString();
75
+ if (count < 10_000)
76
+ return `${(count / 1000).toFixed(1)}k`;
77
+ if (count < 1_000_000)
78
+ return `${Math.round(count / 1000)}k`;
79
+ if (count < 10_000_000)
80
+ return `${(count / 1_000_000).toFixed(1)}M`;
81
+ return `${Math.round(count / 1_000_000)}M`;
82
+ }
83
+ export function isAutocompleteProvider(value) {
84
+ return isRecord(value) && typeof value.getSuggestions === "function" && typeof value.applyCompletion === "function";
85
+ }
86
+ export function isRecord(value) {
87
+ return typeof value === "object" && value !== null;
88
+ }
89
+ export function ensureTheme() {
90
+ ensurePiTheme();
91
+ setKeybindings(KeybindingsManager.create());
92
+ }
@@ -0,0 +1,17 @@
1
+ import { type Component } from "@earendil-works/pi-tui";
2
+ import type { OwnedUiTranscriptBlock } from "../../../contracts/owned-ui/index.js";
3
+ export interface PiShellSubmittedPromptComposer {
4
+ readonly layout: (width: number, source?: Date | number | null) => {
5
+ readonly contentWidth: number;
6
+ };
7
+ readonly compose: (contentRows: readonly string[], width: number, source?: Date | number | null, style?: {
8
+ readonly prefix?: (text: string) => string;
9
+ readonly timestamp?: (text: string) => string;
10
+ }) => readonly string[];
11
+ }
12
+ /** Branch summaries share the block kind but do not participate in prompt navigation. */
13
+ export declare function isPiPromptStyleCompaction(block: OwnedUiTranscriptBlock): boolean;
14
+ /** Keep prompt timestamps metadata-grey even inside hover and quiet whole-row wrappers. */
15
+ export declare function paintPiSubmittedPromptTimestamp(text: string): string;
16
+ /** Pi owns Markdown and theme adaptation; the injected composer owns neutral row geometry. */
17
+ export declare function createPiSubmittedPromptComponent(block: OwnedUiTranscriptBlock, composer: PiShellSubmittedPromptComposer, heading?: string): Component;
@@ -0,0 +1,49 @@
1
+ import { getMarkdownTheme } from "../startup-public.js";
2
+ import { Box, Markdown, Text } from "@earendil-works/pi-tui";
3
+ import { piTheme } from "./theme.js";
4
+ /** Branch summaries share the block kind but do not participate in prompt navigation. */
5
+ export function isPiPromptStyleCompaction(block) {
6
+ return block.kind === "compaction" && block.status === "finalized"
7
+ && typeof block.payload === "object" && block.payload !== null
8
+ && block.payload.role === "compactionSummary";
9
+ }
10
+ /** Keep prompt timestamps metadata-grey even inside hover and quiet whole-row wrappers. */
11
+ export function paintPiSubmittedPromptTimestamp(text) {
12
+ // Protocol: combine the intensity/foreground reset so quietSticky does not immediately
13
+ // reapply faint; the semantic foreground that follows remains theme-controlled.
14
+ return `\u001b[22;39m${piTheme().fg("dim", text)}`;
15
+ }
16
+ /** Pi owns Markdown and theme adaptation; the injected composer owns neutral row geometry. */
17
+ export function createPiSubmittedPromptComponent(block, composer, heading) {
18
+ const timestamp = numericTimestamp(block);
19
+ // Invariant: presentation-only chrome stays outside the summary's Markdown parser and stored text.
20
+ const header = heading === undefined ? undefined : new Text(heading, 0, 0);
21
+ const markdown = new Markdown(block.text, 0, 0, getMarkdownTheme(), { color: content => piTheme().fg("userMessageText", content) }, { preserveOrderedListMarkers: true, preserveBackslashEscapes: true });
22
+ const content = {
23
+ render(width) {
24
+ const layout = composer.layout(width, timestamp);
25
+ const bodyRows = markdown.render(layout.contentWidth);
26
+ const rows = header === undefined ? bodyRows : [
27
+ ...header.render(layout.contentWidth).map(row => piTheme().fg("userMessageText", row)),
28
+ ...(bodyRows.length === 0 ? [] : ["", ...bodyRows]),
29
+ ];
30
+ return [...composer.compose(rows, width, timestamp, {
31
+ prefix: text => piTheme().fg("muted", text),
32
+ timestamp: paintPiSubmittedPromptTimestamp,
33
+ })];
34
+ },
35
+ invalidate() {
36
+ header?.invalidate();
37
+ markdown.invalidate();
38
+ },
39
+ };
40
+ const box = new Box(0, 0, line => piTheme().bg("userMessageBg", line));
41
+ box.addChild(content);
42
+ return box;
43
+ }
44
+ function numericTimestamp(block) {
45
+ if (typeof block.payload !== "object" || block.payload === null)
46
+ return null;
47
+ const value = block.payload.timestamp;
48
+ return typeof value === "number" && Number.isFinite(value) ? value : null;
49
+ }
@@ -0,0 +1,21 @@
1
+ import { convertToPng } from "../startup-public.js";
2
+ import { type Component } from "@earendil-works/pi-tui";
3
+ /**
4
+ * Own only current attachment presentation; tool renderers still receive original result content.
5
+ * Unlike pinned 0.84.2's index cache, entries follow immutable source bytes and stale completions
6
+ * cannot republish. At most one conversion runs per mount; queued work is only the current set.
7
+ */
8
+ export declare class ToolImagePresentation {
9
+ #private;
10
+ private readonly changed;
11
+ private readonly convert;
12
+ constructor(changed: () => void, convert?: typeof convertToPng);
13
+ update(content: readonly {
14
+ type: string;
15
+ data?: string;
16
+ mimeType?: string;
17
+ }[], show: boolean): void;
18
+ /** Public Image remains responsible for Kitty/iTerm protocol and dimension-aware fallback. */
19
+ components(width: number): Component[];
20
+ dispose(): void;
21
+ }