@timurproko/a1 0.1.8-dev.3b54f21 → 0.1.8-dev.407

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 (643) hide show
  1. package/README.md +159 -65
  2. package/bin/cli.js +28 -10
  3. package/bin/guardian.js +12 -6
  4. package/bin/module-identity.js +69 -35
  5. package/bin/pi-tui.d.ts +6 -0
  6. package/bin/pi-tui.js +28 -0
  7. package/bin/release-cleanup.js +8 -0
  8. package/bin/supervisor.js +2 -2
  9. package/bin/sync-pi-tui-proxy.js +97 -0
  10. package/bin/ui.js +62 -21
  11. package/bin/update-recovery.js +274 -0
  12. package/bin/warmup.js +27 -0
  13. package/dist/cli/capabilities.d.ts +6 -0
  14. package/dist/{src/cli → cli}/capabilities.js +1 -1
  15. package/dist/{src/cli → cli}/dispatch.d.ts +15 -1
  16. package/dist/cli/dispatch.js +261 -0
  17. package/dist/cli/package-messages.d.ts +26 -0
  18. package/dist/cli/package-messages.js +71 -0
  19. package/dist/{src/cli → cli}/packages.d.ts +11 -2
  20. package/dist/{src/cli → cli}/packages.js +24 -27
  21. package/dist/{src/cli → cli}/version-stats.d.ts +6 -0
  22. package/dist/cli/version-stats.js +112 -0
  23. package/dist/composition/agent-engine-bridge.d.ts +3 -0
  24. package/dist/composition/agent-engine-bridge.js +108 -0
  25. package/dist/composition/index.d.ts +3 -0
  26. package/dist/composition/index.js +3 -0
  27. package/dist/composition/owned-ui.d.ts +35 -0
  28. package/dist/composition/owned-ui.js +118 -0
  29. package/dist/composition/process.d.ts +16 -0
  30. package/dist/composition/process.js +45 -0
  31. package/dist/composition/settings-route-host.d.ts +8 -0
  32. package/dist/composition/settings-route-host.js +75 -0
  33. package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.d.ts +2 -2
  34. package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.js +22 -4
  35. package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain.d.ts +17 -0
  36. package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.d.ts +6 -0
  37. package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
  38. package/dist/contracts/owned-ui/image-attachments.js +67 -0
  39. package/dist/contracts/owned-ui/index.d.ts +8 -0
  40. package/dist/contracts/owned-ui/index.js +8 -0
  41. package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.d.ts +123 -0
  42. package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
  43. package/dist/contracts/owned-ui/prompt-history.js +23 -0
  44. package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
  45. package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
  46. package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
  47. package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
  48. package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
  49. package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
  50. package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/validation.d.ts +5 -1
  51. package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/validation.js +129 -4
  52. package/dist/{src/foundation/presentation-contracts → contracts/presentation}/index.d.ts +8 -0
  53. package/dist/{src/features → features}/launch/development-launch.js +11 -3
  54. package/dist/{src/features → features}/launch/index.d.ts +0 -1
  55. package/dist/{src/features → features}/launch/index.js +0 -1
  56. package/dist/features/launch/intent.d.ts +10 -0
  57. package/dist/features/launch/intent.js +8 -0
  58. package/dist/{src/features → features}/launch/prepare-launch.d.ts +0 -2
  59. package/dist/{src/features → features}/launch/prepare-launch.js +2 -9
  60. package/dist/{src/features → features}/launch/profile-paths.d.ts +3 -2
  61. package/dist/{src/features → features}/launch/profile-paths.js +13 -8
  62. package/dist/{src/features → features}/launch/runtime-selection.d.ts +2 -5
  63. package/dist/{src/features → features}/owned-ui/customization.d.ts +3 -1
  64. package/dist/{src/features → features}/owned-ui/customization.js +3 -1
  65. package/dist/{src/features → features}/owned-ui/diagnostics.d.ts +2 -1
  66. package/dist/{src/features → features}/owned-ui/diagnostics.js +1 -0
  67. package/dist/{src/features → features}/owned-ui/index.d.ts +2 -0
  68. package/dist/{src/features → features}/owned-ui/index.js +2 -0
  69. package/dist/features/owned-ui/project-trust-prompt.d.ts +25 -0
  70. package/dist/features/owned-ui/project-trust-prompt.js +149 -0
  71. package/dist/{src/features → features}/owned-ui/run.d.ts +2 -2
  72. package/dist/features/owned-ui/run.js +32 -0
  73. package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
  74. package/dist/features/owned-ui/session-fork-prompt.js +34 -0
  75. package/dist/{src/features → features}/owned-ui/settings-app.d.ts +3 -3
  76. package/dist/{src/features → features}/owned-ui/settings-app.js +105 -56
  77. package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
  78. package/dist/features/prompt-history/image-sidecar.js +130 -0
  79. package/dist/features/prompt-history/index.d.ts +4 -0
  80. package/dist/features/prompt-history/index.js +3 -0
  81. package/dist/features/prompt-history/paths.d.ts +5 -0
  82. package/dist/features/prompt-history/paths.js +17 -0
  83. package/dist/features/prompt-history/service.d.ts +54 -0
  84. package/dist/features/prompt-history/service.js +425 -0
  85. package/dist/features/prompt-history/store.d.ts +16 -0
  86. package/dist/features/prompt-history/store.js +223 -0
  87. package/dist/features/prompt-history/worker.d.ts +9 -0
  88. package/dist/features/prompt-history/worker.js +45 -0
  89. package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
  90. package/dist/features/prompt-suggestions/diagnostics.js +82 -0
  91. package/dist/features/prompt-suggestions/index.d.ts +1 -0
  92. package/dist/features/prompt-suggestions/index.js +1 -0
  93. package/dist/{src/features → features}/workspace/capabilities.d.ts +1 -1
  94. package/dist/{src/features → features}/workspace/reducer.d.ts +2 -1
  95. package/dist/{src/features → features}/workspace/reducer.js +2 -1
  96. package/dist/{src/features → features}/workspace/router.d.ts +2 -1
  97. package/dist/{src/features → features}/workspace/router.js +1 -0
  98. package/dist/{src/features → features}/workspace/store.d.ts +2 -1
  99. package/dist/{src/features → features}/workspace/store.js +1 -0
  100. package/dist/foundation/launch-context/index.d.ts +59 -0
  101. package/dist/foundation/launch-context/index.js +136 -0
  102. package/dist/{src/foundation → foundation}/launch-guardian/main.d.ts +2 -0
  103. package/dist/{src/foundation → foundation}/launch-guardian/main.js +23 -8
  104. package/dist/{src/foundation → foundation}/lifecycle/index.d.ts +2 -0
  105. package/dist/{src/foundation → foundation}/lifecycle/index.js +2 -0
  106. package/dist/{src/foundation → foundation}/lifecycle/model.d.ts +1 -1
  107. package/dist/{src/foundation → foundation}/lifecycle/model.js +1 -1
  108. package/dist/foundation/lifecycle/paths.d.ts +30 -0
  109. package/dist/{src/foundation → foundation}/lifecycle/paths.js +29 -1
  110. package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
  111. package/dist/foundation/lifecycle/session-selection.js +39 -0
  112. package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
  113. package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
  114. package/dist/{src/foundation → foundation}/native-host-protocol/codec.d.ts +2 -0
  115. package/dist/{src/foundation → foundation}/native-host-protocol/codec.js +2 -0
  116. package/dist/{src/foundation → foundation}/native-host-protocol/messages.d.ts +1 -1
  117. package/dist/{src/foundation → foundation}/native-host-protocol/messages.js +1 -1
  118. package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
  119. package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
  120. package/dist/{src/foundation → foundation}/process-containment/index.d.ts +1 -0
  121. package/dist/{src/foundation → foundation}/process-containment/index.js +1 -0
  122. package/dist/{src/foundation → foundation}/process-containment/linux-process-inspector.d.ts +1 -0
  123. package/dist/{src/foundation → foundation}/process-containment/linux-process-inspector.js +1 -0
  124. package/dist/{src/foundation → foundation}/process-containment/native-guardian-containment.d.ts +1 -0
  125. package/dist/{src/foundation → foundation}/process-containment/native-guardian-containment.js +1 -0
  126. package/dist/{src/foundation → foundation}/process-containment/windows-process-inspector.d.ts +3 -1
  127. package/dist/{src/foundation → foundation}/process-containment/windows-process-inspector.js +5 -2
  128. package/dist/{src/foundation → foundation}/protocol/client.d.ts +1 -0
  129. package/dist/{src/foundation → foundation}/protocol/client.js +1 -0
  130. package/dist/{src/foundation → foundation}/protocol/messages.d.ts +1 -0
  131. package/dist/{src/foundation → foundation}/protocol/messages.js +1 -0
  132. package/dist/foundation/release/bootstrap.d.ts +55 -0
  133. package/dist/{src/foundation → foundation}/release/bootstrap.js +219 -46
  134. package/dist/foundation/release/cohort-state.d.ts +157 -0
  135. package/dist/foundation/release/cohort-state.js +472 -0
  136. package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
  137. package/dist/foundation/release/dependency-certification-retention.js +88 -0
  138. package/dist/foundation/release/dependency-certification.d.ts +24 -0
  139. package/dist/foundation/release/dependency-certification.js +266 -0
  140. package/dist/foundation/release/dependency-layer.d.ts +81 -0
  141. package/dist/foundation/release/dependency-layer.js +466 -0
  142. package/dist/foundation/release/endpoints.d.ts +20 -0
  143. package/dist/foundation/release/endpoints.js +50 -0
  144. package/dist/foundation/release/immutable-platform.d.ts +6 -0
  145. package/dist/foundation/release/immutable-platform.js +13 -0
  146. package/dist/{src/foundation → foundation}/release/index.d.ts +6 -0
  147. package/dist/{src/foundation → foundation}/release/index.js +6 -0
  148. package/dist/foundation/release/release-gc.d.ts +71 -0
  149. package/dist/foundation/release/release-gc.js +764 -0
  150. package/dist/{src/foundation → foundation}/release/release-store.d.ts +9 -3
  151. package/dist/{src/foundation → foundation}/release/release-store.js +74 -14
  152. package/dist/{src/foundation → foundation}/release/release.d.ts +6 -1
  153. package/dist/{src/foundation → foundation}/release/release.js +15 -4
  154. package/dist/foundation/release/restart-certification.d.ts +68 -0
  155. package/dist/foundation/release/restart-certification.js +227 -0
  156. package/dist/foundation/release/update-launch.d.ts +6 -0
  157. package/dist/foundation/release/update-launch.js +17 -0
  158. package/dist/foundation/release/update-recovery.d.ts +76 -0
  159. package/dist/foundation/release/update-recovery.js +356 -0
  160. package/dist/{src/foundation → foundation}/release/update-transaction.d.ts +11 -0
  161. package/dist/{src/foundation → foundation}/release/update-transaction.js +13 -1
  162. package/dist/{src/foundation → foundation}/release/update.d.ts +40 -4
  163. package/dist/{src/foundation → foundation}/release/update.js +196 -78
  164. package/dist/foundation/release/warmup.d.ts +3 -0
  165. package/dist/foundation/release/warmup.js +47 -0
  166. package/dist/foundation/startup/index.d.ts +1 -0
  167. package/dist/foundation/startup/index.js +1 -0
  168. package/dist/foundation/startup/startup-runtime.d.ts +36 -0
  169. package/dist/foundation/startup/startup-runtime.js +142 -0
  170. package/dist/{src/foundation → foundation}/storage/control-store.d.ts +2 -1
  171. package/dist/{src/foundation → foundation}/storage/control-store.js +39 -4
  172. package/dist/{src/foundation → foundation}/structured-agent-runtime/backpressure.d.ts +2 -1
  173. package/dist/{src/foundation → foundation}/structured-agent-runtime/backpressure.js +2 -1
  174. package/dist/{src/foundation → foundation}/structured-agent-runtime/commands.d.ts +2 -1
  175. package/dist/{src/foundation → foundation}/structured-agent-runtime/commands.js +2 -1
  176. package/dist/{src/foundation → foundation}/structured-agent-runtime/handshake.d.ts +1 -1
  177. package/dist/{src/foundation → foundation}/structured-agent-runtime/handshake.js +1 -1
  178. package/dist/{src/foundation → foundation}/structured-agent-runtime/reconnection.d.ts +2 -1
  179. package/dist/{src/foundation → foundation}/structured-agent-runtime/reconnection.js +2 -1
  180. package/dist/{src/foundation → foundation}/structured-agent-runtime/state.d.ts +2 -1
  181. package/dist/{src/foundation → foundation}/structured-agent-runtime/state.js +2 -1
  182. package/dist/foundation/supervision/index.d.ts +3 -0
  183. package/dist/foundation/supervision/index.js +3 -0
  184. package/dist/foundation/supervision/main.d.ts +1 -0
  185. package/dist/foundation/supervision/main.js +84 -0
  186. package/dist/foundation/supervision/paths.d.ts +1 -0
  187. package/dist/foundation/supervision/paths.js +1 -0
  188. package/dist/foundation/supervision/server.d.ts +51 -0
  189. package/dist/{src/foundation → foundation}/supervision/server.js +142 -20
  190. package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
  191. package/dist/foundation/terminal-cleanup/fatal-exit.js +85 -0
  192. package/dist/foundation/terminal-cleanup/index.d.ts +2 -0
  193. package/dist/foundation/terminal-cleanup/index.js +2 -0
  194. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
  195. package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
  196. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/components.d.ts +1 -1
  197. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/conformance.d.ts +1 -0
  198. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/conformance.js +3 -2
  199. package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
  200. package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
  201. package/dist/integrations/pi/components/history-editor-loader.js +5 -0
  202. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/index.d.ts +2 -1
  203. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/index.js +2 -1
  204. package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
  205. package/dist/integrations/pi/components/owned-editor-ux.js +1093 -0
  206. package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
  207. package/dist/integrations/pi/components/path-word-ranges.js +37 -0
  208. package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
  209. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-components.d.ts +1 -0
  210. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-components.js +1 -0
  211. package/dist/integrations/pi/components/shell-editor-autocomplete.js +297 -0
  212. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-extension-ui.d.ts +1 -1
  213. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-footer-status.d.ts +4 -4
  214. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-footer-status.js +58 -23
  215. package/dist/integrations/pi/components/shell-presenters-info.d.ts +43 -0
  216. package/dist/integrations/pi/components/shell-presenters-info.js +114 -0
  217. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
  218. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-presenters-transcript.js +174 -170
  219. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-selectors-dialogs.d.ts +8 -4
  220. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-selectors-dialogs.js +10 -6
  221. package/dist/integrations/pi/components/shell-shared-facade.d.ts +213 -0
  222. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-shared-facade.js +5 -2
  223. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +15 -0
  224. package/dist/integrations/pi/components/submitted-prompt-adapter.js +43 -0
  225. package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
  226. package/dist/integrations/pi/components/tool-image-presentation.js +86 -0
  227. package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
  228. package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
  229. package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
  230. package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
  231. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/adjacent/core/keybindings.d.ts +11 -2
  232. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/adjacent/core/keybindings.js +41 -3
  233. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
  234. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +42 -0
  235. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +40 -0
  236. package/dist/integrations/pi/components/upstream/components/owned-editor.js +166 -0
  237. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/scoped-models-selector.d.ts +1 -1
  238. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/scoped-models-selector.js +3 -1
  239. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-footer.d.ts +3 -2
  240. package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-footer.js +12 -7
  241. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +61 -0
  242. package/dist/integrations/pi/components/upstream/components/tool-execution.js +344 -0
  243. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +280 -0
  244. package/dist/integrations/pi/components/upstream/history/editor-core.js +2062 -0
  245. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +32 -0
  246. package/dist/integrations/pi/components/upstream/history/kill-ring.js +48 -0
  247. package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
  248. package/dist/integrations/pi/components/upstream/history/printable-key.js +40 -0
  249. package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +14 -0
  250. package/dist/integrations/pi/components/upstream/history/text-helpers.js +28 -0
  251. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +22 -0
  252. package/dist/integrations/pi/components/upstream/history/undo-stack.js +36 -0
  253. package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
  254. package/dist/integrations/pi/components/upstream/history/word-navigation.js +100 -0
  255. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/adapter.d.ts +74 -6
  256. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/adapter.js +1340 -228
  257. package/dist/integrations/pi/engine/changelog.d.ts +2 -0
  258. package/dist/integrations/pi/engine/changelog.js +63 -0
  259. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/conformance.d.ts +4 -2
  260. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/conformance.js +15 -5
  261. package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
  262. package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
  263. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/index.d.ts +4 -0
  264. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/index.js +4 -0
  265. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/model-auth-integration.d.ts +2 -1
  266. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/model-auth-integration.js +1 -0
  267. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/package-integration.d.ts +1 -1
  268. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/package-integration.js +32 -26
  269. package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
  270. package/dist/integrations/pi/engine/pending-delivery.js +158 -0
  271. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +22 -0
  272. package/dist/integrations/pi/engine/project-trust-preflight.js +50 -0
  273. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/resource-extension-integration.d.ts +2 -1
  274. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/resource-extension-integration.js +1 -0
  275. package/dist/integrations/pi/engine/resources/changelog.json +12 -0
  276. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/runtime-integration.d.ts +19 -1
  277. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/runtime-integration.js +56 -5
  278. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/session-integration.d.ts +4 -2
  279. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/session-integration.js +19 -4
  280. package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
  281. package/dist/integrations/pi/engine/session-selection.js +90 -0
  282. package/dist/integrations/pi/engine/settings-effects.d.ts +66 -0
  283. package/dist/integrations/pi/engine/settings-effects.js +249 -0
  284. package/dist/integrations/pi/engine/settings-integration.d.ts +43 -0
  285. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/settings-integration.js +102 -108
  286. package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
  287. package/dist/integrations/pi/engine/tool-rendering.js +145 -0
  288. package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
  289. package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
  290. package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
  291. package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
  292. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/workflow-controllers.d.ts +3 -2
  293. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/workflow-controllers.js +1 -0
  294. package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/workflows.d.ts +19 -2
  295. package/dist/integrations/pi/session-ui/clipboard-diagnostics.d.ts +16 -0
  296. package/dist/integrations/pi/session-ui/clipboard-diagnostics.js +65 -0
  297. package/dist/integrations/pi/session-ui/clipboard-image.d.ts +11 -0
  298. package/dist/integrations/pi/session-ui/clipboard-image.js +38 -0
  299. package/dist/integrations/pi/session-ui/editor-hyperlink-budget.d.ts +9 -0
  300. package/dist/integrations/pi/session-ui/editor-hyperlink-budget.js +23 -0
  301. package/dist/integrations/pi/session-ui/image-preparation-client.d.ts +20 -0
  302. package/dist/integrations/pi/session-ui/image-preparation-client.js +145 -0
  303. package/dist/integrations/pi/session-ui/image-preparation.d.ts +18 -0
  304. package/dist/integrations/pi/session-ui/image-preparation.js +126 -0
  305. package/dist/integrations/pi/session-ui/image-source.d.ts +13 -0
  306. package/dist/integrations/pi/session-ui/image-source.js +171 -0
  307. package/dist/integrations/pi/session-ui/image-worker.d.ts +17 -0
  308. package/dist/integrations/pi/session-ui/image-worker.js +23 -0
  309. package/dist/integrations/pi/session-ui/index.d.ts +5 -0
  310. package/dist/integrations/pi/session-ui/index.js +5 -0
  311. package/dist/integrations/pi/session-ui/paste-executor.d.ts +10 -0
  312. package/dist/integrations/pi/session-ui/paste-executor.js +232 -0
  313. package/dist/integrations/pi/session-ui/paste-helper.d.ts +1 -0
  314. package/dist/integrations/pi/session-ui/paste-helper.js +173 -0
  315. package/dist/integrations/pi/session-ui/paste-preparation-client.d.ts +16 -0
  316. package/dist/integrations/pi/session-ui/paste-preparation-client.js +159 -0
  317. package/dist/integrations/pi/session-ui/paste-protocol.d.ts +78 -0
  318. package/dist/integrations/pi/session-ui/paste-protocol.js +18 -0
  319. package/dist/integrations/pi/session-ui/paste-text-preparation.d.ts +20 -0
  320. package/dist/integrations/pi/session-ui/paste-text-preparation.js +134 -0
  321. package/dist/integrations/pi/session-ui/paste-text-worker.d.ts +1 -0
  322. package/dist/integrations/pi/session-ui/paste-text-worker.js +12 -0
  323. package/dist/integrations/pi/session-ui/path-chip-presentation.d.ts +7 -0
  324. package/dist/integrations/pi/session-ui/path-chip-presentation.js +24 -0
  325. package/dist/integrations/pi/session-ui/prompt-chips.d.ts +72 -0
  326. package/dist/integrations/pi/session-ui/prompt-chips.js +503 -0
  327. package/dist/integrations/pi/session-ui/prompt-history-controller.d.ts +36 -0
  328. package/dist/integrations/pi/session-ui/prompt-history-controller.js +170 -0
  329. package/dist/integrations/pi/session-ui/prompt-suggestion-controller.d.ts +35 -0
  330. package/dist/integrations/pi/session-ui/prompt-suggestion-controller.js +207 -0
  331. package/dist/integrations/pi/session-ui/response-copy-coordinator.d.ts +27 -0
  332. package/dist/integrations/pi/session-ui/response-copy-coordinator.js +189 -0
  333. package/dist/integrations/pi/session-ui/response-copy-helper.d.ts +1 -0
  334. package/dist/integrations/pi/session-ui/response-copy-helper.js +122 -0
  335. package/dist/integrations/pi/session-ui/response-copy-protocol.d.ts +56 -0
  336. package/dist/integrations/pi/session-ui/response-copy-protocol.js +5 -0
  337. package/dist/integrations/pi/session-ui/response-copy-transport.d.ts +31 -0
  338. package/dist/integrations/pi/session-ui/response-copy-transport.js +187 -0
  339. package/dist/integrations/pi/session-ui/route-host.d.ts +5 -0
  340. package/dist/integrations/pi/session-ui/route-host.js +1 -0
  341. package/dist/integrations/pi/session-ui/session-shell-root.d.ts +221 -0
  342. package/dist/integrations/pi/session-ui/session-shell-root.js +1305 -0
  343. package/dist/integrations/pi/session-ui/session-shell.d.ts +55 -0
  344. package/dist/integrations/pi/session-ui/session-shell.js +1792 -0
  345. package/dist/integrations/pi/session-ui/session-viewport-controller.d.ts +56 -0
  346. package/dist/integrations/pi/session-ui/session-viewport-controller.js +569 -0
  347. package/dist/integrations/pi/session-ui/stream-presentation-coalescer.d.ts +29 -0
  348. package/dist/integrations/pi/session-ui/stream-presentation-coalescer.js +79 -0
  349. package/dist/integrations/pi/session-ui/system-clipboard.d.ts +20 -0
  350. package/dist/integrations/pi/session-ui/system-clipboard.js +156 -0
  351. package/dist/integrations/pi/session-ui/text-paste.d.ts +5 -0
  352. package/dist/integrations/pi/session-ui/text-paste.js +16 -0
  353. package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/adapter.d.ts +10 -1
  354. package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/adapter.js +255 -11
  355. package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/contracts.d.ts +32 -6
  356. package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
  357. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +81 -0
  358. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +424 -0
  359. package/dist/integrations/pi/tui-runtime/index.d.ts +7 -0
  360. package/dist/integrations/pi/tui-runtime/index.js +7 -0
  361. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
  362. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
  363. package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +13 -0
  364. package/dist/integrations/pi/tui-runtime/mouse-report-input.js +59 -0
  365. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
  366. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +159 -0
  367. package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/presentation-adapter.d.ts +1 -1
  368. package/dist/native/darwin-arm64/manifest.json +4 -4
  369. package/dist/native/darwin-arm64/process-guardian +0 -0
  370. package/dist/native/linux-x64/manifest.json +3 -3
  371. package/dist/native/linux-x64/process-guardian +0 -0
  372. package/dist/native/win32-x64/manifest.json +3 -3
  373. package/dist/native/win32-x64/process-guardian.exe +0 -0
  374. package/dist/{src/product-identity.d.ts → product-identity.d.ts} +4 -4
  375. package/dist/{src/product-identity.js → product-identity.js} +7 -38
  376. package/dist/{src/product-identity.json → product-identity.json} +13 -27
  377. package/dist/runtime-payload-inventory.json +122333 -0
  378. package/dist/{src/foundation/ui-apps → ui/apps}/contracts.d.ts +23 -1
  379. package/dist/{src/foundation/ui-apps → ui/apps}/host.d.ts +1 -1
  380. package/dist/{src/foundation/ui-apps → ui/apps}/host.js +14 -10
  381. package/dist/{src/foundation/ui-apps → ui/apps}/registry.d.ts +1 -0
  382. package/dist/{src/foundation/ui-apps → ui/apps}/registry.js +1 -0
  383. package/dist/{src/foundation/ui-components → ui/components}/dialog-panel.js +5 -3
  384. package/dist/{src/foundation/ui-components → ui/components}/frame.d.ts +1 -0
  385. package/dist/{src/foundation/ui-components → ui/components}/frame.js +1 -0
  386. package/dist/{src/foundation/ui-components → ui/components}/index.d.ts +7 -0
  387. package/dist/{src/foundation/ui-components → ui/components}/index.js +7 -0
  388. package/dist/{src/foundation/ui-components → ui/components}/line-input.d.ts +2 -8
  389. package/dist/{src/foundation/ui-components → ui/components}/line-input.js +7 -28
  390. package/dist/{src/foundation/ui-components → ui/components}/list-view.d.ts +0 -6
  391. package/dist/{src/foundation/ui-components → ui/components}/list-view.js +14 -7
  392. package/dist/{src/foundation/ui-components → ui/components}/mouse.d.ts +10 -0
  393. package/dist/{src/foundation/ui-components → ui/components}/mouse.js +24 -0
  394. package/dist/ui/components/progress-status.d.ts +2 -0
  395. package/dist/ui/components/progress-status.js +4 -0
  396. package/dist/ui/components/prompt-input.d.ts +32 -0
  397. package/dist/ui/components/prompt-input.js +54 -0
  398. package/dist/ui/components/prompt-row.d.ts +14 -0
  399. package/dist/ui/components/prompt-row.js +20 -0
  400. package/dist/{src/foundation/ui-components → ui/components}/scrollbar.d.ts +26 -0
  401. package/dist/{src/foundation/ui-components → ui/components}/scrollbar.js +35 -0
  402. package/dist/ui/components/selection-copy.d.ts +24 -0
  403. package/dist/ui/components/selection-copy.js +39 -0
  404. package/dist/{src/foundation/ui-components → ui/components}/shortcuts.d.ts +1 -0
  405. package/dist/{src/foundation/ui-components → ui/components}/shortcuts.js +1 -0
  406. package/dist/ui/components/spans.d.ts +28 -0
  407. package/dist/ui/components/spans.js +266 -0
  408. package/dist/ui/components/submitted-prompt.d.ts +23 -0
  409. package/dist/ui/components/submitted-prompt.js +50 -0
  410. package/dist/{src/foundation/ui-components → ui/components}/surface.d.ts +0 -5
  411. package/dist/{src/foundation/ui-components → ui/components}/surface.js +1 -5
  412. package/dist/ui/components/text-selection.d.ts +62 -0
  413. package/dist/ui/components/text-selection.js +210 -0
  414. package/dist/{src/foundation/ui-components → ui/components}/text.d.ts +14 -0
  415. package/dist/{src/foundation/ui-components → ui/components}/text.js +67 -5
  416. package/dist/ui/components/transcript-viewport.d.ts +173 -0
  417. package/dist/ui/components/transcript-viewport.js +753 -0
  418. package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
  419. package/dist/ui/components/visible-hyperlinks.js +97 -0
  420. package/dist/{src/foundation/owned-ui-settings → ui/settings}/declarations.d.ts +8 -1
  421. package/dist/ui/settings/declarations.js +94 -0
  422. package/dist/{src/foundation/owned-ui-settings → ui/settings}/migrations.d.ts +1 -1
  423. package/dist/{src/foundation/owned-ui-settings → ui/settings}/migrations.js +28 -2
  424. package/dist/{src/foundation/owned-ui-settings → ui/settings}/sections.d.ts +6 -19
  425. package/dist/{src/foundation/owned-ui-settings → ui/settings}/sections.js +41 -22
  426. package/dist/{src/foundation/owned-ui-settings → ui/settings}/session.d.ts +9 -17
  427. package/dist/ui/settings/session.js +164 -0
  428. package/dist/{src/foundation/owned-ui-settings → ui/settings}/store.d.ts +1 -0
  429. package/dist/{src/foundation/owned-ui-settings → ui/settings}/store.js +2 -1
  430. package/docs/architecture/boundaries.md +14 -10
  431. package/docs/architecture/code-documentation.md +77 -0
  432. package/docs/architecture/history-editor-provenance.md +100 -0
  433. package/docs/architecture/internal-naming.md +91 -0
  434. package/docs/architecture/process-guardian-provenance.md +3 -1
  435. package/docs/architecture/project-structure.md +69 -30
  436. package/docs/architecture/prompt-suggestions.md +68 -0
  437. package/docs/architecture/resource-and-data-policy.md +28 -2
  438. package/docs/architecture/response-copy-delivery.md +83 -0
  439. package/docs/architecture/tool-image-presentation.md +62 -0
  440. package/docs/architecture/toolchain.md +24 -10
  441. package/docs/architecture/ui-reference-provenance.md +59 -5
  442. package/docs/ci-release-runbook.md +236 -79
  443. package/docs/features/launch-profiles.md +24 -17
  444. package/docs/features/modal-content-interaction.md +37 -0
  445. package/docs/features/prompt-history.md +149 -0
  446. package/docs/local-worktree-cleanup.md +128 -0
  447. package/docs/manual-code-streaming-cleanup.md +88 -0
  448. package/docs/manual-ghost-link-baseline.md +89 -0
  449. package/docs/manual-launch-instance-acceptance.md +12 -35
  450. package/docs/manual-owned-ui-checkpoint.md +78 -0
  451. package/docs/manual-pi-boundary-candidate.md +4 -5
  452. package/docs/manual-terminal-colour-check.md +4 -3
  453. package/docs/openspec-archive-automation.md +128 -0
  454. package/docs/repository-governance-live-acceptance.md +77 -0
  455. package/package.json +45 -28
  456. package/dist/src/cli/capabilities.d.ts +0 -15
  457. package/dist/src/cli/dispatch.js +0 -142
  458. package/dist/src/cli/version-stats.js +0 -72
  459. package/dist/src/composition/index.d.ts +0 -48
  460. package/dist/src/composition/index.js +0 -258
  461. package/dist/src/features/launch/intent.d.ts +0 -7
  462. package/dist/src/features/launch/intent.js +0 -4
  463. package/dist/src/features/launch/profiles.d.ts +0 -12
  464. package/dist/src/features/launch/profiles.js +0 -26
  465. package/dist/src/features/owned-ui/run.js +0 -15
  466. package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
  467. package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
  468. package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
  469. package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
  470. package/dist/src/foundation/owned-ui-settings/session.js +0 -145
  471. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
  472. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
  473. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
  474. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
  475. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
  476. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
  477. package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
  478. package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
  479. package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
  480. package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
  481. package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
  482. package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
  483. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
  484. package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
  485. package/dist/src/foundation/release/bootstrap.d.ts +0 -29
  486. package/dist/src/foundation/release/cohort-state.d.ts +0 -70
  487. package/dist/src/foundation/release/cohort-state.js +0 -202
  488. package/dist/src/foundation/release/release-gc.d.ts +0 -5
  489. package/dist/src/foundation/release/release-gc.js +0 -16
  490. package/dist/src/foundation/supervision/index.d.ts +0 -3
  491. package/dist/src/foundation/supervision/index.js +0 -3
  492. package/dist/src/foundation/supervision/main.d.ts +0 -1
  493. package/dist/src/foundation/supervision/main.js +0 -41
  494. package/dist/src/foundation/supervision/paths.d.ts +0 -1
  495. package/dist/src/foundation/supervision/paths.js +0 -1
  496. package/dist/src/foundation/supervision/server.d.ts +0 -22
  497. package/dist/src/foundation/ui-components/spans.d.ts +0 -7
  498. package/dist/src/foundation/ui-components/spans.js +0 -59
  499. package/docs/manual-transparent-checkpoint.md +0 -53
  500. /package/dist/{src/cli → cli}/index.d.ts +0 -0
  501. /package/dist/{src/cli → cli}/index.js +0 -0
  502. /package/dist/{src/cli → cli}/version.d.ts +0 -0
  503. /package/dist/{src/cli → cli}/version.js +0 -0
  504. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
  505. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
  506. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain.js +0 -0
  507. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/index.d.ts +0 -0
  508. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/index.js +0 -0
  509. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
  510. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
  511. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
  512. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
  513. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.js +0 -0
  514. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
  515. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
  516. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
  517. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
  518. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.d.ts +0 -0
  519. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
  520. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
  521. /package/dist/{src/foundation/presentation-contracts → contracts/presentation}/index.js +0 -0
  522. /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/index.d.ts +0 -0
  523. /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/index.js +0 -0
  524. /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/model.d.ts +0 -0
  525. /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/model.js +0 -0
  526. /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/validation.d.ts +0 -0
  527. /package/dist/{src/foundation/workspace-contracts → contracts/workspace}/validation.js +0 -0
  528. /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
  529. /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
  530. /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
  531. /package/dist/{src/features → features}/launch/runtime-selection.js +0 -0
  532. /package/dist/{src/features → features}/workspace/capabilities.js +0 -0
  533. /package/dist/{src/features → features}/workspace/index.d.ts +0 -0
  534. /package/dist/{src/features → features}/workspace/index.js +0 -0
  535. /package/dist/{src/features → features}/workspace/presentation.d.ts +0 -0
  536. /package/dist/{src/features → features}/workspace/presentation.js +0 -0
  537. /package/dist/{src/features → features}/workspace/reconciliation.d.ts +0 -0
  538. /package/dist/{src/features → features}/workspace/reconciliation.js +0 -0
  539. /package/dist/{src/foundation → foundation}/launch-guardian/index.d.ts +0 -0
  540. /package/dist/{src/foundation → foundation}/launch-guardian/index.js +0 -0
  541. /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
  542. /package/dist/{src/foundation → foundation}/lifecycle/commands.js +0 -0
  543. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
  544. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
  545. /package/dist/{src/foundation → foundation}/native-host-protocol/evidence.d.ts +0 -0
  546. /package/dist/{src/foundation → foundation}/native-host-protocol/evidence.js +0 -0
  547. /package/dist/{src/foundation → foundation}/native-host-protocol/index.d.ts +0 -0
  548. /package/dist/{src/foundation → foundation}/native-host-protocol/index.js +0 -0
  549. /package/dist/{src/foundation → foundation}/native-host-protocol/proof-gate.d.ts +0 -0
  550. /package/dist/{src/foundation → foundation}/native-host-protocol/proof-gate.js +0 -0
  551. /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
  552. /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
  553. /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
  554. /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
  555. /package/dist/{src/foundation → foundation}/protocol/index.d.ts +0 -0
  556. /package/dist/{src/foundation → foundation}/protocol/index.js +0 -0
  557. /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
  558. /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
  559. /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
  560. /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
  561. /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
  562. /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
  563. /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
  564. /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
  565. /package/dist/{src/foundation → foundation}/storage/index.d.ts +0 -0
  566. /package/dist/{src/foundation → foundation}/storage/index.js +0 -0
  567. /package/dist/{src/foundation → foundation}/structured-agent-runtime/index.d.ts +0 -0
  568. /package/dist/{src/foundation → foundation}/structured-agent-runtime/index.js +0 -0
  569. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/components.js +0 -0
  570. /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → integrations/pi/components/editor-interaction.js} +0 -0
  571. /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → integrations/pi/components/prompt-input-port.js} +0 -0
  572. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/resources/builtin-themes.d.ts +0 -0
  573. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/resources/builtin-themes.js +0 -0
  574. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-editor-autocomplete.d.ts +0 -0
  575. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/shell-extension-ui.js +0 -0
  576. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.d.ts +0 -0
  577. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/theme.js +0 -0
  578. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.d.ts +0 -0
  579. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
  580. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/custom-entry.d.ts +0 -0
  581. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/custom-entry.js +0 -0
  582. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/daxnuts.d.ts +0 -0
  583. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/daxnuts.js +0 -0
  584. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/earendil-announcement.d.ts +0 -0
  585. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/extension-editor.d.ts +0 -0
  586. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/extension-editor.js +0 -0
  587. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/first-time-setup.d.ts +0 -0
  588. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/first-time-setup.js +0 -0
  589. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/markdown-transform.d.ts +0 -0
  590. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/markdown-transform.js +0 -0
  591. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
  592. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.js +0 -0
  593. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
  594. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.js +0 -0
  595. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector.d.ts +0 -0
  596. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector.js +0 -0
  597. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/skill-invocation-message.d.ts +0 -0
  598. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/skill-invocation-message.js +0 -0
  599. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/status-indicator.d.ts +0 -0
  600. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/status-indicator.js +0 -0
  601. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/tree-selector.d.ts +0 -0
  602. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/tree-selector.js +0 -0
  603. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/trust-selector.d.ts +0 -0
  604. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/trust-selector.js +0 -0
  605. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
  606. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.js +0 -0
  607. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.d.ts +0 -0
  608. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
  609. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/theme/theme-controller.d.ts +0 -0
  610. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/theme/theme-controller.js +0 -0
  611. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/theme/theme.d.ts +0 -0
  612. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/theme/theme.js +0 -0
  613. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/pi-settings-metadata.json +0 -0
  614. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
  615. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
  616. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/workflows.js +0 -0
  617. /package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/conformance.d.ts +0 -0
  618. /package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/conformance.js +0 -0
  619. /package/dist/{src/foundation/pi-tui-runtime-adapter → integrations/pi/tui-runtime}/presentation-adapter.js +0 -0
  620. /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
  621. /package/dist/{src/foundation/ui-apps → ui/apps}/index.d.ts +0 -0
  622. /package/dist/{src/foundation/ui-apps → ui/apps}/index.js +0 -0
  623. /package/dist/{src/foundation/ui-components → ui/components}/dialog-panel.d.ts +0 -0
  624. /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
  625. /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
  626. /package/dist/{src/foundation/ui-components → ui/components}/list-block.d.ts +0 -0
  627. /package/dist/{src/foundation/ui-components → ui/components}/list-block.js +0 -0
  628. /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
  629. /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
  630. /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
  631. /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
  632. /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
  633. /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
  634. /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
  635. /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
  636. /package/dist/{src/foundation/ui-components → ui/components}/theme.d.ts +0 -0
  637. /package/dist/{src/foundation/ui-components → ui/components}/theme.js +0 -0
  638. /package/dist/{src/foundation/ui-components → ui/components}/value-menu.d.ts +0 -0
  639. /package/dist/{src/foundation/ui-components → ui/components}/value-menu.js +0 -0
  640. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/index.d.ts +0 -0
  641. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/index.js +0 -0
  642. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
  643. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
