snow-flow 1.4.49 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/.claude/helpers/github-setup.sh +28 -0
  2. package/.claude/helpers/quick-start.sh +19 -0
  3. package/.claude/helpers/setup-mcp.sh +18 -0
  4. package/.claude/settings.local.json +33 -0
  5. package/.claude-flow/metrics/system-metrics.json +1992 -0
  6. package/.env.example +21 -0
  7. package/.roo/README.md +402 -0
  8. package/.roo/mcp-list.txt +257 -0
  9. package/.roo/mcp.json +32 -0
  10. package/.roo/workflows/basic-tdd.json +32 -0
  11. package/.roomodes +201 -0
  12. package/README.md +114 -628
  13. package/activate-mcp.sh +15 -0
  14. package/dist/cli.js.bak +2052 -0
  15. package/manual-register-mcp.js +134 -0
  16. package/mcp-wrapper.sh +12 -0
  17. package/package.json +2 -2
  18. package/scripts/create-env.js +6 -1
  19. package/scripts/reset-mcp-servers.js +246 -0
  20. package/scripts/update-version.js +31 -0
  21. package/src/agents/README.md +192 -0
  22. package/src/agents/base-agent.ts +251 -0
  23. package/src/agents/coordinator.ts +971 -0
  24. package/src/agents/index.ts +18 -0
  25. package/src/agents/queen-403-handler.ts +230 -0
  26. package/src/agents/queen-agent.ts +1399 -0
  27. package/src/agents/script-writer-agent.ts +769 -0
  28. package/src/agents/security-agent.ts +726 -0
  29. package/src/agents/widget-creator-agent.ts +568 -0
  30. package/src/api/error-handling.ts +1758 -0
  31. package/src/api/natural-language-mapper.ts +630 -0
  32. package/src/api/performance-optimizer.ts +891 -0
  33. package/src/api/transaction-manager.ts +754 -0
  34. package/src/cli/deploy-artifact.ts +304 -0
  35. package/src/cli/snow-flow-cli-integration.ts +434 -0
  36. package/src/cli.ts +4455 -0
  37. package/src/cli.ts.bak +5616 -0
  38. package/src/compliance/advanced-compliance-system.ts +1268 -0
  39. package/src/compliance/index.ts +19 -0
  40. package/src/config/snow-flow-config.ts +1019 -0
  41. package/src/documentation/index.ts +16 -0
  42. package/src/documentation/self-documenting-system.ts +1421 -0
  43. package/src/dynamic-version.ts +44 -0
  44. package/src/healing/index.ts +20 -0
  45. package/src/healing/self-healing-system.ts +1435 -0
  46. package/src/health/README.md +161 -0
  47. package/src/health/system-health.ts +995 -0
  48. package/src/index.ts +60 -0
  49. package/src/intelligence/acl-analyzer.ts +377 -0
  50. package/src/intelligence/auto-resolution-engine.ts +643 -0
  51. package/src/intelligence/gap-analysis-engine.ts +488 -0
  52. package/src/intelligence/manual-instructions-generator.ts +744 -0
  53. package/src/intelligence/mcp-coverage-analyzer.ts +708 -0
  54. package/src/intelligence/multi-pass-requirements-analyzer.ts +603 -0
  55. package/src/intelligence/performance-recommendations-engine.ts +1223 -0
  56. package/src/intelligence/requirements-analyzer.ts +1148 -0
  57. package/src/intelligence/task-analyzer.ts +628 -0
  58. package/src/managers/scope-manager.ts +555 -0
  59. package/src/mcp/advanced/servicenow-advanced-features-mcp.ts +16110 -0
  60. package/src/mcp/base-mcp-server.ts +660 -0
  61. package/src/mcp/http-transport-wrapper.ts +426 -0
  62. package/src/mcp/service-discovery-client.ts +312 -0
  63. package/src/mcp/servicenow-automation-mcp-refactored.ts +678 -0
  64. package/src/mcp/servicenow-automation-mcp.ts +838 -0
  65. package/src/mcp/servicenow-deployment-mcp-refactored.ts +1292 -0
  66. package/src/mcp/servicenow-deployment-mcp.ts +7244 -0
  67. package/src/mcp/servicenow-graph-memory-mcp-refactored.ts +721 -0
  68. package/src/mcp/servicenow-graph-memory-mcp.ts +832 -0
  69. package/src/mcp/servicenow-integration-mcp-refactored.ts +655 -0
  70. package/src/mcp/servicenow-integration-mcp.ts +819 -0
  71. package/src/mcp/servicenow-intelligent-mcp-refactored.ts +977 -0
  72. package/src/mcp/servicenow-intelligent-mcp.ts +4638 -0
  73. package/src/mcp/servicenow-mcp-server.ts +728 -0
  74. package/src/mcp/servicenow-memory-mcp.ts +474 -0
  75. package/src/mcp/servicenow-operations-mcp-refactored.ts +1995 -0
  76. package/src/mcp/servicenow-operations-mcp.ts +3384 -0
  77. package/src/mcp/servicenow-platform-development-mcp-refactored.ts +611 -0
  78. package/src/mcp/servicenow-platform-development-mcp.ts +970 -0
  79. package/src/mcp/servicenow-progressive-indexer.ts +370 -0
  80. package/src/mcp/servicenow-reporting-analytics-mcp-refactored.ts +695 -0
  81. package/src/mcp/servicenow-reporting-analytics-mcp.ts +1123 -0
  82. package/src/mcp/servicenow-security-compliance-mcp-refactored.ts +642 -0
  83. package/src/mcp/servicenow-security-compliance-mcp.ts +1157 -0
  84. package/src/mcp/servicenow-update-set-mcp-refactored.ts +751 -0
  85. package/src/mcp/servicenow-update-set-mcp.ts +811 -0
  86. package/src/mcp/shared/agent-context-provider.ts +365 -0
  87. package/src/mcp/shared/base-mcp-server.ts +2463 -0
  88. package/src/mcp/shared/mcp-memory-manager.ts +540 -0
  89. package/src/mcp/shared/mcp-resource-manager.ts +367 -0
  90. package/src/mcp/snow-flow-mcp.ts +911 -0
  91. package/src/mcp/start-all-mcp-servers.ts +102 -0
  92. package/src/mcp/start-servicenow-mcp.ts +67 -0
  93. package/src/monitoring/enhanced-monitoring-system.ts +1345 -0
  94. package/src/monitoring/performance-tracker.ts +777 -0
  95. package/src/optimization/cost-optimization-engine.ts +1125 -0
  96. package/src/optimization/index.ts +10 -0
  97. package/src/queen/README.md +403 -0
  98. package/src/queen/agent-factory.ts +574 -0
  99. package/src/queen/index.ts +94 -0
  100. package/src/queen/mcp-execution-bridge.ts +681 -0
  101. package/src/queen/neural-learning.ts +319 -0
  102. package/src/queen/parallel-agent-engine.ts +848 -0
  103. package/src/queen/queen-memory-system.ts +490 -0
  104. package/src/queen/queen-memory.ts +456 -0
  105. package/src/queen/servicenow-queen.ts +1029 -0
  106. package/src/queen/types.ts +87 -0
  107. package/src/rollback/smart-rollback-system.ts +866 -0
  108. package/src/schemas/deployment.schema.json +58 -0
  109. package/src/schemas/flow.schema.json +79 -0
  110. package/src/schemas/widget.schema.json +72 -0
  111. package/src/snow-flow-system.ts +541 -0
  112. package/src/sparc/sparc-help.ts +49 -0
  113. package/src/sparc/team-sparc.ts +88 -0
  114. package/src/strategies/global-scope-strategy.ts +736 -0
  115. package/src/templates/base/application.template.json +45 -0
  116. package/src/templates/base/business_rule.template.json +33 -0
  117. package/src/templates/base/script_include.template.json +18 -0
  118. package/src/templates/base/table.template.json +64 -0
  119. package/src/templates/base/widget.template.json +25 -0
  120. package/src/templates/patterns/composite.incident-management.template.json +140 -0
  121. package/src/templates/patterns/widget.dashboard.template.json +238 -0
  122. package/src/templates/patterns/widget.datatable.template.json +292 -0
  123. package/src/testing/integration-test-suite.ts +1276 -0
  124. package/src/types/index.ts +183 -0
  125. package/src/types/neo4j-driver.d.ts +23 -0
  126. package/src/types/servicenow.types.ts +307 -0
  127. package/src/types/snow-flow.types.ts +186 -0
  128. package/src/types/todo.types.ts +70 -0
  129. package/src/utils/action-type-cache.ts +286 -0
  130. package/src/utils/agent-detector.ts +573 -0
  131. package/src/utils/artifact-tracker.ts +379 -0
  132. package/src/utils/dependency-detector.ts +233 -0
  133. package/src/utils/deployment-metadata-handler.ts +518 -0
  134. package/src/utils/error-recovery.ts +680 -0
  135. package/src/utils/logger.ts +60 -0
  136. package/src/utils/mcp-auth-middleware.ts +262 -0
  137. package/src/utils/mcp-config-manager.ts +270 -0
  138. package/src/utils/mcp-server-manager.ts +446 -0
  139. package/src/utils/mcp-tool-registry.ts +298 -0
  140. package/src/utils/migrate-snow-flow.ts +98 -0
  141. package/src/utils/oauth-html-templates.ts +188 -0
  142. package/src/utils/scope-utils.ts +443 -0
  143. package/src/utils/servicenow-client.ts +3321 -0
  144. package/src/utils/servicenow-id-generator.ts +181 -0
  145. package/src/utils/snow-memory-manager.ts +605 -0
  146. package/src/utils/snow-oauth.ts +797 -0
  147. package/src/utils/template-engine.ts +463 -0
  148. package/src/utils/theme-manager.ts +295 -0
  149. package/src/utils/unified-auth-store.ts +222 -0
  150. package/src/utils/update-set-importer.ts +422 -0
  151. package/src/utils/update-set-xml-packager.ts +371 -0
  152. package/src/utils/widget-template-generator.ts +1744 -0
  153. package/src/version.ts +1950 -0
  154. package/.claude/commands/memory/README.md +0 -9
  155. package/dist/agents/app-creator.agent.d.ts.map +0 -1
  156. package/dist/agents/app-creator.agent.js.map +0 -1
  157. package/dist/agents/base/base-snow-agent.d.ts.map +0 -1
  158. package/dist/agents/base/base-snow-agent.js.map +0 -1
  159. package/dist/agents/base-agent.d.ts.map +0 -1
  160. package/dist/agents/base-agent.js.map +0 -1
  161. package/dist/agents/base-snow-agent.d.ts.map +0 -1
  162. package/dist/agents/base-snow-agent.js.map +0 -1
  163. package/dist/agents/coordinator.d.ts.map +0 -1
  164. package/dist/agents/coordinator.js.map +0 -1
  165. package/dist/agents/flow-builder-agent.d.ts.map +0 -1
  166. package/dist/agents/flow-builder-agent.js.map +0 -1
  167. package/dist/agents/index.d.ts.map +0 -1
  168. package/dist/agents/index.js.map +0 -1
  169. package/dist/agents/queen-403-handler.d.ts.map +0 -1
  170. package/dist/agents/queen-403-handler.js.map +0 -1
  171. package/dist/agents/queen-agent-example.d.ts.map +0 -1
  172. package/dist/agents/queen-agent-example.js.map +0 -1
  173. package/dist/agents/queen-agent.d.ts.map +0 -1
  174. package/dist/agents/queen-agent.js.map +0 -1
  175. package/dist/agents/queen-agent.test.d.ts.map +0 -1
  176. package/dist/agents/queen-agent.test.js.map +0 -1
  177. package/dist/agents/script-generator.agent.d.ts.map +0 -1
  178. package/dist/agents/script-generator.agent.js.map +0 -1
  179. package/dist/agents/script-writer-agent.d.ts.map +0 -1
  180. package/dist/agents/script-writer-agent.js.map +0 -1
  181. package/dist/agents/security-agent.d.ts.map +0 -1
  182. package/dist/agents/security-agent.js.map +0 -1
  183. package/dist/agents/specialists/automation-specialist.agent.d.ts.map +0 -1
  184. package/dist/agents/specialists/automation-specialist.agent.js.map +0 -1
  185. package/dist/agents/specialists/data-specialist.agent.d.ts.map +0 -1
  186. package/dist/agents/specialists/data-specialist.agent.js.map +0 -1
  187. package/dist/agents/specialists/integration-specialist.agent.d.ts.map +0 -1
  188. package/dist/agents/specialists/integration-specialist.agent.js.map +0 -1
  189. package/dist/agents/specialists/reporting-specialist.agent.d.ts.map +0 -1
  190. package/dist/agents/specialists/reporting-specialist.agent.js.map +0 -1
  191. package/dist/agents/specialists/security-specialist.agent.d.ts.map +0 -1
  192. package/dist/agents/specialists/security-specialist.agent.js.map +0 -1
  193. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts.map +0 -1
  194. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js.map +0 -1
  195. package/dist/agents/teams/base-team.d.ts.map +0 -1
  196. package/dist/agents/teams/base-team.js.map +0 -1
  197. package/dist/agents/teams/team-types.d.ts.map +0 -1
  198. package/dist/agents/teams/team-types.js.map +0 -1
  199. package/dist/agents/teams/widget/widget-architect.agent.d.ts.map +0 -1
  200. package/dist/agents/teams/widget/widget-architect.agent.js.map +0 -1
  201. package/dist/agents/teams/widget/widget-backend.agent.d.ts.map +0 -1
  202. package/dist/agents/teams/widget/widget-backend.agent.js.map +0 -1
  203. package/dist/agents/teams/widget/widget-frontend.agent.d.ts.map +0 -1
  204. package/dist/agents/teams/widget/widget-frontend.agent.js.map +0 -1
  205. package/dist/agents/teams/widget/widget-platform.agent.d.ts.map +0 -1
  206. package/dist/agents/teams/widget/widget-platform.agent.js.map +0 -1
  207. package/dist/agents/teams/widget/widget-uiux.agent.d.ts.map +0 -1
  208. package/dist/agents/teams/widget/widget-uiux.agent.js.map +0 -1
  209. package/dist/agents/test-agent.d.ts.map +0 -1
  210. package/dist/agents/test-agent.js.map +0 -1
  211. package/dist/agents/test-agents.d.ts.map +0 -1
  212. package/dist/agents/test-agents.js.map +0 -1
  213. package/dist/agents/ui-builder.agent.d.ts.map +0 -1
  214. package/dist/agents/ui-builder.agent.js.map +0 -1
  215. package/dist/agents/widget-builder.agent.d.ts.map +0 -1
  216. package/dist/agents/widget-builder.agent.js.map +0 -1
  217. package/dist/agents/widget-creator-agent.d.ts.map +0 -1
  218. package/dist/agents/widget-creator-agent.js.map +0 -1
  219. package/dist/agents/workflow-designer.agent.d.ts.map +0 -1
  220. package/dist/agents/workflow-designer.agent.js.map +0 -1
  221. package/dist/api/error-handling.d.ts.map +0 -1
  222. package/dist/api/error-handling.js.map +0 -1
  223. package/dist/api/flow-designer-api.d.ts.map +0 -1
  224. package/dist/api/flow-designer-api.js.map +0 -1
  225. package/dist/api/natural-language-mapper.d.ts.map +0 -1
  226. package/dist/api/natural-language-mapper.js.map +0 -1
  227. package/dist/api/performance-optimizer.d.ts.map +0 -1
  228. package/dist/api/performance-optimizer.js.map +0 -1
  229. package/dist/api/transaction-manager.d.ts.map +0 -1
  230. package/dist/api/transaction-manager.js.map +0 -1
  231. package/dist/assembly/team-assembler.d.ts.map +0 -1
  232. package/dist/assembly/team-assembler.js.map +0 -1
  233. package/dist/cli/deploy-artifact.d.ts.map +0 -1
  234. package/dist/cli/deploy-artifact.js.map +0 -1
  235. package/dist/cli/snow-flow-cli-integration.d.ts.map +0 -1
  236. package/dist/cli/snow-flow-cli-integration.js.map +0 -1
  237. package/dist/cli.d.ts.map +0 -1
  238. package/dist/cli.js.map +0 -1
  239. package/dist/compliance/advanced-compliance-system.d.ts.map +0 -1
  240. package/dist/compliance/advanced-compliance-system.js.map +0 -1
  241. package/dist/compliance/index.d.ts.map +0 -1
  242. package/dist/compliance/index.js.map +0 -1
  243. package/dist/config/snow-flow-config.d.ts.map +0 -1
  244. package/dist/config/snow-flow-config.js.map +0 -1
  245. package/dist/documentation/index.d.ts.map +0 -1
  246. package/dist/documentation/index.js.map +0 -1
  247. package/dist/documentation/self-documenting-system.d.ts.map +0 -1
  248. package/dist/documentation/self-documenting-system.js.map +0 -1
  249. package/dist/dynamic-version.d.ts.map +0 -1
  250. package/dist/dynamic-version.js.map +0 -1
  251. package/dist/healing/index.d.ts.map +0 -1
  252. package/dist/healing/index.js.map +0 -1
  253. package/dist/healing/self-healing-system.d.ts.map +0 -1
  254. package/dist/healing/self-healing-system.js.map +0 -1
  255. package/dist/health/system-health.d.ts.map +0 -1
  256. package/dist/health/system-health.js.map +0 -1
  257. package/dist/index.d.ts.map +0 -1
  258. package/dist/index.js.map +0 -1
  259. package/dist/intelligence/acl-analyzer.d.ts.map +0 -1
  260. package/dist/intelligence/acl-analyzer.js.map +0 -1
  261. package/dist/intelligence/auto-resolution-engine.d.ts.map +0 -1
  262. package/dist/intelligence/auto-resolution-engine.js.map +0 -1
  263. package/dist/intelligence/gap-analysis-engine.d.ts.map +0 -1
  264. package/dist/intelligence/gap-analysis-engine.js.map +0 -1
  265. package/dist/intelligence/manual-instructions-generator.d.ts.map +0 -1
  266. package/dist/intelligence/manual-instructions-generator.js.map +0 -1
  267. package/dist/intelligence/mcp-coverage-analyzer.d.ts.map +0 -1
  268. package/dist/intelligence/mcp-coverage-analyzer.js.map +0 -1
  269. package/dist/intelligence/multi-pass-requirements-analyzer.d.ts.map +0 -1
  270. package/dist/intelligence/multi-pass-requirements-analyzer.js.map +0 -1
  271. package/dist/intelligence/performance-recommendations-engine.d.ts.map +0 -1
  272. package/dist/intelligence/performance-recommendations-engine.js.map +0 -1
  273. package/dist/intelligence/requirements-analyzer.d.ts.map +0 -1
  274. package/dist/intelligence/requirements-analyzer.js.map +0 -1
  275. package/dist/intelligence/task-analyzer.d.ts.map +0 -1
  276. package/dist/intelligence/task-analyzer.js.map +0 -1
  277. package/dist/managers/scope-manager.d.ts.map +0 -1
  278. package/dist/managers/scope-manager.js.map +0 -1
  279. package/dist/mcp/advanced/servicenow-advanced-features-mcp.d.ts.map +0 -1
  280. package/dist/mcp/advanced/servicenow-advanced-features-mcp.js.map +0 -1
  281. package/dist/mcp/base-mcp-server.d.ts.map +0 -1
  282. package/dist/mcp/base-mcp-server.js.map +0 -1
  283. package/dist/mcp/example-refactored-server.d.ts.map +0 -1
  284. package/dist/mcp/example-refactored-server.js.map +0 -1
  285. package/dist/mcp/http-transport-wrapper.d.ts.map +0 -1
  286. package/dist/mcp/http-transport-wrapper.js.map +0 -1
  287. package/dist/mcp/mcp-wrapper.d.ts.map +0 -1
  288. package/dist/mcp/mcp-wrapper.js.map +0 -1
  289. package/dist/mcp/service-discovery-client.d.ts.map +0 -1
  290. package/dist/mcp/service-discovery-client.js.map +0 -1
  291. package/dist/mcp/servicenow-automation-mcp-refactored.d.ts.map +0 -1
  292. package/dist/mcp/servicenow-automation-mcp-refactored.js.map +0 -1
  293. package/dist/mcp/servicenow-automation-mcp.d.ts.map +0 -1
  294. package/dist/mcp/servicenow-automation-mcp.js.map +0 -1
  295. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +0 -1
  296. package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +0 -1
  297. package/dist/mcp/servicenow-deployment-mcp.d.ts.map +0 -1
  298. package/dist/mcp/servicenow-deployment-mcp.js.map +0 -1
  299. package/dist/mcp/servicenow-flow-composer-mcp-refactored.d.ts.map +0 -1
  300. package/dist/mcp/servicenow-flow-composer-mcp-refactored.js.map +0 -1
  301. package/dist/mcp/servicenow-flow-composer-mcp.d.ts.map +0 -1
  302. package/dist/mcp/servicenow-flow-composer-mcp.js.map +0 -1
  303. package/dist/mcp/servicenow-graph-memory-mcp-refactored.d.ts.map +0 -1
  304. package/dist/mcp/servicenow-graph-memory-mcp-refactored.js.map +0 -1
  305. package/dist/mcp/servicenow-graph-memory-mcp.d.ts.map +0 -1
  306. package/dist/mcp/servicenow-graph-memory-mcp.js.map +0 -1
  307. package/dist/mcp/servicenow-integration-mcp-refactored.d.ts.map +0 -1
  308. package/dist/mcp/servicenow-integration-mcp-refactored.js.map +0 -1
  309. package/dist/mcp/servicenow-integration-mcp.d.ts.map +0 -1
  310. package/dist/mcp/servicenow-integration-mcp.js.map +0 -1
  311. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +0 -1
  312. package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +0 -1
  313. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +0 -1
  314. package/dist/mcp/servicenow-intelligent-mcp.js.map +0 -1
  315. package/dist/mcp/servicenow-mcp-server.d.ts.map +0 -1
  316. package/dist/mcp/servicenow-mcp-server.js.map +0 -1
  317. package/dist/mcp/servicenow-memory-mcp.d.ts.map +0 -1
  318. package/dist/mcp/servicenow-memory-mcp.js.map +0 -1
  319. package/dist/mcp/servicenow-operations-mcp-refactored.d.ts.map +0 -1
  320. package/dist/mcp/servicenow-operations-mcp-refactored.js.map +0 -1
  321. package/dist/mcp/servicenow-operations-mcp.d.ts.map +0 -1
  322. package/dist/mcp/servicenow-operations-mcp.js.map +0 -1
  323. package/dist/mcp/servicenow-platform-development-mcp-refactored.d.ts.map +0 -1
  324. package/dist/mcp/servicenow-platform-development-mcp-refactored.js.map +0 -1
  325. package/dist/mcp/servicenow-platform-development-mcp.d.ts.map +0 -1
  326. package/dist/mcp/servicenow-platform-development-mcp.js.map +0 -1
  327. package/dist/mcp/servicenow-progressive-indexer.d.ts.map +0 -1
  328. package/dist/mcp/servicenow-progressive-indexer.js.map +0 -1
  329. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.d.ts.map +0 -1
  330. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.js.map +0 -1
  331. package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts.map +0 -1
  332. package/dist/mcp/servicenow-reporting-analytics-mcp.js.map +0 -1
  333. package/dist/mcp/servicenow-security-compliance-mcp-refactored.d.ts.map +0 -1
  334. package/dist/mcp/servicenow-security-compliance-mcp-refactored.js.map +0 -1
  335. package/dist/mcp/servicenow-security-compliance-mcp.d.ts.map +0 -1
  336. package/dist/mcp/servicenow-security-compliance-mcp.js.map +0 -1
  337. package/dist/mcp/servicenow-update-set-mcp-refactored.d.ts.map +0 -1
  338. package/dist/mcp/servicenow-update-set-mcp-refactored.js.map +0 -1
  339. package/dist/mcp/servicenow-update-set-mcp.d.ts.map +0 -1
  340. package/dist/mcp/servicenow-update-set-mcp.js.map +0 -1
  341. package/dist/mcp/servicenow-xml-flow-mcp.d.ts.map +0 -1
  342. package/dist/mcp/servicenow-xml-flow-mcp.js.map +0 -1
  343. package/dist/mcp/shared/agent-context-provider.d.ts.map +0 -1
  344. package/dist/mcp/shared/agent-context-provider.js.map +0 -1
  345. package/dist/mcp/shared/base-mcp-server.d.ts.map +0 -1
  346. package/dist/mcp/shared/base-mcp-server.js.map +0 -1
  347. package/dist/mcp/shared/mcp-memory-manager.d.ts.map +0 -1
  348. package/dist/mcp/shared/mcp-memory-manager.js.map +0 -1
  349. package/dist/mcp/shared/mcp-resource-manager.d.ts.map +0 -1
  350. package/dist/mcp/shared/mcp-resource-manager.js.map +0 -1
  351. package/dist/mcp/snow-flow-mcp.d.ts.map +0 -1
  352. package/dist/mcp/snow-flow-mcp.js.map +0 -1
  353. package/dist/mcp/start-all-mcp-servers.d.ts.map +0 -1
  354. package/dist/mcp/start-all-mcp-servers.js.map +0 -1
  355. package/dist/mcp/start-servicenow-mcp.d.ts.map +0 -1
  356. package/dist/mcp/start-servicenow-mcp.js.map +0 -1
  357. package/dist/mcp/test-simple-mcp.d.ts.map +0 -1
  358. package/dist/mcp/test-simple-mcp.js.map +0 -1
  359. package/dist/memory/hierarchical-memory-system.d.ts +0 -90
  360. package/dist/memory/hierarchical-memory-system.d.ts.map +0 -1
  361. package/dist/memory/hierarchical-memory-system.js +0 -400
  362. package/dist/memory/hierarchical-memory-system.js.map +0 -1
  363. package/dist/memory/index.d.ts +0 -9
  364. package/dist/memory/index.d.ts.map +0 -1
  365. package/dist/memory/index.js +0 -20
  366. package/dist/memory/index.js.map +0 -1
  367. package/dist/memory/mcp-integration-example.d.ts +0 -6
  368. package/dist/memory/mcp-integration-example.d.ts.map +0 -1
  369. package/dist/memory/mcp-integration-example.js +0 -281
  370. package/dist/memory/mcp-integration-example.js.map +0 -1
  371. package/dist/memory/memory-client.d.ts +0 -199
  372. package/dist/memory/memory-client.d.ts.map +0 -1
  373. package/dist/memory/memory-client.js +0 -364
  374. package/dist/memory/memory-client.js.map +0 -1
  375. package/dist/memory/memory-manager.d.ts +0 -29
  376. package/dist/memory/memory-manager.d.ts.map +0 -1
  377. package/dist/memory/memory-manager.js +0 -280
  378. package/dist/memory/memory-manager.js.map +0 -1
  379. package/dist/memory/memory-operations.d.ts +0 -179
  380. package/dist/memory/memory-operations.d.ts.map +0 -1
  381. package/dist/memory/memory-operations.js +0 -691
  382. package/dist/memory/memory-operations.js.map +0 -1
  383. package/dist/memory/memory-system.d.ts +0 -152
  384. package/dist/memory/memory-system.d.ts.map +0 -1
  385. package/dist/memory/memory-system.js +0 -632
  386. package/dist/memory/memory-system.js.map +0 -1
  387. package/dist/memory/memory-test.d.ts +0 -6
  388. package/dist/memory/memory-test.d.ts.map +0 -1
  389. package/dist/memory/memory-test.js +0 -161
  390. package/dist/memory/memory-test.js.map +0 -1
  391. package/dist/memory/servicenow-artifact-indexer.d.ts +0 -119
  392. package/dist/memory/servicenow-artifact-indexer.d.ts.map +0 -1
  393. package/dist/memory/servicenow-artifact-indexer.js +0 -560
  394. package/dist/memory/servicenow-artifact-indexer.js.map +0 -1
  395. package/dist/memory/snow-flow-memory-patterns.d.ts +0 -213
  396. package/dist/memory/snow-flow-memory-patterns.d.ts.map +0 -1
  397. package/dist/memory/snow-flow-memory-patterns.js +0 -200
  398. package/dist/memory/snow-flow-memory-patterns.js.map +0 -1
  399. package/dist/memory/snow-memory.d.ts +0 -54
  400. package/dist/memory/snow-memory.d.ts.map +0 -1
  401. package/dist/memory/snow-memory.js +0 -301
  402. package/dist/memory/snow-memory.js.map +0 -1
  403. package/dist/memory/swarm-memory.d.ts +0 -135
  404. package/dist/memory/swarm-memory.d.ts.map +0 -1
  405. package/dist/memory/swarm-memory.js +0 -378
  406. package/dist/memory/swarm-memory.js.map +0 -1
  407. package/dist/monitoring/enhanced-monitoring-system.d.ts.map +0 -1
  408. package/dist/monitoring/enhanced-monitoring-system.js.map +0 -1
  409. package/dist/monitoring/performance-tracker.d.ts.map +0 -1
  410. package/dist/monitoring/performance-tracker.js.map +0 -1
  411. package/dist/optimization/cost-optimization-engine.d.ts.map +0 -1
  412. package/dist/optimization/cost-optimization-engine.js.map +0 -1
  413. package/dist/optimization/index.d.ts.map +0 -1
  414. package/dist/optimization/index.js.map +0 -1
  415. package/dist/orchestration/discovery/service-discovery.d.ts.map +0 -1
  416. package/dist/orchestration/discovery/service-discovery.js.map +0 -1
  417. package/dist/orchestration/distributed-orchestrator.d.ts.map +0 -1
  418. package/dist/orchestration/distributed-orchestrator.js.map +0 -1
  419. package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +0 -1
  420. package/dist/orchestration/distribution/task-distribution-engine.js.map +0 -1
  421. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +0 -1
  422. package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +0 -1
  423. package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +0 -1
  424. package/dist/orchestration/protocols/mcpx-protocol.js.map +0 -1
  425. package/dist/orchestration/state/distributed-state-manager.d.ts.map +0 -1
  426. package/dist/orchestration/state/distributed-state-manager.js.map +0 -1
  427. package/dist/orchestrator/flow-composer.d.ts.map +0 -1
  428. package/dist/orchestrator/flow-composer.js.map +0 -1
  429. package/dist/orchestrator/flow-pattern-templates.d.ts.map +0 -1
  430. package/dist/orchestrator/flow-pattern-templates.js.map +0 -1
  431. package/dist/orchestrator/flow-subflow-decision-engine.d.ts.map +0 -1
  432. package/dist/orchestrator/flow-subflow-decision-engine.js.map +0 -1
  433. package/dist/orchestrator/flow-validation-engine.d.ts.map +0 -1
  434. package/dist/orchestrator/flow-validation-engine.js.map +0 -1
  435. package/dist/orchestrator/snow-orchestrator.d.ts.map +0 -1
  436. package/dist/orchestrator/snow-orchestrator.js.map +0 -1
  437. package/dist/orchestrator/subflow-creation-handler.d.ts.map +0 -1
  438. package/dist/orchestrator/subflow-creation-handler.js.map +0 -1
  439. package/dist/patterns/adaptive-patterns.d.ts.map +0 -1
  440. package/dist/patterns/adaptive-patterns.js.map +0 -1
  441. package/dist/queen/advanced-integration-test.d.ts.map +0 -1
  442. package/dist/queen/advanced-integration-test.js.map +0 -1
  443. package/dist/queen/agent-factory.d.ts.map +0 -1
  444. package/dist/queen/agent-factory.js.map +0 -1
  445. package/dist/queen/index.d.ts.map +0 -1
  446. package/dist/queen/index.js.map +0 -1
  447. package/dist/queen/integration-example.d.ts.map +0 -1
  448. package/dist/queen/integration-example.js.map +0 -1
  449. package/dist/queen/integration-test.d.ts.map +0 -1
  450. package/dist/queen/integration-test.js.map +0 -1
  451. package/dist/queen/mcp-execution-bridge.d.ts.map +0 -1
  452. package/dist/queen/mcp-execution-bridge.js.map +0 -1
  453. package/dist/queen/mock-mcp-client.d.ts.map +0 -1
  454. package/dist/queen/mock-mcp-client.js.map +0 -1
  455. package/dist/queen/neural-learning.d.ts.map +0 -1
  456. package/dist/queen/neural-learning.js.map +0 -1
  457. package/dist/queen/parallel-agent-engine.d.ts.map +0 -1
  458. package/dist/queen/parallel-agent-engine.js.map +0 -1
  459. package/dist/queen/queen-memory-system.d.ts.map +0 -1
  460. package/dist/queen/queen-memory-system.js.map +0 -1
  461. package/dist/queen/queen-memory.d.ts.map +0 -1
  462. package/dist/queen/queen-memory.js.map +0 -1
  463. package/dist/queen/run-integration-tests.d.ts.map +0 -1
  464. package/dist/queen/run-integration-tests.js.map +0 -1
  465. package/dist/queen/servicenow-queen.d.ts.map +0 -1
  466. package/dist/queen/servicenow-queen.js.map +0 -1
  467. package/dist/queen/types.d.ts.map +0 -1
  468. package/dist/queen/types.js.map +0 -1
  469. package/dist/rollback/smart-rollback-system.d.ts.map +0 -1
  470. package/dist/rollback/smart-rollback-system.js.map +0 -1
  471. package/dist/snow-flow-system.d.ts.map +0 -1
  472. package/dist/snow-flow-system.js.map +0 -1
  473. package/dist/sparc/coordinators/adaptive-coordinator.d.ts.map +0 -1
  474. package/dist/sparc/coordinators/adaptive-coordinator.js.map +0 -1
  475. package/dist/sparc/coordinators/team-coordinator.d.ts.map +0 -1
  476. package/dist/sparc/coordinators/team-coordinator.js.map +0 -1
  477. package/dist/sparc/modes/team-modes.d.ts.map +0 -1
  478. package/dist/sparc/modes/team-modes.js.map +0 -1
  479. package/dist/sparc/sparc-help.d.ts.map +0 -1
  480. package/dist/sparc/sparc-help.js.map +0 -1
  481. package/dist/sparc/team-sparc.d.ts.map +0 -1
  482. package/dist/sparc/team-sparc.js.map +0 -1
  483. package/dist/sparc/teams/application-team.d.ts.map +0 -1
  484. package/dist/sparc/teams/application-team.js.map +0 -1
  485. package/dist/sparc/teams/flow-team.d.ts.map +0 -1
  486. package/dist/sparc/teams/flow-team.js.map +0 -1
  487. package/dist/sparc/teams/widget-team.d.ts.map +0 -1
  488. package/dist/sparc/teams/widget-team.js.map +0 -1
  489. package/dist/specialists/app-specialists.d.ts.map +0 -1
  490. package/dist/specialists/app-specialists.js.map +0 -1
  491. package/dist/specialists/base-specialist.d.ts.map +0 -1
  492. package/dist/specialists/base-specialist.js.map +0 -1
  493. package/dist/specialists/flow-specialists.d.ts.map +0 -1
  494. package/dist/specialists/flow-specialists.js.map +0 -1
  495. package/dist/specialists/individual-specialists.d.ts.map +0 -1
  496. package/dist/specialists/individual-specialists.js.map +0 -1
  497. package/dist/specialists/widget-specialists.d.ts.map +0 -1
  498. package/dist/specialists/widget-specialists.js.map +0 -1
  499. package/dist/strategies/global-scope-strategy.d.ts.map +0 -1
  500. package/dist/strategies/global-scope-strategy.js.map +0 -1
  501. package/dist/teams/adaptive-team.d.ts.map +0 -1
  502. package/dist/teams/adaptive-team.js.map +0 -1
  503. package/dist/teams/application-team.d.ts.map +0 -1
  504. package/dist/teams/application-team.js.map +0 -1
  505. package/dist/teams/base-team.d.ts.map +0 -1
  506. package/dist/teams/base-team.js.map +0 -1
  507. package/dist/teams/flow-team.d.ts.map +0 -1
  508. package/dist/teams/flow-team.js.map +0 -1
  509. package/dist/teams/widget-team.d.ts.map +0 -1
  510. package/dist/teams/widget-team.js.map +0 -1
  511. package/dist/testing/integration-test-suite.d.ts.map +0 -1
  512. package/dist/testing/integration-test-suite.js.map +0 -1
  513. package/dist/types/index.d.ts.map +0 -1
  514. package/dist/types/index.js.map +0 -1
  515. package/dist/types/servicenow.types.d.ts.map +0 -1
  516. package/dist/types/servicenow.types.js.map +0 -1
  517. package/dist/types/snow-flow.types.d.ts.map +0 -1
  518. package/dist/types/snow-flow.types.js.map +0 -1
  519. package/dist/types/todo.types.d.ts.map +0 -1
  520. package/dist/types/todo.types.js.map +0 -1
  521. package/dist/utils/action-type-cache.d.ts.map +0 -1
  522. package/dist/utils/action-type-cache.js.map +0 -1
  523. package/dist/utils/agent-detector.d.ts.map +0 -1
  524. package/dist/utils/agent-detector.js.map +0 -1
  525. package/dist/utils/artifact-tracker.d.ts.map +0 -1
  526. package/dist/utils/artifact-tracker.js.map +0 -1
  527. package/dist/utils/dependency-detector.d.ts.map +0 -1
  528. package/dist/utils/dependency-detector.js.map +0 -1
  529. package/dist/utils/deployment-metadata-handler.d.ts.map +0 -1
  530. package/dist/utils/deployment-metadata-handler.js.map +0 -1
  531. package/dist/utils/error-recovery.d.ts.map +0 -1
  532. package/dist/utils/error-recovery.js.map +0 -1
  533. package/dist/utils/flow-api-discovery.d.ts.map +0 -1
  534. package/dist/utils/flow-api-discovery.js.map +0 -1
  535. package/dist/utils/flow-xml-generator.d.ts.map +0 -1
  536. package/dist/utils/flow-xml-generator.js.map +0 -1
  537. package/dist/utils/logger.d.ts.map +0 -1
  538. package/dist/utils/logger.js.map +0 -1
  539. package/dist/utils/mcp-auth-middleware.d.ts.map +0 -1
  540. package/dist/utils/mcp-auth-middleware.js.map +0 -1
  541. package/dist/utils/mcp-config-manager.d.ts.map +0 -1
  542. package/dist/utils/mcp-config-manager.js.map +0 -1
  543. package/dist/utils/mcp-server-manager.d.ts.map +0 -1
  544. package/dist/utils/mcp-server-manager.js.map +0 -1
  545. package/dist/utils/mcp-tool-registry.d.ts.map +0 -1
  546. package/dist/utils/mcp-tool-registry.js.map +0 -1
  547. package/dist/utils/migrate-claude-flow.d.ts.map +0 -1
  548. package/dist/utils/migrate-claude-flow.js.map +0 -1
  549. package/dist/utils/migrate-snow-flow.d.ts.map +0 -1
  550. package/dist/utils/migrate-snow-flow.js.map +0 -1
  551. package/dist/utils/oauth-html-templates.d.ts.map +0 -1
  552. package/dist/utils/oauth-html-templates.js.map +0 -1
  553. package/dist/utils/scope-utils.d.ts.map +0 -1
  554. package/dist/utils/scope-utils.js.map +0 -1
  555. package/dist/utils/servicenow-client.d.ts.map +0 -1
  556. package/dist/utils/servicenow-client.js.map +0 -1
  557. package/dist/utils/servicenow-id-generator.d.ts.map +0 -1
  558. package/dist/utils/servicenow-id-generator.js.map +0 -1
  559. package/dist/utils/snow-memory-manager.d.ts.map +0 -1
  560. package/dist/utils/snow-memory-manager.js.map +0 -1
  561. package/dist/utils/snow-oauth-old.d.ts.map +0 -1
  562. package/dist/utils/snow-oauth-old.js.map +0 -1
  563. package/dist/utils/snow-oauth.d.ts.map +0 -1
  564. package/dist/utils/snow-oauth.js.map +0 -1
  565. package/dist/utils/template-engine.d.ts.map +0 -1
  566. package/dist/utils/template-engine.js.map +0 -1
  567. package/dist/utils/theme-manager.d.ts.map +0 -1
  568. package/dist/utils/theme-manager.js.map +0 -1
  569. package/dist/utils/unified-auth-store.d.ts.map +0 -1
  570. package/dist/utils/unified-auth-store.js.map +0 -1
  571. package/dist/utils/update-set-importer.d.ts.map +0 -1
  572. package/dist/utils/update-set-importer.js.map +0 -1
  573. package/dist/utils/update-set-xml-packager.d.ts.map +0 -1
  574. package/dist/utils/update-set-xml-packager.js.map +0 -1
  575. package/dist/utils/widget-template-generator.d.ts.map +0 -1
  576. package/dist/utils/widget-template-generator.js.map +0 -1
  577. package/dist/version.d.ts.map +0 -1
  578. package/dist/version.js.map +0 -1
  579. package/memory/agents/README.md +0 -31
  580. package/memory/claude-flow-data.json +0 -5
  581. package/memory/servicenow_artifacts/000d9224c895221055906c7518aa2d3d.json +0 -30
  582. package/memory/servicenow_artifacts/0196b66173303010e46b4a2214f6a7a2.json +0 -36
  583. package/memory/servicenow_artifacts/125e5d1d837e2a102a7ea130ceaad397.json +0 -30
  584. package/memory/servicenow_artifacts/7637c1f2b7112210a5e5911cde11a972.json +0 -30
  585. package/memory/servicenow_artifacts/default_documentation_tables_1754056582292.json +0 -55
  586. package/memory/servicenow_artifacts/default_documentation_tables_1754057477189.json +0 -55
  587. package/memory/sessions/README.md +0 -32
  588. package/memory/update-set-sessions/01f82af583faea102a7ea130ceaad3d4.json +0 -9
  589. package/memory/update-set-sessions/27718fb983faea102a7ea130ceaad34b.json +0 -9
  590. package/memory/update-set-sessions/412e9bf6833e22502a7ea130ceaad30a.json +0 -8
  591. package/memory/update-set-sessions/66fc5a79837aea102a7ea130ceaad3ab.json +0 -9
  592. package/memory/update-set-sessions/71a30ff5837eea102a7ea130ceaad37f.json +0 -9
  593. package/memory/update-set-sessions/74fba27983faea102a7ea130ceaad3bd.json +0 -9
  594. package/memory/update-set-sessions/a0b147b5837eea102a7ea130ceaad344.json +0 -58
  595. package/memory/update-set-sessions/b13f5eb983baea102a7ea130ceaad33e.json +0 -9
