zelari-code 0.6.2 → 0.7.5

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 (95) hide show
  1. package/bin/zelari-code.js +1 -1
  2. package/dist/agents/councilApi.js +7 -7
  3. package/dist/agents/councilApi.js.map +1 -1
  4. package/dist/agents/councilDirectives.js +3 -3
  5. package/dist/agents/promoteMember.js +2 -2
  6. package/dist/agents/roles.js +50 -32
  7. package/dist/agents/roles.js.map +1 -1
  8. package/dist/agents/skills/builtin/debugging.js +4 -4
  9. package/dist/agents/skills/builtin/debugging.js.map +1 -1
  10. package/dist/agents/skills/builtin/docs.js +23 -13
  11. package/dist/agents/skills/builtin/docs.js.map +1 -1
  12. package/dist/agents/skills/builtin/git-ops.js +3 -3
  13. package/dist/agents/skills/builtin/git-ops.js.map +1 -1
  14. package/dist/agents/skills/builtin/planning.js +4 -4
  15. package/dist/agents/skills/builtin/planning.js.map +1 -1
  16. package/dist/agents/skills/builtin/refactoring.js +3 -3
  17. package/dist/agents/skills/builtin/refactoring.js.map +1 -1
  18. package/dist/agents/skills/builtin/review.js +9 -9
  19. package/dist/agents/skills/builtin/review.js.map +1 -1
  20. package/dist/agents/skills/builtin/testing.js +3 -3
  21. package/dist/agents/skills/builtin/testing.js.map +1 -1
  22. package/dist/agents/tools.js +2 -9
  23. package/dist/agents/tools.js.map +1 -1
  24. package/dist/cli/app.js +63 -29
  25. package/dist/cli/app.js.map +1 -1
  26. package/dist/cli/components/ChatStream.js +40 -126
  27. package/dist/cli/components/ChatStream.js.map +1 -1
  28. package/dist/cli/components/CollapsibleToolOutput.js +8 -26
  29. package/dist/cli/components/CollapsibleToolOutput.js.map +1 -1
  30. package/dist/cli/components/Header.js +6 -18
  31. package/dist/cli/components/Header.js.map +1 -1
  32. package/dist/cli/components/LiveRegion.js +54 -0
  33. package/dist/cli/components/LiveRegion.js.map +1 -0
  34. package/dist/cli/components/Sidebar.js +33 -31
  35. package/dist/cli/components/Sidebar.js.map +1 -1
  36. package/dist/cli/components/StatusBar.js +42 -0
  37. package/dist/cli/components/StatusBar.js.map +1 -0
  38. package/dist/cli/components/ToolOutput.js +68 -0
  39. package/dist/cli/components/ToolOutput.js.map +1 -0
  40. package/dist/cli/components/toolFormat.js +195 -0
  41. package/dist/cli/components/toolFormat.js.map +1 -0
  42. package/dist/cli/grokOAuth.js +93 -75
  43. package/dist/cli/grokOAuth.js.map +1 -1
  44. package/dist/cli/hooks/chatState.js +139 -0
  45. package/dist/cli/hooks/chatState.js.map +1 -0
  46. package/dist/cli/hooks/eventsToMessages.js +1 -1
  47. package/dist/cli/hooks/eventsToMessages.js.map +1 -1
  48. package/dist/cli/hooks/messageHelpers.js +11 -4
  49. package/dist/cli/hooks/messageHelpers.js.map +1 -1
  50. package/dist/cli/hooks/useBatchedMessages.js +14 -10
  51. package/dist/cli/hooks/useBatchedMessages.js.map +1 -1
  52. package/dist/cli/hooks/useChatTurn.js +400 -87
  53. package/dist/cli/hooks/useChatTurn.js.map +1 -1
  54. package/dist/cli/hooks/useSession.js +23 -11
  55. package/dist/cli/hooks/useSession.js.map +1 -1
  56. package/dist/cli/hooks/useSlashDispatch.js +9 -1
  57. package/dist/cli/hooks/useSlashDispatch.js.map +1 -1
  58. package/dist/cli/main.bundled.js +16972 -15277
  59. package/dist/cli/main.bundled.js.map +4 -4
  60. package/dist/cli/main.js +35 -1
  61. package/dist/cli/main.js.map +1 -1
  62. package/dist/cli/mcp/mcpClient.js +152 -0
  63. package/dist/cli/mcp/mcpClient.js.map +1 -0
  64. package/dist/cli/mcp/mcpManager.js +139 -0
  65. package/dist/cli/mcp/mcpManager.js.map +1 -0
  66. package/dist/cli/refreshRegistry.js +9 -6
  67. package/dist/cli/refreshRegistry.js.map +1 -1
  68. package/dist/cli/skillsMd.js +155 -0
  69. package/dist/cli/skillsMd.js.map +1 -0
  70. package/dist/cli/slashHandlers/skills.js +16 -0
  71. package/dist/cli/slashHandlers/skills.js.map +1 -1
  72. package/dist/cli/toolRegistry.js +31 -0
  73. package/dist/cli/toolRegistry.js.map +1 -1
  74. package/dist/cli/wizard/index.js +1 -1
  75. package/dist/cli/workspace/paths.js +20 -13
  76. package/dist/cli/workspace/paths.js.map +1 -1
  77. package/dist/cli/workspace/storage.js +7 -3
  78. package/dist/cli/workspace/storage.js.map +1 -1
  79. package/dist/cli/workspace/stubs.js +122 -44
  80. package/dist/cli/workspace/stubs.js.map +1 -1
  81. package/dist/cli/workspace/workspaceSummary.js +255 -0
  82. package/dist/cli/workspace/workspaceSummary.js.map +1 -0
  83. package/dist/main/core/AgentHarness.js +36 -7
  84. package/dist/main/core/AgentHarness.js.map +1 -1
  85. package/dist/main/core/tools/builtin/listFiles.js +43 -5
  86. package/dist/main/core/tools/builtin/listFiles.js.map +1 -1
  87. package/dist/main/core/tools/builtin/search.js +28 -120
  88. package/dist/main/core/tools/builtin/search.js.map +1 -1
  89. package/package.json +2 -2
  90. package/dist/cli/oauthCallbackServer.js +0 -207
  91. package/dist/cli/oauthCallbackServer.js.map +0 -1
  92. package/dist/main/core/tools/builtin/_walk.js +0 -129
  93. package/dist/main/core/tools/builtin/_walk.js.map +0 -1
  94. package/dist/main/core/tools/builtin/diff.js +0 -477
  95. package/dist/main/core/tools/builtin/diff.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolFormat.js","sourceRoot":"","sources":["../../../src/cli/components/toolFormat.ts"],"names":[],"mappings":"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"}