package/README.md CHANGED
@@ -6,107 +6,201 @@
6
6
  npm install --global @timurproko/a1@latest
7
7
  ```
8
8
 
9
- ## Commands
9
+ Any channel can also be installed or updated directly with npm, without the
10
+ `a1 update` commands:
10
11
 
11
12
  ```sh
12
- a1 # A1-owned UI and profile: ~/.a1/agent
13
- a1 version # show Installed, Release (latest), and Next versions
14
- a1 update # update to npm latest
15
- a1 update:next # update to npm next (or a1 update:<commit> for a specific preview)
13
+ # dev channel (next tag)
14
+ npm install -g @timurproko/a1@next
15
+
16
+ # stable release
17
+ npm install -g @timurproko/a1@latest
18
+
19
+ # exact version
20
+ npm install -g @timurproko/a1@0.1.8-dev.107
21
+ ```
22
+
23
+ ## Use
24
+
25
+ ```sh
26
+ a1 # launch A1 (profile: ~/.a1/agent)
27
+ a1 --help # show all commands (short form: a1 -h)
28
+ a1 --version # show the version (short form: a1 -v)
29
+ a1 update # install the newest stable release
30
+ a1 update --develop # install the current development preview
31
+ a1 update --develop 107 # install numbered preview 107
32
+ a1 update --develop 0.1.8-dev.107 # install that exact preview
33
+ a1 update --models # refresh A1's model catalogs
16
34
  ```
17
35
 
18
- Prerelease builds what `a1 update:next` installs add two development profiles
19
- for comparing against pinned Pi and for experimenting against an isolated profile.
20
- A release build does not carry them.
36
+ Stable builds print only their installed version. Development builds also show the
37
+ current development and stable channel versions.
38
+
39
+ Development previews add the Pi comparison profile; release builds do not carry it.
21
40
 
22
41
  ```sh
