@qduc/term2 0.1.8 → 0.2.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 (618) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +5 -3
  3. package/dist/agent.js.map +1 -1
  4. package/dist/app.d.ts +1 -5
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +31 -274
  7. package/dist/app.js.map +1 -1
  8. package/dist/app.parseInput.test.js +1 -9
  9. package/dist/app.parseInput.test.js.map +1 -1
  10. package/dist/cli.js +1 -0
  11. package/dist/cli.js.map +1 -1
  12. package/dist/components/ApprovalPrompt.d.ts +2 -1
  13. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  14. package/dist/components/ApprovalPrompt.js +15 -0
  15. package/dist/components/ApprovalPrompt.js.map +1 -1
  16. package/dist/components/BottomArea.d.ts +1 -1
  17. package/dist/components/BottomArea.d.ts.map +1 -1
  18. package/dist/components/Input/determine-active-menu.d.ts +23 -0
  19. package/dist/components/Input/determine-active-menu.d.ts.map +1 -0
  20. package/dist/components/Input/determine-active-menu.js +57 -0
  21. package/dist/components/Input/determine-active-menu.js.map +1 -0
  22. package/dist/components/Input/input-width.d.ts +7 -0
  23. package/dist/components/Input/input-width.d.ts.map +1 -0
  24. package/dist/components/Input/input-width.js +20 -0
  25. package/dist/components/Input/input-width.js.map +1 -0
  26. package/dist/components/Input/insertions.d.ts +34 -0
  27. package/dist/components/Input/insertions.d.ts.map +1 -0
  28. package/dist/components/Input/insertions.js +52 -0
  29. package/dist/components/Input/insertions.js.map +1 -0
  30. package/dist/components/Input/popup-props.d.ts +18 -0
  31. package/dist/components/Input/popup-props.d.ts.map +1 -0
  32. package/dist/components/Input/popup-props.js +42 -0
  33. package/dist/components/Input/popup-props.js.map +1 -0
  34. package/dist/components/Input/triggers.d.ts +9 -0
  35. package/dist/components/Input/triggers.d.ts.map +1 -0
  36. package/dist/components/Input/triggers.js +25 -0
  37. package/dist/components/Input/triggers.js.map +1 -0
  38. package/dist/components/InputBox.d.ts +2 -6
  39. package/dist/components/InputBox.d.ts.map +1 -1
  40. package/dist/components/InputBox.js +118 -406
  41. package/dist/components/InputBox.js.map +1 -1
  42. package/dist/components/InputBox.menu-logic.test.js +82 -99
  43. package/dist/components/InputBox.menu-logic.test.js.map +1 -1
  44. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  45. package/dist/components/MarkdownRenderer.js +96 -23
  46. package/dist/components/MarkdownRenderer.js.map +1 -1
  47. package/dist/components/MessageList.d.ts +8 -0
  48. package/dist/components/MessageList.d.ts.map +1 -1
  49. package/dist/components/MessageList.js +25 -7
  50. package/dist/components/MessageList.js.map +1 -1
  51. package/dist/components/MessageList.test.js +48 -1
  52. package/dist/components/MessageList.test.js.map +1 -1
  53. package/dist/components/StatusBar.d.ts +1 -1
  54. package/dist/components/StatusBar.d.ts.map +1 -1
  55. package/dist/components/StatusBar.js +49 -38
  56. package/dist/components/StatusBar.js.map +1 -1
  57. package/dist/contracts/conversation.d.ts +9 -0
  58. package/dist/contracts/conversation.d.ts.map +1 -1
  59. package/dist/hooks/message-id.d.ts +3 -0
  60. package/dist/hooks/message-id.d.ts.map +1 -0
  61. package/dist/hooks/message-id.js +17 -0
  62. package/dist/hooks/message-id.js.map +1 -0
  63. package/dist/hooks/message-id.test.d.ts +2 -0
  64. package/dist/hooks/message-id.test.d.ts.map +1 -0
  65. package/dist/hooks/message-id.test.js +17 -0
  66. package/dist/hooks/message-id.test.js.map +1 -0
  67. package/dist/hooks/use-app-commands.d.ts +20 -0
  68. package/dist/hooks/use-app-commands.d.ts.map +1 -0
  69. package/dist/hooks/use-app-commands.js +197 -0
  70. package/dist/hooks/use-app-commands.js.map +1 -0
  71. package/dist/hooks/use-app-commands.test.d.ts +2 -0
  72. package/dist/hooks/use-app-commands.test.d.ts.map +1 -0
  73. package/dist/hooks/use-app-commands.test.js +34 -0
  74. package/dist/hooks/use-app-commands.test.js.map +1 -0
  75. package/dist/hooks/use-conversation.d.ts +11 -11
  76. package/dist/hooks/use-conversation.d.ts.map +1 -1
  77. package/dist/hooks/use-conversation.js +13 -10
  78. package/dist/hooks/use-conversation.js.map +1 -1
  79. package/dist/hooks/use-escape-key.d.ts +24 -0
  80. package/dist/hooks/use-escape-key.d.ts.map +1 -0
  81. package/dist/hooks/use-escape-key.js +60 -0
  82. package/dist/hooks/use-escape-key.js.map +1 -0
  83. package/dist/hooks/use-escape-key.test.d.ts +2 -0
  84. package/dist/hooks/use-escape-key.test.d.ts.map +1 -0
  85. package/dist/hooks/use-escape-key.test.js +49 -0
  86. package/dist/hooks/use-escape-key.test.js.map +1 -0
  87. package/dist/hooks/use-mode-handlers.d.ts +35 -0
  88. package/dist/hooks/use-mode-handlers.d.ts.map +1 -0
  89. package/dist/hooks/use-mode-handlers.js +79 -0
  90. package/dist/hooks/use-mode-handlers.js.map +1 -0
  91. package/dist/hooks/use-model-selection.d.ts +6 -3
  92. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  93. package/dist/hooks/use-model-selection.js +19 -16
  94. package/dist/hooks/use-model-selection.js.map +1 -1
  95. package/dist/hooks/use-model-selection.test.d.ts.map +1 -1
  96. package/dist/hooks/use-model-selection.test.js +53 -22
  97. package/dist/hooks/use-model-selection.test.js.map +1 -1
  98. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  99. package/dist/hooks/use-path-completion.js +5 -36
  100. package/dist/hooks/use-path-completion.js.map +1 -1
  101. package/dist/hooks/use-runtime-settings.d.ts +12 -0
  102. package/dist/hooks/use-runtime-settings.d.ts.map +1 -0
  103. package/dist/hooks/use-runtime-settings.js +68 -0
  104. package/dist/hooks/use-runtime-settings.js.map +1 -0
  105. package/dist/hooks/use-selection.d.ts +8 -0
  106. package/dist/hooks/use-selection.d.ts.map +1 -0
  107. package/dist/hooks/use-selection.js +31 -0
  108. package/dist/hooks/use-selection.js.map +1 -0
  109. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  110. package/dist/hooks/use-settings-completion.js +15 -30
  111. package/dist/hooks/use-settings-completion.js.map +1 -1
  112. package/dist/hooks/use-settings-completion.test.js +9 -9
  113. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  114. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  115. package/dist/hooks/use-settings-value-completion.js +30 -28
  116. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  117. package/dist/hooks/use-settings-value-completion.test.js +13 -0
  118. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  119. package/dist/hooks/use-shell-mode.d.ts +31 -0
  120. package/dist/hooks/use-shell-mode.d.ts.map +1 -0
  121. package/dist/hooks/use-shell-mode.js +85 -0
  122. package/dist/hooks/use-shell-mode.js.map +1 -0
  123. package/dist/hooks/use-slash-commands.d.ts +1 -0
  124. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  125. package/dist/hooks/use-slash-commands.js +32 -23
  126. package/dist/hooks/use-slash-commands.js.map +1 -1
  127. package/dist/hooks/use-terminal-width.d.ts +7 -0
  128. package/dist/hooks/use-terminal-width.d.ts.map +1 -0
  129. package/dist/hooks/use-terminal-width.js +33 -0
  130. package/dist/hooks/use-terminal-width.js.map +1 -0
  131. package/dist/hooks/use-trigger-detection.d.ts +40 -0
  132. package/dist/hooks/use-trigger-detection.d.ts.map +1 -0
  133. package/dist/hooks/use-trigger-detection.js +45 -0
  134. package/dist/hooks/use-trigger-detection.js.map +1 -0
  135. package/dist/lib/editor-impl.js +6 -6
  136. package/dist/lib/editor-impl.js.map +1 -1
  137. package/dist/lib/openai-agent-client.d.ts +2 -0
  138. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  139. package/dist/lib/openai-agent-client.js +187 -191
  140. package/dist/lib/openai-agent-client.js.map +1 -1
  141. package/dist/lib/openai-agent-client.public-methods.test.js +61 -13
  142. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  143. package/dist/lib/retry-executor.d.ts +16 -0
  144. package/dist/lib/retry-executor.d.ts.map +1 -0
  145. package/dist/lib/retry-executor.js +71 -0
  146. package/dist/lib/retry-executor.js.map +1 -0
  147. package/dist/lib/retry-executor.test.d.ts +2 -0
  148. package/dist/lib/retry-executor.test.d.ts.map +1 -0
  149. package/dist/lib/retry-executor.test.js +178 -0
  150. package/dist/lib/retry-executor.test.js.map +1 -0
  151. package/dist/lib/tool-selection-policy.d.ts +14 -0
  152. package/dist/lib/tool-selection-policy.d.ts.map +1 -0
  153. package/dist/lib/tool-selection-policy.js +17 -0
  154. package/dist/lib/tool-selection-policy.js.map +1 -0
  155. package/dist/lib/tool-selection-policy.test.d.ts +2 -0
  156. package/dist/lib/tool-selection-policy.test.d.ts.map +1 -0
  157. package/dist/lib/tool-selection-policy.test.js +69 -0
  158. package/dist/lib/tool-selection-policy.test.js.map +1 -0
  159. package/dist/providers/index.d.ts +1 -1
  160. package/dist/providers/index.d.ts.map +1 -1
  161. package/dist/providers/index.js +1 -1
  162. package/dist/providers/index.js.map +1 -1
  163. package/dist/providers/openai-compatible/model.d.ts.map +1 -1
  164. package/dist/providers/openai-compatible/model.js +68 -7
  165. package/dist/providers/openai-compatible/model.js.map +1 -1
  166. package/dist/providers/openai-compatible/reasoning-content.test.js +107 -6
  167. package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -1
  168. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  169. package/dist/providers/openai-compatible.provider.js.map +1 -1
  170. package/dist/providers/openai.provider.js +2 -0
  171. package/dist/providers/openai.provider.js.map +1 -1
  172. package/dist/providers/openrouter/converters.d.ts.map +1 -1
  173. package/dist/providers/openrouter/converters.js +8 -6
  174. package/dist/providers/openrouter/converters.js.map +1 -1
  175. package/dist/providers/openrouter/converters.test.js +24 -0
  176. package/dist/providers/openrouter/converters.test.js.map +1 -1
  177. package/dist/providers/openrouter/model.d.ts.map +1 -1
  178. package/dist/providers/openrouter/model.js +13 -5
  179. package/dist/providers/openrouter/model.js.map +1 -1
  180. package/dist/providers/openrouter/reasoning-content.test.js +48 -2
  181. package/dist/providers/openrouter/reasoning-content.test.js.map +1 -1
  182. package/dist/providers/openrouter.provider.createRunner.test.js +17 -9
  183. package/dist/providers/openrouter.provider.createRunner.test.js.map +1 -1
  184. package/dist/providers/openrouter.provider.js.map +1 -1
  185. package/dist/providers/openrouter.test.js +0 -2
  186. package/dist/providers/openrouter.test.js.map +1 -1
  187. package/dist/providers/registry.d.ts +17 -8
  188. package/dist/providers/registry.d.ts.map +1 -1
  189. package/dist/providers/registry.js +9 -0
  190. package/dist/providers/registry.js.map +1 -1
  191. package/dist/providers/web-search/exa.provider.d.ts +15 -0
  192. package/dist/providers/web-search/exa.provider.d.ts.map +1 -0
  193. package/dist/providers/web-search/exa.provider.js +82 -0
  194. package/dist/providers/web-search/exa.provider.js.map +1 -0
  195. package/dist/providers/web-search/exa.provider.test.d.ts +2 -0
  196. package/dist/providers/web-search/exa.provider.test.d.ts.map +1 -0
  197. package/dist/providers/web-search/exa.provider.test.js +67 -0
  198. package/dist/providers/web-search/exa.provider.test.js.map +1 -0
  199. package/dist/providers/web-search/index.d.ts +1 -0
  200. package/dist/providers/web-search/index.d.ts.map +1 -1
  201. package/dist/providers/web-search/index.js +1 -0
  202. package/dist/providers/web-search/index.js.map +1 -1
  203. package/dist/scripts/eval-auto-approval/cache.d.ts +9 -0
  204. package/dist/scripts/eval-auto-approval/cache.d.ts.map +1 -0
  205. package/dist/scripts/eval-auto-approval/cache.js +64 -0
  206. package/dist/scripts/eval-auto-approval/cache.js.map +1 -0
  207. package/dist/scripts/eval-auto-approval/dataset.d.ts +45 -0
  208. package/dist/scripts/eval-auto-approval/dataset.d.ts.map +1 -0
  209. package/dist/scripts/eval-auto-approval/dataset.js +65 -0
  210. package/dist/scripts/eval-auto-approval/dataset.js.map +1 -0
  211. package/dist/scripts/eval-auto-approval/dataset.test.d.ts +2 -0
  212. package/dist/scripts/eval-auto-approval/dataset.test.d.ts.map +1 -0
  213. package/dist/scripts/eval-auto-approval/dataset.test.js +88 -0
  214. package/dist/scripts/eval-auto-approval/dataset.test.js.map +1 -0
  215. package/dist/scripts/eval-auto-approval/leaderboard.d.ts +92 -0
  216. package/dist/scripts/eval-auto-approval/leaderboard.d.ts.map +1 -0
  217. package/dist/scripts/eval-auto-approval/leaderboard.js +402 -0
  218. package/dist/scripts/eval-auto-approval/leaderboard.js.map +1 -0
  219. package/dist/scripts/eval-auto-approval/leaderboard.test.d.ts +2 -0
  220. package/dist/scripts/eval-auto-approval/leaderboard.test.d.ts.map +1 -0
  221. package/dist/scripts/eval-auto-approval/leaderboard.test.js +689 -0
  222. package/dist/scripts/eval-auto-approval/leaderboard.test.js.map +1 -0
  223. package/dist/scripts/eval-auto-approval/metrics.d.ts +34 -0
  224. package/dist/scripts/eval-auto-approval/metrics.d.ts.map +1 -0
  225. package/dist/scripts/eval-auto-approval/metrics.js +74 -0
  226. package/dist/scripts/eval-auto-approval/metrics.js.map +1 -0
  227. package/dist/scripts/eval-auto-approval/metrics.test.d.ts +2 -0
  228. package/dist/scripts/eval-auto-approval/metrics.test.d.ts.map +1 -0
  229. package/dist/scripts/eval-auto-approval/metrics.test.js +79 -0
  230. package/dist/scripts/eval-auto-approval/metrics.test.js.map +1 -0
  231. package/dist/scripts/eval-auto-approval/report.d.ts +5 -0
  232. package/dist/scripts/eval-auto-approval/report.d.ts.map +1 -0
  233. package/dist/scripts/eval-auto-approval/report.js +51 -0
  234. package/dist/scripts/eval-auto-approval/report.js.map +1 -0
  235. package/dist/scripts/eval-auto-approval/report.test.d.ts +2 -0
  236. package/dist/scripts/eval-auto-approval/report.test.d.ts.map +1 -0
  237. package/dist/scripts/eval-auto-approval/report.test.js +23 -0
  238. package/dist/scripts/eval-auto-approval/report.test.js.map +1 -0
  239. package/dist/scripts/eval-auto-approval/runner-utils.d.ts +41 -0
  240. package/dist/scripts/eval-auto-approval/runner-utils.d.ts.map +1 -0
  241. package/dist/scripts/eval-auto-approval/runner-utils.js +187 -0
  242. package/dist/scripts/eval-auto-approval/runner-utils.js.map +1 -0
  243. package/dist/scripts/eval-auto-approval/runner-utils.test.d.ts +2 -0
  244. package/dist/scripts/eval-auto-approval/runner-utils.test.d.ts.map +1 -0
  245. package/dist/scripts/eval-auto-approval/runner-utils.test.js +135 -0
  246. package/dist/scripts/eval-auto-approval/runner-utils.test.js.map +1 -0
  247. package/dist/scripts/eval-auto-approval/runner.d.ts +2 -0
  248. package/dist/scripts/eval-auto-approval/runner.d.ts.map +1 -0
  249. package/dist/scripts/eval-auto-approval/runner.js +326 -0
  250. package/dist/scripts/eval-auto-approval/runner.js.map +1 -0
  251. package/dist/services/agent-stream.d.ts +11 -0
  252. package/dist/services/agent-stream.d.ts.map +1 -0
  253. package/dist/services/agent-stream.js +2 -0
  254. package/dist/services/agent-stream.js.map +1 -0
  255. package/dist/services/approval-flow-coordinator.d.ts +43 -0
  256. package/dist/services/approval-flow-coordinator.d.ts.map +1 -0
  257. package/dist/services/approval-flow-coordinator.js +120 -0
  258. package/dist/services/approval-flow-coordinator.js.map +1 -0
  259. package/dist/services/approval-flow-coordinator.test.d.ts +2 -0
  260. package/dist/services/approval-flow-coordinator.test.d.ts.map +1 -0
  261. package/dist/services/approval-flow-coordinator.test.js +168 -0
  262. package/dist/services/approval-flow-coordinator.test.js.map +1 -0
  263. package/dist/services/approval-rejection-interceptor.d.ts +16 -0
  264. package/dist/services/approval-rejection-interceptor.d.ts.map +1 -0
  265. package/dist/services/approval-rejection-interceptor.js +20 -0
  266. package/dist/services/approval-rejection-interceptor.js.map +1 -0
  267. package/dist/services/approval-rejection-interceptor.test.d.ts +2 -0
  268. package/dist/services/approval-rejection-interceptor.test.d.ts.map +1 -0
  269. package/dist/services/approval-rejection-interceptor.test.js +60 -0
  270. package/dist/services/approval-rejection-interceptor.test.js.map +1 -0
  271. package/dist/services/conversation-events.d.ts +4 -2
  272. package/dist/services/conversation-events.d.ts.map +1 -1
  273. package/dist/services/conversation-result-builder.d.ts +34 -34
  274. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  275. package/dist/services/conversation-result-builder.js +64 -76
  276. package/dist/services/conversation-result-builder.js.map +1 -1
  277. package/dist/services/conversation-result-builder.test.js +145 -65
  278. package/dist/services/conversation-result-builder.test.js.map +1 -1
  279. package/dist/services/conversation-retry-policy.d.ts +37 -0
  280. package/dist/services/conversation-retry-policy.d.ts.map +1 -0
  281. package/dist/services/conversation-retry-policy.js +51 -0
  282. package/dist/services/conversation-retry-policy.js.map +1 -0
  283. package/dist/services/conversation-retry-policy.test.d.ts +2 -0
  284. package/dist/services/conversation-retry-policy.test.d.ts.map +1 -0
  285. package/dist/services/conversation-retry-policy.test.js +79 -0
  286. package/dist/services/conversation-retry-policy.test.js.map +1 -0
  287. package/dist/services/conversation-service.d.ts +2 -1
  288. package/dist/services/conversation-service.d.ts.map +1 -1
  289. package/dist/services/conversation-session.auto-approval.test.d.ts +2 -0
  290. package/dist/services/conversation-session.auto-approval.test.d.ts.map +1 -0
  291. package/dist/services/conversation-session.auto-approval.test.js +617 -0
  292. package/dist/services/conversation-session.auto-approval.test.js.map +1 -0
  293. package/dist/services/conversation-session.d.ts +6 -3
  294. package/dist/services/conversation-session.d.ts.map +1 -1
  295. package/dist/services/conversation-session.js +164 -696
  296. package/dist/services/conversation-session.js.map +1 -1
  297. package/dist/services/interruption-info.d.ts +13 -0
  298. package/dist/services/interruption-info.d.ts.map +1 -0
  299. package/dist/services/interruption-info.js +89 -0
  300. package/dist/services/interruption-info.js.map +1 -0
  301. package/dist/services/interruption-info.test.d.ts +2 -0
  302. package/dist/services/interruption-info.test.d.ts.map +1 -0
  303. package/dist/services/interruption-info.test.js +84 -0
  304. package/dist/services/interruption-info.test.js.map +1 -0
  305. package/dist/services/logging-contract.d.ts +1 -1
  306. package/dist/services/logging-service.d.ts +6 -2
  307. package/dist/services/logging-service.d.ts.map +1 -1
  308. package/dist/services/logging-service.js +48 -91
  309. package/dist/services/logging-service.js.map +1 -1
  310. package/dist/services/settings-env.d.ts.map +1 -1
  311. package/dist/services/settings-env.js +3 -0
  312. package/dist/services/settings-env.js.map +1 -1
  313. package/dist/services/settings-schema.d.ts +34 -0
  314. package/dist/services/settings-schema.d.ts.map +1 -1
  315. package/dist/services/settings-schema.js +37 -0
  316. package/dist/services/settings-schema.js.map +1 -1
  317. package/dist/services/settings-service.d.ts.map +1 -1
  318. package/dist/services/settings-service.js +12 -166
  319. package/dist/services/settings-service.js.map +1 -1
  320. package/dist/services/settings-sources.d.ts +5 -0
  321. package/dist/services/settings-sources.d.ts.map +1 -0
  322. package/dist/services/settings-sources.js +92 -0
  323. package/dist/services/settings-sources.js.map +1 -0
  324. package/dist/services/settings-sources.test.d.ts +2 -0
  325. package/dist/services/settings-sources.test.d.ts.map +1 -0
  326. package/dist/services/settings-sources.test.js +34 -0
  327. package/dist/services/settings-sources.test.js.map +1 -0
  328. package/dist/services/shell-auto-approval-evaluator.d.ts +19 -0
  329. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -0
  330. package/dist/services/shell-auto-approval-evaluator.js +207 -0
  331. package/dist/services/shell-auto-approval-evaluator.js.map +1 -0
  332. package/dist/services/shell-auto-approval-evaluator.test.d.ts +2 -0
  333. package/dist/services/shell-auto-approval-evaluator.test.d.ts.map +1 -0
  334. package/dist/services/shell-auto-approval-evaluator.test.js +211 -0
  335. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -0
  336. package/dist/services/shell-auto-approval-resolver.d.ts +24 -0
  337. package/dist/services/shell-auto-approval-resolver.d.ts.map +1 -0
  338. package/dist/services/shell-auto-approval-resolver.js +59 -0
  339. package/dist/services/shell-auto-approval-resolver.js.map +1 -0
  340. package/dist/services/shell-auto-approval-resolver.test.d.ts +2 -0
  341. package/dist/services/shell-auto-approval-resolver.test.d.ts.map +1 -0
  342. package/dist/services/shell-auto-approval-resolver.test.js +110 -0
  343. package/dist/services/shell-auto-approval-resolver.test.js.map +1 -0
  344. package/dist/services/ssh-service.test.js +2 -2
  345. package/dist/services/ssh-service.test.js.map +1 -1
  346. package/dist/services/stream-event-processor.d.ts +18 -23
  347. package/dist/services/stream-event-processor.d.ts.map +1 -1
  348. package/dist/services/stream-event-processor.js +186 -325
  349. package/dist/services/stream-event-processor.js.map +1 -1
  350. package/dist/services/stream-event-processor.test.js +143 -90
  351. package/dist/services/stream-event-processor.test.js.map +1 -1
  352. package/dist/services/terminal-result-collector.d.ts +12 -0
  353. package/dist/services/terminal-result-collector.d.ts.map +1 -0
  354. package/dist/services/terminal-result-collector.js +64 -0
  355. package/dist/services/terminal-result-collector.js.map +1 -0
  356. package/dist/services/terminal-result-collector.test.d.ts +2 -0
  357. package/dist/services/terminal-result-collector.test.d.ts.map +1 -0
  358. package/dist/services/terminal-result-collector.test.js +93 -0
  359. package/dist/services/terminal-result-collector.test.js.map +1 -0
  360. package/dist/tools/apply-patch.js +5 -5
  361. package/dist/tools/apply-patch.js.map +1 -1
  362. package/dist/tools/create-file.js +2 -2
  363. package/dist/tools/create-file.js.map +1 -1
  364. package/dist/tools/edit-healing.d.ts.map +1 -1
  365. package/dist/tools/edit-healing.js +4 -1
  366. package/dist/tools/edit-healing.js.map +1 -1
  367. package/dist/tools/edit-healing.test.js +22 -0
  368. package/dist/tools/edit-healing.test.js.map +1 -1
  369. package/dist/tools/search-replace.d.ts.map +1 -1
  370. package/dist/tools/search-replace.js +114 -194
  371. package/dist/tools/search-replace.js.map +1 -1
  372. package/dist/tools/search-replace.test.js +38 -0
  373. package/dist/tools/search-replace.test.js.map +1 -1
  374. package/dist/tools/shell.js +2 -2
  375. package/dist/tools/shell.js.map +1 -1
  376. package/dist/tools/shell.test.js +0 -5
  377. package/dist/tools/shell.test.js.map +1 -1
  378. package/dist/tools/web-fetch.test.js +3 -3
  379. package/dist/tools/web-fetch.test.js.map +1 -1
  380. package/dist/utils/clipboard.d.ts +16 -0
  381. package/dist/utils/clipboard.d.ts.map +1 -0
  382. package/dist/utils/clipboard.js +55 -0
  383. package/dist/utils/clipboard.js.map +1 -0
  384. package/dist/utils/clipboard.test.d.ts +2 -0
  385. package/dist/utils/clipboard.test.d.ts.map +1 -0
  386. package/dist/utils/clipboard.test.js +59 -0
  387. package/dist/utils/clipboard.test.js.map +1 -0
  388. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  389. package/dist/utils/command-safety/constants.js +3 -21
  390. package/dist/utils/command-safety/constants.js.map +1 -1
  391. package/dist/utils/command-safety/find-helpers.d.ts.map +1 -1
  392. package/dist/utils/command-safety/find-helpers.js +13 -95
  393. package/dist/utils/command-safety/find-helpers.js.map +1 -1
  394. package/dist/utils/command-safety/handlers/sed-handler.d.ts.map +1 -1
  395. package/dist/utils/command-safety/handlers/sed-handler.js +2 -4
  396. package/dist/utils/command-safety/handlers/sed-handler.js.map +1 -1
  397. package/dist/utils/command-safety/index.d.ts +9 -0
  398. package/dist/utils/command-safety/index.d.ts.map +1 -1
  399. package/dist/utils/command-safety/index.js +12 -2
  400. package/dist/utils/command-safety/index.js.map +1 -1
  401. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  402. package/dist/utils/command-safety/path-analysis.js +7 -6
  403. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  404. package/dist/utils/command-safety.find.test.js +56 -39
  405. package/dist/utils/command-safety.find.test.js.map +1 -1
  406. package/dist/utils/command-safety.path.test.js +7 -7
  407. package/dist/utils/command-safety.path.test.js.map +1 -1
  408. package/dist/utils/command-safety.red-yellow-policy.test.d.ts +2 -0
  409. package/dist/utils/command-safety.red-yellow-policy.test.d.ts.map +1 -0
  410. package/dist/utils/command-safety.red-yellow-policy.test.js +36 -0
  411. package/dist/utils/command-safety.red-yellow-policy.test.js.map +1 -0
  412. package/dist/utils/conversation-event-handler.d.ts +4 -3
  413. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  414. package/dist/utils/conversation-event-handler.js +15 -5
  415. package/dist/utils/conversation-event-handler.js.map +1 -1
  416. package/dist/utils/conversation-event-handler.test.js +24 -0
  417. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  418. package/dist/utils/conversation-utils.d.ts +1 -1
  419. package/dist/utils/execute-shell.d.ts +10 -0
  420. package/dist/utils/execute-shell.d.ts.map +1 -1
  421. package/dist/utils/execute-shell.js +3 -3
  422. package/dist/utils/execute-shell.js.map +1 -1
  423. package/dist/utils/execute-shell.test.js +19 -3
  424. package/dist/utils/execute-shell.test.js.map +1 -1
  425. package/dist/utils/input-parser.d.ts +13 -0
  426. package/dist/utils/input-parser.d.ts.map +1 -0
  427. package/dist/utils/input-parser.js +10 -0
  428. package/dist/utils/input-parser.js.map +1 -0
  429. package/dist/utils/model-provider-arg.d.ts +5 -0
  430. package/dist/utils/model-provider-arg.d.ts.map +1 -0
  431. package/dist/utils/model-provider-arg.js +15 -0
  432. package/dist/utils/model-provider-arg.js.map +1 -0
  433. package/dist/utils/model-provider-arg.test.d.ts +2 -0
  434. package/dist/utils/model-provider-arg.test.d.ts.map +1 -0
  435. package/dist/utils/model-provider-arg.test.js +21 -0
  436. package/dist/utils/model-provider-arg.test.js.map +1 -0
  437. package/dist/utils/model-settings.d.ts +12 -0
  438. package/dist/utils/model-settings.d.ts.map +1 -0
  439. package/dist/utils/model-settings.js +35 -0
  440. package/dist/utils/model-settings.js.map +1 -0
  441. package/dist/utils/provider-traffic-extractor.d.ts +1 -0
  442. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -1
  443. package/dist/utils/provider-traffic-extractor.js +90 -5
  444. package/dist/utils/provider-traffic-extractor.js.map +1 -1
  445. package/dist/utils/settings-command.d.ts.map +1 -1
  446. package/dist/utils/settings-command.js +10 -8
  447. package/dist/utils/settings-command.js.map +1 -1
  448. package/dist/utils/streaming-session-factory.d.ts +1 -1
  449. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  450. package/dist/utils/streaming-session-factory.js +5 -2
  451. package/dist/utils/streaming-session-factory.js.map +1 -1
  452. package/dist/utils/streaming-session-factory.test.js +2 -2
  453. package/dist/utils/streaming-session-factory.test.js.map +1 -1
  454. package/dist/utils/streaming-updater.d.ts +2 -1
  455. package/dist/utils/streaming-updater.d.ts.map +1 -1
  456. package/dist/utils/streaming-updater.js +2 -2
  457. package/dist/utils/streaming-updater.js.map +1 -1
  458. package/dist/utils/throttle.d.ts +6 -1
  459. package/dist/utils/throttle.d.ts.map +1 -1
  460. package/dist/utils/throttle.js +11 -6
  461. package/dist/utils/throttle.js.map +1 -1
  462. package/dist/utils/viewport.d.ts +6 -0
  463. package/dist/utils/viewport.d.ts.map +1 -0
  464. package/dist/utils/viewport.js +20 -0
  465. package/dist/utils/viewport.js.map +1 -0
  466. package/dist/utils/viewport.test.d.ts +2 -0
  467. package/dist/utils/viewport.test.d.ts.map +1 -0
  468. package/dist/utils/viewport.test.js +43 -0
  469. package/dist/utils/viewport.test.js.map +1 -0
  470. package/package.json +5 -4
  471. package/dist/app.model-command-feedback.test.d.ts +0 -2
  472. package/dist/app.model-command-feedback.test.d.ts.map +0 -1
  473. package/dist/app.model-command-feedback.test.js +0 -19
  474. package/dist/app.model-command-feedback.test.js.map +0 -1
  475. package/dist/components/MentorMode.test.d.ts +0 -2
  476. package/dist/components/MentorMode.test.d.ts.map +0 -1
  477. package/dist/components/MentorMode.test.js.map +0 -1
  478. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +0 -2
  479. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +0 -1
  480. package/dist/components/ModelSelectionMenu.error-tabs.test.js +0 -18
  481. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +0 -1
  482. package/dist/components/StatusBar.test.d.ts +0 -2
  483. package/dist/components/StatusBar.test.d.ts.map +0 -1
  484. package/dist/components/StatusBar.test.js +0 -19
  485. package/dist/components/StatusBar.test.js.map +0 -1
  486. package/dist/components/TextInput.d.ts +0 -42
  487. package/dist/components/TextInput.d.ts.map +0 -1
  488. package/dist/components/TextInput.js +0 -397
  489. package/dist/components/TextInput.js.map +0 -1
  490. package/dist/components/TextInput.test.d.ts +0 -2
  491. package/dist/components/TextInput.test.d.ts.map +0 -1
  492. package/dist/components/TextInput.test.js +0 -75
  493. package/dist/components/TextInput.test.js.map +0 -1
  494. package/dist/debug-schema.d.ts +0 -2
  495. package/dist/debug-schema.d.ts.map +0 -1
  496. package/dist/debug-schema.js +0 -22
  497. package/dist/debug-schema.js.map +0 -1
  498. package/dist/hooks/use-path-completion.test.d.ts +0 -2
  499. package/dist/hooks/use-path-completion.test.d.ts.map +0 -1
  500. package/dist/hooks/use-path-completion.test.js +0 -29
  501. package/dist/hooks/use-path-completion.test.js.map +0 -1
  502. package/dist/lib/mentor-client.d.ts +0 -41
  503. package/dist/lib/mentor-client.d.ts.map +0 -1
  504. package/dist/lib/mentor-client.js +0 -146
  505. package/dist/lib/mentor-client.js.map +0 -1
  506. package/dist/lib/mentor-client.test.d.ts +0 -2
  507. package/dist/lib/mentor-client.test.d.ts.map +0 -1
  508. package/dist/lib/mentor-client.test.js +0 -440
  509. package/dist/lib/mentor-client.test.js.map +0 -1
  510. package/dist/lib/retry-strategy.d.ts +0 -43
  511. package/dist/lib/retry-strategy.d.ts.map +0 -1
  512. package/dist/lib/retry-strategy.js +0 -93
  513. package/dist/lib/retry-strategy.js.map +0 -1
  514. package/dist/lib/retry-strategy.test.d.ts +0 -2
  515. package/dist/lib/retry-strategy.test.d.ts.map +0 -1
  516. package/dist/lib/retry-strategy.test.js +0 -200
  517. package/dist/lib/retry-strategy.test.js.map +0 -1
  518. package/dist/lib/shell.d.ts +0 -7
  519. package/dist/lib/shell.d.ts.map +0 -1
  520. package/dist/lib/shell.js +0 -56
  521. package/dist/lib/shell.js.map +0 -1
  522. package/dist/prompts/default.md.bak +0 -77
  523. package/dist/prompts/simple-mentor.md +0 -207
  524. package/dist/providers/github-copilot/converters.d.ts +0 -45
  525. package/dist/providers/github-copilot/converters.d.ts.map +0 -1
  526. package/dist/providers/github-copilot/converters.js +0 -118
  527. package/dist/providers/github-copilot/converters.js.map +0 -1
  528. package/dist/providers/github-copilot/converters.test.d.ts +0 -2
  529. package/dist/providers/github-copilot/converters.test.d.ts.map +0 -1
  530. package/dist/providers/github-copilot/converters.test.js +0 -162
  531. package/dist/providers/github-copilot/converters.test.js.map +0 -1
  532. package/dist/providers/github-copilot/github-copilot.provider.d.ts +0 -2
  533. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +0 -1
  534. package/dist/providers/github-copilot/github-copilot.provider.js +0 -75
  535. package/dist/providers/github-copilot/github-copilot.provider.js.map +0 -1
  536. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +0 -2
  537. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +0 -1
  538. package/dist/providers/github-copilot/github-copilot.provider.test.js +0 -26
  539. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +0 -1
  540. package/dist/providers/github-copilot/index.d.ts +0 -4
  541. package/dist/providers/github-copilot/index.d.ts.map +0 -1
  542. package/dist/providers/github-copilot/index.js +0 -4
  543. package/dist/providers/github-copilot/index.js.map +0 -1
  544. package/dist/providers/github-copilot/model-direct.d.ts +0 -34
  545. package/dist/providers/github-copilot/model-direct.d.ts.map +0 -1
  546. package/dist/providers/github-copilot/model-direct.js +0 -443
  547. package/dist/providers/github-copilot/model-direct.js.map +0 -1
  548. package/dist/providers/github-copilot/model.d.ts +0 -24
  549. package/dist/providers/github-copilot/model.d.ts.map +0 -1
  550. package/dist/providers/github-copilot/model.delta.test.d.ts +0 -2
  551. package/dist/providers/github-copilot/model.delta.test.d.ts.map +0 -1
  552. package/dist/providers/github-copilot/model.delta.test.js +0 -15
  553. package/dist/providers/github-copilot/model.delta.test.js.map +0 -1
  554. package/dist/providers/github-copilot/model.js +0 -581
  555. package/dist/providers/github-copilot/model.js.map +0 -1
  556. package/dist/providers/github-copilot/provider.d.ts +0 -20
  557. package/dist/providers/github-copilot/provider.d.ts.map +0 -1
  558. package/dist/providers/github-copilot/provider.js +0 -30
  559. package/dist/providers/github-copilot/provider.js.map +0 -1
  560. package/dist/providers/github-copilot/provider.test.d.ts +0 -2
  561. package/dist/providers/github-copilot/provider.test.d.ts.map +0 -1
  562. package/dist/providers/github-copilot/provider.test.js +0 -52
  563. package/dist/providers/github-copilot/provider.test.js.map +0 -1
  564. package/dist/providers/github-copilot/utils.d.ts +0 -20
  565. package/dist/providers/github-copilot/utils.d.ts.map +0 -1
  566. package/dist/providers/github-copilot/utils.js +0 -142
  567. package/dist/providers/github-copilot/utils.js.map +0 -1
  568. package/dist/providers/github-copilot/utils.test.d.ts +0 -2
  569. package/dist/providers/github-copilot/utils.test.d.ts.map +0 -1
  570. package/dist/providers/github-copilot/utils.test.js +0 -21
  571. package/dist/providers/github-copilot/utils.test.js.map +0 -1
  572. package/dist/providers/openrouter/merge-messages.test.d.ts +0 -2
  573. package/dist/providers/openrouter/merge-messages.test.d.ts.map +0 -1
  574. package/dist/providers/openrouter/merge-messages.test.js +0 -83
  575. package/dist/providers/openrouter/merge-messages.test.js.map +0 -1
  576. package/dist/providers/openrouter.history.test.d.ts +0 -2
  577. package/dist/providers/openrouter.history.test.d.ts.map +0 -1
  578. package/dist/providers/openrouter.history.test.js +0 -533
  579. package/dist/providers/openrouter.history.test.js.map +0 -1
  580. package/dist/reproduce_issue.test.d.ts +0 -2
  581. package/dist/reproduce_issue.test.d.ts.map +0 -1
  582. package/dist/reproduce_issue.test.js +0 -31
  583. package/dist/reproduce_issue.test.js.map +0 -1
  584. package/dist/safety-checker.js +0 -57
  585. package/dist/services/conversation-service.test.js +0 -190
  586. package/dist/services/conversation-session.usage.test.d.ts +0 -2
  587. package/dist/services/conversation-session.usage.test.d.ts.map +0 -1
  588. package/dist/services/conversation-session.usage.test.js +0 -59
  589. package/dist/services/conversation-session.usage.test.js.map +0 -1
  590. package/dist/test-search-tool.d.ts +0 -2
  591. package/dist/test-search-tool.d.ts.map +0 -1
  592. package/dist/test-search-tool.js +0 -36
  593. package/dist/test-search-tool.js.map +0 -1
  594. package/dist/tools/bash.d.ts +0 -10
  595. package/dist/tools/bash.d.ts.map +0 -1
  596. package/dist/tools/bash.js +0 -55
  597. package/dist/tools/bash.js.map +0 -1
  598. package/dist/types/messages.d.ts +0 -29
  599. package/dist/types/messages.d.ts.map +0 -1
  600. package/dist/types/messages.js +0 -2
  601. package/dist/types/messages.js.map +0 -1
  602. package/dist/utils/command-safety.d.ts +0 -21
  603. package/dist/utils/command-safety.d.ts.map +0 -1
  604. package/dist/utils/command-safety.js +0 -702
  605. package/dist/utils/command-safety.js.map +0 -1
  606. package/dist/utils/extract-command-messages.repro.test.d.ts +0 -2
  607. package/dist/utils/extract-command-messages.repro.test.d.ts.map +0 -1
  608. package/dist/utils/extract-command-messages.repro.test.js +0 -31
  609. package/dist/utils/extract-command-messages.repro.test.js.map +0 -1
  610. package/dist/utils/extract-command-messages.test.js +0 -57
  611. package/dist/utils/message-utils.d.ts +0 -17
  612. package/dist/utils/message-utils.d.ts.map +0 -1
  613. package/dist/utils/message-utils.js +0 -52
  614. package/dist/utils/message-utils.js.map +0 -1
  615. package/dist/utils/message-utils.test.d.ts +0 -2
  616. package/dist/utils/message-utils.test.d.ts.map +0 -1
  617. package/dist/utils/message-utils.test.js +0 -48
  618. package/dist/utils/message-utils.test.js.map +0 -1
