coolhand-cli 0.12.0 → 0.13.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 (126) hide show
  1. package/README.md +5 -1
  2. package/dist/api/help-center-client.d.ts.map +1 -1
  3. package/dist/api/help-center-client.js +5 -4
  4. package/dist/api/help-center-client.js.map +1 -1
  5. package/dist/auto-update/index.d.ts +61 -0
  6. package/dist/auto-update/index.d.ts.map +1 -0
  7. package/dist/auto-update/index.js +355 -0
  8. package/dist/auto-update/index.js.map +1 -0
  9. package/dist/auto-update/select.d.ts +28 -0
  10. package/dist/auto-update/select.d.ts.map +1 -0
  11. package/dist/auto-update/select.js +45 -0
  12. package/dist/auto-update/select.js.map +1 -0
  13. package/dist/auto-update/state.d.ts +25 -0
  14. package/dist/auto-update/state.d.ts.map +1 -0
  15. package/dist/auto-update/state.js +81 -0
  16. package/dist/auto-update/state.js.map +1 -0
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +97 -2
  19. package/dist/cli.js.map +1 -1
  20. package/dist/commands/capture-turn.d.ts +18 -0
  21. package/dist/commands/capture-turn.d.ts.map +1 -0
  22. package/dist/commands/capture-turn.js +152 -0
  23. package/dist/commands/capture-turn.js.map +1 -0
  24. package/dist/commands/flush-pending.d.ts.map +1 -1
  25. package/dist/commands/flush-pending.js +1 -30
  26. package/dist/commands/flush-pending.js.map +1 -1
  27. package/dist/commands/update.d.ts +9 -0
  28. package/dist/commands/update.d.ts.map +1 -0
  29. package/dist/commands/update.js +63 -0
  30. package/dist/commands/update.js.map +1 -0
  31. package/dist/config.d.ts +2 -0
  32. package/dist/config.d.ts.map +1 -1
  33. package/dist/config.js +25 -7
  34. package/dist/config.js.map +1 -1
  35. package/dist/errors.d.ts +1 -1
  36. package/dist/errors.d.ts.map +1 -1
  37. package/dist/errors.js.map +1 -1
  38. package/dist/hooks/adapters/claude.d.ts +12 -0
  39. package/dist/hooks/adapters/claude.d.ts.map +1 -0
  40. package/dist/hooks/adapters/claude.js +98 -0
  41. package/dist/hooks/adapters/claude.js.map +1 -0
  42. package/dist/hooks/adapters/copilot.d.ts +15 -0
  43. package/dist/hooks/adapters/copilot.d.ts.map +1 -0
  44. package/dist/hooks/adapters/copilot.js +96 -0
  45. package/dist/hooks/adapters/copilot.js.map +1 -0
  46. package/dist/hooks/adapters/index.d.ts +5 -0
  47. package/dist/hooks/adapters/index.d.ts.map +1 -0
  48. package/dist/hooks/adapters/index.js +8 -0
  49. package/dist/hooks/adapters/index.js.map +1 -0
  50. package/dist/hooks/adapters/shared.d.ts +25 -0
  51. package/dist/hooks/adapters/shared.d.ts.map +1 -0
  52. package/dist/hooks/adapters/shared.js +37 -0
  53. package/dist/hooks/adapters/shared.js.map +1 -0
  54. package/dist/hooks/disabled.d.ts +3 -0
  55. package/dist/hooks/disabled.d.ts.map +1 -0
  56. package/dist/hooks/disabled.js +5 -0
  57. package/dist/hooks/disabled.js.map +1 -0
  58. package/dist/hooks/hook-log.d.ts +7 -0
  59. package/dist/hooks/hook-log.d.ts.map +1 -0
  60. package/dist/hooks/hook-log.js +34 -0
  61. package/dist/hooks/hook-log.js.map +1 -0
  62. package/dist/hooks/identity.d.ts +21 -0
  63. package/dist/hooks/identity.d.ts.map +1 -0
  64. package/dist/hooks/identity.js +121 -0
  65. package/dist/hooks/identity.js.map +1 -0
  66. package/dist/hooks/log-turn.d.ts +23 -0
  67. package/dist/hooks/log-turn.d.ts.map +1 -0
  68. package/dist/hooks/log-turn.js +48 -0
  69. package/dist/hooks/log-turn.js.map +1 -0
  70. package/dist/hooks/send-turn.d.ts +32 -0
  71. package/dist/hooks/send-turn.d.ts.map +1 -0
  72. package/dist/hooks/send-turn.js +305 -0
  73. package/dist/hooks/send-turn.js.map +1 -0
  74. package/dist/hooks/silence.d.ts +7 -0
  75. package/dist/hooks/silence.d.ts.map +1 -0
  76. package/dist/hooks/silence.js +22 -0
  77. package/dist/hooks/silence.js.map +1 -0
  78. package/dist/hooks/stdin.d.ts +11 -0
  79. package/dist/hooks/stdin.d.ts.map +1 -0
  80. package/dist/hooks/stdin.js +51 -0
  81. package/dist/hooks/stdin.js.map +1 -0
  82. package/dist/hooks/turn-state.d.ts +40 -0
  83. package/dist/hooks/turn-state.d.ts.map +1 -0
  84. package/dist/hooks/turn-state.js +97 -0
  85. package/dist/hooks/turn-state.js.map +1 -0
  86. package/dist/hooks/types.d.ts +74 -0
  87. package/dist/hooks/types.d.ts.map +1 -0
  88. package/dist/hooks/types.js +3 -0
  89. package/dist/hooks/types.js.map +1 -0
  90. package/dist/pending-store.d.ts +22 -2
  91. package/dist/pending-store.d.ts.map +1 -1
  92. package/dist/pending-store.js +25 -3
  93. package/dist/pending-store.js.map +1 -1
  94. package/dist/pending-upload.d.ts +12 -0
  95. package/dist/pending-upload.d.ts.map +1 -0
  96. package/dist/pending-upload.js +51 -0
  97. package/dist/pending-upload.js.map +1 -0
  98. package/dist/sessions/blocks.d.ts +51 -0
  99. package/dist/sessions/blocks.d.ts.map +1 -0
  100. package/dist/sessions/blocks.js +193 -0
  101. package/dist/sessions/blocks.js.map +1 -0
  102. package/dist/sessions/claude-scanner.d.ts +60 -1
  103. package/dist/sessions/claude-scanner.d.ts.map +1 -1
  104. package/dist/sessions/claude-scanner.js +277 -1
  105. package/dist/sessions/claude-scanner.js.map +1 -1
  106. package/dist/sessions/copilot-scanner.d.ts +27 -0
  107. package/dist/sessions/copilot-scanner.d.ts.map +1 -0
  108. package/dist/sessions/copilot-scanner.js +171 -0
  109. package/dist/sessions/copilot-scanner.js.map +1 -0
  110. package/dist/sessions/redact-secrets.d.ts.map +1 -1
  111. package/dist/sessions/redact-secrets.js +43 -10
  112. package/dist/sessions/redact-secrets.js.map +1 -1
  113. package/dist/sessions/turn-envelope.d.ts +62 -0
  114. package/dist/sessions/turn-envelope.d.ts.map +1 -0
  115. package/dist/sessions/turn-envelope.js +182 -0
  116. package/dist/sessions/turn-envelope.js.map +1 -0
  117. package/dist/sessions/usage.d.ts +23 -0
  118. package/dist/sessions/usage.d.ts.map +1 -0
  119. package/dist/sessions/usage.js +56 -0
  120. package/dist/sessions/usage.js.map +1 -0
  121. package/dist/types.d.ts +21 -0
  122. package/dist/types.d.ts.map +1 -1
  123. package/dist/types.js.map +1 -1
  124. package/dist/version.d.ts +2 -2
  125. package/dist/version.js +1 -1
  126. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"claude-scanner.d.ts","sourceRoot":"","sources":["../../src/sessions/claude-scanner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,mBAAmB,EAAE,CAAC;KACjC,CAAC;IACF,aAAa,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,2FAA2F;IAC3F,SAAS,EAAE,MAAM,CAAC;IAClB;kFAC8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,WAAW,EAAE,MAAM,CAAC;IACpB;;;sBAGkB;IAClB,EAAE,EAAE,OAAO,CAAC;CACb;AAKD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAsJD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAkI1F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC;CAC3C,GACL,OAAO,CAAC,UAAU,CAAC,CA8ErB;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAG7D"}
