@graphrefly/graphrefly 0.40.0 → 0.41.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 (87) hide show
  1. package/dist/{chunk-6XVD5TZV.js → chunk-2W553JJC.js} +1 -1
  2. package/dist/{chunk-WL6LFPJB.js → chunk-33N4TU3X.js} +1 -1
  3. package/dist/{chunk-RZJDIV2G.js → chunk-4MKL6Q3K.js} +1 -1
  4. package/dist/chunk-5B3JDG5F.js +1 -0
  5. package/dist/{chunk-K2Z7UENB.js → chunk-5QSXEMXG.js} +1 -1
  6. package/dist/{chunk-ECQRP2UT.js → chunk-5TEFC2ZX.js} +1 -1
  7. package/dist/{chunk-SVFKHUCW.js → chunk-5TOPVRN6.js} +1 -1
  8. package/dist/{chunk-XJLYLLIJ.js → chunk-5VEZLQFN.js} +1 -1
  9. package/dist/{chunk-32N3JALT.js → chunk-7PQLZMOG.js} +1 -1
  10. package/dist/{chunk-2QXRYP7Q.js → chunk-AI7QC7J6.js} +1 -1
  11. package/dist/{chunk-FHRBBHJN.js → chunk-AK5RHMC5.js} +1 -1
  12. package/dist/{chunk-B7LCDQEV.js → chunk-CGNOWGV6.js} +1 -1
  13. package/dist/{chunk-LCGAVGGV.js → chunk-CYOSWFT2.js} +1 -1
  14. package/dist/{chunk-VMF23LGB.js → chunk-EC2WNSZ7.js} +1 -1
  15. package/dist/{chunk-UWA6D7UF.js → chunk-ELAASRBT.js} +1 -1
  16. package/dist/{chunk-Z4F3DOWS.js → chunk-F7VUYPP6.js} +1 -1
  17. package/dist/{chunk-LYM4PBMV.js → chunk-G3M3IMEV.js} +1 -1
  18. package/dist/{chunk-SSCGRYJ2.js → chunk-GI4Q7PNY.js} +1 -1
  19. package/dist/{chunk-7Q4ZD3YW.js → chunk-H5SCWHWP.js} +1 -1
  20. package/dist/{chunk-6I726LZU.js → chunk-KNVCCBIU.js} +1 -1
  21. package/dist/{chunk-CKFQS2CJ.js → chunk-L77I47VU.js} +1 -1
  22. package/dist/{chunk-I2DEVPMU.js → chunk-M3FQSXEW.js} +1 -1
  23. package/dist/{chunk-WUT362QV.js → chunk-OLIKJUKI.js} +1 -1
  24. package/dist/{chunk-QSK3RRII.js → chunk-OV5AA6HJ.js} +1 -1
  25. package/dist/{chunk-2BX4NB34.js → chunk-POXANAJ6.js} +1 -1
  26. package/dist/chunk-RSMEXK53.js +43 -0
  27. package/dist/{chunk-MNZIKXK4.js → chunk-SC27WTSG.js} +1 -1
  28. package/dist/{chunk-YXDRGKXP.js → chunk-TT4C7DXW.js} +1 -1
  29. package/dist/{chunk-2DMKW2AD.js → chunk-UISPDFJ3.js} +1 -1
  30. package/dist/{chunk-J63M5U46.js → chunk-URJ2VFNC.js} +1 -1
  31. package/dist/{chunk-XW4YDF6G.js → chunk-VV62MIG4.js} +1 -1
  32. package/dist/{chunk-756D5TFD.js → chunk-VXPLLA4P.js} +1 -1
  33. package/dist/{chunk-PPUYQ66A.js → chunk-WZYB3JQS.js} +1 -1
  34. package/dist/{chunk-6VWBPSSY.js → chunk-X7QKTXXC.js} +1 -1
  35. package/dist/{chunk-JKBOIJ22.js → chunk-YQRN4CIV.js} +1 -1
  36. package/dist/chunk-Z6X7B6A4.js +61 -0
  37. package/dist/{chunk-N43XM7BM.js → chunk-ZAJ7J7TO.js} +1 -1
  38. package/dist/compat/index.js +1 -1
  39. package/dist/compat/nestjs/index.js +1 -1
  40. package/dist/compat/zustand/index.js +1 -1
  41. package/dist/extra/index.js +1 -1
  42. package/dist/extra/node.js +1 -1
  43. package/dist/extra/operators.js +1 -1
  44. package/dist/extra/reactive.js +1 -1
  45. package/dist/extra/sources.js +1 -1
  46. package/dist/graph/index.js +1 -1
  47. package/dist/{index-IUCY0OFN.d.ts → index-CG33HeBW.d.ts} +17 -2
  48. package/dist/{index-BTHOTC0Q.d.cts → index-DGD4_fj6.d.cts} +17 -2
  49. package/dist/{index-D1IEZUsj.d.ts → index-DfOK_oL5.d.ts} +204 -199
  50. package/dist/{index-DJ_MPOJ5.d.cts → index-DuRsN9ae.d.cts} +204 -199
  51. package/dist/index.cjs +46 -46
  52. package/dist/index.d.cts +2 -2
  53. package/dist/index.d.ts +2 -2
  54. package/dist/index.js +1 -1
  55. package/dist/patterns/ai/browser.js +1 -1
  56. package/dist/patterns/ai/index.cjs +11 -11
  57. package/dist/patterns/ai/index.js +1 -1
  58. package/dist/patterns/ai/node.js +1 -1
  59. package/dist/patterns/audit/index.js +1 -1
  60. package/dist/patterns/cqrs/index.js +1 -1
  61. package/dist/patterns/demo-shell/index.js +1 -1
  62. package/dist/patterns/domain-templates/index.js +1 -1
  63. package/dist/patterns/graphspec/index.js +1 -1
  64. package/dist/patterns/guarded-execution/index.js +1 -1
  65. package/dist/patterns/harness/index.cjs +8 -8
  66. package/dist/patterns/harness/index.d.cts +4 -4
  67. package/dist/patterns/harness/index.d.ts +4 -4
  68. package/dist/patterns/harness/index.js +1 -1
  69. package/dist/patterns/job-queue/index.cjs +3 -3
  70. package/dist/patterns/job-queue/index.d.cts +1 -1
  71. package/dist/patterns/job-queue/index.d.ts +1 -1
  72. package/dist/patterns/job-queue/index.js +1 -1
  73. package/dist/patterns/lens/index.js +1 -1
  74. package/dist/patterns/memory/index.js +1 -1
  75. package/dist/patterns/messaging/index.js +1 -1
  76. package/dist/patterns/orchestration/index.js +1 -1
  77. package/dist/patterns/process/index.js +1 -1
  78. package/dist/patterns/reactive-layout/index.js +1 -1
  79. package/dist/patterns/reduction/index.js +1 -1
  80. package/dist/patterns/refine-loop/index.js +1 -1
  81. package/dist/patterns/resilient-pipeline/index.js +1 -1
  82. package/dist/patterns/surface/index.js +1 -1
  83. package/dist/{resilience-S33JV6XC.js → resilience-JISHQD2F.js} +1 -1
  84. package/package.json +1 -1
  85. package/dist/chunk-INQFTVZA.js +0 -61
  86. package/dist/chunk-OSZ22J7O.js +0 -1
  87. package/dist/chunk-YKD7WUYJ.js +0 -43
