@zhijiewang/openharness 0.9.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/README.md +87 -24
  2. package/dist/Tool.d.ts.map +1 -1
  3. package/dist/Tool.js +7 -1
  4. package/dist/Tool.js.map +1 -1
  5. package/dist/Tool.test.js +8 -2
  6. package/dist/Tool.test.js.map +1 -1
  7. package/dist/agents/roles.d.ts +25 -0
  8. package/dist/agents/roles.d.ts.map +1 -0
  9. package/dist/agents/roles.js +116 -0
  10. package/dist/agents/roles.js.map +1 -0
  11. package/dist/agents/roles.test.d.ts +2 -0
  12. package/dist/agents/roles.test.d.ts.map +1 -0
  13. package/dist/agents/roles.test.js +38 -0
  14. package/dist/agents/roles.test.js.map +1 -0
  15. package/dist/commands/commands-new.test.d.ts +5 -0
  16. package/dist/commands/commands-new.test.d.ts.map +1 -0
  17. package/dist/commands/commands-new.test.js +132 -0
  18. package/dist/commands/commands-new.test.js.map +1 -0
  19. package/dist/commands/commands.test.js +31 -0
  20. package/dist/commands/commands.test.js.map +1 -1
  21. package/dist/commands/index.d.ts +2 -0
  22. package/dist/commands/index.d.ts.map +1 -1
  23. package/dist/commands/index.js +199 -6
  24. package/dist/commands/index.js.map +1 -1
  25. package/dist/components/REPL.js +1 -1
  26. package/dist/components/REPL.js.map +1 -1
  27. package/dist/git/git.test.js +33 -1
  28. package/dist/git/git.test.js.map +1 -1
  29. package/dist/git/index.d.ts +12 -0
  30. package/dist/git/index.d.ts.map +1 -1
  31. package/dist/git/index.js +47 -2
  32. package/dist/git/index.js.map +1 -1
  33. package/dist/harness/checkpoints.d.ts +36 -0
  34. package/dist/harness/checkpoints.d.ts.map +1 -0
  35. package/dist/harness/checkpoints.js +156 -0
  36. package/dist/harness/checkpoints.js.map +1 -0
  37. package/dist/harness/config.d.ts +3 -0
  38. package/dist/harness/config.d.ts.map +1 -1
  39. package/dist/harness/config.js +35 -2
  40. package/dist/harness/config.js.map +1 -1
  41. package/dist/harness/config.test.js +21 -1
  42. package/dist/harness/config.test.js.map +1 -1
  43. package/dist/harness/hooks-env.test.d.ts +5 -0
  44. package/dist/harness/hooks-env.test.d.ts.map +1 -0
  45. package/dist/harness/hooks-env.test.js +41 -0
  46. package/dist/harness/hooks-env.test.js.map +1 -0
  47. package/dist/harness/hooks.d.ts +7 -0
  48. package/dist/harness/hooks.d.ts.map +1 -1
  49. package/dist/harness/hooks.js +14 -0
  50. package/dist/harness/hooks.js.map +1 -1
  51. package/dist/harness/keybindings.d.ts.map +1 -1
  52. package/dist/harness/keybindings.js +4 -0
  53. package/dist/harness/keybindings.js.map +1 -1
  54. package/dist/harness/memory.d.ts +19 -0
  55. package/dist/harness/memory.d.ts.map +1 -1
  56. package/dist/harness/memory.js +85 -0
  57. package/dist/harness/memory.js.map +1 -1
  58. package/dist/harness/onboarding.d.ts +1 -1
  59. package/dist/harness/onboarding.d.ts.map +1 -1
  60. package/dist/harness/onboarding.js +59 -4
  61. package/dist/harness/onboarding.js.map +1 -1
  62. package/dist/harness/onboarding.test.d.ts +5 -0
  63. package/dist/harness/onboarding.test.d.ts.map +1 -0
  64. package/dist/harness/onboarding.test.js +93 -0
  65. package/dist/harness/onboarding.test.js.map +1 -0
  66. package/dist/harness/rules.d.ts +6 -1
  67. package/dist/harness/rules.d.ts.map +1 -1
  68. package/dist/harness/rules.js +52 -5
  69. package/dist/harness/rules.js.map +1 -1
  70. package/dist/harness/rules.test.js +30 -1
  71. package/dist/harness/rules.test.js.map +1 -1
  72. package/dist/harness/session.d.ts +8 -1
  73. package/dist/harness/session.d.ts.map +1 -1
  74. package/dist/harness/session.js +13 -5
  75. package/dist/harness/session.js.map +1 -1
  76. package/dist/harness/store.d.ts +46 -0
  77. package/dist/harness/store.d.ts.map +1 -0
  78. package/dist/harness/store.js +56 -0
  79. package/dist/harness/store.js.map +1 -0
  80. package/dist/harness/store.test.d.ts +2 -0
  81. package/dist/harness/store.test.d.ts.map +1 -0
  82. package/dist/harness/store.test.js +71 -0
  83. package/dist/harness/store.test.js.map +1 -0
  84. package/dist/harness/submit-handler.d.ts +2 -0
  85. package/dist/harness/submit-handler.d.ts.map +1 -1
  86. package/dist/harness/submit-handler.js +3 -0
  87. package/dist/harness/submit-handler.js.map +1 -1
  88. package/dist/main.js +153 -26
  89. package/dist/main.js.map +1 -1
  90. package/dist/mcp/client.d.ts +2 -0
  91. package/dist/mcp/client.d.ts.map +1 -1
  92. package/dist/mcp/client.js +10 -2
  93. package/dist/mcp/client.js.map +1 -1
  94. package/dist/mcp/loader.d.ts +2 -0
  95. package/dist/mcp/loader.d.ts.map +1 -1
  96. package/dist/mcp/loader.js +34 -18
  97. package/dist/mcp/loader.js.map +1 -1
  98. package/dist/mcp/loader.test.d.ts +7 -0
  99. package/dist/mcp/loader.test.d.ts.map +1 -0
  100. package/dist/mcp/loader.test.js +25 -0
  101. package/dist/mcp/loader.test.js.map +1 -0
  102. package/dist/providers/anthropic-convert.test.d.ts +5 -0
  103. package/dist/providers/anthropic-convert.test.d.ts.map +1 -0
  104. package/dist/providers/anthropic-convert.test.js +98 -0
  105. package/dist/providers/anthropic-convert.test.js.map +1 -0
  106. package/dist/providers/anthropic.d.ts.map +1 -1
  107. package/dist/providers/anthropic.js +23 -4
  108. package/dist/providers/anthropic.js.map +1 -1
  109. package/dist/providers/stream-parsing.test.d.ts +6 -0
  110. package/dist/providers/stream-parsing.test.d.ts.map +1 -0
  111. package/dist/providers/stream-parsing.test.js +174 -0
  112. package/dist/providers/stream-parsing.test.js.map +1 -0
  113. package/dist/query/compress.d.ts +17 -0
  114. package/dist/query/compress.d.ts.map +1 -0
  115. package/dist/query/compress.js +115 -0
  116. package/dist/query/compress.js.map +1 -0
  117. package/dist/query/errors.d.ts +10 -0
  118. package/dist/query/errors.d.ts.map +1 -0
  119. package/dist/query/errors.js +22 -0
  120. package/dist/query/errors.js.map +1 -0
  121. package/dist/query/index.d.ts +15 -0
  122. package/dist/query/index.d.ts.map +1 -0
  123. package/dist/query/index.js +199 -0
  124. package/dist/query/index.js.map +1 -0
  125. package/dist/query/tools.d.ts +17 -0
  126. package/dist/query/tools.d.ts.map +1 -0
  127. package/dist/query/tools.js +129 -0
  128. package/dist/query/tools.js.map +1 -0
  129. package/dist/query/types.d.ts +31 -0
  130. package/dist/query/types.d.ts.map +1 -0
  131. package/dist/query/types.js +5 -0
  132. package/dist/query/types.js.map +1 -0
  133. package/dist/query.d.ts +8 -38
  134. package/dist/query.d.ts.map +1 -1
  135. package/dist/query.js +7 -444
  136. package/dist/query.js.map +1 -1
  137. package/dist/query.test.js +1 -1
  138. package/dist/query.test.js.map +1 -1
  139. package/dist/renderer/cells.d.ts.map +1 -1
  140. package/dist/renderer/cells.js +15 -2
  141. package/dist/renderer/cells.js.map +1 -1
  142. package/dist/renderer/colors.d.ts +8 -0
  143. package/dist/renderer/colors.d.ts.map +1 -0
  144. package/dist/renderer/colors.js +18 -0
  145. package/dist/renderer/colors.js.map +1 -0
  146. package/dist/renderer/diff.test.d.ts +5 -0
  147. package/dist/renderer/diff.test.d.ts.map +1 -0
  148. package/dist/renderer/diff.test.js +140 -0
  149. package/dist/renderer/diff.test.js.map +1 -0
  150. package/dist/renderer/differ.d.ts +1 -5
  151. package/dist/renderer/differ.d.ts.map +1 -1
  152. package/dist/renderer/differ.js +3 -20
  153. package/dist/renderer/differ.js.map +1 -1
  154. package/dist/renderer/e2e.test.js +136 -53
  155. package/dist/renderer/e2e.test.js.map +1 -1
  156. package/dist/renderer/image.test.d.ts +5 -0
  157. package/dist/renderer/image.test.d.ts.map +1 -0
  158. package/dist/renderer/image.test.js +66 -0
  159. package/dist/renderer/image.test.js.map +1 -0
  160. package/dist/renderer/index.d.ts +28 -16
  161. package/dist/renderer/index.d.ts.map +1 -1
  162. package/dist/renderer/index.js +289 -222
  163. package/dist/renderer/index.js.map +1 -1
  164. package/dist/renderer/layout.d.ts +14 -5
  165. package/dist/renderer/layout.d.ts.map +1 -1
  166. package/dist/renderer/layout.js +522 -388
  167. package/dist/renderer/layout.js.map +1 -1
  168. package/dist/renderer/markdown.d.ts.map +1 -1
  169. package/dist/renderer/markdown.js +42 -36
  170. package/dist/renderer/markdown.js.map +1 -1
  171. package/dist/renderer/perf.test.js +1 -4
  172. package/dist/renderer/perf.test.js.map +1 -1
  173. package/dist/renderer/session-browser.test.d.ts +6 -0
  174. package/dist/renderer/session-browser.test.d.ts.map +1 -0
  175. package/dist/renderer/session-browser.test.js +95 -0
  176. package/dist/renderer/session-browser.test.js.map +1 -0
  177. package/dist/renderer/ui-ux.test.d.ts +15 -0
  178. package/dist/renderer/ui-ux.test.d.ts.map +1 -0
  179. package/dist/renderer/ui-ux.test.js +470 -0
  180. package/dist/renderer/ui-ux.test.js.map +1 -0
  181. package/dist/repl.d.ts.map +1 -1
  182. package/dist/repl.js +192 -67
  183. package/dist/repl.js.map +1 -1
  184. package/dist/services/StreamingToolExecutor.d.ts.map +1 -1
  185. package/dist/services/StreamingToolExecutor.js +4 -2
  186. package/dist/services/StreamingToolExecutor.js.map +1 -1
  187. package/dist/services/agent-messaging.d.ts +68 -0
  188. package/dist/services/agent-messaging.d.ts.map +1 -0
  189. package/dist/services/agent-messaging.js +121 -0
  190. package/dist/services/agent-messaging.js.map +1 -0
  191. package/dist/services/agent-messaging.test.d.ts +2 -0
  192. package/dist/services/agent-messaging.test.d.ts.map +1 -0
  193. package/dist/services/agent-messaging.test.js +88 -0
  194. package/dist/services/agent-messaging.test.js.map +1 -0
  195. package/dist/services/cron.d.ts +40 -0
  196. package/dist/services/cron.d.ts.map +1 -0
  197. package/dist/services/cron.js +90 -0
  198. package/dist/services/cron.js.map +1 -0
  199. package/dist/services/cron.test.d.ts +2 -0
  200. package/dist/services/cron.test.d.ts.map +1 -0
  201. package/dist/services/cron.test.js +49 -0
  202. package/dist/services/cron.test.js.map +1 -0
  203. package/dist/tools/AgentTool/index.d.ts +9 -0
  204. package/dist/tools/AgentTool/index.d.ts.map +1 -1
  205. package/dist/tools/AgentTool/index.js +89 -6
  206. package/dist/tools/AgentTool/index.js.map +1 -1
  207. package/dist/tools/BashTool/index.d.ts +6 -0
  208. package/dist/tools/BashTool/index.d.ts.map +1 -1
  209. package/dist/tools/BashTool/index.js +39 -1
  210. package/dist/tools/BashTool/index.js.map +1 -1
  211. package/dist/tools/FileEditTool/index.js +4 -4
  212. package/dist/tools/FileEditTool/index.js.map +1 -1
  213. package/dist/tools/FileReadTool/index.d.ts +3 -0
  214. package/dist/tools/FileReadTool/index.d.ts.map +1 -1
  215. package/dist/tools/FileReadTool/index.js +102 -4
  216. package/dist/tools/FileReadTool/index.js.map +1 -1
  217. package/dist/tools/FileWriteTool/index.d.ts.map +1 -1
  218. package/dist/tools/FileWriteTool/index.js +20 -5
  219. package/dist/tools/FileWriteTool/index.js.map +1 -1
  220. package/dist/tools/GlobTool/index.d.ts.map +1 -1
  221. package/dist/tools/GlobTool/index.js +4 -61
  222. package/dist/tools/GlobTool/index.js.map +1 -1
  223. package/dist/tools/GrepTool/index.d.ts +30 -0
  224. package/dist/tools/GrepTool/index.d.ts.map +1 -1
  225. package/dist/tools/GrepTool/index.js +153 -72
  226. package/dist/tools/GrepTool/index.js.map +1 -1
  227. package/dist/tools/LSTool/index.d.ts +3 -0
  228. package/dist/tools/LSTool/index.d.ts.map +1 -1
  229. package/dist/tools/LSTool/index.js +44 -29
  230. package/dist/tools/LSTool/index.js.map +1 -1
  231. package/dist/tools/TaskCreateTool/index.d.ts +6 -0
  232. package/dist/tools/TaskCreateTool/index.d.ts.map +1 -1
  233. package/dist/tools/TaskCreateTool/index.js +8 -2
  234. package/dist/tools/TaskCreateTool/index.js.map +1 -1
  235. package/dist/tools/TaskGetTool/index.d.ts +12 -0
  236. package/dist/tools/TaskGetTool/index.d.ts.map +1 -0
  237. package/dist/tools/TaskGetTool/index.js +50 -0
  238. package/dist/tools/TaskGetTool/index.js.map +1 -0
  239. package/dist/tools/TaskOutputTool/index.d.ts +15 -0
  240. package/dist/tools/TaskOutputTool/index.d.ts.map +1 -0
  241. package/dist/tools/TaskOutputTool/index.js +45 -0
  242. package/dist/tools/TaskOutputTool/index.js.map +1 -0
  243. package/dist/tools/TaskStopTool/index.d.ts +15 -0
  244. package/dist/tools/TaskStopTool/index.d.ts.map +1 -0
  245. package/dist/tools/TaskStopTool/index.js +51 -0
  246. package/dist/tools/TaskStopTool/index.js.map +1 -0
  247. package/dist/tools/TaskUpdateTool/index.d.ts +21 -3
  248. package/dist/tools/TaskUpdateTool/index.d.ts.map +1 -1
  249. package/dist/tools/TaskUpdateTool/index.js +48 -3
  250. package/dist/tools/TaskUpdateTool/index.js.map +1 -1
  251. package/dist/tools/tools-basic.test.js +191 -2
  252. package/dist/tools/tools-basic.test.js.map +1 -1
  253. package/dist/tools.d.ts.map +1 -1
  254. package/dist/tools.js +6 -0
  255. package/dist/tools.js.map +1 -1
  256. package/dist/types/permissions.d.ts +2 -2
  257. package/dist/types/permissions.d.ts.map +1 -1
  258. package/dist/types/permissions.js +59 -13
  259. package/dist/types/permissions.js.map +1 -1
  260. package/dist/types/permissions.test.js +57 -0
  261. package/dist/types/permissions.test.js.map +1 -1
  262. package/dist/utils/bash-safety.d.ts +18 -0
  263. package/dist/utils/bash-safety.d.ts.map +1 -0
  264. package/dist/utils/bash-safety.js +227 -0
  265. package/dist/utils/bash-safety.js.map +1 -0
  266. package/dist/utils/bash-safety.test.d.ts +2 -0
  267. package/dist/utils/bash-safety.test.d.ts.map +1 -0
  268. package/dist/utils/bash-safety.test.js +112 -0
  269. package/dist/utils/bash-safety.test.js.map +1 -0
  270. package/dist/utils/fs.d.ts +15 -0
  271. package/dist/utils/fs.d.ts.map +1 -0
  272. package/dist/utils/fs.js +64 -0
  273. package/dist/utils/fs.js.map +1 -0
  274. package/dist/utils/fs.test.d.ts +5 -0
  275. package/dist/utils/fs.test.d.ts.map +1 -0
  276. package/dist/utils/fs.test.js +82 -0
  277. package/dist/utils/fs.test.js.map +1 -0
  278. package/dist/utils/safe-env.d.ts +10 -0
  279. package/dist/utils/safe-env.d.ts.map +1 -0
  280. package/dist/utils/safe-env.js +40 -0
  281. package/dist/utils/safe-env.js.map +1 -0
  282. package/package.json +3 -1
