@dcyfr/ai 1.0.0 → 1.0.2

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 (151) hide show
  1. package/README.md +7 -0
  2. package/bin/dcyfr-ai.js +0 -0
  3. package/dist/ai/agents/agent-loader.d.ts +131 -0
  4. package/dist/ai/agents/agent-loader.d.ts.map +1 -0
  5. package/dist/ai/agents/agent-loader.js +397 -0
  6. package/dist/ai/agents/agent-loader.js.map +1 -0
  7. package/dist/ai/agents/agent-registry.d.ts +120 -0
  8. package/dist/ai/agents/agent-registry.d.ts.map +1 -0
  9. package/dist/ai/agents/agent-registry.js +345 -0
  10. package/dist/ai/agents/agent-registry.js.map +1 -0
  11. package/dist/ai/agents/agent-router.d.ts +97 -0
  12. package/dist/ai/agents/agent-router.d.ts.map +1 -0
  13. package/dist/ai/agents/agent-router.js +375 -0
  14. package/dist/ai/agents/agent-router.js.map +1 -0
  15. package/dist/ai/agents/index.d.ts +10 -0
  16. package/dist/ai/agents/index.d.ts.map +1 -0
  17. package/dist/ai/agents/index.js +12 -0
  18. package/dist/ai/agents/index.js.map +1 -0
  19. package/dist/ai/agents/types.d.ts +264 -0
  20. package/dist/ai/agents/types.d.ts.map +1 -0
  21. package/dist/ai/agents/types.js +10 -0
  22. package/dist/ai/agents/types.js.map +1 -0
  23. package/dist/ai/agents-builtin/architecture/architecture-reviewer.d.ts +12 -0
  24. package/dist/ai/agents-builtin/architecture/architecture-reviewer.d.ts.map +1 -0
  25. package/dist/ai/agents-builtin/architecture/architecture-reviewer.js +92 -0
  26. package/dist/ai/agents-builtin/architecture/architecture-reviewer.js.map +1 -0
  27. package/dist/ai/agents-builtin/architecture/cloud-architect.d.ts +12 -0
  28. package/dist/ai/agents-builtin/architecture/cloud-architect.d.ts.map +1 -0
  29. package/dist/ai/agents-builtin/architecture/cloud-architect.js +103 -0
  30. package/dist/ai/agents-builtin/architecture/cloud-architect.js.map +1 -0
  31. package/dist/ai/agents-builtin/architecture/database-architect.d.ts +12 -0
  32. package/dist/ai/agents-builtin/architecture/database-architect.d.ts.map +1 -0
  33. package/dist/ai/agents-builtin/architecture/database-architect.js +95 -0
  34. package/dist/ai/agents-builtin/architecture/database-architect.js.map +1 -0
  35. package/dist/ai/agents-builtin/architecture/index.d.ts +11 -0
  36. package/dist/ai/agents-builtin/architecture/index.d.ts.map +1 -0
  37. package/dist/ai/agents-builtin/architecture/index.js +11 -0
  38. package/dist/ai/agents-builtin/architecture/index.js.map +1 -0
  39. package/dist/ai/agents-builtin/content/index.d.ts +9 -0
  40. package/dist/ai/agents-builtin/content/index.d.ts.map +1 -0
  41. package/dist/ai/agents-builtin/content/index.js +9 -0
  42. package/dist/ai/agents-builtin/content/index.js.map +1 -0
  43. package/dist/ai/agents-builtin/content/technical-writer.d.ts +12 -0
  44. package/dist/ai/agents-builtin/content/technical-writer.d.ts.map +1 -0
  45. package/dist/ai/agents-builtin/content/technical-writer.js +93 -0
  46. package/dist/ai/agents-builtin/content/technical-writer.js.map +1 -0
  47. package/dist/ai/agents-builtin/data/data-scientist.d.ts +12 -0
  48. package/dist/ai/agents-builtin/data/data-scientist.d.ts.map +1 -0
  49. package/dist/ai/agents-builtin/data/data-scientist.js +92 -0
  50. package/dist/ai/agents-builtin/data/data-scientist.js.map +1 -0
  51. package/dist/ai/agents-builtin/data/index.d.ts +9 -0
  52. package/dist/ai/agents-builtin/data/index.d.ts.map +1 -0
  53. package/dist/ai/agents-builtin/data/index.js +9 -0
  54. package/dist/ai/agents-builtin/data/index.js.map +1 -0
  55. package/dist/ai/agents-builtin/development/backend-architect.d.ts +12 -0
  56. package/dist/ai/agents-builtin/development/backend-architect.d.ts.map +1 -0
  57. package/dist/ai/agents-builtin/development/backend-architect.js +99 -0
  58. package/dist/ai/agents-builtin/development/backend-architect.js.map +1 -0
  59. package/dist/ai/agents-builtin/development/frontend-developer.d.ts +12 -0
  60. package/dist/ai/agents-builtin/development/frontend-developer.d.ts.map +1 -0
  61. package/dist/ai/agents-builtin/development/frontend-developer.js +106 -0
  62. package/dist/ai/agents-builtin/development/frontend-developer.js.map +1 -0
  63. package/dist/ai/agents-builtin/development/fullstack-developer.d.ts +12 -0
  64. package/dist/ai/agents-builtin/development/fullstack-developer.d.ts.map +1 -0
  65. package/dist/ai/agents-builtin/development/fullstack-developer.js +86 -0
  66. package/dist/ai/agents-builtin/development/fullstack-developer.js.map +1 -0
  67. package/dist/ai/agents-builtin/development/index.d.ts +12 -0
  68. package/dist/ai/agents-builtin/development/index.d.ts.map +1 -0
  69. package/dist/ai/agents-builtin/development/index.js +12 -0
  70. package/dist/ai/agents-builtin/development/index.js.map +1 -0
  71. package/dist/ai/agents-builtin/development/typescript-pro.d.ts +12 -0
  72. package/dist/ai/agents-builtin/development/typescript-pro.d.ts.map +1 -0
  73. package/dist/ai/agents-builtin/development/typescript-pro.js +98 -0
  74. package/dist/ai/agents-builtin/development/typescript-pro.js.map +1 -0
  75. package/dist/ai/agents-builtin/devops/devops-engineer.d.ts +12 -0
  76. package/dist/ai/agents-builtin/devops/devops-engineer.d.ts.map +1 -0
  77. package/dist/ai/agents-builtin/devops/devops-engineer.js +98 -0
  78. package/dist/ai/agents-builtin/devops/devops-engineer.js.map +1 -0
  79. package/dist/ai/agents-builtin/devops/index.d.ts +9 -0
  80. package/dist/ai/agents-builtin/devops/index.d.ts.map +1 -0
  81. package/dist/ai/agents-builtin/devops/index.js +9 -0
  82. package/dist/ai/agents-builtin/devops/index.js.map +1 -0
  83. package/dist/ai/agents-builtin/index.d.ts +36 -0
  84. package/dist/ai/agents-builtin/index.d.ts.map +1 -0
  85. package/dist/ai/agents-builtin/index.js +107 -0
  86. package/dist/ai/agents-builtin/index.js.map +1 -0
  87. package/dist/ai/agents-builtin/performance/index.d.ts +9 -0
  88. package/dist/ai/agents-builtin/performance/index.d.ts.map +1 -0
  89. package/dist/ai/agents-builtin/performance/index.js +9 -0
  90. package/dist/ai/agents-builtin/performance/index.js.map +1 -0
  91. package/dist/ai/agents-builtin/performance/performance-profiler.d.ts +12 -0
  92. package/dist/ai/agents-builtin/performance/performance-profiler.d.ts.map +1 -0
  93. package/dist/ai/agents-builtin/performance/performance-profiler.js +89 -0
  94. package/dist/ai/agents-builtin/performance/performance-profiler.js.map +1 -0
  95. package/dist/ai/agents-builtin/research/index.d.ts +9 -0
  96. package/dist/ai/agents-builtin/research/index.d.ts.map +1 -0
  97. package/dist/ai/agents-builtin/research/index.js +9 -0
  98. package/dist/ai/agents-builtin/research/index.js.map +1 -0
  99. package/dist/ai/agents-builtin/research/research-orchestrator.d.ts +12 -0
  100. package/dist/ai/agents-builtin/research/research-orchestrator.d.ts.map +1 -0
  101. package/dist/ai/agents-builtin/research/research-orchestrator.js +83 -0
  102. package/dist/ai/agents-builtin/research/research-orchestrator.js.map +1 -0
  103. package/dist/ai/agents-builtin/security/index.d.ts +9 -0
  104. package/dist/ai/agents-builtin/security/index.d.ts.map +1 -0
  105. package/dist/ai/agents-builtin/security/index.js +9 -0
  106. package/dist/ai/agents-builtin/security/index.js.map +1 -0
  107. package/dist/ai/agents-builtin/security/security-engineer.d.ts +12 -0
  108. package/dist/ai/agents-builtin/security/security-engineer.d.ts.map +1 -0
  109. package/dist/ai/agents-builtin/security/security-engineer.js +90 -0
  110. package/dist/ai/agents-builtin/security/security-engineer.js.map +1 -0
  111. package/dist/ai/agents-builtin/testing/debugger.d.ts +13 -0
  112. package/dist/ai/agents-builtin/testing/debugger.d.ts.map +1 -0
  113. package/dist/ai/agents-builtin/testing/debugger.js +89 -0
  114. package/dist/ai/agents-builtin/testing/debugger.js.map +1 -0
  115. package/dist/ai/agents-builtin/testing/index.d.ts +10 -0
  116. package/dist/ai/agents-builtin/testing/index.d.ts.map +1 -0
  117. package/dist/ai/agents-builtin/testing/index.js +10 -0
  118. package/dist/ai/agents-builtin/testing/index.js.map +1 -0
  119. package/dist/ai/agents-builtin/testing/test-engineer.d.ts +12 -0
  120. package/dist/ai/agents-builtin/testing/test-engineer.d.ts.map +1 -0
  121. package/dist/ai/agents-builtin/testing/test-engineer.js +93 -0
  122. package/dist/ai/agents-builtin/testing/test-engineer.js.map +1 -0
  123. package/dist/ai/config/loader.d.ts +19 -5
  124. package/dist/ai/config/loader.d.ts.map +1 -1
  125. package/dist/ai/config/loader.js +53 -18
  126. package/dist/ai/config/loader.js.map +1 -1
  127. package/dist/ai/config/schema.d.ts +600 -8
  128. package/dist/ai/config/schema.d.ts.map +1 -1
  129. package/dist/ai/config/schema.js +156 -0
  130. package/dist/ai/config/schema.js.map +1 -1
  131. package/dist/ai/index.d.ts +4 -1
  132. package/dist/ai/index.d.ts.map +1 -1
  133. package/dist/ai/index.js +35 -1
  134. package/dist/ai/index.js.map +1 -1
  135. package/dist/ai/mcp/index.d.ts +8 -0
  136. package/dist/ai/mcp/index.d.ts.map +1 -0
  137. package/dist/ai/mcp/index.js +8 -0
  138. package/dist/ai/mcp/index.js.map +1 -0
  139. package/dist/ai/mcp/mcp-registry.d.ts +127 -0
  140. package/dist/ai/mcp/mcp-registry.d.ts.map +1 -0
  141. package/dist/ai/mcp/mcp-registry.js +355 -0
  142. package/dist/ai/mcp/mcp-registry.js.map +1 -0
  143. package/dist/ai/mcp/types.d.ts +126 -0
  144. package/dist/ai/mcp/types.d.ts.map +1 -0
  145. package/dist/ai/mcp/types.js +9 -0
  146. package/dist/ai/mcp/types.js.map +1 -0
  147. package/dist/ai/utils/storage.d.ts +6 -1
  148. package/dist/ai/utils/storage.d.ts.map +1 -1
  149. package/dist/ai/utils/storage.js +57 -22
  150. package/dist/ai/utils/storage.js.map +1 -1
  151. package/package.json +3 -3
