@qduc/term2 0.1.2 → 0.1.3

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 (235) hide show
  1. package/dist/agent.lite-mode.test.d.ts +2 -0
  2. package/dist/agent.lite-mode.test.d.ts.map +1 -0
  3. package/dist/agent.lite-mode.test.js +39 -0
  4. package/dist/agent.lite-mode.test.js.map +1 -0
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +3 -1
  7. package/dist/app.js.map +1 -1
  8. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  9. package/dist/components/ApprovalPrompt.js +20 -0
  10. package/dist/components/ApprovalPrompt.js.map +1 -1
  11. package/dist/components/InputBox.d.ts.map +1 -1
  12. package/dist/components/InputBox.js +2 -7
  13. package/dist/components/InputBox.js.map +1 -1
  14. package/dist/components/TextInput.d.ts.map +1 -1
  15. package/dist/components/TextInput.js +2 -1
  16. package/dist/components/TextInput.js.map +1 -1
  17. package/dist/components/TextInput.test.js.map +1 -1
  18. package/dist/debug_ask_mentor.d.ts +2 -0
  19. package/dist/debug_ask_mentor.d.ts.map +1 -0
  20. package/dist/debug_ask_mentor.js +73 -0
  21. package/dist/debug_ask_mentor.js.map +1 -0
  22. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  23. package/dist/hooks/use-model-selection.js +7 -3
  24. package/dist/hooks/use-model-selection.js.map +1 -1
  25. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  26. package/dist/hooks/use-settings-completion.js +3 -0
  27. package/dist/hooks/use-settings-completion.js.map +1 -1
  28. package/dist/hooks/use-settings-completion.test.js +6 -0
  29. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  30. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  31. package/dist/lib/openai-agent-client.js +35 -15
  32. package/dist/lib/openai-agent-client.js.map +1 -1
  33. package/dist/lib/tool-invoke.test.js +1 -1
  34. package/dist/lib/tool-invoke.test.js.map +1 -1
  35. package/dist/modes/companion/command-index.d.ts +26 -0
  36. package/dist/modes/companion/command-index.d.ts.map +1 -0
  37. package/dist/modes/companion/command-index.js +50 -0
  38. package/dist/modes/companion/command-index.js.map +1 -0
  39. package/dist/modes/companion/command-index.test.d.ts +2 -0
  40. package/dist/modes/companion/command-index.test.d.ts.map +1 -0
  41. package/dist/modes/companion/command-index.test.js +86 -0
  42. package/dist/modes/companion/command-index.test.js.map +1 -0
  43. package/dist/modes/companion/companion-app.d.ts +12 -0
  44. package/dist/modes/companion/companion-app.d.ts.map +1 -0
  45. package/dist/modes/companion/companion-app.js +297 -0
  46. package/dist/modes/companion/companion-app.js.map +1 -0
  47. package/dist/modes/companion/companion-session.d.ts +63 -0
  48. package/dist/modes/companion/companion-session.d.ts.map +1 -0
  49. package/dist/modes/companion/companion-session.js +146 -0
  50. package/dist/modes/companion/companion-session.js.map +1 -0
  51. package/dist/modes/companion/companion-session.test.d.ts +2 -0
  52. package/dist/modes/companion/companion-session.test.d.ts.map +1 -0
  53. package/dist/modes/companion/companion-session.test.js +28 -0
  54. package/dist/modes/companion/companion-session.test.js.map +1 -0
  55. package/dist/modes/companion/components/status-bar.d.ts +13 -0
  56. package/dist/modes/companion/components/status-bar.d.ts.map +1 -0
  57. package/dist/modes/companion/components/status-bar.js +26 -0
  58. package/dist/modes/companion/components/status-bar.js.map +1 -0
  59. package/dist/modes/companion/context-buffer.d.ts +65 -0
  60. package/dist/modes/companion/context-buffer.d.ts.map +1 -0
  61. package/dist/modes/companion/context-buffer.js +156 -0
  62. package/dist/modes/companion/context-buffer.js.map +1 -0
  63. package/dist/modes/companion/context-buffer.test.d.ts +2 -0
  64. package/dist/modes/companion/context-buffer.test.d.ts.map +1 -0
  65. package/dist/modes/companion/context-buffer.test.js +154 -0
  66. package/dist/modes/companion/context-buffer.test.js.map +1 -0
  67. package/dist/modes/companion/event-detector.d.ts +46 -0
  68. package/dist/modes/companion/event-detector.d.ts.map +1 -0
  69. package/dist/modes/companion/event-detector.js +169 -0
  70. package/dist/modes/companion/event-detector.js.map +1 -0
  71. package/dist/modes/companion/event-detector.test.d.ts +2 -0
  72. package/dist/modes/companion/event-detector.test.d.ts.map +1 -0
  73. package/dist/modes/companion/event-detector.test.js +121 -0
  74. package/dist/modes/companion/event-detector.test.js.map +1 -0
  75. package/dist/modes/companion/index.d.ts +33 -0
  76. package/dist/modes/companion/index.d.ts.map +1 -0
  77. package/dist/modes/companion/index.js +21 -0
  78. package/dist/modes/companion/index.js.map +1 -0
  79. package/dist/modes/companion/input-key-mapper.d.ts +3 -0
  80. package/dist/modes/companion/input-key-mapper.d.ts.map +1 -0
  81. package/dist/modes/companion/input-key-mapper.js +31 -0
  82. package/dist/modes/companion/input-key-mapper.js.map +1 -0
  83. package/dist/modes/companion/input-key-mapper.test.d.ts +2 -0
  84. package/dist/modes/companion/input-key-mapper.test.d.ts.map +1 -0
  85. package/dist/modes/companion/input-key-mapper.test.js +26 -0
  86. package/dist/modes/companion/input-key-mapper.test.js.map +1 -0
  87. package/dist/modes/companion/input-parser.d.ts +53 -0
  88. package/dist/modes/companion/input-parser.d.ts.map +1 -0
  89. package/dist/modes/companion/input-parser.js +114 -0
  90. package/dist/modes/companion/input-parser.js.map +1 -0
  91. package/dist/modes/companion/input-parser.test.d.ts +2 -0
  92. package/dist/modes/companion/input-parser.test.d.ts.map +1 -0
  93. package/dist/modes/companion/input-parser.test.js +123 -0
  94. package/dist/modes/companion/input-parser.test.js.map +1 -0
  95. package/dist/modes/companion/mode-manager.d.ts +41 -0
  96. package/dist/modes/companion/mode-manager.d.ts.map +1 -0
  97. package/dist/modes/companion/mode-manager.js +56 -0
  98. package/dist/modes/companion/mode-manager.js.map +1 -0
  99. package/dist/modes/companion/mode-manager.test.d.ts +2 -0
  100. package/dist/modes/companion/mode-manager.test.d.ts.map +1 -0
  101. package/dist/modes/companion/mode-manager.test.js +65 -0
  102. package/dist/modes/companion/mode-manager.test.js.map +1 -0
  103. package/dist/modes/companion/output-classifier.d.ts +15 -0
  104. package/dist/modes/companion/output-classifier.d.ts.map +1 -0
  105. package/dist/modes/companion/output-classifier.js +77 -0
  106. package/dist/modes/companion/output-classifier.js.map +1 -0
  107. package/dist/modes/companion/output-classifier.test.d.ts +2 -0
  108. package/dist/modes/companion/output-classifier.test.d.ts.map +1 -0
  109. package/dist/modes/companion/output-classifier.test.js +133 -0
  110. package/dist/modes/companion/output-classifier.test.js.map +1 -0
  111. package/dist/modes/companion/pty-wrapper.d.ts +46 -0
  112. package/dist/modes/companion/pty-wrapper.d.ts.map +1 -0
  113. package/dist/modes/companion/pty-wrapper.js +143 -0
  114. package/dist/modes/companion/pty-wrapper.js.map +1 -0
  115. package/dist/modes/companion/safety-classifier.d.ts +31 -0
  116. package/dist/modes/companion/safety-classifier.d.ts.map +1 -0
  117. package/dist/modes/companion/safety-classifier.js +140 -0
  118. package/dist/modes/companion/safety-classifier.js.map +1 -0
  119. package/dist/modes/companion/safety-classifier.test.d.ts +2 -0
  120. package/dist/modes/companion/safety-classifier.test.d.ts.map +1 -0
  121. package/dist/modes/companion/safety-classifier.test.js +151 -0
  122. package/dist/modes/companion/safety-classifier.test.js.map +1 -0
  123. package/dist/modes/companion/summarizer.d.ts +24 -0
  124. package/dist/modes/companion/summarizer.d.ts.map +1 -0
  125. package/dist/modes/companion/summarizer.js +132 -0
  126. package/dist/modes/companion/summarizer.js.map +1 -0
  127. package/dist/modes/companion/terminal-history.d.ts +27 -0
  128. package/dist/modes/companion/terminal-history.d.ts.map +1 -0
  129. package/dist/modes/companion/terminal-history.js +142 -0
  130. package/dist/modes/companion/terminal-history.js.map +1 -0
  131. package/dist/prompts/simple-mentor.md +8 -0
  132. package/dist/providers/openai-compatible/model.d.ts.map +1 -1
  133. package/dist/providers/openai-compatible/model.js +13 -2
  134. package/dist/providers/openai-compatible/model.js.map +1 -1
  135. package/dist/providers/openai-compatible/reasoning-content.test.js +2 -2
  136. package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -1
  137. package/dist/providers/openrouter/reasoning-content.test.js +2 -2
  138. package/dist/providers/openrouter/reasoning-content.test.js.map +1 -1
  139. package/dist/providers/openrouter.test.js +30 -21
  140. package/dist/providers/openrouter.test.js.map +1 -1
  141. package/dist/services/check_mock.d.ts +2 -0
  142. package/dist/services/check_mock.d.ts.map +1 -0
  143. package/dist/services/check_mock.js +22 -0
  144. package/dist/services/check_mock.js.map +1 -0
  145. package/dist/services/conversation-service.test.d.ts +2 -0
  146. package/dist/services/conversation-service.test.d.ts.map +1 -0
  147. package/dist/services/conversation-service.test.js +149 -183
  148. package/dist/services/conversation-service.test.js.map +1 -0
  149. package/dist/services/conversation-store.test.js +12 -11
  150. package/dist/services/conversation-store.test.js.map +1 -1
  151. package/dist/services/settings-service.d.ts +5 -2
  152. package/dist/services/settings-service.d.ts.map +1 -1
  153. package/dist/services/settings-service.js +12 -0
  154. package/dist/services/settings-service.js.map +1 -1
  155. package/dist/tools/ask-mentor.d.ts +1 -1
  156. package/dist/tools/ask-mentor.d.ts.map +1 -1
  157. package/dist/tools/ask-mentor.js +1 -0
  158. package/dist/tools/ask-mentor.js.map +1 -1
  159. package/dist/tools/find-files.d.ts +2 -2
  160. package/dist/tools/find-files.d.ts.map +1 -1
  161. package/dist/tools/find-files.js +2 -0
  162. package/dist/tools/find-files.js.map +1 -1
  163. package/dist/tools/grep.d.ts +1 -1
  164. package/dist/tools/grep.d.ts.map +1 -1
  165. package/dist/tools/grep.js +1 -0
  166. package/dist/tools/grep.js.map +1 -1
  167. package/dist/tools/read-file.d.ts.map +1 -1
  168. package/dist/tools/read-file.js +10 -9
  169. package/dist/tools/read-file.js.map +1 -1
  170. package/dist/tools/read-file.test.js +24 -19
  171. package/dist/tools/read-file.test.js.map +1 -1
  172. package/dist/tools/search-replace.d.ts +1 -1
  173. package/dist/tools/search-replace.d.ts.map +1 -1
  174. package/dist/tools/search-replace.js +129 -1
  175. package/dist/tools/search-replace.js.map +1 -1
  176. package/dist/tools/search-replace.test.js +18 -0
  177. package/dist/tools/search-replace.test.js.map +1 -1
  178. package/dist/tools/search.d.ts +4 -4
  179. package/dist/tools/search.d.ts.map +1 -1
  180. package/dist/tools/search.js +4 -0
  181. package/dist/tools/search.js.map +1 -1
  182. package/dist/tools/shell.d.ts +2 -2
  183. package/dist/tools/shell.d.ts.map +1 -1
  184. package/dist/tools/shell.js +2 -0
  185. package/dist/tools/shell.js.map +1 -1
  186. package/dist/tools/types.d.ts +2 -2
  187. package/dist/tools/types.d.ts.map +1 -1
  188. package/dist/utils/command-safety.d.ts.map +1 -1
  189. package/dist/utils/command-safety.devnull.test.d.ts +2 -0
  190. package/dist/utils/command-safety.devnull.test.d.ts.map +1 -0
  191. package/dist/utils/command-safety.devnull.test.js +13 -0
  192. package/dist/utils/command-safety.devnull.test.js.map +1 -0
  193. package/dist/utils/command-safety.js +10 -364
  194. package/dist/utils/command-safety.js.map +1 -1
  195. package/dist/utils/extract-command-messages.test.d.ts +2 -0
  196. package/dist/utils/extract-command-messages.test.d.ts.map +1 -0
  197. package/dist/utils/extract-command-messages.test.js +58 -51
  198. package/dist/utils/extract-command-messages.test.js.map +1 -0
  199. package/dist/utils/settings-command.d.ts.map +1 -1
  200. package/dist/utils/settings-command.js +13 -4
  201. package/dist/utils/settings-command.js.map +1 -1
  202. package/package.json +2 -2
  203. package/dist/app.model-command-feedback.test.d.ts +0 -2
  204. package/dist/app.model-command-feedback.test.d.ts.map +0 -1
  205. package/dist/app.model-command-feedback.test.js +0 -19
  206. package/dist/app.model-command-feedback.test.js.map +0 -1
  207. package/dist/components/MentorMode.test.d.ts +0 -2
  208. package/dist/components/MentorMode.test.d.ts.map +0 -1
  209. package/dist/components/MentorMode.test.js.map +0 -1
  210. package/dist/debug-schema.d.ts +0 -2
  211. package/dist/debug-schema.d.ts.map +0 -1
  212. package/dist/debug-schema.js +0 -22
  213. package/dist/debug-schema.js.map +0 -1
  214. package/dist/hooks/use-model-selection.test.d.ts +0 -2
  215. package/dist/hooks/use-model-selection.test.d.ts.map +0 -1
  216. package/dist/hooks/use-model-selection.test.js +0 -28
  217. package/dist/hooks/use-model-selection.test.js.map +0 -1
  218. package/dist/hooks/use-path-completion.test.d.ts +0 -2
  219. package/dist/hooks/use-path-completion.test.d.ts.map +0 -1
  220. package/dist/hooks/use-path-completion.test.js +0 -29
  221. package/dist/hooks/use-path-completion.test.js.map +0 -1
  222. package/dist/prompts/default.md.bak +0 -77
  223. package/dist/providers/openrouter.history.test.d.ts +0 -2
  224. package/dist/providers/openrouter.history.test.d.ts.map +0 -1
  225. package/dist/providers/openrouter.history.test.js +0 -533
  226. package/dist/providers/openrouter.history.test.js.map +0 -1
  227. package/dist/test-search-tool.d.ts +0 -2
  228. package/dist/test-search-tool.d.ts.map +0 -1
  229. package/dist/test-search-tool.js +0 -36
  230. package/dist/test-search-tool.js.map +0 -1
  231. package/dist/utils/extract-command-messages.repro.test.d.ts +0 -2
  232. package/dist/utils/extract-command-messages.repro.test.d.ts.map +0 -1
  233. package/dist/utils/extract-command-messages.repro.test.js +0 -31
  234. package/dist/utils/extract-command-messages.repro.test.js.map +0 -1
  235. /package/{README.md → readme.md} +0 -0
