@qduc/term2 0.1.3 → 0.1.4

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 (322) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +5 -0
  3. package/dist/agent.js.map +1 -1
  4. package/dist/app.model-command-feedback.test.d.ts +2 -0
  5. package/dist/app.model-command-feedback.test.d.ts.map +1 -0
  6. package/dist/app.model-command-feedback.test.js +19 -0
  7. package/dist/app.model-command-feedback.test.js.map +1 -0
  8. package/dist/cli.js +2 -1
  9. package/dist/cli.js.map +1 -1
  10. package/dist/components/ChatMessage.js +1 -1
  11. package/dist/components/ChatMessage.js.map +1 -1
  12. package/dist/components/InputBox.js +1 -1
  13. package/dist/components/InputBox.js.map +1 -1
  14. package/dist/components/MarkdownRenderer.js +1 -1
  15. package/dist/components/MarkdownRenderer.js.map +1 -1
  16. package/dist/components/MentorMode.test.d.ts +2 -0
  17. package/dist/components/MentorMode.test.d.ts.map +1 -0
  18. package/dist/components/MentorMode.test.js.map +1 -0
  19. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +2 -0
  20. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +1 -0
  21. package/dist/components/ModelSelectionMenu.error-tabs.test.js +18 -0
  22. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +1 -0
  23. package/dist/components/SettingsSelectionMenu.js +1 -1
  24. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  25. package/dist/components/SlashCommandMenu.js +2 -2
  26. package/dist/components/SlashCommandMenu.js.map +1 -1
  27. package/dist/components/TextInput.d.ts.map +1 -1
  28. package/dist/components/TextInput.js +1 -2
  29. package/dist/components/TextInput.js.map +1 -1
  30. package/dist/components/TextInput.test.js.map +1 -1
  31. package/dist/debug-schema.d.ts +2 -0
  32. package/dist/debug-schema.d.ts.map +1 -0
  33. package/dist/debug-schema.js +22 -0
  34. package/dist/debug-schema.js.map +1 -0
  35. package/dist/hooks/use-conversation.d.ts.map +1 -1
  36. package/dist/hooks/use-conversation.js +53 -508
  37. package/dist/hooks/use-conversation.js.map +1 -1
  38. package/dist/hooks/use-model-selection.test.d.ts +2 -0
  39. package/dist/hooks/use-model-selection.test.d.ts.map +1 -0
  40. package/dist/hooks/use-model-selection.test.js +28 -0
  41. package/dist/hooks/use-model-selection.test.js.map +1 -0
  42. package/dist/hooks/use-path-completion.test.d.ts +2 -0
  43. package/dist/hooks/use-path-completion.test.d.ts.map +1 -0
  44. package/dist/hooks/use-path-completion.test.js +29 -0
  45. package/dist/hooks/use-path-completion.test.js.map +1 -0
  46. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  47. package/dist/hooks/use-settings-completion.js +2 -0
  48. package/dist/hooks/use-settings-completion.js.map +1 -1
  49. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  50. package/dist/hooks/use-settings-value-completion.js +1 -0
  51. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  52. package/dist/lib/editor-impl.test.d.ts +2 -0
  53. package/dist/lib/editor-impl.test.d.ts.map +1 -0
  54. package/dist/lib/editor-impl.test.js +188 -0
  55. package/dist/lib/editor-impl.test.js.map +1 -0
  56. package/dist/lib/openai-agent-client.public-methods.test.d.ts +2 -0
  57. package/dist/lib/openai-agent-client.public-methods.test.d.ts.map +1 -0
  58. package/dist/lib/openai-agent-client.public-methods.test.js +188 -0
  59. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -0
  60. package/dist/prompts/default.md.bak +77 -0
  61. package/dist/prompts/simple-mentor.md +0 -8
  62. package/dist/providers/github-copilot/converters.d.ts +45 -0
  63. package/dist/providers/github-copilot/converters.d.ts.map +1 -0
  64. package/dist/providers/github-copilot/converters.js +118 -0
  65. package/dist/providers/github-copilot/converters.js.map +1 -0
  66. package/dist/providers/github-copilot/converters.test.d.ts +2 -0
  67. package/dist/providers/github-copilot/converters.test.d.ts.map +1 -0
  68. package/dist/providers/github-copilot/converters.test.js +162 -0
  69. package/dist/providers/github-copilot/converters.test.js.map +1 -0
  70. package/dist/providers/github-copilot/github-copilot.provider.d.ts +2 -0
  71. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +1 -0
  72. package/dist/providers/github-copilot/github-copilot.provider.js +75 -0
  73. package/dist/providers/github-copilot/github-copilot.provider.js.map +1 -0
  74. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +2 -0
  75. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +1 -0
  76. package/dist/providers/github-copilot/github-copilot.provider.test.js +26 -0
  77. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +1 -0
  78. package/dist/providers/github-copilot/index.d.ts +4 -0
  79. package/dist/providers/github-copilot/index.d.ts.map +1 -0
  80. package/dist/providers/github-copilot/index.js +4 -0
  81. package/dist/providers/github-copilot/index.js.map +1 -0
  82. package/dist/providers/github-copilot/model-direct.d.ts +34 -0
  83. package/dist/providers/github-copilot/model-direct.d.ts.map +1 -0
  84. package/dist/providers/github-copilot/model-direct.js +443 -0
  85. package/dist/providers/github-copilot/model-direct.js.map +1 -0
  86. package/dist/providers/github-copilot/model.d.ts +24 -0
  87. package/dist/providers/github-copilot/model.d.ts.map +1 -0
  88. package/dist/providers/github-copilot/model.delta.test.d.ts +2 -0
  89. package/dist/providers/github-copilot/model.delta.test.d.ts.map +1 -0
  90. package/dist/providers/github-copilot/model.delta.test.js +15 -0
  91. package/dist/providers/github-copilot/model.delta.test.js.map +1 -0
  92. package/dist/providers/github-copilot/model.js +581 -0
  93. package/dist/providers/github-copilot/model.js.map +1 -0
  94. package/dist/providers/github-copilot/provider.d.ts +20 -0
  95. package/dist/providers/github-copilot/provider.d.ts.map +1 -0
  96. package/dist/providers/github-copilot/provider.js +30 -0
  97. package/dist/providers/github-copilot/provider.js.map +1 -0
  98. package/dist/providers/github-copilot/provider.test.d.ts +2 -0
  99. package/dist/providers/github-copilot/provider.test.d.ts.map +1 -0
  100. package/dist/providers/github-copilot/provider.test.js +52 -0
  101. package/dist/providers/github-copilot/provider.test.js.map +1 -0
  102. package/dist/providers/github-copilot/utils.d.ts +20 -0
  103. package/dist/providers/github-copilot/utils.d.ts.map +1 -0
  104. package/dist/providers/github-copilot/utils.js +142 -0
  105. package/dist/providers/github-copilot/utils.js.map +1 -0
  106. package/dist/providers/github-copilot/utils.test.d.ts +2 -0
  107. package/dist/providers/github-copilot/utils.test.d.ts.map +1 -0
  108. package/dist/providers/github-copilot/utils.test.js +21 -0
  109. package/dist/providers/github-copilot/utils.test.js.map +1 -0
  110. package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -1
  111. package/dist/providers/openrouter/converters.d.ts.map +1 -1
  112. package/dist/providers/openrouter/converters.js +64 -46
  113. package/dist/providers/openrouter/converters.js.map +1 -1
  114. package/dist/providers/openrouter/converters.test.js +13 -12
  115. package/dist/providers/openrouter/converters.test.js.map +1 -1
  116. package/dist/providers/openrouter/merge-messages.test.d.ts +2 -0
  117. package/dist/providers/openrouter/merge-messages.test.d.ts.map +1 -0
  118. package/dist/providers/openrouter/merge-messages.test.js +83 -0
  119. package/dist/providers/openrouter/merge-messages.test.js.map +1 -0
  120. package/dist/providers/openrouter/reasoning-content.test.js.map +1 -1
  121. package/dist/providers/openrouter.history.test.d.ts +2 -0
  122. package/dist/providers/openrouter.history.test.d.ts.map +1 -0
  123. package/dist/providers/openrouter.history.test.js +533 -0
  124. package/dist/providers/openrouter.history.test.js.map +1 -0
  125. package/dist/providers/openrouter.test.js.map +1 -1
  126. package/dist/reproduce_issue.test.d.ts +2 -0
  127. package/dist/reproduce_issue.test.d.ts.map +1 -0
  128. package/dist/reproduce_issue.test.js +31 -0
  129. package/dist/reproduce_issue.test.js.map +1 -0
  130. package/dist/services/conversation-service.test.js +183 -149
  131. package/dist/services/settings-service.d.ts +9 -3
  132. package/dist/services/settings-service.d.ts.map +1 -1
  133. package/dist/services/settings-service.js +14 -0
  134. package/dist/services/settings-service.js.map +1 -1
  135. package/dist/test-search-tool.d.ts +2 -0
  136. package/dist/test-search-tool.d.ts.map +1 -0
  137. package/dist/test-search-tool.js +36 -0
  138. package/dist/test-search-tool.js.map +1 -0
  139. package/dist/tools/edit-healing.d.ts +24 -0
  140. package/dist/tools/edit-healing.d.ts.map +1 -0
  141. package/dist/tools/edit-healing.js +230 -0
  142. package/dist/tools/edit-healing.js.map +1 -0
  143. package/dist/tools/edit-healing.test.d.ts +2 -0
  144. package/dist/tools/edit-healing.test.d.ts.map +1 -0
  145. package/dist/tools/edit-healing.test.js +34 -0
  146. package/dist/tools/edit-healing.test.js.map +1 -0
  147. package/dist/tools/search-replace.d.ts +2 -0
  148. package/dist/tools/search-replace.d.ts.map +1 -1
  149. package/dist/tools/search-replace.js +207 -23
  150. package/dist/tools/search-replace.js.map +1 -1
  151. package/dist/tools/search-replace.test.js +223 -2
  152. package/dist/tools/search-replace.test.js.map +1 -1
  153. package/dist/tools/web-fetch.d.ts +20 -0
  154. package/dist/tools/web-fetch.d.ts.map +1 -0
  155. package/dist/tools/web-fetch.js +300 -0
  156. package/dist/tools/web-fetch.js.map +1 -0
  157. package/dist/tools/web-fetch.test.d.ts +2 -0
  158. package/dist/tools/web-fetch.test.d.ts.map +1 -0
  159. package/dist/tools/web-fetch.test.js +94 -0
  160. package/dist/tools/web-fetch.test.js.map +1 -0
  161. package/dist/utils/command-safety/index.d.ts +2 -2
  162. package/dist/utils/command-safety/index.d.ts.map +1 -1
  163. package/dist/utils/command-safety/index.js +7 -6
  164. package/dist/utils/command-safety/index.js.map +1 -1
  165. package/dist/utils/command-safety.d.ts.map +1 -1
  166. package/dist/utils/command-safety.find.test.js +19 -21
  167. package/dist/utils/command-safety.find.test.js.map +1 -1
  168. package/dist/utils/command-safety.js +364 -10
  169. package/dist/utils/command-safety.js.map +1 -1
  170. package/dist/utils/conversation-event-handler.d.ts +63 -0
  171. package/dist/utils/conversation-event-handler.d.ts.map +1 -0
  172. package/dist/utils/conversation-event-handler.js +132 -0
  173. package/dist/utils/conversation-event-handler.js.map +1 -0
  174. package/dist/utils/conversation-event-handler.test.d.ts +2 -0
  175. package/dist/utils/conversation-event-handler.test.d.ts.map +1 -0
  176. package/dist/utils/conversation-event-handler.test.js +281 -0
  177. package/dist/utils/conversation-event-handler.test.js.map +1 -0
  178. package/dist/utils/conversation-utils.d.ts +41 -0
  179. package/dist/utils/conversation-utils.d.ts.map +1 -0
  180. package/dist/utils/conversation-utils.js +109 -0
  181. package/dist/utils/conversation-utils.js.map +1 -0
  182. package/dist/utils/conversation-utils.test.d.ts +2 -0
  183. package/dist/utils/conversation-utils.test.d.ts.map +1 -0
  184. package/dist/utils/conversation-utils.test.js +190 -0
  185. package/dist/utils/conversation-utils.test.js.map +1 -0
  186. package/dist/utils/extract-command-messages.repro.test.d.ts +2 -0
  187. package/dist/utils/extract-command-messages.repro.test.d.ts.map +1 -0
  188. package/dist/utils/extract-command-messages.repro.test.js +31 -0
  189. package/dist/utils/extract-command-messages.repro.test.js.map +1 -0
  190. package/dist/utils/extract-command-messages.test.js +51 -58
  191. package/dist/utils/ink-render-options.d.ts +9 -0
  192. package/dist/utils/ink-render-options.d.ts.map +1 -0
  193. package/dist/utils/ink-render-options.js +8 -0
  194. package/dist/utils/ink-render-options.js.map +1 -0
  195. package/dist/utils/message-utils.d.ts +17 -0
  196. package/dist/utils/message-utils.d.ts.map +1 -0
  197. package/dist/utils/message-utils.js +52 -0
  198. package/dist/utils/message-utils.js.map +1 -0
  199. package/dist/utils/message-utils.test.d.ts +2 -0
  200. package/dist/utils/message-utils.test.d.ts.map +1 -0
  201. package/dist/utils/message-utils.test.js +48 -0
  202. package/dist/utils/message-utils.test.js.map +1 -0
  203. package/package.json +9 -3
  204. package/dist/agent.lite-mode.test.d.ts +0 -2
  205. package/dist/agent.lite-mode.test.d.ts.map +0 -1
  206. package/dist/agent.lite-mode.test.js +0 -39
  207. package/dist/agent.lite-mode.test.js.map +0 -1
  208. package/dist/debug_ask_mentor.d.ts +0 -2
  209. package/dist/debug_ask_mentor.d.ts.map +0 -1
  210. package/dist/debug_ask_mentor.js +0 -73
  211. package/dist/debug_ask_mentor.js.map +0 -1
  212. package/dist/modes/companion/command-index.d.ts +0 -26
  213. package/dist/modes/companion/command-index.d.ts.map +0 -1
  214. package/dist/modes/companion/command-index.js +0 -50
  215. package/dist/modes/companion/command-index.js.map +0 -1
  216. package/dist/modes/companion/command-index.test.d.ts +0 -2
  217. package/dist/modes/companion/command-index.test.d.ts.map +0 -1
  218. package/dist/modes/companion/command-index.test.js +0 -86
  219. package/dist/modes/companion/command-index.test.js.map +0 -1
  220. package/dist/modes/companion/companion-app.d.ts +0 -12
  221. package/dist/modes/companion/companion-app.d.ts.map +0 -1
  222. package/dist/modes/companion/companion-app.js +0 -297
  223. package/dist/modes/companion/companion-app.js.map +0 -1
  224. package/dist/modes/companion/companion-session.d.ts +0 -63
  225. package/dist/modes/companion/companion-session.d.ts.map +0 -1
  226. package/dist/modes/companion/companion-session.js +0 -146
  227. package/dist/modes/companion/companion-session.js.map +0 -1
  228. package/dist/modes/companion/companion-session.test.d.ts +0 -2
  229. package/dist/modes/companion/companion-session.test.d.ts.map +0 -1
  230. package/dist/modes/companion/companion-session.test.js +0 -28
  231. package/dist/modes/companion/companion-session.test.js.map +0 -1
  232. package/dist/modes/companion/components/status-bar.d.ts +0 -13
  233. package/dist/modes/companion/components/status-bar.d.ts.map +0 -1
  234. package/dist/modes/companion/components/status-bar.js +0 -26
  235. package/dist/modes/companion/components/status-bar.js.map +0 -1
  236. package/dist/modes/companion/context-buffer.d.ts +0 -65
  237. package/dist/modes/companion/context-buffer.d.ts.map +0 -1
  238. package/dist/modes/companion/context-buffer.js +0 -156
  239. package/dist/modes/companion/context-buffer.js.map +0 -1
  240. package/dist/modes/companion/context-buffer.test.d.ts +0 -2
  241. package/dist/modes/companion/context-buffer.test.d.ts.map +0 -1
  242. package/dist/modes/companion/context-buffer.test.js +0 -154
  243. package/dist/modes/companion/context-buffer.test.js.map +0 -1
  244. package/dist/modes/companion/event-detector.d.ts +0 -46
  245. package/dist/modes/companion/event-detector.d.ts.map +0 -1
  246. package/dist/modes/companion/event-detector.js +0 -169
  247. package/dist/modes/companion/event-detector.js.map +0 -1
  248. package/dist/modes/companion/event-detector.test.d.ts +0 -2
  249. package/dist/modes/companion/event-detector.test.d.ts.map +0 -1
  250. package/dist/modes/companion/event-detector.test.js +0 -121
  251. package/dist/modes/companion/event-detector.test.js.map +0 -1
  252. package/dist/modes/companion/index.d.ts +0 -33
  253. package/dist/modes/companion/index.d.ts.map +0 -1
  254. package/dist/modes/companion/index.js +0 -21
  255. package/dist/modes/companion/index.js.map +0 -1
  256. package/dist/modes/companion/input-key-mapper.d.ts +0 -3
  257. package/dist/modes/companion/input-key-mapper.d.ts.map +0 -1
  258. package/dist/modes/companion/input-key-mapper.js +0 -31
  259. package/dist/modes/companion/input-key-mapper.js.map +0 -1
  260. package/dist/modes/companion/input-key-mapper.test.d.ts +0 -2
  261. package/dist/modes/companion/input-key-mapper.test.d.ts.map +0 -1
  262. package/dist/modes/companion/input-key-mapper.test.js +0 -26
  263. package/dist/modes/companion/input-key-mapper.test.js.map +0 -1
  264. package/dist/modes/companion/input-parser.d.ts +0 -53
  265. package/dist/modes/companion/input-parser.d.ts.map +0 -1
  266. package/dist/modes/companion/input-parser.js +0 -114
  267. package/dist/modes/companion/input-parser.js.map +0 -1
  268. package/dist/modes/companion/input-parser.test.d.ts +0 -2
  269. package/dist/modes/companion/input-parser.test.d.ts.map +0 -1
  270. package/dist/modes/companion/input-parser.test.js +0 -123
  271. package/dist/modes/companion/input-parser.test.js.map +0 -1
  272. package/dist/modes/companion/mode-manager.d.ts +0 -41
  273. package/dist/modes/companion/mode-manager.d.ts.map +0 -1
  274. package/dist/modes/companion/mode-manager.js +0 -56
  275. package/dist/modes/companion/mode-manager.js.map +0 -1
  276. package/dist/modes/companion/mode-manager.test.d.ts +0 -2
  277. package/dist/modes/companion/mode-manager.test.d.ts.map +0 -1
  278. package/dist/modes/companion/mode-manager.test.js +0 -65
  279. package/dist/modes/companion/mode-manager.test.js.map +0 -1
  280. package/dist/modes/companion/output-classifier.d.ts +0 -15
  281. package/dist/modes/companion/output-classifier.d.ts.map +0 -1
  282. package/dist/modes/companion/output-classifier.js +0 -77
  283. package/dist/modes/companion/output-classifier.js.map +0 -1
  284. package/dist/modes/companion/output-classifier.test.d.ts +0 -2
  285. package/dist/modes/companion/output-classifier.test.d.ts.map +0 -1
  286. package/dist/modes/companion/output-classifier.test.js +0 -133
  287. package/dist/modes/companion/output-classifier.test.js.map +0 -1
  288. package/dist/modes/companion/pty-wrapper.d.ts +0 -46
  289. package/dist/modes/companion/pty-wrapper.d.ts.map +0 -1
  290. package/dist/modes/companion/pty-wrapper.js +0 -143
  291. package/dist/modes/companion/pty-wrapper.js.map +0 -1
  292. package/dist/modes/companion/safety-classifier.d.ts +0 -31
  293. package/dist/modes/companion/safety-classifier.d.ts.map +0 -1
  294. package/dist/modes/companion/safety-classifier.js +0 -140
  295. package/dist/modes/companion/safety-classifier.js.map +0 -1
  296. package/dist/modes/companion/safety-classifier.test.d.ts +0 -2
  297. package/dist/modes/companion/safety-classifier.test.d.ts.map +0 -1
  298. package/dist/modes/companion/safety-classifier.test.js +0 -151
  299. package/dist/modes/companion/safety-classifier.test.js.map +0 -1
  300. package/dist/modes/companion/summarizer.d.ts +0 -24
  301. package/dist/modes/companion/summarizer.d.ts.map +0 -1
  302. package/dist/modes/companion/summarizer.js +0 -132
  303. package/dist/modes/companion/summarizer.js.map +0 -1
  304. package/dist/modes/companion/terminal-history.d.ts +0 -27
  305. package/dist/modes/companion/terminal-history.d.ts.map +0 -1
  306. package/dist/modes/companion/terminal-history.js +0 -142
  307. package/dist/modes/companion/terminal-history.js.map +0 -1
  308. package/dist/services/check_mock.d.ts +0 -2
  309. package/dist/services/check_mock.d.ts.map +0 -1
  310. package/dist/services/check_mock.js +0 -22
  311. package/dist/services/check_mock.js.map +0 -1
  312. package/dist/services/conversation-service.test.d.ts +0 -2
  313. package/dist/services/conversation-service.test.d.ts.map +0 -1
  314. package/dist/services/conversation-service.test.js.map +0 -1
  315. package/dist/utils/command-safety.devnull.test.d.ts +0 -2
  316. package/dist/utils/command-safety.devnull.test.d.ts.map +0 -1
  317. package/dist/utils/command-safety.devnull.test.js +0 -13
  318. package/dist/utils/command-safety.devnull.test.js.map +0 -1
  319. package/dist/utils/extract-command-messages.test.d.ts +0 -2
  320. package/dist/utils/extract-command-messages.test.d.ts.map +0 -1
  321. package/dist/utils/extract-command-messages.test.js.map +0 -1
  322. /package/{readme.md → README.md} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.lite-mode.test.js","sourceRoot":"","sources":["../source/agent.lite-mode.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,YAAY,GAAG,CAAC,IAAa,EAAoB,EAAE,CAAC,CAAC;IACvD,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE;QACjB,IAAI,GAAG,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,GAAG,KAAK,aAAa;YAAE,OAAO,OAAO,CAAC;QAC1C,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;IACb,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC;IACZ,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;IACb,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CACW,CAAA,CAAC;AAElC,MAAM,WAAW,GAAG,EAAgC,CAAC;AAErD,IAAI,CAAC,gEAAgE,EAAE,CAAC,CAAC,EAAE;IACvE,MAAM,IAAI,GAAG;QACT,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC;QACnC,cAAc,EAAE,WAAW;KAC9B,CAAC;IACF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,4CAA4C,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oEAAoE,EAAE,CAAC,CAAC,EAAE;IAC3E,MAAM,IAAI,GAAG;QACT,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC;QACpC,cAAc,EAAE,WAAW;KAC9B,CAAC;IACF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,4CAA4C,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=debug_ask_mentor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug_ask_mentor.d.ts","sourceRoot":"","sources":["../source/debug_ask_mentor.ts"],"names":[],"mappings":""}
