bb-cc-lite 0.1.6 → 0.1.8

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 (51) hide show
  1. package/README.md +38 -29
  2. package/assets/statusline-demo.gif +0 -0
  3. package/dist/baseline-builder.js +64 -64
  4. package/dist/baseline-builder.js.map +1 -1
  5. package/dist/baseline-refresh.d.ts +66 -0
  6. package/dist/baseline-refresh.js +214 -0
  7. package/dist/baseline-refresh.js.map +1 -0
  8. package/dist/baseline.d.ts +11 -1
  9. package/dist/baseline.js +128 -4
  10. package/dist/baseline.js.map +1 -1
  11. package/dist/cli.js +33 -2
  12. package/dist/cli.js.map +1 -1
  13. package/dist/doctor.d.ts +1 -0
  14. package/dist/doctor.js +29 -0
  15. package/dist/doctor.js.map +1 -1
  16. package/dist/event-store-persistence.js +21 -3
  17. package/dist/event-store-persistence.js.map +1 -1
  18. package/dist/event-store-queries.d.ts +4 -1
  19. package/dist/event-store-queries.js +38 -11
  20. package/dist/event-store-queries.js.map +1 -1
  21. package/dist/failure-episodes.d.ts +21 -0
  22. package/dist/failure-episodes.js +266 -0
  23. package/dist/failure-episodes.js.map +1 -0
  24. package/dist/historical-replay.d.ts +21 -0
  25. package/dist/historical-replay.js +263 -0
  26. package/dist/historical-replay.js.map +1 -0
  27. package/dist/hook-payload.js +11 -7
  28. package/dist/hook-payload.js.map +1 -1
  29. package/dist/hook-summary.d.ts +4 -5
  30. package/dist/hook-summary.js +37 -11
  31. package/dist/hook-summary.js.map +1 -1
  32. package/dist/recovery-stats.d.ts +57 -0
  33. package/dist/recovery-stats.js +234 -0
  34. package/dist/recovery-stats.js.map +1 -0
  35. package/dist/settings.d.ts +1 -1
  36. package/dist/settings.js +7 -0
  37. package/dist/settings.js.map +1 -1
  38. package/dist/signals.js +173 -68
  39. package/dist/signals.js.map +1 -1
  40. package/dist/statusline.d.ts +5 -1
  41. package/dist/statusline.js +8 -3
  42. package/dist/statusline.js.map +1 -1
  43. package/dist/tool-metadata.d.ts +10 -0
  44. package/dist/tool-metadata.js +50 -2
  45. package/dist/tool-metadata.js.map +1 -1
  46. package/dist/transcript.js +106 -25
  47. package/dist/transcript.js.map +1 -1
  48. package/dist/types.d.ts +53 -0
  49. package/dist/why.js +1 -4
  50. package/dist/why.js.map +1 -1
  51. package/package.json +1 -1
package/dist/signals.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { sessionKeyFromId } from "./session.js";
2
2
  import { mergeUsage } from "./status-input.js";
3
+ import { recoveryInsight } from "./recovery-stats.js";
3
4
  export function decide(input, transcript, options = {}) {
4
5
  const now = new Date().toISOString();
5
6
  const usage = mergeUsage(input.usage, transcript.usage);
@@ -23,37 +24,89 @@ export function decide(input, transcript, options = {}) {
23
24
  costSource
24
25
  });
25
26
  }
27
+ if (transcript.blindRetry && transcript.blindRetry.blindRetryFailureCount >= 3) {
28
+ const blindRetry = transcript.blindRetry;
29
+ return baseDecision({
30
+ state: "Stop",
31
+ reasonCode: "blind_retry_loop",
32
+ diagnosisCode: "blind_retry_loop",
33
+ diagnosis: `same failure retried ${blindRetry.blindRetryFailureCount}x without a fix`,
34
+ confidence: "high",
35
+ primaryEvidence: `same ${blindRetry.label} failed ${formatFailureCount(blindRetry.blindRetryFailureCount)} without a fix`,
36
+ impact: "Claude is repeating the same failure without a fix or passing check",
37
+ action: "stop and inspect first failure",
38
+ input,
39
+ usage,
40
+ transcript,
41
+ now,
42
+ sessionKey,
43
+ costUsd,
44
+ costSource
45
+ });
46
+ }
26
47
  const repeatedFailure = transcript.repeatedFailures