@@ -1,533 +0,0 @@
1
- import test from 'ava';
2
- import { OpenRouterModel, clearOpenRouterConversations } from './openrouter.js';
3
- import { settingsService } from '../services/settings-service.js';
4
- const originalFetch = globalThis.fetch;
5
- const originalGet = settingsService.get;
6
- const createJsonResponse = (body) => new Response(JSON.stringify(body), {
7
- status: 200,
8
- headers: { 'Content-Type': 'application/json' },
9
- });
10
- test.beforeEach(() => {
11
- clearOpenRouterConversations();
12
- settingsService.get = ((key) => {
13
- if (key === 'agent.openrouter.apiKey') {
14
- return 'mock-api-key';
15
- }
16
- return originalGet.call(settingsService, key);
17
- });
18
- });
19
- test.afterEach.always(() => {
20
- clearOpenRouterConversations();
21
- globalThis.fetch = originalFetch;
22
- settingsService.get = originalGet;
23
- });
24
- test.serial('previousResponseId maintains conversation history across turns', async (t) => {
25
- const requests = [];
26
- const responses = [
27
- // First turn response
28
- createJsonResponse({
29
- id: 'resp-1',
30
- choices: [
31
- {
32
- message: {
33
- content: 'Hi there! How can I help you?',
34
- },
35
- },
36
- ],
37
- usage: { prompt_tokens: 10, completion_tokens: 8, total_tokens: 18 },
38
- }),
39
- // Second turn response
40
- createJsonResponse({
41
- id: 'resp-2',
42
- choices: [
43
- {
44
- message: {
45
- content: "I'm doing well, thanks!",
46
- },
47
- },
48
- ],
49
- usage: { prompt_tokens: 25, completion_tokens: 6, total_tokens: 31 },
50
- }),
51
- // Third turn response
52
- createJsonResponse({
53
- id: 'resp-3',
54
- choices: [
55
- {
56
- message: {
57
- content: 'Glad to hear that!',
58
- },
59
- },
60
- ],
61
- usage: { prompt_tokens: 35, completion_tokens: 4, total_tokens: 39 },
62
- }),
63
- ];
64
- globalThis.fetch = async (_url, options) => {
65
- const body = JSON.parse(options.body);
66
- requests.push(body);
67
- return responses[requests.length - 1];
68
- };
69
- const model = new OpenRouterModel('mock-model');
70
- // First turn - provide explicit history in array form to bootstrap conversation
71
- const firstResponse = await model.getResponse({
72
- systemInstructions: 'You are a helpful assistant.',
73
- input: [
74
- { type: 'input_text', text: 'Hello' },
75
- ],
76
- previousResponseId: 'conv-1', // Use a conversation ID to enable history storage
77
- });
78
- t.truthy(firstResponse);
79
- t.is(firstResponse.responseId, 'resp-1');
80
- t.is(requests.length, 1);
81
- // Verify first turn request structure
82
- const firstRequest = requests[0];
83
- t.truthy(firstRequest);
84
- t.deepEqual(firstRequest.messages, [
85
- { role: 'system', content: 'You are a helpful assistant.' },
86
- { role: 'user', content: 'Hello' },
87
- ]);
88
- // Second turn - use previousResponseId to retrieve stored conversation history
89
- const secondResponse = await model.getResponse({
90
- systemInstructions: 'You are a helpful assistant.',
91
- input: 'How are you?',
92
- previousResponseId: firstResponse.responseId,
93
- });
94
- t.truthy(secondResponse);
95
- t.is(secondResponse.responseId, 'resp-2');
96
- t.is(requests.length, 2);
97
- // Verify second turn request includes history from first turn
98
- const secondRequest = requests[1];
99
- t.truthy(secondRequest);
100
- t.deepEqual(secondRequest.messages, [
101
- { role: 'system', content: 'You are a helpful assistant.' },
102
- // History from first turn (stored because we used previousResponseId in turn 1)
103
- { role: 'user', content: 'Hello' },
104
- { role: 'assistant', content: 'Hi there! How can I help you?' },
105
- // Current turn
106
- { role: 'user', content: 'How are you?' },
107
- ]);
108
- // Third turn - continue the conversation
109
- const thirdResponse = await model.getResponse({
110
- systemInstructions: 'You are a helpful assistant.',
111
- input: 'Great!',
112
- previousResponseId: secondResponse.responseId,
113
- });
114
- t.truthy(thirdResponse);
115
- t.is(thirdResponse.responseId, 'resp-3');
116
- t.is(requests.length, 3);
117
- // Verify third turn includes full conversation history
118
- const thirdRequest = requests[2];
119
- t.truthy(thirdRequest);
120
- t.deepEqual(thirdRequest.messages, [
121
- { role: 'system', content: 'You are a helpful assistant.' },
122
- { role: 'user', content: 'Hello' },
123
- { role: 'assistant', content: 'Hi there! How can I help you?' },
124
- { role: 'user', content: 'How are you?' },
125
- { role: 'assistant', content: "I'm doing well, thanks!" },
126
- { role: 'user', content: 'Great!' },
127
- ]);
128
- });
129
- test.serial('previousResponseId works with tool calls in history', async (t) => {
130
- const requests = [];
131
- const responses = [
132
- // First turn with tool call
133
- createJsonResponse({
134
- id: 'resp-1',
135
- choices: [
136
- {
137
- message: {
138
- content: null,
139
- tool_calls: [
140
- {
141
- id: 'call-123',
142
- type: 'function',
143
- function: {
144
- name: 'get_weather',
145
- arguments: '{"location":"San Francisco"}',
146
- },
147
- },
148
- ],
149
- },
150
- },
151
- ],
152
- usage: { prompt_tokens: 15, completion_tokens: 10, total_tokens: 25 },
153
- }),
154
- // Second turn response
155
- createJsonResponse({
156
- id: 'resp-2',
157
- choices: [
158
- {
159
- message: {
160
- content: 'Based on the weather data, it looks sunny in San Francisco!',
161
- },
162
- },
163
- ],
164
- usage: { prompt_tokens: 35, completion_tokens: 12, total_tokens: 47 },
165
- }),
166
- ];
167
- globalThis.fetch = async (_url, options) => {
168
- const body = JSON.parse(options.body);
169
- requests.push(body);
170
- return responses[requests.length - 1];
171
- };
172
- const model = new OpenRouterModel('mock-model');
173
- // First turn - model requests a tool call
174
- // Use a conversation ID to enable history storage
175
- const firstResponse = await model.getResponse({
176
- systemInstructions: 'You are a helpful assistant.',
177
- input: "What's the weather like?",
178
- previousResponseId: 'conv-1',
179
- tools: [
180
- {
181
- type: 'function',
182
- name: 'get_weather',
183
- description: 'Get weather for a location',
184
- parameters: {
185
- type: 'object',
186
- properties: {
187
- location: { type: 'string' },
188
- },
189
- },
190
- },
191
- ],
192
- });
193
- t.truthy(firstResponse);
194
- t.is(firstResponse.responseId, 'resp-1');
195
- t.is(requests.length, 1);
196
- // Second turn - provide tool result and continue conversation
197
- const secondResponse = await model.getResponse({
198
- systemInstructions: 'You are a helpful assistant.',
199
- input: [
200
- {
201
- type: 'function_call',
202
- id: 'call-123',
203
- callId: 'call-123',
204
- name: 'get_weather',
205
- arguments: '{"location":"San Francisco"}',
206
- },
207
- {
208
- type: 'function_call_result',
209
- callId: 'call-123',
210
- output: '{"temperature": 72, "condition": "sunny"}',
211
- },
212
- ],
213
- previousResponseId: firstResponse.responseId,
214
- });
215
- t.truthy(secondResponse);
216
- t.is(secondResponse.responseId, 'resp-2');
217
- t.is(requests.length, 2);
218
- // Verify second turn request includes tool call history
219
- const secondRequest = requests[1];
220
- t.truthy(secondRequest);
221
- t.deepEqual(secondRequest.messages, [
222
- { role: 'system', content: 'You are a helpful assistant.' },
223
- // History from first turn
224
- { role: 'user', content: "What's the weather like?" },
225
- {
226
- role: 'assistant',
227
- content: null,
228
- tool_calls: [
229
- {
230
- id: 'call-123',
231
- type: 'function',
232
- function: {
233
- name: 'get_weather',
234
- arguments: '{"location":"San Francisco"}',
235
- },
236
- },
237
- ],
238
- },
239
- // Current turn with tool result
240
- {
241
- role: 'assistant',
242
- content: null,
243
- tool_calls: [
244
- {
245
- id: 'call-123',
246
- type: 'function',
247
- function: {
248
- name: 'get_weather',
249
- arguments: '{"location":"San Francisco"}',
250
- },
251
- },
252
- ],
253
- },
254
- {
255
- role: 'tool',
256
- tool_call_id: 'call-123',
257
- content: '{"temperature": 72, "condition": "sunny"}',
258
- },
259
- ]);
260
- });
261
- test.serial('previousResponseId works with reasoning details in history', async (t) => {
262
- const requests = [];
263
- const responses = [
264
- // First turn with reasoning
265
- createJsonResponse({
266
- id: 'resp-1',
267
- choices: [
268
- {
269
- message: {
270
- content: 'The answer is 42.',
271
- reasoning_details: [
272
- { type: 'reasoning.text', text: 'Let me think about this...' },
273
- ],
274
- },
275
- },
276
- ],
277
- usage: { prompt_tokens: 10, completion_tokens: 15, total_tokens: 25 },
278
- }),
279
- // Second turn response
280
- createJsonResponse({
281
- id: 'resp-2',
282
- choices: [
283
- {
284
- message: {
285
- content: 'Yes, 42 is the answer to life, the universe, and everything!',
286
- },
287
- },
288
- ],
289
- usage: { prompt_tokens: 30, completion_tokens: 14, total_tokens: 44 },
290
- }),
291
- ];
292
- globalThis.fetch = async (_url, options) => {
293
- const body = JSON.parse(options.body);
294
- requests.push(body);
295
- return responses[requests.length - 1];
296
- };
297
- const model = new OpenRouterModel('mock-model');
298
- // First turn - model provides reasoning
299
- // Use a conversation ID to enable history storage
300
- const firstResponse = await model.getResponse({
301
- systemInstructions: 'You are a helpful assistant.',
302
- input: 'What is the meaning of life?',
303
- previousResponseId: 'conv-1',
304
- modelSettings: { reasoningEffort: 'high' },
305
- });
306
- t.truthy(firstResponse);
307
- t.is(firstResponse.responseId, 'resp-1');
308
- t.is(requests.length, 1);
309
- // Second turn - continue conversation
310
- const secondResponse = await model.getResponse({
311
- systemInstructions: 'You are a helpful assistant.',
312
- input: 'Are you sure about that?',
313
- previousResponseId: firstResponse.responseId,
314
- });
315
- t.truthy(secondResponse);
316
- t.is(secondResponse.responseId, 'resp-2');
317
- t.is(requests.length, 2);
318
- // Verify second turn request includes reasoning from first turn
319
- const secondRequest = requests[1];
320
- t.truthy(secondRequest);
321
- t.deepEqual(secondRequest.messages, [
322
- { role: 'system', content: 'You are a helpful assistant.' },
323
- // History from first turn
324
- { role: 'user', content: 'What is the meaning of life?' },
325
- {
326
- role: 'assistant',
327
- content: 'The answer is 42.',
328
- reasoning_details: [
329
- { type: 'reasoning.text', text: 'Let me think about this...' },
330
- ],
331
- },
332
- // Current turn
333
- { role: 'user', content: 'Are you sure about that?' },
334
- ]);
335
- });
336
- test.serial('multiple turns maintain complete conversation history', async (t) => {
337
- const requests = [];
338
- const responses = [
339
- createJsonResponse({
340
- id: 'resp-1',
341
- choices: [{ message: { content: 'Response 1' } }],
342
- usage: { prompt_tokens: 5, completion_tokens: 2, total_tokens: 7 },
343
- }),
344
- createJsonResponse({
345
- id: 'resp-2',
346
- choices: [{ message: { content: 'Response 2' } }],
347
- usage: { prompt_tokens: 10, completion_tokens: 2, total_tokens: 12 },
348
- }),
349
- createJsonResponse({
350
- id: 'resp-3',
351
- choices: [{ message: { content: 'Response 3' } }],
352
- usage: { prompt_tokens: 15, completion_tokens: 2, total_tokens: 17 },
353
- }),
354
- ];
355
- globalThis.fetch = async (_url, options) => {
356
- const body = JSON.parse(options.body);
357
- requests.push(body);
358
- return responses[requests.length - 1];
359
- };
360
- const model = new OpenRouterModel('mock-model');
361
- // Turn 1 - start with a conversation ID
362
- const resp1 = await model.getResponse({
363
- systemInstructions: 'System',
364
- input: 'Turn 1',
365
- previousResponseId: 'conv-1',
366
- });
367
- t.is(resp1.responseId, 'resp-1');
368
- // Turn 2
369
- const resp2 = await model.getResponse({
370
- systemInstructions: 'System',
371
- input: 'Turn 2',
372
- previousResponseId: resp1.responseId,
373
- });
374
- t.is(resp2.responseId, 'resp-2');
375
- // Turn 3
376
- const resp3 = await model.getResponse({
377
- systemInstructions: 'System',
378
- input: 'Turn 3',
379
- previousResponseId: resp2.responseId,
380
- });
381
- t.is(resp3.responseId, 'resp-3');
382
- // Verify turn 3 contains all history
383
- const thirdRequest = requests[2];
384
- t.deepEqual(thirdRequest.messages, [
385
- { role: 'system', content: 'System' },
386
- { role: 'user', content: 'Turn 1' },
387
- { role: 'assistant', content: 'Response 1' },
388
- { role: 'user', content: 'Turn 2' },
389
- { role: 'assistant', content: 'Response 2' },
390
- { role: 'user', content: 'Turn 3' },
391
- ]);
392
- });
393
- test.serial('without previousResponseId, no history is included', async (t) => {
394
- const requests = [];
395
- const responses = [
396
- createJsonResponse({
397
- id: 'resp-1',
398
- choices: [{ message: { content: 'First response' } }],
399
- usage: { prompt_tokens: 5, completion_tokens: 2, total_tokens: 7 },
400
- }),
401
- createJsonResponse({
402
- id: 'resp-2',
403
- choices: [{ message: { content: 'Second response' } }],
404
- usage: { prompt_tokens: 5, completion_tokens: 2, total_tokens: 7 },
405
- }),
406
- ];
407
- globalThis.fetch = async (_url, options) => {
408
- const body = JSON.parse(options.body);
409
- requests.push(body);
410
- return responses[requests.length - 1];
411
- };
412
- const model = new OpenRouterModel('mock-model');
413
- // First turn
414
- await model.getResponse({
415
- systemInstructions: 'System',
416
- input: 'First message',
417
- });
418
- // Second turn WITHOUT previousResponseId
419
- await model.getResponse({
420
- systemInstructions: 'System',
421
- input: 'Second message',
422
- });
423
- // Verify second request has no history
424
- const secondRequest = requests[1];
425
- t.deepEqual(secondRequest.messages, [
426
- { role: 'system', content: 'System' },
427
- { role: 'user', content: 'Second message' },
428
- ]);
429
- });
430
- test.serial('clearOpenRouterConversations removes specific conversation', async (t) => {
431
- const requests = [];
432
- const responses = [
433
- createJsonResponse({
434
- id: 'resp-1',
435
- choices: [{ message: { content: 'Response 1' } }],
436
- usage: { prompt_tokens: 5, completion_tokens: 2, total_tokens: 7 },
437
- }),
438
- createJsonResponse({
439
- id: 'resp-2',
440
- choices: [{ message: { content: 'Response 2' } }],
441
- usage: { prompt_tokens: 5, completion_tokens: 2, total_tokens: 7 },
442
- }),
443
- ];
444
- globalThis.fetch = async (_url, options) => {
445
- const body = JSON.parse(options.body);
446
- requests.push(body);
447
- return responses[requests.length - 1];
448
- };
449
- const model = new OpenRouterModel('mock-model');
450
- // First turn
451
- const resp1 = await model.getResponse({
452
- systemInstructions: 'System',
453
- input: 'First message',
454
- });
455
- // Clear the conversation
456
- clearOpenRouterConversations(resp1.responseId);
457
- // Second turn with previousResponseId should have no history (cleared)
458
- await model.getResponse({
459
- systemInstructions: 'System',
460
- input: 'Second message',
461
- previousResponseId: resp1.responseId,
462
- });
463
- // Verify second request has no history
464
- const secondRequest = requests[1];
465
- t.deepEqual(secondRequest.messages, [
466
- { role: 'system', content: 'System' },
467
- { role: 'user', content: 'Second message' },
468
- ]);
469
- });
470
- test.serial('previousResponseId works with streaming responses', async (t) => {
471
- const requests = [];
472
- const encoder = new TextEncoder();
473
- const createStream = (responseId, content) => new ReadableStream({
474
- start(controller) {
475
- controller.enqueue(encoder.encode(`data: {"id":"${responseId}","choices":[{"delta":{"content":"${content}"}}]}\n`));
476
- controller.enqueue(encoder.encode('data: [DONE]\n'));
477
- controller.close();
478
- },
479
- });
480
- const responses = [
481
- new Response(createStream('resp-1', 'Streaming response 1'), {
482
- status: 200,
483
- headers: { 'Content-Type': 'text/event-stream' },
484
- }),
485
- new Response(createStream('resp-2', 'Streaming response 2'), {
486
- status: 200,
487
- headers: { 'Content-Type': 'text/event-stream' },
488
- }),
489
- ];
490
- globalThis.fetch = async (_url, options) => {
491
- const body = JSON.parse(options.body);
492
- requests.push(body);
493
- return responses[requests.length - 1];
494
- };
495
- const model = new OpenRouterModel('mock-model');
496
- // First turn with streaming - use a conversation ID to enable history storage
497
- const events1 = [];
498
- for await (const event of model.getStreamedResponse({
499
- systemInstructions: 'System',
500
- input: 'First message',
501
- previousResponseId: 'conv-1', // Start with a conversation ID
502
- })) {
503
- events1.push(event);
504
- }
505
- t.true(events1.length > 0);
506
- const responseDone1 = events1.find(e => e.type === 'response_done');
507
- t.truthy(responseDone1);
508
- // When previousResponseId is provided, it's used as the responseId in streaming
509
- t.is(responseDone1.response.id, 'conv-1');
510
- // Second turn with streaming - use previousResponseId from first turn
511
- const events2 = [];
512
- for await (const event of model.getStreamedResponse({
513
- systemInstructions: 'System',
514
- input: 'Second message',
515
- previousResponseId: responseDone1.response.id,
516
- })) {
517
- events2.push(event);
518
- }
519
- t.true(events2.length > 0);
520
- const responseDone2 = events2.find(e => e.type === 'response_done');
521
- t.truthy(responseDone2);
522
- // Same conversation ID is reused
523
- t.is(responseDone2.response.id, 'conv-1');
524
- // Verify second request includes history from first streaming turn
525
- const secondRequest = requests[1];
526
- t.deepEqual(secondRequest.messages, [
527
- { role: 'system', content: 'System' },
528
- { role: 'user', content: 'First message' },
529
- { role: 'assistant', content: 'Streaming response 1' },
530
- { role: 'user', content: 'Second message' },
531
- ]);
532
- });
533
- //# sourceMappingURL=openrouter.history.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openrouter.history.test.js","sourceRoot":"","sources":["../../source/providers/openrouter.history.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=test-search-tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-search-tool.d.ts","sourceRoot":"","sources":["../source/test-search-tool.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- import { searchToolDefinition } from './tools/search.js';
2
- async function runTest() {
3
- console.log('Testing search tool...');
4
- try {
5
- // Test 1: Search for a known string in the current directory
6
- console.log('\nTest 1: Search for "searchToolDefinition" in source/tools/search.ts');
7
- const result1 = await searchToolDefinition.execute({
8
- pattern: 'searchToolDefinition',
9
- path: 'source/tools/search.ts',
10
- });
11
- console.log('Result 1:', result1);
12
- // Test 2: Search with file pattern
13
- console.log('\nTest 2: Search for "import" in source/tools/*.ts');
14
- const result2 = await searchToolDefinition.execute({
15
- pattern: 'import',
16
- path: 'source/tools',
17
- file_pattern: '*.ts',
18
- max_results: 5
19
- });
20
- console.log('Result 2:', result2);
21
- // Test 3: Search with exclude pattern
22
- console.log('\nTest 3: Search for "import" excluding search.ts');
23
- const result3 = await searchToolDefinition.execute({
24
- pattern: 'import',
25
- path: 'source/tools',
26
- exclude_pattern: 'search.ts',
27
- max_results: 5
28
- });
29
- console.log('Result 3:', result3);
30
- }
31
- catch (error) {
32
- console.error('Test failed:', error);
33
- }
34
- }
35
- runTest();
36
- //# sourceMappingURL=test-search-tool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-search-tool.js","sourceRoot":"","sources":["../source/test-search-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAEvD,KAAK,UAAU,OAAO;IACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,IAAI,CAAC;QACJ,6DAA6D;QAC7D,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC;YAClD,OAAO,EAAE,sBAAsB;YAC/B,IAAI,EAAE,wBAAwB;SAC9B,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAElC,mCAAmC;QACnC,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC;YAClD,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,CAAC;SACd,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE5B,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC;YAC/C,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,cAAc;YACpB,eAAe,EAAE,WAAW;YAC5B,WAAW,EAAE,CAAC;SACjB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;AACF,CAAC;AAED,OAAO,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=extract-command-messages.repro.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-command-messages.repro.test.d.ts","sourceRoot":"","sources":["../../source/utils/extract-command-messages.repro.test.ts"],"names":[],"mappings":""}
@@ -1,31 +0,0 @@
1
- import test from 'ava';
2
- import { extractCommandMessages } from './extract-command-messages.js';
3
- test('extractCommandMessages handles tool_call_id', t => {
4
- const historyItem = {
5
- role: 'tool',
6
- tool_call_id: 'call_123',
7
- content: JSON.stringify({ output: [{ success: false, error: 'failed' }] }),
8
- name: 'shell' // OpenAI messages don't always have name on tool output, but let's assume it might be there or inferred
9
- };
10
- // normalizeToolItem requires name.
11
- // In OpenAI history, the tool name is associated with the tool_call, not the tool output.
12
- // But extractCommandMessages seems to expect name on the item.
13
- // Let's see what normalizeToolItem expects.
14
- // const toolName = rawItem?.name ?? item.name;
15
- // If the history item doesn't have name, it returns null.
16
- // So result.history must contain items that have name.
17
- const item = {
18
- type: 'function_call_result', // or tool_call_output_item
19
- name: 'shell',
20
- tool_call_id: 'call_123',
21
- output: JSON.stringify({ output: [{ success: false, error: 'failed' }] })
22
- };
23
- const messages = extractCommandMessages([item]);
24
- t.is(messages.length, 1);
25
- // The ID should be derived from tool_call_id if possible
26
- // But currently it checks id, callId.
27
- // If tool_call_id is present but ignored, it uses timestamp-index.
28
- const id = messages[0].id;
29
- t.true(id.includes('call_123'), `ID ${id} should include call_123`);
30
- });
31
- //# sourceMappingURL=extract-command-messages.repro.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-command-messages.repro.test.js","sourceRoot":"","sources":["../../source/utils/extract-command-messages.repro.test.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AAErE,IAAI,CAAC,6CAA6C,EAAE,CAAC,CAAC,EAAE;IACpD,MAAM,WAAW,GAAG;QAChB,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,EAAC,CAAC;QACtE,IAAI,EAAE,OAAO,CAAC,wGAAwG;KACzH,CAAC;IAEF,mCAAmC;IACnC,0FAA0F;IAC1F,+DAA+D;IAE/D,4CAA4C;IAC5C,+CAA+C;IAE/C,0DAA0D;IAE1D,uDAAuD;IAEvD,MAAM,IAAI,GAAG;QACT,IAAI,EAAE,sBAAsB,EAAE,2BAA2B;QACzD,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,UAAU;QACxB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,EAAC,CAAC;KACxE,CAAC;IAEF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,yDAAyD;IACzD,sCAAsC;IAEtC,mEAAmE;IACnE,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,0BAA0B,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC"}
File without changes