indusagi 0.12.7 → 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 (667) 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/proxy.d.ts +13 -19
  17. package/dist/agent/proxy.d.ts.map +1 -1
  18. package/dist/agent/proxy.js +45 -4
  19. package/dist/agent/proxy.js.map +1 -1
  20. package/dist/agent/state-manager.d.ts +22 -0
  21. package/dist/agent/state-manager.d.ts.map +1 -0
  22. package/dist/agent/state-manager.js +59 -0
  23. package/dist/agent/state-manager.js.map +1 -0
  24. package/dist/agent/telemetry.d.ts +7 -0
  25. package/dist/agent/telemetry.d.ts.map +1 -0
  26. package/dist/agent/telemetry.js +20 -0
  27. package/dist/agent/telemetry.js.map +1 -0
  28. package/dist/agent/tools/bash.d.ts +11 -0
  29. package/dist/agent/tools/bash.d.ts.map +1 -1
  30. package/dist/agent/tools/bash.js +27 -4
  31. package/dist/agent/tools/bash.js.map +1 -1
  32. package/dist/agent/tools/edit.d.ts +5 -0
  33. package/dist/agent/tools/edit.d.ts.map +1 -1
  34. package/dist/agent/tools/edit.js +16 -2
  35. package/dist/agent/tools/edit.js.map +1 -1
  36. package/dist/agent/tools/find.d.ts +2 -0
  37. package/dist/agent/tools/find.d.ts.map +1 -1
  38. package/dist/agent/tools/find.js +4 -1
  39. package/dist/agent/tools/find.js.map +1 -1
  40. package/dist/agent/tools/grep.d.ts.map +1 -1
  41. package/dist/agent/tools/grep.js +15 -4
  42. package/dist/agent/tools/grep.js.map +1 -1
  43. package/dist/agent/tools/index.d.ts +18 -2
  44. package/dist/agent/tools/index.d.ts.map +1 -1
  45. package/dist/agent/tools/index.js +64 -50
  46. package/dist/agent/tools/index.js.map +1 -1
  47. package/dist/agent/tools/ls.d.ts +2 -0
  48. package/dist/agent/tools/ls.d.ts.map +1 -1
  49. package/dist/agent/tools/ls.js +5 -0
  50. package/dist/agent/tools/ls.js.map +1 -1
  51. package/dist/agent/tools/path-utils.d.ts.map +1 -1
  52. package/dist/agent/tools/path-utils.js +3 -0
  53. package/dist/agent/tools/path-utils.js.map +1 -1
  54. package/dist/agent/tools/registry.d.ts +21 -0
  55. package/dist/agent/tools/registry.d.ts.map +1 -0
  56. package/dist/agent/tools/registry.js +25 -0
  57. package/dist/agent/tools/registry.js.map +1 -0
  58. package/dist/agent/tools/task.d.ts.map +1 -1
  59. package/dist/agent/tools/task.js +12 -6
  60. package/dist/agent/tools/task.js.map +1 -1
  61. package/dist/agent/tools/todo-store.d.ts +4 -0
  62. package/dist/agent/tools/todo-store.d.ts.map +1 -1
  63. package/dist/agent/tools/todo-store.js +12 -0
  64. package/dist/agent/tools/todo-store.js.map +1 -1
  65. package/dist/agent/tools/todo.d.ts +4 -0
  66. package/dist/agent/tools/todo.d.ts.map +1 -1
  67. package/dist/agent/tools/todo.js +14 -4
  68. package/dist/agent/tools/todo.js.map +1 -1
  69. package/dist/agent/tools/truncate.d.ts +3 -0
  70. package/dist/agent/tools/truncate.d.ts.map +1 -1
  71. package/dist/agent/tools/truncate.js.map +1 -1
  72. package/dist/agent/tools/utils/hook-runner.d.ts +8 -3
  73. package/dist/agent/tools/utils/hook-runner.d.ts.map +1 -1
  74. package/dist/agent/tools/utils/hook-runner.js +22 -5
  75. package/dist/agent/tools/utils/hook-runner.js.map +1 -1
  76. package/dist/agent/tools/utils/image-resize.d.ts +1 -0
  77. package/dist/agent/tools/utils/image-resize.d.ts.map +1 -1
  78. package/dist/agent/tools/utils/image-resize.js +5 -0
  79. package/dist/agent/tools/utils/image-resize.js.map +1 -1
  80. package/dist/agent/tools/utils/mime.d.ts.map +1 -1
  81. package/dist/agent/tools/utils/mime.js +6 -0
  82. package/dist/agent/tools/utils/mime.js.map +1 -1
  83. package/dist/agent/tools/utils/shell.d.ts +5 -0
  84. package/dist/agent/tools/utils/shell.d.ts.map +1 -1
  85. package/dist/agent/tools/utils/shell.js +9 -0
  86. package/dist/agent/tools/utils/shell.js.map +1 -1
  87. package/dist/agent/tools/webfetch.d.ts +2 -0
  88. package/dist/agent/tools/webfetch.d.ts.map +1 -1
  89. package/dist/agent/tools/webfetch.js +4 -1
  90. package/dist/agent/tools/webfetch.js.map +1 -1
  91. package/dist/agent/tools/websearch.d.ts +6 -0
  92. package/dist/agent/tools/websearch.d.ts.map +1 -1
  93. package/dist/agent/tools/websearch.js +22 -2
  94. package/dist/agent/tools/websearch.js.map +1 -1
  95. package/dist/agent/tools/write.d.ts +4 -0
  96. package/dist/agent/tools/write.d.ts.map +1 -1
  97. package/dist/agent/tools/write.js +19 -1
  98. package/dist/agent/tools/write.js.map +1 -1
  99. package/dist/agent/types.d.ts +22 -1
  100. package/dist/agent/types.d.ts.map +1 -1
  101. package/dist/agent/types.js +44 -1
  102. package/dist/agent/types.js.map +1 -1
  103. package/dist/ai/api-registry.d.ts +34 -4
  104. package/dist/ai/api-registry.d.ts.map +1 -1
  105. package/dist/ai/api-registry.js +97 -19
  106. package/dist/ai/api-registry.js.map +1 -1
  107. package/dist/ai/cli.js +24 -3
  108. package/dist/ai/cli.js.map +1 -1
  109. package/dist/ai/env-api-keys.d.ts +9 -0
  110. package/dist/ai/env-api-keys.d.ts.map +1 -1
  111. package/dist/ai/env-api-keys.js +23 -0
  112. package/dist/ai/env-api-keys.js.map +1 -1
  113. package/dist/ai/index.d.ts +4 -2
  114. package/dist/ai/index.d.ts.map +1 -1
  115. package/dist/ai/index.js +4 -2
  116. package/dist/ai/index.js.map +1 -1
  117. package/dist/ai/models.d.ts +30 -0
  118. package/dist/ai/models.d.ts.map +1 -1
  119. package/dist/ai/models.generated.d.ts +1 -0
  120. package/dist/ai/models.generated.d.ts.map +1 -1
  121. package/dist/ai/models.js +90 -18
  122. package/dist/ai/models.js.map +1 -1
  123. package/dist/ai/providers/amazon-bedrock.d.ts +19 -1
  124. package/dist/ai/providers/amazon-bedrock.d.ts.map +1 -1
  125. package/dist/ai/providers/amazon-bedrock.js +68 -40
  126. package/dist/ai/providers/amazon-bedrock.js.map +1 -1
  127. package/dist/ai/providers/anthropic.d.ts +50 -1
  128. package/dist/ai/providers/anthropic.d.ts.map +1 -1
  129. package/dist/ai/providers/anthropic.js +204 -161
  130. package/dist/ai/providers/anthropic.js.map +1 -1
  131. package/dist/ai/providers/azure-openai-responses.d.ts.map +1 -1
  132. package/dist/ai/providers/azure-openai-responses.js +36 -28
  133. package/dist/ai/providers/azure-openai-responses.js.map +1 -1
  134. package/dist/ai/providers/google-shared.d.ts +9 -0
  135. package/dist/ai/providers/google-shared.d.ts.map +1 -1
  136. package/dist/ai/providers/google-shared.js +16 -0
  137. package/dist/ai/providers/google-shared.js.map +1 -1
  138. package/dist/ai/providers/google-vertex.d.ts.map +1 -1
  139. package/dist/ai/providers/google-vertex.js +33 -26
  140. package/dist/ai/providers/google-vertex.js.map +1 -1
  141. package/dist/ai/providers/google.d.ts.map +1 -1
  142. package/dist/ai/providers/google.js +33 -26
  143. package/dist/ai/providers/google.js.map +1 -1
  144. package/dist/ai/providers/kimi.d.ts.map +1 -1
  145. package/dist/ai/providers/kimi.js +34 -24
  146. package/dist/ai/providers/kimi.js.map +1 -1
  147. package/dist/ai/providers/openai-codex-responses.d.ts.map +1 -1
  148. package/dist/ai/providers/openai-codex-responses.js +33 -25
  149. package/dist/ai/providers/openai-codex-responses.js.map +1 -1
  150. package/dist/ai/providers/openai-completions.d.ts +10 -0
  151. package/dist/ai/providers/openai-completions.d.ts.map +1 -1
  152. package/dist/ai/providers/openai-completions.js +51 -26
  153. package/dist/ai/providers/openai-completions.js.map +1 -1
  154. package/dist/ai/providers/openai-responses-shared.d.ts +9 -0
  155. package/dist/ai/providers/openai-responses-shared.d.ts.map +1 -1
  156. package/dist/ai/providers/openai-responses-shared.js +18 -2
  157. package/dist/ai/providers/openai-responses-shared.js.map +1 -1
  158. package/dist/ai/providers/openai-responses.d.ts.map +1 -1
  159. package/dist/ai/providers/openai-responses.js +35 -32
  160. package/dist/ai/providers/openai-responses.js.map +1 -1
  161. package/dist/ai/providers/register-builtins.d.ts.map +1 -1
  162. package/dist/ai/providers/register-builtins.js +17 -8
  163. package/dist/ai/providers/register-builtins.js.map +1 -1
  164. package/dist/ai/providers/simple-options.d.ts +19 -0
  165. package/dist/ai/providers/simple-options.d.ts.map +1 -1
  166. package/dist/ai/providers/simple-options.js +62 -0
  167. package/dist/ai/providers/simple-options.js.map +1 -1
  168. package/dist/ai/providers/transform-messages.d.ts +14 -0
  169. package/dist/ai/providers/transform-messages.d.ts.map +1 -1
  170. package/dist/ai/providers/transform-messages.js +99 -96
  171. package/dist/ai/providers/transform-messages.js.map +1 -1
  172. package/dist/ai/stream.d.ts +17 -3
  173. package/dist/ai/stream.d.ts.map +1 -1
  174. package/dist/ai/stream.js +61 -6
  175. package/dist/ai/stream.js.map +1 -1
  176. package/dist/ai/types.d.ts +17 -0
  177. package/dist/ai/types.d.ts.map +1 -1
  178. package/dist/ai/types.js +87 -1
  179. package/dist/ai/types.js.map +1 -1
  180. package/dist/ai/types.test.d.ts +8 -0
  181. package/dist/ai/types.test.d.ts.map +1 -0
  182. package/dist/ai/types.test.js +389 -0
  183. package/dist/ai/types.test.js.map +1 -0
  184. package/dist/ai/utils/base-stream-handler.d.ts +16 -0
  185. package/dist/ai/utils/base-stream-handler.d.ts.map +1 -0
  186. package/dist/ai/utils/base-stream-handler.js +24 -0
  187. package/dist/ai/utils/base-stream-handler.js.map +1 -0
  188. package/dist/ai/utils/event-stream.d.ts +26 -4
  189. package/dist/ai/utils/event-stream.d.ts.map +1 -1
  190. package/dist/ai/utils/event-stream.js +89 -5
  191. package/dist/ai/utils/event-stream.js.map +1 -1
  192. package/dist/ai/utils/index.d.ts +15 -0
  193. package/dist/ai/utils/index.d.ts.map +1 -0
  194. package/dist/ai/utils/index.js +15 -0
  195. package/dist/ai/utils/index.js.map +1 -0
  196. package/dist/ai/utils/json-parse.d.ts +13 -4
  197. package/dist/ai/utils/json-parse.d.ts.map +1 -1
  198. package/dist/ai/utils/json-parse.js +31 -19
  199. package/dist/ai/utils/json-parse.js.map +1 -1
  200. package/dist/ai/utils/message-transform.d.ts +29 -0
  201. package/dist/ai/utils/message-transform.d.ts.map +1 -0
  202. package/dist/ai/utils/message-transform.js +55 -0
  203. package/dist/ai/utils/message-transform.js.map +1 -0
  204. package/dist/ai/utils/oauth/anthropic.d.ts +1 -0
  205. package/dist/ai/utils/oauth/anthropic.d.ts.map +1 -1
  206. package/dist/ai/utils/oauth/anthropic.js +3 -0
  207. package/dist/ai/utils/oauth/anthropic.js.map +1 -1
  208. package/dist/ai/utils/oauth/github-copilot.d.ts +1 -0
  209. package/dist/ai/utils/oauth/github-copilot.d.ts.map +1 -1
  210. package/dist/ai/utils/oauth/github-copilot.js +3 -0
  211. package/dist/ai/utils/oauth/github-copilot.js.map +1 -1
  212. package/dist/ai/utils/oauth/index.d.ts +2 -1
  213. package/dist/ai/utils/oauth/index.d.ts.map +1 -1
  214. package/dist/ai/utils/oauth/index.js +10 -0
  215. package/dist/ai/utils/oauth/index.js.map +1 -1
  216. package/dist/ai/utils/oauth/kimi.d.ts +1 -0
  217. package/dist/ai/utils/oauth/kimi.d.ts.map +1 -1
  218. package/dist/ai/utils/oauth/kimi.js +3 -0
  219. package/dist/ai/utils/oauth/kimi.js.map +1 -1
  220. package/dist/ai/utils/oauth/openai-codex.d.ts +1 -0
  221. package/dist/ai/utils/oauth/openai-codex.d.ts.map +1 -1
  222. package/dist/ai/utils/oauth/openai-codex.js +3 -0
  223. package/dist/ai/utils/oauth/openai-codex.js.map +1 -1
  224. package/dist/ai/utils/oauth/pkce.d.ts +1 -0
  225. package/dist/ai/utils/oauth/pkce.d.ts.map +1 -1
  226. package/dist/ai/utils/oauth/pkce.js +5 -0
  227. package/dist/ai/utils/oauth/pkce.js.map +1 -1
  228. package/dist/ai/utils/oauth/types.d.ts +6 -0
  229. package/dist/ai/utils/oauth/types.d.ts.map +1 -1
  230. package/dist/ai/utils/output-factory.d.ts +3 -0
  231. package/dist/ai/utils/output-factory.d.ts.map +1 -0
  232. package/dist/ai/utils/output-factory.js +23 -0
  233. package/dist/ai/utils/output-factory.js.map +1 -0
  234. package/dist/ai/utils/overflow.d.ts +6 -47
  235. package/dist/ai/utils/overflow.d.ts.map +1 -1
  236. package/dist/ai/utils/overflow.js +28 -92
  237. package/dist/ai/utils/overflow.js.map +1 -1
  238. package/dist/ai/utils/provider-adapter.d.ts +57 -0
  239. package/dist/ai/utils/provider-adapter.d.ts.map +1 -0
  240. package/dist/ai/utils/provider-adapter.js +28 -0
  241. package/dist/ai/utils/provider-adapter.js.map +1 -0
  242. package/dist/ai/utils/provider-client-builder.d.ts +37 -0
  243. package/dist/ai/utils/provider-client-builder.d.ts.map +1 -0
  244. package/dist/ai/utils/provider-client-builder.js +50 -0
  245. package/dist/ai/utils/provider-client-builder.js.map +1 -0
  246. package/dist/ai/utils/provider-consolidation.d.ts +4 -0
  247. package/dist/ai/utils/provider-consolidation.d.ts.map +1 -0
  248. package/dist/ai/utils/provider-consolidation.js +33 -0
  249. package/dist/ai/utils/provider-consolidation.js.map +1 -0
  250. package/dist/ai/utils/provider-constants.d.ts +35 -0
  251. package/dist/ai/utils/provider-constants.d.ts.map +1 -0
  252. package/dist/ai/utils/provider-constants.js +35 -0
  253. package/dist/ai/utils/provider-constants.js.map +1 -0
  254. package/dist/ai/utils/provider-errors.d.ts +46 -0
  255. package/dist/ai/utils/provider-errors.d.ts.map +1 -0
  256. package/dist/ai/utils/provider-errors.js +101 -0
  257. package/dist/ai/utils/provider-errors.js.map +1 -0
  258. package/dist/ai/utils/sanitize-unicode.d.ts +1 -0
  259. package/dist/ai/utils/sanitize-unicode.d.ts.map +1 -1
  260. package/dist/ai/utils/sanitize-unicode.js +16 -0
  261. package/dist/ai/utils/sanitize-unicode.js.map +1 -1
  262. package/dist/ai/utils/stream-event-helper.d.ts +28 -0
  263. package/dist/ai/utils/stream-event-helper.d.ts.map +1 -0
  264. package/dist/ai/utils/stream-event-helper.js +49 -0
  265. package/dist/ai/utils/stream-event-helper.js.map +1 -0
  266. package/dist/ai/utils/stream-handler-types.d.ts +43 -0
  267. package/dist/ai/utils/stream-handler-types.d.ts.map +1 -0
  268. package/dist/ai/utils/stream-handler-types.js +18 -0
  269. package/dist/ai/utils/stream-handler-types.js.map +1 -0
  270. package/dist/ai/utils/streaming-state-manager.d.ts +50 -0
  271. package/dist/ai/utils/streaming-state-manager.d.ts.map +1 -0
  272. package/dist/ai/utils/streaming-state-manager.js +65 -0
  273. package/dist/ai/utils/streaming-state-manager.js.map +1 -0
  274. package/dist/ai/utils/tool-converter.d.ts +50 -0
  275. package/dist/ai/utils/tool-converter.d.ts.map +1 -0
  276. package/dist/ai/utils/tool-converter.js +54 -0
  277. package/dist/ai/utils/tool-converter.js.map +1 -0
  278. package/dist/ai/utils/typebox-helpers.d.ts +6 -1
  279. package/dist/ai/utils/typebox-helpers.d.ts.map +1 -1
  280. package/dist/ai/utils/typebox-helpers.js +7 -0
  281. package/dist/ai/utils/typebox-helpers.js.map +1 -1
  282. package/dist/ai/utils/validation.d.ts +6 -0
  283. package/dist/ai/utils/validation.d.ts.map +1 -1
  284. package/dist/ai/utils/validation.js +23 -9
  285. package/dist/ai/utils/validation.js.map +1 -1
  286. package/dist/index.d.ts +0 -1
  287. package/dist/index.d.ts.map +1 -1
  288. package/dist/index.js +0 -1
  289. package/dist/index.js.map +1 -1
  290. package/dist/tui/autocomplete.d.ts +17 -0
  291. package/dist/tui/autocomplete.d.ts.map +1 -1
  292. package/dist/tui/autocomplete.js +33 -3
  293. package/dist/tui/autocomplete.js.map +1 -1
  294. package/dist/tui/components/box.d.ts +2 -2
  295. package/dist/tui/components/box.d.ts.map +1 -1
  296. package/dist/tui/components/box.js +7 -5
  297. package/dist/tui/components/box.js.map +1 -1
  298. package/dist/tui/components/cancellable-loader.d.ts +1 -0
  299. package/dist/tui/components/cancellable-loader.d.ts.map +1 -1
  300. package/dist/tui/components/cancellable-loader.js +4 -0
  301. package/dist/tui/components/cancellable-loader.js.map +1 -1
  302. package/dist/tui/components/editor.d.ts +2 -2
  303. package/dist/tui/components/editor.d.ts.map +1 -1
  304. package/dist/tui/components/editor.js +6 -3
  305. package/dist/tui/components/editor.js.map +1 -1
  306. package/dist/tui/components/image.d.ts +2 -2
  307. package/dist/tui/components/image.d.ts.map +1 -1
  308. package/dist/tui/components/image.js +35 -33
  309. package/dist/tui/components/image.js.map +1 -1
  310. package/dist/tui/components/input.d.ts +2 -2
  311. package/dist/tui/components/input.d.ts.map +1 -1
  312. package/dist/tui/components/input.js +6 -3
  313. package/dist/tui/components/input.js.map +1 -1
  314. package/dist/tui/components/loader.d.ts +2 -0
  315. package/dist/tui/components/loader.d.ts.map +1 -1
  316. package/dist/tui/components/loader.js +8 -0
  317. package/dist/tui/components/loader.js.map +1 -1
  318. package/dist/tui/components/markdown.d.ts +2 -2
  319. package/dist/tui/components/markdown.d.ts.map +1 -1
  320. package/dist/tui/components/markdown.js +61 -57
  321. package/dist/tui/components/markdown.js.map +1 -1
  322. package/dist/tui/components/select-list.d.ts +2 -2
  323. package/dist/tui/components/select-list.d.ts.map +1 -1
  324. package/dist/tui/components/select-list.js +79 -71
  325. package/dist/tui/components/select-list.js.map +1 -1
  326. package/dist/tui/components/settings-list.d.ts +2 -2
  327. package/dist/tui/components/settings-list.d.ts.map +1 -1
  328. package/dist/tui/components/settings-list.js +12 -1
  329. package/dist/tui/components/settings-list.js.map +1 -1
  330. package/dist/tui/components/spacer.d.ts +3 -3
  331. package/dist/tui/components/spacer.d.ts.map +1 -1
  332. package/dist/tui/components/spacer.js +13 -8
  333. package/dist/tui/components/spacer.js.map +1 -1
  334. package/dist/tui/components/text-renderer.d.ts +7 -0
  335. package/dist/tui/components/text-renderer.d.ts.map +1 -0
  336. package/dist/tui/components/text-renderer.js +25 -0
  337. package/dist/tui/components/text-renderer.js.map +1 -0
  338. package/dist/tui/components/text.d.ts +2 -4
  339. package/dist/tui/components/text.d.ts.map +1 -1
  340. package/dist/tui/components/text.js +35 -54
  341. package/dist/tui/components/text.js.map +1 -1
  342. package/dist/tui/components/truncated-text.d.ts +2 -2
  343. package/dist/tui/components/truncated-text.d.ts.map +1 -1
  344. package/dist/tui/components/truncated-text.js +7 -4
  345. package/dist/tui/components/truncated-text.js.map +1 -1
  346. package/dist/tui/editor-component.d.ts +2 -0
  347. package/dist/tui/editor-component.d.ts.map +1 -1
  348. package/dist/tui/fuzzy.d.ts +10 -0
  349. package/dist/tui/fuzzy.d.ts.map +1 -1
  350. package/dist/tui/fuzzy.js +75 -56
  351. package/dist/tui/fuzzy.js.map +1 -1
  352. package/dist/tui/keybindings.d.ts +16 -3
  353. package/dist/tui/keybindings.d.ts.map +1 -1
  354. package/dist/tui/keybindings.js +68 -12
  355. package/dist/tui/keybindings.js.map +1 -1
  356. package/dist/tui/keys.d.ts +5 -0
  357. package/dist/tui/keys.d.ts.map +1 -1
  358. package/dist/tui/keys.js +72 -1
  359. package/dist/tui/keys.js.map +1 -1
  360. package/dist/tui/stdin-buffer.d.ts +5 -0
  361. package/dist/tui/stdin-buffer.d.ts.map +1 -1
  362. package/dist/tui/stdin-buffer.js +20 -7
  363. package/dist/tui/stdin-buffer.js.map +1 -1
  364. package/dist/tui/terminal-image.d.ts.map +1 -1
  365. package/dist/tui/terminal-image.js +17 -6
  366. package/dist/tui/terminal-image.js.map +1 -1
  367. package/dist/tui/terminal.d.ts +15 -0
  368. package/dist/tui/terminal.d.ts.map +1 -1
  369. package/dist/tui/terminal.js +39 -6
  370. package/dist/tui/terminal.js.map +1 -1
  371. package/dist/tui/tui.d.ts +50 -4
  372. package/dist/tui/tui.d.ts.map +1 -1
  373. package/dist/tui/tui.js +201 -186
  374. package/dist/tui/tui.js.map +1 -1
  375. package/dist/tui/utils.d.ts +19 -0
  376. package/dist/tui/utils.d.ts.map +1 -1
  377. package/dist/tui/utils.js +39 -0
  378. package/dist/tui/utils.js.map +1 -1
  379. package/package.json +7 -9
  380. package/dist/webui/ChatPanel.d.ts +0 -28
  381. package/dist/webui/ChatPanel.d.ts.map +0 -1
  382. package/dist/webui/ChatPanel.js +0 -193
  383. package/dist/webui/ChatPanel.js.map +0 -1
  384. package/dist/webui/components/AgentInterface.d.ts +0 -39
  385. package/dist/webui/components/AgentInterface.d.ts.map +0 -1
  386. package/dist/webui/components/AgentInterface.js +0 -371
  387. package/dist/webui/components/AgentInterface.js.map +0 -1
  388. package/dist/webui/components/AttachmentTile.d.ts +0 -12
  389. package/dist/webui/components/AttachmentTile.d.ts.map +0 -1
  390. package/dist/webui/components/AttachmentTile.js +0 -111
  391. package/dist/webui/components/AttachmentTile.js.map +0 -1
  392. package/dist/webui/components/ConsoleBlock.d.ts +0 -12
  393. package/dist/webui/components/ConsoleBlock.d.ts.map +0 -1
  394. package/dist/webui/components/ConsoleBlock.js +0 -84
  395. package/dist/webui/components/ConsoleBlock.js.map +0 -1
  396. package/dist/webui/components/CustomProviderCard.d.ts +0 -17
  397. package/dist/webui/components/CustomProviderCard.d.ts.map +0 -1
  398. package/dist/webui/components/CustomProviderCard.js +0 -110
  399. package/dist/webui/components/CustomProviderCard.js.map +0 -1
  400. package/dist/webui/components/ExpandableSection.d.ts +0 -15
  401. package/dist/webui/components/ExpandableSection.d.ts.map +0 -1
  402. package/dist/webui/components/ExpandableSection.js +0 -63
  403. package/dist/webui/components/ExpandableSection.js.map +0 -1
  404. package/dist/webui/components/Input.d.ts +0 -26
  405. package/dist/webui/components/Input.d.ts.map +0 -1
  406. package/dist/webui/components/Input.js +0 -57
  407. package/dist/webui/components/Input.js.map +0 -1
  408. package/dist/webui/components/MessageEditor.d.ts +0 -44
  409. package/dist/webui/components/MessageEditor.d.ts.map +0 -1
  410. package/dist/webui/components/MessageEditor.js +0 -414
  411. package/dist/webui/components/MessageEditor.js.map +0 -1
  412. package/dist/webui/components/MessageList.d.ts +0 -14
  413. package/dist/webui/components/MessageList.d.ts.map +0 -1
  414. package/dist/webui/components/MessageList.js +0 -104
  415. package/dist/webui/components/MessageList.js.map +0 -1
  416. package/dist/webui/components/Messages.d.ts +0 -94
  417. package/dist/webui/components/Messages.d.ts.map +0 -1
  418. package/dist/webui/components/Messages.js +0 -352
  419. package/dist/webui/components/Messages.js.map +0 -1
  420. package/dist/webui/components/ProviderKeyInput.d.ts +0 -16
  421. package/dist/webui/components/ProviderKeyInput.d.ts.map +0 -1
  422. package/dist/webui/components/ProviderKeyInput.js +0 -171
  423. package/dist/webui/components/ProviderKeyInput.js.map +0 -1
  424. package/dist/webui/components/SandboxedIframe.d.ts +0 -85
  425. package/dist/webui/components/SandboxedIframe.d.ts.map +0 -1
  426. package/dist/webui/components/SandboxedIframe.js +0 -511
  427. package/dist/webui/components/SandboxedIframe.js.map +0 -1
  428. package/dist/webui/components/StreamingMessageContainer.d.ts +0 -19
  429. package/dist/webui/components/StreamingMessageContainer.d.ts.map +0 -1
  430. package/dist/webui/components/StreamingMessageContainer.js +0 -117
  431. package/dist/webui/components/StreamingMessageContainer.js.map +0 -1
  432. package/dist/webui/components/ThinkingBlock.d.ts +0 -11
  433. package/dist/webui/components/ThinkingBlock.d.ts.map +0 -1
  434. package/dist/webui/components/ThinkingBlock.js +0 -58
  435. package/dist/webui/components/ThinkingBlock.js.map +0 -1
  436. package/dist/webui/components/message-renderer-registry.d.ts +0 -12
  437. package/dist/webui/components/message-renderer-registry.d.ts.map +0 -1
  438. package/dist/webui/components/message-renderer-registry.js +0 -12
  439. package/dist/webui/components/message-renderer-registry.js.map +0 -1
  440. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.d.ts +0 -35
  441. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.d.ts.map +0 -1
  442. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.js +0 -189
  443. package/dist/webui/components/sandbox/ArtifactsRuntimeProvider.js.map +0 -1
  444. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.d.ts +0 -17
  445. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.d.ts.map +0 -1
  446. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.js +0 -64
  447. package/dist/webui/components/sandbox/AttachmentsRuntimeProvider.js.map +0 -1
  448. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.d.ts +0 -42
  449. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.d.ts.map +0 -1
  450. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.js +0 -161
  451. package/dist/webui/components/sandbox/ConsoleRuntimeProvider.js.map +0 -1
  452. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.d.ts +0 -30
  453. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.d.ts.map +0 -1
  454. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.js +0 -97
  455. package/dist/webui/components/sandbox/FileDownloadRuntimeProvider.js.map +0 -1
  456. package/dist/webui/components/sandbox/RuntimeMessageBridge.d.ts +0 -19
  457. package/dist/webui/components/sandbox/RuntimeMessageBridge.d.ts.map +0 -1
  458. package/dist/webui/components/sandbox/RuntimeMessageBridge.js +0 -74
  459. package/dist/webui/components/sandbox/RuntimeMessageBridge.js.map +0 -1
  460. package/dist/webui/components/sandbox/RuntimeMessageRouter.d.ts +0 -65
  461. package/dist/webui/components/sandbox/RuntimeMessageRouter.d.ts.map +0 -1
  462. package/dist/webui/components/sandbox/RuntimeMessageRouter.js +0 -168
  463. package/dist/webui/components/sandbox/RuntimeMessageRouter.js.map +0 -1
  464. package/dist/webui/components/sandbox/SandboxRuntimeProvider.d.ts +0 -48
  465. package/dist/webui/components/sandbox/SandboxRuntimeProvider.d.ts.map +0 -1
  466. package/dist/webui/components/sandbox/SandboxRuntimeProvider.js +0 -2
  467. package/dist/webui/components/sandbox/SandboxRuntimeProvider.js.map +0 -1
  468. package/dist/webui/dialogs/ApiKeyPromptDialog.d.ts +0 -15
  469. package/dist/webui/dialogs/ApiKeyPromptDialog.d.ts.map +0 -1
  470. package/dist/webui/dialogs/ApiKeyPromptDialog.js +0 -79
  471. package/dist/webui/dialogs/ApiKeyPromptDialog.js.map +0 -1
  472. package/dist/webui/dialogs/AttachmentOverlay.d.ts +0 -32
  473. package/dist/webui/dialogs/AttachmentOverlay.d.ts.map +0 -1
  474. package/dist/webui/dialogs/AttachmentOverlay.js +0 -576
  475. package/dist/webui/dialogs/AttachmentOverlay.js.map +0 -1
  476. package/dist/webui/dialogs/CustomProviderDialog.d.ts +0 -25
  477. package/dist/webui/dialogs/CustomProviderDialog.d.ts.map +0 -1
  478. package/dist/webui/dialogs/CustomProviderDialog.js +0 -270
  479. package/dist/webui/dialogs/CustomProviderDialog.js.map +0 -1
  480. package/dist/webui/dialogs/ModelSelector.d.ts +0 -27
  481. package/dist/webui/dialogs/ModelSelector.d.ts.map +0 -1
  482. package/dist/webui/dialogs/ModelSelector.js +0 -320
  483. package/dist/webui/dialogs/ModelSelector.js.map +0 -1
  484. package/dist/webui/dialogs/PersistentStorageDialog.d.ts +0 -17
  485. package/dist/webui/dialogs/PersistentStorageDialog.d.ts.map +0 -1
  486. package/dist/webui/dialogs/PersistentStorageDialog.js +0 -147
  487. package/dist/webui/dialogs/PersistentStorageDialog.js.map +0 -1
  488. package/dist/webui/dialogs/ProvidersModelsTab.d.ts +0 -20
  489. package/dist/webui/dialogs/ProvidersModelsTab.d.ts.map +0 -1
  490. package/dist/webui/dialogs/ProvidersModelsTab.js +0 -191
  491. package/dist/webui/dialogs/ProvidersModelsTab.js.map +0 -1
  492. package/dist/webui/dialogs/SessionListDialog.d.ts +0 -19
  493. package/dist/webui/dialogs/SessionListDialog.d.ts.map +0 -1
  494. package/dist/webui/dialogs/SessionListDialog.js +0 -154
  495. package/dist/webui/dialogs/SessionListDialog.js.map +0 -1
  496. package/dist/webui/dialogs/SettingsDialog.d.ts +0 -30
  497. package/dist/webui/dialogs/SettingsDialog.d.ts.map +0 -1
  498. package/dist/webui/dialogs/SettingsDialog.js +0 -229
  499. package/dist/webui/dialogs/SettingsDialog.js.map +0 -1
  500. package/dist/webui/index.d.ts +0 -65
  501. package/dist/webui/index.d.ts.map +0 -1
  502. package/dist/webui/index.js +0 -68
  503. package/dist/webui/index.js.map +0 -1
  504. package/dist/webui/prompts/prompts.d.ts +0 -11
  505. package/dist/webui/prompts/prompts.d.ts.map +0 -1
  506. package/dist/webui/prompts/prompts.js +0 -272
  507. package/dist/webui/prompts/prompts.js.map +0 -1
  508. package/dist/webui/storage/app-storage.d.ts +0 -33
  509. package/dist/webui/storage/app-storage.d.ts.map +0 -1
  510. package/dist/webui/storage/app-storage.js +0 -38
  511. package/dist/webui/storage/app-storage.js.map +0 -1
  512. package/dist/webui/storage/backends/indexeddb-storage-backend.d.ts +0 -27
  513. package/dist/webui/storage/backends/indexeddb-storage-backend.d.ts.map +0 -1
  514. package/dist/webui/storage/backends/indexeddb-storage-backend.js +0 -166
  515. package/dist/webui/storage/backends/indexeddb-storage-backend.js.map +0 -1
  516. package/dist/webui/storage/store.d.ts +0 -23
  517. package/dist/webui/storage/store.d.ts.map +0 -1
  518. package/dist/webui/storage/store.js +0 -26
  519. package/dist/webui/storage/store.js.map +0 -1
  520. package/dist/webui/storage/stores/custom-providers-store.d.ts +0 -25
  521. package/dist/webui/storage/stores/custom-providers-store.d.ts.map +0 -1
  522. package/dist/webui/storage/stores/custom-providers-store.js +0 -35
  523. package/dist/webui/storage/stores/custom-providers-store.js.map +0 -1
  524. package/dist/webui/storage/stores/provider-keys-store.d.ts +0 -14
  525. package/dist/webui/storage/stores/provider-keys-store.d.ts.map +0 -1
  526. package/dist/webui/storage/stores/provider-keys-store.js +0 -27
  527. package/dist/webui/storage/stores/provider-keys-store.js.map +0 -1
  528. package/dist/webui/storage/stores/sessions-store.d.ts +0 -32
  529. package/dist/webui/storage/stores/sessions-store.d.ts.map +0 -1
  530. package/dist/webui/storage/stores/sessions-store.js +0 -113
  531. package/dist/webui/storage/stores/sessions-store.js.map +0 -1
  532. package/dist/webui/storage/stores/settings-store.d.ts +0 -14
  533. package/dist/webui/storage/stores/settings-store.d.ts.map +0 -1
  534. package/dist/webui/storage/stores/settings-store.js +0 -28
  535. package/dist/webui/storage/stores/settings-store.js.map +0 -1
  536. package/dist/webui/storage/types.d.ts +0 -176
  537. package/dist/webui/storage/types.d.ts.map +0 -1
  538. package/dist/webui/storage/types.js +0 -2
  539. package/dist/webui/storage/types.js.map +0 -1
  540. package/dist/webui/tools/artifacts/ArtifactElement.d.ts +0 -9
  541. package/dist/webui/tools/artifacts/ArtifactElement.d.ts.map +0 -1
  542. package/dist/webui/tools/artifacts/ArtifactElement.js +0 -11
  543. package/dist/webui/tools/artifacts/ArtifactElement.js.map +0 -1
  544. package/dist/webui/tools/artifacts/ArtifactPill.d.ts +0 -4
  545. package/dist/webui/tools/artifacts/ArtifactPill.d.ts.map +0 -1
  546. package/dist/webui/tools/artifacts/ArtifactPill.js +0 -23
  547. package/dist/webui/tools/artifacts/ArtifactPill.js.map +0 -1
  548. package/dist/webui/tools/artifacts/Console.d.ts +0 -18
  549. package/dist/webui/tools/artifacts/Console.d.ts.map +0 -1
  550. package/dist/webui/tools/artifacts/Console.js +0 -95
  551. package/dist/webui/tools/artifacts/Console.js.map +0 -1
  552. package/dist/webui/tools/artifacts/DocxArtifact.d.ts +0 -22
  553. package/dist/webui/tools/artifacts/DocxArtifact.d.ts.map +0 -1
  554. package/dist/webui/tools/artifacts/DocxArtifact.js +0 -208
  555. package/dist/webui/tools/artifacts/DocxArtifact.js.map +0 -1
  556. package/dist/webui/tools/artifacts/ExcelArtifact.d.ts +0 -24
  557. package/dist/webui/tools/artifacts/ExcelArtifact.d.ts.map +0 -1
  558. package/dist/webui/tools/artifacts/ExcelArtifact.js +0 -216
  559. package/dist/webui/tools/artifacts/ExcelArtifact.js.map +0 -1
  560. package/dist/webui/tools/artifacts/GenericArtifact.d.ts +0 -19
  561. package/dist/webui/tools/artifacts/GenericArtifact.d.ts.map +0 -1
  562. package/dist/webui/tools/artifacts/GenericArtifact.js +0 -117
  563. package/dist/webui/tools/artifacts/GenericArtifact.js.map +0 -1
  564. package/dist/webui/tools/artifacts/HtmlArtifact.d.ts +0 -27
  565. package/dist/webui/tools/artifacts/HtmlArtifact.d.ts.map +0 -1
  566. package/dist/webui/tools/artifacts/HtmlArtifact.js +0 -189
  567. package/dist/webui/tools/artifacts/HtmlArtifact.js.map +0 -1
  568. package/dist/webui/tools/artifacts/ImageArtifact.d.ts +0 -20
  569. package/dist/webui/tools/artifacts/ImageArtifact.d.ts.map +0 -1
  570. package/dist/webui/tools/artifacts/ImageArtifact.js +0 -120
  571. package/dist/webui/tools/artifacts/ImageArtifact.js.map +0 -1
  572. package/dist/webui/tools/artifacts/MarkdownArtifact.d.ts +0 -19
  573. package/dist/webui/tools/artifacts/MarkdownArtifact.d.ts.map +0 -1
  574. package/dist/webui/tools/artifacts/MarkdownArtifact.js +0 -82
  575. package/dist/webui/tools/artifacts/MarkdownArtifact.js.map +0 -1
  576. package/dist/webui/tools/artifacts/PdfArtifact.d.ts +0 -25
  577. package/dist/webui/tools/artifacts/PdfArtifact.d.ts.map +0 -1
  578. package/dist/webui/tools/artifacts/PdfArtifact.js +0 -184
  579. package/dist/webui/tools/artifacts/PdfArtifact.js.map +0 -1
  580. package/dist/webui/tools/artifacts/SvgArtifact.d.ts +0 -18
  581. package/dist/webui/tools/artifacts/SvgArtifact.d.ts.map +0 -1
  582. package/dist/webui/tools/artifacts/SvgArtifact.js +0 -78
  583. package/dist/webui/tools/artifacts/SvgArtifact.js.map +0 -1
  584. package/dist/webui/tools/artifacts/TextArtifact.d.ts +0 -19
  585. package/dist/webui/tools/artifacts/TextArtifact.d.ts.map +0 -1
  586. package/dist/webui/tools/artifacts/TextArtifact.js +0 -144
  587. package/dist/webui/tools/artifacts/TextArtifact.js.map +0 -1
  588. package/dist/webui/tools/artifacts/artifacts-tool-renderer.d.ts +0 -11
  589. package/dist/webui/tools/artifacts/artifacts-tool-renderer.d.ts.map +0 -1
  590. package/dist/webui/tools/artifacts/artifacts-tool-renderer.js +0 -272
  591. package/dist/webui/tools/artifacts/artifacts-tool-renderer.js.map +0 -1
  592. package/dist/webui/tools/artifacts/artifacts.d.ts +0 -63
  593. package/dist/webui/tools/artifacts/artifacts.d.ts.map +0 -1
  594. package/dist/webui/tools/artifacts/artifacts.js +0 -659
  595. package/dist/webui/tools/artifacts/artifacts.js.map +0 -1
  596. package/dist/webui/tools/artifacts/index.d.ts +0 -8
  597. package/dist/webui/tools/artifacts/index.d.ts.map +0 -1
  598. package/dist/webui/tools/artifacts/index.js +0 -8
  599. package/dist/webui/tools/artifacts/index.js.map +0 -1
  600. package/dist/webui/tools/extract-document.d.ts +0 -24
  601. package/dist/webui/tools/extract-document.d.ts.map +0 -1
  602. package/dist/webui/tools/extract-document.js +0 -216
  603. package/dist/webui/tools/extract-document.js.map +0 -1
  604. package/dist/webui/tools/index.d.ts +0 -16
  605. package/dist/webui/tools/index.d.ts.map +0 -1
  606. package/dist/webui/tools/index.js +0 -33
  607. package/dist/webui/tools/index.js.map +0 -1
  608. package/dist/webui/tools/javascript-repl.d.ts +0 -44
  609. package/dist/webui/tools/javascript-repl.d.ts.map +0 -1
  610. package/dist/webui/tools/javascript-repl.js +0 -224
  611. package/dist/webui/tools/javascript-repl.js.map +0 -1
  612. package/dist/webui/tools/renderer-registry.d.ts +0 -23
  613. package/dist/webui/tools/renderer-registry.d.ts.map +0 -1
  614. package/dist/webui/tools/renderer-registry.js +0 -107
  615. package/dist/webui/tools/renderer-registry.js.map +0 -1
  616. package/dist/webui/tools/renderers/BashRenderer.d.ts +0 -10
  617. package/dist/webui/tools/renderers/BashRenderer.d.ts.map +0 -1
  618. package/dist/webui/tools/renderers/BashRenderer.js +0 -42
  619. package/dist/webui/tools/renderers/BashRenderer.js.map +0 -1
  620. package/dist/webui/tools/renderers/CalculateRenderer.d.ts +0 -10
  621. package/dist/webui/tools/renderers/CalculateRenderer.d.ts.map +0 -1
  622. package/dist/webui/tools/renderers/CalculateRenderer.js +0 -45
  623. package/dist/webui/tools/renderers/CalculateRenderer.js.map +0 -1
  624. package/dist/webui/tools/renderers/DefaultRenderer.d.ts +0 -6
  625. package/dist/webui/tools/renderers/DefaultRenderer.d.ts.map +0 -1
  626. package/dist/webui/tools/renderers/DefaultRenderer.js +0 -94
  627. package/dist/webui/tools/renderers/DefaultRenderer.js.map +0 -1
  628. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.d.ts +0 -10
  629. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.d.ts.map +0 -1
  630. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.js +0 -72
  631. package/dist/webui/tools/renderers/GetCurrentTimeRenderer.js.map +0 -1
  632. package/dist/webui/tools/types.d.ts +0 -10
  633. package/dist/webui/tools/types.d.ts.map +0 -1
  634. package/dist/webui/tools/types.js +0 -2
  635. package/dist/webui/tools/types.js.map +0 -1
  636. package/dist/webui/utils/attachment-utils.d.ts +0 -19
  637. package/dist/webui/utils/attachment-utils.d.ts.map +0 -1
  638. package/dist/webui/utils/attachment-utils.js +0 -415
  639. package/dist/webui/utils/attachment-utils.js.map +0 -1
  640. package/dist/webui/utils/auth-token.d.ts +0 -3
  641. package/dist/webui/utils/auth-token.d.ts.map +0 -1
  642. package/dist/webui/utils/auth-token.js +0 -19
  643. package/dist/webui/utils/auth-token.js.map +0 -1
  644. package/dist/webui/utils/format.d.ts +0 -6
  645. package/dist/webui/utils/format.d.ts.map +0 -1
  646. package/dist/webui/utils/format.js +0 -47
  647. package/dist/webui/utils/format.js.map +0 -1
  648. package/dist/webui/utils/i18n.d.ts +0 -636
  649. package/dist/webui/utils/i18n.d.ts.map +0 -1
  650. package/dist/webui/utils/i18n.js +0 -418
  651. package/dist/webui/utils/i18n.js.map +0 -1
  652. package/dist/webui/utils/model-discovery.d.ts +0 -38
  653. package/dist/webui/utils/model-discovery.d.ts.map +0 -1
  654. package/dist/webui/utils/model-discovery.js +0 -243
  655. package/dist/webui/utils/model-discovery.js.map +0 -1
  656. package/dist/webui/utils/proxy-utils.d.ts +0 -45
  657. package/dist/webui/utils/proxy-utils.d.ts.map +0 -1
  658. package/dist/webui/utils/proxy-utils.js +0 -116
  659. package/dist/webui/utils/proxy-utils.js.map +0 -1
  660. package/dist/webui/utils/test-sessions.d.ts +0 -359
  661. package/dist/webui/utils/test-sessions.d.ts.map +0 -1
  662. package/dist/webui/utils/test-sessions.js +0 -2325
  663. package/dist/webui/utils/test-sessions.js.map +0 -1
  664. package/dist/webui.d.ts +0 -2
  665. package/dist/webui.d.ts.map +0 -1
  666. package/dist/webui.js +0 -2
  667. package/dist/webui.js.map +0 -1
