audit-tools 0.32.23 → 0.32.28

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 (148) hide show
  1. package/dist/audit/cli/conceptualDispatch.d.ts +11 -0
  2. package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
  3. package/dist/audit/cli/conceptualDispatch.js +31 -1
  4. package/dist/audit/cli/conceptualDispatch.js.map +1 -1
  5. package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
  6. package/dist/audit/cli/dispatch/quotaPool.js +7 -1
  7. package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
  8. package/dist/audit/cli/nextStepHelpers.d.ts +27 -0
  9. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  10. package/dist/audit/cli/nextStepHelpers.js +55 -17
  11. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  12. package/dist/audit/contracts/workerSchemas.d.ts +4 -4
  13. package/dist/audit/contracts/wrapperResponse.d.ts +6 -6
  14. package/dist/audit/orchestrator/advance.d.ts +18 -19
  15. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  16. package/dist/audit/orchestrator/advance.js +32 -40
  17. package/dist/audit/orchestrator/advance.js.map +1 -1
  18. package/dist/audit/orchestrator/advanceTypes.d.ts +0 -17
  19. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  20. package/dist/audit/orchestrator/hostInputPause.d.ts +69 -0
  21. package/dist/audit/orchestrator/hostInputPause.d.ts.map +1 -0
  22. package/dist/audit/orchestrator/hostInputPause.js +90 -0
  23. package/dist/audit/orchestrator/hostInputPause.js.map +1 -0
  24. package/dist/audit/quota/index.d.ts +29 -24
  25. package/dist/audit/quota/index.d.ts.map +1 -1
  26. package/dist/audit/types.d.ts +2 -2
  27. package/dist/remediate/contractPipeline/artifactStore.d.ts +27 -0
  28. package/dist/remediate/contractPipeline/artifactStore.d.ts.map +1 -1
  29. package/dist/remediate/contractPipeline/artifactStore.js +34 -0
  30. package/dist/remediate/contractPipeline/artifactStore.js.map +1 -1
  31. package/dist/remediate/contractPipeline/changeClassification.d.ts +9 -3
  32. package/dist/remediate/contractPipeline/changeClassification.d.ts.map +1 -1
  33. package/dist/remediate/contractPipeline/changeClassification.js +25 -6
  34. package/dist/remediate/contractPipeline/changeClassification.js.map +1 -1
  35. package/dist/remediate/contractPipeline/derive.d.ts +42 -0
  36. package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
  37. package/dist/remediate/contractPipeline/derive.js +108 -0
  38. package/dist/remediate/contractPipeline/derive.js.map +1 -1
  39. package/dist/remediate/index.d.ts.map +1 -1
  40. package/dist/remediate/index.js +9 -1
  41. package/dist/remediate/index.js.map +1 -1
  42. package/dist/remediate/intake.d.ts +10 -0
  43. package/dist/remediate/intake.d.ts.map +1 -1
  44. package/dist/remediate/intake.js +20 -1
  45. package/dist/remediate/intake.js.map +1 -1
  46. package/dist/remediate/phases/grounding.d.ts +7 -4
  47. package/dist/remediate/phases/grounding.d.ts.map +1 -1
  48. package/dist/remediate/phases/grounding.js +52 -8
  49. package/dist/remediate/phases/grounding.js.map +1 -1
  50. package/dist/remediate/steps/contractPipelinePrompts.d.ts +1 -0
  51. package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
  52. package/dist/remediate/steps/contractPipelinePrompts.js +2 -2
  53. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  54. package/dist/remediate/steps/dispatch/acceptNode.d.ts +25 -0
  55. package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
  56. package/dist/remediate/steps/dispatch/acceptNode.js +65 -7
  57. package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
  58. package/dist/remediate/steps/dispatch/common.d.ts +11 -0
  59. package/dist/remediate/steps/dispatch/common.d.ts.map +1 -1
  60. package/dist/remediate/steps/dispatch/common.js +16 -0
  61. package/dist/remediate/steps/dispatch/common.js.map +1 -1
  62. package/dist/remediate/steps/dispatch/implementPrompt.d.ts +13 -0
  63. package/dist/remediate/steps/dispatch/implementPrompt.d.ts.map +1 -1
  64. package/dist/remediate/steps/dispatch/implementPrompt.js +33 -7
  65. package/dist/remediate/steps/dispatch/implementPrompt.js.map +1 -1
  66. package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
  67. package/dist/remediate/steps/dispatch/marshal.js +77 -9
  68. package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
  69. package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -1
  70. package/dist/remediate/steps/dispatch/waveScheduling.js +3 -1
  71. package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -1
  72. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts +55 -16
  73. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts.map +1 -1
  74. package/dist/remediate/steps/dispatch/worktreeLifecycle.js +119 -16
  75. package/dist/remediate/steps/dispatch/worktreeLifecycle.js.map +1 -1
  76. package/dist/remediate/steps/dispatch.d.ts +2 -2
  77. package/dist/remediate/steps/dispatch.d.ts.map +1 -1
  78. package/dist/remediate/steps/dispatch.js +2 -2
  79. package/dist/remediate/steps/dispatch.js.map +1 -1
  80. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  81. package/dist/remediate/steps/nextStep.js +12 -1
  82. package/dist/remediate/steps/nextStep.js.map +1 -1
  83. package/dist/remediate/validation/artifacts.d.ts.map +1 -1
  84. package/dist/remediate/validation/artifacts.js +38 -1
  85. package/dist/remediate/validation/artifacts.js.map +1 -1
  86. package/dist/remediate/validation/contractPipeline.d.ts +1 -1
  87. package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
  88. package/dist/remediate/validation/contractPipeline.js +1 -1
  89. package/dist/remediate/validation/contractPipeline.js.map +1 -1
  90. package/dist/remediate/validation/contractPipelineGates.d.ts +15 -0
  91. package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
  92. package/dist/remediate/validation/contractPipelineGates.js +168 -2
  93. package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
  94. package/dist/shared/dispatch/admissionLoop.d.ts +12 -12
  95. package/dist/shared/dispatch/costRank.d.ts +17 -1
  96. package/dist/shared/dispatch/costRank.d.ts.map +1 -1
  97. package/dist/shared/dispatch/costRank.js +8 -4
  98. package/dist/shared/dispatch/costRank.js.map +1 -1
  99. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  100. package/dist/shared/dispatch/rollingDispatch.js +16 -3
  101. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  102. package/dist/shared/friction/captureFrictionEvent.d.ts +13 -0
  103. package/dist/shared/friction/captureFrictionEvent.d.ts.map +1 -1
  104. package/dist/shared/friction/captureFrictionEvent.js.map +1 -1
  105. package/dist/shared/friction/frictionRecord.d.ts +55 -1
  106. package/dist/shared/friction/frictionRecord.d.ts.map +1 -1
  107. package/dist/shared/friction/frictionRecord.js +40 -0
  108. package/dist/shared/friction/frictionRecord.js.map +1 -1
  109. package/dist/shared/friction/stepBoundaryCapture.d.ts +14 -0
  110. package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
  111. package/dist/shared/friction/stepBoundaryCapture.js +47 -0
  112. package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
  113. package/dist/shared/friction/triage.d.ts +94 -14
  114. package/dist/shared/friction/triage.d.ts.map +1 -1
  115. package/dist/shared/friction/triage.js +0 -0
  116. package/dist/shared/friction/triage.js.map +1 -1
  117. package/dist/shared/index.d.ts +1 -1
  118. package/dist/shared/index.d.ts.map +1 -1
  119. package/dist/shared/index.js +1 -1
  120. package/dist/shared/index.js.map +1 -1
  121. package/dist/shared/providers/openAiCompatibleProvider.d.ts +8 -0
  122. package/dist/shared/providers/openAiCompatibleProvider.d.ts.map +1 -1
  123. package/dist/shared/providers/openAiCompatibleProvider.js +100 -28
  124. package/dist/shared/providers/openAiCompatibleProvider.js.map +1 -1
  125. package/dist/shared/quota/apiPool.d.ts.map +1 -1
  126. package/dist/shared/quota/apiPool.js +19 -0
  127. package/dist/shared/quota/apiPool.js.map +1 -1
  128. package/dist/shared/quota/capacity.d.ts +31 -4
  129. package/dist/shared/quota/capacity.d.ts.map +1 -1
  130. package/dist/shared/quota/capacity.js +8 -0
  131. package/dist/shared/quota/capacity.js.map +1 -1
  132. package/dist/shared/quota/modelStatics.d.ts +15 -7
  133. package/dist/shared/quota/modelStatics.d.ts.map +1 -1
  134. package/dist/shared/quota/modelStatics.js +60 -13
  135. package/dist/shared/quota/modelStatics.js.map +1 -1
  136. package/dist/shared/quota/quotaSource.d.ts +2 -2
  137. package/dist/shared/types/sessionConfig.d.ts +10 -0
  138. package/dist/shared/types/sessionConfig.d.ts.map +1 -1
  139. package/dist/shared/types/sessionConfig.js.map +1 -1
  140. package/dist/shared/validation/designFindingGrounding.d.ts.map +1 -1
  141. package/dist/shared/validation/designFindingGrounding.js +9 -3
  142. package/dist/shared/validation/designFindingGrounding.js.map +1 -1
  143. package/dist/shared/validation/findingGrounding.d.ts +40 -0
  144. package/dist/shared/validation/findingGrounding.d.ts.map +1 -1
  145. package/dist/shared/validation/findingGrounding.js +83 -0
  146. package/dist/shared/validation/findingGrounding.js.map +1 -1
  147. package/opencode.json +34 -22
  148. package/package.json +2 -2
