@lcv-ideas-software/cross-review 4.0.0 → 4.0.2

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.
@@ -1,5 +1,5 @@
1
1
  import type { AppConfig, PeerId } from "./types.js";
2
- export declare const VERSION = "4.0.0";
2
+ export declare const VERSION = "4.0.2";
3
3
  export declare const RELEASE_DATE = "2026-05-15";
4
4
  export declare const DEFAULT_MAX_OUTPUT_TOKENS = 20000;
5
5
  export declare function getLastFileConfigResult(): import("./file-config.js").ApplyFileConfigResult | undefined;
@@ -17,7 +17,7 @@ function expandHome(rawPath) {
17
17
  }
18
18
  return rawPath;
19
19
  }
20
- export const VERSION = "4.0.0";
20
+ export const VERSION = "4.0.2";
21
21
  export const RELEASE_DATE = "2026-05-15";
22
22
  export const DEFAULT_MAX_OUTPUT_TOKENS = 20_000;
23
23
  const COST_RATE_ENV_PREFIX = {
@@ -72,10 +72,10 @@ export function selectFromCandidates(peer, candidates, fallback) {
72
72
  source_url: DOCS[peer],
73
73
  confidence: selected ? "verified" : candidates.length > 0 ? "unknown" : "inferred",
74
74
  reason: selected
75
- ? `Selected the first available advanced thinking model from the documented priority list: ${priority.join(" > ")}.`
75
+ ? `Validated availability of the canonical pin in the provider's model API: ${priority.join(", ")}.`
76
76
  : candidates.length > 0
77
- ? `Model API returned candidates, but none matched the advanced thinking priority list (${priority.join(" > ")}); using documented fallback ${fallback} so the run fails visibly if unavailable instead of silently downgrading.`
78
- : `Model API unavailable; using documented fallback ${fallback}.`,
77
+ ? `Model API returned candidates, but the canonical pin (${priority.join(", ")}) was not among them; keeping the canonical pin ${fallback} so the run fails visibly instead of silently downgrading (no-fallback policy, operator directive 2026-05-14).`
78
+ : `Model API unavailable; keeping the canonical pin ${fallback} (no-fallback policy).`,
79
79
  };
80
80
  }
81
81
  function overrideSelection(peer, value) {
@@ -95,8 +95,8 @@ function overrideSelection(peer, value) {
95
95
  source_url: DOCS[peer],
96
96
  confidence: known ? "verified" : "inferred",
97
97
  reason: known
98
- ? `${envOverrideName(peer)} is set; the explicit override has priority over automatic selection.`
99
- : `${envOverrideName(peer)}='${value}' is set but is not in the documented priority list (${PRIORITY[peer].join(" > ")}); honoring the operator override but flagging confidence=inferred so any provider 404 surfaces here.`,
98
+ ? `${envOverrideName(peer)} is set to the canonical pin; the explicit override is acknowledged but matches the canonical pin exactly.`
99
+ : `${envOverrideName(peer)}='${value}' is set and differs from the canonical pin (${PRIORITY[peer].join(", ")}); honoring the operator override (the only legitimate non-canonical path) but flagging confidence=inferred so any provider 404 surfaces here.`,
100
100
  };
101
101
  }
102
102
  async function openAIModels(config) {
@@ -229,7 +229,7 @@ export async function resolveBestModel(config, peer) {
229
229
  candidates: [],
230
230
  source_url: DOCS[peer],
231
231
  confidence: "inferred",
232
- reason: "API key is missing in the current process; using the documented fallback until the key is available.",
232
+ reason: "API key is missing in the current process; keeping the canonical pin until the key is available (no-fallback policy).",
233
233
  };
234
234
  }
235
235
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"model-selection.js","sourceRoot":"","sources":["../../../src/peers/model-selection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-selection.js","sourceRoot":"","sources":["../../../src/peers/model-selection.ts"],"names":[],"mappings":"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"}
package/docs/api-keys.md CHANGED
@@ -9,6 +9,8 @@ All runtime credentials must come from Windows environment variables.
9
9
  [Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "<ANTHROPIC_API_KEY>", "User")
10
10
  [Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "<GEMINI_API_KEY>", "User")
11
11
  [Environment]::SetEnvironmentVariable("DEEPSEEK_API_KEY", "<DEEPSEEK_API_KEY>", "User")