23
- a1 pi # untouched vanilla Pi oracle: ~/.pi/agent
24
- a1 sandbox # unchanged isolated vanilla Pi profile: ~/.a1/sandbox
42
+ a1 pi # vanilla Pi oracle: ~/.pi/agent
25
43
  ```
26
44
 
45
+ Unsupported commands exit quietly without launching anything. The removed
46
+ `update:<preview>` forms are not aliases; use `update --develop`.
47
+
48
+ ## Agent input
49
+
50
+ The agent prompt and Settings search share one input component: neutral white
51
+ bars and an undimmed arrow matching submitted prompts. Thinking-level color is
52
+ shown on the level name in the status bar, not on the input bars.
53
+
54
+ In bare A1, **Ctrl+L cycles the thinking level**. **Shift+Tab is unassigned** and
55
+ performs no agent-input action, including while a suggestion is visible. Model
56
+ selection has **no default shortcut**; use `/model`. Explicit keybinding overrides
57
+ remain configurable, and `/hotkeys` shows the resolved bindings. The `a1 pi`
58
+ comparison profile keeps its original presentation and shortcuts.
59
+
60
+ ## Prompt suggestions
61
+
62
+ Bare A1's `/settings` → Agent → Prompt suggestions controls faint next-prompt
63
+ predictions. It is enabled by default and uses one additional background request
64
+ with the selected model for eligible turns. Disabling it takes effect immediately.
65
+ Tab accepts a suggestion as editable text; Enter submits it afterward. The setting
66
+ remains stored in A1's profile, and `a1 pi` is unchanged.
67
+
68
+ Suggestions use the selected model's lowest supported reasoning effort without
69
+ changing your main thinking level. Clear next actions such as `archive it` are
70
+ preferred when consistent with your intent; genuinely unclear cases can remain
71
+ empty. [Private diagnostic capture](docs/architecture/prompt-suggestions.md)
72
+ explains how to distinguish skipped, empty, rejected, and timed-out suggestions.
73
+
74
+ ## Prompt history
75
+
76
+ Bare A1 recalls recent unique prompts across sessions with Up/Down. History is
77
+ stored in a separate profile-local SQLite database at
78
+ `~/.a1/data/history/<profile-id>.sqlite3`, or under `<A1_DATA_DIR>/history` when
79
+ explicitly overridden. Other application data stays in its existing location.
80
+ `/settings` → History controls persistence and the 10-100-entry limit (default
81
+ 100), effective on next start. The new default starts fresh: old platform history
82
+ is neither imported nor automatically deleted. Ordinary upgrades and npm
83
+ uninstall/reinstall preserve saved history. History is unencrypted user text;
84
+ images are not reattached. See
85
+ [prompt history](docs/features/prompt-history.md) for privacy, storage, and removal.
86
+
27
87
  ## Extensions
28
88
 
29
- Pi extension packages install into A1's own profile, so bare `a1` loads them and
30
- `a1 pi` and `a1 sandbox` do not. Sources are Pi's: `npm:`, git, or a local path.
89
+ Pi extension packages install into A1's own profile (`~/.a1/agent`), so bare `a1`
90
+ loads them and `a1 pi` does not. Sources are Pi's: `npm:`, git, or a
91
+ local path.
31
92
 
32
93
  ```sh
