@bradtaylorsf/alpha-loop 1.9.1 → 1.10.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/README.md +10 -1
- package/dist/cli.js +15 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/eval.d.ts +13 -0
- package/dist/commands/eval.js +220 -3
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/init.js +32 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/review.js +36 -1
- package/dist/commands/review.js.map +1 -1
- package/dist/lib/config.d.ts +8 -0
- package/dist/lib/config.js +18 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/eval-export.d.ts +26 -0
- package/dist/lib/eval-export.js +200 -0
- package/dist/lib/eval-export.js.map +1 -0
- package/dist/lib/eval-runner.d.ts +11 -0
- package/dist/lib/eval-runner.js +122 -10
- package/dist/lib/eval-runner.js.map +1 -1
- package/dist/lib/eval.d.ts +11 -0
- package/dist/lib/eval.js +34 -4
- package/dist/lib/eval.js.map +1 -1
- package/dist/lib/github.js +20 -12
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/pipeline.d.ts +4 -0
- package/dist/lib/pipeline.js +54 -8
- package/dist/lib/pipeline.js.map +1 -1
- package/dist/lib/rate-limit.js +12 -5
- package/dist/lib/rate-limit.js.map +1 -1
- package/dist/lib/score.js +2 -1
- package/dist/lib/score.js.map +1 -1
- package/dist/lib/templates.d.ts +11 -0
- package/dist/lib/templates.js +27 -0
- package/dist/lib/templates.js.map +1 -1
- package/dist/lib/verify.d.ts +16 -0
- package/dist/lib/verify.js +49 -1
- package/dist/lib/verify.js.map +1 -1
- package/package.json +1 -1
- package/templates/evals/cases/step/review/006-missing-di-injection/checks.yaml +10 -0
- package/templates/evals/cases/step/review/006-missing-di-injection/input.md +50 -0
- package/templates/evals/cases/step/review/006-missing-di-injection/metadata.yaml +10 -0
- package/templates/evals/cases/step/review/007-silent-none-guard/checks.yaml +12 -0
- package/templates/evals/cases/step/review/007-silent-none-guard/input.md +53 -0
- package/templates/evals/cases/step/review/007-silent-none-guard/metadata.yaml +10 -0
- package/templates/evals/cases/step/review/008-route-shadowing/checks.yaml +11 -0
- package/templates/evals/cases/step/review/008-route-shadowing/input.md +29 -0
- package/templates/evals/cases/step/review/008-route-shadowing/metadata.yaml +10 -0
- package/templates/evals/cases/step/review/009-unthreaded-dependency/checks.yaml +11 -0
- package/templates/evals/cases/step/review/009-unthreaded-dependency/input.md +57 -0
- package/templates/evals/cases/step/review/009-unthreaded-dependency/metadata.yaml +10 -0
- package/templates/evals/cases/step/review/010-fabricated-metrics/checks.yaml +12 -0
- package/templates/evals/cases/step/review/010-fabricated-metrics/input.md +52 -0
- package/templates/evals/cases/step/review/010-fabricated-metrics/metadata.yaml +10 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/lib/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAmB,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAWlC,IAAI,cAAc,GAAmB;IACnC,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,IAAI,QAAQ,GAAG,EAAE,CAAC;AAElB,wEAAwE;AACxE,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,qDAAqD;AACrD,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/lib/rate-limit.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/score.js
CHANGED
|
@@ -326,6 +326,7 @@ export function formatScoreEntry(entry) {
|
|
|
326
326
|
const passing = entry.cases.filter((c) => c.passed).length;
|
|
327
327
|
const total = entry.cases.length;
|
|
328
328
|
const date = entry.timestamp.split('T')[0];
|
|
329
|
-
|
|
329
|
+
const repoTag = entry.config?.usingRepoPrompts ? ' [repo]' : '';
|
|
330
|
+
return `${date} score=${entry.composite} pass=${passing}/${total} cost=$${entry.totalCost.toFixed(2)} config=${entry.configHash}${repoTag}`;
|
|
330
331
|
}
|
|
331
332
|
//# sourceMappingURL=score.js.map
|
package/dist/lib/score.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/lib/score.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/lib/score.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsBzC,MAAM,WAAW,GAAG,cAAc,CAAC;AAEnC,6CAA6C;AAC7C,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/C,MAAM,WAAW,GAAG,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;IAEjD,MAAM,KAAK,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,GAAG,IAAI,GAAG,WAAW,CAAC;IACrF,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAA+B;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,kEAAkE;AAClE,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACrE,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAE,GAA+B,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,KAAiB;IAC7D,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjF,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqE,CAAC;IAE7F,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;SACtD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,OAAO,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA+B;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjC,wBAAwB;IACxB,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACjE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,CAAC,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAmC,CAAC,EAAE,CAAC;YAC7E,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,IAA+B,CAAC;gBAC1C,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC3C,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED,8EAA8E;AAC9E,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,YAAY,CAAC;IACvD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7C,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IACtD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,iCAAiC;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhC,qCAAqC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAG,QAAQ,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtF,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;YACrD,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAG,QAAQ,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtF,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;YACrD,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAuB,EACvB,iBAA0B;IAE1B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mCAAmC,CAAC;IAEtE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,iCAAiC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IACxE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAE1C,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9D,oBAAoB;IACpB,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,GAAG,GAAG,KAAK,KAAK,IAAI,CAAC;QAEzB,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,UAAU,GAAG,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;gBAChE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC;oBACtB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;oBAC9C,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,KAAK,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClE,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,SAAS;IACT,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3G,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAE1C,SAAS;IACT,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,qDAAqD,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,4CAA4C;IAC5C,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,iBAAiB,CAAC,CAAC;QACzE,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9F,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7F,MAAM,GAAG,GAAG,kBAAkB,IAAI,CAAC,WAAW,OAAO,SAAS,iBAAiB,QAAQ,WAAW,CAAC;YACnG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAE1C,mBAAmB;IACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,KAAK,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAClE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,OAAO,IAAI,OAAO,GAAG,KAAK,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;IACpG,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AA0BD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAY;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,OAAO,GAAG,CAAC,GAAW,EAA0B,EAAE;QACtD,uBAAuB;QACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACpD,OAAO,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,0BAA0B;QAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhC,4BAA4B;IAC5B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACzD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACvD,OAAO;YACL,MAAM;YACN,UAAU,EAAE,EAAE,EAAE,MAAM,IAAI,IAAI;YAC9B,UAAU,EAAE,EAAE,EAAE,MAAM,IAAI,IAAI;YAC9B,SAAS,EAAE,EAAE,EAAE,aAAa,IAAI,IAAI;YACpC,SAAS,EAAE,EAAE,EAAE,aAAa,IAAI,IAAI;YACpC,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,IAAI,CAAC,CAAC;SAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,UAAU,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC3C,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAC1C,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,GAAG,IAAI,WAAW,KAAK,CAAC,SAAS,UAAU,OAAO,IAAI,KAAK,WAAW,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,UAAU,GAAG,OAAO,EAAE,CAAC;AAClJ,CAAC"}
|
package/dist/lib/templates.d.ts
CHANGED
|
@@ -9,8 +9,19 @@ export type SkillDiff = {
|
|
|
9
9
|
distContent: string;
|
|
10
10
|
projectContent?: string;
|
|
11
11
|
};
|
|
12
|
+
export type AgentDiff = {
|
|
13
|
+
name: string;
|
|
14
|
+
status: 'new' | 'updated';
|
|
15
|
+
distContent: string;
|
|
16
|
+
projectContent?: string;
|
|
17
|
+
};
|
|
12
18
|
/**
|
|
13
19
|
* Compare project skills against distribution templates.
|
|
14
20
|
* Returns skills that are new or have changed content.
|
|
15
21
|
*/
|
|
16
22
|
export declare function diffSkills(distSkillsDir: string, projectSkillsDir: string): SkillDiff[];
|
|
23
|
+
/**
|
|
24
|
+
* Compare project agent prompts against distribution templates.
|
|
25
|
+
* Returns agents that are new or have changed content.
|
|
26
|
+
*/
|
|
27
|
+
export declare function diffAgents(distAgentsDir: string, projectAgentsDir: string): AgentDiff[];
|
package/dist/lib/templates.js
CHANGED
|
@@ -56,4 +56,31 @@ export function diffSkills(distSkillsDir, projectSkillsDir) {
|
|
|
56
56
|
}
|
|
57
57
|
return diffs;
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Compare project agent prompts against distribution templates.
|
|
61
|
+
* Returns agents that are new or have changed content.
|
|
62
|
+
*/
|
|
63
|
+
export function diffAgents(distAgentsDir, projectAgentsDir) {
|
|
64
|
+
if (!existsSync(distAgentsDir))
|
|
65
|
+
return [];
|
|
66
|
+
const diffs = [];
|
|
67
|
+
const distFiles = readdirSync(distAgentsDir, { withFileTypes: true })
|
|
68
|
+
.filter((d) => d.isFile() && d.name.endsWith('.md'));
|
|
69
|
+
for (const entry of distFiles) {
|
|
70
|
+
const distFile = join(distAgentsDir, entry.name);
|
|
71
|
+
const distContent = readFileSync(distFile, 'utf-8');
|
|
72
|
+
const name = entry.name.replace(/\.md$/, '');
|
|
73
|
+
const projectFile = join(projectAgentsDir, entry.name);
|
|
74
|
+
if (!existsSync(projectFile)) {
|
|
75
|
+
diffs.push({ name, status: 'new', distContent });
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
const projectContent = readFileSync(projectFile, 'utf-8');
|
|
79
|
+
if (projectContent !== distContent) {
|
|
80
|
+
diffs.push({ name, status: 'updated', distContent, projectContent });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return diffs;
|
|
85
|
+
}
|
|
59
86
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,4BAA4B;IAC1C,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/verify.d.ts
CHANGED
|
@@ -4,10 +4,22 @@ export type VerifyResult = {
|
|
|
4
4
|
skipped: boolean;
|
|
5
5
|
output: string;
|
|
6
6
|
};
|
|
7
|
+
/** Verification method — how to validate the implementation. */
|
|
8
|
+
export type VerifyMethod = 'playwright' | 'cli' | 'api' | 'boot' | 'script';
|
|
7
9
|
/**
|
|
8
10
|
* Check if a diff only touches non-UI files.
|
|
9
11
|
*/
|
|
10
12
|
export declare function isNonUiChange(diffStat: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Run a script-based verification — executes a shell command and checks the exit code.
|
|
15
|
+
* Useful for CLI verification, boot tests, and custom validation scripts.
|
|
16
|
+
*/
|
|
17
|
+
export declare function runScriptVerify(command: string, cwd: string, timeout?: number): VerifyResult;
|
|
18
|
+
/**
|
|
19
|
+
* Run a boot verification — tries to import/run the app entry point and checks for crashes.
|
|
20
|
+
* Useful for verifying that service containers resolve all dependencies.
|
|
21
|
+
*/
|
|
22
|
+
export declare function runBootVerify(entryPoint: string, cwd: string, timeout?: number): VerifyResult;
|
|
11
23
|
/**
|
|
12
24
|
* Run live verification using playwright-cli.
|
|
13
25
|
* The agent starts the dev server, tests the app, and reports results.
|
|
@@ -21,4 +33,8 @@ export declare function runVerify(options: {
|
|
|
21
33
|
config: Config;
|
|
22
34
|
sessionDir: string;
|
|
23
35
|
verifyInstructions?: string;
|
|
36
|
+
/** Verification method. Defaults to 'playwright' for UI changes. */
|
|
37
|
+
verifyMethod?: VerifyMethod;
|
|
38
|
+
/** Shell command for 'script' method verification. */
|
|
39
|
+
verifyCommand?: string;
|
|
24
40
|
}): Promise<VerifyResult>;
|
package/dist/lib/verify.js
CHANGED
|
@@ -37,12 +37,46 @@ export function isNonUiChange(diffStat) {
|
|
|
37
37
|
}
|
|
38
38
|
return true;
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Run a script-based verification — executes a shell command and checks the exit code.
|
|
42
|
+
* Useful for CLI verification, boot tests, and custom validation scripts.
|
|
43
|
+
*/
|
|
44
|
+
export function runScriptVerify(command, cwd, timeout = 60_000) {
|
|
45
|
+
log.info(`Running script verification: ${command}`);
|
|
46
|
+
const result = exec(command, { cwd, timeout });
|
|
47
|
+
if (result.exitCode === 0) {
|
|
48
|
+
log.success('Script verification PASSED');
|
|
49
|
+
return { passed: true, skipped: false, output: result.stdout + '\n' + result.stderr };
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
log.error('Script verification FAILED');
|
|
53
|
+
return { passed: false, skipped: false, output: result.stdout + '\n' + result.stderr };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Run a boot verification — tries to import/run the app entry point and checks for crashes.
|
|
58
|
+
* Useful for verifying that service containers resolve all dependencies.
|
|
59
|
+
*/
|
|
60
|
+
export function runBootVerify(entryPoint, cwd, timeout = 30_000) {
|
|
61
|
+
log.info(`Running boot verification: ${entryPoint}`);
|
|
62
|
+
// Use node to import the entry point and check for initialization errors
|
|
63
|
+
const command = `node -e "import('${entryPoint.replace(/'/g, "\\'")}')"`;
|
|
64
|
+
const result = exec(command, { cwd, timeout });
|
|
65
|
+
if (result.exitCode === 0) {
|
|
66
|
+
log.success('Boot verification PASSED');
|
|
67
|
+
return { passed: true, skipped: false, output: result.stdout + '\n' + result.stderr };
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
log.error('Boot verification FAILED');
|
|
71
|
+
return { passed: false, skipped: false, output: result.stdout + '\n' + result.stderr };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
40
74
|
/**
|
|
41
75
|
* Run live verification using playwright-cli.
|
|
42
76
|
* The agent starts the dev server, tests the app, and reports results.
|
|
43
77
|
*/
|
|
44
78
|
export async function runVerify(options) {
|
|
45
|
-
const { worktree, logFile, issueNum, title, body, config, sessionDir, verifyInstructions } = options;
|
|
79
|
+
const { worktree, logFile, issueNum, title, body, config, sessionDir, verifyInstructions, verifyMethod, verifyCommand } = options;
|
|
46
80
|
if (config.skipVerify) {
|
|
47
81
|
log.info('Verification skipped (skipVerify=true)');
|
|
48
82
|
return { passed: true, skipped: true, output: 'Verification skipped' };
|
|
@@ -51,6 +85,20 @@ export async function runVerify(options) {
|
|
|
51
85
|
log.dry('Would run live verification');
|
|
52
86
|
return { passed: true, skipped: true, output: 'Verification skipped (dry run)' };
|
|
53
87
|
}
|
|
88
|
+
// Handle non-playwright verification methods
|
|
89
|
+
const method = verifyMethod ?? 'playwright';
|
|
90
|
+
if (method !== 'playwright') {
|
|
91
|
+
if (!verifyCommand) {
|
|
92
|
+
log.warn(`Verification method "${method}" requires a command but none was provided — skipping`);
|
|
93
|
+
return { passed: true, skipped: true, output: `Verification skipped (${method} method has no command)` };
|
|
94
|
+
}
|
|
95
|
+
if (method === 'boot') {
|
|
96
|
+
return runBootVerify(verifyCommand, worktree);
|
|
97
|
+
}
|
|
98
|
+
// script, cli, and api all run as shell commands
|
|
99
|
+
return runScriptVerify(verifyCommand, worktree);
|
|
100
|
+
}
|
|
101
|
+
// Playwright path — check prerequisites
|
|
54
102
|
// Check if playwright-cli is available
|
|
55
103
|
const whichResult = exec('which playwright-cli');
|
|
56
104
|
if (whichResult.exitCode !== 0) {
|
package/dist/lib/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/lib/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/lib/verify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
- type: llm_judge
|
|
2
|
+
prompt: |
|
|
3
|
+
The diff creates ArtifactRepository and adds it as an optional parameter to
|
|
4
|
+
BuildService. But in bootstrap.ts, artifactRepo is created and NEVER passed
|
|
5
|
+
to BuildService. The None guard (if this.artifactRepo) silently hides the
|
|
6
|
+
missing injection. The review MUST flag this as a critical wiring issue.
|
|
7
|
+
rubric: |
|
|
8
|
+
Score 1.0 if the review identifies that artifactRepo is not passed to BuildService in bootstrap.
|
|
9
|
+
Score 0.5 if the review mentions missing dependency injection but doesn't identify the specific location.
|
|
10
|
+
Score 0.0 if the review misses the wiring issue entirely.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
## Issue: Add ArtifactRepository to store build artifacts
|
|
2
|
+
|
|
3
|
+
### Diff
|
|
4
|
+
|
|
5
|
+
```diff
|
|
6
|
+
+++ b/src/services/artifact-repo.ts
|
|
7
|
+
@@ -0,0 +1,25 @@
|
|
8
|
+
+export class ArtifactRepository {
|
|
9
|
+
+ constructor(private db: Database) {}
|
|
10
|
+
+
|
|
11
|
+
+ async save(artifact: Artifact): Promise<void> {
|
|
12
|
+
+ await this.db.insert('artifacts', artifact);
|
|
13
|
+
+ }
|
|
14
|
+
+
|
|
15
|
+
+ async findById(id: string): Promise<Artifact | null> {
|
|
16
|
+
+ return this.db.query('artifacts', { id });
|
|
17
|
+
+ }
|
|
18
|
+
+}
|
|
19
|
+
|
|
20
|
+
+++ b/src/services/build-service.ts
|
|
21
|
+
@@ -5,8 +5,12 @@
|
|
22
|
+
export class BuildService {
|
|
23
|
+
- constructor(private runner: BuildRunner) {}
|
|
24
|
+
+ constructor(
|
|
25
|
+
+ private runner: BuildRunner,
|
|
26
|
+
+ private artifactRepo?: ArtifactRepository,
|
|
27
|
+
+ ) {}
|
|
28
|
+
|
|
29
|
+
async runBuild(config: BuildConfig): Promise<BuildResult> {
|
|
30
|
+
const result = await this.runner.execute(config);
|
|
31
|
+
+ if (this.artifactRepo) {
|
|
32
|
+
+ await this.artifactRepo.save(result.artifact);
|
|
33
|
+
+ }
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
+++ b/src/bootstrap.ts
|
|
38
|
+
@@ -10,6 +10,8 @@
|
|
39
|
+
export function bootstrap(db: Database): AppContainer {
|
|
40
|
+
const runner = new BuildRunner();
|
|
41
|
+
- const buildService = new BuildService(runner);
|
|
42
|
+
+ const artifactRepo = new ArtifactRepository(db);
|
|
43
|
+
+ const buildService = new BuildService(runner);
|
|
44
|
+
return { buildService };
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Analysis Required
|
|
49
|
+
|
|
50
|
+
Review this diff for wiring correctness. The issue asked for ArtifactRepository to store build artifacts.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
- type: llm_judge
|
|
2
|
+
prompt: |
|
|
3
|
+
The diff adds NotificationService but makes it nullable (| null = null) in
|
|
4
|
+
OrderService. The None guard means if notifications is never injected, the
|
|
5
|
+
feature silently does nothing. The test creates OrderService without
|
|
6
|
+
notifications and "passes" because it never asserts notification behavior.
|
|
7
|
+
The review MUST flag: (1) the null default hides missing injection, and
|
|
8
|
+
(2) the test doesn't actually test notification sending.
|
|
9
|
+
rubric: |
|
|
10
|
+
Score 1.0 if the review identifies both the null-default hiding missing injection AND the test not asserting notification behavior.
|
|
11
|
+
Score 0.5 if the review flags only one of the two issues.
|
|
12
|
+
Score 0.0 if the review misses both issues.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
## Issue: Add notification service for order status changes
|
|
2
|
+
|
|
3
|
+
### Diff
|
|
4
|
+
|
|
5
|
+
```diff
|
|
6
|
+
+++ b/src/services/notification-service.ts
|
|
7
|
+
@@ -0,0 +1,15 @@
|
|
8
|
+
+export class NotificationService {
|
|
9
|
+
+ constructor(private emailClient: EmailClient) {}
|
|
10
|
+
+
|
|
11
|
+
+ async notify(userId: string, message: string): Promise<void> {
|
|
12
|
+
+ await this.emailClient.send(userId, message);
|
|
13
|
+
+ }
|
|
14
|
+
+}
|
|
15
|
+
|
|
16
|
+
+++ b/src/services/order-service.ts
|
|
17
|
+
@@ -3,7 +3,13 @@
|
|
18
|
+
export class OrderService {
|
|
19
|
+
- constructor(private orderRepo: OrderRepository) {}
|
|
20
|
+
+ constructor(
|
|
21
|
+
+ private orderRepo: OrderRepository,
|
|
22
|
+
+ private notifications: NotificationService | null = null,
|
|
23
|
+
+ ) {}
|
|
24
|
+
|
|
25
|
+
async updateStatus(orderId: string, status: OrderStatus): Promise<void> {
|
|
26
|
+
const order = await this.orderRepo.findById(orderId);
|
|
27
|
+
order.status = status;
|
|
28
|
+
await this.orderRepo.save(order);
|
|
29
|
+
+
|
|
30
|
+
+ if (this.notifications !== null) {
|
|
31
|
+
+ await this.notifications.notify(order.userId, `Order ${orderId} is now ${status}`);
|
|
32
|
+
+ }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
+++ b/tests/order-service.test.ts
|
|
36
|
+
@@ -10,6 +10,14 @@
|
|
37
|
+
it('updates order status', async () => {
|
|
38
|
+
const service = new OrderService(mockRepo);
|
|
39
|
+
await service.updateStatus('ord-1', 'shipped');
|
|
40
|
+
expect(mockRepo.save).toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
+
|
|
43
|
+
+ it('sends notification on status change', async () => {
|
|
44
|
+
+ const service = new OrderService(mockRepo);
|
|
45
|
+
+ await service.updateStatus('ord-1', 'shipped');
|
|
46
|
+
+ // Test passes because notifications is null by default
|
|
47
|
+
+ // No assertion on notification behavior
|
|
48
|
+
+ });
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Analysis Required
|
|
52
|
+
|
|
53
|
+
Review this diff. The issue asked for notifications on order status changes.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
- type: llm_judge
|
|
2
|
+
prompt: |
|
|
3
|
+
The diff registers /evals/compare and /evals/summary AFTER /evals/:id.
|
|
4
|
+
In Express (and most routers), the parameterized route /evals/:id will
|
|
5
|
+
match "compare" and "summary" as id values before the static routes
|
|
6
|
+
are reached. The review MUST flag that static routes need to be
|
|
7
|
+
registered BEFORE parameterized routes to avoid shadowing.
|
|
8
|
+
rubric: |
|
|
9
|
+
Score 1.0 if the review identifies route shadowing — that /evals/:id will catch /evals/compare and /evals/summary.
|
|
10
|
+
Score 0.5 if the review mentions route ordering concerns but doesn't identify the specific shadowing.
|
|
11
|
+
Score 0.0 if the review misses the route shadowing issue entirely.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
## Issue: Add eval comparison endpoint
|
|
2
|
+
|
|
3
|
+
### Diff
|
|
4
|
+
|
|
5
|
+
```diff
|
|
6
|
+
+++ b/src/routes/evals.ts
|
|
7
|
+
@@ -5,6 +5,11 @@
|
|
8
|
+
const router = express.Router();
|
|
9
|
+
|
|
10
|
+
router.get('/evals/:id', async (req, res) => {
|
|
11
|
+
const eval = await evalService.findById(req.params.id);
|
|
12
|
+
res.json(eval);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
+router.get('/evals/compare', async (req, res) => {
|
|
16
|
+
+ const { run1, run2 } = req.query;
|
|
17
|
+
+ const comparison = await evalService.compare(String(run1), String(run2));
|
|
18
|
+
+ res.json(comparison);
|
|
19
|
+
+});
|
|
20
|
+
+
|
|
21
|
+
+router.get('/evals/summary', async (req, res) => {
|
|
22
|
+
+ const summary = await evalService.getSummary();
|
|
23
|
+
+ res.json(summary);
|
|
24
|
+
+});
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Analysis Required
|
|
28
|
+
|
|
29
|
+
Review this diff. The issue asked to add an eval comparison endpoint.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
- type: llm_judge
|
|
2
|
+
prompt: |
|
|
3
|
+
The diff creates an analytics dashboard that reads from a tool_executions
|
|
4
|
+
table via AnalyticsRepository. But nothing in the diff (or mentioned as
|
|
5
|
+
existing) WRITES to the tool_executions table. The dashboard will always
|
|
6
|
+
show empty data because there is no producer for the data it consumes.
|
|
7
|
+
The review MUST flag that the data source has no writer.
|
|
8
|
+
rubric: |
|
|
9
|
+
Score 1.0 if the review identifies that nothing writes to tool_executions — the dashboard has no data source.
|
|
10
|
+
Score 0.5 if the review raises general concerns about data availability but doesn't identify the specific missing write path.
|
|
11
|
+
Score 0.0 if the review misses the unthreaded dependency entirely.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
## Issue: Add analytics dashboard showing tool execution metrics
|
|
2
|
+
|
|
3
|
+
### Diff
|
|
4
|
+
|
|
5
|
+
```diff
|
|
6
|
+
+++ b/src/routes/analytics.ts
|
|
7
|
+
@@ -0,0 +1,20 @@
|
|
8
|
+
+import { AnalyticsRepository } from '../repos/analytics-repo';
|
|
9
|
+
+
|
|
10
|
+
+const router = express.Router();
|
|
11
|
+
+
|
|
12
|
+
+router.get('/analytics/tools', async (req, res) => {
|
|
13
|
+
+ const metrics = await analyticsRepo.getToolMetrics();
|
|
14
|
+
+ res.json(metrics);
|
|
15
|
+
+});
|
|
16
|
+
+
|
|
17
|
+
+router.get('/analytics/tools/:toolId', async (req, res) => {
|
|
18
|
+
+ const history = await analyticsRepo.getToolHistory(req.params.toolId);
|
|
19
|
+
+ res.json(history);
|
|
20
|
+
+});
|
|
21
|
+
|
|
22
|
+
+++ b/src/repos/analytics-repo.ts
|
|
23
|
+
@@ -0,0 +1,18 @@
|
|
24
|
+
+export class AnalyticsRepository {
|
|
25
|
+
+ constructor(private db: Database) {}
|
|
26
|
+
+
|
|
27
|
+
+ async getToolMetrics(): Promise<ToolMetric[]> {
|
|
28
|
+
+ return this.db.query('SELECT tool_name, count(*) as runs, avg(duration) as avg_duration FROM tool_executions GROUP BY tool_name');
|
|
29
|
+
+ }
|
|
30
|
+
+
|
|
31
|
+
+ async getToolHistory(toolId: string): Promise<ToolExecution[]> {
|
|
32
|
+
+ return this.db.query('SELECT * FROM tool_executions WHERE tool_name = ? ORDER BY created_at DESC LIMIT 50', [toolId]);
|
|
33
|
+
+ }
|
|
34
|
+
+}
|
|
35
|
+
|
|
36
|
+
+++ b/src/components/AnalyticsDashboard.tsx
|
|
37
|
+
@@ -0,0 +1,30 @@
|
|
38
|
+
+export function AnalyticsDashboard() {
|
|
39
|
+
+ const { data: metrics } = useQuery('/analytics/tools');
|
|
40
|
+
+ return (
|
|
41
|
+
+ <div>
|
|
42
|
+
+ <h1>Tool Analytics</h1>
|
|
43
|
+
+ {metrics?.map(m => (
|
|
44
|
+
+ <div key={m.tool_name}>
|
|
45
|
+
+ <span>{m.tool_name}</span>
|
|
46
|
+
+ <span>{m.runs} runs</span>
|
|
47
|
+
+ <span>{m.avg_duration}ms avg</span>
|
|
48
|
+
+ </div>
|
|
49
|
+
+ ))}
|
|
50
|
+
+ </div>
|
|
51
|
+
+ );
|
|
52
|
+
+}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Analysis Required
|
|
56
|
+
|
|
57
|
+
Review this diff. The issue asked for an analytics dashboard showing tool execution metrics.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
- type: llm_judge
|
|
2
|
+
prompt: |
|
|
3
|
+
The diff estimates token counts from output string length (len/4) and
|
|
4
|
+
doubles it for input tokens. These are fabricated metrics displayed as
|
|
5
|
+
real data in the CostDashboard. The review MUST flag: (1) token counts
|
|
6
|
+
are estimated, not real API responses, (2) the cost calculation uses
|
|
7
|
+
stale hardcoded rates, and (3) the dashboard presents estimated data
|
|
8
|
+
as if it were actual usage metrics.
|
|
9
|
+
rubric: |
|
|
10
|
+
Score 1.0 if the review identifies that token counts are estimated (not from API responses) and flags this as misleading when displayed to users.
|
|
11
|
+
Score 0.5 if the review mentions estimation concerns but doesn't clearly flag it as fabricated metrics.
|
|
12
|
+
Score 0.0 if the review accepts the estimation approach without flagging data accuracy concerns.
|