package/dist/tui/tui.js CHANGED
@@ -7,6 +7,21 @@ import * as path from "node:path";
7
7
  import { isKeyRelease, matchesKey } from "./keys.js";
8
8
  import { getCapabilities, setCellDimensions } from "./terminal-image.js";
9
9
  import { extractSegments, sliceByColumn, sliceWithWidth, visibleWidth } from "./utils.js";
10
+ export class ComponentBase {
11
+ invalidate() {
12
+ this._cachedWidth = undefined;
13
+ this._cachedRender = undefined;
14
+ }
15
+ renderCached(width, renderFn) {
16
+ if (this._cachedRender && this._cachedWidth === width) {
17
+ return this._cachedRender;
18
+ }
19
+ const rendered = renderFn();
20
+ this._cachedWidth = width;
21
+ this._cachedRender = rendered;
22
+ return rendered;
23
+ }
24
+ }
10
25
  /** Type guard to check if a component implements Focusable */
11
26
  export function isFocusable(component) {
12
27
  return component !== null && "focused" in component;
@@ -32,23 +47,159 @@ function parseSizeValue(value, referenceSize) {
32
47
  }
33
48
  return undefined;
34
49
  }
50
+ export class FocusManager {
51
+ constructor() {
52
+ this.focused = null;
53
+ }
54
+ setFocus(component) {
55
+ const previous = this.focused;
56
+ if (isFocusable(previous))
57
+ previous.focused = false;
58
+ previous?.onBlur?.();
59
+ this.focused = component;
60
+ if (isFocusable(component))
61
+ component.focused = true;
62
+ component?.onFocus?.();
63
+ return { previous, current: component };
64
+ }
65
+ getFocus() {
66
+ return this.focused;
67
+ }
68
+ }
69
+ export class RenderEngine {
70
+ diffLines(oldLines, newLines) {
71
+ let firstChanged = -1;
72
+ let lastChanged = -1;
73
+ const maxLines = Math.max(newLines.length, oldLines.length);
74
+ for (let i = 0; i < maxLines; i++) {
75
+ const oldLine = i < oldLines.length ? oldLines[i] : "";
76
+ const newLine = i < newLines.length ? newLines[i] : "";
77
+ if (oldLine !== newLine) {
78
+ if (firstChanged === -1)
79
+ firstChanged = i;
80
+ lastChanged = i;
81
+ }
82
+ }
83
+ const appended = newLines.length > oldLines.length;
84
+ if (appended) {
85
+ if (firstChanged === -1)
86
+ firstChanged = oldLines.length;
87
+ lastChanged = newLines.length - 1;
88
+ }
89
+ return { firstChanged, lastChanged, appended };
90
+ }
91
+ }
92
+ export class LayoutEngine {
93
+ resolveOverlayLayout(options, overlayHeight, termWidth, termHeight) {
94
+ const opt = options ?? {};
95
+ const margin = typeof opt.margin === "number"
96
+ ? { top: opt.margin, right: opt.margin, bottom: opt.margin, left: opt.margin }
97
+ : (opt.margin ?? {});
98
+ const marginTop = Math.max(0, margin.top ?? 0);
99
+ const marginRight = Math.max(0, margin.right ?? 0);
100
+ const marginBottom = Math.max(0, margin.bottom ?? 0);
101
+ const marginLeft = Math.max(0, margin.left ?? 0);
102
+ const availWidth = Math.max(1, termWidth - marginLeft - marginRight);
103
+ const availHeight = Math.max(1, termHeight - marginTop - marginBottom);
104
+ let width = parseSizeValue(opt.width, termWidth) ?? Math.min(80, availWidth);
105
+ if (opt.minWidth !== undefined)
106
+ width = Math.max(width, opt.minWidth);
107
+ width = Math.max(1, Math.min(width, availWidth));
108
+ let maxHeight = parseSizeValue(opt.maxHeight, termHeight);
109
+ if (maxHeight !== undefined)
110
+ maxHeight = Math.max(1, Math.min(maxHeight, availHeight));
111
+ const effectiveHeight = maxHeight !== undefined ? Math.min(overlayHeight, maxHeight) : overlayHeight;
112
+ let row;
113
+ let col;
114
+ if (opt.row !== undefined) {
115
+ if (typeof opt.row === "string") {
116
+ const match = opt.row.match(/^(\d+(?:\.\d+)?)%$/);
117
+ if (match) {
118
+ const maxRow = Math.max(0, availHeight - effectiveHeight);
119
+ row = marginTop + Math.floor(maxRow * (parseFloat(match[1]) / 100));
120
+ }
121
+ else
122
+ row = this.resolveAnchorRow("center", effectiveHeight, availHeight, marginTop);
123
+ }
124
+ else
125
+ row = opt.row;
126
+ }
127
+ else
128
+ row = this.resolveAnchorRow(opt.anchor ?? "center", effectiveHeight, availHeight, marginTop);
129
+ if (opt.col !== undefined) {
130
+ if (typeof opt.col === "string") {
131
+ const match = opt.col.match(/^(\d+(?:\.\d+)?)%$/);
132
+ if (match) {
133
+ const maxCol = Math.max(0, availWidth - width);
134
+ col = marginLeft + Math.floor(maxCol * (parseFloat(match[1]) / 100));
135
+ }
136
+ else
137
+ col = this.resolveAnchorCol("center", width, availWidth, marginLeft);
138
+ }
139
+ else
140
+ col = opt.col;
141
+ }
142
+ else
143
+ col = this.resolveAnchorCol(opt.anchor ?? "center", width, availWidth, marginLeft);
144
+ if (opt.offsetY !== undefined)
145
+ row += opt.offsetY;
146
+ if (opt.offsetX !== undefined)
147
+ col += opt.offsetX;
148
+ row = Math.max(marginTop, Math.min(row, termHeight - marginBottom - effectiveHeight));
149
+ col = Math.max(marginLeft, Math.min(col, termWidth - marginRight - width));
150
+ return { width, row, col, maxHeight };
151
+ }
152
+ resolveAnchorRow(anchor, height, availHeight, marginTop) {
153
+ switch (anchor) {
154
+ case "top-left":
155
+ case "top-center":
156
+ case "top-right":
157
+ return marginTop;
158
+ case "bottom-left":
159
+ case "bottom-center":
160
+ case "bottom-right":
161
+ return marginTop + availHeight - height;
162
+ default:
163
+ return marginTop + Math.floor((availHeight - height) / 2);
164
+ }
165
+ }
166
+ resolveAnchorCol(anchor, width, availWidth, marginLeft) {
167
+ switch (anchor) {
168
+ case "top-left":
169
+ case "left-center":
170
+ case "bottom-left":
171
+ return marginLeft;
172
+ case "top-right":
173
+ case "right-center":
174
+ case "bottom-right":
175
+ return marginLeft + availWidth - width;
176
+ default:
177
+ return marginLeft + Math.floor((availWidth - width) / 2);
178
+ }
179
+ }
180
+ }
35
181
  /**
36
182
  * Container - a component that contains other components
37
183
  */