33
- a1 install npm:pi-mcp-adapter # install a package into ~/.a1/agent
34
- a1 remove npm:pi-mcp-adapter # remove it again (alias: a1 uninstall)
35
- a1 list # list packages installed for a1
36
- a1 update --extensions # update every installed package
37
- a1 update npm:pi-mcp-adapter # update one of them
38
- a1 update --models # refresh model catalogs
94
+ a1 pi install npm:pi-mcp-adapter # install a package
95
+ a1 pi remove npm:pi-mcp-adapter # remove it (alias: a1 pi uninstall)
96
+ a1 pi list # list installed packages
97
+ a1 pi update --extensions # update every installed package
98
+ a1 pi update npm:pi-mcp-adapter # update one
99
+ a1 pi update --models # refresh A1's model catalogs
39
100
  ```
40
101
 
41
- A running session loads a newly installed package after a restart. Pi's own
42
- profile at `~/.pi/agent` is managed by Pi itself.
102
+ A1 pins the Pi runtime carried by each release, so Pi self-update forms are refused.
103
+ Update A1 itself with `a1 update` or `a1 update --develop`.
104
+
105
+ A running session picks up a newly installed package after a restart.
106
+ Configuration is isolated the same way: bare `a1` reads `~/.a1/agent` (or the
107
+ project), never `~/.pi/agent`. Configure MCP with `/mcp setup` inside bare `a1`.
43
108
 
44
109
  ## Develop
45
110
 
46
111
  ```sh
