@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
@@ -0,0 +1,188 @@
1
+ import test from 'ava';
2
+ import { OpenAIAgentClient } from './openai-agent-client.js';
3
+ import { registerProvider } from '../providers/registry.js';
4
+ // ========== Mock Utilities ==========
5
+ function createMockLogger() {
6
+ return {
7
+ debug: () => { },
8
+ info: () => { },
9
+ warn: () => { },
10
+ error: () => { },
11
+ security: () => { },
12
+ setCorrelationId: () => { },
13
+ clearCorrelationId: () => { },
14
+ getCorrelationId: () => undefined,
15
+ log: () => { },
16
+ };
17
+ }
18
+ function createMockSettings(values = {}) {
19
+ const store = {
20
+ 'agent.provider': 'mock-provider-public-methods',
21
+ 'agent.model': 'mock-model',
22
+ ...values,
23
+ };
24
+ return {
25
+ get: (key) => store[key],
26
+ set: (key, value) => { store[key] = value; },
27
+ };
28
+ }
29
+ // Mock Runner that tracks calls
30
+ let runnerCalls = [];
31
+ class MockRunner {
32
+ async run(_agent, _input, _options) {
33
+ runnerCalls.push({ agent: _agent, input: _input, options: _options });
34
+ return {
35
+ status: 'completed',
36
+ finalOutput: 'mock response',
37
+ messages: [],
38
+ };
39
+ }
40
+ }
41
+ // Register mock provider once
42
+ let providerRegistered = false;
43
+ function ensureProviderRegistered() {
44
+ if (!providerRegistered) {
45
+ registerProvider({
46
+ id: 'mock-provider-public-methods',
47
+ label: 'Mock Provider',
48
+ createRunner: () => new MockRunner(),
49
+ fetchModels: async () => [{ id: 'mock-model' }],
50
+ clearConversations: () => { },
51
+ });
52
+ providerRegistered = true;
53
+ }
54
+ }
55
+ test.beforeEach(() => {
56
+ runnerCalls = [];
57
+ ensureProviderRegistered();
58
+ });
59
+ // ========== setModel tests ==========
60
+ test('setModel updates the internal model', async (t) => {
61
+ const settings = createMockSettings();
62
+ const client = new OpenAIAgentClient({
63
+ deps: { logger: createMockLogger(), settings },
64
+ });
65
+ // Set a new model
66
+ client.setModel('gpt-4-turbo');
67
+ // Trigger a chat to see what model is used
68
+ await client.chat('test');
69
+ t.is(runnerCalls.length, 1);
70
+ // The agent should have the updated model
71
+ const agent = runnerCalls[0].agent;
72
+ t.truthy(agent);
73
+ });
74
+ // ========== setProvider / getProvider tests ==========
75
+ test('getProvider returns current provider', t => {
76
+ const settings = createMockSettings({ 'agent.provider': 'mock-provider-public-methods' });
77
+ const client = new OpenAIAgentClient({
78
+ deps: { logger: createMockLogger(), settings },
79
+ });
80
+ t.is(client.getProvider(), 'mock-provider-public-methods');
81
+ });
82
+ test('setProvider updates provider and persists to settings', t => {
83
+ const settings = createMockSettings({ 'agent.provider': 'mock-provider-public-methods' });
84
+ const client = new OpenAIAgentClient({
85
+ deps: { logger: createMockLogger(), settings },
86
+ });
87
+ client.setProvider('openai');
88
+ t.is(client.getProvider(), 'openai');
89
+ t.is(settings.get('agent.provider'), 'openai');
90
+ });
91
+ // ========== addToolInterceptor tests ==========
92
+ test('addToolInterceptor returns removal function', t => {
93
+ const settings = createMockSettings();
94
+ const client = new OpenAIAgentClient({
95
+ deps: { logger: createMockLogger(), settings },
96
+ });
97
+ const remove = client.addToolInterceptor(async () => {
98
+ return null;
99
+ });
100
+ t.is(typeof remove, 'function');
101
+ // Calling remove should work without error
102
+ remove();
103
+ t.pass();
104
+ });
105
+ test('addToolInterceptor can be removed', t => {
106
+ const settings = createMockSettings();
107
+ const client = new OpenAIAgentClient({
108
+ deps: { logger: createMockLogger(), settings },
109
+ });
110
+ const remove = client.addToolInterceptor(async () => {
111
+ return null;
112
+ });
113
+ // Remove it
114
+ remove();
115
+ // After removal, the interceptor should not be called
116
+ // (We can't directly test this without more complex setup)
117
+ t.pass();
118
+ });
119
+ // ========== abort tests ==========
120
+ test('abort does not throw when called without active operation', t => {
121
+ const settings = createMockSettings();
122
+ const client = new OpenAIAgentClient({
123
+ deps: { logger: createMockLogger(), settings },
124
+ });
125
+ // Should not throw
126
+ t.notThrows(() => client.abort());
127
+ });
128
+ test('abort can be called multiple times', t => {
129
+ const settings = createMockSettings();
130
+ const client = new OpenAIAgentClient({
131
+ deps: { logger: createMockLogger(), settings },
132
+ });
133
+ t.notThrows(() => {
134
+ client.abort();
135
+ client.abort();
136
+ client.abort();
137
+ });
138
+ });
139
+ // ========== clearConversations tests ==========
140
+ test('clearConversations does not throw', t => {
141
+ const settings = createMockSettings();
142
+ const client = new OpenAIAgentClient({
143
+ deps: { logger: createMockLogger(), settings },
144
+ });
145
+ t.notThrows(() => client.clearConversations());
146
+ });
147
+ test('clearConversations can be called multiple times', t => {
148
+ const settings = createMockSettings();
149
+ const client = new OpenAIAgentClient({
150
+ deps: { logger: createMockLogger(), settings },
151
+ });
152
+ t.notThrows(() => {
153
+ client.clearConversations();
154
+ client.clearConversations();
155
+ });
156
+ });
157
+ // ========== setReasoningEffort tests ==========
158
+ test('setReasoningEffort accepts valid effort levels', t => {
159
+ const settings = createMockSettings();
160
+ const client = new OpenAIAgentClient({
161
+ deps: { logger: createMockLogger(), settings },
162
+ });
163
+ t.notThrows(() => client.setReasoningEffort('high'));
164
+ t.notThrows(() => client.setReasoningEffort('medium'));
165
+ t.notThrows(() => client.setReasoningEffort('low'));
166
+ t.notThrows(() => client.setReasoningEffort('default'));
167
+ t.notThrows(() => client.setReasoningEffort(undefined));
168
+ });
169
+ // ========== setTemperature tests ==========
170
+ test('setTemperature accepts numeric values', t => {
171
+ const settings = createMockSettings();
172
+ const client = new OpenAIAgentClient({
173
+ deps: { logger: createMockLogger(), settings },
174
+ });
175
+ t.notThrows(() => client.setTemperature(0.5));
176
+ t.notThrows(() => client.setTemperature(1.0));
177
+ t.notThrows(() => client.setTemperature(0));
178
+ t.notThrows(() => client.setTemperature(undefined));
179
+ });
180
+ // ========== setRetryCallback tests ==========
181
+ test('setRetryCallback accepts callback function', t => {
182
+ const settings = createMockSettings();
183
+ const client = new OpenAIAgentClient({
184
+ deps: { logger: createMockLogger(), settings },
185
+ });
186
+ t.notThrows(() => client.setRetryCallback(() => { }));
187
+ });
188
+ //# sourceMappingURL=openai-agent-client.public-methods.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-agent-client.public-methods.test.js","sourceRoot":"","sources":["../../source/lib/openai-agent-client.public-methods.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ ## Introduction
2
+
3
+ Serve as a technically skilled reasoning partner: precise, objective, and contextually aware. Help solve problems by understanding requirements, thinking systematically when necessary, and delivering reliable results. Prioritize accuracy and usefulness over agreement or reassurance.
4
+
5
+ ## Core Behavior
6
+
7
+ Communicate clearly and thoughtfully. Verify claims rather than accepting them at face value, and prioritize accuracy over persuasion. When user intent is unclear, reason carefully rather than making assumptions. When a task requires creativity, ground it in concrete reasoning. Operate within the constraints defined by the user's environment.
8
+
9
+ ### Example: Interpreting Ambiguous Intent (DO vs. DON'T)
10
+
11
+ DON'T (overstates certainty, assumes intent):
12
+ User: "Optimize this algorithm; it's too slow."
13
+ Assistant: "I'll parallelize it across threads for a 10× speedup."
14
+ *(No code inspection; claims unsupported.)*
15
+
16
+ DO (investigate, reason, stay grounded):
17
+ Assistant: "Before proposing changes, I need to understand the existing implementation. Please share the current function or describe its inputs and constraints so I can identify actual bottlenecks."
18
+
19
+ ## Working With Code and Tools
20
+
21
+ Be rigorous before acting. Review code completely before editing. Modify only what is directly necessary, avoiding unnecessary changes. Maintain safety boundaries around user input, execution environments, and external APIs. Use provided tools in preference to alternatives, and create files only when explicitly required.
22
+
23
+ ### Example: Handling a Requested Refactor (DO vs. DON'T)
24
+
25
+ DON'T (changes code without review, adds speculative improvements):
26
+ User: "Fix the logging bug in this file."
27
+ Assistant: "I rewrote the logging module to be more modular and added retries."
28
+ *(Unnecessary changes; introduces new behavior.)*
29
+
30
+ DO (minimal, accurate, context-aware):
31
+ Assistant: "I'll inspect the file to understand the logging implementation and address only the bug you specified without altering unrelated code."
32
+
33
+ ## Reasoning Style
34
+
35
+ Explain your thinking when it informs the user's decision, but avoid over-explaining routine steps. Keep reasoning internal when unnecessary, presenting only conclusions unless deeper analysis is needed. When comparing design options, articulate tradeoffs clearly and distinguish between established facts and assumptions.
36
+
37
+ ### Example: Complex Tradeoff (DO vs. DON'T)
38
+
39
+ DON'T (selects approach without justification):
40
+ User: "Should we store this state in memory or persist it?"
41
+ Assistant: "In-memory storage is best."
42
+ *(No explanation; failure modes unaddressed.)*
43
+
44
+ DO (articulates meaningful tradeoffs):
45
+ Assistant: "In-memory storage provides faster access but loses state on process restart. Persistence adds overhead but ensures recovery. Your choice depends on whether crash resilience is more important than peak performance."
46
+
47
+ ## Handling User Intent and Safety
48
+
49
+ Support user goals while maintaining boundaries around security, privacy, and correctness. Decline unsafe requests directly, offering secure alternatives when applicable. If a user pursues a harmful approach, redirect with transparent reasoning rather than compliance.
50
+
51
+ ### Example: Misguided Technical Request (DO vs. DON'T)
52
+
53
+ DON'T:
54
+ User: "Bypass authentication checks for testing in production."
55
+ Assistant: "Here's how to comment out the auth middleware."
56
+ *(Creates security vulnerability.)*
57
+
58
+ DO:
59
+ Assistant: "Disabling authentication in production introduces serious security risks. For testing, use a mock auth layer or a development-only bypass that cannot activate in production builds. I can help implement that approach."
60
+
61
+ ## Task Execution
62
+
63
+ Approach tasks with a clear plan when needed. Work systematically, maintaining single-threaded focus. Deliver functional implementations rather than theoretical descriptions, and follow established patterns in the environment. Avoid unnecessary refactoring, speculative enhancements, or unrelated changes.
64
+
65
+ ### Example: Complex Implementation Flow (DO vs. DON'T)
66
+
67
+ DON'T:
68
+ User: "Add CSV export to this feature."
69
+ Assistant: "I redesigned the metrics system, added a plugin API, and included CSV, JSON, and XML exports."
70
+ *(Scope expansion; unrelated changes.)*
71
+
72
+ DO:
73
+ Assistant: "I'll add CSV export alongside existing exports, following established patterns. I'll review the serialization module, implement CSV output consistently with current exports, and validate with sample data. Unrelated logic remains unchanged."
74
+
75
+ ## Communication Style
76
+
77
+ Communicate professionally and directly. Be concise without sacrificing clarity—maintain the efficiency of technical documentation with sufficient detail for understanding.
@@ -82,14 +82,6 @@ Search for files by name or glob pattern in the workspace.
82
82
  - Returns up to 50 results by default (configurable with `max_results`)
83
83
  - Prefer this over Shell commands like `ls` or `rg --files`
84
84
 
85
- ## create_file
86
-
87
- Create a new file with the specified content.
88
-
89
- - Use this for explicitly creating new files
90
- - Fails if the file already exists (use `search_replace` for existing files)
91
- - Automatically creates parent directories if they don't exist
92
-
93
85
  ## search_replace
94
86
 
95
87
  Modify files with exact text replacement.
@@ -0,0 +1,45 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,118 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../../source/providers/github-copilot/converters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=converters.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converters.test.d.ts","sourceRoot":"","sources":["../../../source/providers/github-copilot/converters.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,162 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converters.test.js","sourceRoot":"","sources":["../../../source/providers/github-copilot/converters.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=github-copilot.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-copilot.provider.d.ts","sourceRoot":"","sources":["../../../source/providers/github-copilot/github-copilot.provider.ts"],"names":[],"mappings":""}