audit-tools 0.32.58 → 0.32.60

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 (137) hide show
  1. package/dist/audit/cli/charterDeltaPrompt.d.ts.map +1 -1
  2. package/dist/audit/cli/charterDeltaPrompt.js +19 -1
  3. package/dist/audit/cli/charterDeltaPrompt.js.map +1 -1
  4. package/dist/audit/cli/dispatch/tierRouting.d.ts +8 -0
  5. package/dist/audit/cli/dispatch/tierRouting.d.ts.map +1 -1
  6. package/dist/audit/cli/dispatch/tierRouting.js +1 -1
  7. package/dist/audit/cli/dispatch/tierRouting.js.map +1 -1
  8. package/dist/audit/cli/dispatch/tokenUsageObservation.d.ts +91 -0
  9. package/dist/audit/cli/dispatch/tokenUsageObservation.d.ts.map +1 -0
  10. package/dist/audit/cli/dispatch/tokenUsageObservation.js +210 -0
  11. package/dist/audit/cli/dispatch/tokenUsageObservation.js.map +1 -0
  12. package/dist/audit/cli/dispatch.d.ts.map +1 -1
  13. package/dist/audit/cli/dispatch.js +21 -9
  14. package/dist/audit/cli/dispatch.js.map +1 -1
  15. package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -1
  16. package/dist/audit/cli/mergeAndIngestCommand.js +62 -4
  17. package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -1
  18. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  19. package/dist/audit/cli/nextStepCommand.js +7 -4
  20. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  21. package/dist/audit/cli/prompts.d.ts.map +1 -1
  22. package/dist/audit/cli/prompts.js +12 -0
  23. package/dist/audit/cli/prompts.js.map +1 -1
  24. package/dist/audit/cli/providerConfirmationStep.d.ts +10 -1
  25. package/dist/audit/cli/providerConfirmationStep.d.ts.map +1 -1
  26. package/dist/audit/cli/providerConfirmationStep.js +49 -0
  27. package/dist/audit/cli/providerConfirmationStep.js.map +1 -1
  28. package/dist/audit/cli/rollingAuditDispatch.d.ts.map +1 -1
  29. package/dist/audit/cli/rollingAuditDispatch.js +17 -1
  30. package/dist/audit/cli/rollingAuditDispatch.js.map +1 -1
  31. package/dist/audit/contracts/workerSchemas.d.ts +36 -0
  32. package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
  33. package/dist/audit/orchestrator/charterExtractionExecutor.d.ts.map +1 -1
  34. package/dist/audit/orchestrator/charterExtractionExecutor.js +11 -6
  35. package/dist/audit/orchestrator/charterExtractionExecutor.js.map +1 -1
  36. package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -1
  37. package/dist/audit/orchestrator/rollingDispatch.js +2 -0
  38. package/dist/audit/orchestrator/rollingDispatch.js.map +1 -1
  39. package/dist/audit/quota/index.d.ts +4 -4
  40. package/dist/audit/types/activeDispatch.d.ts +8 -0
  41. package/dist/audit/types/activeDispatch.d.ts.map +1 -1
  42. package/dist/audit/types.d.ts +30 -0
  43. package/dist/audit/types.d.ts.map +1 -1
  44. package/dist/audit/types.js +19 -0
  45. package/dist/audit/types.js.map +1 -1
  46. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  47. package/dist/audit/validation/auditResults.js +40 -0
  48. package/dist/audit/validation/auditResults.js.map +1 -1
  49. package/dist/remediate/index.d.ts.map +1 -1
  50. package/dist/remediate/index.js +24 -0
  51. package/dist/remediate/index.js.map +1 -1
  52. package/dist/remediate/riskSignal.d.ts +12 -0
  53. package/dist/remediate/riskSignal.d.ts.map +1 -1
  54. package/dist/remediate/riskSignal.js +55 -1
  55. package/dist/remediate/riskSignal.js.map +1 -1
  56. package/dist/remediate/steps/contractPipeline.d.ts +19 -0
  57. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  58. package/dist/remediate/steps/contractPipeline.js +49 -11
  59. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  60. package/dist/remediate/steps/dispatch/acceptNode.d.ts +1 -1
  61. package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
  62. package/dist/remediate/steps/dispatch/acceptNode.js +13 -6
  63. package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
  64. package/dist/remediate/steps/nextStep.d.ts +23 -0
  65. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  66. package/dist/remediate/steps/nextStep.js +58 -20
  67. package/dist/remediate/steps/nextStep.js.map +1 -1
  68. package/dist/shared/dispatch/admissionLoop.d.ts +8 -6
  69. package/dist/shared/dispatch/admissionLoop.d.ts.map +1 -1
  70. package/dist/shared/dispatch/admissionLoop.js +13 -7
  71. package/dist/shared/dispatch/admissionLoop.js.map +1 -1
  72. package/dist/shared/dispatch/providerLaunchFinalize.d.ts +7 -3
  73. package/dist/shared/dispatch/providerLaunchFinalize.d.ts.map +1 -1
  74. package/dist/shared/dispatch/providerLaunchFinalize.js +52 -6
  75. package/dist/shared/dispatch/providerLaunchFinalize.js.map +1 -1
  76. package/dist/shared/dispatch/rollingDispatch.d.ts +97 -1
  77. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  78. package/dist/shared/dispatch/rollingDispatch.js +231 -80
  79. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  80. package/dist/shared/dispatch/unifiedRolling.d.ts +23 -0
  81. package/dist/shared/dispatch/unifiedRolling.d.ts.map +1 -1
  82. package/dist/shared/dispatch/unifiedRolling.js +2 -0
  83. package/dist/shared/dispatch/unifiedRolling.js.map +1 -1
  84. package/dist/shared/friction/stepBoundaryCapture.d.ts +87 -1
  85. package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
  86. package/dist/shared/friction/stepBoundaryCapture.js +117 -0
  87. package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
  88. package/dist/shared/friction/triage.d.ts.map +1 -1
  89. package/dist/shared/friction/triage.js +0 -0
  90. package/dist/shared/friction/triage.js.map +1 -1
  91. package/dist/shared/index.d.ts +9 -7
  92. package/dist/shared/index.d.ts.map +1 -1
  93. package/dist/shared/index.js +5 -5
  94. package/dist/shared/index.js.map +1 -1
  95. package/dist/shared/loopCorePaths.d.ts.map +1 -1
  96. package/dist/shared/loopCorePaths.js +0 -1
  97. package/dist/shared/loopCorePaths.js.map +1 -1
  98. package/dist/shared/providers/providerConfirmation.d.ts +43 -1
  99. package/dist/shared/providers/providerConfirmation.d.ts.map +1 -1
  100. package/dist/shared/providers/providerConfirmation.js +28 -0
  101. package/dist/shared/providers/providerConfirmation.js.map +1 -1
  102. package/dist/shared/quota/accountId.d.ts +54 -0
  103. package/dist/shared/quota/accountId.d.ts.map +1 -0
  104. package/dist/shared/quota/accountId.js +96 -0
  105. package/dist/shared/quota/accountId.js.map +1 -0
  106. package/dist/shared/quota/apiPool.d.ts.map +1 -1
  107. package/dist/shared/quota/apiPool.js +29 -1
  108. package/dist/shared/quota/apiPool.js.map +1 -1
  109. package/dist/shared/quota/capacity.d.ts +2 -2
  110. package/dist/shared/quota/errorParsing.d.ts +31 -0
  111. package/dist/shared/quota/errorParsing.d.ts.map +1 -1
  112. package/dist/shared/quota/errorParsing.js +115 -0
  113. package/dist/shared/quota/errorParsing.js.map +1 -1
  114. package/dist/shared/quota/hostSessionQuotaSource.d.ts +15 -2
  115. package/dist/shared/quota/hostSessionQuotaSource.d.ts.map +1 -1
  116. package/dist/shared/quota/hostSessionQuotaSource.js +12 -8
  117. package/dist/shared/quota/hostSessionQuotaSource.js.map +1 -1
  118. package/dist/shared/quota/scheduler.d.ts +70 -11
  119. package/dist/shared/quota/scheduler.d.ts.map +1 -1
  120. package/dist/shared/quota/scheduler.js +86 -18
  121. package/dist/shared/quota/scheduler.js.map +1 -1
  122. package/dist/shared/quota/state.d.ts +72 -0
  123. package/dist/shared/quota/state.d.ts.map +1 -1
  124. package/dist/shared/quota/state.js +108 -0
  125. package/dist/shared/quota/state.js.map +1 -1
  126. package/dist/shared/types/rollingDispatch.d.ts +50 -1
  127. package/dist/shared/types/rollingDispatch.d.ts.map +1 -1
  128. package/docs/audit-pkg/contracts.md +6 -8
  129. package/docs/audit-pkg/product.md +4 -3
  130. package/docs/audit-pkg/release.md +1 -1
  131. package/package.json +1 -1
  132. package/schemas/audit_result.schema.json +16 -0
  133. package/schemas/audit_results.schema.json +16 -0
  134. package/dist/remediate/steps/leanFastPath.d.ts +0 -32
  135. package/dist/remediate/steps/leanFastPath.d.ts.map +0 -1
  136. package/dist/remediate/steps/leanFastPath.js +0 -103
  137. package/dist/remediate/steps/leanFastPath.js.map +0 -1