@@ -32,29 +32,29 @@ export class GrokOAuthError extends Error {
32
32
  constructor(message, code) {
33
33
  super(message);
34
34
  this.code = code;
35
- this.name = 'GrokOAuthError';
35
+ this.name = "GrokOAuthError";
36
36
  }
37
37
  }
38
38
  /**
39
39
  * Default xAI OAuth client ID — public client registered for SuperGrok OAuth
40
40
  * (same as used by the reference supergrok-oauth Python client + Grok-CLI).
41
41
  */
42
- export const DEFAULT_GROK_OAUTH_CLIENT_ID = 'b1a00492-073a-47ea-816f-4c329264a828';
42
+ export const DEFAULT_GROK_OAUTH_CLIENT_ID = "b1a00492-073a-47ea-816f-4c329264a828";
43
43
  /** Default OAuth scopes for full SuperGrok access. */
44
44
  export const DEFAULT_GROK_OAUTH_SCOPES = [
45
- 'openid',
46
- 'profile',
47
- 'email',
48
- 'offline_access',
49
- 'grok-cli:access',
50
- 'api:access',
45
+ "openid",
46
+ "profile",
47
+ "email",
48
+ "offline_access",
49
+ "grok-cli:access",
50
+ "api:access",
51
51
  ];
52
52
  /** Default device-code endpoint. */
53
- export const DEFAULT_DEVICE_CODE_ENDPOINT = 'https://auth.x.ai/oauth2/device/code';
53
+ export const DEFAULT_DEVICE_CODE_ENDPOINT = "https://auth.x.ai/oauth2/device/code";
54
54
  /** Default token endpoint (shared by device poll + refresh). */
55
- export const DEFAULT_TOKEN_ENDPOINT = 'https://auth.x.ai/oauth2/token';
55
+ export const DEFAULT_TOKEN_ENDPOINT = "https://auth.x.ai/oauth2/token";
56
56
  /** Device-code grant type URN (RFC 8628). */
57
- export const DEVICE_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:device_code';
57
+ export const DEVICE_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:device_code";
58
58
  /** Default overall authorization timeout (5 minutes). */
59
59
  export const DEFAULT_OAUTH_TIMEOUT_MS = 300_000;
60
60
  const defaultSleep = (ms) => new Promise((r) => setTimeout(r, ms));
