crosscheck-cli 0.0.52 → 0.0.54
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/dist/cli-enterprise.js +9 -0
- package/dist/cli-enterprise.js.map +1 -1
- package/dist/cli.js +14 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/doctor.js +30 -0
- package/dist/doctor.js.map +1 -1
- package/dist/enterprise/policy.js +5 -1
- package/dist/enterprise/policy.js.map +1 -1
- package/dist/mcp.js +41 -2
- package/dist/mcp.js.map +1 -1
- package/dist/model-policy.js +49 -0
- package/dist/model-policy.js.map +1 -0
- package/dist/model-prefs.js +153 -0
- package/dist/model-prefs.js.map +1 -0
- package/dist/model-resolve.js +77 -0
- package/dist/model-resolve.js.map +1 -0
- package/dist/models-cli.js +171 -0
- package/dist/models-cli.js.map +1 -0
- package/package.json +2 -2
package/dist/cli-enterprise.js
CHANGED
|
@@ -16,6 +16,7 @@ import { runDoctor } from "./doctor.js";
|
|
|
16
16
|
import { runHeartbeat } from "./heartbeat.js";
|
|
17
17
|
import { deleteSecret, listSecrets, ONEPASSWORD_LIST_PLACEHOLDER } from "./keychain.js";
|
|
18
18
|
import { startMcpServer } from "./mcp.js";
|
|
19
|
+
import { runModelsCommand } from "./models-cli.js";
|
|
19
20
|
const HELP = `crosscheck-enterprise — multi-LLM orchestration MCP for the terminal (enterprise)
|
|
20
21
|
|
|
21
22
|
Usage:
|
|
@@ -27,6 +28,10 @@ Usage:
|
|
|
27
28
|
crosscheck-enterprise heartbeat Check status against the server.
|
|
28
29
|
crosscheck-enterprise keys setup 1Password wizard, restricted to your org's allowed providers.
|
|
29
30
|
crosscheck-enterprise serve Start the MCP server (stdio), enforcing your org's provider policy.
|
|
31
|
+
crosscheck-enterprise models Show the effective model per provider and why (your
|
|
32
|
+
preference, org policy, or default).
|
|
33
|
+
crosscheck-enterprise models set <provider> <model> Prefer a specific model, if your org's
|
|
34
|
+
policy allows it.
|
|
30
35
|
crosscheck-enterprise doctor Diagnose a broken install, including org-policy compliance.
|
|
31
36
|
crosscheck-enterprise help Show this help.
|
|
32
37
|
|
|
@@ -105,6 +110,10 @@ async function main() {
|
|
|
105
110
|
await startMcpServer({ enforceProviderPolicy: true });
|
|
106
111
|
return;
|
|
107
112
|
}
|
|
113
|
+
case "models": {
|
|
114
|
+
await runModelsCommand(rest[0], rest.slice(1));
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
108
117
|
default:
|
|
109
118
|
// eslint-disable-next-line no-console
|
|
110
119
|
console.error(`Unknown command: ${cmd}\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-enterprise.js","sourceRoot":"","sources":["../src/cli-enterprise.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-enterprise.js","sourceRoot":"","sources":["../src/cli-enterprise.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -15,6 +15,7 @@ import { runKeysSetup } from "./keys-setup.js";
|
|
|
15
15
|
import { runOnePasswordKeysSetup } from "./onepassword/setup.js";
|
|
16
16
|
import { runInstall } from "./install.js";
|
|
17
17
|
import { startMcpServer } from "./mcp.js";
|
|
18
|
+
import { runModelsCommand } from "./models-cli.js";
|
|
18
19
|
const HELP = `crosscheck — multi-LLM orchestration MCP for the terminal
|
|
19
20
|
|
|
20
21
|
Usage:
|
|
@@ -44,6 +45,15 @@ Usage:
|
|
|
44
45
|
(macOS only; prompts for your login password).
|
|
45
46
|
Migrates existing secrets to the chosen store.
|
|
46
47
|
crosscheck serve Start the MCP server (stdio).
|
|
48
|
+
crosscheck models Show the effective model per provider and why
|
|
49
|
+
(env var, your preference, org policy, or default).
|
|
50
|
+
crosscheck models get <provider> Show the effective model for one provider.
|
|
51
|
+
crosscheck models set <provider> <model> Prefer a specific model for that provider — e.g.
|
|
52
|
+
if your OpenAI account doesn't have gpt-5.5 yet:
|
|
53
|
+
\`crosscheck models set openai gpt-5\`.
|
|
54
|
+
crosscheck models unset <provider> Clear your preference — back to the engine default.
|
|
55
|
+
crosscheck models sync Pull the preference set at crosscheckagent.com/
|
|
56
|
+
account/models into this machine.
|
|
47
57
|
crosscheck doctor Diagnose a broken install (Node, secret store,
|
|
48
58
|
engine, activation, keys).
|
|
49
59
|
crosscheck help Show this help.
|
|
@@ -298,6 +308,10 @@ async function main() {
|
|
|
298
308
|
await startMcpServer();
|
|
299
309
|
return;
|
|
300
310
|
}
|
|
311
|
+
case "models": {
|
|
312
|
+
await runModelsCommand(rest[0], rest.slice(1));
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
301
315
|
default:
|
|
302
316
|
// eslint-disable-next-line no-console
|
|
303
317
|
console.error(`Unknown command: ${cmd}\n`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,4BAA4B,EAC5B,aAAa,EACb,SAAS,EACT,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -31,7 +31,7 @@ export const ENGINE_PACKAGE = "crosscheck-mcp";
|
|
|
31
31
|
* mode behind "MCP error -32000: Connection closed" on some machines). Keep
|
|
32
32
|
* this in lockstep with the `crosscheck-mcp` dependency in package.json.
|
|
33
33
|
*/
|
|
34
|
-
export const ENGINE_FALLBACK_VERSION = "0.2.
|
|
34
|
+
export const ENGINE_FALLBACK_VERSION = "0.2.15";
|
|
35
35
|
/**
|
|
36
36
|
* Ed25519 public key (PEM, SPKI) used to verify activation JWTs. This is
|
|
37
37
|
* replaced at build time by the publish pipeline with the public half of
|
package/dist/doctor.js
CHANGED
|
@@ -21,6 +21,9 @@ import { SERVER_ARGS, SERVER_COMMAND, SERVER_NAME } from "./mcp-register.js";
|
|
|
21
21
|
import { loadOnePasswordConfig } from "./onepassword/config.js";
|
|
22
22
|
import { checkOpVersion, MIN_OP_VERSION } from "./onepassword/op.js";
|
|
23
23
|
import { validateOnePasswordSetup } from "./onepassword/setup.js";
|
|
24
|
+
import { fetchProviderPolicy } from "./enterprise/policy.js";
|
|
25
|
+
import { readLocalModelPrefs } from "./model-prefs.js";
|
|
26
|
+
import { resolveAllModels } from "./model-resolve.js";
|
|
24
27
|
const require = createRequire(import.meta.url);
|
|
25
28
|
export function line(level, msg) {
|
|
26
29
|
const mark = level === "ok" ? "✓" : level === "warn" ? "!" : "✗";
|
|
@@ -271,6 +274,33 @@ export async function runDoctor() {
|
|
|
271
274
|
if (keys.some((k) => k.account === "key:grok")) {
|
|
272
275
|
line("warn", "xAI note: a valid xai- key still fails until your xAI account has credits/billing — add them at console.x.ai if Grok calls are rejected.");
|
|
273
276
|
}
|
|
277
|
+
// 6b. Effective model per configured provider + why — this is the
|
|
278
|
+
// check that would have caught a hardcoded/mismatched default (e.g.
|
|
279
|
+
// gpt-5.5 on an account only entitled to gpt-5) before the first
|
|
280
|
+
// failed call, not after.
|
|
281
|
+
try {
|
|
282
|
+
const configuredProviders = new Set(keys.map((k) => k.account.slice("key:".length)));
|
|
283
|
+
const jwt = await getSecret("jwt");
|
|
284
|
+
const orgPolicy = jwt ? await fetchProviderPolicy(jwt) : null;
|
|
285
|
+
const resolved = resolveAllModels({
|
|
286
|
+
env: process.env,
|
|
287
|
+
localPrefs: readLocalModelPrefs(),
|
|
288
|
+
modelPolicy: orgPolicy?.modelPolicy,
|
|
289
|
+
}).filter((r) => configuredProviders.has(r.provider));
|
|
290
|
+
for (const r of resolved) {
|
|
291
|
+
if (r.source === "blocked") {
|
|
292
|
+
line("warn", `${r.provider}: your preference is blocked by org policy, with no fallback — ` +
|
|
293
|
+
`\`crosscheck models get ${r.provider}\` for detail, or ask your admin to set a fallback.`);
|
|
294
|
+
}
|
|
295
|
+
else if (r.model) {
|
|
296
|
+
const fallbacks = r.fallbackModels.length > 0 ? `, fallbacks: ${r.fallbackModels.join(", ")}` : "";
|
|
297
|
+
line("ok", `${r.provider} model: ${r.model} (${r.source}${fallbacks})`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
catch (e) {
|
|
302
|
+
line("warn", `Could not resolve effective models: ${e.message}`);
|
|
303
|
+
}
|
|
274
304
|
}
|
|
275
305
|
}
|
|
276
306
|
catch (e) {
|
package/dist/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,4BAA4B,EAC5B,aAAa,EACb,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAI/C,MAAM,UAAU,IAAI,CAAC,KAAY,EAAE,GAAW;IAC5C,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACjE,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AAClC,CAAC;AAED;;;+DAG+D;AAC/D,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YAC/C,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAyB,CAAC;QAC9E,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAOD;;;;;;2EAM2E;AAC3E,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6C,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,WAAW,CAEhC,CAAC;QACd,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,OAAO,GACX,OAAO,KAAK,cAAc;YAC1B,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;YAClC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAE7D,mBAAmB;IACnB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9E,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE,QAAQ,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,EAAE,QAAQ,OAAO,CAAC,QAAQ,CAAC,IAAI,+DAA+D,CAAC,CAAC;QAC3G,QAAQ,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,wEAAwE;IACxE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,sBAAsB,CAAC;QACrC,MAAM,KAAK,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC;QACrC,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YAClB,MAAM,KAAK,GACT,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,oBAAoB,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAChF,IAAI,CAAC,IAAI,EAAE,uBAAuB,KAAK,GAAG,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,EAAE,8CAA8C,OAAO,GAAG,CAAC,CAAC;YACvE,QAAQ,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,EAAE,mCAAmC,OAAO,MAAO,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,kEAAkE,CAAC,CAAC;QACnF,CAAC;QACD,QAAQ,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,oDAAoD;IACpD,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE,iBAAiB,KAAK,EAAE,CAAC,CAAC;QACrC,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,MAAM,EAAE,WAAW,cAAc,sEAAsE,CAAC,CAAC;IAChH,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,qEAAqE;IACrE,0EAA0E;IAC1E,mEAAmE;IACnE,gCAAgC;IAChC,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,MAAM,CACzC,GAAG,cAAc,aAAa,CAC/B,CAA+C,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,EAAE,yBAAyB,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC9B,IAAI,CACF,MAAM,EACN,qEAAqE,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI;oBAChG,mBAAmB,MAAM,CAAC,WAAW,CAAC,QAAQ,+CAA+C;oBAC7F,wDAAwD;oBACxD,uFAAuF;oBACvF,uCAAuC,CAC1C,CAAC;gBACF,QAAQ,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,EAAE,8BAA8B,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5E,QAAQ,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,EAAE,uCAAwC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,qEAAqE;IACrE,IAAI,CAAC;QACH,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAClD,kBAAkB,CAAC,WAAW,CAAC;YAC/B,kBAAkB,CAAC,cAAc,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,EAAE,mEAAmE,CAAC,CAAC;QACpF,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,EAAE,kBAAkB,WAAW,4CAA4C,SAAS,IAAI,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,EAAE,kBAAkB,WAAW,cAAc,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;QAC7C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,EAAE,2BAA2B,aAAa,4CAA4C,YAAY,IAAI,CAAC,CAAC;YACrH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,EAAE,2BAA2B,aAAa,cAAc,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;QAC5C,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/E,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CACF,MAAM,EACN,qBAAqB,aAAa,CAAC,IAAI,QAAQ,aAAa,CAAC,OAAO,oBAAoB,SAAS,MAAM;oBACrG,+EAA+E,CAClF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CACF,MAAM,EACN,qBAAqB,aAAa,CAAC,IAAI,MAAM,aAAa,CAAC,OAAO,sCAAsC;oBACtG,yHAAyH,CAC5H,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,EAAE,gCAAiC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;IAC5C,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE,+DAA+D,CAAC,CAAC;IAC9E,CAAC;SAAM,IAAI,YAAY,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QAC1C,IAAI,CACF,MAAM,EACN,kBAAkB,WAAW,yBAAyB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG;YAC3F,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG;YACjG,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,uDAAuD;YACrF,4FAA4F;YAC5F,sEAAsE,CACzE,CAAC;IACJ,CAAC;IACD,yEAAyE;IACzE,0EAA0E;IAE1E,iBAAiB;IACjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,EAAE,gDAAgD,CAAC,CAAC;YAC/D,QAAQ,IAAI,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,EAAE;gBAAE,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;iBAC5C,CAAC;gBACJ,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,MAAM,wDAAwD,UAAU,YAAY,CAAC,CAAC;gBACtH,QAAQ,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,EAAE,+BAAgC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,QAAQ,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,EAAE,wEAAwE,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,gBAAgB,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;YACnF,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,CAAC,CAAC,QAAQ,KAAK,4BAA4B,EAAE,CAAC;oBAChD,8DAA8D;oBAC9D,4DAA4D;oBAC5D,+DAA+D;oBAC/D,cAAc;oBACd,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,qDAAqD,CAAC,CAAC;oBACzE,SAAS;gBACX,CAAC;gBACD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,OAAO;oBAAE,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,oBAAoB,OAAO,EAAE,CAAC,CAAC;qBAClE,CAAC;oBACJ,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC1C,IAAI,CAAC;wBAAE,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE,CAAC;gBAC/C,IAAI,CACF,MAAM,EACN,0IAA0I,CAC3I,CAAC;YACJ,CAAC;YAED,kEAAkE;YAClE,oEAAoE;YACpE,iEAAiE;YACjE,0BAA0B;YAC1B,IAAI,CAAC;gBACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrF,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9D,MAAM,QAAQ,GAAG,gBAAgB,CAAC;oBAChC,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,UAAU,EAAE,mBAAmB,EAAE;oBACjC,WAAW,EAAE,SAAS,EAAE,WAAW;iBACpC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACtD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC3B,IAAI,CACF,MAAM,EACN,GAAG,CAAC,CAAC,QAAQ,iEAAiE;4BAC5E,2BAA2B,CAAC,CAAC,QAAQ,qDAAqD,CAC7F,CAAC;oBACJ,CAAC;yBAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;wBACnB,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,EAAE,uCAAwC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,EAAE,iCAAkC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,oEAAoE;IACpE,yEAAyE;IACzE,uEAAuE;IACvE,qEAAqE;IACrE,0EAA0E;IAC1E,gDAAgD;IAChD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,qBAAqB,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,EAAE,qDAAqD,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/F,QAAQ,IAAI,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YAC9D,IAAI,CACF,IAAI,EACJ,sCAAsC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,aAAa,qBAAqB,CACjG,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,cAAc,EAAE,CAAC;YAC5C,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,EAAE,MAAM,YAAY,CAAC,OAAO,cAAc,cAAc,GAAG,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,EAAE,oBAAoB,YAAY,CAAC,KAAK,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChF,QAAQ,IAAI,CAAC,CAAC;YAChB,CAAC;YACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,GAAG,EAAE,CAAC;oBAC1D,MAAM,WAAW,GAAG,MAAM,wBAAwB,EAAE,CAAC;oBACrD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;oBACzF,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;wBAC1B,IAAI,CACF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,KAAK,EAAE,CAChG,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CACF,MAAM,EACN,mEAAmE;wBACjE,4DAA4D;wBAC5D,wEAAwE,CAC3E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,kBAAkB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,qEAAqE,CAAC,CAAC;IAC3I,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -55,7 +55,11 @@ export async function fetchProviderPolicy(jwt) {
|
|
|
55
55
|
if (!("ok" in body) || !body.ok) {
|
|
56
56
|
return readCache();
|
|
57
57
|
}
|
|
58
|
-
const policy = {
|
|
58
|
+
const policy = {
|
|
59
|
+
version: body.version,
|
|
60
|
+
allowedProviders: body.allowedProviders,
|
|
61
|
+
...(body.modelPolicy ? { modelPolicy: body.modelPolicy } : {}),
|
|
62
|
+
};
|
|
59
63
|
writeCache(policy);
|
|
60
64
|
return policy;
|
|
61
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/enterprise/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/enterprise/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAczC,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,wBAAwB,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;QACjD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAsB;IACxC,IAAI,CAAC;QACH,aAAa,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,oDAAoD;IACtD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,UAAU,mCAAmC,EAAE;YAC1E,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE,EAAE;SAC5C,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC3B,OAAO,SAAS,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAEH,CAAC;QACjC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAChC,OAAO,SAAS,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAmB;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC;QACF,UAAU,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,EAAE,CAAC;IACrB,CAAC;AACH,CAAC"}
|
package/dist/mcp.js
CHANGED
|
@@ -30,6 +30,8 @@ import { notifyIfOutdated } from "./update-check.js";
|
|
|
30
30
|
import { claimSingleInstance, releaseSingleInstance, sweepOrphanedInstances, } from "./single-instance.js";
|
|
31
31
|
import { resolveEngineVersion } from "./engine-version.js";
|
|
32
32
|
import { fetchProviderPolicy } from "./enterprise/policy.js";
|
|
33
|
+
import { readLocalModelPrefs } from "./model-prefs.js";
|
|
34
|
+
import { resolveAllModels, MODEL_ENV_VARS } from "./model-resolve.js";
|
|
33
35
|
const require = createRequire(import.meta.url);
|
|
34
36
|
/** Keychain key name -> engine env var name. Mirrors crosscheck-mcp's providers. */
|
|
35
37
|
const KEY_BINDINGS = [
|
|
@@ -137,11 +139,12 @@ export async function startMcpServer(opts) {
|
|
|
137
139
|
// and filter to it — this is what makes a policy change take effect on
|
|
138
140
|
// the very next `serve` launch without the user redoing key setup.
|
|
139
141
|
let allowedProviders;
|
|
142
|
+
let orgPolicy = null;
|
|
140
143
|
if (opts?.enforceProviderPolicy) {
|
|
141
144
|
const freshJwt = (await getSecret("jwt")) ?? jwt;
|
|
142
|
-
|
|
145
|
+
orgPolicy = await fetchProviderPolicy(freshJwt);
|
|
143
146
|
// No live fetch AND no cache -> fail restrictive (empty set), never open.
|
|
144
|
-
allowedProviders = new Set(
|
|
147
|
+
allowedProviders = new Set(orgPolicy?.allowedProviders ?? []);
|
|
145
148
|
}
|
|
146
149
|
let keys;
|
|
147
150
|
try {
|
|
@@ -208,6 +211,42 @@ export async function startMcpServer(opts) {
|
|
|
208
211
|
// core/update-notify.ts.
|
|
209
212
|
CROSSCHECK_CLI_VERSION: CLI_VERSION,
|
|
210
213
|
};
|
|
214
|
+
// Which model to actually call, per provider that has a key configured —
|
|
215
|
+
// explicit shell env var > saved preference (crosscheck models set / the
|
|
216
|
+
// browser at /account/models) > org model policy's fallback. Applied by
|
|
217
|
+
// SETTING or DELETING the env var outright (never left to spread-with-
|
|
218
|
+
// undefined semantics) so a policy-blocked preference can't leak through
|
|
219
|
+
// via the inherited process.env spread above. Also sets
|
|
220
|
+
// <PROVIDER>_MODEL_FALLBACKS — "greenlight fallbacks" the engine tries,
|
|
221
|
+
// in order, only on a model-access failure (crosscheck-mcp's core/
|
|
222
|
+
// model-fallback.ts) — layered from the user's own configured chain
|
|
223
|
+
// plus any org-allowed models not already in it.
|
|
224
|
+
const configuredProviders = new Set(KEY_BINDINGS.filter(([, envVar]) => envVar in keys).map(([name]) => name.slice("key:".length)));
|
|
225
|
+
const resolvedModels = resolveAllModels({
|
|
226
|
+
env: process.env,
|
|
227
|
+
localPrefs: readLocalModelPrefs(),
|
|
228
|
+
modelPolicy: orgPolicy?.modelPolicy,
|
|
229
|
+
});
|
|
230
|
+
for (const r of resolvedModels) {
|
|
231
|
+
if (!configuredProviders.has(r.provider))
|
|
232
|
+
continue;
|
|
233
|
+
const modelEnvVar = MODEL_ENV_VARS[r.provider];
|
|
234
|
+
if (!modelEnvVar)
|
|
235
|
+
continue;
|
|
236
|
+
if (r.model !== undefined) {
|
|
237
|
+
env[modelEnvVar] = r.model;
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
delete env[modelEnvVar];
|
|
241
|
+
}
|
|
242
|
+
const fallbacksEnvVar = `${modelEnvVar}_FALLBACKS`;
|
|
243
|
+
if (r.fallbackModels.length > 0) {
|
|
244
|
+
env[fallbacksEnvVar] = r.fallbackModels.join(",");
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
delete env[fallbacksEnvVar];
|
|
248
|
+
}
|
|
249
|
+
}
|
|
211
250
|
const child = spawn(command, args, { env, stdio: "inherit" });
|
|
212
251
|
// Keep the activation alive for the life of this serve process: fire a
|
|
213
252
|
// heartbeat now and every 24h. This refreshes the JWT well before its 7-day
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure resolution logic for "which model actually gets called for this
|
|
3
|
+
* provider" — no I/O. Two independent things feed it:
|
|
4
|
+
* - a candidate model (explicit env var override > a saved personal
|
|
5
|
+
* preference > nothing), resolved by the caller before this runs
|
|
6
|
+
* - an optional enterprise model policy entry for that provider
|
|
7
|
+
* (crosscheck-enterprise only — a standard install never has one)
|
|
8
|
+
*
|
|
9
|
+
* A model policy is a hard clamp, not a suggestion: if the candidate isn't
|
|
10
|
+
* allowed, this never returns it. Deliberately does NOT know crosscheck-mcp's
|
|
11
|
+
* own DEFAULT_MODELS (duplicating that map here would just reintroduce the
|
|
12
|
+
* exact staleness bug detectStalePins was built to catch) — when nothing
|
|
13
|
+
* safe can be resolved, it returns undefined and the caller leaves the
|
|
14
|
+
* env var unset, deferring to the engine's own built-in default. An admin
|
|
15
|
+
* who wants a *specific* fallback should set `pinned`, or list it first
|
|
16
|
+
* in `allow`.
|
|
17
|
+
*/
|
|
18
|
+
function isAllowedByPolicy(model, policy) {
|
|
19
|
+
if (policy.deny.includes(model))
|
|
20
|
+
return false;
|
|
21
|
+
return policy.allow === "*" || policy.allow.includes(model);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the effective model for one provider. `policy` is this
|
|
25
|
+
* provider's entry only (or undefined — most providers on a standard
|
|
26
|
+
* install have none). Returns undefined when nothing safe to inject was
|
|
27
|
+
* found, meaning: don't set the env var, let the engine use its own
|
|
28
|
+
* default.
|
|
29
|
+
*/
|
|
30
|
+
export function resolveEffectiveModel(args) {
|
|
31
|
+
const { candidate, policy } = args;
|
|
32
|
+
if (!policy)
|
|
33
|
+
return candidate;
|
|
34
|
+
if (candidate && isAllowedByPolicy(candidate, policy))
|
|
35
|
+
return candidate;
|
|
36
|
+
if (policy.pinned && isAllowedByPolicy(policy.pinned, policy))
|
|
37
|
+
return policy.pinned;
|
|
38
|
+
if (Array.isArray(policy.allow)) {
|
|
39
|
+
return policy.allow.find((m) => isAllowedByPolicy(m, policy));
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
/** True when `model` would be rejected by `policy` — used to tell the user
|
|
44
|
+
* WHY their chosen preference didn't take effect, distinct from "no
|
|
45
|
+
* preference was set at all." */
|
|
46
|
+
export function isBlockedByPolicy(model, policy) {
|
|
47
|
+
return !isAllowedByPolicy(model, policy);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=model-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-policy.js","sourceRoot":"","sources":["../src/model-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgBH,SAAS,iBAAiB,CAAC,KAAa,EAAE,MAAwB;IAChE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,MAAM,CAAC,KAAK,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAGrC;IACC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,IAAI,SAAS,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACxE,IAAI,MAAM,CAAC,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IACpF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;kCAEkC;AAClC,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,MAAwB;IACvE,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Personal model-preference storage + sync. Works on ANY tier — standard
|
|
3
|
+
* or enterprise — unlike enterprise/policy.ts's org-wide provider policy.
|
|
4
|
+
* Set locally via `crosscheck models set <provider> <model>` (pins the
|
|
5
|
+
* max/primary model) and `crosscheck models fallback <provider> <model>`
|
|
6
|
+
* (greenlights a fallback), or from the browser at crosscheckagent.com/
|
|
7
|
+
* account/models; each side best-effort pushes to the other so either one
|
|
8
|
+
* reflects the current chain.
|
|
9
|
+
*
|
|
10
|
+
* Deliberately fails OPEN (falls back to whatever's cached locally, or no
|
|
11
|
+
* preference at all) rather than restrictive, unlike the enterprise policy
|
|
12
|
+
* cache — a preference is a self-serve convenience, not a security
|
|
13
|
+
* control, so a network hiccup here should never block a call that would
|
|
14
|
+
* otherwise work fine on the engine's own default.
|
|
15
|
+
*/
|
|
16
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
17
|
+
import path from "node:path";
|
|
18
|
+
import { SERVER_URL } from "./config.js";
|
|
19
|
+
import { request } from "./http.js";
|
|
20
|
+
import { dataDir } from "./keychain.js";
|
|
21
|
+
function cachePath() {
|
|
22
|
+
return path.join(dataDir(), "model-prefs.json");
|
|
23
|
+
}
|
|
24
|
+
/** Accepts both the current shape (string[] chains) and the original
|
|
25
|
+
* single-string shape from before fallback chains existed, so an
|
|
26
|
+
* already-written model-prefs.json from an older CLI still loads. */
|
|
27
|
+
function normalize(parsed) {
|
|
28
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
29
|
+
return {};
|
|
30
|
+
const out = {};
|
|
31
|
+
for (const [provider, value] of Object.entries(parsed)) {
|
|
32
|
+
if (typeof value === "string") {
|
|
33
|
+
out[provider] = [value];
|
|
34
|
+
}
|
|
35
|
+
else if (Array.isArray(value) && value.every((v) => typeof v === "string")) {
|
|
36
|
+
out[provider] = value;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
export function readLocalModelPrefs() {
|
|
42
|
+
try {
|
|
43
|
+
const raw = readFileSync(cachePath(), "utf8");
|
|
44
|
+
return normalize(JSON.parse(raw));
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return {};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function writeLocalModelPrefs(prefs) {
|
|
51
|
+
try {
|
|
52
|
+
writeFileSync(cachePath(), JSON.stringify(prefs, null, 2), { mode: 0o600 });
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// best-effort — a failed write just means the next read sees stale data
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** Pins the max/primary model (chain position 0), keeping any existing
|
|
59
|
+
* fallbacks for that provider unchanged. */
|
|
60
|
+
export function setLocalModelPref(provider, model) {
|
|
61
|
+
const existing = readLocalModelPrefs()[provider] ?? [];
|
|
62
|
+
// Promote `model` to position 0; keep the rest of the existing chain as
|
|
63
|
+
// fallbacks, minus `model` itself (in case it was already in there).
|
|
64
|
+
const next = { ...readLocalModelPrefs(), [provider]: [model, ...existing.filter((m) => m !== model)] };
|
|
65
|
+
writeLocalModelPrefs(next);
|
|
66
|
+
return next;
|
|
67
|
+
}
|
|
68
|
+
/** Greenlights a fallback model — appended after the primary and any
|
|
69
|
+
* earlier fallbacks, unless it's already in the chain. Setting a
|
|
70
|
+
* fallback for a provider with no primary yet is fine; the fallback
|
|
71
|
+
* chain still works once a primary is set (or the engine default acts
|
|
72
|
+
* as the de-facto primary). */
|
|
73
|
+
export function addLocalModelFallback(provider, model) {
|
|
74
|
+
const existing = readLocalModelPrefs()[provider] ?? [];
|
|
75
|
+
if (existing.includes(model))
|
|
76
|
+
return readLocalModelPrefs();
|
|
77
|
+
const next = { ...readLocalModelPrefs(), [provider]: [...existing, model] };
|
|
78
|
+
writeLocalModelPrefs(next);
|
|
79
|
+
return next;
|
|
80
|
+
}
|
|
81
|
+
/** Removes one model from a provider's fallback chain — the primary
|
|
82
|
+
* (position 0) can be removed this way too, promoting the next entry. */
|
|
83
|
+
export function removeLocalModelFallback(provider, model) {
|
|
84
|
+
const existing = readLocalModelPrefs()[provider] ?? [];
|
|
85
|
+
const next = { ...readLocalModelPrefs(), [provider]: existing.filter((m) => m !== model) };
|
|
86
|
+
if (next[provider].length === 0)
|
|
87
|
+
delete next[provider];
|
|
88
|
+
writeLocalModelPrefs(next);
|
|
89
|
+
return next;
|
|
90
|
+
}
|
|
91
|
+
/** Clears a provider's whole chain (primary + fallbacks). */
|
|
92
|
+
export function unsetLocalModelPref(provider) {
|
|
93
|
+
const next = { ...readLocalModelPrefs() };
|
|
94
|
+
delete next[provider];
|
|
95
|
+
writeLocalModelPrefs(next);
|
|
96
|
+
return next;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Pull the server-stored preference chains and merge them into the local
|
|
100
|
+
* cache — server values win for keys it returns; existing local-only
|
|
101
|
+
* entries (not yet pushed, e.g. from an offline `models set`) are
|
|
102
|
+
* preserved. Any failure just returns whatever's already cached locally.
|
|
103
|
+
*/
|
|
104
|
+
export async function syncModelPreferencesFromServer(jwt) {
|
|
105
|
+
try {
|
|
106
|
+
const res = await request(`${SERVER_URL}/api/crosscheck/models`, {
|
|
107
|
+
method: "GET",
|
|
108
|
+
headers: { authorization: `Bearer ${jwt}` },
|
|
109
|
+
});
|
|
110
|
+
if (res.statusCode !== 200)
|
|
111
|
+
return readLocalModelPrefs();
|
|
112
|
+
const body = (await res.body.json());
|
|
113
|
+
if (!("ok" in body) || !body.ok)
|
|
114
|
+
return readLocalModelPrefs();
|
|
115
|
+
const merged = normalize({ ...readLocalModelPrefs(), ...body.preferences });
|
|
116
|
+
writeLocalModelPrefs(merged);
|
|
117
|
+
return merged;
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return readLocalModelPrefs();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/** Best-effort push of one provider's whole chain to the server — a
|
|
124
|
+
* failure here only means the browser page won't reflect it until the
|
|
125
|
+
* next successful sync; the local change still takes effect immediately. */
|
|
126
|
+
export async function pushModelPreferenceToServer(jwt, provider, models) {
|
|
127
|
+
try {
|
|
128
|
+
const res = await request(`${SERVER_URL}/api/crosscheck/models`, {
|
|
129
|
+
method: "POST",
|
|
130
|
+
headers: { authorization: `Bearer ${jwt}`, "content-type": "application/json" },
|
|
131
|
+
body: JSON.stringify({ provider, models }),
|
|
132
|
+
});
|
|
133
|
+
return res.statusCode === 200;
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/** Best-effort removal of one provider's whole chain on the server. */
|
|
140
|
+
export async function deleteModelPreferenceOnServer(jwt, provider) {
|
|
141
|
+
try {
|
|
142
|
+
const res = await request(`${SERVER_URL}/api/crosscheck/models`, {
|
|
143
|
+
method: "DELETE",
|
|
144
|
+
headers: { authorization: `Bearer ${jwt}`, "content-type": "application/json" },
|
|
145
|
+
body: JSON.stringify({ provider }),
|
|
146
|
+
});
|
|
147
|
+
return res.statusCode === 200;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=model-prefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-prefs.js","sourceRoot":"","sources":["../src/model-prefs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared "what model actually gets called for this provider, and why"
|
|
3
|
+
* resolution — used both to build the env vars `mcp.ts` hands the spawned
|
|
4
|
+
* engine, and to render `crosscheck models list`/`doctor`'s display. Pure
|
|
5
|
+
* given its inputs (env, local prefs, policy), so it's fully testable
|
|
6
|
+
* without touching the filesystem or network.
|
|
7
|
+
*/
|
|
8
|
+
import { CANONICAL_PROVIDERS } from "./key-format.js";
|
|
9
|
+
import { resolveEffectiveModel } from "./model-policy.js";
|
|
10
|
+
/** CLI-canonical provider name -> the engine's `<PROVIDER>_MODEL` env var.
|
|
11
|
+
* Mirrors mcp.ts's KEY_BINDINGS pairing (same providers, same env-var
|
|
12
|
+
* prefixes, `_API_KEY` -> `_MODEL`) — kept here since both the env
|
|
13
|
+
* injection (mcp.ts) and the CLI/doctor display need it. The engine
|
|
14
|
+
* reads the matching `<...>_MODEL_FALLBACKS` (comma-separated) itself —
|
|
15
|
+
* see crosscheck-mcp's providers/registry.ts. */
|
|
16
|
+
export const MODEL_ENV_VARS = {
|
|
17
|
+
anthropic: "ANTHROPIC_MODEL",
|
|
18
|
+
openai: "OPENAI_MODEL",
|
|
19
|
+
gemini: "GEMINI_MODEL",
|
|
20
|
+
grok: "XAI_MODEL",
|
|
21
|
+
groq: "GROQ_MODEL",
|
|
22
|
+
deepseek: "DEEPSEEK_MODEL",
|
|
23
|
+
mistral: "MISTRAL_MODEL",
|
|
24
|
+
kimi: "KIMI_MODEL",
|
|
25
|
+
qwen: "QWEN_MODEL",
|
|
26
|
+
};
|
|
27
|
+
function dedupeExcluding(models, exclude) {
|
|
28
|
+
const seen = new Set(exclude ? [exclude] : []);
|
|
29
|
+
const out = [];
|
|
30
|
+
for (const m of models) {
|
|
31
|
+
if (seen.has(m))
|
|
32
|
+
continue;
|
|
33
|
+
seen.add(m);
|
|
34
|
+
out.push(m);
|
|
35
|
+
}
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
export function resolveModelForProvider(args) {
|
|
39
|
+
const envVar = MODEL_ENV_VARS[args.provider];
|
|
40
|
+
const envValue = envVar ? args.env[envVar] : undefined;
|
|
41
|
+
const localChain = args.localPrefs[args.provider] ?? [];
|
|
42
|
+
const candidate = envValue ?? localChain[0];
|
|
43
|
+
const policy = args.modelPolicy?.[args.provider];
|
|
44
|
+
const resolved = resolveEffectiveModel({ candidate, policy });
|
|
45
|
+
let source;
|
|
46
|
+
if (resolved === undefined) {
|
|
47
|
+
source = candidate !== undefined ? "blocked" : "default";
|
|
48
|
+
}
|
|
49
|
+
else if (envValue !== undefined && resolved === envValue) {
|
|
50
|
+
source = "env";
|
|
51
|
+
}
|
|
52
|
+
else if (candidate !== undefined && resolved === candidate) {
|
|
53
|
+
source = "preference";
|
|
54
|
+
}
|
|
55
|
+
else if (policy?.pinned !== undefined && resolved === policy.pinned) {
|
|
56
|
+
source = "policy-pinned";
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
source = "policy-fallback";
|
|
60
|
+
}
|
|
61
|
+
const policyAllowed = policy && Array.isArray(policy.allow) ? policy.allow : [];
|
|
62
|
+
const fallbackModels = dedupeExcluding([...localChain.slice(1), ...policyAllowed], resolved);
|
|
63
|
+
return { provider: args.provider, ...(resolved !== undefined ? { model: resolved } : {}), source, fallbackModels };
|
|
64
|
+
}
|
|
65
|
+
/** Resolves every canonical provider, regardless of whether it has a key
|
|
66
|
+
* configured — callers filter to "has a key" themselves (mcp.ts) or show
|
|
67
|
+
* everything (models list, so a not-yet-configured provider's policy is
|
|
68
|
+
* still visible). */
|
|
69
|
+
export function resolveAllModels(args) {
|
|
70
|
+
return CANONICAL_PROVIDERS.map((provider) => resolveModelForProvider({
|
|
71
|
+
provider,
|
|
72
|
+
env: args.env,
|
|
73
|
+
localPrefs: args.localPrefs,
|
|
74
|
+
modelPolicy: args.modelPolicy,
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=model-resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-resolve.js","sourceRoot":"","sources":["../src/model-resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `crosscheck models` — the terminal half of model selection (the other
|
|
3
|
+
* half is crosscheckagent.com/account/models and, for org-wide policy,
|
|
4
|
+
* /account/enterprise). "Pin your max model, greenlight fallbacks": `set`
|
|
5
|
+
* pins the primary; `fallback` adds/removes greenlit fallbacks tried, in
|
|
6
|
+
* order, only when the primary comes back with a model-access failure
|
|
7
|
+
* (never for any other kind of error — see crosscheck-mcp's core/model-
|
|
8
|
+
* fallback.ts). See model-resolve.ts for the actual precedence — this
|
|
9
|
+
* file is purely command plumbing over it.
|
|
10
|
+
*/
|
|
11
|
+
import { getSecret } from "./keychain.js";
|
|
12
|
+
import { CANONICAL_PROVIDERS, resolveProvider } from "./key-format.js";
|
|
13
|
+
import { readLocalModelPrefs, setLocalModelPref, addLocalModelFallback, removeLocalModelFallback, unsetLocalModelPref, syncModelPreferencesFromServer, pushModelPreferenceToServer, deleteModelPreferenceOnServer, } from "./model-prefs.js";
|
|
14
|
+
import { fetchProviderPolicy } from "./enterprise/policy.js";
|
|
15
|
+
import { resolveAllModels, resolveModelForProvider } from "./model-resolve.js";
|
|
16
|
+
const USAGE = "usage: crosscheck models list|get <provider>|set <provider> <model>|\n" +
|
|
17
|
+
" fallback <provider> <model> [--remove]|unset <provider>|sync\n" +
|
|
18
|
+
` providers: ${CANONICAL_PROVIDERS.join(", ")}`;
|
|
19
|
+
/** Best-effort: only enterprise installs have a model policy at all, and
|
|
20
|
+
* only once signed in. A standard install (or one not yet activated)
|
|
21
|
+
* just gets undefined here, same as if no policy existed. */
|
|
22
|
+
async function currentModelPolicy() {
|
|
23
|
+
const jwt = await getSecret("jwt");
|
|
24
|
+
if (!jwt)
|
|
25
|
+
return undefined;
|
|
26
|
+
const policy = await fetchProviderPolicy(jwt);
|
|
27
|
+
return policy?.modelPolicy;
|
|
28
|
+
}
|
|
29
|
+
function describeSource(source) {
|
|
30
|
+
switch (source) {
|
|
31
|
+
case "env":
|
|
32
|
+
return "shell env var";
|
|
33
|
+
case "preference":
|
|
34
|
+
return "your preference";
|
|
35
|
+
case "policy-pinned":
|
|
36
|
+
return "org fallback";
|
|
37
|
+
case "policy-fallback":
|
|
38
|
+
return "org fallback";
|
|
39
|
+
case "blocked":
|
|
40
|
+
return "BLOCKED by org policy";
|
|
41
|
+
case "default":
|
|
42
|
+
return "engine default";
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function formatFallbacks(r) {
|
|
46
|
+
return r.fallbackModels.length > 0 ? ` (fallbacks: ${r.fallbackModels.join(", ")})` : "";
|
|
47
|
+
}
|
|
48
|
+
function printList(results) {
|
|
49
|
+
const providerWidth = Math.max(...results.map((r) => r.provider.length), "provider".length);
|
|
50
|
+
const modelWidth = Math.max(...results.map((r) => (r.model ?? "(engine default)").length), "model".length);
|
|
51
|
+
// eslint-disable-next-line no-console
|
|
52
|
+
console.log(`${"provider".padEnd(providerWidth)} ${"model".padEnd(modelWidth)} source`);
|
|
53
|
+
for (const r of results) {
|
|
54
|
+
const model = r.model ?? "(engine default)";
|
|
55
|
+
// eslint-disable-next-line no-console
|
|
56
|
+
console.log(`${r.provider.padEnd(providerWidth)} ${model.padEnd(modelWidth)} ${describeSource(r.source)}${formatFallbacks(r)}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async function pushChain(provider, chain) {
|
|
60
|
+
const jwt = await getSecret("jwt");
|
|
61
|
+
return jwt ? pushModelPreferenceToServer(jwt, provider, chain) : false;
|
|
62
|
+
}
|
|
63
|
+
export async function runModelsCommand(sub, rest) {
|
|
64
|
+
switch (sub) {
|
|
65
|
+
case undefined:
|
|
66
|
+
case "list": {
|
|
67
|
+
const localPrefs = readLocalModelPrefs();
|
|
68
|
+
const modelPolicy = await currentModelPolicy();
|
|
69
|
+
printList(resolveAllModels({ env: process.env, localPrefs, modelPolicy }));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
case "get": {
|
|
73
|
+
const provider = resolveProvider(rest[0] ?? "");
|
|
74
|
+
if (!provider) {
|
|
75
|
+
// eslint-disable-next-line no-console
|
|
76
|
+
console.error(USAGE);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const localPrefs = readLocalModelPrefs();
|
|
81
|
+
const modelPolicy = await currentModelPolicy();
|
|
82
|
+
const r = resolveModelForProvider({ provider, env: process.env, localPrefs, modelPolicy });
|
|
83
|
+
// eslint-disable-next-line no-console
|
|
84
|
+
console.log(r.model
|
|
85
|
+
? `${provider}: ${r.model} (${describeSource(r.source)})${formatFallbacks(r)}`
|
|
86
|
+
: `${provider}: (engine default — nothing set, run \`crosscheck models set ${provider} <model>\` to change it)`);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
case "set": {
|
|
90
|
+
const provider = resolveProvider(rest[0] ?? "");
|
|
91
|
+
const model = rest[1];
|
|
92
|
+
if (!provider || !model) {
|
|
93
|
+
// eslint-disable-next-line no-console
|
|
94
|
+
console.error(USAGE);
|
|
95
|
+
process.exit(1);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const chain = setLocalModelPref(provider, model);
|
|
99
|
+
const pushed = await pushChain(provider, chain[provider] ?? [model]);
|
|
100
|
+
const jwt = await getSecret("jwt");
|
|
101
|
+
// eslint-disable-next-line no-console
|
|
102
|
+
console.log(`✓ ${provider} max model -> ${model} (saved locally` +
|
|
103
|
+
(pushed
|
|
104
|
+
? ", synced to your account)"
|
|
105
|
+
: jwt
|
|
106
|
+
? ", not synced yet — will retry on the next \`crosscheck models sync\`)"
|
|
107
|
+
: ")"));
|
|
108
|
+
// eslint-disable-next-line no-console
|
|
109
|
+
console.log("Reconnect the MCP server (or restart Claude Code) for this to take effect.");
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
case "fallback": {
|
|
113
|
+
const provider = resolveProvider(rest[0] ?? "");
|
|
114
|
+
const model = rest[1];
|
|
115
|
+
const remove = rest.includes("--remove");
|
|
116
|
+
if (!provider || !model) {
|
|
117
|
+
// eslint-disable-next-line no-console
|
|
118
|
+
console.error(USAGE);
|
|
119
|
+
process.exit(1);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const chain = remove ? removeLocalModelFallback(provider, model) : addLocalModelFallback(provider, model);
|
|
123
|
+
const pushed = await pushChain(provider, chain[provider] ?? []);
|
|
124
|
+
// eslint-disable-next-line no-console
|
|
125
|
+
console.log(remove
|
|
126
|
+
? `✓ ${provider}: ${model} removed from fallbacks${pushed ? " (synced to your account)" : ""}.`
|
|
127
|
+
: `✓ ${provider}: ${model} greenlit as a fallback${pushed ? " (synced to your account)" : ""} — ` +
|
|
128
|
+
"tried only if the max model has a model-access problem, never for any other kind of failure.");
|
|
129
|
+
// eslint-disable-next-line no-console
|
|
130
|
+
console.log("Reconnect the MCP server (or restart Claude Code) for this to take effect.");
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
case "unset": {
|
|
134
|
+
const provider = resolveProvider(rest[0] ?? "");
|
|
135
|
+
if (!provider) {
|
|
136
|
+
// eslint-disable-next-line no-console
|
|
137
|
+
console.error(USAGE);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
unsetLocalModelPref(provider);
|
|
142
|
+
const jwt = await getSecret("jwt");
|
|
143
|
+
if (jwt)
|
|
144
|
+
await deleteModelPreferenceOnServer(jwt, provider);
|
|
145
|
+
// eslint-disable-next-line no-console
|
|
146
|
+
console.log(`✓ ${provider} chain cleared (max model + all fallbacks) — will use the engine default (or org fallback, if any).`);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
case "sync": {
|
|
150
|
+
const jwt = await getSecret("jwt");
|
|
151
|
+
if (!jwt) {
|
|
152
|
+
// eslint-disable-next-line no-console
|
|
153
|
+
console.error("Not activated. Run `crosscheck activate` first.");
|
|
154
|
+
process.exit(1);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const prefs = await syncModelPreferencesFromServer(jwt);
|
|
158
|
+
const entries = Object.entries(prefs);
|
|
159
|
+
// eslint-disable-next-line no-console
|
|
160
|
+
console.log(`✓ Synced from your account. Local preferences: ${entries.length
|
|
161
|
+
? entries.map(([p, chain]) => `${p}=${chain.join(">")}`).join(", ")
|
|
162
|
+
: "(none set)"}`);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
default:
|
|
166
|
+
// eslint-disable-next-line no-console
|
|
167
|
+
console.error(`Unknown \`models\` subcommand: ${sub}\n${USAGE}`);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=models-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models-cli.js","sourceRoot":"","sources":["../src/models-cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crosscheck-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.54",
|
|
4
4
|
"description": "Crosscheck — multi-LLM orchestration MCP for the terminal. Single-machine activation, BYO upstream LLM keys, content-free telemetry. Installs into Claude Code in one command.",
|
|
5
5
|
"license": "SEE LICENSE.md",
|
|
6
6
|
"type": "module",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"prepublishOnly": "npm run build"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"crosscheck-mcp": "0.2.
|
|
30
|
+
"crosscheck-mcp": "0.2.15"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^22.10.0",
|