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
@@ -1634,12 +1634,52 @@ class ServiceNowOperationsMCP {
1634
1634
  };
1635
1635
  }
1636
1636
  async analyzeUserBehavior(dateFilter) {
1637
- // This would require analyzing user activity across multiple tables
1638
- // For now, return a basic analysis
1639
- return {
1640
- message: 'User behavior analysis requires additional data collection and processing',
1641
- available_metrics: ['login_patterns', 'request_frequency', 'incident_reporting']
1642
- };
1637
+ try {
1638
+ // Query actual user activity data from ServiceNow
1639
+ const activities = [];
1640
+ // Get recent incidents created by users
1641
+ const incidents = await this.client.searchRecords('incident', `sys_created_on>=${dateFilter}^caller_idISNOTEMPTY`, 100);
1642
+ if (incidents.success && incidents.data) {
1643
+ const incidentData = Array.isArray(incidents.data) ? incidents.data : [incidents.data];
1644
+ const userIncidents = new Map();
1645
+ incidentData.forEach(inc => {
1646
+ const userId = inc.caller_id?.value || inc.caller_id;
1647
+ if (userId) {
1648
+ userIncidents.set(userId, (userIncidents.get(userId) || 0) + 1);
1649
+ }
1650
+ });
1651
+ activities.push({
1652
+ metric: 'incident_reporting',
1653
+ total_incidents: incidentData.length,
1654
+ unique_users: userIncidents.size,
1655
+ avg_per_user: userIncidents.size > 0 ? Math.round(incidentData.length / userIncidents.size * 10) / 10 : 0
1656
+ });
1657
+ }
1658
+ // Get service requests
1659
+ const requests = await this.client.searchRecords('sc_request', `sys_created_on>=${dateFilter}^requested_forISNOTEMPTY`, 100);
1660
+ if (requests.success && requests.data) {
1661
+ const requestData = Array.isArray(requests.data) ? requests.data : [requests.data];
1662
+ activities.push({
1663
+ metric: 'request_frequency',
1664
+ total_requests: requestData.length,
1665
+ period: dateFilter
1666
+ });
1667
+ }
1668
+ return {
1669
+ analysis_period: dateFilter,
1670
+ generated_at: new Date().toISOString(),
1671
+ user_activities: activities,
1672
+ summary: `Analyzed ${activities.length} activity metrics for period: ${dateFilter}`,
1673
+ note: 'Analysis based on actual ServiceNow data from incident and request tables'
1674
+ };
1675
+ }
1676
+ catch (error) {
1677
+ return {
1678
+ error: 'User behavior analysis failed',
1679
+ message: error instanceof Error ? error.message : String(error),
1680
+ available_metrics: ['incident_reporting', 'request_frequency']
1681
+ };
1682
+ }
1643
1683
  }