1
+ {"version":3,"file":"claude-scanner.d.ts","sourceRoot":"","sources":["../../src/sessions/claude-scanner.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { promises as fs } from 'fs';
2
2
  import * as os from 'os';
3
3
  import * as path from 'path';
4
4
  import { redactSecrets } from './redact-secrets.js';
5
+ import { sanitizeInput } from './blocks.js';
6
+ import { addSubagent, addUsage, emptySubagentUsage, emptyUsage } from './usage.js';
5
7
  /** Cap on a single serialised tool input/output. Edit/Write inputs carry whole file bodies. */
6
8
  const MAX_BLOCK_CHARS = 2000;
7
9
  export function defaultProjectsDir() {
@@ -113,7 +115,10 @@ function sanitizeResponseBlocks(blocks) {
113
115
  if (type === 'thinking' || type === 'redacted_thinking') {
114
116
  continue;
115
117
  }
116
- out.push(redactDeep(block));
118
+ const redacted = redactDeep(block);
119
+ // A tool call's input needs the key-aware scrub: `redactDeep` only sees each string alone, so
120
+ // `{ password: 'x' }` would pass.
121
+ out.push(type === 'tool_use' && 'input' in redacted ? { ...redacted, input: sanitizeInput(block.input) } : redacted);
117
122
  }
118
123
  return out;
119
124
  }
@@ -255,6 +260,277 @@ export function parseTranscript(content, sessionId) {
255
260
  projectPath,
256
261
  };
257
262
  }
263
+ function isToolResultBlock(block) {
264
+ return !!block && typeof block === 'object' && block.type === 'tool_result';
265
+ }
266
+ /**
267
+ * Claude Code stores a typed slash command as markup, e.g.
268
+ * <command-message>loop-review</command-message>
269
+ * <command-name>/loop-review</command-name>
270
+ * <command-args>high --max-rounds 3</command-args>
271
+ * (tags in either order, `<command-args>` present but empty when nothing was typed). The prompt the
272
+ * user actually typed is `/loop-review high --max-rounds 3`, so that is what is recorded.
273
+ */
274
+ function slashCommandPrompt(text) {
275
+ // Claude Code's own line starts with the markup; a prompt that merely quotes it is left alone.
276
+ const head = text.trimStart();
277
+ if (!head.startsWith('<command-name>') && !head.startsWith('<command-message>')) {
278
+ return text;
279
+ }
280
+ const tag = (name) => new RegExp(`<${name}>([\\s\\S]*?)</${name}>`).exec(text)?.[1]?.trim();
281
+ const command = tag('command-name') ?? (tag('command-message') ? `/${tag('command-message')}` : undefined);
282
+ if (!command) {
283
+ return text;
284
+ }
285
+ const args = tag('command-args');
286
+ return args ? `${command} ${args}` : command;
287
+ }
288
+ /** Lines Claude Code writes as user messages that the user didn't type. */
289
+ function isInterruptMarker(text) {
290
+ return text.startsWith('[Request interrupted by user');
291
+ }
292
+ /**
293
+ * The OUTPUT of a local command (`/compact`, `/context`, `/status`, `/cost`, …) or of bash mode
294
+ * (`!cmd`) is stored as a non-meta user line. It is not something the user typed and can hold account
295
+ * details, paths and tool config, so it is never a prompt and is never uploaded.
296
+ */
297
+ const COMMAND_OUTPUT_TAGS = ['<local-command-stdout>', '<local-command-stderr>', '<bash-input>', '<bash-stdout>', '<bash-stderr>'];
298
+ function isCommandOutput(text) {
299
+ const head = text.trimStart();
300
+ return COMMAND_OUTPUT_TAGS.some((tag) => head.startsWith(tag));
301
+ }
302
+ /**
303
+ * Host- and harness-injected context that rides in user lines but was never typed: Conductor's
304
+ * `<system_instruction>`, background-task `<task-notification>`s, `<system-reminder>`s and the IDE
305
+ * extension's `<ide_opened_file>` / `<ide_selection>` blocks. They carry file paths, selected code
306
+ * and workspace details, and a hook that re-uploads the conversation every turn would send them again
307
+ * and again. Removed before anything is recorded.
308
+ */
309
+ const INJECTED_TAGS = '(?:system_instruction|system-reminder|task-notification|local-command-caveat|user-prompt-submit-hook|ide_[a-z_]+)';
310
+ /**
311
+ * Remove `<tag>…</tag>` elements of the injected kinds above. A single left-to-right pass: for each
312
+ * opening tag it looks once, forwards, for that tag's closer; an opening tag with no closer takes the
313
+ * rest of the text with it (fail closed). Linear in the length of the text — a regex with a lazy
314
+ * `[\s\S]*?` per opener is quadratic on a pasted log full of unclosed tags, and this runs over up to
315
+ * 8 MB of transcript inside a hook with a timeout. It also means a prompt that merely discusses one of
316
+ * these tags loses the rest of that text: the cost of failing closed.
317
+ */
318
+ function stripInjectedContext(text) {
319
+ const opener = new RegExp(`<(${INJECTED_TAGS})>`, 'g');
320
+ let out = '';
321
+ let from = 0;
322
+ for (;;) {
323
+ opener.lastIndex = from;
324
+ const match = opener.exec(text);
325
+ if (!match) {
326
+ out += text.slice(from);
327
+ break;
328
+ }
329
+ out += text.slice(from, match.index);
330
+ const closer = `</${match[1]}>`;
331
+ const end = text.indexOf(closer, match.index + match[0].length);
332
+ if (end < 0) {
333
+ break;
334
+ }
335
+ from = end + closer.length;
336
+ }
337
+ return out.trim();
338
+ }
339
+ /** All the text of a message's content, untouched: a string, or the `text` blocks of an array. */
340
+ function rawText(content) {
341
+ if (typeof content === 'string') {
342
+ return content;
343
+ }
344
+ if (Array.isArray(content)) {
345
+ return content
346
+ .map((b) => (b && typeof b === 'object' && b.type === 'text' ? String(b.text ?? '') : ''))
347
+ .join('\n');
348
+ }
349
+ return '';
350
+ }
351
+ const SKILL_BODY_PREFIX = 'Base directory for this skill:';
352
+ /**
353
+ * Claude Code injects an invoked skill as a meta user line: `Base directory for this skill: <dir>`,
354
+ * a blank line, then the skill's text. The directory (a local path) is kept apart from the text.
355
+ */
356
+ function parseSkillBody(text) {
357
+ const trimmed = text.trimStart();
358
+ if (!trimmed.startsWith(SKILL_BODY_PREFIX)) {
359
+ return undefined;
360
+ }
361
+ const newline = trimmed.indexOf('\n');
362
+ const dir = (newline < 0 ? trimmed : trimmed.slice(0, newline)).slice(SKILL_BODY_PREFIX.length).trim();
363
+ const body = newline < 0 ? '' : trimmed.slice(newline + 1).trim();
364
+ return dir && body ? { dir, text: body } : undefined;
365
+ }
366
+ /** Plain text of a REAL user prompt: a string, or the `text` blocks of an array. Tool results are not prompts. */
367
+ function promptText(content) {
368
+ if (typeof content === 'string') {
369
+ return stripInjectedContext(content);
370
+ }
371
+ if (Array.isArray(content)) {
372
+ return content
373
+ .map((block) => block && typeof block === 'object' && block.type === 'text'
374
+ ? stripInjectedContext(String(block.text ?? ''))
375
+ : '')
376
+ .filter((part) => part.length > 0)
377
+ .join('\n');
378
+ }
379
+ return '';
380
+ }
381
+ /**
382
+ * Walk a transcript (or a window of one — a leading partial line is skipped like any other
383
+ * unparseable line) and return its user→assistant exchanges in order. Each exchange carries its prompt and reply text and
384
+ * its `messages` (raw blocks: thinking, tool calls and results included). Synthetic `isMeta` user lines (injected skill bodies,
385
+ * caveats), compaction summaries, interrupt markers and subagent (sidechain) traffic are not prompts.
386
+ * A typed slash command is recovered as typed. Pure function, never throws.
387
+ */
388
+ export function parseExchanges(content) {
389
+ const exchanges = [];
390
+ let model;
391
+ let current;
392
+ let groupKey;
393
+ let parts = [];
394
+ // Claude Code repeats a message's usage on every content-block line of it: count each message, and each subagent run, once.
395
+ const countedMessages = new Set();
396
+ const countedAgents = new Set();
397
+ const begin = (userText) => {
398
+ current = { userText };
399
+ exchanges.push(current);
400
+ groupKey = undefined;
401
+ parts = [];
402
+ };
403
+ for (const line of content.split('\n')) {
404
+ const trimmed = line.trim();
405
+ if (!trimmed) {
406
+ continue;
407
+ }
408
+ let event;
409
+ try {
410
+ event = JSON.parse(trimmed);
411
+ }
412
+ catch {
413
+ continue;
414
+ }
415
+ const message = event?.message;
416
+ if (!message || typeof message !== 'object') {
417
+ continue;
418
+ }
419
+ // Subagent (sidechain) traffic is not the conversation the user is having.
420
+ if (event.isSidechain === true) {
421
+ continue;
422
+ }
423
+ if (event.type === 'user') {
424
+ // An Agent tool call's result reports what the subagent spent, and on which model.
425
+ const result = event.toolUseResult;
426
+ if (current && result && typeof result === 'object' && !Array.isArray(result)) {
427
+ const run = result;
428
+ const agentId = typeof run.agentId === 'string' ? run.agentId : '';
429
+ if (agentId && run.usage && typeof run.usage === 'object' && !countedAgents.has(agentId)) {
430
+ countedAgents.add(agentId);
431
+ const model = typeof run.resolvedModel === 'string' && run.resolvedModel ? run.resolvedModel : 'unknown';
432
+ addSubagent((current.subagents ?? (current.subagents = emptySubagentUsage())), model, run.usage);
433
+ }
434
+ }
435
+ // Tool results come back as user lines; they are part of the exchange's conversation.
436
+ if (current && Array.isArray(message.content)) {
437
+ const results = message.content.filter(isToolResultBlock);
438
+ if (results.length > 0) {
439
+ (current.messages ?? (current.messages = [])).push({ role: 'user', blocks: results });
440
+ }
441
+ }
442
+ // The expanded skill body, injected right after the slash command that invoked it.
443
+ if (event.isMeta === true && current && !current.skill) {
444
+ current.skill = parseSkillBody(rawText(message.content));
445
+ }
446
+ // Meta lines are injected context and compaction summaries are generated, not typed. A line
447
+ // carrying any tool_result is the tool loop talking, whatever else rides along with it.
448
+ if (event.isMeta === true ||
449
+ event.isCompactSummary === true ||
450
+ (Array.isArray(message.content) && message.content.some(isToolResultBlock))) {
451
+ continue;
452
+ }
453
+ const text = slashCommandPrompt(promptText(message.content).trim());
454
+ if (isCommandOutput(text)) {
455
+ continue;
456
+ }
457
+ // A prompt with no text of its own (e.g. an image) still starts a new turn: the reply that
458
+ // follows must not be paired with the previous prompt.
459
+ // (A line whose every text block was injected context and has nothing else in it is not a prompt.)
460
+ const textlessPrompt = !text &&
461
+ Array.isArray(message.content) &&
462
+ message.content.some((b) => !!b && typeof b === 'object' && b.type !== 'text');
463
+ if ((text && !isInterruptMarker(text)) || textlessPrompt) {
464
+ // A new prompt starts a new exchange; whatever assistant text we had belonged to the old one.
465
+ begin(text || undefined);
466
+ if (typeof event.timestamp === 'string' && event.timestamp) {
467
+ current.timestamp = event.timestamp;
468
+ }
469
+ }
470
+ continue;
471
+ }
472
+ if (event.type === 'assistant' && message.role === 'assistant') {
473
+ if (!current) {
474
+ begin(undefined);
475
+ }
476
+ const exchange = current;
477
+ const key = turnKey(event, message, '');
478
+ if (key && !countedMessages.has(key) && message.usage && typeof message.usage === 'object') {
479
+ countedMessages.add(key);
480
+ addUsage((exchange.usage ?? (exchange.usage = emptyUsage())), message.usage);
481
+ }
482
+ if (key !== groupKey) {
483
+ groupKey = key;
484
+ parts = [];
485
+ }
486
+ const blocks = Array.isArray(message.content) ? message.content : [];
487
+ // One assistant message per model call: its content-block lines share a request id.
488
+ const sequence = (exchange.messages ?? (exchange.messages = []));
489
+ const lastMessage = sequence[sequence.length - 1];
490
+ if (lastMessage && lastMessage.role === 'assistant' && lastMessage.key === key && key) {
491
+ lastMessage.blocks.push(...blocks);
492
+ }
493
+ else {
494
+ sequence.push({ role: 'assistant', key: key || undefined, blocks: [...blocks] });
495
+ }
496
+ for (const block of blocks) {
497
+ if (block && typeof block === 'object' && block.type === 'text') {
498
+ const text = block.text;
499
+ if (typeof text === 'string' && text.trim()) {
500
+ parts.push(text);
501
+ }
502
+ }
503
+ }
504
+ if (parts.length > 0) {
505
+ exchange.assistantText = parts.join('\n').trim();
506
+ // The key of the message the text came from, not of a later tool-only message.
507
+ exchange.assistantKey = key || undefined;
508
+ }
509
+ // Claude Code's own placeholder messages (interrupts, API errors) carry a pseudo-model.
510
+ if (typeof message.model === 'string' && message.model && message.model !== '<synthetic>') {
511
+ model = message.model;
512
+ }
513
+ }
514
+ }
515
+ return { exchanges, model };
516
+ }
517
+ /** The latest exchange of already-parsed exchanges, in the shape the Stop-hook adapter wants. */
518
+ export function lastTurnFrom(parsed) {
519
+ const last = parsed.exchanges[parsed.exchanges.length - 1];
520
+ return {
521
+ userText: last?.userText,
522
+ assistantText: last?.assistantText,
523
+ model: parsed.model,
524
+ assistantKey: last?.assistantText ? last.assistantKey : undefined,
525
+ };
526
+ }
527
+ /**
528
+ * Pull the latest user prompt and the final assistant message out of a transcript (or a window of
529
+ * one). Text only, the final reply's blocks aside. Pure function, never throws.
530
+ */
531
+ export function extractLastTurn(content) {
532
+ return lastTurnFrom(parseExchanges(content));
533
+ }
258
534
  /**
259
535
  * Find every Claude Code transcript under `projectsDir` (default `~/.claude/projects`) and build one
260
536
  * conversation envelope per session. A missing directory simply yields zero sessions.
@@ -1 +1 @@
1
- {"version":3,"file":"claude-scanner.js","sourceRoot":"","sources":["../../src/sessions/claude-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-scanner.js","sourceRoot":"","sources":["../../src/sessions/claude-scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { Exchange } from './claude-scanner.js';
2
+ /** An exchange from a Copilot `events.jsonl`, plus the skills invoked for it, if any. */
3
+ export interface CopilotExchange extends Exchange {
4
+ /** Every skill invoked for this exchange: the one typed before the prompt and any the model loaded during the turn. */
5
+ skills?: Array<{
6
+ name: string;
7
+ dir: string;
8
+ text: string;
9
+ }>;
10
+ }
11
+ export interface ParsedCopilotExchanges {
12
+ exchanges: CopilotExchange[];
13
+ /** The model of the latest assistant message. */
14
+ model?: string;
15
+ }
16
+ /** Whether a transcript line is one `parseCopilotExchanges` needs. Cheap: reads only the line's type, without parsing it. */
17
+ export declare function isWantedLine(line: string): boolean;
18
+ /**
19
+ * Walk a Copilot `events.jsonl` (VS Code agent mode) and return its user→assistant exchanges in order.
20
+ * An exchange starts at a `user.message` and holds what followed as raw messages: each model call's
21
+ * thinking, text and tool calls as one assistant message, and each batch of tool results as one user
22
+ * message. A `skill.invoked` event the user typed (`trigger: user-invoked`) is attached to the exchange of the
23
+ * prompt that comes next; one the model loaded during a turn is attached to the exchange already open. Unreadable
24
+ * lines are skipped. Pure function, never throws.
25
+ */
26
+ export declare function parseCopilotExchanges(content: string): ParsedCopilotExchanges;
27
+ //# sourceMappingURL=copilot-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot-scanner.d.ts","sourceRoot":"","sources":["../../src/sessions/copilot-scanner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,yFAAyF;AACzF,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,uHAAuH;IACvH,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,6HAA6H;AAC7H,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlD;AA2CD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAmH7E"}
@@ -0,0 +1,171 @@
1
+ /** Event types `parseCopilotExchanges` reads; the rest (model snapshots, permissions, hooks) are skipped before parsing. */
2
+ const WANTED = new Set(['skill.invoked', 'user.message', 'assistant.message', 'tool.execution_complete', 'session.usage_record']);
3
+ const TYPE_PREFIX = /^\{"type":"([^"]*)"/;
4
+ /** A line whose type can't be read is parsed anyway, unless it is this big. */
5
+ const MAX_UNTYPED_LINE_CHARS = 1000000;
6
+ /** Whether a transcript line is one `parseCopilotExchanges` needs. Cheap: reads only the line's type, without parsing it. */
7
+ export function isWantedLine(line) {
8
+ const type = TYPE_PREFIX.exec(line)?.[1];
9
+ return type === undefined ? line.length <= MAX_UNTYPED_LINE_CHARS : WANTED.has(type);
10
+ }
11
+ function obj(value) {
12
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
13
+ }
14
+ function text(value) {
15
+ return typeof value === 'string' && value.trim() ? value : undefined;
16
+ }
17
+ function num(value) {
18
+ return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : 0;
19
+ }
20
+ /**
21
+ * Copilot counts cached tokens inside `inputTokens`; the ingest API wants them apart, as Claude Code writes them.
22
+ */
23
+ function usageFrom(raw) {
24
+ const u = obj(raw);
25
+ if (!u) {
26
+ return undefined;
27
+ }
28
+ const cacheRead = num(u.cacheReadTokens);
29
+ const cacheWrite = num(u.cacheWriteTokens);
30
+ return {
31
+ input_tokens: Math.max(num(u.inputTokens) - cacheRead - cacheWrite, 0),
32
+ output_tokens: num(u.outputTokens),
33
+ cache_read_input_tokens: cacheRead,
34
+ cache_creation_input_tokens: cacheWrite,
35
+ };
36
+ }
37
+ /** What a tool returned. A failed call has not been seen in a recording, so its error text is looked for where it plausibly is. */
38
+ function resultText(result) {
39
+ const r = obj(result);
40
+ const candidates = [r?.content, r?.detailedContent, obj(r?.error)?.message];
41
+ const content = candidates.find((c) => typeof c === 'string' && c.trim()) ?? r?.content ?? r?.error;
42
+ if (typeof content === 'string') {
43
+ return content;
44
+ }
45
+ return content === undefined ? '' : JSON.stringify(content);
46
+ }
47
+ /**
48
+ * Walk a Copilot `events.jsonl` (VS Code agent mode) and return its user→assistant exchanges in order.
49
+ * An exchange starts at a `user.message` and holds what followed as raw messages: each model call's
50
+ * thinking, text and tool calls as one assistant message, and each batch of tool results as one user
51
+ * message. A `skill.invoked` event the user typed (`trigger: user-invoked`) is attached to the exchange of the
52
+ * prompt that comes next; one the model loaded during a turn is attached to the exchange already open. Unreadable
53
+ * lines are skipped. Pure function, never throws.
54
+ */
55
+ export function parseCopilotExchanges(content) {
56
+ const exchanges = [];
57
+ let model;
58
+ let current;
59
+ let pendingSkills = [];
60
+ const add = (exchange, message) => {
61
+ (exchange.messages ?? (exchange.messages = [])).push(message);
62
+ };
63
+ for (const line of content.split('\n')) {
64
+ if (!line.trim() || !isWantedLine(line)) {
65
+ continue;
66
+ }
67
+ let event;
68
+ try {
69
+ event = obj(JSON.parse(line));
70
+ }
71
+ catch {
72
+ continue;
73
+ }
74
+ const data = obj(event?.data);
75
+ if (!event || !data) {
76
+ continue;
77
+ }
78
+ const timestamp = text(event.timestamp);
79
+ switch (event.type) {
80
+ case 'skill.invoked': {
81
+ const file = text(data.path);
82
+ const name = text(data.name);
83
+ if (name) {
84
+ const skill = { name, dir: file ? file.replace(/[\\/][^\\/]*$/, '') : name, text: text(data.content) ?? '' };
85
+ // A skill the user typed (`/skill`) is logged just BEFORE its prompt. One the model loads itself is
86
+ // logged during the turn it belongs to, so it goes to the exchange already open.
87
+ if (current && text(data.trigger) !== undefined && data.trigger !== 'user-invoked') {
88
+ (current.skills ?? (current.skills = [])).push(skill);
89
+ }
90
+ else {
91
+ pendingSkills.push(skill);
92
+ }
93
+ }
94
+ break;
95
+ }
96
+ case 'user.message': {
97
+ current = { userText: text(data.content), timestamp };
98
+ if (pendingSkills.length > 0) {
99
+ current.skills = pendingSkills;
100
+ pendingSkills = [];
101
+ }
102
+ exchanges.push(current);
103
+ break;
104
+ }
105
+ case 'assistant.message': {
106
+ if (!current) {
107
+ break;
108
+ }
109
+ const blocks = [];
110
+ const reasoning = text(data.reasoningText);
111
+ if (reasoning) {
112
+ blocks.push({ type: 'thinking', thinking: reasoning });
113
+ }
114
+ const reply = text(data.content);
115
+ if (reply) {
116
+ blocks.push({ type: 'text', text: reply });
117
+ }
118
+ const requests = Array.isArray(data.toolRequests) ? data.toolRequests : [];
119
+ for (const request of requests) {
120
+ const r = obj(request);
121
+ if (r && text(r.name)) {
122
+ blocks.push({ type: 'tool_use', id: text(r.toolCallId), name: r.name, input: r.arguments ?? {} });
123
+ }
124
+ }
125
+ const key = text(data.messageId);
126
+ model = text(data.model) ?? model;
127
+ if (blocks.length > 0) {
128
+ add(current, { role: 'assistant', key, blocks });
129
+ }
130
+ // The final reply is the last message that answers in text without asking for a tool.
131
+ if (reply && requests.length === 0) {
132
+ current.assistantText = reply;
133
+ current.assistantKey = key;
134
+ }
135
+ break;
136
+ }
137
+ case 'tool.execution_complete': {
138
+ if (!current) {
139
+ break;
140
+ }
141
+ const block = { type: 'tool_result', tool_use_id: text(data.toolCallId), content: resultText(data.result), is_error: data.success === false };
142
+ const last = current.messages?.[current.messages.length - 1];
143
+ if (last && last.role === 'user') {
144
+ last.blocks.push(block);
145
+ }
146
+ else {
147
+ add(current, { role: 'user', blocks: [block] });
148
+ }
149
+ break;
150
+ }
151
+ case 'session.usage_record': {
152
+ // Only the conversation's own model calls (every recorded call of the main thread says so); other
153
+ // kinds of call, such as background helpers, are not what this turn spent.
154
+ const kind = text(obj(data.usage)?.interactionType);
155
+ const usage = kind === undefined || kind === 'conversation-agent' ? usageFrom(data.usage) : undefined;
156
+ if (current && usage) {
157
+ const total = (current.usage ?? (current.usage = { input_tokens: 0, output_tokens: 0, cache_read_input_tokens: 0, cache_creation_input_tokens: 0 }));
158
+ total.input_tokens += usage.input_tokens;
159
+ total.output_tokens += usage.output_tokens;
160
+ total.cache_read_input_tokens += usage.cache_read_input_tokens;
161
+ total.cache_creation_input_tokens += usage.cache_creation_input_tokens;
162
+ }
163
+ break;
164
+ }
165
+ default:
166
+ break;
167
+ }
168
+ }
169
+ return { exchanges, model };
170
+ }
171
+ //# sourceMappingURL=copilot-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot-scanner.js","sourceRoot":"","sources":["../../src/sessions/copilot-scanner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"redact-secrets.d.ts","sourceRoot":"","sources":["../../src/sessions/redact-secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgDH,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWlD"}
1
+ {"version":3,"file":"redact-secrets.d.ts","sourceRoot":"","sources":["../../src/sessions/redact-secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA8EH,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBlD"}