@@ -1,11 +1,11 @@
1
1
  import { NodeInput } from './extra/sources.cjs';
2
2
  import { N as Node } from './node-BYInONRr.cjs';
3
3
  import { L as LLMAdapter } from './types-1Dhoi7HM.cjs';
4
+ import { J as JobEnvelope, a as JobFlowGraph, b as JobQueueGraph } from './index-DGD4_fj6.cjs';
4
5
  import { T as TopicGraph, M as MessagingHubGraph } from './index-Cnr1WrlX.cjs';
5
6
  import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-t6L2qpHh.cjs';
6
7
  import { G as Graph, t as GraphProfileResult, s as GraphProfileOptions } from './graph-E6likq7w.cjs';
7
8
  import { G as GateController } from './pipeline-graph-MWrQZXCq.cjs';
8
- import { J as JobQueueGraph } from './index-BTHOTC0Q.cjs';
9
9
 
10
10
  /**
11
11
  * Strategy model and priority scoring (roadmap §9.0).
@@ -278,37 +278,72 @@ interface QueueConfig {
278
278
  startOpen?: boolean;
279
279
  }
280
280
  /**
281
- * Pluggable EXECUTE slot. Given the reactive `executeInput` stream of
282
- * triaged items, produce a stream of `ExecuteOutput<A>` decisions.
283
- *
284
- * **Contract** (see design note in `docs/optimizations.md` / session log):
285
- * 1. Emit DATA exactly once per completed execution — not on input arrival.
286
- * 2. Cancel in-flight work when a new item supersedes the current one
287
- * (`switchMap` is the idiomatic pattern).
288
- * 3. Do not bypass `input.cache` the harness pairs output with item via
289
- * `withLatestFrom(output, input)`. A side-state mirror of the item can
290
- * desync under nested-drain ordering.
291
- * 4. The returned node IS the primary of a subsequent `withLatestFrom`;
292
- * firing on input arrival (rather than result completion) causes verify
293
- * to pair with a stale/null ExecuteOutput.
294
- *
295
- * `refineExecutor` makes all four rules structurally unreachable.
281
+ * Accumulating per-job payload threaded through the harness's
282
+ * `executeFlow` ({@link harnessLoop} Tier 6.5 C2 lock). Each stage's work fn
283
+ * receives the prior payload and returns a new one with its own field
284
+ * filled in:
285
+ *
286
+ * - The `enqueueEffect` seeds with `{ item }` only.
287
+ * - The execute work fn fills `execution`.
288
+ * - The verify work fn fills `verify`.
289
+ *
290
+ * The post-completed dispatch effect reads `verify.verified` /
291
+ * `verify.errorClass` to route the item to `verifyResults` /
292
+ * `retryTopic.publish(...)` / `intake.publish(...)` (3-way verdict).
293
+ *
294
+ * Carrying `item` through stage payloads (rather than re-pairing via a
295
+ * separate `withLatestFrom` node) is the C2 deviation from today's
296
+ * `executeContextNode` design: each `JobEnvelope` is self-contained, so the
297
+ * verify pump can run multiple in-flight jobs in parallel without an
298
+ * external pairing node.
296
299
  */
297
- type HarnessExecutor<A = unknown> = (input: Node<TriagedItem | null>) => Node<ExecuteOutput<A> | null>;
300
+ interface HarnessJobPayload<A = unknown> {
301
+ /** The triaged item flowing through execute → verify → dispatch. */
302
+ item: TriagedItem;
303
+ /** Filled by the execute work fn. Verify reads this; dispatch routes. */
304
+ execution?: ExecutionResult<A>;
305
+ /** Filled by the verify work fn. Dispatch reads `verified` / `errorClass`. */
306
+ verify?: VerifyOutput;
307
+ }
298
308
  /**
299
- * Pluggable VERIFY slot. Receives a pre-paired `[executeOutput, triagedItem]`
300
- * context node the harness creates this via `withLatestFrom(executeNode,
301
- * executeInput)` once and shares it with both the verifier and the internal
302
- * fast-retry dispatcher, so verifier implementations do NOT need to build
303
- * their own pairing node (and doubling the `withLatestFrom` would pay the
304
- * subscription cost twice).
305
- *
306
- * Same contract rules 1–3 as {@link HarnessExecutor}. Rule 4 does not
307
- * apply (verify output isn't a primary to a further withLatestFrom).
308
- *
309
- * `evalVerifier` handles the re-evaluation case against affected eval tasks.
309
+ * Pluggable EXECUTE work fn — receives a {@link JobEnvelope} carrying a
310
+ * {@link HarnessJobPayload} (with `item` set, `execution` / `verify`
311
+ * unset), returns a {@link NodeInput} that emits the same payload with
312
+ * `execution` filled.
313
+ *
314
+ * **C2 contract (Tier 6.5 lock, 2026-04-28):**
315
+ * 1. Emit DATA exactly once per claimed job. The JobFlow pump subscribes
316
+ * once, takes the first DATA, then unsubscribes. Subsequent emissions
317
+ * are ignored.
318
+ * 2. Errors must be caught and surfaced as a `failure` outcome inside the
319
+ * payload never throw / return ERROR. A pump nack would drop the
320
+ * item from JobFlow before the dispatch effect could route it.
321
+ * 3. The work fn runs once per claim — no internal `switchMap` needed.
322
+ * Per-item subgraphs (e.g. a fresh `refineLoop` per claim) are
323
+ * instantiated inside the work fn body.
324
+ *
325
+ * `defaultLlmExecutor` (in `defaults.ts`) is a thin `adapter.invoke()`
326
+ * wrapper. `refineExecutor` builds a per-claim `refineLoop`.
327
+ * `actuatorExecutor` runs a side-effecting `apply(item, signal)`.
310
328
  */