@@ -294,6 +294,114 @@ export async function recordTokensPerPctObservation(providerModelKey, windowLabe
294
294
  await writeQuotaState(state);
295
295
  });
296
296
  }
297
+ /**
298
+ * Build a window-label → {@link QuotaWindowPctReading} map from a quota usage
299
+ * snapshot. Falls back to a single `"default"` label when the source has no
300
+ * per-window breakdown (single-window providers). Returns an empty map for a
301
+ * null/absent snapshot or one with no usable percent reading.
302
+ *
303
+ * Single-sourced so the in-process rolling dispatcher and the host-dispatch
304
+ * merge path attribute a slope sample against the SAME window semantics —
305
+ * see {@link foldSlopeObservationFromSnapshots}.
306
+ */
307
+ export function quotaSnapshotWindowPctMap(snapshot) {
308
+ const map = new Map();
309
+ if (!snapshot)
310
+ return map;
311
+ if (snapshot.windows && snapshot.windows.length > 0) {
312
+ for (const w of snapshot.windows) {
313
+ if (w.remaining_pct != null && Number.isFinite(w.remaining_pct)) {
314
+ map.set(w.label, { remainingPct: w.remaining_pct, resetAt: w.reset_at ?? null });
315
+ }
316
+ }
317
+ }
318
+ else if (snapshot.remaining_pct != null && Number.isFinite(snapshot.remaining_pct)) {
319
+ map.set("default", { remainingPct: snapshot.remaining_pct, resetAt: snapshot.reset_at ?? null });
320
+ }
321
+ return map;
322
+ }
323
+ /**
324
+ * Attribute tokens dispatched between a PRE and POST window-pct reading (as
325
+ * produced by {@link quotaSnapshotWindowPctMap}) to whichever windows moved
326
+ * past {@link MIN_SLOPE_DELTA_PERCENT}, folding one
327
+ * {@link recordTokensPerPctObservation} sample per moved window.
328
+ *
329
+ * This is the single-sourced fold CORE behind both slope-learning call sites:
330
+ * the in-process rolling dispatcher (`rollingDispatch.ts`'s `observeSlope`,
331
+ * which baselines a live-polled snapshot per pool across a run) and the
332
+ * host-dispatch merge path (`mergeAndIngestCommand.ts` via
333
+ * {@link foldSlopeObservationFromSnapshots}, which has only a pre-grant
334
+ * snapshot and a post-merge re-probe — one pair per wave, not a continuous
335
+ * poll). Both feed the same math so the two engines cannot drift on how a
336
+ * sample is attributed.
337
+ *
338
+ * No-op (never throws) when `tokensDispatched` is non-positive/non-finite, or
339
+ * when no window appears in both maps with a meaningful Δpercent — mirroring
340
+ * {@link foldTokensPerPctObservation}'s own degrade-safe floor so the
341
+ * pre-check here is an optimization (skip the locked write), not a second
342
+ * source of truth for the threshold. A per-window
343
+ * `recordTokensPerPctObservation` failure is swallowed: slope learning must
344
+ * never abort the caller — but (C2) the label is only reported as FOLDED once
345
+ * the write actually SUCCEEDS, so a swallowed throw never falsely reports
346
+ * "slope updated" to the caller.
347
+ *
348
+ * P1 window-identity guard: a label present on both sides is only diffed when
349
+ * neither reading's `reset_at` is known to differ from the other's. A window
350
+ * ROLLOVER between the PRE and POST reading (e.g. remaining_pct=0.5 in the old
351
+ * window resets to 1.0, then drains to 0.3 in the new one) would otherwise
352
+ * compute a slope against a fake ~20-point drop instead of the real ~70-point
353
+ * one — worse, in a case where the new window's drop is SMALLER than the old
354
+ * window's remaining budget, the "delta" can even look like an increase and get
355
+ * caught by the zero/negative-delta floor below, or look like a small dip and
356
+ * silently understate the slope. Either way it is not a same-window
357
+ * measurement, so it is skipped rather than folded.
358
+ *
359
+ * Returns the window labels actually folded, so a caller that re-baselines on
360
+ * any fold (the in-process dispatcher) can tell whether one occurred without
361
+ * re-deriving the same comparison.
362
+ */
363
+ export async function foldSlopeObservationFromPctMaps(providerModelKey, priorPctByLabel, currentPctByLabel, tokensDispatched) {
364
+ const folded = [];
365
+ if (!Number.isFinite(tokensDispatched) || tokensDispatched <= 0)
366
+ return folded;
367
+ for (const [label, prior] of priorPctByLabel) {
368
+ const current = currentPctByLabel.get(label);
369
+ if (current == null)
370
+ continue;
371
+ if (prior.resetAt != null && current.resetAt != null && prior.resetAt !== current.resetAt) {
372
+ // P1: same label, different window instance — a rollover, not consumption.
373
+ continue;
374
+ }
375
+ // Zero/negative-delta guard: post_pct >= pre_pct (no consumption, or an
376
+ // increase — e.g. a window that reopened) must never fold. This is also
377
+ // enforced inside foldTokensPerPctObservation/recordTokensPerPctObservation
378
+ // itself via MIN_SLOPE_DELTA_PERCENT, but checking it here too means a
379
+ // non-positive delta never even reaches the locked write.
380
+ if ((prior.remainingPct - current.remainingPct) * 100 < MIN_SLOPE_DELTA_PERCENT)
381
+ continue;
382
+ try {
383
+ await recordTokensPerPctObservation(providerModelKey, label, prior.remainingPct, current.remainingPct, tokensDispatched);
384
+ // C2: push only AFTER a successful write — a throw below is caught and
385
+ // swallowed (slope learning must never abort the caller) WITHOUT this
386
+ // label being reported as folded.
387
+ folded.push(label);
388
+ }
389
+ catch {
390
+ // Non-fatal: slope learning must never abort the caller.
391
+ }
392
+ }
393
+ return folded;
394
+ }
395
+ /**
396
+ * Snapshot-based convenience wrapper over {@link foldSlopeObservationFromPctMaps}:
397
+ * maps a PRE and POST {@link QuotaUsageSnapshot} through
398
+ * {@link quotaSnapshotWindowPctMap} and folds the result. The natural entry
399
+ * point for a caller (the host-dispatch merge path) that holds two whole
400
+ * snapshots rather than pre-extracted per-window maps.
401
+ */
402
+ export async function foldSlopeObservationFromSnapshots(providerModelKey, priorSnapshot, currentSnapshot, tokensDispatched) {
403
+ return foldSlopeObservationFromPctMaps(providerModelKey, quotaSnapshotWindowPctMap(priorSnapshot), quotaSnapshotWindowPctMap(currentSnapshot), tokensDispatched);
404
+ }
297
405
  function blankEntry() {
298
406
  return { updated_at: new Date().toISOString(), cooldown_until: null, last_429_at: null };
299
407
  }
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/shared/quota/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/shared/quota/state.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export interface RollingDispatchEnginePacket<TPacket = unknown> {
33
33
  /** Outcome returned after each packet completes. */
34
34
  export interface RollingDispatchEngineResult<TPacket = unknown> {
35
35
  packet: RollingDispatchEnginePacket<TPacket>;
36
- outcome: "success" | "rate_limited" | "timeout" | "error";
36
+ outcome: "success" | "rate_limited" | "timeout" | "error" | "credit_exhausted" | "quota_unclassified";
37
37
  actualTokens?: number;
38
38
  error?: unknown;
39
39
  /**
@@ -46,6 +46,28 @@ export interface RollingDispatchEngineResult<TPacket = unknown> {
46
46
  channel: "error" | "status" | "result";
47
47
  text: string;
48
48
  };
49
+ /**
50
+ * Worker ERROR/STATUS channel evidence that classified a `credit_exhausted`
51
+ * outcome (out of prepaid usage credits — no reset timer, unlike `rateLimit`
52
+ * above). Absent on non-credit_exhausted outcomes.
53
+ */
54
+ creditExhaustion?: {
55
+ channel: "error" | "status" | "result";
56
+ text: string;
57
+ rawMatch: string | null;
58
+ };
59
+ /**
60
+ * Worker ERROR/STATUS channel VERBATIM evidence that classified a
61
+ * `quota_unclassified` outcome (Slice A2b, TIER 2): the broad
62
+ * `detectQuotaSuspicious` pre-filter matched but neither `credit_exhausted`
63
+ * nor `rate_limited` did. Carried so the consumer's `onQuotaUnclassified` hook
64
+ * can harvest the verbatim (secret-scrubbed at the sink) text for pattern
65
+ * improvement. Absent on other outcomes.
66
+ */
67
+ quotaUnclassified?: {
68
+ channel: "error" | "status" | "result";
69
+ text: string;
70
+ };
49
71
  }
50
72
  /**
51
73
  * Core interface for the rolling dispatch engine.
@@ -91,5 +113,32 @@ export interface RollingDispatchEngineContract<TPacket = unknown> {
91
113
  observedCostUsd: number;
92
114
  declaredCostPerMtok: number;
93
115
  }) => void;
116
+ /**
117
+ * Credit exhaustion (out-of-prepaid-usage-credits — no reset timer, unlike a
118
+ * 429): invoked every time a `credit_exhausted` result lands, after the engine
119
+ * has already permanently excluded the pool from this run's admissible set.
120
+ * The consumer wires it to friction emission. Optional — omit to leave the
121
+ * exclusion silent (no friction, exclusion still happens).
122
+ */
123
+ onCreditExhausted?: (info: {
124
+ poolId: string;
125
+ rawMatch: string | null;
126
+ }) => void;
127
+ /**
128
+ * Quota-unclassified harvest (Slice A2b, TIER 2): invoked every time a
129
+ * `quota_unclassified` result lands — a worker death whose text was
130
+ * quota-SUSPICIOUS (the broad pre-filter matched) but matched neither the
131
+ * precise `credit_exhausted` nor `rate_limited` class. The engine has already
132
+ * degraded CONSERVATIVELY by the time this fires (re-queued with a reversible
133
+ * cooldown; the pool is NEVER permanently excluded on this guess — see
134
+ * `rollingDispatch.ts`). The consumer wires it to friction emission carrying
135
+ * the verbatim text, so an operator can classify it and improve the pattern
136
+ * set. Optional — omit to leave the degrade silent (no friction, degrade still
137
+ * happens).
138
+ */
139
+ onQuotaUnclassified?: (info: {
140
+ poolId: string;
141
+ text: string;
142
+ }) => void;
94
143
  }
