snow-flow 1.4.48 → 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 (529) 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 +12396 -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/dist/agents/app-creator.agent.d.ts.map +0 -1
  155. package/dist/agents/app-creator.agent.js.map +0 -1
  156. package/dist/agents/base/base-snow-agent.d.ts.map +0 -1
  157. package/dist/agents/base/base-snow-agent.js.map +0 -1
  158. package/dist/agents/base-agent.d.ts.map +0 -1
  159. package/dist/agents/base-agent.js.map +0 -1
  160. package/dist/agents/base-snow-agent.d.ts.map +0 -1
  161. package/dist/agents/base-snow-agent.js.map +0 -1
  162. package/dist/agents/coordinator.d.ts.map +0 -1
  163. package/dist/agents/coordinator.js.map +0 -1
  164. package/dist/agents/flow-builder-agent.d.ts.map +0 -1
  165. package/dist/agents/flow-builder-agent.js.map +0 -1
  166. package/dist/agents/index.d.ts.map +0 -1
  167. package/dist/agents/index.js.map +0 -1
  168. package/dist/agents/queen-403-handler.d.ts.map +0 -1
  169. package/dist/agents/queen-403-handler.js.map +0 -1
  170. package/dist/agents/queen-agent-example.d.ts.map +0 -1
  171. package/dist/agents/queen-agent-example.js.map +0 -1
  172. package/dist/agents/queen-agent.d.ts.map +0 -1
  173. package/dist/agents/queen-agent.js.map +0 -1
  174. package/dist/agents/queen-agent.test.d.ts.map +0 -1
  175. package/dist/agents/queen-agent.test.js.map +0 -1
  176. package/dist/agents/script-generator.agent.d.ts.map +0 -1
  177. package/dist/agents/script-generator.agent.js.map +0 -1
  178. package/dist/agents/script-writer-agent.d.ts.map +0 -1
  179. package/dist/agents/script-writer-agent.js.map +0 -1
  180. package/dist/agents/security-agent.d.ts.map +0 -1
  181. package/dist/agents/security-agent.js.map +0 -1
  182. package/dist/agents/specialists/automation-specialist.agent.d.ts.map +0 -1
  183. package/dist/agents/specialists/automation-specialist.agent.js.map +0 -1
  184. package/dist/agents/specialists/data-specialist.agent.d.ts.map +0 -1
  185. package/dist/agents/specialists/data-specialist.agent.js.map +0 -1
  186. package/dist/agents/specialists/integration-specialist.agent.d.ts.map +0 -1
  187. package/dist/agents/specialists/integration-specialist.agent.js.map +0 -1
  188. package/dist/agents/specialists/reporting-specialist.agent.d.ts.map +0 -1
  189. package/dist/agents/specialists/reporting-specialist.agent.js.map +0 -1
  190. package/dist/agents/specialists/security-specialist.agent.d.ts.map +0 -1
  191. package/dist/agents/specialists/security-specialist.agent.js.map +0 -1
  192. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts.map +0 -1
  193. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js.map +0 -1
  194. package/dist/agents/teams/base-team.d.ts.map +0 -1
  195. package/dist/agents/teams/base-team.js.map +0 -1
  196. package/dist/agents/teams/team-types.d.ts.map +0 -1
  197. package/dist/agents/teams/team-types.js.map +0 -1
  198. package/dist/agents/teams/widget/widget-architect.agent.d.ts.map +0 -1
  199. package/dist/agents/teams/widget/widget-architect.agent.js.map +0 -1
  200. package/dist/agents/teams/widget/widget-backend.agent.d.ts.map +0 -1
  201. package/dist/agents/teams/widget/widget-backend.agent.js.map +0 -1
  202. package/dist/agents/teams/widget/widget-frontend.agent.d.ts.map +0 -1
  203. package/dist/agents/teams/widget/widget-frontend.agent.js.map +0 -1
  204. package/dist/agents/teams/widget/widget-platform.agent.d.ts.map +0 -1
  205. package/dist/agents/teams/widget/widget-platform.agent.js.map +0 -1
  206. package/dist/agents/teams/widget/widget-uiux.agent.d.ts.map +0 -1
  207. package/dist/agents/teams/widget/widget-uiux.agent.js.map +0 -1
  208. package/dist/agents/test-agent.d.ts.map +0 -1
  209. package/dist/agents/test-agent.js.map +0 -1
  210. package/dist/agents/test-agents.d.ts.map +0 -1
  211. package/dist/agents/test-agents.js.map +0 -1
  212. package/dist/agents/ui-builder.agent.d.ts.map +0 -1
  213. package/dist/agents/ui-builder.agent.js.map +0 -1
  214. package/dist/agents/widget-builder.agent.d.ts.map +0 -1
  215. package/dist/agents/widget-builder.agent.js.map +0 -1
  216. package/dist/agents/widget-creator-agent.d.ts.map +0 -1
  217. package/dist/agents/widget-creator-agent.js.map +0 -1
  218. package/dist/agents/workflow-designer.agent.d.ts.map +0 -1
  219. package/dist/agents/workflow-designer.agent.js.map +0 -1
  220. package/dist/api/error-handling.d.ts.map +0 -1
  221. package/dist/api/error-handling.js.map +0 -1
  222. package/dist/api/flow-designer-api.d.ts.map +0 -1
  223. package/dist/api/flow-designer-api.js.map +0 -1
  224. package/dist/api/natural-language-mapper.d.ts.map +0 -1
  225. package/dist/api/natural-language-mapper.js.map +0 -1
  226. package/dist/api/performance-optimizer.d.ts.map +0 -1
  227. package/dist/api/performance-optimizer.js.map +0 -1
  228. package/dist/api/transaction-manager.d.ts.map +0 -1
  229. package/dist/api/transaction-manager.js.map +0 -1
  230. package/dist/assembly/team-assembler.d.ts.map +0 -1
  231. package/dist/assembly/team-assembler.js.map +0 -1
  232. package/dist/cli/deploy-artifact.d.ts.map +0 -1
  233. package/dist/cli/deploy-artifact.js.map +0 -1
  234. package/dist/cli/snow-flow-cli-integration.d.ts.map +0 -1
  235. package/dist/cli/snow-flow-cli-integration.js.map +0 -1
  236. package/dist/cli.d.ts.map +0 -1
  237. package/dist/cli.js.map +0 -1
  238. package/dist/compliance/advanced-compliance-system.d.ts.map +0 -1
  239. package/dist/compliance/advanced-compliance-system.js.map +0 -1
  240. package/dist/compliance/index.d.ts.map +0 -1
  241. package/dist/compliance/index.js.map +0 -1
  242. package/dist/config/snow-flow-config.d.ts.map +0 -1
  243. package/dist/config/snow-flow-config.js.map +0 -1
  244. package/dist/documentation/index.d.ts.map +0 -1
  245. package/dist/documentation/index.js.map +0 -1
  246. package/dist/documentation/self-documenting-system.d.ts.map +0 -1
  247. package/dist/documentation/self-documenting-system.js.map +0 -1
  248. package/dist/dynamic-version.d.ts.map +0 -1
  249. package/dist/dynamic-version.js.map +0 -1
  250. package/dist/healing/index.d.ts.map +0 -1
  251. package/dist/healing/index.js.map +0 -1
  252. package/dist/healing/self-healing-system.d.ts.map +0 -1
  253. package/dist/healing/self-healing-system.js.map +0 -1
  254. package/dist/health/system-health.d.ts.map +0 -1
  255. package/dist/health/system-health.js.map +0 -1
  256. package/dist/index.d.ts.map +0 -1
  257. package/dist/index.js.map +0 -1
  258. package/dist/intelligence/acl-analyzer.d.ts.map +0 -1
  259. package/dist/intelligence/acl-analyzer.js.map +0 -1
  260. package/dist/intelligence/auto-resolution-engine.d.ts.map +0 -1
  261. package/dist/intelligence/auto-resolution-engine.js.map +0 -1
  262. package/dist/intelligence/gap-analysis-engine.d.ts.map +0 -1
  263. package/dist/intelligence/gap-analysis-engine.js.map +0 -1
  264. package/dist/intelligence/manual-instructions-generator.d.ts.map +0 -1
  265. package/dist/intelligence/manual-instructions-generator.js.map +0 -1
  266. package/dist/intelligence/mcp-coverage-analyzer.d.ts.map +0 -1
  267. package/dist/intelligence/mcp-coverage-analyzer.js.map +0 -1
  268. package/dist/intelligence/multi-pass-requirements-analyzer.d.ts.map +0 -1
  269. package/dist/intelligence/multi-pass-requirements-analyzer.js.map +0 -1
  270. package/dist/intelligence/performance-recommendations-engine.d.ts.map +0 -1
  271. package/dist/intelligence/performance-recommendations-engine.js.map +0 -1
  272. package/dist/intelligence/requirements-analyzer.d.ts.map +0 -1
  273. package/dist/intelligence/requirements-analyzer.js.map +0 -1
  274. package/dist/intelligence/task-analyzer.d.ts.map +0 -1
  275. package/dist/intelligence/task-analyzer.js.map +0 -1
  276. package/dist/managers/scope-manager.d.ts.map +0 -1
  277. package/dist/managers/scope-manager.js.map +0 -1
  278. package/dist/mcp/advanced/servicenow-advanced-features-mcp.d.ts.map +0 -1
  279. package/dist/mcp/advanced/servicenow-advanced-features-mcp.js.map +0 -1
  280. package/dist/mcp/base-mcp-server.d.ts.map +0 -1
  281. package/dist/mcp/base-mcp-server.js.map +0 -1
  282. package/dist/mcp/example-refactored-server.d.ts.map +0 -1
  283. package/dist/mcp/example-refactored-server.js.map +0 -1
  284. package/dist/mcp/http-transport-wrapper.d.ts.map +0 -1
  285. package/dist/mcp/http-transport-wrapper.js.map +0 -1
  286. package/dist/mcp/mcp-wrapper.d.ts.map +0 -1
  287. package/dist/mcp/mcp-wrapper.js.map +0 -1
  288. package/dist/mcp/service-discovery-client.d.ts.map +0 -1
  289. package/dist/mcp/service-discovery-client.js.map +0 -1
  290. package/dist/mcp/servicenow-automation-mcp-refactored.d.ts.map +0 -1
  291. package/dist/mcp/servicenow-automation-mcp-refactored.js.map +0 -1
  292. package/dist/mcp/servicenow-automation-mcp.d.ts.map +0 -1
  293. package/dist/mcp/servicenow-automation-mcp.js.map +0 -1
  294. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +0 -1
  295. package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +0 -1
  296. package/dist/mcp/servicenow-deployment-mcp.d.ts.map +0 -1
  297. package/dist/mcp/servicenow-deployment-mcp.js.map +0 -1
  298. package/dist/mcp/servicenow-flow-composer-mcp-refactored.d.ts.map +0 -1
  299. package/dist/mcp/servicenow-flow-composer-mcp-refactored.js.map +0 -1
  300. package/dist/mcp/servicenow-flow-composer-mcp.d.ts.map +0 -1
  301. package/dist/mcp/servicenow-flow-composer-mcp.js.map +0 -1
  302. package/dist/mcp/servicenow-graph-memory-mcp-refactored.d.ts.map +0 -1
  303. package/dist/mcp/servicenow-graph-memory-mcp-refactored.js.map +0 -1
  304. package/dist/mcp/servicenow-graph-memory-mcp.d.ts.map +0 -1
  305. package/dist/mcp/servicenow-graph-memory-mcp.js.map +0 -1
  306. package/dist/mcp/servicenow-integration-mcp-refactored.d.ts.map +0 -1
  307. package/dist/mcp/servicenow-integration-mcp-refactored.js.map +0 -1
  308. package/dist/mcp/servicenow-integration-mcp.d.ts.map +0 -1
  309. package/dist/mcp/servicenow-integration-mcp.js.map +0 -1
  310. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +0 -1
  311. package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +0 -1
  312. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +0 -1
  313. package/dist/mcp/servicenow-intelligent-mcp.js.map +0 -1
  314. package/dist/mcp/servicenow-mcp-server.d.ts.map +0 -1
  315. package/dist/mcp/servicenow-mcp-server.js.map +0 -1
  316. package/dist/mcp/servicenow-memory-mcp.d.ts.map +0 -1
  317. package/dist/mcp/servicenow-memory-mcp.js.map +0 -1
  318. package/dist/mcp/servicenow-operations-mcp-refactored.d.ts.map +0 -1
  319. package/dist/mcp/servicenow-operations-mcp-refactored.js.map +0 -1
  320. package/dist/mcp/servicenow-operations-mcp.d.ts.map +0 -1
  321. package/dist/mcp/servicenow-operations-mcp.js.map +0 -1
  322. package/dist/mcp/servicenow-platform-development-mcp-refactored.d.ts.map +0 -1
  323. package/dist/mcp/servicenow-platform-development-mcp-refactored.js.map +0 -1
  324. package/dist/mcp/servicenow-platform-development-mcp.d.ts.map +0 -1
  325. package/dist/mcp/servicenow-platform-development-mcp.js.map +0 -1
  326. package/dist/mcp/servicenow-progressive-indexer.d.ts.map +0 -1
  327. package/dist/mcp/servicenow-progressive-indexer.js.map +0 -1
  328. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.d.ts.map +0 -1
  329. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.js.map +0 -1
  330. package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts.map +0 -1
  331. package/dist/mcp/servicenow-reporting-analytics-mcp.js.map +0 -1
  332. package/dist/mcp/servicenow-security-compliance-mcp-refactored.d.ts.map +0 -1
  333. package/dist/mcp/servicenow-security-compliance-mcp-refactored.js.map +0 -1
  334. package/dist/mcp/servicenow-security-compliance-mcp.d.ts.map +0 -1
  335. package/dist/mcp/servicenow-security-compliance-mcp.js.map +0 -1
  336. package/dist/mcp/servicenow-update-set-mcp-refactored.d.ts.map +0 -1
  337. package/dist/mcp/servicenow-update-set-mcp-refactored.js.map +0 -1
  338. package/dist/mcp/servicenow-update-set-mcp.d.ts.map +0 -1
  339. package/dist/mcp/servicenow-update-set-mcp.js.map +0 -1
  340. package/dist/mcp/servicenow-xml-flow-mcp.d.ts.map +0 -1
  341. package/dist/mcp/servicenow-xml-flow-mcp.js.map +0 -1
  342. package/dist/mcp/shared/agent-context-provider.d.ts.map +0 -1
  343. package/dist/mcp/shared/agent-context-provider.js.map +0 -1
  344. package/dist/mcp/shared/base-mcp-server.d.ts.map +0 -1
  345. package/dist/mcp/shared/base-mcp-server.js.map +0 -1
  346. package/dist/mcp/shared/mcp-memory-manager.d.ts.map +0 -1
  347. package/dist/mcp/shared/mcp-memory-manager.js.map +0 -1
  348. package/dist/mcp/shared/mcp-resource-manager.d.ts.map +0 -1
  349. package/dist/mcp/shared/mcp-resource-manager.js.map +0 -1
  350. package/dist/mcp/snow-flow-mcp.d.ts.map +0 -1
  351. package/dist/mcp/snow-flow-mcp.js.map +0 -1
  352. package/dist/mcp/start-all-mcp-servers.d.ts.map +0 -1
  353. package/dist/mcp/start-all-mcp-servers.js.map +0 -1
  354. package/dist/mcp/start-servicenow-mcp.d.ts.map +0 -1
  355. package/dist/mcp/start-servicenow-mcp.js.map +0 -1
  356. package/dist/mcp/test-simple-mcp.d.ts.map +0 -1
  357. package/dist/mcp/test-simple-mcp.js.map +0 -1
  358. package/dist/monitoring/enhanced-monitoring-system.d.ts.map +0 -1
  359. package/dist/monitoring/enhanced-monitoring-system.js.map +0 -1
  360. package/dist/monitoring/performance-tracker.d.ts.map +0 -1
  361. package/dist/monitoring/performance-tracker.js.map +0 -1
  362. package/dist/optimization/cost-optimization-engine.d.ts.map +0 -1
  363. package/dist/optimization/cost-optimization-engine.js.map +0 -1
  364. package/dist/optimization/index.d.ts.map +0 -1
  365. package/dist/optimization/index.js.map +0 -1
  366. package/dist/orchestration/discovery/service-discovery.d.ts.map +0 -1
  367. package/dist/orchestration/discovery/service-discovery.js.map +0 -1
  368. package/dist/orchestration/distributed-orchestrator.d.ts.map +0 -1
  369. package/dist/orchestration/distributed-orchestrator.js.map +0 -1
  370. package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +0 -1
  371. package/dist/orchestration/distribution/task-distribution-engine.js.map +0 -1
  372. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +0 -1
  373. package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +0 -1
  374. package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +0 -1
  375. package/dist/orchestration/protocols/mcpx-protocol.js.map +0 -1
  376. package/dist/orchestration/state/distributed-state-manager.d.ts.map +0 -1
  377. package/dist/orchestration/state/distributed-state-manager.js.map +0 -1
  378. package/dist/orchestrator/flow-composer.d.ts.map +0 -1
  379. package/dist/orchestrator/flow-composer.js.map +0 -1
  380. package/dist/orchestrator/flow-pattern-templates.d.ts.map +0 -1
  381. package/dist/orchestrator/flow-pattern-templates.js.map +0 -1
  382. package/dist/orchestrator/flow-subflow-decision-engine.d.ts.map +0 -1
  383. package/dist/orchestrator/flow-subflow-decision-engine.js.map +0 -1
  384. package/dist/orchestrator/flow-validation-engine.d.ts.map +0 -1
  385. package/dist/orchestrator/flow-validation-engine.js.map +0 -1
  386. package/dist/orchestrator/snow-orchestrator.d.ts.map +0 -1
  387. package/dist/orchestrator/snow-orchestrator.js.map +0 -1
  388. package/dist/orchestrator/subflow-creation-handler.d.ts.map +0 -1
  389. package/dist/orchestrator/subflow-creation-handler.js.map +0 -1
  390. package/dist/patterns/adaptive-patterns.d.ts.map +0 -1
  391. package/dist/patterns/adaptive-patterns.js.map +0 -1
  392. package/dist/queen/advanced-integration-test.d.ts.map +0 -1
  393. package/dist/queen/advanced-integration-test.js.map +0 -1
  394. package/dist/queen/agent-factory.d.ts.map +0 -1
  395. package/dist/queen/agent-factory.js.map +0 -1
  396. package/dist/queen/index.d.ts.map +0 -1
  397. package/dist/queen/index.js.map +0 -1
  398. package/dist/queen/integration-example.d.ts.map +0 -1
  399. package/dist/queen/integration-example.js.map +0 -1
  400. package/dist/queen/integration-test.d.ts.map +0 -1
  401. package/dist/queen/integration-test.js.map +0 -1
  402. package/dist/queen/mcp-execution-bridge.d.ts.map +0 -1
  403. package/dist/queen/mcp-execution-bridge.js.map +0 -1
  404. package/dist/queen/mock-mcp-client.d.ts.map +0 -1
  405. package/dist/queen/mock-mcp-client.js.map +0 -1
  406. package/dist/queen/neural-learning.d.ts.map +0 -1
  407. package/dist/queen/neural-learning.js.map +0 -1
  408. package/dist/queen/parallel-agent-engine.d.ts.map +0 -1
  409. package/dist/queen/parallel-agent-engine.js.map +0 -1
  410. package/dist/queen/queen-memory-system.d.ts.map +0 -1
  411. package/dist/queen/queen-memory-system.js.map +0 -1
  412. package/dist/queen/queen-memory.d.ts.map +0 -1
  413. package/dist/queen/queen-memory.js.map +0 -1
  414. package/dist/queen/run-integration-tests.d.ts.map +0 -1
  415. package/dist/queen/run-integration-tests.js.map +0 -1
  416. package/dist/queen/servicenow-queen.d.ts.map +0 -1
  417. package/dist/queen/servicenow-queen.js.map +0 -1
  418. package/dist/queen/types.d.ts.map +0 -1
  419. package/dist/queen/types.js.map +0 -1
  420. package/dist/rollback/smart-rollback-system.d.ts.map +0 -1
  421. package/dist/rollback/smart-rollback-system.js.map +0 -1
  422. package/dist/snow-flow-system.d.ts.map +0 -1
  423. package/dist/snow-flow-system.js.map +0 -1
  424. package/dist/sparc/coordinators/adaptive-coordinator.d.ts.map +0 -1
  425. package/dist/sparc/coordinators/adaptive-coordinator.js.map +0 -1
  426. package/dist/sparc/coordinators/team-coordinator.d.ts.map +0 -1
  427. package/dist/sparc/coordinators/team-coordinator.js.map +0 -1
  428. package/dist/sparc/modes/team-modes.d.ts.map +0 -1
  429. package/dist/sparc/modes/team-modes.js.map +0 -1
  430. package/dist/sparc/sparc-help.d.ts.map +0 -1
  431. package/dist/sparc/sparc-help.js.map +0 -1
  432. package/dist/sparc/team-sparc.d.ts.map +0 -1
  433. package/dist/sparc/team-sparc.js.map +0 -1
  434. package/dist/sparc/teams/application-team.d.ts.map +0 -1
  435. package/dist/sparc/teams/application-team.js.map +0 -1
  436. package/dist/sparc/teams/flow-team.d.ts.map +0 -1
  437. package/dist/sparc/teams/flow-team.js.map +0 -1
  438. package/dist/sparc/teams/widget-team.d.ts.map +0 -1
  439. package/dist/sparc/teams/widget-team.js.map +0 -1
  440. package/dist/specialists/app-specialists.d.ts.map +0 -1
  441. package/dist/specialists/app-specialists.js.map +0 -1
  442. package/dist/specialists/base-specialist.d.ts.map +0 -1
  443. package/dist/specialists/base-specialist.js.map +0 -1
  444. package/dist/specialists/flow-specialists.d.ts.map +0 -1
  445. package/dist/specialists/flow-specialists.js.map +0 -1
  446. package/dist/specialists/individual-specialists.d.ts.map +0 -1
  447. package/dist/specialists/individual-specialists.js.map +0 -1
  448. package/dist/specialists/widget-specialists.d.ts.map +0 -1
  449. package/dist/specialists/widget-specialists.js.map +0 -1
  450. package/dist/strategies/global-scope-strategy.d.ts.map +0 -1
  451. package/dist/strategies/global-scope-strategy.js.map +0 -1
  452. package/dist/teams/adaptive-team.d.ts.map +0 -1
  453. package/dist/teams/adaptive-team.js.map +0 -1
  454. package/dist/teams/application-team.d.ts.map +0 -1
  455. package/dist/teams/application-team.js.map +0 -1
  456. package/dist/teams/base-team.d.ts.map +0 -1
  457. package/dist/teams/base-team.js.map +0 -1
  458. package/dist/teams/flow-team.d.ts.map +0 -1
  459. package/dist/teams/flow-team.js.map +0 -1
  460. package/dist/teams/widget-team.d.ts.map +0 -1
  461. package/dist/teams/widget-team.js.map +0 -1
  462. package/dist/testing/integration-test-suite.d.ts.map +0 -1
  463. package/dist/testing/integration-test-suite.js.map +0 -1
  464. package/dist/types/index.d.ts.map +0 -1
  465. package/dist/types/index.js.map +0 -1
  466. package/dist/types/servicenow.types.d.ts.map +0 -1
  467. package/dist/types/servicenow.types.js.map +0 -1
  468. package/dist/types/snow-flow.types.d.ts.map +0 -1
  469. package/dist/types/snow-flow.types.js.map +0 -1
  470. package/dist/types/todo.types.d.ts.map +0 -1
  471. package/dist/types/todo.types.js.map +0 -1
  472. package/dist/utils/action-type-cache.d.ts.map +0 -1
  473. package/dist/utils/action-type-cache.js.map +0 -1
  474. package/dist/utils/agent-detector.d.ts.map +0 -1
  475. package/dist/utils/agent-detector.js.map +0 -1
  476. package/dist/utils/artifact-tracker.d.ts.map +0 -1
  477. package/dist/utils/artifact-tracker.js.map +0 -1
  478. package/dist/utils/dependency-detector.d.ts.map +0 -1
  479. package/dist/utils/dependency-detector.js.map +0 -1
  480. package/dist/utils/deployment-metadata-handler.d.ts.map +0 -1
  481. package/dist/utils/deployment-metadata-handler.js.map +0 -1
  482. package/dist/utils/error-recovery.d.ts.map +0 -1
  483. package/dist/utils/error-recovery.js.map +0 -1
  484. package/dist/utils/flow-api-discovery.d.ts.map +0 -1
  485. package/dist/utils/flow-api-discovery.js.map +0 -1
  486. package/dist/utils/flow-xml-generator.d.ts.map +0 -1
  487. package/dist/utils/flow-xml-generator.js.map +0 -1
  488. package/dist/utils/logger.d.ts.map +0 -1
  489. package/dist/utils/logger.js.map +0 -1
  490. package/dist/utils/mcp-auth-middleware.d.ts.map +0 -1
  491. package/dist/utils/mcp-auth-middleware.js.map +0 -1
  492. package/dist/utils/mcp-config-manager.d.ts.map +0 -1
  493. package/dist/utils/mcp-config-manager.js.map +0 -1
  494. package/dist/utils/mcp-server-manager.d.ts.map +0 -1
  495. package/dist/utils/mcp-server-manager.js.map +0 -1
  496. package/dist/utils/mcp-tool-registry.d.ts.map +0 -1
  497. package/dist/utils/mcp-tool-registry.js.map +0 -1
  498. package/dist/utils/migrate-claude-flow.d.ts.map +0 -1
  499. package/dist/utils/migrate-claude-flow.js.map +0 -1
  500. package/dist/utils/migrate-snow-flow.d.ts.map +0 -1
  501. package/dist/utils/migrate-snow-flow.js.map +0 -1
  502. package/dist/utils/oauth-html-templates.d.ts.map +0 -1
  503. package/dist/utils/oauth-html-templates.js.map +0 -1
  504. package/dist/utils/scope-utils.d.ts.map +0 -1
  505. package/dist/utils/scope-utils.js.map +0 -1
  506. package/dist/utils/servicenow-client.d.ts.map +0 -1
  507. package/dist/utils/servicenow-client.js.map +0 -1
  508. package/dist/utils/servicenow-id-generator.d.ts.map +0 -1
  509. package/dist/utils/servicenow-id-generator.js.map +0 -1
  510. package/dist/utils/snow-memory-manager.d.ts.map +0 -1
  511. package/dist/utils/snow-memory-manager.js.map +0 -1
  512. package/dist/utils/snow-oauth-old.d.ts.map +0 -1
  513. package/dist/utils/snow-oauth-old.js.map +0 -1
  514. package/dist/utils/snow-oauth.d.ts.map +0 -1
  515. package/dist/utils/snow-oauth.js.map +0 -1
  516. package/dist/utils/template-engine.d.ts.map +0 -1
  517. package/dist/utils/template-engine.js.map +0 -1
  518. package/dist/utils/theme-manager.d.ts.map +0 -1
  519. package/dist/utils/theme-manager.js.map +0 -1
  520. package/dist/utils/unified-auth-store.d.ts.map +0 -1
  521. package/dist/utils/unified-auth-store.js.map +0 -1
  522. package/dist/utils/update-set-importer.d.ts.map +0 -1
  523. package/dist/utils/update-set-importer.js.map +0 -1
  524. package/dist/utils/update-set-xml-packager.d.ts.map +0 -1
  525. package/dist/utils/update-set-xml-packager.js.map +0 -1
  526. package/dist/utils/widget-template-generator.d.ts.map +0 -1
  527. package/dist/utils/widget-template-generator.js.map +0 -1
  528. package/dist/version.d.ts.map +0 -1
  529. package/dist/version.js.map +0 -1