@@ -1,73 +0,0 @@
1
- import { OpenAIAgentClient } from './lib/openai-agent-client.js';
2
- import { registerProvider } from './providers/registry.js';
3
- // Mock Logger
4
- const mockLogger = {
5
- debug: () => { },
6
- info: () => { },
7
- warn: () => { },
8
- error: console.error,
9
- setCorrelationId: () => { },
10
- clearCorrelationId: () => { },
11
- log: () => { },
12
- };
13
- // Mock Settings
14
- const mockSettings = {
15
- get: (key) => {
16
- if (key === 'agent.provider')
17
- return 'mock-provider';
18
- if (key === 'agent.model')
19
- return 'mock-model';
20
- if (key === 'agent.mentorModel')
21
- return 'mock-mentor';
22
- return undefined;
23
- },
24
- set: () => { },
25
- onChange: () => { },
26
- };
27
- // Mock Runner
28
- class MockRunner {
29
- async run(agent, input, options) {
30
- console.log('MockRunner.run called');
31
- // Return a result similar to what might be causing issues
32
- // Missing finalOutput, but maybe has messages or text
33
- return {
34
- status: 'completed',
35
- messages: [{ role: 'assistant', content: 'This is the answer' }],
36
- // finalOutput is missing!
37
- };
38
- }
39
- }
40
- // Register Mock Provider
41
- registerProvider({
42
- id: 'mock-provider',
43
- label: 'Mock Provider',
44
- createRunner: () => new MockRunner(),
45
- fetchModels: async () => [{ id: 'mock-model' }, { id: 'mock-mentor' }],
46
- });
47
- async function main() {
48
- console.log('Starting debug script...');
49
- try {
50
- const client = new OpenAIAgentClient({
51
- deps: {
52
- logger: mockLogger,
53
- settings: mockSettings,
54
- }
55
- });
56
- console.log('Client initialized. Calling chat...');
57
- const response = await client.chat('Hello');
58
- console.log('Chat response:', response);
59
- if (response === 'This is the answer') {
60
- console.log('SUCCESS: Got expected response from messages fallback.');
61
- }
62
- else {
63
- console.error('FAILURE: Response did not match expected.');
64
- process.exit(1);
65
- }
66
- }
67
- catch (e) {
68
- console.log('Caught UNEXPECTED error:', e.message);
69
- process.exit(1);
70
- }
71
- }
72
- main().catch(console.error);
73
- //# sourceMappingURL=debug_ask_mentor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug_ask_mentor.js","sourceRoot":"","sources":["../source/debug_ask_mentor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,cAAc;AACd,MAAM,UAAU,GAAoB;IAChC,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC5B,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;CACT,CAAC;AAET,gBAAgB;AAChB,MAAM,YAAY,GAAqB;IACnC,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE;QACjB,IAAI,GAAG,KAAK,gBAAgB;YAAE,OAAO,eAAe,CAAC;QACrD,IAAI,GAAG,KAAK,aAAa;YAAE,OAAO,YAAY,CAAC;QAC/C,IAAI,GAAG,KAAK,mBAAmB;YAAE,OAAO,aAAa,CAAC;QACtD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;IACb,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACd,CAAC;AAET,cAAc;AACd,MAAM,UAAU;IACZ,KAAK,CAAC,GAAG,CAAC,KAAU,EAAE,KAAU,EAAE,OAAY;QAC1C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,0DAA0D;QAC1D,sDAAsD;QACtD,OAAO;YACH,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAChE,0BAA0B;SAC7B,CAAC;IACN,CAAC;CACJ;AAED,yBAAyB;AACzB,gBAAgB,CAAC;IACb,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,eAAe;IACtB,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,UAAU,EAAS;IAC3C,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;CACzE,CAAC,CAAC;AAEH,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC;YACjC,IAAI,EAAE;gBACF,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,YAAY;aACzB;SACJ,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Command index utilities for companion mode.
3
- * Generates lightweight command summaries for AI context.
4
- */
5
- import type { CommandIndexEntry } from './context-buffer.js';
6
- /**
7
- * Format command index entries for inclusion in AI system prompt.
8
- * Produces a compact, readable representation that uses minimal tokens.
9
- *
10
- * Example output:
11
- * [0] npm test ✗ exit:1 5s ago (542 lines)
12
- * [1] git diff ✓ exit:0 30s ago (23 lines)
13
- * [2] npm install ✓ exit:0 2m ago (891 lines)
14
- */
15
- export declare function formatCommandIndex(entries: CommandIndexEntry[]): string;
16
- /**
17
- * Generate system prompt section for command index.
18
- * This is always included in companion mode AI context.
19
- */
20
- export declare function generateCommandIndexPrompt(entries: CommandIndexEntry[]): string;
21
- /**
22
- * Estimate token count for command index.
23
- * Rough approximation: ~4 characters per token.
24
- */
25
- export declare function estimateTokens(entries: CommandIndexEntry[]): number;
26
- //# sourceMappingURL=command-index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-index.d.ts","sourceRoot":"","sources":["../../../source/modes/companion/command-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAE3D;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAYvE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,iBAAiB,EAAE,GAC7B,MAAM,CAYR;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAGnE"}
@@ -1,50 +0,0 @@
1
- /**
2
- * Command index utilities for companion mode.
3
- * Generates lightweight command summaries for AI context.
4
- */
5
- /**
6
- * Format command index entries for inclusion in AI system prompt.
7
- * Produces a compact, readable representation that uses minimal tokens.
8
- *
9
- * Example output:
10
- * [0] npm test ✗ exit:1 5s ago (542 lines)
11
- * [1] git diff ✓ exit:0 30s ago (23 lines)
12
- * [2] npm install ✓ exit:0 2m ago (891 lines)
13
- */
14
- export function formatCommandIndex(entries) {
15
- if (entries.length === 0) {
16
- return 'No recent commands.';
17
- }
18
- return entries
19
- .map(entry => {
20
- const status = entry.exitCode === 0 ? '✓' : '✗';
21
- const cmd = entry.command.padEnd(25).slice(0, 25);
22
- return `[${entry.index}] ${cmd} ${status} exit:${entry.exitCode} ${entry.relativeTime} (${entry.outputLines} lines)`;
23
- })
24
- .join('\n');
25
- }
26
- /**
27
- * Generate system prompt section for command index.
28
- * This is always included in companion mode AI context.
29
- */
30
- export function generateCommandIndexPrompt(entries) {
31
- const indexSection = formatCommandIndex(entries);
32
- return `
33
- ## Terminal Context
34
-
35
- You are observing the user's terminal session. Here are the recent commands:
36
-
37
- ${indexSection}
38
-
39
- Use the terminal_history tool to fetch detailed output when needed.
40
- `;
41
- }
42
- /**
43
- * Estimate token count for command index.
44
- * Rough approximation: ~4 characters per token.
45
- */
46
- export function estimateTokens(entries) {
47
- const formatted = formatCommandIndex(entries);
48
- return Math.ceil(formatted.length / 4);
49
- }
50
- //# sourceMappingURL=command-index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-index.js","sourceRoot":"","sources":["../../../source/modes/companion/command-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,OAAO,OAAO;SACT,GAAG,CAAC,KAAK,CAAC,EAAE;QACT,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,SAAS,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,YAAY,MAAM,KAAK,CAAC,WAAW,SAAS,CAAC;IAC3H,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACtC,OAA4B;IAE5B,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEjD,OAAO;;;;;EAKT,YAAY;;;CAGb,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAA4B;IACvD,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=command-index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-index.test.d.ts","sourceRoot":"","sources":["../../../source/modes/companion/command-index.test.ts"],"names":[],"mappings":""}
@@ -1,86 +0,0 @@
1
- import test from 'ava';
2
- import { formatCommandIndex, generateCommandIndexPrompt, estimateTokens, } from './command-index.js';
3
- // Helper to create a test index entry
4
- function createIndexEntry(index, command, exitCode = 0, relativeTime = '5s ago', outputLines = 10, hasErrors = false) {
5
- return {
6
- index,
7
- command,
8
- exitCode,
9
- relativeTime,
10
- outputLines,
11
- hasErrors,
12
- };
13
- }
14
- test('formatCommandIndex returns message for empty array', t => {
15
- const result = formatCommandIndex([]);
16
- t.is(result, 'No recent commands.');
17
- });
18
- test('formatCommandIndex formats single entry', t => {
19
- const entries = [createIndexEntry(0, 'npm test', 0, '5s ago', 100)];
20
- const result = formatCommandIndex(entries);
21
- t.true(result.includes('[0]'));
22
- t.true(result.includes('npm test'));
23
- t.true(result.includes('✓'));
24
- t.true(result.includes('exit:0'));
25
- t.true(result.includes('5s ago'));
26
- t.true(result.includes('100 lines'));
27
- });
28
- test('formatCommandIndex shows ✗ for non-zero exit code', t => {
29
- const entries = [createIndexEntry(0, 'npm test', 1, '5s ago', 100)];
30
- const result = formatCommandIndex(entries);
31
- t.true(result.includes('✗'));
32
- });
33
- test('formatCommandIndex formats multiple entries', t => {
34
- const entries = [
35
- createIndexEntry(0, 'npm test', 1, '5s ago', 100),
36
- createIndexEntry(1, 'git status', 0, '30s ago', 10),
37
- createIndexEntry(2, 'npm install', 0, '2m ago', 500),
38
- ];
39
- const result = formatCommandIndex(entries);
40
- const lines = result.split('\n');
41
- t.is(lines.length, 3);
42
- t.true(lines[0].includes('[0]'));
43
- t.true(lines[1].includes('[1]'));
44
- t.true(lines[2].includes('[2]'));
45
- });
46
- test('formatCommandIndex truncates long commands', t => {
47
- const longCommand = 'npm run very-long-script-name-that-exceeds-width';
48
- const entries = [createIndexEntry(0, longCommand)];
49
- const result = formatCommandIndex(entries);
50
- // Should be truncated to 25 chars
51
- t.true(result.length < longCommand.length + 100);
52
- });
53
- test('generateCommandIndexPrompt includes context header', t => {
54
- const entries = [createIndexEntry(0, 'npm test')];
55
- const result = generateCommandIndexPrompt(entries);
56
- t.true(result.includes('Terminal Context'));
57
- t.true(result.includes('recent commands'));
58
- });
59
- test('generateCommandIndexPrompt includes formatted index', t => {
60
- const entries = [createIndexEntry(0, 'npm test', 0, '5s ago', 100)];
61
- const result = generateCommandIndexPrompt(entries);
62
- t.true(result.includes('npm test'));
63
- t.true(result.includes('[0]'));
64
- });
65
- test('generateCommandIndexPrompt includes tool usage hint', t => {
66
- const entries = [createIndexEntry(0, 'npm test')];
67
- const result = generateCommandIndexPrompt(entries);
68
- t.true(result.includes('terminal_history'));
69
- });
70
- test('estimateTokens returns reasonable estimate', t => {
71
- const entries = [
72
- createIndexEntry(0, 'npm test', 0, '5s ago', 100),
73
- createIndexEntry(1, 'git status', 0, '30s ago', 10),
74
- ];
75
- const tokens = estimateTokens(entries);
76
- // ~4 chars per token, each entry is ~60 chars
77
- t.true(tokens > 20);
78
- t.true(tokens < 100);
79
- });
80
- test('estimateTokens returns 0 for empty index', t => {
81
- const entries = [];
82
- const tokens = estimateTokens(entries);
83
- // "No recent commands." is ~20 chars, ~5 tokens
84
- t.true(tokens < 10);
85
- });
86
- //# sourceMappingURL=command-index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-index.test.js","sourceRoot":"","sources":["../../../source/modes/companion/command-index.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- import type { ISettingsService, ILoggingService } from '../../services/service-interfaces.js';
3
- export interface CompanionAppProps {
4
- settingsService: ISettingsService;
5
- loggingService: ILoggingService;
6
- }
7
- /**
8
- * Main companion mode application.
9
- * Wraps user's shell in a PTY and provides AI assistance.
10
- */
11
- export declare const CompanionApp: React.FC<CompanionAppProps>;
12
- //# sourceMappingURL=companion-app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"companion-app.d.ts","sourceRoot":"","sources":["../../../source/modes/companion/companion-app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAW9D,OAAO,KAAK,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,sCAAsC,CAAC;AAqC5F,MAAM,WAAW,iBAAiB;IAC9B,eAAe,EAAE,gBAAgB,CAAC;IAClC,cAAc,EAAE,eAAe,CAAC;CACnC;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyTpD,CAAC"}
@@ -1,297 +0,0 @@
1
- import React, { useEffect, useState, useCallback } from 'react';
2
- import { Box, Text, useInput, useApp } from 'ink';
3
- import { PTYWrapper } from './pty-wrapper.js';
4
- import { ContextBuffer } from './context-buffer.js';
5
- import { ModeManager } from './mode-manager.js';
6
- import { EventDetector } from './event-detector.js';
7
- import { Summarizer } from './summarizer.js';
8
- import { StatusBar } from './components/status-bar.js';
9
- import { CompanionSession } from './companion-session.js';
10
- import { parseCompanionInput, CommandOutputBuffer } from './input-parser.js';
11
- import { getPtyInputSequence } from './input-key-mapper.js';
12
- /** Height reserved at bottom of terminal for status bar and AI response */
13
- const STATUS_BAR_RESERVED_ROWS = 4;
14
- /**
15
- * Infer exit code from command output patterns.
16
- * Since PTY doesn't provide per-command exit codes, we use heuristics.
17
- */
18
- function inferExitCodeFromOutput(output) {
19
- const lowerOutput = output.toLowerCase();
20
- // Common error patterns that indicate failure
21
- const errorPatterns = [
22
- /\berror\b/i,
23
- /\bfail(ed|ure)?\b/i,
24
- /\bfatal\b/i,
25
- /\bexception\b/i,
26
- /\bcommand not found\b/i,
27
- /\bno such file\b/i,
28
- /\bpermission denied\b/i,
29
- /\bdoes not exist\b/i,
30
- /\bcannot\b/i,
31
- /\bexit status [1-9]/i,
32
- /\bexit code [1-9]/i,
33
- /\breturned [1-9]/i,
34
- ];
35
- for (const pattern of errorPatterns) {
36
- if (pattern.test(lowerOutput)) {
37
- return 1;
38
- }
39
- }
40
- return 0; // Assume success if no error patterns found
41
- }
42
- /**
43
- * Main companion mode application.
44
- * Wraps user's shell in a PTY and provides AI assistance.
45
- */
46
- export const CompanionApp = ({ settingsService, loggingService, }) => {
47
- const { exit } = useApp();
48
- // Core services
49
- const [ptyWrapper] = useState(() => new PTYWrapper({ logger: loggingService }));
50
- const [contextBuffer] = useState(() => new ContextBuffer({
51
- maxSize: settingsService.get('companion.maxContextBufferSize') || 1048576,
52
- maxCommands: settingsService.get('companion.maxCommandIndexSize') || 10,
53
- }));
54
- const [modeManager] = useState(() => new ModeManager());
55
- const [eventDetector] = useState(() => new EventDetector({
56
- errorCascadeThreshold: settingsService.get('companion.errorCascadeThreshold') || 3,
57
- retryLoopThreshold: settingsService.get('companion.retryLoopThreshold') || 2,
58
- pauseHintDelayMs: settingsService.get('companion.pauseHintDelayMs') || 30000,
59
- }));
60
- const [summarizer] = useState(() => new Summarizer({
61
- settings: settingsService,
62
- logger: loggingService,
63
- }));
64
- const [companionSession] = useState(() => new CompanionSession({
65
- contextBuffer,
66
- summarizer,
67
- settings: settingsService,
68
- logger: loggingService,
69
- }));
70
- const [commandOutputBuffer] = useState(() => new CommandOutputBuffer());
71
- // UI state
72
- const [currentMode, setCurrentMode] = useState(modeManager.mode);
73
- const [hint, setHint] = useState();
74
- const [isProcessing, setIsProcessing] = useState(false);
75
- const [error, setError] = useState();
76
- const [aiResponse, setAiResponse] = useState('');
77
- // Input buffer for detecting ?? and !auto
78
- const [inputLine, setInputLine] = useState('');
79
- // Handle ?? query
80
- const handleQuery = useCallback(async (query) => {
81
- setIsProcessing(true);
82
- setAiResponse('');
83
- setHint(undefined);
84
- try {
85
- for await (const event of companionSession.handleWatchQuery(query)) {
86
- if (event.type === 'text' && event.content) {
87
- setAiResponse(prev => prev + event.content);
88
- }
89
- else if (event.type === 'error') {
90
- loggingService.error('Query failed', { error: event.content });
91
- }
92
- }
93
- }
94
- finally {
95
- setIsProcessing(false);
96
- }
97
- }, [companionSession, loggingService]);
98
- // Handle !auto task
99
- const handleAutoTask = useCallback(async (task) => {
100
- setIsProcessing(true);
101
- setAiResponse('');
102
- setHint(undefined);
103
- modeManager.enterAutoMode();
104
- try {
105
- for await (const event of companionSession.handleAutoTask(task)) {
106
- if (event.type === 'text' && event.content) {
107
- setAiResponse(prev => prev + event.content);
108
- }
109
- else if (event.type === 'tool_call' && event.tool) {
110
- loggingService.info('Tool call', { tool: event.tool, args: event.args });
111
- }
112
- else if (event.type === 'error') {
113
- loggingService.error('Auto task failed', { error: event.content });
114
- }
115
- }
116
- }
117
- finally {
118
- setIsProcessing(false);
119
- modeManager.enterWatchMode();
120
- }
121
- }, [companionSession, modeManager, loggingService]);
122
- // Setup PTY and event handlers
123
- useEffect(() => {
124
- // Mode change handler
125
- modeManager.on('modeChange', (mode) => {
126
- setCurrentMode(mode);
127
- loggingService.info('Mode changed', { mode });
128
- });
129
- // Event detector hint handler
130
- eventDetector.on('hint', (event) => {
131
- if (settingsService.get('companion.showHints') !== false) {
132
- setHint(event.message);
133
- }
134
- });
135
- // PTY output handler
136
- ptyWrapper.on('output', (data) => {
137
- // Pass through to stdout
138
- process.stdout.write(data);
139
- // Process output for command boundary detection
140
- const completed = commandOutputBuffer.processData(data);
141
- if (completed) {
142
- // Infer exit code from output patterns when not available directly
143
- // This is a heuristic since PTY doesn't provide per-command exit codes
144
- const inferredExitCode = inferExitCodeFromOutput(completed.output);
145
- const entry = {
146
- command: completed.command,
147
- output: completed.output,
148
- exitCode: inferredExitCode,
149
- timestamp: Date.now(),
150
- outputLines: completed.output.split('\n').length,
151
- };
152
- contextBuffer.addEntry(entry);
153
- // Check for patterns
154
- const event = eventDetector.processCommand(entry);
155
- if (event && settingsService.get('companion.showHints') !== false) {
156
- setHint(event.message);
157
- }
158
- }
159
- // Mark activity
160
- eventDetector.markActivity();
161
- });
162
- // PTY exit handler
163
- ptyWrapper.on('exit', (exitCode) => {
164
- loggingService.info('PTY exited', { exitCode });
165
- exit();
166
- });
167
- // PTY error handler
168
- ptyWrapper.on('error', (err) => {
169
- loggingService.error('PTY error', { error: err.message });
170
- setError(err.message);
171
- });
172
- // Start PTY
173
- ptyWrapper.start();
174
- process.stdout.write('\x1b[?25h');
175
- // Setup terminal resize handling
176
- const handleResize = () => {
177
- if (process.stdout.columns && process.stdout.rows) {
178
- // Reserve bottom rows for status bar and AI response
179
- ptyWrapper.resize(process.stdout.columns, process.stdout.rows - STATUS_BAR_RESERVED_ROWS);
180
- }
181
- };
182
- process.stdout.on('resize', handleResize);
183
- handleResize();
184
- return () => {
185
- process.stdout.off('resize', handleResize);
186
- ptyWrapper.stop();
187
- process.stdout.write('\x1b[?25h');
188
- };
189
- }, [
190
- ptyWrapper,
191
- contextBuffer,
192
- commandOutputBuffer,
193
- modeManager,
194
- eventDetector,
195
- settingsService,
196
- loggingService,
197
- exit,
198
- ]);
199
- // Handle keyboard input
200
- useInput((input, key) => {
201
- // Ctrl+C to exit or abort
202
- if (key.ctrl && input === 'c') {
203
- if (isProcessing) {
204
- companionSession.abort();
205
- setIsProcessing(false);
206
- }
207
- else {
208
- ptyWrapper.stop();
209
- exit();
210
- }
211
- return;
212
- }
213
- // Clear hint on any input
214
- if (hint) {
215
- setHint(undefined);
216
- }
217
- const isSpecialCommandInput = inputLine.startsWith('??') || inputLine.startsWith('!auto');
218
- const ptySequence = getPtyInputSequence(input, key);
219
- if (key.upArrow || key.downArrow || key.leftArrow || key.rightArrow) {
220
- if (!isSpecialCommandInput && ptySequence) {
221
- ptyWrapper.write(ptySequence);
222
- }
223
- return;
224
- }
225
- // Build up input line to detect ?? and !auto commands
226
- let newInputLine = inputLine;
227
- if (input === '\r' || input === '\n') {
228
- const parsed = parseCompanionInput(inputLine);
229
- if (parsed.type === 'query') {
230
- // ?? query detected - handle with AI instead of passing to shell
231
- handleQuery(parsed.content);
232
- setInputLine('');
233
- // Write newline to keep terminal output clean
234
- process.stdout.write('\n');
235
- return;
236
- }
237
- if (parsed.type === 'auto') {
238
- // !auto command detected - handle with AI instead of passing to shell
239
- handleAutoTask(parsed.content);
240
- setInputLine('');
241
- // Write newline to keep terminal output clean
242
- process.stdout.write('\n');
243
- return;
244
- }
245
- // Normal command - pass Enter to PTY and track for context
246
- ptyWrapper.write(input);
247
- if (inputLine.trim()) {
248
- commandOutputBuffer.startCommand(inputLine.trim());
249
- }
250
- setInputLine('');
251
- return;
252
- }
253
- if (key.backspace || key.delete) {
254
- newInputLine = inputLine.slice(0, -1);
255
- setInputLine(newInputLine);
256
- if (isSpecialCommandInput) {
257
- process.stdout.write('\b \b');
258
- return;
259
- }
260
- if (ptySequence) {
261
- ptyWrapper.write(ptySequence);
262
- }
263
- return;
264
- }
265
- // Accumulate input
266
- newInputLine = inputLine + input;
267
- setInputLine(newInputLine);
268
- // Check if we're building a ?? or !auto command
269
- // If so, echo locally but don't send to PTY yet
270
- if (newInputLine.startsWith('??') || newInputLine.startsWith('!auto')) {
271
- // Echo the character locally (since we're not sending to PTY)
272
- process.stdout.write(input);
273
- }
274
- else {
275
- // Normal input - pass through to PTY
276
- ptyWrapper.write(input);
277
- }
278
- });
279
- if (error) {
280
- return (React.createElement(Box, { flexDirection: "column" },
281
- React.createElement(Text, { color: "red" },
282
- "Error: ",
283
- error),
284
- React.createElement(Text, { color: "gray" }, "Press Ctrl+C to exit")));
285
- }
286
- // The main rendering is handled by PTY direct output to stdout
287
- // We only render the status bar and AI response via Ink
288
- const defaultRows = 24; // Standard terminal height fallback
289
- const marginTop = process.stdout.rows
290
- ? process.stdout.rows - STATUS_BAR_RESERVED_ROWS
291
- : defaultRows - STATUS_BAR_RESERVED_ROWS;
292
- return (React.createElement(Box, { flexDirection: "column", position: "absolute", marginTop: marginTop },
293
- aiResponse && (React.createElement(Box, { borderStyle: "single", borderColor: "cyan", paddingX: 1, marginBottom: 1 },
294
- React.createElement(Text, { color: "cyan" }, aiResponse))),
295
- React.createElement(StatusBar, { mode: currentMode, hint: hint, isProcessing: isProcessing })));
296
- };
297
- //# sourceMappingURL=companion-app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"companion-app.js","sourceRoot":"","sources":["../../../source/modes/companion/companion-app.tsx"],"names":[],"mappings":"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"}