snow-flow 1.1.76 → 1.1.77

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 (231) hide show
  1. package/.claude-flow/queen/queen-memory.db +0 -0
  2. package/CLAUDE.md +34 -5
  3. package/dist/agents/base-agent.d.ts +92 -0
  4. package/dist/agents/base-agent.d.ts.map +1 -0
  5. package/dist/agents/base-agent.js +228 -0
  6. package/dist/agents/base-agent.js.map +1 -0
  7. package/dist/agents/coordinator.d.ts +200 -0
  8. package/dist/agents/coordinator.d.ts.map +1 -0
  9. package/dist/agents/coordinator.js +775 -0
  10. package/dist/agents/coordinator.js.map +1 -0
  11. package/dist/agents/flow-builder-agent.d.ts +18 -0
  12. package/dist/agents/flow-builder-agent.d.ts.map +1 -0
  13. package/dist/agents/flow-builder-agent.js +536 -0
  14. package/dist/agents/flow-builder-agent.js.map +1 -0
  15. package/dist/agents/index.d.ts +18 -0
  16. package/dist/agents/index.d.ts.map +1 -0
  17. package/dist/agents/index.js +61 -0
  18. package/dist/agents/index.js.map +1 -0
  19. package/dist/agents/queen-agent-example.d.ts +23 -0
  20. package/dist/agents/queen-agent-example.d.ts.map +1 -0
  21. package/dist/agents/queen-agent-example.js +241 -0
  22. package/dist/agents/queen-agent-example.js.map +1 -0
  23. package/dist/agents/queen-agent.d.ts +180 -0
  24. package/dist/agents/queen-agent.d.ts.map +1 -0
  25. package/dist/agents/queen-agent.js +909 -0
  26. package/dist/agents/queen-agent.js.map +1 -0
  27. package/dist/agents/queen-agent.test.d.ts +6 -0
  28. package/dist/agents/queen-agent.test.d.ts.map +1 -0
  29. package/dist/agents/queen-agent.test.js.map +1 -0
  30. package/dist/agents/script-writer-agent.d.ts +22 -0
  31. package/dist/agents/script-writer-agent.d.ts.map +1 -0
  32. package/dist/agents/script-writer-agent.js +695 -0
  33. package/dist/agents/script-writer-agent.js.map +1 -0
  34. package/dist/agents/security-agent.d.ts +23 -0
  35. package/dist/agents/security-agent.d.ts.map +1 -0
  36. package/dist/agents/security-agent.js +619 -0
  37. package/dist/agents/security-agent.js.map +1 -0
  38. package/dist/agents/test-agent.d.ts +26 -0
  39. package/dist/agents/test-agent.d.ts.map +1 -0
  40. package/dist/agents/test-agent.js +735 -0
  41. package/dist/agents/test-agent.js.map +1 -0
  42. package/dist/agents/test-agents.d.ts +7 -0
  43. package/dist/agents/test-agents.d.ts.map +1 -0
  44. package/dist/agents/test-agents.js +65 -0
  45. package/dist/agents/test-agents.js.map +1 -0
  46. package/dist/agents/widget-creator-agent.d.ts +18 -0
  47. package/dist/agents/widget-creator-agent.d.ts.map +1 -0
  48. package/dist/agents/widget-creator-agent.js +440 -0
  49. package/dist/agents/widget-creator-agent.js.map +1 -0
  50. package/dist/cli/snow-flow-cli-integration.d.ts +30 -0
  51. package/dist/cli/snow-flow-cli-integration.d.ts.map +1 -0
  52. package/dist/cli/snow-flow-cli-integration.js +385 -0
  53. package/dist/cli/snow-flow-cli-integration.js.map +1 -0
  54. package/dist/cli.js +466 -150
  55. package/dist/cli.js.map +1 -1
  56. package/dist/config/snow-flow-config.d.ts +1454 -0
  57. package/dist/config/snow-flow-config.d.ts.map +1 -0
  58. package/dist/config/snow-flow-config.js +403 -0
  59. package/dist/config/snow-flow-config.js.map +1 -0
  60. package/dist/health/system-health.d.ts +123 -0
  61. package/dist/health/system-health.d.ts.map +1 -0
  62. package/dist/health/system-health.js +580 -0
  63. package/dist/health/system-health.js.map +1 -0
  64. package/dist/index.d.ts +12 -1
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +19 -3
  67. package/dist/index.js.map +1 -1
  68. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts +58 -0
  69. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +1 -0
  70. package/dist/mcp/servicenow-deployment-mcp-refactored.js +651 -0
  71. package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +1 -0
  72. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts +43 -0
  73. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +1 -0
  74. package/dist/mcp/servicenow-intelligent-mcp-refactored.js +576 -0
  75. package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +1 -0
  76. package/dist/mcp/servicenow-intelligent-mcp.d.ts +102 -1
  77. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +1 -1
  78. package/dist/mcp/servicenow-intelligent-mcp.js +2 -0
  79. package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -1
  80. package/dist/mcp/shared/agent-context-provider.d.ts +77 -0
  81. package/dist/mcp/shared/agent-context-provider.d.ts.map +1 -0
  82. package/dist/mcp/shared/agent-context-provider.js +292 -0
  83. package/dist/mcp/shared/agent-context-provider.js.map +1 -0
  84. package/dist/mcp/shared/base-mcp-server.d.ts +97 -0
  85. package/dist/mcp/shared/base-mcp-server.d.ts.map +1 -0
  86. package/dist/mcp/shared/base-mcp-server.js +216 -0
  87. package/dist/mcp/shared/base-mcp-server.js.map +1 -0
  88. package/dist/mcp/shared/mcp-memory-manager.d.ts +87 -0
  89. package/dist/mcp/shared/mcp-memory-manager.d.ts.map +1 -0
  90. package/dist/mcp/shared/mcp-memory-manager.js +423 -0
  91. package/dist/mcp/shared/mcp-memory-manager.js.map +1 -0
  92. package/dist/memory/index.d.ts +9 -0
  93. package/dist/memory/index.d.ts.map +1 -0
  94. package/dist/memory/index.js +20 -0
  95. package/dist/memory/index.js.map +1 -0
  96. package/dist/memory/mcp-integration-example.d.ts +6 -0
  97. package/dist/memory/mcp-integration-example.d.ts.map +1 -0
  98. package/dist/memory/mcp-integration-example.js +282 -0
  99. package/dist/memory/mcp-integration-example.js.map +1 -0
  100. package/dist/memory/memory-client.d.ts +184 -0
  101. package/dist/memory/memory-client.d.ts.map +1 -0
  102. package/dist/memory/memory-client.js +325 -0
  103. package/dist/memory/memory-client.js.map +1 -0
  104. package/dist/memory/memory-operations.d.ts +170 -0
  105. package/dist/memory/memory-operations.d.ts.map +1 -0
  106. package/dist/memory/memory-operations.js +639 -0
  107. package/dist/memory/memory-operations.js.map +1 -0
  108. package/dist/memory/memory-system.d.ts +118 -0
  109. package/dist/memory/memory-system.d.ts.map +1 -0
  110. package/dist/memory/memory-system.js +477 -0
  111. package/dist/memory/memory-system.js.map +1 -0
  112. package/dist/memory/memory-test.d.ts +6 -0
  113. package/dist/memory/memory-test.d.ts.map +1 -0
  114. package/dist/memory/memory-test.js +162 -0
  115. package/dist/memory/memory-test.js.map +1 -0
  116. package/dist/memory/swarm-memory.d.ts +135 -0
  117. package/dist/memory/swarm-memory.d.ts.map +1 -0
  118. package/dist/memory/swarm-memory.js +378 -0
  119. package/dist/memory/swarm-memory.js.map +1 -0
  120. package/dist/monitoring/performance-tracker.d.ts +157 -0
  121. package/dist/monitoring/performance-tracker.d.ts.map +1 -0
  122. package/dist/monitoring/performance-tracker.js +571 -0
  123. package/dist/monitoring/performance-tracker.js.map +1 -0
  124. package/dist/queen/agent-factory.d.ts +3 -0
  125. package/dist/queen/agent-factory.d.ts.map +1 -1
  126. package/dist/queen/agent-factory.js +52 -0
  127. package/dist/queen/agent-factory.js.map +1 -1
  128. package/dist/queen/queen-memory.d.ts +8 -2
  129. package/dist/queen/queen-memory.d.ts.map +1 -1
  130. package/dist/queen/queen-memory.js +46 -4
  131. package/dist/queen/queen-memory.js.map +1 -1
  132. package/dist/snow-flow-system.d.ts +132 -0
  133. package/dist/snow-flow-system.d.ts.map +1 -0
  134. package/dist/snow-flow-system.js +396 -0
  135. package/dist/snow-flow-system.js.map +1 -0
  136. package/dist/types/todo.types.d.ts +61 -0
  137. package/dist/types/todo.types.d.ts.map +1 -0
  138. package/dist/types/todo.types.js +7 -0
  139. package/dist/types/todo.types.js.map +1 -0
  140. package/dist/utils/error-recovery.d.ts +101 -0
  141. package/dist/utils/error-recovery.d.ts.map +1 -0
  142. package/dist/utils/error-recovery.js +548 -0
  143. package/dist/utils/error-recovery.js.map +1 -0
  144. package/package.json +7 -2
  145. package/deploy.sh +0 -366
  146. package/docker/base/Dockerfile.base +0 -45
  147. package/docker/generate-services.js +0 -244
  148. package/docker/nginx/Dockerfile +0 -71
  149. package/docker/nginx/consul-template.hcl +0 -64
  150. package/docker/nginx/healthcheck.sh +0 -178
  151. package/docker/nginx/nginx.conf +0 -210
  152. package/docker/nginx/supervisord.conf +0 -57
  153. package/docker/nginx/templates/upstreams.conf.tpl +0 -48
  154. package/docker/services/automation-mcp/Dockerfile +0 -32
  155. package/docker/services/automation-mcp/config/service.json +0 -28
  156. package/docker/services/automation-mcp/entrypoint.js +0 -51
  157. package/docker/services/deployment-mcp/Dockerfile +0 -32
  158. package/docker/services/deployment-mcp/entrypoint.js +0 -51
  159. package/docker/services/flow-composer-mcp/Dockerfile +0 -32
  160. package/docker/services/flow-composer-mcp/config/service.json +0 -28
  161. package/docker/services/flow-composer-mcp/entrypoint.js +0 -51
  162. package/docker/services/graph-memory-mcp/Dockerfile +0 -32
  163. package/docker/services/graph-memory-mcp/config/service.json +0 -28
  164. package/docker/services/graph-memory-mcp/entrypoint.js +0 -51
  165. package/docker/services/integration-mcp/Dockerfile +0 -32
  166. package/docker/services/integration-mcp/config/service.json +0 -28
  167. package/docker/services/integration-mcp/entrypoint.js +0 -51
  168. package/docker/services/intelligent-mcp/Dockerfile +0 -32
  169. package/docker/services/intelligent-mcp/config/service.json +0 -28
  170. package/docker/services/intelligent-mcp/entrypoint.js +0 -51
  171. package/docker/services/operations-mcp/Dockerfile +0 -32
  172. package/docker/services/operations-mcp/config/service.json +0 -28
  173. package/docker/services/operations-mcp/entrypoint.js +0 -51
  174. package/docker/services/platform-development-mcp/Dockerfile +0 -32
  175. package/docker/services/platform-development-mcp/config/service.json +0 -28
  176. package/docker/services/platform-development-mcp/entrypoint.js +0 -51
  177. package/docker/services/reporting-analytics-mcp/Dockerfile +0 -32
  178. package/docker/services/reporting-analytics-mcp/config/service.json +0 -28
  179. package/docker/services/reporting-analytics-mcp/entrypoint.js +0 -51
  180. package/docker/services/security-compliance-mcp/Dockerfile +0 -32
  181. package/docker/services/security-compliance-mcp/config/service.json +0 -28
  182. package/docker/services/security-compliance-mcp/entrypoint.js +0 -51
  183. package/docker/services/update-set-mcp/Dockerfile +0 -32
  184. package/docker/services/update-set-mcp/config/service.json +0 -28
  185. package/docker/services/update-set-mcp/entrypoint.js +0 -51
  186. package/docker-compose.override.yml +0 -132
  187. package/docker-compose.prod.yml +0 -340
  188. package/docker-compose.yml +0 -579
  189. package/k8s/automation-mcp.yaml +0 -232
  190. package/k8s/configmap.yaml +0 -237
  191. package/k8s/deployment-mcp.yaml +0 -232
  192. package/k8s/flow-composer-mcp.yaml +0 -232
  193. package/k8s/generate-k8s-manifests.js +0 -453
  194. package/k8s/graph-memory-mcp.yaml +0 -232
  195. package/k8s/infrastructure.yaml +0 -456
  196. package/k8s/ingress.yaml +0 -361
  197. package/k8s/integration-mcp.yaml +0 -232
  198. package/k8s/intelligent-mcp.yaml +0 -232
  199. package/k8s/kustomization.yaml +0 -111
  200. package/k8s/mcp-services.yaml +0 -2552
  201. package/k8s/monitoring.yaml +0 -515
  202. package/k8s/namespace.yaml +0 -80
  203. package/k8s/operations-mcp.yaml +0 -232
  204. package/k8s/platform-development-mcp.yaml +0 -232
  205. package/k8s/rbac.yaml +0 -140
  206. package/k8s/reporting-analytics-mcp.yaml +0 -232
  207. package/k8s/security-compliance-mcp.yaml +0 -232
  208. package/k8s/update-set-mcp.yaml +0 -232
  209. package/test-clean-install/.claude/config.json +0 -12
  210. package/test-clean-install/.env.example +0 -49
  211. package/test-clean-install/CLAUDE.md +0 -26
  212. package/test-clean-install/README.md +0 -23
  213. package/test-global-install/.claude/config.json +0 -12
  214. package/test-global-install/CLAUDE.md +0 -26
  215. package/test-global-install/README.md +0 -23
  216. package/test-global-install/test-global-install/.claude/config.json +0 -12
  217. package/test-global-install/test-global-install/CLAUDE.md +0 -26
  218. package/test-global-install/test-global-install/README.md +0 -23
  219. package/test-global-install/test-global-install/test-global-install/.claude/config.json +0 -12
  220. package/test-global-install/test-global-install/test-global-install/.env.example +0 -49
  221. package/test-global-install/test-global-install/test-global-install/CLAUDE.md +0 -26
  222. package/test-global-install/test-global-install/test-global-install/README.md +0 -23
  223. package/test-init-debug/.claude/config.json +0 -12
  224. package/test-init-debug/CLAUDE.md +0 -693
  225. package/test-init-debug/README.md +0 -392
  226. package/test-init-real/.claude/config.json +0 -12
  227. package/test-init-real/.claude/mcp-config.json +0 -128
  228. package/test-init-real/.claude/settings.json +0 -37
  229. package/test-init-real/CLAUDE.md +0 -693
  230. package/test-init-real/README.md +0 -392
  231. package/test-init-real/activate-mcp.sh +0 -15