311
- type HarnessVerifier<A = unknown> = (context: Node<readonly [ExecuteOutput<A> | null, TriagedItem | null] | null>) => Node<VerifyOutput | null>;
329
+ type HarnessExecutor<A = unknown> = (job: JobEnvelope<HarnessJobPayload<A>>) => NodeInput<HarnessJobPayload<A>>;
330
+ /**
331
+ * Pluggable VERIFY work fn — receives a {@link JobEnvelope} whose payload
332
+ * has `item` + `execution` populated, returns a {@link NodeInput} that
333
+ * emits the same payload with `verify` filled.
334
+ *
335
+ * Same C2 contract rules 1–3 as {@link HarnessExecutor}. The dispatch
336
+ * effect downstream reads `verify.verified` (success → ack +
337
+ * verifyResults publish), `verify.errorClass === "self-correctable"`
338
+ * (retry → republish to retry topic with `$retries` bumped), or anything
339
+ * else (structural → reingest to intake if budget remains).
340
+ *
341
+ * Verify-LLM-call failures (parse error, adapter throw, timeout) MUST be
342
+ * caught and surfaced as a structural-failure `verify` payload (`{
343
+ * verified: false, findings: [...], errorClass: "structural" }`) so the
344
+ * dispatch effect can route the item rather than silently drop it.
345
+ */
346
+ type HarnessVerifier<A = unknown> = (job: JobEnvelope<HarnessJobPayload<A>>) => NodeInput<HarnessJobPayload<A>>;
312
347
  /** Triage prompt callable shape — pair of `[intake item, strategy snapshot]`. */
313
348
  type TriagePromptFn = (pair: readonly [IntakeItem, StrategySnapshot]) => string;
314
349
  /** Execute prompt callable shape. */
@@ -372,55 +407,63 @@ interface HarnessLoopOptions<A = unknown> {
372
407
  maxTotalReingestions?: number;
373
408
  /** Retained limit for topic logs (default 1000). */
374
409
  retainedLimit?: number;
410
+ /**
411
+ * Per-pump-tick claim cap on the internal `executeFlow` JobFlow's `execute`
412
+ * stage (Tier 6.5 C2). Default `Number.MAX_SAFE_INTEGER` — every pending
413
+ * claim is processed in one tick (matches today's unbounded `merge()`
414
+ * parallelism). Lower this to bound LLM cost spikes on bursty intake.
415
+ *
416
+ * **Caveat.** This caps **claims per pump tick**, not total concurrent
417
+ * inflight. Bounded-inflight is a separate primitive concern — see
418
+ * `docs/optimizations.md` "Tier 6.5 follow-up — bounded concurrent inflight
419
+ * on JobFlow stages".
420
+ */
421
+ executeMaxPerPump?: number;
422
+ /**
423
+ * Per-pump-tick claim cap on the internal `executeFlow` JobFlow's
424
+ * `verify` stage. Default `Number.MAX_SAFE_INTEGER`. Same caveat as
425
+ * {@link HarnessLoopOptions.executeMaxPerPump}. Honored independently
426
+ * of the execute cap via `StageDef.maxPerPump` (Tier 6.5 D1).
427
+ */
428
+ verifyMaxPerPump?: number;
375
429
  }
376
430
 
377
431
  /**
378
- * actuatorExecutor — bridge a side-effecting actuator into the harness EXECUTE slot.
432
+ * actuatorExecutor — bridge a side-effecting actuator into the harness
433
+ * EXECUTE work fn.
379
434
  *
380
435
  * `refineExecutor` covers the artifact-typed case (refine a candidate
381
436
  * `T` against an evaluator); `actuatorExecutor` covers the side-effecting
382
437
  * case (write a catalog entry, mutate a template registry, edit a doc on
383
438
  * disk). The user's `apply` callback owns the side effect; the executor
384
- * wraps it in the per-item lifecycle that makes the four
385
- * {@link HarnessExecutor} contract rules structurally unreachable:
386
- *
387
- * 1. **One DATA per actuation.** The inner producer captures the first
388
- * DATA from the bridged `apply` result, emits a single
389
- * `ExecuteOutput<R>` carrying the actuation record as `artifact`, and
390
- * completes. Subsequent inner DATAs are ignored.
391
- * 2. **Cancel-on-supersede.** A new triaged item supersedes via
392
- * `switchMap`; the prior producer's cleanup fires `ac.abort()`, which
393
- * propagates into `apply`'s `signal` (and through `fromAny`'s
394
- * internal cancellation hooks) so signal-aware actuators stop
395
- * in-flight work instead of double-writing.
396
- * 3. **Item via deps, not closure mirror.** The triaged item is captured
397
- * in the `switchMap` callback's lexical scope, not mirrored to a
398
- * side-state node same shape as `refineExecutor`.
399
- * 4. **Fires on result, not input.** The producer emits exactly when
400
- * `apply`'s bridged node settles (or fails). Input-arrival waves
401
- * never produce an `ExecuteOutput`.
402
- *
403
- * **What `apply` may return.** Anything `fromAny` accepts: a
404
- * `Promise<R>`, a `Node<R>`, an `AsyncIterable<R>`, an `Iterable<R>`,
405
- * or a synchronous `R`. `Promise<R>` is the typical shape (`writeFile`,
406
- * `fetch`, `db.execute`); reactive composition through `Node<R>` is the
407
- * escape hatch when the actuator itself wants to surface intermediate
408
- * progress before settling.
439
+ * wraps it in the per-claim lifecycle:
440
+ *
441
+ * 1. **One DATA per claim.** The producer captures the first DATA from
442
+ * the bridged `apply` result, emits a {@link HarnessJobPayload} with
443
+ * `execution` filled in, and completes. Subsequent inner DATAs are
444
+ * ignored.
445
+ * 2. **Cancel-on-teardown.** When the JobFlow pump unsubscribes (after
446
+ * capturing first DATA, or on graph teardown), the producer's cleanup
447
+ * fires `ac.abort()` which propagates into `apply`'s `signal`.
448
+ * 3. **Errors surfaced as failure payload.** A thrown / ERROR result is
449
+ * mapped via `onError` into a `failure`-outcome `ExecuteOutput` so the
450
+ * dispatch effect can route the item rather than silently dropping it.
451
+ *
452
+ * **What `apply` may return.** Anything `fromAny` accepts: `Promise<R>`,
453
+ * `Node<R>`, `AsyncIterable<R>`, `Iterable<R>`, or a synchronous `R`.
454
+ * `Promise<R>` is the typical shape (`writeFile`, `fetch`, `db.execute`).
409
455
  *
410
456
  * **Pairing with `evalVerifier`.** `ExecuteOutput.artifact` is set to
411
457
  * the actuation record; an `evalVerifier<R>` whose `extractArtifact`
412
- * returns the record (or a transform of it typically the post-apply
413
- * world state needed by the evaluator) closes the EXECUTE → VERIFY loop
414
- * with consistent typing end-to-end.
458
+ * returns the record (or the post-apply world state) closes EXECUTE
459
+ * VERIFY with consistent typing end-to-end.
415
460
  *
416
461
  * @module
417
462
  */
418
463
 
419
464
  /**
420
465
  * What an actuator's `apply` may return. Mirrors `NodeInput<R>` plus a
421
- * raw `R` for synchronous side effects, so callers can write the most
422
- * direct shape for their case (Promise for async I/O, raw record for
423
- * pure in-memory mutation).
466
+ * raw `R` for synchronous side effects.
424
467
  */
