@timurproko/a1 0.1.0 → 0.1.1-dev.10

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 (602) hide show
  1. package/README.md +10 -43
  2. package/bin/{addone.js → cli.js} +2 -2
  3. package/bin/guardian.js +22 -0
  4. package/bin/ui.js +20 -0
  5. package/dist/native/darwin-arm64/manifest.json +20 -0
  6. package/dist/native/darwin-arm64/process-guardian +0 -0
  7. package/dist/native/linux-x64/manifest.json +20 -0
  8. package/dist/native/linux-x64/process-guardian +0 -0
  9. package/dist/native/win32-x64/manifest.json +20 -0
  10. package/dist/native/win32-x64/process-guardian.exe +0 -0
  11. package/dist/src/cli/dispatch.d.ts +4 -5
  12. package/dist/src/cli/dispatch.js +11 -11
  13. package/dist/src/cli/index.d.ts +0 -1
  14. package/dist/src/cli/index.js +0 -1
  15. package/dist/src/cli/version-stats.d.ts +0 -1
  16. package/dist/src/cli/version-stats.js +27 -23
  17. package/dist/src/cli/version.d.ts +1 -2
  18. package/dist/src/cli/version.js +4 -4
  19. package/dist/src/composition/index.d.ts +48 -0
  20. package/dist/src/composition/index.js +258 -0
  21. package/dist/src/features/launch/development-launch.d.ts +0 -1
  22. package/dist/src/features/launch/development-launch.js +12 -11
  23. package/dist/src/features/launch/index.d.ts +0 -1
  24. package/dist/src/features/launch/index.js +0 -1
  25. package/dist/src/features/launch/initialize-profile.d.ts +1 -2
  26. package/dist/src/features/launch/initialize-profile.js +24 -4
  27. package/dist/src/features/launch/intent.d.ts +0 -1
  28. package/dist/src/features/launch/intent.js +0 -1
  29. package/dist/src/features/launch/prepare-launch.d.ts +2 -3
  30. package/dist/src/features/launch/prepare-launch.js +3 -4
  31. package/dist/src/features/launch/profile-paths.d.ts +2 -3
  32. package/dist/src/features/launch/profile-paths.js +9 -8
  33. package/dist/src/features/launch/profiles.d.ts +3 -4
  34. package/dist/src/features/launch/profiles.js +7 -8
  35. package/dist/src/features/launch/runtime-selection.d.ts +13 -9
  36. package/dist/src/features/launch/runtime-selection.js +6 -7
  37. package/dist/src/features/owned-ui/customization.d.ts +5 -3
  38. package/dist/src/features/owned-ui/customization.js +2 -4
  39. package/dist/src/features/owned-ui/diagnostics.d.ts +0 -1
  40. package/dist/src/features/owned-ui/diagnostics.js +0 -1
  41. package/dist/src/features/owned-ui/index.d.ts +1 -2
  42. package/dist/src/features/owned-ui/index.js +1 -2
  43. package/dist/src/features/owned-ui/run.d.ts +9 -7
  44. package/dist/src/features/owned-ui/run.js +9 -15
  45. package/dist/src/features/owned-ui/settings-app.d.ts +22 -0
  46. package/dist/src/features/owned-ui/settings-app.js +633 -0
  47. package/dist/src/features/workspace/capabilities.d.ts +0 -1
  48. package/dist/src/features/workspace/capabilities.js +0 -1
  49. package/dist/src/features/workspace/index.d.ts +0 -1
  50. package/dist/src/features/workspace/index.js +0 -1
  51. package/dist/src/features/workspace/presentation.d.ts +1 -2
  52. package/dist/src/features/workspace/presentation.js +5 -4
  53. package/dist/src/features/workspace/reconciliation.d.ts +0 -1
  54. package/dist/src/features/workspace/reconciliation.js +0 -1
  55. package/dist/src/features/workspace/reducer.d.ts +0 -1
  56. package/dist/src/features/workspace/reducer.js +0 -1
  57. package/dist/src/features/workspace/router.d.ts +0 -1
  58. package/dist/src/features/workspace/router.js +0 -1
  59. package/dist/src/features/workspace/store.d.ts +0 -1
  60. package/dist/src/features/workspace/store.js +0 -1
  61. package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +95 -0
  62. package/dist/src/foundation/agent-engine-contracts/capability-ports.js +35 -0
  63. package/dist/src/foundation/agent-engine-contracts/domain-validation.d.ts +12 -0
  64. package/dist/src/foundation/agent-engine-contracts/domain-validation.js +89 -0
  65. package/dist/src/foundation/agent-engine-contracts/domain.d.ts +116 -0
  66. package/dist/src/foundation/agent-engine-contracts/domain.js +1 -0
  67. package/dist/src/foundation/agent-engine-contracts/index.d.ts +7 -0
  68. package/dist/src/foundation/agent-engine-contracts/index.js +7 -0
  69. package/dist/src/foundation/agent-engine-contracts/model.d.ts +78 -0
  70. package/dist/src/foundation/agent-engine-contracts/model.js +1 -0
  71. package/dist/src/foundation/agent-engine-contracts/ports.d.ts +18 -0
  72. package/dist/src/foundation/agent-engine-contracts/ports.js +1 -0
  73. package/dist/src/foundation/agent-engine-contracts/serialization.d.ts +7 -0
  74. package/dist/src/foundation/agent-engine-contracts/serialization.js +58 -0
  75. package/dist/src/foundation/agent-engine-contracts/validation.d.ts +5 -0
  76. package/dist/src/foundation/agent-engine-contracts/validation.js +128 -0
  77. package/dist/src/foundation/launch-guardian/index.d.ts +1 -0
  78. package/dist/src/foundation/launch-guardian/index.js +1 -0
  79. package/dist/src/foundation/launch-guardian/main.d.ts +31 -0
  80. package/dist/src/foundation/launch-guardian/main.js +165 -0
  81. package/dist/src/foundation/lifecycle/commands.d.ts +40 -0
  82. package/dist/src/foundation/lifecycle/commands.js +1 -0
  83. package/dist/src/foundation/lifecycle/index.d.ts +2 -1
  84. package/dist/src/foundation/lifecycle/index.js +2 -1
  85. package/dist/src/foundation/lifecycle/launch-instance.d.ts +46 -0
  86. package/dist/src/foundation/lifecycle/launch-instance.js +134 -0
  87. package/dist/src/foundation/lifecycle/model.d.ts +7 -44
  88. package/dist/src/foundation/lifecycle/model.js +3 -3
  89. package/dist/src/foundation/lifecycle/paths.d.ts +2 -3
  90. package/dist/src/foundation/lifecycle/paths.js +32 -16
  91. package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -1
  92. package/dist/src/foundation/native-host-protocol/codec.js +0 -1
  93. package/dist/src/foundation/native-host-protocol/evidence.d.ts +2 -3
  94. package/dist/src/foundation/native-host-protocol/evidence.js +4 -4
  95. package/dist/src/foundation/native-host-protocol/index.d.ts +0 -1
  96. package/dist/src/foundation/native-host-protocol/index.js +0 -1
  97. package/dist/src/foundation/native-host-protocol/messages.d.ts +1 -2
  98. package/dist/src/foundation/native-host-protocol/messages.js +2 -2
  99. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -1
  100. package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -1
  101. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -1
  102. package/dist/src/foundation/owned-ui-contracts/extension-ui.js +0 -1
  103. package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -1
  104. package/dist/src/foundation/owned-ui-contracts/index.js +0 -1
  105. package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -1
  106. package/dist/src/foundation/owned-ui-contracts/model.js +0 -1
  107. package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -1
  108. package/dist/src/foundation/owned-ui-contracts/validation.js +0 -1
  109. package/dist/src/foundation/owned-ui-settings/declarations.d.ts +13 -0
  110. package/dist/src/foundation/owned-ui-settings/declarations.js +39 -0
  111. package/dist/src/foundation/owned-ui-settings/index.d.ts +6 -0
  112. package/dist/src/foundation/owned-ui-settings/index.js +6 -0
  113. package/dist/src/foundation/owned-ui-settings/migrations.d.ts +13 -0
  114. package/dist/src/foundation/owned-ui-settings/migrations.js +28 -0
  115. package/dist/src/foundation/owned-ui-settings/resolution.d.ts +45 -0
  116. package/dist/src/foundation/owned-ui-settings/resolution.js +147 -0
  117. package/dist/src/foundation/owned-ui-settings/sections.d.ts +70 -0
  118. package/dist/src/foundation/owned-ui-settings/sections.js +93 -0
  119. package/dist/src/foundation/owned-ui-settings/session.d.ts +44 -0
  120. package/dist/src/foundation/owned-ui-settings/session.js +145 -0
  121. package/dist/src/foundation/owned-ui-settings/store.d.ts +28 -0
  122. package/dist/src/foundation/owned-ui-settings/store.js +90 -0
  123. package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -1
  124. package/dist/src/foundation/pi-component-adapter/components.js +0 -1
  125. package/dist/src/foundation/pi-component-adapter/conformance.d.ts +1 -1
  126. package/dist/src/foundation/pi-component-adapter/conformance.js +10 -4
  127. package/dist/src/foundation/pi-component-adapter/index.d.ts +1 -1
  128. package/dist/src/foundation/pi-component-adapter/index.js +1 -1
  129. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +165 -0
  130. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +166 -0
  131. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -1
  132. package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -1
  133. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts +0 -1
  134. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +10 -13
  135. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -1
  136. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -1
  137. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -1
  138. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +5 -62
  139. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -1
  140. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -1
  141. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +9 -2
  142. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +10 -9
  143. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -1
  144. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -1
  145. package/dist/src/foundation/pi-component-adapter/theme.d.ts +0 -1
  146. package/dist/src/foundation/pi-component-adapter/theme.js +0 -1
  147. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -1
  148. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -1
  149. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -1
  150. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.js +0 -1
  151. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -1
  152. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -1
  153. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -1
  154. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -1
  155. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -1
  156. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +3 -27
  157. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -1
  158. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -1
  159. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -1
  160. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -1
  161. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -1
  162. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -1
  163. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.d.ts +0 -1
  164. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -1
  165. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +18 -0
  166. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +55 -0
  167. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -1
  168. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -1
  169. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +10 -0
  170. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +120 -0
  171. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.d.ts +0 -1
  172. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -1
  173. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -1
  174. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -1
  175. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +1 -2
  176. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +1 -2
  177. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -1
  178. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -1
  179. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -1
  180. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1
  181. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -1
  182. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -1
  183. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.d.ts +0 -1
  184. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -1
  185. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -1
  186. package/dist/src/foundation/pi-component-adapter/upstream/model-search.js +0 -1
  187. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -1
  188. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +1 -2
  189. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +8 -1
  190. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +30 -15
  191. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +19 -205
  192. package/dist/src/foundation/pi-engine-adapter/adapter.js +156 -181
  193. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +24 -1
  194. package/dist/src/foundation/pi-engine-adapter/conformance.js +60 -15
  195. package/dist/src/foundation/pi-engine-adapter/index.d.ts +6 -1
  196. package/dist/src/foundation/pi-engine-adapter/index.js +6 -1
  197. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +30 -0
  198. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +61 -0
  199. package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +374 -0
  200. package/dist/src/foundation/pi-engine-adapter/public-main-entry.d.ts +5 -0
  201. package/dist/src/foundation/pi-engine-adapter/public-main-entry.js +27 -0
  202. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +31 -0
  203. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +80 -0
  204. package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +18 -0
  205. package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +32 -0
  206. package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +43 -0
  207. package/dist/src/foundation/pi-engine-adapter/session-integration.js +97 -0
  208. package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +55 -0
  209. package/dist/src/foundation/pi-engine-adapter/settings-integration.js +233 -0
  210. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +20 -0
  211. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +48 -0
  212. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +9 -1
  213. package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -1
  214. package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +2 -0
  215. package/dist/src/foundation/pi-owned-ui-integration/index.js +2 -0
  216. package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +29 -0
  217. package/dist/src/foundation/pi-owned-ui-integration/route-host.js +1 -0
  218. package/dist/src/{features/owned-ui/pi-session-shell.d.ts → foundation/pi-owned-ui-integration/session-shell.d.ts} +23 -14
  219. package/dist/src/{features/owned-ui/pi-session-shell.js → foundation/pi-owned-ui-integration/session-shell.js} +130 -61
  220. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +6 -1
  221. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +9 -1
  222. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +8 -4
  223. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +22 -9
  224. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -2
  225. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.js +1 -2
  226. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +1 -1
  227. package/dist/src/foundation/pi-tui-runtime-adapter/index.js +1 -1
  228. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +4 -0
  229. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +48 -0
  230. package/dist/src/foundation/presentation-contracts/index.d.ts +96 -0
  231. package/dist/src/foundation/presentation-contracts/index.js +38 -0
  232. package/dist/src/foundation/process-containment/artifact.d.ts +1 -0
  233. package/dist/src/foundation/process-containment/artifact.js +34 -0
  234. package/dist/src/foundation/process-containment/contracts.d.ts +31 -0
  235. package/dist/src/foundation/process-containment/contracts.js +35 -0
  236. package/dist/src/foundation/process-containment/index.d.ts +5 -0
  237. package/dist/src/foundation/process-containment/index.js +5 -0
  238. package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +6 -0
  239. package/dist/src/foundation/process-containment/linux-process-inspector.js +26 -0
  240. package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +16 -0
  241. package/dist/src/foundation/process-containment/native-guardian-containment.js +139 -0
  242. package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +17 -0
  243. package/dist/src/foundation/process-containment/windows-process-inspector.js +53 -0
  244. package/dist/src/foundation/protocol/client.d.ts +2 -2
  245. package/dist/src/foundation/protocol/client.js +3 -1
  246. package/dist/src/foundation/protocol/index.d.ts +0 -1
  247. package/dist/src/foundation/protocol/index.js +0 -1
  248. package/dist/src/foundation/protocol/messages.d.ts +6 -7
  249. package/dist/src/foundation/protocol/messages.js +3 -3
  250. package/dist/src/foundation/release/bootstrap.d.ts +2 -3
  251. package/dist/src/foundation/release/bootstrap.js +85 -33
  252. package/dist/src/foundation/release/cohort-selection.d.ts +0 -1
  253. package/dist/src/foundation/release/cohort-selection.js +3 -4
  254. package/dist/src/foundation/release/cohort-state.d.ts +6 -4
  255. package/dist/src/foundation/release/cohort-state.js +5 -4
  256. package/dist/src/foundation/release/concurrency.d.ts +1 -0
  257. package/dist/src/foundation/release/concurrency.js +17 -0
  258. package/dist/src/foundation/release/development-preview-release.d.ts +2 -2
  259. package/dist/src/foundation/release/development-preview-release.js +3 -2
  260. package/dist/src/foundation/release/index.d.ts +0 -1
  261. package/dist/src/foundation/release/index.js +0 -1
  262. package/dist/src/foundation/release/process-cleanup.d.ts +1 -2
  263. package/dist/src/foundation/release/process-cleanup.js +2 -3
  264. package/dist/src/foundation/release/release-gc.d.ts +0 -1
  265. package/dist/src/foundation/release/release-gc.js +0 -1
  266. package/dist/src/foundation/release/release-store.d.ts +38 -6
  267. package/dist/src/foundation/release/release-store.js +103 -43
  268. package/dist/src/foundation/release/release.d.ts +20 -6
  269. package/dist/src/foundation/release/release.js +77 -48
  270. package/dist/src/foundation/release/stable-release.d.ts +2 -2
  271. package/dist/src/foundation/release/stable-release.js +6 -5
  272. package/dist/src/foundation/release/update-transaction.d.ts +2 -2
  273. package/dist/src/foundation/release/update-transaction.js +8 -7
  274. package/dist/src/foundation/release/update.d.ts +20 -4
  275. package/dist/src/foundation/release/update.js +152 -36
  276. package/dist/src/foundation/storage/control-store.d.ts +8 -8
  277. package/dist/src/foundation/storage/control-store.js +132 -61
  278. package/dist/src/foundation/storage/index.d.ts +0 -1
  279. package/dist/src/foundation/storage/index.js +0 -1
  280. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -1
  281. package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -1
  282. package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -1
  283. package/dist/src/foundation/structured-agent-runtime/commands.js +0 -1
  284. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +2 -3
  285. package/dist/src/foundation/structured-agent-runtime/handshake.js +13 -13
  286. package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -1
  287. package/dist/src/foundation/structured-agent-runtime/index.js +0 -1
  288. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -1
  289. package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -1
  290. package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -1
  291. package/dist/src/foundation/structured-agent-runtime/state.js +0 -1
  292. package/dist/src/foundation/supervision/index.d.ts +1 -2
  293. package/dist/src/foundation/supervision/index.js +1 -2
  294. package/dist/src/foundation/supervision/main.d.ts +0 -1
  295. package/dist/src/foundation/supervision/main.js +11 -10
  296. package/dist/src/foundation/supervision/paths.d.ts +1 -2
  297. package/dist/src/foundation/supervision/paths.js +1 -2
  298. package/dist/src/foundation/supervision/server.d.ts +6 -5
  299. package/dist/src/foundation/supervision/server.js +259 -91
  300. package/dist/src/foundation/ui-apps/contracts.d.ts +42 -0
  301. package/dist/src/foundation/ui-apps/contracts.js +12 -0
  302. package/dist/src/foundation/ui-apps/host.d.ts +42 -0
  303. package/dist/src/foundation/ui-apps/host.js +152 -0
  304. package/dist/src/foundation/ui-apps/index.d.ts +3 -0
  305. package/dist/src/foundation/ui-apps/index.js +3 -0
  306. package/dist/src/foundation/ui-apps/registry.d.ts +11 -0
  307. package/dist/src/foundation/ui-apps/registry.js +32 -0
  308. package/dist/src/foundation/ui-components/dialog-panel.d.ts +36 -0
  309. package/dist/src/foundation/ui-components/dialog-panel.js +47 -0
  310. package/dist/src/foundation/ui-components/frame.d.ts +21 -0
  311. package/dist/src/foundation/ui-components/frame.js +54 -0
  312. package/dist/src/foundation/ui-components/index.d.ts +18 -0
  313. package/dist/src/foundation/ui-components/index.js +18 -0
  314. package/dist/src/foundation/ui-components/label.d.ts +8 -0
  315. package/dist/src/foundation/ui-components/label.js +36 -0
  316. package/dist/src/foundation/ui-components/line-input.d.ts +74 -0
  317. package/dist/src/foundation/ui-components/line-input.js +245 -0
  318. package/dist/src/foundation/ui-components/list-block.d.ts +66 -0
  319. package/dist/src/foundation/ui-components/list-block.js +176 -0
  320. package/dist/src/foundation/ui-components/list-view.d.ts +66 -0
  321. package/dist/src/foundation/ui-components/list-view.js +76 -0
  322. package/dist/src/foundation/ui-components/mouse.d.ts +15 -0
  323. package/dist/src/foundation/ui-components/mouse.js +46 -0
  324. package/dist/src/foundation/ui-components/pane.d.ts +33 -0
  325. package/dist/src/foundation/ui-components/pane.js +7 -0
  326. package/dist/src/foundation/ui-components/revision.d.ts +35 -0
  327. package/dist/src/foundation/ui-components/revision.js +79 -0
  328. package/dist/src/foundation/ui-components/scrollbar.d.ts +62 -0
  329. package/dist/src/foundation/ui-components/scrollbar.js +102 -0
  330. package/dist/src/foundation/ui-components/shortcuts.d.ts +57 -0
  331. package/dist/src/foundation/ui-components/shortcuts.js +81 -0
  332. package/dist/src/foundation/ui-components/spans.d.ts +7 -0
  333. package/dist/src/foundation/ui-components/spans.js +59 -0
  334. package/dist/src/foundation/ui-components/status-line.d.ts +16 -0
  335. package/dist/src/foundation/ui-components/status-line.js +14 -0
  336. package/dist/src/foundation/ui-components/stepper.d.ts +24 -0
  337. package/dist/src/foundation/ui-components/stepper.js +33 -0
  338. package/dist/src/foundation/ui-components/surface.d.ts +20 -0
  339. package/dist/src/foundation/ui-components/surface.js +38 -0
  340. package/dist/src/foundation/ui-components/text.d.ts +24 -0
  341. package/dist/src/foundation/ui-components/text.js +123 -0
  342. package/dist/src/foundation/ui-components/theme.d.ts +23 -0
  343. package/dist/src/foundation/ui-components/theme.js +13 -0
  344. package/dist/src/foundation/ui-components/value-menu.d.ts +41 -0
  345. package/dist/src/foundation/ui-components/value-menu.js +33 -0
  346. package/dist/src/foundation/workspace-contracts/index.d.ts +0 -1
  347. package/dist/src/foundation/workspace-contracts/index.js +0 -1
  348. package/dist/src/foundation/workspace-contracts/model.d.ts +0 -1
  349. package/dist/src/foundation/workspace-contracts/model.js +0 -1
  350. package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -1
  351. package/dist/src/foundation/workspace-contracts/validation.js +0 -1
  352. package/dist/src/product-identity.d.ts +37 -0
  353. package/dist/src/product-identity.js +150 -0
  354. package/dist/src/product-identity.json +99 -0
  355. package/docs/architecture/boundaries.md +32 -14
  356. package/docs/architecture/process-guardian-provenance.md +26 -0
  357. package/docs/architecture/project-structure.md +2 -2
  358. package/docs/architecture/resource-and-data-policy.md +1 -1
  359. package/docs/architecture/terminal-host-proof-gate.md +2 -2
  360. package/docs/architecture/terminal-host-provenance.md +3 -3
  361. package/docs/architecture/terminal-host-spike-evidence.md +1 -1
  362. package/docs/architecture/toolchain.md +40 -8
  363. package/docs/architecture/ui-reference-provenance.md +50 -0
  364. package/docs/ci-release-runbook.md +67 -0
  365. package/docs/features/launch-profiles.md +12 -6
  366. package/docs/manual-launch-instance-acceptance.md +66 -0
  367. package/docs/manual-pi-boundary-candidate.md +33 -0
  368. package/docs/manual-terminal-colour-check.md +55 -0
  369. package/docs/manual-transparent-checkpoint.md +11 -11
  370. package/package.json +27 -14
  371. package/bin/addone-ui.js +0 -20
  372. package/dist/src/cli/dispatch.d.ts.map +0 -1
  373. package/dist/src/cli/dispatch.js.map +0 -1
  374. package/dist/src/cli/index.d.ts.map +0 -1
  375. package/dist/src/cli/index.js.map +0 -1
  376. package/dist/src/cli/version-stats.d.ts.map +0 -1
  377. package/dist/src/cli/version-stats.js.map +0 -1
  378. package/dist/src/cli/version.d.ts.map +0 -1
  379. package/dist/src/cli/version.js.map +0 -1
  380. package/dist/src/features/launch/development-launch.d.ts.map +0 -1
  381. package/dist/src/features/launch/development-launch.js.map +0 -1
  382. package/dist/src/features/launch/index.d.ts.map +0 -1
  383. package/dist/src/features/launch/index.js.map +0 -1
  384. package/dist/src/features/launch/initialize-profile.d.ts.map +0 -1
  385. package/dist/src/features/launch/initialize-profile.js.map +0 -1
  386. package/dist/src/features/launch/intent.d.ts.map +0 -1
  387. package/dist/src/features/launch/intent.js.map +0 -1
  388. package/dist/src/features/launch/prepare-launch.d.ts.map +0 -1
  389. package/dist/src/features/launch/prepare-launch.js.map +0 -1
  390. package/dist/src/features/launch/profile-paths.d.ts.map +0 -1
  391. package/dist/src/features/launch/profile-paths.js.map +0 -1
  392. package/dist/src/features/launch/profiles.d.ts.map +0 -1
  393. package/dist/src/features/launch/profiles.js.map +0 -1
  394. package/dist/src/features/launch/runtime-selection.d.ts.map +0 -1
  395. package/dist/src/features/launch/runtime-selection.js.map +0 -1
  396. package/dist/src/features/owned-ui/customization.d.ts.map +0 -1
  397. package/dist/src/features/owned-ui/customization.js.map +0 -1
  398. package/dist/src/features/owned-ui/diagnostics.d.ts.map +0 -1
  399. package/dist/src/features/owned-ui/diagnostics.js.map +0 -1
  400. package/dist/src/features/owned-ui/index.d.ts.map +0 -1
  401. package/dist/src/features/owned-ui/index.js.map +0 -1
  402. package/dist/src/features/owned-ui/pi-session-shell.d.ts.map +0 -1
  403. package/dist/src/features/owned-ui/pi-session-shell.js.map +0 -1
  404. package/dist/src/features/owned-ui/run.d.ts.map +0 -1
  405. package/dist/src/features/owned-ui/run.js.map +0 -1
  406. package/dist/src/features/workspace/capabilities.d.ts.map +0 -1
  407. package/dist/src/features/workspace/capabilities.js.map +0 -1
  408. package/dist/src/features/workspace/index.d.ts.map +0 -1
  409. package/dist/src/features/workspace/index.js.map +0 -1
  410. package/dist/src/features/workspace/presentation.d.ts.map +0 -1
  411. package/dist/src/features/workspace/presentation.js.map +0 -1
  412. package/dist/src/features/workspace/reconciliation.d.ts.map +0 -1
  413. package/dist/src/features/workspace/reconciliation.js.map +0 -1
  414. package/dist/src/features/workspace/reducer.d.ts.map +0 -1
  415. package/dist/src/features/workspace/reducer.js.map +0 -1
  416. package/dist/src/features/workspace/router.d.ts.map +0 -1
  417. package/dist/src/features/workspace/router.js.map +0 -1
  418. package/dist/src/features/workspace/store.d.ts.map +0 -1
  419. package/dist/src/features/workspace/store.js.map +0 -1
  420. package/dist/src/foundation/lifecycle/index.d.ts.map +0 -1
  421. package/dist/src/foundation/lifecycle/index.js.map +0 -1
  422. package/dist/src/foundation/lifecycle/model.d.ts.map +0 -1
  423. package/dist/src/foundation/lifecycle/model.js.map +0 -1
  424. package/dist/src/foundation/lifecycle/paths.d.ts.map +0 -1
  425. package/dist/src/foundation/lifecycle/paths.js.map +0 -1
  426. package/dist/src/foundation/native-host-protocol/codec.d.ts.map +0 -1
  427. package/dist/src/foundation/native-host-protocol/codec.js.map +0 -1
  428. package/dist/src/foundation/native-host-protocol/evidence.d.ts.map +0 -1
  429. package/dist/src/foundation/native-host-protocol/evidence.js.map +0 -1
  430. package/dist/src/foundation/native-host-protocol/index.d.ts.map +0 -1
  431. package/dist/src/foundation/native-host-protocol/index.js.map +0 -1
  432. package/dist/src/foundation/native-host-protocol/messages.d.ts.map +0 -1
  433. package/dist/src/foundation/native-host-protocol/messages.js.map +0 -1
  434. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts.map +0 -1
  435. package/dist/src/foundation/native-host-protocol/proof-gate.js.map +0 -1
  436. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts.map +0 -1
  437. package/dist/src/foundation/owned-ui-contracts/extension-ui.js.map +0 -1
  438. package/dist/src/foundation/owned-ui-contracts/index.d.ts.map +0 -1
  439. package/dist/src/foundation/owned-ui-contracts/index.js.map +0 -1
  440. package/dist/src/foundation/owned-ui-contracts/model.d.ts.map +0 -1
  441. package/dist/src/foundation/owned-ui-contracts/model.js.map +0 -1
  442. package/dist/src/foundation/owned-ui-contracts/validation.d.ts.map +0 -1
  443. package/dist/src/foundation/owned-ui-contracts/validation.js.map +0 -1
  444. package/dist/src/foundation/pi-component-adapter/components.d.ts.map +0 -1
  445. package/dist/src/foundation/pi-component-adapter/components.js.map +0 -1
  446. package/dist/src/foundation/pi-component-adapter/conformance.d.ts.map +0 -1
  447. package/dist/src/foundation/pi-component-adapter/conformance.js.map +0 -1
  448. package/dist/src/foundation/pi-component-adapter/index.d.ts.map +0 -1
  449. package/dist/src/foundation/pi-component-adapter/index.js.map +0 -1
  450. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts.map +0 -1
  451. package/dist/src/foundation/pi-component-adapter/shell-components.js.map +0 -1
  452. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts.map +0 -1
  453. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js.map +0 -1
  454. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts.map +0 -1
  455. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js.map +0 -1
  456. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts.map +0 -1
  457. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js.map +0 -1
  458. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts.map +0 -1
  459. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js.map +0 -1
  460. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts.map +0 -1
  461. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js.map +0 -1
  462. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts.map +0 -1
  463. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js.map +0 -1
  464. package/dist/src/foundation/pi-component-adapter/theme.d.ts.map +0 -1
  465. package/dist/src/foundation/pi-component-adapter/theme.js.map +0 -1
  466. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts.map +0 -1
  467. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js.map +0 -1
  468. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts.map +0 -1
  469. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.js.map +0 -1
  470. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts.map +0 -1
  471. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js.map +0 -1
  472. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts.map +0 -1
  473. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js.map +0 -1
  474. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts.map +0 -1
  475. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js.map +0 -1
  476. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts.map +0 -1
  477. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js.map +0 -1
  478. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts.map +0 -1
  479. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js.map +0 -1
  480. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts.map +0 -1
  481. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js.map +0 -1
  482. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.d.ts.map +0 -1
  483. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js.map +0 -1
  484. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts.map +0 -1
  485. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js.map +0 -1
  486. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.d.ts.map +0 -1
  487. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js.map +0 -1
  488. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts.map +0 -1
  489. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js.map +0 -1
  490. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts.map +0 -1
  491. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js.map +0 -1
  492. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts.map +0 -1
  493. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js.map +0 -1
  494. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts.map +0 -1
  495. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js.map +0 -1
  496. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts.map +0 -1
  497. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js.map +0 -1
  498. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.d.ts.map +0 -1
  499. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js.map +0 -1
  500. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts.map +0 -1
  501. package/dist/src/foundation/pi-component-adapter/upstream/model-search.js.map +0 -1
  502. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts.map +0 -1
  503. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js.map +0 -1
  504. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts.map +0 -1
  505. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js.map +0 -1
  506. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts.map +0 -1
  507. package/dist/src/foundation/pi-engine-adapter/adapter.js.map +0 -1
  508. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts.map +0 -1
  509. package/dist/src/foundation/pi-engine-adapter/conformance.js.map +0 -1
  510. package/dist/src/foundation/pi-engine-adapter/index.d.ts.map +0 -1
  511. package/dist/src/foundation/pi-engine-adapter/index.js.map +0 -1
  512. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts.map +0 -1
  513. package/dist/src/foundation/pi-engine-adapter/workflows.js.map +0 -1
  514. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts.map +0 -1
  515. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js.map +0 -1
  516. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts.map +0 -1
  517. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js.map +0 -1
  518. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts.map +0 -1
  519. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.js.map +0 -1
  520. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts.map +0 -1
  521. package/dist/src/foundation/pi-tui-runtime-adapter/index.js.map +0 -1
  522. package/dist/src/foundation/protocol/client.d.ts.map +0 -1
  523. package/dist/src/foundation/protocol/client.js.map +0 -1
  524. package/dist/src/foundation/protocol/index.d.ts.map +0 -1
  525. package/dist/src/foundation/protocol/index.js.map +0 -1
  526. package/dist/src/foundation/protocol/messages.d.ts.map +0 -1
  527. package/dist/src/foundation/protocol/messages.js.map +0 -1
  528. package/dist/src/foundation/release/bootstrap.d.ts.map +0 -1
  529. package/dist/src/foundation/release/bootstrap.js.map +0 -1
  530. package/dist/src/foundation/release/cohort-selection.d.ts.map +0 -1
  531. package/dist/src/foundation/release/cohort-selection.js.map +0 -1
  532. package/dist/src/foundation/release/cohort-state.d.ts.map +0 -1
  533. package/dist/src/foundation/release/cohort-state.js.map +0 -1
  534. package/dist/src/foundation/release/development-preview-release.d.ts.map +0 -1
  535. package/dist/src/foundation/release/development-preview-release.js.map +0 -1
  536. package/dist/src/foundation/release/index.d.ts.map +0 -1
  537. package/dist/src/foundation/release/index.js.map +0 -1
  538. package/dist/src/foundation/release/process-cleanup.d.ts.map +0 -1
  539. package/dist/src/foundation/release/process-cleanup.js.map +0 -1
  540. package/dist/src/foundation/release/release-gc.d.ts.map +0 -1
  541. package/dist/src/foundation/release/release-gc.js.map +0 -1
  542. package/dist/src/foundation/release/release-store.d.ts.map +0 -1
  543. package/dist/src/foundation/release/release-store.js.map +0 -1
  544. package/dist/src/foundation/release/release.d.ts.map +0 -1
  545. package/dist/src/foundation/release/release.js.map +0 -1
  546. package/dist/src/foundation/release/stable-release.d.ts.map +0 -1
  547. package/dist/src/foundation/release/stable-release.js.map +0 -1
  548. package/dist/src/foundation/release/update-transaction.d.ts.map +0 -1
  549. package/dist/src/foundation/release/update-transaction.js.map +0 -1
  550. package/dist/src/foundation/release/update.d.ts.map +0 -1
  551. package/dist/src/foundation/release/update.js.map +0 -1
  552. package/dist/src/foundation/storage/control-store.d.ts.map +0 -1
  553. package/dist/src/foundation/storage/control-store.js.map +0 -1
  554. package/dist/src/foundation/storage/index.d.ts.map +0 -1
  555. package/dist/src/foundation/storage/index.js.map +0 -1
  556. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts.map +0 -1
  557. package/dist/src/foundation/structured-agent-runtime/backpressure.js.map +0 -1
  558. package/dist/src/foundation/structured-agent-runtime/commands.d.ts.map +0 -1
  559. package/dist/src/foundation/structured-agent-runtime/commands.js.map +0 -1
  560. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts.map +0 -1
  561. package/dist/src/foundation/structured-agent-runtime/handshake.js.map +0 -1
  562. package/dist/src/foundation/structured-agent-runtime/index.d.ts.map +0 -1
  563. package/dist/src/foundation/structured-agent-runtime/index.js.map +0 -1
  564. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts.map +0 -1
  565. package/dist/src/foundation/structured-agent-runtime/reconnection.js.map +0 -1
  566. package/dist/src/foundation/structured-agent-runtime/state.d.ts.map +0 -1
  567. package/dist/src/foundation/structured-agent-runtime/state.js.map +0 -1
  568. package/dist/src/foundation/supervision/index.d.ts.map +0 -1
  569. package/dist/src/foundation/supervision/index.js.map +0 -1
  570. package/dist/src/foundation/supervision/main.d.ts.map +0 -1
  571. package/dist/src/foundation/supervision/main.js.map +0 -1
  572. package/dist/src/foundation/supervision/paths.d.ts.map +0 -1
  573. package/dist/src/foundation/supervision/paths.js.map +0 -1
  574. package/dist/src/foundation/supervision/server.d.ts.map +0 -1
  575. package/dist/src/foundation/supervision/server.js.map +0 -1
  576. package/dist/src/foundation/transparent-terminal/command-resolution.d.ts +0 -14
  577. package/dist/src/foundation/transparent-terminal/command-resolution.d.ts.map +0 -1
  578. package/dist/src/foundation/transparent-terminal/command-resolution.js +0 -70
  579. package/dist/src/foundation/transparent-terminal/command-resolution.js.map +0 -1
  580. package/dist/src/foundation/transparent-terminal/foreground-broker.d.ts +0 -33
  581. package/dist/src/foundation/transparent-terminal/foreground-broker.d.ts.map +0 -1
  582. package/dist/src/foundation/transparent-terminal/foreground-broker.js +0 -88
  583. package/dist/src/foundation/transparent-terminal/foreground-broker.js.map +0 -1
  584. package/dist/src/foundation/transparent-terminal/index.d.ts +0 -4
  585. package/dist/src/foundation/transparent-terminal/index.d.ts.map +0 -1
  586. package/dist/src/foundation/transparent-terminal/index.js +0 -4
  587. package/dist/src/foundation/transparent-terminal/index.js.map +0 -1
  588. package/dist/src/foundation/transparent-terminal/main.d.ts +0 -10
  589. package/dist/src/foundation/transparent-terminal/main.d.ts.map +0 -1
  590. package/dist/src/foundation/transparent-terminal/main.js +0 -107
  591. package/dist/src/foundation/transparent-terminal/main.js.map +0 -1
  592. package/dist/src/foundation/transparent-terminal/native-launcher.d.ts +0 -26
  593. package/dist/src/foundation/transparent-terminal/native-launcher.d.ts.map +0 -1
  594. package/dist/src/foundation/transparent-terminal/native-launcher.js +0 -147
  595. package/dist/src/foundation/transparent-terminal/native-launcher.js.map +0 -1
  596. package/dist/src/foundation/workspace-contracts/index.d.ts.map +0 -1
  597. package/dist/src/foundation/workspace-contracts/index.js.map +0 -1
  598. package/dist/src/foundation/workspace-contracts/model.d.ts.map +0 -1
  599. package/dist/src/foundation/workspace-contracts/model.js.map +0 -1
  600. package/dist/src/foundation/workspace-contracts/validation.d.ts.map +0 -1
  601. package/dist/src/foundation/workspace-contracts/validation.js.map +0 -1
  602. /package/bin/{addone-supervisor.js → supervisor.js} +0 -0
