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.
Files changed (240) hide show
  1. package/.env.example +49 -0
  2. package/.mcp.json +106 -0
  3. package/.mcp.json.template +106 -0
  4. package/LICENSE +21 -0
  5. package/README.md +236 -0
  6. package/bin/snow-flow +4 -0
  7. package/bin/snow-flow.js +3 -0
  8. package/claude-flow +79 -0
  9. package/claude-flow.bat +18 -0
  10. package/claude-flow.config.json +20 -0
  11. package/claude-flow.ps1 +24 -0
  12. package/dist/agents/app-creator.agent.d.ts +55 -0
  13. package/dist/agents/app-creator.agent.d.ts.map +1 -0
  14. package/dist/agents/app-creator.agent.js +1292 -0
  15. package/dist/agents/app-creator.agent.js.map +1 -0
  16. package/dist/agents/base-snow-agent.d.ts +63 -0
  17. package/dist/agents/base-snow-agent.d.ts.map +1 -0
  18. package/dist/agents/base-snow-agent.js +296 -0
  19. package/dist/agents/base-snow-agent.js.map +1 -0
  20. package/dist/agents/script-generator.agent.d.ts +32 -0
  21. package/dist/agents/script-generator.agent.d.ts.map +1 -0
  22. package/dist/agents/script-generator.agent.js +772 -0
  23. package/dist/agents/script-generator.agent.js.map +1 -0
  24. package/dist/agents/ui-builder.agent.d.ts +50 -0
  25. package/dist/agents/ui-builder.agent.d.ts.map +1 -0
  26. package/dist/agents/ui-builder.agent.js +1539 -0
  27. package/dist/agents/ui-builder.agent.js.map +1 -0
  28. package/dist/agents/widget-builder.agent.d.ts +32 -0
  29. package/dist/agents/widget-builder.agent.d.ts.map +1 -0
  30. package/dist/agents/widget-builder.agent.js +439 -0
  31. package/dist/agents/widget-builder.agent.js.map +1 -0
  32. package/dist/agents/workflow-designer.agent.d.ts +31 -0
  33. package/dist/agents/workflow-designer.agent.d.ts.map +1 -0
  34. package/dist/agents/workflow-designer.agent.js +583 -0
  35. package/dist/agents/workflow-designer.agent.js.map +1 -0
  36. package/dist/api/error-handling.d.ts +214 -0
  37. package/dist/api/error-handling.d.ts.map +1 -0
  38. package/dist/api/error-handling.js +594 -0
  39. package/dist/api/error-handling.js.map +1 -0
  40. package/dist/api/flow-designer-api.d.ts +167 -0
  41. package/dist/api/flow-designer-api.d.ts.map +1 -0
  42. package/dist/api/flow-designer-api.js +555 -0
  43. package/dist/api/flow-designer-api.js.map +1 -0
  44. package/dist/api/natural-language-mapper.d.ts +126 -0
  45. package/dist/api/natural-language-mapper.d.ts.map +1 -0
  46. package/dist/api/natural-language-mapper.js +498 -0
  47. package/dist/api/natural-language-mapper.js.map +1 -0
  48. package/dist/api/performance-optimizer.d.ts +240 -0
  49. package/dist/api/performance-optimizer.d.ts.map +1 -0
  50. package/dist/api/performance-optimizer.js +701 -0
  51. package/dist/api/performance-optimizer.js.map +1 -0
  52. package/dist/api/transaction-manager.d.ts +189 -0
  53. package/dist/api/transaction-manager.d.ts.map +1 -0
  54. package/dist/api/transaction-manager.js +576 -0
  55. package/dist/api/transaction-manager.js.map +1 -0
  56. package/dist/cli/deploy-artifact.d.ts +7 -0
  57. package/dist/cli/deploy-artifact.d.ts.map +1 -0
  58. package/dist/cli/deploy-artifact.js +279 -0
  59. package/dist/cli/deploy-artifact.js.map +1 -0
  60. package/dist/cli.d.ts +6 -0
  61. package/dist/cli.d.ts.map +1 -0
  62. package/dist/cli.js +2057 -0
  63. package/dist/cli.js.map +1 -0
  64. package/dist/index.d.ts +10 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +35 -0
  67. package/dist/index.js.map +1 -0
  68. package/dist/managers/scope-manager.d.ts +75 -0
  69. package/dist/managers/scope-manager.d.ts.map +1 -0
  70. package/dist/managers/scope-manager.js +448 -0
  71. package/dist/managers/scope-manager.js.map +1 -0
  72. package/dist/mcp/mcp-wrapper.d.ts +8 -0
  73. package/dist/mcp/mcp-wrapper.d.ts.map +1 -0
  74. package/dist/mcp/mcp-wrapper.js +77 -0
  75. package/dist/mcp/mcp-wrapper.js.map +1 -0
  76. package/dist/mcp/servicenow-automation-mcp.d.ts +8 -0
  77. package/dist/mcp/servicenow-automation-mcp.d.ts.map +1 -0
  78. package/dist/mcp/servicenow-automation-mcp.js +683 -0
  79. package/dist/mcp/servicenow-automation-mcp.js.map +1 -0
  80. package/dist/mcp/servicenow-deployment-mcp.d.ts +7 -0
  81. package/dist/mcp/servicenow-deployment-mcp.d.ts.map +1 -0
  82. package/dist/mcp/servicenow-deployment-mcp.js +972 -0
  83. package/dist/mcp/servicenow-deployment-mcp.js.map +1 -0
  84. package/dist/mcp/servicenow-flow-composer-mcp.d.ts +7 -0
  85. package/dist/mcp/servicenow-flow-composer-mcp.d.ts.map +1 -0
  86. package/dist/mcp/servicenow-flow-composer-mcp.js +1121 -0
  87. package/dist/mcp/servicenow-flow-composer-mcp.js.map +1 -0
  88. package/dist/mcp/servicenow-graph-memory-mcp.d.ts +7 -0
  89. package/dist/mcp/servicenow-graph-memory-mcp.d.ts.map +1 -0
  90. package/dist/mcp/servicenow-graph-memory-mcp.js +703 -0
  91. package/dist/mcp/servicenow-graph-memory-mcp.js.map +1 -0
  92. package/dist/mcp/servicenow-integration-mcp.d.ts +8 -0
  93. package/dist/mcp/servicenow-integration-mcp.d.ts.map +1 -0
  94. package/dist/mcp/servicenow-integration-mcp.js +689 -0
  95. package/dist/mcp/servicenow-integration-mcp.js.map +1 -0
  96. package/dist/mcp/servicenow-intelligent-mcp.d.ts +7 -0
  97. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +1 -0
  98. package/dist/mcp/servicenow-intelligent-mcp.js +1138 -0
  99. package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -0
  100. package/dist/mcp/servicenow-mcp-server.d.ts +37 -0
  101. package/dist/mcp/servicenow-mcp-server.d.ts.map +1 -0
  102. package/dist/mcp/servicenow-mcp-server.js +648 -0
  103. package/dist/mcp/servicenow-mcp-server.js.map +1 -0
  104. package/dist/mcp/servicenow-operations-mcp.d.ts +15 -0
  105. package/dist/mcp/servicenow-operations-mcp.d.ts.map +1 -0
  106. package/dist/mcp/servicenow-operations-mcp.js +1287 -0
  107. package/dist/mcp/servicenow-operations-mcp.js.map +1 -0
  108. package/dist/mcp/servicenow-platform-development-mcp.d.ts +8 -0
  109. package/dist/mcp/servicenow-platform-development-mcp.d.ts.map +1 -0
  110. package/dist/mcp/servicenow-platform-development-mcp.js +557 -0
  111. package/dist/mcp/servicenow-platform-development-mcp.js.map +1 -0
  112. package/dist/mcp/servicenow-progressive-indexer.d.ts +79 -0
  113. package/dist/mcp/servicenow-progressive-indexer.d.ts.map +1 -0
  114. package/dist/mcp/servicenow-progressive-indexer.js +320 -0
  115. package/dist/mcp/servicenow-progressive-indexer.js.map +1 -0
  116. package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts +8 -0
  117. package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts.map +1 -0
  118. package/dist/mcp/servicenow-reporting-analytics-mcp.js +888 -0
  119. package/dist/mcp/servicenow-reporting-analytics-mcp.js.map +1 -0
  120. package/dist/mcp/servicenow-security-compliance-mcp.d.ts +8 -0
  121. package/dist/mcp/servicenow-security-compliance-mcp.d.ts.map +1 -0
  122. package/dist/mcp/servicenow-security-compliance-mcp.js +812 -0
  123. package/dist/mcp/servicenow-security-compliance-mcp.js.map +1 -0
  124. package/dist/mcp/servicenow-update-set-mcp.d.ts +7 -0
  125. package/dist/mcp/servicenow-update-set-mcp.d.ts.map +1 -0
  126. package/dist/mcp/servicenow-update-set-mcp.js +599 -0
  127. package/dist/mcp/servicenow-update-set-mcp.js.map +1 -0
  128. package/dist/mcp/start-all-mcp-servers.d.ts +6 -0
  129. package/dist/mcp/start-all-mcp-servers.d.ts.map +1 -0
  130. package/dist/mcp/start-all-mcp-servers.js +65 -0
  131. package/dist/mcp/start-all-mcp-servers.js.map +1 -0
  132. package/dist/mcp/start-servicenow-mcp.d.ts +7 -0
  133. package/dist/mcp/start-servicenow-mcp.d.ts.map +1 -0
  134. package/dist/mcp/start-servicenow-mcp.js +64 -0
  135. package/dist/mcp/start-servicenow-mcp.js.map +1 -0
  136. package/dist/mcp/test-simple-mcp.d.ts +6 -0
  137. package/dist/mcp/test-simple-mcp.d.ts.map +1 -0
  138. package/dist/mcp/test-simple-mcp.js +64 -0
  139. package/dist/mcp/test-simple-mcp.js.map +1 -0
  140. package/dist/orchestrator/flow-composer.d.ts +269 -0
  141. package/dist/orchestrator/flow-composer.d.ts.map +1 -0
  142. package/dist/orchestrator/flow-composer.js +2221 -0
  143. package/dist/orchestrator/flow-composer.js.map +1 -0
  144. package/dist/orchestrator/flow-pattern-templates.d.ts +260 -0
  145. package/dist/orchestrator/flow-pattern-templates.d.ts.map +1 -0
  146. package/dist/orchestrator/flow-pattern-templates.js +906 -0
  147. package/dist/orchestrator/flow-pattern-templates.js.map +1 -0
  148. package/dist/orchestrator/flow-subflow-decision-engine.d.ts +202 -0
  149. package/dist/orchestrator/flow-subflow-decision-engine.d.ts.map +1 -0
  150. package/dist/orchestrator/flow-subflow-decision-engine.js +769 -0
  151. package/dist/orchestrator/flow-subflow-decision-engine.js.map +1 -0
  152. package/dist/orchestrator/flow-validation-engine.d.ts +145 -0
  153. package/dist/orchestrator/flow-validation-engine.d.ts.map +1 -0
  154. package/dist/orchestrator/flow-validation-engine.js +663 -0
  155. package/dist/orchestrator/flow-validation-engine.js.map +1 -0
  156. package/dist/orchestrator/snow-orchestrator.d.ts +49 -0
  157. package/dist/orchestrator/snow-orchestrator.d.ts.map +1 -0
  158. package/dist/orchestrator/snow-orchestrator.js +235 -0
  159. package/dist/orchestrator/snow-orchestrator.js.map +1 -0
  160. package/dist/orchestrator/subflow-creation-handler.d.ts +230 -0
  161. package/dist/orchestrator/subflow-creation-handler.d.ts.map +1 -0
  162. package/dist/orchestrator/subflow-creation-handler.js +791 -0
  163. package/dist/orchestrator/subflow-creation-handler.js.map +1 -0
  164. package/dist/strategies/global-scope-strategy.d.ts +123 -0
  165. package/dist/strategies/global-scope-strategy.d.ts.map +1 -0
  166. package/dist/strategies/global-scope-strategy.js +585 -0
  167. package/dist/strategies/global-scope-strategy.js.map +1 -0
  168. package/dist/types/index.d.ts +138 -0
  169. package/dist/types/index.d.ts.map +1 -0
  170. package/dist/types/index.js +4 -0
  171. package/dist/types/index.js.map +1 -0
  172. package/dist/types/servicenow.types.d.ts +260 -0
  173. package/dist/types/servicenow.types.d.ts.map +1 -0
  174. package/dist/types/servicenow.types.js +3 -0
  175. package/dist/types/servicenow.types.js.map +1 -0
  176. package/dist/types/snow-flow.types.d.ts +114 -0
  177. package/dist/types/snow-flow.types.d.ts.map +1 -0
  178. package/dist/types/snow-flow.types.js +3 -0
  179. package/dist/types/snow-flow.types.js.map +1 -0
  180. package/dist/utils/action-type-cache.d.ts +66 -0
  181. package/dist/utils/action-type-cache.d.ts.map +1 -0
  182. package/dist/utils/action-type-cache.js +237 -0
  183. package/dist/utils/action-type-cache.js.map +1 -0
  184. package/dist/utils/agent-detector.d.ts +35 -0
  185. package/dist/utils/agent-detector.d.ts.map +1 -0
  186. package/dist/utils/agent-detector.js +353 -0
  187. package/dist/utils/agent-detector.js.map +1 -0
  188. package/dist/utils/flow-api-discovery.d.ts +151 -0
  189. package/dist/utils/flow-api-discovery.d.ts.map +1 -0
  190. package/dist/utils/flow-api-discovery.js +440 -0
  191. package/dist/utils/flow-api-discovery.js.map +1 -0
  192. package/dist/utils/flow-xml-generator.d.ts +41 -0
  193. package/dist/utils/flow-xml-generator.d.ts.map +1 -0
  194. package/dist/utils/flow-xml-generator.js +258 -0
  195. package/dist/utils/flow-xml-generator.js.map +1 -0
  196. package/dist/utils/logger.d.ts +13 -0
  197. package/dist/utils/logger.d.ts.map +1 -0
  198. package/dist/utils/logger.js +51 -0
  199. package/dist/utils/logger.js.map +1 -0
  200. package/dist/utils/mcp-auth-middleware.d.ts +58 -0
  201. package/dist/utils/mcp-auth-middleware.d.ts.map +1 -0
  202. package/dist/utils/mcp-auth-middleware.js +227 -0
  203. package/dist/utils/mcp-auth-middleware.js.map +1 -0
  204. package/dist/utils/mcp-config-manager.d.ts +126 -0
  205. package/dist/utils/mcp-config-manager.d.ts.map +1 -0
  206. package/dist/utils/mcp-config-manager.js +209 -0
  207. package/dist/utils/mcp-config-manager.js.map +1 -0
  208. package/dist/utils/mcp-server-manager.d.ts +91 -0
  209. package/dist/utils/mcp-server-manager.d.ts.map +1 -0
  210. package/dist/utils/mcp-server-manager.js +338 -0
  211. package/dist/utils/mcp-server-manager.js.map +1 -0
  212. package/dist/utils/scope-utils.d.ts +72 -0
  213. package/dist/utils/scope-utils.d.ts.map +1 -0
  214. package/dist/utils/scope-utils.js +386 -0
  215. package/dist/utils/scope-utils.js.map +1 -0
  216. package/dist/utils/servicenow-client.d.ts +233 -0
  217. package/dist/utils/servicenow-client.d.ts.map +1 -0
  218. package/dist/utils/servicenow-client.js +1465 -0
  219. package/dist/utils/servicenow-client.js.map +1 -0
  220. package/dist/utils/snow-oauth-old.d.ts +65 -0
  221. package/dist/utils/snow-oauth-old.d.ts.map +1 -0
  222. package/dist/utils/snow-oauth-old.js +345 -0
  223. package/dist/utils/snow-oauth-old.js.map +1 -0
  224. package/dist/utils/snow-oauth.d.ts +85 -0
  225. package/dist/utils/snow-oauth.d.ts.map +1 -0
  226. package/dist/utils/snow-oauth.js +512 -0
  227. package/dist/utils/snow-oauth.js.map +1 -0
  228. package/dist/utils/template-engine.d.ts +76 -0
  229. package/dist/utils/template-engine.d.ts.map +1 -0
  230. package/dist/utils/template-engine.js +391 -0
  231. package/dist/utils/template-engine.js.map +1 -0
  232. package/dist/version.d.ts +35 -0
  233. package/dist/version.d.ts.map +1 -0
  234. package/dist/version.js +72 -0
  235. package/dist/version.js.map +1 -0
  236. package/mcp-wrapper.sh +12 -0
  237. package/package.json +77 -0
  238. package/reports/swarm-auto-centralized-1752649029776.json +13 -0
  239. package/scripts/postinstall.js +30 -0
  240. 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"}
@@ -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');