instar 1.3.763 → 1.3.765

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 (30) hide show
  1. package/dist/core/ClaudeCliIntelligenceProvider.d.ts +15 -0
  2. package/dist/core/ClaudeCliIntelligenceProvider.d.ts.map +1 -1
  3. package/dist/core/ClaudeCliIntelligenceProvider.js +111 -23
  4. package/dist/core/ClaudeCliIntelligenceProvider.js.map +1 -1
  5. package/dist/core/PostUpdateMigrator.d.ts +1 -0
  6. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  7. package/dist/core/PostUpdateMigrator.js +56 -2
  8. package/dist/core/PostUpdateMigrator.js.map +1 -1
  9. package/dist/core/crossModelReviewer.d.ts +188 -9
  10. package/dist/core/crossModelReviewer.d.ts.map +1 -1
  11. package/dist/core/crossModelReviewer.js +360 -18
  12. package/dist/core/crossModelReviewer.js.map +1 -1
  13. package/dist/core/types.d.ts +14 -0
  14. package/dist/core/types.d.ts.map +1 -1
  15. package/dist/core/types.js.map +1 -1
  16. package/dist/scaffold/templates.js +1 -1
  17. package/dist/server/routes.d.ts.map +1 -1
  18. package/dist/server/routes.js +15 -5
  19. package/dist/server/routes.js.map +1 -1
  20. package/package.json +1 -1
  21. package/scripts/model-registry-freshness.manifest.json +8 -0
  22. package/skills/spec-converge/SKILL.md +4 -2
  23. package/skills/spec-converge/scripts/cross-model-review.mjs +36 -6
  24. package/src/data/builtin-manifest.json +63 -63
  25. package/src/scaffold/templates.ts +1 -1
  26. package/upgrades/1.3.764.md +45 -0
  27. package/upgrades/1.3.765.md +63 -0
  28. package/upgrades/side-effects/actionclaim-config-shape-fix.eli16.md +50 -0
  29. package/upgrades/side-effects/actionclaim-config-shape-fix.md +149 -0
  30. package/upgrades/side-effects/reviewer-door-rewiring-inc1.md +198 -0
@@ -44,14 +44,17 @@
44
44
  * - `TRUSTED_REVIEWER_FRAMEWORKS` — the provider allowlist (no spec egress
45
45
  * to untrusted/custom endpoints).
46
46
  */
47
+ import { execFileSync } from 'node:child_process';
47
48
  import crypto from 'node:crypto';
48
49
  import fs from 'node:fs';
49
50
  import os from 'node:os';
50
51
  import path from 'node:path';
51
- import { detectCodexPath, detectGeminiPath } from './Config.js';
52
+ import { detectCodexPath, detectGeminiPath, detectClaudePath } from './Config.js';
52
53
  import { validateRule1 } from '../providers/adapters/openai-codex/credentials.js';
53
54
  import { resolveCliModelFlag } from '../providers/adapters/openai-codex/models.js';
54
55
  import { resolveCliModelFlag as resolveGeminiModelFlag } from '../providers/adapters/gemini-cli/models.js';
56
+ import { resolveDevAgentGate } from './devAgentGate.js';
57
+ import { ClaudeForbiddenError } from './claudeForbiddenGuard.js';
55
58
  import { buildIntelligenceProvider, } from './intelligenceProviderFactory.js';
56
59
  // ── Constants (tunable) ─────────────────────────────────────────────────
