@qduc/term2 0.1.5 → 0.1.7

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 (741) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +4 -24
  3. package/dist/agent.js.map +1 -1
  4. package/dist/agent.lite-mode.test.d.ts +2 -0
  5. package/dist/agent.lite-mode.test.d.ts.map +1 -0
  6. package/dist/agent.lite-mode.test.js +39 -0
  7. package/dist/agent.lite-mode.test.js.map +1 -0
  8. package/dist/app.d.ts.map +1 -1
  9. package/dist/app.js +11 -32
  10. package/dist/app.js.map +1 -1
  11. package/dist/app.parseInput.test.js +4 -4
  12. package/dist/app.parseInput.test.js.map +1 -1
  13. package/dist/cli.js +44 -29
  14. package/dist/cli.js.map +1 -1
  15. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  16. package/dist/components/ApprovalPrompt.js +14 -11
  17. package/dist/components/ApprovalPrompt.js.map +1 -1
  18. package/dist/components/Banner.d.ts.map +1 -1
  19. package/dist/components/Banner.js +4 -12
  20. package/dist/components/Banner.js.map +1 -1
  21. package/dist/components/BottomArea.d.ts.map +1 -1
  22. package/dist/components/BottomArea.js +4 -7
  23. package/dist/components/BottomArea.js.map +1 -1
  24. package/dist/components/BottomArea.test.js +4 -6
  25. package/dist/components/BottomArea.test.js.map +1 -1
  26. package/dist/components/ChatMessage.d.ts.map +1 -1
  27. package/dist/components/ChatMessage.js.map +1 -1
  28. package/dist/components/CommandMessage.d.ts.map +1 -1
  29. package/dist/components/CommandMessage.js +19 -30
  30. package/dist/components/CommandMessage.js.map +1 -1
  31. package/dist/components/CommandMessage.test.js +2 -2
  32. package/dist/components/CommandMessage.test.js.map +1 -1
  33. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  34. package/dist/components/ErrorBoundary.js +3 -9
  35. package/dist/components/ErrorBoundary.js.map +1 -1
  36. package/dist/components/ErrorBoundary.test.js +2 -2
  37. package/dist/components/ErrorBoundary.test.js.map +1 -1
  38. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  39. package/dist/components/Input/PopupManager.js.map +1 -1
  40. package/dist/components/InputBox.d.ts.map +1 -1
  41. package/dist/components/InputBox.js +15 -33
  42. package/dist/components/InputBox.js.map +1 -1
  43. package/dist/components/InputBox.menu-logic.test.js +6 -7
  44. package/dist/components/InputBox.menu-logic.test.js.map +1 -1
  45. package/dist/components/InputBox.test.js +7 -9
  46. package/dist/components/InputBox.test.js.map +1 -1
  47. package/dist/components/LiveResponse.d.ts.map +1 -1
  48. package/dist/components/LiveResponse.js.map +1 -1
  49. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  50. package/dist/components/MarkdownRenderer.js +12 -12
  51. package/dist/components/MarkdownRenderer.js.map +1 -1
  52. package/dist/components/MessageList.d.ts.map +1 -1
  53. package/dist/components/MessageList.js.map +1 -1
  54. package/dist/components/MessageList.test.js +1 -1
  55. package/dist/components/MessageList.test.js.map +1 -1
  56. package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
  57. package/dist/components/ModelSelectionMenu.js +11 -16
  58. package/dist/components/ModelSelectionMenu.js.map +1 -1
  59. package/dist/components/ModelSelectionMenu.test.js +9 -9
  60. package/dist/components/ModelSelectionMenu.test.js.map +1 -1
  61. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  62. package/dist/components/PathSelectionMenu.js +1 -1
  63. package/dist/components/PathSelectionMenu.js.map +1 -1
  64. package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
  65. package/dist/components/SettingsSelectionMenu.js +1 -1
  66. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  67. package/dist/components/SettingsSelectionMenu.test.js +4 -4
  68. package/dist/components/SettingsSelectionMenu.test.js.map +1 -1
  69. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  70. package/dist/components/SettingsValueSelectionMenu.js +5 -6
  71. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  72. package/dist/components/SettingsValueSelectionMenu.test.js +5 -5
  73. package/dist/components/SettingsValueSelectionMenu.test.js.map +1 -1
  74. package/dist/components/SlashCommandMenu.d.ts.map +1 -1
  75. package/dist/components/SlashCommandMenu.js +1 -1
  76. package/dist/components/SlashCommandMenu.js.map +1 -1
  77. package/dist/components/StatusBar.d.ts.map +1 -1
  78. package/dist/components/StatusBar.js +3 -4
  79. package/dist/components/StatusBar.js.map +1 -1
  80. package/dist/components/TextInput.d.ts.map +1 -1
  81. package/dist/components/TextInput.js +2 -1
  82. package/dist/components/TextInput.js.map +1 -1
  83. package/dist/components/TextInput.test.js.map +1 -1
  84. package/dist/context/InputContext.d.ts.map +1 -1
  85. package/dist/context/InputContext.js.map +1 -1
  86. package/dist/context/InputContext.stability.test.js +1 -1
  87. package/dist/context/InputContext.stability.test.js.map +1 -1
  88. package/dist/context/InputContext.test.js +15 -15
  89. package/dist/context/InputContext.test.js.map +1 -1
  90. package/dist/debug_ask_mentor.d.ts +2 -0
  91. package/dist/debug_ask_mentor.d.ts.map +1 -0
  92. package/dist/debug_ask_mentor.js +73 -0
  93. package/dist/debug_ask_mentor.js.map +1 -0
  94. package/dist/hooks/use-conversation.d.ts +3 -13
  95. package/dist/hooks/use-conversation.d.ts.map +1 -1
  96. package/dist/hooks/use-conversation.js +35 -184
  97. package/dist/hooks/use-conversation.js.map +1 -1
  98. package/dist/hooks/use-input-history.d.ts.map +1 -1
  99. package/dist/hooks/use-input-history.js +1 -3
  100. package/dist/hooks/use-input-history.js.map +1 -1
  101. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  102. package/dist/hooks/use-model-selection.js +8 -10
  103. package/dist/hooks/use-model-selection.js.map +1 -1
  104. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  105. package/dist/hooks/use-path-completion.js +6 -6
  106. package/dist/hooks/use-path-completion.js.map +1 -1
  107. package/dist/hooks/use-setting.d.ts.map +1 -1
  108. package/dist/hooks/use-setting.js +3 -6
  109. package/dist/hooks/use-setting.js.map +1 -1
  110. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  111. package/dist/hooks/use-settings-completion.js +10 -12
  112. package/dist/hooks/use-settings-completion.js.map +1 -1
  113. package/dist/hooks/use-settings-completion.test.js +46 -46
  114. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  115. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  116. package/dist/hooks/use-settings-value-completion.js +13 -43
  117. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  118. package/dist/hooks/use-settings-value-completion.test.js +12 -18
  119. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  120. package/dist/hooks/use-slash-commands.d.ts +1 -1
  121. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  122. package/dist/hooks/use-slash-commands.js +6 -11
  123. package/dist/hooks/use-slash-commands.js.map +1 -1
  124. package/dist/hooks/use-slash-commands.test.js +24 -24
  125. package/dist/hooks/use-slash-commands.test.js.map +1 -1
  126. package/dist/lib/editor-impl.d.ts.map +1 -1
  127. package/dist/lib/editor-impl.js +6 -16
  128. package/dist/lib/editor-impl.js.map +1 -1
  129. package/dist/lib/editor-impl.test.js.map +1 -1
  130. package/dist/lib/openai-agent-client.chat.test.js +33 -8
  131. package/dist/lib/openai-agent-client.chat.test.js.map +1 -1
  132. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  133. package/dist/lib/openai-agent-client.flex-tier.test.js +5 -5
  134. package/dist/lib/openai-agent-client.flex-tier.test.js.map +1 -1
  135. package/dist/lib/openai-agent-client.js +89 -85
  136. package/dist/lib/openai-agent-client.js.map +1 -1
  137. package/dist/lib/openai-agent-client.public-methods.test.js +186 -12
  138. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  139. package/dist/lib/openai-agent-client.test.js +17 -17
  140. package/dist/lib/openai-agent-client.test.js.map +1 -1
  141. package/dist/lib/openai-strict-tool-schema.d.ts +10 -0
  142. package/dist/lib/openai-strict-tool-schema.d.ts.map +1 -0
  143. package/dist/lib/openai-strict-tool-schema.js +39 -0
  144. package/dist/lib/openai-strict-tool-schema.js.map +1 -0
  145. package/dist/lib/openai-strict-tool-schema.test.d.ts +2 -0
  146. package/dist/lib/openai-strict-tool-schema.test.d.ts.map +1 -0
  147. package/dist/lib/openai-strict-tool-schema.test.js +26 -0
  148. package/dist/lib/openai-strict-tool-schema.test.js.map +1 -0
  149. package/dist/lib/tool-invoke.d.ts.map +1 -1
  150. package/dist/lib/tool-invoke.js.map +1 -1
  151. package/dist/lib/tool-invoke.test.js.map +1 -1
  152. package/dist/modes/companion/command-index.d.ts +26 -0
  153. package/dist/modes/companion/command-index.d.ts.map +1 -0
  154. package/dist/modes/companion/command-index.js +50 -0
  155. package/dist/modes/companion/command-index.js.map +1 -0
  156. package/dist/modes/companion/command-index.test.d.ts +2 -0
  157. package/dist/modes/companion/command-index.test.d.ts.map +1 -0
  158. package/dist/modes/companion/command-index.test.js +86 -0
  159. package/dist/modes/companion/command-index.test.js.map +1 -0
  160. package/dist/modes/companion/companion-app.d.ts +12 -0
  161. package/dist/modes/companion/companion-app.d.ts.map +1 -0
  162. package/dist/modes/companion/companion-app.js +297 -0
  163. package/dist/modes/companion/companion-app.js.map +1 -0
  164. package/dist/modes/companion/companion-session.d.ts +63 -0
  165. package/dist/modes/companion/companion-session.d.ts.map +1 -0
  166. package/dist/modes/companion/companion-session.js +146 -0
  167. package/dist/modes/companion/companion-session.js.map +1 -0
  168. package/dist/modes/companion/companion-session.test.d.ts +2 -0
  169. package/dist/modes/companion/companion-session.test.d.ts.map +1 -0
  170. package/dist/modes/companion/companion-session.test.js +28 -0
  171. package/dist/modes/companion/companion-session.test.js.map +1 -0
  172. package/dist/modes/companion/components/status-bar.d.ts +13 -0
  173. package/dist/modes/companion/components/status-bar.d.ts.map +1 -0
  174. package/dist/modes/companion/components/status-bar.js +26 -0
  175. package/dist/modes/companion/components/status-bar.js.map +1 -0
  176. package/dist/modes/companion/context-buffer.d.ts +65 -0
  177. package/dist/modes/companion/context-buffer.d.ts.map +1 -0
  178. package/dist/modes/companion/context-buffer.js +156 -0
  179. package/dist/modes/companion/context-buffer.js.map +1 -0
  180. package/dist/modes/companion/context-buffer.test.d.ts +2 -0
  181. package/dist/modes/companion/context-buffer.test.d.ts.map +1 -0
  182. package/dist/modes/companion/context-buffer.test.js +154 -0
  183. package/dist/modes/companion/context-buffer.test.js.map +1 -0
  184. package/dist/modes/companion/event-detector.d.ts +46 -0
  185. package/dist/modes/companion/event-detector.d.ts.map +1 -0
  186. package/dist/modes/companion/event-detector.js +169 -0
  187. package/dist/modes/companion/event-detector.js.map +1 -0
  188. package/dist/modes/companion/event-detector.test.d.ts +2 -0
  189. package/dist/modes/companion/event-detector.test.d.ts.map +1 -0
  190. package/dist/modes/companion/event-detector.test.js +121 -0
  191. package/dist/modes/companion/event-detector.test.js.map +1 -0
  192. package/dist/modes/companion/index.d.ts +33 -0
  193. package/dist/modes/companion/index.d.ts.map +1 -0
  194. package/dist/modes/companion/index.js +21 -0
  195. package/dist/modes/companion/index.js.map +1 -0
  196. package/dist/modes/companion/input-key-mapper.d.ts +3 -0
  197. package/dist/modes/companion/input-key-mapper.d.ts.map +1 -0
  198. package/dist/modes/companion/input-key-mapper.js +31 -0
  199. package/dist/modes/companion/input-key-mapper.js.map +1 -0
  200. package/dist/modes/companion/input-key-mapper.test.d.ts +2 -0
  201. package/dist/modes/companion/input-key-mapper.test.d.ts.map +1 -0
  202. package/dist/modes/companion/input-key-mapper.test.js +26 -0
  203. package/dist/modes/companion/input-key-mapper.test.js.map +1 -0
  204. package/dist/modes/companion/input-parser.d.ts +53 -0
  205. package/dist/modes/companion/input-parser.d.ts.map +1 -0
  206. package/dist/modes/companion/input-parser.js +114 -0
  207. package/dist/modes/companion/input-parser.js.map +1 -0
  208. package/dist/modes/companion/input-parser.test.d.ts +2 -0
  209. package/dist/modes/companion/input-parser.test.d.ts.map +1 -0
  210. package/dist/modes/companion/input-parser.test.js +123 -0
  211. package/dist/modes/companion/input-parser.test.js.map +1 -0
  212. package/dist/modes/companion/mode-manager.d.ts +41 -0
  213. package/dist/modes/companion/mode-manager.d.ts.map +1 -0
  214. package/dist/modes/companion/mode-manager.js +56 -0
  215. package/dist/modes/companion/mode-manager.js.map +1 -0
  216. package/dist/modes/companion/mode-manager.test.d.ts +2 -0
  217. package/dist/modes/companion/mode-manager.test.d.ts.map +1 -0
  218. package/dist/modes/companion/mode-manager.test.js +65 -0
  219. package/dist/modes/companion/mode-manager.test.js.map +1 -0
  220. package/dist/modes/companion/output-classifier.d.ts +15 -0
  221. package/dist/modes/companion/output-classifier.d.ts.map +1 -0
  222. package/dist/modes/companion/output-classifier.js +77 -0
  223. package/dist/modes/companion/output-classifier.js.map +1 -0
  224. package/dist/modes/companion/output-classifier.test.d.ts +2 -0
  225. package/dist/modes/companion/output-classifier.test.d.ts.map +1 -0
  226. package/dist/modes/companion/output-classifier.test.js +133 -0
  227. package/dist/modes/companion/output-classifier.test.js.map +1 -0
  228. package/dist/modes/companion/pty-wrapper.d.ts +46 -0
  229. package/dist/modes/companion/pty-wrapper.d.ts.map +1 -0
  230. package/dist/modes/companion/pty-wrapper.js +143 -0
  231. package/dist/modes/companion/pty-wrapper.js.map +1 -0
  232. package/dist/modes/companion/safety-classifier.d.ts +31 -0
  233. package/dist/modes/companion/safety-classifier.d.ts.map +1 -0
  234. package/dist/modes/companion/safety-classifier.js +140 -0
  235. package/dist/modes/companion/safety-classifier.js.map +1 -0
  236. package/dist/modes/companion/safety-classifier.test.d.ts +2 -0
  237. package/dist/modes/companion/safety-classifier.test.d.ts.map +1 -0
  238. package/dist/modes/companion/safety-classifier.test.js +151 -0
  239. package/dist/modes/companion/safety-classifier.test.js.map +1 -0
  240. package/dist/modes/companion/summarizer.d.ts +24 -0
  241. package/dist/modes/companion/summarizer.d.ts.map +1 -0
  242. package/dist/modes/companion/summarizer.js +132 -0
  243. package/dist/modes/companion/summarizer.js.map +1 -0
  244. package/dist/modes/companion/terminal-history.d.ts +27 -0
  245. package/dist/modes/companion/terminal-history.d.ts.map +1 -0
  246. package/dist/modes/companion/terminal-history.js +142 -0
  247. package/dist/modes/companion/terminal-history.js.map +1 -0
  248. package/dist/no-singleton-imports.test.js +1 -1
  249. package/dist/no-singleton-imports.test.js.map +1 -1
  250. package/dist/non-interactive.d.ts +20 -0
  251. package/dist/non-interactive.d.ts.map +1 -0
  252. package/dist/non-interactive.js +86 -0
  253. package/dist/non-interactive.js.map +1 -0
  254. package/dist/non-interactive.test.d.ts +2 -0
  255. package/dist/non-interactive.test.d.ts.map +1 -0
  256. package/dist/non-interactive.test.js +213 -0
  257. package/dist/non-interactive.test.js.map +1 -0
  258. package/dist/prompts/anthropic.md +11 -11
  259. package/dist/prompts/codex.md +63 -63
  260. package/dist/prompts/gpt-5.md +95 -95
  261. package/dist/prompts/mentor-addon.md +6 -5
  262. package/dist/prompts/prompt-selector.d.ts +8 -0
  263. package/dist/prompts/prompt-selector.d.ts.map +1 -0
  264. package/dist/prompts/prompt-selector.js +21 -0
  265. package/dist/prompts/prompt-selector.js.map +1 -0
  266. package/dist/prompts/prompt-selector.test.d.ts +2 -0
  267. package/dist/prompts/prompt-selector.test.d.ts.map +1 -0
  268. package/dist/prompts/prompt-selector.test.js +21 -0
  269. package/dist/prompts/prompt-selector.test.js.map +1 -0
  270. package/dist/prompts/prompt-selector.test.ts +32 -0
  271. package/dist/prompts/prompt-selector.ts +30 -0
  272. package/dist/prompts/simple-mentor.md +8 -0
  273. package/dist/prompts/simple.md +58 -58
  274. package/dist/providers/github-copilot/model.d.ts.map +1 -1
  275. package/dist/providers/github-copilot/model.js +25 -108
  276. package/dist/providers/github-copilot/model.js.map +1 -1
  277. package/dist/providers/github-copilot/model.test.d.ts +2 -0
  278. package/dist/providers/github-copilot/model.test.d.ts.map +1 -0
  279. package/dist/providers/github-copilot/model.test.js +63 -0
  280. package/dist/providers/github-copilot/model.test.js.map +1 -0
  281. package/dist/providers/github-copilot/provider.d.ts +0 -5
  282. package/dist/providers/github-copilot/provider.d.ts.map +1 -1
  283. package/dist/providers/github-copilot/provider.js +2 -7
  284. package/dist/providers/github-copilot/provider.js.map +1 -1
  285. package/dist/providers/index.d.ts.map +1 -1
  286. package/dist/providers/index.js.map +1 -1
  287. package/dist/providers/openai-compatible/api.d.ts.map +1 -1
  288. package/dist/providers/openai-compatible/api.js.map +1 -1
  289. package/dist/providers/openai-compatible/model.d.ts.map +1 -1
  290. package/dist/providers/openai-compatible/model.js +22 -56
  291. package/dist/providers/openai-compatible/model.js.map +1 -1
  292. package/dist/providers/openai-compatible/provider.d.ts.map +1 -1
  293. package/dist/providers/openai-compatible/provider.js.map +1 -1
  294. package/dist/providers/openai-compatible/reasoning-content.test.js +72 -2
  295. package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -1
  296. package/dist/providers/openai-compatible/utils.d.ts.map +1 -1
  297. package/dist/providers/openai-compatible/utils.js.map +1 -1
  298. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  299. package/dist/providers/openai-compatible.provider.js +5 -1
  300. package/dist/providers/openai-compatible.provider.js.map +1 -1
  301. package/dist/providers/openai.provider.js +4 -0
  302. package/dist/providers/openai.provider.js.map +1 -1
  303. package/dist/providers/openrouter/api.d.ts.map +1 -1
  304. package/dist/providers/openrouter/api.js +5 -13
  305. package/dist/providers/openrouter/api.js.map +1 -1
  306. package/dist/providers/openrouter/converters.d.ts.map +1 -1
  307. package/dist/providers/openrouter/converters.js +9 -28
  308. package/dist/providers/openrouter/converters.js.map +1 -1
  309. package/dist/providers/openrouter/converters.test.js +7 -11
  310. package/dist/providers/openrouter/converters.test.js.map +1 -1
  311. package/dist/providers/openrouter/index.d.ts.map +1 -1
  312. package/dist/providers/openrouter/index.js.map +1 -1
  313. package/dist/providers/openrouter/model.d.ts.map +1 -1
  314. package/dist/providers/openrouter/model.js +22 -58
  315. package/dist/providers/openrouter/model.js.map +1 -1
  316. package/dist/providers/openrouter/provider.d.ts.map +1 -1
  317. package/dist/providers/openrouter/provider.js.map +1 -1
  318. package/dist/providers/openrouter/reasoning-content.test.js +1 -1
  319. package/dist/providers/openrouter/reasoning-content.test.js.map +1 -1
  320. package/dist/providers/openrouter/utils.d.ts +1 -0
  321. package/dist/providers/openrouter/utils.d.ts.map +1 -1
  322. package/dist/providers/openrouter/utils.js +5 -3
  323. package/dist/providers/openrouter/utils.js.map +1 -1
  324. package/dist/providers/openrouter.api.retry.test.js.map +1 -1
  325. package/dist/providers/openrouter.provider.createRunner.test.js +1 -1
  326. package/dist/providers/openrouter.provider.createRunner.test.js.map +1 -1
  327. package/dist/providers/openrouter.provider.js +6 -4
  328. package/dist/providers/openrouter.provider.js.map +1 -1
  329. package/dist/providers/openrouter.test.js +77 -17
  330. package/dist/providers/openrouter.test.js.map +1 -1
  331. package/dist/providers/registry.d.ts +5 -0
  332. package/dist/providers/registry.d.ts.map +1 -1
  333. package/dist/providers/registry.js.map +1 -1
  334. package/dist/providers/registry.test.js +11 -11
  335. package/dist/providers/registry.test.js.map +1 -1
  336. package/dist/providers/web-search/index.d.ts +1 -1
  337. package/dist/providers/web-search/index.d.ts.map +1 -1
  338. package/dist/providers/web-search/index.js.map +1 -1
  339. package/dist/providers/web-search/registry.d.ts.map +1 -1
  340. package/dist/providers/web-search/registry.js.map +1 -1
  341. package/dist/providers/web-search/registry.test.js +14 -14
  342. package/dist/providers/web-search/registry.test.js.map +1 -1
  343. package/dist/providers/web-search/tavily.provider.d.ts.map +1 -1
  344. package/dist/providers/web-search/tavily.provider.js +4 -4
  345. package/dist/providers/web-search/tavily.provider.js.map +1 -1
  346. package/dist/providers/web-search/tavily.provider.test.js +7 -7
  347. package/dist/providers/web-search/tavily.provider.test.js.map +1 -1
  348. package/dist/providers/web-search/types.d.ts.map +1 -1
  349. package/dist/scripts/extract-provider-traffic.d.ts +3 -0
  350. package/dist/scripts/extract-provider-traffic.d.ts.map +1 -0
  351. package/dist/scripts/extract-provider-traffic.js +32 -0
  352. package/dist/scripts/extract-provider-traffic.js.map +1 -0
  353. package/dist/services/approval-state.d.ts +24 -0
  354. package/dist/services/approval-state.d.ts.map +1 -0
  355. package/dist/services/approval-state.js +41 -0
  356. package/dist/services/approval-state.js.map +1 -0
  357. package/dist/services/approval-state.test.d.ts +2 -0
  358. package/dist/services/approval-state.test.d.ts.map +1 -0
  359. package/dist/services/approval-state.test.js +59 -0
  360. package/dist/services/approval-state.test.js.map +1 -0
  361. package/dist/services/check_mock.d.ts +2 -0
  362. package/dist/services/check_mock.d.ts.map +1 -0
  363. package/dist/services/check_mock.js +22 -0
  364. package/dist/services/check_mock.js.map +1 -0
  365. package/dist/services/command-message-streaming.d.ts +12 -0
  366. package/dist/services/command-message-streaming.d.ts.map +1 -0
  367. package/dist/services/command-message-streaming.js +68 -0
  368. package/dist/services/command-message-streaming.js.map +1 -0
  369. package/dist/services/command-message-streaming.test.d.ts +2 -0
  370. package/dist/services/command-message-streaming.test.d.ts.map +1 -0
  371. package/dist/services/command-message-streaming.test.js +78 -0
  372. package/dist/services/command-message-streaming.test.js.map +1 -0
  373. package/dist/services/conversation-events.d.ts +2 -13
  374. package/dist/services/conversation-events.d.ts.map +1 -1
  375. package/dist/services/conversation-integration.test.d.ts +2 -0
  376. package/dist/services/conversation-integration.test.d.ts.map +1 -0
  377. package/dist/services/conversation-integration.test.js +155 -0
  378. package/dist/services/conversation-integration.test.js.map +1 -0
  379. package/dist/services/conversation-service.d.ts +1 -1
  380. package/dist/services/conversation-service.d.ts.map +1 -1
  381. package/dist/services/conversation-service.js.map +1 -1
  382. package/dist/services/conversation-service.test.d.ts +2 -0
  383. package/dist/services/conversation-service.test.d.ts.map +1 -0
  384. package/dist/services/conversation-service.test.js +149 -183
  385. package/dist/services/conversation-service.test.js.map +1 -0
  386. package/dist/services/conversation-session-reasoning.test.js +3 -3
  387. package/dist/services/conversation-session-reasoning.test.js.map +1 -1
  388. package/dist/services/conversation-session.d.ts +5 -17
  389. package/dist/services/conversation-session.d.ts.map +1 -1
  390. package/dist/services/conversation-session.js +164 -275
  391. package/dist/services/conversation-session.js.map +1 -1
  392. package/dist/services/conversation-store.d.ts.map +1 -1
  393. package/dist/services/conversation-store.js +3 -9
  394. package/dist/services/conversation-store.js.map +1 -1
  395. package/dist/services/conversation-store.test.js +17 -14
  396. package/dist/services/conversation-store.test.js.map +1 -1
  397. package/dist/services/execution-context.d.ts.map +1 -1
  398. package/dist/services/execution-context.js.map +1 -1
  399. package/dist/services/execution-context.test.js +7 -7
  400. package/dist/services/execution-context.test.js.map +1 -1
  401. package/dist/services/file-service.d.ts.map +1 -1
  402. package/dist/services/file-service.js +5 -9
  403. package/dist/services/file-service.js.map +1 -1
  404. package/dist/services/history-service.d.ts.map +1 -1
  405. package/dist/services/history-service.js +3 -7
  406. package/dist/services/history-service.js.map +1 -1
  407. package/dist/services/logging-contract.d.ts +74 -0
  408. package/dist/services/logging-contract.d.ts.map +1 -0
  409. package/dist/services/logging-contract.js +157 -0
  410. package/dist/services/logging-contract.js.map +1 -0
  411. package/dist/services/logging-contract.test.d.ts +2 -0
  412. package/dist/services/logging-contract.test.d.ts.map +1 -0
  413. package/dist/services/logging-contract.test.js +66 -0
  414. package/dist/services/logging-contract.test.js.map +1 -0
  415. package/dist/services/logging-service.d.ts +5 -0
  416. package/dist/services/logging-service.d.ts.map +1 -1
  417. package/dist/services/logging-service.js +93 -21
  418. package/dist/services/logging-service.js.map +1 -1
  419. package/dist/services/model-service.d.ts.map +1 -1
  420. package/dist/services/model-service.js +2 -2
  421. package/dist/services/model-service.js.map +1 -1
  422. package/dist/services/model-service.test.js +6 -6
  423. package/dist/services/model-service.test.js.map +1 -1
  424. package/dist/services/service-interfaces.d.ts.map +1 -1
  425. package/dist/services/settings-env.d.ts +9 -0
  426. package/dist/services/settings-env.d.ts.map +1 -0
  427. package/dist/services/settings-env.js +75 -0
  428. package/dist/services/settings-env.js.map +1 -0
  429. package/dist/services/settings-env.test.d.ts +2 -0
  430. package/dist/services/settings-env.test.d.ts.map +1 -0
  431. package/dist/services/settings-env.test.js +32 -0
  432. package/dist/services/settings-env.test.js.map +1 -0
  433. package/dist/services/settings-merger.d.ts +26 -0
  434. package/dist/services/settings-merger.d.ts.map +1 -0
  435. package/dist/services/settings-merger.js +122 -0
  436. package/dist/services/settings-merger.js.map +1 -0
  437. package/dist/services/settings-merger.test.d.ts +2 -0
  438. package/dist/services/settings-merger.test.d.ts.map +1 -0
  439. package/dist/services/settings-merger.test.js +26 -0
  440. package/dist/services/settings-merger.test.js.map +1 -0
  441. package/dist/services/settings-persistence.d.ts +32 -0
  442. package/dist/services/settings-persistence.d.ts.map +1 -0
  443. package/dist/services/settings-persistence.js +134 -0
  444. package/dist/services/settings-persistence.js.map +1 -0
  445. package/dist/services/settings-persistence.test.d.ts +2 -0
  446. package/dist/services/settings-persistence.test.d.ts.map +1 -0
  447. package/dist/services/settings-persistence.test.js +51 -0
  448. package/dist/services/settings-persistence.test.js.map +1 -0
  449. package/dist/services/settings-schema.d.ts +320 -0
  450. package/dist/services/settings-schema.d.ts.map +1 -0
  451. package/dist/services/settings-schema.js +272 -0
  452. package/dist/services/settings-schema.js.map +1 -0
  453. package/dist/services/settings-service.d.ts +4 -248
  454. package/dist/services/settings-service.d.ts.map +1 -1
  455. package/dist/services/settings-service.js +45 -641
  456. package/dist/services/settings-service.js.map +1 -1
  457. package/dist/services/settings-service.mock.d.ts.map +1 -1
  458. package/dist/services/settings-service.mock.js.map +1 -1
  459. package/dist/services/singleton-deprecation.test.js +2 -2
  460. package/dist/services/singleton-deprecation.test.js.map +1 -1
  461. package/dist/services/ssh-service.d.ts.map +1 -1
  462. package/dist/services/ssh-service.js +8 -7
  463. package/dist/services/ssh-service.js.map +1 -1
  464. package/dist/services/ssh-service.test.js +15 -13
  465. package/dist/services/ssh-service.test.js.map +1 -1
  466. package/dist/services/stream-event-parsing.d.ts +4 -0
  467. package/dist/services/stream-event-parsing.d.ts.map +1 -0
  468. package/dist/services/stream-event-parsing.js +76 -0
  469. package/dist/services/stream-event-parsing.js.map +1 -0
  470. package/dist/services/stream-event-parsing.test.d.ts +2 -0
  471. package/dist/services/stream-event-parsing.test.d.ts.map +1 -0
  472. package/dist/services/stream-event-parsing.test.js +59 -0
  473. package/dist/services/stream-event-parsing.test.js.map +1 -0
  474. package/dist/tools/apply-patch.d.ts.map +1 -1
  475. package/dist/tools/apply-patch.js +45 -35
  476. package/dist/tools/apply-patch.js.map +1 -1
  477. package/dist/tools/apply-patch.test.js +23 -0
  478. package/dist/tools/apply-patch.test.js.map +1 -1
  479. package/dist/tools/ask-mentor.d.ts +1 -1
  480. package/dist/tools/ask-mentor.d.ts.map +1 -1
  481. package/dist/tools/ask-mentor.js +5 -15
  482. package/dist/tools/ask-mentor.js.map +1 -1
  483. package/dist/tools/ask-mentor.test.js +10 -4
  484. package/dist/tools/ask-mentor.test.js.map +1 -1
  485. package/dist/tools/create-file.d.ts.map +1 -1
  486. package/dist/tools/create-file.js +2 -2
  487. package/dist/tools/create-file.js.map +1 -1
  488. package/dist/tools/create-file.test.js.map +1 -1
  489. package/dist/tools/edit-healing.d.ts.map +1 -1
  490. package/dist/tools/edit-healing.js +5 -4
  491. package/dist/tools/edit-healing.js.map +1 -1
  492. package/dist/tools/edit-healing.test.js.map +1 -1
  493. package/dist/tools/find-files.d.ts +2 -2
  494. package/dist/tools/find-files.d.ts.map +1 -1
  495. package/dist/tools/find-files.js +10 -27
  496. package/dist/tools/find-files.js.map +1 -1
  497. package/dist/tools/find-files.test.js +8 -21
  498. package/dist/tools/find-files.test.js.map +1 -1
  499. package/dist/tools/format-helpers.d.ts.map +1 -1
  500. package/dist/tools/format-helpers.js +2 -6
  501. package/dist/tools/format-helpers.js.map +1 -1
  502. package/dist/tools/grep.d.ts +2 -2
  503. package/dist/tools/grep.d.ts.map +1 -1
  504. package/dist/tools/grep.js +7 -26
  505. package/dist/tools/grep.js.map +1 -1
  506. package/dist/tools/read-file.d.ts +2 -2
  507. package/dist/tools/read-file.d.ts.map +1 -1
  508. package/dist/tools/read-file.js +5 -11
  509. package/dist/tools/read-file.js.map +1 -1
  510. package/dist/tools/read-file.test.js +7 -13
  511. package/dist/tools/read-file.test.js.map +1 -1
  512. package/dist/tools/search-replace.d.ts +1 -1
  513. package/dist/tools/search-replace.d.ts.map +1 -1
  514. package/dist/tools/search-replace.js +15 -31
  515. package/dist/tools/search-replace.js.map +1 -1
  516. package/dist/tools/search-replace.test.js.map +1 -1
  517. package/dist/tools/search.d.ts +5 -5
  518. package/dist/tools/search.d.ts.map +1 -1
  519. package/dist/tools/search.js +10 -29
  520. package/dist/tools/search.js.map +1 -1
  521. package/dist/tools/shell.d.ts +3 -3
  522. package/dist/tools/shell.d.ts.map +1 -1
  523. package/dist/tools/shell.js +27 -55
  524. package/dist/tools/shell.js.map +1 -1
  525. package/dist/tools/shell.test.d.ts +2 -0
  526. package/dist/tools/shell.test.d.ts.map +1 -0
  527. package/dist/tools/shell.test.js +70 -0
  528. package/dist/tools/shell.test.js.map +1 -0
  529. package/dist/tools/tool-names.d.ts +3 -0
  530. package/dist/tools/tool-names.d.ts.map +1 -0
  531. package/dist/tools/tool-names.js +3 -0
  532. package/dist/tools/tool-names.js.map +1 -0
  533. package/dist/tools/tool-names.test.d.ts +2 -0
  534. package/dist/tools/tool-names.test.d.ts.map +1 -0
  535. package/dist/tools/tool-names.test.js +7 -0
  536. package/dist/tools/tool-names.test.js.map +1 -0
  537. package/dist/tools/tool-parameter-schema.test.d.ts +2 -0
  538. package/dist/tools/tool-parameter-schema.test.d.ts.map +1 -0
  539. package/dist/tools/tool-parameter-schema.test.js +88 -0
  540. package/dist/tools/tool-parameter-schema.test.js.map +1 -0
  541. package/dist/tools/types.d.ts.map +1 -1
  542. package/dist/tools/utils.d.ts.map +1 -1
  543. package/dist/tools/utils.js +3 -8
  544. package/dist/tools/utils.js.map +1 -1
  545. package/dist/tools/web-fetch.d.ts +3 -3
  546. package/dist/tools/web-fetch.d.ts.map +1 -1
  547. package/dist/tools/web-fetch.js +7 -10
  548. package/dist/tools/web-fetch.js.map +1 -1
  549. package/dist/tools/web-fetch.test.js +3 -3
  550. package/dist/tools/web-fetch.test.js.map +1 -1
  551. package/dist/tools/web-search.d.ts.map +1 -1
  552. package/dist/tools/web-search.js +6 -10
  553. package/dist/tools/web-search.js.map +1 -1
  554. package/dist/tools/web-search.test.js +12 -14
  555. package/dist/tools/web-search.test.js.map +1 -1
  556. package/dist/utils/command-logger.d.ts.map +1 -1
  557. package/dist/utils/command-logger.js.map +1 -1
  558. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  559. package/dist/utils/command-safety/constants.js +1 -9
  560. package/dist/utils/command-safety/constants.js.map +1 -1
  561. package/dist/utils/command-safety/find-helpers.d.ts.map +1 -1
  562. package/dist/utils/command-safety/find-helpers.js +4 -9
  563. package/dist/utils/command-safety/find-helpers.js.map +1 -1
  564. package/dist/utils/command-safety/handlers/find-handler.d.ts.map +1 -1
  565. package/dist/utils/command-safety/handlers/find-handler.js +3 -10
  566. package/dist/utils/command-safety/handlers/find-handler.js.map +1 -1
  567. package/dist/utils/command-safety/handlers/git-handler.d.ts.map +1 -1
  568. package/dist/utils/command-safety/handlers/git-handler.js +2 -4
  569. package/dist/utils/command-safety/handlers/git-handler.js.map +1 -1
  570. package/dist/utils/command-safety/handlers/index.d.ts +1 -1
  571. package/dist/utils/command-safety/handlers/index.d.ts.map +1 -1
  572. package/dist/utils/command-safety/handlers/index.js.map +1 -1
  573. package/dist/utils/command-safety/handlers/sed-handler.d.ts.map +1 -1
  574. package/dist/utils/command-safety/handlers/sed-handler.js.map +1 -1
  575. package/dist/utils/command-safety/handlers/types.d.ts.map +1 -1
  576. package/dist/utils/command-safety/index.d.ts.map +1 -1
  577. package/dist/utils/command-safety/index.js +4 -10
  578. package/dist/utils/command-safety/index.js.map +1 -1
  579. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  580. package/dist/utils/command-safety/path-analysis.js +9 -20
  581. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  582. package/dist/utils/command-safety/utils.d.ts.map +1 -1
  583. package/dist/utils/command-safety/utils.js +1 -3
  584. package/dist/utils/command-safety/utils.js.map +1 -1
  585. package/dist/utils/command-safety.d.ts.map +1 -1
  586. package/dist/utils/command-safety.devnull.test.d.ts +2 -0
  587. package/dist/utils/command-safety.devnull.test.d.ts.map +1 -0
  588. package/dist/utils/command-safety.devnull.test.js +13 -0
  589. package/dist/utils/command-safety.devnull.test.js.map +1 -0
  590. package/dist/utils/command-safety.find.test.js +44 -87
  591. package/dist/utils/command-safety.find.test.js.map +1 -1
  592. package/dist/utils/command-safety.js +10 -364
  593. package/dist/utils/command-safety.js.map +1 -1
  594. package/dist/utils/command-safety.path.test.js +32 -67
  595. package/dist/utils/command-safety.path.test.js.map +1 -1
  596. package/dist/utils/conversation-event-handler.d.ts +4 -16
  597. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  598. package/dist/utils/conversation-event-handler.js +4 -8
  599. package/dist/utils/conversation-event-handler.js.map +1 -1
  600. package/dist/utils/conversation-event-handler.test.js +16 -18
  601. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  602. package/dist/utils/conversation-utils.d.ts.map +1 -1
  603. package/dist/utils/conversation-utils.js +5 -8
  604. package/dist/utils/conversation-utils.js.map +1 -1
  605. package/dist/utils/conversation-utils.test.js +45 -44
  606. package/dist/utils/conversation-utils.test.js.map +1 -1
  607. package/dist/utils/diff.d.ts.map +1 -1
  608. package/dist/utils/diff.js +2 -4
  609. package/dist/utils/diff.js.map +1 -1
  610. package/dist/utils/diff.test.js +12 -12
  611. package/dist/utils/diff.test.js.map +1 -1
  612. package/dist/utils/error-helpers.d.ts.map +1 -1
  613. package/dist/utils/error-helpers.js +2 -6
  614. package/dist/utils/error-helpers.js.map +1 -1
  615. package/dist/utils/error-helpers.test.js +32 -32
  616. package/dist/utils/error-helpers.test.js.map +1 -1
  617. package/dist/utils/execute-shell.d.ts.map +1 -1
  618. package/dist/utils/execute-shell.js.map +1 -1
  619. package/dist/utils/execute-shell.test.js.map +1 -1
  620. package/dist/utils/extract-command-messages.d.ts.map +1 -1
  621. package/dist/utils/extract-command-messages.js +16 -21
  622. package/dist/utils/extract-command-messages.js.map +1 -1
  623. package/dist/utils/extract-command-messages.test.d.ts +2 -0
  624. package/dist/utils/extract-command-messages.test.d.ts.map +1 -0
  625. package/dist/utils/extract-command-messages.test.js +58 -51
  626. package/dist/utils/extract-command-messages.test.js.map +1 -0
  627. package/dist/utils/ink-render-options.d.ts.map +1 -1
  628. package/dist/utils/ink-render-options.js.map +1 -1
  629. package/dist/utils/log-viewer-filters.d.ts +29 -0
  630. package/dist/utils/log-viewer-filters.d.ts.map +1 -0
  631. package/dist/utils/log-viewer-filters.js +49 -0
  632. package/dist/utils/log-viewer-filters.js.map +1 -0
  633. package/dist/utils/log-viewer-filters.test.d.ts +2 -0
  634. package/dist/utils/log-viewer-filters.test.d.ts.map +1 -0
  635. package/dist/utils/log-viewer-filters.test.js +48 -0
  636. package/dist/utils/log-viewer-filters.test.js.map +1 -0
  637. package/dist/utils/message-buffer.d.ts.map +1 -1
  638. package/dist/utils/message-buffer.js.map +1 -1
  639. package/dist/utils/message-buffer.test.js +4 -4
  640. package/dist/utils/message-buffer.test.js.map +1 -1
  641. package/dist/utils/output-trim.d.ts.map +1 -1
  642. package/dist/utils/output-trim.js.map +1 -1
  643. package/dist/utils/provider-credentials.d.ts.map +1 -1
  644. package/dist/utils/provider-credentials.js +1 -1
  645. package/dist/utils/provider-credentials.js.map +1 -1
  646. package/dist/utils/provider-traffic-extractor.d.ts +18 -0
  647. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -0
  648. package/dist/utils/provider-traffic-extractor.js +121 -0
  649. package/dist/utils/provider-traffic-extractor.js.map +1 -0
  650. package/dist/utils/provider-traffic-extractor.test.d.ts +2 -0
  651. package/dist/utils/provider-traffic-extractor.test.d.ts.map +1 -0
  652. package/dist/utils/provider-traffic-extractor.test.js +84 -0
  653. package/dist/utils/provider-traffic-extractor.test.js.map +1 -0
  654. package/dist/utils/settings-command.d.ts.map +1 -1
  655. package/dist/utils/settings-command.js +5 -12
  656. package/dist/utils/settings-command.js.map +1 -1
  657. package/dist/utils/ssh-config-parser.d.ts.map +1 -1
  658. package/dist/utils/ssh-config-parser.js.map +1 -1
  659. package/dist/utils/ssh-config-parser.test.js.map +1 -1
  660. package/dist/utils/streaming-session-factory.d.ts +33 -0
  661. package/dist/utils/streaming-session-factory.d.ts.map +1 -0
  662. package/dist/utils/streaming-session-factory.js +75 -0
  663. package/dist/utils/streaming-session-factory.js.map +1 -0
  664. package/dist/utils/streaming-session-factory.test.d.ts +2 -0
  665. package/dist/utils/streaming-session-factory.test.d.ts.map +1 -0
  666. package/dist/utils/streaming-session-factory.test.js +74 -0
  667. package/dist/utils/streaming-session-factory.test.js.map +1 -0
  668. package/dist/utils/streaming-updater.d.ts.map +1 -1
  669. package/dist/utils/streaming-updater.js.map +1 -1
  670. package/dist/utils/throttle.d.ts.map +1 -1
  671. package/dist/utils/throttle.js.map +1 -1
  672. package/dist/utils/token-usage.d.ts.map +1 -1
  673. package/dist/utils/token-usage.js +1 -2
  674. package/dist/utils/token-usage.js.map +1 -1
  675. package/dist/utils/token-usage.test.js +8 -8
  676. package/dist/utils/token-usage.test.js.map +1 -1
  677. package/dist/utils/trim-tool-output.d.ts.map +1 -1
  678. package/dist/utils/trim-tool-output.js +1 -1
  679. package/dist/utils/trim-tool-output.js.map +1 -1
  680. package/package.json +117 -111
  681. package/readme.md +196 -145
  682. package/dist/app.model-command-feedback.test.d.ts +0 -2
  683. package/dist/app.model-command-feedback.test.d.ts.map +0 -1
  684. package/dist/app.model-command-feedback.test.js +0 -19
  685. package/dist/app.model-command-feedback.test.js.map +0 -1
  686. package/dist/components/MentorMode.test.d.ts +0 -2
  687. package/dist/components/MentorMode.test.d.ts.map +0 -1
  688. package/dist/components/MentorMode.test.js.map +0 -1
  689. package/dist/components/StatusBar.test.d.ts +0 -2
  690. package/dist/components/StatusBar.test.d.ts.map +0 -1
  691. package/dist/components/StatusBar.test.js +0 -19
  692. package/dist/components/StatusBar.test.js.map +0 -1
  693. package/dist/debug-schema.d.ts +0 -2
  694. package/dist/debug-schema.d.ts.map +0 -1
  695. package/dist/debug-schema.js +0 -22
  696. package/dist/debug-schema.js.map +0 -1
  697. package/dist/hooks/use-model-selection.test.d.ts +0 -2
  698. package/dist/hooks/use-model-selection.test.d.ts.map +0 -1
  699. package/dist/hooks/use-model-selection.test.js +0 -28
  700. package/dist/hooks/use-model-selection.test.js.map +0 -1
  701. package/dist/hooks/use-path-completion.test.d.ts +0 -2
  702. package/dist/hooks/use-path-completion.test.d.ts.map +0 -1
  703. package/dist/hooks/use-path-completion.test.js +0 -29
  704. package/dist/hooks/use-path-completion.test.js.map +0 -1
  705. package/dist/prompts/default.md.bak +0 -77
  706. package/dist/providers/github-copilot/model-direct.d.ts +0 -34
  707. package/dist/providers/github-copilot/model-direct.d.ts.map +0 -1
  708. package/dist/providers/github-copilot/model-direct.js +0 -443
  709. package/dist/providers/github-copilot/model-direct.js.map +0 -1
  710. package/dist/providers/openrouter/merge-messages.test.d.ts +0 -2
  711. package/dist/providers/openrouter/merge-messages.test.d.ts.map +0 -1
  712. package/dist/providers/openrouter/merge-messages.test.js +0 -83
  713. package/dist/providers/openrouter/merge-messages.test.js.map +0 -1
  714. package/dist/providers/openrouter.history.test.d.ts +0 -2
  715. package/dist/providers/openrouter.history.test.d.ts.map +0 -1
  716. package/dist/providers/openrouter.history.test.js +0 -533
  717. package/dist/providers/openrouter.history.test.js.map +0 -1
  718. package/dist/reproduce_issue.test.d.ts +0 -2
  719. package/dist/reproduce_issue.test.d.ts.map +0 -1
  720. package/dist/reproduce_issue.test.js +0 -31
  721. package/dist/reproduce_issue.test.js.map +0 -1
  722. package/dist/services/conversation-session.usage.test.d.ts +0 -2
  723. package/dist/services/conversation-session.usage.test.d.ts.map +0 -1
  724. package/dist/services/conversation-session.usage.test.js +0 -59
  725. package/dist/services/conversation-session.usage.test.js.map +0 -1
  726. package/dist/test-search-tool.d.ts +0 -2
  727. package/dist/test-search-tool.d.ts.map +0 -1
  728. package/dist/test-search-tool.js +0 -36
  729. package/dist/test-search-tool.js.map +0 -1
  730. package/dist/utils/extract-command-messages.repro.test.d.ts +0 -2
  731. package/dist/utils/extract-command-messages.repro.test.d.ts.map +0 -1
  732. package/dist/utils/extract-command-messages.repro.test.js +0 -31
  733. package/dist/utils/extract-command-messages.repro.test.js.map +0 -1
  734. package/dist/utils/message-utils.d.ts +0 -17
  735. package/dist/utils/message-utils.d.ts.map +0 -1
  736. package/dist/utils/message-utils.js +0 -52
  737. package/dist/utils/message-utils.js.map +0 -1
  738. package/dist/utils/message-utils.test.d.ts +0 -2
  739. package/dist/utils/message-utils.test.d.ts.map +0 -1
  740. package/dist/utils/message-utils.test.js +0 -48
  741. package/dist/utils/message-utils.test.js.map +0 -1