425
468
  type ActuatorResult<R> = NodeInput<R>;
426
469
  /** Configuration for {@link actuatorExecutor}. */
@@ -428,8 +471,8 @@ interface ActuatorExecutorConfig<R> {
428
471
  /**
429
472
  * Apply the side effect for this triaged item. Receives the abort
430
473
  * signal — actuators that own real I/O should thread `signal` into
431
- * `fetch`, `fs.writeFile`, child-process kills, etc. so that
432
- * `switchMap` supersede actually cancels in-flight work.
474
+ * `fetch`, `fs.writeFile`, child-process kills, etc. so that the
475
+ * pump's teardown actually cancels in-flight work.
433
476
  *
434
477
  * The first DATA emitted by the bridged result wins; later DATAs are
435
478
  * discarded. ERROR (or a synchronous throw) is mapped via `onError`.
@@ -440,28 +483,21 @@ interface ActuatorExecutorConfig<R> {
440
483
  /**
441
484
  * Optional gate — when provided and returning `false`, the actuator
442
485
  * is skipped and the executor emits an `ExecuteOutput` with
443
- * `outcome: "failure"` and detail from `skipDetail` (default
444
- * `"actuator skipped (shouldApply returned false)"`). Use this to
445
- * route interventions the actuator can't handle (e.g. `intervention:
446
- * "investigate"` items) into the failure path so the verifier sees
447
- * them.
486
+ * `outcome: "failure"`. Use to route interventions the actuator can't
487
+ * handle into the failure path.
448
488
  */
449
489
  shouldApply?: (item: TriagedItem) => boolean;
450
490
  /** Detail string for the skip path. Default: includes intervention name. */
451
491
  skipDetail?: (item: TriagedItem) => string;
452
492
  /**
453
493
  * Map a successfully-applied actuation record into an `ExecuteOutput<R>`.
454
- * Default: `outcome: "success"`, `detail` references the intervention
455
- * + summary, `artifact: record`.
456
494
  */
457
495
  toOutput?: (record: R, item: TriagedItem) => ExecuteOutput<R>;
458
496
  /**
459
- * Map a thrown / ERROR result into an `ExecuteOutput<R>`. Default:
460
- * `outcome: "failure"`, `detail` carries the error message,
461
- * `artifact: undefined`.
497
+ * Map a thrown / ERROR result into an `ExecuteOutput<R>`.
462
498
  */
463
499
  onError?: (err: unknown, item: TriagedItem) => ExecuteOutput<R>;
464
- /** Node name prefix for `describe()` introspection. Default `"actuator-executor"`. */
500
+ /** Node name prefix for `describe()` introspection. */
465
501
  name?: string;
466
502
  }
467
503
  /**
@@ -479,11 +515,7 @@ interface ActuatorExecutorConfig<R> {
479
515
  * },
480
516
  * shouldApply: (item) => item.intervention === "catalog-fn",
481
517
  * }),
482
- * verifier: evalVerifier<CatalogPatch>({
483
- * evaluator,
484
- * datasetFor,
485
- * extractArtifact: (exec) => exec.artifact ?? null,
486
- * }),
518
+ * verifier: evalVerifier<CatalogPatch>({ ... }),
487
519
  * });
488
520
  * ```
489
521
  */
@@ -505,7 +537,7 @@ interface DispatchActuatorConfig<R> {
505
537
  routes: Readonly<Partial<Record<TriagedItem["intervention"], ActuatorApplyFn<R>>>>;
506
538
  /** Fallback apply callback for items whose intervention is not in `routes`. */
507
539
  default?: ActuatorApplyFn<R>;
508
- /** Node name prefix for `describe()` introspection. Default `"dispatch-actuator"`. */
540
+ /** Node name prefix for `describe()` introspection. */
509
541
  name?: string;
510
542
  }
511
543
  /**
@@ -516,22 +548,6 @@ interface DispatchActuatorConfig<R> {
516
548
  * intervention → callback at call-time. Items with no matching route and no
517
549
  * `default` emit a skip-failure with detail
518
550
  * `"no route for intervention 'X'"`.
519
- *
520
- * @example Multi-intervention dogfood loop.
521
- * ```ts
522
- * const harness = harnessLoop("repair", {
523
- * adapter,
524
- * executor: dispatchActuator<CatalogPatch>({
525
- * routes: {
526
- * "catalog-fn": catalogFnActuator,
527
- * "template": templateActuator,
528
- * "docs": docEditActuator,
529
- * },
530
- * default: investigateActuator,
531
- * }),
532
- * verifier: evalVerifier<CatalogPatch>({ ... }),
533
- * });
534
- * ```
535
551
  */
536
552
  declare function dispatchActuator<R>(config: DispatchActuatorConfig<R>): HarnessExecutor<R>;
537
553
 
@@ -906,9 +922,9 @@ declare function effectivenessTracker(opts?: EffectivenessTrackerOptions): Effec
906
922
  * into the same `Evaluator<T>` shape that `refineLoop` used. Consistent
907
923
  * scoring between EXECUTE and VERIFY — no "LLM said it looks fine" gap.
908
924
  *
909
- * Per-item lifecycle mirrors `refineExecutor`: each new execute-context
910
- * pair mounts a fresh eval subgraph inside `switchMap`, so a superseding
911
- * item cancels the prior run.
925
+ * **C2 lifecycle (Tier 6.5).** The work fn is invoked once per claimed
926
+ * verify-stage job. A fresh single-candidate eval subgraph is mounted
927
+ * inside the work fn and tears down when the JobFlow pump ack/unsubs.
912
928
  *
913
929
  * @module
914
930
  */
@@ -924,8 +940,6 @@ interface EvalVerifierSummary {
924
940
  * True when the EXECUTE stage did not produce an artifact (i.e.
925
941
  * `extractArtifact` returned `null` / `undefined`). Downstream mappers
926
942
  * can distinguish this from "evaluator ran but everything scored zero".
927
- * When `true`, `scores` / `total` / `passCount` are all zero and
928
- * `meanScore` is `-Infinity`.
929
943
  */
930
944
  readonly missingArtifact?: boolean;
931
945
  }
