overmind-mcp 2.8.24 → 2.8.25
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/lib/envUtils.d.ts.map +1 -1
- package/dist/lib/envUtils.js +12 -3
- package/dist/lib/envUtils.js.map +1 -1
- package/dist/services/NousHermesRunner.d.ts.map +1 -1
- package/dist/services/NousHermesRunner.js +46 -46
- package/dist/services/NousHermesRunner.js.map +1 -1
- package/dist/services/hermesTokenResolver.d.ts +74 -0
- package/dist/services/hermesTokenResolver.d.ts.map +1 -0
- package/dist/services/hermesTokenResolver.js +140 -0
- package/dist/services/hermesTokenResolver.js.map +1 -0
- package/docs/provider-config-map.md +33 -5
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envUtils.d.ts","sourceRoot":"","sources":["../../src/lib/envUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,KAAK,cAAc,GACf,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,cAAc,EAAE,GAChB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;CAAE,CAAC;AAMtC,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,OAAO,CAAC,MAAM,CAAiB,GACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"envUtils.d.ts","sourceRoot":"","sources":["../../src/lib/envUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,KAAK,cAAc,GACf,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,cAAc,EAAE,GAChB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;CAAE,CAAC;AAMtC,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,OAAO,CAAC,MAAM,CAAiB,GACvC,cAAc,CAsChB;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAIhD"}
|
package/dist/lib/envUtils.js
CHANGED
|
@@ -7,9 +7,18 @@
|
|
|
7
7
|
const unresolvedVars = [];
|
|
8
8
|
export function interpolateEnvVars(obj, visited = new WeakSet()) {
|
|
9
9
|
if (typeof obj === 'string') {
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
// Match $VAR and ${VAR}. The closing '}' MUST be inside the match so it does
|
|
11
|
+
// not leak into the output. The previous regex `\$(\w+)|\${\w+}` (a) had only
|
|
12
|
+
// one capture group (so `name2` was always undefined, and `${VAR}` crashed
|
|
13
|
+
// on `process.env[undefined]`), and (b) did not consume the '}' — leaking
|
|
14
|
+
// it as literal text. Fixed: explicit capture group on each alternation branch,
|
|
15
|
+
// closing brace consumed by the first branch.
|
|
16
|
+
return obj.replace(/\$\{(\w+)\}|\$(\w+)/g, (_, braced, bare) => {
|
|
17
|
+
const name = braced || bare;
|
|
18
|
+
// Defensive: should never happen, but if name is undefined (no capture
|
|
19
|
+
// matched), treat as literal text rather than crashing on process.env[undefined].
|
|
20
|
+
if (name === undefined)
|
|
21
|
+
return _;
|
|
13
22
|
const value = process.env[name];
|
|
14
23
|
if (value === undefined)
|
|
15
24
|
unresolvedVars.push(name);
|
package/dist/lib/envUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envUtils.js","sourceRoot":"","sources":["../../src/lib/envUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,+EAA+E;AAC/E,oFAAoF;AACpF,MAAM,cAAc,GAAa,EAAE,CAAC;AAEpC,MAAM,UAAU,kBAAkB,CAChC,GAAmB,EACnB,UAA2B,IAAI,OAAO,EAAE;IAExC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,6EAA6E;QAC7E,OAAO,GAAG,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"envUtils.js","sourceRoot":"","sources":["../../src/lib/envUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,+EAA+E;AAC/E,oFAAoF;AACpF,MAAM,cAAc,GAAa,EAAE,CAAC;AAEpC,MAAM,UAAU,kBAAkB,CAChC,GAAmB,EACnB,UAA2B,IAAI,OAAO,EAAE;IAExC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,6EAA6E;QAC7E,8EAA8E;QAC9E,2EAA2E;QAC3E,0EAA0E;QAC1E,gFAAgF;QAChF,8CAA8C;QAC9C,OAAO,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC;YAC5B,uEAAuE;YACvE,kFAAkF;YAClF,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,SAAS;gBAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,+BAA+B;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,CAAC,cAAc;QAC5B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjB,MAAM,MAAM,GAAmC,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,qBAAqB;IACnC,MAAM,IAAI,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IACjC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NousHermesRunner.d.ts","sourceRoot":"","sources":["../../src/services/NousHermesRunner.ts"],"names":[],"mappings":"AA2DA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAsFD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAoB;;IAMnC,gBAAgB,IAAI,IAAI;IAclB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAkC3D,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"NousHermesRunner.d.ts","sourceRoot":"","sources":["../../src/services/NousHermesRunner.ts"],"names":[],"mappings":"AA2DA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAsFD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAoB;;IAMnC,gBAAgB,IAAI,IAAI;IAclB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAkC3D,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAi2B1E"}
|
|
@@ -425,6 +425,12 @@ export class NousHermesRunner {
|
|
|
425
425
|
// OpenRouter → "sk-or-..." → env OPENROUTER_API_KEY (BLOCKED for LLM)
|
|
426
426
|
// Mistral → (variable) → env MISTRAL_API_KEY_*
|
|
427
427
|
// Other → unknown → env ANTHROPIC_AUTH_TOKEN (default Anthropic)
|
|
428
|
+
//
|
|
429
|
+
// NOTE: This function-local copy mirrors the canonical implementation in
|
|
430
|
+
// src/services/hermesTokenResolver.ts. The runner uses these local closures
|
|
431
|
+
// so it doesn't have to thread env/logger through every call site; the
|
|
432
|
+
// canonical exported versions exist for testing and for any future caller
|
|
433
|
+
// that wants the same behavior without instantiating NousHermesRunner.
|
|
428
434
|
const TOKEN_PREFIX_PROVIDERS = [
|
|
429
435
|
// Z.AI: c78a134949fc4c369911c24e9fa4b84c.OZhHX5Obs6qF1ISt (32hex.32hex — 2 blocks)
|
|
430
436
|
{ test: (t) => /^[0-9a-f]{32}\.[0-9a-zA-Z]+$/i.test(t), provider: 'zai', envKey: 'ZAI_ANTHROPIC_FALLBACK_KEY' },
|
|
@@ -453,42 +459,10 @@ export class NousHermesRunner {
|
|
|
453
459
|
// ============================================================
|
|
454
460
|
// TOKEN RESOLUTION ORDER (settings.env first, then process.env, then detection)
|
|
455
461
|
// ============================================================
|
|
456
|
-
//
|
|
457
|
-
//
|
|
458
|
-
//
|
|
459
|
-
//
|
|
460
|
-
// z-ai (alt) → Z_AI_API_KEY
|
|
461
|
-
// anthropic → ANTHROPIC_AUTH_TOKEN (any of _1.._5, _E, _F, _Y)
|
|
462
|
-
//
|
|
463
|
-
// The agent's settings_<name>.json MUST use the env var name that matches
|
|
464
|
-
// its ANTHROPIC_PROVIDER value, otherwise Hermes upstream will silently
|
|
465
|
-
// 401 even though Overmind has the key. The minimax plugin in Hermes
|
|
466
|
-
// (plugins/model-providers/minimax/init.py) decides the env var name — not Overmind.
|
|
467
|
-
//
|
|
468
|
-
// Resolution order (NEW in 2.8.16+):
|
|
469
|
-
// 1. settings_<agent>.json env block (explicit, agent-specific — WINS)
|
|
470
|
-
// 2. agent's .hermes/.env (isolated override)
|
|
471
|
-
// 3. process.env (global .env via systemd EnvironmentFile)
|
|
472
|
-
// 4. Detection by token prefix (subtilisation — last resort, maps to right provider)
|
|
473
|
-
//
|
|
474
|
-
// (Full list moved to top of scope for use in RAW pre-interpolation capture.)
|
|
475
|
-
// See const TOKEN_KEYS at top of runHermesAgent() function.
|
|
476
|
-
/**
|
|
477
|
-
* Resolve a token with explicit settings priority + provider detection.
|
|
478
|
-
*
|
|
479
|
-
* Strategy:
|
|
480
|
-
* 1. Read settings_<agent>.json env block.
|
|
481
|
-
* - If user set a LITERAL token (e.g. "sk-cp-..."), use it directly.
|
|
482
|
-
* - If user set a $VAR REFERENCE (e.g. "$GLM_API_KEY_Y"), RESOLVE IT.
|
|
483
|
-
* - If $VAR is found in process.env → use the resolved value.
|
|
484
|
-
* - If $VAR is NOT found in process.env → FAIL LOUD. Do NOT silently
|
|
485
|
-
* fall back to TOKEN_KEYS (the user explicitly said "use THIS var").
|
|
486
|
-
* - If user set something else (e.g. template, expression), try to resolve.
|
|
487
|
-
* 2. If no settings token (or settings has no env block at all), fall back
|
|
488
|
-
* to TOKEN_KEYS iteration in priority order from process.env.
|
|
489
|
-
* 3. For each candidate, sniff the token prefix to know which provider it
|
|
490
|
-
* belongs to, and re-map to the right env var name for that provider.
|
|
491
|
-
*/
|
|
462
|
+
// See src/services/hermesTokenResolver.ts for the canonical exported version
|
|
463
|
+
// and the rationale for the 3-pass strategy. The local closure below
|
|
464
|
+
// captures agentCustomEnv, TOKEN_KEYS, agentName, logger, and tmpSettingsPath
|
|
465
|
+
// from the enclosing scope so call sites stay terse.
|
|
492
466
|
function resolveTokenWithDetection(explicitSettingsTokens) {
|
|
493
467
|
// Step 1: settings_<agent>.json env block takes ABSOLUTE priority
|
|
494
468
|
// (whatever the user explicitly set in their agent config wins)
|
|
@@ -520,21 +494,47 @@ export class NousHermesRunner {
|
|
|
520
494
|
logger.info({ agentName, tokenKey: t.key, detectedProvider: detected.provider, mappedTo: detected.envKey }, '[SUBTILISATION] Using explicit settings_<agent>.json token, re-mapping to detected provider env var.');
|
|
521
495
|
return { tokenEnvKey: t.key, tokenValue: resolvedValue, detectedProvider: detected.provider, source: 'settings-explicit' };
|
|
522
496
|
}
|
|
523
|
-
|
|
497
|
+
const candidates = [];
|
|
524
498
|
for (const tk of TOKEN_KEYS) {
|
|
525
499
|
const v = agentCustomEnv[tk];
|
|
526
500
|
if (v && typeof v === 'string' && v.length > 0) {
|
|
527
|
-
|
|
528
|
-
// If the env-var name doesn't match the detected provider, re-map.
|
|
529
|
-
// (e.g. ANTHROPIC_AUTH_TOKEN=sk-cp-... → real env should be MINIMAX_API_KEY)
|
|
530
|
-
if (detected.envKey !== tk && detected.provider !== 'unknown') {
|
|
531
|
-
logger.info({ agentName, sourceKey: tk, detectedProvider: detected.provider, remappedTo: detected.envKey }, '[SUBTILISATION] Token prefix detected provider mismatch — re-mapping env var.');
|
|
532
|
-
return { tokenEnvKey: detected.envKey, tokenValue: v, detectedProvider: detected.provider, source: 'detected' };
|
|
533
|
-
}
|
|
534
|
-
return { tokenEnvKey: tk, tokenValue: v, detectedProvider: detected.provider, source: 'env-fallback' };
|
|
501
|
+
candidates.push({ key: tk, value: v, detected: detectTokenProvider(v) });
|
|
535
502
|
}
|
|
536
503
|
}
|
|
537
|
-
|
|
504
|
+
if (candidates.length === 0)
|
|
505
|
+
return null;
|
|
506
|
+
// Pass A: any candidate whose env-var name already matches its detected provider
|
|
507
|
+
// (e.g. MINIMAX_API_KEY=sk-cp-... → detected.envKey='MINIMAX_API_KEY' → match).
|
|
508
|
+
// TOKEN_KEYS ordering means provider-specific keys come first, so this preserves
|
|
509
|
+
// the user's explicit choice over a generic-key re-map.
|
|
510
|
+
for (const c of candidates) {
|
|
511
|
+
if (c.detected.provider !== 'unknown' && c.detected.envKey === c.key) {
|
|
512
|
+
return {
|
|
513
|
+
tokenEnvKey: c.key,
|
|
514
|
+
tokenValue: c.value,
|
|
515
|
+
detectedProvider: c.detected.provider,
|
|
516
|
+
source: 'env-fallback',
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
// Pass B: re-map the first candidate to the right provider env-var name.
|
|
521
|
+
const first = candidates[0];
|
|
522
|
+
if (first.detected.provider !== 'unknown' && first.detected.envKey !== first.key) {
|
|
523
|
+
logger.info({ agentName, sourceKey: first.key, detectedProvider: first.detected.provider, remappedTo: first.detected.envKey }, '[SUBTILISATION] Token prefix detected provider mismatch — re-mapping env var.');
|
|
524
|
+
return {
|
|
525
|
+
tokenEnvKey: first.detected.envKey,
|
|
526
|
+
tokenValue: first.value,
|
|
527
|
+
detectedProvider: first.detected.provider,
|
|
528
|
+
source: 'detected',
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
// Pass C (rare): all candidates have provider='unknown' or envKey already matches.
|
|
532
|
+
return {
|
|
533
|
+
tokenEnvKey: first.key,
|
|
534
|
+
tokenValue: first.value,
|
|
535
|
+
detectedProvider: first.detected.provider,
|
|
536
|
+
source: 'env-fallback',
|
|
537
|
+
};
|
|
538
538
|
}
|
|
539
539
|
const getAvailableFallbacks = () => {
|
|
540
540
|
const fb = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NousHermesRunner.js","sourceRoot":"","sources":["../../src/services/NousHermesRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NousHermesRunner.js","sourceRoot":"","sources":["../../src/services/NousHermesRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hermes token resolution — canonical, side-effect-free implementation.
|
|
3
|
+
*
|
|
4
|
+
* This module exists for two reasons:
|
|
5
|
+
*
|
|
6
|
+
* 1. **Testability.** The `NousHermesRunner` defines these helpers as
|
|
7
|
+
* function-local closures (so call sites can capture `agentCustomEnv`,
|
|
8
|
+
* `TOKEN_KEYS`, `agentName`, `logger`, `tmpSettingsPath` from the
|
|
9
|
+
* enclosing scope without ceremony). That makes the logic untestable
|
|
10
|
+
* in isolation. This module is the canonical, parameterized version.
|
|
11
|
+
* Any divergence between the local closure and this module is a bug —
|
|
12
|
+
* keep them in sync.
|
|
13
|
+
*
|
|
14
|
+
* 2. **Audit surface.** When debugging "why did the runner pick
|
|
15
|
+
* `MINIMAX_API_KEY` over `ANTHROPIC_AUTH_TOKEN`?", you can import
|
|
16
|
+
* `resolveTokenWithDetection` from this module in a REPL or a one-off
|
|
17
|
+
* script and replay the decision without spinning up a Hermes run.
|
|
18
|
+
*
|
|
19
|
+
* Token detection convention (Hermes v0.16.0):
|
|
20
|
+
* MiniMax → "sk-cp-..." → env MINIMAX_API_KEY
|
|
21
|
+
* Z.AI / GLM → "32hex.32hex" → env ZAI_ANTHROPIC_FALLBACK_KEY
|
|
22
|
+
* e.g. "c78a134949fc4c369911c24e9fa4b84c.OZhHX5Obs6qF1ISt"
|
|
23
|
+
* Z.AI alt → 32-char hex (single block, no dot)
|
|
24
|
+
* e.g. "5f650035e5a845549e4765184d8179b1"
|
|
25
|
+
* Anthropic → "sk-ant-..." → env ANTHROPIC_AUTH_TOKEN
|
|
26
|
+
* OpenAI → "sk-..." → env OPENAI_API_KEY
|
|
27
|
+
* OpenRouter → "sk-or-..." → env OPENROUTER_API_KEY (BLOCKED for LLM)
|
|
28
|
+
* Mistral → (variable) → env MISTRAL_API_KEY_*
|
|
29
|
+
* Other → unknown → env ANTHROPIC_AUTH_TOKEN
|
|
30
|
+
*/
|
|
31
|
+
export interface ProviderDetection {
|
|
32
|
+
provider: string;
|
|
33
|
+
envKey: string;
|
|
34
|
+
}
|
|
35
|
+
export declare const TOKEN_PREFIX_PROVIDERS: ReadonlyArray<{
|
|
36
|
+
test: (t: string) => boolean;
|
|
37
|
+
provider: string;
|
|
38
|
+
envKey: string;
|
|
39
|
+
}>;
|
|
40
|
+
export declare function detectTokenProvider(token: string): ProviderDetection;
|
|
41
|
+
export interface ResolvedToken {
|
|
42
|
+
tokenEnvKey: string;
|
|
43
|
+
tokenValue: string;
|
|
44
|
+
detectedProvider: string;
|
|
45
|
+
source: 'settings-explicit' | 'env-fallback' | 'detected';
|
|
46
|
+
}
|
|
47
|
+
export interface ResolverLogger {
|
|
48
|
+
info: (obj: object, msg?: string) => void;
|
|
49
|
+
error: (obj: object, msg?: string) => void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Resolve a token with explicit settings priority + provider detection.
|
|
53
|
+
*
|
|
54
|
+
* Strategy:
|
|
55
|
+
* 1. Read settings_<agent>.json env block (explicitSettingsTokens).
|
|
56
|
+
* - Literal token (e.g. "sk-cp-...") → use it directly.
|
|
57
|
+
* - $VAR reference (e.g. "$GLM_API_KEY_Y") → resolve against process.env.
|
|
58
|
+
* Missing? FAIL LOUD (no silent fallback).
|
|
59
|
+
* 2. No settings token → iterate tokenKeys in priority order. THREE PASSES:
|
|
60
|
+
* Pass A: prefer a candidate whose env-var NAME already matches its
|
|
61
|
+
* detected provider (preserves explicit user choice over
|
|
62
|
+
* generic-key re-map).
|
|
63
|
+
* Pass B: re-map the first candidate to the right provider env-var
|
|
64
|
+
* name (subtilisation).
|
|
65
|
+
* Pass C: rare — everything aligned already, return as-is.
|
|
66
|
+
*
|
|
67
|
+
* @throws {Error} `MISSING_ENV_VAR: ...` when settings references a $VAR that
|
|
68
|
+
* is not in process.env.
|
|
69
|
+
*/
|
|
70
|
+
export declare function resolveTokenWithDetection(agentName: string | undefined, explicitSettingsTokens: ReadonlyArray<{
|
|
71
|
+
key: string;
|
|
72
|
+
value: string;
|
|
73
|
+
}>, agentCustomEnv: Record<string, string | undefined>, tokenKeys: ReadonlyArray<string>, logger: ResolverLogger): ResolvedToken | null;
|
|
74
|
+
//# sourceMappingURL=hermesTokenResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermesTokenResolver.d.ts","sourceRoot":"","sources":["../../src/services/hermesTokenResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAiBA,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAKpE;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,mBAAmB,GAAG,cAAc,GAAG,UAAU,CAAC;CAC3D;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,sBAAsB,EAAE,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EACrE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAClD,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAChC,MAAM,EAAE,cAAc,GACrB,aAAa,GAAG,IAAI,CAmFtB"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hermes token resolution — canonical, side-effect-free implementation.
|
|
3
|
+
*
|
|
4
|
+
* This module exists for two reasons:
|
|
5
|
+
*
|
|
6
|
+
* 1. **Testability.** The `NousHermesRunner` defines these helpers as
|
|
7
|
+
* function-local closures (so call sites can capture `agentCustomEnv`,
|
|
8
|
+
* `TOKEN_KEYS`, `agentName`, `logger`, `tmpSettingsPath` from the
|
|
9
|
+
* enclosing scope without ceremony). That makes the logic untestable
|
|
10
|
+
* in isolation. This module is the canonical, parameterized version.
|
|
11
|
+
* Any divergence between the local closure and this module is a bug —
|
|
12
|
+
* keep them in sync.
|
|
13
|
+
*
|
|
14
|
+
* 2. **Audit surface.** When debugging "why did the runner pick
|
|
15
|
+
* `MINIMAX_API_KEY` over `ANTHROPIC_AUTH_TOKEN`?", you can import
|
|
16
|
+
* `resolveTokenWithDetection` from this module in a REPL or a one-off
|
|
17
|
+
* script and replay the decision without spinning up a Hermes run.
|
|
18
|
+
*
|
|
19
|
+
* Token detection convention (Hermes v0.16.0):
|
|
20
|
+
* MiniMax → "sk-cp-..." → env MINIMAX_API_KEY
|
|
21
|
+
* Z.AI / GLM → "32hex.32hex" → env ZAI_ANTHROPIC_FALLBACK_KEY
|
|
22
|
+
* e.g. "c78a134949fc4c369911c24e9fa4b84c.OZhHX5Obs6qF1ISt"
|
|
23
|
+
* Z.AI alt → 32-char hex (single block, no dot)
|
|
24
|
+
* e.g. "5f650035e5a845549e4765184d8179b1"
|
|
25
|
+
* Anthropic → "sk-ant-..." → env ANTHROPIC_AUTH_TOKEN
|
|
26
|
+
* OpenAI → "sk-..." → env OPENAI_API_KEY
|
|
27
|
+
* OpenRouter → "sk-or-..." → env OPENROUTER_API_KEY (BLOCKED for LLM)
|
|
28
|
+
* Mistral → (variable) → env MISTRAL_API_KEY_*
|
|
29
|
+
* Other → unknown → env ANTHROPIC_AUTH_TOKEN
|
|
30
|
+
*/
|
|
31
|
+
export const TOKEN_PREFIX_PROVIDERS = [
|
|
32
|
+
// Z.AI: c78a134949fc4c369911c24e9fa4b84c.OZhHX5Obs6qF1ISt (32hex.32hex — 2 blocks)
|
|
33
|
+
{ test: (t) => /^[0-9a-f]{32}\.[0-9a-zA-Z]+$/i.test(t), provider: 'zai', envKey: 'ZAI_ANTHROPIC_FALLBACK_KEY' },
|
|
34
|
+
// Z.AI: 5f6500...q3m3 (32-char hex single block, no dot, no dashes)
|
|
35
|
+
{ test: (t) => /^[0-9a-f]{32}$/i.test(t), provider: 'zai', envKey: 'ZAI_ANTHROPIC_FALLBACK_KEY' },
|
|
36
|
+
// MiniMax: sk-cp-...
|
|
37
|
+
{ test: (t) => t.startsWith('sk-cp-'), provider: 'minimax', envKey: 'MINIMAX_API_KEY' },
|
|
38
|
+
// MiniMax: sk-mm-... (alternative prefix)
|
|
39
|
+
{ test: (t) => t.startsWith('sk-mm-'), provider: 'minimax', envKey: 'MINIMAX_API_KEY' },
|
|
40
|
+
// Anthropic
|
|
41
|
+
{ test: (t) => t.startsWith('sk-ant-'), provider: 'anthropic', envKey: 'ANTHROPIC_AUTH_TOKEN' },
|
|
42
|
+
// OpenRouter (BLOCKED for LLM, but we still detect it for diagnostic)
|
|
43
|
+
{ test: (t) => t.startsWith('sk-or-'), provider: 'openrouter', envKey: 'OPENROUTER_API_KEY' },
|
|
44
|
+
// OpenAI (no -ant, no -cp, no -or)
|
|
45
|
+
{ test: (t) => t.startsWith('sk-'), provider: 'openai', envKey: 'OPENAI_API_KEY' },
|
|
46
|
+
// Generic 16+ hex without dot — probably a Z.AI token variant
|
|
47
|
+
{ test: (t) => /^[0-9a-f]{16,}$/i.test(t), provider: 'zai', envKey: 'ZAI_ANTHROPIC_FALLBACK_KEY' },
|
|
48
|
+
];
|
|
49
|
+
export function detectTokenProvider(token) {
|
|
50
|
+
for (const rule of TOKEN_PREFIX_PROVIDERS) {
|
|
51
|
+
if (rule.test(token))
|
|
52
|
+
return { provider: rule.provider, envKey: rule.envKey };
|
|
53
|
+
}
|
|
54
|
+
return { provider: 'unknown', envKey: 'ANTHROPIC_AUTH_TOKEN' };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Resolve a token with explicit settings priority + provider detection.
|
|
58
|
+
*
|
|
59
|
+
* Strategy:
|
|
60
|
+
* 1. Read settings_<agent>.json env block (explicitSettingsTokens).
|
|
61
|
+
* - Literal token (e.g. "sk-cp-...") → use it directly.
|
|
62
|
+
* - $VAR reference (e.g. "$GLM_API_KEY_Y") → resolve against process.env.
|
|
63
|
+
* Missing? FAIL LOUD (no silent fallback).
|
|
64
|
+
* 2. No settings token → iterate tokenKeys in priority order. THREE PASSES:
|
|
65
|
+
* Pass A: prefer a candidate whose env-var NAME already matches its
|
|
66
|
+
* detected provider (preserves explicit user choice over
|
|
67
|
+
* generic-key re-map).
|
|
68
|
+
* Pass B: re-map the first candidate to the right provider env-var
|
|
69
|
+
* name (subtilisation).
|
|
70
|
+
* Pass C: rare — everything aligned already, return as-is.
|
|
71
|
+
*
|
|
72
|
+
* @throws {Error} `MISSING_ENV_VAR: ...` when settings references a $VAR that
|
|
73
|
+
* is not in process.env.
|
|
74
|
+
*/
|
|
75
|
+
export function resolveTokenWithDetection(agentName, explicitSettingsTokens, agentCustomEnv, tokenKeys, logger) {
|
|
76
|
+
// Step 1: settings_<agent>.json env block takes ABSOLUTE priority
|
|
77
|
+
if (explicitSettingsTokens.length > 0) {
|
|
78
|
+
const t = explicitSettingsTokens[0];
|
|
79
|
+
let resolvedValue = t.value;
|
|
80
|
+
if (typeof t.value === 'string' && t.value.startsWith('$')) {
|
|
81
|
+
const varName = t.value.slice(1);
|
|
82
|
+
const fromEnv = process.env[varName];
|
|
83
|
+
if (!fromEnv || fromEnv.length === 0) {
|
|
84
|
+
logger.error({
|
|
85
|
+
agentName,
|
|
86
|
+
requestedVar: varName,
|
|
87
|
+
requestedKey: t.key,
|
|
88
|
+
}, '[FAIL-LOUD] settings_<agent>.json references $' + varName + ' but it is not set in process.env. ' +
|
|
89
|
+
'Either export it in the parent .env, or fix the reference in settings_<agent>.json. ' +
|
|
90
|
+
'Refusing to fall back to a different credential.');
|
|
91
|
+
throw new Error(`MISSING_ENV_VAR: settings_<agent>.json env.${t.key}="$` + varName + '" ' +
|
|
92
|
+
`but process.env.${varName} is empty. Add it to /home/demon/.overmind/.env or fix the settings reference.`);
|
|
93
|
+
}
|
|
94
|
+
resolvedValue = fromEnv;
|
|
95
|
+
logger.info({ agentName, sourceKey: t.key, referencedVar: varName, resolvedLen: resolvedValue.length }, '[SUBTILISATION] Resolved $VAR reference from settings_<agent>.json against process.env.');
|
|
96
|
+
}
|
|
97
|
+
const detected = detectTokenProvider(resolvedValue);
|
|
98
|
+
logger.info({ agentName, tokenKey: t.key, detectedProvider: detected.provider, mappedTo: detected.envKey }, '[SUBTILISATION] Using explicit settings_<agent>.json token, re-mapping to detected provider env var.');
|
|
99
|
+
return { tokenEnvKey: t.key, tokenValue: resolvedValue, detectedProvider: detected.provider, source: 'settings-explicit' };
|
|
100
|
+
}
|
|
101
|
+
const candidates = [];
|
|
102
|
+
for (const tk of tokenKeys) {
|
|
103
|
+
const v = agentCustomEnv[tk];
|
|
104
|
+
if (v && typeof v === 'string' && v.length > 0) {
|
|
105
|
+
candidates.push({ key: tk, value: v, detected: detectTokenProvider(v) });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (candidates.length === 0)
|
|
109
|
+
return null;
|
|
110
|
+
// Pass A: prefer the candidate whose env-var name ALREADY matches its detected provider.
|
|
111
|
+
for (const c of candidates) {
|
|
112
|
+
if (c.detected.provider !== 'unknown' && c.detected.envKey === c.key) {
|
|
113
|
+
return {
|
|
114
|
+
tokenEnvKey: c.key,
|
|
115
|
+
tokenValue: c.value,
|
|
116
|
+
detectedProvider: c.detected.provider,
|
|
117
|
+
source: 'env-fallback',
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Pass B: re-map the first candidate to the right provider env-var.
|
|
122
|
+
const first = candidates[0];
|
|
123
|
+
if (first.detected.provider !== 'unknown' && first.detected.envKey !== first.key) {
|
|
124
|
+
logger.info({ agentName, sourceKey: first.key, detectedProvider: first.detected.provider, remappedTo: first.detected.envKey }, '[SUBTILISATION] Token prefix detected provider mismatch — re-mapping env var.');
|
|
125
|
+
return {
|
|
126
|
+
tokenEnvKey: first.detected.envKey,
|
|
127
|
+
tokenValue: first.value,
|
|
128
|
+
detectedProvider: first.detected.provider,
|
|
129
|
+
source: 'detected',
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
// Pass C: rare — everything aligned already or all providers unknown.
|
|
133
|
+
return {
|
|
134
|
+
tokenEnvKey: first.key,
|
|
135
|
+
tokenValue: first.value,
|
|
136
|
+
detectedProvider: first.detected.provider,
|
|
137
|
+
source: 'env-fallback',
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=hermesTokenResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermesTokenResolver.js","sourceRoot":"","sources":["../../src/services/hermesTokenResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,22 @@
|
|
|
5
5
|
Chaque variable suit cette priorite (la premiere gagne):
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
|
|
9
|
-
↓
|
|
10
|
-
settings_[agent].json → env (apres interpolation $VAR par process.env)
|
|
8
|
+
process.env (env du parent, herite par le spawn)
|
|
11
9
|
↓
|
|
12
10
|
Workflow/.env (C:\Users\Deamon\Desktop\Backup\Serveur MCP\Workflow\.env)
|
|
13
11
|
↓
|
|
14
|
-
|
|
12
|
+
settings_[agent].json → env (apres interpolation $VAR par process.env)
|
|
13
|
+
↓
|
|
14
|
+
HERMES_HOME/.env (C:\Users\Deamon\AppData\Local\hermes\.env) ← DERNIER MOT
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
+
**Detail du code** (`NousHermesRunner.ts` l.268-456):
|
|
18
|
+
1. `agentCustomEnv = { ...process.env, ...settings.env }` (line 268 puis 384)
|
|
19
|
+
2. Puis lit `overmindHermesSubPath/.env` (le `.hermes/.env` de l'agent) et fait `agentCustomEnv[key] = value` (line 437-456) — ce qui OVERRIDE tout ce qui precede.
|
|
20
|
+
3. Finalement ecrit ce `agentCustomEnv` dans le `.env` final de l'agent (line 722-732) avec dedup sur les cles `*api_key` / `*auth_token`.
|
|
21
|
+
|
|
22
|
+
Donc le `.hermes/.env` de l'agent a **toujours le dernier mot**. Si tu mets `MINIMAX_API_KEY=*** dans le .hermes/.env, il ecrase `MINIMAX_API_KEY` du process.env et du settings.
|
|
23
|
+
|
|
17
24
|
**MAIS** pour `OPENROUTER_API_KEY` uniquement:
|
|
18
25
|
- Hermes lit d'abord `HERMES_HOME/.env` puis `os.environ`
|
|
19
26
|
- Si present dans `auth.json` avec status `exhausted` → skip
|
|
@@ -147,6 +154,27 @@ MINIMAX_CN_API_KEY=ton_token_minimax_ici
|
|
|
147
154
|
|
|
148
155
|
## Comment Hermes decide quel provider utiliser
|
|
149
156
|
|
|
157
|
+
Il y a DEUX niveaux de decision:
|
|
158
|
+
|
|
159
|
+
### Niveau 1: Overmind runner (avant spawn)
|
|
160
|
+
|
|
161
|
+
`NousHermesRunner.writeAuthJson()` (l.782-918) vote entre 3 signaux pour determiner le `effectiveProvider` qui sera seed dans `auth.json` et le `.env` de l'agent:
|
|
162
|
+
|
|
163
|
+
1. **Token prefix** (le plus fiable) — `detectTokenProvider()` reconnait:
|
|
164
|
+
- `sk-cp-...` ou `sk-mm-...` → `minimax`
|
|
165
|
+
- `32hex.32hex` ou 32-char hex → `zai`
|
|
166
|
+
- `sk-ant-...` → `anthropic`
|
|
167
|
+
- `sk-or-...` → `openrouter` (mais BLOQUE pour LLM par la suite)
|
|
168
|
+
- `sk-...` (autre) → `openai`
|
|
169
|
+
2. **BASE_URL** (tres fiable, plus specifique que le token pour CN vs GLOBAL) — `api.minimaxi.com` → `minimax-cn`, `api.minimax.com` → `minimax`, `api.z.ai/api/coding/paas/v4` → `zai`, `anthropic.com` → `anthropic`, `openai.com` → `openai`.
|
|
170
|
+
3. **ANTHROPIC_PROVIDER** hint du settings (le moins fiable).
|
|
171
|
+
|
|
172
|
+
**Cas special CN vs GLOBAL**: `sk-cp-` est ambigu entre `minimax` et `minimax-cn` (meme prefix). Si l'URL dit `minimaxi` (avec le `i`), c'est CN. Si `minimax` (sans le `i`), c'est GLOBAL. **L'URL gagne dans ce cas precis** parce qu'elle est la seule a desambiguïser.
|
|
173
|
+
|
|
174
|
+
### Niveau 2: Hermes upstream (apres spawn)
|
|
175
|
+
|
|
176
|
+
Hermes relit son `auth.json` + `HERMES_HOME/.env` + `os.environ` avec sa propre logique (dans `hermes_cli/auth.py`):
|
|
177
|
+
|
|
150
178
|
```
|
|
151
179
|
1. Si `provider` explicite dans config.yaml → utilise ce provider
|
|
152
180
|
2. Sinon si `ANTHROPIC_BASE_URL` contient openrouter → "openrouter"
|
|
@@ -156,7 +184,7 @@ MINIMAX_CN_API_KEY=ton_token_minimax_ici
|
|
|
156
184
|
4. Sinon fallback: model.default dans config.yaml
|
|
157
185
|
```
|
|
158
186
|
|
|
159
|
-
Le
|
|
187
|
+
**Le runner a deja vote au Niveau 1** — donc ce que tu mets dans `auth.json` (via `writeAuthJson()`) determine ce qu'Hermes verra au Niveau 2. Si le runner a seed `minimax-cn` mais que `config.yaml` dit `provider: minimax`, Hermes va probablement se plaindre. **Garde les deux alignes** ou laisse le runner ecrire le `config.yaml` (ce qu'il fait deja a chaque run).
|
|
160
188
|
|
|
161
189
|
---
|
|
162
190
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "overmind-mcp",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.25",
|
|
4
4
|
"description": "Orchestrateur universel agents IA multi-modeles via MCP. Inclut le protocole 'Custom-Nickname' pour identifier vos agents avec des surnoms originaux (The Chaos Prophet, Shadow Sniper, etc.), l'isolation mémoire (Private Memory Context) et le support pour QwenCli et Nous Hermes. Installation automatique des dépendances Docker (PostgreSQL, pgvector) inclus.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|