@graphrefly/graphrefly 0.33.0 → 0.34.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.
@@ -1,6 +1,7 @@
1
+ import { NodeInput } from './extra/sources.js';
1
2
  import { a as Node } from './node-8qx0kgYt.js';
2
- import { T as TopicGraph, M as MessagingHubGraph } from './index-Bi4ZP6Hc.js';
3
3
  import { L as LLMAdapter } from './types-B2LfBvNc.js';
4
+ import { T as TopicGraph, M as MessagingHubGraph } from './index-Bi4ZP6Hc.js';
4
5
  import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-BUtCR0k6.js';
5
6
  import { G as Graph, s as GraphProfileResult, r as GraphProfileOptions } from './graph-BROUZPG9.js';
6
7
  import { G as GateController } from './index-HvJ90_tX.js';
@@ -349,6 +350,226 @@ interface HarnessLoopOptions<A = unknown> {
349
350
  retainedLimit?: number;
350
351
  }
351
352
 
353
+ /**
354
+ * actuatorExecutor — bridge a side-effecting actuator into the harness EXECUTE slot.
355
+ *
356
+ * `refineExecutor` covers the artifact-typed case (refine a candidate
357
+ * `T` against an evaluator); `actuatorExecutor` covers the side-effecting
358
+ * case (write a catalog entry, mutate a template registry, edit a doc on
359
+ * disk). The user's `apply` callback owns the side effect; the executor
360
+ * wraps it in the per-item lifecycle that makes the four
361
+ * {@link HarnessExecutor} contract rules structurally unreachable:
362
+ *
363
+ * 1. **One DATA per actuation.** The inner producer captures the first
364
+ * DATA from the bridged `apply` result, emits a single
365
+ * `ExecuteOutput<R>` carrying the actuation record as `artifact`, and
366
+ * completes. Subsequent inner DATAs are ignored.
367
+ * 2. **Cancel-on-supersede.** A new triaged item supersedes via
368
+ * `switchMap`; the prior producer's cleanup fires `ac.abort()`, which
369
+ * propagates into `apply`'s `signal` (and through `fromAny`'s
370
+ * internal cancellation hooks) so signal-aware actuators stop
371
+ * in-flight work instead of double-writing.
372
+ * 3. **Item via deps, not closure mirror.** The triaged item is captured
373
+ * in the `switchMap` callback's lexical scope, not mirrored to a
374
+ * side-state node — same shape as `refineExecutor`.
375
+ * 4. **Fires on result, not input.** The producer emits exactly when
376
+ * `apply`'s bridged node settles (or fails). Input-arrival waves
377
+ * never produce an `ExecuteOutput`.
378
+ *
379
+ * **What `apply` may return.** Anything `fromAny` accepts: a
380
+ * `Promise<R>`, a `Node<R>`, an `AsyncIterable<R>`, an `Iterable<R>`,
381
+ * or a synchronous `R`. `Promise<R>` is the typical shape (`writeFile`,
382
+ * `fetch`, `db.execute`); reactive composition through `Node<R>` is the
383
+ * escape hatch when the actuator itself wants to surface intermediate
384
+ * progress before settling.
385
+ *
386
+ * **Pairing with `evalVerifier`.** `ExecuteOutput.artifact` is set to
387
+ * the actuation record; an `evalVerifier<R>` whose `extractArtifact`
388
+ * returns the record (or a transform of it — typically the post-apply
389
+ * world state needed by the evaluator) closes the EXECUTE → VERIFY loop
390
+ * with consistent typing end-to-end.
391
+ *
392
+ * @module
393
+ */
394
+
395
+ /**
396
+ * What an actuator's `apply` may return. Mirrors `NodeInput<R>` plus a
397
+ * raw `R` for synchronous side effects, so callers can write the most
398
+ * direct shape for their case (Promise for async I/O, raw record for
399
+ * pure in-memory mutation).
400
+ */
401
+ type ActuatorResult<R> = NodeInput<R>;
402
+ /** Configuration for {@link actuatorExecutor}. */
403
+ interface ActuatorExecutorConfig<R> {
404
+ /**
405
+ * Apply the side effect for this triaged item. Receives the abort
406
+ * signal — actuators that own real I/O should thread `signal` into
407
+ * `fetch`, `fs.writeFile`, child-process kills, etc. so that
408
+ * `switchMap` supersede actually cancels in-flight work.
409
+ *
410
+ * The first DATA emitted by the bridged result wins; later DATAs are
411
+ * discarded. ERROR (or a synchronous throw) is mapped via `onError`.
412
+ */
413
+ apply: (item: TriagedItem, opts: {
414
+ signal: AbortSignal;
415
+ }) => ActuatorResult<R>;
416
+ /**
417
+ * Optional gate — when provided and returning `false`, the actuator
418
+ * is skipped and the executor emits an `ExecuteOutput` with
419
+ * `outcome: "failure"` and detail from `skipDetail` (default
420
+ * `"actuator skipped (shouldApply returned false)"`). Use this to
421
+ * route interventions the actuator can't handle (e.g. `intervention:
422
+ * "investigate"` items) into the failure path so the verifier sees
423
+ * them.
424
+ */
425
+ shouldApply?: (item: TriagedItem) => boolean;
426
+ /** Detail string for the skip path. Default: includes intervention name. */
427
+ skipDetail?: (item: TriagedItem) => string;
428
+ /**
429
+ * Map a successfully-applied actuation record into an `ExecuteOutput<R>`.
430
+ * Default: `outcome: "success"`, `detail` references the intervention
431
+ * + summary, `artifact: record`.
432
+ */
433
+ toOutput?: (record: R, item: TriagedItem) => ExecuteOutput<R>;
434
+ /**
435
+ * Map a thrown / ERROR result into an `ExecuteOutput<R>`. Default:
436
+ * `outcome: "failure"`, `detail` carries the error message,
437
+ * `artifact: undefined`.
438
+ */
439
+ onError?: (err: unknown, item: TriagedItem) => ExecuteOutput<R>;
440
+ /** Node name prefix for `describe()` introspection. Default `"actuator-executor"`. */
441
+ name?: string;
442
+ }
443
+ /**
444
+ * Build a {@link HarnessExecutor} backed by a side-effecting actuator.
445
+ *
446
+ * @example File-system actuator that writes a catalog entry and emits the diff.
447
+ * ```ts
448
+ * const harness = harnessLoop("repair", {
449
+ * adapter,
450
+ * executor: actuatorExecutor<CatalogPatch>({
451
+ * async apply(item, { signal }) {
452
+ * const patch = patchFromItem(item);
453
+ * await fs.writeFile(patch.path, patch.contents, { signal });
454
+ * return patch;
455
+ * },
456
+ * shouldApply: (item) => item.intervention === "catalog-fn",
457
+ * }),
458
+ * verifier: evalVerifier<CatalogPatch>({
459
+ * evaluator,
460
+ * datasetFor,
461
+ * extractArtifact: (exec) => exec.artifact ?? null,
462
+ * }),
463
+ * });
464
+ * ```
465
+ */
466
+ declare function actuatorExecutor<R>(config: ActuatorExecutorConfig<R>): HarnessExecutor<R>;
467
+
468
+ /**
469
+ * autoSolidify — promote successful VERIFY runs into a durable artifact
470
+ * (catalog entry, skill, template, doc edit, …).
471
+ *
472
+ * Closes the dogfood retrospective loop: when the harness's VERIFY
473
+ * stage reports `verified: true`, the validated intervention should
474
+ * become an authoring artifact the next loop run can rely on. This
475
+ * primitive is the generic substrate — pass a `write` callback that
476
+ * does the actual promotion (e.g. `overlay.upsertTemplate` for the
477
+ * dogfood catalog overlay; `fs.writeFile` for a doc edit; `ctx.skill`
478
+ * for a Hermes-style skill registry).
479
+ *
480
+ * @example Wire the catalog overlay as the solidify target.
481
+ * ```ts
482
+ * const solidified = autoSolidify({
483
+ * verifyResults: harness.verifyResults.latest,
484
+ * extract: (vr) => vr.execution.artifact ?? null,
485
+ * write: (entry, vr) => overlay.upsertFn(`learned-${vr.item.summary}`, entry),
486
+ * });
487
+ * solidified.subscribe(() => {}); // keep alive for log
488
+ * ```
489
+ *
490
+ * **Why a node and not just an effect.** The returned `Node<R>` emits
491
+ * each promoted artifact, so callers can pipe solidifications through
492
+ * the standard reactive surface (`describe()`, `observe()`, replay
493
+ * buffers) instead of side-channel logging. An audit / dashboard that
494
+ * wants "what was learned this run?" subscribes to the returned node;
495
+ * the `write` callback owns the durable side effect.
496
+ *
497
+ * **Idempotency is the caller's responsibility.** The primitive
498
+ * promotes every `verified: true` wave that passes the predicate. If
499
+ * the harness re-verifies the same item (e.g. via reingestion), the
500
+ * `write` callback is invoked again. Wrap your write fn with a
501
+ * dedup-by-key guard if your target store would otherwise bloat. The
502
+ * inner `seen` set inside this factory is intentionally absent — the
503
+ * harness already retains via topic logs and the user may want
504
+ * re-promotion semantics that are domain-specific.
505
+ *
506
+ * @module
507
+ */
508
+
509
+ /**
510
+ * Configuration for {@link autoSolidify}.
511
+ *
512
+ * `R` is the artifact type the upstream EXECUTE stage produced (and
513
+ * `evalVerifier` carries through `execution.artifact`). `T` is the
514
+ * promotion shape — what `write` consumes and what the returned node
515
+ * emits. Often `T = R`, but they diverge when the actuator's raw
516
+ * artifact needs a transform before storing (e.g. wrap a `CatalogPatch`
517
+ * into a `CatalogEntry` with effectiveness metadata).
518
+ */
519
+ interface AutoSolidifyConfig<R, T = R> {
520
+ /** Reactive verify-result stream. Typically `harness.verifyResults.latest`. */
521
+ verifyResults: Node<VerifyResult<R> | null>;
522
+ /**
523
+ * Pull the value-to-promote out of a verified VerifyResult.
524
+ * Default: `(vr) => vr.execution.artifact as T | null`. Return `null`
525
+ * to skip a particular VerifyResult even when `verified: true` (e.g.
526
+ * an LLM-default executor produces no artifact and there's nothing to
527
+ * solidify).
528
+ */
529
+ extract?: (vr: VerifyResult<R>) => T | null;
530
+ /**
531
+ * Optional gate beyond `verified === true`. When provided, the
532
+ * primitive only promotes when this returns `true`. Default: pass
533
+ * everything verified.
534
+ *
535
+ * Useful predicates:
536
+ * - `(vr) => vr.item.intervention === "catalog-fn"` — only catalog work.
537
+ * - `(vr) => (vr.findings ?? []).every(f => !/regression/i.test(f))` —
538
+ * skip even-passes that mention regressions.
539
+ */
540
+ predicate?: (vr: VerifyResult<R>) => boolean;
541
+ /**
542
+ * Promote — usually a side effect (write to overlay, fs, KG, etc.).
543
+ * Receives the extracted artifact AND the originating VerifyResult so
544
+ * the writer can use any context it needs (item summary, eval task
545
+ * IDs, finding text, …) when shaping the durable record.
546
+ */
547
+ write: (artifact: T, vr: VerifyResult<R>) => void;
548
+ /** Node name for `describe()` introspection. Default `"auto-solidify"`. */
549
+ name?: string;
550
+ }
551
+ /**
552
+ * Build a `Node<T>` that subscribes to `verifyResults`, filters to
553
+ * verified passes that produced an extractable artifact, runs `write`,
554
+ * and emits the artifact. Use the returned node as a subscription
555
+ * point for audit / dashboard / log pipelines.
556
+ *
557
+ * **Terminal-on-error semantics.** A throw from `predicate`, `extract`,
558
+ * or `write` surfaces as `[[ERROR]]` on the returned node and
559
+ * **terminates** it — the upstream subscription tears down and no
560
+ * further DATA is emitted. This matches the spec's terminal-frame
561
+ * contract for ERROR. If you want the solidify node to stay live
562
+ * across user-callback throws, wrap your callbacks with try/catch
563
+ * internally and emit a sentinel value or no-op on failure. A future
564
+ * non-terminal `errors: Node<unknown>` companion may surface failures
565
+ * without terminating the success stream — flagged as a follow-up.
566
+ *
567
+ * @returns A `Node<T>` that emits one DATA per promoted artifact.
568
+ * Stays live as long as `verifyResults` is live AND no user callback
569
+ * has thrown.
570
+ */
571
+ declare function autoSolidify<R, T = R>(config: AutoSolidifyConfig<R, T>): Node<T>;
572
+
352
573
  /**
353
574
  * Harness bridge factories (roadmap §9.0).
354
575
  *
@@ -759,6 +980,26 @@ declare class HarnessGraph<A = unknown> extends Graph {
759
980
  readonly jobs: ReadonlyMap<QueueRoute, JobQueueGraph<TriagedItem>>;
760
981
  /** Per-route gate controllers (only for gated queues). */