@@ -1,207 +0,0 @@
1
- You are an interactive CLI tool working collaboratively with a mentor model. You are the eyes and hands; the mentor is a peer reviewer who challenges your thinking.
2
-
3
- **CRITICAL RULE**: Do quick reconnaissance first, then consult mentor with findings. Come with specific findings and questions, not open-ended requests. The mentor will challenge your assumptions and probe for gaps.
4
-
5
- # Three Participants
6
-
7
- This conversation has three distinct participants:
8
-
9
- 1. **You (AI Assistant)**: You are the hands and eyes - you have access to all the tools (read_file, find_files, grep, search_replace, Shell). You explore the codebase and execute changes.
10
-
11
- 2. **User (Real Human)**: The human who gives you tasks and requirements. They are the customer/stakeholder who defines what needs to be done.
12
-
13
- 3. **Mentor (Smarter AI)**: A separate, more powerful AI model that acts as your peer reviewer and strategic advisor. The mentor does NOT have access to the codebase, tools, your thinking process, or files you have read - they rely entirely on what you share in your question. Use the "ask_mentor" tool to consult with them.
14
-
15
- **IMPORTANT**: Do NOT confuse the User with the Mentor. When the User gives you a task, you explore first, then consult the Mentor (not the User) for strategic guidance. Only ask the User for clarification on requirements, not technical approach.
16
-
17
- # Core Principles
18
-
19
- - **Explore first, then collaborate**: Do initial reconnaissance (2-3 targeted searches), then consult mentor with findings
20
- - **Read before editing**: NEVER modify code you haven't read first
21
- - **Follow existing patterns**: Match the codebase's style, conventions, and practices
22
- - **Minimal changes**: Only make requested changes, no extras or improvements
23
- - **Complete tasks**: Finish what you start, don't stop mid-task
24
- - **Parallel tools**: Call independent tools together for better performance
25
-
26
- # Workflow
27
-
28
- 1. **New task from user** → Do quick reconnaissance (2-3 targeted searches to gather initial context)
29
- 2. **Consult Mentor** → Share findings, proposed approach, and confidence level (high/medium/low)
30
- 3. **Implement** → After mentor approval, read files with read_file, make changes with search_replace, run tests
31
- 4. **When blocked** → Consult Mentor for alternative approach
32
- 5. **Unclear requirements** → Ask user for clarification
33
-
34
- **IMPORTANT**: Come to mentor with findings and specific questions, not open-ended requests. Expect pushback—the mentor will challenge your assumptions, probe for gaps, and suggest alternatives. This is peer review, not rubber-stamping.
35
-
36
- # What NOT to Do
37
-
38
- - Over-engineer or add unrequested features
39
- - Add error handling for impossible scenarios
40
- - Create abstractions for one-time operations
41
- - Add comments/types to unchanged code
42
- - Keep unused code with hacks like `_vars` or `// removed`
43
-
44
- # Error Handling
45
-
46
- - Try different approaches, don't repeat failures
47
- - After 2 failures on same operation, consult Mentor for guidance
48
- - When stuck, describe what you tried and ask Mentor for alternative approach
49
-
50
- # Communication
51
-
52
- - Be concise (terminal output)
53
- - Output text directly, never via command outputs (echo, comments)
54
-
55
- # Planning Complex Tasks
56
-
57
- For multi-step tasks, state your plan in plain text before executing:
58
-
59
- - List the steps you'll take (numbered or bulleted)
60
- - Update the user as you complete each step
61
- - Keep the plan concise and actionable
62
-
63
- Example: "I'll tackle this in 3 steps: 1) Search for the auth module, 2) Read the current implementation, 3) Add the new validation logic."
64
-
65
- # Tools
66
-
67
- ## read_file
68
-
69
- Read file content with line numbers (1-indexed). Supports reading specific line ranges.
70
-
71
- - Use for reading entire files or specific sections
72
- - Automatically adds line numbers (like `cat -n`)
73
- - Supports `start_line` and `end_line` for partial reads
74
- - Prefer this over Shell commands like `sed` or `cat`
75
-
76
- ## find_files
77
-
78
- Search for files by name or glob pattern in the workspace.
79
-
80
- - Use for finding files by pattern (e.g., `*.ts`, `**/*.test.ts`)
81
- - Supports glob patterns for flexible matching
82
- - Returns up to 50 results by default (configurable with `max_results`)
83
- - Prefer this over Shell commands like `ls` or `rg --files`
84
-
85
- ## search_replace
86
-
87
- Modify files with exact text replacement.
88
-
89
- - Include surrounding context (whitespace, indentation) for accuracy
90
- - `replace_all: true` updates all occurrences; `false` expects single match
91
- - For large replacements, include 3+ lines of context
92
-
93
- ## grep
94
-
95
- Search patterns across files. Always use before editing.
96
-
97
- - Be specific: `function myFunc(` not just `myFunc`
98
- - Use `file_pattern` (e.g., `*.ts`) to narrow scope
99
- - grep uses `rg` under the hood
100
- - Use for finding code patterns, not file names (use find_files instead)
101
-
102
- ## Shell
103
-
104
- Execute shell commands (tests, builds, git, dependencies).
105
-
106
- - Use for running tests, builds, git operations, package management
107
- - Single commands preferred; provide `timeout_ms` for long operations
108
- - For reading files, use read_file tool instead
109
- - For finding files, use find_files tool instead
110
-
111
- ## ask_mentor
112
-
113
- Your mentor is your strategic partner for complex decisions and guidance. They are a peer reviewer who will challenge your thinking.
114
-
115
- **Mentor has**: Project context (AGENTS.md, environment), conversation memory, architectural knowledge
116
-
117
- **CRITICAL: Your mentor is working REMOTELY and does NOT have access to the codebase.** They cannot see your thinking process, tool results, file contents, or search outputs. You must explicitly share all relevant information in your messages - treat it like explaining to someone over a phone call who can't see your screen.
118
-
119
- ### When to ask_mentor (REQUIRED)
120
-
121
- 1. **After initial reconnaissance** → Share findings and get validation on approach before implementing
122
- 2. **Multiple valid approaches** → Get guidance on trade-offs and best fit
123
- 3. **After 2 failed attempts** → Get alternative approach
124
- 4. **Architectural uncertainty** → Validate impact before proceeding
125
-
126
- **Critical**: Always consult after gathering initial context and before implementing significant changes.
127
-
128
- ### How to ask_mentor
129
-
130
- **IMPORTANT**: Think of this as a phone call with a remote colleague who can't see your screen. They need you to describe everything you're looking at. Come with findings, not open-ended questions.
131
-
132
- **What to include:**
133
- - **User's goal**: State clearly and completely what the user wants
134
- - **What you found**: File paths, relevant code snippets, current patterns
135
- - **What's unclear or missing**: Specific unknowns or gaps
136
- - **Your proposed approach**: Present your recommendation or options
137
- - **Your confidence level**: High/medium/low on the proposed approach
138
-
139
- **Expect pushback.** The mentor will challenge your assumptions, probe for gaps, and suggest alternatives. This is peer review, not rubber-stamping.
140
-
141
- **Example:**
142
- "User wants to add dark mode support to the app. I did a quick search and found a ThemeProvider at src/context/ThemeContext.tsx that manages CSS variables like `--background-color` and `--text-color`. The provider currently has a fixed 'light' theme. There's also a config in src/styles/theme.css with the CSS variable definitions. I propose extending this existing ThemeProvider to toggle between light/dark themes rather than creating a new system. Confidence: High. Does this approach make sense or should I consider alternatives?"
143
-
144
- # Codebase Exploration
145
-
146
- ## Quick Decision Tree
147
-
148
- 1. Know file path? → read_file directly
149
- 2. Know general area? → find_files with pattern, then grep or read_file
150
- 3. Looking for specific symbol? → grep with pattern (e.g., `"class UserService"`)
151
- 4. New codebase? → find_files to map structure, then grep to narrow
152
-
153
- ## Tool Selection Tips
154
-
155
- - Start with find_files to locate files by pattern
156
- - Use grep to find specific code patterns across files
157
- - Use read_file to view complete file content with line numbers
158
- - Keep a tight find → search → read → edit loop; avoid broad scans
159
- - Prefer small, surgical replacements with stable context
160
- - After 2 dead-end searches, pivot symbols, globs, or entry points
161
-
162
- ## Key Strategies
163
-
164
- - **Progressive narrowing**: find_files → grep content → read_file sections
165
- - **Use glob patterns in find_files**:
166
- - Good: `"*.ts"`, `"**/*.test.ts"` | Bad: overly broad patterns
167
- - **Use file_pattern in grep**:
168
- - Good: `"*.{ts,tsx,js,jsx}"` | Bad: `null`
169
- - **Specific patterns in grep**: `"function handleLogin"` not `"login"`
170
- - **Stop after 2 failed searches**: Reconsider approach, try different entry point
171
-
172
- ## State Your Intent
173
-
174
- Before exploring, briefly state why (e.g., "Searching for UserService to understand auth flow")
175
-
176
- # Examples
177
-
178
- **Fix login button styling**:
179
-
180
- 1. find_files or grep → find LoginButton component
181
- 2. read_file → view file to understand current styles
182
- 3. **ask_mentor** → "User wants to fix the login button styling - it's currently too small and hard to read. I found the LoginButton component at src/components/auth/LoginButton.tsx. It currently uses inline styles like this: `style={{padding: '4px', fontSize: '12px'}}`. The component is a simple button element. I see other components in this directory use inline styles too. I propose updating the inline styles directly to increase padding and font size. Confidence: Medium - not sure if there's a design system I should follow instead. Should I proceed with inline style updates or is there a better approach?"
183
- 4. search_replace → update styles (per mentor's guidance)
184
- 5. Shell → run tests
185
-
186
- **Add dark mode feature**:
187
-
188
- 1. find_files/grep → search for theme infrastructure
189
- 2. read_file → view ThemeProvider and theme config
190
- 3. **ask_mentor** → "User wants to add dark mode support to the app. I found a ThemeProvider at src/context/ThemeContext.tsx that manages CSS variables like `--background-color` and `--text-color`. The provider currently has a fixed 'light' theme. There's also a config in src/styles/theme.css with the CSS variable definitions. I propose extending this existing ThemeProvider to toggle between light/dark themes rather than creating a new theming system. Confidence: High. Does this approach make sense?"
191
- 4. search_replace → implement changes (per mentor's direction)
192
- 5. Shell → verify changes
193
-
194
- **Add logging to function**:
195
-
196
- 1. grep → find function
197
- 2. read_file → view function and surrounding context
198
- 3. **ask_mentor** → "User wants logging added to the handleSubmit function. Found handleSubmit at src/handlers/form.ts:45. Here's the current function:
199
- ```typescript
200
- async function handleSubmit(data: FormData) {
201
- const result = await api.submit(data);
202
- return result;
203
- }
204
- ```
205
- I also found that other files in src/handlers/ use console.log() for logging, but I noticed there's a logger service at src/services/logger.ts. I propose following the existing console.log pattern for consistency with surrounding code. Confidence: Medium - the logger service might be the better practice. Should I use console.log to match existing patterns or switch to the logger service?"
206
- 4. search_replace → add logging statements (per mentor's guidance)
207
- 5. Shell → test changes
@@ -1,45 +0,0 @@
1
- import type { ModelRequest } from '@openai/agents-core';
2
- import type { ILoggingService } from '../../services/service-interfaces.js';
3
- /**
4
- * Copilot SDK message format
5
- */
6
- export interface CopilotMessage {
7
- role: 'system' | 'user' | 'assistant' | 'tool';
8
- content: string;
9
- name?: string;
10
- tool_call_id?: string;
11
- tool_calls?: Array<{
12
- id: string;
13
- type: 'function';
14
- function: {
15
- name: string;
16
- arguments: string;
17
- };
18
- }>;
19
- }
20
- /**
21
- * Convert SDK ModelRequest to Copilot SDK message format.
22
- * Maps the conversation history from the SDK format to what Copilot expects.
23
- */
24
- export declare function buildMessagesFromRequest(request: ModelRequest, modelId: string, loggingService: ILoggingService): CopilotMessage[];
25
- /**
26
- * Extract function tools from the ModelRequest.
27
- * Filters out SDK-specific tools and returns only function tools.
28
- */
29
- export declare function extractFunctionToolsFromRequest(request: ModelRequest): Array<{
30
- type: 'function';
31
- function: {
32
- name: string;
33
- description: string;
34
- parameters: unknown;
35
- };
36
- }>;
37
- /**
38
- * Normalize usage data to SDK format
39
- */
40
- export declare function normalizeUsage(usage: any): {
41
- inputTokens: number;
42
- outputTokens: number;
43
- totalTokens: number;
44
- };
45
- //# sourceMappingURL=converters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../../source/providers/github-copilot/converters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAkC5E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;SACrB,CAAC;KACL,CAAC,CAAC;CACN;AA8BD;;;GAGG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,eAAe,GAChC,cAAc,EAAE,CA+DlB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,YAAY,GACtB,KAAK,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,CAAC,CAenG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACvB,CAMA"}
@@ -1,118 +0,0 @@
1
- /**
2
- * Extract text from various content item formats
3
- */
4
- function extractTextFromContent(content) {
5
- if (!content)
6
- return '';
7
- if (typeof content === 'string') {
8
- return content;
9
- }
10
- if (Array.isArray(content)) {
11
- return content
12
- .map(item => {
13
- if (item.type === 'input_text' && 'text' in item) {
14
- return item.text;
15
- }
16
- if (item.type === 'output_text' && 'text' in item) {
17
- return item.text;
18
- }
19
- return '';
20
- })
21
- .filter(Boolean)
22
- .join('\n');
23
- }
24
- return '';
25
- }
26
- /**
27
- * Convert SDK ModelRequest to Copilot SDK message format.
28
- * Maps the conversation history from the SDK format to what Copilot expects.
29
- */
30
- export function buildMessagesFromRequest(request, modelId, loggingService) {
31
- const messages = [];
32
- // Add system instructions if present
33
- if (request.systemInstructions) {
34
- messages.push({
35
- role: 'system',
36
- content: request.systemInstructions,
37
- });
38
- }
39
- // Process input items (conversation history)
40
- if (request.input && Array.isArray(request.input)) {
41
- for (const item of request.input) {
42
- const outputItem = item;
43
- if (outputItem.type === 'message') {
44
- const role = outputItem.role;
45
- const content = extractTextFromContent(outputItem.content);
46
- if (content) {
47
- messages.push({ role, content });
48
- }
49
- }
50
- else if (outputItem.type === 'function_call') {
51
- // Tool call made by assistant
52
- const lastMessage = messages[messages.length - 1];
53
- const toolCall = {
54
- id: outputItem.callId || `call_${Date.now()}`,
55
- type: 'function',
56
- function: {
57
- name: outputItem.name || '',
58
- arguments: outputItem.arguments || '{}',
59
- },
60
- };
61
- if (lastMessage?.role === 'assistant' && lastMessage.tool_calls) {
62
- lastMessage.tool_calls.push(toolCall);
63
- }
64
- else {
65
- messages.push({
66
- role: 'assistant',
67
- content: '',
68
- tool_calls: [toolCall],
69
- });
70
- }
71
- }
72
- else if (outputItem.type === 'function_call_output') {
73
- // Tool result
74
- messages.push({
75
- role: 'tool',
76
- content: typeof outputItem.output === 'string'
77
- ? outputItem.output
78
- : JSON.stringify(outputItem.output),
79
- tool_call_id: outputItem.callId || '',
80
- });
81
- }
82
- }
83
- }
84
- loggingService.debug('GitHubCopilot built messages', {
85
- messageCount: messages.length,
86
- modelId,
87
- });
88
- return messages;
89
- }
90
- /**
91
- * Extract function tools from the ModelRequest.
92
- * Filters out SDK-specific tools and returns only function tools.
93
- */
94
- export function extractFunctionToolsFromRequest(request) {
95
- if (!request.tools || !Array.isArray(request.tools)) {
96
- return [];
97
- }
98
- return request.tools
99
- .filter((tool) => tool.type === 'function')
100
- .map((tool) => ({
101
- type: 'function',
102
- function: {
103
- name: tool.name,
104
- description: tool.description || '',
105
- parameters: tool.parameters || { type: 'object', properties: {} },
106
- },
107
- }));
108
- }
109
- /**
110
- * Normalize usage data to SDK format
111
- */
112
- export function normalizeUsage(usage) {
113
- const inputTokens = usage?.input_tokens ?? usage?.prompt_tokens ?? 0;
114
- const outputTokens = usage?.output_tokens ?? usage?.completion_tokens ?? 0;
115
- const totalTokens = usage?.total_tokens ?? inputTokens + outputTokens;
116
- return { inputTokens, outputTokens, totalTokens };
117
- }
118
- //# sourceMappingURL=converters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../../source/providers/github-copilot/converters.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=converters.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.test.d.ts","sourceRoot":"","sources":["../../../source/providers/github-copilot/converters.test.ts"],"names":[],"mappings":""}
@@ -1,162 +0,0 @@
1
- import test from 'ava';
2
- import { buildMessagesFromRequest, extractFunctionToolsFromRequest, normalizeUsage, } from './converters.js';
3
- // Mock logging service
4
- const mockLoggingService = {
5
- info: () => { },
6
- warn: () => { },
7
- error: () => { },
8
- debug: () => { },
9
- security: () => { },
10
- setCorrelationId: () => { },
11
- getCorrelationId: () => undefined,
12
- clearCorrelationId: () => { },
13
- };
14
- test('buildMessagesFromRequest - includes system instructions', (t) => {
15
- const request = {
16
- systemInstructions: 'You are a helpful assistant',
17
- input: [],
18
- };
19
- const messages = buildMessagesFromRequest(request, 'gpt-4o', mockLoggingService);
20
- t.is(messages.length, 1);
21
- t.is(messages[0].role, 'system');
22
- t.is(messages[0].content, 'You are a helpful assistant');
23
- });
24
- test('buildMessagesFromRequest - converts user message', (t) => {
25
- const request = {
26
- input: [
27
- {
28
- type: 'message',
29
- role: 'user',
30
- content: [{ type: 'input_text', text: 'Hello' }],
31
- },
32
- ],
33
- };
34
- const messages = buildMessagesFromRequest(request, 'gpt-4o', mockLoggingService);
35
- t.is(messages.length, 1);
36
- t.is(messages[0].role, 'user');
37
- t.is(messages[0].content, 'Hello');
38
- });
39
- test('buildMessagesFromRequest - converts assistant message with string content', (t) => {
40
- const request = {
41
- input: [
42
- {
43
- type: 'message',
44
- role: 'assistant',
45
- content: 'Hello back!',
46
- },
47
- ],
48
- };
49
- const messages = buildMessagesFromRequest(request, 'gpt-4o', mockLoggingService);
50
- t.is(messages.length, 1);
51
- t.is(messages[0].role, 'assistant');
52
- t.is(messages[0].content, 'Hello back!');
53
- });
54
- test('buildMessagesFromRequest - converts function call to tool_calls', (t) => {
55
- const request = {
56
- input: [
57
- {
58
- type: 'function_call',
59
- callId: 'call_123',
60
- name: 'shell',
61
- arguments: '{"command": "ls"}',
62
- },
63
- ],
64
- };
65
- const messages = buildMessagesFromRequest(request, 'gpt-4o', mockLoggingService);
66
- t.is(messages.length, 1);
67
- t.is(messages[0].role, 'assistant');
68
- t.truthy(messages[0].tool_calls);
69
- t.is(messages[0].tool_calls.length, 1);
70
- t.is(messages[0].tool_calls[0].id, 'call_123');
71
- t.is(messages[0].tool_calls[0].function.name, 'shell');
72
- t.is(messages[0].tool_calls[0].function.arguments, '{"command": "ls"}');
73
- });
74
- test('buildMessagesFromRequest - converts function call output to tool message', (t) => {
75
- const request = {
76
- input: [
77
- {
78
- type: 'function_call',
79
- callId: 'call_123',
80
- name: 'shell',
81
- arguments: '{}',
82
- },
83
- {
84
- type: 'function_call_output',
85
- callId: 'call_123',
86
- output: 'file1.txt\nfile2.txt',
87
- },
88
- ],
89
- };
90
- const messages = buildMessagesFromRequest(request, 'gpt-4o', mockLoggingService);
91
- t.is(messages.length, 2);
92
- t.is(messages[1].role, 'tool');
93
- t.is(messages[1].content, 'file1.txt\nfile2.txt');
94
- t.is(messages[1].tool_call_id, 'call_123');
95
- });
96
- test('extractFunctionToolsFromRequest - extracts function tools', (t) => {
97
- const request = {
98
- tools: [
99
- {
100
- type: 'function',
101
- name: 'shell',
102
- description: 'Execute a shell command',
103
- parameters: { type: 'object', properties: { command: { type: 'string' } } },
104
- },
105
- {
106
- type: 'function',
107
- name: 'grep',
108
- description: 'Search files',
109
- parameters: { type: 'object', properties: {} },
110
- },
111
- ],
112
- };
113
- const tools = extractFunctionToolsFromRequest(request);
114
- t.is(tools.length, 2);
115
- t.is(tools[0].function.name, 'shell');
116
- t.is(tools[0].function.description, 'Execute a shell command');
117
- t.is(tools[1].function.name, 'grep');
118
- });
119
- test('extractFunctionToolsFromRequest - returns empty array when no tools', (t) => {
120
- const request = {};
121
- const tools = extractFunctionToolsFromRequest(request);
122
- t.deepEqual(tools, []);
123
- });
124
- test('extractFunctionToolsFromRequest - filters non-function tools', (t) => {
125
- const request = {
126
- tools: [
127
- { type: 'function', name: 'shell', description: 'test', parameters: {} },
128
- { type: 'computer', name: 'browser' }, // Should be filtered out
129
- ],
130
- };
131
- const tools = extractFunctionToolsFromRequest(request);
132
- t.is(tools.length, 1);
133
- t.is(tools[0].function.name, 'shell');
134
- });
135
- test('normalizeUsage - normalizes SDK format', (t) => {
136
- const usage = {
137
- input_tokens: 100,
138
- output_tokens: 50,
139
- };
140
- const normalized = normalizeUsage(usage);
141
- t.is(normalized.inputTokens, 100);
142
- t.is(normalized.outputTokens, 50);
143
- t.is(normalized.totalTokens, 150);
144
- });
145
- test('normalizeUsage - normalizes OpenAI format', (t) => {
146
- const usage = {
147
- prompt_tokens: 100,
148
- completion_tokens: 50,
149
- total_tokens: 150,
150
- };
151
- const normalized = normalizeUsage(usage);
152
- t.is(normalized.inputTokens, 100);
153
- t.is(normalized.outputTokens, 50);
154
- t.is(normalized.totalTokens, 150);
155
- });
156
- test('normalizeUsage - handles empty usage', (t) => {
157
- const normalized = normalizeUsage({});
158
- t.is(normalized.inputTokens, 0);
159
- t.is(normalized.outputTokens, 0);
160
- t.is(normalized.totalTokens, 0);
161
- });
162
- //# sourceMappingURL=converters.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.test.js","sourceRoot":"","sources":["../../../source/providers/github-copilot/converters.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=github-copilot.provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-copilot.provider.d.ts","sourceRoot":"","sources":["../../../source/providers/github-copilot/github-copilot.provider.ts"],"names":[],"mappings":""}
@@ -1,75 +0,0 @@
1
- import { Runner } from '@openai/agents';
2
- import { registerProvider } from '../registry.js';
3
- import { getClient } from './model.js';
4
- import { GitHubCopilotProvider } from './provider.js';
5
- import { isCopilotCliAvailable, isGhAuthenticated, isCopilotCliAvailableAsync, isGhAuthenticatedAsync, } from './utils.js';
6
- let modelsCache = null;
7
- /**
8
- * Fetch available models from GitHub Copilot.
9
- * The SDK exposes available models at runtime.
10
- */
11
- async function fetchGitHubCopilotModels(deps, _fetchImpl) {
12
- const { loggingService } = deps;
13
- // Return cached models if available
14
- if (modelsCache) {
15
- return modelsCache;
16
- }
17
- // Check if Copilot CLI is available
18
- if (!(await isCopilotCliAvailableAsync())) {
19
- const error = 'GitHub Copilot CLI not available. Install it via `npm install -g @github/copilot-cli` or `gh extension install github/gh-copilot`.';
20
- loggingService.warn(error);
21
- throw new Error(error);
22
- }
23
- if (!(await isGhAuthenticatedAsync())) {
24
- const error = 'GitHub Copilot CLI not authenticated. Run `copilot auth` or `gh auth login` to authenticate.';
25
- loggingService.warn(error);
26
- throw new Error(error);
27
- }
28
- try {
29
- const client = await getClient();
30
- const models = await client.listModels();
31
- modelsCache = models.map((model) => ({
32
- id: model.id,
33
- name: model.name || model.id,
34
- }));
35
- return modelsCache;
36
- }
37
- catch (err) {
38
- loggingService.error('Failed to fetch GitHub Copilot models', {
39
- error: err.message,
40
- });
41
- // Return default models as fallback but don't cache them permanently
42
- return [
43
- { id: 'gpt-4o', name: 'GPT-4o' },
44
- { id: 'gpt-4o-mini', name: 'GPT-4o Mini' },
45
- { id: 'claude-3.5-sonnet', name: 'Claude 3.5 Sonnet' },
46
- { id: 'o1-preview', name: 'O1 Preview' },
47
- { id: 'o1-mini', name: 'O1 Mini' },
48
- ];
49
- }
50
- }
51
- // Register GitHub Copilot provider
52
- registerProvider({
53
- id: 'github-copilot',
54
- label: 'GitHub Copilot',
55
- createRunner: ({ settingsService, loggingService }) => {
56
- // Check if Copilot CLI is available
57
- if (!isCopilotCliAvailable()) {
58
- loggingService.warn('GitHub Copilot CLI not available. Install it via `npm install -g @github/copilot-cli` or `gh extension install github/gh-copilot`.');
59
- return null;
60
- }
61
- if (!isGhAuthenticated()) {
62
- loggingService.warn('GitHub Copilot CLI not authenticated. Run `copilot auth` or `gh auth login` to authenticate.');
63
- return null;
64
- }
65
- return new Runner({
66
- modelProvider: new GitHubCopilotProvider({
67
- settingsService,
68
- loggingService,
69
- }),
70
- });
71
- },
72
- fetchModels: fetchGitHubCopilotModels,
73
- sensitiveSettingKeys: [],
74
- });
75
- //# sourceMappingURL=github-copilot.provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-copilot.provider.js","sourceRoot":"","sources":["../../../source/providers/github-copilot/github-copilot.provider.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import './github-copilot.provider.js';
2
- //# sourceMappingURL=github-copilot.provider.test.d.ts.map