snow-flow 1.1.75 → 1.1.76

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 (161) hide show
  1. package/.claude-flow/queen/queen-memory.db +0 -0
  2. package/.claude-flow/queen-test/test-memory.db +0 -0
  3. package/.claude-flow/queen-test/test-memory.db-agents +0 -0
  4. package/.claude-flow/queen-test/test-memory.db-import +0 -0
  5. package/.claude-flow/queen-test/test-memory.db-memory +0 -0
  6. package/.claude-flow/queen-test/test-memory.db-neural +0 -0
  7. package/CLAUDE.md +111 -8
  8. package/README.md +117 -50
  9. package/deploy.sh +366 -0
  10. package/dist/cli.js +226 -0
  11. package/dist/cli.js.map +1 -1
  12. package/dist/mcp/http-transport-wrapper.d.ts +29 -0
  13. package/dist/mcp/http-transport-wrapper.d.ts.map +1 -0
  14. package/dist/mcp/http-transport-wrapper.js +318 -0
  15. package/dist/mcp/http-transport-wrapper.js.map +1 -0
  16. package/dist/mcp/service-discovery-client.d.ts +83 -0
  17. package/dist/mcp/service-discovery-client.d.ts.map +1 -0
  18. package/dist/mcp/service-discovery-client.js +211 -0
  19. package/dist/mcp/service-discovery-client.js.map +1 -0
  20. package/dist/mcp/servicenow-deployment-mcp.js +116 -23
  21. package/dist/mcp/servicenow-deployment-mcp.js.map +1 -1
  22. package/dist/mcp/servicenow-intelligent-mcp.js +252 -18
  23. package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -1
  24. package/dist/mcp/servicenow-operations-mcp.js +170 -32
  25. package/dist/mcp/servicenow-operations-mcp.js.map +1 -1
  26. package/dist/orchestration/discovery/service-discovery.d.ts +81 -0
  27. package/dist/orchestration/discovery/service-discovery.d.ts.map +1 -0
  28. package/dist/orchestration/discovery/service-discovery.js +808 -0
  29. package/dist/orchestration/discovery/service-discovery.js.map +1 -0
  30. package/dist/orchestration/distributed-orchestrator.d.ts +131 -0
  31. package/dist/orchestration/distributed-orchestrator.d.ts.map +1 -0
  32. package/dist/orchestration/distributed-orchestrator.js +712 -0
  33. package/dist/orchestration/distributed-orchestrator.js.map +1 -0
  34. package/dist/orchestration/distribution/task-distribution-engine.d.ts +53 -0
  35. package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +1 -0
  36. package/dist/orchestration/distribution/task-distribution-engine.js +586 -0
  37. package/dist/orchestration/distribution/task-distribution-engine.js.map +1 -0
  38. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts +606 -0
  39. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +1 -0
  40. package/dist/orchestration/interfaces/distributed-orchestration.interface.js +65 -0
  41. package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +1 -0
  42. package/dist/orchestration/protocols/mcpx-protocol.d.ts +71 -0
  43. package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +1 -0
  44. package/dist/orchestration/protocols/mcpx-protocol.js +668 -0
  45. package/dist/orchestration/protocols/mcpx-protocol.js.map +1 -0
  46. package/dist/orchestration/state/distributed-state-manager.d.ts +89 -0
  47. package/dist/orchestration/state/distributed-state-manager.d.ts.map +1 -0
  48. package/dist/orchestration/state/distributed-state-manager.js +716 -0
  49. package/dist/orchestration/state/distributed-state-manager.js.map +1 -0
  50. package/dist/queen/advanced-integration-test.d.ts +48 -0
  51. package/dist/queen/advanced-integration-test.d.ts.map +1 -0
  52. package/dist/queen/advanced-integration-test.js +474 -0
  53. package/dist/queen/advanced-integration-test.js.map +1 -0
  54. package/dist/queen/agent-factory.d.ts +40 -0
  55. package/dist/queen/agent-factory.d.ts.map +1 -0
  56. package/dist/queen/agent-factory.js +433 -0
  57. package/dist/queen/agent-factory.js.map +1 -0
  58. package/dist/queen/index.d.ts +58 -0
  59. package/dist/queen/index.d.ts.map +1 -0
  60. package/dist/queen/index.js +79 -0
  61. package/dist/queen/index.js.map +1 -0
  62. package/dist/queen/integration-example.d.ts +82 -0
  63. package/dist/queen/integration-example.d.ts.map +1 -0
  64. package/dist/queen/integration-example.js +220 -0
  65. package/dist/queen/integration-example.js.map +1 -0
  66. package/dist/queen/integration-test.d.ts +72 -0
  67. package/dist/queen/integration-test.d.ts.map +1 -0
  68. package/dist/queen/integration-test.js +564 -0
  69. package/dist/queen/integration-test.js.map +1 -0
  70. package/dist/queen/mock-mcp-client.d.ts +66 -0
  71. package/dist/queen/mock-mcp-client.d.ts.map +1 -0
  72. package/dist/queen/mock-mcp-client.js +297 -0
  73. package/dist/queen/mock-mcp-client.js.map +1 -0
  74. package/dist/queen/neural-learning.d.ts +28 -0
  75. package/dist/queen/neural-learning.d.ts.map +1 -0
  76. package/dist/queen/neural-learning.js +244 -0
  77. package/dist/queen/neural-learning.js.map +1 -0
  78. package/dist/queen/queen-memory.d.ts +25 -0
  79. package/dist/queen/queen-memory.d.ts.map +1 -0
  80. package/dist/queen/queen-memory.js +273 -0
  81. package/dist/queen/queen-memory.js.map +1 -0
  82. package/dist/queen/run-integration-tests.d.ts +9 -0
  83. package/dist/queen/run-integration-tests.d.ts.map +1 -0
  84. package/dist/queen/run-integration-tests.js +28 -0
  85. package/dist/queen/run-integration-tests.js.map +1 -0
  86. package/dist/queen/servicenow-queen.d.ts +56 -0
  87. package/dist/queen/servicenow-queen.d.ts.map +1 -0
  88. package/dist/queen/servicenow-queen.js +659 -0
  89. package/dist/queen/servicenow-queen.js.map +1 -0
  90. package/dist/queen/types.d.ts +58 -0
  91. package/dist/queen/types.d.ts.map +1 -0
  92. package/dist/queen/types.js +7 -0
  93. package/dist/queen/types.js.map +1 -0
  94. package/dist/version.d.ts +2 -1
  95. package/dist/version.d.ts.map +1 -1
  96. package/dist/version.js +16 -2
  97. package/dist/version.js.map +1 -1
  98. package/docker/base/Dockerfile.base +45 -0
  99. package/docker/generate-services.js +244 -0
  100. package/docker/nginx/Dockerfile +71 -0
  101. package/docker/nginx/consul-template.hcl +64 -0
  102. package/docker/nginx/healthcheck.sh +178 -0
  103. package/docker/nginx/nginx.conf +210 -0
  104. package/docker/nginx/supervisord.conf +57 -0
  105. package/docker/nginx/templates/upstreams.conf.tpl +48 -0
  106. package/docker/services/automation-mcp/Dockerfile +32 -0
  107. package/docker/services/automation-mcp/config/service.json +28 -0
  108. package/docker/services/automation-mcp/entrypoint.js +51 -0
  109. package/docker/services/deployment-mcp/Dockerfile +32 -0
  110. package/docker/services/deployment-mcp/entrypoint.js +51 -0
  111. package/docker/services/flow-composer-mcp/Dockerfile +32 -0
  112. package/docker/services/flow-composer-mcp/config/service.json +28 -0
  113. package/docker/services/flow-composer-mcp/entrypoint.js +51 -0
  114. package/docker/services/graph-memory-mcp/Dockerfile +32 -0
  115. package/docker/services/graph-memory-mcp/config/service.json +28 -0
  116. package/docker/services/graph-memory-mcp/entrypoint.js +51 -0
  117. package/docker/services/integration-mcp/Dockerfile +32 -0
  118. package/docker/services/integration-mcp/config/service.json +28 -0
  119. package/docker/services/integration-mcp/entrypoint.js +51 -0
  120. package/docker/services/intelligent-mcp/Dockerfile +32 -0
  121. package/docker/services/intelligent-mcp/config/service.json +28 -0
  122. package/docker/services/intelligent-mcp/entrypoint.js +51 -0
  123. package/docker/services/operations-mcp/Dockerfile +32 -0
  124. package/docker/services/operations-mcp/config/service.json +28 -0
  125. package/docker/services/operations-mcp/entrypoint.js +51 -0
  126. package/docker/services/platform-development-mcp/Dockerfile +32 -0
  127. package/docker/services/platform-development-mcp/config/service.json +28 -0
  128. package/docker/services/platform-development-mcp/entrypoint.js +51 -0
  129. package/docker/services/reporting-analytics-mcp/Dockerfile +32 -0
  130. package/docker/services/reporting-analytics-mcp/config/service.json +28 -0
  131. package/docker/services/reporting-analytics-mcp/entrypoint.js +51 -0
  132. package/docker/services/security-compliance-mcp/Dockerfile +32 -0
  133. package/docker/services/security-compliance-mcp/config/service.json +28 -0
  134. package/docker/services/security-compliance-mcp/entrypoint.js +51 -0
  135. package/docker/services/update-set-mcp/Dockerfile +32 -0
  136. package/docker/services/update-set-mcp/config/service.json +28 -0
  137. package/docker/services/update-set-mcp/entrypoint.js +51 -0
  138. package/docker-compose.override.yml +132 -0
  139. package/docker-compose.prod.yml +340 -0
  140. package/docker-compose.yml +579 -0
  141. package/k8s/automation-mcp.yaml +232 -0
  142. package/k8s/configmap.yaml +237 -0
  143. package/k8s/deployment-mcp.yaml +232 -0
  144. package/k8s/flow-composer-mcp.yaml +232 -0
  145. package/k8s/generate-k8s-manifests.js +453 -0
  146. package/k8s/graph-memory-mcp.yaml +232 -0
  147. package/k8s/infrastructure.yaml +456 -0
  148. package/k8s/ingress.yaml +361 -0
  149. package/k8s/integration-mcp.yaml +232 -0
  150. package/k8s/intelligent-mcp.yaml +232 -0
  151. package/k8s/kustomization.yaml +111 -0
  152. package/k8s/mcp-services.yaml +2552 -0
  153. package/k8s/monitoring.yaml +515 -0
  154. package/k8s/namespace.yaml +80 -0
  155. package/k8s/operations-mcp.yaml +232 -0
  156. package/k8s/platform-development-mcp.yaml +232 -0
  157. package/k8s/rbac.yaml +140 -0
  158. package/k8s/reporting-analytics-mcp.yaml +232 -0
  159. package/k8s/security-compliance-mcp.yaml +232 -0
  160. package/k8s/update-set-mcp.yaml +232 -0
  161. package/package.json +2 -2