761
982
  readonly gates: ReadonlyMap<QueueRoute, GateController<TriagedItem>>;
983
+ /**
984
+ * Per-route queue topics — typed accessor for the four
985
+ * {@link QUEUE_NAMES} entries (`auto-fix`, `needs-decision`,
986
+ * `investigation`, `backlog`). Mirrors the `gates` / `jobs` map
987
+ * shape so callers can iterate `[route, topic]` pairs without
988
+ * hand-rolling `harness.queues.topicNames()` + meta-topic exclusion.
989
+ *
990
+ * Excludes the meta topics that share the hub:
991
+ * `intake` (use {@link intake}), `verify-results` (use
992
+ * {@link verifyResults}), `retry` (use {@link retry}), `__unrouted`
993
+ * (use {@link unrouted}), and the internal `triage-output` fan-in.
994
+ *
995
+ * **Why this exists.** `for (const [, topic] of harness.queues)`
996
+ * appears to iterate via `Graph[Symbol.iterator]`, but that yields
997
+ * locally-registered nodes only — and `MessagingHubGraph` mounts
998
+ * topics as child graphs rather than registering them locally, so
999
+ * the loop yields nothing. This map gives a typed, working
1000
+ * iteration path.
1001
+ */
1002
+ readonly queueTopics: ReadonlyMap<QueueRoute, TopicGraph<TriagedItem>>;
762
1003
  /** Strategy model bundle — record outcomes, lookup effectiveness. */
