indusagi 0.12.6 → 0.12.8

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 (684) hide show
  1. package/dist/agent/agent-loop.d.ts.map +1 -1
  2. package/dist/agent/agent-loop.js +10 -1
  3. package/dist/agent/agent-loop.js.map +1 -1
  4. package/dist/agent/agent.d.ts +2 -1
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/agent.js +30 -38
  7. package/dist/agent/agent.js.map +1 -1
  8. package/dist/agent/error-handler.d.ts +8 -0
  9. package/dist/agent/error-handler.d.ts.map +1 -0
  10. package/dist/agent/error-handler.js +8 -0
  11. package/dist/agent/error-handler.js.map +1 -0
  12. package/dist/agent/event-bus.d.ts +9 -0
  13. package/dist/agent/event-bus.d.ts.map +1 -0
  14. package/dist/agent/event-bus.js +17 -0
  15. package/dist/agent/event-bus.js.map +1 -0
  16. package/dist/agent/index.d.ts +1 -0
  17. package/dist/agent/index.d.ts.map +1 -1
  18. package/dist/agent/index.js +2 -0
  19. package/dist/agent/index.js.map +1 -1
  20. package/dist/agent/proxy.d.ts +13 -19
  21. package/dist/agent/proxy.d.ts.map +1 -1
  22. package/dist/agent/proxy.js +45 -4
  23. package/dist/agent/proxy.js.map +1 -1
  24. package/dist/agent/state-manager.d.ts +22 -0
  25. package/dist/agent/state-manager.d.ts.map +1 -0
  26. package/dist/agent/state-manager.js +59 -0
  27. package/dist/agent/state-manager.js.map +1 -0
  28. package/dist/agent/telemetry.d.ts +7 -0
  29. package/dist/agent/telemetry.d.ts.map +1 -0
  30. package/dist/agent/telemetry.js +20 -0
  31. package/dist/agent/telemetry.js.map +1 -0
  32. package/dist/agent/tools/bash.d.ts +56 -0
  33. package/dist/agent/tools/bash.d.ts.map +1 -0
  34. package/dist/agent/tools/bash.js +250 -0
  35. package/dist/agent/tools/bash.js.map +1 -0
  36. package/dist/agent/tools/edit-diff.d.ts +63 -0
  37. package/dist/agent/tools/edit-diff.d.ts.map +1 -0
  38. package/dist/agent/tools/edit-diff.js +241 -0
  39. package/dist/agent/tools/edit-diff.js.map +1 -0
  40. package/dist/agent/tools/edit.d.ts +42 -0
  41. package/dist/agent/tools/edit.d.ts.map +1 -0
  42. package/dist/agent/tools/edit.js +160 -0
  43. package/dist/agent/tools/edit.js.map +1 -0
  44. package/dist/agent/tools/find.d.ts +26 -0
  45. package/dist/agent/tools/find.d.ts.map +1 -0
  46. package/dist/agent/tools/find.js +135 -0
  47. package/dist/agent/tools/find.js.map +1 -0
  48. package/dist/agent/tools/grep.d.ts +43 -0
  49. package/dist/agent/tools/grep.d.ts.map +1 -0
  50. package/dist/agent/tools/grep.js +189 -0
  51. package/dist/agent/tools/grep.js.map +1 -0
  52. package/dist/agent/tools/index.d.ts +174 -0
  53. package/dist/agent/tools/index.d.ts.map +1 -0
  54. package/dist/agent/tools/index.js +142 -0
  55. package/dist/agent/tools/index.js.map +1 -0
  56. package/dist/agent/tools/ls.d.ts +40 -0
  57. package/dist/agent/tools/ls.d.ts.map +1 -0
  58. package/dist/agent/tools/ls.js +123 -0
  59. package/dist/agent/tools/ls.js.map +1 -0
  60. package/dist/agent/tools/path-utils.d.ts +8 -0
  61. package/dist/agent/tools/path-utils.d.ts.map +1 -0
  62. package/dist/agent/tools/path-utils.js +56 -0
  63. package/dist/agent/tools/path-utils.js.map +1 -0
  64. package/dist/agent/tools/read.d.ts +37 -0
  65. package/dist/agent/tools/read.d.ts.map +1 -0
  66. package/dist/agent/tools/read.js +168 -0
  67. package/dist/agent/tools/read.js.map +1 -0
  68. package/dist/agent/tools/registry.d.ts +21 -0
  69. package/dist/agent/tools/registry.d.ts.map +1 -0
  70. package/dist/agent/tools/registry.js +25 -0
  71. package/dist/agent/tools/registry.js.map +1 -0
  72. package/dist/agent/tools/task.d.ts +26 -0
  73. package/dist/agent/tools/task.d.ts.map +1 -0
  74. package/dist/agent/tools/task.js +36 -0
  75. package/dist/agent/tools/task.js.map +1 -0
  76. package/dist/agent/tools/todo-store.d.ts +24 -0
  77. package/dist/agent/tools/todo-store.d.ts.map +1 -0
  78. package/dist/agent/tools/todo-store.js +36 -0
  79. package/dist/agent/tools/todo-store.js.map +1 -0
  80. package/dist/agent/tools/todo.d.ts +30 -0
  81. package/dist/agent/tools/todo.d.ts.map +1 -0
  82. package/dist/agent/tools/todo.js +62 -0
  83. package/dist/agent/tools/todo.js.map +1 -0
  84. package/dist/agent/tools/truncate.d.ts +73 -0
  85. package/dist/agent/tools/truncate.d.ts.map +1 -0
  86. package/dist/agent/tools/truncate.js +205 -0
  87. package/dist/agent/tools/truncate.js.map +1 -0
  88. package/dist/agent/tools/utils/hook-runner.d.ts +14 -0
  89. package/dist/agent/tools/utils/hook-runner.d.ts.map +1 -0
  90. package/dist/agent/tools/utils/hook-runner.js +31 -0
  91. package/dist/agent/tools/utils/hook-runner.js.map +1 -0
  92. package/dist/agent/tools/utils/image-resize.d.ts +33 -0
  93. package/dist/agent/tools/utils/image-resize.d.ts.map +1 -0
  94. package/dist/agent/tools/utils/image-resize.js +47 -0
  95. package/dist/agent/tools/utils/image-resize.js.map +1 -0
  96. package/dist/agent/tools/utils/mime.d.ts +10 -0
  97. package/dist/agent/tools/utils/mime.d.ts.map +1 -0
  98. package/dist/agent/tools/utils/mime.js +54 -0
  99. package/dist/agent/tools/utils/mime.js.map +1 -0
  100. package/dist/agent/tools/utils/shell.d.ts +35 -0
  101. package/dist/agent/tools/utils/shell.d.ts.map +1 -0
  102. package/dist/agent/tools/utils/shell.js +146 -0
  103. package/dist/agent/tools/utils/shell.js.map +1 -0
  104. package/dist/agent/tools/webfetch.d.ts +36 -0
  105. package/dist/agent/tools/webfetch.d.ts.map +1 -0
  106. package/dist/agent/tools/webfetch.js +247 -0
  107. package/dist/agent/tools/webfetch.js.map +1 -0
  108. package/dist/agent/tools/websearch.d.ts +35 -0
  109. package/dist/agent/tools/websearch.d.ts.map +1 -0
  110. package/dist/agent/tools/websearch.js +89 -0
  111. package/dist/agent/tools/websearch.js.map +1 -0
  112. package/dist/agent/tools/write.d.ts +31 -0
  113. package/dist/agent/tools/write.d.ts.map +1 -0
  114. package/dist/agent/tools/write.js +96 -0
  115. package/dist/agent/tools/write.js.map +1 -0
  116. package/dist/agent/types.d.ts +22 -1
  117. package/dist/agent/types.d.ts.map +1 -1
  118. package/dist/agent/types.js +44 -1
  119. package/dist/agent/types.js.map +1 -1
  120. package/dist/ai/api-registry.d.ts +34 -4
  121. package/dist/ai/api-registry.d.ts.map +1 -1
  122. package/dist/ai/api-registry.js +97 -19
  123. package/dist/ai/api-registry.js.map +1 -1
  124. package/dist/ai/cli.js +24 -3
  125. package/dist/ai/cli.js.map +1 -1
  126. package/dist/ai/env-api-keys.d.ts +9 -0
  127. package/dist/ai/env-api-keys.d.ts.map +1 -1
  128. package/dist/ai/env-api-keys.js +23 -0
  129. package/dist/ai/env-api-keys.js.map +1 -1
  130. package/dist/ai/index.d.ts +4 -2
  131. package/dist/ai/index.d.ts.map +1 -1
  132. package/dist/ai/index.js +4 -2
  133. package/dist/ai/index.js.map +1 -1
  134. package/dist/ai/models.d.ts +30 -0
  135. package/dist/ai/models.d.ts.map +1 -1
  136. package/dist/ai/models.generated.d.ts +1 -0
  137. package/dist/ai/models.generated.d.ts.map +1 -1
  138. package/dist/ai/models.js +90 -18
  139. package/dist/ai/models.js.map +1 -1
  140. package/dist/ai/providers/amazon-bedrock.d.ts +19 -1
  141. package/dist/ai/providers/amazon-bedrock.d.ts.map +1 -1
  142. package/dist/ai/providers/amazon-bedrock.js +68 -40
  143. package/dist/ai/providers/amazon-bedrock.js.map +1 -1
  144. package/dist/ai/providers/anthropic.d.ts +50 -1
  145. package/dist/ai/providers/anthropic.d.ts.map +1 -1
  146. package/dist/ai/providers/anthropic.js +204 -161
  147. package/dist/ai/providers/anthropic.js.map +1 -1
  148. package/dist/ai/providers/azure-openai-responses.d.ts.map +1 -1
  149. package/dist/ai/providers/azure-openai-responses.js +36 -28
  150. package/dist/ai/providers/azure-openai-responses.js.map +1 -1
  151. package/dist/ai/providers/google-shared.d.ts +9 -0
  152. package/dist/ai/providers/google-shared.d.ts.map +1 -1
  153. package/dist/ai/providers/google-shared.js +16 -0
  154. package/dist/ai/providers/google-shared.js.map +1 -1
  155. package/dist/ai/providers/google-vertex.d.ts.map +1 -1
  156. package/dist/ai/providers/google-vertex.js +33 -26
  157. package/dist/ai/providers/google-vertex.js.map +1 -1
  158. package/dist/ai/providers/google.d.ts.map +1 -1
  159. package/dist/ai/providers/google.js +33 -26
  160. package/dist/ai/providers/google.js.map +1 -1
  161. package/dist/ai/providers/kimi.d.ts.map +1 -1
  162. package/dist/ai/providers/kimi.js +34 -24
  163. package/dist/ai/providers/kimi.js.map +1 -1
  164. package/dist/ai/providers/openai-codex-responses.d.ts.map +1 -1
  165. package/dist/ai/providers/openai-codex-responses.js +33 -25
  166. package/dist/ai/providers/openai-codex-responses.js.map +1 -1
  167. package/dist/ai/providers/openai-completions.d.ts +10 -0
  168. package/dist/ai/providers/openai-completions.d.ts.map +1 -1
  169. package/dist/ai/providers/openai-completions.js +51 -26
  170. package/dist/ai/providers/openai-completions.js.map +1 -1
  171. package/dist/ai/providers/openai-responses-shared.d.ts +9 -0
  172. package/dist/ai/providers/openai-responses-shared.d.ts.map +1 -1
  173. package/dist/ai/providers/openai-responses-shared.js +18 -2
  174. package/dist/ai/providers/openai-responses-shared.js.map +1 -1
  175. package/dist/ai/providers/openai-responses.d.ts.map +1 -1
  176. package/dist/ai/providers/openai-responses.js +35 -32
  177. package/dist/ai/providers/openai-responses.js.map +1 -1
  178. package/dist/ai/providers/register-builtins.d.ts.map +1 -1
  179. package/dist/ai/providers/register-builtins.js +17 -8
  180. package/dist/ai/providers/register-builtins.js.map +1 -1
  181. package/dist/ai/providers/simple-options.d.ts +19 -0
  182. package/dist/ai/providers/simple-options.d.ts.map +1 -1
  183. package/dist/ai/providers/simple-options.js +62 -0
  184. package/dist/ai/providers/simple-options.js.map +1 -1
  185. package/dist/ai/providers/transform-messages.d.ts +14 -0
  186. package/dist/ai/providers/transform-messages.d.ts.map +1 -1
  187. package/dist/ai/providers/transform-messages.js +99 -96
  188. package/dist/ai/providers/transform-messages.js.map +1 -1
  189. package/dist/ai/stream.d.ts +17 -3
  190. package/dist/ai/stream.d.ts.map +1 -1
  191. package/dist/ai/stream.js +61 -6
  192. package/dist/ai/stream.js.map +1 -1
  193. package/dist/ai/types.d.ts +17 -0
  194. package/dist/ai/types.d.ts.map +1 -1
  195. package/dist/ai/types.js +87 -1
  196. package/dist/ai/types.js.map +1 -1
  197. package/dist/ai/types.test.d.ts +8 -0
  198. package/dist/ai/types.test.d.ts.map +1 -0
  199. package/dist/ai/types.test.js +389 -0
  200. package/dist/ai/types.test.js.map +1 -0
  201. package/dist/ai/utils/base-stream-handler.d.ts +16 -0
  202. package/dist/ai/utils/base-stream-handler.d.ts.map +1 -0
  203. package/dist/ai/utils/base-stream-handler.js +24 -0
  204. package/dist/ai/utils/base-stream-handler.js.map +1 -0
  205. package/dist/ai/utils/event-stream.d.ts +26 -4
  206. package/dist/ai/utils/event-stream.d.ts.map +1 -1
  207. package/dist/ai/utils/event-stream.js +89 -5
  208. package/dist/ai/utils/event-stream.js.map +1 -1
  209. package/dist/ai/utils/index.d.ts +15 -0
  210. package/dist/ai/utils/index.d.ts.map +1 -0
  211. package/dist/ai/utils/index.js +15 -0
  212. package/dist/ai/utils/index.js.map +1 -0
  213. package/dist/ai/utils/json-parse.d.ts +13 -4
  214. package/dist/ai/utils/json-parse.d.ts.map +1 -1
  215. package/dist/ai/utils/json-parse.js +31 -19
  216. package/dist/ai/utils/json-parse.js.map +1 -1
  217. package/dist/ai/utils/message-transform.d.ts +29 -0
  218. package/dist/ai/utils/message-transform.d.ts.map +1 -0
  219. package/dist/ai/utils/message-transform.js +55 -0
  220. package/dist/ai/utils/message-transform.js.map +1 -0
  221. package/dist/ai/utils/oauth/anthropic.d.ts +1 -0
  222. package/dist/ai/utils/oauth/anthropic.d.ts.map +1 -1
  223. package/dist/ai/utils/oauth/anthropic.js +3 -0
  224. package/dist/ai/utils/oauth/anthropic.js.map +1 -1
  225. package/dist/ai/utils/oauth/github-copilot.d.ts +1 -0
  226. package/dist/ai/utils/oauth/github-copilot.d.ts.map +1 -1
  227. package/dist/ai/utils/oauth/github-copilot.js +3 -0
  228. package/dist/ai/utils/oauth/github-copilot.js.map +1 -1
  229. package/dist/ai/utils/oauth/index.d.ts +2 -1
  230. package/dist/ai/utils/oauth/index.d.ts.map +1 -1
  231. package/dist/ai/utils/oauth/index.js +10 -0
  232. package/dist/ai/utils/oauth/index.js.map +1 -1
  233. package/dist/ai/utils/oauth/kimi.d.ts +1 -0
  234. package/dist/ai/utils/oauth/kimi.d.ts.map +1 -1
  235. package/dist/ai/utils/oauth/kimi.js +3 -0
  236. package/dist/ai/utils/oauth/kimi.js.map +1 -1
  237. package/dist/ai/utils/oauth/openai-codex.d.ts +1 -0
  238. package/dist/ai/utils/oauth/openai-codex.d.ts.map +1 -1
  239. package/dist/ai/utils/oauth/openai-codex.js +3 -0
  240. package/dist/ai/utils/oauth/openai-codex.js.map +1 -1
  241. package/dist/ai/utils/oauth/pkce.d.ts +1 -0
  242. package/dist/ai/utils/oauth/pkce.d.ts.map +1 -1
  243. package/dist/ai/utils/oauth/pkce.js +5 -0
  244. package/dist/ai/utils/oauth/pkce.js.map +1 -1
  245. package/dist/ai/utils/oauth/types.d.ts +6 -0
  246. package/dist/ai/utils/oauth/types.d.ts.map +1 -1
  247. package/dist/ai/utils/output-factory.d.ts +3 -0
  248. package/dist/ai/utils/output-factory.d.ts.map +1 -0
  249. package/dist/ai/utils/output-factory.js +23 -0
  250. package/dist/ai/utils/output-factory.js.map +1 -0
  251. package/dist/ai/utils/overflow.d.ts +6 -47
  252. package/dist/ai/utils/overflow.d.ts.map +1 -1
  253. package/dist/ai/utils/overflow.js +28 -92
  254. package/dist/ai/utils/overflow.js.map +1 -1
  255. package/dist/ai/utils/provider-adapter.d.ts +57 -0
  256. package/dist/ai/utils/provider-adapter.d.ts.map +1 -0
  257. package/dist/ai/utils/provider-adapter.js +28 -0
  258. package/dist/ai/utils/provider-adapter.js.map +1 -0
  259. package/dist/ai/utils/provider-client-builder.d.ts +37 -0
  260. package/dist/ai/utils/provider-client-builder.d.ts.map +1 -0
  261. package/dist/ai/utils/provider-client-builder.js +50 -0
  262. package/dist/ai/utils/provider-client-builder.js.map +1 -0
  263. package/dist/ai/utils/provider-consolidation.d.ts +4 -0
  264. package/dist/ai/utils/provider-consolidation.d.ts.map +1 -0
  265. package/dist/ai/utils/provider-consolidation.js +33 -0
  266. package/dist/ai/utils/provider-consolidation.js.map +1 -0
  267. package/dist/ai/utils/provider-constants.d.ts +35 -0
  268. package/dist/ai/utils/provider-constants.d.ts.map +1 -0
  269. package/dist/ai/utils/provider-constants.js +35 -0
  270. package/dist/ai/utils/provider-constants.js.map +1 -0
  271. package/dist/ai/utils/provider-errors.d.ts +46 -0
  272. package/dist/ai/utils/provider-errors.d.ts.map +1 -0
  273. package/dist/ai/utils/provider-errors.js +101 -0
  274. package/dist/ai/utils/provider-errors.js.map +1 -0
  275. package/dist/ai/utils/sanitize-unicode.d.ts +1 -0
  276. package/dist/ai/utils/sanitize-unicode.d.ts.map +1 -1
  277. package/dist/ai/utils/sanitize-unicode.js +16 -0
  278. package/dist/ai/utils/sanitize-unicode.js.map +1 -1
  279. package/dist/ai/utils/stream-event-helper.d.ts +28 -0
  280. package/dist/ai/utils/stream-event-helper.d.ts.map +1 -0
  281. package/dist/ai/utils/stream-event-helper.js +49 -0
  282. package/dist/ai/utils/stream-event-helper.js.map +1 -0
  283. package/dist/ai/utils/stream-handler-types.d.ts +43 -0
  284. package/dist/ai/utils/stream-handler-types.d.ts.map +1 -0
  285. package/dist/ai/utils/stream-handler-types.js +18 -0
  286. package/dist/ai/utils/stream-handler-types.js.map +1 -0
  287. package/dist/ai/utils/streaming-state-manager.d.ts +50 -0
  288. package/dist/ai/utils/streaming-state-manager.d.ts.map +1 -0
  289. package/dist/ai/utils/streaming-state-manager.js +65 -0
  290. package/dist/ai/utils/streaming-state-manager.js.map +1 -0
  291. package/dist/ai/utils/tool-converter.d.ts +50 -0
  292. package/dist/ai/utils/tool-converter.d.ts.map +1 -0
  293. package/dist/ai/utils/tool-converter.js +54 -0
  294. package/dist/ai/utils/tool-converter.js.map +1 -0
  295. package/dist/ai/utils/typebox-helpers.d.ts +6 -1
  296. package/dist/ai/utils/typebox-helpers.d.ts.map +1 -1
  297. package/dist/ai/utils/typebox-helpers.js +7 -0
  298. package/dist/ai/utils/typebox-helpers.js.map +1 -1
  299. package/dist/ai/utils/validation.d.ts +6 -0
  300. package/dist/ai/utils/validation.d.ts.map +1 -1
  301. package/dist/ai/utils/validation.js +23 -9
  302. package/dist/ai/utils/validation.js.map +1 -1
  303. package/dist/index.d.ts +0 -1
  304. package/dist/index.d.ts.map +1 -1
  305. package/dist/index.js +0 -1
  306. package/dist/index.js.map +1 -1
  307. package/dist/tui/autocomplete.d.ts +17 -0
  308. package/dist/tui/autocomplete.d.ts.map +1 -1
  309. package/dist/tui/autocomplete.js +33 -3
  310. package/dist/tui/autocomplete.js.map +1 -1
  311. package/dist/tui/components/box.d.ts +2 -2
  312. package/dist/tui/components/box.d.ts.map +1 -1
  313. package/dist/tui/components/box.js +7 -5
  314. package/dist/tui/components/box.js.map +1 -1
  315. package/dist/tui/components/cancellable-loader.d.ts +1 -0
  316. package/dist/tui/components/cancellable-loader.d.ts.map +1 -1
  317. package/dist/tui/components/cancellable-loader.js +4 -0
  318. package/dist/tui/components/cancellable-loader.js.map +1 -1
  319. package/dist/tui/components/editor.d.ts +2 -2
  320. package/dist/tui/components/editor.d.ts.map +1 -1
  321. package/dist/tui/components/editor.js +6 -3
  322. package/dist/tui/components/editor.js.map +1 -1
  323. package/dist/tui/components/image.d.ts +2 -2
  324. package/dist/tui/components/image.d.ts.map +1 -1
  325. package/dist/tui/components/image.js +35 -33
  326. package/dist/tui/components/image.js.map +1 -1
  327. package/dist/tui/components/input.d.ts +2 -2
  328. package/dist/tui/components/input.d.ts.map +1 -1
  329. package/dist/tui/components/input.js +6 -3
  330. package/dist/tui/components/input.js.map +1 -1
  331. package/dist/tui/components/loader.d.ts +2 -0
  332. package/dist/tui/components/loader.d.ts.map +1 -1
  333. package/dist/tui/components/loader.js +8 -0
  334. package/dist/tui/components/loader.js.map +1 -1
  335. package/dist/tui/components/markdown.d.ts +2 -2
  336. package/dist/tui/components/markdown.d.ts.map +1 -1
  337. package/dist/tui/components/markdown.js +61 -57
  338. package/dist/tui/components/markdown.js.map +1 -1
  339. package/dist/tui/components/select-list.d.ts +2 -2
  340. package/dist/tui/components/select-list.d.ts.map +1 -1
  341. package/dist/tui/components/select-list.js +79 -71
  342. package/dist/tui/components/select-list.js.map +1 -1
  343. package/dist/tui/components/settings-list.d.ts +2 -2
  344. package/dist/tui/components/settings-list.d.ts.map +1 -1
  345. package/dist/tui/components/settings-list.js +12 -1
  346. package/dist/tui/components/settings-list.js.map +1 -1
  347. package/dist/tui/components/spacer.d.ts +3 -3
  348. package/dist/tui/components/spacer.d.ts.map +1 -1
  349. package/dist/tui/components/spacer.js +13 -8
  350. package/dist/tui/components/spacer.js.map +1 -1
  351. package/dist/tui/components/text-renderer.d.ts +7 -0
  352. package/dist/tui/components/text-renderer.d.ts.map +1 -0
  353. package/dist/tui/components/text-renderer.js +25 -0
  354. package/dist/tui/components/text-renderer.js.map +1 -0
  355. package/dist/tui/components/text.d.ts +2 -4
  356. package/dist/tui/components/text.d.ts.map +1 -1
  357. package/dist/tui/components/text.js +35 -54
  358. package/dist/tui/components/text.js.map +1 -1
  359. package/dist/tui/components/truncated-text.d.ts +2 -2
  360. package/dist/tui/components/truncated-text.d.ts.map +1 -1
  361. package/dist/tui/components/truncated-text.js +7 -4
  362. package/dist/tui/components/truncated-text.js.map +1 -1
  363. package/dist/tui/editor-component.d.ts +2 -0
  364. package/dist/tui/editor-component.d.ts.map +1 -1
  365. package/dist/tui/fuzzy.d.ts +10 -0
  366. package/dist/tui/fuzzy.d.ts.map +1 -1
  367. package/dist/tui/fuzzy.js +75 -56
  368. package/dist/tui/fuzzy.js.map +1 -1
  369. package/dist/tui/keybindings.d.ts +16 -3
  370. package/dist/tui/keybindings.d.ts.map +1 -1
  371. package/dist/tui/keybindings.js +68 -12
  372. package/dist/tui/keybindings.js.map +1 -1
  373. package/dist/tui/keys.d.ts +5 -0
  374. package/dist/tui/keys.d.ts.map +1 -1
  375. package/dist/tui/keys.js +72 -1
  376. package/dist/tui/keys.js.map +1 -1
  377. package/dist/tui/stdin-buffer.d.ts +5 -0
  378. package/dist/tui/stdin-buffer.d.ts.map +1 -1
  379. package/dist/tui/stdin-buffer.js +20 -7
  380. package/dist/tui/stdin-buffer.js.map +1 -1
  381. package/dist/tui/terminal-image.d.ts.map +1 -1
  382. package/dist/tui/terminal-image.js +17 -6
  383. package/dist/tui/terminal-image.js.map +1 -1
  384. package/dist/tui/terminal.d.ts +15 -0
  385. package/dist/tui/terminal.d.ts.map +1 -1
  386. package/dist/tui/terminal.js +39 -6
  387. package/dist/tui/terminal.js.map +1 -1
  388. package/dist/tui/tui.d.ts +50 -4
  389. package/dist/tui/tui.d.ts.map +1 -1
  390. package/dist/tui/tui.js +201 -186
  391. package/dist/tui/tui.js.map +1 -1
  392. package/dist/tui/utils.d.ts +19 -0
  393. package/dist/tui/utils.d.ts.map +1 -1
  394. package/dist/tui/utils.js +39 -0
  395. package/dist/tui/utils.js.map +1 -1
  396. package/package.json +7 -9
  397. package/dist/webui/ChatPanel.d.ts +0 -28
  398. package/dist/webui/ChatPanel.d.ts.map +0 -1
  399. package/dist/webui/ChatPanel.js +0 -193
  400. package/dist/webui/ChatPanel.js.map +0 -1
  401. package/dist/webui/components/AgentInterface.d.ts +0 -39
  402. package/dist/webui/components/AgentInterface.d.ts.map +0 -1
  403. package/dist/webui/components/AgentInterface.js +0 -371
  404. package/dist/webui/components/AgentInterface.js.map +0 -1
  405. package/dist/webui/components/AttachmentTile.d.ts +0 -12
  406. package/dist/webui/components/AttachmentTile.d.ts.map +0 -1
  407. package/dist/webui/components/AttachmentTile.js +0 -111
  408. package/dist/webui/components/AttachmentTile.js.map +0 -1
  409. package/dist/webui/components/ConsoleBlock.d.ts +0 -12
  410. package/dist/webui/components/ConsoleBlock.d.ts.map +0 -1
  411. package/dist/webui/components/ConsoleBlock.js +0 -84
  412. package/dist/webui/components/ConsoleBlock.js.map +0 -1
  413. package/dist/webui/components/CustomProviderCard.d.ts +0 -17
  414. package/dist/webui/components/CustomProviderCard.d.ts.map +0 -1
  415. package/dist/webui/components/CustomProviderCard.js +0 -110
  416. package/dist/webui/components/CustomProviderCard.js.map +0 -1
  417. package/dist/webui/components/ExpandableSection.d.ts +0 -15
  418. package/dist/webui/components/ExpandableSection.d.ts.map +0 -1
  419. package/dist/webui/components/ExpandableSection.js +0 -63
  420. package/dist/webui/components/ExpandableSection.js.map +0 -1
  421. package/dist/webui/components/Input.d.ts +0 -26
  422. package/dist/webui/components/Input.d.ts.map +0 -1
  423. package/dist/webui/components/Input.js +0 -57
  424. package/dist/webui/components/Input.js.map +0 -1
  425. package/dist/webui/components/MessageEditor.d.ts +0 -44
  426. package/dist/webui/components/MessageEditor.d.ts.map +0 -1
  427. package/dist/webui/components/MessageEditor.js +0 -414
  428. package/dist/webui/components/MessageEditor.js.map +0 -1
  429. package/dist/webui/components/MessageList.d.ts +0 -14
  430. package/dist/webui/components/MessageList.d.ts.map +0 -1
  431. package/dist/webui/components/MessageList.js +0 -104
  432. package/dist/webui/components/MessageList.js.map +0 -1
  433. package/dist/webui/components/Messages.d.ts +0 -94
  434. package/dist/webui/components/Messages.d.ts.map +0 -1
  435. package/dist/webui/components/Messages.js +0 -352
  436. package/dist/webui/components/Messages.js.map +0 -1
  437. package/dist/webui/components/ProviderKeyInput.d.ts +0 -16
  438. package/dist/webui/components/ProviderKeyInput.d.ts.map +0 -1
  439. package/dist/webui/components/ProviderKeyInput.js +0 -171
  440. package/dist/webui/components/ProviderKeyInput.js.map +0 -1
  441. package/dist/webui/components/SandboxedIframe.d.ts +0 -85
  442. package/dist/webui/components/SandboxedIframe.d.ts.map +0 -1
  443. package/dist/webui/components/SandboxedIframe.js +0 -511
  444. package/dist/webui/components/SandboxedIframe.js.map +0 -1
  445. package/dist/webui/components/StreamingMessageContainer.d.ts +0 -19
  446. package/dist/webui/components/StreamingMessageContainer.d.ts.map +0 -1
  447. package/dist/webui/components/StreamingMessageContainer.js +0 -117
  448. package/dist/webui/components/StreamingMessageContainer.js.map +0 -1
  449. package/dist/webui/components/ThinkingBlock.d.ts +0 -11
  450. package/dist/webui/components/ThinkingBlock.d.ts.map +0 -1
  451. package/dist/webui/components/ThinkingBlock.js +0 -58
  452. package/dist/webui/components/ThinkingBlock.js.map +0 -1
  453. package/dist/webui/components/message-renderer-registry.d.ts +0 -12
  454. package/dist/webui/components/message-renderer-registry.d.ts.map +0 -1
  455. package/dist/webui/components/message-renderer-registry.js +0 -12
  456. package/dist/webui/components/message-renderer-registry.js.map +0 -1
  457. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.d.ts +0 -35
  458. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.d.ts.map +0 -1
  459. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.js +0 -189
  460. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.js.map +0 -1
  461. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.d.ts +0 -17
  462. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.d.ts.map +0 -1
  463. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.js +0 -64
  464. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.js.map +0 -1
  465. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.d.ts +0 -42
  466. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.d.ts.map +0 -1
  467. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.js +0 -161
  468. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.js.map +0 -1
  469. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.d.ts +0 -30
  470. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.d.ts.map +0 -1
  471. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.js +0 -97
  472. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.js.map +0 -1
  473. package/dist/webui/components/sandbox/RuntimeMessageBridge.d.ts +0 -19
  474. package/dist/webui/components/sandbox/RuntimeMessageBridge.d.ts.map +0 -1
  475. package/dist/webui/components/sandbox/RuntimeMessageBridge.js +0 -74
  476. package/dist/webui/components/sandbox/RuntimeMessageBridge.js.map +0 -1
  477. package/dist/webui/components/sandbox/RuntimeMessageRouter.d.ts +0 -65
  478. package/dist/webui/components/sandbox/RuntimeMessageRouter.d.ts.map +0 -1
  479. package/dist/webui/components/sandbox/RuntimeMessageRouter.js +0 -168
  480. package/dist/webui/components/sandbox/RuntimeMessageRouter.js.map +0 -1
  481. package/dist/webui/components/sandbox/SandboxRuntimeProvider.d.ts +0 -48
  482. package/dist/webui/components/sandbox/SandboxRuntimeProvider.d.ts.map +0 -1
  483. package/dist/webui/components/sandbox/SandboxRuntimeProvider.js +0 -2
  484. package/dist/webui/components/sandbox/SandboxRuntimeProvider.js.map +0 -1
  485. package/dist/webui/dialogs/ApiKeyPromptDialog.d.ts +0 -15
  486. package/dist/webui/dialogs/ApiKeyPromptDialog.d.ts.map +0 -1
  487. package/dist/webui/dialogs/ApiKeyPromptDialog.js +0 -79
  488. package/dist/webui/dialogs/ApiKeyPromptDialog.js.map +0 -1
  489. package/dist/webui/dialogs/AttachmentOverlay.d.ts +0 -32
  490. package/dist/webui/dialogs/AttachmentOverlay.d.ts.map +0 -1
  491. package/dist/webui/dialogs/AttachmentOverlay.js +0 -576
  492. package/dist/webui/dialogs/AttachmentOverlay.js.map +0 -1
  493. package/dist/webui/dialogs/CustomProviderDialog.d.ts +0 -25
  494. package/dist/webui/dialogs/CustomProviderDialog.d.ts.map +0 -1
  495. package/dist/webui/dialogs/CustomProviderDialog.js +0 -270
  496. package/dist/webui/dialogs/CustomProviderDialog.js.map +0 -1
  497. package/dist/webui/dialogs/ModelSelector.d.ts +0 -27
  498. package/dist/webui/dialogs/ModelSelector.d.ts.map +0 -1
  499. package/dist/webui/dialogs/ModelSelector.js +0 -320
  500. package/dist/webui/dialogs/ModelSelector.js.map +0 -1
  501. package/dist/webui/dialogs/PersistentStorageDialog.d.ts +0 -17
  502. package/dist/webui/dialogs/PersistentStorageDialog.d.ts.map +0 -1
  503. package/dist/webui/dialogs/PersistentStorageDialog.js +0 -147
  504. package/dist/webui/dialogs/PersistentStorageDialog.js.map +0 -1
  505. package/dist/webui/dialogs/ProvidersModelsTab.d.ts +0 -20
  506. package/dist/webui/dialogs/ProvidersModelsTab.d.ts.map +0 -1
  507. package/dist/webui/dialogs/ProvidersModelsTab.js +0 -191
  508. package/dist/webui/dialogs/ProvidersModelsTab.js.map +0 -1
  509. package/dist/webui/dialogs/SessionListDialog.d.ts +0 -19
  510. package/dist/webui/dialogs/SessionListDialog.d.ts.map +0 -1
  511. package/dist/webui/dialogs/SessionListDialog.js +0 -154
  512. package/dist/webui/dialogs/SessionListDialog.js.map +0 -1
  513. package/dist/webui/dialogs/SettingsDialog.d.ts +0 -30
  514. package/dist/webui/dialogs/SettingsDialog.d.ts.map +0 -1
  515. package/dist/webui/dialogs/SettingsDialog.js +0 -229
  516. package/dist/webui/dialogs/SettingsDialog.js.map +0 -1
  517. package/dist/webui/index.d.ts +0 -65
  518. package/dist/webui/index.d.ts.map +0 -1
  519. package/dist/webui/index.js +0 -68
  520. package/dist/webui/index.js.map +0 -1
  521. package/dist/webui/prompts/prompts.d.ts +0 -11
  522. package/dist/webui/prompts/prompts.d.ts.map +0 -1
  523. package/dist/webui/prompts/prompts.js +0 -272
  524. package/dist/webui/prompts/prompts.js.map +0 -1
  525. package/dist/webui/storage/app-storage.d.ts +0 -33
  526. package/dist/webui/storage/app-storage.d.ts.map +0 -1
  527. package/dist/webui/storage/app-storage.js +0 -38
  528. package/dist/webui/storage/app-storage.js.map +0 -1
  529. package/dist/webui/storage/backends/indexeddb-storage-backend.d.ts +0 -27
  530. package/dist/webui/storage/backends/indexeddb-storage-backend.d.ts.map +0 -1
  531. package/dist/webui/storage/backends/indexeddb-storage-backend.js +0 -166
  532. package/dist/webui/storage/backends/indexeddb-storage-backend.js.map +0 -1
  533. package/dist/webui/storage/store.d.ts +0 -23
  534. package/dist/webui/storage/store.d.ts.map +0 -1
  535. package/dist/webui/storage/store.js +0 -26
  536. package/dist/webui/storage/store.js.map +0 -1
  537. package/dist/webui/storage/stores/custom-providers-store.d.ts +0 -25
  538. package/dist/webui/storage/stores/custom-providers-store.d.ts.map +0 -1
  539. package/dist/webui/storage/stores/custom-providers-store.js +0 -35
  540. package/dist/webui/storage/stores/custom-providers-store.js.map +0 -1
  541. package/dist/webui/storage/stores/provider-keys-store.d.ts +0 -14
  542. package/dist/webui/storage/stores/provider-keys-store.d.ts.map +0 -1
  543. package/dist/webui/storage/stores/provider-keys-store.js +0 -27
  544. package/dist/webui/storage/stores/provider-keys-store.js.map +0 -1
  545. package/dist/webui/storage/stores/sessions-store.d.ts +0 -32
  546. package/dist/webui/storage/stores/sessions-store.d.ts.map +0 -1
  547. package/dist/webui/storage/stores/sessions-store.js +0 -113
  548. package/dist/webui/storage/stores/sessions-store.js.map +0 -1
  549. package/dist/webui/storage/stores/settings-store.d.ts +0 -14
  550. package/dist/webui/storage/stores/settings-store.d.ts.map +0 -1
  551. package/dist/webui/storage/stores/settings-store.js +0 -28
  552. package/dist/webui/storage/stores/settings-store.js.map +0 -1
  553. package/dist/webui/storage/types.d.ts +0 -176
  554. package/dist/webui/storage/types.d.ts.map +0 -1
  555. package/dist/webui/storage/types.js +0 -2
  556. package/dist/webui/storage/types.js.map +0 -1
  557. package/dist/webui/tools/artifacts/ArtifactElement.d.ts +0 -9
  558. package/dist/webui/tools/artifacts/ArtifactElement.d.ts.map +0 -1
  559. package/dist/webui/tools/artifacts/ArtifactElement.js +0 -11
  560. package/dist/webui/tools/artifacts/ArtifactElement.js.map +0 -1
  561. package/dist/webui/tools/artifacts/ArtifactPill.d.ts +0 -4
  562. package/dist/webui/tools/artifacts/ArtifactPill.d.ts.map +0 -1
  563. package/dist/webui/tools/artifacts/ArtifactPill.js +0 -23
  564. package/dist/webui/tools/artifacts/ArtifactPill.js.map +0 -1
  565. package/dist/webui/tools/artifacts/Console.d.ts +0 -18
  566. package/dist/webui/tools/artifacts/Console.d.ts.map +0 -1
  567. package/dist/webui/tools/artifacts/Console.js +0 -95
  568. package/dist/webui/tools/artifacts/Console.js.map +0 -1
  569. package/dist/webui/tools/artifacts/DocxArtifact.d.ts +0 -22
  570. package/dist/webui/tools/artifacts/DocxArtifact.d.ts.map +0 -1
  571. package/dist/webui/tools/artifacts/DocxArtifact.js +0 -208
  572. package/dist/webui/tools/artifacts/DocxArtifact.js.map +0 -1
  573. package/dist/webui/tools/artifacts/ExcelArtifact.d.ts +0 -24
  574. package/dist/webui/tools/artifacts/ExcelArtifact.d.ts.map +0 -1
  575. package/dist/webui/tools/artifacts/ExcelArtifact.js +0 -216
  576. package/dist/webui/tools/artifacts/ExcelArtifact.js.map +0 -1
  577. package/dist/webui/tools/artifacts/GenericArtifact.d.ts +0 -19
  578. package/dist/webui/tools/artifacts/GenericArtifact.d.ts.map +0 -1
  579. package/dist/webui/tools/artifacts/GenericArtifact.js +0 -117
  580. package/dist/webui/tools/artifacts/GenericArtifact.js.map +0 -1
  581. package/dist/webui/tools/artifacts/HtmlArtifact.d.ts +0 -27
  582. package/dist/webui/tools/artifacts/HtmlArtifact.d.ts.map +0 -1
  583. package/dist/webui/tools/artifacts/HtmlArtifact.js +0 -189
  584. package/dist/webui/tools/artifacts/HtmlArtifact.js.map +0 -1
  585. package/dist/webui/tools/artifacts/ImageArtifact.d.ts +0 -20
  586. package/dist/webui/tools/artifacts/ImageArtifact.d.ts.map +0 -1
  587. package/dist/webui/tools/artifacts/ImageArtifact.js +0 -120
  588. package/dist/webui/tools/artifacts/ImageArtifact.js.map +0 -1
  589. package/dist/webui/tools/artifacts/MarkdownArtifact.d.ts +0 -19
  590. package/dist/webui/tools/artifacts/MarkdownArtifact.d.ts.map +0 -1
  591. package/dist/webui/tools/artifacts/MarkdownArtifact.js +0 -82
  592. package/dist/webui/tools/artifacts/MarkdownArtifact.js.map +0 -1
  593. package/dist/webui/tools/artifacts/PdfArtifact.d.ts +0 -25
  594. package/dist/webui/tools/artifacts/PdfArtifact.d.ts.map +0 -1
  595. package/dist/webui/tools/artifacts/PdfArtifact.js +0 -184
  596. package/dist/webui/tools/artifacts/PdfArtifact.js.map +0 -1
  597. package/dist/webui/tools/artifacts/SvgArtifact.d.ts +0 -18
  598. package/dist/webui/tools/artifacts/SvgArtifact.d.ts.map +0 -1
  599. package/dist/webui/tools/artifacts/SvgArtifact.js +0 -78
  600. package/dist/webui/tools/artifacts/SvgArtifact.js.map +0 -1
  601. package/dist/webui/tools/artifacts/TextArtifact.d.ts +0 -19
  602. package/dist/webui/tools/artifacts/TextArtifact.d.ts.map +0 -1
  603. package/dist/webui/tools/artifacts/TextArtifact.js +0 -144
  604. package/dist/webui/tools/artifacts/TextArtifact.js.map +0 -1
  605. package/dist/webui/tools/artifacts/artifacts-tool-renderer.d.ts +0 -11
  606. package/dist/webui/tools/artifacts/artifacts-tool-renderer.d.ts.map +0 -1
  607. package/dist/webui/tools/artifacts/artifacts-tool-renderer.js +0 -272
  608. package/dist/webui/tools/artifacts/artifacts-tool-renderer.js.map +0 -1
  609. package/dist/webui/tools/artifacts/artifacts.d.ts +0 -63
  610. package/dist/webui/tools/artifacts/artifacts.d.ts.map +0 -1
  611. package/dist/webui/tools/artifacts/artifacts.js +0 -659
  612. package/dist/webui/tools/artifacts/artifacts.js.map +0 -1
  613. package/dist/webui/tools/artifacts/index.d.ts +0 -8
  614. package/dist/webui/tools/artifacts/index.d.ts.map +0 -1
  615. package/dist/webui/tools/artifacts/index.js +0 -8
  616. package/dist/webui/tools/artifacts/index.js.map +0 -1
  617. package/dist/webui/tools/extract-document.d.ts +0 -24
  618. package/dist/webui/tools/extract-document.d.ts.map +0 -1
  619. package/dist/webui/tools/extract-document.js +0 -216
  620. package/dist/webui/tools/extract-document.js.map +0 -1
  621. package/dist/webui/tools/index.d.ts +0 -16
  622. package/dist/webui/tools/index.d.ts.map +0 -1
  623. package/dist/webui/tools/index.js +0 -33
  624. package/dist/webui/tools/index.js.map +0 -1
  625. package/dist/webui/tools/javascript-repl.d.ts +0 -44
  626. package/dist/webui/tools/javascript-repl.d.ts.map +0 -1
  627. package/dist/webui/tools/javascript-repl.js +0 -224
  628. package/dist/webui/tools/javascript-repl.js.map +0 -1
  629. package/dist/webui/tools/renderer-registry.d.ts +0 -23
  630. package/dist/webui/tools/renderer-registry.d.ts.map +0 -1
  631. package/dist/webui/tools/renderer-registry.js +0 -107
  632. package/dist/webui/tools/renderer-registry.js.map +0 -1
  633. package/dist/webui/tools/renderers/BashRenderer.d.ts +0 -10
  634. package/dist/webui/tools/renderers/BashRenderer.d.ts.map +0 -1
  635. package/dist/webui/tools/renderers/BashRenderer.js +0 -42
  636. package/dist/webui/tools/renderers/BashRenderer.js.map +0 -1
  637. package/dist/webui/tools/renderers/CalculateRenderer.d.ts +0 -10
  638. package/dist/webui/tools/renderers/CalculateRenderer.d.ts.map +0 -1
  639. package/dist/webui/tools/renderers/CalculateRenderer.js +0 -45
  640. package/dist/webui/tools/renderers/CalculateRenderer.js.map +0 -1
  641. package/dist/webui/tools/renderers/DefaultRenderer.d.ts +0 -6
  642. package/dist/webui/tools/renderers/DefaultRenderer.d.ts.map +0 -1
  643. package/dist/webui/tools/renderers/DefaultRenderer.js +0 -94
  644. package/dist/webui/tools/renderers/DefaultRenderer.js.map +0 -1
  645. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.d.ts +0 -10
  646. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.d.ts.map +0 -1
  647. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.js +0 -72
  648. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.js.map +0 -1
  649. package/dist/webui/tools/types.d.ts +0 -10
  650. package/dist/webui/tools/types.d.ts.map +0 -1
  651. package/dist/webui/tools/types.js +0 -2
  652. package/dist/webui/tools/types.js.map +0 -1
  653. package/dist/webui/utils/attachment-utils.d.ts +0 -19
  654. package/dist/webui/utils/attachment-utils.d.ts.map +0 -1
  655. package/dist/webui/utils/attachment-utils.js +0 -415
  656. package/dist/webui/utils/attachment-utils.js.map +0 -1
  657. package/dist/webui/utils/auth-token.d.ts +0 -3
  658. package/dist/webui/utils/auth-token.d.ts.map +0 -1
  659. package/dist/webui/utils/auth-token.js +0 -19
  660. package/dist/webui/utils/auth-token.js.map +0 -1
  661. package/dist/webui/utils/format.d.ts +0 -6
  662. package/dist/webui/utils/format.d.ts.map +0 -1
  663. package/dist/webui/utils/format.js +0 -47
  664. package/dist/webui/utils/format.js.map +0 -1
  665. package/dist/webui/utils/i18n.d.ts +0 -636
  666. package/dist/webui/utils/i18n.d.ts.map +0 -1
  667. package/dist/webui/utils/i18n.js +0 -418
  668. package/dist/webui/utils/i18n.js.map +0 -1
  669. package/dist/webui/utils/model-discovery.d.ts +0 -38
  670. package/dist/webui/utils/model-discovery.d.ts.map +0 -1
  671. package/dist/webui/utils/model-discovery.js +0 -243
  672. package/dist/webui/utils/model-discovery.js.map +0 -1
  673. package/dist/webui/utils/proxy-utils.d.ts +0 -45
  674. package/dist/webui/utils/proxy-utils.d.ts.map +0 -1
  675. package/dist/webui/utils/proxy-utils.js +0 -116
  676. package/dist/webui/utils/proxy-utils.js.map +0 -1
  677. package/dist/webui/utils/test-sessions.d.ts +0 -359
  678. package/dist/webui/utils/test-sessions.d.ts.map +0 -1
  679. package/dist/webui/utils/test-sessions.js +0 -2325
  680. package/dist/webui/utils/test-sessions.js.map +0 -1
  681. package/dist/webui.d.ts +0 -2
  682. package/dist/webui.d.ts.map +0 -1
  683. package/dist/webui.js +0 -2
  684. package/dist/webui.js.map +0 -1
