snow-flow 8.33.31 → 8.33.33
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/.mcp.json.template +1 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +22 -0
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -3
- package/dist/cli.js.map +1 -1
- package/dist/config/snow-code-config.d.ts.map +1 -1
- package/dist/config/snow-code-config.js +33 -95
- package/dist/config/snow-code-config.js.map +1 -1
- package/dist/mcp/enterprise-proxy/server.d.ts +30 -0
- package/dist/mcp/enterprise-proxy/server.d.ts.map +1 -0
- package/dist/mcp/enterprise-proxy/server.js +228 -0
- package/dist/mcp/enterprise-proxy/server.js.map +1 -0
- package/dist/utils/find-enterprise-proxy.d.ts +28 -0
- package/dist/utils/find-enterprise-proxy.d.ts.map +1 -0
- package/dist/utils/find-enterprise-proxy.js +132 -0
- package/dist/utils/find-enterprise-proxy.js.map +1 -0
- package/dist/utils/sync-mcp-configs.d.ts +26 -0
- package/dist/utils/sync-mcp-configs.d.ts.map +1 -0
- package/dist/utils/sync-mcp-configs.js +131 -0
- package/dist/utils/sync-mcp-configs.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sync MCP Configuration Files
|
|
4
|
+
* Ensures .claude/mcp-config.json is always in sync with .mcp.json
|
|
5
|
+
*
|
|
6
|
+
* This is critical for enterprise MCP server availability because:
|
|
7
|
+
* - snow-code auth login updates .mcp.json
|
|
8
|
+
* - But Claude Code reads .claude/mcp-config.json
|
|
9
|
+
* - Without sync, enterprise server won't be available in swarm command
|
|
10
|
+
*/
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.syncMcpConfigs = syncMcpConfigs;
|
|
16
|
+
exports.ensureMcpConfigSync = ensureMcpConfigSync;
|
|
17
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
18
|
+
const fs_1 = require("fs");
|
|
19
|
+
const path_1 = __importDefault(require("path"));
|
|
20
|
+
const logger_js_1 = require("./logger.js");
|
|
21
|
+
const logger = new logger_js_1.Logger('mcp-config-sync');
|
|
22
|
+
/**
|
|
23
|
+
* Sync .mcp.json to .claude/mcp-config.json
|
|
24
|
+
*
|
|
25
|
+
* This ensures Claude Code always sees the same MCP servers as configured in .mcp.json
|
|
26
|
+
* Particularly important for enterprise server configuration during auth flow
|
|
27
|
+
*
|
|
28
|
+
* @param projectRoot - Project root directory (defaults to current working directory)
|
|
29
|
+
*/
|
|
30
|
+
async function syncMcpConfigs(projectRoot = process.cwd()) {
|
|
31
|
+
try {
|
|
32
|
+
const mcpJsonPath = path_1.default.join(projectRoot, '.mcp.json');
|
|
33
|
+
const claudeMcpConfigPath = path_1.default.join(projectRoot, '.claude', 'mcp-config.json');
|
|
34
|
+
// Check if .mcp.json exists
|
|
35
|
+
if (!(0, fs_1.existsSync)(mcpJsonPath)) {
|
|
36
|
+
logger.debug('.mcp.json does not exist, skipping sync');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// Read .mcp.json
|
|
40
|
+
const mcpJsonContent = await promises_1.default.readFile(mcpJsonPath, 'utf-8');
|
|
41
|
+
const mcpConfig = JSON.parse(mcpJsonContent);
|
|
42
|
+
// Ensure .claude directory exists
|
|
43
|
+
const claudeDir = path_1.default.dirname(claudeMcpConfigPath);
|
|
44
|
+
if (!(0, fs_1.existsSync)(claudeDir)) {
|
|
45
|
+
await promises_1.default.mkdir(claudeDir, { recursive: true });
|
|
46
|
+
logger.info(`Created .claude directory: ${claudeDir}`);
|
|
47
|
+
}
|
|
48
|
+
// Convert .mcp.json format to .claude/mcp-config.json format
|
|
49
|
+
// .mcp.json uses { mcpServers: { ... } }
|
|
50
|
+
// .claude/mcp-config.json also uses { mcpServers: { ... } }
|
|
51
|
+
// But we need to ensure the format matches what Claude Code expects
|
|
52
|
+
const claudeConfig = {
|
|
53
|
+
mcpServers: {}
|
|
54
|
+
};
|
|
55
|
+
// Copy all servers from .mcp.json to claude config
|
|
56
|
+
if (mcpConfig.mcpServers) {
|
|
57
|
+
for (const [serverName, serverConfig] of Object.entries(mcpConfig.mcpServers)) {
|
|
58
|
+
const config = serverConfig;
|
|
59
|
+
// Convert to Claude Code format
|
|
60
|
+
// Claude Code expects: command, args, env (or environment)
|
|
61
|
+
// New format uses: type, command (array), environment
|
|
62
|
+
if (config.type === 'local') {
|
|
63
|
+
// New format: command is an array like ["node", "/path/to/server.js"]
|
|
64
|
+
const command = Array.isArray(config.command) ? config.command : [config.command];
|
|
65
|
+
claudeConfig.mcpServers[serverName] = {
|
|
66
|
+
command: command[0], // "node"
|
|
67
|
+
args: command.slice(1), // ["/path/to/server.js"]
|
|
68
|
+
description: config.description,
|
|
69
|
+
env: config.environment || config.env || {},
|
|
70
|
+
...(config.enabled !== undefined && { enabled: config.enabled })
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
else if (config.type === 'remote') {
|
|
74
|
+
// Remote servers (SSE)
|
|
75
|
+
claudeConfig.mcpServers[serverName] = {
|
|
76
|
+
url: config.url,
|
|
77
|
+
description: config.description,
|
|
78
|
+
env: config.environment || config.env || {},
|
|
79
|
+
...(config.enabled !== undefined && { enabled: config.enabled })
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Fallback - copy as-is but ensure env key exists
|
|
84
|
+
claudeConfig.mcpServers[serverName] = {
|
|
85
|
+
...config,
|
|
86
|
+
env: config.environment || config.env || {}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Write to .claude/mcp-config.json
|
|
92
|
+
await promises_1.default.writeFile(claudeMcpConfigPath, JSON.stringify(claudeConfig, null, 2), 'utf-8');
|
|
93
|
+
logger.info(`✅ Synced .mcp.json → .claude/mcp-config.json`);
|
|
94
|
+
logger.debug(`Synced ${Object.keys(claudeConfig.mcpServers).length} MCP servers`);
|
|
95
|
+
// Log which servers are enabled
|
|
96
|
+
const enabledServers = Object.entries(claudeConfig.mcpServers)
|
|
97
|
+
.filter(([_, config]) => config.enabled !== false)
|
|
98
|
+
.map(([name]) => name);
|
|
99
|
+
if (enabledServers.length > 0) {
|
|
100
|
+
logger.info(`Enabled servers: ${enabledServers.join(', ')}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
logger.error(`Failed to sync MCP configs: ${error.message}`);
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Ensure .claude/mcp-config.json exists and is synced with .mcp.json
|
|
110
|
+
* This is a convenience wrapper that creates the file if it doesn't exist
|
|
111
|
+
*
|
|
112
|
+
* @param projectRoot - Project root directory (defaults to current working directory)
|
|
113
|
+
*/
|
|
114
|
+
async function ensureMcpConfigSync(projectRoot = process.cwd()) {
|
|
115
|
+
try {
|
|
116
|
+
await syncMcpConfigs(projectRoot);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
// If sync fails, try to create a minimal config
|
|
120
|
+
const claudeMcpConfigPath = path_1.default.join(projectRoot, '.claude', 'mcp-config.json');
|
|
121
|
+
if (!(0, fs_1.existsSync)(claudeMcpConfigPath)) {
|
|
122
|
+
logger.warn('Creating minimal .claude/mcp-config.json');
|
|
123
|
+
const claudeDir = path_1.default.dirname(claudeMcpConfigPath);
|
|
124
|
+
if (!(0, fs_1.existsSync)(claudeDir)) {
|
|
125
|
+
await promises_1.default.mkdir(claudeDir, { recursive: true });
|
|
126
|
+
}
|
|
127
|
+
await promises_1.default.writeFile(claudeMcpConfigPath, JSON.stringify({ mcpServers: {} }, null, 2), 'utf-8');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=sync-mcp-configs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-mcp-configs.js","sourceRoot":"","sources":["../../src/utils/sync-mcp-configs.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;AAiBH,wCAwFC;AAQD,kDAsBC;AArID,2DAA6B;AAC7B,2BAAgC;AAChC,gDAAwB;AACxB,2CAAqC;AAErC,MAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,iBAAiB,CAAC,CAAC;AAE7C;;;;;;;GAOG;AACI,KAAK,UAAU,cAAc,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACtE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACxD,MAAM,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAEjF,4BAA4B;QAC5B,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,MAAM,cAAc,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAE7C,kCAAkC;QAClC,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACpD,IAAI,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,6DAA6D;QAC7D,yCAAyC;QACzC,4DAA4D;QAC5D,oEAAoE;QAEpE,MAAM,YAAY,GAAQ;YACxB,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,mDAAmD;QACnD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9E,MAAM,MAAM,GAAQ,YAAY,CAAC;gBAEjC,gCAAgC;gBAChC,2DAA2D;gBAC3D,sDAAsD;gBAEtD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC5B,sEAAsE;oBACtE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAElF,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG;wBACpC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS;wBAC9B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,yBAAyB;wBACjD,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,GAAG,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE;wBAC3C,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;qBACjE,CAAC;gBACJ,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACpC,uBAAuB;oBACvB,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG;wBACpC,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,GAAG,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE;wBAC3C,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;qBACjE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,kDAAkD;oBAClD,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG;wBACpC,GAAG,MAAM;wBACT,GAAG,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE;qBAC5C,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,MAAM,kBAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAExF,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC;QAElF,gCAAgC;QAChC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;aAC3D,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC;aAChE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,oBAAoB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IAEH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAC3E,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,gDAAgD;QAChD,MAAM,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAEjF,IAAI,CAAC,IAAA,eAAU,EAAC,mBAAmB,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YAExD,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACpD,IAAI,CAAC,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,kBAAE,CAAC,SAAS,CAChB,mBAAmB,EACnB,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAC3C,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "8.33.
|
|
1
|
+
export declare const VERSION = "8.33.33";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "snow-flow",
|
|
3
|
-
"version": "8.33.
|
|
3
|
+
"version": "8.33.33",
|
|
4
4
|
"description": "ServiceNow development with SnowCode - 75+ LLM providers (Claude, GPT, Gemini, Llama, Mistral, DeepSeek, Groq, Ollama) • 393 Optimized Tools • 2 MCP Servers • Multi-agent orchestration • Use ANY AI coding assistant (ML tools moved to Enterprise)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -498,7 +498,7 @@
|
|
|
498
498
|
"@anthropic-ai/claude-agent-sdk": "0.1.1",
|
|
499
499
|
"@anthropic-ai/sdk": "0.67.0",
|
|
500
500
|
"@clack/prompts": "^0.11.0",
|
|
501
|
-
"@groeimetai/snow-code": "
|
|
501
|
+
"@groeimetai/snow-code": "^1.0.65",
|
|
502
502
|
"@modelcontextprotocol/sdk": "1.20.1",
|
|
503
503
|
"@tensorflow/tfjs": "^4.22.0",
|
|
504
504
|
"@types/node-fetch": "^2.6.13",
|