@dcyfr/ai 1.0.1 → 1.0.3

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 (155) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +19 -22
  3. package/bin/cli.js +12 -0
  4. package/bin/tui/config-wizard.js +107 -0
  5. package/bin/tui/validation-dashboard.js +123 -0
  6. package/bin/tui.js +259 -0
  7. package/dist/ai/agents/agent-loader.d.ts +131 -0
  8. package/dist/ai/agents/agent-loader.d.ts.map +1 -0
  9. package/dist/ai/agents/agent-loader.js +399 -0
  10. package/dist/ai/agents/agent-loader.js.map +1 -0
  11. package/dist/ai/agents/agent-registry.d.ts +120 -0
  12. package/dist/ai/agents/agent-registry.d.ts.map +1 -0
  13. package/dist/ai/agents/agent-registry.js +345 -0
  14. package/dist/ai/agents/agent-registry.js.map +1 -0
  15. package/dist/ai/agents/agent-router.d.ts +97 -0
  16. package/dist/ai/agents/agent-router.d.ts.map +1 -0
  17. package/dist/ai/agents/agent-router.js +375 -0
  18. package/dist/ai/agents/agent-router.js.map +1 -0
  19. package/dist/ai/agents/index.d.ts +10 -0
  20. package/dist/ai/agents/index.d.ts.map +1 -0
  21. package/dist/ai/agents/index.js +12 -0
  22. package/dist/ai/agents/index.js.map +1 -0
  23. package/dist/ai/agents/types.d.ts +264 -0
  24. package/dist/ai/agents/types.d.ts.map +1 -0
  25. package/dist/ai/agents/types.js +10 -0
  26. package/dist/ai/agents/types.js.map +1 -0
  27. package/dist/ai/agents-builtin/architecture/architecture-reviewer.d.ts +12 -0
  28. package/dist/ai/agents-builtin/architecture/architecture-reviewer.d.ts.map +1 -0
  29. package/dist/ai/agents-builtin/architecture/architecture-reviewer.js +92 -0
  30. package/dist/ai/agents-builtin/architecture/architecture-reviewer.js.map +1 -0
  31. package/dist/ai/agents-builtin/architecture/cloud-architect.d.ts +12 -0
  32. package/dist/ai/agents-builtin/architecture/cloud-architect.d.ts.map +1 -0
  33. package/dist/ai/agents-builtin/architecture/cloud-architect.js +103 -0
  34. package/dist/ai/agents-builtin/architecture/cloud-architect.js.map +1 -0
  35. package/dist/ai/agents-builtin/architecture/database-architect.d.ts +12 -0
  36. package/dist/ai/agents-builtin/architecture/database-architect.d.ts.map +1 -0
  37. package/dist/ai/agents-builtin/architecture/database-architect.js +95 -0
  38. package/dist/ai/agents-builtin/architecture/database-architect.js.map +1 -0
  39. package/dist/ai/agents-builtin/architecture/index.d.ts +11 -0
  40. package/dist/ai/agents-builtin/architecture/index.d.ts.map +1 -0
  41. package/dist/ai/agents-builtin/architecture/index.js +11 -0
  42. package/dist/ai/agents-builtin/architecture/index.js.map +1 -0
  43. package/dist/ai/agents-builtin/content/index.d.ts +9 -0
  44. package/dist/ai/agents-builtin/content/index.d.ts.map +1 -0
  45. package/dist/ai/agents-builtin/content/index.js +9 -0
  46. package/dist/ai/agents-builtin/content/index.js.map +1 -0
  47. package/dist/ai/agents-builtin/content/technical-writer.d.ts +12 -0
  48. package/dist/ai/agents-builtin/content/technical-writer.d.ts.map +1 -0
  49. package/dist/ai/agents-builtin/content/technical-writer.js +93 -0
  50. package/dist/ai/agents-builtin/content/technical-writer.js.map +1 -0
  51. package/dist/ai/agents-builtin/data/data-scientist.d.ts +12 -0
  52. package/dist/ai/agents-builtin/data/data-scientist.d.ts.map +1 -0
  53. package/dist/ai/agents-builtin/data/data-scientist.js +92 -0
  54. package/dist/ai/agents-builtin/data/data-scientist.js.map +1 -0
  55. package/dist/ai/agents-builtin/data/index.d.ts +9 -0
  56. package/dist/ai/agents-builtin/data/index.d.ts.map +1 -0
  57. package/dist/ai/agents-builtin/data/index.js +9 -0
  58. package/dist/ai/agents-builtin/data/index.js.map +1 -0
  59. package/dist/ai/agents-builtin/development/backend-architect.d.ts +12 -0
  60. package/dist/ai/agents-builtin/development/backend-architect.d.ts.map +1 -0
  61. package/dist/ai/agents-builtin/development/backend-architect.js +99 -0
  62. package/dist/ai/agents-builtin/development/backend-architect.js.map +1 -0
  63. package/dist/ai/agents-builtin/development/frontend-developer.d.ts +12 -0
  64. package/dist/ai/agents-builtin/development/frontend-developer.d.ts.map +1 -0
  65. package/dist/ai/agents-builtin/development/frontend-developer.js +106 -0
  66. package/dist/ai/agents-builtin/development/frontend-developer.js.map +1 -0
  67. package/dist/ai/agents-builtin/development/fullstack-developer.d.ts +12 -0
  68. package/dist/ai/agents-builtin/development/fullstack-developer.d.ts.map +1 -0
  69. package/dist/ai/agents-builtin/development/fullstack-developer.js +86 -0
  70. package/dist/ai/agents-builtin/development/fullstack-developer.js.map +1 -0
  71. package/dist/ai/agents-builtin/development/index.d.ts +12 -0
  72. package/dist/ai/agents-builtin/development/index.d.ts.map +1 -0
  73. package/dist/ai/agents-builtin/development/index.js +12 -0
  74. package/dist/ai/agents-builtin/development/index.js.map +1 -0
  75. package/dist/ai/agents-builtin/development/typescript-pro.d.ts +12 -0
  76. package/dist/ai/agents-builtin/development/typescript-pro.d.ts.map +1 -0
  77. package/dist/ai/agents-builtin/development/typescript-pro.js +98 -0
  78. package/dist/ai/agents-builtin/development/typescript-pro.js.map +1 -0
  79. package/dist/ai/agents-builtin/devops/devops-engineer.d.ts +12 -0
  80. package/dist/ai/agents-builtin/devops/devops-engineer.d.ts.map +1 -0
  81. package/dist/ai/agents-builtin/devops/devops-engineer.js +98 -0
  82. package/dist/ai/agents-builtin/devops/devops-engineer.js.map +1 -0
  83. package/dist/ai/agents-builtin/devops/index.d.ts +9 -0
  84. package/dist/ai/agents-builtin/devops/index.d.ts.map +1 -0
  85. package/dist/ai/agents-builtin/devops/index.js +9 -0
  86. package/dist/ai/agents-builtin/devops/index.js.map +1 -0
  87. package/dist/ai/agents-builtin/index.d.ts +36 -0
  88. package/dist/ai/agents-builtin/index.d.ts.map +1 -0
  89. package/dist/ai/agents-builtin/index.js +107 -0
  90. package/dist/ai/agents-builtin/index.js.map +1 -0
  91. package/dist/ai/agents-builtin/performance/index.d.ts +9 -0
  92. package/dist/ai/agents-builtin/performance/index.d.ts.map +1 -0
  93. package/dist/ai/agents-builtin/performance/index.js +9 -0
  94. package/dist/ai/agents-builtin/performance/index.js.map +1 -0
  95. package/dist/ai/agents-builtin/performance/performance-profiler.d.ts +12 -0
  96. package/dist/ai/agents-builtin/performance/performance-profiler.d.ts.map +1 -0
  97. package/dist/ai/agents-builtin/performance/performance-profiler.js +89 -0
  98. package/dist/ai/agents-builtin/performance/performance-profiler.js.map +1 -0
  99. package/dist/ai/agents-builtin/research/index.d.ts +9 -0
  100. package/dist/ai/agents-builtin/research/index.d.ts.map +1 -0
  101. package/dist/ai/agents-builtin/research/index.js +9 -0
  102. package/dist/ai/agents-builtin/research/index.js.map +1 -0
  103. package/dist/ai/agents-builtin/research/research-orchestrator.d.ts +12 -0
  104. package/dist/ai/agents-builtin/research/research-orchestrator.d.ts.map +1 -0
  105. package/dist/ai/agents-builtin/research/research-orchestrator.js +83 -0
  106. package/dist/ai/agents-builtin/research/research-orchestrator.js.map +1 -0
  107. package/dist/ai/agents-builtin/security/index.d.ts +9 -0
  108. package/dist/ai/agents-builtin/security/index.d.ts.map +1 -0
  109. package/dist/ai/agents-builtin/security/index.js +9 -0
  110. package/dist/ai/agents-builtin/security/index.js.map +1 -0
  111. package/dist/ai/agents-builtin/security/security-engineer.d.ts +12 -0
  112. package/dist/ai/agents-builtin/security/security-engineer.d.ts.map +1 -0
  113. package/dist/ai/agents-builtin/security/security-engineer.js +90 -0
  114. package/dist/ai/agents-builtin/security/security-engineer.js.map +1 -0
  115. package/dist/ai/agents-builtin/testing/debugger.d.ts +13 -0
  116. package/dist/ai/agents-builtin/testing/debugger.d.ts.map +1 -0
  117. package/dist/ai/agents-builtin/testing/debugger.js +89 -0
  118. package/dist/ai/agents-builtin/testing/debugger.js.map +1 -0
  119. package/dist/ai/agents-builtin/testing/index.d.ts +10 -0
  120. package/dist/ai/agents-builtin/testing/index.d.ts.map +1 -0
  121. package/dist/ai/agents-builtin/testing/index.js +10 -0
  122. package/dist/ai/agents-builtin/testing/index.js.map +1 -0
  123. package/dist/ai/agents-builtin/testing/test-engineer.d.ts +12 -0
  124. package/dist/ai/agents-builtin/testing/test-engineer.d.ts.map +1 -0
  125. package/dist/ai/agents-builtin/testing/test-engineer.js +93 -0
  126. package/dist/ai/agents-builtin/testing/test-engineer.js.map +1 -0
  127. package/dist/ai/config/loader.d.ts +19 -5
  128. package/dist/ai/config/loader.d.ts.map +1 -1
  129. package/dist/ai/config/loader.js +53 -18
  130. package/dist/ai/config/loader.js.map +1 -1
  131. package/dist/ai/config/schema.d.ts +600 -8
  132. package/dist/ai/config/schema.d.ts.map +1 -1
  133. package/dist/ai/config/schema.js +156 -0
  134. package/dist/ai/config/schema.js.map +1 -1
  135. package/dist/ai/index.d.ts +4 -1
  136. package/dist/ai/index.d.ts.map +1 -1
  137. package/dist/ai/index.js +35 -1
  138. package/dist/ai/index.js.map +1 -1
  139. package/dist/ai/mcp/index.d.ts +8 -0
  140. package/dist/ai/mcp/index.d.ts.map +1 -0
  141. package/dist/ai/mcp/index.js +8 -0
  142. package/dist/ai/mcp/index.js.map +1 -0
  143. package/dist/ai/mcp/mcp-registry.d.ts +127 -0
  144. package/dist/ai/mcp/mcp-registry.d.ts.map +1 -0
  145. package/dist/ai/mcp/mcp-registry.js +355 -0
  146. package/dist/ai/mcp/mcp-registry.js.map +1 -0
  147. package/dist/ai/mcp/types.d.ts +126 -0
  148. package/dist/ai/mcp/types.d.ts.map +1 -0
  149. package/dist/ai/mcp/types.js +9 -0
  150. package/dist/ai/mcp/types.js.map +1 -0
  151. package/dist/ai/utils/storage.d.ts +6 -1
  152. package/dist/ai/utils/storage.d.ts.map +1 -1
  153. package/dist/ai/utils/storage.js +57 -22
  154. package/dist/ai/utils/storage.js.map +1 -1
  155. package/package.json +24 -8
