@vybestack/llxprt-code-core 0.5.0-nightly.251124.0158ea13c → 0.5.0-nightly.251125.6be1c4fa2

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 (70) hide show
  1. package/dist/src/agents/codebase-investigator.d.ts +46 -0
  2. package/dist/src/agents/codebase-investigator.js +136 -0
  3. package/dist/src/agents/codebase-investigator.js.map +1 -0
  4. package/dist/src/agents/executor.d.ts +92 -0
  5. package/dist/src/agents/executor.js +624 -0
  6. package/dist/src/agents/executor.js.map +1 -0
  7. package/dist/src/agents/invocation.d.ts +45 -0
  8. package/dist/src/agents/invocation.js +106 -0
  9. package/dist/src/agents/invocation.js.map +1 -0
  10. package/dist/src/agents/registry.d.ts +36 -0
  11. package/dist/src/agents/registry.js +61 -0
  12. package/dist/src/agents/registry.js.map +1 -0
  13. package/dist/src/agents/types.d.ts +145 -0
  14. package/dist/src/agents/types.js +17 -0
  15. package/dist/src/agents/types.js.map +1 -0
  16. package/dist/src/agents/utils.d.ts +15 -0
  17. package/dist/src/agents/utils.js +27 -0
  18. package/dist/src/agents/utils.js.map +1 -0
  19. package/dist/src/config/config.d.ts +14 -3
  20. package/dist/src/config/config.js +36 -2
  21. package/dist/src/config/config.js.map +1 -1
  22. package/dist/src/core/client.d.ts +2 -0
  23. package/dist/src/core/client.js +5 -0
  24. package/dist/src/core/client.js.map +1 -1
  25. package/dist/src/core/geminiChat.d.ts +8 -1
  26. package/dist/src/core/geminiChat.js +14 -14
  27. package/dist/src/core/geminiChat.js.map +1 -1
  28. package/dist/src/ide/ide-client.js +3 -3
  29. package/dist/src/index.d.ts +2 -0
  30. package/dist/src/index.js +7 -0
  31. package/dist/src/index.js.map +1 -1
  32. package/dist/src/mcp/token-storage/hybrid-token-storage.js +1 -1
  33. package/dist/src/runtime/createAgentRuntimeContext.js +8 -7
  34. package/dist/src/runtime/createAgentRuntimeContext.js.map +1 -1
  35. package/dist/src/services/shellExecutionService.d.ts +46 -3
  36. package/dist/src/services/shellExecutionService.js +189 -55
  37. package/dist/src/services/shellExecutionService.js.map +1 -1
  38. package/dist/src/storage/sessionTypes.d.ts +27 -0
  39. package/dist/src/storage/sessionTypes.js +10 -0
  40. package/dist/src/storage/sessionTypes.js.map +1 -0
  41. package/dist/src/telemetry/constants.d.ts +8 -0
  42. package/dist/src/telemetry/constants.js +8 -0
  43. package/dist/src/telemetry/constants.js.map +1 -1
  44. package/dist/src/telemetry/loggers.d.ts +9 -1
  45. package/dist/src/telemetry/loggers.js +154 -2
  46. package/dist/src/telemetry/loggers.js.map +1 -1
  47. package/dist/src/telemetry/metrics.d.ts +5 -0
  48. package/dist/src/telemetry/metrics.js +4 -0
  49. package/dist/src/telemetry/metrics.js.map +1 -1
  50. package/dist/src/telemetry/types.d.ts +61 -0
  51. package/dist/src/telemetry/types.js +92 -0
  52. package/dist/src/telemetry/types.js.map +1 -1
  53. package/dist/src/test-utils/config.js +14 -0
  54. package/dist/src/test-utils/config.js.map +1 -1
  55. package/dist/src/tools/mcp-client.d.ts +3 -2
  56. package/dist/src/tools/mcp-client.js +28 -30
  57. package/dist/src/tools/mcp-client.js.map +1 -1
  58. package/dist/src/tools/shell.js +8 -3
  59. package/dist/src/tools/shell.js.map +1 -1
  60. package/dist/src/tools/tools.d.ts +2 -1
  61. package/dist/src/tools/tools.js.map +1 -1
  62. package/dist/src/utils/memoryDiscovery.d.ts +1 -0
  63. package/dist/src/utils/memoryDiscovery.js +2 -1
  64. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  65. package/dist/src/utils/retry.js +11 -11
  66. package/dist/src/utils/retry.js.map +1 -1
  67. package/dist/src/utils/terminalSerializer.d.ts +28 -0
  68. package/dist/src/utils/terminalSerializer.js +418 -0
  69. package/dist/src/utils/terminalSerializer.js.map +1 -0
  70. package/package.json +1 -1
