@timurproko/a1 0.1.8-dev.472 → 0.1.8-dev.508

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/bin/cli.js +4 -5
  2. package/bin/guardian.js +5 -1
  3. package/bin/module-identity.js +53 -98
  4. package/bin/module-resolver.js +138 -0
  5. package/bin/pinned-pi-public.js +25 -6
  6. package/bin/ui.js +7 -2
  7. package/bin/update-recovery.js +76 -7
  8. package/bin/warmup.js +3 -0
  9. package/dist/{integrations/pi/session-ui → app/session-shell}/clipboard-diagnostics.d.ts +1 -1
  10. package/dist/{integrations/pi/session-ui → app/session-shell}/clipboard-image.js +1 -1
  11. package/dist/app/session-shell/helper-pool.d.ts +33 -0
  12. package/dist/app/session-shell/helper-pool.js +98 -0
  13. package/dist/{integrations/pi/session-ui → app/session-shell}/image-preparation-client.d.ts +1 -1
  14. package/dist/{integrations/pi/session-ui → app/session-shell}/image-preparation-client.js +1 -1
  15. package/dist/{integrations/pi/session-ui → app/session-shell}/image-preparation.js +1 -1
  16. package/dist/{integrations/pi/session-ui → app/session-shell}/image-source.js +1 -1
  17. package/dist/{integrations/pi/session-ui → app/session-shell}/image-worker.js +1 -1
  18. package/dist/app/session-shell/index.d.ts +7 -0
  19. package/dist/app/session-shell/index.js +4 -0
  20. package/dist/app/session-shell/paste-executor.d.ts +18 -0
  21. package/dist/{integrations/pi/session-ui → app/session-shell}/paste-executor.js +50 -29
  22. package/dist/{integrations/pi/session-ui → app/session-shell}/paste-helper.js +1 -1
  23. package/dist/app/session-shell/paste-preparation-client.d.ts +31 -0
  24. package/dist/{integrations/pi/session-ui → app/session-shell}/paste-preparation-client.js +19 -8
  25. package/dist/{integrations/pi/session-ui → app/session-shell}/paste-protocol.d.ts +1 -1
  26. package/dist/{integrations/pi/session-ui → app/session-shell}/paste-protocol.js +1 -1
  27. package/dist/app/session-shell/paste-text-preparation.d.ts +6 -0
  28. package/dist/{integrations/pi/session-ui/paste-text-preparation.d.ts → app/session-shell/paste-types.d.ts} +1 -4
  29. package/dist/{integrations/pi/session-ui → app/session-shell}/path-chip-presentation.d.ts +1 -1
  30. package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-chips.d.ts +5 -1
  31. package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-chips.js +6 -2
  32. package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-history-controller.d.ts +2 -2
  33. package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-history-controller.js +2 -2
  34. package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-suggestion-controller.d.ts +1 -1
  35. package/dist/{integrations/pi/session-ui → app/session-shell}/prompt-suggestion-controller.js +2 -2
  36. package/dist/{integrations/pi/session-ui → app/session-shell}/quit-outro.js +1 -1
  37. package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-coordinator.d.ts +1 -1
  38. package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-coordinator.js +3 -5
  39. package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-helper.js +1 -1
  40. package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-protocol.d.ts +1 -1
  41. package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-transport.d.ts +10 -2
  42. package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-transport.js +45 -19
  43. package/dist/{integrations/pi/session-ui → app/session-shell}/session-shell-root.d.ts +75 -53
  44. package/dist/{integrations/pi/session-ui → app/session-shell}/session-shell-root.js +30 -20
  45. package/dist/{integrations/pi/session-ui → app/session-shell}/session-shell.d.ts +9 -8
  46. package/dist/{integrations/pi/session-ui → app/session-shell}/session-shell.js +108 -67
  47. package/dist/{integrations/pi/session-ui → app/session-shell}/session-viewport-controller.d.ts +5 -5
  48. package/dist/{integrations/pi/session-ui → app/session-shell}/session-viewport-controller.js +5 -5
  49. package/dist/{integrations/pi/session-ui → app/session-shell}/system-clipboard.d.ts +1 -1
  50. package/dist/{integrations/pi/session-ui → app/session-shell}/system-clipboard.js +1 -1
  51. package/dist/cli/index.d.ts +8 -5
  52. package/dist/cli/index.js +4 -5
  53. package/dist/composition/index.d.ts +0 -1
  54. package/dist/composition/index.js +0 -1
  55. package/dist/composition/owned-ui.d.ts +2 -2
  56. package/dist/composition/owned-ui.js +35 -36
  57. package/dist/composition/settings-route-host.d.ts +2 -2
  58. package/dist/contracts/agent-engine/domain.d.ts +6 -1
  59. package/dist/contracts/agent-engine/index.d.ts +11 -8
  60. package/dist/contracts/agent-engine/index.js +6 -8
  61. package/dist/contracts/owned-ui/extension-ui.d.ts +8 -0
  62. package/dist/contracts/owned-ui/index.d.ts +12 -8
  63. package/dist/contracts/owned-ui/index.js +8 -8
  64. package/dist/features/launch/index.d.ts +12 -6
  65. package/dist/features/launch/index.js +6 -6
  66. package/dist/features/launch/intent.d.ts +5 -5
  67. package/dist/features/launch/intent.js +2 -2
  68. package/dist/features/owned-ui/index.d.ts +6 -6
  69. package/dist/features/owned-ui/index.js +4 -6
  70. package/dist/features/owned-ui/run.d.ts +2 -2
  71. package/dist/features/owned-ui/settings-app.d.ts +2 -2
  72. package/dist/features/owned-ui/settings-app.js +18 -5
  73. package/dist/features/prompt-history/service.d.ts +1 -1
  74. package/dist/features/prompt-history/service.js +1 -1
  75. package/dist/features/prompt-history/store.js +3 -7
  76. package/dist/features/prompt-suggestions/diagnostics.js +1 -1
  77. package/dist/features/prompt-suggestions/index.d.ts +2 -1
  78. package/dist/features/prompt-suggestions/index.js +1 -1
  79. package/dist/foundation/launch-guardian/index.d.ts +2 -1
  80. package/dist/foundation/launch-guardian/index.js +1 -1
  81. package/dist/foundation/lifecycle/index.d.ts +11 -6
  82. package/dist/foundation/lifecycle/index.js +5 -6
  83. package/dist/foundation/process-containment/index.d.ts +8 -6
  84. package/dist/foundation/process-containment/index.js +6 -6
  85. package/dist/foundation/process-containment/native-guardian-containment.js +3 -3
  86. package/dist/foundation/protocol/index.d.ts +3 -2
  87. package/dist/foundation/protocol/index.js +2 -2
  88. package/dist/foundation/release/bootstrap.d.ts +0 -4
  89. package/dist/foundation/release/bootstrap.js +1 -82
  90. package/dist/foundation/release/dependency-layer.d.ts +2 -5
  91. package/dist/foundation/release/endpoints.d.ts +4 -0
  92. package/dist/foundation/release/endpoints.js +86 -2
  93. package/dist/foundation/release/index.d.ts +30 -16
  94. package/dist/foundation/release/index.js +16 -16
  95. package/dist/foundation/release/release.d.ts +1 -1
  96. package/dist/foundation/release/types.d.ts +11 -0
  97. package/dist/foundation/release/types.js +1 -0
  98. package/dist/foundation/release/update-transaction.d.ts +1 -1
  99. package/dist/foundation/release/update.d.ts +2 -1
  100. package/dist/foundation/release/update.js +3 -18
  101. package/dist/foundation/startup/index.d.ts +4 -2
  102. package/dist/foundation/startup/index.js +2 -2
  103. package/dist/foundation/startup/startup-descriptor.js +2 -2
  104. package/dist/foundation/storage/control-store.d.ts +1 -45
  105. package/dist/foundation/storage/control-store.js +54 -277
  106. package/dist/foundation/storage/index.d.ts +1 -1
  107. package/dist/foundation/storage/index.js +1 -1
  108. package/dist/foundation/supervision/index.d.ts +2 -2
  109. package/dist/foundation/supervision/index.js +2 -2
  110. package/dist/foundation/supervision/server.d.ts +5 -10
  111. package/dist/foundation/supervision/server.js +7 -7
  112. package/dist/foundation/terminal-cleanup/index.d.ts +3 -2
  113. package/dist/foundation/terminal-cleanup/index.js +2 -2
  114. package/dist/integrations/pi/components/editor-interaction.d.ts +1 -1
  115. package/dist/integrations/pi/components/history-editor-loader.d.ts +1 -1
  116. package/dist/integrations/pi/components/index.d.ts +20 -13
  117. package/dist/integrations/pi/components/index.js +12 -13
  118. package/dist/integrations/pi/components/owned-editor-ux.js +5 -8
  119. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +7 -5
  120. package/dist/integrations/pi/components/resources/builtin-themes.js +7 -5
  121. package/dist/integrations/pi/components/shell-editor-autocomplete.js +1 -1
  122. package/dist/integrations/pi/components/shell-extension-ui.js +2 -1
  123. package/dist/integrations/pi/components/shell-footer-status.js +1 -1
  124. package/dist/integrations/pi/components/shell-presenters-info.d.ts +1 -1
  125. package/dist/integrations/pi/components/shell-presenters-info.js +1 -1
  126. package/dist/integrations/pi/components/shell-presenters-transcript.js +1 -1
  127. package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +9 -3
  128. package/dist/integrations/pi/components/shell-selectors-dialogs.js +9 -6
  129. package/dist/integrations/pi/components/shell-shared-facade.d.ts +3 -1
  130. package/dist/integrations/pi/components/shell-shared-facade.js +4 -2
  131. package/dist/integrations/pi/components/submitted-prompt-adapter.d.ts +1 -1
  132. package/dist/integrations/pi/components/submitted-prompt-adapter.js +1 -1
  133. package/dist/integrations/pi/components/tool-image-presentation.d.ts +1 -1
  134. package/dist/integrations/pi/components/tool-image-presentation.js +4 -7
  135. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +36 -22
  136. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +43 -7
  137. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +2 -2
  138. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +6 -3
  139. package/dist/integrations/pi/components/upstream/components/daxnuts.d.ts +8 -1
  140. package/dist/integrations/pi/components/upstream/components/daxnuts.js +7 -3
  141. package/dist/integrations/pi/components/upstream/components/earendil-announcement.d.ts +1 -1
  142. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +10 -4
  143. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +7 -4
  144. package/dist/integrations/pi/components/upstream/components/extension-editor.js +7 -4
  145. package/dist/integrations/pi/components/upstream/components/mermaid.js +8 -4
  146. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +9 -5
  147. package/dist/integrations/pi/components/upstream/components/owned-editor.js +10 -6
  148. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +8 -4
  149. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +27 -25
  150. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +1 -1
  151. package/dist/integrations/pi/components/upstream/components/session-footer.js +8 -10
  152. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +6 -4
  153. package/dist/integrations/pi/components/upstream/components/session-selector.d.ts +1 -1
  154. package/dist/integrations/pi/components/upstream/components/session-selector.js +8 -4
  155. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +7 -5
  156. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +8 -6
  157. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +9 -4
  158. package/dist/integrations/pi/components/upstream/components/status-indicator.js +15 -5
  159. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +8 -2
  160. package/dist/integrations/pi/components/upstream/components/tool-execution.js +58 -37
  161. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +7 -4
  162. package/dist/integrations/pi/components/upstream/components/tree-selector.js +7 -4
  163. package/dist/integrations/pi/components/upstream/components/trust-selector.d.ts +1 -1
  164. package/dist/integrations/pi/components/upstream/components/trust-selector.js +10 -5
  165. package/dist/integrations/pi/components/upstream/external-editor.js +8 -4
  166. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +13 -4
  167. package/dist/integrations/pi/components/upstream/history/editor-core.js +112 -30
  168. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +6 -3
  169. package/dist/integrations/pi/components/upstream/history/kill-ring.js +6 -3
  170. package/dist/integrations/pi/components/upstream/history/printable-key.js +7 -4
  171. package/dist/integrations/pi/components/upstream/history/text-helpers.js +6 -3
  172. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +6 -3
  173. package/dist/integrations/pi/components/upstream/history/undo-stack.js +6 -3
  174. package/dist/integrations/pi/components/upstream/history/word-navigation.js +6 -3
  175. package/dist/integrations/pi/components/upstream/model-search.d.ts +5 -2
  176. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +8 -0
  177. package/dist/integrations/pi/components/upstream/theme/theme-controller.js +0 -3
  178. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +2 -2
  179. package/dist/integrations/pi/components/upstream/theme/theme.js +17 -6
  180. package/dist/integrations/pi/engine/adapter.d.ts +39 -138
  181. package/dist/integrations/pi/engine/adapter.js +338 -3226
  182. package/dist/integrations/pi/engine/command-dispatch.d.ts +41 -0
  183. package/dist/integrations/pi/engine/command-dispatch.js +125 -0
  184. package/dist/integrations/pi/engine/event-delivery.d.ts +100 -0
  185. package/dist/integrations/pi/engine/event-delivery.js +184 -0
  186. package/dist/integrations/pi/engine/extension-ui-binding.d.ts +35 -0
  187. package/dist/integrations/pi/engine/extension-ui-binding.js +81 -0
  188. package/dist/integrations/pi/engine/index.d.ts +18 -14
  189. package/dist/integrations/pi/engine/index.js +10 -14
  190. package/dist/integrations/pi/engine/message-values.d.ts +29 -0
  191. package/dist/integrations/pi/engine/message-values.js +168 -0
  192. package/dist/integrations/pi/engine/pending-delivery.d.ts +2 -2
  193. package/dist/integrations/pi/engine/pending-delivery.js +2 -4
  194. package/dist/integrations/pi/engine/pi-settings-metadata.json +382 -371
  195. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +30 -0
  196. package/dist/integrations/pi/engine/prompt-suggestions.js +102 -0
  197. package/dist/integrations/pi/engine/provider-authentication.d.ts +34 -0
  198. package/dist/integrations/pi/engine/provider-authentication.js +209 -0
  199. package/dist/integrations/pi/engine/resource-catalog.d.ts +49 -0
  200. package/dist/integrations/pi/engine/resource-catalog.js +289 -0
  201. package/dist/integrations/pi/engine/resources/changelog.json +4 -4
  202. package/dist/integrations/pi/engine/session-events.d.ts +48 -0
  203. package/dist/integrations/pi/engine/session-events.js +223 -0
  204. package/dist/integrations/pi/engine/session-integration.js +2 -4
  205. package/dist/integrations/pi/engine/session-runtime.d.ts +84 -0
  206. package/dist/integrations/pi/engine/session-runtime.js +249 -0
  207. package/dist/integrations/pi/engine/{settings-effects.d.ts → settings-bridge.d.ts} +57 -2
  208. package/dist/integrations/pi/engine/settings-bridge.js +514 -0
  209. package/dist/integrations/pi/engine/settings-metadata.d.ts +31 -0
  210. package/dist/integrations/pi/engine/settings-metadata.js +67 -0
  211. package/dist/integrations/pi/engine/settings-port.d.ts +42 -0
  212. package/dist/integrations/pi/engine/settings-port.js +353 -0
  213. package/dist/integrations/pi/engine/transcript-projection.d.ts +39 -0
  214. package/dist/integrations/pi/engine/transcript-projection.js +405 -0
  215. package/dist/integrations/pi/engine/usage-view.d.ts +4 -0
  216. package/dist/integrations/pi/engine/usage-view.js +56 -0
  217. package/dist/integrations/pi/engine/workflow-contexts.d.ts +59 -0
  218. package/dist/integrations/pi/engine/workflow-contexts.js +316 -0
  219. package/dist/integrations/pi/engine/workflow-runner.d.ts +60 -0
  220. package/dist/integrations/pi/engine/workflow-runner.js +509 -0
  221. package/dist/integrations/pi/engine/workflow-support.d.ts +33 -0
  222. package/dist/integrations/pi/engine/workflow-support.js +352 -0
  223. package/dist/integrations/pi/engine/workflows.d.ts +63 -2
  224. package/dist/integrations/pi/engine/workflows.js +5 -2
  225. package/dist/integrations/pi/startup-public.js +576 -554
  226. package/dist/integrations/pi/startup-public.manifest.json +1730 -984
  227. package/dist/integrations/pi/tui-runtime/adapter.js +10 -13
  228. package/dist/integrations/pi/tui-runtime/contracts.d.ts +11 -1
  229. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +1 -1
  230. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +4 -7
  231. package/dist/integrations/pi/tui-runtime/index.d.ts +8 -6
  232. package/dist/integrations/pi/tui-runtime/index.js +4 -6
  233. package/dist/integrations/pi/tui-runtime/mouse-report-input.js +2 -4
  234. package/dist/integrations/pi/tui-runtime/overlay-geometry.d.ts +2 -2
  235. package/dist/integrations/pi/tui-runtime/overlay-geometry.js +4 -5
  236. package/dist/integrations/pi/tui-runtime/presentation-adapter.js +1 -1
  237. package/dist/native/darwin-arm64/manifest.json +1 -1
  238. package/dist/native/linux-x64/manifest.json +1 -1
  239. package/dist/native/win32-x64/manifest.json +2 -2
  240. package/dist/native/win32-x64/process-guardian.exe +0 -0
  241. package/dist/runtime-payload-inventory.json +51320 -46509
  242. package/dist/ui/apps/index.d.ts +5 -3
  243. package/dist/ui/apps/index.js +3 -3
  244. package/dist/ui/components/index.d.ts +47 -25
  245. package/dist/ui/components/index.js +25 -25
  246. package/dist/ui/components/prompt-input.js +1 -4
  247. package/dist/ui/settings/declarations.d.ts +119 -0
  248. package/dist/ui/settings/declarations.js +20 -11
  249. package/dist/ui/settings/index.d.ts +10 -6
  250. package/dist/ui/settings/index.js +5 -6
  251. package/dist/ui/settings/manager.d.ts +54 -0
  252. package/dist/ui/settings/{session.js → manager.js} +101 -9
  253. package/dist/ui/settings/sections.d.ts +2 -7
  254. package/docs/architecture/boundaries.md +4 -4
  255. package/docs/architecture/history-editor-provenance.md +1 -1
  256. package/docs/architecture/project-structure.md +6 -6
  257. package/docs/architecture/prompt-suggestions.md +1 -1
  258. package/docs/architecture/terminal-host-proof-gate.md +1 -1
  259. package/docs/architecture/terminal-host-spike-evidence.md +1 -1
  260. package/docs/architecture/toolchain.md +8 -0
  261. package/docs/architecture/ui-reference-provenance.md +4 -4
  262. package/docs/ci-release-runbook.md +7 -1
  263. package/docs/features/modal-content-interaction.md +2 -2
  264. package/docs/local-worktree-cleanup.md +4 -2
  265. package/docs/validation.md +6 -4
  266. package/package.json +7 -11
  267. package/bin/pi-tui.d.ts +0 -6
  268. package/bin/pi-tui.js +0 -28
  269. package/bin/sync-pi-tui-proxy.js +0 -97
  270. package/dist/cli/version.d.ts +0 -2
  271. package/dist/cli/version.js +0 -23
  272. package/dist/composition/agent-engine-bridge.d.ts +0 -3
  273. package/dist/composition/agent-engine-bridge.js +0 -108
  274. package/dist/composition/process.d.ts +0 -16
  275. package/dist/composition/process.js +0 -45
  276. package/dist/contracts/workspace/index.d.ts +0 -2
  277. package/dist/contracts/workspace/index.js +0 -2
  278. package/dist/contracts/workspace/model.d.ts +0 -248
  279. package/dist/contracts/workspace/model.js +0 -2
  280. package/dist/contracts/workspace/validation.d.ts +0 -13
  281. package/dist/contracts/workspace/validation.js +0 -335
  282. package/dist/features/owned-ui/customization.d.ts +0 -40
  283. package/dist/features/owned-ui/customization.js +0 -110
  284. package/dist/features/owned-ui/diagnostics.d.ts +0 -34
  285. package/dist/features/owned-ui/diagnostics.js +0 -95
  286. package/dist/features/workspace/capabilities.d.ts +0 -31
  287. package/dist/features/workspace/capabilities.js +0 -75
  288. package/dist/features/workspace/index.d.ts +0 -6
  289. package/dist/features/workspace/index.js +0 -6
  290. package/dist/features/workspace/presentation.d.ts +0 -30
  291. package/dist/features/workspace/presentation.js +0 -70
  292. package/dist/features/workspace/reconciliation.d.ts +0 -15
  293. package/dist/features/workspace/reconciliation.js +0 -82
  294. package/dist/features/workspace/reducer.d.ts +0 -43
  295. package/dist/features/workspace/reducer.js +0 -214
  296. package/dist/features/workspace/router.d.ts +0 -32
  297. package/dist/features/workspace/router.js +0 -125
  298. package/dist/features/workspace/store.d.ts +0 -18
  299. package/dist/features/workspace/store.js +0 -55
  300. package/dist/foundation/native-host-protocol/codec.d.ts +0 -13
  301. package/dist/foundation/native-host-protocol/codec.js +0 -58
  302. package/dist/foundation/native-host-protocol/evidence.d.ts +0 -67
  303. package/dist/foundation/native-host-protocol/evidence.js +0 -141
  304. package/dist/foundation/native-host-protocol/index.d.ts +0 -4
  305. package/dist/foundation/native-host-protocol/index.js +0 -4
  306. package/dist/foundation/native-host-protocol/messages.d.ts +0 -56
  307. package/dist/foundation/native-host-protocol/messages.js +0 -149
  308. package/dist/foundation/native-host-protocol/proof-gate.d.ts +0 -13
  309. package/dist/foundation/native-host-protocol/proof-gate.js +0 -33
  310. package/dist/foundation/structured-agent-runtime/backpressure.d.ts +0 -47
  311. package/dist/foundation/structured-agent-runtime/backpressure.js +0 -119
  312. package/dist/foundation/structured-agent-runtime/commands.d.ts +0 -53
  313. package/dist/foundation/structured-agent-runtime/commands.js +0 -165
  314. package/dist/foundation/structured-agent-runtime/handshake.d.ts +0 -41
  315. package/dist/foundation/structured-agent-runtime/handshake.js +0 -151
  316. package/dist/foundation/structured-agent-runtime/index.d.ts +0 -5
  317. package/dist/foundation/structured-agent-runtime/index.js +0 -5
  318. package/dist/foundation/structured-agent-runtime/reconnection.d.ts +0 -38
  319. package/dist/foundation/structured-agent-runtime/reconnection.js +0 -130
  320. package/dist/foundation/structured-agent-runtime/state.d.ts +0 -57
  321. package/dist/foundation/structured-agent-runtime/state.js +0 -119
  322. package/dist/integrations/pi/components/upstream/components/custom-entry.d.ts +0 -17
  323. package/dist/integrations/pi/components/upstream/components/custom-entry.js +0 -51
  324. package/dist/integrations/pi/components/upstream/components/first-time-setup.d.ts +0 -24
  325. package/dist/integrations/pi/components/upstream/components/first-time-setup.js +0 -105
  326. package/dist/integrations/pi/components/upstream/components/markdown-transform.d.ts +0 -2
  327. package/dist/integrations/pi/components/upstream/components/markdown-transform.js +0 -18
  328. package/dist/integrations/pi/engine/model-auth-integration.d.ts +0 -31
  329. package/dist/integrations/pi/engine/model-auth-integration.js +0 -62
  330. package/dist/integrations/pi/engine/resource-extension-integration.d.ts +0 -32
  331. package/dist/integrations/pi/engine/resource-extension-integration.js +0 -81
  332. package/dist/integrations/pi/engine/settings-effects.js +0 -249
  333. package/dist/integrations/pi/engine/settings-integration.d.ts +0 -43
  334. package/dist/integrations/pi/engine/settings-integration.js +0 -227
  335. package/dist/integrations/pi/engine/workflow-controllers.d.ts +0 -21
  336. package/dist/integrations/pi/engine/workflow-controllers.js +0 -49
  337. package/dist/integrations/pi/session-ui/index.d.ts +0 -5
  338. package/dist/integrations/pi/session-ui/index.js +0 -5
  339. package/dist/integrations/pi/session-ui/paste-executor.d.ts +0 -10
  340. package/dist/integrations/pi/session-ui/paste-preparation-client.d.ts +0 -16
  341. package/dist/integrations/pi/session-ui/route-host.d.ts +0 -5
  342. package/dist/integrations/pi/tui-runtime/conformance.d.ts +0 -18
  343. package/dist/integrations/pi/tui-runtime/conformance.js +0 -145
  344. package/dist/ui/components/prompt-row.d.ts +0 -14
  345. package/dist/ui/components/prompt-row.js +0 -20
  346. package/dist/ui/settings/session.d.ts +0 -36
  347. package/dist/ui/settings/store.d.ts +0 -29
  348. package/dist/ui/settings/store.js +0 -91
  349. package/dist/{integrations/pi/session-ui → app/session-shell}/clipboard-diagnostics.js +2 -2
  350. package/dist/{integrations/pi/session-ui → app/session-shell}/clipboard-image.d.ts +0 -0
  351. package/dist/{integrations/pi/session-ui → app/session-shell}/editor-hyperlink-budget.d.ts +0 -0
  352. package/dist/{integrations/pi/session-ui → app/session-shell}/editor-hyperlink-budget.js +0 -0
  353. package/dist/{integrations/pi/session-ui → app/session-shell}/image-preparation.d.ts +0 -0
  354. package/dist/{integrations/pi/session-ui → app/session-shell}/image-source.d.ts +0 -0
  355. package/dist/{integrations/pi/session-ui → app/session-shell}/image-worker.d.ts +0 -0
  356. package/dist/{integrations/pi/session-ui → app/session-shell}/paste-helper.d.ts +0 -0
  357. package/dist/{integrations/pi/session-ui → app/session-shell}/paste-text-preparation.js +0 -0
  358. package/dist/{integrations/pi/session-ui → app/session-shell}/paste-text-worker.d.ts +0 -0
  359. package/dist/{integrations/pi/session-ui → app/session-shell}/paste-text-worker.js +0 -0
  360. package/dist/{integrations/pi/session-ui/response-copy-helper.d.ts → app/session-shell/paste-types.js} +0 -0
  361. package/dist/{integrations/pi/session-ui → app/session-shell}/path-chip-presentation.js +0 -0
  362. package/dist/{integrations/pi/session-ui → app/session-shell}/quit-outro-effects.d.ts +0 -0
  363. package/dist/{integrations/pi/session-ui → app/session-shell}/quit-outro-effects.js +0 -0
  364. package/dist/{integrations/pi/session-ui → app/session-shell}/quit-outro.d.ts +0 -0
  365. package/dist/{integrations/pi/session-ui/route-host.js → app/session-shell/response-copy-helper.d.ts} +0 -0
  366. package/dist/{integrations/pi/session-ui → app/session-shell}/response-copy-protocol.js +0 -0
  367. package/dist/{integrations/pi/session-ui → app/session-shell}/stream-presentation-coalescer.d.ts +0 -0
  368. package/dist/{integrations/pi/session-ui → app/session-shell}/stream-presentation-coalescer.js +3 -3
  369. /package/dist/{integrations/pi/session-ui → app/session-shell}/text-paste.d.ts +0 -0
  370. /package/dist/{integrations/pi/session-ui → app/session-shell}/text-paste.js +0 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.84.2 (MIT).