1644
1684
  async calculateKnowledgeRelevance(articles, incident) {
1645
1685
  const relevanceScores = [];
@@ -1661,33 +1701,131 @@ class ServiceNowOperationsMCP {
1661
1701
  return relevanceScores.sort((a, b) => b.relevance_score - a.relevance_score);
1662
1702
  }
1663
1703
  async performPredictiveAnalysis(predictionType, timeframe) {
1664
- // This would require machine learning models and historical data analysis
1665
- // For now, return basic predictions based on current trends
1666
- const currentDate = new Date();
1667
- const predictions = {
1668
- prediction_type: predictionType,
1669
- timeframe: timeframe,
1670
- generated_at: currentDate.toISOString(),
1671
- confidence: 0.7,
1672
- predictions: []
1673
- };
1674
- switch (predictionType) {
1675
- case 'incident_volume':
1676
- predictions.predictions = await this.predictIncidentVolume(timeframe);
1677
- break;
1678
- case 'system_failure':
1679
- predictions.predictions = await this.predictSystemFailure(timeframe);
1680
- break;
1681
- case 'resource_exhaustion':
1682
- predictions.predictions = await this.predictResourceExhaustion(timeframe);
1683
- break;
1684
- case 'user_impact':
1685
- predictions.predictions = await this.predictUserImpact(timeframe);
1686
- break;
1687
- default:
1688
- predictions.predictions = [{ error: 'Unknown prediction type' }];
1704
+ try {
1705
+ const currentDate = new Date();
1706
+ const analysis = {
1707
+ prediction_type: predictionType,
1708
+ timeframe: timeframe,
1709
+ generated_at: currentDate.toISOString(),
1710
+ analysis_method: 'trend_analysis',
1711
+ data_points: []
1712
+ };
1713
+ switch (predictionType) {
1714
+ case 'incident_volume':
1715
+ analysis.data_points = await this.analyzeIncidentTrends(timeframe);
1716
+ analysis.interpretation = 'Based on recent incident creation patterns';
1717
+ break;
1718
+ case 'system_failure':
1719
+ analysis.data_points = await this.analyzeSystemHealthTrends(timeframe);
1720
+ analysis.interpretation = 'Based on critical incident patterns and system health indicators';
1721
+ break;
1722
+ case 'resource_exhaustion':
1723
+ analysis.data_points = await this.analyzeResourceTrends(timeframe);
1724
+ analysis.interpretation = 'Based on request volumes and capacity indicators';
1725
+ break;
1726
+ case 'user_impact':
1727
+ analysis.data_points = await this.analyzeUserImpactTrends(timeframe);
1728
+ analysis.interpretation = 'Based on user-reported incidents and service requests';
1729
+ break;
1730
+ default:
1731
+ analysis.data_points = [{ error: 'Unknown prediction type', supported_types: ['incident_volume', 'system_failure', 'resource_exhaustion', 'user_impact'] }];
1732
+ analysis.interpretation = 'Unsupported analysis type';
1733
+ }
1734
+ return analysis;
1735
+ }
1736
+ catch (error) {
1737
+ return {
1738
+ prediction_type: predictionType,
1739
+ timeframe: timeframe,
1740
+ error: 'Analysis failed',
1741
+ message: error instanceof Error ? error.message : String(error),
1742
+ generated_at: new Date().toISOString()
1743
+ };
1744
+ }
1745
+ }
1746
+ // New trend analysis methods
1747
+ async analyzeIncidentTrends(timeframe) {
1748
+ try {
1749
+ const incidents = await this.client.searchRecords('incident', 'sys_created_onONToday@javascript:gs.daysAgoStart(7)@javascript:gs.daysAgoEnd(0)', 100);
1750
+ if (incidents.success && incidents.data) {
1751
+ const incidentData = Array.isArray(incidents.data) ? incidents.data : [incidents.data];
1752
+ const dailyCounts = new Map();
1753
+ incidentData.forEach(incident => {
1754
+ const date = new Date(incident.sys_created_on).toDateString();
1755
+ dailyCounts.set(date, (dailyCounts.get(date) || 0) + 1);
1756
+ });
1757
+ return Array.from(dailyCounts.entries()).map(([date, count]) => ({
1758
+ date,
1759
+ incident_count: count,
1760
+ trend: count > 5 ? 'increasing' : 'stable'
1761
+ }));
1762
+ }
1763
+ }
1764
+ catch (error) {
1765
+ return [{ error: 'Failed to analyze incident trends', message: String(error) }];
1766
+ }
1767
+ return [{ message: 'No incident data available for analysis' }];
1768
+ }
1769
+ async analyzeSystemHealthTrends(timeframe) {
1770
+ try {
1771
+ const criticalIncidents = await this.client.searchRecords('incident', 'priority=1^sys_created_onONToday@javascript:gs.daysAgoStart(7)@javascript:gs.daysAgoEnd(0)', 50);
1772
+ if (criticalIncidents.success && criticalIncidents.data) {
1773
+ const criticalData = Array.isArray(criticalIncidents.data) ? criticalIncidents.data : [criticalIncidents.data];
1774
+ return [{
1775
+ metric: 'critical_incidents',
1776
+ count: criticalData.length,
1777
+ health_indicator: criticalData.length > 3 ? 'at_risk' : 'stable',
1778
+ recent_issues: criticalData.slice(0, 3).map(inc => inc.short_description)
1779
+ }];
1780
+ }
1781
+ }
1782
+ catch (error) {
1783
+ return [{ error: 'Failed to analyze system health trends', message: String(error) }];
1784
+ }
1785
+ return [{ message: 'No system health data available' }];
1786
+ }
1787
+ async analyzeResourceTrends(timeframe) {
1788
+ try {
1789
+ const requests = await this.client.searchRecords('sc_request', 'sys_created_onONToday@javascript:gs.daysAgoStart(7)@javascript:gs.daysAgoEnd(0)', 100);
1790
+ if (requests.success && requests.data) {
1791
+ const requestData = Array.isArray(requests.data) ? requests.data : [requests.data];
1792
+ return [{
1793
+ metric: 'request_volume',
1794
+ total_requests: requestData.length,
1795
+ resource_pressure: requestData.length > 20 ? 'high' : 'normal',
1796
+ trend: 'stable'
1797
+ }];
1798
+ }
1799
+ }
1800
+ catch (error) {
1801
+ return [{ error: 'Failed to analyze resource trends', message: String(error) }];
1802
+ }
1803
+ return [{ message: 'No resource usage data available' }];
1804
+ }
1805
+ async analyzeUserImpactTrends(timeframe) {
1806
+ try {
1807
+ const userIncidents = await this.client.searchRecords('incident', 'caller_idISNOTEMPTY^sys_created_onONToday@javascript:gs.daysAgoStart(7)@javascript:gs.daysAgoEnd(0)', 100);
1808
+ if (userIncidents.success && userIncidents.data) {
1809
+ const incidentData = Array.isArray(userIncidents.data) ? userIncidents.data : [userIncidents.data];
1810
+ const impactCounts = new Map();
1811
+ incidentData.forEach(incident => {
1812
+ const impact = incident.impact || 'unknown';
1813
+ impactCounts.set(impact, (impactCounts.get(impact) || 0) + 1);
1814
+ });
1815
+ return [{
1816
+ metric: 'user_impact_distribution',
1817
+ high_impact: impactCounts.get('1') || 0,
1818
+ medium_impact: impactCounts.get('2') || 0,
1819
+ low_impact: impactCounts.get('3') || 0,
1820
+ total_affected_users: incidentData.length,
1821
+ impact_trend: (impactCounts.get('1') || 0) > 5 ? 'increasing' : 'stable'
1822
+ }];
1823
+ }
1824
+ }
1825
+ catch (error) {
1826
+ return [{ error: 'Failed to analyze user impact trends', message: String(error) }];
1689
1827
  }
1690
- return predictions;
1828
+ return [{ message: 'No user impact data available' }];
1691
1829
  }
1692
1830
  async predictIncidentVolume(timeframe) {
1693
1831
  // Get historical incident data