@timurproko/a1 0.1.8-dev.ece8cef → 0.2.1-dev.590

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 (922) hide show
  1. package/README.md +104 -58
  2. package/bin/activate.js +8 -0
  3. package/bin/cli.js +39 -13
  4. package/bin/guardian.js +21 -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 +365 -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 +499 -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 +278 -0
  64. package/dist/app/session-shell/session-shell-root.js +1442 -0
  65. package/dist/app/session-shell/session-shell.d.ts +66 -0
  66. package/dist/app/session-shell/session-shell.js +2151 -0
  67. package/dist/app/session-shell/session-viewport-controller.d.ts +62 -0
  68. package/dist/app/session-shell/session-viewport-controller.js +623 -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 +53 -0
  78. package/dist/cli/dispatch.js +287 -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 +27 -0
  82. package/dist/cli/package-messages.js +83 -0
  83. package/dist/cli/packages.d.ts +32 -0
  84. package/dist/cli/packages.js +81 -0
  85. package/dist/cli/session-context.d.ts +9 -0
  86. package/dist/cli/session-context.js +29 -0
  87. package/dist/cli/version-stats.d.ts +22 -0
  88. package/dist/cli/version-stats.js +112 -0
  89. package/dist/composition/index.d.ts +2 -0
  90. package/dist/composition/index.js +2 -0
  91. package/dist/composition/owned-ui.d.ts +37 -0
  92. package/dist/composition/owned-ui.js +159 -0
  93. package/dist/composition/settings-route-host.d.ts +16 -0
  94. package/dist/composition/settings-route-host.js +141 -0
  95. package/dist/contracts/agent-engine/capability-ports.d.ts +95 -0
  96. package/dist/contracts/agent-engine/domain-validation.js +107 -0
  97. package/dist/contracts/agent-engine/domain.d.ts +138 -0
  98. package/dist/contracts/agent-engine/index.d.ts +11 -0
  99. package/dist/contracts/agent-engine/index.js +6 -0
  100. package/dist/contracts/agent-engine/package-ports.d.ts +60 -0
  101. package/dist/contracts/agent-engine/ports.js +1 -0
  102. package/dist/contracts/owned-ui/extension-ui.d.ts +310 -0
  103. package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
  104. package/dist/contracts/owned-ui/image-attachments.js +67 -0
  105. package/dist/contracts/owned-ui/index.d.ts +14 -0
  106. package/dist/contracts/owned-ui/index.js +9 -0
  107. package/dist/contracts/owned-ui/model.d.ts +383 -0
  108. package/dist/contracts/owned-ui/prompt-chips.d.ts +15 -0
  109. package/dist/contracts/owned-ui/prompt-chips.js +59 -0
  110. package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
  111. package/dist/contracts/owned-ui/prompt-history.js +23 -0
  112. package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
  113. package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
  114. package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
  115. package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
  116. package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
  117. package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
  118. package/dist/contracts/owned-ui/validation.d.ts +15 -0
  119. package/dist/contracts/owned-ui/validation.js +554 -0
  120. package/dist/contracts/presentation/index.d.ts +117 -0
  121. package/dist/contracts/presentation/index.js +68 -0
  122. package/dist/features/launch/development-launch.js +36 -0
  123. package/dist/features/launch/index.d.ts +14 -0
  124. package/dist/features/launch/index.js +7 -0
  125. package/dist/features/launch/intent.d.ts +12 -0
  126. package/dist/features/launch/intent.js +8 -0
  127. package/dist/features/launch/prepare-launch.d.ts +11 -0
  128. package/dist/features/launch/prepare-launch.js +14 -0
  129. package/dist/features/launch/profile-paths.d.ts +16 -0
  130. package/dist/features/launch/profile-paths.js +36 -0
  131. package/dist/features/launch/runtime-selection.d.ts +16 -0
  132. package/dist/features/launch/runtime-selection.js +13 -0
  133. package/dist/features/launch/session-context.d.ts +8 -0
  134. package/dist/features/launch/session-context.js +8 -0
  135. package/dist/features/owned-ui/index.d.ts +9 -0
  136. package/dist/features/owned-ui/index.js +6 -0
  137. package/dist/features/owned-ui/project-trust-dialog.d.ts +2 -0
  138. package/dist/features/owned-ui/project-trust-dialog.js +55 -0
  139. package/dist/features/owned-ui/project-trust-prompt.d.ts +23 -0
  140. package/dist/features/owned-ui/project-trust-prompt.js +149 -0
  141. package/dist/features/owned-ui/reference-routes.d.ts +6 -0
  142. package/dist/features/owned-ui/reference-routes.js +6 -0
  143. package/dist/features/owned-ui/reference-screen-app.d.ts +43 -0
  144. package/dist/features/owned-ui/reference-screen-app.js +279 -0
  145. package/dist/features/owned-ui/run.d.ts +17 -0
  146. package/dist/features/owned-ui/run.js +64 -0
  147. package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
  148. package/dist/features/owned-ui/session-fork-prompt.js +34 -0
  149. package/dist/features/owned-ui/settings-app.d.ts +21 -0
  150. package/dist/features/owned-ui/settings-app.js +851 -0
  151. package/dist/features/owned-ui/settings-route.d.ts +2 -0
  152. package/dist/features/owned-ui/settings-route.js +2 -0
  153. package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
  154. package/dist/features/prompt-history/image-sidecar.js +130 -0
  155. package/dist/features/prompt-history/index.d.ts +4 -0
  156. package/dist/features/prompt-history/index.js +3 -0
  157. package/dist/features/prompt-history/paths.d.ts +5 -0
  158. package/dist/features/prompt-history/paths.js +17 -0
  159. package/dist/features/prompt-history/service.d.ts +54 -0
  160. package/dist/features/prompt-history/service.js +425 -0
  161. package/dist/features/prompt-history/store.d.ts +16 -0
  162. package/dist/features/prompt-history/store.js +219 -0
  163. package/dist/features/prompt-history/worker.d.ts +9 -0
  164. package/dist/features/prompt-history/worker.js +45 -0
  165. package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
  166. package/dist/features/prompt-suggestions/diagnostics.js +82 -0
  167. package/dist/features/prompt-suggestions/index.d.ts +2 -0
  168. package/dist/features/prompt-suggestions/index.js +1 -0
  169. package/dist/foundation/launch-context/index.d.ts +59 -0
  170. package/dist/foundation/launch-context/index.js +136 -0
  171. package/dist/foundation/launch-guardian/index.d.ts +2 -0
  172. package/dist/foundation/launch-guardian/index.js +1 -0
  173. package/dist/foundation/launch-guardian/main.d.ts +33 -0
  174. package/dist/foundation/launch-guardian/main.js +179 -0
  175. package/dist/foundation/lifecycle/commands.js +1 -0
  176. package/dist/foundation/lifecycle/index.d.ts +13 -0
  177. package/dist/foundation/lifecycle/index.js +6 -0
  178. package/dist/foundation/lifecycle/model.d.ts +64 -0
  179. package/dist/foundation/lifecycle/model.js +40 -0
  180. package/dist/foundation/lifecycle/paths.d.ts +30 -0
  181. package/dist/foundation/lifecycle/paths.js +70 -0
  182. package/dist/foundation/lifecycle/session-repository-context.d.ts +18 -0
  183. package/dist/foundation/lifecycle/session-repository-context.js +173 -0
  184. package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
  185. package/dist/foundation/lifecycle/session-selection.js +39 -0
  186. package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
  187. package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
  188. package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
  189. package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
  190. package/dist/foundation/process-containment/index.d.ts +8 -0
  191. package/dist/foundation/process-containment/index.js +6 -0
  192. package/dist/foundation/process-containment/linux-process-inspector.d.ts +7 -0
  193. package/dist/foundation/process-containment/linux-process-inspector.js +27 -0
  194. package/dist/foundation/process-containment/native-guardian-containment.d.ts +17 -0
  195. package/dist/foundation/process-containment/native-guardian-containment.js +140 -0
  196. package/dist/foundation/process-containment/windows-process-inspector.d.ts +19 -0
  197. package/dist/foundation/process-containment/windows-process-inspector.js +56 -0
  198. package/dist/foundation/protocol/client.d.ts +18 -0
  199. package/dist/foundation/protocol/client.js +130 -0
  200. package/dist/foundation/protocol/index.d.ts +3 -0
  201. package/dist/foundation/protocol/index.js +2 -0
  202. package/dist/foundation/protocol/messages.d.ts +90 -0
  203. package/dist/foundation/protocol/messages.js +100 -0
  204. package/dist/foundation/release/bootstrap.d.ts +51 -0
  205. package/dist/foundation/release/bootstrap.js +470 -0
  206. package/dist/foundation/release/cohort-state.d.ts +159 -0
  207. package/dist/foundation/release/cohort-state.js +507 -0
  208. package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
  209. package/dist/foundation/release/dependency-certification-retention.js +88 -0
  210. package/dist/foundation/release/dependency-certification.d.ts +24 -0
  211. package/dist/foundation/release/dependency-certification.js +266 -0
  212. package/dist/foundation/release/dependency-layer.d.ts +78 -0
  213. package/dist/foundation/release/dependency-layer.js +466 -0
  214. package/dist/foundation/release/endpoints.d.ts +24 -0
  215. package/dist/foundation/release/endpoints.js +134 -0
  216. package/dist/foundation/release/immutable-platform.d.ts +6 -0
  217. package/dist/foundation/release/immutable-platform.js +13 -0
  218. package/dist/foundation/release/index.d.ts +33 -0
  219. package/dist/foundation/release/index.js +18 -0
  220. package/dist/foundation/release/ordinary-launch-selection.d.ts +14 -0
  221. package/dist/foundation/release/ordinary-launch-selection.js +15 -0
  222. package/dist/foundation/release/release-gc.d.ts +71 -0
  223. package/dist/foundation/release/release-gc.js +764 -0
  224. package/dist/foundation/release/release-store.d.ts +49 -0
  225. package/dist/foundation/release/release-store.js +235 -0
  226. package/dist/foundation/release/release.d.ts +43 -0
  227. package/dist/foundation/release/release.js +215 -0
  228. package/dist/foundation/release/restart-certification.d.ts +68 -0
  229. package/dist/foundation/release/restart-certification.js +227 -0
  230. package/dist/foundation/release/types.d.ts +11 -0
  231. package/dist/foundation/release/types.js +1 -0
  232. package/dist/foundation/release/update-activation.d.ts +72 -0
  233. package/dist/foundation/release/update-activation.js +204 -0
  234. package/dist/foundation/release/update-launch.d.ts +6 -0
  235. package/dist/foundation/release/update-launch.js +17 -0
  236. package/dist/foundation/release/update-recovery.d.ts +82 -0
  237. package/dist/foundation/release/update-recovery.js +386 -0
  238. package/dist/foundation/release/update-transaction.d.ts +42 -0
  239. package/dist/foundation/release/update-transaction.js +101 -0
  240. package/dist/foundation/release/update.d.ts +142 -0
  241. package/dist/foundation/release/update.js +773 -0
  242. package/dist/foundation/release/warmup.d.ts +3 -0
  243. package/dist/foundation/release/warmup.js +47 -0
  244. package/dist/foundation/startup/index.d.ts +4 -0
  245. package/dist/foundation/startup/index.js +2 -0
  246. package/dist/foundation/startup/startup-budget.d.ts +46 -0
  247. package/dist/foundation/startup/startup-budget.js +42 -0
  248. package/dist/foundation/startup/startup-descriptor.js +34 -0
  249. package/dist/foundation/startup/startup-runtime.d.ts +27 -0
  250. package/dist/foundation/startup/startup-runtime.js +128 -0
  251. package/dist/foundation/storage/control-store.d.ts +18 -0
  252. package/dist/foundation/storage/control-store.js +342 -0
  253. package/dist/foundation/storage/index.d.ts +1 -0
  254. package/dist/foundation/storage/index.js +1 -0
  255. package/dist/foundation/supervision/index.d.ts +3 -0
  256. package/dist/foundation/supervision/index.js +3 -0
  257. package/dist/foundation/supervision/main.d.ts +1 -0
  258. package/dist/foundation/supervision/main.js +84 -0
  259. package/dist/foundation/supervision/paths.d.ts +1 -0
  260. package/dist/foundation/supervision/paths.js +1 -0
  261. package/dist/foundation/supervision/server.d.ts +46 -0
  262. package/dist/foundation/supervision/server.js +584 -0
  263. package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
  264. package/dist/foundation/terminal-cleanup/fatal-exit.js +87 -0
  265. package/dist/foundation/terminal-cleanup/index.d.ts +3 -0
  266. package/dist/foundation/terminal-cleanup/index.js +2 -0
  267. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
  268. package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
  269. package/dist/integrations/pi/components/components.d.ts +4 -0
  270. package/dist/integrations/pi/components/components.js +64 -0
  271. package/dist/integrations/pi/components/conformance.d.ts +18 -0
  272. package/dist/integrations/pi/components/conformance.js +70 -0
  273. package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
  274. package/dist/integrations/pi/components/editor-interaction.js +1 -0
  275. package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
  276. package/dist/integrations/pi/components/history-editor-loader.js +5 -0
  277. package/dist/integrations/pi/components/index.d.ts +26 -0
  278. package/dist/integrations/pi/components/index.js +16 -0
  279. package/dist/integrations/pi/components/modal-frame.d.ts +41 -0
  280. package/dist/integrations/pi/components/modal-frame.js +110 -0
  281. package/dist/integrations/pi/components/models-dialog.d.ts +55 -0
  282. package/dist/integrations/pi/components/models-dialog.js +403 -0
  283. package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
  284. package/dist/integrations/pi/components/owned-editor-ux.js +1094 -0
  285. package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
  286. package/dist/integrations/pi/components/path-word-ranges.js +37 -0
  287. package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
  288. package/dist/integrations/pi/components/prompt-input-port.js +1 -0
  289. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +167 -0
  290. package/dist/integrations/pi/components/resources/builtin-themes.js +168 -0
  291. package/dist/integrations/pi/components/shell-components.d.ts +7 -0
  292. package/dist/integrations/pi/components/shell-components.js +7 -0
  293. package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +23 -0
  294. package/dist/integrations/pi/components/shell-editor-autocomplete.js +357 -0
  295. package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
  296. package/dist/integrations/pi/components/shell-extension-ui.js +282 -0
  297. package/dist/integrations/pi/components/shell-footer-status.d.ts +8 -0
  298. package/dist/integrations/pi/components/shell-footer-status.js +287 -0
  299. package/dist/integrations/pi/components/shell-hotkey-sections.d.ts +7 -0
  300. package/dist/integrations/pi/components/shell-hotkey-sections.js +29 -0
  301. package/dist/integrations/pi/components/shell-presenters-info.d.ts +73 -0
  302. package/dist/integrations/pi/components/shell-presenters-info.js +188 -0
  303. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
  304. package/dist/integrations/pi/components/shell-presenters-transcript.js +435 -0
  305. package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +134 -0
  306. package/dist/integrations/pi/components/shell-selectors-dialogs.js +286 -0
  307. package/dist/integrations/pi/components/shell-shared-facade.d.ts +233 -0
  308. package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
  309. package/dist/integrations/pi/components/skills-command.d.ts +49 -0
  310. package/dist/integrations/pi/components/skills-command.js +119 -0
  311. package/dist/integrations/pi/components/skills-dialog.d.ts +9 -0
  312. package/dist/integrations/pi/components/skills-dialog.js +128 -0
  313. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
  314. package/dist/integrations/pi/components/submitted-prompt-adapter.js +52 -0
  315. package/dist/integrations/pi/components/theme.d.ts +5 -0
  316. package/dist/integrations/pi/components/theme.js +11 -0
  317. package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +8 -0
  318. package/dist/integrations/pi/components/thinking-selector-dialog.js +22 -0
  319. package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
  320. package/dist/integrations/pi/components/tool-image-presentation.js +83 -0
  321. package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
  322. package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
  323. package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
  324. package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
  325. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +445 -0
  326. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +371 -0
  327. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
  328. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +13 -0
  329. package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +29 -0
  330. package/dist/integrations/pi/components/upstream/components/daxnuts.js +146 -0
  331. package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +4 -0
  332. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +48 -0
  333. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +22 -0
  334. package/dist/integrations/pi/components/upstream/components/extension-editor.js +89 -0
  335. package/dist/integrations/pi/components/upstream/components/extension-input.d.ts +17 -0
  336. package/dist/integrations/pi/components/upstream/components/extension-input.js +73 -0
  337. package/dist/integrations/pi/components/upstream/components/extension-selector.d.ts +15 -0
  338. package/dist/integrations/pi/components/upstream/components/extension-selector.js +93 -0
  339. package/dist/integrations/pi/components/upstream/components/mermaid.js +81 -0
  340. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +52 -0
  341. package/dist/integrations/pi/components/upstream/components/owned-editor.js +222 -0
  342. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +60 -0
  343. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +347 -0
  344. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +12 -0
  345. package/dist/integrations/pi/components/upstream/components/session-footer.js +150 -0
  346. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +161 -0
  347. package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +97 -0
  348. package/dist/integrations/pi/components/upstream/components/session-selector.js +935 -0
  349. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +21 -0
  350. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +54 -0
  351. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +35 -0
  352. package/dist/integrations/pi/components/upstream/components/status-indicator.js +69 -0
  353. package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +36 -0
  354. package/dist/integrations/pi/components/upstream/components/thinking-selector.js +153 -0
  355. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +67 -0
  356. package/dist/integrations/pi/components/upstream/components/tool-execution.js +365 -0
  357. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +102 -0
  358. package/dist/integrations/pi/components/upstream/components/tree-selector.js +1294 -0
  359. package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
  360. package/dist/integrations/pi/components/upstream/components/trust-selector.js +87 -0
  361. package/dist/integrations/pi/components/upstream/external-editor.js +43 -0
  362. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +289 -0
  363. package/dist/integrations/pi/components/upstream/history/editor-core.js +2145 -0
  364. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +35 -0
  365. package/dist/integrations/pi/components/upstream/history/kill-ring.js +51 -0
  366. package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
  367. package/dist/integrations/pi/components/upstream/history/printable-key.js +43 -0
  368. package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +17 -0
  369. package/dist/integrations/pi/components/upstream/history/text-helpers.js +34 -0
  370. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +25 -0
  371. package/dist/integrations/pi/components/upstream/history/undo-stack.js +39 -0
  372. package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
  373. package/dist/integrations/pi/components/upstream/history/word-navigation.js +103 -0
  374. package/dist/integrations/pi/components/upstream/model-search.d.ts +18 -0
  375. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +33 -0
  376. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +114 -0
  377. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +61 -0
  378. package/dist/integrations/pi/components/upstream/theme/theme.js +337 -0
  379. package/dist/integrations/pi/engine/adapter.d.ts +140 -0
  380. package/dist/integrations/pi/engine/adapter.js +663 -0
  381. package/dist/integrations/pi/engine/changelog.d.ts +2 -0
  382. package/dist/integrations/pi/engine/changelog.js +63 -0
  383. package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
  384. package/dist/integrations/pi/engine/command-dispatch.js +125 -0
  385. package/dist/integrations/pi/engine/compaction-progress.d.ts +24 -0
  386. package/dist/integrations/pi/engine/compaction-progress.js +97 -0
  387. package/dist/integrations/pi/engine/conformance.d.ts +39 -0
  388. package/dist/integrations/pi/engine/conformance.js +140 -0
  389. package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
  390. package/dist/integrations/pi/engine/event-delivery.js +184 -0
  391. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
  392. package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
  393. package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
  394. package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
  395. package/dist/integrations/pi/engine/index.d.ts +18 -0
  396. package/dist/integrations/pi/engine/index.js +10 -0
  397. package/dist/integrations/pi/engine/message-values.d.ts +29 -0
  398. package/dist/integrations/pi/engine/message-values.js +169 -0
  399. package/dist/integrations/pi/engine/package-integration.d.ts +13 -0
  400. package/dist/integrations/pi/engine/package-integration.js +118 -0
  401. package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
  402. package/dist/integrations/pi/engine/pending-delivery.js +156 -0
  403. package/dist/integrations/pi/engine/pi-settings-metadata.json +397 -0
  404. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +21 -0
  405. package/dist/integrations/pi/engine/project-trust-preflight.js +46 -0
  406. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
  407. package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
  408. package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
  409. package/dist/integrations/pi/engine/provider-authentication.js +209 -0
  410. package/dist/integrations/pi/engine/repository-pr-rest.d.ts +21 -0
  411. package/dist/integrations/pi/engine/repository-pr-rest.js +155 -0
  412. package/dist/integrations/pi/engine/repository-pr.d.ts +16 -0
  413. package/dist/integrations/pi/engine/repository-pr.js +79 -0
  414. package/dist/integrations/pi/engine/resource-catalog.d.ts +50 -0
  415. package/dist/integrations/pi/engine/resource-catalog.js +299 -0
  416. package/dist/integrations/pi/engine/resources/changelog.json +12 -0
  417. package/dist/integrations/pi/engine/runtime-integration.d.ts +53 -0
  418. package/dist/integrations/pi/engine/runtime-integration.js +118 -0
  419. package/dist/integrations/pi/engine/session-events.d.ts +48 -0
  420. package/dist/integrations/pi/engine/session-events.js +223 -0
  421. package/dist/integrations/pi/engine/session-integration.d.ts +67 -0
  422. package/dist/integrations/pi/engine/session-integration.js +195 -0
  423. package/dist/integrations/pi/engine/session-runtime.d.ts +98 -0
  424. package/dist/integrations/pi/engine/session-runtime.js +412 -0
  425. package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
  426. package/dist/integrations/pi/engine/session-selection.js +90 -0
  427. package/dist/integrations/pi/engine/settings-bridge.d.ts +121 -0
  428. package/dist/integrations/pi/engine/settings-bridge.js +516 -0
  429. package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
  430. package/dist/integrations/pi/engine/settings-metadata.js +67 -0
  431. package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
  432. package/dist/integrations/pi/engine/settings-port.js +363 -0
  433. package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
  434. package/dist/integrations/pi/engine/tool-rendering.js +145 -0
  435. package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
  436. package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
  437. package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
  438. package/dist/integrations/pi/engine/transcript-projection.js +440 -0
  439. package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
  440. package/dist/integrations/pi/engine/usage-view.js +56 -0
  441. package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
  442. package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
  443. package/dist/integrations/pi/engine/workflow-contexts.d.ts +66 -0
  444. package/dist/integrations/pi/engine/workflow-contexts.js +360 -0
  445. package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
  446. package/dist/integrations/pi/engine/workflow-runner.js +536 -0
  447. package/dist/integrations/pi/engine/workflow-support.d.ts +38 -0
  448. package/dist/integrations/pi/engine/workflow-support.js +386 -0
  449. package/dist/integrations/pi/engine/workflows.d.ts +308 -0
  450. package/dist/integrations/pi/engine/workflows.js +81 -0
  451. package/dist/integrations/pi/startup-public.d.ts +2 -0
  452. package/dist/integrations/pi/startup-public.js +2254 -0
  453. package/dist/integrations/pi/startup-public.manifest.json +12679 -0
  454. package/dist/integrations/pi/tui-runtime/adapter.d.ts +58 -0
  455. package/dist/integrations/pi/tui-runtime/adapter.js +792 -0
  456. package/dist/integrations/pi/tui-runtime/contracts.d.ts +158 -0
  457. package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
  458. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +88 -0
  459. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +439 -0
  460. package/dist/integrations/pi/tui-runtime/index.d.ts +9 -0
  461. package/dist/integrations/pi/tui-runtime/index.js +5 -0
  462. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
  463. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
  464. package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +19 -0
  465. package/dist/integrations/pi/tui-runtime/mouse-report-input.js +91 -0
  466. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
  467. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +158 -0
  468. package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +4 -0
  469. package/dist/integrations/pi/tui-runtime/presentation-adapter.js +48 -0
  470. package/dist/native/darwin-arm64/manifest.json +4 -4
  471. package/dist/native/darwin-arm64/process-guardian +0 -0
  472. package/dist/native/linux-x64/manifest.json +3 -3
  473. package/dist/native/linux-x64/process-guardian +0 -0
  474. package/dist/native/win32-x64/manifest.json +3 -3
  475. package/dist/native/win32-x64/process-guardian.exe +0 -0
  476. package/dist/product-identity.d.ts +37 -0
  477. package/dist/product-identity.js +119 -0
  478. package/dist/product-identity.json +87 -0
  479. package/dist/runtime-payload-inventory.json +134179 -0
  480. package/dist/ui/apps/contracts.d.ts +72 -0
  481. package/dist/ui/apps/host.d.ts +42 -0
  482. package/dist/ui/apps/host.js +156 -0
  483. package/dist/ui/apps/index.d.ts +5 -0
  484. package/dist/ui/apps/index.js +3 -0
  485. package/dist/ui/apps/registry.d.ts +12 -0
  486. package/dist/ui/apps/registry.js +33 -0
  487. package/dist/ui/components/dialog-panel.d.ts +37 -0
  488. package/dist/ui/components/dialog-panel.js +58 -0
  489. package/dist/ui/components/frame.d.ts +22 -0
  490. package/dist/ui/components/frame.js +55 -0
  491. package/dist/ui/components/index.d.ts +50 -0
  492. package/dist/ui/components/index.js +26 -0
  493. package/dist/ui/components/line-input.d.ts +68 -0
  494. package/dist/ui/components/line-input.js +224 -0
  495. package/dist/ui/components/list-block.d.ts +70 -0
  496. package/dist/ui/components/list-block.js +189 -0
  497. package/dist/ui/components/list-view.d.ts +60 -0
  498. package/dist/ui/components/list-view.js +84 -0
  499. package/dist/ui/components/mouse.d.ts +25 -0
  500. package/dist/ui/components/mouse.js +72 -0
  501. package/dist/ui/components/progress-status.d.ts +9 -0
  502. package/dist/ui/components/progress-status.js +25 -0
  503. package/dist/ui/components/prompt-input.d.ts +32 -0
  504. package/dist/ui/components/prompt-input.js +51 -0
  505. package/dist/ui/components/scrollbar.d.ts +88 -0
  506. package/dist/ui/components/scrollbar.js +137 -0
  507. package/dist/ui/components/selection-copy.d.ts +24 -0
  508. package/dist/ui/components/selection-copy.js +39 -0
  509. package/dist/ui/components/shortcut-hints.d.ts +7 -0
  510. package/dist/ui/components/shortcut-hints.js +12 -0
  511. package/dist/ui/components/shortcuts.d.ts +60 -0
  512. package/dist/ui/components/shortcuts.js +85 -0
  513. package/dist/ui/components/spans.d.ts +28 -0
  514. package/dist/ui/components/spans.js +266 -0
  515. package/dist/ui/components/submitted-prompt.d.ts +23 -0
  516. package/dist/ui/components/submitted-prompt.js +50 -0
  517. package/dist/ui/components/surface.d.ts +20 -0
  518. package/dist/ui/components/surface.js +44 -0
  519. package/dist/ui/components/text-selection.d.ts +62 -0
  520. package/dist/ui/components/text-selection.js +210 -0
  521. package/dist/ui/components/text.d.ts +38 -0
  522. package/dist/ui/components/text.js +185 -0
  523. package/dist/ui/components/theme.d.ts +19 -0
  524. package/dist/ui/components/theme.js +9 -0
  525. package/dist/ui/components/transcript-viewport.d.ts +187 -0
  526. package/dist/ui/components/transcript-viewport.js +886 -0
  527. package/dist/ui/components/value-menu.d.ts +43 -0
  528. package/dist/ui/components/value-menu.js +41 -0
  529. package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
  530. package/dist/ui/components/visible-hyperlinks.js +97 -0
  531. package/dist/ui/settings/declarations.d.ts +127 -0
  532. package/dist/ui/settings/declarations.js +124 -0
  533. package/dist/ui/settings/index.d.ts +10 -0
  534. package/dist/ui/settings/index.js +5 -0
  535. package/dist/ui/settings/manager.d.ts +54 -0
  536. package/dist/ui/settings/manager.js +256 -0
  537. package/dist/ui/settings/migrations.d.ts +13 -0
  538. package/dist/ui/settings/migrations.js +92 -0
  539. package/dist/ui/settings/sections.d.ts +52 -0
  540. package/dist/ui/settings/sections.js +112 -0
  541. package/docs/architecture/boundaries.md +17 -13
  542. package/docs/architecture/code-documentation.md +77 -0
  543. package/docs/architecture/history-editor-provenance.md +100 -0
  544. package/docs/architecture/internal-naming.md +94 -0
  545. package/docs/architecture/process-guardian-provenance.md +3 -1
  546. package/docs/architecture/project-structure.md +72 -30
  547. package/docs/architecture/prompt-suggestions.md +68 -0
  548. package/docs/architecture/resource-and-data-policy.md +28 -2
  549. package/docs/architecture/response-copy-delivery.md +85 -0
  550. package/docs/architecture/terminal-host-proof-gate.md +1 -1
  551. package/docs/architecture/terminal-host-spike-evidence.md +1 -1
  552. package/docs/architecture/tool-image-presentation.md +62 -0
  553. package/docs/architecture/toolchain.md +34 -10
  554. package/docs/architecture/ui-reference-provenance.md +73 -6
  555. package/docs/ci-release-runbook.md +266 -77
  556. package/docs/features/launch-profiles.md +24 -17
  557. package/docs/features/modal-content-interaction.md +38 -0
  558. package/docs/features/prompt-history.md +149 -0
  559. package/docs/local-worktree-cleanup.md +214 -0
  560. package/docs/manual-code-streaming-cleanup.md +88 -0
  561. package/docs/manual-ghost-link-baseline.md +89 -0
  562. package/docs/manual-launch-instance-acceptance.md +12 -35
  563. package/docs/manual-owned-ui-checkpoint.md +79 -0
  564. package/docs/manual-pi-boundary-candidate.md +4 -5
  565. package/docs/manual-terminal-colour-check.md +4 -3
  566. package/docs/openspec-archive-automation.md +269 -0
  567. package/docs/repository-governance-live-acceptance.md +77 -0
  568. package/docs/validation.md +105 -0
  569. package/package.json +53 -34
  570. package/dist/src/cli/capabilities.d.ts +0 -15
  571. package/dist/src/cli/capabilities.js +0 -7
  572. package/dist/src/cli/dispatch.d.ts +0 -31
  573. package/dist/src/cli/dispatch.js +0 -123
  574. package/dist/src/cli/index.d.ts +0 -5
  575. package/dist/src/cli/index.js +0 -5
  576. package/dist/src/cli/packages.d.ts +0 -23
  577. package/dist/src/cli/packages.js +0 -84
  578. package/dist/src/cli/version-stats.d.ts +0 -16
  579. package/dist/src/cli/version-stats.js +0 -72
  580. package/dist/src/cli/version.d.ts +0 -2
  581. package/dist/src/cli/version.js +0 -23
  582. package/dist/src/composition/index.d.ts +0 -48
  583. package/dist/src/composition/index.js +0 -258
  584. package/dist/src/features/launch/development-launch.js +0 -28
  585. package/dist/src/features/launch/index.d.ts +0 -7
  586. package/dist/src/features/launch/index.js +0 -7
  587. package/dist/src/features/launch/intent.d.ts +0 -7
  588. package/dist/src/features/launch/intent.js +0 -4
  589. package/dist/src/features/launch/prepare-launch.d.ts +0 -13
  590. package/dist/src/features/launch/prepare-launch.js +0 -21
  591. package/dist/src/features/launch/profile-paths.d.ts +0 -15
  592. package/dist/src/features/launch/profile-paths.js +0 -31
  593. package/dist/src/features/launch/profiles.d.ts +0 -12
  594. package/dist/src/features/launch/profiles.js +0 -26
  595. package/dist/src/features/launch/runtime-selection.d.ts +0 -19
  596. package/dist/src/features/launch/runtime-selection.js +0 -13
  597. package/dist/src/features/owned-ui/customization.d.ts +0 -38
  598. package/dist/src/features/owned-ui/customization.js +0 -108
  599. package/dist/src/features/owned-ui/diagnostics.d.ts +0 -33
  600. package/dist/src/features/owned-ui/diagnostics.js +0 -94
  601. package/dist/src/features/owned-ui/index.d.ts +0 -4
  602. package/dist/src/features/owned-ui/index.js +0 -4
  603. package/dist/src/features/owned-ui/run.d.ts +0 -11
  604. package/dist/src/features/owned-ui/run.js +0 -15
  605. package/dist/src/features/owned-ui/settings-app.d.ts +0 -22
  606. package/dist/src/features/owned-ui/settings-app.js +0 -633
  607. package/dist/src/features/workspace/capabilities.d.ts +0 -31
  608. package/dist/src/features/workspace/capabilities.js +0 -75
  609. package/dist/src/features/workspace/index.d.ts +0 -6
  610. package/dist/src/features/workspace/index.js +0 -6
  611. package/dist/src/features/workspace/presentation.d.ts +0 -30
  612. package/dist/src/features/workspace/presentation.js +0 -70
  613. package/dist/src/features/workspace/reconciliation.d.ts +0 -15
  614. package/dist/src/features/workspace/reconciliation.js +0 -82
  615. package/dist/src/features/workspace/reducer.d.ts +0 -42
  616. package/dist/src/features/workspace/reducer.js +0 -213
  617. package/dist/src/features/workspace/router.d.ts +0 -31
  618. package/dist/src/features/workspace/router.js +0 -124
  619. package/dist/src/features/workspace/store.d.ts +0 -17
  620. package/dist/src/features/workspace/store.js +0 -54
  621. package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +0 -95
  622. package/dist/src/foundation/agent-engine-contracts/domain-validation.js +0 -89
  623. package/dist/src/foundation/agent-engine-contracts/domain.d.ts +0 -116
  624. package/dist/src/foundation/agent-engine-contracts/index.d.ts +0 -8
  625. package/dist/src/foundation/agent-engine-contracts/index.js +0 -8
  626. package/dist/src/foundation/agent-engine-contracts/package-ports.d.ts +0 -54
  627. package/dist/src/foundation/launch-guardian/index.d.ts +0 -1
  628. package/dist/src/foundation/launch-guardian/index.js +0 -1
  629. package/dist/src/foundation/launch-guardian/main.d.ts +0 -31
  630. package/dist/src/foundation/launch-guardian/main.js +0 -165
  631. package/dist/src/foundation/lifecycle/index.d.ts +0 -4
  632. package/dist/src/foundation/lifecycle/index.js +0 -4
  633. package/dist/src/foundation/lifecycle/model.d.ts +0 -64
  634. package/dist/src/foundation/lifecycle/model.js +0 -40
  635. package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
  636. package/dist/src/foundation/lifecycle/paths.js +0 -42
  637. package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -11
  638. package/dist/src/foundation/native-host-protocol/codec.js +0 -56
  639. package/dist/src/foundation/native-host-protocol/evidence.d.ts +0 -67
  640. package/dist/src/foundation/native-host-protocol/evidence.js +0 -141
  641. package/dist/src/foundation/native-host-protocol/index.d.ts +0 -4
  642. package/dist/src/foundation/native-host-protocol/index.js +0 -4
  643. package/dist/src/foundation/native-host-protocol/messages.d.ts +0 -56
  644. package/dist/src/foundation/native-host-protocol/messages.js +0 -149
  645. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -13
  646. package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -33
  647. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -302
  648. package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
  649. package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
  650. package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -241
  651. package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -11
  652. package/dist/src/foundation/owned-ui-contracts/validation.js +0 -395
  653. package/dist/src/foundation/owned-ui-settings/declarations.d.ts +0 -13
  654. package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
  655. package/dist/src/foundation/owned-ui-settings/index.d.ts +0 -6
  656. package/dist/src/foundation/owned-ui-settings/index.js +0 -6
  657. package/dist/src/foundation/owned-ui-settings/migrations.d.ts +0 -13
  658. package/dist/src/foundation/owned-ui-settings/migrations.js +0 -28
  659. package/dist/src/foundation/owned-ui-settings/sections.d.ts +0 -70
  660. package/dist/src/foundation/owned-ui-settings/sections.js +0 -93
  661. package/dist/src/foundation/owned-ui-settings/session.d.ts +0 -44
  662. package/dist/src/foundation/owned-ui-settings/session.js +0 -145
  663. package/dist/src/foundation/owned-ui-settings/store.d.ts +0 -28
  664. package/dist/src/foundation/owned-ui-settings/store.js +0 -90
  665. package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -4
  666. package/dist/src/foundation/pi-component-adapter/components.js +0 -64
  667. package/dist/src/foundation/pi-component-adapter/conformance.d.ts +0 -17
  668. package/dist/src/foundation/pi-component-adapter/conformance.js +0 -69
  669. package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -13
  670. package/dist/src/foundation/pi-component-adapter/index.js +0 -13
  671. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +0 -165
  672. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +0 -166
  673. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -6
  674. package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -6
  675. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts +0 -11
  676. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
  677. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -35
  678. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -279
  679. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -7
  680. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +0 -189
  681. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
  682. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -429
  683. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -113
  684. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -235
  685. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
  686. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -87
  687. package/dist/src/foundation/pi-component-adapter/theme.d.ts +0 -1
  688. package/dist/src/foundation/pi-component-adapter/theme.js +0 -1
  689. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -422
  690. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -296
  691. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -10
  692. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -17
  693. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -51
  694. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -22
  695. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -142
  696. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -4
  697. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
  698. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -17
  699. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -81
  700. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -24
  701. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -105
  702. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -2
  703. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -18
  704. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -77
  705. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
  706. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
  707. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -55
  708. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -342
  709. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +0 -10
  710. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +0 -120
  711. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -159
  712. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -95
  713. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -889
  714. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +0 -19
  715. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +0 -44
  716. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -30
  717. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -59
  718. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -98
  719. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1272
  720. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -33
  721. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -76
  722. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -39
  723. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -15
  724. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -25
  725. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +0 -117
  726. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -61
  727. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +0 -326
  728. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +0 -164
  729. package/dist/src/foundation/pi-engine-adapter/adapter.js +0 -2367
  730. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +0 -37
  731. package/dist/src/foundation/pi-engine-adapter/conformance.js +0 -130
  732. package/dist/src/foundation/pi-engine-adapter/index.d.ts +0 -10
  733. package/dist/src/foundation/pi-engine-adapter/index.js +0 -10
  734. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +0 -30
  735. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +0 -61
  736. package/dist/src/foundation/pi-engine-adapter/package-integration.d.ts +0 -13
  737. package/dist/src/foundation/pi-engine-adapter/package-integration.js +0 -112
  738. package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +0 -374
  739. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +0 -31
  740. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +0 -80
  741. package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +0 -35
  742. package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +0 -67
  743. package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +0 -43
  744. package/dist/src/foundation/pi-engine-adapter/session-integration.js +0 -97
  745. package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
  746. package/dist/src/foundation/pi-engine-adapter/settings-integration.js +0 -233
  747. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +0 -20
  748. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +0 -48
  749. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -173
  750. package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -60
  751. package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
  752. package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
  753. package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
  754. package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
  755. package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
  756. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -39
  757. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -493
  758. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +0 -18
  759. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +0 -145
  760. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -120
  761. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
  762. package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
  763. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +0 -4
  764. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +0 -48
  765. package/dist/src/foundation/presentation-contracts/index.d.ts +0 -96
  766. package/dist/src/foundation/presentation-contracts/index.js +0 -38
  767. package/dist/src/foundation/process-containment/index.d.ts +0 -5
  768. package/dist/src/foundation/process-containment/index.js +0 -5
  769. package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +0 -6
  770. package/dist/src/foundation/process-containment/linux-process-inspector.js +0 -26
  771. package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +0 -16
  772. package/dist/src/foundation/process-containment/native-guardian-containment.js +0 -139
  773. package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +0 -17
  774. package/dist/src/foundation/process-containment/windows-process-inspector.js +0 -53
  775. package/dist/src/foundation/protocol/client.d.ts +0 -17
  776. package/dist/src/foundation/protocol/client.js +0 -129
  777. package/dist/src/foundation/protocol/index.d.ts +0 -2
  778. package/dist/src/foundation/protocol/index.js +0 -2
  779. package/dist/src/foundation/protocol/messages.d.ts +0 -89
  780. package/dist/src/foundation/protocol/messages.js +0 -99
  781. package/dist/src/foundation/release/bootstrap.d.ts +0 -29
  782. package/dist/src/foundation/release/bootstrap.js +0 -335
  783. package/dist/src/foundation/release/cohort-state.d.ts +0 -70
  784. package/dist/src/foundation/release/cohort-state.js +0 -202
  785. package/dist/src/foundation/release/development-preview-release.d.ts +0 -49
  786. package/dist/src/foundation/release/development-preview-release.js +0 -114
  787. package/dist/src/foundation/release/index.d.ts +0 -11
  788. package/dist/src/foundation/release/index.js +0 -11
  789. package/dist/src/foundation/release/release-gc.d.ts +0 -5
  790. package/dist/src/foundation/release/release-gc.js +0 -16
  791. package/dist/src/foundation/release/release-store.d.ts +0 -43
  792. package/dist/src/foundation/release/release-store.js +0 -175
  793. package/dist/src/foundation/release/release.d.ts +0 -38
  794. package/dist/src/foundation/release/release.js +0 -204
  795. package/dist/src/foundation/release/update-transaction.d.ts +0 -31
  796. package/dist/src/foundation/release/update-transaction.js +0 -89
  797. package/dist/src/foundation/release/update.d.ts +0 -80
  798. package/dist/src/foundation/release/update.js +0 -458
  799. package/dist/src/foundation/storage/control-store.d.ts +0 -61
  800. package/dist/src/foundation/storage/control-store.js +0 -530
  801. package/dist/src/foundation/storage/index.d.ts +0 -1
  802. package/dist/src/foundation/storage/index.js +0 -1
  803. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -46
  804. package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -118
  805. package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -52
  806. package/dist/src/foundation/structured-agent-runtime/commands.js +0 -164
  807. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +0 -41
  808. package/dist/src/foundation/structured-agent-runtime/handshake.js +0 -151
  809. package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -5
  810. package/dist/src/foundation/structured-agent-runtime/index.js +0 -5
  811. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -37
  812. package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -129
  813. package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -56
  814. package/dist/src/foundation/structured-agent-runtime/state.js +0 -118
  815. package/dist/src/foundation/supervision/index.d.ts +0 -3
  816. package/dist/src/foundation/supervision/index.js +0 -3
  817. package/dist/src/foundation/supervision/main.d.ts +0 -1
  818. package/dist/src/foundation/supervision/main.js +0 -41
  819. package/dist/src/foundation/supervision/paths.d.ts +0 -1
  820. package/dist/src/foundation/supervision/paths.js +0 -1
  821. package/dist/src/foundation/supervision/server.d.ts +0 -22
  822. package/dist/src/foundation/supervision/server.js +0 -451
  823. package/dist/src/foundation/ui-apps/contracts.d.ts +0 -42
  824. package/dist/src/foundation/ui-apps/host.d.ts +0 -42
  825. package/dist/src/foundation/ui-apps/host.js +0 -152
  826. package/dist/src/foundation/ui-apps/index.d.ts +0 -3
  827. package/dist/src/foundation/ui-apps/index.js +0 -3
  828. package/dist/src/foundation/ui-apps/registry.d.ts +0 -11
  829. package/dist/src/foundation/ui-apps/registry.js +0 -32
  830. package/dist/src/foundation/ui-components/dialog-panel.d.ts +0 -36
  831. package/dist/src/foundation/ui-components/dialog-panel.js +0 -47
  832. package/dist/src/foundation/ui-components/frame.d.ts +0 -21
  833. package/dist/src/foundation/ui-components/frame.js +0 -54
  834. package/dist/src/foundation/ui-components/index.d.ts +0 -18
  835. package/dist/src/foundation/ui-components/index.js +0 -18
  836. package/dist/src/foundation/ui-components/line-input.d.ts +0 -74
  837. package/dist/src/foundation/ui-components/line-input.js +0 -245
  838. package/dist/src/foundation/ui-components/list-block.d.ts +0 -66
  839. package/dist/src/foundation/ui-components/list-block.js +0 -176
  840. package/dist/src/foundation/ui-components/list-view.d.ts +0 -66
  841. package/dist/src/foundation/ui-components/list-view.js +0 -76
  842. package/dist/src/foundation/ui-components/mouse.d.ts +0 -15
  843. package/dist/src/foundation/ui-components/mouse.js +0 -46
  844. package/dist/src/foundation/ui-components/scrollbar.d.ts +0 -62
  845. package/dist/src/foundation/ui-components/scrollbar.js +0 -102
  846. package/dist/src/foundation/ui-components/shortcuts.d.ts +0 -57
  847. package/dist/src/foundation/ui-components/shortcuts.js +0 -81
  848. package/dist/src/foundation/ui-components/spans.d.ts +0 -7
  849. package/dist/src/foundation/ui-components/spans.js +0 -59
  850. package/dist/src/foundation/ui-components/surface.d.ts +0 -20
  851. package/dist/src/foundation/ui-components/surface.js +0 -38
  852. package/dist/src/foundation/ui-components/text.d.ts +0 -24
  853. package/dist/src/foundation/ui-components/text.js +0 -123
  854. package/dist/src/foundation/ui-components/theme.d.ts +0 -23
  855. package/dist/src/foundation/ui-components/theme.js +0 -13
  856. package/dist/src/foundation/ui-components/value-menu.d.ts +0 -41
  857. package/dist/src/foundation/ui-components/value-menu.js +0 -33
  858. package/dist/src/foundation/workspace-contracts/index.d.ts +0 -2
  859. package/dist/src/foundation/workspace-contracts/index.js +0 -2
  860. package/dist/src/foundation/workspace-contracts/model.d.ts +0 -248
  861. package/dist/src/foundation/workspace-contracts/model.js +0 -2
  862. package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -13
  863. package/dist/src/foundation/workspace-contracts/validation.js +0 -335
  864. package/dist/src/product-identity.d.ts +0 -37
  865. package/dist/src/product-identity.js +0 -150
  866. package/dist/src/product-identity.json +0 -99
  867. package/docs/manual-transparent-checkpoint.md +0 -53
  868. /package/dist/{src/foundation/agent-engine-contracts/domain.js → app/session-shell/paste-helper.d.ts} +0 -0
  869. /package/dist/{src/foundation/agent-engine-contracts/ports.js → app/session-shell/paste-text-worker.d.ts} +0 -0
  870. /package/dist/{src/foundation/lifecycle/commands.js → app/session-shell/paste-types.js} +0 -0
  871. /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
  872. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
  873. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
  874. /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → contracts/agent-engine/domain.js} +0 -0
  875. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
  876. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
  877. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
  878. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
  879. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
  880. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
  881. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
  882. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
  883. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
  884. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
  885. /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
  886. /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
  887. /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
  888. /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
  889. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
  890. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
  891. /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
  892. /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
  893. /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
  894. /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
  895. /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
  896. /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
  897. /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
  898. /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
  899. /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
  900. /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
  901. /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
  902. /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
  903. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
  904. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
  905. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
  906. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
  907. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
  908. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
  909. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
  910. /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
  911. /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
  912. /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
  913. /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
  914. /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
  915. /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
  916. /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
  917. /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
  918. /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
  919. /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
  920. /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
  921. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
  922. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