38
- export class Container {
184
+ export class Container extends ComponentBase {
39
185
  constructor() {
186
+ super(...arguments);
40
187
  this.children = [];
41
188
  }
42
189
  addChild(component) {
43
190
  this.children.push(component);
191
+ component.onMount?.();
44
192
  }
45
193
  removeChild(component) {
46
194
  const index = this.children.indexOf(component);
47
195
  if (index !== -1) {
48
196
  this.children.splice(index, 1);
197
+ component.onUnmount?.();
49
198
  }
50
199
  }
51
200
  clear() {
201
+ for (const child of this.children)
202
+ child.onUnmount?.();
52
203
  this.children = [];
53
204
  }
54
205
  invalidate() {
@@ -73,6 +224,9 @@ export class TUI extends Container {
73
224
  this.previousLines = [];
74
225
  this.previousWidth = 0;
75
226
  this.focusedComponent = null;
227
+ this.focusManager = new FocusManager();
228
+ this.renderEngine = new RenderEngine();
229
+ this.layoutEngine = new LayoutEngine();
76
230
  this.renderRequested = false;
77
231
  this.cursorRow = 0; // Logical cursor row (end of rendered content)
78
232
  this.hardwareCursorRow = 0; // Actual terminal cursor row (may differ due to IME positioning)
@@ -105,15 +259,8 @@ export class TUI extends Container {
105
259
  this.requestRender();
106
260
  }
107
261
  setFocus(component) {
108
- // Clear focused flag on old component
109
- if (isFocusable(this.focusedComponent)) {
110
- this.focusedComponent.focused = false;
111
- }
112
- this.focusedComponent = component;
113
- // Set focused flag on new component
114
- if (isFocusable(component)) {
115
- component.focused = true;
116
- }
262
+ this.focusManager.setFocus(component);
263
+ this.focusedComponent = this.focusManager.getFocus();
117
264
  }
118
265
  /**
119
266
  * Show an overlay component with configurable positioning and sizing.
@@ -338,126 +485,7 @@ export class TUI extends Container {
338
485
  * Returns { width, row, col, maxHeight } for rendering.
339
486
  */
340
487
  resolveOverlayLayout(options, overlayHeight, termWidth, termHeight) {
341
- const opt = options ?? {};
342
- // Parse margin (clamp to non-negative)
343
- const margin = typeof opt.margin === "number"
344
- ? { top: opt.margin, right: opt.margin, bottom: opt.margin, left: opt.margin }
345
- : (opt.margin ?? {});
346
- const marginTop = Math.max(0, margin.top ?? 0);
347
- const marginRight = Math.max(0, margin.right ?? 0);
348
- const marginBottom = Math.max(0, margin.bottom ?? 0);
349
- const marginLeft = Math.max(0, margin.left ?? 0);
350
- // Available space after margins
351
- const availWidth = Math.max(1, termWidth - marginLeft - marginRight);
352
- const availHeight = Math.max(1, termHeight - marginTop - marginBottom);
353
- // === Resolve width ===
354
- let width = parseSizeValue(opt.width, termWidth) ?? Math.min(80, availWidth);
355
- // Apply minWidth
356
- if (opt.minWidth !== undefined) {
357
- width = Math.max(width, opt.minWidth);
358
- }
359
- // Clamp to available space
360
- width = Math.max(1, Math.min(width, availWidth));
361
- // === Resolve maxHeight ===
362
- let maxHeight = parseSizeValue(opt.maxHeight, termHeight);
363
- // Clamp to available space
364
- if (maxHeight !== undefined) {
365
- maxHeight = Math.max(1, Math.min(maxHeight, availHeight));
366
- }
367
- // Effective overlay height (may be clamped by maxHeight)
368
- const effectiveHeight = maxHeight !== undefined ? Math.min(overlayHeight, maxHeight) : overlayHeight;
369
- // === Resolve position ===
370
- let row;
371
- let col;
372
- if (opt.row !== undefined) {
373
- if (typeof opt.row === "string") {
374
- // Percentage: 0% = top, 100% = bottom (overlay stays within bounds)
375
- const match = opt.row.match(/^(\d+(?:\.\d+)?)%$/);
376
- if (match) {
377
- const maxRow = Math.max(0, availHeight - effectiveHeight);
378
- const percent = parseFloat(match[1]) / 100;
379
- row = marginTop + Math.floor(maxRow * percent);
380
- }
381
- else {
382
- // Invalid format, fall back to center
383
- row = this.resolveAnchorRow("center", effectiveHeight, availHeight, marginTop);
384
- }
385
- }
386
- else {
387
- // Absolute row position
388
- row = opt.row;
389
- }
390
- }
391
- else {
392
- // Anchor-based (default: center)
393
- const anchor = opt.anchor ?? "center";
394
- row = this.resolveAnchorRow(anchor, effectiveHeight, availHeight, marginTop);
395
- }
396
- if (opt.col !== undefined) {
397
- if (typeof opt.col === "string") {
398
- // Percentage: 0% = left, 100% = right (overlay stays within bounds)
399
- const match = opt.col.match(/^(\d+(?:\.\d+)?)%$/);
400
- if (match) {
401
- const maxCol = Math.max(0, availWidth - width);
402
- const percent = parseFloat(match[1]) / 100;
403
- col = marginLeft + Math.floor(maxCol * percent);
404
- }
405
- else {
406
- // Invalid format, fall back to center
407
- col = this.resolveAnchorCol("center", width, availWidth, marginLeft);
408
- }
409
- }
410
- else {
411
- // Absolute column position
412
- col = opt.col;
413
- }
414
- }
415
- else {
416
- // Anchor-based (default: center)
417
- const anchor = opt.anchor ?? "center";
418
- col = this.resolveAnchorCol(anchor, width, availWidth, marginLeft);
419
- }
420
- // Apply offsets
421
- if (opt.offsetY !== undefined)
422
- row += opt.offsetY;
423
- if (opt.offsetX !== undefined)
424
- col += opt.offsetX;
425
- // Clamp to terminal bounds (respecting margins)
426
- row = Math.max(marginTop, Math.min(row, termHeight - marginBottom - effectiveHeight));
427
- col = Math.max(marginLeft, Math.min(col, termWidth - marginRight - width));
428
- return { width, row, col, maxHeight };
429
- }
430
- resolveAnchorRow(anchor, height, availHeight, marginTop) {
431
- switch (anchor) {
432
- case "top-left":
433
- case "top-center":
434
- case "top-right":
435
- return marginTop;
436
- case "bottom-left":
437
- case "bottom-center":
438
- case "bottom-right":
439
- return marginTop + availHeight - height;
440
- case "left-center":
441
- case "center":
442
- case "right-center":
443
- return marginTop + Math.floor((availHeight - height) / 2);
444
- }
445
- }
446
- resolveAnchorCol(anchor, width, availWidth, marginLeft) {
447
- switch (anchor) {
448
- case "top-left":
449
- case "left-center":
450
- case "bottom-left":
451
- return marginLeft;
452
- case "top-right":
453
- case "right-center":
454
- case "bottom-right":
455
- return marginLeft + availWidth - width;
456
- case "top-center":
457
- case "center":
458
- case "bottom-center":
459
- return marginLeft + Math.floor((availWidth - width) / 2);
460
- }
488
+ return this.layoutEngine.resolveOverlayLayout(options, overlayHeight, termWidth, termHeight);
461
489
  }
462
490
  /** Composite all overlays into content lines (in stack order, later = on top). */
463
491
  compositeOverlays(lines, termWidth, termHeight) {
@@ -585,6 +613,45 @@ export class TUI extends Container {
585
613
  }
586
614
  return null;
587
615
  }
616
+ renderFullFrame(newLines, width, height, cursorPos, clear) {
617
+ this.fullRedrawCount += 1;
618
+ let buffer = "\x1b[?2026h";
619
+ if (clear)
620
+ buffer += "\x1b[3J\x1b[2J\x1b[H";
621
+ for (let i = 0; i < newLines.length; i++) {
622
+ if (i > 0)
623
+ buffer += "\r\n";
624
+ buffer += newLines[i];
625
+ }
626
+ buffer += "\x1b[?2026l";
627
+ this.terminal.write(buffer);
628
+ this.cursorRow = Math.max(0, newLines.length - 1);
629
+ this.hardwareCursorRow = this.cursorRow;
630
+ if (clear) {
631
+ this.maxLinesRendered = newLines.length;
632
+ }
633
+ else {
634
+ this.maxLinesRendered = Math.max(this.maxLinesRendered, newLines.length);
635
+ }
636
+ this.previousViewportTop = Math.max(0, this.maxLinesRendered - height);
637
+ this.positionHardwareCursor(cursorPos, newLines.length);
638
+ this.previousLines = newLines;
639
+ this.previousWidth = width;
640
+ }
641
+ prepareRenderFrame(width, height) {
642
+ let newLines = this.render(width);
643
+ if (this.overlayStack.length > 0) {
644
+ newLines = this.compositeOverlays(newLines, width, height);
645
+ }
646
+ const cursorPos = this.extractCursorPosition(newLines);
647
+ newLines = this.applyLineResets(newLines);
648
+ return { newLines, cursorPos };
649
+ }
650
+ computeRenderDiff(newLines) {
651
+ const { firstChanged, lastChanged, appended: appendedLines } = this.renderEngine.diffLines(this.previousLines, newLines);
652
+ const appendStart = appendedLines && firstChanged === this.previousLines.length && firstChanged > 0;
653
+ return { firstChanged, lastChanged, appendedLines, appendStart };
654
+ }
588
655
  doRender() {
589
656
  const width = this.terminal.columns;
590
657
  const height = this.terminal.rows;
@@ -596,43 +663,11 @@ export class TUI extends Container {
596
663
  const targetScreenRow = targetRow - viewportTop;
597
664
  return targetScreenRow - currentScreenRow;
598
665
  };
599
- // Render all components to get new lines
600
- let newLines = this.render(width);
601
- // Composite overlays into the rendered lines (before differential compare)
602
- if (this.overlayStack.length > 0) {
603
- newLines = this.compositeOverlays(newLines, width, height);
604
- }
605
- // Extract cursor position before applying line resets (marker must be found first)
606
- const cursorPos = this.extractCursorPosition(newLines);
607
- newLines = this.applyLineResets(newLines);
666
+ const { newLines, cursorPos } = this.prepareRenderFrame(width, height);
608
667
  // Width changed - need full re-render
609
668
  const widthChanged = this.previousWidth !== 0 && this.previousWidth !== width;
610
- // Helper to clear scrollback and viewport and render all new lines
611
669
  const fullRender = (clear) => {
612
- this.fullRedrawCount += 1;
613
- let buffer = "\x1b[?2026h"; // Begin synchronized output
614
- if (clear)
615
- buffer += "\x1b[3J\x1b[2J\x1b[H"; // Clear scrollback, screen, and home
616
- for (let i = 0; i < newLines.length; i++) {
617
- if (i > 0)
618
- buffer += "\r\n";
619
- buffer += newLines[i];
620
- }
621
- buffer += "\x1b[?2026l"; // End synchronized output
622
- this.terminal.write(buffer);
623
- this.cursorRow = Math.max(0, newLines.length - 1);
624
- this.hardwareCursorRow = this.cursorRow;
625
- // Reset max lines when clearing, otherwise track growth
626
- if (clear) {
627
- this.maxLinesRendered = newLines.length;
628
- }
629
- else {
630
- this.maxLinesRendered = Math.max(this.maxLinesRendered, newLines.length);
631
- }
632
- this.previousViewportTop = Math.max(0, this.maxLinesRendered - height);
633
- this.positionHardwareCursor(cursorPos, newLines.length);
634
- this.previousLines = newLines;
635
- this.previousWidth = width;
670
+ this.renderFullFrame(newLines, width, height, cursorPos, clear);
636
671
  };
637
672
  // First render - just output everything without clearing (assumes clean screen)
638
673
  if (this.previousLines.length === 0 && !widthChanged) {
@@ -644,28 +679,8 @@ export class TUI extends Container {
644
679
  fullRender(true);
645
680
  return;
646
681
  }
647
- // Find first and last changed lines
648
- let firstChanged = -1;
649
- let lastChanged = -1;
650
- const maxLines = Math.max(newLines.length, this.previousLines.length);
651
- for (let i = 0; i < maxLines; i++) {
652
- const oldLine = i < this.previousLines.length ? this.previousLines[i] : "";
653
- const newLine = i < newLines.length ? newLines[i] : "";
654
- if (oldLine !== newLine) {
655
- if (firstChanged === -1) {
656
- firstChanged = i;
657
- }
658
- lastChanged = i;
659
- }
660
- }
661
- const appendedLines = newLines.length > this.previousLines.length;
662
- if (appendedLines) {
663
- if (firstChanged === -1) {
664
- firstChanged = this.previousLines.length;
665
- }
666
- lastChanged = newLines.length - 1;
667
- }
668
- const appendStart = appendedLines && firstChanged === this.previousLines.length && firstChanged > 0;
682
+ // Find first and last changed lines via RenderEngine
683
+ let { firstChanged, lastChanged, appendedLines, appendStart } = this.computeRenderDiff(newLines);
669
684
  // No changes - but still need to update hardware cursor position if it moved
670
685
  if (firstChanged === -1) {
671
686
  this.positionHardwareCursor(cursorPos, newLines.length);
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/tui/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/tui/tui.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,15 @@
2
2
  * Get the shared grapheme segmenter instance.
3
3
  */
4
4
  export declare function getSegmenter(): Intl.Segmenter;
5
+ export declare class GraphemeHandler {
6
+ segment(text: string): Intl.Segments;
7
+ iterator(text: string): Generator<string>;
8
+ }
9
+ export declare class TextWidthCalculator {
10
+ getWidth(text: string): number;
11
+ clearCache(): void;
12
+ }
13
+ export declare const textWidthCalculator: TextWidthCalculator;
5
14
  /**
6
15
  * Calculate the visible width of a string in terminal columns.
7
16
  */
@@ -24,6 +33,16 @@ export declare function extractAnsiCode(str: string, pos: number): {
24
33
  * @param width - Maximum visible width per line
25
34
  * @returns Array of wrapped lines (NOT padded to width)
26
35
  */
36
+ export declare class AnsiCodeManager {
37
+ private readonly tracker;
38
+ process(ansiCode: string): void;
39
+ toAnsiString(): string;
40
+ reset(): void;
41
+ }
42
+ export declare class TextWrapper {
43
+ wrap(text: string, width: number): string[];
44
+ }
45
+ export declare const textWrapper: TextWrapper;
27
46
  export declare function wrapTextWithAnsi(text: string, width: number): string[];
28
47
  /**
29
48
  * Check if a character is whitespace.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tui/utils.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAAC,SAAS,CAE7C;AAmED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAsDhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsCjG;AA+QD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBtE;AAmFD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAuED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CASzG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAc,EACxB,GAAG,GAAE,OAAe,GAClB,MAAM,CAuER;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,MAAM,CAEpG;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,UAAQ,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwCjC;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,UAAQ,GACjB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAiE5E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tui/utils.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAAC,SAAS,CAE7C;AAED,qBAAa,eAAe;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ;IAInC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;CAK1C;AAED,qBAAa,mBAAmB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI9B,UAAU,IAAI,IAAI;CAGlB;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAmE7D;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAsDhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsCjG;AA+QD;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI/B,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,IAAI;CAGb;AAED,qBAAa,WAAW;IACvB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAG3C;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC;AAE7C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBtE;AAmFD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAuED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CASzG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAc,EACxB,GAAG,GAAE,OAAe,GAClB,MAAM,CAuER;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,MAAM,CAEpG;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,UAAQ,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwCjC;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,UAAQ,GACjB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAiE5E"}