package/dist/repl.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Uses TerminalRenderer for display instead of Ink.
4
4
  */
5
5
  import { createAssistantMessage, createMessage, createInfoMessage } from './types/message.js';
6
- import { query } from './query.js';
6
+ import { query } from './query/index.js';
7
7
  import { createSession, saveSession, loadSession } from './harness/session.js';
8
8
  import { CostTracker, estimateCost, getContextWindow } from './harness/cost.js';
9
9
  import { autoCommitAIEdits, isGitRepo } from './git/index.js';
@@ -28,21 +28,32 @@ export async function startREPL(config) {
28
28
  if (config.theme)
29
29
  setActiveTheme(config.theme);
30
30
  const renderer = new TerminalRenderer();
31
+ // Set banner in live area (avoids the empty gap between scrollback banner and bottom-anchored input)
32
+ if (config.welcomeText) {
33
+ renderer.setBannerLines(config.welcomeText.split('\n'));
34
+ }
31
35
  // Session
32
36
  let session;
37
+ const sessionExtras = {
38
+ workingDir: process.cwd(),
39
+ gitBranch: isGitRepo() ? (await import('./git/index.js')).gitBranch() : undefined,
40
+ tools: config.tools.map(t => t.name),
41
+ };
33
42
  try {
34
43
  session = config.resumeSessionId
35
44
  ? loadSession(config.resumeSessionId)
36
- : createSession(config.provider.name, config.model ?? '');
45
+ : createSession(config.provider.name, config.model ?? '', sessionExtras);
37
46
  }
38
47
  catch {
39
- session = createSession(config.provider.name, config.model ?? '');
48
+ session = createSession(config.provider.name, config.model ?? '', sessionExtras);
40
49
  }
50
+ // Initialize checkpoints for file rewind
51
+ const { initCheckpoints } = await import('./harness/checkpoints.js');
52
+ initCheckpoints(session.id);
41
53
  const cost = new CostTracker();
42
54
  let cachedConfig = readOhConfig();
43
55
  let messages = config.resumeSessionId ? session.messages : (config.initialMessages ?? []);
44
- // Show banner on fresh sessions (set after renderer.start())
45
- const showBanner = messages.length === 0 && config.welcomeText;
56
+ // Banner is printed to stdout by main.tsx before renderer starts
46
57
  let loading = false;
47
58
  let currentModel = config.model ?? '';
48
59
  let abortController = null;
@@ -51,6 +62,7 @@ export async function startREPL(config) {
51
62
  let inputHistory = [];
52
63
  let historyIndex = -1;
53
64
  let vimMode = null;
65
+ let fastMode = false;
54
66
  let acSuggestions = [];
55
67
  let acDescriptions = [];
56
68
  let acIndex = -1;
@@ -139,7 +151,7 @@ export async function startREPL(config) {
139
151
  renderer.setCompanion([...frame0, nameLine], color);
140
152
  // Animate on timer
141
153
  renderer.onAnimation((frameIdx) => {
142
- if (loading || !companionVisible)
154
+ if (!companionVisible)
143
155
  return;
144
156
  const f = idleFrames[frameIdx % idleFrames.length] ?? idleFrames[0] ?? [];
145
157
  const lines = f.map((l) => l.replace('{E}', eyes));
@@ -150,7 +162,7 @@ export async function startREPL(config) {
150
162
  function syncRenderer() {
151
163
  renderer.setMessages(messages);
152
164
  renderer.setLoading(loading);
153
- const hints = `exit to quit${loading ? ' | Ctrl+C to interrupt' : ''}${companionConfig?.soul?.name ? ` | @${companionConfig.soul.name} to chat` : ''}`;
165
+ const hints = `exit to quit${loading ? ' | Ctrl+C stop | Ctrl+O thinking' : ' | Tab expand tools | Ctrl+O transcript'}${companionConfig?.soul?.name ? ` | @${companionConfig.soul.name}` : ''}`;
154
166
  renderer.setStatusHints(hints);
155
167
  // Status line: model | tokens | cost | ctx
156
168
  const inTok = cost.totalInputTokens;
@@ -216,33 +228,8 @@ export async function startREPL(config) {
216
228
  }
217
229
  return;
218
230
  }
219
- // Ctrl+F: enter search mode
220
- if (key.ctrl && key.char === 'f' && !loading) {
221
- renderer.enterSearchMode();
222
- return;
223
- }
224
- // Search mode intercepts all input
225
- if (renderer.isSearchMode()) {
226
- if (key.name === 'escape') {
227
- renderer.exitSearchMode();
228
- }
229
- else if (key.name === 'return' || key.name === 'down') {
230
- renderer.searchNext();
231
- }
232
- else if (key.name === 'up') {
233
- renderer.searchPrev();
234
- }
235
- else if (key.name === 'backspace') {
236
- const q = renderer.getSearchQuery();
237
- if (q.length > 0)
238
- renderer.setSearchQuery(q.slice(0, -1));
239
- }
240
- else if (key.char && key.char.length === 1 && !key.ctrl && !key.meta) {
241
- renderer.setSearchQuery(renderer.getSearchQuery() + key.char);
242
- }
243
- return;
244
- }
245
- // Vim mode toggle via escape
231
+ // Search: use terminal's native search (Ctrl+Shift+F in VS Code)
232
+ // Vim mode
246
233
  if (vimMode !== null) {
247
234
  if (key.name === 'escape') {
248
235
  vimMode = 'normal';
@@ -250,19 +237,136 @@ export async function startREPL(config) {
250
237
  return;
251
238
  }
252
239
  if (vimMode === 'normal') {
253
- if (key.char === 'i' || key.char === 'a') {
240
+ // -- Mode transitions --
241
+ if (key.char === 'i') {
254
242
  vimMode = 'insert';
255
243
  renderer.setVimMode(vimMode);
256
244
  return;
257
245
  }
258
- if (key.char === 'k' || key.name === 'up') {
259
- navigateHistory(-1);
246
+ if (key.char === 'a') {
247
+ vimMode = 'insert';
248
+ renderer.setVimMode(vimMode);
249
+ if (inputCursor < inputText.length)
250
+ inputCursor++;
251
+ renderer.setInputCursor(inputCursor);
252
+ return;
253
+ }
254
+ if (key.char === 'I') {
255
+ vimMode = 'insert';
256
+ renderer.setVimMode(vimMode);
257
+ inputCursor = 0;
258
+ renderer.setInputCursor(inputCursor);
259
+ return;
260
+ }
261
+ if (key.char === 'A') {
262
+ vimMode = 'insert';
263
+ renderer.setVimMode(vimMode);
264
+ inputCursor = inputText.length;
265
+ renderer.setInputCursor(inputCursor);
266
+ return;
267
+ }
268
+ if (key.char === 'o') {
269
+ vimMode = 'insert';
270
+ renderer.setVimMode(vimMode);
271
+ inputText = inputText + '\n';
272
+ inputCursor = inputText.length;
273
+ renderer.setInputText(inputText);
274
+ renderer.setInputCursor(inputCursor);
275
+ return;
276
+ }
277
+ // -- Movement --
278
+ if (key.char === 'h' || key.name === 'left') {
279
+ if (inputCursor > 0) {
280
+ inputCursor--;
281
+ renderer.setInputCursor(inputCursor);
282
+ }
283
+ return;
284
+ }
285
+ if (key.char === 'l' || key.name === 'right') {
286
+ if (inputCursor < inputText.length) {
287
+ inputCursor++;
288
+ renderer.setInputCursor(inputCursor);
289
+ }
260
290
  return;
261
291
  }
262
292
  if (key.char === 'j' || key.name === 'down') {
263
293
  navigateHistory(1);
264
294
  return;
265
295
  }
296
+ if (key.char === 'k' || key.name === 'up') {
297
+ navigateHistory(-1);
298
+ return;
299
+ }
300
+ if (key.char === '0') {
301
+ inputCursor = 0;
302
+ renderer.setInputCursor(inputCursor);
303
+ return;
304
+ }
305
+ if (key.char === '$') {
306
+ inputCursor = inputText.length;
307
+ renderer.setInputCursor(inputCursor);
308
+ return;
309
+ }
310
+ // Word forward (w)
311
+ if (key.char === 'w') {
312
+ const rest = inputText.slice(inputCursor);
313
+ const m = rest.match(/^\S*\s+/);
314
+ inputCursor = m ? Math.min(inputCursor + m[0].length, inputText.length) : inputText.length;
315
+ renderer.setInputCursor(inputCursor);
316
+ return;
317
+ }
318
+ // Word backward (b)
319
+ if (key.char === 'b') {
320
+ const before = inputText.slice(0, inputCursor);
321
+ const m = before.match(/\S+\s*$/);
322
+ inputCursor = m ? inputCursor - m[0].length : 0;
323
+ renderer.setInputCursor(inputCursor);
324
+ return;
325
+ }
326
+ // End of word (e)
327
+ if (key.char === 'e') {
328
+ const rest = inputText.slice(inputCursor + 1);
329
+ const m = rest.match(/^\s*\S*/);
330
+ inputCursor = m ? Math.min(inputCursor + 1 + m[0].length, inputText.length) : inputText.length;
331
+ renderer.setInputCursor(inputCursor);
332
+ return;
333
+ }
334
+ // -- Editing --
335
+ if (key.char === 'x') {
336
+ if (inputCursor < inputText.length) {
337
+ inputText = inputText.slice(0, inputCursor) + inputText.slice(inputCursor + 1);
338
+ if (inputCursor >= inputText.length && inputCursor > 0)
339
+ inputCursor--;
340
+ renderer.setInputText(inputText);
341
+ renderer.setInputCursor(inputCursor);
342
+ }
343
+ return;
344
+ }
345
+ // dd — delete entire line
346
+ if (key.char === 'd') {
347
+ // Simple: clear entire input (like dd in single-line mode)
348
+ inputText = '';
349
+ inputCursor = 0;
350
+ renderer.setInputText(inputText);
351
+ renderer.setInputCursor(inputCursor);
352
+ return;
353
+ }
354
+ // Submit with Enter even in normal mode
355
+ if (key.name === 'return') {
356
+ if (inputText.trim() && !loading) {
357
+ handleSubmit(inputText.trim());
358
+ inputHistory.unshift(inputText);
359
+ historyIndex = -1;
360
+ inputText = '';
361
+ inputCursor = 0;
362
+ acSuggestions = [];
363
+ acDescriptions = [];
364
+ renderer.setInputText(inputText);
365
+ renderer.setInputCursor(inputCursor);
366
+ renderer.setAutocomplete([], -1);
367
+ }
368
+ return;
369
+ }
266
370
  return; // swallow other keys in normal mode
267
371
  }
268
372
  }
@@ -301,38 +405,33 @@ export async function startREPL(config) {
301
405
  renderer.toggleCodeBlockExpansion();
302
406
  return;
303
407
  }
304
- // Ctrl+O: toggle thinking expansion
408
+ // Ctrl+O: cycle through views — thinking toggle → transcript (flush all to scrollback)
305
409
  if (key.ctrl && key.char === 'o') {
306
- renderer.toggleThinkingExpanded();
307
- return;
308
- }
309
- // Page Up/Down, Shift+Up/Down, and mouse scroll: scrollback navigation
310
- if (key.name === 'pageup') {
311
- renderer.scrollUp(10);
312
- return;
313
- }
314
- if (key.name === 'pagedown') {
315
- renderer.scrollDown(10);
316
- return;
317
- }
318
- if (key.shift && key.name === 'up') {
319
- renderer.scrollUp(3);
320
- return;
321
- }
322
- if (key.shift && key.name === 'down') {
323
- renderer.scrollDown(3);
410
+ if (loading) {
411
+ // During streaming: toggle thinking expansion
412
+ renderer.toggleThinkingExpanded();
413
+ }
414
+ else {
415
+ // When idle: flush all messages to scrollback for review (transcript mode)
416
+ // This makes the full conversation visible in native terminal scrollback
417
+ renderer.clearLiveArea();
418
+ renderer.setMessages(messages);
419
+ renderer.flushMessages();
420
+ renderer.notify('Transcript written to scrollback (scroll up to review)');
421
+ }
324
422
  return;
325
423
  }
424
+ // Scroll wheel: adjust manual scroll offset
326
425
  if (key.name === 'scrollup') {
327
- renderer.scrollUp(3);
426
+ renderer.scrollBy(3);
328
427
  return;
329
428
  }
330
429
  if (key.name === 'scrolldown') {
331
- renderer.scrollDown(3);
430
+ renderer.scrollBy(-3);
332
431
  return;
333
432
  }
334
- if (key.name === 'mouse')
335
- return; // ignore other mouse events
433
+ if (key.name === 'pageup' || key.name === 'pagedown' || key.name === 'mouse')
434
+ return;
336
435
  // Tab: autocomplete slash commands or file paths, or cycle tool call expansion
337
436
  if (key.name === 'tab' && !loading) {
338
437
  if (acSuggestions.length > 0) {
@@ -441,8 +540,7 @@ export async function startREPL(config) {
441
540
  renderer.setInputCursor(inputCursor);
442
541
  }
443
542
  async function handleSubmit(input) {
444
- // Clear welcome banner and any previous errors on new input
445
- renderer.setBanner(null);
543
+ // Clear any previous errors on new input
446
544
  renderer.setError(null);
447
545
  // Exit
448
546
  if (input === 'exit' || input === 'quit' || input === '/exit' || input === '/quit' || input === '/q') {
@@ -502,6 +600,17 @@ export async function startREPL(config) {
502
600
  messages = [...messages, createInfoMessage(vimMode ? 'Vim mode ON' : 'Vim mode OFF')];
503
601
  renderer.setVimMode(vimMode);
504
602
  }
603
+ if (result.fastModeToggled) {
604
+ fastMode = !fastMode;
605
+ messages = [...messages, createInfoMessage(fastMode ? 'Fast mode ON — optimized for speed' : 'Fast mode OFF')];
606
+ }
607
+ // Clear old live area BEFORE syncRenderer when a query will follow.
608
+ // syncRenderer → scheduleRender → queueMicrotask(render). The microtask fires
609
+ // at the next await boundary. Without clearing first, the render's flushMessages()
610
+ // writes on top of the old live area (banner/companion/input), causing double ❯
611
+ // and ghost artifacts.
612
+ if (result.prompt)
613
+ renderer.clearLiveArea();
505
614
  syncRenderer();
506
615
  if (result.handled)
507
616
  return;
@@ -509,6 +618,9 @@ export async function startREPL(config) {
509
618
  await runQuery(result.prompt);
510
619
  }
511
620
  async function runQuery(prompt) {
621
+ // Messages already set by handleSubmit's syncRenderer().
622
+ // Live area already cleared and flushed by the render microtask
623
+ // that fires between syncRenderer() and this await point.
512
624
  loading = true;
513
625
  renderer.setLoading(true);
514
626
  // Don't set thinkingStartedAt here — only on first thinking_delta event
@@ -523,10 +635,13 @@ export async function startREPL(config) {
523
635
  const askUserQuestion = (question, options) => {
524
636
  return renderer.askQuestion(question, options);
525
637
  };
638
+ const effectiveSystemPrompt = fastMode
639
+ ? config.systemPrompt + "\n\nIMPORTANT: Fast mode is active. Be extremely concise. Skip explanations. Go straight to the answer or action."
640
+ : config.systemPrompt;
526
641
  const queryConfig = {
527
642
  provider: config.provider,
528
643
  tools: config.tools,
529
- systemPrompt: config.systemPrompt,
644
+ systemPrompt: effectiveSystemPrompt,
530
645
  permissionMode: config.permissionMode,
531
646
  askUser,
532
647
  askUserQuestion,
@@ -537,7 +652,7 @@ export async function startREPL(config) {
537
652
  for await (const event of query(prompt, queryConfig, messages)) {
538
653
  switch (event.type) {
539
654
  case 'text_delta':
540
- renderer.scrollToBottom(); // auto-scroll on new content
655
+ // Content auto-scrolls via terminal native scrollback
541
656
  accumulated += event.content;
542
657
  // Move completed lines to messages, keep partial in streaming
543
658
  const lines = accumulated.split('\n');
@@ -696,11 +811,22 @@ export async function startREPL(config) {
696
811
  }
697
812
  }
698
813
  finally {
814
+ // Preserve partial streaming text on abort
815
+ if (accumulated) {
816
+ const last = messages[messages.length - 1];
817
+ if (last?.meta?.isStreaming) {
818
+ messages = [...messages.slice(0, -1), { ...last, content: last.content + accumulated, meta: {} }];
819
+ }
820
+ else {
821
+ messages = [...messages, createAssistantMessage(accumulated + '\n\n[interrupted]')];
822
+ }
823
+ accumulated = '';
824
+ }
699
825
  loading = false;
700
826
  abortController = null;
701
827
  renderer.setLoading(false);
702
828
  renderer.setStreamingText('');
703
- renderer.scrollToBottom(); // Reset scroll so user sees latest content
829
+ // Content auto-scrolls via terminal native scrollback
704
830
  syncRenderer();
705
831
  }
706
832
  }
@@ -724,8 +850,7 @@ export async function startREPL(config) {
724
850
  process.on('uncaughtException', (err) => { cleanup(); console.error('Fatal:', err); process.exit(1); });
725
851
  // Start
726
852
  renderer.start();
727
- if (showBanner)
728
- renderer.setBanner(config.welcomeText.split('\n'));
853
+ // Banner is already printed to stdout by main.tsx (visible in terminal scrollback)
729
854
  syncRenderer();
730
855
  }
731
856
  //# sourceMappingURL=repl.js.map
package/dist/repl.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingToolExecutor.d.ts","sourceRoot":"","sources":["../../src/services/StreamingToolExecutor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAQ,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAgBzE,qBAAa,qBAAqB;IAK9B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,WAAW,CAAC;IARtB,OAAO,CAAC,OAAO,CAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;gBAG3D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,EACpB,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,SAAS,YAAA,EACnB,WAAW,CAAC,EAAE,WAAW,YAAA;IAGnC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAYjC,OAAO,CAAC,YAAY;YAeN,WAAW;IAmExB,mBAAmB,IAAI,SAAS,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC;IAWvE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,IAAI,YAAY,IAAI,MAAM,CAEzB;CACF"}
1
+ {"version":3,"file":"StreamingToolExecutor.d.ts","sourceRoot":"","sources":["../../src/services/StreamingToolExecutor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAQ,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAgBzE,qBAAa,qBAAqB;IAK9B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,WAAW,CAAC;IARtB,OAAO,CAAC,OAAO,CAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;gBAG3D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,EACpB,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,SAAS,YAAA,EACnB,WAAW,CAAC,EAAE,WAAW,YAAA;IAGnC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAYjC,OAAO,CAAC,YAAY;YAeN,WAAW;IAuExB,mBAAmB,IAAI,SAAS,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC;IAWvE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,IAAI,YAAY,IAAI,MAAM,CAEzB;CACF"}
@@ -55,9 +55,11 @@ export class StreamingToolExecutor {
55
55
  return;
56
56
  }
57
57
  // Permission check
58
- const perm = checkPermission(this.permissionMode, tool.riskLevel, tool.isReadOnly(tracked.toolCall.arguments));
58
+ const perm = checkPermission(this.permissionMode, tool.riskLevel, tool.isReadOnly(tracked.toolCall.arguments), tool.name, tracked.toolCall.arguments);
59
59
  if (!perm.allowed && perm.reason === "needs-approval" && this.askUser) {
60
- const allowed = await this.askUser(tool.name, JSON.stringify(tracked.toolCall.arguments).slice(0, 200), tool.riskLevel);
60
+ const { formatToolArgs } = await import("../utils/tool-summary.js");
61
+ const description = formatToolArgs(tool.name, tracked.toolCall.arguments);
62
+ const allowed = await this.askUser(tool.name, description, tool.riskLevel);
61
63
  if (!allowed) {
62
64
  tracked.result = { output: "Permission denied.", isError: true };
63
65
  tracked.status = "completed";
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingToolExecutor.js","sourceRoot":"","sources":["../../src/services/StreamingToolExecutor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAa1D,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,MAAM,OAAO,qBAAqB;IAKtB;IACA;IACA;IACA;IACA;IARF,OAAO,GAAkB,EAAE,CAAC;IAC3B,YAAY,GAA6C,EAAE,CAAC;IAErE,YACU,KAAY,EACZ,OAAoB,EACpB,cAA8B,EAC9B,OAAmB,EACnB,WAAyB;QAJzB,UAAK,GAAL,KAAK,CAAO;QACZ,YAAO,GAAP,OAAO,CAAa;QACpB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,YAAO,GAAP,OAAO,CAAY;QACnB,gBAAW,GAAX,WAAW,CAAc;IAChC,CAAC;IAEJ,OAAO,CAAC,QAAkB;QACxB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,QAAQ;YACR,MAAM,EAAE,QAAQ;YAChB,iBAAiB,EAAE,MAAM;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QAEvE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,SAAS;YACvC,IAAI,SAAS,CAAC,MAAM,IAAI,eAAe;gBAAE,MAAM;YAC/C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,MAAM;YAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBAAE,MAAM;YAE/E,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAAoB;QAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,iBAAiB,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACzF,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC5C,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAChC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EACxD,IAAI,CAAC,SAAS,CACf,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACjE,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACrE,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,eAAe,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAClF,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvD,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,WAAW,GAAgB;YAC/B,GAAG,IAAI,CAAC,OAAO;YACf,MAAM;YACN,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;SACjF,CAAC;QACF,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,GAAG;gBACf,MAAM,EAAE,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACpE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,4BAA4B;IACnD,CAAC;IAED,CAAC,mBAAmB;QAClB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;gBACrB,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YACnD,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;gBAC5D,MAAM,CAAC,iDAAiD;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;IAC9F,CAAC;CACF"}
1
+ {"version":3,"file":"StreamingToolExecutor.js","sourceRoot":"","sources":["../../src/services/StreamingToolExecutor.ts"],"names":[],"mappings":"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"}