@dcyfr/ai 1.0.0

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 (49) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/LICENSE +21 -0
  3. package/README.md +210 -0
  4. package/bin/cli.js +249 -0
  5. package/bin/dcyfr-ai.js +376 -0
  6. package/config/default.json +123 -0
  7. package/config/default.yaml +161 -0
  8. package/config/minimal.yaml +16 -0
  9. package/dist/ai/config/loader.d.ts +91 -0
  10. package/dist/ai/config/loader.d.ts.map +1 -0
  11. package/dist/ai/config/loader.js +259 -0
  12. package/dist/ai/config/loader.js.map +1 -0
  13. package/dist/ai/config/schema.d.ts +854 -0
  14. package/dist/ai/config/schema.d.ts.map +1 -0
  15. package/dist/ai/config/schema.js +260 -0
  16. package/dist/ai/config/schema.js.map +1 -0
  17. package/dist/ai/core/provider-registry.d.ts +115 -0
  18. package/dist/ai/core/provider-registry.d.ts.map +1 -0
  19. package/dist/ai/core/provider-registry.js +360 -0
  20. package/dist/ai/core/provider-registry.js.map +1 -0
  21. package/dist/ai/core/telemetry-engine.d.ts +114 -0
  22. package/dist/ai/core/telemetry-engine.d.ts.map +1 -0
  23. package/dist/ai/core/telemetry-engine.js +390 -0
  24. package/dist/ai/core/telemetry-engine.js.map +1 -0
  25. package/dist/ai/index.d.ts +17 -0
  26. package/dist/ai/index.d.ts.map +1 -0
  27. package/dist/ai/index.js +21 -0
  28. package/dist/ai/index.js.map +1 -0
  29. package/dist/ai/plugins/plugin-loader.d.ts +132 -0
  30. package/dist/ai/plugins/plugin-loader.d.ts.map +1 -0
  31. package/dist/ai/plugins/plugin-loader.js +316 -0
  32. package/dist/ai/plugins/plugin-loader.js.map +1 -0
  33. package/dist/ai/types/index.d.ts +179 -0
  34. package/dist/ai/types/index.d.ts.map +1 -0
  35. package/dist/ai/types/index.js +11 -0
  36. package/dist/ai/types/index.js.map +1 -0
  37. package/dist/ai/types/telemetry.d.ts +117 -0
  38. package/dist/ai/types/telemetry.d.ts.map +1 -0
  39. package/dist/ai/types/telemetry.js +6 -0
  40. package/dist/ai/types/telemetry.js.map +1 -0
  41. package/dist/ai/utils/storage.d.ts +37 -0
  42. package/dist/ai/utils/storage.d.ts.map +1 -0
  43. package/dist/ai/utils/storage.js +129 -0
  44. package/dist/ai/utils/storage.js.map +1 -0
  45. package/dist/ai/validation/validation-framework.d.ts +112 -0
  46. package/dist/ai/validation/validation-framework.d.ts.map +1 -0
  47. package/dist/ai/validation/validation-framework.js +221 -0
  48. package/dist/ai/validation/validation-framework.js.map +1 -0
  49. package/package.json +67 -0
