@tangle-network/agent-runtime 0.43.0 → 0.45.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 (89) hide show
  1. package/README.md +96 -202
  2. package/dist/agent.d.ts +5 -4
  3. package/dist/agent.js +5 -7
  4. package/dist/agent.js.map +1 -1
  5. package/dist/analyst-loop.d.ts +65 -4
  6. package/dist/analyst-loop.js +6 -1
  7. package/dist/audit.d.ts +93 -0
  8. package/dist/audit.js +312 -0
  9. package/dist/audit.js.map +1 -0
  10. package/dist/chunk-4B6U4CVQ.js +15 -0
  11. package/dist/chunk-4B6U4CVQ.js.map +1 -0
  12. package/dist/chunk-FK53TXOP.js +603 -0
  13. package/dist/chunk-FK53TXOP.js.map +1 -0
  14. package/dist/{chunk-MJDGCRAT.js → chunk-IJ6FGOPO.js} +5 -5
  15. package/dist/chunk-IJ6FGOPO.js.map +1 -0
  16. package/dist/{chunk-HVYOHJHK.js → chunk-IJGS6J7X.js} +2 -2
  17. package/dist/chunk-IJGS6J7X.js.map +1 -0
  18. package/dist/chunk-KEWO4KI6.js +3599 -0
  19. package/dist/chunk-KEWO4KI6.js.map +1 -0
  20. package/dist/{chunk-NRZOXCJK.js → chunk-KSMX62JF.js} +2 -2
  21. package/dist/{chunk-C5HMTTNY.js → chunk-NYN5RTLP.js} +13 -12
  22. package/dist/chunk-NYN5RTLP.js.map +1 -0
  23. package/dist/chunk-PRX45WE2.js +264 -0
  24. package/dist/chunk-PRX45WE2.js.map +1 -0
  25. package/dist/{chunk-3HMHSN22.js → chunk-QR4UUC5P.js} +6 -6
  26. package/dist/chunk-QR4UUC5P.js.map +1 -0
  27. package/dist/chunk-WIR4HOOJ.js +27 -0
  28. package/dist/chunk-WIR4HOOJ.js.map +1 -0
  29. package/dist/{chunk-MNCB4SJ5.js → chunk-Z2QXVBA6.js} +296 -8
  30. package/dist/chunk-Z2QXVBA6.js.map +1 -0
  31. package/dist/coder-CczgMqFx.d.ts +114 -0
  32. package/dist/dynamic-BvllHV6M.d.ts +221 -0
  33. package/dist/{improvement-adapter-BC4HhuAR.d.ts → improvement-adapter-CWegd3vw.d.ts} +1 -1
  34. package/dist/improvement.d.ts +2 -3
  35. package/dist/improvement.js +0 -5
  36. package/dist/improvement.js.map +1 -1
  37. package/dist/index.d.ts +123 -10
  38. package/dist/index.js +407 -19
  39. package/dist/index.js.map +1 -1
  40. package/dist/{kb-gate-DTBum3vH.d.ts → kb-gate-D9GBocLN.d.ts} +82 -5
  41. package/dist/{loop-runner-bin-CVoCBmYk.d.ts → loop-runner-bin-CPrCoKqC.d.ts} +14 -10
  42. package/dist/loop-runner-bin.d.ts +9 -7
  43. package/dist/loop-runner-bin.js +6 -8
  44. package/dist/loops.d.ts +7 -371
  45. package/dist/loops.js +96 -19
  46. package/dist/mcp/bin.js +7 -7
  47. package/dist/mcp/bin.js.map +1 -1
  48. package/dist/mcp/index.d.ts +284 -11
  49. package/dist/mcp/index.js +341 -9
  50. package/dist/mcp/index.js.map +1 -1
  51. package/dist/{otel-export-BzvF1Ela.d.ts → otel-export-Dy2DyUCU.d.ts} +1 -1
  52. package/dist/profiles.d.ts +385 -86
  53. package/dist/profiles.js +549 -4
  54. package/dist/profiles.js.map +1 -1
  55. package/dist/run-loop--hSoIknW.d.ts +112 -0
  56. package/dist/runtime-hooks-C7JwKb9E.d.ts +70 -0
  57. package/dist/runtime.d.ts +1860 -0
  58. package/dist/runtime.js +114 -0
  59. package/dist/runtime.js.map +1 -0
  60. package/dist/substrate-CUgk7F7s.d.ts +77 -0
  61. package/dist/topology.d.ts +73 -0
  62. package/dist/topology.js +111 -0
  63. package/dist/topology.js.map +1 -0
  64. package/dist/types-1HbsFa7H.d.ts +438 -0
  65. package/dist/{types-p8dWBIXL.d.ts → types-BtRLF2U3.d.ts} +1 -1
  66. package/dist/{types-Bcp071Jg.d.ts → types-DdzkffAm.d.ts} +95 -1
  67. package/dist/workflow.d.ts +551 -0
  68. package/dist/workflow.js +1778 -0
  69. package/dist/workflow.js.map +1 -0
  70. package/package.json +53 -16
  71. package/skills/agent-runtime-adoption/SKILL.md +29 -26
  72. package/dist/chunk-3HMHSN22.js.map +0 -1
  73. package/dist/chunk-C5HMTTNY.js.map +0 -1
  74. package/dist/chunk-EKBSQYZE.js +0 -813
  75. package/dist/chunk-EKBSQYZE.js.map +0 -1
  76. package/dist/chunk-HVYOHJHK.js.map +0 -1
  77. package/dist/chunk-MJDGCRAT.js.map +0 -1
  78. package/dist/chunk-MNCB4SJ5.js.map +0 -1
  79. package/dist/chunk-PY6NMZYX.js +0 -52
  80. package/dist/chunk-PY6NMZYX.js.map +0 -1
  81. package/dist/chunk-SQSCRJ7U.js +0 -65
  82. package/dist/chunk-SQSCRJ7U.js.map +0 -1
  83. package/dist/chunk-VOX6Z3II.js +0 -90
  84. package/dist/chunk-VOX6Z3II.js.map +0 -1
  85. package/dist/chunk-XBUG326M.js +0 -261
  86. package/dist/chunk-XBUG326M.js.map +0 -1
  87. package/dist/dynamic-B_7GgCwu.d.ts +0 -108
  88. package/dist/optimize-prompt-D-urF2wW.d.ts +0 -129
  89. /package/dist/{chunk-NRZOXCJK.js.map → chunk-KSMX62JF.js.map} +0 -0