763
1004
  readonly strategy: StrategyModelBundle;
764
1005
  /** Global retry count across all items (circuit breaker). Reactive — subscribable. */
@@ -773,7 +1014,7 @@ declare class HarnessGraph<A = unknown> extends Graph {
773
1014
  * in to priority scoring.
774
1015
  */
775
1016
  readonly priorityScores?: ReadonlyMap<QueueRoute, Node<number>>;
776
- constructor(name: string, queues: MessagingHubGraph, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
1017
+ 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>>);
777
1018
  /** Intake topic — publish items here to enter the loop. */
778
1019
  get intake(): TopicGraph<IntakeItem>;
779
1020
  /** Verify results topic — subscribe to see verification outcomes. */
@@ -1011,6 +1252,9 @@ declare function harnessTrace(harness: HarnessGraph, opts?: HarnessTraceOptions)
1011
1252
  * @module
1012
1253
  */
1013
1254
 
1255
+ type index_ActuatorExecutorConfig<R> = ActuatorExecutorConfig<R>;
1256
+ type index_ActuatorResult<R> = ActuatorResult<R>;
1257
+ type index_AutoSolidifyConfig<R, T = R> = AutoSolidifyConfig<R, T>;
1014
1258
  type index_CodeChange = CodeChange;
1015
1259
  type index_CodeChangeBridgeOptions = CodeChangeBridgeOptions;
1016
1260
  declare const index_DEFAULT_DECAY_RATE: typeof DEFAULT_DECAY_RATE;
@@ -1070,7 +1314,9 @@ type index_TriagedItem = TriagedItem;
1070
1314
  type index_VerifyOutput = VerifyOutput;
1071
1315
  type index_VerifyPromptFn<A = unknown> = VerifyPromptFn<A>;
1072
1316
  type index_VerifyResult<A = unknown> = VerifyResult<A>;
1317
+ declare const index_actuatorExecutor: typeof actuatorExecutor;
1073
1318
  declare const index_affectedTaskFilter: typeof affectedTaskFilter;
1319
+ declare const index_autoSolidify: typeof autoSolidify;
1074
1320
  declare const index_beforeAfterCompare: typeof beforeAfterCompare;
1075
1321
  declare const index_codeChangeBridge: typeof codeChangeBridge;
1076
1322
  declare const index_createIntakeBridge: typeof createIntakeBridge;
@@ -1091,7 +1337,7 @@ declare const index_resolvePromptFn: typeof resolvePromptFn;
1091
1337
  declare const index_strategyKey: typeof strategyKey;
1092
1338
  declare const index_strategyModel: typeof strategyModel;
1093
1339
  declare namespace index {
1094
- export { 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_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_affectedTaskFilter as affectedTaskFilter, 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_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 };
1340
+ export { 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_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_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 };
1095
1341
  }
1096
1342
 
1097
- export { type TraceEventType as $, type IntakeItem as A, type IntakeSource as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type ErrorClass as E, type Intervention as F, type NotifyTransport as G, type HarnessEvalPairConfig as H, type IntakeBridgeOptions as I, type QueueConfig as J, type KnownIntakeSource as K, type LintError as L, type QueueRoute as M, type NotifyEffectOptions as N, type RefineExecutorResult as O, type PrioritySignals as P, QUEUE_NAMES as Q, type RefineExecutorConfig as R, type RootCause as S, type Severity as T, type StrategyEntry as U, type StrategyKey as V, type StrategyModelBundle as W, type StrategySnapshot as X, type TestFailure as Y, type TraceDetail as Z, type TraceEvent as _, type CodeChangeBridgeOptions as a, type TriagePromptFn as a0, type TriagedItem as a1, type VerifyOutput as a2, type VerifyPromptFn as a3, type VerifyResult as a4, affectedTaskFilter as a5, beforeAfterCompare as a6, codeChangeBridge as a7, createIntakeBridge as a8, defaultErrorClassifier as a9, defaultLlmExecutor as aa, defaultLlmVerifier as ab, evalIntakeBridge as ac, evalSource as ad, evalVerifier as ae, harnessEvalPair as af, harnessLoop as ag, harnessProfile as ah, harnessTrace as ai, notifyEffect as aj, priorityScore as ak, refineExecutor as al, resolvePromptFn as am, strategyKey as an, strategyModel as ao, DEFAULT_EXECUTE_PROMPT as b, DEFAULT_QUEUE_CONFIGS as c, DEFAULT_SEVERITY_WEIGHTS as d, DEFAULT_TRIAGE_PROMPT as e, DEFAULT_VERIFY_PROMPT as f, type ErrorClassifier as g, type EvalDelta as h, index as i, type EvalIntakeBridgeOptions as j, type EvalJudgeScore as k, type EvalResult as l, type EvalTaskDelta as m, type EvalTaskResult as n, type EvalVerifierConfig as o, type EvalVerifierSummary as p, type ExecuteOutput as q, type ExecutePromptFn as r, type ExecutionResult as s, type HarnessExecutor as t, HarnessGraph as u, type HarnessLoopOptions as v, type HarnessProfileResult as w, type HarnessTraceHandle as x, type HarnessTraceOptions as y, type HarnessVerifier as z };
1343
+ export { type TestFailure as $, type ActuatorExecutorConfig as A, type HarnessTraceOptions as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type ErrorClass as E, type HarnessVerifier as F, type IntakeItem as G, type HarnessEvalPairConfig as H, type IntakeBridgeOptions as I, type IntakeSource as J, type Intervention as K, type KnownIntakeSource as L, type LintError as M, type NotifyEffectOptions as N, type NotifyTransport as O, type PrioritySignals as P, QUEUE_NAMES as Q, type QueueConfig as R, type QueueRoute as S, type RefineExecutorConfig as T, type RefineExecutorResult as U, type RootCause as V, type Severity as W, type StrategyEntry as X, type StrategyKey as Y, type StrategyModelBundle as Z, type StrategySnapshot as _, type ActuatorResult as a, type TraceDetail as a0, type TraceEvent as a1, type TraceEventType as a2, type TriagePromptFn as a3, type TriagedItem as a4, type VerifyOutput as a5, type VerifyPromptFn as a6, type VerifyResult as a7, actuatorExecutor as a8, affectedTaskFilter as a9, autoSolidify as aa, beforeAfterCompare as ab, codeChangeBridge as ac, createIntakeBridge as ad, defaultErrorClassifier as ae, defaultLlmExecutor as af, defaultLlmVerifier as ag, evalIntakeBridge as ah, evalSource as ai, evalVerifier as aj, harnessEvalPair as ak, harnessLoop as al, harnessProfile as am, harnessTrace as an, notifyEffect as ao, priorityScore as ap, refineExecutor as aq, resolvePromptFn as ar, strategyKey as as, strategyModel as at, type AutoSolidifyConfig as b, type CodeChangeBridgeOptions as c, DEFAULT_EXECUTE_PROMPT as d, DEFAULT_QUEUE_CONFIGS as e, DEFAULT_SEVERITY_WEIGHTS as f, DEFAULT_TRIAGE_PROMPT as g, DEFAULT_VERIFY_PROMPT as h, index as i, type ErrorClassifier as j, type EvalDelta as k, type EvalIntakeBridgeOptions as l, type EvalJudgeScore as m, type EvalResult as n, type EvalTaskDelta as o, type EvalTaskResult as p, type EvalVerifierConfig as q, type EvalVerifierSummary as r, type ExecuteOutput as s, type ExecutePromptFn as t, type ExecutionResult as u, type HarnessExecutor as v, HarnessGraph as w, type HarnessLoopOptions as x, type HarnessProfileResult as y, type HarnessTraceHandle as z };
@@ -1,6 +1,7 @@
1
+ import { NodeInput } from './extra/sources.cjs';
1
2
  import { a as Node } from './node-8qx0kgYt.cjs';
2
- import { T as TopicGraph, M as MessagingHubGraph } from './index-Ccv_61jG.cjs';
3
3
  import { L as LLMAdapter } from './types-Cp_4coR_.cjs';
4
+ import { T as TopicGraph, M as MessagingHubGraph } from './index-Ccv_61jG.cjs';
4
5
  import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-ChZvMC4M.cjs';
5
6
  import { G as Graph, s as GraphProfileResult, r as GraphProfileOptions } from './graph-DaoydJ_u.cjs';
6
7
  import { G as GateController } from './index-C2Dey3L-.cjs';
@@ -349,6 +350,226 @@ interface HarnessLoopOptions<A = unknown> {
349
350
  retainedLimit?: number;
350
351
  }
351
352
 
353
+ /**
354
+ * actuatorExecutor — bridge a side-effecting actuator into the harness EXECUTE slot.
355
+ *
356
+ * `refineExecutor` covers the artifact-typed case (refine a candidate
357
+ * `T` against an evaluator); `actuatorExecutor` covers the side-effecting
358
+ * case (write a catalog entry, mutate a template registry, edit a doc on
359
+ * disk). The user's `apply` callback owns the side effect; the executor
360
+ * wraps it in the per-item lifecycle that makes the four
361
+ * {@link HarnessExecutor} contract rules structurally unreachable:
362
+ *
363
+ * 1. **One DATA per actuation.** The inner producer captures the first
364
+ * DATA from the bridged `apply` result, emits a single
365
+ * `ExecuteOutput<R>` carrying the actuation record as `artifact`, and
366
+ * completes. Subsequent inner DATAs are ignored.
367
+ * 2. **Cancel-on-supersede.** A new triaged item supersedes via
368
+ * `switchMap`; the prior producer's cleanup fires `ac.abort()`, which
369
+ * propagates into `apply`'s `signal` (and through `fromAny`'s
370
+ * internal cancellation hooks) so signal-aware actuators stop
371
+ * in-flight work instead of double-writing.
372
+ * 3. **Item via deps, not closure mirror.** The triaged item is captured
373
+ * in the `switchMap` callback's lexical scope, not mirrored to a
374
+ * side-state node — same shape as `refineExecutor`.
375
+ * 4. **Fires on result, not input.** The producer emits exactly when
376
+ * `apply`'s bridged node settles (or fails). Input-arrival waves
377
+ * never produce an `ExecuteOutput`.
378
+ *
379
+ * **What `apply` may return.** Anything `fromAny` accepts: a
380
+ * `Promise<R>`, a `Node<R>`, an `AsyncIterable<R>`, an `Iterable<R>`,
381
+ * or a synchronous `R`. `Promise<R>` is the typical shape (`writeFile`,
382
+ * `fetch`, `db.execute`); reactive composition through `Node<R>` is the
383
+ * escape hatch when the actuator itself wants to surface intermediate
384
+ * progress before settling.
385
+ *
386
+ * **Pairing with `evalVerifier`.** `ExecuteOutput.artifact` is set to
387
+ * the actuation record; an `evalVerifier<R>` whose `extractArtifact`
388
+ * returns the record (or a transform of it — typically the post-apply
389
+ * world state needed by the evaluator) closes the EXECUTE → VERIFY loop
390
+ * with consistent typing end-to-end.
391
+ *
392
+ * @module
393
+ */
394
+
395
+ /**
396
+ * What an actuator's `apply` may return. Mirrors `NodeInput<R>` plus a
397
+ * raw `R` for synchronous side effects, so callers can write the most
398
+ * direct shape for their case (Promise for async I/O, raw record for
399
+ * pure in-memory mutation).
400
+ */
401
+ type ActuatorResult<R> = NodeInput<R>;
402
+ /** Configuration for {@link actuatorExecutor}. */
403
+ interface ActuatorExecutorConfig<R> {
404
+ /**
405
+ * Apply the side effect for this triaged item. Receives the abort
406
+ * signal — actuators that own real I/O should thread `signal` into
407
+ * `fetch`, `fs.writeFile`, child-process kills, etc. so that
408
+ * `switchMap` supersede actually cancels in-flight work.
409
+ *
410
+ * The first DATA emitted by the bridged result wins; later DATAs are
411
+ * discarded. ERROR (or a synchronous throw) is mapped via `onError`.
412
+ */
413
+ apply: (item: TriagedItem, opts: {
414
+ signal: AbortSignal;
415
+ }) => ActuatorResult<R>;
416
+ /**
417
+ * Optional gate — when provided and returning `false`, the actuator
418
+ * is skipped and the executor emits an `ExecuteOutput` with
419
+ * `outcome: "failure"` and detail from `skipDetail` (default
420
+ * `"actuator skipped (shouldApply returned false)"`). Use this to
421
+ * route interventions the actuator can't handle (e.g. `intervention:
422
+ * "investigate"` items) into the failure path so the verifier sees
423
+ * them.
424
+ */
425
+ shouldApply?: (item: TriagedItem) => boolean;
426
+ /** Detail string for the skip path. Default: includes intervention name. */
427
+ skipDetail?: (item: TriagedItem) => string;
428
+ /**
429
+ * Map a successfully-applied actuation record into an `ExecuteOutput<R>`.
430
+ * Default: `outcome: "success"`, `detail` references the intervention
431
+ * + summary, `artifact: record`.
432
+ */
433
+ toOutput?: (record: R, item: TriagedItem) => ExecuteOutput<R>;
434
+ /**
435
+ * Map a thrown / ERROR result into an `ExecuteOutput<R>`. Default:
436
+ * `outcome: "failure"`, `detail` carries the error message,
437
+ * `artifact: undefined`.
438
+ */
439
+ onError?: (err: unknown, item: TriagedItem) => ExecuteOutput<R>;
440
+ /** Node name prefix for `describe()` introspection. Default `"actuator-executor"`. */
441
+ name?: string;
442
+ }
443
+ /**
444
+ * Build a {@link HarnessExecutor} backed by a side-effecting actuator.
445
+ *
446
+ * @example File-system actuator that writes a catalog entry and emits the diff.
447
+ * ```ts
448
+ * const harness = harnessLoop("repair", {
449
+ * adapter,
450
+ * executor: actuatorExecutor<CatalogPatch>({
451
+ * async apply(item, { signal }) {
452
+ * const patch = patchFromItem(item);
453
+ * await fs.writeFile(patch.path, patch.contents, { signal });
454
+ * return patch;
455
+ * },
456
+ * shouldApply: (item) => item.intervention === "catalog-fn",
457
+ * }),
458
+ * verifier: evalVerifier<CatalogPatch>({
459
+ * evaluator,
460
+ * datasetFor,
461
+ * extractArtifact: (exec) => exec.artifact ?? null,
462
+ * }),
463
+ * });
464
+ * ```
465
+ */
466
+ declare function actuatorExecutor<R>(config: ActuatorExecutorConfig<R>): HarnessExecutor<R>;
467
+
468
+ /**
469
+ * autoSolidify — promote successful VERIFY runs into a durable artifact
470
+ * (catalog entry, skill, template, doc edit, …).
471
+ *
472
+ * Closes the dogfood retrospective loop: when the harness's VERIFY
473
+ * stage reports `verified: true`, the validated intervention should
474
+ * become an authoring artifact the next loop run can rely on. This
475
+ * primitive is the generic substrate — pass a `write` callback that
476
+ * does the actual promotion (e.g. `overlay.upsertTemplate` for the
477
+ * dogfood catalog overlay; `fs.writeFile` for a doc edit; `ctx.skill`
478
+ * for a Hermes-style skill registry).
479
+ *
480
+ * @example Wire the catalog overlay as the solidify target.
481
+ * ```ts
482
+ * const solidified = autoSolidify({
483
+ * verifyResults: harness.verifyResults.latest,
484
+ * extract: (vr) => vr.execution.artifact ?? null,
485
+ * write: (entry, vr) => overlay.upsertFn(`learned-${vr.item.summary}`, entry),
486
+ * });
487
+ * solidified.subscribe(() => {}); // keep alive for log
488
+ * ```
489
+ *
490
+ * **Why a node and not just an effect.** The returned `Node<R>` emits
491
+ * each promoted artifact, so callers can pipe solidifications through
492
+ * the standard reactive surface (`describe()`, `observe()`, replay
493
+ * buffers) instead of side-channel logging. An audit / dashboard that
494
+ * wants "what was learned this run?" subscribes to the returned node;
495
+ * the `write` callback owns the durable side effect.
496
+ *
497
+ * **Idempotency is the caller's responsibility.** The primitive
498
+ * promotes every `verified: true` wave that passes the predicate. If
499
+ * the harness re-verifies the same item (e.g. via reingestion), the
500
+ * `write` callback is invoked again. Wrap your write fn with a
501
+ * dedup-by-key guard if your target store would otherwise bloat. The
502
+ * inner `seen` set inside this factory is intentionally absent — the
503
+ * harness already retains via topic logs and the user may want
504
+ * re-promotion semantics that are domain-specific.
505
+ *
506
+ * @module
507
+ */
508
+
509
+ /**
510
+ * Configuration for {@link autoSolidify}.
511
+ *
512
+ * `R` is the artifact type the upstream EXECUTE stage produced (and
513
+ * `evalVerifier` carries through `execution.artifact`). `T` is the
514
+ * promotion shape — what `write` consumes and what the returned node
515
+ * emits. Often `T = R`, but they diverge when the actuator's raw
516
+ * artifact needs a transform before storing (e.g. wrap a `CatalogPatch`
517
+ * into a `CatalogEntry` with effectiveness metadata).
518
+ */
519
+ interface AutoSolidifyConfig<R, T = R> {
520
+ /** Reactive verify-result stream. Typically `harness.verifyResults.latest`. */
521
+ verifyResults: Node<VerifyResult<R> | null>;
522
+ /**
523
+ * Pull the value-to-promote out of a verified VerifyResult.
524
+ * Default: `(vr) => vr.execution.artifact as T | null`. Return `null`
525
+ * to skip a particular VerifyResult even when `verified: true` (e.g.
526
+ * an LLM-default executor produces no artifact and there's nothing to
527
+ * solidify).
528
+ */
529
+ extract?: (vr: VerifyResult<R>) => T | null;
530
+ /**
531
+ * Optional gate beyond `verified === true`. When provided, the
532
+ * primitive only promotes when this returns `true`. Default: pass
533
+ * everything verified.
534
+ *
535
+ * Useful predicates:
536
+ * - `(vr) => vr.item.intervention === "catalog-fn"` — only catalog work.
537
+ * - `(vr) => (vr.findings ?? []).every(f => !/regression/i.test(f))` —
538
+ * skip even-passes that mention regressions.
539
+ */
540
+ predicate?: (vr: VerifyResult<R>) => boolean;
541
+ /**
542
+ * Promote — usually a side effect (write to overlay, fs, KG, etc.).
543
+ * Receives the extracted artifact AND the originating VerifyResult so
544
+ * the writer can use any context it needs (item summary, eval task
545
+ * IDs, finding text, …) when shaping the durable record.
546
+ */
547
+ write: (artifact: T, vr: VerifyResult<R>) => void;
548
+ /** Node name for `describe()` introspection. Default `"auto-solidify"`. */
549
+ name?: string;
550
+ }
551
+ /**
552
+ * Build a `Node<T>` that subscribes to `verifyResults`, filters to
553
+ * verified passes that produced an extractable artifact, runs `write`,
554
+ * and emits the artifact. Use the returned node as a subscription
555
+ * point for audit / dashboard / log pipelines.
556
+ *
557
+ * **Terminal-on-error semantics.** A throw from `predicate`, `extract`,
558
+ * or `write` surfaces as `[[ERROR]]` on the returned node and
559
+ * **terminates** it — the upstream subscription tears down and no
560
+ * further DATA is emitted. This matches the spec's terminal-frame
561
+ * contract for ERROR. If you want the solidify node to stay live
562
+ * across user-callback throws, wrap your callbacks with try/catch
563
+ * internally and emit a sentinel value or no-op on failure. A future
564
+ * non-terminal `errors: Node<unknown>` companion may surface failures
565
+ * without terminating the success stream — flagged as a follow-up.
566
+ *
567
+ * @returns A `Node<T>` that emits one DATA per promoted artifact.
568
+ * Stays live as long as `verifyResults` is live AND no user callback
569
+ * has thrown.
570
+ */
571
+ declare function autoSolidify<R, T = R>(config: AutoSolidifyConfig<R, T>): Node<T>;
572
+
352
573
  /**
353
574
  * Harness bridge factories (roadmap §9.0).
354
575
  *
@@ -759,6 +980,26 @@ declare class HarnessGraph<A = unknown> extends Graph {
759
980
  readonly jobs: ReadonlyMap<QueueRoute, JobQueueGraph<TriagedItem>>;
760
981
  /** Per-route gate controllers (only for gated queues). */
761
982
  readonly gates: ReadonlyMap<QueueRoute, GateController<TriagedItem>>;
983
+ /**
984
+ * Per-route queue topics — typed accessor for the four
985
+ * {@link QUEUE_NAMES} entries (`auto-fix`, `needs-decision`,
986
+ * `investigation`, `backlog`). Mirrors the `gates` / `jobs` map
987
+ * shape so callers can iterate `[route, topic]` pairs without
988
+ * hand-rolling `harness.queues.topicNames()` + meta-topic exclusion.
989
+ *
990
+ * Excludes the meta topics that share the hub:
991
+ * `intake` (use {@link intake}), `verify-results` (use
992
+ * {@link verifyResults}), `retry` (use {@link retry}), `__unrouted`
993
+ * (use {@link unrouted}), and the internal `triage-output` fan-in.
994
+ *
995
+ * **Why this exists.** `for (const [, topic] of harness.queues)`
996
+ * appears to iterate via `Graph[Symbol.iterator]`, but that yields
997
+ * locally-registered nodes only — and `MessagingHubGraph` mounts
998
+ * topics as child graphs rather than registering them locally, so
999
+ * the loop yields nothing. This map gives a typed, working
1000
+ * iteration path.
1001
+ */
1002
+ readonly queueTopics: ReadonlyMap<QueueRoute, TopicGraph<TriagedItem>>;
762
1003
  /** Strategy model bundle — record outcomes, lookup effectiveness. */
763
1004
  readonly strategy: StrategyModelBundle;
764
1005
  /** Global retry count across all items (circuit breaker). Reactive — subscribable. */
@@ -773,7 +1014,7 @@ declare class HarnessGraph<A = unknown> extends Graph {
773
1014
  * in to priority scoring.
774
1015
  */
775
1016
  readonly priorityScores?: ReadonlyMap<QueueRoute, Node<number>>;
776
- constructor(name: string, queues: MessagingHubGraph, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
1017
+ 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>>);
777
1018
  /** Intake topic — publish items here to enter the loop. */
778
1019
  get intake(): TopicGraph<IntakeItem>;
779
1020
  /** Verify results topic — subscribe to see verification outcomes. */
@@ -1011,6 +1252,9 @@ declare function harnessTrace(harness: HarnessGraph, opts?: HarnessTraceOptions)
1011
1252
  * @module
1012
1253
  */
1013
1254
 
1255
+ type index_ActuatorExecutorConfig<R> = ActuatorExecutorConfig<R>;
1256
+ type index_ActuatorResult<R> = ActuatorResult<R>;
1257
+ type index_AutoSolidifyConfig<R, T = R> = AutoSolidifyConfig<R, T>;
1014
1258
  type index_CodeChange = CodeChange;
1015
1259
  type index_CodeChangeBridgeOptions = CodeChangeBridgeOptions;
1016
1260
  declare const index_DEFAULT_DECAY_RATE: typeof DEFAULT_DECAY_RATE;
@@ -1070,7 +1314,9 @@ type index_TriagedItem = TriagedItem;
1070
1314
  type index_VerifyOutput = VerifyOutput;
1071
1315
  type index_VerifyPromptFn<A = unknown> = VerifyPromptFn<A>;
1072
1316
  type index_VerifyResult<A = unknown> = VerifyResult<A>;
1317
+ declare const index_actuatorExecutor: typeof actuatorExecutor;
1073
1318
  declare const index_affectedTaskFilter: typeof affectedTaskFilter;
1319
+ declare const index_autoSolidify: typeof autoSolidify;
1074
1320
  declare const index_beforeAfterCompare: typeof beforeAfterCompare;
1075
1321
  declare const index_codeChangeBridge: typeof codeChangeBridge;
1076
1322
  declare const index_createIntakeBridge: typeof createIntakeBridge;
@@ -1091,7 +1337,7 @@ declare const index_resolvePromptFn: typeof resolvePromptFn;
1091
1337
  declare const index_strategyKey: typeof strategyKey;
1092
1338
  declare const index_strategyModel: typeof strategyModel;
1093
1339
  declare namespace index {
1094
- export { 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_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_affectedTaskFilter as affectedTaskFilter, 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_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 };
1340
+ export { 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_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_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 };
1095
1341
  }
1096
1342
 
1097
- export { type TraceEventType as $, type IntakeItem as A, type IntakeSource as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type ErrorClass as E, type Intervention as F, type NotifyTransport as G, type HarnessEvalPairConfig as H, type IntakeBridgeOptions as I, type QueueConfig as J, type KnownIntakeSource as K, type LintError as L, type QueueRoute as M, type NotifyEffectOptions as N, type RefineExecutorResult as O, type PrioritySignals as P, QUEUE_NAMES as Q, type RefineExecutorConfig as R, type RootCause as S, type Severity as T, type StrategyEntry as U, type StrategyKey as V, type StrategyModelBundle as W, type StrategySnapshot as X, type TestFailure as Y, type TraceDetail as Z, type TraceEvent as _, type CodeChangeBridgeOptions as a, type TriagePromptFn as a0, type TriagedItem as a1, type VerifyOutput as a2, type VerifyPromptFn as a3, type VerifyResult as a4, affectedTaskFilter as a5, beforeAfterCompare as a6, codeChangeBridge as a7, createIntakeBridge as a8, defaultErrorClassifier as a9, defaultLlmExecutor as aa, defaultLlmVerifier as ab, evalIntakeBridge as ac, evalSource as ad, evalVerifier as ae, harnessEvalPair as af, harnessLoop as ag, harnessProfile as ah, harnessTrace as ai, notifyEffect as aj, priorityScore as ak, refineExecutor as al, resolvePromptFn as am, strategyKey as an, strategyModel as ao, DEFAULT_EXECUTE_PROMPT as b, DEFAULT_QUEUE_CONFIGS as c, DEFAULT_SEVERITY_WEIGHTS as d, DEFAULT_TRIAGE_PROMPT as e, DEFAULT_VERIFY_PROMPT as f, type ErrorClassifier as g, type EvalDelta as h, index as i, type EvalIntakeBridgeOptions as j, type EvalJudgeScore as k, type EvalResult as l, type EvalTaskDelta as m, type EvalTaskResult as n, type EvalVerifierConfig as o, type EvalVerifierSummary as p, type ExecuteOutput as q, type ExecutePromptFn as r, type ExecutionResult as s, type HarnessExecutor as t, HarnessGraph as u, type HarnessLoopOptions as v, type HarnessProfileResult as w, type HarnessTraceHandle as x, type HarnessTraceOptions as y, type HarnessVerifier as z };
1343
+ export { type TestFailure as $, type ActuatorExecutorConfig as A, type HarnessTraceOptions as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type ErrorClass as E, type HarnessVerifier as F, type IntakeItem as G, type HarnessEvalPairConfig as H, type IntakeBridgeOptions as I, type IntakeSource as J, type Intervention as K, type KnownIntakeSource as L, type LintError as M, type NotifyEffectOptions as N, type NotifyTransport as O, type PrioritySignals as P, QUEUE_NAMES as Q, type QueueConfig as R, type QueueRoute as S, type RefineExecutorConfig as T, type RefineExecutorResult as U, type RootCause as V, type Severity as W, type StrategyEntry as X, type StrategyKey as Y, type StrategyModelBundle as Z, type StrategySnapshot as _, type ActuatorResult as a, type TraceDetail as a0, type TraceEvent as a1, type TraceEventType as a2, type TriagePromptFn as a3, type TriagedItem as a4, type VerifyOutput as a5, type VerifyPromptFn as a6, type VerifyResult as a7, actuatorExecutor as a8, affectedTaskFilter as a9, autoSolidify as aa, beforeAfterCompare as ab, codeChangeBridge as ac, createIntakeBridge as ad, defaultErrorClassifier as ae, defaultLlmExecutor as af, defaultLlmVerifier as ag, evalIntakeBridge as ah, evalSource as ai, evalVerifier as aj, harnessEvalPair as ak, harnessLoop as al, harnessProfile as am, harnessTrace as an, notifyEffect as ao, priorityScore as ap, refineExecutor as aq, resolvePromptFn as ar, strategyKey as as, strategyModel as at, type AutoSolidifyConfig as b, type CodeChangeBridgeOptions as c, DEFAULT_EXECUTE_PROMPT as d, DEFAULT_QUEUE_CONFIGS as e, DEFAULT_SEVERITY_WEIGHTS as f, DEFAULT_TRIAGE_PROMPT as g, DEFAULT_VERIFY_PROMPT as h, index as i, type ErrorClassifier as j, type EvalDelta as k, type EvalIntakeBridgeOptions as l, type EvalJudgeScore as m, type EvalResult as n, type EvalTaskDelta as o, type EvalTaskResult as p, type EvalVerifierConfig as q, type EvalVerifierSummary as r, type ExecuteOutput as s, type ExecutePromptFn as t, type ExecutionResult as u, type HarnessExecutor as v, HarnessGraph as w, type HarnessLoopOptions as x, type HarnessProfileResult as y, type HarnessTraceHandle as z };