@@ -0,0 +1,568 @@
1
+ /**
2
+ * Widget Creator Agent
3
+ * Specializes in creating ServiceNow Service Portal widgets
4
+ */
5
+
6
+ import { BaseAgent, AgentConfig, AgentResult } from './base-agent';
7
+ import { ServiceNowArtifact } from '../queen/types';
8
+
9
+ export class WidgetCreatorAgent extends BaseAgent {
10
+ constructor(config?: Partial<AgentConfig>) {
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
+
35
+ async execute(instruction: string, context?: Record<string, any>): Promise<AgentResult> {
36
+ try {
37
+ this.setStatus('working');
38
+ await this.reportProgress('Starting widget creation', 0);
39
+
40
+ // Analyze widget requirements from instruction
41
+ const requirements = await this.analyzeWidgetRequirements(instruction);
42
+ await this.reportProgress('Analyzed requirements', 20);
43
+
44
+ // Check for existing similar widgets
45
+ const existingWidgets = await this.checkExistingWidgets(requirements);
46
+ if (existingWidgets.length > 0) {
47
+ await this.reportProgress('Found existing widgets to reference', 30);
48
+ }
49
+
50
+ // Create widget components
51
+ const template = await this.createHTMLTemplate(requirements);
52
+ await this.reportProgress('Created HTML template', 40);
53
+
54
+ const css = await this.createCSS(requirements);
55
+ await this.reportProgress('Created CSS styling', 50);
56
+
57
+ const clientScript = await this.createClientScript(requirements);
58
+ await this.reportProgress('Created client script', 60);
59
+
60
+ const serverScript = await this.createServerScript(requirements);
61
+ await this.reportProgress('Created server script', 70);
62
+
63
+ // Generate demo data if needed
64
+ const demoData = requirements.needsDemoData ?
65
+ await this.generateDemoData(requirements) : null;
66
+ await this.reportProgress('Generated demo data', 80);
67
+
68
+ // Create widget configuration
69
+ const widgetConfig = {
70
+ name: requirements.name,
71
+ title: requirements.title || requirements.name,
72
+ template,
73
+ css,
74
+ client_script: clientScript,
75
+ server_script: serverScript,
76
+ demo_data: demoData,
77
+ description: requirements.description,
78
+ category: requirements.category || 'custom'
79
+ };
80
+
81
+ // Create widget artifact
82
+ const artifact: ServiceNowArtifact = {
83
+ type: 'widget',
84
+ name: requirements.name,
85
+ config: widgetConfig,
86
+ dependencies: requirements.dependencies || []
87
+ };
88
+
89
+ // Store artifact for other agents
90
+ await this.storeArtifact(artifact);
91
+ await this.reportProgress('Widget artifact created and stored', 90);
92
+
93
+ // Prepare deployment instructions
94
+ const deploymentInstructions = this.prepareDeploymentInstructions(widgetConfig);
95
+
96
+ await this.reportProgress('Widget creation completed', 100);
97
+ this.setStatus('completed');
98
+
99
+ await this.logActivity('widget_creation', true, {
100
+ widgetName: requirements.name,
101
+ features: requirements.features
102
+ });
103
+
104
+ return {
105
+ success: true,
106
+ artifacts: [artifact],
107
+ message: `Widget "${requirements.title}" created successfully`,
108
+ metadata: {
109
+ deploymentInstructions,
110
+ features: requirements.features,
111
+ dependencies: requirements.dependencies
112
+ }
113
+ };
114
+
115
+ } catch (error) {
116
+ this.setStatus('failed');
117
+ await this.logActivity('widget_creation', false, { error: error.message });
118
+
119
+ return {
120
+ success: false,
121
+ error: error as Error,
122
+ message: `Failed to create widget: ${error.message}`
123
+ };
124
+ }
125
+ }
126
+
127
+ private async analyzeWidgetRequirements(instruction: string): Promise<any> {
128
+ const requirements = {
129
+ name: '',
130
+ title: '',
131
+ description: instruction,
132
+ features: [] as string[],
133
+ dataSource: '',
134
+ needsChart: false,
135
+ needsTable: false,
136
+ needsForm: false,
137
+ needsDemoData: true,
138
+ isResponsive: true,
139
+ dependencies: [] as string[],
140
+ category: 'custom'
141
+ };
142
+
143
+ // Extract widget name
144
+ const nameMatch = instruction.match(/(?:create|build|make)\s+(?:a\s+)?([a-zA-Z0-9_\s]+)\s*(?:widget|component)/i);
145
+ if (nameMatch) {
146
+ requirements.name = nameMatch[1].trim().toLowerCase().replace(/\s+/g, '_');
147
+ requirements.title = nameMatch[1].trim();
148
+ }
149
+
150
+ // Feature detection
151
+ if (/chart|graph|visualization|analytics/i.test(instruction)) {
152
+ requirements.needsChart = true;
153
+ requirements.features.push('data-visualization');
154
+ requirements.dependencies.push('Chart.js');
155
+ }
156
+
157
+ if (/table|list|grid|records/i.test(instruction)) {
158
+ requirements.needsTable = true;
159
+ requirements.features.push('data-table');
160
+ }
161
+
162
+ if (/form|input|submit|create/i.test(instruction)) {
163
+ requirements.needsForm = true;
164
+ requirements.features.push('form-input');
165
+ }
166
+
167
+ if (/incident/i.test(instruction)) {
168
+ requirements.dataSource = 'incident';
169
+ requirements.category = 'itsm';
170
+ } else if (/request|catalog/i.test(instruction)) {
171
+ requirements.dataSource = 'sc_request';
172
+ requirements.category = 'service-catalog';
173
+ } else if (/task/i.test(instruction)) {
174
+ requirements.dataSource = 'task';
175
+ requirements.category = 'task-management';
176
+ }
177
+
178
+ if (/real[\s-]?time|live|refresh/i.test(instruction)) {
179
+ requirements.features.push('real-time-updates');
180
+ }
181
+
182
+ if (/mobile|responsive/i.test(instruction)) {
183
+ requirements.features.push('mobile-optimized');
184
+ }
185
+
186
+ return requirements;
187
+ }
188
+
189
+ private async checkExistingWidgets(requirements: any): Promise<any[]> {
190
+ // This would use snow_find_artifact to check for existing widgets
191
+ // For now, return empty array as we're implementing the agent structure
192
+ return [];
193
+ }
194
+
195
+ private async createHTMLTemplate(requirements: any): Promise<string> {
196
+ let template = '<div class="widget-container">\n';
197
+
198
+ // Add header
199
+ template += ` <div class="widget-header">\n`;
200
+ template += ` <h3>${requirements.title || 'Widget'}</h3>\n`;
201
+ template += ` </div>\n`;
202
+
203
+ template += ' <div class="widget-body">\n';
204
+
205
+ // Add chart container if needed
206
+ if (requirements.needsChart) {
207
+ template += ' <div class="chart-container">\n';
208
+ template += ' <canvas id="widgetChart" width="400" height="200"></canvas>\n';
209
+ template += ' </div>\n';
210
+ }
211
+
212
+ // Add table if needed
213
+ if (requirements.needsTable) {
214
+ template += ' <div class="table-container">\n';
215
+ template += ' <table class="table table-striped">\n';
216
+ template += ' <thead>\n';
217
+ template += ' <tr>\n';
218
+ template += ' <th ng-repeat="col in data.columns">{{col.label}}</th>\n';
219
+ template += ' </tr>\n';
220
+ template += ' </thead>\n';
221
+ template += ' <tbody>\n';
222
+ template += ' <tr ng-repeat="row in data.rows">\n';
223
+ template += ' <td ng-repeat="col in data.columns">{{row[col.field]}}</td>\n';
224
+ template += ' </tr>\n';
225
+ template += ' </tbody>\n';
226
+ template += ' </table>\n';
227
+ template += ' </div>\n';
228
+ }
229
+
230
+ // Add form if needed
231
+ if (requirements.needsForm) {
232
+ template += ' <form class="widget-form" ng-submit="submitForm()">\n';
233
+ template += ' <div class="form-group">\n';
234
+ template += ' <input type="text" class="form-control" ng-model="formData.input" placeholder="Enter value">\n';
235
+ template += ' </div>\n';
236
+ template += ' <button type="submit" class="btn btn-primary">Submit</button>\n';
237
+ template += ' </form>\n';
238
+ }
239
+
240
+ template += ' </div>\n';
241
+ template += '</div>';
242
+
243
+ return template;
244
+ }
245
+
246
+ private async createCSS(requirements: any): Promise<string> {
247
+ let css = `/* ${requirements.title} Widget Styles */\n\n`;
248
+
249
+ css += '.widget-container {\n';
250
+ css += ' padding: 15px;\n';
251
+ css += ' background-color: #fff;\n';
252
+ css += ' border-radius: 4px;\n';
253
+ css += ' box-shadow: 0 1px 3px rgba(0,0,0,0.12);\n';
254
+ css += '}\n\n';
255
+
256
+ css += '.widget-header {\n';
257
+ css += ' margin-bottom: 20px;\n';
258
+ css += ' padding-bottom: 10px;\n';
259
+ css += ' border-bottom: 1px solid #e7e7e7;\n';
260
+ css += '}\n\n';
261
+
262
+ css += '.widget-header h3 {\n';
263
+ css += ' margin: 0;\n';
264
+ css += ' color: #333;\n';
265
+ css += ' font-size: 18px;\n';
266
+ css += ' font-weight: 600;\n';
267
+ css += '}\n\n';
268
+
269
+ if (requirements.needsChart) {
270
+ css += '.chart-container {\n';
271
+ css += ' position: relative;\n';
272
+ css += ' height: 300px;\n';
273
+ css += ' margin-bottom: 20px;\n';
274
+ css += '}\n\n';
275
+ }
276
+
277
+ if (requirements.needsTable) {
278
+ css += '.table-container {\n';
279
+ css += ' overflow-x: auto;\n';
280
+ css += ' margin-bottom: 20px;\n';
281
+ css += '}\n\n';
282
+
283
+ css += '.table {\n';
284
+ css += ' width: 100%;\n';
285
+ css += ' margin-bottom: 0;\n';
286
+ css += '}\n\n';
287
+ }
288
+
289
+ if (requirements.isResponsive) {
290
+ css += '/* Responsive styles */\n';
291
+ css += '@media (max-width: 768px) {\n';
292
+ css += ' .widget-container {\n';
293
+ css += ' padding: 10px;\n';
294
+ css += ' }\n';
295
+ css += ' \n';
296
+ css += ' .widget-header h3 {\n';
297
+ css += ' font-size: 16px;\n';
298
+ css += ' }\n';
299
+ css += '}\n';
300
+ }
301
+
302
+ return css;
303
+ }
304
+
305
+ private async createClientScript(requirements: any): Promise<string> {
306
+ let script = 'function WidgetController($scope, $http, $timeout) {\n';
307
+ script += ' var c = this;\n\n';
308
+
309
+ // Initialize data
310
+ script += ' // Initialize widget data\n';
311
+ script += ' c.data = c.data || {};\n';
312
+ script += ' $scope.data = c.data;\n\n';
313
+
314
+ if (requirements.needsChart) {
315
+ script += ' // Chart initialization\n';
316
+ script += ' $timeout(function() {\n';
317
+ script += ' if (c.data.chartData) {\n';
318
+ script += ' initializeChart(c.data.chartData);\n';
319
+ script += ' }\n';
320
+ script += ' }, 100);\n\n';
321
+
322
+ script += ' function initializeChart(chartData) {\n';
323
+ script += ' var ctx = document.getElementById("widgetChart").getContext("2d");\n';
324
+ script += ' new Chart(ctx, {\n';
325
+ script += ' type: chartData.type || "bar",\n';
326
+ script += ' data: chartData,\n';
327
+ script += ' options: {\n';
328
+ script += ' responsive: true,\n';
329
+ script += ' maintainAspectRatio: false\n';
330
+ script += ' }\n';
331
+ script += ' });\n';
332
+ script += ' }\n\n';
333
+ }
334
+
335
+ if (requirements.needsForm) {
336
+ script += ' // Form submission\n';
337
+ script += ' $scope.formData = {};\n';
338
+ script += ' $scope.submitForm = function() {\n';
339
+ script += ' c.server.get({\n';
340
+ script += ' action: "submit",\n';
341
+ script += ' data: $scope.formData\n';
342
+ script += ' }).then(function(response) {\n';
343
+ script += ' // Handle response\n';
344
+ script += ' if (response.data.success) {\n';
345
+ script += ' $scope.formData = {};\n';
346
+ script += ' // Refresh data if needed\n';
347
+ script += ' }\n';
348
+ script += ' });\n';
349
+ script += ' };\n\n';
350
+ }
351
+
352
+ if (requirements.features.includes('real-time-updates')) {
353
+ script += ' // Real-time updates\n';
354
+ script += ' var refreshInterval = $timeout(function refresh() {\n';
355
+ script += ' c.server.get({ action: "refresh" }).then(function(response) {\n';
356
+ script += ' c.data = response.data;\n';
357
+ script += ' $scope.data = c.data;\n';
358
+ script += ' refreshInterval = $timeout(refresh, 30000); // Refresh every 30 seconds\n';
359
+ script += ' });\n';
360
+ script += ' }, 30000);\n\n';
361
+
362
+ script += ' $scope.$on("$destroy", function() {\n';
363
+ script += ' if (refreshInterval) {\n';
364
+ script += ' $timeout.cancel(refreshInterval);\n';
365
+ script += ' }\n';
366
+ script += ' });\n';
367
+ }
368
+
369
+ script += '}';
370
+
371
+ return script;
372
+ }
373
+
374
+ private async createServerScript(requirements: any): Promise<string> {
375
+ let script = '(function() {\n';
376
+ script += ' /* Server Script for ' + requirements.title + ' */\n\n';
377
+
378
+ script += ' try {\n';
379
+
380
+ // Handle different actions
381
+ script += ' var action = input.action || "load";\n';
382
+ script += ' gs.log("Widget action: " + action, "' + requirements.name + '");\n\n';
383
+
384
+ script += ' if (action === "load") {\n';
385
+ script += ' loadWidgetData();\n';
386
+ script += ' } else if (action === "refresh") {\n';
387
+ script += ' loadWidgetData();\n';
388
+ script += ' } else if (action === "submit") {\n';
389
+ script += ' handleFormSubmission();\n';
390
+ script += ' }\n\n';
391
+
392
+ // Load data function
393
+ script += ' function loadWidgetData() {\n';
394
+ script += ' try {\n';
395
+ script += ' data.title = "' + requirements.title + '";\n';
396
+ script += ' gs.log("Loading widget data for: " + data.title, "' + requirements.name + '");\n';
397
+
398
+ if (requirements.dataSource) {
399
+ script += ' \n // Query ' + requirements.dataSource + ' table\n';
400
+ script += ' var gr = new GlideRecord("' + requirements.dataSource + '");\n';
401
+ script += ' gr.addQuery("active", "true"); // ✅ FIXED: Use string instead of boolean\n';
402
+ script += ' gr.orderByDesc("sys_created_on");\n';
403
+ script += ' gr.setLimit(10);\n';
404
+ script += ' gr.query();\n';
405
+ script += ' \n var recordCount = gr.getRowCount();\n';
406
+ script += ' gs.log("Found " + recordCount + " active records", "' + requirements.name + '");\n\n';
407
+
408
+ if (requirements.needsTable) {
409
+ script += ' // Prepare table data\n';
410
+ script += ' data.columns = [\n';
411
+ script += ' { field: "number", label: "Number" },\n';
412
+ script += ' { field: "short_description", label: "Description" },\n';
413
+ script += ' { field: "state", label: "State" },\n';
414
+ script += ' { field: "caller", label: "Caller" }\n';
415
+ script += ' ];\n';
416
+ script += ' data.rows = [];\n\n';
417
+
418
+ script += ' while (gr.next()) {\n';
419
+ script += ' var row = {\n';
420
+ script += ' sys_id: gr.getUniqueValue(),\n';
421
+ script += ' number: gr.getValue("number") || "",\n';
422
+ script += ' short_description: gr.getValue("short_description") || "",\n';
423
+ script += ' state: gr.getDisplayValue("state") || "Unknown",\n';
424
+ script += ' caller: ""\n';
425
+ script += ' };\n\n';
426
+
427
+ script += ' // ✅ FIXED: Safe caller info lookup with proper null checks\n';
428
+ script += ' if (gr.caller_id && !gr.caller_id.nil()) {\n';
429
+ script += ' try {\n';
430
+ script += ' var callerGr = new GlideRecord("sys_user");\n';
431
+ script += ' if (callerGr.get(gr.caller_id.toString())) {\n';
432
+ script += ' // ✅ FIXED: Name field with fallback\n';
433
+ script += ' var callerName = callerGr.getDisplayValue("name");\n';
434
+ script += ' if (!callerName) {\n';
435
+ script += ' var firstName = callerGr.getValue("first_name") || "";\n';
436
+ script += ' var lastName = callerGr.getValue("last_name") || "";\n';
437
+ script += ' callerName = (firstName + " " + lastName).trim() || "Unknown User";\n';
438
+ script += ' }\n';
439
+ script += ' row.caller = callerName;\n';
440
+ script += ' } else {\n';
441
+ script += ' row.caller = "User Not Found";\n';
442
+ script += ' }\n';
443
+ script += ' } catch (callerError) {\n';
444
+ script += ' gs.warn("Error fetching caller info: " + callerError.message, "' + requirements.name + '");\n';
445
+ script += ' row.caller = "Error Loading User";\n';
446
+ script += ' }\n';
447
+ script += ' } else {\n';
448
+ script += ' row.caller = "No Caller";\n';
449
+ script += ' }\n\n';
450
+
451
+ script += ' data.rows.push(row);\n';
452
+ script += ' }\n';
453
+ script += ' \n gs.log("Processed " + data.rows.length + " table rows", "' + requirements.name + '");\n';
454
+ }
455
+
456
+ if (requirements.needsChart) {
457
+ script += ' \n // Prepare chart data\n';
458
+ script += ' var chartData = {\n';
459
+ script += ' type: "bar",\n';
460
+ script += ' labels: [],\n';
461
+ script += ' datasets: [{\n';
462
+ script += ' label: "' + requirements.dataSource + ' by State",\n';
463
+ script += ' data: [],\n';
464
+ script += ' backgroundColor: ["#428bca", "#5cb85c", "#d9534f", "#f0ad4e"]\n';
465
+ script += ' }]\n';
466
+ script += ' };\n\n';
467
+
468
+ script += ' // Aggregate data for chart\n';
469
+ script += ' var stateCount = {};\n';
470
+ script += ' gr.rewind();\n';
471
+ script += ' while (gr.next()) {\n';
472
+ script += ' var state = gr.getDisplayValue("state") || "Unknown";\n';
473
+ script += ' stateCount[state] = (stateCount[state] || 0) + 1;\n';
474
+ script += ' }\n\n';
475
+
476
+ script += ' for (var state in stateCount) {\n';
477
+ script += ' chartData.labels.push(state);\n';
478
+ script += ' chartData.datasets[0].data.push(stateCount[state]);\n';
479
+ script += ' }\n';
480
+ script += ' data.chartData = chartData;\n';
481
+ script += ' gs.log("Chart prepared with " + chartData.labels.length + " categories", "' + requirements.name + '");\n';
482
+ }
483
+ }
484
+
485
+ script += ' } catch (loadError) {\n';
486
+ script += ' gs.error("Error loading widget data: " + loadError.message, "' + requirements.name + '");\n';
487
+ script += ' data.error = "Error loading data: " + loadError.message;\n';
488
+ script += ' data.success = false;\n';
489
+ script += ' }\n';
490
+ script += ' }\n\n';
491
+
492
+ if (requirements.needsForm) {
493
+ script += ' function handleFormSubmission() {\n';
494
+ script += ' try {\n';
495
+ script += ' var formData = input.data || {};\n';
496
+ script += ' gs.log("Processing form submission", "' + requirements.name + '");\n';
497
+ script += ' \n';
498
+ script += ' // ✅ FIXED: Validate form data\n';
499
+ script += ' if (!formData || Object.keys(formData).length === 0) {\n';
500
+ script += ' throw new Error("No form data provided");\n';
501
+ script += ' }\n';
502
+ script += ' \n';
503
+ script += ' // Process form submission\n';
504
+ script += ' // Add your form processing logic here\n';
505
+ script += ' \n';
506
+ script += ' data.success = true;\n';
507
+ script += ' data.message = "Form submitted successfully";\n';
508
+ script += ' gs.log("Form submission successful", "' + requirements.name + '");\n';
509
+ script += ' } catch (formError) {\n';
510
+ script += ' gs.error("Error processing form: " + formError.message, "' + requirements.name + '");\n';
511
+ script += ' data.success = false;\n';
512
+ script += ' data.error = "Form submission failed: " + formError.message;\n';
513
+ script += ' }\n';
514
+ script += ' }\n';
515
+ }
516
+
517
+ script += ' } catch (error) {\n';
518
+ script += ' gs.error("Critical widget error: " + error.message, "' + requirements.name + '");\n';
519
+ script += ' data.error = "Widget error: " + error.message;\n';
520
+ script += ' data.success = false;\n';
521
+ script += ' }\n';
522
+ script += '})();';
523
+
524
+ return script;
525
+ }
526
+
527
+ private async generateDemoData(requirements: any): Promise<any> {
528
+ const demoData: any = {};
529
+
530
+ if (requirements.needsTable) {
531
+ demoData.rows = [
532
+ { number: 'INC0010001', short_description: 'Network connectivity issue', state: 'Open' },
533
+ { number: 'INC0010002', short_description: 'Software installation request', state: 'In Progress' },
534
+ { number: 'INC0010003', short_description: 'Password reset', state: 'Resolved' }
535
+ ];
536
+ }
537
+
538
+ if (requirements.needsChart) {
539
+ demoData.chartData = {
540
+ type: 'bar',
541
+ labels: ['Open', 'In Progress', 'Resolved', 'Closed'],
542
+ datasets: [{
543
+ label: 'Records by State',
544
+ data: [12, 8, 15, 5],
545
+ backgroundColor: ['#428bca', '#5cb85c', '#f0ad4e', '#d9534f']
546
+ }]
547
+ };
548
+ }
549
+
550
+ return demoData;
551
+ }
552
+
553
+ private prepareDeploymentInstructions(widgetConfig: any): any {
554
+ return {
555
+ mcpTool: 'snow_deploy',
556
+ parameters: {
557
+ type: 'widget',
558
+ config: widgetConfig
559
+ },
560
+ validationSteps: [
561
+ 'Preview widget using snow_preview_widget',
562
+ 'Test widget functionality with snow_widget_test',
563
+ 'Verify responsive design on mobile devices',
564
+ 'Check data binding and server script execution'
565
+ ]
566
+ };
567
+ }
568
+ }