snow-flow 1.4.40 â 1.4.42
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/.claude.mcp-config.template +4 -8
- package/.mcp.json.template +5 -20
- package/README.md +36 -0
- package/dist/cli.js +43 -47
- package/dist/cli.js.map +1 -1
- package/dist/mcp/servicenow-automation-mcp.js +37 -3
- package/dist/mcp/servicenow-automation-mcp.js.map +1 -1
- package/dist/mcp/servicenow-reporting-analytics-mcp.js +109 -4
- package/dist/mcp/servicenow-reporting-analytics-mcp.js.map +1 -1
- package/dist/mcp/servicenow-security-compliance-mcp.js +122 -46
- package/dist/mcp/servicenow-security-compliance-mcp.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +2 -2
- package/scripts/register-mcp-servers.js +2 -2
|
@@ -44,18 +44,14 @@
|
|
|
44
44
|
"SNOW_CLIENT_SECRET": "${SNOW_CLIENT_SECRET}"
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
-
"servicenow-
|
|
47
|
+
"servicenow-memory": {
|
|
48
48
|
"command": "node",
|
|
49
49
|
"args": [
|
|
50
|
-
"${MCP_PATH}/servicenow-
|
|
50
|
+
"${MCP_PATH}/servicenow-memory-mcp.js"
|
|
51
51
|
],
|
|
52
52
|
"env": {
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"NEO4J_PASSWORD": "${NEO4J_PASSWORD}",
|
|
56
|
-
"SNOW_INSTANCE": "${SNOW_INSTANCE}",
|
|
57
|
-
"SNOW_CLIENT_ID": "${SNOW_CLIENT_ID}",
|
|
58
|
-
"SNOW_CLIENT_SECRET": "${SNOW_CLIENT_SECRET}"
|
|
53
|
+
"MEMORY_PATH": "${MEMORY_PATH}",
|
|
54
|
+
"SNOW_FLOW_HOME": "${SNOW_FLOW_HOME}"
|
|
59
55
|
}
|
|
60
56
|
},
|
|
61
57
|
"servicenow-operations": {
|
package/.mcp.json.template
CHANGED
|
@@ -29,16 +29,12 @@
|
|
|
29
29
|
"SNOW_CLIENT_SECRET": "{{SNOW_CLIENT_SECRET}}"
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
|
-
"servicenow-
|
|
32
|
+
"servicenow-memory": {
|
|
33
33
|
"command": "node",
|
|
34
|
-
"args": ["{{PROJECT_ROOT}}/dist/mcp/servicenow-
|
|
34
|
+
"args": ["{{PROJECT_ROOT}}/dist/mcp/servicenow-memory-mcp.js"],
|
|
35
35
|
"env": {
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"NEO4J_PASSWORD": "{{NEO4J_PASSWORD}}",
|
|
39
|
-
"SNOW_INSTANCE": "{{SNOW_INSTANCE}}",
|
|
40
|
-
"SNOW_CLIENT_ID": "{{SNOW_CLIENT_ID}}",
|
|
41
|
-
"SNOW_CLIENT_SECRET": "{{SNOW_CLIENT_SECRET}}"
|
|
36
|
+
"MEMORY_PATH": "{{MEMORY_PATH}}",
|
|
37
|
+
"SNOW_FLOW_HOME": "{{SNOW_FLOW_HOME}}"
|
|
42
38
|
}
|
|
43
39
|
},
|
|
44
40
|
"servicenow-operations": {
|
|
@@ -95,21 +91,10 @@
|
|
|
95
91
|
"SNOW_CLIENT_SECRET": "{{SNOW_CLIENT_SECRET}}"
|
|
96
92
|
}
|
|
97
93
|
},
|
|
98
|
-
"servicenow-memory": {
|
|
99
|
-
"command": "node",
|
|
100
|
-
"args": ["{{PROJECT_ROOT}}/dist/mcp/servicenow-memory-mcp.js"],
|
|
101
|
-
"env": {
|
|
102
|
-
"SNOW_INSTANCE": "{{SNOW_INSTANCE}}",
|
|
103
|
-
"SNOW_CLIENT_ID": "{{SNOW_CLIENT_ID}}",
|
|
104
|
-
"SNOW_CLIENT_SECRET": "{{SNOW_CLIENT_SECRET}}"
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
94
|
"snow-flow": {
|
|
108
95
|
"command": "node",
|
|
109
96
|
"args": ["{{PROJECT_ROOT}}/dist/mcp/snow-flow-mcp.js"],
|
|
110
|
-
"env": {
|
|
111
|
-
"SNOW_FLOW_ENV": "{{SNOW_FLOW_ENV}}"
|
|
112
|
-
}
|
|
97
|
+
"env": {}
|
|
113
98
|
}
|
|
114
99
|
}
|
|
115
100
|
}
|
package/README.md
CHANGED
|
@@ -203,6 +203,42 @@ Snow-Flow provides **100+ real MCP tools** across 16 categories via **16 special
|
|
|
203
203
|
- `snow_ensure_active_update_set` - Ensure active session
|
|
204
204
|
- Plus 5+ additional update set tools
|
|
205
205
|
|
|
206
|
+
#### đ¯ **Automatic Update Set Creation**
|
|
207
|
+
|
|
208
|
+
â ī¸ **IMPORTANT: Snow-Flow automatically manages Update Sets for you!**
|
|
209
|
+
|
|
210
|
+
- **đ Automatic Creation**: When you start a session, Snow-Flow automatically creates a new Update Set
|
|
211
|
+
- **đ Session Persistence**: All changes during your session are tracked in this Update Set
|
|
212
|
+
- **đ Continuous Work**: Snow-Flow continues using the same Update Set until you explicitly switch
|
|
213
|
+
- **đž Change Tracking**: Every ServiceNow modification is automatically captured for deployment
|
|
214
|
+
|
|
215
|
+
**Example workflow:**
|
|
216
|
+
```bash
|
|
217
|
+
# Session 1: Snow-Flow creates "AUTO_2025-08-03_widget_development"
|
|
218
|
+
snow-flow swarm "Create incident dashboard widget"
|
|
219
|
+
# All changes go into this Update Set
|
|
220
|
+
|
|
221
|
+
# Same session: Want a new Update Set? Just ask!
|
|
222
|
+
# Simply tell Snow-Flow: "please create a new update set for the authentication feature"
|
|
223
|
+
# Snow-Flow will create a new Update Set and switch to it
|
|
224
|
+
|
|
225
|
+
# Session 2: Still using the last active Update Set
|
|
226
|
+
snow-flow swarm "Add authentication to the dashboard"
|
|
227
|
+
# Changes continue in the same Update Set from where you left off
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Key Points:**
|
|
231
|
+
- đ **Same Session Flexibility**: Within the same conversation, just ask Snow-Flow to create a new Update Set
|
|
232
|
+
- đŦ **Natural Language**: Say "create a new update set for [feature]" at any point
|
|
233
|
+
- đ **Session Memory**: Snow-Flow remembers which Update Set is active across sessions
|
|
234
|
+
- đ¯ **No New Command Needed**: No need to start a new swarm command
|
|
235
|
+
|
|
236
|
+
**Best Practices:**
|
|
237
|
+
- Let Snow-Flow manage Update Sets automatically
|
|
238
|
+
- Ask for new Update Sets when switching to different features
|
|
239
|
+
- Review your current Update Set with `snow_update_set_current`
|
|
240
|
+
- Export Update Sets before major deployments
|
|
241
|
+
|
|
206
242
|
### đ **XML Flow Generation** (5+ tools)
|
|
207
243
|
- â
**XML-first flow creation** - Bypass API limitations
|
|
208
244
|
- â
**Direct XML deployment** - Alternative deployment method
|
package/dist/cli.js
CHANGED
|
@@ -517,7 +517,7 @@ async function executeWithClaude(claudeCommand, prompt, resolve) {
|
|
|
517
517
|
cliLogger.info('â
Found MCP configuration in current directory');
|
|
518
518
|
}
|
|
519
519
|
catch {
|
|
520
|
-
cliLogger.warn('â ī¸ No MCP configuration found. Run "snow-flow init
|
|
520
|
+
cliLogger.warn('â ī¸ No MCP configuration found. Run "snow-flow init" to set up MCP servers');
|
|
521
521
|
}
|
|
522
522
|
const claudeArgs = hasMcpConfig
|
|
523
523
|
? ['--mcp-config', '.mcp.json', '.', '--dangerously-skip-permissions']
|
|
@@ -2048,8 +2048,8 @@ program
|
|
|
2048
2048
|
// Initialize Snow-Flow project
|
|
2049
2049
|
program
|
|
2050
2050
|
.command('init')
|
|
2051
|
-
.description('Initialize a Snow-Flow project with
|
|
2052
|
-
.option('--sparc', '
|
|
2051
|
+
.description('Initialize a Snow-Flow project with full AI-powered environment')
|
|
2052
|
+
.option('--sparc', '[Deprecated] SPARC is now included by default', true)
|
|
2053
2053
|
.option('--skip-mcp', 'Skip MCP server activation prompt')
|
|
2054
2054
|
.option('--force', 'Overwrite existing files without prompting')
|
|
2055
2055
|
.action(async (options) => {
|
|
@@ -2069,16 +2069,14 @@ program
|
|
|
2069
2069
|
// Create .env file
|
|
2070
2070
|
console.log('đ Creating environment configuration...');
|
|
2071
2071
|
await createEnvFile(targetDir, options.force);
|
|
2072
|
-
// Create MCP configuration
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
await createReadmeFiles(targetDir, options.force);
|
|
2081
|
-
}
|
|
2072
|
+
// Create MCP configuration - always included now (SPARC is default)
|
|
2073
|
+
console.log('đ§ Setting up MCP servers for Claude Code...');
|
|
2074
|
+
await createMCPConfig(targetDir, options.force);
|
|
2075
|
+
// Copy CLAUDE.md file
|
|
2076
|
+
console.log('đ Creating documentation files...');
|
|
2077
|
+
await copyCLAUDEmd(targetDir, options.force);
|
|
2078
|
+
// Create README files
|
|
2079
|
+
await createReadmeFiles(targetDir, options.force);
|
|
2082
2080
|
console.log(chalk_1.default.green.bold('\nâ
Snow-Flow project initialized successfully!'));
|
|
2083
2081
|
console.log('\nđ Created files and directories:');
|
|
2084
2082
|
console.log(' â .claude/ - Claude Code configuration');
|
|
@@ -2086,30 +2084,28 @@ program
|
|
|
2086
2084
|
console.log(' â .snow-flow/ - Snow-Flow project data (Queen, memory, tests)');
|
|
2087
2085
|
console.log(' â memory/ - Persistent memory storage');
|
|
2088
2086
|
console.log(' â .env - ServiceNow OAuth configuration');
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
console.log('đ You can start them manually with: ' + chalk_1.default.cyan('snow-flow mcp start'));
|
|
2112
|
-
}
|
|
2087
|
+
console.log(' â .mcp.json - MCP server configuration');
|
|
2088
|
+
console.log(' â CLAUDE.md - Development documentation');
|
|
2089
|
+
console.log(' â README.md - Project documentation');
|
|
2090
|
+
if (!options.skipMcp) {
|
|
2091
|
+
// Start MCP servers automatically
|
|
2092
|
+
console.log(chalk_1.default.yellow.bold('\nđ Starting MCP servers in the background...'));
|
|
2093
|
+
try {
|
|
2094
|
+
const { MCPServerManager } = await Promise.resolve().then(() => __importStar(require('./utils/mcp-server-manager.js')));
|
|
2095
|
+
const manager = new MCPServerManager();
|
|
2096
|
+
await manager.initialize();
|
|
2097
|
+
console.log('đĄ Starting all ServiceNow MCP servers...');
|
|
2098
|
+
await manager.startAllServers();
|
|
2099
|
+
const status = manager.getServerStatus();
|
|
2100
|
+
const running = status.filter((s) => s.status === 'running').length;
|
|
2101
|
+
const total = status.length;
|
|
2102
|
+
console.log(chalk_1.default.green(`â
Started ${running}/${total} MCP servers successfully!`));
|
|
2103
|
+
console.log(chalk_1.default.blue('\nđ MCP servers are now running in the background'));
|
|
2104
|
+
console.log('đ¯ They will be available when you run swarm commands');
|
|
2105
|
+
}
|
|
2106
|
+
catch (error) {
|
|
2107
|
+
console.log(chalk_1.default.yellow('\nâ ī¸ Could not start MCP servers automatically'));
|
|
2108
|
+
console.log('đ You can start them manually with: ' + chalk_1.default.cyan('snow-flow mcp start'));
|
|
2113
2109
|
}
|
|
2114
2110
|
}
|
|
2115
2111
|
console.log(chalk_1.default.blue.bold('\nđ¯ Next steps:'));
|
|
@@ -2301,7 +2297,7 @@ Each server provides autonomous capabilities for different aspects of ServiceNow
|
|
|
2301
2297
|
npm install -g snow-flow
|
|
2302
2298
|
|
|
2303
2299
|
# Initialize Snow-Flow in your project directory
|
|
2304
|
-
snow-flow init
|
|
2300
|
+
snow-flow init
|
|
2305
2301
|
\`\`\`
|
|
2306
2302
|
|
|
2307
2303
|
#### Alternative: Install from source
|
|
@@ -2343,7 +2339,7 @@ snow-flow auth login
|
|
|
2343
2339
|
Snow-Flow now includes **automatic MCP server activation** for Claude Code! During initialization, you'll be prompted to automatically start Claude Code with all 11 MCP servers pre-loaded:
|
|
2344
2340
|
|
|
2345
2341
|
\`\`\`bash
|
|
2346
|
-
snow-flow init
|
|
2342
|
+
snow-flow init
|
|
2347
2343
|
|
|
2348
2344
|
# You'll see:
|
|
2349
2345
|
# đ Would you like to start Claude Code with MCP servers automatically? (Y/n)
|
|
@@ -2598,7 +2594,7 @@ We welcome contributions! Please see our contributing guidelines (coming soon).
|
|
|
2598
2594
|
## đ What's New in v1.1.25
|
|
2599
2595
|
|
|
2600
2596
|
### Automatic MCP Server Activation đ¯
|
|
2601
|
-
- **Interactive Prompt**: During \`snow-flow init
|
|
2597
|
+
- **Interactive Prompt**: During \`snow-flow init\`, you're now prompted to automatically start Claude Code with all MCP servers
|
|
2602
2598
|
- **Zero Manual Steps**: No more manual MCP approval in Claude Code - servers load automatically using \`claude --mcp-config\`
|
|
2603
2599
|
- **Cross-Platform Support**: Works on Mac, Linux, and Windows with platform-specific activation scripts
|
|
2604
2600
|
- **Instant Availability**: All 11 ServiceNow MCP servers are immediately available in Claude Code after initialization
|
|
@@ -2619,7 +2615,7 @@ Built with the power of Claude AI and the ServiceNow platform. Special thanks to
|
|
|
2619
2615
|
|
|
2620
2616
|
---
|
|
2621
2617
|
|
|
2622
|
-
**Ready to revolutionize your ServiceNow development?** Start with \`snow-flow init
|
|
2618
|
+
**Ready to revolutionize your ServiceNow development?** Start with \`snow-flow init\` and experience the future of ServiceNow automation! đ
|
|
2623
2619
|
`;
|
|
2624
2620
|
await fs_1.promises.writeFile(readmePath, mainReadme);
|
|
2625
2621
|
}
|
|
@@ -2918,7 +2914,7 @@ if (deployment.failed) {
|
|
|
2918
2914
|
- \`npm run typecheck\`: Run TypeScript type checking
|
|
2919
2915
|
|
|
2920
2916
|
## Snow-Flow Commands
|
|
2921
|
-
- \`snow-flow init
|
|
2917
|
+
- \`snow-flow init\`: Initialize project with MCP servers and SPARC environment and SPARC environment
|
|
2922
2918
|
- \`snow-flow auth login\`: Authenticate with ServiceNow OAuth
|
|
2923
2919
|
- \`snow-flow swarm "<objective>"\`: Start multi-agent swarm - ÊÊn command voor alles!
|
|
2924
2920
|
- \`snow-flow sparc <mode> "<task>"\`: Run specific SPARC mode
|
|
@@ -3048,7 +3044,7 @@ snow_smart_update_set({
|
|
|
3048
3044
|
\`\`\`
|
|
3049
3045
|
|
|
3050
3046
|
## đ¯ Quick Start
|
|
3051
|
-
1. \`snow-flow init
|
|
3047
|
+
1. \`snow-flow init\` - Initialize project with MCP servers and SPARC environment and SPARC environment
|
|
3052
3048
|
2. Configure ServiceNow credentials in .env file
|
|
3053
3049
|
3. \`snow-flow auth login\` - Authenticate with ServiceNow OAuth
|
|
3054
3050
|
4. \`snow-flow swarm "create a widget for incident management"\` - Everything automatic!
|
|
@@ -3098,7 +3094,7 @@ With concurrent execution and batch operations:
|
|
|
3098
3094
|
This is a minimal CLAUDE.md file. The full documentation should be available in your Snow-Flow installation.
|
|
3099
3095
|
|
|
3100
3096
|
## Quick Start
|
|
3101
|
-
1. \`snow-flow init
|
|
3097
|
+
1. \`snow-flow init\` - Initialize project with MCP servers and SPARC environment and SPARC environment
|
|
3102
3098
|
2. Configure ServiceNow credentials in .env file
|
|
3103
3099
|
3. \`snow-flow auth login\` - Authenticate with ServiceNow OAuth
|
|
3104
3100
|
4. \`snow-flow swarm "create a widget for incident management"\` - Everything automatic!
|
|
@@ -3350,7 +3346,7 @@ if (deployment.failed) {
|
|
|
3350
3346
|
- \`npm run typecheck\`: Run TypeScript type checking
|
|
3351
3347
|
|
|
3352
3348
|
### Snow-Flow Commands
|
|
3353
|
-
- \`snow-flow init
|
|
3349
|
+
- \`snow-flow init\`: Initialize project with MCP servers and SPARC environment
|
|
3354
3350
|
- \`snow-flow auth login\`: Authenticate with ServiceNow
|
|
3355
3351
|
- \`snow-flow swarm "<objective>"\`: Execute multi-agent development
|
|
3356
3352
|
- \`snow-flow mcp start\`: Start MCP servers manually
|
|
@@ -3380,7 +3376,7 @@ SNOW_CLIENT_SECRET=your_oauth_client_secret
|
|
|
3380
3376
|
â Don't deploy without testing
|
|
3381
3377
|
|
|
3382
3378
|
## đ¯ Quick Start
|
|
3383
|
-
1. \`snow-flow init
|
|
3379
|
+
1. \`snow-flow init\` - Initialize project with MCP servers and SPARC environment
|
|
3384
3380
|
2. Configure ServiceNow credentials in .env file
|
|
3385
3381
|
3. \`snow-flow auth login\` - Authenticate with ServiceNow
|
|
3386
3382
|
4. \`snow-flow swarm "create a widget for incident management"\` - Everything automatic!
|
|
@@ -3619,7 +3615,7 @@ async function createMCPConfig(targetDir, force = false) {
|
|
|
3619
3615
|
"servicenow-deployment",
|
|
3620
3616
|
"servicenow-update-set",
|
|
3621
3617
|
"servicenow-intelligent",
|
|
3622
|
-
"servicenow-
|
|
3618
|
+
"servicenow-memory",
|
|
3623
3619
|
"servicenow-operations",
|
|
3624
3620
|
"servicenow-platform-development",
|
|
3625
3621
|
"servicenow-integration",
|