@qduc/term2 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (758) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +46 -6
  3. package/dist/agent.js.map +1 -1
  4. package/dist/agent.test.d.ts +2 -0
  5. package/dist/agent.test.d.ts.map +1 -0
  6. package/dist/agent.test.js +198 -0
  7. package/dist/agent.test.js.map +1 -0
  8. package/dist/app.d.ts +5 -0
  9. package/dist/app.d.ts.map +1 -1
  10. package/dist/app.js +30 -14
  11. package/dist/app.js.map +1 -1
  12. package/dist/app.startup-banner.test.d.ts +2 -0
  13. package/dist/app.startup-banner.test.d.ts.map +1 -0
  14. package/dist/app.startup-banner.test.js +11 -0
  15. package/dist/app.startup-banner.test.js.map +1 -0
  16. package/dist/cli.d.ts +1 -1
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +18 -3
  19. package/dist/cli.js.map +1 -1
  20. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  21. package/dist/components/ApprovalPrompt.js +10 -10
  22. package/dist/components/ApprovalPrompt.js.map +1 -1
  23. package/dist/components/Banner.js +1 -1
  24. package/dist/components/Banner.js.map +1 -1
  25. package/dist/components/BottomArea.d.ts.map +1 -1
  26. package/dist/components/BottomArea.js +3 -4
  27. package/dist/components/BottomArea.js.map +1 -1
  28. package/dist/components/ChatMessage.d.ts +1 -0
  29. package/dist/components/ChatMessage.d.ts.map +1 -1
  30. package/dist/components/ChatMessage.js +2 -2
  31. package/dist/components/ChatMessage.js.map +1 -1
  32. package/dist/components/CommandMessage.d.ts.map +1 -1
  33. package/dist/components/CommandMessage.js +48 -3
  34. package/dist/components/CommandMessage.js.map +1 -1
  35. package/dist/components/CommandMessage.test.js +90 -0
  36. package/dist/components/CommandMessage.test.js.map +1 -1
  37. package/dist/components/Input/PopupManager.d.ts +3 -0
  38. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  39. package/dist/components/Input/PopupManager.js +2 -2
  40. package/dist/components/Input/PopupManager.js.map +1 -1
  41. package/dist/components/Input/insertions.d.ts.map +1 -1
  42. package/dist/components/Input/insertions.js +2 -2
  43. package/dist/components/Input/insertions.js.map +1 -1
  44. package/dist/components/Input/popup-key-navigation.d.ts +18 -0
  45. package/dist/components/Input/popup-key-navigation.d.ts.map +1 -0
  46. package/dist/components/Input/popup-key-navigation.js +16 -0
  47. package/dist/components/Input/popup-key-navigation.js.map +1 -0
  48. package/dist/components/Input/popup-key-navigation.test.d.ts +2 -0
  49. package/dist/components/Input/popup-key-navigation.test.d.ts.map +1 -0
  50. package/dist/components/Input/popup-key-navigation.test.js +73 -0
  51. package/dist/components/Input/popup-key-navigation.test.js.map +1 -0
  52. package/dist/components/Input/popup-props.d.ts.map +1 -1
  53. package/dist/components/Input/popup-props.js +2 -0
  54. package/dist/components/Input/popup-props.js.map +1 -1
  55. package/dist/components/Input/triggers.d.ts +1 -0
  56. package/dist/components/Input/triggers.d.ts.map +1 -1
  57. package/dist/components/Input/triggers.js +1 -0
  58. package/dist/components/Input/triggers.js.map +1 -1
  59. package/dist/components/InputBox.d.ts.map +1 -1
  60. package/dist/components/InputBox.js +130 -6
  61. package/dist/components/InputBox.js.map +1 -1
  62. package/dist/components/InputBox.test.js +42 -1
  63. package/dist/components/InputBox.test.js.map +1 -1
  64. package/dist/components/LiveResponse.d.ts +1 -3
  65. package/dist/components/LiveResponse.d.ts.map +1 -1
  66. package/dist/components/LiveResponse.js +5 -6
  67. package/dist/components/LiveResponse.js.map +1 -1
  68. package/dist/components/MarkdownRenderer.d.ts +5 -2
  69. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  70. package/dist/components/MarkdownRenderer.js +66 -45
  71. package/dist/components/MarkdownRenderer.js.map +1 -1
  72. package/dist/components/MessageList.d.ts +7 -1
  73. package/dist/components/MessageList.d.ts.map +1 -1
  74. package/dist/components/MessageList.js +98 -23
  75. package/dist/components/MessageList.js.map +1 -1
  76. package/dist/components/MessageList.test.js +177 -4
  77. package/dist/components/MessageList.test.js.map +1 -1
  78. package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
  79. package/dist/components/ModelSelectionMenu.js +54 -14
  80. package/dist/components/ModelSelectionMenu.js.map +1 -1
  81. package/dist/components/PathSelectionMenu.d.ts +2 -0
  82. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  83. package/dist/components/PathSelectionMenu.js +31 -12
  84. package/dist/components/PathSelectionMenu.js.map +1 -1
  85. package/dist/components/SettingsSelectionMenu.d.ts +1 -0
  86. package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
  87. package/dist/components/SettingsSelectionMenu.js +32 -23
  88. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  89. package/dist/components/SettingsSelectionMenu.scroll.test.d.ts +2 -0
  90. package/dist/components/SettingsSelectionMenu.scroll.test.d.ts.map +1 -0
  91. package/dist/components/SettingsSelectionMenu.scroll.test.js +23 -0
  92. package/dist/components/SettingsSelectionMenu.scroll.test.js.map +1 -0
  93. package/dist/components/StatusBar.d.ts.map +1 -1
  94. package/dist/components/StatusBar.js +14 -14
  95. package/dist/components/StatusBar.js.map +1 -1
  96. package/dist/components/StatusBar.test.d.ts +2 -0
  97. package/dist/components/StatusBar.test.d.ts.map +1 -0
  98. package/dist/components/StatusBar.test.js +30 -0
  99. package/dist/components/StatusBar.test.js.map +1 -0
  100. package/dist/contracts/conversation.d.ts +1 -0
  101. package/dist/contracts/conversation.d.ts.map +1 -1
  102. package/dist/env-setup.d.ts +2 -0
  103. package/dist/env-setup.d.ts.map +1 -0
  104. package/dist/env-setup.js +7 -0
  105. package/dist/env-setup.js.map +1 -0
  106. package/dist/env-setup.test.d.ts +2 -0
  107. package/dist/env-setup.test.d.ts.map +1 -0
  108. package/dist/env-setup.test.js +6 -0
  109. package/dist/env-setup.test.js.map +1 -0
  110. package/dist/hooks/path-completion-filter.d.ts +4 -0
  111. package/dist/hooks/path-completion-filter.d.ts.map +1 -0
  112. package/dist/hooks/path-completion-filter.js +27 -0
  113. package/dist/hooks/path-completion-filter.js.map +1 -0
  114. package/dist/hooks/path-completion-filter.test.d.ts +2 -0
  115. package/dist/hooks/path-completion-filter.test.d.ts.map +1 -0
  116. package/dist/hooks/path-completion-filter.test.js +100 -0
  117. package/dist/hooks/path-completion-filter.test.js.map +1 -0
  118. package/dist/hooks/use-app-commands.d.ts +3 -1
  119. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  120. package/dist/hooks/use-app-commands.js +74 -6
  121. package/dist/hooks/use-app-commands.js.map +1 -1
  122. package/dist/hooks/use-app-commands.test.js +20 -3
  123. package/dist/hooks/use-app-commands.test.js.map +1 -1
  124. package/dist/hooks/use-conversation.d.ts +4 -9
  125. package/dist/hooks/use-conversation.d.ts.map +1 -1
  126. package/dist/hooks/use-conversation.js +32 -57
  127. package/dist/hooks/use-conversation.js.map +1 -1
  128. package/dist/hooks/use-mode-handlers.d.ts +3 -1
  129. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  130. package/dist/hooks/use-mode-handlers.js +8 -0
  131. package/dist/hooks/use-mode-handlers.js.map +1 -1
  132. package/dist/hooks/use-model-selection.d.ts +1 -1
  133. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  134. package/dist/hooks/use-model-selection.js +57 -21
  135. package/dist/hooks/use-model-selection.js.map +1 -1
  136. package/dist/hooks/use-model-selection.test.js +171 -9
  137. package/dist/hooks/use-model-selection.test.js.map +1 -1
  138. package/dist/hooks/use-path-completion.d.ts +1 -0
  139. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  140. package/dist/hooks/use-path-completion.js +22 -17
  141. package/dist/hooks/use-path-completion.js.map +1 -1
  142. package/dist/hooks/use-settings-completion.d.ts +2 -2
  143. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  144. package/dist/hooks/use-settings-completion.js +53 -18
  145. package/dist/hooks/use-settings-completion.js.map +1 -1
  146. package/dist/hooks/use-settings-completion.scroll.test.d.ts +2 -0
  147. package/dist/hooks/use-settings-completion.scroll.test.d.ts.map +1 -0
  148. package/dist/hooks/use-settings-completion.scroll.test.js +55 -0
  149. package/dist/hooks/use-settings-completion.scroll.test.js.map +1 -0
  150. package/dist/hooks/use-settings-completion.test.js +69 -79
  151. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  152. package/dist/hooks/use-settings-value-completion.d.ts +1 -2
  153. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  154. package/dist/hooks/use-settings-value-completion.js +47 -19
  155. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  156. package/dist/hooks/use-settings-value-completion.test.js +5 -18
  157. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  158. package/dist/hooks/use-slash-commands.d.ts +7 -0
  159. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  160. package/dist/hooks/use-slash-commands.js +20 -13
  161. package/dist/hooks/use-slash-commands.js.map +1 -1
  162. package/dist/hooks/use-slash-commands.test.js +52 -1
  163. package/dist/hooks/use-slash-commands.test.js.map +1 -1
  164. package/dist/hooks/use-trigger-detection.d.ts.map +1 -1
  165. package/dist/hooks/use-trigger-detection.js +7 -3
  166. package/dist/hooks/use-trigger-detection.js.map +1 -1
  167. package/dist/hooks/use-trigger-detection.test.d.ts +2 -0
  168. package/dist/hooks/use-trigger-detection.test.d.ts.map +1 -0
  169. package/dist/hooks/use-trigger-detection.test.js +59 -0
  170. package/dist/hooks/use-trigger-detection.test.js.map +1 -0
  171. package/dist/lib/openai-agent-client.d.ts +21 -0
  172. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  173. package/dist/lib/openai-agent-client.js +52 -17
  174. package/dist/lib/openai-agent-client.js.map +1 -1
  175. package/dist/lib/openai-agent-client.test.js +63 -0
  176. package/dist/lib/openai-agent-client.test.js.map +1 -1
  177. package/dist/lib/tool-invoke.d.ts +3 -2
  178. package/dist/lib/tool-invoke.d.ts.map +1 -1
  179. package/dist/lib/tool-invoke.js +69 -4
  180. package/dist/lib/tool-invoke.js.map +1 -1
  181. package/dist/lib/tool-invoke.test.js +25 -0
  182. package/dist/lib/tool-invoke.test.js.map +1 -1
  183. package/dist/non-interactive.d.ts.map +1 -1
  184. package/dist/non-interactive.js +3 -0
  185. package/dist/non-interactive.js.map +1 -1
  186. package/dist/prompts/gpt-5-modern.md +66 -0
  187. package/dist/prompts/gpt-5.md +10 -0
  188. package/dist/prompts/lite.md +10 -27
  189. package/dist/prompts/prompt-selector.js +2 -2
  190. package/dist/prompts/prompt-selector.js.map +1 -1
  191. package/dist/prompts/prompt-selector.test.js +7 -2
  192. package/dist/prompts/prompt-selector.test.js.map +1 -1
  193. package/dist/prompts/prompt-selector.test.ts +22 -2
  194. package/dist/prompts/prompt-selector.ts +2 -2
  195. package/dist/prompts/search-via-shell.d.ts +7 -0
  196. package/dist/prompts/search-via-shell.d.ts.map +1 -0
  197. package/dist/prompts/search-via-shell.js +59 -0
  198. package/dist/prompts/search-via-shell.js.map +1 -0
  199. package/dist/prompts/search-via-shell.test.d.ts +2 -0
  200. package/dist/prompts/search-via-shell.test.d.ts.map +1 -0
  201. package/dist/prompts/search-via-shell.test.js +40 -0
  202. package/dist/prompts/search-via-shell.test.js.map +1 -0
  203. package/dist/prompts/search-via-shell.test.ts +47 -0
  204. package/dist/prompts/search-via-shell.ts +71 -0
  205. package/dist/prompts/simple.md +40 -186
  206. package/dist/providers/ai-sdk-agents-adapter.d.ts +7 -0
  207. package/dist/providers/ai-sdk-agents-adapter.d.ts.map +1 -0
  208. package/dist/providers/ai-sdk-agents-adapter.js +80 -0
  209. package/dist/providers/ai-sdk-agents-adapter.js.map +1 -0
  210. package/dist/providers/ai-sdk-agents-adapter.test.d.ts +2 -0
  211. package/dist/providers/ai-sdk-agents-adapter.test.d.ts.map +1 -0
  212. package/dist/providers/ai-sdk-agents-adapter.test.js +158 -0
  213. package/dist/providers/ai-sdk-agents-adapter.test.js.map +1 -0
  214. package/dist/providers/ai-sdk-anthropic.provider.d.ts +14 -0
  215. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -0
  216. package/dist/providers/ai-sdk-anthropic.provider.js +18 -0
  217. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -0
  218. package/dist/providers/ai-sdk-google.provider.d.ts +14 -0
  219. package/dist/providers/ai-sdk-google.provider.d.ts.map +1 -0
  220. package/dist/providers/ai-sdk-google.provider.js +18 -0
  221. package/dist/providers/ai-sdk-google.provider.js.map +1 -0
  222. package/dist/providers/ai-sdk-logging-fetch.d.ts +11 -0
  223. package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -0
  224. package/dist/providers/ai-sdk-logging-fetch.js +127 -0
  225. package/dist/providers/ai-sdk-logging-fetch.js.map +1 -0
  226. package/dist/providers/ai-sdk-logging-fetch.test.d.ts +2 -0
  227. package/dist/providers/ai-sdk-logging-fetch.test.d.ts.map +1 -0
  228. package/dist/providers/ai-sdk-logging-fetch.test.js +107 -0
  229. package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -0
  230. package/dist/providers/ai-sdk-message-normalizer.d.ts +8 -0
  231. package/dist/providers/ai-sdk-message-normalizer.d.ts.map +1 -0
  232. package/dist/providers/ai-sdk-message-normalizer.js +115 -0
  233. package/dist/providers/ai-sdk-message-normalizer.js.map +1 -0
  234. package/dist/providers/ai-sdk-message-normalizer.test.d.ts +2 -0
  235. package/dist/providers/ai-sdk-message-normalizer.test.d.ts.map +1 -0
  236. package/dist/providers/ai-sdk-message-normalizer.test.js +435 -0
  237. package/dist/providers/ai-sdk-message-normalizer.test.js.map +1 -0
  238. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +2 -0
  239. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
  240. package/dist/providers/ai-sdk-openai-compatible.provider.js +3 -2
  241. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
  242. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +25 -0
  243. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
  244. package/dist/providers/ai-sdk-openrouter.provider.d.ts +16 -0
  245. package/dist/providers/ai-sdk-openrouter.provider.d.ts.map +1 -0
  246. package/dist/providers/ai-sdk-openrouter.provider.js +21 -0
  247. package/dist/providers/ai-sdk-openrouter.provider.js.map +1 -0
  248. package/dist/providers/ai-sdk-openrouter.provider.test.d.ts +2 -0
  249. package/dist/providers/ai-sdk-openrouter.provider.test.d.ts.map +1 -0
  250. package/dist/providers/ai-sdk-openrouter.provider.test.js +93 -0
  251. package/dist/providers/ai-sdk-openrouter.provider.test.js.map +1 -0
  252. package/dist/providers/common/openai-compatible-messages.d.ts +1 -2
  253. package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -1
  254. package/dist/providers/common/openai-compatible-messages.js +22 -48
  255. package/dist/providers/common/openai-compatible-messages.js.map +1 -1
  256. package/dist/providers/common/openai-compatible-messages.test.js +93 -1
  257. package/dist/providers/common/openai-compatible-messages.test.js.map +1 -1
  258. package/dist/providers/custom-provider-adapter.test.d.ts +2 -0
  259. package/dist/providers/custom-provider-adapter.test.d.ts.map +1 -0
  260. package/dist/providers/custom-provider-adapter.test.js +52 -0
  261. package/dist/providers/custom-provider-adapter.test.js.map +1 -0
  262. package/dist/providers/openai-compatible-behavior-gate.test.d.ts +2 -0
  263. package/dist/providers/openai-compatible-behavior-gate.test.d.ts.map +1 -0
  264. package/dist/providers/openai-compatible-behavior-gate.test.js +216 -0
  265. package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -0
  266. package/dist/providers/openai-compatible.provider.d.ts +10 -1
  267. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  268. package/dist/providers/openai-compatible.provider.js +341 -31
  269. package/dist/providers/openai-compatible.provider.js.map +1 -1
  270. package/dist/providers/openai-compatible.provider.test.d.ts +2 -0
  271. package/dist/providers/openai-compatible.provider.test.d.ts.map +1 -0
  272. package/dist/providers/openai-compatible.provider.test.js +462 -0
  273. package/dist/providers/openai-compatible.provider.test.js.map +1 -0
  274. package/dist/providers/openai.provider.js +2 -1
  275. package/dist/providers/openai.provider.js.map +1 -1
  276. package/dist/providers/openai.provider.test.d.ts +2 -0
  277. package/dist/providers/openai.provider.test.d.ts.map +1 -0
  278. package/dist/providers/openai.provider.test.js +22 -0
  279. package/dist/providers/openai.provider.test.js.map +1 -0
  280. package/dist/providers/openrouter.provider.js +32 -5
  281. package/dist/providers/openrouter.provider.js.map +1 -1
  282. package/dist/scripts/eval-auto-approval/dataset.d.ts +2 -2
  283. package/dist/services/conversation-events.d.ts +3 -0
  284. package/dist/services/conversation-events.d.ts.map +1 -1
  285. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  286. package/dist/services/conversation-result-builder.js +11 -1
  287. package/dist/services/conversation-result-builder.js.map +1 -1
  288. package/dist/services/conversation-result-builder.test.js +72 -0
  289. package/dist/services/conversation-result-builder.test.js.map +1 -1
  290. package/dist/services/conversation-session.d.ts +2 -1
  291. package/dist/services/conversation-session.d.ts.map +1 -1
  292. package/dist/services/conversation-session.js +30 -1
  293. package/dist/services/conversation-session.js.map +1 -1
  294. package/dist/services/file-service.js +1 -1
  295. package/dist/services/file-service.js.map +1 -1
  296. package/dist/services/logging-contract.d.ts +3 -3
  297. package/dist/services/logging-service.d.ts.map +1 -1
  298. package/dist/services/logging-service.js +18 -1
  299. package/dist/services/logging-service.js.map +1 -1
  300. package/dist/services/model-service.d.ts.map +1 -1
  301. package/dist/services/model-service.js +16 -8
  302. package/dist/services/model-service.js.map +1 -1
  303. package/dist/services/model-service.test.js +67 -1
  304. package/dist/services/model-service.test.js.map +1 -1
  305. package/dist/services/rtk-service.d.ts +23 -0
  306. package/dist/services/rtk-service.d.ts.map +1 -0
  307. package/dist/services/rtk-service.js +165 -0
  308. package/dist/services/rtk-service.js.map +1 -0
  309. package/dist/services/rtk-service.test.d.ts +2 -0
  310. package/dist/services/rtk-service.test.d.ts.map +1 -0
  311. package/dist/services/rtk-service.test.js +239 -0
  312. package/dist/services/rtk-service.test.js.map +1 -0
  313. package/dist/services/settings-persistence.d.ts +1 -0
  314. package/dist/services/settings-persistence.d.ts.map +1 -1
  315. package/dist/services/settings-persistence.js +28 -5
  316. package/dist/services/settings-persistence.js.map +1 -1
  317. package/dist/services/settings-persistence.test.js +55 -3
  318. package/dist/services/settings-persistence.test.js.map +1 -1
  319. package/dist/services/settings-schema.d.ts +55 -16
  320. package/dist/services/settings-schema.d.ts.map +1 -1
  321. package/dist/services/settings-schema.js +35 -4
  322. package/dist/services/settings-schema.js.map +1 -1
  323. package/dist/services/settings-schema.test.d.ts +2 -0
  324. package/dist/services/settings-schema.test.d.ts.map +1 -0
  325. package/dist/services/settings-schema.test.js +77 -0
  326. package/dist/services/settings-schema.test.js.map +1 -0
  327. package/dist/services/settings-service.d.ts.map +1 -1
  328. package/dist/services/settings-service.js +7 -4
  329. package/dist/services/settings-service.js.map +1 -1
  330. package/dist/services/settings-sources.d.ts.map +1 -1
  331. package/dist/services/settings-sources.js +1 -0
  332. package/dist/services/settings-sources.js.map +1 -1
  333. package/dist/services/shell-auto-approval-evaluator.d.ts +1 -1
  334. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  335. package/dist/services/shell-auto-approval-evaluator.js +8 -2
  336. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  337. package/dist/services/stream-event-parsing.js +1 -1
  338. package/dist/services/stream-event-parsing.js.map +1 -1
  339. package/dist/services/stream-event-parsing.test.js +13 -0
  340. package/dist/services/stream-event-parsing.test.js.map +1 -1
  341. package/dist/services/stream-event-processor.d.ts.map +1 -1
  342. package/dist/services/stream-event-processor.js +10 -8
  343. package/dist/services/stream-event-processor.js.map +1 -1
  344. package/dist/services/stream-event-processor.test.js +32 -0
  345. package/dist/services/stream-event-processor.test.js.map +1 -1
  346. package/dist/services/terminal-result-collector.d.ts.map +1 -1
  347. package/dist/services/terminal-result-collector.js +1 -0
  348. package/dist/services/terminal-result-collector.js.map +1 -1
  349. package/dist/services/terminal-result-collector.test.js +22 -0
  350. package/dist/services/terminal-result-collector.test.js.map +1 -1
  351. package/dist/tools/apply-patch.d.ts +12 -4
  352. package/dist/tools/apply-patch.d.ts.map +1 -1
  353. package/dist/tools/apply-patch.js +204 -208
  354. package/dist/tools/apply-patch.js.map +1 -1
  355. package/dist/tools/apply-patch.test.js +44 -0
  356. package/dist/tools/apply-patch.test.js.map +1 -1
  357. package/dist/tools/code-context.d.ts +27 -0
  358. package/dist/tools/code-context.d.ts.map +1 -0
  359. package/dist/tools/code-context.js +512 -0
  360. package/dist/tools/code-context.js.map +1 -0
  361. package/dist/tools/code-context.test.d.ts +2 -0
  362. package/dist/tools/code-context.test.d.ts.map +1 -0
  363. package/dist/tools/code-context.test.js +368 -0
  364. package/dist/tools/code-context.test.js.map +1 -0
  365. package/dist/tools/create-file.d.ts.map +1 -1
  366. package/dist/tools/create-file.js +3 -2
  367. package/dist/tools/create-file.js.map +1 -1
  368. package/dist/tools/edit-healing.d.ts +4 -3
  369. package/dist/tools/edit-healing.d.ts.map +1 -1
  370. package/dist/tools/edit-healing.js +50 -20
  371. package/dist/tools/edit-healing.js.map +1 -1
  372. package/dist/tools/edit-healing.test.js +62 -0
  373. package/dist/tools/edit-healing.test.js.map +1 -1
  374. package/dist/tools/file-locks.d.ts +2 -0
  375. package/dist/tools/file-locks.d.ts.map +1 -0
  376. package/dist/tools/file-locks.js +21 -0
  377. package/dist/tools/file-locks.js.map +1 -0
  378. package/dist/tools/find-files.d.ts +1 -0
  379. package/dist/tools/find-files.d.ts.map +1 -1
  380. package/dist/tools/find-files.js +59 -139
  381. package/dist/tools/find-files.js.map +1 -1
  382. package/dist/tools/find-files.test.js +5 -10
  383. package/dist/tools/find-files.test.js.map +1 -1
  384. package/dist/tools/grep.d.ts +1 -0
  385. package/dist/tools/grep.d.ts.map +1 -1
  386. package/dist/tools/grep.js +10 -46
  387. package/dist/tools/grep.js.map +1 -1
  388. package/dist/tools/language-providers.d.ts +48 -0
  389. package/dist/tools/language-providers.d.ts.map +1 -0
  390. package/dist/tools/language-providers.js +244 -0
  391. package/dist/tools/language-providers.js.map +1 -0
  392. package/dist/tools/search-replace.d.ts +5 -2
  393. package/dist/tools/search-replace.d.ts.map +1 -1
  394. package/dist/tools/search-replace.js +201 -106
  395. package/dist/tools/search-replace.js.map +1 -1
  396. package/dist/tools/search-replace.test.js +111 -1
  397. package/dist/tools/search-replace.test.js.map +1 -1
  398. package/dist/tools/search.d.ts.map +1 -1
  399. package/dist/tools/search.js +5 -15
  400. package/dist/tools/search.js.map +1 -1
  401. package/dist/tools/shell.d.ts +2 -0
  402. package/dist/tools/shell.d.ts.map +1 -1
  403. package/dist/tools/shell.js +15 -7
  404. package/dist/tools/shell.js.map +1 -1
  405. package/dist/tools/shell.test.js +28 -0
  406. package/dist/tools/shell.test.js.map +1 -1
  407. package/dist/tools/tool-names.d.ts +3 -0
  408. package/dist/tools/tool-names.d.ts.map +1 -1
  409. package/dist/tools/tool-names.js +3 -0
  410. package/dist/tools/tool-names.js.map +1 -1
  411. package/dist/tools/tool-names.test.js +4 -1
  412. package/dist/tools/tool-names.test.js.map +1 -1
  413. package/dist/tools/tool-parameter-schema.test.js +18 -0
  414. package/dist/tools/tool-parameter-schema.test.js.map +1 -1
  415. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  416. package/dist/utils/command-safety/constants.js +30 -5
  417. package/dist/utils/command-safety/constants.js.map +1 -1
  418. package/dist/utils/command-safety/index.d.ts.map +1 -1
  419. package/dist/utils/command-safety/index.js +3 -0
  420. package/dist/utils/command-safety/index.js.map +1 -1
  421. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  422. package/dist/utils/command-safety/path-analysis.js +8 -0
  423. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  424. package/dist/utils/command-safety.find.test.js +1 -1
  425. package/dist/utils/command-safety.find.test.js.map +1 -1
  426. package/dist/utils/command-safety.path.test.js +14 -0
  427. package/dist/utils/command-safety.path.test.js.map +1 -1
  428. package/dist/utils/command-safety.specialized-handlers.test.d.ts +2 -0
  429. package/dist/utils/command-safety.specialized-handlers.test.d.ts.map +1 -0
  430. package/dist/utils/command-safety.specialized-handlers.test.js +20 -0
  431. package/dist/utils/command-safety.specialized-handlers.test.js.map +1 -0
  432. package/dist/utils/conversation-event-handler.d.ts +8 -6
  433. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  434. package/dist/utils/conversation-event-handler.js +166 -46
  435. package/dist/utils/conversation-event-handler.js.map +1 -1
  436. package/dist/utils/conversation-event-handler.test.js +391 -12
  437. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  438. package/dist/utils/conversation-utils.d.ts +2 -0
  439. package/dist/utils/conversation-utils.d.ts.map +1 -1
  440. package/dist/utils/conversation-utils.js +2 -0
  441. package/dist/utils/conversation-utils.js.map +1 -1
  442. package/dist/utils/execute-shell.d.ts +5 -6
  443. package/dist/utils/execute-shell.d.ts.map +1 -1
  444. package/dist/utils/execute-shell.js +21 -11
  445. package/dist/utils/execute-shell.js.map +1 -1
  446. package/dist/utils/execute-shell.test.js +37 -6
  447. package/dist/utils/execute-shell.test.js.map +1 -1
  448. package/dist/utils/extract-command-messages.d.ts.map +1 -1
  449. package/dist/utils/extract-command-messages.js +4 -1
  450. package/dist/utils/extract-command-messages.js.map +1 -1
  451. package/dist/utils/flex-service-tier.d.ts +2 -0
  452. package/dist/utils/flex-service-tier.d.ts.map +1 -0
  453. package/dist/utils/flex-service-tier.js +20 -0
  454. package/dist/utils/flex-service-tier.js.map +1 -0
  455. package/dist/utils/flex-service-tier.test.d.ts +2 -0
  456. package/dist/utils/flex-service-tier.test.d.ts.map +1 -0
  457. package/dist/utils/flex-service-tier.test.js +25 -0
  458. package/dist/utils/flex-service-tier.test.js.map +1 -0
  459. package/dist/utils/log-truncation.d.ts +4 -2
  460. package/dist/utils/log-truncation.d.ts.map +1 -1
  461. package/dist/utils/log-truncation.js +143 -41
  462. package/dist/utils/log-truncation.js.map +1 -1
  463. package/dist/utils/log-truncation.test.js +131 -1
  464. package/dist/utils/log-truncation.test.js.map +1 -1
  465. package/dist/utils/project-tree.d.ts +14 -0
  466. package/dist/utils/project-tree.d.ts.map +1 -0
  467. package/dist/utils/project-tree.js +111 -0
  468. package/dist/utils/project-tree.js.map +1 -0
  469. package/dist/utils/project-tree.test.d.ts +2 -0
  470. package/dist/utils/project-tree.test.d.ts.map +1 -0
  471. package/dist/utils/project-tree.test.js +149 -0
  472. package/dist/utils/project-tree.test.js.map +1 -0
  473. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -1
  474. package/dist/utils/provider-traffic-extractor.js +0 -1
  475. package/dist/utils/provider-traffic-extractor.js.map +1 -1
  476. package/dist/utils/streaming-session-factory.d.ts +1 -3
  477. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  478. package/dist/utils/streaming-session-factory.js +29 -10
  479. package/dist/utils/streaming-session-factory.js.map +1 -1
  480. package/dist/utils/streaming-session-factory.test.js +47 -15
  481. package/dist/utils/streaming-session-factory.test.js.map +1 -1
  482. package/dist/utils/subsequence-filter.d.ts +8 -0
  483. package/dist/utils/subsequence-filter.d.ts.map +1 -0
  484. package/dist/utils/subsequence-filter.js +47 -0
  485. package/dist/utils/subsequence-filter.js.map +1 -0
  486. package/dist/utils/terminal-clear.d.ts +7 -0
  487. package/dist/utils/terminal-clear.d.ts.map +1 -0
  488. package/dist/utils/terminal-clear.js +5 -0
  489. package/dist/utils/terminal-clear.js.map +1 -0
  490. package/dist/utils/terminal-clear.test.d.ts +2 -0
  491. package/dist/utils/terminal-clear.test.d.ts.map +1 -0
  492. package/dist/utils/terminal-clear.test.js +13 -0
  493. package/dist/utils/terminal-clear.test.js.map +1 -0
  494. package/dist/utils/token-usage.d.ts +13 -1
  495. package/dist/utils/token-usage.d.ts.map +1 -1
  496. package/dist/utils/token-usage.js +119 -28
  497. package/dist/utils/token-usage.js.map +1 -1
  498. package/dist/utils/token-usage.test.js +135 -3
  499. package/dist/utils/token-usage.test.js.map +1 -1
  500. package/package.json +5 -4
  501. package/readme.md +29 -24
  502. package/dist/agent.lite-mode.test.d.ts +0 -2
  503. package/dist/agent.lite-mode.test.d.ts.map +0 -1
  504. package/dist/agent.lite-mode.test.js +0 -39
  505. package/dist/agent.lite-mode.test.js.map +0 -1
  506. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +0 -2
  507. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +0 -1
  508. package/dist/components/ModelSelectionMenu.error-tabs.test.js +0 -18
  509. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +0 -1
  510. package/dist/components/TextInput.d.ts +0 -42
  511. package/dist/components/TextInput.d.ts.map +0 -1
  512. package/dist/components/TextInput.js +0 -398
  513. package/dist/components/TextInput.js.map +0 -1
  514. package/dist/components/TextInput.test.d.ts +0 -2
  515. package/dist/components/TextInput.test.d.ts.map +0 -1
  516. package/dist/components/TextInput.test.js +0 -75
  517. package/dist/components/TextInput.test.js.map +0 -1
  518. package/dist/debug_ask_mentor.d.ts +0 -2
  519. package/dist/debug_ask_mentor.d.ts.map +0 -1
  520. package/dist/debug_ask_mentor.js +0 -73
  521. package/dist/debug_ask_mentor.js.map +0 -1
  522. package/dist/lib/shell.d.ts +0 -7
  523. package/dist/lib/shell.d.ts.map +0 -1
  524. package/dist/lib/shell.js +0 -56
  525. package/dist/lib/shell.js.map +0 -1
  526. package/dist/modes/companion/command-index.d.ts +0 -26
  527. package/dist/modes/companion/command-index.d.ts.map +0 -1
  528. package/dist/modes/companion/command-index.js +0 -50
  529. package/dist/modes/companion/command-index.js.map +0 -1
  530. package/dist/modes/companion/command-index.test.d.ts +0 -2
  531. package/dist/modes/companion/command-index.test.d.ts.map +0 -1
  532. package/dist/modes/companion/command-index.test.js +0 -86
  533. package/dist/modes/companion/command-index.test.js.map +0 -1
  534. package/dist/modes/companion/companion-app.d.ts +0 -12
  535. package/dist/modes/companion/companion-app.d.ts.map +0 -1
  536. package/dist/modes/companion/companion-app.js +0 -297
  537. package/dist/modes/companion/companion-app.js.map +0 -1
  538. package/dist/modes/companion/companion-session.d.ts +0 -63
  539. package/dist/modes/companion/companion-session.d.ts.map +0 -1
  540. package/dist/modes/companion/companion-session.js +0 -146
  541. package/dist/modes/companion/companion-session.js.map +0 -1
  542. package/dist/modes/companion/companion-session.test.d.ts +0 -2
  543. package/dist/modes/companion/companion-session.test.d.ts.map +0 -1
  544. package/dist/modes/companion/companion-session.test.js +0 -28
  545. package/dist/modes/companion/companion-session.test.js.map +0 -1
  546. package/dist/modes/companion/components/status-bar.d.ts +0 -13
  547. package/dist/modes/companion/components/status-bar.d.ts.map +0 -1
  548. package/dist/modes/companion/components/status-bar.js +0 -26
  549. package/dist/modes/companion/components/status-bar.js.map +0 -1
  550. package/dist/modes/companion/context-buffer.d.ts +0 -65
  551. package/dist/modes/companion/context-buffer.d.ts.map +0 -1
  552. package/dist/modes/companion/context-buffer.js +0 -156
  553. package/dist/modes/companion/context-buffer.js.map +0 -1
  554. package/dist/modes/companion/context-buffer.test.d.ts +0 -2
  555. package/dist/modes/companion/context-buffer.test.d.ts.map +0 -1
  556. package/dist/modes/companion/context-buffer.test.js +0 -154
  557. package/dist/modes/companion/context-buffer.test.js.map +0 -1
  558. package/dist/modes/companion/event-detector.d.ts +0 -46
  559. package/dist/modes/companion/event-detector.d.ts.map +0 -1
  560. package/dist/modes/companion/event-detector.js +0 -169
  561. package/dist/modes/companion/event-detector.js.map +0 -1
  562. package/dist/modes/companion/event-detector.test.d.ts +0 -2
  563. package/dist/modes/companion/event-detector.test.d.ts.map +0 -1
  564. package/dist/modes/companion/event-detector.test.js +0 -121
  565. package/dist/modes/companion/event-detector.test.js.map +0 -1
  566. package/dist/modes/companion/index.d.ts +0 -33
  567. package/dist/modes/companion/index.d.ts.map +0 -1
  568. package/dist/modes/companion/index.js +0 -21
  569. package/dist/modes/companion/index.js.map +0 -1
  570. package/dist/modes/companion/input-key-mapper.d.ts +0 -3
  571. package/dist/modes/companion/input-key-mapper.d.ts.map +0 -1
  572. package/dist/modes/companion/input-key-mapper.js +0 -31
  573. package/dist/modes/companion/input-key-mapper.js.map +0 -1
  574. package/dist/modes/companion/input-key-mapper.test.d.ts +0 -2
  575. package/dist/modes/companion/input-key-mapper.test.d.ts.map +0 -1
  576. package/dist/modes/companion/input-key-mapper.test.js +0 -26
  577. package/dist/modes/companion/input-key-mapper.test.js.map +0 -1
  578. package/dist/modes/companion/input-parser.d.ts +0 -53
  579. package/dist/modes/companion/input-parser.d.ts.map +0 -1
  580. package/dist/modes/companion/input-parser.js +0 -114
  581. package/dist/modes/companion/input-parser.js.map +0 -1
  582. package/dist/modes/companion/input-parser.test.d.ts +0 -2
  583. package/dist/modes/companion/input-parser.test.d.ts.map +0 -1
  584. package/dist/modes/companion/input-parser.test.js +0 -123
  585. package/dist/modes/companion/input-parser.test.js.map +0 -1
  586. package/dist/modes/companion/mode-manager.d.ts +0 -41
  587. package/dist/modes/companion/mode-manager.d.ts.map +0 -1
  588. package/dist/modes/companion/mode-manager.js +0 -56
  589. package/dist/modes/companion/mode-manager.js.map +0 -1
  590. package/dist/modes/companion/mode-manager.test.d.ts +0 -2
  591. package/dist/modes/companion/mode-manager.test.d.ts.map +0 -1
  592. package/dist/modes/companion/mode-manager.test.js +0 -65
  593. package/dist/modes/companion/mode-manager.test.js.map +0 -1
  594. package/dist/modes/companion/output-classifier.d.ts +0 -15
  595. package/dist/modes/companion/output-classifier.d.ts.map +0 -1
  596. package/dist/modes/companion/output-classifier.js +0 -77
  597. package/dist/modes/companion/output-classifier.js.map +0 -1
  598. package/dist/modes/companion/output-classifier.test.d.ts +0 -2
  599. package/dist/modes/companion/output-classifier.test.d.ts.map +0 -1
  600. package/dist/modes/companion/output-classifier.test.js +0 -133
  601. package/dist/modes/companion/output-classifier.test.js.map +0 -1
  602. package/dist/modes/companion/pty-wrapper.d.ts +0 -46
  603. package/dist/modes/companion/pty-wrapper.d.ts.map +0 -1
  604. package/dist/modes/companion/pty-wrapper.js +0 -143
  605. package/dist/modes/companion/pty-wrapper.js.map +0 -1
  606. package/dist/modes/companion/safety-classifier.d.ts +0 -31
  607. package/dist/modes/companion/safety-classifier.d.ts.map +0 -1
  608. package/dist/modes/companion/safety-classifier.js +0 -140
  609. package/dist/modes/companion/safety-classifier.js.map +0 -1
  610. package/dist/modes/companion/safety-classifier.test.d.ts +0 -2
  611. package/dist/modes/companion/safety-classifier.test.d.ts.map +0 -1
  612. package/dist/modes/companion/safety-classifier.test.js +0 -151
  613. package/dist/modes/companion/safety-classifier.test.js.map +0 -1
  614. package/dist/modes/companion/summarizer.d.ts +0 -24
  615. package/dist/modes/companion/summarizer.d.ts.map +0 -1
  616. package/dist/modes/companion/summarizer.js +0 -132
  617. package/dist/modes/companion/summarizer.js.map +0 -1
  618. package/dist/modes/companion/terminal-history.d.ts +0 -27
  619. package/dist/modes/companion/terminal-history.d.ts.map +0 -1
  620. package/dist/modes/companion/terminal-history.js +0 -142
  621. package/dist/modes/companion/terminal-history.js.map +0 -1
  622. package/dist/prompts/simple-mentor.md +0 -215
  623. package/dist/providers/github-copilot/converters.d.ts +0 -45
  624. package/dist/providers/github-copilot/converters.d.ts.map +0 -1
  625. package/dist/providers/github-copilot/converters.js +0 -118
  626. package/dist/providers/github-copilot/converters.js.map +0 -1
  627. package/dist/providers/github-copilot/converters.test.d.ts +0 -2
  628. package/dist/providers/github-copilot/converters.test.d.ts.map +0 -1
  629. package/dist/providers/github-copilot/converters.test.js +0 -162
  630. package/dist/providers/github-copilot/converters.test.js.map +0 -1
  631. package/dist/providers/github-copilot/github-copilot.provider.d.ts +0 -2
  632. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +0 -1
  633. package/dist/providers/github-copilot/github-copilot.provider.js +0 -75
  634. package/dist/providers/github-copilot/github-copilot.provider.js.map +0 -1
  635. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +0 -2
  636. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +0 -1
  637. package/dist/providers/github-copilot/github-copilot.provider.test.js +0 -26
  638. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +0 -1
  639. package/dist/providers/github-copilot/index.d.ts +0 -4
  640. package/dist/providers/github-copilot/index.d.ts.map +0 -1
  641. package/dist/providers/github-copilot/index.js +0 -4
  642. package/dist/providers/github-copilot/index.js.map +0 -1
  643. package/dist/providers/github-copilot/model.d.ts +0 -24
  644. package/dist/providers/github-copilot/model.d.ts.map +0 -1
  645. package/dist/providers/github-copilot/model.delta.test.d.ts +0 -2
  646. package/dist/providers/github-copilot/model.delta.test.d.ts.map +0 -1
  647. package/dist/providers/github-copilot/model.delta.test.js +0 -15
  648. package/dist/providers/github-copilot/model.delta.test.js.map +0 -1
  649. package/dist/providers/github-copilot/model.js +0 -498
  650. package/dist/providers/github-copilot/model.js.map +0 -1
  651. package/dist/providers/github-copilot/model.test.d.ts +0 -2
  652. package/dist/providers/github-copilot/model.test.d.ts.map +0 -1
  653. package/dist/providers/github-copilot/model.test.js +0 -63
  654. package/dist/providers/github-copilot/model.test.js.map +0 -1
  655. package/dist/providers/github-copilot/provider.d.ts +0 -15
  656. package/dist/providers/github-copilot/provider.d.ts.map +0 -1
  657. package/dist/providers/github-copilot/provider.js +0 -25
  658. package/dist/providers/github-copilot/provider.js.map +0 -1
  659. package/dist/providers/github-copilot/provider.test.d.ts +0 -2
  660. package/dist/providers/github-copilot/provider.test.d.ts.map +0 -1
  661. package/dist/providers/github-copilot/provider.test.js +0 -52
  662. package/dist/providers/github-copilot/provider.test.js.map +0 -1
  663. package/dist/providers/github-copilot/utils.d.ts +0 -20
  664. package/dist/providers/github-copilot/utils.d.ts.map +0 -1
  665. package/dist/providers/github-copilot/utils.js +0 -142
  666. package/dist/providers/github-copilot/utils.js.map +0 -1
  667. package/dist/providers/github-copilot/utils.test.d.ts +0 -2
  668. package/dist/providers/github-copilot/utils.test.d.ts.map +0 -1
  669. package/dist/providers/github-copilot/utils.test.js +0 -21
  670. package/dist/providers/github-copilot/utils.test.js.map +0 -1
  671. package/dist/providers/openai-compatible/api.d.ts +0 -17
  672. package/dist/providers/openai-compatible/api.d.ts.map +0 -1
  673. package/dist/providers/openai-compatible/api.js +0 -58
  674. package/dist/providers/openai-compatible/api.js.map +0 -1
  675. package/dist/providers/openai-compatible/model.d.ts +0 -17
  676. package/dist/providers/openai-compatible/model.d.ts.map +0 -1
  677. package/dist/providers/openai-compatible/model.js +0 -473
  678. package/dist/providers/openai-compatible/model.js.map +0 -1
  679. package/dist/providers/openai-compatible/provider.d.ts +0 -22
  680. package/dist/providers/openai-compatible/provider.d.ts.map +0 -1
  681. package/dist/providers/openai-compatible/provider.js +0 -43
  682. package/dist/providers/openai-compatible/provider.js.map +0 -1
  683. package/dist/providers/openai-compatible/reasoning-content.test.d.ts +0 -2
  684. package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +0 -1
  685. package/dist/providers/openai-compatible/reasoning-content.test.js +0 -258
  686. package/dist/providers/openai-compatible/reasoning-content.test.js.map +0 -1
  687. package/dist/providers/openai-compatible/utils.d.ts +0 -3
  688. package/dist/providers/openai-compatible/utils.d.ts.map +0 -1
  689. package/dist/providers/openai-compatible/utils.js +0 -11
  690. package/dist/providers/openai-compatible/utils.js.map +0 -1
  691. package/dist/providers/openrouter/api.d.ts +0 -39
  692. package/dist/providers/openrouter/api.d.ts.map +0 -1
  693. package/dist/providers/openrouter/api.js +0 -164
  694. package/dist/providers/openrouter/api.js.map +0 -1
  695. package/dist/providers/openrouter/converters.d.ts +0 -8
  696. package/dist/providers/openrouter/converters.d.ts.map +0 -1
  697. package/dist/providers/openrouter/converters.js +0 -391
  698. package/dist/providers/openrouter/converters.js.map +0 -1
  699. package/dist/providers/openrouter/converters.test.d.ts +0 -2
  700. package/dist/providers/openrouter/converters.test.d.ts.map +0 -1
  701. package/dist/providers/openrouter/converters.test.js +0 -179
  702. package/dist/providers/openrouter/converters.test.js.map +0 -1
  703. package/dist/providers/openrouter/index.d.ts +0 -4
  704. package/dist/providers/openrouter/index.d.ts.map +0 -1
  705. package/dist/providers/openrouter/index.js +0 -4
  706. package/dist/providers/openrouter/index.js.map +0 -1
  707. package/dist/providers/openrouter/model.d.ts +0 -14
  708. package/dist/providers/openrouter/model.d.ts.map +0 -1
  709. package/dist/providers/openrouter/model.js +0 -457
  710. package/dist/providers/openrouter/model.js.map +0 -1
  711. package/dist/providers/openrouter/provider.d.ts +0 -15
  712. package/dist/providers/openrouter/provider.d.ts.map +0 -1
  713. package/dist/providers/openrouter/provider.js +0 -21
  714. package/dist/providers/openrouter/provider.js.map +0 -1
  715. package/dist/providers/openrouter/reasoning-content.test.d.ts +0 -2
  716. package/dist/providers/openrouter/reasoning-content.test.d.ts.map +0 -1
  717. package/dist/providers/openrouter/reasoning-content.test.js +0 -122
  718. package/dist/providers/openrouter/reasoning-content.test.js.map +0 -1
  719. package/dist/providers/openrouter/utils.d.ts +0 -11
  720. package/dist/providers/openrouter/utils.d.ts.map +0 -1
  721. package/dist/providers/openrouter/utils.js +0 -29
  722. package/dist/providers/openrouter/utils.js.map +0 -1
  723. package/dist/providers/openrouter.api.retry.test.d.ts +0 -2
  724. package/dist/providers/openrouter.api.retry.test.d.ts.map +0 -1
  725. package/dist/providers/openrouter.api.retry.test.js +0 -148
  726. package/dist/providers/openrouter.api.retry.test.js.map +0 -1
  727. package/dist/providers/openrouter.test.d.ts +0 -2
  728. package/dist/providers/openrouter.test.d.ts.map +0 -1
  729. package/dist/providers/openrouter.test.js +0 -1449
  730. package/dist/providers/openrouter.test.js.map +0 -1
  731. package/dist/safety-checker.js +0 -57
  732. package/dist/services/check_mock.d.ts +0 -2
  733. package/dist/services/check_mock.d.ts.map +0 -1
  734. package/dist/services/check_mock.js +0 -22
  735. package/dist/services/check_mock.js.map +0 -1
  736. package/dist/services/conversation-service.test.d.ts +0 -2
  737. package/dist/services/conversation-service.test.d.ts.map +0 -1
  738. package/dist/services/conversation-service.test.js +0 -156
  739. package/dist/services/conversation-service.test.js.map +0 -1
  740. package/dist/tools/bash.d.ts +0 -10
  741. package/dist/tools/bash.d.ts.map +0 -1
  742. package/dist/tools/bash.js +0 -55
  743. package/dist/tools/bash.js.map +0 -1
  744. package/dist/utils/command-safety.d.ts +0 -21
  745. package/dist/utils/command-safety.d.ts.map +0 -1
  746. package/dist/utils/command-safety.devnull.test.d.ts +0 -2
  747. package/dist/utils/command-safety.devnull.test.d.ts.map +0 -1
  748. package/dist/utils/command-safety.devnull.test.js +0 -13
  749. package/dist/utils/command-safety.devnull.test.js.map +0 -1
  750. package/dist/utils/command-safety.js +0 -348
  751. package/dist/utils/command-safety.js.map +0 -1
  752. package/dist/utils/extract-command-messages.test.d.ts +0 -2
  753. package/dist/utils/extract-command-messages.test.d.ts.map +0 -1
  754. package/dist/utils/extract-command-messages.test.js +0 -64
  755. package/dist/utils/extract-command-messages.test.js.map +0 -1
  756. package/dist/utils/provider-traffic-extractor.repro.test.d.ts +0 -2
  757. package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +0 -1
  758. package/dist/utils/provider-traffic-extractor.repro.test.js.map +0 -1
