snow-flow 3.0.8 → 3.0.10

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 (295) hide show
  1. package/claude-flow.bat +0 -0
  2. package/claude-flow.ps1 +0 -0
  3. package/dist/mcp/servicenow-automation-mcp.js +0 -0
  4. package/dist/mcp/servicenow-deployment-mcp.js +0 -0
  5. package/dist/mcp/servicenow-integration-mcp.js +0 -0
  6. package/dist/mcp/servicenow-mcp-server.js +0 -0
  7. package/dist/mcp/servicenow-operations-mcp.js +0 -0
  8. package/dist/mcp/servicenow-platform-development-mcp.js +0 -0
  9. package/dist/mcp/servicenow-progressive-indexer.js +0 -0
  10. package/dist/mcp/servicenow-reporting-analytics-mcp.js +133 -19
  11. package/dist/mcp/servicenow-security-compliance-mcp.js +0 -0
  12. package/dist/mcp/servicenow-update-set-mcp.js +0 -0
  13. package/dist/mcp/start-all-mcp-servers.js +0 -0
  14. package/dist/mcp/start-servicenow-mcp.js +0 -0
  15. package/dist/utils/snow-oauth.js +53 -16
  16. package/memory/agents/README.md +1 -1
  17. package/memory/claude-flow-data.json +1 -1
  18. package/memory/sessions/README.md +1 -1
  19. package/package.json +2 -2
  20. package/.mcp.json +0 -22
  21. package/claude-flow.config.json +0 -20
  22. package/dist/agents/app-creator.agent.d.ts +0 -55
  23. package/dist/agents/app-creator.agent.js +0 -1292
  24. package/dist/agents/base/base-snow-agent.d.ts +0 -75
  25. package/dist/agents/base/base-snow-agent.js +0 -169
  26. package/dist/agents/base-snow-agent.d.ts +0 -63
  27. package/dist/agents/base-snow-agent.js +0 -296
  28. package/dist/agents/coordinator.d.ts +0 -200
  29. package/dist/agents/coordinator.js +0 -777
  30. package/dist/agents/flow-builder-agent.d.ts +0 -18
  31. package/dist/agents/flow-builder-agent.js +0 -197
  32. package/dist/agents/queen-403-handler.d.ts +0 -47
  33. package/dist/agents/queen-403-handler.js +0 -175
  34. package/dist/agents/queen-agent-example.d.ts +0 -23
  35. package/dist/agents/queen-agent-example.js +0 -240
  36. package/dist/agents/queen-agent.test.d.ts +0 -6
  37. package/dist/agents/script-generator.agent.d.ts +0 -32
  38. package/dist/agents/script-generator.agent.js +0 -772
  39. package/dist/agents/script-writer-agent.d.ts +0 -22
  40. package/dist/agents/script-writer-agent.js +0 -695
  41. package/dist/agents/security-agent.d.ts +0 -23
  42. package/dist/agents/security-agent.js +0 -619
  43. package/dist/agents/specialists/automation-specialist.agent.d.ts +0 -44
  44. package/dist/agents/specialists/automation-specialist.agent.js +0 -204
  45. package/dist/agents/specialists/data-specialist.agent.d.ts +0 -165
  46. package/dist/agents/specialists/data-specialist.agent.js +0 -484
  47. package/dist/agents/specialists/integration-specialist.agent.d.ts +0 -227
  48. package/dist/agents/specialists/integration-specialist.agent.js +0 -725
  49. package/dist/agents/specialists/reporting-specialist.agent.d.ts +0 -54
  50. package/dist/agents/specialists/reporting-specialist.agent.js +0 -193
  51. package/dist/agents/specialists/security-specialist.agent.d.ts +0 -85
  52. package/dist/agents/specialists/security-specialist.agent.js +0 -309
  53. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts +0 -111
  54. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js +0 -383
  55. package/dist/agents/teams/base-team.d.ts +0 -72
  56. package/dist/agents/teams/base-team.js +0 -253
  57. package/dist/agents/teams/team-types.d.ts +0 -265
  58. package/dist/agents/teams/team-types.js +0 -3
  59. package/dist/agents/teams/widget/widget-architect.agent.d.ts +0 -61
  60. package/dist/agents/teams/widget/widget-architect.agent.js +0 -436
  61. package/dist/agents/teams/widget/widget-backend.agent.d.ts +0 -74
  62. package/dist/agents/teams/widget/widget-backend.agent.js +0 -1531
  63. package/dist/agents/teams/widget/widget-frontend.agent.d.ts +0 -67
  64. package/dist/agents/teams/widget/widget-frontend.agent.js +0 -1014
  65. package/dist/agents/teams/widget/widget-platform.agent.d.ts +0 -90
  66. package/dist/agents/teams/widget/widget-platform.agent.js +0 -1190
  67. package/dist/agents/teams/widget/widget-uiux.agent.d.ts +0 -107
  68. package/dist/agents/teams/widget/widget-uiux.agent.js +0 -1033
  69. package/dist/agents/test-agent.d.ts +0 -26
  70. package/dist/agents/test-agent.js +0 -734
  71. package/dist/agents/test-agents.d.ts +0 -7
  72. package/dist/agents/test-agents.js +0 -64
  73. package/dist/agents/ui-builder.agent.d.ts +0 -50
  74. package/dist/agents/ui-builder.agent.js +0 -1539
  75. package/dist/agents/widget-builder.agent.d.ts +0 -32
  76. package/dist/agents/widget-builder.agent.js +0 -439
  77. package/dist/agents/widget-creator-agent.d.ts +0 -18
  78. package/dist/agents/widget-creator-agent.js +0 -498
  79. package/dist/agents/workflow-designer.agent.d.ts +0 -31
  80. package/dist/agents/workflow-designer.agent.js +0 -583
  81. package/dist/api/error-handling.d.ts +0 -325
  82. package/dist/api/error-handling.js +0 -1488
  83. package/dist/api/flow-designer-api.d.ts +0 -167
  84. package/dist/api/flow-designer-api.js +0 -554
  85. package/dist/api/natural-language-mapper.d.ts +0 -124
  86. package/dist/api/natural-language-mapper.js +0 -501
  87. package/dist/api/performance-optimizer.d.ts +0 -240
  88. package/dist/api/performance-optimizer.js +0 -706
  89. package/dist/api/transaction-manager.d.ts +0 -189
  90. package/dist/api/transaction-manager.js +0 -576
  91. package/dist/assembly/team-assembler.d.ts +0 -140
  92. package/dist/assembly/team-assembler.js +0 -502
  93. package/dist/benchmark-performance.d.ts +0 -41
  94. package/dist/benchmark-performance.js +0 -230
  95. package/dist/cli/snow-flow-cli-integration.d.ts +0 -30
  96. package/dist/cli/snow-flow-cli-integration.js +0 -396
  97. package/dist/coordination/coordination-engine.d.ts +0 -41
  98. package/dist/coordination/coordination-engine.js +0 -324
  99. package/dist/coordination/coordination.test.d.ts +0 -6
  100. package/dist/coordination/example.d.ts +0 -31
  101. package/dist/coordination/example.js +0 -394
  102. package/dist/coordination/execution-patterns.d.ts +0 -43
  103. package/dist/coordination/execution-patterns.js +0 -507
  104. package/dist/coordination/factory.d.ts +0 -94
  105. package/dist/coordination/factory.js +0 -433
  106. package/dist/coordination/index.d.ts +0 -71
  107. package/dist/coordination/index.js +0 -135
  108. package/dist/coordination/progress-monitor.d.ts +0 -71
  109. package/dist/coordination/progress-monitor.js +0 -505
  110. package/dist/coordination/quality-gates.d.ts +0 -124
  111. package/dist/coordination/quality-gates.js +0 -577
  112. package/dist/coordination/shared-memory.d.ts +0 -39
  113. package/dist/coordination/shared-memory.js +0 -289
  114. package/dist/coordination/task-dependencies.d.ts +0 -50
  115. package/dist/coordination/task-dependencies.js +0 -407
  116. package/dist/coordination/team-coordinator.d.ts +0 -59
  117. package/dist/coordination/team-coordinator.js +0 -550
  118. package/dist/coordination/types.d.ts +0 -152
  119. package/dist/coordination/types.js +0 -3
  120. package/dist/mcp/mcp-wrapper.d.ts +0 -8
  121. package/dist/mcp/mcp-wrapper.js +0 -77
  122. package/dist/mcp/servicenow-flow-composer-enhanced.js +0 -396
  123. package/dist/mcp/servicenow-flow-composer-mcp.d.ts +0 -7
  124. package/dist/mcp/servicenow-flow-composer-mcp.js +0 -3103
  125. package/dist/mcp/servicenow-graph-memory-mcp.d.ts +0 -7
  126. package/dist/mcp/servicenow-intelligent-mcp.d.ts +0 -143
  127. package/dist/mcp/servicenow-intelligent-mcp.js +0 -4156
  128. package/dist/mcp/servicenow-xml-flow-mcp.d.ts +0 -53
  129. package/dist/mcp/servicenow-xml-flow-mcp.js +0 -1704
  130. package/dist/mcp/singleton-check.js +0 -31
  131. package/dist/mcp/test-simple-mcp.d.ts +0 -6
  132. package/dist/mcp/test-simple-mcp.js +0 -63
  133. package/dist/memory/hierarchical-memory-system.d.ts +0 -90
  134. package/dist/memory/hierarchical-memory-system.js +0 -400
  135. package/dist/memory/index.d.ts +0 -9
  136. package/dist/memory/index.js +0 -20
  137. package/dist/memory/mcp-integration-example.d.ts +0 -6
  138. package/dist/memory/mcp-integration-example.js +0 -281
  139. package/dist/memory/memory-client.d.ts +0 -199
  140. package/dist/memory/memory-client.js +0 -364
  141. package/dist/memory/memory-manager.d.ts +0 -29
  142. package/dist/memory/memory-manager.js +0 -280
  143. package/dist/memory/memory-operations.d.ts +0 -179
  144. package/dist/memory/memory-operations.js +0 -691
  145. package/dist/memory/memory-system.d.ts +0 -153
  146. package/dist/memory/memory-system.js +0 -651
  147. package/dist/memory/memory-test.d.ts +0 -6
  148. package/dist/memory/memory-test.js +0 -161
  149. package/dist/memory/snow-flow-memory-patterns.d.ts +0 -213
  150. package/dist/memory/snow-flow-memory-patterns.js +0 -200
  151. package/dist/memory/snow-memory.d.ts +0 -54
  152. package/dist/memory/snow-memory.js +0 -301
  153. package/dist/memory/swarm-memory.d.ts +0 -135
  154. package/dist/memory/swarm-memory.js +0 -378
  155. package/dist/optimization/flow-performance-optimizer.js +0 -723
  156. package/dist/orchestration/discovery/service-discovery.d.ts +0 -81
  157. package/dist/orchestration/discovery/service-discovery.js +0 -808
  158. package/dist/orchestration/distributed-orchestrator.d.ts +0 -131
  159. package/dist/orchestration/distributed-orchestrator.js +0 -712
  160. package/dist/orchestration/distribution/task-distribution-engine.d.ts +0 -53
  161. package/dist/orchestration/distribution/task-distribution-engine.js +0 -586
  162. package/dist/orchestration/flow-update-orchestrator.js +0 -648
  163. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts +0 -606
  164. package/dist/orchestration/interfaces/distributed-orchestration.interface.js +0 -65
  165. package/dist/orchestration/protocols/mcpx-protocol.d.ts +0 -71
  166. package/dist/orchestration/protocols/mcpx-protocol.js +0 -668
  167. package/dist/orchestration/state/distributed-state-manager.d.ts +0 -89
  168. package/dist/orchestration/state/distributed-state-manager.js +0 -716
  169. package/dist/orchestrator/flow-composer.d.ts +0 -105
  170. package/dist/orchestrator/flow-composer.js +0 -404
  171. package/dist/orchestrator/flow-pattern-templates.d.ts +0 -260
  172. package/dist/orchestrator/flow-pattern-templates.js +0 -908
  173. package/dist/orchestrator/flow-subflow-decision-engine.d.ts +0 -202
  174. package/dist/orchestrator/flow-subflow-decision-engine.js +0 -769
  175. package/dist/orchestrator/flow-validation-engine.d.ts +0 -169
  176. package/dist/orchestrator/flow-validation-engine.js +0 -913
  177. package/dist/orchestrator/snow-orchestrator.d.ts +0 -49
  178. package/dist/orchestrator/snow-orchestrator.js +0 -235
  179. package/dist/orchestrator/subflow-creation-handler.d.ts +0 -230
  180. package/dist/orchestrator/subflow-creation-handler.js +0 -791
  181. package/dist/patterns/adaptive-patterns.d.ts +0 -140
  182. package/dist/patterns/adaptive-patterns.js +0 -549
  183. package/dist/queen/advanced-integration-test.d.ts +0 -48
  184. package/dist/queen/advanced-integration-test.js +0 -473
  185. package/dist/queen/integration-example.d.ts +0 -82
  186. package/dist/queen/integration-example.js +0 -219
  187. package/dist/queen/integration-test.d.ts +0 -72
  188. package/dist/queen/integration-test.js +0 -563
  189. package/dist/queen/mock-mcp-client.d.ts +0 -71
  190. package/dist/queen/mock-mcp-client.js +0 -317
  191. package/dist/queen/run-integration-tests.d.ts +0 -9
  192. package/dist/queen/run-integration-tests.js +0 -27
  193. package/dist/sparc/coordinators/adaptive-coordinator.d.ts +0 -54
  194. package/dist/sparc/coordinators/adaptive-coordinator.js +0 -367
  195. package/dist/sparc/coordinators/team-coordinator.d.ts +0 -66
  196. package/dist/sparc/coordinators/team-coordinator.js +0 -402
  197. package/dist/sparc/modes/team-modes.d.ts +0 -33
  198. package/dist/sparc/modes/team-modes.js +0 -399
  199. package/dist/sparc/teams/application-team.d.ts +0 -73
  200. package/dist/sparc/teams/application-team.js +0 -463
  201. package/dist/sparc/teams/flow-team.d.ts +0 -67
  202. package/dist/sparc/teams/flow-team.js +0 -373
  203. package/dist/sparc/teams/widget-team.d.ts +0 -61
  204. package/dist/sparc/teams/widget-team.js +0 -280
  205. package/dist/specialists/app-specialists.d.ts +0 -93
  206. package/dist/specialists/app-specialists.js +0 -1639
  207. package/dist/specialists/base-specialist.d.ts +0 -19
  208. package/dist/specialists/base-specialist.js +0 -54
  209. package/dist/specialists/flow-specialists.d.ts +0 -113
  210. package/dist/specialists/flow-specialists.js +0 -1787
  211. package/dist/specialists/individual-specialists.d.ts +0 -67
  212. package/dist/specialists/individual-specialists.js +0 -632
  213. package/dist/specialists/widget-specialists.d.ts +0 -70
  214. package/dist/specialists/widget-specialists.js +0 -1264
  215. package/dist/src/utils/agent-detector.js +0 -655
  216. package/dist/teams/adaptive-team.d.ts +0 -81
  217. package/dist/teams/adaptive-team.js +0 -1153
  218. package/dist/teams/application-team.d.ts +0 -30
  219. package/dist/teams/application-team.js +0 -547
  220. package/dist/teams/base-team.d.ts +0 -55
  221. package/dist/teams/base-team.js +0 -243
  222. package/dist/teams/flow-team.d.ts +0 -28
  223. package/dist/teams/flow-team.js +0 -525
  224. package/dist/teams/widget-team.d.ts +0 -26
  225. package/dist/teams/widget-team.js +0 -459
  226. package/dist/templates/flow-template-system.js +0 -625
  227. package/dist/test-fetch-incidents.d.ts +0 -2
  228. package/dist/test-fetch-incidents.js +0 -84
  229. package/dist/test-incident-access.d.ts +0 -2
  230. package/dist/test-incident-access.js +0 -72
  231. package/dist/test-iphone-flow.js +0 -189
  232. package/dist/test-limit-problem.d.ts +0 -2
  233. package/dist/test-limit-problem.js +0 -60
  234. package/dist/test-ml-batch-fix.d.ts +0 -2
  235. package/dist/test-ml-batch-fix.js +0 -104
  236. package/dist/test-ml-batch.d.ts +0 -2
  237. package/dist/test-ml-batch.js +0 -87
  238. package/dist/test-ml-query.d.ts +0 -2
  239. package/dist/test-ml-query.js +0 -100
  240. package/dist/test-ml-training-fix.d.ts +0 -12
  241. package/dist/test-ml-training-fix.js +0 -113
  242. package/dist/test-ml-training.d.ts +0 -2
  243. package/dist/test-ml-training.js +0 -32
  244. package/dist/test-operations-query.d.ts +0 -2
  245. package/dist/test-operations-query.js +0 -84
  246. package/dist/test-performance-query.d.ts +0 -2
  247. package/dist/test-performance-query.js +0 -52
  248. package/dist/test-singleton-protection.d.ts +0 -8
  249. package/dist/test-singleton-protection.js +0 -110
  250. package/dist/test-smart-limits.d.ts +0 -13
  251. package/dist/test-smart-limits.js +0 -100
  252. package/dist/test-snow-query-incidents.d.ts +0 -2
  253. package/dist/test-snow-query-incidents.js +0 -66
  254. package/dist/test-universal-query.d.ts +0 -2
  255. package/dist/test-universal-query.js +0 -106
  256. package/dist/testing/flow-testing-automation.js +0 -641
  257. package/dist/utils/complete-flow-xml-generator.js +0 -1285
  258. package/dist/utils/file-storage-fallback.d.ts +0 -62
  259. package/dist/utils/file-storage-fallback.js +0 -289
  260. package/dist/utils/flow-api-discovery.d.ts +0 -151
  261. package/dist/utils/flow-api-discovery.js +0 -439
  262. package/dist/utils/flow-examples.js +0 -720
  263. package/dist/utils/flow-structure-builder.js +0 -677
  264. package/dist/utils/flow-xml-generator.d.ts +0 -41
  265. package/dist/utils/flow-xml-generator.js +0 -258
  266. package/dist/utils/improved-flow-xml-generator.js +0 -820
  267. package/dist/utils/mcp-process-manager.backup.d.ts +0 -58
  268. package/dist/utils/mcp-process-manager.backup.js +0 -220
  269. package/dist/utils/mcp-singleton-enforcer.d.ts +0 -36
  270. package/dist/utils/mcp-singleton-enforcer.js +0 -201
  271. package/dist/utils/mcp-timeout-fix.d.ts +0 -53
  272. package/dist/utils/mcp-timeout-fix.js +0 -221
  273. package/dist/utils/migrate-claude-flow.d.ts +0 -22
  274. package/dist/utils/migrate-claude-flow.js +0 -120
  275. package/dist/utils/scope-utils.d.ts +0 -72
  276. package/dist/utils/scope-utils.js +0 -386
  277. package/dist/utils/snow-oauth-old.d.ts +0 -65
  278. package/dist/utils/snow-oauth-old.js +0 -345
  279. package/dist/utils/xml-first-flow-generator.js +0 -513
  280. package/memory/servicenow_artifacts/000d9224c895221055906c7518aa2d3d.json +0 -30
  281. package/memory/servicenow_artifacts/0196b66173303010e46b4a2214f6a7a2.json +0 -36
  282. package/memory/servicenow_artifacts/125e5d1d837e2a102a7ea130ceaad397.json +0 -30
  283. package/memory/servicenow_artifacts/7637c1f2b7112210a5e5911cde11a972.json +0 -30
  284. package/memory/servicenow_artifacts/default_documentation_tables_1754056582292.json +0 -55
  285. package/memory/servicenow_artifacts/default_documentation_tables_1754057477189.json +0 -55
  286. package/memory/update-set-sessions/01f82af583faea102a7ea130ceaad3d4.json +0 -9
  287. package/memory/update-set-sessions/27718fb983faea102a7ea130ceaad34b.json +0 -9
  288. package/memory/update-set-sessions/412e9bf6833e22502a7ea130ceaad30a.json +0 -8
  289. package/memory/update-set-sessions/66fc5a79837aea102a7ea130ceaad3ab.json +0 -9
  290. package/memory/update-set-sessions/71a30ff5837eea102a7ea130ceaad37f.json +0 -9
  291. package/memory/update-set-sessions/74fba27983faea102a7ea130ceaad3bd.json +0 -9
  292. package/memory/update-set-sessions/a0b147b5837eea102a7ea130ceaad344.json +0 -58
  293. package/memory/update-set-sessions/b13f5eb983baea102a7ea130ceaad33e.json +0 -9
  294. package/reports/swarm-auto-centralized-1752649029776.json +0 -13
  295. package/src/memory/README.md +0 -240
