bb-cc-lite 0.1.11 → 0.1.13

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 (56) hide show
  1. package/README.md +171 -71
  2. package/assets/statusline-coach-guard-demo.gif +0 -0
  3. package/dist/audit.d.ts +47 -0
  4. package/dist/audit.js +427 -0
  5. package/dist/audit.js.map +1 -0
  6. package/dist/baseline-builder.d.ts +5 -0
  7. package/dist/baseline-builder.js +68 -31
  8. package/dist/baseline-builder.js.map +1 -1
  9. package/dist/baseline.d.ts +7 -2
  10. package/dist/baseline.js +53 -3
  11. package/dist/baseline.js.map +1 -1
  12. package/dist/cache-efficiency.d.ts +3 -0
  13. package/dist/cache-efficiency.js +38 -0
  14. package/dist/cache-efficiency.js.map +1 -0
  15. package/dist/cli.js +42 -0
  16. package/dist/cli.js.map +1 -1
  17. package/dist/doctor.js +10 -0
  18. package/dist/doctor.js.map +1 -1
  19. package/dist/event-store-persistence.js +21 -0
  20. package/dist/event-store-persistence.js.map +1 -1
  21. package/dist/event-store-queries.d.ts +3 -1
  22. package/dist/event-store-queries.js +48 -1
  23. package/dist/event-store-queries.js.map +1 -1
  24. package/dist/feedback-outcomes.js +6 -0
  25. package/dist/feedback-outcomes.js.map +1 -1
  26. package/dist/feedback-policy.d.ts +3 -1
  27. package/dist/feedback-policy.js +99 -0
  28. package/dist/feedback-policy.js.map +1 -1
  29. package/dist/file-identity.d.ts +8 -0
  30. package/dist/file-identity.js +43 -0
  31. package/dist/file-identity.js.map +1 -0
  32. package/dist/historical-replay.d.ts +12 -0
  33. package/dist/historical-replay.js +139 -43
  34. package/dist/historical-replay.js.map +1 -1
  35. package/dist/hook-control.js +7 -2
  36. package/dist/hook-control.js.map +1 -1
  37. package/dist/hook-payload.js +13 -4
  38. package/dist/hook-payload.js.map +1 -1
  39. package/dist/hook-summary.d.ts +2 -0
  40. package/dist/hook-summary.js +22 -1
  41. package/dist/hook-summary.js.map +1 -1
  42. package/dist/recovery-stats.d.ts +27 -1
  43. package/dist/recovery-stats.js +128 -5
  44. package/dist/recovery-stats.js.map +1 -1
  45. package/dist/settings.js +2 -1
  46. package/dist/settings.js.map +1 -1
  47. package/dist/signals.js +192 -19
  48. package/dist/signals.js.map +1 -1
  49. package/dist/status-input.js +15 -15
  50. package/dist/transcript.d.ts +1 -0
  51. package/dist/transcript.js +112 -1
  52. package/dist/transcript.js.map +1 -1
  53. package/dist/types.d.ts +57 -0
  54. package/dist/why.js +2 -0
  55. package/dist/why.js.map +1 -1
  56. package/package.json +1 -1