12
+ [Environment]::SetEnvironmentVariable("GROK_API_KEY", "<GROK_API_KEY>", "User")
13
+ [Environment]::SetEnvironmentVariable("PERPLEXITY_API_KEY", "<PERPLEXITY_API_KEY>", "User")
12
14
  ```
13
15
 
14
16
  Restart any terminal, editor, app or MCP host after changing these variables.
@@ -25,6 +27,10 @@ Use overrides only when you intentionally want to pin a model rather than use au
25
27
  [Environment]::SetEnvironmentVariable("CROSS_REVIEW_GEMINI_MODEL", "gemini-2.5-pro", "User")
26
28
  [Environment]::SetEnvironmentVariable("CROSS_REVIEW_DEEPSEEK_MODEL", "deepseek-v4-pro", "User")
27
29
  [Environment]::SetEnvironmentVariable("CROSS_REVIEW_DEEPSEEK_REASONING_EFFORT", "max", "User")
30
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_GROK_MODEL", "grok-4-latest", "User")
31
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_MODEL", "sonar-reasoning-pro", "User")
32
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_REASONING_EFFORT", "high", "User")
33
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_SEARCH_CONTEXT_SIZE", "low", "User")
28
34
  ```
29
35
 
30
36
  ## Safety
@@ -114,5 +114,9 @@ Raw chain-of-thought is not persisted. Session continuity is represented through
114
114
 
115
115
  ## Stable Rename
116
116
 
117
- Stable version `2.1.0` renamed the active product to `cross-review`. The earlier development
118
- name remains only in historical changelog or memory notes.
117
+ The v4.0.0 release on 2026-05-15 renamed the product from `cross-review-v2` to
118
+ `cross-review` (npm package, GitHub repo, GitHub Pages domain, MCP server key
119
+ in host configs, env-var prefix, binaries). The companion `cross-review-v1`
120
+ package was discontinued and archived on the same date. Prior names remain
121
+ only in dated historical changelog entries and memory notes; all active
122
+ surfaces describe the product as `cross-review`.
package/docs/costs.md CHANGED
@@ -30,6 +30,13 @@ Set rates through Windows environment variables or the MCP host configuration be
30
30
  [Environment]::SetEnvironmentVariable("CROSS_REVIEW_GEMINI_OUTPUT_USD_PER_MILLION", "<current Gemini output rate>", "User")
31
31
  [Environment]::SetEnvironmentVariable("CROSS_REVIEW_DEEPSEEK_INPUT_USD_PER_MILLION", "<current DeepSeek input rate>", "User")
32
32
  [Environment]::SetEnvironmentVariable("CROSS_REVIEW_DEEPSEEK_OUTPUT_USD_PER_MILLION", "<current DeepSeek output rate>", "User")
