@timurproko/a1 0.2.6 → 0.2.7-dev.1222

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 (419) hide show
  1. package/README.md +41 -3
  2. package/bin/automatic-update.js +7 -0
  3. package/bin/cli.js +4 -0
  4. package/bin/guardian.js +5 -0
  5. package/bin/tab-launch-context.d.ts +27 -0
  6. package/bin/tab-launch-context.js +94 -0
  7. package/bin/ui.js +107 -59
  8. package/dist/app/session-shell/clipboard-diagnostics.js +1 -1
  9. package/dist/app/session-shell/dialog-coordinator.d.ts +42 -0
  10. package/dist/app/session-shell/dialog-coordinator.js +133 -0
  11. package/dist/app/session-shell/dock-chrome.d.ts +34 -0
  12. package/dist/app/session-shell/dock-chrome.js +109 -0
  13. package/dist/app/session-shell/exit-notice.d.ts +1 -1
  14. package/dist/app/session-shell/exit-notice.js +1 -1
  15. package/dist/app/session-shell/extension-surface.d.ts +30 -0
  16. package/dist/app/session-shell/extension-surface.js +105 -0
  17. package/dist/app/session-shell/helper-pool.d.ts +3 -5
  18. package/dist/app/session-shell/helper-pool.js +3 -5
  19. package/dist/app/session-shell/input-surface-switch.d.ts +36 -0
  20. package/dist/app/session-shell/input-surface-switch.js +85 -0
  21. package/dist/app/session-shell/login-interaction.d.ts +27 -0
  22. package/dist/app/session-shell/login-interaction.js +91 -0
  23. package/dist/app/session-shell/prompt-submission.d.ts +48 -0
  24. package/dist/app/session-shell/prompt-submission.js +276 -0
  25. package/dist/app/session-shell/resident-tab-coordinator.d.ts +38 -0
  26. package/dist/app/session-shell/resident-tab-coordinator.js +77 -0
  27. package/dist/app/session-shell/response-copy-helper.js +21 -6
  28. package/dist/app/session-shell/response-copy-protocol.d.ts +1 -1
  29. package/dist/app/session-shell/response-copy-transport.d.ts +16 -6
  30. package/dist/app/session-shell/response-copy-transport.js +69 -17
  31. package/dist/app/session-shell/session-concern.d.ts +22 -0
  32. package/dist/app/session-shell/session-concern.js +29 -0
  33. package/dist/app/session-shell/session-lifecycle.d.ts +29 -0
  34. package/dist/app/session-shell/session-lifecycle.js +49 -0
  35. package/dist/app/session-shell/session-shell-root.d.ts +42 -6
  36. package/dist/app/session-shell/session-shell-root.js +197 -908
  37. package/dist/app/session-shell/session-shell.d.ts +3 -8
  38. package/dist/app/session-shell/session-shell.js +327 -835
  39. package/dist/app/session-shell/session-viewport-controller.d.ts +2 -1
  40. package/dist/app/session-shell/session-viewport-controller.js +41 -38
  41. package/dist/app/session-shell/settings-bindings.d.ts +17 -0
  42. package/dist/app/session-shell/settings-bindings.js +91 -0
  43. package/dist/app/session-shell/shell-editor-factory.d.ts +27 -0
  44. package/dist/app/session-shell/shell-editor-factory.js +105 -0
  45. package/dist/app/session-shell/shell-host.d.ts +6 -0
  46. package/dist/app/session-shell/shell-host.js +34 -7
  47. package/dist/app/session-shell/shell-layout.d.ts +64 -0
  48. package/dist/app/session-shell/shell-layout.js +18 -0
  49. package/dist/app/session-shell/suggestion-surface.d.ts +25 -0
  50. package/dist/app/session-shell/suggestion-surface.js +63 -0
  51. package/dist/app/session-shell/transcript-document.d.ts +78 -0
  52. package/dist/app/session-shell/transcript-document.js +365 -0
  53. package/dist/app/session-shell/viewport-layout.d.ts +31 -0
  54. package/dist/app/session-shell/viewport-layout.js +160 -0
  55. package/dist/app/session-shell/workflow-output.d.ts +33 -0
  56. package/dist/app/session-shell/workflow-output.js +174 -0
  57. package/dist/app/session-shell/workflow-router.d.ts +25 -0
  58. package/dist/app/session-shell/workflow-router.js +39 -0
  59. package/dist/cli/dispatch.d.ts +11 -1
  60. package/dist/cli/dispatch.js +79 -5
  61. package/dist/cli/tabs-request.d.ts +7 -0
  62. package/dist/cli/tabs-request.js +1 -0
  63. package/dist/cli/tabs.d.ts +14 -0
  64. package/dist/cli/tabs.js +151 -0
  65. package/dist/cli/version-stats.js +38 -3
  66. package/dist/composition/owned-settings.d.ts +12 -0
  67. package/dist/composition/owned-settings.js +36 -0
  68. package/dist/composition/owned-ui.d.ts +27 -28
  69. package/dist/composition/owned-ui.js +207 -153
  70. package/dist/composition/reference-selection-options.d.ts +3 -0
  71. package/dist/composition/reference-selection-options.js +16 -0
  72. package/dist/composition/resident-tab-bridge.d.ts +25 -0
  73. package/dist/composition/resident-tab-bridge.js +180 -0
  74. package/dist/composition/session-backend.d.ts +19 -0
  75. package/dist/composition/session-backend.js +1 -0
  76. package/dist/composition/session-runtime-registry.d.ts +20 -0
  77. package/dist/composition/session-runtime-registry.js +85 -0
  78. package/dist/composition/settings-route-host.d.ts +16 -2
  79. package/dist/composition/settings-route-host.js +42 -17
  80. package/dist/composition/settings-search-input.d.ts +9 -0
  81. package/dist/composition/settings-search-input.js +61 -0
  82. package/dist/composition/startup-route.d.ts +32 -0
  83. package/dist/composition/startup-route.js +72 -0
  84. package/dist/composition/utility-tab.d.ts +28 -0
  85. package/dist/composition/utility-tab.js +244 -0
  86. package/dist/contracts/owned-ui/index.d.ts +1 -1
  87. package/dist/contracts/owned-ui/model.d.ts +3 -0
  88. package/dist/contracts/owned-ui/session-backend.d.ts +3 -0
  89. package/dist/contracts/owned-ui/session-workflows.d.ts +11 -4
  90. package/dist/contracts/presentation/index.d.ts +11 -0
  91. package/dist/contracts/presentation/index.js +12 -0
  92. package/dist/features/launch/development-launch.js +6 -0
  93. package/dist/features/launch/index.d.ts +1 -1
  94. package/dist/features/launch/intent.d.ts +3 -1
  95. package/dist/features/launch/intent.js +7 -4
  96. package/dist/features/launch/profile-paths.js +4 -0
  97. package/dist/features/owned-ui/plus-menu-dialog.d.ts +22 -0
  98. package/dist/features/owned-ui/plus-menu-dialog.js +84 -0
  99. package/dist/features/owned-ui/project-trust-dialog.d.ts +1 -1
  100. package/dist/features/owned-ui/project-trust-dialog.js +6 -8
  101. package/dist/features/owned-ui/project-trust-prompt.d.ts +1 -0
  102. package/dist/features/owned-ui/project-trust-prompt.js +7 -3
  103. package/dist/features/owned-ui/reference-document-selection.d.ts +30 -0
  104. package/dist/features/owned-ui/reference-document-selection.js +179 -0
  105. package/dist/features/owned-ui/reference-screen-app.d.ts +6 -1
  106. package/dist/features/owned-ui/reference-screen-app.js +51 -10
  107. package/dist/features/owned-ui/settings-app.d.ts +13 -2
  108. package/dist/features/owned-ui/settings-app.js +136 -97
  109. package/dist/features/owned-ui/settings-search-input.d.ts +29 -0
  110. package/dist/features/owned-ui/settings-search-input.js +1 -0
  111. package/dist/features/prompt-history/index.d.ts +1 -1
  112. package/dist/features/prompt-history/paths.d.ts +2 -1
  113. package/dist/features/prompt-history/paths.js +10 -2
  114. package/dist/features/prompt-history/service.d.ts +5 -0
  115. package/dist/features/prompt-history/service.js +1 -1
  116. package/dist/features/resident-tab/auto-name.d.ts +11 -0
  117. package/dist/features/resident-tab/auto-name.js +44 -0
  118. package/dist/features/resident-tab/index.d.ts +5 -0
  119. package/dist/features/resident-tab/index.js +7 -0
  120. package/dist/features/resident-tab/shortcut-bindings-file.d.ts +8 -0
  121. package/dist/features/resident-tab/shortcut-bindings-file.js +40 -0
  122. package/dist/features/resident-tab/shortcut-declarations.d.ts +13 -0
  123. package/dist/features/resident-tab/shortcut-declarations.js +26 -0
  124. package/dist/features/resident-tab/shortcut-projection.d.ts +29 -0
  125. package/dist/features/resident-tab/shortcut-projection.js +64 -0
  126. package/dist/features/resident-tab/status-deriver.d.ts +10 -0
  127. package/dist/features/resident-tab/status-deriver.js +12 -0
  128. package/dist/foundation/launch-context/index.d.ts +12 -0
  129. package/dist/foundation/launch-context/index.js +26 -0
  130. package/dist/foundation/launch-guardian/exit-watcher.d.ts +14 -0
  131. package/dist/foundation/launch-guardian/exit-watcher.js +94 -0
  132. package/dist/foundation/launch-guardian/main.d.ts +7 -1
  133. package/dist/foundation/launch-guardian/main.js +60 -7
  134. package/dist/foundation/lifecycle/session-repository-context.js +16 -2
  135. package/dist/foundation/process-containment/{native-guardian-containment.d.ts → addon-containment.d.ts} +7 -5
  136. package/dist/foundation/process-containment/addon-containment.js +139 -0
  137. package/dist/foundation/process-containment/addon-process-inspector.d.ts +11 -0
  138. package/dist/foundation/process-containment/addon-process-inspector.js +36 -0
  139. package/dist/foundation/process-containment/addon.d.ts +42 -0
  140. package/dist/foundation/process-containment/addon.js +57 -0
  141. package/dist/foundation/process-containment/artifact.d.ts +1 -1
  142. package/dist/foundation/process-containment/artifact.js +6 -5
  143. package/dist/foundation/process-containment/contracts.d.ts +2 -0
  144. package/dist/foundation/process-containment/index.d.ts +4 -4
  145. package/dist/foundation/process-containment/index.js +3 -3
  146. package/dist/foundation/process-containment/native-process-inspector.d.ts +2 -1
  147. package/dist/foundation/process-containment/native-process-inspector.js +10 -10
  148. package/dist/foundation/release/automatic-update.d.ts +37 -0
  149. package/dist/foundation/release/automatic-update.js +265 -0
  150. package/dist/foundation/release/bootstrap.d.ts +7 -9
  151. package/dist/foundation/release/bootstrap.js +107 -24
  152. package/dist/foundation/release/cohort-state.d.ts +1 -1
  153. package/dist/foundation/release/cohort-state.js +1 -1
  154. package/dist/foundation/release/dependency-certification.js +54 -19
  155. package/dist/foundation/release/early-accent.d.ts +12 -0
  156. package/dist/foundation/release/early-accent.js +59 -0
  157. package/dist/foundation/release/index.d.ts +2 -2
  158. package/dist/foundation/release/index.js +2 -2
  159. package/dist/foundation/release/latest-release.d.ts +24 -2
  160. package/dist/foundation/release/latest-release.js +51 -1
  161. package/dist/foundation/release/progress-palette.generated.d.ts +137 -3
  162. package/dist/foundation/release/progress-palette.generated.js +137 -3
  163. package/dist/foundation/release/release-gc.d.ts +3 -0
  164. package/dist/foundation/release/release-gc.js +59 -8
  165. package/dist/foundation/release/release-store.d.ts +12 -0
  166. package/dist/foundation/release/release-store.js +124 -2
  167. package/dist/foundation/release/update-execution-lease.d.ts +48 -0
  168. package/dist/foundation/release/update-execution-lease.js +161 -0
  169. package/dist/foundation/release/update.d.ts +12 -7
  170. package/dist/foundation/release/update.js +281 -196
  171. package/dist/foundation/resident-tabs/bounded-host-command.d.ts +18 -0
  172. package/dist/foundation/resident-tabs/bounded-host-command.js +39 -0
  173. package/dist/foundation/resident-tabs/bridge-client.d.ts +70 -0
  174. package/dist/foundation/resident-tabs/bridge-client.js +321 -0
  175. package/dist/foundation/resident-tabs/doctor.d.ts +28 -0
  176. package/dist/foundation/resident-tabs/doctor.js +166 -0
  177. package/dist/foundation/resident-tabs/draft-checkpoint.d.ts +27 -0
  178. package/dist/foundation/resident-tabs/draft-checkpoint.js +145 -0
  179. package/dist/foundation/resident-tabs/ensure-terminal-host.d.ts +36 -0
  180. package/dist/foundation/resident-tabs/ensure-terminal-host.js +151 -0
  181. package/dist/foundation/resident-tabs/fault-injection.d.ts +8 -0
  182. package/dist/foundation/resident-tabs/fault-injection.js +26 -0
  183. package/dist/foundation/resident-tabs/fixture-control.d.ts +7 -0
  184. package/dist/foundation/resident-tabs/fixture-control.js +35 -0
  185. package/dist/foundation/resident-tabs/host-entry.d.ts +1 -0
  186. package/dist/foundation/resident-tabs/host-entry.js +17 -0
  187. package/dist/foundation/resident-tabs/index.d.ts +12 -0
  188. package/dist/foundation/resident-tabs/index.js +6 -0
  189. package/dist/foundation/resident-tabs/maintenance.d.ts +39 -0
  190. package/dist/foundation/resident-tabs/maintenance.js +75 -0
  191. package/dist/foundation/resident-tabs/progress-observation-schema.d.ts +34 -0
  192. package/dist/foundation/resident-tabs/progress-observation-schema.js +1 -0
  193. package/dist/foundation/resident-tabs/progress-observation.d.ts +4 -0
  194. package/dist/foundation/resident-tabs/progress-observation.js +150 -0
  195. package/dist/foundation/resident-tabs/prompt-journal.d.ts +63 -0
  196. package/dist/foundation/resident-tabs/prompt-journal.js +213 -0
  197. package/dist/foundation/resident-tabs/protocol.d.ts +12 -0
  198. package/dist/foundation/resident-tabs/protocol.js +195 -0
  199. package/dist/foundation/resident-tabs/recovery.d.ts +26 -0
  200. package/dist/foundation/resident-tabs/recovery.js +205 -0
  201. package/dist/foundation/resident-tabs/release-holds.d.ts +28 -0
  202. package/dist/foundation/resident-tabs/release-holds.js +75 -0
  203. package/dist/foundation/resident-tabs/routes.d.ts +5 -0
  204. package/dist/foundation/resident-tabs/routes.js +5 -0
  205. package/dist/foundation/resident-tabs/routing.d.ts +11 -0
  206. package/dist/foundation/resident-tabs/routing.js +10 -0
  207. package/dist/foundation/resident-tabs/session-sync.d.ts +14 -0
  208. package/dist/foundation/resident-tabs/session-sync.js +37 -0
  209. package/dist/foundation/resident-tabs/settings.d.ts +12 -0
  210. package/dist/foundation/resident-tabs/settings.js +58 -0
  211. package/dist/foundation/resident-tabs/terminal-host-artifact.d.ts +14 -0
  212. package/dist/foundation/resident-tabs/terminal-host-artifact.js +78 -0
  213. package/dist/foundation/resident-tabs/zip-archive.d.ts +9 -0
  214. package/dist/foundation/resident-tabs/zip-archive.js +56 -0
  215. package/dist/foundation/session-writer-lock/index.d.ts +30 -0
  216. package/dist/foundation/session-writer-lock/index.js +203 -0
  217. package/dist/foundation/startup/startup-descriptor.js +2 -2
  218. package/dist/foundation/terminal-cleanup/index.d.ts +1 -1
  219. package/dist/foundation/terminal-cleanup/index.js +1 -1
  220. package/dist/foundation/terminal-cleanup/terminal-reset.d.ts +6 -0
  221. package/dist/foundation/terminal-cleanup/terminal-reset.js +6 -0
  222. package/dist/integrations/pi/components/editor-interaction.d.ts +2 -0
  223. package/dist/integrations/pi/components/modal-frame.d.ts +17 -1
  224. package/dist/integrations/pi/components/modal-frame.js +48 -9
  225. package/dist/integrations/pi/components/models-dialog.js +4 -52
  226. package/dist/integrations/pi/components/owned-editor-ux.d.ts +6 -1
  227. package/dist/integrations/pi/components/owned-editor-ux.js +138 -11
  228. package/dist/integrations/pi/components/resources/builtin-themes.d.ts +4 -4
  229. package/dist/integrations/pi/components/resources/builtin-themes.js +4 -4
  230. package/dist/integrations/pi/components/share-operation-dialog.d.ts +2 -0
  231. package/dist/integrations/pi/components/share-operation-dialog.js +2 -1
  232. package/dist/integrations/pi/components/shell-editor-autocomplete.js +58 -36
  233. package/dist/integrations/pi/components/shell-extension-ui.js +79 -60
  234. package/dist/integrations/pi/components/shell-footer-status.d.ts +1 -1
  235. package/dist/integrations/pi/components/shell-footer-status.js +21 -5
  236. package/dist/integrations/pi/components/shell-hotkey-sections.js +1 -1
  237. package/dist/integrations/pi/components/shell-presenters-info.d.ts +5 -2
  238. package/dist/integrations/pi/components/shell-presenters-info.js +18 -4
  239. package/dist/integrations/pi/components/shell-presenters-transcript.js +4 -1
  240. package/dist/integrations/pi/components/shell-selectors-dialogs.js +5 -1
  241. package/dist/integrations/pi/components/shell-shared-facade.d.ts +12 -1
  242. package/dist/integrations/pi/components/skills-dialog.js +2 -2
  243. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.d.ts +1 -1
  244. package/dist/integrations/pi/components/upstream/adjacent/core/keybindings.js +17 -4
  245. package/dist/integrations/pi/components/upstream/assets/earendil-image.json +2 -2
  246. package/dist/integrations/pi/components/upstream/components/countdown-timer.d.ts +1 -1
  247. package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +1 -1
  248. package/dist/integrations/pi/components/upstream/components/extension-editor.d.ts +1 -1
  249. package/dist/integrations/pi/components/upstream/components/extension-editor.js +1 -1
  250. package/dist/integrations/pi/components/upstream/components/extension-input.js +1 -1
  251. package/dist/integrations/pi/components/upstream/components/extension-selector.js +1 -1
  252. package/dist/integrations/pi/components/upstream/components/mermaid.js +1 -1
  253. package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +8 -6
  254. package/dist/integrations/pi/components/upstream/components/owned-editor.js +16 -9
  255. package/dist/integrations/pi/components/upstream/components/pi-logo.js +1 -1
  256. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.d.ts +4 -4
  257. package/dist/integrations/pi/components/upstream/components/scoped-models-selector.js +2 -2
  258. package/dist/integrations/pi/components/upstream/components/session-footer.d.ts +2 -1
  259. package/dist/integrations/pi/components/upstream/components/session-footer.js +31 -25
  260. package/dist/integrations/pi/components/upstream/components/session-selector-search.js +1 -1
  261. package/dist/integrations/pi/components/upstream/components/session-selector.js +8 -7
  262. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.d.ts +1 -1
  263. package/dist/integrations/pi/components/upstream/components/skill-invocation-message.js +1 -1
  264. package/dist/integrations/pi/components/upstream/components/status-indicator.d.ts +2 -2
  265. package/dist/integrations/pi/components/upstream/components/status-indicator.js +3 -3
  266. package/dist/integrations/pi/components/upstream/components/themed-text.d.ts +1 -1
  267. package/dist/integrations/pi/components/upstream/components/themed-text.js +1 -1
  268. package/dist/integrations/pi/components/upstream/components/thinking-selector.d.ts +8 -7
  269. package/dist/integrations/pi/components/upstream/components/thinking-selector.js +10 -9
  270. package/dist/integrations/pi/components/upstream/components/tool-execution.d.ts +2 -6
  271. package/dist/integrations/pi/components/upstream/components/tool-execution.js +103 -101
  272. package/dist/integrations/pi/components/upstream/components/tree-selector.d.ts +9 -9
  273. package/dist/integrations/pi/components/upstream/components/tree-selector.js +13 -21
  274. package/dist/integrations/pi/components/upstream/components/trust-selector.js +1 -1
  275. package/dist/integrations/pi/components/upstream/external-editor.js +1 -1
  276. package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +2 -2
  277. package/dist/integrations/pi/components/upstream/history/editor-core.js +7 -5
  278. package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +1 -1
  279. package/dist/integrations/pi/components/upstream/history/kill-ring.js +1 -1
  280. package/dist/integrations/pi/components/upstream/history/printable-key.js +1 -1
  281. package/dist/integrations/pi/components/upstream/history/text-helpers.js +1 -1
  282. package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +1 -1
  283. package/dist/integrations/pi/components/upstream/history/undo-stack.js +1 -1
  284. package/dist/integrations/pi/components/upstream/history/word-navigation.js +1 -1
  285. package/dist/integrations/pi/components/upstream/model-search.d.ts +1 -1
  286. package/dist/integrations/pi/components/upstream/program-status-reporter.d.ts +1 -1
  287. package/dist/integrations/pi/components/upstream/theme/theme-controller.d.ts +1 -1
  288. package/dist/integrations/pi/components/upstream/theme/theme.d.ts +5 -0
  289. package/dist/integrations/pi/components/upstream/theme/theme.js +29 -2
  290. package/dist/integrations/pi/engine/adapter.d.ts +5 -77
  291. package/dist/integrations/pi/engine/adapter.js +95 -394
  292. package/dist/integrations/pi/engine/command-dispatch.d.ts +13 -0
  293. package/dist/integrations/pi/engine/command-dispatch.js +57 -0
  294. package/dist/integrations/pi/engine/host.js +2 -2
  295. package/dist/integrations/pi/engine/offline-settings-port.d.ts +23 -0
  296. package/dist/integrations/pi/engine/offline-settings-port.js +53 -0
  297. package/dist/integrations/pi/engine/pi-settings-metadata.json +14 -2
  298. package/dist/integrations/pi/engine/ports.d.ts +56 -0
  299. package/dist/integrations/pi/engine/ports.js +93 -0
  300. package/dist/integrations/pi/engine/prompt-suggestions.d.ts +1 -0
  301. package/dist/integrations/pi/engine/prompt-suggestions.js +40 -0
  302. package/dist/integrations/pi/engine/resources/changelog.json +4 -4
  303. package/dist/integrations/pi/engine/runtime-integration.js +102 -29
  304. package/dist/integrations/pi/engine/session-runtime.d.ts +0 -6
  305. package/dist/integrations/pi/engine/session-runtime.js +13 -5
  306. package/dist/integrations/pi/engine/session-selection.d.ts +3 -0
  307. package/dist/integrations/pi/engine/session-selection.js +45 -9
  308. package/dist/integrations/pi/engine/settings-bridge.d.ts +5 -0
  309. package/dist/integrations/pi/engine/settings-bridge.js +15 -0
  310. package/dist/integrations/pi/engine/settings-port.js +11 -15
  311. package/dist/integrations/pi/engine/view-state.d.ts +42 -0
  312. package/dist/integrations/pi/engine/view-state.js +126 -0
  313. package/dist/integrations/pi/engine/workflow-contexts.js +10 -1
  314. package/dist/integrations/pi/engine/workflow-runner.js +74 -5
  315. package/dist/integrations/pi/engine/workflow-support.d.ts +12 -0
  316. package/dist/integrations/pi/engine/workflow-support.js +36 -0
  317. package/dist/integrations/pi/engine/workflows.d.ts +3 -1
  318. package/dist/integrations/pi/engine/workflows.js +1 -0
  319. package/dist/integrations/pi/startup-public.js +257 -310
  320. package/dist/integrations/pi/startup-public.manifest.json +564 -440
  321. package/dist/integrations/pi/tui-runtime/adapter.d.ts +6 -0
  322. package/dist/integrations/pi/tui-runtime/adapter.js +32 -1
  323. package/dist/integrations/pi/tui-runtime/contracts.d.ts +5 -0
  324. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +12 -1
  325. package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +31 -2
  326. package/dist/native/darwin-arm64/manifest.json +10 -7
  327. package/dist/native/darwin-arm64/process-guardian.node +0 -0
  328. package/dist/native/darwin-arm64/terminal-host-THIRD-PARTY-NOTICES.txt +10500 -0
  329. package/dist/native/darwin-arm64/terminal-host.manifest.json +46 -0
  330. package/dist/native/darwin-arm64/terminal-host.node +0 -0
  331. package/dist/native/darwin-x64/manifest.json +23 -0
  332. package/dist/native/darwin-x64/process-guardian.node +0 -0
  333. package/dist/native/darwin-x64/terminal-host-THIRD-PARTY-NOTICES.txt +10737 -0
  334. package/dist/native/darwin-x64/terminal-host.manifest.json +46 -0
  335. package/dist/native/darwin-x64/terminal-host.node +0 -0
  336. package/dist/native/linux-x64/manifest.json +10 -7
  337. package/dist/native/linux-x64/process-guardian.node +0 -0
  338. package/dist/native/linux-x64/terminal-host-THIRD-PARTY-NOTICES.txt +11226 -0
  339. package/dist/native/linux-x64/terminal-host.manifest.json +46 -0
  340. package/dist/native/linux-x64/terminal-host.node +0 -0
  341. package/dist/native/win32-x64/manifest.json +10 -7
  342. package/dist/native/win32-x64/process-guardian.node +0 -0
  343. package/dist/native/win32-x64/terminal-host-THIRD-PARTY-NOTICES.txt +10757 -0
  344. package/dist/native/win32-x64/terminal-host.manifest.json +46 -0
  345. package/dist/native/win32-x64/terminal-host.node +0 -0
  346. package/dist/product-identity.d.ts +3 -3
  347. package/dist/product-identity.js +4 -4
  348. package/dist/product-identity.json +16 -2
  349. package/dist/runtime-payload-inventory.json +6330 -6677
  350. package/dist/ui/apps/host.d.ts +2 -0
  351. package/dist/ui/apps/host.js +7 -1
  352. package/dist/ui/components/dialog-panel.d.ts +17 -8
  353. package/dist/ui/components/dialog-panel.js +117 -41
  354. package/dist/ui/components/index.d.ts +5 -5
  355. package/dist/ui/components/index.js +4 -4
  356. package/dist/ui/components/line-input.d.ts +4 -1
  357. package/dist/ui/components/line-input.js +3 -1
  358. package/dist/ui/components/prompt-input.d.ts +11 -8
  359. package/dist/ui/components/prompt-input.js +15 -13
  360. package/dist/ui/components/scrollbar.d.ts +1 -1
  361. package/dist/ui/components/scrollbar.js +1 -1
  362. package/dist/ui/components/selection-copy.d.ts +3 -3
  363. package/dist/ui/components/selection-copy.js +16 -1
  364. package/dist/ui/components/spans.js +2 -2
  365. package/dist/ui/components/submitted-prompt.d.ts +9 -6
  366. package/dist/ui/components/submitted-prompt.js +20 -12
  367. package/dist/ui/components/surface.js +4 -2
  368. package/dist/ui/components/text-selection.d.ts +1 -2
  369. package/dist/ui/components/text-selection.js +5 -2
  370. package/dist/ui/components/text.d.ts +3 -6
  371. package/dist/ui/components/text.js +6 -8
  372. package/dist/ui/components/transcript-viewport.d.ts +9 -2
  373. package/dist/ui/components/transcript-viewport.js +179 -58
  374. package/dist/ui/settings/declarations.d.ts +90 -16
  375. package/dist/ui/settings/declarations.js +67 -14
  376. package/dist/ui/settings/early-accent.d.ts +81 -0
  377. package/dist/ui/settings/early-accent.js +50 -0
  378. package/dist/ui/settings/index.d.ts +4 -2
  379. package/dist/ui/settings/index.js +2 -1
  380. package/dist/ui/settings/manager.d.ts +16 -3
  381. package/dist/ui/settings/manager.js +122 -33
  382. package/dist/ui/settings/migrations.d.ts +6 -0
  383. package/dist/ui/settings/migrations.js +73 -0
  384. package/dist/ui/settings/profile-document.d.ts +26 -0
  385. package/dist/ui/settings/profile-document.js +164 -0
  386. package/dist/ui/settings/progress-palette.generated.d.ts +139 -0
  387. package/dist/ui/settings/progress-palette.generated.js +139 -0
  388. package/dist/ui/settings/sections.d.ts +4 -0
  389. package/dist/ui/settings/sections.js +9 -3
  390. package/docs/architecture/boundaries.md +24 -9
  391. package/docs/architecture/evidence/resident-tabs/linux-x64.md +37 -0
  392. package/docs/architecture/evidence/resident-tabs/macos-arm64.md +36 -0
  393. package/docs/architecture/evidence/resident-tabs/macos-x64.md +35 -0
  394. package/docs/architecture/evidence/resident-tabs/windows-x64.md +36 -0
  395. package/docs/architecture/internal-naming.md +3 -1
  396. package/docs/architecture/process-guardian-provenance.md +18 -10
  397. package/docs/architecture/project-structure.md +8 -0
  398. package/docs/architecture/resident-tabs-requirements.md +18 -0
  399. package/docs/architecture/resident-tabs.md +649 -0
  400. package/docs/architecture/response-copy-delivery.md +1 -1
  401. package/docs/architecture/terminal-host-proof-gate.md +2 -0
  402. package/docs/architecture/terminal-host-provenance.md +16 -4
  403. package/docs/architecture/tool-image-presentation.md +2 -1
  404. package/docs/architecture/toolchain.md +11 -9
  405. package/docs/ci-release-runbook.md +14 -7
  406. package/docs/features/launch-profiles.md +11 -8
  407. package/docs/features/prompt-history.md +41 -20
  408. package/docs/manual-resident-tabs-acceptance.md +51 -0
  409. package/docs/openspec-archive-automation.md +49 -22
  410. package/docs/validation.md +49 -9
  411. package/package.json +19 -6
  412. package/dist/foundation/process-containment/darwin-process-inspector.d.ts +0 -5
  413. package/dist/foundation/process-containment/darwin-process-inspector.js +0 -7
  414. package/dist/foundation/process-containment/native-guardian-containment.js +0 -152
  415. package/dist/foundation/process-containment/windows-process-inspector.d.ts +0 -19
  416. package/dist/foundation/process-containment/windows-process-inspector.js +0 -56
  417. package/dist/native/darwin-arm64/process-guardian +0 -0
  418. package/dist/native/linux-x64/process-guardian +0 -0
  419. package/dist/native/win32-x64/process-guardian.exe +0 -0
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/custom-editor.ts.
4
4
  * Modifications: A1-owned class name and synchronized A1 keybinding contract replace the nominal
