@evalops/maestro 0.10.51 → 0.10.53

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 (1502) hide show
  1. package/README.md +1 -3
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/agent.js.map +1 -1
  4. package/dist/agent/compaction.d.ts.map +1 -1
  5. package/dist/agent/compaction.js +1 -1
  6. package/dist/agent/compaction.js.map +1 -1
  7. package/dist/agent/context-handoff.d.ts.map +1 -1
  8. package/dist/agent/context-handoff.js +2 -1
  9. package/dist/agent/context-handoff.js.map +1 -1
  10. package/dist/agent/index.d.ts +8 -1
  11. package/dist/agent/index.d.ts.map +1 -1
  12. package/dist/agent/index.js +8 -1
  13. package/dist/agent/index.js.map +1 -1
  14. package/dist/agent/modes.d.ts +1 -1
  15. package/dist/agent/modes.d.ts.map +1 -1
  16. package/dist/agent/modes.js +56 -0
  17. package/dist/agent/modes.js.map +1 -1
  18. package/dist/agent/oracle-consultation-policy.d.ts +22 -0
  19. package/dist/agent/oracle-consultation-policy.d.ts.map +1 -0
  20. package/dist/agent/oracle-consultation-policy.js +72 -0
  21. package/dist/agent/oracle-consultation-policy.js.map +1 -0
  22. package/dist/agent/oracle-policy-experiment.d.ts +27 -0
  23. package/dist/agent/oracle-policy-experiment.d.ts.map +1 -0
  24. package/dist/agent/oracle-policy-experiment.js +59 -0
  25. package/dist/agent/oracle-policy-experiment.js.map +1 -0
  26. package/dist/agent/oracle-policy-rollout.d.ts +42 -0
  27. package/dist/agent/oracle-policy-rollout.d.ts.map +1 -0
  28. package/dist/agent/oracle-policy-rollout.js +80 -0
  29. package/dist/agent/oracle-policy-rollout.js.map +1 -0
  30. package/dist/agent/plugin-agent-api.d.ts +13 -0
  31. package/dist/agent/plugin-agent-api.d.ts.map +1 -0
  32. package/dist/agent/plugin-agent-api.js +11 -0
  33. package/dist/agent/plugin-agent-api.js.map +1 -0
  34. package/dist/agent/plugin-agent-loader.d.ts +17 -0
  35. package/dist/agent/plugin-agent-loader.d.ts.map +1 -0
  36. package/dist/agent/plugin-agent-loader.js +81 -0
  37. package/dist/agent/plugin-agent-loader.js.map +1 -0
  38. package/dist/agent/plugin-agent-registry.d.ts +62 -0
  39. package/dist/agent/plugin-agent-registry.d.ts.map +1 -0
  40. package/dist/agent/plugin-agent-registry.js +109 -0
  41. package/dist/agent/plugin-agent-registry.js.map +1 -0
  42. package/dist/agent/profile-loader.d.ts +7 -0
  43. package/dist/agent/profile-loader.d.ts.map +1 -0
  44. package/dist/agent/profile-loader.js +115 -0
  45. package/dist/agent/profile-loader.js.map +1 -0
  46. package/dist/agent/profiles.d.ts +30 -0
  47. package/dist/agent/profiles.d.ts.map +1 -0
  48. package/dist/agent/profiles.js +146 -0
  49. package/dist/agent/profiles.js.map +1 -0
  50. package/dist/agent/prompt-cache.d.ts +0 -4
  51. package/dist/agent/prompt-cache.d.ts.map +1 -1
  52. package/dist/agent/prompt-cache.js +1 -7
  53. package/dist/agent/prompt-cache.js.map +1 -1
  54. package/dist/agent/providers/google-gemini-cli.js +1 -0
  55. package/dist/agent/providers/google.js +1 -0
  56. package/dist/agent/providers/vertex.js +1 -0
  57. package/dist/agent/routing-receipt.d.ts +34 -0
  58. package/dist/agent/routing-receipt.d.ts.map +1 -0
  59. package/dist/agent/routing-receipt.js +55 -0
  60. package/dist/agent/routing-receipt.js.map +1 -0
  61. package/dist/{skills/artifact-metadata.d.ts → agent/skill-artifact-metadata.d.ts} +2 -4
  62. package/dist/agent/skill-artifact-metadata.d.ts.map +1 -0
  63. package/dist/{skills/artifact-metadata.js → agent/skill-artifact-metadata.js} +1 -38
  64. package/dist/agent/skill-artifact-metadata.js.map +1 -0
  65. package/dist/agent/subagent-specs.d.ts +1 -1
  66. package/dist/agent/subagent-specs.js +2 -2
  67. package/dist/agent/subagent-specs.js.map +1 -1
  68. package/dist/agent/token-counter.d.ts +40 -0
  69. package/dist/agent/token-counter.d.ts.map +1 -0
  70. package/dist/agent/token-counter.js +74 -0
  71. package/dist/agent/token-counter.js.map +1 -0
  72. package/dist/agent/transport/events.d.ts +1 -1
  73. package/dist/agent/transport/events.d.ts.map +1 -1
  74. package/dist/agent/transport/events.js +1 -1
  75. package/dist/agent/transport/events.js.map +1 -1
  76. package/dist/agent/types.d.ts +4 -2
  77. package/dist/agent/types.d.ts.map +1 -1
  78. package/dist/agent/types.js.map +1 -1
  79. package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
  80. package/dist/app-server/plugin-bundle-api.js +1 -0
  81. package/dist/app-server/plugin-bundle-api.js.map +1 -1
  82. package/dist/app-server/session-api.d.ts.map +1 -1
  83. package/dist/app-server/session-api.js +15 -2
  84. package/dist/app-server/session-api.js.map +1 -1
  85. package/dist/audit/logger.d.ts +5 -5
  86. package/dist/cli/args.d.ts +2 -0
  87. package/dist/cli/args.d.ts.map +1 -1
  88. package/dist/cli/args.js +18 -1
  89. package/dist/cli/args.js.map +1 -1
  90. package/dist/cli/direct-runtime-command.d.ts +1 -0
  91. package/dist/cli/direct-runtime-command.d.ts.map +1 -1
  92. package/dist/cli/direct-runtime-command.js +25 -3
  93. package/dist/cli/direct-runtime-command.js.map +1 -1
  94. package/dist/cli/headless.d.ts +3 -19
  95. package/dist/cli/headless.d.ts.map +1 -1
  96. package/dist/cli/headless.js +8 -619
  97. package/dist/cli/headless.js.map +1 -1
  98. package/dist/cli/help.d.ts.map +1 -1
  99. package/dist/cli/help.js +3 -0
  100. package/dist/cli/help.js.map +1 -1
  101. package/dist/cli/native-tui-launcher.d.ts +126 -0
  102. package/dist/cli/native-tui-launcher.d.ts.map +1 -0
  103. package/dist/cli/native-tui-launcher.js +425 -0
  104. package/dist/cli/native-tui-launcher.js.map +1 -0
  105. package/dist/cli/rpc-mode.d.ts +3 -27
  106. package/dist/cli/rpc-mode.d.ts.map +1 -1
  107. package/dist/cli/rpc-mode.js +8 -177
  108. package/dist/cli/rpc-mode.js.map +1 -1
  109. package/dist/cli/session.d.ts +11 -19
  110. package/dist/cli/session.d.ts.map +1 -1
  111. package/dist/cli/session.js +6 -64
  112. package/dist/cli/session.js.map +1 -1
  113. package/dist/cli-command-runtime.d.ts.map +1 -1
  114. package/dist/cli-command-runtime.js +26 -24
  115. package/dist/cli-command-runtime.js.map +1 -1
  116. package/dist/cli-runtime.js +52529 -137615
  117. package/dist/config/env-vars.d.ts +12 -0
  118. package/dist/config/env-vars.d.ts.map +1 -1
  119. package/dist/config/env-vars.js +12 -0
  120. package/dist/config/env-vars.js.map +1 -1
  121. package/dist/{cli-tui → config}/ui-state.d.ts +6 -1
  122. package/dist/config/ui-state.d.ts.map +1 -0
  123. package/dist/{cli-tui → config}/ui-state.js +1 -1
  124. package/dist/config/ui-state.js.map +1 -0
  125. package/dist/context/repo-map.d.ts.map +1 -1
  126. package/dist/context/repo-map.js +1 -7
  127. package/dist/context/repo-map.js.map +1 -1
  128. package/dist/context/token-optimizer.d.ts.map +1 -1
  129. package/dist/context/token-optimizer.js +1 -8
  130. package/dist/context/token-optimizer.js.map +1 -1
  131. package/dist/db/schema.d.ts +2 -2
  132. package/dist/hooks/notification-hooks.d.ts +1 -1
  133. package/dist/hooks/notification-hooks.d.ts.map +1 -1
  134. package/dist/hooks/notification-hooks.js.map +1 -1
  135. package/dist/hooks/tui-surface.d.ts +35 -0
  136. package/dist/hooks/tui-surface.d.ts.map +1 -0
  137. package/dist/hooks/tui-surface.js +11 -0
  138. package/dist/hooks/tui-surface.js.map +1 -0
  139. package/dist/hooks/types.d.ts +2 -1
  140. package/dist/hooks/types.d.ts.map +1 -1
  141. package/dist/hooks/types.js.map +1 -1
  142. package/dist/hooks/typescript-loader.d.ts.map +1 -1
  143. package/dist/hooks/typescript-loader.js.map +1 -1
  144. package/dist/hooks/ui-context.d.ts.map +1 -1
  145. package/dist/hooks/ui-context.js.map +1 -1
  146. package/dist/main.d.ts.map +1 -1
  147. package/dist/main.js +154 -882
  148. package/dist/main.js.map +1 -1
  149. package/dist/models/config-loader.d.ts +5 -5
  150. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +45 -0
  151. package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
  152. package/dist/node_modules/@evalops/contracts/dist/index.js +2 -0
  153. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
  154. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +284 -0
  155. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
  156. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +41 -0
  157. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
  158. package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts +986 -0
  159. package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
  160. package/dist/node_modules/@evalops/contracts/dist/schemas.js +49 -0
  161. package/dist/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
  162. package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts +56 -0
  163. package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts.map +1 -0
  164. package/dist/node_modules/@evalops/contracts/dist/token-estimation.js +86 -0
  165. package/dist/node_modules/@evalops/contracts/dist/token-estimation.js.map +1 -0
  166. package/dist/node_modules/@evalops/contracts/package.json +1 -1
  167. package/dist/packages/discovery.d.ts.map +1 -1
  168. package/dist/packages/discovery.js +1 -0
  169. package/dist/packages/discovery.js.map +1 -1
  170. package/dist/packages/inspection.d.ts.map +1 -1
  171. package/dist/packages/inspection.js +7 -1
  172. package/dist/packages/inspection.js.map +1 -1
  173. package/dist/packages/loader.d.ts.map +1 -1
  174. package/dist/packages/loader.js +8 -1
  175. package/dist/packages/loader.js.map +1 -1
  176. package/dist/packages/runtime.d.ts +1 -0
  177. package/dist/packages/runtime.d.ts.map +1 -1
  178. package/dist/packages/runtime.js +9 -1
  179. package/dist/packages/runtime.js.map +1 -1
  180. package/dist/packages/types.d.ts +6 -0
  181. package/dist/packages/types.d.ts.map +1 -1
  182. package/dist/packages/types.js.map +1 -1
  183. package/dist/runtime/agent-runtime.d.ts +22 -6
  184. package/dist/runtime/agent-runtime.d.ts.map +1 -1
  185. package/dist/runtime/agent-runtime.js +1 -1
  186. package/dist/runtime/agent-runtime.js.map +1 -1
  187. package/dist/runtime/env.d.ts +1 -0
  188. package/dist/runtime/env.d.ts.map +1 -1
  189. package/dist/runtime/env.js +1 -0
  190. package/dist/runtime/env.js.map +1 -1
  191. package/dist/{cli-tui → runtime}/prompt-queue.d.ts.map +1 -1
  192. package/dist/{cli-tui → runtime}/prompt-queue.js.map +1 -1
  193. package/dist/server/handlers/chat-ws.d.ts +2 -1
  194. package/dist/server/handlers/chat-ws.d.ts.map +1 -1
  195. package/dist/server/handlers/chat-ws.js +150 -5
  196. package/dist/server/handlers/chat-ws.js.map +1 -1
  197. package/dist/server/handlers/chat.d.ts.map +1 -1
  198. package/dist/server/handlers/chat.js +78 -5
  199. package/dist/server/handlers/chat.js.map +1 -1
  200. package/dist/server/handlers/package.d.ts.map +1 -1
  201. package/dist/server/handlers/package.js +1 -0
  202. package/dist/server/handlers/package.js.map +1 -1
  203. package/dist/server/handlers/queue.js +1 -1
  204. package/dist/server/handlers/queue.js.map +1 -1
  205. package/dist/server/handlers/ui.js +1 -1
  206. package/dist/server/handlers/ui.js.map +1 -1
  207. package/dist/server/handlers/zen.js +1 -1
  208. package/dist/server/handlers/zen.js.map +1 -1
  209. package/dist/server/hosted-session-manager.d.ts +3 -0
  210. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  211. package/dist/server/hosted-session-manager.js +26 -0
  212. package/dist/server/hosted-session-manager.js.map +1 -1
  213. package/dist/server/model-selection.d.ts +1 -0
  214. package/dist/server/model-selection.d.ts.map +1 -1
  215. package/dist/server/model-selection.js +4 -0
  216. package/dist/server/model-selection.js.map +1 -1
  217. package/dist/server/session-serialization.d.ts.map +1 -1
  218. package/dist/server/session-serialization.js +3 -0
  219. package/dist/server/session-serialization.js.map +1 -1
  220. package/dist/server/session-timeline.d.ts.map +1 -1
  221. package/dist/server/session-timeline.js +1 -1
  222. package/dist/server/session-timeline.js.map +1 -1
  223. package/dist/server/sse-session.d.ts +2 -0
  224. package/dist/server/sse-session.d.ts.map +1 -1
  225. package/dist/server/sse-session.js +3 -0
  226. package/dist/server/sse-session.js.map +1 -1
  227. package/dist/server/stores/ui-store.d.ts +1 -1
  228. package/dist/server/stores/ui-store.d.ts.map +1 -1
  229. package/dist/server/stores/ui-store.js.map +1 -1
  230. package/dist/server/utils/token-estimator.d.ts +2 -2
  231. package/dist/server/utils/token-estimator.d.ts.map +1 -1
  232. package/dist/server/utils/token-estimator.js +2 -12
  233. package/dist/server/utils/token-estimator.js.map +1 -1
  234. package/dist/server/validation.d.ts +54 -0
  235. package/dist/server/validation.d.ts.map +1 -1
  236. package/dist/services/image-providers/cost.d.ts +70 -0
  237. package/dist/services/image-providers/cost.d.ts.map +1 -0
  238. package/dist/services/image-providers/cost.js +164 -0
  239. package/dist/services/image-providers/cost.js.map +1 -0
  240. package/dist/services/image-providers/flux.d.ts +40 -0
  241. package/dist/services/image-providers/flux.d.ts.map +1 -0
  242. package/dist/services/image-providers/flux.js +99 -0
  243. package/dist/services/image-providers/flux.js.map +1 -0
  244. package/dist/services/image-providers/index.d.ts +24 -0
  245. package/dist/services/image-providers/index.d.ts.map +1 -0
  246. package/dist/services/image-providers/index.js +27 -0
  247. package/dist/services/image-providers/index.js.map +1 -0
  248. package/dist/services/image-providers/masks.d.ts +51 -0
  249. package/dist/services/image-providers/masks.d.ts.map +1 -0
  250. package/dist/services/image-providers/masks.js +132 -0
  251. package/dist/services/image-providers/masks.js.map +1 -0
  252. package/dist/services/image-providers/openai.d.ts +35 -0
  253. package/dist/services/image-providers/openai.d.ts.map +1 -0
  254. package/dist/services/image-providers/openai.js +93 -0
  255. package/dist/services/image-providers/openai.js.map +1 -0
  256. package/dist/services/image-providers/types.d.ts +61 -0
  257. package/dist/services/image-providers/types.d.ts.map +1 -0
  258. package/dist/services/image-providers/types.js +17 -0
  259. package/dist/services/image-providers/types.js.map +1 -0
  260. package/dist/services/intelligent-router/index.d.ts +1 -0
  261. package/dist/services/intelligent-router/index.d.ts.map +1 -1
  262. package/dist/services/intelligent-router/index.js +1 -0
  263. package/dist/services/intelligent-router/index.js.map +1 -1
  264. package/dist/services/intelligent-router/normalize.d.ts +1 -0
  265. package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
  266. package/dist/services/intelligent-router/normalize.js +17 -0
  267. package/dist/services/intelligent-router/normalize.js.map +1 -1
  268. package/dist/services/intelligent-router/outcome.d.ts +19 -0
  269. package/dist/services/intelligent-router/outcome.d.ts.map +1 -0
  270. package/dist/services/intelligent-router/outcome.js +51 -0
  271. package/dist/services/intelligent-router/outcome.js.map +1 -0
  272. package/dist/services/intelligent-router/recorder.d.ts +2 -0
  273. package/dist/services/intelligent-router/recorder.d.ts.map +1 -1
  274. package/dist/services/intelligent-router/recorder.js +72 -1
  275. package/dist/services/intelligent-router/recorder.js.map +1 -1
  276. package/dist/services/intelligent-router/service.d.ts +1 -0
  277. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  278. package/dist/services/intelligent-router/service.js +60 -11
  279. package/dist/services/intelligent-router/service.js.map +1 -1
  280. package/dist/services/intelligent-router/types.d.ts +18 -0
  281. package/dist/services/intelligent-router/types.d.ts.map +1 -1
  282. package/dist/services/intelligent-router/types.js.map +1 -1
  283. package/dist/services/workspace-config/middleware.d.ts +2 -0
  284. package/dist/services/workspace-config/middleware.d.ts.map +1 -1
  285. package/dist/services/workspace-config/middleware.js +25 -28
  286. package/dist/services/workspace-config/middleware.js.map +1 -1
  287. package/dist/session/agent-lineage-projection.d.ts +30 -0
  288. package/dist/session/agent-lineage-projection.d.ts.map +1 -0
  289. package/dist/session/agent-lineage-projection.js +109 -0
  290. package/dist/session/agent-lineage-projection.js.map +1 -0
  291. package/dist/session/manager.d.ts +3 -0
  292. package/dist/session/manager.d.ts.map +1 -1
  293. package/dist/session/manager.js +24 -0
  294. package/dist/session/manager.js.map +1 -1
  295. package/dist/session/session-graph-projection.d.ts +11 -0
  296. package/dist/session/session-graph-projection.d.ts.map +1 -1
  297. package/dist/session/session-graph-projection.js +28 -0
  298. package/dist/session/session-graph-projection.js.map +1 -1
  299. package/dist/session/types.d.ts +2 -0
  300. package/dist/session/types.d.ts.map +1 -1
  301. package/dist/session/types.js.map +1 -1
  302. package/dist/telemetry/maestro-event-bus.d.ts +1 -1
  303. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  304. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  305. package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
  306. package/dist/telemetry/oracle-policy.d.ts +6 -0
  307. package/dist/telemetry/oracle-policy.d.ts.map +1 -0
  308. package/dist/telemetry/oracle-policy.js +17 -0
  309. package/dist/telemetry/oracle-policy.js.map +1 -0
  310. package/dist/telemetry/wide-events.d.ts +1 -1
  311. package/dist/telemetry/wide-events.d.ts.map +1 -1
  312. package/dist/telemetry/wide-events.js.map +1 -1
  313. package/dist/theme/theme.d.ts +2 -8
  314. package/dist/theme/theme.d.ts.map +1 -1
  315. package/dist/theme/theme.js +7 -0
  316. package/dist/theme/theme.js.map +1 -1
  317. package/dist/theme/tui-theme-helpers.d.ts +2 -1
  318. package/dist/theme/tui-theme-helpers.d.ts.map +1 -1
  319. package/dist/theme/tui-theme-helpers.js.map +1 -1
  320. package/dist/theme/tui-theme-types.d.ts +39 -0
  321. package/dist/theme/tui-theme-types.d.ts.map +1 -0
  322. package/dist/theme/tui-theme-types.js +10 -0
  323. package/dist/theme/tui-theme-types.js.map +1 -0
  324. package/dist/tools/index.d.ts +199 -160
  325. package/dist/tools/index.d.ts.map +1 -1
  326. package/dist/tools/index.js +4 -0
  327. package/dist/tools/index.js.map +1 -1
  328. package/dist/tools/lazy-registry.d.ts.map +1 -1
  329. package/dist/tools/lazy-registry.js +1 -0
  330. package/dist/tools/lazy-registry.js.map +1 -1
  331. package/dist/tools/oracle.d.ts +9 -0
  332. package/dist/tools/oracle.d.ts.map +1 -1
  333. package/dist/tools/oracle.js +26 -24
  334. package/dist/tools/oracle.js.map +1 -1
  335. package/dist/tools/painter.d.ts +73 -0
  336. package/dist/tools/painter.d.ts.map +1 -0
  337. package/dist/tools/painter.js +283 -0
  338. package/dist/tools/painter.js.map +1 -0
  339. package/dist/tools/typebox-tool.d.ts.map +1 -1
  340. package/dist/tools/typebox-tool.js +1 -1
  341. package/dist/tools/typebox-tool.js.map +1 -1
  342. package/dist/utils/terminal-image.d.ts +52 -0
  343. package/dist/utils/terminal-image.d.ts.map +1 -0
  344. package/dist/utils/terminal-image.js +95 -0
  345. package/dist/utils/terminal-image.js.map +1 -0
  346. package/dist/utils/terminal-text.d.ts +11 -0
  347. package/dist/utils/terminal-text.d.ts.map +1 -0
  348. package/dist/utils/terminal-text.js +21 -0
  349. package/dist/utils/terminal-text.js.map +1 -0
  350. package/dist/version.json +2 -2
  351. package/dist/web-server.d.ts.map +1 -1
  352. package/dist/web-server.js +24 -2
  353. package/dist/web-server.js.map +1 -1
  354. package/package.json +13 -11
  355. package/skills/incident-triage/SKILL.md +4 -3
  356. package/dist/cli/commands/agents.d.ts +0 -24
  357. package/dist/cli/commands/agents.d.ts.map +0 -1
  358. package/dist/cli/commands/agents.js +0 -429
  359. package/dist/cli/commands/agents.js.map +0 -1
  360. package/dist/cli/commands/anthropic.d.ts +0 -2
  361. package/dist/cli/commands/anthropic.d.ts.map +0 -1
  362. package/dist/cli/commands/anthropic.js +0 -6
  363. package/dist/cli/commands/anthropic.js.map +0 -1
  364. package/dist/cli/commands/cost.d.ts +0 -13
  365. package/dist/cli/commands/cost.d.ts.map +0 -1
  366. package/dist/cli/commands/cost.js +0 -143
  367. package/dist/cli/commands/cost.js.map +0 -1
  368. package/dist/cli/commands/exec-constants.d.ts +0 -3
  369. package/dist/cli/commands/exec-constants.d.ts.map +0 -1
  370. package/dist/cli/commands/exec-constants.js +0 -3
  371. package/dist/cli/commands/exec-constants.js.map +0 -1
  372. package/dist/cli/commands/exec.d.ts +0 -19
  373. package/dist/cli/commands/exec.d.ts.map +0 -1
  374. package/dist/cli/commands/exec.js +0 -207
  375. package/dist/cli/commands/exec.js.map +0 -1
  376. package/dist/cli/commands/hooks.d.ts +0 -2
  377. package/dist/cli/commands/hooks.d.ts.map +0 -1
  378. package/dist/cli/commands/hooks.js +0 -25
  379. package/dist/cli/commands/hooks.js.map +0 -1
  380. package/dist/cli/commands/hosted-runner.d.ts +0 -25
  381. package/dist/cli/commands/hosted-runner.d.ts.map +0 -1
  382. package/dist/cli/commands/hosted-runner.js +0 -278
  383. package/dist/cli/commands/hosted-runner.js.map +0 -1
  384. package/dist/cli/commands/memory.d.ts +0 -2
  385. package/dist/cli/commands/memory.d.ts.map +0 -1
  386. package/dist/cli/commands/memory.js +0 -208
  387. package/dist/cli/commands/memory.js.map +0 -1
  388. package/dist/cli/commands/models.d.ts +0 -3
  389. package/dist/cli/commands/models.d.ts.map +0 -1
  390. package/dist/cli/commands/models.js +0 -154
  391. package/dist/cli/commands/models.js.map +0 -1
  392. package/dist/cli/commands/modes.d.ts +0 -8
  393. package/dist/cli/commands/modes.d.ts.map +0 -1
  394. package/dist/cli/commands/modes.js +0 -151
  395. package/dist/cli/commands/modes.js.map +0 -1
  396. package/dist/cli/commands/openai.d.ts +0 -2
  397. package/dist/cli/commands/openai.d.ts.map +0 -1
  398. package/dist/cli/commands/openai.js +0 -116
  399. package/dist/cli/commands/openai.js.map +0 -1
  400. package/dist/cli/commands/session-transfer.d.ts +0 -5
  401. package/dist/cli/commands/session-transfer.d.ts.map +0 -1
  402. package/dist/cli/commands/session-transfer.js +0 -43
  403. package/dist/cli/commands/session-transfer.js.map +0 -1
  404. package/dist/cli/commands/sessions.d.ts +0 -8
  405. package/dist/cli/commands/sessions.d.ts.map +0 -1
  406. package/dist/cli/commands/sessions.js +0 -152
  407. package/dist/cli/commands/sessions.js.map +0 -1
  408. package/dist/cli/commands/skill.d.ts +0 -10
  409. package/dist/cli/commands/skill.d.ts.map +0 -1
  410. package/dist/cli/commands/skill.js +0 -303
  411. package/dist/cli/commands/skill.js.map +0 -1
  412. package/dist/cli/commands/stats.d.ts +0 -7
  413. package/dist/cli/commands/stats.d.ts.map +0 -1
  414. package/dist/cli/commands/stats.js +0 -167
  415. package/dist/cli/commands/stats.js.map +0 -1
  416. package/dist/cli/commands/status.d.ts +0 -2
  417. package/dist/cli/commands/status.d.ts.map +0 -1
  418. package/dist/cli/commands/status.js +0 -11
  419. package/dist/cli/commands/status.js.map +0 -1
  420. package/dist/cli/commands/update.d.ts +0 -12
  421. package/dist/cli/commands/update.d.ts.map +0 -1
  422. package/dist/cli/commands/update.js +0 -148
  423. package/dist/cli/commands/update.js.map +0 -1
  424. package/dist/cli-tui/about-view.d.ts +0 -48
  425. package/dist/cli-tui/about-view.d.ts.map +0 -1
  426. package/dist/cli-tui/about-view.js +0 -206
  427. package/dist/cli-tui/about-view.js.map +0 -1
  428. package/dist/cli-tui/agent-event-router.d.ts +0 -28
  429. package/dist/cli-tui/agent-event-router.d.ts.map +0 -1
  430. package/dist/cli-tui/agent-event-router.js +0 -126
  431. package/dist/cli-tui/agent-event-router.js.map +0 -1
  432. package/dist/cli-tui/approval/approval-controller.d.ts +0 -28
  433. package/dist/cli-tui/approval/approval-controller.d.ts.map +0 -1
  434. package/dist/cli-tui/approval/approval-controller.js +0 -99
  435. package/dist/cli-tui/approval/approval-controller.js.map +0 -1
  436. package/dist/cli-tui/approval/approval-modal.d.ts +0 -26
  437. package/dist/cli-tui/approval/approval-modal.d.ts.map +0 -1
  438. package/dist/cli-tui/approval/approval-modal.js +0 -143
  439. package/dist/cli-tui/approval/approval-modal.js.map +0 -1
  440. package/dist/cli-tui/assistant-message.d.ts +0 -41
  441. package/dist/cli-tui/assistant-message.d.ts.map +0 -1
  442. package/dist/cli-tui/assistant-message.js +0 -236
  443. package/dist/cli-tui/assistant-message.js.map +0 -1
  444. package/dist/cli-tui/auth-state.d.ts +0 -7
  445. package/dist/cli-tui/auth-state.d.ts.map +0 -1
  446. package/dist/cli-tui/auth-state.js +0 -46
  447. package/dist/cli-tui/auth-state.js.map +0 -1
  448. package/dist/cli-tui/background/background-tasks-controller.d.ts +0 -31
  449. package/dist/cli-tui/background/background-tasks-controller.d.ts.map +0 -1
  450. package/dist/cli-tui/background/background-tasks-controller.js +0 -84
  451. package/dist/cli-tui/background/background-tasks-controller.js.map +0 -1
  452. package/dist/cli-tui/base-view.d.ts +0 -111
  453. package/dist/cli-tui/base-view.d.ts.map +0 -1
  454. package/dist/cli-tui/base-view.js +0 -145
  455. package/dist/cli-tui/base-view.js.map +0 -1
  456. package/dist/cli-tui/bash/background-launcher.d.ts +0 -14
  457. package/dist/cli-tui/bash/background-launcher.d.ts.map +0 -1
  458. package/dist/cli-tui/bash/background-launcher.js +0 -50
  459. package/dist/cli-tui/bash/background-launcher.js.map +0 -1
  460. package/dist/cli-tui/bash/bash-autocomplete.d.ts +0 -40
  461. package/dist/cli-tui/bash/bash-autocomplete.d.ts.map +0 -1
  462. package/dist/cli-tui/bash/bash-autocomplete.js +0 -347
  463. package/dist/cli-tui/bash/bash-autocomplete.js.map +0 -1
  464. package/dist/cli-tui/bash/bash-history.d.ts +0 -21
  465. package/dist/cli-tui/bash/bash-history.d.ts.map +0 -1
  466. package/dist/cli-tui/bash/bash-history.js +0 -72
  467. package/dist/cli-tui/bash/bash-history.js.map +0 -1
  468. package/dist/cli-tui/bash/bash-syntax.d.ts +0 -5
  469. package/dist/cli-tui/bash/bash-syntax.d.ts.map +0 -1
  470. package/dist/cli-tui/bash/bash-syntax.js +0 -176
  471. package/dist/cli-tui/bash/bash-syntax.js.map +0 -1
  472. package/dist/cli-tui/bash/index.d.ts +0 -4
  473. package/dist/cli-tui/bash/index.d.ts.map +0 -1
  474. package/dist/cli-tui/bash/index.js +0 -4
  475. package/dist/cli-tui/bash/index.js.map +0 -1
  476. package/dist/cli-tui/bash-mode-view.d.ts +0 -86
  477. package/dist/cli-tui/bash-mode-view.d.ts.map +0 -1
  478. package/dist/cli-tui/bash-mode-view.js +0 -560
  479. package/dist/cli-tui/bash-mode-view.js.map +0 -1
  480. package/dist/cli-tui/bash-shell-block.d.ts +0 -50
  481. package/dist/cli-tui/bash-shell-block.d.ts.map +0 -1
  482. package/dist/cli-tui/bash-shell-block.js +0 -119
  483. package/dist/cli-tui/bash-shell-block.js.map +0 -1
  484. package/dist/cli-tui/changelog-view.d.ts +0 -13
  485. package/dist/cli-tui/changelog-view.d.ts.map +0 -1
  486. package/dist/cli-tui/changelog-view.js +0 -34
  487. package/dist/cli-tui/changelog-view.js.map +0 -1
  488. package/dist/cli-tui/clean-mode.d.ts +0 -13
  489. package/dist/cli-tui/clean-mode.d.ts.map +0 -1
  490. package/dist/cli-tui/clean-mode.js +0 -32
  491. package/dist/cli-tui/clean-mode.js.map +0 -1
  492. package/dist/cli-tui/client-tools/client-tool-controller.d.ts +0 -41
  493. package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +0 -1
  494. package/dist/cli-tui/client-tools/client-tool-controller.js +0 -860
  495. package/dist/cli-tui/client-tools/client-tool-controller.js.map +0 -1
  496. package/dist/cli-tui/client-tools/local-client-tool-service.d.ts +0 -33
  497. package/dist/cli-tui/client-tools/local-client-tool-service.d.ts.map +0 -1
  498. package/dist/cli-tui/client-tools/local-client-tool-service.js +0 -94
  499. package/dist/cli-tui/client-tools/local-client-tool-service.js.map +0 -1
  500. package/dist/cli-tui/commands/a2a-handlers.d.ts +0 -7
  501. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +0 -1
  502. package/dist/cli-tui/commands/a2a-handlers.js +0 -215
  503. package/dist/cli-tui/commands/a2a-handlers.js.map +0 -1
  504. package/dist/cli-tui/commands/access-command.d.ts +0 -3
  505. package/dist/cli-tui/commands/access-command.d.ts.map +0 -1
  506. package/dist/cli-tui/commands/access-command.js +0 -89
  507. package/dist/cli-tui/commands/access-command.js.map +0 -1
  508. package/dist/cli-tui/commands/argument-parser.d.ts +0 -12
  509. package/dist/cli-tui/commands/argument-parser.d.ts.map +0 -1
  510. package/dist/cli-tui/commands/argument-parser.js +0 -135
  511. package/dist/cli-tui/commands/argument-parser.js.map +0 -1
  512. package/dist/cli-tui/commands/audit-command.d.ts +0 -5
  513. package/dist/cli-tui/commands/audit-command.d.ts.map +0 -1
  514. package/dist/cli-tui/commands/audit-command.js +0 -35
  515. package/dist/cli-tui/commands/audit-command.js.map +0 -1
  516. package/dist/cli-tui/commands/background-handlers.d.ts +0 -14
  517. package/dist/cli-tui/commands/background-handlers.d.ts.map +0 -1
  518. package/dist/cli-tui/commands/background-handlers.js +0 -115
  519. package/dist/cli-tui/commands/background-handlers.js.map +0 -1
  520. package/dist/cli-tui/commands/command-catalog.d.ts +0 -29
  521. package/dist/cli-tui/commands/command-catalog.d.ts.map +0 -1
  522. package/dist/cli-tui/commands/command-catalog.js +0 -666
  523. package/dist/cli-tui/commands/command-catalog.js.map +0 -1
  524. package/dist/cli-tui/commands/command-registry-adapter.d.ts +0 -12
  525. package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +0 -1
  526. package/dist/cli-tui/commands/command-registry-adapter.js +0 -129
  527. package/dist/cli-tui/commands/command-registry-adapter.js.map +0 -1
  528. package/dist/cli-tui/commands/command-suite-catalog.d.ts +0 -14
  529. package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +0 -1
  530. package/dist/cli-tui/commands/command-suite-catalog.js +0 -147
  531. package/dist/cli-tui/commands/command-suite-catalog.js.map +0 -1
  532. package/dist/cli-tui/commands/command-suite-handlers.d.ts +0 -111
  533. package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +0 -1
  534. package/dist/cli-tui/commands/command-suite-handlers.js +0 -110
  535. package/dist/cli-tui/commands/command-suite-handlers.js.map +0 -1
  536. package/dist/cli-tui/commands/composer-handlers.d.ts +0 -8
  537. package/dist/cli-tui/commands/composer-handlers.d.ts.map +0 -1
  538. package/dist/cli-tui/commands/composer-handlers.js +0 -90
  539. package/dist/cli-tui/commands/composer-handlers.js.map +0 -1
  540. package/dist/cli-tui/commands/framework-handlers.d.ts +0 -18
  541. package/dist/cli-tui/commands/framework-handlers.d.ts.map +0 -1
  542. package/dist/cli-tui/commands/framework-handlers.js +0 -57
  543. package/dist/cli-tui/commands/framework-handlers.js.map +0 -1
  544. package/dist/cli-tui/commands/guardian-handlers.d.ts +0 -20
  545. package/dist/cli-tui/commands/guardian-handlers.d.ts.map +0 -1
  546. package/dist/cli-tui/commands/guardian-handlers.js +0 -48
  547. package/dist/cli-tui/commands/guardian-handlers.js.map +0 -1
  548. package/dist/cli-tui/commands/handlers/mode-handler.d.ts +0 -32
  549. package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +0 -1
  550. package/dist/cli-tui/commands/handlers/mode-handler.js +0 -153
  551. package/dist/cli-tui/commands/handlers/mode-handler.js.map +0 -1
  552. package/dist/cli-tui/commands/hotkeys-command.d.ts +0 -8
  553. package/dist/cli-tui/commands/hotkeys-command.d.ts.map +0 -1
  554. package/dist/cli-tui/commands/hotkeys-command.js +0 -61
  555. package/dist/cli-tui/commands/hotkeys-command.js.map +0 -1
  556. package/dist/cli-tui/commands/limits-command.d.ts +0 -3
  557. package/dist/cli-tui/commands/limits-command.d.ts.map +0 -1
  558. package/dist/cli-tui/commands/limits-command.js +0 -88
  559. package/dist/cli-tui/commands/limits-command.js.map +0 -1
  560. package/dist/cli-tui/commands/mcp-handlers.d.ts +0 -12
  561. package/dist/cli-tui/commands/mcp-handlers.d.ts.map +0 -1
  562. package/dist/cli-tui/commands/mcp-handlers.js +0 -1306
  563. package/dist/cli-tui/commands/mcp-handlers.js.map +0 -1
  564. package/dist/cli-tui/commands/memory-handlers.d.ts +0 -28
  565. package/dist/cli-tui/commands/memory-handlers.d.ts.map +0 -1
  566. package/dist/cli-tui/commands/memory-handlers.js +0 -414
  567. package/dist/cli-tui/commands/memory-handlers.js.map +0 -1
  568. package/dist/cli-tui/commands/otel-handlers.d.ts +0 -11
  569. package/dist/cli-tui/commands/otel-handlers.d.ts.map +0 -1
  570. package/dist/cli-tui/commands/otel-handlers.js +0 -20
  571. package/dist/cli-tui/commands/otel-handlers.js.map +0 -1
  572. package/dist/cli-tui/commands/package-handlers.d.ts +0 -30
  573. package/dist/cli-tui/commands/package-handlers.d.ts.map +0 -1
  574. package/dist/cli-tui/commands/package-handlers.js +0 -499
  575. package/dist/cli-tui/commands/package-handlers.js.map +0 -1
  576. package/dist/cli-tui/commands/pii-command.d.ts +0 -3
  577. package/dist/cli-tui/commands/pii-command.d.ts.map +0 -1
  578. package/dist/cli-tui/commands/pii-command.js +0 -54
  579. package/dist/cli-tui/commands/pii-command.js.map +0 -1
  580. package/dist/cli-tui/commands/registry.d.ts +0 -3
  581. package/dist/cli-tui/commands/registry.d.ts.map +0 -1
  582. package/dist/cli-tui/commands/registry.js +0 -36
  583. package/dist/cli-tui/commands/registry.js.map +0 -1
  584. package/dist/cli-tui/commands/safety-handlers.d.ts +0 -36
  585. package/dist/cli-tui/commands/safety-handlers.d.ts.map +0 -1
  586. package/dist/cli-tui/commands/safety-handlers.js +0 -62
  587. package/dist/cli-tui/commands/safety-handlers.js.map +0 -1
  588. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +0 -26
  589. package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +0 -1
  590. package/dist/cli-tui/commands/subcommands/auth-commands.js +0 -79
  591. package/dist/cli-tui/commands/subcommands/auth-commands.js.map +0 -1
  592. package/dist/cli-tui/commands/subcommands/config-commands.d.ts +0 -23
  593. package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +0 -1
  594. package/dist/cli-tui/commands/subcommands/config-commands.js +0 -61
  595. package/dist/cli-tui/commands/subcommands/config-commands.js.map +0 -1
  596. package/dist/cli-tui/commands/subcommands/diag-commands.d.ts +0 -46
  597. package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +0 -1
  598. package/dist/cli-tui/commands/subcommands/diag-commands.js +0 -163
  599. package/dist/cli-tui/commands/subcommands/diag-commands.js.map +0 -1
  600. package/dist/cli-tui/commands/subcommands/git-commands.d.ts +0 -18
  601. package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +0 -1
  602. package/dist/cli-tui/commands/subcommands/git-commands.js +0 -50
  603. package/dist/cli-tui/commands/subcommands/git-commands.js.map +0 -1
  604. package/dist/cli-tui/commands/subcommands/index.d.ts +0 -18
  605. package/dist/cli-tui/commands/subcommands/index.d.ts.map +0 -1
  606. package/dist/cli-tui/commands/subcommands/index.js +0 -18
  607. package/dist/cli-tui/commands/subcommands/index.js.map +0 -1
  608. package/dist/cli-tui/commands/subcommands/safety-commands.d.ts +0 -26
  609. package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +0 -1
  610. package/dist/cli-tui/commands/subcommands/safety-commands.js +0 -149
  611. package/dist/cli-tui/commands/subcommands/safety-commands.js.map +0 -1
  612. package/dist/cli-tui/commands/subcommands/session-commands.d.ts +0 -36
  613. package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +0 -1
  614. package/dist/cli-tui/commands/subcommands/session-commands.js +0 -112
  615. package/dist/cli-tui/commands/subcommands/session-commands.js.map +0 -1
  616. package/dist/cli-tui/commands/subcommands/tools-commands.d.ts +0 -27
  617. package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +0 -1
  618. package/dist/cli-tui/commands/subcommands/tools-commands.js +0 -80
  619. package/dist/cli-tui/commands/subcommands/tools-commands.js.map +0 -1
  620. package/dist/cli-tui/commands/subcommands/ui-commands.d.ts +0 -30
  621. package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +0 -1
  622. package/dist/cli-tui/commands/subcommands/ui-commands.js +0 -74
  623. package/dist/cli-tui/commands/subcommands/ui-commands.js.map +0 -1
  624. package/dist/cli-tui/commands/subcommands/undo-commands.d.ts +0 -25
  625. package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +0 -1
  626. package/dist/cli-tui/commands/subcommands/undo-commands.js +0 -74
  627. package/dist/cli-tui/commands/subcommands/undo-commands.js.map +0 -1
  628. package/dist/cli-tui/commands/subcommands/usage-commands.d.ts +0 -19
  629. package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +0 -1
  630. package/dist/cli-tui/commands/subcommands/usage-commands.js +0 -63
  631. package/dist/cli-tui/commands/subcommands/usage-commands.js.map +0 -1
  632. package/dist/cli-tui/commands/subcommands/utils.d.ts +0 -127
  633. package/dist/cli-tui/commands/subcommands/utils.d.ts.map +0 -1
  634. package/dist/cli-tui/commands/subcommands/utils.js +0 -395
  635. package/dist/cli-tui/commands/subcommands/utils.js.map +0 -1
  636. package/dist/cli-tui/commands/types.d.ts +0 -105
  637. package/dist/cli-tui/commands/types.d.ts.map +0 -1
  638. package/dist/cli-tui/commands/types.js +0 -2
  639. package/dist/cli-tui/commands/types.js.map +0 -1
  640. package/dist/cli-tui/commands/undo-handlers.d.ts +0 -29
  641. package/dist/cli-tui/commands/undo-handlers.d.ts.map +0 -1
  642. package/dist/cli-tui/commands/undo-handlers.js +0 -305
  643. package/dist/cli-tui/commands/undo-handlers.js.map +0 -1
  644. package/dist/cli-tui/commands/utility-handlers.d.ts +0 -55
  645. package/dist/cli-tui/commands/utility-handlers.d.ts.map +0 -1
  646. package/dist/cli-tui/commands/utility-handlers.js +0 -137
  647. package/dist/cli-tui/commands/utility-handlers.js.map +0 -1
  648. package/dist/cli-tui/commands/workflow-handlers.d.ts +0 -22
  649. package/dist/cli-tui/commands/workflow-handlers.d.ts.map +0 -1
  650. package/dist/cli-tui/commands/workflow-handlers.js +0 -227
  651. package/dist/cli-tui/commands/workflow-handlers.js.map +0 -1
  652. package/dist/cli-tui/compact-boundary-message.d.ts +0 -9
  653. package/dist/cli-tui/compact-boundary-message.d.ts.map +0 -1
  654. package/dist/cli-tui/compact-boundary-message.js +0 -18
  655. package/dist/cli-tui/compact-boundary-message.js.map +0 -1
  656. package/dist/cli-tui/compaction-recovery.d.ts +0 -6
  657. package/dist/cli-tui/compaction-recovery.d.ts.map +0 -1
  658. package/dist/cli-tui/compaction-recovery.js +0 -13
  659. package/dist/cli-tui/compaction-recovery.js.map +0 -1
  660. package/dist/cli-tui/config-view.d.ts +0 -30
  661. package/dist/cli-tui/config-view.d.ts.map +0 -1
  662. package/dist/cli-tui/config-view.js +0 -255
  663. package/dist/cli-tui/config-view.js.map +0 -1
  664. package/dist/cli-tui/context-view.d.ts +0 -20
  665. package/dist/cli-tui/context-view.d.ts.map +0 -1
  666. package/dist/cli-tui/context-view.js +0 -191
  667. package/dist/cli-tui/context-view.js.map +0 -1
  668. package/dist/cli-tui/custom-editor.d.ts +0 -25
  669. package/dist/cli-tui/custom-editor.d.ts.map +0 -1
  670. package/dist/cli-tui/custom-editor.js +0 -241
  671. package/dist/cli-tui/custom-editor.js.map +0 -1
  672. package/dist/cli-tui/editor-view.d.ts +0 -34
  673. package/dist/cli-tui/editor-view.d.ts.map +0 -1
  674. package/dist/cli-tui/editor-view.js +0 -102
  675. package/dist/cli-tui/editor-view.js.map +0 -1
  676. package/dist/cli-tui/feedback-view.d.ts +0 -35
  677. package/dist/cli-tui/feedback-view.d.ts.map +0 -1
  678. package/dist/cli-tui/feedback-view.js +0 -271
  679. package/dist/cli-tui/feedback-view.js.map +0 -1
  680. package/dist/cli-tui/footer.d.ts +0 -56
  681. package/dist/cli-tui/footer.d.ts.map +0 -1
  682. package/dist/cli-tui/footer.js +0 -228
  683. package/dist/cli-tui/footer.js.map +0 -1
  684. package/dist/cli-tui/git/commit-modal.d.ts +0 -14
  685. package/dist/cli-tui/git/commit-modal.d.ts.map +0 -1
  686. package/dist/cli-tui/git/commit-modal.js +0 -56
  687. package/dist/cli-tui/git/commit-modal.js.map +0 -1
  688. package/dist/cli-tui/git/git-preview-modal.d.ts +0 -40
  689. package/dist/cli-tui/git/git-preview-modal.d.ts.map +0 -1
  690. package/dist/cli-tui/git/git-preview-modal.js +0 -123
  691. package/dist/cli-tui/git/git-preview-modal.js.map +0 -1
  692. package/dist/cli-tui/git/git-view.d.ts +0 -65
  693. package/dist/cli-tui/git/git-view.d.ts.map +0 -1
  694. package/dist/cli-tui/git/git-view.js +0 -529
  695. package/dist/cli-tui/git/git-view.js.map +0 -1
  696. package/dist/cli-tui/history/history-config.d.ts +0 -7
  697. package/dist/cli-tui/history/history-config.d.ts.map +0 -1
  698. package/dist/cli-tui/history/history-config.js +0 -49
  699. package/dist/cli-tui/history/history-config.js.map +0 -1
  700. package/dist/cli-tui/history/prompt-history.d.ts +0 -33
  701. package/dist/cli-tui/history/prompt-history.d.ts.map +0 -1
  702. package/dist/cli-tui/history/prompt-history.js +0 -185
  703. package/dist/cli-tui/history/prompt-history.js.map +0 -1
  704. package/dist/cli-tui/history/tool-history.d.ts +0 -50
  705. package/dist/cli-tui/history/tool-history.d.ts.map +0 -1
  706. package/dist/cli-tui/history/tool-history.js +0 -253
  707. package/dist/cli-tui/history/tool-history.js.map +0 -1
  708. package/dist/cli-tui/hook-message.d.ts +0 -13
  709. package/dist/cli-tui/hook-message.d.ts.map +0 -1
  710. package/dist/cli-tui/hook-message.js +0 -56
  711. package/dist/cli-tui/hook-message.js.map +0 -1
  712. package/dist/cli-tui/hooks/hook-input-modal.d.ts +0 -22
  713. package/dist/cli-tui/hooks/hook-input-modal.d.ts.map +0 -1
  714. package/dist/cli-tui/hooks/hook-input-modal.js +0 -63
  715. package/dist/cli-tui/hooks/hook-input-modal.js.map +0 -1
  716. package/dist/cli-tui/hotkeys-view.d.ts +0 -13
  717. package/dist/cli-tui/hotkeys-view.d.ts.map +0 -1
  718. package/dist/cli-tui/hotkeys-view.js +0 -96
  719. package/dist/cli-tui/hotkeys-view.js.map +0 -1
  720. package/dist/cli-tui/import-view.d.ts +0 -28
  721. package/dist/cli-tui/import-view.d.ts.map +0 -1
  722. package/dist/cli-tui/import-view.js +0 -184
  723. package/dist/cli-tui/import-view.js.map +0 -1
  724. package/dist/cli-tui/info-view.d.ts +0 -18
  725. package/dist/cli-tui/info-view.d.ts.map +0 -1
  726. package/dist/cli-tui/info-view.js +0 -107
  727. package/dist/cli-tui/info-view.js.map +0 -1
  728. package/dist/cli-tui/instruction-panel.d.ts +0 -11
  729. package/dist/cli-tui/instruction-panel.d.ts.map +0 -1
  730. package/dist/cli-tui/instruction-panel.js +0 -86
  731. package/dist/cli-tui/instruction-panel.js.map +0 -1
  732. package/dist/cli-tui/interrupt-controller.d.ts +0 -78
  733. package/dist/cli-tui/interrupt-controller.d.ts.map +0 -1
  734. package/dist/cli-tui/interrupt-controller.js +0 -104
  735. package/dist/cli-tui/interrupt-controller.js.map +0 -1
  736. package/dist/cli-tui/keybindings-config.d.ts +0 -27
  737. package/dist/cli-tui/keybindings-config.d.ts.map +0 -1
  738. package/dist/cli-tui/keybindings-config.js +0 -372
  739. package/dist/cli-tui/keybindings-config.js.map +0 -1
  740. package/dist/cli-tui/keybindings-watcher.d.ts +0 -8
  741. package/dist/cli-tui/keybindings-watcher.d.ts.map +0 -1
  742. package/dist/cli-tui/keybindings-watcher.js +0 -56
  743. package/dist/cli-tui/keybindings-watcher.js.map +0 -1
  744. package/dist/cli-tui/keybindings.d.ts +0 -13
  745. package/dist/cli-tui/keybindings.d.ts.map +0 -1
  746. package/dist/cli-tui/keybindings.js +0 -223
  747. package/dist/cli-tui/keybindings.js.map +0 -1
  748. package/dist/cli-tui/loader/loader-stage-manager.d.ts +0 -43
  749. package/dist/cli-tui/loader/loader-stage-manager.d.ts.map +0 -1
  750. package/dist/cli-tui/loader/loader-stage-manager.js +0 -241
  751. package/dist/cli-tui/loader/loader-stage-manager.js.map +0 -1
  752. package/dist/cli-tui/loader/loader-stage-telemetry.d.ts +0 -14
  753. package/dist/cli-tui/loader/loader-stage-telemetry.d.ts.map +0 -1
  754. package/dist/cli-tui/loader/loader-stage-telemetry.js +0 -34
  755. package/dist/cli-tui/loader/loader-stage-telemetry.js.map +0 -1
  756. package/dist/cli-tui/loader/loader-view.d.ts +0 -41
  757. package/dist/cli-tui/loader/loader-view.d.ts.map +0 -1
  758. package/dist/cli-tui/loader/loader-view.js +0 -162
  759. package/dist/cli-tui/loader/loader-view.js.map +0 -1
  760. package/dist/cli-tui/lsp-view.d.ts +0 -21
  761. package/dist/cli-tui/lsp-view.d.ts.map +0 -1
  762. package/dist/cli-tui/lsp-view.js +0 -183
  763. package/dist/cli-tui/lsp-view.js.map +0 -1
  764. package/dist/cli-tui/mermaid-renderer.d.ts +0 -2
  765. package/dist/cli-tui/mermaid-renderer.d.ts.map +0 -1
  766. package/dist/cli-tui/mermaid-renderer.js +0 -391
  767. package/dist/cli-tui/mermaid-renderer.js.map +0 -1
  768. package/dist/cli-tui/message-view.d.ts +0 -27
  769. package/dist/cli-tui/message-view.d.ts.map +0 -1
  770. package/dist/cli-tui/message-view.js +0 -169
  771. package/dist/cli-tui/message-view.js.map +0 -1
  772. package/dist/cli-tui/modal-manager.d.ts +0 -77
  773. package/dist/cli-tui/modal-manager.d.ts.map +0 -1
  774. package/dist/cli-tui/modal-manager.js +0 -131
  775. package/dist/cli-tui/modal-manager.js.map +0 -1
  776. package/dist/cli-tui/notification-view.d.ts +0 -16
  777. package/dist/cli-tui/notification-view.d.ts.map +0 -1
  778. package/dist/cli-tui/notification-view.js +0 -53
  779. package/dist/cli-tui/notification-view.js.map +0 -1
  780. package/dist/cli-tui/oauth/index.d.ts +0 -2
  781. package/dist/cli-tui/oauth/index.d.ts.map +0 -1
  782. package/dist/cli-tui/oauth/index.js +0 -2
  783. package/dist/cli-tui/oauth/index.js.map +0 -1
  784. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +0 -65
  785. package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +0 -1
  786. package/dist/cli-tui/oauth/oauth-flow-controller.js +0 -400
  787. package/dist/cli-tui/oauth/oauth-flow-controller.js.map +0 -1
  788. package/dist/cli-tui/ollama-view.d.ts +0 -38
  789. package/dist/cli-tui/ollama-view.d.ts.map +0 -1
  790. package/dist/cli-tui/ollama-view.js +0 -395
  791. package/dist/cli-tui/ollama-view.js.map +0 -1
  792. package/dist/cli-tui/paste/index.d.ts +0 -2
  793. package/dist/cli-tui/paste/index.d.ts.map +0 -1
  794. package/dist/cli-tui/paste/index.js +0 -2
  795. package/dist/cli-tui/paste/index.js.map +0 -1
  796. package/dist/cli-tui/paste/paste-handler.d.ts +0 -54
  797. package/dist/cli-tui/paste/paste-handler.d.ts.map +0 -1
  798. package/dist/cli-tui/paste/paste-handler.js +0 -128
  799. package/dist/cli-tui/paste/paste-handler.js.map +0 -1
  800. package/dist/cli-tui/plan/plan-controller.d.ts +0 -28
  801. package/dist/cli-tui/plan/plan-controller.d.ts.map +0 -1
  802. package/dist/cli-tui/plan/plan-controller.js +0 -66
  803. package/dist/cli-tui/plan/plan-controller.js.map +0 -1
  804. package/dist/cli-tui/plan-panel-modal.d.ts +0 -28
  805. package/dist/cli-tui/plan-panel-modal.d.ts.map +0 -1
  806. package/dist/cli-tui/plan-panel-modal.js +0 -193
  807. package/dist/cli-tui/plan-panel-modal.js.map +0 -1
  808. package/dist/cli-tui/plan-view.d.ts +0 -57
  809. package/dist/cli-tui/plan-view.d.ts.map +0 -1
  810. package/dist/cli-tui/plan-view.js +0 -404
  811. package/dist/cli-tui/plan-view.js.map +0 -1
  812. package/dist/cli-tui/queue/follow-up-shortcut.d.ts +0 -6
  813. package/dist/cli-tui/queue/follow-up-shortcut.d.ts.map +0 -1
  814. package/dist/cli-tui/queue/follow-up-shortcut.js +0 -12
  815. package/dist/cli-tui/queue/follow-up-shortcut.js.map +0 -1
  816. package/dist/cli-tui/queue/index.d.ts +0 -3
  817. package/dist/cli-tui/queue/index.d.ts.map +0 -1
  818. package/dist/cli-tui/queue/index.js +0 -3
  819. package/dist/cli-tui/queue/index.js.map +0 -1
  820. package/dist/cli-tui/queue/queue-controller.d.ts +0 -109
  821. package/dist/cli-tui/queue/queue-controller.d.ts.map +0 -1
  822. package/dist/cli-tui/queue/queue-controller.js +0 -327
  823. package/dist/cli-tui/queue/queue-controller.js.map +0 -1
  824. package/dist/cli-tui/queue/queue-panel-controller.d.ts +0 -34
  825. package/dist/cli-tui/queue/queue-panel-controller.d.ts.map +0 -1
  826. package/dist/cli-tui/queue/queue-panel-controller.js +0 -163
  827. package/dist/cli-tui/queue/queue-panel-controller.js.map +0 -1
  828. package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts +0 -7
  829. package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts.map +0 -1
  830. package/dist/cli-tui/queue/queued-follow-up-edit-binding.js +0 -14
  831. package/dist/cli-tui/queue/queued-follow-up-edit-binding.js.map +0 -1
  832. package/dist/cli-tui/queue-panel-modal.d.ts +0 -26
  833. package/dist/cli-tui/queue-panel-modal.d.ts.map +0 -1
  834. package/dist/cli-tui/queue-panel-modal.js +0 -159
  835. package/dist/cli-tui/queue-panel-modal.js.map +0 -1
  836. package/dist/cli-tui/run/run-command-view.d.ts +0 -17
  837. package/dist/cli-tui/run/run-command-view.d.ts.map +0 -1
  838. package/dist/cli-tui/run/run-command-view.js +0 -62
  839. package/dist/cli-tui/run/run-command-view.js.map +0 -1
  840. package/dist/cli-tui/run/run-controller.d.ts +0 -24
  841. package/dist/cli-tui/run/run-controller.d.ts.map +0 -1
  842. package/dist/cli-tui/run/run-controller.js +0 -38
  843. package/dist/cli-tui/run/run-controller.js.map +0 -1
  844. package/dist/cli-tui/run/run-shell-command.d.ts +0 -13
  845. package/dist/cli-tui/run/run-shell-command.d.ts.map +0 -1
  846. package/dist/cli-tui/run/run-shell-command.js +0 -51
  847. package/dist/cli-tui/run/run-shell-command.js.map +0 -1
  848. package/dist/cli-tui/run/streaming-shell-command.d.ts +0 -19
  849. package/dist/cli-tui/run/streaming-shell-command.d.ts.map +0 -1
  850. package/dist/cli-tui/run/streaming-shell-command.js +0 -107
  851. package/dist/cli-tui/run/streaming-shell-command.js.map +0 -1
  852. package/dist/cli-tui/search/file-search-view.d.ts +0 -22
  853. package/dist/cli-tui/search/file-search-view.d.ts.map +0 -1
  854. package/dist/cli-tui/search/file-search-view.js +0 -68
  855. package/dist/cli-tui/search/file-search-view.js.map +0 -1
  856. package/dist/cli-tui/search/file-search.d.ts +0 -13
  857. package/dist/cli-tui/search/file-search.d.ts.map +0 -1
  858. package/dist/cli-tui/search/file-search.js +0 -52
  859. package/dist/cli-tui/search/file-search.js.map +0 -1
  860. package/dist/cli-tui/security-status.d.ts +0 -83
  861. package/dist/cli-tui/security-status.d.ts.map +0 -1
  862. package/dist/cli-tui/security-status.js +0 -214
  863. package/dist/cli-tui/security-status.js.map +0 -1
  864. package/dist/cli-tui/selectors/base-selector.d.ts +0 -27
  865. package/dist/cli-tui/selectors/base-selector.d.ts.map +0 -1
  866. package/dist/cli-tui/selectors/base-selector.js +0 -47
  867. package/dist/cli-tui/selectors/base-selector.js.map +0 -1
  868. package/dist/cli-tui/selectors/branch-summary-modal.d.ts +0 -18
  869. package/dist/cli-tui/selectors/branch-summary-modal.d.ts.map +0 -1
  870. package/dist/cli-tui/selectors/branch-summary-modal.js +0 -24
  871. package/dist/cli-tui/selectors/branch-summary-modal.js.map +0 -1
  872. package/dist/cli-tui/selectors/model-selector-view.d.ts +0 -22
  873. package/dist/cli-tui/selectors/model-selector-view.d.ts.map +0 -1
  874. package/dist/cli-tui/selectors/model-selector-view.js +0 -31
  875. package/dist/cli-tui/selectors/model-selector-view.js.map +0 -1
  876. package/dist/cli-tui/selectors/model-selector.d.ts +0 -30
  877. package/dist/cli-tui/selectors/model-selector.d.ts.map +0 -1
  878. package/dist/cli-tui/selectors/model-selector.js +0 -218
  879. package/dist/cli-tui/selectors/model-selector.js.map +0 -1
  880. package/dist/cli-tui/selectors/oauth-selector-view.d.ts +0 -20
  881. package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +0 -1
  882. package/dist/cli-tui/selectors/oauth-selector-view.js +0 -28
  883. package/dist/cli-tui/selectors/oauth-selector-view.js.map +0 -1
  884. package/dist/cli-tui/selectors/oauth-selector.d.ts +0 -19
  885. package/dist/cli-tui/selectors/oauth-selector.d.ts.map +0 -1
  886. package/dist/cli-tui/selectors/oauth-selector.js +0 -120
  887. package/dist/cli-tui/selectors/oauth-selector.js.map +0 -1
  888. package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts +0 -19
  889. package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts.map +0 -1
  890. package/dist/cli-tui/selectors/queue-mode-selector-view.js +0 -29
  891. package/dist/cli-tui/selectors/queue-mode-selector-view.js.map +0 -1
  892. package/dist/cli-tui/selectors/queue-mode-selector.d.ts +0 -5
  893. package/dist/cli-tui/selectors/queue-mode-selector.d.ts.map +0 -1
  894. package/dist/cli-tui/selectors/queue-mode-selector.js +0 -34
  895. package/dist/cli-tui/selectors/queue-mode-selector.js.map +0 -1
  896. package/dist/cli-tui/selectors/report-selector-view.d.ts +0 -17
  897. package/dist/cli-tui/selectors/report-selector-view.d.ts.map +0 -1
  898. package/dist/cli-tui/selectors/report-selector-view.js +0 -29
  899. package/dist/cli-tui/selectors/report-selector-view.js.map +0 -1
  900. package/dist/cli-tui/selectors/report-selector.d.ts +0 -7
  901. package/dist/cli-tui/selectors/report-selector.d.ts.map +0 -1
  902. package/dist/cli-tui/selectors/report-selector.js +0 -31
  903. package/dist/cli-tui/selectors/report-selector.js.map +0 -1
  904. package/dist/cli-tui/selectors/theme-selector-view.d.ts +0 -19
  905. package/dist/cli-tui/selectors/theme-selector-view.d.ts.map +0 -1
  906. package/dist/cli-tui/selectors/theme-selector-view.js +0 -41
  907. package/dist/cli-tui/selectors/theme-selector-view.js.map +0 -1
  908. package/dist/cli-tui/selectors/theme-selector.d.ts +0 -14
  909. package/dist/cli-tui/selectors/theme-selector.d.ts.map +0 -1
  910. package/dist/cli-tui/selectors/theme-selector.js +0 -46
  911. package/dist/cli-tui/selectors/theme-selector.js.map +0 -1
  912. package/dist/cli-tui/selectors/thinking-selector-view.d.ts +0 -20
  913. package/dist/cli-tui/selectors/thinking-selector-view.d.ts.map +0 -1
  914. package/dist/cli-tui/selectors/thinking-selector-view.js +0 -31
  915. package/dist/cli-tui/selectors/thinking-selector-view.js.map +0 -1
  916. package/dist/cli-tui/selectors/thinking-selector.d.ts +0 -9
  917. package/dist/cli-tui/selectors/thinking-selector.d.ts.map +0 -1
  918. package/dist/cli-tui/selectors/thinking-selector.js +0 -47
  919. package/dist/cli-tui/selectors/thinking-selector.js.map +0 -1
  920. package/dist/cli-tui/selectors/tree-selector-view.d.ts +0 -32
  921. package/dist/cli-tui/selectors/tree-selector-view.d.ts.map +0 -1
  922. package/dist/cli-tui/selectors/tree-selector-view.js +0 -407
  923. package/dist/cli-tui/selectors/tree-selector-view.js.map +0 -1
  924. package/dist/cli-tui/selectors/tree-selector.d.ts +0 -27
  925. package/dist/cli-tui/selectors/tree-selector.d.ts.map +0 -1
  926. package/dist/cli-tui/selectors/tree-selector.js +0 -194
  927. package/dist/cli-tui/selectors/tree-selector.js.map +0 -1
  928. package/dist/cli-tui/selectors/user-message-selector-view.d.ts +0 -25
  929. package/dist/cli-tui/selectors/user-message-selector-view.d.ts.map +0 -1
  930. package/dist/cli-tui/selectors/user-message-selector-view.js +0 -101
  931. package/dist/cli-tui/selectors/user-message-selector-view.js.map +0 -1
  932. package/dist/cli-tui/selectors/user-message-selector.d.ts +0 -30
  933. package/dist/cli-tui/selectors/user-message-selector.d.ts.map +0 -1
  934. package/dist/cli-tui/selectors/user-message-selector.js +0 -114
  935. package/dist/cli-tui/selectors/user-message-selector.js.map +0 -1
  936. package/dist/cli-tui/session/branch-controller.d.ts +0 -65
  937. package/dist/cli-tui/session/branch-controller.d.ts.map +0 -1
  938. package/dist/cli-tui/session/branch-controller.js +0 -125
  939. package/dist/cli-tui/session/branch-controller.js.map +0 -1
  940. package/dist/cli-tui/session/conversation-compactor.d.ts +0 -64
  941. package/dist/cli-tui/session/conversation-compactor.d.ts.map +0 -1
  942. package/dist/cli-tui/session/conversation-compactor.js +0 -77
  943. package/dist/cli-tui/session/conversation-compactor.js.map +0 -1
  944. package/dist/cli-tui/session/session-context.d.ts +0 -59
  945. package/dist/cli-tui/session/session-context.d.ts.map +0 -1
  946. package/dist/cli-tui/session/session-context.js +0 -79
  947. package/dist/cli-tui/session/session-context.js.map +0 -1
  948. package/dist/cli-tui/session/session-data-provider.d.ts +0 -23
  949. package/dist/cli-tui/session/session-data-provider.d.ts.map +0 -1
  950. package/dist/cli-tui/session/session-data-provider.js +0 -22
  951. package/dist/cli-tui/session/session-data-provider.js.map +0 -1
  952. package/dist/cli-tui/session/session-list.d.ts +0 -18
  953. package/dist/cli-tui/session/session-list.d.ts.map +0 -1
  954. package/dist/cli-tui/session/session-list.js +0 -103
  955. package/dist/cli-tui/session/session-list.js.map +0 -1
  956. package/dist/cli-tui/session/session-selector.d.ts +0 -12
  957. package/dist/cli-tui/session/session-selector.d.ts.map +0 -1
  958. package/dist/cli-tui/session/session-selector.js +0 -37
  959. package/dist/cli-tui/session/session-selector.js.map +0 -1
  960. package/dist/cli-tui/session/session-summary-controller.d.ts +0 -24
  961. package/dist/cli-tui/session/session-summary-controller.d.ts.map +0 -1
  962. package/dist/cli-tui/session/session-summary-controller.js +0 -96
  963. package/dist/cli-tui/session/session-summary-controller.js.map +0 -1
  964. package/dist/cli-tui/session/session-switcher-view.d.ts +0 -20
  965. package/dist/cli-tui/session/session-switcher-view.d.ts.map +0 -1
  966. package/dist/cli-tui/session/session-switcher-view.js +0 -43
  967. package/dist/cli-tui/session/session-switcher-view.js.map +0 -1
  968. package/dist/cli-tui/session/session-switcher.d.ts +0 -38
  969. package/dist/cli-tui/session/session-switcher.d.ts.map +0 -1
  970. package/dist/cli-tui/session/session-switcher.js +0 -204
  971. package/dist/cli-tui/session/session-switcher.js.map +0 -1
  972. package/dist/cli-tui/session/session-view.d.ts +0 -46
  973. package/dist/cli-tui/session/session-view.d.ts.map +0 -1
  974. package/dist/cli-tui/session/session-view.js +0 -311
  975. package/dist/cli-tui/session/session-view.js.map +0 -1
  976. package/dist/cli-tui/slash/index.d.ts +0 -2
  977. package/dist/cli-tui/slash/index.d.ts.map +0 -1
  978. package/dist/cli-tui/slash/index.js +0 -2
  979. package/dist/cli-tui/slash/index.js.map +0 -1
  980. package/dist/cli-tui/slash/slash-command-matcher.d.ts +0 -55
  981. package/dist/cli-tui/slash/slash-command-matcher.d.ts.map +0 -1
  982. package/dist/cli-tui/slash/slash-command-matcher.js +0 -113
  983. package/dist/cli-tui/slash/slash-command-matcher.js.map +0 -1
  984. package/dist/cli-tui/smart-autocomplete-provider.d.ts +0 -5
  985. package/dist/cli-tui/smart-autocomplete-provider.d.ts.map +0 -1
  986. package/dist/cli-tui/smart-autocomplete-provider.js +0 -44
  987. package/dist/cli-tui/smart-autocomplete-provider.js.map +0 -1
  988. package/dist/cli-tui/startup-announcements.d.ts +0 -15
  989. package/dist/cli-tui/startup-announcements.d.ts.map +0 -1
  990. package/dist/cli-tui/startup-announcements.js +0 -75
  991. package/dist/cli-tui/startup-announcements.js.map +0 -1
  992. package/dist/cli-tui/status/cost-view.d.ts +0 -27
  993. package/dist/cli-tui/status/cost-view.d.ts.map +0 -1
  994. package/dist/cli-tui/status/cost-view.js +0 -212
  995. package/dist/cli-tui/status/cost-view.js.map +0 -1
  996. package/dist/cli-tui/status/diagnostics-templates.d.ts +0 -34
  997. package/dist/cli-tui/status/diagnostics-templates.d.ts.map +0 -1
  998. package/dist/cli-tui/status/diagnostics-templates.js +0 -167
  999. package/dist/cli-tui/status/diagnostics-templates.js.map +0 -1
  1000. package/dist/cli-tui/status/diagnostics-view.d.ts +0 -48
  1001. package/dist/cli-tui/status/diagnostics-view.d.ts.map +0 -1
  1002. package/dist/cli-tui/status/diagnostics-view.js +0 -249
  1003. package/dist/cli-tui/status/diagnostics-view.js.map +0 -1
  1004. package/dist/cli-tui/status/diagnostics.d.ts +0 -39
  1005. package/dist/cli-tui/status/diagnostics.d.ts.map +0 -1
  1006. package/dist/cli-tui/status/diagnostics.js +0 -286
  1007. package/dist/cli-tui/status/diagnostics.js.map +0 -1
  1008. package/dist/cli-tui/status/health-snapshot.d.ts +0 -17
  1009. package/dist/cli-tui/status/health-snapshot.d.ts.map +0 -1
  1010. package/dist/cli-tui/status/health-snapshot.js +0 -28
  1011. package/dist/cli-tui/status/health-snapshot.js.map +0 -1
  1012. package/dist/cli-tui/status/quota-view.d.ts +0 -37
  1013. package/dist/cli-tui/status/quota-view.d.ts.map +0 -1
  1014. package/dist/cli-tui/status/quota-view.js +0 -309
  1015. package/dist/cli-tui/status/quota-view.js.map +0 -1
  1016. package/dist/cli-tui/status/telemetry-view.d.ts +0 -23
  1017. package/dist/cli-tui/status/telemetry-view.d.ts.map +0 -1
  1018. package/dist/cli-tui/status/telemetry-view.js +0 -77
  1019. package/dist/cli-tui/status/telemetry-view.js.map +0 -1
  1020. package/dist/cli-tui/status/training-view.d.ts +0 -23
  1021. package/dist/cli-tui/status/training-view.d.ts.map +0 -1
  1022. package/dist/cli-tui/status/training-view.js +0 -71
  1023. package/dist/cli-tui/status/training-view.js.map +0 -1
  1024. package/dist/cli-tui/streaming-view.d.ts +0 -43
  1025. package/dist/cli-tui/streaming-view.d.ts.map +0 -1
  1026. package/dist/cli-tui/streaming-view.js +0 -176
  1027. package/dist/cli-tui/streaming-view.js.map +0 -1
  1028. package/dist/cli-tui/terminal/index.d.ts +0 -2
  1029. package/dist/cli-tui/terminal/index.d.ts.map +0 -1
  1030. package/dist/cli-tui/terminal/index.js +0 -2
  1031. package/dist/cli-tui/terminal/index.js.map +0 -1
  1032. package/dist/cli-tui/terminal/terminal-utils.d.ts +0 -44
  1033. package/dist/cli-tui/terminal/terminal-utils.d.ts.map +0 -1
  1034. package/dist/cli-tui/terminal/terminal-utils.js +0 -145
  1035. package/dist/cli-tui/terminal/terminal-utils.js.map +0 -1
  1036. package/dist/cli-tui/tips/tip-scheduler.d.ts +0 -19
  1037. package/dist/cli-tui/tips/tip-scheduler.d.ts.map +0 -1
  1038. package/dist/cli-tui/tips/tip-scheduler.js +0 -135
  1039. package/dist/cli-tui/tips/tip-scheduler.js.map +0 -1
  1040. package/dist/cli-tui/tool-execution.d.ts +0 -76
  1041. package/dist/cli-tui/tool-execution.d.ts.map +0 -1
  1042. package/dist/cli-tui/tool-execution.js +0 -217
  1043. package/dist/cli-tui/tool-execution.js.map +0 -1
  1044. package/dist/cli-tui/tool-output-view.d.ts +0 -22
  1045. package/dist/cli-tui/tool-output-view.d.ts.map +0 -1
  1046. package/dist/cli-tui/tool-output-view.js +0 -71
  1047. package/dist/cli-tui/tool-output-view.js.map +0 -1
  1048. package/dist/cli-tui/tool-renderers/index.d.ts +0 -4
  1049. package/dist/cli-tui/tool-renderers/index.d.ts.map +0 -1
  1050. package/dist/cli-tui/tool-renderers/index.js +0 -19
  1051. package/dist/cli-tui/tool-renderers/index.js.map +0 -1
  1052. package/dist/cli-tui/tool-renderers/render-bash.d.ts +0 -6
  1053. package/dist/cli-tui/tool-renderers/render-bash.d.ts.map +0 -1
  1054. package/dist/cli-tui/tool-renderers/render-bash.js +0 -90
  1055. package/dist/cli-tui/tool-renderers/render-bash.js.map +0 -1
  1056. package/dist/cli-tui/tool-renderers/render-batch.d.ts +0 -12
  1057. package/dist/cli-tui/tool-renderers/render-batch.d.ts.map +0 -1
  1058. package/dist/cli-tui/tool-renderers/render-batch.js +0 -133
  1059. package/dist/cli-tui/tool-renderers/render-batch.js.map +0 -1
  1060. package/dist/cli-tui/tool-renderers/render-edit.d.ts +0 -6
  1061. package/dist/cli-tui/tool-renderers/render-edit.d.ts.map +0 -1
  1062. package/dist/cli-tui/tool-renderers/render-edit.js +0 -125
  1063. package/dist/cli-tui/tool-renderers/render-edit.js.map +0 -1
  1064. package/dist/cli-tui/tool-renderers/render-generic.d.ts +0 -6
  1065. package/dist/cli-tui/tool-renderers/render-generic.d.ts.map +0 -1
  1066. package/dist/cli-tui/tool-renderers/render-generic.js +0 -66
  1067. package/dist/cli-tui/tool-renderers/render-generic.js.map +0 -1
  1068. package/dist/cli-tui/tool-renderers/render-read.d.ts +0 -9
  1069. package/dist/cli-tui/tool-renderers/render-read.d.ts.map +0 -1
  1070. package/dist/cli-tui/tool-renderers/render-read.js +0 -108
  1071. package/dist/cli-tui/tool-renderers/render-read.js.map +0 -1
  1072. package/dist/cli-tui/tool-renderers/render-style.d.ts +0 -21
  1073. package/dist/cli-tui/tool-renderers/render-style.d.ts.map +0 -1
  1074. package/dist/cli-tui/tool-renderers/render-style.js +0 -51
  1075. package/dist/cli-tui/tool-renderers/render-style.js.map +0 -1
  1076. package/dist/cli-tui/tool-renderers/render-write.d.ts +0 -5
  1077. package/dist/cli-tui/tool-renderers/render-write.d.ts.map +0 -1
  1078. package/dist/cli-tui/tool-renderers/render-write.js +0 -60
  1079. package/dist/cli-tui/tool-renderers/render-write.js.map +0 -1
  1080. package/dist/cli-tui/tool-renderers/types.d.ts +0 -20
  1081. package/dist/cli-tui/tool-renderers/types.d.ts.map +0 -1
  1082. package/dist/cli-tui/tool-renderers/types.js +0 -2
  1083. package/dist/cli-tui/tool-renderers/types.js.map +0 -1
  1084. package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts +0 -29
  1085. package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts.map +0 -1
  1086. package/dist/cli-tui/tool-retry/tool-retry-controller.js +0 -110
  1087. package/dist/cli-tui/tool-retry/tool-retry-controller.js.map +0 -1
  1088. package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts +0 -27
  1089. package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts.map +0 -1
  1090. package/dist/cli-tui/tool-retry/tool-retry-modal.js +0 -118
  1091. package/dist/cli-tui/tool-retry/tool-retry-modal.js.map +0 -1
  1092. package/dist/cli-tui/tool-status-view.d.ts +0 -32
  1093. package/dist/cli-tui/tool-status-view.d.ts.map +0 -1
  1094. package/dist/cli-tui/tool-status-view.js +0 -86
  1095. package/dist/cli-tui/tool-status-view.js.map +0 -1
  1096. package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +0 -59
  1097. package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +0 -1
  1098. package/dist/cli-tui/tui-renderer/agent-event-bridge.js +0 -129
  1099. package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +0 -1
  1100. package/dist/cli-tui/tui-renderer/approval-setup.d.ts +0 -13
  1101. package/dist/cli-tui/tui-renderer/approval-setup.d.ts.map +0 -1
  1102. package/dist/cli-tui/tui-renderer/approval-setup.js +0 -5
  1103. package/dist/cli-tui/tui-renderer/approval-setup.js.map +0 -1
  1104. package/dist/cli-tui/tui-renderer/attachment-controller.d.ts +0 -54
  1105. package/dist/cli-tui/tui-renderer/attachment-controller.d.ts.map +0 -1
  1106. package/dist/cli-tui/tui-renderer/attachment-controller.js +0 -160
  1107. package/dist/cli-tui/tui-renderer/attachment-controller.js.map +0 -1
  1108. package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts +0 -9
  1109. package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts.map +0 -1
  1110. package/dist/cli-tui/tui-renderer/background-tasks-setup.js +0 -7
  1111. package/dist/cli-tui/tui-renderer/background-tasks-setup.js.map +0 -1
  1112. package/dist/cli-tui/tui-renderer/branch-controller.d.ts +0 -41
  1113. package/dist/cli-tui/tui-renderer/branch-controller.d.ts.map +0 -1
  1114. package/dist/cli-tui/tui-renderer/branch-controller.js +0 -102
  1115. package/dist/cli-tui/tui-renderer/branch-controller.js.map +0 -1
  1116. package/dist/cli-tui/tui-renderer/clear-controller.d.ts +0 -75
  1117. package/dist/cli-tui/tui-renderer/clear-controller.d.ts.map +0 -1
  1118. package/dist/cli-tui/tui-renderer/clear-controller.js +0 -75
  1119. package/dist/cli-tui/tui-renderer/clear-controller.js.map +0 -1
  1120. package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts +0 -14
  1121. package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts.map +0 -1
  1122. package/dist/cli-tui/tui-renderer/client-tools-setup.js +0 -5
  1123. package/dist/cli-tui/tui-renderer/client-tools-setup.js.map +0 -1
  1124. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +0 -111
  1125. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +0 -1
  1126. package/dist/cli-tui/tui-renderer/command-registry-options.js +0 -163
  1127. package/dist/cli-tui/tui-renderer/command-registry-options.js.map +0 -1
  1128. package/dist/cli-tui/tui-renderer/command-registry.d.ts +0 -16
  1129. package/dist/cli-tui/tui-renderer/command-registry.d.ts.map +0 -1
  1130. package/dist/cli-tui/tui-renderer/command-registry.js +0 -23
  1131. package/dist/cli-tui/tui-renderer/command-registry.js.map +0 -1
  1132. package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +0 -29
  1133. package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +0 -1
  1134. package/dist/cli-tui/tui-renderer/command-suite-wiring.js +0 -108
  1135. package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +0 -1
  1136. package/dist/cli-tui/tui-renderer/compaction-controller.d.ts +0 -100
  1137. package/dist/cli-tui/tui-renderer/compaction-controller.d.ts.map +0 -1
  1138. package/dist/cli-tui/tui-renderer/compaction-controller.js +0 -160
  1139. package/dist/cli-tui/tui-renderer/compaction-controller.js.map +0 -1
  1140. package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts +0 -42
  1141. package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts.map +0 -1
  1142. package/dist/cli-tui/tui-renderer/custom-commands-controller.js +0 -106
  1143. package/dist/cli-tui/tui-renderer/custom-commands-controller.js.map +0 -1
  1144. package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts +0 -37
  1145. package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts.map +0 -1
  1146. package/dist/cli-tui/tui-renderer/delegating-command-handlers.js +0 -139
  1147. package/dist/cli-tui/tui-renderer/delegating-command-handlers.js.map +0 -1
  1148. package/dist/cli-tui/tui-renderer/editor-bindings.d.ts +0 -21
  1149. package/dist/cli-tui/tui-renderer/editor-bindings.d.ts.map +0 -1
  1150. package/dist/cli-tui/tui-renderer/editor-bindings.js +0 -76
  1151. package/dist/cli-tui/tui-renderer/editor-bindings.js.map +0 -1
  1152. package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts +0 -90
  1153. package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts.map +0 -1
  1154. package/dist/cli-tui/tui-renderer/footer-hints-controller.js +0 -152
  1155. package/dist/cli-tui/tui-renderer/footer-hints-controller.js.map +0 -1
  1156. package/dist/cli-tui/tui-renderer/history-controller.d.ts +0 -35
  1157. package/dist/cli-tui/tui-renderer/history-controller.d.ts.map +0 -1
  1158. package/dist/cli-tui/tui-renderer/history-controller.js +0 -153
  1159. package/dist/cli-tui/tui-renderer/history-controller.js.map +0 -1
  1160. package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts +0 -83
  1161. package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts.map +0 -1
  1162. package/dist/cli-tui/tui-renderer/hook-ui-controller.js +0 -309
  1163. package/dist/cli-tui/tui-renderer/hook-ui-controller.js.map +0 -1
  1164. package/dist/cli-tui/tui-renderer/initial-preferences.d.ts +0 -19
  1165. package/dist/cli-tui/tui-renderer/initial-preferences.d.ts.map +0 -1
  1166. package/dist/cli-tui/tui-renderer/initial-preferences.js +0 -54
  1167. package/dist/cli-tui/tui-renderer/initial-preferences.js.map +0 -1
  1168. package/dist/cli-tui/tui-renderer/input-controller.d.ts +0 -56
  1169. package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +0 -1
  1170. package/dist/cli-tui/tui-renderer/input-controller.js +0 -104
  1171. package/dist/cli-tui/tui-renderer/input-controller.js.map +0 -1
  1172. package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts +0 -19
  1173. package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts.map +0 -1
  1174. package/dist/cli-tui/tui-renderer/interrupt-setup.js +0 -18
  1175. package/dist/cli-tui/tui-renderer/interrupt-setup.js.map +0 -1
  1176. package/dist/cli-tui/tui-renderer/loader-setup.d.ts +0 -14
  1177. package/dist/cli-tui/tui-renderer/loader-setup.d.ts.map +0 -1
  1178. package/dist/cli-tui/tui-renderer/loader-setup.js +0 -13
  1179. package/dist/cli-tui/tui-renderer/loader-setup.js.map +0 -1
  1180. package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts +0 -55
  1181. package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts.map +0 -1
  1182. package/dist/cli-tui/tui-renderer/mcp-events-setup.js +0 -143
  1183. package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +0 -1
  1184. package/dist/cli-tui/tui-renderer/misc-handlers.d.ts +0 -59
  1185. package/dist/cli-tui/tui-renderer/misc-handlers.d.ts.map +0 -1
  1186. package/dist/cli-tui/tui-renderer/misc-handlers.js +0 -143
  1187. package/dist/cli-tui/tui-renderer/misc-handlers.js.map +0 -1
  1188. package/dist/cli-tui/tui-renderer/oauth-setup.d.ts +0 -14
  1189. package/dist/cli-tui/tui-renderer/oauth-setup.d.ts.map +0 -1
  1190. package/dist/cli-tui/tui-renderer/oauth-setup.js +0 -26
  1191. package/dist/cli-tui/tui-renderer/oauth-setup.js.map +0 -1
  1192. package/dist/cli-tui/tui-renderer/plan-setup.d.ts +0 -19
  1193. package/dist/cli-tui/tui-renderer/plan-setup.d.ts.map +0 -1
  1194. package/dist/cli-tui/tui-renderer/plan-setup.js +0 -23
  1195. package/dist/cli-tui/tui-renderer/plan-setup.js.map +0 -1
  1196. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts +0 -21
  1197. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts.map +0 -1
  1198. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js +0 -64
  1199. package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js.map +0 -1
  1200. package/dist/cli-tui/tui-renderer/queue-setup.d.ts +0 -18
  1201. package/dist/cli-tui/tui-renderer/queue-setup.d.ts.map +0 -1
  1202. package/dist/cli-tui/tui-renderer/queue-setup.js +0 -42
  1203. package/dist/cli-tui/tui-renderer/queue-setup.js.map +0 -1
  1204. package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts +0 -53
  1205. package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts.map +0 -1
  1206. package/dist/cli-tui/tui-renderer/quick-settings-controller.js +0 -100
  1207. package/dist/cli-tui/tui-renderer/quick-settings-controller.js.map +0 -1
  1208. package/dist/cli-tui/tui-renderer/session-setup.d.ts +0 -31
  1209. package/dist/cli-tui/tui-renderer/session-setup.d.ts.map +0 -1
  1210. package/dist/cli-tui/tui-renderer/session-setup.js +0 -45
  1211. package/dist/cli-tui/tui-renderer/session-setup.js.map +0 -1
  1212. package/dist/cli-tui/tui-renderer/session-state-controller.d.ts +0 -66
  1213. package/dist/cli-tui/tui-renderer/session-state-controller.d.ts.map +0 -1
  1214. package/dist/cli-tui/tui-renderer/session-state-controller.js +0 -139
  1215. package/dist/cli-tui/tui-renderer/session-state-controller.js.map +0 -1
  1216. package/dist/cli-tui/tui-renderer/skills-controller.d.ts +0 -73
  1217. package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +0 -1
  1218. package/dist/cli-tui/tui-renderer/skills-controller.js +0 -455
  1219. package/dist/cli-tui/tui-renderer/skills-controller.js.map +0 -1
  1220. package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts +0 -90
  1221. package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts.map +0 -1
  1222. package/dist/cli-tui/tui-renderer/slash-hint-controller.js +0 -131
  1223. package/dist/cli-tui/tui-renderer/slash-hint-controller.js.map +0 -1
  1224. package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts +0 -13
  1225. package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts.map +0 -1
  1226. package/dist/cli-tui/tui-renderer/tool-retry-setup.js +0 -5
  1227. package/dist/cli-tui/tui-renderer/tool-retry-setup.js.map +0 -1
  1228. package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts +0 -38
  1229. package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts.map +0 -1
  1230. package/dist/cli-tui/tui-renderer/tooling-views-setup.js +0 -48
  1231. package/dist/cli-tui/tui-renderer/tooling-views-setup.js.map +0 -1
  1232. package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +0 -70
  1233. package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts.map +0 -1
  1234. package/dist/cli-tui/tui-renderer/ui-state-controller.js +0 -184
  1235. package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +0 -1
  1236. package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts +0 -13
  1237. package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts.map +0 -1
  1238. package/dist/cli-tui/tui-renderer/ui-state-setup.js +0 -11
  1239. package/dist/cli-tui/tui-renderer/ui-state-setup.js.map +0 -1
  1240. package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts +0 -26
  1241. package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts.map +0 -1
  1242. package/dist/cli-tui/tui-renderer/utility-views-setup.js +0 -23
  1243. package/dist/cli-tui/tui-renderer/utility-views-setup.js.map +0 -1
  1244. package/dist/cli-tui/tui-renderer/viewport-controller.d.ts +0 -33
  1245. package/dist/cli-tui/tui-renderer/viewport-controller.d.ts.map +0 -1
  1246. package/dist/cli-tui/tui-renderer/viewport-controller.js +0 -98
  1247. package/dist/cli-tui/tui-renderer/viewport-controller.js.map +0 -1
  1248. package/dist/cli-tui/tui-renderer.d.ts +0 -268
  1249. package/dist/cli-tui/tui-renderer.d.ts.map +0 -1
  1250. package/dist/cli-tui/tui-renderer.js +0 -2131
  1251. package/dist/cli-tui/tui-renderer.js.map +0 -1
  1252. package/dist/cli-tui/ui-state.d.ts.map +0 -1
  1253. package/dist/cli-tui/ui-state.js.map +0 -1
  1254. package/dist/cli-tui/update-view.d.ts +0 -16
  1255. package/dist/cli-tui/update-view.d.ts.map +0 -1
  1256. package/dist/cli-tui/update-view.js +0 -45
  1257. package/dist/cli-tui/update-view.js.map +0 -1
  1258. package/dist/cli-tui/user-message.d.ts +0 -17
  1259. package/dist/cli-tui/user-message.d.ts.map +0 -1
  1260. package/dist/cli-tui/user-message.js +0 -83
  1261. package/dist/cli-tui/user-message.js.map +0 -1
  1262. package/dist/cli-tui/utils/borders.d.ts +0 -131
  1263. package/dist/cli-tui/utils/borders.d.ts.map +0 -1
  1264. package/dist/cli-tui/utils/borders.js +0 -254
  1265. package/dist/cli-tui/utils/borders.js.map +0 -1
  1266. package/dist/cli-tui/utils/commands/command-palette-view.d.ts +0 -22
  1267. package/dist/cli-tui/utils/commands/command-palette-view.d.ts.map +0 -1
  1268. package/dist/cli-tui/utils/commands/command-palette-view.js +0 -31
  1269. package/dist/cli-tui/utils/commands/command-palette-view.js.map +0 -1
  1270. package/dist/cli-tui/utils/commands/command-palette.d.ts +0 -29
  1271. package/dist/cli-tui/utils/commands/command-palette.d.ts.map +0 -1
  1272. package/dist/cli-tui/utils/commands/command-palette.js +0 -213
  1273. package/dist/cli-tui/utils/commands/command-palette.js.map +0 -1
  1274. package/dist/cli-tui/utils/commands/command-registry-builder.d.ts +0 -8
  1275. package/dist/cli-tui/utils/commands/command-registry-builder.d.ts.map +0 -1
  1276. package/dist/cli-tui/utils/commands/command-registry-builder.js +0 -9
  1277. package/dist/cli-tui/utils/commands/command-registry-builder.js.map +0 -1
  1278. package/dist/cli-tui/utils/commands/review-prompt.d.ts +0 -10
  1279. package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +0 -1
  1280. package/dist/cli-tui/utils/commands/review-prompt.js +0 -90
  1281. package/dist/cli-tui/utils/commands/review-prompt.js.map +0 -1
  1282. package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts +0 -15
  1283. package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts.map +0 -1
  1284. package/dist/cli-tui/utils/commands/slash-hint-bar.js +0 -106
  1285. package/dist/cli-tui/utils/commands/slash-hint-bar.js.map +0 -1
  1286. package/dist/cli-tui/utils/env-detect.d.ts +0 -11
  1287. package/dist/cli-tui/utils/env-detect.d.ts.map +0 -1
  1288. package/dist/cli-tui/utils/env-detect.js +0 -107
  1289. package/dist/cli-tui/utils/env-detect.js.map +0 -1
  1290. package/dist/cli-tui/utils/external-editor.d.ts +0 -7
  1291. package/dist/cli-tui/utils/external-editor.d.ts.map +0 -1
  1292. package/dist/cli-tui/utils/external-editor.js +0 -53
  1293. package/dist/cli-tui/utils/external-editor.js.map +0 -1
  1294. package/dist/cli-tui/utils/footer-utils.d.ts +0 -169
  1295. package/dist/cli-tui/utils/footer-utils.d.ts.map +0 -1
  1296. package/dist/cli-tui/utils/footer-utils.js +0 -716
  1297. package/dist/cli-tui/utils/footer-utils.js.map +0 -1
  1298. package/dist/cli-tui/utils/footer-visual-widgets.d.ts +0 -38
  1299. package/dist/cli-tui/utils/footer-visual-widgets.d.ts.map +0 -1
  1300. package/dist/cli-tui/utils/footer-visual-widgets.js +0 -141
  1301. package/dist/cli-tui/utils/footer-visual-widgets.js.map +0 -1
  1302. package/dist/cli-tui/utils/git-branch-tracker.d.ts +0 -38
  1303. package/dist/cli-tui/utils/git-branch-tracker.d.ts.map +0 -1
  1304. package/dist/cli-tui/utils/git-branch-tracker.js +0 -90
  1305. package/dist/cli-tui/utils/git-branch-tracker.js.map +0 -1
  1306. package/dist/cli-tui/utils/glyphs.d.ts +0 -207
  1307. package/dist/cli-tui/utils/glyphs.d.ts.map +0 -1
  1308. package/dist/cli-tui/utils/glyphs.js +0 -249
  1309. package/dist/cli-tui/utils/glyphs.js.map +0 -1
  1310. package/dist/cli-tui/utils/layout.d.ts +0 -77
  1311. package/dist/cli-tui/utils/layout.d.ts.map +0 -1
  1312. package/dist/cli-tui/utils/layout.js +0 -83
  1313. package/dist/cli-tui/utils/layout.js.map +0 -1
  1314. package/dist/cli-tui/utils/links.d.ts +0 -2
  1315. package/dist/cli-tui/utils/links.d.ts.map +0 -1
  1316. package/dist/cli-tui/utils/links.js +0 -14
  1317. package/dist/cli-tui/utils/links.js.map +0 -1
  1318. package/dist/cli-tui/utils/motion.d.ts +0 -4
  1319. package/dist/cli-tui/utils/motion.d.ts.map +0 -1
  1320. package/dist/cli-tui/utils/motion.js +0 -28
  1321. package/dist/cli-tui/utils/motion.js.map +0 -1
  1322. package/dist/cli-tui/utils/runtime-badges.d.ts +0 -26
  1323. package/dist/cli-tui/utils/runtime-badges.d.ts.map +0 -1
  1324. package/dist/cli-tui/utils/runtime-badges.js +0 -178
  1325. package/dist/cli-tui/utils/runtime-badges.js.map +0 -1
  1326. package/dist/cli-tui/utils/shimmer.d.ts +0 -12
  1327. package/dist/cli-tui/utils/shimmer.d.ts.map +0 -1
  1328. package/dist/cli-tui/utils/shimmer.js +0 -57
  1329. package/dist/cli-tui/utils/shimmer.js.map +0 -1
  1330. package/dist/cli-tui/utils/stage-labels.d.ts +0 -9
  1331. package/dist/cli-tui/utils/stage-labels.d.ts.map +0 -1
  1332. package/dist/cli-tui/utils/stage-labels.js +0 -65
  1333. package/dist/cli-tui/utils/stage-labels.js.map +0 -1
  1334. package/dist/cli-tui/utils/text-formatting.d.ts +0 -13
  1335. package/dist/cli-tui/utils/text-formatting.d.ts.map +0 -1
  1336. package/dist/cli-tui/utils/text-formatting.js +0 -109
  1337. package/dist/cli-tui/utils/text-formatting.js.map +0 -1
  1338. package/dist/cli-tui/utils/text-preview.d.ts +0 -10
  1339. package/dist/cli-tui/utils/text-preview.d.ts.map +0 -1
  1340. package/dist/cli-tui/utils/text-preview.js +0 -26
  1341. package/dist/cli-tui/utils/text-preview.js.map +0 -1
  1342. package/dist/cli-tui/utils/tool-text-utils.d.ts +0 -42
  1343. package/dist/cli-tui/utils/tool-text-utils.d.ts.map +0 -1
  1344. package/dist/cli-tui/utils/tool-text-utils.js +0 -361
  1345. package/dist/cli-tui/utils/tool-text-utils.js.map +0 -1
  1346. package/dist/cli-tui/welcome-animation.d.ts +0 -24
  1347. package/dist/cli-tui/welcome-animation.d.ts.map +0 -1
  1348. package/dist/cli-tui/welcome-animation.js +0 -99
  1349. package/dist/cli-tui/welcome-animation.js.map +0 -1
  1350. package/dist/cli-tui/welcome-colors.d.ts +0 -3
  1351. package/dist/cli-tui/welcome-colors.d.ts.map +0 -1
  1352. package/dist/cli-tui/welcome-colors.js +0 -39
  1353. package/dist/cli-tui/welcome-colors.js.map +0 -1
  1354. package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts +0 -304
  1355. package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts.map +0 -1
  1356. package/dist/node_modules/@evalops/tui/dist/autocomplete.js +0 -712
  1357. package/dist/node_modules/@evalops/tui/dist/autocomplete.js.map +0 -1
  1358. package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts +0 -185
  1359. package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts.map +0 -1
  1360. package/dist/node_modules/@evalops/tui/dist/components/editor.js +0 -1460
  1361. package/dist/node_modules/@evalops/tui/dist/components/editor.js.map +0 -1
  1362. package/dist/node_modules/@evalops/tui/dist/components/input.d.ts +0 -117
  1363. package/dist/node_modules/@evalops/tui/dist/components/input.d.ts.map +0 -1
  1364. package/dist/node_modules/@evalops/tui/dist/components/input.js +0 -391
  1365. package/dist/node_modules/@evalops/tui/dist/components/input.js.map +0 -1
  1366. package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts +0 -256
  1367. package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts.map +0 -1
  1368. package/dist/node_modules/@evalops/tui/dist/components/layout.js +0 -478
  1369. package/dist/node_modules/@evalops/tui/dist/components/layout.js.map +0 -1
  1370. package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts +0 -199
  1371. package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts.map +0 -1
  1372. package/dist/node_modules/@evalops/tui/dist/components/loader.js +0 -374
  1373. package/dist/node_modules/@evalops/tui/dist/components/loader.js.map +0 -1
  1374. package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts +0 -65
  1375. package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts.map +0 -1
  1376. package/dist/node_modules/@evalops/tui/dist/components/markdown.js +0 -562
  1377. package/dist/node_modules/@evalops/tui/dist/components/markdown.js.map +0 -1
  1378. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts +0 -262
  1379. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts.map +0 -1
  1380. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js +0 -575
  1381. package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js.map +0 -1
  1382. package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts +0 -131
  1383. package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts.map +0 -1
  1384. package/dist/node_modules/@evalops/tui/dist/components/select-list.js +0 -257
  1385. package/dist/node_modules/@evalops/tui/dist/components/select-list.js.map +0 -1
  1386. package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts +0 -11
  1387. package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts.map +0 -1
  1388. package/dist/node_modules/@evalops/tui/dist/components/spacer.js +0 -19
  1389. package/dist/node_modules/@evalops/tui/dist/components/spacer.js.map +0 -1
  1390. package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts +0 -22
  1391. package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts.map +0 -1
  1392. package/dist/node_modules/@evalops/tui/dist/components/status-bar.js +0 -44
  1393. package/dist/node_modules/@evalops/tui/dist/components/status-bar.js.map +0 -1
  1394. package/dist/node_modules/@evalops/tui/dist/components/text.d.ts +0 -26
  1395. package/dist/node_modules/@evalops/tui/dist/components/text.d.ts.map +0 -1
  1396. package/dist/node_modules/@evalops/tui/dist/components/text.js +0 -181
  1397. package/dist/node_modules/@evalops/tui/dist/components/text.js.map +0 -1
  1398. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts +0 -15
  1399. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts.map +0 -1
  1400. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js +0 -84
  1401. package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js.map +0 -1
  1402. package/dist/node_modules/@evalops/tui/dist/index.d.ts +0 -87
  1403. package/dist/node_modules/@evalops/tui/dist/index.d.ts.map +0 -1
  1404. package/dist/node_modules/@evalops/tui/dist/index.js +0 -85
  1405. package/dist/node_modules/@evalops/tui/dist/index.js.map +0 -1
  1406. package/dist/node_modules/@evalops/tui/dist/keymap.d.ts +0 -189
  1407. package/dist/node_modules/@evalops/tui/dist/keymap.d.ts.map +0 -1
  1408. package/dist/node_modules/@evalops/tui/dist/keymap.js +0 -363
  1409. package/dist/node_modules/@evalops/tui/dist/keymap.js.map +0 -1
  1410. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts +0 -25
  1411. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts.map +0 -1
  1412. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js +0 -828
  1413. package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js.map +0 -1
  1414. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts +0 -40
  1415. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts.map +0 -1
  1416. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js +0 -474
  1417. package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js.map +0 -1
  1418. package/dist/node_modules/@evalops/tui/dist/terminal.d.ts +0 -201
  1419. package/dist/node_modules/@evalops/tui/dist/terminal.d.ts.map +0 -1
  1420. package/dist/node_modules/@evalops/tui/dist/terminal.js +0 -241
  1421. package/dist/node_modules/@evalops/tui/dist/terminal.js.map +0 -1
  1422. package/dist/node_modules/@evalops/tui/dist/tui.d.ts +0 -263
  1423. package/dist/node_modules/@evalops/tui/dist/tui.d.ts.map +0 -1
  1424. package/dist/node_modules/@evalops/tui/dist/tui.js +0 -694
  1425. package/dist/node_modules/@evalops/tui/dist/tui.js.map +0 -1
  1426. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts +0 -14
  1427. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts.map +0 -1
  1428. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js +0 -44
  1429. package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js.map +0 -1
  1430. package/dist/node_modules/@evalops/tui/dist/utils.d.ts +0 -32
  1431. package/dist/node_modules/@evalops/tui/dist/utils.d.ts.map +0 -1
  1432. package/dist/node_modules/@evalops/tui/dist/utils.js +0 -556
  1433. package/dist/node_modules/@evalops/tui/dist/utils.js.map +0 -1
  1434. package/dist/node_modules/@evalops/tui/package.json +0 -58
  1435. package/dist/skills/artifact-metadata.d.ts.map +0 -1
  1436. package/dist/skills/artifact-metadata.js.map +0 -1
  1437. package/dist/skills/composer-diagnostics.d.ts +0 -69
  1438. package/dist/skills/composer-diagnostics.d.ts.map +0 -1
  1439. package/dist/skills/composer-diagnostics.js +0 -78
  1440. package/dist/skills/composer-diagnostics.js.map +0 -1
  1441. package/dist/skills/composer.d.ts +0 -19
  1442. package/dist/skills/composer.d.ts.map +0 -1
  1443. package/dist/skills/composer.js +0 -64
  1444. package/dist/skills/composer.js.map +0 -1
  1445. package/dist/skills/eval-harness.d.ts +0 -38
  1446. package/dist/skills/eval-harness.d.ts.map +0 -1
  1447. package/dist/skills/eval-harness.js +0 -112
  1448. package/dist/skills/eval-harness.js.map +0 -1
  1449. package/dist/skills/index.d.ts +0 -41
  1450. package/dist/skills/index.d.ts.map +0 -1
  1451. package/dist/skills/index.js +0 -41
  1452. package/dist/skills/index.js.map +0 -1
  1453. package/dist/skills/learned-guidelines.d.ts +0 -33
  1454. package/dist/skills/learned-guidelines.d.ts.map +0 -1
  1455. package/dist/skills/learned-guidelines.js +0 -291
  1456. package/dist/skills/learned-guidelines.js.map +0 -1
  1457. package/dist/skills/linter.d.ts +0 -36
  1458. package/dist/skills/linter.d.ts.map +0 -1
  1459. package/dist/skills/linter.js +0 -397
  1460. package/dist/skills/linter.js.map +0 -1
  1461. package/dist/skills/loader.d.ts +0 -252
  1462. package/dist/skills/loader.d.ts.map +0 -1
  1463. package/dist/skills/loader.js +0 -957
  1464. package/dist/skills/loader.js.map +0 -1
  1465. package/dist/skills/package-contract.d.ts +0 -45
  1466. package/dist/skills/package-contract.d.ts.map +0 -1
  1467. package/dist/skills/package-contract.js +0 -153
  1468. package/dist/skills/package-contract.js.map +0 -1
  1469. package/dist/skills/runtime-activation.d.ts +0 -69
  1470. package/dist/skills/runtime-activation.d.ts.map +0 -1
  1471. package/dist/skills/runtime-activation.js +0 -227
  1472. package/dist/skills/runtime-activation.js.map +0 -1
  1473. package/dist/skills/scaffold-from-template.d.ts +0 -58
  1474. package/dist/skills/scaffold-from-template.d.ts.map +0 -1
  1475. package/dist/skills/scaffold-from-template.js +0 -72
  1476. package/dist/skills/scaffold-from-template.js.map +0 -1
  1477. package/dist/skills/scaffolder.d.ts +0 -65
  1478. package/dist/skills/scaffolder.d.ts.map +0 -1
  1479. package/dist/skills/scaffolder.js +0 -167
  1480. package/dist/skills/scaffolder.js.map +0 -1
  1481. package/dist/skills/service-client.d.ts +0 -56
  1482. package/dist/skills/service-client.d.ts.map +0 -1
  1483. package/dist/skills/service-client.js +0 -266
  1484. package/dist/skills/service-client.js.map +0 -1
  1485. package/dist/skills/skill-templates.d.ts +0 -70
  1486. package/dist/skills/skill-templates.d.ts.map +0 -1
  1487. package/dist/skills/skill-templates.js +0 -154
  1488. package/dist/skills/skill-templates.js.map +0 -1
  1489. package/dist/skills/tool.d.ts +0 -21
  1490. package/dist/skills/tool.d.ts.map +0 -1
  1491. package/dist/skills/tool.js +0 -339
  1492. package/dist/skills/tool.js.map +0 -1
  1493. package/dist/skills/trust-cache.d.ts +0 -65
  1494. package/dist/skills/trust-cache.d.ts.map +0 -1
  1495. package/dist/skills/trust-cache.js +0 -146
  1496. package/dist/skills/trust-cache.js.map +0 -1
  1497. package/dist/skills/types.d.ts +0 -91
  1498. package/dist/skills/types.d.ts.map +0 -1
  1499. package/dist/skills/types.js +0 -8
  1500. package/dist/skills/types.js.map +0 -1
  1501. /package/dist/{cli-tui → runtime}/prompt-queue.d.ts +0 -0
  1502. /package/dist/{cli-tui → runtime}/prompt-queue.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/components/editor.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from \"chalk\";\nimport type {\n\tAutocompleteItem,\n\tAutocompleteProvider,\n} from \"../autocomplete.js\";\nimport type { Component } from \"../tui.js\";\nimport { SelectList, type SelectListTheme } from \"./select-list.js\";\n\n/**\n * Extended autocomplete provider with optional file completion methods\n */\ninterface ExtendedAutocompleteProvider extends AutocompleteProvider {\n\tshouldTriggerFileCompletion?(\n\t\tlines: string[],\n\t\tcursorLine: number,\n\t\tcursorCol: number,\n\t): boolean;\n\tgetForceFileSuggestions?(\n\t\tlines: string[],\n\t\tcursorLine: number,\n\t\tcursorCol: number,\n\t): { items: AutocompleteItem[]; prefix: string } | null;\n}\n\nexport interface EditorTheme {\n\tborderColor: (str: string) => string;\n\tselectList: SelectListTheme;\n}\n\nexport interface EditorBorderOptions {\n\ttitle?: string;\n\thints?: string;\n}\n\nexport interface LargePasteEvent {\n\tpasteId: number;\n\tcontent: string;\n\tlineCount: number;\n\tcharCount: number;\n\tmarker: string;\n}\n\nexport type TextEditorConfig = Record<string, unknown> & {\n\tplaceholder?: string;\n\ttitle?: string;\n\thints?: string;\n};\n\ninterface EditorState {\n\tlines: string[];\n\tcursorLine: number;\n\tcursorCol: number;\n}\n\ninterface HistoryEntry {\n\tstate: EditorState;\n\ttimestamp: number;\n}\n\nconst WORD_BOUNDARY = /[(){}\\[\\]<>.,;:'\"!?+\\-=*/\\\\|&%^$#@~`]/;\n\nexport class Editor implements Component {\n\tprivate state: EditorState = {\n\t\tlines: [\"\"],\n\t\tcursorLine: 0,\n\t\tcursorCol: 0,\n\t};\n\tprivate config: TextEditorConfig = {};\n\tpublic placeholder?: string;\n\tpublic title?: string;\n\tpublic hints?: string;\n\tprivate autocompleteProvider?: ExtendedAutocompleteProvider;\n\tprivate autocompleteList?: SelectList;\n\tprivate isAutocompleting = false;\n\tprivate autocompletePrefix = \"\";\n\tprivate pastes = new Map<number, string>();\n\tprivate pasteCounter = 0;\n\tprivate pasteMarkers = new Map<number, string>();\n\tprivate pasteReplacements = new Map<number, string>();\n\tprivate pasteBuffer = \"\";\n\tprivate isInPaste = false;\n\tprivate largePasteMode: \"placeholder\" | \"verbatim\" = \"placeholder\";\n\tprivate burstPasteTimer: NodeJS.Timeout | null = null;\n\tprivate burstPasteBuffer = \"\";\n\tprivate graphemeSegmenter: Intl.Segmenter | null =\n\t\ttypeof Intl !== \"undefined\" && \"Segmenter\" in Intl\n\t\t\t? new Intl.Segmenter(undefined, { granularity: \"grapheme\" })\n\t\t\t: null;\n\n\t// Undo/redo history\n\tprivate undoStack: HistoryEntry[] = [];\n\tprivate redoStack: HistoryEntry[] = [];\n\tprivate static readonly MAX_HISTORY = 100;\n\tprivate lastSaveTime = 0;\n\tprivate static readonly SAVE_DEBOUNCE_MS = 300;\n\n\t// Column the user intends to stay at when moving vertically\n\tprivate preferredCol: number | null = null;\n\t// Simple kill buffer for yank-after-kill flows\n\tprivate killBuffer = \"\";\n\tprivate killRing: string[] = [];\n\tprivate killRingIndex = 0;\n\tprivate lastYankRange: {\n\t\tstartLine: number;\n\t\tstartCol: number;\n\t\tendLine: number;\n\t\tendCol: number;\n\t} | null = null;\n\tprivate lastCommandWasYank = false;\n\tprivate static readonly MAX_KILL_RING_ENTRIES = 10;\n\n\t// Prompt history for up/down navigation (separate from undo/redo)\n\tprivate promptHistory: string[] = [];\n\tprivate promptHistoryIndex = -1; // -1 = not browsing, 0 = most recent, etc.\n\tprivate static readonly MAX_PROMPT_HISTORY = 100;\n\n\tonSubmit?: (text: string) => void;\n\tonChange?: (text: string) => void;\n\tonLargePaste?: (event: LargePasteEvent) => void;\n\tdisableSubmit = false;\n\n\tconstructor(config?: TextEditorConfig) {\n\t\tif (config) {\n\t\t\tthis.config = { ...this.config, ...config };\n\t\t\tif (config.placeholder) {\n\t\t\t\tthis.placeholder = config.placeholder;\n\t\t\t}\n\t\t\tif (config.title) {\n\t\t\t\tthis.title = config.title;\n\t\t\t}\n\t\t\tif (config.hints) {\n\t\t\t\tthis.hints = config.hints;\n\t\t\t}\n\t\t}\n\t}\n\tconfigure(config: Partial<TextEditorConfig>): void {\n\t\tthis.config = { ...this.config, ...config };\n\t\tif (config.placeholder) {\n\t\t\tthis.placeholder = config.placeholder;\n\t\t}\n\t\tif (config.title !== undefined) {\n\t\t\tthis.title = config.title;\n\t\t}\n\t\tif (config.hints !== undefined) {\n\t\t\tthis.hints = config.hints;\n\t\t}\n\t}\n\tsetAutocompleteProvider(provider: AutocompleteProvider): void {\n\t\tthis.autocompleteProvider = provider;\n\t}\n\trender(width: number, options: { hideBorders?: boolean } = {}): string[] {\n\t\tconst horizontal = chalk.gray(\"─\");\n\t\t// Layout the text - use full width\n\t\tconst layoutLines = this.layoutText(width);\n\t\tconst result = [];\n\t\t// Render top border with optional title\n\t\tif (!options.hideBorders) {\n\t\t\tif (this.title) {\n\t\t\t\tconst titlePart = ` ${this.title} `;\n\t\t\t\tconst leftDashes = 2;\n\t\t\t\tconst rightDashes = Math.max(0, width - leftDashes - titlePart.length);\n\t\t\t\tresult.push(\n\t\t\t\t\tchalk.gray(\"╭─\") +\n\t\t\t\t\t\tchalk.gray(titlePart) +\n\t\t\t\t\t\tchalk.gray(`${\"─\".repeat(rightDashes - 1)}╮`),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tresult.push(horizontal.repeat(width));\n\t\t\t}\n\t\t}\n\t\t// Render each layout line\n\t\tfor (const layoutLine of layoutLines) {\n\t\t\tlet displayText = layoutLine.text;\n\t\t\tlet visibleLength = layoutLine.text.length;\n\n\t\t\t// Apply placeholder styling if needed\n\t\t\tif (layoutLine.isPlaceholder) {\n\t\t\t\tdisplayText = chalk.gray(displayText);\n\t\t\t}\n\n\t\t\t// Add cursor if this line has it\n\t\t\tif (layoutLine.hasCursor && layoutLine.cursorPos !== undefined) {\n\t\t\t\tconst before = layoutLine.text.slice(0, layoutLine.cursorPos);\n\t\t\t\tconst after = layoutLine.text.slice(layoutLine.cursorPos);\n\n\t\t\t\t// Re-construct display text with cursor logic\n\t\t\t\t// Note: complex if placeholder is already colored, but placeholder usually doesn't have cursor in middle\n\t\t\t\t// For placeholder, cursor is usually at 0.\n\n\t\t\t\tif (layoutLine.isPlaceholder) {\n\t\t\t\t\t// Cursor at 0 for placeholder\n\t\t\t\t\tif (after.length > 0) {\n\t\t\t\t\t\tconst cursor = `\\x1b[7m${after[0]}\\x1b[0m`;\n\t\t\t\t\t\tconst restAfter = after.slice(1);\n\t\t\t\t\t\t// We need to apply gray to non-cursor parts\n\t\t\t\t\t\tdisplayText = chalk.gray(before) + cursor + chalk.gray(restAfter);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Empty placeholder? Should not happen if text present\n\t\t\t\t\t\tconst cursor = \"\\x1b[7m \\x1b[0m\";\n\t\t\t\t\t\tdisplayText = before + cursor;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (after.length > 0) {\n\t\t\t\t\t\t// Cursor is on a character - replace it with highlighted version\n\t\t\t\t\t\tconst cursor = `\\x1b[7m${after[0]}\\x1b[0m`;\n\t\t\t\t\t\tconst restAfter = after.slice(1);\n\t\t\t\t\t\tdisplayText = before + cursor + restAfter;\n\t\t\t\t\t\t// visibleLength stays the same - we're replacing, not adding\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Cursor is at the end - check if we have room for the space\n\t\t\t\t\t\tif (layoutLine.text.length < width) {\n\t\t\t\t\t\t\t// We have room - add highlighted space\n\t\t\t\t\t\t\tconst cursor = \"\\x1b[7m \\x1b[0m\";\n\t\t\t\t\t\t\tdisplayText = before + cursor;\n\t\t\t\t\t\t\t// visibleLength increases by 1 - we're adding a space\n\t\t\t\t\t\t\tvisibleLength = layoutLine.text.length + 1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Line is at full width - use reverse video on last character if possible\n\t\t\t\t\t\t\t// or just show cursor at the end without adding space\n\t\t\t\t\t\t\tif (before.length > 0) {\n\t\t\t\t\t\t\t\tconst lastChar = before[before.length - 1];\n\t\t\t\t\t\t\t\tconst cursor = `\\x1b[7m${lastChar}\\x1b[0m`;\n\t\t\t\t\t\t\t\tdisplayText = before.slice(0, -1) + cursor;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// visibleLength stays the same\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Calculate padding based on actual visible length\n\t\t\tconst padding = \" \".repeat(Math.max(0, width - visibleLength));\n\t\t\t// Render the line (no side borders, just horizontal lines above and below if not hidden)\n\t\t\tresult.push(displayText + padding);\n\t\t}\n\t\t// Render bottom border with optional hints\n\t\tif (!options.hideBorders) {\n\t\t\tif (this.hints) {\n\t\t\t\tconst hintPart = ` ${this.hints} `;\n\t\t\t\tconst leftDashes = 2;\n\t\t\t\tconst rightDashes = Math.max(0, width - leftDashes - hintPart.length);\n\t\t\t\tresult.push(\n\t\t\t\t\tchalk.gray(\"╰─\") +\n\t\t\t\t\t\tchalk.dim(hintPart) +\n\t\t\t\t\t\tchalk.gray(`${\"─\".repeat(rightDashes - 1)}╯`),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tresult.push(horizontal.repeat(width));\n\t\t\t}\n\t\t}\n\t\t// Add autocomplete list if active\n\t\tif (this.isAutocompleting && this.autocompleteList) {\n\t\t\tconst autocompleteResult = this.autocompleteList.render(width);\n\t\t\tresult.push(...autocompleteResult);\n\t\t}\n\t\treturn result;\n\t}\n\thandleInput(inputData: string): void {\n\t\t// Treat multi-character blobs arriving in raw mode as a paste burst when\n\t\t// bracketed paste isn't available (common over SSH/tmux). We debounce\n\t\t// for a few ms to avoid interleaving with streamed output.\n\t\tif (this.maybeHandleBurstPaste(inputData)) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet data = this.normalizeArrowInput(inputData);\n\t\tconst isYankKey = data === \"\\x1by\";\n\t\tif (!isYankKey) {\n\t\t\tthis.lastYankRange = null;\n\t\t\tthis.lastCommandWasYank = false;\n\t\t}\n\t\t// Handle bracketed paste mode\n\t\t// Start of paste: \\x1b[200~\n\t\t// End of paste: \\x1b[201~\n\t\t// Check if we're starting a bracketed paste\n\t\tif (data.includes(\"\\x1b[200~\")) {\n\t\t\tthis.isInPaste = true;\n\t\t\tthis.pasteBuffer = \"\";\n\t\t\t// Remove the start marker and keep the rest\n\t\t\tdata = data.replace(\"\\x1b[200~\", \"\");\n\t\t}\n\t\t// If we're in a paste, buffer the data\n\t\tif (this.isInPaste) {\n\t\t\t// Append data to buffer first (end marker could be split across chunks)\n\t\t\tthis.pasteBuffer += data;\n\t\t\t// Check if the accumulated buffer contains the end marker\n\t\t\tconst endIndex = this.pasteBuffer.indexOf(\"\\x1b[201~\");\n\t\t\tif (endIndex !== -1) {\n\t\t\t\t// Extract content before the end marker\n\t\t\t\tconst pasteContent = this.pasteBuffer.substring(0, endIndex);\n\t\t\t\t// Process the complete paste\n\t\t\t\tthis.handlePaste(pasteContent);\n\t\t\t\t// Reset paste state\n\t\t\t\tthis.isInPaste = false;\n\t\t\t\t// Process any remaining data after the end marker\n\t\t\t\tconst remaining = this.pasteBuffer.substring(endIndex + 6); // 6 = length of \\x1b[201~\n\t\t\t\tthis.pasteBuffer = \"\";\n\t\t\t\tif (remaining.length > 0) {\n\t\t\t\t\tthis.handleInput(remaining);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Still accumulating, wait for more data\n\t\t\treturn;\n\t\t}\n\t\t// Handle special key combinations first\n\t\t// Ctrl+C - Exit (let parent handle this)\n\t\tif (data.charCodeAt(0) === 3) {\n\t\t\treturn;\n\t\t}\n\t\t// Handle autocomplete special keys first (but don't block other input)\n\t\tif (this.isAutocompleting && this.autocompleteList) {\n\t\t\t// Escape - cancel autocomplete\n\t\t\tif (data === \"\\x1b\") {\n\t\t\t\tthis.cancelAutocomplete();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Let the autocomplete list handle navigation and selection\n\t\t\tif (\n\t\t\t\tdata === \"\\x1b[A\" ||\n\t\t\t\tdata === \"\\x1b[B\" ||\n\t\t\t\tdata === \"\\r\" ||\n\t\t\t\tdata === \"\\t\"\n\t\t\t) {\n\t\t\t\t// Only pass arrow keys to the list, not Enter/Tab (we handle those directly)\n\t\t\t\tif (data === \"\\x1b[A\" || data === \"\\x1b[B\") {\n\t\t\t\t\tthis.autocompleteList.handleInput(data);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// If Tab or Enter was pressed, apply the selection\n\t\t\t\tif (data === \"\\t\" || data === \"\\r\") {\n\t\t\t\t\tconst selected = this.autocompleteList.getSelectedItem();\n\t\t\t\t\tif (selected && this.autocompleteProvider) {\n\t\t\t\t\t\tconst result = this.autocompleteProvider.applyCompletion(\n\t\t\t\t\t\t\tthis.state.lines,\n\t\t\t\t\t\t\tthis.state.cursorLine,\n\t\t\t\t\t\t\tthis.state.cursorCol,\n\t\t\t\t\t\t\tselected,\n\t\t\t\t\t\t\tthis.autocompletePrefix,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.state.lines = result.lines;\n\t\t\t\t\t\tthis.state.cursorLine = result.cursorLine;\n\t\t\t\t\t\tthis.state.cursorCol = result.cursorCol;\n\t\t\t\t\t\tthis.cancelAutocomplete();\n\t\t\t\t\t\tif (this.onChange) {\n\t\t\t\t\t\t\tthis.onChange(this.getText());\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// For other keys, handle normally within autocomplete\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// For other keys (like regular typing), DON'T return here\n\t\t\t// Let them fall through to normal character handling\n\t\t}\n\t\t// Tab key - context-aware completion (but not when already autocompleting)\n\t\tif (data === \"\\t\" && !this.isAutocompleting) {\n\t\t\tthis.handleTabCompletion();\n\t\t\treturn;\n\t\t}\n\t\t// Continue with rest of input handling\n\t\t// Ctrl+Z - Undo\n\t\tif (data.charCodeAt(0) === 26) {\n\t\t\tthis.undo();\n\t\t\treturn;\n\t\t}\n\t\t// Ctrl+Y or Ctrl+Shift+Z - Redo (some terminals send \\x19 for Ctrl+Y)\n\t\tif (data.charCodeAt(0) === 25) {\n\t\t\tthis.redo();\n\t\t\treturn;\n\t\t}\n\t\t// Ctrl+K - Delete to end of line (or merge with next line if at end)\n\t\tif (data.charCodeAt(0) === 11) {\n\t\t\tthis.deleteToEndOfLine();\n\t\t}\n\t\t// Ctrl+U - Delete to start of line (or merge with previous line if at start)\n\t\telse if (data.charCodeAt(0) === 21) {\n\t\t\tthis.deleteToStartOfLine();\n\t\t}\n\t\t// Ctrl+W - Delete word backwards\n\t\telse if (data.charCodeAt(0) === 23) {\n\t\t\tthis.deleteWordBackwards();\n\t\t}\n\t\t// Alt/Meta + B or Ctrl+Left\n\t\telse if (\n\t\t\tdata === \"\\x1bb\" ||\n\t\t\tdata === \"\\x1b[1;5D\" ||\n\t\t\tdata === \"\\x1b[5D\" ||\n\t\t\tdata === \"\\x1b[1;3D\"\n\t\t) {\n\t\t\tthis.moveWordBackwards();\n\t\t}\n\t\t// Alt/Meta + F or Ctrl+Right\n\t\telse if (\n\t\t\tdata === \"\\x1bf\" ||\n\t\t\tdata === \"\\x1b[1;5C\" ||\n\t\t\tdata === \"\\x1b[5C\" ||\n\t\t\tdata === \"\\x1b[1;3C\"\n\t\t) {\n\t\t\tthis.moveWordForwards();\n\t\t}\n\t\t// Alt+Y - yank last kill buffer\n\t\telse if (data === \"\\x1by\") {\n\t\t\tthis.yankKillBuffer();\n\t\t}\n\t\t// Option/Alt+Backspace (e.g. Ghostty sends ESC + DEL)\n\t\telse if (data === \"\\x1b\\x7f\") {\n\t\t\tthis.deleteWordBackwards();\n\t\t}\n\t\t// Ctrl+A - Move to start of line\n\t\telse if (data.charCodeAt(0) === 1) {\n\t\t\tthis.moveToSmartLineStart();\n\t\t}\n\t\t// Ctrl+E - Move to end of line\n\t\telse if (data.charCodeAt(0) === 5) {\n\t\t\tthis.moveToLineEnd();\n\t\t}\n\t\t// New line shortcuts (but not plain LF/CR which should be submit)\n\t\telse if (\n\t\t\t(data.charCodeAt(0) === 10 && data.length > 1) || // Ctrl+Enter with modifiers\n\t\t\tdata === \"\\x1b\\r\" || // Option+Enter in some terminals\n\t\t\tdata === \"\\x1b[13;2~\" || // Shift+Enter in some terminals\n\t\t\t(data.length > 1 && data.includes(\"\\x1b\") && data.includes(\"\\r\")) ||\n\t\t\t(data === \"\\n\" && data.length === 1) || // Shift+Enter from iTerm2 mapping\n\t\t\tdata === \"\\\\\\r\" // Shift+Enter in VS Code terminal\n\t\t) {\n\t\t\t// Modifier + Enter = new line\n\t\t\tthis.addNewLine();\n\t\t}\n\t\t// Plain Enter (char code 13 for CR) - only CR submits, LF adds new line\n\t\telse if (data.charCodeAt(0) === 13 && data.length === 1) {\n\t\t\t// If submit is disabled, do nothing\n\t\t\tif (this.disableSubmit) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Get text and substitute paste markers with actual content\n\t\t\tlet result = this.state.lines.join(\"\\n\").trim();\n\t\t\t// Replace all [paste #N +xxx lines] or [paste #N xxx chars] markers with actual paste content\n\t\t\tfor (const [pasteId, pasteContent] of this.pastes) {\n\t\t\t\t// Match formats: [paste #N], [paste #N +xxx lines], or [paste #N xxx chars]\n\t\t\t\tconst markerRegex = new RegExp(\n\t\t\t\t\t`\\\\[paste #${pasteId}( (\\\\+\\\\d+ lines|\\\\d+ chars))?\\\\]`,\n\t\t\t\t\t\"g\",\n\t\t\t\t);\n\t\t\t\tconst replacement = this.pasteReplacements.get(pasteId) ?? pasteContent;\n\t\t\t\tresult = result.replace(markerRegex, replacement);\n\t\t\t}\n\t\t\t// Reset editor and clear pastes\n\t\t\tthis.state = {\n\t\t\t\tlines: [\"\"],\n\t\t\t\tcursorLine: 0,\n\t\t\t\tcursorCol: 0,\n\t\t\t};\n\t\t\tthis.pastes.clear();\n\t\t\tthis.pasteMarkers.clear();\n\t\t\tthis.pasteReplacements.clear();\n\t\t\tthis.pasteCounter = 0;\n\t\t\t// Notify that editor is now empty\n\t\t\tif (this.onChange) {\n\t\t\t\tthis.onChange(\"\");\n\t\t\t}\n\t\t\tif (this.onSubmit) {\n\t\t\t\tthis.onSubmit(result);\n\t\t\t}\n\t\t}\n\t\t// Backspace\n\t\telse if (data.charCodeAt(0) === 127 || data.charCodeAt(0) === 8) {\n\t\t\tthis.handleBackspace();\n\t\t}\n\t\t// Line navigation shortcuts (Home/End keys)\n\t\telse if (data === \"\\x1b[H\" || data === \"\\x1b[1~\" || data === \"\\x1b[7~\") {\n\t\t\t// Home key\n\t\t\tthis.moveToSmartLineStart();\n\t\t} else if (data === \"\\x1b[F\" || data === \"\\x1b[4~\" || data === \"\\x1b[8~\") {\n\t\t\t// End key\n\t\t\tthis.moveToLineEnd();\n\t\t}\n\t\t// Forward delete (Fn+Backspace or Delete key)\n\t\telse if (data === \"\\x1b[3~\") {\n\t\t\t// Delete key\n\t\t\tthis.handleForwardDelete();\n\t\t}\n\t\t// Arrow keys\n\t\telse if (data === \"\\x1b[A\") {\n\t\t\t// Up\n\t\t\tthis.moveCursor(-1, 0);\n\t\t} else if (data === \"\\x1b[B\") {\n\t\t\t// Down\n\t\t\tthis.moveCursor(1, 0);\n\t\t} else if (data === \"\\x1b[C\") {\n\t\t\t// Right\n\t\t\tthis.moveCursor(0, 1);\n\t\t} else if (data === \"\\x1b[D\") {\n\t\t\t// Left\n\t\t\tthis.moveCursor(0, -1);\n\t\t}\n\t\t// Regular characters (printable ASCII)\n\t\telse if (data.charCodeAt(0) >= 32 && data.charCodeAt(0) <= 126) {\n\t\t\tthis.insertCharacter(data);\n\t\t}\n\t}\n\n\tprotected normalizeArrowInput(data: string): string {\n\t\t// Terminals in application-cursor mode emit SS3 sequences (e.g., ESC O A).\n\t\t// Normalize them so the editor treats them the same as CSI arrows.\n\t\tswitch (data) {\n\t\t\tcase \"\\x1bOA\":\n\t\t\t\treturn \"\\x1b[A\";\n\t\t\tcase \"\\x1bOB\":\n\t\t\t\treturn \"\\x1b[B\";\n\t\t\tcase \"\\x1bOC\":\n\t\t\t\treturn \"\\x1b[C\";\n\t\t\tcase \"\\x1bOD\":\n\t\t\t\treturn \"\\x1b[D\";\n\t\t\tdefault:\n\t\t\t\treturn data;\n\t\t}\n\t}\n\tprivate layoutText(contentWidth: number): Array<{\n\t\ttext: string;\n\t\thasCursor: boolean;\n\t\tcursorPos?: number;\n\t\tisPlaceholder?: boolean;\n\t}> {\n\t\tconst layoutLines = [];\n\t\tif (\n\t\t\tthis.state.lines.length === 0 ||\n\t\t\t(this.state.lines.length === 1 && this.state.lines[0] === \"\")\n\t\t) {\n\t\t\t// Empty editor\n\t\t\tif (this.placeholder) {\n\t\t\t\tlayoutLines.push({\n\t\t\t\t\ttext: this.placeholder,\n\t\t\t\t\thasCursor: true,\n\t\t\t\t\tcursorPos: 0,\n\t\t\t\t\tisPlaceholder: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlayoutLines.push({\n\t\t\t\t\ttext: \"\",\n\t\t\t\t\thasCursor: true,\n\t\t\t\t\tcursorPos: 0,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn layoutLines;\n\t\t}\n\t\t// Process each logical line\n\t\tfor (let i = 0; i < this.state.lines.length; i++) {\n\t\t\tconst line = this.state.lines[i] || \"\";\n\t\t\tconst isCurrentLine = i === this.state.cursorLine;\n\t\t\tconst maxLineLength = contentWidth;\n\t\t\tif (line.length <= maxLineLength) {\n\t\t\t\t// Line fits in one layout line\n\t\t\t\tif (isCurrentLine) {\n\t\t\t\t\tlayoutLines.push({\n\t\t\t\t\t\ttext: line,\n\t\t\t\t\t\thasCursor: true,\n\t\t\t\t\t\tcursorPos: this.state.cursorCol,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tlayoutLines.push({\n\t\t\t\t\t\ttext: line,\n\t\t\t\t\t\thasCursor: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Line needs wrapping\n\t\t\t\tconst chunks = [];\n\t\t\t\tfor (let pos = 0; pos < line.length; pos += maxLineLength) {\n\t\t\t\t\tchunks.push(line.slice(pos, pos + maxLineLength));\n\t\t\t\t}\n\t\t\t\tfor (let chunkIndex = 0; chunkIndex < chunks.length; chunkIndex++) {\n\t\t\t\t\tconst chunk = chunks[chunkIndex];\n\t\t\t\t\tif (!chunk) continue;\n\t\t\t\t\tconst chunkStart = chunkIndex * maxLineLength;\n\t\t\t\t\tconst chunkEnd = chunkStart + chunk.length;\n\t\t\t\t\tconst cursorPos = this.state.cursorCol;\n\t\t\t\t\tconst hasCursorInChunk =\n\t\t\t\t\t\tisCurrentLine && cursorPos >= chunkStart && cursorPos <= chunkEnd;\n\t\t\t\t\tif (hasCursorInChunk) {\n\t\t\t\t\t\tlayoutLines.push({\n\t\t\t\t\t\t\ttext: chunk,\n\t\t\t\t\t\t\thasCursor: true,\n\t\t\t\t\t\t\tcursorPos: cursorPos - chunkStart,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlayoutLines.push({\n\t\t\t\t\t\t\ttext: chunk,\n\t\t\t\t\t\t\thasCursor: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn layoutLines;\n\t}\n\tgetText(): string {\n\t\treturn this.state.lines.join(\"\\n\");\n\t}\n\tsetText(text: string): void {\n\t\tthis.promptHistoryIndex = -1; // Exit history browsing mode\n\t\t// Split text into lines, handling different line endings\n\t\tconst lines = text.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\").split(\"\\n\");\n\t\t// Ensure at least one empty line\n\t\tthis.state.lines = lines.length === 0 ? [\"\"] : lines;\n\t\t// Reset cursor to end of text\n\t\tthis.state.cursorLine = this.state.lines.length - 1;\n\t\tthis.state.cursorCol = this.state.lines[this.state.cursorLine]?.length || 0;\n\t\t// Notify of change\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t}\n\n\tprivate maybeHandleBurstPaste(data: string): boolean {\n\t\t// Ignore control characters and single key presses\n\t\tif (data.length <= 1) return false;\n\t\t// Ignore escape-driven control sequences (arrow keys, function keys, etc.)\n\t\t// so they are processed by the normal input handler.\n\t\tif (data.startsWith(\"\\x1b\")) return false;\n\t\t// If bracketed paste markers are present, let the main handler manage them.\n\t\tif (data.includes(\"\\x1b[200~\") || data.includes(\"\\x1b[201~\")) {\n\t\t\treturn false;\n\t\t}\n\t\tthis.burstPasteBuffer += data;\n\t\tif (this.burstPasteTimer) {\n\t\t\treturn true;\n\t\t}\n\t\tthis.burstPasteTimer = setTimeout(() => {\n\t\t\tconst content = this.burstPasteBuffer;\n\t\t\tthis.burstPasteBuffer = \"\";\n\t\t\tthis.burstPasteTimer = null;\n\t\t\tthis.handlePaste(content);\n\t\t}, 12);\n\t\treturn true;\n\t}\n\t// All the editor methods from before...\n\tsetLargePasteMode(mode: \"placeholder\" | \"verbatim\"): void {\n\t\tthis.largePasteMode = mode;\n\t}\n\tprivate insertCharacter(\n\t\tchar: string,\n\t\topts?: { skipHistory?: boolean },\n\t): void {\n\t\tthis.promptHistoryIndex = -1; // Exit history browsing mode\n\t\tif (!opts?.skipHistory) {\n\t\t\tthis.saveToHistory();\n\t\t}\n\t\tconst line = this.state.lines[this.state.cursorLine] || \"\";\n\t\tconst before = line.slice(0, this.state.cursorCol);\n\t\tconst after = line.slice(this.state.cursorCol);\n\t\tthis.state.lines[this.state.cursorLine] = before + char + after;\n\t\tthis.state.cursorCol += char.length; // Fix: increment by the length of the inserted string\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t\t// Check if we should trigger or update autocomplete\n\t\tif (!this.isAutocompleting) {\n\t\t\t// Auto-trigger for \"/\" at the start of a line (slash commands)\n\t\t\tif (char === \"/\" && this.isAtStartOfMessage()) {\n\t\t\t\tthis.tryTriggerAutocomplete();\n\t\t\t}\n\t\t\t// Auto-trigger for \"@\" (mentions)\n\t\t\telse if (char === \"@\") {\n\t\t\t\tthis.tryTriggerAutocomplete();\n\t\t\t}\n\t\t\t// Also auto-trigger when typing letters in a slash command context\n\t\t\telse if (/[a-zA-Z0-9]/.test(char)) {\n\t\t\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\t\t\tconst textBeforeCursor = currentLine.slice(0, this.state.cursorCol);\n\t\t\t\t// Check if we're in a slash command with a space (i.e., typing arguments)\n\t\t\t\tif (\n\t\t\t\t\ttextBeforeCursor.startsWith(\"/\") &&\n\t\t\t\t\ttextBeforeCursor.includes(\" \")\n\t\t\t\t) {\n\t\t\t\t\tthis.tryTriggerAutocomplete();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.updateAutocomplete();\n\t\t}\n\t}\n\n\tinsertText(text: string, options?: { skipHistory?: boolean }): void {\n\t\tthis.insertTextInternal(text, {\n\t\t\tskipHistory: options?.skipHistory ?? false,\n\t\t});\n\t}\n\n\tprivate insertTextInternal(\n\t\ttext: string,\n\t\toptions: { skipHistory: boolean },\n\t): void {\n\t\tif (!text) return;\n\n\t\t// Normalize line breaks so we can treat \"\\n\" uniformly.\n\t\tconst normalized = text.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n\t\tconst parts = normalized.split(\"\\n\");\n\n\t\t// Fast path: single-line insert\n\t\tif (parts.length === 1) {\n\t\t\tthis.insertCharacter(parts[0]!, { skipHistory: options.skipHistory });\n\t\t\treturn;\n\t\t}\n\n\t\t// Multi-line insert (also used for yanking a newline)\n\t\tif (!options.skipHistory) {\n\t\t\tthis.saveToHistory();\n\t\t}\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tconst beforeCursor = currentLine.slice(0, this.state.cursorCol);\n\t\tconst afterCursor = currentLine.slice(this.state.cursorCol);\n\n\t\tconst newLines: string[] = [];\n\t\tfor (let i = 0; i < this.state.cursorLine; i++) {\n\t\t\tnewLines.push(this.state.lines[i] || \"\");\n\t\t}\n\n\t\tnewLines.push(beforeCursor + (parts[0] || \"\"));\n\t\tfor (let i = 1; i < parts.length - 1; i++) {\n\t\t\tnewLines.push(parts[i] || \"\");\n\t\t}\n\t\tnewLines.push((parts[parts.length - 1] || \"\") + afterCursor);\n\n\t\tfor (let i = this.state.cursorLine + 1; i < this.state.lines.length; i++) {\n\t\t\tnewLines.push(this.state.lines[i] || \"\");\n\t\t}\n\n\t\tthis.state.lines = newLines;\n\t\tthis.state.cursorLine += parts.length - 1;\n\t\tthis.state.cursorCol = (parts[parts.length - 1] || \"\").length;\n\t\tthis.preferredCol = this.state.cursorCol;\n\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t}\n\tsetPasteReplacement(pasteId: number, replacement: string): void {\n\t\tthis.pasteReplacements.set(pasteId, replacement);\n\t}\n\treplacePasteMarker(\n\t\tpasteId: number,\n\t\treplacementText: string,\n\t\toptions?: { keepOriginal?: boolean },\n\t): boolean {\n\t\tconst marker = this.pasteMarkers.get(pasteId);\n\t\tif (!marker) {\n\t\t\treturn false;\n\t\t}\n\t\tconst currentText = this.state.lines.join(\"\\n\");\n\t\tif (!currentText.includes(marker)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst updated = currentText.replace(marker, replacementText);\n\t\tif (updated === currentText) {\n\t\t\treturn false;\n\t\t}\n\t\tthis.setText(updated);\n\t\tif (!options?.keepOriginal) {\n\t\t\tthis.pastes.delete(pasteId);\n\t\t\tthis.pasteMarkers.delete(pasteId);\n\t\t\tthis.pasteReplacements.delete(pasteId);\n\t\t}\n\t\treturn true;\n\t}\n\tprivate handlePaste(pastedText: string): void {\n\t\tthis.promptHistoryIndex = -1; // Exit history browsing mode\n\t\tthis.saveToHistory();\n\t\t// Clean the pasted text\n\t\tconst cleanText = pastedText.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n\t\t// Convert tabs to spaces (4 spaces per tab)\n\t\tconst tabExpandedText = cleanText.replace(/\\t/g, \" \");\n\t\t// Filter out non-printable characters except newlines\n\t\tconst filteredText = tabExpandedText\n\t\t\t.split(\"\")\n\t\t\t.filter((char) => char === \"\\n\" || (char >= \" \" && char <= \"~\"))\n\t\t\t.join(\"\");\n\t\t// Split into lines\n\t\tconst pastedLines = filteredText.split(\"\\n\");\n\t\t// Check if this is a large paste (> 10 lines or > 1000 characters)\n\t\tconst totalChars = filteredText.length;\n\t\tconst isLargePaste = pastedLines.length > 10 || totalChars > 1000;\n\t\tif (isLargePaste && this.largePasteMode === \"placeholder\") {\n\t\t\t// Store the paste and insert a marker\n\t\t\tthis.pasteCounter++;\n\t\t\tconst pasteId = this.pasteCounter;\n\t\t\tthis.pastes.set(pasteId, filteredText);\n\t\t\t// Insert marker like \"[paste #1 +123 lines]\" or \"[paste #1 1234 chars]\"\n\t\t\tconst marker =\n\t\t\t\tpastedLines.length > 10\n\t\t\t\t\t? `[paste #${pasteId} +${pastedLines.length} lines]`\n\t\t\t\t\t: `[paste #${pasteId} ${totalChars} chars]`;\n\t\t\tthis.pasteMarkers.set(pasteId, marker);\n\t\t\tfor (const char of marker) {\n\t\t\t\tthis.insertCharacter(char);\n\t\t\t}\n\t\t\tthis.onLargePaste?.({\n\t\t\t\tpasteId,\n\t\t\t\tcontent: filteredText,\n\t\t\t\tlineCount: pastedLines.length,\n\t\t\t\tcharCount: totalChars,\n\t\t\t\tmarker,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (pastedLines.length === 1) {\n\t\t\t// Single line - just insert each character\n\t\t\tconst text = pastedLines[0] || \"\";\n\t\t\tfor (const char of text) {\n\t\t\t\tthis.insertCharacter(char);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// Multi-line paste - be very careful with array manipulation\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tconst beforeCursor = currentLine.slice(0, this.state.cursorCol);\n\t\tconst afterCursor = currentLine.slice(this.state.cursorCol);\n\t\t// Build the new lines array step by step\n\t\tconst newLines = [];\n\t\t// Add all lines before current line\n\t\tfor (let i = 0; i < this.state.cursorLine; i++) {\n\t\t\tnewLines.push(this.state.lines[i] || \"\");\n\t\t}\n\t\t// Add the first pasted line merged with before cursor text\n\t\tnewLines.push(beforeCursor + (pastedLines[0] || \"\"));\n\t\t// Add all middle pasted lines\n\t\tfor (let i = 1; i < pastedLines.length - 1; i++) {\n\t\t\tnewLines.push(pastedLines[i] || \"\");\n\t\t}\n\t\t// Add the last pasted line with after cursor text\n\t\tnewLines.push((pastedLines[pastedLines.length - 1] || \"\") + afterCursor);\n\t\t// Add all lines after current line\n\t\tfor (let i = this.state.cursorLine + 1; i < this.state.lines.length; i++) {\n\t\t\tnewLines.push(this.state.lines[i] || \"\");\n\t\t}\n\t\t// Replace the entire lines array\n\t\tthis.state.lines = newLines;\n\t\t// Update cursor position to end of pasted content\n\t\tthis.state.cursorLine += pastedLines.length - 1;\n\t\tthis.state.cursorCol = (pastedLines[pastedLines.length - 1] || \"\").length;\n\t\t// Notify of change\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t}\n\tprivate addNewLine(): void {\n\t\tthis.saveToHistory();\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tconst before = currentLine.slice(0, this.state.cursorCol);\n\t\tconst after = currentLine.slice(this.state.cursorCol);\n\t\t// Split current line\n\t\tthis.state.lines[this.state.cursorLine] = before;\n\t\tthis.state.lines.splice(this.state.cursorLine + 1, 0, after);\n\t\t// Move cursor to start of new line\n\t\tthis.state.cursorLine++;\n\t\tthis.state.cursorCol = 0;\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t}\n\tprivate handleBackspace(): void {\n\t\tthis.promptHistoryIndex = -1; // Exit history browsing mode\n\t\tthis.saveToHistory();\n\t\tconst line = this.state.lines[this.state.cursorLine] || \"\";\n\t\tthis.state.cursorCol = this.normalizeCursorCol(line, this.state.cursorCol);\n\t\tif (this.state.cursorCol > 0) {\n\t\t\t// Delete previous grapheme in current line\n\t\t\tconst prevCol = this.previousGraphemeIndex(line, this.state.cursorCol);\n\t\t\tconst before = line.slice(0, prevCol);\n\t\t\tconst after = line.slice(this.state.cursorCol);\n\t\t\tthis.state.lines[this.state.cursorLine] = before + after;\n\t\t\tthis.state.cursorCol = prevCol;\n\t\t} else if (this.state.cursorLine > 0) {\n\t\t\t// Merge with previous line\n\t\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\t\tconst previousLine = this.state.lines[this.state.cursorLine - 1] || \"\";\n\t\t\tthis.state.lines[this.state.cursorLine - 1] = previousLine + currentLine;\n\t\t\tthis.state.lines.splice(this.state.cursorLine, 1);\n\t\t\tthis.state.cursorLine--;\n\t\t\tthis.state.cursorCol = previousLine.length;\n\t\t}\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t\t// Update autocomplete after backspace\n\t\tif (this.isAutocompleting) {\n\t\t\tthis.updateAutocomplete();\n\t\t}\n\t}\n\tprivate moveToLineStart(): void {\n\t\tthis.state.cursorCol = 0;\n\t}\n\n\tprivate moveToSmartLineStart(): void {\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tconst firstNonBlank = Math.max(0, currentLine.search(/\\S|$/));\n\t\t// Toggle between first non-blank and column 0\n\t\tif (this.state.cursorCol === firstNonBlank) {\n\t\t\tthis.moveToLineStart();\n\t\t} else {\n\t\t\tthis.state.cursorCol = firstNonBlank;\n\t\t}\n\t\tthis.preferredCol = this.state.cursorCol;\n\t}\n\n\tprivate moveToLineEnd(): void {\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tthis.state.cursorCol = currentLine.length;\n\t\tthis.preferredCol = this.state.cursorCol;\n\t}\n\tprivate handleForwardDelete(): void {\n\t\tthis.saveToHistory();\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tthis.state.cursorCol = this.normalizeCursorCol(\n\t\t\tcurrentLine,\n\t\t\tthis.state.cursorCol,\n\t\t);\n\t\tif (this.state.cursorCol < currentLine.length) {\n\t\t\t// Delete character at cursor position (forward delete)\n\t\t\tconst nextCol = this.nextGraphemeIndex(currentLine, this.state.cursorCol);\n\t\t\tconst before = currentLine.slice(0, this.state.cursorCol);\n\t\t\tconst after = currentLine.slice(nextCol);\n\t\t\tthis.state.lines[this.state.cursorLine] = before + after;\n\t\t} else if (this.state.cursorLine < this.state.lines.length - 1) {\n\t\t\t// At end of line - merge with next line\n\t\t\tconst nextLine = this.state.lines[this.state.cursorLine + 1] || \"\";\n\t\t\tthis.state.lines[this.state.cursorLine] = currentLine + nextLine;\n\t\t\tthis.state.lines.splice(this.state.cursorLine + 1, 1);\n\t\t}\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t}\n\n\tprivate recordKill(text: string): void {\n\t\tthis.killBuffer = text;\n\t\tif (!text) return;\n\n\t\t// Keep most-recent-first, avoid consecutive duplicates\n\t\tif (this.killRing[0] !== text) {\n\t\t\tthis.killRing.unshift(text);\n\t\t\tif (this.killRing.length > Editor.MAX_KILL_RING_ENTRIES) {\n\t\t\t\tthis.killRing.length = Editor.MAX_KILL_RING_ENTRIES;\n\t\t\t}\n\t\t}\n\t\tthis.killRingIndex = 0;\n\t\tthis.lastYankRange = null;\n\t\tthis.lastCommandWasYank = false;\n\t}\n\n\tprivate replaceRangeWithText(\n\t\trange: {\n\t\t\tstartLine: number;\n\t\t\tstartCol: number;\n\t\t\tendLine: number;\n\t\t\tendCol: number;\n\t\t},\n\t\treplacement: string,\n\t): { endLine: number; endCol: number } {\n\t\tthis.promptHistoryIndex = -1; // Exit history browsing mode\n\t\tthis.saveToHistory();\n\n\t\tconst lines = this.state.lines;\n\t\tconst startLine = Math.max(0, Math.min(range.startLine, lines.length - 1));\n\t\tconst endLine = Math.max(0, Math.min(range.endLine, lines.length - 1));\n\t\tconst startCol = Math.max(0, range.startCol);\n\t\tconst endCol = Math.max(0, range.endCol);\n\n\t\tconst startText = lines[startLine] || \"\";\n\t\tconst endText = lines[endLine] || \"\";\n\n\t\tconst before = startText.slice(0, startCol);\n\t\tconst after = endText.slice(endCol);\n\n\t\tconst newLines: string[] = [];\n\t\tfor (let i = 0; i < startLine; i++) newLines.push(lines[i] || \"\");\n\t\tnewLines.push(before + after);\n\t\tfor (let i = endLine + 1; i < lines.length; i++)\n\t\t\tnewLines.push(lines[i] || \"\");\n\n\t\tthis.state.lines = newLines.length > 0 ? newLines : [\"\"];\n\t\tthis.state.cursorLine = startLine;\n\t\tthis.state.cursorCol = startCol;\n\t\tthis.preferredCol = this.state.cursorCol;\n\n\t\tthis.insertTextInternal(replacement, { skipHistory: true });\n\n\t\treturn {\n\t\t\tendLine: this.state.cursorLine,\n\t\t\tendCol: this.state.cursorCol,\n\t\t};\n\t}\n\n\tprivate deleteToStartOfLine(): void {\n\t\tthis.saveToHistory();\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tif (this.state.cursorCol > 0) {\n\t\t\t// Delete from start of line up to cursor\n\t\t\tthis.recordKill(currentLine.slice(0, this.state.cursorCol));\n\t\t\tthis.state.lines[this.state.cursorLine] = currentLine.slice(\n\t\t\t\tthis.state.cursorCol,\n\t\t\t);\n\t\t\tthis.state.cursorCol = 0;\n\t\t} else if (this.state.cursorLine > 0) {\n\t\t\t// At start of line - merge with previous line\n\t\t\tconst previousLine = this.state.lines[this.state.cursorLine - 1] || \"\";\n\t\t\tthis.recordKill(\"\\n\");\n\t\t\tthis.state.lines[this.state.cursorLine - 1] = previousLine + currentLine;\n\t\t\tthis.state.lines.splice(this.state.cursorLine, 1);\n\t\t\tthis.state.cursorLine--;\n\t\t\tthis.state.cursorCol = previousLine.length;\n\t\t}\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t}\n\n\tprivate deleteToEndOfLine(): void {\n\t\tthis.saveToHistory();\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tif (this.state.cursorCol < currentLine.length) {\n\t\t\t// Delete from cursor to end of line\n\t\t\tthis.recordKill(currentLine.slice(this.state.cursorCol));\n\t\t\tthis.state.lines[this.state.cursorLine] = currentLine.slice(\n\t\t\t\t0,\n\t\t\t\tthis.state.cursorCol,\n\t\t\t);\n\t\t} else if (this.state.cursorLine < this.state.lines.length - 1) {\n\t\t\t// At end of line - merge with next line\n\t\t\tconst nextLine = this.state.lines[this.state.cursorLine + 1] || \"\";\n\t\t\tthis.recordKill(\"\\n\");\n\t\t\tthis.state.lines[this.state.cursorLine] = currentLine + nextLine;\n\t\t\tthis.state.lines.splice(this.state.cursorLine + 1, 1);\n\t\t}\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t}\n\n\tprivate deleteWordBackwards(): void {\n\t\tthis.saveToHistory();\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\t// If at start of line, behave like backspace at column 0 (merge with previous line)\n\t\tthis.state.cursorCol = this.normalizeCursorCol(\n\t\t\tcurrentLine,\n\t\t\tthis.state.cursorCol,\n\t\t);\n\t\tif (this.state.cursorCol === 0) {\n\t\t\tif (this.state.cursorLine > 0) {\n\t\t\t\tconst previousLine = this.state.lines[this.state.cursorLine - 1] || \"\";\n\t\t\t\tthis.state.lines[this.state.cursorLine - 1] =\n\t\t\t\t\tpreviousLine + currentLine;\n\t\t\t\tthis.state.lines.splice(this.state.cursorLine, 1);\n\t\t\t\tthis.state.cursorLine--;\n\t\t\t\tthis.state.cursorCol = previousLine.length;\n\t\t\t\tthis.recordKill(\"\\n\");\n\t\t\t}\n\t\t} else {\n\t\t\tconst segments = this.getSegments(currentLine);\n\t\t\tlet segIdx = this.segmentIndexBefore(segments, this.state.cursorCol);\n\t\t\tlet deleteFrom = this.state.cursorCol;\n\n\t\t\t// Match standard bash/zsh behavior:\n\t\t\t// 1. Skip all trailing whitespace/punctuation\n\t\t\t// 2. Then delete the entire word\n\t\t\twhile (segIdx >= 0 && this.isBoundarySegment(segments[segIdx]!.segment)) {\n\t\t\t\tsegIdx -= 1;\n\t\t\t}\n\t\t\twhile (\n\t\t\t\tsegIdx >= 0 &&\n\t\t\t\t!this.isBoundarySegment(segments[segIdx]!.segment)\n\t\t\t) {\n\t\t\t\tsegIdx -= 1;\n\t\t\t}\n\t\t\tdeleteFrom = segIdx >= 0 ? segments[segIdx + 1]!.index : 0;\n\t\t\tthis.state.lines[this.state.cursorLine] =\n\t\t\t\tcurrentLine.slice(0, deleteFrom) +\n\t\t\t\tcurrentLine.slice(this.state.cursorCol);\n\t\t\tthis.recordKill(currentLine.slice(deleteFrom, this.state.cursorCol));\n\t\t\tthis.state.cursorCol = deleteFrom;\n\t\t}\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t}\n\n\tprivate moveWordBackwards(): void {\n\t\tlet lineIdx = this.state.cursorLine;\n\t\tlet colIdx = this.state.cursorCol;\n\n\t\twhile (true) {\n\t\t\tconst line = this.state.lines[lineIdx] || \"\";\n\t\t\tcolIdx = this.normalizeCursorCol(line, colIdx);\n\n\t\t\tif (colIdx === 0) {\n\t\t\t\t// Hop to end of previous line unless we're at absolute file start\n\t\t\t\tif (lineIdx === 0) {\n\t\t\t\t\tthis.state.cursorLine = lineIdx;\n\t\t\t\t\tthis.state.cursorCol = colIdx;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlineIdx -= 1;\n\t\t\t\tconst prevLine = this.state.lines[lineIdx] || \"\";\n\t\t\t\tif (prevLine.length === 0) {\n\t\t\t\t\t// Empty line - continue searching upward\n\t\t\t\t\tcolIdx = 0;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthis.state.cursorLine = lineIdx;\n\t\t\t\tthis.state.cursorCol = prevLine.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst segments = this.getSegments(line);\n\t\t\tlet segIdx = this.segmentIndexBefore(segments, colIdx);\n\t\t\twhile (segIdx >= 0 && this.isBoundarySegment(segments[segIdx]!.segment)) {\n\t\t\t\tsegIdx -= 1;\n\t\t\t}\n\t\t\twhile (\n\t\t\t\tsegIdx >= 0 &&\n\t\t\t\t!this.isBoundarySegment(segments[segIdx]!.segment)\n\t\t\t) {\n\t\t\t\tsegIdx -= 1;\n\t\t\t}\n\t\t\tcolIdx = segIdx >= 0 ? segments[segIdx + 1]!.index : 0;\n\n\t\t\tthis.state.cursorLine = lineIdx;\n\t\t\tthis.state.cursorCol = colIdx;\n\t\t\tbreak;\n\t\t}\n\n\t\tthis.preferredCol = this.state.cursorCol;\n\t}\n\n\tprivate moveWordForwards(): void {\n\t\tlet lineIdx = this.state.cursorLine;\n\t\tlet colIdx = this.state.cursorCol;\n\n\t\twhile (true) {\n\t\t\tconst line = this.state.lines[lineIdx] || \"\";\n\t\t\tcolIdx = this.normalizeCursorCol(line, colIdx);\n\t\t\tconst segments = this.getSegments(line);\n\t\t\tlet segIdx = this.segmentIndexAtOrAfter(segments, colIdx);\n\n\t\t\twhile (\n\t\t\t\tsegIdx < segments.length &&\n\t\t\t\t!this.isBoundarySegment(segments[segIdx]!.segment)\n\t\t\t) {\n\t\t\t\tsegIdx += 1;\n\t\t\t}\n\t\t\twhile (\n\t\t\t\tsegIdx < segments.length &&\n\t\t\t\tthis.isBoundarySegment(segments[segIdx]!.segment)\n\t\t\t) {\n\t\t\t\tsegIdx += 1;\n\t\t\t}\n\n\t\t\t// Stop only at absolute file end; otherwise continue to next line\n\t\t\tif (segIdx >= segments.length && lineIdx >= this.state.lines.length - 1) {\n\t\t\t\tthis.state.cursorLine = lineIdx;\n\t\t\t\tthis.state.cursorCol = line.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Move to next line and continue searching\n\t\t\tif (segIdx >= segments.length) {\n\t\t\t\tlineIdx += 1;\n\t\t\t\tcolIdx = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.state.cursorLine = lineIdx;\n\t\t\tthis.state.cursorCol = segments[segIdx]!.index;\n\t\t\tbreak;\n\t\t}\n\n\t\tthis.preferredCol = this.state.cursorCol;\n\t}\n\n\tprivate yankKillBuffer(): void {\n\t\tif (this.killRing.length === 0 && !this.killBuffer) return;\n\t\tif (this.killRing.length === 0 && this.killBuffer) {\n\t\t\tthis.recordKill(this.killBuffer);\n\t\t}\n\t\tif (this.killRing.length === 0) return;\n\n\t\t// Yank-pop: if the last command was a yank and we still know what range we inserted,\n\t\t// cycle through the ring by replacing that range in-place.\n\t\tif (\n\t\t\tthis.lastCommandWasYank &&\n\t\t\tthis.lastYankRange &&\n\t\t\tthis.killRing.length > 1\n\t\t) {\n\t\t\tthis.killRingIndex = (this.killRingIndex + 1) % this.killRing.length;\n\t\t\tconst next = this.killRing[this.killRingIndex] || \"\";\n\t\t\tconst end = this.replaceRangeWithText(this.lastYankRange, next);\n\t\t\tthis.lastYankRange = {\n\t\t\t\tstartLine: this.lastYankRange.startLine,\n\t\t\t\tstartCol: this.lastYankRange.startCol,\n\t\t\t\tendLine: end.endLine,\n\t\t\t\tendCol: end.endCol,\n\t\t\t};\n\t\t\tthis.lastCommandWasYank = true;\n\t\t\treturn;\n\t\t}\n\n\t\t// Normal yank: insert most recent kill.\n\t\tthis.killRingIndex = 0;\n\t\tconst startLine = this.state.cursorLine;\n\t\tconst startCol = this.state.cursorCol;\n\t\tthis.insertTextInternal(this.killRing[0] || \"\", { skipHistory: false });\n\t\tthis.lastYankRange = {\n\t\t\tstartLine,\n\t\t\tstartCol,\n\t\t\tendLine: this.state.cursorLine,\n\t\t\tendCol: this.state.cursorCol,\n\t\t};\n\t\tthis.lastCommandWasYank = true;\n\t}\n\tprivate moveCursor(deltaLine: number, deltaCol: number): void {\n\t\tif (deltaLine !== 0) {\n\t\t\tif (this.preferredCol === null) {\n\t\t\t\tthis.preferredCol = this.state.cursorCol;\n\t\t\t}\n\t\t\tconst newLine = this.state.cursorLine + deltaLine;\n\t\t\tif (newLine >= 0 && newLine < this.state.lines.length) {\n\t\t\t\tthis.state.cursorLine = newLine;\n\t\t\t\t// Clamp cursor column to new line length\n\t\t\t\tconst line = this.state.lines[this.state.cursorLine] || \"\";\n\t\t\t\tconst targetCol = this.preferredCol ?? this.state.cursorCol;\n\t\t\t\tthis.state.cursorCol = this.normalizeCursorCol(\n\t\t\t\t\tline,\n\t\t\t\t\tMath.min(targetCol, line.length),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (deltaCol !== 0) {\n\t\t\t// Move column\n\t\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\t\tthis.state.cursorCol = this.normalizeCursorCol(\n\t\t\t\tcurrentLine,\n\t\t\t\tthis.state.cursorCol,\n\t\t\t);\n\t\t\tif (deltaCol === 1) {\n\t\t\t\tthis.state.cursorCol = this.nextGraphemeIndex(\n\t\t\t\t\tcurrentLine,\n\t\t\t\t\tthis.state.cursorCol,\n\t\t\t\t);\n\t\t\t} else if (deltaCol === -1) {\n\t\t\t\tthis.state.cursorCol = this.previousGraphemeIndex(\n\t\t\t\t\tcurrentLine,\n\t\t\t\t\tthis.state.cursorCol,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst newCol = this.state.cursorCol + deltaCol;\n\t\t\t\tconst maxCol = currentLine.length;\n\t\t\t\tthis.state.cursorCol = this.normalizeCursorCol(\n\t\t\t\t\tcurrentLine,\n\t\t\t\t\tMath.max(0, Math.min(maxCol, newCol)),\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.preferredCol = this.state.cursorCol;\n\t\t}\n\t}\n\n\tprivate normalizeCursorCol(line: string, col: number): number {\n\t\tif (!this.graphemeSegmenter || line.length === 0) {\n\t\t\treturn Math.max(0, Math.min(line.length, col));\n\t\t}\n\t\tconst clamped = Math.max(0, Math.min(line.length, col));\n\t\tif (clamped === line.length) {\n\t\t\treturn clamped;\n\t\t}\n\t\tlet candidate = 0;\n\t\tfor (const segment of this.graphemeSegmenter.segment(line)) {\n\t\t\tif (segment.index > clamped) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcandidate = segment.index;\n\t\t}\n\t\tif (candidate === clamped) {\n\t\t\treturn clamped;\n\t\t}\n\t\t// Move to the boundary at or before the requested column.\n\t\treturn candidate;\n\t}\n\n\tprivate previousGraphemeIndex(line: string, col: number): number {\n\t\tif (!this.graphemeSegmenter) {\n\t\t\treturn Math.max(0, col - 1);\n\t\t}\n\t\tconst clamped = this.normalizeCursorCol(line, col);\n\t\tlet prev = 0;\n\t\tfor (const segment of this.graphemeSegmenter.segment(line)) {\n\t\t\tif (segment.index >= clamped) break;\n\t\t\tprev = segment.index;\n\t\t}\n\t\treturn prev;\n\t}\n\n\tprivate nextGraphemeIndex(line: string, col: number): number {\n\t\tif (!this.graphemeSegmenter) {\n\t\t\treturn Math.min(line.length, col + 1);\n\t\t}\n\t\tconst clamped = this.normalizeCursorCol(line, col);\n\t\tfor (const segment of this.graphemeSegmenter.segment(line)) {\n\t\t\tif (segment.index > clamped) {\n\t\t\t\treturn segment.index;\n\t\t\t}\n\t\t}\n\t\treturn line.length;\n\t}\n\n\tprivate getSegments(line: string): Array<{ index: number; segment: string }> {\n\t\tif (!this.graphemeSegmenter) {\n\t\t\tconst segments: Array<{ index: number; segment: string }> = [];\n\t\t\tfor (let i = 0; i < line.length; i++) {\n\t\t\t\tsegments.push({ index: i, segment: line[i] ?? \"\" });\n\t\t\t}\n\t\t\treturn segments;\n\t\t}\n\t\tconst segments: Array<{ index: number; segment: string }> = [];\n\t\tfor (const segment of this.graphemeSegmenter.segment(line)) {\n\t\t\tsegments.push({ index: segment.index, segment: segment.segment });\n\t\t}\n\t\treturn segments;\n\t}\n\n\tprivate segmentIndexBefore(\n\t\tsegments: Array<{ index: number; segment: string }>,\n\t\tcol: number,\n\t): number {\n\t\tlet idx = -1;\n\t\tfor (let i = 0; i < segments.length; i++) {\n\t\t\tif (segments[i]!.index >= col) break;\n\t\t\tidx = i;\n\t\t}\n\t\treturn idx;\n\t}\n\n\tprivate segmentIndexAtOrAfter(\n\t\tsegments: Array<{ index: number; segment: string }>,\n\t\tcol: number,\n\t): number {\n\t\tfor (let i = 0; i < segments.length; i++) {\n\t\t\tif (segments[i]!.index >= col) return i;\n\t\t}\n\t\treturn segments.length;\n\t}\n\n\tprivate isBoundarySegment(segment: string): boolean {\n\t\treturn /\\s/.test(segment) || WORD_BOUNDARY.test(segment);\n\t}\n\t// Helper method to check if cursor is at start of message (for slash command detection)\n\tprivate isAtStartOfMessage(): boolean {\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tconst beforeCursor = currentLine.slice(0, this.state.cursorCol);\n\t\t// At start if line is empty, only contains whitespace, or is just \"/\"\n\t\treturn beforeCursor.trim() === \"\" || beforeCursor.trim() === \"/\";\n\t}\n\t// Autocomplete methods\n\ttryTriggerAutocomplete(explicitTab = false) {\n\t\tif (!this.autocompleteProvider) return;\n\t\t// Check if we should trigger file completion on Tab\n\t\tif (explicitTab) {\n\t\t\tconst provider = this.autocompleteProvider;\n\t\t\tconst shouldTrigger =\n\t\t\t\t!provider.shouldTriggerFileCompletion ||\n\t\t\t\tprovider.shouldTriggerFileCompletion(\n\t\t\t\t\tthis.state.lines,\n\t\t\t\t\tthis.state.cursorLine,\n\t\t\t\t\tthis.state.cursorCol,\n\t\t\t\t);\n\t\t\tif (!shouldTrigger) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst suggestions = this.autocompleteProvider.getSuggestions(\n\t\t\tthis.state.lines,\n\t\t\tthis.state.cursorLine,\n\t\t\tthis.state.cursorCol,\n\t\t);\n\t\tif (suggestions && suggestions.items.length > 0) {\n\t\t\tthis.autocompletePrefix = suggestions.prefix;\n\t\t\tthis.autocompleteList = new SelectList(suggestions.items, 5);\n\t\t\tthis.isAutocompleting = true;\n\t\t} else {\n\t\t\tthis.cancelAutocomplete();\n\t\t}\n\t}\n\tprivate handleTabCompletion(): void {\n\t\tif (!this.autocompleteProvider) return;\n\t\tconst currentLine = this.state.lines[this.state.cursorLine] || \"\";\n\t\tconst beforeCursor = currentLine.slice(0, this.state.cursorCol);\n\t\t// Check if we're in a slash command context\n\t\tif (beforeCursor.trimStart().startsWith(\"/\")) {\n\t\t\tthis.handleSlashCommandCompletion();\n\t\t} else {\n\t\t\tthis.forceFileAutocomplete();\n\t\t}\n\t}\n\tprivate handleSlashCommandCompletion(): void {\n\t\t// For now, fall back to regular autocomplete (slash commands)\n\t\t// This can be extended later to handle command-specific argument completion\n\t\tthis.tryTriggerAutocomplete(true);\n\t}\n\tprivate forceFileAutocomplete(): void {\n\t\tif (!this.autocompleteProvider) return;\n\t\t// Check if provider has the force method\n\t\tconst provider = this.autocompleteProvider;\n\t\tif (!provider.getForceFileSuggestions) {\n\t\t\tthis.tryTriggerAutocomplete(true);\n\t\t\treturn;\n\t\t}\n\t\tconst suggestions = provider.getForceFileSuggestions(\n\t\t\tthis.state.lines,\n\t\t\tthis.state.cursorLine,\n\t\t\tthis.state.cursorCol,\n\t\t);\n\t\tif (suggestions && suggestions.items.length > 0) {\n\t\t\tthis.autocompletePrefix = suggestions.prefix;\n\t\t\tthis.autocompleteList = new SelectList(suggestions.items, 5);\n\t\t\tthis.isAutocompleting = true;\n\t\t} else {\n\t\t\tthis.cancelAutocomplete();\n\t\t}\n\t}\n\tprivate cancelAutocomplete(): void {\n\t\tthis.isAutocompleting = false;\n\t\tthis.autocompleteList = undefined;\n\t\tthis.autocompletePrefix = \"\";\n\t}\n\tisShowingAutocomplete(): boolean {\n\t\treturn this.isAutocompleting;\n\t}\n\tprivate updateAutocomplete(): void {\n\t\tif (!this.isAutocompleting || !this.autocompleteProvider) return;\n\t\tconst suggestions = this.autocompleteProvider.getSuggestions(\n\t\t\tthis.state.lines,\n\t\t\tthis.state.cursorLine,\n\t\t\tthis.state.cursorCol,\n\t\t);\n\t\tif (suggestions && suggestions.items.length > 0) {\n\t\t\tthis.autocompletePrefix = suggestions.prefix;\n\t\t\tif (this.autocompleteList) {\n\t\t\t\t// Update the existing list with new items\n\t\t\t\tthis.autocompleteList = new SelectList(suggestions.items, 5);\n\t\t\t}\n\t\t} else {\n\t\t\t// No more matches, cancel autocomplete\n\t\t\tthis.cancelAutocomplete();\n\t\t}\n\t}\n\n\t/**\n\t * Save current state to undo history.\n\t * Debounces saves to avoid excessive history entries during rapid typing.\n\t */\n\tprivate saveToHistory(): void {\n\t\tconst now = Date.now();\n\t\tif (now - this.lastSaveTime < Editor.SAVE_DEBOUNCE_MS) {\n\t\t\t// Update the most recent entry instead of creating a new one\n\t\t\tif (this.undoStack.length > 0) {\n\t\t\t\tthis.undoStack[this.undoStack.length - 1] = {\n\t\t\t\t\tstate: this.cloneState(),\n\t\t\t\t\ttimestamp: now,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis.undoStack.push({\n\t\t\tstate: this.cloneState(),\n\t\t\ttimestamp: now,\n\t\t});\n\n\t\t// Trim history if too long\n\t\tif (this.undoStack.length > Editor.MAX_HISTORY) {\n\t\t\tthis.undoStack.shift();\n\t\t}\n\n\t\t// Clear redo stack when new changes are made\n\t\tthis.redoStack = [];\n\t\tthis.lastSaveTime = now;\n\t}\n\n\t/**\n\t * Clone current editor state.\n\t */\n\tprivate cloneState(): EditorState {\n\t\treturn {\n\t\t\tlines: [...this.state.lines],\n\t\t\tcursorLine: this.state.cursorLine,\n\t\t\tcursorCol: this.state.cursorCol,\n\t\t};\n\t}\n\n\t/**\n\t * Undo the last change.\n\t */\n\tundo(): boolean {\n\t\tif (this.undoStack.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Save current state to redo stack\n\t\tthis.redoStack.push({\n\t\t\tstate: this.cloneState(),\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\n\t\t// Restore previous state\n\t\tconst entry = this.undoStack.pop();\n\t\tif (entry) {\n\t\t\tthis.state = {\n\t\t\t\tlines: [...entry.state.lines],\n\t\t\t\tcursorLine: entry.state.cursorLine,\n\t\t\t\tcursorCol: entry.state.cursorCol,\n\t\t\t};\n\t\t\tif (this.onChange) {\n\t\t\t\tthis.onChange(this.getText());\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Redo the last undone change.\n\t */\n\tredo(): boolean {\n\t\tif (this.redoStack.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Save current state to undo stack\n\t\tthis.undoStack.push({\n\t\t\tstate: this.cloneState(),\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\n\t\t// Restore next state\n\t\tconst entry = this.redoStack.pop();\n\t\tif (entry) {\n\t\t\tthis.state = {\n\t\t\t\tlines: [...entry.state.lines],\n\t\t\t\tcursorLine: entry.state.cursorLine,\n\t\t\t\tcursorCol: entry.state.cursorCol,\n\t\t\t};\n\t\t\tif (this.onChange) {\n\t\t\t\tthis.onChange(this.getText());\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Clear undo/redo history.\n\t */\n\tclearHistory(): void {\n\t\tthis.undoStack = [];\n\t\tthis.redoStack = [];\n\t\tthis.lastSaveTime = 0;\n\t}\n\n\t/**\n\t * Check if undo is available.\n\t */\n\tcanUndo(): boolean {\n\t\treturn this.undoStack.length > 0;\n\t}\n\n\t/**\n\t * Check if redo is available.\n\t */\n\tcanRedo(): boolean {\n\t\treturn this.redoStack.length > 0;\n\t}\n\n\t// ==================== Prompt History ====================\n\n\t/**\n\t * Add a prompt to history for up/down arrow navigation.\n\t * Called after successful submission.\n\t */\n\taddToHistory(text: string): void {\n\t\tconst trimmed = text.trim();\n\t\tif (!trimmed) return;\n\t\t// Don't add consecutive duplicates\n\t\tif (this.promptHistory.length > 0 && this.promptHistory[0] === trimmed) {\n\t\t\treturn;\n\t\t}\n\t\tthis.promptHistory.unshift(trimmed);\n\t\t// Limit history size\n\t\tif (this.promptHistory.length > Editor.MAX_PROMPT_HISTORY) {\n\t\t\tthis.promptHistory.pop();\n\t\t}\n\t}\n\n\t/**\n\t * Check if the editor content is empty (ignoring whitespace).\n\t */\n\tisEditorEmpty(): boolean {\n\t\treturn this.getText().trim() === \"\";\n\t}\n\n\t/**\n\t * Check if cursor is on the first visual line of the editor.\n\t */\n\tprivate isOnFirstVisualLine(): boolean {\n\t\treturn this.state.cursorLine === 0;\n\t}\n\n\t/**\n\t * Check if cursor is on the last visual line of the editor.\n\t */\n\tprivate isOnLastVisualLine(): boolean {\n\t\treturn this.state.cursorLine === this.state.lines.length - 1;\n\t}\n\n\t/**\n\t * Navigate through prompt history.\n\t * @param direction -1 for older (up), 1 for newer (down)\n\t * @returns true if navigation happened, false otherwise\n\t */\n\tnavigatePromptHistory(direction: -1 | 1): boolean {\n\t\tif (this.promptHistory.length === 0) return false;\n\n\t\tconst newIndex = this.promptHistoryIndex - direction; // Up(-1) increases index, Down(1) decreases\n\n\t\tif (newIndex < -1 || newIndex >= this.promptHistory.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.promptHistoryIndex = newIndex;\n\n\t\tif (this.promptHistoryIndex === -1) {\n\t\t\t// Returned to \"current\" state - clear editor\n\t\t\tthis.setTextInternal(\"\");\n\t\t} else {\n\t\t\tthis.setTextInternal(this.promptHistory[this.promptHistoryIndex] || \"\");\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Internal setText that doesn't reset history state - used by navigatePromptHistory.\n\t */\n\tprivate setTextInternal(text: string): void {\n\t\tconst lines = text.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\").split(\"\\n\");\n\t\tthis.state.lines = lines.length === 0 ? [\"\"] : lines;\n\t\t// Reset cursor to end of text\n\t\tthis.state.cursorLine = this.state.lines.length - 1;\n\t\tthis.state.cursorCol = this.state.lines[this.state.cursorLine]?.length || 0;\n\t\t// Notify of change\n\t\tif (this.onChange) {\n\t\t\tthis.onChange(this.getText());\n\t\t}\n\t}\n\n\t/**\n\t * Reset prompt history browsing state. Called when user types or edits.\n\t */\n\tprivate resetPromptHistoryIndex(): void {\n\t\tthis.promptHistoryIndex = -1;\n\t}\n\n\t/**\n\t * Check if currently browsing prompt history.\n\t */\n\tisBrowsingHistory(): boolean {\n\t\treturn this.promptHistoryIndex > -1;\n\t}\n\n\t/**\n\t * Clear prompt history.\n\t */\n\tclearPromptHistory(): void {\n\t\tthis.promptHistory = [];\n\t\tthis.promptHistoryIndex = -1;\n\t}\n}\n"]}
