snow-flow 1.1.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/.env.example +49 -0
- package/.mcp.json +106 -0
- package/.mcp.json.template +106 -0
- package/LICENSE +21 -0
- package/README.md +236 -0
- package/bin/snow-flow +4 -0
- package/bin/snow-flow.js +3 -0
- package/claude-flow +79 -0
- package/claude-flow.bat +18 -0
- package/claude-flow.config.json +20 -0
- package/claude-flow.ps1 +24 -0
- package/dist/agents/app-creator.agent.d.ts +55 -0
- package/dist/agents/app-creator.agent.d.ts.map +1 -0
- package/dist/agents/app-creator.agent.js +1292 -0
- package/dist/agents/app-creator.agent.js.map +1 -0
- package/dist/agents/base-snow-agent.d.ts +63 -0
- package/dist/agents/base-snow-agent.d.ts.map +1 -0
- package/dist/agents/base-snow-agent.js +296 -0
- package/dist/agents/base-snow-agent.js.map +1 -0
- package/dist/agents/script-generator.agent.d.ts +32 -0
- package/dist/agents/script-generator.agent.d.ts.map +1 -0
- package/dist/agents/script-generator.agent.js +772 -0
- package/dist/agents/script-generator.agent.js.map +1 -0
- package/dist/agents/ui-builder.agent.d.ts +50 -0
- package/dist/agents/ui-builder.agent.d.ts.map +1 -0
- package/dist/agents/ui-builder.agent.js +1539 -0
- package/dist/agents/ui-builder.agent.js.map +1 -0
- package/dist/agents/widget-builder.agent.d.ts +32 -0
- package/dist/agents/widget-builder.agent.d.ts.map +1 -0
- package/dist/agents/widget-builder.agent.js +439 -0
- package/dist/agents/widget-builder.agent.js.map +1 -0
- package/dist/agents/workflow-designer.agent.d.ts +31 -0
- package/dist/agents/workflow-designer.agent.d.ts.map +1 -0
- package/dist/agents/workflow-designer.agent.js +583 -0
- package/dist/agents/workflow-designer.agent.js.map +1 -0
- package/dist/api/error-handling.d.ts +214 -0
- package/dist/api/error-handling.d.ts.map +1 -0
- package/dist/api/error-handling.js +594 -0
- package/dist/api/error-handling.js.map +1 -0
- package/dist/api/flow-designer-api.d.ts +167 -0
- package/dist/api/flow-designer-api.d.ts.map +1 -0
- package/dist/api/flow-designer-api.js +555 -0
- package/dist/api/flow-designer-api.js.map +1 -0
- package/dist/api/natural-language-mapper.d.ts +126 -0
- package/dist/api/natural-language-mapper.d.ts.map +1 -0
- package/dist/api/natural-language-mapper.js +498 -0
- package/dist/api/natural-language-mapper.js.map +1 -0
- package/dist/api/performance-optimizer.d.ts +240 -0
- package/dist/api/performance-optimizer.d.ts.map +1 -0
- package/dist/api/performance-optimizer.js +701 -0
- package/dist/api/performance-optimizer.js.map +1 -0
- package/dist/api/transaction-manager.d.ts +189 -0
- package/dist/api/transaction-manager.d.ts.map +1 -0
- package/dist/api/transaction-manager.js +576 -0
- package/dist/api/transaction-manager.js.map +1 -0
- package/dist/cli/deploy-artifact.d.ts +7 -0
- package/dist/cli/deploy-artifact.d.ts.map +1 -0
- package/dist/cli/deploy-artifact.js +279 -0
- package/dist/cli/deploy-artifact.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +2057 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/managers/scope-manager.d.ts +75 -0
- package/dist/managers/scope-manager.d.ts.map +1 -0
- package/dist/managers/scope-manager.js +448 -0
- package/dist/managers/scope-manager.js.map +1 -0
- package/dist/mcp/mcp-wrapper.d.ts +8 -0
- package/dist/mcp/mcp-wrapper.d.ts.map +1 -0
- package/dist/mcp/mcp-wrapper.js +77 -0
- package/dist/mcp/mcp-wrapper.js.map +1 -0
- package/dist/mcp/servicenow-automation-mcp.d.ts +8 -0
- package/dist/mcp/servicenow-automation-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-automation-mcp.js +683 -0
- package/dist/mcp/servicenow-automation-mcp.js.map +1 -0
- package/dist/mcp/servicenow-deployment-mcp.d.ts +7 -0
- package/dist/mcp/servicenow-deployment-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-deployment-mcp.js +972 -0
- package/dist/mcp/servicenow-deployment-mcp.js.map +1 -0
- package/dist/mcp/servicenow-flow-composer-mcp.d.ts +7 -0
- package/dist/mcp/servicenow-flow-composer-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-flow-composer-mcp.js +1121 -0
- package/dist/mcp/servicenow-flow-composer-mcp.js.map +1 -0
- package/dist/mcp/servicenow-graph-memory-mcp.d.ts +7 -0
- package/dist/mcp/servicenow-graph-memory-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-graph-memory-mcp.js +703 -0
- package/dist/mcp/servicenow-graph-memory-mcp.js.map +1 -0
- package/dist/mcp/servicenow-integration-mcp.d.ts +8 -0
- package/dist/mcp/servicenow-integration-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-integration-mcp.js +689 -0
- package/dist/mcp/servicenow-integration-mcp.js.map +1 -0
- package/dist/mcp/servicenow-intelligent-mcp.d.ts +7 -0
- package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-intelligent-mcp.js +1138 -0
- package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -0
- package/dist/mcp/servicenow-mcp-server.d.ts +37 -0
- package/dist/mcp/servicenow-mcp-server.d.ts.map +1 -0
- package/dist/mcp/servicenow-mcp-server.js +648 -0
- package/dist/mcp/servicenow-mcp-server.js.map +1 -0
- package/dist/mcp/servicenow-operations-mcp.d.ts +15 -0
- package/dist/mcp/servicenow-operations-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-operations-mcp.js +1287 -0
- package/dist/mcp/servicenow-operations-mcp.js.map +1 -0
- package/dist/mcp/servicenow-platform-development-mcp.d.ts +8 -0
- package/dist/mcp/servicenow-platform-development-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-platform-development-mcp.js +557 -0
- package/dist/mcp/servicenow-platform-development-mcp.js.map +1 -0
- package/dist/mcp/servicenow-progressive-indexer.d.ts +79 -0
- package/dist/mcp/servicenow-progressive-indexer.d.ts.map +1 -0
- package/dist/mcp/servicenow-progressive-indexer.js +320 -0
- package/dist/mcp/servicenow-progressive-indexer.js.map +1 -0
- package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts +8 -0
- package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-reporting-analytics-mcp.js +888 -0
- package/dist/mcp/servicenow-reporting-analytics-mcp.js.map +1 -0
- package/dist/mcp/servicenow-security-compliance-mcp.d.ts +8 -0
- package/dist/mcp/servicenow-security-compliance-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-security-compliance-mcp.js +812 -0
- package/dist/mcp/servicenow-security-compliance-mcp.js.map +1 -0
- package/dist/mcp/servicenow-update-set-mcp.d.ts +7 -0
- package/dist/mcp/servicenow-update-set-mcp.d.ts.map +1 -0
- package/dist/mcp/servicenow-update-set-mcp.js +599 -0
- package/dist/mcp/servicenow-update-set-mcp.js.map +1 -0
- package/dist/mcp/start-all-mcp-servers.d.ts +6 -0
- package/dist/mcp/start-all-mcp-servers.d.ts.map +1 -0
- package/dist/mcp/start-all-mcp-servers.js +65 -0
- package/dist/mcp/start-all-mcp-servers.js.map +1 -0
- package/dist/mcp/start-servicenow-mcp.d.ts +7 -0
- package/dist/mcp/start-servicenow-mcp.d.ts.map +1 -0
- package/dist/mcp/start-servicenow-mcp.js +64 -0
- package/dist/mcp/start-servicenow-mcp.js.map +1 -0
- package/dist/mcp/test-simple-mcp.d.ts +6 -0
- package/dist/mcp/test-simple-mcp.d.ts.map +1 -0
- package/dist/mcp/test-simple-mcp.js +64 -0
- package/dist/mcp/test-simple-mcp.js.map +1 -0
- package/dist/orchestrator/flow-composer.d.ts +269 -0
- package/dist/orchestrator/flow-composer.d.ts.map +1 -0
- package/dist/orchestrator/flow-composer.js +2221 -0
- package/dist/orchestrator/flow-composer.js.map +1 -0
- package/dist/orchestrator/flow-pattern-templates.d.ts +260 -0
- package/dist/orchestrator/flow-pattern-templates.d.ts.map +1 -0
- package/dist/orchestrator/flow-pattern-templates.js +906 -0
- package/dist/orchestrator/flow-pattern-templates.js.map +1 -0
- package/dist/orchestrator/flow-subflow-decision-engine.d.ts +202 -0
- package/dist/orchestrator/flow-subflow-decision-engine.d.ts.map +1 -0
- package/dist/orchestrator/flow-subflow-decision-engine.js +769 -0
- package/dist/orchestrator/flow-subflow-decision-engine.js.map +1 -0
- package/dist/orchestrator/flow-validation-engine.d.ts +145 -0
- package/dist/orchestrator/flow-validation-engine.d.ts.map +1 -0
- package/dist/orchestrator/flow-validation-engine.js +663 -0
- package/dist/orchestrator/flow-validation-engine.js.map +1 -0
- package/dist/orchestrator/snow-orchestrator.d.ts +49 -0
- package/dist/orchestrator/snow-orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/snow-orchestrator.js +235 -0
- package/dist/orchestrator/snow-orchestrator.js.map +1 -0
- package/dist/orchestrator/subflow-creation-handler.d.ts +230 -0
- package/dist/orchestrator/subflow-creation-handler.d.ts.map +1 -0
- package/dist/orchestrator/subflow-creation-handler.js +791 -0
- package/dist/orchestrator/subflow-creation-handler.js.map +1 -0
- package/dist/strategies/global-scope-strategy.d.ts +123 -0
- package/dist/strategies/global-scope-strategy.d.ts.map +1 -0
- package/dist/strategies/global-scope-strategy.js +585 -0
- package/dist/strategies/global-scope-strategy.js.map +1 -0
- package/dist/types/index.d.ts +138 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/servicenow.types.d.ts +260 -0
- package/dist/types/servicenow.types.d.ts.map +1 -0
- package/dist/types/servicenow.types.js +3 -0
- package/dist/types/servicenow.types.js.map +1 -0
- package/dist/types/snow-flow.types.d.ts +114 -0
- package/dist/types/snow-flow.types.d.ts.map +1 -0
- package/dist/types/snow-flow.types.js +3 -0
- package/dist/types/snow-flow.types.js.map +1 -0
- package/dist/utils/action-type-cache.d.ts +66 -0
- package/dist/utils/action-type-cache.d.ts.map +1 -0
- package/dist/utils/action-type-cache.js +237 -0
- package/dist/utils/action-type-cache.js.map +1 -0
- package/dist/utils/agent-detector.d.ts +35 -0
- package/dist/utils/agent-detector.d.ts.map +1 -0
- package/dist/utils/agent-detector.js +353 -0
- package/dist/utils/agent-detector.js.map +1 -0
- package/dist/utils/flow-api-discovery.d.ts +151 -0
- package/dist/utils/flow-api-discovery.d.ts.map +1 -0
- package/dist/utils/flow-api-discovery.js +440 -0
- package/dist/utils/flow-api-discovery.js.map +1 -0
- package/dist/utils/flow-xml-generator.d.ts +41 -0
- package/dist/utils/flow-xml-generator.d.ts.map +1 -0
- package/dist/utils/flow-xml-generator.js +258 -0
- package/dist/utils/flow-xml-generator.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +51 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mcp-auth-middleware.d.ts +58 -0
- package/dist/utils/mcp-auth-middleware.d.ts.map +1 -0
- package/dist/utils/mcp-auth-middleware.js +227 -0
- package/dist/utils/mcp-auth-middleware.js.map +1 -0
- package/dist/utils/mcp-config-manager.d.ts +126 -0
- package/dist/utils/mcp-config-manager.d.ts.map +1 -0
- package/dist/utils/mcp-config-manager.js +209 -0
- package/dist/utils/mcp-config-manager.js.map +1 -0
- package/dist/utils/mcp-server-manager.d.ts +91 -0
- package/dist/utils/mcp-server-manager.d.ts.map +1 -0
- package/dist/utils/mcp-server-manager.js +338 -0
- package/dist/utils/mcp-server-manager.js.map +1 -0
- package/dist/utils/scope-utils.d.ts +72 -0
- package/dist/utils/scope-utils.d.ts.map +1 -0
- package/dist/utils/scope-utils.js +386 -0
- package/dist/utils/scope-utils.js.map +1 -0
- package/dist/utils/servicenow-client.d.ts +233 -0
- package/dist/utils/servicenow-client.d.ts.map +1 -0
- package/dist/utils/servicenow-client.js +1465 -0
- package/dist/utils/servicenow-client.js.map +1 -0
- package/dist/utils/snow-oauth-old.d.ts +65 -0
- package/dist/utils/snow-oauth-old.d.ts.map +1 -0
- package/dist/utils/snow-oauth-old.js +345 -0
- package/dist/utils/snow-oauth-old.js.map +1 -0
- package/dist/utils/snow-oauth.d.ts +85 -0
- package/dist/utils/snow-oauth.d.ts.map +1 -0
- package/dist/utils/snow-oauth.js +512 -0
- package/dist/utils/snow-oauth.js.map +1 -0
- package/dist/utils/template-engine.d.ts +76 -0
- package/dist/utils/template-engine.d.ts.map +1 -0
- package/dist/utils/template-engine.js +391 -0
- package/dist/utils/template-engine.js.map +1 -0
- package/dist/version.d.ts +35 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +72 -0
- package/dist/version.js.map +1 -0
- package/mcp-wrapper.sh +12 -0
- package/package.json +77 -0
- package/reports/swarm-auto-centralized-1752649029776.json +13 -0
- package/scripts/postinstall.js +30 -0
- package/scripts/setup-mcp.js +89 -0
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Template Engine for Dynamic Artifact Generation
|
|
4
|
+
* Replaces hardcoded artifact implementations with flexible templates
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TemplateEngine = void 0;
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
class TemplateEngine {
|
|
11
|
+
constructor(templatesPath) {
|
|
12
|
+
this.templatesPath = templatesPath || (0, path_1.join)(process.cwd(), 'src', 'templates');
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Load a template from file
|
|
16
|
+
*/
|
|
17
|
+
async loadTemplate(templatePath) {
|
|
18
|
+
const fullPath = (0, path_1.join)(this.templatesPath, templatePath);
|
|
19
|
+
const content = await fs_1.promises.readFile(fullPath, 'utf-8');
|
|
20
|
+
return JSON.parse(content);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Process template with variables
|
|
24
|
+
*/
|
|
25
|
+
processTemplate(template, variables = {}) {
|
|
26
|
+
// Merge provided variables with defaults
|
|
27
|
+
const allVariables = {
|
|
28
|
+
...template.variables,
|
|
29
|
+
...variables
|
|
30
|
+
};
|
|
31
|
+
// Convert template to string for processing
|
|
32
|
+
let templateStr = JSON.stringify(template.config);
|
|
33
|
+
// Replace all variable placeholders
|
|
34
|
+
for (const [key, value] of Object.entries(allVariables)) {
|
|
35
|
+
// Replace {{KEY}} with value
|
|
36
|
+
const regex = new RegExp(`{{${key}}}`, 'g');
|
|
37
|
+
templateStr = templateStr.replace(regex, String(value));
|
|
38
|
+
// Replace {{KEY|default}} with value or default
|
|
39
|
+
const defaultRegex = new RegExp(`{{${key}\\|([^}]+)}}`, 'g');
|
|
40
|
+
templateStr = templateStr.replace(defaultRegex, String(value));
|
|
41
|
+
}
|
|
42
|
+
// Replace any remaining {{KEY|default}} patterns with defaults
|
|
43
|
+
templateStr = templateStr.replace(/{{[^|]+\|([^}]+)}}/g, '$1');
|
|
44
|
+
// Remove any unmatched placeholders
|
|
45
|
+
templateStr = templateStr.replace(/{{[^}]+}}/g, '');
|
|
46
|
+
// Parse back to object
|
|
47
|
+
const processed = JSON.parse(templateStr);
|
|
48
|
+
// Add metadata
|
|
49
|
+
return {
|
|
50
|
+
...processed,
|
|
51
|
+
_template: {
|
|
52
|
+
source: template.name,
|
|
53
|
+
type: template.type,
|
|
54
|
+
processed_at: new Date().toISOString()
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Create artifact from template
|
|
60
|
+
*/
|
|
61
|
+
async createFromTemplate(templateName, variables = {}) {
|
|
62
|
+
// Load base template
|
|
63
|
+
const templatePath = `base/${templateName}.template.json`;
|
|
64
|
+
const template = await this.loadTemplate(templatePath);
|
|
65
|
+
// Process with variables
|
|
66
|
+
return this.processTemplate(template, variables);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get available templates
|
|
70
|
+
*/
|
|
71
|
+
async getAvailableTemplates(type, category) {
|
|
72
|
+
const templates = [];
|
|
73
|
+
// Check base directory
|
|
74
|
+
const baseDir = (0, path_1.join)(this.templatesPath, 'base');
|
|
75
|
+
if (await this.directoryExists(baseDir)) {
|
|
76
|
+
const baseTemplates = await this.getTemplatesFromDirectory(baseDir);
|
|
77
|
+
templates.push(...baseTemplates);
|
|
78
|
+
}
|
|
79
|
+
// Check patterns directory
|
|
80
|
+
const patternsDir = (0, path_1.join)(this.templatesPath, 'patterns');
|
|
81
|
+
if (await this.directoryExists(patternsDir)) {
|
|
82
|
+
const patternTemplates = await this.getTemplatesFromDirectory(patternsDir);
|
|
83
|
+
templates.push(...patternTemplates);
|
|
84
|
+
}
|
|
85
|
+
// Filter by type and category if specified
|
|
86
|
+
return templates.filter(template => {
|
|
87
|
+
if (type && template.type !== type)
|
|
88
|
+
return false;
|
|
89
|
+
if (category && template.category !== category)
|
|
90
|
+
return false;
|
|
91
|
+
return true;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get templates from a directory
|
|
96
|
+
*/
|
|
97
|
+
async getTemplatesFromDirectory(dir) {
|
|
98
|
+
const templates = [];
|
|
99
|
+
const files = await fs_1.promises.readdir(dir);
|
|
100
|
+
for (const file of files) {
|
|
101
|
+
if (file.endsWith('.template.json')) {
|
|
102
|
+
try {
|
|
103
|
+
const relativePath = (0, path_1.join)(dir, file).replace(this.templatesPath + '/', '');
|
|
104
|
+
const template = await this.loadTemplate(relativePath);
|
|
105
|
+
templates.push(template);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.error(`Error loading template ${file}:`, error);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return templates;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Check if directory exists
|
|
116
|
+
*/
|
|
117
|
+
async directoryExists(path) {
|
|
118
|
+
try {
|
|
119
|
+
const stat = await fs_1.promises.stat(path);
|
|
120
|
+
return stat.isDirectory();
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Create example from template
|
|
128
|
+
*/
|
|
129
|
+
async createExample(templateName, exampleName, variables) {
|
|
130
|
+
const artifact = await this.createFromTemplate(templateName, variables);
|
|
131
|
+
// Save to examples directory
|
|
132
|
+
const exampleDir = (0, path_1.join)(this.templatesPath, 'examples', exampleName);
|
|
133
|
+
await fs_1.promises.mkdir(exampleDir, { recursive: true });
|
|
134
|
+
const outputPath = (0, path_1.join)(exampleDir, `${exampleName}.json`);
|
|
135
|
+
await fs_1.promises.writeFile(outputPath, JSON.stringify(artifact, null, 2));
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Validate template structure
|
|
139
|
+
*/
|
|
140
|
+
validateTemplate(template) {
|
|
141
|
+
const errors = [];
|
|
142
|
+
if (!template.type) {
|
|
143
|
+
errors.push('Template must have a type');
|
|
144
|
+
}
|
|
145
|
+
if (!template.name) {
|
|
146
|
+
errors.push('Template must have a name');
|
|
147
|
+
}
|
|
148
|
+
if (!template.config) {
|
|
149
|
+
errors.push('Template must have a config section');
|
|
150
|
+
}
|
|
151
|
+
// Type-specific validation
|
|
152
|
+
switch (template.type) {
|
|
153
|
+
case 'widget':
|
|
154
|
+
if (!template.config.template) {
|
|
155
|
+
errors.push('Widget template must have HTML template');
|
|
156
|
+
}
|
|
157
|
+
break;
|
|
158
|
+
case 'flow':
|
|
159
|
+
if (!template.config.flow_definition) {
|
|
160
|
+
errors.push('Flow template must have flow_definition');
|
|
161
|
+
}
|
|
162
|
+
break;
|
|
163
|
+
case 'script_include':
|
|
164
|
+
if (!template.config.script) {
|
|
165
|
+
errors.push('Script include template must have script');
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
return errors;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Generate artifact from natural language
|
|
173
|
+
*/
|
|
174
|
+
async generateFromDescription(description, type) {
|
|
175
|
+
// Determine the best template based on description
|
|
176
|
+
const template = await this.selectBestTemplate(description, type);
|
|
177
|
+
// Extract variables from description
|
|
178
|
+
const variables = this.extractVariablesFromDescription(description, template);
|
|
179
|
+
// Process template with extracted variables
|
|
180
|
+
return this.processTemplate(template, variables);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Select the best template based on natural language description
|
|
184
|
+
*/
|
|
185
|
+
async selectBestTemplate(description, preferredType) {
|
|
186
|
+
const lowerDesc = description.toLowerCase();
|
|
187
|
+
// Determine type if not specified
|
|
188
|
+
let type = preferredType;
|
|
189
|
+
if (!type) {
|
|
190
|
+
if (lowerDesc.includes('widget') || lowerDesc.includes('dashboard') || lowerDesc.includes('visualization')) {
|
|
191
|
+
type = 'widget';
|
|
192
|
+
}
|
|
193
|
+
else if (lowerDesc.includes('flow') || lowerDesc.includes('workflow') || lowerDesc.includes('approval')) {
|
|
194
|
+
type = 'flow';
|
|
195
|
+
}
|
|
196
|
+
else if (lowerDesc.includes('script') || lowerDesc.includes('utility') || lowerDesc.includes('function')) {
|
|
197
|
+
type = 'script_include';
|
|
198
|
+
}
|
|
199
|
+
else if (lowerDesc.includes('rule') || lowerDesc.includes('trigger')) {
|
|
200
|
+
type = 'business_rule';
|
|
201
|
+
}
|
|
202
|
+
else if (lowerDesc.includes('table') || lowerDesc.includes('data model')) {
|
|
203
|
+
type = 'table';
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Get available templates of this type
|
|
207
|
+
const templates = await this.getAvailableTemplates(type);
|
|
208
|
+
// Score templates based on description match
|
|
209
|
+
let bestTemplate = null;
|
|
210
|
+
let bestScore = 0;
|
|
211
|
+
for (const template of templates) {
|
|
212
|
+
const score = this.scoreTemplate(template, description);
|
|
213
|
+
if (score > bestScore) {
|
|
214
|
+
bestScore = score;
|
|
215
|
+
bestTemplate = template;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Fallback to base template if no good match
|
|
219
|
+
if (!bestTemplate) {
|
|
220
|
+
const basePath = `base/${type}.template.json`;
|
|
221
|
+
bestTemplate = await this.loadTemplate(basePath);
|
|
222
|
+
}
|
|
223
|
+
return bestTemplate;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Score a template based on how well it matches the description
|
|
227
|
+
*/
|
|
228
|
+
scoreTemplate(template, description) {
|
|
229
|
+
let score = 0;
|
|
230
|
+
const lowerDesc = description.toLowerCase();
|
|
231
|
+
const lowerTemplateName = template.name.toLowerCase();
|
|
232
|
+
const lowerTemplateDesc = template.description.toLowerCase();
|
|
233
|
+
// Check template name
|
|
234
|
+
const nameWords = lowerTemplateName.split(/\s+/);
|
|
235
|
+
for (const word of nameWords) {
|
|
236
|
+
if (lowerDesc.includes(word) && word.length > 3) {
|
|
237
|
+
score += 2;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// Check template description
|
|
241
|
+
const descWords = lowerTemplateDesc.split(/\s+/);
|
|
242
|
+
for (const word of descWords) {
|
|
243
|
+
if (lowerDesc.includes(word) && word.length > 3) {
|
|
244
|
+
score += 1;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// Pattern-specific scoring
|
|
248
|
+
if (template.category) {
|
|
249
|
+
if (template.category.includes('dashboard') && lowerDesc.includes('dashboard'))
|
|
250
|
+
score += 5;
|
|
251
|
+
if (template.category.includes('approval') && lowerDesc.includes('approval'))
|
|
252
|
+
score += 5;
|
|
253
|
+
if (template.category.includes('integration') && (lowerDesc.includes('integrate') || lowerDesc.includes('api')))
|
|
254
|
+
score += 5;
|
|
255
|
+
if (template.category.includes('datatable') && (lowerDesc.includes('table') || lowerDesc.includes('list')))
|
|
256
|
+
score += 5;
|
|
257
|
+
}
|
|
258
|
+
return score;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Extract variables from natural language description
|
|
262
|
+
*/
|
|
263
|
+
extractVariablesFromDescription(description, template) {
|
|
264
|
+
const variables = {};
|
|
265
|
+
const lowerDesc = description.toLowerCase();
|
|
266
|
+
// Extract name variants
|
|
267
|
+
const nameMatch = description.match(/(?:create|build|make)\s+(?:a|an)?\s*([^,.\s]+(?:\s+[^,.\s]+)*?)(?:\s+(?:widget|flow|script|for|with|that|$))/i);
|
|
268
|
+
if (nameMatch) {
|
|
269
|
+
const name = nameMatch[1].trim();
|
|
270
|
+
variables.NAME = name;
|
|
271
|
+
variables.WIDGET_NAME = name.replace(/\s+/g, '_').toLowerCase();
|
|
272
|
+
variables.FLOW_NAME = name.replace(/\s+/g, '_').toLowerCase();
|
|
273
|
+
variables.CLASS_NAME = name.split(/\s+/).map(w => w.charAt(0).toUpperCase() + w.slice(1)).join('');
|
|
274
|
+
variables.WIDGET_TITLE = name.split(/\s+/).map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');
|
|
275
|
+
variables.FLOW_DESCRIPTION = `${name} automation flow`;
|
|
276
|
+
variables.WIDGET_DESCRIPTION = `Widget for ${name.toLowerCase()}`;
|
|
277
|
+
}
|
|
278
|
+
// Extract table name
|
|
279
|
+
const tablePatterns = [
|
|
280
|
+
/(?:for|on|from|of)\s+(\w+)\s+(?:table|records?|data)/i,
|
|
281
|
+
/(?:track|manage|display|show)\s+(\w+)(?:\s|$)/i,
|
|
282
|
+
/(\w+)\s+(?:management|tracking|dashboard)/i
|
|
283
|
+
];
|
|
284
|
+
for (const pattern of tablePatterns) {
|
|
285
|
+
const match = description.match(pattern);
|
|
286
|
+
if (match) {
|
|
287
|
+
variables.TABLE = match[1].toLowerCase();
|
|
288
|
+
variables.TABLE_NAME = match[1].toLowerCase();
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// Extract trigger conditions
|
|
293
|
+
if (lowerDesc.includes('when created') || lowerDesc.includes('on create')) {
|
|
294
|
+
variables.TRIGGER_TYPE = 'record_created';
|
|
295
|
+
}
|
|
296
|
+
else if (lowerDesc.includes('when updated') || lowerDesc.includes('on update')) {
|
|
297
|
+
variables.TRIGGER_TYPE = 'record_updated';
|
|
298
|
+
}
|
|
299
|
+
else if (lowerDesc.includes('when deleted') || lowerDesc.includes('on delete')) {
|
|
300
|
+
variables.TRIGGER_TYPE = 'record_deleted';
|
|
301
|
+
}
|
|
302
|
+
// Extract approval-specific variables
|
|
303
|
+
if (template.type === 'flow' && lowerDesc.includes('approval')) {
|
|
304
|
+
// Extract amount thresholds
|
|
305
|
+
const amountMatch = description.match(/(?:over|above|greater than|more than)\s*[$ā¬Ā£]?\s*(\d+(?:,\d{3})*(?:\.\d{2})?)/i);
|
|
306
|
+
if (amountMatch) {
|
|
307
|
+
variables.HIGH_AMOUNT_THRESHOLD = amountMatch[1].replace(/,/g, '');
|
|
308
|
+
}
|
|
309
|
+
// Extract approvers
|
|
310
|
+
if (lowerDesc.includes('manager'))
|
|
311
|
+
variables.APPROVAL_TYPE = 'manager';
|
|
312
|
+
if (lowerDesc.includes('director'))
|
|
313
|
+
variables.APPROVAL_TYPE = 'director';
|
|
314
|
+
if (lowerDesc.includes('group'))
|
|
315
|
+
variables.APPROVAL_TYPE = 'group';
|
|
316
|
+
}
|
|
317
|
+
// Extract integration-specific variables
|
|
318
|
+
if (template.type === 'flow' && lowerDesc.includes('integrat')) {
|
|
319
|
+
const apiMatch = description.match(/(?:api|endpoint|url):\s*([^\s]+)/i);
|
|
320
|
+
if (apiMatch) {
|
|
321
|
+
variables.API_ENDPOINT = apiMatch[1];
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// Extract refresh intervals for dashboards
|
|
325
|
+
if (template.type === 'widget' && lowerDesc.includes('dashboard')) {
|
|
326
|
+
const intervalMatch = description.match(/(?:refresh|update)\s+(?:every|each)\s+(\d+)\s*(?:second|minute)/i);
|
|
327
|
+
if (intervalMatch) {
|
|
328
|
+
let interval = parseInt(intervalMatch[1]);
|
|
329
|
+
if (lowerDesc.includes('minute'))
|
|
330
|
+
interval *= 60;
|
|
331
|
+
variables.REFRESH_INTERVAL = interval.toString();
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
// Apply intelligent defaults based on context
|
|
335
|
+
this.applyIntelligentDefaults(variables, template, description);
|
|
336
|
+
return variables;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Apply intelligent defaults based on context
|
|
340
|
+
*/
|
|
341
|
+
applyIntelligentDefaults(variables, template, description) {
|
|
342
|
+
const lowerDesc = description.toLowerCase();
|
|
343
|
+
// Table-specific defaults
|
|
344
|
+
if (variables.TABLE) {
|
|
345
|
+
const table = variables.TABLE;
|
|
346
|
+
// Incident-specific defaults
|
|
347
|
+
if (table === 'incident') {
|
|
348
|
+
variables.PRIORITY_FIELD = variables.PRIORITY_FIELD || 'priority';
|
|
349
|
+
variables.STATE_FIELD = variables.STATE_FIELD || 'state';
|
|
350
|
+
variables.ASSIGNED_TO_FIELD = variables.ASSIGNED_TO_FIELD || 'assigned_to';
|
|
351
|
+
}
|
|
352
|
+
// Request-specific defaults
|
|
353
|
+
if (table.includes('request')) {
|
|
354
|
+
variables.APPROVAL_FIELD = variables.APPROVAL_FIELD || 'approval';
|
|
355
|
+
variables.STAGE_FIELD = variables.STAGE_FIELD || 'stage';
|
|
356
|
+
}
|
|
357
|
+
// Change-specific defaults
|
|
358
|
+
if (table.includes('change')) {
|
|
359
|
+
variables.RISK_FIELD = variables.RISK_FIELD || 'risk';
|
|
360
|
+
variables.CAB_REQUIRED_FIELD = variables.CAB_REQUIRED_FIELD || 'cab_required';
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
// Apply ServiceNow best practices
|
|
364
|
+
if (template.type === 'widget') {
|
|
365
|
+
variables.WIDGET_ROLES = variables.WIDGET_ROLES || '';
|
|
366
|
+
variables.MAX_RECORDS = variables.MAX_RECORDS || '100';
|
|
367
|
+
}
|
|
368
|
+
if (template.type === 'flow') {
|
|
369
|
+
variables.ACTIVE = variables.ACTIVE || 'true';
|
|
370
|
+
variables.RUN_AS = variables.RUN_AS || 'system_user';
|
|
371
|
+
}
|
|
372
|
+
if (template.type === 'business_rule') {
|
|
373
|
+
variables.ORDER = variables.ORDER || '100';
|
|
374
|
+
variables.ACTIVE = variables.ACTIVE || 'true';
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Create from pattern template
|
|
379
|
+
*/
|
|
380
|
+
async createFromPattern(pattern, variables = {}) {
|
|
381
|
+
// Load pattern template
|
|
382
|
+
const templatePath = `patterns/${pattern}.template.json`;
|
|
383
|
+
const template = await this.loadTemplate(templatePath);
|
|
384
|
+
// Apply intelligent defaults
|
|
385
|
+
this.applyIntelligentDefaults(variables, template, '');
|
|
386
|
+
// Process with variables
|
|
387
|
+
return this.processTemplate(template, variables);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
exports.TemplateEngine = TemplateEngine;
|
|
391
|
+
//# sourceMappingURL=template-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/utils/template-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snow-Flow Version Management
|
|
3
|
+
*/
|
|
4
|
+
export declare const VERSION = "1.1.0";
|
|
5
|
+
export declare const VERSION_INFO: {
|
|
6
|
+
version: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
features: {
|
|
10
|
+
'1.1.0': string[];
|
|
11
|
+
};
|
|
12
|
+
changelog: {
|
|
13
|
+
'1.1.0': {
|
|
14
|
+
date: string;
|
|
15
|
+
changes: string[];
|
|
16
|
+
};
|
|
17
|
+
'1.0.0': {
|
|
18
|
+
date: string;
|
|
19
|
+
changes: string[];
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Get version string with optional format
|
|
25
|
+
*/
|
|
26
|
+
export declare function getVersionString(format?: 'short' | 'full'): string;
|
|
27
|
+
/**
|
|
28
|
+
* Get latest features for current version
|
|
29
|
+
*/
|
|
30
|
+
export declare function getLatestFeatures(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Check if running latest version (for future use)
|
|
33
|
+
*/
|
|
34
|
+
export declare function isLatestVersion(): boolean;
|
|
35
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;CAsCxB,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,OAAO,GAAG,MAAgB,GAAG,MAAM,CAK3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAGzC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Snow-Flow Version Management
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.VERSION_INFO = exports.VERSION = void 0;
|
|
7
|
+
exports.getVersionString = getVersionString;
|
|
8
|
+
exports.getLatestFeatures = getLatestFeatures;
|
|
9
|
+
exports.isLatestVersion = isLatestVersion;
|
|
10
|
+
exports.VERSION = '1.1.0';
|
|
11
|
+
exports.VERSION_INFO = {
|
|
12
|
+
version: exports.VERSION,
|
|
13
|
+
name: 'Snow-Flow',
|
|
14
|
+
description: 'ServiceNow Multi-Agent Development Framework',
|
|
15
|
+
features: {
|
|
16
|
+
'1.1.0': [
|
|
17
|
+
'Enhanced Flow Composer MCP with natural language flow creation',
|
|
18
|
+
'Intelligent template system with context-aware selection',
|
|
19
|
+
'Expanded widget templates (dashboard, data table)',
|
|
20
|
+
'Advanced flow templates (approval, integration)',
|
|
21
|
+
'Composite templates for complete systems',
|
|
22
|
+
'Natural language understanding for artifact generation',
|
|
23
|
+
'Update Set management for all deployments',
|
|
24
|
+
'Neo4j graph memory for intelligent artifact understanding'
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
changelog: {
|
|
28
|
+
'1.1.0': {
|
|
29
|
+
date: '2025-01-17',
|
|
30
|
+
changes: [
|
|
31
|
+
'Added Flow Composer MCP for natural language flow creation',
|
|
32
|
+
'Expanded template system with intelligent variations',
|
|
33
|
+
'Enhanced template engine with NLP capabilities',
|
|
34
|
+
'Added composite templates for complex systems',
|
|
35
|
+
'Improved ServiceNow artifact discovery and orchestration'
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
'1.0.0': {
|
|
39
|
+
date: '2025-01-15',
|
|
40
|
+
changes: [
|
|
41
|
+
'Initial release with multi-agent orchestration',
|
|
42
|
+
'ServiceNow OAuth integration',
|
|
43
|
+
'MCP server support',
|
|
44
|
+
'Basic template system',
|
|
45
|
+
'SPARC methodology implementation'
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Get version string with optional format
|
|
52
|
+
*/
|
|
53
|
+
function getVersionString(format = 'short') {
|
|
54
|
+
if (format === 'short') {
|
|
55
|
+
return `v${exports.VERSION}`;
|
|
56
|
+
}
|
|
57
|
+
return `${exports.VERSION_INFO.name} v${exports.VERSION} - ${exports.VERSION_INFO.description}`;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get latest features for current version
|
|
61
|
+
*/
|
|
62
|
+
function getLatestFeatures() {
|
|
63
|
+
return exports.VERSION_INFO.features[exports.VERSION] || [];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if running latest version (for future use)
|
|
67
|
+
*/
|
|
68
|
+
function isLatestVersion() {
|
|
69
|
+
// This could check against a remote version in the future
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+CH,4CAKC;AAKD,8CAEC;AAKD,0CAGC;AAjEY,QAAA,OAAO,GAAG,OAAO,CAAC;AAElB,QAAA,YAAY,GAAG;IAC1B,OAAO,EAAE,eAAO;IAChB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,gEAAgE;YAChE,0DAA0D;YAC1D,mDAAmD;YACnD,iDAAiD;YACjD,0CAA0C;YAC1C,wDAAwD;YACxD,2CAA2C;YAC3C,2DAA2D;SAC5D;KACF;IACD,SAAS,EAAE;QACT,OAAO,EAAE;YACP,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE;gBACP,4DAA4D;gBAC5D,sDAAsD;gBACtD,gDAAgD;gBAChD,+CAA+C;gBAC/C,0DAA0D;aAC3D;SACF;QACD,OAAO,EAAE;YACP,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE;gBACP,gDAAgD;gBAChD,8BAA8B;gBAC9B,oBAAoB;gBACpB,uBAAuB;gBACvB,kCAAkC;aACnC;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,gBAAgB,CAAC,SAA2B,OAAO;IACjE,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,IAAI,eAAO,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,GAAG,oBAAY,CAAC,IAAI,KAAK,eAAO,MAAM,oBAAY,CAAC,WAAW,EAAE,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,oBAAY,CAAC,QAAQ,CAAC,eAAO,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,0DAA0D;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/mcp-wrapper.sh
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# MCP Server Wrapper for Claude Code compatibility
|
|
3
|
+
# This wrapper ensures proper execution of Node.js MCP servers
|
|
4
|
+
|
|
5
|
+
# Get the script to run from first argument
|
|
6
|
+
SCRIPT="$1"
|
|
7
|
+
|
|
8
|
+
# Shift arguments to pass remaining to the script
|
|
9
|
+
shift
|
|
10
|
+
|
|
11
|
+
# Execute with Node.js
|
|
12
|
+
exec node "$SCRIPT" "$@"
|
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "snow-flow",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Multi-Agent ServiceNow Development Platform - Create, manage, and deploy ServiceNow artifacts using natural language and AI agents",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "commonjs",
|
|
7
|
+
"bin": {
|
|
8
|
+
"snow-flow": "./bin/snow-flow"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsc --watch",
|
|
13
|
+
"start": "node dist/index.js",
|
|
14
|
+
"test": "jest",
|
|
15
|
+
"lint": "eslint src/**/*.ts",
|
|
16
|
+
"typecheck": "tsc --noEmit",
|
|
17
|
+
"setup-mcp": "node scripts/setup-mcp.js",
|
|
18
|
+
"postbuild": "npm run setup-mcp",
|
|
19
|
+
"postinstall": "node scripts/postinstall.js"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"servicenow",
|
|
23
|
+
"multiagent",
|
|
24
|
+
"automation",
|
|
25
|
+
"development",
|
|
26
|
+
"mcp",
|
|
27
|
+
"ai",
|
|
28
|
+
"flow-designer",
|
|
29
|
+
"deployment",
|
|
30
|
+
"claude",
|
|
31
|
+
"natural-language"
|
|
32
|
+
],
|
|
33
|
+
"author": "Snow-Flow Team",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/groeimetai/snow-flow.git"
|
|
38
|
+
},
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/groeimetai/snow-flow/issues"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://github.com/groeimetai/snow-flow#readme",
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=18.0.0",
|
|
45
|
+
"npm": ">=8.0.0"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@modelcontextprotocol/sdk": "^1.15.1",
|
|
49
|
+
"@types/node-fetch": "^2.6.12",
|
|
50
|
+
"@types/uuid": "^10.0.0",
|
|
51
|
+
"axios": "^1.10.0",
|
|
52
|
+
"boxen": "^8.0.1",
|
|
53
|
+
"chalk": "^4.1.2",
|
|
54
|
+
"chalk-animation": "^2.0.3",
|
|
55
|
+
"commander": "^12.0.0",
|
|
56
|
+
"conf": "^14.0.0",
|
|
57
|
+
"dotenv": "^16.4.5",
|
|
58
|
+
"figlet": "^1.8.2",
|
|
59
|
+
"gradient-string": "^3.0.0",
|
|
60
|
+
"inquirer": "^12.7.0",
|
|
61
|
+
"neo4j-driver": "^5.23.0",
|
|
62
|
+
"node-fetch": "^3.3.2",
|
|
63
|
+
"ora": "^8.2.0",
|
|
64
|
+
"sqlite3": "^5.1.7",
|
|
65
|
+
"uuid": "^11.1.0",
|
|
66
|
+
"winston": "^3.17.0"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@types/node": "^20.11.0",
|
|
70
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
71
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
72
|
+
"eslint": "^8.57.0",
|
|
73
|
+
"jest": "^29.7.0",
|
|
74
|
+
"ts-jest": "^29.1.2",
|
|
75
|
+
"typescript": "^5.4.5"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"objective": "create a multi agent implementation of claude-flow for a servicenow instance. As in the way that we do exactly the same as what claude-flow already does, multi agent orchestration of claude-code, but then for SerivceNow, for example I want that this cmd: [snow-flow swarm 'create a widget for X'] a multi agent orchestration spawns with multiple agents that would create a widget in servicenow, or anything ofcourse. We should look at claude-flows github and should duplicate as best as we could to get this product: https://github.com/ruvnet/claude-flow - this would be called snow-flow as a reference to servicenow that everyone calls snow wrongly and flow as in claude-flow. Just like claude-flow this snow-flow would live in the cli, orchestrating claude-code how to build, but then it would be always pointed towards servicenow. The user should give their OAuth or basic authentication and should be able to, kist like claude-flow, use their claude-code subscription to save on token costs. Claude-flow only orchestrates, claude-code creates so its important that we keep that aspect of the tool",
|
|
3
|
+
"strategy": "auto",
|
|
4
|
+
"mode": "centralized",
|
|
5
|
+
"maxAgents": 5,
|
|
6
|
+
"timeout": 60,
|
|
7
|
+
"parallel": false,
|
|
8
|
+
"monitor": false,
|
|
9
|
+
"output": "json",
|
|
10
|
+
"outputDir": "./reports",
|
|
11
|
+
"timestamp": "2025-07-16T06:57:09.774Z",
|
|
12
|
+
"id": "swarm-auto-centralized-1752649029776"
|
|
13
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const os = require('os');
|
|
6
|
+
|
|
7
|
+
console.log('š Setting up Snow-Flow...');
|
|
8
|
+
|
|
9
|
+
// Check if we're in a global install
|
|
10
|
+
const isGlobalInstall = process.env.npm_config_global === 'true' ||
|
|
11
|
+
process.env.npm_config_global === true;
|
|
12
|
+
|
|
13
|
+
if (isGlobalInstall) {
|
|
14
|
+
console.log('ā
Snow-Flow installed globally');
|
|
15
|
+
console.log('š Run "snow-flow init --sparc" in your project directory to initialize');
|
|
16
|
+
|
|
17
|
+
// Create global config directory
|
|
18
|
+
const globalConfigDir = path.join(os.homedir(), '.snow-flow');
|
|
19
|
+
if (!fs.existsSync(globalConfigDir)) {
|
|
20
|
+
fs.mkdirSync(globalConfigDir, { recursive: true });
|
|
21
|
+
console.log(`ā
Created global config directory at ${globalConfigDir}`);
|
|
22
|
+
}
|
|
23
|
+
} else {
|
|
24
|
+
// Local installation - don't create directories automatically
|
|
25
|
+
console.log('ā
Snow-Flow installed locally');
|
|
26
|
+
console.log('š§ Run "snow-flow init --sparc" to initialize your project');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
console.log('\nš Documentation: https://github.com/groeimetai/snow-flow#readme');
|
|
30
|
+
console.log('š Get help: snow-flow --help');
|