@@ -0,0 +1,345 @@
1
+ /**
2
+ * Agent Registry - Multi-tier agent management
3
+ *
4
+ * Manages agents across three tiers with priority resolution:
5
+ * - project: Project-specific agents (highest priority)
6
+ * - private: @dcyfr/agents package (medium priority)
7
+ * - public: @dcyfr/ai built-in agents (lowest priority)
8
+ *
9
+ * @module @dcyfr/ai/agents/agent-registry
10
+ * @example
11
+ * ```typescript
12
+ * import { AgentRegistry } from '@dcyfr/ai/agents/agent-registry';
13
+ * import { dcyfrAgents } from '@dcyfr/agents';
14
+ *
15
+ * const registry = new AgentRegistry();
16
+ *
17
+ * // Register tier-specific sources
18
+ * registry.registerTier('public', '@dcyfr/ai/agents-builtin');
19
+ * registry.registerTier('private', dcyfrAgents);
20
+ * registry.registerTier('project', '.claude/agents');
21
+ *
22
+ * // Resolve agent with tier precedence
23
+ * const agent = registry.resolveAgent('test-engineer');
24
+ * ```
25
+ */
26
+ import { AgentLoader, } from './agent-loader';
27
+ /**
28
+ * Default registry configuration
29
+ */
30
+ const DEFAULT_CONFIG = {
31
+ autoDiscover: false,
32
+ projectPaths: ['.claude/agents', '.github/agents'],
33
+ public: {
34
+ enabled: true,
35
+ source: '@dcyfr/ai/agents-builtin',
36
+ },
37
+ private: {
38
+ enabled: false,
39
+ },
40
+ project: {
41
+ enabled: true,
42
+ paths: ['.claude/agents', '.github/agents'],
43
+ },
44
+ };
45
+ /**
46
+ * Agent Registry - multi-tier agent management
47
+ */
48
+ export class AgentRegistry {
49
+ tiers = new Map();
50
+ config;
51
+ initialized = false;
52
+ constructor(config = {}) {
53
+ this.config = { ...DEFAULT_CONFIG, ...config };
54
+ }
55
+ /**
56
+ * Initialize the registry with configured tiers
57
+ */
58
+ async initialize() {
59
+ if (this.initialized)
60
+ return;
61
+ // Initialize public tier if enabled
62
+ if (this.config.public?.enabled && this.config.public.source) {
63
+ await this.registerTier('public', this.config.public.source);
64
+ }
65
+ // Initialize private tier if enabled
66
+ if (this.config.private?.enabled && this.config.private.source) {
67
+ await this.registerTier('private', this.config.private.source);
68
+ }
69
+ // Initialize project tier if enabled
70
+ if (this.config.project?.enabled && this.config.project.paths) {
71
+ for (const path of this.config.project.paths) {
72
+ await this.registerTier('project', path);
73
+ }
74
+ }
75
+ this.initialized = true;
76
+ }
77
+ /**
78
+ * Register a tier with a source (package path or agent array)
79
+ */
80
+ async registerTier(tier, source) {
81
+ const loader = new AgentLoader({
82
+ searchPaths: typeof source === 'string' ? [source] : [],
83
+ autoDiscover: typeof source === 'string',
84
+ failureMode: 'warn',
85
+ timeout: 30000,
86
+ });
87
+ const tierSource = {
88
+ tier,
89
+ source,
90
+ loader,
91
+ loaded: false,
92
+ };
93
+ this.tiers.set(tier, tierSource);
94
+ // Load agents from source
95
+ await this.loadTier(tier);
96
+ }
97
+ /**
98
+ * Load agents for a specific tier
99
+ */
100
+ async loadTier(tier) {
101
+ const tierSource = this.tiers.get(tier);
102
+ if (!tierSource) {
103
+ throw new Error(`Tier '${tier}' is not registered`);
104
+ }
105
+ if (tierSource.loaded)
106
+ return;
107
+ const { source, loader } = tierSource;
108
+ if (typeof source === 'string') {
109
+ // Load from package or file path
110
+ try {
111
+ if (source.startsWith('@') || source.startsWith('.')) {
112
+ // Try to import as a module that exports agents
113
+ const module = await import(source);
114
+ const agents = module.default || module.agents || module;
115
+ if (Array.isArray(agents)) {
116
+ await loader.loadAgents(agents, tier);
117
+ }
118
+ else if (typeof agents === 'object') {
119
+ // Object with agent exports
120
+ for (const [, agent] of Object.entries(agents)) {
121
+ if (this.isAgent(agent)) {
122
+ await loader.loadAgent(agent, tier);
123
+ }
124
+ }
125
+ }
126
+ }
127
+ else {
128
+ // Discover agents in path
129
+ await loader.discoverAgents();
130
+ }
131
+ }
132
+ catch (error) {
133
+ console.warn(`⚠️ Failed to load tier '${tier}' from ${source}:`, error);
134
+ }
135
+ }
136
+ else {
137
+ // Load from agent array
138
+ await loader.loadAgents(source, tier);
139
+ }
140
+ tierSource.loaded = true;
141
+ }
142
+ /**
143
+ * Resolve an agent by name with tier precedence
144
+ * Priority: project > private > public
145
+ */
146
+ resolveAgent(name) {
147
+ const tierOrder = ['project', 'private', 'public'];
148
+ for (const tier of tierOrder) {
149
+ const tierSource = this.tiers.get(tier);
150
+ if (!tierSource)
151
+ continue;
152
+ const loaded = tierSource.loader.getAgent(name);
153
+ if (loaded && loaded.enabled) {
154
+ return loaded.agent;
155
+ }
156
+ }
157
+ return undefined;
158
+ }
159
+ /**
160
+ * Get a loaded agent with metadata
161
+ */
162
+ getLoadedAgent(name) {
163
+ const tierOrder = ['project', 'private', 'public'];
164
+ for (const tier of tierOrder) {
165
+ const tierSource = this.tiers.get(tier);
166
+ if (!tierSource)
167
+ continue;
168
+ const loaded = tierSource.loader.getAgent(name);
169
+ if (loaded && loaded.enabled) {
170
+ return loaded;
171
+ }
172
+ }
173
+ return undefined;
174
+ }
175
+ /**
176
+ * Get all agents across all tiers
177
+ */
178
+ getAllAgents() {
179
+ const allAgents = new Map();
180
+ const tierOrder = ['public', 'private', 'project'];
181
+ // Load in reverse order so higher priority overwrites
182
+ for (const tier of tierOrder) {
183
+ const tierSource = this.tiers.get(tier);
184
+ if (!tierSource)
185
+ continue;
186
+ for (const agent of tierSource.loader.getAgents()) {
187
+ allAgents.set(agent.name, agent);
188
+ }
189
+ }
190
+ return Array.from(allAgents.values());
191
+ }
192
+ /**
193
+ * Get all agent manifests (for discovery/catalog)
194
+ */
195
+ getAllManifests() {
196
+ return this.getAllAgents().map((a) => a.manifest);
197
+ }
198
+ /**
199
+ * Get agents by category
200
+ */
201
+ getAgentsByCategory(category) {
202
+ return this.getAllAgents().filter((a) => a.manifest.category === category);
203
+ }
204
+ /**
205
+ * Get agents by tier
206
+ */
207
+ getAgentsByTier(tier) {
208
+ const tierSource = this.tiers.get(tier);
209
+ if (!tierSource)
210
+ return [];
211
+ return tierSource.loader.getAgents();
212
+ }
213
+ /**
214
+ * Get agents by tag
215
+ */
216
+ getAgentsByTag(tag) {
217
+ return this.getAllAgents().filter((a) => a.manifest.tags?.includes(tag));
218
+ }
219
+ /**
220
+ * Search agents by name or description
221
+ */
222
+ searchAgents(query) {
223
+ const lowerQuery = query.toLowerCase();
224
+ return this.getAllAgents().filter((a) => a.manifest.name.toLowerCase().includes(lowerQuery) ||
225
+ a.manifest.description.toLowerCase().includes(lowerQuery) ||
226
+ a.manifest.tags?.some((t) => t.toLowerCase().includes(lowerQuery)));
227
+ }
228
+ /**
229
+ * Merge agent configurations (overlay pattern)
230
+ * Base agent from lower tier, overrides from higher tier
231
+ */
232
+ mergeAgentConfigs(baseAgent, overrides) {
233
+ return {
234
+ ...baseAgent,
235
+ manifest: {
236
+ ...baseAgent.manifest,
237
+ ...(overrides.manifest || {}),
238
+ },
239
+ instructions: overrides.instructions || baseAgent.instructions,
240
+ systemPrompt: overrides.systemPrompt || baseAgent.systemPrompt,
241
+ onLoad: overrides.onLoad || baseAgent.onLoad,
242
+ onUnload: overrides.onUnload || baseAgent.onUnload,
243
+ onBeforeExecute: overrides.onBeforeExecute || baseAgent.onBeforeExecute,
244
+ onAfterExecute: overrides.onAfterExecute || baseAgent.onAfterExecute,
245
+ onError: overrides.onError || baseAgent.onError,
246
+ };
247
+ }
248
+ /**
249
+ * Enable an agent by name (searches all tiers)
250
+ */
251
+ enableAgent(name) {
252
+ for (const tierSource of this.tiers.values()) {
253
+ const agent = tierSource.loader.getAgent(name);
254
+ if (agent) {
255
+ tierSource.loader.enableAgent(name);
256
+ return true;
257
+ }
258
+ }
259
+ return false;
260
+ }
261
+ /**
262
+ * Disable an agent by name (searches all tiers)
263
+ */
264
+ disableAgent(name) {
265
+ for (const tierSource of this.tiers.values()) {
266
+ const agent = tierSource.loader.getAgent(name);
267
+ if (agent) {
268
+ tierSource.loader.disableAgent(name);
269
+ return true;
270
+ }
271
+ }
272
+ return false;
273
+ }
274
+ /**
275
+ * Get registry statistics
276
+ */
277
+ getStats() {
278
+ const allAgents = this.getAllAgents();
279
+ const byTier = {
280
+ public: 0,
281
+ private: 0,
282
+ project: 0,
283
+ };
284
+ const byCategory = {};
285
+ let enabled = 0;
286
+ let disabled = 0;
287
+ for (const agent of allAgents) {
288
+ byTier[agent.tier]++;
289
+ const category = agent.manifest.category;
290
+ byCategory[category] = (byCategory[category] || 0) + 1;
291
+ if (agent.enabled) {
292
+ enabled++;
293
+ }
294
+ else {
295
+ disabled++;
296
+ }
297
+ }
298
+ return {
299
+ totalAgents: allAgents.length,
300
+ byTier,
301
+ byCategory,
302
+ enabled,
303
+ disabled,
304
+ };
305
+ }
306
+ /**
307
+ * Clear all tiers and agents
308
+ */
309
+ async clearAll() {
310
+ for (const tierSource of this.tiers.values()) {
311
+ await tierSource.loader.clearAll();
312
+ }
313
+ this.tiers.clear();
314
+ this.initialized = false;
315
+ }
316
+ /**
317
+ * Check if value is an Agent
318
+ */
319
+ isAgent(value) {
320
+ return (typeof value === 'object' &&
321
+ value !== null &&
322
+ 'manifest' in value &&
323
+ typeof value.manifest === 'object');
324
+ }
325
+ }
326
+ /**
327
+ * Global agent registry instance
328
+ */
329
+ let globalRegistry = null;
330
+ /**
331
+ * Get or create global agent registry
332
+ */
333
+ export function getGlobalAgentRegistry(config) {
334
+ if (!globalRegistry) {
335
+ globalRegistry = new AgentRegistry(config);
336
+ }
337
+ return globalRegistry;
338
+ }
339
+ /**
340
+ * Reset global agent registry
341
+ */
342
+ export function resetGlobalAgentRegistry() {
343
+ globalRegistry = null;
344
+ }
345
+ //# sourceMappingURL=agent-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-registry.js","sourceRoot":"","sources":["../../../packages/ai/agents/agent-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
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
+ import type { Agent, AgentRouterConfig, AgentRoutingRule, AgentRoutingResult, AgentExecutionContext, AgentExecutionResult } from './types';
30
+ import type { TaskContext } from '../types';
31
+ import { AgentRegistry } from './agent-registry';
32
+ /**
33
+ * Agent Router - routes tasks to appropriate agents
34
+ */
35
+ export declare class AgentRouter {
36
+ private registry;
37
+ private config;
38
+ private delegationDepth;
39
+ constructor(registry: AgentRegistry, config?: Partial<AgentRouterConfig>);
40
+ /**
41
+ * Route a task to the most appropriate agent
42
+ */
43
+ route(task: TaskContext): Promise<AgentRoutingResult>;
44
+ /**
45
+ * Route with custom rules (merges with default rules)
46
+ */
47
+ routeWithRules(task: TaskContext, customRules: AgentRoutingRule[]): Promise<AgentRoutingResult>;
48
+ /**
49
+ * Delegate task to another agent
50
+ */
51
+ delegate(fromAgent: Agent, toAgentName: string, task: TaskContext): Promise<Agent>;
52
+ /**
53
+ * Execute task with automatic fallback
54
+ */
55
+ executeWithFallback(context: AgentExecutionContext, primaryAgent: Agent, fallbacks: Agent[]): Promise<AgentExecutionResult>;
56
+ /**
57
+ * Add a routing rule
58
+ */
59
+ addRule(rule: AgentRoutingRule): void;
60
+ /**
61
+ * Remove a routing rule by pattern
62
+ */
63
+ removeRule(pattern: string | RegExp): boolean;
64
+ /**
65
+ * Get all routing rules
66
+ */
67
+ getRules(): AgentRoutingRule[];
68
+ /**
69
+ * Reset delegation depth
70
+ */
71
+ resetDelegation(): void;
72
+ /**
73
+ * Get current delegation depth
74
+ */
75
+ getDelegationDepth(): number;
76
+ /**
77
+ * Find matching routing rules for a task
78
+ */
79
+ private findMatchingRules;
80
+ /**
81
+ * Find fallback agents for a primary agent
82
+ */
83
+ private findFallbacks;
84
+ /**
85
+ * Calculate confidence score for a routing match
86
+ */
87
+ private calculateConfidence;
88
+ }
89
+ /**
90
+ * Get or create global agent router
91
+ */
92
+ export declare function getGlobalAgentRouter(registry: AgentRegistry, config?: Partial<AgentRouterConfig>): AgentRouter;
93
+ /**
94
+ * Reset global agent router
95
+ */
96
+ export declare function resetGlobalAgentRouter(): void;
97
+ //# sourceMappingURL=agent-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-router.d.ts","sourceRoot":"","sources":["../../../packages/ai/agents/agent-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA0FjD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,eAAe,CAAa;gBAGlC,QAAQ,EAAE,aAAa,EACvB,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAMzC;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiC3D;;OAEG;IACG,cAAc,CAClB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,gBAAgB,EAAE,GAC9B,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;OAEG;IACG,QAAQ,CACZ,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,KAAK,CAAC;IAiCjB;;OAEG;IACG,mBAAmB,CACvB,OAAO,EAAE,qBAAqB,EAC9B,YAAY,EAAE,KAAK,EACnB,SAAS,EAAE,KAAK,EAAE,GACjB,OAAO,CAAC,oBAAoB,CAAC;IAgEhC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAMrC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAY7C;;OAEG;IACH,QAAQ,IAAI,gBAAgB,EAAE;IAI9B;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAgCrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAa5B;AAOD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EACvB,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAClC,WAAW,CAKb;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}