package/readme.md CHANGED
@@ -13,32 +13,34 @@ https://github.com/user-attachments/assets/ac960d65-f7c8-453a-9440-91f6397ae842
13
13
 
14
14
  ## Features
15
15
 
16
- - 🎭 **Three Operating Modes** - Default (full-power), Lite (fast & safe), and Mentor (get help from a smarter model on complex problems)
17
- - 🌍 **Open Source** - MIT licensed, hackable, auditable, community-driven
18
- - 🤖 **Multi-Provider Support** - Works with OpenAI, OpenRouter, and OpenAI-compatible APIs
19
- - 🔒 **Safe Execution** - Every command requires your explicit approval with diff preview
20
- - 🛠️ **Advanced Tools** - Shell execution, file patching, search/replace, grep, find files, file reading, web search, and mentor consultation
21
- - 💬 **Slash Commands** - Quick actions like `/clear`, `/quit`, `/model`, `/mentor`, `/lite` for easy control
22
- - 📝 **Smart Context** - The assistant understands your environment and provides relevant help
23
- - 🎯 **Streaming Responses** - See the AI's thoughts and reasoning in real-time
24
- - 🧠 **Reasoning Effort Control** - Configurable reasoning levels (minimal to high) for O1/O3 models
25
- - ⚡ **Command History** - Navigate previous inputs with arrow keys
26
- - 🎨 **Markdown Rendering** - Formatted code blocks and text in the terminal
27
- - 🔄 **Retry Logic** - Automatic recovery from tool hallucinations and upstream errors
28
- - 🌐 **SSH Mode** - Execute commands and edit files on remote servers over SSH
16
+ - 🎭 **Three Operating Modes** - Default (full-power), Lite (fast & safe), and Mentor (get help from a smarter model on complex problems)
17
+ - 🌍 **Open Source** - MIT licensed, hackable, auditable, community-driven
18
+ - 🤖 **Multi-Provider Support** - Works with OpenAI, OpenRouter, and OpenAI-compatible APIs
19
+ - 🔒 **Safe Execution** - Every command requires your explicit approval with diff preview
20
+ - 🛠️ **Advanced Tools** - Shell execution, file patching, search/replace, grep, find files, file reading, web search, and mentor consultation
21
+ - 💬 **Slash Commands** - Quick actions like `/clear`, `/quit`, `/model`, `/mentor`, `/lite` for easy control
22
+ - 📝 **Smart Context** - The assistant understands your environment and provides relevant help
23
+ - 🎯 **Streaming Responses** - See the AI's thoughts and reasoning in real-time
24
+ - 🧠 **Reasoning Effort Control** - Configurable reasoning levels (minimal to high) for O1/O3 models
25
+ - ⚡ **Command History** - Navigate previous inputs with arrow keys
26
+ - 🎨 **Markdown Rendering** - Formatted code blocks and text in the terminal
27
+ - 🔄 **Retry Logic** - Automatic recovery from tool hallucinations and upstream errors
28
+ - 🌐 **SSH Mode** - Execute commands and edit files on remote servers over SSH
29
+ - 🤖 **Non-Interactive Mode** - Run commands from the CLI without starting the full UI
29
30
 