@@ -0,0 +1,8 @@
1
+ import type { OwnedUiSessionViewModel } from "../../../contracts/owned-ui/index.js";
2
+ import { type KeybindingsConfig } from "./upstream/adjacent/core/keybindings.js";
3
+ import { type PiShellViewComponentPort, type PiShellStatusPort, type PiShellProgressStatusPresentation, type PiShellQueuedInputPort, type PiShellHeaderPort, type PiShellResourceEntry, type PiShellLoadedResourcesPort, type PiShellHeaderOptions, type PiShellEditorOptions } from "./shell-shared-facade.js";
4
+ export declare function createPiShellHeader(options?: PiShellHeaderOptions): PiShellHeaderPort;
5
+ export declare function createPiShellLoadedResources(resources: readonly PiShellResourceEntry[], initialExpanded?: boolean): PiShellLoadedResourcesPort;
6
+ export declare function createPiShellStatus(view: OwnedUiSessionViewModel, progressStatus: PiShellProgressStatusPresentation, runtime?: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender">): PiShellStatusPort;
7
+ export declare function createPiShellFooter(view: OwnedUiSessionViewModel, cwd: string, profile?: "pi" | "a1", showLevel?: () => boolean): PiShellViewComponentPort;
8
+ export declare function createPiQueuedInputStatus(submissions: readonly string[], presentation?: "pinned" | "custom-viewport", getKeybindings?: () => KeybindingsConfig): PiShellQueuedInputPort;
@@ -0,0 +1,287 @@
1
+ import { rawKeyHint, VERSION } from "../startup-public.js";
2
+ import { Spacer, Text, } from "@earendil-works/pi-tui";
3
+ import { SessionFooter } from "./upstream/components/session-footer.js";
4
+ import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
5
+ import { StatusIndicator, WorkingStatusIndicator } from "./upstream/components/status-indicator.js";
6
+ import { PINNED_PI_LAYOUT, piTheme, } from "./theme.js";
7
+ import { createTuiFacade, ensureTheme, } from "./shell-shared-facade.js";
8
+ export function createPiShellHeader(options = {}) {
9
+ ensureTheme();
10
+ let expanded = options.expanded ?? false;
11
+ const compact = new Text(compactHeaderText(), 1, 0);
12
+ const full = new Text(expandedHeaderText(), 1, 0);
13
+ const notices = (options.notices ?? []).map(notice => new Text(noticeText(notice), 1, 0));
14
+ return {
15
+ get expanded() { return expanded; },
16
+ setExpanded(value) { expanded = value; },
17
+ render(width) {
18
+ if (options.quiet)
19
+ return [];
20
+ if (expanded && options.getKeybindings !== undefined)
21
+ full.setText(expandedHeaderText(options.getKeybindings()));
22
+ return [
23
+ ...new Spacer(1).render(width),
24
+ ...(expanded ? full : compact).render(width),
25
+ ...notices.flatMap(notice => ["", ...notice.render(width)]),
26
+ ...new Spacer(1).render(width),
27
+ ];
28
+ },
29
+ invalidate() {
30
+ compact.invalidate();
31
+ full.invalidate();
32
+ for (const notice of notices)
33
+ notice.invalidate();
34
+ },
35
+ };
36
+ }
37
+ export function createPiShellLoadedResources(resources, initialExpanded = false) {
38
+ ensureTheme();
39
+ let expanded = initialExpanded;
40
+ return {
41
+ setExpanded(value) { expanded = value; },
42
+ render(width) {
43
+ const rows = [];
44
+ const sections = ["Context", "Skills", "Prompts", "Extensions", "Themes"];
45
+ for (const section of sections) {
46
+ const entries = resources.filter(entry => entry.section === section && !entry.diagnostic);
47
+ if (entries.length === 0)
48
+ continue;
49
+ if (rows.length === 0 && section === "Context")
50
+ rows.push("");
51
+ const labels = expanded
52
+ ? entries.map(entry => entry.sourcePath ?? entry.label).sort((left, right) => left.localeCompare(right))
53
+ : entries.map(entry => entry.label).sort((left, right) => left.localeCompare(right));
54
+ const body = expanded
55
+ ? labels.map(label => piTheme().fg("dim", ` ${label}`)).join("\n")
56
+ : piTheme().fg("dim", ` ${labels.join(", ")}`);
57
+ rows.push(...new Text(`${piTheme().fg("mdHeading", `[${section}]`)}\n${body}`, 0, 0).render(width), "");
58
+ }
59
+ const diagnostics = resources.filter(entry => entry.diagnostic);
60
+ for (const group of ["Skills", "Prompts", "Extensions", "Themes"]) {
61
+ const entries = diagnostics.filter(entry => entry.section === group);
62
+ if (entries.length === 0)
63
+ continue;
64
+ const title = group === "Skills" ? "Skill conflicts" : group === "Prompts" ? "Prompt conflicts" : group === "Extensions" ? "Extension issues" : "Theme conflicts";
65
+ const body = entries.map(entry => ` ${entry.sourcePath ? `${entry.sourcePath}\n ` : ""}${entry.diagnostic}`).join("\n");
66
+ rows.push(...new Text(`${piTheme().fg("warning", `[${title}]`)}\n${piTheme().fg("warning", body)}`, 0, 0).render(width), "");
67
+ }
68
+ return rows.length === 0 ? rows : [...rows, ""];
69
+ },
70
+ invalidate() { },
71
+ };
72
+ }
73
+ export function createPiShellStatus(view, progressStatus, runtime) {
74
+ ensureTheme();
75
+ const statusUi = createTuiFacade(runtime ?? { getColumns: () => 80, getRows: () => 24, requestRender() { } });
76
+ let workingOverride;
77
+ let outputPad = PINNED_PI_LAYOUT.outputPad;
78
+ let progressPresentation = "pinned";
79
+ let placement = statusPlacement(view, workingOverride);
80
+ const liveStatusText = () => progressStatus.text(liveWorkingText(view, workingOverride, progressPresentation), progressPresentation);
81
+ let component = statusComponent(view, statusUi, outputPad, liveStatusText, placement, progressPresentation, progressStatus);
82
+ let signature = statusSignature(view, workingOverride, outputPad, placement, progressPresentation);
83
+ const rebuild = () => {
84
+ const nextPlacement = statusPlacement(view, workingOverride);
85
+ const nextSignature = statusSignature(view, workingOverride, outputPad, nextPlacement, progressPresentation);
86
+ if (nextSignature === signature)
87
+ return;
88
+ // Performance: progress ticks change only the live message; the spinner keeps its frame and timer.
89
+ const componentMatchesPresentation = progressPresentation === "custom-viewport"
90
+ ? component instanceof OwnedWorkingStatusIndicator
91
+ : component instanceof WorkingStatusIndicator;
92
+ if (placement === "live" && nextPlacement === "live" && component instanceof StatusIndicator && componentMatchesPresentation
93
+ && statusSignature(view, workingOverride, outputPad, nextPlacement, progressPresentation, false)
94
+ === statusSignature(view, workingOverride, outputPad, placement, progressPresentation, false)) {
95
+ component.setMessage(liveStatusText());
96
+ signature = nextSignature;
97
+ return;
98
+ }
99
+ if (component !== undefined && "dispose" in component && typeof component.dispose === "function")
100
+ component.dispose();
101
+ placement = nextPlacement;
102
+ signature = nextSignature;
103
+ component = statusComponent(view, statusUi, outputPad, liveStatusText, placement, progressPresentation, progressStatus);
104
+ };
105
+ return {
106
+ render: width => component?.render(width) ?? [],
107
+ renderDock: width => placement === "dock" ? component?.render(width) ?? [] : [],
108
+ renderLive: width => placement === "live" ? component?.render(width) ?? [] : [],
109
+ placement: () => placement,
110
+ invalidate: () => component?.invalidate(),
111
+ update(next) {
112
+ view = next;
113
+ rebuild();
114
+ },
115
+ setWorkingOverride(message) {
116
+ workingOverride = message;
117
+ rebuild();
118
+ },
119
+ setOutputPad(padding) {
120
+ outputPad = padding;
121
+ rebuild();
122
+ },
123
+ setProgressPresentation(presentation) {
124
+ progressPresentation = presentation;
125
+ rebuild();
126
+ },
127
+ dispose() {
128
+ if (component !== undefined && "dispose" in component && typeof component.dispose === "function")
129
+ component.dispose();
130
+ component = undefined;
131
+ },
132
+ };
133
+ }
134
+ export function createPiShellFooter(view, cwd, profile = "pi", showLevel = () => true) {
135
+ ensureTheme();
136
+ const footer = new SessionFooter(() => view, cwd, profile, showLevel);
137
+ return {
138
+ render: width => footer.render(width),
139
+ invalidate: () => footer.invalidate(),
140
+ update(next) { view = next; },
141
+ dispose: () => footer.dispose(),
142
+ };
143
+ }
144
+ export function createPiQueuedInputStatus(submissions, presentation = "pinned", getKeybindings) {
145
+ let renderedText = queuedInputText(submissions, presentation, getKeybindings?.());
146
+ const text = new Text(renderedText, 1, 0);
147
+ const refresh = () => {
148
+ const next = queuedInputText(submissions, presentation, getKeybindings?.());
149
+ if (next === renderedText)
150
+ return;
151
+ renderedText = next;
152
+ text.setText(next);
153
+ };
154
+ return {
155
+ render(width) {
156
+ if (submissions.length === 0)
157
+ return [];
158
+ refresh();
159
+ return text.render(width);
160
+ },
161
+ invalidate: () => text.invalidate(),
162
+ update(next) {
163
+ submissions = next;
164
+ refresh();
165
+ },
166
+ };
167
+ }
168
+ function statusPlacement(view, workingOverride) {
169
+ // Invariant: live spinner placement follows semantic lifecycle, not text. An extension
170
+ // override is visible only when its lifecycle is busy, so a stale override cannot spin
171
+ // after completion or make an idle informational status scrollable.
172
+ if (view.lifecycle === "busy")
173
+ return "live";
174
+ if (view.lifecycle === "failed")
175
+ return "dock";
176
+ return view.status.workingMessage === null ? "hidden" : "dock";
177
+ }
178
+ // Rationale: the engine publishes the semantic working word and a separate measured percent; bare A1
179
+ // composes them here, while the pinned route keeps the bare word for comparison with Pi.
180
+ function liveWorkingText(view, workingOverride, progressPresentation) {
181
+ const message = workingOverride ?? view.status.workingMessage ?? "Working";
182
+ const progress = view.status.workingProgress;
183
+ return workingOverride === undefined && progressPresentation === "custom-viewport" && typeof progress === "number"
184
+ ? `${message}(${progress}%)`
185
+ : message;
186
+ }
187
+ class OwnedWorkingStatusIndicator extends StatusIndicator {
188
+ constructor(ui, message, frame) {
189
+ let phase = -1;
190
+ super("working", ui, spinner => {
191
+ phase += 1;
192
+ return piTheme().fg("accent", spinner);
193
+ }, text => frame(text, phase, {
194
+ muted: value => piTheme().fg("muted", value),
195
+ accent: value => piTheme().fg("accent", value),
196
+ }), message);
197
+ }
198
+ }
199
+ function statusComponent(view, ui, outputPad, liveStatusText, placement, progressPresentation, progressStatus) {
200
+ if (placement === "live") {
201
+ return progressPresentation === "custom-viewport"
202
+ ? new OwnedWorkingStatusIndicator(ui, liveStatusText(), progressStatus.frame)
203
+ : new WorkingStatusIndicator(ui, liveStatusText());
204
+ }
205
+ if (placement === "dock") {
206
+ if (view.lifecycle === "failed") {
207
+ return new Text(piTheme().fg("error", view.status.diagnostics.at(-1) ?? "Session failed"), outputPad, 0);
208
+ }
209
+ return new Text(piTheme().fg("muted", view.status.workingMessage), outputPad, 0);
210
+ }
211
+ return undefined;
212
+ }
213
+ function statusSignature(view, workingOverride, outputPad, placement, progressPresentation, withMessage = true) {
214
+ const message = withMessage ? `${workingOverride ?? ""}\u0000${view.status.workingMessage ?? ""}\u0000${view.status.workingProgress ?? ""}` : "";
215
+ return `${placement}\u0000${outputPad}\u0000${view.lifecycle}\u0000${progressPresentation}\u0000${message}\u0000${view.status.diagnostics.at(-1) ?? ""}`;
216
+ }
217
+ function queuedInputText(submissions, presentation, bindings) {
218
+ if (submissions.length === 0)
219
+ return "";
220
+ const theme = piTheme();
221
+ if (presentation === "pinned") {
222
+ return submissions.map(submission => theme.fg("muted", `Steering: ${submission.replaceAll("\n", " ⏎ ")}`)).join("\n");
223
+ }
224
+ const messages = submissions.map(submission => theme.fg("dim", `Steering: ${submission.replaceAll("\n", " ⏎ ")}`));
225
+ const keys = KeybindingsManager.fromOwnedBindings(bindings).getKeys("app.message.dequeue");
226
+ const label = keys.length === 0 ? "Unbound" : keys.map(displayKeybinding).join("/");
227
+ const dequeueHint = theme.fg("dim", `↳ ${label} to edit all queued messages`);
228
+ // Compatibility: the custom viewport matches Pi's interactive queue presentation while the
229
+ // comparison shell remains byte-for-byte compatible with its pinned fixture.
230
+ return ["", ...messages, dequeueHint].join("\n");
231
+ }
232
+ function displayKeybinding(key) {
233
+ return key.split("+").map(part => {
234
+ const display = process.platform === "darwin" && part.toLowerCase() === "alt" ? "option" : part;
235
+ return display.charAt(0).toUpperCase() + display.slice(1);
236
+ }).join("+");
237
+ }
238
+ function compactHeaderText() {
239
+ const theme = piTheme();
240
+ const instructions = [
241
+ rawKeyHint("escape", "interrupt"),
242
+ rawKeyHint("ctrl+c/ctrl+d", "clear/exit"),
243
+ rawKeyHint("/", "commands"),
244
+ rawKeyHint("!", "bash"),
245
+ rawKeyHint("ctrl+o", "more"),
246
+ ].join(theme.fg("muted", " · "));
247
+ const logo = theme.bold(theme.fg("accent", "pi")) + theme.fg("dim", ` v${VERSION}`);
248
+ const compactOnboarding = theme.fg("dim", "Press ctrl+o to show full startup help and loaded resources.");
249
+ const onboarding = theme.fg("dim", "Pi can explain its own features and look up its docs. Ask it how to use or extend Pi.");
250
+ return `${logo}\n${instructions}\n${compactOnboarding}\n\n${onboarding}`;
251
+ }
252
+ function expandedHeaderText(bindings) {
253
+ const keys = bindings === undefined ? undefined : KeybindingsManager.fromOwnedBindings(bindings);
254
+ const instructions = [
255
+ rawKeyHint("escape", "to interrupt"),
256
+ rawKeyHint("ctrl+c", "to clear"),
257
+ rawKeyHint("ctrl+c twice", "to exit"),
258
+ rawKeyHint("ctrl+d", "to exit (empty)"),
259
+ rawKeyHint(process.platform === "win32" ? "" : "ctrl+z", "to suspend"),
260
+ rawKeyHint("ctrl+k", "to delete to end"),
261
+ rawKeyHint(keys?.getKeys("app.thinking.cycle").join("/") ?? "shift+tab", "to cycle thinking level"),
262
+ rawKeyHint("ctrl+p/shift+ctrl+p", "to cycle models"),
263
+ // Invariant: only bare A1 supplies live bindings, and its unbound fallback is the unified `/models` command.
264
+ rawKeyHint(keys === undefined ? "ctrl+l" : keys.getKeys("app.model.select").join("/") || "/models", "to select model"),
265
+ rawKeyHint("ctrl+o", "to expand tools"),
266
+ rawKeyHint("ctrl+t", "to expand thinking"),
267
+ rawKeyHint("ctrl+g", "for external editor"),
268
+ rawKeyHint("/", "for commands"),
269
+ rawKeyHint("!", "to run bash"),
270
+ rawKeyHint("!!", "to run bash (no context)"),
271
+ rawKeyHint("alt+enter", "to queue follow-up"),
272
+ rawKeyHint(keys === undefined ? "alt+up" : keys.getKeys("app.message.dequeue").join("/") || "unbound", "to edit all queued messages"),
273
+ rawKeyHint(process.platform === "win32" ? "alt+v" : "ctrl+v", "to paste image (with text fallback)"),
274
+ rawKeyHint("drop files", "to attach"),
275
+ ].join("\n");
276
+ const theme = piTheme();
277
+ const logo = theme.bold(theme.fg("accent", "pi")) + theme.fg("dim", ` v${VERSION}`);
278
+ const onboarding = theme.fg("dim", "Pi can explain its own features and look up its docs. Ask it how to use or extend Pi.");
279
+ return `${logo}\n${instructions}\n\n${onboarding}`;
280
+ }
281
+ function noticeText(notice) {
282
+ const theme = piTheme();
283
+ if (notice.kind === "info")
284
+ return theme.fg("dim", notice.message);
285
+ const prefix = notice.kind === "warning" ? "Warning" : "Error";
286
+ return theme.fg(notice.kind, `${prefix}: ${notice.message}`);
287
+ }
@@ -0,0 +1,7 @@
1
+ import { type PiShellHotkeysPresentation } from "./shell-presenters-info.js";
2
+ export interface PiShellHotkeySection {
3
+ readonly title: string;
4
+ readonly rows: readonly string[];
5
+ }
6
+ /** Turns heading-led hotkeys Markdown into reusable grouped-document data before row rendering. */
7
+ export declare function renderPiShellHotkeySections(presentation: PiShellHotkeysPresentation, width: number): readonly PiShellHotkeySection[];
@@ -0,0 +1,29 @@
1
+ import { getMarkdownTheme } from "../startup-public.js";
2
+ import { Markdown } from "@earendil-works/pi-tui";
3
+ import { ensureTheme } from "./shell-shared-facade.js";
4
+ import { hotkeysMarkdown } from "./shell-presenters-info.js";
5
+ /** Turns heading-led hotkeys Markdown into reusable grouped-document data before row rendering. */
6
+ export function renderPiShellHotkeySections(presentation, width) {
7
+ ensureTheme();
8
+ const shortcuts = presentation.getShortcuts ?? (() => []);
9
+ const markdown = hotkeysMarkdown(presentation.bindings, shortcuts, presentation.profile ?? "pi");
10
+ const sections = [];
11
+ for (const line of markdown.split("\n")) {
12
+ const heading = /^\*\*(.+)\*\*$/.exec(line)?.[1];
13
+ if (heading !== undefined)
14
+ sections.push({ title: heading, lines: [] });
15
+ else
16
+ sections.at(-1)?.lines.push(line);
17
+ }
18
+ for (const section of sections)
19
+ while (section.lines.at(-1) === "")
20
+ section.lines.pop();
21
+ return sections.map(section => {
22
+ const rows = [...new Markdown(section.lines.join("\n"), 1, 1, getMarkdownTheme()).render(width)];
23
+ while (rows[0]?.trim().length === 0)
24
+ rows.shift();
25
+ while (rows.at(-1)?.trim().length === 0)
26
+ rows.pop();
27
+ return { title: section.title, rows };
28
+ });
29
+ }
@@ -0,0 +1,73 @@
1
+ import { type KeybindingsConfig } from "@earendil-works/pi-tui";
2
+ import { type PiShellComponentPort, type PiShellExtensionRendererResolver } from "./shell-shared-facade.js";
3
+ export interface PiShellSessionInfoPresentation {
4
+ readonly sessionName?: string;
5
+ readonly stats: {
6
+ readonly sessionFile?: string;
7
+ readonly sessionId: string;
8
+ readonly userMessages: number;
9
+ readonly assistantMessages: number;
10
+ readonly toolCalls: number;
11
+ readonly toolResults: number;
12
+ readonly totalMessages: number;
13
+ readonly tokens: {
14
+ readonly input: number;
15
+ readonly output: number;
16
+ readonly cacheRead: number;
17
+ readonly cacheWrite: number;
18
+ readonly total: number;
19
+ };
20
+ readonly cost: number;
21
+ };
22
+ readonly cacheWaste: {
23
+ readonly missedTokens: number;
24
+ readonly missedCost: number;
25
+ readonly missCount: number;
26
+ };
27
+ readonly usageBreakdown: readonly {
28
+ readonly key: string;
29
+ readonly cost: number;
30
+ readonly tokens: number;
31
+ }[];
32
+ readonly cacheWarming: PiShellCacheWarmingPresentation;
33
+ }
34
+ export interface PiShellCacheWarmingPresentation {
35
+ readonly mode: string;
36
+ readonly status?: {
37
+ readonly state: "inactive" | "scheduled" | "refreshing";
38
+ readonly reason?: string;
39
+ readonly nextWarmAt?: number;
40
+ readonly extensionOverride?: boolean;
41
+ readonly decision?: {
42
+ readonly phase: "streaming" | "idle";
43
+ readonly action: string;
44
+ readonly warmCost: number;
45
+ readonly missCost: number;
46
+ readonly continuationProbability: number;
47
+ readonly expectedSavings: number;
48
+ readonly economicsAvailable: boolean;
49
+ };
50
+ };
51
+ }
52
+ export declare function renderPiShellStatusText(message: string, width: number, outputPad?: 0 | 1): readonly string[];
53
+ export interface PiShellCommandMessagePresentation {
54
+ readonly kind: "error" | "warning" | "accent" | "new" | "name" | "debug";
55
+ readonly message: string;
56
+ readonly detail?: string;
57
+ }
58
+ export declare function renderPiShellCommandMessage(presentation: PiShellCommandMessagePresentation, width: number, outputPad?: 0 | 1): readonly string[];
59
+ export declare function createPiShellSessionInfo(presentation: PiShellSessionInfoPresentation): PiShellComponentPort;
60
+ export declare function createPiShellCollapsedChangelog(): PiShellComponentPort;
61
+ export declare function createPiShellChangelog(markdown: string): PiShellComponentPort;
62
+ /** The changelog document rows the feed presenter shows, without its spacer, borders, and heading. */
63
+ export declare function renderPiShellChangelogLines(markdown: string, width: number): readonly string[];
64
+ /** What the hotkeys presenters render: the editor bindings and the extension shortcuts declared over them. */
65
+ export interface PiShellHotkeysPresentation {
66
+ readonly bindings?: KeybindingsConfig;
67
+ readonly getShortcuts?: NonNullable<PiShellExtensionRendererResolver["getShortcuts"]>;
68
+ readonly profile?: "pi" | "a1";
69
+ }
70
+ export declare function createPiShellHotkeys(bindings?: KeybindingsConfig, getShortcuts?: NonNullable<PiShellExtensionRendererResolver["getShortcuts"]>, profile?: "pi" | "a1"): PiShellComponentPort;
71
+ /** The keyboard-shortcut document rows the feed presenter shows, without its spacer, borders, and heading. */
72
+ export declare function renderPiShellHotkeysLines(presentation: PiShellHotkeysPresentation, width: number): readonly string[];
73
+ export declare function hotkeysMarkdown(bindings: KeybindingsConfig | undefined, getShortcuts: NonNullable<PiShellExtensionRendererResolver["getShortcuts"]>, profile: "pi" | "a1"): string;
@@ -0,0 +1,188 @@
1
+ import { DynamicBorder, getMarkdownTheme } from "../startup-public.js";
2
+ import { Container, Markdown, Spacer, Text } from "@earendil-works/pi-tui";
3
+ import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
4
+ import { PINNED_PI_LAYOUT, piTheme } from "./theme.js";
5
+ import { componentPort, ensureTheme, formatSessionTokens } from "./shell-shared-facade.js";
6
+ export function renderPiShellStatusText(message, width, outputPad = PINNED_PI_LAYOUT.outputPad) {
7
+ ensureTheme();
8
+ return new Text(piTheme().fg("dim", message), outputPad, 0).render(width);
9
+ }
10
+ export function renderPiShellCommandMessage(presentation, width, outputPad = PINNED_PI_LAYOUT.outputPad) {
11
+ ensureTheme();
12
+ const { kind, message, detail } = presentation;
13
+ const prefix = kind === "error" ? "Error: " : kind === "warning" ? "Warning: " : "";
14
+ const color = kind === "name" ? "dim" : kind === "error" || kind === "warning" ? kind : "accent";
15
+ const content = piTheme().fg(color, `${prefix}${message}`)
16
+ + (kind === "debug" && detail ? `\n${piTheme().fg("muted", detail)}` : "");
17
+ // Compatibility: pinned errors honor outputPad; warnings and command notices retain
18
+ // one-cell padding. New-session/debug notices also own one vertical padding row.
19
+ const text = new Text(content, kind === "error" ? outputPad : 1, kind === "new" || kind === "debug" ? 1 : 0);
20
+ return [
21
+ ...(kind === "name" && detail ? renderPiShellCommandMessage({ kind: "warning", message: detail }, width) : []),
22
+ ...new Spacer(1).render(width),
23
+ ...text.render(width),
24
+ ];
25
+ }
26
+ const CACHE_WARMING_MINIMUM_EXPECTED_SAVINGS = 0.05;
27
+ function formatWarmingDollars(value) {
28
+ return value < 0 ? `-${Math.abs(value).toFixed(3)}` : `${value.toFixed(3)}`;
29
+ }
30
+ function formatWarmingEconomics(decision) {
31
+ if (!decision.economicsAvailable)
32
+ return "cache economics unavailable";
33
+ const probability = Math.round(decision.continuationProbability * 100);
34
+ const probabilityText = decision.phase === "streaming"
35
+ ? `${probability}% continuation probability while agent is running`
36
+ : `${probability}% continuation probability`;
37
+ const comparison = decision.action === "warm" ? ">=" : "<";
38
+ return `${probabilityText}, expected savings ${formatWarmingDollars(decision.expectedSavings)} ${comparison} ${CACHE_WARMING_MINIMUM_EXPECTED_SAVINGS.toFixed(3)}`;
39
+ }
40
+ function formatWarmingDecisionTime(nextWarmAt, now) {
41
+ if (nextWarmAt === undefined || nextWarmAt <= now)
42
+ return "Decision now";
43
+ let remainingSeconds = Math.ceil((nextWarmAt - now) / 1000);
44
+ const hours = Math.floor(remainingSeconds / 3600);
45
+ remainingSeconds %= 3600;
46
+ const minutes = Math.floor(remainingSeconds / 60);
47
+ const seconds = remainingSeconds % 60;
48
+ const parts = [];
49
+ if (hours > 0)
50
+ parts.push(`${hours}h`);
51
+ if (minutes > 0)
52
+ parts.push(`${minutes}m`);
53
+ if (seconds > 0 || parts.length === 0)
54
+ parts.push(`${seconds}s`);
55
+ return `Decision in ${parts.join(" ")}`;
56
+ }
57
+ /** The one-line warming status the pinned session report shows; a decision is attached once warming acted. */
58
+ function formatCacheWarmingStatus(status, now = Date.now()) {
59
+ const decision = status.decision;
60
+ if (!decision || (status.state === "inactive" && !decision.economicsAvailable && !status.extensionOverride)) {
61
+ return `Inactive (${status.reason ?? "unknown reason"})`;
62
+ }
63
+ const details = status.extensionOverride
64
+ ? `extension override, ${formatWarmingEconomics(decision)}`
65
+ : `${formatWarmingEconomics(decision)} -> ${decision.action}`;
66
+ if (status.state === "inactive")
67
+ return `Stopped (${details})`;
68
+ if (status.state === "refreshing")
69
+ return `Warming cache (${details})`;
70
+ return `${formatWarmingDecisionTime(status.nextWarmAt, now)} (${details})`;
71
+ }
72
+ export function createPiShellSessionInfo(presentation) {
73
+ ensureTheme();
74
+ const { stats, sessionName, cacheWaste, usageBreakdown, cacheWarming } = presentation;
75
+ let info = `${piTheme().bold("Session Info")}\n\n`;
76
+ if (sessionName)
77
+ info += `${piTheme().fg("dim", "Name:")} ${sessionName}\n`;
78
+ info += `${piTheme().fg("dim", "File:")} ${stats.sessionFile ?? "In-memory"}\n${piTheme().fg("dim", "ID:")} ${stats.sessionId}\n\n`;
79
+ info += `${piTheme().bold("Messages")}\n${piTheme().fg("dim", "Total:")} ${stats.totalMessages}\n${piTheme().fg("dim", "User:")} ${stats.userMessages}\n`;
80
+ info += `${piTheme().fg("dim", "Assistant:")} ${stats.assistantMessages}\n${piTheme().fg("dim", "Tools:")} ${stats.toolCalls} calls, ${stats.toolResults} results\n\n`;
81
+ info += `${piTheme().bold("Tokens")}\n`;
82
+ const { input, cacheRead, cacheWrite } = stats.tokens;
83
+ const promptTokens = input + cacheRead + cacheWrite;
84
+ info += `${piTheme().fg("dim", "Input:")} ${promptTokens.toLocaleString()}\n`;
85
+ if (promptTokens > 0 && (cacheRead > 0 || cacheWrite > 0)) {
86
+ info += ` ${piTheme().fg("dim", "Cached:")} ${cacheRead.toLocaleString()} ${piTheme().fg("dim", `(${((cacheRead / promptTokens) * 100).toFixed(1)}%)`)}\n`;
87
+ const written = cacheWrite > 0 ? ` ${piTheme().fg("dim", `(${cacheWrite.toLocaleString()} written to cache)`)}` : "";
88
+ info += ` ${piTheme().fg("dim", "Uncached:")} ${(input + cacheWrite).toLocaleString()}${written}\n`;
89
+ }
90
+ info += `${piTheme().fg("dim", "Output:")} ${stats.tokens.output.toLocaleString()}\n${piTheme().fg("dim", "Total:")} ${stats.tokens.total.toLocaleString()}\n`;
91
+ const warmingStatus = cacheWarming.status;
92
+ info += `\n${piTheme().bold("Cache Warming")}\n${piTheme().fg("dim", "Mode:")} ${cacheWarming.mode}\n`;
93
+ info += `${piTheme().fg("dim", "Status:")} ${warmingStatus ? formatCacheWarmingStatus(warmingStatus) : "Inactive (cache warming unavailable)"}\n`;
94
+ const warmingDecision = warmingStatus?.decision;
95
+ if (warmingDecision?.economicsAvailable) {
96
+ info += `${piTheme().fg("dim", "Cache miss penalty:")} $${warmingDecision.missCost.toFixed(3)}\n`;
97
+ info += `${piTheme().fg("dim", "Refresh cost:")} $${warmingDecision.warmCost.toFixed(3)}\n`;
98
+ }
99
+ if (stats.cost > 0 || cacheWaste.missedTokens > 0) {
100
+ info += `\n${piTheme().bold("Cost")}\n${piTheme().fg("dim", "Total:")} $${stats.cost.toFixed(3)}`;
101
+ if (usageBreakdown.length > 1)
102
+ for (const entry of usageBreakdown)
103
+ info += `\n ${piTheme().fg("dim", `${entry.key}:`)} $${entry.cost.toFixed(3)} ${piTheme().fg("dim", `(${formatSessionTokens(entry.tokens)} tokens)`)}`;
104
+ if (cacheWaste.missedTokens > 0) {
105
+ const detail = `${cacheWaste.missedTokens.toLocaleString()} tokens, ${cacheWaste.missCount === 1 ? "1 miss" : `${cacheWaste.missCount} misses`}`;
106
+ info += cacheWaste.missedCost >= 0.0001 ? `\n${piTheme().fg("dim", "Cache Re-billed:")} $${cacheWaste.missedCost.toFixed(3)} ${piTheme().fg("dim", `(${detail})`)}` : `\n${piTheme().fg("dim", "Cache Re-billed:")} ${detail}`;
107
+ }
108
+ }
109
+ const container = new Container();
110
+ container.addChild(new Spacer(1));
111
+ container.addChild(new Text(info, 1, 0));
112
+ return componentPort(container);
113
+ }
114
+ export function createPiShellCollapsedChangelog() {
115
+ ensureTheme();
116
+ const container = new Container();
117
+ container.addChild(new Spacer(1));
118
+ container.addChild(new DynamicBorder());
119
+ container.addChild(new Text(`${piTheme().bold(piTheme().fg("accent", "What's New"))}\n${piTheme().fg("muted", "Run /changelog to view the full release notes.")}`, 1, 0));
120
+ container.addChild(new DynamicBorder());
121
+ return componentPort(container);
122
+ }
123
+ export function createPiShellChangelog(markdown) {
124
+ ensureTheme();
125
+ const container = new Container();
126
+ container.addChild(new Spacer(1));
127
+ container.addChild(new DynamicBorder());
128
+ container.addChild(new Text(piTheme().bold(piTheme().fg("accent", "What's New")), 1, 0));
129
+ container.addChild(new Spacer(1));
130
+ container.addChild(changelogMarkdown(markdown));
131
+ container.addChild(new DynamicBorder());
132
+ return componentPort(container);
133
+ }
134
+ /** The changelog document rows the feed presenter shows, without its spacer, borders, and heading. */
135
+ export function renderPiShellChangelogLines(markdown, width) {
136
+ ensureTheme();
137
+ return changelogMarkdown(markdown).render(width);
138
+ }
139
+ function changelogMarkdown(markdown) {
140
+ return new Markdown(markdown.trim() || "No changelog entries found.", 1, 1, getMarkdownTheme());
141
+ }
142
+ function shortcutDisplay(key) {
143
+ // Platform: pinned Pi labels Alt as Option on macOS, including extension shortcuts.
144
+ return key.split("/").map(binding => binding.split("+").map(part => {
145
+ const label = process.platform === "darwin" && part.toLowerCase() === "alt" ? "option" : part;
146
+ return label.charAt(0).toUpperCase() + label.slice(1);
147
+ }).join("+")).join("/");
148
+ }
149
+ export function createPiShellHotkeys(bindings, getShortcuts = () => [], profile = "pi") {
150
+ ensureTheme();
151
+ const markdown = hotkeysMarkdown(bindings, getShortcuts, profile);
152
+ const container = new Container();
153
+ container.addChild(new Spacer(1));
154
+ container.addChild(new DynamicBorder());
155
+ container.addChild(new Text(piTheme().bold(piTheme().fg("accent", "Keyboard Shortcuts")), 1, 0));
156
+ container.addChild(new Spacer(1));
157
+ container.addChild(hotkeysMarkdownComponent(markdown));
158
+ container.addChild(new DynamicBorder());
159
+ return componentPort(container);
160
+ }
161
+ /** The keyboard-shortcut document rows the feed presenter shows, without its spacer, borders, and heading. */
162
+ export function renderPiShellHotkeysLines(presentation, width) {
163
+ ensureTheme();
164
+ return hotkeysMarkdownComponent(hotkeysMarkdown(presentation.bindings, presentation.getShortcuts ?? (() => []), presentation.profile ?? "pi")).render(width);
165
+ }
166
+ function hotkeysMarkdownComponent(markdown) {
167
+ return new Markdown(markdown, 1, 1, getMarkdownTheme());
168
+ }
169
+ export function hotkeysMarkdown(bindings, getShortcuts, profile) {
170
+ const keys = profile === "a1" ? KeybindingsManager.fromOwnedBindings(bindings) : new KeybindingsManager(bindings);
171
+ // Compatibility: the owned viewport consumes these physical chords before editor actions.
172
+ const display = (action) => keys.getKeys(action)
173
+ .filter(key => profile !== "a1" || (key !== "ctrl+home" && key !== "ctrl+end"))
174
+ .map(shortcutDisplay).join("/");
175
+ const row = (actions, description) => `| ${actions.map(action => {
176
+ const label = display(action);
177
+ return profile === "a1" && label.length === 0
178
+ ? action === "app.model.select" ? "Unbound (`/models`)" : "Unbound"
179
+ : `\`${label}\``;
180
+ }).join(" / ")} | ${description} |`;
181
+ let markdown = ["**Navigation**", "| Key | Action |", "|-----|--------|", row(["tui.editor.cursorUp", "tui.editor.cursorDown", "tui.editor.cursorLeft", "tui.editor.cursorRight"], "Move cursor / browse history"), row(["tui.editor.cursorWordLeft", "tui.editor.cursorWordRight"], "Move by word"), row(["tui.editor.cursorLineStart"], profile === "a1" ? "Start of prompt line" : "Start of line"), row(["tui.editor.cursorLineEnd"], profile === "a1" ? "End of prompt line" : "End of line"), ...(profile === "a1" ? ["| `Ctrl+Home` | Start of content |", "| `Ctrl+End` | End of content / follow output |"] : []), row(["tui.editor.jumpForward"], "Jump forward to character"), row(["tui.editor.jumpBackward"], "Jump backward to character"), row(["tui.editor.pageUp", "tui.editor.pageDown"], "Scroll by page"), "", "**Editing**", "| Key | Action |", "|-----|--------|", row(["tui.input.submit"], "Send message"), row(["tui.input.newLine"], `New line${process.platform === "win32" ? " (Ctrl+Enter on Windows Terminal)" : ""}`), row(["tui.editor.deleteWordBackward"], "Delete word backwards"), row(["tui.editor.deleteWordForward"], "Delete word forwards"), row(["tui.editor.deleteToLineStart"], "Delete to start of line"), row(["tui.editor.deleteToLineEnd"], "Delete to end of line"), row(["tui.editor.yank"], "Paste the most-recently-deleted text"), row(["tui.editor.yankPop"], "Cycle through the deleted text after pasting"), row(["tui.editor.undo"], "Undo"), "", "**Other**", "| Key | Action |", "|-----|--------|", row(["tui.input.tab"], "Path completion / accept autocomplete"), row(["app.interrupt"], "Cancel autocomplete / abort streaming"), row(["app.clear"], "Clear editor (first) / exit (second)"), row(["app.exit"], "Exit (when editor is empty)"), row(["app.suspend"], "Suspend to background"), row(["app.thinking.cycle"], "Cycle thinking level"), row(["app.model.cycleForward", "app.model.cycleBackward"], "Cycle models"), row(["app.model.select"], profile === "a1" ? "Open the Models dialog" : "Open model selector"), row(["app.tools.expand"], "Toggle tool output expansion"), row(["app.thinking.toggle"], "Toggle thinking block visibility"), row(["app.editor.external"], "Edit message in external editor"), row(["app.message.copy"], "Copy selection or last assistant message"), row(["app.message.followUp"], "Queue follow-up message"), row(["app.message.dequeue"], "Restore queued messages"), row(["app.clipboard.pasteImage"], "Paste image or text from clipboard"), "| `/` | Slash commands |", "| `!` | Run bash command |", "| `!!` | Run bash command (excluded from context) |", ...(profile === "a1" ? ["", "**Models dialog**", "| Key | Action |", "|-----|--------|", "| `Space` | Toggle the selected model in the cycling scope |", "| `Tab` | Switch the all/scoped filter |", row(["app.models.save"], "Save the scope to settings"), row(["app.models.enableAll"], "Scope every listed model"), row(["app.models.clearAll"], "Clear the listed models from the scope"), row(["app.models.toggleProvider"], "Toggle the selected model's provider"), row(["app.models.reorderUp", "app.models.reorderDown"], "Reorder the cycling scope")] : [])].join("\n");
182
+ const shortcuts = getShortcuts(bindings ?? keys.getEffectiveConfig());
183
+ if (shortcuts.length > 0) {
184
+ markdown += "\n\n**Extensions**\n| Key | Action |\n|-----|--------|\n";
185
+ markdown += shortcuts.map(shortcut => `| \`${shortcutDisplay(shortcut.key)}\` | ${shortcut.description} |`).join("\n");
186
+ }
187
+ return markdown;
188
+ }
@@ -0,0 +1,29 @@
1
+ import { AssistantMessageComponent } from "../startup-public.js";
2
+ import { type MermaidRenderingMode } from "./upstream/components/mermaid.js";
3
+ import type { OwnedUiTranscriptBlock } from "../../../contracts/owned-ui/index.js";
4
+ import { type PiShellSubmittedPromptComposer } from "./submitted-prompt-adapter.js";
5
+ export { isPiPromptStyleCompaction, paintPiSubmittedPromptTimestamp, type PiShellSubmittedPromptComposer } from "./submitted-prompt-adapter.js";
6
+ import { type PiShellExtensionRendererResolver, type PiShellImageAssetResolver, type PiShellTranscriptComponentPort } from "./shell-shared-facade.js";
7
+ export declare function createPiShellTranscriptComponent(initial: OwnedUiTranscriptBlock, cwd: string, extensions?: PiShellExtensionRendererResolver, submittedPrompt?: PiShellSubmittedPromptComposer, initialOutputPad?: 0 | 1, initialHideThinkingBlock?: boolean, initialMermaidRenderingMode?: MermaidRenderingMode, initialShowImages?: boolean, initialImageWidthCells?: number, imageAssets?: PiShellImageAssetResolver, presentation?: {
8
+ readonly getColumns: () => number;
9
+ readonly getRows: () => number;
10
+ readonly changed: () => void;
11
+ }): PiShellTranscriptComponentPort;
12
+ export declare function renderPiShellTranscriptBlock(block: OwnedUiTranscriptBlock, width: number, cwd: string): readonly string[];
13
+ /**
14
+ * Pinned Pi's CLI prints startup diagnostics with `reportDiagnostics` before
15
+ * the banner: the whole line, prefix included, in chalk's basic ANSI severity
16
+ * colour — not the theme's tokens — with info lines dim and unprefixed.
17
+ */
18
+ export declare function renderPiShellStartupDiagnostic(diagnostic: {
19
+ readonly severity: "info" | "warning" | "error";
20
+ readonly message: string;
21
+ }, width: number): readonly string[];
22
+ /**
23
+ * Pinned Pi's `showPackageUpdateNotification` banner: warning-coloured dynamic
24
+ * borders around a bold warning title, the muted update instruction with the
25
+ * accent command, and the package list.
26
+ */
27
+ export declare function renderPiShellPackageUpdateNotice(packages: readonly string[], width: number): readonly string[];
28
+ type PiAssistantMessage = NonNullable<ConstructorParameters<typeof AssistantMessageComponent>[0]>;
29
+ export declare function validatedAssistantMessage(block: OwnedUiTranscriptBlock): PiAssistantMessage;