audit-tools 0.32.41 → 0.32.42
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.
- package/dist/audit/cli/dispatch/packetPrompt.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/packetPrompt.js +13 -1
- package/dist/audit/cli/dispatch/packetPrompt.js.map +1 -1
- package/dist/audit/extractors/graphPathUtils.d.ts +2 -1
- package/dist/audit/extractors/graphPathUtils.d.ts.map +1 -1
- package/dist/audit/extractors/graphPathUtils.js +5 -5
- package/dist/audit/extractors/graphPathUtils.js.map +1 -1
- package/dist/audit/orchestrator/continuityScore.d.ts +1 -2
- package/dist/audit/orchestrator/continuityScore.d.ts.map +1 -1
- package/dist/audit/orchestrator/continuityScore.js +8 -130
- package/dist/audit/orchestrator/continuityScore.js.map +1 -1
- package/dist/audit/orchestrator/fileAnchors.d.ts +11 -0
- package/dist/audit/orchestrator/fileAnchors.d.ts.map +1 -1
- package/dist/audit/orchestrator/fileAnchors.js +42 -0
- package/dist/audit/orchestrator/fileAnchors.js.map +1 -1
- package/dist/audit/orchestrator/reviewPacketGraphEdges.d.ts +3 -3
- package/dist/audit/orchestrator/reviewPacketGraphEdges.d.ts.map +1 -1
- package/dist/audit/orchestrator/reviewPacketGraphEdges.js +5 -38
- package/dist/audit/orchestrator/reviewPacketGraphEdges.js.map +1 -1
- package/dist/audit/orchestrator/reviewPackets.d.ts.map +1 -1
- package/dist/audit/orchestrator/reviewPackets.js +6 -7
- package/dist/audit/orchestrator/reviewPackets.js.map +1 -1
- package/dist/audit/types/externalAnalyzer.d.ts +10 -10
- package/dist/remediate/state/accessMemory.d.ts +26 -0
- package/dist/remediate/state/accessMemory.d.ts.map +1 -1
- package/dist/remediate/state/accessMemory.js +52 -1
- package/dist/remediate/state/accessMemory.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts +9 -0
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +19 -7
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/shared/continuityScore.d.ts +13 -0
- package/dist/shared/continuityScore.d.ts.map +1 -0
- package/dist/shared/continuityScore.js +156 -0
- package/dist/shared/continuityScore.js.map +1 -0
- package/dist/shared/dispatch/ownershipScheduler.d.ts +21 -0
- package/dist/shared/dispatch/ownershipScheduler.d.ts.map +1 -1
- package/dist/shared/dispatch/ownershipScheduler.js +10 -1
- package/dist/shared/dispatch/ownershipScheduler.js.map +1 -1
- package/dist/shared/graph/graphPaths.d.ts +21 -0
- package/dist/shared/graph/graphPaths.d.ts.map +1 -0
- package/dist/shared/graph/graphPaths.js +61 -0
- package/dist/shared/graph/graphPaths.js.map +1 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +2 -0
- package/dist/shared/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packetPrompt.d.ts","sourceRoot":"","sources":["../../../../src/audit/cli/dispatch/packetPrompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"packetPrompt.d.ts","sourceRoot":"","sources":["../../../../src/audit/cli/dispatch/packetPrompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AAuGnD;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAE,CAAC,CAgClF;AA2DD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,SAAS,EAAE,EACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,EACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,mBAAmB,CAAC,EAAE,yBAAyB,EAC/C,cAAc,CAAC,EAAE,cAAc,GAC9B,MAAM,EAAE,CAsDV;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAkGT;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,iBAAiB,GAAG,IAAI,EACvC,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,MAAM,EAAE,CAcV"}
|
|
@@ -10,7 +10,15 @@ import { isIsolatedLargeFilePacket } from "./packetFilter.js";
|
|
|
10
10
|
// rendering, task section building, and full packet prompt assembly.
|
|
11
11
|
function renderAnchorPreview(summary, anchorPath) {
|
|
12
12
|
const preview = summary.anchors.slice(0, 24).map((anchor) => {
|
|
13
|
-
|
|
13
|
+
// A symbol anchor carries an approximate body span (increment 2d) → render
|
|
14
|
+
// it as a targeted read range `path:START-END` so the worker reads just the
|
|
15
|
+
// symbol slice instead of the whole god-file. Anchors without a span (or
|
|
16
|
+
// without a line) fall back to the single-line / path-only form.
|
|
17
|
+
const location = anchor.line && anchor.end_line && anchor.end_line > anchor.line
|
|
18
|
+
? `${summary.path}:${anchor.line}-${anchor.end_line}`
|
|
19
|
+
: anchor.line
|
|
20
|
+
? `${summary.path}:${anchor.line}`
|
|
21
|
+
: summary.path;
|
|
14
22
|
const detail = anchor.detail ? ` - ${anchor.detail}` : "";
|
|
15
23
|
return `- ${location} [${anchor.kind}] ${anchor.name}${detail}`;
|
|
16
24
|
});
|
|
@@ -18,6 +26,10 @@ function renderAnchorPreview(summary, anchorPath) {
|
|
|
18
26
|
"## Large File Review Mode",
|
|
19
27
|
"This packet is intentionally isolated because it covers one large file.",
|
|
20
28
|
"Use targeted reads/searches within this file, guided by the mechanical anchors.",
|
|
29
|
+
"Symbol anchors carry an approximate line span (path:START-END): read that slice for the",
|
|
30
|
+
"symbol relevant to your lens rather than the whole file, and expand the range only when",
|
|
31
|
+
"evidence for a finding crosses the span. The spans are a mechanical starting point, not a",
|
|
32
|
+
"hard boundary — never miss a real defect to stay inside a slice.",
|
|
21
33
|
"Do not read unrelated files unless a finding cannot be evidenced without a direct boundary check.",
|
|
22
34
|
`Anchor file: ${anchorPath}`,
|
|
23
35
|
`Anchor counts: symbols=${summary.counts.symbols}, routes=${summary.counts.routes}, keywords=${summary.counts.keywords}, graph_edges=${summary.counts.graph_edges}, analyzer_signals=${summary.counts.analyzer_signals}, omitted=${summary.omitted_anchor_count}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packetPrompt.js","sourceRoot":"","sources":["../../../../src/audit/cli/dispatch/packetPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GAGvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,gBAAgB,GAEjB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,uEAAuE;AACvE,qEAAqE;AAErE,SAAS,mBAAmB,CAC1B,OAA0B,EAC1B,UAAkB;IAElB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC1D,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"packetPrompt.js","sourceRoot":"","sources":["../../../../src/audit/cli/dispatch/packetPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GAGvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,gBAAgB,GAEjB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,uEAAuE;AACvE,qEAAqE;AAErE,SAAS,mBAAmB,CAC1B,OAA0B,EAC1B,UAAkB;IAElB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC1D,2EAA2E;QAC3E,4EAA4E;QAC5E,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,QAAQ,GACZ,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI;YAC7D,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;YACrD,CAAC,CAAC,MAAM,CAAC,IAAI;gBACX,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;gBAClC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,QAAQ,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,OAAO;QACL,2BAA2B;QAC3B,yEAAyE;QACzE,iFAAiF;QACjF,yFAAyF;QACzF,yFAAyF;QACzF,2FAA2F;QAC3F,kEAAkE;QAClE,mGAAmG;QACnG,gBAAgB,UAAU,EAAE;QAC5B,0BAA0B,OAAO,CAAC,MAAM,CAAC,OAAO,YAAY,OAAO,CAAC,MAAM,CAAC,MAAM,cAAc,OAAO,CAAC,MAAM,CAAC,QAAQ,iBAAiB,OAAO,CAAC,MAAM,CAAC,WAAW,sBAAsB,OAAO,CAAC,MAAM,CAAC,gBAAgB,aAAa,OAAO,CAAC,oBAAoB,EAAE;QACjQ,iBAAiB;QACjB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC;QACrF,EAAE;KACH,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC;AAED,SAAS,wBAAwB,CAAC,MAgBjC;IACC,MAAM,UAAU,GACd,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QACrC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QACnC,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QACxC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC;IAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,GAAG,IAAI,eAAe,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,EAAE,CAAC;QAC9G,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,qBAAqB,MAAM,CAAC,OAAO,CAAC,cAAc,oBAAoB,MAAM,CAAC,OAAO,CAAC,mBAAmB,oBAAoB,MAAM,CAAC,OAAO,CAAC,mBAAmB,uBAAuB,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAC7N,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAMzC;IACC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACxE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,+BAA+B;YACrC,OAAO,EAAE,4BAA4B,MAAM,CAAC,SAAS,mDAAmD;SACzG,CAAC,CAAC;QACH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,sBAAsB,CAAC;YAC3C,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,UAAU;YACV,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,uBAAuB,EAAE,MAAM,CAAC,yBAAyB;SAC1D,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QAC7F,MAAM,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,0BAA0B;YAChC,OAAO,EACL,4BAA4B,MAAM,CAAC,SAAS,uCAAuC;gBACnF,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3D,CAAC,CAAC;QACH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH;;;;;GAKG;AACH,SAAS,UAAU,CAAC,UAAkB;IACpC,OAAO,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC,SAAS,yBAAyB,CAChC,IAAe,EACf,mBAA0D,EAC1D,cAA+B;IAE/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,0BAA0B,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/C,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAC5F,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9C,OAAO;QACL,oIAAoI;QACpI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;YAChC,0EAA0E;YAC1E,wEAAwE;YACxE,6DAA6D;YAC7D,MAAM,GAAG,GACP,cAAc,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;gBACvC,CAAC,CAAC,uBAAuB,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG;gBAClE,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,KAAK,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;QACpH,CAAC,CAAC;QACF,GAAG,CAAC,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CAAC,UAAU,OAAO,4DAA4D,CAAC;YACjF,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAAwB,EACxB,QAAwE,EACxE,SAAiC,EACjC,mBAA+C,EAC/C,cAA+B;IAE/B,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;YAC5B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;iBACxB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBACtC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,SAAS,GAAG,KAAK,KAAK,EAAE,CAAC;YACpD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC;QAC7E,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC;QACjF,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI;YACJ,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;SACnE,CAAC,CAAC,CAAC;QACJ,MAAM,mBAAmB,GAAG,yBAAyB,CACnD,IAAI,EACJ,mBAAmB,EACnB,cAAc,CACf,CAAC;QACF,OAAO;YACL,OAAO,IAAI,CAAC,OAAO,EAAE;YACrB,YAAY,IAAI,CAAC,OAAO,EAAE;YAC1B,YAAY,IAAI,CAAC,OAAO,EAAE;YAC1B,SAAS,IAAI,CAAC,IAAI,EAAE;YACpB,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,UAAU;YACb,cAAc,IAAI,CAAC,SAAS,EAAE;YAC9B,EAAE;YACF,kBAAkB,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE;YACrD,kBAAkB,OAAO,EAAE,aAAa,IAAI,KAAK,EAAE;YACnD,GAAG,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,kBAAkB;gBACpB,CAAC,CAAC;oBACE,EAAE;oBACF,+GAA+G;oBAC/G,0EAA0E;oBAC1E,sHAAsH;iBACvH;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,oBAAoB;gBACtB,CAAC,CAAC;oBACE,EAAE;oBACF,6DAA6D,IAAI,CAAC,OAAO,iDAAiD;oBAC1H,4CAA4C,IAAI,CAAC,IAAI,+CAA+C,IAAI,CAAC,IAAI,IAAI;iBAClH;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,EAAE;YACF,mEAAmE;YACnE,SAAS;YACT,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;YAChC,KAAK;YACL,EAAE;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAQjC;IACC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC1F,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxD,8EAA8E;IAC9E,uEAAuE;IACvE,+DAA+D;IAC/D,OAAO;QACL,yEAAyE;QACzE,8EAA8E;QAC9E,+EAA+E;QAC/E,2EAA2E;QAC3E,kEAAkE;QAClE,gGAAgG;QAChG,gGAAgG;QAChG,EAAE;QACF,WAAW;QACX,wFAAwF;QACxF,sGAAsG;QACtG,2FAA2F;QAC3F,6FAA6F;QAC7F,uCAAuC;QACvC,2FAA2F;QAC3F,2FAA2F;QAC3F,wFAAwF;QACxF,gGAAgG;QAChG,2GAA2G;QAC3G,EAAE;QACF,qFAAqF;QACrF,wHAAwH;QACxH,wFAAwF;QACxF,EAAE;QACF,8BAA8B;QAC9B,6CAA6C;QAC7C,6CAA6C;QAC7C,6CAA6C;QAC7C,6CAA6C;QAC7C,qMAAqM;QACrM,gDAAgD;QAChD,EAAE;QACF,0BAA0B;QAC1B,kFAAkF;QAClF,qEAAqE;QACrE,kEAAkE;QAClE,mCAAmC;QACnC,oGAAoG;QACpG,EAAE;QACF,sBAAsB;QACtB,6CAA6C;QAC7C,6BAA6B;QAC7B,4FAA4F;QAC5F,+CAA+C;QAC/C,iCAAiC;QACjC,kDAAkD;QAClD,0CAA0C;QAC1C,8GAA8G;QAC9G,2FAA2F;QAC3F,EAAE;QACF,gGAAgG;QAChG,gGAAgG;QAChG,6FAA6F;QAC7F,2FAA2F;QAC3F,kGAAkG;QAClG,gGAAgG;QAChG,0EAA0E;QAC1E,EAAE;QACF,cAAc;QACd,2DAA2D;QAC3D,2EAA2E;QAC3E,wFAAwF;QACxF,2DAA2D;QAC3D,6FAA6F;QAC7F,gGAAgG;QAChG,EAAE;QACF,gFAAgF;QAChF,QAAQ,CAAC,CAAC,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC,CAAC,uDAAuD;QACnG,EAAE;QACF,WAAW;QACX,cAAc,MAAM,CAAC,SAAS,EAAE;QAChC,eAAe,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QACvC,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrC,qBAAqB,MAAM,CAAC,gBAAgB,EAAE;QAC9C,gBAAgB,UAAU,EAAE;QAC5B,EAAE;QACF,kBAAkB;QAClB,aAAa;YACX,CAAC,CAAC,qFAAqF;YACvF,CAAC,CAAC,2EAA2E;QAC/E,uFAAuF;QACvF,QAAQ;QACR,EAAE;QACF,GAAG,wBAAwB,CAAC,MAAM,CAAC;QACnC,GAAG,gBAAgB;QACnB,UAAU;QACV,GAAG,YAAY;QACf,EAAE;QACF,mBAAmB;QACnB,mCAAmC,UAAU,2BAA2B,MAAM,CAAC,SAAS,kCAAkC;KAC3H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,aAAsB,EACtB,aAAuC,EACvC,UAAyB;IAEzB,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;QAChC,OAAO,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO;YACL,2BAA2B;YAC3B,yEAAyE;YACzE,oDAAoD;YACpD,uHAAuH;YACvH,EAAE;SACH,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GraphEdge } from "audit-tools/shared";
|
|
2
|
-
|
|
2
|
+
import { normalizeGraphPath } from "audit-tools/shared";
|
|
3
|
+
export { normalizeGraphPath };
|
|
3
4
|
export declare function graphLookupKey(path: string): string;
|
|
4
5
|
export declare function resolveCandidate(candidate: string, pathLookup: Map<string, string>): string | undefined;
|
|
5
6
|
export declare function graphEdge(params: GraphEdge): GraphEdge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphPathUtils.d.ts","sourceRoot":"","sources":["../../../src/audit/extractors/graphPathUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"graphPathUtils.d.ts","sourceRoot":"","sources":["../../../src/audit/extractors/graphPathUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAqC9B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,GAAG,SAAS,CAmCpB;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAKtD;AAOD,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,iKAoBpB,CAAC;AAEX,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,QAAmC,CAAC;AAEvE,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,GAAG,SAAS,CAMpB;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,GAAG,SAAS,CASpB;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKtD;AAED,2CAA2C;AAC3C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAQD,qCAAqC;AACrC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,8EAA8E;AAC9E,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMnE;AAED,6CAA6C;AAC7C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,iDAAiD;AACjD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,4CAA4C;AAC5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,0CAA0C;AAC1C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,0DAA0D;AAC1D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKjE"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { posix } from "node:path";
|
|
2
|
+
import { normalizeGraphPath } from "audit-tools/shared";
|
|
3
|
+
// `normalizeGraphPath` is single-sourced in `audit-tools/shared` (the shared
|
|
4
|
+
// continuity scorer needs it too). Re-exported here so all 28 audit import sites
|
|
5
|
+
// that read it from this module are unchanged.
|
|
6
|
+
export { normalizeGraphPath };
|
|
2
7
|
const RESOLVABLE_EXTENSIONS = [
|
|
3
8
|
"",
|
|
4
9
|
".ts",
|
|
@@ -31,11 +36,6 @@ const RUNTIME_SOURCE_EXTENSION_ALIASES = {
|
|
|
31
36
|
".mjs": [".mts"],
|
|
32
37
|
".cjs": [".cts"],
|
|
33
38
|
};
|
|
34
|
-
export function normalizeGraphPath(path) {
|
|
35
|
-
return posix
|
|
36
|
-
.normalize(path.replace(/\\/g, "/"))
|
|
37
|
-
.replace(/^\.\//, "");
|
|
38
|
-
}
|
|
39
39
|
export function graphLookupKey(path) {
|
|
40
40
|
return normalizeGraphPath(path).toLowerCase();
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphPathUtils.js","sourceRoot":"","sources":["../../../src/audit/extractors/graphPathUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"graphPathUtils.js","sourceRoot":"","sources":["../../../src/audit/extractors/graphPathUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function computeContinuityScores(accessMemory: AccessMemory | undefined, graphBundle: GraphBundle | undefined): Map<string, number>;
|
|
1
|
+
export { computeContinuityScores } from "audit-tools/shared";
|
|
3
2
|
//# sourceMappingURL=continuityScore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuityScore.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/continuityScore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"continuityScore.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/continuityScore.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,131 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* known god-file-re-read waste hotspot.
|
|
10
|
-
*
|
|
11
|
-
* The score is an *ideal composition* (per the design of record), NOT a cheap
|
|
12
|
-
* tier-ladder: a recency×frequency seed propagated over the language-neutral
|
|
13
|
-
* dependency graph via **deterministic personalized PageRank**. Recency/frequency
|
|
14
|
-
* are the seed; the graph is the propagation, so a touched file lifts its
|
|
15
|
-
* structural neighbours too (direct + structural continuity). The derived packet
|
|
16
|
-
* ORDERING is deterministic — power iteration runs to a FIXED count (no
|
|
17
|
-
* convergence-threshold nondeterminism), node/neighbour iteration is sorted
|
|
18
|
-
* (stable float accumulation order for a given runtime), and step-ordinal recency
|
|
19
|
-
* keeps wall-clock out of the signal. (The raw float scores are not claimed
|
|
20
|
-
* bit-portable across V8 versions, but they are never persisted or hashed — only
|
|
21
|
-
* the `access_memory.json` integer counters are — and the packet-mass rounding
|
|
22
|
-
* below absorbs ULP differences well before they could flip an ordering.)
|
|
23
|
-
*
|
|
24
|
-
* Scores are derived JIT at dispatch and never persisted (only the raw counters
|
|
25
|
-
* in `access_memory.json` are). Returns an empty map when there is no signal yet
|
|
26
|
-
* (no access-memory, or every record has zero frequency) — callers treat an empty
|
|
27
|
-
* map as "no bias", so behaviour is identical to pre-2b on the first steps.
|
|
28
|
-
*/
|
|
29
|
-
const PAGERANK_ALPHA = 0.85;
|
|
30
|
-
const PAGERANK_ITERATIONS = 20;
|
|
31
|
-
/** Per-step recency decay in STEP-ORDINAL space (not wall-clock). */
|
|
32
|
-
const RECENCY_DECAY = 0.9;
|
|
33
|
-
/** `edited` weighted above `covered` — an edit is stronger continuity than a read. */
|
|
34
|
-
const EDITED_WEIGHT = 3;
|
|
35
|
-
function pushNeighbour(adjacency, from, to) {
|
|
36
|
-
let set = adjacency.get(from);
|
|
37
|
-
if (!set) {
|
|
38
|
-
set = new Set();
|
|
39
|
-
adjacency.set(from, set);
|
|
40
|
-
}
|
|
41
|
-
set.add(to);
|
|
42
|
-
}
|
|
43
|
-
export function computeContinuityScores(accessMemory, graphBundle) {
|
|
44
|
-
if (!accessMemory || accessMemory.paths.length === 0) {
|
|
45
|
-
return new Map();
|
|
46
|
-
}
|
|
47
|
-
// 1. Seed vector: recency(step-ordinal decay) × frequency, edited > covered.
|
|
48
|
-
const totalOrdinals = Math.max(1, accessMemory.total_ordinals);
|
|
49
|
-
const seed = new Map();
|
|
50
|
-
for (const record of accessMemory.paths) {
|
|
51
|
-
const frequency = record.covered_count + EDITED_WEIGHT * record.edited_count;
|
|
52
|
-
if (frequency <= 0)
|
|
53
|
-
continue;
|
|
54
|
-
const stepsAgo = Math.max(0, totalOrdinals - 1 - record.last_ordinal);
|
|
55
|
-
const recency = Math.pow(RECENCY_DECAY, stepsAgo);
|
|
56
|
-
const path = normalizeGraphPath(record.path);
|
|
57
|
-
seed.set(path, (seed.get(path) ?? 0) + frequency * recency);
|
|
58
|
-
}
|
|
59
|
-
if (seed.size === 0) {
|
|
60
|
-
return new Map();
|
|
61
|
-
}
|
|
62
|
-
// Normalize the seed to a probability distribution (the PageRank personalization
|
|
63
|
-
// vector) so α/(1-α) teleport mass is well-defined. Guard seedTotal>0 (not just
|
|
64
|
-
// seed.size>0): if every seeded record is so many step-ordinals stale that its
|
|
65
|
-
// recency underflows to 0, seedTotal is 0 and the division would poison every
|
|
66
|
-
// score with NaN — degrade to "no signal" instead.
|
|
67
|
-
const seedTotal = [...seed.values()].reduce((sum, value) => sum + value, 0);
|
|
68
|
-
if (!(seedTotal > 0)) {
|
|
69
|
-
return new Map();
|
|
70
|
-
}
|
|
71
|
-
for (const [key, value] of seed) {
|
|
72
|
-
seed.set(key, value / seedTotal);
|
|
73
|
-
}
|
|
74
|
-
// 2. Undirected structural adjacency over the same edge set packet planning
|
|
75
|
-
// uses. Continuity flows both ways along an edge: a touched file makes its
|
|
76
|
-
// neighbours likely-relevant regardless of import/call direction. Parallel
|
|
77
|
-
// edges are deduped so a hub isn't over-weighted by edge multiplicity.
|
|
78
|
-
const adjacency = new Map();
|
|
79
|
-
const nodes = new Set(seed.keys());
|
|
80
|
-
for (const edge of collectGraphEdges(graphBundle)) {
|
|
81
|
-
const from = normalizeGraphPath(edge.from);
|
|
82
|
-
const to = normalizeGraphPath(edge.to);
|
|
83
|
-
if (from === to)
|
|
84
|
-
continue;
|
|
85
|
-
nodes.add(from);
|
|
86
|
-
nodes.add(to);
|
|
87
|
-
pushNeighbour(adjacency, from, to);
|
|
88
|
-
pushNeighbour(adjacency, to, from);
|
|
89
|
-
}
|
|
90
|
-
// Sorted node list + sorted neighbour lists → stable float accumulation order.
|
|
91
|
-
const nodeList = [...nodes].sort();
|
|
92
|
-
const neighbours = new Map();
|
|
93
|
-
for (const node of nodeList) {
|
|
94
|
-
const set = adjacency.get(node);
|
|
95
|
-
neighbours.set(node, set ? [...set].sort() : []);
|
|
96
|
-
}
|
|
97
|
-
// 3. Personalized PageRank via power iteration to a FIXED count (deterministic).
|
|
98
|
-
// rank₀ = seed distribution; dangling (no-neighbour) mass teleports back to
|
|
99
|
-
// the seed distribution so an isolated touched file keeps its score.
|
|
100
|
-
let rank = new Map();
|
|
101
|
-
for (const node of nodeList) {
|
|
102
|
-
rank.set(node, seed.get(node) ?? 0);
|
|
103
|
-
}
|
|
104
|
-
for (let iteration = 0; iteration < PAGERANK_ITERATIONS; iteration++) {
|
|
105
|
-
const next = new Map();
|
|
106
|
-
for (const node of nodeList) {
|
|
107
|
-
next.set(node, (1 - PAGERANK_ALPHA) * (seed.get(node) ?? 0));
|
|
108
|
-
}
|
|
109
|
-
let danglingMass = 0;
|
|
110
|
-
for (const node of nodeList) {
|
|
111
|
-
const r = rank.get(node) ?? 0;
|
|
112
|
-
const outs = neighbours.get(node) ?? [];
|
|
113
|
-
if (outs.length === 0) {
|
|
114
|
-
danglingMass += r;
|
|
115
|
-
continue;
|
|
116
|
-
}
|
|
117
|
-
const share = (PAGERANK_ALPHA * r) / outs.length;
|
|
118
|
-
for (const neighbour of outs) {
|
|
119
|
-
next.set(neighbour, (next.get(neighbour) ?? 0) + share);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (danglingMass > 0) {
|
|
123
|
-
for (const [node, seedShare] of seed) {
|
|
124
|
-
next.set(node, (next.get(node) ?? 0) + PAGERANK_ALPHA * danglingMass * seedShare);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
rank = next;
|
|
128
|
-
}
|
|
129
|
-
return rank;
|
|
130
|
-
}
|
|
1
|
+
// Continuity scoring is single-sourced in `audit-tools/shared`
|
|
2
|
+
// (`computeContinuityScores`) so the audit and remediate orchestrators bias on
|
|
3
|
+
// the IDENTICAL scorer — the auditor/remediator mirroring the harvest core
|
|
4
|
+
// (`deriveAccessMemoryFromEvents`) already established. Audit consumes it to bias
|
|
5
|
+
// review-packet ordering (`orderReviewPackets`); remediate to bias file-ownership
|
|
6
|
+
// sub-wave admission. This re-export keeps audit's import sites stable; the byte-
|
|
7
|
+
// identical behaviour is unchanged from the pre-extraction audit-local scorer.
|
|
8
|
+
export { computeContinuityScores } from "audit-tools/shared";
|
|
131
9
|
//# sourceMappingURL=continuityScore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuityScore.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/continuityScore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"continuityScore.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/continuityScore.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+EAA+E;AAC/E,2EAA2E;AAC3E,kFAAkF;AAClF,kFAAkF;AAClF,kFAAkF;AAClF,+EAA+E;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -5,6 +5,17 @@ export interface FileAnchor {
|
|
|
5
5
|
kind: FileAnchorKind;
|
|
6
6
|
name: string;
|
|
7
7
|
line?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Approximate END line of a `symbol`-kind anchor's body (increment 2d,
|
|
10
|
+
* `path::symbol` slicing). Computed deterministically as the line before the
|
|
11
|
+
* next top-level declaration boundary (`symbol`/`route` start), clamped to the
|
|
12
|
+
* file's line count — a lightweight, language-neutral, brace-agnostic extent
|
|
13
|
+
* (no nesting awareness). Advisory ONLY: it seeds a targeted symbol-span read
|
|
14
|
+
* so a worker need not re-read a whole god-file, but the worker always
|
|
15
|
+
* fail-safes to reading more when evidence crosses the span. Present only on
|
|
16
|
+
* `symbol` anchors that have a `line`; absent everywhere else.
|
|
17
|
+
*/
|
|
18
|
+
end_line?: number;
|
|
8
19
|
detail?: string;
|
|
9
20
|
}
|
|
10
21
|
export interface FileAnchorSummary {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileAnchors.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/fileAnchors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,oBAAoB,CAAC;AAEjE,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,OAAO,GACP,iBAAiB,CAAC;AAEtB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,kCAAkC,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,qBAAqB,CAAC;IACnC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AA2GD;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAElE,wBAAgB,8BAA8B,CAC5C,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,SAAS,GAC7D,yBAAyB,CAiC3B;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,yBAAyB,GAAG,SAAS,GAC3C,UAAU,EAAE,CAEd;
|
|
1
|
+
{"version":3,"file":"fileAnchors.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/fileAnchors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,oBAAoB,CAAC;AAEjE,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,OAAO,GACP,iBAAiB,CAAC;AAEtB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,kCAAkC,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,qBAAqB,CAAC;IACnC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AA2GD;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAElE,wBAAgB,8BAA8B,CAC5C,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,SAAS,GAC7D,yBAAyB,CAiC3B;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,yBAAyB,GAAG,SAAS,GAC3C,UAAU,EAAE,CAEd;AAyHD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,uBAAuB,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACrD,GAAG,iBAAiB,CA8FpB"}
|
|
@@ -169,6 +169,36 @@ function collectGraphEdges(graphBundle, path) {
|
|
|
169
169
|
a.from.localeCompare(b.from) ||
|
|
170
170
|
a.to.localeCompare(b.to));
|
|
171
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Assigns an approximate `end_line` span to each TOP-LEVEL `symbol`-kind anchor
|
|
174
|
+
* (increment 2d, `path::symbol` slicing). A top-level declaration's body runs
|
|
175
|
+
* from its line to the line before the NEXT top-level declaration, or to the
|
|
176
|
+
* file end for the last one. Only top-level (zero-indentation) declarations are
|
|
177
|
+
* boundaries and slice targets — a NESTED binding (an indented `const`/`let`
|
|
178
|
+
* the flat regex scanner also matches as a `symbol`) must NOT fragment the
|
|
179
|
+
* enclosing function/class span, and is not itself a useful slice, so it gets no
|
|
180
|
+
* span. `topLevelDeclLines` is the ascending set of zero-indent symbol/route
|
|
181
|
+
* declaration lines gathered during the content scan.
|
|
182
|
+
*
|
|
183
|
+
* This is a deterministic, content-derived, brace-agnostic heuristic (no nesting
|
|
184
|
+
* awareness) — advisory guidance the worker fail-safes past, never a hard read
|
|
185
|
+
* boundary. Mutates the anchors in place; must run on the fully line-sorted list
|
|
186
|
+
* BEFORE the MAX_ANCHORS cap so a surviving anchor's span is independent of the
|
|
187
|
+
* cap.
|
|
188
|
+
*/
|
|
189
|
+
function assignSymbolSpans(sorted, totalLines, topLevelDeclLines) {
|
|
190
|
+
const topLevelSet = new Set(topLevelDeclLines);
|
|
191
|
+
// Ascending — a linear scan finds the first boundary strictly after a line.
|
|
192
|
+
const boundaries = [...topLevelDeclLines].sort((a, b) => a - b);
|
|
193
|
+
for (const anchor of sorted) {
|
|
194
|
+
if (anchor.kind !== "symbol" || !anchor.line || !topLevelSet.has(anchor.line)) {
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
const nextBoundary = boundaries.find((line) => line > anchor.line);
|
|
198
|
+
const end = nextBoundary !== undefined ? nextBoundary - 1 : totalLines;
|
|
199
|
+
anchor.end_line = Math.max(anchor.line, Math.min(end, totalLines));
|
|
200
|
+
}
|
|
201
|
+
}
|
|
172
202
|
function scanSymbol(line, lineNumber, anchors, seen) {
|
|
173
203
|
for (const { kind, pattern, label } of SYMBOL_PATTERNS) {
|
|
174
204
|
const match = line.match(pattern);
|
|
@@ -206,6 +236,11 @@ export function buildFileAnchorSummary(params) {
|
|
|
206
236
|
let symbolCount = 0;
|
|
207
237
|
let routeCount = 0;
|
|
208
238
|
let keywordCount = 0;
|
|
239
|
+
// Zero-indent symbol/route declaration lines — the top-level boundaries that
|
|
240
|
+
// bound per-symbol slice spans (see assignSymbolSpans). A nested (indented)
|
|
241
|
+
// binding the flat scanner also matches is deliberately excluded so it neither
|
|
242
|
+
// fragments an enclosing span nor becomes a spurious slice target.
|
|
243
|
+
const topLevelDeclLines = [];
|
|
209
244
|
addAnchor(anchors, seen, {
|
|
210
245
|
kind: "boundary",
|
|
211
246
|
name: "file_start",
|
|
@@ -227,6 +262,10 @@ export function buildFileAnchorSummary(params) {
|
|
|
227
262
|
routeCount += 1;
|
|
228
263
|
else if (symbolKind === "symbol")
|
|
229
264
|
symbolCount += 1;
|
|
265
|
+
// A zero-indent symbol/route declaration is a top-level slice boundary.
|
|
266
|
+
if ((symbolKind === "symbol" || symbolKind === "route") && /^\S/.test(line)) {
|
|
267
|
+
topLevelDeclLines.push(lineNumber);
|
|
268
|
+
}
|
|
230
269
|
if (scanKeyword(line, lineNumber, anchors, seen))
|
|
231
270
|
keywordCount += 1;
|
|
232
271
|
});
|
|
@@ -247,6 +286,9 @@ export function buildFileAnchorSummary(params) {
|
|
|
247
286
|
const sorted = anchors.sort((a, b) => (a.line ?? Number.MAX_SAFE_INTEGER) - (b.line ?? Number.MAX_SAFE_INTEGER) ||
|
|
248
287
|
a.kind.localeCompare(b.kind) ||
|
|
249
288
|
a.name.localeCompare(b.name));
|
|
289
|
+
// Seed per-symbol spans on the full sorted list (before the cap) so a
|
|
290
|
+
// surviving anchor's span never depends on which anchors the cap dropped.
|
|
291
|
+
assignSymbolSpans(sorted, params.totalLines, topLevelDeclLines);
|
|
250
292
|
const boundedAnchors = sorted.slice(0, MAX_ANCHORS);
|
|
251
293
|
return {
|
|
252
294
|
contract_version: "audit-code-file-anchors/v1alpha1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileAnchors.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/fileAnchors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fileAnchors.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/fileAnchors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { AuditTask } from "../types.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { GraphEdge } from "audit-tools/shared";
|
|
3
|
+
import { collectGraphEdges } from "audit-tools/shared";
|
|
3
4
|
import { UnionFind } from "./unionFind.js";
|
|
4
5
|
import { normalizeGraphPath } from "../extractors/graphPathUtils.js";
|
|
5
|
-
export { normalizeGraphPath };
|
|
6
|
+
export { normalizeGraphPath, collectGraphEdges };
|
|
6
7
|
/**
|
|
7
8
|
* Fan-in / fan-out degree above which a node is treated as a hub. Exported so
|
|
8
9
|
* the Phase 3 delta-scope expansion skips the same hubs that packet planning
|
|
9
10
|
* skips, preventing scope blow-up through highly-connected modules.
|
|
10
11
|
*/
|
|
11
12
|
export declare const HIGH_FAN_DEGREE_THRESHOLD = 12;
|
|
12
|
-
export declare function collectGraphEdges(graphBundle?: GraphBundle): GraphEdge[];
|
|
13
13
|
export declare function graphEdgeConfidence(edge: GraphEdge): number;
|
|
14
14
|
export declare function isConcreteGraphEdge(edge: GraphEdge): boolean;
|
|
15
15
|
export interface GraphDegreeIndex {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewPacketGraphEdges.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/reviewPacketGraphEdges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"reviewPacketGraphEdges.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/reviewPacketGraphEdges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AASrE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;AAGjD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAW3D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAE5D;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAe1E;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,gBAAgB,GAC5B,OAAO,CAgBT;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAC/B,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAW1B;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAChC,UAAU,EAAE,SAAS,EAAE,GACtB,SAAS,CAmEX"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { collectGraphEdges } from "audit-tools/shared";
|
|
2
2
|
import { UnionFind } from "./unionFind.js";
|
|
3
3
|
import { normalizeGraphPath } from "../extractors/graphPathUtils.js";
|
|
4
4
|
// Graph-edge primitives: collection, scoring, degree indexing, expansion
|
|
5
5
|
// predicate, group-key utilities, and the union-find merge step that derives
|
|
6
6
|
// the initial clustering from shared-file links and filtered graph edges.
|
|
7
7
|
// Imported by reviewPacketGraphClustering and reviewPacketGraph (barrel).
|
|
8
|
-
|
|
8
|
+
// `collectGraphEdges` is single-sourced in `audit-tools/shared` (the shared
|
|
9
|
+
// continuity scorer needs it too) and re-exported here so this barrel's
|
|
10
|
+
// consumers are unchanged.
|
|
11
|
+
export { normalizeGraphPath, collectGraphEdges };
|
|
9
12
|
const PACKET_EXPANSION_MIN_CONFIDENCE = 0.65;
|
|
10
13
|
/**
|
|
11
14
|
* Fan-in / fan-out degree above which a node is treated as a hub. Exported so
|
|
@@ -14,42 +17,6 @@ const PACKET_EXPANSION_MIN_CONFIDENCE = 0.65;
|
|
|
14
17
|
*/
|
|
15
18
|
export const HIGH_FAN_DEGREE_THRESHOLD = 12;
|
|
16
19
|
const HIGH_FAN_EXPANSION_CONFIDENCE = 0.99;
|
|
17
|
-
export function collectGraphEdges(graphBundle) {
|
|
18
|
-
if (!graphBundle?.graphs) {
|
|
19
|
-
return [];
|
|
20
|
-
}
|
|
21
|
-
const edges = [];
|
|
22
|
-
for (const key of ["imports", "calls", "references"]) {
|
|
23
|
-
const raw = graphBundle.graphs[key];
|
|
24
|
-
if (!Array.isArray(raw)) {
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
for (const item of raw) {
|
|
28
|
-
if (!isRecord(item)) {
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
if (typeof item.from !== "string" || typeof item.to !== "string") {
|
|
32
|
-
continue;
|
|
33
|
-
}
|
|
34
|
-
const edge = {
|
|
35
|
-
from: item.from,
|
|
36
|
-
to: item.to,
|
|
37
|
-
kind: typeof item.kind === "string" ? item.kind : undefined,
|
|
38
|
-
};
|
|
39
|
-
if (item.direction === "directed" || item.direction === "undirected") {
|
|
40
|
-
edge.direction = item.direction;
|
|
41
|
-
}
|
|
42
|
-
if (typeof item.confidence === "number" && Number.isFinite(item.confidence)) {
|
|
43
|
-
edge.confidence = Math.min(1, Math.max(0, item.confidence));
|
|
44
|
-
}
|
|
45
|
-
if (typeof item.reason === "string" && item.reason.trim().length > 0) {
|
|
46
|
-
edge.reason = item.reason.trim();
|
|
47
|
-
}
|
|
48
|
-
edges.push(edge);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return edges;
|
|
52
|
-
}
|
|
53
20
|
export function graphEdgeConfidence(edge) {
|
|
54
21
|
if (typeof edge.confidence === "number" && Number.isFinite(edge.confidence)) {
|
|
55
22
|
return Math.min(1, Math.max(0, edge.confidence));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewPacketGraphEdges.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/reviewPacketGraphEdges.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reviewPacketGraphEdges.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/reviewPacketGraphEdges.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewPackets.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/reviewPackets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAQ,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"reviewPackets.d.ts","sourceRoot":"","sources":["../../../src/audit/orchestrator/reviewPackets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAQ,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAGL,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EAGrB,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAYjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAI9B,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,uBAAuB,GACxB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAsHD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,EAAE,EACvB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,YAAY,EAAE,CAKhB;AA8LD,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,EAAE,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,UAAU,GAAE,SAAS,EAAO,EAC5B,WAAW,CAAC,EAAE,WAAW,GACxB,YAAY,CAyEd;AAsED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE,wBAA6B,GACrC,YAAY,EAAE,CAEhB;AAED,MAAM,WAAW,2BAA2B;IAC1C,+EAA+E;IAC/E,KAAK,EAAE,iBAAiB,CAAC;IACzB,2EAA2E;IAC3E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,2BAA2B,GACnC,YAAY,EAAE,CAgChB;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE,wBAA6B,GACrC,SAAS,EAAE,CAOb;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE,wBAAwB,GAAG;IAAE,WAAW,CAAC,EAAE,IAAI,CAAA;CAAO,GAC9D,gBAAgB,CAGlB"}
|