package/deploy.sh DELETED
@@ -1,366 +0,0 @@
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
@@ -1,45 +0,0 @@
1
- # Base image for all ServiceNow MCP servers
2
- FROM node:20-alpine AS base
3
-
4
- # Install security updates and necessary tools
5
- RUN apk update && apk upgrade && \
6
- apk add --no-cache \
7
- curl \
8
- ca-certificates \
9
- tzdata \
10
- tini
11
-
12
- # Create app user for security
13
- RUN addgroup -g 1001 -S nodejs && \
14
- adduser -S nodejs -u 1001
15
-
16
- # Set working directory
17
- WORKDIR /app
18
-
19
- # Copy package files
20
- COPY package*.json ./
21
- COPY tsconfig.json ./
22
-
23
- # Install dependencies
24
- RUN npm ci --only=production && \
25
- npm cache clean --force
26
-
27
- # Copy source code (will be overridden by specific services)
28
- COPY src/ ./src/
29
-
30
- # Build TypeScript
31
- RUN npm run build
32
-
33
- # Create logs and temp directories with proper permissions
34
- RUN mkdir -p /app/logs /app/temp && \
35
- chown -R nodejs:nodejs /app
36
-
37
- # Switch to non-root user
38
- USER nodejs
39
-
40
- # Health check endpoint
41
- HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
42
- CMD curl -f http://localhost:${SERVER_PORT:-3000}/health || exit 1
43
-
44
- # Use tini as entrypoint for proper signal handling
45
- ENTRYPOINT ["/sbin/tini", "--"]
@@ -1,244 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Generate Docker configurations for all MCP servers
4
- */
5
-
6
- const fs = require('fs').promises;
7
- const path = require('path');
8
-
9
- const SERVICES = [
10
- {
11
- name: 'flow-composer-mcp',
12
- displayName: 'ServiceNow Flow Composer MCP Server',
13
- port: 3002,
14
- sourceFile: 'servicenow-flow-composer-mcp.ts',
15
- className: 'ServiceNowFlowComposerMCP'
16
- },
17
- {
18
- name: 'intelligent-mcp',
19
- displayName: 'ServiceNow Intelligent MCP Server',
20
- port: 3003,
21
- sourceFile: 'servicenow-intelligent-mcp.ts',
22
- className: 'ServiceNowIntelligentMCP'
23
- },
24
- {
25
- name: 'update-set-mcp',
26
- displayName: 'ServiceNow Update Set MCP Server',
27
- port: 3004,
28
- sourceFile: 'servicenow-update-set-mcp.ts',
29
- className: 'ServiceNowUpdateSetMCP'
30
- },
31
- {
32
- name: 'graph-memory-mcp',
33
- displayName: 'ServiceNow Graph Memory MCP Server',
34
- port: 3005,
35
- sourceFile: 'servicenow-graph-memory-mcp.ts',
36
- className: 'ServiceNowGraphMemoryMCP'
37
- },
38
- {
39
- name: 'operations-mcp',
40
- displayName: 'ServiceNow Operations MCP Server',
41
- port: 3006,
42
- sourceFile: 'servicenow-operations-mcp.ts',
43
- className: 'ServiceNowOperationsMCP'
44
- },
45
- {
46
- name: 'platform-development-mcp',
47
- displayName: 'ServiceNow Platform Development MCP Server',
48
- port: 3007,
49
- sourceFile: 'servicenow-platform-development-mcp.ts',
50
- className: 'ServiceNowPlatformDevelopmentMCP'
51
- },
52
- {
53
- name: 'integration-mcp',
54
- displayName: 'ServiceNow Integration MCP Server',
55
- port: 3008,
56
- sourceFile: 'servicenow-integration-mcp.ts',
57
- className: 'ServiceNowIntegrationMCP'
58
- },
59
- {
60
- name: 'automation-mcp',
61
- displayName: 'ServiceNow Automation MCP Server',
62
- port: 3009,
63
- sourceFile: 'servicenow-automation-mcp.ts',
64
- className: 'ServiceNowAutomationMCP'
65
- },
66
- {
67
- name: 'security-compliance-mcp',
68
- displayName: 'ServiceNow Security & Compliance MCP Server',
69
- port: 3010,
70
- sourceFile: 'servicenow-security-compliance-mcp.ts',
71
- className: 'ServiceNowSecurityComplianceMCP'
72
- },
73
- {
74
- name: 'reporting-analytics-mcp',
75
- displayName: 'ServiceNow Reporting & Analytics MCP Server',
76
- port: 3011,
77
- sourceFile: 'servicenow-reporting-analytics-mcp.ts',
78
- className: 'ServiceNowReportingAnalyticsMCP'
79
- }
80
- ];
81
-
82
- function generateDockerfile(service) {
83
- return `# ${service.displayName}
84
- FROM ../base/Dockerfile.base AS ${service.name}
85
-
86
- LABEL service="${service.name}" \\
87
- version="1.0.0" \\
88
- description="${service.displayName}" \\
89
- port="${service.port}"
90
-
91
- # Set service-specific environment
92
- ENV SERVICE_NAME=${service.name} \\
93
- SERVER_PORT=${service.port} \\
94
- NODE_ENV=production
95
-
96
- # Copy service-specific configuration
97
- COPY docker/services/${service.name}/config/ ./config/
98
-
99
- # Copy only the necessary service files
100
- COPY src/mcp/${service.sourceFile} ./src/mcp/
101
- COPY src/mcp/http-transport-wrapper.ts ./src/mcp/
102
- COPY src/mcp/service-discovery-client.ts ./src/mcp/
103
-
104
- # Copy service entry point
105
- COPY docker/services/${service.name}/entrypoint.js ./
106
-
107
- # Rebuild for this specific service
108
- RUN npm run build
109
-
110
- # Expose port
111
- EXPOSE ${service.port}
112
-
113
- # Start the service
114
- CMD ["node", "entrypoint.js"]`;
115
- }
116
-
117
- function generateEntrypoint(service) {
118
- return `#!/usr/bin/env node
119
- /**
120
- * ${service.displayName} Entry Point
121
- * Initializes the server with HTTP transport for containerization
122
- */
123
-
124
- import { ${service.className} } from '../dist/mcp/${service.sourceFile.replace('.ts', '.js')}';
125
- import { HttpTransportWrapper } from '../dist/mcp/http-transport-wrapper.js';
126
- import { Logger } from '../dist/utils/logger.js';
127
-
128
- const logger = new Logger('${service.className}Container');
129
-
130
- async function start() {
131
- try {
132
- logger.info('Starting ${service.displayName}...');
133
-
134
- // Initialize the MCP server
135
- const serverInstance = new ${service.className}();
136
-
137
- // Wrap with HTTP transport
138
- const httpWrapper = new HttpTransportWrapper(serverInstance, {
139
- name: '${service.name}',
140
- version: '1.0.0',
141
- port: parseInt(process.env.SERVER_PORT || '${service.port}'),
142
- healthCheckPath: '/health',
143
- metricsPath: '/metrics'
144
- });
145
-
146
- // Start the HTTP server
147
- await httpWrapper.start();
148
-
149
- logger.info('${service.displayName} started successfully');
150
-
151
- } catch (error) {
152
- logger.error('Failed to start ${service.displayName}:', error);
153
- process.exit(1);
154
- }
155
- }
156
-
157
- // Handle process signals
158
- process.on('SIGINT', () => {
159
- logger.info('Received SIGINT, shutting down gracefully');
160
- process.exit(0);
161
- });
162
-
163
- process.on('SIGTERM', () => {
164
- logger.info('Received SIGTERM, shutting down gracefully');
165
- process.exit(0);
166
- });
167
-
168
- start();`;
169
- }
170
-
171
- function generateServiceConfig(service) {
172
- return {
173
- service: {
174
- name: service.name,
175
- displayName: service.displayName,
176
- port: service.port,
177
- healthCheck: {
178
- path: '/health',
179
- interval: '30s',
180
- timeout: '10s',
181
- retries: 3
182
- },
183
- resources: {
184
- limits: {
185
- memory: '512Mi',
186
- cpu: '500m'
187
- },
188
- requests: {
189
- memory: '256Mi',
190
- cpu: '250m'
191
- }
192
- },
193
- scaling: {
194
- minReplicas: 1,
195
- maxReplicas: 3,
196
- targetCPU: 70
197
- }
198
- }
199
- };
200
- }
201
-
202
- async function generateAllServices() {
203
- console.log('Generating Docker configurations for all MCP services...');
204
-
205
- for (const service of SERVICES) {
206
- const servicePath = path.join(__dirname, 'services', service.name);
207
-
208
- try {
209
- // Create service directory
210
- await fs.mkdir(servicePath, { recursive: true });
211
-
212
- // Create config directory
213
- await fs.mkdir(path.join(servicePath, 'config'), { recursive: true });
214
-
215
- // Generate Dockerfile
216
- const dockerfileContent = generateDockerfile(service);
217
- await fs.writeFile(path.join(servicePath, 'Dockerfile'), dockerfileContent);
218
-
219
- // Generate entrypoint
220
- const entrypointContent = generateEntrypoint(service);
221
- await fs.writeFile(path.join(servicePath, 'entrypoint.js'), entrypointContent);
222
-
223
- // Generate service configuration
224
- const configContent = generateServiceConfig(service);
225
- await fs.writeFile(
226
- path.join(servicePath, 'config', 'service.json'),
227
- JSON.stringify(configContent, null, 2)
228
- );
229
-
230
- console.log(`✅ Generated configuration for ${service.name}`);
231
- } catch (error) {
232
- console.error(`❌ Failed to generate ${service.name}:`, error);
233
- }
234
- }
235
-
236
- console.log('\\n🎉 All service configurations generated successfully!');
237
- console.log('\\nServices created:');
238
- SERVICES.forEach(service => {
239
- console.log(` - ${service.name} (${service.displayName}) - Port: ${service.port}`);
240
- });
241
- }
242
-
243
- // Run the generator
244
- generateAllServices().catch(console.error);