@devflow-tools/benchmark 0.17.8 → 0.18.0
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/LICENSE +21 -0
- package/dist/accuracy-command-options.d.ts +3 -0
- package/dist/accuracy-command-options.d.ts.map +1 -0
- package/dist/accuracy-command-options.js +17 -0
- package/dist/accuracy-command-options.js.map +1 -0
- package/dist/context-symbol-quality-command.d.ts +59 -0
- package/dist/context-symbol-quality-command.d.ts.map +1 -0
- package/dist/context-symbol-quality-command.js +482 -0
- package/dist/context-symbol-quality-command.js.map +1 -0
- package/dist/evaluation-bundle-builder.d.ts +48 -0
- package/dist/evaluation-bundle-builder.d.ts.map +1 -0
- package/dist/evaluation-bundle-builder.js +496 -0
- package/dist/evaluation-bundle-builder.js.map +1 -0
- package/dist/evaluation-bundle-command.d.ts +2 -0
- package/dist/evaluation-bundle-command.d.ts.map +1 -0
- package/dist/evaluation-bundle-command.js +15 -0
- package/dist/evaluation-bundle-command.js.map +1 -0
- package/dist/evaluation-bundle.d.ts +55 -0
- package/dist/evaluation-bundle.d.ts.map +1 -0
- package/dist/evaluation-bundle.js +272 -0
- package/dist/evaluation-bundle.js.map +1 -0
- package/dist/evaluation-run-state.d.ts +23 -0
- package/dist/evaluation-run-state.d.ts.map +1 -0
- package/dist/evaluation-run-state.js +115 -0
- package/dist/evaluation-run-state.js.map +1 -0
- package/dist/evidence-quality-metrics.d.ts +15 -0
- package/dist/evidence-quality-metrics.d.ts.map +1 -1
- package/dist/evidence-quality-metrics.js +51 -1
- package/dist/evidence-quality-metrics.js.map +1 -1
- package/dist/graders/deterministic.d.ts.map +1 -1
- package/dist/graders/deterministic.js +5 -3
- package/dist/graders/deterministic.js.map +1 -1
- package/dist/index.d.ts +15 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/release-quality-bundle-command.d.ts +3 -0
- package/dist/release-quality-bundle-command.d.ts.map +1 -0
- package/dist/release-quality-bundle-command.js +72 -0
- package/dist/release-quality-bundle-command.js.map +1 -0
- package/dist/release-quality-bundle-evaluator.d.ts +61 -0
- package/dist/release-quality-bundle-evaluator.d.ts.map +1 -0
- package/dist/release-quality-bundle-evaluator.js +321 -0
- package/dist/release-quality-bundle-evaluator.js.map +1 -0
- package/dist/release-quality-bundle-materializer.d.ts +79 -0
- package/dist/release-quality-bundle-materializer.d.ts.map +1 -0
- package/dist/release-quality-bundle-materializer.js +395 -0
- package/dist/release-quality-bundle-materializer.js.map +1 -0
- package/dist/release-quality-comparison.d.ts +34 -0
- package/dist/release-quality-comparison.d.ts.map +1 -0
- package/dist/release-quality-comparison.js +60 -0
- package/dist/release-quality-comparison.js.map +1 -0
- package/dist/release-quality-evaluation-command.d.ts +42 -0
- package/dist/release-quality-evaluation-command.d.ts.map +1 -0
- package/dist/release-quality-evaluation-command.js +91 -0
- package/dist/release-quality-evaluation-command.js.map +1 -0
- package/dist/release-quality-host-proof.d.ts +30 -0
- package/dist/release-quality-host-proof.d.ts.map +1 -0
- package/dist/release-quality-host-proof.js +109 -0
- package/dist/release-quality-host-proof.js.map +1 -0
- package/dist/release-quality-output-cleanup.d.ts +2 -0
- package/dist/release-quality-output-cleanup.d.ts.map +1 -0
- package/dist/release-quality-output-cleanup.js +18 -0
- package/dist/release-quality-output-cleanup.js.map +1 -0
- package/dist/release-quality-policy.d.ts +87 -0
- package/dist/release-quality-policy.d.ts.map +1 -0
- package/dist/release-quality-policy.js +179 -0
- package/dist/release-quality-policy.js.map +1 -0
- package/dist/release-quality-query-sampling.d.ts +36 -0
- package/dist/release-quality-query-sampling.d.ts.map +1 -0
- package/dist/release-quality-query-sampling.js +87 -0
- package/dist/release-quality-query-sampling.js.map +1 -0
- package/dist/release-quality-source-snapshot.d.ts +18 -0
- package/dist/release-quality-source-snapshot.d.ts.map +1 -0
- package/dist/release-quality-source-snapshot.js +46 -0
- package/dist/release-quality-source-snapshot.js.map +1 -0
- package/dist/retrieval-quality-corpus.d.ts +0 -1
- package/dist/retrieval-quality-corpus.d.ts.map +1 -1
- package/dist/retrieval-quality-corpus.js +1 -1
- package/dist/retrieval-quality-corpus.js.map +1 -1
- package/dist/retrieval-quality.d.ts.map +1 -1
- package/dist/retrieval-quality.js +29 -26
- package/dist/retrieval-quality.js.map +1 -1
- package/dist/run-accuracy-tests.js +82 -2
- package/dist/run-accuracy-tests.js.map +1 -1
- package/dist/suite-runner.js +1 -1
- package/dist/suite-runner.js.map +1 -1
- package/dist/unified-runtime-corpus.d.ts +64 -0
- package/dist/unified-runtime-corpus.d.ts.map +1 -0
- package/dist/unified-runtime-corpus.js +161 -0
- package/dist/unified-runtime-corpus.js.map +1 -0
- package/dist/unified-runtime-evaluation.d.ts +133 -0
- package/dist/unified-runtime-evaluation.d.ts.map +1 -0
- package/dist/unified-runtime-evaluation.js +388 -0
- package/dist/unified-runtime-evaluation.js.map +1 -0
- package/dist/unified-runtime-observation.d.ts +101 -0
- package/dist/unified-runtime-observation.d.ts.map +1 -0
- package/dist/unified-runtime-observation.js +2 -0
- package/dist/unified-runtime-observation.js.map +1 -0
- package/dist/unified-runtime-runner.d.ts +73 -0
- package/dist/unified-runtime-runner.d.ts.map +1 -0
- package/dist/unified-runtime-runner.js +620 -0
- package/dist/unified-runtime-runner.js.map +1 -0
- package/fixtures/evidence-runtime-corpus.json +0 -100
- package/fixtures/release-quality/bundles.json +1 -0
- package/fixtures/release-quality/calibration.json +602 -0
- package/fixtures/release-quality/ecc/corpus.json +257 -0
- package/fixtures/release-quality/ecc/input.json +62 -0
- package/fixtures/release-quality/llm-wiki/corpus.json +263 -0
- package/fixtures/release-quality/llm-wiki/input.json +72 -0
- package/fixtures/release-quality/mem0/corpus.json +288 -0
- package/fixtures/release-quality/mem0/input.json +68 -0
- package/fixtures/release-quality/projects.json +29 -0
- package/fixtures/release-quality/release-quality-policy.json +232 -0
- package/fixtures/release-quality/rsbuild-react/corpus.json +263 -0
- package/fixtures/release-quality/rsbuild-react/input.json +62 -0
- package/fixtures/retrieval-quality-corpus.json +7 -7
- package/fixtures/semantic-regex-inventory.json +3 -10
- package/fixtures/unified-runtime/baselines/2026-08-08.json +37 -0
- package/fixtures/unified-runtime/context.json +206 -0
- package/fixtures/unified-runtime/knowledge.json +224 -0
- package/fixtures/unified-runtime/memory.json +224 -0
- package/fixtures/unified-runtime/real-projects/rsbuild-react-2026-08-07/context.json +32 -0
- package/fixtures/unified-runtime/real-projects/rsbuild-react-2026-08-07/knowledge.json +32 -0
- package/fixtures/unified-runtime/real-projects/rsbuild-react-2026-08-07/memory.json +32 -0
- package/fixtures/unified-runtime/real-projects/rsbuild-react-2026-08-07/semantic.json +409 -0
- package/fixtures/unified-runtime/runs/rsbuild-react-2026-08-05.json +54 -0
- package/fixtures/unified-runtime/semantic.json +409 -0
- package/package.json +24 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-quality-bundle-evaluator.js","sourceRoot":"","sources":["../src/release-quality-bundle-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,iCAAiC,GAKlC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EACL,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,YAAY,EACZ,SAAS,EACT,iBAAiB,GAGlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,eAAe,EACf,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,iCAAiC,EACjC,YAAY,GACb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,wBAAwB,GAKzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,uCAAuC,EACvC,gCAAgC,GAGjC,MAAM,qCAAqC,CAAC;AA4D7C,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,KAGlD;IACC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,MAAM,UAAU,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACzG,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAqB,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,QAAQ,CAAuB,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,wBAAwB,CAAC;QACxC,UAAU;QACV,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC;KACzE,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE;QACnE,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACjG,MAAM,iBAAiB,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvG,MAAM,mBAAmB,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE;QAC/E,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,uBAAuB;KACrD,CAAC,CAAC;IACH,IAAI,CAAC;QACH,OAAO,CAAC,SAAS,CAAC,6BAA6B,EAAE,CAAC;QAClD,MAAM,KAAK,GAAqC,EAAE,CAAC;QACnD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9F,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5E,KAAK,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC;gBAC5B,IAAI;gBACJ,KAAK;gBACL,QAAQ;gBACR,OAAO;gBACP,cAAc;gBACd,iBAAiB;gBACjB,mBAAmB;gBACnB,QAAQ;gBACR,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU;aAC5C,CAAC,CAAC,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC9F,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;YACvE,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAA4D,CAAC;QAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC;QACpG,OAAO;YACL,aAAa,EAAE,0CAA0C;YACzD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,KAAK;YACL,QAAQ;YACR,gBAAgB,EAAE,qBAAqB,CACrC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,EACxF,SAAS,CAAC,MAAM,CACjB;YACD,yBAAyB,EAAE,qBAAqB,CAC9C,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,KAAK,yBAAyB;mBACxE,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW;mBACvD,IAAI,CAAC,sBAAsB,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,EACxD,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,KAAK,yBAAyB,CAAC,CAAC,MAAM,CACtF;YACD,2BAA2B,EAAE,OAAO,CAAC,KAAK;iBACvC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC;iBAC7E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC9C,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,sBAAsB,EAAE;YAC1E,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,+BAA+B,EAAE;YACpF,eAAe,EAAE,IAAI;SACtB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC1B,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAC5B,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAW3B;IACC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC;QACrC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;QAC9B,aAAa;QACb,YAAY;KACb,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;QACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;QAC3B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;QAC/B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,aAAa;QACb,YAAY;QACZ,eAAe,EAAE,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;QACzD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC;QACxC,YAAY,EAAE,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC;QAC9C,sBAAsB,EAAE,yBAAyB,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnG,sBAAsB,EAAE,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;QACnF,wBAAwB,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW;YAC1D,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC;YACnE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/B,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;KACnF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAyC;IACpE,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,EACjB,2BAA2B,EAC3B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,QAAQ,CAAC,SAAS,CACzB,CAAC;IACF,MAAM,aAAa,GAAG,uCAAuC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC;QAChD,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;QACnC,QAAQ;QACR,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,iCAAiC,CAAC;YAC5C,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,eAAe;YAC1B,gBAAgB,EAAE,UAAU;YAC5B,oBAAoB,EAAE,UAAU;YAChC,iBAAiB,EAAE;gBACjB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW;aAC5E;YACD,oBAAoB,EAAE,2BAA2B;YACjD,SAAS,EAAE,CAAC;SACb,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc;QACpC,sBAAsB,EAAE;YACtB,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B;QACD,MAAM,EAAE;YACN,UAAU,EAAE,2BAA2B;YACvC,OAAO,EAAE;gBACP,cAAc,EAAE,KAAK;gBACrB,aAAa,EAAE,KAAK;gBACpB,qBAAqB,EAAE,KAAK;gBAC5B,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE;aAC7D;SACF;QACD,GAAG,EAAE,CAAC;KACP,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,iCAAiC,CAC/C,QAAQ,CAAC,OAAO,EAChB,KAAK,CAAC,IAAI,CAAC,OAAO,EAClB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CACpC,CAAC;IACF,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,oBAAoB,CAAC;QAC5C,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC;QACxD,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;QACzD,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;QAC/D,QAAQ,EAAE,IAAI,0BAA0B,CAAC,KAAK,CAAC,mBAAmB,CAAC;QACnE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,eAAe,EAAE;KAC/B,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC1D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;aACrC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC;aACtC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,UAAU,IAAI,MAAM,EAAE,CAAC;aAC7E,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,IAAI,KAAK,CACb,wCAAwC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG;cACrE,GAAG,QAAQ,EAAE,MAAM,IAAI,SAAS,IAAI,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE;cAC/E,eAAe,KAAK,CAAC,UAAU,CAAC,MAAM,SAAS,IAAI,IAAI,MAAM,EAAE,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,QAAQ,IAAI,CAAC,CAAC;QACd,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC;IAC7C,CAAC;IACD,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aACzE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,YAAY,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;aACzD,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC;aAClD,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,QAAQ,EAAE,UAAU,CAAC,MAAM;QAC3B,QAAQ;QACR,cAAc;QACd,aAAa,EAAE,qBAAqB;QACpC,QAAQ,EAAE;YACR,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,QAAS,CAAC,SAAS;YAC7C,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,QAAS,CAAC,cAAc;YACvD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,KAAyC,EACzC,SAA8B;IAE9B,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzC,OAAO,EAAE,GAAG,EAAE,0BAA0B,CAAC;gBACvC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,iBAAiB;gBACnD,cAAc,EAAE,IAAI;gBACpB,QAAQ;gBACR,KAAK,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACtF,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1B,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,kEAAkE,CAAC;iBACzG,GAAG,CAAC,EAAE,CAAyC,CAAC;YACnD,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,yBAAyB,CAAC;oBAC5C,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM;oBAChE,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,EAAE;oBACf,OAAO,EAAE,GAAG,CAAC,YAAY;iBAC1B,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACtC,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAA2C,CAAC;aAClF,GAAG,CAAC,EAAE,CAAoC,CAAC;QAC9C,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,yBAAyB,CAAC;gBAC5C,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM;gBAChE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACtC,CAAC;IACD,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC;oFACsC,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAA0E,CAAC;IACvG,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,EAAE,GAAG,EAAE,4BAA4B,CAAC;YACzC,QAAQ,EAAE,SAAS,CAAC,MAAM;YAC1B,aAAa,EAAE,SAAS,CAAC,OAAO;YAChC,WAAW,EAAE,SAAS,CAAC,YAAY;YACnC,OAAO,EAAE,EAAE;SACZ,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC;AAYD,SAAS,aAAa,CAAC,SAA8B,EAAE,GAAW;IAChE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,SAAS,cAAc,CAAC,SAA8B,EAAE,GAAW;IACjE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,MAAM,CAAC,IAAc;IAC5B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAuC;IAC/D,OAAO;QACL,eAAe,EAAE,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzF,SAAS,EAAE,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7E,YAAY,EAAE,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnF,sBAAsB,EAAE,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvG,sBAAsB,EAAE,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACxG,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAAgC;IAC/C,OAAO,qBAAqB,CAC1B,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAC1D,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAC7D,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,UAAkB;IACpC,MAAM,OAAO,GAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3E,OAAO;QACP,QAAQ,CAAuB,IAAI,CAAC,UAAU,EAAE,UAAU,OAAO,OAAO,CAAC,CAAC;KAC3E,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAoD,CAAC;AACxF,CAAC;AAED,SAAS,QAAQ,CAAI,IAAY;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAM,CAAC;AACrD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAA0C;IACpE,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;WAC/B,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;WAC3D,CAAC,KAAK,CAAC,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,CAAC;WACnE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;WACxD,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS;eACpC,KAAK,CAAC,iBAAiB,KAAK,uBAAuB;eACnD,KAAK,CAAC,iBAAiB,KAAK,yBAAyB,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,aAAa,EAAE,gCAAgC,CAAC,KAAK,CAAC,aAAa,CAAC;QACpE,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,OAAkD;IACtE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1B,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1B,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,OAAO,CAAC,IAA+B,CAAC,KAAK,EAAE,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type EvaluationBundleManifestV1, type EvaluationChannel } from '@devflow-tools/sdk';
|
|
2
|
+
export interface ReleaseQualityProjectInput {
|
|
3
|
+
schemaVersion: 'devflow.release-quality-project-input.v1';
|
|
4
|
+
project: {
|
|
5
|
+
projectId: string;
|
|
6
|
+
repository: string;
|
|
7
|
+
commit: string;
|
|
8
|
+
tree: string;
|
|
9
|
+
checkoutDirectory: string;
|
|
10
|
+
sourceSnapshot?: {
|
|
11
|
+
manifestSha256: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
context: {
|
|
15
|
+
evidence: Array<{
|
|
16
|
+
path: string;
|
|
17
|
+
sha256: string;
|
|
18
|
+
symbol: string;
|
|
19
|
+
startLine: number;
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
22
|
+
memory: {
|
|
23
|
+
actorId: string;
|
|
24
|
+
sessionId: string;
|
|
25
|
+
prompt: string;
|
|
26
|
+
explicitContent: string;
|
|
27
|
+
temporal: {
|
|
28
|
+
olderContent: string;
|
|
29
|
+
currentContent: string;
|
|
30
|
+
query: string;
|
|
31
|
+
};
|
|
32
|
+
sourceEvidence: Array<{
|
|
33
|
+
path: string;
|
|
34
|
+
sha256: string;
|
|
35
|
+
}>;
|
|
36
|
+
};
|
|
37
|
+
knowledge: {
|
|
38
|
+
sourceId: string;
|
|
39
|
+
version: string;
|
|
40
|
+
pluginName: string;
|
|
41
|
+
goldText: string;
|
|
42
|
+
provenance: {
|
|
43
|
+
repository: string;
|
|
44
|
+
commit: string;
|
|
45
|
+
};
|
|
46
|
+
documents: Array<{
|
|
47
|
+
path: string;
|
|
48
|
+
title: string;
|
|
49
|
+
sourceUri: string;
|
|
50
|
+
sha256: string;
|
|
51
|
+
}>;
|
|
52
|
+
};
|
|
53
|
+
requiredSlices: Array<{
|
|
54
|
+
channel: 'context' | 'memory' | 'knowledge';
|
|
55
|
+
caseClass: 'positive' | 'lifecycle';
|
|
56
|
+
caseIds: string[];
|
|
57
|
+
}>;
|
|
58
|
+
}
|
|
59
|
+
export interface ReleaseQualityMaterializationTarget {
|
|
60
|
+
input: ReleaseQualityProjectInput;
|
|
61
|
+
inputPath: string;
|
|
62
|
+
corpusPath: string;
|
|
63
|
+
checkoutPath: string;
|
|
64
|
+
outputPath: string;
|
|
65
|
+
}
|
|
66
|
+
export interface ReleaseQualityBundleMaterializationResult {
|
|
67
|
+
path: string;
|
|
68
|
+
manifest: EvaluationBundleManifestV1;
|
|
69
|
+
inventories: Record<EvaluationChannel, string[]>;
|
|
70
|
+
labelRefs: Record<EvaluationChannel, string[]>;
|
|
71
|
+
}
|
|
72
|
+
export declare function loadReleaseQualityMaterializationTargets(input: {
|
|
73
|
+
manifestPath: string;
|
|
74
|
+
sourcesRoot: string;
|
|
75
|
+
outputRoot: string;
|
|
76
|
+
}): ReleaseQualityMaterializationTarget[];
|
|
77
|
+
export declare function materializeReleaseQualityBundle(target: ReleaseQualityMaterializationTarget, builderIdentity: string): Promise<ReleaseQualityBundleMaterializationResult>;
|
|
78
|
+
export declare function normalizedKnowledgeGoldText(value: string): string;
|
|
79
|
+
//# sourceMappingURL=release-quality-bundle-materializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-quality-bundle-materializer.d.ts","sourceRoot":"","sources":["../src/release-quality-bundle-materializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAML,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAY5B,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,0CAA0C,CAAC;IAC1D,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE;YAAE,cAAc,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7C,CAAC;IACF,OAAO,EAAE;QACP,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACtF,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1E,cAAc,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACzD,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACnD,SAAS,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACtF,CAAC;IACF,cAAc,EAAE,KAAK,CAAC;QACpB,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;QAC5C,SAAS,EAAE,UAAU,GAAG,WAAW,CAAC;QACpC,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;CACJ;AAYD,MAAM,WAAW,mCAAmC;IAClD,KAAK,EAAE,0BAA0B,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yCAAyC;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,0BAA0B,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC;CAChD;AAED,wBAAgB,wCAAwC,CAAC,KAAK,EAAE;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,mCAAmC,EAAE,CA2BxC;AAED,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,mCAAmC,EAC3C,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,yCAAyC,CAAC,CA6KpD;AA4HD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjE"}
|
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { cpSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, rmSync, writeFileSync, } from 'node:fs';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { dirname, isAbsolute, join, resolve } from 'node:path';
|
|
6
|
+
import CGModule from '@colbymchenry/codegraph';
|
|
7
|
+
import Database from 'better-sqlite3';
|
|
8
|
+
import { createEngines } from '@devflow-tools/mcp-server/composition';
|
|
9
|
+
import { evaluationContextStableRef, evaluationKnowledgeStableRef, evaluationMemoryStableRef, stableRuntimeJson, } from '@devflow-tools/sdk';
|
|
10
|
+
import { finalizeEvaluationBundle, prepareEvaluationBundle, } from './evaluation-bundle-builder.js';
|
|
11
|
+
import { removeReleaseQualityOutput } from './release-quality-output-cleanup.js';
|
|
12
|
+
import { buildSourceSnapshot, snapshotIdentity } from './release-quality-source-snapshot.js';
|
|
13
|
+
const CodeGraph = CGModule.default ?? CGModule;
|
|
14
|
+
const MATERIALIZATION_TIME_FLOOR = 1_700_000_000_000;
|
|
15
|
+
export function loadReleaseQualityMaterializationTargets(input) {
|
|
16
|
+
const manifestPath = resolve(input.manifestPath);
|
|
17
|
+
const fixtureRoot = dirname(manifestPath);
|
|
18
|
+
const manifest = readJson(manifestPath);
|
|
19
|
+
if (manifest.schemaVersion !== 'devflow.release-quality-projects.v1') {
|
|
20
|
+
throw new Error('RELEASE_QUALITY_PROJECTS_MANIFEST_INVALID');
|
|
21
|
+
}
|
|
22
|
+
return manifest.projects.map(entry => {
|
|
23
|
+
relativePath(entry.datasetDirectory);
|
|
24
|
+
relativePath(entry.input);
|
|
25
|
+
relativePath(entry.corpus);
|
|
26
|
+
const datasetRoot = join(fixtureRoot, entry.datasetDirectory);
|
|
27
|
+
const inputPath = join(datasetRoot, entry.input);
|
|
28
|
+
const projectInput = readJson(inputPath);
|
|
29
|
+
if (projectInput.schemaVersion !== 'devflow.release-quality-project-input.v1'
|
|
30
|
+
|| projectInput.project.projectId !== entry.projectId) {
|
|
31
|
+
throw new Error('RELEASE_QUALITY_PROJECT_INPUT_INVALID');
|
|
32
|
+
}
|
|
33
|
+
relativePath(projectInput.project.checkoutDirectory);
|
|
34
|
+
return {
|
|
35
|
+
input: projectInput,
|
|
36
|
+
inputPath,
|
|
37
|
+
corpusPath: join(datasetRoot, entry.corpus),
|
|
38
|
+
checkoutPath: join(resolve(input.sourcesRoot), projectInput.project.checkoutDirectory),
|
|
39
|
+
outputPath: join(resolve(input.outputRoot), entry.datasetDirectory),
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export async function materializeReleaseQualityBundle(target, builderIdentity) {
|
|
44
|
+
if (!/^devflow:[0-9a-f]{40}$/u.test(builderIdentity)) {
|
|
45
|
+
throw new Error('RELEASE_QUALITY_BUILDER_IDENTITY_INVALID');
|
|
46
|
+
}
|
|
47
|
+
assertPinnedCheckout(target);
|
|
48
|
+
const runtimeContainer = mkdtempSync(join(tmpdir(), 'devflow-release-materialize-'));
|
|
49
|
+
const runtimeRoot = join(runtimeContainer, 'project');
|
|
50
|
+
let engines;
|
|
51
|
+
let contextEmbeddingProfile;
|
|
52
|
+
try {
|
|
53
|
+
mkdirSync(runtimeRoot, { recursive: true });
|
|
54
|
+
for (const entry of readdirSync(target.checkoutPath)) {
|
|
55
|
+
cpSync(join(target.checkoutPath, entry), join(runtimeRoot, entry), { recursive: true, dereference: false });
|
|
56
|
+
}
|
|
57
|
+
rmSync(join(runtimeRoot, '.git'), { recursive: true, force: true });
|
|
58
|
+
rmSync(join(runtimeRoot, '.devflow'), { recursive: true, force: true });
|
|
59
|
+
rmSync(join(runtimeRoot, '.codegraph'), { recursive: true, force: true });
|
|
60
|
+
const sourceSnapshot = buildSourceSnapshot(target.checkoutPath);
|
|
61
|
+
if (target.input.project.sourceSnapshot && sourceSnapshot.manifestSha256 !== target.input.project.sourceSnapshot.manifestSha256)
|
|
62
|
+
throw new Error('RELEASE_SOURCE_SNAPSHOT_MISMATCH');
|
|
63
|
+
mkdirSync(join(runtimeRoot, '.devflow'), { recursive: true });
|
|
64
|
+
writeJson(join(runtimeRoot, '.devflow/source-snapshot.json'), snapshotIdentity(sourceSnapshot));
|
|
65
|
+
writeJson(join(runtimeRoot, '.devflow/config.json'), {
|
|
66
|
+
projectId: target.input.project.projectId,
|
|
67
|
+
memoryNamespace: `memory:${target.input.project.projectId}`,
|
|
68
|
+
});
|
|
69
|
+
const graph = await CodeGraph.init(runtimeRoot);
|
|
70
|
+
try {
|
|
71
|
+
const indexResult = await graph.indexAll();
|
|
72
|
+
if (!indexResult.success || graph.getIndexState() !== 'complete') {
|
|
73
|
+
const reason = indexResult.errors[0]?.message ?? 'unknown index failure';
|
|
74
|
+
throw new Error(`RELEASE_QUALITY_CONTEXT_INDEX_FAILED:${indexResult.filesErrored}:${reason}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
graph.close();
|
|
79
|
+
}
|
|
80
|
+
const dataSources = initializeRuntimeDataSources(runtimeRoot, runtimeContainer);
|
|
81
|
+
engines = await createEngines(runtimeRoot, { warmSymbolVectors: false, dataSources });
|
|
82
|
+
if (!engines.symbolEmbedder || !engines.symbolStore) {
|
|
83
|
+
throw new Error('RELEASE_QUALITY_CONTEXT_VECTOR_RUNTIME_UNAVAILABLE');
|
|
84
|
+
}
|
|
85
|
+
await engines.symbolEmbedder.buildAll();
|
|
86
|
+
if (!engines.symbolEmbedder.isBuilt()) {
|
|
87
|
+
throw new Error('RELEASE_QUALITY_CONTEXT_VECTOR_BUILD_INCOMPLETE');
|
|
88
|
+
}
|
|
89
|
+
contextEmbeddingProfile = engines.symbolStore.getProfile();
|
|
90
|
+
const contextNodes = target.input.context.evidence.flatMap(evidence => {
|
|
91
|
+
const nodes = engines.codegraph.getNodesInFile(evidence.path);
|
|
92
|
+
return nodes.filter(node => node.name === evidence.symbol && node.startLine === evidence.startLine);
|
|
93
|
+
});
|
|
94
|
+
if (contextNodes.length === 0)
|
|
95
|
+
throw new Error('RELEASE_QUALITY_CONTEXT_EVIDENCE_MISSING');
|
|
96
|
+
const eventId = `event:release-quality:${stableId(target.input.project.projectId)}`;
|
|
97
|
+
const createdAt = Math.max(MATERIALIZATION_TIME_FLOOR, MATERIALIZATION_TIME_FLOOR);
|
|
98
|
+
const temporalOlderEventId = `${eventId}:older`;
|
|
99
|
+
const temporalCurrentEventId = `${eventId}:current`;
|
|
100
|
+
await engines.memory.recordEvent({
|
|
101
|
+
id: temporalOlderEventId,
|
|
102
|
+
sessionId: target.input.memory.sessionId,
|
|
103
|
+
tool: 'UserPromptSubmit',
|
|
104
|
+
kind: 'user_message',
|
|
105
|
+
payload: { turnId: `turn:release-quality:${stableId(target.input.project.projectId)}` },
|
|
106
|
+
createdAt,
|
|
107
|
+
});
|
|
108
|
+
const olderMemory = await engines.memory.saveExplicitMemoryIntent(target.input.memory.temporal.olderContent, { actorId: target.input.memory.actorId, sessionId: target.input.memory.sessionId }, temporalOlderEventId);
|
|
109
|
+
await engines.memory.recordEvent({
|
|
110
|
+
id: temporalCurrentEventId,
|
|
111
|
+
sessionId: target.input.memory.sessionId,
|
|
112
|
+
tool: 'UserPromptSubmit',
|
|
113
|
+
kind: 'user_message',
|
|
114
|
+
payload: { turnId: `turn:release-quality:${stableId(target.input.project.projectId)}:current` },
|
|
115
|
+
createdAt: createdAt + 1_000,
|
|
116
|
+
});
|
|
117
|
+
const savedMemory = await engines.memory.saveExplicitMemoryIntent(target.input.memory.temporal.currentContent, {
|
|
118
|
+
actorId: target.input.memory.actorId,
|
|
119
|
+
sessionId: target.input.memory.sessionId,
|
|
120
|
+
supersedesEpisodeId: olderMemory.id,
|
|
121
|
+
}, temporalCurrentEventId);
|
|
122
|
+
if (olderMemory.type !== 'cold_episode' || savedMemory.type !== 'cold_episode') {
|
|
123
|
+
throw new Error('RELEASE_QUALITY_TEMPORAL_EPISODE_NOT_COLD');
|
|
124
|
+
}
|
|
125
|
+
await engines.knowledge.registerSource({
|
|
126
|
+
name: target.input.knowledge.sourceId,
|
|
127
|
+
pluginName: target.input.knowledge.pluginName,
|
|
128
|
+
urls: target.input.knowledge.documents.map(document => document.sourceUri),
|
|
129
|
+
version: target.input.knowledge.version,
|
|
130
|
+
}, createdAt);
|
|
131
|
+
const markdown = target.input.knowledge.documents.map(document => [
|
|
132
|
+
`# ${document.title}`,
|
|
133
|
+
`Source: ${document.sourceUri}`,
|
|
134
|
+
readFileSync(join(target.checkoutPath, document.path), 'utf8'),
|
|
135
|
+
].join('\n\n')).join('\n\n');
|
|
136
|
+
await engines.knowledge.ingestSourceMarkdown({
|
|
137
|
+
source: target.input.knowledge.sourceId,
|
|
138
|
+
title: target.input.knowledge.documents.map(document => document.title).join(' / '),
|
|
139
|
+
markdown,
|
|
140
|
+
sourceUri: target.input.knowledge.documents[0].sourceUri,
|
|
141
|
+
version: target.input.knowledge.version,
|
|
142
|
+
operationTimestamp: createdAt,
|
|
143
|
+
});
|
|
144
|
+
await engines.knowledge.backfillVectors({
|
|
145
|
+
source: target.input.knowledge.sourceId,
|
|
146
|
+
operationTimestamp: createdAt,
|
|
147
|
+
});
|
|
148
|
+
closeEngines(engines);
|
|
149
|
+
engines = undefined;
|
|
150
|
+
const preparation = await prepareEvaluationBundle({
|
|
151
|
+
projectId: target.input.project.projectId,
|
|
152
|
+
projectRoot: runtimeRoot,
|
|
153
|
+
outputPath: target.outputPath,
|
|
154
|
+
channels: {
|
|
155
|
+
context: {
|
|
156
|
+
databasePath: join(runtimeRoot, '.codegraph/codegraph.db'),
|
|
157
|
+
vectorDatabasePath: join(runtimeRoot, '.devflow/symbols-vec.db'),
|
|
158
|
+
},
|
|
159
|
+
memory: { databasePath: join(runtimeRoot, '.devflow/memory/memories.db') },
|
|
160
|
+
knowledge: {
|
|
161
|
+
databasePath: join(runtimeRoot, '.devflow/knowledge/knowledge.db'),
|
|
162
|
+
vectorPath: join(runtimeRoot, '.devflow/knowledge/assets'),
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
corpusPath: target.corpusPath,
|
|
166
|
+
});
|
|
167
|
+
const labelRefs = evidenceLabelRefs({
|
|
168
|
+
target,
|
|
169
|
+
runtimeRoot,
|
|
170
|
+
preparation,
|
|
171
|
+
contextNodes,
|
|
172
|
+
savedMemoryId: savedMemory.id,
|
|
173
|
+
olderMemoryId: olderMemory.id,
|
|
174
|
+
});
|
|
175
|
+
const labelPaths = writeLabelSets({
|
|
176
|
+
target,
|
|
177
|
+
preparation,
|
|
178
|
+
labelRefs: labelRefs.refs,
|
|
179
|
+
temporalRefs: labelRefs.temporalRefs,
|
|
180
|
+
runtimeContainer,
|
|
181
|
+
});
|
|
182
|
+
if (!contextEmbeddingProfile)
|
|
183
|
+
throw new Error('RELEASE_QUALITY_CONTEXT_PROFILE_MISSING');
|
|
184
|
+
const result = finalizeEvaluationBundle({
|
|
185
|
+
preparationPath: preparation.path,
|
|
186
|
+
labelPaths,
|
|
187
|
+
builderIdentity,
|
|
188
|
+
profiles: {
|
|
189
|
+
context: 'codegraph:1.1.1',
|
|
190
|
+
memory: 'explicit-episode:v1',
|
|
191
|
+
knowledge: 'compiled-hybrid:v1',
|
|
192
|
+
embeddingProfiles: { code_retrieval: contextEmbeddingProfile },
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
return { ...result, inventories: preparation.inventories, labelRefs: labelRefs.refs };
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
if (engines)
|
|
199
|
+
closeEngines(engines);
|
|
200
|
+
removeReleaseQualityOutput(target.outputPath);
|
|
201
|
+
throw error;
|
|
202
|
+
}
|
|
203
|
+
finally {
|
|
204
|
+
rmSync(runtimeContainer, { recursive: true, force: true });
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function initializeRuntimeDataSources(runtimeRoot, runtimeContainer) {
|
|
208
|
+
const sources = {
|
|
209
|
+
sourceRoot: runtimeRoot,
|
|
210
|
+
codegraphDatabasePath: join(runtimeRoot, '.codegraph/codegraph.db'),
|
|
211
|
+
contextVectorDatabasePath: join(runtimeRoot, '.devflow/symbols-vec.db'),
|
|
212
|
+
memoryDatabasePath: join(runtimeRoot, '.devflow/memory/memories.db'),
|
|
213
|
+
knowledgeDatabasePath: join(runtimeRoot, '.devflow/knowledge/knowledge.db'),
|
|
214
|
+
knowledgeVectorPath: join(runtimeRoot, '.devflow/knowledge/assets'),
|
|
215
|
+
operationalDatabasePath: join(runtimeContainer, 'operational/devflow.db'),
|
|
216
|
+
};
|
|
217
|
+
for (const path of [
|
|
218
|
+
sources.contextVectorDatabasePath,
|
|
219
|
+
sources.memoryDatabasePath,
|
|
220
|
+
sources.knowledgeDatabasePath,
|
|
221
|
+
]) {
|
|
222
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
223
|
+
new Database(path).close();
|
|
224
|
+
}
|
|
225
|
+
mkdirSync(sources.knowledgeVectorPath, { recursive: true });
|
|
226
|
+
return sources;
|
|
227
|
+
}
|
|
228
|
+
function evidenceLabelRefs(input) {
|
|
229
|
+
const context = input.contextNodes.map(node => evaluationContextStableRef({
|
|
230
|
+
projectSnapshotId: input.preparation.projectSnapshotId,
|
|
231
|
+
normalizedPath: node.filePath,
|
|
232
|
+
symbolId: node.id,
|
|
233
|
+
range: [node.startLine, node.endLine],
|
|
234
|
+
}));
|
|
235
|
+
const memoryDatabase = new Database(join(input.runtimeRoot, '.devflow/memory/memories.db'), {
|
|
236
|
+
readonly: true,
|
|
237
|
+
fileMustExist: true,
|
|
238
|
+
});
|
|
239
|
+
let memory;
|
|
240
|
+
let olderMemory;
|
|
241
|
+
try {
|
|
242
|
+
const fact = memoryDatabase.prepare('SELECT version FROM memories WHERE id = ?').get(input.savedMemoryId);
|
|
243
|
+
if (fact) {
|
|
244
|
+
memory = evaluationMemoryStableRef({
|
|
245
|
+
channelSnapshotHash: input.preparation.channelSnapshotHashes.memory,
|
|
246
|
+
kind: 'fact',
|
|
247
|
+
immutableId: input.savedMemoryId,
|
|
248
|
+
version: fact.version,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
const episode = memoryDatabase.prepare(`SELECT episode_hash FROM memory_episodes_v1
|
|
253
|
+
WHERE episode_id = ?`).get(input.savedMemoryId);
|
|
254
|
+
if (!episode)
|
|
255
|
+
throw new Error('RELEASE_QUALITY_MEMORY_EVIDENCE_MISSING');
|
|
256
|
+
memory = evaluationMemoryStableRef({
|
|
257
|
+
channelSnapshotHash: input.preparation.channelSnapshotHashes.memory,
|
|
258
|
+
kind: 'episode',
|
|
259
|
+
immutableId: input.savedMemoryId,
|
|
260
|
+
version: episode.episode_hash,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
const olderEpisode = memoryDatabase.prepare(`SELECT episode_hash FROM memory_episodes_v1
|
|
264
|
+
WHERE episode_id = ?`).get(input.olderMemoryId);
|
|
265
|
+
if (!olderEpisode)
|
|
266
|
+
throw new Error('RELEASE_QUALITY_TEMPORAL_OLDER_EPISODE_MISSING');
|
|
267
|
+
olderMemory = evaluationMemoryStableRef({
|
|
268
|
+
channelSnapshotHash: input.preparation.channelSnapshotHashes.memory,
|
|
269
|
+
kind: 'episode', immutableId: input.olderMemoryId, version: olderEpisode.episode_hash,
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
finally {
|
|
273
|
+
memoryDatabase.close();
|
|
274
|
+
}
|
|
275
|
+
const knowledgeDatabase = new Database(join(input.runtimeRoot, '.devflow/knowledge/knowledge.db'), {
|
|
276
|
+
readonly: true,
|
|
277
|
+
fileMustExist: true,
|
|
278
|
+
});
|
|
279
|
+
let knowledge;
|
|
280
|
+
try {
|
|
281
|
+
const rows = knowledgeDatabase.prepare(`SELECT c.id, c.content_hash, d.source, d.version
|
|
282
|
+
FROM knowledge_chunks c JOIN knowledge_docs d ON d.id = c.doc_id
|
|
283
|
+
WHERE d.status = 'active' AND d.source = ? AND d.version = ? AND instr(c.content, ?) > 0
|
|
284
|
+
ORDER BY c.id`).all(input.target.input.knowledge.sourceId, input.target.input.knowledge.version, normalizedKnowledgeGoldText(input.target.input.knowledge.goldText));
|
|
285
|
+
if (rows.length === 0)
|
|
286
|
+
throw new Error('RELEASE_QUALITY_KNOWLEDGE_EVIDENCE_MISSING');
|
|
287
|
+
knowledge = rows.map(row => evaluationKnowledgeStableRef({
|
|
288
|
+
sourceId: row.source,
|
|
289
|
+
sourceVersion: row.version,
|
|
290
|
+
contentHash: row.content_hash,
|
|
291
|
+
chunkId: row.id,
|
|
292
|
+
}));
|
|
293
|
+
}
|
|
294
|
+
finally {
|
|
295
|
+
knowledgeDatabase.close();
|
|
296
|
+
}
|
|
297
|
+
const refs = { context: unique(context), memory: [memory], knowledge: unique(knowledge) };
|
|
298
|
+
for (const channel of ['context', 'memory', 'knowledge']) {
|
|
299
|
+
const inventory = new Set(input.preparation.inventories[channel]);
|
|
300
|
+
if (!refs[channel].every(ref => inventory.has(ref))) {
|
|
301
|
+
throw new Error(`RELEASE_QUALITY_LABEL_REF_MISSING:${channel}`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (!input.preparation.inventories.memory.includes(olderMemory)) {
|
|
305
|
+
throw new Error('RELEASE_QUALITY_LABEL_REF_MISSING:memory:older');
|
|
306
|
+
}
|
|
307
|
+
return { refs, temporalRefs: { current: memory, older: olderMemory } };
|
|
308
|
+
}
|
|
309
|
+
export function normalizedKnowledgeGoldText(value) {
|
|
310
|
+
return value.normalize('NFKC');
|
|
311
|
+
}
|
|
312
|
+
function writeLabelSets(input) {
|
|
313
|
+
const corpus = readJson(input.target.corpusPath);
|
|
314
|
+
const paths = {};
|
|
315
|
+
const labelledAt = new Date(MATERIALIZATION_TIME_FLOOR).toISOString();
|
|
316
|
+
for (const channel of ['context', 'memory', 'knowledge']) {
|
|
317
|
+
const labels = {
|
|
318
|
+
schemaVersion: 'devflow.evaluation-labels.v1',
|
|
319
|
+
projectSnapshotId: input.preparation.projectSnapshotId,
|
|
320
|
+
channel,
|
|
321
|
+
channelSnapshotHash: input.preparation.channelSnapshotHashes[channel],
|
|
322
|
+
datasetHash: input.preparation.corpusHash,
|
|
323
|
+
labels: corpus.cases.filter(item => item.channel === channel).map(item => ({
|
|
324
|
+
caseId: item.caseId,
|
|
325
|
+
goldSets: [input.labelRefs[channel]],
|
|
326
|
+
forbiddenRefs: channel === 'memory' && item.caseClass === 'lifecycle'
|
|
327
|
+
? [input.temporalRefs.older] : [],
|
|
328
|
+
reviewer: 'devflow-release-quality-source-review',
|
|
329
|
+
labelledAt,
|
|
330
|
+
sourceEvidence: channel === 'context'
|
|
331
|
+
? input.target.input.context.evidence.map(evidence => `${evidence.path}#L${evidence.startLine}:${evidence.symbol}`)
|
|
332
|
+
: channel === 'memory'
|
|
333
|
+
? input.target.input.memory.sourceEvidence.map(evidence => evidence.path)
|
|
334
|
+
: input.target.input.knowledge.documents.map(document => document.sourceUri),
|
|
335
|
+
})),
|
|
336
|
+
};
|
|
337
|
+
paths[channel] = join(input.runtimeContainer, `${channel}-labels.json`);
|
|
338
|
+
writeJson(paths[channel], labels);
|
|
339
|
+
}
|
|
340
|
+
return paths;
|
|
341
|
+
}
|
|
342
|
+
function assertPinnedCheckout(target) {
|
|
343
|
+
if (target.input.project.sourceSnapshot) {
|
|
344
|
+
if (buildSourceSnapshot(target.checkoutPath).manifestSha256 !== target.input.project.sourceSnapshot.manifestSha256)
|
|
345
|
+
throw new Error('RELEASE_SOURCE_SNAPSHOT_MISMATCH');
|
|
346
|
+
}
|
|
347
|
+
else if (git(target.checkoutPath, ['rev-parse', 'HEAD']) !== target.input.project.commit
|
|
348
|
+
|| git(target.checkoutPath, ['rev-parse', 'HEAD^{tree}']) !== target.input.project.tree
|
|
349
|
+
|| git(target.checkoutPath, ['status', '--porcelain', '--untracked-files=all']) !== '') {
|
|
350
|
+
throw new Error('RELEASE_QUALITY_CHECKOUT_IDENTITY_MISMATCH');
|
|
351
|
+
}
|
|
352
|
+
for (const evidence of [
|
|
353
|
+
...target.input.context.evidence,
|
|
354
|
+
...target.input.memory.sourceEvidence,
|
|
355
|
+
...target.input.knowledge.documents,
|
|
356
|
+
]) {
|
|
357
|
+
if (sha256(join(target.checkoutPath, evidence.path)) !== evidence.sha256) {
|
|
358
|
+
throw new Error(`RELEASE_QUALITY_EVIDENCE_HASH_MISMATCH:${evidence.path}`);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
function closeEngines(engines) {
|
|
363
|
+
engines.context.close();
|
|
364
|
+
engines.memory.close();
|
|
365
|
+
engines.knowledge.close();
|
|
366
|
+
engines.telemetry.close();
|
|
367
|
+
engines.codegraph.close();
|
|
368
|
+
engines.data.close?.();
|
|
369
|
+
}
|
|
370
|
+
function git(root, args) {
|
|
371
|
+
return execFileSync('git', ['-C', root, ...args], { encoding: 'utf8' }).trim();
|
|
372
|
+
}
|
|
373
|
+
function sha256(path) {
|
|
374
|
+
return createHash('sha256').update(readFileSync(path)).digest('hex');
|
|
375
|
+
}
|
|
376
|
+
function stableId(value) {
|
|
377
|
+
return createHash('sha256').update(value).digest('hex').slice(0, 16);
|
|
378
|
+
}
|
|
379
|
+
function unique(values) {
|
|
380
|
+
return [...new Set(values)].sort();
|
|
381
|
+
}
|
|
382
|
+
function relativePath(value) {
|
|
383
|
+
if (!value || isAbsolute(value) || value === '..' || value.startsWith('../')) {
|
|
384
|
+
throw new Error('RELEASE_QUALITY_PATH_INVALID');
|
|
385
|
+
}
|
|
386
|
+
return value;
|
|
387
|
+
}
|
|
388
|
+
function readJson(path) {
|
|
389
|
+
return JSON.parse(readFileSync(path, 'utf8'));
|
|
390
|
+
}
|
|
391
|
+
function writeJson(path, value) {
|
|
392
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
393
|
+
writeFileSync(path, `${stableRuntimeJson(value)}\n`);
|
|
394
|
+
}
|
|
395
|
+
//# sourceMappingURL=release-quality-bundle-materializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-quality-bundle-materializer.js","sourceRoot":"","sources":["../src/release-quality-bundle-materializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { EvidenceQualityMetric } from './evidence-quality-metrics.js';
|
|
2
|
+
import type { UnifiedChannel } from './unified-runtime-corpus.js';
|
|
3
|
+
export interface ReleaseQualityComparisonIdentityV1 {
|
|
4
|
+
schemaVersion: 'devflow.release-quality-comparison-identity.v1';
|
|
5
|
+
bundleId: string;
|
|
6
|
+
corpusHash: string;
|
|
7
|
+
labelHashes: Record<UnifiedChannel, string>;
|
|
8
|
+
channelSnapshotHashes: Record<UnifiedChannel, string>;
|
|
9
|
+
indexGenerationHash: string;
|
|
10
|
+
providerModel: {
|
|
11
|
+
provider: string;
|
|
12
|
+
model: string;
|
|
13
|
+
};
|
|
14
|
+
readerProfileHash: string;
|
|
15
|
+
budgetHash: string;
|
|
16
|
+
candidateTopK: 20;
|
|
17
|
+
selectedTopK: 5;
|
|
18
|
+
}
|
|
19
|
+
export type MetricComparisonStatus = 'improved' | 'regressed' | 'unchanged' | 'newly_measurable' | 'not_comparable';
|
|
20
|
+
export interface QualityMetricSet {
|
|
21
|
+
identity: ReleaseQualityComparisonIdentityV1;
|
|
22
|
+
metrics: Record<string, EvidenceQualityMetric>;
|
|
23
|
+
}
|
|
24
|
+
export declare function compareMetric(baseline: EvidenceQualityMetric, candidate: EvidenceQualityMetric): {
|
|
25
|
+
status: MetricComparisonStatus;
|
|
26
|
+
};
|
|
27
|
+
export declare function compareQualityMetrics(baseline: QualityMetricSet, candidate: QualityMetricSet): {
|
|
28
|
+
status: MetricComparisonStatus;
|
|
29
|
+
reasonCodes?: string[];
|
|
30
|
+
metrics?: Record<string, {
|
|
31
|
+
status: MetricComparisonStatus;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=release-quality-comparison.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-quality-comparison.d.ts","sourceRoot":"","sources":["../src/release-quality-comparison.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,WAAW,kCAAkC;IACjD,aAAa,EAAE,gDAAgD,CAAC;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5C,qBAAqB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACtD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,EAAE,CAAC;IAClB,YAAY,EAAE,CAAC,CAAC;CACjB;AAED,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,WAAW,GACX,WAAW,GACX,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kCAAkC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAChD;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,qBAAqB,EAC/B,SAAS,EAAE,qBAAqB,GAC/B;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAQpC;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,gBAAgB,GAC1B;IACD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,sBAAsB,CAAA;KAAE,CAAC,CAAC;CAC9D,CAmBA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { stableRuntimeHash } from '@devflow-tools/sdk';
|
|
2
|
+
export function compareMetric(baseline, candidate) {
|
|
3
|
+
if (baseline.denominator === 0 && candidate.denominator === 0)
|
|
4
|
+
return { status: 'not_comparable' };
|
|
5
|
+
if (baseline.denominator === 0)
|
|
6
|
+
return { status: 'newly_measurable' };
|
|
7
|
+
if (candidate.denominator === 0)
|
|
8
|
+
return { status: 'regressed' };
|
|
9
|
+
const candidateScaled = BigInt(candidate.numerator) * BigInt(baseline.denominator);
|
|
10
|
+
const baselineScaled = BigInt(baseline.numerator) * BigInt(candidate.denominator);
|
|
11
|
+
if (candidateScaled === baselineScaled)
|
|
12
|
+
return { status: 'unchanged' };
|
|
13
|
+
return { status: candidateScaled > baselineScaled ? 'improved' : 'regressed' };
|
|
14
|
+
}
|
|
15
|
+
export function compareQualityMetrics(baseline, candidate) {
|
|
16
|
+
const reasonCodes = comparisonIdentityMismatches(baseline.identity, candidate.identity);
|
|
17
|
+
if (reasonCodes.length > 0)
|
|
18
|
+
return { status: 'not_comparable', reasonCodes };
|
|
19
|
+
const names = Object.keys(baseline.metrics).sort();
|
|
20
|
+
if (names.length !== Object.keys(candidate.metrics).length
|
|
21
|
+
|| names.some(name => candidate.metrics[name] === undefined)) {
|
|
22
|
+
return { status: 'not_comparable', reasonCodes: ['metric_set_mismatch'] };
|
|
23
|
+
}
|
|
24
|
+
const metrics = Object.fromEntries(names.map(name => [
|
|
25
|
+
name,
|
|
26
|
+
compareMetric(baseline.metrics[name], candidate.metrics[name]),
|
|
27
|
+
]));
|
|
28
|
+
const statuses = Object.values(metrics).map(metric => metric.status);
|
|
29
|
+
const status = statuses.includes('not_comparable') ? 'not_comparable'
|
|
30
|
+
: statuses.includes('regressed') ? 'regressed'
|
|
31
|
+
: statuses.includes('newly_measurable') ? 'newly_measurable'
|
|
32
|
+
: statuses.includes('improved') ? 'improved'
|
|
33
|
+
: statuses.every(item => item === 'unchanged') ? 'unchanged' : 'not_comparable';
|
|
34
|
+
return { status, metrics };
|
|
35
|
+
}
|
|
36
|
+
function comparisonIdentityMismatches(baseline, candidate) {
|
|
37
|
+
const mismatches = [];
|
|
38
|
+
if (baseline.schemaVersion !== candidate.schemaVersion)
|
|
39
|
+
mismatches.push('comparison_schema_mismatch');
|
|
40
|
+
if (baseline.bundleId !== candidate.bundleId)
|
|
41
|
+
mismatches.push('bundle_mismatch');
|
|
42
|
+
if (baseline.corpusHash !== candidate.corpusHash)
|
|
43
|
+
mismatches.push('corpus_mismatch');
|
|
44
|
+
if (stableRuntimeHash(baseline.labelHashes) !== stableRuntimeHash(candidate.labelHashes))
|
|
45
|
+
mismatches.push('label_hash_mismatch');
|
|
46
|
+
if (stableRuntimeHash(baseline.channelSnapshotHashes) !== stableRuntimeHash(candidate.channelSnapshotHashes))
|
|
47
|
+
mismatches.push('channel_snapshot_mismatch');
|
|
48
|
+
if (baseline.indexGenerationHash !== candidate.indexGenerationHash)
|
|
49
|
+
mismatches.push('index_generation_mismatch');
|
|
50
|
+
if (stableRuntimeHash(baseline.providerModel) !== stableRuntimeHash(candidate.providerModel))
|
|
51
|
+
mismatches.push('provider_model_mismatch');
|
|
52
|
+
if (baseline.readerProfileHash !== candidate.readerProfileHash)
|
|
53
|
+
mismatches.push('reader_profile_mismatch');
|
|
54
|
+
if (baseline.budgetHash !== candidate.budgetHash)
|
|
55
|
+
mismatches.push('budget_mismatch');
|
|
56
|
+
if (baseline.candidateTopK !== candidate.candidateTopK || baseline.selectedTopK !== candidate.selectedTopK)
|
|
57
|
+
mismatches.push('top_k_mismatch');
|
|
58
|
+
return mismatches;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=release-quality-comparison.js.map
|