@ashx-j/lunr 0.1.0

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 (2269) hide show
  1. package/CHANGELOG.md +5042 -0
  2. package/README.md +691 -0
  3. package/dist/builtin-extensions/ashxj-spinners.d.ts +3 -0
  4. package/dist/builtin-extensions/ashxj-spinners.d.ts.map +1 -0
  5. package/dist/builtin-extensions/ashxj-spinners.js +271 -0
  6. package/dist/builtin-extensions/ashxj-spinners.js.map +1 -0
  7. package/dist/builtin-extensions/ashxj-thinking.d.ts +65 -0
  8. package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -0
  9. package/dist/builtin-extensions/ashxj-thinking.js +308 -0
  10. package/dist/builtin-extensions/ashxj-thinking.js.map +1 -0
  11. package/dist/builtin-extensions/ashxj-tui.d.ts +137 -0
  12. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -0
  13. package/dist/builtin-extensions/ashxj-tui.js +579 -0
  14. package/dist/builtin-extensions/ashxj-tui.js.map +1 -0
  15. package/dist/builtin-extensions/index.d.ts +11 -0
  16. package/dist/builtin-extensions/index.d.ts.map +1 -0
  17. package/dist/builtin-extensions/index.js +62 -0
  18. package/dist/builtin-extensions/index.js.map +1 -0
  19. package/dist/builtin-extensions/lunr-behavior.d.ts +43 -0
  20. package/dist/builtin-extensions/lunr-behavior.d.ts.map +1 -0
  21. package/dist/builtin-extensions/lunr-behavior.js +201 -0
  22. package/dist/builtin-extensions/lunr-behavior.js.map +1 -0
  23. package/dist/builtin-extensions/lunr-cron.d.ts +26 -0
  24. package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -0
  25. package/dist/builtin-extensions/lunr-cron.js +346 -0
  26. package/dist/builtin-extensions/lunr-cron.js.map +1 -0
  27. package/dist/builtin-extensions/lunr-local-providers/index.d.ts +20 -0
  28. package/dist/builtin-extensions/lunr-local-providers/index.d.ts.map +1 -0
  29. package/dist/builtin-extensions/lunr-local-providers/index.js +108 -0
  30. package/dist/builtin-extensions/lunr-local-providers/index.js.map +1 -0
  31. package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts +51 -0
  32. package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts.map +1 -0
  33. package/dist/builtin-extensions/lunr-local-providers/local-servers.js +128 -0
  34. package/dist/builtin-extensions/lunr-local-providers/local-servers.js.map +1 -0
  35. package/dist/builtin-extensions/lunr-plan-tools.d.ts +25 -0
  36. package/dist/builtin-extensions/lunr-plan-tools.d.ts.map +1 -0
  37. package/dist/builtin-extensions/lunr-plan-tools.js +59 -0
  38. package/dist/builtin-extensions/lunr-plan-tools.js.map +1 -0
  39. package/dist/builtin-extensions/lunr-skill-creator/index.d.ts +12 -0
  40. package/dist/builtin-extensions/lunr-skill-creator/index.d.ts.map +1 -0
  41. package/dist/builtin-extensions/lunr-skill-creator/index.js +18 -0
  42. package/dist/builtin-extensions/lunr-skill-creator/index.js.map +1 -0
  43. package/dist/builtin-extensions/lunr-skill-creator/skills/skill-creator/SKILL.md +68 -0
  44. package/dist/builtin-extensions/lunr-todos.d.ts +52 -0
  45. package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -0
  46. package/dist/builtin-extensions/lunr-todos.js +189 -0
  47. package/dist/builtin-extensions/lunr-todos.js.map +1 -0
  48. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts +23 -0
  49. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts.map +1 -0
  50. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js +77 -0
  51. package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js.map +1 -0
  52. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.d.ts +18 -0
  53. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.d.ts.map +1 -0
  54. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.js +165 -0
  55. package/dist/builtin-extensions/narumiruna-pi-goal/src/command.js.map +1 -0
  56. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts +19 -0
  57. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts.map +1 -0
  58. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js +495 -0
  59. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js.map +1 -0
  60. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts +10 -0
  61. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -0
  62. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +857 -0
  63. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -0
  64. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.d.ts +57 -0
  65. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.d.ts.map +1 -0
  66. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.js +225 -0
  67. package/dist/builtin-extensions/narumiruna-pi-goal/src/persistence.js.map +1 -0
  68. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.d.ts +20 -0
  69. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.d.ts.map +1 -0
  70. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.js +75 -0
  71. package/dist/builtin-extensions/narumiruna-pi-goal/src/prompts.js.map +1 -0
  72. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.d.ts +16 -0
  73. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.d.ts.map +1 -0
  74. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.js +67 -0
  75. package/dist/builtin-extensions/narumiruna-pi-goal/src/queue.js.map +1 -0
  76. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts +157 -0
  77. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts.map +1 -0
  78. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js +825 -0
  79. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js.map +1 -0
  80. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.d.ts +22 -0
  81. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.d.ts.map +1 -0
  82. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.js +64 -0
  83. package/dist/builtin-extensions/narumiruna-pi-goal/src/settings.js.map +1 -0
  84. package/dist/builtin-extensions/pi-intercom/broker/broker.d.ts +2 -0
  85. package/dist/builtin-extensions/pi-intercom/broker/broker.d.ts.map +1 -0
  86. package/dist/builtin-extensions/pi-intercom/broker/broker.js +541 -0
  87. package/dist/builtin-extensions/pi-intercom/broker/broker.js.map +1 -0
  88. package/dist/builtin-extensions/pi-intercom/broker/client.d.ts +39 -0
  89. package/dist/builtin-extensions/pi-intercom/broker/client.d.ts.map +1 -0
  90. package/dist/builtin-extensions/pi-intercom/broker/client.js +484 -0
  91. package/dist/builtin-extensions/pi-intercom/broker/client.js.map +1 -0
  92. package/dist/builtin-extensions/pi-intercom/broker/framing.d.ts +14 -0
  93. package/dist/builtin-extensions/pi-intercom/broker/framing.d.ts.map +1 -0
  94. package/dist/builtin-extensions/pi-intercom/broker/framing.js +74 -0
  95. package/dist/builtin-extensions/pi-intercom/broker/framing.js.map +1 -0
  96. package/dist/builtin-extensions/pi-intercom/broker/paths.d.ts +22 -0
  97. package/dist/builtin-extensions/pi-intercom/broker/paths.d.ts.map +1 -0
  98. package/dist/builtin-extensions/pi-intercom/broker/paths.js +88 -0
  99. package/dist/builtin-extensions/pi-intercom/broker/paths.js.map +1 -0
  100. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts +27 -0
  101. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -0
  102. package/dist/builtin-extensions/pi-intercom/broker/spawn.js +313 -0
  103. package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -0
  104. package/dist/builtin-extensions/pi-intercom/config.d.ts +22 -0
  105. package/dist/builtin-extensions/pi-intercom/config.d.ts.map +1 -0
  106. package/dist/builtin-extensions/pi-intercom/config.js +103 -0
  107. package/dist/builtin-extensions/pi-intercom/config.js.map +1 -0
  108. package/dist/builtin-extensions/pi-intercom/index.d.ts +3 -0
  109. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -0
  110. package/dist/builtin-extensions/pi-intercom/index.js +1800 -0
  111. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -0
  112. package/dist/builtin-extensions/pi-intercom/reply-tracker.d.ts +27 -0
  113. package/dist/builtin-extensions/pi-intercom/reply-tracker.d.ts.map +1 -0
  114. package/dist/builtin-extensions/pi-intercom/reply-tracker.js +101 -0
  115. package/dist/builtin-extensions/pi-intercom/reply-tracker.js.map +1 -0
  116. package/dist/builtin-extensions/pi-intercom/types.d.ts +84 -0
  117. package/dist/builtin-extensions/pi-intercom/types.d.ts.map +1 -0
  118. package/dist/builtin-extensions/pi-intercom/types.js +2 -0
  119. package/dist/builtin-extensions/pi-intercom/types.js.map +1 -0
  120. package/dist/builtin-extensions/pi-intercom/ui/compose.d.ts +27 -0
  121. package/dist/builtin-extensions/pi-intercom/ui/compose.d.ts.map +1 -0
  122. package/dist/builtin-extensions/pi-intercom/ui/compose.js +112 -0
  123. package/dist/builtin-extensions/pi-intercom/ui/compose.js.map +1 -0
  124. package/dist/builtin-extensions/pi-intercom/ui/inline-message.d.ts +15 -0
  125. package/dist/builtin-extensions/pi-intercom/ui/inline-message.d.ts.map +1 -0
  126. package/dist/builtin-extensions/pi-intercom/ui/inline-message.js +86 -0
  127. package/dist/builtin-extensions/pi-intercom/ui/inline-message.js.map +1 -0
  128. package/dist/builtin-extensions/pi-intercom/ui/session-list.d.ts +18 -0
  129. package/dist/builtin-extensions/pi-intercom/ui/session-list.d.ts.map +1 -0
  130. package/dist/builtin-extensions/pi-intercom/ui/session-list.js +134 -0
  131. package/dist/builtin-extensions/pi-intercom/ui/session-list.js.map +1 -0
  132. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.d.ts +81 -0
  133. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.d.ts.map +1 -0
  134. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.js +273 -0
  135. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/bemol.js.map +1 -0
  136. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts +13 -0
  137. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts.map +1 -0
  138. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js +163 -0
  139. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js.map +1 -0
  140. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.d.ts +34 -0
  141. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.d.ts.map +1 -0
  142. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.js +148 -0
  143. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/locks.js.map +1 -0
  144. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.d.ts +59 -0
  145. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.d.ts.map +1 -0
  146. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.js +172 -0
  147. package/dist/builtin-extensions/pi-lsp-extension/src/file-sync.js.map +1 -0
  148. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts +25 -0
  149. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -0
  150. package/dist/builtin-extensions/pi-lsp-extension/src/index.js +521 -0
  151. package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -0
  152. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts +80 -0
  153. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts.map +1 -0
  154. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js +366 -0
  155. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js.map +1 -0
  156. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.d.ts +22 -0
  157. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.d.ts.map +1 -0
  158. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.js +476 -0
  159. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-daemon.js.map +1 -0
  160. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts +141 -0
  161. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts.map +1 -0
  162. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js +633 -0
  163. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js.map +1 -0
  164. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.d.ts +30 -0
  165. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.d.ts.map +1 -0
  166. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.js +52 -0
  167. package/dist/builtin-extensions/pi-lsp-extension/src/resolve-provider.js.map +1 -0
  168. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.d.ts +12 -0
  169. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.d.ts.map +1 -0
  170. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.js +18 -0
  171. package/dist/builtin-extensions/pi-lsp-extension/src/shared/constants.js.map +1 -0
  172. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.d.ts +10 -0
  173. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.d.ts.map +1 -0
  174. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.js +18 -0
  175. package/dist/builtin-extensions/pi-lsp-extension/src/shared/debug.js.map +1 -0
  176. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.d.ts +9 -0
  177. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.d.ts.map +1 -0
  178. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.js +29 -0
  179. package/dist/builtin-extensions/pi-lsp-extension/src/shared/format.js.map +1 -0
  180. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.d.ts +10 -0
  181. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.d.ts.map +1 -0
  182. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.js +51 -0
  183. package/dist/builtin-extensions/pi-lsp-extension/src/shared/language-map.js.map +1 -0
  184. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.d.ts +33 -0
  185. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.d.ts.map +1 -0
  186. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.js +191 -0
  187. package/dist/builtin-extensions/pi-lsp-extension/src/shared/resolve-position.js.map +1 -0
  188. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.d.ts +14 -0
  189. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.d.ts.map +1 -0
  190. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.js +15 -0
  191. package/dist/builtin-extensions/pi-lsp-extension/src/shared/timing.js.map +1 -0
  192. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.d.ts +23 -0
  193. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.d.ts.map +1 -0
  194. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.js +259 -0
  195. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-actions.js.map +1 -0
  196. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.d.ts +23 -0
  197. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.d.ts.map +1 -0
  198. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.js +197 -0
  199. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-overview.js.map +1 -0
  200. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts +23 -0
  201. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts.map +1 -0
  202. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js +131 -0
  203. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js.map +1 -0
  204. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.d.ts +18 -0
  205. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.d.ts.map +1 -0
  206. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.js +87 -0
  207. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-search.js.map +1 -0
  208. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.d.ts +34 -0
  209. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.d.ts.map +1 -0
  210. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.js +347 -0
  211. package/dist/builtin-extensions/pi-lsp-extension/src/tools/completions.js.map +1 -0
  212. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.d.ts +20 -0
  213. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.d.ts.map +1 -0
  214. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.js +166 -0
  215. package/dist/builtin-extensions/pi-lsp-extension/src/tools/definition.js.map +1 -0
  216. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.d.ts +22 -0
  217. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.d.ts.map +1 -0
  218. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.js +228 -0
  219. package/dist/builtin-extensions/pi-lsp-extension/src/tools/diagnostics.js.map +1 -0
  220. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.d.ts +19 -0
  221. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.d.ts.map +1 -0
  222. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.js +143 -0
  223. package/dist/builtin-extensions/pi-lsp-extension/src/tools/hover.js.map +1 -0
  224. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.d.ts +20 -0
  225. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.d.ts.map +1 -0
  226. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.js +98 -0
  227. package/dist/builtin-extensions/pi-lsp-extension/src/tools/references.js.map +1 -0
  228. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.d.ts +22 -0
  229. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.d.ts.map +1 -0
  230. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.js +150 -0
  231. package/dist/builtin-extensions/pi-lsp-extension/src/tools/rename.js.map +1 -0
  232. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.d.ts +18 -0
  233. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.d.ts.map +1 -0
  234. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.js +211 -0
  235. package/dist/builtin-extensions/pi-lsp-extension/src/tools/symbols.js.map +1 -0
  236. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.d.ts +44 -0
  237. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.d.ts.map +1 -0
  238. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.js +188 -0
  239. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/parser-manager.js.map +1 -0
  240. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.d.ts +58 -0
  241. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.d.ts.map +1 -0
  242. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.js +260 -0
  243. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/pattern-compiler.js.map +1 -0
  244. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts +33 -0
  245. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts.map +1 -0
  246. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js +102 -0
  247. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js.map +1 -0
  248. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts +38 -0
  249. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts.map +1 -0
  250. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js +276 -0
  251. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js.map +1 -0
  252. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.d.ts +77 -0
  253. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.d.ts.map +1 -0
  254. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.js +339 -0
  255. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/symbol-extractor.js.map +1 -0
  256. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.d.ts +51 -0
  257. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.d.ts.map +1 -0
  258. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.js +219 -0
  259. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/workspace-index.js.map +1 -0
  260. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.d.ts +45 -0
  261. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.d.ts.map +1 -0
  262. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.js +30 -0
  263. package/dist/builtin-extensions/pi-lsp-extension/src/workspace-provider.js.map +1 -0
  264. package/dist/builtin-extensions/pi-mcp-adapter/abort.d.ts +3 -0
  265. package/dist/builtin-extensions/pi-mcp-adapter/abort.d.ts.map +1 -0
  266. package/dist/builtin-extensions/pi-mcp-adapter/abort.js +37 -0
  267. package/dist/builtin-extensions/pi-mcp-adapter/abort.js.map +1 -0
  268. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.d.ts +3 -0
  269. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.d.ts.map +1 -0
  270. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.js +22 -0
  271. package/dist/builtin-extensions/pi-mcp-adapter/agent-dir.js.map +1 -0
  272. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts +18 -0
  273. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts.map +1 -0
  274. package/dist/builtin-extensions/pi-mcp-adapter/commands.js +327 -0
  275. package/dist/builtin-extensions/pi-mcp-adapter/commands.js.map +1 -0
  276. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts +79 -0
  277. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts.map +1 -0
  278. package/dist/builtin-extensions/pi-mcp-adapter/config.js +557 -0
  279. package/dist/builtin-extensions/pi-mcp-adapter/config.js.map +1 -0
  280. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.d.ts +14 -0
  281. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.d.ts.map +1 -0
  282. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.js +61 -0
  283. package/dist/builtin-extensions/pi-mcp-adapter/consent-manager.js.map +1 -0
  284. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts +11 -0
  285. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts.map +1 -0
  286. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js +374 -0
  287. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js.map +1 -0
  288. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.d.ts +18 -0
  289. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.d.ts.map +1 -0
  290. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.js +309 -0
  291. package/dist/builtin-extensions/pi-mcp-adapter/elicitation-handler.js.map +1 -0
  292. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.d.ts +16 -0
  293. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.d.ts.map +1 -0
  294. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.js +23 -0
  295. package/dist/builtin-extensions/pi-mcp-adapter/error-signal.js.map +1 -0
  296. package/dist/builtin-extensions/pi-mcp-adapter/errors.d.ts +100 -0
  297. package/dist/builtin-extensions/pi-mcp-adapter/errors.d.ts.map +1 -0
  298. package/dist/builtin-extensions/pi-mcp-adapter/errors.js +167 -0
  299. package/dist/builtin-extensions/pi-mcp-adapter/errors.js.map +1 -0
  300. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.d.ts +10 -0
  301. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.d.ts.map +1 -0
  302. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.js +77 -0
  303. package/dist/builtin-extensions/pi-mcp-adapter/glimpse-ui.js.map +1 -0
  304. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts +17 -0
  305. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts.map +1 -0
  306. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js +413 -0
  307. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js.map +1 -0
  308. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts +3 -0
  309. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -0
  310. package/dist/builtin-extensions/pi-mcp-adapter/index.js +334 -0
  311. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -0
  312. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts +11 -0
  313. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -0
  314. package/dist/builtin-extensions/pi-mcp-adapter/init.js +296 -0
  315. package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -0
  316. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.d.ts +30 -0
  317. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.d.ts.map +1 -0
  318. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.js +80 -0
  319. package/dist/builtin-extensions/pi-mcp-adapter/lifecycle.js.map +1 -0
  320. package/dist/builtin-extensions/pi-mcp-adapter/logger.d.ts +52 -0
  321. package/dist/builtin-extensions/pi-mcp-adapter/logger.d.ts.map +1 -0
  322. package/dist/builtin-extensions/pi-mcp-adapter/logger.js +132 -0
  323. package/dist/builtin-extensions/pi-mcp-adapter/logger.js.map +1 -0
  324. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts +86 -0
  325. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts.map +1 -0
  326. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js +482 -0
  327. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js.map +1 -0
  328. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.d.ts +104 -0
  329. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.d.ts.map +1 -0
  330. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.js +252 -0
  331. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth.js.map +1 -0
  332. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts +45 -0
  333. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts.map +1 -0
  334. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js +305 -0
  335. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js.map +1 -0
  336. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts +111 -0
  337. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts.map +1 -0
  338. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js +302 -0
  339. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js.map +1 -0
  340. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.d.ts +59 -0
  341. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.d.ts.map +1 -0
  342. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.js +325 -0
  343. package/dist/builtin-extensions/pi-mcp-adapter/mcp-output-guard.js.map +1 -0
  344. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.d.ts +64 -0
  345. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.d.ts.map +1 -0
  346. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.js +777 -0
  347. package/dist/builtin-extensions/pi-mcp-adapter/mcp-panel.js.map +1 -0
  348. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.d.ts +77 -0
  349. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.d.ts.map +1 -0
  350. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.js +490 -0
  351. package/dist/builtin-extensions/pi-mcp-adapter/mcp-setup-panel.js.map +1 -0
  352. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts +32 -0
  353. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts.map +1 -0
  354. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js +160 -0
  355. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js.map +1 -0
  356. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.d.ts +7 -0
  357. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.d.ts.map +1 -0
  358. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.js +388 -0
  359. package/dist/builtin-extensions/pi-mcp-adapter/npx-resolver.js.map +1 -0
  360. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.d.ts +19 -0
  361. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.d.ts.map +1 -0
  362. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.js +53 -0
  363. package/dist/builtin-extensions/pi-mcp-adapter/oauth-handler.js.map +1 -0
  364. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.d.ts +13 -0
  365. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.d.ts.map +1 -0
  366. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.js +58 -0
  367. package/dist/builtin-extensions/pi-mcp-adapter/onboarding-state.js.map +1 -0
  368. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.d.ts +17 -0
  369. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.d.ts.map +1 -0
  370. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.js +17 -0
  371. package/dist/builtin-extensions/pi-mcp-adapter/panel-keys.js.map +1 -0
  372. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts +14 -0
  373. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts.map +1 -0
  374. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js +853 -0
  375. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js.map +1 -0
  376. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.d.ts +2 -0
  377. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.d.ts.map +1 -0
  378. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.js +16 -0
  379. package/dist/builtin-extensions/pi-mcp-adapter/resource-tools.js.map +1 -0
  380. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.d.ts +16 -0
  381. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.d.ts.map +1 -0
  382. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.js +209 -0
  383. package/dist/builtin-extensions/pi-mcp-adapter/sampling-handler.js.map +1 -0
  384. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts +58 -0
  385. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -0
  386. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +403 -0
  387. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -0
  388. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts +41 -0
  389. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts.map +1 -0
  390. package/dist/builtin-extensions/pi-mcp-adapter/state.js +2 -0
  391. package/dist/builtin-extensions/pi-mcp-adapter/state.js.map +1 -0
  392. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.d.ts +11 -0
  393. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.d.ts.map +1 -0
  394. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.js +178 -0
  395. package/dist/builtin-extensions/pi-mcp-adapter/tool-metadata.js.map +1 -0
  396. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.d.ts +11 -0
  397. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.d.ts.map +1 -0
  398. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.js +66 -0
  399. package/dist/builtin-extensions/pi-mcp-adapter/tool-registrar.js.map +1 -0
  400. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.d.ts +35 -0
  401. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.d.ts.map +1 -0
  402. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.js +107 -0
  403. package/dist/builtin-extensions/pi-mcp-adapter/tool-result-renderer.js.map +1 -0
  404. package/dist/builtin-extensions/pi-mcp-adapter/types.d.ts +286 -0
  405. package/dist/builtin-extensions/pi-mcp-adapter/types.d.ts.map +1 -0
  406. package/dist/builtin-extensions/pi-mcp-adapter/types.js +94 -0
  407. package/dist/builtin-extensions/pi-mcp-adapter/types.js.map +1 -0
  408. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.d.ts +10 -0
  409. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.d.ts.map +1 -0
  410. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.js +118 -0
  411. package/dist/builtin-extensions/pi-mcp-adapter/ui-resource-handler.js.map +1 -0
  412. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.d.ts +37 -0
  413. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.d.ts.map +1 -0
  414. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.js +524 -0
  415. package/dist/builtin-extensions/pi-mcp-adapter/ui-server.js.map +1 -0
  416. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.d.ts +27 -0
  417. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.d.ts.map +1 -0
  418. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.js +311 -0
  419. package/dist/builtin-extensions/pi-mcp-adapter/ui-session.js.map +1 -0
  420. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.d.ts +105 -0
  421. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.d.ts.map +1 -0
  422. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.js +60 -0
  423. package/dist/builtin-extensions/pi-mcp-adapter/ui-stream-types.js.map +1 -0
  424. package/dist/builtin-extensions/pi-mcp-adapter/utils.d.ts +18 -0
  425. package/dist/builtin-extensions/pi-mcp-adapter/utils.d.ts.map +1 -0
  426. package/dist/builtin-extensions/pi-mcp-adapter/utils.js +112 -0
  427. package/dist/builtin-extensions/pi-mcp-adapter/utils.js.map +1 -0
  428. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.d.ts +3 -0
  429. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.d.ts.map +1 -0
  430. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.js +15 -0
  431. package/dist/builtin-extensions/pi-mcp-adapter/vitest.config.js.map +1 -0
  432. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts +31 -0
  433. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts.map +1 -0
  434. package/dist/builtin-extensions/pi-ollama-cloud/index.js +120 -0
  435. package/dist/builtin-extensions/pi-ollama-cloud/index.js.map +1 -0
  436. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts +49 -0
  437. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts.map +1 -0
  438. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.d.ts +3 -0
  439. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.d.ts.map +1 -0
  440. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.js +1135 -0
  441. package/dist/builtin-extensions/pi-ollama-cloud/models.generated.js.map +1 -0
  442. package/dist/builtin-extensions/pi-ollama-cloud/models.js +239 -0
  443. package/dist/builtin-extensions/pi-ollama-cloud/models.js.map +1 -0
  444. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.d.ts +40 -0
  445. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.d.ts.map +1 -0
  446. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.js +80 -0
  447. package/dist/builtin-extensions/pi-ollama-cloud/thinking-levels.js.map +1 -0
  448. package/dist/builtin-extensions/pi-ollama-cloud/utils.d.ts +9 -0
  449. package/dist/builtin-extensions/pi-ollama-cloud/utils.d.ts.map +1 -0
  450. package/dist/builtin-extensions/pi-ollama-cloud/utils.js +52 -0
  451. package/dist/builtin-extensions/pi-ollama-cloud/utils.js.map +1 -0
  452. package/dist/builtin-extensions/pi-prompt-template-model/args.d.ts +56 -0
  453. package/dist/builtin-extensions/pi-prompt-template-model/args.d.ts.map +1 -0
  454. package/dist/builtin-extensions/pi-prompt-template-model/args.js +555 -0
  455. package/dist/builtin-extensions/pi-prompt-template-model/args.js.map +1 -0
  456. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.d.ts +22 -0
  457. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.d.ts.map +1 -0
  458. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.js +249 -0
  459. package/dist/builtin-extensions/pi-prompt-template-model/chain-parser.js.map +1 -0
  460. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.d.ts +20 -0
  461. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.d.ts.map +1 -0
  462. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.js +102 -0
  463. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-renderer.js.map +1 -0
  464. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.d.ts +30 -0
  465. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.d.ts.map +1 -0
  466. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.js +260 -0
  467. package/dist/builtin-extensions/pi-prompt-template-model/deterministic-step.js.map +1 -0
  468. package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts +3 -0
  469. package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts.map +1 -0
  470. package/dist/builtin-extensions/pi-prompt-template-model/index.js +1403 -0
  471. package/dist/builtin-extensions/pi-prompt-template-model/index.js.map +1 -0
  472. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.d.ts +8 -0
  473. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.d.ts.map +1 -0
  474. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.js +164 -0
  475. package/dist/builtin-extensions/pi-prompt-template-model/loop-utils.js.map +1 -0
  476. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.d.ts +22 -0
  477. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.d.ts.map +1 -0
  478. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.js +82 -0
  479. package/dist/builtin-extensions/pi-prompt-template-model/model-selection.js.map +1 -0
  480. package/dist/builtin-extensions/pi-prompt-template-model/notifications.d.ts +6 -0
  481. package/dist/builtin-extensions/pi-prompt-template-model/notifications.d.ts.map +1 -0
  482. package/dist/builtin-extensions/pi-prompt-template-model/notifications.js +21 -0
  483. package/dist/builtin-extensions/pi-prompt-template-model/notifications.js.map +1 -0
  484. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.d.ts +24 -0
  485. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.d.ts.map +1 -0
  486. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.js +56 -0
  487. package/dist/builtin-extensions/pi-prompt-template-model/prompt-execution.js.map +1 -0
  488. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts +80 -0
  489. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -0
  490. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +1234 -0
  491. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -0
  492. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.d.ts +11 -0
  493. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.d.ts.map +1 -0
  494. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.js +31 -0
  495. package/dist/builtin-extensions/pi-prompt-template-model/skill-loaded-renderer.js.map +1 -0
  496. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.d.ts +43 -0
  497. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.d.ts.map +1 -0
  498. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.js +177 -0
  499. package/dist/builtin-extensions/pi-prompt-template-model/subagent-renderer.js.map +1 -0
  500. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.d.ts +97 -0
  501. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.d.ts.map +1 -0
  502. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.js +64 -0
  503. package/dist/builtin-extensions/pi-prompt-template-model/subagent-runtime.js.map +1 -0
  504. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.d.ts +48 -0
  505. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.d.ts.map +1 -0
  506. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.js +550 -0
  507. package/dist/builtin-extensions/pi-prompt-template-model/subagent-step.js.map +1 -0
  508. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.d.ts +8 -0
  509. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.d.ts.map +1 -0
  510. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.js +230 -0
  511. package/dist/builtin-extensions/pi-prompt-template-model/subagent-widget.js.map +1 -0
  512. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.d.ts +10 -0
  513. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.d.ts.map +1 -0
  514. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.js +226 -0
  515. package/dist/builtin-extensions/pi-prompt-template-model/template-conditionals.js.map +1 -0
  516. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts +17 -0
  517. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -0
  518. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +201 -0
  519. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -0
  520. package/dist/builtin-extensions/pi-subagents/agents/context-builder.md +46 -0
  521. package/dist/builtin-extensions/pi-subagents/agents/deep-researcher.md +36 -0
  522. package/dist/builtin-extensions/pi-subagents/agents/delegate.md +12 -0
  523. package/dist/builtin-extensions/pi-subagents/agents/oracle.md +73 -0
  524. package/dist/builtin-extensions/pi-subagents/agents/planner.md +55 -0
  525. package/dist/builtin-extensions/pi-subagents/agents/research-writer.md +37 -0
  526. package/dist/builtin-extensions/pi-subagents/agents/researcher.md +52 -0
  527. package/dist/builtin-extensions/pi-subagents/agents/reviewer.md +79 -0
  528. package/dist/builtin-extensions/pi-subagents/agents/scout.md +50 -0
  529. package/dist/builtin-extensions/pi-subagents/agents/worker.md +55 -0
  530. package/dist/builtin-extensions/pi-subagents/index.d.ts +2 -0
  531. package/dist/builtin-extensions/pi-subagents/index.d.ts.map +1 -0
  532. package/dist/builtin-extensions/pi-subagents/index.js +3 -0
  533. package/dist/builtin-extensions/pi-subagents/index.js.map +1 -0
  534. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts +20 -0
  535. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts.map +1 -0
  536. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js +1273 -0
  537. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js.map +1 -0
  538. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts +49 -0
  539. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts.map +1 -0
  540. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js +252 -0
  541. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js.map +1 -0
  542. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts +3 -0
  543. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts.map +1 -0
  544. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js +6 -0
  545. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js.map +1 -0
  546. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts +3 -0
  547. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts.map +1 -0
  548. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js +23 -0
  549. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js.map +1 -0
  550. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts +8 -0
  551. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts.map +1 -0
  552. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js +143 -0
  553. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js.map +1 -0
  554. package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts +176 -0
  555. package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts.map +1 -0
  556. package/dist/builtin-extensions/pi-subagents/src/agents/agents.js +1326 -0
  557. package/dist/builtin-extensions/pi-subagents/src/agents/agents.js.map +1 -0
  558. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts +7 -0
  559. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts.map +1 -0
  560. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js +307 -0
  561. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js.map +1 -0
  562. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.d.ts +11 -0
  563. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.d.ts.map +1 -0
  564. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.js +84 -0
  565. package/dist/builtin-extensions/pi-subagents/src/agents/frontmatter.js.map +1 -0
  566. package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts +8 -0
  567. package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts.map +1 -0
  568. package/dist/builtin-extensions/pi-subagents/src/agents/identity.js +30 -0
  569. package/dist/builtin-extensions/pi-subagents/src/agents/identity.js.map +1 -0
  570. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts +35 -0
  571. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts.map +1 -0
  572. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js +151 -0
  573. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js.map +1 -0
  574. package/dist/builtin-extensions/pi-subagents/src/agents/skills.d.ts +33 -0
  575. package/dist/builtin-extensions/pi-subagents/src/agents/skills.d.ts.map +1 -0
  576. package/dist/builtin-extensions/pi-subagents/src/agents/skills.js +674 -0
  577. package/dist/builtin-extensions/pi-subagents/src/agents/skills.js.map +1 -0
  578. package/dist/builtin-extensions/pi-subagents/src/api/background-work.d.ts +35 -0
  579. package/dist/builtin-extensions/pi-subagents/src/api/background-work.d.ts.map +1 -0
  580. package/dist/builtin-extensions/pi-subagents/src/api/background-work.js +162 -0
  581. package/dist/builtin-extensions/pi-subagents/src/api/background-work.js.map +1 -0
  582. package/dist/builtin-extensions/pi-subagents/src/api/delegation.d.ts +113 -0
  583. package/dist/builtin-extensions/pi-subagents/src/api/delegation.d.ts.map +1 -0
  584. package/dist/builtin-extensions/pi-subagents/src/api/delegation.js +10 -0
  585. package/dist/builtin-extensions/pi-subagents/src/api/delegation.js.map +1 -0
  586. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts +34 -0
  587. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts.map +1 -0
  588. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js +125 -0
  589. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js.map +1 -0
  590. package/dist/builtin-extensions/pi-subagents/src/extension/config.d.ts +6 -0
  591. package/dist/builtin-extensions/pi-subagents/src/extension/config.d.ts.map +1 -0
  592. package/dist/builtin-extensions/pi-subagents/src/extension/config.js +37 -0
  593. package/dist/builtin-extensions/pi-subagents/src/extension/config.js.map +1 -0
  594. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts +21 -0
  595. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.d.ts.map +1 -0
  596. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js +70 -0
  597. package/dist/builtin-extensions/pi-subagents/src/extension/control-notices.js.map +1 -0
  598. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts +33 -0
  599. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts.map +1 -0
  600. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js +174 -0
  601. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js.map +1 -0
  602. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts +3 -0
  603. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -0
  604. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +175 -0
  605. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -0
  606. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +17 -0
  607. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -0
  608. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +577 -0
  609. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -0
  610. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.d.ts +57 -0
  611. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.d.ts.map +1 -0
  612. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.js +291 -0
  613. package/dist/builtin-extensions/pi-subagents/src/extension/rpc.js.map +1 -0
  614. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +225 -0
  615. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -0
  616. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +301 -0
  617. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -0
  618. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.d.ts +15 -0
  619. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.d.ts.map +1 -0
  620. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.js +23 -0
  621. package/dist/builtin-extensions/pi-subagents/src/extension/steering-notices.js.map +1 -0
  622. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +12 -0
  623. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -0
  624. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +225 -0
  625. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -0
  626. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts +35 -0
  627. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts.map +1 -0
  628. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js +144 -0
  629. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js.map +1 -0
  630. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +36 -0
  631. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -0
  632. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +626 -0
  633. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -0
  634. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +31 -0
  635. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -0
  636. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +331 -0
  637. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -0
  638. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts +131 -0
  639. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts.map +1 -0
  640. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js +491 -0
  641. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js.map +1 -0
  642. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +169 -0
  643. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -0
  644. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +1065 -0
  645. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -0
  646. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts +20 -0
  647. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -0
  648. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +500 -0
  649. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -0
  650. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +64 -0
  651. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -0
  652. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +525 -0
  653. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -0
  654. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts +96 -0
  655. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts.map +1 -0
  656. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js +336 -0
  657. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js.map +1 -0
  658. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts +15 -0
  659. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.d.ts.map +1 -0
  660. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js +47 -0
  661. package/dist/builtin-extensions/pi-subagents/src/runs/background/auto-drain.js.map +1 -0
  662. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.d.ts +31 -0
  663. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.d.ts.map +1 -0
  664. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js +260 -0
  665. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js.map +1 -0
  666. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts +35 -0
  667. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts.map +1 -0
  668. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js +146 -0
  669. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js.map +1 -0
  670. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.d.ts +52 -0
  671. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.d.ts.map +1 -0
  672. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.js +119 -0
  673. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-batcher.js.map +1 -0
  674. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.d.ts +14 -0
  675. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.d.ts.map +1 -0
  676. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.js +55 -0
  677. package/dist/builtin-extensions/pi-subagents/src/runs/background/completion-dedupe.js.map +1 -0
  678. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.d.ts +182 -0
  679. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.d.ts.map +1 -0
  680. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.js +487 -0
  681. package/dist/builtin-extensions/pi-subagents/src/runs/background/control-channel.js.map +1 -0
  682. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.d.ts +43 -0
  683. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.d.ts.map +1 -0
  684. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js +518 -0
  685. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js.map +1 -0
  686. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +63 -0
  687. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -0
  688. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +202 -0
  689. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -0
  690. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.d.ts +4 -0
  691. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.d.ts.map +1 -0
  692. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.js +47 -0
  693. package/dist/builtin-extensions/pi-subagents/src/runs/background/parallel-groups.js.map +1 -0
  694. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts +22 -0
  695. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -0
  696. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +247 -0
  697. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -0
  698. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.d.ts +23 -0
  699. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.d.ts.map +1 -0
  700. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.js +91 -0
  701. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-id-resolver.js.map +1 -0
  702. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts +24 -0
  703. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts.map +1 -0
  704. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js +453 -0
  705. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js.map +1 -0
  706. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts +48 -0
  707. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts.map +1 -0
  708. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js +473 -0
  709. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js.map +1 -0
  710. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.d.ts +34 -0
  711. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.d.ts.map +1 -0
  712. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.js +351 -0
  713. package/dist/builtin-extensions/pi-subagents/src/runs/background/stale-run-reconciler.js.map +1 -0
  714. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.d.ts +44 -0
  715. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.d.ts.map +1 -0
  716. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.js +228 -0
  717. package/dist/builtin-extensions/pi-subagents/src/runs/background/steering.js.map +1 -0
  718. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +2 -0
  719. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -0
  720. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +3513 -0
  721. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -0
  722. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts +95 -0
  723. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -0
  724. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js +387 -0
  725. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-wait.js.map +1 -0
  726. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +8 -0
  727. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -0
  728. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +6 -0
  729. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -0
  730. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.d.ts +7 -0
  731. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.d.ts.map +1 -0
  732. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.js +34 -0
  733. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-config.js.map +1 -0
  734. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts +4 -0
  735. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -0
  736. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +24 -0
  737. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -0
  738. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.d.ts +23 -0
  739. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.d.ts.map +1 -0
  740. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.js +230 -0
  741. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/async-steering-action.js.map +1 -0
  742. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts +127 -0
  743. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts.map +1 -0
  744. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js +1161 -0
  745. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js.map +1 -0
  746. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts +81 -0
  747. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -0
  748. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +1014 -0
  749. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -0
  750. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts +10 -0
  751. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -0
  752. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1374 -0
  753. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -0
  754. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +87 -0
  755. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -0
  756. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +3358 -0
  757. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -0
  758. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +64 -0
  759. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -0
  760. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +1122 -0
  761. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -0
  762. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts +19 -0
  763. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.d.ts.map +1 -0
  764. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js +106 -0
  765. package/dist/builtin-extensions/pi-subagents/src/runs/shared/chain-outputs.js.map +1 -0
  766. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.d.ts +27 -0
  767. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.d.ts.map +1 -0
  768. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.js +108 -0
  769. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-protocol.js.map +1 -0
  770. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +19 -0
  771. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -0
  772. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +51 -0
  773. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -0
  774. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts +49 -0
  775. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts.map +1 -0
  776. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js +274 -0
  777. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js.map +1 -0
  778. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.d.ts +33 -0
  779. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.d.ts.map +1 -0
  780. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.js +152 -0
  781. package/dist/builtin-extensions/pi-subagents/src/runs/shared/long-running-guard.js.map +1 -0
  782. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.d.ts +18 -0
  783. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.d.ts.map +1 -0
  784. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.js +326 -0
  785. package/dist/builtin-extensions/pi-subagents/src/runs/shared/mcp-direct-tool-allowlist.js.map +1 -0
  786. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +83 -0
  787. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -0
  788. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +291 -0
  789. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -0
  790. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.d.ts +49 -0
  791. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.d.ts.map +1 -0
  792. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.js +98 -0
  793. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-scope.js.map +1 -0
  794. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.d.ts +121 -0
  795. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.d.ts.map +1 -0
  796. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.js +881 -0
  797. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-events.js.map +1 -0
  798. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.d.ts +11 -0
  799. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.d.ts.map +1 -0
  800. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.js +50 -0
  801. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-path.js.map +1 -0
  802. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.d.ts +19 -0
  803. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.d.ts.map +1 -0
  804. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.js +109 -0
  805. package/dist/builtin-extensions/pi-subagents/src/runs/shared/nested-render.js.map +1 -0
  806. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +101 -0
  807. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -0
  808. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js +112 -0
  809. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -0
  810. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +80 -0
  811. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -0
  812. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +252 -0
  813. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -0
  814. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.d.ts +25 -0
  815. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.d.ts.map +1 -0
  816. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.js +111 -0
  817. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-spawn.js.map +1 -0
  818. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.d.ts +11 -0
  819. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.d.ts.map +1 -0
  820. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.js +57 -0
  821. package/dist/builtin-extensions/pi-subagents/src/runs/shared/run-history.js.map +1 -0
  822. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.d.ts +54 -0
  823. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.d.ts.map +1 -0
  824. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.js +244 -0
  825. package/dist/builtin-extensions/pi-subagents/src/runs/shared/session-lease.js.map +1 -0
  826. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.d.ts +50 -0
  827. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.d.ts.map +1 -0
  828. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.js +202 -0
  829. package/dist/builtin-extensions/pi-subagents/src/runs/shared/single-output.js.map +1 -0
  830. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.d.ts +22 -0
  831. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.d.ts.map +1 -0
  832. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.js +67 -0
  833. package/dist/builtin-extensions/pi-subagents/src/runs/shared/structured-output.js.map +1 -0
  834. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts +35 -0
  835. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.d.ts.map +1 -0
  836. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js +187 -0
  837. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-control.js.map +1 -0
  838. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts +22 -0
  839. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -0
  840. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +438 -0
  841. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -0
  842. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +35 -0
  843. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -0
  844. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +154 -0
  845. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -0
  846. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.d.ts +13 -0
  847. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.d.ts.map +1 -0
  848. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.js +51 -0
  849. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-availability.js.map +1 -0
  850. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.d.ts +16 -0
  851. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.d.ts.map +1 -0
  852. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.js +74 -0
  853. package/dist/builtin-extensions/pi-subagents/src/runs/shared/tool-budget.js.map +1 -0
  854. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.d.ts +14 -0
  855. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.d.ts.map +1 -0
  856. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.js +66 -0
  857. package/dist/builtin-extensions/pi-subagents/src/runs/shared/turn-budget.js.map +1 -0
  858. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.d.ts +30 -0
  859. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.d.ts.map +1 -0
  860. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.js +200 -0
  861. package/dist/builtin-extensions/pi-subagents/src/runs/shared/workflow-graph.js.map +1 -0
  862. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.d.ts +49 -0
  863. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.d.ts.map +1 -0
  864. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.js +473 -0
  865. package/dist/builtin-extensions/pi-subagents/src/runs/shared/worktree.js.map +1 -0
  866. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.d.ts +13 -0
  867. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.d.ts.map +1 -0
  868. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.js +104 -0
  869. package/dist/builtin-extensions/pi-subagents/src/shared/artifacts.js.map +1 -0
  870. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.d.ts +17 -0
  871. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.d.ts.map +1 -0
  872. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.js +68 -0
  873. package/dist/builtin-extensions/pi-subagents/src/shared/atomic-json.js.map +1 -0
  874. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.d.ts +36 -0
  875. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.d.ts.map +1 -0
  876. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.js +173 -0
  877. package/dist/builtin-extensions/pi-subagents/src/shared/child-transcript.js.map +1 -0
  878. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.d.ts +11 -0
  879. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.d.ts.map +1 -0
  880. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.js +26 -0
  881. package/dist/builtin-extensions/pi-subagents/src/shared/file-coalescer.js.map +1 -0
  882. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts +44 -0
  883. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts.map +1 -0
  884. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js +158 -0
  885. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js.map +1 -0
  886. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +34 -0
  887. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -0
  888. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +128 -0
  889. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -0
  890. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.d.ts +20 -0
  891. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.d.ts.map +1 -0
  892. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.js +59 -0
  893. package/dist/builtin-extensions/pi-subagents/src/shared/jsonl-writer.js.map +1 -0
  894. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.d.ts +31 -0
  895. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.d.ts.map +1 -0
  896. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.js +68 -0
  897. package/dist/builtin-extensions/pi-subagents/src/shared/model-info.js.map +1 -0
  898. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.d.ts +17 -0
  899. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.d.ts.map +1 -0
  900. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.js +72 -0
  901. package/dist/builtin-extensions/pi-subagents/src/shared/post-exit-stdio-guard.js.map +1 -0
  902. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.d.ts +7 -0
  903. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.d.ts.map +1 -0
  904. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.js +7 -0
  905. package/dist/builtin-extensions/pi-subagents/src/shared/session-identity.js.map +1 -0
  906. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts +3 -0
  907. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts.map +1 -0
  908. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js +49 -0
  909. package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js.map +1 -0
  910. package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts +136 -0
  911. package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts.map +1 -0
  912. package/dist/builtin-extensions/pi-subagents/src/shared/settings.js +285 -0
  913. package/dist/builtin-extensions/pi-subagents/src/shared/settings.js.map +1 -0
  914. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.d.ts +10 -0
  915. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.d.ts.map +1 -0
  916. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.js +61 -0
  917. package/dist/builtin-extensions/pi-subagents/src/shared/status-format.js.map +1 -0
  918. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +1101 -0
  919. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -0
  920. package/dist/builtin-extensions/pi-subagents/src/shared/types.js +221 -0
  921. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -0
  922. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts +52 -0
  923. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts.map +1 -0
  924. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js +562 -0
  925. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js.map +1 -0
  926. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts +149 -0
  927. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -0
  928. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js +321 -0
  929. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -0
  930. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.d.ts +11 -0
  931. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.d.ts.map +1 -0
  932. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.js +102 -0
  933. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-request.js.map +1 -0
  934. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.d.ts +25 -0
  935. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.d.ts.map +1 -0
  936. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.js +200 -0
  937. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-template-bridge.js.map +1 -0
  938. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +23 -0
  939. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -0
  940. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +305 -0
  941. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -0
  942. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.d.ts +31 -0
  943. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.d.ts.map +1 -0
  944. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.js +117 -0
  945. package/dist/builtin-extensions/pi-subagents/src/slash/slash-bridge.js.map +1 -0
  946. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +51 -0
  947. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -0
  948. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +1531 -0
  949. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -0
  950. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.d.ts +22 -0
  951. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.d.ts.map +1 -0
  952. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.js +246 -0
  953. package/dist/builtin-extensions/pi-subagents/src/slash/slash-live-state.js.map +1 -0
  954. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.d.ts +78 -0
  955. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.d.ts.map +1 -0
  956. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js +401 -0
  957. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js.map +1 -0
  958. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.d.ts +13 -0
  959. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.d.ts.map +1 -0
  960. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.js +74 -0
  961. package/dist/builtin-extensions/pi-subagents/src/tui/render-helpers.js.map +1 -0
  962. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +35 -0
  963. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -0
  964. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +1687 -0
  965. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -0
  966. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.d.ts +8 -0
  967. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.d.ts.map +1 -0
  968. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.js +123 -0
  969. package/dist/builtin-extensions/pi-subagents/src/watchdog/change-signature.js.map +1 -0
  970. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.d.ts +58 -0
  971. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.d.ts.map +1 -0
  972. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.js +160 -0
  973. package/dist/builtin-extensions/pi-subagents/src/watchdog/child-status.js.map +1 -0
  974. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.d.ts +34 -0
  975. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.d.ts.map +1 -0
  976. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.js +96 -0
  977. package/dist/builtin-extensions/pi-subagents/src/watchdog/emission-guard.js.map +1 -0
  978. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.d.ts +18 -0
  979. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.d.ts.map +1 -0
  980. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.js +485 -0
  981. package/dist/builtin-extensions/pi-subagents/src/watchdog/lsp-diagnostics.js.map +1 -0
  982. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.d.ts +21 -0
  983. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.d.ts.map +1 -0
  984. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.js +151 -0
  985. package/dist/builtin-extensions/pi-subagents/src/watchdog/model-selection.js.map +1 -0
  986. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.d.ts +4 -0
  987. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.d.ts.map +1 -0
  988. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.js +111 -0
  989. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-child.js.map +1 -0
  990. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts +10 -0
  991. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.d.ts.map +1 -0
  992. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js +407 -0
  993. package/dist/builtin-extensions/pi-subagents/src/watchdog/register-main.js.map +1 -0
  994. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.d.ts +12 -0
  995. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.d.ts.map +1 -0
  996. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.js +55 -0
  997. package/dist/builtin-extensions/pi-subagents/src/watchdog/render.js.map +1 -0
  998. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts +29 -0
  999. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -0
  1000. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +245 -0
  1001. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -0
  1002. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts +141 -0
  1003. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts.map +1 -0
  1004. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js +647 -0
  1005. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js.map +1 -0
  1006. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.d.ts +30 -0
  1007. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.d.ts.map +1 -0
  1008. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.js +486 -0
  1009. package/dist/builtin-extensions/pi-subagents/src/watchdog/settings.js.map +1 -0
  1010. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts +18 -0
  1011. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.d.ts.map +1 -0
  1012. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js +150 -0
  1013. package/dist/builtin-extensions/pi-subagents/src/watchdog/tool-actions.js.map +1 -0
  1014. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.d.ts +10 -0
  1015. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.d.ts.map +1 -0
  1016. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.js +159 -0
  1017. package/dist/builtin-extensions/pi-subagents/src/watchdog/turn-delta.js.map +1 -0
  1018. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.d.ts +143 -0
  1019. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.d.ts.map +1 -0
  1020. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.js +31 -0
  1021. package/dist/builtin-extensions/pi-subagents/src/watchdog/types.js.map +1 -0
  1022. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.d.ts +8 -0
  1023. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.d.ts.map +1 -0
  1024. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.js +62 -0
  1025. package/dist/builtin-extensions/pi-subagents/src/watchdog/warning-format.js.map +1 -0
  1026. package/dist/builtin-extensions/pi-tps.d.ts +3 -0
  1027. package/dist/builtin-extensions/pi-tps.d.ts.map +1 -0
  1028. package/dist/builtin-extensions/pi-tps.js +89 -0
  1029. package/dist/builtin-extensions/pi-tps.js.map +1 -0
  1030. package/dist/builtin-extensions/pi-web-access/activity.d.ts +34 -0
  1031. package/dist/builtin-extensions/pi-web-access/activity.d.ts.map +1 -0
  1032. package/dist/builtin-extensions/pi-web-access/activity.js +68 -0
  1033. package/dist/builtin-extensions/pi-web-access/activity.js.map +1 -0
  1034. package/dist/builtin-extensions/pi-web-access/brave.d.ts +4 -0
  1035. package/dist/builtin-extensions/pi-web-access/brave.d.ts.map +1 -0
  1036. package/dist/builtin-extensions/pi-web-access/brave.js +185 -0
  1037. package/dist/builtin-extensions/pi-web-access/brave.js.map +1 -0
  1038. package/dist/builtin-extensions/pi-web-access/chrome-cookies.d.ts +9 -0
  1039. package/dist/builtin-extensions/pi-web-access/chrome-cookies.d.ts.map +1 -0
  1040. package/dist/builtin-extensions/pi-web-access/chrome-cookies.js +299 -0
  1041. package/dist/builtin-extensions/pi-web-access/chrome-cookies.js.map +1 -0
  1042. package/dist/builtin-extensions/pi-web-access/curator-page.d.ts +13 -0
  1043. package/dist/builtin-extensions/pi-web-access/curator-page.d.ts.map +1 -0
  1044. package/dist/builtin-extensions/pi-web-access/curator-page.js +3382 -0
  1045. package/dist/builtin-extensions/pi-web-access/curator-page.js.map +1 -0
  1046. package/dist/builtin-extensions/pi-web-access/curator-server.d.ts +71 -0
  1047. package/dist/builtin-extensions/pi-web-access/curator-server.d.ts.map +1 -0
  1048. package/dist/builtin-extensions/pi-web-access/curator-server.js +604 -0
  1049. package/dist/builtin-extensions/pi-web-access/curator-server.js.map +1 -0
  1050. package/dist/builtin-extensions/pi-web-access/exa.d.ts +10 -0
  1051. package/dist/builtin-extensions/pi-web-access/exa.d.ts.map +1 -0
  1052. package/dist/builtin-extensions/pi-web-access/exa.js +391 -0
  1053. package/dist/builtin-extensions/pi-web-access/exa.js.map +1 -0
  1054. package/dist/builtin-extensions/pi-web-access/extract.d.ts +48 -0
  1055. package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -0
  1056. package/dist/builtin-extensions/pi-web-access/extract.js +619 -0
  1057. package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -0
  1058. package/dist/builtin-extensions/pi-web-access/fetch-params.d.ts +21 -0
  1059. package/dist/builtin-extensions/pi-web-access/fetch-params.d.ts.map +1 -0
  1060. package/dist/builtin-extensions/pi-web-access/fetch-params.js +44 -0
  1061. package/dist/builtin-extensions/pi-web-access/fetch-params.js.map +1 -0
  1062. package/dist/builtin-extensions/pi-web-access/gemini-api.d.ts +18 -0
  1063. package/dist/builtin-extensions/pi-web-access/gemini-api.d.ts.map +1 -0
  1064. package/dist/builtin-extensions/pi-web-access/gemini-api.js +120 -0
  1065. package/dist/builtin-extensions/pi-web-access/gemini-api.js.map +1 -0
  1066. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts +14 -0
  1067. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts.map +1 -0
  1068. package/dist/builtin-extensions/pi-web-access/gemini-search.js +371 -0
  1069. package/dist/builtin-extensions/pi-web-access/gemini-search.js.map +1 -0
  1070. package/dist/builtin-extensions/pi-web-access/gemini-url-context.d.ts +4 -0
  1071. package/dist/builtin-extensions/pi-web-access/gemini-url-context.d.ts.map +1 -0
  1072. package/dist/builtin-extensions/pi-web-access/gemini-url-context.js +101 -0
  1073. package/dist/builtin-extensions/pi-web-access/gemini-url-context.js.map +1 -0
  1074. package/dist/builtin-extensions/pi-web-access/gemini-web-config.d.ts +4 -0
  1075. package/dist/builtin-extensions/pi-web-access/gemini-web-config.d.ts.map +1 -0
  1076. package/dist/builtin-extensions/pi-web-access/gemini-web-config.js +43 -0
  1077. package/dist/builtin-extensions/pi-web-access/gemini-web-config.js.map +1 -0
  1078. package/dist/builtin-extensions/pi-web-access/gemini-web.d.ts +12 -0
  1079. package/dist/builtin-extensions/pi-web-access/gemini-web.d.ts.map +1 -0
  1080. package/dist/builtin-extensions/pi-web-access/gemini-web.js +331 -0
  1081. package/dist/builtin-extensions/pi-web-access/gemini-web.js.map +1 -0
  1082. package/dist/builtin-extensions/pi-web-access/github-api.d.ts +7 -0
  1083. package/dist/builtin-extensions/pi-web-access/github-api.d.ts.map +1 -0
  1084. package/dist/builtin-extensions/pi-web-access/github-api.js +161 -0
  1085. package/dist/builtin-extensions/pi-web-access/github-api.js.map +1 -0
  1086. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts +13 -0
  1087. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -0
  1088. package/dist/builtin-extensions/pi-web-access/github-extract.js +558 -0
  1089. package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -0
  1090. package/dist/builtin-extensions/pi-web-access/index.d.ts +3 -0
  1091. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -0
  1092. package/dist/builtin-extensions/pi-web-access/index.js +2347 -0
  1093. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -0
  1094. package/dist/builtin-extensions/pi-web-access/openai-search.d.ts +13 -0
  1095. package/dist/builtin-extensions/pi-web-access/openai-search.d.ts.map +1 -0
  1096. package/dist/builtin-extensions/pi-web-access/openai-search.js +374 -0
  1097. package/dist/builtin-extensions/pi-web-access/openai-search.js.map +1 -0
  1098. package/dist/builtin-extensions/pi-web-access/parallel.d.ts +12 -0
  1099. package/dist/builtin-extensions/pi-web-access/parallel.d.ts.map +1 -0
  1100. package/dist/builtin-extensions/pi-web-access/parallel.js +316 -0
  1101. package/dist/builtin-extensions/pi-web-access/parallel.js.map +1 -0
  1102. package/dist/builtin-extensions/pi-web-access/pdf-extract.d.ts +26 -0
  1103. package/dist/builtin-extensions/pi-web-access/pdf-extract.d.ts.map +1 -0
  1104. package/dist/builtin-extensions/pi-web-access/pdf-extract.js +150 -0
  1105. package/dist/builtin-extensions/pi-web-access/pdf-extract.js.map +1 -0
  1106. package/dist/builtin-extensions/pi-web-access/perplexity.d.ts +20 -0
  1107. package/dist/builtin-extensions/pi-web-access/perplexity.d.ts.map +1 -0
  1108. package/dist/builtin-extensions/pi-web-access/perplexity.js +150 -0
  1109. package/dist/builtin-extensions/pi-web-access/perplexity.js.map +1 -0
  1110. package/dist/builtin-extensions/pi-web-access/render-search-error.d.ts +57 -0
  1111. package/dist/builtin-extensions/pi-web-access/render-search-error.d.ts.map +1 -0
  1112. package/dist/builtin-extensions/pi-web-access/render-search-error.js +131 -0
  1113. package/dist/builtin-extensions/pi-web-access/render-search-error.js.map +1 -0
  1114. package/dist/builtin-extensions/pi-web-access/rsc-extract.d.ts +12 -0
  1115. package/dist/builtin-extensions/pi-web-access/rsc-extract.d.ts.map +1 -0
  1116. package/dist/builtin-extensions/pi-web-access/rsc-extract.js +330 -0
  1117. package/dist/builtin-extensions/pi-web-access/rsc-extract.js.map +1 -0
  1118. package/dist/builtin-extensions/pi-web-access/ssrf-protection.d.ts +24 -0
  1119. package/dist/builtin-extensions/pi-web-access/ssrf-protection.d.ts.map +1 -0
  1120. package/dist/builtin-extensions/pi-web-access/ssrf-protection.js +255 -0
  1121. package/dist/builtin-extensions/pi-web-access/ssrf-protection.js.map +1 -0
  1122. package/dist/builtin-extensions/pi-web-access/storage.d.ts +25 -0
  1123. package/dist/builtin-extensions/pi-web-access/storage.d.ts.map +1 -0
  1124. package/dist/builtin-extensions/pi-web-access/storage.js +49 -0
  1125. package/dist/builtin-extensions/pi-web-access/storage.js.map +1 -0
  1126. package/dist/builtin-extensions/pi-web-access/summary-model-scope.d.ts +13 -0
  1127. package/dist/builtin-extensions/pi-web-access/summary-model-scope.d.ts.map +1 -0
  1128. package/dist/builtin-extensions/pi-web-access/summary-model-scope.js +86 -0
  1129. package/dist/builtin-extensions/pi-web-access/summary-model-scope.js.map +1 -0
  1130. package/dist/builtin-extensions/pi-web-access/summary-review.d.ts +21 -0
  1131. package/dist/builtin-extensions/pi-web-access/summary-review.d.ts.map +1 -0
  1132. package/dist/builtin-extensions/pi-web-access/summary-review.js +278 -0
  1133. package/dist/builtin-extensions/pi-web-access/summary-review.js.map +1 -0
  1134. package/dist/builtin-extensions/pi-web-access/tavily.d.ts +8 -0
  1135. package/dist/builtin-extensions/pi-web-access/tavily.d.ts.map +1 -0
  1136. package/dist/builtin-extensions/pi-web-access/tavily.js +184 -0
  1137. package/dist/builtin-extensions/pi-web-access/tavily.js.map +1 -0
  1138. package/dist/builtin-extensions/pi-web-access/utils.d.ts +12 -0
  1139. package/dist/builtin-extensions/pi-web-access/utils.d.ts.map +1 -0
  1140. package/dist/builtin-extensions/pi-web-access/utils.js +61 -0
  1141. package/dist/builtin-extensions/pi-web-access/utils.js.map +1 -0
  1142. package/dist/builtin-extensions/pi-web-access/video-extract.d.ts +14 -0
  1143. package/dist/builtin-extensions/pi-web-access/video-extract.d.ts.map +1 -0
  1144. package/dist/builtin-extensions/pi-web-access/video-extract.js +324 -0
  1145. package/dist/builtin-extensions/pi-web-access/video-extract.js.map +1 -0
  1146. package/dist/builtin-extensions/pi-web-access/youtube-extract.d.ts +27 -0
  1147. package/dist/builtin-extensions/pi-web-access/youtube-extract.d.ts.map +1 -0
  1148. package/dist/builtin-extensions/pi-web-access/youtube-extract.js +282 -0
  1149. package/dist/builtin-extensions/pi-web-access/youtube-extract.js.map +1 -0
  1150. package/dist/builtin-extensions/simple-pi-memory.d.ts +55 -0
  1151. package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -0
  1152. package/dist/builtin-extensions/simple-pi-memory.js +239 -0
  1153. package/dist/builtin-extensions/simple-pi-memory.js.map +1 -0
  1154. package/dist/bun/cli.d.ts +3 -0
  1155. package/dist/bun/cli.d.ts.map +1 -0
  1156. package/dist/bun/cli.js +11 -0
  1157. package/dist/bun/cli.js.map +1 -0
  1158. package/dist/bun/register-bedrock.d.ts +2 -0
  1159. package/dist/bun/register-bedrock.d.ts.map +1 -0
  1160. package/dist/bun/register-bedrock.js +4 -0
  1161. package/dist/bun/register-bedrock.js.map +1 -0
  1162. package/dist/bun/restore-sandbox-env.d.ts +17 -0
  1163. package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
  1164. package/dist/bun/restore-sandbox-env.js +36 -0
  1165. package/dist/bun/restore-sandbox-env.js.map +1 -0
  1166. package/dist/catalog/models.json +1 -0
  1167. package/dist/catalog/providers/amazon-bedrock.json +1 -0
  1168. package/dist/catalog/providers/ant-ling.json +1 -0
  1169. package/dist/catalog/providers/anthropic.json +1 -0
  1170. package/dist/catalog/providers/azure-openai-responses.json +1 -0
  1171. package/dist/catalog/providers/cerebras.json +1 -0
  1172. package/dist/catalog/providers/cloudflare-ai-gateway.json +1 -0
  1173. package/dist/catalog/providers/cloudflare-workers-ai.json +1 -0
  1174. package/dist/catalog/providers/deepseek.json +1 -0
  1175. package/dist/catalog/providers/fireworks.json +1 -0
  1176. package/dist/catalog/providers/github-copilot.json +1 -0
  1177. package/dist/catalog/providers/google-vertex.json +1 -0
  1178. package/dist/catalog/providers/google.json +1 -0
  1179. package/dist/catalog/providers/groq.json +1 -0
  1180. package/dist/catalog/providers/huggingface.json +1 -0
  1181. package/dist/catalog/providers/kimi-coding.json +1 -0
  1182. package/dist/catalog/providers/minimax-cn.json +1 -0
  1183. package/dist/catalog/providers/minimax.json +1 -0
  1184. package/dist/catalog/providers/mistral.json +1 -0
  1185. package/dist/catalog/providers/moonshotai-cn.json +1 -0
  1186. package/dist/catalog/providers/moonshotai.json +1 -0
  1187. package/dist/catalog/providers/nvidia.json +1 -0
  1188. package/dist/catalog/providers/openai-codex.json +1 -0
  1189. package/dist/catalog/providers/openai.json +1 -0
  1190. package/dist/catalog/providers/opencode-go.json +1 -0
  1191. package/dist/catalog/providers/opencode.json +1 -0
  1192. package/dist/catalog/providers/openrouter.json +1 -0
  1193. package/dist/catalog/providers/qwen-cloud-cn.json +1 -0
  1194. package/dist/catalog/providers/qwen-cloud.json +1 -0
  1195. package/dist/catalog/providers/qwen-token-plan-cn.json +1 -0
  1196. package/dist/catalog/providers/qwen-token-plan.json +1 -0
  1197. package/dist/catalog/providers/together.json +1 -0
  1198. package/dist/catalog/providers/vercel-ai-gateway.json +1 -0
  1199. package/dist/catalog/providers/xai.json +1 -0
  1200. package/dist/catalog/providers/xiaomi-token-plan-ams.json +1 -0
  1201. package/dist/catalog/providers/xiaomi-token-plan-cn.json +1 -0
  1202. package/dist/catalog/providers/xiaomi-token-plan-sgp.json +1 -0
  1203. package/dist/catalog/providers/xiaomi.json +1 -0
  1204. package/dist/catalog/providers/zai-coding-cn.json +1 -0
  1205. package/dist/catalog/providers/zai.json +1 -0
  1206. package/dist/catalog/providers.json +1 -0
  1207. package/dist/catalog/publication.json +6 -0
  1208. package/dist/cli/args.d.ts +57 -0
  1209. package/dist/cli/args.d.ts.map +1 -0
  1210. package/dist/cli/args.js +381 -0
  1211. package/dist/cli/args.js.map +1 -0
  1212. package/dist/cli/config-selector.d.ts +16 -0
  1213. package/dist/cli/config-selector.d.ts.map +1 -0
  1214. package/dist/cli/config-selector.js +31 -0
  1215. package/dist/cli/config-selector.js.map +1 -0
  1216. package/dist/cli/file-processor.d.ts +15 -0
  1217. package/dist/cli/file-processor.d.ts.map +1 -0
  1218. package/dist/cli/file-processor.js +70 -0
  1219. package/dist/cli/file-processor.js.map +1 -0
  1220. package/dist/cli/initial-message.d.ts +18 -0
  1221. package/dist/cli/initial-message.d.ts.map +1 -0
  1222. package/dist/cli/initial-message.js +22 -0
  1223. package/dist/cli/initial-message.js.map +1 -0
  1224. package/dist/cli/install-cli.d.ts +13 -0
  1225. package/dist/cli/install-cli.d.ts.map +1 -0
  1226. package/dist/cli/install-cli.js +352 -0
  1227. package/dist/cli/install-cli.js.map +1 -0
  1228. package/dist/cli/list-models.d.ts +9 -0
  1229. package/dist/cli/list-models.d.ts.map +1 -0
  1230. package/dist/cli/list-models.js +98 -0
  1231. package/dist/cli/list-models.js.map +1 -0
  1232. package/dist/cli/project-trust.d.ts +10 -0
  1233. package/dist/cli/project-trust.d.ts.map +1 -0
  1234. package/dist/cli/project-trust.js +48 -0
  1235. package/dist/cli/project-trust.js.map +1 -0
  1236. package/dist/cli/read-secret.d.ts +6 -0
  1237. package/dist/cli/read-secret.d.ts.map +1 -0
  1238. package/dist/cli/read-secret.js +62 -0
  1239. package/dist/cli/read-secret.js.map +1 -0
  1240. package/dist/cli/session-picker.d.ts +10 -0
  1241. package/dist/cli/session-picker.d.ts.map +1 -0
  1242. package/dist/cli/session-picker.js +36 -0
  1243. package/dist/cli/session-picker.js.map +1 -0
  1244. package/dist/cli/startup-ui.d.ts +20 -0
  1245. package/dist/cli/startup-ui.d.ts.map +1 -0
  1246. package/dist/cli/startup-ui.js +190 -0
  1247. package/dist/cli/startup-ui.js.map +1 -0
  1248. package/dist/cli.d.ts +3 -0
  1249. package/dist/cli.d.ts.map +1 -0
  1250. package/dist/cli.js +18 -0
  1251. package/dist/cli.js.map +1 -0
  1252. package/dist/config.d.ts +84 -0
  1253. package/dist/config.d.ts.map +1 -0
  1254. package/dist/config.js +211 -0
  1255. package/dist/config.js.map +1 -0
  1256. package/dist/core/agent-session-runtime.d.ts +119 -0
  1257. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  1258. package/dist/core/agent-session-runtime.js +306 -0
  1259. package/dist/core/agent-session-runtime.js.map +1 -0
  1260. package/dist/core/agent-session-services.d.ts +85 -0
  1261. package/dist/core/agent-session-services.d.ts.map +1 -0
  1262. package/dist/core/agent-session-services.js +120 -0
  1263. package/dist/core/agent-session-services.js.map +1 -0
  1264. package/dist/core/agent-session.d.ts +650 -0
  1265. package/dist/core/agent-session.d.ts.map +1 -0
  1266. package/dist/core/agent-session.js +2797 -0
  1267. package/dist/core/agent-session.js.map +1 -0
  1268. package/dist/core/auth-guidance.d.ts +5 -0
  1269. package/dist/core/auth-guidance.d.ts.map +1 -0
  1270. package/dist/core/auth-guidance.js +21 -0
  1271. package/dist/core/auth-guidance.js.map +1 -0
  1272. package/dist/core/auth-storage.d.ts +56 -0
  1273. package/dist/core/auth-storage.d.ts.map +1 -0
  1274. package/dist/core/auth-storage.js +229 -0
  1275. package/dist/core/auth-storage.js.map +1 -0
  1276. package/dist/core/bash-executor.d.ts +32 -0
  1277. package/dist/core/bash-executor.d.ts.map +1 -0
  1278. package/dist/core/bash-executor.js +111 -0
  1279. package/dist/core/bash-executor.js.map +1 -0
  1280. package/dist/core/cache-stats.d.ts +49 -0
  1281. package/dist/core/cache-stats.d.ts.map +1 -0
  1282. package/dist/core/cache-stats.js +101 -0
  1283. package/dist/core/cache-stats.js.map +1 -0
  1284. package/dist/core/catalog-merge.d.ts +46 -0
  1285. package/dist/core/catalog-merge.d.ts.map +1 -0
  1286. package/dist/core/catalog-merge.js +128 -0
  1287. package/dist/core/catalog-merge.js.map +1 -0
  1288. package/dist/core/compaction/branch-summarization.d.ts +92 -0
  1289. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  1290. package/dist/core/compaction/branch-summarization.js +249 -0
  1291. package/dist/core/compaction/branch-summarization.js.map +1 -0
  1292. package/dist/core/compaction/compaction.d.ts +121 -0
  1293. package/dist/core/compaction/compaction.d.ts.map +1 -0
  1294. package/dist/core/compaction/compaction.js +600 -0
  1295. package/dist/core/compaction/compaction.js.map +1 -0
  1296. package/dist/core/compaction/index.d.ts +7 -0
  1297. package/dist/core/compaction/index.d.ts.map +1 -0
  1298. package/dist/core/compaction/index.js +7 -0
  1299. package/dist/core/compaction/index.js.map +1 -0
  1300. package/dist/core/compaction/utils.d.ts +38 -0
  1301. package/dist/core/compaction/utils.d.ts.map +1 -0
  1302. package/dist/core/compaction/utils.js +153 -0
  1303. package/dist/core/compaction/utils.js.map +1 -0
  1304. package/dist/core/context-breakdown.d.ts +67 -0
  1305. package/dist/core/context-breakdown.d.ts.map +1 -0
  1306. package/dist/core/context-breakdown.js +116 -0
  1307. package/dist/core/context-breakdown.js.map +1 -0
  1308. package/dist/core/cron/fire-guard.d.ts +16 -0
  1309. package/dist/core/cron/fire-guard.d.ts.map +1 -0
  1310. package/dist/core/cron/fire-guard.js +24 -0
  1311. package/dist/core/cron/fire-guard.js.map +1 -0
  1312. package/dist/core/cron/jobs.d.ts +162 -0
  1313. package/dist/core/cron/jobs.d.ts.map +1 -0
  1314. package/dist/core/cron/jobs.js +545 -0
  1315. package/dist/core/cron/jobs.js.map +1 -0
  1316. package/dist/core/cron/origin-context.d.ts +22 -0
  1317. package/dist/core/cron/origin-context.d.ts.map +1 -0
  1318. package/dist/core/cron/origin-context.js +22 -0
  1319. package/dist/core/cron/origin-context.js.map +1 -0
  1320. package/dist/core/cron/scheduler.d.ts +51 -0
  1321. package/dist/core/cron/scheduler.d.ts.map +1 -0
  1322. package/dist/core/cron/scheduler.js +165 -0
  1323. package/dist/core/cron/scheduler.js.map +1 -0
  1324. package/dist/core/customize.d.ts +31 -0
  1325. package/dist/core/customize.d.ts.map +1 -0
  1326. package/dist/core/customize.js +54 -0
  1327. package/dist/core/customize.js.map +1 -0
  1328. package/dist/core/defaults.d.ts +3 -0
  1329. package/dist/core/defaults.d.ts.map +1 -0
  1330. package/dist/core/defaults.js +2 -0
  1331. package/dist/core/defaults.js.map +1 -0
  1332. package/dist/core/diagnostics.d.ts +15 -0
  1333. package/dist/core/diagnostics.d.ts.map +1 -0
  1334. package/dist/core/diagnostics.js +2 -0
  1335. package/dist/core/diagnostics.js.map +1 -0
  1336. package/dist/core/event-bus.d.ts +9 -0
  1337. package/dist/core/event-bus.d.ts.map +1 -0
  1338. package/dist/core/event-bus.js +25 -0
  1339. package/dist/core/event-bus.js.map +1 -0
  1340. package/dist/core/exec.d.ts +29 -0
  1341. package/dist/core/exec.d.ts.map +1 -0
  1342. package/dist/core/exec.js +75 -0
  1343. package/dist/core/exec.js.map +1 -0
  1344. package/dist/core/experimental.d.ts +2 -0
  1345. package/dist/core/experimental.d.ts.map +1 -0
  1346. package/dist/core/experimental.js +4 -0
  1347. package/dist/core/experimental.js.map +1 -0
  1348. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  1349. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  1350. package/dist/core/export-html/ansi-to-html.js +249 -0
  1351. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  1352. package/dist/core/export-html/index.d.ts +37 -0
  1353. package/dist/core/export-html/index.d.ts.map +1 -0
  1354. package/dist/core/export-html/index.js +226 -0
  1355. package/dist/core/export-html/index.js.map +1 -0
  1356. package/dist/core/export-html/template.css +1066 -0
  1357. package/dist/core/export-html/template.html +55 -0
  1358. package/dist/core/export-html/template.js +1864 -0
  1359. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  1360. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  1361. package/dist/core/export-html/tool-renderer.js +108 -0
  1362. package/dist/core/export-html/tool-renderer.js.map +1 -0
  1363. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  1364. package/dist/core/export-html/vendor/marked.min.js +78 -0
  1365. package/dist/core/extensions/index.d.ts +12 -0
  1366. package/dist/core/extensions/index.d.ts.map +1 -0
  1367. package/dist/core/extensions/index.js +9 -0
  1368. package/dist/core/extensions/index.js.map +1 -0
  1369. package/dist/core/extensions/loader.d.ts +23 -0
  1370. package/dist/core/extensions/loader.d.ts.map +1 -0
  1371. package/dist/core/extensions/loader.js +547 -0
  1372. package/dist/core/extensions/loader.js.map +1 -0
  1373. package/dist/core/extensions/runner.d.ts +170 -0
  1374. package/dist/core/extensions/runner.d.ts.map +1 -0
  1375. package/dist/core/extensions/runner.js +923 -0
  1376. package/dist/core/extensions/runner.js.map +1 -0
  1377. package/dist/core/extensions/types.d.ts +1247 -0
  1378. package/dist/core/extensions/types.d.ts.map +1 -0
  1379. package/dist/core/extensions/types.js +45 -0
  1380. package/dist/core/extensions/types.js.map +1 -0
  1381. package/dist/core/extensions/wrapper.d.ts +20 -0
  1382. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  1383. package/dist/core/extensions/wrapper.js +41 -0
  1384. package/dist/core/extensions/wrapper.js.map +1 -0
  1385. package/dist/core/footer-data-provider.d.ts +54 -0
  1386. package/dist/core/footer-data-provider.d.ts.map +1 -0
  1387. package/dist/core/footer-data-provider.js +338 -0
  1388. package/dist/core/footer-data-provider.js.map +1 -0
  1389. package/dist/core/http-dispatcher.d.ts +22 -0
  1390. package/dist/core/http-dispatcher.d.ts.map +1 -0
  1391. package/dist/core/http-dispatcher.js +91 -0
  1392. package/dist/core/http-dispatcher.js.map +1 -0
  1393. package/dist/core/index.d.ts +13 -0
  1394. package/dist/core/index.d.ts.map +1 -0
  1395. package/dist/core/index.js +13 -0
  1396. package/dist/core/index.js.map +1 -0
  1397. package/dist/core/injected-prompt.d.ts +20 -0
  1398. package/dist/core/injected-prompt.d.ts.map +1 -0
  1399. package/dist/core/injected-prompt.js +64 -0
  1400. package/dist/core/injected-prompt.js.map +1 -0
  1401. package/dist/core/install-features.d.ts +106 -0
  1402. package/dist/core/install-features.d.ts.map +1 -0
  1403. package/dist/core/install-features.js +392 -0
  1404. package/dist/core/install-features.js.map +1 -0
  1405. package/dist/core/install-layout.d.ts +18 -0
  1406. package/dist/core/install-layout.d.ts.map +1 -0
  1407. package/dist/core/install-layout.js +54 -0
  1408. package/dist/core/install-layout.js.map +1 -0
  1409. package/dist/core/keybindings.d.ts +373 -0
  1410. package/dist/core/keybindings.d.ts.map +1 -0
  1411. package/dist/core/keybindings.js +309 -0
  1412. package/dist/core/keybindings.js.map +1 -0
  1413. package/dist/core/live-catalog.d.ts +74 -0
  1414. package/dist/core/live-catalog.d.ts.map +1 -0
  1415. package/dist/core/live-catalog.js +351 -0
  1416. package/dist/core/live-catalog.js.map +1 -0
  1417. package/dist/core/memory-cap.d.ts +27 -0
  1418. package/dist/core/memory-cap.d.ts.map +1 -0
  1419. package/dist/core/memory-cap.js +32 -0
  1420. package/dist/core/memory-cap.js.map +1 -0
  1421. package/dist/core/messages.d.ts +77 -0
  1422. package/dist/core/messages.d.ts.map +1 -0
  1423. package/dist/core/messages.js +123 -0
  1424. package/dist/core/messages.js.map +1 -0
  1425. package/dist/core/model-config-writer.d.ts +24 -0
  1426. package/dist/core/model-config-writer.d.ts.map +1 -0
  1427. package/dist/core/model-config-writer.js +84 -0
  1428. package/dist/core/model-config-writer.js.map +1 -0
  1429. package/dist/core/model-config.d.ts +512 -0
  1430. package/dist/core/model-config.d.ts.map +1 -0
  1431. package/dist/core/model-config.js +243 -0
  1432. package/dist/core/model-config.js.map +1 -0
  1433. package/dist/core/model-registry.d.ts +39 -0
  1434. package/dist/core/model-registry.d.ts.map +1 -0
  1435. package/dist/core/model-registry.js +89 -0
  1436. package/dist/core/model-registry.js.map +1 -0
  1437. package/dist/core/model-resolver.d.ts +121 -0
  1438. package/dist/core/model-resolver.d.ts.map +1 -0
  1439. package/dist/core/model-resolver.js +536 -0
  1440. package/dist/core/model-resolver.js.map +1 -0
  1441. package/dist/core/model-runtime.d.ts +115 -0
  1442. package/dist/core/model-runtime.d.ts.map +1 -0
  1443. package/dist/core/model-runtime.js +640 -0
  1444. package/dist/core/model-runtime.js.map +1 -0
  1445. package/dist/core/model-tiers.d.ts +34 -0
  1446. package/dist/core/model-tiers.d.ts.map +1 -0
  1447. package/dist/core/model-tiers.js +53 -0
  1448. package/dist/core/model-tiers.js.map +1 -0
  1449. package/dist/core/models-store.d.ts +17 -0
  1450. package/dist/core/models-store.d.ts.map +1 -0
  1451. package/dist/core/models-store.js +45 -0
  1452. package/dist/core/models-store.js.map +1 -0
  1453. package/dist/core/official-catalog.d.ts +72 -0
  1454. package/dist/core/official-catalog.d.ts.map +1 -0
  1455. package/dist/core/official-catalog.js +370 -0
  1456. package/dist/core/official-catalog.js.map +1 -0
  1457. package/dist/core/output-guard.d.ts +7 -0
  1458. package/dist/core/output-guard.d.ts.map +1 -0
  1459. package/dist/core/output-guard.js +89 -0
  1460. package/dist/core/output-guard.js.map +1 -0
  1461. package/dist/core/package-manager.d.ts +198 -0
  1462. package/dist/core/package-manager.d.ts.map +1 -0
  1463. package/dist/core/package-manager.js +2005 -0
  1464. package/dist/core/package-manager.js.map +1 -0
  1465. package/dist/core/permission-mode.d.ts +19 -0
  1466. package/dist/core/permission-mode.d.ts.map +1 -0
  1467. package/dist/core/permission-mode.js +26 -0
  1468. package/dist/core/permission-mode.js.map +1 -0
  1469. package/dist/core/permissions.d.ts +99 -0
  1470. package/dist/core/permissions.d.ts.map +1 -0
  1471. package/dist/core/permissions.js +323 -0
  1472. package/dist/core/permissions.js.map +1 -0
  1473. package/dist/core/plan-mode.d.ts +37 -0
  1474. package/dist/core/plan-mode.d.ts.map +1 -0
  1475. package/dist/core/plan-mode.js +388 -0
  1476. package/dist/core/plan-mode.js.map +1 -0
  1477. package/dist/core/process-registry.d.ts +40 -0
  1478. package/dist/core/process-registry.d.ts.map +1 -0
  1479. package/dist/core/process-registry.js +190 -0
  1480. package/dist/core/process-registry.js.map +1 -0
  1481. package/dist/core/project-trust.d.ts +15 -0
  1482. package/dist/core/project-trust.d.ts.map +1 -0
  1483. package/dist/core/project-trust.js +59 -0
  1484. package/dist/core/project-trust.js.map +1 -0
  1485. package/dist/core/prompt-templates.d.ts +53 -0
  1486. package/dist/core/prompt-templates.d.ts.map +1 -0
  1487. package/dist/core/prompt-templates.js +236 -0
  1488. package/dist/core/prompt-templates.js.map +1 -0
  1489. package/dist/core/provider-attribution.d.ts +4 -0
  1490. package/dist/core/provider-attribution.d.ts.map +1 -0
  1491. package/dist/core/provider-attribution.js +31 -0
  1492. package/dist/core/provider-attribution.js.map +1 -0
  1493. package/dist/core/provider-composer.d.ts +55 -0
  1494. package/dist/core/provider-composer.d.ts.map +1 -0
  1495. package/dist/core/provider-composer.js +375 -0
  1496. package/dist/core/provider-composer.js.map +1 -0
  1497. package/dist/core/radius.d.ts +2 -0
  1498. package/dist/core/radius.d.ts.map +1 -0
  1499. package/dist/core/radius.js +2 -0
  1500. package/dist/core/radius.js.map +1 -0
  1501. package/dist/core/resolve-config-value.d.ts +30 -0
  1502. package/dist/core/resolve-config-value.d.ts.map +1 -0
  1503. package/dist/core/resolve-config-value.js +247 -0
  1504. package/dist/core/resolve-config-value.js.map +1 -0
  1505. package/dist/core/resource-loader.d.ts +206 -0
  1506. package/dist/core/resource-loader.d.ts.map +1 -0
  1507. package/dist/core/resource-loader.js +816 -0
  1508. package/dist/core/resource-loader.js.map +1 -0
  1509. package/dist/core/rollback.d.ts +80 -0
  1510. package/dist/core/rollback.d.ts.map +1 -0
  1511. package/dist/core/rollback.js +582 -0
  1512. package/dist/core/rollback.js.map +1 -0
  1513. package/dist/core/runtime-credentials.d.ts +15 -0
  1514. package/dist/core/runtime-credentials.d.ts.map +1 -0
  1515. package/dist/core/runtime-credentials.js +36 -0
  1516. package/dist/core/runtime-credentials.js.map +1 -0
  1517. package/dist/core/sdk.d.ts +106 -0
  1518. package/dist/core/sdk.d.ts.map +1 -0
  1519. package/dist/core/sdk.js +264 -0
  1520. package/dist/core/sdk.js.map +1 -0
  1521. package/dist/core/search-curator.d.ts +23 -0
  1522. package/dist/core/search-curator.d.ts.map +1 -0
  1523. package/dist/core/search-curator.js +34 -0
  1524. package/dist/core/search-curator.js.map +1 -0
  1525. package/dist/core/session-cwd.d.ts +19 -0
  1526. package/dist/core/session-cwd.d.ts.map +1 -0
  1527. package/dist/core/session-cwd.js +38 -0
  1528. package/dist/core/session-cwd.js.map +1 -0
  1529. package/dist/core/session-manager.d.ts +351 -0
  1530. package/dist/core/session-manager.d.ts.map +1 -0
  1531. package/dist/core/session-manager.js +1262 -0
  1532. package/dist/core/session-manager.js.map +1 -0
  1533. package/dist/core/session-retention.d.ts +17 -0
  1534. package/dist/core/session-retention.d.ts.map +1 -0
  1535. package/dist/core/session-retention.js +69 -0
  1536. package/dist/core/session-retention.js.map +1 -0
  1537. package/dist/core/settings-manager.d.ts +355 -0
  1538. package/dist/core/settings-manager.d.ts.map +1 -0
  1539. package/dist/core/settings-manager.js +1064 -0
  1540. package/dist/core/settings-manager.js.map +1 -0
  1541. package/dist/core/skills.d.ts +60 -0
  1542. package/dist/core/skills.d.ts.map +1 -0
  1543. package/dist/core/skills.js +387 -0
  1544. package/dist/core/skills.js.map +1 -0
  1545. package/dist/core/slash-commands.d.ts +15 -0
  1546. package/dist/core/slash-commands.d.ts.map +1 -0
  1547. package/dist/core/slash-commands.js +58 -0
  1548. package/dist/core/slash-commands.js.map +1 -0
  1549. package/dist/core/source-info.d.ts +18 -0
  1550. package/dist/core/source-info.d.ts.map +1 -0
  1551. package/dist/core/source-info.js +19 -0
  1552. package/dist/core/source-info.js.map +1 -0
  1553. package/dist/core/subscriptions.d.ts +64 -0
  1554. package/dist/core/subscriptions.d.ts.map +1 -0
  1555. package/dist/core/subscriptions.js +259 -0
  1556. package/dist/core/subscriptions.js.map +1 -0
  1557. package/dist/core/swarm.d.ts +41 -0
  1558. package/dist/core/swarm.d.ts.map +1 -0
  1559. package/dist/core/swarm.js +81 -0
  1560. package/dist/core/swarm.js.map +1 -0
  1561. package/dist/core/system-prompt.d.ts +28 -0
  1562. package/dist/core/system-prompt.d.ts.map +1 -0
  1563. package/dist/core/system-prompt.js +107 -0
  1564. package/dist/core/system-prompt.js.map +1 -0
  1565. package/dist/core/timings.d.ts +10 -0
  1566. package/dist/core/timings.d.ts.map +1 -0
  1567. package/dist/core/timings.js +41 -0
  1568. package/dist/core/timings.js.map +1 -0
  1569. package/dist/core/tools/bash.d.ts +69 -0
  1570. package/dist/core/tools/bash.d.ts.map +1 -0
  1571. package/dist/core/tools/bash.js +395 -0
  1572. package/dist/core/tools/bash.js.map +1 -0
  1573. package/dist/core/tools/edit-diff.d.ts +106 -0
  1574. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  1575. package/dist/core/tools/edit-diff.js +424 -0
  1576. package/dist/core/tools/edit-diff.js.map +1 -0
  1577. package/dist/core/tools/edit.d.ts +51 -0
  1578. package/dist/core/tools/edit.d.ts.map +1 -0
  1579. package/dist/core/tools/edit.js +293 -0
  1580. package/dist/core/tools/edit.js.map +1 -0
  1581. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  1582. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  1583. package/dist/core/tools/file-mutation-queue.js +52 -0
  1584. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  1585. package/dist/core/tools/find.d.ts +35 -0
  1586. package/dist/core/tools/find.d.ts.map +1 -0
  1587. package/dist/core/tools/find.js +313 -0
  1588. package/dist/core/tools/find.js.map +1 -0
  1589. package/dist/core/tools/grep.d.ts +37 -0
  1590. package/dist/core/tools/grep.d.ts.map +1 -0
  1591. package/dist/core/tools/grep.js +312 -0
  1592. package/dist/core/tools/grep.js.map +1 -0
  1593. package/dist/core/tools/index.d.ts +40 -0
  1594. package/dist/core/tools/index.d.ts.map +1 -0
  1595. package/dist/core/tools/index.js +112 -0
  1596. package/dist/core/tools/index.js.map +1 -0
  1597. package/dist/core/tools/ls.d.ts +37 -0
  1598. package/dist/core/tools/ls.d.ts.map +1 -0
  1599. package/dist/core/tools/ls.js +175 -0
  1600. package/dist/core/tools/ls.js.map +1 -0
  1601. package/dist/core/tools/output-accumulator.d.ts +52 -0
  1602. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  1603. package/dist/core/tools/output-accumulator.js +184 -0
  1604. package/dist/core/tools/output-accumulator.js.map +1 -0
  1605. package/dist/core/tools/path-utils.d.ts +10 -0
  1606. package/dist/core/tools/path-utils.d.ts.map +1 -0
  1607. package/dist/core/tools/path-utils.js +99 -0
  1608. package/dist/core/tools/path-utils.js.map +1 -0
  1609. package/dist/core/tools/read.d.ts +35 -0
  1610. package/dist/core/tools/read.d.ts.map +1 -0
  1611. package/dist/core/tools/read.js +285 -0
  1612. package/dist/core/tools/read.js.map +1 -0
  1613. package/dist/core/tools/render-utils.d.ts +36 -0
  1614. package/dist/core/tools/render-utils.d.ts.map +1 -0
  1615. package/dist/core/tools/render-utils.js +88 -0
  1616. package/dist/core/tools/render-utils.js.map +1 -0
  1617. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  1618. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  1619. package/dist/core/tools/tool-definition-wrapper.js +34 -0
  1620. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  1621. package/dist/core/tools/truncate.d.ts +70 -0
  1622. package/dist/core/tools/truncate.d.ts.map +1 -0
  1623. package/dist/core/tools/truncate.js +215 -0
  1624. package/dist/core/tools/truncate.js.map +1 -0
  1625. package/dist/core/tools/write.d.ts +26 -0
  1626. package/dist/core/tools/write.d.ts.map +1 -0
  1627. package/dist/core/tools/write.js +202 -0
  1628. package/dist/core/tools/write.js.map +1 -0
  1629. package/dist/core/trust-manager.d.ts +36 -0
  1630. package/dist/core/trust-manager.d.ts.map +1 -0
  1631. package/dist/core/trust-manager.js +202 -0
  1632. package/dist/core/trust-manager.js.map +1 -0
  1633. package/dist/core/usage-adapters/kimi-coding.d.ts +11 -0
  1634. package/dist/core/usage-adapters/kimi-coding.d.ts.map +1 -0
  1635. package/dist/core/usage-adapters/kimi-coding.js +78 -0
  1636. package/dist/core/usage-adapters/kimi-coding.js.map +1 -0
  1637. package/dist/core/usage-adapters/openai-codex.d.ts +4 -0
  1638. package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -0
  1639. package/dist/core/usage-adapters/openai-codex.js +180 -0
  1640. package/dist/core/usage-adapters/openai-codex.js.map +1 -0
  1641. package/dist/core/usage-adapters/shared.d.ts +20 -0
  1642. package/dist/core/usage-adapters/shared.d.ts.map +1 -0
  1643. package/dist/core/usage-adapters/shared.js +75 -0
  1644. package/dist/core/usage-adapters/shared.js.map +1 -0
  1645. package/dist/core/usage-adapters/xai.d.ts +21 -0
  1646. package/dist/core/usage-adapters/xai.d.ts.map +1 -0
  1647. package/dist/core/usage-adapters/xai.js +77 -0
  1648. package/dist/core/usage-adapters/xai.js.map +1 -0
  1649. package/dist/core/usage-adapters/zai.d.ts +14 -0
  1650. package/dist/core/usage-adapters/zai.d.ts.map +1 -0
  1651. package/dist/core/usage-adapters/zai.js +67 -0
  1652. package/dist/core/usage-adapters/zai.js.map +1 -0
  1653. package/dist/core/usage-history.d.ts +63 -0
  1654. package/dist/core/usage-history.d.ts.map +1 -0
  1655. package/dist/core/usage-history.js +239 -0
  1656. package/dist/core/usage-history.js.map +1 -0
  1657. package/dist/core/usage-limit.d.ts +17 -0
  1658. package/dist/core/usage-limit.d.ts.map +1 -0
  1659. package/dist/core/usage-limit.js +79 -0
  1660. package/dist/core/usage-limit.js.map +1 -0
  1661. package/dist/core/usage-service.d.ts +33 -0
  1662. package/dist/core/usage-service.d.ts.map +1 -0
  1663. package/dist/core/usage-service.js +56 -0
  1664. package/dist/core/usage-service.js.map +1 -0
  1665. package/dist/core/user-models.d.ts +50 -0
  1666. package/dist/core/user-models.d.ts.map +1 -0
  1667. package/dist/core/user-models.js +192 -0
  1668. package/dist/core/user-models.js.map +1 -0
  1669. package/dist/gateway/adapters/discord.d.ts +251 -0
  1670. package/dist/gateway/adapters/discord.d.ts.map +1 -0
  1671. package/dist/gateway/adapters/discord.js +693 -0
  1672. package/dist/gateway/adapters/discord.js.map +1 -0
  1673. package/dist/gateway/adapters/telegram.d.ts +187 -0
  1674. package/dist/gateway/adapters/telegram.d.ts.map +1 -0
  1675. package/dist/gateway/adapters/telegram.js +581 -0
  1676. package/dist/gateway/adapters/telegram.js.map +1 -0
  1677. package/dist/gateway/agent-bridge.d.ts +143 -0
  1678. package/dist/gateway/agent-bridge.d.ts.map +1 -0
  1679. package/dist/gateway/agent-bridge.js +466 -0
  1680. package/dist/gateway/agent-bridge.js.map +1 -0
  1681. package/dist/gateway/approval.d.ts +34 -0
  1682. package/dist/gateway/approval.d.ts.map +1 -0
  1683. package/dist/gateway/approval.js +152 -0
  1684. package/dist/gateway/approval.js.map +1 -0
  1685. package/dist/gateway/authz.d.ts +21 -0
  1686. package/dist/gateway/authz.d.ts.map +1 -0
  1687. package/dist/gateway/authz.js +61 -0
  1688. package/dist/gateway/authz.js.map +1 -0
  1689. package/dist/gateway/buttons.d.ts +58 -0
  1690. package/dist/gateway/buttons.d.ts.map +1 -0
  1691. package/dist/gateway/buttons.js +269 -0
  1692. package/dist/gateway/buttons.js.map +1 -0
  1693. package/dist/gateway/command.d.ts +8 -0
  1694. package/dist/gateway/command.d.ts.map +1 -0
  1695. package/dist/gateway/command.js +16 -0
  1696. package/dist/gateway/command.js.map +1 -0
  1697. package/dist/gateway/commands.d.ts +43 -0
  1698. package/dist/gateway/commands.d.ts.map +1 -0
  1699. package/dist/gateway/commands.js +642 -0
  1700. package/dist/gateway/commands.js.map +1 -0
  1701. package/dist/gateway/config.d.ts +53 -0
  1702. package/dist/gateway/config.d.ts.map +1 -0
  1703. package/dist/gateway/config.js +136 -0
  1704. package/dist/gateway/config.js.map +1 -0
  1705. package/dist/gateway/cron.d.ts +69 -0
  1706. package/dist/gateway/cron.d.ts.map +1 -0
  1707. package/dist/gateway/cron.js +321 -0
  1708. package/dist/gateway/cron.js.map +1 -0
  1709. package/dist/gateway/index.d.ts +31 -0
  1710. package/dist/gateway/index.d.ts.map +1 -0
  1711. package/dist/gateway/index.js +233 -0
  1712. package/dist/gateway/index.js.map +1 -0
  1713. package/dist/gateway/pairing.d.ts +44 -0
  1714. package/dist/gateway/pairing.d.ts.map +1 -0
  1715. package/dist/gateway/pairing.js +171 -0
  1716. package/dist/gateway/pairing.js.map +1 -0
  1717. package/dist/gateway/router.d.ts +48 -0
  1718. package/dist/gateway/router.d.ts.map +1 -0
  1719. package/dist/gateway/router.js +215 -0
  1720. package/dist/gateway/router.js.map +1 -0
  1721. package/dist/gateway/session-keys.d.ts +18 -0
  1722. package/dist/gateway/session-keys.d.ts.map +1 -0
  1723. package/dist/gateway/session-keys.js +26 -0
  1724. package/dist/gateway/session-keys.js.map +1 -0
  1725. package/dist/gateway/store.d.ts +28 -0
  1726. package/dist/gateway/store.d.ts.map +1 -0
  1727. package/dist/gateway/store.js +93 -0
  1728. package/dist/gateway/store.js.map +1 -0
  1729. package/dist/gateway/stream.d.ts +55 -0
  1730. package/dist/gateway/stream.d.ts.map +1 -0
  1731. package/dist/gateway/stream.js +107 -0
  1732. package/dist/gateway/stream.js.map +1 -0
  1733. package/dist/gateway/text.d.ts +18 -0
  1734. package/dist/gateway/text.d.ts.map +1 -0
  1735. package/dist/gateway/text.js +136 -0
  1736. package/dist/gateway/text.js.map +1 -0
  1737. package/dist/gateway/types.d.ts +95 -0
  1738. package/dist/gateway/types.d.ts.map +1 -0
  1739. package/dist/gateway/types.js +9 -0
  1740. package/dist/gateway/types.js.map +1 -0
  1741. package/dist/index.d.ts +35 -0
  1742. package/dist/index.d.ts.map +1 -0
  1743. package/dist/index.js +47 -0
  1744. package/dist/index.js.map +1 -0
  1745. package/dist/main.d.ts +12 -0
  1746. package/dist/main.d.ts.map +1 -0
  1747. package/dist/main.js +742 -0
  1748. package/dist/main.js.map +1 -0
  1749. package/dist/migrations.d.ts +46 -0
  1750. package/dist/migrations.d.ts.map +1 -0
  1751. package/dist/migrations.js +351 -0
  1752. package/dist/migrations.js.map +1 -0
  1753. package/dist/modes/index.d.ts +9 -0
  1754. package/dist/modes/index.d.ts.map +1 -0
  1755. package/dist/modes/index.js +8 -0
  1756. package/dist/modes/index.js.map +1 -0
  1757. package/dist/modes/interactive/assets/clankolas.png +0 -0
  1758. package/dist/modes/interactive/components/armin.d.ts +34 -0
  1759. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  1760. package/dist/modes/interactive/components/armin.js +333 -0
  1761. package/dist/modes/interactive/components/armin.js.map +1 -0
  1762. package/dist/modes/interactive/components/assistant-message.d.ts +31 -0
  1763. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  1764. package/dist/modes/interactive/components/assistant-message.js +246 -0
  1765. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  1766. package/dist/modes/interactive/components/bash-execution.d.ts +32 -0
  1767. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  1768. package/dist/modes/interactive/components/bash-execution.js +171 -0
  1769. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  1770. package/dist/modes/interactive/components/boot-ascii.d.ts +6 -0
  1771. package/dist/modes/interactive/components/boot-ascii.d.ts.map +1 -0
  1772. package/dist/modes/interactive/components/boot-ascii.js +6 -0
  1773. package/dist/modes/interactive/components/boot-ascii.js.map +1 -0
  1774. package/dist/modes/interactive/components/boot-screen.d.ts +22 -0
  1775. package/dist/modes/interactive/components/boot-screen.d.ts.map +1 -0
  1776. package/dist/modes/interactive/components/boot-screen.js +53 -0
  1777. package/dist/modes/interactive/components/boot-screen.js.map +1 -0
  1778. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  1779. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  1780. package/dist/modes/interactive/components/bordered-loader.js +54 -0
  1781. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  1782. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  1783. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  1784. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  1785. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  1786. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  1787. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  1788. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  1789. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  1790. package/dist/modes/interactive/components/config-selector.d.ts +102 -0
  1791. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  1792. package/dist/modes/interactive/components/config-selector.js +761 -0
  1793. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  1794. package/dist/modes/interactive/components/context-view.d.ts +13 -0
  1795. package/dist/modes/interactive/components/context-view.d.ts.map +1 -0
  1796. package/dist/modes/interactive/components/context-view.js +42 -0
  1797. package/dist/modes/interactive/components/context-view.js.map +1 -0
  1798. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  1799. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  1800. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  1801. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  1802. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  1803. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  1804. package/dist/modes/interactive/components/custom-editor.js +70 -0
  1805. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  1806. package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  1807. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
  1808. package/dist/modes/interactive/components/custom-entry.js +52 -0
  1809. package/dist/modes/interactive/components/custom-entry.js.map +1 -0
  1810. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  1811. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  1812. package/dist/modes/interactive/components/custom-message.js +79 -0
  1813. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  1814. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  1815. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  1816. package/dist/modes/interactive/components/daxnuts.js +140 -0
  1817. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  1818. package/dist/modes/interactive/components/diff.d.ts +12 -0
  1819. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  1820. package/dist/modes/interactive/components/diff.js +133 -0
  1821. package/dist/modes/interactive/components/diff.js.map +1 -0
  1822. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  1823. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  1824. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  1825. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  1826. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  1827. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  1828. package/dist/modes/interactive/components/earendil-announcement.js +40 -0
  1829. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  1830. package/dist/modes/interactive/components/exit-card.d.ts +22 -0
  1831. package/dist/modes/interactive/components/exit-card.d.ts.map +1 -0
  1832. package/dist/modes/interactive/components/exit-card.js +69 -0
  1833. package/dist/modes/interactive/components/exit-card.js.map +1 -0
  1834. package/dist/modes/interactive/components/extension-editor.d.ts +22 -0
  1835. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  1836. package/dist/modes/interactive/components/extension-editor.js +128 -0
  1837. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  1838. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  1839. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  1840. package/dist/modes/interactive/components/extension-input.js +61 -0
  1841. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  1842. package/dist/modes/interactive/components/extension-selector.d.ts +30 -0
  1843. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  1844. package/dist/modes/interactive/components/extension-selector.js +106 -0
  1845. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  1846. package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  1847. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  1848. package/dist/modes/interactive/components/first-time-setup.js +99 -0
  1849. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  1850. package/dist/modes/interactive/components/footer.d.ts +32 -0
  1851. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  1852. package/dist/modes/interactive/components/footer.js +221 -0
  1853. package/dist/modes/interactive/components/footer.js.map +1 -0
  1854. package/dist/modes/interactive/components/index.d.ts +34 -0
  1855. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  1856. package/dist/modes/interactive/components/index.js +35 -0
  1857. package/dist/modes/interactive/components/index.js.map +1 -0
  1858. package/dist/modes/interactive/components/injected-prompt-message.d.ts +21 -0
  1859. package/dist/modes/interactive/components/injected-prompt-message.d.ts.map +1 -0
  1860. package/dist/modes/interactive/components/injected-prompt-message.js +51 -0
  1861. package/dist/modes/interactive/components/injected-prompt-message.js.map +1 -0
  1862. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  1863. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  1864. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  1865. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  1866. package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  1867. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  1868. package/dist/modes/interactive/components/login-dialog.js +188 -0
  1869. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  1870. package/dist/modes/interactive/components/model-selector.d.ts +61 -0
  1871. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  1872. package/dist/modes/interactive/components/model-selector.js +320 -0
  1873. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  1874. package/dist/modes/interactive/components/oauth-selector.d.ts +33 -0
  1875. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  1876. package/dist/modes/interactive/components/oauth-selector.js +163 -0
  1877. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  1878. package/dist/modes/interactive/components/processes-selector.d.ts +19 -0
  1879. package/dist/modes/interactive/components/processes-selector.d.ts.map +1 -0
  1880. package/dist/modes/interactive/components/processes-selector.js +170 -0
  1881. package/dist/modes/interactive/components/processes-selector.js.map +1 -0
  1882. package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  1883. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  1884. package/dist/modes/interactive/components/scoped-models-selector.js +293 -0
  1885. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  1886. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  1887. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  1888. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  1889. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  1890. package/dist/modes/interactive/components/session-selector.d.ts +95 -0
  1891. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  1892. package/dist/modes/interactive/components/session-selector.js +857 -0
  1893. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  1894. package/dist/modes/interactive/components/settings-selector.d.ts +139 -0
  1895. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  1896. package/dist/modes/interactive/components/settings-selector.js +1156 -0
  1897. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  1898. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  1899. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  1900. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  1901. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  1902. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  1903. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  1904. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  1905. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  1906. package/dist/modes/interactive/components/status-indicator.d.ts +28 -0
  1907. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
  1908. package/dist/modes/interactive/components/status-indicator.js +60 -0
  1909. package/dist/modes/interactive/components/status-indicator.js.map +1 -0
  1910. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  1911. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  1912. package/dist/modes/interactive/components/theme-selector.js +50 -0
  1913. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  1914. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  1915. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  1916. package/dist/modes/interactive/components/thinking-selector.js +52 -0
  1917. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  1918. package/dist/modes/interactive/components/thinking-summary.d.ts +36 -0
  1919. package/dist/modes/interactive/components/thinking-summary.d.ts.map +1 -0
  1920. package/dist/modes/interactive/components/thinking-summary.js +94 -0
  1921. package/dist/modes/interactive/components/thinking-summary.js.map +1 -0
  1922. package/dist/modes/interactive/components/thinking-tail.d.ts +21 -0
  1923. package/dist/modes/interactive/components/thinking-tail.d.ts.map +1 -0
  1924. package/dist/modes/interactive/components/thinking-tail.js +29 -0
  1925. package/dist/modes/interactive/components/thinking-tail.js.map +1 -0
  1926. package/dist/modes/interactive/components/tool-execution.d.ts +67 -0
  1927. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  1928. package/dist/modes/interactive/components/tool-execution.js +340 -0
  1929. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  1930. package/dist/modes/interactive/components/tree-selector.d.ts +94 -0
  1931. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  1932. package/dist/modes/interactive/components/tree-selector.js +1245 -0
  1933. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  1934. package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  1935. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  1936. package/dist/modes/interactive/components/trust-selector.js +91 -0
  1937. package/dist/modes/interactive/components/trust-selector.js.map +1 -0
  1938. package/dist/modes/interactive/components/usage-view.d.ts +63 -0
  1939. package/dist/modes/interactive/components/usage-view.d.ts.map +1 -0
  1940. package/dist/modes/interactive/components/usage-view.js +189 -0
  1941. package/dist/modes/interactive/components/usage-view.js.map +1 -0
  1942. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  1943. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  1944. package/dist/modes/interactive/components/user-message-selector.js +114 -0
  1945. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  1946. package/dist/modes/interactive/components/user-message.d.ts +16 -0
  1947. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  1948. package/dist/modes/interactive/components/user-message.js +62 -0
  1949. package/dist/modes/interactive/components/user-message.js.map +1 -0
  1950. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  1951. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  1952. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  1953. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  1954. package/dist/modes/interactive/interactive-mode.d.ts +448 -0
  1955. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  1956. package/dist/modes/interactive/interactive-mode.js +6487 -0
  1957. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  1958. package/dist/modes/interactive/model-search.d.ts +12 -0
  1959. package/dist/modes/interactive/model-search.d.ts.map +1 -0
  1960. package/dist/modes/interactive/model-search.js +15 -0
  1961. package/dist/modes/interactive/model-search.js.map +1 -0
  1962. package/dist/modes/interactive/smooth-streaming.d.ts +10 -0
  1963. package/dist/modes/interactive/smooth-streaming.d.ts.map +1 -0
  1964. package/dist/modes/interactive/smooth-streaming.js +95 -0
  1965. package/dist/modes/interactive/smooth-streaming.js.map +1 -0
  1966. package/dist/modes/interactive/theme/moon.json +83 -0
  1967. package/dist/modes/interactive/theme/theme-controller.d.ts +29 -0
  1968. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  1969. package/dist/modes/interactive/theme/theme-controller.js +97 -0
  1970. package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
  1971. package/dist/modes/interactive/theme/theme-schema.json +363 -0
  1972. package/dist/modes/interactive/theme/theme.d.ts +128 -0
  1973. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  1974. package/dist/modes/interactive/theme/theme.js +1092 -0
  1975. package/dist/modes/interactive/theme/theme.js.map +1 -0
  1976. package/dist/modes/print-mode.d.ts +28 -0
  1977. package/dist/modes/print-mode.d.ts.map +1 -0
  1978. package/dist/modes/print-mode.js +132 -0
  1979. package/dist/modes/print-mode.js.map +1 -0
  1980. package/dist/modes/rpc/jsonl.d.ts +17 -0
  1981. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  1982. package/dist/modes/rpc/jsonl.js +49 -0
  1983. package/dist/modes/rpc/jsonl.js.map +1 -0
  1984. package/dist/modes/rpc/rpc-client.d.ts +242 -0
  1985. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  1986. package/dist/modes/rpc/rpc-client.js +481 -0
  1987. package/dist/modes/rpc/rpc-client.js.map +1 -0
  1988. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  1989. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  1990. package/dist/modes/rpc/rpc-mode.js +635 -0
  1991. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  1992. package/dist/modes/rpc/rpc-types.d.ts +446 -0
  1993. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  1994. package/dist/modes/rpc/rpc-types.js +8 -0
  1995. package/dist/modes/rpc/rpc-types.js.map +1 -0
  1996. package/dist/package-manager-cli.d.ts +8 -0
  1997. package/dist/package-manager-cli.d.ts.map +1 -0
  1998. package/dist/package-manager-cli.js +378 -0
  1999. package/dist/package-manager-cli.js.map +1 -0
  2000. package/dist/rpc-entry.d.ts +3 -0
  2001. package/dist/rpc-entry.d.ts.map +1 -0
  2002. package/dist/rpc-entry.js +10 -0
  2003. package/dist/rpc-entry.js.map +1 -0
  2004. package/dist/utils/ansi.d.ts +2 -0
  2005. package/dist/utils/ansi.d.ts.map +1 -0
  2006. package/dist/utils/ansi.js +52 -0
  2007. package/dist/utils/ansi.js.map +1 -0
  2008. package/dist/utils/child-process.d.ts +18 -0
  2009. package/dist/utils/child-process.d.ts.map +1 -0
  2010. package/dist/utils/child-process.js +106 -0
  2011. package/dist/utils/child-process.js.map +1 -0
  2012. package/dist/utils/clipboard-image.d.ts +11 -0
  2013. package/dist/utils/clipboard-image.d.ts.map +1 -0
  2014. package/dist/utils/clipboard-image.js +300 -0
  2015. package/dist/utils/clipboard-image.js.map +1 -0
  2016. package/dist/utils/clipboard-native.d.ts +11 -0
  2017. package/dist/utils/clipboard-native.d.ts.map +1 -0
  2018. package/dist/utils/clipboard-native.js +20 -0
  2019. package/dist/utils/clipboard-native.js.map +1 -0
  2020. package/dist/utils/clipboard.d.ts +4 -0
  2021. package/dist/utils/clipboard.d.ts.map +1 -0
  2022. package/dist/utils/clipboard.js +130 -0
  2023. package/dist/utils/clipboard.js.map +1 -0
  2024. package/dist/utils/deprecation.d.ts +4 -0
  2025. package/dist/utils/deprecation.d.ts.map +1 -0
  2026. package/dist/utils/deprecation.js +13 -0
  2027. package/dist/utils/deprecation.js.map +1 -0
  2028. package/dist/utils/exif-orientation.d.ts +5 -0
  2029. package/dist/utils/exif-orientation.d.ts.map +1 -0
  2030. package/dist/utils/exif-orientation.js +158 -0
  2031. package/dist/utils/exif-orientation.js.map +1 -0
  2032. package/dist/utils/frontmatter.d.ts +8 -0
  2033. package/dist/utils/frontmatter.d.ts.map +1 -0
  2034. package/dist/utils/frontmatter.js +26 -0
  2035. package/dist/utils/frontmatter.js.map +1 -0
  2036. package/dist/utils/fs-watch.d.ts +5 -0
  2037. package/dist/utils/fs-watch.d.ts.map +1 -0
  2038. package/dist/utils/fs-watch.js +25 -0
  2039. package/dist/utils/fs-watch.js.map +1 -0
  2040. package/dist/utils/git.d.ts +26 -0
  2041. package/dist/utils/git.d.ts.map +1 -0
  2042. package/dist/utils/git.js +195 -0
  2043. package/dist/utils/git.js.map +1 -0
  2044. package/dist/utils/html.d.ts +7 -0
  2045. package/dist/utils/html.d.ts.map +1 -0
  2046. package/dist/utils/html.js +40 -0
  2047. package/dist/utils/html.js.map +1 -0
  2048. package/dist/utils/image-convert.d.ts +10 -0
  2049. package/dist/utils/image-convert.d.ts.map +1 -0
  2050. package/dist/utils/image-convert.js +45 -0
  2051. package/dist/utils/image-convert.js.map +1 -0
  2052. package/dist/utils/image-process.d.ts +18 -0
  2053. package/dist/utils/image-process.d.ts.map +1 -0
  2054. package/dist/utils/image-process.js +83 -0
  2055. package/dist/utils/image-process.js.map +1 -0
  2056. package/dist/utils/image-resize-core.d.ts +30 -0
  2057. package/dist/utils/image-resize-core.d.ts.map +1 -0
  2058. package/dist/utils/image-resize-core.js +124 -0
  2059. package/dist/utils/image-resize-core.js.map +1 -0
  2060. package/dist/utils/image-resize-worker.d.ts +2 -0
  2061. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  2062. package/dist/utils/image-resize-worker.js +31 -0
  2063. package/dist/utils/image-resize-worker.js.map +1 -0
  2064. package/dist/utils/image-resize.d.ts +16 -0
  2065. package/dist/utils/image-resize.d.ts.map +1 -0
  2066. package/dist/utils/image-resize.js +97 -0
  2067. package/dist/utils/image-resize.js.map +1 -0
  2068. package/dist/utils/json.d.ts +3 -0
  2069. package/dist/utils/json.d.ts.map +1 -0
  2070. package/dist/utils/json.js +7 -0
  2071. package/dist/utils/json.js.map +1 -0
  2072. package/dist/utils/mime.d.ts +3 -0
  2073. package/dist/utils/mime.d.ts.map +1 -0
  2074. package/dist/utils/mime.js +110 -0
  2075. package/dist/utils/mime.js.map +1 -0
  2076. package/dist/utils/open-browser.d.ts +9 -0
  2077. package/dist/utils/open-browser.d.ts.map +1 -0
  2078. package/dist/utils/open-browser.js +22 -0
  2079. package/dist/utils/open-browser.js.map +1 -0
  2080. package/dist/utils/paths.d.ts +31 -0
  2081. package/dist/utils/paths.d.ts.map +1 -0
  2082. package/dist/utils/paths.js +92 -0
  2083. package/dist/utils/paths.js.map +1 -0
  2084. package/dist/utils/photon.d.ts +21 -0
  2085. package/dist/utils/photon.d.ts.map +1 -0
  2086. package/dist/utils/photon.js +121 -0
  2087. package/dist/utils/photon.js.map +1 -0
  2088. package/dist/utils/pi-user-agent.d.ts +2 -0
  2089. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  2090. package/dist/utils/pi-user-agent.js +5 -0
  2091. package/dist/utils/pi-user-agent.js.map +1 -0
  2092. package/dist/utils/shell.d.ts +31 -0
  2093. package/dist/utils/shell.d.ts.map +1 -0
  2094. package/dist/utils/shell.js +202 -0
  2095. package/dist/utils/shell.js.map +1 -0
  2096. package/dist/utils/sleep.d.ts +5 -0
  2097. package/dist/utils/sleep.d.ts.map +1 -0
  2098. package/dist/utils/sleep.js +17 -0
  2099. package/dist/utils/sleep.js.map +1 -0
  2100. package/dist/utils/syntax-highlight.d.ts +12 -0
  2101. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  2102. package/dist/utils/syntax-highlight.js +118 -0
  2103. package/dist/utils/syntax-highlight.js.map +1 -0
  2104. package/dist/utils/tools-manager.d.ts +3 -0
  2105. package/dist/utils/tools-manager.d.ts.map +1 -0
  2106. package/dist/utils/tools-manager.js +328 -0
  2107. package/dist/utils/tools-manager.js.map +1 -0
  2108. package/docs/compaction.md +396 -0
  2109. package/docs/containerization.md +111 -0
  2110. package/docs/custom-provider.md +735 -0
  2111. package/docs/development.md +71 -0
  2112. package/docs/docs.json +156 -0
  2113. package/docs/extensions.md +2911 -0
  2114. package/docs/images/doom-extension.png +0 -0
  2115. package/docs/images/exy.png +0 -0
  2116. package/docs/images/interactive-mode.png +0 -0
  2117. package/docs/images/tree-view.png +0 -0
  2118. package/docs/index.md +82 -0
  2119. package/docs/json.md +82 -0
  2120. package/docs/keybindings.md +201 -0
  2121. package/docs/models.md +540 -0
  2122. package/docs/packages.md +228 -0
  2123. package/docs/prompt-templates.md +95 -0
  2124. package/docs/providers.md +294 -0
  2125. package/docs/quickstart.md +165 -0
  2126. package/docs/rpc.md +1480 -0
  2127. package/docs/sdk.md +1183 -0
  2128. package/docs/security.md +59 -0
  2129. package/docs/session-format.md +422 -0
  2130. package/docs/sessions.md +145 -0
  2131. package/docs/settings.md +302 -0
  2132. package/docs/shell-aliases.md +13 -0
  2133. package/docs/skills.md +231 -0
  2134. package/docs/terminal-setup.md +142 -0
  2135. package/docs/termux.md +127 -0
  2136. package/docs/themes.md +297 -0
  2137. package/docs/tmux.md +63 -0
  2138. package/docs/tui.md +927 -0
  2139. package/docs/usage.md +312 -0
  2140. package/docs/windows.md +17 -0
  2141. package/examples/README.md +25 -0
  2142. package/examples/extensions/README.md +213 -0
  2143. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  2144. package/examples/extensions/bash-spawn-hook.ts +30 -0
  2145. package/examples/extensions/bookmark.ts +50 -0
  2146. package/examples/extensions/border-status-editor.ts +150 -0
  2147. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  2148. package/examples/extensions/claude-rules.ts +86 -0
  2149. package/examples/extensions/commands.ts +72 -0
  2150. package/examples/extensions/confirm-destructive.ts +59 -0
  2151. package/examples/extensions/custom-compaction.ts +128 -0
  2152. package/examples/extensions/custom-footer.ts +64 -0
  2153. package/examples/extensions/custom-header.ts +73 -0
  2154. package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
  2155. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  2156. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  2157. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -0
  2158. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  2159. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  2160. package/examples/extensions/dirty-repo-guard.ts +56 -0
  2161. package/examples/extensions/doom-overlay/README.md +46 -0
  2162. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  2163. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  2164. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  2165. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  2166. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  2167. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  2168. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  2169. package/examples/extensions/doom-overlay/index.ts +74 -0
  2170. package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  2171. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  2172. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  2173. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  2174. package/examples/extensions/dynamic-resources/index.ts +15 -0
  2175. package/examples/extensions/dynamic-tools.ts +74 -0
  2176. package/examples/extensions/entry-renderer.ts +41 -0
  2177. package/examples/extensions/event-bus.ts +43 -0
  2178. package/examples/extensions/file-trigger.ts +41 -0
  2179. package/examples/extensions/git-checkpoint.ts +53 -0
  2180. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  2181. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  2182. package/examples/extensions/gondolin/index.ts +531 -0
  2183. package/examples/extensions/gondolin/package-lock.json +185 -0
  2184. package/examples/extensions/gondolin/package.json +19 -0
  2185. package/examples/extensions/handoff.ts +191 -0
  2186. package/examples/extensions/hello.ts +26 -0
  2187. package/examples/extensions/hidden-thinking-label.ts +53 -0
  2188. package/examples/extensions/inline-bash.ts +94 -0
  2189. package/examples/extensions/input-transform-streaming.ts +39 -0
  2190. package/examples/extensions/input-transform.ts +43 -0
  2191. package/examples/extensions/interactive-shell.ts +196 -0
  2192. package/examples/extensions/kimi-deferred-tools.ts +61 -0
  2193. package/examples/extensions/mac-system-theme.ts +47 -0
  2194. package/examples/extensions/message-renderer.ts +59 -0
  2195. package/examples/extensions/minimal-mode.ts +426 -0
  2196. package/examples/extensions/modal-editor.ts +85 -0
  2197. package/examples/extensions/model-status.ts +31 -0
  2198. package/examples/extensions/notify.ts +55 -0
  2199. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  2200. package/examples/extensions/overlay-test.ts +153 -0
  2201. package/examples/extensions/permission-gate.ts +34 -0
  2202. package/examples/extensions/pirate.ts +47 -0
  2203. package/examples/extensions/plan-mode/README.md +66 -0
  2204. package/examples/extensions/plan-mode/index.ts +390 -0
  2205. package/examples/extensions/plan-mode/utils.ts +168 -0
  2206. package/examples/extensions/preset.ts +436 -0
  2207. package/examples/extensions/project-trust.ts +64 -0
  2208. package/examples/extensions/prompt-customizer.ts +97 -0
  2209. package/examples/extensions/protected-paths.ts +30 -0
  2210. package/examples/extensions/provider-payload.ts +18 -0
  2211. package/examples/extensions/qna.ts +122 -0
  2212. package/examples/extensions/question.ts +286 -0
  2213. package/examples/extensions/questionnaire.ts +448 -0
  2214. package/examples/extensions/rainbow-editor.ts +88 -0
  2215. package/examples/extensions/reload-runtime.ts +37 -0
  2216. package/examples/extensions/rpc-demo.ts +118 -0
  2217. package/examples/extensions/sandbox/index.ts +321 -0
  2218. package/examples/extensions/sandbox/package-lock.json +92 -0
  2219. package/examples/extensions/sandbox/package.json +19 -0
  2220. package/examples/extensions/send-user-message.ts +97 -0
  2221. package/examples/extensions/session-name.ts +27 -0
  2222. package/examples/extensions/shutdown-command.ts +63 -0
  2223. package/examples/extensions/snake.ts +343 -0
  2224. package/examples/extensions/space-invaders.ts +560 -0
  2225. package/examples/extensions/ssh.ts +220 -0
  2226. package/examples/extensions/status-line.ts +32 -0
  2227. package/examples/extensions/structured-output.ts +65 -0
  2228. package/examples/extensions/subagent/README.md +175 -0
  2229. package/examples/extensions/subagent/agents/planner.md +37 -0
  2230. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  2231. package/examples/extensions/subagent/agents/scout.md +50 -0
  2232. package/examples/extensions/subagent/agents/worker.md +24 -0
  2233. package/examples/extensions/subagent/agents.ts +126 -0
  2234. package/examples/extensions/subagent/index.ts +1015 -0
  2235. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  2236. package/examples/extensions/subagent/prompts/implement.md +10 -0
  2237. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  2238. package/examples/extensions/summarize.ts +207 -0
  2239. package/examples/extensions/system-prompt-header.ts +17 -0
  2240. package/examples/extensions/tic-tac-toe.ts +1008 -0
  2241. package/examples/extensions/timed-confirm.ts +70 -0
  2242. package/examples/extensions/titlebar-spinner.ts +58 -0
  2243. package/examples/extensions/todo.ts +297 -0
  2244. package/examples/extensions/tool-override.ts +144 -0
  2245. package/examples/extensions/tools.ts +146 -0
  2246. package/examples/extensions/trigger-compact.ts +50 -0
  2247. package/examples/extensions/truncated-tool.ts +195 -0
  2248. package/examples/extensions/widget-placement.ts +9 -0
  2249. package/examples/extensions/with-deps/index.ts +32 -0
  2250. package/examples/extensions/with-deps/package-lock.json +31 -0
  2251. package/examples/extensions/with-deps/package.json +22 -0
  2252. package/examples/extensions/working-indicator.ts +123 -0
  2253. package/examples/extensions/working-message-test.ts +25 -0
  2254. package/examples/rpc-extension-ui.ts +632 -0
  2255. package/examples/sdk/01-minimal.ts +26 -0
  2256. package/examples/sdk/02-custom-model.ts +50 -0
  2257. package/examples/sdk/03-custom-prompt.ts +75 -0
  2258. package/examples/sdk/04-skills.ts +55 -0
  2259. package/examples/sdk/05-tools.ts +48 -0
  2260. package/examples/sdk/06-extensions.ts +99 -0
  2261. package/examples/sdk/07-context-files.ts +47 -0
  2262. package/examples/sdk/08-prompt-templates.ts +51 -0
  2263. package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
  2264. package/examples/sdk/10-settings.ts +53 -0
  2265. package/examples/sdk/11-sessions.ts +52 -0
  2266. package/examples/sdk/12-full-control.ts +72 -0
  2267. package/examples/sdk/13-session-runtime.ts +67 -0
  2268. package/examples/sdk/README.md +140 -0
  2269. package/package.json +116 -0