@@ -71,22 +71,22 @@ export async function requestDeviceCode(options) {
71
71
  let response;
72
72
  try {
73
73
  response = await fetchImpl(endpoint, {
74
- method: 'POST',
74
+ method: "POST",
75
75
  headers: {
76
- 'Content-Type': 'application/x-www-form-urlencoded',
77
- Accept: 'application/json',
76
+ "Content-Type": "application/x-www-form-urlencoded",
77
+ Accept: "application/json",
78
78
  },
79
79
  body: new URLSearchParams({
80
80
  client_id: options.clientId,
81
- scope: scopes.join(' '),
81
+ scope: scopes.join(" "),
82
82
  }).toString(),
83
83
  });
84
84
  }
85
85
  catch (err) {
86
- throw new GrokOAuthError(`Device code request network error: ${err instanceof Error ? err.message : String(err)}`, 'device_code_network_error');
86
+ throw new GrokOAuthError(`Device code request network error: ${err instanceof Error ? err.message : String(err)}`, "device_code_network_error");
87
87
  }
88
88
  if (!response.ok) {
89
- const errText = await response.text().catch(() => '');
89
+ const errText = await response.text().catch(() => "");
90
90
  throw new GrokOAuthError(`Device code request HTTP ${response.status}: ${errText.slice(0, 200)}`, `device_code_http_${response.status}`);
91
91
  }
92
92
  let body;
@@ -96,31 +96,36 @@ export async function requestDeviceCode(options) {
96
96
  catch (err) {
97
97
  throw new GrokOAuthError(`Device code response invalid JSON: ${err instanceof Error ? err.message : String(err)}`);
98
98
  }
99
- if (!body || typeof body !== 'object') {
100
- throw new GrokOAuthError('Device code response is not an object');
99
+ if (!body || typeof body !== "object") {
100
+ throw new GrokOAuthError("Device code response is not an object");
101
101
  }
102
102
  const obj = body;
103
103
  const deviceCode = obj.device_code;
104
104
  const userCode = obj.user_code;
105
105
  const verificationUri = obj.verification_uri;
106
- if (typeof deviceCode !== 'string' || deviceCode.length === 0) {
107
- throw new GrokOAuthError('Device code response missing device_code', 'no_device_code');
106
+ if (typeof deviceCode !== "string" || deviceCode.length === 0) {
107
+ throw new GrokOAuthError("Device code response missing device_code", "no_device_code");
108
108
  }
109
- if (typeof userCode !== 'string' || userCode.length === 0) {
110
- throw new GrokOAuthError('Device code response missing user_code', 'no_user_code');
109
+ if (typeof userCode !== "string" || userCode.length === 0) {
110
+ throw new GrokOAuthError("Device code response missing user_code", "no_user_code");
111
111
  }
112
- if (typeof verificationUri !== 'string' || verificationUri.length === 0) {
113
- throw new GrokOAuthError('Device code response missing verification_uri', 'no_verification_uri');
112
+ if (typeof verificationUri !== "string" || verificationUri.length === 0) {
113
+ throw new GrokOAuthError("Device code response missing verification_uri", "no_verification_uri");
114
114
  }
115
115
  return {
116
116
  deviceCode,
117
117
  userCode,
118
118
  verificationUri,
119
- ...(typeof obj.verification_uri_complete === 'string' && obj.verification_uri_complete.length > 0
119
+ ...(typeof obj.verification_uri_complete === "string" &&
120
+ obj.verification_uri_complete.length > 0
120
121
  ? { verificationUriComplete: obj.verification_uri_complete }
121
122
  : {}),
122
- expiresIn: typeof obj.expires_in === 'number' && Number.isFinite(obj.expires_in) ? obj.expires_in : 1800,
123
- interval: typeof obj.interval === 'number' && Number.isFinite(obj.interval) ? obj.interval : 5,
123
+ expiresIn: typeof obj.expires_in === "number" && Number.isFinite(obj.expires_in)
124
+ ? obj.expires_in
125
+ : 1800,
126
+ interval: typeof obj.interval === "number" && Number.isFinite(obj.interval)
127
+ ? obj.interval
128
+ : 5,
124
129
  };
125
130
  }
126
131
  /**
@@ -129,13 +134,14 @@ export async function requestDeviceCode(options) {
129
134
  */
130
135
  function parseTokenResponseBody(obj, accessToken) {
131
136
  const result = { accessToken };
132
- if (typeof obj.expires_in === 'number' && Number.isFinite(obj.expires_in)) {
137
+ if (typeof obj.expires_in === "number" && Number.isFinite(obj.expires_in)) {
133
138
  result.expiresAt = Date.now() + obj.expires_in * 1000;
134
139
  }
135
- if (typeof obj.refresh_token === 'string' && obj.refresh_token.length > 0) {
140
+ if (typeof obj.refresh_token === "string" && obj.refresh_token.length > 0) {
136
141
  result.refreshToken = obj.refresh_token;
137
142
  }
138
- if (typeof obj.refresh_token_expires_in === 'number' && Number.isFinite(obj.refresh_token_expires_in)) {
143
+ if (typeof obj.refresh_token_expires_in === "number" &&
144
+ Number.isFinite(obj.refresh_token_expires_in)) {
139
145
  result.refreshExpiresAt = Date.now() + obj.refresh_token_expires_in * 1000;
140
146
  }
141
147
  return result;
@@ -160,15 +166,15 @@ export async function pollForDeviceToken(options) {
160
166
  // eslint-disable-next-line no-constant-condition
161
167
  while (true) {
162
168
  if (Date.now() >= deadline) {
163
- throw new GrokOAuthError('Device authorization timed out waiting for user approval', 'timeout');
169
+ throw new GrokOAuthError("Device authorization timed out waiting for user approval", "timeout");
164
170
  }
165
171
  let response;
166
172
  try {
167
173
  response = await fetchImpl(endpoint, {
168
- method: 'POST',
174
+ method: "POST",
169
175
  headers: {
170
- 'Content-Type': 'application/x-www-form-urlencoded',
171
- Accept: 'application/json',
176
+ "Content-Type": "application/x-www-form-urlencoded",
177
+ Accept: "application/json",
172
178
  },
173
179
  body: new URLSearchParams({
174
180
  grant_type: DEVICE_GRANT_TYPE,
@@ -178,7 +184,7 @@ export async function pollForDeviceToken(options) {
178
184
  });
179
185
  }
180
186
  catch (err) {
181
- throw new GrokOAuthError(`Token poll network error: ${err instanceof Error ? err.message : String(err)}`, 'poll_network_error');
187
+ throw new GrokOAuthError(`Token poll network error: ${err instanceof Error ? err.message : String(err)}`, "poll_network_error");
182
188
  }
183
189
  // Success: 200 with access_token.
184
190
  if (response.ok) {
@@ -189,13 +195,13 @@ export async function pollForDeviceToken(options) {
189
195
  catch (err) {
190
196
  throw new GrokOAuthError(`Token response invalid JSON: ${err instanceof Error ? err.message : String(err)}`);
191
197
  }
192
- if (!body || typeof body !== 'object') {
193
- throw new GrokOAuthError('Token response is not an object');
198
+ if (!body || typeof body !== "object") {
199
+ throw new GrokOAuthError("Token response is not an object");
194
200
  }
195
201
  const obj = body;
196
202
  const accessToken = obj.access_token;
197
- if (typeof accessToken !== 'string' || accessToken.length === 0) {
198
- throw new GrokOAuthError('Token response missing access_token', 'no_access_token');
203
+ if (typeof accessToken !== "string" || accessToken.length === 0) {
204
+ throw new GrokOAuthError("Token response missing access_token", "no_access_token");
199
205
  }
200
206
  return parseTokenResponseBody(obj, accessToken);
201
207
  }
@@ -203,33 +209,35 @@ export async function pollForDeviceToken(options) {
203
209
  let errBody = {};
204
210
  try {
205
211
  const parsed = await response.json();
206
- if (parsed && typeof parsed === 'object')
212
+ if (parsed && typeof parsed === "object")
207
213
  errBody = parsed;
208
214
  }
209
215
  catch {
210
216
  // Non-JSON error body — treat as transient and keep polling unless 4xx is definitive.
211
217
  }
212
- const errorCode = typeof errBody.error === 'string' ? errBody.error : `http_${response.status}`;
218
+ const errorCode = typeof errBody.error === "string"
219
+ ? errBody.error
220
+ : `http_${response.status}`;
213
221
  switch (errorCode) {
214
- case 'authorization_pending':
222
+ case "authorization_pending":
215
223
  await sleep(interval * 1000);
216
224
  continue;
217
- case 'slow_down':
225
+ case "slow_down":
218
226
  // RFC 8628 §3.5: increase the interval by 5 seconds.
219
227
  interval += 5;
220
228
  await sleep(interval * 1000);
221
229
  continue;
222
- case 'expired_token':
223
- case 'expired':
224
- throw new GrokOAuthError('Device code expired before user authorized', 'expired');
225
- case 'access_denied':
226
- case 'denied':
227
- throw new GrokOAuthError('User denied the authorization request', 'denied');
228
- case 'invalid_grant':
229
- throw new GrokOAuthError('Device code rejected (invalid_grant)', 'invalid_grant');
230
+ case "expired_token":
231
+ case "expired":
232
+ throw new GrokOAuthError("Device code expired before user authorized", "expired");
233
+ case "access_denied":
234
+ case "denied":
235
+ throw new GrokOAuthError("User denied the authorization request", "denied");
236
+ case "invalid_grant":
237
+ throw new GrokOAuthError("Device code rejected (invalid_grant)", "invalid_grant");
230
238
  default:
231
239
  // Unknown error — surface it rather than polling forever.
232
- throw new GrokOAuthError(`Token poll error: ${errorCode}${typeof errBody.error_description === 'string' ? ` — ${errBody.error_description}` : ''}`, errorCode);
240
+ throw new GrokOAuthError(`Token poll error: ${errorCode}${typeof errBody.error_description === "string" ? ` — ${errBody.error_description}` : ""}`, errorCode);
233
241
  }
234
242
  }
235
243
  }
@@ -245,9 +253,11 @@ export async function pollForDeviceToken(options) {
245
253
  * @throws GrokOAuthError on any failure (network, denied, expired, timeout).
246
254
  */
247
255
  export async function runGrokOAuthFlow(options = {}) {
248
- const clientId = options.clientId || process.env.GROK_OAUTH_CLIENT_ID || DEFAULT_GROK_OAUTH_CLIENT_ID;
256
+ const clientId = options.clientId ||
257
+ process.env.GROK_OAUTH_CLIENT_ID ||
258
+ DEFAULT_GROK_OAUTH_CLIENT_ID;
249
259
  if (!clientId || clientId.trim().length === 0) {
250
- throw new GrokOAuthError('Missing clientId', 'no_client_id');
260
+ throw new GrokOAuthError("Missing clientId", "no_client_id");
251
261
  }
252
262
  // Step 1: request device code.
253
263
  const deviceAuth = await requestDeviceCode({
@@ -263,7 +273,7 @@ export async function runGrokOAuthFlow(options = {}) {
263
273
  // Step 3: open the browser to the verification URI (best-effort, non-blocking).
264
274
  // Prefer verification_uri_complete when provided (pre-fills the user_code).
265
275
  try {
266
- await openBrowser(deviceAuth.verificationUriComplete ?? deviceAuth.verificationUri);
276
+ await (options.openBrowserImpl ?? openBrowser)(deviceAuth.verificationUriComplete ?? deviceAuth.verificationUri);
267
277
  }
268
278
  catch {
269
279
  // Browser launch is best-effort — the user can still visit the URL manually
@@ -295,23 +305,23 @@ export async function runGrokOAuthFlow(options = {}) {
295
305
  */
296
306
  export async function refreshGrokToken(options) {
297
307
  if (!options.clientId || options.clientId.trim().length === 0) {
298
- throw new GrokOAuthError('Missing clientId', 'no_client_id');
308
+ throw new GrokOAuthError("Missing clientId", "no_client_id");
299
309
  }
300
310
  if (!options.refreshToken || options.refreshToken.trim().length === 0) {
301
- throw new GrokOAuthError('Missing refreshToken', 'no_refresh_token');
311
+ throw new GrokOAuthError("Missing refreshToken", "no_refresh_token");
302
312
  }
303
313
  const endpoint = options.tokenEndpoint ?? DEFAULT_TOKEN_ENDPOINT;
304
314
  const fetchImpl = options.fetchImpl ?? fetch;
305
315
  let response;
306
316
  try {
307
317
  response = await fetchImpl(endpoint, {
308
- method: 'POST',
318
+ method: "POST",
309
319
  headers: {
310
- 'Content-Type': 'application/x-www-form-urlencoded',
311
- Accept: 'application/json',
320
+ "Content-Type": "application/x-www-form-urlencoded",
321
+ Accept: "application/json",
312
322
  },
313
323
  body: new URLSearchParams({
314
- grant_type: 'refresh_token',
324
+ grant_type: "refresh_token",
315
325
  client_id: options.clientId,
316
326
  refresh_token: options.refreshToken,
317
327
  }).toString(),
@@ -321,8 +331,10 @@ export async function refreshGrokToken(options) {
321
331
  throw new GrokOAuthError(`Token refresh network error: ${err instanceof Error ? err.message : String(err)}`);
322
332
  }
323
333
  if (!response.ok) {
324
- const errText = await response.text().catch(() => '');
325
- const code = response.status === 400 || response.status === 401 ? 'invalid_grant' : `http_${response.status}`;
334
+ const errText = await response.text().catch(() => "");
335
+ const code = response.status === 400 || response.status === 401
336
+ ? "invalid_grant"
337
+ : `http_${response.status}`;
326
338
  throw new GrokOAuthError(`Token refresh HTTP ${response.status}: ${errText.slice(0, 200)}`, code);
327
339
  }
328
340
  let body;
@@ -332,13 +344,13 @@ export async function refreshGrokToken(options) {
332
344
  catch (err) {
333
345
  throw new GrokOAuthError(`Token refresh returned invalid JSON: ${err instanceof Error ? err.message : String(err)}`);
334
346
  }
335
- if (!body || typeof body !== 'object') {
336
- throw new GrokOAuthError('Token refresh returned non-object body');
347
+ if (!body || typeof body !== "object") {
348
+ throw new GrokOAuthError("Token refresh returned non-object body");
337
349
  }
338
350
  const obj = body;
339
351
  const accessToken = obj.access_token;
340
- if (typeof accessToken !== 'string' || accessToken.length === 0) {
341
- throw new GrokOAuthError('Token refresh response missing access_token', 'no_access_token');
352
+ if (typeof accessToken !== "string" || accessToken.length === 0) {
353
+ throw new GrokOAuthError("Token refresh response missing access_token", "no_access_token");
342
354
  }
343
355
  return parseTokenResponseBody(obj, accessToken);
344
356
  }
@@ -348,19 +360,25 @@ export async function refreshGrokToken(options) {
348
360
  * spawn with args array).
349
361
  */
350
362
  export async function openBrowser(url) {
351
- const { spawn } = await import('node:child_process');
363
+ const { spawn } = await import("node:child_process");
352
364
  const cmd = (() => {
353
365
  switch (process.platform) {
354
- case 'darwin': return { bin: 'open', args: [url] };
355
- case 'win32': return { bin: 'cmd', args: ['/c', 'start', '""', url] };
356
- default: return { bin: 'xdg-open', args: [url] };
366
+ case "darwin":
367
+ return { bin: "open", args: [url] };
368
+ case "win32":
369
+ return { bin: "cmd", args: ["/c", "start", '""', url] };
370
+ default:
371
+ return { bin: "xdg-open", args: [url] };
357
372
  }
358
373
  })();
359
374
  return new Promise((resolve, reject) => {
360
375
  try {
361
- const child = spawn(cmd.bin, cmd.args, { stdio: 'ignore', detached: true });
362
- child.on('error', (err) => reject(err));
363
- child.on('spawn', () => {
376
+ const child = spawn(cmd.bin, cmd.args, {
377
+ stdio: "ignore",
378
+ detached: true,
379
+ });
380
+ child.on("error", (err) => reject(err));
381
+ child.on("spawn", () => {
364
382
  child.unref();
365
383
  resolve();
366
384
  });
@@ -1 +1 @@
1
- {"version":3,"file":"grokOAuth.js","sourceRoot":"","sources":["../../src/cli/grokOAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grokOAuth.js","sourceRoot":"","sources":["../../src/cli/grokOAuth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import { formatToolSummary } from '../components/toolFormat.js';
2
+ export const EMPTY_LIVE = { streaming: null, runningTools: [] };
3
+ /**
4
+ * Append a finalized message (system/user/sealed-assistant/completed-tool).
5
+ * Pure helper — callers pass the setter they want to target (the
6
+ * `finalized` setter in production, a plain array setter in tests).
7
+ */
8
+ export function pushFinalized(setFinalized, message) {
9
+ setFinalized((prev) => [...prev, message]);
10
+ }
11
+ /**
12
+ * Update or start the streaming assistant bubble in `live`.
13
+ *
14
+ * - If `live.streaming` exists and (for council) belongs to the same member,
15
+ * replace its content with `fullContent` (the streaming caller always
16
+ * passes full accumulated content, not a delta).
17
+ * - Otherwise create a new streaming bubble stamped with the member context.
18
+ *
19
+ * `setLive` accepts a functional updater so the throttle layer
20
+ * (`useBatchedMessages`-style) can compose multiple updates without reading
21
+ * stale state.
22
+ */
23
+ export function setStreaming(setLive, fullContent, ts, memberContext) {
24
+ setLive((prev) => {
25
+ const cur = prev.streaming;
26
+ if (cur &&
27
+ cur.role === 'assistant' &&
28
+ (cur.memberId ?? null) === (memberContext?.memberId ?? null)) {
29
+ return { ...prev, streaming: { ...cur, content: fullContent, ts } };
30
+ }
31
+ return {
32
+ ...prev,
33
+ streaming: {
34
+ id: `streaming-${crypto.randomUUID()}`,
35
+ role: 'assistant',
36
+ content: fullContent,
37
+ ts,
38
+ ...(memberContext?.memberId ? { memberId: memberContext.memberId } : {}),
39
+ ...(memberContext?.memberName ? { memberName: memberContext.memberName } : {}),
40
+ },
41
+ };
42
+ });
43
+ }
44
+ /**
45
+ * Move `live.streaming` (if any) into `finalized`, sealing it. Drops the
46
+ * `streaming-` id prefix so the next bubble starts fresh. Idempotent: a no-op
47
+ * when nothing is streaming.
48
+ *
49
+ * This is the seal point fired on `message_end` and before a tool call: the
50
+ * bubble is complete and can be printed once into scrollback.
51
+ */
52
+ export function finalizeStreaming(setFinalized, setLive) {
53
+ setLive((prev) => {
54
+ const cur = prev.streaming;
55
+ if (!cur || !cur.id.startsWith('streaming-'))
56
+ return prev;
57
+ const sealed = { ...cur, id: cur.id.slice('streaming-'.length) };
58
+ setFinalized((fin) => [...fin, sealed]);
59
+ return { ...prev, streaming: null };
60
+ });
61
+ }
62
+ /**
63
+ * Max chars of tool result kept in memory for the printed body.
64
+ *
65
+ * v0.7.3: raised from 600 to 8000. The 600-char cut happened BEFORE
66
+ * formatToolResult could parse the JSON envelope — truncated JSON no longer
67
+ * parses, so every long bash/read_file result fell back to the raw escaped
68
+ * envelope (the ugly boxes in the 2026-07-02 live test). Display truncation
69
+ * is line-based in the formatter (ZELARI_TOOL_OUTPUT_LINES); this constant is
70
+ * only a memory bound.
71
+ */
72
+ export const TOOL_RESULT_PREVIEW_CHARS = 8000;
73
+ /** Max chars of the JSON args preview shown on the tool summary line. */
74
+ export const TOOL_ARGS_PREVIEW_CHARS = 120;
75
+ /**
76
+ * Register a tool invocation in `live.runningTools`. The summary (args
77
+ * preview) is computed once; the result body is filled in by
78
+ * {@link completeTool} on `tool_execution_end`.
79
+ */
80
+ export function startTool(setLive, toolName, toolCallId, args, ts) {
81
+ // v0.7.1 (B2): human-readable summary instead of raw-JSON args.
82
+ const argsPreview = formatToolSummary(toolName, args);
83
+ setLive((prev) => ({
84
+ ...prev,
85
+ runningTools: [
86
+ ...prev.runningTools,
87
+ {
88
+ id: crypto.randomUUID(),
89
+ role: 'tool',
90
+ content: argsPreview,
91
+ ts,
92
+ toolName,
93
+ toolCallId,
94
+ toolOk: undefined,
95
+ toolDurationMs: undefined,
96
+ },
97
+ ],
98
+ }));
99
+ }
100
+ /**
101
+ * Mark a running tool as done and move it into `finalized`. Removes it from
102
+ * `live.runningTools` (by `toolCallId`) and appends the completed message —
103
+ * with its result body — to `finalized`.
104
+ *
105
+ * v0.7.3: the previous signature took a `live` snapshot (from `liveRef`) and
106
+ * removed by INDEX inside the functional updater. `liveRef` only updates on
107
+ * render, so for fast tools (start+end within one frame) the snapshot missed
108
+ * the just-started tool (end event dropped → tool stuck in the live region)
109
+ * or, with two ends in one frame, removed the WRONG element. The lookup now
110
+ * happens inside the `setLive` updater against the CURRENT state, keyed by
111
+ * toolCallId — same cross-setter pattern as {@link finalizeStreaming}.
112
+ *
113
+ * No-op if the toolCallId is unknown (defensive against duplicate end events).
114
+ */
115
+ export function completeTool(setFinalized, setLive, toolCallId, isError, durationMs, result) {
116
+ setLive((prev) => {
117
+ const tool = prev.runningTools.find((t) => t.toolCallId === toolCallId && t.toolDurationMs === undefined);
118
+ if (!tool)
119
+ return prev;
120
+ const completed = {
121
+ ...tool,
122
+ toolOk: !isError,
123
+ toolDurationMs: durationMs,
124
+ ...(result !== undefined
125
+ ? {
126
+ toolResult: result.length > TOOL_RESULT_PREVIEW_CHARS
127
+ ? `${result.slice(0, TOOL_RESULT_PREVIEW_CHARS)}…`
128
+ : result,
129
+ }
130
+ : {}),
131
+ };
132
+ setFinalized((fin) => [...fin, completed]);
133
+ return {
134
+ ...prev,
135
+ runningTools: prev.runningTools.filter((t) => t !== tool),
136
+ };
137
+ });
138
+ }
139
+ //# sourceMappingURL=chatState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatState.js","sourceRoot":"","sources":["../../../src/cli/hooks/chatState.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ export function eventsToMessages(events) {
37
37
  // `tool_execution_start` and added the `args` field. The old branches
38
38
  // here silently dropped every tool invocation during session resume.
39
39
  // v0.6.2: restored as a `role: 'tool'` message so the resumed
40
- // transcript renders CollapsibleToolOutput, same as the live UI.
40
+ // transcript renders the tool box, same as the live UI.
41
41
  assistantBuffer = '';
42
42
  assistantId = '';
43
43
  const argsPreview = JSON.stringify(e.args)?.slice(0, 120) ?? '';
@@ -1 +1 @@
1
- {"version":3,"file":"eventsToMessages.js","sourceRoot":"","sources":["../../../src/cli/hooks/eventsToMessages.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA6B;IAC5D,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC/B,IAAI,WAAW,KAAK,EAAE;gBAAE,WAAW,GAAG,WAAW,YAAY,EAAE,EAAE,CAAC;YAClE,eAAe,IAAI,CAAC,CAAC,KAAK,CAAC;YAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;gBACjE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,mEAAmE;YACnE,yDAAyD;YACzD,eAAe,GAAG,EAAE,CAAC;YACrB,WAAW,GAAG,EAAE,CAAC;QACnB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC7C,gEAAgE;YAChE,sEAAsE;YACtE,qEAAqE;YACrE,8DAA8D;YAC9D,iEAAiE;YACjE,eAAe,GAAG,EAAE,CAAC;YACrB,WAAW,GAAG,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAE,CAAuB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YACvF,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;gBACpB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;aACzB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC3C,qEAAqE;YACrE,yEAAyE;YACzE,MAAM,GAAG,GAAG,CAAkF,CAAC;YAC/F,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;oBAC3F,4DAA4D;oBAC5D,qDAAqD;oBACrD,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBACnE,GAAG,CAAC,CAAC,CAAC,GAAG;wBACP,GAAG,CAAC;wBACJ,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO;wBACpB,cAAc,EAAE,GAAG,CAAC,UAAU;wBAC9B,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACrD,CAAC;oBACF,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC;oBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;oBACvB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,iBAAiB,GAAG,CAAC,UAAU,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC5E,EAAE,EAAE,CAAC,CAAC,EAAE;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,uBAAuB,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,QAAQ,EAAE;gBAChE,EAAE,EAAE,CAAC,CAAC,EAAE;aACT,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,sBAAsB,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC,UAAU,IAAI;gBACpE,EAAE,EAAE,CAAC,CAAC,EAAE;aACT,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE;gBAC/B,EAAE,EAAE,CAAC,CAAC,EAAE;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"eventsToMessages.js","sourceRoot":"","sources":["../../../src/cli/hooks/eventsToMessages.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA6B;IAC5D,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC/B,IAAI,WAAW,KAAK,EAAE;gBAAE,WAAW,GAAG,WAAW,YAAY,EAAE,EAAE,CAAC;YAClE,eAAe,IAAI,CAAC,CAAC,KAAK,CAAC;YAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;gBACjE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,mEAAmE;YACnE,yDAAyD;YACzD,eAAe,GAAG,EAAE,CAAC;YACrB,WAAW,GAAG,EAAE,CAAC;QACnB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC7C,gEAAgE;YAChE,sEAAsE;YACtE,qEAAqE;YACrE,8DAA8D;YAC9D,wDAAwD;YACxD,eAAe,GAAG,EAAE,CAAC;YACrB,WAAW,GAAG,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAE,CAAuB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YACvF,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;gBACpB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;aACzB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC3C,qEAAqE;YACrE,yEAAyE;YACzE,MAAM,GAAG,GAAG,CAAkF,CAAC;YAC/F,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;oBAC3F,4DAA4D;oBAC5D,qDAAqD;oBACrD,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBACnE,GAAG,CAAC,CAAC,CAAC,GAAG;wBACP,GAAG,CAAC;wBACJ,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO;wBACpB,cAAc,EAAE,GAAG,CAAC,UAAU;wBAC9B,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACrD,CAAC;oBACF,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC;oBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;oBACvB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,iBAAiB,GAAG,CAAC,UAAU,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC5E,EAAE,EAAE,CAAC,CAAC,EAAE;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,uBAAuB,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,QAAQ,EAAE;gBAChE,EAAE,EAAE,CAAC,CAAC,EAAE;aACT,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,sBAAsB,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC,UAAU,IAAI;gBACpE,EAAE,EAAE,CAAC,CAAC,EAAE;aACT,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE;gBAC/B,EAAE,EAAE,CAAC,CAAC,EAAE;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { formatToolSummary } from '../components/toolFormat.js';
1
2
  /**
2
3
  * Helpers for building ChatMessage instances in the most common shapes.
3
4
  *
@@ -53,17 +54,23 @@ export function appendOrExtendStreamingAssistant(setMessages, fullContent, ts, m
53
54
  ];
54
55
  });
55
56
  }
56
- /** Max chars of tool result kept for the expandable body. */
57
- export const TOOL_RESULT_PREVIEW_CHARS = 600;
57
+ /**
58
+ * Max chars of tool result kept for the body. v0.7.3: raised 600 → 8000 to
59
+ * match chatState.ts — the 600-char cut chopped the JSON envelope before
60
+ * formatToolResult could parse it, forcing the raw-escaped fallback.
61
+ */
62
+ export const TOOL_RESULT_PREVIEW_CHARS = 8000;
58
63
  /** Max chars of the JSON args preview shown on the tool summary line. */
59
64
  export const TOOL_ARGS_PREVIEW_CHARS = 120;
60
65
  /**
61
66
  * Append a tool invocation as a `role: 'tool'` message so ChatStream renders
62
- * it via CollapsibleToolOutput (one status line per invocation, updated in
67
+ * it via the live region's tool rendering (one status line per invocation, updated in
63
68
  * place by {@link updateToolMessageEnd}) instead of loose system lines.
64
69
  */
65
70
  export function appendToolStart(setMessages, toolName, toolCallId, args, ts) {
66
- const argsPreview = JSON.stringify(args)?.slice(0, TOOL_ARGS_PREVIEW_CHARS) ?? '';
71
+ // v0.7.1 (B2): human-readable summary instead of raw-JSON args (which cut
72
+ // mid-string like {"path":"…","content":"Scrivi una spiegazione estrema…").
73
+ const argsPreview = formatToolSummary(toolName, args);
67
74
  setMessages((prev) => [
68
75
  ...prev,
69
76
  {