@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.
- package/CHANGELOG.md +21 -0
- package/README.md +19 -22
- package/bin/cli.js +12 -0
- package/bin/tui/config-wizard.js +107 -0
- package/bin/tui/validation-dashboard.js +123 -0
- package/bin/tui.js +259 -0
- package/dist/ai/agents/agent-loader.d.ts +131 -0
- package/dist/ai/agents/agent-loader.d.ts.map +1 -0
- package/dist/ai/agents/agent-loader.js +399 -0
- package/dist/ai/agents/agent-loader.js.map +1 -0
- package/dist/ai/agents/agent-registry.d.ts +120 -0
- package/dist/ai/agents/agent-registry.d.ts.map +1 -0
- package/dist/ai/agents/agent-registry.js +345 -0
- package/dist/ai/agents/agent-registry.js.map +1 -0
- package/dist/ai/agents/agent-router.d.ts +97 -0
- package/dist/ai/agents/agent-router.d.ts.map +1 -0
- package/dist/ai/agents/agent-router.js +375 -0
- package/dist/ai/agents/agent-router.js.map +1 -0
- package/dist/ai/agents/index.d.ts +10 -0
- package/dist/ai/agents/index.d.ts.map +1 -0
- package/dist/ai/agents/index.js +12 -0
- package/dist/ai/agents/index.js.map +1 -0
- package/dist/ai/agents/types.d.ts +264 -0
- package/dist/ai/agents/types.d.ts.map +1 -0
- package/dist/ai/agents/types.js +10 -0
- package/dist/ai/agents/types.js.map +1 -0
- package/dist/ai/agents-builtin/architecture/architecture-reviewer.d.ts +12 -0
- package/dist/ai/agents-builtin/architecture/architecture-reviewer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/architecture/architecture-reviewer.js +92 -0
- package/dist/ai/agents-builtin/architecture/architecture-reviewer.js.map +1 -0
- package/dist/ai/agents-builtin/architecture/cloud-architect.d.ts +12 -0
- package/dist/ai/agents-builtin/architecture/cloud-architect.d.ts.map +1 -0
- package/dist/ai/agents-builtin/architecture/cloud-architect.js +103 -0
- package/dist/ai/agents-builtin/architecture/cloud-architect.js.map +1 -0
- package/dist/ai/agents-builtin/architecture/database-architect.d.ts +12 -0
- package/dist/ai/agents-builtin/architecture/database-architect.d.ts.map +1 -0
- package/dist/ai/agents-builtin/architecture/database-architect.js +95 -0
- package/dist/ai/agents-builtin/architecture/database-architect.js.map +1 -0
- package/dist/ai/agents-builtin/architecture/index.d.ts +11 -0
- package/dist/ai/agents-builtin/architecture/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/architecture/index.js +11 -0
- package/dist/ai/agents-builtin/architecture/index.js.map +1 -0
- package/dist/ai/agents-builtin/content/index.d.ts +9 -0
- package/dist/ai/agents-builtin/content/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/content/index.js +9 -0
- package/dist/ai/agents-builtin/content/index.js.map +1 -0
- package/dist/ai/agents-builtin/content/technical-writer.d.ts +12 -0
- package/dist/ai/agents-builtin/content/technical-writer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/content/technical-writer.js +93 -0
- package/dist/ai/agents-builtin/content/technical-writer.js.map +1 -0
- package/dist/ai/agents-builtin/data/data-scientist.d.ts +12 -0
- package/dist/ai/agents-builtin/data/data-scientist.d.ts.map +1 -0
- package/dist/ai/agents-builtin/data/data-scientist.js +92 -0
- package/dist/ai/agents-builtin/data/data-scientist.js.map +1 -0
- package/dist/ai/agents-builtin/data/index.d.ts +9 -0
- package/dist/ai/agents-builtin/data/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/data/index.js +9 -0
- package/dist/ai/agents-builtin/data/index.js.map +1 -0
- package/dist/ai/agents-builtin/development/backend-architect.d.ts +12 -0
- package/dist/ai/agents-builtin/development/backend-architect.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/backend-architect.js +99 -0
- package/dist/ai/agents-builtin/development/backend-architect.js.map +1 -0
- package/dist/ai/agents-builtin/development/frontend-developer.d.ts +12 -0
- package/dist/ai/agents-builtin/development/frontend-developer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/frontend-developer.js +106 -0
- package/dist/ai/agents-builtin/development/frontend-developer.js.map +1 -0
- package/dist/ai/agents-builtin/development/fullstack-developer.d.ts +12 -0
- package/dist/ai/agents-builtin/development/fullstack-developer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/fullstack-developer.js +86 -0
- package/dist/ai/agents-builtin/development/fullstack-developer.js.map +1 -0
- package/dist/ai/agents-builtin/development/index.d.ts +12 -0
- package/dist/ai/agents-builtin/development/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/index.js +12 -0
- package/dist/ai/agents-builtin/development/index.js.map +1 -0
- package/dist/ai/agents-builtin/development/typescript-pro.d.ts +12 -0
- package/dist/ai/agents-builtin/development/typescript-pro.d.ts.map +1 -0
- package/dist/ai/agents-builtin/development/typescript-pro.js +98 -0
- package/dist/ai/agents-builtin/development/typescript-pro.js.map +1 -0
- package/dist/ai/agents-builtin/devops/devops-engineer.d.ts +12 -0
- package/dist/ai/agents-builtin/devops/devops-engineer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/devops/devops-engineer.js +98 -0
- package/dist/ai/agents-builtin/devops/devops-engineer.js.map +1 -0
- package/dist/ai/agents-builtin/devops/index.d.ts +9 -0
- package/dist/ai/agents-builtin/devops/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/devops/index.js +9 -0
- package/dist/ai/agents-builtin/devops/index.js.map +1 -0
- package/dist/ai/agents-builtin/index.d.ts +36 -0
- package/dist/ai/agents-builtin/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/index.js +107 -0
- package/dist/ai/agents-builtin/index.js.map +1 -0
- package/dist/ai/agents-builtin/performance/index.d.ts +9 -0
- package/dist/ai/agents-builtin/performance/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/performance/index.js +9 -0
- package/dist/ai/agents-builtin/performance/index.js.map +1 -0
- package/dist/ai/agents-builtin/performance/performance-profiler.d.ts +12 -0
- package/dist/ai/agents-builtin/performance/performance-profiler.d.ts.map +1 -0
- package/dist/ai/agents-builtin/performance/performance-profiler.js +89 -0
- package/dist/ai/agents-builtin/performance/performance-profiler.js.map +1 -0
- package/dist/ai/agents-builtin/research/index.d.ts +9 -0
- package/dist/ai/agents-builtin/research/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/research/index.js +9 -0
- package/dist/ai/agents-builtin/research/index.js.map +1 -0
- package/dist/ai/agents-builtin/research/research-orchestrator.d.ts +12 -0
- package/dist/ai/agents-builtin/research/research-orchestrator.d.ts.map +1 -0
- package/dist/ai/agents-builtin/research/research-orchestrator.js +83 -0
- package/dist/ai/agents-builtin/research/research-orchestrator.js.map +1 -0
- package/dist/ai/agents-builtin/security/index.d.ts +9 -0
- package/dist/ai/agents-builtin/security/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/security/index.js +9 -0
- package/dist/ai/agents-builtin/security/index.js.map +1 -0
- package/dist/ai/agents-builtin/security/security-engineer.d.ts +12 -0
- package/dist/ai/agents-builtin/security/security-engineer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/security/security-engineer.js +90 -0
- package/dist/ai/agents-builtin/security/security-engineer.js.map +1 -0
- package/dist/ai/agents-builtin/testing/debugger.d.ts +13 -0
- package/dist/ai/agents-builtin/testing/debugger.d.ts.map +1 -0
- package/dist/ai/agents-builtin/testing/debugger.js +89 -0
- package/dist/ai/agents-builtin/testing/debugger.js.map +1 -0
- package/dist/ai/agents-builtin/testing/index.d.ts +10 -0
- package/dist/ai/agents-builtin/testing/index.d.ts.map +1 -0
- package/dist/ai/agents-builtin/testing/index.js +10 -0
- package/dist/ai/agents-builtin/testing/index.js.map +1 -0
- package/dist/ai/agents-builtin/testing/test-engineer.d.ts +12 -0
- package/dist/ai/agents-builtin/testing/test-engineer.d.ts.map +1 -0
- package/dist/ai/agents-builtin/testing/test-engineer.js +93 -0
- package/dist/ai/agents-builtin/testing/test-engineer.js.map +1 -0
- package/dist/ai/config/loader.d.ts +19 -5
- package/dist/ai/config/loader.d.ts.map +1 -1
- package/dist/ai/config/loader.js +53 -18
- package/dist/ai/config/loader.js.map +1 -1
- package/dist/ai/config/schema.d.ts +600 -8
- package/dist/ai/config/schema.d.ts.map +1 -1
- package/dist/ai/config/schema.js +156 -0
- package/dist/ai/config/schema.js.map +1 -1
- package/dist/ai/index.d.ts +4 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +35 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/mcp/index.d.ts +8 -0
- package/dist/ai/mcp/index.d.ts.map +1 -0
- package/dist/ai/mcp/index.js +8 -0
- package/dist/ai/mcp/index.js.map +1 -0
- package/dist/ai/mcp/mcp-registry.d.ts +127 -0
- package/dist/ai/mcp/mcp-registry.d.ts.map +1 -0
- package/dist/ai/mcp/mcp-registry.js +355 -0
- package/dist/ai/mcp/mcp-registry.js.map +1 -0
- package/dist/ai/mcp/types.d.ts +126 -0
- package/dist/ai/mcp/types.d.ts.map +1 -0
- package/dist/ai/mcp/types.js +9 -0
- package/dist/ai/mcp/types.js.map +1 -0
- package/dist/ai/utils/storage.d.ts +6 -1
- package/dist/ai/utils/storage.d.ts.map +1 -1
- package/dist/ai/utils/storage.js +57 -22
- package/dist/ai/utils/storage.js.map +1 -1
- 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"}
|