@@ -2,6 +2,13 @@ import test from 'ava';
2
2
  import React from 'react';
3
3
  import { render } from 'ink-testing-library';
4
4
  import MessageList, { splitStaticHistory } from './MessageList.js';
5
+ import { createMockSettingsService } from '../services/settings-service.mock.js';
6
+ const countOccurrences = (text, pattern) => text.split(pattern).length - 1;
7
+ const stripAnsi = (text) => text.replaceAll(/\u001B\[[0-9;]*m/g, '');
8
+ const firstTableBorder = (text) => stripAnsi(text)
9
+ .split('\n')
10
+ .find((line) => line.trimStart().startsWith('+')) ?? '';
11
+ const renderedLines = (text) => stripAnsi(text).trim().split('\n');
5
12
  test('MessageList renders user and bot messages', (t) => {
6
13
  const messages = [
7
14
  { id: 1, sender: 'user', text: 'hello' },
@@ -26,7 +33,87 @@ test('MessageList renders image attachment summaries without leaked sentinel ids
26
33
  t.true(output.includes('[1 image attached]'));
27
34
  t.false(output.includes('f9uatvt88vql1'));
28
35
  });
29
- test('splitStaticHistory keeps running command messages active even when outside the count window', (t) => {
36
+ test('MessageList retains static history across rerenders', (t) => {
37
+ const renderer = render(React.createElement(MessageList, { messages: [{ id: 'one', sender: 'bot', text: 'one' }] }));
38
+ renderer.rerender(React.createElement(MessageList, { messages: [
39
+ { id: 'one', sender: 'bot', text: 'one' },
40
+ { id: 'two', sender: 'bot', text: 'two' },
41
+ ] }));
42
+ const output = renderer.lastFrame() ?? '';
43
+ t.true(output.includes('one'));
44
+ t.true(output.includes('two'));
45
+ });
46
+ test('MessageList updates static history when a message with the same id is corrected', (t) => {
47
+ const renderer = render(React.createElement(MessageList, { messages: [{ id: 'corrected-message', sender: 'bot', status: 'finalized', text: 'Hello wrold' }] }));
48
+ renderer.rerender(React.createElement(MessageList, { messages: [{ id: 'corrected-message', sender: 'bot', status: 'finalized', text: 'Hello world' }] }));
49
+ const output = renderer.lastFrame() ?? '';
50
+ t.true(output.includes('Hello world'));
51
+ t.false(output.includes('Hello wrold'));
52
+ });
53
+ test('MessageList appends a fresh startup banner after clearing conversation history', (t) => {
54
+ const settingsService = createMockSettingsService();
55
+ const renderer = render(React.createElement(MessageList, { messages: [{ id: 'one', sender: 'bot', text: 'one' }], bannerItems: ['startup-banner-0'], settingsService: settingsService }));
56
+ renderer.rerender(React.createElement(MessageList, { messages: [], bannerItems: ['startup-banner-0', 'startup-banner-1'], settingsService: settingsService }));
57
+ const output = renderer.lastFrame() ?? '';
58
+ t.is(countOccurrences(output, 'term²'), 2);
59
+ });
60
+ test('MessageList moves a message from active to static without duplicating it', (t) => {
61
+ const renderer = render(React.createElement(MessageList, { messages: [
62
+ { id: 'before', sender: 'bot', text: 'before' },
63
+ { id: 'running-command', sender: 'command', status: 'running', command: 'npm test', output: '' },
64
+ ] }));
65
+ renderer.rerender(React.createElement(MessageList, { messages: [
66
+ { id: 'before', sender: 'bot', text: 'before' },
67
+ { id: 'running-command', sender: 'command', status: 'completed', command: 'npm test', output: '' },
68
+ ] }));
69
+ const output = renderer.lastFrame() ?? '';
70
+ t.is(countOccurrences(output, 'before'), 1);
71
+ t.is(countOccurrences(output, 'npm test'), 1);
72
+ });
73
+ test('MessageList preserves spaces in bot text immediately before a command message', (t) => {
74
+ const messages = [
75
+ {
76
+ id: 'before-tool',
77
+ sender: 'bot',
78
+ status: 'finalized',
79
+ text: 'I will read this file:',
80
+ },
81
+ {
82
+ id: 'read-file-call',
83
+ sender: 'command',
84
+ status: 'running',
85
+ command: 'source/components/MessageList.tsx',
86
+ output: '',
87
+ toolName: 'read_file',
88
+ toolArgs: { path: 'source/components/MessageList.tsx' },
89
+ },
90
+ ];
91
+ const { lastFrame } = render(React.createElement(MessageList, { messages: messages }));
92
+ const output = stripAnsi(lastFrame() ?? '');
93
+ t.true(output.includes('read this file:'));
94
+ t.false(output.includes('read thisfile:'));
95
+ });
96
+ test('MessageList renders active and static markdown tables with the same padded width', (t) => {
97
+ const markdown = `| File | Change |
98
+ | --- | --- |
99
+ | \`openai-compatible/model.ts\` | Track \`reasoningContent\` separately from \`reasoning\`; emit both \`reasoning_content\` and \`providerData\` in messages and function_calls; accumulate \`reasoning_content\` delta in streams |`;
100
+ const renderer = render(React.createElement(MessageList, { messages: [{ id: 'table', sender: 'bot', status: 'streaming', text: markdown }] }));
101
+ const activeBorder = firstTableBorder(renderer.lastFrame() ?? '');
102
+ renderer.rerender(React.createElement(MessageList, { messages: [{ id: 'table', sender: 'bot', status: 'finalized', text: markdown }] }));
103
+ const staticBorder = firstTableBorder(renderer.lastFrame() ?? '');
104
+ t.regex(activeBorder, /^ {2,}\+/);
105
+ t.is(staticBorder, activeBorder);
106
+ });
107
+ test('MessageList renders active and static wrapped text with the same line breaks', (t) => {
108
+ const text = 'This paragraph is intentionally long enough to wrap near the terminal boundary while the message is streaming and must keep the same wrapped shape after it is finalized.';
109
+ const renderer = render(React.createElement(MessageList, { messages: [{ id: 'paragraph', sender: 'bot', status: 'streaming', text }] }));
110
+ const activeLines = renderedLines(renderer.lastFrame() ?? '');
111
+ renderer.rerender(React.createElement(MessageList, { messages: [{ id: 'paragraph', sender: 'bot', status: 'finalized', text }] }));
112
+ const staticLines = renderedLines(renderer.lastFrame() ?? '');
113
+ t.true(activeLines.length > 1);
114
+ t.deepEqual(staticLines, activeLines);
115
+ });
116
+ test('splitStaticHistory keeps running command messages active regardless of position', (t) => {
30
117
  const messages = [
31
118
  ...Array.from({ length: 25 }, (_, index) => ({
32
119
  id: `msg-${index}`,
@@ -46,11 +133,30 @@ test('splitStaticHistory keeps running command messages active even when outside
46
133
  text: `tail ${index}`,
47
134
  })),
48
135
  ];
49
- const { history, active } = splitStaticHistory(messages, 20);
136
+ const { history, active } = splitStaticHistory(messages);
50
137
  t.false(history.some((message) => message.id === 'running-command'));
51
138
  t.true(active.some((message) => message.id === 'running-command'));
139
+ // Only the prefix before the running command can be static without reordering output.
140
+ t.true(history.some((message) => message.id === 'msg-0'));
141
+ t.true(active.some((message) => message.id === 'tail-24'));
142
+ });
143
+ test('splitStaticHistory keeps bot text before a running command active', (t) => {
144
+ const messages = [
145
+ { id: 'older', sender: 'bot', text: 'older', status: 'finalized' },
146
+ { id: 'before-tool', sender: 'bot', text: 'I will read this file:', status: 'finalized' },
147
+ {
148
+ id: 'running-command',
149
+ sender: 'command',
150
+ status: 'running',
151
+ command: 'read_file "source/components/MessageList.tsx"',
152
+ output: '',
153
+ },
154
+ ];
155
+ const { history, active } = splitStaticHistory(messages);
156
+ t.deepEqual(history.map((message) => message.id), ['older']);
157
+ t.deepEqual(active.map((message) => message.id), ['before-tool', 'running-command']);
52
158
  });
53
- test('splitStaticHistory keeps reasoning messages active while moving finalized overflow to history', (t) => {
159
+ test('splitStaticHistory keeps unfinalized reasoning messages and following messages active', (t) => {
54
160
  const messages = [
55
161
  ...Array.from({ length: 25 }, (_, index) => ({
56
162
  id: `msg-${index}`,
@@ -68,9 +174,76 @@ test('splitStaticHistory keeps reasoning messages active while moving finalized
68
174
  text: `tail ${index}`,
69
175
  })),
70
176
  ];
71
- const { history, active } = splitStaticHistory(messages, 20);
177
+ const { history, active } = splitStaticHistory(messages);
72
178
  t.true(history.some((message) => message.id === 'msg-0'));
179
+ t.true(active.some((message) => message.id === 'tail-24'));
73
180
  t.false(history.some((message) => message.id === 'reasoning-message'));
74
181
  t.true(active.some((message) => message.id === 'reasoning-message'));
75
182
  });
183
+ test('splitStaticHistory keeps streaming bot messages and following messages active', (t) => {
184
+ const messages = [
185
+ { id: 'before', sender: 'bot', text: 'before', status: 'finalized' },
186
+ { id: 'streaming-bot', sender: 'bot', text: 'partial', status: 'streaming' },
187
+ { id: 'after', sender: 'bot', text: 'after', status: 'finalized' },
188
+ ];
189
+ const { history, active } = splitStaticHistory(messages);
190
+ t.deepEqual(history.map((message) => message.id), ['before']);
191
+ t.deepEqual(active.map((message) => message.id), ['streaming-bot', 'after']);
192
+ });
193
+ test('splitStaticHistory moves finalized bot messages to static history', (t) => {
194
+ const messages = [
195
+ { id: 'first', sender: 'bot', text: 'first', status: 'finalized' },
196
+ { id: 'second', sender: 'bot', text: 'second', status: 'finalized' },
197
+ ];
198
+ const { history, active } = splitStaticHistory(messages);
199
+ t.deepEqual(history.map((message) => message.id), ['first', 'second']);
200
+ t.deepEqual(active, []);
201
+ });
202
+ test('splitStaticHistory preserves chronological order after the first active message', (t) => {
203
+ const messages = [
204
+ { id: 'before', sender: 'bot', text: 'before' },
205
+ {
206
+ id: 'running-command',
207
+ sender: 'command',
208
+ status: 'running',
209
+ command: 'npm test',
210
+ output: '',
211
+ },
212
+ {
213
+ id: 'completed-command',
214
+ sender: 'command',
215
+ status: 'completed',
216
+ command: 'pwd',
217
+ output: '/tmp',
218
+ },
219
+ { id: 'after', sender: 'bot', text: 'after' },
220
+ ];
221
+ const { history, active } = splitStaticHistory(messages);
222
+ t.deepEqual(history.map((message) => message.id), ['before']);
223
+ t.deepEqual(active.map((message) => message.id), ['running-command', 'completed-command', 'after']);
224
+ });
225
+ test('splitStaticHistory moves finalized reasoning messages to static history', (t) => {
226
+ const messages = [
227
+ ...Array.from({ length: 25 }, (_, index) => ({
228
+ id: `msg-${index}`,
229
+ sender: 'bot',
230
+ text: `message ${index}`,
231
+ })),
232
+ {
233
+ id: 'finalized-reasoning',
234
+ sender: 'reasoning',
235
+ status: 'finalized',
236
+ text: 'stable paragraph',
237
+ },
238
+ ...Array.from({ length: 25 }, (_, index) => ({
239
+ id: `tail-${index}`,
240
+ sender: 'bot',
241
+ text: `tail ${index}`,
242
+ })),
243
+ ];
244
+ const { history, active } = splitStaticHistory(messages);
245
+ t.true(history.some((message) => message.id === 'finalized-reasoning'));
246
+ t.false(active.some((message) => message.id === 'finalized-reasoning'));
247
+ t.is(active.length, 0);
248
+ });
76
249
  //# sourceMappingURL=MessageList.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.test.js","sourceRoot":"","sources":["../../source/components/MessageList.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageList.test.js","sourceRoot":"","sources":["../../source/components/MessageList.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSelectionMenu.d.ts","sourceRoot":"","sources":["../../source/components/ModelSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAkDF,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,KAAK,CAuFjC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ModelSelectionMenu.d.ts","sourceRoot":"","sources":["../../source/components/ModelSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AA8FF,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,KAAK,CAuFjC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -8,20 +8,60 @@ const ProviderTabs = ({ activeProvider, canSwitch = true, settingsService }) =>
8
8
  label: p.label,
9
9
  hasCredentials: hasProviderCredentials(settingsService, p.id),
10
10
  }));
11
+ const terminalWidth = process.stdout.columns || 80;
12
+ const labelLength = canSwitch ? 'Tab/←→ → switch provider'.length : 0;
13
+ const availableWidth = terminalWidth - labelLength - 2;
14
+ const getTabWidth = (p) => {
15
+ return 1 + p.label.length + (!p.hasCredentials ? 9 : 0) + 1; // " {label}{ (no key)} "
16
+ };
17
+ const activeIndex = providers.findIndex((p) => p.id === activeProvider);
18
+ const safeActiveIndex = activeIndex >= 0 ? activeIndex : 0;
19
+ let start = safeActiveIndex;
20
+ let end = safeActiveIndex;
21
+ let currentWidth = getTabWidth(providers[safeActiveIndex]) + 4; // +4 for "◀ " and " ▶"
22
+ while (true) {
23
+ let expanded = false;
24
+ // Try to expand right
25
+ if (end + 1 < providers.length) {
26
+ const rightWidth = getTabWidth(providers[end + 1]) + 3; // " │ "
27
+ if (currentWidth + rightWidth <= availableWidth) {
28
+ currentWidth += rightWidth;
29
+ end++;
30
+ expanded = true;
31
+ }
32
+ }
33
+ // Try to expand left
34
+ if (start - 1 >= 0) {
35
+ const leftWidth = getTabWidth(providers[start - 1]) + 3; // " │ "
36
+ if (currentWidth + leftWidth <= availableWidth) {
37
+ currentWidth += leftWidth;
38
+ start--;
39
+ expanded = true;
40
+ }
41
+ }
42
+ if (!expanded)
43
+ break;
44
+ }
45
+ const visibleProviders = providers.slice(start, end + 1);
46
+ const hasLeftScroll = start > 0;
47
+ const hasRightScroll = end < providers.length - 1;
11
48
  return (React.createElement(Box, { flexDirection: "column" },
12
49
  React.createElement(Box, { justifyContent: "space-between" },
13
- React.createElement(Box, null, providers.map((provider, index) => {
14
- const isActive = provider.id === activeProvider;
15
- const isDisabled = !provider.hasCredentials;
16
- return (React.createElement(Box, { key: provider.id },
17
- React.createElement(Text, { inverse: isActive, color: isActive ? 'magenta' : isDisabled ? 'red' : '#64748b', bold: isActive, strikethrough: isDisabled },
18
- ' ',
19
- provider.label,
20
- isDisabled ? ' (no key)' : '',
21
- ' '),
22
- index < providers.length - 1 && React.createElement(Text, { color: "#64748b" }, '')));
23
- })),
24
- canSwitch && React.createElement(Text, { color: "#64748b" }, "Tab \u2192 switch provider")),
50
+ React.createElement(Box, null,
51
+ hasLeftScroll && React.createElement(Text, { color: "#64748b" }, "\u25C0 "),
52
+ visibleProviders.map((provider, index) => {
53
+ const isActive = provider.id === activeProvider;
54
+ const isDisabled = !provider.hasCredentials;
55
+ return (React.createElement(Box, { key: provider.id },
56
+ React.createElement(Text, { inverse: isActive, color: isActive ? 'magenta' : isDisabled ? 'red' : '#64748b', bold: isActive, strikethrough: isDisabled },
57
+ ' ',
58
+ provider.label,
59
+ isDisabled ? ' (no key)' : '',
60
+ ' '),
61
+ index < visibleProviders.length - 1 && React.createElement(Text, { color: "#64748b" }, ' ')));
62
+ }),
63
+ hasRightScroll && React.createElement(Text, { color: "#64748b" }, " \u25B6")),
64
+ canSwitch && React.createElement(Text, { color: "#64748b" }, "Tab/\u2190\u2192 \u2192 switch provider")),
25
65
  !canSwitch && (React.createElement(Box, { marginTop: 0 },
26
66
  React.createElement(Text, { color: "yellow" }, "\u26A0 Provider can only be changed at the start of a new conversation (/clear to reset)")))));
27
67
  };
@@ -43,7 +83,7 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, loading = f
43
83
  React.createElement(Text, { color: "red" },
44
84
  "Unable to load models: ",
45
85
  error)),
46
- React.createElement(Text, { color: "#64748b" }, "Tab \u2192 switch provider \u00B7 Esc \u2192 cancel")));
86
+ React.createElement(Text, { color: "#64748b" }, "Tab/\u2190\u2192 \u2192 switch provider \u00B7 Esc \u2192 cancel")));
47
87
  }
