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

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