30
31
  ## Why term2 vs Alternatives?
31
32
 
32
- | | **term2** | Claude Code | Warp |
33
- |---|:---:|:---:|:---:|
34
- | **Open Source** | ✅ MIT | ❌ Proprietary | ❌ Proprietary |
35
- | **Cost** | Pay-per-use | $20-200/mo | Freemium |
36
- | **AI Providers** | Any (OpenAI, OpenRouter, local, etc.) | Anthropic only | selected models only |
37
- | **SSH Remote** | ✅ Native | ❌ No | ✅ Yes |
38
- | **Mentor Mode** | ✅ Built-in | ❌ No | ❌ No |
39
- | **Self-Hostable** | | | |
33
+ | | **term2** | Claude Code | Warp |
34
+ | ----------------- | :-----------------------------------: | :------------: | :------------------: |
35
+ | **Open Source** | ✅ MIT | ❌ Proprietary | ❌ Proprietary |
36
+ | **Cost** | Pay-per-use | $20-200/mo | Freemium |
37
+ | **AI Providers** | Any (OpenAI, OpenRouter, local, etc.) | Anthropic only | selected models only |
38
+ | **SSH Remote** | ✅ Native | ❌ No | ✅ Yes |
39
+ | **Mentor Mode** | ✅ Built-in | ❌ No | ❌ No |
40
+ | **Self-Hostable** | | | |
40
41
 
