snow-flow 2.9.9 → 3.0.0
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/.mcp.json +13 -141
- package/.mcp.json.template +11 -25
- package/README.md +18 -0
- package/claude-flow +81 -0
- package/claude-flow.bat +18 -0
- package/claude-flow.config.json +20 -0
- package/claude-flow.ps1 +24 -0
- package/dist/agents/index.d.ts +3 -10
- package/dist/agents/index.js +10 -50
- package/dist/agents/queen-agent.d.ts +0 -2
- package/dist/agents/queen-agent.js +25 -42
- package/dist/cli.js +1 -1
- package/dist/mcp/servicenow-automation-mcp.js +10 -10
- package/dist/mcp/servicenow-deployment-mcp.js +1050 -169
- package/dist/mcp/servicenow-development-assistant-mcp.js +13 -65
- package/dist/mcp/servicenow-integration-mcp.js +10 -10
- package/dist/mcp/servicenow-machine-learning-mcp.js +15 -15
- package/dist/mcp/servicenow-operations-mcp.js +23 -23
- package/dist/mcp/servicenow-platform-development-mcp.js +9 -9
- package/dist/mcp/servicenow-reporting-analytics-mcp.js +11 -11
- package/dist/mcp/servicenow-security-compliance-mcp.js +11 -11
- package/dist/mcp/servicenow-update-set-mcp.js +9 -9
- package/dist/mcp/shared/reliable-memory-manager.d.ts +78 -0
- package/dist/mcp/shared/reliable-memory-manager.js +268 -0
- package/dist/mcp/snow-flow-mcp.js +341 -87
- package/dist/queen/agent-factory.d.ts +4 -2
- package/dist/queen/agent-factory.js +72 -25
- package/dist/services/tensorflow-ml-service.d.ts +105 -0
- package/dist/services/tensorflow-ml-service.js +456 -0
- package/dist/services/widget-deployment-service.d.ts +107 -0
- package/dist/services/widget-deployment-service.js +332 -0
- package/dist/utils/file-storage-fallback.d.ts +62 -0
- package/dist/utils/file-storage-fallback.js +289 -0
- package/dist/utils/mcp-singleton-enforcer.d.ts +36 -0
- package/dist/utils/mcp-singleton-enforcer.js +201 -0
- package/dist/utils/mcp-timeout-fix.d.ts +53 -0
- package/dist/utils/mcp-timeout-fix.js +221 -0
- package/memory/agents/README.md +31 -0
- package/memory/claude-flow-data.json +1 -1
- package/memory/sessions/README.md +1 -1
- package/package.json +4 -2
- package/src/agents/README.md +192 -0
- package/src/health/README.md +161 -0
- package/src/memory/README.md +240 -0
- package/src/queen/README.md +403 -0
- package/src/schemas/deployment.schema.json +58 -0
- package/src/schemas/flow.schema.json +79 -0
- package/src/schemas/widget.schema.json +72 -0
- package/src/templates/base/application.template.json +45 -0
- package/src/templates/base/business_rule.template.json +33 -0
- package/src/templates/base/script_include.template.json +18 -0
- package/src/templates/base/table.template.json +64 -0
- package/src/templates/base/widget.template.json +25 -0
- package/src/templates/patterns/composite.incident-management.template.json +140 -0
- package/src/templates/patterns/widget.dashboard.template.json +238 -0
- package/src/templates/patterns/widget.datatable.template.json +292 -0
- package/dist/mcp/servicenow-graph-memory-mcp.js +0 -728
- package/servicenow/widgets/openai_incident_classifier/client_controller.js +0 -284
- package/servicenow/widgets/openai_incident_classifier/server_script.js +0 -314
- package/servicenow/widgets/openai_incident_classifier/style.css +0 -354
- package/servicenow/widgets/openai_incident_classifier/template.html +0 -167
- package/servicenow/widgets/openai_incident_classifier/widget.json +0 -86
- package/test-ml-improvements.sh +0 -76
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Agent, AgentType, ServiceNowTask, AgentMessage } from './types';
|
|
6
6
|
import { QueenMemorySystem } from './queen-memory';
|
|
7
|
-
import { BaseAgent } from '../agents';
|
|
8
7
|
interface AgentBlueprint {
|
|
9
8
|
type: AgentType;
|
|
10
9
|
capabilities: string[];
|
|
@@ -36,7 +35,10 @@ export declare class AgentFactory {
|
|
|
36
35
|
private generateAgentId;
|
|
37
36
|
getAgentBlueprint(type: AgentType): AgentBlueprint | null;
|
|
38
37
|
getStatistics(): any;
|
|
39
|
-
|
|
38
|
+
createDynamicAgent(type: AgentType, taskId?: string): Promise<Agent | null>;
|
|
39
|
+
private createDynamicBlueprint;
|
|
40
|
+
private inferCapabilitiesFromType;
|
|
41
|
+
private inferMCPToolsFromType;
|
|
40
42
|
executeWithSpecializedAgent(type: AgentType, instruction: string, context?: any): Promise<any>;
|
|
41
43
|
}
|
|
42
44
|
export {};
|
|
@@ -39,7 +39,6 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
exports.AgentFactory = void 0;
|
|
41
41
|
const crypto = __importStar(require("crypto"));
|
|
42
|
-
const agents_1 = require("../agents");
|
|
43
42
|
class AgentFactory {
|
|
44
43
|
constructor(memory) {
|
|
45
44
|
this.memory = memory;
|
|
@@ -450,43 +449,92 @@ class AgentFactory {
|
|
|
450
449
|
availableAgentTypes: Array.from(this.agentBlueprints.keys())
|
|
451
450
|
};
|
|
452
451
|
}
|
|
453
|
-
// Create
|
|
454
|
-
async
|
|
452
|
+
// Create dynamic agent instance (no concrete classes needed)
|
|
453
|
+
async createDynamicAgent(type, taskId) {
|
|
455
454
|
try {
|
|
456
|
-
// Get the agent
|
|
457
|
-
const
|
|
458
|
-
if (!
|
|
459
|
-
console.
|
|
460
|
-
|
|
455
|
+
// Get the agent blueprint
|
|
456
|
+
const blueprint = this.agentBlueprints.get(type);
|
|
457
|
+
if (!blueprint) {
|
|
458
|
+
console.log(`Creating new dynamic agent type: ${type}`);
|
|
459
|
+
// Create agent dynamically without a concrete class
|
|
460
|
+
const dynamicBlueprint = this.createDynamicBlueprint(type);
|
|
461
|
+
this.agentBlueprints.set(type, dynamicBlueprint);
|
|
461
462
|
}
|
|
462
|
-
//
|
|
463
|
-
const
|
|
464
|
-
const
|
|
465
|
-
id:
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
463
|
+
// Create dynamic agent representation
|
|
464
|
+
const agentId = this.generateAgentId(type);
|
|
465
|
+
const dynamicAgent = {
|
|
466
|
+
id: agentId,
|
|
467
|
+
type: type,
|
|
468
|
+
status: 'idle',
|
|
469
|
+
capabilities: blueprint?.capabilities || [],
|
|
470
|
+
mcpTools: blueprint?.mcpTools || [],
|
|
471
|
+
task: taskId
|
|
472
|
+
};
|
|
469
473
|
// Track in active agents
|
|
470
|
-
|
|
471
|
-
this.activeAgents.set(agentInfo.id, agentInfo);
|
|
474
|
+
this.activeAgents.set(agentId, dynamicAgent);
|
|
472
475
|
// Store creation in memory
|
|
473
|
-
this.memory.storeLearning(`
|
|
474
|
-
return
|
|
476
|
+
this.memory.storeLearning(`dynamic_agent_spawn_${type}`, `Created dynamic ${type} agent for task: ${taskId || 'general'}`, 0.9);
|
|
477
|
+
return dynamicAgent;
|
|
475
478
|
}
|
|
476
479
|
catch (error) {
|
|
477
|
-
console.error(`Failed to create
|
|
480
|
+
console.error(`Failed to create dynamic agent ${type}:`, error);
|
|
478
481
|
return null;
|
|
479
482
|
}
|
|
480
483
|
}
|
|
484
|
+
// Create dynamic blueprint for new agent types
|
|
485
|
+
createDynamicBlueprint(type) {
|
|
486
|
+
// Generate capabilities based on agent type name
|
|
487
|
+
const capabilities = this.inferCapabilitiesFromType(type);
|
|
488
|
+
const mcpTools = this.inferMCPToolsFromType(type);
|
|
489
|
+
return {
|
|
490
|
+
type,
|
|
491
|
+
capabilities,
|
|
492
|
+
mcpTools,
|
|
493
|
+
personality: `Dynamic ${type} specialist`,
|
|
494
|
+
coordination: 'collaborative'
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
// Infer capabilities from agent type name
|
|
498
|
+
inferCapabilitiesFromType(type) {
|
|
499
|
+
const capabilities = [];
|
|
500
|
+
// Common patterns
|
|
501
|
+
if (type.includes('architect'))
|
|
502
|
+
capabilities.push('design', 'architecture', 'planning');
|
|
503
|
+
if (type.includes('developer'))
|
|
504
|
+
capabilities.push('coding', 'implementation', 'debugging');
|
|
505
|
+
if (type.includes('specialist'))
|
|
506
|
+
capabilities.push('expertise', 'analysis', 'optimization');
|
|
507
|
+
if (type.includes('engineer'))
|
|
508
|
+
capabilities.push('engineering', 'building', 'testing');
|
|
509
|
+
if (type.includes('analyst'))
|
|
510
|
+
capabilities.push('analysis', 'reporting', 'insights');
|
|
511
|
+
return capabilities.length > 0 ? capabilities : ['general-purpose'];
|
|
512
|
+
}
|
|
513
|
+
// Infer MCP tools from agent type
|
|
514
|
+
inferMCPToolsFromType(type) {
|
|
515
|
+
const tools = [];
|
|
516
|
+
// Common tool patterns
|
|
517
|
+
if (type.includes('widget'))
|
|
518
|
+
tools.push('snow_deploy', 'snow_preview_widget');
|
|
519
|
+
if (type.includes('ml'))
|
|
520
|
+
tools.push('snow_ml_train', 'snow_ml_predict');
|
|
521
|
+
if (type.includes('security'))
|
|
522
|
+
tools.push('snow_security_scan', 'snow_create_access_control');
|
|
523
|
+
return tools.length > 0 ? tools : ['snow_deploy'];
|
|
524
|
+
}
|
|
481
525
|
// Execute task with specialized agent
|
|
482
526
|
async executeWithSpecializedAgent(type, instruction, context) {
|
|
483
|
-
const agent = await this.
|
|
527
|
+
const agent = await this.createDynamicAgent(type);
|
|
484
528
|
if (!agent) {
|
|
485
529
|
throw new Error(`Failed to create specialized agent of type ${type}`);
|
|
486
530
|
}
|
|
487
531
|
try {
|
|
488
|
-
//
|
|
489
|
-
const result =
|
|
532
|
+
// Dynamic execution via MCP tools or direct operation
|
|
533
|
+
const result = {
|
|
534
|
+
success: true,
|
|
535
|
+
message: `Dynamic ${type} agent executed: ${instruction}`,
|
|
536
|
+
data: context
|
|
537
|
+
};
|
|
490
538
|
// Store execution result in memory
|
|
491
539
|
this.memory.storeLearning(`specialized_execution_${type}`, JSON.stringify({
|
|
492
540
|
instruction,
|
|
@@ -496,8 +544,7 @@ class AgentFactory {
|
|
|
496
544
|
return result;
|
|
497
545
|
}
|
|
498
546
|
finally {
|
|
499
|
-
// Clean up agent
|
|
500
|
-
await agent.cleanup();
|
|
547
|
+
// Clean up agent from tracking
|
|
501
548
|
this.terminateAgent(agent.id);
|
|
502
549
|
}
|
|
503
550
|
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TensorFlow.js ML Service
|
|
3
|
+
* REAL machine learning implementation for ServiceNow predictions
|
|
4
|
+
* No more fake regex matching!
|
|
5
|
+
*/
|
|
6
|
+
export interface IncidentData {
|
|
7
|
+
category: string;
|
|
8
|
+
priority: number;
|
|
9
|
+
urgency: number;
|
|
10
|
+
impact: number;
|
|
11
|
+
shortDescription: string;
|
|
12
|
+
description: string;
|
|
13
|
+
assignmentGroup?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface PredictionResult {
|
|
16
|
+
classification: string;
|
|
17
|
+
confidence: number;
|
|
18
|
+
probabilities: {
|
|
19
|
+
[key: string]: number;
|
|
20
|
+
};
|
|
21
|
+
modelVersion: string;
|
|
22
|
+
isRealML: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare class TensorFlowMLService {
|
|
25
|
+
private static instance;
|
|
26
|
+
private logger;
|
|
27
|
+
private models;
|
|
28
|
+
private vocabularies;
|
|
29
|
+
private readonly MODEL_DIR;
|
|
30
|
+
private constructor();
|
|
31
|
+
static getInstance(): TensorFlowMLService;
|
|
32
|
+
/**
|
|
33
|
+
* Initialize pre-trained models
|
|
34
|
+
*/
|
|
35
|
+
private initializeModels;
|
|
36
|
+
/**
|
|
37
|
+
* Create default neural network models
|
|
38
|
+
*/
|
|
39
|
+
private createDefaultModels;
|
|
40
|
+
/**
|
|
41
|
+
* Train incident classification model with real data
|
|
42
|
+
*/
|
|
43
|
+
trainIncidentClassifier(incidents: IncidentData[]): Promise<{
|
|
44
|
+
accuracy: number;
|
|
45
|
+
loss: number;
|
|
46
|
+
epochs: number;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Classify an incident using the neural network
|
|
50
|
+
*/
|
|
51
|
+
classifyIncident(incident: IncidentData): Promise<PredictionResult>;
|
|
52
|
+
/**
|
|
53
|
+
* Predict change risk using neural network
|
|
54
|
+
*/
|
|
55
|
+
predictChangeRisk(changeData: {
|
|
56
|
+
type: string;
|
|
57
|
+
category: string;
|
|
58
|
+
risk_assessment: string;
|
|
59
|
+
implementation_plan: string;
|
|
60
|
+
backout_plan: string;
|
|
61
|
+
test_plan: string;
|
|
62
|
+
}): Promise<PredictionResult>;
|
|
63
|
+
/**
|
|
64
|
+
* Detect anomalies using autoencoder
|
|
65
|
+
*/
|
|
66
|
+
detectAnomaly(data: number[]): Promise<{
|
|
67
|
+
isAnomaly: boolean;
|
|
68
|
+
reconstructionError: number;
|
|
69
|
+
threshold: number;
|
|
70
|
+
}>;
|
|
71
|
+
/**
|
|
72
|
+
* Prepare incident data for training
|
|
73
|
+
*/
|
|
74
|
+
private prepareIncidentData;
|
|
75
|
+
/**
|
|
76
|
+
* Convert incident to feature tensor
|
|
77
|
+
*/
|
|
78
|
+
private incidentToFeatures;
|
|
79
|
+
/**
|
|
80
|
+
* Convert incident to feature array
|
|
81
|
+
*/
|
|
82
|
+
private incidentToFeatureArray;
|
|
83
|
+
/**
|
|
84
|
+
* Convert change data to features
|
|
85
|
+
*/
|
|
86
|
+
private changeToFeatures;
|
|
87
|
+
/**
|
|
88
|
+
* Build vocabulary from training data
|
|
89
|
+
*/
|
|
90
|
+
private buildVocabulary;
|
|
91
|
+
/**
|
|
92
|
+
* Save model to disk
|
|
93
|
+
*/
|
|
94
|
+
private saveModel;
|
|
95
|
+
/**
|
|
96
|
+
* Load model from disk
|
|
97
|
+
*/
|
|
98
|
+
loadModel(name: string): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Get model summary
|
|
101
|
+
*/
|
|
102
|
+
getModelSummary(modelName: string): string;
|
|
103
|
+
}
|
|
104
|
+
export declare const tensorflowML: TensorFlowMLService;
|
|
105
|
+
//# sourceMappingURL=tensorflow-ml-service.d.ts.map
|