47
112
  npm ci # install exact locked dependencies
48
113
  npm run build # compile TypeScript and the process guardian into dist
49
- npm start # build and launch an isolated development `a1`
50
- npm run start:pi # build and launch an isolated development `a1 pi`
51
- npm run start:sandbox # build and launch an isolated development `a1 sandbox`
52
- npm run test:fast # typecheck + fast suite, no build needed
53
- npm test # same as test:fast
114
+ npm start # build and launch a development `a1`
115
+ npm run start:pi # build and launch a development `a1 pi`
116
+ npm run test:fast # typecheck + fast suite (alias: npm test)
54
117
  npm run test:full # complete non-physical suite
55
118
  ```
56
119
 
120
+ Create every task worktree at `{working-dir}/.worktrees/<task-id>`, where
121
+ `{working-dir}` is the session's initial working directory. For working directory
122
+ `D:/Git/a1`, use `D:/Git/a1/.worktrees/<task-id>`—never a sibling such as
123
+ `D:/Git/a1-<task-id>`. The primary worktree remains on `develop` for integration only.
124
+
125
+ ## Pull request integration
126
+
127
+ Pull requests whose complete diff is only under `openspec/**`, under `docs/**`,
128
+ exactly the root `README.md`, or a combination of those paths are automatically
129
+ squash-merged after `Development validation required` succeeds. The automation
130
+ reads the complete GitHub changed-file list, including both sides of renames, and
131
+ runs only for trusted branches in this repository.
132
+
133
+ Any other path makes the pull request code/operational. That includes source, tests,
134
+ scripts, workflows, configuration, generated baselines, arbitrary root Markdown,
135
+ and a mixed documentation-plus-code change. Those pull requests remain open after
136
+ CI for local maintainer validation and explicit manual merge; automation disables
137
+ auto-merge if it was armed. Documentation remains exempt from product builds and
138
+ tests, but docs-sensitive generated governance and strict OpenSpec consistency are
139
+ checked before integration.
140
+
141
+ After any same-repository pull request into `develop` merges, trusted automation
142
+ reconciles its remote topic branch. Human merges use the close-event workflow;
143
+ documentation merges authored by `GITHUB_TOKEN` use a synchronous fallback because
144
+ GitHub suppresses recursive workflow events. Both delete only an unprotected live
145
+ ref that still equals the pull request's exact merged head SHA. Fork, advanced,
146
+ reserved, protected, malformed, and unmerged refs are preserved and reported.
147
+
148
+ Specification approval and implementation remain separate pull requests. An
149
+ implementation starts from updated `origin/develop` only after its specification
150
+ has merged and implementation was explicitly requested.
151
+
57
152
  ## Release
58
153
 
59
- Two channels, both published by CI from the exact bytes it validated. Nothing is
60
- ever published from a workstation.
154
+ Two channels, both published by CI from the exact bytes it validated never from
155
+ a workstation.
61
156
 
62
- ### Previews — npm `next`
157
+ ### Development previews
63
158
 
64
- Automatic. Every push to `develop` publishes one, versioned
65
- `<major.minor.patch>-dev.<short commit>` the base from whatever `package.json`
66
- declares, the suffix naming the commit it was built from. It is stamped at publish
67
- time and never committed, so previews cost no commits and need no command, and an
68
- installed preview says exactly which source produced it.
159
+ A preview is `<major.minor.patch>-dev.<pull-request number>`, e.g. `0.1.8-dev.107`.
160
+ The nightly run (`03:17 UTC`) verifies current `origin/develop` and publishes only
161
+ when that source's preview is absent. `npm run develop` requests the same GitHub
162
+ Actions run and waits for it. The published version list is authoritative: an
163
+ unpublished number is refused.
164
+
165
+ Publish:
69
166
 
70
167
  ```sh
71
- a1 update:next # install the newest preview
72
- a1 update:7eabe9e # install the preview built from that commit
168
+ npm run develop # request the preview publish run and wait for it
73
169
  ```
74
170
 
75
- Naming a commit is what the version suffix is for: read it off `a1 version`, a
76
- pull request, or a commit list, and install exactly that build — you never need to
77
- know which version it went out under. A commit that was never published is refused
78
- rather than guessed at. A full preview version works in the same place, so a string
79
- pasted back from `a1 version` is understood too.
80
-
81
- ### Stable — npm `latest`
82
-
83
- One command, from a clean `develop` that matches its remote:
171
+ Install:
84
172
 
85
173
  ```sh
86
- npm run release -- patch # 0.1.1 -> 0.1.2
87
- npm run release -- minor # 0.1.1 -> 0.2.0
88
- npm run release -- major # 0.1.1 -> 1.0.0
89
- npm run release -- 0.4.0 # an exact version
174
+ a1 update --develop 107 # install preview 107
175
+ a1 update --develop 0.1.8-dev.107 # install that exact full preview version
90
176
  ```
91
177
 
92
- It lands the version on `develop` through a pull request that merges itself.
93
- **Landing it is what publishes** — the workflow builds, validates the packed release
94
- on Windows, Linux, and macOS, publishes to npm `latest` with provenance, and only
95
- then writes the `v<version>` tag and records the GitHub Release. The command waits
96
- for that to succeed, then opens the next `-dev` line so previews resume
97
- immediately.
178
+ ### Stable
98
179
 
99
180
  ```sh
100
- a1 update # install the newest stable release
181
+ npm run release -- patch # 0.1.8-dev -> 0.1.8; already-stable 0.1.8 -> 0.1.9
182
+ npm run release -- minor # 0.1.8-dev -> 0.2.0
183
+ npm run release -- major # 0.1.8-dev -> 1.0.0
184
+ npm run release -- 0.4.0 # an exact stable version
101
185
  ```
102
186
 
103
- After a stable publish, `master` fast-forwards to the released commit, so `master`
104
- always points at what npm `latest` serves while `develop` carries the work.
105
-
106
- A release that fails leaves nothing behind: no tag, no GitHub Release, no moved
107
- branch. Every version you can see somewhere is a version the registry actually
108
- serves. Release tags are protected from deletion and movement; a wrong tag is
109
- superseded by the next version, never repointed.
110
-
111
- `docs/ci-release-runbook.md` has the full picture, including what happens when a
112
- publish fails partway.
187
+ Run from the repository root on a clean `develop` matching `origin/develop`.
188
+ A target is required; bare `npm run release` displays usage and releases nothing.
189
+ `patch` promotes the current prerelease rather than skipping its stable version.
190
+
191
+ The command prepares a version-only PR in an isolated detached worktree, prints
192
+ its URL, and waits for you to validate and **merge it manually**. Neither this PR
193
+ nor the next-development PR is auto-merged, and green CI alone does not advance
194
+ the release. After the stable PR merges, the command dispatches publication for
195
+ that exact authoritative commit and waits for success. CI validates the packed
196
+ release on Windows, Linux, and macOS, publishes to npm `latest` with provenance,
197
+ then writes the `v<version>` tag and GitHub Release and fast-forwards `master`.
198
+
199
+ Only after confirmed publication of `0.1.8` does the command prepare the separate
200
+ `0.1.9-dev` PR. It reports development reopened only after you manually merge that
201
+ PR too. Work added to your checkout during either wait is preserved, not reset.
202
+ If publication fails or is uncertain, no reopening PR is prepared. If publication
203
+ succeeded but reopening failed, inspect the reported phase and PR; do not republish
204
+ the immutable stable version.
205
+
206
+ `docs/ci-release-runbook.md` has the full picture.
package/bin/cli.js CHANGED
@@ -1,38 +1,56 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ const commandStartedAtMs = performance.timeOrigin + performance.now();
3
4
  const packageRoot = new URL("..", import.meta.url);
5
+ const startup = await import("../dist/foundation/startup/index.js");
6
+ const startupProfile = process.argv[2] === "pi" ? "pi" : "a1";
7
+ startup.initializeStartupTrace(process.env, startupProfile, commandStartedAtMs);
8
+ startup.enableEnvironmentCompileCache(process.env);
9
+ await startup.markStartupPhase(process.env, "command-invoked");
4
10
  const { fileURLToPath } = await import("node:url");
5
11
  const { readFile } = await import("node:fs/promises");
6
- const { cliCapabilities, dispatchCli } = await import("../dist/src/cli/index.js");
12
+ const { cliCapabilities, dispatchCli } = await import("../dist/cli/index.js");
7
13
 
8
- // Which commands this build exposes follows from the build's own version, so a
14
+ // Compatibility: which commands this build exposes follows from the build's own version, so a
9
15
  // released a1 cannot be argued into offering the development profiles.
10
16
  const capabilities = cliCapabilities(JSON.parse(await readFile(new URL("package.json", packageRoot), "utf8")).version);
11
17
 
12
18
  process.exitCode = await dispatchCli(process.argv.slice(2), {
13
19
  launch: async intent => {
14
- const [{ prepareInteractiveLaunch }, { runBootstrap }] = await Promise.all([
15
- import("../dist/src/features/launch/index.js"),
16
- import("../dist/src/foundation/release/index.js"),
20
+ const [{ prepareInteractiveLaunch }, { runBootstrap }, { healModuleIdentityAtLaunch, releaseCopyIsLaunchable }] = await Promise.all([
21
+ import("../dist/features/launch/index.js"),
22
+ import("../dist/foundation/release/index.js"),
23
+ import("./module-identity.js"),
17
24
  ]);
25
+ // Compatibility: self-heal the installed tree before the release store copies it: npm 12
26
+ // blocks install scripts by default, so the postinstall that normally
27
+ // repairs module identity may never have run (see bin/module-identity.js).
28
+ const packageRootPath = fileURLToPath(packageRoot);
29
+ await healModuleIdentityAtLaunch(packageRootPath, message => process.stderr.write(message));
18
30
  const prepared = await prepareInteractiveLaunch(intent);
19
- return await runBootstrap({ packageRoot: fileURLToPath(packageRoot), launchIntent: intent, environment: prepared.environment });
31
+ return await runBootstrap({
32
+ packageRoot: packageRootPath,
33
+ launchIntent: intent,
34
+ environment: prepared.environment,
35
+ releaseIsLaunchable: releaseCopyIsLaunchable,
36
+ });
20
37
  },
21
38
  version: async () => {
22
- const { runVersionStats } = await import("../dist/src/cli/index.js");
39
+ const { runVersionStats } = await import("../dist/cli/index.js");
23
40
  return await runVersionStats({ packageRoot: fileURLToPath(packageRoot) });
24
41
  },
25
42
  update: async (channel, target) => {
26
- const { runSelfUpdate } = await import("../dist/src/foundation/release/index.js");
43
+ const { runSelfUpdate } = await import("../dist/foundation/release/index.js");
27
44
  return await runSelfUpdate({ packageRoot: fileURLToPath(packageRoot), channel, ...(target === undefined ? {} : { target }) });
28
45
  },
29
46
  packages: async request => {
30
47
  const [{ runPackageCommand }, { createPiPackagesPort }] = await Promise.all([
31
- import("../dist/src/cli/index.js"),
32
- import("../dist/src/foundation/pi-engine-adapter/index.js"),
48
+ import("../dist/cli/index.js"),
49
+ import("../dist/integrations/pi/engine/index.js"),
33
50
  ]);
34
51
  return await runPackageCommand(request, { createPort: createPiPackagesPort });
35
52
  },
36
53
  }, {
54
+ stdout: message => process.stdout.write(message),
37
55
  stderr: message => process.stderr.write(message),
38
56
  }, capabilities);
package/bin/guardian.js CHANGED
@@ -1,19 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const { fileURLToPath } = await import("node:url");
3
+ const startup = await import("../dist/foundation/startup/index.js");
4
+ startup.enableEnvironmentCompileCache(process.env);
5
+ await startup.markStartupPhase(process.env, "guardian-start");
4
6
  const { resolve } = await import("node:path");
5
- const { runLaunchGuardian } = await import("../dist/src/foundation/launch-guardian/index.js");
7
+ const { parseSessionSelection } = await import("../dist/foundation/lifecycle/index.js");
8
+ const { runLaunchGuardian } = await import("../dist/foundation/launch-guardian/index.js");
6
9
 
7
- const releaseRoot = process.env.A1_RELEASE_ROOT ?? fileURLToPath(new URL("..", import.meta.url));
8
- const profileId = process.env.A1_LAUNCH_PROFILE ?? "a1";
10
+ const { readLaunchContext } = await import("../dist/foundation/launch-context/index.js");
11
+ const launchContext = readLaunchContext(process.env, "release");
12
+ const releaseRoot = launchContext.releaseRoot;
13
+ const profileId = readLaunchContext(process.env, "profile").launchProfile;
9
14
 
10
- runLaunchGuardian({
15
+ Promise.resolve().then(() => runLaunchGuardian({
16
+ sessionSelection: parseSessionSelection(process.argv.slice(2)),
11
17
  profileId,
12
18
  releaseRoot,
13
19
  uiEntry: resolve(releaseRoot, "bin", "ui.js"),
14
20
  environment: process.env,
15
21
  cwd: process.cwd(),
16
- }).then(
22
+ })).then(
17
23
  code => { process.exitCode = code; },
18
24
  error => {
19
25
  console.error(error instanceof Error ? error.message : String(error));
@@ -14,18 +14,20 @@
14
14
  * chrome silently disappears and routed input dead-ends, with no error.
15
15
  *
16
16
  * A1 therefore does not import the specifier at all. Its package declares the
17
- * subpath import `#pi-tui`, resolving to pinned Pi's copy first and to the
18
- * hoisted one only when that is absent which is exactly the case where there
19
- * is one copy and both sides agree anyway. Every A1 module imports `#pi-tui`,
20
- * so which copy A1 uses is stated in package.json and enforced by Node at
21
- * resolution, rather than arranged by rewriting an installed tree.
17
+ * subpath import `#pi-tui`, resolving to bin/pi-tui.js a proxy that
18
+ * re-exports pinned Pi's nested copy. The hop through the proxy is load-bearing:
19
+ * Node rejects package-imports targets containing a `node_modules` path segment
20
+ * (Invalid Package Target) and silently falls through to any fallback, which is
21
+ * exactly how an earlier alias that named the nested path directly reintroduced
22
+ * the split while appearing to declare the opposite. A plain import specifier
23
+ * inside a module carries no such restriction.
22
24
  *
23
- * What remains here is the check that it worked. The alias names one path
24
- * inside pinned Pi; if a future layout moved that copy, resolution would fall
25
- * back to A1's own and the split would returnsilently, which is what made
26
- * this expensive the first time. So launch compares the two resolutions and
27
- * says so when they differ, loudly and once, instead of leaving a user to
28
- * discover it as missing extension UI.
25
+ * What remains here is the check that it worked. The alias is resolved by
26
+ * asking Node itself never by reimplementing resolution, which is how the
27
+ * earlier check reported "unified" for a target Node had rejected and the
28
+ * proxy hop is followed to the module it re-exports. When that disagrees with
29
+ * what pinned Pi resolves, launch says so, loudly and once, instead of leaving
30
+ * a user to discover it as missing extension UI.
29
31
  *
30
32
  * This lives in bin/ (shipped, plain JS) because it inspects dependency
31
33
  * resolution, which the Pi API boundary policy rightly forbids ordinary
@@ -39,32 +41,41 @@ import { pathToFileURL } from "node:url";
39
41
  /**
40
42
  * What A1's own modules resolve `#pi-tui` to, as a real path.
41
43
  *
42
- * The alias is read from the manifest and its entries tried in order, which is
43
- * what Node does for a subpath import: a relative target is a file within the
44
- * package, and a bare one goes through ordinary resolution. Asking Node
45
- * directly is not an option here `import.meta.resolve` ignores the parent it
46
- * is given unless an experimental flag is set, so it would always answer for
47
- * the running process rather than for the installation being inspected.
44
+ * Node answers for the alias itself (require.resolve honors package imports for
45
+ * the package the parent belongs to). When the answer is A1's proxy file, the
46
+ * module it re-exports is what A1 actually renders with, so the proxy's one
47
+ * static `export * from` specifier is followed to its target.
48
48
  */
