@tangle-network/agent-runtime 0.49.0 → 0.50.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 (46) hide show
  1. package/dist/agent.d.ts +1 -1
  2. package/dist/agent.js +1 -1
  3. package/dist/analyst-loop.d.ts +1 -1
  4. package/dist/{chunk-U2VEWKKK.js → chunk-BKAIVNFA.js} +3 -3
  5. package/dist/{chunk-PXUTIMGJ.js → chunk-CM2IK7VS.js} +148 -25
  6. package/dist/chunk-CM2IK7VS.js.map +1 -0
  7. package/dist/{chunk-XTEZ3YJ4.js → chunk-ML4IXGTV.js} +2 -2
  8. package/dist/{chunk-IQS4HI3F.js → chunk-NDM5VXZW.js} +8 -6
  9. package/dist/{chunk-IQS4HI3F.js.map → chunk-NDM5VXZW.js.map} +1 -1
  10. package/dist/chunk-OM3YNZIW.js +978 -0
  11. package/dist/chunk-OM3YNZIW.js.map +1 -0
  12. package/dist/{chunk-VIEDXELL.js → chunk-RHW75JW5.js} +94 -348
  13. package/dist/chunk-RHW75JW5.js.map +1 -0
  14. package/dist/{coder-CVZNGbyg.d.ts → coder-_YCf3BAK.d.ts} +2 -2
  15. package/dist/{driver-DYU2sgHr.d.ts → driver-DLI1io57.d.ts} +1 -1
  16. package/dist/index.d.ts +7 -7
  17. package/dist/index.js +13 -11
  18. package/dist/index.js.map +1 -1
  19. package/dist/{kb-gate-CsXpNRk7.d.ts → kb-gate-CHAyt4aI.d.ts} +436 -10
  20. package/dist/{loop-runner-bin-Cgn0A-NW.d.ts → loop-runner-bin-DFUNgpeK.d.ts} +4 -4
  21. package/dist/loop-runner-bin.d.ts +5 -5
  22. package/dist/loop-runner-bin.js +3 -3
  23. package/dist/loops.d.ts +5 -5
  24. package/dist/loops.js +7 -1
  25. package/dist/mcp/bin.js +28 -14
  26. package/dist/mcp/bin.js.map +1 -1
  27. package/dist/mcp/index.d.ts +17 -56
  28. package/dist/mcp/index.js +17 -5
  29. package/dist/mcp/index.js.map +1 -1
  30. package/dist/openai-tools-D4HLDWgw.d.ts +45 -0
  31. package/dist/profiles.d.ts +2 -2
  32. package/dist/{run-loop-DvD4aGiE.d.ts → run-loop-BIineL1T.d.ts} +1 -1
  33. package/dist/runtime.d.ts +119 -17
  34. package/dist/runtime.js +7 -1
  35. package/dist/{types-BpDfCPUp.d.ts → types-5MGt5KTY.d.ts} +1 -1
  36. package/dist/{types-nBMuollC.d.ts → types-BEQsBhOE.d.ts} +1 -1
  37. package/dist/workflow.d.ts +2 -2
  38. package/dist/workflow.js +1 -1
  39. package/package.json +1 -1
  40. package/dist/chunk-GHX7XOJ2.js +0 -433
  41. package/dist/chunk-GHX7XOJ2.js.map +0 -1
  42. package/dist/chunk-PXUTIMGJ.js.map +0 -1
  43. package/dist/chunk-VIEDXELL.js.map +0 -1
  44. package/dist/otel-export-EzfsVUhh.d.ts +0 -191
  45. /package/dist/{chunk-U2VEWKKK.js.map → chunk-BKAIVNFA.js.map} +0 -0
  46. /package/dist/{chunk-XTEZ3YJ4.js.map → chunk-ML4IXGTV.js.map} +0 -0
@@ -1,5 +1,5 @@
1
- import { C as CoderOutput, a as CoderTask } from './coder-CVZNGbyg.js';
2
- import { S as SandboxClient, A as AgentRunSpec, e as LoopTraceEmitter } from './types-nBMuollC.js';
1
+ import { C as CoderOutput, b as CoderTask } from './coder-_YCf3BAK.js';
2
+ import { f as LoopTraceEmitter, g as LoopTraceEvent, S as SandboxClient, A as AgentRunSpec } from './types-BEQsBhOE.js';
3
3
  import { SandboxEvent, SandboxInstance } from '@tangle-network/sandbox';
4
4
  import { AgentEvalError } from '@tangle-network/agent-eval';
5
5
  import { a as UiLens, U as UiFinding } from './substrate-CUgk7F7s.js';
@@ -118,6 +118,335 @@ declare class FileDelegationStore implements DelegationStore {
118
118
  private writeSnapshot;
119
119
  }
120
120
 