@@ -935,41 +949,30 @@ interface EvalVerifierConfig<T> {
935
949
  * Pull the artifact that should be re-evaluated out of the execute-stage
936
950
  * output. Default: `(exec) => exec.artifact as T` — works out-of-the-box
937
951
  * with `refineExecutor` (which populates `artifact` by default).
938
- *
939
- * **Type trust:** the default cast assumes the caller's executor wrote
940
- * a `T`-shaped value to `ExecuteOutput.artifact`. A wrong-typed artifact
941
- * surfaces as a runtime error inside `evaluator`, not here — supply a
942
- * narrowing `extractArtifact` if you need stricter validation.
943
952
  */
944
953
  extractArtifact?: (exec: ExecuteOutput<T>, item: TriagedItem) => T | null | undefined;
945
954
  /**
946
955
  * Reactive evaluator — same contract as `refineLoop`'s `Evaluator<T>`.
947
- * Typically this is the SAME evaluator configured inside `refineExecutor`
948
- * so EXECUTE and VERIFY scoring stay consistent.
949
956
  */
950
957
  evaluator: Evaluator<T>;
951
958
  /**
952
- * Resolve which dataset rows to score this verification against. Use
953
- * `affectedTaskFilter` or hand-roll per-item subset logic. Default:
954
- * empty array (verifier emits a findings entry explaining this).
959
+ * Resolve which dataset rows to score this verification against.
955
960
  */
956
961
  datasetFor: (item: TriagedItem) => readonly DatasetItem[];
957
962
  /** Mean score required to pass verification. Default `0.5`. */
958
963
  threshold?: number;
959
964
  /** Optional output mapper — override the default findings / errorClass shape. */
960
965
  toOutput?: (summary: EvalVerifierSummary) => VerifyOutput;
961
- /** Node name prefix for introspection. Default `"eval-verifier"`. */
966
+ /** Node name prefix for introspection. */
962
967
  name?: string;
963
968
  }
964
969
  /**
965
970
  * Build a {@link HarnessVerifier} that re-runs the eval suite against the
966
971
  * artifact produced by EXECUTE.
967
972
  *
968
- * Consumes the shared `[executeOutput, item]` context node that the
969
- * harness pre-pairs via `withLatestFrom` no internal re-wrap here (QA
970
- * round: "defaultLlmVerifier double-wraps withLatestFrom"). The harness's
971
- * single `executeContextNode` is reused by both the verifier and the
972
- * fast-retry dispatcher, so exec + item are subscribed once per wave.
973
+ * Reads `job.payload.execution` (filled by the upstream execute work fn)
974
+ * and runs the evaluator against `extractArtifact(execution, item)`.
975
+ * Returns the same payload with `verify` filled in.
973
976
  *
974
977
  * @example Pair with refineExecutor for end-to-end eval consistency.
975
978
  * ```ts
@@ -1015,18 +1018,6 @@ interface HarnessEvalPairConfig<T> {
1015
1018
  * configuration is a compile error instead of a silent `as T` in
1016
1019
  * `extractArtifact`. Shares the evaluator so EXECUTE and VERIFY score with
1017
1020
  * identical semantics (the whole point of `evalVerifier`).
1018
- *
1019
- * @example
1020
- * ```ts
1021
- * const { executor, verifier } = harnessEvalPair<CatalogEntry>({
1022
- * seedFrom: (item) => initialCatalogEntry(item),
1023
- * evaluator: (cands, ds) => runEvalBatch(cands, ds),
1024
- * strategy: errorCritique({ teacher, width: 3 }),
1025
- * datasetFor: affectedTasksFor,
1026
- * threshold: 0.8,
1027
- * });
1028
- * const harness = harnessLoop<CatalogEntry>("repair", { adapter, executor, verifier });
1029
- * ```
1030
1021
  */