41
42
  **term2 gives you:**
43
+
42
44
  - **Freedom** — No vendor lock-in. Use any AI provider or model you prefer.
43
45
  - **Transparency** — Open source means you can audit every line of code.
44
46
  - **Cost Control** — Pay only for API usage, no monthly subscriptions.
@@ -49,8 +51,8 @@ https://github.com/user-attachments/assets/ac960d65-f7c8-453a-9440-91f6397ae842
49
51
 
50
52
  **Requirements:**
51
53
 
52
- - Node.js 16 or higher
53
- - An API key from OpenAI, OpenRouter, or any OpenAI-compatible provider
54
+ - Node.js 16 or higher
55
+ - An API key from OpenAI, OpenRouter, or any OpenAI-compatible provider
54
56
 
55
57
  Install globally via npm:
56
58
 
@@ -77,9 +79,9 @@ Then simply chat with the AI! Type your question or request, press Enter, and th
77
79
 
78
80
  **New to term2?**
79
81
 
80
- - Working on a codebase/project? Use default mode: `term2`
81
- - Just need general terminal help? Use lite mode: `term2 --lite`
82
- - Tackling a complex problem? Enable mentor mode with `/mentor` command
82
+ - Working on a codebase/project? Use default mode: `term2`
83
+ - Just need general terminal help? Use lite mode: `term2 --lite`
84
+ - Tackling a complex problem? Enable mentor mode with `/mentor` command
83
85
 