57
60
  /**
@@ -171,6 +174,7 @@ export function detectCodexReviewer(inputs = {}) {
171
174
  available: true,
172
175
  framework: 'codex-cli',
173
176
  model: resolveCliModelFlag(REVIEW_MODEL_TIER),
177
+ crossFamily: true,
174
178
  };
175
179
  }
176
180
  /**
@@ -232,8 +236,138 @@ export function detectGeminiReviewer(inputs = {}) {
232
236
  available: true,
233
237
  framework: 'gemini-cli',
234
238
  model: resolveGeminiModelFlag(REVIEW_MODEL_TIER),
239
+ crossFamily: true,
235
240
  };
236
241
  }
242
+ // ── Claude clean-door reviewer (REVIEWER-DOOR-REWIRING §1) ───────────────
243
+ /**
244
+ * The concrete default model the Anthropic clean-door reviewer pins
245
+ * (REVIEWER-DOOR-REWIRING §1.3). NEVER the tier word `'capable'` — that resolves
246
+ * to opus (`src/core/models.ts`), the measured-penalized `opus × coding-harness`
247
+ * pair this reviewer family exists to move OFF. Registered in
248
+ * `scripts/model-registry-freshness.manifest.json` under the strict (CI-gating)
249
+ * freshness lint, so a rotted pin fails CI (the anti-rot ratchet); the
250
+ * degraded-loud no-silent-fallback path (§1.3) is the second, runtime guarantee.
251
+ */
252
+ export const CLAUDE_REVIEWER_DEFAULT_MODEL = 'claude-fable-5';
253
+ /**
254
+ * The accept-set a config override (`specConverge.reviewers.anthropic.model`) is
255
+ * validated against (§1.3). A concrete-but-non-frontier id — e.g.
256
+ * `claude-opus-4-8` — is REJECTED (`override-not-frontier`), never silently
257
+ * honored, because a misconfigured override could otherwise re-pin the reviewer
258
+ * to opus and re-create the exact door-penalty gap this spec closes. Kept fresh
259
+ * by the same freshness lint that pins `CLAUDE_REVIEWER_DEFAULT_MODEL`, so this
260
+ * "derived-from-the-manifest frontier set" stays current structurally rather than
261
+ * by willpower (Structure > Willpower).
262
+ */
263
+ export const CLAUDE_REVIEWER_FRONTIER_MODELS = [CLAUDE_REVIEWER_DEFAULT_MODEL];
264
+ /** The default Claude config-home path (`$CLAUDE_CONFIG_DIR` or `~/.claude`). */
265
+ function defaultClaudeConfigHome(env = process.env) {
266
+ return env['CLAUDE_CONFIG_DIR'] || path.join(os.homedir(), '.claude');
267
+ }
268
+ /**
269
+ * Detect a Claude clean-door reviewer (REVIEWER-DOOR-REWIRING §1.2). Reports
270
+ * "installed-and-configured" — NOT entitlement-verified: usable auth,
271
+ * subscription tier, and Fable-5 entitlement are INVOCATION-time `degraded`
272
+ * results (§1.4), never detection reasons. Detection reasons are the purely
273
+ * static presence set only: `claude-not-installed` / `claude-config-missing` /
274
+ * `claude-forbidden`. NEVER throws; all inputs injectable (mirrors codex/gemini).
275
+ */
276
+ export function detectClaudeReviewer(inputs = {}) {
277
+ // 1. claude-code allowed on this agent? (A claude-forbidden agent must never
278
+ // detect the family available — §1.2. Absent enabledFrameworks ⇒ allowed.)
279
+ if (inputs.enabledFrameworks && !inputs.enabledFrameworks.includes('claude-code')) {
280
+ return { available: false, reason: 'claude-forbidden', crossFamily: false };
281
+ }
282
+ // 2. Binary present?
283
+ const claudePath = inputs.claudePathDetected !== undefined ? inputs.claudePathDetected : detectClaudePath();
284
+ if (!claudePath) {
285
+ return { available: false, reason: 'claude-not-installed', crossFamily: false };
286
+ }
287
+ // 3. Config-home present?
288
+ const configHomePresent = inputs.claudeConfigHomePresent !== undefined
289
+ ? inputs.claudeConfigHomePresent
290
+ : fs.existsSync(defaultClaudeConfigHome());
291
+ if (!configHomePresent) {
292
+ return { available: false, reason: 'claude-config-missing', crossFamily: false };
293
+ }
294
+ return {
295
+ available: true,
296
+ framework: 'claude-code',
297
+ // The default pin; the config-override validation happens at INVOCATION
298
+ // (§1.4) so detection stays purely presence-based. crossFamily:false — Claude
299
+ // reviewing Claude is a clean-door second read, NOT a cross-model opinion (§5).
300
+ model: CLAUDE_REVIEWER_DEFAULT_MODEL,
301
+ crossFamily: false,
302
+ };
303
+ }
304
+ /**
305
+ * Resolve the Claude reviewer's concrete model (§1.3), with NO silent fallback:
306
+ * 1. a config override (`specConverge.reviewers.anthropic.model`) if set — it
307
+ * MUST be a concrete id (`isConcreteReviewerModel`) AND a member of the
308
+ * frontier accept-set (`CLAUDE_REVIEWER_FRONTIER_MODELS`); a non-frontier
309
+ * concrete id (e.g. `claude-opus-4-8`) is REJECTED (`override-not-frontier`);
310
+ * 2. else the default pin `CLAUDE_REVIEWER_DEFAULT_MODEL` (`claude-fable-5`).
311
+ * A rejected override degrades the round LOUDLY (§1.4) — it is never coerced to
312
+ * a default, because a config typo silently re-opening the door penalty is
313
+ * exactly the "strongest model isn't actually reviewing" gap this spec closes.
314
+ */
315
+ export function resolveClaudeReviewerModel(config) {
316
+ const override = config?.specConverge?.reviewers?.anthropic?.model;
317
+ if (typeof override === 'string' && override.trim().length > 0) {
318
+ const id = override.trim();
319
+ if (!isConcreteReviewerModel(id)) {
320
+ return { ok: false, reason: 'override-not-concrete', model: id };
321
+ }
322
+ if (!CLAUDE_REVIEWER_FRONTIER_MODELS.includes(id)) {
323
+ return { ok: false, reason: 'override-not-frontier', model: id };
324
+ }
325
+ return { ok: true, model: id };
326
+ }
327
+ return { ok: true, model: CLAUDE_REVIEWER_DEFAULT_MODEL };
328
+ }
329
+ /**
330
+ * Runtime hardening preflight (§1.4): does the INSTALLED Claude CLI actually
331
+ * ACCEPT the required inbound-safety hardening flags (`--allowedTools ''`,
332
+ * `--strict-mcp-config`)? A fleet machine may run a drifted CLI that renamed or
333
+ * dropped a flag, so the reviewer verifies support on EACH machine at runtime
334
+ * and is NEVER run unhardened. FAIL-CLOSED: an unresolvable binary, an exec
335
+ * error, or a `--help` output missing either flag ⇒ `false` (degrade, never run
336
+ * unsafe). Cached per process; `__resetClaudeHardeningPreflightCache()` for tests.
337
+ */
338
+ let _claudeHardeningPreflightCache = null;
339
+ export function claudeSupportsReviewerHardening(claudePath) {
340
+ if (_claudeHardeningPreflightCache !== null)
341
+ return _claudeHardeningPreflightCache;
342
+ let supported = false;
343
+ try {
344
+ const bin = claudePath ?? detectClaudePath();
345
+ if (bin) {
346
+ // lint-allow-sync-spawn: one-shot CLI capability probe (`claude --help`),
347
+ // cached per-process (runs at most once), invoked only from the reviewer
348
+ // path driven by the spec-converge SKILL script — a short-lived CLI process,
349
+ // never the server event loop.
350
+ const help = execFileSync(bin, ['--help'], {
351
+ encoding: 'utf-8',
352
+ timeout: 10_000,
353
+ maxBuffer: 4 * 1024 * 1024,
354
+ });
355
+ supported = help.includes('--allowedTools') && help.includes('--strict-mcp-config');
356
+ }
357
+ }
358
+ catch {
359
+ // @silent-fallback-ok — fail-CLOSED: an inconclusive preflight is treated as
360
+ // UNSUPPORTED so the reviewer degrades (`hardening-unsupported`) rather than
361
+ // running the untrusted-text review without the security boundary.
362
+ supported = false;
363
+ }
364
+ _claudeHardeningPreflightCache = supported;
365
+ return supported;
366
+ }
367
+ /** Test helper — clear the per-process hardening-preflight cache. */
368
+ export function __resetClaudeHardeningPreflightCache() {
369
+ _claudeHardeningPreflightCache = null;
370
+ }
237
371
  /**
238
372
  * Fail-loud model canary (Piece 3). A cross-model review must run on a
239
373
  * CONCRETE model id — never a bare tier word that fell through a
@@ -259,6 +393,7 @@ export function isConcreteReviewerModel(model) {
259
393
  */