121
+ /**
122
+ * @experimental
123
+ *
124
+ * Compact loop-trace tee for the delegation journal.
125
+ *
126
+ * The OTEL exporter ({@link createPropagatingTraceEmitter}) is a no-op
127
+ * without `OTEL_EXPORTER_OTLP_ENDPOINT`, which leaves delegated work streams
128
+ * dark in practice. This module derives the same loop → round → branch span
129
+ * tree (via the shared {@link buildLoopSpanNodes} builder) into a small,
130
+ * JSON-safe shape persisted directly on the `DelegationRecord` — observable
131
+ * through `delegation_status` with no collector infrastructure. Both sinks
132
+ * coexist: the OTEL export path is unchanged.
133
+ *
134
+ * Payload discipline: a record's trace is hard-capped (spans + serialized
135
+ * bytes). Past the cap the OLDEST spans are dropped and the record carries a
136
+ * `traceTruncated: true` marker — truncation is never silent.
137
+ */
138
+
139
+ /**
140
+ * One span of a delegation's compact trace. Flat (parent linkage by id), all
141
+ * values JSON-safe scalars — `FileDelegationStore` round-trips records
142
+ * through `JSON.stringify`. `meta` carries the span's attributes (GenAI
143
+ * semconv keys + `tangle.loop.*` extensions) exactly as the OTEL sink emits
144
+ * them, so a consumer can re-export journal traces losslessly.
145
+ *
146
+ * @experimental
147
+ */
148
+ interface DelegationTraceSpan {
149
+ spanId: string;
150
+ /** Absent on the tree root. */
151
+ parentSpanId?: string;
152
+ /** `'loop'` | `'loop.round'` | `'loop.iteration'` (or a sink-specific name). */
153
+ name: string;
154
+ /** Topology level: loop root, plan round, or iteration branch. */
155
+ kind: 'loop' | 'round' | 'branch';
156
+ startMs: number;
157
+ endMs: number;
158
+ meta?: Record<string, string | number | boolean>;
159
+ }
160
+ /** Default cap on spans retained per delegation record. @experimental */
161
+ declare const DELEGATION_TRACE_MAX_SPANS = 512;
162
+ /** Default cap on the serialized trace payload per record, in bytes. @experimental */
163
+ declare const DELEGATION_TRACE_MAX_BYTES: number;
164
+ /** @experimental */
165
+ interface DelegationTraceCaps {
166
+ /** Default {@link DELEGATION_TRACE_MAX_SPANS}. */
167
+ maxSpans?: number;
168
+ /** Default {@link DELEGATION_TRACE_MAX_BYTES}. Approximate — measured as the
169
+ * sum of per-span `JSON.stringify` lengths. */
170
+ maxBytes?: number;
171
+ }
172
+ /** @experimental */
173
+ interface CappedDelegationTrace {
174
+ trace: DelegationTraceSpan[];
175
+ /** True when oldest spans were dropped to honor the caps. */
176
+ truncated: boolean;
177
+ }
178
+ /**
179
+ * Derive the compact span tree for ONE loop run from its buffered
180
+ * `LoopTraceEvent` stream. Same reconstruction as the OTEL exporter
181
+ * ({@link buildLoopSpanNodes}); tolerates partial streams.
182
+ *
183
+ * @experimental
184
+ */
185
+ declare function buildDelegationTraceSpans(events: ReadonlyArray<LoopTraceEvent>): DelegationTraceSpan[];
186
+ /**
187
+ * Enforce the trace caps over an ordered (oldest-first) span list. Drops the
188
+ * OLDEST spans first and reports `truncated: true` when anything was dropped;
189
+ * the newest span always survives, so a non-empty input never caps to empty.
190
+ * Dropping a parent may orphan surviving children's `parentSpanId` references
191
+ * — acceptable for the flat journal shape; consumers treat unresolved parents
192
+ * as roots.
193
+ *
194
+ * @experimental
195
+ */
196
+ declare function capDelegationTrace(spans: ReadonlyArray<DelegationTraceSpan>, caps?: DelegationTraceCaps): CappedDelegationTrace;
197
+ /**
198
+ * Per-delegation trace collector. Buffers `LoopTraceEvent`s per runId
199
+ * (mirroring the OTEL emitter's buffering) and hands the derived compact
200
+ * spans to `onSpans` when a run reaches `loop.ended`. `settle()` drains runs
201
+ * that never ended — a hard-aborted loop still leaves its partial tree in the
202
+ * journal, unlike the OTEL path which drops it.
203
+ *
204
+ * @experimental
205
+ */
206
+ interface DelegationTraceCollector {
207
+ emitter: LoopTraceEmitter;
208
+ /** Flush buffered events of runs that never reached `loop.ended`. */
209
+ settle(): void;
210
+ }
211
+ /** @experimental */
212
+ declare function createDelegationTraceCollector(onSpans: (spans: DelegationTraceSpan[]) => void): DelegationTraceCollector;
213
+ /**
214
+ * Fan one `LoopTraceEvent` stream into several emitters — e.g. the
215
+ * process-wide OTEL exporter AND the per-delegation journal collector.
216
+ * `undefined` entries are skipped; returns `undefined` when nothing is left
217
+ * so callers keep the kernel's "no emitter, no events" fast path.
218
+ *
219
+ * @experimental
220
+ */
221
+ declare function composeLoopTraceEmitters(...emitters: ReadonlyArray<LoopTraceEmitter | undefined>): LoopTraceEmitter | undefined;
222
+
223
+ /**
224
+ * OTEL span exporter — streams LoopTraceEvents to an OTLP/HTTP collector.
225
+ *
226
+ * Reads OTEL_EXPORTER_OTLP_ENDPOINT + OTEL_EXPORTER_OTLP_HEADERS from env
227
+ * when no explicit config is given. Keeps the runtime dep-free from
228
+ * @opentelemetry/sdk-trace-base — minimal OTLP/JSON serializer.
229
+ *
230
+ * The exporter accepts both raw OtelSpan objects and LoopTraceEvents
231
+ * (which get converted to OTLP spans automatically).
232
+ */
233
+ interface OtelExportConfig {
234
+ /** OTLP endpoint. Reads OTEL_EXPORTER_OTLP_ENDPOINT env by default. */
235
+ endpoint?: string;
236
+ /** OTLP headers. Reads OTEL_EXPORTER_OTLP_HEADERS env by default. */
237
+ headers?: Record<string, string>;
238
+ /** Batch size before flush. Default 64. */
239
+ batchSize?: number;
240
+ /** Flush interval ms. Default 5000. */
241
+ flushIntervalMs?: number;
242
+ /** Resource attributes stamped on every export. */
243
+ resourceAttributes?: Record<string, string | number | boolean>;
244
+ /** Service name. Default 'agent-runtime'. */
245
+ serviceName?: string;
246
+ }
247
+ interface OtelExporter {
248
+ /** Export a span. */
249
+ exportSpan(span: OtelSpan): void;
250
+ /** Force flush pending spans. */
251
+ flush(): Promise<void>;
252
+ /** Shutdown cleanly. */
253
+ shutdown(): Promise<void>;
254
+ }
255
+ interface OtelSpan {
256
+ traceId: string;
257
+ spanId: string;
258
+ parentSpanId?: string;
259
+ name: string;
260
+ kind?: number;
261
+ startTimeUnixNano: string;
262
+ endTimeUnixNano: string;
263
+ attributes?: OtelAttribute[];
264
+ status?: {
265
+ code: number;
266
+ message?: string;
267
+ };
268
+ }
269
+ interface OtelAttribute {
270
+ key: string;
271
+ value: {
272
+ stringValue?: string;
273
+ intValue?: string;
274
+ doubleValue?: number;
275
+ boolValue?: boolean;
276
+ };
277
+ }
278
+ /**
279
+ * Create an OTEL exporter. Returns undefined when no endpoint is configured.
280
+ */
281
+ declare function createOtelExporter(config?: OtelExportConfig): OtelExporter | undefined;
282
+ /**
283
+ * Convert a LoopTraceEvent into an OtelSpan for export.
284
+ */
285
+ declare function loopEventToOtelSpan(event: {
286
+ kind: string;
287
+ runId: string;
288
+ timestamp: number;
289
+ payload: object;
290
+ }, traceId: string, parentSpanId?: string): OtelSpan;
291
+ /**
292
+ * Sink-neutral node in a reconstructed loop span tree. The root node's
293
+ * `parentSpanId` is `undefined` — sinks decide how to parent it (the OTEL
294
+ * mapper attaches the inherited delegation span; the delegation journal
295
+ * leaves it as the tree root).
296
+ */
297
+ interface LoopSpanNode {
298
+ spanId: string;
299
+ parentSpanId?: string;
300
+ /** `'loop'` | `'loop.round'` | `'loop.iteration'`. */
301
+ name: string;
302
+ /** Topology level: loop root, plan round, or iteration branch. */
303
+ kind: 'loop' | 'round' | 'branch';
304
+ startMs: number;
305
+ endMs: number;
306
+ attrs: Record<string, string | number | boolean>;
307
+ /** True when the iteration carried an error — maps to OTEL status code 2. */
308
+ error: boolean;
309
+ }
310
+ /**
311
+ * Build a nested, real-duration OTLP span tree for ONE loop run from its full
312
+ * ordered `LoopTraceEvent` stream. Unlike `loopEventToOtelSpan` (one flat,
313
+ * zero-duration span per event), this reconstructs the topology hierarchy a
314
+ * GenAI trace viewer renders natively:
315
+ *
316
+ * loop (invoke_workflow)
317
+ * └─ loop.round[k] (invoke_workflow) ← tangle.loop.move.{kind,width,rationale}
318
+ * ├─ loop.iteration[i] (invoke_agent) ← gen_ai.agent.name + usage + verdict + placement
319
+ * └─ …
320
+ *
321
+ * Attributes follow the current GenAI semconv (`gen_ai.*`) where they apply and
322
+ * a namespaced `tangle.loop.*` / `tangle.cost.usd` extension for topology /
323
+ * verdict / placement / cost (not yet standardized). Pure: feed it a buffered
324
+ * per-runId event array (e.g. flushed on `loop.ended`) and export the result.
325
+ */
326
+ declare function buildLoopOtelSpans(events: ReadonlyArray<{
327
+ kind: string;
328
+ runId: string;
329
+ timestamp: number;
330
+ payload: object;
331
+ }>, traceId: string, rootParentSpanId?: string): OtelSpan[];
332
+ /**
333
+ * Sink-neutral core behind {@link buildLoopOtelSpans}: reconstruct the
334
+ * loop → round → branch span tree from one run's ordered `LoopTraceEvent`
335
+ * stream. Consumed by the OTEL mapper above and by the MCP delegation
336
+ * journal's compact trace tee — one topology reconstruction, two sinks.
337
+ * Tolerates partial streams (a run that never reached `loop.ended` closes
338
+ * at the last observed event's timestamp).
339
+ */
340
+ declare function buildLoopSpanNodes(events: ReadonlyArray<{
341
+ kind: string;
342
+ runId: string;
343
+ timestamp: number;
344
+ payload: object;
345
+ }>): LoopSpanNode[];
346
+ /** Wire version the eval-runs ingest enforces (X-Tangle-Wire-Version + body). */
347
+ declare const INTELLIGENCE_WIRE_VERSION = "2026-05-26.v1";
348
+ interface EvalRunGeneration {
349
+ /** 0-based ordinal of this generation within the run (required by ingest). */
350
+ index: number;
351
+ /** Identity of the proposed surface change (content-addressed hash). */
352
+ surfaceHash: string;
353
+ /** Arbitrary provenance for this generation (rationale, evidence, source). */
354
+ surface?: unknown;
355
+ /** Per-scenario results; empty until the generation is measured. */
356
+ cells?: unknown[];
357
+ /** Mean composite score (0 when unmeasured — pair with labels.measured). */
358
+ compositeMean: number;
359
+ costUsd: number;
360
+ durationMs: number;
361
+ }
362
+ interface EvalRunEvent {
363
+ runId: string;
364
+ runDir: string;
365
+ /** ISO timestamp. */
366
+ timestamp: string;
367
+ status: 'started' | 'baseline-complete' | 'generation-complete' | 'gate-decided' | 'finished' | 'errored';
368
+ labels?: Record<string, string>;
369
+ baseline?: EvalRunGeneration;
370
+ generations?: EvalRunGeneration[];
371
+ gateDecision?: 'ship' | 'hold' | 'need_more_work' | 'model_ceiling' | 'arch_ceiling';
372
+ holdoutLift?: number;
373
+ totalCostUsd: number;
374
+ totalDurationMs: number;
375
+ errorMessage?: string;
376
+ }
377
+ interface EvalRunsExportConfig {
378
+ /** Bearer key — tenant is resolved server-side from it. Reads TANGLE_API_KEY. */
379
+ apiKey?: string;
380
+ /** Intelligence base. Reads INTELLIGENCE_BASE env, else prod. */
381
+ base?: string;
382
+ /** Idempotency-Key header (e.g. the runId) — safe retries + upsert. */
383
+ idempotencyKey?: string;
384
+ }
385
+ interface EvalRunsExportResult {
386
+ ok: boolean;
387
+ status: number;
388
+ accepted: number;
389
+ rejected: Array<{
390
+ index: number;
391
+ reason: string;
392
+ }>;
393
+ }
394
+ /**
395
+ * Ship self-improvement eval-run events to Tangle Intelligence. Unlike the
396
+ * best-effort span exporter, this RESOLVES with the ingest verdict (accepted /
397
+ * rejected per event) so a consumer's loop can assert its provenance landed.
398
+ * Throws only on a missing key or network failure.
399
+ */
400
+ declare function exportEvalRuns(events: EvalRunEvent[], config?: EvalRunsExportConfig): Promise<EvalRunsExportResult>;
401
+
402
+ /**
403
+ * @experimental
404
+ *
405
+ * Trace context propagation for MCP subprocess.
406
+ *
407
+ * When the MCP server is launched as a child process by a sandbox harness,
408
+ * the parent passes trace context via environment variables:
409
+ *
410
+ * TRACE_ID=<current-run-trace-id>
411
+ * PARENT_SPAN_ID=<span-that-dispatched-the-delegation>
412
+ *
413
+ * The MCP server reads these at startup and uses them as the root of its
414
+ * internal trace tree. All spans emitted by `runLoop` invocations inside
415
+ * the MCP are children of the parent's delegation span.
416
+ *
417
+ * When these env vars are absent, the MCP generates a fresh trace root —
418
+ * the server operates standalone without trace joining.
419
+ */
420
+
421
+ interface TraceContext {
422
+ /** Trace id inherited from the parent process, or a fresh one. */
423
+ traceId: string;
424
+ /** Parent span id from the delegation that launched this MCP server. */
425
+ parentSpanId?: string;
426
+ }
427
+ /**
428
+ * Read trace context from the process environment.
429
+ * Returns a context with inherited ids or a freshly generated root.
430
+ */
431
+ declare function readTraceContextFromEnv(): TraceContext;
432
+ /**
433
+ * Create a LoopTraceEmitter that:
434
+ * 1. Parents all spans under the inherited PARENT_SPAN_ID.
435
+ * 2. Exports spans to OTEL when OTEL_EXPORTER_OTLP_ENDPOINT is set.
436
+ *
437
+ * Returns both the emitter and the optional exporter handle for shutdown.
438
+ */
439
+ declare function createPropagatingTraceEmitter(ctx: TraceContext): {
440
+ emitter: LoopTraceEmitter;
441
+ exporter: OtelExporter | undefined;
442
+ context: TraceContext;
443
+ };
444
+ /**
445
+ * Build env vars to pass to a child MCP subprocess so it inherits the
446
+ * current trace context.
447
+ */
448
+ declare function traceContextToEnv(ctx: TraceContext): Record<string, string>;
449
+
121
450
  /**
122
451
  * @experimental
123
452
  *
@@ -230,6 +559,13 @@ interface DelegateFeedbackResult {
230
559
  /** @experimental */
