snow-flow 4.0.0-final-claude → 4.0.0
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/README.md +15 -40
- package/dist/cli.js +0 -81
- package/dist/dynamic-version.js +1 -1
- package/dist/mcp/shared/mcp-types.d.ts +37 -0
- package/dist/mcp/shared/mcp-types.js +7 -0
- package/dist/memory/hierarchical-memory-system.d.ts +32 -0
- package/dist/memory/hierarchical-memory-system.js +60 -0
- package/dist/memory/memory-system.d.ts +25 -0
- package/dist/memory/memory-system.js +36 -0
- package/package.json +3 -8
- package/.env.example +0 -89
- package/.mcp.json +0 -220
- package/claude-flow +0 -81
- package/claude-flow.bat +0 -18
- package/claude-flow.ps1 +0 -24
- package/dist/agent/interactive.d.ts +0 -11
- package/dist/agent/interactive.js +0 -190
- package/dist/agent/session.d.ts +0 -12
- package/dist/agent/session.js +0 -106
- package/dist/cli/auth.d.ts +0 -3
- package/dist/cli/auth.js +0 -59
- package/dist/cli/session.d.ts +0 -3
- package/dist/cli/session.js +0 -46
- package/dist/config/llm-config-loader.d.ts +0 -31
- package/dist/config/llm-config-loader.js +0 -80
- package/dist/llm/keys.d.ts +0 -5
- package/dist/llm/keys.js +0 -29
- package/dist/llm/providers.d.ts +0 -11
- package/dist/llm/providers.js +0 -77
- package/dist/mcp/bridge.d.ts +0 -10
- package/dist/mcp/bridge.js +0 -31
- package/dist/session/store.d.ts +0 -47
- package/dist/session/store.js +0 -74
- package/memory/agents/README.md +0 -3
- package/memory/claude-flow-data.json +0 -5
- package/memory/sessions/README.md +0 -32
- package/servicenow/README.md +0 -3
- package/snowflow.config.json +0 -15
package/README.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<img src="assets/snow-flow-logo.svg" alt="Snow-Flow Logo" width="200" height="200">
|
|
3
3
|
|
|
4
|
-
# ❄️ Snow-Flow
|
|
4
|
+
# ❄️ Snow-Flow v3.6.25 ❄️
|
|
5
5
|
|
|
6
6
|
<p align="center">
|
|
7
7
|
<strong>🚀 Revolutionary ServiceNow Development Framework with AI-Powered Automation</strong>
|
|
8
8
|
</p>
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
-
<a href="https://www.npmjs.com/package/snow-flow"><img src="https://img.shields.io/
|
|
11
|
+
<a href="https://www.npmjs.com/package/snow-flow"><img src="https://img.shields.io/npm/v/snow-flow.svg?style=for-the-badge&logo=npm&color=CB3837" alt="npm version"></a>
|
|
12
12
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge" alt="License: MIT"></a>
|
|
13
13
|
<a href="https://nodejs.org"><img src="https://img.shields.io/node/v/snow-flow.svg?style=for-the-badge&logo=node.js&color=339933" alt="Node.js Version"></a>
|
|
14
14
|
<a href="https://github.com/groeimetai/snow-flow"><img src="https://img.shields.io/github/stars/groeimetai/snow-flow?style=for-the-badge&logo=github" alt="GitHub Stars"></a>
|
|
@@ -21,54 +21,29 @@
|
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
-
##
|
|
25
|
-
|
|
26
|
-
<div align="center">
|
|
27
|
-
<table>
|
|
28
|
-
<tr>
|
|
29
|
-
<td align="center">
|
|
30
|
-
<h3>⚡ This is the Final Claude Code CLI Version ⚡</h3>
|
|
31
|
-
<p>Snow-Flow v4.0.0 marks the end of an era. This is the last version designed specifically for Claude Code CLI.</p>
|
|
32
|
-
<p><strong>🔮 What's Coming Next:</strong></p>
|
|
33
|
-
<ul align="left">
|
|
34
|
-
<li>🤖 Support for <strong>ANY LLM</strong>: OpenAI, Google Gemini, Anthropic Claude, Ollama, and more</li>
|
|
35
|
-
<li>🔌 Modular provider system with unified interface</li>
|
|
36
|
-
<li>💻 Native CLI with interactive chat interface</li>
|
|
37
|
-
<li>🔄 Seamless switching between LLM providers</li>
|
|
38
|
-
<li>📊 Same great ServiceNow tools, now LLM-agnostic</li>
|
|
39
|
-
</ul>
|
|
40
|
-
<p><strong>Thank you to all Claude Code users who made this journey possible! 🙏</strong></p>
|
|
41
|
-
</td>
|
|
42
|
-
</tr>
|
|
43
|
-
</table>
|
|
44
|
-
</div>
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## 🎉 What's New in v4.0.0-final-claude
|
|
24
|
+
## 🎉 What's New in v3.6.25
|
|
49
25
|
|
|
50
26
|
<div align="center">
|
|
51
27
|
<table>
|
|
52
28
|
<tr>
|
|
53
29
|
<td align="center" width="50%">
|
|
54
|
-
<h3
|
|
30
|
+
<h3>🚀 Major Features</h3>
|
|
55
31
|
<ul align="left">
|
|
56
|
-
<li><strong
|
|
57
|
-
<li><strong
|
|
58
|
-
<li><strong
|
|
59
|
-
<li><strong
|
|
60
|
-
<li><strong
|
|
32
|
+
<li><strong>Catalog UI Policy Deployment</strong><br/>Deploy via unified <code>snow_deploy</code> tool</li>
|
|
33
|
+
<li><strong>Knowledge Base Verification</strong><br/>Prevents orphaned articles with strict validation</li>
|
|
34
|
+
<li><strong>Catalog Variable Table Fix</strong><br/>Variables now use correct <code>item_option_new</code></li>
|
|
35
|
+
<li><strong>Enhanced UI Policy Debugging</strong><br/>Comprehensive reference field debugging</li>
|
|
36
|
+
<li><strong>18th MCP Server</strong><br/>Local Development Server for artifact syncing</li>
|
|
61
37
|
</ul>
|
|
62
38
|
</td>
|
|
63
39
|
<td align="center" width="50%">
|
|
64
|
-
<h3
|
|
40
|
+
<h3>🔧 Critical Fixes</h3>
|
|
65
41
|
<ul align="left">
|
|
66
|
-
<li>✅ Catalog variables
|
|
67
|
-
<li>✅ UI policy
|
|
68
|
-
<li>✅
|
|
69
|
-
<li>✅ MCP transport 3x faster</li>
|
|
70
|
-
<li>✅
|
|
71
|
-
<li>🎁 All previous fixes included</li>
|
|
42
|
+
<li>✅ Catalog variables now visible in ServiceNow</li>
|
|
43
|
+
<li>✅ UI policy actions reference fields fixed</li>
|
|
44
|
+
<li>✅ Non-existent KB error handling added</li>
|
|
45
|
+
<li>✅ MCP transport 3x faster operations</li>
|
|
46
|
+
<li>✅ Widget coherence validation improved</li>
|
|
72
47
|
</ul>
|
|
73
48
|
</td>
|
|
74
49
|
</tr>
|
package/dist/cli.js
CHANGED
|
@@ -53,11 +53,6 @@ const agent_detector_js_1 = require("./utils/agent-detector.js");
|
|
|
53
53
|
const version_js_1 = require("./version.js");
|
|
54
54
|
const logger_js_1 = require("./utils/logger.js");
|
|
55
55
|
const chalk_1 = __importDefault(require("chalk"));
|
|
56
|
-
// New provider-agnostic engine imports (compile-safe placeholders)
|
|
57
|
-
const llm_config_loader_js_1 = require("./config/llm-config-loader.js");
|
|
58
|
-
const interactive_js_1 = require("./agent/interactive.js");
|
|
59
|
-
const auth_js_1 = require("./cli/auth.js");
|
|
60
|
-
const session_js_1 = require("./cli/session.js");
|
|
61
56
|
// Load environment variables
|
|
62
57
|
dotenv_1.default.config();
|
|
63
58
|
// Create CLI logger instance
|
|
@@ -67,10 +62,6 @@ program
|
|
|
67
62
|
.name('snow-flow')
|
|
68
63
|
.description('ServiceNow Multi-Agent Development Framework')
|
|
69
64
|
.version(version_js_1.VERSION);
|
|
70
|
-
// Register auth commands (API key management)
|
|
71
|
-
(0, auth_js_1.registerAuthCommands)(program);
|
|
72
|
-
// Register session inspection commands
|
|
73
|
-
(0, session_js_1.registerSessionCommands)(program);
|
|
74
65
|
// Flow deprecation handler - check for flow-related commands
|
|
75
66
|
function checkFlowDeprecation(command, objective) {
|
|
76
67
|
const flowKeywords = ['flow', 'create-flow', 'xml-flow', 'flow-designer'];
|
|
@@ -99,18 +90,6 @@ function checkFlowDeprecation(command, objective) {
|
|
|
99
90
|
program
|
|
100
91
|
.command('swarm <objective>')
|
|
101
92
|
.description('Execute multi-agent orchestration for a ServiceNow task - één command voor alles!')
|
|
102
|
-
// New engine selector: defaults to auto (uses config-driven agent when available)
|
|
103
|
-
.option('--engine <engine>', 'Execution engine (auto|agent|claude)', 'auto')
|
|
104
|
-
.option('--config <path>', 'Path to snowflow.config file')
|
|
105
|
-
.option('--show-reasoning', 'Show LLM reasoning in a different color (default)', true)
|
|
106
|
-
.option('--no-show-reasoning', 'Hide LLM reasoning blocks')
|
|
107
|
-
.option('--save-output <path>', 'Save full assistant output to a file')
|
|
108
|
-
.option('--resume <sessionId>', 'Resume an existing interactive session')
|
|
109
|
-
// Provider overrides (optional, config-driven by default)
|
|
110
|
-
.option('--provider <provider>', 'LLM provider override')
|
|
111
|
-
.option('--model <model>', 'Model override')
|
|
112
|
-
.option('--base-url <url>', 'Base URL override for openai-compatible or gateways')
|
|
113
|
-
.option('--api-key-env <name>', 'Use specific API key env var')
|
|
114
93
|
.option('--strategy <strategy>', 'Execution strategy (development, _analysis, research)', 'development')
|
|
115
94
|
.option('--mode <mode>', 'Coordination mode (hierarchical, mesh, distributed)', 'hierarchical')
|
|
116
95
|
.option('--max-agents <number>', 'Maximum number of agents', '5')
|
|
@@ -287,66 +266,6 @@ program
|
|
|
287
266
|
cliLogger.info(`🤖 Autonomous Systems: ❌ All Disabled`);
|
|
288
267
|
}
|
|
289
268
|
}
|
|
290
|
-
// Detect agent engine via config (provider-agnostic) when requested or available
|
|
291
|
-
const shouldUseAgent = (() => {
|
|
292
|
-
if (options.engine === 'agent')
|
|
293
|
-
return true;
|
|
294
|
-
if (options.engine === 'claude')
|
|
295
|
-
return false;
|
|
296
|
-
// auto: use agent when config file is present and valid
|
|
297
|
-
const cfg = (0, llm_config_loader_js_1.loadSnowFlowConfig)({
|
|
298
|
-
configPath: options.config,
|
|
299
|
-
overrides: {
|
|
300
|
-
llm: {
|
|
301
|
-
provider: options.provider || undefined,
|
|
302
|
-
model: options.model || undefined,
|
|
303
|
-
baseURL: options.baseUrl || options.baseURL || undefined,
|
|
304
|
-
apiKeyEnv: options.apiKeyEnv || undefined,
|
|
305
|
-
},
|
|
306
|
-
},
|
|
307
|
-
});
|
|
308
|
-
return Boolean(cfg && cfg.llm && cfg.llm.provider && cfg.llm.model);
|
|
309
|
-
})();
|
|
310
|
-
if (shouldUseAgent) {
|
|
311
|
-
const cfg = (0, llm_config_loader_js_1.loadSnowFlowConfig)({
|
|
312
|
-
configPath: options.config,
|
|
313
|
-
overrides: {
|
|
314
|
-
llm: {
|
|
315
|
-
provider: options.provider || undefined,
|
|
316
|
-
model: options.model || undefined,
|
|
317
|
-
baseURL: options.baseUrl || options.baseURL || undefined,
|
|
318
|
-
apiKeyEnv: options.apiKeyEnv || undefined,
|
|
319
|
-
},
|
|
320
|
-
},
|
|
321
|
-
});
|
|
322
|
-
if (!cfg) {
|
|
323
|
-
cliLogger.error('❌ Geen snowflow.config.(json|js|cjs) gevonden. Voeg config toe of gebruik --engine claude.');
|
|
324
|
-
process.exit(1);
|
|
325
|
-
}
|
|
326
|
-
// Basic validation for MVP
|
|
327
|
-
if (!cfg.llm?.provider || !cfg.llm?.model) {
|
|
328
|
-
cliLogger.error('❌ Config mist llm.provider of llm.model');
|
|
329
|
-
process.exit(1);
|
|
330
|
-
}
|
|
331
|
-
cliLogger.info('\n🤖 Using provider-agnostic Snow-Flow agent (interactive)');
|
|
332
|
-
try {
|
|
333
|
-
await (0, interactive_js_1.runInteractive)({
|
|
334
|
-
provider: cfg.llm.provider,
|
|
335
|
-
model: String(cfg.llm.model),
|
|
336
|
-
baseURL: cfg.llm.baseURL,
|
|
337
|
-
apiKeyEnv: cfg.llm.apiKeyEnv,
|
|
338
|
-
mcp: cfg.mcp,
|
|
339
|
-
system: cfg.agent?.system,
|
|
340
|
-
maxSteps: cfg.agent?.maxSteps ?? 40,
|
|
341
|
-
showReasoning: options.showReasoning !== false,
|
|
342
|
-
resumeId: options.resume || undefined,
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
catch (e) {
|
|
346
|
-
cliLogger.error('❌ Interactive agent error:', e instanceof Error ? e.message : String(e));
|
|
347
|
-
}
|
|
348
|
-
return; // end here; skip legacy Claude path
|
|
349
|
-
}
|
|
350
269
|
// Analyze the objective using intelligent agent detection
|
|
351
270
|
const taskAnalysis = analyzeObjective(objective, parseInt(options.maxAgents));
|
|
352
271
|
// Debug logging to understand task type detection
|
package/dist/dynamic-version.js
CHANGED
|
@@ -36,7 +36,7 @@ function getDynamicVersion() {
|
|
|
36
36
|
console.warn('Warning: Could not read version from package.json:', error);
|
|
37
37
|
}
|
|
38
38
|
// Fallback to hardcoded version
|
|
39
|
-
return '
|
|
39
|
+
return '3.6.25';
|
|
40
40
|
}
|
|
41
41
|
// Export a constant that uses the dynamic version
|
|
42
42
|
exports.VERSION = getDynamicVersion();
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Types
|
|
3
|
+
* Common types for MCP server implementations
|
|
4
|
+
*/
|
|
5
|
+
export interface MCPServerConfig {
|
|
6
|
+
name: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
version?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface MCPTool {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
inputSchema: any;
|
|
14
|
+
}
|
|
15
|
+
export interface MCPResponse<T = any> {
|
|
16
|
+
success: boolean;
|
|
17
|
+
data?: T;
|
|
18
|
+
error?: string;
|
|
19
|
+
message?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface MCPRequest {
|
|
22
|
+
tool: string;
|
|
23
|
+
params: any;
|
|
24
|
+
}
|
|
25
|
+
export interface MCPLogger {
|
|
26
|
+
info(message: string, meta?: any): void;
|
|
27
|
+
warn(message: string, meta?: any): void;
|
|
28
|
+
error(message: string, meta?: any): void;
|
|
29
|
+
debug(message: string, meta?: any): void;
|
|
30
|
+
}
|
|
31
|
+
export interface MCPMemoryManager {
|
|
32
|
+
store(key: string, value: any): Promise<void>;
|
|
33
|
+
retrieve(key: string): Promise<any>;
|
|
34
|
+
delete(key: string): Promise<boolean>;
|
|
35
|
+
list(): Promise<string[]>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=mcp-types.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchical Memory System
|
|
3
|
+
* Extended memory system with hierarchical organization
|
|
4
|
+
*/
|
|
5
|
+
import { MemorySystem } from './memory-system';
|
|
6
|
+
export interface HierarchicalMemorySystem extends MemorySystem {
|
|
7
|
+
dbPath?: string;
|
|
8
|
+
namespace?: string;
|
|
9
|
+
storeInNamespace(namespace: string, key: string, value: any): Promise<void>;
|
|
10
|
+
retrieveFromNamespace(namespace: string, key: string): Promise<any>;
|
|
11
|
+
listNamespaces(): Promise<string[]>;
|
|
12
|
+
clearNamespace(namespace: string): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export declare class DefaultHierarchicalMemorySystem implements HierarchicalMemorySystem {
|
|
15
|
+
private memory;
|
|
16
|
+
dbPath?: string;
|
|
17
|
+
namespace?: string;
|
|
18
|
+
constructor(dbPath?: string, namespace?: string);
|
|
19
|
+
private getNamespaceMap;
|
|
20
|
+
store(key: string, value: any): Promise<void>;
|
|
21
|
+
retrieve(key: string): Promise<any>;
|
|
22
|
+
get(key: string): Promise<any>;
|
|
23
|
+
delete(key: string): Promise<boolean>;
|
|
24
|
+
clear(): Promise<void>;
|
|
25
|
+
list(): Promise<string[]>;
|
|
26
|
+
exists(key: string): Promise<boolean>;
|
|
27
|
+
storeInNamespace(namespace: string, key: string, value: any): Promise<void>;
|
|
28
|
+
retrieveFromNamespace(namespace: string, key: string): Promise<any>;
|
|
29
|
+
listNamespaces(): Promise<string[]>;
|
|
30
|
+
clearNamespace(namespace: string): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=hierarchical-memory-system.d.ts.map
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Hierarchical Memory System
|
|
4
|
+
* Extended memory system with hierarchical organization
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DefaultHierarchicalMemorySystem = void 0;
|
|
8
|
+
class DefaultHierarchicalMemorySystem {
|
|
9
|
+
constructor(dbPath, namespace) {
|
|
10
|
+
this.memory = new Map();
|
|
11
|
+
this.dbPath = dbPath;
|
|
12
|
+
this.namespace = namespace || 'default';
|
|
13
|
+
}
|
|
14
|
+
getNamespaceMap(namespace) {
|
|
15
|
+
if (!this.memory.has(namespace)) {
|
|
16
|
+
this.memory.set(namespace, new Map());
|
|
17
|
+
}
|
|
18
|
+
return this.memory.get(namespace);
|
|
19
|
+
}
|
|
20
|
+
async store(key, value) {
|
|
21
|
+
await this.storeInNamespace(this.namespace || 'default', key, value);
|
|
22
|
+
}
|
|
23
|
+
async retrieve(key) {
|
|
24
|
+
return this.retrieveFromNamespace(this.namespace || 'default', key);
|
|
25
|
+
}
|
|
26
|
+
async get(key) {
|
|
27
|
+
return this.retrieve(key);
|
|
28
|
+
}
|
|
29
|
+
async delete(key) {
|
|
30
|
+
const nsMap = this.getNamespaceMap(this.namespace || 'default');
|
|
31
|
+
return nsMap.delete(key);
|
|
32
|
+
}
|
|
33
|
+
async clear() {
|
|
34
|
+
await this.clearNamespace(this.namespace || 'default');
|
|
35
|
+
}
|
|
36
|
+
async list() {
|
|
37
|
+
const nsMap = this.getNamespaceMap(this.namespace || 'default');
|
|
38
|
+
return Array.from(nsMap.keys());
|
|
39
|
+
}
|
|
40
|
+
async exists(key) {
|
|
41
|
+
const nsMap = this.getNamespaceMap(this.namespace || 'default');
|
|
42
|
+
return nsMap.has(key);
|
|
43
|
+
}
|
|
44
|
+
async storeInNamespace(namespace, key, value) {
|
|
45
|
+
const nsMap = this.getNamespaceMap(namespace);
|
|
46
|
+
nsMap.set(key, value);
|
|
47
|
+
}
|
|
48
|
+
async retrieveFromNamespace(namespace, key) {
|
|
49
|
+
const nsMap = this.getNamespaceMap(namespace);
|
|
50
|
+
return nsMap.get(key);
|
|
51
|
+
}
|
|
52
|
+
async listNamespaces() {
|
|
53
|
+
return Array.from(this.memory.keys());
|
|
54
|
+
}
|
|
55
|
+
async clearNamespace(namespace) {
|
|
56
|
+
this.memory.delete(namespace);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.DefaultHierarchicalMemorySystem = DefaultHierarchicalMemorySystem;
|
|
60
|
+
//# sourceMappingURL=hierarchical-memory-system.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Basic Memory System Interface
|
|
3
|
+
* Minimal implementation to satisfy missing imports
|
|
4
|
+
*/
|
|
5
|
+
export interface MemorySystem {
|
|
6
|
+
store(key: string, value: any): Promise<void>;
|
|
7
|
+
retrieve(key: string): Promise<any>;
|
|
8
|
+
get(key: string): Promise<any>;
|
|
9
|
+
delete(key: string): Promise<boolean>;
|
|
10
|
+
clear(): Promise<void>;
|
|
11
|
+
list(): Promise<string[]>;
|
|
12
|
+
exists(key: string): Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
export declare class BasicMemorySystem implements MemorySystem {
|
|
15
|
+
private memory;
|
|
16
|
+
store(key: string, value: any): Promise<void>;
|
|
17
|
+
retrieve(key: string): Promise<any>;
|
|
18
|
+
get(key: string): Promise<any>;
|
|
19
|
+
delete(key: string): Promise<boolean>;
|
|
20
|
+
clear(): Promise<void>;
|
|
21
|
+
list(): Promise<string[]>;
|
|
22
|
+
exists(key: string): Promise<boolean>;
|
|
23
|
+
}
|
|
24
|
+
export declare const defaultMemorySystem: BasicMemorySystem;
|
|
25
|
+
//# sourceMappingURL=memory-system.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Basic Memory System Interface
|
|
4
|
+
* Minimal implementation to satisfy missing imports
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.defaultMemorySystem = exports.BasicMemorySystem = void 0;
|
|
8
|
+
class BasicMemorySystem {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.memory = new Map();
|
|
11
|
+
}
|
|
12
|
+
async store(key, value) {
|
|
13
|
+
this.memory.set(key, value);
|
|
14
|
+
}
|
|
15
|
+
async retrieve(key) {
|
|
16
|
+
return this.memory.get(key);
|
|
17
|
+
}
|
|
18
|
+
async get(key) {
|
|
19
|
+
return this.memory.get(key);
|
|
20
|
+
}
|
|
21
|
+
async delete(key) {
|
|
22
|
+
return this.memory.delete(key);
|
|
23
|
+
}
|
|
24
|
+
async clear() {
|
|
25
|
+
this.memory.clear();
|
|
26
|
+
}
|
|
27
|
+
async list() {
|
|
28
|
+
return Array.from(this.memory.keys());
|
|
29
|
+
}
|
|
30
|
+
async exists(key) {
|
|
31
|
+
return this.memory.has(key);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.BasicMemorySystem = BasicMemorySystem;
|
|
35
|
+
exports.defaultMemorySystem = new BasicMemorySystem();
|
|
36
|
+
//# sourceMappingURL=memory-system.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "snow-flow",
|
|
3
|
-
"version": "4.0.0
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "KNOWLEDGE BASE VERIFICATION - v3.6.25 adds critical validation to snow_create_knowledge_article. Now throws error when non-existent knowledge base is specified, preventing orphaned articles. Includes helpful suggestions to create or discover valid knowledge bases.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "commonjs",
|
|
7
7
|
"bin": {
|
|
@@ -396,15 +396,10 @@
|
|
|
396
396
|
"npm": ">=8.0.0"
|
|
397
397
|
},
|
|
398
398
|
"dependencies": {
|
|
399
|
-
"@ai-sdk/anthropic": "^2.0.4",
|
|
400
|
-
"@ai-sdk/google": "^1.2.22",
|
|
401
|
-
"@ai-sdk/openai": "^1.3.24",
|
|
402
|
-
"@modelcontextprotocol/sdk": "^1.15.1",
|
|
403
|
-
"@openrouter/ai-sdk-provider": "^1.1.2",
|
|
404
399
|
"@tensorflow/tfjs-node": "^4.22.0",
|
|
400
|
+
"@modelcontextprotocol/sdk": "^1.15.1",
|
|
405
401
|
"@types/node-fetch": "^2.6.12",
|
|
406
402
|
"@types/uuid": "^10.0.0",
|
|
407
|
-
"ai": "^5.0.14",
|
|
408
403
|
"axios": "^1.10.0",
|
|
409
404
|
"better-sqlite3": "^9.6.0",
|
|
410
405
|
"boxen": "^8.0.1",
|
package/.env.example
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# Closed-source
|
|
2
|
-
OPENAI_API_KEY=
|
|
3
|
-
GOOGLE_API_KEY=
|
|
4
|
-
|
|
5
|
-
# Gateways / OSS
|
|
6
|
-
OPENROUTER_API_KEY=
|
|
7
|
-
OPENAI_COMPAT_API_KEY= # voor xAI Grok en DeepSeek (OpenAI-compatible)
|
|
8
|
-
|
|
9
|
-
# ServiceNow Configuration
|
|
10
|
-
# ===========================================
|
|
11
|
-
|
|
12
|
-
# ServiceNow Instance URL (without https://)
|
|
13
|
-
# Example: dev12345.service-now.com
|
|
14
|
-
SNOW_INSTANCE=your-instance.service-now.com
|
|
15
|
-
|
|
16
|
-
# OAuth Client ID from ServiceNow Application Registry
|
|
17
|
-
SNOW_CLIENT_ID=your-oauth-client-id
|
|
18
|
-
|
|
19
|
-
# OAuth Client Secret from ServiceNow Application Registry
|
|
20
|
-
SNOW_CLIENT_SECRET=your-oauth-client-secret
|
|
21
|
-
|
|
22
|
-
# ===========================================
|
|
23
|
-
# Snow-Flow Configuration
|
|
24
|
-
# ===========================================
|
|
25
|
-
|
|
26
|
-
# Enable debug logging (true/false)
|
|
27
|
-
SNOW_FLOW_DEBUG=true
|
|
28
|
-
|
|
29
|
-
# MAXIMUM DEBUG LEVELS
|
|
30
|
-
DEBUG=* # Debug ALLES
|
|
31
|
-
NODE_ENV=development # Development mode voor extra debug info
|
|
32
|
-
LOG_LEVEL=trace # Trace is nog hoger dan debug
|
|
33
|
-
VERBOSE=true # Extra verbose output
|
|
34
|
-
MCP_DEBUG=true # MCP specific debugging
|
|
35
|
-
MCP_LOG_LEVEL=trace # MCP trace level logging
|
|
36
|
-
SNOW_FLOW_TRACE=true # Snow-Flow trace logging
|
|
37
|
-
CLAUDE_CODE_DEBUG=true # Claude Code debug mode
|
|
38
|
-
HTTP_TRACE=true # HTTP request/response tracing
|
|
39
|
-
|
|
40
|
-
# Default coordination strategy
|
|
41
|
-
SNOW_FLOW_STRATEGY=development
|
|
42
|
-
|
|
43
|
-
# Maximum number of agents
|
|
44
|
-
SNOW_FLOW_MAX_AGENTS=5
|
|
45
|
-
|
|
46
|
-
# ===========================================
|
|
47
|
-
# Claude Code API Integration (30 minutes)
|
|
48
|
-
# ===========================================
|
|
49
|
-
# API timeout for Claude Code integration - 30 minutes
|
|
50
|
-
# This ensures Snow-Flow works smoothly with Claude Code's extended operation timeouts
|
|
51
|
-
API_TIMEOUT_MS=1800000
|
|
52
|
-
|
|
53
|
-
# ===========================================
|
|
54
|
-
# Timeout Configuration (v3.0.1+)
|
|
55
|
-
# ===========================================
|
|
56
|
-
# IMPORTANT: Snow-Flow has NO TIMEOUTS by default for maximum reliability.
|
|
57
|
-
# Operations run until completion. Only set timeouts if you specifically need them.
|
|
58
|
-
# All timeout values below are COMMENTED OUT - uncomment only what you need.
|
|
59
|
-
|
|
60
|
-
# Memory Operations (TodoWrite, etc.)
|
|
61
|
-
# MCP_MEMORY_TIMEOUT=30000 # 30 seconds
|
|
62
|
-
# MCP_MEMORY_TIMEOUT=60000 # 1 minute
|
|
63
|
-
# MCP_MEMORY_TIMEOUT=120000 # 2 minutes
|
|
64
|
-
|
|
65
|
-
# ServiceNow API Operations
|
|
66
|
-
# SNOW_API_TIMEOUT=60000 # 1 minute - quick operations
|
|
67
|
-
# SNOW_API_TIMEOUT=180000 # 3 minutes - standard operations
|
|
68
|
-
# SNOW_API_TIMEOUT=300000 # 5 minutes - complex queries
|
|
69
|
-
|
|
70
|
-
# Deployment Operations
|
|
71
|
-
# SNOW_DEPLOYMENT_TIMEOUT=300000 # 5 minutes - simple deployments
|
|
72
|
-
# SNOW_DEPLOYMENT_TIMEOUT=600000 # 10 minutes - complex widgets
|
|
73
|
-
|
|
74
|
-
# MCP transport timeout (should be higher than SNOW_DEPLOYMENT_TIMEOUT if both set)
|
|
75
|
-
# MCP_DEPLOYMENT_TIMEOUT=360000 # 6 minutes
|
|
76
|
-
# MCP_DEPLOYMENT_TIMEOUT=720000 # 12 minutes
|
|
77
|
-
|
|
78
|
-
# ===========================================
|
|
79
|
-
# Response Size Limits (v3.4.34+)
|
|
80
|
-
# ===========================================
|
|
81
|
-
# Maximum MCP response size to prevent timeouts
|
|
82
|
-
# Default: 500KB (sufficient for most widgets/flows)
|
|
83
|
-
# MCP_MAX_RESPONSE_SIZE=500000 # 500KB default (recommended)
|
|
84
|
-
# MCP_MAX_RESPONSE_SIZE=1000000 # 1MB for larger artifacts
|
|
85
|
-
# MCP_MAX_RESPONSE_SIZE=2000000 # 2MB for very large responses
|
|
86
|
-
|
|
87
|
-
# Maximum array items in responses
|
|
88
|
-
# MCP_MAX_ARRAY_ITEMS=500 # 500 items default
|
|
89
|
-
# MCP_MAX_ARRAY_ITEMS=1000 # 1000 for large datasets
|