1031
1022
  declare function harnessEvalPair<T>(config: HarnessEvalPairConfig<T>): {
1032
1023
  executor: HarnessExecutor<T>;
@@ -1049,18 +1040,33 @@ declare function harnessEvalPair<T>(config: HarnessEvalPairConfig<T>): {
1049
1040
  * (topic name), not code — every routing decision is a visible edge in
1050
1041
  * `describe()` / `explain()`.
1051
1042
  *
1043
+ * **EXECUTE/VERIFY via JobFlow (Tier 6.5 C2 lock, 2026-04-28).** The
1044
+ * stages 5–6 EXECUTE → VERIFY pair runs through an internal `executeFlow`
1045
+ * JobFlow with two stages (`execute`, `verify`). Each stage's pump owns
1046
+ * `claim → work → ack` for one claim; the verify stage's payload contains
1047
+ * `{ item, execution, verify }` so the post-completed dispatch effect can
1048
+ * route the 3-way verdict (verified / self-correctable retry / structural
1049
+ * + reingest) without any cross-wave `withLatestFrom` pairing. Items
1050
+ * arriving from per-route topics + retry feedback enter via a single
1051
+ * `enqueueEffect` that pushes to `executeFlow.queue("execute")`.
1052
+ *
1052
1053
  * @module
1053
1054
  */
1054
1055
 
1055
1056
  /**
1056
- * Build the default EXECUTE slota `promptNode` driven by the given
1057
- * adapter and prompt template. This is the factory behind the harness's
1058
- * zero-config execute stage.
1057
+ * Build the default EXECUTE work fn calls `adapter.invoke()` once per
1058
+ * claimed job, parses the JSON response into an `ExecuteOutput<A>`, and
1059
+ * returns a {@link HarnessJobPayload} with `execution` filled in.
1060
+ *
1061
+ * Errors (parse failure, adapter throw, malformed JSON) are caught and
1062
+ * surfaced as a `failure`-outcome payload — the dispatch effect routes
1063
+ * the item rather than dropping it via pump nack (see C2 contract on
1064
+ * {@link HarnessExecutor}).
1059
1065
  *
1060
- * Obeys all four rules of the {@link HarnessExecutor} contract: `promptNode`
1061
- * internally uses `switchMap` + `fromAny` for cancellation (rule 2), emits
1062
- * once per resolved LLM invocation (rules 1 + 4), and reads the triaged
1063
- * item exclusively through its `deps` argument (rule 3).
1066
+ * Subsumes the pre-Tier-6.5 `promptNode`-based default: per-claim LLM
1067
+ * calls don't benefit from `promptNode`'s cross-wave switchMap, and a
1068
+ * fresh per-claim subgraph would be wasteful. Direct `adapter.invoke`
1069
+ * is the right shape inside JobFlow pumps.
1064
1070
  *
1065
1071
  * @param adapter - LLMAdapter for the execute call.
1066
1072
  * @param prompt - Prompt template (string or `(item) => string`). Defaults
@@ -1068,37 +1074,45 @@ declare function harnessEvalPair<T>(config: HarnessEvalPairConfig<T>): {
1068
1074
  */
1069
1075
  declare function defaultLlmExecutor<A = unknown>(adapter: LLMAdapter, prompt?: string | ExecutePromptFn): HarnessExecutor<A>;
1070
1076
  /**
1071
- * Build the default VERIFY slota `promptNode` that reviews a
1072
- * pre-paired `[executeOutput, item]` context node. The harness creates
1073
- * the pairing (via `withLatestFrom(executeNode, executeInput)`) once and
1074
- * shares it with both the verifier and the internal fast-retry
1075
- * dispatcher, so the default verifier can consume the context directly
1076
- * without building its own withLatestFrom.
1077
- *
1078
- * @param adapter - LLMAdapter for the verify call.
1079
- * @param prompt - Prompt template. Defaults to the harness's built-in
1080
- * verify prompt (receives the full pair, extracts both).
1077
+ * Build the default VERIFY work fn calls `adapter.invoke()` once per
1078
+ * claimed job to review the prior-stage execution, parses the JSON
1079
+ * response into a `VerifyOutput`, and returns a {@link HarnessJobPayload}
1080
+ * with `verify` filled in.
1081
+ *
1082
+ * Same C2 error semantics as {@link defaultLlmExecutor}: parse / adapter
1083
+ * failures are surfaced as a structural-failure verify payload so the
1084
+ * dispatch effect routes the item.
1081
1085
  */
1082
1086
  declare function defaultLlmVerifier<A = unknown>(adapter: LLMAdapter, prompt?: string | VerifyPromptFn<A>): HarnessVerifier<A>;
1083
1087
  /**
1084
1088
  * The graph returned by {@link harnessLoop}. Wraps a single
1085
1089
  * {@link MessagingHubGraph} that owns all reactive-wire-crossing topics
1086
1090
  * (intake, per-route queues, `__unrouted`, retry, verify-results,
1087
- * triage-output). Sugar getters expose the canonical topics so the
1088
- * surface stays ergonomic.
1091
+ * triage-output), plus an `executeFlow` JobFlow that owns the
1092
+ * EXECUTE VERIFY pipeline (Tier 6.5 C2). Sugar getters expose the
1093
+ * canonical topics so the surface stays ergonomic.
1089
1094
  */
1090
1095
  declare class HarnessGraph<A = unknown> extends Graph {
1091
1096
  /** Messaging hub — the routing-data plane. Queue topics live here. */
1092
1097
  readonly queues: MessagingHubGraph;
1093
1098
  /**
1094
- * Per-route JobQueueGraph mirrors (Unit 20 D). Each triaged item that
1095
- * reaches a queue is also enqueued here, giving reactive `depth` +
1096
- * `pending` + `jobs` observables. `fastRetry` terminal decisions
1097
- * {@link JobQueueGraph.ack ack} / {@link JobQueueGraph.nack nack} the
1098
- * matching job. The executor dataflow is unchanged — claim/ack/nack
1099
- * runs as an audit-side layer (per Unit 21's "interface unchanged"
1100
- * decision). Inspect via `harness.jobs.get(route).depth.cache` for
1101
- * backpressure metrics.
1099
+ * EXECUTE VERIFY JobFlow (Tier 6.5 C2). Pumps own claim/ack/nack
1100
+ * lifecycle for each stage. Inspect via:
1101
+ * - `harness.executeFlow.queue("execute").pending` pending depth.
1102
+ * - `harness.executeFlow.queue("verify").pending` items mid-execute.
1103
+ * - `harness.executeFlow.completed` verified items waiting for the
1104
+ * dispatch effect's 3-way routing.
1105
+ * - `harness.executeFlow.completedCount` — total terminal completions.
1106
+ */
1107
+ readonly executeFlow: JobFlowGraph<HarnessJobPayload<A>>;
1108
+ /**
1109
+ * Per-route JobQueueGraph audit mirrors. Each triaged item that reaches
1110
+ * a queue is also enqueued here, giving reactive `depth` + `pending` +
1111
+ * `jobs` observables per route. The dispatch effect ack/removeBy-id's
1112
+ * the matching job on terminal verdict. The executeFlow JobFlow handles
1113
+ * the EXECUTE → VERIFY data flow; this is a parallel audit-side ledger
1114
+ * for per-route depth metrics. Inspect via
1115
+ * `harness.jobs.get(route).depth.cache` for backpressure metrics.
1102
1116
  */
1103
1117
  readonly jobs: ReadonlyMap<QueueRoute, JobQueueGraph<TriagedItem>>;
1104
1118
  /** Per-route gate controllers (only for gated queues). */
@@ -1114,13 +1128,6 @@ declare class HarnessGraph<A = unknown> extends Graph {
1114
1128
  * `intake` (use {@link intake}), `verify-results` (use
1115
1129
  * {@link verifyResults}), `retry` (use {@link retry}), `__unrouted`
1116
1130
  * (use {@link unrouted}), and the internal `triage-output` fan-in.
1117
- *
1118
- * **Why this exists.** `for (const [, topic] of harness.queues)`
1119
- * appears to iterate via `Graph[Symbol.iterator]`, but that yields
1120
- * locally-registered nodes only — and `MessagingHubGraph` mounts
1121
- * topics as child graphs rather than registering them locally, so
1122
- * the loop yields nothing. This map gives a typed, working
1123
- * iteration path.
1124
1131
  */
1125
1132
  readonly queueTopics: ReadonlyMap<QueueRoute, TopicGraph<TriagedItem>>;
1126
1133
  /** Strategy model bundle — record outcomes, lookup effectiveness. */
@@ -1137,7 +1144,7 @@ declare class HarnessGraph<A = unknown> extends Graph {
1137
1144
  * in to priority scoring.
1138
1145
  */
1139
1146
  readonly priorityScores?: ReadonlyMap<QueueRoute, Node<number>>;
1140
- constructor(name: string, queues: MessagingHubGraph, queueTopics: Map<QueueRoute, TopicGraph<TriagedItem>>, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
1147
+ constructor(name: string, queues: MessagingHubGraph, executeFlow: JobFlowGraph<HarnessJobPayload<A>>, queueTopics: Map<QueueRoute, TopicGraph<TriagedItem>>, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
1141
1148
  /** Intake topic — publish items here to enter the loop. */
1142
1149
  get intake(): TopicGraph<IntakeItem>;
1143
1150
  /** Verify results topic — subscribe to see verification outcomes. */
@@ -1147,17 +1154,17 @@ declare class HarnessGraph<A = unknown> extends Graph {
1147
1154
  /** Dead-letter topic for items whose LLM-chosen route is unknown. */
1148
1155
  get unrouted(): TopicGraph<TriagedItem>;
1149
1156
  /**
1150
- * Stage-label → observe-path map for the 7 pipeline stages (Unit 22 C).
1157
+ * Stage-label → observe-path map for the 7 pipeline stages.
1151
1158
  *
1152
1159
  * Decouples inspection tools (`harnessTrace`, `harnessProfile`, custom
1153
1160
  * dashboards) from mount-structure churn: hub migration, future stage
1154
- * splits, or gate remounting won't require edits to `trace.ts` as long
1155
- * as this method stays accurate. Returned paths are resolvable via
1156
- * `harness.observe(path)` / `harness.resolve(path)`.
1161
+ * splits, gate remounting, or the Tier 6.5 C2 JobFlow rewire shouldn't
1162
+ * require edits to `trace.ts` as long as this method stays accurate.
1157
1163
  *
1158
- * Each stage yields `{ label, paths }` because QUEUE and GATE legitimately
1159
- * have multiple paths (one per route). Consumers iterate paths per stage
1160
- * and attach observers as needed.
1164
+ * Each stage yields `{ label, paths }`; consumers iterate paths per
1165
+ * stage and attach observers. Tier 6.5: EXECUTE / VERIFY paths now
1166
+ * resolve to the `executeFlow` stage queues + the `verify-dispatch`
1167
+ * effect node.
1161
1168
  */
1162
1169
  stageNodes(): ReadonlyArray<{
1163
1170
  label: string;
@@ -1172,9 +1179,9 @@ declare class HarnessGraph<A = unknown> extends Graph {
1172
1179
  * 2. **TRIAGE** — promptNode classifies, routes, and prioritizes
1173
1180
  * 3. **QUEUE** — 4 priority-ordered TopicGraphs (auto-fix, needs-decision, investigation, backlog)
1174
1181
  * 4. **GATE** — human approval on configurable queues
1175
- * 5. **EXECUTE** — promptNode or human implements the fix
1176
- * 6. **VERIFY** — promptNode reviews + optional fast-retry
1177
- * 7. **REFLECT** — strategy model records outcomes
1182
+ * 5. **EXECUTE** — JobFlow `execute` stage; user-supplied or default work fn
1183
+ * 6. **VERIFY** — JobFlow `verify` stage; verifies the executed artifact
1184
+ * 7. **REFLECT** — strategy model records outcomes; dispatch effect routes 3-way
1178
1185
  *
1179
1186
  * @param name - Graph name.
1180
1187
  * @param opts - Configuration.
@@ -1219,28 +1226,24 @@ interface HarnessProfileResult extends GraphProfileResult {
1219
1226
  declare function harnessProfile(harness: HarnessGraph, opts?: GraphProfileOptions): HarnessProfileResult;
1220
1227
 
1221
1228
  /**
1222
- * refineExecutor — bridge a `refineLoop` into the harness EXECUTE slot.
1223
- *
1224
- * Per-item lifecycle (Option A from the design note): on each new triaged
1225
- * item, a fresh `refineLoop` is mounted via `switchMap`; when the loop
1226
- * reaches a terminal status (`converged` / `budget` / `errored`), the
1227
- * executor emits a single `ExecuteOutput`. The switchMap cancels any
1228
- * in-flight loop when a newer item supersedes it.
1229
- *
1230
- * This shape makes all four {@link HarnessExecutor} contract rules
1231
- * structurally unreachable:
1232
- * 1. Terminal-status filter guarantees exactly one `ExecuteOutput` per
1233
- * completed refinement run.
1234
- * 2. `switchMap` cancels the prior inner loop when the next item arrives.
1235
- * 3. The item is captured in the switchMap closure, not mirrored to a
1236
- * side-state.
1237
- * 4. The wrapped `derived([status, best, score], ...)` only returns
1238
- * non-null on terminal transitions it never emits on input arrival.
1239
- *
1240
- * **Cross-item learning:** Option A creates a fresh refineLoop per item,
1241
- * so `errorCritique`-style failure sampling does NOT accumulate across
1242
- * items sharing a `rootCause`. A persistent-loop + re-seed surface is
1243
- * tracked in `docs/optimizations.md` as the long-term follow-up.
1229
+ * refineExecutor — bridge a `refineLoop` into the harness EXECUTE work fn.
1230
+ *
1231
+ * Each claimed job mounts a fresh `refineLoop`; when the loop reaches a
1232
+ * terminal status (`converged` / `budget` / `errored`), the work fn emits a
1233
+ * single {@link HarnessJobPayload} with `execution` filled in. The JobFlow
1234
+ * pump subscribes once, takes the first DATA, then unsubscribes — so the
1235
+ * inner loop tears down cleanly when the harness acks the job.
1236
+ *
1237
+ * **C2 lifecycle (Tier 6.5).** The work fn is invoked once per claim, so
1238
+ * no internal `switchMap` is needed (the prior pre-C2 shape used switchMap
1239
+ * to handle a stream of items). The pump owns the per-claim lifecycle:
1240
+ * activation when the work fn returns, teardown when the result Node is
1241
+ * unsubscribed.
1242
+ *
1243
+ * **Cross-item learning:** a fresh refineLoop per item means
1244
+ * `errorCritique`-style failure sampling does NOT accumulate across items
1245
+ * sharing a `rootCause`. A persistent-loop + re-seed surface is filed in
1246
+ * `docs/optimizations.md` as a long-term follow-up.
1244
1247
  *
1245
1248
  * @module
1246
1249
  */
@@ -1276,7 +1279,8 @@ interface RefineExecutorConfig<T> {
1276
1279
  name?: string;
1277
1280
  }
1278
1281
  /**
1279
- * Build a {@link HarnessExecutor} backed by a `refineLoop` per triaged item.
1282
+ * Build a {@link HarnessExecutor} backed by a `refineLoop` per claimed
1283
+ * job.
1280
1284
  *
1281
1285
  * @example Eval-driven repair loop in the harness EXECUTE slot.
1282
1286
  * ```ts
@@ -1409,6 +1413,7 @@ type index_HarnessEvalPairConfig<T> = HarnessEvalPairConfig<T>;
1409
1413
  type index_HarnessExecutor<A = unknown> = HarnessExecutor<A>;
1410
1414
  type index_HarnessGraph<A = unknown> = HarnessGraph<A>;
1411
1415
  declare const index_HarnessGraph: typeof HarnessGraph;
1416
+ type index_HarnessJobPayload<A = unknown> = HarnessJobPayload<A>;
1412
1417
  type index_HarnessLoopOptions<A = unknown> = HarnessLoopOptions<A>;
1413
1418
  type index_HarnessProfileResult = HarnessProfileResult;
1414
1419
  type index_HarnessTraceHandle = HarnessTraceHandle;
@@ -1468,7 +1473,7 @@ declare const index_resolvePromptFn: typeof resolvePromptFn;
1468
1473
  declare const index_strategyKey: typeof strategyKey;
1469
1474
  declare const index_strategyModel: typeof strategyModel;
1470
1475
  declare namespace index {
1471
- export { type index_ActuatorApplyFn as ActuatorApplyFn, type index_ActuatorExecutorConfig as ActuatorExecutorConfig, type index_ActuatorResult as ActuatorResult, type index_AutoSolidifyConfig as AutoSolidifyConfig, type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_DispatchActuatorConfig as DispatchActuatorConfig, type index_EffectivenessEntry as EffectivenessEntry, type index_EffectivenessSnapshot as EffectivenessSnapshot, type index_EffectivenessTrackerBundle as EffectivenessTrackerBundle, type index_EffectivenessTrackerOptions as EffectivenessTrackerOptions, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_actuatorExecutor as actuatorExecutor, index_affectedTaskFilter as affectedTaskFilter, index_autoSolidify as autoSolidify, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_dispatchActuator as dispatchActuator, index_effectivenessTracker as effectivenessTracker, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessEvalPair as harnessEvalPair, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
1476
+ export { type index_ActuatorApplyFn as ActuatorApplyFn, type index_ActuatorExecutorConfig as ActuatorExecutorConfig, type index_ActuatorResult as ActuatorResult, type index_AutoSolidifyConfig as AutoSolidifyConfig, type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_DispatchActuatorConfig as DispatchActuatorConfig, type index_EffectivenessEntry as EffectivenessEntry, type index_EffectivenessSnapshot as EffectivenessSnapshot, type index_EffectivenessTrackerBundle as EffectivenessTrackerBundle, type index_EffectivenessTrackerOptions as EffectivenessTrackerOptions, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessJobPayload as HarnessJobPayload, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_actuatorExecutor as actuatorExecutor, index_affectedTaskFilter as affectedTaskFilter, index_autoSolidify as autoSolidify, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_dispatchActuator as dispatchActuator, index_effectivenessTracker as effectivenessTracker, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessEvalPair as harnessEvalPair, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
1472
1477
  }
1473
1478
 
1474
- export { type RootCause as $, type ActuatorApplyFn as A, type ExecutionResult as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type EffectivenessEntry as E, type HarnessExecutor as F, HarnessGraph as G, type HarnessEvalPairConfig as H, type HarnessLoopOptions as I, type HarnessProfileResult as J, type HarnessTraceHandle as K, type HarnessTraceOptions as L, type HarnessVerifier as M, type IntakeBridgeOptions as N, type IntakeItem as O, type IntakeSource as P, type Intervention as Q, type KnownIntakeSource as R, type LintError as S, type NotifyEffectOptions as T, type NotifyTransport as U, type PrioritySignals as V, QUEUE_NAMES as W, type QueueConfig as X, type QueueRoute as Y, type RefineExecutorConfig as Z, type RefineExecutorResult as _, type ActuatorExecutorConfig as a, type Severity as a0, type StrategyEntry as a1, type StrategyKey as a2, type StrategyModelBundle as a3, type StrategySnapshot as a4, type TestFailure as a5, type TraceDetail as a6, type TraceEvent as a7, type TraceEventType as a8, type TriagePromptFn as a9, strategyKey as aA, strategyModel as aB, type TriagedItem as aa, type VerifyOutput as ab, type VerifyPromptFn as ac, type VerifyResult as ad, actuatorExecutor as ae, affectedTaskFilter as af, autoSolidify as ag, beforeAfterCompare as ah, codeChangeBridge as ai, createIntakeBridge as aj, defaultErrorClassifier as ak, defaultLlmExecutor as al, defaultLlmVerifier as am, dispatchActuator as an, effectivenessTracker as ao, evalIntakeBridge as ap, evalSource as aq, evalVerifier as ar, harnessEvalPair as as, harnessLoop as at, harnessProfile as au, harnessTrace as av, notifyEffect as aw, priorityScore as ax, refineExecutor as ay, resolvePromptFn as az, type ActuatorResult as b, type AutoSolidifyConfig as c, type CodeChangeBridgeOptions as d, DEFAULT_EXECUTE_PROMPT as e, DEFAULT_QUEUE_CONFIGS as f, DEFAULT_SEVERITY_WEIGHTS as g, DEFAULT_TRIAGE_PROMPT as h, index as i, DEFAULT_VERIFY_PROMPT as j, type DispatchActuatorConfig as k, type EffectivenessSnapshot as l, type EffectivenessTrackerBundle as m, type EffectivenessTrackerOptions as n, type ErrorClass as o, type ErrorClassifier as p, type EvalDelta as q, type EvalIntakeBridgeOptions as r, type EvalJudgeScore as s, type EvalResult as t, type EvalTaskDelta as u, type EvalTaskResult as v, type EvalVerifierConfig as w, type EvalVerifierSummary as x, type ExecuteOutput as y, type ExecutePromptFn as z };
1479
+ export { type RefineExecutorResult as $, type ActuatorApplyFn as A, type ExecutionResult as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type EffectivenessEntry as E, type HarnessExecutor as F, HarnessGraph as G, type HarnessEvalPairConfig as H, type HarnessJobPayload as I, type HarnessLoopOptions as J, type HarnessProfileResult as K, type HarnessTraceHandle as L, type HarnessTraceOptions as M, type HarnessVerifier as N, type IntakeBridgeOptions as O, type IntakeItem as P, type IntakeSource as Q, type Intervention as R, type KnownIntakeSource as S, type LintError as T, type NotifyEffectOptions as U, type NotifyTransport as V, type PrioritySignals as W, QUEUE_NAMES as X, type QueueConfig as Y, type QueueRoute as Z, type RefineExecutorConfig as _, type ActuatorExecutorConfig as a, type RootCause as a0, type Severity as a1, type StrategyEntry as a2, type StrategyKey as a3, type StrategyModelBundle as a4, type StrategySnapshot as a5, type TestFailure as a6, type TraceDetail as a7, type TraceEvent as a8, type TraceEventType as a9, resolvePromptFn as aA, strategyKey as aB, strategyModel as aC, type TriagePromptFn as aa, type TriagedItem as ab, type VerifyOutput as ac, type VerifyPromptFn as ad, type VerifyResult as ae, actuatorExecutor as af, affectedTaskFilter as ag, autoSolidify as ah, beforeAfterCompare as ai, codeChangeBridge as aj, createIntakeBridge as ak, defaultErrorClassifier as al, defaultLlmExecutor as am, defaultLlmVerifier as an, dispatchActuator as ao, effectivenessTracker as ap, evalIntakeBridge as aq, evalSource as ar, evalVerifier as as, harnessEvalPair as at, harnessLoop as au, harnessProfile as av, harnessTrace as aw, notifyEffect as ax, priorityScore as ay, refineExecutor as az, type ActuatorResult as b, type AutoSolidifyConfig as c, type CodeChangeBridgeOptions as d, DEFAULT_EXECUTE_PROMPT as e, DEFAULT_QUEUE_CONFIGS as f, DEFAULT_SEVERITY_WEIGHTS as g, DEFAULT_TRIAGE_PROMPT as h, index as i, DEFAULT_VERIFY_PROMPT as j, type DispatchActuatorConfig as k, type EffectivenessSnapshot as l, type EffectivenessTrackerBundle as m, type EffectivenessTrackerOptions as n, type ErrorClass as o, type ErrorClassifier as p, type EvalDelta as q, type EvalIntakeBridgeOptions as r, type EvalJudgeScore as s, type EvalResult as t, type EvalTaskDelta as u, type EvalTaskResult as v, type EvalVerifierConfig as w, type EvalVerifierSummary as x, type ExecuteOutput as y, type ExecutePromptFn as z };