48
88
  if (items.length === 0) {
49
89
  return (React.createElement(Box, { flexDirection: "column" },
@@ -53,7 +93,7 @@ const ModelSelectionMenu = ({ items, selectedIndex, query, provider, loading = f
53
93
  "No models match \"",
54
94
  query || '*',
55
95
  "\"")),
56
- React.createElement(Text, { color: "#64748b" }, "Tab \u2192 switch provider \u00B7 Esc \u2192 cancel")));
96
+ React.createElement(Text, { color: "#64748b" }, "Tab/\u2190\u2192 \u2192 switch provider \u00B7 Esc \u2192 cancel")));
57
97
  }
58
98
  const visibleItems = items.slice(scrollOffset, scrollOffset + maxHeight);
59
99
  const hasScrollUp = scrollOffset > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSelectionMenu.js","sourceRoot":"","sources":["../../source/components/ModelSelectionMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelSelectionMenu.js","sourceRoot":"","sources":["../../source/components/ModelSelectionMenu.tsx"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ type Props = {
6
6
  query: string;
7
7
  loading?: boolean;
8
8
  error?: string | null;
9
+ scrollOffset?: number;
10
+ maxHeight?: number;
9
11
  };
10
12
  declare const PathSelectionMenu: FC<Props>;
11
13
  export default PathSelectionMenu;
