@defai.digital/agent-domain 13.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 (77) hide show
  1. package/LICENSE +214 -0
  2. package/dist/enhanced-executor.d.ts +170 -0
  3. package/dist/enhanced-executor.d.ts.map +1 -0
  4. package/dist/enhanced-executor.js +1072 -0
  5. package/dist/enhanced-executor.js.map +1 -0
  6. package/dist/executor.d.ts +120 -0
  7. package/dist/executor.d.ts.map +1 -0
  8. package/dist/executor.js +929 -0
  9. package/dist/executor.js.map +1 -0
  10. package/dist/index.d.ts +25 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +34 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/loader.d.ts +50 -0
  15. package/dist/loader.d.ts.map +1 -0
  16. package/dist/loader.js +160 -0
  17. package/dist/loader.js.map +1 -0
  18. package/dist/persistent-registry.d.ts +105 -0
  19. package/dist/persistent-registry.d.ts.map +1 -0
  20. package/dist/persistent-registry.js +183 -0
  21. package/dist/persistent-registry.js.map +1 -0
  22. package/dist/production-factories.d.ts +70 -0
  23. package/dist/production-factories.d.ts.map +1 -0
  24. package/dist/production-factories.js +434 -0
  25. package/dist/production-factories.js.map +1 -0
  26. package/dist/prompt-executor.d.ts +119 -0
  27. package/dist/prompt-executor.d.ts.map +1 -0
  28. package/dist/prompt-executor.js +211 -0
  29. package/dist/prompt-executor.js.map +1 -0
  30. package/dist/registry.d.ts +57 -0
  31. package/dist/registry.d.ts.map +1 -0
  32. package/dist/registry.js +123 -0
  33. package/dist/registry.js.map +1 -0
  34. package/dist/selection-service.d.ts +74 -0
  35. package/dist/selection-service.d.ts.map +1 -0
  36. package/dist/selection-service.js +322 -0
  37. package/dist/selection-service.js.map +1 -0
  38. package/dist/selector.d.ts +51 -0
  39. package/dist/selector.d.ts.map +1 -0
  40. package/dist/selector.js +249 -0
  41. package/dist/selector.js.map +1 -0
  42. package/dist/stub-checkpoint.d.ts +23 -0
  43. package/dist/stub-checkpoint.d.ts.map +1 -0
  44. package/dist/stub-checkpoint.js +137 -0
  45. package/dist/stub-checkpoint.js.map +1 -0
  46. package/dist/stub-delegation-tracker.d.ts +25 -0
  47. package/dist/stub-delegation-tracker.d.ts.map +1 -0
  48. package/dist/stub-delegation-tracker.js +118 -0
  49. package/dist/stub-delegation-tracker.js.map +1 -0
  50. package/dist/stub-parallel-executor.d.ts +19 -0
  51. package/dist/stub-parallel-executor.d.ts.map +1 -0
  52. package/dist/stub-parallel-executor.js +176 -0
  53. package/dist/stub-parallel-executor.js.map +1 -0
  54. package/dist/types.d.ts +614 -0
  55. package/dist/types.d.ts.map +1 -0
  56. package/dist/types.js +15 -0
  57. package/dist/types.js.map +1 -0
  58. package/dist/workflow-templates.d.ts +117 -0
  59. package/dist/workflow-templates.d.ts.map +1 -0
  60. package/dist/workflow-templates.js +342 -0
  61. package/dist/workflow-templates.js.map +1 -0
  62. package/package.json +51 -0
  63. package/src/enhanced-executor.ts +1395 -0
  64. package/src/executor.ts +1153 -0
  65. package/src/index.ts +172 -0
  66. package/src/loader.ts +191 -0
  67. package/src/persistent-registry.ts +235 -0
  68. package/src/production-factories.ts +613 -0
  69. package/src/prompt-executor.ts +310 -0
  70. package/src/registry.ts +167 -0
  71. package/src/selection-service.ts +411 -0
  72. package/src/selector.ts +299 -0
  73. package/src/stub-checkpoint.ts +187 -0
  74. package/src/stub-delegation-tracker.ts +161 -0
  75. package/src/stub-parallel-executor.ts +224 -0
  76. package/src/types.ts +784 -0
  77. package/src/workflow-templates.ts +393 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistent-registry.js","sourceRoot":"","sources":["../src/persistent-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Production Factory Implementations
