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
package/deploy.sh ADDED
@@ -0,0 +1,366 @@
1
+ #!/bin/bash
2
+ # Deployment script for ServiceNow MCP containerized services
3
+
4
+ set -euo pipefail
5
+
6
+ # Colors for output
7
+ RED='\033[0;31m'
8
+ GREEN='\033[0;32m'
9
+ YELLOW='\033[1;33m'
10
+ BLUE='\033[0;34m'
11
+ NC='\033[0m' # No Color
12
+
13
+ # Configuration
14
+ DOCKER_REGISTRY=${DOCKER_REGISTRY:-"servicenow-mcp"}
15
+ TAG=${TAG:-"latest"}
16
+ ENVIRONMENT=${ENVIRONMENT:-"development"}
17
+ NAMESPACE=${NAMESPACE:-"servicenow-mcp"}
18
+
19
+ # Function to print colored output
20
+ print_status() {
21
+ echo -e "${BLUE}[INFO]${NC} $1"
22
+ }
23
+
24
+ print_success() {
25
+ echo -e "${GREEN}[SUCCESS]${NC} $1"
26
+ }
27
+
28
+ print_warning() {
29
+ echo -e "${YELLOW}[WARNING]${NC} $1"
30
+ }
31
+
32
+ print_error() {
33
+ echo -e "${RED}[ERROR]${NC} $1"
34
+ }
35
+
36
+ # Function to check prerequisites
37
+ check_prerequisites() {
38
+ print_status "Checking prerequisites..."
39
+
40
+ # Check if Docker is installed and running
41
+ if ! command -v docker &> /dev/null; then
42
+ print_error "Docker is not installed or not in PATH"
43
+ exit 1
44
+ fi
45
+
46
+ if ! docker info &> /dev/null; then
47
+ print_error "Docker daemon is not running"
48
+ exit 1
49
+ fi
50
+
51
+ # Check if Docker Compose is available
52
+ if ! command -v docker-compose &> /dev/null; then
53
+ print_error "Docker Compose is not installed or not in PATH"
54
+ exit 1
55
+ fi
56
+
57
+ # Check for Kubernetes tools if deploying to K8s
58
+ if [[ "$ENVIRONMENT" == "production" ]]; then
59
+ if ! command -v kubectl &> /dev/null; then
60
+ print_error "kubectl is not installed or not in PATH"
61
+ exit 1
62
+ fi
63
+
64
+ if ! kubectl cluster-info &> /dev/null; then
65
+ print_error "Unable to connect to Kubernetes cluster"
66
+ exit 1
67
+ fi
68
+ fi
69
+
70
+ print_success "Prerequisites check passed"
71
+ }
72
+
73
+ # Function to build Docker images
74
+ build_images() {
75
+ print_status "Building Docker images..."
76
+
77
+ # Build base image first
78
+ print_status "Building base image..."
79
+ docker build -f docker/base/Dockerfile.base -t ${DOCKER_REGISTRY}/base:${TAG} .
80
+
81
+ # Build all MCP service images
82
+ services=(
83
+ "deployment-mcp"
84
+ "flow-composer-mcp"
85
+ "intelligent-mcp"
86
+ "update-set-mcp"
87
+ "graph-memory-mcp"
88
+ "operations-mcp"
89
+ "platform-development-mcp"
90
+ "integration-mcp"
91
+ "automation-mcp"
92
+ "security-compliance-mcp"
93
+ "reporting-analytics-mcp"
94
+ )
95
+
96
+ for service in "${services[@]}"; do
97
+ print_status "Building ${service} image..."
98
+ docker build \
99
+ --build-arg BASE_IMAGE=${DOCKER_REGISTRY}/base:${TAG} \
100
+ -f docker/services/${service}/Dockerfile \
101
+ -t ${DOCKER_REGISTRY}/${service}:${TAG} \
102
+ .
103
+ done
104
+
105
+ # Build nginx load balancer
106
+ print_status "Building nginx load balancer image..."
107
+ docker build \
108
+ -f docker/nginx/Dockerfile \
109
+ -t ${DOCKER_REGISTRY}/nginx-lb:${TAG} \
110
+ docker/nginx/
111
+
112
+ print_success "All images built successfully"
113
+ }
114
+
115
+ # Function to deploy using Docker Compose
116
+ deploy_compose() {
117
+ local compose_file="docker-compose.yml"
118
+ local override_file=""
119
+
120
+ case "$ENVIRONMENT" in
121
+ "development")
122
+ override_file="docker-compose.override.yml"
123
+ ;;
124
+ "staging")
125
+ override_file="docker-compose.staging.yml"
126
+ ;;
127
+ "production")
128
+ override_file="docker-compose.prod.yml"
129
+ ;;
130
+ esac
131
+
132
+ print_status "Deploying with Docker Compose (Environment: $ENVIRONMENT)..."
133
+
134
+ # Create .env file if it doesn't exist
135
+ if [[ ! -f .env ]]; then
136
+ print_warning ".env file not found. Creating template..."
137
+ cat > .env << EOF
138
+ # ServiceNow Configuration
139
+ SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com
140
+ SERVICENOW_CLIENT_ID=your-client-id
141
+ SERVICENOW_CLIENT_SECRET=your-client-secret
142
+
143
+ # Neo4j Configuration
144
+ NEO4J_PASSWORD=your-neo4j-password
145
+
146
+ # Monitoring Configuration
147
+ GRAFANA_ADMIN_PASSWORD=your-grafana-password
148
+ EOF
149
+ print_warning "Please update the .env file with your actual values before running again"
150
+ exit 1
151
+ fi
152
+
153
+ # Deploy services
154
+ if [[ -n "$override_file" && -f "$override_file" ]]; then
155
+ docker-compose -f "$compose_file" -f "$override_file" up -d
156
+ else
157
+ docker-compose -f "$compose_file" up -d
158
+ fi
159
+
160
+ print_success "Docker Compose deployment completed"
161
+ }
162
+
163
+ # Function to deploy to Kubernetes
164
+ deploy_kubernetes() {
165
+ print_status "Deploying to Kubernetes (Environment: $ENVIRONMENT)..."
166
+
167
+ # Create namespace if it doesn't exist
168
+ kubectl create namespace "$NAMESPACE" --dry-run=client -o yaml | kubectl apply -f -
169
+
170
+ # Apply configurations in order
171
+ print_status "Applying namespace and RBAC configurations..."
172
+ kubectl apply -f k8s/namespace.yaml
173
+ kubectl apply -f k8s/rbac.yaml
174
+
175
+ print_status "Applying configuration maps and secrets..."
176
+ kubectl apply -f k8s/configmap.yaml
177
+
178
+ print_status "Deploying infrastructure services..."
179
+ kubectl apply -f k8s/infrastructure.yaml
180
+
181
+ print_status "Waiting for infrastructure services to be ready..."
182
+ kubectl -n "$NAMESPACE" wait --for=condition=available --timeout=300s deployment/consul
183
+ kubectl -n "$NAMESPACE" wait --for=condition=available --timeout=300s deployment/redis
184
+ kubectl -n "$NAMESPACE" wait --for=condition=available --timeout=300s deployment/neo4j
185
+
186
+ print_status "Deploying MCP services..."
187
+ kubectl apply -f k8s/mcp-services.yaml
188
+
189
+ print_status "Waiting for MCP services to be ready..."
190
+ kubectl -n "$NAMESPACE" wait --for=condition=available --timeout=300s deployment --all
191
+
192
+ print_status "Deploying monitoring stack..."
193
+ kubectl apply -f k8s/monitoring.yaml
194
+
195
+ print_status "Configuring ingress..."
196
+ kubectl apply -f k8s/ingress.yaml
197
+
198
+ print_success "Kubernetes deployment completed"
199
+ }
200
+
201
+ # Function to verify deployment
202
+ verify_deployment() {
203
+ print_status "Verifying deployment..."
204
+
205
+ if [[ "$ENVIRONMENT" == "production" ]]; then
206
+ # Verify Kubernetes deployment
207
+ print_status "Checking Kubernetes pod status..."
208
+ kubectl -n "$NAMESPACE" get pods
209
+
210
+ print_status "Checking service endpoints..."
211
+ kubectl -n "$NAMESPACE" get services
212
+
213
+ # Test service connectivity
214
+ print_status "Testing service connectivity..."
215
+ services=("deployment-mcp" "flow-composer-mcp" "intelligent-mcp" "operations-mcp")
216
+
217
+ for service in "${services[@]}"; do
218
+ if kubectl -n "$NAMESPACE" get service "$service" &> /dev/null; then
219
+ print_status "āœ“ Service $service is accessible"
220
+ else
221
+ print_warning "āœ— Service $service is not accessible"
222
+ fi
223
+ done
224
+
225
+ else
226
+ # Verify Docker Compose deployment
227
+ print_status "Checking Docker Compose services..."
228
+ docker-compose ps
229
+
230
+ # Test basic connectivity
231
+ print_status "Testing service connectivity..."
232
+
233
+ if curl -f -s http://localhost/health &> /dev/null; then
234
+ print_success "āœ“ Load balancer health check passed"
235
+ else
236
+ print_warning "āœ— Load balancer health check failed"
237
+ fi
238
+
239
+ if curl -f -s http://localhost:8500/v1/status/leader &> /dev/null; then
240
+ print_success "āœ“ Consul is accessible"
241
+ else
242
+ print_warning "āœ— Consul is not accessible"
243
+ fi
244
+ fi
245
+
246
+ print_success "Deployment verification completed"
247
+ }
248
+
249
+ # Function to show deployment info
250
+ show_info() {
251
+ print_status "Deployment Information"
252
+ echo "========================"
253
+ echo "Environment: $ENVIRONMENT"
254
+ echo "Docker Registry: $DOCKER_REGISTRY"
255
+ echo "Tag: $TAG"
256
+
257
+ if [[ "$ENVIRONMENT" == "production" ]]; then
258
+ echo "Namespace: $NAMESPACE"
259
+ echo ""
260
+ echo "Access URLs:"
261
+ echo " - Main API: https://mcp.servicenow.local"
262
+ echo " - Monitoring: https://monitoring.servicenow.local"
263
+ echo " - Direct Access: https://direct.mcp.servicenow.local"
264
+ else
265
+ echo ""
266
+ echo "Access URLs:"
267
+ echo " - Load Balancer: http://localhost"
268
+ echo " - Consul UI: http://localhost:8500"
269
+ echo " - Grafana: http://localhost:3000 (admin/admin)"
270
+ echo " - Prometheus: http://localhost:9090"
271
+ echo ""
272
+ echo "Individual Services:"
273
+ for i in {1..11}; do
274
+ port=$((3000 + i))
275
+ echo " - Service on port $port: http://localhost:$port"
276
+ done
277
+ fi
278
+ }
279
+
280
+ # Function to stop deployment
281
+ stop_deployment() {
282
+ print_status "Stopping deployment..."
283
+
284
+ if [[ "$ENVIRONMENT" == "production" ]]; then
285
+ # Stop Kubernetes deployment
286
+ kubectl delete namespace "$NAMESPACE" --ignore-not-found=true
287
+ print_success "Kubernetes deployment stopped"
288
+ else
289
+ # Stop Docker Compose deployment
290
+ docker-compose down -v
291
+ print_success "Docker Compose deployment stopped"
292
+ fi
293
+ }
294
+
295
+ # Function to show logs
296
+ show_logs() {
297
+ if [[ "$ENVIRONMENT" == "production" ]]; then
298
+ # Show Kubernetes logs
299
+ print_status "Showing recent logs from all pods..."
300
+ kubectl -n "$NAMESPACE" logs --tail=50 -l app.kubernetes.io/part-of=servicenow-mcp
301
+ else
302
+ # Show Docker Compose logs
303
+ docker-compose logs --tail=50 -f
304
+ fi
305
+ }
306
+
307
+ # Main execution
308
+ case "${1:-}" in
309
+ "build")
310
+ check_prerequisites
311
+ build_images
312
+ ;;
313
+ "deploy")
314
+ check_prerequisites
315
+ build_images
316
+ if [[ "$ENVIRONMENT" == "production" ]]; then
317
+ deploy_kubernetes
318
+ else
319
+ deploy_compose
320
+ fi
321
+ verify_deployment
322
+ show_info
323
+ ;;
324
+ "verify")
325
+ verify_deployment
326
+ ;;
327
+ "info")
328
+ show_info
329
+ ;;
330
+ "stop")
331
+ stop_deployment
332
+ ;;
333
+ "logs")
334
+ show_logs
335
+ ;;
336
+ "clean")
337
+ stop_deployment
338
+ print_status "Cleaning up Docker images..."
339
+ docker system prune -f
340
+ print_success "Cleanup completed"
341
+ ;;
342
+ *)
343
+ echo "Usage: $0 {build|deploy|verify|info|stop|logs|clean}"
344
+ echo ""
345
+ echo "Commands:"
346
+ echo " build - Build all Docker images"
347
+ echo " deploy - Deploy the complete stack"
348
+ echo " verify - Verify deployment health"
349
+ echo " info - Show deployment information"
350
+ echo " stop - Stop the deployment"
351
+ echo " logs - Show service logs"
352
+ echo " clean - Stop deployment and clean up"
353
+ echo ""
354
+ echo "Environment Variables:"
355
+ echo " ENVIRONMENT - deployment environment (development|staging|production)"
356
+ echo " DOCKER_REGISTRY - Docker registry prefix"
357
+ echo " TAG - Docker image tag"
358
+ echo " NAMESPACE - Kubernetes namespace (production only)"
359
+ echo ""
360
+ echo "Examples:"
361
+ echo " ./deploy.sh build"
362
+ echo " ENVIRONMENT=staging ./deploy.sh deploy"
363
+ echo " ENVIRONMENT=production NAMESPACE=prod-mcp ./deploy.sh deploy"
364
+ exit 1
365
+ ;;
366
+ esac
package/dist/cli.js CHANGED
@@ -3141,6 +3141,232 @@ program
3141
3141
  console.error('āŒ Failed to load SPARC help:', error instanceof Error ? error.message : String(error));