5
5
  * private upstream keybinding constructor dependency; bare A1 injects the shared Settings/agent input
6
- * frame, transient contextual-suggestion branch, and explicit body geometry for selection and
7
- * above-prompt autocomplete with a one-cell outer gutter. Bare A1 also clears a sole top-level
8
- * slash-command search on Escape and completes a selected or exact completed tunnel command with `:`
9
- * and reopens the menu on its tunnel rows, and synchronously retains then refreshes an exact top-level
10
- * command menu after Tab applies its row.
6
+ * frame, configurable empty-input placeholder branch, transient contextual-suggestion branch, and
7
+ * explicit body geometry for selection and above-prompt autocomplete with a one-cell outer gutter.
8
+ * Bare A1 also clears a sole top-level slash-command search on Escape and completes a selected or
9
+ * exact completed tunnel command with `:` and reopens the menu on its tunnel rows, and synchronously
10
+ * retains then refreshes an exact top-level command menu after Tab applies its row.
11
11
  * Deviations: owned-shared-input-frame, above-prompt-autocomplete-placement,
12
12
  * clear-command-search-on-escape, command-tunnel-colon-completion, keep-command-menu-open-after-tab.
13
13
  */
@@ -25,6 +25,7 @@ export function createOwnedEditorClass(Base) {
25
25
  #inputPresentation;
26
26
  #styleSuggestion;
27
27
  #styleSuggestionCaret;
28
+ #placeholder;
28
29
  #terminalRows;
29
30
  #getVisualLineCount;
30
31
  #clearCommandSearchOnEscape;
@@ -37,6 +38,7 @@ export function createOwnedEditorClass(Base) {
37
38
  this.#inputPresentation = options.inputPresentation;
38
39
  this.#styleSuggestion = options.styleSuggestion ?? (text => text);
39
40
  this.#styleSuggestionCaret = options.styleSuggestionCaret ?? (text => `\u001b[7m${text}\u001b[27m`);
41
+ this.#placeholder = options.placeholder ?? null;
40
42
  this.#terminalRows = options.terminalRows ?? (() => 24);
41
43
  this.#getVisualLineCount = options.getVisualLineCount;
42
44
  this.#clearCommandSearchOnEscape = options.clearCommandSearchOnEscape === true;
@@ -70,7 +72,12 @@ export function createOwnedEditorClass(Base) {
70
72
  return rows;
71
73
  }
72
74
  if (this.#promptSuggestion !== null && this.canPresentPromptSuggestion()) {
73
- const rows = this.#renderSuggestion(width);
75
+ const rows = this.#renderSuggestion(width, this.#promptSuggestion);
76
+ this.#renderedBodyRowCount = rows.length;
77
+ return rows;
78
+ }
79
+ if (this.#placeholder !== null && this.focused && this.getText().length === 0 && !this.isShowingAutocomplete()) {
80
+ const rows = this.#renderSuggestion(width, this.#placeholder);
74
81
  this.#renderedBodyRowCount = rows.length;
75
82
  return rows;
76
83
  }
@@ -176,10 +183,10 @@ export function createOwnedEditorClass(Base) {
176
183
  triggerAutocomplete(this);
177
184
  return true;
178
185
  }
179
- #renderSuggestion(width) {
186
+ #renderSuggestion(width, suggestion) {
180
187
  const presentation = this.#inputPresentation;
181
188
  const { paddingX, contentWidth, layoutWidth } = presentation.geometry(width, this.getPaddingX());
182
- const chunks = wrapTextWithAnsi(this.#promptSuggestion ?? "", layoutWidth).map(text => ({ text }));
189
+ const chunks = wrapTextWithAnsi(suggestion, layoutWidth).map(text => ({ text }));
183
190
  const maxVisible = Math.max(5, Math.floor(this.#terminalRows() * 0.3));
184
191
  const visible = chunks.slice(0, maxVisible);
185
192
  const leftPadding = " ".repeat(paddingX);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/pi-logo.ts.
4
4
  * Modifications: Remapped the private theme import to A1's public-backed adapter and composed the
5
5
  * fixed-color logo into the owned startup header.
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/scoped-models-selector.ts.
4
4
  * Modifications: Source-synchronized scoped-model selector port: preserve session-only toggles,
5
5
  * search, bulk/provider/reorder actions, dirty state, Ctrl+S persistence, refresh status,
6
6
  * cancellation, and focus while remapping theme and public helper imports; local key labels preserve
7
7
  * pinned platform formatting before layout without changing binding identities, and bare A1 uses the
8
- * shared semantic modal shortcut row and compact padded modal frame while immediately closing on the
9
- * implicit Ctrl+C selection-cancel alias without advertising it.
10
- * Deviations: owned-modal-shortcut-hints, owned-dialog-ctrl-c-cancel.
8
+ * shared semantic modal shortcut row, accent search marker, and compact padded modal frame while
9
+ * immediately closing on the implicit Ctrl+C selection-cancel alias without advertising it.
10
+ * Deviations: owned-modal-shortcut-hints, owned-dialog-ctrl-c-cancel, owned-dialog-search-marker.
11
11
  */
12
12
  interface ScopedModel {
13
13
  readonly provider: string;
@@ -1,7 +1,7 @@
1
1
  import { Container, fuzzyFilter, getKeybindings, Input, Spacer, Text, } from "@earendil-works/pi-tui";
2
2
  import { DynamicBorder } from "../../../startup-public.js";
3
3
  import { getModelSearchText } from "../model-search.js";
4
- import { addPiModalHeader, adoptPiModalFrame } from "../../modal-frame.js";
4
+ import { addPiModalHeader, addPiModalSearchInput, adoptPiModalFrame } from "../../modal-frame.js";
5
5
  import { DIALOG_CLOSE_SHORTCUT_HINT, paintPiBorder, piTheme, renderPiModalShortcutHints } from "../../theme.js";
6
6
  // Rationale: upstream's capitalized hint formatter is private to the package; the same mapping lives here.
7
7
  function keyDisplayText(keybinding) {
@@ -118,7 +118,7 @@ export class ScopedModelsSelectorComponent extends Container {
118
118
  this.addChild(new Spacer(1));
119
119
  // Search input
120
120
  this.searchInput = new Input();
121
- this.addChild(this.searchInput);
121
+ addPiModalSearchInput(this, this.searchInput);
122
122
  this.addChild(new Spacer(1));
123
123
  // List container
124
124
  this.listContainer = new Container();
@@ -5,7 +5,8 @@ export declare class SessionFooter implements Component {
5
5
  private readonly cwd;
6
6
  private readonly profile;
7
7
  private readonly show;
8
- constructor(getView: () => OwnedUiSessionViewModel, cwd: string, profile?: "pi" | "a1", show?: () => boolean);
8
+ private readonly showSessionName;
9
+ constructor(getView: () => OwnedUiSessionViewModel, cwd: string, profile?: "pi" | "a1", show?: () => boolean, showSessionName?: boolean);
9
10
  invalidate(): void;
10
11
  dispose(): void;
11
12
  render(width: number): string[];
@@ -1,12 +1,10 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/footer.ts.
4
- * Modifications: Consumes neutral owned-UI view data instead of a fabricated concrete AgentSession;
5
- * preserves the latest physical route for virtual models; an explicit bare-A1 profile colors the
6
- * thinking-level name, renders its repository-context path, and reserves its linked pull-request badge
7
- * before path truncation while preserving the remaining footer layout and formatting; replacement
8
- * surfaces may suppress a thinking level they already present.
9
- * Deviations: owned-status-level-color, owned-pull-request-badge.
4
+ * Modifications: Owned UI/routing; A1 level color, linked PRs, resident names, dim ellipsis and model
5
+ * priority; Pi unchanged.
6
+ * Deviations: owned-status-level-color, owned-pull-request-badge, owned-resident-session-name,
7
+ * owned-footer-ellipsis, owned-footer-model-priority.
10
8
  */
11
9
  import { isAbsolute, relative, resolve, sep } from "node:path";
12
10
  import { hyperlink, truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
@@ -16,11 +14,13 @@ export class SessionFooter {
16
14
  cwd;
17
15
  profile;
18
16
  show;
19
- constructor(getView, cwd, profile = "pi", show = () => true) {
17
+ showSessionName;
18
+ constructor(getView, cwd, profile = "pi", show = () => true, showSessionName = true) {
20
19
  this.getView = getView;
21
20
  this.cwd = cwd;
22
21
  this.profile = profile;
23
22
  this.show = show;
23
+ this.showSessionName = showSessionName;
24
24
  }
25
25
  invalidate() { }
26
26
  dispose() { }
@@ -28,6 +28,7 @@ export class SessionFooter {
28
28
  const view = this.getView();
29
29
  const usage = view.status.usage;
30
30
  const theme = piTheme();
31
+ const dimEllipsis = theme.fg("dim", this.profile === "a1" ? "…" : "...");
31
32
  const input = usage?.input ?? 0;
32
33
  const output = usage?.output ?? 0;
33
34
  const cacheRead = usage?.cacheRead ?? 0;
@@ -35,17 +36,17 @@ export class SessionFooter {
35
36
  const cost = usage?.cost ?? 0;
36
37
  const contextWindow = usage?.contextWindow ?? 0;
37
38
  const contextPercentValue = usage?.contextPercent ?? 0;
38
- const contextPercentSource = usage?.contextAvailable === false ? undefined : usage?.contextPercent;
39
- const contextPercent = contextPercentSource !== null ? contextPercentValue.toFixed(1) : "?";
39
+ const contextPercent = usage?.contextAvailable !== false && usage?.contextPercent === null
40
+ ? "?" : contextPercentValue.toFixed(1);
40
41
  const repositoryPath = this.profile === "a1" ? view.status.footer?.repositoryPath ?? this.cwd : this.cwd;
41
42
  let pwd = formatCwd(repositoryPath, process.env.HOME || process.env.USERPROFILE);
42
43
  const branch = view.status.footer?.branch;
43
44
  if (branch)
44
45
  pwd = `${pwd} (${branch})`;
45
- const sessionName = view.status.footer?.sessionName;
46
+ const sessionName = this.showSessionName ? view.status.footer?.sessionName : null;
46
47
  const pullRequest = this.profile === "a1" ? view.status.footer?.pullRequest : null;
47
48
  let pathRow;
48
- if (pullRequest === undefined || pullRequest === null) {
49
+ if (pullRequest == null) {
49
50
  pathRow = theme.fg("dim", sessionName ? `${pwd} • ${sessionName}` : pwd);
50
51
  }
51
52
  else {
@@ -56,12 +57,10 @@ export class SessionFooter {
56
57
  if (visibleWidth(full) <= width)
57
58
  pathRow = full;
58
59
  else if (visibleWidth(badge) <= width) {
59
- const pathWidth = Math.max(0, width - visibleWidth(badge));
60
- const path = pathWidth === 0 ? "" : truncateToWidth(theme.fg("dim", pwd), pathWidth, theme.fg("dim", "..."));
61
- pathRow = path + badge;
60
+ pathRow = truncateToWidth(theme.fg("dim", pwd), width - visibleWidth(badge), dimEllipsis) + badge;
62
61
  }
63
62
  else {
64
- pathRow = truncateToWidth(badge, width, theme.fg("dim", "..."));
63
+ pathRow = truncateToWidth(badge, width, dimEllipsis);
65
64
  }
66
65
  }
67
66
  const parts = [];
@@ -85,7 +84,7 @@ export class SessionFooter {
85
84
  let left = parts.join(" ");
86
85
  let leftWidth = visibleWidth(left);
87
86
  if (leftWidth > width) {
88
- left = truncateToWidth(left, width, "...");
87
+ left = truncateToWidth(left, width, this.profile === "a1" ? dimEllipsis : "...");
89
88
  leftWidth = visibleWidth(left);
90
89
  }
91
90
  const modelName = view.activeModel?.modelId ?? "no-model";
@@ -93,6 +92,7 @@ export class SessionFooter {
93
92
  ? view.activeModel === null || !this.show() ? theme.fg("dim", modelName)
94
93
  : theme.fg("dim", `${modelName} • `) + theme.getThinkingBorderColor(view.thinkingLevel)(view.thinkingLevel)
95
94
  : view.activeModel === null || view.thinkingLevel === "off" || !this.show() ? modelName : `${modelName} • ${view.thinkingLevel}`;
95
+ const modelLevel = rightWithoutProvider;
96
96
  const routed = view.routedModel;
97
97
  if (routed) {
98
98
  const level = routed.thinkingLevel === undefined ? "" : ` • ${routed.thinkingLevel}`;
@@ -106,9 +106,18 @@ export class SessionFooter {
106
106
  if (leftWidth + 2 + visibleWidth(right) > width)
107
107
  right = rightWithoutProvider;
108
108
  }
109
+ if (this.profile === "a1" && leftWidth + 2 + visibleWidth(right) > width) {
110
+ right = [rightWithoutProvider, modelLevel].find(value => visibleWidth(value) + 2 <= width)
111
+ ?? truncateToWidth(theme.fg("dim", modelName), width, dimEllipsis);
112
+ left = truncateToWidth(left, Math.max(0, width - visibleWidth(right) - 2), dimEllipsis);
113
+ leftWidth = visibleWidth(left);
114
+ }
109
115
  const rightWidth = visibleWidth(right);
110
116
  let line;
111
- if (leftWidth + 2 + rightWidth <= width) {
117
+ if (this.profile === "a1" && leftWidth === 0) {
118
+ line = " ".repeat(Math.max(0, width - rightWidth)) + right;
119
+ }
120
+ else if (leftWidth + 2 + rightWidth <= width) {
112
121
  line = left + " ".repeat(width - leftWidth - rightWidth) + right;
113
122
  }
114
123
  else {
@@ -121,13 +130,13 @@ export class SessionFooter {
121
130
  line = left;
122
131
  }
123
132
  const lines = [
124
- truncateToWidth(pathRow, width, theme.fg("dim", "...")),
133
+ truncateToWidth(pathRow, width, dimEllipsis),
125
134
  theme.fg("dim", left) + (this.profile === "a1" ? line.slice(left.length) : theme.fg("dim", line.slice(left.length))),
126
135
  ];
127
136
  const statuses = view.status.footer?.extensionStatuses ?? [];
128
137
  if (statuses.length > 0) {
129
138
  const status = [...statuses].sort(([leftKey], [rightKey]) => leftKey.localeCompare(rightKey)).map(([, text]) => sanitize(text)).join(" ");
130
- lines.push(truncateToWidth(status, width, theme.fg("dim", "...")));
139
+ lines.push(truncateToWidth(status, width, dimEllipsis));
131
140
  }
132
141
  return lines;
133
142
  }
@@ -147,11 +156,8 @@ function formatTokens(count) {
147
156
  function formatCwd(cwd, home) {
148
157
  if (!home)
149
158
  return cwd;
150
- const resolvedCwd = resolve(cwd);
151
- const resolvedHome = resolve(home);
152
- const relativeToHome = relative(resolvedHome, resolvedCwd);
153
- const inside = relativeToHome === "" || (relativeToHome !== ".." && !relativeToHome.startsWith(`..${sep}`) && !isAbsolute(relativeToHome));
154
- if (!inside)
159
+ const relativeToHome = relative(resolve(home), resolve(cwd));
160
+ if (isAbsolute(relativeToHome) || relativeToHome === ".." || relativeToHome.startsWith(`..${sep}`))
155
161
  return cwd;
156
162
  return relativeToHome === "" ? "~" : `~${sep}${relativeToHome}`;
157
163
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/session-selector-search.ts.
4
4
  * Modifications: Source-synchronized session search port with only the public SessionInfo type import
5
5
  * remapped.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/session-selector.ts.
4
4
  * Modifications: Source-synchronized session selector port: preserve threaded/current/all scope,
5
5
  * search, sort, named/path filters, rename, delete confirmation, active-session protection,
@@ -7,11 +7,12 @@
7
7
  * keybindings/theme, canonical path handling, reverse-Tab scope cycling, and the shared bare-A1 modal
8
8
  * frame with standalone title, standard outer rules, stable filter/status row, progressive result
9
9
  * paging, aligned result columns, Session Tree selection roles, quiet in-field query syntax guidance,
10
- * and one-line bottom dynamic feedback and searchable-dialog shortcut footer. Selected session rows
11
- * use the blue selection surface while preserving title and metadata foregrounds; the active session
12
- * title uses success green independently of keyboard selection, with ordinary text weight.
10
+ * an accent dialog-search marker, and one-line bottom dynamic feedback and searchable-dialog shortcut
11
+ * footer. Selected session rows use the blue selection surface while preserving title and metadata
12
+ * foregrounds; the active session title uses success green independently of keyboard selection, with
13
+ * ordinary text weight.
13
14
  * Deviations: owned-modal-shortcut-hints, owned-resume-session-dialog,
14
- * owned-standard-dialog-selection.
15
+ * owned-standard-dialog-selection, owned-dialog-search-marker.
15
16
  */
16
17
  import { spawnSync } from "node:child_process";
17
18
  import { existsSync, realpathSync } from "node:fs";
@@ -20,7 +21,7 @@ import * as os from "node:os";
20
21
  import { Container, getKeybindings, Input, matchesKey, sliceByColumn, Spacer, Text, truncateToWidth, visibleWidth, } from "@earendil-works/pi-tui";
21
22
  import { KeybindingsManager } from "../adjacent/core/keybindings.js";
22
23
  import { DynamicBorder } from "../../../startup-public.js";
23
- import { addPiModalHeader, adoptPiModalFrame } from "../../modal-frame.js";
24
+ import { addPiModalHeader, adoptPiModalFrame, renderPiModalSearchInput } from "../../modal-frame.js";
24
25
  import { DIALOG_CLOSE_SHORTCUT_HINT, paintPiBorder, piTheme, renderPiModalShortcutHints } from "../../theme.js";
25
26
  const theme = new Proxy({}, {
26
27
  get(_target, property) {
@@ -408,7 +409,7 @@ class SessionList {
408
409
  render(width) {
409
410
  const lines = [];
410
411
  // Render search input
411
- lines.push(...this.searchInput.render(width));
412
+ lines.push(...renderPiModalSearchInput(this.searchInput, width));
412
413
  lines.push(""); // Blank line after search
413
414
  if (this.filteredSessions.length === 0) {
414
415
  let emptyMessage;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/skill-invocation-message.ts.
4
4
  * Modifications: Mechanical port uses A1's public pi-tui instance, owned theme boundary, and
5
5
  * root-instance keybinding registry because the public coding-agent component closes over a second
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/skill-invocation-message.ts.
4
4
  * Modifications: Mechanical port uses A1's public pi-tui instance, owned theme boundary, and
5
5
  * root-instance keybinding registry because the public coding-agent component closes over a second
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/status-indicator.ts.
4
4
  * Modifications: Mechanical source port with public package-root keybinding, Loader, and owned
5
5
  * theme/countdown imports plus ECMAScript private fields.
@@ -24,7 +24,7 @@ export declare class RetryStatusIndicator extends StatusIndicator {
24
24
  }
25
25
  export type CompactionStatusReason = "manual" | "threshold" | "overflow";
26
26
  export declare class CompactionStatusIndicator extends StatusIndicator {
27
- constructor(ui: TUI, reason: CompactionStatusReason);
27
+ constructor(ui: TUI, reason: CompactionStatusReason, colorFn?: (text: string) => string);
28
28
  }
29
29
  export declare class BranchSummaryStatusIndicator extends StatusIndicator {
30
30
  constructor(ui: TUI);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/status-indicator.ts.
4
4
  * Modifications: Mechanical source port with public package-root keybinding, Loader, and owned
5
5
  * theme/countdown imports plus ECMAScript private fields.
@@ -47,12 +47,12 @@ export class RetryStatusIndicator extends StatusIndicator {
47
47
  }
48
48
  }
49
49
  export class CompactionStatusIndicator extends StatusIndicator {
50
- constructor(ui, reason) {
50
+ constructor(ui, reason, colorFn) {
51
51
  const cancelHint = `(${keyText("app.interrupt")} to cancel)`;
52
52
  const label = reason === "manual"
53
53
  ? `Compacting context... ${cancelHint}`
54
54
  : `${reason === "overflow" ? "Context overflow detected, " : ""}Auto-compacting... ${cancelHint}`;
55
- super("compaction", ui, spinner => piTheme().fg("accent", spinner), text => piTheme().fg("muted", text), label);
55
+ super("compaction", ui, colorFn ?? (spinner => piTheme().fg("accent", spinner)), colorFn ?? (text => piTheme().fg("muted", text)), label);
56
56
  }
57
57
  }
58
58
  export class BranchSummaryStatusIndicator extends StatusIndicator {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/themed-text.ts.
4
4
  * Modifications: Integrated invalidation-aware text into A1's owned startup header and notices;
5
5
  * repository formatting only.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/themed-text.ts.
4
4
  * Modifications: Integrated invalidation-aware text into A1's owned startup header and notices;
5
5
  * repository formatting only.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/thinking-selector.ts.
4
4
  * Modifications: Preserve the searchable thinking-level selector, current/default semantics,
5
5
  * selection, and focus while accepting the active bare-A1 cycle-key label from the shell, styling the
@@ -8,13 +8,14 @@
8
8
  * levels, and rendering exclusive radio-style default markers before level names, an item-adjacent
9
9
  * active checkmark, and aligned muted descriptions. Bare A1 persists defaults immediately on Space,
10
10
  * closes through the implicit Ctrl+C-capable selection-cancel action, and uses the shared compact
11
- * semantic shortcut row with Type/search guidance without advertising that alias. All list and border
12
- * colors use the owned theme and its explicit color mode. Selected rows use the shared bare-A1 blue
13
- * selection surface only around the rendered item span, with the existing accent arrow, normal-text
14
- * level, and preserved current/default/description roles. The comparison profile retains the public
15
- * pinned component.
11
+ * semantic shortcut row with Type/search guidance and an accent search marker without advertising that
12
+ * alias. All list and border colors use the owned theme and its explicit color mode. Selected rows use
13
+ * the shared bare-A1 blue selection surface only around the rendered item span, with the existing
14
+ * accent arrow, normal-text level, and preserved current/default/description roles. The comparison
15
+ * profile retains the public pinned component.
16
16
  * Deviations: owned-modal-shortcut-hints, owned-level-cycle-shortcut, owned-thinking-selector-heading,
17
- * owned-thinking-selector-controls, owned-dialog-ctrl-c-cancel, owned-standard-dialog-selection.
17
+ * owned-thinking-selector-controls, owned-dialog-ctrl-c-cancel, owned-standard-dialog-selection,
18
+ * owned-dialog-search-marker.
18
19
  */
19
20
  import { Container, type Focusable, SelectList } from "@earendil-works/pi-tui";
20
21
  export type ThinkingSelectorLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Provenance: @earendil-works/pi-coding-agent 1.1.0 (MIT), commit abe508e1b89912adde45528136c3221eb69acdd7,
2
+ * Provenance: @earendil-works/pi-coding-agent 1.4.0 (MIT), commit 4a080252f06caf63a525d7873c5d94d3c23887e0,
3
3
  * packages/coding-agent/src/modes/interactive/components/thinking-selector.ts.
4
4
  * Modifications: Preserve the searchable thinking-level selector, current/default semantics,
5
5
  * selection, and focus while accepting the active bare-A1 cycle-key label from the shell, styling the
@@ -8,17 +8,18 @@
8
8
  * levels, and rendering exclusive radio-style default markers before level names, an item-adjacent
9
9
  * active checkmark, and aligned muted descriptions. Bare A1 persists defaults immediately on Space,
10
10
  * closes through the implicit Ctrl+C-capable selection-cancel action, and uses the shared compact
11
- * semantic shortcut row with Type/search guidance without advertising that alias. All list and border
12
- * colors use the owned theme and its explicit color mode. Selected rows use the shared bare-A1 blue
13
- * selection surface only around the rendered item span, with the existing accent arrow, normal-text
14
- * level, and preserved current/default/description roles. The comparison profile retains the public
15
- * pinned component.
11
+ * semantic shortcut row with Type/search guidance and an accent search marker without advertising that
12
+ * alias. All list and border colors use the owned theme and its explicit color mode. Selected rows use
13
+ * the shared bare-A1 blue selection surface only around the rendered item span, with the existing
14
+ * accent arrow, normal-text level, and preserved current/default/description roles. The comparison
15
+ * profile retains the public pinned component.
16
16
  * Deviations: owned-modal-shortcut-hints, owned-level-cycle-shortcut, owned-thinking-selector-heading,
17
- * owned-thinking-selector-controls, owned-dialog-ctrl-c-cancel, owned-standard-dialog-selection.
17
+ * owned-thinking-selector-controls, owned-dialog-ctrl-c-cancel, owned-standard-dialog-selection,
18
+ * owned-dialog-search-marker.
18
19
  */
19
20
  import { Container, fuzzyFilter, getKeybindings, Input, SelectList, Spacer, Text, } from "@earendil-works/pi-tui";
20
21
  import { DynamicBorder } from "../../../startup-public.js";
21
- import { addPiModalHeader, adoptPiModalFrame } from "../../modal-frame.js";
22
+ import { addPiModalHeader, addPiModalSearchInput, adoptPiModalFrame } from "../../modal-frame.js";
22
23
  import { DIALOG_CLOSE_SHORTCUT_HINT, piTheme, renderPiModalListRow, renderPiModalShortcutHints } from "../../theme.js";
23
24
  const THINKING_SELECT_LIST_LAYOUT = {
24
25
  minPrimaryColumnWidth: 12,
@@ -88,7 +89,7 @@ export class OwnedThinkingSelectorComponent extends Container {
88
89
  this.addChild(new Spacer(1));
89
90
  this.searchInput = new Input();
90
91
  this.searchInput.onSubmit = () => this.selectList.handleInput("\r");
91
- this.addChild(this.searchInput);
92
+ addPiModalSearchInput(this, this.searchInput);
92
93
  this.addChild(new Spacer(1));
93
94
  const initialList = this.buildSelectList(this.allItems, currentLevel);
94
95
  this.selectList = initialList.list;
@@ -4,7 +4,6 @@ type ToolPresentationResult = Parameters<NonNullable<ToolDefinition["renderResul
4
4
  isError: boolean;
5
5
  durationMs?: number;
6
6
  };
7
- /** The caller-side merge 0.85.1 performs before handing a definition to the component: built-in renderers fill the gaps. */
8
7
  type ToolRendererInput = ToolRenderers | ToolDefinition<any, any, any>;
9
8
  export declare function mergeBuiltInRenderers(definition: ToolRendererInput | undefined, builtIn: ToolRendererInput | undefined): ToolRenderers | undefined;
10
9
  export interface ToolExecutionOptions {
@@ -15,7 +14,6 @@ export interface ToolExecutionOptions {
15
14
  export declare class ToolExecutionComponent extends Container {
16
15
  private contentBox;
17
16
  private contentText;
18
- private contentTextRegion;
19
17
  private selfRenderContainer;
20
18
  private selfRenderHeight;
21
19
  private callRendererComponent;
@@ -43,9 +41,6 @@ export declare class ToolExecutionComponent extends Container {
43
41
  private result;
44
42
  private hideComponent;
45
43
  constructor(toolName: string, toolCallId: string, args: any, options: ToolExecutionOptions | undefined, toolDefinition: ToolRenderers | ToolDefinition<any, any, any> | undefined, ui: TUI, cwd: string);
46
- private getCallRenderer;
47
- private getResultRenderer;
48
- private hasRendererDefinition;
49
44
  private getRenderShell;
50
45
  private getRenderContext;
51
46
  private createCallFallback;
@@ -55,7 +50,6 @@ export declare class ToolExecutionComponent extends Container {
55
50
  markExecutionStarted(): void;
56
51
  setArgsComplete(): void;
57
52
  updateResult(result: ToolPresentationResult, isPartial?: boolean): void;
58
- /** End mount ownership without letting an obsolete conversion or extension callback repaint. */
59
53
  dispose(): void;
60
54
  setExpanded(expanded: boolean): void;
61
55
  setOutputPad(outputPad: number): void;
@@ -65,6 +59,8 @@ export declare class ToolExecutionComponent extends Container {
65
59
  render(width: number): string[];
66
60
  handleMouse(event: TuiMouseEvent): ReturnType<Container["handleMouse"]>;
67
61
  private updateDisplay;
62
+ private callTheme;
63
+ private appendRenderer;
68
64
  private composeDisplay;
69
65
  private getTextOutput;
70
66
  private formatToolExecution;