49
49
  function resolveOwnPiTui(packageRoot) {
50
- const manifest = JSON.parse(readFileSync(join(packageRoot, "package.json"), "utf8"));
51
- const alias = manifest.imports?.["#pi-tui"];
52
- const targets = Array.isArray(alias) ? alias : alias === undefined ? [] : [alias];
53
- if (targets.length === 0) throw new Error("package.json declares no #pi-tui alias");
54
- for (const target of targets) {
55
- if (typeof target !== "string") continue;
56
- if (target.startsWith("./") || target.startsWith("../")) {
57
- const candidate = join(packageRoot, target);
58
- if (existsSync(candidate)) return canonical(candidate);
59
- continue;
60
- }
61
- try {
62
- return canonical(createRequire(pathToFileURL(join(packageRoot, "package.json")).href).resolve(target));
63
- } catch {
64
- continue;
65
- }
50
+ const requireFromRoot = createRequire(pathToFileURL(join(packageRoot, "package.json")).href);
51
+ let resolved;
52
+ try {
53
+ resolved = requireFromRoot.resolve("#pi-tui");
54
+ } catch (error) {
55
+ throw new Error(`#pi-tui does not resolve: ${message(error)}`);
66
56
  }
67
- throw new Error(`no #pi-tui target resolves: ${targets.join(", ")}`);
57
+ return canonical(followProxyReExport(resolved));
58
+ }
59
+
60
+ /**
61
+ * Follow A1's proxy hop: one relative `export * from "..."` per file, at most
62
+ * one hop. A resolution that is not the proxy (or any file without such a
63
+ * re-export) is returned as-is.
64
+ */
65
+ function followProxyReExport(resolvedPath) {
66
+ let source;
67
+ try {
68
+ source = readFileSync(resolvedPath, "utf8");
69
+ } catch {
70
+ return resolvedPath;
71
+ }
72
+ const reExport = source.match(/^export \* from "(\.\.?\/[^"]+)";?$/m);
73
+ if (!reExport) return resolvedPath;
74
+ const target = join(dirname(resolvedPath), reExport[1]);
75
+ if (!existsSync(target)) {
76
+ throw new Error(`#pi-tui proxy ${resolvedPath} re-exports a missing file: ${target}`);
77
+ }
78
+ return target;
68
79
  }