@@ -1,498 +0,0 @@
1
- "use strict";
2
- /**
3
- * Widget Creator Agent
4
- * Specializes in creating ServiceNow Service Portal widgets
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.WidgetCreatorAgent = void 0;
8
- const base_agent_1 = require("./base-agent");
9
- class WidgetCreatorAgent extends base_agent_1.BaseAgent {
10
- constructor(config) {
11
- super({
12
- type: 'widget-creator',
13
- capabilities: [
14
- 'HTML template creation',
15
- 'CSS styling and responsive design',
16
- 'Client-side JavaScript',
17
- 'Server-side data processing',
18
- 'Chart.js integration',
19
- 'ServiceNow widget deployment',
20
- 'Angular.js directives',
21
- 'Bootstrap styling',
22
- 'Data visualization'
23
- ],
24
- mcpTools: [
25
- 'snow_deploy',
26
- 'snow_preview_widget',
27
- 'snow_widget_test',
28
- 'snow_catalog_item_search',
29
- 'snow_find_artifact'
30
- ],
31
- ...config
32
- });
33
- }
34
- async execute(instruction, context) {
35
- try {
36
- this.setStatus('working');
37
- await this.reportProgress('Starting widget creation', 0);
38
- // Analyze widget requirements from instruction
39
- const requirements = await this.analyzeWidgetRequirements(instruction);
40
- await this.reportProgress('Analyzed requirements', 20);
41
- // Check for existing similar widgets
42
- const existingWidgets = await this.checkExistingWidgets(requirements);
43
- if (existingWidgets.length > 0) {
44
- await this.reportProgress('Found existing widgets to reference', 30);
45
- }
46
- // Create widget components
47
- const template = await this.createHTMLTemplate(requirements);
48
- await this.reportProgress('Created HTML template', 40);
49
- const css = await this.createCSS(requirements);
50
- await this.reportProgress('Created CSS styling', 50);
51
- const clientScript = await this.createClientScript(requirements);
52
- await this.reportProgress('Created client script', 60);
53
- const serverScript = await this.createServerScript(requirements);
54
- await this.reportProgress('Created server script', 70);
55
- // Generate demo data if needed
56
- const demoData = requirements.needsDemoData ?
57
- await this.generateDemoData(requirements) : null;
58
- await this.reportProgress('Generated demo data', 80);
59
- // Create widget configuration
60
- const widgetConfig = {
61
- name: requirements.name,
62
- title: requirements.title || requirements.name,
63
- template,
64
- css,
65
- client_script: clientScript,
66
- server_script: serverScript,
67
- demo_data: demoData,
68
- description: requirements.description,
69
- category: requirements.category || 'custom'
70
- };
71
- // Create widget artifact
72
- const artifact = {
73
- type: 'widget',
74
- name: requirements.name,
75
- config: widgetConfig,
76
- dependencies: requirements.dependencies || []
77
- };
78
- // Store artifact for other agents
79
- await this.storeArtifact(artifact);
80
- await this.reportProgress('Widget artifact created and stored', 90);
81
- // Prepare deployment instructions
82
- const deploymentInstructions = this.prepareDeploymentInstructions(widgetConfig);
83
- await this.reportProgress('Widget creation completed', 100);
84
- this.setStatus('completed');
85
- await this.logActivity('widget_creation', true, {
86
- widgetName: requirements.name,
87
- features: requirements.features
88
- });
89
- return {
90
- success: true,
91
- artifacts: [artifact],
92
- message: `Widget "${requirements.title}" created successfully`,
93
- metadata: {
94
- deploymentInstructions,
95
- features: requirements.features,
96
- dependencies: requirements.dependencies
97
- }
98
- };
99
- }
100
- catch (error) {
101
- this.setStatus('failed');
102
- await this.logActivity('widget_creation', false, { error: error.message });
103
- return {
104
- success: false,
105
- error: error,
106
- message: `Failed to create widget: ${error.message}`
107
- };
108
- }
109
- }
110
- async analyzeWidgetRequirements(instruction) {
111
- const requirements = {
112
- name: '',
113
- title: '',
114
- description: instruction,
115
- features: [],
116
- dataSource: '',
117
- needsChart: false,
118
- needsTable: false,
119
- needsForm: false,
120
- needsDemoData: true,
121
- isResponsive: true,
122
- dependencies: [],
123
- category: 'custom'
124
- };
125
- // Extract widget name
126
- const nameMatch = instruction.match(/(?:create|build|make)\s+(?:a\s+)?([a-zA-Z0-9_\s]+)\s*(?:widget|component)/i);
127
- if (nameMatch) {
128
- requirements.name = nameMatch[1].trim().toLowerCase().replace(/\s+/g, '_');
129
- requirements.title = nameMatch[1].trim();
130
- }
131
- // Feature detection
132
- if (/chart|graph|visualization|analytics/i.test(instruction)) {
133
- requirements.needsChart = true;
134
- requirements.features.push('data-visualization');
135
- requirements.dependencies.push('Chart.js');
136
- }
137
- if (/table|list|grid|records/i.test(instruction)) {
138
- requirements.needsTable = true;
139
- requirements.features.push('data-table');
140
- }
141
- if (/form|input|submit|create/i.test(instruction)) {
142
- requirements.needsForm = true;
143
- requirements.features.push('form-input');
144
- }
145
- if (/incident/i.test(instruction)) {
146
- requirements.dataSource = 'incident';
147
- requirements.category = 'itsm';
148
- }
149
- else if (/request|catalog/i.test(instruction)) {
150
- requirements.dataSource = 'sc_request';
151
- requirements.category = 'service-catalog';
152
- }
153
- else if (/task/i.test(instruction)) {
154
- requirements.dataSource = 'task';
155
- requirements.category = 'task-management';
156
- }
157
- if (/real[\s-]?time|live|refresh/i.test(instruction)) {
158
- requirements.features.push('real-time-updates');
159
- }
160
- if (/mobile|responsive/i.test(instruction)) {
161
- requirements.features.push('mobile-optimized');
162
- }
163
- return requirements;
164
- }
165
- async checkExistingWidgets(requirements) {
166
- // This would use snow_find_artifact to check for existing widgets
167
- // For now, return empty array as we're implementing the agent structure
168
- return [];
169
- }
170
- async createHTMLTemplate(requirements) {
171
- let template = '<div class="widget-container">\n';
172
- // Add header
173
- template += ` <div class="widget-header">\n`;
174
- template += ` <h3>${requirements.title || 'Widget'}</h3>\n`;
175
- template += ` </div>\n`;
176
- template += ' <div class="widget-body">\n';
177
- // Add chart container if needed
178
- if (requirements.needsChart) {
179
- template += ' <div class="chart-container">\n';
180
- template += ' <canvas id="widgetChart" width="400" height="200"></canvas>\n';
181
- template += ' </div>\n';
182
- }
183
- // Add table if needed
184
- if (requirements.needsTable) {
185
- template += ' <div class="table-container">\n';
186
- template += ' <table class="table table-striped">\n';
187
- template += ' <thead>\n';
188
- template += ' <tr>\n';
189
- template += ' <th ng-repeat="col in data.columns">{{col.label}}</th>\n';
190
- template += ' </tr>\n';
191
- template += ' </thead>\n';
192
- template += ' <tbody>\n';
193
- template += ' <tr ng-repeat="row in data.rows">\n';
194
- template += ' <td ng-repeat="col in data.columns">{{row[col.field]}}</td>\n';
195
- template += ' </tr>\n';
196
- template += ' </tbody>\n';
197
- template += ' </table>\n';
198
- template += ' </div>\n';
199
- }
200
- // Add form if needed
201
- if (requirements.needsForm) {
202
- template += ' <form class="widget-form" ng-submit="submitForm()">\n';
203
- template += ' <div class="form-group">\n';
204
- template += ' <input type="text" class="form-control" ng-model="formData.input" placeholder="Enter value">\n';
205
- template += ' </div>\n';
206
- template += ' <button type="submit" class="btn btn-primary">Submit</button>\n';
207
- template += ' </form>\n';
208
- }
209
- template += ' </div>\n';
210
- template += '</div>';
211
- return template;
212
- }
213
- async createCSS(requirements) {
214
- let css = `/* ${requirements.title} Widget Styles */\n\n`;
215
- css += '.widget-container {\n';
216
- css += ' padding: 15px;\n';
217
- css += ' background-color: #fff;\n';
218
- css += ' border-radius: 4px;\n';
219
- css += ' box-shadow: 0 1px 3px rgba(0,0,0,0.12);\n';
220
- css += '}\n\n';
221
- css += '.widget-header {\n';
222
- css += ' margin-bottom: 20px;\n';
223
- css += ' padding-bottom: 10px;\n';
224
- css += ' border-bottom: 1px solid #e7e7e7;\n';
225
- css += '}\n\n';
226
- css += '.widget-header h3 {\n';
227
- css += ' margin: 0;\n';
228
- css += ' color: #333;\n';
229
- css += ' font-size: 18px;\n';
230
- css += ' font-weight: 600;\n';
231
- css += '}\n\n';
232
- if (requirements.needsChart) {
233
- css += '.chart-container {\n';
234
- css += ' position: relative;\n';
235
- css += ' height: 300px;\n';
236
- css += ' margin-bottom: 20px;\n';
237
- css += '}\n\n';
238
- }
239
- if (requirements.needsTable) {
240
- css += '.table-container {\n';
241
- css += ' overflow-x: auto;\n';
242
- css += ' margin-bottom: 20px;\n';
243
- css += '}\n\n';
244
- css += '.table {\n';
245
- css += ' width: 100%;\n';
246
- css += ' margin-bottom: 0;\n';
247
- css += '}\n\n';
248
- }
249
- if (requirements.isResponsive) {
250
- css += '/* Responsive styles */\n';
251
- css += '@media (max-width: 768px) {\n';
252
- css += ' .widget-container {\n';
253
- css += ' padding: 10px;\n';
254
- css += ' }\n';
255
- css += ' \n';
256
- css += ' .widget-header h3 {\n';
257
- css += ' font-size: 16px;\n';
258
- css += ' }\n';
259
- css += '}\n';
260
- }
261
- return css;
262
- }
263
- async createClientScript(requirements) {
264
- let script = 'function WidgetController($scope, $http, $timeout) {\n';
265
- script += ' var c = this;\n\n';
266
- // Initialize data
267
- script += ' // Initialize widget data\n';
268
- script += ' c.data = c.data || {};\n';
269
- script += ' $scope.data = c.data;\n\n';
270
- if (requirements.needsChart) {
271
- script += ' // Chart initialization\n';
272
- script += ' $timeout(function() {\n';
273
- script += ' if (c.data.chartData) {\n';
274
- script += ' initializeChart(c.data.chartData);\n';
275
- script += ' }\n';
276
- script += ' }, 100);\n\n';
277
- script += ' function initializeChart(chartData) {\n';
278
- script += ' var ctx = document.getElementById("widgetChart").getContext("2d");\n';
279
- script += ' new Chart(ctx, {\n';
280
- script += ' type: chartData.type || "bar",\n';
281
- script += ' data: chartData,\n';
282
- script += ' options: {\n';
283
- script += ' responsive: true,\n';
284
- script += ' maintainAspectRatio: false\n';
285
- script += ' }\n';
286
- script += ' });\n';
287
- script += ' }\n\n';
288
- }
289
- if (requirements.needsForm) {
290
- script += ' // Form submission\n';
291
- script += ' $scope.formData = {};\n';
292
- script += ' $scope.submitForm = function() {\n';
293
- script += ' c.server.get({\n';
294
- script += ' action: "submit",\n';
295
- script += ' data: $scope.formData\n';
296
- script += ' }).then(function(response) {\n';
297
- script += ' // Handle response\n';
298
- script += ' if (response.data.success) {\n';
299
- script += ' $scope.formData = {};\n';
300
- script += ' // Refresh data if needed\n';
301
- script += ' }\n';
302
- script += ' });\n';
303
- script += ' };\n\n';
304
- }
305
- if (requirements.features.includes('real-time-updates')) {
306
- script += ' // Real-time updates\n';
307
- script += ' var refreshInterval = $timeout(function refresh() {\n';
308
- script += ' c.server.get({ action: "refresh" }).then(function(response) {\n';
309
- script += ' c.data = response.data;\n';
310
- script += ' $scope.data = c.data;\n';
311
- script += ' refreshInterval = $timeout(refresh, 30000); // Refresh every 30 seconds\n';
312
- script += ' });\n';
313
- script += ' }, 30000);\n\n';
314
- script += ' $scope.$on("$destroy", function() {\n';
315
- script += ' if (refreshInterval) {\n';
316
- script += ' $timeout.cancel(refreshInterval);\n';
317
- script += ' }\n';
318
- script += ' });\n';
319
- }
320
- script += '}';
321
- return script;
322
- }
323
- async createServerScript(requirements) {
324
- let script = '(function() {\n';
325
- script += ' /* Server Script for ' + requirements.title + ' */\n\n';
326
- script += ' try {\n';
327
- // Handle different actions
328
- script += ' var action = input.action || "load";\n';
329
- script += ' gs.log("Widget action: " + action, "' + requirements.name + '");\n\n';
330
- script += ' if (action === "load") {\n';
331
- script += ' loadWidgetData();\n';
332
- script += ' } else if (action === "refresh") {\n';
333
- script += ' loadWidgetData();\n';
334
- script += ' } else if (action === "submit") {\n';
335
- script += ' handleFormSubmission();\n';
336
- script += ' }\n\n';
337
- // Load data function
338
- script += ' function loadWidgetData() {\n';
339
- script += ' try {\n';
340
- script += ' data.title = "' + requirements.title + '";\n';
341
- script += ' gs.log("Loading widget data for: " + data.title, "' + requirements.name + '");\n';
342
- if (requirements.dataSource) {
343
- script += ' \n // Query ' + requirements.dataSource + ' table\n';
344
- script += ' var gr = new GlideRecord("' + requirements.dataSource + '");\n';
345
- script += ' gr.addQuery("active", "true"); // ✅ FIXED: Use string instead of boolean\n';
346
- script += ' gr.orderByDesc("sys_created_on");\n';
347
- script += ' gr.setLimit(10);\n';
348
- script += ' gr.query();\n';
349
- script += ' \n var recordCount = gr.getRowCount();\n';
350
- script += ' gs.log("Found " + recordCount + " active records", "' + requirements.name + '");\n\n';
351
- if (requirements.needsTable) {
352
- script += ' // Prepare table data\n';
353
- script += ' data.columns = [\n';
354
- script += ' { field: "number", label: "Number" },\n';
355
- script += ' { field: "short_description", label: "Description" },\n';
356
- script += ' { field: "state", label: "State" },\n';
357
- script += ' { field: "caller", label: "Caller" }\n';
358
- script += ' ];\n';
359
- script += ' data.rows = [];\n\n';
360
- script += ' while (gr.next()) {\n';
361
- script += ' var row = {\n';
362
- script += ' sys_id: gr.getUniqueValue(),\n';
363
- script += ' number: gr.getValue("number") || "",\n';
364
- script += ' short_description: gr.getValue("short_description") || "",\n';
365
- script += ' state: gr.getDisplayValue("state") || "Unknown",\n';
366
- script += ' caller: ""\n';
367
- script += ' };\n\n';
368
- script += ' // ✅ FIXED: Safe caller info lookup with proper null checks\n';
369
- script += ' if (gr.caller_id && !gr.caller_id.nil()) {\n';
370
- script += ' try {\n';
371
- script += ' var callerGr = new GlideRecord("sys_user");\n';
372
- script += ' if (callerGr.get(gr.caller_id.toString())) {\n';
373
- script += ' // ✅ FIXED: Name field with fallback\n';
374
- script += ' var callerName = callerGr.getDisplayValue("name");\n';
375
- script += ' if (!callerName) {\n';
376
- script += ' var firstName = callerGr.getValue("first_name") || "";\n';
377
- script += ' var lastName = callerGr.getValue("last_name") || "";\n';
378
- script += ' callerName = (firstName + " " + lastName).trim() || "Unknown User";\n';
379
- script += ' }\n';
380
- script += ' row.caller = callerName;\n';
381
- script += ' } else {\n';
382
- script += ' row.caller = "User Not Found";\n';
383
- script += ' }\n';
384
- script += ' } catch (callerError) {\n';
385
- script += ' gs.warn("Error fetching caller info: " + callerError.message, "' + requirements.name + '");\n';
386
- script += ' row.caller = "Error Loading User";\n';
387
- script += ' }\n';
388
- script += ' } else {\n';
389
- script += ' row.caller = "No Caller";\n';
390
- script += ' }\n\n';
391
- script += ' data.rows.push(row);\n';
392
- script += ' }\n';
393
- script += ' \n gs.log("Processed " + data.rows.length + " table rows", "' + requirements.name + '");\n';
394
- }
395
- if (requirements.needsChart) {
396
- script += ' \n // Prepare chart data\n';
397
- script += ' var chartData = {\n';
398
- script += ' type: "bar",\n';
399
- script += ' labels: [],\n';
400
- script += ' datasets: [{\n';
401
- script += ' label: "' + requirements.dataSource + ' by State",\n';
402
- script += ' data: [],\n';
403
- script += ' backgroundColor: ["#428bca", "#5cb85c", "#d9534f", "#f0ad4e"]\n';
404
- script += ' }]\n';
405
- script += ' };\n\n';
406
- script += ' // Aggregate data for chart\n';
407
- script += ' var stateCount = {};\n';
408
- script += ' gr.rewind();\n';
409
- script += ' while (gr.next()) {\n';
410
- script += ' var state = gr.getDisplayValue("state") || "Unknown";\n';
411
- script += ' stateCount[state] = (stateCount[state] || 0) + 1;\n';
412
- script += ' }\n\n';
413
- script += ' for (var state in stateCount) {\n';
414
- script += ' chartData.labels.push(state);\n';
415
- script += ' chartData.datasets[0].data.push(stateCount[state]);\n';
416
- script += ' }\n';
417
- script += ' data.chartData = chartData;\n';
418
- script += ' gs.log("Chart prepared with " + chartData.labels.length + " categories", "' + requirements.name + '");\n';
419
- }
420
- }
421
- script += ' } catch (loadError) {\n';
422
- script += ' gs.error("Error loading widget data: " + loadError.message, "' + requirements.name + '");\n';
423
- script += ' data.error = "Error loading data: " + loadError.message;\n';
424
- script += ' data.success = false;\n';
425
- script += ' }\n';
426
- script += ' }\n\n';
427
- if (requirements.needsForm) {
428
- script += ' function handleFormSubmission() {\n';
429
- script += ' try {\n';
430
- script += ' var formData = input.data || {};\n';
431
- script += ' gs.log("Processing form submission", "' + requirements.name + '");\n';
432
- script += ' \n';
433
- script += ' // ✅ FIXED: Validate form data\n';
434
- script += ' if (!formData || Object.keys(formData).length === 0) {\n';
435
- script += ' throw new Error("No form data provided");\n';
436
- script += ' }\n';
437
- script += ' \n';
438
- script += ' // Process form submission\n';
439
- script += ' // Add your form processing logic here\n';
440
- script += ' \n';
441
- script += ' data.success = true;\n';
442
- script += ' data.message = "Form submitted successfully";\n';
443
- script += ' gs.log("Form submission successful", "' + requirements.name + '");\n';
444
- script += ' } catch (formError) {\n';
445
- script += ' gs.error("Error processing form: " + formError.message, "' + requirements.name + '");\n';
446
- script += ' data.success = false;\n';
447
- script += ' data.error = "Form submission failed: " + formError.message;\n';
448
- script += ' }\n';
449
- script += ' }\n';
450
- }
451
- script += ' } catch (error) {\n';
452
- script += ' gs.error("Critical widget error: " + error.message, "' + requirements.name + '");\n';
453
- script += ' data.error = "Widget error: " + error.message;\n';
454
- script += ' data.success = false;\n';
455
- script += ' }\n';
456
- script += '})();';
457
- return script;
458
- }
459
- async generateDemoData(requirements) {
460
- const demoData = {};
461
- if (requirements.needsTable) {
462
- demoData.rows = [
463
- { number: 'INC0010001', short_description: 'Network connectivity issue', state: 'Open' },
464
- { number: 'INC0010002', short_description: 'Software installation request', state: 'In Progress' },
465
- { number: 'INC0010003', short_description: 'Password reset', state: 'Resolved' }
466
- ];
467
- }
468
- if (requirements.needsChart) {
469
- demoData.chartData = {
470
- type: 'bar',
471
- labels: ['Open', 'In Progress', 'Resolved', 'Closed'],
472
- datasets: [{
473
- label: 'Records by State',
474
- data: [12, 8, 15, 5],
475
- backgroundColor: ['#428bca', '#5cb85c', '#f0ad4e', '#d9534f']
476
- }]
477
- };
478
- }
479
- return demoData;
480
- }
481
- prepareDeploymentInstructions(widgetConfig) {
482
- return {
483
- mcpTool: 'snow_deploy',
484
- parameters: {
485
- type: 'widget',
486
- config: widgetConfig
487
- },
488
- validationSteps: [
489
- 'Preview widget using snow_preview_widget',
490
- 'Test widget functionality with snow_widget_test',
491
- 'Verify responsive design on mobile devices',
492
- 'Check data binding and server script execution'
493
- ]
494
- };
495
- }
496
- }
497
- exports.WidgetCreatorAgent = WidgetCreatorAgent;
498
- //# sourceMappingURL=widget-creator-agent.js.map
@@ -1,31 +0,0 @@
1
- /**
2
- * Workflow Designer Agent for Flow Designer workflows
3
- */
4
- import { BaseServiceNowAgent } from '../core/base-agent.js';
5
- import { AgentTask, AgentResult, ServiceNowConfig } from '../types/servicenow.types.js';
6
- export declare class WorkflowDesignerAgent extends BaseServiceNowAgent {
7
- constructor(config: ServiceNowConfig);
8
- execute(task: AgentTask): Promise<AgentResult>;
9
- private createWorkflow;
10
- private addWorkflowComponents;
11
- private generateFlowFromRequirements;
12
- private optimizeWorkflow;
13
- private createDefaultTrigger;
14
- private createWorkflowAction;
15
- private createWorkflowCondition;
16
- private generateFlowDesignerJSON;
17
- private getTriggerConfiguration;
18
- private generateStages;
19
- private generateConnections;
20
- private generateWorkflowDocumentation;
21
- private describeTrigger;
22
- private analyzeRequirements;
23
- private extractConditions;
24
- private extractTable;
25
- private generateTestScenarios;
26
- private generateDetailedDocumentation;
27
- private performOptimization;
28
- private applyOptimizations;
29
- private sanitizeName;
30
- }
31
- //# sourceMappingURL=workflow-designer.agent.d.ts.map