260
394
  const codexReviewer = {
261
395
  id: 'codex-cli',
396
+ crossFamily: true,
262
397
  detect: (inputs) => detectCodexReviewer(inputs),
263
398
  review: async (args) => {
264
399
  const detection = args.detectionOverride ?? detectCodexReviewer();
@@ -273,6 +408,7 @@ const codexReviewer = {
273
408
  model,
274
409
  reason: 'model-resolution-canary',
275
410
  flag: `cross-model-review: codex-cli:${model} (degraded: model-resolution-canary)`,
411
+ crossFamily: true,
276
412
  };
277
413
  }
278
414
  // Build (or accept an injected) provider. The factory wraps it in the
@@ -289,6 +425,7 @@ const codexReviewer = {
289
425
  model,
290
426
  reason: 'provider-unavailable',
291
427
  flag: `cross-model-review: codex-cli:${model} (degraded: provider-unavailable)`,
428
+ crossFamily: true,
292
429
  };
293
430
  }
294
431
  let raw;
@@ -307,6 +444,7 @@ const codexReviewer = {
307
444
  model,
308
445
  reason,
309
446
  flag: `cross-model-review: codex-cli:${model} (degraded: ${reason})`,
447
+ crossFamily: true,
310
448
  };
311
449
  }
312
450
  const parsed = parseReviewerReply(raw, tag);