@@ -0,0 +1,611 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * servicenow-platform-development MCP Server - REFACTORED
4
+ * Uses BaseMCPServer to eliminate code duplication
5
+ */
6
+
7
+ import { BaseMCPServer, ToolResult } from './base-mcp-server.js';
8
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
9
+
10
+ interface DynamicTableInfo {
11
+ name: string;
12
+ label: string;
13
+ fields: Array<{
14
+ name: string;
15
+ type: string;
16
+ label: string;
17
+ mandatory: boolean;
18
+ display: boolean;
19
+ }>;
20
+ }
21
+
22
+ export class ServiceNowPlatformDevelopmentMCP extends BaseMCPServer {
23
+ private tableCache: Map<string, DynamicTableInfo> = new Map();
24
+
25
+ constructor() {
26
+ super({
27
+ name: 'servicenow-platform-development',
28
+ version: '2.0.0',
29
+ description: 'Handles core platform development artifacts with full dynamic discovery'
30
+ });
31
+ }
32
+
33
+ protected setupTools(): void {
34
+ // Tools are defined in getTools() method
35
+ }
36
+
37
+ protected getTools(): Tool[] {
38
+ return [
39
+ {
40
+ name: 'snow_create_ui_page',
41
+ description: 'Create UI Pages dynamically with full field discovery - NO hardcoded values',
42
+ inputSchema: {
43
+ type: 'object',
44
+ properties: {
45
+ name: { type: 'string', description: 'UI Page name' },
46
+ title: { type: 'string', description: 'Page title' },
47
+ html: { type: 'string', description: 'HTML content' },
48
+ processingScript: { type: 'string', description: 'Server-side processing script' },
49
+ clientScript: { type: 'string', description: 'Client-side script' },
50
+ css: { type: 'string', description: 'CSS styles' },
51
+ category: { type: 'string', description: 'Page category' }
52
+ },
53
+ required: ['name', 'title', 'html']
54
+ }
55
+ },
56
+ {
57
+ name: 'snow_create_script_include',
58
+ description: 'Create Script Includes with dynamic table discovery - NO hardcoded values',
59
+ inputSchema: {
60
+ type: 'object',
61
+ properties: {
62
+ name: { type: 'string', description: 'Script Include name' },
63
+ script: { type: 'string', description: 'JavaScript code' },
64
+ description: { type: 'string', description: 'Description of functionality' },
65
+ clientCallable: { type: 'boolean', description: 'Can be called from client' },
66
+ apiName: { type: 'string', description: 'API name for external calls' }
67
+ },
68
+ required: ['name', 'script']
69
+ }
70
+ },
71
+ {
72
+ name: 'snow_create_business_rule',
73
+ description: 'Create Business Rules with dynamic table and field discovery - NO hardcoded values',
74
+ inputSchema: {
75
+ type: 'object',
76
+ properties: {
77
+ name: { type: 'string', description: 'Business Rule name' },
78
+ tableName: { type: 'string', description: 'Target table name or sys_id' },
79
+ script: { type: 'string', description: 'JavaScript code' },
80
+ when: { type: 'string', description: 'When to execute: before, after, async, display' },
81
+ condition: { type: 'string', description: 'Condition script' },
82
+ description: { type: 'string', description: 'Rule description' }
83
+ },
84
+ required: ['name', 'tableName', 'script', 'when']
85
+ }
86
+ },
87
+ {
88
+ name: 'snow_create_client_script',
89
+ description: 'Create Client Scripts with dynamic form discovery - NO hardcoded values',
90
+ inputSchema: {
91
+ type: 'object',
92
+ properties: {
93
+ name: { type: 'string', description: 'Client Script name' },
94
+ tableName: { type: 'string', description: 'Target table name or sys_id' },
95
+ script: { type: 'string', description: 'JavaScript code' },
96
+ type: { type: 'string', description: 'Script type: onLoad, onChange, onSubmit, onCellEdit' },
97
+ fieldName: { type: 'string', description: 'Field name for onChange scripts' },
98
+ condition: { type: 'string', description: 'Condition script' },
99
+ description: { type: 'string', description: 'Script description' }
100
+ },
101
+ required: ['name', 'tableName', 'script', 'type']
102
+ }
103
+ },
104
+ {
105
+ name: 'snow_create_ui_policy',
106
+ description: 'Create UI Policies with dynamic field discovery - NO hardcoded values',
107
+ inputSchema: {
108
+ type: 'object',
109
+ properties: {
110
+ name: { type: 'string', description: 'UI Policy name' },
111
+ tableName: { type: 'string', description: 'Target table name or sys_id' },
112
+ condition: { type: 'string', description: 'Condition script' },
113
+ description: { type: 'string', description: 'Policy description' },
114
+ runScripts: { type: 'boolean', description: 'Run scripts when policy applies' },
115
+ reverseWhenFalse: { type: 'boolean', description: 'Reverse actions when condition is false' }
116
+ },
117
+ required: ['name', 'tableName', 'condition']
118
+ }
119
+ },
120
+ {
121
+ name: 'snow_create_ui_action',
122
+ description: 'Create UI Actions with dynamic form discovery - NO hardcoded values',
123
+ inputSchema: {
124
+ type: 'object',
125
+ properties: {
126
+ name: { type: 'string', description: 'UI Action name' },
127
+ tableName: { type: 'string', description: 'Target table name or sys_id' },
128
+ script: { type: 'string', description: 'JavaScript code' },
129
+ condition: { type: 'string', description: 'Condition script' },
130
+ actionName: { type: 'string', description: 'Action name for forms' },
131
+ formButton: { type: 'boolean', description: 'Show as form button' },
132
+ listButton: { type: 'boolean', description: 'Show as list button' },
133
+ description: { type: 'string', description: 'Action description' }
134
+ },
135
+ required: ['name', 'tableName', 'script']
136
+ }
137
+ },
138
+ {
139
+ name: 'snow_discover_platform_tables',
140
+ description: 'Discover all available platform development tables dynamically',
141
+ inputSchema: {
142
+ type: 'object',
143
+ properties: {
144
+ category: { type: 'string', description: 'Filter by category: ui, script, policy, action, all' }
145
+ }
146
+ }
147
+ },
148
+ {
149
+ name: 'snow_discover_table_fields',
150
+ description: 'Discover all fields for a specific table dynamically',
151
+ inputSchema: {
152
+ type: 'object',
153
+ properties: {
154
+ tableName: { type: 'string', description: 'Table name to discover fields for' }
155
+ },
156
+ required: ['tableName']
157
+ }
158
+ },
159
+ {
160
+ name: 'snow_table_schema_discovery',
161
+ description: 'Comprehensive table schema discovery - structure, relationships, indexes, constraints',
162
+ inputSchema: {
163
+ type: 'object',
164
+ properties: {
165
+ tableName: { type: 'string', description: 'Table name to analyze' },
166
+ includeRelated: { type: 'boolean', description: 'Include related table information' },
167
+ includeIndexes: { type: 'boolean', description: 'Include index information' },
168
+ includeExtensions: { type: 'boolean', description: 'Include table extensions/hierarchy' },
169
+ maxDepth: { type: 'number', description: 'Max depth for relationship discovery (default: 2)' }
170
+ },
171
+ required: ['tableName']
172
+ }
173
+ }
174
+ ];
175
+ }
176
+
177
+ protected async executeTool(name: string, args: any): Promise<ToolResult> {
178
+ const startTime = Date.now();
179
+
180
+ switch (name) {
181
+ case 'snow_create_ui_page':
182
+ return await this.handleSnowCreateUiPage(args);
183
+ case 'snow_create_script_include':
184
+ return await this.handleSnowCreateScriptInclude(args);
185
+ case 'snow_create_business_rule':
186
+ return await this.handleSnowCreateBusinessRule(args);
187
+ case 'snow_create_client_script':
188
+ return await this.handleSnowCreateClientScript(args);
189
+ case 'snow_create_ui_policy':
190
+ return await this.handleSnowCreateUiPolicy(args);
191
+ case 'snow_create_ui_action':
192
+ return await this.handleSnowCreateUiAction(args);
193
+ case 'snow_discover_platform_tables':
194
+ return await this.handleSnowDiscoverPlatformTables(args);
195
+ case 'snow_discover_table_fields':
196
+ return await this.handleSnowDiscoverTableFields(args);
197
+ case 'snow_table_schema_discovery':
198
+ return await this.handleSnowTableSchemaDiscovery(args);
199
+ default:
200
+ return {
201
+ success: false,
202
+ error: `Unknown tool: ${name}`
203
+ };
204
+ }
205
+ }
206
+
207
+ // Tool handlers
208
+ private async handleSnowCreateUiPage(args: any): Promise<ToolResult> {
209
+ try {
210
+ const pageData = {
211
+ name: args.name,
212
+ title: args.title,
213
+ html: args.html,
214
+ processing_script: args.processingScript,
215
+ client_script: args.clientScript,
216
+ css: args.css,
217
+ category: args.category || 'general',
218
+ active: true
219
+ };
220
+
221
+ const result = await this.client.createRecord('sys_ui_page', pageData);
222
+
223
+ return {
224
+ success: result.success,
225
+ result: result.result,
226
+ error: result.success ? undefined : 'Failed to create UI page',
227
+ executionTime: Date.now() - Date.now()
228
+ };
229
+ } catch (error) {
230
+ return {
231
+ success: false,
232
+ error: error instanceof Error ? error.message : 'Failed to create UI page',
233
+ executionTime: Date.now() - Date.now()
234
+ };
235
+ }
236
+ }
237
+
238
+ private async handleSnowCreateScriptInclude(args: any): Promise<ToolResult> {
239
+ try {
240
+ const scriptData = {
241
+ name: args.name,
242
+ script: args.script,
243
+ description: args.description,
244
+ client_callable: args.clientCallable || false,
245
+ api_name: args.apiName || args.name,
246
+ active: true
247
+ };
248
+
249
+ const result = await this.client.createRecord('sys_script_include', scriptData);
250
+
251
+ return {
252
+ success: result.success,
253
+ result: result.result,
254
+ error: result.success ? undefined : 'Failed to create script include',
255
+ executionTime: Date.now() - Date.now()
256
+ };
257
+ } catch (error) {
258
+ return {
259
+ success: false,
260
+ error: error instanceof Error ? error.message : 'Failed to create script include',
261
+ executionTime: Date.now() - Date.now()
262
+ };
263
+ }
264
+ }
265
+
266
+ private async handleSnowCreateBusinessRule(args: any): Promise<ToolResult> {
267
+ try {
268
+ // Resolve table name
269
+ const tableInfo = await this.getTableInfo(args.tableName);
270
+ if (!tableInfo) {
271
+ throw new Error(`Table not found: ${args.tableName}`);
272
+ }
273
+
274
+ const ruleData = {
275
+ name: args.name,
276
+ collection: tableInfo.name,
277
+ script: args.script,
278
+ when: args.when,
279
+ condition: args.condition || '',
280
+ description: args.description || '',
281
+ active: true,
282
+ order: 100
283
+ };
284
+
285
+ const result = await this.client.createRecord('sys_script', ruleData);
286
+
287
+ return {
288
+ success: result.success,
289
+ result: result.result,
290
+ error: result.success ? undefined : 'Failed to create business rule',
291
+ executionTime: Date.now() - Date.now()
292
+ };
293
+ } catch (error) {
294
+ return {
295
+ success: false,
296
+ error: error instanceof Error ? error.message : 'Failed to create business rule',
297
+ executionTime: Date.now() - Date.now()
298
+ };
299
+ }
300
+ }
301
+
302
+ private async handleSnowCreateClientScript(args: any): Promise<ToolResult> {
303
+ try {
304
+ // Resolve table name
305
+ const tableInfo = await this.getTableInfo(args.tableName);
306
+ if (!tableInfo) {
307
+ throw new Error(`Table not found: ${args.tableName}`);
308
+ }
309
+
310
+ const scriptData = {
311
+ name: args.name,
312
+ table: tableInfo.name,
313
+ script: args.script,
314
+ type: args.type,
315
+ field: args.fieldName || '',
316
+ condition: args.condition || '',
317
+ description: args.description || '',
318
+ active: true
319
+ };
320
+
321
+ const result = await this.client.createRecord('sys_script_client', scriptData);
322
+
323
+ return {
324
+ success: result.success,
325
+ result: result.result,
326
+ error: result.success ? undefined : 'Failed to create client script',
327
+ executionTime: Date.now() - Date.now()
328
+ };
329
+ } catch (error) {
330
+ return {
331
+ success: false,
332
+ error: error instanceof Error ? error.message : 'Failed to create client script',
333
+ executionTime: Date.now() - Date.now()
334
+ };
335
+ }
336
+ }
337
+
338
+ private async handleSnowCreateUiPolicy(args: any): Promise<ToolResult> {
339
+ try {
340
+ // Resolve table name
341
+ const tableInfo = await this.getTableInfo(args.tableName);
342
+ if (!tableInfo) {
343
+ throw new Error(`Table not found: ${args.tableName}`);
344
+ }
345
+
346
+ const policyData = {
347
+ name: args.name,
348
+ table: tableInfo.name,
349
+ conditions: args.condition,
350
+ short_description: args.description || '',
351
+ run_scripts: args.runScripts || false,
352
+ reverse_if_false: args.reverseWhenFalse || false,
353
+ active: true
354
+ };
355
+
356
+ const result = await this.client.createRecord('sys_ui_policy', policyData);
357
+
358
+ return {
359
+ success: result.success,
360
+ result: result.result,
361
+ error: result.success ? undefined : 'Failed to create UI policy',
362
+ executionTime: Date.now() - Date.now()
363
+ };
364
+ } catch (error) {
365
+ return {
366
+ success: false,
367
+ error: error instanceof Error ? error.message : 'Failed to create UI policy',
368
+ executionTime: Date.now() - Date.now()
369
+ };
370
+ }
371
+ }
372
+
373
+ private async handleSnowCreateUiAction(args: any): Promise<ToolResult> {
374
+ try {
375
+ // Resolve table name
376
+ const tableInfo = await this.getTableInfo(args.tableName);
377
+ if (!tableInfo) {
378
+ throw new Error(`Table not found: ${args.tableName}`);
379
+ }
380
+
381
+ const actionData = {
382
+ name: args.name,
383
+ table: tableInfo.name,
384
+ script: args.script,
385
+ condition: args.condition || '',
386
+ action_name: args.actionName || args.name,
387
+ form_button: args.formButton !== false,
388
+ list_button: args.listButton || false,
389
+ comments: args.description || '',
390
+ active: true
391
+ };
392
+
393
+ const result = await this.client.createRecord('sys_ui_action', actionData);
394
+
395
+ return {
396
+ success: result.success,
397
+ result: result.result,
398
+ error: result.success ? undefined : 'Failed to create UI action',
399
+ executionTime: Date.now() - Date.now()
400
+ };
401
+ } catch (error) {
402
+ return {
403
+ success: false,
404
+ error: error instanceof Error ? error.message : 'Failed to create UI action',
405
+ executionTime: Date.now() - Date.now()
406
+ };
407
+ }
408
+ }
409
+
410
+ private async handleSnowDiscoverPlatformTables(args: any): Promise<ToolResult> {
411
+ try {
412
+ this.logger.info('Discovering platform development tables...');
413
+
414
+ // Define table categories
415
+ const tableQueries = [
416
+ { category: 'ui', query: 'nameSTARTSWITHsys_ui^ORnameSTARTSWITHsp_' },
417
+ { category: 'script', query: 'nameSTARTSWITHsys_script^ORnameSTARTSWITHsys_processor' },
418
+ { category: 'policy', query: 'nameSTARTSWITHsys_ui_policy^ORnameSTARTSWITHsys_ui_action' },
419
+ { category: 'security', query: 'nameSTARTSWITHsys_security^ORnameSTARTSWITHsys_user' },
420
+ { category: 'system', query: 'nameSTARTSWITHsys_dictionary^ORnameSTARTSWITHsys_choice' }
421
+ ];
422
+
423
+ const category = args?.category || 'all';
424
+ const discoveredTables: Array<{category: string, tables: any[]}> = [];
425
+
426
+ for (const tableQuery of tableQueries) {
427
+ if (category === 'all' || category === tableQuery.category) {
428
+ const tablesResponse = await this.client.searchRecords(
429
+ 'sys_db_object',
430
+ tableQuery.query,
431
+ 50
432
+ );
433
+
434
+ if (tablesResponse.success && tablesResponse.data) {
435
+ discoveredTables.push({
436
+ category: tableQuery.category,
437
+ tables: tablesResponse.data.result.map((table: any) => ({
438
+ name: table.name,
439
+ label: table.label,
440
+ super_class: table.super_class,
441
+ is_extendable: table.is_extendable,
442
+ sys_id: table.sys_id
443
+ }))
444
+ });
445
+ }
446
+ }
447
+ }
448
+
449
+ return {
450
+ success: true,
451
+ result: { discoveredTables },
452
+ executionTime: Date.now() - Date.now()
453
+ };
454
+ } catch (error) {
455
+ return {
456
+ success: false,
457
+ error: error instanceof Error ? error.message : 'Failed to discover platform tables',
458
+ executionTime: Date.now() - Date.now()
459
+ };
460
+ }
461
+ }
462
+
463
+ private async handleSnowDiscoverTableFields(args: any): Promise<ToolResult> {
464
+ try {
465
+ const tableName = args.tableName;
466
+ this.logger.info(`Discovering fields for table: ${tableName}`);
467
+
468
+ // Resolve table name
469
+ const tableInfo = await this.getTableInfo(tableName);
470
+ if (!tableInfo) {
471
+ throw new Error(`Table not found: ${tableName}`);
472
+ }
473
+
474
+ // Get all fields for this table
475
+ const fieldsResponse = await this.client.searchRecords(
476
+ 'sys_dictionary',
477
+ `nameSTARTSWITH${tableInfo.name}^element!=NULL`,
478
+ 100
479
+ );
480
+
481
+ if (!fieldsResponse.success || !fieldsResponse.data) {
482
+ throw new Error(`Failed to get fields for table: ${tableName}`);
483
+ }
484
+
485
+ const fields = fieldsResponse.data.result.map((field: any) => ({
486
+ name: field.element,
487
+ type: field.internal_type,
488
+ label: field.column_label,
489
+ mandatory: field.mandatory === 'true',
490
+ display: field.display === 'true',
491
+ max_length: field.max_length,
492
+ reference: field.reference,
493
+ choice: field.choice
494
+ }));
495
+
496
+ // Cache the table info
497
+ this.tableCache.set(tableName, {
498
+ name: tableInfo.name,
499
+ label: tableInfo.label,
500
+ fields: fields
501
+ });
502
+
503
+ return {
504
+ success: true,
505
+ result: { table: tableInfo, fields },
506
+ executionTime: Date.now() - Date.now()
507
+ };
508
+ } catch (error) {
509
+ return {
510
+ success: false,
511
+ error: error instanceof Error ? error.message : 'Failed to discover table fields',
512
+ executionTime: Date.now() - Date.now()
513
+ };
514
+ }
515
+ }
516
+
517
+ private async handleSnowTableSchemaDiscovery(args: any): Promise<ToolResult> {
518
+ try {
519
+ this.logger.info(`Discovering schema for table: ${args.tableName}`);
520
+
521
+ // Get basic table info and fields
522
+ const fieldsResult = await this.handleSnowDiscoverTableFields({ tableName: args.tableName });
523
+ if (!fieldsResult.success) {
524
+ return fieldsResult;
525
+ }
526
+
527
+ const schema: any = {
528
+ table: fieldsResult.result?.table,
529
+ fields: fieldsResult.result?.fields
530
+ };
531
+
532
+ // Add relationships if requested
533
+ if (args.includeRelated) {
534
+ // This would involve querying reference fields and foreign keys
535
+ schema.relationships = [];
536
+ }
537
+
538
+ // Add indexes if requested
539
+ if (args.includeIndexes) {
540
+ // This would involve querying sys_db_index
541
+ schema.indexes = [];
542
+ }
543
+
544
+ // Add extensions if requested
545
+ if (args.includeExtensions) {
546
+ // This would involve querying parent/child tables
547
+ schema.extensions = [];
548
+ }
549
+
550
+ return {
551
+ success: true,
552
+ result: schema,
553
+ executionTime: Date.now() - Date.now()
554
+ };
555
+ } catch (error) {
556
+ return {
557
+ success: false,
558
+ error: error instanceof Error ? error.message : 'Failed to discover table schema',
559
+ executionTime: Date.now() - Date.now()
560
+ };
561
+ }
562
+ }
563
+
564
+ // Helper methods
565
+ private async getTableInfo(tableName: string): Promise<{name: string, label: string, sys_id: string} | null> {
566
+ try {
567
+ // Try direct lookup first
568
+ const tableResponse = await this.client.searchRecords(
569
+ 'sys_db_object',
570
+ `name=${tableName}`,
571
+ 1
572
+ );
573
+
574
+ if (tableResponse.success && tableResponse.data?.result?.length > 0) {
575
+ const table = tableResponse.data.result[0];
576
+ return {
577
+ name: table.name,
578
+ label: table.label,
579
+ sys_id: table.sys_id
580
+ };
581
+ }
582
+
583
+ // Try by sys_id
584
+ const tableByIdResponse = await this.client.searchRecords(
585
+ 'sys_db_object',
586
+ `sys_id=${tableName}`,
587
+ 1
588
+ );
589
+
590
+ if (tableByIdResponse.success && tableByIdResponse.data?.result?.length > 0) {
591
+ const table = tableByIdResponse.data.result[0];
592
+ return {
593
+ name: table.name,
594
+ label: table.label,
595
+ sys_id: table.sys_id
596
+ };
597
+ }
598
+
599
+ return null;
600
+ } catch (error) {
601
+ this.logger.error('Failed to get table info:', error);
602
+ return null;
603
+ }
604
+ }
605
+ }
606
+
607
+ // Create and run the server
608
+ if (require.main === module) {
609
+ const server = new ServiceNowPlatformDevelopmentMCP();
610
+ server.start().catch(console.error);
611
+ }