231
560
  interface DelegationStatusArgs {
232
561
  taskId: string;
562
+ /**
563
+ * Return the delegation's compact loop-trace span tree alongside the
564
+ * status. Default false — status polls stay light; opt in when you need
565
+ * the topology (which iterations ran, where they were placed, what each
566
+ * cost) rather than just the state machine.
567
+ */
568
+ includeTrace?: boolean;
233
569
  }
234
570
  /** @experimental */
235
571
  interface DelegationProgress {
@@ -347,6 +683,14 @@ interface DelegationStatusResult {
347
683
  costUsd?: number;
348
684
  startedAt: string;
349
685
  completedAt?: string;
686
+ /** Compact loop-trace span tree; present only when `includeTrace: true` was passed and spans were recorded. */
687
+ trace?: DelegationTraceSpan[];
688
+ /** Present when oldest trace spans were dropped to honor the trace caps. */
689
+ traceTruncated?: true;
690
+ /** Inherited trace identity recorded at submit — join key into the caller's trace. */
691
+ traceId?: string;
692
+ /** Caller span that dispatched the delegation, when one was inherited. */
693
+ parentSpanId?: string;
350
694
  }
351
695
  /** @experimental */
352
696
  interface DelegationHistoryArgs {
@@ -377,6 +721,14 @@ interface DelegationHistoryEntry {
377
721
  costUsd?: number;
378
722
  startedAt: string;
379
723
  completedAt?: string;
724
+ /**
725
+ * True when the record carries a journaled loop trace. History stays
726
+ * light by design — fetch the spans via
727
+ * `delegation_status { taskId, includeTrace: true }`.
728
+ */
729
+ hasTrace: boolean;
730
+ /** Inherited trace identity recorded at submit — join key into the caller's trace. */
731
+ traceId?: string;
380
732
  }
381
733
  /** @experimental */
382
734
  interface DelegationHistoryResult {
@@ -440,6 +792,24 @@ interface DelegationRecord {
440
792
  detachedSessionRef?: string;
441
793
  /** Feedback events keyed by this delegation's taskId. */
442
794
  feedback: DelegationFeedbackSnapshot[];
795
+ /**
796
+ * Compact loop-trace span tree teed from the delegation's run, oldest
797
+ * spans first. Appended when a delegated loop reaches `loop.ended` and
798
+ * settled (partial buffers included) at the terminal transition. Capped
799
+ * via `capDelegationTrace` — see `traceTruncated`.
800
+ */
801
+ trace?: DelegationTraceSpan[];
802
+ /** Present when oldest trace spans were dropped to honor the trace caps. */
803
+ traceTruncated?: true;
804
+ /**
805
+ * Inherited trace identity (the queue's `traceContext` at submit time —
806
+ * typically `readTraceContextFromEnv()`), distinct from the span payload:
807
+ * a journal consumer joins records into the parent trace by these ids
808
+ * without parsing spans. Restored records keep their persisted identity.
809
+ */
810
+ traceId?: string;
811
+ /** Caller span that dispatched the delegation, when one was inherited. */
812
+ parentSpanId?: string;
443
813
  }
444
814
  /** @experimental */
445
815
  interface SubmitInput<Args extends AnyDelegateArgs> {
@@ -476,6 +846,16 @@ interface DelegationRunContext {
476
846
  * ref — erasing the resume key would silently make the record unresumable.
477
847
  */
478
848
  updateDetachedSessionRef(ref: string): void;
849
+ /**
850
+ * Per-delegation loop-trace sink, always provided by the queue. Events
851
+ * emitted here are journaled onto the record as a compact span tree
852
+ * (`record.trace`) when each loop run ends and at the delegation's
853
+ * terminal transition. Delegates forward it into their `runLoop` ctx,
854
+ * composed with any process-wide OTEL emitter
855
+ * (`composeLoopTraceEmitters`). Optional in the type so consumer-built
856
+ * contexts stay source-compatible.
857
+ */
858
+ traceEmitter?: LoopTraceEmitter;
479
859
  }
480
860
  /** @experimental */
481
861
  interface SubmitOutput {
@@ -554,6 +934,14 @@ interface DelegationTaskQueueOptions {
554
934
  * degrading durable mode to memory-only would lie to the caller.
555
935
  */
556
936
  onPersistError?: (error: DelegationPersistenceError) => void;
937
+ /**
938
+ * Inherited trace identity stamped on every submitted record
939
+ * (`traceId` / `parentSpanId`). The bin passes
940
+ * `readTraceContextFromEnv()` so journal consumers can join delegation
941
+ * records into the caller's trace. Restored records keep the identity
942
+ * they were persisted with.
943
+ */
944
+ traceContext?: TraceContext;
557
945
  }
558
946
  /** @experimental */
559
947
  declare class DelegationTaskQueue {
@@ -566,6 +954,7 @@ declare class DelegationTaskQueue {
566
954
  private readonly resumeDelegate?;
567
955
  private readonly maxTerminalRecords;
568
956
  private readonly onPersistError;
957
+ private readonly traceContext;
569
958
  private persistTail;
570
959
  private persistFailure;
571
960
  constructor(options?: DelegationTaskQueueOptions);
@@ -593,8 +982,12 @@ declare class DelegationTaskQueue {
593
982
  /**
594
983
  * Snapshot the current state of a delegation. Returns `undefined` for
595
984
  * unknown ids so callers can distinguish missing from terminal.
985
+ * `includeTrace` attaches the journaled loop-trace span tree — off by
986
+ * default so status polls stay light.
596
987
  */
597
- status(taskId: string): DelegationStatusResult | undefined;
988
+ status(taskId: string, opts?: {
989
+ includeTrace?: boolean;
990
+ }): DelegationStatusResult | undefined;
598
991
  /**
599
992
  * Abort an in-flight delegation. Returns `false` if the task is unknown
600
993
  * or already terminal. The underlying `run` function MUST honor the
@@ -624,9 +1017,19 @@ declare class DelegationTaskQueue {
624
1017
  /** Test-only — number of in-flight (non-terminal) records. */
625
1018
  inflightCount(): number;
626
1019
  private execute;
1020
+ private appendTrace;
627
1021
  private rehydrate;
628
1022
  private startResume;
629
1023
  private driveResume;
1024
+ /**
1025
+ * Journal the resumed segment of a detached run as one compact span. The
1026
+ * resume driver re-attaches after a process restart, so the original
1027
+ * process's loop events are gone — this span records the post-restart
1028
+ * observation window (re-attach → terminal tick) under the
1029
+ * `'detached-resume'` driver tag, keeping restored delegations observable
1030
+ * in the journal alongside trace-carrying live runs.
1031
+ */
1032
+ private appendResumeSpan;
630
1033
  private persist;
631
1034
  private persistRemoval;
632
1035
  private failPersistence;
@@ -665,11 +1068,14 @@ declare function hashIdempotencyInput(value: unknown): string;
665
1068
  * SDK stays an optional peer, exactly like the executors' `SandboxClient` seam.
666
1069
  *
667
1070
  * Tradeoffs of detached mode (why it is opt-in, not the default): a detached
668
- * turn yields one terminal payload instead of a live event stream, so per-token
669
- * loop trace events and kernel token/cost aggregation are not produced for that
670
- * turn. Multi-variant fanout stays on the streaming `runLoop` path N
671
- * concurrent sessions cannot be expressed as one resume key, and winner
672
- * selection needs every candidate.
1071
+ * turn yields one terminal payload instead of a live event stream, so kernel
1072
+ * token/cost aggregation is not produced for that turn. The trace sinks still
1073
+ * observe detached work `runDetachedTurn` synthesizes a single-iteration
1074
+ * loop event stream (see `RunDetachedTurnOptions.traceEmitter`) so the span
1075
+ * topology joins the inherited trace context, with cost/tokens reported as 0
1076
+ * under the `'detached-turn'` driver tag. Multi-variant fanout stays on the
1077
+ * streaming `runLoop` path — N concurrent sessions cannot be expressed as one
1078
+ * resume key, and winner selection needs every candidate.
673
1079
  */
674
1080
 
675
1081
  /**
@@ -768,6 +1174,18 @@ interface RunDetachedTurnOptions {
768
1174
  tickIntervalMs?: number;
769
1175
  /** Wall-clock cap forwarded to `driveTurn` — the SDK cancels and fails a session past it. */
770
1176
  wallCapMs?: number;
1177
+ /**
1178
+ * Loop-trace sink. When set, the detached turn synthesizes a
1179
+ * single-iteration loop span tree (`runId` = `sessionId`, driver
1180
+ * `'detached-turn'`) so trace-context inheritance survives the detached
1181
+ * path — the same events the streaming `runLoop` path would emit, minus
1182
+ * per-token telemetry: `driveTurn` yields one terminal payload, so token
1183
+ * and cost figures are structurally unavailable and reported as 0 under
1184
+ * this driver tag.
1185
+ */
1186
+ traceEmitter?: LoopTraceEmitter;
1187
+ /** Physical placement stamped on the synthesized dispatch event. Default `'sibling'`. */
1188
+ placement?: 'sibling' | 'fleet';
771
1189
  }
772
1190
  /**
773
1191
  * Dispatch one detached turn and advance it to a terminal state with
@@ -936,6 +1354,13 @@ interface DelegateRunCtx {
936
1354
  detachedSessionRef?: string;
937
1355
  /** Rebind the record's resume key (e.g. once the sandbox id is known). */
938
1356
  updateDetachedSessionRef?(ref: string): void;
1357
+ /**
1358
+ * Per-delegation trace sink supplied by the queue — loop events emitted
1359
+ * here land on the delegation record as a compact span tree. Delegates
1360
+ * compose it with their configured OTEL emitter so both sinks observe
1361
+ * the same stream.
1362
+ */
1363
+ traceEmitter?: LoopTraceEmitter;
939
1364
  }
940
1365
  /** @experimental */
941
1366
  type CoderDelegate = (args: DelegateCodeArgs, ctx: DelegateRunCtx) => Promise<CoderOutput>;
@@ -1020,7 +1445,8 @@ interface CreateDefaultCoderDelegateOptions {
1020
1445
  * are a cheap no-op when it isn't. Configurable by construction.
1021
1446
  *
1022
1447
  * Detached single-variant turns (taken when `ctx.detachedSessionRef` is set)
1023
- * bypass `runLoop` and therefore emit no loop trace events for that turn.
1448
+ * bypass `runLoop`; `runDetachedTurn` synthesizes a single-iteration loop
1449
+ * event stream for them so this emitter observes detached work too.
1024
1450
  */
1025
1451
  traceEmitter?: LoopTraceEmitter;
1026
1452
  /** Tick cadence (ms) for the detached single-variant path. Default 5000. */
@@ -1142,4 +1568,4 @@ interface CreateKbGateOptions {
1142
1568
  */
1143
1569
  declare function createKbGate(options?: CreateKbGateOptions): (candidate: FactCandidate) => Promise<KbGateResult>;
1144
1570
 
1145
- export { type FeedbackRating as $, type DelegationError as A, type DelegationHistoryEntry as B, type CoderReviewer as C, type DelegateCodeArgs as D, DelegationPersistenceError as E, type FactCandidate as F, type DelegationProfile as G, type DelegationProgress as H, type DelegationRecord as I, type DelegationResultPayload as J, type DelegationResumeContext as K, type DelegationResumeDriver as L, type DelegationResumeTick as M, type DelegationRunContext as N, DelegationStateCorruptError as O, type DelegationStatus as P, type DelegationStore as Q, type ResearcherDelegate as R, type DelegationTaskQueueOptions as S, type DetachedSessionRefParts as T, type UiAuditorDelegate as U, type DetachedTurn as V, type DriveTurnCapableBox as W, type DriveTurnResumeDriverOptions as X, type DriveTurnTick as Y, type FactJudge as Z, type FactJudgeVerdict as _, type CoderWinnerSelection as a, type FeedbackRefersTo as a0, FileDelegationStore as a1, type FileDelegationStoreOptions as a2, type FleetWorkspaceExecutorOptions as a3, InMemoryDelegationStore as a4, type KbGateResult as a5, type ResearchOutputShape as a6, type RunDetachedTurnOptions as a7, type SettleDetachedCoderTurnOptions as a8, type SiblingSandboxExecutorOptions as a9, type SubmitInput as aa, type SubmitOutput as ab, type UiAuditorDelegationOutput as ac, coderTaskFromArgs as ad, createDefaultCoderDelegate as ae, createDriveTurnResumeDriver as af, createFleetWorkspaceExecutor as ag, createKbGate as ah, createSiblingSandboxExecutor as ai, detachedTurnEvents as aj, formatDetachedSessionRef as ak, hashIdempotencyInput as al, parseDetachedSessionRef as am, runDetachedTurn as an, settleDetachedCoderTurn as ao, type CreateKbGateOptions as b, type FleetHandle as c, type DelegationExecutor as d, type DelegateFeedbackArgs as e, type DelegationFeedbackSnapshot as f, DelegationTaskQueue as g, type CoderDelegate as h, type DelegateCodeResult as i, type DelegateFeedbackResult as j, type ResearchSource as k, type DelegateResearchArgs as l, type DelegateResearchResult as m, type DelegateUiAuditArgs as n, type DelegateUiAuditResult as o, type DelegationHistoryResult as p, type DelegationHistoryArgs as q, type DelegationStatusResult as r, type DelegationStatusArgs as s, type CoderReview as t, type CreateDefaultCoderDelegateOptions as u, type DelegateCodeConfig as v, type DelegateResearchConfig as w, type DelegateRunCtx as x, type DelegateUiAuditConfig as y, type DelegateUiAuditRoute as z };
1571
+ export { type DetachedSessionRefParts as $, type DelegateRunCtx as A, type DelegateUiAuditConfig as B, type CoderReviewer as C, type DelegateCodeArgs as D, type DelegateUiAuditRoute as E, type FactCandidate as F, type DelegationError as G, type DelegationHistoryEntry as H, DelegationPersistenceError as I, type DelegationProfile as J, type DelegationProgress as K, type DelegationRecord as L, type DelegationResultPayload as M, type DelegationResumeContext as N, type DelegationResumeDriver as O, type DelegationResumeTick as P, type DelegationRunContext as Q, type ResearcherDelegate as R, DelegationStateCorruptError as S, type TraceContext as T, type UiAuditorDelegate as U, type DelegationStatus as V, type DelegationStore as W, type DelegationTaskQueueOptions as X, type DelegationTraceCaps as Y, type DelegationTraceCollector as Z, type DelegationTraceSpan as _, type CoderWinnerSelection as a, type DetachedTurn as a0, type DriveTurnCapableBox as a1, type DriveTurnResumeDriverOptions as a2, type DriveTurnTick as a3, type FactJudge as a4, type FactJudgeVerdict as a5, type FeedbackRating as a6, type FeedbackRefersTo as a7, FileDelegationStore as a8, type FileDelegationStoreOptions as a9, runDetachedTurn as aA, settleDetachedCoderTurn as aB, traceContextToEnv as aC, type EvalRunEvent as aD, type EvalRunGeneration as aE, type EvalRunsExportConfig as aF, type EvalRunsExportResult as aG, INTELLIGENCE_WIRE_VERSION as aH, type LoopSpanNode as aI, type OtelAttribute as aJ, type OtelExportConfig as aK, type OtelExporter as aL, type OtelSpan as aM, buildLoopOtelSpans as aN, buildLoopSpanNodes as aO, createOtelExporter as aP, exportEvalRuns as aQ, loopEventToOtelSpan as aR, type FleetWorkspaceExecutorOptions as aa, InMemoryDelegationStore as ab, type KbGateResult as ac, type ResearchOutputShape as ad, type RunDetachedTurnOptions as ae, type SettleDetachedCoderTurnOptions as af, type SiblingSandboxExecutorOptions as ag, type SubmitInput as ah, type SubmitOutput as ai, type UiAuditorDelegationOutput as aj, buildDelegationTraceSpans as ak, capDelegationTrace as al, coderTaskFromArgs as am, composeLoopTraceEmitters as an, createDefaultCoderDelegate as ao, createDelegationTraceCollector as ap, createDriveTurnResumeDriver as aq, createFleetWorkspaceExecutor as ar, createKbGate as as, createPropagatingTraceEmitter as at, createSiblingSandboxExecutor as au, detachedTurnEvents as av, formatDetachedSessionRef as aw, hashIdempotencyInput as ax, parseDetachedSessionRef as ay, readTraceContextFromEnv as az, type CreateKbGateOptions as b, type FleetHandle as c, type DelegationExecutor as d, type DelegateFeedbackArgs as e, type DelegationFeedbackSnapshot as f, DelegationTaskQueue as g, type CoderDelegate as h, type DelegateCodeResult as i, type DelegateFeedbackResult as j, type ResearchSource as k, type DelegateResearchArgs as l, type DelegateResearchResult as m, type DelegateUiAuditArgs as n, type DelegateUiAuditResult as o, type DelegationHistoryResult as p, type DelegationHistoryArgs as q, type DelegationStatusResult as r, type DelegationStatusArgs as s, type CappedDelegationTrace as t, type CoderReview as u, type CreateDefaultCoderDelegateOptions as v, DELEGATION_TRACE_MAX_BYTES as w, DELEGATION_TRACE_MAX_SPANS as x, type DelegateCodeConfig as y, type DelegateResearchConfig as z };
@@ -1,10 +1,10 @@
1
1
  import { Scenario } from '@tangle-network/agent-eval/campaign';
2
2
  import { SelfImproveOptions, SelfImproveResult } from '@tangle-network/agent-eval/contract';
3
3
  import { R as RunAnalystLoopOpts, a as RunAnalystLoopResult } from './types-p8dWBIXL.js';
4
- import { D as DelegateCodeArgs, C as CoderReviewer, a as CoderWinnerSelection, F as FactCandidate, b as CreateKbGateOptions } from './kb-gate-CsXpNRk7.js';
5
- import { C as CoderOutput } from './coder-CVZNGbyg.js';
6
- import { S as SandboxClient, O as OutputAdapter, V as Validator, A as AgentRunSpec, b as LoopResult } from './types-nBMuollC.js';
7
- import { T as TopologyPlanner, C as CreateDriverOptions, D as DriverDecision } from './driver-DYU2sgHr.js';
4
+ import { D as DelegateCodeArgs, C as CoderReviewer, a as CoderWinnerSelection, F as FactCandidate, b as CreateKbGateOptions } from './kb-gate-CHAyt4aI.js';
5
+ import { C as CoderOutput } from './coder-_YCf3BAK.js';
6
+ import { S as SandboxClient, O as OutputAdapter, V as Validator, A as AgentRunSpec, b as LoopResult } from './types-BEQsBhOE.js';
7
+ import { T as TopologyPlanner, C as CreateDriverOptions, D as DriverDecision } from './driver-DLI1io57.js';
8
8
 
9
9
  /**
10
10
  * @experimental
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
- export { L as LoopRunnerCliArgs, f as LoopRunnerCliResult, p as parseLoopRunnerArgv, o as runLoopRunnerCli } from './loop-runner-bin-Cgn0A-NW.js';
2
+ export { L as LoopRunnerCliArgs, f as LoopRunnerCliResult, p as parseLoopRunnerArgv, o as runLoopRunnerCli } from './loop-runner-bin-DFUNgpeK.js';
3
3
  import '@tangle-network/agent-eval/campaign';
4
4
  import '@tangle-network/agent-eval/contract';
5
5
  import './types-p8dWBIXL.js';
6
6
  import '@tangle-network/agent-eval';
7
- import './kb-gate-CsXpNRk7.js';
8
- import './coder-CVZNGbyg.js';
7
+ import './kb-gate-CHAyt4aI.js';
8
+ import './coder-_YCf3BAK.js';
9
9
  import '@tangle-network/sandbox';
10
- import './types-nBMuollC.js';
10
+ import './types-BEQsBhOE.js';
11
11
  import './runtime-hooks-C7JwKb9E.js';
12
12
  import './substrate-CUgk7F7s.js';
13
- import './driver-DYU2sgHr.js';
13
+ import './driver-DLI1io57.js';
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  parseLoopRunnerArgv,
4
4
  runLoopRunnerCli
5
- } from "./chunk-U2VEWKKK.js";
5
+ } from "./chunk-BKAIVNFA.js";
6
6
  import "./chunk-FNMGYYSS.js";
7
- import "./chunk-GHX7XOJ2.js";
7
+ import "./chunk-OM3YNZIW.js";
8
8
  import "./chunk-KADIJAD4.js";
9
9
  import "./chunk-HNUXAZIJ.js";
10
- import "./chunk-PXUTIMGJ.js";
10
+ import "./chunk-CM2IK7VS.js";
11
11
  import "./chunk-GSUO5QS6.js";
12
12
  import "./chunk-DGUM43GV.js";
13
13
  export {
package/dist/loops.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  export { AgentProfile, CreateSandboxOptions, SandboxEvent, SandboxInstance } from '@tangle-network/sandbox';
2
- export { AgenticOptions, AgenticRunResult, AgenticSurface, AgenticTask, AgenticTool, AnytimeReport, AnytimeStrategySummary, AnytimeTaskCurve, ArtifactHandle, AssertTraceDerivedFindings, AuditIntentInput, AuditIntentOptions, AuthorStrategyOptions, AuthoredStrategy, BenchmarkCell, BenchmarkConfig, BenchmarkLift, BenchmarkReport, BenchmarkStrategySummary, BenchmarkTaskRow, BridgeSeam, BudgetPool, BudgetReadout, ChampionPick, ChampionPolicy, CheckpointCapableBox, CliSeam, CombinatorShape, Corpus, CorpusFilter, CorpusRecord, CreateScopeAnalystOptions, CriuCapableClient, DefinePersona, DefinePersonaInput, Deliverable, Environment, EqualKArm, EqualKOnCost, EqualKOnCostOptions, EqualKVerdict, EvolutionArchiveNode, EvolutionAuthor, EvolutionBandInfo, EvolutionCandidate, EvolutionGeneration, EvolutionReport, ExecutorConfig, Fanout, FanoutOptions, FanoutSynthesis, FileCorpus, FileResultBlobStore, FileSpawnJournal, FlatWidenGate, ForkCapableBox, GitWorkspaceOptions, HarvestCorpusOptions, HarvestFailure, HarvestReport, InMemoryCorpus, InMemoryResultBlobStore, InMemorySpawnJournal, IntentAudit, LoopDispatchOptions, LoopOptionsForDispatch, LoopShape, LoopUntil, LoopUntilSpec, LoopUntilState, McpEndpoint, McpEnvironmentOptions, Observation, ObserveInput, ObserveOptions, OpenSandboxRunOptions, Outcome, Panel, PanelJudge, PanelSpec, PanelVerdict, Persona, PersonaContext, PersonaExecutors, Pipeline, PipelineStage, PromotionGateOptions, PromotionVerdict, RenderCorpusToInstructions, RenderCorpusToInstructionsOptions, ReservationTicket, RouterSeam, RouterToolsSeam, RunAgenticOptions, RunPersonified, RunPersonifiedOptions, SandboxCapabilities, SandboxLineage, SandboxLineageHandle, SandboxRun, SandboxSeam, ScopeAnalyst, ScopeAnalyzeInput, ScopeWidenGate, SessionCapableBox, ShapeBudget, ShapeContext, ShapeRegistry, Shell, ShotPersona, ShotSpec, SteerContext, Strategy, StrategyCtx, StrategyEvolutionConfig, StrategyResult, SurfaceScore, ToolSpec, TrajectoryNode, TrajectoryReport, TrajectoryReportFn, TrajectoryReportOptions, TurnResult, UsageSink, VerifierEnvironmentOptions, Verify, VerifySpec, WaterfallCollector, WaterfallReport, WaterfallSpan, Widen, WidenDecision, WidenLineage, WidenSpec, Workspace, WorkspaceCommit, acquireSandbox, adaptiveRefine, anytimeReport, assertStrategyContract, assertTraceDerivedFindings, auditIntent, authorStrategy, breadthDriver, buildSteerContext, builtinShapes, contentAddress, createBudgetPool, createExecutor, createExecutorRegistry, createMcpEnvironment, createRootHandle, createSandboxLineage, createScope, createScopeAnalyst, createShapeRegistry, createSupervisor, createVerifierEnvironment, createWaterfallCollector, defaultAnalystInstruction, defaultAuditorInstruction, definePersona, defineStrategy, depthDriver, discriminatingMeans, equalKOnCost, extractLlmCallEvent, fanout, flatWidenGate, gitWorkspace, harvestCorpus, inlineSandboxClient, jjWorkspace, localShell, loopDispatch, loopUntil, mapSandboxEvent, materializeTreeView, observe, openSandboxRun, panel, pickChampion, pipeline, printBenchmarkReport, probeSandboxCapabilities, promotionGate, refine, registerShape, renderAnytimeTable, renderCorpusToInstructions, renderReport, replaySpawnTree, reportLoopUsage, runAgentic, runBenchmark, runPersonified, runStrategyEvolution, sample, sampleThenRefine, selectChampion, settledToIteration, spendFromUsageEvents, strategyAuthorContract, trajectoryReport, verify, widen } from './runtime.js';
3
- export { A as AnalyzeInput, a as CompletionAnalyst, b as CompletionEvidence, c as CompletionPolicy, d as CompletionVerdict, C as CreateDriverOptions, D as DriverDecision, P as PlannerContext, e as TopologyMove, T as TopologyPlanner, f as completionAuthorizes, g as createDriver, h as deterministicCompletion, r as renderAnalyses, s as sentinelCompletion, i as stopSentinel } from './driver-DYU2sgHr.js';
4
- export { R as RunLoopOptions, c as createSandboxForSpec, d as defaultSelectWinner, r as runLoop } from './run-loop-DvD4aGiE.js';
5
- export { A as Agent, d as AgentSpec, B as Budget, j as Executor, k as ExecutorContext, h as ExecutorFactory, E as ExecutorRegistry, l as ExecutorResult, H as Handle, N as NodeId, m as NodeSnapshot, n as NodeStatus, o as Restart, R as ResultBlobStore, e as RootHandle, p as RootSignal, q as Runtime, S as Scope, c as Settled, b as SpawnEvent, a as SpawnJournal, r as SpawnOpts, g as Spend, f as SupervisedResult, i as Supervisor, s as SupervisorOpts, T as TreeView, U as UsageEvent, W as WidenGate } from './types-BpDfCPUp.js';
6
- export { A as AgentRunSpec, D as Driver, E as ExecCtx, I as Iteration, C as LoopDecisionPayload, F as LoopEndedPayload, G as LoopIterationDispatchPayload, H as LoopIterationEndedPayload, J as LoopIterationStartedPayload, a as LoopLineageOptions, M as LoopPlanDescription, N as LoopPlanPayload, b as LoopResult, f as LoopSandboxPlacement, P as LoopStartedPayload, Q as LoopTeardownFailedPayload, c as LoopTokenUsage, e as LoopTraceEmitter, T as LoopTraceEvent, L as LoopWinner, O as OutputAdapter, S as SandboxClient, U as ValidationCtx, V as Validator } from './types-nBMuollC.js';
2
+ export { AgenticOptions, AgenticRunResult, AgenticSurface, AgenticTask, AgenticTool, AnytimeReport, AnytimeStrategySummary, AnytimeTaskCurve, ArtifactHandle, AssertTraceDerivedFindings, AuditIntentInput, AuditIntentOptions, AuthorStrategyOptions, AuthoredStrategy, BenchmarkCell, BenchmarkConfig, BenchmarkLift, BenchmarkReport, BenchmarkStrategySummary, BenchmarkTaskRow, BridgeSeam, BudgetPool, BudgetReadout, ChampionPick, ChampionPolicy, CheckpointCapableBox, CliSeam, CombinatorShape, Corpus, CorpusFilter, CorpusRecord, CreateScopeAnalystOptions, CriuCapableClient, DefinePersona, DefinePersonaInput, Deliverable, Environment, EqualKArm, EqualKOnCost, EqualKOnCostOptions, EqualKVerdict, EvolutionArchiveNode, EvolutionAuthor, EvolutionBandInfo, EvolutionCandidate, EvolutionGeneration, EvolutionReport, ExecutorConfig, Fanout, FanoutOptions, FanoutSynthesis, FileCorpus, FileResultBlobStore, FileSpawnJournal, FlatWidenGate, ForkCapableBox, GitWorkspaceOptions, HarvestCorpusOptions, HarvestFailure, HarvestReport, InMemoryCorpus, InMemoryResultBlobStore, InMemorySpawnJournal, IntentAudit, LoopDispatchOptions, LoopOptionsForDispatch, LoopShape, LoopUntil, LoopUntilSpec, LoopUntilState, McpEndpoint, McpEnvironmentOptions, Observation, ObserveInput, ObserveOptions, OpenSandboxRunOptions, Outcome, Panel, PanelJudge, PanelSpec, PanelVerdict, Persona, PersonaContext, PersonaExecutors, Pipeline, PipelineStage, PromotionGateOptions, PromotionVerdict, RenderCorpusToInstructions, RenderCorpusToInstructionsOptions, ReservationTicket, RouterChatResult, RouterChatToolsResult, RouterConfig, RouterSeam, RouterToolCall, RouterToolLoopResult, RouterToolsSeam, RunAgenticOptions, RunPersonified, RunPersonifiedOptions, SandboxCapabilities, SandboxLineage, SandboxLineageHandle, SandboxRun, SandboxSeam, ScopeAnalyst, ScopeAnalyzeInput, ScopeWidenGate, SessionCapableBox, ShapeBudget, ShapeContext, ShapeRegistry, Shell, ShotPersona, ShotSpec, SteerContext, Strategy, StrategyCtx, StrategyEvolutionConfig, StrategyResult, SurfaceScore, ToolSpec, TrajectoryNode, TrajectoryReport, TrajectoryReportFn, TrajectoryReportOptions, TurnResult, UsageSink, VerifierEnvironmentOptions, Verify, VerifySpec, WaterfallCollector, WaterfallReport, WaterfallSpan, Widen, WidenDecision, WidenLineage, WidenSpec, Workspace, WorkspaceCommit, acquireSandbox, adaptiveRefine, anytimeReport, assertStrategyContract, assertTraceDerivedFindings, auditIntent, authorStrategy, breadthDriver, buildSteerContext, builtinShapes, contentAddress, createBudgetPool, createExecutor, createExecutorRegistry, createMcpEnvironment, createRootHandle, createSandboxLineage, createScope, createScopeAnalyst, createShapeRegistry, createSupervisor, createVerifierEnvironment, createWaterfallCollector, defaultAnalystInstruction, defaultAuditorInstruction, definePersona, defineStrategy, depthDriver, discriminatingMeans, equalKOnCost, extractLlmCallEvent, fanout, flatWidenGate, gitWorkspace, harvestCorpus, inlineSandboxClient, jjWorkspace, localShell, loopDispatch, loopUntil, mapSandboxEvent, materializeTreeView, observe, openSandboxRun, panel, pickChampion, pipeline, printBenchmarkReport, probeSandboxCapabilities, promotionGate, refine, registerShape, renderAnytimeTable, renderCorpusToInstructions, renderReport, replaySpawnTree, reportLoopUsage, routerChatWithTools, routerChatWithUsage, routerToolLoop, runAgentic, runBenchmark, runPersonified, runStrategyEvolution, sample, sampleThenRefine, selectChampion, settledToIteration, spendFromUsageEvents, strategyAuthorContract, trajectoryReport, verify, widen } from './runtime.js';
3
+ export { A as AnalyzeInput, a as CompletionAnalyst, b as CompletionEvidence, c as CompletionPolicy, d as CompletionVerdict, C as CreateDriverOptions, D as DriverDecision, P as PlannerContext, e as TopologyMove, T as TopologyPlanner, f as completionAuthorizes, g as createDriver, h as deterministicCompletion, r as renderAnalyses, s as sentinelCompletion, i as stopSentinel } from './driver-DLI1io57.js';
4
+ export { R as RunLoopOptions, c as createSandboxForSpec, d as defaultSelectWinner, r as runLoop } from './run-loop-BIineL1T.js';
5
+ export { A as Agent, d as AgentSpec, B as Budget, j as Executor, k as ExecutorContext, h as ExecutorFactory, E as ExecutorRegistry, l as ExecutorResult, H as Handle, N as NodeId, m as NodeSnapshot, n as NodeStatus, o as Restart, R as ResultBlobStore, e as RootHandle, p as RootSignal, q as Runtime, S as Scope, c as Settled, b as SpawnEvent, a as SpawnJournal, r as SpawnOpts, g as Spend, f as SupervisedResult, i as Supervisor, s as SupervisorOpts, T as TreeView, U as UsageEvent, W as WidenGate } from './types-5MGt5KTY.js';
6
+ export { A as AgentRunSpec, D as Driver, E as ExecCtx, I as Iteration, F as LoopDecisionPayload, G as LoopEndedPayload, H as LoopIterationDispatchPayload, J as LoopIterationEndedPayload, M as LoopIterationStartedPayload, a as LoopLineageOptions, N as LoopPlanDescription, P as LoopPlanPayload, b as LoopResult, e as LoopSandboxPlacement, Q as LoopStartedPayload, T as LoopTeardownFailedPayload, d as LoopTokenUsage, f as LoopTraceEmitter, g as LoopTraceEvent, L as LoopWinner, O as OutputAdapter, S as SandboxClient, U as ValidationCtx, V as Validator } from './types-BEQsBhOE.js';
7
7
  export { DefaultVerdict } from '@tangle-network/agent-eval';
8
8
  import './runtime-hooks-C7JwKb9E.js';
9
9
  import '@tangle-network/agent-eval/campaign';