snow-flow 3.0.9 → 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 (294) 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/memory/agents/README.md +1 -1
  16. package/memory/claude-flow-data.json +1 -1
  17. package/memory/sessions/README.md +1 -1
  18. package/package.json +2 -2
  19. package/.mcp.json +0 -22
  20. package/claude-flow.config.json +0 -20
  21. package/dist/agents/app-creator.agent.d.ts +0 -55
  22. package/dist/agents/app-creator.agent.js +0 -1292
  23. package/dist/agents/base/base-snow-agent.d.ts +0 -75
  24. package/dist/agents/base/base-snow-agent.js +0 -169
  25. package/dist/agents/base-snow-agent.d.ts +0 -63
  26. package/dist/agents/base-snow-agent.js +0 -296
  27. package/dist/agents/coordinator.d.ts +0 -200
  28. package/dist/agents/coordinator.js +0 -777
  29. package/dist/agents/flow-builder-agent.d.ts +0 -18
  30. package/dist/agents/flow-builder-agent.js +0 -197
  31. package/dist/agents/queen-403-handler.d.ts +0 -47
  32. package/dist/agents/queen-403-handler.js +0 -175
  33. package/dist/agents/queen-agent-example.d.ts +0 -23
  34. package/dist/agents/queen-agent-example.js +0 -240
  35. package/dist/agents/queen-agent.test.d.ts +0 -6
  36. package/dist/agents/script-generator.agent.d.ts +0 -32
  37. package/dist/agents/script-generator.agent.js +0 -772
  38. package/dist/agents/script-writer-agent.d.ts +0 -22
  39. package/dist/agents/script-writer-agent.js +0 -695
  40. package/dist/agents/security-agent.d.ts +0 -23
  41. package/dist/agents/security-agent.js +0 -619
  42. package/dist/agents/specialists/automation-specialist.agent.d.ts +0 -44
  43. package/dist/agents/specialists/automation-specialist.agent.js +0 -204
  44. package/dist/agents/specialists/data-specialist.agent.d.ts +0 -165
  45. package/dist/agents/specialists/data-specialist.agent.js +0 -484
  46. package/dist/agents/specialists/integration-specialist.agent.d.ts +0 -227
  47. package/dist/agents/specialists/integration-specialist.agent.js +0 -725
  48. package/dist/agents/specialists/reporting-specialist.agent.d.ts +0 -54
  49. package/dist/agents/specialists/reporting-specialist.agent.js +0 -193
  50. package/dist/agents/specialists/security-specialist.agent.d.ts +0 -85
  51. package/dist/agents/specialists/security-specialist.agent.js +0 -309
  52. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts +0 -111
  53. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js +0 -383
  54. package/dist/agents/teams/base-team.d.ts +0 -72
  55. package/dist/agents/teams/base-team.js +0 -253
  56. package/dist/agents/teams/team-types.d.ts +0 -265
  57. package/dist/agents/teams/team-types.js +0 -3
  58. package/dist/agents/teams/widget/widget-architect.agent.d.ts +0 -61
  59. package/dist/agents/teams/widget/widget-architect.agent.js +0 -436
  60. package/dist/agents/teams/widget/widget-backend.agent.d.ts +0 -74
  61. package/dist/agents/teams/widget/widget-backend.agent.js +0 -1531
  62. package/dist/agents/teams/widget/widget-frontend.agent.d.ts +0 -67
  63. package/dist/agents/teams/widget/widget-frontend.agent.js +0 -1014
  64. package/dist/agents/teams/widget/widget-platform.agent.d.ts +0 -90
  65. package/dist/agents/teams/widget/widget-platform.agent.js +0 -1190
  66. package/dist/agents/teams/widget/widget-uiux.agent.d.ts +0 -107
  67. package/dist/agents/teams/widget/widget-uiux.agent.js +0 -1033
  68. package/dist/agents/test-agent.d.ts +0 -26
  69. package/dist/agents/test-agent.js +0 -734
  70. package/dist/agents/test-agents.d.ts +0 -7
  71. package/dist/agents/test-agents.js +0 -64
  72. package/dist/agents/ui-builder.agent.d.ts +0 -50
  73. package/dist/agents/ui-builder.agent.js +0 -1539
  74. package/dist/agents/widget-builder.agent.d.ts +0 -32
  75. package/dist/agents/widget-builder.agent.js +0 -439
  76. package/dist/agents/widget-creator-agent.d.ts +0 -18
  77. package/dist/agents/widget-creator-agent.js +0 -498
  78. package/dist/agents/workflow-designer.agent.d.ts +0 -31
  79. package/dist/agents/workflow-designer.agent.js +0 -583
  80. package/dist/api/error-handling.d.ts +0 -325
  81. package/dist/api/error-handling.js +0 -1488
  82. package/dist/api/flow-designer-api.d.ts +0 -167
  83. package/dist/api/flow-designer-api.js +0 -554
  84. package/dist/api/natural-language-mapper.d.ts +0 -124
  85. package/dist/api/natural-language-mapper.js +0 -501
  86. package/dist/api/performance-optimizer.d.ts +0 -240
  87. package/dist/api/performance-optimizer.js +0 -706
  88. package/dist/api/transaction-manager.d.ts +0 -189
  89. package/dist/api/transaction-manager.js +0 -576
  90. package/dist/assembly/team-assembler.d.ts +0 -140
  91. package/dist/assembly/team-assembler.js +0 -502
  92. package/dist/benchmark-performance.d.ts +0 -41
  93. package/dist/benchmark-performance.js +0 -230
  94. package/dist/cli/snow-flow-cli-integration.d.ts +0 -30
  95. package/dist/cli/snow-flow-cli-integration.js +0 -396
  96. package/dist/coordination/coordination-engine.d.ts +0 -41
  97. package/dist/coordination/coordination-engine.js +0 -324
  98. package/dist/coordination/coordination.test.d.ts +0 -6
  99. package/dist/coordination/example.d.ts +0 -31
  100. package/dist/coordination/example.js +0 -394
  101. package/dist/coordination/execution-patterns.d.ts +0 -43
  102. package/dist/coordination/execution-patterns.js +0 -507
  103. package/dist/coordination/factory.d.ts +0 -94
  104. package/dist/coordination/factory.js +0 -433
  105. package/dist/coordination/index.d.ts +0 -71
  106. package/dist/coordination/index.js +0 -135
  107. package/dist/coordination/progress-monitor.d.ts +0 -71
  108. package/dist/coordination/progress-monitor.js +0 -505
  109. package/dist/coordination/quality-gates.d.ts +0 -124
  110. package/dist/coordination/quality-gates.js +0 -577
  111. package/dist/coordination/shared-memory.d.ts +0 -39
  112. package/dist/coordination/shared-memory.js +0 -289
  113. package/dist/coordination/task-dependencies.d.ts +0 -50
  114. package/dist/coordination/task-dependencies.js +0 -407
  115. package/dist/coordination/team-coordinator.d.ts +0 -59
  116. package/dist/coordination/team-coordinator.js +0 -550
  117. package/dist/coordination/types.d.ts +0 -152
  118. package/dist/coordination/types.js +0 -3
  119. package/dist/mcp/mcp-wrapper.d.ts +0 -8
  120. package/dist/mcp/mcp-wrapper.js +0 -77
  121. package/dist/mcp/servicenow-flow-composer-enhanced.js +0 -396
  122. package/dist/mcp/servicenow-flow-composer-mcp.d.ts +0 -7
  123. package/dist/mcp/servicenow-flow-composer-mcp.js +0 -3103
  124. package/dist/mcp/servicenow-graph-memory-mcp.d.ts +0 -7
  125. package/dist/mcp/servicenow-intelligent-mcp.d.ts +0 -143
  126. package/dist/mcp/servicenow-intelligent-mcp.js +0 -4156
  127. package/dist/mcp/servicenow-xml-flow-mcp.d.ts +0 -53
  128. package/dist/mcp/servicenow-xml-flow-mcp.js +0 -1704
  129. package/dist/mcp/singleton-check.js +0 -31
  130. package/dist/mcp/test-simple-mcp.d.ts +0 -6
  131. package/dist/mcp/test-simple-mcp.js +0 -63
  132. package/dist/memory/hierarchical-memory-system.d.ts +0 -90
  133. package/dist/memory/hierarchical-memory-system.js +0 -400
  134. package/dist/memory/index.d.ts +0 -9
  135. package/dist/memory/index.js +0 -20
  136. package/dist/memory/mcp-integration-example.d.ts +0 -6
  137. package/dist/memory/mcp-integration-example.js +0 -281
  138. package/dist/memory/memory-client.d.ts +0 -199
  139. package/dist/memory/memory-client.js +0 -364
  140. package/dist/memory/memory-manager.d.ts +0 -29
  141. package/dist/memory/memory-manager.js +0 -280
  142. package/dist/memory/memory-operations.d.ts +0 -179
  143. package/dist/memory/memory-operations.js +0 -691
  144. package/dist/memory/memory-system.d.ts +0 -153
  145. package/dist/memory/memory-system.js +0 -651
  146. package/dist/memory/memory-test.d.ts +0 -6
  147. package/dist/memory/memory-test.js +0 -161
  148. package/dist/memory/snow-flow-memory-patterns.d.ts +0 -213
  149. package/dist/memory/snow-flow-memory-patterns.js +0 -200
  150. package/dist/memory/snow-memory.d.ts +0 -54
  151. package/dist/memory/snow-memory.js +0 -301
  152. package/dist/memory/swarm-memory.d.ts +0 -135
  153. package/dist/memory/swarm-memory.js +0 -378
  154. package/dist/optimization/flow-performance-optimizer.js +0 -723
  155. package/dist/orchestration/discovery/service-discovery.d.ts +0 -81
  156. package/dist/orchestration/discovery/service-discovery.js +0 -808
  157. package/dist/orchestration/distributed-orchestrator.d.ts +0 -131
  158. package/dist/orchestration/distributed-orchestrator.js +0 -712
  159. package/dist/orchestration/distribution/task-distribution-engine.d.ts +0 -53
  160. package/dist/orchestration/distribution/task-distribution-engine.js +0 -586
  161. package/dist/orchestration/flow-update-orchestrator.js +0 -648
  162. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts +0 -606
  163. package/dist/orchestration/interfaces/distributed-orchestration.interface.js +0 -65
  164. package/dist/orchestration/protocols/mcpx-protocol.d.ts +0 -71
  165. package/dist/orchestration/protocols/mcpx-protocol.js +0 -668
  166. package/dist/orchestration/state/distributed-state-manager.d.ts +0 -89
  167. package/dist/orchestration/state/distributed-state-manager.js +0 -716
  168. package/dist/orchestrator/flow-composer.d.ts +0 -105
  169. package/dist/orchestrator/flow-composer.js +0 -404
  170. package/dist/orchestrator/flow-pattern-templates.d.ts +0 -260
  171. package/dist/orchestrator/flow-pattern-templates.js +0 -908
  172. package/dist/orchestrator/flow-subflow-decision-engine.d.ts +0 -202
  173. package/dist/orchestrator/flow-subflow-decision-engine.js +0 -769
  174. package/dist/orchestrator/flow-validation-engine.d.ts +0 -169
  175. package/dist/orchestrator/flow-validation-engine.js +0 -913
  176. package/dist/orchestrator/snow-orchestrator.d.ts +0 -49
  177. package/dist/orchestrator/snow-orchestrator.js +0 -235
  178. package/dist/orchestrator/subflow-creation-handler.d.ts +0 -230
  179. package/dist/orchestrator/subflow-creation-handler.js +0 -791
  180. package/dist/patterns/adaptive-patterns.d.ts +0 -140
  181. package/dist/patterns/adaptive-patterns.js +0 -549
  182. package/dist/queen/advanced-integration-test.d.ts +0 -48
  183. package/dist/queen/advanced-integration-test.js +0 -473
  184. package/dist/queen/integration-example.d.ts +0 -82
  185. package/dist/queen/integration-example.js +0 -219
  186. package/dist/queen/integration-test.d.ts +0 -72
  187. package/dist/queen/integration-test.js +0 -563
  188. package/dist/queen/mock-mcp-client.d.ts +0 -71
  189. package/dist/queen/mock-mcp-client.js +0 -317
  190. package/dist/queen/run-integration-tests.d.ts +0 -9
  191. package/dist/queen/run-integration-tests.js +0 -27
  192. package/dist/sparc/coordinators/adaptive-coordinator.d.ts +0 -54
  193. package/dist/sparc/coordinators/adaptive-coordinator.js +0 -367
  194. package/dist/sparc/coordinators/team-coordinator.d.ts +0 -66
  195. package/dist/sparc/coordinators/team-coordinator.js +0 -402
  196. package/dist/sparc/modes/team-modes.d.ts +0 -33
  197. package/dist/sparc/modes/team-modes.js +0 -399
  198. package/dist/sparc/teams/application-team.d.ts +0 -73
  199. package/dist/sparc/teams/application-team.js +0 -463
  200. package/dist/sparc/teams/flow-team.d.ts +0 -67
  201. package/dist/sparc/teams/flow-team.js +0 -373
  202. package/dist/sparc/teams/widget-team.d.ts +0 -61
  203. package/dist/sparc/teams/widget-team.js +0 -280
  204. package/dist/specialists/app-specialists.d.ts +0 -93
  205. package/dist/specialists/app-specialists.js +0 -1639
  206. package/dist/specialists/base-specialist.d.ts +0 -19
  207. package/dist/specialists/base-specialist.js +0 -54
  208. package/dist/specialists/flow-specialists.d.ts +0 -113
  209. package/dist/specialists/flow-specialists.js +0 -1787
  210. package/dist/specialists/individual-specialists.d.ts +0 -67
  211. package/dist/specialists/individual-specialists.js +0 -632
  212. package/dist/specialists/widget-specialists.d.ts +0 -70
  213. package/dist/specialists/widget-specialists.js +0 -1264
  214. package/dist/src/utils/agent-detector.js +0 -655
  215. package/dist/teams/adaptive-team.d.ts +0 -81
  216. package/dist/teams/adaptive-team.js +0 -1153
  217. package/dist/teams/application-team.d.ts +0 -30
  218. package/dist/teams/application-team.js +0 -547
  219. package/dist/teams/base-team.d.ts +0 -55
  220. package/dist/teams/base-team.js +0 -243
  221. package/dist/teams/flow-team.d.ts +0 -28
  222. package/dist/teams/flow-team.js +0 -525
  223. package/dist/teams/widget-team.d.ts +0 -26
  224. package/dist/teams/widget-team.js +0 -459
  225. package/dist/templates/flow-template-system.js +0 -625
  226. package/dist/test-fetch-incidents.d.ts +0 -2
  227. package/dist/test-fetch-incidents.js +0 -84
  228. package/dist/test-incident-access.d.ts +0 -2
  229. package/dist/test-incident-access.js +0 -72
  230. package/dist/test-iphone-flow.js +0 -189
  231. package/dist/test-limit-problem.d.ts +0 -2
  232. package/dist/test-limit-problem.js +0 -60
  233. package/dist/test-ml-batch-fix.d.ts +0 -2
  234. package/dist/test-ml-batch-fix.js +0 -104
  235. package/dist/test-ml-batch.d.ts +0 -2
  236. package/dist/test-ml-batch.js +0 -87
  237. package/dist/test-ml-query.d.ts +0 -2
  238. package/dist/test-ml-query.js +0 -100
  239. package/dist/test-ml-training-fix.d.ts +0 -12
  240. package/dist/test-ml-training-fix.js +0 -113
  241. package/dist/test-ml-training.d.ts +0 -2
  242. package/dist/test-ml-training.js +0 -32
  243. package/dist/test-operations-query.d.ts +0 -2
  244. package/dist/test-operations-query.js +0 -84
  245. package/dist/test-performance-query.d.ts +0 -2
  246. package/dist/test-performance-query.js +0 -52
  247. package/dist/test-singleton-protection.d.ts +0 -8
  248. package/dist/test-singleton-protection.js +0 -110
  249. package/dist/test-smart-limits.d.ts +0 -13
  250. package/dist/test-smart-limits.js +0 -100
  251. package/dist/test-snow-query-incidents.d.ts +0 -2
  252. package/dist/test-snow-query-incidents.js +0 -66
  253. package/dist/test-universal-query.d.ts +0 -2
  254. package/dist/test-universal-query.js +0 -106
  255. package/dist/testing/flow-testing-automation.js +0 -641
  256. package/dist/utils/complete-flow-xml-generator.js +0 -1285
  257. package/dist/utils/file-storage-fallback.d.ts +0 -62
  258. package/dist/utils/file-storage-fallback.js +0 -289
  259. package/dist/utils/flow-api-discovery.d.ts +0 -151
  260. package/dist/utils/flow-api-discovery.js +0 -439
  261. package/dist/utils/flow-examples.js +0 -720
  262. package/dist/utils/flow-structure-builder.js +0 -677
  263. package/dist/utils/flow-xml-generator.d.ts +0 -41
  264. package/dist/utils/flow-xml-generator.js +0 -258
  265. package/dist/utils/improved-flow-xml-generator.js +0 -820
  266. package/dist/utils/mcp-process-manager.backup.d.ts +0 -58
  267. package/dist/utils/mcp-process-manager.backup.js +0 -220
  268. package/dist/utils/mcp-singleton-enforcer.d.ts +0 -36
  269. package/dist/utils/mcp-singleton-enforcer.js +0 -201
  270. package/dist/utils/mcp-timeout-fix.d.ts +0 -53
  271. package/dist/utils/mcp-timeout-fix.js +0 -221
  272. package/dist/utils/migrate-claude-flow.d.ts +0 -22
  273. package/dist/utils/migrate-claude-flow.js +0 -120
  274. package/dist/utils/scope-utils.d.ts +0 -72
  275. package/dist/utils/scope-utils.js +0 -386
  276. package/dist/utils/snow-oauth-old.d.ts +0 -65
  277. package/dist/utils/snow-oauth-old.js +0 -345
  278. package/dist/utils/xml-first-flow-generator.js +0 -513
  279. package/memory/servicenow_artifacts/000d9224c895221055906c7518aa2d3d.json +0 -30
  280. package/memory/servicenow_artifacts/0196b66173303010e46b4a2214f6a7a2.json +0 -36
  281. package/memory/servicenow_artifacts/125e5d1d837e2a102a7ea130ceaad397.json +0 -30
  282. package/memory/servicenow_artifacts/7637c1f2b7112210a5e5911cde11a972.json +0 -30
  283. package/memory/servicenow_artifacts/default_documentation_tables_1754056582292.json +0 -55
  284. package/memory/servicenow_artifacts/default_documentation_tables_1754057477189.json +0 -55
  285. package/memory/update-set-sessions/01f82af583faea102a7ea130ceaad3d4.json +0 -9
  286. package/memory/update-set-sessions/27718fb983faea102a7ea130ceaad34b.json +0 -9
  287. package/memory/update-set-sessions/412e9bf6833e22502a7ea130ceaad30a.json +0 -8
  288. package/memory/update-set-sessions/66fc5a79837aea102a7ea130ceaad3ab.json +0 -9
  289. package/memory/update-set-sessions/71a30ff5837eea102a7ea130ceaad37f.json +0 -9
  290. package/memory/update-set-sessions/74fba27983faea102a7ea130ceaad3bd.json +0 -9
  291. package/memory/update-set-sessions/a0b147b5837eea102a7ea130ceaad344.json +0 -58
  292. package/memory/update-set-sessions/b13f5eb983baea102a7ea130ceaad33e.json +0 -9
  293. package/reports/swarm-auto-centralized-1752649029776.json +0 -13
  294. 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