95
144
  //# sourceMappingURL=rollingDispatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rollingDispatch.d.ts","sourceRoot":"","sources":["../../../src/shared/types/rollingDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAG,OAAgB,CAAC;AAMhE,mEAAmE;AACnE,MAAM,WAAW,2BAA2B,CAAC,OAAO,GAAG,OAAO;IAC5D,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oDAAoD;AACpD,MAAM,WAAW,2BAA2B,CAAC,OAAO,GAAG,OAAO;IAC5D,MAAM,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,6BAA6B,CAAC,OAAO,GAAG,OAAO;IAC9D,iEAAiE;IACjE,aAAa,EAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;IACzE,sDAAsD;IACtD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/E,wFAAwF;IACxF,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,EACZ,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,EAAE,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,GAC3F,SAAS,CAAC;IACd;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAC5C,MAAM,EAAE,2BAA2B,CAAC,OAAO,CAAC,KACzC,IAAI,CAAC;IACV;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,KAAK,IAAI,CAAC;CACZ"}
1
+ {"version":3,"file":"rollingDispatch.d.ts","sourceRoot":"","sources":["../../../src/shared/types/rollingDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAG,OAAgB,CAAC;AAMhE,mEAAmE;AACnE,MAAM,WAAW,2BAA2B,CAAC,OAAO,GAAG,OAAO;IAC5D,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oDAAoD;AACpD,MAAM,WAAW,2BAA2B,CAAC,OAAO,GAAG,OAAO;IAC5D,MAAM,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACrG;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9E;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,6BAA6B,CAAC,OAAO,GAAG,OAAO;IAC9D,iEAAiE;IACjE,aAAa,EAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;IACzE,sDAAsD;IACtD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,2BAA2B,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/E,wFAAwF;IACxF,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,EACZ,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,EAAE,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,GAC3F,SAAS,CAAC;IACd;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAC5C,MAAM,EAAE,2BAA2B,CAAC,OAAO,CAAC,KACzC,IAAI,CAAC;IACV;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,KAAK,IAAI,CAAC;IACX;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAChF;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACxE"}
@@ -161,14 +161,12 @@ metadata, but consumers should rely on shared edge concepts:
161
161
  Packet planning should use graph edges to explain why files belong together,
162
162
  not merely to merge every connected group. Weak or high-fan-in edges should
163
163
  become context hints rather than unlimited packet expansion.
164
- Current deterministic import edges include JS/TS import kinds and Python
165
- `python-import` / `python-from-import` edges when local modules resolve.
166
- Current deterministic reference edges also include package entrypoints, package
167
- script links, workspace/project module links, JSON Schema `$ref` links, schema
168
- contract test links, bounded JSON Schema suite links, bounded GitHub Actions
169
- workflow suite links, bounded package script suite links, bounded TypeScript
170
- type contract suite links, bounded Python test-utility suite links, and
171
- deterministic test/source naming links.
164
+ Each edge carries a durable shape — `from`, `to`, `kind`, and optional
165
+ `direction` / `confidence` / `reason` — and consumers reason over that contract,
166
+ never a fixed enumeration of kinds. The authoritative, current set of edge kinds
167
+ (import, reference, ownership, bounded-suite, test/source naming, …) is whatever
168
+ the extractors registry emits (`src/audit/extractors/`); new analyzers enrich
169
+ the graph by adding kinds without changing this contract.
172
170
 
173
171
  Consumers should treat graph evidence by authority:
174
172
 
@@ -49,9 +49,10 @@ The intended workflow is:
49
49
  7. The backend ingests results, performs selective deepening and runtime
50
50
  validation when needed, and writes the final `audit-report.md`.
51
51
 
52
- Semantic review belongs to the active host conversation by default. Backend
53
- provider adapters such as `claude-code`, `opencode`, `subprocess-template`, and
54
- `vscode-task` are compatibility bridges for repo-local fallback workflows.
52
+ Semantic review belongs to the active host conversation by default. The backend
53
+ provider adapters — the authoritative current roster is `PROVIDER_NAMES`
54
+ (`src/shared/types/sessionConfig.ts`) — are compatibility bridges for
55
+ repo-local fallback workflows.
55
56
 
56
57
  ## Language strategy
57
58
 
@@ -55,7 +55,7 @@ sum. The `publish` job needs both, then:
55
55
  - verifies that the published version resolves from the registry
56
56
  - uploads `*-npm-logs` artifacts on failure
57
57
 
58
- Routine CI exercises the Node majors matrixed in `.github/workflows/*.yml` (currently Node `20` and Node `22`).
58
+ Routine CI exercises the Node majors matrixed in `.github/workflows/*.yml` (the matrix there is self-describing).
59
59
 
60
60
  ## Version bump helpers
61
61
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "audit-tools",
3
- "version": "0.32.58",
3
+ "version": "0.32.60",
4
4
  "private": false,
5
5
  "license": "ISC",
6
6
  "description": "Portable hybrid code auditing + remediation orchestrators for arbitrary repositories.",
@@ -522,6 +522,22 @@
522
522
  "attempt": {
523
523
  "type": "integer",
524
524
  "minimum": 1
525
+ },
526
+ "token_usage": {
527
+ "type": "object",
528
+ "properties": {
529
+ "input_tokens": {
530
+ "type": "number"
531
+ },
532
+ "output_tokens": {
533
+ "type": "number"
534
+ }
535
+ },
536
+ "required": [
537
+ "input_tokens",
538
+ "output_tokens"
539
+ ],
540
+ "additionalProperties": false
525
541
  }
526
542
  },
