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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (922) hide show
  1. package/README.md +104 -58
  2. package/bin/activate.js +8 -0
  3. package/bin/cli.js +39 -13
  4. package/bin/guardian.js +21 -6
  5. package/bin/module-identity.js +76 -69
  6. package/bin/module-resolver.js +138 -0
  7. package/bin/pinned-pi-public.d.ts +3 -0
  8. package/bin/pinned-pi-public.js +93 -0
  9. package/bin/release-cleanup.js +8 -0
  10. package/bin/supervisor.js +2 -2
  11. package/bin/sync-pi-tui-proxy.js +7 -0
  12. package/bin/ui.js +67 -22
  13. package/bin/update-recovery.js +365 -0
  14. package/bin/warmup.js +28 -0
  15. package/dist/app/session-shell/clipboard-diagnostics.d.ts +16 -0
  16. package/dist/app/session-shell/clipboard-diagnostics.js +65 -0
  17. package/dist/app/session-shell/clipboard-image.d.ts +11 -0
  18. package/dist/app/session-shell/clipboard-image.js +38 -0
  19. package/dist/app/session-shell/editor-hyperlink-budget.d.ts +9 -0
  20. package/dist/app/session-shell/editor-hyperlink-budget.js +23 -0
  21. package/dist/app/session-shell/helper-pool.d.ts +33 -0
  22. package/dist/app/session-shell/helper-pool.js +98 -0
  23. package/dist/app/session-shell/image-preparation-client.d.ts +20 -0
  24. package/dist/app/session-shell/image-preparation-client.js +145 -0
  25. package/dist/app/session-shell/image-preparation.d.ts +18 -0
  26. package/dist/app/session-shell/image-preparation.js +126 -0
  27. package/dist/app/session-shell/image-source.d.ts +13 -0
  28. package/dist/app/session-shell/image-source.js +171 -0
  29. package/dist/app/session-shell/image-worker.d.ts +17 -0
  30. package/dist/app/session-shell/image-worker.js +23 -0
  31. package/dist/app/session-shell/index.d.ts +7 -0
  32. package/dist/app/session-shell/index.js +4 -0
  33. package/dist/app/session-shell/paste-executor.d.ts +18 -0
  34. package/dist/app/session-shell/paste-executor.js +253 -0
  35. package/dist/app/session-shell/paste-helper.js +173 -0
  36. package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
  37. package/dist/app/session-shell/paste-preparation-client.js +170 -0
  38. package/dist/app/session-shell/paste-protocol.d.ts +78 -0
  39. package/dist/app/session-shell/paste-protocol.js +18 -0
  40. package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
  41. package/dist/app/session-shell/paste-text-preparation.js +134 -0
  42. package/dist/app/session-shell/paste-text-worker.js +12 -0
  43. package/dist/app/session-shell/paste-types.d.ts +17 -0
  44. package/dist/app/session-shell/path-chip-presentation.d.ts +7 -0
  45. package/dist/app/session-shell/path-chip-presentation.js +24 -0
  46. package/dist/app/session-shell/prompt-chips.d.ts +76 -0
  47. package/dist/app/session-shell/prompt-chips.js +499 -0
  48. package/dist/app/session-shell/prompt-history-controller.d.ts +36 -0
  49. package/dist/app/session-shell/prompt-history-controller.js +170 -0
  50. package/dist/app/session-shell/prompt-suggestion-controller.d.ts +37 -0
  51. package/dist/app/session-shell/prompt-suggestion-controller.js +219 -0
  52. package/dist/app/session-shell/quit-outro-effects.d.ts +29 -0
  53. package/dist/app/session-shell/quit-outro-effects.js +242 -0
  54. package/dist/app/session-shell/quit-outro.d.ts +38 -0
  55. package/dist/app/session-shell/quit-outro.js +98 -0
  56. package/dist/app/session-shell/response-copy-coordinator.d.ts +27 -0
  57. package/dist/app/session-shell/response-copy-coordinator.js +187 -0
  58. package/dist/app/session-shell/response-copy-helper.js +122 -0
  59. package/dist/app/session-shell/response-copy-protocol.d.ts +56 -0
  60. package/dist/app/session-shell/response-copy-protocol.js +5 -0
  61. package/dist/app/session-shell/response-copy-transport.d.ts +39 -0
  62. package/dist/app/session-shell/response-copy-transport.js +217 -0
  63. package/dist/app/session-shell/session-shell-root.d.ts +278 -0
  64. package/dist/app/session-shell/session-shell-root.js +1442 -0
  65. package/dist/app/session-shell/session-shell.d.ts +66 -0
  66. package/dist/app/session-shell/session-shell.js +2151 -0
  67. package/dist/app/session-shell/session-viewport-controller.d.ts +62 -0
  68. package/dist/app/session-shell/session-viewport-controller.js +623 -0
  69. package/dist/app/session-shell/stream-presentation-coalescer.d.ts +29 -0
  70. package/dist/app/session-shell/stream-presentation-coalescer.js +79 -0
  71. package/dist/app/session-shell/system-clipboard.d.ts +20 -0
  72. package/dist/app/session-shell/system-clipboard.js +159 -0
  73. package/dist/app/session-shell/text-paste.d.ts +5 -0
  74. package/dist/app/session-shell/text-paste.js +16 -0
  75. package/dist/cli/capabilities.d.ts +6 -0
  76. package/dist/cli/capabilities.js +7 -0
  77. package/dist/cli/dispatch.d.ts +53 -0
  78. package/dist/cli/dispatch.js +287 -0
  79. package/dist/cli/index.d.ts +8 -0
  80. package/dist/cli/index.js +4 -0
  81. package/dist/cli/package-messages.d.ts +27 -0
  82. package/dist/cli/package-messages.js +83 -0
  83. package/dist/cli/packages.d.ts +32 -0
  84. package/dist/cli/packages.js +81 -0
  85. package/dist/cli/session-context.d.ts +9 -0
  86. package/dist/cli/session-context.js +29 -0
  87. package/dist/cli/version-stats.d.ts +22 -0
  88. package/dist/cli/version-stats.js +112 -0
  89. package/dist/composition/index.d.ts +2 -0
  90. package/dist/composition/index.js +2 -0
  91. package/dist/composition/owned-ui.d.ts +37 -0
  92. package/dist/composition/owned-ui.js +159 -0
  93. package/dist/composition/settings-route-host.d.ts +16 -0
  94. package/dist/composition/settings-route-host.js +141 -0
  95. package/dist/contracts/agent-engine/capability-ports.d.ts +95 -0
  96. package/dist/contracts/agent-engine/domain-validation.js +107 -0
  97. package/dist/contracts/agent-engine/domain.d.ts +138 -0
  98. package/dist/contracts/agent-engine/index.d.ts +11 -0
  99. package/dist/contracts/agent-engine/index.js +6 -0
  100. package/dist/contracts/agent-engine/package-ports.d.ts +60 -0
  101. package/dist/contracts/agent-engine/ports.js +1 -0
  102. package/dist/contracts/owned-ui/extension-ui.d.ts +310 -0
  103. package/dist/contracts/owned-ui/image-attachments.d.ts +36 -0
  104. package/dist/contracts/owned-ui/image-attachments.js +67 -0
  105. package/dist/contracts/owned-ui/index.d.ts +14 -0
  106. package/dist/contracts/owned-ui/index.js +9 -0
  107. package/dist/contracts/owned-ui/model.d.ts +383 -0
  108. package/dist/contracts/owned-ui/prompt-chips.d.ts +15 -0
  109. package/dist/contracts/owned-ui/prompt-chips.js +59 -0
  110. package/dist/contracts/owned-ui/prompt-history.d.ts +55 -0
  111. package/dist/contracts/owned-ui/prompt-history.js +23 -0
  112. package/dist/contracts/owned-ui/prompt-suggestions.d.ts +3 -0
  113. package/dist/contracts/owned-ui/prompt-suggestions.js +44 -0
  114. package/dist/contracts/owned-ui/suggestion-diagnostics.d.ts +22 -0
  115. package/dist/contracts/owned-ui/suggestion-diagnostics.js +9 -0
  116. package/dist/contracts/owned-ui/transcript-lifecycle.d.ts +5 -0
  117. package/dist/contracts/owned-ui/transcript-lifecycle.js +33 -0
  118. package/dist/contracts/owned-ui/validation.d.ts +15 -0
  119. package/dist/contracts/owned-ui/validation.js +554 -0
  120. package/dist/contracts/presentation/index.d.ts +117 -0
  121. package/dist/contracts/presentation/index.js +68 -0
  122. package/dist/features/launch/development-launch.js +36 -0
  123. package/dist/features/launch/index.d.ts +14 -0
  124. package/dist/features/launch/index.js +7 -0
  125. package/dist/features/launch/intent.d.ts +12 -0
  126. package/dist/features/launch/intent.js +8 -0
  127. package/dist/features/launch/prepare-launch.d.ts +11 -0
  128. package/dist/features/launch/prepare-launch.js +14 -0
  129. package/dist/features/launch/profile-paths.d.ts +16 -0
  130. package/dist/features/launch/profile-paths.js +36 -0
  131. package/dist/features/launch/runtime-selection.d.ts +16 -0
  132. package/dist/features/launch/runtime-selection.js +13 -0
  133. package/dist/features/launch/session-context.d.ts +8 -0
  134. package/dist/features/launch/session-context.js +8 -0
  135. package/dist/features/owned-ui/index.d.ts +9 -0
  136. package/dist/features/owned-ui/index.js +6 -0
  137. package/dist/features/owned-ui/project-trust-dialog.d.ts +2 -0
  138. package/dist/features/owned-ui/project-trust-dialog.js +55 -0
  139. package/dist/features/owned-ui/project-trust-prompt.d.ts +23 -0
  140. package/dist/features/owned-ui/project-trust-prompt.js +149 -0
  141. package/dist/features/owned-ui/reference-routes.d.ts +6 -0
  142. package/dist/features/owned-ui/reference-routes.js +6 -0
  143. package/dist/features/owned-ui/reference-screen-app.d.ts +43 -0
  144. package/dist/features/owned-ui/reference-screen-app.js +279 -0
  145. package/dist/features/owned-ui/run.d.ts +17 -0
  146. package/dist/features/owned-ui/run.js +64 -0
  147. package/dist/features/owned-ui/session-fork-prompt.d.ts +8 -0
  148. package/dist/features/owned-ui/session-fork-prompt.js +34 -0
  149. package/dist/features/owned-ui/settings-app.d.ts +21 -0
  150. package/dist/features/owned-ui/settings-app.js +851 -0
  151. package/dist/features/owned-ui/settings-route.d.ts +2 -0
  152. package/dist/features/owned-ui/settings-route.js +2 -0
  153. package/dist/features/prompt-history/image-sidecar.d.ts +32 -0
  154. package/dist/features/prompt-history/image-sidecar.js +130 -0
  155. package/dist/features/prompt-history/index.d.ts +4 -0
  156. package/dist/features/prompt-history/index.js +3 -0
  157. package/dist/features/prompt-history/paths.d.ts +5 -0
  158. package/dist/features/prompt-history/paths.js +17 -0
  159. package/dist/features/prompt-history/service.d.ts +54 -0
  160. package/dist/features/prompt-history/service.js +425 -0
  161. package/dist/features/prompt-history/store.d.ts +16 -0
  162. package/dist/features/prompt-history/store.js +219 -0
  163. package/dist/features/prompt-history/worker.d.ts +9 -0
  164. package/dist/features/prompt-history/worker.js +45 -0
  165. package/dist/features/prompt-suggestions/diagnostics.d.ts +18 -0
  166. package/dist/features/prompt-suggestions/diagnostics.js +82 -0
  167. package/dist/features/prompt-suggestions/index.d.ts +2 -0
  168. package/dist/features/prompt-suggestions/index.js +1 -0
  169. package/dist/foundation/launch-context/index.d.ts +59 -0
  170. package/dist/foundation/launch-context/index.js +136 -0
  171. package/dist/foundation/launch-guardian/index.d.ts +2 -0
  172. package/dist/foundation/launch-guardian/index.js +1 -0
  173. package/dist/foundation/launch-guardian/main.d.ts +33 -0
  174. package/dist/foundation/launch-guardian/main.js +179 -0
  175. package/dist/foundation/lifecycle/commands.js +1 -0
  176. package/dist/foundation/lifecycle/index.d.ts +13 -0
  177. package/dist/foundation/lifecycle/index.js +6 -0
  178. package/dist/foundation/lifecycle/model.d.ts +64 -0
  179. package/dist/foundation/lifecycle/model.js +40 -0
  180. package/dist/foundation/lifecycle/paths.d.ts +30 -0
  181. package/dist/foundation/lifecycle/paths.js +70 -0
  182. package/dist/foundation/lifecycle/session-repository-context.d.ts +18 -0
  183. package/dist/foundation/lifecycle/session-repository-context.js +173 -0
  184. package/dist/foundation/lifecycle/session-selection.d.ts +9 -0
  185. package/dist/foundation/lifecycle/session-selection.js +39 -0
  186. package/dist/foundation/lifecycle/supervisor-startup.d.ts +30 -0
  187. package/dist/foundation/lifecycle/supervisor-startup.js +106 -0
  188. package/dist/foundation/process-containment/darwin-process-inspector.d.ts +5 -0
  189. package/dist/foundation/process-containment/darwin-process-inspector.js +7 -0
  190. package/dist/foundation/process-containment/index.d.ts +8 -0
  191. package/dist/foundation/process-containment/index.js +6 -0
  192. package/dist/foundation/process-containment/linux-process-inspector.d.ts +7 -0
  193. package/dist/foundation/process-containment/linux-process-inspector.js +27 -0
  194. package/dist/foundation/process-containment/native-guardian-containment.d.ts +17 -0
  195. package/dist/foundation/process-containment/native-guardian-containment.js +140 -0
  196. package/dist/foundation/process-containment/windows-process-inspector.d.ts +19 -0
  197. package/dist/foundation/process-containment/windows-process-inspector.js +56 -0
  198. package/dist/foundation/protocol/client.d.ts +18 -0
  199. package/dist/foundation/protocol/client.js +130 -0
  200. package/dist/foundation/protocol/index.d.ts +3 -0
  201. package/dist/foundation/protocol/index.js +2 -0
  202. package/dist/foundation/protocol/messages.d.ts +90 -0
  203. package/dist/foundation/protocol/messages.js +100 -0
  204. package/dist/foundation/release/bootstrap.d.ts +51 -0
  205. package/dist/foundation/release/bootstrap.js +470 -0
  206. package/dist/foundation/release/cohort-state.d.ts +159 -0
  207. package/dist/foundation/release/cohort-state.js +507 -0
  208. package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
  209. package/dist/foundation/release/dependency-certification-retention.js +88 -0
  210. package/dist/foundation/release/dependency-certification.d.ts +24 -0
  211. package/dist/foundation/release/dependency-certification.js +266 -0
  212. package/dist/foundation/release/dependency-layer.d.ts +78 -0
  213. package/dist/foundation/release/dependency-layer.js +466 -0
  214. package/dist/foundation/release/endpoints.d.ts +24 -0
  215. package/dist/foundation/release/endpoints.js +134 -0
  216. package/dist/foundation/release/immutable-platform.d.ts +6 -0
  217. package/dist/foundation/release/immutable-platform.js +13 -0
  218. package/dist/foundation/release/index.d.ts +33 -0
  219. package/dist/foundation/release/index.js +18 -0
  220. package/dist/foundation/release/ordinary-launch-selection.d.ts +14 -0
  221. package/dist/foundation/release/ordinary-launch-selection.js +15 -0
  222. package/dist/foundation/release/release-gc.d.ts +71 -0
  223. package/dist/foundation/release/release-gc.js +764 -0
  224. package/dist/foundation/release/release-store.d.ts +49 -0
  225. package/dist/foundation/release/release-store.js +235 -0
  226. package/dist/foundation/release/release.d.ts +43 -0
  227. package/dist/foundation/release/release.js +215 -0
  228. package/dist/foundation/release/restart-certification.d.ts +68 -0
  229. package/dist/foundation/release/restart-certification.js +227 -0
  230. package/dist/foundation/release/types.d.ts +11 -0
  231. package/dist/foundation/release/types.js +1 -0
  232. package/dist/foundation/release/update-activation.d.ts +72 -0
  233. package/dist/foundation/release/update-activation.js +204 -0
  234. package/dist/foundation/release/update-launch.d.ts +6 -0
  235. package/dist/foundation/release/update-launch.js +17 -0
  236. package/dist/foundation/release/update-recovery.d.ts +82 -0
  237. package/dist/foundation/release/update-recovery.js +386 -0
  238. package/dist/foundation/release/update-transaction.d.ts +42 -0
  239. package/dist/foundation/release/update-transaction.js +101 -0
  240. package/dist/foundation/release/update.d.ts +142 -0
  241. package/dist/foundation/release/update.js +773 -0
  242. package/dist/foundation/release/warmup.d.ts +3 -0
  243. package/dist/foundation/release/warmup.js +47 -0
  244. package/dist/foundation/startup/index.d.ts +4 -0
  245. package/dist/foundation/startup/index.js +2 -0
  246. package/dist/foundation/startup/startup-budget.d.ts +46 -0
  247. package/dist/foundation/startup/startup-budget.js +42 -0
  248. package/dist/foundation/startup/startup-descriptor.js +34 -0
  249. package/dist/foundation/startup/startup-runtime.d.ts +27 -0
  250. package/dist/foundation/startup/startup-runtime.js +128 -0
  251. package/dist/foundation/storage/control-store.d.ts +18 -0
  252. package/dist/foundation/storage/control-store.js +342 -0
  253. package/dist/foundation/storage/index.d.ts +1 -0
  254. package/dist/foundation/storage/index.js +1 -0
  255. package/dist/foundation/supervision/index.d.ts +3 -0
  256. package/dist/foundation/supervision/index.js +3 -0
  257. package/dist/foundation/supervision/main.d.ts +1 -0
  258. package/dist/foundation/supervision/main.js +84 -0
  259. package/dist/foundation/supervision/paths.d.ts +1 -0
  260. package/dist/foundation/supervision/paths.js +1 -0
  261. package/dist/foundation/supervision/server.d.ts +46 -0
  262. package/dist/foundation/supervision/server.js +584 -0
  263. package/dist/foundation/terminal-cleanup/fatal-exit.d.ts +12 -0
  264. package/dist/foundation/terminal-cleanup/fatal-exit.js +87 -0
  265. package/dist/foundation/terminal-cleanup/index.d.ts +3 -0
  266. package/dist/foundation/terminal-cleanup/index.js +2 -0
  267. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +4 -0
  268. package/dist/foundation/terminal-cleanup/terminal-reset.js +40 -0
  269. package/dist/integrations/pi/components/components.d.ts +4 -0
  270. package/dist/integrations/pi/components/components.js +64 -0
  271. package/dist/integrations/pi/components/conformance.d.ts +18 -0
  272. package/dist/integrations/pi/components/conformance.js +70 -0
  273. package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
  274. package/dist/integrations/pi/components/editor-interaction.js +1 -0
  275. package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
  276. package/dist/integrations/pi/components/history-editor-loader.js +5 -0
  277. package/dist/integrations/pi/components/index.d.ts +26 -0
  278. package/dist/integrations/pi/components/index.js +16 -0
  279. package/dist/integrations/pi/components/modal-frame.d.ts +41 -0
  280. package/dist/integrations/pi/components/modal-frame.js +110 -0
  281. package/dist/integrations/pi/components/models-dialog.d.ts +55 -0
  282. package/dist/integrations/pi/components/models-dialog.js +403 -0
  283. package/dist/integrations/pi/components/owned-editor-ux.d.ts +74 -0
  284. package/dist/integrations/pi/components/owned-editor-ux.js +1094 -0
  285. package/dist/integrations/pi/components/path-word-ranges.d.ts +2 -0
  286. package/dist/integrations/pi/components/path-word-ranges.js +37 -0
  287. package/dist/integrations/pi/components/prompt-input-port.d.ts +18 -0
  288. package/dist/integrations/pi/components/prompt-input-port.js +1 -0
  289. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +167 -0
  290. package/dist/integrations/pi/components/resources/builtin-themes.js +168 -0
  291. package/dist/integrations/pi/components/shell-components.d.ts +7 -0
  292. package/dist/integrations/pi/components/shell-components.js +7 -0
  293. package/dist/integrations/pi/components/shell-editor-autocomplete.d.ts +23 -0
  294. package/dist/integrations/pi/components/shell-editor-autocomplete.js +357 -0
  295. package/dist/integrations/pi/components/shell-extension-ui.d.ts +35 -0
  296. package/dist/integrations/pi/components/shell-extension-ui.js +282 -0
  297. package/dist/integrations/pi/components/shell-footer-status.d.ts +8 -0
  298. package/dist/integrations/pi/components/shell-footer-status.js +287 -0
  299. package/dist/integrations/pi/components/shell-hotkey-sections.d.ts +7 -0
  300. package/dist/integrations/pi/components/shell-hotkey-sections.js +29 -0
  301. package/dist/integrations/pi/components/shell-presenters-info.d.ts +73 -0
  302. package/dist/integrations/pi/components/shell-presenters-info.js +188 -0
  303. package/dist/integrations/pi/components/shell-presenters-transcript.d.ts +29 -0
  304. package/dist/integrations/pi/components/shell-presenters-transcript.js +435 -0
  305. package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +134 -0
  306. package/dist/integrations/pi/components/shell-selectors-dialogs.js +286 -0
  307. package/dist/integrations/pi/components/shell-shared-facade.d.ts +233 -0
  308. package/dist/integrations/pi/components/shell-shared-facade.js +92 -0
  309. package/dist/integrations/pi/components/skills-command.d.ts +49 -0
  310. package/dist/integrations/pi/components/skills-command.js +119 -0
  311. package/dist/integrations/pi/components/skills-dialog.d.ts +9 -0
  312. package/dist/integrations/pi/components/skills-dialog.js +128 -0
  313. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +17 -0
  314. package/dist/integrations/pi/components/submitted-prompt-adapter.js +52 -0
  315. package/dist/integrations/pi/components/theme.d.ts +5 -0
  316. package/dist/integrations/pi/components/theme.js +11 -0
  317. package/dist/integrations/pi/components/thinking-selector-dialog.d.ts +8 -0
  318. package/dist/integrations/pi/components/thinking-selector-dialog.js +22 -0
  319. package/dist/integrations/pi/components/tool-image-presentation.d.ts +21 -0
  320. package/dist/integrations/pi/components/tool-image-presentation.js +83 -0
  321. package/dist/integrations/pi/components/tool-result-adapter.d.ts +6 -0
  322. package/dist/integrations/pi/components/tool-result-adapter.js +27 -0
  323. package/dist/integrations/pi/components/transcript-image-resolver.d.ts +7 -0
  324. package/dist/integrations/pi/components/transcript-image-resolver.js +19 -0
  325. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +445 -0
  326. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +371 -0
  327. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
  328. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +13 -0
  329. package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +29 -0
  330. package/dist/integrations/pi/components/upstream/components/daxnuts.js +146 -0
  331. package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +4 -0
  332. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +48 -0
  333. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +22 -0
  334. package/dist/integrations/pi/components/upstream/components/extension-editor.js +89 -0
  335. package/dist/integrations/pi/components/upstream/components/extension-input.d.ts +17 -0
  336. package/dist/integrations/pi/components/upstream/components/extension-input.js +73 -0
  337. package/dist/integrations/pi/components/upstream/components/extension-selector.d.ts +15 -0
  338. package/dist/integrations/pi/components/upstream/components/extension-selector.js +93 -0
  339. package/dist/integrations/pi/components/upstream/components/mermaid.js +81 -0
  340. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +52 -0
  341. package/dist/integrations/pi/components/upstream/components/owned-editor.js +222 -0
  342. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +60 -0
  343. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +347 -0
  344. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +12 -0
  345. package/dist/integrations/pi/components/upstream/components/session-footer.js +150 -0
  346. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +161 -0
  347. package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +97 -0
  348. package/dist/integrations/pi/components/upstream/components/session-selector.js +935 -0
  349. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +21 -0
  350. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +54 -0
  351. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +35 -0
  352. package/dist/integrations/pi/components/upstream/components/status-indicator.js +69 -0
  353. package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +36 -0
  354. package/dist/integrations/pi/components/upstream/components/thinking-selector.js +153 -0
  355. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +67 -0
  356. package/dist/integrations/pi/components/upstream/components/tool-execution.js +365 -0
  357. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +102 -0
  358. package/dist/integrations/pi/components/upstream/components/tree-selector.js +1294 -0
  359. package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +33 -0
  360. package/dist/integrations/pi/components/upstream/components/trust-selector.js +87 -0
  361. package/dist/integrations/pi/components/upstream/external-editor.js +43 -0
  362. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +289 -0
  363. package/dist/integrations/pi/components/upstream/history/editor-core.js +2145 -0
  364. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +35 -0
  365. package/dist/integrations/pi/components/upstream/history/kill-ring.js +51 -0
  366. package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
  367. package/dist/integrations/pi/components/upstream/history/printable-key.js +43 -0
  368. package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +17 -0
  369. package/dist/integrations/pi/components/upstream/history/text-helpers.js +34 -0
  370. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +25 -0
  371. package/dist/integrations/pi/components/upstream/history/undo-stack.js +39 -0
  372. package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
  373. package/dist/integrations/pi/components/upstream/history/word-navigation.js +103 -0
  374. package/dist/integrations/pi/components/upstream/model-search.d.ts +18 -0
  375. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +33 -0
  376. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +114 -0
  377. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +61 -0
  378. package/dist/integrations/pi/components/upstream/theme/theme.js +337 -0
  379. package/dist/integrations/pi/engine/adapter.d.ts +140 -0
  380. package/dist/integrations/pi/engine/adapter.js +663 -0
  381. package/dist/integrations/pi/engine/changelog.d.ts +2 -0
  382. package/dist/integrations/pi/engine/changelog.js +63 -0
  383. package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
  384. package/dist/integrations/pi/engine/command-dispatch.js +125 -0
  385. package/dist/integrations/pi/engine/compaction-progress.d.ts +24 -0
  386. package/dist/integrations/pi/engine/compaction-progress.js +97 -0
  387. package/dist/integrations/pi/engine/conformance.d.ts +39 -0
  388. package/dist/integrations/pi/engine/conformance.js +140 -0
  389. package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
  390. package/dist/integrations/pi/engine/event-delivery.js +184 -0
  391. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
  392. package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
  393. package/dist/integrations/pi/engine/http-dispatcher.d.ts +4 -0
  394. package/dist/integrations/pi/engine/http-dispatcher.js +25 -0
  395. package/dist/integrations/pi/engine/index.d.ts +18 -0
  396. package/dist/integrations/pi/engine/index.js +10 -0
  397. package/dist/integrations/pi/engine/message-values.d.ts +29 -0
  398. package/dist/integrations/pi/engine/message-values.js +169 -0
  399. package/dist/integrations/pi/engine/package-integration.d.ts +13 -0
  400. package/dist/integrations/pi/engine/package-integration.js +118 -0
  401. package/dist/integrations/pi/engine/pending-delivery.d.ts +30 -0
  402. package/dist/integrations/pi/engine/pending-delivery.js +156 -0
  403. package/dist/integrations/pi/engine/pi-settings-metadata.json +397 -0
  404. package/dist/integrations/pi/engine/project-trust-preflight.d.ts +21 -0
  405. package/dist/integrations/pi/engine/project-trust-preflight.js +46 -0
  406. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
  407. package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
  408. package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
  409. package/dist/integrations/pi/engine/provider-authentication.js +209 -0
  410. package/dist/integrations/pi/engine/repository-pr-rest.d.ts +21 -0
  411. package/dist/integrations/pi/engine/repository-pr-rest.js +155 -0
  412. package/dist/integrations/pi/engine/repository-pr.d.ts +16 -0
  413. package/dist/integrations/pi/engine/repository-pr.js +79 -0
  414. package/dist/integrations/pi/engine/resource-catalog.d.ts +50 -0
  415. package/dist/integrations/pi/engine/resource-catalog.js +299 -0
  416. package/dist/integrations/pi/engine/resources/changelog.json +12 -0
  417. package/dist/integrations/pi/engine/runtime-integration.d.ts +53 -0
  418. package/dist/integrations/pi/engine/runtime-integration.js +118 -0
  419. package/dist/integrations/pi/engine/session-events.d.ts +48 -0
  420. package/dist/integrations/pi/engine/session-events.js +223 -0
  421. package/dist/integrations/pi/engine/session-integration.d.ts +67 -0
  422. package/dist/integrations/pi/engine/session-integration.js +195 -0
  423. package/dist/integrations/pi/engine/session-runtime.d.ts +98 -0
  424. package/dist/integrations/pi/engine/session-runtime.js +412 -0
  425. package/dist/integrations/pi/engine/session-selection.d.ts +28 -0
  426. package/dist/integrations/pi/engine/session-selection.js +90 -0
  427. package/dist/integrations/pi/engine/settings-bridge.d.ts +121 -0
  428. package/dist/integrations/pi/engine/settings-bridge.js +516 -0
  429. package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
  430. package/dist/integrations/pi/engine/settings-metadata.js +67 -0
  431. package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
  432. package/dist/integrations/pi/engine/settings-port.js +363 -0
  433. package/dist/integrations/pi/engine/tool-rendering.d.ts +13 -0
  434. package/dist/integrations/pi/engine/tool-rendering.js +145 -0
  435. package/dist/integrations/pi/engine/transcript-image-assets.d.ts +11 -0
  436. package/dist/integrations/pi/engine/transcript-image-assets.js +86 -0
  437. package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
  438. package/dist/integrations/pi/engine/transcript-projection.js +440 -0
  439. package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
  440. package/dist/integrations/pi/engine/usage-view.js +56 -0
  441. package/dist/integrations/pi/engine/windows-filesystem-hygiene.d.ts +21 -0
  442. package/dist/integrations/pi/engine/windows-filesystem-hygiene.js +55 -0
  443. package/dist/integrations/pi/engine/workflow-contexts.d.ts +66 -0
  444. package/dist/integrations/pi/engine/workflow-contexts.js +360 -0
  445. package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
  446. package/dist/integrations/pi/engine/workflow-runner.js +536 -0
  447. package/dist/integrations/pi/engine/workflow-support.d.ts +38 -0
  448. package/dist/integrations/pi/engine/workflow-support.js +386 -0
  449. package/dist/integrations/pi/engine/workflows.d.ts +308 -0
  450. package/dist/integrations/pi/engine/workflows.js +81 -0
  451. package/dist/integrations/pi/startup-public.d.ts +2 -0
  452. package/dist/integrations/pi/startup-public.js +2254 -0
  453. package/dist/integrations/pi/startup-public.manifest.json +12679 -0
  454. package/dist/integrations/pi/tui-runtime/adapter.d.ts +58 -0
  455. package/dist/integrations/pi/tui-runtime/adapter.js +792 -0
  456. package/dist/integrations/pi/tui-runtime/contracts.d.ts +158 -0
  457. package/dist/integrations/pi/tui-runtime/contracts.js +1 -0
  458. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +88 -0
  459. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +439 -0
  460. package/dist/integrations/pi/tui-runtime/index.d.ts +9 -0
  461. package/dist/integrations/pi/tui-runtime/index.js +5 -0
  462. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.d.ts +39 -0
  463. package/dist/integrations/pi/tui-runtime/input-presentation-coordinator.js +139 -0
  464. package/dist/integrations/pi/tui-runtime/mouse-report-input.d.ts +19 -0
  465. package/dist/integrations/pi/tui-runtime/mouse-report-input.js +91 -0
  466. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +32 -0
  467. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +158 -0
  468. package/dist/integrations/pi/tui-runtime/presentation-adapter.d.ts +4 -0
  469. package/dist/integrations/pi/tui-runtime/presentation-adapter.js +48 -0
  470. package/dist/native/darwin-arm64/manifest.json +4 -4
  471. package/dist/native/darwin-arm64/process-guardian +0 -0
  472. package/dist/native/linux-x64/manifest.json +3 -3
  473. package/dist/native/linux-x64/process-guardian +0 -0
  474. package/dist/native/win32-x64/manifest.json +3 -3
  475. package/dist/native/win32-x64/process-guardian.exe +0 -0
  476. package/dist/product-identity.d.ts +37 -0
  477. package/dist/product-identity.js +119 -0
  478. package/dist/product-identity.json +87 -0
  479. package/dist/runtime-payload-inventory.json +134179 -0
  480. package/dist/ui/apps/contracts.d.ts +72 -0
  481. package/dist/ui/apps/host.d.ts +42 -0
  482. package/dist/ui/apps/host.js +156 -0
  483. package/dist/ui/apps/index.d.ts +5 -0
  484. package/dist/ui/apps/index.js +3 -0
  485. package/dist/ui/apps/registry.d.ts +12 -0
  486. package/dist/ui/apps/registry.js +33 -0
  487. package/dist/ui/components/dialog-panel.d.ts +37 -0
  488. package/dist/ui/components/dialog-panel.js +58 -0
  489. package/dist/ui/components/frame.d.ts +22 -0
  490. package/dist/ui/components/frame.js +55 -0
  491. package/dist/ui/components/index.d.ts +50 -0
  492. package/dist/ui/components/index.js +26 -0
  493. package/dist/ui/components/line-input.d.ts +68 -0
  494. package/dist/ui/components/line-input.js +224 -0
  495. package/dist/ui/components/list-block.d.ts +70 -0
  496. package/dist/ui/components/list-block.js +189 -0
  497. package/dist/ui/components/list-view.d.ts +60 -0
  498. package/dist/ui/components/list-view.js +84 -0
  499. package/dist/ui/components/mouse.d.ts +25 -0
  500. package/dist/ui/components/mouse.js +72 -0
  501. package/dist/ui/components/progress-status.d.ts +9 -0
  502. package/dist/ui/components/progress-status.js +25 -0
  503. package/dist/ui/components/prompt-input.d.ts +32 -0
  504. package/dist/ui/components/prompt-input.js +51 -0
  505. package/dist/ui/components/scrollbar.d.ts +88 -0
  506. package/dist/ui/components/scrollbar.js +137 -0
  507. package/dist/ui/components/selection-copy.d.ts +24 -0
  508. package/dist/ui/components/selection-copy.js +39 -0
  509. package/dist/ui/components/shortcut-hints.d.ts +7 -0
  510. package/dist/ui/components/shortcut-hints.js +12 -0
  511. package/dist/ui/components/shortcuts.d.ts +60 -0
  512. package/dist/ui/components/shortcuts.js +85 -0
  513. package/dist/ui/components/spans.d.ts +28 -0
  514. package/dist/ui/components/spans.js +266 -0
  515. package/dist/ui/components/submitted-prompt.d.ts +23 -0
  516. package/dist/ui/components/submitted-prompt.js +50 -0
  517. package/dist/ui/components/surface.d.ts +20 -0
  518. package/dist/ui/components/surface.js +44 -0
  519. package/dist/ui/components/text-selection.d.ts +62 -0
  520. package/dist/ui/components/text-selection.js +210 -0
  521. package/dist/ui/components/text.d.ts +38 -0
  522. package/dist/ui/components/text.js +185 -0
  523. package/dist/ui/components/theme.d.ts +19 -0
  524. package/dist/ui/components/theme.js +9 -0
  525. package/dist/ui/components/transcript-viewport.d.ts +187 -0
  526. package/dist/ui/components/transcript-viewport.js +886 -0
  527. package/dist/ui/components/value-menu.d.ts +43 -0
  528. package/dist/ui/components/value-menu.js +41 -0
  529. package/dist/ui/components/visible-hyperlinks.d.ts +26 -0
  530. package/dist/ui/components/visible-hyperlinks.js +97 -0
  531. package/dist/ui/settings/declarations.d.ts +127 -0
  532. package/dist/ui/settings/declarations.js +124 -0
  533. package/dist/ui/settings/index.d.ts +10 -0
  534. package/dist/ui/settings/index.js +5 -0
  535. package/dist/ui/settings/manager.d.ts +54 -0
  536. package/dist/ui/settings/manager.js +256 -0
  537. package/dist/ui/settings/migrations.d.ts +13 -0
  538. package/dist/ui/settings/migrations.js +92 -0
  539. package/dist/ui/settings/sections.d.ts +52 -0
  540. package/dist/ui/settings/sections.js +112 -0
  541. package/docs/architecture/boundaries.md +17 -13
  542. package/docs/architecture/code-documentation.md +77 -0
  543. package/docs/architecture/history-editor-provenance.md +100 -0
  544. package/docs/architecture/internal-naming.md +94 -0
  545. package/docs/architecture/process-guardian-provenance.md +3 -1
  546. package/docs/architecture/project-structure.md +72 -30
  547. package/docs/architecture/prompt-suggestions.md +68 -0
  548. package/docs/architecture/resource-and-data-policy.md +28 -2
  549. package/docs/architecture/response-copy-delivery.md +85 -0
  550. package/docs/architecture/terminal-host-proof-gate.md +1 -1
  551. package/docs/architecture/terminal-host-spike-evidence.md +1 -1
  552. package/docs/architecture/tool-image-presentation.md +62 -0
  553. package/docs/architecture/toolchain.md +34 -10
  554. package/docs/architecture/ui-reference-provenance.md +73 -6
  555. package/docs/ci-release-runbook.md +266 -77
  556. package/docs/features/launch-profiles.md +24 -17
  557. package/docs/features/modal-content-interaction.md +38 -0
  558. package/docs/features/prompt-history.md +149 -0
  559. package/docs/local-worktree-cleanup.md +214 -0
  560. package/docs/manual-code-streaming-cleanup.md +88 -0
  561. package/docs/manual-ghost-link-baseline.md +89 -0
  562. package/docs/manual-launch-instance-acceptance.md +12 -35
  563. package/docs/manual-owned-ui-checkpoint.md +79 -0
  564. package/docs/manual-pi-boundary-candidate.md +4 -5
  565. package/docs/manual-terminal-colour-check.md +4 -3
  566. package/docs/openspec-archive-automation.md +269 -0
  567. package/docs/repository-governance-live-acceptance.md +77 -0
  568. package/docs/validation.md +105 -0
  569. package/package.json +53 -34
  570. package/dist/src/cli/capabilities.d.ts +0 -15
  571. package/dist/src/cli/capabilities.js +0 -7
  572. package/dist/src/cli/dispatch.d.ts +0 -31
  573. package/dist/src/cli/dispatch.js +0 -123
  574. package/dist/src/cli/index.d.ts +0 -5
  575. package/dist/src/cli/index.js +0 -5
  576. package/dist/src/cli/packages.d.ts +0 -23
  577. package/dist/src/cli/packages.js +0 -84
  578. package/dist/src/cli/version-stats.d.ts +0 -16
  579. package/dist/src/cli/version-stats.js +0 -72
  580. package/dist/src/cli/version.d.ts +0 -2
  581. package/dist/src/cli/version.js +0 -23
  582. package/dist/src/composition/index.d.ts +0 -48
  583. package/dist/src/composition/index.js +0 -258
  584. package/dist/src/features/launch/development-launch.js +0 -28
  585. package/dist/src/features/launch/index.d.ts +0 -7
  586. package/dist/src/features/launch/index.js +0 -7
  587. package/dist/src/features/launch/intent.d.ts +0 -7
  588. package/dist/src/features/launch/intent.js +0 -4
  589. package/dist/src/features/launch/prepare-launch.d.ts +0 -13
  590. package/dist/src/features/launch/prepare-launch.js +0 -21
  591. package/dist/src/features/launch/profile-paths.d.ts +0 -15
  592. package/dist/src/features/launch/profile-paths.js +0 -31
  593. package/dist/src/features/launch/profiles.d.ts +0 -12
  594. package/dist/src/features/launch/profiles.js +0 -26
  595. package/dist/src/features/launch/runtime-selection.d.ts +0 -19
  596. package/dist/src/features/launch/runtime-selection.js +0 -13
  597. package/dist/src/features/owned-ui/customization.d.ts +0 -38
  598. package/dist/src/features/owned-ui/customization.js +0 -108
  599. package/dist/src/features/owned-ui/diagnostics.d.ts +0 -33
  600. package/dist/src/features/owned-ui/diagnostics.js +0 -94
  601. package/dist/src/features/owned-ui/index.d.ts +0 -4
  602. package/dist/src/features/owned-ui/index.js +0 -4
  603. package/dist/src/features/owned-ui/run.d.ts +0 -11
  604. package/dist/src/features/owned-ui/run.js +0 -15
  605. package/dist/src/features/owned-ui/settings-app.d.ts +0 -22
  606. package/dist/src/features/owned-ui/settings-app.js +0 -633
  607. package/dist/src/features/workspace/capabilities.d.ts +0 -31
  608. package/dist/src/features/workspace/capabilities.js +0 -75
  609. package/dist/src/features/workspace/index.d.ts +0 -6
  610. package/dist/src/features/workspace/index.js +0 -6
  611. package/dist/src/features/workspace/presentation.d.ts +0 -30
  612. package/dist/src/features/workspace/presentation.js +0 -70
  613. package/dist/src/features/workspace/reconciliation.d.ts +0 -15
  614. package/dist/src/features/workspace/reconciliation.js +0 -82
  615. package/dist/src/features/workspace/reducer.d.ts +0 -42
  616. package/dist/src/features/workspace/reducer.js +0 -213
  617. package/dist/src/features/workspace/router.d.ts +0 -31
  618. package/dist/src/features/workspace/router.js +0 -124
  619. package/dist/src/features/workspace/store.d.ts +0 -17
  620. package/dist/src/features/workspace/store.js +0 -54
  621. package/dist/src/foundation/agent-engine-contracts/capability-ports.d.ts +0 -95
  622. package/dist/src/foundation/agent-engine-contracts/domain-validation.js +0 -89
  623. package/dist/src/foundation/agent-engine-contracts/domain.d.ts +0 -116
  624. package/dist/src/foundation/agent-engine-contracts/index.d.ts +0 -8
  625. package/dist/src/foundation/agent-engine-contracts/index.js +0 -8
  626. package/dist/src/foundation/agent-engine-contracts/package-ports.d.ts +0 -54
  627. package/dist/src/foundation/launch-guardian/index.d.ts +0 -1
  628. package/dist/src/foundation/launch-guardian/index.js +0 -1
  629. package/dist/src/foundation/launch-guardian/main.d.ts +0 -31
  630. package/dist/src/foundation/launch-guardian/main.js +0 -165
  631. package/dist/src/foundation/lifecycle/index.d.ts +0 -4
  632. package/dist/src/foundation/lifecycle/index.js +0 -4
  633. package/dist/src/foundation/lifecycle/model.d.ts +0 -64
  634. package/dist/src/foundation/lifecycle/model.js +0 -40
  635. package/dist/src/foundation/lifecycle/paths.d.ts +0 -10
  636. package/dist/src/foundation/lifecycle/paths.js +0 -42
  637. package/dist/src/foundation/native-host-protocol/codec.d.ts +0 -11
  638. package/dist/src/foundation/native-host-protocol/codec.js +0 -56
  639. package/dist/src/foundation/native-host-protocol/evidence.d.ts +0 -67
  640. package/dist/src/foundation/native-host-protocol/evidence.js +0 -141
  641. package/dist/src/foundation/native-host-protocol/index.d.ts +0 -4
  642. package/dist/src/foundation/native-host-protocol/index.js +0 -4
  643. package/dist/src/foundation/native-host-protocol/messages.d.ts +0 -56
  644. package/dist/src/foundation/native-host-protocol/messages.js +0 -149
  645. package/dist/src/foundation/native-host-protocol/proof-gate.d.ts +0 -13
  646. package/dist/src/foundation/native-host-protocol/proof-gate.js +0 -33
  647. package/dist/src/foundation/owned-ui-contracts/extension-ui.d.ts +0 -302
  648. package/dist/src/foundation/owned-ui-contracts/index.d.ts +0 -3
  649. package/dist/src/foundation/owned-ui-contracts/index.js +0 -3
  650. package/dist/src/foundation/owned-ui-contracts/model.d.ts +0 -241
  651. package/dist/src/foundation/owned-ui-contracts/validation.d.ts +0 -11
  652. package/dist/src/foundation/owned-ui-contracts/validation.js +0 -395
  653. package/dist/src/foundation/owned-ui-settings/declarations.d.ts +0 -13
  654. package/dist/src/foundation/owned-ui-settings/declarations.js +0 -39
  655. package/dist/src/foundation/owned-ui-settings/index.d.ts +0 -6
  656. package/dist/src/foundation/owned-ui-settings/index.js +0 -6
  657. package/dist/src/foundation/owned-ui-settings/migrations.d.ts +0 -13
  658. package/dist/src/foundation/owned-ui-settings/migrations.js +0 -28
  659. package/dist/src/foundation/owned-ui-settings/sections.d.ts +0 -70
  660. package/dist/src/foundation/owned-ui-settings/sections.js +0 -93
  661. package/dist/src/foundation/owned-ui-settings/session.d.ts +0 -44
  662. package/dist/src/foundation/owned-ui-settings/session.js +0 -145
  663. package/dist/src/foundation/owned-ui-settings/store.d.ts +0 -28
  664. package/dist/src/foundation/owned-ui-settings/store.js +0 -90
  665. package/dist/src/foundation/pi-component-adapter/components.d.ts +0 -4
  666. package/dist/src/foundation/pi-component-adapter/components.js +0 -64
  667. package/dist/src/foundation/pi-component-adapter/conformance.d.ts +0 -17
  668. package/dist/src/foundation/pi-component-adapter/conformance.js +0 -69
  669. package/dist/src/foundation/pi-component-adapter/index.d.ts +0 -13
  670. package/dist/src/foundation/pi-component-adapter/index.js +0 -13
  671. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.d.ts +0 -165
  672. package/dist/src/foundation/pi-component-adapter/resources/builtin-themes.js +0 -166
  673. package/dist/src/foundation/pi-component-adapter/shell-components.d.ts +0 -6
  674. package/dist/src/foundation/pi-component-adapter/shell-components.js +0 -6
  675. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.d.ts +0 -11
  676. package/dist/src/foundation/pi-component-adapter/shell-editor-autocomplete.js +0 -162
  677. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.d.ts +0 -35
  678. package/dist/src/foundation/pi-component-adapter/shell-extension-ui.js +0 -279
  679. package/dist/src/foundation/pi-component-adapter/shell-footer-status.d.ts +0 -7
  680. package/dist/src/foundation/pi-component-adapter/shell-footer-status.js +0 -189
  681. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.d.ts +0 -57
  682. package/dist/src/foundation/pi-component-adapter/shell-presenters-transcript.js +0 -429
  683. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.d.ts +0 -113
  684. package/dist/src/foundation/pi-component-adapter/shell-selectors-dialogs.js +0 -235
  685. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.d.ts +0 -116
  686. package/dist/src/foundation/pi-component-adapter/shell-shared-facade.js +0 -87
  687. package/dist/src/foundation/pi-component-adapter/theme.d.ts +0 -1
  688. package/dist/src/foundation/pi-component-adapter/theme.js +0 -1
  689. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.d.ts +0 -422
  690. package/dist/src/foundation/pi-component-adapter/upstream/adjacent/core/keybindings.js +0 -296
  691. package/dist/src/foundation/pi-component-adapter/upstream/components/countdown-timer.d.ts +0 -10
  692. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.d.ts +0 -17
  693. package/dist/src/foundation/pi-component-adapter/upstream/components/custom-entry.js +0 -51
  694. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.d.ts +0 -22
  695. package/dist/src/foundation/pi-component-adapter/upstream/components/daxnuts.js +0 -142
  696. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.d.ts +0 -4
  697. package/dist/src/foundation/pi-component-adapter/upstream/components/earendil-announcement.js +0 -19
  698. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.d.ts +0 -17
  699. package/dist/src/foundation/pi-component-adapter/upstream/components/extension-editor.js +0 -81
  700. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.d.ts +0 -24
  701. package/dist/src/foundation/pi-component-adapter/upstream/components/first-time-setup.js +0 -105
  702. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.d.ts +0 -2
  703. package/dist/src/foundation/pi-component-adapter/upstream/components/markdown-transform.js +0 -18
  704. package/dist/src/foundation/pi-component-adapter/upstream/components/mermaid.js +0 -77
  705. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.d.ts +0 -18
  706. package/dist/src/foundation/pi-component-adapter/upstream/components/owned-editor.js +0 -55
  707. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.d.ts +0 -55
  708. package/dist/src/foundation/pi-component-adapter/upstream/components/scoped-models-selector.js +0 -342
  709. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.d.ts +0 -10
  710. package/dist/src/foundation/pi-component-adapter/upstream/components/session-footer.js +0 -120
  711. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector-search.js +0 -159
  712. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.d.ts +0 -95
  713. package/dist/src/foundation/pi-component-adapter/upstream/components/session-selector.js +0 -889
  714. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.d.ts +0 -19
  715. package/dist/src/foundation/pi-component-adapter/upstream/components/skill-invocation-message.js +0 -44
  716. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.d.ts +0 -30
  717. package/dist/src/foundation/pi-component-adapter/upstream/components/status-indicator.js +0 -59
  718. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.d.ts +0 -98
  719. package/dist/src/foundation/pi-component-adapter/upstream/components/tree-selector.js +0 -1272
  720. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.d.ts +0 -33
  721. package/dist/src/foundation/pi-component-adapter/upstream/components/trust-selector.js +0 -76
  722. package/dist/src/foundation/pi-component-adapter/upstream/external-editor.js +0 -39
  723. package/dist/src/foundation/pi-component-adapter/upstream/model-search.d.ts +0 -15
  724. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.d.ts +0 -25
  725. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme-controller.js +0 -117
  726. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.d.ts +0 -61
  727. package/dist/src/foundation/pi-component-adapter/upstream/theme/theme.js +0 -326
  728. package/dist/src/foundation/pi-engine-adapter/adapter.d.ts +0 -164
  729. package/dist/src/foundation/pi-engine-adapter/adapter.js +0 -2367
  730. package/dist/src/foundation/pi-engine-adapter/conformance.d.ts +0 -37
  731. package/dist/src/foundation/pi-engine-adapter/conformance.js +0 -130
  732. package/dist/src/foundation/pi-engine-adapter/index.d.ts +0 -10
  733. package/dist/src/foundation/pi-engine-adapter/index.js +0 -10
  734. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.d.ts +0 -30
  735. package/dist/src/foundation/pi-engine-adapter/model-auth-integration.js +0 -61
  736. package/dist/src/foundation/pi-engine-adapter/package-integration.d.ts +0 -13
  737. package/dist/src/foundation/pi-engine-adapter/package-integration.js +0 -112
  738. package/dist/src/foundation/pi-engine-adapter/pi-settings-metadata.json +0 -374
  739. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.d.ts +0 -31
  740. package/dist/src/foundation/pi-engine-adapter/resource-extension-integration.js +0 -80
  741. package/dist/src/foundation/pi-engine-adapter/runtime-integration.d.ts +0 -35
  742. package/dist/src/foundation/pi-engine-adapter/runtime-integration.js +0 -67
  743. package/dist/src/foundation/pi-engine-adapter/session-integration.d.ts +0 -43
  744. package/dist/src/foundation/pi-engine-adapter/session-integration.js +0 -97
  745. package/dist/src/foundation/pi-engine-adapter/settings-integration.d.ts +0 -55
  746. package/dist/src/foundation/pi-engine-adapter/settings-integration.js +0 -233
  747. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.d.ts +0 -20
  748. package/dist/src/foundation/pi-engine-adapter/workflow-controllers.js +0 -48
  749. package/dist/src/foundation/pi-engine-adapter/workflows.d.ts +0 -173
  750. package/dist/src/foundation/pi-engine-adapter/workflows.js +0 -60
  751. package/dist/src/foundation/pi-owned-ui-integration/index.d.ts +0 -2
  752. package/dist/src/foundation/pi-owned-ui-integration/index.js +0 -2
  753. package/dist/src/foundation/pi-owned-ui-integration/route-host.d.ts +0 -29
  754. package/dist/src/foundation/pi-owned-ui-integration/session-shell.d.ts +0 -106
  755. package/dist/src/foundation/pi-owned-ui-integration/session-shell.js +0 -1518
  756. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.d.ts +0 -39
  757. package/dist/src/foundation/pi-tui-runtime-adapter/adapter.js +0 -493
  758. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.d.ts +0 -18
  759. package/dist/src/foundation/pi-tui-runtime-adapter/conformance.js +0 -145
  760. package/dist/src/foundation/pi-tui-runtime-adapter/contracts.d.ts +0 -120
  761. package/dist/src/foundation/pi-tui-runtime-adapter/index.d.ts +0 -4
  762. package/dist/src/foundation/pi-tui-runtime-adapter/index.js +0 -4
  763. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.d.ts +0 -4
  764. package/dist/src/foundation/pi-tui-runtime-adapter/presentation-adapter.js +0 -48
  765. package/dist/src/foundation/presentation-contracts/index.d.ts +0 -96
  766. package/dist/src/foundation/presentation-contracts/index.js +0 -38
  767. package/dist/src/foundation/process-containment/index.d.ts +0 -5
  768. package/dist/src/foundation/process-containment/index.js +0 -5
  769. package/dist/src/foundation/process-containment/linux-process-inspector.d.ts +0 -6
  770. package/dist/src/foundation/process-containment/linux-process-inspector.js +0 -26
  771. package/dist/src/foundation/process-containment/native-guardian-containment.d.ts +0 -16
  772. package/dist/src/foundation/process-containment/native-guardian-containment.js +0 -139
  773. package/dist/src/foundation/process-containment/windows-process-inspector.d.ts +0 -17
  774. package/dist/src/foundation/process-containment/windows-process-inspector.js +0 -53
  775. package/dist/src/foundation/protocol/client.d.ts +0 -17
  776. package/dist/src/foundation/protocol/client.js +0 -129
  777. package/dist/src/foundation/protocol/index.d.ts +0 -2
  778. package/dist/src/foundation/protocol/index.js +0 -2
  779. package/dist/src/foundation/protocol/messages.d.ts +0 -89
  780. package/dist/src/foundation/protocol/messages.js +0 -99
  781. package/dist/src/foundation/release/bootstrap.d.ts +0 -29
  782. package/dist/src/foundation/release/bootstrap.js +0 -335
  783. package/dist/src/foundation/release/cohort-state.d.ts +0 -70
  784. package/dist/src/foundation/release/cohort-state.js +0 -202
  785. package/dist/src/foundation/release/development-preview-release.d.ts +0 -49
  786. package/dist/src/foundation/release/development-preview-release.js +0 -114
  787. package/dist/src/foundation/release/index.d.ts +0 -11
  788. package/dist/src/foundation/release/index.js +0 -11
  789. package/dist/src/foundation/release/release-gc.d.ts +0 -5
  790. package/dist/src/foundation/release/release-gc.js +0 -16
  791. package/dist/src/foundation/release/release-store.d.ts +0 -43
  792. package/dist/src/foundation/release/release-store.js +0 -175
  793. package/dist/src/foundation/release/release.d.ts +0 -38
  794. package/dist/src/foundation/release/release.js +0 -204
  795. package/dist/src/foundation/release/update-transaction.d.ts +0 -31
  796. package/dist/src/foundation/release/update-transaction.js +0 -89
  797. package/dist/src/foundation/release/update.d.ts +0 -80
  798. package/dist/src/foundation/release/update.js +0 -458
  799. package/dist/src/foundation/storage/control-store.d.ts +0 -61
  800. package/dist/src/foundation/storage/control-store.js +0 -530
  801. package/dist/src/foundation/storage/index.d.ts +0 -1
  802. package/dist/src/foundation/storage/index.js +0 -1
  803. package/dist/src/foundation/structured-agent-runtime/backpressure.d.ts +0 -46
  804. package/dist/src/foundation/structured-agent-runtime/backpressure.js +0 -118
  805. package/dist/src/foundation/structured-agent-runtime/commands.d.ts +0 -52
  806. package/dist/src/foundation/structured-agent-runtime/commands.js +0 -164
  807. package/dist/src/foundation/structured-agent-runtime/handshake.d.ts +0 -41
  808. package/dist/src/foundation/structured-agent-runtime/handshake.js +0 -151
  809. package/dist/src/foundation/structured-agent-runtime/index.d.ts +0 -5
  810. package/dist/src/foundation/structured-agent-runtime/index.js +0 -5
  811. package/dist/src/foundation/structured-agent-runtime/reconnection.d.ts +0 -37
  812. package/dist/src/foundation/structured-agent-runtime/reconnection.js +0 -129
  813. package/dist/src/foundation/structured-agent-runtime/state.d.ts +0 -56
  814. package/dist/src/foundation/structured-agent-runtime/state.js +0 -118
  815. package/dist/src/foundation/supervision/index.d.ts +0 -3
  816. package/dist/src/foundation/supervision/index.js +0 -3
  817. package/dist/src/foundation/supervision/main.d.ts +0 -1
  818. package/dist/src/foundation/supervision/main.js +0 -41
  819. package/dist/src/foundation/supervision/paths.d.ts +0 -1
  820. package/dist/src/foundation/supervision/paths.js +0 -1
  821. package/dist/src/foundation/supervision/server.d.ts +0 -22
  822. package/dist/src/foundation/supervision/server.js +0 -451
  823. package/dist/src/foundation/ui-apps/contracts.d.ts +0 -42
  824. package/dist/src/foundation/ui-apps/host.d.ts +0 -42
  825. package/dist/src/foundation/ui-apps/host.js +0 -152
  826. package/dist/src/foundation/ui-apps/index.d.ts +0 -3
  827. package/dist/src/foundation/ui-apps/index.js +0 -3
  828. package/dist/src/foundation/ui-apps/registry.d.ts +0 -11
  829. package/dist/src/foundation/ui-apps/registry.js +0 -32
  830. package/dist/src/foundation/ui-components/dialog-panel.d.ts +0 -36
  831. package/dist/src/foundation/ui-components/dialog-panel.js +0 -47
  832. package/dist/src/foundation/ui-components/frame.d.ts +0 -21
  833. package/dist/src/foundation/ui-components/frame.js +0 -54
  834. package/dist/src/foundation/ui-components/index.d.ts +0 -18
  835. package/dist/src/foundation/ui-components/index.js +0 -18
  836. package/dist/src/foundation/ui-components/line-input.d.ts +0 -74
  837. package/dist/src/foundation/ui-components/line-input.js +0 -245
  838. package/dist/src/foundation/ui-components/list-block.d.ts +0 -66
  839. package/dist/src/foundation/ui-components/list-block.js +0 -176
  840. package/dist/src/foundation/ui-components/list-view.d.ts +0 -66
  841. package/dist/src/foundation/ui-components/list-view.js +0 -76
  842. package/dist/src/foundation/ui-components/mouse.d.ts +0 -15
  843. package/dist/src/foundation/ui-components/mouse.js +0 -46
  844. package/dist/src/foundation/ui-components/scrollbar.d.ts +0 -62
  845. package/dist/src/foundation/ui-components/scrollbar.js +0 -102
  846. package/dist/src/foundation/ui-components/shortcuts.d.ts +0 -57
  847. package/dist/src/foundation/ui-components/shortcuts.js +0 -81
  848. package/dist/src/foundation/ui-components/spans.d.ts +0 -7
  849. package/dist/src/foundation/ui-components/spans.js +0 -59
  850. package/dist/src/foundation/ui-components/surface.d.ts +0 -20
  851. package/dist/src/foundation/ui-components/surface.js +0 -38
  852. package/dist/src/foundation/ui-components/text.d.ts +0 -24
  853. package/dist/src/foundation/ui-components/text.js +0 -123
  854. package/dist/src/foundation/ui-components/theme.d.ts +0 -23
  855. package/dist/src/foundation/ui-components/theme.js +0 -13
  856. package/dist/src/foundation/ui-components/value-menu.d.ts +0 -41
  857. package/dist/src/foundation/ui-components/value-menu.js +0 -33
  858. package/dist/src/foundation/workspace-contracts/index.d.ts +0 -2
  859. package/dist/src/foundation/workspace-contracts/index.js +0 -2
  860. package/dist/src/foundation/workspace-contracts/model.d.ts +0 -248
  861. package/dist/src/foundation/workspace-contracts/model.js +0 -2
  862. package/dist/src/foundation/workspace-contracts/validation.d.ts +0 -13
  863. package/dist/src/foundation/workspace-contracts/validation.js +0 -335
  864. package/dist/src/product-identity.d.ts +0 -37
  865. package/dist/src/product-identity.js +0 -150
  866. package/dist/src/product-identity.json +0 -99
  867. package/docs/manual-transparent-checkpoint.md +0 -53
  868. /package/dist/{src/foundation/agent-engine-contracts/domain.js → app/session-shell/paste-helper.d.ts} +0 -0
  869. /package/dist/{src/foundation/agent-engine-contracts/ports.js → app/session-shell/paste-text-worker.d.ts} +0 -0
  870. /package/dist/{src/foundation/lifecycle/commands.js → app/session-shell/paste-types.js} +0 -0
  871. /package/dist/{src/foundation/pi-owned-ui-integration/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
  872. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/capability-ports.js +0 -0
  873. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/domain-validation.d.ts +0 -0
  874. /package/dist/{src/foundation/pi-tui-runtime-adapter/contracts.js → contracts/agent-engine/domain.js} +0 -0
  875. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.d.ts +0 -0
  876. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/model.js +0 -0
  877. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/package-ports.js +0 -0
  878. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/ports.d.ts +0 -0
  879. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.d.ts +0 -0
  880. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/serialization.js +0 -0
  881. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.d.ts +0 -0
  882. /package/dist/{src/foundation/agent-engine-contracts → contracts/agent-engine}/validation.js +0 -0
  883. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/extension-ui.js +0 -0
  884. /package/dist/{src/foundation/owned-ui-contracts → contracts/owned-ui}/model.js +0 -0
  885. /package/dist/{src/features → features}/launch/development-launch.d.ts +0 -0
  886. /package/dist/{src/features → features}/launch/initialize-profile.d.ts +0 -0
  887. /package/dist/{src/features → features}/launch/initialize-profile.js +0 -0
  888. /package/dist/{src/foundation → foundation}/lifecycle/commands.d.ts +0 -0
  889. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.d.ts +0 -0
  890. /package/dist/{src/foundation → foundation}/lifecycle/launch-instance.js +0 -0
  891. /package/dist/{src/foundation → foundation}/process-containment/artifact.d.ts +0 -0
  892. /package/dist/{src/foundation → foundation}/process-containment/artifact.js +0 -0
  893. /package/dist/{src/foundation → foundation}/process-containment/contracts.d.ts +0 -0
  894. /package/dist/{src/foundation → foundation}/process-containment/contracts.js +0 -0
  895. /package/dist/{src/foundation → foundation}/release/cohort-selection.d.ts +0 -0
  896. /package/dist/{src/foundation → foundation}/release/cohort-selection.js +0 -0
  897. /package/dist/{src/foundation → foundation}/release/concurrency.d.ts +0 -0
  898. /package/dist/{src/foundation → foundation}/release/concurrency.js +0 -0
  899. /package/dist/{src/foundation → foundation}/release/process-cleanup.d.ts +0 -0
  900. /package/dist/{src/foundation → foundation}/release/process-cleanup.js +0 -0
  901. /package/dist/{src/foundation → foundation}/release/stable-release.d.ts +0 -0
  902. /package/dist/{src/foundation → foundation}/release/stable-release.js +0 -0
  903. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/countdown-timer.js +0 -0
  904. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/mermaid.d.ts +0 -0
  905. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/components/session-selector-search.d.ts +0 -0
  906. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/external-editor.d.ts +0 -0
  907. /package/dist/{src/foundation/pi-component-adapter → integrations/pi/components}/upstream/model-search.js +0 -0
  908. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.d.ts +0 -0
  909. /package/dist/{src/foundation/pi-engine-adapter → integrations/pi/engine}/public-main-entry.js +0 -0
  910. /package/dist/{src/foundation/ui-apps → ui/apps}/contracts.js +0 -0
  911. /package/dist/{src/foundation/ui-components → ui/components}/label.d.ts +0 -0
  912. /package/dist/{src/foundation/ui-components → ui/components}/label.js +0 -0
  913. /package/dist/{src/foundation/ui-components → ui/components}/pane.d.ts +0 -0
  914. /package/dist/{src/foundation/ui-components → ui/components}/pane.js +0 -0
  915. /package/dist/{src/foundation/ui-components → ui/components}/revision.d.ts +0 -0
  916. /package/dist/{src/foundation/ui-components → ui/components}/revision.js +0 -0
  917. /package/dist/{src/foundation/ui-components → ui/components}/status-line.d.ts +0 -0
  918. /package/dist/{src/foundation/ui-components → ui/components}/status-line.js +0 -0
  919. /package/dist/{src/foundation/ui-components → ui/components}/stepper.d.ts +0 -0
  920. /package/dist/{src/foundation/ui-components → ui/components}/stepper.js +0 -0
  921. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.d.ts +0 -0
  922. /package/dist/{src/foundation/owned-ui-settings → ui/settings}/resolution.js +0 -0
@@ -0,0 +1,516 @@
1
+ import { loadPiSettingsMetadata } from "./settings-metadata.js";
2
+ /**
3
+ * Reviewed effect authority for every generated Pi setting. Presentation remains
4
+ * generated; this table states who must make each accepted value observable.
5
+ */
6
+ export const PI_SETTING_EFFECTS = Object.freeze({
7
+ autoCompact: effect("live", "agent", "transcript", "compaction status, summary, completion, and failure rows", "pinned-transcript-lifecycle-parity"),
8
+ showImages: effect("live", "shell", "transcript", "pinned inline image and textual fallback components", "pinned-transcript-image-parity"),
9
+ imageWidthCells: effect("live", "shell", "transcript-geometry", "pinned image component width and clipping", "pinned-transcript-image-parity"),
10
+ autoResizeImages: effect("live", "agent", "none", "provider image preparation and pinned warning row", "settings-effects-provider-parity"),
11
+ blockImages: effect("live", "agent", "none", "provider context conversion and pinned blocked-image notice", "settings-effects-provider-parity"),
12
+ enableSkillCommands: effect("live", "shell", "editor-menu", "pinned command autocomplete list", "pinned-editor-input-parity"),
13
+ steeringMode: effect("live", "agent", "queue-transcript", "pinned steering queue and submitted prompt rows", "pinned-status-indicator-parity"),
14
+ followUpMode: effect("live", "agent", "queue-transcript", "pinned follow-up queue and submitted prompt rows", "pinned-status-indicator-parity"),
15
+ transport: effect("live", "agent", "status-error", "pinned provider request status and failure rows", "settings-effects-provider-parity"),
16
+ httpIdleTimeoutMs: effect("live", "agent", "retry-error", "pinned timeout, retry, and terminal failure rows", "pinned-transcript-lifecycle-parity"),
17
+ cacheWarmingMode: effect("live", "agent", "footer-transcript", "pinned cache warming notices and session usage rows", "pinned-transcript-lifecycle-parity"),
18
+ modelThinkingLevels: effect("live", "agent", "footer-transcript", "pinned per-model thinking override, footer indicator, and thinking rows", "pinned-status-indicator-parity"),
19
+ theme: hiddenEffect("live", "shell", "pinned theme selector and complete themed shell", "pinned-theme-parity"),
20
+ hideThinkingBlock: effect("live", "shell", "transcript", "pinned thinking block presence and spacing", "pinned-transcript-lifecycle-parity"),
21
+ mermaidRenderingMode: effect("live", "shell", "markdown", "pinned Mermaid Markdown transformation", "pinned-assistant-content-parity"),
22
+ showCacheMissNotices: effect("live", "shell", "transcript-notice", "pinned cache-miss transcript notice", "pinned-transcript-lifecycle-parity"),
23
+ collapseChangelog: effect("next-start", "startup", "startup-transcript", "pinned startup and command changelog components", "pi-startup-composition-parity"),
24
+ enableInstallTelemetry: effect("next-start", "installation", "none", "install lifecycle and its pinned failure diagnostic", "settings-effects-installation-parity"),
25
+ quietStartup: hiddenEffect("next-start", "startup", "pinned startup suppression lifecycle", "pi-startup-composition-parity"),
26
+ defaultProjectTrust: effect("next-start", "startup", "startup-selector", "pinned pre-resource project trust selector", "project-trust-startup-parity"),
27
+ doubleEscapeAction: effect("live", "shell", "selector", "pinned tree or fork selector", "pinned-selector-parity"),
28
+ treeFilterMode: effect("live", "shell", "selector", "pinned tree selector filter, rows, and hints", "pinned-selector-parity"),
29
+ showHardwareCursor: effect("live", "terminal", "terminal-cursor", "pinned editor, overlay, blur, failure, and exit cursor operations", "pi-terminal-operation-parity"),
30
+ editorPaddingX: effect("live", "shell", "editor-geometry", "pinned editor border, padding, wrapping, and cursor column", "pinned-editor-input-parity"),
31
+ outputPad: effect("live", "shell", "transcript-geometry", "pinned transcript, tool, status, and error horizontal padding", "pinned-transcript-lifecycle-parity"),
32
+ autocompleteMaxVisible: effect("live", "shell", "menu-geometry", "pinned autocomplete clipping and editor anchoring", "pinned-editor-input-parity"),
33
+ clearOnShrink: effect("live", "terminal", "terminal-frame", "pinned resize clearing and resulting terminal frame", "pi-terminal-operation-parity"),
34
+ showTerminalProgress: effect("live", "terminal", "terminal-status", "pinned OSC progress lifecycle", "pi-terminal-operation-parity"),
35
+ tuiMode: hiddenEffect("next-session", "shell", "pinned regular/fullscreen selector and terminal lifecycle", "pi-terminal-operation-parity"),
36
+ fullscreenExitOutput: hiddenEffect("current-exit", "shutdown", "pinned styled transcript and compact dim resume hint", "pinned-fullscreen-exit-parity"),
37
+ fullscreenScrollbar: hiddenEffect("live", "shell", "pinned fullscreen scrollbar reservation", "pi-terminal-operation-parity"),
38
+ fullscreenCopyOnSelect: effect("live", "shell", "terminal-status", "pinned fullscreen copy-on-select toggle and copy acknowledgement", "pi-terminal-operation-parity"),
39
+ warnings: effect("live", "agent", "transcript-notice", "pinned warning rows by warning part", "pinned-transcript-lifecycle-parity"),
40
+ });
41
+ function effect(application, owner, visualClass, pinnedSurface, evidence) {
42
+ return { application, owner, visual: { class: visualClass, pinnedSurface, evidence } };
43
+ }
44
+ function hiddenEffect(application, owner, pinnedSurface, evidence) {
45
+ return { application, owner, hiddenInBare: true, visual: { class: "hidden", pinnedSurface, evidence } };
46
+ }
47
+ /**
48
+ * One transactional authority for Pi setting validation, active effects,
49
+ * persistence, durability, rollback, and owner lifecycle.
50
+ */
51
+ export class PiSettingsCoordinator {
52
+ #operations;
53
+ #handlers = new Map();
54
+ #state = new Map();
55
+ #productMode;
56
+ #flushStorage;
57
+ #drainErrors;
58
+ constructor(operations, options) {
59
+ this.#operations = new Map(operations.map(operation => [operation.key, operation]));
60
+ this.#productMode = options.productMode ?? "bare";
61
+ this.#flushStorage = options.flush;
62
+ this.#drainErrors = options.drainErrors;
63
+ for (const operation of operations) {
64
+ const stored = operation.read();
65
+ this.#state.set(operation.key, { stored, effective: stored, inconsistentReason: null });
66
+ }
67
+ }
68
+ bindOwner(owner, handlers) {
69
+ const bound = [];
70
+ for (const [candidate, handler] of Object.entries(handlers)) {
71
+ if (handler === undefined)
72
+ continue;
73
+ const key = candidate;
74
+ const definition = PI_SETTING_EFFECTS[key];
75
+ if (definition === undefined)
76
+ throw new Error(`unknown Pi setting effect: ${key}`);
77
+ if (definition.owner !== owner)
78
+ throw new Error(`${key} belongs to ${definition.owner}, not ${owner}`);
79
+ if (this.#productMode === "bare" && definition.hiddenInBare === true) {
80
+ throw new Error(`${key} is hidden in bare A1`);
81
+ }
82
+ this.#handlers.set(key, handler);
83
+ bound.push(key);
84
+ }
85
+ return () => this.unbindOwner(owner, bound);
86
+ }
87
+ unbindOwner(owner, keys) {
88
+ const candidates = keys ?? [...this.#handlers.keys()];
89
+ for (const key of candidates)
90
+ if (PI_SETTING_EFFECTS[key].owner === owner)
91
+ this.#handlers.delete(key);
92
+ }
93
+ definition(key) {
94
+ return PI_SETTING_EFFECTS[key];
95
+ }
96
+ storedValue(key) {
97
+ const operation = this.#requireOperation(key);
98
+ const stored = operation.read();
99
+ const state = this.#requireState(key);
100
+ state.stored = stored;
101
+ return stored;
102
+ }
103
+ effectiveValue(key) {
104
+ return this.#requireState(key).effective;
105
+ }
106
+ limitationReason(key) {
107
+ const definition = PI_SETTING_EFFECTS[key];
108
+ if (this.#productMode === "bare" && definition.hiddenInBare === true)
109
+ return "setting is not available in the active product mode";
110
+ const inconsistent = this.#requireState(key).inconsistentReason;
111
+ if (inconsistent !== null)
112
+ return inconsistent;
113
+ if (!this.#handlers.has(key))
114
+ return `${definition.owner} effect is not bound for ${definition.application} application`;
115
+ return null;
116
+ }
117
+ available(key) {
118
+ return this.limitationReason(key) === null;
119
+ }
120
+ validate(key, value) {
121
+ this.#requireOperation(key).validate(value);
122
+ }
123
+ async apply(key, value) {
124
+ const operation = this.#requireOperation(key);
125
+ operation.validate(value);
126
+ const definition = PI_SETTING_EFFECTS[key];
127
+ const previousStored = operation.read();
128
+ const state = this.#requireState(key);
129
+ const previousEffective = state.effective;
130
+ const limitationReason = this.limitationReason(key);
131
+ if (limitationReason !== null) {
132
+ return outcome("unavailable", definition.application, previousStored, previousEffective, null, limitationReason);
133
+ }
134
+ const handler = this.#handlers.get(key);
135
+ if (definition.application !== "live") {
136
+ try {
137
+ operation.write(value);
138
+ await this.flush();
139
+ state.stored = value;
140
+ return outcome("deferred", definition.application, value, previousEffective, null, null);
141
+ }
142
+ catch (error) {
143
+ const failure = await this.#restorePersistence(operation, previousStored, error);
144
+ state.stored = operation.read();
145
+ return outcome("failed", definition.application, state.stored, previousEffective, failure, null);
146
+ }
147
+ }
148
+ try {
149
+ await handler.apply(value);
150
+ }
151
+ catch (error) {
152
+ return outcome("failed", definition.application, previousStored, previousEffective, describe(error), null);
153
+ }
154
+ state.effective = value;
155
+ try {
156
+ operation.write(value);
157
+ await this.flush();
158
+ state.stored = value;
159
+ state.inconsistentReason = null;
160
+ return outcome("applied", definition.application, value, value, null, null);
161
+ }
162
+ catch (error) {
163
+ const persistenceFailure = await this.#restorePersistence(operation, previousStored, error);
164
+ try {
165
+ await handler.apply(previousEffective);
166
+ state.effective = previousEffective;
167
+ state.stored = operation.read();
168
+ return outcome("failed", definition.application, state.stored, previousEffective, persistenceFailure, null);
169
+ }
170
+ catch (rollbackError) {
171
+ state.stored = operation.read();
172
+ state.inconsistentReason = `rollback failed after ${persistenceFailure}: ${describe(rollbackError)}`;
173
+ return outcome("failed", definition.application, state.stored, state.effective, state.inconsistentReason, state.inconsistentReason);
174
+ }
175
+ }
176
+ }
177
+ async flush() {
178
+ await this.#flushStorage();
179
+ const errors = this.#drainErrors?.() ?? [];
180
+ if (errors.length > 0)
181
+ throw new Error(errors.map(value => value.error.message).join("; "));
182
+ }
183
+ async rollback(key, value) {
184
+ const handler = this.#handlers.get(key);
185
+ if (handler === undefined)
186
+ throw new Error(`cannot roll back unbound setting: ${key}`);
187
+ await handler.apply(value);
188
+ this.#requireState(key).effective = value;
189
+ }
190
+ async #restorePersistence(operation, previous, cause) {
191
+ const original = describe(cause);
192
+ try {
193
+ operation.write(previous);
194
+ await this.flush();
195
+ return original;
196
+ }
197
+ catch (rollbackError) {
198
+ return `${original}; persistence rollback failed: ${describe(rollbackError)}`;
199
+ }
200
+ }
201
+ #requireOperation(key) {
202
+ const operation = this.#operations.get(key);
203
+ if (operation === undefined)
204
+ throw new Error(`setting is unavailable: ${key}`);
205
+ return operation;
206
+ }
207
+ #requireState(key) {
208
+ const state = this.#state.get(key);
209
+ if (state === undefined)
210
+ throw new Error(`setting state is unavailable: ${key}`);
211
+ return state;
212
+ }
213
+ }
214
+ export function settingsEffectInventoryDrift(presented, reviewed = Object.keys(PI_SETTING_EFFECTS)) {
215
+ const reviewedSet = new Set(reviewed);
216
+ const presentedSet = new Set(presented);
217
+ const counts = new Map();
218
+ for (const key of reviewed)
219
+ counts.set(key, (counts.get(key) ?? 0) + 1);
220
+ return {
221
+ unmapped: presented.filter(key => !reviewedSet.has(key)),
222
+ stale: reviewed.filter(key => !presentedSet.has(key)),
223
+ duplicated: [...counts].filter(([, count]) => count > 1).map(([key]) => key),
224
+ };
225
+ }
226
+ export function settingsVisualInventoryViolations(presented, reviewed = PI_SETTING_EFFECTS) {
227
+ const violations = [];
228
+ for (const candidate of presented) {
229
+ const key = candidate;
230
+ const definition = reviewed[key];
231
+ if (definition === undefined) {
232
+ violations.push(`${candidate}: missing visual classification`);
233
+ continue;
234
+ }
235
+ const visual = definition.visual;
236
+ if (!visual || visual.pinnedSurface.trim().length === 0)
237
+ violations.push(`${candidate}: missing pinned visual source`);
238
+ if (!visual || visual.evidence.trim().length === 0)
239
+ violations.push(`${candidate}: missing independent visual evidence`);
240
+ if (definition.hiddenInBare === true && visual?.class !== "hidden")
241
+ violations.push(`${candidate}: hidden setting declares a visible frame`);
242
+ if (definition.hiddenInBare !== true && visual?.class === "hidden")
243
+ violations.push(`${candidate}: visible setting declares hidden evidence`);
244
+ }
245
+ return violations;
246
+ }
247
+ function outcome(status, application, storedValue, effectiveValue, failure, limitationReason) {
248
+ return { status, application, storedValue, effectiveValue, failure, limitationReason };
249
+ }
250
+ function describe(error) {
251
+ return error instanceof Error ? error.message : String(error);
252
+ }
253
+ /** The choice that clears a per-model override; the engine then applies its global default. */
254
+ export const MODEL_THINKING_DEFAULT = "default";
255
+ export const AUTOMATIC_THEME = "automatic";
256
+ const LIGHT_APPEARANCE_THEME = "light";
257
+ const DARK_APPEARANCE_THEME = "dark";
258
+ const THEME_KEY = "theme";
259
+ const MODEL_THINKING_KEY = "modelThinkingLevels";
260
+ export function parseAutomaticTheme(stored) {
261
+ const at = stored.indexOf("/");
262
+ if (at < 0 || stored.indexOf("/", at + 1) >= 0)
263
+ return null;
264
+ const light = stored.slice(0, at).trim();
265
+ const dark = stored.slice(at + 1).trim();
266
+ return light.length > 0 && dark.length > 0 ? { light, dark } : null;
267
+ }
268
+ const PRESENTATION = loadPiSettingsMetadata();
269
+ /** The keys the pinned engine presents, in the engine's order, read from the generated metadata. */
270
+ export const EXPOSED_SETTING_KEYS = PRESENTATION.presented;
271
+ export function settingsInventoryDrift(presented, mapped) {
272
+ const has = new Set(mapped);
273
+ const engine = new Set(presented);
274
+ return {
275
+ unmapped: presented.filter(key => !has.has(key)),
276
+ stale: mapped.filter(key => !engine.has(key)),
277
+ };
278
+ }
279
+ function offered(key) {
280
+ return PRESENTATION.settings[key]?.values ?? [];
281
+ }
282
+ function offeredNumbers(key) {
283
+ return offered(key).map(value => Number.parseInt(value, 10)).filter(value => Number.isSafeInteger(value));
284
+ }
285
+ /**
286
+ * The one Pi settings boundary the owned UI reads and writes through: the agent settings
287
+ * port over the pinned settings manager, backed by the transactional coordinator. The
288
+ * generated metadata owns presentation while the reviewed effect table owns timing,
289
+ * availability, owner, and active behavior.
290
+ */
291
+ export class PiSettingsBridge {
292
+ capabilities = { write: true, flush: true };
293
+ #operations;
294
+ #providers;
295
+ #coordinator;
296
+ settings;
297
+ constructor(settings, providers = {}) {
298
+ this.settings = settings;
299
+ this.#providers = providers;
300
+ const mapped = operations(settings, providers);
301
+ this.#operations = new Map(mapped.map(operation => [operation.key, operation]));
302
+ const presentationDrift = settingsInventoryDrift(EXPOSED_SETTING_KEYS, mapped.map(operation => operation.key));
303
+ const effectDrift = settingsEffectInventoryDrift(EXPOSED_SETTING_KEYS);
304
+ if (presentationDrift.unmapped.length > 0 || presentationDrift.stale.length > 0
305
+ || effectDrift.unmapped.length > 0 || effectDrift.stale.length > 0 || effectDrift.duplicated.length > 0) {
306
+ throw new Error([
307
+ `unmapped operations: ${presentationDrift.unmapped.join(", ")}`,
308
+ `stale operations: ${presentationDrift.stale.join(", ")}`,
309
+ `unmapped effects: ${effectDrift.unmapped.join(", ")}`,
310
+ `stale effects: ${effectDrift.stale.join(", ")}`,
311
+ `duplicated effects: ${effectDrift.duplicated.join(", ")}`,
312
+ ].join("; "));
313
+ }
314
+ this.#coordinator = new PiSettingsCoordinator(mapped, {
315
+ productMode: providers.productMode ?? "bare",
316
+ flush: () => settings.flush(),
317
+ drainErrors: () => settings.drainErrors(),
318
+ });
319
+ }
320
+ bindOwner(owner, handlers) {
321
+ return this.#coordinator.bindOwner(owner, handlers);
322
+ }
323
+ unbindOwner(owner) {
324
+ this.#coordinator.unbindOwner(owner);
325
+ }
326
+ async listSettings() {
327
+ const rank = (key) => {
328
+ const at = PRESENTATION.order.indexOf(key);
329
+ return at < 0 ? PRESENTATION.order.length : at;
330
+ };
331
+ return [...this.#operations.values()]
332
+ .filter(operation => this.#coordinator.available(operation.key))
333
+ .map(operation => {
334
+ const key = operation.key;
335
+ const wording = PRESENTATION.settings[key];
336
+ const flags = PRESENTATION.dialogs[key];
337
+ const bounds = PRESENTATION.bounds[key];
338
+ const descriptor = {
339
+ ...operation.descriptor,
340
+ application: PI_SETTING_EFFECTS[key].application,
341
+ owner: PI_SETTING_EFFECTS[key].owner,
342
+ available: true,
343
+ limitationReason: null,
344
+ writable: true,
345
+ storedValue: this.#coordinator.storedValue(key),
346
+ effectiveValue: this.#coordinator.effectiveValue(key),
347
+ ...(bounds === undefined ? {} : bounds),
348
+ ...(wording === undefined ? {} : { label: wording.label, description: wording.description }),
349
+ ...(flags === undefined ? {} : { flags }),
350
+ };
351
+ return this.#resolved(descriptor);
352
+ })
353
+ .sort((left, right) => rank(left.key) - rank(right.key));
354
+ }
355
+ #resolved(descriptor) {
356
+ if (descriptor.key === THEME_KEY) {
357
+ const themes = this.#themes();
358
+ if (themes.length === 0)
359
+ return descriptor;
360
+ return { ...descriptor, valueType: "enum", resolvedWhenRead: true, choices: [AUTOMATIC_THEME, ...themes] };
361
+ }
362
+ if (descriptor.key === MODEL_THINKING_KEY) {
363
+ const models = this.#providers.models?.() ?? [];
364
+ if (models.length === 0)
365
+ return descriptor;
366
+ // Rationale: the rows are the models the running engine offers, each with the levels it supports.
367
+ return { ...descriptor, resolvedWhenRead: true, flags: models.map(model => ({
368
+ key: model.key, label: model.label, description: model.description, fallback: MODEL_THINKING_DEFAULT, choices: [MODEL_THINKING_DEFAULT, ...model.levels],
369
+ })) };
370
+ }
371
+ return descriptor;
372
+ }
373
+ #themes() {
374
+ return this.#providers.themes?.() ?? [];
375
+ }
376
+ async readSetting(key) {
377
+ return isPiSettingKey(key) && this.#operations.has(key) ? this.#coordinator.storedValue(key) : undefined;
378
+ }
379
+ async writeSetting(key, value) {
380
+ if (!isPiSettingKey(key) || !this.#operations.has(key))
381
+ throw new Error(`setting is unavailable: ${key}`);
382
+ return await this.#coordinator.apply(key, value);
383
+ }
384
+ /** Shared route used by the pinned selector and owned settings surface. */
385
+ async writeSettingNow(key, value) {
386
+ return await this.writeSetting(key, value);
387
+ }
388
+ async flush() {
389
+ await this.#coordinator.flush();
390
+ }
391
+ }
392
+ function operations(settings, providers) {
393
+ const themes = () => providers.themes?.() ?? [];
394
+ return [
395
+ bool("autoCompact", () => settings.getCompactionEnabled(), value => settings.setCompactionEnabled(value)),
396
+ bool("showImages", () => settings.getShowImages(), value => settings.setShowImages(value)),
397
+ numberSetting("imageWidthCells", () => settings.getImageWidthCells(), value => settings.setImageWidthCells(value), 1),
398
+ bool("autoResizeImages", () => settings.getImageAutoResize(), value => settings.setImageAutoResize(value)),
399
+ bool("blockImages", () => settings.getBlockImages(), value => settings.setBlockImages(value)),
400
+ bool("enableSkillCommands", () => settings.getEnableSkillCommands(), value => settings.setEnableSkillCommands(value)),
401
+ choice("steeringMode", offered("steeringMode"), () => settings.getSteeringMode(), value => settings.setSteeringMode(value)),
402
+ choice("followUpMode", offered("followUpMode"), () => settings.getFollowUpMode(), value => settings.setFollowUpMode(value)),
403
+ choice("transport", offered("transport"), () => settings.getTransport(), value => settings.setTransport(value)),
404
+ numberSetting("httpIdleTimeoutMs", () => settings.getHttpIdleTimeoutMs(), value => settings.setHttpIdleTimeoutMs(value), 0),
405
+ choice("cacheWarmingMode", offered("cacheWarmingMode"), () => settings.getCacheWarmingMode(), value => settings.setCacheWarmingMode(value)),
406
+ modelThinkingLevels(settings),
407
+ themeSetting(settings, themes),
408
+ bool("hideThinkingBlock", () => settings.getHideThinkingBlock(), value => settings.setHideThinkingBlock(value)),
409
+ choice("mermaidRenderingMode", offered("mermaidRenderingMode"), () => settings.getMermaidRenderingMode(), value => settings.setMermaidRenderingMode(value)),
410
+ bool("showCacheMissNotices", () => settings.getShowCacheMissNotices(), value => settings.setShowCacheMissNotices(value)),
411
+ bool("collapseChangelog", () => settings.getCollapseChangelog(), value => settings.setCollapseChangelog(value)),
412
+ bool("enableInstallTelemetry", () => settings.getEnableInstallTelemetry(), value => settings.setEnableInstallTelemetry(value)),
413
+ bool("quietStartup", () => settings.getQuietStartup(), value => settings.setQuietStartup(value)),
414
+ choice("defaultProjectTrust", offered("defaultProjectTrust"), () => settings.getDefaultProjectTrust(), value => settings.setDefaultProjectTrust(value)),
415
+ choice("doubleEscapeAction", offered("doubleEscapeAction"), () => settings.getDoubleEscapeAction(), value => settings.setDoubleEscapeAction(value)),
416
+ choice("treeFilterMode", offered("treeFilterMode"), () => settings.getTreeFilterMode(), value => settings.setTreeFilterMode(value)),
417
+ bool("showHardwareCursor", () => settings.getShowHardwareCursor(), value => settings.setShowHardwareCursor(value)),
418
+ numberSetting("editorPaddingX", () => settings.getEditorPaddingX(), value => settings.setEditorPaddingX(value), 0),
419
+ choice("outputPad", offeredNumbers("outputPad"), () => settings.getOutputPad(), value => settings.setOutputPad(value)),
420
+ numberSetting("autocompleteMaxVisible", () => settings.getAutocompleteMaxVisible(), value => settings.setAutocompleteMaxVisible(value), 1),
421
+ bool("clearOnShrink", () => settings.getClearOnShrink(), value => settings.setClearOnShrink(value)),
422
+ bool("showTerminalProgress", () => settings.getShowTerminalProgress(), value => settings.setShowTerminalProgress(value)),
423
+ choice("tuiMode", offered("tuiMode"), () => settings.getTuiMode(), value => settings.setTuiMode(value)),
424
+ choice("fullscreenExitOutput", offered("fullscreenExitOutput"), () => settings.getFullscreenExitOutput(), value => settings.setFullscreenExitOutput(value)),
425
+ choice("fullscreenScrollbar", offered("fullscreenScrollbar"), () => settings.getFullscreenScrollbar(), value => settings.setFullscreenScrollbar(value)),
426
+ bool("fullscreenCopyOnSelect", () => settings.getFullscreenCopyOnSelect(), value => settings.setFullscreenCopyOnSelect(value)),
427
+ jsonObject("warnings", () => settings.getWarnings(), value => settings.setWarnings(value)),
428
+ ];
429
+ }
430
+ const THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
431
+ /**
432
+ * Per-model thinking overrides as one record keyed `provider/modelId`. Writing a record removes the
433
+ * overrides it no longer names and sets the ones it does, so the stored set equals the written set.
434
+ */
435
+ function modelThinkingLevels(settings) {
436
+ // Compatibility: an in-memory manager with no overrides reports nothing rather than an empty record.
437
+ const read = () => ({ ...(settings.getAllModelThinkingLevels() ?? {}) });
438
+ return operation("modelThinkingLevels", "json", read, value => {
439
+ if (typeof value !== "object" || value === null || Array.isArray(value))
440
+ invalid("modelThinkingLevels");
441
+ for (const [key, level] of Object.entries(value)) {
442
+ if (!key.includes("/") || typeof level !== "string" || !THINKING_LEVELS.includes(level))
443
+ invalid("modelThinkingLevels");
444
+ }
445
+ }, value => {
446
+ const next = value;
447
+ for (const key of Object.keys(settings.getAllModelThinkingLevels() ?? {})) {
448
+ if (!(key in next))
449
+ settings.removeModelThinkingLevel(...splitModelKey(key));
450
+ }
451
+ for (const [key, level] of Object.entries(next))
452
+ settings.setModelThinkingLevel(...splitModelKey(key), level);
453
+ });
454
+ }
455
+ /** The engine keys overrides as `provider/modelId`; the model id may itself contain slashes. */
456
+ export function splitModelKey(key) {
457
+ const at = key.indexOf("/");
458
+ return [key.slice(0, at), key.slice(at + 1)];
459
+ }
460
+ function bool(key, read, write) {
461
+ return operation(key, "boolean", read, value => { if (typeof value !== "boolean")
462
+ invalid(key); }, value => write(value));
463
+ }
464
+ function numberSetting(key, read, write, minimum) {
465
+ const declared = PRESENTATION.bounds[key];
466
+ const low = declared?.minimum ?? minimum;
467
+ const high = declared?.maximum;
468
+ return operation(key, "number", read, value => {
469
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < low || (high !== undefined && value > high))
470
+ invalid(key);
471
+ }, value => write(value));
472
+ }
473
+ function jsonObject(key, read, write) {
474
+ const boundedRead = () => Object.fromEntries(Object.entries(read()).filter((entry) => typeof entry[1] === "boolean"));
475
+ return operation(key, "json", boundedRead, value => {
476
+ if (!value || typeof value !== "object" || Array.isArray(value))
477
+ invalid(key);
478
+ }, write);
479
+ }
480
+ function choice(key, choices, read, write) {
481
+ return {
482
+ ...operation(key, "enum", read, value => { if (!choices.includes(value))
483
+ invalid(key); }, write),
484
+ descriptor: { key, valueType: "enum", choices },
485
+ };
486
+ }
487
+ function themeSetting(settings, themes) {
488
+ const raw = () => settings.getThemeSetting() ?? "default";
489
+ const read = () => parseAutomaticTheme(raw()) === null ? raw() : AUTOMATIC_THEME;
490
+ return operation(THEME_KEY, "string", read, value => {
491
+ if (typeof value !== "string" || value.length === 0)
492
+ invalid(THEME_KEY);
493
+ }, value => {
494
+ const selected = value;
495
+ if (selected !== AUTOMATIC_THEME) {
496
+ settings.setTheme(selected);
497
+ return;
498
+ }
499
+ if (parseAutomaticTheme(raw()) !== null)
500
+ return;
501
+ const installed = themes();
502
+ const current = raw();
503
+ const light = installed.includes(LIGHT_APPEARANCE_THEME) ? LIGHT_APPEARANCE_THEME : current;
504
+ const dark = installed.includes(DARK_APPEARANCE_THEME) ? DARK_APPEARANCE_THEME : current;
505
+ settings.setTheme(`${light}/${dark}`);
506
+ });
507
+ }
508
+ function operation(key, valueType, read, validate, write) {
509
+ return { key, descriptor: { key, valueType }, read, validate, write };
510
+ }
511
+ function isPiSettingKey(key) {
512
+ return Object.hasOwn(PI_SETTING_EFFECTS, key);
513
+ }
514
+ function invalid(key) {
515
+ throw new TypeError(`setting value is invalid: ${key}`);
516
+ }
@@ -0,0 +1,31 @@
1
+ import type { AgentSettingFlag } from "../../../contracts/agent-engine/index.js";
2
+ export interface PiSettingPresentation {
3
+ readonly label: string;
4
+ readonly description: string;
5
+ readonly opensDialog: boolean;
6
+ readonly values?: readonly string[];
7
+ }
8
+ export interface PiSettingBounds {
9
+ readonly minimum: number;
10
+ readonly maximum?: number;
11
+ }
12
+ /**
13
+ * The pinned engine's own presentation of its settings: which keys it presents, in which
14
+ * order, with which wording, dialog parts, and numeric bounds.
15
+ */
16
+ export interface PiSettingsMetadata {
17
+ readonly presented: readonly string[];
18
+ readonly order: readonly string[];
19
+ readonly settings: Readonly<Record<string, PiSettingPresentation>>;
20
+ readonly dialogs: Readonly<Record<string, readonly AgentSettingFlag[]>>;
21
+ readonly bounds: Readonly<Record<string, PiSettingBounds>>;
22
+ }
23
+ /** File name of the metadata beside this module, written by `scripts/pi/build-pi-settings-metadata.mjs`. */
24
+ export declare const PI_SETTINGS_METADATA_FILE = "pi-settings-metadata.json";
25
+ /**
26
+ * Reads the generated metadata beside this module. It is produced from the pinned engine at
27
+ * build time rather than committed, so what A1 presents cannot drift from what the engine
28
+ * presents; a source tree that has not been built reports the missing file by name.
29
+ */
30
+ export declare function loadPiSettingsMetadata(): PiSettingsMetadata;
31
+ export declare function assertPiSettingsMetadata(value: unknown): PiSettingsMetadata;
@@ -0,0 +1,67 @@
1
+ import { readFileSync } from "node:fs";
2
+ /** File name of the metadata beside this module, written by `scripts/pi/build-pi-settings-metadata.mjs`. */
3
+ export const PI_SETTINGS_METADATA_FILE = "pi-settings-metadata.json";
4
+ let loaded;
5
+ /**
6
+ * Reads the generated metadata beside this module. It is produced from the pinned engine at
7
+ * build time rather than committed, so what A1 presents cannot drift from what the engine
8
+ * presents; a source tree that has not been built reports the missing file by name.
9
+ */
10
+ export function loadPiSettingsMetadata() {
11
+ if (loaded !== undefined)
12
+ return loaded;
13
+ const url = new URL(`./${PI_SETTINGS_METADATA_FILE}`, import.meta.url);
14
+ let raw;
15
+ try {
16
+ raw = readFileSync(url, "utf8");
17
+ }
18
+ catch (error) {
19
+ throw new Error(`Pi settings metadata is not generated at ${url.href}; run npm run build (${describe(error)})`);
20
+ }
21
+ loaded = assertPiSettingsMetadata(JSON.parse(raw));
22
+ return loaded;
23
+ }
24
+ export function assertPiSettingsMetadata(value) {
25
+ if (!isRecord(value))
26
+ throw new TypeError("Pi settings metadata is not an object");
27
+ const { presented, order, settings, dialogs, bounds } = value;
28
+ if (!isStringList(presented) || !isStringList(order))
29
+ throw new TypeError("Pi settings metadata lists are invalid");
30
+ if (!isRecord(settings) || !isRecord(dialogs) || !isRecord(bounds))
31
+ throw new TypeError("Pi settings metadata tables are invalid");
32
+ return {
33
+ presented,
34
+ order,
35
+ settings: checkedTable(settings, isPresentation, "presentation"),
36
+ dialogs: checkedTable(dialogs, isFlagList, "dialog"),
37
+ bounds: checkedTable(bounds, isBounds, "bound"),
38
+ };
39
+ }
40
+ function checkedTable(table, guard, what) {
41
+ const checked = {};
42
+ for (const [key, entry] of Object.entries(table)) {
43
+ if (!guard(entry))
44
+ throw new TypeError(`Pi settings metadata ${what} is invalid: ${key}`);
45
+ checked[key] = entry;
46
+ }
47
+ return checked;
48
+ }
49
+ function isPresentation(entry) {
50
+ return isRecord(entry) && typeof entry.label === "string" && typeof entry.description === "string"
51
+ && typeof entry.opensDialog === "boolean" && (entry.values === undefined || isStringList(entry.values));
52
+ }
53
+ function isFlagList(entry) {
54
+ return Array.isArray(entry) && entry.every(flag => isRecord(flag) && typeof flag.key === "string" && typeof flag.label === "string");
55
+ }
56
+ function isBounds(entry) {
57
+ return isRecord(entry) && typeof entry.minimum === "number" && (entry.maximum === undefined || typeof entry.maximum === "number");
58
+ }
59
+ function isStringList(value) {
60
+ return Array.isArray(value) && value.every(item => typeof item === "string");
61
+ }
62
+ function isRecord(value) {
63
+ return typeof value === "object" && value !== null && !Array.isArray(value);
64
+ }
65
+ function describe(error) {
66
+ return error instanceof Error ? error.message : String(error);
67
+ }
@@ -0,0 +1,42 @@
1
+ import { PiSettingsBridge } from "./settings-bridge.js";
2
+ import type { PiSettingOwnerHandlers } from "./settings-bridge.js";
3
+ import type { AgentSession, AgentSessionRuntime } from "../startup-public.js";
4
+ import type { OwnedUiThinkingLevel } from "../../../contracts/owned-ui/index.js";
5
+ import type { AgentSettingOwner } from "../../../contracts/agent-engine/index.js";
6
+ import { type PiPinnedSettingsCallback, type PiPinnedSettingsSnapshot, type PiWorkflowResult } from "./workflows.js";
7
+ export interface PiEngineSettingsOptions {
8
+ /** Themes installed on this machine, when the component adapter that owns the theme unit supplies them. */
9
+ readonly availableThemes: (() => readonly string[]) | null;
10
+ readonly productMode: "bare" | "comparison";
11
+ }
12
+ export interface PiEngineSettingsPorts {
13
+ runtime(): AgentSessionRuntime | undefined;
14
+ /** The bound session, or a thrown "not running" error before one exists. */
15
+ requireSession(): AgentSession;
16
+ /** The session's thinking level was written through the settings port; the adapter mirrors and publishes it. */
17
+ thinkingLevelChanged(level: OwnedUiThinkingLevel): void;
18
+ emitView(): void;
19
+ }
20
+ /**
21
+ * Pinned Pi's settings as the owned UI reads and writes them: the lazily built settings port
22
+ * over the runtime's settings manager with its owner bindings, the pinned settings snapshot the
23
+ * settings dialog renders, and the pinned callback protocol that applies one setting and words
24
+ * its result. The runtime and session are reached through ports; the adapter publishes views.
25
+ */
26
+ export declare class PiEngineSettings {
27
+ #private;
28
+ constructor(options: PiEngineSettingsOptions, ports: PiEngineSettingsPorts);
29
+ /** Which settings surface this adapter serves; hidden-in-bare effects are unbindable in bare mode. */
30
+ get productMode(): "bare" | "comparison";
31
+ /**
32
+ * The theme the engine is configured with, in the engine's own grammar: a
33
+ * theme's name, or a `light/dark` pair meaning "follow the terminal".
34
+ */
35
+ configuredTheme(): string | undefined;
36
+ /** Settings port for the live runtime, or null before the runtime is available. */
37
+ settingsPort(): PiSettingsBridge | null;
38
+ bindSettingsOwner(owner: AgentSettingOwner, handlers: PiSettingOwnerHandlers): () => void;
39
+ pinnedSettingsSnapshot(): PiPinnedSettingsSnapshot;
40
+ applyPinnedSettingValue(callback: PiPinnedSettingsCallback, value: unknown): Promise<PiWorkflowResult>;
41
+ applyPinnedSetting(selection: string, selectedValue?: unknown, hasSelectedValue?: boolean): Promise<PiWorkflowResult>;
42
+ }