@@ -1437,9 +1437,12 @@ ${isComposedFlow ? `
1437
1437
  access: 'public'
1438
1438
  };
1439
1439
  const result = await this.client.createScriptInclude(scriptIncludeData);
1440
+ if (!result.data?.sys_id) {
1441
+ throw new Error(`Script Include deployment failed: No sys_id returned from ServiceNow. Result: ${JSON.stringify(result)}`);
1442
+ }
1440
1443
  return {
1441
1444
  originalId: artifact.sys_id,
1442
- sys_id: result.data?.sys_id || `mock_si_${Date.now()}`,
1445
+ sys_id: result.data.sys_id,
1443
1446
  name: artifact.name,
1444
1447
  api_name: scriptIncludeData.api_name,
1445
1448
  type: 'script_include',
@@ -1461,9 +1464,12 @@ ${isComposedFlow ? `
1461
1464
  order: 100
1462
1465
  };
1463
1466
  const result = await this.client.createBusinessRule(businessRuleData);
1467
+ if (!result.data?.sys_id) {
1468
+ throw new Error(`Business Rule deployment failed: No sys_id returned from ServiceNow. Result: ${JSON.stringify(result)}`);
1469
+ }
1464
1470
  return {
1465
1471
  originalId: artifact.sys_id,
1466
- sys_id: result.data?.sys_id || `mock_br_${Date.now()}`,
1472
+ sys_id: result.data.sys_id,
1467
1473
  name: artifact.name,
1468
1474
  type: 'business_rule',
1469
1475
  success: result.success
@@ -1494,9 +1500,12 @@ ${isComposedFlow ? `
1494
1500
  });
1495
1501
  }
1496
1502
  }
1503
+ if (!result.data?.sys_id) {
1504
+ throw new Error(`Table deployment failed: No sys_id returned from ServiceNow. Result: ${JSON.stringify(result)}`);
1505
+ }
1497
1506
  return {
1498
1507
  originalId: artifact.sys_id,
1499
- sys_id: result.data?.sys_id || `mock_table_${Date.now()}`,
1508
+ sys_id: result.data.sys_id,
1500
1509
  name: artifact.name,
1501
1510
  type: 'table',
1502
1511
  success: result.success
@@ -1673,9 +1682,52 @@ ${this.getScopeBenefits(deploymentResult.scope).map(b => `- ${b}`).join('\n')}`,
1673
1682
  async deployUpdateSet(args) {
1674
1683
  try {
1675
1684
  this.logger.info('Creating update set', { name: args.name });
1676
- // In a real implementation, this would create an update set and add artifacts
1677
- // For now, we'll simulate the process
1678
- const updateSetId = `US${Date.now()}`;
1685
+ // Create the update set using the real ServiceNow API
1686
+ const updateSetResult = await this.client.createUpdateSet({
1687
+ name: args.name,
1688
+ description: args.description || `Update Set created via Snow-Flow deployment`
1689
+ });
1690
+ if (!updateSetResult.success || !updateSetResult.data) {
1691
+ throw new Error(`Failed to create Update Set: ${updateSetResult.error || 'Unknown error'}`);
1692
+ }
1693
+ const updateSetId = updateSetResult.data.sys_id;
1694
+ this.logger.info('Update Set created successfully', { id: updateSetId, name: args.name });
1695
+ // Set as current update set for tracking
1696
+ const activateResult = await this.client.setCurrentUpdateSet(updateSetId);
1697
+ if (!activateResult.success) {
1698
+ this.logger.warn('Warning: Could not set as current Update Set', { id: updateSetId });
1699
+ }
1700
+ // Track all provided artifacts in the update set
1701
+ const trackingResults = [];
1702
+ if (args.artifacts && Array.isArray(args.artifacts)) {
1703
+ for (const artifact of args.artifacts) {
1704
+ try {
1705
+ // Create sys_update_xml record to track the artifact in the update set
1706
+ const trackingResult = await this.client.createRecord('sys_update_xml', {
1707
+ name: `${artifact.type}_${artifact.sys_id}`,
1708
+ category: 'customer',
1709
+ update_set: updateSetId,
1710
+ target_name: artifact.name,
1711
+ type: artifact.type,
1712
+ target_sys_id: artifact.sys_id,
1713
+ action: 'INSERT_OR_UPDATE'
1714
+ });
1715
+ if (trackingResult.success) {
1716
+ trackingResults.push(`✅ ${artifact.type}: ${artifact.name}`);
1717
+ }
1718
+ else {
1719
+ trackingResults.push(`⚠️ ${artifact.type}: ${artifact.name} (tracking failed)`);
1720
+ }
1721
+ }
1722
+ catch (trackingError) {
1723
+ this.logger.warn('Failed to track artifact in Update Set', {
1724
+ artifact: artifact.sys_id,
1725
+ error: trackingError
1726
+ });
1727
+ trackingResults.push(`⚠️ ${artifact.type}: ${artifact.name} (tracking failed)`);
1728
+ }
1729
+ }
1730
+ }
1679
1731
  return {
1680
1732
  content: [
1681
1733
  {
@@ -1686,21 +1738,24 @@ ${this.getScopeBenefits(deploymentResult.scope).map(b => `- ${b}`).join('\n')}`,
1686
1738
  - Name: ${args.name}
1687
1739
  - ID: ${updateSetId}
1688
1740
  - Description: ${args.description || 'N/A'}
1689
- - Artifacts: ${args.artifacts.length} items
1741
+ - Artifacts: ${args.artifacts?.length || 0} items
1690
1742
 
1691
- 📦 Included Artifacts:
1692
- ${args.artifacts.map((a) => `- ${a.type}: ${a.sys_id}`).join('\n')}
1743
+ 📦 Tracked Artifacts:
1744
+ ${trackingResults.length > 0 ? trackingResults.join('\n') : '- No artifacts specified'}
1693
1745
 
1694
1746
  📝 Next Steps:
1695
- 1. Review update set contents
1696
- 2. Mark as complete
1697
- 3. Export for migration
1698
- 4. Deploy to target instance`,
1747
+ 1. Review update set contents in ServiceNow
1748
+ 2. Mark as complete when ready: \`snow_update_set_complete\`
1749
+ 3. Export for migration: \`snow_update_set_export\`
1750
+ 4. Deploy to target instance
1751
+
1752
+ 💡 The Update Set is now active and will automatically track future changes.`,
1699
1753
  },
1700
1754
  ],
1701
1755
  };
1702
1756
  }
1703
1757
  catch (error) {
1758
+ this.logger.error('Update set creation failed', error);
1704
1759
  throw new Error(`Update set creation failed: ${error instanceof Error ? error.message : String(error)}`);
1705
1760
  }
1706
1761
  }
@@ -3581,8 +3636,22 @@ Use \`snow_preview_widget\` to see a detailed preview of the widget rendering.`,
3581
3636
  script += this.generateConditionScript(activity);
3582
3637
  break;
3583
3638
  default:
3584
- script += `\n // TODO: Implement ${activity.type} logic
3585
- gs.log('Activity ${activity.name || activity.type} executed', 'INFO');`;
3639
+ // Handle unknown activity types with a comprehensive fallback
3640
+ script += `\n // Unknown activity type: ${activity.type}
3641
+ // Available activity data: ${JSON.stringify(activity, null, 2).replace(/"/g, '\\"')}
3642
+ gs.warn('Unsupported activity type in flow: ${activity.type}', 'SNOW_FLOW');
3643
+
3644
+ // Attempt to execute any custom script if provided
3645
+ ${activity.script ? `
3646
+ // Custom script from activity definition
3647
+ try {
3648
+ ${activity.script}
3649
+ } catch (error) {
3650
+ gs.error('Custom script execution failed for activity ${activity.name || activity.type}: ' + error.message);
3651
+ }` : ''}
3652
+
3653
+ // Log completion
3654
+ gs.log('Activity ${activity.name || activity.type} processed (unsupported type: ${activity.type})', 'INFO');`;
3586
3655
  }
3587
3656
  script += '\n';
3588
3657
  });