@@ -1 +1 @@
1
- {"version":3,"file":"PathSelectionMenu.d.ts","sourceRoot":"","sources":["../../source/components/PathSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAC,KAAK,CA+ChC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"PathSelectionMenu.d.ts","sourceRoot":"","sources":["../../source/components/PathSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAuEhC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Box, Text } from 'ink';
3
- const PathSelectionMenu = ({ items, selectedIndex, query, loading = false, error = null }) => {
3
+ const PathSelectionMenu = ({ items, selectedIndex, query, loading = false, error = null, scrollOffset = 0, maxHeight = 10, }) => {
4
4
  if (loading) {
5
5
  return (React.createElement(Box, { borderStyle: "round", borderColor: "cyan", paddingX: 1, flexDirection: "column" },
6
6
  React.createElement(Text, { color: "cyan" }, "Loading project paths\u2026")));
@@ -18,25 +18,44 @@ const PathSelectionMenu = ({ items, selectedIndex, query, loading = false, error
18
18
  query,
19
19
  "\"")));
20
20
  }
21
+ const visibleItems = items.slice(scrollOffset, scrollOffset + maxHeight);
22
+ const hasScrollUp = scrollOffset > 0;
23
+ const hasScrollDown = scrollOffset + maxHeight < items.length;
21
24
  return (React.createElement(Box, { flexDirection: "column" },
22
25
  React.createElement(Box, { borderStyle: "round", borderColor: "cyan", paddingX: 1, flexDirection: "column" },
23
- React.createElement(Text, { color: "#64748b" },
24
- "@",
25
- query || '*',
26
- " \u00B7 ",
27
- items.length,
28
- " suggestion",
29
- items.length === 1 ? '' : 's'),
30
- items.map((item, index) => {
31
- const isSelected = index === selectedIndex;
26
+ React.createElement(Box, { justifyContent: "space-between" },
27
+ React.createElement(Text, { color: "#64748b" },
28
+ "@",
29
+ query || '*',
30
+ " \u00B7 ",
31
+ items.length,
32
+ " suggestion",
33
+ items.length === 1 ? '' : 's'),
34
+ items.length > maxHeight && (React.createElement(Text, { color: "#64748b" },
35
+ scrollOffset + 1,
36
+ "-",
37
+ Math.min(scrollOffset + maxHeight, items.length),
38
+ "/",
39
+ items.length))),
40
+ hasScrollUp && React.createElement(Text, { color: "#64748b" },
41
+ "\u2191 ",
42
+ scrollOffset,
43
+ " more"),
44
+ visibleItems.map((item, visibleIndex) => {
45
+ const actualIndex = scrollOffset + visibleIndex;
46
+ const isSelected = actualIndex === selectedIndex;
32
47
  const icon = item.type === 'directory' ? '📁' : '📄';
33
48
  return (React.createElement(Box, { key: item.path },
34
49
  React.createElement(Text, { color: isSelected ? 'cyan' : undefined, inverse: isSelected },
35
50
  icon,
36
51
  " ",
37
52
  item.path)));
38
- })),
39
- React.createElement(Text, { color: "#64748b" }, "Enter \u2192 insert with space \u00B7 Tab \u2192 insert w/o trailing space \u00B7 Esc \u2192 cancel")));
53
+ }),
54
+ hasScrollDown && React.createElement(Text, { color: "#64748b" },
55
+ "\u2193 ",
56
+ items.length - scrollOffset - maxHeight,
57
+ " more")),
58
+ React.createElement(Text, { color: "#64748b" }, "Enter \u2192 insert with space \u00B7 Tab \u2192 insert w/o trailing space \u00B7 Esc \u2192 cancel \u00B7 \u2191\u2193 \u2192 scroll")));
40
59
  };