@@ -1,117 +0,0 @@
1
- /**
2
- * @fileoverview Single-line Text Input Component
3
- *
4
- * This module provides a terminal-based single-line text input with
5
- * horizontal scrolling support. Unlike the multi-line {@link Editor},
6
- * this component is optimized for short inputs like search queries,
7
- * file paths, and command arguments.
8
- *
9
- * ## Features
10
- *
11
- * - **Horizontal Scrolling**: Long text scrolls horizontally
12
- * - **Cursor Navigation**: Arrow keys, Home/End, Ctrl+A/E
13
- * - **Standard Editing**: Backspace, Delete, character insertion
14
- * - **Submit Handling**: Enter key triggers submission
15
- *
16
- * ## Visual Representation
17
- *
18
- * ```
19
- * > some long text that scr▌lls horizontally
20
- * ^ ^
21
- * prompt cursor (inverse video)
22
- * ```
23
- *
24
- * @module components/input
25
- */
26
- import type { Component } from "../tui.js";
27
- /**
28
- * Single-line text input component with horizontal scrolling.
29
- *
30
- * This component is designed for simple text entry where multi-line
31
- * support is not needed. It automatically scrolls the viewport when
32
- * the cursor moves beyond the visible area.
33
- *
34
- * ## Keyboard Shortcuts
35
- *
36
- * | Key | Action |
37
- * |-----|--------|
38
- * | Enter | Submit value |
39
- * | Backspace | Delete character before cursor |
40
- * | Delete | Delete character at cursor |
41
- * | Left/Right | Move cursor |
42
- * | Ctrl+A | Move to beginning of line |
43
- * | Ctrl+E | Move to end of line |
44
- *
45
- * @example
46
- * ```typescript
47
- * const input = new Input();
48
- * input.onSubmit = (value) => {
49
- * console.log('User entered:', value);
50
- * };
51
- *
52
- * // Set initial value
53
- * input.setValue('/path/to/file');
54
- *
55
- * // Get current value
56
- * const current = input.getValue();
57
- * ```
58
- */
59
- export declare class Input implements Component {
60
- /** Current input value */
61
- private value;
62
- /** Cursor position within the value */
63
- private cursor;
64
- private pasteBuffer;
65
- private isInPaste;
66
- /**
67
- * Callback fired when user presses Enter.
68
- * @param value - The current input value
69
- */
70
- onSubmit?: (value: string) => void;
71
- /**
72
- * Gets the current input value.
73
- * @returns The current text in the input
74
- */
75
- getValue(): string;
76
- /**
77
- * Sets the input value programmatically.
78
- * The cursor is adjusted to stay within bounds.
79
- * @param value - New value to set
80
- */
81
- setValue(value: string): void;
82
- /**
83
- * Handles keyboard input for navigation and editing.
84
- *
85
- * Recognized keys:
86
- * - **Enter/Return**: Submit value
87
- * - **Backspace**: Delete character before cursor
88
- * - **Delete**: Delete character at cursor
89
- * - **Left Arrow**: Move cursor left
90
- * - **Right Arrow**: Move cursor right
91
- * - **Ctrl+A**: Move to beginning
92
- * - **Ctrl+E**: Move to end
93
- * - **Printable ASCII**: Insert at cursor
94
- *
95
- * @param data - Raw key data from terminal
96
- */
97
- handleInput(data: string): void;
98
- private deleteWordBackwards;
99
- private moveWordBackwards;
100
- private moveWordForwards;
101
- private handlePaste;
102
- /**
103
- * Renders the input to terminal lines.
104
- *
105
- * The viewport scrolling algorithm keeps the cursor visible by:
106
- * 1. Showing everything if it fits
107
- * 2. Centering the cursor when text is longer than viewport
108
- * 3. Anchoring to start/end when cursor is near boundaries
109
- *
110
- * The cursor is rendered using inverse video (ANSI SGR 7).
111
- *
112
- * @param width - Available width for rendering
113
- * @returns Array containing a single rendered line
114
- */
115
- render(width: number): string[];
116
- }
117
- //# sourceMappingURL=input.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAoBH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAU3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,KAAM,YAAW,SAAS;IACtC,0BAA0B;IAC1B,OAAO,CAAC,KAAK,CAAM;IAEnB,uCAAuC;IACvC,OAAO,CAAC,MAAM,CAAK;IAGnB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,SAAS,CAAS;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgK/B,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,WAAW;IAuBnB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CA+C/B"}