@@ -317,6 +455,7 @@ const codexReviewer = {
317
455
  verdict: parsed.verdict,
318
456
  findings: [parsed],
319
457
  flag: `cross-model-review: codex-cli:${model}`,
458
+ crossFamily: true,
320
459
  };
321
460
  },
322
461
  };
@@ -328,6 +467,7 @@ const codexReviewer = {
328
467
  */
329
468
  const geminiReviewer = {
330
469
  id: 'gemini-cli',
470
+ crossFamily: true,
331
471
  detect: (inputs) => detectGeminiReviewer(inputs),
332
472
  review: async (args) => {
333
473
  const detection = args.detectionOverride ?? detectGeminiReviewer();
@@ -342,6 +482,7 @@ const geminiReviewer = {
342
482
  model,
343
483
  reason: 'model-resolution-canary',
344
484
  flag: `cross-model-review: gemini-cli:${model} (degraded: model-resolution-canary)`,
485
+ crossFamily: true,
345
486
  };
346
487
  }
347
488
  // Build (or accept an injected) provider. The factory wraps it in the
@@ -358,6 +499,7 @@ const geminiReviewer = {
358
499
  model,
359
500
  reason: 'provider-unavailable',
360
501
  flag: `cross-model-review: gemini-cli:${model} (degraded: provider-unavailable)`,
502
+ crossFamily: true,
361
503
  };
362
504
  }
363
505
  let raw;
@@ -376,6 +518,7 @@ const geminiReviewer = {
376
518
  model,
377
519
  reason,
378
520
  flag: `cross-model-review: gemini-cli:${model} (degraded: ${reason})`,
521
+ crossFamily: true,
379
522
  };
380
523
  }
381
524
  const parsed = parseReviewerReply(raw, tag);