41
60
  export default PathSelectionMenu;
42
61
  //# sourceMappingURL=PathSelectionMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PathSelectionMenu.js","sourceRoot":"","sources":["../../source/components/PathSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAWhC,MAAM,iBAAiB,GAAc,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,EAAE;IACtG,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,oBAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ;YAC7E,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kCAA8B,CAC5C,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,oBAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ;YAC5E,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK;;gBAAwB,KAAK,CAAQ,CAClD,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CACL,oBAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ;YAC7E,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;gBAAmB,KAAK;qBAAS,CAClD,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;QACzB,oBAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ;YAC7E,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;gBACjB,KAAK,IAAI,GAAG;;gBAAK,KAAK,CAAC,MAAM;;gBAC9B,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CACzB;YACN,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACzB,MAAM,UAAU,GAAG,KAAK,KAAK,aAAa,CAAC;gBAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrD,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,IAAI,CAAC,IAAI;oBACjB,oBAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU;wBAC9D,IAAI;;wBAAG,IAAI,CAAC,IAAI,CACZ,CACH,CACP,CAAC;YACJ,CAAC,CAAC,CACE;QACN,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,0GAAkF,CACnG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"PathSelectionMenu.js","sourceRoot":"","sources":["../../source/components/PathSelectionMenu.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { SettingCompletionItem } from '../hooks/use-settings-completion.js'