@@ -4343,15 +4412,39 @@ ${updateSetSession ? `📋 **Update Set**: ${updateSetSession.name}
4343
4412
  * Ensure active Update Set session
4344
4413
  */
4345
4414
  async ensureActiveUpdateSet(context) {
4346
- // This would call the update set MCP to ensure active session
4347
- // For now, return a mock session
4348
- return {
4349
- session: {
4350
- update_set_id: 'mock_update_set_id',
4351
- name: `Auto-${context}`,
4352
- artifacts: []
4415
+ try {
4416
+ // Call the real Update Set MCP to ensure active session
4417
+ const result = await this.client.ensureUpdateSet();
4418
+ if (result.success && result.data) {
4419
+ return {
4420
+ session: {
4421
+ update_set_id: result.data.sys_id,
4422
+ name: result.data.name,
4423
+ artifacts: []
4424
+ }
4425
+ };
4353
4426
  }
4354
- };
4427
+ // If no current update set, create a new one via the Update Set MCP
4428
+ const createResult = await this.client.createUpdateSet({
4429
+ name: `Auto-${context}-${Date.now()}`,
4430
+ description: `Automatically created for ${context}`,
4431
+ context: context
4432
+ });
4433
+ if (createResult.success && createResult.data) {
4434
+ return {
4435
+ session: {
4436
+ update_set_id: createResult.data.sys_id,
4437
+ name: createResult.data.name,
4438
+ artifacts: []
4439
+ }
4440
+ };
4441
+ }
4442
+ throw new Error('Failed to ensure Update Set session');
4443
+ }
4444
+ catch (error) {
4445
+ this.logger.error('Failed to ensure Update Set session', error);
4446
+ throw new Error(`Update Set session required for deployment. Error: ${error.message}`);
4447
+ }
4355
4448
  }
4356
4449
  /**
4357
4450
  * DEPRECATION HANDLERS - Redirect old tools to new unified system