@@ -386,6 +529,135 @@ const geminiReviewer = {
386
529
  verdict: parsed.verdict,
387
530
  findings: [parsed],
388
531
  flag: `cross-model-review: gemini-cli:${model}`,
532
+ crossFamily: true,
533
+ };
534
+ },
535
+ };
536
+ /**
537
+ * The Claude clean-door reviewer entry (REVIEWER-DOOR-REWIRING §1). The headline
538
+ * change: the strongest available Anthropic model (`claude-fable-5`) reads the
539
+ * spec through the clean `claude -p` door instead of never reading it at all.
540
+ *
541
+ * This is a SECOND READ, not a cross-model opinion — `crossFamily: false` (§5).
542
+ * The call is hardened to codex-door parity for the untrusted-text review (§1.4):
543
+ * `reviewerHardening` makes `ClaudeCliIntelligenceProvider` run with empty
544
+ * allowed-tools + `--strict-mcp-config` + a neutral scratch cwd + the prompt via
545
+ * stdin + an env allowlist that strips agent secrets. The model argument is the
546
+ * CONCRETE resolved pin (never the tier word `'capable'`, which resolves to opus).
547
+ */
548
+ const claudeReviewer = {
549
+ id: 'claude-code',
550
+ crossFamily: false,
551
+ detect: (inputs) => detectClaudeReviewer(inputs),
552
+ review: async (args) => {
553
+ // Model resolution + override validation (§1.3) — no silent fallback.
554
+ const resolution = resolveClaudeReviewerModel(args.reviewerConfig);
555
+ if (!resolution.ok) {
556
+ return {
557
+ status: 'degraded',
558
+ framework: 'claude-code',
559
+ model: resolution.model,
560
+ reason: resolution.reason,
561
+ flag: `clean-door-anthropic-review: claude-code:${resolution.model} (degraded: ${resolution.reason})`,
562
+ crossFamily: false,
563
+ };
564
+ }
565
+ const model = resolution.model;
566
+ const tag = `clean-door:claude-code:${model}`;
567
+ // Fail-loud model canary (§1.4): NEVER review on a tier word — passing
568
+ // 'capable' here would silently resolve to opus, the penalized pair.
569
+ if (!isConcreteReviewerModel(model)) {
570
+ return {
571
+ status: 'degraded',
572
+ framework: 'claude-code',
573
+ model,
574
+ reason: 'model-resolution-canary',
575
+ flag: `clean-door-anthropic-review: claude-code:${model} (degraded: model-resolution-canary)`,
576
+ crossFamily: false,
577
+ };
578
+ }
579
+ // Runtime hardening preflight (§1.4) — fail-CLOSED on THIS machine's CLI, not
580
+ // just CI. If the installed CLI does not accept the hardening flags, the
581
+ // reviewer is NEVER run unhardened.
582
+ const hardeningSupported = args.hardeningSupportedOverride !== undefined
583
+ ? args.hardeningSupportedOverride
584
+ : claudeSupportsReviewerHardening();
585
+ if (!hardeningSupported) {
586
+ return {
587
+ status: 'degraded',
588
+ framework: 'claude-code',
589
+ model,
590
+ reason: 'hardening-unsupported',
591
+ flag: `clean-door-anthropic-review: claude-code:${model} (degraded: hardening-unsupported)`,
592
+ crossFamily: false,
593
+ };
594
+ }
595
+ // Build (or accept an injected) provider. Unlike codex/gemini,
596
+ // ClaudeCliIntelligenceProvider's constructor THROWS on a claude-forbidden
597
+ // agent — wrap construction so a throw maps to `degraded`, never escapes (§1.4).
598
+ let provider;
599
+ try {
600
+ provider =
601
+ args.providerOverride ??
602
+ (args.claudeProviderFactory
603
+ ? args.claudeProviderFactory()
604
+ : buildIntelligenceProvider({ framework: 'claude-code' }));
605
+ }
606
+ catch (err) {
607
+ const reason = err instanceof ClaudeForbiddenError ? 'claude-forbidden' : classifyReviewFailure(err);
608
+ return {
609
+ status: 'degraded',
610
+ framework: 'claude-code',
611
+ model,
612
+ reason,
613
+ flag: `clean-door-anthropic-review: claude-code:${model} (degraded: ${reason})`,
614
+ crossFamily: false,
615
+ };
616
+ }
617
+ if (!provider) {
618
+ return {
619
+ status: 'degraded',
620
+ framework: 'claude-code',
621
+ model,
622
+ reason: 'provider-unavailable',
623
+ flag: `clean-door-anthropic-review: claude-code:${model} (degraded: provider-unavailable)`,
624
+ crossFamily: false,
625
+ };
626
+ }
627
+ let raw;
628
+ try {
629
+ raw = await provider.evaluate(args.promptText, {
630
+ // The CONCRETE pin travels via reviewerHardening.model (§1.4) — never
631
+ // options.model (a tier word). reviewerHardening also flips the claude
632
+ // provider into the inbound-safety lockdown.
633
+ reviewerHardening: { model },
634
+ timeoutMs: args.timeoutMs,
635
+ attribution: { component: 'crossModelReviewer' },
636
+ });
637
+ }
638
+ catch (err) {
639
+ const reason = classifyReviewFailure(err);
640
+ return {
641
+ status: 'degraded',
642
+ framework: 'claude-code',
643
+ model,
644
+ reason,
645
+ flag: `clean-door-anthropic-review: claude-code:${model} (degraded: ${reason})`,
646
+ crossFamily: false,
647
+ };
648
+ }
649
+ const parsed = parseReviewerReply(raw, tag);
650
+ return {
651
+ status: 'ok',
652
+ framework: 'claude-code',
653
+ model,
654
+ verdict: parsed.verdict,
655
+ findings: [parsed],
656
+ // A clean-door second read gets its OWN disclosure field — NEVER the
657
+ // `cross-model-review:` flag (§5.5). A copy-paste of this into frontmatter
658
+ // cannot forge the cross-model field.
659
+ flag: `clean-door-anthropic-review: claude-code:${model}`,
660
+ crossFamily: false,
389
661
  };
390
662
  },
391
663
  };