@@ -6,6 +6,17 @@ export function decideFeedback(input) {
6
6
  if (input.hookEventName === "Stop") {
7
7
  return stopFeedback(input);
8
8
  }
9
+ if (input.hookEventName === "PreCompact") {
10
+ return { kind: "none" };
11
+ }
12
+ const compactionGoalPreservation = postCompactionGoalPreservationFeedback(input);
13
+ if (compactionGoalPreservation) {
14
+ return compactionGoalPreservation;
15
+ }
16
+ const readRepeat = redundantReadFeedback(input);
17
+ if (readRepeat) {
18
+ return readRepeat;
19
+ }
9
20
  const coachRetryWarning = coachValidationRetryWarning(input);
10
21
  if (coachRetryWarning) {
11
22
  return coachRetryWarning;
@@ -41,7 +52,30 @@ export function decideFeedback(input) {
41
52
  message: messageFor(risk.messageKey)
42
53
  };
43
54
  }
55
+ function postCompactionGoalPreservationFeedback(input) {
56
+ if (input.hookEventName !== "PostCompact" || input.summary.compactionEvents <= 0) {
57
+ return undefined;
58
+ }
59
+ const cooldownKey = `coach:compaction_goal_preservation:${input.summary.latestCompactionTimestamp || "current"}`;
60
+ if (hasRecentCooldown(input.recentFeedback, cooldownKey)) {
61
+ return undefined;
62
+ }
63
+ return {
64
+ kind: "coach",
65
+ delivery: "additional_context",
66
+ reasonCode: "compaction_goal_preservation",
67
+ safeCategory: "activity",
68
+ confidence: "medium",
69
+ messageKey: "compaction_goal_preservation",
70
+ cooldownKey,
71
+ message: messageFor("compaction_goal_preservation")
72
+ };
73
+ }
44
74
  function guardFeedback(input) {
75
+ const readGuard = redundantReadGuardFeedback(input);
76
+ if (readGuard) {
77
+ return readGuard;
78
+ }
45
79
  const currentCategory = validationCategory(input.currentTool?.purpose);
46
80
  if (!currentCategory || input.currentTool?.toolName !== "Bash") {
47
81
  return { kind: "none" };
@@ -65,6 +99,65 @@ function guardFeedback(input) {
65
99
  message: messageFor("guard_validation_retry")
66
100
  };
67
101
  }
102
+ function redundantReadFeedback(input) {
103
+ if (input.hookEventName !== "PreToolUse" || input.currentTool?.toolName !== "Read") {
104
+ return undefined;
105
+ }
106
+ if (input.mode === "guard") {
107
+ return redundantReadGuardFeedback(input);
108
+ }
109
+ if (input.mode !== "coach") {
110
+ return undefined;
111
+ }
112
+ const repeat = repeatedFullFileReadForCurrentTool(input);
113
+ if (!repeat) {
114
+ return undefined;
115
+ }
116
+ const cooldownKey = `coach:redundant_read:${repeat.fileIdentityHash}`;
117
+ if (hasRecentCooldown(input.recentFeedback, cooldownKey)) {
118
+ return undefined;
119
+ }
120
+ return {
121
+ kind: "coach",
122
+ delivery: "additional_context",
123
+ reasonCode: "redundant_read",
124
+ safeCategory: "tool",
125
+ confidence: "medium",
126
+ messageKey: "redundant_read",
127
+ cooldownKey,
128
+ message: messageFor("redundant_read")
129
+ };
130
+ }
131
+ function redundantReadGuardFeedback(input) {
132
+ const repeat = repeatedFullFileReadForCurrentTool(input);
133
+ if (!repeat) {
134
+ return undefined;
135
+ }
136
+ return {
137
+ kind: "guard",
138
+ reasonCode: "guard_redundant_read",
139
+ safeCategory: "tool",
140
+ confidence: "high",
141
+ messageKey: "guard_redundant_read",
142
+ cooldownKey: `guard:guard_redundant_read:${repeat.fileIdentityHash}`,
143
+ message: messageFor("guard_redundant_read")
144
+ };
145
+ }
146
+ function repeatedFullFileReadForCurrentTool(input) {
147
+ if (input.hookEventName !== "PreToolUse" ||
148
+ input.currentTool?.toolName !== "Read" ||
149
+ input.currentTool.readKind !== "full" ||
150
+ !input.currentTool.fileIdentityHash) {
151
+ return undefined;
152
+ }
153
+ const match = input.summary.activeFullFileReads?.find((read) => read.fileIdentityHash === input.currentTool?.fileIdentityHash && read.unchangedFullFileReadCount >= 1);
154
+ return match
155
+ ? {
156
+ fileIdentityHash: match.fileIdentityHash,
157
+ count: match.unchangedFullFileReadCount
158
+ }
159
+ : undefined;
160
+ }
68
161
  function coachValidationRetryWarning(input) {
69
162
  if (input.mode !== "coach" || input.hookEventName !== "PreToolUse" || !isValidationTool(input.currentTool)) {
70
163
  return undefined;
@@ -234,6 +327,12 @@ function messageFor(messageKey) {
234
327
  return "bb-cc-lite: budget is high for this session; summarize progress, name the next smallest check, and avoid broad retries.";
235
328
  case "busy_no_observed_progress":
236
329
  return "bb-cc-lite: many tool calls have run without a safe progress signal. Pause, state what changed, and choose one focused next step.";
330
+ case "compaction_goal_preservation":
331
+ return "bb-cc-lite: compaction just finished. Before continuing, restate the current goal, key constraints, and next three steps from existing context.";
332
+ case "redundant_read":
333
+ return "bb-cc-lite: this file was already read recently and no edit/write was seen. Use existing context or read a specific range if needed.";
334
+ case "guard_redundant_read":
335
+ return "bb-cc-lite denied this Read: this file was already read recently and no edit/write was seen. Read a specific range if needed.";
237
336
  case "guard_validation_retry":
238
337
  return "bb-cc-lite denied this retry: the same validation category has failed repeatedly without an edit or passing check. Inspect before retrying.";
239
338
  case "finish_with_unresolved_risk":
@@ -1 +1 @@
1
- {"version":3,"file":"feedback-policy.js","sourceRoot":"","sources":["../src/feedback-policy.ts"],"names":[],"mappings":"AAiDA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7E,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;QACnC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,aAAa,KAAK,YAAY,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,SAAS,IAAI,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACpF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,MAAM,WAAW,GAAG,SAAS,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;IACpE,IAAI,iBAAiB,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW;QACX,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAA0B;IAC/C,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvE,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,WAAW,EAAE,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IAC5C,MAAM,QAAQ,GAAG,kCAAkC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,qBAAqB,GACzB,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB;QAClC,CAAC,CAAC,UAAU,EAAE,QAAQ,KAAK,eAAe,IAAI,UAAU,CAAC,sBAAsB,IAAI,CAAC,CAAC;YACnF,CAAC,QAAQ,EAAE,YAAY,KAAK,eAAe,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,WAAW,GAAG,gCAAgC,eAAe,EAAE,CAAC;IACtE,OAAO;QACL,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,eAAe;QAC7B,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,wBAAwB;QACpC,WAAW;QACX,OAAO,EAAE,UAAU,CAAC,wBAAwB,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,KAA0B;IAC7D,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,aAAa,KAAK,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3G,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IAC5C,MAAM,QAAQ,GAAG,kCAAkC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,mBAAmB,GACvB,CAAC,UAAU,EAAE,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,sBAAsB,IAAI,CAAC,CAAC;QAC7E,CAAC,QAAQ,EAAE,YAAY,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CACpD,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,MAAM,KAAK,OAAO;QAC3B,CAAC,QAAQ,CAAC,WAAW,KAAK,6BAA6B,QAAQ,EAAE;YAC/D,QAAQ,CAAC,WAAW,KAAK,0BAA0B,QAAQ,EAAE;YAC7D,QAAQ,CAAC,WAAW,KAAK,+CAA+C,QAAQ,EAAE,CAAC,CACxF,CAAC;IACF,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,uCAAuC;QACnD,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,UAAU,IAAI,UAAU,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;QACpF,UAAU,EAAE,uCAAuC;QACnD,WAAW,EAAE,+CAA+C,QAAQ,EAAE;QACtE,OAAO,EAAE,UAAU,CAAC,uCAAuC,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAA0B;IAC9C,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,MAAM,iBAAiB,GACrB,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,MAAM;QAChC,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,aAAa;QAC5C,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,uBAAuB;QACtD,KAAK,CAAC,OAAO,CAAC,mBAAmB;QACjC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,sBAAsB,IAAI,CAAC,CAAC;QACzF,OAAO,CAAC,kCAAkC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,WAAW,GAAG,0CAA0C,CAAC;IAC/D,IAAI,iBAAiB,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,6BAA6B;QACzC,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE,6BAA6B;QACzC,WAAW;QACX,OAAO,EAAE,UAAU,CAAC,6BAA6B,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAA0B;IAQ/C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IAC5C,IAAI,UAAU,IAAI,UAAU,CAAC,sBAAsB,IAAI,CAAC,EAAE,CAAC;QACzD,OAAO;YACL,UAAU,EAAE,kBAAkB;YAC9B,YAAY,EAAE,8BAA8B,CAAC,UAAU,CAAC,QAAQ,CAAC;YACjE,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,kBAAkB;SAC/B,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,IAAI,UAAU,CAAC,sBAAsB,IAAI,CAAC,EAAE,CAAC;QACzD,OAAO;YACL,UAAU,EAAE,qBAAqB;YACjC,YAAY,EAAE,8BAA8B,CAAC,UAAU,CAAC,QAAQ,CAAC;YACjE,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,kCAAkC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnE,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,UAAU,EAAE,qBAAqB;YACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,UAAU,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YACnD,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACtC,OAAO;YACL,UAAU,EAAE,yBAAyB;YACrC,YAAY,EAAE,MAAM;YACpB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,yBAAyB;SACtC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,kCAAkC,EAAE,CAAC;QACtE,OAAO;YACL,UAAU,EAAE,kCAAkC;YAC9C,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,kCAAkC;SAC/C,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,aAAa,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,iBAAiB,EAAE,CAAC;QACrG,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;YACrC,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,gBAAgB;SAC7B,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,KAAK,2BAA2B,EAAE,CAAC;QAC/D,OAAO;YACL,UAAU,EAAE,2BAA2B;YACvC,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,2BAA2B;SACxC,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kCAAkC,CACzC,OAA0B;IAE1B,OAAO,OAAO,CAAC,gBAAgB;SAC5B,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,yBAAyB,CAAC,OAA0B;IAC3D,OAAO,OAAO,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAiC;IACzD,OAAO,IAAI,EAAE,QAAQ,KAAK,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;AACrF,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAyB;IACnD,OAAO,KAAK,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;QAC5C,CAAC,CAAE,KAAiF;QACpF,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,8BAA8B,CAAC,QAAgB;IACtD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACpG,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,cAAgC,EAAE,WAAmB;IAC9E,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,UAAU,CAAC,UAAkB;IACpC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,kBAAkB;YACrB,OAAO,mJAAmJ,CAAC;QAC7J,KAAK,qBAAqB;YACxB,OAAO,uJAAuJ,CAAC;QACjK,KAAK,uCAAuC;YAC1C,OAAO,wKAAwK,CAAC;QAClL,KAAK,yBAAyB;YAC5B,OAAO,gIAAgI,CAAC;QAC1I,KAAK,kCAAkC;YACrC,OAAO,mIAAmI,CAAC;QAC7I,KAAK,gBAAgB;YACnB,OAAO,yHAAyH,CAAC;QACnI,KAAK,2BAA2B;YAC9B,OAAO,mIAAmI,CAAC;QAC7I,KAAK,wBAAwB;YAC3B,OAAO,6IAA6I,CAAC;QACvJ,KAAK,6BAA6B;YAChC,OAAO,kHAAkH,CAAC;QAC5H;YACE,OAAO,oEAAoE,CAAC;IAChF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"feedback-policy.js","sourceRoot":"","sources":["../src/feedback-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ReadKind } from "./types.js";
2
+ export interface FileIdentity {
3
+ fileIdentityHash: string;
4
+ safeFileLabel?: string;
5
+ }
6
+ export declare function fileIdentityFromToolInput(toolName: string, input: unknown): FileIdentity | undefined;
7
+ export declare function readKindFromInput(input: unknown): ReadKind | undefined;
8
+ export declare function isFullFileReadInput(input: unknown): boolean;
@@ -0,0 +1,43 @@
1
+ import { hashValue } from "./paths.js";
2
+ import { asRecord, stringField } from "./status-input.js";
3
+ export function fileIdentityFromToolInput(toolName, input) {
4
+ const root = asRecord(input);
5
+ if (!root) {
6
+ return undefined;
7
+ }
8
+ const rawPath = stringField(root.file_path) || (toolName === "NotebookEdit" ? stringField(root.notebook_path) : undefined);
9
+ const fileIdentityHash = hashValue(rawPath);
10
+ return fileIdentityHash
11
+ ? {
12
+ fileIdentityHash,
13
+ safeFileLabel: safeFileLabel(rawPath)
14
+ }
15
+ : undefined;
16
+ }
17
+ export function readKindFromInput(input) {
18
+ const root = asRecord(input);
19
+ if (!root) {
20
+ return undefined;
21
+ }
22
+ return root.offset === undefined && root.limit === undefined ? "full" : "partial";
23
+ }
24
+ export function isFullFileReadInput(input) {
25
+ return readKindFromInput(input) === "full";
26
+ }
27
+ function safeFileLabel(filePath) {
28
+ if (!filePath) {
29
+ return undefined;
30
+ }
31
+ const segment = filePath.split(/[\\/]+/u).filter(Boolean).at(-1);
32
+ if (!segment || segment === "." || segment === "..") {
33
+ return undefined;
34
+ }
35
+ // Keep only a basename-style hint; never retain the full local path.
36
+ // eslint-disable-next-line no-control-regex
37
+ const label = segment.replace(/[\u0000-\u001f\u007f]+/gu, " ").replace(/\s+/gu, " ").trim();
38
+ if (!label) {
39
+ return undefined;
40
+ }
41
+ return label.length > 80 ? `${label.slice(0, 77)}...` : label;
42
+ }
43
+ //# sourceMappingURL=file-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-identity.js","sourceRoot":"","sources":["../src/file-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,MAAM,UAAU,yBAAyB,CAAC,QAAgB,EAAE,KAAc;IACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3H,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,gBAAgB;QACrB,CAAC,CAAC;YACE,gBAAgB;YAChB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC;SACtC;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,QAA4B;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,qEAAqE;IACrE,4CAA4C;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAChE,CAAC"}
@@ -20,9 +20,21 @@ export interface HistoricalReplayMetrics {
20
20
  averageToolResultsBeforeWarning: number;
21
21
  averageCostBeforeWarning: number | undefined;
22
22
  averageDurationBeforeWarning: number | undefined;
23
+ warningLeadTimeAttempts: number;
24
+ decisionFlipRate: number;
23
25
  projectBaselineSuppressions: number | undefined;
24
26
  lowSampleSuppressions: number;
25
27
  categoryCoverage: Partial<Record<FailureRecoveryCategory, number>>;
28
+ policies: Record<HistoricalReplayPolicyName, HistoricalReplayPolicyMetrics>;
29
+ }
30
+ export type HistoricalReplayPolicyName = "current_fixed" | "smoothed_recovery_wording" | "hazard_threshold_candidate";
31
+ export interface HistoricalReplayPolicyMetrics {
32
+ warnings: number;
33
+ falseStopCount: number;
34
+ missedUnrecoveredLoopCount: number;
35
+ warningLeadTimeAttempts: number;
36
+ decisionFlipRate: number;
37
+ categoryCoverage: Partial<Record<FailureRecoveryCategory, number>>;
26
38
  }
27
39
  export declare function evaluateHistoricalReplay(options?: HistoricalReplayOptions): Promise<HistoricalReplayMetrics>;
28
40
  export declare function formatHistoricalReplayMetrics(metrics: HistoricalReplayMetrics): string;
@@ -3,7 +3,7 @@ import { homedir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import { extractFailureEpisodesFromTranscriptLines, extractSafeToolResultEventsFromTranscriptLines } from "./failure-episodes.js";
5
5
  import { asRecord, numberField } from "./status-input.js";
6
- import { addFailureEpisodeToRecoveryCounters, blindRetryAggregatesFromCounters, emptyRecoveryBuildCounters, FAILURE_RECOVERY_CATEGORIES, recoveryAggregatesFromCounters, recoveryInsight } from "./recovery-stats.js";
6
+ import { addFailureEpisodeToRecoveryCounters, blindRetryAggregatesFromCounters, emptyRecoveryBuildCounters, FAILURE_RECOVERY_CATEGORIES, recoveryAggregatesFromCounters, recoveryInsight, retryHazardsFromCounters } from "./recovery-stats.js";
7
7
  import { readTranscriptTail } from "./transcript-reader.js";
8
8
  const DEFAULT_MAX_FILES = 1500;
9
9
  const DEFAULT_MAX_BYTES_PER_TRANSCRIPT = 1024 * 1024;
@@ -37,12 +37,41 @@ export function formatHistoricalReplayMetrics(metrics) {
37
37
  `average tool results before warning ${metrics.averageToolResultsBeforeWarning.toFixed(2)}`,
38
38
  `average cost before warning ${formatOptionalCurrencyAverage(metrics.averageCostBeforeWarning)}`,
39
39
  `average duration before warning ${formatOptionalDurationAverage(metrics.averageDurationBeforeWarning)}`,
40
+ `warning lead time ${metrics.warningLeadTimeAttempts.toFixed(2)} attempts`,
41
+ `decision flip rate ${metrics.decisionFlipRate.toFixed(2)}`,
40
42
  `project-baseline suppressions ${metrics.projectBaselineSuppressions === undefined ? "n/a (not replayed)" : metrics.projectBaselineSuppressions}`,
41
43
  `low-sample suppressions ${metrics.lowSampleSuppressions}`,
42
- `category coverage ${formatCategoryCoverage(metrics.categoryCoverage)}`
44
+ `category coverage ${formatCategoryCoverage(metrics.categoryCoverage)}`,
45
+ `policy comparison ${formatPolicyComparison(metrics.policies)}`
43
46
  ].join("; ");
44
47
  }
45
48
  function evaluateHoldout(holdoutEventsBySession, baseline) {
49
+ const current = evaluatePolicy(holdoutEventsBySession, baseline, "current_fixed");
50
+ const smoothed = evaluatePolicy(holdoutEventsBySession, baseline, "smoothed_recovery_wording");
51
+ const hazard = evaluatePolicy(holdoutEventsBySession, baseline, "hazard_threshold_candidate");
52
+ const policies = {
53
+ current_fixed: policyMetricsFromOutcomes(current.outcomes, 0),
54
+ smoothed_recovery_wording: policyMetricsFromOutcomes(smoothed.outcomes, decisionFlipRate(current.outcomes, smoothed.outcomes)),
55
+ hazard_threshold_candidate: policyMetricsFromOutcomes(hazard.outcomes, decisionFlipRate(current.outcomes, hazard.outcomes))
56
+ };
57
+ const currentMetrics = metricsFromOutcomes(holdoutEventsBySession.length, current.outcomes, current.lowSampleSuppressions);
58
+ return {
59
+ ...currentMetrics,
60
+ decisionFlipRate: policies.hazard_threshold_candidate.decisionFlipRate,
61
+ policies
62
+ };
63
+ }
64
+ function evaluatePolicy(holdoutEventsBySession, baseline, policy) {
65
+ const outcomes = [];
66
+ let lowSampleSuppressions = 0;
67
+ for (const events of holdoutEventsBySession) {
68
+ const replay = replaySession(events, baseline, policy);
69
+ lowSampleSuppressions += replay.lowSampleSuppressions;
70
+ outcomes.push(...replay.outcomes);
71
+ }
72
+ return { outcomes, lowSampleSuppressions };
73
+ }
74
+ function metricsFromOutcomes(holdoutSessions, outcomes, lowSampleSuppressions) {
46
75
  let evaluatedFailureEpisodes = 0;
47
76
  let stopTruePositive = 0;
48
77
  let stopTotal = 0;
@@ -50,56 +79,53 @@ function evaluateHoldout(holdoutEventsBySession, baseline) {
50
79
  let missedUnrecoveredLoopCount = 0;
51
80
  let blindRetryTruePositive = 0;
52
81
  let blindRetryTotal = 0;
53
- let lowSampleSuppressions = 0;
54
82
  let warnings = 0;
55
83
  const attemptsBeforeWarning = [];
56
84
  const toolResultsBeforeWarning = [];
57
85
  const costBeforeWarning = [];
58
86
  const durationBeforeWarning = [];
87
+ const warningLeadAttempts = [];
59
88
  const categoryCoverage = {};
60
- for (const events of holdoutEventsBySession) {
61
- const replay = replaySession(events, baseline);
62
- lowSampleSuppressions += replay.lowSampleSuppressions;
63
- for (const outcome of replay.outcomes) {
64
- evaluatedFailureEpisodes += 1;
65
- categoryCoverage[outcome.category] = (categoryCoverage[outcome.category] || 0) + 1;
66
- if (outcome.warningAttempt !== undefined) {
67
- warnings += 1;
68
- attemptsBeforeWarning.push(outcome.warningAttempt);
69
- if (outcome.warningToolResultCount !== undefined) {
70
- toolResultsBeforeWarning.push(outcome.warningToolResultCount);
71
- }
72
- if (outcome.warningCostUsd !== undefined) {
73
- costBeforeWarning.push(outcome.warningCostUsd);
74
- }
75
- if (outcome.warningDurationMs !== undefined) {
76
- durationBeforeWarning.push(outcome.warningDurationMs);
77
- }
89
+ for (const outcome of outcomes) {
90
+ evaluatedFailureEpisodes += 1;
91
+ categoryCoverage[outcome.category] = (categoryCoverage[outcome.category] || 0) + 1;
92
+ if (outcome.warningAttempt !== undefined) {
93
+ warnings += 1;
94
+ attemptsBeforeWarning.push(outcome.warningAttempt);
95
+ warningLeadAttempts.push(Math.max(0, outcome.attemptCount - outcome.warningAttempt));
96
+ if (outcome.warningToolResultCount !== undefined) {
97
+ toolResultsBeforeWarning.push(outcome.warningToolResultCount);
78
98
  }
79
- if (outcome.stopIssued) {
80
- stopTotal += 1;
81
- if (outcome.recovered) {
82
- falseStopCountOnRecoveredEpisodes += 1;
83
- }
84
- else {
85
- stopTruePositive += 1;
86
- }
99
+ if (outcome.warningCostUsd !== undefined) {
100
+ costBeforeWarning.push(outcome.warningCostUsd);
87
101
  }
88
- const unrecoveredLoop = !outcome.recovered && outcome.attemptCount >= 3;
89
- if (unrecoveredLoop && !outcome.stopIssued) {
90
- missedUnrecoveredLoopCount += 1;
102
+ if (outcome.warningDurationMs !== undefined) {
103
+ durationBeforeWarning.push(outcome.warningDurationMs);
91
104
  }
92
- if (outcome.blindRetryWarningIssued) {
93
- blindRetryTotal += 1;
94
- if (!outcome.recovered) {
95
- blindRetryTruePositive += 1;
96
- }
105
+ }
106
+ if (outcome.stopIssued) {
107
+ stopTotal += 1;
108
+ if (outcome.recovered) {
109
+ falseStopCountOnRecoveredEpisodes += 1;
110
+ }
111
+ else {
112
+ stopTruePositive += 1;
113
+ }
114
+ }
115
+ const unrecoveredLoop = !outcome.recovered && outcome.attemptCount >= 3;
116
+ if (unrecoveredLoop && !outcome.stopIssued) {
117
+ missedUnrecoveredLoopCount += 1;
118
+ }
119
+ if (outcome.blindRetryWarningIssued) {
120
+ blindRetryTotal += 1;
121
+ if (!outcome.recovered) {
122
+ blindRetryTruePositive += 1;
97
123
  }
98
124
  }
99
125
  }
100
126
  return {
101
- sessionsEvaluated: holdoutEventsBySession.length,
102
- holdoutSessions: holdoutEventsBySession.length,
127
+ sessionsEvaluated: holdoutSessions,
128
+ holdoutSessions,
103
129
  evaluatedFailureEpisodes,
104
130
  warnings,
105
131
  stopPrecisionOnUnrecoveredEpisodes: stopTotal > 0 ? roundRate(stopTruePositive / stopTotal) : undefined,
@@ -115,12 +141,13 @@ function evaluateHoldout(holdoutEventsBySession, baseline) {
115
141
  : 0,
116
142
  averageCostBeforeWarning: averageOrUndefined(costBeforeWarning),
117
143
  averageDurationBeforeWarning: averageOrUndefined(durationBeforeWarning),
144
+ warningLeadTimeAttempts: averageOrZero(warningLeadAttempts),
118
145
  projectBaselineSuppressions: undefined,
119
146
  lowSampleSuppressions,
120
147
  categoryCoverage
121
148
  };
122
149
  }
123
- function replaySession(events, baseline) {
150
+ function replaySession(events, baseline, policy) {
124
151
  const active = new Map();
125
152
  const outcomes = [];
126
153
  let lowSampleSuppressions = 0;
@@ -158,7 +185,7 @@ function replaySession(events, baseline) {
158
185
  episode.attemptCount += 1;
159
186
  episode.maxBlindRunCount = Math.max(episode.maxBlindRunCount, episode.blindRunCount);
160
187
  episode.meaningfulInterventionSinceFailure = false;
161
- const currentState = replayDecisionState(episode);
188
+ const currentState = replayDecisionState(episode, baseline, policy);
162
189
  if (currentState !== "Healthy" && episode.warningAttempt === undefined) {
163
190
  episode.warningAttempt = episode.attemptCount;
164
191
  episode.warningToolResultCount = toolResultCount;
@@ -181,7 +208,21 @@ function replaySession(events, baseline) {
181
208
  }
182
209
  return { outcomes, lowSampleSuppressions };
183
210
  }
184
- function replayDecisionState(episode) {
211
+ function replayDecisionState(episode, baseline, policy) {
212
+ const fixedState = fixedReplayDecisionState(episode);
213
+ if (policy !== "hazard_threshold_candidate") {
214
+ return fixedState;
215
+ }
216
+ const insight = recoveryInsight(baseline, episode.category, episode.attemptCount);
217
+ if (fixedState === "Stop" && insight?.kind === "usually_recovers") {
218
+ return "Careful";
219
+ }
220
+ if (fixedState === "Careful" && insight?.kind === "usually_unrecovered") {
221
+ return "Stop";
222
+ }
223
+ return fixedState;
224
+ }
225
+ function fixedReplayDecisionState(episode) {
185
226
  if (episode.maxBlindRunCount >= 3 || episode.attemptCount >= 3) {
186
227
  return "Stop";
187
228
  }
@@ -210,7 +251,8 @@ function baselineFromEpisodes(episodes) {
210
251
  }
211
252
  return {
212
253
  failureRecovery: recoveryAggregatesFromCounters(counters),
213
- blindRetry: blindRetryAggregatesFromCounters(counters)
254
+ blindRetry: blindRetryAggregatesFromCounters(counters),
255
+ retryHazards: retryHazardsFromCounters(counters)
214
256
  };
215
257
  }
216
258
  async function readEpisodes(files, maxBytesPerTranscript) {
@@ -401,6 +443,9 @@ function formatOptionalDurationAverage(value) {
401
443
  function averageOrUndefined(values) {
402
444
  return values.length > 0 ? Number((values.reduce((total, value) => total + value, 0) / values.length).toFixed(2)) : undefined;
403
445
  }
446
+ function averageOrZero(values) {
447
+ return values.length > 0 ? Number((values.reduce((total, value) => total + value, 0) / values.length).toFixed(2)) : 0;
448
+ }
404
449
  function formatCategoryCoverage(coverage) {
405
450
  const parts = FAILURE_RECOVERY_CATEGORIES.flatMap((category) => {
406
451
  const count = coverage[category] || 0;
@@ -408,6 +453,57 @@ function formatCategoryCoverage(coverage) {
408
453
  });
409
454
  return parts.length > 0 ? parts.join(", ") : "none";
410
455
  }
456
+ function policyMetricsFromOutcomes(outcomes, decisionFlipRateValue) {
457
+ let warnings = 0;
458
+ let falseStopCount = 0;
459
+ let missedUnrecoveredLoopCount = 0;
460
+ const warningLeadAttempts = [];
461
+ const categoryCoverage = {};
462
+ for (const outcome of outcomes) {
463
+ categoryCoverage[outcome.category] = (categoryCoverage[outcome.category] || 0) + 1;
464
+ if (outcome.warningAttempt !== undefined) {
465
+ warnings += 1;
466
+ warningLeadAttempts.push(Math.max(0, outcome.attemptCount - outcome.warningAttempt));
467
+ }
468
+ if (outcome.stopIssued && outcome.recovered) {
469
+ falseStopCount += 1;
470
+ }
471
+ if (!outcome.recovered && outcome.attemptCount >= 3 && !outcome.stopIssued) {
472
+ missedUnrecoveredLoopCount += 1;
473
+ }
474
+ }
475
+ return {
476
+ warnings,
477
+ falseStopCount,
478
+ missedUnrecoveredLoopCount,
479
+ warningLeadTimeAttempts: averageOrZero(warningLeadAttempts),
480
+ decisionFlipRate: decisionFlipRateValue,
481
+ categoryCoverage
482
+ };
483
+ }
484
+ function decisionFlipRate(reference, candidate) {
485
+ const total = Math.min(reference.length, candidate.length);
486
+ if (total === 0) {
487
+ return 0;
488
+ }
489
+ let flips = 0;
490
+ for (let index = 0; index < total; index += 1) {
491
+ const left = reference[index];
492
+ const right = candidate[index];
493
+ if (!left || !right) {
494
+ continue;
495
+ }
496
+ if (left.stopIssued !== right.stopIssued || left.warningAttempt !== right.warningAttempt) {
497
+ flips += 1;
498
+ }
499
+ }
500
+ return roundRate(flips / total);
501
+ }
502
+ function formatPolicyComparison(policies) {
503
+ return Object.entries(policies)
504
+ .map(([name, metrics]) => `${name} false Stops ${metrics.falseStopCount}, missed unrecovered loops ${metrics.missedUnrecoveredLoopCount}, warning lead time ${metrics.warningLeadTimeAttempts.toFixed(2)}, decision flip rate ${metrics.decisionFlipRate.toFixed(2)}, category coverage ${formatCategoryCoverage(metrics.categoryCoverage)}`)
505
+ .join(" | ");
506
+ }
411
507
  function roundRate(value) {
412
508
  return Number(value.toFixed(4));
413
509
  }
@@ -1 +1 @@
1
- {"version":3,"file":"historical-replay.js","sourceRoot":"","sources":["../src/historical-replay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"historical-replay.js","sourceRoot":"","sources":["../src/historical-replay.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { expectedActionForFeedback, refreshFeedbackOutcomesForSession } from "./feedback-outcomes.js";
2
2
  import { decideFeedback } from "./feedback-policy.js";
3
+ import { fileIdentityFromToolInput, readKindFromInput } from "./file-identity.js";
3
4
  import { responseForFeedback } from "./hook-response.js";
4
5
  import { parseHookPayload } from "./hook-payload.js";
5
6
  import { lessonContextForProject, recordLessonFromSummary } from "./memory-lessons.js";
@@ -119,12 +120,16 @@ async function summaryForSession(sessionKey, storePath) {
119
120
  };
120
121
  }
121
122
  function currentTool(root, projectConfig) {
122
- const identity = classifyToolIdentity(stringField(root.tool_name) || stringField(root.toolName), root.tool_input ?? root.toolInput, {
123
+ const toolInput = root.tool_input ?? root.toolInput;
124
+ const identity = classifyToolIdentity(stringField(root.tool_name) || stringField(root.toolName), toolInput, {
123
125
  projectConfig
124
126
  });
127
+ const fileIdentity = fileIdentityFromToolInput(identity.displayName, toolInput);
125
128
  return {
126
129
  toolName: identity.displayName,
127
- purpose: identity.purpose
130
+ purpose: identity.purpose,
131
+ fileIdentityHash: fileIdentity?.fileIdentityHash,
132
+ readKind: identity.displayName === "Read" ? readKindFromInput(toolInput) : undefined
128
133
  };
129
134
  }
130
135
  function parseRoot(raw) {