overmind-mcp 2.8.52 → 2.8.53
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/bridge/ScenarioLoader.d.ts +20 -1
- package/dist/bridge/ScenarioLoader.d.ts.map +1 -1
- package/dist/bridge/ScenarioLoader.js +42 -0
- package/dist/bridge/ScenarioLoader.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/agent_lifecycle.d.ts +19 -0
- package/dist/lib/agent_lifecycle.d.ts.map +1 -1
- package/dist/lib/agent_lifecycle.js +92 -1
- package/dist/lib/agent_lifecycle.js.map +1 -1
- package/dist/lib/orchestration/dispatcher.d.ts +13 -0
- package/dist/lib/orchestration/dispatcher.d.ts.map +1 -1
- package/dist/lib/orchestration/dispatcher.js +100 -0
- package/dist/lib/orchestration/dispatcher.js.map +1 -1
- package/dist/services/AgentManager.d.ts +4 -4
- package/dist/services/AgentManager.d.ts.map +1 -1
- package/dist/services/AgentManager.js +139 -191
- package/dist/services/AgentManager.js.map +1 -1
- package/dist/services/HermesProfileManager.d.ts +99 -0
- package/dist/services/HermesProfileManager.d.ts.map +1 -0
- package/dist/services/HermesProfileManager.js +356 -0
- package/dist/services/HermesProfileManager.js.map +1 -0
- package/dist/services/HermesRunner.d.ts +53 -0
- package/dist/services/HermesRunner.d.ts.map +1 -0
- package/dist/services/HermesRunner.js +313 -0
- package/dist/services/HermesRunner.js.map +1 -0
- package/dist/services/KanbanAdapter.d.ts +135 -0
- package/dist/services/KanbanAdapter.d.ts.map +1 -0
- package/dist/services/KanbanAdapter.js +320 -0
- package/dist/services/KanbanAdapter.js.map +1 -0
- package/dist/tools/manage_agents.js +4 -4
- package/dist/tools/manage_agents.js.map +1 -1
- package/dist/tools/memory_store.d.ts +1 -1
- package/dist/tools/run_hermes.d.ts +1 -0
- package/dist/tools/run_hermes.d.ts.map +1 -1
- package/dist/tools/run_hermes.js +12 -6
- package/dist/tools/run_hermes.js.map +1 -1
- package/docs/PLAN_MIGRATION_V3.md +339 -0
- package/package.json +2 -2
- package/scripts/migrate-to-profiles.mjs +205 -0
- package/dist/lib/orchestration/swarm.d.ts +0 -76
- package/dist/lib/orchestration/swarm.d.ts.map +0 -1
- package/dist/lib/orchestration/swarm.js +0 -241
- package/dist/lib/orchestration/swarm.js.map +0 -1
- package/dist/prompts/agent_prompts.d.ts +0 -2
- package/dist/prompts/agent_prompts.d.ts.map +0 -1
- package/dist/prompts/agent_prompts.js +0 -21
- package/dist/prompts/agent_prompts.js.map +0 -1
- package/dist/services/NousHermesRunner.d.ts +0 -83
- package/dist/services/NousHermesRunner.d.ts.map +0 -1
- package/dist/services/NousHermesRunner.js +0 -1241
- package/dist/services/NousHermesRunner.js.map +0 -1
- package/dist/services/hermes/binaryFinder.d.ts +0 -8
- package/dist/services/hermes/binaryFinder.d.ts.map +0 -1
- package/dist/services/hermes/binaryFinder.js +0 -92
- package/dist/services/hermes/binaryFinder.js.map +0 -1
- package/dist/services/hermes/configYamlFilter.d.ts +0 -12
- package/dist/services/hermes/configYamlFilter.d.ts.map +0 -1
- package/dist/services/hermes/configYamlFilter.js +0 -70
- package/dist/services/hermes/configYamlFilter.js.map +0 -1
- package/dist/services/hermes/providerConfig.d.ts +0 -19
- package/dist/services/hermes/providerConfig.d.ts.map +0 -1
- package/dist/services/hermes/providerConfig.js +0 -53
- package/dist/services/hermes/providerConfig.js.map +0 -1
- package/dist/services/hermesTokenResolver.d.ts +0 -74
- package/dist/services/hermesTokenResolver.d.ts.map +0 -1
- package/dist/services/hermesTokenResolver.js +0 -140
- package/dist/services/hermesTokenResolver.js.map +0 -1
- package/dist/tools/initialization_check.d.ts +0 -2
- package/dist/tools/initialization_check.d.ts.map +0 -1
- package/dist/tools/initialization_check.js +0 -23
- package/dist/tools/initialization_check.js.map +0 -1
- /package/bin/{launch.js → launch.cjs} +0 -0
- /package/dist/bin/{launch.js → launch.cjs} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NousHermesRunner.js","sourceRoot":"","sources":["../../src/services/NousHermesRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Find the hermes binary across platforms (Windows, Linux, macOS).
|
|
3
|
-
*
|
|
4
|
-
* Priority: HERMES_BIN_PATH env > PATH > platform-specific paths > pip show
|
|
5
|
-
* > bare "hermes" (lets spawn fail with a proper error).
|
|
6
|
-
*/
|
|
7
|
-
export declare function findHermesBinary(): Promise<string>;
|
|
8
|
-
//# sourceMappingURL=binaryFinder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binaryFinder.d.ts","sourceRoot":"","sources":["../../../src/services/hermes/binaryFinder.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAiGxD"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { exec } from 'child_process';
|
|
4
|
-
import { promisify } from 'util';
|
|
5
|
-
import { rootLogger } from '../../lib/logger.js';
|
|
6
|
-
const execAsync = promisify(exec);
|
|
7
|
-
const logger = rootLogger.child({ module: 'Hermes-binaryFinder' });
|
|
8
|
-
/**
|
|
9
|
-
* Find the hermes binary across platforms (Windows, Linux, macOS).
|
|
10
|
-
*
|
|
11
|
-
* Priority: HERMES_BIN_PATH env > PATH > platform-specific paths > pip show
|
|
12
|
-
* > bare "hermes" (lets spawn fail with a proper error).
|
|
13
|
-
*/
|
|
14
|
-
export async function findHermesBinary() {
|
|
15
|
-
const isWin = process.platform === 'win32';
|
|
16
|
-
// 1. Check environment variable first (allows users to override)
|
|
17
|
-
if (process.env.HERMES_BIN_PATH) {
|
|
18
|
-
if (fs.existsSync(process.env.HERMES_BIN_PATH)) {
|
|
19
|
-
logger.info({ path: process.env.HERMES_BIN_PATH }, 'Using HERMES_BIN_PATH');
|
|
20
|
-
return process.env.HERMES_BIN_PATH;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
// 2. Try to find via PATH
|
|
24
|
-
try {
|
|
25
|
-
const command = isWin ? 'where hermes' : 'which hermes';
|
|
26
|
-
const { stdout } = await execAsync(command);
|
|
27
|
-
const hermesPath = stdout.trim().split('\n')[0];
|
|
28
|
-
if (hermesPath && fs.existsSync(hermesPath)) {
|
|
29
|
-
logger.info({ path: hermesPath }, 'Found hermes in PATH');
|
|
30
|
-
return hermesPath;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
// Not found in PATH
|
|
35
|
-
}
|
|
36
|
-
// 3. Platform-specific paths
|
|
37
|
-
const platformPaths = [];
|
|
38
|
-
if (isWin) {
|
|
39
|
-
platformPaths.push(
|
|
40
|
-
// Hermes venv (Nous Research install) — PRIORITÉ haute (v0.13.0, supporte -z)
|
|
41
|
-
path.join(process.env.LOCALAPPDATA || '', 'hermes', 'hermes-agent', 'venv', 'Scripts', 'hermes.exe'),
|
|
42
|
-
// Officiel installer Windows (install.ps1) — chemin natif
|
|
43
|
-
path.join(process.env.LOCALAPPDATA || '', 'hermes', 'bin', 'hermes.exe'), path.join(process.env.LOCALAPPDATA || '', 'hermes', 'hermes.exe'));
|
|
44
|
-
// Dynamically scan for Python versions in LOCALAPPDATA
|
|
45
|
-
const programsPython = path.join(process.env.LOCALAPPDATA || '', 'Programs', 'Python');
|
|
46
|
-
if (fs.existsSync(programsPython)) {
|
|
47
|
-
try {
|
|
48
|
-
const dirs = fs.readdirSync(programsPython);
|
|
49
|
-
for (const dir of dirs) {
|
|
50
|
-
if (dir.toLowerCase().startsWith('python')) {
|
|
51
|
-
platformPaths.push(path.join(programsPython, dir, 'Scripts', 'hermes.exe'));
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
catch { /* ignored */ }
|
|
56
|
-
}
|
|
57
|
-
platformPaths.push(
|
|
58
|
-
// Fallback installations via pip (legacy)
|
|
59
|
-
path.join(process.env.LOCALAPPDATA || '', 'Programs', 'Python', 'Python312', 'Scripts', 'hermes.exe'), path.join(process.env.APPDATA || '', 'Python', 'Python312', 'Scripts', 'hermes.exe'), path.join(process.env.LOCALAPPDATA || '', 'Programs', 'Python', 'Python311', 'Scripts', 'hermes.exe'), path.join(process.env.APPDATA || '', 'Python', 'Python311', 'Scripts', 'hermes.exe'), 'C:\\Python312\\Scripts\\hermes.exe', 'C:\\Python311\\Scripts\\hermes.exe', 'C:\\Program Files\\Hermes\\hermes.exe');
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
platformPaths.push(path.join(process.env.HOME || '', '.local', 'bin', 'hermes'), path.join(process.env.HOME || '', 'miniconda3', 'bin', 'hermes'), path.join(process.env.HOME || '', 'anaconda3', 'bin', 'hermes'), '/usr/local/bin/hermes', '/usr/bin/hermes', '/opt/homebrew/bin/hermes');
|
|
63
|
-
}
|
|
64
|
-
for (const p of platformPaths) {
|
|
65
|
-
if (fs.existsSync(p)) {
|
|
66
|
-
logger.info({ path: p }, 'Found hermes at platform path');
|
|
67
|
-
return p;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
// 4. Try pip show to find installation
|
|
71
|
-
try {
|
|
72
|
-
const { stdout } = await execAsync('pip show hermes-agent 2>/dev/null || pip3 show hermes-agent');
|
|
73
|
-
const match = stdout.match(/Location:\s*(.+)/);
|
|
74
|
-
if (match) {
|
|
75
|
-
const sitePackages = match[1].trim();
|
|
76
|
-
const hermesPath = isWin
|
|
77
|
-
? path.join(sitePackages, 'Scripts', 'hermes.exe')
|
|
78
|
-
: path.join(sitePackages, 'bin', 'hermes');
|
|
79
|
-
if (fs.existsSync(hermesPath)) {
|
|
80
|
-
logger.info({ path: hermesPath }, 'Found hermes via pip show');
|
|
81
|
-
return hermesPath;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
// pip show failed
|
|
87
|
-
}
|
|
88
|
-
// 5. Fallback to 'hermes' and let spawn fail with proper error
|
|
89
|
-
logger.warn('hermes binary not found, using "hermes" command');
|
|
90
|
-
return 'hermes';
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=binaryFinder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binaryFinder.js","sourceRoot":"","sources":["../../../src/services/hermes/binaryFinder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Filter a Hermes config.yaml to only include the allowed MCP servers.
|
|
3
|
-
*
|
|
4
|
-
* Reads the `mcp_servers:` block from the source YAML, extracts each server
|
|
5
|
-
* sub-block (by indentation), and keeps only those whose name is in
|
|
6
|
-
* `allowedServers`. Non-mcp_servers content (header, comments) is preserved.
|
|
7
|
-
*
|
|
8
|
-
* Returns a valid YAML string. If the source file doesn't exist, returns
|
|
9
|
-
* an empty `mcp_servers: {}` block.
|
|
10
|
-
*/
|
|
11
|
-
export declare function filterConfigYaml(sourceYamlPath: string, allowedServers: string[]): string;
|
|
12
|
-
//# sourceMappingURL=configYamlFilter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configYamlFilter.d.ts","sourceRoot":"","sources":["../../../src/services/hermes/configYamlFilter.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAwDzF"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import { rootLogger } from '../../lib/logger.js';
|
|
3
|
-
const logger = rootLogger.child({ module: 'Hermes-configYamlFilter' });
|
|
4
|
-
/**
|
|
5
|
-
* Filter a Hermes config.yaml to only include the allowed MCP servers.
|
|
6
|
-
*
|
|
7
|
-
* Reads the `mcp_servers:` block from the source YAML, extracts each server
|
|
8
|
-
* sub-block (by indentation), and keeps only those whose name is in
|
|
9
|
-
* `allowedServers`. Non-mcp_servers content (header, comments) is preserved.
|
|
10
|
-
*
|
|
11
|
-
* Returns a valid YAML string. If the source file doesn't exist, returns
|
|
12
|
-
* an empty `mcp_servers: {}` block.
|
|
13
|
-
*/
|
|
14
|
-
export function filterConfigYaml(sourceYamlPath, allowedServers) {
|
|
15
|
-
try {
|
|
16
|
-
if (!fs.existsSync(sourceYamlPath))
|
|
17
|
-
return 'mcp_servers: {}\n';
|
|
18
|
-
const yamlText = fs.readFileSync(sourceYamlPath, 'utf8');
|
|
19
|
-
const lines = yamlText.split(/\r?\n/);
|
|
20
|
-
let inMcpServers = false;
|
|
21
|
-
let currentServerName = '';
|
|
22
|
-
const serverBlocks = {};
|
|
23
|
-
const headerLines = [];
|
|
24
|
-
for (const line of lines) {
|
|
25
|
-
const trimmed = line.trim();
|
|
26
|
-
if (line.match(/^mcp_servers:\s*$/) || line.match(/^mcp_servers:\s*#.*$/)) {
|
|
27
|
-
inMcpServers = true;
|
|
28
|
-
headerLines.push(line);
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
if (inMcpServers) {
|
|
32
|
-
const indentMatch = line.match(/^(\s+)/);
|
|
33
|
-
if (!indentMatch) {
|
|
34
|
-
inMcpServers = false;
|
|
35
|
-
headerLines.push(line);
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
const indent = indentMatch[1].length;
|
|
39
|
-
const keyMatch = trimmed.match(/^([a-zA-Z0-9_-]+)\s*:/);
|
|
40
|
-
if (keyMatch && indent === 2) {
|
|
41
|
-
currentServerName = keyMatch[1];
|
|
42
|
-
serverBlocks[currentServerName] = [line];
|
|
43
|
-
}
|
|
44
|
-
else if (currentServerName) {
|
|
45
|
-
serverBlocks[currentServerName].push(line);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
headerLines.push(line);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
let result = '';
|
|
53
|
-
for (const line of headerLines) {
|
|
54
|
-
result += line + '\n';
|
|
55
|
-
if (line.match(/^mcp_servers:\s*$/) || line.match(/^mcp_servers:\s*#.*$/)) {
|
|
56
|
-
for (const srv of allowedServers) {
|
|
57
|
-
if (serverBlocks[srv]) {
|
|
58
|
-
result += serverBlocks[srv].join('\n') + '\n';
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return result;
|
|
64
|
-
}
|
|
65
|
-
catch (err) {
|
|
66
|
-
logger.error({ sourceYamlPath, error: err }, '[YAML_FILTER] Unexpected failure while filtering config.yaml.');
|
|
67
|
-
return 'mcp_servers: {}\n';
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=configYamlFilter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configYamlFilter.js","sourceRoot":"","sources":["../../../src/services/hermes/configYamlFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provider configuration constants for the Hermes runner.
|
|
3
|
-
*
|
|
4
|
-
* Extracted from NousHermesRunner.ts to reduce file size and improve
|
|
5
|
-
* discoverability. These are static lookups — no runtime side-effects.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Default base URL for a given provider. Used when settings.json
|
|
9
|
-
* doesn't specify ANTHROPIC_BASE_URL. Each provider has its canonical
|
|
10
|
-
* endpoint baked in here so the runner doesn't need an external config.
|
|
11
|
-
*/
|
|
12
|
-
export declare function defaultBaseUrlFor(provider: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Every env-var name the runner knows about for credential resolution.
|
|
15
|
-
* Declared at module scope so it's available for the RAW pre-interpolation
|
|
16
|
-
* capture. 100% exhaustive — every token key the runner checks.
|
|
17
|
-
*/
|
|
18
|
-
export declare const TOKEN_KEYS: string[];
|
|
19
|
-
//# sourceMappingURL=providerConfig.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"providerConfig.d.ts","sourceRoot":"","sources":["../../../src/services/hermes/providerConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU1D;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,UAwBtB,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provider configuration constants for the Hermes runner.
|
|
3
|
-
*
|
|
4
|
-
* Extracted from NousHermesRunner.ts to reduce file size and improve
|
|
5
|
-
* discoverability. These are static lookups — no runtime side-effects.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Default base URL for a given provider. Used when settings.json
|
|
9
|
-
* doesn't specify ANTHROPIC_BASE_URL. Each provider has its canonical
|
|
10
|
-
* endpoint baked in here so the runner doesn't need an external config.
|
|
11
|
-
*/
|
|
12
|
-
export function defaultBaseUrlFor(provider) {
|
|
13
|
-
switch (provider) {
|
|
14
|
-
case 'minimax-cn': return 'https://api.minimaxi.com/anthropic';
|
|
15
|
-
case 'minimax': return 'https://api.minimax.com/anthropic';
|
|
16
|
-
case 'zai':
|
|
17
|
-
case 'z-ai': return 'https://api.z.ai/api/coding/paas/v4';
|
|
18
|
-
case 'anthropic': return 'https://api.anthropic.com';
|
|
19
|
-
case 'openai': return 'https://api.openai.com/v1';
|
|
20
|
-
default: return 'https://api.z.ai/api/coding/paas/v4';
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Every env-var name the runner knows about for credential resolution.
|
|
25
|
-
* Declared at module scope so it's available for the RAW pre-interpolation
|
|
26
|
-
* capture. 100% exhaustive — every token key the runner checks.
|
|
27
|
-
*/
|
|
28
|
-
export const TOKEN_KEYS = [
|
|
29
|
-
// Generic Anthropic-compatible (Hermes v0.16.0)
|
|
30
|
-
'ANTHROPIC_AUTH_TOKEN', 'ANTHROPIC_AUTH_TOKEN_E', 'ANTHROPIC_AUTH_TOKEN_F', 'ANTHROPIC_AUTH_TOKEN_Y',
|
|
31
|
-
// Suffixes numériques 1..9 (convention observée dans les .env prod)
|
|
32
|
-
'ANTHROPIC_AUTH_TOKEN_1', 'ANTHROPIC_AUTH_TOKEN_2', 'ANTHROPIC_AUTH_TOKEN_3', 'ANTHROPIC_AUTH_TOKEN_4', 'ANTHROPIC_AUTH_TOKEN_5',
|
|
33
|
-
'ANTHROPIC_AUTH_TOKEN_6', 'ANTHROPIC_AUTH_TOKEN_7', 'ANTHROPIC_AUTH_TOKEN_8', 'ANTHROPIC_AUTH_TOKEN_9',
|
|
34
|
-
'ANTHROPIC_AUTH_TOKEN_0',
|
|
35
|
-
// Z.AI / GLM
|
|
36
|
-
'GLM_API_KEY', 'GLM_API_KEY_E', 'GLM_API_KEY_Y',
|
|
37
|
-
'Z_AI_API_KEY', 'ZAI_ANTHROPIC_FALLBACK_KEY',
|
|
38
|
-
'ZAI_API_KEY_E', 'ZAI_API_KEY_Y',
|
|
39
|
-
'ZAI_API_KEY_1', 'ZAI_API_KEY_2', 'ZAI_API_KEY_3', 'ZAI_API_KEY_4', 'ZAI_API_KEY_5',
|
|
40
|
-
'ZAI_API_KEY_6', 'ZAI_API_KEY_7', 'ZAI_API_KEY_8', 'ZAI_API_KEY_9', 'ZAI_API_KEY_0',
|
|
41
|
-
// MiniMax
|
|
42
|
-
'MINIMAX_API_KEY', 'MINIMAX_CN_API_KEY',
|
|
43
|
-
'MINIMAX_API_KEY_E', 'MINIMAX_API_KEY_Y',
|
|
44
|
-
'MINIMAX_API_KEY_1', 'MINIMAX_API_KEY_2', 'MINIMAX_API_KEY_3', 'MINIMAX_API_KEY_4', 'MINIMAX_API_KEY_5',
|
|
45
|
-
'MINIMAX_CN_API_KEY_E', 'MINIMAX_CN_API_KEY_Y',
|
|
46
|
-
'MINIMAX_CN_API_KEY_1', 'MINIMAX_CN_API_KEY_2', 'MINIMAX_CN_API_KEY_3', 'MINIMAX_CN_API_KEY_4', 'MINIMAX_CN_API_KEY_5',
|
|
47
|
-
// OpenAI fallback
|
|
48
|
-
'OPENAI_API_KEY', 'OPENAI_AUTH_TOKEN',
|
|
49
|
-
// Mistral
|
|
50
|
-
'MISTRAL_API_KEY', 'MISTRAL_API_KEY_1', 'MISTRAL_API_KEY_2', 'MISTRAL_API_KEY_3', 'MISTRAL_API_KEY_4', 'MISTRAL_API_KEY_5',
|
|
51
|
-
'MISTRAL_API_KEY_6', 'MISTRAL_API_KEY_7', 'MISTRAL_API_KEY_E', 'MISTRAL_API_KEY_Y',
|
|
52
|
-
];
|
|
53
|
-
//# sourceMappingURL=providerConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"providerConfig.js","sourceRoot":"","sources":["../../../src/services/hermes/providerConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,YAAY,CAAC,CAAC,OAAO,oCAAoC,CAAC;QAC/D,KAAK,SAAS,CAAC,CAAI,OAAO,mCAAmC,CAAC;QAC9D,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC,CAAO,OAAO,qCAAqC,CAAC;QAChE,KAAK,WAAW,CAAC,CAAE,OAAO,2BAA2B,CAAC;QACtD,KAAK,QAAQ,CAAC,CAAK,OAAO,2BAA2B,CAAC;QACtD,OAAO,CAAC,CAAW,OAAO,qCAAqC,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,gDAAgD;IAChD,sBAAsB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB;IACpG,oEAAoE;IACpE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB;IAChI,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,wBAAwB;IACtG,wBAAwB;IACxB,aAAa;IACb,aAAa,EAAE,eAAe,EAAE,eAAe;IAC/C,cAAc,EAAE,4BAA4B;IAC5C,eAAe,EAAE,eAAe;IAChC,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe;IACnF,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe;IACnF,UAAU;IACV,iBAAiB,EAAE,oBAAoB;IACvC,mBAAmB,EAAE,mBAAmB;IACxC,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB;IACvG,sBAAsB,EAAE,sBAAsB;IAC9C,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB;IACtH,kBAAkB;IAClB,gBAAgB,EAAE,mBAAmB;IACrC,UAAU;IACV,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB;IAC1H,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB;CACnF,CAAC"}
|
|
@@ -1,74 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,140 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hermesTokenResolver.js","sourceRoot":"","sources":["../../src/services/hermesTokenResolver.ts"],"names":[],"mappings":"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"}
|