@@ -0,0 +1,390 @@
1
+ /**
2
+ * Telemetry Engine
3
+ *
4
+ * Tracks agent usage, quality metrics, costs, and performance across all AI providers.
5
+ * Provides data-driven insights for optimizing agent allocation and cost management.
6
+ *
7
+ * @module @dcyfr/ai/core/telemetry-engine
8
+ * @example
9
+ * ```typescript
10
+ * import { TelemetryEngine } from '@dcyfr/ai/core/telemetry-engine';
11
+ *
12
+ * const telemetry = new TelemetryEngine({ storage: 'memory' });
13
+ *
14
+ * // Start tracking a task
15
+ * const session = telemetry.startSession('claude', {
16
+ * taskType: 'feature',
17
+ * description: 'Implement dark mode',
18
+ * });
19
+ *
20
+ * // Record metrics
21
+ * session.recordMetric('tokenCompliance', 0.98);
22
+ * session.recordValidation('typescript', 'pass');
23
+ *
24
+ * // End session
25
+ * const result = session.end('success');
26
+ * ```
27
+ */
28
+ import { createStorageAdapter } from '../utils/storage';
29
+ /**
30
+ * Telemetry Session Manager - handles individual sessions
31
+ */
32
+ export class TelemetrySessionManager {
33
+ session;
34
+ startTime;
35
+ storage;
36
+ constructor(sessionId, agent, taskType, taskDescription, storage) {
37
+ this.storage = storage;
38
+ this.startTime = Date.now();
39
+ this.session = {
40
+ sessionId,
41
+ agent,
42
+ taskType,
43
+ taskDescription,
44
+ startTime: new Date(),
45
+ metrics: {
46
+ tokenCompliance: 0,
47
+ testPassRate: 0,
48
+ lintViolations: 0,
49
+ typeErrors: 0,
50
+ executionTime: 0,
51
+ tokensUsed: 0,
52
+ filesModified: 0,
53
+ linesChanged: 0,
54
+ validations: {
55
+ typescript: 'pending',
56
+ eslint: 'pending',
57
+ tests: 'pending',
58
+ designTokens: 'pending',
59
+ security: 'pending',
60
+ },
61
+ },
62
+ violations: [],
63
+ handoffs: [],
64
+ cost: {
65
+ provider: agent,
66
+ inputTokens: 0,
67
+ outputTokens: 0,
68
+ estimatedCost: 0,
69
+ currency: 'USD',
70
+ },
71
+ };
72
+ }
73
+ /**
74
+ * Record a metric value
75
+ */
76
+ recordMetric(metric, value) {
77
+ this.session.metrics[metric] = value;
78
+ }
79
+ /**
80
+ * Record validation status
81
+ */
82
+ recordValidation(validation, status) {
83
+ this.session.metrics.validations[validation] = status;
84
+ }
85
+ /**
86
+ * Record a violation
87
+ */
88
+ recordViolation(violation) {
89
+ this.session.violations.push({
90
+ timestamp: new Date(),
91
+ ...violation,
92
+ });
93
+ // Update violation counts
94
+ if (violation.type === 'eslint') {
95
+ this.session.metrics.lintViolations++;
96
+ }
97
+ else if (violation.type === 'typescript') {
98
+ this.session.metrics.typeErrors++;
99
+ }
100
+ }
101
+ /**
102
+ * Record a handoff to another agent
103
+ */
104
+ recordHandoff(handoff) {
105
+ this.session.handoffs.push({
106
+ timestamp: new Date(),
107
+ fromAgent: this.session.agent,
108
+ ...handoff,
109
+ });
110
+ }
111
+ /**
112
+ * Update cost estimate
113
+ */
114
+ updateCost(inputTokens, outputTokens) {
115
+ this.session.cost.inputTokens += inputTokens;
116
+ this.session.cost.outputTokens += outputTokens;
117
+ // Calculate cost based on provider
118
+ const costPerMillionTokens = this.getCostPerMillionTokens(this.session.agent);
119
+ const totalTokens = inputTokens + outputTokens;
120
+ this.session.cost.estimatedCost += (totalTokens / 1_000_000) * costPerMillionTokens;
121
+ // Update tokens used metric
122
+ this.session.metrics.tokensUsed = totalTokens;
123
+ }
124
+ getCostPerMillionTokens(agent) {
125
+ const costs = {
126
+ claude: 15, // $15 per 1M tokens (Sonnet 3.5)
127
+ copilot: 0.1, // Included in subscription
128
+ groq: 0, // Free tier
129
+ ollama: 0, // Local
130
+ };
131
+ return costs[agent];
132
+ }
133
+ /**
134
+ * End the session and return final metrics
135
+ */
136
+ async end(outcome) {
137
+ this.session.endTime = new Date();
138
+ this.session.outcome = outcome;
139
+ this.session.metrics.executionTime = Date.now() - this.startTime;
140
+ // Save to storage
141
+ await this.saveToStorage();
142
+ return this.session;
143
+ }
144
+ /**
145
+ * Get current session data
146
+ */
147
+ getSession() {
148
+ return { ...this.session };
149
+ }
150
+ async saveToStorage() {
151
+ try {
152
+ // Get existing sessions
153
+ const sessions = await this.storage.get('telemetry-sessions') || [];
154
+ // Add current session
155
+ sessions.push(this.session);
156
+ // Save back
157
+ await this.storage.set('telemetry-sessions', sessions);
158
+ }
159
+ catch (error) {
160
+ console.error('Failed to save telemetry session:', error);
161
+ }
162
+ }
163
+ }
164
+ /**
165
+ * Main Telemetry Engine
166
+ */
167
+ export class TelemetryEngine {
168
+ activeSessions;
169
+ storage;
170
+ constructor(options) {
171
+ this.activeSessions = new Map();
172
+ // Initialize storage
173
+ if (options?.storage) {
174
+ if (typeof options.storage === 'string') {
175
+ this.storage = createStorageAdapter(options.storage, { basePath: options.basePath });
176
+ }
177
+ else {
178
+ this.storage = options.storage;
179
+ }
180
+ }
181
+ else {
182
+ this.storage = createStorageAdapter('memory');
183
+ }
184
+ }
185
+ /**
186
+ * Start a new telemetry session
187
+ */
188
+ startSession(agent, options) {
189
+ const sessionId = this.generateSessionId();
190
+ const session = new TelemetrySessionManager(sessionId, agent, options.taskType, options.description, this.storage);
191
+ this.activeSessions.set(sessionId, session);
192
+ return session;
193
+ }
194
+ /**
195
+ * Get an active session
196
+ */
197
+ getSession(sessionId) {
198
+ return this.activeSessions.get(sessionId);
199
+ }
200
+ /**
201
+ * End a session
202
+ */
203
+ async endSession(sessionId, outcome) {
204
+ const session = this.activeSessions.get(sessionId);
205
+ if (!session)
206
+ return null;
207
+ const result = await session.end(outcome);
208
+ this.activeSessions.delete(sessionId);
209
+ return result;
210
+ }
211
+ /**
212
+ * Get statistics for a specific agent
213
+ */
214
+ async getAgentStats(agent, period = '30d') {
215
+ const sessions = await this.getSessionsForPeriod(agent, period);
216
+ const totalSessions = sessions.length;
217
+ if (totalSessions === 0) {
218
+ return this.getEmptyStats(agent, period);
219
+ }
220
+ const totalTime = sessions.reduce((sum, s) => sum + s.metrics.executionTime, 0);
221
+ const averageSessionTime = totalTime / totalSessions;
222
+ const outcomes = {
223
+ success: sessions.filter(s => s.outcome === 'success').length,
224
+ escalated: sessions.filter(s => s.outcome === 'escalated').length,
225
+ failed: sessions.filter(s => s.outcome === 'failed').length,
226
+ partial: sessions.filter(s => s.outcome === 'partial').length,
227
+ };
228
+ const quality = {
229
+ averageTokenCompliance: sessions.reduce((sum, s) => sum + s.metrics.tokenCompliance, 0) / totalSessions,
230
+ averageTestPassRate: sessions.reduce((sum, s) => sum + s.metrics.testPassRate, 0) / totalSessions,
231
+ totalViolations: sessions.reduce((sum, s) => sum + s.violations.length, 0),
232
+ violationsFixed: sessions.reduce((sum, s) => sum + s.violations.filter(v => v.fixed).length, 0),
233
+ };
234
+ const performance = {
235
+ averageExecutionTime: averageSessionTime,
236
+ totalTokensUsed: sessions.reduce((sum, s) => sum + s.metrics.tokensUsed, 0),
237
+ averageFilesModified: sessions.reduce((sum, s) => sum + s.metrics.filesModified, 0) / totalSessions,
238
+ };
239
+ const cost = {
240
+ totalCost: sessions.reduce((sum, s) => sum + s.cost.estimatedCost, 0),
241
+ averageCostPerSession: sessions.reduce((sum, s) => sum + s.cost.estimatedCost, 0) / totalSessions,
242
+ costByTaskType: this.calculateCostByTaskType(sessions),
243
+ };
244
+ const taskTypes = sessions.reduce((acc, s) => {
245
+ acc[s.taskType] = (acc[s.taskType] || 0) + 1;
246
+ return acc;
247
+ }, {});
248
+ return {
249
+ agent,
250
+ period,
251
+ totalSessions,
252
+ totalTime,
253
+ averageSessionTime,
254
+ outcomes,
255
+ quality,
256
+ performance,
257
+ cost,
258
+ taskTypes,
259
+ };
260
+ }
261
+ /**
262
+ * Compare stats across all agents
263
+ */
264
+ async compareAgents(period = '30d') {
265
+ const agents = ['claude', 'copilot', 'groq', 'ollama'];
266
+ const stats = {};
267
+ for (const agent of agents) {
268
+ stats[agent] = await this.getAgentStats(agent, period);
269
+ }
270
+ const recommendations = this.generateRecommendations(stats);
271
+ return {
272
+ period,
273
+ agents: stats,
274
+ recommendations,
275
+ };
276
+ }
277
+ /**
278
+ * Get handoff patterns
279
+ */
280
+ async getHandoffPatterns(period = '30d') {
281
+ const sessions = await this.getAllSessionsForPeriod(period);
282
+ const allHandoffs = sessions.flatMap(s => s.handoffs);
283
+ const totalHandoffs = allHandoffs.length;
284
+ const byReason = allHandoffs.reduce((acc, h) => {
285
+ acc[h.reason] = (acc[h.reason] || 0) + 1;
286
+ return acc;
287
+ }, {});
288
+ const paths = {};
289
+ allHandoffs.forEach(h => {
290
+ const path = `${h.fromAgent} → ${h.toAgent}`;
291
+ paths[path] = (paths[path] || 0) + 1;
292
+ });
293
+ const mostCommonPath = Object.entries(paths).sort((a, b) => b[1] - a[1])[0]?.[0] || 'None';
294
+ const automaticVsManual = {
295
+ automatic: allHandoffs.filter(h => h.automatic).length,
296
+ manual: allHandoffs.filter(h => !h.automatic).length,
297
+ };
298
+ return {
299
+ totalHandoffs,
300
+ byReason,
301
+ mostCommonPath,
302
+ automaticVsManual,
303
+ };
304
+ }
305
+ generateSessionId() {
306
+ // Session IDs are for internal tracking only, not security-critical
307
+ return `session-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
308
+ }
309
+ async getSessionsForPeriod(agent, period) {
310
+ const allSessions = await this.storage.get('telemetry-sessions') || [];
311
+ const cutoffDate = this.getPeriodCutoffDate(period);
312
+ return allSessions.filter(s => s.agent === agent && new Date(s.startTime) >= cutoffDate);
313
+ }
314
+ async getAllSessionsForPeriod(period) {
315
+ const allSessions = await this.storage.get('telemetry-sessions') || [];
316
+ const cutoffDate = this.getPeriodCutoffDate(period);
317
+ return allSessions.filter(s => new Date(s.startTime) >= cutoffDate);
318
+ }
319
+ getPeriodCutoffDate(period) {
320
+ const now = new Date();
321
+ const match = period.match(/(\d+)([dhm])/);
322
+ if (!match)
323
+ return new Date(0); // All time
324
+ const value = parseInt(match[1], 10);
325
+ const unit = match[2];
326
+ switch (unit) {
327
+ case 'd':
328
+ return new Date(now.getTime() - value * 24 * 60 * 60 * 1000);
329
+ case 'h':
330
+ return new Date(now.getTime() - value * 60 * 60 * 1000);
331
+ case 'm':
332
+ return new Date(now.getTime() - value * 60 * 1000);
333
+ default:
334
+ return new Date(0);
335
+ }
336
+ }
337
+ calculateCostByTaskType(sessions) {
338
+ return sessions.reduce((acc, s) => {
339
+ acc[s.taskType] = (acc[s.taskType] || 0) + s.cost.estimatedCost;
340
+ return acc;
341
+ }, {});
342
+ }
343
+ generateRecommendations(stats) {
344
+ const recommendations = [];
345
+ // Find agents with actual data
346
+ const activeAgents = Object.entries(stats).filter(([, s]) => s.totalSessions > 0);
347
+ if (activeAgents.length === 0) {
348
+ return ['No sessions recorded yet. Start using the framework to get recommendations.'];
349
+ }
350
+ // Analyze quality metrics
351
+ const bestQuality = activeAgents.sort((a, b) => b[1].quality.averageTokenCompliance - a[1].quality.averageTokenCompliance)[0];
352
+ if (bestQuality) {
353
+ recommendations.push(`Use ${bestQuality[0]} for highest quality work (${(bestQuality[1].quality.averageTokenCompliance * 100).toFixed(1)}% token compliance)`);
354
+ }
355
+ // Analyze cost efficiency
356
+ const freeAgents = activeAgents.filter(([, s]) => s.cost.totalCost === 0);
357
+ if (freeAgents.length > 0) {
358
+ recommendations.push(`Use ${freeAgents.map(([agent]) => agent).join(' or ')} for cost optimization (free tier)`);
359
+ }
360
+ return recommendations;
361
+ }
362
+ getEmptyStats(agent, period) {
363
+ return {
364
+ agent,
365
+ period,
366
+ totalSessions: 0,
367
+ totalTime: 0,
368
+ averageSessionTime: 0,
369
+ outcomes: { success: 0, escalated: 0, failed: 0, partial: 0 },
370
+ quality: {
371
+ averageTokenCompliance: 0,
372
+ averageTestPassRate: 0,
373
+ totalViolations: 0,
374
+ violationsFixed: 0,
375
+ },
376
+ performance: {
377
+ averageExecutionTime: 0,
378
+ totalTokensUsed: 0,
379
+ averageFilesModified: 0,
380
+ },
381
+ cost: {
382
+ totalCost: 0,
383
+ averageCostPerSession: 0,
384
+ costByTaskType: {},
385
+ },
386
+ taskTypes: {},
387
+ };
388
+ }
389
+ }
390
+ //# sourceMappingURL=telemetry-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-engine.js","sourceRoot":"","sources":["../../../packages/ai/core/telemetry-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * DCYFR AI Framework - Main Entry Point
3
+ *
4
+ * Portable AI agent framework with plugin architecture
5
+ * @module @dcyfr/ai
6
+ */
7
+ export { TelemetryEngine, TelemetrySessionManager } from './core/telemetry-engine';
8
+ export { ProviderRegistry, RateLimitError, ProviderUnavailableError, type ProviderRegistryConfig, } from './core/provider-registry';
9
+ export type { ProviderType, AgentType, TaskType, TaskOutcome, ValidationStatus, ValidationSeverity, StorageType, Plugin, PluginManifest, PluginHooks, ValidationContext, ValidationResult, ValidationViolation, StorageAdapter, FrameworkConfig, ProviderConfig, ProviderHealth, TaskContext, ExecutionResult, CostEstimate, } from './types';
10
+ export type { TelemetrySession, TelemetryMetrics, ViolationRecord, HandoffRecord, AgentStats, ComparisonStats, HandoffPatterns, } from './types/telemetry';
11
+ export { PluginLoader, PluginLoadError, PluginValidationError, getGlobalPluginLoader, resetGlobalPluginLoader, type PluginLoaderConfig, } from './plugins/plugin-loader';
12
+ export { ValidationFramework, type ValidationFrameworkConfig, type ValidationGate, type ValidationReport, } from './validation/validation-framework';
13
+ export { ConfigLoader, loadConfig, type LoaderOptions, } from './config/loader';
14
+ export { FrameworkConfigSchema, DesignTokenConfigSchema, BarrelExportConfigSchema, PageLayoutConfigSchema, TestDataConfigSchema, PluginConfigSchema, ValidationGateConfigSchema, TelemetryConfigSchema, ProviderConfigSchema, DEFAULT_CONFIG, type DesignTokenConfig, type BarrelExportConfig, type PageLayoutConfig, type TestDataConfig, type Severity, type FailureMode, } from './config/schema';
15
+ export { createStorageAdapter, MemoryStorageAdapter, FileStorageAdapter } from './utils/storage';
16
+ export declare const VERSION = "1.0.0";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,kBAAkB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGjG,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * DCYFR AI Framework - Main Entry Point
3
+ *
4
+ * Portable AI agent framework with plugin architecture
5
+ * @module @dcyfr/ai
6
+ */
7
+ // Core exports
8
+ export { TelemetryEngine, TelemetrySessionManager } from './core/telemetry-engine';
9
+ export { ProviderRegistry, RateLimitError, ProviderUnavailableError, } from './core/provider-registry';
10
+ // Plugin system exports
11
+ export { PluginLoader, PluginLoadError, PluginValidationError, getGlobalPluginLoader, resetGlobalPluginLoader, } from './plugins/plugin-loader';
12
+ // Validation framework exports
13
+ export { ValidationFramework, } from './validation/validation-framework';
14
+ // Configuration system exports
15
+ export { ConfigLoader, loadConfig, } from './config/loader';
16
+ export { FrameworkConfigSchema, DesignTokenConfigSchema, BarrelExportConfigSchema, PageLayoutConfigSchema, TestDataConfigSchema, PluginConfigSchema, ValidationGateConfigSchema, TelemetryConfigSchema, ProviderConfigSchema, DEFAULT_CONFIG, } from './config/schema';
17
+ // Utility exports
18
+ export { createStorageAdapter, MemoryStorageAdapter, FileStorageAdapter } from './utils/storage';
19
+ // Version
20
+ export const VERSION = '1.0.0';
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../packages/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAe;AACf,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GAEzB,MAAM,0BAA0B,CAAC;AAqClC,wBAAwB;AACxB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AAEjC,+BAA+B;AAC/B,OAAO,EACL,mBAAmB,GAIpB,MAAM,mCAAmC,CAAC;AAE3C,+BAA+B;AAC/B,OAAO,EACL,YAAY,EACZ,UAAU,GAEX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GAOf,MAAM,iBAAiB,CAAC;AAEzB,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEjG,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Plugin Loader - Dynamic plugin loading and lifecycle management
3
+ *
4
+ * Handles loading, validation, and execution of plugins with manifest validation
5
+ * and error isolation.
6
+ *
7
+ * @module @dcyfr/ai/plugins/plugin-loader
8
+ * @example
9
+ * ```typescript
10
+ * import { PluginLoader } from '@dcyfr/ai/plugins/plugin-loader';
11
+ *
12
+ * const loader = new PluginLoader();
13
+ *
14
+ * // Load a plugin
15
+ * await loader.loadPlugin('@dcyfr/agents/design-token-validator');
16
+ *
17
+ * // Execute plugin validation
18
+ * const result = await loader.validateAll({
19
+ * projectRoot: '/path/to/project',
20
+ * files: ['src/app.ts'],
21
+ * config: {},
22
+ * });
23
+ * ```
24
+ */
25
+ import type { Plugin, PluginManifest, ValidationContext, ValidationResult } from '../types';
26
+ /**
27
+ * Plugin load error
28
+ */
29
+ export declare class PluginLoadError extends Error {
30
+ pluginName: string;
31
+ cause?: Error | undefined;
32
+ constructor(message: string, pluginName: string, cause?: Error | undefined);
33
+ }
34
+ /**
35
+ * Plugin validation error
36
+ */
37
+ export declare class PluginValidationError extends Error {
38
+ pluginName: string;
39
+ constructor(message: string, pluginName: string);
40
+ }
41
+ /**
42
+ * Plugin loader configuration
43
+ */
44
+ export interface PluginLoaderConfig {
45
+ autoLoad?: boolean;
46
+ failureMode?: 'throw' | 'warn' | 'silent';
47
+ timeout?: number;
48
+ }
49
+ /**
50
+ * Loaded plugin wrapper
51
+ */
52
+ interface LoadedPlugin {
53
+ name: string;
54
+ manifest: PluginManifest;
55
+ plugin: Plugin;
56
+ loaded: Date;
57
+ enabled: boolean;
58
+ }
59
+ /**
60
+ * Plugin Loader - manages plugin lifecycle
61
+ */
62
+ export declare class PluginLoader {
63
+ private plugins;
64
+ private config;
65
+ constructor(config?: PluginLoaderConfig);
66
+ /**
67
+ * Load a plugin by module path or object
68
+ */
69
+ loadPlugin(pluginPath: string | Plugin): Promise<void>;
70
+ /**
71
+ * Load multiple plugins
72
+ */
73
+ loadPlugins(plugins: (string | Plugin)[]): Promise<void>;
74
+ /**
75
+ * Unload a plugin
76
+ */
77
+ unloadPlugin(pluginName: string): Promise<void>;
78
+ /**
79
+ * Enable a plugin
80
+ */
81
+ enablePlugin(pluginName: string): void;
82
+ /**
83
+ * Disable a plugin
84
+ */
85
+ disablePlugin(pluginName: string): void;
86
+ /**
87
+ * Validate all enabled plugins
88
+ */
89
+ validateAll(context: ValidationContext): Promise<ValidationResult>;
90
+ /**
91
+ * Validate with specific plugins
92
+ */
93
+ validateWith(pluginNames: string[], context: ValidationContext): Promise<ValidationResult>;
94
+ /**
95
+ * Get loaded plugin info
96
+ */
97
+ getPlugin(name: string): LoadedPlugin | undefined;
98
+ /**
99
+ * Get all loaded plugins
100
+ */
101
+ getPlugins(): LoadedPlugin[];
102
+ /**
103
+ * Get plugin count
104
+ */
105
+ getPluginCount(): number;
106
+ /**
107
+ * Clear all plugins
108
+ */
109
+ clearAll(): Promise<void>;
110
+ /**
111
+ * Validate plugin manifest
112
+ */
113
+ private validateManifest;
114
+ /**
115
+ * Execute function with timeout
116
+ */
117
+ private executeWithTimeout;
118
+ /**
119
+ * Merge multiple validation results
120
+ */
121
+ private mergeResults;
122
+ }
123
+ /**
124
+ * Get or create global plugin loader
125
+ */
126
+ export declare function getGlobalPluginLoader(config?: PluginLoaderConfig): PluginLoader;
127
+ /**
128
+ * Reset global plugin loader
129
+ */
130
+ export declare function resetGlobalPluginLoader(): void;
131
+ export {};
132
+ //# sourceMappingURL=plugin-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../../packages/ai/plugins/plugin-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5F;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACJ,UAAU,EAAE,MAAM;IAAS,KAAK,CAAC,EAAE,KAAK;gBAAhE,OAAO,EAAE,MAAM,EAAS,UAAU,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,KAAK,YAAA;CAI7E;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IACV,UAAU,EAAE,MAAM;gBAA1C,OAAO,EAAE,MAAM,EAAS,UAAU,EAAE,MAAM;CAIvD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,GAAE,kBAAuB;IAS3C;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D5D;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrD;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQtC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQvC;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmCxE;;OAEG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC;IA2C5B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;YACW,kBAAkB;IAahC;;OAEG;IACH,OAAO,CAAC,YAAY;CAwBrB;AAOD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAK/E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}