@@ -398,7 +670,47 @@ const geminiReviewer = {
398
670
  export const SUPPORTED_REVIEWER_FRAMEWORKS = [
399
671
  codexReviewer,
400
672
  geminiReviewer,
673
+ // The Anthropic clean-door family (REVIEWER-DOOR-REWIRING §1). ALWAYS in the
674
+ // registry (so `isCrossFamilyReviewerFramework` can classify its id), but the
675
+ // ACTIVE set filters it by the developmentAgent config gate
676
+ // (`resolveActiveReviewerFrameworks`) — dark on the fleet, live on a dev agent.
677
+ claudeReviewer,
401
678
  ];
679
+ /**
680
+ * Is the Anthropic clean-door reviewer family enabled on this agent
681
+ * (REVIEWER-DOOR-REWIRING §1.5)? Resolves through the standard developmentAgent
682
+ * gate: `specConverge.reviewers.anthropic.enabled` OMITTED ⇒ live on a
683
+ * development agent, dark on the fleet; an explicit value always wins. Absent
684
+ * config ⇒ fleet-dark (byte-identical `[codex, gemini]`).
685
+ */
686
+ export function isAnthropicReviewerEnabled(config) {
687
+ return resolveDevAgentGate(config?.specConverge?.reviewers?.anthropic?.enabled, config);
688
+ }
689
+ /**
690
+ * The reviewer frameworks ACTIVE for this agent, config-gated. codex + gemini
691
+ * are always active; the claude clean-door family is active only when
692
+ * `isAnthropicReviewerEnabled(config)`. This is the seam the detection paths
693
+ * iterate — so a fleet agent (no dev flag, no explicit enable) never sees the
694
+ * claude family, preserving today's exact `[codex, gemini]` behavior.
695
+ */
696
+ export function resolveActiveReviewerFrameworks(config) {
697
+ return SUPPORTED_REVIEWER_FRAMEWORKS.filter((f) => f.id === 'claude-code' ? isAnthropicReviewerEnabled(config) : true);
698
+ }
699
+ /**
700
+ * Is `id` a CROSS-MODEL (non-Claude) reviewer family (REVIEWER-DOOR-REWIRING §5)?
701
+ * Resolves against the FULL registry (independent of the config gate — this is a
702
+ * classification of the id, not an enablement check), returning the entry's
703
+ * `crossFamily`. Fail-CLOSED: an unknown / unresolvable / undefined id resolves
704
+ * `false` (it can NEVER gain cross-model status by a lookup miss). This is the
705
+ * single predicate the aggregate flag, both detection paths, and the 7-day
706
+ * baseline all key on — so the claude family can never launder any of them.
707
+ */
708
+ export function isCrossFamilyReviewerFramework(id) {
709
+ if (!id)
710
+ return false;
711
+ const entry = SUPPORTED_REVIEWER_FRAMEWORKS.find((f) => f.id === id);
712
+ return entry?.crossFamily === true;
713
+ }
402
714
  /**
403
715
  * Trusted-provider allowlist (Piece 3 — no spec egress to untrusted
404
716
  * endpoints). The registry only ever carries FIRST-PARTY OAuth CLI adapters:
@@ -408,8 +720,20 @@ export const SUPPORTED_REVIEWER_FRAMEWORKS = [
408
720
  * cross-model review for exactly this reason — its provider may be a custom
409
721
  * endpoint. A framework id outside this list is refused by the script
410
722
  * wrapper (`--family`) with reason `untrusted-framework`.
723
+ *
724
+ * The invariant is "the spec text goes ONLY to the endpoint the OPERATOR THEMSELVES
725
+ * configured for that first-party CLI" (REVIEWER-DOOR-REWIRING §2.2) — NOT "no
726
+ * base-URL endpoint ever": each first-party CLI honors the operator's OWN
727
+ * `ANTHROPIC_BASE_URL`/`OPENAI_BASE_URL`/`GEMINI_BASE_URL`, which is the operator's
728
+ * own trusted proxy. A third-party aggregator (OpenRouter) inserted by ADDING an
729
+ * adapter is categorically different and stays out — that is why OpenRouter is
730
+ * declined (§2). `claude-code` is added here (the clean-door family needs the
731
+ * `--family claude-code` egress check to pass) — COUPLED ATOMICALLY with swapping
732
+ * the 7-day baseline predicate off `isTrustedReviewerFramework` and onto
733
+ * `isCrossFamilyReviewerFramework` (§5.4), so this addition can NEVER let a
734
+ * claude-only activation satisfy the externals-mandatory baseline.
411
735
  */
412
- export const TRUSTED_REVIEWER_FRAMEWORKS = ['codex-cli', 'gemini-cli'];
736
+ export const TRUSTED_REVIEWER_FRAMEWORKS = ['codex-cli', 'gemini-cli', 'claude-code'];
413
737
  /** Is `id` on the trusted first-party reviewer allowlist? */
414
738
  export function isTrustedReviewerFramework(id) {
415
739
  return TRUSTED_REVIEWER_FRAMEWORKS.includes(id);
@@ -425,14 +749,15 @@ export function isTrustedReviewerFramework(id) {
425
749
  * SIGNAL-ONLY: never throws, never blocks. A `false` simply routes the skill
426
750
  * to the internal-only fallback (spec §4).
427
751
  */
428
- export function detectCrossModelReviewer(inputs = {}) {
429
- for (const framework of SUPPORTED_REVIEWER_FRAMEWORKS) {
752
+ export function detectCrossModelReviewer(inputs = {}, config) {
753
+ const active = resolveActiveReviewerFrameworks(config);
754
+ for (const framework of active) {
430
755
  const result = framework.detect(inputs);
431
756
  if (result.available)
432
757
  return result;
433
758
  }
434
759
  // Nothing available. Surface the preference-leader's specific reason.
435
- const leader = SUPPORTED_REVIEWER_FRAMEWORKS[0];
760
+ const leader = active[0];
436
761
  if (leader)
437
762
  return leader.detect(inputs);
438
763
  return { available: false, reason: 'no-supported-framework' };
@@ -445,9 +770,9 @@ export function detectCrossModelReviewer(inputs = {}) {
445
770
  *
446
771
  * SIGNAL-ONLY: never throws, never blocks.
447
772
  */
448
- export function detectAllCrossModelReviewers(inputs = {}) {
773
+ export function detectAllCrossModelReviewers(inputs = {}, config) {
449
774
  const available = [];
450
- for (const framework of SUPPORTED_REVIEWER_FRAMEWORKS) {
775
+ for (const framework of resolveActiveReviewerFrameworks(config)) {
451
776
  const result = framework.detect(inputs);
452
777
  if (result.available)
453
778
  available.push(result);
@@ -655,9 +980,14 @@ export function aggregateRoundOutcomes(rounds, opts = {}) {
655
980
  // No rounds recorded at all — treat as no external reviewer available.
656
981
  return buildCrossModelFlag('unavailable', 'no-rounds-recorded');
657
982
  }
658
- // Any successful round → the spec received a real external opinion. Use the
659
- // LAST successful round's flag (the freshest pass on the most-converged spec).
660
- const successful = rounds.filter((r) => r.status === 'ok');
983
+ // Any successful CROSS-MODEL round → the spec received a real external opinion.
984
+ // ONLY `crossFamily: true` successes count toward the cross-model flag
985
+ // (REVIEWER-DOOR-REWIRING §5.2): a claude-only success (`crossFamily: false`)
986
+ // can NEVER launder a clean `cross-model-review` flag — it aggregates to
987
+ // `degraded-all-rounds`/`unavailable` exactly as today, and is disclosed
988
+ // separately in `clean-door-anthropic-review`. Fail-CLOSED on an absent field.
989
+ // Use the LAST successful round's flag (the freshest pass on the most-converged spec).
990
+ const successful = rounds.filter((r) => r.status === 'ok' && r.crossFamily === true);
661
991
  if (successful.length > 0) {
662
992
  const last = successful[successful.length - 1];
663
993
  return { status: 'available', flag: last.flag, ...(last.reason ? { reason: last.reason } : {}) };
@@ -683,20 +1013,26 @@ export function aggregateRoundOutcomes(rounds, opts = {}) {
683
1013
  * `providerOverride` exist for tests; production omits them.
684
1014
  */
685
1015
  export async function runCrossModelReview(args) {
686
- const detection = detectCrossModelReviewer(args.detectInputs);
1016
+ const detection = detectCrossModelReviewer(args.detectInputs, args.config);
687
1017
  if (!detection.available) {
688
1018
  const flag = buildCrossModelFlag('unavailable', detection.reason);
689
1019
  return {
690
1020
  status: 'unavailable',
691
1021
  reason: detection.reason,
692
1022
  flag: flag.flag,
1023
+ crossFamily: isCrossFamilyReviewerFramework(detection.framework),
693
1024
  };
694
1025
  }
695
- const framework = SUPPORTED_REVIEWER_FRAMEWORKS.find((f) => f.id === detection.framework);
1026
+ const framework = resolveActiveReviewerFrameworks(args.config).find((f) => f.id === detection.framework);
696
1027
  if (!framework) {
697
- // Defensive: detection named a framework with no registry entry.
1028
+ // Defensive: detection named a framework with no active registry entry.
698
1029
  const flag = buildCrossModelFlag('unavailable', 'no-supported-framework');
699
- return { status: 'unavailable', reason: 'no-supported-framework', flag: flag.flag };
1030
+ return {
1031
+ status: 'unavailable',
1032
+ reason: 'no-supported-framework',
1033
+ flag: flag.flag,
1034
+ crossFamily: false,
1035
+ };
700
1036
  }
701
1037
  return framework.review({
702
1038
  promptText: args.assembled.promptText,
@@ -704,6 +1040,7 @@ export async function runCrossModelReview(args) {
704
1040
  // Hand the already-computed detection down so the entry never re-probes
705
1041
  // the host (and tests stay hermetic to the injected inputs).
706
1042
  detectionOverride: detection,
1043
+ ...(args.config ? { reviewerConfig: args.config } : {}),
707
1044
  ...(args.providerOverride ? { providerOverride: args.providerOverride } : {}),
708
1045
  });
709
1046
  }
@@ -790,11 +1127,16 @@ export function wasNonClaudeFrameworkActiveWithin(stateDir, lookbackDays, now) {
790
1127
  continue;
791
1128
  const frameworks = parsed.frameworks;
792
1129
  if (frameworks && typeof frameworks === 'object') {
793
- // Only TRUSTED reviewer framework ids count toward the baseline — a
794
- // stray/hand-written key (e.g. "claude-code": true) must not flip
795
- // the externals-mandatory decision (second-pass finding, PR 3).
1130
+ // Only CROSS-MODEL (non-Claude) reviewer framework ids count toward the
1131
+ // baseline (REVIEWER-DOOR-REWIRING §5.4 swapped off
1132
+ // `isTrustedReviewerFramework` ATOMICALLY with adding `claude-code` to
1133
+ // TRUSTED). Keying on `isCrossFamilyReviewerFramework` is load-bearing:
1134
+ // `claude-code` is now TRUSTED (its egress is allowed) but is NOT
1135
+ // cross-family, so a claude-only activation must NEVER satisfy the
1136
+ // externals-mandatory baseline. A stray/hand-written non-cross-family
1137
+ // key likewise can't flip the decision.
796
1138
  const entries = Object.entries(frameworks);
797
- if (entries.some(([id, v]) => v === true && isTrustedReviewerFramework(id))) {
1139
+ if (entries.some(([id, v]) => v === true && isCrossFamilyReviewerFramework(id))) {
798
1140
  return true;
799
1141
  }
800
1142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"crossModelReviewer.js","sourceRoot":"","sources":["../../src/core/crossModelReviewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crossModelReviewer.js","sourceRoot":"","sources":["../../src/core/crossModelReviewer.ts"],"names":[],"mappings":"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"}