84
86
  See the "Operating Modes" section below for full details.
85
87
 
@@ -122,18 +124,22 @@ term2 --ssh deploy@server.com --remote-dir /var/www/app --ssh-port 2222
122
124
 
123
125
  # Combine SSH with lite mode for lightweight remote assistance
124
126
  term2 --ssh user@host --remote-dir /path --lite
127
+
128
+ # Non-interactive mode
129
+ term2 "how to use grep"
130
+ term2 --auto-approve "list files in current directory"
125
131
  ```
126
132
 
127
133
  ### Slash Commands
128
134
 
129
135
  While in the chat, you can use these commands:
130
136
 
131
- - `/clear` - Clear the conversation history
132
- - `/quit` - Exit the application
133
- - `/model [model-name]` - Switch to a different model
134
- - `/mentor` - Toggle mentor mode (see "Operating Modes" section for details)
135
- - `/lite` - Toggle lite mode (see "Operating Modes" section for details)
136
- - `/settings [key] [value]` - Modify runtime settings (e.g., `/settings agent.temperature 0.7`)
137
+ - `/clear` - Clear the conversation history
138
+ - `/quit` - Exit the application
139
+ - `/model [model-name]` - Switch to a different model
140
+ - `/mentor` - Toggle mentor mode (see "Operating Modes" section for details)
141
+ - `/lite` - Toggle lite mode (see "Operating Modes" section for details)
142
+ - `/settings [key] [value]` - Modify runtime settings (e.g., `/settings agent.temperature 0.7`)
137
143
 
138
144
  ## Operating Modes
139
145
 
@@ -155,20 +161,20 @@ Lite mode is designed for general terminal work: system administration, file man
155
161
 
156
162
  **Key benefits:**
157
163
 
158
- - 🚀 **Fast and lightweight** - No codebase context, no project file loading, quick startup
159
- - 🔧 **General terminal tools** - Shell commands, grep, read files, find files (no code editing)
160
- - 🌐 **Perfect for SSH** - Ideal for remote server management and investigation
161
- - 🔄 **Toggleable** - Switch on/off mid-session with `/lite` command
162
- - 🐚 **Shell mode** - Press Shift+Tab to toggle direct shell command execution
164
+ - 🚀 **Fast and lightweight** - No codebase context, no project file loading, quick startup
165
+ - 🔧 **General terminal tools** - Shell commands, grep, read files, find files (no code editing)
166
+ - 🌐 **Perfect for SSH** - Ideal for remote server management and investigation
167
+ - 🔄 **Toggleable** - Switch on/off mid-session with `/lite` command
168
+ - 🐚 **Shell mode** - Press Shift+Tab to toggle direct shell command execution
163
169
 
164
170
  **When to use Lite mode:**
165
171
 
166
- - System administration and server management tasks
167
- - Investigating logs, config files, and system issues
168
- - File system navigation and organization
169
- - SSH into servers for maintenance or debugging
170
- - General terminal help when not working on a codebase
171
- - Quick command help and syntax lookups
172
+ - System administration and server management tasks
173
+ - Investigating logs, config files, and system issues
174
+ - File system navigation and organization
175
+ - SSH into servers for maintenance or debugging
176
+ - General terminal help when not working on a codebase
177
+ - Quick command help and syntax lookups
172
178
 
173
179
  **Example:**
174
180
 
@@ -191,10 +197,10 @@ Mentor mode gives you two AI minds working together on your codebase. Your prima
191
197
 
192
198
  **Key benefits:**
193
199
 
194
- - 🧠 **Two minds, better solutions** - Primary AI gathers context, mentor provides strategic guidance
195
- - 🔍 **Structured problem-solving** - Forces clear articulation of findings before jumping to solutions
196
- - ❓ **Challenges assumptions** - Mentor actively probes for gaps and alternative approaches
197
- - 🎯 **You stay in control** - Mentor advises, primary AI implements your decisions
200
+ - 🧠 **Two minds, better solutions** - Primary AI gathers context, mentor provides strategic guidance
201
+ - 🔍 **Structured problem-solving** - Forces clear articulation of findings before jumping to solutions
202
+ - ❓ **Challenges assumptions** - Mentor actively probes for gaps and alternative approaches
203
+ - 🎯 **You stay in control** - Mentor advises, primary AI implements your decisions
198
204
 
199
205
  **How it works:**
200
206
 
@@ -208,17 +214,17 @@ Mentor mode gives you two AI minds working together on your codebase. Your prima
208
214
 
209
215
  **When to use Mentor mode:**
210
216
 
211
- - Architectural decisions with multiple valid approaches
212
- - "Am I missing something?" sanity checks before major refactoring
213
- - Stuck on a problem after trying multiple solutions
214
- - Designing new features that must fit existing patterns
215
- - Getting a pre-commit review of your approach
217
+ - Architectural decisions with multiple valid approaches
218
+ - "Am I missing something?" sanity checks before major refactoring
219
+ - Stuck on a problem after trying multiple solutions
220
+ - Designing new features that must fit existing patterns
221
+ - Getting a pre-commit review of your approach
216
222
 
217
223
  **Requirements:**
218
224
 
219
- - Configure `agent.mentorModel` in settings (e.g., `gpt-5.2`, `claude-opus-4.5` or `gemini-3-pro-preview`)
220
- - Mentor model should be more capable than primary model for best results
221
- - Toggle with `/mentor` command mid-session
225
+ - Configure `agent.mentorModel` in settings (e.g., `gpt-5.2`, `claude-opus-4.5` or `gemini-3-pro-preview`)
226
+ - Mentor model should be more capable than primary model for best results
227
+ - Toggle with `/mentor` command mid-session
222
228
 
223
229
  **Example workflow:**
224
230
 
@@ -247,10 +253,10 @@ AI: [Does additional checks based on mentor's questions]
247
253
 
248
254
  Modes are mutually exclusive—each represents a different working style matched to your task. You can switch modes mid-session:
249
255
 
250
- - `/lite` - Toggle lite mode (clears history when switching)
251
- - `/mentor` - Toggle mentor mode
252
- - Switching to lite mode automatically disables edit/mentor modes
253
- - Enabling edit or mentor mode automatically disables lite mode
256
+ - `/lite` - Toggle lite mode (clears history when switching)
257
+ - `/mentor` - Toggle mentor mode
258
+ - Switching to lite mode automatically disables edit/mentor modes
259
+ - Enabling edit or mentor mode automatically disables lite mode
254
260
 
255
261
  ## SSH Mode
256
262
 
@@ -258,9 +264,9 @@ SSH mode enables term2 to execute commands and modify files on remote servers ov
258
264
 
259
265
  ### Requirements
260
266
 
261
- - SSH agent running with your keys loaded (`ssh-add`)
262
- - SSH access to the target server
263
- - `--remote-dir` is required to specify the working directory (optional in lite mode - will auto-detect)
267
+ - SSH agent running with your keys loaded (`ssh-add`)
268
+ - SSH access to the target server
269
+ - `--remote-dir` is required to specify the working directory (optional in lite mode - will auto-detect)
264
270
 
265
271
  ### Usage
266
272
 
@@ -295,23 +301,68 @@ term2 --ssh user@host --remote-dir /path/to/project --lite
295
301
 
296
302
  This combination provides:
297
303
 
298
- - Remote command execution over SSH
299
- - Read-only tools (grep, find_files, read_file) for exploration
300
- - Minimal context and faster responses
301
- - No file editing tools (safer for production servers)
304
+ - Remote command execution over SSH
305
+ - Read-only tools (grep, find_files, read_file) for exploration
306
+ - Minimal context and faster responses
307
+ - No file editing tools (safer for production servers)
302
308
 
303
309
  ### Limitations
304
310
 
305
- - Authentication is via SSH agent only (no password prompts)
306
- - Binary file operations are not supported (text files only)
307
- - Large file transfers may be slower than local operations
311
+ - Authentication is via SSH agent only (no password prompts)
312
+ - Binary file operations are not supported (text files only)
313
+ - Large file transfers may be slower than local operations
314
+
315
+ ## Non-Interactive Mode
316
+
317
+ term2 can be used for one-off tasks without entering the interactive chat UI. To use non-interactive mode, simply pass your prompt as a positional argument.
318
+
319
+ ### Usage
320
+
321
+ ```bash
322
+ term2 "list files in current directory"
323
+ ```
324
+
325
+ ### Tool Execution & Approval
326
+
327
+ By default, non-interactive mode will **reject** any tool execution that requires approval (like destructive shell commands or file edits) to prevent accidents.
328
+
329
+ - If a tool is rejected, the AI will respond acknowledging the rejection and may suggest how to run the command manually.
330
+ - To allow tools to run automatically, use the `--auto-approve` flag.
331
+
332
+ ```bash
333
+ # This will fail to delete files (rejection default)
334
+ term2 "delete /tmp/test-file"
335
+
336
+ # This will proceed with execution
337
+ term2 --auto-approve "delete /tmp/test-file"
338
+ ```
339
+
340
+ ### Output Redirection
341
+
342
+ - **AI text response** is written to `stdout`.
343
+ - **Events** (tool starts, completions, errors, approval requests) are written to `stderr`.
344
+
345
+ This makes it easy to use term2 in shell scripts:
346
+
347
+ ```bash
348
+ # Capture the response but see events in console
349
+ ANSWER=$(term2 "is there any TODO in source/cli.tsx?")
350
+ echo "The answer is: $ANSWER"
351
+ ```
352
+
353
+ ### Default Mode vs Lite Mode
354
+
355
+ - When running **with** `--auto-approve`, term2 defaults to **Default Mode** (full codebase context).
356
+ - When running **without** `--auto-approve`, term2 defaults to **Lite Mode** (no codebase context, safe/fast).
357
+
358
+ You can always override this by passing `--lite` or running in a directory without a codebase.
308
359
 
309
360
  ## Configuration
310
361
 
311
362
  term2 stores its configuration in:
312
363
 
313
- - **macOS**: `~/Library/Logs/term2-nodejs/settings.json`
314
- - **Linux**: `~/.local/state/term2-nodejs/settings.json`
364
+ - **macOS**: `~/Library/Logs/term2-nodejs/settings.json`
365
+ - **Linux**: `~/.local/state/term2-nodejs/settings.json`
315
366
 
316
367
  ### Environment Variables (API Keys Only)
317
368
 
@@ -336,8 +387,8 @@ Settings (model, provider, temperature, etc.) can be configured via:
336
387
 
337
388
  1. **App menu** - Use `/settings` command during a session (e.g., `/settings agent.model gpt-5.2`)
338
389
  2. **Settings file** - Manually edit the JSON file:
339
- - **macOS**: `~/Library/Logs/term2-nodejs/settings.json`
340
- - **Linux**: `~/.local/state/term2-nodejs/settings.json`
390
+ - **macOS**: `~/Library/Logs/term2-nodejs/settings.json`
391
+ - **Linux**: `~/.local/state/term2-nodejs/settings.json`
341
392
  3. **CLI flags** - Override for a single session (e.g., `-m gpt-5.2`)
342
393
 
343
394
  ### Provider Configuration Examples
@@ -348,11 +399,11 @@ You can easily switch between providers by editing `settings.json`.
348
399
 
349
400
  ```json