@@ -0,0 +1,375 @@
1
+ /**
2
+ * Agent Router - Task routing and delegation
3
+ *
4
+ * Routes tasks to appropriate agents based on patterns, categories, and conditions.
5
+ * Supports delegation between agents and fallback chains.
6
+ *
7
+ * @module @dcyfr/ai/agents/agent-router
8
+ * @example
9
+ * ```typescript
10
+ * import { AgentRouter } from '@dcyfr/ai/agents/agent-router';
11
+ * import { AgentRegistry } from '@dcyfr/ai/agents/agent-registry';
12
+ *
13
+ * const registry = new AgentRegistry();
14
+ * const router = new AgentRouter(registry, {
15
+ * defaultAgent: 'fullstack-developer',
16
+ * delegationEnabled: true,
17
+ * });
18
+ *
19
+ * // Route a task
20
+ * const result = await router.route({
21
+ * description: 'Fix the failing tests',
22
+ * phase: 'implementation',
23
+ * filesInProgress: ['src/app.test.ts'],
24
+ * });
25
+ *
26
+ * console.log(`Routed to: ${result.agent.manifest.name}`);
27
+ * ```
28
+ */
29
+ /**
30
+ * Default routing rules based on task patterns
31
+ */
32
+ const DEFAULT_ROUTING_RULES = [
33
+ // Testing patterns
34
+ {
35
+ pattern: /test|spec|jest|vitest|coverage|assertion/i,
36
+ agent: 'test-engineer',
37
+ priority: 10,
38
+ },
39
+ // Security patterns
40
+ {
41
+ pattern: /security|auth|vulnerab|owasp|xss|injection|encrypt/i,
42
+ agent: 'security-engineer',
43
+ priority: 10,
44
+ },
45
+ // Performance patterns
46
+ {
47
+ pattern: /performance|optimize|speed|memory|cpu|cache|lazy|bundle/i,
48
+ agent: 'performance-profiler',
49
+ priority: 10,
50
+ },
51
+ // Architecture patterns
52
+ {
53
+ pattern: /architect|design|refactor|pattern|structure|modular/i,
54
+ agent: 'architecture-reviewer',
55
+ priority: 20,
56
+ },
57
+ // Database patterns
58
+ {
59
+ pattern: /database|sql|postgres|mongo|redis|query|migration/i,
60
+ agent: 'database-architect',
61
+ priority: 20,
62
+ },
63
+ // DevOps patterns
64
+ {
65
+ pattern: /deploy|ci|cd|docker|kubernetes|aws|azure|infra/i,
66
+ agent: 'devops-engineer',
67
+ priority: 20,
68
+ },
69
+ // Data patterns
70
+ {
71
+ pattern: /data|analysis|ml|machine learning|model|dataset/i,
72
+ agent: 'data-scientist',
73
+ priority: 20,
74
+ },
75
+ // Documentation patterns
76
+ {
77
+ pattern: /document|readme|api doc|jsdoc|typedoc/i,
78
+ agent: 'technical-writer',
79
+ priority: 30,
80
+ },
81
+ // Research patterns
82
+ {
83
+ pattern: /research|investigate|explore|understand|analyze/i,
84
+ agent: 'research-orchestrator',
85
+ priority: 30,
86
+ },
87
+ // Frontend patterns
88
+ {
89
+ pattern: /frontend|react|vue|angular|css|style|ui|component/i,
90
+ agent: 'frontend-developer',
91
+ priority: 40,
92
+ },
93
+ // Backend patterns
94
+ {
95
+ pattern: /backend|api|server|endpoint|route|middleware/i,
96
+ agent: 'backend-architect',
97
+ priority: 40,
98
+ },
99
+ // Default development
100
+ {
101
+ pattern: /fix|bug|implement|feature|code|develop/i,
102
+ agent: 'fullstack-developer',
103
+ priority: 50,
104
+ },
105
+ ];
106
+ /**
107
+ * Default router configuration
108
+ */
109
+ const DEFAULT_CONFIG = {
110
+ defaultAgent: 'fullstack-developer',
111
+ routingRules: DEFAULT_ROUTING_RULES,
112
+ delegationEnabled: true,
113
+ maxDelegationDepth: 3,
114
+ };
115
+ /**
116
+ * Agent Router - routes tasks to appropriate agents
117
+ */
118
+ export class AgentRouter {
119
+ registry;
120
+ config;
121
+ delegationDepth = 0;
122
+ constructor(registry, config = {}) {
123
+ this.registry = registry;
124
+ this.config = { ...DEFAULT_CONFIG, ...config };
125
+ }
126
+ /**
127
+ * Route a task to the most appropriate agent
128
+ */
129
+ async route(task) {
130
+ // Find matching rules sorted by priority
131
+ const matchedRules = this.findMatchingRules(task);
132
+ // Try each matched rule in priority order
133
+ for (const rule of matchedRules) {
134
+ const agent = this.registry.resolveAgent(rule.agent);
135
+ if (agent) {
136
+ const fallbacks = this.findFallbacks(agent, task);
137
+ return {
138
+ agent,
139
+ matchedRule: rule,
140
+ fallbacks,
141
+ confidence: this.calculateConfidence(rule, task),
142
+ };
143
+ }
144
+ }
145
+ // Fall back to default agent
146
+ const defaultAgent = this.registry.resolveAgent(this.config.defaultAgent);
147
+ if (defaultAgent) {
148
+ return {
149
+ agent: defaultAgent,
150
+ fallbacks: [],
151
+ confidence: 0.5,
152
+ };
153
+ }
154
+ throw new Error(`No agent found for task and default agent '${this.config.defaultAgent}' not available`);
155
+ }
156
+ /**
157
+ * Route with custom rules (merges with default rules)
158
+ */
159
+ async routeWithRules(task, customRules) {
160
+ const originalRules = this.config.routingRules;
161
+ this.config.routingRules = [...customRules, ...originalRules];
162
+ try {
163
+ return await this.route(task);
164
+ }
165
+ finally {
166
+ this.config.routingRules = originalRules;
167
+ }
168
+ }
169
+ /**
170
+ * Delegate task to another agent
171
+ */
172
+ async delegate(fromAgent, toAgentName, task) {
173
+ if (!this.config.delegationEnabled) {
174
+ throw new Error('Delegation is disabled');
175
+ }
176
+ if (this.config.maxDelegationDepth &&
177
+ this.delegationDepth >= this.config.maxDelegationDepth) {
178
+ throw new Error(`Maximum delegation depth (${this.config.maxDelegationDepth}) exceeded`);
179
+ }
180
+ // Check if delegation is allowed
181
+ if (fromAgent.manifest.delegatesTo &&
182
+ !fromAgent.manifest.delegatesTo.includes(toAgentName)) {
183
+ throw new Error(`Agent '${fromAgent.manifest.name}' cannot delegate to '${toAgentName}'`);
184
+ }
185
+ const toAgent = this.registry.resolveAgent(toAgentName);
186
+ if (!toAgent) {
187
+ throw new Error(`Delegation target agent '${toAgentName}' not found`);
188
+ }
189
+ this.delegationDepth++;
190
+ return toAgent;
191
+ }
192
+ /**
193
+ * Execute task with automatic fallback
194
+ */
195
+ async executeWithFallback(context, primaryAgent, fallbacks) {
196
+ const agents = [primaryAgent, ...fallbacks];
197
+ for (let i = 0; i < agents.length; i++) {
198
+ const agent = agents[i];
199
+ const startTime = Date.now();
200
+ try {
201
+ // Call onBeforeExecute hook
202
+ if (agent.onBeforeExecute) {
203
+ await agent.onBeforeExecute(context);
204
+ }
205
+ // Execute agent (placeholder - actual execution depends on integration)
206
+ // In real usage, this would call the AI provider with the agent's prompt
207
+ const result = {
208
+ success: true,
209
+ agentName: agent.manifest.name,
210
+ executionTime: Date.now() - startTime,
211
+ fallbackUsed: i > 0,
212
+ originalAgent: i > 0 ? primaryAgent.manifest.name : undefined,
213
+ filesModified: [],
214
+ violations: [],
215
+ warnings: [],
216
+ };
217
+ // Call onAfterExecute hook
218
+ if (agent.onAfterExecute) {
219
+ await agent.onAfterExecute(context, result);
220
+ }
221
+ return result;
222
+ }
223
+ catch (error) {
224
+ // Call onError hook
225
+ if (agent.onError) {
226
+ await agent.onError(error, context);
227
+ }
228
+ // If this was the last agent, throw the error
229
+ if (i === agents.length - 1) {
230
+ return {
231
+ success: false,
232
+ agentName: agent.manifest.name,
233
+ executionTime: Date.now() - startTime,
234
+ fallbackUsed: i > 0,
235
+ originalAgent: i > 0 ? primaryAgent.manifest.name : undefined,
236
+ filesModified: [],
237
+ violations: [],
238
+ warnings: [],
239
+ error: error,
240
+ };
241
+ }
242
+ // Try next fallback
243
+ console.warn(`⚠️ Agent '${agent.manifest.name}' failed, trying fallback...`);
244
+ }
245
+ }
246
+ // Should never reach here
247
+ throw new Error('No agents available for execution');
248
+ }
249
+ /**
250
+ * Add a routing rule
251
+ */
252
+ addRule(rule) {
253
+ this.config.routingRules.push(rule);
254
+ // Re-sort by priority
255
+ this.config.routingRules.sort((a, b) => a.priority - b.priority);
256
+ }
257
+ /**
258
+ * Remove a routing rule by pattern
259
+ */
260
+ removeRule(pattern) {
261
+ const patternStr = pattern.toString();
262
+ const index = this.config.routingRules.findIndex((r) => r.pattern.toString() === patternStr);
263
+ if (index !== -1) {
264
+ this.config.routingRules.splice(index, 1);
265
+ return true;
266
+ }
267
+ return false;
268
+ }
269
+ /**
270
+ * Get all routing rules
271
+ */
272
+ getRules() {
273
+ return [...this.config.routingRules];
274
+ }
275
+ /**
276
+ * Reset delegation depth
277
+ */
278
+ resetDelegation() {
279
+ this.delegationDepth = 0;
280
+ }
281
+ /**
282
+ * Get current delegation depth
283
+ */
284
+ getDelegationDepth() {
285
+ return this.delegationDepth;
286
+ }
287
+ /**
288
+ * Find matching routing rules for a task
289
+ */
290
+ findMatchingRules(task) {
291
+ const matches = [];
292
+ for (const rule of this.config.routingRules) {
293
+ // Check pattern match
294
+ const pattern = rule.pattern instanceof RegExp
295
+ ? rule.pattern
296
+ : new RegExp(rule.pattern, 'i');
297
+ const textToMatch = [
298
+ task.description,
299
+ ...task.filesInProgress,
300
+ task.phase,
301
+ ].join(' ');
302
+ if (pattern.test(textToMatch)) {
303
+ // Check condition if present
304
+ if (rule.condition && !rule.condition(task)) {
305
+ continue;
306
+ }
307
+ matches.push(rule);
308
+ }
309
+ }
310
+ // Sort by priority (lower = higher priority)
311
+ return matches.sort((a, b) => a.priority - b.priority);
312
+ }
313
+ /**
314
+ * Find fallback agents for a primary agent
315
+ */
316
+ findFallbacks(primaryAgent, task) {
317
+ const fallbacks = [];
318
+ const seen = new Set([primaryAgent.manifest.name]);
319
+ // Add agents from delegatesTo list
320
+ if (primaryAgent.manifest.delegatesTo) {
321
+ for (const name of primaryAgent.manifest.delegatesTo) {
322
+ if (seen.has(name))
323
+ continue;
324
+ const agent = this.registry.resolveAgent(name);
325
+ if (agent) {
326
+ fallbacks.push(agent);
327
+ seen.add(name);
328
+ }
329
+ }
330
+ }
331
+ // Add agents from same category
332
+ const categoryAgents = this.registry.getAgentsByCategory(primaryAgent.manifest.category);
333
+ for (const loaded of categoryAgents) {
334
+ if (seen.has(loaded.name))
335
+ continue;
336
+ if (loaded.enabled) {
337
+ fallbacks.push(loaded.agent);
338
+ seen.add(loaded.name);
339
+ }
340
+ }
341
+ // Limit fallbacks to prevent infinite chains
342
+ return fallbacks.slice(0, 3);
343
+ }
344
+ /**
345
+ * Calculate confidence score for a routing match
346
+ */
347
+ calculateConfidence(rule, task) {
348
+ // Base confidence from priority (lower priority = higher confidence)
349
+ const priorityConfidence = Math.max(0, 1 - rule.priority / 100);
350
+ // Boost confidence if condition matched
351
+ const conditionBoost = rule.condition ? 0.1 : 0;
352
+ // Calculate final confidence (0-1)
353
+ return Math.min(1, priorityConfidence + conditionBoost);
354
+ }
355
+ }
356
+ /**
357
+ * Global agent router instance
358
+ */
359
+ let globalRouter = null;
360
+ /**
361
+ * Get or create global agent router
362
+ */
363
+ export function getGlobalAgentRouter(registry, config) {
364
+ if (!globalRouter) {
365
+ globalRouter = new AgentRouter(registry, config);
366
+ }
367
+ return globalRouter;
368
+ }
369
+ /**
370
+ * Reset global agent router
371
+ */
372
+ export function resetGlobalAgentRouter() {
373
+ globalRouter = null;
374
+ }
375
+ //# sourceMappingURL=agent-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-router.js","sourceRoot":"","sources":["../../../packages/ai/agents/agent-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Agent Module - Exports for the agent framework
3
+ *
4
+ * @module @dcyfr/ai/agents
5
+ */
6
+ export type { AgentCategory, AgentTier, AgentModel, AgentPermissionMode, AgentQualityGate, AgentProactiveTrigger, AgentSkill, AgentManifest, AgentHooks, Agent, LoadedAgent, AgentExecutionContext, AgentExecutionResult, AgentViolation, AgentRoutingRule, AgentRoutingResult, AgentRegistryConfig, AgentLoaderConfig, AgentRouterConfig, } from './types';
7
+ export { AgentLoader, AgentLoadError, AgentValidationError, getGlobalAgentLoader, resetGlobalAgentLoader, } from './agent-loader';
8
+ export { AgentRegistry, getGlobalAgentRegistry, resetGlobalAgentRegistry, } from './agent-registry';
9
+ export { AgentRouter, getGlobalAgentRouter, resetGlobalAgentRouter, } from './agent-router';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/ai/agents/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,UAAU,EACV,KAAK,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Agent Module - Exports for the agent framework
3
+ *
4
+ * @module @dcyfr/ai/agents
5
+ */
6
+ // Agent Loader exports
7
+ export { AgentLoader, AgentLoadError, AgentValidationError, getGlobalAgentLoader, resetGlobalAgentLoader, } from './agent-loader';
8
+ // Agent Registry exports
9
+ export { AgentRegistry, getGlobalAgentRegistry, resetGlobalAgentRegistry, } from './agent-registry';
10
+ // Agent Router exports
11
+ export { AgentRouter, getGlobalAgentRouter, resetGlobalAgentRouter, } from './agent-router';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/ai/agents/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH,uBAAuB;AACvB,OAAO,EACL,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,yBAAyB;AACzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,uBAAuB;AACvB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,264 @@
1
+ /**
2
+ * Agent Type Definitions for DCYFR AI Framework
3
+ *
4
+ * Defines the interfaces and types for the agent system including manifests,
5
+ * categories, tiers, and execution contexts.
6
+ *
7
+ * @module @dcyfr/ai/agents/types
8
+ */
9
+ import type { ValidationSeverity, TaskContext } from '../types';
10
+ /**
11
+ * Agent category classification
12
+ * Used for organizing and routing agents by their specialization
13
+ */
14
+ export type AgentCategory = 'core' | 'development' | 'architecture' | 'testing' | 'security' | 'performance' | 'content' | 'devops' | 'data' | 'research' | 'specialized';
15
+ /**
16
+ * Agent tier for OPSEC and loading priority
17
+ * - public: Available in @dcyfr/ai (npm)
18
+ * - private: Available in @dcyfr/agents (git+ssh)
19
+ * - project: Project-specific overrides
20
+ */
21
+ export type AgentTier = 'public' | 'private' | 'project';
22
+ /**
23
+ * Model preference for agent execution
24
+ */
25
+ export type AgentModel = 'haiku' | 'sonnet' | 'opus';
26
+ /**
27
+ * Permission mode for agent actions
28
+ */
29
+ export type AgentPermissionMode = 'readonly' | 'acceptEdits' | 'full';
30
+ /**
31
+ * Quality gate definition for agent enforcement
32
+ */
33
+ export interface AgentQualityGate {
34
+ name: string;
35
+ threshold: number;
36
+ metric: string;
37
+ failureMode: 'error' | 'warn' | 'skip';
38
+ }
39
+ /**
40
+ * Proactive trigger for agent activation
41
+ */
42
+ export interface AgentProactiveTrigger {
43
+ /** Pattern to match (string or regex pattern string) */
44
+ pattern: string;
45
+ /** Action to take when triggered */
46
+ action: 'warn' | 'block' | 'fix' | 'suggest';
47
+ /** Message to display */
48
+ message: string;
49
+ /** Priority (lower = higher priority) */
50
+ priority?: number;
51
+ }
52
+ /**
53
+ * Agent skill reference
54
+ */
55
+ export interface AgentSkill {
56
+ name: string;
57
+ path?: string;
58
+ required?: boolean;
59
+ }
60
+ /**
61
+ * Agent manifest - complete agent definition
62
+ */
63
+ export interface AgentManifest {
64
+ /** Unique agent identifier */
65
+ name: string;
66
+ /** Version following semver */
67
+ version: string;
68
+ /** Human-readable description */
69
+ description: string;
70
+ /** Agent category for routing */
71
+ category: AgentCategory;
72
+ /** Distribution tier */
73
+ tier: AgentTier;
74
+ /** Preferred model */
75
+ model: AgentModel;
76
+ /** Permission level */
77
+ permissionMode: AgentPermissionMode;
78
+ /** Tools the agent can use */
79
+ tools: string[];
80
+ /** Agents this agent can delegate to */
81
+ delegatesTo?: string[];
82
+ /** Agents that delegate to this one */
83
+ delegatedFrom?: string[];
84
+ /** Proactive triggers */
85
+ proactiveTriggers?: AgentProactiveTrigger[];
86
+ /** Quality gates to enforce */
87
+ qualityGates?: AgentQualityGate[];
88
+ /** Skills this agent uses */
89
+ skills?: AgentSkill[];
90
+ /** Author information */
91
+ author?: string;
92
+ /** License */
93
+ license?: string;
94
+ /** Custom configuration schema */
95
+ configSchema?: Record<string, unknown>;
96
+ /** Tags for filtering/searching */
97
+ tags?: string[];
98
+ }
99
+ /**
100
+ * Agent lifecycle hooks
101
+ */
102
+ export interface AgentHooks {
103
+ /** Called when agent is loaded */
104
+ onLoad?: () => void | Promise<void>;
105
+ /** Called when agent is unloaded */
106
+ onUnload?: () => void | Promise<void>;
107
+ /** Called before agent executes */
108
+ onBeforeExecute?: (context: AgentExecutionContext) => void | Promise<void>;
109
+ /** Called after agent executes */
110
+ onAfterExecute?: (context: AgentExecutionContext, result: AgentExecutionResult) => void | Promise<void>;
111
+ /** Called when agent encounters an error */
112
+ onError?: (error: Error, context: AgentExecutionContext) => void | Promise<void>;
113
+ }
114
+ /**
115
+ * Complete agent definition
116
+ */
117
+ export interface Agent extends AgentHooks {
118
+ /** Agent manifest */
119
+ manifest: AgentManifest;
120
+ /** System prompt for the agent */
121
+ systemPrompt?: string;
122
+ /** Instructions (markdown content) */
123
+ instructions?: string;
124
+ }
125
+ /**
126
+ * Loaded agent wrapper with metadata
127
+ */
128
+ export interface LoadedAgent {
129
+ name: string;
130
+ manifest: AgentManifest;
131
+ agent: Agent;
132
+ tier: AgentTier;
133
+ source: string;
134
+ loaded: Date;
135
+ enabled: boolean;
136
+ }
137
+ /**
138
+ * Agent execution context
139
+ */
140
+ export interface AgentExecutionContext {
141
+ /** Task to execute */
142
+ task: TaskContext;
143
+ /** Agent configuration */
144
+ config: Record<string, unknown>;
145
+ /** Working directory */
146
+ workingDirectory: string;
147
+ /** Files in scope */
148
+ files: string[];
149
+ /** Additional metadata */
150
+ metadata?: Record<string, unknown>;
151
+ }
152
+ /**
153
+ * Agent execution result
154
+ */
155
+ export interface AgentExecutionResult {
156
+ /** Whether execution was successful */
157
+ success: boolean;
158
+ /** Agent that executed */
159
+ agentName: string;
160
+ /** Execution time in ms */
161
+ executionTime: number;
162
+ /** Whether fallback was used */
163
+ fallbackUsed: boolean;
164
+ /** Original agent if fallback was used */
165
+ originalAgent?: string;
166
+ /** Files modified */
167
+ filesModified: string[];
168
+ /** Violations detected */
169
+ violations: AgentViolation[];
170
+ /** Warnings generated */
171
+ warnings: AgentViolation[];
172
+ /** Error if failed */
173
+ error?: Error;
174
+ }
175
+ /**
176
+ * Agent violation (from quality gates)
177
+ */
178
+ export interface AgentViolation {
179
+ type: string;
180
+ severity: ValidationSeverity;
181
+ message: string;
182
+ file?: string;
183
+ line?: number;
184
+ column?: number;
185
+ agentName: string;
186
+ gateName?: string;
187
+ }
188
+ /**
189
+ * Routing rule for agent selection
190
+ */
191
+ export interface AgentRoutingRule {
192
+ /** Pattern to match task description */
193
+ pattern: string | RegExp;
194
+ /** Agent to route to */
195
+ agent: string;
196
+ /** Priority (lower = higher priority) */
197
+ priority: number;
198
+ /** Condition function */
199
+ condition?: (task: TaskContext) => boolean;
200
+ }
201
+ /**
202
+ * Routing result from agent router
203
+ */
204
+ export interface AgentRoutingResult {
205
+ /** Selected agent */
206
+ agent: Agent;
207
+ /** Matched rule */
208
+ matchedRule?: AgentRoutingRule;
209
+ /** Fallback agents if primary fails */
210
+ fallbacks: Agent[];
211
+ /** Confidence score (0-1) */
212
+ confidence: number;
213
+ }
214
+ /**
215
+ * Agent registry configuration
216
+ */
217
+ export interface AgentRegistryConfig {
218
+ /** Enable auto-discovery of agents */
219
+ autoDiscover?: boolean;
220
+ /** Paths to search for project agents */
221
+ projectPaths?: string[];
222
+ /** Public tier configuration */
223
+ public?: {
224
+ enabled: boolean;
225
+ source?: string;
226
+ };
227
+ /** Private tier configuration */
228
+ private?: {
229
+ enabled: boolean;
230
+ source?: string;
231
+ };
232
+ /** Project tier configuration */
233
+ project?: {
234
+ enabled: boolean;
235
+ paths?: string[];
236
+ };
237
+ }
238
+ /**
239
+ * Agent loader configuration
240
+ */
241
+ export interface AgentLoaderConfig {
242
+ /** Search paths for agents */
243
+ searchPaths: string[];
244
+ /** Enable auto-discovery */
245
+ autoDiscover: boolean;
246
+ /** Failure mode */
247
+ failureMode: 'throw' | 'warn' | 'silent';
248
+ /** Timeout for agent operations (ms) */
249
+ timeout: number;
250
+ }
251
+ /**
252
+ * Agent router configuration
253
+ */
254
+ export interface AgentRouterConfig {
255
+ /** Default agent to use if no match */
256
+ defaultAgent: string;
257
+ /** Routing rules */
258
+ routingRules: AgentRoutingRule[];
259
+ /** Enable delegation between agents */
260
+ delegationEnabled: boolean;
261
+ /** Maximum delegation depth */
262
+ maxDelegationDepth?: number;
263
+ }
264
+ //# sourceMappingURL=types.d.ts.map