devteam-sdk 0.1.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.
@@ -0,0 +1,362 @@
1
+ import { z } from 'zod';
2
+ export type ModelId = 'opus' | 'sonnet' | 'haiku' | 'gpt-4o' | 'gpt-4o-mini' | 'deepseek-r1' | 'gemini-2.5-pro' | 'llama-4-maverick' | (string & {});
3
+ export type TaskPriority = 'critical' | 'high' | 'normal' | 'low';
4
+ export type TaskState = 'pending' | 'queued' | 'running' | 'awaiting_approval' | 'completed' | 'failed' | 'cancelled' | 'timed_out';
5
+ export type ApprovalDecision = 'approve' | 'reject' | 'modify';
6
+ export interface TaskInput {
7
+ /** The prompt / instruction sent to the AI agent. */
8
+ prompt: string;
9
+ /** Which LLM model to route the task to. */
10
+ model?: ModelId;
11
+ /** Temporal task queue name (maps to a worker pool). */
12
+ queue?: string;
13
+ /** Task priority for scheduling. Default: 'normal'. */
14
+ priority?: TaskPriority;
15
+ /** Timeout in seconds for this individual task. Default: 300. */
16
+ timeoutSeconds?: number;
17
+ /** Arbitrary key-value metadata attached to the task. */
18
+ metadata?: Record<string, unknown>;
19
+ /** Require human-in-the-loop approval before execution. */
20
+ requireApproval?: boolean;
21
+ /** IDs of tasks that must complete before this one starts. */
22
+ dependsOn?: string[];
23
+ /** File paths or URLs to include as context for the agent. */
24
+ attachments?: string[];
25
+ /** Retry policy override. */
26
+ retry?: RetryPolicy;
27
+ }
28
+ export interface RetryPolicy {
29
+ /** Max number of retry attempts. Default: 3. */
30
+ maxAttempts?: number;
31
+ /** Initial backoff duration in milliseconds. Default: 1000. */
32
+ initialIntervalMs?: number;
33
+ /** Backoff multiplier. Default: 2. */
34
+ backoffCoefficient?: number;
35
+ /** Maximum backoff duration in milliseconds. Default: 30000. */
36
+ maxIntervalMs?: number;
37
+ }
38
+ export interface TaskResult {
39
+ /** Unique task identifier (Temporal workflow ID). */
40
+ taskId: string;
41
+ /** Current state of the task. */
42
+ status: TaskState;
43
+ /** The generated output from the AI agent. */
44
+ output?: string;
45
+ /** Structured data output (when the agent returns JSON). */
46
+ data?: Record<string, unknown>;
47
+ /** Which model actually executed the task. */
48
+ model: ModelId;
49
+ /** Which worker node processed the task. */
50
+ worker?: string;
51
+ /** Token usage breakdown. */
52
+ usage?: TokenUsage;
53
+ /** ISO 8601 timestamp when the task was created. */
54
+ createdAt: string;
55
+ /** ISO 8601 timestamp when the task completed (or failed). */
56
+ completedAt?: string;
57
+ /** Duration in milliseconds. */
58
+ durationMs?: number;
59
+ /** Error information if the task failed. */
60
+ error?: TaskError;
61
+ /** Metadata echoed back from the input. */
62
+ metadata?: Record<string, unknown>;
63
+ }
64
+ export interface TokenUsage {
65
+ inputTokens: number;
66
+ outputTokens: number;
67
+ totalTokens: number;
68
+ costUsd?: number;
69
+ }
70
+ export interface TaskError {
71
+ code: string;
72
+ message: string;
73
+ retryable: boolean;
74
+ details?: unknown;
75
+ }
76
+ export interface TaskStatus {
77
+ taskId: string;
78
+ status: TaskState;
79
+ progress?: number;
80
+ currentStep?: string;
81
+ logs?: TaskLog[];
82
+ result?: TaskResult;
83
+ }
84
+ export interface TaskLog {
85
+ timestamp: string;
86
+ level: 'debug' | 'info' | 'warn' | 'error';
87
+ message: string;
88
+ }
89
+ export interface PlanOptions {
90
+ /** Strategy for generating the plan. */
91
+ strategy?: 'sequential' | 'parallel' | 'dag' | 'auto';
92
+ /** Maximum number of subtasks the planner may create. */
93
+ maxSubtasks?: number;
94
+ /** Default model for subtasks unless overridden. */
95
+ defaultModel?: ModelId;
96
+ /** Default task queue for subtasks unless overridden. */
97
+ defaultQueue?: string;
98
+ /** Require human approval for the generated plan before execution. */
99
+ requireApproval?: boolean;
100
+ /** Additional context / constraints for the planner. */
101
+ context?: string;
102
+ }
103
+ export interface Plan {
104
+ /** Unique plan identifier. */
105
+ planId: string;
106
+ /** The original goal. */
107
+ goal: string;
108
+ /** Ordered list of subtasks forming the execution plan. */
109
+ subtasks: PlanSubtask[];
110
+ /** Estimated total duration in seconds. */
111
+ estimatedDurationSeconds?: number;
112
+ /** Estimated total cost in USD. */
113
+ estimatedCostUsd?: number;
114
+ /** ISO 8601 timestamp when the plan was created. */
115
+ createdAt: string;
116
+ /** Current plan status. */
117
+ status: 'draft' | 'approved' | 'executing' | 'completed' | 'failed';
118
+ }
119
+ export interface PlanSubtask {
120
+ /** Subtask ID (unique within the plan). */
121
+ id: string;
122
+ /** Human-readable name for this step. */
123
+ name: string;
124
+ /** The prompt that will be sent to the agent. */
125
+ prompt: string;
126
+ /** Which model to use for this subtask. */
127
+ model: ModelId;
128
+ /** Task queue for this subtask. */
129
+ queue?: string;
130
+ /** IDs of sibling subtasks that must complete first. */
131
+ dependsOn: string[];
132
+ /** Estimated duration in seconds. */
133
+ estimatedDurationSeconds?: number;
134
+ /** Current state if the plan is executing. */
135
+ status?: TaskState;
136
+ /** Result once completed. */
137
+ result?: TaskResult;
138
+ }
139
+ export interface DAGResult {
140
+ /** The plan that was executed. */
141
+ plan: Plan;
142
+ /** All results, keyed by subtask ID. */
143
+ results: Record<string, TaskResult>;
144
+ /** Overall success flag (true only if ALL subtasks succeeded). */
145
+ success: boolean;
146
+ /** Total wall-clock duration in milliseconds. */
147
+ totalDurationMs: number;
148
+ /** Aggregated token usage across all subtasks. */
149
+ totalUsage?: TokenUsage;
150
+ /** Summary generated from the combined results. */
151
+ summary?: string;
152
+ }
153
+ export interface Approval {
154
+ /** Unique approval request ID. */
155
+ approvalId: string;
156
+ /** The task awaiting approval. */
157
+ taskId: string;
158
+ /** The prompt / action that needs approval. */
159
+ description: string;
160
+ /** Which model will execute the task. */
161
+ model: ModelId;
162
+ /** Priority of the underlying task. */
163
+ priority: TaskPriority;
164
+ /** ISO 8601 timestamp when approval was requested. */
165
+ requestedAt: string;
166
+ /** ISO 8601 deadline after which the approval auto-expires. */
167
+ expiresAt?: string;
168
+ /** Metadata from the original task input. */
169
+ metadata?: Record<string, unknown>;
170
+ }
171
+ export interface Template {
172
+ /** Unique template identifier (slug). */
173
+ templateId: string;
174
+ /** Human-readable name. */
175
+ name: string;
176
+ /** What this template does. */
177
+ description: string;
178
+ /** Semver version string. */
179
+ version: string;
180
+ /** Industry vertical. */
181
+ industry: string;
182
+ /** Functional category. */
183
+ category: string;
184
+ /** Schema of required and optional inputs. */
185
+ inputSchema: Record<string, TemplateInputField>;
186
+ /** Estimated cost per execution in USD. */
187
+ estimatedCostUsd?: number;
188
+ /** Average execution time in seconds. */
189
+ avgDurationSeconds?: number;
190
+ /** Template author. */
191
+ author?: string;
192
+ /** Tags for discovery. */
193
+ tags?: string[];
194
+ }
195
+ export interface TemplateInputField {
196
+ type: 'string' | 'number' | 'boolean' | 'file' | 'array' | 'object';
197
+ description: string;
198
+ required: boolean;
199
+ default?: unknown;
200
+ }
201
+ export interface TemplateFilter {
202
+ industry?: string;
203
+ category?: string;
204
+ }
205
+ export interface Worker {
206
+ /** Worker identity (Temporal worker ID). */
207
+ workerId: string;
208
+ /** Human-readable node name. */
209
+ nodeName: string;
210
+ /** Task queue this worker polls. */
211
+ taskQueue: string;
212
+ /** Whether the worker is currently reachable. */
213
+ online: boolean;
214
+ /** Number of tasks currently being processed. */
215
+ activeTasks: number;
216
+ /** Maximum concurrent tasks this worker supports. */
217
+ maxConcurrency: number;
218
+ /** Available models on this worker. */
219
+ availableModels: ModelId[];
220
+ /** CPU usage percentage (0-100). */
221
+ cpuPercent?: number;
222
+ /** Memory usage percentage (0-100). */
223
+ memoryPercent?: number;
224
+ /** ISO 8601 timestamp of last heartbeat. */
225
+ lastHeartbeat: string;
226
+ /** Uptime in seconds. */
227
+ uptimeSeconds?: number;
228
+ }
229
+ export interface DevTeamClientOptions {
230
+ /** The DevTeam server URL (e.g. https://devteam.marsala.dev). */
231
+ serverUrl: string;
232
+ /** API key for authentication (format: dt_...). */
233
+ apiKey: string;
234
+ /** Temporal namespace. Default: 'default'. */
235
+ namespace?: string;
236
+ /** Request timeout in milliseconds. Default: 30000. */
237
+ timeoutMs?: number;
238
+ /** Enable debug logging. Default: false. */
239
+ debug?: boolean;
240
+ }
241
+ export interface ApiResponse<T> {
242
+ success: boolean;
243
+ data: T;
244
+ error?: {
245
+ code: string;
246
+ message: string;
247
+ };
248
+ requestId: string;
249
+ }
250
+ export interface PaginatedResponse<T> {
251
+ items: T[];
252
+ total: number;
253
+ page: number;
254
+ pageSize: number;
255
+ hasMore: boolean;
256
+ }
257
+ export type TaskCompleteCallback = (result: TaskResult) => void;
258
+ export interface EventSubscription {
259
+ /** Unsubscribe from the event. */
260
+ unsubscribe: () => void;
261
+ }
262
+ export declare const TaskInputSchema: z.ZodObject<{
263
+ prompt: z.ZodString;
264
+ model: z.ZodOptional<z.ZodString>;
265
+ queue: z.ZodOptional<z.ZodString>;
266
+ priority: z.ZodOptional<z.ZodEnum<["critical", "high", "normal", "low"]>>;
267
+ timeoutSeconds: z.ZodOptional<z.ZodNumber>;
268
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
269
+ requireApproval: z.ZodOptional<z.ZodBoolean>;
270
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
271
+ attachments: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
272
+ retry: z.ZodOptional<z.ZodObject<{
273
+ maxAttempts: z.ZodOptional<z.ZodNumber>;
274
+ initialIntervalMs: z.ZodOptional<z.ZodNumber>;
275
+ backoffCoefficient: z.ZodOptional<z.ZodNumber>;
276
+ maxIntervalMs: z.ZodOptional<z.ZodNumber>;
277
+ }, "strip", z.ZodTypeAny, {
278
+ maxAttempts?: number | undefined;
279
+ initialIntervalMs?: number | undefined;
280
+ backoffCoefficient?: number | undefined;
281
+ maxIntervalMs?: number | undefined;
282
+ }, {
283
+ maxAttempts?: number | undefined;
284
+ initialIntervalMs?: number | undefined;
285
+ backoffCoefficient?: number | undefined;
286
+ maxIntervalMs?: number | undefined;
287
+ }>>;
288
+ }, "strip", z.ZodTypeAny, {
289
+ prompt: string;
290
+ model?: string | undefined;
291
+ queue?: string | undefined;
292
+ priority?: "critical" | "high" | "normal" | "low" | undefined;
293
+ timeoutSeconds?: number | undefined;
294
+ metadata?: Record<string, unknown> | undefined;
295
+ requireApproval?: boolean | undefined;
296
+ dependsOn?: string[] | undefined;
297
+ attachments?: string[] | undefined;
298
+ retry?: {
299
+ maxAttempts?: number | undefined;
300
+ initialIntervalMs?: number | undefined;
301
+ backoffCoefficient?: number | undefined;
302
+ maxIntervalMs?: number | undefined;
303
+ } | undefined;
304
+ }, {
305
+ prompt: string;
306
+ model?: string | undefined;
307
+ queue?: string | undefined;
308
+ priority?: "critical" | "high" | "normal" | "low" | undefined;
309
+ timeoutSeconds?: number | undefined;
310
+ metadata?: Record<string, unknown> | undefined;
311
+ requireApproval?: boolean | undefined;
312
+ dependsOn?: string[] | undefined;
313
+ attachments?: string[] | undefined;
314
+ retry?: {
315
+ maxAttempts?: number | undefined;
316
+ initialIntervalMs?: number | undefined;
317
+ backoffCoefficient?: number | undefined;
318
+ maxIntervalMs?: number | undefined;
319
+ } | undefined;
320
+ }>;
321
+ export declare const PlanOptionsSchema: z.ZodObject<{
322
+ strategy: z.ZodOptional<z.ZodEnum<["sequential", "parallel", "dag", "auto"]>>;
323
+ maxSubtasks: z.ZodOptional<z.ZodNumber>;
324
+ defaultModel: z.ZodOptional<z.ZodString>;
325
+ defaultQueue: z.ZodOptional<z.ZodString>;
326
+ requireApproval: z.ZodOptional<z.ZodBoolean>;
327
+ context: z.ZodOptional<z.ZodString>;
328
+ }, "strip", z.ZodTypeAny, {
329
+ requireApproval?: boolean | undefined;
330
+ strategy?: "sequential" | "parallel" | "dag" | "auto" | undefined;
331
+ maxSubtasks?: number | undefined;
332
+ defaultModel?: string | undefined;
333
+ defaultQueue?: string | undefined;
334
+ context?: string | undefined;
335
+ }, {
336
+ requireApproval?: boolean | undefined;
337
+ strategy?: "sequential" | "parallel" | "dag" | "auto" | undefined;
338
+ maxSubtasks?: number | undefined;
339
+ defaultModel?: string | undefined;
340
+ defaultQueue?: string | undefined;
341
+ context?: string | undefined;
342
+ }>;
343
+ export declare const DevTeamClientOptionsSchema: z.ZodObject<{
344
+ serverUrl: z.ZodString;
345
+ apiKey: z.ZodString;
346
+ namespace: z.ZodOptional<z.ZodString>;
347
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
348
+ debug: z.ZodOptional<z.ZodBoolean>;
349
+ }, "strip", z.ZodTypeAny, {
350
+ serverUrl: string;
351
+ apiKey: string;
352
+ debug?: boolean | undefined;
353
+ namespace?: string | undefined;
354
+ timeoutMs?: number | undefined;
355
+ }, {
356
+ serverUrl: string;
357
+ apiKey: string;
358
+ debug?: boolean | undefined;
359
+ namespace?: string | undefined;
360
+ timeoutMs?: number | undefined;
361
+ }>;
362
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,39 @@
1
+ import { z } from 'zod';
2
+ // ---------------------------------------------------------------------------
3
+ // Zod schemas (runtime validation)
4
+ // ---------------------------------------------------------------------------
5
+ export const TaskInputSchema = z.object({
6
+ prompt: z.string().min(1, 'Prompt must not be empty'),
7
+ model: z.string().optional(),
8
+ queue: z.string().optional(),
9
+ priority: z.enum(['critical', 'high', 'normal', 'low']).optional(),
10
+ timeoutSeconds: z.number().positive().optional(),
11
+ metadata: z.record(z.unknown()).optional(),
12
+ requireApproval: z.boolean().optional(),
13
+ dependsOn: z.array(z.string()).optional(),
14
+ attachments: z.array(z.string()).optional(),
15
+ retry: z
16
+ .object({
17
+ maxAttempts: z.number().positive().optional(),
18
+ initialIntervalMs: z.number().positive().optional(),
19
+ backoffCoefficient: z.number().positive().optional(),
20
+ maxIntervalMs: z.number().positive().optional(),
21
+ })
22
+ .optional(),
23
+ });
24
+ export const PlanOptionsSchema = z.object({
25
+ strategy: z.enum(['sequential', 'parallel', 'dag', 'auto']).optional(),
26
+ maxSubtasks: z.number().positive().optional(),
27
+ defaultModel: z.string().optional(),
28
+ defaultQueue: z.string().optional(),
29
+ requireApproval: z.boolean().optional(),
30
+ context: z.string().optional(),
31
+ });
32
+ export const DevTeamClientOptionsSchema = z.object({
33
+ serverUrl: z.string().url('Server URL must be a valid URL'),
34
+ apiKey: z.string().min(1, 'API key must not be empty'),
35
+ namespace: z.string().optional(),
36
+ timeoutMs: z.number().positive().optional(),
37
+ debug: z.boolean().optional(),
38
+ });
39
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4VxB,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;IACrD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC7C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACnD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACpD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAChD,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { Plan, PlanSubtask, TaskInput, TaskResult, DAGResult, TokenUsage } from './types.js';
2
+ /**
3
+ * Resolves the execution order of subtasks in a plan by performing a
4
+ * topological sort on the dependency graph. Throws if a cycle is detected.
5
+ */
6
+ export declare function topologicalSort(subtasks: PlanSubtask[]): PlanSubtask[][];
7
+ /**
8
+ * Build a flat TaskInput array from a Plan, injecting dependency context
9
+ * into each prompt so the agent can reference prior results.
10
+ */
11
+ export declare function planToTaskInputs(plan: Plan, results: Map<string, TaskResult>): Map<string, TaskInput>;
12
+ /**
13
+ * Aggregate token usage across multiple results.
14
+ */
15
+ export declare function aggregateUsage(results: TaskResult[]): TokenUsage;
16
+ /**
17
+ * Check whether all subtasks in a plan have completed (success or failure).
18
+ */
19
+ export declare function isPlanComplete(plan: Plan): boolean;
20
+ /**
21
+ * Build a DAGResult from a completed plan and its results map.
22
+ */
23
+ export declare function buildDAGResult(plan: Plan, results: Map<string, TaskResult>, startTime: number): DAGResult;
24
+ /**
25
+ * Split an array of tasks into chunks for parallel execution with a
26
+ * concurrency limit.
27
+ */
28
+ export declare function chunk<T>(items: T[], size: number): T[][];
29
+ /**
30
+ * Execute async operations with a concurrency limit.
31
+ */
32
+ export declare function parallelLimit<T, R>(items: T[], limit: number, fn: (item: T) => Promise<R>): Promise<R[]>;
33
+ export interface RetryConfig {
34
+ maxAttempts: number;
35
+ initialIntervalMs: number;
36
+ backoffCoefficient: number;
37
+ maxIntervalMs: number;
38
+ }
39
+ export declare const DEFAULT_RETRY: RetryConfig;
40
+ export declare function withRetry<T>(fn: () => Promise<T>, config?: Partial<RetryConfig>): Promise<T>;
41
+ //# sourceMappingURL=workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,EAET,UAAU,EACX,MAAM,YAAY,CAAC;AAMpB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,EAAE,CAwDxE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAC/B,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAgCxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAkBhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAKlD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAChC,SAAS,EAAE,MAAM,GAChB,SAAS,CAoBX;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAMxD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,CAAC,EACtC,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,EAAE,CAAC,CAUd;AAMD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,EAAE,WAK3B,CAAC;AAEF,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAChC,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
@@ -0,0 +1,182 @@
1
+ // ---------------------------------------------------------------------------
2
+ // DAG execution helpers
3
+ // ---------------------------------------------------------------------------
4
+ /**
5
+ * Resolves the execution order of subtasks in a plan by performing a
6
+ * topological sort on the dependency graph. Throws if a cycle is detected.
7
+ */
8
+ export function topologicalSort(subtasks) {
9
+ const idSet = new Set(subtasks.map((s) => s.id));
10
+ const inDegree = new Map();
11
+ const dependents = new Map();
12
+ const byId = new Map();
13
+ for (const subtask of subtasks) {
14
+ byId.set(subtask.id, subtask);
15
+ inDegree.set(subtask.id, 0);
16
+ dependents.set(subtask.id, []);
17
+ }
18
+ for (const subtask of subtasks) {
19
+ for (const dep of subtask.dependsOn) {
20
+ if (!idSet.has(dep)) {
21
+ throw new Error(`Subtask "${subtask.id}" depends on unknown subtask "${dep}"`);
22
+ }
23
+ inDegree.set(subtask.id, (inDegree.get(subtask.id) ?? 0) + 1);
24
+ dependents.get(dep).push(subtask.id);
25
+ }
26
+ }
27
+ const layers = [];
28
+ const visited = new Set();
29
+ while (visited.size < subtasks.length) {
30
+ const layer = [];
31
+ for (const [id, degree] of inDegree) {
32
+ if (degree === 0 && !visited.has(id)) {
33
+ layer.push(byId.get(id));
34
+ }
35
+ }
36
+ if (layer.length === 0) {
37
+ const remaining = subtasks
38
+ .filter((s) => !visited.has(s.id))
39
+ .map((s) => s.id);
40
+ throw new Error(`Cycle detected in DAG. Remaining subtasks: ${remaining.join(', ')}`);
41
+ }
42
+ for (const subtask of layer) {
43
+ visited.add(subtask.id);
44
+ for (const depId of dependents.get(subtask.id) ?? []) {
45
+ inDegree.set(depId, (inDegree.get(depId) ?? 0) - 1);
46
+ }
47
+ }
48
+ layers.push(layer);
49
+ }
50
+ return layers;
51
+ }
52
+ /**
53
+ * Build a flat TaskInput array from a Plan, injecting dependency context
54
+ * into each prompt so the agent can reference prior results.
55
+ */
56
+ export function planToTaskInputs(plan, results) {
57
+ const inputs = new Map();
58
+ for (const subtask of plan.subtasks) {
59
+ let prompt = subtask.prompt;
60
+ // Inject prior results as context
61
+ if (subtask.dependsOn.length > 0) {
62
+ const priorContext = subtask.dependsOn
63
+ .map((depId) => {
64
+ const res = results.get(depId);
65
+ if (res?.output) {
66
+ return `--- Result from step "${depId}" ---\n${res.output}`;
67
+ }
68
+ return null;
69
+ })
70
+ .filter(Boolean)
71
+ .join('\n\n');
72
+ if (priorContext) {
73
+ prompt = `${priorContext}\n\n--- Your task ---\n${prompt}`;
74
+ }
75
+ }
76
+ inputs.set(subtask.id, {
77
+ prompt,
78
+ model: subtask.model,
79
+ queue: subtask.queue,
80
+ });
81
+ }
82
+ return inputs;
83
+ }
84
+ /**
85
+ * Aggregate token usage across multiple results.
86
+ */
87
+ export function aggregateUsage(results) {
88
+ const usage = {
89
+ inputTokens: 0,
90
+ outputTokens: 0,
91
+ totalTokens: 0,
92
+ costUsd: 0,
93
+ };
94
+ for (const result of results) {
95
+ if (result.usage) {
96
+ usage.inputTokens += result.usage.inputTokens;
97
+ usage.outputTokens += result.usage.outputTokens;
98
+ usage.totalTokens += result.usage.totalTokens;
99
+ usage.costUsd = (usage.costUsd ?? 0) + (result.usage.costUsd ?? 0);
100
+ }
101
+ }
102
+ return usage;
103
+ }
104
+ /**
105
+ * Check whether all subtasks in a plan have completed (success or failure).
106
+ */
107
+ export function isPlanComplete(plan) {
108
+ const terminalStates = ['completed', 'failed', 'cancelled', 'timed_out'];
109
+ return plan.subtasks.every((s) => s.status && terminalStates.includes(s.status));
110
+ }
111
+ /**
112
+ * Build a DAGResult from a completed plan and its results map.
113
+ */
114
+ export function buildDAGResult(plan, results, startTime) {
115
+ const resultEntries = {};
116
+ let allSuccess = true;
117
+ for (const [id, result] of results) {
118
+ resultEntries[id] = result;
119
+ if (result.status !== 'completed') {
120
+ allSuccess = false;
121
+ }
122
+ }
123
+ const allResults = Array.from(results.values());
124
+ return {
125
+ plan,
126
+ results: resultEntries,
127
+ success: allSuccess,
128
+ totalDurationMs: Date.now() - startTime,
129
+ totalUsage: aggregateUsage(allResults),
130
+ };
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // Fan-out helpers
134
+ // ---------------------------------------------------------------------------
135
+ /**
136
+ * Split an array of tasks into chunks for parallel execution with a
137
+ * concurrency limit.
138
+ */
139
+ export function chunk(items, size) {
140
+ const chunks = [];
141
+ for (let i = 0; i < items.length; i += size) {
142
+ chunks.push(items.slice(i, i + size));
143
+ }
144
+ return chunks;
145
+ }
146
+ /**
147
+ * Execute async operations with a concurrency limit.
148
+ */
149
+ export async function parallelLimit(items, limit, fn) {
150
+ const results = [];
151
+ const chunks_ = chunk(items, limit);
152
+ for (const batch of chunks_) {
153
+ const batchResults = await Promise.all(batch.map(fn));
154
+ results.push(...batchResults);
155
+ }
156
+ return results;
157
+ }
158
+ export const DEFAULT_RETRY = {
159
+ maxAttempts: 3,
160
+ initialIntervalMs: 1000,
161
+ backoffCoefficient: 2,
162
+ maxIntervalMs: 30000,
163
+ };
164
+ export async function withRetry(fn, config = {}) {
165
+ const cfg = { ...DEFAULT_RETRY, ...config };
166
+ let lastError;
167
+ let interval = cfg.initialIntervalMs;
168
+ for (let attempt = 1; attempt <= cfg.maxAttempts; attempt++) {
169
+ try {
170
+ return await fn();
171
+ }
172
+ catch (err) {
173
+ lastError = err instanceof Error ? err : new Error(String(err));
174
+ if (attempt === cfg.maxAttempts)
175
+ break;
176
+ await new Promise((resolve) => setTimeout(resolve, interval));
177
+ interval = Math.min(interval * cfg.backoffCoefficient, cfg.maxIntervalMs);
178
+ }
179
+ }
180
+ throw lastError;
181
+ }
182
+ //# sourceMappingURL=workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"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"}