@momentiq/dark-factory-cli 1.1.0 → 2.1.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.
Files changed (149) hide show
  1. package/README.md +86 -2
  2. package/dist/adapters/critic-result-schema.d.ts +14 -14
  3. package/dist/adapters/index.d.ts +1 -0
  4. package/dist/adapters/index.d.ts.map +1 -1
  5. package/dist/adapters/index.js +7 -0
  6. package/dist/adapters/index.js.map +1 -1
  7. package/dist/adapters/static-schema-lint.d.ts +68 -0
  8. package/dist/adapters/static-schema-lint.d.ts.map +1 -0
  9. package/dist/adapters/static-schema-lint.js +813 -0
  10. package/dist/adapters/static-schema-lint.js.map +1 -0
  11. package/dist/cli.d.ts +17 -1
  12. package/dist/cli.d.ts.map +1 -1
  13. package/dist/cli.js +313 -41
  14. package/dist/cli.js.map +1 -1
  15. package/dist/commands/findings.d.ts +6 -0
  16. package/dist/commands/findings.d.ts.map +1 -0
  17. package/dist/commands/findings.js +196 -0
  18. package/dist/commands/findings.js.map +1 -0
  19. package/dist/commands/onboard.d.ts +6 -0
  20. package/dist/commands/onboard.d.ts.map +1 -0
  21. package/dist/commands/onboard.js +111 -0
  22. package/dist/commands/onboard.js.map +1 -0
  23. package/dist/commands/skills.d.ts +6 -0
  24. package/dist/commands/skills.d.ts.map +1 -0
  25. package/dist/commands/skills.js +248 -0
  26. package/dist/commands/skills.js.map +1 -0
  27. package/dist/cycle-doc-validator/validate_cycle_doc.py +131 -60
  28. package/dist/doctor.d.ts +17 -0
  29. package/dist/doctor.d.ts.map +1 -1
  30. package/dist/doctor.js +107 -0
  31. package/dist/doctor.js.map +1 -1
  32. package/dist/evidence/docker-build.d.ts +6 -0
  33. package/dist/evidence/docker-build.d.ts.map +1 -0
  34. package/dist/evidence/docker-build.js +199 -0
  35. package/dist/evidence/docker-build.js.map +1 -0
  36. package/dist/evidence/index.d.ts +1 -0
  37. package/dist/evidence/index.d.ts.map +1 -1
  38. package/dist/evidence/index.js +6 -0
  39. package/dist/evidence/index.js.map +1 -1
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +4 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/mcp/server.d.ts.map +1 -1
  45. package/dist/mcp/server.js +2 -0
  46. package/dist/mcp/server.js.map +1 -1
  47. package/dist/mcp/tools/doctor.d.ts.map +1 -1
  48. package/dist/mcp/tools/doctor.js +5 -0
  49. package/dist/mcp/tools/doctor.js.map +1 -1
  50. package/dist/mcp/tools/review-bypass.d.ts.map +1 -1
  51. package/dist/mcp/tools/review-bypass.js +21 -0
  52. package/dist/mcp/tools/review-bypass.js.map +1 -1
  53. package/dist/mcp/tools/skills-install.d.ts +6 -0
  54. package/dist/mcp/tools/skills-install.d.ts.map +1 -0
  55. package/dist/mcp/tools/skills-install.js +260 -0
  56. package/dist/mcp/tools/skills-install.js.map +1 -0
  57. package/dist/mcp/tools/stats-gate.d.ts.map +1 -1
  58. package/dist/mcp/tools/stats-gate.js +63 -15
  59. package/dist/mcp/tools/stats-gate.js.map +1 -1
  60. package/dist/onboard/analyze.d.ts +7 -0
  61. package/dist/onboard/analyze.d.ts.map +1 -0
  62. package/dist/onboard/analyze.js +86 -0
  63. package/dist/onboard/analyze.js.map +1 -0
  64. package/dist/onboard/analyzer.d.ts +15 -0
  65. package/dist/onboard/analyzer.d.ts.map +1 -0
  66. package/dist/onboard/analyzer.js +52 -0
  67. package/dist/onboard/analyzer.js.map +1 -0
  68. package/dist/onboard/analyzers/ci.d.ts +3 -0
  69. package/dist/onboard/analyzers/ci.d.ts.map +1 -0
  70. package/dist/onboard/analyzers/ci.js +112 -0
  71. package/dist/onboard/analyzers/ci.js.map +1 -0
  72. package/dist/onboard/analyzers/docs.d.ts +3 -0
  73. package/dist/onboard/analyzers/docs.d.ts.map +1 -0
  74. package/dist/onboard/analyzers/docs.js +151 -0
  75. package/dist/onboard/analyzers/docs.js.map +1 -0
  76. package/dist/onboard/analyzers/git.d.ts +3 -0
  77. package/dist/onboard/analyzers/git.d.ts.map +1 -0
  78. package/dist/onboard/analyzers/git.js +87 -0
  79. package/dist/onboard/analyzers/git.js.map +1 -0
  80. package/dist/onboard/analyzers/lockfile.d.ts +3 -0
  81. package/dist/onboard/analyzers/lockfile.d.ts.map +1 -0
  82. package/dist/onboard/analyzers/lockfile.js +285 -0
  83. package/dist/onboard/analyzers/lockfile.js.map +1 -0
  84. package/dist/onboard/analyzers/manifest.d.ts +3 -0
  85. package/dist/onboard/analyzers/manifest.d.ts.map +1 -0
  86. package/dist/onboard/analyzers/manifest.js +228 -0
  87. package/dist/onboard/analyzers/manifest.js.map +1 -0
  88. package/dist/onboard/analyzers/tree.d.ts +3 -0
  89. package/dist/onboard/analyzers/tree.d.ts.map +1 -0
  90. package/dist/onboard/analyzers/tree.js +196 -0
  91. package/dist/onboard/analyzers/tree.js.map +1 -0
  92. package/dist/onboard/fixtures/replay-git-history.d.ts +20 -0
  93. package/dist/onboard/fixtures/replay-git-history.d.ts.map +1 -0
  94. package/dist/onboard/fixtures/replay-git-history.js +91 -0
  95. package/dist/onboard/fixtures/replay-git-history.js.map +1 -0
  96. package/dist/onboard/schema.d.ts +545 -0
  97. package/dist/onboard/schema.d.ts.map +1 -0
  98. package/dist/onboard/schema.js +142 -0
  99. package/dist/onboard/schema.js.map +1 -0
  100. package/dist/policy/gate.d.ts +1 -1
  101. package/dist/policy/gate.d.ts.map +1 -1
  102. package/dist/policy/gate.js +96 -12
  103. package/dist/policy/gate.js.map +1 -1
  104. package/dist/prompt.d.ts +1 -0
  105. package/dist/prompt.d.ts.map +1 -1
  106. package/dist/prompt.js +105 -1
  107. package/dist/prompt.js.map +1 -1
  108. package/dist/report.d.ts +106 -3
  109. package/dist/report.d.ts.map +1 -1
  110. package/dist/report.js +282 -10
  111. package/dist/report.js.map +1 -1
  112. package/dist/runner.d.ts +2 -0
  113. package/dist/runner.d.ts.map +1 -1
  114. package/dist/runner.js +86 -2
  115. package/dist/runner.js.map +1 -1
  116. package/dist/self-consistency.d.ts +144 -0
  117. package/dist/self-consistency.d.ts.map +1 -0
  118. package/dist/self-consistency.js +368 -0
  119. package/dist/self-consistency.js.map +1 -0
  120. package/dist/skills/config.d.ts +176 -0
  121. package/dist/skills/config.d.ts.map +1 -0
  122. package/dist/skills/config.js +251 -0
  123. package/dist/skills/config.js.map +1 -0
  124. package/dist/skills/index.d.ts +4 -0
  125. package/dist/skills/index.d.ts.map +1 -0
  126. package/dist/skills/index.js +8 -0
  127. package/dist/skills/index.js.map +1 -0
  128. package/dist/skills/install.d.ts +62 -0
  129. package/dist/skills/install.d.ts.map +1 -0
  130. package/dist/skills/install.js +315 -0
  131. package/dist/skills/install.js.map +1 -0
  132. package/dist/skills/template.d.ts +42 -0
  133. package/dist/skills/template.d.ts.map +1 -0
  134. package/dist/skills/template.js +95 -0
  135. package/dist/skills/template.js.map +1 -0
  136. package/dist/trusted-surface/rebind.d.ts.map +1 -1
  137. package/dist/trusted-surface/rebind.js +14 -1
  138. package/dist/trusted-surface/rebind.js.map +1 -1
  139. package/package.json +36 -2
  140. package/skills/README.md +89 -0
  141. package/skills/chief-engineer-blitz/SKILL.md.tmpl +443 -0
  142. package/skills/chief-engineer-blitz/skill.json +53 -0
  143. package/skills/chief-engineer-review/SKILL.md.tmpl +184 -0
  144. package/skills/chief-engineer-review/references/review-examples.md.tmpl +130 -0
  145. package/skills/chief-engineer-review/skill.json +67 -0
  146. package/skills/chief-engineer-review/templates/code-review-prompt.md.tmpl +111 -0
  147. package/skills/chief-engineer-review/templates/escalation-prompt.md.tmpl +56 -0
  148. package/skills/chief-engineer-review/templates/plan-review-prompt.md.tmpl +74 -0
  149. package/skills/skill-schema.json +73 -0
