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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (865) hide show
  1. package/README.md +168 -65
  2. package/bin/cli.js +33 -11
  3. package/bin/guardian.js +16 -6
  4. package/bin/module-identity.js +76 -69
  5. package/bin/module-resolver.js +138 -0
  6. package/bin/pinned-pi-public.d.ts +3 -0
  7. package/bin/pinned-pi-public.js +93 -0
  8. package/bin/release-cleanup.js +8 -0
  9. package/bin/supervisor.js +2 -2
  10. package/bin/ui.js +67 -22
  11. package/bin/update-recovery.js +343 -0
  12. package/bin/warmup.js +28 -0
  13. package/dist/app/session-shell/clipboard-diagnostics.d.ts +16 -0
  14. package/dist/app/session-shell/clipboard-diagnostics.js +65 -0
  15. package/dist/app/session-shell/clipboard-image.d.ts +11 -0
  16. package/dist/app/session-shell/clipboard-image.js +38 -0
  17. package/dist/app/session-shell/editor-hyperlink-budget.d.ts +9 -0
  18. package/dist/app/session-shell/editor-hyperlink-budget.js +23 -0
  19. package/dist/app/session-shell/helper-pool.d.ts +33 -0
  20. package/dist/app/session-shell/helper-pool.js +98 -0
  21. package/dist/app/session-shell/image-preparation-client.d.ts +20 -0
  22. package/dist/app/session-shell/image-preparation-client.js +145 -0
  23. package/dist/app/session-shell/image-preparation.d.ts +18 -0
  24. package/dist/app/session-shell/image-preparation.js +126 -0
  25. package/dist/app/session-shell/image-source.d.ts +13 -0
  26. package/dist/app/session-shell/image-source.js +171 -0
  27. package/dist/app/session-shell/image-worker.d.ts +17 -0
  28. package/dist/app/session-shell/image-worker.js +23 -0
  29. package/dist/app/session-shell/index.d.ts +7 -0
  30. package/dist/app/session-shell/index.js +4 -0
  31. package/dist/app/session-shell/paste-executor.d.ts +18 -0
  32. package/dist/app/session-shell/paste-executor.js +253 -0
  33. package/dist/app/session-shell/paste-helper.js +173 -0
  34. package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
  35. package/dist/app/session-shell/paste-preparation-client.js +170 -0
  36. package/dist/app/session-shell/paste-protocol.d.ts +78 -0
  37. package/dist/app/session-shell/paste-protocol.js +18 -0
  38. package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
  39. package/dist/app/session-shell/paste-text-preparation.js +134 -0
  40. package/dist/app/session-shell/paste-text-worker.js +12 -0
  41. package/dist/app/session-shell/paste-types.d.ts +17 -0
  42. package/dist/app/session-shell/path-chip-presentation.d.ts +7 -0
  43. package/dist/app/session-shell/path-chip-presentation.js +24 -0
  44. package/dist/app/session-shell/prompt-chips.d.ts +76 -0
  45. package/dist/app/session-shell/prompt-chips.js +507 -0
  46. package/dist/app/session-shell/prompt-history-controller.d.ts +36 -0
  47. package/dist/app/session-shell/prompt-history-controller.js +170 -0
  48. package/dist/app/session-shell/prompt-suggestion-controller.d.ts +35 -0
  49. package/dist/app/session-shell/prompt-suggestion-controller.js +207 -0
  50. package/dist/app/session-shell/quit-outro-effects.d.ts +29 -0
  51. package/dist/app/session-shell/quit-outro-effects.js +242 -0
  52. package/dist/app/session-shell/quit-outro.d.ts +38 -0
  53. package/dist/app/session-shell/quit-outro.js +98 -0
  54. package/dist/app/session-shell/response-copy-coordinator.d.ts +27 -0
  55. package/dist/app/session-shell/response-copy-coordinator.js +187 -0
  56. package/dist/app/session-shell/response-copy-helper.js +122 -0
  57. package/dist/app/session-shell/response-copy-protocol.d.ts +56 -0
  58. package/dist/app/session-shell/response-copy-protocol.js +5 -0
  59. package/dist/app/session-shell/response-copy-transport.d.ts +39 -0
  60. package/dist/app/session-shell/response-copy-transport.js +217 -0
  61. package/dist/app/session-shell/session-shell-root.d.ts +265 -0
  62. package/dist/app/session-shell/session-shell-root.js +1366 -0
  63. package/dist/app/session-shell/session-shell.d.ts +59 -0
  64. package/dist/app/session-shell/session-shell.js +1917 -0
  65. package/dist/app/session-shell/session-viewport-controller.d.ts +61 -0
  66. package/dist/app/session-shell/session-viewport-controller.js +597 -0
  67. package/dist/app/session-shell/stream-presentation-coalescer.d.ts +29 -0
  68. package/dist/app/session-shell/stream-presentation-coalescer.js +79 -0
  69. package/dist/app/session-shell/system-clipboard.d.ts +20 -0
  70. package/dist/app/session-shell/system-clipboard.js +159 -0
  71. package/dist/app/session-shell/text-paste.d.ts +5 -0
  72. package/dist/app/session-shell/text-paste.js +16 -0
  73. package/dist/cli/capabilities.d.ts +6 -0
  74. package/dist/cli/capabilities.js +7 -0
  75. package/dist/cli/dispatch.d.ts +46 -0
  76. package/dist/cli/dispatch.js +261 -0
  77. package/dist/cli/index.d.ts +8 -0
  78. package/dist/cli/index.js +4 -0
  79. package/dist/cli/package-messages.d.ts +26 -0
  80. package/dist/cli/package-messages.js +71 -0
  81. package/dist/cli/packages.d.ts +32 -0
  82. package/dist/cli/packages.js +81 -0
  83. package/dist/cli/version-stats.d.ts +22 -0
  84. package/dist/cli/version-stats.js +112 -0
  85. package/dist/composition/index.d.ts +2 -0
  86. package/dist/composition/index.js +2 -0
  87. package/dist/composition/owned-ui.d.ts +37 -0
  88. package/dist/composition/owned-ui.js +136 -0
  89. package/dist/composition/settings-route-host.d.ts +7 -0
  90. package/dist/composition/settings-route-host.js +110 -0
  91. package/dist/contracts/agent-engine/capability-ports.d.ts +95 -0
  92. package/dist/contracts/agent-engine/domain-validation.js +107 -0
  93. package/dist/contracts/agent-engine/domain.d.ts +138 -0
  94. package/dist/contracts/agent-engine/index.d.ts +11 -0
  95. package/dist/contracts/agent-engine/index.js +6 -0
  96. package/dist/contracts/agent-engine/package-ports.d.ts +60 -0
  97. package/dist/contracts/agent-engine/ports.js +1 -0
  98. package/dist/contracts/owned-ui/extension-ui.d.ts +310 -0
  99. package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
  100. package/dist/contracts/owned-ui/image-attachments.js +67 -0
  101. package/dist/contracts/owned-ui/index.d.ts +12 -0
  102. package/dist/contracts/owned-ui/index.js +8 -0
  103. package/dist/contracts/owned-ui/model.d.ts +378 -0
  104. package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
  105. package/dist/contracts/owned-ui/prompt-history.js +23 -0
  106. package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
  107. package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
  108. package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
  109. package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
  110. package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
  111. package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
  112. package/dist/contracts/owned-ui/validation.d.ts +15 -0
  113. package/dist/contracts/owned-ui/validation.js +523 -0
  114. package/dist/contracts/presentation/index.d.ts +104 -0
  115. package/dist/features/launch/development-launch.js +36 -0
  116. package/dist/features/launch/index.d.ts +12 -0
  117. package/dist/features/launch/index.js +6 -0
  118. package/dist/features/launch/intent.d.ts +12 -0
  119. package/dist/features/launch/intent.js +8 -0
  120. package/dist/features/launch/prepare-launch.d.ts +11 -0
  121. package/dist/features/launch/prepare-launch.js +14 -0
  122. package/dist/features/launch/profile-paths.d.ts +16 -0
  123. package/dist/features/launch/profile-paths.js +36 -0
  124. package/dist/features/launch/runtime-selection.d.ts +16 -0
  125. package/dist/features/launch/runtime-selection.js +13 -0
  126. package/dist/features/owned-ui/index.d.ts +6 -0
  127. package/dist/features/owned-ui/index.js +4 -0
  128. package/dist/features/owned-ui/project-trust-prompt.d.ts +25 -0
  129. package/dist/features/owned-ui/project-trust-prompt.js +149 -0
  130. package/dist/features/owned-ui/run.d.ts +17 -0
  131. package/dist/features/owned-ui/run.js +64 -0
  132. package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
  133. package/dist/features/owned-ui/session-fork-prompt.js +34 -0
  134. package/dist/features/owned-ui/settings-app.d.ts +21 -0
  135. package/dist/features/owned-ui/settings-app.js +807 -0
  136. package/dist/features/owned-ui/settings-route.d.ts +2 -0
  137. package/dist/features/owned-ui/settings-route.js +2 -0
  138. package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
  139. package/dist/features/prompt-history/image-sidecar.js +130 -0
  140. package/dist/features/prompt-history/index.d.ts +4 -0
  141. package/dist/features/prompt-history/index.js +3 -0
  142. package/dist/features/prompt-history/paths.d.ts +5 -0
  143. package/dist/features/prompt-history/paths.js +17 -0
  144. package/dist/features/prompt-history/service.d.ts +54 -0
  145. package/dist/features/prompt-history/service.js +425 -0
  146. package/dist/features/prompt-history/store.d.ts +16 -0
  147. package/dist/features/prompt-history/store.js +219 -0
  148. package/dist/features/prompt-history/worker.d.ts +9 -0
  149. package/dist/features/prompt-history/worker.js +45 -0
  150. package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
  151. package/dist/features/prompt-suggestions/diagnostics.js +82 -0
  152. package/dist/features/prompt-suggestions/index.d.ts +2 -0
  153. package/dist/features/prompt-suggestions/index.js +1 -0
  154. package/dist/foundation/launch-context/index.d.ts +59 -0
  155. package/dist/foundation/launch-context/index.js +136 -0
  156. package/dist/foundation/launch-guardian/index.d.ts +2 -0
  157. package/dist/foundation/launch-guardian/index.js +1 -0
  158. package/dist/foundation/launch-guardian/main.d.ts +33 -0
  159. package/dist/foundation/launch-guardian/main.js +180 -0
  160. package/dist/foundation/lifecycle/commands.js +1 -0
  161. package/dist/foundation/lifecycle/index.d.ts +11 -0
  162. package/dist/foundation/lifecycle/index.js +5 -0
  163. package/dist/foundation/lifecycle/model.d.ts +64 -0
  164. package/dist/foundation/lifecycle/model.js +40 -0
  165. package/dist/foundation/lifecycle/paths.d.ts +30 -0
  166. package/dist/foundation/lifecycle/paths.js +70 -0
  167. package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
  168. package/dist/foundation/lifecycle/session-selection.js +39 -0
  169. package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
  170. package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
  171. package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
  172. package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
  173. package/dist/foundation/process-containment/index.d.ts +8 -0
  174. package/dist/foundation/process-containment/index.js +6 -0
  175. package/dist/foundation/process-containment/linux-process-inspector.d.ts +7 -0
  176. package/dist/foundation/process-containment/linux-process-inspector.js +27 -0
  177. package/dist/foundation/process-containment/native-guardian-containment.d.ts +17 -0
  178. package/dist/foundation/process-containment/native-guardian-containment.js +140 -0
  179. package/dist/foundation/process-containment/windows-process-inspector.d.ts +19 -0
  180. package/dist/foundation/process-containment/windows-process-inspector.js +56 -0
  181. package/dist/foundation/protocol/client.d.ts +18 -0
  182. package/dist/foundation/protocol/client.js +130 -0
  183. package/dist/foundation/protocol/index.d.ts +3 -0
  184. package/dist/foundation/protocol/index.js +2 -0
  185. package/dist/foundation/protocol/messages.d.ts +90 -0
  186. package/dist/foundation/protocol/messages.js +100 -0
  187. package/dist/foundation/release/bootstrap.d.ts +51 -0
  188. package/dist/foundation/release/bootstrap.js +427 -0
  189. package/dist/foundation/release/cohort-state.d.ts +157 -0
  190. package/dist/foundation/release/cohort-state.js +472 -0
  191. package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
  192. package/dist/foundation/release/dependency-certification-retention.js +88 -0
  193. package/dist/foundation/release/dependency-certification.d.ts +24 -0
  194. package/dist/foundation/release/dependency-certification.js +266 -0
  195. package/dist/foundation/release/dependency-layer.d.ts +78 -0
  196. package/dist/foundation/release/dependency-layer.js +466 -0
  197. package/dist/foundation/release/endpoints.d.ts +24 -0
  198. package/dist/foundation/release/endpoints.js +134 -0
  199. package/dist/foundation/release/immutable-platform.d.ts +6 -0
  200. package/dist/foundation/release/immutable-platform.js +13 -0
  201. package/dist/foundation/release/index.d.ts +30 -0
  202. package/dist/foundation/release/index.js +16 -0
  203. package/dist/foundation/release/release-gc.d.ts +71 -0
  204. package/dist/foundation/release/release-gc.js +764 -0
  205. package/dist/foundation/release/release-store.d.ts +49 -0
  206. package/dist/foundation/release/release-store.js +235 -0
  207. package/dist/foundation/release/release.d.ts +43 -0
  208. package/dist/foundation/release/release.js +215 -0
  209. package/dist/foundation/release/restart-certification.d.ts +68 -0
  210. package/dist/foundation/release/restart-certification.js +227 -0
  211. package/dist/foundation/release/types.d.ts +11 -0
  212. package/dist/foundation/release/types.js +1 -0
  213. package/dist/foundation/release/update-launch.d.ts +6 -0
  214. package/dist/foundation/release/update-launch.js +17 -0
  215. package/dist/foundation/release/update-recovery.d.ts +76 -0
  216. package/dist/foundation/release/update-recovery.js +356 -0
  217. package/dist/foundation/release/update-transaction.d.ts +42 -0
  218. package/dist/foundation/release/update-transaction.js +101 -0
  219. package/dist/foundation/release/update.d.ts +119 -0
  220. package/dist/foundation/release/update.js +632 -0
  221. package/dist/foundation/release/warmup.d.ts +3 -0
  222. package/dist/foundation/release/warmup.js +47 -0
  223. package/dist/foundation/startup/index.d.ts +4 -0
  224. package/dist/foundation/startup/index.js +2 -0
  225. package/dist/foundation/startup/startup-budget.d.ts +46 -0
  226. package/dist/foundation/startup/startup-budget.js +42 -0
  227. package/dist/foundation/startup/startup-descriptor.js +34 -0
  228. package/dist/foundation/startup/startup-runtime.d.ts +27 -0
  229. package/dist/foundation/startup/startup-runtime.js +128 -0
  230. package/dist/foundation/storage/control-store.d.ts +18 -0
  231. package/dist/foundation/storage/control-store.js +342 -0
  232. package/dist/foundation/storage/index.d.ts +1 -0
  233. package/dist/foundation/storage/index.js +1 -0
  234. package/dist/foundation/supervision/index.d.ts +3 -0
  235. package/dist/foundation/supervision/index.js +3 -0
  236. package/dist/foundation/supervision/main.d.ts +1 -0
  237. package/dist/foundation/supervision/main.js +84 -0
  238. package/dist/foundation/supervision/paths.d.ts +1 -0
  239. package/dist/foundation/supervision/paths.js +1 -0
  240. package/dist/foundation/supervision/server.d.ts +46 -0
  241. package/dist/foundation/supervision/server.js +573 -0
  242. package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
  243. package/dist/foundation/terminal-cleanup/fatal-exit.js +87 -0
  244. package/dist/foundation/terminal-cleanup/index.d.ts +3 -0
  245. package/dist/foundation/terminal-cleanup/index.js +2 -0
  246. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
  247. package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
  248. package/dist/integrations/pi/components/components.d.ts +4 -0
  249. package/dist/integrations/pi/components/components.js +64 -0
  250. package/dist/integrations/pi/components/conformance.d.ts +18 -0
  251. package/dist/integrations/pi/components/conformance.js +70 -0
  252. package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
  253. package/dist/integrations/pi/components/editor-interaction.js +1 -0
  254. package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
  255. package/dist/integrations/pi/components/history-editor-loader.js +5 -0
  256. package/dist/integrations/pi/components/index.d.ts +21 -0
  257. package/dist/integrations/pi/components/index.js +13 -0
  258. package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
  259. package/dist/integrations/pi/components/owned-editor-ux.js +1094 -0
  260. package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
  261. package/dist/integrations/pi/components/path-word-ranges.js +37 -0
  262. package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
  263. package/dist/integrations/pi/components/prompt-input-port.js +1 -0
  264. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +167 -0
  265. package/dist/integrations/pi/components/resources/builtin-themes.js +168 -0
  266. package/dist/integrations/pi/components/shell-components.d.ts +7 -0
  267. package/dist/integrations/pi/components/shell-components.js +7 -0
  268. package/dist/integrations/pi/components/shell-editor-autocomplete.js +298 -0
  269. package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
  270. package/dist/integrations/pi/components/shell-extension-ui.js +280 -0
  271. package/dist/integrations/pi/components/shell-footer-status.d.ts +7 -0
  272. package/dist/integrations/pi/components/shell-footer-status.js +248 -0
  273. package/dist/integrations/pi/components/shell-presenters-info.d.ts +43 -0
  274. package/dist/integrations/pi/components/shell-presenters-info.js +114 -0
  275. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
  276. package/dist/integrations/pi/components/shell-presenters-transcript.js +433 -0
  277. package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +123 -0
  278. package/dist/integrations/pi/components/shell-selectors-dialogs.js +242 -0
  279. package/dist/integrations/pi/components/shell-shared-facade.d.ts +217 -0
  280. package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
  281. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
  282. package/dist/integrations/pi/components/submitted-prompt-adapter.js +49 -0
  283. package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
  284. package/dist/integrations/pi/components/tool-image-presentation.js +83 -0
  285. package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
  286. package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
  287. package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
  288. package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
  289. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +445 -0
  290. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +370 -0
  291. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
  292. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +13 -0
  293. package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +29 -0
  294. package/dist/integrations/pi/components/upstream/components/daxnuts.js +146 -0
  295. package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +4 -0
  296. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +48 -0
  297. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +20 -0
  298. package/dist/integrations/pi/components/upstream/components/extension-editor.js +84 -0
  299. package/dist/integrations/pi/components/upstream/components/mermaid.js +81 -0
  300. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +46 -0
  301. package/dist/integrations/pi/components/upstream/components/owned-editor.js +187 -0
  302. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +59 -0
  303. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +346 -0
  304. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +11 -0
  305. package/dist/integrations/pi/components/upstream/components/session-footer.js +123 -0
  306. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +161 -0
  307. package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +95 -0
  308. package/dist/integrations/pi/components/upstream/components/session-selector.js +893 -0
  309. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +21 -0
  310. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +46 -0
  311. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +35 -0
  312. package/dist/integrations/pi/components/upstream/components/status-indicator.js +69 -0
  313. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +67 -0
  314. package/dist/integrations/pi/components/upstream/components/tool-execution.js +365 -0
  315. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +101 -0
  316. package/dist/integrations/pi/components/upstream/components/tree-selector.js +1275 -0
  317. package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
  318. package/dist/integrations/pi/components/upstream/components/trust-selector.js +81 -0
  319. package/dist/integrations/pi/components/upstream/external-editor.js +43 -0
  320. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +289 -0
  321. package/dist/integrations/pi/components/upstream/history/editor-core.js +2144 -0
  322. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +35 -0
  323. package/dist/integrations/pi/components/upstream/history/kill-ring.js +51 -0
  324. package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
  325. package/dist/integrations/pi/components/upstream/history/printable-key.js +43 -0
  326. package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +14 -0
  327. package/dist/integrations/pi/components/upstream/history/text-helpers.js +31 -0
  328. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +25 -0
  329. package/dist/integrations/pi/components/upstream/history/undo-stack.js +39 -0
  330. package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
  331. package/dist/integrations/pi/components/upstream/history/word-navigation.js +103 -0
  332. package/dist/integrations/pi/components/upstream/model-search.d.ts +18 -0
  333. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +33 -0
  334. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +114 -0
  335. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +61 -0
  336. package/dist/integrations/pi/components/upstream/theme/theme.js +337 -0
  337. package/dist/integrations/pi/engine/adapter.d.ts +135 -0
  338. package/dist/integrations/pi/engine/adapter.js +648 -0
  339. package/dist/integrations/pi/engine/changelog.d.ts +2 -0
  340. package/dist/integrations/pi/engine/changelog.js +63 -0
  341. package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
  342. package/dist/integrations/pi/engine/command-dispatch.js +125 -0
  343. package/dist/integrations/pi/engine/compaction-progress.d.ts +28 -0
  344. package/dist/integrations/pi/engine/compaction-progress.js +96 -0
  345. package/dist/integrations/pi/engine/conformance.d.ts +39 -0
  346. package/dist/integrations/pi/engine/conformance.js +140 -0
  347. package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
  348. package/dist/integrations/pi/engine/event-delivery.js +184 -0
  349. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
  350. package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
  351. package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
  352. package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
  353. package/dist/integrations/pi/engine/index.d.ts +18 -0
  354. package/dist/integrations/pi/engine/index.js +10 -0
  355. package/dist/integrations/pi/engine/message-values.d.ts +29 -0
  356. package/dist/integrations/pi/engine/message-values.js +168 -0
  357. package/dist/integrations/pi/engine/package-integration.d.ts +13 -0
  358. package/dist/integrations/pi/engine/package-integration.js +118 -0
  359. package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
  360. package/dist/integrations/pi/engine/pending-delivery.js +156 -0
  361. package/dist/integrations/pi/engine/pi-settings-metadata.json +385 -0
  362. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +22 -0
  363. package/dist/integrations/pi/engine/project-trust-preflight.js +50 -0
  364. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
  365. package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
  366. package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
  367. package/dist/integrations/pi/engine/provider-authentication.js +209 -0
  368. package/dist/integrations/pi/engine/resource-catalog.d.ts +49 -0
  369. package/dist/integrations/pi/engine/resource-catalog.js +289 -0
  370. package/dist/integrations/pi/engine/resources/changelog.json +12 -0
  371. package/dist/integrations/pi/engine/runtime-integration.d.ts +53 -0
  372. package/dist/integrations/pi/engine/runtime-integration.js +118 -0
  373. package/dist/integrations/pi/engine/session-events.d.ts +48 -0
  374. package/dist/integrations/pi/engine/session-events.js +223 -0
  375. package/dist/integrations/pi/engine/session-integration.d.ts +67 -0
  376. package/dist/integrations/pi/engine/session-integration.js +195 -0
  377. package/dist/integrations/pi/engine/session-runtime.d.ts +84 -0
  378. package/dist/integrations/pi/engine/session-runtime.js +249 -0
  379. package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
  380. package/dist/integrations/pi/engine/session-selection.js +90 -0
  381. package/dist/integrations/pi/engine/settings-bridge.d.ts +121 -0
  382. package/dist/integrations/pi/engine/settings-bridge.js +514 -0
  383. package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
  384. package/dist/integrations/pi/engine/settings-metadata.js +67 -0
  385. package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
  386. package/dist/integrations/pi/engine/settings-port.js +353 -0
  387. package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
  388. package/dist/integrations/pi/engine/tool-rendering.js +145 -0
  389. package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
  390. package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
  391. package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
  392. package/dist/integrations/pi/engine/transcript-projection.js +405 -0
  393. package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
  394. package/dist/integrations/pi/engine/usage-view.js +56 -0
  395. package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
  396. package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
  397. package/dist/integrations/pi/engine/workflow-contexts.d.ts +59 -0
  398. package/dist/integrations/pi/engine/workflow-contexts.js +316 -0
  399. package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
  400. package/dist/integrations/pi/engine/workflow-runner.js +509 -0
  401. package/dist/integrations/pi/engine/workflow-support.d.ts +33 -0
  402. package/dist/integrations/pi/engine/workflow-support.js +352 -0
  403. package/dist/integrations/pi/engine/workflows.d.ts +251 -0
  404. package/dist/integrations/pi/engine/workflows.js +63 -0
  405. package/dist/integrations/pi/startup-public.d.ts +2 -0
  406. package/dist/integrations/pi/startup-public.js +2223 -0
  407. package/dist/integrations/pi/startup-public.manifest.json +12502 -0
  408. package/dist/integrations/pi/tui-runtime/adapter.d.ts +56 -0
  409. package/dist/integrations/pi/tui-runtime/adapter.js +783 -0
  410. package/dist/integrations/pi/tui-runtime/contracts.d.ts +156 -0
  411. package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
  412. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +88 -0
  413. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +433 -0
  414. package/dist/integrations/pi/tui-runtime/index.d.ts +9 -0
  415. package/dist/integrations/pi/tui-runtime/index.js +5 -0
  416. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
  417. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
  418. package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +13 -0
  419. package/dist/integrations/pi/tui-runtime/mouse-report-input.js +57 -0
  420. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
  421. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +158 -0
  422. package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +4 -0
  423. package/dist/integrations/pi/tui-runtime/presentation-adapter.js +48 -0
  424. package/dist/native/darwin-arm64/manifest.json +4 -4
  425. package/dist/native/darwin-arm64/process-guardian +0 -0
  426. package/dist/native/linux-x64/manifest.json +3 -3
  427. package/dist/native/linux-x64/process-guardian +0 -0
  428. package/dist/native/win32-x64/manifest.json +3 -3
  429. package/dist/native/win32-x64/process-guardian.exe +0 -0
  430. package/dist/product-identity.d.ts +37 -0
  431. package/dist/product-identity.js +119 -0
  432. package/dist/product-identity.json +85 -0
  433. package/dist/runtime-payload-inventory.json +127147 -0
  434. package/dist/ui/apps/contracts.d.ts +64 -0
  435. package/dist/ui/apps/host.d.ts +42 -0
  436. package/dist/ui/apps/host.js +156 -0
  437. package/dist/ui/apps/index.d.ts +5 -0
  438. package/dist/ui/apps/index.js +3 -0
  439. package/dist/ui/apps/registry.d.ts +12 -0
  440. package/dist/ui/apps/registry.js +33 -0
  441. package/dist/ui/components/dialog-panel.js +49 -0
  442. package/dist/ui/components/frame.d.ts +22 -0
  443. package/dist/ui/components/frame.js +55 -0
  444. package/dist/ui/components/index.d.ts +47 -0
  445. package/dist/ui/components/index.js +25 -0
  446. package/dist/ui/components/line-input.d.ts +68 -0
  447. package/dist/ui/components/line-input.js +224 -0
  448. package/dist/ui/components/list-view.d.ts +60 -0
  449. package/dist/ui/components/list-view.js +82 -0
  450. package/dist/ui/components/mouse.d.ts +25 -0
  451. package/dist/ui/components/mouse.js +70 -0
  452. package/dist/ui/components/progress-status.d.ts +2 -0
  453. package/dist/ui/components/progress-status.js +4 -0
  454. package/dist/ui/components/prompt-input.d.ts +32 -0
  455. package/dist/ui/components/prompt-input.js +51 -0
  456. package/dist/ui/components/scrollbar.d.ts +88 -0
  457. package/dist/ui/components/scrollbar.js +137 -0
  458. package/dist/ui/components/selection-copy.d.ts +24 -0
  459. package/dist/ui/components/selection-copy.js +39 -0
  460. package/dist/ui/components/shortcuts.d.ts +58 -0
  461. package/dist/ui/components/shortcuts.js +82 -0
  462. package/dist/ui/components/spans.d.ts +28 -0
  463. package/dist/ui/components/spans.js +266 -0
  464. package/dist/ui/components/submitted-prompt.d.ts +23 -0
  465. package/dist/ui/components/submitted-prompt.js +50 -0
  466. package/dist/ui/components/surface.d.ts +20 -0
  467. package/dist/ui/components/surface.js +44 -0
  468. package/dist/ui/components/text-selection.d.ts +62 -0
  469. package/dist/ui/components/text-selection.js +210 -0
  470. package/dist/ui/components/text.d.ts +38 -0
  471. package/dist/ui/components/text.js +185 -0
  472. package/dist/ui/components/transcript-viewport.d.ts +173 -0
  473. package/dist/ui/components/transcript-viewport.js +753 -0
  474. package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
  475. package/dist/ui/components/visible-hyperlinks.js +97 -0
  476. package/dist/ui/settings/declarations.d.ts +141 -0
  477. package/dist/ui/settings/declarations.js +135 -0
  478. package/dist/ui/settings/index.d.ts +10 -0
  479. package/dist/ui/settings/index.js +5 -0
  480. package/dist/ui/settings/manager.d.ts +54 -0
  481. package/dist/ui/settings/manager.js +256 -0
  482. package/dist/ui/settings/migrations.d.ts +13 -0
  483. package/dist/ui/settings/migrations.js +74 -0
  484. package/dist/ui/settings/sections.d.ts +52 -0
  485. package/dist/ui/settings/sections.js +112 -0
  486. package/docs/architecture/boundaries.md +17 -13
  487. package/docs/architecture/code-documentation.md +77 -0
  488. package/docs/architecture/history-editor-provenance.md +100 -0
  489. package/docs/architecture/internal-naming.md +91 -0
  490. package/docs/architecture/process-guardian-provenance.md +3 -1
  491. package/docs/architecture/project-structure.md +69 -30
  492. package/docs/architecture/prompt-suggestions.md +68 -0
  493. package/docs/architecture/resource-and-data-policy.md +28 -2
  494. package/docs/architecture/response-copy-delivery.md +85 -0
  495. package/docs/architecture/terminal-host-proof-gate.md +1 -1
  496. package/docs/architecture/terminal-host-spike-evidence.md +1 -1
  497. package/docs/architecture/tool-image-presentation.md +62 -0
  498. package/docs/architecture/toolchain.md +32 -10
  499. package/docs/architecture/ui-reference-provenance.md +60 -6
  500. package/docs/ci-release-runbook.md +256 -79
  501. package/docs/features/launch-profiles.md +24 -17
  502. package/docs/features/modal-content-interaction.md +37 -0
  503. package/docs/features/prompt-history.md +149 -0
  504. package/docs/local-worktree-cleanup.md +212 -0
  505. package/docs/manual-code-streaming-cleanup.md +88 -0
  506. package/docs/manual-ghost-link-baseline.md +89 -0
  507. package/docs/manual-launch-instance-acceptance.md +12 -35
  508. package/docs/manual-owned-ui-checkpoint.md +79 -0
  509. package/docs/manual-pi-boundary-candidate.md +4 -5
  510. package/docs/manual-terminal-colour-check.md +4 -3
  511. package/docs/openspec-archive-automation.md +259 -0
  512. package/docs/repository-governance-live-acceptance.md +77 -0
  513. package/docs/validation.md +100 -0
  514. package/package.json +49 -34
  515. package/dist/src/cli/capabilities.d.ts +0 -15
  516. package/dist/src/cli/capabilities.js +0 -7
  517. package/dist/src/cli/dispatch.d.ts +0 -32
  518. package/dist/src/cli/dispatch.js +0 -142
  519. package/dist/src/cli/index.d.ts +0 -5
  520. package/dist/src/cli/index.js +0 -5
  521. package/dist/src/cli/packages.d.ts +0 -23
  522. package/dist/src/cli/packages.js +0 -84
  523. package/dist/src/cli/version-stats.d.ts +0 -16
  524. package/dist/src/cli/version-stats.js +0 -72
  525. package/dist/src/cli/version.d.ts +0 -2
  526. package/dist/src/cli/version.js +0 -23
  527. package/dist/src/composition/index.d.ts +0 -48
  528. package/dist/src/composition/index.js +0 -258
  529. package/dist/src/features/launch/development-launch.js +0 -28
  530. package/dist/src/features/launch/index.d.ts +0 -7
  531. package/dist/src/features/launch/index.js +0 -7
  532. package/dist/src/features/launch/intent.d.ts +0 -7
  533. package/dist/src/features/launch/intent.js +0 -4
  534. package/dist/src/features/launch/prepare-launch.d.ts +0 -13
  535. package/dist/src/features/launch/prepare-launch.js +0 -21
  536. package/dist/src/features/launch/profile-paths.d.ts +0 -15
  537. package/dist/src/features/launch/profile-paths.js +0 -31
  538. package/dist/src/features/launch/profiles.d.ts +0 -12
  539. package/dist/src/features/launch/profiles.js +0 -26
  540. package/dist/src/features/launch/runtime-selection.d.ts +0 -19
  541. package/dist/src/features/launch/runtime-selection.js +0 -13
  542. package/dist/src/features/owned-ui/customization.d.ts +0 -38
  543. package/dist/src/features/owned-ui/customization.js +0 -108
  544. package/dist/src/features/owned-ui/diagnostics.d.ts +0 -33
  545. package/dist/src/features/owned-ui/diagnostics.js +0 -94
  546. package/dist/src/features/owned-ui/index.d.ts +0 -4
  547. package/dist/src/features/owned-ui/index.js +0 -4
  548. package/dist/src/features/owned-ui/run.d.ts +0 -11
  549. package/dist/src/features/owned-ui/run.js +0 -15
  550. package/dist/src/features/owned-ui/settings-app.d.ts +0 -22
  551. package/dist/src/features/owned-ui/settings-app.js +0 -633
  552. package/dist/src/features/workspace/capabilities.d.ts +0 -31
  553. package/dist/src/features/workspace/capabilities.js +0 -75
  554. package/dist/src/features/workspace/index.d.ts +0 -6
  555. package/dist/src/features/workspace/index.js +0 -6
  556. package/dist/src/features/workspace/presentation.d.ts +0 -30
  557. package/dist/src/features/workspace/presentation.js +0 -70
  558. package/dist/src/features/workspace/reconciliation.d.ts +0 -15
  559. package/dist/src/features/workspace/reconciliation.js +0 -82
  560. package/dist/src/features/workspace/reducer.d.ts +0 -42
  561. package/dist/src/features/workspace/reducer.js +0 -213
  562. package/dist/src/features/workspace/router.d.ts +0 -31
  563. package/dist/src/features/workspace/router.js +0 -124
  564. package/dist/src/features/workspace/store.d.ts +0 -17
  565. package/dist/src/features/workspace/store.js +0 -54
  566. package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +0 -95
  567. package/dist/src/foundation/agent-engine-contracts/domain-validation.js +0 -89
  568. package/dist/src/foundation/agent-engine-contracts/domain.d.ts +0 -116
  569. package/dist/src/foundation/agent-engine-contracts/index.d.ts +0 -8
  570. package/dist/src/foundation/agent-engine-contracts/index.js +0 -8
  571. package/dist/src/foundation/agent-engine-contracts/package-ports.d.ts +0 -54
  572. package/dist/src/foundation/launch-guardian/index.d.ts +0 -1
  573. package/dist/src/foundation/launch-guardian/index.js +0 -1
  574. package/dist/src/foundation/launch-guardian/main.d.ts +0 -31
  575. package/dist/src/foundation/launch-guardian/main.js +0 -165
  576. package/dist/src/foundation/lifecycle/index.d.ts +0 -4
  577. package/dist/src/foundation/lifecycle/index.js +0 -4
  578. package/dist/src/foundation/lifecycle/model.d.ts +0 -64
  579. package/dist/src/foundation/lifecycle/model.js +0 -40
  580. package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
  581. package/dist/src/foundation/lifecycle/paths.js +0 -42
  582. package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -11
  583. package/dist/src/foundation/native-host-protocol/codec.js +0 -56
  584. package/dist/src/foundation/native-host-protocol/evidence.d.ts +0 -67
  585. package/dist/src/foundation/native-host-protocol/evidence.js +0 -141
  586. package/dist/src/foundation/native-host-protocol/index.d.ts +0 -4
  587. package/dist/src/foundation/native-host-protocol/index.js +0 -4
  588. package/dist/src/foundation/native-host-protocol/messages.d.ts +0 -56
  589. package/dist/src/foundation/native-host-protocol/messages.js +0 -149
  590. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -13
  591. package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -33
  592. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -302
  593. package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
  594. package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
  595. package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -241
  596. package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -11
  597. package/dist/src/foundation/owned-ui-contracts/validation.js +0 -395
  598. package/dist/src/foundation/owned-ui-settings/declarations.d.ts +0 -13
  599. package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
  600. package/dist/src/foundation/owned-ui-settings/index.d.ts +0 -6
  601. package/dist/src/foundation/owned-ui-settings/index.js +0 -6
  602. package/dist/src/foundation/owned-ui-settings/migrations.d.ts +0 -13
  603. package/dist/src/foundation/owned-ui-settings/migrations.js +0 -28
  604. package/dist/src/foundation/owned-ui-settings/sections.d.ts +0 -70
  605. package/dist/src/foundation/owned-ui-settings/sections.js +0 -93
  606. package/dist/src/foundation/owned-ui-settings/session.d.ts +0 -44
  607. package/dist/src/foundation/owned-ui-settings/session.js +0 -145
  608. package/dist/src/foundation/owned-ui-settings/store.d.ts +0 -28
  609. package/dist/src/foundation/owned-ui-settings/store.js +0 -90
  610. package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -4
  611. package/dist/src/foundation/pi-component-adapter/components.js +0 -64
  612. package/dist/src/foundation/pi-component-adapter/conformance.d.ts +0 -17
  613. package/dist/src/foundation/pi-component-adapter/conformance.js +0 -69
  614. package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -13
  615. package/dist/src/foundation/pi-component-adapter/index.js +0 -13
  616. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +0 -165
  617. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +0 -166
  618. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -6
  619. package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -6
  620. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
  621. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -35
  622. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -279
  623. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -7
  624. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +0 -189
  625. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
  626. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -429
  627. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -113
  628. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -235
  629. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
  630. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -87
  631. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -422
  632. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -296
  633. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -10
  634. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -17
  635. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -51
  636. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -22
  637. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -142
  638. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -4
  639. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
  640. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -17
  641. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -81
  642. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -24
  643. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -105
  644. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -2
  645. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -18
  646. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -77
  647. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
  648. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
  649. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -55
  650. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -342
  651. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +0 -10
  652. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +0 -120
  653. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -159
  654. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -95
  655. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -889
  656. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +0 -19
  657. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +0 -44
  658. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -30
  659. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -59
  660. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -98
  661. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1272
  662. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -33
  663. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -76
  664. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -39
  665. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -15
  666. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -25
  667. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +0 -117
  668. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -61
  669. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +0 -326
  670. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +0 -164
  671. package/dist/src/foundation/pi-engine-adapter/adapter.js +0 -2367
  672. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +0 -37
  673. package/dist/src/foundation/pi-engine-adapter/conformance.js +0 -130
  674. package/dist/src/foundation/pi-engine-adapter/index.d.ts +0 -10
  675. package/dist/src/foundation/pi-engine-adapter/index.js +0 -10
  676. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +0 -30
  677. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +0 -61
  678. package/dist/src/foundation/pi-engine-adapter/package-integration.d.ts +0 -13
  679. package/dist/src/foundation/pi-engine-adapter/package-integration.js +0 -112
  680. package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +0 -374
  681. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +0 -31
  682. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +0 -80
  683. package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +0 -35
  684. package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +0 -67
  685. package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +0 -43
  686. package/dist/src/foundation/pi-engine-adapter/session-integration.js +0 -97
  687. package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
  688. package/dist/src/foundation/pi-engine-adapter/settings-integration.js +0 -233
  689. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +0 -20
  690. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +0 -48
  691. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -173
  692. package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -60
  693. package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
  694. package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
  695. package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
  696. package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
  697. package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
  698. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -39
  699. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -493
  700. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +0 -18
  701. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +0 -145
  702. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -120
  703. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
  704. package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
  705. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +0 -4
  706. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +0 -48
  707. package/dist/src/foundation/presentation-contracts/index.d.ts +0 -96
  708. package/dist/src/foundation/process-containment/index.d.ts +0 -5
  709. package/dist/src/foundation/process-containment/index.js +0 -5
  710. package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +0 -6
  711. package/dist/src/foundation/process-containment/linux-process-inspector.js +0 -26
  712. package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +0 -16
  713. package/dist/src/foundation/process-containment/native-guardian-containment.js +0 -139
  714. package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +0 -17
  715. package/dist/src/foundation/process-containment/windows-process-inspector.js +0 -53
  716. package/dist/src/foundation/protocol/client.d.ts +0 -17
  717. package/dist/src/foundation/protocol/client.js +0 -129
  718. package/dist/src/foundation/protocol/index.d.ts +0 -2
  719. package/dist/src/foundation/protocol/index.js +0 -2
  720. package/dist/src/foundation/protocol/messages.d.ts +0 -89
  721. package/dist/src/foundation/protocol/messages.js +0 -99
  722. package/dist/src/foundation/release/bootstrap.d.ts +0 -29
  723. package/dist/src/foundation/release/bootstrap.js +0 -335
  724. package/dist/src/foundation/release/cohort-state.d.ts +0 -70
  725. package/dist/src/foundation/release/cohort-state.js +0 -202
  726. package/dist/src/foundation/release/index.d.ts +0 -10
  727. package/dist/src/foundation/release/index.js +0 -10
  728. package/dist/src/foundation/release/release-gc.d.ts +0 -5
  729. package/dist/src/foundation/release/release-gc.js +0 -16
  730. package/dist/src/foundation/release/release-store.d.ts +0 -43
  731. package/dist/src/foundation/release/release-store.js +0 -175
  732. package/dist/src/foundation/release/release.d.ts +0 -38
  733. package/dist/src/foundation/release/release.js +0 -204
  734. package/dist/src/foundation/release/update-transaction.d.ts +0 -31
  735. package/dist/src/foundation/release/update-transaction.js +0 -89
  736. package/dist/src/foundation/release/update.d.ts +0 -82
  737. package/dist/src/foundation/release/update.js +0 -529
  738. package/dist/src/foundation/storage/control-store.d.ts +0 -61
  739. package/dist/src/foundation/storage/control-store.js +0 -530
  740. package/dist/src/foundation/storage/index.d.ts +0 -1
  741. package/dist/src/foundation/storage/index.js +0 -1
  742. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -46
  743. package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -118
  744. package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -52
  745. package/dist/src/foundation/structured-agent-runtime/commands.js +0 -164
  746. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +0 -41
  747. package/dist/src/foundation/structured-agent-runtime/handshake.js +0 -151
  748. package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -5
  749. package/dist/src/foundation/structured-agent-runtime/index.js +0 -5
  750. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -37
  751. package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -129
  752. package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -56
  753. package/dist/src/foundation/structured-agent-runtime/state.js +0 -118
  754. package/dist/src/foundation/supervision/index.d.ts +0 -3
  755. package/dist/src/foundation/supervision/index.js +0 -3
  756. package/dist/src/foundation/supervision/main.d.ts +0 -1
  757. package/dist/src/foundation/supervision/main.js +0 -41
  758. package/dist/src/foundation/supervision/paths.d.ts +0 -1
  759. package/dist/src/foundation/supervision/paths.js +0 -1
  760. package/dist/src/foundation/supervision/server.d.ts +0 -22
  761. package/dist/src/foundation/supervision/server.js +0 -451
  762. package/dist/src/foundation/ui-apps/contracts.d.ts +0 -42
  763. package/dist/src/foundation/ui-apps/host.d.ts +0 -42
  764. package/dist/src/foundation/ui-apps/host.js +0 -152
  765. package/dist/src/foundation/ui-apps/index.d.ts +0 -3
  766. package/dist/src/foundation/ui-apps/index.js +0 -3
  767. package/dist/src/foundation/ui-apps/registry.d.ts +0 -11
  768. package/dist/src/foundation/ui-apps/registry.js +0 -32
  769. package/dist/src/foundation/ui-components/dialog-panel.js +0 -47
  770. package/dist/src/foundation/ui-components/frame.d.ts +0 -21
  771. package/dist/src/foundation/ui-components/frame.js +0 -54
  772. package/dist/src/foundation/ui-components/index.d.ts +0 -18
  773. package/dist/src/foundation/ui-components/index.js +0 -18
  774. package/dist/src/foundation/ui-components/line-input.d.ts +0 -74
  775. package/dist/src/foundation/ui-components/line-input.js +0 -245
  776. package/dist/src/foundation/ui-components/list-view.d.ts +0 -66
  777. package/dist/src/foundation/ui-components/list-view.js +0 -76
  778. package/dist/src/foundation/ui-components/mouse.d.ts +0 -15
  779. package/dist/src/foundation/ui-components/mouse.js +0 -46
  780. package/dist/src/foundation/ui-components/scrollbar.d.ts +0 -62
  781. package/dist/src/foundation/ui-components/scrollbar.js +0 -102
  782. package/dist/src/foundation/ui-components/shortcuts.d.ts +0 -57
  783. package/dist/src/foundation/ui-components/shortcuts.js +0 -81
  784. package/dist/src/foundation/ui-components/spans.d.ts +0 -7
  785. package/dist/src/foundation/ui-components/spans.js +0 -59
  786. package/dist/src/foundation/ui-components/surface.d.ts +0 -20
  787. package/dist/src/foundation/ui-components/surface.js +0 -38
  788. package/dist/src/foundation/ui-components/text.d.ts +0 -24
  789. package/dist/src/foundation/ui-components/text.js +0 -123
  790. package/dist/src/foundation/workspace-contracts/index.d.ts +0 -2
  791. package/dist/src/foundation/workspace-contracts/index.js +0 -2
  792. package/dist/src/foundation/workspace-contracts/model.d.ts +0 -248
  793. package/dist/src/foundation/workspace-contracts/model.js +0 -2
  794. package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -13
  795. package/dist/src/foundation/workspace-contracts/validation.js +0 -335
  796. package/dist/src/product-identity.d.ts +0 -37
  797. package/dist/src/product-identity.js +0 -150
  798. package/dist/src/product-identity.json +0 -99
  799. package/docs/manual-transparent-checkpoint.md +0 -53
  800. /package/dist/{src/foundation/agent-engine-contracts/domain.js → app/session-shell/paste-helper.d.ts} +0 -0
  801. /package/dist/{src/foundation/agent-engine-contracts/ports.js → app/session-shell/paste-text-worker.d.ts} +0 -0
  802. /package/dist/{src/foundation/lifecycle/commands.js → app/session-shell/paste-types.js} +0 -0
  803. /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
  804. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
  805. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
  806. /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → contracts/agent-engine/domain.js} +0 -0
  807. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
  808. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
  809. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
  810. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
  811. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
  812. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
  813. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
  814. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
  815. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
  816. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
  817. /package/dist/{src/foundation/presentation-contracts → contracts/presentation}/index.js +0 -0
  818. /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
  819. /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
  820. /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
  821. /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
  822. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
  823. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
  824. /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
  825. /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
  826. /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
  827. /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
  828. /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
  829. /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
  830. /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
  831. /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
  832. /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
  833. /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
  834. /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
  835. /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
  836. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-editor-autocomplete.d.ts +0 -0
  837. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.d.ts +0 -0
  838. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.js +0 -0
  839. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
  840. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
  841. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
  842. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
  843. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
  844. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
  845. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
  846. /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
  847. /package/dist/{src/foundation/ui-components → ui/components}/dialog-panel.d.ts +0 -0
  848. /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
  849. /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
  850. /package/dist/{src/foundation/ui-components → ui/components}/list-block.d.ts +0 -0
  851. /package/dist/{src/foundation/ui-components → ui/components}/list-block.js +0 -0
  852. /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
  853. /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
  854. /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
  855. /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
  856. /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
  857. /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
  858. /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
  859. /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
  860. /package/dist/{src/foundation/ui-components → ui/components}/theme.d.ts +0 -0
  861. /package/dist/{src/foundation/ui-components → ui/components}/theme.js +0 -0
  862. /package/dist/{src/foundation/ui-components → ui/components}/value-menu.d.ts +0 -0
  863. /package/dist/{src/foundation/ui-components → ui/components}/value-menu.js +0 -0
  864. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
  865. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