527
543
  "required": [
@@ -524,6 +524,22 @@
524
524
  "attempt": {
525
525
  "type": "integer",
526
526
  "minimum": 1
527
+ },
528
+ "token_usage": {
529
+ "type": "object",
530
+ "properties": {
531
+ "input_tokens": {
532
+ "type": "number"
533
+ },
534
+ "output_tokens": {
535
+ "type": "number"
536
+ }
537
+ },
538
+ "required": [
539
+ "input_tokens",
540
+ "output_tokens"
541
+ ],
542
+ "additionalProperties": false
527
543
  }
528
544
  },
529
545
  "required": [
@@ -1,32 +0,0 @@
1
- import type { Finding } from "audit-tools/shared";
2
- /** Source tag stamped on a lean-fast-path extracted plan (distinguishes it from `contract_pipeline`). */
3
- export declare const LEAN_FAST_PATH_SOURCE = "lean_fast_path";
4
- export declare const LEAN_LIGHT_REVIEW_SCHEMA_VERSION: "remediate-code-lean-light-review/v1alpha1";
5
- export type LeanLightReviewDisposition = "clear" | "escalate";
6
- /**
7
- * Interpret a host-written light-review verdict, fail-safe toward escalation:
8
- * any malformed / ambiguous verdict, or an `escalate` with no stated concern,
9
- * routes to the full pipeline. The floor must never silently pass — when in
10
- * doubt, escalate (a wrong call costs extra pipeline work, never skipped review).
11
- */
12
- export declare function interpretLeanLightReviewVerdict(raw: unknown): {
13
- disposition: LeanLightReviewDisposition;
14
- concerns: string[];
15
- };
16
- /** The minimal `extracted-plan.json` shape the lean path emits. */
17
- export interface LeanExtractedPlan {
18
- plan_id: string;
19
- findings: Finding[];
20
- project_type: string;
21
- source: typeof LEAN_FAST_PATH_SOURCE;
22
- candidate_closing_actions: string[];
23
- }
24
- /**
25
- * Build the lean extracted plan from the approved findings. Blocks are
26
- * intentionally omitted: `normalizeExtractedPlan` synthesizes one block per
27
- * finding and `applyPlanPipeline` then merges blocks sharing a file + splits by
28
- * context budget — the same deterministic block derivation the contract pipeline
29
- * feeds into, single-sourced rather than reimplemented here.
30
- */
31
- export declare function buildLeanExtractedPlan(findings: Finding[], planId: string): LeanExtractedPlan;
32
- //# sourceMappingURL=leanFastPath.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leanFastPath.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/leanFastPath.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAatD,eAAO,MAAM,gCAAgC,EAC3C,2CAAoD,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,OAAO,GAAG;IAC7D,WAAW,EAAE,0BAA0B,CAAC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAmCA;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,qBAAqB,CAAC;IACrC,yBAAyB,EAAE,MAAM,EAAE,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,MAAM,GACb,iBAAiB,CAQnB"}
@@ -1,103 +0,0 @@
1
- // The `low`-risk tier's realization: the lean plan builder + the light adversarial
2
- // review floor.
3
- //
4
- // Most remediation runs route through the heavy contract pipeline
5
- // (goal_normalization → … → critic → judge → implementation_dag), which exists to
6
- // reason about DESIGN correctness for complex/coupled changes. That is the right
7
- // machinery for a tangled change — and overkill for a handful of concrete, already-
8
- // grounded fixes.
9
- //
10
- // The decision of WHEN to skip that loop is NOT made here anymore: it is the
11
- // self-scaling risk dial. A run takes the lean path IFF its effective risk tier is
12
- // `low` (`src/remediate/riskSignal.ts` — the intake path/breadth/intent signal folded
13
- // with the finding-level `findingRiskEvidence`). This module owns only the low tier's
14
- // two mechanisms: the light adversarial review floor (`interpretLeanLightReviewVerdict`
15
- // — `adversarialDepthForTier("low") === "light"`) and the lean `extracted-plan.json`
16
- // builder. Folding the old standalone `evaluateFastPath` boolean into the tier killed a
17
- // second classifier that could DISAGREE with the risk signal (a grounded 5-finding batch
18
- // touching `src/shared/quota` was "fast-path eligible" AND risk-tier `high`, and bypassed
19
- // the pipeline anyway).
20
- //
21
- // What the lean path KEEPS (the retained safety net): the produced plan rejoins the
22
- // normal plan→implement→close machinery — deterministic grounding re-pass,
23
- // applyPlanPipeline's block derivation + affected-file hash snapshot (integrity check),
24
- // the implement-phase per-node verify-before-merge, and the tool-owned final whole-repo
25
- // gate. A lean-pathed fix that breaks something fails its verify and routes to triage; it
26
- // never silently lands. What it DROPS: only the adversarial contract DESIGN loop +
27
- // obligation derivation — the work that earns its cost on the coupled/systemic changes the
28
- // tier has already routed away.
29
- //
30
- // Pure + deterministic: no IO, no clock, no randomness. The caller supplies the plan id
31
- // so this stays trivially unit-testable.
32
- import { isRecord } from "audit-tools/shared";
33
- /** Source tag stamped on a lean-fast-path extracted plan (distinguishes it from `contract_pipeline`). */
34
- export const LEAN_FAST_PATH_SOURCE = "lean_fast_path";
35
- // ── T1 slice 3b — lean-path light adversarial review ────────────────────────────
36
- //
37
- // The fast path no longer SKIPS adversarial scrutiny — that would be a
38
- // zero-scrutiny fork, and remediation legitimately catches upstream (audit)
39
- // errors. Instead an eligible run runs ONE bounded LIGHT adversarial pass over
40
- // the approved findings (the floor: light, never off) before the lean plan is
41
- // trusted. A clear verdict proceeds to the lean plan; a verdict that surfaces a
42
- // real concern escalates the run (evidence the change is harder than assessed)
43
- // and routes it to the full contract pipeline. The verdict is a mechanical
44
- // on-disk gate, NOT a "please self-check" instruction the host might ignore.
45
- export const LEAN_LIGHT_REVIEW_SCHEMA_VERSION = "remediate-code-lean-light-review/v1alpha1";
46
- /**
47
- * Interpret a host-written light-review verdict, fail-safe toward escalation:
48
- * any malformed / ambiguous verdict, or an `escalate` with no stated concern,
49
- * routes to the full pipeline. The floor must never silently pass — when in
50
- * doubt, escalate (a wrong call costs extra pipeline work, never skipped review).
51
- */
52
- export function interpretLeanLightReviewVerdict(raw) {
53
- if (!isRecord(raw)) {
54
- return { disposition: "escalate", concerns: ["unreadable light-review verdict"] };
55
- }
56
- // Schema-version gate: a verdict that does not carry the exact expected
57
- // schema_version is not a trustworthy light-review emission (it may be a stale,
58
- // mis-shaped, or wrong-contract artifact). Fail safe toward escalation rather
59
- // than trusting an unversioned `clear`.
60
- if (raw.schema_version !== LEAN_LIGHT_REVIEW_SCHEMA_VERSION) {
61
- return {
62
- disposition: "escalate",
63
- concerns: [
64
- `light-review verdict schema_version must be "${LEAN_LIGHT_REVIEW_SCHEMA_VERSION}"`,
65
- ],
66
- };
67
- }
68
- const concerns = Array.isArray(raw.concerns)
69
- ? raw.concerns.filter((c) => typeof c === "string")
70
- : [];
71
- if (raw.disposition === "clear") {
72
- return { disposition: "clear", concerns: [] };
73
- }
74
- if (raw.disposition === "escalate") {
75
- return {
76
- disposition: "escalate",
77
- concerns: concerns.length > 0
78
- ? concerns
79
- : ["light review escalated without a stated concern"],
80
- };
81
- }
82
- return {
83
- disposition: "escalate",
84
- concerns: ["light-review verdict missing a valid disposition"],
85
- };
86
- }
87
- /**
88
- * Build the lean extracted plan from the approved findings. Blocks are
89
- * intentionally omitted: `normalizeExtractedPlan` synthesizes one block per
90
- * finding and `applyPlanPipeline` then merges blocks sharing a file + splits by
91
- * context budget — the same deterministic block derivation the contract pipeline
92
- * feeds into, single-sourced rather than reimplemented here.
93
- */
94
- export function buildLeanExtractedPlan(findings, planId) {
95
- return {
96
- plan_id: planId,
97
- findings,
98
- project_type: "unknown",
99
- source: LEAN_FAST_PATH_SOURCE,
100
- candidate_closing_actions: ["none"],
101
- };
102
- }
103
- //# sourceMappingURL=leanFastPath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leanFastPath.js","sourceRoot":"","sources":["../../../src/remediate/steps/leanFastPath.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,gBAAgB;AAChB,EAAE;AACF,kEAAkE;AAClE,kFAAkF;AAClF,iFAAiF;AACjF,oFAAoF;AACpF,kBAAkB;AAClB,EAAE;AACF,6EAA6E;AAC7E,mFAAmF;AACnF,sFAAsF;AACtF,sFAAsF;AACtF,wFAAwF;AACxF,qFAAqF;AACrF,wFAAwF;AACxF,yFAAyF;AACzF,0FAA0F;AAC1F,wBAAwB;AACxB,EAAE;AACF,oFAAoF;AACpF,2EAA2E;AAC3E,wFAAwF;AACxF,wFAAwF;AACxF,0FAA0F;AAC1F,mFAAmF;AACnF,2FAA2F;AAC3F,gCAAgC;AAChC,EAAE;AACF,wFAAwF;AACxF,yCAAyC;AAGzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,yGAAyG;AACzG,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAEtD,mFAAmF;AACnF,EAAE;AACF,uEAAuE;AACvE,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,2EAA2E;AAC3E,6EAA6E;AAE7E,MAAM,CAAC,MAAM,gCAAgC,GAC3C,2CAAoD,CAAC;AAIvD;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,GAAY;IAI1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,iCAAiC,CAAC,EAAE,CAAC;IACpF,CAAC;IACD,wEAAwE;IACxE,gFAAgF;IAChF,8EAA8E;IAC9E,wCAAwC;IACxC,IAAI,GAAG,CAAC,cAAc,KAAK,gCAAgC,EAAE,CAAC;QAC5D,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE;gBACR,gDAAgD,gCAAgC,GAAG;aACpF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAChE,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,GAAG,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,QAAQ,EACN,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,CAAC,iDAAiD,CAAC;SAC1D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,WAAW,EAAE,UAAU;QACvB,QAAQ,EAAE,CAAC,kDAAkD,CAAC;KAC/D,CAAC;AACJ,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAmB,EACnB,MAAc;IAEd,OAAO;QACL,OAAO,EAAE,MAAM;QACf,QAAQ;QACR,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,qBAAqB;QAC7B,yBAAyB,EAAE,CAAC,MAAM,CAAC;KACpC,CAAC;AACJ,CAAC"}