3
- * Upstream dark.json SHA-256: 113bc1fd556727b165804c18b5d377c14d421b3fdff3909a63736f421d0a3b00
4
- * Upstream light.json SHA-256: 893f0d7e8513dbd5e5112982fd6eb65ceb03ae18ed04854ac57803b9c8908fa0
2
+ * Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.85.1 (MIT).
3
+ * Upstream dark.json SHA-256: 103a5aecb74a2dab5cc903c9741845ee6158658ce2ff6e5445948784116eaef8
4
+ * Upstream light.json SHA-256: 14c7172ba7e75eab6f509504de806af0f2d9ff817bfb45d9533bff15c7e6e657
5
5
  * Modifications: removed upstream schema/export metadata; runtime color data is unchanged.
6
6
  */
7
7
  export declare const BUILTIN_THEME_RESOURCES: Readonly<{
@@ -38,7 +38,8 @@ export declare const BUILTIN_THEME_RESOURCES: Readonly<{
38
38
  readonly text: "text";
39
39
  readonly thinkingText: "gray";
40
40
  readonly selectedBg: "selectedBg";
41
- readonly scrollbarThumb: "selectedBg";
41
+ readonly scrollbarTrack: "darkGray";
42
+ readonly scrollbarThumb: "text";
42
43
  readonly searchMatchBg: "selectedBg";
43
44
  readonly searchMatchText: "text";
44
45
  readonly userMessageBg: "userMsgBg";
@@ -115,7 +116,8 @@ export declare const BUILTIN_THEME_RESOURCES: Readonly<{
115
116
  readonly text: "text";
116
117
  readonly thinkingText: "mediumGray";
117
118
  readonly selectedBg: "selectedBg";
118
- readonly scrollbarThumb: "selectedBg";
119
+ readonly scrollbarTrack: "lightGray";
120
+ readonly scrollbarThumb: "text";
119
121
  readonly searchMatchBg: "selectedBg";
120
122
  readonly searchMatchText: "text";
121
123
  readonly userMessageBg: "userMsgBg";
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.84.2 (MIT).
3
- * Upstream dark.json SHA-256: 113bc1fd556727b165804c18b5d377c14d421b3fdff3909a63736f421d0a3b00
4
- * Upstream light.json SHA-256: 893f0d7e8513dbd5e5112982fd6eb65ceb03ae18ed04854ac57803b9c8908fa0
2
+ * Attributed owned theme resources adapted from @earendil-works/pi-coding-agent 0.85.1 (MIT).
3
+ * Upstream dark.json SHA-256: 103a5aecb74a2dab5cc903c9741845ee6158658ce2ff6e5445948784116eaef8
4
+ * Upstream light.json SHA-256: 14c7172ba7e75eab6f509504de806af0f2d9ff817bfb45d9533bff15c7e6e657
5
5
  * Modifications: removed upstream schema/export metadata; runtime color data is unchanged.
6
6
  */
7
7
  export const BUILTIN_THEME_RESOURCES = Object.freeze({
@@ -38,7 +38,8 @@ export const BUILTIN_THEME_RESOURCES = Object.freeze({
38
38
  "text": "text",
39
39
  "thinkingText": "gray",
40
40
  "selectedBg": "selectedBg",
41
- "scrollbarThumb": "selectedBg",
41
+ "scrollbarTrack": "darkGray",
42
+ "scrollbarThumb": "text",
42
43
  "searchMatchBg": "selectedBg",
43
44
  "searchMatchText": "text",
44
45
  "userMessageBg": "userMsgBg",
@@ -115,7 +116,8 @@ export const BUILTIN_THEME_RESOURCES = Object.freeze({
115
116
  "text": "text",
116
117
  "thinkingText": "mediumGray",
117
118
  "selectedBg": "selectedBg",
118
- "scrollbarThumb": "selectedBg",
119
+ "scrollbarTrack": "lightGray",
120
+ "scrollbarThumb": "text",
119
121
  "searchMatchBg": "selectedBg",
120
122
  "searchMatchText": "text",
121
123
  "userMessageBg": "userMsgBg",
@@ -1,5 +1,5 @@
1
1
  import { getSelectListTheme } from "../startup-public.js";
2
- import { CombinedAutocompleteProvider, matchesKey, setKeybindings, visibleWidth, } from "#pi-tui";
2
+ import { CombinedAutocompleteProvider, matchesKey, setKeybindings, visibleWidth, } from "@earendil-works/pi-tui";
3
3
  import { PROMPT_HISTORY_EDITOR_REPLACEMENT } from "../../../contracts/owned-ui/index.js";
4
4
  import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
5
5
  import { OwnedEditor } from "./upstream/components/owned-editor.js";
@@ -1,6 +1,6 @@
1
1
  import { ExtensionInputComponent, ExtensionSelectorComponent, getSelectListTheme, } from "../startup-public.js";
2
2
  import { ExtensionEditorComponent, } from "./upstream/components/extension-editor.js";
3
- import { setKeybindings, Text, } from "#pi-tui";
3
+ import { setKeybindings, Text, } from "@earendil-works/pi-tui";
4
4
  import { KeybindingsManager, } from "./upstream/adjacent/core/keybindings.js";
5
5
  import { PINNED_PI_LAYOUT, applyPiTheme, applyPiThemeInstance, getAvailablePiThemes, loadPiTheme, piTheme, } from "./theme.js";
6
6
  import { componentPort, createTuiFacade, ensureTheme, isRecord, } from "./shell-shared-facade.js";
@@ -275,5 +275,6 @@ function publicOverlayHandle(handle) {
275
275
  ? undefined
276
276
  : { target: options.target === null ? null : componentPort(options.target) }),
277
277
  isFocused: () => handle.isFocused(),
278
+ getBounds: () => handle.getBounds(),
278
279
  };
279
280
  }
@@ -1,5 +1,5 @@
1
1
  import { rawKeyHint, VERSION } from "../startup-public.js";
2
- import { Spacer, Text, } from "#pi-tui";
2
+ import { Spacer, Text, } from "@earendil-works/pi-tui";
3
3
  import { SessionFooter } from "./upstream/components/session-footer.js";
4
4
  import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
5
5
  import { WorkingStatusIndicator } from "./upstream/components/status-indicator.js";
@@ -1,4 +1,4 @@
1
- import { type KeybindingsConfig } from "#pi-tui";
1
+ import { type KeybindingsConfig } from "@earendil-works/pi-tui";
2
2
  import { type PiShellComponentPort, type PiShellExtensionRendererResolver } from "./shell-shared-facade.js";
3
3
  export interface PiShellSessionInfoPresentation {
4
4
  readonly sessionName?: string;
@@ -1,5 +1,5 @@
1
1
  import { DynamicBorder, getMarkdownTheme } from "../startup-public.js";
2
- import { Container, Markdown, Spacer, Text } from "#pi-tui";
2
+ import { Container, Markdown, Spacer, Text } from "@earendil-works/pi-tui";
3
3
  import { KeybindingsManager } from "./upstream/adjacent/core/keybindings.js";
4
4
  import { PINNED_PI_LAYOUT, piTheme } from "./theme.js";
5
5
  import { componentPort, ensureTheme, formatSessionTokens } from "./shell-shared-facade.js";
@@ -4,7 +4,7 @@ import { SkillInvocationMessageComponent } from "./upstream/components/skill-inv
4
4
  import { piToolArguments as toolArguments, updatePiToolResult as updateToolResult } from "./tool-result-adapter.js";
5
5
  import { createTranscriptImageResolver } from "./transcript-image-resolver.js";
6
6
  import { createMermaidMarkdownTransformer } from "./upstream/components/mermaid.js";
7
- import { Container, Image, Spacer, Text, } from "#pi-tui";
7
+ import { Container, Image, Spacer, Text, } from "@earendil-works/pi-tui";
8
8
  import { PRODUCT_TEXT } from "../../../product-identity.js";
9
9
  import { createPiSubmittedPromptComponent, isPiPromptStyleCompaction, } from "./submitted-prompt-adapter.js";
10
10
  export { isPiPromptStyleCompaction, paintPiSubmittedPromptTimestamp } from "./submitted-prompt-adapter.js";
@@ -12,12 +12,18 @@ export declare function createPiShellSettingsSelector(options: PiShellSettingsSe
12
12
  type PiModelSelectorArguments = ConstructorParameters<typeof ModelSelectorComponent>;
13
13
  export interface PiShellModelSelectorOptions {
14
14
  readonly currentModel: unknown;
15
- readonly settingsManager: unknown;
16
15
  readonly modelRuntime: unknown;
17
16
  readonly scopedModels: readonly unknown[];
17
+ /** The persisted default model, when one is set. */
18
+ readonly defaultModel?: {
19
+ readonly provider: string;
20
+ readonly id: string;
21
+ };
18
22
  readonly initialSearchInput?: string;
19
23
  readonly runtime: Pick<PiShellEditorOptions, "getColumns" | "getRows" | "requestRender">;
20
- readonly onSelect: PiModelSelectorArguments[5];
24
+ readonly onSelect: PiModelSelectorArguments[4];
25
+ /** The pinned selector's "select as default" action: the model is chosen and persisted. */
26
+ readonly onSelectAsDefault: PiModelSelectorArguments[4];
21
27
  readonly onCancel: () => void;
22
28
  }
23
29
  export declare function createPiShellModelSelector(options: PiShellModelSelectorOptions): PiShellComponentPort;
@@ -107,7 +113,7 @@ export interface PiShellAuthProviderOption extends PiShellSelectorOption {
107
113
  }
108
114
  export declare function createPiShellAuthProviderSelector(mode: "login" | "logout", providers: readonly PiShellAuthProviderOption[], onSelect: (id: string) => void, onCancel: () => void, initialSearchInput?: string): PiShellComponentPort;
109
115
  export declare function createPiShellExtensionSelector(title: string, options: readonly string[], onSelect: (value: string) => void, onCancel: () => void): PiShellComponentPort;
110
- export declare function createPiShellThinkingSelector(currentLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", availableLevels: readonly ("off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max")[], onSelect: (level: string) => void, onCancel: () => void): PiShellComponentPort;
116
+ export declare function createPiShellThinkingSelector(currentLevel: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max", availableLevels: readonly ("off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max")[], onSelect: (level: string) => void, onCancel: () => void, onSelectAsDefault?: (level: string) => void, defaultLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max"): PiShellComponentPort;
111
117
  export declare function createPiShellThemeSelector(currentTheme: string, onSelect: (theme: string) => void, onCancel: () => void, onPreview: (theme: string) => void): PiShellComponentPort;
112
118
  export declare function createPiShellShowImagesSelector(currentValue: boolean, onSelect: (show: boolean) => void, onCancel: () => void): PiShellComponentPort;
113
119
  export declare function createPiShellDialog(dialog: OwnedUiDialog, handlers?: {
@@ -3,7 +3,7 @@ import { DaxnutsComponent, } from "./upstream/components/daxnuts.js";
3
3
  import { EarendilAnnouncementComponent, } from "./upstream/components/earendil-announcement.js";
4
4
  import { SessionSelectorComponent, } from "./upstream/components/session-selector.js";
5
5
  import { TreeSelectorComponent, } from "./upstream/components/tree-selector.js";
6
- import { Box, Container, SelectList, Spacer, Text, } from "#pi-tui";
6
+ import { Box, Container, SelectList, Spacer, Text, } from "@earendil-works/pi-tui";
7
7
  import { ScopedModelsSelectorComponent, } from "./upstream/components/scoped-models-selector.js";
8
8
  import { TrustSelectorComponent, } from "./upstream/components/trust-selector.js";
9
9
  import { PINNED_PI_LAYOUT, piTheme, } from "./theme.js";
@@ -25,7 +25,8 @@ export function createPiShellSelector(options) {
25
25
  }
26
26
  export function createPiShellSettingsSelector(options) {
27
27
  ensureTheme();
28
- const change = (name) => (value) => options.onChange(name, value);
28
+ // Protocol: one-argument callbacks pass the value; the per-model callbacks carry (provider, modelId[, level]) as a tuple.
29
+ const change = (name) => (...values) => options.onChange(name, values.length > 1 ? values : values[0]);
29
30
  const callbacks = {
30
31
  onAutoCompactChange: change("onAutoCompactChange"),
31
32
  onShowImagesChange: change("onShowImagesChange"),
@@ -37,7 +38,8 @@ export function createPiShellSettingsSelector(options) {
37
38
  onFollowUpModeChange: change("onFollowUpModeChange"),
38
39
  onTransportChange: change("onTransportChange"),
39
40
  onHttpIdleTimeoutMsChange: change("onHttpIdleTimeoutMsChange"),
40
- onThinkingLevelChange: change("onThinkingLevelChange"),
41
+ onModelThinkingLevelChange: change("onModelThinkingLevelChange"),
42
+ onModelThinkingLevelRemove: change("onModelThinkingLevelRemove"),
41
43
  onThemeChange: change("onThemeChange"),
42
44
  onThemePreview: change("onThemePreview"),
43
45
  onHideThinkingBlockChange: change("onHideThinkingBlockChange"),
@@ -58,6 +60,7 @@ export function createPiShellSettingsSelector(options) {
58
60
  onTuiModeChange: change("onTuiModeChange"),
59
61
  onFullscreenExitOutputChange: change("onFullscreenExitOutputChange"),
60
62
  onFullscreenScrollbarChange: change("onFullscreenScrollbarChange"),
63
+ onFullscreenCopyOnSelectChange: change("onFullscreenCopyOnSelectChange"),
61
64
  onWarningsChange: change("onWarningsChange"),
62
65
  onCancel: options.onCancel,
63
66
  };
@@ -67,7 +70,7 @@ export function createPiShellSettingsSelector(options) {
67
70
  }
68
71
  export function createPiShellModelSelector(options) {
69
72
  ensureTheme();
70
- const selector = new ModelSelectorComponent(createTuiFacade(options.runtime), options.currentModel, options.settingsManager, options.modelRuntime, options.scopedModels, options.onSelect, options.onCancel, options.initialSearchInput);
73
+ const selector = new ModelSelectorComponent(createTuiFacade(options.runtime), options.currentModel, options.modelRuntime, options.scopedModels, options.onSelect, options.onCancel, options.initialSearchInput, options.onSelectAsDefault, options.defaultModel);
71
74
  return componentPort(selector);
72
75
  }
73
76
  function toPiScopedModel(model) {
@@ -183,9 +186,9 @@ export function createPiShellExtensionSelector(title, options, onSelect, onCance
183
186
  ensureTheme();
184
187
  return componentPort(new ExtensionSelectorComponent(title, [...options], onSelect, onCancel));
185
188
  }
186
- export function createPiShellThinkingSelector(currentLevel, availableLevels, onSelect, onCancel) {
189
+ export function createPiShellThinkingSelector(currentLevel, availableLevels, onSelect, onCancel, onSelectAsDefault, defaultLevel) {
187
190
  ensureTheme();
188
- const selector = new ThinkingSelectorComponent(currentLevel, [...availableLevels], onSelect, onCancel);
191
+ const selector = new ThinkingSelectorComponent(currentLevel, [...availableLevels], onSelect, onCancel, onSelectAsDefault, defaultLevel);
189
192
  const list = selector.getSelectList();
190
193
  return componentPort(selector, data => list.handleInput(data));
191
194
  }
@@ -1,4 +1,4 @@
1
- import { visibleWidth, type AutocompleteProvider, type Component, type KeybindingsConfig, type TUI } from "#pi-tui";
1
+ import { visibleWidth, type AutocompleteProvider, type Component, type KeybindingsConfig, type TUI } from "@earendil-works/pi-tui";
2
2
  import type { OwnedUiImageAttachment, OwnedUiSessionViewModel, OwnedUiThinkingLevel, OwnedUiTranscriptBlock, SuggestionDecision } from "../../../contracts/owned-ui/index.js";
3
3
  import type { HistoryEditorConstructor } from "./history-editor-loader.js";
4
4
  import type { PiShellPromptInputPresentation } from "./prompt-input-port.js";
@@ -7,6 +7,8 @@ import type { PresentationComponentPort } from "../../../contracts/presentation/
7
7
  /** Terminal-cell width authority used by Pi-rendered component rows. */
8
8
  export declare const piShellVisibleWidth: typeof visibleWidth;
9
9
  export declare const piShellTruncateToWidth: (text: string, width: number) => string;
10
+ /** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
11
+ export declare const piShellHyperlink: (url: string, text?: string) => string;
10
12
  export interface PiShellComponentPort extends PresentationComponentPort {
11
13
  }
12
14
  export type PiShellClipboardContent = {
@@ -1,9 +1,11 @@
1
- import { setKeybindings, visibleWidth, truncateToWidth, } from "#pi-tui";
1
+ import { hyperlink, setKeybindings, visibleWidth, truncateToWidth, } from "@earendil-works/pi-tui";
2
2
  import { KeybindingsManager, } from "./upstream/adjacent/core/keybindings.js";
3
3
  import { ensurePiTheme, } from "./theme.js";
4
4
  /** Terminal-cell width authority used by Pi-rendered component rows. */
5
5
  export const piShellVisibleWidth = visibleWidth;
6
6
  export const piShellTruncateToWidth = (text, width) => truncateToWidth(text, width, "");
7
+ /** A clickable URL in pinned Pi's grammar: an OSC 8 link where the terminal supports one, the plain URL otherwise. */
8
+ export const piShellHyperlink = (url, text = url) => hyperlink(url, text);
7
9
  // Provenance: pinned from packages/coding-agent/src/core/slash-commands.ts at 914cf14.
8
10
  export function createTuiFacade(options) {
9
11
  const children = [];
@@ -33,7 +35,7 @@ export function createTuiFacade(options) {
33
35
  getClearOnShrink: () => true,
34
36
  setClearOnShrink() { },
35
37
  setFocus() { },
36
- showOverlay: () => ({ hide() { }, setHidden() { }, isHidden: () => false, focus() { }, unfocus() { }, isFocused: () => false }),
38
+ showOverlay: () => ({ hide() { }, setHidden() { }, isHidden: () => false, focus() { }, unfocus() { }, isFocused: () => false, getBounds: () => undefined }),
37
39
  hideOverlay() { },
38
40
  hasOverlay: () => false,
39
41
  start() { },
@@ -1,4 +1,4 @@
1
- import { type Component } from "#pi-tui";
1
+ import { type Component } from "@earendil-works/pi-tui";
2
2
  import type { OwnedUiTranscriptBlock } from "../../../contracts/owned-ui/index.js";
3
3
  export interface PiShellSubmittedPromptComposer {
4
4
  readonly layout: (width: number, source?: Date | number | null) => {
@@ -1,5 +1,5 @@
1
1
  import { getMarkdownTheme } from "../startup-public.js";
2
- import { Box, Markdown, Text } from "#pi-tui";
2
+ import { Box, Markdown, Text } from "@earendil-works/pi-tui";
3
3
  import { piTheme } from "./theme.js";
4
4
  /** Branch summaries share the block kind but do not participate in prompt navigation. */
5
5
  export function isPiPromptStyleCompaction(block) {
@@ -1,5 +1,5 @@
1
1
  import { convertToPng } from "../startup-public.js";
2
- import { type Component } from "#pi-tui";
2
+ import { type Component } from "@earendil-works/pi-tui";
3
3
  /**
4
4
  * Own only current attachment presentation; tool renderers still receive original result content.
5
5
  * Unlike pinned 0.84.2's index cache, entries follow immutable source bytes and stale completions
@@ -1,5 +1,5 @@
1
1
  import { convertToPng } from "../startup-public.js";
2
- import { getCapabilities, Image, Text } from "#pi-tui";
2
+ import { getCapabilities, Image, Text } from "@earendil-works/pi-tui";
3
3
  import { piTheme } from "./theme.js";
4
4
  const MAX_BYTES = 20 * 1024 * 1024;
5
5
  const MAX_IMAGES = 16;
@@ -10,16 +10,13 @@ const bytes = (data) => Math.floor(data.length * 3 / 4) - (data.endsWith("==") ?
10
10
  * cannot republish. At most one conversion runs per mount; queued work is only the current set.
11
11
  */
12
12
  export class ToolImagePresentation {
13
- changed;
14
- convert;
15
13
  #entries = [];
16
14
  #visible = false;
17
15
  #disposed = false;
18
16
  #active = false;
19
- constructor(changed, convert = convertToPng) {
20
- this.changed = changed;
21
- this.convert = convert;
22
- }
17
+ changed;
18
+ convert;
19
+ constructor(changed, convert = convertToPng) { this.changed = changed; this.convert = convert; }
23
20
  update(content, show) {
24
21
  if (this.#disposed)
25
22
  return;
@@ -1,11 +1,20 @@
1
- /** Source-synchronized from Pi 0.84.2 packages/coding-agent/src/core/keybindings.ts. */
2
- import { type Keybinding, type KeybindingDefinitions, type KeybindingsConfig, type KeyId, KeybindingsManager as TuiKeybindingsManager } from "#pi-tui";
1
+ /**
2
+ * Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
3
+ * packages/coding-agent/src/core/keybindings.ts.
4
+ * Modifications: Mechanical source port with Node import prefixes, public package-root agent-directory
5
+ * resolution, and an opt-in bare-A1 input profile including Ctrl+L level cycling and unbound model
6
+ * selection.
7
+ * Deviations: keybindings-public-config-boundary, owned-level-cycle-shortcut,
8
+ * owned-input-keybinding-aliases.
9
+ */
10
+ import { type Keybinding, type KeybindingDefinitions, type KeybindingsConfig, type KeyId, KeybindingsManager as TuiKeybindingsManager } from "@earendil-works/pi-tui";
3
11
  export interface AppKeybindings {
4
12
  "app.interrupt": true;
5
13
  "app.clear": true;
6
14
  "app.exit": true;
7
15
  "app.suspend": true;
8
16
  "app.thinking.cycle": true;
17
+ "app.thinking.save": true;
9
18
  "app.model.cycleForward": true;
10
19
  "app.model.cycleBackward": true;
11
20
  "app.model.select": true;
@@ -51,11 +60,28 @@ export interface AppKeybindings {
51
60
  "owned.editor.extendRight": true;
52
61
  }
53
62
  export type AppKeybinding = keyof AppKeybindings;
54
- declare module "#pi-tui" {
63
+ export declare function useWindowsKeybindings(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv): boolean;
64
+ declare module "@earendil-works/pi-tui" {
55
65
  interface Keybindings extends AppKeybindings {
56
66
  }
57
67
  }
58
68
  export declare const KEYBINDINGS: {
69
+ readonly "tui.editor.undo": {
70
+ readonly defaultKeys: "ctrl+z" | "alt+z" | "ctrl+-";
71
+ readonly description: "Undo";
72
+ };
73
+ readonly "tui.altScreen.previousPrompt": {
74
+ readonly defaultKeys: "ctrl+up" | ("ctrl+up" | "ctrl+shift+up")[];
75
+ readonly description: "Jump to previous semantic prompt";
76
+ };
77
+ readonly "tui.altScreen.nextPrompt": {
78
+ readonly defaultKeys: "ctrl+down" | ("ctrl+down" | "ctrl+shift+down")[];
79
+ readonly description: "Jump to next semantic prompt";
80
+ };
81
+ readonly "tui.altScreen.search": {
82
+ readonly defaultKeys: "ctrl+f" | "ctrl+shift+f";
83
+ readonly description: "Search the primary scroll view";
84
+ };
59
85
  readonly "app.interrupt": {
60
86
  readonly defaultKeys: "escape";
61
87
  readonly description: "Cancel or abort";
@@ -76,12 +102,16 @@ export declare const KEYBINDINGS: {
76
102
  readonly defaultKeys: "shift+tab";
77
103
  readonly description: "Cycle thinking level";
78
104
  };
105
+ readonly "app.thinking.save": {
106
+ readonly defaultKeys: "ctrl+s";
107
+ readonly description: "Save thinking level";
108
+ };
79
109
  readonly "app.model.cycleForward": {
80
110
  readonly defaultKeys: "ctrl+p";
81
111
  readonly description: "Cycle to next model";
82
112
  };
83
113
  readonly "app.model.cycleBackward": {
84
- readonly defaultKeys: "shift+ctrl+p";
114
+ readonly defaultKeys: "alt+p" | "shift+ctrl+p";
85
115
  readonly description: "Cycle to previous model";
86
116
  };
87
117
  readonly "app.model.select": {
@@ -109,11 +139,11 @@ export declare const KEYBINDINGS: {
109
139
  readonly description: "Copy message to clipboard";
110
140
  };
111
141
  readonly "app.message.followUp": {
112
- readonly defaultKeys: "alt+enter";
142
+ readonly defaultKeys: "ctrl+q" | "alt+enter";
113
143
  readonly description: "Queue follow-up message";
114
144
  };
115
145
  readonly "app.message.dequeue": {
116
- readonly defaultKeys: "alt+up";
146
+ readonly defaultKeys: "alt+q" | "alt+up";
117
147
  readonly description: "Restore queued messages";
118
148
  };
119
149
  readonly "app.clipboard.pasteImage": {
@@ -312,10 +342,6 @@ export declare const KEYBINDINGS: {
312
342
  readonly defaultKeys: "alt+y";
313
343
  readonly description: "Yank pop";
314
344
  };
315
- readonly "tui.editor.undo": {
316
- readonly defaultKeys: "ctrl+-";
317
- readonly description: "Undo";
318
- };
319
345
  readonly "tui.input.newLine": {
320
346
  readonly defaultKeys: ["shift+enter", "ctrl+j"];
321
347
  readonly description: "Insert newline";
@@ -380,18 +406,6 @@ export declare const KEYBINDINGS: {
380
406
  readonly defaultKeys: [];
381
407
  readonly description: "Scroll viewport down one line";
382
408
  };
383
- readonly "tui.altScreen.previousPrompt": {
384
- readonly defaultKeys: "ctrl+shift+up";
385
- readonly description: "Jump to previous semantic prompt";
386
- };
387
- readonly "tui.altScreen.nextPrompt": {
388
- readonly defaultKeys: "ctrl+shift+down";
389
- readonly description: "Jump to next semantic prompt";
390
- };
391
- readonly "tui.altScreen.search": {
392
- readonly defaultKeys: "ctrl+shift+f";
393
- readonly description: "Search the primary scroll view";
394
- };
395
409
  readonly "tui.altScreen.searchNext": {
396
410
  readonly defaultKeys: ["enter", "ctrl+g"];
397
411
  readonly description: "Select the next search match";
@@ -1,10 +1,38 @@
1
- /** Source-synchronized from Pi 0.84.2 packages/coding-agent/src/core/keybindings.ts. */
2
- import { TUI_KEYBINDINGS, KeybindingsManager as TuiKeybindingsManager, } from "#pi-tui";
1
+ /**
2
+ * Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
3
+ * packages/coding-agent/src/core/keybindings.ts.
4
+ * Modifications: Mechanical source port with Node import prefixes, public package-root agent-directory
5
+ * resolution, and an opt-in bare-A1 input profile including Ctrl+L level cycling and unbound model
6
+ * selection.
7
+ * Deviations: keybindings-public-config-boundary, owned-level-cycle-shortcut,
8
+ * owned-input-keybinding-aliases.
9
+ */
10
+ import { TUI_KEYBINDINGS, KeybindingsManager as TuiKeybindingsManager, } from "@earendil-works/pi-tui";
3
11
  import { existsSync, readFileSync } from "node:fs";
4
12
  import { join } from "node:path";
5
13
  import { getAgentDir } from "../../../../startup-public.js";
14
+ export function useWindowsKeybindings(platform = process.platform, env = process.env) {
15
+ return platform === "win32" || (platform === "linux" && Boolean(env.WSL_DISTRO_NAME || env.WSL_INTEROP));
16
+ }
17
+ const windowsKeybindings = useWindowsKeybindings();
6
18
  export const KEYBINDINGS = {
7
19
  ...TUI_KEYBINDINGS,
20
+ "tui.editor.undo": {
21
+ ...TUI_KEYBINDINGS["tui.editor.undo"],
22
+ defaultKeys: process.platform === "win32" ? "ctrl+z" : windowsKeybindings ? "alt+z" : "ctrl+-",
23
+ },
24
+ "tui.altScreen.previousPrompt": {
25
+ ...TUI_KEYBINDINGS["tui.altScreen.previousPrompt"],
26
+ defaultKeys: windowsKeybindings ? "ctrl+up" : ["ctrl+shift+up", "ctrl+up"],
27
+ },
28
+ "tui.altScreen.nextPrompt": {
29
+ ...TUI_KEYBINDINGS["tui.altScreen.nextPrompt"],
30
+ defaultKeys: windowsKeybindings ? "ctrl+down" : ["ctrl+shift+down", "ctrl+down"],
31
+ },
32
+ "tui.altScreen.search": {
33
+ ...TUI_KEYBINDINGS["tui.altScreen.search"],
34
+ defaultKeys: windowsKeybindings ? "ctrl+f" : "ctrl+shift+f",
35
+ },
8
36
  "app.interrupt": { defaultKeys: "escape", description: "Cancel or abort" },
9
37
  "app.clear": { defaultKeys: "ctrl+c", description: "Clear editor" },
10
38
  "app.exit": { defaultKeys: "ctrl+d", description: "Exit when editor is empty" },
@@ -16,12 +44,16 @@ export const KEYBINDINGS = {
16
44
  defaultKeys: "shift+tab",
17
45
  description: "Cycle thinking level",
18
46
  },
47
+ "app.thinking.save": {
48
+ defaultKeys: "ctrl+s",
49
+ description: "Save thinking level",
50
+ },
19
51
  "app.model.cycleForward": {
20
52
  defaultKeys: "ctrl+p",
21
53
  description: "Cycle to next model",
22
54
  },
23
55
  "app.model.cycleBackward": {
24
- defaultKeys: "shift+ctrl+p",
56
+ defaultKeys: windowsKeybindings ? "alt+p" : "shift+ctrl+p",
25
57
  description: "Cycle to previous model",
26
58
  },
27
59
  "app.model.select": { defaultKeys: "ctrl+l", description: "Open model selector" },
@@ -43,15 +75,15 @@ export const KEYBINDINGS = {
43
75
  description: "Copy message to clipboard",
44
76
  },
45
77
  "app.message.followUp": {
46
- defaultKeys: "alt+enter",
78
+ defaultKeys: windowsKeybindings ? "ctrl+q" : "alt+enter",
47
79
  description: "Queue follow-up message",
48
80
  },
49
81
  "app.message.dequeue": {
50
- defaultKeys: "alt+up",
82
+ defaultKeys: windowsKeybindings ? "alt+q" : "alt+up",
51
83
  description: "Restore queued messages",
52
84
  },
53
85
  "app.clipboard.pasteImage": {
54
- defaultKeys: process.platform === "win32" ? "alt+v" : "ctrl+v",
86
+ defaultKeys: windowsKeybindings ? "alt+v" : "ctrl+v",
55
87
  description: "Paste image from clipboard (text fallback)",
56
88
  },
57
89
  "app.session.new": { defaultKeys: [], description: "Start a new session" },
@@ -284,11 +316,15 @@ function orderKeybindingsConfig(config) {
284
316
  }
285
317
  return ordered;
286
318
  }
319
+ // Rationale: upstream strips the BOM through a private util the package does not export; the one-line helper lives here.
320
+ function stripBom(content) {
321
+ return content.startsWith("\uFEFF") ? content.slice(1) : content;
322
+ }
287
323
  function loadRawConfig(path) {
288
324
  if (!existsSync(path))
289
325
  return undefined;
290
326
  try {
291
- const parsed = JSON.parse(readFileSync(path, "utf-8"));
327
+ const parsed = JSON.parse(stripBom(readFileSync(path, "utf-8")));
292
328
  if (typeof parsed !== "object" || parsed === null)
293
329
  return undefined;
294
330
  return parsed;
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "sourcePackage": "@earendil-works/pi-coding-agent",
3
- "sourceVersion": "0.84.2",
3
+ "sourceVersion": "0.85.1",
4
4
  "upstreamRepository": "https://github.com/earendil-works/pi.git",
5
- "upstreamCommit": "914cf1472e715297caa30db4b9535d534a9eb718",
5
+ "upstreamCommit": "d981de1229ef899957bbe968bc8dcda02a21f477",
6
6
  "sourcePath": "dist/modes/interactive/assets/clankolas.png",
7
7
  "sourceSha256": "169acd0dfe6fbb8d8742ed24a3fc654fd0b2e2d4223c733249c5493723f1b72d",
8
8
  "license": "MIT",
@@ -1,8 +1,11 @@
1
1
  /**
2
- * Source-synchronized from Pi 0.84.2
3
- * packages/coding-agent/src/modes/interactive/components/countdown-timer.ts
2
+ * Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
3
+ * packages/coding-agent/src/modes/interactive/components/countdown-timer.ts.
4
+ * Modifications: Mechanical source port with ECMAScript private fields; imports remain on the public
5
+ * Pi TUI package root.
6
+ * Deviations: countdown-owned-private-fields.
4
7
  */
5
- import type { TUI } from "#pi-tui";
8
+ import type { TUI } from "@earendil-works/pi-tui";
6
9
  export declare class CountdownTimer {
7
10
  #private;
8
11
  constructor(timeoutMs: number, tui: TUI | undefined, onTick: (seconds: number) => void, onExpire: () => void);
@@ -1,9 +1,16 @@
1
+ /**
2
+ * Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
3
+ * packages/coding-agent/src/modes/interactive/components/daxnuts.ts.
4
+ * Modifications: Mechanical pinned source port with private imports remapped to public package-root
5
+ * types/APIs and A1-owned theme boundaries; behavior remains acceptance-tested.
6
+ * Deviations: none.
7
+ */
1
8
  /**
2
9
  * POWERED BY DAXNUTS - Easter egg for OpenCode + Kimi K2.5
3
10
  *
4
11
  * A heartfelt tribute to dax (@thdxr) for providing free Kimi K2.5 access via OpenCode.
5
12
  */
6
- import type { Component, TUI } from "#pi-tui";
13
+ import type { Component, TUI } from "@earendil-works/pi-tui";
7
14
  export declare class DaxnutsComponent implements Component {
8
15
  private ui;
9
16
  private image;
@@ -1,6 +1,10 @@
1
- // Mechanically adapted from Pi commit 914cf14
2
- // packages/coding-agent/src/modes/interactive/components/daxnuts.ts (MIT).
3
- // Local modifications: remap private imports to public package-root or owned theme boundaries.
1
+ /**
2
+ * Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
3
+ * packages/coding-agent/src/modes/interactive/components/daxnuts.ts.
4
+ * Modifications: Mechanical pinned source port with private imports remapped to public package-root
5
+ * types/APIs and A1-owned theme boundaries; behavior remains acceptance-tested.
6
+ * Deviations: none.
7
+ */
4
8
  /**
5
9
  * POWERED BY DAXNUTS - Easter egg for OpenCode + Kimi K2.5
6
10
  *
@@ -1,4 +1,4 @@
1
- import { Container } from "#pi-tui";
1
+ import { Container } from "@earendil-works/pi-tui";
2
2
  export declare class EarendilAnnouncementComponent extends Container {
3
3
  constructor();
4
4
  }
@@ -1,8 +1,14 @@
1
- // Mechanically adapted from Pi commit 914cf14
2
- // packages/coding-agent/src/modes/interactive/components/earendil-announcement.ts (MIT).
3
- // Local modifications: remap private imports to public package-root/owned theme boundaries; load the verified owned copy of the image lazily.
1
+ /**
2
+ * Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
3
+ * packages/coding-agent/src/modes/interactive/components/earendil-announcement.ts.
4
+ * Modifications: Mechanical pinned source port with private imports remapped to public package-root
5
+ * types/APIs and A1-owned theme boundaries. The unchanged image is loaded lazily from its attributed,
6
+ * verified owned resource, preserving pinned image/fallback rows without runtime dependency-directory
7
+ * reads or package mutation. Command-outcome parity exercises the restored presentation.
8
+ * Deviations: none.
9
+ */
4
10
  import { readFileSync } from "node:fs";
5
- import { Container, Image, Spacer, Text } from "#pi-tui";
11
+ import { Container, Image, Spacer, Text } from "@earendil-works/pi-tui";
6
12
  import { DynamicBorder } from "../../../startup-public.js";
7
13
  import { piTheme } from "../theme/theme.js";
8
14
  const BLOG_URL = "https://mariozechner.at/posts/2026-04-08-ive-sold-out/";
@@ -1,9 +1,12 @@
1
1
  /**
2
- * Adapted from @earendil-works/pi-coding-agent 0.84.2
3
- * packages/coding-agent/src/modes/interactive/components/extension-editor.ts (MIT).
4
- * Modifications: root public pi-tui singleton, owned keybindings/theme seam, owned external-editor import.
2
+ * Provenance: @earendil-works/pi-coding-agent 0.85.1 (MIT), commit d981de1229ef899957bbe968bc8dcda02a21f477,
3
+ * packages/coding-agent/src/modes/interactive/components/extension-editor.ts.
4
+ * Modifications: Mechanical port: remap pi-tui to the root public singleton, use owned
5
+ * keybindings/theme and external-editor seams, preserve editor layout, hints, focus, submission,
6
+ * cancellation, and external-editor lifecycle.
7
+ * Deviations: none.
5
8
  */
6
- import { Container, type TUI } from "#pi-tui";
9
+ import { Container, type TUI } from "@earendil-works/pi-tui";
7
10
  import type { KeybindingsManager } from "../adjacent/core/keybindings.js";
8
11
  export declare class ExtensionEditorComponent extends Container {
9
12
  #private;