350
401
  {
351
- "agent": {
352
- "provider": "openai",
353
- "model": "gpt-5.1",
354
- "temperature": 0.7
355
- }
402
+ "agent": {
403
+ "provider": "openai",
404
+ "model": "gpt-5.1",
405
+ "temperature": 0.7
406
+ }
356
407
  }
357
408
  ```
358
409
 
@@ -361,10 +412,10 @@ Access a wide range of models.
361
412
 
362
413
  ```json
363
414
  {
364
- "agent": {
365
- "provider": "openrouter",
366
- "model": "anthropic/claude-4.5-sonnet"
367
- }
415
+ "agent": {
416
+ "provider": "openrouter",
417
+ "model": "anthropic/claude-4.5-sonnet"
418
+ }
368
419
  }
369
420
  ```
370
421
 
@@ -375,16 +426,16 @@ _Llama.cpp Example:_
375
426
 
376
427
  ```json
377
428
  {
378
- "providers": [
379
- {
380
- "name": "llama.cpp",
381
- "baseUrl": "http://127.0.0.1:8080/v1"
382
- }
383
- ],
384
- "agent": {
385
- "provider": "llama.cpp",
386
- "model": "qwen3-coder"
429
+ "providers": [
430
+ {
431
+ "name": "llama.cpp",
432
+ "baseUrl": "http://127.0.0.1:8080/v1"
387
433
  }
434
+ ],
435
+ "agent": {
436
+ "provider": "llama.cpp",
437
+ "model": "qwen3-coder"
438
+ }
388
439
  }
389
440
  ```
390
441
 
@@ -392,16 +443,16 @@ _LM Studio Example:_
392
443
 
393
444
  ```json
394
445
  {
395
- "providers": [
396
- {
397
- "name": "lm-studio",
398
- "baseUrl": "http://localhost:1234/v1"
399
- }
400
- ],
401
- "agent": {
402
- "provider": "lm-studio",
403
- "model": "local-model"
446
+ "providers": [
447
+ {
448
+ "name": "lm-studio",
449
+ "baseUrl": "http://localhost:1234/v1"
404
450
  }
451
+ ],
452
+ "agent": {
453
+ "provider": "lm-studio",
454
+ "model": "local-model"
455
+ }
405
456
  }
406
457
  ```
407
458
 
@@ -409,14 +460,14 @@ _LM Studio Example:_
409
460
 
410
461
  ```json
411
462
  {
412
- "shell": {
413
- "timeout": 120000,
414
- "maxOutputLines": 1000
415
- },
416
- "agent": {
417
- "reasoningEffort": "medium",
418
- "mentorModel": "gpt-5.2"
419
- }
463
+ "shell": {
464
+ "timeout": 120000,
465
+ "maxOutputLines": 1000
466
+ },
467
+ "agent": {
468
+ "reasoningEffort": "medium",
469
+ "mentorModel": "gpt-5.2"
470
+ }
420
471
  }
421
472
  ```
422
473
 
@@ -426,25 +477,25 @@ term2 works with multiple AI providers:
426
477
 
427
478
  ### OpenAI (default)
428
479
 
429
- - `gpt-5.2` (latest)
430
- - `gpt-5.1` (default)
431
- - `gpt-5`
432
- - `gpt-5-mini`
433
- - `gpt-4.1`
434
- - `gpt-4.1-mini`
435
- - `gpt-5.1`
436
- - `gpt-5.1-mini`
437
- - `o3` (supports reasoning effort)
438
- - `o3-mini` (supports reasoning effort)
439
- - `o1` (supports reasoning effort)
480
+ - `gpt-5.2` (latest)
481
+ - `gpt-5.1` (default)
482
+ - `gpt-5`
483
+ - `gpt-5-mini`
484
+ - `gpt-4.1`
485
+ - `gpt-4.1-mini`
486
+ - `gpt-5.1`
487
+ - `gpt-5.1-mini`
488
+ - `o3` (supports reasoning effort)
489
+ - `o3-mini` (supports reasoning effort)
490
+ - `o1` (supports reasoning effort)
440
491
 
441
492
  ### OpenRouter
442
493
 
443
494
  Access hundreds of models through OpenRouter including:
444
495
 
445
- - Claude models (Anthropic)
446
- - Gemini models (Google)
447
- - Open-source models (Deepseek, GLM, Minimax, Devstral, etc.)
496
+ - Claude models (Anthropic)
497
+ - Gemini models (Google)
498
+ - Open-source models (Deepseek, GLM, Minimax, Devstral, etc.)
448
499
 
449
500
  Use CLI flags (`-m model-name`) or settings file to select OpenRouter models.
450
501
 
@@ -452,19 +503,19 @@ Use CLI flags (`-m model-name`) or settings file to select OpenRouter models.
452
503
 
453
504
  term2 can connect to any OpenAI-compatible API. This allows you to use:
454
505
 
455
- - **Local Models**: Run private models locally via Ollama, LM Studio, vLLM, or LocalAI.
456
- - **Self-Hosted**: Connect to private deployments of models.
457
- - **Other Providers**: Any service offering an OpenAI-compatible endpoint (e.g., Groq, Together AI).
506
+ - **Local Models**: Run private models locally via Ollama, LM Studio, vLLM, or LocalAI.
507
+ - **Self-Hosted**: Connect to private deployments of models.
508
+ - **Other Providers**: Any service offering an OpenAI-compatible endpoint (e.g., Groq, Together AI).
458
509
 
459
510
  ## Safety Features
460
511
 
461
- - **Command Approval** - Every destructive operation requires your explicit confirmation
462
- - **Diff Preview** - See exact file changes before approving patches or edits
463
- - **Risk Analysis** - Dangerous operations (like `rm -rf`, `git push --force`) are flagged
464
- - **Path Safety** - Operations on sensitive directories require extra caution
465
- - **Dry-Run Validation** - Patches are validated before approval to prevent errors
466
- - **No Hidden Actions** - All tool usage is transparent and visible
467
- - **Retry Limits** - Automatic abort after consecutive tool failures (default: 3)
512
+ - **Command Approval** - Every destructive operation requires your explicit confirmation
513
+ - **Diff Preview** - See exact file changes before approving patches or edits
514
+ - **Risk Analysis** - Dangerous operations (like `rm -rf`, `git push --force`) are flagged
515
+ - **Path Safety** - Operations on sensitive directories require extra caution
516
+ - **Dry-Run Validation** - Patches are validated before approval to prevent errors
517
+ - **No Hidden Actions** - All tool usage is transparent and visible
518
+ - **Retry Limits** - Automatic abort after consecutive tool failures (default: 3)
468
519
 
469
520
  ## How It Works
470
521
 
@@ -558,14 +609,14 @@ term2 --ssh user@host --lite
558
609
 
559
610
  ## Tips
560
611
 
561
- - **Choose the right mode** - Use lite mode for general terminal work (not codebase), default mode for codebase work, mentor mode for complex codebase problems (see "Operating Modes" section)
562
- - The assistant won't run dangerous commands without your approval
563
- - You can reject any command by choosing 'No' when prompted
564
- - Press Ctrl+C to exit the chat at any time
565
- - Use arrow keys to navigate through your command history
566
- - Be specific in your requests for better results
567
- - Use `/mentor` to get expert consultation on difficult architectural decisions
568
- - Use `--lite` flag when SSH'ing to servers for general system work without codebase context
612
+ - **Choose the right mode** - Use lite mode for general terminal work (not codebase), default mode for codebase work, mentor mode for complex codebase problems (see "Operating Modes" section)
613
+ - The assistant won't run dangerous commands without your approval
614
+ - You can reject any command by choosing 'No' when prompted
615
+ - Press Ctrl+C to exit the chat at any time
616
+ - Use arrow keys to navigate through your command history
617
+ - Be specific in your requests for better results
618
+ - Use `/mentor` to get expert consultation on difficult architectural decisions
619
+ - Use `--lite` flag when SSH'ing to servers for general system work without codebase context
569
620
 
570
621
  ## Contributing
571
622
 
@@ -579,11 +630,11 @@ MIT License - see [LICENSE](LICENSE) file for details
579
630
 
580
631
  Built with:
581
632
 
582
- - [OpenAI Agents SDK](https://github.com/openai/openai-agents-js)
583
- - [Ink](https://github.com/vadimdemedes/ink) - React for CLI
584
- - [TypeScript](https://www.typescriptlang.org/)
585
- - [ssh2](https://github.com/mscdex/ssh2) - SSH client for Node.js
633
+ - [OpenAI Agents SDK](https://github.com/openai/openai-agents-js)
634
+ - [Ink](https://github.com/vadimdemedes/ink) - React for CLI
635
+ - [TypeScript](https://www.typescriptlang.org/)
636
+ - [ssh2](https://github.com/mscdex/ssh2) - SSH client for Node.js
586
637
 
587
638
  ---
588
639
 
589
- Made with ❤️ by [qduc](https://github.com/qduc)
640
+ Made with ❤️ by [qduc](https://github.com/qduc)
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=app.model-command-feedback.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.model-command-feedback.test.d.ts","sourceRoot":"","sources":["../source/app.model-command-feedback.test.ts"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- import test from 'ava';
2
- import { parseInput } from './app.js';
3
- test('parseInput identifies /model as slash command', t => {
4
- const result = parseInput('/model gpt-4o');
5
- t.is(result.type, 'slash-command');
6
- if (result.type === 'slash-command') {
7
- t.is(result.commandName, 'model');
8
- t.is(result.args, 'gpt-4o');
9
- }
10
- });
11
- test('parseInput identifies /model with provider as slash command', t => {
12
- const result = parseInput('/model gpt-4o --provider=openai');
13
- t.is(result.type, 'slash-command');
14
- if (result.type === 'slash-command') {
15
- t.is(result.commandName, 'model');
16
- t.is(result.args, 'gpt-4o --provider=openai');
17
- }
18
- });
19
- //# sourceMappingURL=app.model-command-feedback.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.model-command-feedback.test.js","sourceRoot":"","sources":["../source/app.model-command-feedback.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,IAAI,CAAC,+CAA+C,EAAE,CAAC,CAAC,EAAE;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAClC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6DAA6D,EAAE,CAAC,CAAC,EAAE;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC7D,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAClC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAClD,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=MentorMode.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MentorMode.test.d.ts","sourceRoot":"","sources":["../../source/components/MentorMode.test.tsx"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MentorMode.test.js","sourceRoot":"","sources":["../../source/components/MentorMode.test.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,yBAAyB,EAAC,MAAM,sCAAsC,CAAC;AAE/E,IAAI,CAAC,8CAA8C,EAAE,CAAC,CAAC,EAAE;IACrD,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;IACpD,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC1C,eAAe,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAEnD,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CAAC,oBAAC,MAAM,IAAC,eAAe,EAAE,eAAe,GAAI,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,CAAC,CAAC,EAAE;IACxD,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;IACpD,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC1C,eAAe,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAEnD,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CAAC,oBAAC,SAAS,IAAC,eAAe,EAAE,eAAe,GAAI,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=StatusBar.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatusBar.test.d.ts","sourceRoot":"","sources":["../../source/components/StatusBar.test.tsx"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- import test from 'ava';
2
- import React from 'react';
3
- import { render } from 'ink-testing-library';
4
- import StatusBar from './StatusBar.js';
5
- import { createMockSettingsService } from '../services/settings-service.mock.js';
6
- test('StatusBar renders token usage on the right', t => {
7
- const settingsService = createMockSettingsService();
8
- const lastUsage = { prompt_tokens: 100, completion_tokens: 50, total_tokens: 150 };
9
- const { lastFrame } = render(React.createElement(StatusBar, { settingsService: settingsService, lastUsage: lastUsage }));
10
- const output = lastFrame() ?? '';
11
- t.true(output.includes('Tok: 100 in / 50 out / 150 total'));
12
- });
13
- test('StatusBar does not render usage when not provided', t => {
14
- const settingsService = createMockSettingsService();
15
- const { lastFrame } = render(React.createElement(StatusBar, { settingsService: settingsService, lastUsage: null }));
16
- const output = lastFrame() ?? '';
17
- t.false(output.includes('Tok:'));
18
- });
19
- //# sourceMappingURL=StatusBar.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatusBar.test.js","sourceRoot":"","sources":["../../source/components/StatusBar.test.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,yBAAyB,EAAC,MAAM,sCAAsC,CAAC;AAE/E,IAAI,CAAC,4CAA4C,EAAE,CAAC,CAAC,EAAE;IACnD,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;IACpD,MAAM,SAAS,GAAG,EAAC,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAC,CAAC;IAEjF,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CACtB,oBAAC,SAAS,IACN,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,GACtB,CACL,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mDAAmD,EAAE,CAAC,CAAC,EAAE;IAC1D,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;IAEpD,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CACtB,oBAAC,SAAS,IACN,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,IAAI,GACjB,CACL,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=debug-schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-schema.d.ts","sourceRoot":"","sources":["../source/debug-schema.ts"],"names":[],"mappings":""}
@@ -1,22 +0,0 @@
1
- import { searchToolDefinition } from './tools/search.js';
2
- import { shellToolDefinition } from './tools/shell.js';
3
- import { zodToJsonSchema } from 'zod-to-json-schema';
4
- console.log('Shell params type:', shellToolDefinition.parameters.constructor.name);
5
- console.log('Search params type:', searchToolDefinition.parameters.constructor.name);
6
- try {
7
- const shellSchema = zodToJsonSchema(shellToolDefinition.parameters, "shell");
8
- console.log('--- Shell Tool Schema ---');
9
- console.log(JSON.stringify(shellSchema, null, 2));
10
- }
11
- catch (e) {
12
- console.error('Shell schema error:', e);
13
- }
14
- try {
15
- const searchSchema = zodToJsonSchema(searchToolDefinition.parameters, "search");
16
- console.log('\n--- Search Tool Schema ---');
17
- console.log(JSON.stringify(searchSchema, null, 2));
18
- }
19
- catch (e) {
20
- console.error('Search schema error:', e);
21
- }
22
- //# sourceMappingURL=debug-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-schema.js","sourceRoot":"","sources":["../source/debug-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAEnD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnF,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAErF,IAAI,CAAC;IACD,MAAM,WAAW,GAAG,eAAe,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACT,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,IAAI,CAAC;IACD,MAAM,YAAY,GAAG,eAAe,CAAC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACT,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=use-model-selection.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-model-selection.test.d.ts","sourceRoot":"","sources":["../../source/hooks/use-model-selection.test.ts"],"names":[],"mappings":""}