3142
3142
  }
3143
3143
  });
3144
+ // ===================================================
3145
+ // šŸ‘‘ QUEEN AGENT COMMANDS - Elegant Orchestration
3146
+ // ===================================================
3147
+ /**
3148
+ * Main Queen command - replaces complex swarm orchestration
3149
+ * Simple, elegant, and intelligent ServiceNow objective execution
3150
+ */
3151
+ program
3152
+ .command('queen <objective>')
3153
+ .description('šŸ Execute ServiceNow objective with Queen Agent hive-mind intelligence')
3154
+ .option('--learn', 'Enable enhanced learning from execution (default: true)', true)
3155
+ .option('--no-learn', 'Disable learning')
3156
+ .option('--debug', 'Enable debug mode for detailed insights')
3157
+ .option('--dry-run', 'Preview execution plan without deployment')
3158
+ .option('--memory-driven', 'Use memory for optimal workflow patterns')
3159
+ .option('--monitor', 'Show real-time hive-mind monitoring')
3160
+ .option('--type <type>', 'Hint at task type (widget, flow, app, integration)')
3161
+ .action(async (objective, options) => {
3162
+ console.log(`\nšŸ‘‘ ServiceNow Queen Agent v${version_js_1.VERSION} - Hive-Mind Intelligence`);
3163
+ console.log('šŸ Elegant orchestration replacing complex team coordination\n');
3164
+ try {
3165
+ const { QueenIntegration } = await Promise.resolve().then(() => __importStar(require('./queen/integration-example.js')));
3166
+ const queenIntegration = new QueenIntegration({
3167
+ debugMode: options.debug || false
3168
+ });
3169
+ if (options.dryRun) {
3170
+ console.log('šŸ” DRY RUN MODE - Analyzing objective...');
3171
+ // TODO: Add dry run analysis
3172
+ console.log(`šŸ“‹ Objective: ${objective}`);
3173
+ console.log('šŸŽÆ Queen would analyze, spawn agents, coordinate, and deploy');
3174
+ return;
3175
+ }
3176
+ console.log(`šŸŽÆ Queen analyzing objective: ${objective}`);
3177
+ const result = await queenIntegration.executeSwarmObjective(objective, {
3178
+ learn: options.learn,
3179
+ memoryDriven: options.memoryDriven,
3180
+ monitor: options.monitor
3181
+ });
3182
+ if (result.success) {
3183
+ console.log('\nāœ… Queen Agent completed objective successfully!');
3184
+ console.log(`šŸ Hive-Mind coordination: ${result.queen_managed ? 'ACTIVE' : 'INACTIVE'}`);
3185
+ if (result.hive_mind_status) {
3186
+ console.log(`šŸ‘„ Active Agents: ${result.hive_mind_status.activeAgents}`);
3187
+ console.log(`šŸ“‹ Active Tasks: ${result.hive_mind_status.activeTasks}`);
3188
+ console.log(`🧠 Learned Patterns: ${result.hive_mind_status.memoryStats.patterns}`);
3189
+ }
3190
+ if (options.monitor) {
3191
+ console.log('\nšŸ“Š HIVE-MIND MONITORING:');
3192
+ queenIntegration.logHiveMindStatus();
3193
+ }
3194
+ }
3195
+ else {
3196
+ console.error('\nāŒ Queen Agent execution failed!');
3197
+ if (result.fallback_required) {
3198
+ console.log('šŸ”„ Consider using traditional swarm command as fallback:');
3199
+ console.log(` snow-flow swarm "${objective}"`);
3200
+ }
3201
+ process.exit(1);
3202
+ }
3203
+ await queenIntegration.shutdown();
3204
+ }
3205
+ catch (error) {
3206
+ console.error('\nšŸ’„ Queen Agent error:', error.message);
3207
+ console.log('\nšŸ”„ Fallback to traditional swarm:');
3208
+ console.log(` snow-flow swarm "${objective}"`);
3209
+ process.exit(1);
3210
+ }
3211
+ });
3212
+ /**
3213
+ * Queen Memory Management
3214
+ */
3215
+ const queenMemory = program.command('queen-memory');
3216
+ queenMemory.description('🧠 Manage Queen Agent hive-mind memory');
3217
+ queenMemory
3218
+ .command('export [file]')
3219
+ .description('Export Queen memory to file')
3220
+ .action(async (file = 'queen-memory.json') => {
3221
+ console.log(`\n🧠 Exporting Queen hive-mind memory to ${file}...`);
3222
+ try {
3223
+ const { createServiceNowQueen } = await Promise.resolve().then(() => __importStar(require('./queen/index.js')));
3224
+ const queen = createServiceNowQueen({ debugMode: true });
3225
+ const memoryData = queen.exportMemory();
3226
+ const { promises: fs } = await Promise.resolve().then(() => __importStar(require('fs')));
3227
+ await fs.writeFile(file, memoryData, 'utf-8');
3228
+ console.log(`āœ… Memory exported successfully to ${file}`);
3229
+ console.log(`šŸ“Š Memory contains learned patterns and successful deployments`);
3230
+ await queen.shutdown();
3231
+ }
3232
+ catch (error) {
3233
+ console.error('āŒ Memory export failed:', error.message);
3234
+ process.exit(1);
3235
+ }
3236
+ });
3237
+ queenMemory
3238
+ .command('import <file>')
3239
+ .description('Import Queen memory from file')
3240
+ .action(async (file) => {
3241
+ console.log(`\n🧠 Importing Queen hive-mind memory from ${file}...`);
3242
+ try {
3243
+ const { promises: fs } = await Promise.resolve().then(() => __importStar(require('fs')));
3244
+ const memoryData = await fs.readFile(file, 'utf-8');
3245
+ const { createServiceNowQueen } = await Promise.resolve().then(() => __importStar(require('./queen/index.js')));
3246
+ const queen = createServiceNowQueen({ debugMode: true });
3247
+ queen.importMemory(memoryData);
3248
+ console.log(`āœ… Memory imported successfully from ${file}`);
3249
+ console.log(`🧠 Queen now has access to previous learning patterns`);
3250
+ await queen.shutdown();
3251
+ }
3252
+ catch (error) {
3253
+ console.error('āŒ Memory import failed:', error.message);
3254
+ process.exit(1);
3255
+ }
3256
+ });
3257
+ queenMemory
3258
+ .command('clear')
3259
+ .description('Clear Queen memory (reset learning)')
3260
+ .option('--confirm', 'Confirm memory clearing')
3261
+ .action(async (options) => {
3262
+ if (!options.confirm) {
3263
+ console.log('\nāš ļø This will clear all Queen hive-mind learning!');
3264
+ console.log('Use --confirm to proceed: snow-flow queen-memory clear --confirm');
3265
+ return;
3266
+ }
3267
+ console.log('\n🧠 Clearing Queen hive-mind memory...');
3268
+ try {
3269
+ const { createServiceNowQueen } = await Promise.resolve().then(() => __importStar(require('./queen/index.js')));
3270
+ const queen = createServiceNowQueen({ debugMode: true });
3271
+ queen.clearMemory();
3272
+ console.log('āœ… Queen memory cleared successfully');
3273
+ console.log('šŸ”„ Queen will start fresh learning from next execution');
3274
+ await queen.shutdown();
3275
+ }
3276
+ catch (error) {
3277
+ console.error('āŒ Memory clear failed:', error.message);
3278
+ process.exit(1);
3279
+ }
3280
+ });
3281
+ /**
3282
+ * Queen Status and Insights
3283
+ */
3284
+ program
3285
+ .command('queen-status')
3286
+ .description('šŸ“Š Show Queen Agent hive-mind status and insights')
3287
+ .option('--detailed', 'Show detailed memory and learning statistics')
3288
+ .action(async (options) => {
3289
+ console.log(`\nšŸ‘‘ ServiceNow Queen Agent Status v${version_js_1.VERSION}`);
3290
+ try {
3291
+ const { createServiceNowQueen } = await Promise.resolve().then(() => __importStar(require('./queen/index.js')));
3292
+ const queen = createServiceNowQueen({ debugMode: true });
3293
+ const status = queen.getHiveMindStatus();
3294
+ console.log('\nšŸ HIVE-MIND STATUS šŸ');
3295
+ console.log('═══════════════════════');
3296
+ console.log(`šŸ“‹ Active Tasks: ${status.activeTasks}`);
3297
+ console.log(`šŸ‘„ Active Agents: ${status.activeAgents}`);
3298
+ console.log(`🧠 Learned Patterns: ${status.memoryStats.patterns}`);
3299
+ console.log(`šŸ“š Stored Artifacts: ${status.memoryStats.artifacts}`);
3300
+ console.log(`šŸ’” Learning Insights: ${status.memoryStats.learnings}`);
3301
+ if (status.factoryStats.agentTypeCounts) {
3302
+ console.log('\nšŸ‘„ AGENT BREAKDOWN:');
3303
+ Object.entries(status.factoryStats.agentTypeCounts).forEach(([type, count]) => {
3304
+ console.log(` ${type}: ${count}`);
3305
+ });
3306
+ }
3307
+ if (options.detailed) {
3308
+ console.log('\nšŸ” DETAILED MEMORY ANALYSIS:');
3309
+ console.log(` Memory Size: ${status.memoryStats.totalSize || 'Unknown'}`);
3310
+ console.log(` Success Rate: ${status.memoryStats.successRate || 'Unknown'}%`);
3311
+ console.log(` Most Effective Pattern: ${status.memoryStats.bestPattern || 'Learning...'}`);
3312
+ }
3313
+ console.log('═══════════════════════\n');
3314
+ await queen.shutdown();
3315
+ }
3316
+ catch (error) {
3317
+ console.error('āŒ Status check failed:', error.message);
3318
+ process.exit(1);
3319
+ }
3320
+ });
3321
+ program
3322
+ .command('queen-insights')
3323
+ .description('šŸ’” Show Queen Agent learning insights and recommendations')
3324
+ .action(async () => {
3325
+ console.log(`\nšŸ’” Queen Agent Learning Insights v${version_js_1.VERSION}`);
3326
+ try {
3327
+ const { createServiceNowQueen } = await Promise.resolve().then(() => __importStar(require('./queen/index.js')));
3328
+ const queen = createServiceNowQueen({ debugMode: true });
3329
+ const insights = queen.getLearningInsights();
3330
+ console.log('\n🧠 LEARNING INSIGHTS 🧠');
3331
+ console.log('═══════════════════════');
3332
+ if (insights.successfulPatterns && insights.successfulPatterns.length > 0) {
3333
+ console.log('\nāœ… SUCCESSFUL PATTERNS:');
3334
+ insights.successfulPatterns.forEach((pattern, idx) => {
3335
+ console.log(` ${idx + 1}. ${pattern.description} (${pattern.successRate}% success)`);
3336
+ });
3337
+ }
3338
+ else {
3339
+ console.log('\nšŸ“š No patterns learned yet - execute objectives to build intelligence');
3340
+ }
3341
+ if (insights.recommendations && insights.recommendations.length > 0) {
3342
+ console.log('\nšŸ’” RECOMMENDATIONS:');
3343
+ insights.recommendations.forEach((rec, idx) => {
3344
+ console.log(` ${idx + 1}. ${rec}`);
3345
+ });
3346
+ }
3347
+ if (insights.commonTasks && insights.commonTasks.length > 0) {
3348
+ console.log('\nšŸŽÆ COMMON TASK TYPES:');
3349
+ insights.commonTasks.forEach((task, idx) => {
3350
+ console.log(` ${idx + 1}. ${task.type}: ${task.count} executions`);
3351
+ });
3352
+ }
3353
+ console.log('═══════════════════════\n');
3354
+ await queen.shutdown();
3355
+ }
3356
+ catch (error) {
3357
+ console.error('āŒ Insights failed:', error.message);
3358
+ process.exit(1);
3359
+ }
3360
+ });
3361
+ // ===================================================
3362
+ // šŸ”„ BACKWARD COMPATIBILITY ENHANCEMENTS
3363
+ // ===================================================
3364
+ /**
3365
+ * Enhance existing swarm command with optional Queen intelligence
3366
+ *
3367
+ * Note: Users can use: snow-flow swarm "objective" --queen
3368
+ * This will be implemented in a future version once the Queen system is stable.
3369
+ */
3144
3370
  program.parse(process.argv);
3145
3371
  // Show help if no command provided
3146
3372
  if (!process.argv.slice(2).length) {