27
48
  .filter((item) => item.count >= 3)
28
49
  .sort((a, b) => b.count - a.count)[0];
29
50
  if (repeatedFailure) {
30
51
  const runningTests = repeatedFailure.toolName === "Bash" && repeatedFailure.purpose === "tests";
31
- const baselineUnrecoveredTestLoop = runningTests && supportsUnrecoveredTestLoopStop(options.baseline);
52
+ const mcpFailure = isMcpFailure(repeatedFailure);
53
+ const validationPurpose = validationPurposeForFailure(repeatedFailure);
54
+ const validationLabel = validationPurpose ? validationPurposeLabel(validationPurpose) : undefined;
55
+ const baselineInsight = validationPurpose
56
+ ? recoveryInsight(options.baseline, validationPurpose, repeatedFailure.count)
57
+ : mcpFailure
58
+ ? recoveryInsight(options.baseline, "mcp", repeatedFailure.count)
59
+ : undefined;
60
+ const baselineUnrecoveredLoop = baselineInsight?.kind === "usually_unrecovered";
32
61
  const baselineStopLike = runningTests && supportsValidationLoopStop(options.baseline);
33
62
  return baseDecision({
34
63
  state: "Stop",
35
64
  reasonCode: "repeated_tool_failure",
36
- diagnosisCode: runningTests ? "validation_command_loop" : "tool_failure_repeated",
37
- diagnosis: runningTests
38
- ? baselineUnrecoveredTestLoop
39
- ? "test loop: usually unrecovered after 3x"
40
- : baselineStopLike
41
- ? "test loop: past runs ended badly"
42
- : `test loop: failed ${repeatedFailure.count}x`
43
- : undefined,
44
- confidence: "high",
45
- baselineNote: baselineUnrecoveredTestLoop
46
- ? "recent test loops were usually unrecovered after 3 failures"
65
+ diagnosisCode: runningTests ? "validation_command_loop" : mcpFailure ? "mcp_tool_failure_repeated" : "tool_failure_repeated",
66
+ diagnosis: mcpFailure
67
+ ? baselineUnrecoveredLoop && baselineInsight
68
+ ? baselineInsight.diagnosis
69
+ : `MCP tool failed ${repeatedFailure.count}x`
70
+ : runningTests
71
+ ? baselineUnrecoveredLoop && baselineInsight
72
+ ? baselineInsight.diagnosis
73
+ : baselineStopLike
74
+ ? "test loop: past runs ended badly"
75
+ : `test loop: failed ${repeatedFailure.count}x`
76
+ : validationLabel
77
+ ? baselineUnrecoveredLoop && baselineInsight
78
+ ? baselineInsight.diagnosis
79
+ : `${validationLabel} failed ${formatFailureCount(repeatedFailure.count)}`
80
+ : undefined,
81
+ confidence: baselineInsight?.confidence || "high",
82
+ baselineNote: baselineUnrecoveredLoop && baselineInsight
83
+ ? baselineInsight.baselineNote
47
84
  : baselineStopLike
48
- ? "usually Stop-like for you"
85
+ ? "similar past loops usually needed intervention"
49
86
  : undefined,
50
- primaryEvidence: `${repeatedFailure.toolName} failed ${repeatedFailure.count}x${runningTests ? " running tests" : ""}`,
51
- impact: runningTests ? "Claude is retrying a broken test loop" : "Claude is retrying the same failing tool",
52
- action: runningTests
53
- ? "inspect first failure"
54
- : repeatedFailure.toolName === "Bash"
55
- ? "fix the failing command manually, then ask Claude to rerun only that command"
56
- : `inspect the failing ${repeatedFailure.toolName} step manually before more retries`,
87
+ primaryEvidence: repeatedFailureEvidence(repeatedFailure),
88
+ impact: mcpFailure
89
+ ? "Claude is retrying the same failing MCP tool"
90
+ : runningTests
91
+ ? "Claude is retrying a broken test loop"
92
+ : validationLabel
93
+ ? `Claude is retrying a failing ${validationLabel} check`
94
+ : "Claude is retrying the same failing tool",
95
+ action: mcpFailure
96
+ ? baselineUnrecoveredLoop
97
+ ? "stop retrying and inspect first failure"
98
+ : "inspect MCP server/tool config before more retries"
99
+ : runningTests
100
+ ? baselineUnrecoveredLoop
101
+ ? "stop retrying and inspect first failure"
102
+ : "inspect first failure"
103
+ : validationLabel
104
+ ? baselineUnrecoveredLoop
105
+ ? "stop retrying and inspect first failure"
106
+ : `inspect the first ${validationLabel} failure, then rerun that check`
107
+ : repeatedFailure.toolName === "Bash"
108
+ ? "fix the failing command manually, then ask Claude to rerun only that command"
109
+ : `inspect the failing ${repeatedFailure.toolName} step manually before more retries`,
57
110
  input,
58
111
  usage,
59
112
  transcript,
@@ -69,7 +122,27 @@ export function decide(input, transcript, options = {}) {
69
122
  reasonCode: "edit_test_retry_loop",
70
123
  primaryEvidence: `edit-test loop failed ${transcript.editTestLoopFailures}x`,
71
124
  impact: "More edits are likely to churn without a narrower failure target",
72
- action: "inspect the failing test manually, then ask Claude for one focused fix",
125
+ action: "inspect the failing test manually, then ask Claude for one targeted fix",
126
+ input,
127
+ usage,
128
+ transcript,
129
+ now,
130
+ sessionKey,
131
+ costUsd,
132
+ costSource
133
+ });
134
+ }
135
+ if (transcript.blindRetry && transcript.blindRetry.blindRetryFailureCount >= 2) {
136
+ const blindRetry = transcript.blindRetry;
137
+ return baseDecision({
138
+ state: "Careful",
139
+ reasonCode: "blind_retry",
140
+ diagnosisCode: "blind_retry_loop",
141
+ diagnosis: `same ${blindRetry.label} failed twice without a fix`,
142
+ confidence: "medium",
143
+ primaryEvidence: `same ${blindRetry.label} failed twice without a fix`,
144
+ impact: "Claude retried before making a successful edit or getting a passing check",
145
+ action: "inspect first failure",
73
146
  input,
74
147
  usage,
75
148
  transcript,
@@ -84,24 +157,43 @@ export function decide(input, transcript, options = {}) {
84
157
  .sort((a, b) => b.count - a.count)[0];
85
158
  if (earlyRepeatedFailure) {
86
159
  const runningTests = earlyRepeatedFailure.toolName === "Bash" && earlyRepeatedFailure.purpose === "tests";
160
+ const mcpFailure = isMcpFailure(earlyRepeatedFailure);
87
161
  const validationPurpose = validationPurposeForFailure(earlyRepeatedFailure);
88
- const quickRecovery = validationPurpose ? supportsQuickValidationRecovery(options.baseline, validationPurpose) : false;
89
- const validationLabel = validationPurpose || "validation";
90
- const validationFailureLabel = validationPurpose === "tests" ? "test" : validationLabel;
162
+ const validationLabel = validationPurpose ? validationPurposeLabel(validationPurpose) : undefined;
163
+ const baselineInsight = validationPurpose
164
+ ? recoveryInsight(options.baseline, validationPurpose, earlyRepeatedFailure.count)
165
+ : mcpFailure
166
+ ? recoveryInsight(options.baseline, "mcp", earlyRepeatedFailure.count)
167
+ : undefined;
168
+ const quickRecovery = baselineInsight?.kind === "usually_recovers";
91
169
  return baseDecision({
92
170
  state: "Careful",
93
171
  reasonCode: "tool_failure_repeated",
94
- diagnosisCode: validationPurpose ? "validation_command_loop" : "tool_failure_repeated",
95
- diagnosis: quickRecovery ? `${validationLabel} failed twice; usually recovers after one fix` : undefined,
96
- confidence: quickRecovery ? "medium" : undefined,
97
- baselineNote: quickRecovery ? `${validationFailureLabel} failures usually recovered after one focused fix` : undefined,
98
- primaryEvidence: `${earlyRepeatedFailure.toolName} failed ${earlyRepeatedFailure.count}x${runningTests ? " running tests" : ""}`,
99
- impact: runningTests ? "Tests are failing repeatedly" : "A tool is starting to repeat failures",
100
- action: quickRecovery
101
- ? "inspect first failure"
172
+ diagnosisCode: validationPurpose ? "validation_command_loop" : mcpFailure ? "mcp_tool_failure_repeated" : "tool_failure_repeated",
173
+ diagnosis: mcpFailure
174
+ ? `MCP tool failed ${earlyRepeatedFailure.count}x`
175
+ : quickRecovery
176
+ ? baselineInsight.diagnosis
177
+ : undefined,
178
+ confidence: quickRecovery ? baselineInsight.confidence : undefined,
179
+ baselineNote: quickRecovery ? baselineInsight.baselineNote : undefined,
180
+ primaryEvidence: repeatedFailureEvidence(earlyRepeatedFailure),
181
+ impact: mcpFailure
182
+ ? "Claude is retrying the same failing MCP tool"
102
183
  : runningTests
103
- ? "pause and inspect the failing test before another retry"
104
- : `inspect the failing ${earlyRepeatedFailure.toolName} step before another retry`,
184
+ ? "Tests are failing repeatedly"
185
+ : validationLabel
186
+ ? `${validationLabel} is failing repeatedly`
187
+ : "A tool is starting to repeat failures",
188
+ action: mcpFailure
189
+ ? "inspect the failing MCP step before another retry"
190
+ : quickRecovery
191
+ ? "inspect first failure"
192
+ : runningTests
193
+ ? "pause and inspect the failing test before another retry"
194
+ : validationLabel
195
+ ? `pause and inspect the failing ${validationLabel} before another retry`
196
+ : `inspect the failing ${earlyRepeatedFailure.toolName} step before another retry`,
105
197
  input,
106
198
  usage,
107
199
  transcript,
@@ -143,7 +235,7 @@ export function decide(input, transcript, options = {}) {
143
235
  costSource
144
236
  });
145
237
  }
146
- if (transcript.compactionEvents > 0) {
238
+ if (hasOpenCompactionBoundary(transcript)) {
147
239
  return baseDecision({
148
240
  state: "Careful",
149
241
  reasonCode: "compaction_boundary",
@@ -165,12 +257,12 @@ export function decide(input, transcript, options = {}) {
165
257
  state: "Careful",
166
258
  reasonCode: "edit_without_validation",
167
259
  diagnosisCode: "edit_without_validation",
168
- diagnosis: unusualEditLag ? "edit lag unusual for you" : "edits not checked yet",
260
+ diagnosis: unusualEditLag ? "edits have gone longer than usual without a check" : "edits have not been checked yet",
169
261
  confidence: "medium",
170
- baselineNote: unusualEditLag ? "this edit has gone longer than your usual validation lag" : undefined,
171
- primaryEvidence: "edits not validated",
172
- impact: "A successful edit has not been checked by validation yet",
173
- action: "run focused check",
262
+ baselineNote: unusualEditLag ? "past sessions usually checked edits sooner" : undefined,
263
+ primaryEvidence: "edits have not been checked",
264
+ impact: "A successful edit has not been checked by a test, lint, typecheck, or build yet",
265
+ action: "ask Claude to run the smallest relevant check",
174
266
  input,
175
267
  usage,
176
268
  transcript,
@@ -180,7 +272,7 @@ export function decide(input, transcript, options = {}) {
180
272
  costSource
181
273
  });
182
274
  }
183
- if (cacheWritesHigh(usage)) {
275
+ if (cacheWritesHigh(cacheRiskUsage(input.usage, transcript))) {
184
276
  return baseDecision({
185
277
  state: "Careful",
186
278
  reasonCode: "cache_writes_high",
@@ -253,11 +345,11 @@ export function decide(input, transcript, options = {}) {
253
345
  state: "Healthy",
254
346
  reasonCode: "read_heavy_debugging",
255
347
  diagnosisCode: "read_heavy_debugging",
256
- diagnosis: "research phase: usually normal for you",
348
+ diagnosis: "research-heavy session usually ended OK",
257
349
  confidence: options.baseline?.scenarios?.read_heavy_debugging?.confidence || "medium",
258
- baselineNote: "usually Healthy-like for you",
350
+ baselineNote: "similar research-heavy sessions usually ended OK",
259
351
  primaryEvidence: `${transcript.readToolCalls} read/search tool calls`,
260
- impact: "This matches your Healthy-like read-heavy sessions",
352
+ impact: "This matches past research-heavy sessions that ended OK",
261
353
  action: "continue",
262
354
  input,
263
355
  usage,
@@ -327,6 +419,24 @@ function cacheWritesHigh(usage) {
327
419
  const reads = usage.cacheReadInputTokens || 0;
328
420
  return writes >= 10_000 && reads < writes * 0.2;
329
421
  }
422
+ function cacheRiskUsage(inputUsage, transcript) {
423
+ if (hasCacheUsage(inputUsage)) {
424
+ return inputUsage;
425
+ }
426
+ return hasFreshTranscriptCacheUsage(transcript) ? transcript.latestUsage || {} : {};
427
+ }
428
+ function hasFreshTranscriptCacheUsage(transcript) {
429
+ if (!transcript.latestUsage || !hasCacheUsage(transcript.latestUsage)) {
430
+ return false;
431
+ }
432
+ if (!transcript.latestTimestamp || !transcript.latestUsageTimestamp) {
433
+ return true;
434
+ }
435
+ return transcript.latestUsageTimestamp >= transcript.latestTimestamp;
436
+ }
437
+ function hasCacheUsage(usage) {
438
+ return usage.cacheCreationInputTokens !== undefined || usage.cacheReadInputTokens !== undefined;
439
+ }
330
440
  function cacheWarm(usage) {
331
441
  const reads = usage.cacheReadInputTokens || 0;
332
442
  const writes = usage.cacheCreationInputTokens || 0;
@@ -339,6 +449,9 @@ function isReadHeavyCurrentSession(transcript) {
339
449
  transcript.failedToolResults === 0 &&
340
450
  !transcript.hasUnvalidatedEdits);
341
451
  }
452
+ function hasOpenCompactionBoundary(transcript) {
453
+ return transcript.compactionEvents > 0 && transcript.postCompactionActivity === 0;
454
+ }
342
455
  function supportsReadHeavyHealthy(baseline) {
343
456
  const scenario = baseline?.scenarios?.read_heavy_debugging;
344
457
  const healthyCount = baseline?.outcomes?.healthyLike?.readHeavyNoFailure || 0;
@@ -352,20 +465,7 @@ function supportsReadHeavyHealthy(baseline) {
352
465
  function supportsValidationLoopStop(baseline) {
353
466
  const scenario = baseline?.scenarios?.validation_command_loop;
354
467
  const stopCount = baseline?.outcomes?.stopLike?.validationLoopUnrecovered || 0;
355
- return Boolean(scenario && scenario.seen >= 3 && scenario.confidence !== "low" && stopCount > 0);
356
- }
357
- function supportsUnrecoveredTestLoopStop(baseline) {
358
- const scenario = baseline?.scenarios?.validation_command_loop;
359
- const tests = baseline?.validation?.tests;
360
- const unrecovered = tests?.unrecovered || 0;
361
- const recovered = tests?.recovered || 0;
362
- const recentSeen = scenario?.recentSeen || 0;
363
- return Boolean(scenario &&
364
- recentSeen >= 3 &&
365
- scenario.confidence !== "low" &&
366
- unrecovered >= 3 &&
367
- unrecovered > recovered &&
368
- (tests?.recoveryRate || 0) <= 0.5);
468
+ return Boolean(scenario && scenario.seen >= 5 && scenario.confidence !== "low" && stopCount >= 5);
369
469
  }
370
470
  function validationPurposeForFailure(failure) {
371
471
  if (failure.toolName !== "Bash") {
@@ -375,16 +475,21 @@ function validationPurposeForFailure(failure) {
375
475
  ? failure.purpose
376
476
  : undefined;
377
477
  }
378
- function supportsQuickValidationRecovery(baseline, purpose) {
379
- const aggregate = baseline?.validation?.[purpose];
380
- const recovered = aggregate?.recovered || 0;
381
- const unrecovered = aggregate?.unrecovered || 0;
382
- const recoveryTotal = recovered + unrecovered;
383
- return Boolean(aggregate &&
384
- recoveryTotal >= 5 &&
385
- recovered >= 3 &&
386
- (aggregate.recoveryRate || 0) >= 0.75 &&
387
- (aggregate.medianFailuresBeforeRecovery || 0) <= 1);
478
+ function isMcpFailure(failure) {
479
+ return failure.category === "MCP" || failure.toolName === "MCP tool";
480
+ }
481
+ function repeatedFailureEvidence(failure) {
482
+ const validationPurpose = validationPurposeForFailure(failure);
483
+ if (validationPurpose) {
484
+ return `${validationPurposeLabel(validationPurpose)} failed ${formatFailureCount(failure.count)}`;
485
+ }
486
+ return `${isMcpFailure(failure) ? "MCP tool" : failure.toolName} failed ${failure.count}x${failure.toolName === "Bash" && failure.purpose === "tests" ? " running tests" : ""}`;
487
+ }
488
+ function validationPurposeLabel(purpose) {
489
+ return purpose === "tests" ? "tests" : purpose;
490
+ }
491
+ function formatFailureCount(count) {
492
+ return count === 2 ? "twice" : `${count}x`;
388
493
  }
389
494
  function hasUnusualEditValidationLag(transcript, baseline) {
390
495
  const currentLag = transcript.unvalidatedEditToolSteps;
@@ -1 +1 @@
1
- {"version":3,"file":"signals.js","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"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"}
@@ -1 +1,5 @@
1
- export declare function createStatusLine(rawInput: string, terminalColumns?: number): Promise<string>;
1
+ import { type MaybeTriggerBaselineRefreshOptions } from "./baseline-refresh.js";
2
+ export interface CreateStatusLineOptions {
3
+ baselineRefresh?: Omit<MaybeTriggerBaselineRefreshOptions, "baseline">;
4
+ }
5
+ export declare function createStatusLine(rawInput: string, terminalColumns?: number, options?: CreateStatusLineOptions): Promise<string>;
@@ -1,5 +1,6 @@
1
1
  import { mergeHookSummary } from "./hook-summary.js";
2
2
  import { readBaseline } from "./baseline.js";
3
+ import { maybeTriggerBaselineRefresh } from "./baseline-refresh.js";
3
4
  import { toDecisionPresentation } from "./decision-presentation.js";
4
5
  import { estimateCostUsd, loadPricing } from "./pricing.js";
5
6
  import { renderStatusLine } from "./renderer.js";
@@ -12,9 +13,11 @@ const EMPTY_HOOK_SUMMARY = {
12
13
  failedToolResults: 0,
13
14
  toolCalls: 0,
14
15
  compactionEvents: 0,
15
- repeatedFailures: []
16
+ postCompactionActivity: 0,
17
+ repeatedFailures: [],
18
+ blindRetry: undefined
16
19
  };
17
- export async function createStatusLine(rawInput, terminalColumns) {
20
+ export async function createStatusLine(rawInput, terminalColumns, options = {}) {
18
21
  const input = parseStatusLineInput(rawInput);
19
22
  const sessionKey = sessionKeyFromId(input.sessionId);
20
23
  const transcript = mergeHookSummary(await parseTranscriptTail(input.transcriptPath), sessionKey ? await hookSummary(sessionKey) : EMPTY_HOOK_SUMMARY);
@@ -27,8 +30,10 @@ export async function createStatusLine(rawInput, terminalColumns) {
27
30
  }
28
31
  }
29
32
  const previous = sessionKey ? await latestDecision(sessionKey) : undefined;
30
- const decision = decide(input, transcript, { previous, baseline: await readBaseline() });
33
+ const baseline = await readBaseline();
34
+ const decision = decide(input, transcript, { previous, baseline });
31
35
  await recordDecision(decision);
36
+ await maybeTriggerBaselineRefresh({ ...options.baselineRefresh, baseline });
32
37
  return renderStatusLine(toDecisionPresentation(decision), input.terminalWidth || terminalColumns);
33
38
  }
34
39
  //# sourceMappingURL=statusline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"statusline.js","sourceRoot":"","sources":["../src/statusline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,kBAAkB,GAAG;IACzB,iBAAiB,EAAE,CAAC;IACpB,SAAS,EAAE,CAAC;IACZ,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,EAAE;CACrB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,eAAwB;IAC/E,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,gBAAgB,CACjC,MAAM,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,EAC/C,UAAU,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAChE,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,WAAW,EAAE,CAAC,CAAC;QACzG,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1B,KAAK,CAAC,UAAU,GAAG,WAAW,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,EAAE,EAAE,CAAC,CAAC;IACzF,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,IAAI,eAAe,CAAC,CAAC;AACpG,CAAC"}
1
+ {"version":3,"file":"statusline.js","sourceRoot":"","sources":["../src/statusline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,2BAA2B,EAA2C,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,kBAAkB,GAAG;IACzB,iBAAiB,EAAE,CAAC;IACpB,SAAS,EAAE,CAAC;IACZ,gBAAgB,EAAE,CAAC;IACnB,sBAAsB,EAAE,CAAC;IACzB,gBAAgB,EAAE,EAAE;IACpB,UAAU,EAAE,SAAS;CACtB,CAAC;AAMF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,eAAwB,EACxB,UAAmC,EAAE;IAErC,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,gBAAgB,CACjC,MAAM,mBAAmB,CAAC,KAAK,CAAC,cAAc,CAAC,EAC/C,UAAU,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAChE,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,WAAW,EAAE,CAAC,CAAC;QACzG,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1B,KAAK,CAAC,UAAU,GAAG,WAAW,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,2BAA2B,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5E,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,IAAI,eAAe,CAAC,CAAC;AACpG,CAAC"}
@@ -1,8 +1,18 @@
1
1
  interface SafeToolNameOptions {
2
2
  basenameOnly?: boolean;
3
3
  }
4
+ export interface ToolIdentity {
5
+ displayName: string;
6
+ category?: "MCP";
7
+ identityHash?: string;
8
+ purpose?: string;
9
+ isEdit: boolean;
10
+ isReadSearch: boolean;
11
+ }
12
+ export declare function classifyToolIdentity(toolName: string | undefined, input?: unknown, options?: SafeToolNameOptions): ToolIdentity;
4
13
  export declare function classifyToolPurpose(toolName: string, input: unknown, options?: SafeToolNameOptions): string | undefined;
5
14
  export declare function classifyResultPurpose(part: Record<string, unknown>): string | undefined;
6
15
  export declare function isEditTool(toolName: string, options?: SafeToolNameOptions): boolean;
16
+ export declare function isReadSearchTool(toolName: string, options?: SafeToolNameOptions): boolean;
7
17
  export declare function safeToolName(toolName: string | undefined, options?: SafeToolNameOptions): string;
8
18
  export {};
@@ -1,9 +1,29 @@
1
1
  import { basename } from "node:path";
2
+ import { hashValue } from "./paths.js";
2
3
  import { asRecord, stringField } from "./status-input.js";
3
4
  const TEST_COMMAND_RE = /\b(npm|pnpm|yarn|bun)\s+(run\s+)?(test|vitest|jest)|\b(vitest|jest|mocha|pytest|cargo\s+test|go\s+test|rspec|playwright\s+test)\b/i;
4
5
  const LINT_COMMAND_RE = /\b(npm|pnpm|yarn|bun)\s+(run\s+)?lint\b|\b(eslint|ruff|flake8|cargo\s+clippy)\b/i;
5
6
  const TYPECHECK_COMMAND_RE = /\b(npm|pnpm|yarn|bun)\s+(run\s+)?typecheck\b|\btsc\s+--noEmit\b|\bmypy\b/i;
6
7
  const BUILD_COMMAND_RE = /\b(npm|pnpm|yarn|bun)\s+(run\s+)?(build|compile)\b|\b(tsc|vite\s+build|cargo\s+build|go\s+build)\b/i;
8
+ export function classifyToolIdentity(toolName, input, options = {}) {
9
+ const candidate = rawToolNameCandidate(toolName, options) || "";
10
+ if (candidate && isMcpToolName(candidate)) {
11
+ return {
12
+ displayName: "MCP tool",
13
+ category: "MCP",
14
+ identityHash: hashValue(candidate),
15
+ isEdit: false,
16
+ isReadSearch: false
17
+ };
18
+ }
19
+ const displayName = safeToolName(toolName, options);
20
+ return {
21
+ displayName,
22
+ purpose: classifyToolPurpose(displayName, input),
23
+ isEdit: isEditTool(displayName),
24
+ isReadSearch: isReadSearchTool(displayName)
25
+ };
26
+ }
7
27
  export function classifyToolPurpose(toolName, input, options = {}) {
8
28
  if (safeToolName(toolName, options) !== "Bash") {
9
29
  return undefined;
@@ -42,11 +62,39 @@ export function classifyResultPurpose(part) {
42
62
  export function isEditTool(toolName, options = {}) {
43
63
  return /^(Edit|MultiEdit|Write|NotebookEdit)$/u.test(safeToolName(toolName, options));
44
64
  }
65
+ export function isReadSearchTool(toolName, options = {}) {
66
+ return /^(Read|Grep|Glob|LS|WebFetch|WebSearch)$/u.test(safeToolName(toolName, options));
67
+ }
45
68
  export function safeToolName(toolName, options = {}) {
46
69
  if (!toolName) {
47
70
  return "tool";
48
71
  }
49
- const candidate = options.basenameOnly ? basename(toolName) : toolName;
50
- return /^[A-Za-z][A-Za-z0-9_-]{0,32}$/u.test(candidate) ? candidate : "tool";
72
+ const candidate = rawToolNameCandidate(toolName, options) || "";
73
+ return APPROVED_BUILT_IN_TOOL_NAMES.has(candidate) ? candidate : "tool";
74
+ }
75
+ function rawToolNameCandidate(toolName, options) {
76
+ if (!toolName) {
77
+ return undefined;
78
+ }
79
+ return options.basenameOnly ? basename(toolName) : toolName;
80
+ }
81
+ function isMcpToolName(toolName) {
82
+ return toolName.startsWith("mcp__");
51
83
  }
84
+ const APPROVED_BUILT_IN_TOOL_NAMES = new Set([
85
+ "Bash",
86
+ "Edit",
87
+ "ExitPlanMode",
88
+ "Glob",
89
+ "Grep",
90
+ "LS",
91
+ "MultiEdit",
92
+ "NotebookEdit",
93
+ "Read",
94
+ "Task",
95
+ "TodoWrite",
96
+ "WebFetch",
97
+ "WebSearch",
98
+ "Write"
99
+ ]);
52
100
  //# sourceMappingURL=tool-metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-metadata.js","sourceRoot":"","sources":["../src/tool-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,eAAe,GACnB,oIAAoI,CAAC;AACvI,MAAM,eAAe,GAAG,kFAAkF,CAAC;AAC3G,MAAM,oBAAoB,GAAG,2EAA2E,CAAC;AACzG,MAAM,gBAAgB,GAAG,qGAAqG,CAAC;AAM/H,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,KAAc,EACd,UAA+B,EAAE;IAEjC,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAA6B;IACjE,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,UAA+B,EAAE;IAC5E,OAAO,wCAAwC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAA4B,EAAE,UAA+B,EAAE;IAC1F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,OAAO,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"tool-metadata.js","sourceRoot":"","sources":["../src/tool-metadata.ts"],"names":[],"mappings":"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"}