3
+ *
4
+ * Provides real implementations of checkpoint, delegation, and parallel execution
5
+ * factories for production use. These wire together the various domain packages.
6
+ *
7
+ * Usage:
8
+ * ```typescript
9
+ * import { createProductionFactories } from '@defai.digital/agent-domain';
10
+ *
11
+ * const factories = createProductionFactories({
12
+ * checkpointStorage: sqliteCheckpointStorage,
13
+ * // ... other config
14
+ * });
15
+ *
16
+ * const executor = createEnhancedAgentExecutor(registry, {
17
+ * ...factories,
18
+ * // ... other config
19
+ * });
20
+ * ```
21
+ */
22
+ import type { CheckpointConfig, ParallelExecutionConfig } from '@defai.digital/contracts';
23
+ import type { CheckpointStoragePort, CheckpointStorageFactory, CheckpointManagerFactory, DelegationTrackerFactory, ParallelExecutorFactory } from './types.js';
24
+ /**
25
+ * Create a production checkpoint storage factory
26
+ */
27
+ export declare function createCheckpointStorageFactory(storage: CheckpointStoragePort): CheckpointStorageFactory;
28
+ /**
29
+ * Create a production checkpoint manager factory
30
+ */
31
+ export declare function createCheckpointManagerFactory(): CheckpointManagerFactory;
32
+ /**
33
+ * Create a production delegation tracker factory
34
+ */
35
+ export declare function createDelegationTrackerFactory(): DelegationTrackerFactory;
36
+ /**
37
+ * Create a production parallel executor factory
38
+ */
39
+ export declare function createParallelExecutorFactory(): ParallelExecutorFactory;
40
+ /**
41
+ * Configuration for production factories
42
+ */
43
+ export interface ProductionFactoriesConfig {
44
+ /** Checkpoint storage implementation */
45
+ checkpointStorage?: CheckpointStoragePort;
46
+ /** Checkpoint config overrides */
47
+ checkpointConfig?: Partial<CheckpointConfig>;
48
+ /** Parallel execution config overrides */
49
+ parallelConfig?: Partial<ParallelExecutionConfig>;
50
+ /** Maximum delegation depth */
51
+ maxDelegationDepth?: number;
52
+ }
53
+ /**
54
+ * Production factories result
55
+ */
56
+ export interface ProductionFactories {
57
+ checkpointStorageFactory?: CheckpointStorageFactory;
58
+ checkpointManagerFactory: CheckpointManagerFactory;
59
+ delegationTrackerFactory: DelegationTrackerFactory;
60
+ parallelExecutorFactory: ParallelExecutorFactory;
61
+ checkpointConfig?: Partial<CheckpointConfig>;
62
+ parallelConfig?: Partial<ParallelExecutionConfig>;
63
+ }
64
+ /**
65
+ * Create all production factories
66
+ *
67
+ * This is the main entry point for wiring real implementations.
68
+ */
69
+ export declare function createProductionFactories(config?: ProductionFactoriesConfig): ProductionFactories;
70
+ //# sourceMappingURL=production-factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-factories.d.ts","sourceRoot":"","sources":["../src/production-factories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAE1F,OAAO,KAAK,EACV,qBAAqB,EAErB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EAGxB,uBAAuB,EAExB,MAAM,YAAY,CAAC;AA4dpB;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,qBAAqB,GAC7B,wBAAwB,CAE1B;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,wBAAwB,CAOzE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,wBAAwB,CAMzE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,uBAAuB,CAMvE;AAMD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClD,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,GAAE,yBAA8B,GACrC,mBAAmB,CAsBrB"}
@@ -0,0 +1,434 @@
1
+ /**
2
+ * Production Factory Implementations
3
+ *
4
+ * Provides real implementations of checkpoint, delegation, and parallel execution
5
+ * factories for production use. These wire together the various domain packages.
6
+ *
7
+ * Usage:
8
+ * ```typescript
9
+ * import { createProductionFactories } from '@defai.digital/agent-domain';
10
+ *
11
+ * const factories = createProductionFactories({
12
+ * checkpointStorage: sqliteCheckpointStorage,
13
+ * // ... other config
14
+ * });
15
+ *
16
+ * const executor = createEnhancedAgentExecutor(registry, {
17
+ * ...factories,
18
+ * // ... other config
19
+ * });
20
+ * ```
21
+ */
22
+ import { createDefaultParallelExecutionConfig } from '@defai.digital/contracts';
23
+ // ============================================================================
24
+ // Production Checkpoint Manager
25
+ // ============================================================================
26
+ /**
27
+ * Production checkpoint manager implementation
28
+ *
29
+ * INV-CP-001: Checkpoint contains all data needed to resume
30
+ * INV-CP-002: Resumed execution starts from step after checkpoint
31
+ */
32
+ class ProductionCheckpointManager {
33
+ agentId;
34
+ sessionId;
35
+ storage;
36
+ config;
37
+ checkpointCount = 0;
38
+ constructor(agentId, sessionId, storage, config) {
39
+ this.agentId = agentId;
40
+ this.sessionId = sessionId;
41
+ this.storage = storage;
42
+ this.config = config;
43
+ }
44
+ getConfig() {
45
+ return { ...this.config };
46
+ }
47
+ shouldCheckpoint(stepIndex) {
48
+ if (!this.config.enabled)
49
+ return false;
50
+ if (this.config.intervalSteps === 0)
51
+ return true;
52
+ return stepIndex % this.config.intervalSteps === 0;
53
+ }
54
+ async createCheckpoint(stepIndex, stepId, previousOutputs, metadata) {
55
+ const now = new Date();
56
+ const expiresAt = new Date(now.getTime() + this.config.retentionHours * 60 * 60 * 1000);
57
+ // INV-CP-001: Checkpoint contains all data needed to resume
58
+ const checkpoint = {
59
+ checkpointId: crypto.randomUUID(),
60
+ agentId: this.agentId,
61
+ sessionId: this.sessionId,
62
+ stepIndex,
63
+ stepId,
64
+ previousOutputs,
65
+ metadata,
66
+ createdAt: now.toISOString(),
67
+ expiresAt: expiresAt.toISOString(),
68
+ };
69
+ await this.storage.save(checkpoint);
70
+ this.checkpointCount++;
71
+ // Enforce max checkpoints
72
+ if (this.checkpointCount > this.config.maxCheckpoints) {
73
+ const allCheckpoints = await this.storage.list(this.agentId, this.sessionId);
74
+ const toDelete = allCheckpoints.slice(this.config.maxCheckpoints);
75
+ for (const cp of toDelete) {
76
+ await this.storage.delete(cp.checkpointId);
77
+ }
78
+ this.checkpointCount = this.config.maxCheckpoints;
79
+ }
80
+ return checkpoint;
81
+ }
82
+ async getLatestCheckpoint() {
83
+ return this.storage.loadLatest(this.agentId, this.sessionId);
84
+ }
85
+ async getResumeContext(checkpointId) {
86
+ const checkpoint = await this.storage.load(checkpointId);
87
+ if (!checkpoint) {
88
+ return null;
89
+ }
90
+ // Check if expired
91
+ if (checkpoint.expiresAt) {
92
+ const expiresAt = new Date(checkpoint.expiresAt).getTime();
93
+ if (expiresAt < Date.now()) {
94
+ await this.storage.delete(checkpointId);
95
+ return null;
96
+ }
97
+ }
98
+ // INV-CP-002: Resumed execution starts from step after checkpoint
99
+ return {
100
+ startFromStep: checkpoint.stepIndex + 1,
101
+ previousOutputs: checkpoint.previousOutputs,
102
+ };
103
+ }
104
+ async cleanup() {
105
+ return this.storage.deleteExpired();
106
+ }
107
+ }
108
+ // ============================================================================
109
+ // Production Delegation Tracker
110
+ // ============================================================================
111
+ /**
112
+ * Production delegation tracker implementation
113
+ *
114
+ * INV-DT-001: Maximum delegation depth enforced
115
+ * INV-DT-002: Circular delegations prevented
116
+ */
117
+ class ProductionDelegationTracker {
118
+ agentId;
119
+ context;
120
+ maxDepth;
121
+ history = [];
122
+ rootTaskId;
123
+ constructor(agentId, parentContext, maxDepth) {
124
+ this.agentId = agentId;
125
+ this.maxDepth = maxDepth;
126
+ if (parentContext) {
127
+ this.rootTaskId = parentContext.rootTaskId;
128
+ this.context = {
129
+ initiatorAgentId: parentContext.initiatorAgentId,
130
+ rootTaskId: parentContext.rootTaskId,
131
+ currentDepth: parentContext.currentDepth + 1,
132
+ delegationChain: [...parentContext.delegationChain, agentId],
133
+ maxDepth: parentContext.maxDepth,
134
+ startedAt: parentContext.startedAt,
135
+ };
136
+ }
137
+ else {
138
+ this.rootTaskId = crypto.randomUUID();
139
+ this.context = {
140
+ initiatorAgentId: agentId,
141
+ rootTaskId: this.rootTaskId,
142
+ currentDepth: 0,
143
+ delegationChain: [agentId],
144
+ maxDepth,
145
+ startedAt: new Date().toISOString(),
146
+ };
147
+ }
148
+ }
149
+ getContext() {
150
+ return { ...this.context };
151
+ }
152
+ canDelegate(toAgentId) {
153
+ // INV-DT-001: Check depth limit
154
+ if (this.context.currentDepth >= this.maxDepth) {
155
+ return {
156
+ allowed: false,
157
+ reason: 'MAX_DEPTH_EXCEEDED',
158
+ message: `Maximum delegation depth (${this.maxDepth}) exceeded`,
159
+ };
160
+ }
161
+ // INV-DT-002: Check for circular delegation
162
+ if (this.context.delegationChain.includes(toAgentId)) {
163
+ return {
164
+ allowed: false,
165
+ reason: 'CIRCULAR_DELEGATION',
166
+ message: `Circular delegation detected: ${this.context.delegationChain.join(' -> ')} -> ${toAgentId}`,
167
+ };
168
+ }
169
+ return {
170
+ allowed: true,
171
+ };
172
+ }
173
+ createDelegationRequest(toAgentId, task, input, timeout) {
174
+ const check = this.canDelegate(toAgentId);
175
+ if (!check.allowed) {
176
+ return null;
177
+ }
178
+ return {
179
+ fromAgentId: this.agentId,
180
+ toAgentId,
181
+ task,
182
+ input,
183
+ timeout,
184
+ context: this.context,
185
+ };
186
+ }
187
+ createChildContext(toAgentId) {
188
+ return {
189
+ initiatorAgentId: this.context.initiatorAgentId,
190
+ rootTaskId: this.context.rootTaskId,
191
+ currentDepth: this.context.currentDepth + 1,
192
+ delegationChain: [...this.context.delegationChain, toAgentId],
193
+ maxDepth: this.context.maxDepth,
194
+ startedAt: this.context.startedAt,
195
+ };
196
+ }
197
+ recordResult(result) {
198
+ this.history.push(result);
199
+ }
200
+ getHistory() {
201
+ return [...this.history];
202
+ }
203
+ isRoot() {
204
+ return this.context.currentDepth === 0;
205
+ }
206
+ getRemainingDepth() {
207
+ return this.maxDepth - this.context.currentDepth;
208
+ }
209
+ }
210
+ /**
211
+ * Production parallel executor implementation
212
+ *
213
+ * INV-PE-001: Independent steps execute concurrently
214
+ * INV-PE-002: Dependencies honored (DAG ordering)
215
+ * INV-PE-003: Concurrency limit respected
216
+ */
217
+ class ProductionParallelExecutor {
218
+ config;
219
+ cancelled = false;
220
+ constructor(config) {
221
+ this.config = config;
222
+ }
223
+ getConfig() {
224
+ return { ...this.config };
225
+ }
226
+ async executeGroup(steps, executor, previousOutputs = {}) {
227
+ this.cancelled = false;
228
+ const startTime = Date.now();
229
+ const results = [];
230
+ const outputs = { ...previousOutputs };
231
+ if (!this.config.enabled) {
232
+ // Sequential execution
233
+ for (const step of steps) {
234
+ if (this.cancelled) {
235
+ results.push(this.createCancelledResult(step.stepId));
236
+ continue;
237
+ }
238
+ const stepResult = await this.executeStep(step, executor, outputs);
239
+ results.push(stepResult);
240
+ if (stepResult.success && stepResult.output !== undefined) {
241
+ outputs[step.stepId] = stepResult.output;
242
+ }
243
+ // Handle failure strategy
244
+ if (!stepResult.success && this.config.failureStrategy === 'failFast') {
245
+ break;
246
+ }
247
+ }
248
+ }
249
+ else {
250
+ // Parallel execution with DAG ordering
251
+ // INV-PE-002: Dependencies honored
252
+ const layers = this.buildExecutionLayers(steps);
253
+ for (const layer of layers) {
254
+ if (this.cancelled) {
255
+ for (const step of layer) {
256
+ results.push(this.createCancelledResult(step.stepId));
257
+ }
258
+ continue;
259
+ }
260
+ // INV-PE-001: Independent steps execute concurrently
261
+ // INV-PE-003: Concurrency limit respected
262
+ const layerResults = await this.executeLayer(layer, executor, outputs);
263
+ results.push(...layerResults);
264
+ // Collect outputs
265
+ for (const result of layerResults) {
266
+ if (result.success && result.output !== undefined) {
267
+ outputs[result.stepId] = result.output;
268
+ }
269
+ }
270
+ // Handle failure strategy
271
+ if (this.config.failureStrategy === 'failFast') {
272
+ if (layerResults.some((r) => !r.success)) {
273
+ break;
274
+ }
275
+ }
276
+ }
277
+ }
278
+ const failedCount = results.filter((r) => !r.success && !r.cancelled).length;
279
+ const cancelledCount = results.filter((r) => r.cancelled).length;
280
+ return {
281
+ stepResults: results,
282
+ totalDurationMs: Date.now() - startTime,
283
+ allSucceeded: failedCount === 0 && cancelledCount === 0,
284
+ failedCount,
285
+ cancelledCount,
286
+ };
287
+ }
288
+ buildExecutionLayers(steps) {
289
+ const layers = [];
290
+ const completed = new Set();
291
+ const remaining = [...steps];
292
+ // Guard against infinite loops with max iteration limit
293
+ const maxIterations = steps.length + 1;
294
+ let iterations = 0;
295
+ while (remaining.length > 0 && iterations < maxIterations) {
296
+ iterations++;
297
+ const layer = [];
298
+ const toRemove = [];
299
+ for (let i = 0; i < remaining.length; i++) {
300
+ const step = remaining[i];
301
+ if (!step)
302
+ continue;
303
+ const deps = step.dependencies ?? [];
304
+ // Check if all dependencies are completed
305
+ if (deps.every((d) => completed.has(d))) {
306
+ layer.push(step);
307
+ toRemove.push(i);
308
+ }
309
+ }
310
+ // Remove processed steps
311
+ for (let i = toRemove.length - 1; i >= 0; i--) {
312
+ const idx = toRemove[i];
313
+ if (idx !== undefined) {
314
+ remaining.splice(idx, 1);
315
+ }
316
+ }
317
+ if (layer.length === 0 && remaining.length > 0) {
318
+ // Circular dependency or unresolvable - add remaining as single layer
319
+ const unresolvableSteps = remaining.map((s) => s.stepId).join(', ');
320
+ console.warn(`[buildExecutionLayers] Circular or unresolvable dependencies detected. ` +
321
+ `Unresolvable steps: ${unresolvableSteps}`);
322
+ layers.push(remaining);
323
+ break;
324
+ }
325
+ if (layer.length > 0) {
326
+ layers.push(layer);
327
+ for (const step of layer) {
328
+ completed.add(step.stepId);
329
+ }
330
+ }
331
+ }
332
+ if (iterations >= maxIterations) {
333
+ console.error(`[buildExecutionLayers] Max iterations (${maxIterations}) reached. ` +
334
+ `This indicates a bug in the algorithm or malformed input.`);
335
+ }
336
+ return layers;
337
+ }
338
+ cancel() {
339
+ this.cancelled = true;
340
+ }
341
+ async executeLayer(layer, executor, outputs) {
342
+ // INV-PE-003: Respect concurrency limit
343
+ const concurrency = this.config.maxConcurrency;
344
+ const results = [];
345
+ for (let i = 0; i < layer.length; i += concurrency) {
346
+ const batch = layer.slice(i, i + concurrency);
347
+ const batchPromises = batch.map((step) => this.executeStep(step, executor, outputs));
348
+ const batchResults = await Promise.all(batchPromises);
349
+ results.push(...batchResults);
350
+ }
351
+ return results;
352
+ }
353
+ async executeStep(step, executor, outputs) {
354
+ const startTime = Date.now();
355
+ try {
356
+ const output = await executor(step, outputs);
357
+ return {
358
+ stepId: step.stepId,
359
+ success: true,
360
+ output,
361
+ durationMs: Date.now() - startTime,
362
+ };
363
+ }
364
+ catch (error) {
365
+ return {
366
+ stepId: step.stepId,
367
+ success: false,
368
+ error: error instanceof Error ? error.message : 'Unknown error',
369
+ durationMs: Date.now() - startTime,
370
+ };
371
+ }
372
+ }
373
+ createCancelledResult(stepId) {
374
+ return {
375
+ stepId,
376
+ success: false,
377
+ cancelled: true,
378
+ durationMs: 0,
379
+ };
380
+ }
381
+ }
382
+ // ============================================================================
383
+ // Factory Functions
384
+ // ============================================================================
385
+ /**
386
+ * Create a production checkpoint storage factory
387
+ */
388
+ export function createCheckpointStorageFactory(storage) {
389
+ return () => storage;
390
+ }
391
+ /**
392
+ * Create a production checkpoint manager factory
393
+ */
394
+ export function createCheckpointManagerFactory() {
395
+ return (agentId, sessionId, storage, config) => new ProductionCheckpointManager(agentId, sessionId, storage, config);
396
+ }
397
+ /**
398
+ * Create a production delegation tracker factory
399
+ */
400
+ export function createDelegationTrackerFactory() {
401
+ return (agentId, parentContext, maxDepth) => new ProductionDelegationTracker(agentId, parentContext, maxDepth);
402
+ }
403
+ /**
404
+ * Create a production parallel executor factory
405
+ */
406
+ export function createParallelExecutorFactory() {
407
+ return (config) => new ProductionParallelExecutor({
408
+ ...createDefaultParallelExecutionConfig(),
409
+ ...config,
410
+ });
411
+ }
412
+ /**
413
+ * Create all production factories
414
+ *
415
+ * This is the main entry point for wiring real implementations.
416
+ */
417
+ export function createProductionFactories(config = {}) {
418
+ const factories = {
419
+ checkpointManagerFactory: createCheckpointManagerFactory(),
420
+ delegationTrackerFactory: createDelegationTrackerFactory(),
421
+ parallelExecutorFactory: createParallelExecutorFactory(),
422
+ };
423
+ if (config.checkpointStorage) {
424
+ factories.checkpointStorageFactory = createCheckpointStorageFactory(config.checkpointStorage);
425
+ }
426
+ if (config.checkpointConfig) {
427
+ factories.checkpointConfig = config.checkpointConfig;
428
+ }
429
+ if (config.parallelConfig) {
430
+ factories.parallelConfig = config.parallelConfig;
431
+ }
432
+ return factories;
433
+ }
434
+ //# sourceMappingURL=production-factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-factories.js","sourceRoot":"","sources":["../src/production-factories.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Prompt Executor Implementation
3
+ *
4
+ * Bridges the agent domain with LLM providers for real prompt execution.
5
+ * This file provides both a stub executor for testing and a factory
6
+ * for creating real executors with provider integration.
7
+ */
8
+ import type { PromptExecutor, PromptExecutionRequest, PromptExecutionResponse } from './types.js';
9
+ /**
10
+ * Stub prompt executor for testing and development
11
+ * Returns mock responses without calling real providers
12
+ *
13
+ * WARNING: This executor returns fake responses. For production use,
14
+ * inject a real PromptExecutor via config.promptExecutor.
15
+ */
16
+ export declare class StubPromptExecutor implements PromptExecutor {
17
+ private readonly defaultProvider;
18
+ private hasWarnedOnce;
19
+ constructor(defaultProvider?: string);
20
+ execute(request: PromptExecutionRequest): Promise<PromptExecutionResponse>;
21
+ isProviderAvailable(_providerId: string): Promise<boolean>;
22
+ getAvailableProviders(): Promise<string[]>;
23
+ getDefaultProvider(): string;
24
+ }
25
+ /**
26
+ * Provider-based prompt executor configuration
27
+ */
28
+ export interface ProviderPromptExecutorConfig {
29
+ /**
30
+ * Default provider to use when none specified
31
+ */
32
+ defaultProvider: string;
33
+ /**
34
+ * Default model to use when none specified (per provider)
35
+ */
36
+ defaultModels?: Record<string, string>;
37
+ /**
38
+ * Default timeout in milliseconds
39
+ */
40
+ defaultTimeout?: number;
41
+ }
42
+ /**
43
+ * Interface that matches the provider registry from @defai.digital/providers
44
+ * This allows loose coupling without direct dependency
45
+ */
46
+ export interface ProviderRegistryLike {
47
+ get(providerId: string): ProviderLike | undefined;
48
+ getProviderIds(): string[];
49
+ }
50
+ /**
51
+ * Interface that matches a provider from @defai.digital/providers
52
+ */
53
+ export interface ProviderLike {
54
+ providerId: string;
55
+ complete(request: {
56
+ requestId: string;
57
+ model: string;
58
+ messages: {
59
+ role: 'user' | 'assistant' | 'system';
60
+ content: string;
61
+ }[];
62
+ systemPrompt?: string;
63
+ maxTokens?: number;
64
+ temperature?: number;
65
+ timeout?: number;
66
+ }): Promise<{
67
+ success: boolean;
68
+ content?: string;
69
+ error?: {
70
+ message: string;
71
+ category: string;
72
+ };
73
+ latencyMs: number;
74
+ usage?: {
75
+ inputTokens: number;
76
+ outputTokens: number;
77
+ totalTokens: number;
78
+ };
79
+ model?: string;
80
+ }>;
81
+ isAvailable(): Promise<boolean>;
82
+ getModels(): readonly {
83
+ modelId: string;
84
+ isDefault?: boolean | undefined;
85
+ }[];
86
+ }
87
+ /**
88
+ * Real prompt executor that uses the provider registry
89
+ */
90
+ export declare class ProviderPromptExecutor implements PromptExecutor {
91
+ private readonly registry;
92
+ private readonly config;
93
+ constructor(registry: ProviderRegistryLike, config: ProviderPromptExecutorConfig);
94
+ execute(request: PromptExecutionRequest): Promise<PromptExecutionResponse>;
95
+ isProviderAvailable(providerId: string): Promise<boolean>;
96
+ getAvailableProviders(): Promise<string[]>;
97
+ getDefaultProvider(): string;
98
+ }
99
+ /**
100
+ * Creates a stub prompt executor for testing
101
+ */
102
+ export declare function createStubPromptExecutor(defaultProvider?: string): PromptExecutor;
103
+ /**
104
+ * Creates a real prompt executor using a provider registry
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * import { createProviderRegistry } from '@defai.digital/providers';
109
+ * import { createProviderPromptExecutor } from '@defai.digital/agent-domain';
110
+ *
111
+ * const registry = createProviderRegistry();
112
+ * const executor = createProviderPromptExecutor(registry, {
113
+ * defaultProvider: 'claude',
114
+ * defaultTimeout: 120000,
115
+ * });
116
+ * ```
117
+ */
118
+ export declare function createProviderPromptExecutor(registry: ProviderRegistryLike, config: ProviderPromptExecutorConfig): PromptExecutor;
119
+ //# sourceMappingURL=prompt-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-executor.d.ts","sourceRoot":"","sources":["../src/prompt-executor.ts"],"names":[],"mappings":"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"}