3
3
  type Props = {
4
4
  items: SettingCompletionItem[];
5
5
  selectedIndex: number;
6
+ scrollOffset?: number;
6
7
  query: string;
7
8
  };
8
9
  declare const SettingsSelectionMenu: FC<Props>;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsSelectionMenu.d.ts","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAEjF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAmDF,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,KAAK,CA+HpC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"SettingsSelectionMenu.d.ts","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGlC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAIjF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AA0DF,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,KAAK,CA6HpC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import React from 'react';
2
+ import fs from 'node:fs';
2
3
  import { Box, Text } from 'ink';
4
+ import { SETTING_KEYS } from '../services/settings-service.js';
5
+ import { getRtkBinaryPath } from '../services/rtk-service.js';
3
6
  function titleCaseCategory(category) {
4
7
  if (!category || category === 'other')
5
8
  return 'Other Settings';
@@ -37,10 +40,14 @@ function truncate(text, max) {
37
40
  return text;
38
41
  return text.slice(0, Math.max(0, max - 1)) + '…';
39
42
  }
40
- function formatValue(value) {
43
+ function formatValue(value, key) {
41
44
  if (typeof value === 'boolean') {
45
+ let text = value ? 'ON' : 'OFF';
46
+ if (value && key === SETTING_KEYS.SHELL_USE_RTK_COMPRESSION && fs.existsSync(getRtkBinaryPath())) {
47
+ text += ' (installed)';
48
+ }
42
49
  return {
43
- text: value ? 'ON' : 'OFF',
50
+ text,
44
51
  color: value ? 'green' : 'red',
45
52
  };
46
53
  }
@@ -49,9 +56,9 @@ function formatValue(value) {
49
56
  }
50
57
  return { text: truncate(value, 40), color: 'cyan' };
51
58
  }
52
- const VISIBLE_COUNT = 15;
59
+ const VISIBLE_COUNT = 10;
53
60
  const KEY_COL_WIDTH = 32;
54
- const SettingsSelectionMenu = ({ items, selectedIndex, query }) => {
61
+ const SettingsSelectionMenu = ({ items, selectedIndex, scrollOffset = 0, query }) => {
55
62
  if (items.length === 0) {
56
63
  return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "red", paddingX: 1 },
57
64
  React.createElement(Text, { bold: true, color: "red" }, "No settings found"),
@@ -60,24 +67,10 @@ const SettingsSelectionMenu = ({ items, selectedIndex, query }) => {
60
67
  query,
61
68
  "\"")));
62
69
  }
63
- // Calculate viewport
64
- let viewportStart = 0;
65
- if (items.length > VISIBLE_COUNT) {
66
- const half = Math.floor(VISIBLE_COUNT / 2);
67
- if (selectedIndex <= half) {
68
- viewportStart = 0;
69
- }
70
- else if (selectedIndex >= items.length - half) {
71
- viewportStart = items.length - VISIBLE_COUNT;
72
- }
73
- else {
74
- viewportStart = selectedIndex - half;
75
- }
76
- }
77
- // Ensure start is valid
78
- viewportStart = Math.max(0, Math.min(viewportStart, items.length - VISIBLE_COUNT));
79
- // If items < VISIBLE_COUNT, start is 0.
70
+ const viewportStart = Math.max(0, Math.min(scrollOffset, Math.max(0, items.length - VISIBLE_COUNT)));
80
71
  const visibleItems = items.slice(viewportStart, viewportStart + VISIBLE_COUNT);
72
+ const hasScrollUp = viewportStart > 0;
73
+ const hasScrollDown = viewportStart + VISIBLE_COUNT < items.length;
81
74
  return (React.createElement(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1 },
82
75
  React.createElement(Box, { marginBottom: 1, borderStyle: "single", borderBottom: false, borderLeft: false, borderRight: false, borderTop: false },
83
76
  React.createElement(Text, { bold: true, color: "cyan" }, "\u2699 Settings"),
@@ -89,7 +82,19 @@ const SettingsSelectionMenu = ({ items, selectedIndex, query }) => {
89
82
  React.createElement(Text, { color: "gray" },
90
83
  " \u00B7 ",
91
84
  items.length,
92
- " items")),
85
+ " items"),
86
+ items.length > VISIBLE_COUNT && (React.createElement(React.Fragment, null,
87
+ React.createElement(Text, { color: "gray" }, " \u00B7 "),
88
+ React.createElement(Text, { color: "gray" },
89
+ viewportStart + 1,
90
+ "-",
91
+ Math.min(viewportStart + VISIBLE_COUNT, items.length),
92
+ "/",
93
+ items.length)))),
94
+ hasScrollUp && React.createElement(Text, { color: "#64748b" },
95
+ "\u2191 ",
96
+ viewportStart,
97
+ " more"),
93
98
  visibleItems.map((item, index) => {
94
99
  const realIndex = viewportStart + index;
95
100
  const isSelected = realIndex === selectedIndex;
@@ -103,7 +108,7 @@ const SettingsSelectionMenu = ({ items, selectedIndex, query }) => {
103
108
  // Users might get lost. Let's show header if index==0 in viewport.
104
109
  const prevCategory = realIndex > 0 ? getCategoryForKey(items[realIndex - 1].key) : null;
105
110
  const showHeader = index === 0 || category !== prevCategory;
106
- const valueObj = item.currentValue !== undefined ? formatValue(item.currentValue) : null;
111
+ const valueObj = item.currentValue !== undefined ? formatValue(item.currentValue, item.key) : null;
107
112
  const paddedKey = item.key.length > KEY_COL_WIDTH
108
113
  ? truncate(item.key, KEY_COL_WIDTH).padEnd(KEY_COL_WIDTH, ' ')
109
114
  : item.key.padEnd(KEY_COL_WIDTH, ' ');
@@ -120,6 +125,10 @@ const SettingsSelectionMenu = ({ items, selectedIndex, query }) => {
120
125
  "\u2514\u2500\u2500 ",
121
126
  item.description))))));