@@ -0,0 +1,340 @@
1
+ import { Box, Container, getCapabilities, Image, Spacer, Text } from "@earendil-works/pi-tui";
2
+ import { createAllToolDefinitions } from "../../../core/tools/index.js";
3
+ import { getTextOutput as getRenderedTextOutput, toolStatusDot } from "../../../core/tools/render-utils.js";
4
+ import { convertToPng } from "../../../utils/image-convert.js";
5
+ import { theme } from "../theme/theme.js";
6
+ export class ToolExecutionComponent extends Container {
7
+ contentBox;
8
+ contentText;
9
+ selfRenderContainer;
10
+ // lunr: top spacer kept as a field so consecutive same-tool calls can be
11
+ // grouped into one continuous background by zeroing it (setGroupContinuation).
12
+ topSpacer;
13
+ callRendererComponent;
14
+ resultRendererComponent;
15
+ rendererState = {};
16
+ imageComponents = [];
17
+ imageSpacers = [];
18
+ toolName;
19
+ toolCallId;
20
+ args;
21
+ expanded = false;
22
+ showImages;
23
+ imageWidthCells;
24
+ isPartial = true;
25
+ toolDefinition;
26
+ builtInToolDefinition;
27
+ ui;
28
+ cwd;
29
+ executionStarted = false;
30
+ argsComplete = false;
31
+ result;
32
+ convertedImages = new Map();
33
+ hideComponent = false;
34
+ constructor(toolName, toolCallId, args, options = {}, toolDefinition, ui, cwd) {
35
+ super();
36
+ this.toolName = toolName;
37
+ this.toolCallId = toolCallId;
38
+ this.args = args;
39
+ this.toolDefinition = toolDefinition;
40
+ this.builtInToolDefinition = createAllToolDefinitions(cwd)[toolName];
41
+ this.showImages = options.showImages ?? true;
42
+ this.imageWidthCells = options.imageWidthCells ?? 60;
43
+ this.ui = ui;
44
+ this.cwd = cwd;
45
+ this.topSpacer = new Spacer(1);
46
+ this.addChild(this.topSpacer);
47
+ // Always create all shell variants. contentBox is used for default renderer-based composition.
48
+ // selfRenderContainer is used when the tool renders its own framing.
49
+ // contentText is reserved for generic fallback rendering when no tool definition exists.
50
+ this.contentBox = new Box(1, 1, (text) => theme.bg("toolPendingBg", text));
51
+ this.contentText = new Text("", 1, 1, (text) => theme.bg("toolPendingBg", text));
52
+ this.selfRenderContainer = new Container();
53
+ if (this.hasRendererDefinition()) {
54
+ this.addChild(this.getRenderShell() === "self" ? this.selfRenderContainer : this.contentBox);
55
+ }
56
+ else {
57
+ this.addChild(this.contentText);
58
+ }
59
+ this.updateDisplay();
60
+ }
61
+ getCallRenderer() {
62
+ if (!this.builtInToolDefinition) {
63
+ return this.toolDefinition?.renderCall;
64
+ }
65
+ if (!this.toolDefinition) {
66
+ return this.builtInToolDefinition.renderCall;
67
+ }
68
+ return this.toolDefinition.renderCall ?? this.builtInToolDefinition.renderCall;
69
+ }
70
+ getResultRenderer() {
71
+ if (!this.builtInToolDefinition) {
72
+ return this.toolDefinition?.renderResult;
73
+ }
74
+ if (!this.toolDefinition) {
75
+ return this.builtInToolDefinition.renderResult;
76
+ }
77
+ return this.toolDefinition.renderResult ?? this.builtInToolDefinition.renderResult;
78
+ }
79
+ hasRendererDefinition() {
80
+ return this.builtInToolDefinition !== undefined || this.toolDefinition !== undefined;
81
+ }
82
+ getRenderShell() {
83
+ if (!this.builtInToolDefinition) {
84
+ return this.toolDefinition?.renderShell ?? "default";
85
+ }
86
+ if (!this.toolDefinition) {
87
+ return this.builtInToolDefinition.renderShell ?? "default";
88
+ }
89
+ return this.toolDefinition.renderShell ?? this.builtInToolDefinition.renderShell ?? "default";
90
+ }
91
+ getRenderContext(lastComponent) {
92
+ return {
93
+ args: this.args,
94
+ toolCallId: this.toolCallId,
95
+ invalidate: () => {
96
+ this.invalidate();
97
+ this.ui.requestRender();
98
+ },
99
+ requestRender: () => {
100
+ this.ui.requestRender();
101
+ },
102
+ lastComponent,
103
+ state: this.rendererState,
104
+ cwd: this.cwd,
105
+ executionStarted: this.executionStarted,
106
+ argsComplete: this.argsComplete,
107
+ isPartial: this.isPartial,
108
+ expanded: this.expanded,
109
+ showImages: this.showImages,
110
+ isError: this.result?.isError ?? false,
111
+ };
112
+ }
113
+ getStatusDot() {
114
+ const state = this.isPartial ? "pending" : this.result?.isError ? "error" : "success";
115
+ return toolStatusDot(state, theme);
116
+ }
117
+ createCallFallback() {
118
+ return new Text(`${this.getStatusDot()} ${theme.fg("toolTitle", theme.bold(this.toolName))}`, 0, 0);
119
+ }
120
+ createResultFallback() {
121
+ const output = this.getTextOutput();
122
+ if (!output) {
123
+ return undefined;
124
+ }
125
+ return new Text(theme.fg("toolOutput", output), 0, 0);
126
+ }
127
+ updateArgs(args) {
128
+ this.args = args;
129
+ this.updateDisplay();
130
+ }
131
+ markExecutionStarted() {
132
+ this.executionStarted = true;
133
+ this.updateDisplay();
134
+ this.ui.requestRender();
135
+ }
136
+ setArgsComplete() {
137
+ this.argsComplete = true;
138
+ this.updateDisplay();
139
+ this.ui.requestRender();
140
+ }
141
+ updateResult(result, isPartial = false) {
142
+ this.result = result;
143
+ this.isPartial = isPartial;
144
+ this.updateDisplay();
145
+ this.maybeConvertImagesForKitty();
146
+ }
147
+ maybeConvertImagesForKitty() {
148
+ const caps = getCapabilities();
149
+ if (caps.images !== "kitty")
150
+ return;
151
+ if (!this.result)
152
+ return;
153
+ const imageBlocks = this.result.content.filter((c) => c.type === "image");
154
+ for (let i = 0; i < imageBlocks.length; i++) {
155
+ const img = imageBlocks[i];
156
+ if (!img.data || !img.mimeType)
157
+ continue;
158
+ if (img.mimeType === "image/png")
159
+ continue;
160
+ if (this.convertedImages.has(i))
161
+ continue;
162
+ const index = i;
163
+ convertToPng(img.data, img.mimeType).then((converted) => {
164
+ if (converted) {
165
+ this.convertedImages.set(index, converted);
166
+ this.updateDisplay();
167
+ this.ui.requestRender();
168
+ }
169
+ });
170
+ }
171
+ }
172
+ setExpanded(expanded) {
173
+ this.expanded = expanded;
174
+ this.updateDisplay();
175
+ }
176
+ // lunr: consecutive same-tool grouping — exposes the tool name so the caller
177
+ // can detect adjacency.
178
+ getToolName() {
179
+ return this.toolName;
180
+ }
181
+ // lunr: consecutive same-tool grouping — continuation calls hide the top
182
+ // spacer so adjacent same-bg boxes read as one continuous background; each
183
+ // call's content still renders normally inside its own box.
184
+ setGroupContinuation(on) {
185
+ this.topSpacer.setLines(on ? 0 : 1);
186
+ this.invalidate();
187
+ }
188
+ setShowImages(show) {
189
+ this.showImages = show;
190
+ this.updateDisplay();
191
+ }
192
+ setImageWidthCells(width) {
193
+ this.imageWidthCells = Math.max(1, Math.floor(width));
194
+ this.updateDisplay();
195
+ }
196
+ invalidate() {
197
+ super.invalidate();
198
+ this.updateDisplay();
199
+ }
200
+ render(width) {
201
+ if (this.hideComponent) {
202
+ return [];
203
+ }
204
+ if (this.hasRendererDefinition() && this.getRenderShell() === "self") {
205
+ const contentLines = this.selfRenderContainer.render(width);
206
+ if (contentLines.length === 0 && this.imageComponents.length === 0) {
207
+ return [];
208
+ }
209
+ const lines = [];
210
+ if (contentLines.length > 0) {
211
+ lines.push("");
212
+ lines.push(...contentLines);
213
+ }
214
+ for (let i = 0; i < this.imageComponents.length; i++) {
215
+ const spacer = this.imageSpacers[i];
216
+ if (spacer) {
217
+ lines.push(...spacer.render(width));
218
+ }
219
+ const imageComponent = this.imageComponents[i];
220
+ if (imageComponent) {
221
+ lines.push(...imageComponent.render(width));
222
+ }
223
+ }
224
+ return lines;
225
+ }
226
+ return super.render(width);
227
+ }
228
+ updateDisplay() {
229
+ const bgFn = this.isPartial
230
+ ? (text) => theme.bg("toolPendingBg", text)
231
+ : this.result?.isError
232
+ ? (text) => theme.bg("toolErrorBg", text)
233
+ : (text) => theme.bg("toolSuccessBg", text);
234
+ let hasContent = false;
235
+ this.hideComponent = false;
236
+ if (this.hasRendererDefinition()) {
237
+ const renderContainer = this.getRenderShell() === "self" ? this.selfRenderContainer : this.contentBox;
238
+ if (renderContainer instanceof Box) {
239
+ renderContainer.setBgFn(bgFn);
240
+ }
241
+ renderContainer.clear();
242
+ const callRenderer = this.getCallRenderer();
243
+ if (!callRenderer) {
244
+ renderContainer.addChild(this.createCallFallback());
245
+ hasContent = true;
246
+ }
247
+ else {
248
+ try {
249
+ const component = callRenderer(this.args, theme, this.getRenderContext(this.callRendererComponent));
250
+ this.callRendererComponent = component;
251
+ renderContainer.addChild(component);
252
+ hasContent = true;
253
+ }
254
+ catch {
255
+ this.callRendererComponent = undefined;
256
+ renderContainer.addChild(this.createCallFallback());
257
+ hasContent = true;
258
+ }
259
+ }
260
+ if (this.result) {
261
+ const resultRenderer = this.getResultRenderer();
262
+ if (!resultRenderer) {
263
+ const component = this.createResultFallback();
264
+ if (component) {
265
+ renderContainer.addChild(component);
266
+ hasContent = true;
267
+ }
268
+ }
269
+ else {
270
+ try {
271
+ const component = resultRenderer({ content: this.result.content, details: this.result.details }, { expanded: this.expanded, isPartial: this.isPartial }, theme, this.getRenderContext(this.resultRendererComponent));
272
+ this.resultRendererComponent = component;
273
+ renderContainer.addChild(component);
274
+ hasContent = true;
275
+ }
276
+ catch {
277
+ this.resultRendererComponent = undefined;
278
+ const component = this.createResultFallback();
279
+ if (component) {
280
+ renderContainer.addChild(component);
281
+ hasContent = true;
282
+ }
283
+ }
284
+ }
285
+ }
286
+ }
287
+ else {
288
+ this.contentText.setCustomBgFn(bgFn);
289
+ this.contentText.setText(this.formatToolExecution());
290
+ hasContent = true;
291
+ }
292
+ for (const img of this.imageComponents) {
293
+ this.removeChild(img);
294
+ }
295
+ this.imageComponents = [];
296
+ for (const spacer of this.imageSpacers) {
297
+ this.removeChild(spacer);
298
+ }
299
+ this.imageSpacers = [];
300
+ if (this.result) {
301
+ const imageBlocks = this.result.content.filter((c) => c.type === "image");
302
+ const caps = getCapabilities();
303
+ for (let i = 0; i < imageBlocks.length; i++) {
304
+ const img = imageBlocks[i];
305
+ if (caps.images && this.showImages && img.data && img.mimeType) {
306
+ const converted = this.convertedImages.get(i);
307
+ const imageData = converted?.data ?? img.data;
308
+ const imageMimeType = converted?.mimeType ?? img.mimeType;
309
+ if (caps.images === "kitty" && imageMimeType !== "image/png")
310
+ continue;
311
+ const spacer = new Spacer(1);
312
+ this.addChild(spacer);
313
+ this.imageSpacers.push(spacer);
314
+ const imageComponent = new Image(imageData, imageMimeType, { fallbackColor: (s) => theme.fg("toolOutput", s) }, { maxWidthCells: this.imageWidthCells });
315
+ this.imageComponents.push(imageComponent);
316
+ this.addChild(imageComponent);
317
+ }
318
+ }
319
+ }
320
+ if (this.hasRendererDefinition() && !hasContent && this.imageComponents.length === 0) {
321
+ this.hideComponent = true;
322
+ }
323
+ }
324
+ getTextOutput() {
325
+ return getRenderedTextOutput(this.result, this.showImages);
326
+ }
327
+ formatToolExecution() {
328
+ let text = `${this.getStatusDot()} ${theme.fg("toolTitle", theme.bold(this.toolName))}`;
329
+ const content = JSON.stringify(this.args, null, 2);
330
+ if (content) {
331
+ text += `\n\n${content}`;
332
+ }
333
+ const output = this.getTextOutput();
334
+ if (output) {
335
+ text += `\n${output}`;
336
+ }
337
+ return text;
338
+ }
339
+ }
340
+ //# sourceMappingURL=tool-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-execution.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/tool-execution.ts"],"names":[],"mappings":"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","sourcesContent":["import { Box, type Component, Container, getCapabilities, Image, Spacer, Text, type TUI } from \"@earendil-works/pi-tui\";\nimport type { ToolDefinition, ToolRenderContext } from \"../../../core/extensions/types.ts\";\nimport { createAllToolDefinitions, type ToolName } from \"../../../core/tools/index.ts\";\nimport { getTextOutput as getRenderedTextOutput, toolStatusDot } from \"../../../core/tools/render-utils.ts\";\nimport { convertToPng } from \"../../../utils/image-convert.ts\";\nimport { theme } from \"../theme/theme.ts\";\n\nexport interface ToolExecutionOptions {\n\tshowImages?: boolean;\n\timageWidthCells?: number;\n}\n\nexport class ToolExecutionComponent extends Container {\n\tprivate contentBox: Box;\n\tprivate contentText: Text;\n\tprivate selfRenderContainer: Container;\n\t// lunr: top spacer kept as a field so consecutive same-tool calls can be\n\t// grouped into one continuous background by zeroing it (setGroupContinuation).\n\tprivate topSpacer: Spacer;\n\tprivate callRendererComponent?: Component;\n\tprivate resultRendererComponent?: Component;\n\tprivate rendererState: any = {};\n\tprivate imageComponents: Image[] = [];\n\tprivate imageSpacers: Spacer[] = [];\n\tprivate toolName: string;\n\tprivate toolCallId: string;\n\tprivate args: any;\n\tprivate expanded = false;\n\tprivate showImages: boolean;\n\tprivate imageWidthCells: number;\n\tprivate isPartial = true;\n\tprivate toolDefinition?: ToolDefinition<any, any>;\n\tprivate builtInToolDefinition?: ToolDefinition<any, any>;\n\tprivate ui: TUI;\n\tprivate cwd: string;\n\tprivate executionStarted = false;\n\tprivate argsComplete = false;\n\tprivate result?: {\n\t\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\t\tisError: boolean;\n\t\tdetails?: any;\n\t};\n\tprivate convertedImages: Map<number, { data: string; mimeType: string }> = new Map();\n\tprivate hideComponent = false;\n\n\tconstructor(\n\t\ttoolName: string,\n\t\ttoolCallId: string,\n\t\targs: any,\n\t\toptions: ToolExecutionOptions = {},\n\t\ttoolDefinition: ToolDefinition<any, any> | undefined,\n\t\tui: TUI,\n\t\tcwd: string,\n\t) {\n\t\tsuper();\n\t\tthis.toolName = toolName;\n\t\tthis.toolCallId = toolCallId;\n\t\tthis.args = args;\n\t\tthis.toolDefinition = toolDefinition;\n\t\tthis.builtInToolDefinition = createAllToolDefinitions(cwd)[toolName as ToolName];\n\t\tthis.showImages = options.showImages ?? true;\n\t\tthis.imageWidthCells = options.imageWidthCells ?? 60;\n\t\tthis.ui = ui;\n\t\tthis.cwd = cwd;\n\n\t\tthis.topSpacer = new Spacer(1);\n\t\tthis.addChild(this.topSpacer);\n\n\t\t// Always create all shell variants. contentBox is used for default renderer-based composition.\n\t\t// selfRenderContainer is used when the tool renders its own framing.\n\t\t// contentText is reserved for generic fallback rendering when no tool definition exists.\n\t\tthis.contentBox = new Box(1, 1, (text: string) => theme.bg(\"toolPendingBg\", text));\n\t\tthis.contentText = new Text(\"\", 1, 1, (text: string) => theme.bg(\"toolPendingBg\", text));\n\t\tthis.selfRenderContainer = new Container();\n\n\t\tif (this.hasRendererDefinition()) {\n\t\t\tthis.addChild(this.getRenderShell() === \"self\" ? this.selfRenderContainer : this.contentBox);\n\t\t} else {\n\t\t\tthis.addChild(this.contentText);\n\t\t}\n\n\t\tthis.updateDisplay();\n\t}\n\n\tprivate getCallRenderer(): ToolDefinition<any, any>[\"renderCall\"] | undefined {\n\t\tif (!this.builtInToolDefinition) {\n\t\t\treturn this.toolDefinition?.renderCall;\n\t\t}\n\t\tif (!this.toolDefinition) {\n\t\t\treturn this.builtInToolDefinition.renderCall;\n\t\t}\n\t\treturn this.toolDefinition.renderCall ?? this.builtInToolDefinition.renderCall;\n\t}\n\n\tprivate getResultRenderer(): ToolDefinition<any, any>[\"renderResult\"] | undefined {\n\t\tif (!this.builtInToolDefinition) {\n\t\t\treturn this.toolDefinition?.renderResult;\n\t\t}\n\t\tif (!this.toolDefinition) {\n\t\t\treturn this.builtInToolDefinition.renderResult;\n\t\t}\n\t\treturn this.toolDefinition.renderResult ?? this.builtInToolDefinition.renderResult;\n\t}\n\n\tprivate hasRendererDefinition(): boolean {\n\t\treturn this.builtInToolDefinition !== undefined || this.toolDefinition !== undefined;\n\t}\n\n\tprivate getRenderShell(): \"default\" | \"self\" {\n\t\tif (!this.builtInToolDefinition) {\n\t\t\treturn this.toolDefinition?.renderShell ?? \"default\";\n\t\t}\n\t\tif (!this.toolDefinition) {\n\t\t\treturn this.builtInToolDefinition.renderShell ?? \"default\";\n\t\t}\n\t\treturn this.toolDefinition.renderShell ?? this.builtInToolDefinition.renderShell ?? \"default\";\n\t}\n\n\tprivate getRenderContext(lastComponent: Component | undefined): ToolRenderContext {\n\t\treturn {\n\t\t\targs: this.args,\n\t\t\ttoolCallId: this.toolCallId,\n\t\t\tinvalidate: () => {\n\t\t\t\tthis.invalidate();\n\t\t\t\tthis.ui.requestRender();\n\t\t\t},\n\t\t\trequestRender: () => {\n\t\t\t\tthis.ui.requestRender();\n\t\t\t},\n\t\t\tlastComponent,\n\t\t\tstate: this.rendererState,\n\t\t\tcwd: this.cwd,\n\t\t\texecutionStarted: this.executionStarted,\n\t\t\targsComplete: this.argsComplete,\n\t\t\tisPartial: this.isPartial,\n\t\t\texpanded: this.expanded,\n\t\t\tshowImages: this.showImages,\n\t\t\tisError: this.result?.isError ?? false,\n\t\t};\n\t}\n\n\tprivate getStatusDot(): string {\n\t\tconst state = this.isPartial ? \"pending\" : this.result?.isError ? \"error\" : \"success\";\n\t\treturn toolStatusDot(state, theme);\n\t}\n\n\tprivate createCallFallback(): Component {\n\t\treturn new Text(`${this.getStatusDot()} ${theme.fg(\"toolTitle\", theme.bold(this.toolName))}`, 0, 0);\n\t}\n\n\tprivate createResultFallback(): Component | undefined {\n\t\tconst output = this.getTextOutput();\n\t\tif (!output) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn new Text(theme.fg(\"toolOutput\", output), 0, 0);\n\t}\n\n\tupdateArgs(args: any): void {\n\t\tthis.args = args;\n\t\tthis.updateDisplay();\n\t}\n\n\tmarkExecutionStarted(): void {\n\t\tthis.executionStarted = true;\n\t\tthis.updateDisplay();\n\t\tthis.ui.requestRender();\n\t}\n\n\tsetArgsComplete(): void {\n\t\tthis.argsComplete = true;\n\t\tthis.updateDisplay();\n\t\tthis.ui.requestRender();\n\t}\n\n\tupdateResult(\n\t\tresult: {\n\t\t\tcontent: Array<{ type: string; text?: string; data?: string; mimeType?: string }>;\n\t\t\tdetails?: any;\n\t\t\tisError: boolean;\n\t\t},\n\t\tisPartial = false,\n\t): void {\n\t\tthis.result = result;\n\t\tthis.isPartial = isPartial;\n\t\tthis.updateDisplay();\n\t\tthis.maybeConvertImagesForKitty();\n\t}\n\n\tprivate maybeConvertImagesForKitty(): void {\n\t\tconst caps = getCapabilities();\n\t\tif (caps.images !== \"kitty\") return;\n\t\tif (!this.result) return;\n\n\t\tconst imageBlocks = this.result.content.filter((c) => c.type === \"image\");\n\t\tfor (let i = 0; i < imageBlocks.length; i++) {\n\t\t\tconst img = imageBlocks[i];\n\t\t\tif (!img.data || !img.mimeType) continue;\n\t\t\tif (img.mimeType === \"image/png\") continue;\n\t\t\tif (this.convertedImages.has(i)) continue;\n\n\t\t\tconst index = i;\n\t\t\tconvertToPng(img.data, img.mimeType).then((converted) => {\n\t\t\t\tif (converted) {\n\t\t\t\t\tthis.convertedImages.set(index, converted);\n\t\t\t\t\tthis.updateDisplay();\n\t\t\t\t\tthis.ui.requestRender();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tsetExpanded(expanded: boolean): void {\n\t\tthis.expanded = expanded;\n\t\tthis.updateDisplay();\n\t}\n\n\t// lunr: consecutive same-tool grouping — exposes the tool name so the caller\n\t// can detect adjacency.\n\tgetToolName(): string {\n\t\treturn this.toolName;\n\t}\n\n\t// lunr: consecutive same-tool grouping — continuation calls hide the top\n\t// spacer so adjacent same-bg boxes read as one continuous background; each\n\t// call's content still renders normally inside its own box.\n\tsetGroupContinuation(on: boolean): void {\n\t\tthis.topSpacer.setLines(on ? 0 : 1);\n\t\tthis.invalidate();\n\t}\n\n\tsetShowImages(show: boolean): void {\n\t\tthis.showImages = show;\n\t\tthis.updateDisplay();\n\t}\n\n\tsetImageWidthCells(width: number): void {\n\t\tthis.imageWidthCells = Math.max(1, Math.floor(width));\n\t\tthis.updateDisplay();\n\t}\n\n\toverride invalidate(): void {\n\t\tsuper.invalidate();\n\t\tthis.updateDisplay();\n\t}\n\n\toverride render(width: number): string[] {\n\t\tif (this.hideComponent) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif (this.hasRendererDefinition() && this.getRenderShell() === \"self\") {\n\t\t\tconst contentLines = this.selfRenderContainer.render(width);\n\t\t\tif (contentLines.length === 0 && this.imageComponents.length === 0) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst lines: string[] = [];\n\t\t\tif (contentLines.length > 0) {\n\t\t\t\tlines.push(\"\");\n\t\t\t\tlines.push(...contentLines);\n\t\t\t}\n\t\t\tfor (let i = 0; i < this.imageComponents.length; i++) {\n\t\t\t\tconst spacer = this.imageSpacers[i];\n\t\t\t\tif (spacer) {\n\t\t\t\t\tlines.push(...spacer.render(width));\n\t\t\t\t}\n\t\t\t\tconst imageComponent = this.imageComponents[i];\n\t\t\t\tif (imageComponent) {\n\t\t\t\t\tlines.push(...imageComponent.render(width));\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn lines;\n\t\t}\n\n\t\treturn super.render(width);\n\t}\n\n\tprivate updateDisplay(): void {\n\t\tconst bgFn = this.isPartial\n\t\t\t? (text: string) => theme.bg(\"toolPendingBg\", text)\n\t\t\t: this.result?.isError\n\t\t\t\t? (text: string) => theme.bg(\"toolErrorBg\", text)\n\t\t\t\t: (text: string) => theme.bg(\"toolSuccessBg\", text);\n\n\t\tlet hasContent = false;\n\t\tthis.hideComponent = false;\n\t\tif (this.hasRendererDefinition()) {\n\t\t\tconst renderContainer = this.getRenderShell() === \"self\" ? this.selfRenderContainer : this.contentBox;\n\t\t\tif (renderContainer instanceof Box) {\n\t\t\t\trenderContainer.setBgFn(bgFn);\n\t\t\t}\n\t\t\trenderContainer.clear();\n\n\t\t\tconst callRenderer = this.getCallRenderer();\n\t\t\tif (!callRenderer) {\n\t\t\t\trenderContainer.addChild(this.createCallFallback());\n\t\t\t\thasContent = true;\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tconst component = callRenderer(this.args, theme, this.getRenderContext(this.callRendererComponent));\n\t\t\t\t\tthis.callRendererComponent = component;\n\t\t\t\t\trenderContainer.addChild(component);\n\t\t\t\t\thasContent = true;\n\t\t\t\t} catch {\n\t\t\t\t\tthis.callRendererComponent = undefined;\n\t\t\t\t\trenderContainer.addChild(this.createCallFallback());\n\t\t\t\t\thasContent = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.result) {\n\t\t\t\tconst resultRenderer = this.getResultRenderer();\n\t\t\t\tif (!resultRenderer) {\n\t\t\t\t\tconst component = this.createResultFallback();\n\t\t\t\t\tif (component) {\n\t\t\t\t\t\trenderContainer.addChild(component);\n\t\t\t\t\t\thasContent = true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst component = resultRenderer(\n\t\t\t\t\t\t\t{ content: this.result.content as any, details: this.result.details },\n\t\t\t\t\t\t\t{ expanded: this.expanded, isPartial: this.isPartial },\n\t\t\t\t\t\t\ttheme,\n\t\t\t\t\t\t\tthis.getRenderContext(this.resultRendererComponent),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.resultRendererComponent = component;\n\t\t\t\t\t\trenderContainer.addChild(component);\n\t\t\t\t\t\thasContent = true;\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tthis.resultRendererComponent = undefined;\n\t\t\t\t\t\tconst component = this.createResultFallback();\n\t\t\t\t\t\tif (component) {\n\t\t\t\t\t\t\trenderContainer.addChild(component);\n\t\t\t\t\t\t\thasContent = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.contentText.setCustomBgFn(bgFn);\n\t\t\tthis.contentText.setText(this.formatToolExecution());\n\t\t\thasContent = true;\n\t\t}\n\n\t\tfor (const img of this.imageComponents) {\n\t\t\tthis.removeChild(img);\n\t\t}\n\t\tthis.imageComponents = [];\n\t\tfor (const spacer of this.imageSpacers) {\n\t\t\tthis.removeChild(spacer);\n\t\t}\n\t\tthis.imageSpacers = [];\n\n\t\tif (this.result) {\n\t\t\tconst imageBlocks = this.result.content.filter((c) => c.type === \"image\");\n\t\t\tconst caps = getCapabilities();\n\t\t\tfor (let i = 0; i < imageBlocks.length; i++) {\n\t\t\t\tconst img = imageBlocks[i];\n\t\t\t\tif (caps.images && this.showImages && img.data && img.mimeType) {\n\t\t\t\t\tconst converted = this.convertedImages.get(i);\n\t\t\t\t\tconst imageData = converted?.data ?? img.data;\n\t\t\t\t\tconst imageMimeType = converted?.mimeType ?? img.mimeType;\n\t\t\t\t\tif (caps.images === \"kitty\" && imageMimeType !== \"image/png\") continue;\n\n\t\t\t\t\tconst spacer = new Spacer(1);\n\t\t\t\t\tthis.addChild(spacer);\n\t\t\t\t\tthis.imageSpacers.push(spacer);\n\t\t\t\t\tconst imageComponent = new Image(\n\t\t\t\t\t\timageData,\n\t\t\t\t\t\timageMimeType,\n\t\t\t\t\t\t{ fallbackColor: (s: string) => theme.fg(\"toolOutput\", s) },\n\t\t\t\t\t\t{ maxWidthCells: this.imageWidthCells },\n\t\t\t\t\t);\n\t\t\t\t\tthis.imageComponents.push(imageComponent);\n\t\t\t\t\tthis.addChild(imageComponent);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.hasRendererDefinition() && !hasContent && this.imageComponents.length === 0) {\n\t\t\tthis.hideComponent = true;\n\t\t}\n\t}\n\n\tprivate getTextOutput(): string {\n\t\treturn getRenderedTextOutput(this.result, this.showImages);\n\t}\n\n\tprivate formatToolExecution(): string {\n\t\tlet text = `${this.getStatusDot()} ${theme.fg(\"toolTitle\", theme.bold(this.toolName))}`;\n\t\tconst content = JSON.stringify(this.args, null, 2);\n\t\tif (content) {\n\t\t\ttext += `\\n\\n${content}`;\n\t\t}\n\t\tconst output = this.getTextOutput();\n\t\tif (output) {\n\t\t\ttext += `\\n${output}`;\n\t\t}\n\t\treturn text;\n\t}\n}\n"]}
@@ -0,0 +1,94 @@
1
+ import { type Component, Container, type Focusable } from "@earendil-works/pi-tui";
2
+ import type { SessionTreeNode } from "../../../core/session-manager.ts";
3
+ /** Filter mode for tree display */
4
+ export type FilterMode = "default" | "no-tools" | "user-only" | "labeled-only" | "all";
5
+ declare class TreeList implements Component {
6
+ private flatNodes;
7
+ private filteredNodes;
8
+ private selectedIndex;
9
+ private currentLeafId;
10
+ private maxVisibleLines;
11
+ private filterMode;
12
+ private searchQuery;
13
+ private toolCallMap;
14
+ private multipleRoots;
15
+ private showLabelTimestamps;
16
+ private activePathIds;
17
+ private visibleParentMap;
18
+ private visibleChildrenMap;
19
+ private lastSelectedId;
20
+ private foldedNodes;
21
+ onSelect?: (entryId: string) => void;
22
+ onCancel?: () => void;
23
+ onCopy?: (text: string | undefined) => void;
24
+ onLabelEdit?: (entryId: string, currentLabel: string | undefined) => void;
25
+ constructor(tree: SessionTreeNode[], currentLeafId: string | null, maxVisibleLines: number, initialSelectedId?: string, initialFilterMode?: FilterMode);
26
+ /**
27
+ * Find the index of the nearest visible entry, walking up the parent chain if needed.
28
+ * Returns the index in filteredNodes, or the last index as fallback.
29
+ */
30
+ private findNearestVisibleIndex;
31
+ /** Build the set of entry IDs on the path from root to current leaf */
32
+ private buildActivePath;
33
+ private flattenTree;
34
+ private applyFilter;
35
+ /**
36
+ * Recompute indentation/connectors for the filtered view
37
+ *
38
+ * Filtering can hide intermediate entries; descendants attach to the nearest visible ancestor.
39
+ * Keep indentation semantics aligned with flattenTree() so single-child chains don't drift right.
40
+ */
41
+ private recalculateVisualStructure;
42
+ /** Get searchable text content from a node */
43
+ private getSearchableText;
44
+ invalidate(): void;
45
+ getSearchQuery(): string;
46
+ getSelectedNode(): SessionTreeNode | undefined;
47
+ copySelected(): void;
48
+ updateNodeLabel(entryId: string, label: string | undefined, labelTimestamp?: string): void;
49
+ private getStatusLabels;
50
+ render(width: number): string[];
51
+ private getEntryDisplayText;
52
+ private formatLabelTimestamp;
53
+ private extractContent;
54
+ private extractFullContent;
55
+ private getEntryCopyText;
56
+ private hasTextContent;
57
+ private formatToolCall;
58
+ handleInput(keyData: string): void;
59
+ /**
60
+ * Whether a node can be folded. A node is foldable if it has visible children
61
+ * and is either a root (no visible parent) or a segment start (visible parent
62
+ * has multiple visible children).
63
+ */
64
+ private isFoldable;
65
+ /**
66
+ * Find the index of the next branch segment start in the given direction.
67
+ * A segment start is the first child of a branch point.
68
+ *
69
+ * "up" walks the visible parent chain; "down" walks visible children
70
+ * (always following the first child).
71
+ */
72
+ private findBranchSegmentStart;
73
+ }
74
+ /**
75
+ * Component that renders a session tree selector for navigation
76
+ */
77
+ export declare class TreeSelectorComponent extends Container implements Focusable {
78
+ private treeList;
79
+ private labelInput;
80
+ private labelInputContainer;
81
+ private treeContainer;
82
+ private onLabelChangeCallback?;
83
+ onCopy?: (text: string | undefined) => void;
84
+ private _focused;
85
+ get focused(): boolean;
86
+ set focused(value: boolean);
87
+ constructor(tree: SessionTreeNode[], currentLeafId: string | null, terminalHeight: number, onSelect: (entryId: string) => void, onCancel: () => void, onLabelChange?: (entryId: string, label: string | undefined) => void, initialSelectedId?: string, initialFilterMode?: FilterMode);
88
+ private showLabelInput;
89
+ private hideLabelInput;
90
+ handleInput(keyData: string): void;
91
+ getTreeList(): TreeList;
92
+ }
93
+ export {};
94
+ //# sourceMappingURL=tree-selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-selector.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/tree-selector.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype Component,\n\tContainer,\n\ttype Focusable,\n\tgetKeybindings,\n\tInput,\n\ttype Keybinding,\n\tSpacer,\n\tsliceByColumn,\n\tText,\n\ttruncateToWidth,\n\tvisibleWidth,\n\twrapTextWithAnsi,\n} from \"@earendil-works/pi-tui\";\nimport type { SessionTreeNode } from \"../../../core/session-manager.ts\";\nimport { theme } from \"../theme/theme.ts\";\nimport { DynamicBorder } from \"./dynamic-border.ts\";\nimport { formatKeyText, keyHint } from \"./keybinding-hints.ts\";\n\n/** Gutter info: position (displayIndent where connector was) and whether to show │ */\ninterface GutterInfo {\n\tposition: number; // displayIndent level where the connector was shown\n\tshow: boolean; // true = show │, false = show spaces\n}\n\n/** Flattened tree node for navigation */\ninterface FlatNode {\n\tnode: SessionTreeNode;\n\t/** Indentation level (each level = 3 chars) */\n\tindent: number;\n\t/** Whether to show connector (├─ or └─) - true if parent has multiple children */\n\tshowConnector: boolean;\n\t/** If showConnector, true = last sibling (└─), false = not last (├─) */\n\tisLast: boolean;\n\t/** Gutter info for each ancestor branch point */\n\tgutters: GutterInfo[];\n\t/** True if this node is a root under a virtual branching root (multiple roots) */\n\tisVirtualRootChild: boolean;\n}\n\ninterface HorizontalViewportRow {\n\tgutter: string;\n\tbody: string;\n\tanchorCol: number;\n\tbodyWidth: number;\n\tisSelected: boolean;\n}\n\nconst TREE_GUTTER_WIDTH = 2;\nconst MIN_VISIBLE_ANCHOR_CONTENT_WIDTH = 4;\nconst MAX_VISIBLE_ANCHOR_CONTENT_WIDTH = 20;\nconst MIN_ANCHOR_CONTEXT_WIDTH = 2;\nconst MAX_ANCHOR_CONTEXT_WIDTH = 12;\n\n/**\n * Render tree rows into a horizontally clipped viewport.\n *\n * The tree gutter is always kept visible. The row bodies are shifted left only\n * when the selected row's anchor (the start of its entry text after tree\n * indentation/markers) would otherwise be too far right to see useful content.\n */\nfunction renderHorizontalViewport(rows: HorizontalViewportRow[], width: number): string[] {\n\tconst viewportWidth = Math.max(0, width - TREE_GUTTER_WIDTH);\n\tconst maxBodyWidth = rows.reduce((max, row) => Math.max(max, row.bodyWidth), 0);\n\tconst maxHorizontalScroll = Math.max(0, maxBodyWidth - viewportWidth);\n\tconst selectedRow = rows.find((row) => row.isSelected);\n\n\t// Only pan horizontally when needed to keep enough selected-row content visible after its anchor.\n\tlet horizontalScroll = 0;\n\tif (selectedRow && maxHorizontalScroll > 0) {\n\t\tconst minVisibleAnchorContentWidth = Math.min(\n\t\t\tMAX_VISIBLE_ANCHOR_CONTENT_WIDTH,\n\t\t\tMath.max(MIN_VISIBLE_ANCHOR_CONTENT_WIDTH, Math.floor(viewportWidth / 3)),\n\t\t);\n\t\tif (selectedRow.anchorCol > viewportWidth - minVisibleAnchorContentWidth) {\n\t\t\tconst anchorContextWidth = Math.min(\n\t\t\t\tMAX_ANCHOR_CONTEXT_WIDTH,\n\t\t\t\tMath.max(MIN_ANCHOR_CONTEXT_WIDTH, Math.floor(viewportWidth / 4)),\n\t\t\t);\n\t\t\thorizontalScroll = Math.min(maxHorizontalScroll, selectedRow.anchorCol - anchorContextWidth);\n\t\t}\n\t}\n\n\t// Clip only the body; the fixed-width gutter remains visible as navigation context.\n\treturn rows.map((row) => {\n\t\tconst line =\n\t\t\thorizontalScroll > 0\n\t\t\t\t? `${row.gutter}${sliceByColumn(row.body, horizontalScroll, viewportWidth, true)}\\x1b[0m`\n\t\t\t\t: row.gutter + row.body;\n\t\treturn truncateToWidth(line, width, \"\");\n\t});\n}\n\n/** Filter mode for tree display */\nexport type FilterMode = \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\";\n\n/**\n * Tree list component with selection and ASCII art visualization\n */\n/** Tool call info for lookup */\ninterface ToolCallInfo {\n\tname: string;\n\targuments: Record<string, unknown>;\n}\n\nclass TreeList implements Component {\n\tprivate flatNodes: FlatNode[] = [];\n\tprivate filteredNodes: FlatNode[] = [];\n\tprivate selectedIndex = 0;\n\tprivate currentLeafId: string | null;\n\tprivate maxVisibleLines: number;\n\tprivate filterMode: FilterMode = \"default\";\n\tprivate searchQuery = \"\";\n\tprivate toolCallMap: Map<string, ToolCallInfo> = new Map();\n\tprivate multipleRoots = false;\n\tprivate showLabelTimestamps = false;\n\tprivate activePathIds: Set<string> = new Set();\n\tprivate visibleParentMap: Map<string, string | null> = new Map();\n\tprivate visibleChildrenMap: Map<string | null, string[]> = new Map();\n\tprivate lastSelectedId: string | null = null;\n\tprivate foldedNodes: Set<string> = new Set();\n\n\tpublic onSelect?: (entryId: string) => void;\n\tpublic onCancel?: () => void;\n\tpublic onCopy?: (text: string | undefined) => void;\n\tpublic onLabelEdit?: (entryId: string, currentLabel: string | undefined) => void;\n\n\tconstructor(\n\t\ttree: SessionTreeNode[],\n\t\tcurrentLeafId: string | null,\n\t\tmaxVisibleLines: number,\n\t\tinitialSelectedId?: string,\n\t\tinitialFilterMode?: FilterMode,\n\t) {\n\t\tthis.currentLeafId = currentLeafId;\n\t\tthis.maxVisibleLines = maxVisibleLines;\n\t\tthis.filterMode = initialFilterMode ?? \"default\";\n\t\tthis.multipleRoots = tree.length > 1;\n\t\tthis.flatNodes = this.flattenTree(tree);\n\t\tthis.buildActivePath();\n\t\tthis.applyFilter();\n\n\t\t// Start with initialSelectedId if provided, otherwise current leaf\n\t\tconst targetId = initialSelectedId ?? currentLeafId;\n\t\tthis.selectedIndex = this.findNearestVisibleIndex(targetId);\n\t\tthis.lastSelectedId = this.filteredNodes[this.selectedIndex]?.node.entry.id ?? null;\n\t}\n\n\t/**\n\t * Find the index of the nearest visible entry, walking up the parent chain if needed.\n\t * Returns the index in filteredNodes, or the last index as fallback.\n\t */\n\tprivate findNearestVisibleIndex(entryId: string | null): number {\n\t\tif (this.filteredNodes.length === 0) return 0;\n\n\t\t// Build a map for parent lookup\n\t\tconst entryMap = new Map<string, FlatNode>();\n\t\tfor (const flatNode of this.flatNodes) {\n\t\t\tentryMap.set(flatNode.node.entry.id, flatNode);\n\t\t}\n\n\t\t// Build a map of visible entry IDs to their indices in filteredNodes\n\t\tconst visibleIdToIndex = new Map<string, number>(this.filteredNodes.map((node, i) => [node.node.entry.id, i]));\n\n\t\t// Walk from entryId up to root, looking for a visible entry\n\t\tlet currentId = entryId;\n\t\twhile (currentId !== null) {\n\t\t\tconst index = visibleIdToIndex.get(currentId);\n\t\t\tif (index !== undefined) return index;\n\t\t\tconst node = entryMap.get(currentId);\n\t\t\tif (!node) break;\n\t\t\tcurrentId = node.node.entry.parentId ?? null;\n\t\t}\n\n\t\t// Fallback: last visible entry\n\t\treturn this.filteredNodes.length - 1;\n\t}\n\n\t/** Build the set of entry IDs on the path from root to current leaf */\n\tprivate buildActivePath(): void {\n\t\tthis.activePathIds.clear();\n\t\tif (!this.currentLeafId) return;\n\n\t\t// Build a map of id -> entry for parent lookup\n\t\tconst entryMap = new Map<string, FlatNode>();\n\t\tfor (const flatNode of this.flatNodes) {\n\t\t\tentryMap.set(flatNode.node.entry.id, flatNode);\n\t\t}\n\n\t\t// Walk from leaf to root\n\t\tlet currentId: string | null = this.currentLeafId;\n\t\twhile (currentId) {\n\t\t\tthis.activePathIds.add(currentId);\n\t\t\tconst node = entryMap.get(currentId);\n\t\t\tif (!node) break;\n\t\t\tcurrentId = node.node.entry.parentId ?? null;\n\t\t}\n\t}\n\n\tprivate flattenTree(roots: SessionTreeNode[]): FlatNode[] {\n\t\tconst result: FlatNode[] = [];\n\t\tthis.toolCallMap.clear();\n\n\t\t// Indentation rules:\n\t\t// - At indent 0: stay at 0 unless parent has >1 children (then +1)\n\t\t// - At indent 1: children always go to indent 2 (visual grouping of subtree)\n\t\t// - At indent 2+: stay flat for single-child chains, +1 only if parent branches\n\n\t\t// Stack items: [node, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild]\n\t\ttype StackItem = [SessionTreeNode, number, boolean, boolean, boolean, GutterInfo[], boolean];\n\t\tconst stack: StackItem[] = [];\n\n\t\t// Determine which subtrees contain the active leaf (to sort current branch first)\n\t\t// Use iterative post-order traversal to avoid stack overflow\n\t\tconst containsActive = new Map<SessionTreeNode, boolean>();\n\t\tconst leafId = this.currentLeafId;\n\t\t{\n\t\t\t// Build list in pre-order, then process in reverse for post-order effect\n\t\t\tconst allNodes: SessionTreeNode[] = [];\n\t\t\tconst preOrderStack: SessionTreeNode[] = [...roots];\n\t\t\twhile (preOrderStack.length > 0) {\n\t\t\t\tconst node = preOrderStack.pop()!;\n\t\t\t\tallNodes.push(node);\n\t\t\t\t// Push children in reverse so they're processed left-to-right\n\t\t\t\tfor (let i = node.children.length - 1; i >= 0; i--) {\n\t\t\t\t\tpreOrderStack.push(node.children[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Process in reverse (post-order): children before parents\n\t\t\tfor (let i = allNodes.length - 1; i >= 0; i--) {\n\t\t\t\tconst node = allNodes[i];\n\t\t\t\tlet has = leafId !== null && node.entry.id === leafId;\n\t\t\t\tfor (const child of node.children) {\n\t\t\t\t\tif (containsActive.get(child)) {\n\t\t\t\t\t\thas = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontainsActive.set(node, has);\n\t\t\t}\n\t\t}\n\n\t\t// Add roots in reverse order, prioritizing the one containing the active leaf\n\t\t// If multiple roots, treat them as children of a virtual root that branches\n\t\tconst multipleRoots = roots.length > 1;\n\t\tconst orderedRoots = [...roots].sort((a, b) => Number(containsActive.get(b)) - Number(containsActive.get(a)));\n\t\tfor (let i = orderedRoots.length - 1; i >= 0; i--) {\n\t\t\tconst isLast = i === orderedRoots.length - 1;\n\t\t\tstack.push([orderedRoots[i], multipleRoots ? 1 : 0, multipleRoots, multipleRoots, isLast, [], multipleRoots]);\n\t\t}\n\n\t\twhile (stack.length > 0) {\n\t\t\tconst [node, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild] = stack.pop()!;\n\n\t\t\t// Extract tool calls from assistant messages for later lookup\n\t\t\tconst entry = node.entry;\n\t\t\tif (entry.type === \"message\" && entry.message.role === \"assistant\") {\n\t\t\t\tconst content = (entry.message as { content?: unknown }).content;\n\t\t\t\tif (Array.isArray(content)) {\n\t\t\t\t\tfor (const block of content) {\n\t\t\t\t\t\tif (typeof block === \"object\" && block !== null && \"type\" in block && block.type === \"toolCall\") {\n\t\t\t\t\t\t\tconst tc = block as { id: string; name: string; arguments: Record<string, unknown> };\n\t\t\t\t\t\t\tthis.toolCallMap.set(tc.id, { name: tc.name, arguments: tc.arguments });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresult.push({ node, indent, showConnector, isLast, gutters, isVirtualRootChild });\n\n\t\t\tconst children = node.children;\n\t\t\tconst multipleChildren = children.length > 1;\n\n\t\t\t// Order children so the branch containing the active leaf comes first\n\t\t\tconst orderedChildren = (() => {\n\t\t\t\tconst prioritized: SessionTreeNode[] = [];\n\t\t\t\tconst rest: SessionTreeNode[] = [];\n\t\t\t\tfor (const child of children) {\n\t\t\t\t\tif (containsActive.get(child)) {\n\t\t\t\t\t\tprioritized.push(child);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trest.push(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn [...prioritized, ...rest];\n\t\t\t})();\n\n\t\t\t// Calculate child indent\n\t\t\tlet childIndent: number;\n\t\t\tif (multipleChildren) {\n\t\t\t\t// Parent branches: children get +1\n\t\t\t\tchildIndent = indent + 1;\n\t\t\t} else if (justBranched && indent > 0) {\n\t\t\t\t// First generation after a branch: +1 for visual grouping\n\t\t\t\tchildIndent = indent + 1;\n\t\t\t} else {\n\t\t\t\t// Single-child chain: stay flat\n\t\t\t\tchildIndent = indent;\n\t\t\t}\n\n\t\t\t// Build gutters for children\n\t\t\t// If this node showed a connector, add a gutter entry for descendants\n\t\t\t// Only add gutter if connector is actually displayed (not suppressed for virtual root children)\n\t\t\tconst connectorDisplayed = showConnector && !isVirtualRootChild;\n\t\t\t// When connector is displayed, add a gutter entry at the connector's position\n\t\t\t// Connector is at position (displayIndent - 1), so gutter should be there too\n\t\t\tconst currentDisplayIndent = this.multipleRoots ? Math.max(0, indent - 1) : indent;\n\t\t\tconst connectorPosition = Math.max(0, currentDisplayIndent - 1);\n\t\t\tconst childGutters: GutterInfo[] = connectorDisplayed\n\t\t\t\t? [...gutters, { position: connectorPosition, show: !isLast }]\n\t\t\t\t: gutters;\n\n\t\t\t// Add children in reverse order\n\t\t\tfor (let i = orderedChildren.length - 1; i >= 0; i--) {\n\t\t\t\tconst childIsLast = i === orderedChildren.length - 1;\n\t\t\t\tstack.push([\n\t\t\t\t\torderedChildren[i],\n\t\t\t\t\tchildIndent,\n\t\t\t\t\tmultipleChildren,\n\t\t\t\t\tmultipleChildren,\n\t\t\t\t\tchildIsLast,\n\t\t\t\t\tchildGutters,\n\t\t\t\t\tfalse,\n\t\t\t\t]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate applyFilter(): void {\n\t\t// Update lastSelectedId only when we have a valid selection (non-empty list)\n\t\t// This preserves the selection when switching through empty filter results\n\t\tif (this.filteredNodes.length > 0) {\n\t\t\tthis.lastSelectedId = this.filteredNodes[this.selectedIndex]?.node.entry.id ?? this.lastSelectedId;\n\t\t}\n\n\t\tconst searchTokens = this.searchQuery.toLowerCase().split(/\\s+/).filter(Boolean);\n\n\t\tthis.filteredNodes = this.flatNodes.filter((flatNode) => {\n\t\t\tconst entry = flatNode.node.entry;\n\t\t\tconst isCurrentLeaf = entry.id === this.currentLeafId;\n\n\t\t\t// Skip assistant messages with only tool calls (no text) unless error/aborted\n\t\t\t// Always show current leaf so active position is visible\n\t\t\tif (entry.type === \"message\" && entry.message.role === \"assistant\" && !isCurrentLeaf) {\n\t\t\t\tconst msg = entry.message as { stopReason?: string; content?: unknown };\n\t\t\t\tconst hasText = this.hasTextContent(msg.content);\n\t\t\t\tconst isErrorOrAborted = msg.stopReason && msg.stopReason !== \"stop\" && msg.stopReason !== \"toolUse\";\n\t\t\t\t// Only hide if no text AND not an error/aborted message\n\t\t\t\tif (!hasText && !isErrorOrAborted) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply filter mode\n\t\t\tlet passesFilter = true;\n\t\t\t// Entry types hidden in default view (settings/bookkeeping)\n\t\t\tconst isSettingsEntry =\n\t\t\t\tentry.type === \"label\" ||\n\t\t\t\tentry.type === \"custom\" ||\n\t\t\t\tentry.type === \"model_change\" ||\n\t\t\t\tentry.type === \"thinking_level_change\" ||\n\t\t\t\tentry.type === \"session_info\";\n\n\t\t\tswitch (this.filterMode) {\n\t\t\t\tcase \"user-only\":\n\t\t\t\t\t// Just user messages\n\t\t\t\t\tpassesFilter = entry.type === \"message\" && entry.message.role === \"user\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"no-tools\":\n\t\t\t\t\t// Default minus tool results\n\t\t\t\t\tpassesFilter = !isSettingsEntry && !(entry.type === \"message\" && entry.message.role === \"toolResult\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"labeled-only\":\n\t\t\t\t\t// Just labeled entries\n\t\t\t\t\tpassesFilter = flatNode.node.label !== undefined;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"all\":\n\t\t\t\t\t// Show everything\n\t\t\t\t\tpassesFilter = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t// Default mode: hide settings/bookkeeping entries\n\t\t\t\t\tpassesFilter = !isSettingsEntry;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (!passesFilter) return false;\n\n\t\t\t// Apply search filter\n\t\t\tif (searchTokens.length > 0) {\n\t\t\t\tconst nodeText = this.getSearchableText(flatNode.node).toLowerCase();\n\t\t\t\treturn searchTokens.every((token) => nodeText.includes(token));\n\t\t\t}\n\n\t\t\treturn true;\n\t\t});\n\n\t\t// Filter out descendants of folded nodes.\n\t\tif (this.foldedNodes.size > 0) {\n\t\t\tconst skipSet = new Set<string>();\n\t\t\tfor (const flatNode of this.flatNodes) {\n\t\t\t\tconst { id, parentId } = flatNode.node.entry;\n\t\t\t\tif (parentId != null && (this.foldedNodes.has(parentId) || skipSet.has(parentId))) {\n\t\t\t\t\tskipSet.add(id);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.filteredNodes = this.filteredNodes.filter((flatNode) => !skipSet.has(flatNode.node.entry.id));\n\t\t}\n\n\t\t// Recalculate visual structure (indent, connectors, gutters) based on visible tree\n\t\tthis.recalculateVisualStructure();\n\n\t\t// Try to preserve cursor on the same node, or find nearest visible ancestor\n\t\tif (this.lastSelectedId) {\n\t\t\tthis.selectedIndex = this.findNearestVisibleIndex(this.lastSelectedId);\n\t\t} else if (this.selectedIndex >= this.filteredNodes.length) {\n\t\t\t// Clamp index if out of bounds\n\t\t\tthis.selectedIndex = Math.max(0, this.filteredNodes.length - 1);\n\t\t}\n\n\t\t// Update lastSelectedId to the actual selection (may have changed due to parent walk)\n\t\tif (this.filteredNodes.length > 0) {\n\t\t\tthis.lastSelectedId = this.filteredNodes[this.selectedIndex]?.node.entry.id ?? this.lastSelectedId;\n\t\t}\n\t}\n\n\t/**\n\t * Recompute indentation/connectors for the filtered view\n\t *\n\t * Filtering can hide intermediate entries; descendants attach to the nearest visible ancestor.\n\t * Keep indentation semantics aligned with flattenTree() so single-child chains don't drift right.\n\t */\n\tprivate recalculateVisualStructure(): void {\n\t\tif (this.filteredNodes.length === 0) return;\n\n\t\tconst visibleIds = new Set(this.filteredNodes.map((n) => n.node.entry.id));\n\n\t\t// Build entry map for efficient parent lookup (using full tree)\n\t\tconst entryMap = new Map<string, FlatNode>();\n\t\tfor (const flatNode of this.flatNodes) {\n\t\t\tentryMap.set(flatNode.node.entry.id, flatNode);\n\t\t}\n\n\t\t// Find nearest visible ancestor for a node\n\t\tconst findVisibleAncestor = (nodeId: string): string | null => {\n\t\t\tlet currentId = entryMap.get(nodeId)?.node.entry.parentId ?? null;\n\t\t\twhile (currentId !== null) {\n\t\t\t\tif (visibleIds.has(currentId)) {\n\t\t\t\t\treturn currentId;\n\t\t\t\t}\n\t\t\t\tcurrentId = entryMap.get(currentId)?.node.entry.parentId ?? null;\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\n\t\t// Build visible tree structure:\n\t\t// - visibleParent: nodeId → nearest visible ancestor (or null for roots)\n\t\t// - visibleChildren: parentId → list of visible children (in filteredNodes order)\n\t\tconst visibleParent = new Map<string, string | null>();\n\t\tconst visibleChildren = new Map<string | null, string[]>();\n\t\tvisibleChildren.set(null, []); // root-level nodes\n\n\t\tfor (const flatNode of this.filteredNodes) {\n\t\t\tconst nodeId = flatNode.node.entry.id;\n\t\t\tconst ancestorId = findVisibleAncestor(nodeId);\n\t\t\tvisibleParent.set(nodeId, ancestorId);\n\n\t\t\tif (!visibleChildren.has(ancestorId)) {\n\t\t\t\tvisibleChildren.set(ancestorId, []);\n\t\t\t}\n\t\t\tvisibleChildren.get(ancestorId)!.push(nodeId);\n\t\t}\n\n\t\t// Update multipleRoots based on visible roots\n\t\tconst visibleRootIds = visibleChildren.get(null)!;\n\t\tthis.multipleRoots = visibleRootIds.length > 1;\n\n\t\t// Build a map for quick lookup: nodeId → FlatNode\n\t\tconst filteredNodeMap = new Map<string, FlatNode>();\n\t\tfor (const flatNode of this.filteredNodes) {\n\t\t\tfilteredNodeMap.set(flatNode.node.entry.id, flatNode);\n\t\t}\n\n\t\t// DFS over the visible tree using flattenTree() indentation semantics\n\t\t// Stack items: [nodeId, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild]\n\t\ttype StackItem = [string, number, boolean, boolean, boolean, GutterInfo[], boolean];\n\t\tconst stack: StackItem[] = [];\n\n\t\t// Add visible roots in reverse order (to process in forward order via stack)\n\t\tfor (let i = visibleRootIds.length - 1; i >= 0; i--) {\n\t\t\tconst isLast = i === visibleRootIds.length - 1;\n\t\t\tstack.push([\n\t\t\t\tvisibleRootIds[i],\n\t\t\t\tthis.multipleRoots ? 1 : 0,\n\t\t\t\tthis.multipleRoots,\n\t\t\t\tthis.multipleRoots,\n\t\t\t\tisLast,\n\t\t\t\t[],\n\t\t\t\tthis.multipleRoots,\n\t\t\t]);\n\t\t}\n\n\t\twhile (stack.length > 0) {\n\t\t\tconst [nodeId, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild] = stack.pop()!;\n\n\t\t\tconst flatNode = filteredNodeMap.get(nodeId);\n\t\t\tif (!flatNode) continue;\n\n\t\t\t// Update this node's visual properties\n\t\t\tflatNode.indent = indent;\n\t\t\tflatNode.showConnector = showConnector;\n\t\t\tflatNode.isLast = isLast;\n\t\t\tflatNode.gutters = gutters;\n\t\t\tflatNode.isVirtualRootChild = isVirtualRootChild;\n\n\t\t\t// Get visible children of this node\n\t\t\tconst children = visibleChildren.get(nodeId) || [];\n\t\t\tconst multipleChildren = children.length > 1;\n\n\t\t\t// Child indent follows flattenTree(): branch points (and first generation after a branch) shift +1\n\t\t\tlet childIndent: number;\n\t\t\tif (multipleChildren) {\n\t\t\t\tchildIndent = indent + 1;\n\t\t\t} else if (justBranched && indent > 0) {\n\t\t\t\tchildIndent = indent + 1;\n\t\t\t} else {\n\t\t\t\tchildIndent = indent;\n\t\t\t}\n\n\t\t\t// Child gutters follow flattenTree() connector/gutter rules\n\t\t\tconst connectorDisplayed = showConnector && !isVirtualRootChild;\n\t\t\tconst currentDisplayIndent = this.multipleRoots ? Math.max(0, indent - 1) : indent;\n\t\t\tconst connectorPosition = Math.max(0, currentDisplayIndent - 1);\n\t\t\tconst childGutters: GutterInfo[] = connectorDisplayed\n\t\t\t\t? [...gutters, { position: connectorPosition, show: !isLast }]\n\t\t\t\t: gutters;\n\n\t\t\t// Add children in reverse order (to process in forward order via stack)\n\t\t\tfor (let i = children.length - 1; i >= 0; i--) {\n\t\t\t\tconst childIsLast = i === children.length - 1;\n\t\t\t\tstack.push([\n\t\t\t\t\tchildren[i],\n\t\t\t\t\tchildIndent,\n\t\t\t\t\tmultipleChildren,\n\t\t\t\t\tmultipleChildren,\n\t\t\t\t\tchildIsLast,\n\t\t\t\t\tchildGutters,\n\t\t\t\t\tfalse,\n\t\t\t\t]);\n\t\t\t}\n\t\t}\n\n\t\t// Store visible tree maps for ancestor/descendant lookups in navigation\n\t\tthis.visibleParentMap = visibleParent;\n\t\tthis.visibleChildrenMap = visibleChildren;\n\t}\n\n\t/** Get searchable text content from a node */\n\tprivate getSearchableText(node: SessionTreeNode): string {\n\t\tconst entry = node.entry;\n\t\tconst parts: string[] = [];\n\n\t\tif (node.label) {\n\t\t\tparts.push(node.label);\n\t\t}\n\n\t\tswitch (entry.type) {\n\t\t\tcase \"message\": {\n\t\t\t\tconst msg = entry.message;\n\t\t\t\tparts.push(msg.role);\n\t\t\t\tif (\"content\" in msg && msg.content) {\n\t\t\t\t\tparts.push(this.extractContent(msg.content));\n\t\t\t\t}\n\t\t\t\tif (msg.role === \"bashExecution\") {\n\t\t\t\t\tconst bashMsg = msg as { command?: string };\n\t\t\t\t\tif (bashMsg.command) parts.push(bashMsg.command);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"custom_message\": {\n\t\t\t\tparts.push(entry.customType);\n\t\t\t\tif (typeof entry.content === \"string\") {\n\t\t\t\t\tparts.push(entry.content);\n\t\t\t\t} else {\n\t\t\t\t\tparts.push(this.extractContent(entry.content));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"compaction\":\n\t\t\t\tparts.push(\"compaction\");\n\t\t\t\tbreak;\n\t\t\tcase \"branch_summary\":\n\t\t\t\tparts.push(\"branch summary\", entry.summary);\n\t\t\t\tbreak;\n\t\t\tcase \"session_info\":\n\t\t\t\tparts.push(\"title\");\n\t\t\t\tif (entry.name) parts.push(entry.name);\n\t\t\t\tbreak;\n\t\t\tcase \"model_change\":\n\t\t\t\tparts.push(\"model\", entry.modelId);\n\t\t\t\tbreak;\n\t\t\tcase \"thinking_level_change\":\n\t\t\t\tparts.push(\"thinking\", entry.thinkingLevel);\n\t\t\t\tbreak;\n\t\t\tcase \"custom\":\n\t\t\t\tparts.push(\"custom\", entry.customType);\n\t\t\t\tbreak;\n\t\t\tcase \"label\":\n\t\t\t\tparts.push(\"label\", entry.label ?? \"\");\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn parts.join(\" \");\n\t}\n\n\tinvalidate(): void {}\n\n\tgetSearchQuery(): string {\n\t\treturn this.searchQuery;\n\t}\n\n\tgetSelectedNode(): SessionTreeNode | undefined {\n\t\treturn this.filteredNodes[this.selectedIndex]?.node;\n\t}\n\n\tcopySelected(): void {\n\t\tconst node = this.getSelectedNode();\n\t\tthis.onCopy?.(node ? this.getEntryCopyText(node) : undefined);\n\t}\n\n\tupdateNodeLabel(entryId: string, label: string | undefined, labelTimestamp?: string): void {\n\t\tfor (const flatNode of this.flatNodes) {\n\t\t\tif (flatNode.node.entry.id === entryId) {\n\t\t\t\tflatNode.node.label = label;\n\t\t\t\tflatNode.node.labelTimestamp = label ? (labelTimestamp ?? new Date().toISOString()) : undefined;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getStatusLabels(): string {\n\t\tlet labels = \"\";\n\t\tswitch (this.filterMode) {\n\t\t\tcase \"no-tools\":\n\t\t\t\tlabels += \" [no-tools]\";\n\t\t\t\tbreak;\n\t\t\tcase \"user-only\":\n\t\t\t\tlabels += \" [user]\";\n\t\t\t\tbreak;\n\t\t\tcase \"labeled-only\":\n\t\t\t\tlabels += \" [labeled]\";\n\t\t\t\tbreak;\n\t\t\tcase \"all\":\n\t\t\t\tlabels += \" [all]\";\n\t\t\t\tbreak;\n\t\t}\n\t\tif (this.showLabelTimestamps) {\n\t\t\tlabels += \" [+label time]\";\n\t\t}\n\t\treturn labels;\n\t}\n\n\trender(width: number): string[] {\n\t\tconst lines: string[] = [];\n\n\t\tif (this.filteredNodes.length === 0) {\n\t\t\tlines.push(truncateToWidth(theme.fg(\"muted\", \" No entries found\"), width));\n\t\t\tlines.push(truncateToWidth(theme.fg(\"muted\", ` (0/0)${this.getStatusLabels()}`), width));\n\t\t\treturn lines;\n\t\t}\n\n\t\tconst startIndex = Math.max(\n\t\t\t0,\n\t\t\tMath.min(\n\t\t\t\tthis.selectedIndex - Math.floor(this.maxVisibleLines / 2),\n\t\t\t\tthis.filteredNodes.length - this.maxVisibleLines,\n\t\t\t),\n\t\t);\n\t\tconst endIndex = Math.min(startIndex + this.maxVisibleLines, this.filteredNodes.length);\n\n\t\tconst renderedRows: HorizontalViewportRow[] = [];\n\t\tfor (let i = startIndex; i < endIndex; i++) {\n\t\t\tconst flatNode = this.filteredNodes[i];\n\t\t\tconst entry = flatNode.node.entry;\n\t\t\tconst isSelected = i === this.selectedIndex;\n\n\t\t\t// Build line: cursor + prefix + path marker + label + content\n\t\t\tconst cursor = isSelected ? theme.fg(\"accent\", \"› \") : \" \";\n\n\t\t\t// If multiple roots, shift display (roots at 0, not 1)\n\t\t\tconst displayIndent = this.multipleRoots ? Math.max(0, flatNode.indent - 1) : flatNode.indent;\n\n\t\t\t// Build prefix with gutters at their correct positions\n\t\t\t// Each gutter has a position (displayIndent where its connector was shown)\n\t\t\tconst connector =\n\t\t\t\tflatNode.showConnector && !flatNode.isVirtualRootChild ? (flatNode.isLast ? \"└─ \" : \"├─ \") : \"\";\n\t\t\tconst connectorPosition = connector ? displayIndent - 1 : -1;\n\n\t\t\t// Build prefix char by char, placing gutters and connector at their positions\n\t\t\tconst totalChars = displayIndent * 3;\n\t\t\tconst prefixChars: string[] = [];\n\t\t\tconst isFolded = this.foldedNodes.has(entry.id);\n\t\t\tfor (let i = 0; i < totalChars; i++) {\n\t\t\t\tconst level = Math.floor(i / 3);\n\t\t\t\tconst posInLevel = i % 3;\n\n\t\t\t\t// Check if there's a gutter at this level\n\t\t\t\tconst gutter = flatNode.gutters.find((g) => g.position === level);\n\t\t\t\tif (gutter) {\n\t\t\t\t\tif (posInLevel === 0) {\n\t\t\t\t\t\tprefixChars.push(gutter.show ? \"│\" : \" \");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprefixChars.push(\" \");\n\t\t\t\t\t}\n\t\t\t\t} else if (connector && level === connectorPosition) {\n\t\t\t\t\t// Connector at this level, with fold indicator\n\t\t\t\t\tif (posInLevel === 0) {\n\t\t\t\t\t\tprefixChars.push(flatNode.isLast ? \"└\" : \"├\");\n\t\t\t\t\t} else if (posInLevel === 1) {\n\t\t\t\t\t\tconst foldable = this.isFoldable(entry.id);\n\t\t\t\t\t\tprefixChars.push(isFolded ? \"⊞\" : foldable ? \"⊟\" : \"─\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprefixChars.push(\" \");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tprefixChars.push(\" \");\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst prefix = prefixChars.join(\"\");\n\n\t\t\t// Fold marker for nodes without connectors (roots)\n\t\t\tconst showsFoldInConnector = flatNode.showConnector && !flatNode.isVirtualRootChild;\n\t\t\tconst foldMarker = isFolded && !showsFoldInConnector ? theme.fg(\"accent\", \"⊞ \") : \"\";\n\n\t\t\t// Active path marker - shown right before the entry text\n\t\t\tconst isOnActivePath = this.activePathIds.has(entry.id);\n\t\t\tconst pathMarker = isOnActivePath ? theme.fg(\"accent\", \"• \") : \"\";\n\n\t\t\tconst label = flatNode.node.label ? theme.fg(\"warning\", `[${flatNode.node.label}] `) : \"\";\n\t\t\tconst labelTimestamp =\n\t\t\t\tthis.showLabelTimestamps && flatNode.node.label && flatNode.node.labelTimestamp\n\t\t\t\t\t? theme.fg(\"muted\", `${this.formatLabelTimestamp(flatNode.node.labelTimestamp)} `)\n\t\t\t\t\t: \"\";\n\t\t\tconst content = this.getEntryDisplayText(flatNode.node, isSelected);\n\t\t\tconst prefixPart = theme.fg(\"dim\", prefix) + foldMarker + pathMarker;\n\t\t\tconst anchorCol = visibleWidth(prefixPart);\n\t\t\tlet gutter = cursor;\n\t\t\tlet body = prefixPart + label + labelTimestamp + content;\n\t\t\tif (isSelected) {\n\t\t\t\tgutter = theme.bg(\"selectedBg\", gutter);\n\t\t\t\tbody = theme.bg(\"selectedBg\", body);\n\t\t\t}\n\t\t\trenderedRows.push({ gutter, body, anchorCol, bodyWidth: visibleWidth(body), isSelected });\n\t\t}\n\n\t\tlines.push(...renderHorizontalViewport(renderedRows, width));\n\t\tlines.push(\n\t\t\ttruncateToWidth(\n\t\t\t\ttheme.fg(\"muted\", ` (${this.selectedIndex + 1}/${this.filteredNodes.length})${this.getStatusLabels()}`),\n\t\t\t\twidth,\n\t\t\t),\n\t\t);\n\n\t\treturn lines;\n\t}\n\n\tprivate getEntryDisplayText(node: SessionTreeNode, isSelected: boolean): string {\n\t\tconst entry = node.entry;\n\t\tlet result: string;\n\n\t\tconst normalize = (s: string) => s.replace(/[\\n\\t]/g, \" \").trim();\n\n\t\tswitch (entry.type) {\n\t\t\tcase \"message\": {\n\t\t\t\tconst msg = entry.message;\n\t\t\t\tconst role = msg.role;\n\t\t\t\tif (role === \"user\") {\n\t\t\t\t\tconst msgWithContent = msg as { content?: unknown };\n\t\t\t\t\tconst content = normalize(this.extractContent(msgWithContent.content));\n\t\t\t\t\tresult = theme.fg(\"accent\", \"user: \") + content;\n\t\t\t\t} else if (role === \"assistant\") {\n\t\t\t\t\tconst msgWithContent = msg as { content?: unknown; stopReason?: string; errorMessage?: string };\n\t\t\t\t\tconst textContent = normalize(this.extractContent(msgWithContent.content));\n\t\t\t\t\tif (textContent) {\n\t\t\t\t\t\tresult = theme.fg(\"success\", \"assistant: \") + textContent;\n\t\t\t\t\t} else if (msgWithContent.stopReason === \"aborted\") {\n\t\t\t\t\t\tresult = theme.fg(\"success\", \"assistant: \") + theme.fg(\"muted\", \"(aborted)\");\n\t\t\t\t\t} else if (msgWithContent.errorMessage) {\n\t\t\t\t\t\tconst errMsg = normalize(msgWithContent.errorMessage).slice(0, 80);\n\t\t\t\t\t\tresult = theme.fg(\"success\", \"assistant: \") + theme.fg(\"error\", errMsg);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = theme.fg(\"success\", \"assistant: \") + theme.fg(\"muted\", \"(no content)\");\n\t\t\t\t\t}\n\t\t\t\t} else if (role === \"toolResult\") {\n\t\t\t\t\tconst toolMsg = msg as { toolCallId?: string; toolName?: string };\n\t\t\t\t\tconst toolCall = toolMsg.toolCallId ? this.toolCallMap.get(toolMsg.toolCallId) : undefined;\n\t\t\t\t\tif (toolCall) {\n\t\t\t\t\t\tresult = theme.fg(\"muted\", this.formatToolCall(toolCall.name, toolCall.arguments));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = theme.fg(\"muted\", `[${toolMsg.toolName ?? \"tool\"}]`);\n\t\t\t\t\t}\n\t\t\t\t} else if (role === \"bashExecution\") {\n\t\t\t\t\tconst bashMsg = msg as { command?: string };\n\t\t\t\t\tresult = theme.fg(\"dim\", `[bash]: ${normalize(bashMsg.command ?? \"\")}`);\n\t\t\t\t} else {\n\t\t\t\t\tresult = theme.fg(\"dim\", `[${role}]`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"custom_message\": {\n\t\t\t\tconst content =\n\t\t\t\t\ttypeof entry.content === \"string\"\n\t\t\t\t\t\t? entry.content\n\t\t\t\t\t\t: entry.content\n\t\t\t\t\t\t\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t\t\t\t\t\t\t.map((c) => c.text)\n\t\t\t\t\t\t\t\t.join(\"\");\n\t\t\t\tresult = theme.fg(\"customMessageLabel\", `[${entry.customType}]: `) + normalize(content);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"compaction\": {\n\t\t\t\tconst tokens = Math.round(entry.tokensBefore / 1000);\n\t\t\t\tresult = theme.fg(\"borderAccent\", `[compaction: ${tokens}k tokens]`);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"branch_summary\":\n\t\t\t\tresult = theme.fg(\"warning\", `[branch summary]: `) + normalize(entry.summary);\n\t\t\t\tbreak;\n\t\t\tcase \"model_change\":\n\t\t\t\tresult = theme.fg(\"dim\", `[model: ${entry.modelId}]`);\n\t\t\t\tbreak;\n\t\t\tcase \"thinking_level_change\":\n\t\t\t\tresult = theme.fg(\"dim\", `[thinking: ${entry.thinkingLevel}]`);\n\t\t\t\tbreak;\n\t\t\tcase \"custom\":\n\t\t\t\tresult = theme.fg(\"dim\", `[custom: ${entry.customType}]`);\n\t\t\t\tbreak;\n\t\t\tcase \"label\":\n\t\t\t\tresult = theme.fg(\"dim\", `[label: ${entry.label ?? \"(cleared)\"}]`);\n\t\t\t\tbreak;\n\t\t\tcase \"session_info\":\n\t\t\t\tresult = entry.name\n\t\t\t\t\t? [theme.fg(\"dim\", \"[title: \"), theme.fg(\"dim\", entry.name), theme.fg(\"dim\", \"]\")].join(\"\")\n\t\t\t\t\t: [theme.fg(\"dim\", \"[title: \"), theme.italic(theme.fg(\"dim\", \"empty\")), theme.fg(\"dim\", \"]\")].join(\"\");\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tresult = \"\";\n\t\t}\n\n\t\treturn isSelected ? theme.bold(result) : result;\n\t}\n\n\tprivate formatLabelTimestamp(timestamp: string): string {\n\t\tconst date = new Date(timestamp);\n\t\tconst now = new Date();\n\t\tconst hours = date.getHours().toString().padStart(2, \"0\");\n\t\tconst minutes = date.getMinutes().toString().padStart(2, \"0\");\n\t\tconst time = `${hours}:${minutes}`;\n\n\t\tif (\n\t\t\tdate.getFullYear() === now.getFullYear() &&\n\t\t\tdate.getMonth() === now.getMonth() &&\n\t\t\tdate.getDate() === now.getDate()\n\t\t) {\n\t\t\treturn time;\n\t\t}\n\n\t\tconst month = date.getMonth() + 1;\n\t\tconst day = date.getDate();\n\t\tif (date.getFullYear() === now.getFullYear()) {\n\t\t\treturn `${month}/${day} ${time}`;\n\t\t}\n\n\t\tconst year = date.getFullYear().toString().slice(-2);\n\t\treturn `${year}/${month}/${day} ${time}`;\n\t}\n\n\tprivate extractContent(content: unknown): string {\n\t\treturn this.extractFullContent(content).slice(0, 200);\n\t}\n\n\tprivate extractFullContent(content: unknown): string {\n\t\tif (typeof content === \"string\") return content;\n\t\tif (!Array.isArray(content)) return \"\";\n\n\t\tlet result = \"\";\n\t\tfor (const block of content) {\n\t\t\tif (typeof block === \"object\" && block !== null && \"type\" in block && block.type === \"text\") {\n\t\t\t\tresult += (block as { text: string }).text;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate getEntryCopyText(node: SessionTreeNode): string | undefined {\n\t\tconst entry = node.entry;\n\t\tlet text: string | undefined;\n\n\t\tswitch (entry.type) {\n\t\t\tcase \"message\":\n\t\t\t\tif (entry.message.role === \"bashExecution\") {\n\t\t\t\t\ttext = entry.message.command;\n\t\t\t\t} else if (\"content\" in entry.message) {\n\t\t\t\t\ttext = this.extractFullContent(entry.message.content);\n\t\t\t\t\tif (!text && entry.message.role === \"assistant\") {\n\t\t\t\t\t\ttext = entry.message.errorMessage;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"custom_message\":\n\t\t\t\ttext = this.extractFullContent(entry.content);\n\t\t\t\tbreak;\n\t\t\tcase \"compaction\":\n\t\t\t\ttext = entry.summary;\n\t\t\t\tbreak;\n\t\t\tcase \"branch_summary\":\n\t\t\t\ttext = entry.summary;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn text?.trim() ? text : undefined;\n\t}\n\n\tprivate hasTextContent(content: unknown): boolean {\n\t\tif (typeof content === \"string\") return content.trim().length > 0;\n\t\tif (Array.isArray(content)) {\n\t\t\tfor (const c of content) {\n\t\t\t\tif (typeof c === \"object\" && c !== null && \"type\" in c && c.type === \"text\") {\n\t\t\t\t\tconst text = (c as { text?: string }).text;\n\t\t\t\t\tif (text && text.trim().length > 0) return true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate formatToolCall(name: string, args: Record<string, unknown>): string {\n\t\tconst shortenPath = (p: string): string => {\n\t\t\tconst home = process.env.HOME || process.env.USERPROFILE || \"\";\n\t\t\tif (home && p.startsWith(home)) return `~${p.slice(home.length)}`;\n\t\t\treturn p;\n\t\t};\n\n\t\tswitch (name) {\n\t\t\tcase \"read\": {\n\t\t\t\tconst path = shortenPath(String(args.path || args.file_path || \"\"));\n\t\t\t\tconst offset = args.offset as number | undefined;\n\t\t\t\tconst limit = args.limit as number | undefined;\n\t\t\t\tlet display = path;\n\t\t\t\tif (offset !== undefined || limit !== undefined) {\n\t\t\t\t\tconst start = offset ?? 1;\n\t\t\t\t\tconst end = limit !== undefined ? start + limit - 1 : \"\";\n\t\t\t\t\tdisplay += `:${start}${end ? `-${end}` : \"\"}`;\n\t\t\t\t}\n\t\t\t\treturn `[read: ${display}]`;\n\t\t\t}\n\t\t\tcase \"write\": {\n\t\t\t\tconst path = shortenPath(String(args.path || args.file_path || \"\"));\n\t\t\t\treturn `[write: ${path}]`;\n\t\t\t}\n\t\t\tcase \"edit\": {\n\t\t\t\tconst path = shortenPath(String(args.path || args.file_path || \"\"));\n\t\t\t\treturn `[edit: ${path}]`;\n\t\t\t}\n\t\t\tcase \"bash\": {\n\t\t\t\tconst rawCmd = String(args.command || \"\");\n\t\t\t\tconst cmd = rawCmd\n\t\t\t\t\t.replace(/[\\n\\t]/g, \" \")\n\t\t\t\t\t.trim()\n\t\t\t\t\t.slice(0, 50);\n\t\t\t\treturn `[bash: ${cmd}${rawCmd.length > 50 ? \"...\" : \"\"}]`;\n\t\t\t}\n\t\t\tcase \"grep\": {\n\t\t\t\tconst pattern = String(args.pattern || \"\");\n\t\t\t\tconst path = shortenPath(String(args.path || \".\"));\n\t\t\t\treturn `[grep: /${pattern}/ in ${path}]`;\n\t\t\t}\n\t\t\tcase \"find\": {\n\t\t\t\tconst pattern = String(args.pattern || \"\");\n\t\t\t\tconst path = shortenPath(String(args.path || \".\"));\n\t\t\t\treturn `[find: ${pattern} in ${path}]`;\n\t\t\t}\n\t\t\tcase \"ls\": {\n\t\t\t\tconst path = shortenPath(String(args.path || \".\"));\n\t\t\t\treturn `[ls: ${path}]`;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\t// Custom tool - show name and truncated JSON args\n\t\t\t\tconst argsStr = JSON.stringify(args).slice(0, 40);\n\t\t\t\treturn `[${name}: ${argsStr}${JSON.stringify(args).length > 40 ? \"...\" : \"\"}]`;\n\t\t\t}\n\t\t}\n\t}\n\n\thandleInput(keyData: string): void {\n\t\tconst kb = getKeybindings();\n\t\tif (kb.matches(keyData, \"tui.select.up\")) {\n\t\t\tthis.selectedIndex = this.selectedIndex === 0 ? this.filteredNodes.length - 1 : this.selectedIndex - 1;\n\t\t} else if (kb.matches(keyData, \"tui.select.down\")) {\n\t\t\tthis.selectedIndex = this.selectedIndex === this.filteredNodes.length - 1 ? 0 : this.selectedIndex + 1;\n\t\t} else if (kb.matches(keyData, \"app.tree.foldOrUp\")) {\n\t\t\tconst currentId = this.filteredNodes[this.selectedIndex]?.node.entry.id;\n\t\t\tif (currentId && this.isFoldable(currentId) && !this.foldedNodes.has(currentId)) {\n\t\t\t\tthis.foldedNodes.add(currentId);\n\t\t\t\tthis.applyFilter();\n\t\t\t} else {\n\t\t\t\tthis.selectedIndex = this.findBranchSegmentStart(\"up\");\n\t\t\t}\n\t\t} else if (kb.matches(keyData, \"app.tree.unfoldOrDown\")) {\n\t\t\tconst currentId = this.filteredNodes[this.selectedIndex]?.node.entry.id;\n\t\t\tif (currentId && this.foldedNodes.has(currentId)) {\n\t\t\t\tthis.foldedNodes.delete(currentId);\n\t\t\t\tthis.applyFilter();\n\t\t\t} else {\n\t\t\t\tthis.selectedIndex = this.findBranchSegmentStart(\"down\");\n\t\t\t}\n\t\t} else if (kb.matches(keyData, \"tui.editor.cursorLeft\") || kb.matches(keyData, \"tui.select.pageUp\")) {\n\t\t\t// Page up\n\t\t\tthis.selectedIndex = Math.max(0, this.selectedIndex - this.maxVisibleLines);\n\t\t} else if (kb.matches(keyData, \"tui.editor.cursorRight\") || kb.matches(keyData, \"tui.select.pageDown\")) {\n\t\t\t// Page down\n\t\t\tthis.selectedIndex = Math.min(this.filteredNodes.length - 1, this.selectedIndex + this.maxVisibleLines);\n\t\t} else if (kb.matches(keyData, \"tui.select.confirm\")) {\n\t\t\tconst selected = this.filteredNodes[this.selectedIndex];\n\t\t\tif (selected && this.onSelect) {\n\t\t\t\tthis.onSelect(selected.node.entry.id);\n\t\t\t}\n\t\t} else if (kb.matches(keyData, \"app.message.copy\")) {\n\t\t\tthis.copySelected();\n\t\t} else if (kb.matches(keyData, \"tui.select.cancel\")) {\n\t\t\tif (this.searchQuery) {\n\t\t\t\tthis.searchQuery = \"\";\n\t\t\t\tthis.foldedNodes.clear();\n\t\t\t\tthis.applyFilter();\n\t\t\t} else {\n\t\t\t\tthis.onCancel?.();\n\t\t\t}\n\t\t} else if (kb.matches(keyData, \"app.tree.filter.default\")) {\n\t\t\t// Direct filter: default\n\t\t\tthis.filterMode = \"default\";\n\t\t\tthis.foldedNodes.clear();\n\t\t\tthis.applyFilter();\n\t\t} else if (kb.matches(keyData, \"app.tree.filter.noTools\")) {\n\t\t\t// Toggle filter: no-tools ↔ default\n\t\t\tthis.filterMode = this.filterMode === \"no-tools\" ? \"default\" : \"no-tools\";\n\t\t\tthis.foldedNodes.clear();\n\t\t\tthis.applyFilter();\n\t\t} else if (kb.matches(keyData, \"app.tree.filter.userOnly\")) {\n\t\t\t// Toggle filter: user-only ↔ default\n\t\t\tthis.filterMode = this.filterMode === \"user-only\" ? \"default\" : \"user-only\";\n\t\t\tthis.foldedNodes.clear();\n\t\t\tthis.applyFilter();\n\t\t} else if (kb.matches(keyData, \"app.tree.filter.labeledOnly\")) {\n\t\t\t// Toggle filter: labeled-only ↔ default\n\t\t\tthis.filterMode = this.filterMode === \"labeled-only\" ? \"default\" : \"labeled-only\";\n\t\t\tthis.foldedNodes.clear();\n\t\t\tthis.applyFilter();\n\t\t} else if (kb.matches(keyData, \"app.tree.filter.all\")) {\n\t\t\t// Toggle filter: all ↔ default\n\t\t\tthis.filterMode = this.filterMode === \"all\" ? \"default\" : \"all\";\n\t\t\tthis.foldedNodes.clear();\n\t\t\tthis.applyFilter();\n\t\t} else if (kb.matches(keyData, \"app.tree.filter.cycleBackward\")) {\n\t\t\t// Cycle filter backwards\n\t\t\tconst modes: FilterMode[] = [\"default\", \"no-tools\", \"user-only\", \"labeled-only\", \"all\"];\n\t\t\tconst currentIndex = modes.indexOf(this.filterMode);\n\t\t\tthis.filterMode = modes[(currentIndex - 1 + modes.length) % modes.length];\n\t\t\tthis.foldedNodes.clear();\n\t\t\tthis.applyFilter();\n\t\t} else if (kb.matches(keyData, \"app.tree.filter.cycleForward\")) {\n\t\t\t// Cycle filter forwards: default → no-tools → user-only → labeled-only → all → default\n\t\t\tconst modes: FilterMode[] = [\"default\", \"no-tools\", \"user-only\", \"labeled-only\", \"all\"];\n\t\t\tconst currentIndex = modes.indexOf(this.filterMode);\n\t\t\tthis.filterMode = modes[(currentIndex + 1) % modes.length];\n\t\t\tthis.foldedNodes.clear();\n\t\t\tthis.applyFilter();\n\t\t} else if (kb.matches(keyData, \"tui.editor.deleteCharBackward\")) {\n\t\t\tif (this.searchQuery.length > 0) {\n\t\t\t\tthis.searchQuery = this.searchQuery.slice(0, -1);\n\t\t\t\tthis.foldedNodes.clear();\n\t\t\t\tthis.applyFilter();\n\t\t\t}\n\t\t} else if (kb.matches(keyData, \"app.tree.editLabel\")) {\n\t\t\tconst selected = this.filteredNodes[this.selectedIndex];\n\t\t\tif (selected && this.onLabelEdit) {\n\t\t\t\tthis.onLabelEdit(selected.node.entry.id, selected.node.label);\n\t\t\t}\n\t\t} else if (kb.matches(keyData, \"app.tree.toggleLabelTimestamp\")) {\n\t\t\tthis.showLabelTimestamps = !this.showLabelTimestamps;\n\t\t} else {\n\t\t\tconst hasControlChars = [...keyData].some((ch) => {\n\t\t\t\tconst code = ch.charCodeAt(0);\n\t\t\t\treturn code < 32 || code === 0x7f || (code >= 0x80 && code <= 0x9f);\n\t\t\t});\n\t\t\tif (!hasControlChars && keyData.length > 0) {\n\t\t\t\tthis.searchQuery += keyData;\n\t\t\t\tthis.foldedNodes.clear();\n\t\t\t\tthis.applyFilter();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Whether a node can be folded. A node is foldable if it has visible children\n\t * and is either a root (no visible parent) or a segment start (visible parent\n\t * has multiple visible children).\n\t */\n\tprivate isFoldable(entryId: string): boolean {\n\t\tconst children = this.visibleChildrenMap.get(entryId);\n\t\tif (!children || children.length === 0) return false;\n\t\tconst parentId = this.visibleParentMap.get(entryId);\n\t\tif (parentId === null || parentId === undefined) return true;\n\t\tconst siblings = this.visibleChildrenMap.get(parentId);\n\t\treturn siblings !== undefined && siblings.length > 1;\n\t}\n\n\t/**\n\t * Find the index of the next branch segment start in the given direction.\n\t * A segment start is the first child of a branch point.\n\t *\n\t * \"up\" walks the visible parent chain; \"down\" walks visible children\n\t * (always following the first child).\n\t */\n\tprivate findBranchSegmentStart(direction: \"up\" | \"down\"): number {\n\t\tconst selectedId = this.filteredNodes[this.selectedIndex]?.node.entry.id;\n\t\tif (!selectedId) return this.selectedIndex;\n\n\t\tconst indexByEntryId = new Map(this.filteredNodes.map((node, i) => [node.node.entry.id, i]));\n\t\tlet currentId: string = selectedId;\n\t\tif (direction === \"down\") {\n\t\t\twhile (true) {\n\t\t\t\tconst children: string[] = this.visibleChildrenMap.get(currentId) ?? [];\n\t\t\t\tif (children.length === 0) return indexByEntryId.get(currentId)!;\n\t\t\t\tif (children.length > 1) return indexByEntryId.get(children[0])!;\n\t\t\t\tcurrentId = children[0];\n\t\t\t}\n\t\t}\n\n\t\t// direction === \"up\"\n\t\twhile (true) {\n\t\t\tconst parentId: string | null = this.visibleParentMap.get(currentId) ?? null;\n\t\t\tif (parentId === null) return indexByEntryId.get(currentId)!;\n\t\t\tconst children = this.visibleChildrenMap.get(parentId) ?? [];\n\t\t\tif (children.length > 1) {\n\t\t\t\tconst segmentStart = indexByEntryId.get(currentId)!;\n\t\t\t\tif (segmentStart < this.selectedIndex) {\n\t\t\t\t\treturn segmentStart;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrentId = parentId;\n\t\t}\n\t}\n}\n\n/** Component that displays the current search query */\nclass SearchLine implements Component {\n\tprivate treeList: TreeList;\n\n\tconstructor(treeList: TreeList) {\n\t\tthis.treeList = treeList;\n\t}\n\n\tinvalidate(): void {}\n\n\trender(width: number): string[] {\n\t\tconst query = this.treeList.getSearchQuery();\n\t\tif (query) {\n\t\t\treturn [truncateToWidth(` ${theme.fg(\"muted\", \"Type to search:\")} ${theme.fg(\"accent\", query)}`, width)];\n\t\t}\n\t\treturn [truncateToWidth(` ${theme.fg(\"muted\", \"Type to search:\")}`, width)];\n\t}\n\n\thandleInput(_keyData: string): void {}\n}\n\n/** Component that renders tree help as semantic rows with chunk-aware wrapping */\nclass TreeHelp implements Component {\n\tinvalidate(): void {}\n\n\trender(width: number): string[] {\n\t\tconst items = TREE_HELP_ITEMS.map(({ keys, label, labelFirst }) => {\n\t\t\tconst text = formatHelpKeys(keys);\n\t\t\tif (!text) return label;\n\t\t\treturn labelFirst ? `${label} ${text}` : `${text} ${label}`;\n\t\t});\n\n\t\tconst availableWidth = Math.max(1, width);\n\t\tconst indent = \" \";\n\t\tconst separator = \" · \";\n\t\tconst lines: string[] = [];\n\t\tlet currentLine = \"\";\n\n\t\tfor (const item of items) {\n\t\t\tconst candidate = currentLine\n\t\t\t\t? `${currentLine}${separator}${item}`\n\t\t\t\t: visibleWidth(`${indent}${item}`) <= availableWidth\n\t\t\t\t\t? `${indent}${item}`\n\t\t\t\t\t: item;\n\t\t\tif (!currentLine || visibleWidth(candidate) <= availableWidth) {\n\t\t\t\tcurrentLine = candidate;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlines.push(...wrapTextWithAnsi(currentLine.trimEnd(), availableWidth));\n\t\t\tcurrentLine = visibleWidth(`${indent}${item}`) <= availableWidth ? `${indent}${item}` : item;\n\t\t}\n\n\t\tif (currentLine) {\n\t\t\tlines.push(...wrapTextWithAnsi(currentLine.trimEnd(), availableWidth));\n\t\t}\n\n\t\treturn lines.map((line) => theme.fg(\"muted\", line));\n\t}\n}\n\nconst TREE_HELP_ITEMS: Array<{ keys: Keybinding[]; label: string; labelFirst?: boolean }> = [\n\t{ keys: [\"tui.select.up\", \"tui.select.down\"], label: \"move\" },\n\t{ keys: [\"tui.editor.cursorLeft\", \"tui.editor.cursorRight\"], label: \"page\" },\n\t{ keys: [\"app.tree.foldOrUp\", \"app.tree.unfoldOrDown\"], label: \"branch\" },\n\t{ keys: [\"app.message.copy\"], label: \"copy\" },\n\t{ keys: [\"app.tree.editLabel\"], label: \"label\" },\n\t{ keys: [\"app.tree.toggleLabelTimestamp\"], label: \"label time\" },\n\t{\n\t\tkeys: [\n\t\t\t\"app.tree.filter.default\",\n\t\t\t\"app.tree.filter.noTools\",\n\t\t\t\"app.tree.filter.userOnly\",\n\t\t\t\"app.tree.filter.labeledOnly\",\n\t\t\t\"app.tree.filter.all\",\n\t\t],\n\t\tlabel: \"filters\",\n\t\tlabelFirst: true,\n\t},\n\t{ keys: [\"app.tree.filter.cycleForward\", \"app.tree.filter.cycleBackward\"], label: \"cycle\", labelFirst: true },\n];\n\nfunction formatHelpKeys(keybindings: Keybinding[]): string {\n\tconst keys: string[] = [];\n\tfor (const keybinding of keybindings) {\n\t\tconst key = getKeybindings().getKeys(keybinding)[0];\n\t\tif (key !== undefined) keys.push(key);\n\t}\n\tif (keys.length === 0) return \"\";\n\n\treturn formatKeyText(compactRawKeys(keys))\n\t\t.replace(/\\bpageUp\\b/g, \"pgup\")\n\t\t.replace(/\\bpageDown\\b/g, \"pgdn\")\n\t\t.replace(/\\bup\\b/g, \"↑\")\n\t\t.replace(/\\bdown\\b/g, \"↓\")\n\t\t.replace(/\\bleft\\b/g, \"←\")\n\t\t.replace(/\\bright\\b/g, \"→\");\n}\n\nfunction compactRawKeys(keys: string[]): string {\n\tif (keys.length === 1) return keys[0]!;\n\n\tconst parts = keys.map((key) => {\n\t\tconst separatorIndex = key.lastIndexOf(\"+\");\n\t\treturn separatorIndex === -1\n\t\t\t? { prefix: \"\", suffix: key }\n\t\t\t: { prefix: key.slice(0, separatorIndex + 1), suffix: key.slice(separatorIndex + 1) };\n\t});\n\tconst prefix = parts[0]!.prefix;\n\treturn prefix && parts.every((part) => part.prefix === prefix)\n\t\t? `${prefix}${parts.map((part) => part.suffix).join(\"/\")}`\n\t\t: keys.join(\"/\");\n}\n\n/** Label input component shown when editing a label */\nclass LabelInput implements Component, Focusable {\n\tprivate input: Input;\n\tprivate entryId: string;\n\tpublic onSubmit?: (entryId: string, label: string | undefined) => void;\n\tpublic onCancel?: () => void;\n\n\t// Focusable implementation - propagate to input for IME cursor positioning\n\tprivate _focused = false;\n\tget focused(): boolean {\n\t\treturn this._focused;\n\t}\n\tset focused(value: boolean) {\n\t\tthis._focused = value;\n\t\tthis.input.focused = value;\n\t}\n\n\tconstructor(entryId: string, currentLabel: string | undefined) {\n\t\tthis.entryId = entryId;\n\t\tthis.input = new Input();\n\t\tif (currentLabel) {\n\t\t\tthis.input.setValue(currentLabel);\n\t\t}\n\t}\n\n\tinvalidate(): void {}\n\n\trender(width: number): string[] {\n\t\tconst lines: string[] = [];\n\t\tconst indent = \" \";\n\t\tconst availableWidth = width - indent.length;\n\t\tlines.push(truncateToWidth(`${indent}${theme.fg(\"muted\", \"Label (empty to remove):\")}`, width));\n\t\tlines.push(...this.input.render(availableWidth).map((line) => truncateToWidth(`${indent}${line}`, width)));\n\t\tlines.push(\n\t\t\ttruncateToWidth(\n\t\t\t\t`${indent}${keyHint(\"tui.select.confirm\", \"save\")} ${keyHint(\"tui.select.cancel\", \"cancel\")}`,\n\t\t\t\twidth,\n\t\t\t),\n\t\t);\n\t\treturn lines;\n\t}\n\n\thandleInput(keyData: string): void {\n\t\tconst kb = getKeybindings();\n\t\tif (kb.matches(keyData, \"tui.select.confirm\")) {\n\t\t\tconst value = this.input.getValue().trim();\n\t\t\tthis.onSubmit?.(this.entryId, value || undefined);\n\t\t} else if (kb.matches(keyData, \"tui.select.cancel\")) {\n\t\t\tthis.onCancel?.();\n\t\t} else {\n\t\t\tthis.input.handleInput(keyData);\n\t\t}\n\t}\n}\n\n/**\n * Component that renders a session tree selector for navigation\n */\nexport class TreeSelectorComponent extends Container implements Focusable {\n\tprivate treeList: TreeList;\n\tprivate labelInput: LabelInput | null = null;\n\tprivate labelInputContainer: Container;\n\tprivate treeContainer: Container;\n\tprivate onLabelChangeCallback?: (entryId: string, label: string | undefined) => void;\n\tpublic onCopy?: (text: string | undefined) => void;\n\n\t// Focusable implementation - propagate to labelInput when active for IME cursor positioning\n\tprivate _focused = false;\n\tget focused(): boolean {\n\t\treturn this._focused;\n\t}\n\tset focused(value: boolean) {\n\t\tthis._focused = value;\n\t\t// Propagate to labelInput when it's active\n\t\tif (this.labelInput) {\n\t\t\tthis.labelInput.focused = value;\n\t\t}\n\t}\n\n\tconstructor(\n\t\ttree: SessionTreeNode[],\n\t\tcurrentLeafId: string | null,\n\t\tterminalHeight: number,\n\t\tonSelect: (entryId: string) => void,\n\t\tonCancel: () => void,\n\t\tonLabelChange?: (entryId: string, label: string | undefined) => void,\n\t\tinitialSelectedId?: string,\n\t\tinitialFilterMode?: FilterMode,\n\t) {\n\t\tsuper();\n\n\t\tthis.onLabelChangeCallback = onLabelChange;\n\t\tconst maxVisibleLines = Math.max(5, Math.floor(terminalHeight / 2));\n\n\t\tthis.treeList = new TreeList(tree, currentLeafId, maxVisibleLines, initialSelectedId, initialFilterMode);\n\t\tthis.treeList.onSelect = onSelect;\n\t\tthis.treeList.onCancel = onCancel;\n\t\tthis.treeList.onCopy = (text) => this.onCopy?.(text);\n\t\tthis.treeList.onLabelEdit = (entryId, currentLabel) => this.showLabelInput(entryId, currentLabel);\n\n\t\tthis.treeContainer = new Container();\n\t\tthis.treeContainer.addChild(this.treeList);\n\n\t\tthis.labelInputContainer = new Container();\n\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new DynamicBorder());\n\t\tthis.addChild(new Text(theme.bold(\" Session Tree\"), 1, 0));\n\t\tthis.addChild(new TreeHelp());\n\t\tthis.addChild(new SearchLine(this.treeList));\n\t\tthis.addChild(new DynamicBorder());\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(this.treeContainer);\n\t\tthis.addChild(this.labelInputContainer);\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new DynamicBorder());\n\n\t\tif (tree.length === 0) {\n\t\t\tsetTimeout(() => onCancel(), 100);\n\t\t}\n\t}\n\n\tprivate showLabelInput(entryId: string, currentLabel: string | undefined): void {\n\t\tthis.labelInput = new LabelInput(entryId, currentLabel);\n\t\tthis.labelInput.onSubmit = (id, label) => {\n\t\t\tthis.treeList.updateNodeLabel(id, label);\n\t\t\tthis.onLabelChangeCallback?.(id, label);\n\t\t\tthis.hideLabelInput();\n\t\t};\n\t\tthis.labelInput.onCancel = () => this.hideLabelInput();\n\n\t\t// Propagate current focused state to the new labelInput\n\t\tthis.labelInput.focused = this._focused;\n\n\t\tthis.treeContainer.clear();\n\t\tthis.labelInputContainer.clear();\n\t\tthis.labelInputContainer.addChild(this.labelInput);\n\t}\n\n\tprivate hideLabelInput(): void {\n\t\tthis.labelInput = null;\n\t\tthis.labelInputContainer.clear();\n\t\tthis.treeContainer.clear();\n\t\tthis.treeContainer.addChild(this.treeList);\n\t}\n\n\thandleInput(keyData: string): void {\n\t\tif (this.labelInput) {\n\t\t\tthis.labelInput.handleInput(keyData);\n\t\t} else {\n\t\t\tthis.treeList.handleInput(keyData);\n\t\t}\n\t}\n\n\tgetTreeList(): TreeList {\n\t\treturn this.treeList;\n\t}\n}\n"]}