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.
Files changed (153) hide show
  1. package/dist/agents/base/base-snow-agent.d.ts +75 -0
  2. package/dist/agents/base/base-snow-agent.d.ts.map +1 -0
  3. package/dist/agents/base/base-snow-agent.js +169 -0
  4. package/dist/agents/base/base-snow-agent.js.map +1 -0
  5. package/dist/agents/specialists/automation-specialist.agent.d.ts +44 -0
  6. package/dist/agents/specialists/automation-specialist.agent.d.ts.map +1 -0
  7. package/dist/agents/specialists/automation-specialist.agent.js +204 -0
  8. package/dist/agents/specialists/automation-specialist.agent.js.map +1 -0
  9. package/dist/agents/specialists/data-specialist.agent.d.ts +165 -0
  10. package/dist/agents/specialists/data-specialist.agent.d.ts.map +1 -0
  11. package/dist/agents/specialists/data-specialist.agent.js +484 -0
  12. package/dist/agents/specialists/data-specialist.agent.js.map +1 -0
  13. package/dist/agents/specialists/integration-specialist.agent.d.ts +227 -0
  14. package/dist/agents/specialists/integration-specialist.agent.d.ts.map +1 -0
  15. package/dist/agents/specialists/integration-specialist.agent.js +725 -0
  16. package/dist/agents/specialists/integration-specialist.agent.js.map +1 -0
  17. package/dist/agents/specialists/reporting-specialist.agent.d.ts +54 -0
  18. package/dist/agents/specialists/reporting-specialist.agent.d.ts.map +1 -0
  19. package/dist/agents/specialists/reporting-specialist.agent.js +193 -0
  20. package/dist/agents/specialists/reporting-specialist.agent.js.map +1 -0
  21. package/dist/agents/specialists/security-specialist.agent.d.ts +85 -0
  22. package/dist/agents/specialists/security-specialist.agent.d.ts.map +1 -0
  23. package/dist/agents/specialists/security-specialist.agent.js +309 -0
  24. package/dist/agents/specialists/security-specialist.agent.js.map +1 -0
  25. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts +111 -0
  26. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts.map +1 -0
  27. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js +383 -0
  28. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js.map +1 -0
  29. package/dist/agents/teams/base-team.d.ts +72 -0
  30. package/dist/agents/teams/base-team.d.ts.map +1 -0
  31. package/dist/agents/teams/base-team.js +253 -0
  32. package/dist/agents/teams/base-team.js.map +1 -0
  33. package/dist/agents/teams/team-types.d.ts +265 -0
  34. package/dist/agents/teams/team-types.d.ts.map +1 -0
  35. package/dist/agents/teams/team-types.js +3 -0
  36. package/dist/agents/teams/team-types.js.map +1 -0
  37. package/dist/agents/teams/widget/widget-architect.agent.d.ts +61 -0
  38. package/dist/agents/teams/widget/widget-architect.agent.d.ts.map +1 -0
  39. package/dist/agents/teams/widget/widget-architect.agent.js +436 -0
  40. package/dist/agents/teams/widget/widget-architect.agent.js.map +1 -0
  41. package/dist/agents/teams/widget/widget-backend.agent.d.ts +74 -0
  42. package/dist/agents/teams/widget/widget-backend.agent.d.ts.map +1 -0
  43. package/dist/agents/teams/widget/widget-backend.agent.js +1531 -0
  44. package/dist/agents/teams/widget/widget-backend.agent.js.map +1 -0
  45. package/dist/agents/teams/widget/widget-frontend.agent.d.ts +67 -0
  46. package/dist/agents/teams/widget/widget-frontend.agent.d.ts.map +1 -0
  47. package/dist/agents/teams/widget/widget-frontend.agent.js +1014 -0
  48. package/dist/agents/teams/widget/widget-frontend.agent.js.map +1 -0
  49. package/dist/agents/teams/widget/widget-platform.agent.d.ts +90 -0
  50. package/dist/agents/teams/widget/widget-platform.agent.d.ts.map +1 -0
  51. package/dist/agents/teams/widget/widget-platform.agent.js +1190 -0
  52. package/dist/agents/teams/widget/widget-platform.agent.js.map +1 -0
  53. package/dist/agents/teams/widget/widget-uiux.agent.d.ts +107 -0
  54. package/dist/agents/teams/widget/widget-uiux.agent.d.ts.map +1 -0
  55. package/dist/agents/teams/widget/widget-uiux.agent.js +1033 -0
  56. package/dist/agents/teams/widget/widget-uiux.agent.js.map +1 -0
  57. package/dist/assembly/team-assembler.d.ts +140 -0
  58. package/dist/assembly/team-assembler.d.ts.map +1 -0
  59. package/dist/assembly/team-assembler.js +502 -0
  60. package/dist/assembly/team-assembler.js.map +1 -0
  61. package/dist/cli.js +165 -12
  62. package/dist/cli.js.map +1 -1
  63. package/dist/intelligence/task-analyzer.d.ts +119 -0
  64. package/dist/intelligence/task-analyzer.d.ts.map +1 -0
  65. package/dist/intelligence/task-analyzer.js +494 -0
  66. package/dist/intelligence/task-analyzer.js.map +1 -0
  67. package/dist/patterns/adaptive-patterns.d.ts +140 -0
  68. package/dist/patterns/adaptive-patterns.d.ts.map +1 -0
  69. package/dist/patterns/adaptive-patterns.js +549 -0
  70. package/dist/patterns/adaptive-patterns.js.map +1 -0
  71. package/dist/sparc/coordinators/adaptive-coordinator.d.ts +54 -0
  72. package/dist/sparc/coordinators/adaptive-coordinator.d.ts.map +1 -0
  73. package/dist/sparc/coordinators/adaptive-coordinator.js +367 -0
  74. package/dist/sparc/coordinators/adaptive-coordinator.js.map +1 -0
  75. package/dist/sparc/coordinators/team-coordinator.d.ts +66 -0
  76. package/dist/sparc/coordinators/team-coordinator.d.ts.map +1 -0
  77. package/dist/sparc/coordinators/team-coordinator.js +402 -0
  78. package/dist/sparc/coordinators/team-coordinator.js.map +1 -0
  79. package/dist/sparc/modes/team-modes.d.ts +33 -0
  80. package/dist/sparc/modes/team-modes.d.ts.map +1 -0
  81. package/dist/sparc/modes/team-modes.js +399 -0
  82. package/dist/sparc/modes/team-modes.js.map +1 -0
  83. package/dist/sparc/sparc-help.d.ts +8 -0
  84. package/dist/sparc/sparc-help.d.ts.map +1 -0
  85. package/dist/sparc/sparc-help.js +299 -0
  86. package/dist/sparc/sparc-help.js.map +1 -0
  87. package/dist/sparc/team-sparc.d.ts +33 -0
  88. package/dist/sparc/team-sparc.d.ts.map +1 -0
  89. package/dist/sparc/team-sparc.js +217 -0
  90. package/dist/sparc/team-sparc.js.map +1 -0
  91. package/dist/sparc/teams/application-team.d.ts +73 -0
  92. package/dist/sparc/teams/application-team.d.ts.map +1 -0
  93. package/dist/sparc/teams/application-team.js +463 -0
  94. package/dist/sparc/teams/application-team.js.map +1 -0
  95. package/dist/sparc/teams/flow-team.d.ts +67 -0
  96. package/dist/sparc/teams/flow-team.d.ts.map +1 -0
  97. package/dist/sparc/teams/flow-team.js +373 -0
  98. package/dist/sparc/teams/flow-team.js.map +1 -0
  99. package/dist/sparc/teams/widget-team.d.ts +61 -0
  100. package/dist/sparc/teams/widget-team.d.ts.map +1 -0
  101. package/dist/sparc/teams/widget-team.js +280 -0
  102. package/dist/sparc/teams/widget-team.js.map +1 -0
  103. package/dist/specialists/app-specialists.d.ts +93 -0
  104. package/dist/specialists/app-specialists.d.ts.map +1 -0
  105. package/dist/specialists/app-specialists.js +1639 -0
  106. package/dist/specialists/app-specialists.js.map +1 -0
  107. package/dist/specialists/base-specialist.d.ts +19 -0
  108. package/dist/specialists/base-specialist.d.ts.map +1 -0
  109. package/dist/specialists/base-specialist.js +54 -0
  110. package/dist/specialists/base-specialist.js.map +1 -0
  111. package/dist/specialists/flow-specialists.d.ts +113 -0
  112. package/dist/specialists/flow-specialists.d.ts.map +1 -0
  113. package/dist/specialists/flow-specialists.js +1787 -0
  114. package/dist/specialists/flow-specialists.js.map +1 -0
  115. package/dist/specialists/individual-specialists.d.ts +67 -0
  116. package/dist/specialists/individual-specialists.d.ts.map +1 -0
  117. package/dist/specialists/individual-specialists.js +632 -0
  118. package/dist/specialists/individual-specialists.js.map +1 -0
  119. package/dist/specialists/widget-specialists.d.ts +70 -0
  120. package/dist/specialists/widget-specialists.d.ts.map +1 -0
  121. package/dist/specialists/widget-specialists.js +1264 -0
  122. package/dist/specialists/widget-specialists.js.map +1 -0
  123. package/dist/teams/adaptive-team.d.ts +81 -0
  124. package/dist/teams/adaptive-team.d.ts.map +1 -0
  125. package/dist/teams/adaptive-team.js +1153 -0
  126. package/dist/teams/adaptive-team.js.map +1 -0
  127. package/dist/teams/application-team.d.ts +30 -0
  128. package/dist/teams/application-team.d.ts.map +1 -0
  129. package/dist/teams/application-team.js +547 -0
  130. package/dist/teams/application-team.js.map +1 -0
  131. package/dist/teams/base-team.d.ts +55 -0
  132. package/dist/teams/base-team.d.ts.map +1 -0
  133. package/dist/teams/base-team.js +243 -0
  134. package/dist/teams/base-team.js.map +1 -0
  135. package/dist/teams/flow-team.d.ts +28 -0
  136. package/dist/teams/flow-team.d.ts.map +1 -0
  137. package/dist/teams/flow-team.js +525 -0
  138. package/dist/teams/flow-team.js.map +1 -0
  139. package/dist/teams/widget-team.d.ts +26 -0
  140. package/dist/teams/widget-team.d.ts.map +1 -0
  141. package/dist/teams/widget-team.js +459 -0
  142. package/dist/teams/widget-team.js.map +1 -0
  143. package/dist/types/index.d.ts +2 -0
  144. package/dist/types/index.d.ts.map +1 -1
  145. package/dist/types/index.js +17 -0
  146. package/dist/types/index.js.map +1 -1
  147. package/dist/utils/agent-detector.js +1 -1
  148. package/dist/utils/agent-detector.js.map +1 -1
  149. package/dist/version.d.ts +6 -1
  150. package/dist/version.d.ts.map +1 -1
  151. package/dist/version.js +44 -9
  152. package/dist/version.js.map +1 -1
  153. 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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"}