122
127
  }),
128
+ hasScrollDown && React.createElement(Text, { color: "#64748b" },
129
+ "\u2193 ",
130
+ items.length - viewportStart - VISIBLE_COUNT,
131
+ " more"),
123
132
  React.createElement(Box, { marginTop: 1, borderStyle: "single", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderColor: "gray" },
124
133
  React.createElement(Text, { color: "gray", dimColor: true },
125
134
  "Use ",
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsSelectionMenu.js","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsSelectionMenu.js","sourceRoot":"","sources":["../../source/components/SettingsSelectionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAS9D,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,gBAAgB,CAAC;IAC/D,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC;IACpD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,gBAAgB,CAAC;IAC/C,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,YAAY,CAAC;IAClD,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,qBAAqB,CAAC;IACvD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC;IACpD,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,oBAAoB,CAAC;IAC1D,IAAI,QAAQ,KAAK,YAAY;QAAE,OAAO,qBAAqB,CAAC;IAC5D,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;QAC1B,aAAa;QACb,uBAAuB;QACvB,mBAAmB;QACnB,gBAAgB;QAChB,kBAAkB;QAClB,eAAe;KAChB,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;AACtC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAW;IACzC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAClB,KAAgC,EAChC,GAAW;IAKX,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAChC,IAAI,KAAK,IAAI,GAAG,KAAK,YAAY,CAAC,yBAAyB,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;YACjG,IAAI,IAAI,cAAc,CAAC;QACzB,CAAC;QACD,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SAC/B,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,qBAAqB,GAAc,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,QAAQ,EAAE,CAAC;YAC3E,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,KAAK,wBAEf;YACP,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;;gBAAqB,KAAK;qBAAS,CACjD,CACP,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACrG,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,aAAa,GAAG,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;IAEnE,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC;QAC5E,oBAAC,GAAG,IACF,YAAY,EAAE,CAAC,EACf,WAAW,EAAC,QAAQ,EACpB,YAAY,EAAE,KAAK,EACnB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,KAAK;YAEhB,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,sBAEhB;YACP,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,eAAW;YAC5B,KAAK,CAAC,CAAC,CAAC,CACP,oBAAC,IAAI;;gBAEH,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,UACrB,KAAK,CACD;qBAEF,CACR,CAAC,CAAC,CAAC,CACF,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,qBAAsB,CACzC;YACD,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;;gBAAK,KAAK,CAAC,MAAM;yBAAc;YAChD,KAAK,CAAC,MAAM,GAAG,aAAa,IAAI,CAC/B;gBACE,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,eAAW;gBAC7B,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;oBACf,aAAa,GAAG,CAAC;;oBAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;;oBAAG,KAAK,CAAC,MAAM,CACpF,CACN,CACJ,CACG;QAEL,WAAW,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;YAAI,aAAa;oBAAa;QAElE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,SAAS,GAAG,aAAa,GAAG,KAAK,CAAC;YACxC,MAAM,UAAU,GAAG,SAAS,KAAK,aAAa,CAAC;YAC/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE7C,6DAA6D;YAC7D,8FAA8F;YAC9F,6BAA6B;YAC7B,yFAAyF;YACzF,iHAAiH;YACjH,8FAA8F;YAC9F,mEAAmE;YAEnE,MAAM,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,MAAM,UAAU,GAAG,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,YAAY,CAAC;YAE5D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnG,MAAM,SAAS,GACb,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,aAAa;gBAC7B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC;gBAC9D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAE1C,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,EAAC,QAAQ;gBACvC,UAAU,IAAI,CACb,oBAAC,GAAG,IAAC,SAAS,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;oBAClD,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,QAAC,SAAS,UACjC,iBAAiB,CAAC,QAAQ,CAAC,CACvB,CACH,CACP;gBAED,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;oBACzB,oBAAC,GAAG;wBACF,oBAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAQ;wBAC7E,oBAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,IAC1D,SAAS,CACL;wBACN,QAAQ,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAG,QAAQ,CAAC,IAAI,CAAQ,CAC3E;oBAEL,UAAU,IAAI,IAAI,CAAC,WAAW,IAAI,CACjC,oBAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;wBAC9B,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,QAAC,MAAM;;4BAC9B,IAAI,CAAC,WAAW,CAChB,CACH,CACP,CACG,CACF,CACP,CAAC;QACJ,CAAC,CAAC;QAED,aAAa,IAAI,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;YAAI,KAAK,CAAC,MAAM,GAAG,aAAa,GAAG,aAAa;oBAAa;QAEpG,oBAAC,GAAG,IACF,SAAS,EAAE,CAAC,EACZ,WAAW,EAAC,QAAQ,EACpB,SAAS,EAAE,IAAI,EACf,YAAY,EAAE,KAAK,EACnB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,WAAW,EAAC,MAAM;YAElB,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ;;gBACrB,oBAAC,IAAI,IAAC,IAAI,yBAAU;;gBAAc,oBAAC,IAAI,IAAC,IAAI,kBAAa;;gBAAU,oBAAC,IAAI,IAAC,IAAI,gBAAW;4BACvF,CACH,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SettingsSelectionMenu.scroll.test.d.ts.map