@@ -1,9 +1,11 @@
1
1
  import { fuzzyFilter } from "../fuzzy.js";
2
2
  import { getEditorKeybindings } from "../keybindings.js";
3
+ import { ComponentBase } from "../tui.js";
3
4
  import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from "../utils.js";
4
5
  import { Input } from "./input.js";
5
- export class SettingsList {
6
+ export class SettingsList extends ComponentBase {
6
7
  constructor(items, maxVisible, theme, onChange, onCancel, options = {}) {
8
+ super();
7
9
  this.selectedIndex = 0;
8
10
  // Submenu state
9
11
  this.submenuComponent = null;
@@ -24,9 +26,11 @@ export class SettingsList {
24
26
  const item = this.items.find((i) => i.id === id);
25
27
  if (item) {
26
28
  item.currentValue = newValue;
29
+ this.invalidate();
27
30
  }
28
31
  }
29
32
  invalidate() {
33
+ super.invalidate();
30
34
  this.submenuComponent?.invalidate?.();
31
35
  }
32
36
  render(width) {
@@ -110,11 +114,13 @@ export class SettingsList {
110
114
  if (displayItems.length === 0)
111
115
  return;
112
116
  this.selectedIndex = this.selectedIndex === 0 ? displayItems.length - 1 : this.selectedIndex - 1;
117
+ this.invalidate();
113
118
  }
114
119
  else if (kb.matches(data, "selectDown")) {
115
120
  if (displayItems.length === 0)
116
121
  return;
117
122
  this.selectedIndex = this.selectedIndex === displayItems.length - 1 ? 0 : this.selectedIndex + 1;
123
+ this.invalidate();
118
124
  }
119
125
  else if (kb.matches(data, "selectConfirm") || data === " ") {
120
126
  this.activateItem();
@@ -129,6 +135,7 @@ export class SettingsList {
129
135
  }
130
136
  this.searchInput.handleInput(sanitized);
131
137
  this.applyFilter(this.searchInput.getValue());
138
+ this.invalidate();
132
139
  }
133
140
  }
134
141
  activateItem() {
@@ -145,6 +152,7 @@ export class SettingsList {
145
152
  }
146
153
  this.closeSubmenu();
147
154
  });
155
+ this.invalidate();
148
156
  }
149
157
  else if (item.values && item.values.length > 0) {
150
158
  // Cycle through values
@@ -153,6 +161,7 @@ export class SettingsList {
153
161
  const newValue = item.values[nextIndex];
154
162
  item.currentValue = newValue;
155
163
  this.onChange(item.id, newValue);
164
+ this.invalidate();
156
165
  }
157
166
  }
158
167
  closeSubmenu() {
@@ -162,10 +171,12 @@ export class SettingsList {
162
171
  this.selectedIndex = this.submenuItemIndex;
163
172
  this.submenuItemIndex = null;
164
173
  }
174
+ this.invalidate();
165
175
  }
166
176
  applyFilter(query) {
167
177
  this.filteredItems = fuzzyFilter(this.items, query, (item) => item.label);
168
178
  this.selectedIndex = 0;
179
+ this.invalidate();
169
180
  }
170
181
  addHintLine(lines) {
171
182
  lines.push("");
@@ -1 +1 @@
1
- {"version":3,"file":"settings-list.js","sourceRoot":"","sources":["../../../src/tui/components/settings-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-list.js","sourceRoot":"","sources":["../../../src/tui/components/settings-list.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import type { Component } from "../tui.js";
1
+ import { ComponentBase } from "../tui.js";
2
2
  /**
3
3
  * Spacer component that renders empty lines
4
4
  */
5
- export declare class Spacer implements Component {
5
+ export declare class Spacer extends ComponentBase {
6
6
  private lines;
7
7
  constructor(lines?: number);
8
8
  setLines(lines: number): void;
9
9
  invalidate(): void;
10
- render(_width: number): string[];
10
+ render(width: number): string[];
11
11
  }
12
12
  //# sourceMappingURL=spacer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spacer.d.ts","sourceRoot":"","sources":["../../../src/tui/components/spacer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,qBAAa,MAAO,YAAW,SAAS;IACvC,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,GAAE,MAAU;IAI7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,UAAU,IAAI,IAAI;IAIlB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;CAOhC"}
1
+ {"version":3,"file":"spacer.d.ts","sourceRoot":"","sources":["../../../src/tui/components/spacer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;GAEG;AACH,qBAAa,MAAO,SAAQ,aAAa;IACxC,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,GAAE,MAAU;IAK7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpB,UAAU,IAAI,IAAI;IAI3B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAS/B"}
@@ -1,22 +1,27 @@
1
+ import { ComponentBase } from "../tui.js";
1
2
  /**
2
3
  * Spacer component that renders empty lines
3
4
  */
4
- export class Spacer {
5
+ export class Spacer extends ComponentBase {
5
6
  constructor(lines = 1) {
7
+ super();
6
8
  this.lines = lines;
7
9
  }
8
10
  setLines(lines) {
9
11
  this.lines = lines;
12
+ this.invalidate();
10
13
  }
11
14
  invalidate() {
12
- // No cached state to invalidate currently
15
+ super.invalidate();
13
16
  }
14
- render(_width) {
15
- const result = [];
16
- for (let i = 0; i < this.lines; i++) {
17
- result.push("");
18
- }
19
- return result;
17
+ render(width) {
18
+ return this.renderCached(width, () => {
19
+ const result = [];
20
+ for (let i = 0; i < this.lines; i++) {
21
+ result.push("");
22
+ }
23
+ return result;
24
+ });
20
25
  }
21
26
  }
22
27
  //# sourceMappingURL=spacer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spacer.js","sourceRoot":"","sources":["../../../src/tui/components/spacer.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,MAAM;IAGlB,YAAY,QAAgB,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,KAAa;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,UAAU;QACT,0CAA0C;IAC3C,CAAC;IAED,MAAM,CAAC,MAAc;QACpB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;CACD"}
1
+ {"version":3,"file":"spacer.js","sourceRoot":"","sources":["../../../src/tui/components/spacer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;GAEG;AACH,MAAM,OAAO,MAAO,SAAQ,aAAa;IAGxC,YAAY,QAAgB,CAAC;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,KAAa;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAEQ,UAAU;QAClB,KAAK,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE;YACpC,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -0,0 +1,7 @@
1
+ export declare class TextRenderer {
2
+ padToWidth(line: string, width: number): string;
3
+ clipWithIndicator(line: string, width: number, indicator?: string): string;
4
+ wrap(text: string, width: number): string[];
5
+ }
6
+ export declare const textRenderer: TextRenderer;
7
+ //# sourceMappingURL=text-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-renderer.d.ts","sourceRoot":"","sources":["../../../src/tui/components/text-renderer.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACxB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAM/C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM;IASvE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAG3C;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from "../utils.js";
2
+ export class TextRenderer {
3
+ padToWidth(line, width) {
4
+ const len = visibleWidth(line);
5
+ if (len >= width)
6
+ return line;
7
+ return line + " ".repeat(width - len);
8
+ }
9
+ clipWithIndicator(line, width, indicator = "…") {
10
+ if (width <= 0)
11
+ return "";
12
+ if (visibleWidth(line) <= width)
13
+ return this.padToWidth(line, width);
14
+ const indicatorWidth = visibleWidth(indicator);
15
+ if (indicatorWidth >= width)
16
+ return truncateToWidth(indicator, width);
17
+ const clipped = truncateToWidth(line, width - indicatorWidth);
18
+ return this.padToWidth(clipped + indicator, width);
19
+ }
20
+ wrap(text, width) {
21
+ return wrapTextWithAnsi(text, width);
22
+ }
23
+ }
24
+ export const textRenderer = new TextRenderer();
25
+ //# sourceMappingURL=text-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-renderer.js","sourceRoot":"","sources":["../../../src/tui/components/text-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,OAAO,YAAY;IACxB,UAAU,CAAC,IAAY,EAAE,KAAa;QACrC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,iBAAiB,CAAC,IAAY,EAAE,KAAa,EAAE,SAAS,GAAG,GAAG;QAC7D,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,cAAc,IAAI,KAAK;YAAE,OAAO,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,cAAc,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,IAAY,EAAE,KAAa;QAC/B,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;CACD;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -1,15 +1,13 @@
1
- import type { Component } from "../tui.js";
1
+ import { ComponentBase } from "../tui.js";
2
2
  /**
3
3
  * Text component - displays multi-line text with word wrapping
4
4
  */
5
- export declare class Text implements Component {
5
+ export declare class Text extends ComponentBase {
6
6
  private text;
7
7
  private paddingX;
8
8
  private paddingY;
9
9
  private customBgFn?;
10
10
  private cachedText?;
11
- private cachedWidth?;
12
- private cachedLines?;
13
11
  constructor(text?: string, paddingX?: number, paddingY?: number, customBgFn?: (text: string) => string);
14
12
  setText(text: string): void;
15
13
  setCustomBgFn(customBgFn?: (text: string) => string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/tui/components/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C;;GAEG;AACH,qBAAa,IAAK,YAAW,SAAS;IACrC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAC,CAA2B;IAG9C,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAW;gBAEnB,IAAI,GAAE,MAAW,EAAE,QAAQ,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAU,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM;IAOhH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO3B,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI;IAO1D,UAAU,IAAI,IAAI;IAMlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CA6D/B"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/tui/components/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1C;;GAEG;AACH,qBAAa,IAAK,SAAQ,aAAa;IACtC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAC,CAA2B;IAC9C,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,IAAI,GAAE,MAAW,EAAE,QAAQ,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAU,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM;IAQhH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI;IAMjD,UAAU,IAAI,IAAI;IAK3B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAmC/B"}
@@ -1,9 +1,12 @@
1
- import { applyBackgroundToLine, visibleWidth, wrapTextWithAnsi } from "../utils.js";
1
+ import { ComponentBase } from "../tui.js";
2
+ import { applyBackgroundToLine, visibleWidth } from "../utils.js";
3
+ import { textRenderer } from "./text-renderer.js";
2
4
  /**
3
5
  * Text component - displays multi-line text with word wrapping
4
6
  */
5
- export class Text {
7
+ export class Text extends ComponentBase {
6
8
  constructor(text = "", paddingX = 1, paddingY = 1, customBgFn) {
9
+ super();
7
10
  this.text = text;
8
11
  this.paddingX = paddingX;
9
12
  this.paddingY = paddingY;
@@ -12,70 +15,48 @@ export class Text {
12
15
  setText(text) {
13
16
  this.text = text;
14
17
  this.cachedText = undefined;
15
- this.cachedWidth = undefined;
16
- this.cachedLines = undefined;
18
+ this.invalidate();
17
19
  }
18
20
  setCustomBgFn(customBgFn) {
19
21
  this.customBgFn = customBgFn;
20
22
  this.cachedText = undefined;
21
- this.cachedWidth = undefined;
22
- this.cachedLines = undefined;
23
+ this.invalidate();
23
24
  }
24
25
  invalidate() {
26
+ super.invalidate();
25
27
  this.cachedText = undefined;
26
- this.cachedWidth = undefined;
27
- this.cachedLines = undefined;
28
28
  }
29
29
  render(width) {
30
- // Check cache
31
- if (this.cachedLines && this.cachedText === this.text && this.cachedWidth === width) {
32
- return this.cachedLines;
33
- }
34
- // Don't render anything if there's no actual text
35
- if (!this.text || this.text.trim() === "") {
36
- const result = [];
30
+ if (this.cachedText !== this.text) {
31
+ this.invalidate();
37
32
  this.cachedText = this.text;
38
- this.cachedWidth = width;
39
- this.cachedLines = result;
40
- return result;
41
33
  }
42
- // Replace tabs with 3 spaces
43
- const normalizedText = this.text.replace(/\t/g, " ");
44
- // Calculate content width (subtract left/right margins)
45
- const contentWidth = Math.max(1, width - this.paddingX * 2);
46
- // Wrap text (this preserves ANSI codes but does NOT pad)
47
- const wrappedLines = wrapTextWithAnsi(normalizedText, contentWidth);
48
- // Add margins and background to each line
49
- const leftMargin = " ".repeat(this.paddingX);
50
- const rightMargin = " ".repeat(this.paddingX);
51
- const contentLines = [];
52
- for (const line of wrappedLines) {
53
- // Add margins
54
- const lineWithMargins = leftMargin + line + rightMargin;
55
- // Apply background if specified (this also pads to full width)
56
- if (this.customBgFn) {
57
- contentLines.push(applyBackgroundToLine(lineWithMargins, width, this.customBgFn));
58
- }
59
- else {
60
- // No background - just pad to width with spaces
61
- const visibleLen = visibleWidth(lineWithMargins);
62
- const paddingNeeded = Math.max(0, width - visibleLen);
63
- contentLines.push(lineWithMargins + " ".repeat(paddingNeeded));
34
+ return this.renderCached(width, () => {
35
+ if (!this.text || this.text.trim() === "")
36
+ return [];
37
+ const normalizedText = this.text.replace(/\t/g, " ");
38
+ const contentWidth = Math.max(1, width - this.paddingX * 2);
39
+ const wrappedLines = textRenderer.wrap(normalizedText, contentWidth);
40
+ const leftMargin = " ".repeat(this.paddingX);
41
+ const rightMargin = " ".repeat(this.paddingX);
42
+ const contentLines = [];
43
+ for (const line of wrappedLines) {
44
+ const lineWithMargins = leftMargin + line + rightMargin;
45
+ if (this.customBgFn) {
46
+ contentLines.push(applyBackgroundToLine(lineWithMargins, width, this.customBgFn));
47
+ }
48
+ else {
49
+ const visibleLen = visibleWidth(lineWithMargins);
50
+ const paddingNeeded = Math.max(0, width - visibleLen);
51
+ contentLines.push(lineWithMargins + " ".repeat(paddingNeeded));
52
+ }
64
53
  }
65
- }
66
- // Add top/bottom padding (empty lines)
67
- const emptyLine = " ".repeat(width);
68
- const emptyLines = [];
69
- for (let i = 0; i < this.paddingY; i++) {
70
- const line = this.customBgFn ? applyBackgroundToLine(emptyLine, width, this.customBgFn) : emptyLine;
71
- emptyLines.push(line);
72
- }
73
- const result = [...emptyLines, ...contentLines, ...emptyLines];
74
- // Update cache
75
- this.cachedText = this.text;
76
- this.cachedWidth = width;
77
- this.cachedLines = result;
78
- return result.length > 0 ? result : [""];
54
+ const emptyLine = " ".repeat(width);
55
+ const padLine = this.customBgFn ? applyBackgroundToLine(emptyLine, width, this.customBgFn) : emptyLine;
56
+ const topBottom = Array.from({ length: this.paddingY }, () => padLine);
57
+ const result = [...topBottom, ...contentLines, ...topBottom];
58
+ return result.length > 0 ? result : [""];
59
+ });
79
60
  }
80
61
  }
81
62
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/tui/components/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/tui/components/text.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { Component } from "../tui.js";
1
+ import { ComponentBase } from "../tui.js";
2
2
  /**
3
3
  * Text component that truncates to fit viewport width
4
4
  */
5
- export declare class TruncatedText implements Component {
5
+ export declare class TruncatedText extends ComponentBase {
6
6
  private text;
7
7
  private paddingX;
8
8
  private paddingY;
@@ -1 +1 @@
1
- {"version":3,"file":"truncated-text.d.ts","sourceRoot":"","sources":["../../../src/tui/components/truncated-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C;;GAEG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC9C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAU;IAMpE,UAAU,IAAI,IAAI;IAIlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CA2C/B"}
1
+ {"version":3,"file":"truncated-text.d.ts","sourceRoot":"","sources":["../../../src/tui/components/truncated-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1C;;GAEG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC/C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAU;IAO3D,UAAU,IAAI,IAAI;IAI3B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CA2C/B"}
@@ -1,15 +1,18 @@
1
- import { truncateToWidth, visibleWidth } from "../utils.js";
1
+ import { ComponentBase } from "../tui.js";
2
+ import { visibleWidth } from "../utils.js";
3
+ import { textRenderer } from "./text-renderer.js";
2
4
  /**
3
5
  * Text component that truncates to fit viewport width
4
6
  */
5
- export class TruncatedText {
7
+ export class TruncatedText extends ComponentBase {
6
8
  constructor(text, paddingX = 0, paddingY = 0) {
9
+ super();
7
10
  this.text = text;
8
11
  this.paddingX = paddingX;
9
12
  this.paddingY = paddingY;
10
13
  }
11
14
  invalidate() {
12
- // No cached state to invalidate currently
15
+ super.invalidate();
13
16
  }
14
17
  render(width) {
15
18
  const result = [];
@@ -28,7 +31,7 @@ export class TruncatedText {
28
31
  singleLineText = this.text.substring(0, newlineIndex);
29
32
  }
30
33
  // Truncate text if needed (accounting for ANSI codes)
31
- const displayText = truncateToWidth(singleLineText, availableWidth);
34
+ const displayText = textRenderer.clipWithIndicator(singleLineText, availableWidth);
32
35
  // Add horizontal padding
33
36
  const leftPadding = " ".repeat(this.paddingX);
34
37
  const rightPadding = " ".repeat(this.paddingX);
@@ -1 +1 @@
1
- {"version":3,"file":"truncated-text.js","sourceRoot":"","sources":["../../../src/tui/components/truncated-text.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAO,aAAa;IAKzB,YAAY,IAAY,EAAE,WAAmB,CAAC,EAAE,WAAmB,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,UAAU;QACT,0CAA0C;IAC3C,CAAC;IAED,MAAM,CAAC,KAAa;QACnB,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,6BAA6B;QAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpC,6BAA6B;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;QAED,qDAAqD;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAE9D,6CAA6C;QAC7C,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACzB,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC;QAED,sDAAsD;QACtD,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAEpE,yBAAyB;QACzB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;QAEjE,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE9D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvB,6BAA6B;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;CACD"}
1
+ {"version":3,"file":"truncated-text.js","sourceRoot":"","sources":["../../../src/tui/components/truncated-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,aAAa;IAK/C,YAAY,IAAY,EAAE,WAAmB,CAAC,EAAE,WAAmB,CAAC;QACnE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAEQ,UAAU;QAClB,KAAK,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,KAAa;QACnB,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,6BAA6B;QAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpC,6BAA6B;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;QAED,qDAAqD;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAE9D,6CAA6C;QAC7C,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACzB,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC;QAED,sDAAsD;QACtD,MAAM,WAAW,GAAG,YAAY,CAAC,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAEnF,yBAAyB;QACzB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;QAEjE,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE9D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvB,6BAA6B;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;CACD"}
@@ -31,5 +31,7 @@ export interface EditorComponent extends Component {
31
31
  borderColor?: (str: string) => string;
32
32
  /** Set horizontal padding */
33
33
  setPaddingX?(padding: number): void;
34
+ /** Optional keybinding scope/component id for per-component overrides */
35
+ getKeybindingScopeId?(): string;
34
36
  }
35
37
  //# sourceMappingURL=editor-component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-component.d.ts","sourceRoot":"","sources":["../../src/tui/editor-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAKjD,mCAAmC;IACnC,OAAO,IAAI,MAAM,CAAC;IAElB,2BAA2B;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAM5B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAMlC,iDAAiD;IACjD,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAMlC,6CAA6C;IAC7C,kBAAkB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC;;;OAGG;IACH,eAAe,CAAC,IAAI,MAAM,CAAC;IAM3B,oCAAoC;IACpC,uBAAuB,CAAC,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAM/D,4BAA4B;IAC5B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAEtC,6BAA6B;IAC7B,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC"}
1
+ {"version":3,"file":"editor-component.d.ts","sourceRoot":"","sources":["../../src/tui/editor-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAKjD,mCAAmC;IACnC,OAAO,IAAI,MAAM,CAAC;IAElB,2BAA2B;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAM5B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAMlC,iDAAiD;IACjD,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAMlC,6CAA6C;IAC7C,kBAAkB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC;;;OAGG;IACH,eAAe,CAAC,IAAI,MAAM,CAAC;IAM3B,oCAAoC;IACpC,uBAAuB,CAAC,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAM/D,4BAA4B;IAC5B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAEtC,6BAA6B;IAC7B,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,yEAAyE;IACzE,oBAAoB,CAAC,IAAI,MAAM,CAAC;CAChC"}
@@ -7,6 +7,16 @@ export interface FuzzyMatch {
7
7
  matches: boolean;
8
8
  score: number;
9
9
  }
10
+ export interface FuzzyScoringConfig {
11
+ gapPenalty: number;
12
+ consecutiveReward: number;
13
+ wordBoundaryReward: number;
14
+ lateMatchPenalty: number;
15
+ swappedTokenPenalty: number;
16
+ }
17
+ export interface FuzzyMatcherStrategy {
18
+ match(query: string, text: string, config: FuzzyScoringConfig): FuzzyMatch;
19
+ }
10
20
  export declare function fuzzyMatch(query: string, text: string): FuzzyMatch;
11
21
  /**
12
22
  * Filter and sort items by fuzzy match quality (best matches first).
@@ -1 +1 @@
1
- {"version":3,"file":"fuzzy.d.ts","sourceRoot":"","sources":["../../src/tui/fuzzy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CA6ElE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,EAAE,CAsC3F"}
1
+ {"version":3,"file":"fuzzy.d.ts","sourceRoot":"","sources":["../../src/tui/fuzzy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACpC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,UAAU,CAAC;CAC3E;AA+ED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAiBlE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,CAAC,EAAE,CAuB3F"}