snow-flow 1.1.61 → 1.1.63
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/dist/agents/base/base-snow-agent.d.ts +75 -0
- package/dist/agents/base/base-snow-agent.d.ts.map +1 -0
- package/dist/agents/base/base-snow-agent.js +169 -0
- package/dist/agents/base/base-snow-agent.js.map +1 -0
- package/dist/agents/specialists/automation-specialist.agent.d.ts +44 -0
- package/dist/agents/specialists/automation-specialist.agent.d.ts.map +1 -0
- package/dist/agents/specialists/automation-specialist.agent.js +204 -0
- package/dist/agents/specialists/automation-specialist.agent.js.map +1 -0
- package/dist/agents/specialists/data-specialist.agent.d.ts +165 -0
- package/dist/agents/specialists/data-specialist.agent.d.ts.map +1 -0
- package/dist/agents/specialists/data-specialist.agent.js +484 -0
- package/dist/agents/specialists/data-specialist.agent.js.map +1 -0
- package/dist/agents/specialists/integration-specialist.agent.d.ts +227 -0
- package/dist/agents/specialists/integration-specialist.agent.d.ts.map +1 -0
- package/dist/agents/specialists/integration-specialist.agent.js +725 -0
- package/dist/agents/specialists/integration-specialist.agent.js.map +1 -0
- package/dist/agents/specialists/reporting-specialist.agent.d.ts +54 -0
- package/dist/agents/specialists/reporting-specialist.agent.d.ts.map +1 -0
- package/dist/agents/specialists/reporting-specialist.agent.js +193 -0
- package/dist/agents/specialists/reporting-specialist.agent.js.map +1 -0
- package/dist/agents/specialists/security-specialist.agent.d.ts +85 -0
- package/dist/agents/specialists/security-specialist.agent.d.ts.map +1 -0
- package/dist/agents/specialists/security-specialist.agent.js +309 -0
- package/dist/agents/specialists/security-specialist.agent.js.map +1 -0
- package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts +111 -0
- package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts.map +1 -0
- package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js +383 -0
- package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js.map +1 -0
- package/dist/agents/teams/base-team.d.ts +72 -0
- package/dist/agents/teams/base-team.d.ts.map +1 -0
- package/dist/agents/teams/base-team.js +253 -0
- package/dist/agents/teams/base-team.js.map +1 -0
- package/dist/agents/teams/team-types.d.ts +265 -0
- package/dist/agents/teams/team-types.d.ts.map +1 -0
- package/dist/agents/teams/team-types.js +3 -0
- package/dist/agents/teams/team-types.js.map +1 -0
- package/dist/agents/teams/widget/widget-architect.agent.d.ts +61 -0
- package/dist/agents/teams/widget/widget-architect.agent.d.ts.map +1 -0
- package/dist/agents/teams/widget/widget-architect.agent.js +436 -0
- package/dist/agents/teams/widget/widget-architect.agent.js.map +1 -0
- package/dist/agents/teams/widget/widget-backend.agent.d.ts +74 -0
- package/dist/agents/teams/widget/widget-backend.agent.d.ts.map +1 -0
- package/dist/agents/teams/widget/widget-backend.agent.js +1531 -0
- package/dist/agents/teams/widget/widget-backend.agent.js.map +1 -0
- package/dist/agents/teams/widget/widget-frontend.agent.d.ts +67 -0
- package/dist/agents/teams/widget/widget-frontend.agent.d.ts.map +1 -0
- package/dist/agents/teams/widget/widget-frontend.agent.js +1014 -0
- package/dist/agents/teams/widget/widget-frontend.agent.js.map +1 -0
- package/dist/agents/teams/widget/widget-platform.agent.d.ts +90 -0
- package/dist/agents/teams/widget/widget-platform.agent.d.ts.map +1 -0
- package/dist/agents/teams/widget/widget-platform.agent.js +1190 -0
- package/dist/agents/teams/widget/widget-platform.agent.js.map +1 -0
- package/dist/agents/teams/widget/widget-uiux.agent.d.ts +107 -0
- package/dist/agents/teams/widget/widget-uiux.agent.d.ts.map +1 -0
- package/dist/agents/teams/widget/widget-uiux.agent.js +1033 -0
- package/dist/agents/teams/widget/widget-uiux.agent.js.map +1 -0
- package/dist/assembly/team-assembler.d.ts +140 -0
- package/dist/assembly/team-assembler.d.ts.map +1 -0
- package/dist/assembly/team-assembler.js +502 -0
- package/dist/assembly/team-assembler.js.map +1 -0
- package/dist/cli.js +165 -12
- package/dist/cli.js.map +1 -1
- package/dist/intelligence/task-analyzer.d.ts +119 -0
- package/dist/intelligence/task-analyzer.d.ts.map +1 -0
- package/dist/intelligence/task-analyzer.js +494 -0
- package/dist/intelligence/task-analyzer.js.map +1 -0
- package/dist/patterns/adaptive-patterns.d.ts +140 -0
- package/dist/patterns/adaptive-patterns.d.ts.map +1 -0
- package/dist/patterns/adaptive-patterns.js +549 -0
- package/dist/patterns/adaptive-patterns.js.map +1 -0
- package/dist/sparc/coordinators/adaptive-coordinator.d.ts +54 -0
- package/dist/sparc/coordinators/adaptive-coordinator.d.ts.map +1 -0
- package/dist/sparc/coordinators/adaptive-coordinator.js +367 -0
- package/dist/sparc/coordinators/adaptive-coordinator.js.map +1 -0
- package/dist/sparc/coordinators/team-coordinator.d.ts +66 -0
- package/dist/sparc/coordinators/team-coordinator.d.ts.map +1 -0
- package/dist/sparc/coordinators/team-coordinator.js +402 -0
- package/dist/sparc/coordinators/team-coordinator.js.map +1 -0
- package/dist/sparc/modes/team-modes.d.ts +33 -0
- package/dist/sparc/modes/team-modes.d.ts.map +1 -0
- package/dist/sparc/modes/team-modes.js +399 -0
- package/dist/sparc/modes/team-modes.js.map +1 -0
- package/dist/sparc/sparc-help.d.ts +8 -0
- package/dist/sparc/sparc-help.d.ts.map +1 -0
- package/dist/sparc/sparc-help.js +299 -0
- package/dist/sparc/sparc-help.js.map +1 -0
- package/dist/sparc/team-sparc.d.ts +33 -0
- package/dist/sparc/team-sparc.d.ts.map +1 -0
- package/dist/sparc/team-sparc.js +217 -0
- package/dist/sparc/team-sparc.js.map +1 -0
- package/dist/sparc/teams/application-team.d.ts +73 -0
- package/dist/sparc/teams/application-team.d.ts.map +1 -0
- package/dist/sparc/teams/application-team.js +463 -0
- package/dist/sparc/teams/application-team.js.map +1 -0
- package/dist/sparc/teams/flow-team.d.ts +67 -0
- package/dist/sparc/teams/flow-team.d.ts.map +1 -0
- package/dist/sparc/teams/flow-team.js +373 -0
- package/dist/sparc/teams/flow-team.js.map +1 -0
- package/dist/sparc/teams/widget-team.d.ts +61 -0
- package/dist/sparc/teams/widget-team.d.ts.map +1 -0
- package/dist/sparc/teams/widget-team.js +280 -0
- package/dist/sparc/teams/widget-team.js.map +1 -0
- package/dist/specialists/app-specialists.d.ts +93 -0
- package/dist/specialists/app-specialists.d.ts.map +1 -0
- package/dist/specialists/app-specialists.js +1639 -0
- package/dist/specialists/app-specialists.js.map +1 -0
- package/dist/specialists/base-specialist.d.ts +19 -0
- package/dist/specialists/base-specialist.d.ts.map +1 -0
- package/dist/specialists/base-specialist.js +54 -0
- package/dist/specialists/base-specialist.js.map +1 -0
- package/dist/specialists/flow-specialists.d.ts +113 -0
- package/dist/specialists/flow-specialists.d.ts.map +1 -0
- package/dist/specialists/flow-specialists.js +1787 -0
- package/dist/specialists/flow-specialists.js.map +1 -0
- package/dist/specialists/individual-specialists.d.ts +67 -0
- package/dist/specialists/individual-specialists.d.ts.map +1 -0
- package/dist/specialists/individual-specialists.js +632 -0
- package/dist/specialists/individual-specialists.js.map +1 -0
- package/dist/specialists/widget-specialists.d.ts +70 -0
- package/dist/specialists/widget-specialists.d.ts.map +1 -0
- package/dist/specialists/widget-specialists.js +1264 -0
- package/dist/specialists/widget-specialists.js.map +1 -0
- package/dist/teams/adaptive-team.d.ts +81 -0
- package/dist/teams/adaptive-team.d.ts.map +1 -0
- package/dist/teams/adaptive-team.js +1153 -0
- package/dist/teams/adaptive-team.js.map +1 -0
- package/dist/teams/application-team.d.ts +30 -0
- package/dist/teams/application-team.d.ts.map +1 -0
- package/dist/teams/application-team.js +547 -0
- package/dist/teams/application-team.js.map +1 -0
- package/dist/teams/base-team.d.ts +55 -0
- package/dist/teams/base-team.d.ts.map +1 -0
- package/dist/teams/base-team.js +243 -0
- package/dist/teams/base-team.js.map +1 -0
- package/dist/teams/flow-team.d.ts +28 -0
- package/dist/teams/flow-team.d.ts.map +1 -0
- package/dist/teams/flow-team.js +525 -0
- package/dist/teams/flow-team.js.map +1 -0
- package/dist/teams/widget-team.d.ts +26 -0
- package/dist/teams/widget-team.d.ts.map +1 -0
- package/dist/teams/widget-team.js +459 -0
- package/dist/teams/widget-team.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +17 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/agent-detector.js +1 -1
- package/dist/utils/agent-detector.js.map +1 -1
- package/dist/version.d.ts +6 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +44 -9
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all ServiceNow agents in the adaptive system
|
|
3
|
+
*/
|
|
4
|
+
import { SnowAgent, AgentType, AgentStatus, Task, ServiceNowContext } from '../../types/snow-flow.types.js';
|
|
5
|
+
import { ServiceNowClient } from '../../utils/servicenow-client.js';
|
|
6
|
+
import { Logger } from '../../utils/logger.js';
|
|
7
|
+
import { EventEmitter } from 'eventemitter3';
|
|
8
|
+
export interface AgentCapabilities {
|
|
9
|
+
primarySkills: string[];
|
|
10
|
+
secondarySkills: string[];
|
|
11
|
+
complexity: 'low' | 'medium' | 'high';
|
|
12
|
+
autonomy: 'guided' | 'semi-autonomous' | 'fully-autonomous';
|
|
13
|
+
}
|
|
14
|
+
export interface AgentMetrics {
|
|
15
|
+
tasksCompleted: number;
|
|
16
|
+
successRate: number;
|
|
17
|
+
averageExecutionTime: number;
|
|
18
|
+
lastActivity: Date;
|
|
19
|
+
errorCount: number;
|
|
20
|
+
}
|
|
21
|
+
export declare abstract class BaseSnowAgent extends EventEmitter {
|
|
22
|
+
protected id: string;
|
|
23
|
+
protected name: string;
|
|
24
|
+
protected type: AgentType;
|
|
25
|
+
protected status: AgentStatus;
|
|
26
|
+
protected capabilities: AgentCapabilities;
|
|
27
|
+
protected metrics: AgentMetrics;
|
|
28
|
+
protected client: ServiceNowClient;
|
|
29
|
+
protected logger: Logger;
|
|
30
|
+
protected context: ServiceNowContext | null;
|
|
31
|
+
protected currentTask: Task | null;
|
|
32
|
+
constructor(type: AgentType, name: string, capabilities: AgentCapabilities);
|
|
33
|
+
/**
|
|
34
|
+
* Get agent information
|
|
35
|
+
*/
|
|
36
|
+
getInfo(): SnowAgent;
|
|
37
|
+
/**
|
|
38
|
+
* Set ServiceNow context for the agent
|
|
39
|
+
*/
|
|
40
|
+
setContext(context: ServiceNowContext): void;
|
|
41
|
+
/**
|
|
42
|
+
* Execute a task - must be implemented by subclasses
|
|
43
|
+
*/
|
|
44
|
+
abstract execute(task: Task, input?: any): Promise<any>;
|
|
45
|
+
/**
|
|
46
|
+
* Analyze if this agent can handle a specific requirement
|
|
47
|
+
*/
|
|
48
|
+
canHandle(requirement: string, complexity?: 'low' | 'medium' | 'high'): number;
|
|
49
|
+
/**
|
|
50
|
+
* Start task execution
|
|
51
|
+
*/
|
|
52
|
+
protected startTask(task: Task): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Complete task execution
|
|
55
|
+
*/
|
|
56
|
+
protected completeTask(result: any): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Handle task error
|
|
59
|
+
*/
|
|
60
|
+
protected handleError(error: Error): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Terminate the agent
|
|
63
|
+
*/
|
|
64
|
+
terminate(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Get agent health status
|
|
67
|
+
*/
|
|
68
|
+
getHealth(): {
|
|
69
|
+
status: string;
|
|
70
|
+
performance: number;
|
|
71
|
+
load: 'low' | 'medium' | 'high';
|
|
72
|
+
ready: boolean;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=base-snow-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-snow-agent.d.ts","sourceRoot":"","sources":["../../../src/agents/base/base-snow-agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;CAC7D;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,8BAAsB,aAAc,SAAQ,YAAY;IACtD,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAC1C,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAChC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;IACnC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IACnD,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAQ;gBAGxC,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,iBAAiB;IAmBjC;;OAEG;IACH,OAAO,IAAI,SAAS;IAiBpB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK5C;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAEvD;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,GAAE,KAAK,GAAG,QAAQ,GAAG,MAAiB,GAAG,MAAM;IAoCxF;;OAEG;cACa,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD;;OAEG;cACa,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxD;;OAEG;cACa,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BxD;;OAEG;IACH,SAAS,IAAI,IAAI;IAMjB;;OAEG;IACH,SAAS,IAAI;QACX,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC;KAChB;CAYF"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all ServiceNow agents in the adaptive system
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BaseSnowAgent = void 0;
|
|
7
|
+
const servicenow_client_js_1 = require("../../utils/servicenow-client.js");
|
|
8
|
+
const logger_js_1 = require("../../utils/logger.js");
|
|
9
|
+
const eventemitter3_1 = require("eventemitter3");
|
|
10
|
+
class BaseSnowAgent extends eventemitter3_1.EventEmitter {
|
|
11
|
+
constructor(type, name, capabilities) {
|
|
12
|
+
super();
|
|
13
|
+
this.context = null;
|
|
14
|
+
this.currentTask = null;
|
|
15
|
+
this.id = `${type}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
16
|
+
this.name = name;
|
|
17
|
+
this.type = type;
|
|
18
|
+
this.status = 'idle';
|
|
19
|
+
this.capabilities = capabilities;
|
|
20
|
+
this.metrics = {
|
|
21
|
+
tasksCompleted: 0,
|
|
22
|
+
successRate: 1.0,
|
|
23
|
+
averageExecutionTime: 0,
|
|
24
|
+
lastActivity: new Date(),
|
|
25
|
+
errorCount: 0
|
|
26
|
+
};
|
|
27
|
+
this.client = new servicenow_client_js_1.ServiceNowClient();
|
|
28
|
+
this.logger = new logger_js_1.Logger(`Agent:${name}`);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get agent information
|
|
32
|
+
*/
|
|
33
|
+
getInfo() {
|
|
34
|
+
return {
|
|
35
|
+
id: this.id,
|
|
36
|
+
name: this.name,
|
|
37
|
+
type: this.type,
|
|
38
|
+
status: this.status,
|
|
39
|
+
capabilities: this.capabilities.primarySkills,
|
|
40
|
+
metadata: {
|
|
41
|
+
capabilities: this.capabilities,
|
|
42
|
+
metrics: this.metrics,
|
|
43
|
+
context: this.context
|
|
44
|
+
},
|
|
45
|
+
createdAt: new Date(),
|
|
46
|
+
lastActivity: this.metrics.lastActivity
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Set ServiceNow context for the agent
|
|
51
|
+
*/
|
|
52
|
+
setContext(context) {
|
|
53
|
+
this.context = context;
|
|
54
|
+
this.logger.info('Context updated', { context });
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Analyze if this agent can handle a specific requirement
|
|
58
|
+
*/
|
|
59
|
+
canHandle(requirement, complexity = 'medium') {
|
|
60
|
+
// Base scoring algorithm
|
|
61
|
+
let score = 0;
|
|
62
|
+
const normalizedReq = requirement.toLowerCase();
|
|
63
|
+
// Primary skills matching
|
|
64
|
+
for (const skill of this.capabilities.primarySkills) {
|
|
65
|
+
if (normalizedReq.includes(skill.toLowerCase())) {
|
|
66
|
+
score += 0.8;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Secondary skills matching
|
|
70
|
+
for (const skill of this.capabilities.secondarySkills) {
|
|
71
|
+
if (normalizedReq.includes(skill.toLowerCase())) {
|
|
72
|
+
score += 0.4;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Complexity matching
|
|
76
|
+
const complexityMap = { 'low': 1, 'medium': 2, 'high': 3 };
|
|
77
|
+
const reqComplexity = complexityMap[complexity];
|
|
78
|
+
const agentComplexity = complexityMap[this.capabilities.complexity];
|
|
79
|
+
if (agentComplexity >= reqComplexity) {
|
|
80
|
+
score += 0.2;
|
|
81
|
+
}
|
|
82
|
+
else if (agentComplexity < reqComplexity - 1) {
|
|
83
|
+
score *= 0.5; // Penalize if agent can't handle complexity
|
|
84
|
+
}
|
|
85
|
+
// Experience bonus based on success rate
|
|
86
|
+
score *= this.metrics.successRate;
|
|
87
|
+
return Math.min(score, 1.0);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Start task execution
|
|
91
|
+
*/
|
|
92
|
+
async startTask(task) {
|
|
93
|
+
this.currentTask = task;
|
|
94
|
+
this.status = 'busy';
|
|
95
|
+
this.logger.info('Starting task', { taskId: task.id, description: task.description });
|
|
96
|
+
this.emit('task:started', { agentId: this.id, taskId: task.id });
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Complete task execution
|
|
100
|
+
*/
|
|
101
|
+
async completeTask(result) {
|
|
102
|
+
if (this.currentTask) {
|
|
103
|
+
this.metrics.tasksCompleted++;
|
|
104
|
+
this.metrics.lastActivity = new Date();
|
|
105
|
+
// Update success rate
|
|
106
|
+
const totalTasks = this.metrics.tasksCompleted + this.metrics.errorCount;
|
|
107
|
+
this.metrics.successRate = this.metrics.tasksCompleted / totalTasks;
|
|
108
|
+
this.logger.info('Task completed', {
|
|
109
|
+
taskId: this.currentTask.id,
|
|
110
|
+
result: typeof result === 'object' ? 'object' : result
|
|
111
|
+
});
|
|
112
|
+
this.emit('task:completed', {
|
|
113
|
+
agentId: this.id,
|
|
114
|
+
taskId: this.currentTask.id,
|
|
115
|
+
result
|
|
116
|
+
});
|
|
117
|
+
this.currentTask = null;
|
|
118
|
+
this.status = 'idle';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Handle task error
|
|
123
|
+
*/
|
|
124
|
+
async handleError(error) {
|
|
125
|
+
this.metrics.errorCount++;
|
|
126
|
+
this.metrics.lastActivity = new Date();
|
|
127
|
+
// Update success rate
|
|
128
|
+
const totalTasks = this.metrics.tasksCompleted + this.metrics.errorCount;
|
|
129
|
+
this.metrics.successRate = this.metrics.tasksCompleted / totalTasks;
|
|
130
|
+
this.logger.error('Task failed', {
|
|
131
|
+
taskId: this.currentTask?.id,
|
|
132
|
+
error: error.message
|
|
133
|
+
});
|
|
134
|
+
this.emit('task:failed', {
|
|
135
|
+
agentId: this.id,
|
|
136
|
+
taskId: this.currentTask?.id,
|
|
137
|
+
error
|
|
138
|
+
});
|
|
139
|
+
this.status = 'error';
|
|
140
|
+
// Reset to idle after a short delay
|
|
141
|
+
setTimeout(() => {
|
|
142
|
+
this.status = 'idle';
|
|
143
|
+
}, 5000);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Terminate the agent
|
|
147
|
+
*/
|
|
148
|
+
terminate() {
|
|
149
|
+
this.status = 'terminated';
|
|
150
|
+
this.emit('agent:terminated', { agentId: this.id });
|
|
151
|
+
this.removeAllListeners();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get agent health status
|
|
155
|
+
*/
|
|
156
|
+
getHealth() {
|
|
157
|
+
const performance = this.metrics.successRate * 100;
|
|
158
|
+
const load = this.status === 'busy' ? 'high' : 'low';
|
|
159
|
+
const ready = this.status === 'idle';
|
|
160
|
+
return {
|
|
161
|
+
status: this.status,
|
|
162
|
+
performance,
|
|
163
|
+
load,
|
|
164
|
+
ready
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.BaseSnowAgent = BaseSnowAgent;
|
|
169
|
+
//# sourceMappingURL=base-snow-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-snow-agent.js","sourceRoot":"","sources":["../../../src/agents/base/base-snow-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automation Specialist Agent - Handles workflow automation, business rules, and scheduled tasks
|
|
3
|
+
*/
|
|
4
|
+
import { BaseSnowAgent } from '../base/base-snow-agent.js';
|
|
5
|
+
import { Task } from '../../types/snow-flow.types.js';
|
|
6
|
+
export interface AutomationRequirements {
|
|
7
|
+
triggerType: 'event' | 'schedule' | 'manual' | 'condition';
|
|
8
|
+
targetTable: string;
|
|
9
|
+
conditions: string[];
|
|
10
|
+
actions: AutomationAction[];
|
|
11
|
+
errorHandling: ErrorHandlingStrategy;
|
|
12
|
+
monitoring: MonitoringConfig;
|
|
13
|
+
}
|
|
14
|
+
export interface AutomationAction {
|
|
15
|
+
type: 'field_update' | 'record_create' | 'notification' | 'script_execution' | 'approval_request';
|
|
16
|
+
configuration: Record<string, any>;
|
|
17
|
+
order: number;
|
|
18
|
+
conditions?: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface ErrorHandlingStrategy {
|
|
21
|
+
onFailure: 'stop' | 'continue' | 'retry' | 'escalate';
|
|
22
|
+
retryAttempts?: number;
|
|
23
|
+
notifications?: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface MonitoringConfig {
|
|
26
|
+
trackExecution: boolean;
|
|
27
|
+
logLevel: 'minimal' | 'detailed' | 'debug';
|
|
28
|
+
performanceMetrics: boolean;
|
|
29
|
+
}
|
|
30
|
+
export declare class AutomationSpecialistAgent extends BaseSnowAgent {
|
|
31
|
+
constructor();
|
|
32
|
+
execute(task: Task, input?: any): Promise<any>;
|
|
33
|
+
analyzeAutomationRequirements(description: string, context?: any): Promise<AutomationRequirements>;
|
|
34
|
+
createWorkflow(requirements: AutomationRequirements): Promise<any>;
|
|
35
|
+
setupBusinessRule(config: any): Promise<any>;
|
|
36
|
+
createScheduledTask(schedule: any): Promise<any>;
|
|
37
|
+
private determineTriggerType;
|
|
38
|
+
private extractTargetTable;
|
|
39
|
+
private extractConditions;
|
|
40
|
+
private identifyActions;
|
|
41
|
+
private generateBusinessRuleScript;
|
|
42
|
+
private generateScheduledScript;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=automation-specialist.agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation-specialist.agent.d.ts","sourceRoot":"","sources":["../../../src/agents/specialists/automation-specialist.agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAqB,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,aAAa,EAAE,qBAAqB,CAAC;IACrC,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IAClG,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IAC3C,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,yBAA0B,SAAQ,aAAa;;IAuBpD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA8B9C,6BAA6B,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAqBlG,cAAc,CAAC,YAAY,EAAE,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBlE,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAY5C,mBAAmB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAWtD,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,0BAA0B;IAkBlC,OAAO,CAAC,uBAAuB;CAsBhC"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Automation Specialist Agent - Handles workflow automation, business rules, and scheduled tasks
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AutomationSpecialistAgent = void 0;
|
|
7
|
+
const base_snow_agent_js_1 = require("../base/base-snow-agent.js");
|
|
8
|
+
class AutomationSpecialistAgent extends base_snow_agent_js_1.BaseSnowAgent {
|
|
9
|
+
constructor() {
|
|
10
|
+
const capabilities = {
|
|
11
|
+
primarySkills: [
|
|
12
|
+
'workflow_design',
|
|
13
|
+
'business_rules',
|
|
14
|
+
'scheduled_jobs',
|
|
15
|
+
'event_handling',
|
|
16
|
+
'process_automation'
|
|
17
|
+
],
|
|
18
|
+
secondarySkills: [
|
|
19
|
+
'script_development',
|
|
20
|
+
'performance_optimization',
|
|
21
|
+
'error_handling',
|
|
22
|
+
'monitoring_setup'
|
|
23
|
+
],
|
|
24
|
+
complexity: 'medium',
|
|
25
|
+
autonomy: 'semi-autonomous'
|
|
26
|
+
};
|
|
27
|
+
super('automation-specialist', 'AutomationSpecialist', capabilities);
|
|
28
|
+
}
|
|
29
|
+
async execute(task, input) {
|
|
30
|
+
await this.startTask(task);
|
|
31
|
+
try {
|
|
32
|
+
const taskType = task.metadata?.type || 'automation_analysis';
|
|
33
|
+
let result;
|
|
34
|
+
switch (taskType) {
|
|
35
|
+
case 'workflow_creation':
|
|
36
|
+
result = await this.createWorkflow(input?.requirements || {});
|
|
37
|
+
break;
|
|
38
|
+
case 'business_rule_setup':
|
|
39
|
+
result = await this.setupBusinessRule(input?.config || {});
|
|
40
|
+
break;
|
|
41
|
+
case 'scheduled_task':
|
|
42
|
+
result = await this.createScheduledTask(input?.schedule || {});
|
|
43
|
+
break;
|
|
44
|
+
default:
|
|
45
|
+
result = await this.analyzeAutomationRequirements(task.description, input);
|
|
46
|
+
}
|
|
47
|
+
await this.completeTask(result);
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
await this.handleError(error);
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async analyzeAutomationRequirements(description, context) {
|
|
56
|
+
const normalizedDesc = description.toLowerCase();
|
|
57
|
+
return {
|
|
58
|
+
triggerType: this.determineTriggerType(normalizedDesc),
|
|
59
|
+
targetTable: this.extractTargetTable(normalizedDesc),
|
|
60
|
+
conditions: this.extractConditions(normalizedDesc),
|
|
61
|
+
actions: this.identifyActions(normalizedDesc),
|
|
62
|
+
errorHandling: {
|
|
63
|
+
onFailure: 'stop',
|
|
64
|
+
retryAttempts: 3,
|
|
65
|
+
notifications: ['admin@company.com']
|
|
66
|
+
},
|
|
67
|
+
monitoring: {
|
|
68
|
+
trackExecution: true,
|
|
69
|
+
logLevel: 'detailed',
|
|
70
|
+
performanceMetrics: true
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
async createWorkflow(requirements) {
|
|
75
|
+
return {
|
|
76
|
+
type: 'workflow',
|
|
77
|
+
name: `auto_workflow_${Date.now()}`,
|
|
78
|
+
trigger: requirements.triggerType,
|
|
79
|
+
table: requirements.targetTable,
|
|
80
|
+
activities: requirements.actions.map((action, index) => ({
|
|
81
|
+
id: `activity_${index + 1}`,
|
|
82
|
+
type: action.type,
|
|
83
|
+
configuration: action.configuration,
|
|
84
|
+
order: action.order
|
|
85
|
+
})),
|
|
86
|
+
errorHandling: requirements.errorHandling,
|
|
87
|
+
active: true
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
async setupBusinessRule(config) {
|
|
91
|
+
return {
|
|
92
|
+
type: 'business_rule',
|
|
93
|
+
name: config.name || `auto_rule_${Date.now()}`,
|
|
94
|
+
table: config.table || 'incident',
|
|
95
|
+
when: config.when || 'before',
|
|
96
|
+
condition: config.condition || '',
|
|
97
|
+
script: this.generateBusinessRuleScript(config),
|
|
98
|
+
active: true
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
async createScheduledTask(schedule) {
|
|
102
|
+
return {
|
|
103
|
+
type: 'scheduled_job',
|
|
104
|
+
name: schedule.name || `auto_job_${Date.now()}`,
|
|
105
|
+
schedule: schedule.frequency || 'daily',
|
|
106
|
+
script: this.generateScheduledScript(schedule),
|
|
107
|
+
timezone: schedule.timezone || 'UTC',
|
|
108
|
+
active: true
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
determineTriggerType(description) {
|
|
112
|
+
if (description.includes('schedule') || description.includes('daily') || description.includes('weekly')) {
|
|
113
|
+
return 'schedule';
|
|
114
|
+
}
|
|
115
|
+
if (description.includes('manual') || description.includes('on-demand')) {
|
|
116
|
+
return 'manual';
|
|
117
|
+
}
|
|
118
|
+
if (description.includes('when') || description.includes('if')) {
|
|
119
|
+
return 'condition';
|
|
120
|
+
}
|
|
121
|
+
return 'event';
|
|
122
|
+
}
|
|
123
|
+
extractTargetTable(description) {
|
|
124
|
+
const tableMatches = description.match(/\b(incident|problem|change_request|task|sys_user)\b/);
|
|
125
|
+
return tableMatches ? tableMatches[0] : 'task';
|
|
126
|
+
}
|
|
127
|
+
extractConditions(description) {
|
|
128
|
+
const conditions = [];
|
|
129
|
+
if (description.includes('high priority'))
|
|
130
|
+
conditions.push('priority=1');
|
|
131
|
+
if (description.includes('critical'))
|
|
132
|
+
conditions.push('severity=1');
|
|
133
|
+
if (description.includes('new'))
|
|
134
|
+
conditions.push('state=1');
|
|
135
|
+
return conditions;
|
|
136
|
+
}
|
|
137
|
+
identifyActions(description) {
|
|
138
|
+
const actions = [];
|
|
139
|
+
let order = 1;
|
|
140
|
+
if (description.includes('notify') || description.includes('email')) {
|
|
141
|
+
actions.push({
|
|
142
|
+
type: 'notification',
|
|
143
|
+
configuration: { type: 'email', recipients: 'assigned_to' },
|
|
144
|
+
order: order++
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
if (description.includes('update') || description.includes('set')) {
|
|
148
|
+
actions.push({
|
|
149
|
+
type: 'field_update',
|
|
150
|
+
configuration: { field: 'state', value: 'in_progress' },
|
|
151
|
+
order: order++
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (description.includes('approval')) {
|
|
155
|
+
actions.push({
|
|
156
|
+
type: 'approval_request',
|
|
157
|
+
configuration: { approver: 'manager' },
|
|
158
|
+
order: order++
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
return actions;
|
|
162
|
+
}
|
|
163
|
+
generateBusinessRuleScript(config) {
|
|
164
|
+
return `
|
|
165
|
+
// Auto-generated business rule script
|
|
166
|
+
if (current.isValidRecord()) {
|
|
167
|
+
try {
|
|
168
|
+
// Execute automation logic
|
|
169
|
+
gs.info('Business rule executed for: ' + current.getDisplayValue());
|
|
170
|
+
|
|
171
|
+
// Add custom logic here
|
|
172
|
+
${config.customLogic || '// Custom logic placeholder'}
|
|
173
|
+
|
|
174
|
+
} catch (error) {
|
|
175
|
+
gs.error('Business rule failed: ' + error.message);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
`.trim();
|
|
179
|
+
}
|
|
180
|
+
generateScheduledScript(schedule) {
|
|
181
|
+
return `
|
|
182
|
+
// Auto-generated scheduled job script
|
|
183
|
+
try {
|
|
184
|
+
var records = new GlideRecord('${schedule.table || 'task'}');
|
|
185
|
+
records.addQuery('${schedule.condition || 'active=true'}');
|
|
186
|
+
records.query();
|
|
187
|
+
|
|
188
|
+
var processed = 0;
|
|
189
|
+
while (records.next()) {
|
|
190
|
+
// Process each record
|
|
191
|
+
${schedule.logic || '// Processing logic placeholder'}
|
|
192
|
+
processed++;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
gs.info('Scheduled job completed: ' + processed + ' records processed');
|
|
196
|
+
|
|
197
|
+
} catch (error) {
|
|
198
|
+
gs.error('Scheduled job failed: ' + error.message);
|
|
199
|
+
}
|
|
200
|
+
`.trim();
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
exports.AutomationSpecialistAgent = AutomationSpecialistAgent;
|
|
204
|
+
//# sourceMappingURL=automation-specialist.agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation-specialist.agent.js","sourceRoot":"","sources":["../../../src/agents/specialists/automation-specialist.agent.ts"],"names":[],"mappings":"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"}
|