package/dist/runner.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { LoadedConfig } from "./policy/config.js";
2
2
  import type { AdapterRegistry } from "./adapters/critic.js";
3
3
  import { type PolicyNotice } from "./policy/baseline.js";
4
4
  import { type WriteResult } from "./report.js";
5
+ import { type SelfConsistencyProbeFn } from "./self-consistency.js";
5
6
  import type { TelemetrySink } from "./evidence/audit-trail.js";
6
7
  import type { GateResult, ReviewArtifact, ReviewPacket } from "@momentiq/dark-factory-schemas";
7
8
  export interface ReviewRunOptions {
@@ -14,6 +15,7 @@ export interface ReviewRunOptions {
14
15
  profileName?: string;
15
16
  injectedConfigAuthoritative?: boolean;
16
17
  onPolicyNotice?: (notice: PolicyNotice) => void;
18
+ selfConsistencyProbe?: SelfConsistencyProbeFn;
17
19
  }
18
20
  export interface ReviewRunOutcome {
19
21
  artifact: ReviewArtifact;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AAWjF,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOhF,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAGV,UAAU,EACV,cAAc,EACd,YAAY,EAEb,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IAUrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAQrB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAOtC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAiED,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgWpF;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,aAAa,CAAC;IAkB1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAGtC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CACjD;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAqLhF;AA6BD,MAAM,WAAW,eAAe;IAC9B,SAAS,IAAI,IAAI,CAAC;CACnB;AAKD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAoBxE"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AAWjF,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOhF,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAGV,UAAU,EACV,cAAc,EACd,YAAY,EAEb,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IAUrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAQrB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAOtC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAahD,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;CAC/C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAiED,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4YpF;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,aAAa,CAAC;IAkB1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAGtC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CACjD;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAqLhF;AA4FD,MAAM,WAAW,eAAe;IAC9B,SAAS,IAAI,IAAI,CAAC;CACnB;AAKD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAoBxE"}
package/dist/runner.js CHANGED
@@ -8,6 +8,8 @@ import { resolvePolicyBaseline } from "./policy/baseline.js";
8
8
  import { applyProfileAuth, applyProfileParamOverrides, resolveProfileWithConfig, } from "./policy/profile.js";
9
9
  import { runQualityGates } from "./evidence/index.js";
10
10
  import { acquireCommitLock, buildAggregate, quorumAggregateVerdict, releaseCommitLock, writeArtifacts, writePending, } from "./report.js";
11
+ import { applySelfConsistencyResult, runSelfConsistencyProbe, } from "./self-consistency.js";
12
+ import { gitShowFile } from "./git.js";
11
13
  // Issue #29 — the EventTarget max-listener cap on the shared AbortSignal.
12
14
  //
13
15
  // `runReview` fans `reviewOptions.signal` out to N critic adapters via
@@ -231,7 +233,7 @@ export async function runReview(options) {
231
233
  // Both are pure and commute (no field overlap), so order is only a
232
234
  // convention; documenting it makes the pipeline reviewable.
233
235
  const requiredCritics = activeCritics.map((c) => applyProfileAuth(applyProfileParamOverrides(c, resolvedProfile?.profile), resolvedProfile?.profile));
234
- const results = await Promise.all(requiredCritics.map(async (critic) => {
236
+ const rawResults = await Promise.all(requiredCritics.map(async (critic) => {
235
237
  if (!registry.has(critic.adapter)) {
236
238
  return {
237
239
  criticId: critic.id,
@@ -253,6 +255,20 @@ export async function runReview(options) {
253
255
  const adapter = registry.resolve(critic.adapter);
254
256
  return adapter.review(packet, critic, reviewOptions);
255
257
  }));
258
+ // Issue dark-factory-platform#112 — self-consistency probe pass.
259
+ // Runs ONLY when both (a) the caller supplied a probe callable AND
260
+ // (b) the active aggregation policy declares a corroboration rule
261
+ // listing flag(s) the probe knows how to populate. Skipping when
262
+ // the policy is absent avoids spending tokens on a tag the
263
+ // aggregator wouldn't act on. The probe is bounded per critic +
264
+ // per finding by `runSelfConsistencyProbe`'s eligibility guards
265
+ // (non-blocking severity → skip; no file → skip; loadFileContent
266
+ // null → skip without an LLM call).
267
+ const probeApplies = options.selfConsistencyProbe !== undefined &&
268
+ loaded.config.aggregation.unilateralVetoRules?.requireCorroborationFor.includes("self_inconsistent") === true;
269
+ const results = probeApplies
270
+ ? await Promise.all(rawResults.map(async (r) => applyProbePassToCritic(r, sha, cwd, options.selfConsistencyProbe, loaded, sink)))
271
+ : rawResults;
256
272
  const finishedAt = new Date().toISOString();
257
273
  artifact = buildAggregate({
258
274
  loaded,
@@ -311,7 +327,27 @@ export async function runReview(options) {
311
327
  (loaded.config.aggregation.policy === "min-complete-quorum"
312
328
  ? (loaded.config.aggregation.quorum ?? 2)
313
329
  : 2);
314
- const aggregateReason = quorumAggregateVerdict(results, loaded.config.aggregation.blockingSeverities, quorum).reason;
330
+ // Issue dark-factory-platform#112 thread the optional
331
+ // `unilateralVetoRules` so the `aggregateReason` telemetry value
332
+ // matches the artifact verdict (both now honor corroboration).
333
+ const quorumOutcome = quorumAggregateVerdict(results, loaded.config.aggregation.blockingSeverities, quorum, loaded.config.aggregation.unilateralVetoRules);
334
+ const aggregateReason = quorumOutcome.reason;
335
+ // Cursor finding (runner.ts:465) — emit one `critic_disagreement`
336
+ // event per demotion so operators auditing `_runs.ndjson` can
337
+ // grep the demotion stream during the review run. Without this,
338
+ // demotion visibility depends on later gate evaluation and the
339
+ // per-decision audit pattern documented for #112 is broken.
340
+ for (const note of quorumOutcome.disagreements) {
341
+ const loc = note.line !== undefined ? `${note.file}:${note.line}` : note.file;
342
+ emit(sink, {
343
+ ts: finishedAt,
344
+ event: "critic_disagreement",
345
+ commit: sha,
346
+ criticId: note.criticId,
347
+ status: note.flag,
348
+ detail: `${loc} — ${note.evidence}`,
349
+ });
350
+ }
315
351
  emit(sink, {
316
352
  ts: finishedAt,
317
353
  event: "review_finished",
@@ -575,6 +611,54 @@ function emit(sink, event) {
575
611
  if (sink)
576
612
  sink.emit(event);
577
613
  }
614
+ /**
615
+ * Issue dark-factory-platform#112 — run the self-consistency probe
616
+ * across one critic's findings and return a (possibly-new) CriticResult
617
+ * with the `selfInconsistent` flag stamped on findings the probe
618
+ * judged inconsistent. Pure aside from the probe call + git read; the
619
+ * probe and gitShowFile are the only side-effect channels.
620
+ *
621
+ * Behavior per finding (see `runSelfConsistencyProbe` for the full
622
+ * matrix):
623
+ * - non-blocking severity OR no file → skip (probe not invoked).
624
+ * - blocking severity AND file present → load file content via
625
+ * `gitShowFile(sha, path)`; pass to probe; stamp if inconsistent.
626
+ * - probe error / timeout / malformed output → default-to-consistent.
627
+ *
628
+ * Emits one `self_consistency_probe` event per processed finding for
629
+ * audit-log visibility (matches the cycle 322.7 pattern of per-decision
630
+ * telemetry).
631
+ */
632
+ async function applyProbePassToCritic(critic, sha, cwd, probe, loaded, sink) {
633
+ const blockingSeverities = loaded.config.aggregation.blockingSeverities;
634
+ if (critic.status !== "complete" || critic.findings.length === 0) {
635
+ return critic;
636
+ }
637
+ let mutated = false;
638
+ const newFindings = await Promise.all(critic.findings.map(async (f) => {
639
+ const result = await runSelfConsistencyProbe(f, critic.criticId, sha, blockingSeverities, async (path) => gitShowFile(sha, path, cwd), probe);
640
+ // Skip telemetry for trivial skips (non-blocking severity / no
641
+ // file) to avoid `_runs.ndjson` noise — those are the common
642
+ // case for any low-severity finding.
643
+ if (result.reason !== "probe_skipped") {
644
+ emit(sink, {
645
+ ts: new Date().toISOString(),
646
+ event: "self_consistency_probe",
647
+ commit: sha,
648
+ criticId: critic.criticId,
649
+ status: result.reason,
650
+ ...(result.detail !== undefined ? { detail: result.detail } : {}),
651
+ });
652
+ }
653
+ const tagged = applySelfConsistencyResult(f, result);
654
+ if (tagged !== f)
655
+ mutated = true;
656
+ return tagged;
657
+ }));
658
+ if (!mutated)
659
+ return critic;
660
+ return { ...critic, findings: newFindings };
661
+ }
578
662
  const SIGNAL_EXIT_CODES = { SIGINT: 130, SIGTERM: 143 };
579
663
  export function installSignalLockGuard(lockPath) {
580
664
  const handlers = {};
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ import type { ReviewFinding } from "@momentiq/dark-factory-schemas";
2
+ /**
3
+ * The probe callable. Returns the structured verdict from the
4
+ * lightweight LLM call. Implementations should be relatively cheap
5
+ * (lower-tier model is fine — purpose is contradiction detection, not
6
+ * re-judging the diff). Should throw on transport / parse failures;
7
+ * the caller handles the default-to-consistent fallback.
8
+ */
9
+ export type SelfConsistencyProbeFn = (input: SelfConsistencyProbeInput) => Promise<SelfConsistencyProbeOutput>;
10
+ export interface SelfConsistencyProbeInput {
11
+ /** Critic that produced the finding (vendor id for logging). */
12
+ vendor: string;
13
+ /** SHA being reviewed (for the probe prompt + audit log). */
14
+ commitSha: string;
15
+ /**
16
+ * The finding under test. The probe sees the full shape so the LLM
17
+ * has the claim text (`evidence`), the implicated location
18
+ * (`file` + `line`), and the proposed fix (`requiredFix`).
19
+ */
20
+ finding: ReviewFinding;
21
+ /**
22
+ * Content of the file the finding cites, AS OF THE REVIEWED COMMIT.
23
+ * `null` when the file couldn't be loaded (deleted, binary, etc.) —
24
+ * the runner passes `null` to signal "probe can't run from
25
+ * available evidence"; the caller defaults to consistent.
26
+ */
27
+ fileContent: string | null;
28
+ }
29
+ export interface SelfConsistencyProbeOutput {
30
+ /** True when the LLM judges the finding's empirical claim valid. */
31
+ consistent: boolean;
32
+ /** Short explanation; surfaced in the `critic_disagreement` note. */
33
+ reason: string;
34
+ }
35
+ export interface SelfConsistencyResult {
36
+ /**
37
+ * The verdict the aggregator should record on the finding. `true`
38
+ * means "the probe found the finding inconsistent with the diff
39
+ * evidence and the finding should be tagged `selfInconsistent:
40
+ * true`". `false` means "consistent OR probe didn't run / failed
41
+ * — leave the finding's `selfInconsistent` unset".
42
+ */
43
+ inconsistent: boolean;
44
+ /**
45
+ * One of:
46
+ * - "probe_skipped" — finding wasn't eligible (no file, non-blocking
47
+ * severity); we never invoked the probe.
48
+ * - "probe_consistent" — probe ran and judged the finding consistent.
49
+ * - "probe_inconsistent" — probe ran and judged the finding NOT
50
+ * consistent; finding is tagged.
51
+ * - "probe_error" — probe rejected or returned malformed output;
52
+ * default-to-consistent applies.
53
+ * - "no_evidence" — fileContent was null; probe wasn't invoked.
54
+ */
55
+ reason: "probe_skipped" | "probe_consistent" | "probe_inconsistent" | "probe_error" | "no_evidence";
56
+ /**
57
+ * Probe-supplied reason when `probe_inconsistent` or
58
+ * `probe_consistent`; the error message when `probe_error`;
59
+ * `undefined` for `probe_skipped` / `no_evidence`.
60
+ */
61
+ detail?: string;
62
+ }
63
+ /** Per-finding timeout default. The probe runs inside `Promise.all`
64
+ * across N findings × M critics; without a bound, a single hung
65
+ * vendor call wedges `runReview` indefinitely (codex
66
+ * self-consistency.ts:139). The default is generous — the probe is a
67
+ * cheap contradiction-detection call that should resolve well under a
68
+ * second; anything north of `DEFAULT_PROBE_TIMEOUT_MS` is a hung
69
+ * provider, not a slow one. Callers may override via
70
+ * `RunSelfConsistencyProbeOptions.timeoutMs`. */
71
+ export declare const DEFAULT_PROBE_TIMEOUT_MS = 15000;
72
+ export interface RunSelfConsistencyProbeOptions {
73
+ /** Per-finding timeout in milliseconds; defaults to
74
+ * `DEFAULT_PROBE_TIMEOUT_MS`. A non-resolving probe at this
75
+ * boundary returns `{ inconsistent: false, reason: "probe_error" }`
76
+ * with a `timeout` detail — matches the documented
77
+ * default-to-consistent posture (probe degradation MUST NOT
78
+ * escalate). */
79
+ timeoutMs?: number;
80
+ }
81
+ /**
82
+ * Run the self-consistency probe for a single finding. Pure (no I/O,
83
+ * no time): the probe callable is the only side-effect channel and is
84
+ * injected by the caller.
85
+ *
86
+ * Eligibility:
87
+ * - Finding severity must be in `blockingSeverities` (typically
88
+ * ["blocker", "high"]). Non-blocking findings can't veto the
89
+ * gate, so the probe wouldn't change the outcome — skip.
90
+ * - Finding must have a `file` field. Without a file the probe
91
+ * can't load evidence — skip.
92
+ *
93
+ * On error, return `inconsistent: false` with `reason: "probe_error"`.
94
+ * The default-to-consistent posture matches the spec (probe degradation
95
+ * is NOT a verdict-flip concern). A timeout (per
96
+ * `RunSelfConsistencyProbeOptions.timeoutMs`, default 15s) folds into
97
+ * the same `probe_error` branch with a `timeout` detail so a hung
98
+ * vendor call cannot wedge `runReview`.
99
+ */
100
+ export declare function runSelfConsistencyProbe(finding: ReviewFinding, vendor: string, commitSha: string, blockingSeverities: readonly string[], loadFileContent: (path: string) => Promise<string | null>, probe: SelfConsistencyProbeFn, options?: RunSelfConsistencyProbeOptions): Promise<SelfConsistencyResult>;
101
+ /**
102
+ * Tag a finding with the probe's verdict. Returns a NEW finding
103
+ * object (mutation-free, matches the rest of the codebase's
104
+ * pure-aggregator posture). When `inconsistent === false`, returns
105
+ * the input identity (no allocation) so the runner's hot path doesn't
106
+ * churn the GC for the common case.
107
+ */
108
+ export declare function applySelfConsistencyResult(finding: ReviewFinding, result: SelfConsistencyResult): ReviewFinding;
109
+ export declare function buildSelfConsistencyPrompt(input: SelfConsistencyProbeInput): string;
110
+ /**
111
+ * Cursor finding (cli.ts:560) — default production probe wired by the
112
+ * CLI when the loaded policy lists `self_inconsistent` and a
113
+ * `GEMINI_API_KEY` is present. Lower-tier Gemini model (cheap
114
+ * contradiction-detection call, NOT a re-judgement of the diff).
115
+ * Returns `null` when the key is unset so the CLI can downgrade to
116
+ * "probe disabled — keep legacy behavior" without crashing the
117
+ * review.
118
+ *
119
+ * The factory is exported here (rather than living in cli.ts) so the
120
+ * runner integration test can re-use the exact module loader hook
121
+ * the production path uses; only the underlying LLM client is
122
+ * mockable for tests that don't want a real Gemini call.
123
+ *
124
+ * Hosted-worker callers (the closed-source momentiq-ai/dark-factory-worker)
125
+ * override this factory with their own LLM client; the OSS CLI ships
126
+ * the Gemini default so consumers without the worker still get the
127
+ * probe.
128
+ */
129
+ export interface DefaultProbeFactoryOptions {
130
+ /** Env-style key reader; defaults to `process.env`. Tests pass a
131
+ * narrow object so the factory is deterministic. */
132
+ env?: Record<string, string | undefined>;
133
+ /** Optional override for the lower-tier model id. Defaults to the
134
+ * cheapest Gemini variant that supports JSON-mode output. */
135
+ modelId?: string;
136
+ /** Optional override for the LLM caller — tests pass a stub so the
137
+ * default factory's wiring is unit-testable without a real Gemini
138
+ * client. Returns the assistant's text content; the factory
139
+ * handles JSON parsing + the
140
+ * `SelfConsistencyProbeOutput` shape. */
141
+ callLlm?: (model: string, prompt: string) => Promise<string>;
142
+ }
143
+ export declare function buildDefaultSelfConsistencyProbe(options?: DefaultProbeFactoryOptions): SelfConsistencyProbeFn | null;
144
+ //# sourceMappingURL=self-consistency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-consistency.d.ts","sourceRoot":"","sources":["../src/self-consistency.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,yBAAyB,KAC7B,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAEzC,MAAM,WAAW,yBAAyB;IACxC,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,aAAa,CAAC;IACvB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC;IACpB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;OAUG;IACH,MAAM,EACF,eAAe,GACf,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,aAAa,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;iDAOiD;AACjD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,MAAM,WAAW,8BAA8B;IAC7C;;;;;oBAKgB;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EACzD,KAAK,EAAE,sBAAsB,EAC7B,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,qBAAqB,CAAC,CAgEhC;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,qBAAqB,GAC5B,aAAa,CAGf;AAmDD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM,CAkDnF;AAkDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,0BAA0B;IACzC;wDACoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC;iEAC6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;6CAIyC;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AAuBD,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,0BAA+B,GACvC,sBAAsB,GAAG,IAAI,CA2C/B"}