@@ -0,0 +1,26 @@
1
+ import chalk from "chalk";
2
+ /** Supported subset of pinned Pi's package-manager CLI presentation. */
3
+ export type PackageCliVerb = "install" | "remove" | "list" | "update";
4
+ export type PackageSyntaxDiagnostic = {
5
+ readonly verb: PackageCliVerb;
6
+ readonly kind: "missing-source";
7
+ } | {
8
+ readonly verb: PackageCliVerb;
9
+ readonly kind: "unknown-option";
10
+ readonly value: string;
11
+ } | {
12
+ readonly verb: PackageCliVerb;
13
+ readonly kind: "unexpected-argument";
14
+ readonly value: string;
15
+ } | {
16
+ readonly verb: "update";
17
+ readonly kind: "conflict";
18
+ readonly message: string;
19
+ };
20
+ type MessageStyle = Pick<typeof chalk, "red" | "dim" | "bold">;
21
+ export declare function packageCommandUsage(verb: PackageCliVerb): string;
22
+ /** Diagnostic facts stay unstyled until the terminal boundary decides color support. */
23
+ export declare function renderPackageSyntax(diagnostic: PackageSyntaxDiagnostic, style?: MessageStyle): string;
24
+ /** Pi's help layout, with unsupported options and examples deliberately absent. */
25
+ export declare function packageCommandHelp(verb: PackageCliVerb, style?: MessageStyle): string;
26
+ export {};
@@ -0,0 +1,71 @@
1
+ // Provenance: wording/layout adapted from Pi 0.84.2 packages/coding-agent/src/package-manager-cli.ts
2
+ // at 914cf1472e715297caa30db4b9535d534a9eb718 (MIT); grammar is restricted to A1's supported subset.
3
+ import chalk from "chalk";
4
+ import { PRODUCT_TEXT } from "../product-identity.js";
5
+ export function packageCommandUsage(verb) {
6
+ const command = `${PRODUCT_TEXT.commandName} pi ${verb}`;
7
+ if (verb === "install" || verb === "remove")
8
+ return `${command} <source>`;
9
+ if (verb === "update")
10
+ return `${command} [source|--extensions|--models]`;
11
+ return command;
12
+ }
13
+ /** Diagnostic facts stay unstyled until the terminal boundary decides color support. */
14
+ export function renderPackageSyntax(diagnostic, style = chalk) {
15
+ const usage = packageCommandUsage(diagnostic.verb);
16
+ let message;
17
+ if (diagnostic.kind === "unknown-option") {
18
+ return `${style.red(`Unknown option ${diagnostic.value} for "${diagnostic.verb}".`)}\n`
19
+ + `${style.dim(`Use "${PRODUCT_TEXT.commandName} --help" or "${usage}".`)}\n`;
20
+ }
21
+ if (diagnostic.kind === "missing-source")
22
+ message = `Missing ${diagnostic.verb} source.`;
23
+ else if (diagnostic.kind === "unexpected-argument")
24
+ message = `Unexpected argument ${diagnostic.value}.`;
25
+ else
26
+ message = diagnostic.message;
27
+ return `${style.red(message)}\n${style.dim(`Usage: ${usage}`)}\n`;
28
+ }
29
+ /** Pi's help layout, with unsupported options and examples deliberately absent. */
30
+ export function packageCommandHelp(verb, style = chalk) {
31
+ const command = `${PRODUCT_TEXT.commandName} pi`;
32
+ const header = `${style.bold("Usage:")}\n ${packageCommandUsage(verb)}\n\n`;
33
+ switch (verb) {
34
+ case "install":
35
+ return header + `Install a package and add it to settings.
36
+
37
+ Examples:
38
+ ${command} install npm:@foo/bar
39
+ ${command} install git:github.com/user/repo
40
+ ${command} install git:git@github.com:user/repo
41
+ ${command} install https://github.com/user/repo
42
+ ${command} install ssh://git@github.com/user/repo
43
+ ${command} install ./local/path
44
+
45
+ `;
46
+ case "remove":
47
+ return header + `Remove a package and its source from settings.
48
+ Alias: ${command} uninstall <source>
49
+
50
+ Examples:
51
+ ${command} remove npm:@foo/bar
52
+ ${command} uninstall npm:@foo/bar
53
+
54
+ `;
55
+ case "list":
56
+ return header + "List installed packages from user settings.\n\n";
57
+ case "update":
58
+ return header + `Update installed packages or model catalogs.
59
+
60
+ Options:
61
+ --extensions Update installed packages only
62
+ --models Refresh model catalogs only
63
+
64
+ Short forms:
65
+ ${command} update --extensions Update installed packages only
66
+ ${command} update --models Refresh model catalogs only
67
+ ${command} update <source> Update one package
68
+
69
+ `;
70
+ }
71
+ }
@@ -0,0 +1,32 @@
1
+ import { initializeProductProfile } from "../features/launch/index.js";
2
+ import type { AgentPackageOutcome, AgentPackagesPort, AgentPackagesPortInput } from "../contracts/agent-engine/index.js";
3
+ /**
4
+ * Package commands manage A1's own profile and nothing else, so no request carries
5
+ * a profile: `update` with no source means every installed package, and refreshing
6
+ * model catalogs is its own verb rather than a flag the caller has to remember to
7
+ * check.
8
+ */
9
+ export type PackageCommandVerb = "install" | "remove" | "list" | "update" | "refresh-models";
10
+ export interface PackageCommandRequest {
11
+ readonly verb: PackageCommandVerb;
12
+ readonly source: string | null;
13
+ }
14
+ export interface PackageCommandStyle {
15
+ readonly dim: (message: string) => string;
16
+ readonly bold: (message: string) => string;
17
+ readonly green: (message: string) => string;
18
+ readonly red: (message: string) => string;
19
+ readonly yellow: (message: string) => string;
20
+ }
21
+ export interface PackageCommandEnvironment {
22
+ readonly createPort: (input: AgentPackagesPortInput) => AgentPackagesPort;
23
+ readonly cwd?: string;
24
+ readonly environment?: NodeJS.ProcessEnv;
25
+ readonly stdout?: (message: string) => void;
26
+ readonly stderr?: (message: string) => void;
27
+ readonly initializeProfile?: typeof initializeProductProfile;
28
+ /** Defaults to Chalk's terminal-aware styles; injectable for transcript tests. */
29
+ readonly style?: PackageCommandStyle;
30
+ }
31
+ export declare function runPackageCommand(request: PackageCommandRequest, environment: PackageCommandEnvironment): Promise<number>;
32
+ export declare function renderPackageOutcome(outcome: AgentPackageOutcome, style?: PackageCommandStyle): string;
@@ -0,0 +1,81 @@
1
+ import chalk from "chalk";
2
+ import { configurationRootForProfile, initializeProductProfile, resolveLaunchProfilePaths } from "../features/launch/index.js";
3
+ import { PRODUCT_TEXT } from "../product-identity.js";
4
+ export async function runPackageCommand(request, environment) {
5
+ const stdout = environment.stdout ?? (message => process.stdout.write(message));
6
+ const stderr = environment.stderr ?? (message => process.stderr.write(message));
7
+ const cwd = environment.cwd ?? process.cwd();
8
+ const processEnvironment = environment.environment ?? process.env;
9
+ const style = environment.style ?? chalk;
10
+ const paths = resolveLaunchProfilePaths({ environment: processEnvironment });
11
+ const profileRoot = configurationRootForProfile("a1", paths);
12
+ if (profileRoot === null)
13
+ throw new Error(PRODUCT_TEXT.diagnostic("has no profile root for package commands"));
14
+ try {
15
+ await (environment.initializeProfile ?? initializeProductProfile)(profileRoot);
16
+ }
17
+ catch (error) {
18
+ stderr(`${PRODUCT_TEXT.diagnostic(`could not prepare its profile at ${profileRoot}: ${message(error)}`)}\n`);
19
+ return 1;
20
+ }
21
+ const port = environment.createPort({
22
+ profileRoot,
23
+ cwd,
24
+ onProgress: progress => stdout(style.dim(`${progress.message}\n`)),
25
+ onDiagnostic: diagnostic => {
26
+ stderr(`${style.yellow(diagnostic.message)}\n`);
27
+ if (diagnostic.detail)
28
+ stderr(`${style.dim(diagnostic.detail)}\n`);
29
+ },
30
+ });
31
+ const outcome = await runVerb(port, request);
32
+ const rendered = renderPackageOutcome(outcome, style);
33
+ (outcome.status === "completed" ? stdout : stderr)(rendered);
34
+ return outcome.status === "completed" ? 0 : 1;
35
+ }
36
+ async function runVerb(port, request) {
37
+ if (request.verb === "list")
38
+ return await port.list();
39
+ if (request.verb === "refresh-models")
40
+ return await port.refreshModels();
41
+ if (request.verb === "update")
42
+ return await port.update(request.source ?? undefined);
43
+ if (request.source === null)
44
+ throw new Error(PRODUCT_TEXT.diagnostic(`requires a source for ${request.verb}`));
45
+ return request.verb === "install" ? await port.install(request.source) : await port.remove(request.source);
46
+ }
47
+ export function renderPackageOutcome(outcome, style = chalk) {
48
+ if (outcome.status === "failed") {
49
+ const fallback = outcome.operation === "refresh-models" ? "Unknown model catalog refresh error" : "Unknown package command error";
50
+ return `${style.red(`Error: ${outcome.detail ?? fallback}`)}\n`;
51
+ }
52
+ if (outcome.status === "not-found") {
53
+ return `${style.red(`No matching package found for ${outcome.source ?? "that source"}`)}\n`;
54
+ }
55
+ switch (outcome.operation) {
56
+ case "refresh-models":
57
+ return `${style.green("Model catalogs refreshed")}\n`;
58
+ case "install":
59
+ return `${style.green(`Installed ${outcome.source}`)}\n`;
60
+ case "remove":
61
+ return `${style.green(`Removed ${outcome.source}`)}\n`;
62
+ case "update":
63
+ return `${style.green(outcome.source === null ? "Updated packages" : `Updated ${outcome.source}`)}\n`;
64
+ case "list":
65
+ return renderPackageList(outcome, style);
66
+ }
67
+ }
68
+ function renderPackageList(outcome, style) {
69
+ if (outcome.packages.length === 0)
70
+ return `${style.dim("No packages installed.")}\n`;
71
+ const lines = [style.bold("User packages:")];
72
+ for (const entry of outcome.packages) {
73
+ lines.push(` ${entry.source}${entry.filtered ? " (filtered)" : ""}`);
74
+ if (entry.installedPath !== null)
75
+ lines.push(style.dim(` ${entry.installedPath}`));
76
+ }
77
+ return `${lines.join("\n")}\n`;
78
+ }
79
+ function message(error) {
80
+ return (error instanceof Error ? error.message : String(error)).replace(/\s+/g, " ").trim();
81
+ }
@@ -0,0 +1,22 @@
1
+ interface VersionProcessResult {
2
+ readonly code: number | null;
3
+ readonly stdout: string;
4
+ }
5
+ type VersionProcessRunner = (command: string, arguments_: readonly string[]) => Promise<VersionProcessResult>;
6
+ type RegistryFetcher = (url: string) => Promise<{
7
+ readonly ok: boolean;
8
+ readonly status: number;
9
+ text(): Promise<string>;
10
+ }>;
11
+ interface VersionOutput {
12
+ stdout(message: string): void;
13
+ stderr(message: string): void;
14
+ }
15
+ export interface VersionStatsOptions {
16
+ readonly packageRoot: string;
17
+ readonly output?: VersionOutput;
18
+ readonly runner?: VersionProcessRunner;
19
+ readonly fetcher?: RegistryFetcher;
20
+ }
21
+ export declare function runVersionStats(options: VersionStatsOptions): Promise<number>;
22
+ export {};
@@ -0,0 +1,112 @@
1
+ import { spawn } from "node:child_process";
2
+ import { readFile } from "node:fs/promises";
3
+ import { resolve } from "node:path";
4
+ import crossSpawn from "cross-spawn";
5
+ import { prerelease, valid as validSemver } from "semver";
6
+ import { PRODUCT_TEXT } from "../product-identity.js";
7
+ const defaultOutput = {
8
+ stdout(message) { process.stdout.write(message); },
9
+ stderr(message) { process.stderr.write(message); },
10
+ };
11
+ export async function runVersionStats(options) {
12
+ const output = options.output ?? defaultOutput;
13
+ const runner = options.runner ?? createVersionProcessRunner();
14
+ let installed;
15
+ try {
16
+ const manifest = JSON.parse(await readFile(resolve(options.packageRoot, "package.json"), "utf8"));
17
+ installed = parseVersion(manifest.version, "installed package");
18
+ }
19
+ catch (error) {
20
+ output.stderr(`${PRODUCT_TEXT.diagnostic(`could not read its installed version: ${message(error)}`)}\n`);
21
+ return 1;
22
+ }
23
+ // Compatibility: match Pi's release behavior: stable builds print only their installed version.
24
+ // Development builds retain channel visibility for preview comparison and updates.
25
+ if (prerelease(installed) === null) {
26
+ output.stdout(`${installed}\n`);
27
+ return 0;
28
+ }
29
+ const remote = await queryDistTags(runner, options.fetcher ?? defaultRegistryFetcher);
30
+ output.stdout(`Current: ${installed}\nDevelop: ${remote.develop ?? "unavailable"}\nRelease: ${remote.release ?? "unavailable"}\n`);
31
+ if (remote.error)
32
+ output.stderr(`${PRODUCT_TEXT.diagnostic(`could not resolve npm dist-tags: ${remote.error}`)}\n`);
33
+ return 0;
34
+ }
35
+ // Rationale: npm view respects the user's .npmrc registry and proxy, so it stays primary; the direct
36
+ // registry fetch below covers npm CLI versions whose --json output shape we cannot parse.
37
+ async function queryDistTags(runner, fetcher) {
38
+ const fromNpm = await queryDistTagsViaNpm(runner);
39
+ if (fromNpm.error === null)
40
+ return fromNpm;
41
+ const fromRegistry = await queryDistTagsViaRegistry(fetcher);
42
+ if (fromRegistry.error === null)
43
+ return fromRegistry;
44
+ return unavailable(`${fromNpm.error}; registry fallback failed: ${fromRegistry.error}`);
45
+ }
46
+ async function queryDistTagsViaNpm(runner) {
47
+ let result;
48
+ try {
49
+ result = await runner("npm", ["view", PRODUCT_TEXT.packageName, "dist-tags", "--json"]);
50
+ }
51
+ catch (error) {
52
+ return unavailable(message(error));
53
+ }
54
+ if (result.code !== 0)
55
+ return unavailable(`npm exited with status ${result.code ?? "unknown"}`);
56
+ try {
57
+ const parsed = JSON.parse(result.stdout);
58
+ // Compatibility: npm 12 wraps `npm view <pkg> dist-tags --json` output in a one-element array; older npm returns the bare object.
59
+ const metadata = Array.isArray(parsed) && parsed.length === 1 ? parsed[0] : parsed;
60
+ return parseDistTags(metadata, "npm");
61
+ }
62
+ catch (error) {
63
+ return unavailable(message(error));
64
+ }
65
+ }
66
+ async function queryDistTagsViaRegistry(fetcher) {
67
+ try {
68
+ const response = await fetcher(`https://registry.npmjs.org/-/package/${encodeURIComponent(PRODUCT_TEXT.packageName)}/dist-tags`);
69
+ if (!response.ok)
70
+ return unavailable(`registry responded with status ${response.status}`);
71
+ return parseDistTags(JSON.parse(await response.text()), "registry");
72
+ }
73
+ catch (error) {
74
+ return unavailable(message(error));
75
+ }
76
+ }
77
+ function parseDistTags(metadata, source) {
78
+ if (typeof metadata !== "object" || metadata === null || Array.isArray(metadata)) {
79
+ return unavailable(`${source} returned a non-object dist-tags value`);
80
+ }
81
+ try {
82
+ const tags = metadata;
83
+ const release = parseVersion(tags.latest, `${source} latest`);
84
+ const develop = tags.next === undefined ? null : parseVersion(tags.next, `${source} development channel`);
85
+ return { release, develop, error: null };
86
+ }
87
+ catch (error) {
88
+ return unavailable(message(error));
89
+ }
90
+ }
91
+ function unavailable(error) {
92
+ return { release: null, develop: null, error };
93
+ }
94
+ const defaultRegistryFetcher = async (url) => await fetch(url, { headers: { accept: "application/json" }, signal: AbortSignal.timeout(10_000) });
95
+ function createVersionProcessRunner() {
96
+ return async (command, arguments_) => await new Promise((resolvePromise, rejectPromise) => {
97
+ const child = process.platform === "win32"
98
+ ? crossSpawn(command, [...arguments_], { stdio: ["ignore", "pipe", "ignore"] })
99
+ : spawn(command, [...arguments_], { stdio: ["ignore", "pipe", "ignore"] });
100
+ const stdout = [];
101
+ child.stdout?.on("data", chunk => stdout.push(Buffer.from(chunk)));
102
+ child.once("error", rejectPromise);
103
+ child.once("close", code => resolvePromise({ code, stdout: Buffer.concat(stdout).toString("utf8") }));
104
+ });
105
+ }
106
+ function parseVersion(value, source) {
107
+ const parsed = typeof value === "string" ? validSemver(value) : null;
108
+ if (!parsed)
109
+ throw new Error(`${source} did not provide a valid semantic version`);
110
+ return parsed;
111
+ }
112
+ function message(error) { return error instanceof Error ? error.message : String(error); }
@@ -0,0 +1,2 @@
1
+ export { composeOwnedUi, composeOwnedUiApplication, type OwnedUiComposition, type OwnedUiCompositionOptions, } from "./owned-ui.js";
2
+ export { createOwnedRouteHost } from "./settings-route-host.js";
@@ -0,0 +1,2 @@
1
+ export { composeOwnedUi, composeOwnedUiApplication, } from "./owned-ui.js";
2
+ export { createOwnedRouteHost } from "./settings-route-host.js";
@@ -0,0 +1,37 @@
1
+ import type { SessionSelection } from "../foundation/lifecycle/session-selection.js";
2
+ import type { PiEngineAdapter } from "../integrations/pi/engine/adapter.js";
3
+ import type { PiProjectTrustPreflightPrompt } from "../integrations/pi/engine/project-trust-preflight.js";
4
+ import type { PiSessionForkPrompt } from "../integrations/pi/engine/session-selection.js";
5
+ import { OwnedSettingsManager } from "../ui/settings/manager.js";
6
+ import type { OwnedUiApplicationPort, PresentationTerminalPort } from "../contracts/presentation/index.js";
7
+ export interface OwnedUiCompositionOptions {
8
+ readonly cwd?: string;
9
+ readonly terminal?: PresentationTerminalPort;
10
+ readonly createPiAdapter?: () => Promise<PiEngineAdapter>;
11
+ /** Explicit file selection retained for SDK callers. Public CLI uses sessionSelection. */
12
+ readonly sessionPath?: string;
13
+ readonly sessionSelection?: SessionSelection;
14
+ readonly sessionForkPrompt?: PiSessionForkPrompt;
15
+ /**
16
+ * A1 profile whose settings this session reads and writes. Omitted keeps the
17
+ * session settings-free, which is what the pinned comparison paths use.
18
+ */
19
+ readonly profileId?: string;
20
+ /**
21
+ * Whether A1's product-specific surfaces are reachable. Comparison profiles
22
+ * use the same composition with those surfaces withheld.
23
+ */
24
+ readonly ownedSurfaces?: "on" | "off";
25
+ readonly projectTrustPrompt?: PiProjectTrustPreflightPrompt;
26
+ /** Explicit local diagnostic destination; ignored by comparison/settings-free compositions. */
27
+ readonly suggestionDiagnosticsPath?: string;
28
+ /** Optional local metadata-only clipboard diagnostics; never enabled in comparison profiles. */
29
+ readonly clipboardDiagnosticsPath?: string;
30
+ }
31
+ export interface OwnedUiComposition {
32
+ readonly application: OwnedUiApplicationPort;
33
+ /** Present when a profile was supplied, so the caller can resolve settings before start. */
34
+ readonly settings: OwnedSettingsManager | null;
35
+ }
36
+ export declare function composeOwnedUiApplication(options?: OwnedUiCompositionOptions): Promise<OwnedUiApplicationPort>;
37
+ export declare function composeOwnedUi(options?: OwnedUiCompositionOptions): Promise<OwnedUiComposition>;
@@ -0,0 +1,136 @@
1
+ import { SuggestionDiagnosticCapture } from "../features/prompt-suggestions/diagnostics.js";
2
+ import { PRODUCT_IDENTITY } from "../product-identity.js";
3
+ import { PromptHistoryService } from "../features/prompt-history/service.js";
4
+ import { PromptImageSidecar } from "../features/prompt-history/image-sidecar.js";
5
+ import { resolvePromptHistoryPath } from "../features/prompt-history/paths.js";
6
+ import { resolvePromptHistoryDataDir } from "../features/launch/profile-paths.js";
7
+ import { resolveProductPaths } from "../foundation/lifecycle/paths.js";
8
+ import { applyConfiguredPiTheme, getAvailablePiThemes } from "../integrations/pi/components/upstream/theme/theme.js";
9
+ import { createPiEngineAdapter } from "../integrations/pi/engine/adapter.js";
10
+ import { ClipboardDiagnosticCapture } from "../app/session-shell/clipboard-diagnostics.js";
11
+ import { OwnedUiSessionShell } from "../app/session-shell/session-shell.js";
12
+ import { OwnedSettingsManager } from "../ui/settings/manager.js";
13
+ import { createPiTerminalBridge } from "../integrations/pi/tui-runtime/presentation-adapter.js";
14
+ import { createOwnedRouteHost } from "./settings-route-host.js";
15
+ export async function composeOwnedUiApplication(options = {}) {
16
+ return (await composeOwnedUi(options)).application;
17
+ }
18
+ export async function composeOwnedUi(options = {}) {
19
+ const cwd = options.cwd ?? process.cwd();
20
+ const adapter = options.createPiAdapter
21
+ ? await options.createPiAdapter()
22
+ : await createPiEngineAdapter({
23
+ cwd,
24
+ availableThemes: () => getAvailablePiThemes().map(theme => theme.name),
25
+ settingsProductMode: options.ownedSurfaces === "off" ? "comparison" : "bare",
26
+ ...(options.sessionPath === undefined ? {} : { sessionPath: options.sessionPath }),
27
+ ...(options.sessionSelection === undefined ? {} : { sessionSelection: options.sessionSelection }),
28
+ ...(options.sessionForkPrompt === undefined ? {} : { sessionForkPrompt: options.sessionForkPrompt }),
29
+ ...(options.projectTrustPrompt === undefined ? {} : { projectTrustPrompt: options.projectTrustPrompt }),
30
+ });
31
+ const ownedSurfaces = options.ownedSurfaces !== "off";
32
+ const settings = options.profileId === undefined
33
+ ? null
34
+ : new OwnedSettingsManager({
35
+ configDir: resolveProductPaths().configDir,
36
+ profileId: options.profileId,
37
+ agentProvider: () => adapter.settingsPort(),
38
+ });
39
+ // Compatibility: bare A1 intentionally ships one visual target while its UI is being completed:
40
+ // dark, regardless of terminal detection or a previously stored Pi theme. The
41
+ // comparison profile keeps Pi's configured theme behavior and settings surface.
42
+ applyConfiguredPiTheme(ownedSurfaces ? "dark" : adapter.configuredTheme());
43
+ const routeHost = settings === null || !ownedSurfaces ? null : createOwnedRouteHost(settings);
44
+ const viewportSettings = settings === null || !ownedSurfaces ? null : {
45
+ snapshot: () => viewportSettingsSnapshot(settings),
46
+ onChange: listener => settings.onChange(() => listener(viewportSettingsSnapshot(settings))),
47
+ };
48
+ const diagnosticDestination = options.suggestionDiagnosticsPath ?? process.env[PRODUCT_IDENTITY.environment.suggestionDiagnostics];
49
+ const suggestionDiagnostics = settings !== null && ownedSurfaces && diagnosticDestination?.trim()
50
+ ? new SuggestionDiagnosticCapture({ enabled: true, destination: diagnosticDestination }) : null;
51
+ const promptSuggestions = settings === null || !ownedSurfaces ? null : {
52
+ ...(suggestionDiagnostics === null ? {} : { diagnostics: suggestionDiagnostics }),
53
+ generator: adapter,
54
+ enabled: () => settings.value("promptSuggestions"),
55
+ onChange: (listener) => settings.onChange(() => listener(settings.value("promptSuggestions"))),
56
+ };
57
+ const historyLimit = settings?.value("promptHistoryMaxItems");
58
+ const historyProfileLocation = settings === null || !ownedSurfaces || !settings.value("promptHistoryEnabled")
59
+ ? null
60
+ : resolvePromptHistoryPath(resolvePromptHistoryDataDir(), adapter.agentDir);
61
+ const promptHistory = historyProfileLocation === null ? null : {
62
+ limit: typeof historyLimit === "number" ? historyLimit : 100,
63
+ store: new PromptHistoryService({
64
+ dataDir: resolvePromptHistoryDataDir(),
65
+ profileRoot: adapter.agentDir,
66
+ limit: typeof historyLimit === "number" ? historyLimit : 100,
67
+ }),
68
+ imageSidecar: new PromptImageSidecar(historyProfileLocation.imagesDir),
69
+ };
70
+ const clipboardDestination = options.clipboardDiagnosticsPath ?? process.env[PRODUCT_IDENTITY.environment.clipboardDiagnostics];
71
+ const clipboardDiagnostics = settings !== null && ownedSurfaces && clipboardDestination?.trim()
72
+ ? new ClipboardDiagnosticCapture(clipboardDestination) : null;
73
+ let shell;
74
+ try {
75
+ shell = new OwnedUiSessionShell({
76
+ engine: {
77
+ backend: adapter,
78
+ cwd: adapter.cwd,
79
+ ...(routeHost === null ? {} : { routeHost }),
80
+ ...(ownedSurfaces ? { sessionLayout: "custom-viewport" } : {}),
81
+ },
82
+ presentation: {
83
+ ...(options.terminal === undefined ? {} : { terminal: createPiTerminalBridge(options.terminal) }),
84
+ ...(clipboardDiagnostics === null ? {} : { input: { onEvent: event => clipboardDiagnostics.runtime(event) } }),
85
+ ...(viewportSettings === null ? {} : { viewportSettings }),
86
+ ...(settings === null || !ownedSurfaces ? {} : {
87
+ quitOutro: { snapshot: () => quitOutroSettingsSnapshot(settings), interactive: process.stdout.isTTY === true },
88
+ }),
89
+ },
90
+ ...(clipboardDiagnostics === null ? {} : { diagnostics: {
91
+ responseCopy: { onEvent: event => clipboardDiagnostics.copy(event) },
92
+ paste: event => clipboardDiagnostics.paste(event),
93
+ } }),
94
+ ...(promptSuggestions === null ? {} : { suggestions: promptSuggestions }),
95
+ ...(promptHistory === null ? {} : { history: {
96
+ ...promptHistory,
97
+ editor: await import("../integrations/pi/components/history-editor-loader.js").then(module => module.loadHistoryEditor()),
98
+ } }),
99
+ });
100
+ }
101
+ catch (error) {
102
+ clipboardDiagnostics?.dispose();
103
+ suggestionDiagnostics?.dispose();
104
+ throw error;
105
+ }
106
+ const application = {
107
+ get disposed() { return adapter.disposed; },
108
+ start: () => shell.start(),
109
+ flush: () => adapter.flushEvents(),
110
+ waitUntilStopped: () => shell.waitUntilStopped(),
111
+ dispose: async () => {
112
+ try {
113
+ await shell.dispose();
114
+ }
115
+ finally {
116
+ suggestionDiagnostics?.dispose();
117
+ clipboardDiagnostics?.dispose();
118
+ }
119
+ },
120
+ };
121
+ return { application, settings };
122
+ }
123
+ function quitOutroSettingsSnapshot(settings) {
124
+ return {
125
+ enabled: settings.value("quitAnimation"),
126
+ effect: settings.value("quitEffect"),
127
+ durationMs: settings.value("quitEffectDurationMs"),
128
+ };
129
+ }
130
+ function viewportSettingsSnapshot(settings) {
131
+ return {
132
+ scrollbarAppearance: settings.value("scrollbarAppearance"),
133
+ scrollbarStyle: settings.value("scrollbarStyle"),
134
+ scrollbarSpeed: settings.value("scrollbarSpeed"),
135
+ };
136
+ }
@@ -0,0 +1,7 @@
1
+ import type { OwnedSettingsManager } from "../ui/settings/manager.js";
2
+ import type { UiRouteHost } from "../ui/apps/contracts.js";
3
+ /**
4
+ * Declares the A1-owned settings route without evaluating its presentation graph
5
+ * during startup. Opening the route retains input while the optional module loads.
6
+ */
7
+ export declare function createOwnedRouteHost(settings: OwnedSettingsManager): UiRouteHost;
@@ -0,0 +1,110 @@
1
+ import { SETTINGS_APP_ID, SETTINGS_ROUTE } from "../features/owned-ui/settings-route.js";
2
+ import { piTheme } from "../integrations/pi/components/upstream/theme/theme.js";
3
+ import { faint } from "../ui/components/text.js";
4
+ /**
5
+ * Declares the A1-owned settings route without evaluating its presentation graph
6
+ * during startup. Opening the route retains input while the optional module loads.
7
+ */
8
+ export function createOwnedRouteHost(settings) {
9
+ return {
10
+ claims: route => route === SETTINGS_ROUTE,
11
+ open: route => route === SETTINGS_ROUTE ? deferredSettingsSurface(settings) : null,
12
+ };
13
+ }
14
+ function deferredSettingsSurface(settings) {
15
+ let delegate = null;
16
+ let closed = false;
17
+ let failure = null;
18
+ let onRender = () => undefined;
19
+ let onExit = () => undefined;
20
+ const pending = [];
21
+ void loadSettingsSurface(settings).then(surface => {
22
+ if (closed) {
23
+ surface.close();
24
+ return;
25
+ }
26
+ delegate = surface;
27
+ surface.onRenderRequested(() => onRender());
28
+ surface.onExitRequested(() => onExit());
29
+ for (const action of pending.splice(0))
30
+ action(surface);
31
+ onRender();
32
+ }).catch(error => {
33
+ failure = `Could not load settings: ${error instanceof Error ? error.message : String(error)}`;
34
+ onRender();
35
+ });
36
+ const defer = (action) => {
37
+ if (delegate !== null)
38
+ action(delegate);
39
+ else if (!closed && pending.length < 32)
40
+ pending.push(action);
41
+ };
42
+ return {
43
+ id: SETTINGS_APP_ID,
44
+ render: (width, height) => delegate?.render(width, height)
45
+ ?? [...(height > 0 ? [failure ?? "Loading settings…"] : []), ...Array(Math.max(0, height - 1)).fill("")]
46
+ .map(line => line.slice(0, Math.max(0, width))),
47
+ handleInput: data => { defer(surface => surface.handleInput(data)); return true; },
48
+ handleMouse: event => { defer(surface => surface.handleMouse(event)); return true; },
49
+ isClosed: () => closed || delegate?.isClosed() === true,
50
+ close: () => { closed = true; pending.length = 0; delegate?.close(); },
51
+ onRenderRequested: listener => { onRender = listener; },
52
+ onExitRequested: listener => { onExit = listener; },
53
+ };
54
+ }
55
+ async function loadSettingsSurface(settings) {
56
+ const [{ SettingsApp }, { UiAppHost }, { UiAppRegistry }] = await Promise.all([
57
+ import("../features/owned-ui/settings-app.js"),
58
+ import("../ui/apps/host.js"),
59
+ import("../ui/apps/registry.js"),
60
+ ]);
61
+ const registry = new UiAppRegistry();
62
+ registry.register({ id: SETTINGS_APP_ID, route: SETTINGS_ROUTE, create: () => new SettingsApp(settings) });
63
+ let size = { width: 80, height: 24 };
64
+ let frame = [];
65
+ let closed = false;
66
+ let onRender = () => undefined;
67
+ let onExit = () => undefined;
68
+ const host = new UiAppHost({
69
+ registry,
70
+ closeOnInterrupt: true,
71
+ theme: pinnedTheme(),
72
+ surface: {
73
+ size: () => size,
74
+ requestRender: () => onRender(),
75
+ exit: () => onExit(),
76
+ present: lines => {
77
+ if (lines === null)
78
+ closed = true;
79
+ else
80
+ frame = lines;
81
+ },
82
+ },
83
+ });
84
+ host.open(SETTINGS_APP_ID);
85
+ return {
86
+ id: SETTINGS_APP_ID,
87
+ render: (width, height) => {
88
+ size = { width, height };
89
+ host.render();
90
+ return frame.length === height ? frame : [...frame.slice(0, height), ...Array(Math.max(0, height - frame.length)).fill("")];
91
+ },
92
+ handleInput: data => host.handleInput(data).consumed,
93
+ handleMouse: event => host.handleMouse(event).consumed,
94
+ isClosed: () => closed || !host.isPresenting,
95
+ close: () => host.close(),
96
+ onRenderRequested: listener => { onRender = listener; },
97
+ onExitRequested: listener => { onExit = listener; },
98
+ };
99
+ }
100
+ /** Maps A1 UI tokens onto the pinned Pi theme so owned screens match the shell. */
101
+ function pinnedTheme() {
102
+ return {
103
+ fg: (token, text) => piTheme().fg(token, text),
104
+ bold: (text) => piTheme().bold(text),
105
+ plain: (text) => text,
106
+ disabled: (text) => faint(piTheme().fg("dim", text)),
107
+ highlight: (text) => `\u001b[48;2;82;82;82m\u001b[97m${text}\u001b[39m\u001b[49m`,
108
+ panel: (text) => `\u001b[48;2;55;55;55m${text}\u001b[49m`,
109
+ };
110
+ }