69
80
 
70
81
  /**
@@ -76,7 +87,7 @@ function resolveOwnPiTui(packageRoot) {
76
87
  * no CommonJS condition, so an ordinary require cannot name it. From there a
77
88
  * require resolves pi-tui, which publishes no `exports` map at all.
78
89
  */
79
- function resolvePinnedPiTui(packageRoot) {
90
+ export function resolvePinnedPiTui(packageRoot) {
80
91
  let directory = packageRoot;
81
92
  while (true) {
82
93
  const candidate = join(directory, "node_modules", "@earendil-works", "pi-coding-agent");
@@ -121,6 +132,29 @@ function message(error) {
121
132
  return error instanceof Error ? error.message : String(error);
122
133
  }
123
134
 
135
+ /**
136
+ * Launch-entry self-heal: when A1 and pinned Pi disagree on the terminal
137
+ * module, rewrite the proxy to the copy Pi resolves before anything copies
138
+ * this tree. npm 12 blocks install scripts unless allowScripts covers the
139
+ * package, so the postinstall that normally rewrites the proxy may never
140
+ * have run and the installed tree may still carry the published placeholder
141
+ * path. Named neutrally so the launch entries that call it stay free of
142
+ * terminal implementation identifiers, as the bootstrap boundary requires.
143
+ */
144
+ export async function healModuleIdentityAtLaunch(packageRoot, warn) {
145
+ if (inspectPiTuiModuleIdentity(packageRoot).kind === "unified") return;
146
+ const { syncPiTuiProxy } = await import("./sync-pi-tui-proxy.js");
147
+ const outcome = syncPiTuiProxy(packageRoot);
148
+ if (outcome.kind === "unresolved") {
149
+ warn(`a1: could not point the terminal module proxy at pinned Pi's copy (${outcome.message}); extension UI may not render.\n`);
150
+ }
151
+ }
152
+
153
+ /** Whether a materialized release copy resolves one terminal module for both A1 and Pi. */
154
+ export function releaseCopyIsLaunchable(releaseRoot) {
155
+ return inspectPiTuiModuleIdentity(releaseRoot).kind === "unified";
156
+ }
157
+
124
158
  /** Launch-entry wrapper: warn on stderr when the two sides disagree. */
125
159
  export function assertSinglePiTuiModuleAtLaunch(packageRoot, warn) {
126
160
  const outcome = inspectPiTuiModuleIdentity(packageRoot);
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Types for the `#pi-tui` proxy (see ./pi-tui.js): the alias resolves to that
3
+ * file, so TypeScript reads this declaration and follows it to pinned Pi's
4
+ * nested pi-tui copy — the same module the proxy re-exports at runtime.
5
+ */
6
+ export * from "../node_modules/@earendil-works/pi-coding-agent/node_modules/@earendil-works/pi-tui/dist/index.d.ts";
package/bin/pi-tui.js ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The one pi-tui module A1 uses: pinned Pi's own copy.
3
+ *
4
+ * A1's `#pi-tui` alias resolves here, and this file re-exports the copy nested
5
+ * inside pinned Pi — the same one Pi's extension loader hands to extensions, so
6
+ * prototype patches and `instanceof` checks land on the classes A1 renders with.
7
+ *
8
+ * The alias cannot name that copy directly: Node rejects any package-imports
9
+ * target containing a `node_modules` path segment (Invalid Package Target) and
10
+ * silently falls through to the next entry, which resolves the hoisted root
11
+ * copy and reintroduces the two-identity split this file exists to prevent. A
12
+ * plain import specifier in a module carries no such restriction, so the hop
13
+ * through this file is what makes the nested copy nameable from the manifest.
14
+ *
15
+ * npm does not materialize one layout: `npm ci` keeps pinned Pi's shrinkwrapped
16
+ * nested copy, while a global install hoists pi-tui to the root and produces no
17
+ * nested copy. bin/sync-pi-tui-proxy.js therefore rewrites this file's one
18
+ * re-export on postinstall to whatever pinned Pi resolves in the tree npm
19
+ * actually built; the path below is the dev-checkout (`npm ci`) shape. When the
20
+ * target is missing anyway, this import fails loudly at launch instead of
21
+ * silently rendering without extension chrome, and bin/module-identity.js
22
+ * reports the same condition before the composition loads.
23
+ *
24
+ * This lives in bin/ (shipped, plain JS) because it names a path inside
25
+ * node_modules, which the Pi API boundary policy rightly forbids ordinary
26
+ * production code from doing.
27
+ */
28
+ export * from "../node_modules/@earendil-works/pi-coding-agent/node_modules/@earendil-works/pi-tui/dist/index.js";
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { runReleaseCleanupWorker } = await import("../dist/foundation/release/index.js");
4
+
5
+ runReleaseCleanupWorker().catch(error => {
6
+ console.error(error instanceof Error ? error.message : String(error));
7
+ process.exitCode = 1;
8
+ });
package/bin/supervisor.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { runSupervisor } from "../dist/src/foundation/supervision/index.js";
2
+ import { runSupervisor } from "../dist/foundation/supervision/index.js";
3
3
 
4
- runSupervisor().catch(error => {
4
+ runSupervisor(process.argv.slice(2)).catch(error => {
5
5
  console.error(error instanceof Error ? error.stack ?? error.message : String(error));
6
6
  process.exitCode = 1;
7
7
  });