@@ -58,4 +58,3 @@ export const PINNED_PI_SETTINGS_CALLBACKS = [
58
58
  "onWarningsChange",
59
59
  "onCancel",
60
60
  ];
61
- //# sourceMappingURL=workflows.js.map
@@ -0,0 +1,2 @@
1
+ export * from "./session-shell.js";
2
+ export * from "./route-host.js";
@@ -0,0 +1,2 @@
1
+ export * from "./session-shell.js";
2
+ export * from "./route-host.js";
@@ -0,0 +1,29 @@
1
+ import type { PaneMouseEvent } from "../ui-components/index.js";
2
+ /**
3
+ * The seam between the pinned shell and A1-owned screens. The shell asks whether
4
+ * a route is claimed, mounts whatever surface it is handed, and forwards keys to
5
+ * it — it never learns what an app is, and the app layer never reaches into the
6
+ * shell.
7
+ */
8
+ export interface UiRouteSurface {
9
+ readonly id: string;
10
+ /** Renders exactly `height` rows of at most `width` columns. */
11
+ render(width: number, height: number): readonly string[];
12
+ /** True when the key was consumed; false leaves it to the shell. */
13
+ handleInput(data: string): boolean;
14
+ /** Mouse report in surface-local coordinates. True when consumed. */
15
+ handleMouse(event: PaneMouseEvent): boolean;
16
+ /** True once the surface has asked to be dismissed. */
17
+ isClosed(): boolean;
18
+ close(): void;
19
+ /** Called by the shell when the surface should repaint. */
20
+ onRenderRequested(listener: () => void): void;
21
+ /** The surface asks to leave A1 entirely, not merely to close itself. */
22
+ onExitRequested(listener: () => void): void;
23
+ }
24
+ export interface UiRouteHost {
25
+ /** True when a declared A1-owned surface claims this route. */
26
+ claims(route: string): boolean;
27
+ /** Opens the route's surface, or null when it could not be presented. */
28
+ open(route: string): UiRouteSurface | null;
29
+ }
@@ -1,14 +1,23 @@
1
- import type { OwnedUiSessionViewModel, OwnedUiThinkingLevel } from "../../foundation/owned-ui-contracts/index.js";
2
- import { type AdapterCommandResult, type PiEngineAdapter, type PiWorkflowRequest, type PiWorkflowResult } from "../../foundation/pi-engine-adapter/index.js";
3
- import { type PiShellComponentPort, type PiShellEditorPort, type PiShellExtensionRendererResolver, type PiShellHeaderOptions, type PiShellHeaderPort, type PiShellLoadedResourcesPort, type PiShellSelectorOption, type PiShellTranscriptComponentPort } from "../../foundation/pi-component-adapter/index.js";
4
- import { PiTuiRuntimeAdapter, type PiTuiComponentPort, type PiTuiLayoutNode, type PiTuiOverlayHandle, type PiTuiTerminalPort } from "../../foundation/pi-tui-runtime-adapter/index.js";
5
- export interface PiSessionShellOptions {
6
- readonly adapter: PiEngineAdapter;
1
+ import type { OwnedUiSessionViewModel, OwnedUiThinkingLevel } from "../owned-ui-contracts/index.js";
2
+ import type { UiRouteHost } from "./route-host.js";
3
+ import { type AdapterCommandResult, type PiEngineAdapter, type PiWorkflowRequest, type PiWorkflowResult } from "../pi-engine-adapter/index.js";
4
+ import { type PiShellComponentPort, type PiShellEditorPort, type PiShellExtensionRendererResolver, type PiShellHeaderOptions, type PiShellHeaderPort, type PiShellLoadedResourcesPort, type PiShellSelectorOption, type PiShellTranscriptComponentPort } from "../pi-component-adapter/index.js";
5
+ import { PiTuiRuntimeAdapter, type PiTuiComponentPort, type PiTuiLayoutNode, type PiTuiOverlayHandle, type PiTuiTerminalPort } from "../pi-tui-runtime-adapter/index.js";
6
+ type OwnedUiBackendPort = PiEngineAdapter;
7
+ type OwnedUiTerminalPort = PiTuiTerminalPort;
8
+ type OwnedUiStartupOptions = PiShellHeaderOptions;
9
+ export interface OwnedUiSessionShellOptions {
10
+ readonly backend: OwnedUiBackendPort;
7
11
  readonly cwd: string;
8
- readonly terminal?: PiTuiTerminalPort;
9
- readonly startup?: PiShellHeaderOptions;
12
+ readonly terminal?: OwnedUiTerminalPort;
13
+ readonly startup?: OwnedUiStartupOptions;
14
+ /**
15
+ * Declared A1-owned routes. A route this host claims resolves to its app;
16
+ * every other route continues to the pinned workflow table unchanged.
17
+ */
18
+ readonly routeHost?: UiRouteHost;
10
19
  }
11
- export declare class PiSessionShellRoot implements PiTuiComponentPort {
20
+ export declare class OwnedUiSessionShellRoot implements PiTuiComponentPort {
12
21
  #private;
13
22
  readonly editor: PiShellEditorPort;
14
23
  readonly header: PiShellHeaderPort;
@@ -54,12 +63,12 @@ export declare class PiSessionShellRoot implements PiTuiComponentPort {
54
63
  setFocused(focused: boolean): void;
55
64
  dispose(): void;
56
65
  }
57
- export declare class PiSessionShell {
66
+ export declare class OwnedUiSessionShell {
58
67
  #private;
59
- readonly adapter: PiEngineAdapter;
60
- readonly root: PiSessionShellRoot;
68
+ readonly backend: OwnedUiBackendPort;
69
+ readonly root: OwnedUiSessionShellRoot;
61
70
  readonly runtime: PiTuiRuntimeAdapter;
62
- constructor(options: PiSessionShellOptions);
71
+ constructor(options: OwnedUiSessionShellOptions);
63
72
  view(): OwnedUiSessionViewModel;
64
73
  start(): void;
65
74
  onView(listener: (view: OwnedUiSessionViewModel) => void): () => void;
@@ -94,4 +103,4 @@ export declare class PiSessionShell {
94
103
  showScopedModelsSelector(): void;
95
104
  dispose(): Promise<void>;
96
105
  }
97
- //# sourceMappingURL=pi-session-shell.d.ts.map
106
+ export {};
@@ -1,7 +1,8 @@
1
- import { PINNED_PI_HIDDEN_COMMAND_NAMES, PINNED_PI_WORKFLOW_COMMAND_NAMES, } from "../../foundation/pi-engine-adapter/index.js";
2
- import { createPiExtensionUiBridge, createPiQueuedInputStatus, createPiShellArmin, createPiShellAuthProviderSelector, createPiShellChangelog, createPiShellDaxnuts, createPiShellDialog, createPiShellEarendilAnnouncement, createPiShellEditor, createPiShellExtensionSelector, createPiShellFooter, createPiShellHeader, createPiShellHotkeys, createPiShellLoadedResources, createPiShellLoginDialog, createPiShellModelSelector, createPiShellOperationLoader, createPiShellReloadBox, createPiShellScopedModelsSelector, createPiShellSelector, createPiShellSessionInfo, createPiShellSessionSelector, createPiShellSettingsSelector, createPiShellStatus, createPiShellTranscriptComponent, createPiShellTreeSelector, createPiShellTrustSelector, createPiShellUserMessageSelector, piTheme, renderPiShellStatusText, renderPiShellTranscriptBlock, } from "../../foundation/pi-component-adapter/index.js";
3
- import { PiTuiRuntimeAdapter, } from "../../foundation/pi-tui-runtime-adapter/index.js";
4
- export class PiSessionShellRoot {
1
+ import { MOUSE_TRACKING_OFF, MOUSE_TRACKING_ON, parseMouseInput } from "../ui-components/index.js";
2
+ import { PINNED_PI_HIDDEN_COMMAND_NAMES, PINNED_PI_WORKFLOW_COMMAND_NAMES, } from "../pi-engine-adapter/index.js";
3
+ import { createPiExtensionUiBridge, createPiQueuedInputStatus, createPiShellArmin, createPiShellAuthProviderSelector, createPiShellChangelog, createPiShellDaxnuts, createPiShellDialog, createPiShellEarendilAnnouncement, createPiShellEditor, createPiShellExtensionSelector, createPiShellFooter, createPiShellHeader, createPiShellHotkeys, createPiShellLoadedResources, createPiShellLoginDialog, createPiShellModelSelector, createPiShellOperationLoader, createPiShellReloadBox, createPiShellScopedModelsSelector, createPiShellSelector, createPiShellSessionInfo, createPiShellSessionSelector, createPiShellSettingsSelector, createPiShellStatus, createPiShellTranscriptComponent, createPiShellTreeSelector, createPiShellTrustSelector, createPiShellUserMessageSelector, piTheme, renderPiShellStatusText, renderPiShellTranscriptBlock, } from "../pi-component-adapter/index.js";
4
+ import { PiTuiRuntimeAdapter, } from "../pi-tui-runtime-adapter/index.js";
5
+ export class OwnedUiSessionShellRoot {
5
6
  editor;
6
7
  header;
7
8
  resources;
@@ -495,8 +496,8 @@ function layoutPort(render, invalidate, handleInput) {
495
496
  ...(handleInput === undefined ? {} : { handleInput }),
496
497
  };
497
498
  }
498
- function shellResourceEntries(adapter) {
499
- const resources = adapter.nonVisualResources().map(resource => ({
499
+ function shellResourceEntries(backend) {
500
+ const resources = backend.nonVisualResources().map(resource => ({
500
501
  section: resource.kind === "skill"
501
502
  ? "Skills"
502
503
  : resource.kind === "prompt-template"
@@ -512,7 +513,7 @@ function shellResourceEntries(adapter) {
512
513
  sourcePath: resource.sourcePath,
513
514
  diagnostic: resource.diagnostic,
514
515
  }));
515
- for (const extension of adapter.extensionResources()) {
516
+ for (const extension of backend.extensionResources()) {
516
517
  if (extension.hidden)
517
518
  continue;
518
519
  resources.push({
@@ -531,8 +532,8 @@ function compactResourceLabel(path) {
531
532
  return segments.at(-2) ?? leaf;
532
533
  return leaf;
533
534
  }
534
- export class PiSessionShell {
535
- adapter;
535
+ export class OwnedUiSessionShell {
536
+ backend;
536
537
  root;
537
538
  runtime;
538
539
  #cwd;
@@ -542,6 +543,7 @@ export class PiSessionShell {
542
543
  #stopped;
543
544
  #resolveStopped;
544
545
  #dialogId;
546
+ #routeHost;
545
547
  #dialogHandle;
546
548
  #sequence = 0;
547
549
  #started = false;
@@ -551,14 +553,15 @@ export class PiSessionShell {
551
553
  #activeLoginDialog;
552
554
  #sessionGeneration;
553
555
  constructor(options) {
554
- this.adapter = options.adapter;
555
- this.#sessionGeneration = this.adapter.sessionGeneration;
556
+ this.backend = options.backend;
557
+ this.#sessionGeneration = this.backend.sessionGeneration;
556
558
  this.#cwd = options.cwd;
559
+ this.#routeHost = options.routeHost ?? null;
557
560
  this.#stopped = new Promise(resolve => {
558
561
  this.#resolveStopped = resolve;
559
562
  });
560
563
  let runtime;
561
- this.root = new PiSessionShellRoot(this.adapter.view(), options.cwd, {
564
+ this.root = new OwnedUiSessionShellRoot(this.backend.view(), options.cwd, {
562
565
  getColumns: () => runtime?.viewport().columns ?? options.terminal?.columns ?? 80,
563
566
  getRows: () => runtime?.viewport().rows ?? options.terminal?.rows ?? 24,
564
567
  requestRender: () => runtime?.requestRender(),
@@ -578,15 +581,15 @@ export class PiSessionShell {
578
581
  onDequeue: () => this.restoreQueuedInput(),
579
582
  }, {
580
583
  ...options.startup,
581
- resources: options.startup?.resources ?? shellResourceEntries(this.adapter),
582
- }, this.adapter.agentDir, {
583
- getMessageRenderer: customType => this.adapter.pinnedMessageRenderer(customType),
584
- getToolDefinition: toolName => this.adapter.pinnedToolDefinition(toolName),
584
+ resources: options.startup?.resources ?? shellResourceEntries(this.backend),
585
+ }, this.backend.agentDir, {
586
+ getMessageRenderer: customType => this.backend.pinnedMessageRenderer(customType),
587
+ getToolDefinition: toolName => this.backend.pinnedToolDefinition(toolName),
585
588
  });
586
- const tuiMode = this.adapter.disposed ? "regular" : this.adapter.pinnedSettingsSnapshot().tuiMode;
589
+ const tuiMode = this.backend.disposed ? "regular" : this.backend.pinnedSettingsSnapshot().tuiMode;
587
590
  const runtimeOptions = options.terminal === undefined
588
- ? { root: this.root, mode: tuiMode, layoutRoot: this.root.layoutRoot(), hardwareCursor: this.adapter.view().terminal.hardwareCursor }
589
- : { root: this.root, mode: tuiMode, layoutRoot: this.root.layoutRoot(), terminal: options.terminal, hardwareCursor: this.adapter.view().terminal.hardwareCursor };
591
+ ? { root: this.root, mode: tuiMode, layoutRoot: this.root.layoutRoot(), hardwareCursor: this.backend.view().terminal.hardwareCursor }
592
+ : { root: this.root, mode: tuiMode, layoutRoot: this.root.layoutRoot(), terminal: options.terminal, hardwareCursor: this.backend.view().terminal.hardwareCursor };
590
593
  runtime = new PiTuiRuntimeAdapter(runtimeOptions);
591
594
  this.runtime = runtime;
592
595
  this.#extensionBridge = createPiExtensionUiBridge({
@@ -595,7 +598,7 @@ export class PiSessionShell {
595
598
  getRows: () => this.runtime.viewport().rows,
596
599
  requestRender: () => this.runtime.requestRender(),
597
600
  },
598
- agentDir: this.adapter.agentDir,
601
+ agentDir: this.backend.agentDir,
599
602
  setInputSurface: component => this.root.setInputSurface(component),
600
603
  showOverlay: (component, overlayOptions) => this.runtime.showOverlay(component, overlayOptions),
601
604
  listenInput: handler => this.runtime.addInputListener(handler),
@@ -615,32 +618,32 @@ export class PiSessionShell {
615
618
  getToolsExpanded: () => this.root.toolsExpanded,
616
619
  setToolsExpanded: expanded => this.root.setToolsExpanded(expanded),
617
620
  });
618
- this.adapter.setWorkflowInteractionHost({
621
+ this.backend.setWorkflowInteractionHost({
619
622
  startLogin: request => this.#startWorkflowLogin(request),
620
623
  prompt: request => this.#requestWorkflowInput(request),
621
624
  notify: event => this.#notifyWorkflowLogin(event),
622
625
  finishLogin: () => this.#finishWorkflowLogin(),
623
626
  });
624
- this.root.editor.setAutocompleteCommands(this.adapter.workflowAutocompleteCommands());
625
- this.#unsubscribe = this.adapter.onEvent(event => {
627
+ this.root.editor.setAutocompleteCommands(this.backend.workflowAutocompleteCommands());
628
+ this.#unsubscribe = this.backend.onEvent(event => {
626
629
  this.#syncView();
627
630
  if (this.view().lifecycle === "ready" && this.#compactionQueue.length > 0)
628
631
  void this.#flushCompactionQueue();
629
632
  if (event.type === "session-lifecycle" && event.lifecycle === "stopped")
630
633
  this.#resolveStopped?.();
631
634
  });
632
- if (this.adapter.view().lifecycle === "stopped")
635
+ if (this.backend.view().lifecycle === "stopped")
633
636
  this.#resolveStopped?.();
634
637
  }
635
638
  view() {
636
- return this.adapter.view();
639
+ return this.backend.view();
637
640
  }
638
641
  start() {
639
642
  if (this.#started)
640
643
  return;
641
644
  this.#started = true;
642
645
  this.runtime.start();
643
- void this.adapter.bindExtensionUi(this.#extensionBridge.context, () => { void this.shutdown(); });
646
+ void this.backend.bindExtensionUi(this.#extensionBridge.context, () => { void this.shutdown(); });
644
647
  this.#syncView();
645
648
  }
646
649
  onView(listener) {
@@ -663,7 +666,7 @@ export class PiSessionShell {
663
666
  if (command) {
664
667
  this.root.editor.addToHistory(input);
665
668
  try {
666
- const result = await this.adapter.executeBashWorkflow(command, excludeFromContext);
669
+ const result = await this.backend.executeBashWorkflow(command, excludeFromContext);
667
670
  const workflow = {
668
671
  command: "debug",
669
672
  outcome: result.cancelled ? "cancelled" : result.exitCode === 0 || result.exitCode === undefined ? "completed" : "failed",
@@ -694,7 +697,7 @@ export class PiSessionShell {
694
697
  return this.#execute({
695
698
  type,
696
699
  correlationId: this.#correlation(type),
697
- sessionId: this.adapter.sessionId,
700
+ sessionId: this.backend.sessionId,
698
701
  text: input,
699
702
  });
700
703
  }
@@ -731,7 +734,7 @@ export class PiSessionShell {
731
734
  return this.#execute({
732
735
  type: "resume-session",
733
736
  correlationId: this.#correlation("resume"),
734
- sessionId: this.adapter.sessionId,
737
+ sessionId: this.backend.sessionId,
735
738
  sessionPath,
736
739
  });
737
740
  }
@@ -739,7 +742,7 @@ export class PiSessionShell {
739
742
  return this.#execute({
740
743
  type: "set-model",
741
744
  correlationId: this.#correlation("model"),
742
- sessionId: this.adapter.sessionId,
745
+ sessionId: this.backend.sessionId,
743
746
  model: { providerId, modelId, displayName: modelId },
744
747
  });
745
748
  }
@@ -747,7 +750,7 @@ export class PiSessionShell {
747
750
  return this.#execute({
748
751
  type: "set-thinking-level",
749
752
  correlationId: this.#correlation("thinking"),
750
- sessionId: this.adapter.sessionId,
753
+ sessionId: this.backend.sessionId,
751
754
  thinkingLevel,
752
755
  });
753
756
  }
@@ -757,7 +760,7 @@ export class PiSessionShell {
757
760
  return this.setThinkingLevel(levels[(current + 1) % levels.length] ?? "off");
758
761
  }
759
762
  async cycleModel(direction) {
760
- const result = await this.adapter.cycleModelWorkflow(direction);
763
+ const result = await this.backend.cycleModelWorkflow(direction);
761
764
  this.root.appendWorkflowResult(result);
762
765
  if (result.outcome === "completed")
763
766
  this.#showDaxnutsForActiveModel();
@@ -777,12 +780,12 @@ export class PiSessionShell {
777
780
  return this.#execute({
778
781
  type: "follow-up",
779
782
  correlationId: this.#correlation("follow-up"),
780
- sessionId: this.adapter.sessionId,
783
+ sessionId: this.backend.sessionId,
781
784
  text,
782
785
  });
783
786
  }
784
787
  restoreQueuedInput() {
785
- const queued = [...this.adapter.clearQueuedWorkflows(), ...this.#compactionQueue.map(item => item.text)];
788
+ const queued = [...this.backend.clearQueuedWorkflows(), ...this.#compactionQueue.map(item => item.text)];
786
789
  this.#compactionQueue = [];
787
790
  if (queued.length === 0)
788
791
  return;
@@ -810,7 +813,7 @@ export class PiSessionShell {
810
813
  return handle;
811
814
  }
812
815
  showModelSelector() {
813
- const context = this.adapter.pinnedModelSelectorContext();
816
+ const context = this.backend.pinnedModelSelectorContext();
814
817
  const close = () => {
815
818
  this.root.setInputSurface(null);
816
819
  this.runtime.requestRender();
@@ -832,7 +835,7 @@ export class PiSessionShell {
832
835
  this.runtime.requestRender();
833
836
  }
834
837
  showForkSelector() {
835
- const options = this.adapter.pinnedForkOptions();
838
+ const options = this.backend.pinnedForkOptions();
836
839
  if (options.length === 0) {
837
840
  this.root.appendWorkflowResult({ command: "fork", outcome: "failed", message: "No user messages available to fork from" });
838
841
  this.runtime.requestRender();
@@ -850,7 +853,7 @@ export class PiSessionShell {
850
853
  this.runtime.requestRender();
851
854
  }
852
855
  async showLogoutSelector() {
853
- const options = await this.adapter.pinnedLogoutOptions();
856
+ const options = await this.backend.pinnedLogoutOptions();
854
857
  if (options.length === 0) {
855
858
  this.root.appendWorkflowStatus("No authenticated providers available.");
856
859
  this.runtime.requestRender();
@@ -868,7 +871,7 @@ export class PiSessionShell {
868
871
  this.runtime.requestRender();
869
872
  }
870
873
  showLoginMethodSelector(providerReference) {
871
- const method = this.adapter.pinnedLoginMethodOptions(providerReference);
874
+ const method = this.backend.pinnedLoginMethodOptions(providerReference);
872
875
  if (method.options.length === 0) {
873
876
  this.root.appendWorkflowResult({ command: "login", outcome: "failed", message: `No authentication methods available for ${providerReference}` });
874
877
  this.runtime.requestRender();
@@ -896,7 +899,7 @@ export class PiSessionShell {
896
899
  this.runtime.requestRender();
897
900
  }
898
901
  showTreeSelector(initialSelectedId) {
899
- const context = this.adapter.pinnedTreeSelectorContext();
902
+ const context = this.backend.pinnedTreeSelectorContext();
900
903
  if (context.tree.length === 0) {
901
904
  this.root.appendWorkflowStatus("No entries in session");
902
905
  this.runtime.requestRender();
@@ -941,7 +944,7 @@ export class PiSessionShell {
941
944
  this.runtime.requestRender();
942
945
  }
943
946
  showLoginProviderSelector(authType) {
944
- const options = this.adapter.pinnedLoginOptions(authType);
947
+ const options = this.backend.pinnedLoginOptions(authType);
945
948
  if (options.length === 0) {
946
949
  this.root.appendWorkflowStatus(authType === "oauth" ? "No subscription providers available." : "No API key providers available.");
947
950
  this.runtime.requestRender();
@@ -962,7 +965,7 @@ export class PiSessionShell {
962
965
  this.runtime.requestRender();
963
966
  }
964
967
  showSessionSelector() {
965
- const context = this.adapter.pinnedSessionSelectorContext();
968
+ const context = this.backend.pinnedSessionSelectorContext();
966
969
  const close = () => {
967
970
  this.root.setInputSurface(null);
968
971
  this.runtime.requestRender();
@@ -987,7 +990,7 @@ export class PiSessionShell {
987
990
  this.runtime.requestRender();
988
991
  }
989
992
  showSettingsSelector() {
990
- const snapshot = this.adapter.pinnedSettingsSnapshot();
993
+ const snapshot = this.backend.pinnedSettingsSnapshot();
991
994
  const close = () => {
992
995
  this.root.setInputSurface(null);
993
996
  this.runtime.requestRender();
@@ -1013,7 +1016,7 @@ export class PiSessionShell {
1013
1016
  return;
1014
1017
  }
1015
1018
  }
1016
- const result = this.adapter.applyPinnedSettingValue(callback, value);
1019
+ const result = this.backend.applyPinnedSettingValue(callback, value);
1017
1020
  if (result.outcome === "failed")
1018
1021
  this.root.appendWorkflowResult(result);
1019
1022
  else if (callback === "onTuiModeChange")
@@ -1091,7 +1094,7 @@ export class PiSessionShell {
1091
1094
  }
1092
1095
  let result;
1093
1096
  try {
1094
- result = await this.adapter.executeWorkflow(request);
1097
+ result = await this.backend.executeWorkflow(request);
1095
1098
  }
1096
1099
  finally {
1097
1100
  if (operationSurface) {
@@ -1109,7 +1112,7 @@ export class PiSessionShell {
1109
1112
  return { outcome: "failed", diagnostic: `Owned controller missing for ${request.command}` };
1110
1113
  }
1111
1114
  if (request.command === "reload" && result.outcome === "completed") {
1112
- this.root.editor.setAutocompleteCommands(this.adapter.workflowAutocompleteCommands());
1115
+ this.root.editor.setAutocompleteCommands(this.backend.workflowAutocompleteCommands());
1113
1116
  }
1114
1117
  this.root.appendWorkflowResult(result);
1115
1118
  if (request.command === "model" && result.outcome === "completed")
@@ -1118,7 +1121,7 @@ export class PiSessionShell {
1118
1121
  return workflowAdapterResult(result);
1119
1122
  }
1120
1123
  showTrustSelector() {
1121
- const context = this.adapter.pinnedProjectTrustContext();
1124
+ const context = this.backend.pinnedProjectTrustContext();
1122
1125
  const close = () => {
1123
1126
  this.root.setInputSurface(null);
1124
1127
  this.runtime.requestRender();
@@ -1127,7 +1130,7 @@ export class PiSessionShell {
1127
1130
  ...context,
1128
1131
  onSelect: selection => {
1129
1132
  try {
1130
- this.adapter.persistProjectTrust(selection.updates);
1133
+ this.backend.persistProjectTrust(selection.updates);
1131
1134
  close();
1132
1135
  this.root.appendWorkflowStatus(`Saved trust decision: ${selection.trusted ? "trusted" : "untrusted"}. Restart pi for this to take effect.`);
1133
1136
  }
@@ -1143,7 +1146,7 @@ export class PiSessionShell {
1143
1146
  this.runtime.requestRender();
1144
1147
  }
1145
1148
  showScopedModelsSelector() {
1146
- const initial = this.adapter.pinnedScopedModelsContext();
1149
+ const initial = this.backend.pinnedScopedModelsContext();
1147
1150
  let currentEnabledIds = initial.enabledModelIds === null ? null : [...initial.enabledModelIds];
1148
1151
  let selectionChanged = false;
1149
1152
  let disposed = false;
@@ -1167,12 +1170,12 @@ export class PiSessionShell {
1167
1170
  onChange: enabledIds => {
1168
1171
  selectionChanged = true;
1169
1172
  currentEnabledIds = enabledIds === null ? null : [...enabledIds];
1170
- this.adapter.updateScopedModels(currentEnabledIds);
1173
+ this.backend.updateScopedModels(currentEnabledIds);
1171
1174
  this.runtime.requestRender();
1172
1175
  },
1173
1176
  onPersist: enabledIds => {
1174
1177
  currentEnabledIds = enabledIds === null ? null : [...enabledIds];
1175
- this.adapter.persistScopedModels(currentEnabledIds);
1178
+ this.backend.persistScopedModels(currentEnabledIds);
1176
1179
  this.root.appendWorkflowStatus("Model selection saved to settings");
1177
1180
  this.runtime.requestRender();
1178
1181
  },
@@ -1189,7 +1192,7 @@ export class PiSessionShell {
1189
1192
  };
1190
1193
  this.root.setInputSurface(component);
1191
1194
  this.runtime.requestRender();
1192
- void this.adapter.refreshScopedModels(controller.signal).then(refreshed => {
1195
+ void this.backend.refreshScopedModels(controller.signal).then(refreshed => {
1193
1196
  if (disposed)
1194
1197
  return;
1195
1198
  if (!selectionChanged) {
@@ -1198,7 +1201,7 @@ export class PiSessionShell {
1198
1201
  }
1199
1202
  else {
1200
1203
  component.updateModels(refreshed.models);
1201
- this.adapter.updateScopedModels(currentEnabledIds);
1204
+ this.backend.updateScopedModels(currentEnabledIds);
1202
1205
  }
1203
1206
  component.setRefreshStatus(timedOut ? "Model refresh timed out; showing cached models." : refreshed.status, timedOut ? "warning" : refreshed.statusKind);
1204
1207
  this.runtime.requestRender();
@@ -1223,14 +1226,14 @@ export class PiSessionShell {
1223
1226
  this.#disposed = true;
1224
1227
  this.#unsubscribe();
1225
1228
  this.#dialogHandle?.hide();
1226
- await this.adapter.unbindExtensionUi();
1229
+ await this.backend.unbindExtensionUi();
1227
1230
  this.#extensionBridge.dispose();
1228
1231
  await this.runtime.dispose();
1229
1232
  }
1230
1233
  #syncView() {
1231
1234
  const view = this.view();
1232
- if (this.adapter.sessionGeneration !== this.#sessionGeneration) {
1233
- this.#sessionGeneration = this.adapter.sessionGeneration;
1235
+ if (this.backend.sessionGeneration !== this.#sessionGeneration) {
1236
+ this.#sessionGeneration = this.backend.sessionGeneration;
1234
1237
  this.#activeLoginDialog = undefined;
1235
1238
  this.#extensionBridge.reset();
1236
1239
  this.root.setInputSurface(null);
@@ -1243,6 +1246,69 @@ export class PiSessionShell {
1243
1246
  for (const listener of this.#listeners)
1244
1247
  listener(view);
1245
1248
  }
1249
+ #openOwnedRoute(route) {
1250
+ const surface = this.#routeHost?.open(route) ?? null;
1251
+ if (surface === null)
1252
+ return { outcome: "failed", diagnostic: `route is unavailable: ${route}` };
1253
+ if (!this.runtime.active)
1254
+ return { outcome: "failed", diagnostic: "runtime is not active" };
1255
+ this.#dialogHandle?.hide();
1256
+ // Any-event reporting: hover and drag are what the screen is driven by, and
1257
+ // it also stops the terminal treating a drag as a text selection.
1258
+ this.runtime.writeControl(MOUSE_TRACKING_ON);
1259
+ // The interrupt chord is global, so it is watched on raw input rather than
1260
+ // through the overlay: the pinned shell handles that key before an overlay
1261
+ // ever sees it, which is why an owned screen must not rely on being asked.
1262
+ let armedAt = 0;
1263
+ const removeInterruptWatch = this.runtime.addInputListener(data => {
1264
+ if (!data.includes(INTERRUPT))
1265
+ return undefined;
1266
+ const now = Date.now();
1267
+ if (armedAt !== 0 && now - armedAt <= INTERRUPT_CHORD_MS) {
1268
+ armedAt = 0;
1269
+ closeSurface();
1270
+ void this.shutdown();
1271
+ return { consume: true };
1272
+ }
1273
+ armedAt = now;
1274
+ this.runtime.requestRender();
1275
+ // The presented screen owns the chord, so the pinned shell never sees a
1276
+ // stray interrupt while it is up.
1277
+ return { consume: true };
1278
+ });
1279
+ const closeSurface = () => {
1280
+ removeInterruptWatch();
1281
+ this.runtime.writeControl(MOUSE_TRACKING_OFF);
1282
+ this.#dialogHandle?.hide();
1283
+ this.#dialogHandle = undefined;
1284
+ this.#dialogId = undefined;
1285
+ };
1286
+ const rows = () => Math.max(1, this.runtime.viewport().rows);
1287
+ const component = {
1288
+ render: (width) => [...surface.render(Math.max(1, width), rows())],
1289
+ handleInput: (data) => {
1290
+ const { events, rest } = parseMouseInput(data);
1291
+ for (const event of events)
1292
+ surface.handleMouse(event);
1293
+ if (rest.length > 0)
1294
+ surface.handleInput(rest);
1295
+ if (surface.isClosed()) {
1296
+ closeSurface();
1297
+ return;
1298
+ }
1299
+ this.runtime.requestRender();
1300
+ },
1301
+ invalidate: () => this.runtime.requestRender(),
1302
+ };
1303
+ surface.onRenderRequested(() => this.runtime.requestRender());
1304
+ surface.onExitRequested(() => {
1305
+ closeSurface();
1306
+ void this.shutdown();
1307
+ });
1308
+ this.#dialogHandle = this.runtime.showOverlay(component, { width: "100%", maxHeight: "100%", anchor: "top-left" });
1309
+ this.#dialogId = surface.id;
1310
+ return { outcome: "completed", diagnostic: null };
1311
+ }
1246
1312
  #syncDialog(dialog) {
1247
1313
  if (!this.runtime.active)
1248
1314
  return;
@@ -1273,6 +1339,8 @@ export class PiSessionShell {
1273
1339
  const separator = body.search(/\s/);
1274
1340
  const name = separator < 0 ? body : body.slice(0, separator);
1275
1341
  const argument = separator < 0 ? "" : body.slice(separator + 1).trimStart();
1342
+ if (this.#routeHost?.claims(name))
1343
+ return this.#openOwnedRoute(name);
1276
1344
  if (isWorkflowRoute(name))
1277
1345
  return this.runWorkflow({ command: name, argument });
1278
1346
  // Unknown slash input, prompt templates, skills, and extension commands remain Pi prompt input.
@@ -1280,7 +1348,7 @@ export class PiSessionShell {
1280
1348
  return this.#execute({
1281
1349
  type: this.view().lifecycle === "busy" ? "steer" : "prompt",
1282
1350
  correlationId: this.#correlation("prompt-command"),
1283
- sessionId: this.adapter.sessionId,
1351
+ sessionId: this.backend.sessionId,
1284
1352
  text,
1285
1353
  });
1286
1354
  }
@@ -1362,7 +1430,7 @@ export class PiSessionShell {
1362
1430
  ? dialog.showManualInput(request.message)
1363
1431
  : dialog.showPrompt(request.message, request.placeholder);
1364
1432
  this.runtime.requestRender();
1365
- return response.then(value => value.trim() || null, () => null);
1433
+ return response.then(value => value, () => null);
1366
1434
  }
1367
1435
  #notifyWorkflowLogin(event) {
1368
1436
  const dialog = this.#activeLoginDialog;
@@ -1396,16 +1464,16 @@ export class PiSessionShell {
1396
1464
  await this.#execute({
1397
1465
  type: item.type,
1398
1466
  correlationId: this.#correlation(`compaction-${item.type}`),
1399
- sessionId: this.adapter.sessionId,
1467
+ sessionId: this.backend.sessionId,
1400
1468
  text: item.text,
1401
1469
  });
1402
1470
  }
1403
1471
  }
1404
1472
  async #execute(command) {
1405
- return this.adapter.execute(command);
1473
+ return this.backend.execute(command);
1406
1474
  }
1407
1475
  #simple(type) {
1408
- return { type, correlationId: this.#correlation(type), sessionId: this.adapter.sessionId };
1476
+ return { type, correlationId: this.#correlation(type), sessionId: this.backend.sessionId };
1409
1477
  }
1410
1478
  #correlation(prefix) {
1411
1479
  this.#sequence += 1;
@@ -1430,8 +1498,9 @@ function workflowAdapterResult(result) {
1430
1498
  return { outcome: "failed", diagnostic: result.message };
1431
1499
  return { outcome: "rejected", diagnostic: result.message };
1432
1500
  }
1501
+ const INTERRUPT = "\u0003";
1502
+ const INTERRUPT_CHORD_MS = 1_500;
1433
1503
  function isWorkflowRoute(value) {
1434
1504
  return PINNED_PI_WORKFLOW_COMMAND_NAMES.includes(value)
1435
1505
  || PINNED_PI_HIDDEN_COMMAND_NAMES.includes(value);
1436
1506
  }
1437
- //# sourceMappingURL=pi-session-shell.js.map
@@ -20,6 +20,12 @@ export declare class PiTuiRuntimeAdapter {
20
20
  setFocus(component: PiTuiComponentPort | null): void;
21
21
  showOverlay(component: PiTuiComponentPort, options?: PiTuiOverlayOptions): PiTuiOverlayHandle;
22
22
  hasOverlay(): boolean;
23
+ /**
24
+ * Writes a terminal control sequence. Used to enable and disable mouse
25
+ * reporting while an A1-owned application is presented, and for nothing else:
26
+ * the transparent and pinned paths never call it.
27
+ */
28
+ writeControl(data: string): void;
23
29
  addInputListener(listener: PiTuiInputListener): () => void;
24
30
  switchMode(mode: "regular" | "fullscreen"): boolean;
25
31
  setHardwareCursor(enabled: boolean): void;
@@ -31,4 +37,3 @@ export declare class PiTuiRuntimeAdapter {
31
37
  stop(options?: PiTuiStopOptions): Promise<void>;
32
38
  dispose(options?: PiTuiStopOptions): Promise<void>;
33
39
  }
34
- //# sourceMappingURL=adapter.d.ts.map
@@ -230,6 +230,15 @@ export class PiTuiRuntimeAdapter {
230
230
  hasOverlay() {
231
231
  return this.#tui.hasOverlay();
232
232
  }
233
+ /**
234
+ * Writes a terminal control sequence. Used to enable and disable mouse
235
+ * reporting while an A1-owned application is presented, and for nothing else:
236
+ * the transparent and pinned paths never call it.
237
+ */
238
+ writeControl(data) {
239
+ this.#assertRunning("control sequence");
240
+ this.#terminal.write(data);
241
+ }
233
242
  addInputListener(listener) {
234
243
  this.#assertRunning("input listener");
235
244
  if (this.#inputListeners.has(listener))
@@ -482,4 +491,3 @@ function toOverlayOptions(options) {
482
491
  mapped.nonCapturing = options.nonCapturing;
483
492
  return mapped;
484
493
  }
485
- //# sourceMappingURL=adapter.js.map