@@ -0,0 +1,551 @@
1
+ import { AgentProfile, CreateSandboxOptions, PromptOptions, TaskOptions, SandboxEvent } from '@tangle-network/sandbox';
2
+ import { b as LoopSandboxClient, O as OutputAdapter, g as LoopSandboxPlacement, c as LoopResult } from './types-DdzkffAm.js';
3
+ import { R as RunLoopOptions } from './run-loop--hSoIknW.js';
4
+ import '@tangle-network/agent-eval';
5
+ import './runtime-hooks-C7JwKb9E.js';
6
+
7
+ /**
8
+ * @experimental
9
+ *
10
+ * Dynamic workflow substrate.
11
+ *
12
+ * A workflow is driver-authored code executed by a restricted runtime. The
13
+ * runtime owns orchestration mechanics (phase/progress, fanout, budget,
14
+ * cancellation, trace emission); product code supplies delegates that actually
15
+ * run agents and loops. That boundary keeps this package generic while still
16
+ * letting consumers wire real sandboxes underneath `agent()` and `loop()`.
17
+ */
18
+ interface WorkflowPhaseMeta {
19
+ title: string;
20
+ }
21
+ interface WorkflowMeta {
22
+ name: string;
23
+ description: string;
24
+ phases?: WorkflowPhaseMeta[];
25
+ }
26
+ type JsonSchema = {
27
+ type: 'string';
28
+ minLength?: number;
29
+ maxLength?: number;
30
+ enum?: string[];
31
+ } | {
32
+ type: 'number';
33
+ minimum?: number;
34
+ maximum?: number;
35
+ enum?: number[];
36
+ } | {
37
+ type: 'integer';
38
+ minimum?: number;
39
+ maximum?: number;
40
+ enum?: number[];
41
+ } | {
42
+ type: 'boolean';
43
+ enum?: boolean[];
44
+ } | {
45
+ type: 'null';
46
+ } | {
47
+ type: 'array';
48
+ items?: JsonSchema;
49
+ minItems?: number;
50
+ maxItems?: number;
51
+ } | {
52
+ type: 'object';
53
+ properties?: Record<string, JsonSchema>;
54
+ required?: string[];
55
+ additionalProperties?: boolean;
56
+ };
57
+ interface WorkflowTokenUsage {
58
+ input: number;
59
+ output: number;
60
+ }
61
+ interface WorkflowBudgetSnapshot {
62
+ costUsd: number;
63
+ tokens: WorkflowTokenUsage;
64
+ agentCalls: number;
65
+ loopCalls: number;
66
+ elapsedMs: number;
67
+ }
68
+ interface WorkflowBudgetRemaining {
69
+ costUsd?: number;
70
+ tokens?: number;
71
+ agentCalls?: number;
72
+ loopCalls?: number;
73
+ wallMs?: number;
74
+ }
75
+ interface WorkflowBudgetCaps {
76
+ maxCostUsd?: number;
77
+ maxTokens?: number;
78
+ maxWallMs?: number;
79
+ maxAgentCalls?: number;
80
+ maxLoopCalls?: number;
81
+ maxFanout?: number;
82
+ maxDepth?: number;
83
+ }
84
+ interface WorkflowBudgetView {
85
+ readonly total: WorkflowBudgetCaps;
86
+ spent(): WorkflowBudgetSnapshot;
87
+ remaining(): WorkflowBudgetRemaining;
88
+ }
89
+ interface WorkflowAgentOptions<TOutput = unknown> {
90
+ label?: string;
91
+ schema?: JsonSchema;
92
+ metadata?: Record<string, unknown>;
93
+ /**
94
+ * Nested workflows are denied by default. Consumers that expose them through
95
+ * a delegate must also honor `ctx.depth` and `ctx.caps.maxDepth`.
96
+ */
97
+ allowWorkflow?: boolean;
98
+ decode?: (value: unknown) => TOutput;
99
+ }
100
+ interface WorkflowLoopOptions<TOutput = unknown> {
101
+ label?: string;
102
+ schema?: JsonSchema;
103
+ metadata?: Record<string, unknown>;
104
+ decode?: (value: unknown) => TOutput;
105
+ }
106
+ interface WorkflowCheckpointOptions<TOutput = unknown> {
107
+ label?: string;
108
+ schema?: JsonSchema;
109
+ metadata?: Record<string, unknown>;
110
+ decode?: (value: unknown) => TOutput;
111
+ }
112
+ interface WorkflowDelegateResult {
113
+ output: unknown;
114
+ costUsd?: number;
115
+ tokenUsage?: Partial<WorkflowTokenUsage>;
116
+ /** Additional downstream workflow agent calls consumed inside this delegate. */
117
+ agentCalls?: number;
118
+ /** Additional downstream workflow loop calls consumed inside this delegate. */
119
+ loopCalls?: number;
120
+ trace?: unknown;
121
+ }
122
+ interface WorkflowDelegateContext {
123
+ workflowRunId: string;
124
+ depth: number;
125
+ phase?: string;
126
+ signal: AbortSignal;
127
+ caps: WorkflowBudgetCaps;
128
+ budget: WorkflowBudgetView;
129
+ metadata?: Record<string, unknown>;
130
+ }
131
+ type WorkflowAgentDelegate = (prompt: string, options: WorkflowAgentOptions, ctx: WorkflowDelegateContext) => Promise<WorkflowDelegateResult>;
132
+ type WorkflowLoopDelegate = (input: unknown, options: WorkflowLoopOptions, ctx: WorkflowDelegateContext) => Promise<WorkflowDelegateResult>;
133
+ type WorkflowVerifierDelegate = (input: unknown, options: WorkflowCheckpointOptions, ctx: WorkflowDelegateContext) => Promise<WorkflowDelegateResult>;
134
+ type WorkflowAnalystDelegate = (input: unknown, options: WorkflowCheckpointOptions, ctx: WorkflowDelegateContext) => Promise<WorkflowDelegateResult>;
135
+ type WorkflowReviewerDelegate = (input: unknown, options: WorkflowCheckpointOptions, ctx: WorkflowDelegateContext) => Promise<WorkflowDelegateResult>;
136
+ type WorkflowTraceEvent = {
137
+ kind: 'workflow.started';
138
+ runId: string;
139
+ timestamp: number;
140
+ payload: WorkflowStartedPayload;
141
+ } | {
142
+ kind: 'workflow.phase';
143
+ runId: string;
144
+ timestamp: number;
145
+ payload: WorkflowPhasePayload;
146
+ } | {
147
+ kind: 'workflow.log';
148
+ runId: string;
149
+ timestamp: number;
150
+ payload: WorkflowLogPayload;
151
+ } | {
152
+ kind: 'workflow.parallel.started';
153
+ runId: string;
154
+ timestamp: number;
155
+ payload: WorkflowParallelStartedPayload;
156
+ } | {
157
+ kind: 'workflow.parallel.ended';
158
+ runId: string;
159
+ timestamp: number;
160
+ payload: WorkflowParallelEndedPayload;
161
+ } | {
162
+ kind: 'workflow.pipeline.started';
163
+ runId: string;
164
+ timestamp: number;
165
+ payload: WorkflowPipelineStartedPayload;
166
+ } | {
167
+ kind: 'workflow.pipeline.ended';
168
+ runId: string;
169
+ timestamp: number;
170
+ payload: WorkflowPipelineEndedPayload;
171
+ } | {
172
+ kind: 'workflow.branch.started';
173
+ runId: string;
174
+ timestamp: number;
175
+ payload: WorkflowBranchStartedPayload;
176
+ } | {
177
+ kind: 'workflow.branch.ended';
178
+ runId: string;
179
+ timestamp: number;
180
+ payload: WorkflowBranchEndedPayload;
181
+ } | {
182
+ kind: 'workflow.branch.failed';
183
+ runId: string;
184
+ timestamp: number;
185
+ payload: WorkflowBranchFailedPayload;
186
+ } | {
187
+ kind: 'workflow.agent.started';
188
+ runId: string;
189
+ timestamp: number;
190
+ payload: WorkflowAgentStartedPayload;
191
+ } | {
192
+ kind: 'workflow.agent.ended';
193
+ runId: string;
194
+ timestamp: number;
195
+ payload: WorkflowAgentEndedPayload;
196
+ } | {
197
+ kind: 'workflow.agent.failed';
198
+ runId: string;
199
+ timestamp: number;
200
+ payload: WorkflowDelegateFailedPayload;
201
+ } | {
202
+ kind: 'workflow.loop.started';
203
+ runId: string;
204
+ timestamp: number;
205
+ payload: WorkflowLoopStartedPayload;
206
+ } | {
207
+ kind: 'workflow.loop.ended';
208
+ runId: string;
209
+ timestamp: number;
210
+ payload: WorkflowLoopEndedPayload;
211
+ } | {
212
+ kind: 'workflow.loop.failed';
213
+ runId: string;
214
+ timestamp: number;
215
+ payload: WorkflowDelegateFailedPayload;
216
+ } | {
217
+ kind: 'workflow.verifier.started';
218
+ runId: string;
219
+ timestamp: number;
220
+ payload: WorkflowCheckpointStartedPayload;
221
+ } | {
222
+ kind: 'workflow.verifier.ended';
223
+ runId: string;
224
+ timestamp: number;
225
+ payload: WorkflowCheckpointEndedPayload;
226
+ } | {
227
+ kind: 'workflow.verifier.failed';
228
+ runId: string;
229
+ timestamp: number;
230
+ payload: WorkflowDelegateFailedPayload;
231
+ } | {
232
+ kind: 'workflow.analyst.started';
233
+ runId: string;
234
+ timestamp: number;
235
+ payload: WorkflowCheckpointStartedPayload;
236
+ } | {
237
+ kind: 'workflow.analyst.ended';
238
+ runId: string;
239
+ timestamp: number;
240
+ payload: WorkflowCheckpointEndedPayload;
241
+ } | {
242
+ kind: 'workflow.analyst.failed';
243
+ runId: string;
244
+ timestamp: number;
245
+ payload: WorkflowDelegateFailedPayload;
246
+ } | {
247
+ kind: 'workflow.reviewer.started';
248
+ runId: string;
249
+ timestamp: number;
250
+ payload: WorkflowCheckpointStartedPayload;
251
+ } | {
252
+ kind: 'workflow.reviewer.ended';
253
+ runId: string;
254
+ timestamp: number;
255
+ payload: WorkflowCheckpointEndedPayload;
256
+ } | {
257
+ kind: 'workflow.reviewer.failed';
258
+ runId: string;
259
+ timestamp: number;
260
+ payload: WorkflowDelegateFailedPayload;
261
+ } | {
262
+ kind: 'workflow.failed';
263
+ runId: string;
264
+ timestamp: number;
265
+ payload: WorkflowFailedPayload;
266
+ } | {
267
+ kind: 'workflow.ended';
268
+ runId: string;
269
+ timestamp: number;
270
+ payload: WorkflowEndedPayload;
271
+ };
272
+ interface WorkflowStartedPayload {
273
+ meta: WorkflowMeta;
274
+ depth: number;
275
+ caps: WorkflowBudgetCaps;
276
+ }
277
+ interface WorkflowPhasePayload {
278
+ title: string;
279
+ }
280
+ interface WorkflowLogPayload {
281
+ message: string;
282
+ phase?: string;
283
+ }
284
+ interface WorkflowParallelStartedPayload {
285
+ branchCount: number;
286
+ phase?: string;
287
+ }
288
+ interface WorkflowParallelEndedPayload {
289
+ branchCount: number;
290
+ durationMs: number;
291
+ phase?: string;
292
+ }
293
+ interface WorkflowPipelineStartedPayload {
294
+ itemCount: number;
295
+ stageCount: number;
296
+ phase?: string;
297
+ }
298
+ interface WorkflowPipelineEndedPayload {
299
+ itemCount: number;
300
+ stageCount: number;
301
+ durationMs: number;
302
+ phase?: string;
303
+ }
304
+ type WorkflowBranchOperation = 'parallel' | 'pipeline';
305
+ interface WorkflowBranchStartedPayload {
306
+ operation: WorkflowBranchOperation;
307
+ branchIndex: number;
308
+ phase?: string;
309
+ stageCount?: number;
310
+ }
311
+ interface WorkflowBranchEndedPayload {
312
+ operation: WorkflowBranchOperation;
313
+ branchIndex: number;
314
+ durationMs: number;
315
+ phase?: string;
316
+ stageCount?: number;
317
+ }
318
+ interface WorkflowBranchFailedPayload {
319
+ operation: WorkflowBranchOperation;
320
+ branchIndex: number;
321
+ durationMs: number;
322
+ message: string;
323
+ code?: string;
324
+ phase?: string;
325
+ stageIndex?: number;
326
+ }
327
+ interface WorkflowAgentStartedPayload {
328
+ index: number;
329
+ label?: string;
330
+ promptChars: number;
331
+ phase?: string;
332
+ metadata?: Record<string, unknown>;
333
+ }
334
+ interface WorkflowAgentEndedPayload {
335
+ index: number;
336
+ label?: string;
337
+ durationMs: number;
338
+ costUsd: number;
339
+ tokenUsage: WorkflowTokenUsage;
340
+ phase?: string;
341
+ trace?: unknown;
342
+ }
343
+ interface WorkflowLoopStartedPayload {
344
+ index: number;
345
+ label?: string;
346
+ phase?: string;
347
+ metadata?: Record<string, unknown>;
348
+ }
349
+ interface WorkflowLoopEndedPayload {
350
+ index: number;
351
+ label?: string;
352
+ durationMs: number;
353
+ costUsd: number;
354
+ tokenUsage: WorkflowTokenUsage;
355
+ phase?: string;
356
+ trace?: unknown;
357
+ }
358
+ interface WorkflowCheckpointStartedPayload {
359
+ index: number;
360
+ label?: string;
361
+ phase?: string;
362
+ metadata?: Record<string, unknown>;
363
+ }
364
+ interface WorkflowCheckpointEndedPayload {
365
+ index: number;
366
+ label?: string;
367
+ durationMs: number;
368
+ costUsd: number;
369
+ tokenUsage: WorkflowTokenUsage;
370
+ phase?: string;
371
+ trace?: unknown;
372
+ }
373
+ interface WorkflowDelegateFailedPayload {
374
+ index: number;
375
+ label?: string;
376
+ durationMs: number;
377
+ message: string;
378
+ code?: string;
379
+ phase?: string;
380
+ }
381
+ interface WorkflowFailedPayload {
382
+ message: string;
383
+ code?: string;
384
+ phase?: string;
385
+ }
386
+ interface WorkflowEndedPayload {
387
+ durationMs: number;
388
+ costUsd: number;
389
+ tokenUsage: WorkflowTokenUsage;
390
+ agentCalls: number;
391
+ loopCalls: number;
392
+ }
393
+ interface WorkflowTraceEmitter {
394
+ emit(event: WorkflowTraceEvent): void | Promise<void>;
395
+ }
396
+ interface WorkflowRuntimeOptions {
397
+ source: string;
398
+ agent: WorkflowAgentDelegate;
399
+ loop?: WorkflowLoopDelegate;
400
+ verifier?: WorkflowVerifierDelegate;
401
+ analyst?: WorkflowAnalystDelegate;
402
+ reviewer?: WorkflowReviewerDelegate;
403
+ runId?: string;
404
+ depth?: number;
405
+ caps?: WorkflowBudgetCaps;
406
+ metadata?: Record<string, unknown>;
407
+ signal?: AbortSignal;
408
+ traceEmitter?: WorkflowTraceEmitter;
409
+ now?: () => number;
410
+ syncTimeoutMs?: number;
411
+ }
412
+ interface WorkflowResult<TOutput = unknown> {
413
+ runId: string;
414
+ meta: WorkflowMeta;
415
+ output: TOutput;
416
+ events: WorkflowTraceEvent[];
417
+ durationMs: number;
418
+ costUsd: number;
419
+ tokenUsage: WorkflowTokenUsage;
420
+ agentCalls: number;
421
+ loopCalls: number;
422
+ }
423
+
424
+ type WorkflowSandboxAgentStream = 'prompt' | 'task';
425
+ type WorkflowSandboxAgentProfileResolver = AgentProfile | ((prompt: string, options: WorkflowAgentOptions, ctx: WorkflowDelegateContext) => AgentProfile);
426
+ type WorkflowSandboxPromptOptionsResolver<TOptions extends PromptOptions> = TOptions | ((prompt: string, options: WorkflowAgentOptions, ctx: WorkflowDelegateContext) => TOptions);
427
+ interface WorkflowSandboxAgentTrace<TOutput = unknown> {
428
+ prompt: string;
429
+ options: WorkflowAgentOptions;
430
+ ctx: WorkflowDelegateContext;
431
+ profile: AgentProfile;
432
+ output: TOutput;
433
+ events: SandboxEvent[];
434
+ stream: WorkflowSandboxAgentStream;
435
+ placement: LoopSandboxPlacement;
436
+ costUsd: number;
437
+ tokenUsage: WorkflowTokenUsage;
438
+ }
439
+ interface CreateSandboxWorkflowAgentDelegateOptions<TOutput = unknown> {
440
+ client: LoopSandboxClient;
441
+ profile: WorkflowSandboxAgentProfileResolver;
442
+ output?: OutputAdapter<TOutput>;
443
+ stream?: WorkflowSandboxAgentStream;
444
+ sandboxOverrides?: Partial<Omit<CreateSandboxOptions, 'backend'>> & {
445
+ backend?: Omit<NonNullable<CreateSandboxOptions['backend']>, 'profile'>;
446
+ };
447
+ promptOptions?: WorkflowSandboxPromptOptionsResolver<PromptOptions>;
448
+ taskOptions?: WorkflowSandboxPromptOptionsResolver<TaskOptions>;
449
+ deleteAfter?: boolean;
450
+ includeEventsInTrace?: boolean;
451
+ toTrace?: (trace: WorkflowSandboxAgentTrace<TOutput>) => unknown;
452
+ }
453
+ interface WorkflowSandboxAgentDefaultTrace {
454
+ stream: WorkflowSandboxAgentStream;
455
+ placement: LoopSandboxPlacement['kind'];
456
+ sandboxId?: string;
457
+ fleetId?: string;
458
+ machineId?: string;
459
+ profileName?: string;
460
+ eventCount: number;
461
+ eventTypes: string[];
462
+ events?: SandboxEvent[];
463
+ }
464
+ declare function createSandboxWorkflowAgentDelegate<TOutput = unknown>(options: CreateSandboxWorkflowAgentDelegateOptions<TOutput>): WorkflowAgentDelegate;
465
+ declare function parseSandboxAgentDefaultOutput(events: SandboxEvent[]): unknown;
466
+
467
+ declare class WorkflowBudget implements WorkflowBudgetView {
468
+ readonly total: WorkflowBudgetCaps;
469
+ private readonly startedAt;
470
+ private readonly now;
471
+ private costUsd;
472
+ private tokens;
473
+ private agentCallCount;
474
+ private loopCallCount;
475
+ constructor(total: WorkflowBudgetCaps, now: () => number);
476
+ spent(): WorkflowBudgetSnapshot;
477
+ remaining(): WorkflowBudgetRemaining;
478
+ nextAgentIndex(): number;
479
+ nextLoopIndex(): number;
480
+ assertFanout(count: number): void;
481
+ observe(result: WorkflowDelegateResult): {
482
+ costUsd: number;
483
+ tokenUsage: WorkflowTokenUsage;
484
+ };
485
+ assertWall(): void;
486
+ remainingWallMs(): number | undefined;
487
+ private elapsedMs;
488
+ private assertSpend;
489
+ }
490
+
491
+ interface CreateRunLoopWorkflowDelegateOptions<Input, Task, Output, Decision> {
492
+ toRunLoopOptions(input: Input, options: WorkflowLoopOptions, ctx: WorkflowDelegateContext): RunLoopOptions<Task, Output, Decision>;
493
+ toOutput?: (result: LoopResult<Task, Output, Decision>) => unknown;
494
+ toTrace?: (result: LoopResult<Task, Output, Decision>) => unknown;
495
+ }
496
+ declare function createRunLoopWorkflowDelegate<Input, Task, Output, Decision>(options: CreateRunLoopWorkflowDelegateOptions<Input, Task, Output, Decision>): WorkflowLoopDelegate;
497
+
498
+ interface NestedWorkflowDelegateInput {
499
+ source: string;
500
+ options: WorkflowAgentOptions;
501
+ parent: WorkflowDelegateContext;
502
+ }
503
+ type NestedWorkflowCapsResolver = WorkflowBudgetCaps | ((input: NestedWorkflowDelegateInput) => WorkflowBudgetCaps);
504
+ type NestedWorkflowMetadataResolver = Record<string, unknown> | ((input: NestedWorkflowDelegateInput) => Record<string, unknown> | undefined);
505
+ interface NestedWorkflowTrace {
506
+ nested: true;
507
+ runId: string;
508
+ parentRunId: string;
509
+ depth: number;
510
+ metaName: string;
511
+ eventCount: number;
512
+ eventKinds: string[];
513
+ durationMs: number;
514
+ costUsd: number;
515
+ tokenUsage: WorkflowResult['tokenUsage'];
516
+ agentCalls: number;
517
+ loopCalls: number;
518
+ events?: WorkflowResult['events'];
519
+ }
520
+ interface CreateNestedWorkflowAgentDelegateOptions {
521
+ /**
522
+ * Real worker delegate used for normal agent() calls and for child workflow
523
+ * agent() calls that do not opt into allowWorkflow.
524
+ */
525
+ agent: WorkflowAgentDelegate;
526
+ caps: NestedWorkflowCapsResolver;
527
+ loop?: WorkflowLoopDelegate;
528
+ verifier?: WorkflowVerifierDelegate;
529
+ analyst?: WorkflowAnalystDelegate;
530
+ reviewer?: WorkflowReviewerDelegate;
531
+ metadata?: NestedWorkflowMetadataResolver;
532
+ traceEmitter?: WorkflowTraceEmitter;
533
+ includeEventsInTrace?: boolean;
534
+ runId?: (input: NestedWorkflowDelegateInput) => string;
535
+ toOutput?: (result: WorkflowResult, input: NestedWorkflowDelegateInput) => unknown;
536
+ toTrace?: (result: WorkflowResult, input: NestedWorkflowDelegateInput) => unknown;
537
+ }
538
+ declare function createNestedWorkflowAgentDelegate(options: CreateNestedWorkflowAgentDelegateOptions): WorkflowAgentDelegate;
539
+
540
+ declare function runWorkflow<TOutput = unknown>(options: WorkflowRuntimeOptions): Promise<WorkflowResult<TOutput>>;
541
+
542
+ declare function validateJsonSchema(value: unknown, schema: JsonSchema, path?: string): void;
543
+
544
+ interface ParsedWorkflowScript {
545
+ meta: WorkflowMeta;
546
+ body: string;
547
+ }
548
+ declare function parseWorkflowScript(source: string): ParsedWorkflowScript;
549
+ declare function validateWorkflowBody(body: string): void;
550
+
551
+ export { type CreateNestedWorkflowAgentDelegateOptions, type CreateRunLoopWorkflowDelegateOptions, type CreateSandboxWorkflowAgentDelegateOptions, type JsonSchema, type NestedWorkflowCapsResolver, type NestedWorkflowDelegateInput, type NestedWorkflowMetadataResolver, type NestedWorkflowTrace, type ParsedWorkflowScript, type WorkflowAgentDelegate, type WorkflowAgentEndedPayload, type WorkflowAgentOptions, type WorkflowAgentStartedPayload, type WorkflowAnalystDelegate, type WorkflowBranchEndedPayload, type WorkflowBranchFailedPayload, type WorkflowBranchOperation, type WorkflowBranchStartedPayload, WorkflowBudget, type WorkflowBudgetCaps, type WorkflowBudgetRemaining, type WorkflowBudgetSnapshot, type WorkflowBudgetView, type WorkflowCheckpointEndedPayload, type WorkflowCheckpointOptions, type WorkflowCheckpointStartedPayload, type WorkflowDelegateContext, type WorkflowDelegateResult, type WorkflowEndedPayload, type WorkflowFailedPayload, type WorkflowLogPayload, type WorkflowLoopDelegate, type WorkflowLoopEndedPayload, type WorkflowLoopOptions, type WorkflowLoopStartedPayload, type WorkflowMeta, type WorkflowParallelEndedPayload, type WorkflowParallelStartedPayload, type WorkflowPhaseMeta, type WorkflowPhasePayload, type WorkflowPipelineEndedPayload, type WorkflowPipelineStartedPayload, type WorkflowResult, type WorkflowReviewerDelegate, type WorkflowRuntimeOptions, type WorkflowSandboxAgentDefaultTrace, type WorkflowSandboxAgentProfileResolver, type WorkflowSandboxAgentStream, type WorkflowSandboxAgentTrace, type WorkflowSandboxPromptOptionsResolver, type WorkflowStartedPayload, type WorkflowTokenUsage, type WorkflowTraceEmitter, type WorkflowTraceEvent, type WorkflowVerifierDelegate, createNestedWorkflowAgentDelegate, createRunLoopWorkflowDelegate, createSandboxWorkflowAgentDelegate, parseSandboxAgentDefaultOutput, parseWorkflowScript, runWorkflow, validateJsonSchema, validateWorkflowBody };