33
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_GROK_INPUT_USD_PER_MILLION", "<current Grok input rate>", "User")
34
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_GROK_OUTPUT_USD_PER_MILLION", "<current Grok output rate>", "User")
35
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_INPUT_USD_PER_MILLION", "<current Perplexity input rate>", "User")
36
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_OUTPUT_USD_PER_MILLION", "<current Perplexity output rate>", "User")
37
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_REQUEST_FEE_LOW_USD_PER_1000_REQUESTS", "<Perplexity per-1000-requests low-context fee>", "User")
38
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_REQUEST_FEE_MEDIUM_USD_PER_1000_REQUESTS", "<Perplexity per-1000-requests medium-context fee>", "User")
39
+ [Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_REQUEST_FEE_HIGH_USD_PER_1000_REQUESTS", "<Perplexity per-1000-requests high-context fee>", "User")
33
40
  ```
34
41
 
35
42
  `CROSS_REVIEW_MAX_SESSION_COST_USD` sets the default per-session budget guard. `CROSS_REVIEW_PREFLIGHT_MAX_ROUND_COST_USD` blocks a round before calls begin when the estimated cost exceeds the configured value. `CROSS_REVIEW_UNTIL_STOPPED_MAX_COST_USD` is required for `until_stopped=true`.
@@ -1,70 +1,69 @@
1
1
  # Model Selection
2
2
 
3
- The server uses automatic model selection unless an explicit environment override is present.
3
+ The server pins each peer to ONE canonical model per the no-downgrade policy
4
+ (operator directive 2026-05-14). The runtime never silently chains a
5
+ multi-model fallback. An explicit operator override via
6
+ `CROSS_REVIEW_<PROVIDER>_MODEL` env-var is the only way to deviate from the
7
+ canonical pin.
4
8
 
5
9
  ## Rules
6
10
 
7
- 1. Query the provider's official model API using the current API key.
11
+ 1. Query the provider's official model API using the current API key to
12
+ validate that the canonical pin is currently available.
8
13
  2. Keep only models that can perform text generation for the peer role.
9
- 3. Exclude known non-thinking, low-capacity or deprecated models from cross-review priority lists.
10
- 4. Compare returned model IDs against the documented priority list.
11
- 5. Select the first available model in that priority list.
12
- 6. Persist the selected model, candidate list, source URL, confidence and reason in the session snapshot.
13
-
14
- If a provider returns models but none match the advanced thinking priority list, the runtime keeps the documented advanced fallback instead of silently downgrading to a weaker random candidate. That makes availability problems visible in probes and review rounds.
14
+ 3. Exclude known non-thinking, low-capacity or deprecated models they
15
+ never become the canonical pin.
16
+ 4. Compare returned model IDs against the canonical pin documented below.
17
+ 5. If the canonical pin is in the API response, select it; if the canonical
18
+ pin is NOT in the response, KEEP the canonical pin anyway (no silent
19
+ downgrade) so any provider availability problem surfaces visibly in
20
+ probes and review rounds instead of mutating into a weaker model behind
21
+ the operator's back.
22
+ 6. Persist the selected model, candidate list, source URL, confidence and
23
+ reason in the session snapshot.
15
24
 
16
25
  The no-downgrade behavior is covered by `scripts/smoke.ts`: when a provider
17
- returns only a weak/deprecated candidate such as `claude-haiku-4-5`, selection
18
- stays on the documented advanced fallback and records `confidence=unknown`.
19
-
20
- ## Current Priority Lists
21
-
22
- OpenAI/Codex:
23
-
24
- ```text
25
- gpt-5.5 > gpt-5.4 > gpt-5.2 > gpt-5.1-codex-max > gpt-5.1-codex > gpt-5.1 > gpt-5-pro > gpt-5
26
- ```
27
-
28
- Anthropic/Claude:
29
-
30
- ```text
31
- claude-opus-4-7 > claude-opus-4-6 > claude-sonnet-4-6
32
- ```
33
-
34
- Haiku is intentionally excluded because the cross-review role requires advanced reasoning depth.
35
-
36
- Google/Gemini:
37
-
38
- ```text
39
- gemini-2.5-pro > gemini-3.1-pro-preview
40
- ```
41
-
42
- Operator preference 2026-05-07: `gemini-2.5-pro` is the runtime default because under Google One AI Ultra subscription it carries 1k requests/day vs `gemini-3.1-pro-preview`'s 250 requests/day; `gemini-3.1-pro-preview` remains in the priority list as a fallback. Workspace policy (operator directive 2026-05-07): only `gemini-*-pro` variants ≥ 2.5 are permitted — no `*-flash` variants and no models below 2.5 (those are deprecated). `gemini-3-pro-preview` is intentionally excluded from the active fallback path because preview model deprecation is tracked through official Gemini release notes and this project avoids soon-to-deprecate intermediate previews when a newer advanced model is available.
43
-
44
- DeepSeek:
45
-
46
- ```text
47
- deepseek-v4-pro > deepseek-v4-flash
48
- ```
49
-
50
- `deepseek-chat` and `deepseek-reasoner` are not active fallbacks because DeepSeek has announced their deprecation for 2026-07-24. `deepseek-v4-pro` is the preferred thinking-capable model for this project.
51
-
52
- xAI/Grok:
53
-
54
- ```text
55
- grok-4.20-multi-agent > grok-4-latest > grok-4.3 > grok-4.20-reasoning > grok-4.20 > grok-4-1-fast > grok-4 > grok-3-fast > grok-3
56
- ```
57
-
58
- `GROK_API_KEY` is the canonical auth variable. The operator chooses the model
59
- with `CROSS_REVIEW_GROK_MODEL`. Per official xAI reasoning docs, only
60
- `grok-4.20-multi-agent` accepts an explicit `reasoning.effort` request body
61
- field, where the value selects agent count (`low`/`medium` = 4 agents,
62
- `high`/`xhigh` = 16 agents). Automatic-reasoning Grok models such as
63
- `grok-4-latest`, `grok-4.20`, and `grok-4.20-reasoning` must not receive that
64
- field; the adapter detects the configured model and omits it automatically.
65
- The xAI model catalog currently recommends `grok-4.3` for general Chat API
66
- usage; the multi-agent model remains first in this project because it is the
67
- only documented Grok model with explicit agent-count control.
26
+ returns only a weak/deprecated candidate such as `claude-haiku-4-5`,
27
+ selection stays on the canonical pin and records `confidence=unknown`.
28
+
29
+ ## Current Canonical Pins (no-fallback policy, operator directive 2026-05-14)
30
+
31
+ Each peer is pinned to exactly ONE canonical model — the most advanced "pro
32
+ with reasoning" model available from the provider. The runtime no longer
33
+ chains a multi-model fallback list. If the pinned model is genuinely
34
+ unavailable, the round retries on the same model or skips that peer
35
+ (skip-gated quorum floor; see `src/core/convergence.ts`). The only escape
36
+ hatch is an explicit operator override via `CROSS_REVIEW_<PROVIDER>_MODEL`
37
+ env-var per host — a deliberate decision, never a silent downgrade.
38
+
39
+ | Peer | Pin | Override env-var |
40
+ | ---------------- | --------------------- | ------------------------------- |
41
+ | OpenAI/Codex | `gpt-5.5` | `CROSS_REVIEW_OPENAI_MODEL` |
42
+ | Anthropic/Claude | `claude-opus-4-7` | `CROSS_REVIEW_ANTHROPIC_MODEL` |
43
+ | Google/Gemini | `gemini-2.5-pro` | `CROSS_REVIEW_GEMINI_MODEL` |
44
+ | DeepSeek | `deepseek-v4-pro` | `CROSS_REVIEW_DEEPSEEK_MODEL` |
45
+ | xAI/Grok | `grok-4-latest` | `CROSS_REVIEW_GROK_MODEL` |
46
+ | Perplexity | `sonar-reasoning-pro` | `CROSS_REVIEW_PERPLEXITY_MODEL` |
47
+
48
+ Haiku and other low-capacity Anthropic models are intentionally excluded —
49
+ the cross-review role requires advanced reasoning depth.
50
+
51
+ Operator preference 2026-05-07: `gemini-2.5-pro` is the runtime default
52
+ because under Google One AI Ultra subscription it carries 1k requests/day vs
53
+ `gemini-3.1-pro-preview`'s 250 requests/day. Workspace policy: only
54
+ `gemini-*-pro` variants ≥ 2.5 are permitted — no `*-flash` variants and no
55
+ models below 2.5.
56
+
57
+ `GROK_API_KEY` is the canonical auth variable for xAI. The runtime sends
58
+ `reasoning.effort` only for models that explicitly accept it (e.g.
59
+ `grok-4.20-multi-agent`); for automatic-reasoning models such as the pinned
60
+ `grok-4-latest`, the adapter omits the field automatically.
61
+
62
+ `PERPLEXITY_API_KEY` is the canonical auth variable for Perplexity Sonar.
63
+ Sonar billing has a 3rd dimension: per-1000-requests fee that scales with
64
+ `CROSS_REVIEW_PERPLEXITY_SEARCH_CONTEXT_SIZE` (low/medium/high). When
65
+ Perplexity is the relator (lottery), the adapter forces `disable_search=true`
66
+ to skip search for the synthesis step.
68
67
 
69
68
  ## Thinking Configuration
70
69
 
@@ -100,6 +99,6 @@ repair:
100
99
 
101
100
  ## Important
102
101
 
103
- The priority list is intentionally code-level configuration, not hidden behavior. Provider model catalogs and deprecation schedules change often, so this file and `src/peers/model-selection.ts` must be reviewed against official provider documentation whenever defaults change.
102
+ The canonical pin per peer is intentionally code-level configuration, not hidden behavior. Provider model catalogs and deprecation schedules change often, so this file and `src/peers/model-selection.ts` must be reviewed against official provider documentation whenever a pin changes.
104
103
 
105
104
  The redacted real-API capability smoke for the current default models is recorded in `docs/reports/cross-review-api-capability-smoke-2026-04-30.md`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lcv-ideas-software/cross-review",
3
- "version": "4.0.0",
3
+ "version": "4.0.2",
4
4
  "description": "API-first MCP server for multi-model cross-review with unanimous convergence gates.",
5
5
  "type": "module",
6
6
  "main": "dist/src/mcp/server.js",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@anthropic-ai/sdk": "^0.96.0",
40
- "@google/genai": "^2.0.0",
40
+ "@google/genai": "^2.3.0",
41
41
  "@modelcontextprotocol/sdk": "^1.29.0",
42
42
  "openai": "^6.35.0",
43
43
  "pino": "^10.3.1",
@@ -50,7 +50,7 @@
50
50
  "devDependencies": {
51
51
  "@eslint/js": "^10.0.1",
52
52
  "@types/node": "^25.6.0",
53
- "eslint": "^10.2.1",
53
+ "eslint": "^10.4.0",
54
54
  "prettier": "^3.8.3",
55
55
  "tsx": "^4.21.0",
56
56
  "typescript": "^6.0.3",