@@ -13,6 +13,9 @@
13
13
  // with `npm run update-models` (scripts/shared/update-models.mjs).
14
14
  import { readFileSync } from "node:fs";
15
15
  import { fileURLToPath } from "node:url";
16
+ // Reserved top-level key carrying the optional per-provider index. A model id can
17
+ // never collide with it: models.dev ids never begin with the double underscore.
18
+ const BY_PROVIDER_KEY = "__by_provider";
16
19
  // Path to the vendored snapshot, resolved relative to the compiled module. At
17
20
  // runtime this module lives at dist/shared/quota/modelStatics.js and the asset
18
21
  // is copied to dist/shared/data/ by the build (see scripts/shared/copy-data-assets.mjs).
@@ -26,7 +29,25 @@ function loadTable() {
26
29
  try {
27
30
  const raw = readFileSync(fileURLToPath(SNAPSHOT_URL), "utf-8");
28
31
  const parsed = JSON.parse(raw);
29
- cache = parsed && typeof parsed === "object" ? parsed : null;
32
+ if (!parsed || typeof parsed !== "object") {
33
+ cache = null;
34
+ }
35
+ else {
36
+ // Split the reserved `__by_provider` index off the flat default map. Every
37
+ // remaining top-level key is a model-id → statics default entry.
38
+ const byProviderRaw = parsed[BY_PROVIDER_KEY];
39
+ const byProvider = byProviderRaw && typeof byProviderRaw === "object"
40
+ ? byProviderRaw
41
+ : {};
42
+ const defaultTable = {};
43
+ for (const [key, value] of Object.entries(parsed)) {
44
+ if (key === BY_PROVIDER_KEY)
45
+ continue;
46
+ if (value && typeof value === "object")
47
+ defaultTable[key] = value;
48
+ }
49
+ cache = { default: defaultTable, byProvider };
50
+ }
30
51
  }
31
52
  catch {
32
53
  cache = null;
@@ -38,19 +59,13 @@ export function resetModelStaticsCache() {
38
59
  cache = undefined;
39
60
  }
40
61
  /**
41
- * Look up the vendored static metadata for a model id. Tries an exact match
42
- * first, then case-insensitive, then — for route-prefixed ids like
43
- * `<vendor>/<id>` or `<router>:<vendor>/<id>` — the segment after the last `/`
44
- * or `:` route separator. Model ids legitimately contain dots (e.g. a minor
45
- * version like `-4.1`), so dots are NEVER treated as a namespace separator.
46
- * Returns `undefined` for an unknown id or an unavailable dataset.
62
+ * Look up a model id in one statics table. Tries an exact match first, then
63
+ * case-insensitive, then — for route-prefixed ids like `<vendor>/<id>` or
64
+ * `<router>:<vendor>/<id>` — the segment after the last `/` or `:` route
65
+ * separator. Model ids legitimately contain dots (e.g. a minor version like
66
+ * `-4.1`), so dots are NEVER treated as a namespace separator.
47
67
  */
48
- export function resolveModelStatics(modelId) {
49
- if (!modelId || typeof modelId !== "string")
50
- return undefined;
51
- const table = loadTable();
52
- if (!table)
53
- return undefined;
68
+ function lookupInTable(table, modelId) {
54
69
  if (Object.prototype.hasOwnProperty.call(table, modelId))
55
70
  return table[modelId];
56
71
  const lower = modelId.toLowerCase();
@@ -67,4 +82,36 @@ export function resolveModelStatics(modelId) {
67
82
  }
68
83
  return undefined;
69
84
  }
85
+ /**
86
+ * Look up the vendored static metadata for a model id, optionally scoped to a
87
+ * provider.
88
+ *
89
+ * With no `provider`, resolves the DEFAULT entry — on a cross-provider model-id
90
+ * collision that is the cheapest/native price, not the arbitrary first-sorted
91
+ * provider — so an operator who doesn't name a backend never over-prices a model.
92
+ *
93
+ * With a `provider`, prefers that provider's own statics from the per-provider
94
+ * index; falls back to the default entry when the snapshot has no provider-scoped
95
+ * record (single-provider snapshot, or a model only one provider carries), so
96
+ * provider scoping never resolves to *less* than the model-only lookup.
97
+ *
98
+ * `model_id` stays opaque — no vendor/window is inferred from its text. Returns
99
+ * `undefined` for an unknown id or an unavailable dataset.
100
+ */
101
+ export function resolveModelStatics(modelId, provider) {
102
+ if (!modelId || typeof modelId !== "string")
103
+ return undefined;
104
+ const snapshot = loadTable();
105
+ if (!snapshot)
106
+ return undefined;
107
+ if (provider && typeof provider === "string") {
108
+ const providerTable = snapshot.byProvider[provider];
109
+ if (providerTable) {
110
+ const hit = lookupInTable(providerTable, modelId);
111
+ if (hit !== undefined)
112
+ return hit;
113
+ }
114
+ }
115
+ return lookupInTable(snapshot.default, modelId);
116
+ }
70
117
  //# sourceMappingURL=modelStatics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modelStatics.js","sourceRoot":"","sources":["../../../src/shared/quota/modelStatics.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,qEAAqE;AACrE,iCAAiC;AACjC,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,mEAAmE;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiBzC,8EAA8E;AAC9E,+EAA+E;AAC/E,yFAAyF;AACzF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtF,+EAA+E;AAC/E,gFAAgF;AAChF,IAAI,KAAsC,CAAC;AAE3C,SAAS,SAAS;IAChB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,KAAK,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAuB,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,sBAAsB;IACpC,KAAK,GAAG,SAAS,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAkC;IACpE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IAEhF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"modelStatics.js","sourceRoot":"","sources":["../../../src/shared/quota/modelStatics.ts"],"names":[],"mappings":"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"}
@@ -56,11 +56,11 @@ export declare const QuotaUsageSnapshotSchema: z.ZodObject<{
56
56
  }>, "many">>;
57
57
  }, "strict", z.ZodTypeAny, {
58
58
  source: string;
59
+ captured_at: string;
59
60
  remaining_pct: number | null;
60
61
  reset_at: string | null;
61
62
  tokens_remaining: number | null;
62
63
  requests_remaining: number | null;
63
- captured_at: string;
64
64
  windows?: {
65
65
  label: string;
66
66
  remaining_pct: number | null;
@@ -69,11 +69,11 @@ export declare const QuotaUsageSnapshotSchema: z.ZodObject<{
69
69
  }[] | undefined;
70
70
  }, {
71
71
  source: string;
72
+ captured_at: string;
72
73
  remaining_pct: number | null;
73
74
  reset_at: string | null;
74
75
  tokens_remaining: number | null;
75
76
  requests_remaining: number | null;
76
- captured_at: string;
77
77
  windows?: {
78
78
  label: string;
79
79
  remaining_pct: number | null;
@@ -229,6 +229,16 @@ export interface QuotaModelLimits {
229
229
  requests_per_minute?: number;
230
230
  input_tokens_per_minute?: number;
231
231
  output_tokens_per_minute?: number;
232
+ /**
233
+ * Hard cap on simultaneously in-flight requests to this source's endpoint — the
234
+ * endpoint-declared max-concurrency (e.g. a NIM worker's `N/M` local request
235
+ * limit). Enforced by COUNT of in-flight requests, independent of the token
236
+ * budget: an optimistic (unmetered) source with no token snapshot would
237
+ * otherwise dispatch every ready packet at once and overrun the endpoint. Flows
238
+ * to `CapacityPool.concurrencyCap` → the rolling engine's per-pool in-flight
239
+ * ceiling and the host-path `AdmissionPool.declaredCap`. Omit for no cap.
240
+ */
241
+ max_concurrent?: number;
232
242
  }
233
243
  export interface QuotaConfig {
234
244
  enabled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionConfig.js","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM;IACN,kBAAkB;IAClB,qBAAqB;IACrB,aAAa;IACb,OAAO;IACP,UAAU;IACV,mBAAmB;IACnB,aAAa;IACb,aAAa;CACL,CAAC;AAIX;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAA6D;IAE7D,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,aAAa,CAAC;IACxE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAK7C;IACC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,2BAA2B,CAAC;IAC/D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;AAoHjE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,qBAAqB,EAAE,qBAAqB;IAC5C,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,mBAAmB;IACxC,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,mBAAmB;IACnB,OAAO;IACP,UAAU;IACV,kBAAkB;IAClB,qBAAqB;CACb,CAAC;AAuLX;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,WAAW;IACX,WAAW;IACX,MAAM;IACN,MAAM;CACE,CAAC;AACX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"sessionConfig.js","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM;IACN,kBAAkB;IAClB,qBAAqB;IACrB,aAAa;IACb,OAAO;IACP,UAAU;IACV,mBAAmB;IACnB,aAAa;IACb,aAAa;CACL,CAAC;AAIX;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAA6D;IAE7D,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,aAAa,CAAC;IACxE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAK7C;IACC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,2BAA2B,CAAC;IAC/D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;AAoHjE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,qBAAqB,EAAE,qBAAqB;IAC5C,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,mBAAmB;IACxC,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,mBAAmB;IACnB,OAAO;IACP,UAAU;IACV,kBAAkB;IAClB,qBAAqB;CACb,CAAC;AAiMX;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,WAAW;IACX,WAAW;IACX,MAAM;IACN,MAAM;CACE,CAAC;AACX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"designFindingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIrE;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,gBAAgB,CAkBlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,GAC5D,OAAO,EAAE,CAQX"}
1
+ {"version":3,"file":"designFindingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQrE;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,gBAAgB,CA0BlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,GAC5D,OAAO,EAAE,CAQX"}
@@ -1,5 +1,6 @@
1
- // Repo-relative path normalizer is single-sourced in shared (drift-plan P7).
2
- import { normalizeRepoPath } from "./findingGrounding.js";
1
+ // Repo-relative path normalizer + bare-basename resolver are single-sourced in
2
+ // shared (drift-plan P7 / INV-B3-2).
3
+ import { normalizeRepoPath, resolveBasenameToTrackedPath, } from "./findingGrounding.js";
3
4
  /**
4
5
  * Ground a single design finding against the set of real repository paths. The
5
6
  * verdict is the tool's check, never the model's word: a finding survives as
@@ -15,7 +16,12 @@ export function groundDesignFinding(finding, knownPaths) {
15
16
  reason: "cites no component (affected_files is empty)",
16
17
  };
17
18
  }
18
- const real = cited.filter((p) => knownPaths.has(p));
19
+ // A cited path grounds by exact membership (full repo-relative or dotfile-dir
20
+ // path — INV-B3-1) OR, for a bare basename, by uniquely resolving to one
21
+ // tracked full path (INV-B3-2). An ambiguous (>1-match) basename does not
22
+ // ground — the resolver returns undefined there.
23
+ const real = cited.filter((p) => knownPaths.has(p) ||
24
+ resolveBasenameToTrackedPath(p, knownPaths) !== undefined);
19
25
  if (real.length === 0) {
20
26
  return {
21
27
  status: "ungrounded",
@@ -1 +1 @@
1
- {"version":3,"file":"designFindingGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"AAmBA,6EAA6E;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,UAA+B;IAE/B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,8CAA8C;SACvD,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,mDAAmD,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC1F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAmB,EACnB,YAA6D;IAE7D,MAAM,KAAK,GAAG,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,OAAO;QACV,SAAS,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;KAC/C,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"designFindingGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"AAmBA,+EAA+E;AAC/E,qCAAqC;AACrC,OAAO,EACL,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,UAA+B;IAE/B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,8CAA8C;SACvD,CAAC;IACJ,CAAC;IACD,8EAA8E;IAC9E,yEAAyE;IACzE,0EAA0E;IAC1E,iDAAiD;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CACvB,CAAC,CAAC,EAAE,EAAE,CACJ,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACjB,4BAA4B,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,SAAS,CAC5D,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,mDAAmD,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC1F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAmB,EACnB,YAA6D;IAE7D,MAAM,KAAK,GAAG,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,OAAO;QACV,SAAS,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;KAC/C,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -9,8 +9,48 @@ export declare function normalizeForMatch(text: string): string;
9
9
  * grounding and any other consumer that matches a cited `affected_files` path
10
10
  * against a repo manifest. (Quote-and-verify resolves a cited path against the
11
11
  * filesystem instead, so it does not lowercase — see `verifyFindingGrounding`.)
12
+ *
13
+ * INV-B3-1: strips a leading `./` ONLY — it must NEVER strip the leading dot of a
14
+ * dotfile-directory segment (`.claude/…`, `.github/…`). The regex is anchored to
15
+ * `./` (dot-SLASH); do not broaden it to `/^\.\/?/` or similar, or every
16
+ * dotfile-dir citation silently un-grounds (it would no longer match its
17
+ * `git ls-files` form by exact membership).
12
18
  */
13
19
  export declare function normalizeRepoPath(p: string): string;
20
+ /**
21
+ * True when `p` is a bare basename — a single path segment with no separator
22
+ * (`advance.ts`), as opposed to a nested repo-relative path (`src/x/advance.ts`)
23
+ * or a dotfile-dir path (`.claude/hooks/x.mjs`). A bare basename is the one shape
24
+ * that cannot be resolved by a naive `root/<name>` join when the real file is
25
+ * nested, so it is the shape {@link resolveBasenameToTrackedPath} rescues.
26
+ */
27
+ export declare function isBareBasename(p: string): boolean;
28
+ /**
29
+ * INV-B3-2: resolve a bare basename (`advance.ts`) to its UNIQUE tracked full
30
+ * path in the known-path corpus (`src/audit/orchestrator/advance.ts`). Returns
31
+ * the single matching corpus entry when exactly one tracked path has that
32
+ * basename; `undefined` when zero OR more-than-one path matches — an ambiguous
33
+ * basename stays a checkable signal, never a silent false-pass.
34
+ *
35
+ * Corpus-agnostic and case-insensitive on the basename: it works whether the
36
+ * caller's corpus is `normalizeRepoPath`-lowercased (the M-B3 gate) or
37
+ * case-preserving (the fs-resolving remediate consumers), and returns the corpus
38
+ * entry as-is so a case-preserving caller gets a real on-disk path back. Single
39
+ * source (drift-plan convention) — the gate, both orchestrators, and
40
+ * `groundDesignFinding` all resolve basenames through this one authority.
41
+ */
42
+ export declare function resolveBasenameToTrackedPath(basename: string, knownPaths: ReadonlySet<string>): string | undefined;
43
+ /**
44
+ * Case-preserving corpus of the tracked working-tree paths at `root`, via
45
+ * `git ls-files` (forward-slashed, trimmed). This is the sibling of the M-B3
46
+ * gate's `enumerateRepoTreePaths` (which `normalizeRepoPath`-lowercases for
47
+ * membership matching): the remediate consumers that resolve a basename and then
48
+ * read the file off disk (line counting) need the REAL on-disk case, so this one
49
+ * does not lowercase. Degrades to an empty set when git is missing / not a repo
50
+ * (callers then fall back to their existing `existsSync` check — monotonic, never
51
+ * a regression). OS-agnostic: `shell: false`, forward-slash output.
52
+ */
53
+ export declare function enumerateTrackedFilePaths(root: string): Set<string>;
14
54
  /**
15
55
  * True when the (normalized) quoted span appears anywhere in the (normalized)
16
56
  * file content. An empty quote never matches (an empty quote grounds nothing).
@@ -1 +1 @@
1
- {"version":3,"file":"findingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/findingGrounding.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErE,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAI7E;AAED,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAKrE;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,GAAE,YAAkC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CA+B3B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,OAAO,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAClC,OAAO,CAET"}
1
+ {"version":3,"file":"findingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/findingGrounding.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErE,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,MAAM,GAAG,SAAS,CAapB;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAsBnE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAI7E;AAED,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAKrE;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,GAAE,YAAkC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CA+B3B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,OAAO,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAClC,OAAO,CAET"}
@@ -19,6 +19,7 @@
19
19
  * E3 + P7).
20
20
  */
21
21
  import { readFile } from "node:fs/promises";
22
+ import { spawnSync } from "node:child_process";
22
23
  import { isAbsolute, join } from "node:path";
23
24
  /** Normalize text for content-matching: drop CR, collapse whitespace, trim. */
24
25
  export function normalizeForMatch(text) {
@@ -32,10 +33,92 @@ export function normalizeForMatch(text) {
32
33
  * grounding and any other consumer that matches a cited `affected_files` path
33
34
  * against a repo manifest. (Quote-and-verify resolves a cited path against the
34
35
  * filesystem instead, so it does not lowercase — see `verifyFindingGrounding`.)
36
+ *
37
+ * INV-B3-1: strips a leading `./` ONLY — it must NEVER strip the leading dot of a
38
+ * dotfile-directory segment (`.claude/…`, `.github/…`). The regex is anchored to
39
+ * `./` (dot-SLASH); do not broaden it to `/^\.\/?/` or similar, or every
40
+ * dotfile-dir citation silently un-grounds (it would no longer match its
41
+ * `git ls-files` form by exact membership).
35
42
  */
36
43
  export function normalizeRepoPath(p) {
37
44
  return p.trim().replace(/\\/g, "/").replace(/^\.\//, "").toLowerCase();
38
45
  }
46
+ /**
47
+ * True when `p` is a bare basename — a single path segment with no separator
48
+ * (`advance.ts`), as opposed to a nested repo-relative path (`src/x/advance.ts`)
49
+ * or a dotfile-dir path (`.claude/hooks/x.mjs`). A bare basename is the one shape
50
+ * that cannot be resolved by a naive `root/<name>` join when the real file is
51
+ * nested, so it is the shape {@link resolveBasenameToTrackedPath} rescues.
52
+ */
53
+ export function isBareBasename(p) {
54
+ const t = p.trim();
55
+ return t.length > 0 && !t.includes("/") && !t.includes("\\");
56
+ }
57
+ /**
58
+ * INV-B3-2: resolve a bare basename (`advance.ts`) to its UNIQUE tracked full
59
+ * path in the known-path corpus (`src/audit/orchestrator/advance.ts`). Returns
60
+ * the single matching corpus entry when exactly one tracked path has that
61
+ * basename; `undefined` when zero OR more-than-one path matches — an ambiguous
62
+ * basename stays a checkable signal, never a silent false-pass.
63
+ *
64
+ * Corpus-agnostic and case-insensitive on the basename: it works whether the
65
+ * caller's corpus is `normalizeRepoPath`-lowercased (the M-B3 gate) or
66
+ * case-preserving (the fs-resolving remediate consumers), and returns the corpus
67
+ * entry as-is so a case-preserving caller gets a real on-disk path back. Single
68
+ * source (drift-plan convention) — the gate, both orchestrators, and
69
+ * `groundDesignFinding` all resolve basenames through this one authority.
70
+ */
71
+ export function resolveBasenameToTrackedPath(basename, knownPaths) {
72
+ const target = basename.trim().replace(/\\/g, "/");
73
+ if (target.length === 0 || target.includes("/"))
74
+ return undefined;
75
+ const targetLower = target.toLowerCase();
76
+ let match;
77
+ for (const path of knownPaths) {
78
+ const base = path.slice(path.lastIndexOf("/") + 1);
79
+ if (base.toLowerCase() === targetLower) {
80
+ if (match !== undefined)
81
+ return undefined; // >1 match → ambiguous
82
+ match = path;
83
+ }
84
+ }
85
+ return match;
86
+ }
87
+ /**
88
+ * Case-preserving corpus of the tracked working-tree paths at `root`, via
89
+ * `git ls-files` (forward-slashed, trimmed). This is the sibling of the M-B3
90
+ * gate's `enumerateRepoTreePaths` (which `normalizeRepoPath`-lowercases for
91
+ * membership matching): the remediate consumers that resolve a basename and then
92
+ * read the file off disk (line counting) need the REAL on-disk case, so this one
93
+ * does not lowercase. Degrades to an empty set when git is missing / not a repo
94
+ * (callers then fall back to their existing `existsSync` check — monotonic, never
95
+ * a regression). OS-agnostic: `shell: false`, forward-slash output.
96
+ */
97
+ export function enumerateTrackedFilePaths(root) {
98
+ const known = new Set();
99
+ let result;
100
+ try {
101
+ result = spawnSync("git", ["ls-files"], {
102
+ cwd: root,
103
+ encoding: "utf8",
104
+ shell: false,
105
+ windowsHide: true,
106
+ maxBuffer: 64 * 1024 * 1024,
107
+ });
108
+ }
109
+ catch {
110
+ return known;
111
+ }
112
+ if (!result || result.status !== 0 || typeof result.stdout !== "string") {
113
+ return known;
114
+ }
115
+ for (const line of result.stdout.split("\n")) {
116
+ const path = line.trim().replace(/\\/g, "/");
117
+ if (path.length > 0)
118
+ known.add(path);
119
+ }
120
+ return known;
121
+ }
39
122
  /**
40
123
  * True when the (normalized) quoted span appears anywhere in the (normalized)
41
124
  * file content. An empty quote never matches (an empty quote grounds nothing).
@@ -1 +1 @@
1
- {"version":3,"file":"findingGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/findingGrounding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findingGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/findingGrounding.ts"],"names":[],"mappings":"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"}
package/opencode.json CHANGED
@@ -1,13 +1,6 @@
1
1
  {
2
2
  "$schema": "https://opencode.ai/config.json",
3
- "command": {
4
- "remediate-code": {
5
- "template": "Run `remediate-code ensure --quiet`, then `remediate-code next-step`, read only the returned prompt_path, and follow that prompt.",
6
- "description": "Conversation-first code remediation",
7
- "agent": "remediator",
8
- "subtask": false
9
- }
10
- },
3
+ "command": {},
11
4
  "mcp": {},
12
5
  "permission": {
13
6
  "read": "allow",
@@ -18,8 +11,9 @@
18
11
  },
19
12
  "edit": {
20
13
  "*": "ask",
21
- ".audit-code/**": "allow",
14
+ ".remediate-code/**": "allow",
22
15
  ".audit-tools/**": "allow",
16
+ ".audit-code/**": "allow",
23
17
  ".audit-artifacts/**": "allow",
24
18
  "audit-report.md": "allow"
25
19
  },
@@ -42,12 +36,14 @@
42
36
  "*dist*index.js* requeue*": "deny",
43
37
  "*dist*index.js* synthesize*": "deny",
44
38
  "*remediate-code.mjs": "allow",
39
+ "*remediate-code.mjs* accept-node*": "allow",
45
40
  "*remediate-code.mjs* ensure*": "allow",
46
41
  "*remediate-code.mjs* merge-document-results*": "allow",
47
42
  "*remediate-code.mjs* merge-implement-results*": "allow",
48
43
  "*remediate-code.mjs* next-step*": "allow",
49
44
  "*remediate-code.mjs* prepare-document-dispatch*": "allow",
50
45
  "*remediate-code.mjs* prepare-implement-dispatch*": "allow",
46
+ "*remediate-code.mjs* validate*": "allow",
51
47
  "*remediate-code.mjs* validate-artifacts*": "allow",
52
48
  "Select-String *": "allow",
53
49
  "audit-code": "allow",
@@ -65,12 +61,14 @@
65
61
  "git status*": "allow",
66
62
  "grep *": "allow",
67
63
  "remediate-code": "allow",
64
+ "remediate-code accept-node*": "allow",
68
65
  "remediate-code ensure*": "allow",
69
66
  "remediate-code merge-document-results*": "allow",
70
67
  "remediate-code merge-implement-results*": "allow",
71
68
  "remediate-code next-step*": "allow",
72
69
  "remediate-code prepare-document-dispatch*": "allow",
73
70
  "remediate-code prepare-implement-dispatch*": "allow",
71
+ "remediate-code validate*": "allow",
74
72
  "remediate-code validate-artifacts*": "allow",
75
73
  "rm *": "deny"
76
74
  }
@@ -133,10 +131,18 @@
133
131
  }
134
132
  },
135
133
  "remediator": {
136
- "description": "Bounded remediation orchestration agent for the /remediate-code workflow.",
134
+ "description": "Remediation orchestration agent for the /remediate-code workflow.",
137
135
  "permission": {
136
+ "read": "allow",
137
+ "glob": "allow",
138
+ "grep": "allow",
139
+ "external_directory": {
140
+ "*": "allow"
141
+ },
138
142
  "edit": {
139
143
  "*": "ask",
144
+ ".remediate-code/**": "allow",
145
+ ".audit-tools/**": "allow",
140
146
  ".remediation-artifacts/**": "allow",
141
147
  "remediation-report.md": "allow",
142
148
  "remediation-report.json": "allow",
@@ -146,27 +152,33 @@
146
152
  "*": "ask",
147
153
  "remediate-code": "allow",
148
154
  "remediate-code ensure*": "allow",
149
- "remediate-code next-step*": "allow",
150
- "remediate-code prepare-document-dispatch*": "allow",
151
- "remediate-code merge-document-results*": "allow",
152
- "remediate-code prepare-implement-dispatch*": "allow",
153
- "remediate-code merge-implement-results*": "allow",
154
- "remediate-code validate-artifacts*": "allow",
155
- "*remediate-code.mjs": "allow",
156
155
  "*remediate-code.mjs* ensure*": "allow",
156
+ "remediate-code next-step*": "allow",
157
157
  "*remediate-code.mjs* next-step*": "allow",
158
- "*remediate-code.mjs* prepare-document-dispatch*": "allow",
159
- "*remediate-code.mjs* merge-document-results*": "allow",
158
+ "remediate-code prepare-implement-dispatch*": "allow",
160
159
  "*remediate-code.mjs* prepare-implement-dispatch*": "allow",
160
+ "remediate-code merge-implement-results*": "allow",
161
161
  "*remediate-code.mjs* merge-implement-results*": "allow",
162
- "*remediate-code.mjs* validate-artifacts*": "allow",
162
+ "remediate-code accept-node*": "allow",
163
+ "*remediate-code.mjs* accept-node*": "allow",
164
+ "remediate-code validate*": "allow",
165
+ "*remediate-code.mjs* validate*": "allow",
166
+ "*remediate-code.mjs": "allow",
163
167
  "git status*": "allow",
164
168
  "git diff*": "allow",
165
169
  "grep *": "allow",
166
170
  "Select-String *": "allow",
167
- "rm *": "deny"
171
+ "rm *": "deny",
172
+ "remediate-code prepare-document-dispatch*": "allow",
173
+ "remediate-code merge-document-results*": "allow",
174
+ "remediate-code validate-artifacts*": "allow",
175
+ "*remediate-code.mjs* prepare-document-dispatch*": "allow",
176
+ "*remediate-code.mjs* merge-document-results*": "allow",
177
+ "*remediate-code.mjs* validate-artifacts*": "allow"
168
178
  },
169
- "question": "allow"
179
+ "remediator_*": "allow",
180
+ "question": "allow",
181
+ "task": "allow"
170
182
  }
171
183
  }
172
184
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "audit-tools",
3
- "version": "0.32.23",
3
+ "version": "0.32.28",
4
4
  "private": false,
5
5
  "license": "ISC",
6
6
  "description": "Portable hybrid code auditing + remediation orchestrators for arbitrary repositories.",
@@ -42,7 +42,7 @@
42
42
  "test:doc-contract": "vitest run tests/audit/release-contract.test.mjs tests/audit/priority-chain-doc-sync.test.mjs tests/audit/file-lock-doc-sync.test.mjs tests/audit/host-asset-renderer-drift.test.mjs",
43
43
  "test": "npm run build && vitest run",
44
44
  "test:single": "npm run build && vitest run",
45
- "verify:checks": "npm run check && npm run check:deadcode && npm run check:doc-manifest && npm run build && npm run verify:hosts && npm run verify:remediate-hosts && npm run smoke:packaged-audit-code && npm run smoke:packaged-remediate-code",
45
+ "verify:checks": "node scripts/shared/profile-run.mjs verify-checks check:deadcode check:doc-manifest build verify:hosts verify:remediate-hosts smoke:packaged-audit-code smoke:packaged-remediate-code",
46
46
  "verify:release": "npm run verify:checks && vitest run",
47
47
  "check:deadcode": "knip --no-config-hints",
48
48
  "check:doc-manifest": "node scripts/check-doc-manifest.mjs",