@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
@@ -0,0 +1,80 @@
1
+ export class PiResourceExtensionIntegration {
2
+ options;
3
+ capabilities = { reload: true, extensionBinding: true, binding: true, renderers: true };
4
+ #failures = new Set();
5
+ #unsubscribeError;
6
+ #binding;
7
+ constructor(options) {
8
+ this.options = options;
9
+ this.#unsubscribeError = options.session.extensionRunner.onError(error => {
10
+ const failure = {
11
+ extensionPath: error.extensionPath || null,
12
+ operation: error.event || "extension",
13
+ message: error.error || "unknown extension failure",
14
+ recoverable: true,
15
+ };
16
+ for (const listener of this.#failures)
17
+ listener(failure);
18
+ });
19
+ }
20
+ async discoverResources() {
21
+ const loader = this.options.session.resourceLoader;
22
+ const resources = [];
23
+ for (const skill of loader.getSkills().skills)
24
+ resources.push(resource(skill.name, "skill", skill.name, { source: skill.filePath }));
25
+ for (const prompt of loader.getPrompts().prompts)
26
+ resources.push(resource(prompt.name, "prompt", prompt.name, { source: prompt.filePath }));
27
+ for (const theme of loader.getThemes().themes)
28
+ resources.push(resource(theme.name ?? "theme", "other", theme.name ?? "Theme", { resourceType: "theme" }));
29
+ for (const file of loader.getAgentsFiles().agentsFiles)
30
+ resources.push(resource(file.path, "other", file.path, { resourceType: "agent-context" }));
31
+ for (const command of this.options.session.extensionRunner.getRegisteredCommands())
32
+ resources.push(resource(command.name, "command", command.name, { invocationName: command.invocationName }));
33
+ return resources;
34
+ }
35
+ async discoverCommands() {
36
+ return this.options.session.extensionRunner.getRegisteredCommands().map(command => ({
37
+ name: command.name,
38
+ description: command.description ?? "",
39
+ }));
40
+ }
41
+ async sessionMetadata() {
42
+ const manager = this.options.session.sessionManager;
43
+ return {
44
+ sessionId: this.options.session.sessionId,
45
+ sessionName: manager.getSessionName() ?? null,
46
+ sessionPath: manager.getSessionFile() ?? null,
47
+ cwd: manager.getCwd(),
48
+ };
49
+ }
50
+ async bind(sessionId) {
51
+ if (sessionId !== this.options.session.sessionId)
52
+ throw new Error("extension binding targets a different session");
53
+ await this.#binding?.dispose();
54
+ await this.options.bindUi();
55
+ let disposed = false;
56
+ const binding = {
57
+ sessionId,
58
+ dispose: async () => {
59
+ if (disposed)
60
+ return;
61
+ disposed = true;
62
+ if (this.#binding === binding)
63
+ this.#binding = undefined;
64
+ await this.options.unbindUi();
65
+ },
66
+ };
67
+ this.#binding = binding;
68
+ return binding;
69
+ }
70
+ async bindExtensions(sessionId) { return this.bind(sessionId); }
71
+ async reload() { await this.options.session.reload(); }
72
+ resolveMessageRenderer(customType) { return this.options.session.extensionRunner.getMessageRenderer(customType); }
73
+ resolveToolRenderer(toolName) { return this.options.session.extensionRunner.getToolDefinition(toolName); }
74
+ subscribeFailures(listener) { this.#failures.add(listener); return () => this.#failures.delete(listener); }
75
+ async dispose() { await this.#binding?.dispose(); this.#unsubscribeError(); this.#failures.clear(); }
76
+ }
77
+ function resource(id, kind, label, metadata) {
78
+ return { id: normalizeId(id), kind, label, metadata: Object.fromEntries(Object.entries(metadata).filter((entry) => typeof entry[1] === "string")) };
79
+ }
80
+ function normalizeId(value) { return value.replace(/[^A-Za-z0-9._:/-]/g, "-").slice(0, 128) || "resource"; }
@@ -0,0 +1,18 @@
1
+ import { type AgentSession, type AgentSessionRuntime } from "@earendil-works/pi-coding-agent";
2
+ export interface PiRuntimeIntegrationOptions {
3
+ readonly cwd: string;
4
+ readonly agentDir: string;
5
+ readonly sessionDir?: string;
6
+ }
7
+ export type PiSessionReplacement = {
8
+ readonly kind: "new";
9
+ } | {
10
+ readonly kind: "resume";
11
+ readonly sessionPath: string;
12
+ };
13
+ export declare function createPiRuntimeIntegration(options: PiRuntimeIntegrationOptions): Promise<AgentSessionRuntime>;
14
+ export declare function bindPiRuntimeSession(runtime: AgentSessionRuntime, rebind: (session: AgentSession) => Promise<void>): () => void;
15
+ export declare function replacePiRuntimeSession(runtime: AgentSessionRuntime, replacement: PiSessionReplacement): Promise<{
16
+ readonly cancelled: boolean;
17
+ }>;
18
+ export declare function disposePiRuntimeIntegration(runtime: AgentSessionRuntime): Promise<void>;
@@ -0,0 +1,32 @@
1
+ import { createAgentSessionFromServices, createAgentSessionRuntime, createAgentSessionServices, SessionManager, } from "@earendil-works/pi-coding-agent";
2
+ export async function createPiRuntimeIntegration(options) {
3
+ const sessionManager = SessionManager.create(options.cwd, options.sessionDir ?? process.env.PI_CODING_AGENT_SESSION_DIR);
4
+ const createRuntime = async ({ cwd, sessionManager: targetSessionManager, sessionStartEvent, }) => {
5
+ const services = await createAgentSessionServices({ cwd, agentDir: options.agentDir });
6
+ const created = await createAgentSessionFromServices({
7
+ services,
8
+ sessionManager: targetSessionManager,
9
+ ...(sessionStartEvent ? { sessionStartEvent } : {}),
10
+ });
11
+ return { ...created, services, diagnostics: services.diagnostics };
12
+ };
13
+ return createAgentSessionRuntime(createRuntime, {
14
+ cwd: options.cwd,
15
+ agentDir: options.agentDir,
16
+ sessionManager,
17
+ });
18
+ }
19
+ export function bindPiRuntimeSession(runtime, rebind) {
20
+ runtime.setRebindSession(rebind);
21
+ return () => runtime.setRebindSession(undefined);
22
+ }
23
+ export async function replacePiRuntimeSession(runtime, replacement) {
24
+ return replacement.kind === "new"
25
+ ? runtime.newSession()
26
+ : runtime.switchSession(replacement.sessionPath);
27
+ }
28
+ export async function disposePiRuntimeIntegration(runtime) {
29
+ runtime.setRebindSession(undefined);
30
+ runtime.setBeforeSessionInvalidate(undefined);
31
+ await runtime.dispose();
32
+ }
@@ -0,0 +1,43 @@
1
+ import type { AgentSession, AgentSessionEvent } from "@earendil-works/pi-coding-agent";
2
+ import { type AgentCommandOutcome, type AgentEvent } from "../agent-engine-contracts/index.js";
3
+ export interface PiDocumentedSessionCommands {
4
+ readonly isStreaming: AgentSession["isStreaming"];
5
+ readonly isRetrying: AgentSession["isRetrying"];
6
+ readonly isCompacting: AgentSession["isCompacting"];
7
+ prompt(text: string, options?: Parameters<AgentSession["prompt"]>[1]): Promise<void>;
8
+ steer(text: string): Promise<void>;
9
+ followUp(text: string): Promise<void>;
10
+ abort(): Promise<void>;
11
+ abortRetry(): void;
12
+ abortCompaction(): void;
13
+ compact(customInstructions?: Parameters<AgentSession["compact"]>[0]): Promise<unknown>;
14
+ executeBash?(command: string, onChunk: unknown, options: {
15
+ readonly excludeFromContext: boolean;
16
+ }): Promise<unknown>;
17
+ }
18
+ export type PiSessionCommand = {
19
+ readonly type: "prompt" | "steer" | "follow-up";
20
+ readonly text: string;
21
+ } | {
22
+ readonly type: "abort" | "retry" | "compact";
23
+ } | {
24
+ readonly type: "bash";
25
+ readonly command: string;
26
+ readonly excludeFromContext: boolean;
27
+ readonly onChunk?: (chunk: string) => void;
28
+ };
29
+ export interface PiSessionCommandResult {
30
+ readonly outcome: AgentCommandOutcome;
31
+ readonly value?: unknown;
32
+ }
33
+ export declare class PiSessionCommandIntegration {
34
+ #private;
35
+ private readonly session;
36
+ constructor(session: PiDocumentedSessionCommands);
37
+ execute(command: PiSessionCommand): Promise<PiSessionCommandResult>;
38
+ }
39
+ export interface PiOrderedEventIntegration {
40
+ dispose(): void;
41
+ }
42
+ export declare function subscribeToPiSessionEvents(session: Pick<AgentSession, "subscribe">, sessionId: string, emit: (event: AgentEvent) => void, malformed: (diagnostic: string) => void): PiOrderedEventIntegration;
43
+ export declare function convertPiSessionEvent(event: AgentSessionEvent, sessionId: string, sequence: number): AgentEvent | null;
@@ -0,0 +1,97 @@
1
+ import { AGENT_ENGINE_CONTRACT_VERSION, } from "../agent-engine-contracts/index.js";
2
+ export class PiSessionCommandIntegration {
3
+ session;
4
+ #lastPrompt = null;
5
+ constructor(session) {
6
+ this.session = session;
7
+ }
8
+ async execute(command) {
9
+ switch (command.type) {
10
+ case "prompt":
11
+ this.#lastPrompt = command.text;
12
+ await this.session.prompt(command.text, this.session.isStreaming ? { streamingBehavior: "followUp" } : undefined);
13
+ return { outcome: "completed" };
14
+ case "steer":
15
+ this.#lastPrompt = command.text;
16
+ await this.session.steer(command.text);
17
+ return { outcome: "completed" };
18
+ case "follow-up":
19
+ this.#lastPrompt = command.text;
20
+ await this.session.followUp(command.text);
21
+ return { outcome: "completed" };
22
+ case "abort":
23
+ if (this.session.isRetrying)
24
+ this.session.abortRetry();
25
+ if (this.session.isCompacting)
26
+ this.session.abortCompaction();
27
+ await this.session.abort();
28
+ return { outcome: "cancelled" };
29
+ case "retry":
30
+ if (this.#lastPrompt === null)
31
+ return { outcome: "rejected" };
32
+ await this.session.prompt(this.#lastPrompt, this.session.isStreaming ? { streamingBehavior: "followUp" } : undefined);
33
+ return { outcome: "completed" };
34
+ case "compact":
35
+ return { outcome: "completed", value: await this.session.compact() };
36
+ case "bash": {
37
+ if (!this.session.executeBash)
38
+ return { outcome: "rejected" };
39
+ const value = await this.session.executeBash(command.command, command.onChunk, { excludeFromContext: command.excludeFromContext });
40
+ if (!value || typeof value !== "object")
41
+ throw new TypeError("Pi bash result is malformed");
42
+ const result = value;
43
+ if (typeof result.cancelled !== "boolean" || (result.exitCode !== undefined && typeof result.exitCode !== "number"))
44
+ throw new TypeError("Pi bash result is malformed");
45
+ return { outcome: result.cancelled ? "cancelled" : result.exitCode === 0 ? "completed" : "failed", value };
46
+ }
47
+ }
48
+ }
49
+ }
50
+ export function subscribeToPiSessionEvents(session, sessionId, emit, malformed) {
51
+ let sequence = 0;
52
+ let disposed = false;
53
+ const unsubscribe = session.subscribe(event => {
54
+ if (disposed)
55
+ return;
56
+ sequence += 1;
57
+ try {
58
+ const converted = convertPiSessionEvent(event, sessionId, sequence);
59
+ if (converted)
60
+ emit(converted);
61
+ }
62
+ catch (error) {
63
+ malformed(`Pi session event ${sequence} is malformed: ${error instanceof Error ? error.message : String(error)}`);
64
+ }
65
+ });
66
+ return { dispose() { if (disposed)
67
+ return; disposed = true; unsubscribe(); } };
68
+ }
69
+ export function convertPiSessionEvent(event, sessionId, sequence) {
70
+ const base = { contractVersion: AGENT_ENGINE_CONTRACT_VERSION, sessionId, sequence };
71
+ switch (event.type) {
72
+ case "agent_start": return { ...base, type: "lifecycle", lifecycle: "busy", reason: null };
73
+ case "agent_settled": return { ...base, type: "lifecycle", lifecycle: "ready", reason: null };
74
+ case "agent_end": return event.willRetry ? null : { ...base, type: "lifecycle", lifecycle: "ready", reason: null };
75
+ case "message_start":
76
+ case "message_update":
77
+ case "message_end":
78
+ return { ...base, type: "content", content: toAgentMessage(event.message, event.type === "message_end" ? "final" : "streaming", sequence) };
79
+ default: return null;
80
+ }
81
+ }
82
+ function toAgentMessage(value, status, sequence) {
83
+ if (!value || typeof value !== "object")
84
+ throw new TypeError("message payload is not an object");
85
+ const message = value;
86
+ const role = message.role === "user" || message.role === "assistant" || message.role === "tool" || message.role === "system" ? message.role : "assistant";
87
+ const source = Array.isArray(message.content) ? message.content : [];
88
+ const text = source.flatMap(part => part && typeof part === "object" && typeof part.text === "string" ? [part.text] : []).join("");
89
+ return {
90
+ id: typeof message.id === "string" ? message.id : `message-${sequence}`,
91
+ role,
92
+ status,
93
+ content: text.length > 0
94
+ ? [{ kind: "text", text }]
95
+ : [{ kind: "unknown", sourceType: "pi-message", payload: { role: String(message.role ?? "unknown") } }],
96
+ };
97
+ }
@@ -0,0 +1,55 @@
1
+ import type { SettingsManager } from "@earendil-works/pi-coding-agent";
2
+ import type { AgentJsonValue, AgentSettingDescriptor, AgentSettingsPort } from "../agent-engine-contracts/index.js";
3
+ /**
4
+ * Values only the running engine knows: the themes installed on this machine and
5
+ * the thinking levels this session supports. The boundary asks for them as it is
6
+ * read, so no layer above has to know they are not fixed.
7
+ */
8
+ export interface PiSettingsProviders {
9
+ readonly themes?: () => readonly string[];
10
+ readonly thinkingLevels?: () => readonly string[];
11
+ }
12
+ /**
13
+ * The engine stores a theme as one string with two forms: a theme's name, or a
14
+ * `light/dark` pair meaning "follow the terminal". That grammar is the engine's,
15
+ * so it is parsed and composed here and reaches the surfaces above as ordinary
16
+ * settings — a theme entry that offers `automatic`, and, while automatic, one
17
+ * entry per terminal appearance.
18
+ */
19
+ export declare const AUTOMATIC_THEME = "automatic";
20
+ interface AutomaticTheme {
21
+ readonly light: string;
22
+ readonly dark: string;
23
+ }
24
+ /** A stored theme is automatic when it names one theme per terminal appearance. */
25
+ export declare function parseAutomaticTheme(stored: string): AutomaticTheme | null;
26
+ /**
27
+ * The settings A1 exposes: the ones the engine presents. Kept as the engine's
28
+ * own inventory rather than a list beside it, so a setting it adds or renames
29
+ * shows up as a named test failure instead of quietly going missing.
30
+ */
31
+ export declare const EXPOSED_SETTING_KEYS: readonly string[];
32
+ /**
33
+ * What has drifted between the settings the engine presents and the settings A1
34
+ * maps to its API: the ones A1 has not caught up with, and the ones it kept
35
+ * after the engine dropped them. Either is a build failure with a name in it.
36
+ */
37
+ export declare function settingsInventoryDrift(presented: readonly string[], mapped: readonly string[]): {
38
+ readonly unmapped: readonly string[];
39
+ readonly stale: readonly string[];
40
+ };
41
+ export declare class PiSettingsIntegration implements AgentSettingsPort {
42
+ #private;
43
+ private readonly settings;
44
+ readonly capabilities: {
45
+ write: boolean;
46
+ flush: boolean;
47
+ };
48
+ constructor(settings: SettingsManager, providers?: PiSettingsProviders);
49
+ listSettings(): Promise<readonly AgentSettingDescriptor[]>;
50
+ readSetting(key: string): Promise<AgentJsonValue | undefined>;
51
+ writeSetting(key: string, value: AgentJsonValue): Promise<void>;
52
+ writeSettingNow(key: string, value: AgentJsonValue): void;
53
+ flush(): Promise<void>;
54
+ }
55
+ export {};
@@ -0,0 +1,233 @@
1
+ import piSettingsMetadata from "./pi-settings-metadata.json" with { type: "json" };
2
+ /**
3
+ * The engine stores a theme as one string with two forms: a theme's name, or a
4
+ * `light/dark` pair meaning "follow the terminal". That grammar is the engine's,
5
+ * so it is parsed and composed here and reaches the surfaces above as ordinary
6
+ * settings — a theme entry that offers `automatic`, and, while automatic, one
7
+ * entry per terminal appearance.
8
+ */
9
+ export const AUTOMATIC_THEME = "automatic";
10
+ /** The themes an automatic setting names for each terminal appearance. */
11
+ const LIGHT_APPEARANCE_THEME = "light";
12
+ const DARK_APPEARANCE_THEME = "dark";
13
+ const THEME_KEY = "theme";
14
+ const THINKING_KEY = "thinkingLevel";
15
+ /** A stored theme is automatic when it names one theme per terminal appearance. */
16
+ export function parseAutomaticTheme(stored) {
17
+ const at = stored.indexOf("/");
18
+ if (at < 0 || stored.indexOf("/", at + 1) >= 0)
19
+ return null;
20
+ const light = stored.slice(0, at).trim();
21
+ const dark = stored.slice(at + 1).trim();
22
+ return light.length > 0 && dark.length > 0 ? { light, dark } : null;
23
+ }
24
+ /**
25
+ * How the engine presents these settings — wording, order, and the flags a
26
+ * dialog-backed setting offers — generated from its own source by
27
+ * `npm run update:pi-settings-metadata` and verified by a governance test, so a
28
+ * Pi upgrade cannot silently reword or reorder what A1 shows.
29
+ */
30
+ const PRESENTATION = piSettingsMetadata;
31
+ /**
32
+ * The settings A1 exposes: the ones the engine presents. Kept as the engine's
33
+ * own inventory rather than a list beside it, so a setting it adds or renames
34
+ * shows up as a named test failure instead of quietly going missing.
35
+ */
36
+ export const EXPOSED_SETTING_KEYS = PRESENTATION.presented;
37
+ /**
38
+ * What has drifted between the settings the engine presents and the settings A1
39
+ * maps to its API: the ones A1 has not caught up with, and the ones it kept
40
+ * after the engine dropped them. Either is a build failure with a name in it.
41
+ */
42
+ export function settingsInventoryDrift(presented, mapped) {
43
+ const has = new Set(mapped);
44
+ const engine = new Set(presented);
45
+ return {
46
+ unmapped: presented.filter(key => !has.has(key)),
47
+ stale: mapped.filter(key => !engine.has(key)),
48
+ };
49
+ }
50
+ /** What the engine offers for a setting, as the strings it words them with. */
51
+ function offered(key) {
52
+ return PRESENTATION.settings[key]?.values ?? [];
53
+ }
54
+ /**
55
+ * The same, read as the numbers a numeric setting stores. Only for a setting
56
+ * whose list is its whole domain: where the engine offers a few numbers but
57
+ * accepts any within a range, the range governs and the list is only shortcuts.
58
+ */
59
+ function offeredNumbers(key) {
60
+ return offered(key).map(value => Number.parseInt(value, 10)).filter(value => Number.isSafeInteger(value));
61
+ }
62
+ export class PiSettingsIntegration {
63
+ settings;
64
+ capabilities = { write: true, flush: true };
65
+ #operations;
66
+ #providers;
67
+ constructor(settings, providers = {}) {
68
+ this.settings = settings;
69
+ this.#providers = providers;
70
+ this.#operations = new Map(operations(settings).map(operation => [operation.descriptor.key, operation]));
71
+ if (this.#operations.size !== EXPOSED_SETTING_KEYS.length || EXPOSED_SETTING_KEYS.some(key => !this.#operations.has(key))) {
72
+ throw new Error("Pi settings integration does not cover every A1-exposed setting");
73
+ }
74
+ }
75
+ async listSettings() {
76
+ const rank = (key) => {
77
+ const at = PRESENTATION.order.indexOf(key);
78
+ return at < 0 ? PRESENTATION.order.length : at;
79
+ };
80
+ const listed = [...this.#operations.values()]
81
+ .map(operation => {
82
+ const key = operation.descriptor.key;
83
+ const wording = PRESENTATION.settings[key];
84
+ const flags = PRESENTATION.dialogs[key];
85
+ const bounds = PRESENTATION.bounds[key];
86
+ return {
87
+ ...operation.descriptor,
88
+ ...(bounds === undefined ? {} : bounds),
89
+ ...(wording === undefined ? {} : { label: wording.label, description: wording.description }),
90
+ ...(flags === undefined ? {} : { flags }),
91
+ };
92
+ })
93
+ .map(descriptor => this.#resolved(descriptor))
94
+ .sort((left, right) => rank(left.key) - rank(right.key));
95
+ // Following the terminal is one choice on the theme itself, not two further
96
+ // settings: the pair behind it is the engine's grammar, not a reader's task.
97
+ return listed;
98
+ }
99
+ /** Overlays the values a setting can only offer once something is running. */
100
+ #resolved(descriptor) {
101
+ if (descriptor.key === THEME_KEY) {
102
+ const themes = this.#themes();
103
+ if (themes.length === 0)
104
+ return descriptor;
105
+ return { ...descriptor, valueType: "enum", writable: true, resolvedWhenRead: true, choices: [AUTOMATIC_THEME, ...themes] };
106
+ }
107
+ if (descriptor.key === THINKING_KEY) {
108
+ const levels = this.#providers.thinkingLevels?.() ?? [];
109
+ if (levels.length === 0)
110
+ return descriptor;
111
+ return { ...descriptor, resolvedWhenRead: true, choices: [...levels] };
112
+ }
113
+ return descriptor;
114
+ }
115
+ #themes() {
116
+ return this.#providers.themes?.() ?? [];
117
+ }
118
+ #storedTheme() {
119
+ const stored = this.#operations.get(THEME_KEY)?.read();
120
+ return typeof stored === "string" ? stored : "";
121
+ }
122
+ async readSetting(key) {
123
+ if (key === THEME_KEY) {
124
+ const pair = parseAutomaticTheme(this.#storedTheme());
125
+ return pair === null ? this.#operations.get(key)?.read() : AUTOMATIC_THEME;
126
+ }
127
+ return this.#operations.get(key)?.read();
128
+ }
129
+ async writeSetting(key, value) { this.writeSettingNow(key, value); }
130
+ writeSettingNow(key, value) {
131
+ if (typeof value === "string" && key === THEME_KEY) {
132
+ this.#writeTheme(value);
133
+ return;
134
+ }
135
+ const operation = this.#operations.get(key);
136
+ if (!operation)
137
+ throw new Error(`setting is unavailable: ${key}`);
138
+ operation.write(value);
139
+ }
140
+ /**
141
+ * Writes the theme in the engine's own grammar. Following the terminal is
142
+ * stored as the pair the engine reads for it, made of the themes named for
143
+ * each appearance when they are installed; where they are not, the theme
144
+ * already in use stands for both, so the setting still round-trips.
145
+ */
146
+ #writeTheme(value) {
147
+ const theme = this.#operations.get(THEME_KEY);
148
+ if (!theme)
149
+ throw new Error(`setting is unavailable: ${THEME_KEY}`);
150
+ if (value !== AUTOMATIC_THEME) {
151
+ theme.write(value);
152
+ return;
153
+ }
154
+ if (parseAutomaticTheme(this.#storedTheme()) !== null)
155
+ return;
156
+ const installed = this.#themes();
157
+ const current = this.#storedTheme();
158
+ const light = installed.includes(LIGHT_APPEARANCE_THEME) ? LIGHT_APPEARANCE_THEME : current;
159
+ const dark = installed.includes(DARK_APPEARANCE_THEME) ? DARK_APPEARANCE_THEME : current;
160
+ theme.write(`${light}/${dark}`);
161
+ }
162
+ async flush() { await this.settings.flush(); }
163
+ }
164
+ function operations(settings) {
165
+ return [
166
+ bool("autoCompact", () => settings.getCompactionEnabled(), value => settings.setCompactionEnabled(value)),
167
+ bool("showImages", () => settings.getShowImages(), value => settings.setShowImages(value)),
168
+ numberSetting("imageWidthCells", () => settings.getImageWidthCells(), value => settings.setImageWidthCells(value), 1),
169
+ bool("autoResizeImages", () => settings.getImageAutoResize(), value => settings.setImageAutoResize(value)),
170
+ bool("blockImages", () => settings.getBlockImages(), value => settings.setBlockImages(value)),
171
+ bool("enableSkillCommands", () => settings.getEnableSkillCommands(), value => settings.setEnableSkillCommands(value)),
172
+ choice("steeringMode", offered("steeringMode"), () => settings.getSteeringMode(), value => settings.setSteeringMode(value)),
173
+ choice("followUpMode", offered("followUpMode"), () => settings.getFollowUpMode(), value => settings.setFollowUpMode(value)),
174
+ choice("transport", offered("transport"), () => settings.getTransport(), value => settings.setTransport(value)),
175
+ numberSetting("httpIdleTimeoutMs", () => settings.getHttpIdleTimeoutMs(), value => settings.setHttpIdleTimeoutMs(value), 0),
176
+ // The engine reads these from the running session rather than declaring them,
177
+ // so they arrive through the runtime provider rather than from its source.
178
+ choice("thinkingLevel", ["off", "minimal", "low", "medium", "high", "xhigh"], () => settings.getDefaultThinkingLevel() ?? "medium", value => settings.setDefaultThinkingLevel(value)),
179
+ // The raw setting, not the resolved theme: the engine hides the automatic
180
+ // pair behind getTheme, and the pair is the thing A1 presents parts of.
181
+ stringSetting("theme", () => settings.getThemeSetting() ?? "default", value => settings.setTheme(value)),
182
+ bool("hideThinkingBlock", () => settings.getHideThinkingBlock(), value => settings.setHideThinkingBlock(value)),
183
+ choice("mermaidRenderingMode", offered("mermaidRenderingMode"), () => settings.getMermaidRenderingMode(), value => settings.setMermaidRenderingMode(value)),
184
+ bool("showCacheMissNotices", () => settings.getShowCacheMissNotices(), value => settings.setShowCacheMissNotices(value)),
185
+ bool("collapseChangelog", () => settings.getCollapseChangelog(), value => settings.setCollapseChangelog(value)),
186
+ bool("enableInstallTelemetry", () => settings.getEnableInstallTelemetry(), value => settings.setEnableInstallTelemetry(value)),
187
+ bool("quietStartup", () => settings.getQuietStartup(), value => settings.setQuietStartup(value)),
188
+ choice("defaultProjectTrust", offered("defaultProjectTrust"), () => settings.getDefaultProjectTrust(), value => settings.setDefaultProjectTrust(value)),
189
+ choice("doubleEscapeAction", offered("doubleEscapeAction"), () => settings.getDoubleEscapeAction(), value => settings.setDoubleEscapeAction(value)),
190
+ choice("treeFilterMode", offered("treeFilterMode"), () => settings.getTreeFilterMode(), value => settings.setTreeFilterMode(value)),
191
+ bool("showHardwareCursor", () => settings.getShowHardwareCursor(), value => settings.setShowHardwareCursor(value)),
192
+ numberSetting("editorPaddingX", () => settings.getEditorPaddingX(), value => settings.setEditorPaddingX(value), 0),
193
+ choice("outputPad", offeredNumbers("outputPad"), () => settings.getOutputPad(), value => settings.setOutputPad(value)),
194
+ numberSetting("autocompleteMaxVisible", () => settings.getAutocompleteMaxVisible(), value => settings.setAutocompleteMaxVisible(value), 1),
195
+ bool("clearOnShrink", () => settings.getClearOnShrink(), value => settings.setClearOnShrink(value)),
196
+ bool("showTerminalProgress", () => settings.getShowTerminalProgress(), value => settings.setShowTerminalProgress(value)),
197
+ choice("tuiMode", offered("tuiMode"), () => settings.getTuiMode(), value => settings.setTuiMode(value)),
198
+ choice("fullscreenExitOutput", offered("fullscreenExitOutput"), () => settings.getFullscreenExitOutput(), value => settings.setFullscreenExitOutput(value)),
199
+ choice("fullscreenScrollbar", offered("fullscreenScrollbar"), () => settings.getFullscreenScrollbar(), value => settings.setFullscreenScrollbar(value)),
200
+ jsonObject("warnings", () => settings.getWarnings(), value => settings.setWarnings(value)),
201
+ ];
202
+ }
203
+ function bool(key, read, write) {
204
+ return { descriptor: { key, valueType: "boolean", writable: true }, read, write(value) { if (typeof value !== "boolean")
205
+ invalid(key); write(value); } };
206
+ }
207
+ function numberSetting(key, read, write, minimum) {
208
+ const declared = PRESENTATION.bounds[key];
209
+ const low = declared?.minimum ?? minimum;
210
+ const high = declared?.maximum;
211
+ return {
212
+ descriptor: { key, valueType: "number", writable: true },
213
+ read,
214
+ write(value) {
215
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < low || (high !== undefined && value > high))
216
+ invalid(key);
217
+ write(value);
218
+ },
219
+ };
220
+ }
221
+ function stringSetting(key, read, write) {
222
+ return { descriptor: { key, valueType: "string", writable: true }, read, write(value) { if (typeof value !== "string" || value.length === 0)
223
+ invalid(key); write(value); } };
224
+ }
225
+ function jsonObject(key, read, write) {
226
+ return { descriptor: { key, valueType: "json", writable: true }, read: () => Object.fromEntries(Object.entries(read()).filter((entry) => typeof entry[1] === "boolean")), write(value) { if (!value || typeof value !== "object" || Array.isArray(value))
227
+ invalid(key); write(value); } };
228
+ }
229
+ function choice(key, choices, read, write) {
230
+ return { descriptor: { key, valueType: "enum", writable: true, choices }, read, write(value) { if (!choices.includes(value))
231
+ invalid(key); write(value); } };
232
+ }
233
+ function invalid(key) { throw new TypeError(`setting value is invalid: ${key}`); }
@@ -0,0 +1,20 @@
1
+ import type { AgentJsonValue, AgentWorkflowDescriptor, AgentWorkflowPort } from "../agent-engine-contracts/index.js";
2
+ import { type PiWorkflowRoute } from "./workflows.js";
3
+ export type WorkflowCapability = "prompt" | "abort" | "compact" | "bash" | "models.read" | "models.write" | "auth.login" | "auth.logout" | "settings.read" | "settings.write" | "resources.read" | "resources.reload" | "session.read" | "session.new" | "session.resume" | "session.fork" | "session.tree" | "session.import" | "clipboard.write" | "export.write" | "share.write" | "process.quit" | "diagnostics.read";
4
+ export interface WorkflowControllerResult {
5
+ readonly outcome: "completed" | "cancelled" | "failed";
6
+ readonly message: string;
7
+ readonly value?: AgentJsonValue;
8
+ }
9
+ export declare class PiWorkflowControllerPort implements AgentWorkflowPort {
10
+ #private;
11
+ private readonly execute;
12
+ readonly capabilities: {
13
+ execute: boolean;
14
+ };
15
+ constructor(available: readonly WorkflowCapability[], execute: (workflowId: PiWorkflowRoute, input: AgentJsonValue, signal?: AbortSignal) => Promise<WorkflowControllerResult>);
16
+ listWorkflows(): Promise<readonly AgentWorkflowDescriptor[]>;
17
+ executeWorkflow(workflowId: string, input: AgentJsonValue, signal?: AbortSignal): Promise<AgentJsonValue>;
18
+ }
19
+ export declare const PI_BUILTIN_WORKFLOW_ROUTES: readonly ("name" | "share" | "model" | "login" | "logout" | "settings" | "reload" | "compact" | "new" | "resume" | "scoped-models" | "export" | "import" | "copy" | "session" | "changelog" | "hotkeys" | "fork" | "clone" | "tree" | "trust" | "quit" | "debug" | "arminsayshi" | "dementedelves")[];
20
+ export declare const PI_WORKFLOW_CAPABILITIES: readonly WorkflowCapability[];
@@ -0,0 +1,48 @@
1
+ import { PINNED_PI_HIDDEN_COMMAND_NAMES, PINNED_PI_WORKFLOW_COMMAND_NAMES } from "./workflows.js";
2
+ const DEFINITIONS = [
3
+ define("settings", "settings.read", "settings.write"), define("model", "models.read", "models.write"),
4
+ define("scoped-models", "models.read", "models.write"), define("export", "export.write"), define("import", "session.import"),
5
+ define("share", "share.write"), define("copy", "clipboard.write"), define("name", "session.read"), define("session", "session.read"),
6
+ define("changelog", "resources.read"), define("hotkeys", "resources.read"), define("fork", "session.fork"), define("clone", "session.fork"),
7
+ define("tree", "session.tree"), define("trust", "settings.write"), define("login", "auth.login"), define("logout", "auth.logout"),
8
+ define("new", "session.new"), define("compact", "compact"), define("resume", "session.resume"), define("reload", "resources.reload"),
9
+ define("quit", "process.quit"), define("debug", "diagnostics.read"), define("arminsayshi", "resources.read"), define("dementedelves", "resources.read"),
10
+ ];
11
+ export class PiWorkflowControllerPort {
12
+ execute;
13
+ capabilities = { execute: true };
14
+ #available;
15
+ constructor(available, execute) {
16
+ this.execute = execute;
17
+ this.#available = new Set(available);
18
+ }
19
+ async listWorkflows() {
20
+ return DEFINITIONS.map(definition => ({ id: definition.id, label: definition.id, requiredCommands: definition.required }));
21
+ }
22
+ async executeWorkflow(workflowId, input, signal) {
23
+ const definition = DEFINITIONS.find(value => value.id === workflowId);
24
+ if (!definition)
25
+ return failure(`workflow is unavailable: ${workflowId}`);
26
+ const missing = definition.required.filter(capability => !this.#available.has(capability));
27
+ if (missing.length > 0)
28
+ return failure(`${workflowId} requires unavailable capabilities: ${missing.join(", ")}`);
29
+ if (signal?.aborted)
30
+ return { outcome: "cancelled", message: "workflow cancelled" };
31
+ try {
32
+ const result = await this.execute(definition.id, input, signal);
33
+ return { ...result, message: bounded(result.message) };
34
+ }
35
+ catch (error) {
36
+ return failure(`${workflowId} failed: ${error instanceof Error ? error.message : String(error)}`);
37
+ }
38
+ }
39
+ }
40
+ export const PI_BUILTIN_WORKFLOW_ROUTES = Object.freeze([...PINNED_PI_WORKFLOW_COMMAND_NAMES, ...PINNED_PI_HIDDEN_COMMAND_NAMES]);
41
+ export const PI_WORKFLOW_CAPABILITIES = Object.freeze([
42
+ "prompt", "abort", "compact", "bash", "models.read", "models.write", "auth.login", "auth.logout", "settings.read", "settings.write",
43
+ "resources.read", "resources.reload", "session.read", "session.new", "session.resume", "session.fork", "session.tree", "session.import",
44
+ "clipboard.write", "export.write", "share.write", "process.quit", "diagnostics.read",
45
+ ]);
46
+ function define(id, ...required) { return { id, required }; }
47
+ function failure(message) { return { outcome: "failed", message: bounded(message) }; }
48
+ function bounded(message) { return message.length <= 512 ? message : `${message.slice(0, 509)}...`; }
@@ -48,6 +48,15 @@ export interface PiWorkflowOption {
48
48
  readonly label: string;
49
49
  readonly description?: string;
50
50
  }
51
+ export interface PiAuthenticationProviderStatus {
52
+ readonly type: "oauth" | "api_key";
53
+ readonly source?: string;
54
+ }
55
+ export interface PiAuthenticationProviderOption extends PiWorkflowOption {
56
+ readonly providerId: string;
57
+ readonly authType: "oauth" | "api_key";
58
+ readonly status?: PiAuthenticationProviderStatus;
59
+ }
51
60
  export interface PiWorkflowRequest {
52
61
  readonly command: PiWorkflowRoute;
53
62
  readonly argument: string;
@@ -162,4 +171,3 @@ export interface PiBashWorkflowResult {
162
171
  readonly truncated: boolean;
163
172
  readonly excludeFromContext: boolean;
164
173
  }
165
- //# sourceMappingURL=workflows.d.ts.map