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.
- package/.claude-flow/queen/queen-memory.db +0 -0
- package/.claude-flow/queen-test/test-memory.db +0 -0
- package/.claude-flow/queen-test/test-memory.db-agents +0 -0
- package/.claude-flow/queen-test/test-memory.db-import +0 -0
- package/.claude-flow/queen-test/test-memory.db-memory +0 -0
- package/.claude-flow/queen-test/test-memory.db-neural +0 -0
- package/CLAUDE.md +111 -8
- package/README.md +117 -50
- package/deploy.sh +366 -0
- package/dist/cli.js +226 -0
- package/dist/cli.js.map +1 -1
- package/dist/mcp/http-transport-wrapper.d.ts +29 -0
- package/dist/mcp/http-transport-wrapper.d.ts.map +1 -0
- package/dist/mcp/http-transport-wrapper.js +318 -0
- package/dist/mcp/http-transport-wrapper.js.map +1 -0
- package/dist/mcp/service-discovery-client.d.ts +83 -0
- package/dist/mcp/service-discovery-client.d.ts.map +1 -0
- package/dist/mcp/service-discovery-client.js +211 -0
- package/dist/mcp/service-discovery-client.js.map +1 -0
- package/dist/mcp/servicenow-deployment-mcp.js +116 -23
- package/dist/mcp/servicenow-deployment-mcp.js.map +1 -1
- package/dist/mcp/servicenow-intelligent-mcp.js +252 -18
- package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -1
- package/dist/mcp/servicenow-operations-mcp.js +170 -32
- package/dist/mcp/servicenow-operations-mcp.js.map +1 -1
- package/dist/orchestration/discovery/service-discovery.d.ts +81 -0
- package/dist/orchestration/discovery/service-discovery.d.ts.map +1 -0
- package/dist/orchestration/discovery/service-discovery.js +808 -0
- package/dist/orchestration/discovery/service-discovery.js.map +1 -0
- package/dist/orchestration/distributed-orchestrator.d.ts +131 -0
- package/dist/orchestration/distributed-orchestrator.d.ts.map +1 -0
- package/dist/orchestration/distributed-orchestrator.js +712 -0
- package/dist/orchestration/distributed-orchestrator.js.map +1 -0
- package/dist/orchestration/distribution/task-distribution-engine.d.ts +53 -0
- package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +1 -0
- package/dist/orchestration/distribution/task-distribution-engine.js +586 -0
- package/dist/orchestration/distribution/task-distribution-engine.js.map +1 -0
- package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts +606 -0
- package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +1 -0
- package/dist/orchestration/interfaces/distributed-orchestration.interface.js +65 -0
- package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +1 -0
- package/dist/orchestration/protocols/mcpx-protocol.d.ts +71 -0
- package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +1 -0
- package/dist/orchestration/protocols/mcpx-protocol.js +668 -0
- package/dist/orchestration/protocols/mcpx-protocol.js.map +1 -0
- package/dist/orchestration/state/distributed-state-manager.d.ts +89 -0
- package/dist/orchestration/state/distributed-state-manager.d.ts.map +1 -0
- package/dist/orchestration/state/distributed-state-manager.js +716 -0
- package/dist/orchestration/state/distributed-state-manager.js.map +1 -0
- package/dist/queen/advanced-integration-test.d.ts +48 -0
- package/dist/queen/advanced-integration-test.d.ts.map +1 -0
- package/dist/queen/advanced-integration-test.js +474 -0
- package/dist/queen/advanced-integration-test.js.map +1 -0
- package/dist/queen/agent-factory.d.ts +40 -0
- package/dist/queen/agent-factory.d.ts.map +1 -0
- package/dist/queen/agent-factory.js +433 -0
- package/dist/queen/agent-factory.js.map +1 -0
- package/dist/queen/index.d.ts +58 -0
- package/dist/queen/index.d.ts.map +1 -0
- package/dist/queen/index.js +79 -0
- package/dist/queen/index.js.map +1 -0
- package/dist/queen/integration-example.d.ts +82 -0
- package/dist/queen/integration-example.d.ts.map +1 -0
- package/dist/queen/integration-example.js +220 -0
- package/dist/queen/integration-example.js.map +1 -0
- package/dist/queen/integration-test.d.ts +72 -0
- package/dist/queen/integration-test.d.ts.map +1 -0
- package/dist/queen/integration-test.js +564 -0
- package/dist/queen/integration-test.js.map +1 -0
- package/dist/queen/mock-mcp-client.d.ts +66 -0
- package/dist/queen/mock-mcp-client.d.ts.map +1 -0
- package/dist/queen/mock-mcp-client.js +297 -0
- package/dist/queen/mock-mcp-client.js.map +1 -0
- package/dist/queen/neural-learning.d.ts +28 -0
- package/dist/queen/neural-learning.d.ts.map +1 -0
- package/dist/queen/neural-learning.js +244 -0
- package/dist/queen/neural-learning.js.map +1 -0
- package/dist/queen/queen-memory.d.ts +25 -0
- package/dist/queen/queen-memory.d.ts.map +1 -0
- package/dist/queen/queen-memory.js +273 -0
- package/dist/queen/queen-memory.js.map +1 -0
- package/dist/queen/run-integration-tests.d.ts +9 -0
- package/dist/queen/run-integration-tests.d.ts.map +1 -0
- package/dist/queen/run-integration-tests.js +28 -0
- package/dist/queen/run-integration-tests.js.map +1 -0
- package/dist/queen/servicenow-queen.d.ts +56 -0
- package/dist/queen/servicenow-queen.d.ts.map +1 -0
- package/dist/queen/servicenow-queen.js +659 -0
- package/dist/queen/servicenow-queen.js.map +1 -0
- package/dist/queen/types.d.ts +58 -0
- package/dist/queen/types.d.ts.map +1 -0
- package/dist/queen/types.js +7 -0
- package/dist/queen/types.js.map +1 -0
- package/dist/version.d.ts +2 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +16 -2
- package/dist/version.js.map +1 -1
- package/docker/base/Dockerfile.base +45 -0
- package/docker/generate-services.js +244 -0
- package/docker/nginx/Dockerfile +71 -0
- package/docker/nginx/consul-template.hcl +64 -0
- package/docker/nginx/healthcheck.sh +178 -0
- package/docker/nginx/nginx.conf +210 -0
- package/docker/nginx/supervisord.conf +57 -0
- package/docker/nginx/templates/upstreams.conf.tpl +48 -0
- package/docker/services/automation-mcp/Dockerfile +32 -0
- package/docker/services/automation-mcp/config/service.json +28 -0
- package/docker/services/automation-mcp/entrypoint.js +51 -0
- package/docker/services/deployment-mcp/Dockerfile +32 -0
- package/docker/services/deployment-mcp/entrypoint.js +51 -0
- package/docker/services/flow-composer-mcp/Dockerfile +32 -0
- package/docker/services/flow-composer-mcp/config/service.json +28 -0
- package/docker/services/flow-composer-mcp/entrypoint.js +51 -0
- package/docker/services/graph-memory-mcp/Dockerfile +32 -0
- package/docker/services/graph-memory-mcp/config/service.json +28 -0
- package/docker/services/graph-memory-mcp/entrypoint.js +51 -0
- package/docker/services/integration-mcp/Dockerfile +32 -0
- package/docker/services/integration-mcp/config/service.json +28 -0
- package/docker/services/integration-mcp/entrypoint.js +51 -0
- package/docker/services/intelligent-mcp/Dockerfile +32 -0
- package/docker/services/intelligent-mcp/config/service.json +28 -0
- package/docker/services/intelligent-mcp/entrypoint.js +51 -0
- package/docker/services/operations-mcp/Dockerfile +32 -0
- package/docker/services/operations-mcp/config/service.json +28 -0
- package/docker/services/operations-mcp/entrypoint.js +51 -0
- package/docker/services/platform-development-mcp/Dockerfile +32 -0
- package/docker/services/platform-development-mcp/config/service.json +28 -0
- package/docker/services/platform-development-mcp/entrypoint.js +51 -0
- package/docker/services/reporting-analytics-mcp/Dockerfile +32 -0
- package/docker/services/reporting-analytics-mcp/config/service.json +28 -0
- package/docker/services/reporting-analytics-mcp/entrypoint.js +51 -0
- package/docker/services/security-compliance-mcp/Dockerfile +32 -0
- package/docker/services/security-compliance-mcp/config/service.json +28 -0
- package/docker/services/security-compliance-mcp/entrypoint.js +51 -0
- package/docker/services/update-set-mcp/Dockerfile +32 -0
- package/docker/services/update-set-mcp/config/service.json +28 -0
- package/docker/services/update-set-mcp/entrypoint.js +51 -0
- package/docker-compose.override.yml +132 -0
- package/docker-compose.prod.yml +340 -0
- package/docker-compose.yml +579 -0
- package/k8s/automation-mcp.yaml +232 -0
- package/k8s/configmap.yaml +237 -0
- package/k8s/deployment-mcp.yaml +232 -0
- package/k8s/flow-composer-mcp.yaml +232 -0
- package/k8s/generate-k8s-manifests.js +453 -0
- package/k8s/graph-memory-mcp.yaml +232 -0
- package/k8s/infrastructure.yaml +456 -0
- package/k8s/ingress.yaml +361 -0
- package/k8s/integration-mcp.yaml +232 -0
- package/k8s/intelligent-mcp.yaml +232 -0
- package/k8s/kustomization.yaml +111 -0
- package/k8s/mcp-services.yaml +2552 -0
- package/k8s/monitoring.yaml +515 -0
- package/k8s/namespace.yaml +80 -0
- package/k8s/operations-mcp.yaml +232 -0
- package/k8s/platform-development-mcp.yaml +232 -0
- package/k8s/rbac.yaml +140 -0
- package/k8s/reporting-analytics-mcp.yaml +232 -0
- package/k8s/security-compliance-mcp.yaml +232 -0
- package/k8s/update-set-mcp.yaml +232 -0
- 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
|
|
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
|
|
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
|
|
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
|
-
//
|
|
1677
|
-
|
|
1678
|
-
|
|
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
|
|
1741
|
+
- Artifacts: ${args.artifacts?.length || 0} items
|
|
1690
1742
|
|
|
1691
|
-
📦
|
|
1692
|
-
${
|
|
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
|
-
|
|
3585
|
-
|
|
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
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
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
|