@@ -3,27 +3,44 @@
3
3
  * Copyright 2025 Vybestack LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import stripAnsi from 'strip-ansi';
6
7
  import { getPty } from '../utils/getPty.js';
7
- import { spawn as cpSpawn } from 'child_process';
8
- import { TextDecoder } from 'util';
9
- import os from 'os';
8
+ import { spawn as cpSpawn } from 'node:child_process';
9
+ import { TextDecoder } from 'node:util';
10
+ import os from 'node:os';
10
11
  import { getCachedEncodingForBuffer } from '../utils/systemEncoding.js';
11
12
  import { isBinary } from '../utils/textUtils.js';
12
13
  import pkg from '@xterm/headless';
13
- import stripAnsi from 'strip-ansi';
14
+ import { serializeTerminalToObject, } from '../utils/terminalSerializer.js';
14
15
  const { Terminal } = pkg;
15
16
  const SIGKILL_TIMEOUT_MS = 200;
16
- // @ts-expect-error getFullText is not a public API.
17
- const getFullText = (terminal) => {
17
+ const getVisibleText = (terminal) => {
18
+ const buffer = terminal.buffer.active;
19
+ const lines = [];
20
+ for (let i = 0; i < terminal.rows; i++) {
21
+ const line = buffer.getLine(buffer.viewportY + i);
22
+ const lineContent = line ? line.translateToString(true) : '';
23
+ lines.push(lineContent);
24
+ }
25
+ return lines.join('\n').trimEnd();
26
+ };
27
+ const getFullBufferText = (terminal) => {
18
28
  const buffer = terminal.buffer.active;
19
29
  const lines = [];
20
30
  for (let i = 0; i < buffer.length; i++) {
21
31
  const line = buffer.getLine(i);
22
- lines.push(line ? line.translateToString(true) : '');
32
+ const lineContent = line ? line.translateToString() : '';
33
+ lines.push(lineContent);
23
34
  }
24
- return lines.join('\n').trim();
35
+ return lines.join('\n').trimEnd();
25
36
  };
37
+ /**
38
+ * A centralized service for executing shell commands with robust process
39
+ * management, cross-platform compatibility, and streaming output capabilities.
40
+ *
41
+ */
26
42
  export class ShellExecutionService {
43
+ static activePtys = new Map();
27
44
  /**
28
45
  * Executes a shell command using `node-pty`, capturing all output and lifecycle events.
29
46
  *
@@ -36,33 +53,30 @@ export class ShellExecutionService {
36
53
  * @returns An object containing the process ID (pid) and a promise that
37
54
  * resolves with the complete execution result.
38
55
  */
39
- static async execute(commandToExecute, cwd, onOutputEvent, abortSignal, shouldUseNodePty, terminalColumns, terminalRows) {
56
+ static async execute(commandToExecute, cwd, onOutputEvent, abortSignal, shouldUseNodePty, shellExecutionConfig) {
40
57
  if (shouldUseNodePty) {
41
58
  const ptyInfo = await getPty();
42
59
  if (ptyInfo) {
43
60
  try {
44
- return this.executeWithPty(commandToExecute, cwd, onOutputEvent, abortSignal, terminalColumns, terminalRows, ptyInfo);
61
+ return this.executeWithPty(commandToExecute, cwd, onOutputEvent, abortSignal, shellExecutionConfig, ptyInfo);
45
62
  }
46
63
  catch (_e) {
47
64
  // Fallback to child_process
48
65
  }
49
66
  }
50
67
  }
51
- return this.childProcessFallback(commandToExecute, cwd, onOutputEvent, abortSignal);
68
+ return this.childProcessFallback(commandToExecute, cwd, onOutputEvent, abortSignal, shellExecutionConfig);
52
69
  }
53
- static childProcessFallback(commandToExecute, cwd, onOutputEvent, abortSignal) {
70
+ static childProcessFallback(commandToExecute, cwd, onOutputEvent, abortSignal, shellExecutionConfig) {
54
71
  try {
55
72
  const isWindows = os.platform() === 'win32';
56
73
  const envVars = {
57
74
  ...process.env,
58
75
  LLXPRT_CODE: '1',
59
76
  TERM: 'xterm-256color',
60
- PAGER: 'cat',
77
+ PAGER: shellExecutionConfig?.pager ?? 'cat',
61
78
  };
62
- delete envVars.GEMINI_CLI;
63
- delete envVars['gemini_cli'];
64
79
  delete envVars.BASH_ENV;
65
- delete envVars['bash_env'];
66
80
  const child = cpSpawn(commandToExecute, [], {
67
81
  cwd,
68
82
  stdio: ['ignore', 'pipe', 'pipe'],
@@ -100,27 +114,17 @@ export class ShellExecutionService {
100
114
  sniffedBytes = sniffBuffer.length;
101
115
  if (isBinary(sniffBuffer)) {
102
116
  isStreamingRawContent = false;
103
- onOutputEvent({ type: 'binary_detected' });
104
117
  }
105
118
  }
106
- const decoder = stream === 'stdout' ? stdoutDecoder : stderrDecoder;
107
- const decodedChunk = decoder.decode(data, { stream: true });
108
- const strippedChunk = stripAnsi(decodedChunk);
109
- if (stream === 'stdout') {
110
- stdout += strippedChunk;
111
- }
112
- else {
113
- stderr += strippedChunk;
114
- }
115
119
  if (isStreamingRawContent) {
116
- onOutputEvent({ type: 'data', chunk: strippedChunk });
117
- }
118
- else {
119
- const totalBytes = outputChunks.reduce((sum, chunk) => sum + chunk.length, 0);
120
- onOutputEvent({
121
- type: 'binary_progress',
122
- bytesReceived: totalBytes,
123
- });
120
+ const decoder = stream === 'stdout' ? stdoutDecoder : stderrDecoder;
121
+ const decodedChunk = decoder.decode(data, { stream: true });
122
+ if (stream === 'stdout') {
123
+ stdout += decodedChunk;
124
+ }
125
+ else {
126
+ stderr += decodedChunk;
127
+ }
124
128
  }
125
129
  };
126
130
  const handleExit = (code, signal) => {
@@ -128,16 +132,25 @@ export class ShellExecutionService {
128
132
  // Ensure we don't add an extra newline if stdout already ends with one.
129
133
  const separator = stdout.endsWith('\n') ? '' : '\n';
130
134
  const combinedOutput = stdout + (stderr ? (stdout ? separator : '') + stderr : '');
135
+ const finalStrippedOutput = stripAnsi(combinedOutput).trim();
136
+ if (isStreamingRawContent) {
137
+ if (finalStrippedOutput) {
138
+ onOutputEvent({ type: 'data', chunk: finalStrippedOutput });
139
+ }
140
+ }
141
+ else {
142
+ onOutputEvent({ type: 'binary_detected' });
143
+ }
131
144
  resolve({
132
145
  rawOutput: finalBuffer,
133
- output: combinedOutput.trim(),
146
+ output: finalStrippedOutput,
134
147
  stdout,
135
148
  stderr,
136
149
  exitCode: code,
137
150
  signal: signal ? (os.constants.signals[signal] ?? null) : null,
138
151
  error,
139
152
  aborted: abortSignal.aborted,
140
- pid: child.pid,
153
+ pid: undefined,
141
154
  executionMethod: 'child_process',
142
155
  });
143
156
  };
@@ -169,6 +182,9 @@ export class ShellExecutionService {
169
182
  };
170
183
  abortSignal.addEventListener('abort', abortHandler, { once: true });
171
184
  child.on('exit', (code, signal) => {
185
+ if (child.pid) {
186
+ this.activePtys.delete(child.pid);
187
+ }
172
188
  handleExit(code, signal);
173
189
  });
174
190
  function cleanup() {
@@ -177,20 +193,20 @@ export class ShellExecutionService {
177
193
  if (stdoutDecoder) {
178
194
  const remaining = stdoutDecoder.decode();
179
195
  if (remaining) {
180
- stdout += stripAnsi(remaining);
196
+ stdout += remaining;
181
197
  }
182
198
  }
183
199
  if (stderrDecoder) {
184
200
  const remaining = stderrDecoder.decode();
185
201
  if (remaining) {
186
- stderr += stripAnsi(remaining);
202
+ stderr += remaining;
187
203
  }
188
204
  }
189
205
  const finalBuffer = Buffer.concat(outputChunks);
190
206
  return { stdout, stderr, finalBuffer };
191
207
  }
192
208
  });
193
- return { pid: child.pid, result };
209
+ return { pid: undefined, result };
194
210
  }
195
211
  catch (e) {
196
212
  const error = e;
@@ -211,10 +227,14 @@ export class ShellExecutionService {
211
227
  };
212
228
  }
213
229
  }
214
- static executeWithPty(commandToExecute, cwd, onOutputEvent, abortSignal, terminalColumns, terminalRows, ptyInfo) {
230
+ static executeWithPty(commandToExecute, cwd, onOutputEvent, abortSignal, shellExecutionConfig, ptyInfo) {
231
+ if (!ptyInfo) {
232
+ // This should not happen, but as a safeguard...
233
+ throw new Error('PTY implementation not found');
234
+ }
215
235
  try {
216
- const cols = terminalColumns ?? 80;
217
- const rows = terminalRows ?? 30;
236
+ const cols = shellExecutionConfig.terminalWidth ?? 80;
237
+ const rows = shellExecutionConfig.terminalHeight ?? 30;
218
238
  const isWindows = os.platform() === 'win32';
219
239
  const shell = isWindows ? 'cmd.exe' : 'bash';
220
240
  const args = isWindows
@@ -223,16 +243,14 @@ export class ShellExecutionService {
223
243
  const envVars = {
224
244
  ...process.env,
225
245
  LLXPRT_CODE: '1',
246
+ GEMINI_CLI: '1',
226
247
  TERM: 'xterm-256color',
227
- PAGER: 'cat',
248
+ PAGER: shellExecutionConfig.pager ?? 'cat',
228
249
  };
229
- delete envVars.GEMINI_CLI;
230
- delete envVars['gemini_cli'];
231
250
  delete envVars.BASH_ENV;
232
- delete envVars['bash_env'];
233
- const ptyProcess = ptyInfo?.module.spawn(shell, args, {
251
+ const ptyProcess = ptyInfo.module.spawn(shell, args, {
234
252
  cwd,
235
- name: 'xterm-color',
253
+ name: 'xterm',
236
254
  cols,
237
255
  rows,
238
256
  env: envVars,
@@ -244,14 +262,54 @@ export class ShellExecutionService {
244
262
  cols,
245
263
  rows,
246
264
  });
265
+ this.activePtys.set(ptyProcess.pid, { ptyProcess, headlessTerminal });
247
266
  let processingChain = Promise.resolve();
248
267
  let decoder = null;
268
+ let output = null;
249
269
  const outputChunks = [];
250
270
  const error = null;
251
271
  let exited = false;
252
272
  let isStreamingRawContent = true;
253
273
  const MAX_SNIFF_SIZE = 4096;
254
274
  let sniffedBytes = 0;
275
+ let isWriting = false;
276
+ let renderTimeout = null;
277
+ const render = (finalRender = false) => {
278
+ if (renderTimeout) {
279
+ clearTimeout(renderTimeout);
280
+ }
281
+ const renderFn = () => {
282
+ if (!isStreamingRawContent) {
283
+ return;
284
+ }
285
+ const newOutput = shellExecutionConfig.showColor
286
+ ? serializeTerminalToObject(headlessTerminal, {
287
+ defaultFg: shellExecutionConfig.defaultFg,
288
+ defaultBg: shellExecutionConfig.defaultBg,
289
+ })
290
+ : getVisibleText(headlessTerminal);
291
+ // console.log(newOutput)
292
+ // Using stringify for a quick deep comparison.
293
+ if (JSON.stringify(output) !== JSON.stringify(newOutput)) {
294
+ output = newOutput;
295
+ onOutputEvent({
296
+ type: 'data',
297
+ chunk: newOutput,
298
+ });
299
+ }
300
+ };
301
+ if (finalRender) {
302
+ renderFn();
303
+ }
304
+ else {
305
+ renderTimeout = setTimeout(renderFn, 17);
306
+ }
307
+ };
308
+ headlessTerminal.onScroll(() => {
309
+ if (!isWriting) {
310
+ render();
311
+ }
312
+ });
255
313
  const handleOutput = (data) => {
256
314
  processingChain = processingChain.then(() => new Promise((resolve) => {
257
315
  if (!decoder) {
@@ -274,11 +332,10 @@ export class ShellExecutionService {
274
332
  }
275
333
  if (isStreamingRawContent) {
276
334
  const decodedChunk = decoder.decode(data, { stream: true });
335
+ isWriting = true;
277
336
  headlessTerminal.write(decodedChunk, () => {
278
- onOutputEvent({
279
- type: 'data',
280
- chunk: stripAnsi(decodedChunk),
281
- });
337
+ render();
338
+ isWriting = false;
282
339
  resolve();
283
340
  });
284
341
  }
@@ -299,9 +356,11 @@ export class ShellExecutionService {
299
356
  ptyProcess.onExit(({ exitCode, signal }) => {
300
357
  exited = true;
301
358
  abortSignal.removeEventListener('abort', abortHandler);
359
+ this.activePtys.delete(ptyProcess.pid);
302
360
  processingChain.then(() => {
361
+ render(true);
303
362
  const finalBuffer = Buffer.concat(outputChunks);
304
- const fullOutput = getFullText(headlessTerminal);
363
+ const fullOutput = getFullBufferText(headlessTerminal);
305
364
  resolve({
306
365
  rawOutput: finalBuffer,
307
366
  output: fullOutput,
@@ -312,13 +371,26 @@ export class ShellExecutionService {
312
371
  error,
313
372
  aborted: abortSignal.aborted,
314
373
  pid: ptyProcess.pid,
315
- executionMethod: ptyInfo?.name ?? 'node-pty',
374
+ executionMethod: ptyInfo?.name ??
375
+ 'node-pty',
316
376
  });
317
377
  });
318
378
  });
319
379
  const abortHandler = async () => {
320
380
  if (ptyProcess.pid && !exited) {
321
- ptyProcess.kill('SIGHUP');
381
+ if (os.platform() === 'win32') {
382
+ ptyProcess.kill();
383
+ }
384
+ else {
385
+ try {
386
+ // Kill the entire process group
387
+ process.kill(-ptyProcess.pid, 'SIGINT');
388
+ }
389
+ catch (_e) {
390
+ // Fallback to killing just the process if the group kill fails
391
+ ptyProcess.kill('SIGINT');
392
+ }
393
+ }
322
394
  }
323
395
  };
324
396
  abortSignal.addEventListener('abort', abortHandler, { once: true });
@@ -344,5 +416,67 @@ export class ShellExecutionService {
344
416
  };
345
417
  }
346
418
  }
419
+ /**
420
+ * Writes a string to the pseudo-terminal (PTY) of a running process.
421
+ *
422
+ * @param pid The process ID of the target PTY.
423
+ * @param input The string to write to the terminal.
424
+ */
425
+ static writeToPty(pid, input) {
426
+ const activePty = this.activePtys.get(pid);
427
+ if (activePty) {
428
+ activePty.ptyProcess.write(input);
429
+ }
430
+ }
431
+ /**
432
+ * Resizes the pseudo-terminal (PTY) of a running process.
433
+ *
434
+ * @param pid The process ID of the target PTY.
435
+ * @param cols The new number of columns.
436
+ * @param rows The new number of rows.
437
+ */
438
+ static resizePty(pid, cols, rows) {
439
+ const activePty = this.activePtys.get(pid);
440
+ if (activePty) {
441
+ try {
442
+ activePty.ptyProcess.resize(cols, rows);
443
+ activePty.headlessTerminal.resize(cols, rows);
444
+ }
445
+ catch (e) {
446
+ // Ignore errors if the pty has already exited, which can happen
447
+ // due to a race condition between the exit event and this call.
448
+ if (e instanceof Error && 'code' in e && e.code === 'ESRCH') {
449
+ // ignore
450
+ }
451
+ else {
452
+ throw e;
453
+ }
454
+ }
455
+ }
456
+ }
457
+ /**
458
+ * Scrolls the pseudo-terminal (PTY) of a running process.
459
+ *
460
+ * @param pid The process ID of the target PTY.
461
+ * @param lines The number of lines to scroll.
462
+ */
463
+ static scrollPty(pid, lines) {
464
+ const activePty = this.activePtys.get(pid);
465
+ if (activePty) {
466
+ try {
467
+ activePty.headlessTerminal.scrollLines(lines);
468
+ }
469
+ catch (e) {
470
+ // Ignore errors if the pty has already exited, which can happen
471
+ // due to a race condition between the exit event and this call.
472
+ if (e instanceof Error && 'code' in e && e.code === 'ESRCH') {
473
+ // ignore
474
+ }
475
+ else {
476
+ throw e;
477
+ }
478
+ }
479
+ }
480
+ }
347
481
  }
348
482
  //# sourceMappingURL=shellExecutionService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shellExecutionService.js","sourceRoot":"","sources":["../../../src/services/shellExecutionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shellExecutionService.js","sourceRoot":"","sources":["../../../src/services/shellExecutionService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Session file naming prefix
8
+ */
9
+ export declare const SESSION_FILE_PREFIX = "session-";
10
+ /**
11
+ * Base message record structure (minimal for session cleanup purposes)
12
+ */
13
+ export interface BaseMessageRecord {
14
+ timestamp: string;
15
+ role: 'user' | 'model';
16
+ }
17
+ /**
18
+ * Conversation record structure (minimal for session cleanup purposes)
19
+ */
20
+ export interface ConversationRecord {
21
+ id: string;
22
+ sessionId: string;
23
+ timestamp: string;
24
+ startTime: string;
25
+ lastUpdated?: string;
26
+ messages: BaseMessageRecord[];
27
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Session file naming prefix
8
+ */
9
+ export const SESSION_FILE_PREFIX = 'session-';
10
+ //# sourceMappingURL=sessionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionTypes.js","sourceRoot":"","sources":["../../../src/storage/sessionTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC"}
@@ -17,6 +17,14 @@ export declare const EVENT_CONVERSATION_RESPONSE = "llxprt_code.conversation_res
17
17
  export declare const EVENT_ENHANCED_CONVERSATION_RESPONSE = "llxprt_code.enhanced_conversation_response";
18
18
  export declare const EVENT_PROVIDER_SWITCH = "llxprt_code.provider_switch";
19
19
  export declare const EVENT_PROVIDER_CAPABILITY = "llxprt_code.provider_capability";
20
+ export declare const EVENT_TOOL_OUTPUT_TRUNCATED = "llxprt_code.tool_output_truncated";
21
+ export declare const EVENT_FILE_OPERATION = "llxprt_code.file_operation";
22
+ export declare const EVENT_MALFORMED_JSON_RESPONSE = "llxprt_code.malformed_json_response";
23
+ export declare const EVENT_MODEL_ROUTING = "llxprt_code.model_routing";
24
+ export declare const EVENT_EXTENSION_INSTALL = "llxprt_code.extension_install";
25
+ export declare const EVENT_EXTENSION_UNINSTALL = "llxprt_code.extension_uninstall";
26
+ export declare const EVENT_EXTENSION_ENABLE = "llxprt_code.extension_enable";
27
+ export declare const EVENT_EXTENSION_DISABLE = "llxprt_code.extension_disable";
20
28
  export declare const METRIC_TOOL_CALL_COUNT = "llxprt_code.tool.call.count";
21
29
  export declare const METRIC_TOOL_CALL_LATENCY = "llxprt_code.tool.call.latency";
22
30
  export declare const METRIC_API_REQUEST_COUNT = "llxprt_code.api.request.count";
@@ -17,6 +17,14 @@ export const EVENT_CONVERSATION_RESPONSE = 'llxprt_code.conversation_response';
17
17
  export const EVENT_ENHANCED_CONVERSATION_RESPONSE = 'llxprt_code.enhanced_conversation_response';
18
18
  export const EVENT_PROVIDER_SWITCH = 'llxprt_code.provider_switch';
19
19
  export const EVENT_PROVIDER_CAPABILITY = 'llxprt_code.provider_capability';
20
+ export const EVENT_TOOL_OUTPUT_TRUNCATED = 'llxprt_code.tool_output_truncated';
21
+ export const EVENT_FILE_OPERATION = 'llxprt_code.file_operation';
22
+ export const EVENT_MALFORMED_JSON_RESPONSE = 'llxprt_code.malformed_json_response';
23
+ export const EVENT_MODEL_ROUTING = 'llxprt_code.model_routing';
24
+ export const EVENT_EXTENSION_INSTALL = 'llxprt_code.extension_install';
25
+ export const EVENT_EXTENSION_UNINSTALL = 'llxprt_code.extension_uninstall';
26
+ export const EVENT_EXTENSION_ENABLE = 'llxprt_code.extension_enable';
27
+ export const EVENT_EXTENSION_DISABLE = 'llxprt_code.extension_disable';
20
28
  export const METRIC_TOOL_CALL_COUNT = 'llxprt_code.tool.call.count';
21
29
  export const METRIC_TOOL_CALL_LATENCY = 'llxprt_code.tool.call.latency';
22
30
  export const METRIC_API_REQUEST_COUNT = 'llxprt_code.api.request.count';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/telemetry/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAC/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,kCAAkC,CAAC;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GAAG,mCAAmC,CAAC;AAC/E,MAAM,CAAC,MAAM,oCAAoC,GAC/C,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AACnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC;AAE3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/telemetry/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAC/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,kCAAkC,CAAC;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GAAG,mCAAmC,CAAC;AAC/E,MAAM,CAAC,MAAM,oCAAoC,GAC/C,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AACnE,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,mCAAmC,CAAC;AAC/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GACxC,qCAAqC,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,8BAA8B,CAAC;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAEvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AACxE,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAC"}
@@ -4,13 +4,15 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Config } from '../config/config.js';
7
- import { ApiErrorEvent, ApiRequestEvent, ApiResponseEvent, StartSessionEvent, ToolCallEvent, UserPromptEvent, NextSpeakerCheckEvent, LoopDetectedEvent, SlashCommandEvent, ConversationRequestEvent, ConversationResponseEvent, ProviderSwitchEvent, ProviderCapabilityEvent, KittySequenceOverflowEvent, TokenUsageEvent, PerformanceMetricsEvent } from './types.js';
7
+ import { ApiErrorEvent, ApiRequestEvent, ApiResponseEvent, StartSessionEvent, ToolCallEvent, UserPromptEvent, NextSpeakerCheckEvent, LoopDetectedEvent, SlashCommandEvent, ConversationRequestEvent, ConversationResponseEvent, ProviderSwitchEvent, ProviderCapabilityEvent, KittySequenceOverflowEvent, TokenUsageEvent, PerformanceMetricsEvent, ToolOutputTruncatedEvent, FileOperationEvent, MalformedJsonResponseEvent, ModelRoutingEvent, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionEnableEvent, ExtensionDisableEvent } from './types.js';
8
8
  type SessionConfig = Pick<Config, 'getSessionId'>;
9
9
  type TelemetryPromptConfig = Pick<Config, 'getTelemetryLogPromptsEnabled'>;
10
10
  type ToolLoggingConfig = SessionConfig & TelemetryPromptConfig;
11
11
  export declare function logCliConfiguration(config: Config, event: StartSessionEvent): void;
12
12
  export declare function logUserPrompt(config: Config, event: UserPromptEvent): void;
13
13
  export declare function logToolCall(config: ToolLoggingConfig, event: ToolCallEvent): void;
14
+ export declare function logToolOutputTruncated(config: Config, event: ToolOutputTruncatedEvent): void;
15
+ export declare function logFileOperation(config: Config, event: FileOperationEvent): void;
14
16
  export declare function logApiRequest(config: Config, event: ApiRequestEvent): void;
15
17
  export declare function logApiError(config: Config, event: ApiErrorEvent): void;
16
18
  export declare function logApiResponse(config: Config, event: ApiResponseEvent): void;
@@ -34,4 +36,10 @@ export declare function logTokenUsage(config: Config, event: TokenUsageEvent): v
34
36
  * @param event The PerformanceMetricsEvent to log.
35
37
  */
36
38
  export declare function logPerformanceMetrics(config: Config, event: PerformanceMetricsEvent): void;
39
+ export declare function logMalformedJsonResponse(config: Config, event: MalformedJsonResponseEvent): void;
40
+ export declare function logModelRouting(config: Config, event: ModelRoutingEvent): void;
41
+ export declare function logExtensionInstallEvent(config: Config, event: ExtensionInstallEvent): void;
42
+ export declare function logExtensionUninstall(config: Config, event: ExtensionUninstallEvent): void;
43
+ export declare function logExtensionEnable(config: Config, event: ExtensionEnableEvent): void;
44
+ export declare function logExtensionDisable(config: Config, event: ExtensionDisableEvent): void;
37
45
  export {};