@graphrefly/graphrefly 0.31.0 → 0.32.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 (177) hide show
  1. package/dist/chunk-2JNT5NDF.js +61 -0
  2. package/dist/{chunk-KN4Q5MQO.js → chunk-2RH4QNDQ.js} +1 -1
  3. package/dist/chunk-4JBKKUCJ.js +7 -0
  4. package/dist/{chunk-WLPVGXQ6.js → chunk-4YGJ7KZ6.js} +1 -1
  5. package/dist/{chunk-3Q2WXM6X.js → chunk-5PBXUVHI.js} +1 -1
  6. package/dist/{chunk-WYJTXYWX.js → chunk-7EMUF2RY.js} +1 -1
  7. package/dist/chunk-7JZ3YORY.js +80 -0
  8. package/dist/{chunk-I4U3TPK2.js → chunk-7QS77X6G.js} +1 -1
  9. package/dist/{chunk-ZM7C2FUM.js → chunk-BU4SUZSA.js} +1 -1
  10. package/dist/{chunk-GF5T7PGC.js → chunk-CNXUW2CU.js} +1 -1
  11. package/dist/{chunk-Z3UWIJ3A.js → chunk-EIFHFDFD.js} +1 -1
  12. package/dist/{chunk-3JRKP4BH.js → chunk-JAHAJU4G.js} +1 -1
  13. package/dist/{chunk-4ZPO2EL5.js → chunk-JYMNVEH6.js} +1 -1
  14. package/dist/{chunk-4KAUNEKV.js → chunk-KD3IYBTD.js} +1 -1
  15. package/dist/{chunk-X2VHDT26.js → chunk-LG73TUF4.js} +2 -2
  16. package/dist/{chunk-JXRZXP3N.js → chunk-LJGPOJHS.js} +1 -1
  17. package/dist/{chunk-YQJPYEAL.js → chunk-M2VFLRPJ.js} +1 -1
  18. package/dist/{chunk-7EQPXQ7H.js → chunk-MFNOZ5E6.js} +1 -1
  19. package/dist/{chunk-YZ6VYLFD.js → chunk-PWKLZ2XU.js} +1 -1
  20. package/dist/{chunk-OKQUPJRY.js → chunk-TOCCHQI6.js} +1 -1
  21. package/dist/{chunk-PZP4MEXK.js → chunk-UXEB35L4.js} +1 -1
  22. package/dist/{chunk-EBQ6FXKW.js → chunk-VXJX3ZZP.js} +1 -1
  23. package/dist/{chunk-7EJTWGKW.js → chunk-WE32AFFA.js} +1 -1
  24. package/dist/{chunk-JMGGCSIC.js → chunk-WF3V5X2L.js} +1 -1
  25. package/dist/{chunk-YZKGGMPT.js → chunk-X4OOM6QU.js} +1 -1
  26. package/dist/{chunk-5LJAQTSS.js → chunk-ZWETYYQG.js} +1 -1
  27. package/dist/compat/index.cjs +1 -1
  28. package/dist/compat/index.d.cts +5 -5
  29. package/dist/compat/index.d.ts +5 -5
  30. package/dist/compat/index.js +1 -1
  31. package/dist/compat/nestjs/index.cjs +1 -1
  32. package/dist/compat/nestjs/index.d.cts +3 -3
  33. package/dist/compat/nestjs/index.d.ts +3 -3
  34. package/dist/compat/nestjs/index.js +1 -1
  35. package/dist/compat/zustand/index.cjs +1 -1
  36. package/dist/compat/zustand/index.d.cts +2 -2
  37. package/dist/compat/zustand/index.d.ts +2 -2
  38. package/dist/compat/zustand/index.js +1 -1
  39. package/dist/extra/index.cjs +1 -1
  40. package/dist/extra/index.d.cts +2 -2
  41. package/dist/extra/index.d.ts +2 -2
  42. package/dist/extra/index.js +1 -1
  43. package/dist/graph/index.cjs +1 -1
  44. package/dist/graph/index.d.cts +3 -3
  45. package/dist/graph/index.d.ts +3 -3
  46. package/dist/graph/index.js +1 -1
  47. package/dist/{graph-CWeI0aHd.d.ts → graph-BOhEGJ6E.d.ts} +10 -0
  48. package/dist/{graph-C4Uxwv0T.d.cts → graph-CdJeX7O7.d.cts} +10 -0
  49. package/dist/{index-B-z8WaSd.d.cts → index-BDLy6CQ9.d.cts} +1 -1
  50. package/dist/{index-iBp74eGU.d.cts → index-BJDXj9Wf.d.cts} +2 -2
  51. package/dist/{index-BBINVimG.d.ts → index-BUZPTPSQ.d.ts} +2 -2
  52. package/dist/{index-DnrZghBB.d.ts → index-BbcSZCAG.d.ts} +1 -1
  53. package/dist/{index-lKuLYmHO.d.cts → index-BiGeETJs.d.cts} +1 -1
  54. package/dist/{index-Dm3_D5Ta.d.cts → index-BmZb8fNF.d.cts} +2 -2
  55. package/dist/{index-Docdiu9a.d.ts → index-Bnmttu35.d.ts} +1 -1
  56. package/dist/{index-CZChc85Q.d.cts → index-BuN2wGJs.d.cts} +297 -22
  57. package/dist/{index-Cy7eFeIX.d.cts → index-BwdPDWI4.d.cts} +1 -1
  58. package/dist/{index-DylQCKEL.d.cts → index-BzxU4yhV.d.cts} +11 -2
  59. package/dist/{index-D9Y_u6BG.d.cts → index-C-Gsh-0a.d.cts} +2 -2
  60. package/dist/{index-DD7RhHNJ.d.cts → index-C22aTC1X.d.cts} +4 -4
  61. package/dist/{index-yIdWFo2b.d.cts → index-C4QTaDli.d.cts} +2 -2
  62. package/dist/{index-CJymKyzT.d.ts → index-C7RqYbOZ.d.ts} +1 -1
  63. package/dist/{index-C5Ghnp5B.d.ts → index-C9qCLIN4.d.ts} +2 -2
  64. package/dist/{index-DVNLe3pS.d.cts → index-CCdg0JLX.d.cts} +1 -1
  65. package/dist/{index-B5iVOD7w.d.ts → index-CEoU-r-g.d.ts} +2 -2
  66. package/dist/{index-CfFYyLR8.d.ts → index-CHfBm51k.d.ts} +11 -2
  67. package/dist/{index-BXzl1NDD.d.ts → index-CNyiYQWF.d.ts} +4 -4
  68. package/dist/{index-C6NBfXj-.d.ts → index-CVevMZ0n.d.ts} +2 -2
  69. package/dist/{index-DGb1awva.d.ts → index-CZUzi6Dy.d.ts} +2 -2
  70. package/dist/{index-FrYrV-Vf.d.ts → index-Ckl03Q0s.d.ts} +1 -1
  71. package/dist/{index-Bvi5uJxX.d.ts → index-CmSjld-4.d.ts} +1 -1
  72. package/dist/{index-9iguV3bF.d.cts → index-CnjUhRbs.d.cts} +2 -2
  73. package/dist/{index-C98oJsEs.d.cts → index-D3HcdZ4d.d.cts} +1 -1
  74. package/dist/{index-IZ3l_vQ9.d.ts → index-DD1czHj3.d.ts} +1 -1
  75. package/dist/{index-gJQqJTKx.d.cts → index-DNhTQReY.d.cts} +1 -1
  76. package/dist/{index-UZO988ox.d.cts → index-DSawGt8n.d.cts} +2 -2
  77. package/dist/{index-CcpEvuPl.d.cts → index-DUkuH3jP.d.cts} +1 -1
  78. package/dist/{index-CRAkoq-y.d.cts → index-DY2QbdoP.d.cts} +1 -1
  79. package/dist/{index-CvS9IuTG.d.ts → index-Dbmj0iYR.d.ts} +1 -1
  80. package/dist/{index-Bd6oFZqO.d.ts → index-DhlAMlm9.d.ts} +297 -22
  81. package/dist/{index-BMe3pCom.d.cts → index-DlGaEBW5.d.cts} +2 -2
  82. package/dist/{index-CotRMjtJ.d.ts → index-Dp_pS7Bw.d.ts} +1 -1
  83. package/dist/{index-DxMS0cHM.d.ts → index-Dxk-pUQI.d.ts} +2 -2
  84. package/dist/{index-DBQUKh59.d.cts → index-EGjF6iSY.d.cts} +3 -3
  85. package/dist/{index-D9HrBx2J.d.ts → index-LGzAYqdR.d.ts} +1 -1
  86. package/dist/{index-DR3gf_DG.d.cts → index-LzCJ0kMT.d.cts} +2 -2
  87. package/dist/{index-RQg6lTrN.d.ts → index-MV2yGIAq.d.ts} +2 -2
  88. package/dist/{index-Bs3-LC83.d.cts → index-_BXz9K7b.d.cts} +1 -1
  89. package/dist/{index-SSGqF8mI.d.cts → index-aBqZUx3B.d.cts} +1 -1
  90. package/dist/{index-CFW32Dy1.d.ts → index-eYHRkoK-.d.ts} +1 -1
  91. package/dist/{index-CwhcFzTA.d.ts → index-gXTVbSax.d.ts} +2 -2
  92. package/dist/{index-D-kHVedZ.d.cts → index-j33Lfb1G.d.cts} +22 -1
  93. package/dist/{index-BEpRsvhg.d.ts → index-lpGUhTBn.d.ts} +3 -3
  94. package/dist/{index-CcS0t-l2.d.ts → index-zMQIQuDu.d.ts} +22 -1
  95. package/dist/index.cjs +53 -50
  96. package/dist/index.d.cts +26 -26
  97. package/dist/index.d.ts +26 -26
  98. package/dist/index.js +1 -1
  99. package/dist/patterns/ai/index.cjs +21 -18
  100. package/dist/patterns/ai/index.d.cts +6 -6
  101. package/dist/patterns/ai/index.d.ts +6 -6
  102. package/dist/patterns/ai/index.js +1 -1
  103. package/dist/patterns/audit/index.cjs +1 -1
  104. package/dist/patterns/audit/index.d.cts +3 -3
  105. package/dist/patterns/audit/index.d.ts +3 -3
  106. package/dist/patterns/audit/index.js +1 -1
  107. package/dist/patterns/cqrs/index.cjs +1 -1
  108. package/dist/patterns/cqrs/index.d.cts +2 -2
  109. package/dist/patterns/cqrs/index.d.ts +2 -2
  110. package/dist/patterns/cqrs/index.js +1 -1
  111. package/dist/patterns/demo-shell/index.cjs +1 -1
  112. package/dist/patterns/demo-shell/index.d.cts +3 -3
  113. package/dist/patterns/demo-shell/index.d.ts +3 -3
  114. package/dist/patterns/demo-shell/index.js +1 -1
  115. package/dist/patterns/domain-templates/index.cjs +5 -5
  116. package/dist/patterns/domain-templates/index.d.cts +2 -2
  117. package/dist/patterns/domain-templates/index.d.ts +2 -2
  118. package/dist/patterns/domain-templates/index.js +1 -1
  119. package/dist/patterns/graphspec/index.cjs +27 -25
  120. package/dist/patterns/graphspec/index.d.cts +2 -2
  121. package/dist/patterns/graphspec/index.d.ts +2 -2
  122. package/dist/patterns/graphspec/index.js +1 -1
  123. package/dist/patterns/guarded-execution/index.cjs +5 -5
  124. package/dist/patterns/guarded-execution/index.d.cts +4 -4
  125. package/dist/patterns/guarded-execution/index.d.ts +4 -4
  126. package/dist/patterns/guarded-execution/index.js +1 -1
  127. package/dist/patterns/harness/index.cjs +12 -11
  128. package/dist/patterns/harness/index.d.cts +5 -5
  129. package/dist/patterns/harness/index.d.ts +5 -5
  130. package/dist/patterns/harness/index.js +1 -1
  131. package/dist/patterns/job-queue/index.cjs +1 -1
  132. package/dist/patterns/job-queue/index.d.cts +2 -2
  133. package/dist/patterns/job-queue/index.d.ts +2 -2
  134. package/dist/patterns/job-queue/index.js +1 -1
  135. package/dist/patterns/lens/index.cjs +1 -1
  136. package/dist/patterns/lens/index.d.cts +3 -3
  137. package/dist/patterns/lens/index.d.ts +3 -3
  138. package/dist/patterns/lens/index.js +1 -1
  139. package/dist/patterns/memory/index.cjs +1 -1
  140. package/dist/patterns/memory/index.d.cts +2 -2
  141. package/dist/patterns/memory/index.d.ts +2 -2
  142. package/dist/patterns/memory/index.js +1 -1
  143. package/dist/patterns/messaging/index.cjs +1 -1
  144. package/dist/patterns/messaging/index.d.cts +2 -2
  145. package/dist/patterns/messaging/index.d.ts +2 -2
  146. package/dist/patterns/messaging/index.js +1 -1
  147. package/dist/patterns/orchestration/index.cjs +7 -7
  148. package/dist/patterns/orchestration/index.d.cts +2 -2
  149. package/dist/patterns/orchestration/index.d.ts +2 -2
  150. package/dist/patterns/orchestration/index.js +1 -1
  151. package/dist/patterns/reactive-layout/index.cjs +1 -1
  152. package/dist/patterns/reactive-layout/index.d.cts +3 -3
  153. package/dist/patterns/reactive-layout/index.d.ts +3 -3
  154. package/dist/patterns/reactive-layout/index.js +1 -1
  155. package/dist/patterns/reduction/index.cjs +1 -1
  156. package/dist/patterns/reduction/index.d.cts +2 -2
  157. package/dist/patterns/reduction/index.d.ts +2 -2
  158. package/dist/patterns/reduction/index.js +1 -1
  159. package/dist/patterns/refine-loop/index.cjs +3 -3
  160. package/dist/patterns/refine-loop/index.d.cts +3 -3
  161. package/dist/patterns/refine-loop/index.d.ts +3 -3
  162. package/dist/patterns/refine-loop/index.js +1 -1
  163. package/dist/patterns/resilient-pipeline/index.d.cts +3 -3
  164. package/dist/patterns/resilient-pipeline/index.d.ts +3 -3
  165. package/dist/patterns/resilient-pipeline/index.js +1 -1
  166. package/dist/patterns/surface/index.cjs +15 -13
  167. package/dist/patterns/surface/index.d.cts +3 -3
  168. package/dist/patterns/surface/index.d.ts +3 -3
  169. package/dist/patterns/surface/index.js +1 -1
  170. package/dist/{reactive-layout-BAr6-_o5.d.ts → reactive-layout-Bq0rA2Wb.d.ts} +1 -1
  171. package/dist/{reactive-layout-5oEn8lHM.d.cts → reactive-layout-Dhhe54Oj.d.cts} +1 -1
  172. package/dist/{topology-tree-CVREibAc.d.cts → topology-tree-CpSjvIXp.d.cts} +1 -1
  173. package/dist/{topology-tree-CkjojcB6.d.ts → topology-tree-DAbCV2Yw.d.ts} +1 -1
  174. package/package.json +1 -1
  175. package/dist/chunk-ASDKRNOJ.js +0 -60
  176. package/dist/chunk-PSQNYY72.js +0 -7
  177. package/dist/chunk-XEFAMCEA.js +0 -78
@@ -5,13 +5,13 @@ import { R as ReactiveLogBundle } from './reactive-log-5jFeNRmd.cjs';
5
5
  import { a as CircuitBreakerOptions, e as CircuitBreaker, f as CircuitOpenError } from './resilience-Q6Bt_7y0.cjs';
6
6
  import { NodeInput } from './extra/sources.cjs';
7
7
  import { W as WithReplayCacheOptions, F as FallbackAdapterOptions, a as FallbackFixture, b as FallbackMissError, c as FallbackMissPolicy, R as ReplayCacheKeyContext, d as ReplayCacheMissError, e as ReplayCacheMode, f as canonicalJson, g as fallbackAdapter, w as withReplayCache } from './fallback-Cb3GH1O7.cjs';
8
- import { G as Graph, a as GraphOptions, h as GraphAttachStorageOptions } from './graph-C4Uxwv0T.cjs';
9
- import { T as TopicGraph } from './index-B-z8WaSd.cjs';
10
- import { G as GateController, a as GateOptions } from './index-DVNLe3pS.cjs';
8
+ import { G as Graph, a as GraphOptions, h as GraphAttachStorageOptions } from './graph-CdJeX7O7.cjs';
9
+ import { T as TopicGraph } from './index-BDLy6CQ9.cjs';
10
+ import { G as GateController, a as GateOptions } from './index-CCdg0JLX.cjs';
11
11
  import { D as DistillBundle, E as Extraction } from './composite-CH0S8DFn.cjs';
12
- import { V as VectorSearchResult, L as LightCollectionBundle, a as VectorIndexBundle, K as KnowledgeGraphGraph } from './index-lKuLYmHO.cjs';
12
+ import { V as VectorSearchResult, L as LightCollectionBundle, a as VectorIndexBundle, K as KnowledgeGraphGraph } from './index-BiGeETJs.cjs';
13
13
  import { StorageHandle, StorageTier } from './extra/storage-core.cjs';
14
- import { c as GraphSpecCatalog } from './index-D-kHVedZ.cjs';
14
+ import { c as GraphSpecCatalog } from './index-j33Lfb1G.cjs';
15
15
 
16
16
  /**
17
17
  * Observable adapter wrapper — the "inverted statistics" surface.
@@ -824,8 +824,12 @@ type FrozenContextOptions = {
824
824
  * increments via `setState(n + 1)`.
825
825
  *
826
826
  * When omitted, the frozen value is materialized exactly once (on first
827
- * subscribe) and never refreshes use this for session-start snapshots
828
- * that must stay stable for the lifetime of the activation.
827
+ * subscribe) and never refreshes for the lifetime of the activation —
828
+ * use this for session-start snapshots that must stay stable. The
829
+ * single-shot latch IS reset on `INVALIDATE` (graph-wide flush via
830
+ * `graph.signal([[INVALIDATE]])`), so callers who need an "evict and
831
+ * re-materialize" escape hatch get one through the standard graph
832
+ * lifecycle without having to wire a `refreshTrigger`.
829
833
  */
830
834
  refreshTrigger?: NodeInput<unknown>;
831
835
  name?: string;
@@ -862,6 +866,22 @@ declare function frozenContext<T>(source: NodeInput<T>, opts?: FrozenContextOpti
862
866
  /**
863
867
  * `promptNode` — universal LLM transform as a reactive derived node.
864
868
  *
869
+ * The shape: `deps → messagesNode (derived) → switchMap → call (producer) → output`.
870
+ * Each upstream wave is one LLM call; superseding waves cancel the in-flight
871
+ * call via the abort signal threaded through `nodeSignal(opts.abort)`.
872
+ *
873
+ * The producer-shape on the inner is load-bearing: it emits exactly one DATA
874
+ * + COMPLETE per wave, so the outer switchMap sees one DATA per wave (matches
875
+ * the `HarnessExecutor` contract). A `derived([call], parse)` would have its
876
+ * own first-run / push-on-subscribe semantics that can leak a transient null
877
+ * before the real response arrives — observed and reverted in an earlier
878
+ * attempt; see SESSION-ai-harness-module-review.md line 3654 for context.
879
+ *
880
+ * For retry / replay-cache semantics, wrap the adapter with `withRetry` /
881
+ * `withReplayCache` middleware (see `patterns/ai/adapters/middleware/`). The
882
+ * removed `retries` / `cache` options on `promptNode` duplicated middleware
883
+ * that already exists at the adapter layer.
884
+ *
865
885
  * @module
866
886
  */
867
887
 
@@ -872,18 +892,51 @@ type PromptNodeOptions = {
872
892
  maxTokens?: number;
873
893
  /** Output format — `"json"` attempts JSON.parse on the response. Default: `"text"`. */
874
894
  format?: "text" | "json";
875
- /** Number of retries on transient errors. Default: 0. */
876
- retries?: number;
877
- /** Cache LLM responses for identical inputs. Default: false. */
878
- cache?: boolean;
895
+ /**
896
+ * Optional system prompt. Forwarded via `opts.systemPrompt` to the adapter
897
+ * only never pushed as a `{role:"system"}` message (avoiding the
898
+ * double-send class of bug where adapters that normalize both shapes end
899
+ * up with two system entries).
900
+ */
879
901
  systemPrompt?: string;
902
+ /**
903
+ * Optional reactive abort signal. When the node emits `true`, the in-flight
904
+ * `adapter.invoke()` call is cancelled via `AbortController.abort()`.
905
+ * Threaded through `nodeSignal(abort)` — a one-shot bridge. Useful inside
906
+ * agent state machines where a separate `aborted` state should cancel the
907
+ * current LLM call without superseding via switchMap.
908
+ */
909
+ abort?: Node<boolean>;
880
910
  meta?: Record<string, unknown>;
881
911
  };
882
912
  /**
883
913
  * Universal LLM transform: wraps a prompt template + model adapter into a reactive derived node.
884
914
  * Re-invokes the LLM whenever any dep changes. Suitable for triage, QA, hypothesis, parity, etc.
885
915
  *
886
- * @param adapter - LLM adapter (provider-agnostic).
916
+ * **Topology** (visible in `describe()`):
917
+ * ```
918
+ * <deps...> → <name>::messages (derived, meta.ai = prompt_node)
919
+ * <name>::messages → <name>::output (switchMap product, meta.ai = prompt_node::output)
920
+ * per-wave inner: <name>::call (producer, meta.ai = prompt_node::call)
921
+ * ```
922
+ *
923
+ * **No-input semantics** (matches the codebase-wide SENTINEL convention):
924
+ * - **Initial no-input** (no real input has ever arrived) — emits nothing.
925
+ * Outer cache stays `undefined`; `subscribe` consumers see no DATA event.
926
+ * Use this to keep downstream gating clean: a `withLatestFrom`-paired
927
+ * trigger won't fire until the LLM has actually produced something.
928
+ * - **Mid-flow no-input** (input dropped to nullish after at least one
929
+ * real LLM call) — emits `null` as a domain "input went away" signal.
930
+ * Downstream consumers can distinguish "haven't started" from "input
931
+ * gone."
932
+ *
933
+ * **Retries / caching:** stack `withRetry` / `withReplayCache` middleware on the
934
+ * `adapter` argument — `promptNode` no longer ships its own duplicated retry /
935
+ * cache loops (pre-1.0 cleanup, see review session 1).
936
+ *
937
+ * @param adapter - LLM adapter (provider-agnostic). Wrap with `withRetry` /
938
+ * `withReplayCache` middleware for transient-error tolerance
939
+ * or replay caching.
887
940
  * @param deps - Input nodes whose values feed the prompt.
888
941
  * @param prompt - Static string or template function receiving dep values.
889
942
  * @param opts - Optional configuration.
@@ -1393,8 +1446,6 @@ declare class AgentLoopGraph extends Graph {
1393
1446
  readonly toolCalls: Node<readonly ToolCall[]>;
1394
1447
  /** Tool-result batch (one entry per call) after reactive execution. SENTINEL. */
1395
1448
  readonly toolResults: Node<readonly ToolResult[]>;
1396
- /** @deprecated Use `turn` instead. Pre-1.0 rename — this alias will be removed. */
1397
- readonly turnCount: Node<number>;
1398
1449
  private readonly _terminalResult;
1399
1450
  private readonly _disposeRunWiring;
1400
1451
  /**
@@ -1553,6 +1604,29 @@ interface ToolSelectorOptions {
1553
1604
  */
1554
1605
  declare function toolSelector(allTools: NodeInput<readonly ToolDefinition[]>, constraints: readonly NodeInput<(tool: ToolDefinition) => boolean>[], opts?: ToolSelectorOptions): Node<readonly ToolDefinition[]>;
1555
1606
 
1607
+ /** Generic per-dimension thresholds. Any dim below its threshold → reject. */
1608
+ type AdmissionThresholds<Dims extends string> = Partial<Record<Dims, number>>;
1609
+ type AdmissionScoredOptions<Dims extends string, TRaw = unknown> = {
1610
+ /** Score function — must return a finite number for every dimension named in `thresholds`. */
1611
+ scoreFn: (raw: TRaw) => Readonly<Record<Dims, number>>;
1612
+ /** Per-dim minimums. Dims absent here are scored but not gated. */
1613
+ thresholds?: AdmissionThresholds<Dims>;
1614
+ };
1615
+ /**
1616
+ * Generic N-dimension admission filter. Rejects any input where one of the
1617
+ * configured threshold dimensions scores below its minimum. Missing scores
1618
+ * (`undefined` / `null`) AND non-finite values (`NaN`, `±Infinity`) are
1619
+ * treated as below all thresholds — reject by default rather than admit.
1620
+ *
1621
+ * @example
1622
+ * ```ts
1623
+ * const filter = admissionScored({
1624
+ * scoreFn: (raw: Note) => ({ relevance: scoreRelevance(raw), age: ageScore(raw) }),
1625
+ * thresholds: { relevance: 0.4 }, // age scored but ungated
1626
+ * });
1627
+ * ```
1628
+ */
1629
+ declare function admissionScored<Dims extends string, TRaw = unknown>(opts: AdmissionScoredOptions<Dims, TRaw>): (raw: TRaw) => boolean;
1556
1630
  /** Scores for the three admission dimensions. Each 0–1. */
1557
1631
  type AdmissionScores = {
1558
1632
  readonly persistence: number;
@@ -1560,8 +1634,8 @@ type AdmissionScores = {
1560
1634
  readonly personalValue: number;
1561
1635
  };
1562
1636
  type AdmissionScore3DOptions = {
1563
- /** Custom scoring function. Default: rule-based (all dimensions 0.5). */
1564
- scoreFn?: (raw: unknown) => AdmissionScores;
1637
+ /** Custom scoring function. Required the previous always-0.5 default was misleading. */
1638
+ scoreFn: (raw: unknown) => AdmissionScores;
1565
1639
  /** Minimum persistence score to admit (default 0.3). */
1566
1640
  persistenceThreshold?: number;
1567
1641
  /** Minimum personalValue score to admit (default 0.3). */
@@ -1570,11 +1644,19 @@ type AdmissionScore3DOptions = {
1570
1644
  requireStructured?: boolean;
1571
1645
  };
1572
1646
  /**
1573
- * Creates a 3D admission filter function compatible with `agentMemory`'s
1574
- * `admissionFilter` option. Scores each candidate on persistence, structure,
1575
- * and personalValue, then applies thresholds.
1647
+ * 3D admission sugar the persistence / structure / personalValue triple
1648
+ * commonly used in agent-memory literature. Composes `admissionScored`
1649
+ * with thresholds derived from the option fields. Use directly when those
1650
+ * three named dimensions match your domain, or use `admissionScored` with
1651
+ * an arbitrary dimension set instead.
1652
+ *
1653
+ * `requireStructured: true` rejects entries where `structure <= 0` (matches
1654
+ * the pre-Unit-8 `requireStructured && scores.structure <= 0` check).
1655
+ * Implemented as a final-step predicate around `admissionScored` rather
1656
+ * than a `Number.MIN_VALUE` threshold, which would have been a footgun for
1657
+ * future readers.
1576
1658
  */
1577
- declare function admissionFilter3D(opts?: AdmissionScore3DOptions): (raw: unknown) => boolean;
1659
+ declare function admissionFilter3D(opts: AdmissionScore3DOptions): (raw: unknown) => boolean;
1578
1660
 
1579
1661
  type RetrievalQuery = {
1580
1662
  readonly text?: string;
@@ -1793,6 +1875,20 @@ type LLMExtractorOptions = {
1793
1875
  model?: string;
1794
1876
  temperature?: number;
1795
1877
  maxTokens?: number;
1878
+ /**
1879
+ * Cap the dedup-hint slice of `existingKeys` passed to the LLM. Larger
1880
+ * stores ship more keys (better dedup recall) at the cost of prompt size.
1881
+ * Default 100. Set to `Infinity` to forward every key.
1882
+ */
1883
+ maxExistingKeys?: number;
1884
+ /**
1885
+ * Optional name forwarded to the underlying `promptNode` (used as the
1886
+ * `<name>::messages` / `<name>::call` / `<name>::output` path prefix).
1887
+ * Defaults differ per call site (`llmExtractor` / `llmConsolidator`) so
1888
+ * extractor + consolidator wired into the same graph don't collide on
1889
+ * `prompt_node::output`.
1890
+ */
1891
+ name?: string;
1796
1892
  };
1797
1893
  /**
1798
1894
  * Returns an `extractFn` callback for `distill()` that invokes an LLM to
@@ -1800,6 +1896,10 @@ type LLMExtractorOptions = {
1800
1896
  *
1801
1897
  * The system prompt should instruct the LLM to return JSON matching
1802
1898
  * `Extraction<TMem>` shape: `{ upsert: [{ key, value }], remove?: [key] }`.
1899
+ *
1900
+ * Built on `promptNode({format: "json"})` — inherits markdown-fence stripping
1901
+ * and content-preview parse errors. Stack `withRetry` on the adapter for
1902
+ * transient-error tolerance (see `patterns/ai/adapters/middleware/retry.ts`).
1803
1903
  */
1804
1904
  declare function llmExtractor<TRaw, TMem>(systemPrompt: string, opts: LLMExtractorOptions): (raw: TRaw, existing: ReadonlyMap<string, TMem>) => NodeInput<Extraction<TMem>>;
1805
1905
  type LLMConsolidatorOptions = LLMExtractorOptions;
@@ -1809,6 +1909,111 @@ type LLMConsolidatorOptions = LLMExtractorOptions;
1809
1909
  */
1810
1910
  declare function llmConsolidator<TMem>(systemPrompt: string, opts: LLMConsolidatorOptions): (entries: ReadonlyMap<string, TMem>) => NodeInput<Extraction<TMem>>;
1811
1911
 
1912
+ type MemoryWithVectorsOptions<TMem> = {
1913
+ /** Embedding dimension. Must match the `embedFn` output length. */
1914
+ dimension: number;
1915
+ /** Extract an embedding vector for a memory entry. */
1916
+ embedFn: (mem: TMem) => readonly number[] | undefined;
1917
+ };
1918
+ /**
1919
+ * Attach a vector index to a `DistillBundle`. Indexes every entry in the
1920
+ * store as it changes. Returns the `VectorIndexBundle` so retrieval can read
1921
+ * its `entries` and call `search()`.
1922
+ *
1923
+ * The indexer's keepalive is registered with `graph.addDisposer` so it tears
1924
+ * down on `graph.destroy()`. The returned `dispose()` is also available for
1925
+ * early release without destroying the parent graph.
1926
+ */
1927
+ declare function memoryWithVectors<TMem>(graph: Graph, store: DistillBundle<TMem>, opts: MemoryWithVectorsOptions<TMem>): {
1928
+ vectors: VectorIndexBundle<TMem>;
1929
+ dispose: () => void;
1930
+ };
1931
+ type MemoryWithKGOptions<TMem> = {
1932
+ /** Extract entities + relations for a memory entry. */
1933
+ entityFn: (key: string, mem: TMem) => {
1934
+ entities?: Array<{
1935
+ id: string;
1936
+ value: unknown;
1937
+ }>;
1938
+ relations?: Array<{
1939
+ from: string;
1940
+ to: string;
1941
+ relation: string;
1942
+ weight?: number;
1943
+ }>;
1944
+ } | undefined;
1945
+ };
1946
+ /**
1947
+ * Attach a knowledge graph alongside a `DistillBundle`. Mount path defaults
1948
+ * to the `name` arg so multiple `memoryWithKG` calls on the same graph don't
1949
+ * collide on a hardcoded `"kg"` mount.
1950
+ *
1951
+ * Indexer keepalive is registered with `graph.addDisposer`; explicit
1952
+ * `dispose()` is also available.
1953
+ */
1954
+ declare function memoryWithKG<TMem>(graph: Graph, store: DistillBundle<TMem>, name: string, opts: MemoryWithKGOptions<TMem>): {
1955
+ kg: KnowledgeGraphGraph<unknown, string>;
1956
+ dispose: () => void;
1957
+ };
1958
+ type MemoryWithTiersOptions<TMem> = MemoryTiersOptions<TMem> & {
1959
+ /** Score function — same signature as `agentMemory.score`. */
1960
+ score: (mem: TMem, context: unknown) => number;
1961
+ /** Optional reactive context node (passed to `score`). */
1962
+ context?: NodeInput<unknown>;
1963
+ };
1964
+ /**
1965
+ * Attach 3-tier storage (active / archived / permanent) to a `DistillBundle`.
1966
+ * Wires a `tierClassifier` effect that:
1967
+ * - Promotes entries matching `permanentFilter` into the permanent tier.
1968
+ * - Archives entries whose decayed score falls below `archiveThreshold`.
1969
+ * - Caps the active tier at `maxActive`, evicting lowest-scored on overflow.
1970
+ *
1971
+ * **Closure state caveat (Unit 7 Q3 deferred):** `permanentKeys` +
1972
+ * `entryCreatedAtNs` are still closure-held for now; promotion to reactive
1973
+ * nodes is tracked in `docs/optimizations.md`.
1974
+ */
1975
+ declare function memoryWithTiers<TMem>(graph: Graph, store: DistillBundle<TMem>, opts: MemoryWithTiersOptions<TMem>): {
1976
+ tiers: MemoryTiersBundle<TMem>;
1977
+ dispose: () => void;
1978
+ };
1979
+ type MemoryRetrievalOptions<TMem> = {
1980
+ /** Score function (same shape as `agentMemory.score`). */
1981
+ score: (mem: TMem, context: unknown) => number;
1982
+ /** Cost function for budget packing. */
1983
+ cost: (mem: TMem) => number;
1984
+ /** Token / cost budget. Default 2000. */
1985
+ budget?: number;
1986
+ /** Top-K vector candidates. Default 20. */
1987
+ topK?: number;
1988
+ /** KG expansion depth in hops. Default 1. */
1989
+ graphDepth?: number;
1990
+ /** Hierarchical-context boost weight. Default 0. */
1991
+ contextWeight?: number;
1992
+ /** Hierarchical-context accessor for entries. */
1993
+ contextOf?: (mem: TMem) => readonly string[] | undefined;
1994
+ /** Optional reactive context node (passed to `score`). */
1995
+ context?: NodeInput<unknown>;
1996
+ };
1997
+ type MemoryRetrievalBundle<TMem> = {
1998
+ /** State node mirroring the latest packed retrieval result. */
1999
+ readonly retrieval: Node<ReadonlyArray<RetrievalEntry<TMem>>>;
2000
+ /** State node mirroring the latest retrieval trace. */
2001
+ readonly retrievalTrace: Node<RetrievalTrace<TMem> | null>;
2002
+ /** Imperative consumer API — synchronous; reads cache at call time. */
2003
+ readonly retrieve: (query: RetrievalQuery) => ReadonlyArray<RetrievalEntry<TMem>>;
2004
+ /** Reactive sibling — chain into the graph. Mirrors observability state. */
2005
+ readonly retrieveReactive: (queryInput: NodeInput<RetrievalQuery | null>) => Node<ReadonlyArray<RetrievalEntry<TMem>>>;
2006
+ };
2007
+ /**
2008
+ * Build the retrieval pipeline (vector + KG + budget packing) over a
2009
+ * `DistillBundle` and optional `vectors` / `kg` bundles.
2010
+ *
2011
+ * Both consumer surfaces (`retrieve`, `retrieveReactive`) write to the same
2012
+ * `retrieval` + `retrievalTrace` state nodes — observers subscribed to those
2013
+ * see ALL queries regardless of which API issued them.
2014
+ */
2015
+ declare function memoryRetrieval<TMem>(graph: Graph, store: DistillBundle<TMem>, vectors: VectorIndexBundle<TMem> | null, kg: KnowledgeGraphGraph<unknown, string> | null, opts: MemoryRetrievalOptions<TMem>): MemoryRetrievalBundle<TMem>;
2016
+
1812
2017
  type GaugesAsContextOptions = {
1813
2018
  /** Group gauges by `meta.tags` (default true). */
1814
2019
  groupByTags?: boolean;
@@ -1849,6 +2054,13 @@ type GraphFromSpecOptions = {
1849
2054
  catalog?: GraphSpecCatalog;
1850
2055
  /** Extra instructions appended to the system prompt. */
1851
2056
  systemPromptExtra?: string;
2057
+ /**
2058
+ * Optional AbortSignal forwarded to `adapter.invoke({ signal })`. Lets
2059
+ * callers cancel the in-flight LLM call (e.g. when the reactive variant
2060
+ * supersedes mid-flight). When the signal aborts, the underlying call
2061
+ * propagates the abort and `graphFromSpec` rejects with the abort reason.
2062
+ */
2063
+ signal?: AbortSignal;
1852
2064
  };
1853
2065
  /**
1854
2066
  * Ask an LLM to compose a Graph from a natural-language description.
@@ -1864,6 +2076,32 @@ type GraphFromSpecOptions = {
1864
2076
  * @throws On invalid LLM output, validation failure, or unresolvable deps.
1865
2077
  */
1866
2078
  declare function graphFromSpec(naturalLanguage: string, adapter: LLMAdapter, opts?: GraphFromSpecOptions): Promise<Graph>;
2079
+ /**
2080
+ * Reactive variant of {@link graphFromSpec}: re-invokes the LLM and
2081
+ * recompiles the graph whenever `input` emits a new natural-language
2082
+ * description. Useful inside the harness or refine loop when the spec text
2083
+ * itself is a reactive value (e.g. fed by a `state(...)` knob, a memory
2084
+ * snapshot, or an upstream `promptNode` output).
2085
+ *
2086
+ * **Supersede:** when the input changes mid-flight, switchMap tears the
2087
+ * inner producer down. The producer's cleanup aborts the in-flight LLM
2088
+ * call via an internal `AbortController` (threaded into `graphFromSpec`'s
2089
+ * new `signal` option) AND destroys any Graph that lands after cancel —
2090
+ * no token leak, no unreferenced compiled graphs. If the user's input
2091
+ * already changed by the time the LLM responds, the about-to-be-discarded
2092
+ * Graph is freed instead of orphaned.
2093
+ *
2094
+ * **Lifetime of the latest emitted Graph:** the caller owns each Graph
2095
+ * that actually reaches them. If you keep multiple historical values, call
2096
+ * `prev?.destroy()` before storing the new one.
2097
+ *
2098
+ * @param input - Reactive source of natural-language descriptions.
2099
+ * @param adapter - LLM adapter for the generation call.
2100
+ * @param opts - Model options and optional catalog for named node factories.
2101
+ * @returns `Node<Graph | null>` — emits the latest compiled graph, or `null`
2102
+ * while the input is empty / unsettled.
2103
+ */
2104
+ declare function graphFromSpecReactive(input: NodeInput<string>, adapter: LLMAdapter, opts?: GraphFromSpecOptions): Node<Graph | null>;
1867
2105
 
1868
2106
  /** OpenAI function-calling tool schema. */
1869
2107
  type OpenAIToolSchema = {
@@ -1943,6 +2181,13 @@ type SuggestStrategyOptions = {
1943
2181
  temperature?: number;
1944
2182
  maxTokens?: number;
1945
2183
  actor?: Actor;
2184
+ /**
2185
+ * Optional AbortSignal forwarded to `adapter.invoke({ signal })`. Lets
2186
+ * callers cancel the in-flight LLM call (e.g. when the reactive variant
2187
+ * supersedes mid-flight). When the signal aborts, the underlying call
2188
+ * propagates the abort and `suggestStrategy` rejects with the abort reason.
2189
+ */
2190
+ signal?: AbortSignal;
1946
2191
  };
1947
2192
  /**
1948
2193
  * Ask an LLM to analyze a graph and suggest topology/parameter changes
@@ -1959,6 +2204,22 @@ type SuggestStrategyOptions = {
1959
2204
  * @throws On invalid LLM output.
1960
2205
  */
1961
2206
  declare function suggestStrategy(graph: Graph, problem: string, adapter: LLMAdapter, opts?: SuggestStrategyOptions): Promise<StrategyPlan>;
2207
+ /**
2208
+ * Reactive variant of {@link suggestStrategy}: re-invokes the LLM whenever
2209
+ * the `problem` source emits, sampling the latest `graph` value (via
2210
+ * `withLatestFrom`) to describe. The graph is the *secondary* dep — only
2211
+ * problem changes re-trigger analysis. This breaks the feedback cycle that
2212
+ * would otherwise arise if downstream consumers wired `apply(plan)` back
2213
+ * into the same graph node (graph mutation must not auto-fire a re-analysis).
2214
+ *
2215
+ * @param graph - Reactive source of graphs to analyze.
2216
+ * @param problem - Reactive source of natural-language problem statements.
2217
+ * @param adapter - LLM adapter for the analysis call.
2218
+ * @param opts - Model and actor options.
2219
+ * @returns `Node<StrategyPlan | null>` — emits the latest plan, or `null`
2220
+ * while inputs are unsettled.
2221
+ */
2222
+ declare function suggestStrategyReactive(graph: Node<Graph | null>, problem: NodeInput<string>, adapter: LLMAdapter, opts?: SuggestStrategyOptions): Node<StrategyPlan | null>;
1962
2223
 
1963
2224
  /** Validation result from {@link validateGraphDef}. */
1964
2225
  type GraphDefValidation = {
@@ -1998,7 +2259,9 @@ declare const index_AdapterProvider: typeof AdapterProvider;
1998
2259
  type index_AdapterStats = AdapterStats;
1999
2260
  declare const index_AdapterTier: typeof AdapterTier;
2000
2261
  type index_AdmissionScore3DOptions = AdmissionScore3DOptions;
2262
+ type index_AdmissionScoredOptions<Dims extends string, TRaw = unknown> = AdmissionScoredOptions<Dims, TRaw>;
2001
2263
  type index_AdmissionScores = AdmissionScores;
2264
+ type index_AdmissionThresholds<Dims extends string> = AdmissionThresholds<Dims>;
2002
2265
  type index_AgentLoopGraph = AgentLoopGraph;
2003
2266
  declare const index_AgentLoopGraph: typeof AgentLoopGraph;
2004
2267
  type index_AgentLoopOptions = AgentLoopOptions;
@@ -2056,9 +2319,14 @@ declare const index_LLMResponse: typeof LLMResponse;
2056
2319
  type index_LLMTimeoutError = LLMTimeoutError;
2057
2320
  declare const index_LLMTimeoutError: typeof LLMTimeoutError;
2058
2321
  type index_McpToolSchema = McpToolSchema;
2322
+ type index_MemoryRetrievalBundle<TMem> = MemoryRetrievalBundle<TMem>;
2323
+ type index_MemoryRetrievalOptions<TMem> = MemoryRetrievalOptions<TMem>;
2059
2324
  type index_MemoryTier = MemoryTier;
2060
2325
  type index_MemoryTiersBundle<TMem> = MemoryTiersBundle<TMem>;
2061
2326
  type index_MemoryTiersOptions<TMem> = MemoryTiersOptions<TMem>;
2327
+ type index_MemoryWithKGOptions<TMem> = MemoryWithKGOptions<TMem>;
2328
+ type index_MemoryWithTiersOptions<TMem> = MemoryWithTiersOptions<TMem>;
2329
+ type index_MemoryWithVectorsOptions<TMem> = MemoryWithVectorsOptions<TMem>;
2062
2330
  declare const index_ModelCapabilities: typeof ModelCapabilities;
2063
2331
  declare const index_ModelFeatures: typeof ModelFeatures;
2064
2332
  declare const index_ModelLimits: typeof ModelLimits;
@@ -2107,6 +2375,7 @@ type index_WithRateLimiterOptions = WithRateLimiterOptions;
2107
2375
  declare const index_WithReplayCacheOptions: typeof WithReplayCacheOptions;
2108
2376
  type index_WithRetryOptions = WithRetryOptions;
2109
2377
  declare const index_admissionFilter3D: typeof admissionFilter3D;
2378
+ declare const index_admissionScored: typeof admissionScored;
2110
2379
  declare const index_agentLoop: typeof agentLoop;
2111
2380
  declare const index_agentMemory: typeof agentMemory;
2112
2381
  declare const index_anthropicAdapter: typeof anthropicAdapter;
@@ -2128,11 +2397,16 @@ declare const index_gatedStream: typeof gatedStream;
2128
2397
  declare const index_gaugesAsContext: typeof gaugesAsContext;
2129
2398
  declare const index_googleAdapter: typeof googleAdapter;
2130
2399
  declare const index_graphFromSpec: typeof graphFromSpec;
2400
+ declare const index_graphFromSpecReactive: typeof graphFromSpecReactive;
2131
2401
  declare const index_handoff: typeof handoff;
2132
2402
  declare const index_keywordFlagExtractor: typeof keywordFlagExtractor;
2133
2403
  declare const index_knobsAsTools: typeof knobsAsTools;
2134
2404
  declare const index_llmConsolidator: typeof llmConsolidator;
2135
2405
  declare const index_llmExtractor: typeof llmExtractor;
2406
+ declare const index_memoryRetrieval: typeof memoryRetrieval;
2407
+ declare const index_memoryWithKG: typeof memoryWithKG;
2408
+ declare const index_memoryWithTiers: typeof memoryWithTiers;
2409
+ declare const index_memoryWithVectors: typeof memoryWithVectors;
2136
2410
  declare const index_observableAdapter: typeof observableAdapter;
2137
2411
  declare const index_openAICompatAdapter: typeof openAICompatAdapter;
2138
2412
  declare const index_parseRateLimitFromError: typeof parseRateLimitFromError;
@@ -2144,6 +2418,7 @@ declare const index_resilientAdapter: typeof resilientAdapter;
2144
2418
  declare const index_streamExtractor: typeof streamExtractor;
2145
2419
  declare const index_streamingPromptNode: typeof streamingPromptNode;
2146
2420
  declare const index_suggestStrategy: typeof suggestStrategy;
2421
+ declare const index_suggestStrategyReactive: typeof suggestStrategyReactive;
2147
2422
  declare const index_systemPromptBuilder: typeof systemPromptBuilder;
2148
2423
  declare const index_tier: typeof tier;
2149
2424
  declare const index_toolCallExtractor: typeof toolCallExtractor;
@@ -2159,7 +2434,7 @@ declare const index_withRetry: typeof withRetry;
2159
2434
  declare const index_withTimeout: typeof withTimeout;
2160
2435
  declare const index_zeroPrice: typeof zeroPrice;
2161
2436
  declare namespace index {
2162
- export { index_AdapterProvider as AdapterProvider, type index_AdapterStats as AdapterStats, index_AdapterTier as AdapterTier, type index_AdmissionScore3DOptions as AdmissionScore3DOptions, type index_AdmissionScores as AdmissionScores, index_AgentLoopGraph as AgentLoopGraph, type index_AgentLoopOptions as AgentLoopOptions, type index_AgentLoopStatus as AgentLoopStatus, type index_AgentMemoryGraph as AgentMemoryGraph, type index_AgentMemoryOptions as AgentMemoryOptions, index_AllTiersExhaustedError as AllTiersExhaustedError, type index_AnthropicAdapterOptions as AnthropicAdapterOptions, type index_AnthropicSdkLike as AnthropicSdkLike, type index_BudgetCaps as BudgetCaps, index_BudgetExhaustedError as BudgetExhaustedError, type index_BudgetGateBundle as BudgetGateBundle, type index_BudgetTotals as BudgetTotals, type index_CallStatsEvent as CallStatsEvent, index_CapabilitiesRegistry as CapabilitiesRegistry, index_CascadeExhaustionReport as CascadeExhaustionReport, index_CascadingLlmAdapterOptions as CascadingLlmAdapterOptions, index_ChatMessage as ChatMessage, index_ChatStreamGraph as ChatStreamGraph, type index_ChatStreamOptions as ChatStreamOptions, index_CircuitOpenError as CircuitOpenError, type index_ContentDecision as ContentDecision, type index_ContentGateOptions as ContentGateOptions, type index_CostMeterOptions as CostMeterOptions, type index_CostMeterReading as CostMeterReading, index_CreateAdapterOptions as CreateAdapterOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, type index_DryRunAdapterOptions as DryRunAdapterOptions, type index_ExtractedToolCall as ExtractedToolCall, index_FallbackAdapterOptions as FallbackAdapterOptions, index_FallbackFixture as FallbackFixture, index_FallbackMissError as FallbackMissError, index_FallbackMissPolicy as FallbackMissPolicy, type index_FromLLMOptions as FromLLMOptions, type index_FrozenContextOptions as FrozenContextOptions, type index_GatedStreamHandle as GatedStreamHandle, type index_GatedStreamOptions as GatedStreamOptions, type index_GaugesAsContextOptions as GaugesAsContextOptions, type index_GoogleAdapterOptions as GoogleAdapterOptions, type index_GoogleSdkLike as GoogleSdkLike, type index_GraphDefValidation as GraphDefValidation, type index_GraphFromSpecOptions as GraphFromSpecOptions, type index_HandoffOptions as HandoffOptions, type index_HttpErrorLike as HttpErrorLike, type index_KeywordFlag as KeywordFlag, type index_KeywordFlagExtractorOptions as KeywordFlagExtractorOptions, type index_KnobsAsToolsResult as KnobsAsToolsResult, index_LLMAdapter as LLMAdapter, type index_LLMConsolidatorOptions as LLMConsolidatorOptions, type index_LLMExtractorOptions as LLMExtractorOptions, index_LLMInvokeOptions as LLMInvokeOptions, index_LLMResponse as LLMResponse, index_LLMTimeoutError as LLMTimeoutError, type index_McpToolSchema as McpToolSchema, type index_MemoryTier as MemoryTier, type index_MemoryTiersBundle as MemoryTiersBundle, type index_MemoryTiersOptions as MemoryTiersOptions, index_ModelCapabilities as ModelCapabilities, index_ModelFeatures as ModelFeatures, index_ModelLimits as ModelLimits, index_ModelPricing as ModelPricing, index_OpenAICompatAdapterOptions as OpenAICompatAdapterOptions, index_OpenAICompatPreset as OpenAICompatPreset, index_OpenAISdkLike as OpenAISdkLike, type index_OpenAIToolSchema as OpenAIToolSchema, index_PriceBreakdown as PriceBreakdown, index_PricingFn as PricingFn, index_PricingRegistry as PricingRegistry, type index_PromptNodeOptions as PromptNodeOptions, index_Rate as Rate, type index_RedactorOptions as RedactorOptions, index_ReplayCacheKeyContext as ReplayCacheKeyContext, index_ReplayCacheMissError as ReplayCacheMissError, index_ReplayCacheMode as ReplayCacheMode, type index_ResilientAdapterBundle as ResilientAdapterBundle, type index_ResilientAdapterOptions as ResilientAdapterOptions, type index_RetrievalEntry as RetrievalEntry, type index_RetrievalPipelineOptions as RetrievalPipelineOptions, type index_RetrievalQuery as RetrievalQuery, type index_RetrievalTrace as RetrievalTrace, type index_StampedDelta as StampedDelta, type index_StrategyOperation as StrategyOperation, type index_StrategyPlan as StrategyPlan, index_StreamDelta as StreamDelta, type index_StreamingPromptNodeHandle as StreamingPromptNodeHandle, type index_StreamingPromptNodeOptions as StreamingPromptNodeOptions, type index_SuggestStrategyOptions as SuggestStrategyOptions, type index_SystemPromptHandle as SystemPromptHandle, index_TieredRate as TieredRate, index_TokenUsage as TokenUsage, index_ToolCall as ToolCall, index_ToolDefinition as ToolDefinition, index_ToolRegistryGraph as ToolRegistryGraph, type index_ToolRegistryOptions as ToolRegistryOptions, type index_ToolResult as ToolResult, type index_ToolSelectorOptions as ToolSelectorOptions, type index_WithBreakerOptions as WithBreakerOptions, type index_WithBudgetGateOptions as WithBudgetGateOptions, type index_WithDryRunBundle as WithDryRunBundle, type index_WithDryRunOptions as WithDryRunOptions, type index_WithRateLimiterOptions as WithRateLimiterOptions, index_WithReplayCacheOptions as WithReplayCacheOptions, type index_WithRetryOptions as WithRetryOptions, index_admissionFilter3D as admissionFilter3D, index_agentLoop as agentLoop, index_agentMemory as agentMemory, index_anthropicAdapter as anthropicAdapter, index_canonicalJson as canonicalJson, index_cascadingLlmAdapter as cascadingLlmAdapter, index_chatStream as chatStream, index_composePricing as composePricing, index_computePrice as computePrice, index_contentGate as contentGate, index_costMeterExtractor as costMeterExtractor, index_createAdapter as createAdapter, index_createCapabilitiesRegistry as createCapabilitiesRegistry, index_createPricingRegistry as createPricingRegistry, index_dryRunAdapter as dryRunAdapter, index_fallbackAdapter as fallbackAdapter, index_fromLLM as fromLLM, index_frozenContext as frozenContext, index_gatedStream as gatedStream, index_gaugesAsContext as gaugesAsContext, index_googleAdapter as googleAdapter, index_graphFromSpec as graphFromSpec, index_handoff as handoff, index_keywordFlagExtractor as keywordFlagExtractor, index_knobsAsTools as knobsAsTools, index_llmConsolidator as llmConsolidator, index_llmExtractor as llmExtractor, index_observableAdapter as observableAdapter, index_openAICompatAdapter as openAICompatAdapter, index_parseRateLimitFromError as parseRateLimitFromError, index_pricingFor as pricingFor, index_promptNode as promptNode, index_redactor as redactor, index_registryPricing as registryPricing, index_resilientAdapter as resilientAdapter, index_streamExtractor as streamExtractor, index_streamingPromptNode as streamingPromptNode, index_suggestStrategy as suggestStrategy, index_systemPromptBuilder as systemPromptBuilder, index_tier as tier, index_toolCallExtractor as toolCallExtractor, index_toolRegistry as toolRegistry, index_toolSelector as toolSelector, index_validateGraphDef as validateGraphDef, index_withBreaker as withBreaker, index_withBudgetGate as withBudgetGate, index_withDryRun as withDryRun, index_withRateLimiter as withRateLimiter, index_withReplayCache as withReplayCache, index_withRetry as withRetry, index_withTimeout as withTimeout, index_zeroPrice as zeroPrice };
2437
+ export { index_AdapterProvider as AdapterProvider, type index_AdapterStats as AdapterStats, index_AdapterTier as AdapterTier, type index_AdmissionScore3DOptions as AdmissionScore3DOptions, type index_AdmissionScoredOptions as AdmissionScoredOptions, type index_AdmissionScores as AdmissionScores, type index_AdmissionThresholds as AdmissionThresholds, index_AgentLoopGraph as AgentLoopGraph, type index_AgentLoopOptions as AgentLoopOptions, type index_AgentLoopStatus as AgentLoopStatus, type index_AgentMemoryGraph as AgentMemoryGraph, type index_AgentMemoryOptions as AgentMemoryOptions, index_AllTiersExhaustedError as AllTiersExhaustedError, type index_AnthropicAdapterOptions as AnthropicAdapterOptions, type index_AnthropicSdkLike as AnthropicSdkLike, type index_BudgetCaps as BudgetCaps, index_BudgetExhaustedError as BudgetExhaustedError, type index_BudgetGateBundle as BudgetGateBundle, type index_BudgetTotals as BudgetTotals, type index_CallStatsEvent as CallStatsEvent, index_CapabilitiesRegistry as CapabilitiesRegistry, index_CascadeExhaustionReport as CascadeExhaustionReport, index_CascadingLlmAdapterOptions as CascadingLlmAdapterOptions, index_ChatMessage as ChatMessage, index_ChatStreamGraph as ChatStreamGraph, type index_ChatStreamOptions as ChatStreamOptions, index_CircuitOpenError as CircuitOpenError, type index_ContentDecision as ContentDecision, type index_ContentGateOptions as ContentGateOptions, type index_CostMeterOptions as CostMeterOptions, type index_CostMeterReading as CostMeterReading, index_CreateAdapterOptions as CreateAdapterOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, type index_DryRunAdapterOptions as DryRunAdapterOptions, type index_ExtractedToolCall as ExtractedToolCall, index_FallbackAdapterOptions as FallbackAdapterOptions, index_FallbackFixture as FallbackFixture, index_FallbackMissError as FallbackMissError, index_FallbackMissPolicy as FallbackMissPolicy, type index_FromLLMOptions as FromLLMOptions, type index_FrozenContextOptions as FrozenContextOptions, type index_GatedStreamHandle as GatedStreamHandle, type index_GatedStreamOptions as GatedStreamOptions, type index_GaugesAsContextOptions as GaugesAsContextOptions, type index_GoogleAdapterOptions as GoogleAdapterOptions, type index_GoogleSdkLike as GoogleSdkLike, type index_GraphDefValidation as GraphDefValidation, type index_GraphFromSpecOptions as GraphFromSpecOptions, type index_HandoffOptions as HandoffOptions, type index_HttpErrorLike as HttpErrorLike, type index_KeywordFlag as KeywordFlag, type index_KeywordFlagExtractorOptions as KeywordFlagExtractorOptions, type index_KnobsAsToolsResult as KnobsAsToolsResult, index_LLMAdapter as LLMAdapter, type index_LLMConsolidatorOptions as LLMConsolidatorOptions, type index_LLMExtractorOptions as LLMExtractorOptions, index_LLMInvokeOptions as LLMInvokeOptions, index_LLMResponse as LLMResponse, index_LLMTimeoutError as LLMTimeoutError, type index_McpToolSchema as McpToolSchema, type index_MemoryRetrievalBundle as MemoryRetrievalBundle, type index_MemoryRetrievalOptions as MemoryRetrievalOptions, type index_MemoryTier as MemoryTier, type index_MemoryTiersBundle as MemoryTiersBundle, type index_MemoryTiersOptions as MemoryTiersOptions, type index_MemoryWithKGOptions as MemoryWithKGOptions, type index_MemoryWithTiersOptions as MemoryWithTiersOptions, type index_MemoryWithVectorsOptions as MemoryWithVectorsOptions, index_ModelCapabilities as ModelCapabilities, index_ModelFeatures as ModelFeatures, index_ModelLimits as ModelLimits, index_ModelPricing as ModelPricing, index_OpenAICompatAdapterOptions as OpenAICompatAdapterOptions, index_OpenAICompatPreset as OpenAICompatPreset, index_OpenAISdkLike as OpenAISdkLike, type index_OpenAIToolSchema as OpenAIToolSchema, index_PriceBreakdown as PriceBreakdown, index_PricingFn as PricingFn, index_PricingRegistry as PricingRegistry, type index_PromptNodeOptions as PromptNodeOptions, index_Rate as Rate, type index_RedactorOptions as RedactorOptions, index_ReplayCacheKeyContext as ReplayCacheKeyContext, index_ReplayCacheMissError as ReplayCacheMissError, index_ReplayCacheMode as ReplayCacheMode, type index_ResilientAdapterBundle as ResilientAdapterBundle, type index_ResilientAdapterOptions as ResilientAdapterOptions, type index_RetrievalEntry as RetrievalEntry, type index_RetrievalPipelineOptions as RetrievalPipelineOptions, type index_RetrievalQuery as RetrievalQuery, type index_RetrievalTrace as RetrievalTrace, type index_StampedDelta as StampedDelta, type index_StrategyOperation as StrategyOperation, type index_StrategyPlan as StrategyPlan, index_StreamDelta as StreamDelta, type index_StreamingPromptNodeHandle as StreamingPromptNodeHandle, type index_StreamingPromptNodeOptions as StreamingPromptNodeOptions, type index_SuggestStrategyOptions as SuggestStrategyOptions, type index_SystemPromptHandle as SystemPromptHandle, index_TieredRate as TieredRate, index_TokenUsage as TokenUsage, index_ToolCall as ToolCall, index_ToolDefinition as ToolDefinition, index_ToolRegistryGraph as ToolRegistryGraph, type index_ToolRegistryOptions as ToolRegistryOptions, type index_ToolResult as ToolResult, type index_ToolSelectorOptions as ToolSelectorOptions, type index_WithBreakerOptions as WithBreakerOptions, type index_WithBudgetGateOptions as WithBudgetGateOptions, type index_WithDryRunBundle as WithDryRunBundle, type index_WithDryRunOptions as WithDryRunOptions, type index_WithRateLimiterOptions as WithRateLimiterOptions, index_WithReplayCacheOptions as WithReplayCacheOptions, type index_WithRetryOptions as WithRetryOptions, index_admissionFilter3D as admissionFilter3D, index_admissionScored as admissionScored, index_agentLoop as agentLoop, index_agentMemory as agentMemory, index_anthropicAdapter as anthropicAdapter, index_canonicalJson as canonicalJson, index_cascadingLlmAdapter as cascadingLlmAdapter, index_chatStream as chatStream, index_composePricing as composePricing, index_computePrice as computePrice, index_contentGate as contentGate, index_costMeterExtractor as costMeterExtractor, index_createAdapter as createAdapter, index_createCapabilitiesRegistry as createCapabilitiesRegistry, index_createPricingRegistry as createPricingRegistry, index_dryRunAdapter as dryRunAdapter, index_fallbackAdapter as fallbackAdapter, index_fromLLM as fromLLM, index_frozenContext as frozenContext, index_gatedStream as gatedStream, index_gaugesAsContext as gaugesAsContext, index_googleAdapter as googleAdapter, index_graphFromSpec as graphFromSpec, index_graphFromSpecReactive as graphFromSpecReactive, index_handoff as handoff, index_keywordFlagExtractor as keywordFlagExtractor, index_knobsAsTools as knobsAsTools, index_llmConsolidator as llmConsolidator, index_llmExtractor as llmExtractor, index_memoryRetrieval as memoryRetrieval, index_memoryWithKG as memoryWithKG, index_memoryWithTiers as memoryWithTiers, index_memoryWithVectors as memoryWithVectors, index_observableAdapter as observableAdapter, index_openAICompatAdapter as openAICompatAdapter, index_parseRateLimitFromError as parseRateLimitFromError, index_pricingFor as pricingFor, index_promptNode as promptNode, index_redactor as redactor, index_registryPricing as registryPricing, index_resilientAdapter as resilientAdapter, index_streamExtractor as streamExtractor, index_streamingPromptNode as streamingPromptNode, index_suggestStrategy as suggestStrategy, index_suggestStrategyReactive as suggestStrategyReactive, index_systemPromptBuilder as systemPromptBuilder, index_tier as tier, index_toolCallExtractor as toolCallExtractor, index_toolRegistry as toolRegistry, index_toolSelector as toolSelector, index_validateGraphDef as validateGraphDef, index_withBreaker as withBreaker, index_withBudgetGate as withBudgetGate, index_withDryRun as withDryRun, index_withRateLimiter as withRateLimiter, index_withReplayCache as withReplayCache, index_withRetry as withRetry, index_withTimeout as withTimeout, index_zeroPrice as zeroPrice };
2163
2438
  }
2164
2439
 
2165
- export { type RetrievalQuery as $, type AdapterStats as A, type BudgetCaps as B, type CallStatsEvent as C, DEFAULT_DECAY_RATE as D, type ExtractedToolCall as E, type FromLLMOptions as F, type GatedStreamHandle as G, type GraphFromSpecOptions as H, type HandoffOptions as I, type HttpErrorLike as J, type KeywordFlag as K, type KeywordFlagExtractorOptions as L, type KnobsAsToolsResult as M, type LLMConsolidatorOptions as N, type LLMExtractorOptions as O, LLMTimeoutError as P, type McpToolSchema as Q, type MemoryTier as R, type MemoryTiersBundle as S, type MemoryTiersOptions as T, type OpenAIToolSchema as U, type PromptNodeOptions as V, type RedactorOptions as W, type ResilientAdapterBundle as X, type ResilientAdapterOptions as Y, type RetrievalEntry as Z, type RetrievalPipelineOptions as _, type AdmissionScore3DOptions as a, type RetrievalTrace as a0, type StampedDelta as a1, type StrategyOperation as a2, type StrategyPlan as a3, type StreamingPromptNodeHandle as a4, type StreamingPromptNodeOptions as a5, type SuggestStrategyOptions as a6, type SystemPromptHandle as a7, ToolRegistryGraph as a8, type ToolRegistryOptions as a9, llmExtractor as aA, observableAdapter as aB, parseRateLimitFromError as aC, promptNode as aD, redactor as aE, resilientAdapter as aF, streamExtractor as aG, streamingPromptNode as aH, suggestStrategy as aI, systemPromptBuilder as aJ, toolCallExtractor as aK, toolRegistry as aL, toolSelector as aM, validateGraphDef as aN, withBreaker as aO, withBudgetGate as aP, withDryRun as aQ, withRateLimiter as aR, withRetry as aS, withTimeout as aT, type ToolResult as aa, type ToolSelectorOptions as ab, type WithBreakerOptions as ac, type WithBudgetGateOptions as ad, type WithDryRunBundle as ae, type WithDryRunOptions as af, type WithRateLimiterOptions as ag, type WithRetryOptions as ah, admissionFilter3D as ai, agentLoop as aj, agentMemory as ak, anthropicAdapter as al, chatStream as am, contentGate as an, costMeterExtractor as ao, dryRunAdapter as ap, fromLLM as aq, frozenContext as ar, gatedStream as as, gaugesAsContext as at, googleAdapter as au, graphFromSpec as av, handoff as aw, keywordFlagExtractor as ax, knobsAsTools as ay, llmConsolidator as az, type AdmissionScores as b, AgentLoopGraph as c, type AgentLoopOptions as d, type AgentLoopStatus as e, type AgentMemoryGraph as f, type AgentMemoryOptions as g, type AnthropicAdapterOptions as h, index as i, type AnthropicSdkLike as j, BudgetExhaustedError as k, type BudgetGateBundle as l, type BudgetTotals as m, ChatStreamGraph as n, type ChatStreamOptions as o, type ContentDecision as p, type ContentGateOptions as q, type CostMeterOptions as r, type CostMeterReading as s, type DryRunAdapterOptions as t, type FrozenContextOptions as u, type GatedStreamOptions as v, type GaugesAsContextOptions as w, type GoogleAdapterOptions as x, type GoogleSdkLike as y, type GraphDefValidation as z };
2440
+ export { type OpenAIToolSchema as $, type AdapterStats as A, type BudgetCaps as B, type CallStatsEvent as C, DEFAULT_DECAY_RATE as D, type ExtractedToolCall as E, type FromLLMOptions as F, type GatedStreamHandle as G, type GoogleSdkLike as H, type GraphDefValidation as I, type GraphFromSpecOptions as J, type HandoffOptions as K, type HttpErrorLike as L, type KeywordFlag as M, type KeywordFlagExtractorOptions as N, type KnobsAsToolsResult as O, type LLMConsolidatorOptions as P, type LLMExtractorOptions as Q, LLMTimeoutError as R, type McpToolSchema as S, type MemoryRetrievalBundle as T, type MemoryRetrievalOptions as U, type MemoryTier as V, type MemoryTiersBundle as W, type MemoryTiersOptions as X, type MemoryWithKGOptions as Y, type MemoryWithTiersOptions as Z, type MemoryWithVectorsOptions as _, type AdmissionScore3DOptions as a, validateGraphDef as a$, type PromptNodeOptions as a0, type RedactorOptions as a1, type ResilientAdapterBundle as a2, type ResilientAdapterOptions as a3, type RetrievalEntry as a4, type RetrievalPipelineOptions as a5, type RetrievalQuery as a6, type RetrievalTrace as a7, type StampedDelta as a8, type StrategyOperation as a9, gatedStream as aA, gaugesAsContext as aB, googleAdapter as aC, graphFromSpec as aD, graphFromSpecReactive as aE, handoff as aF, keywordFlagExtractor as aG, knobsAsTools as aH, llmConsolidator as aI, llmExtractor as aJ, memoryRetrieval as aK, memoryWithKG as aL, memoryWithTiers as aM, memoryWithVectors as aN, observableAdapter as aO, parseRateLimitFromError as aP, promptNode as aQ, redactor as aR, resilientAdapter as aS, streamExtractor as aT, streamingPromptNode as aU, suggestStrategy as aV, suggestStrategyReactive as aW, systemPromptBuilder as aX, toolCallExtractor as aY, toolRegistry as aZ, toolSelector as a_, type StrategyPlan as aa, type StreamingPromptNodeHandle as ab, type StreamingPromptNodeOptions as ac, type SuggestStrategyOptions as ad, type SystemPromptHandle as ae, ToolRegistryGraph as af, type ToolRegistryOptions as ag, type ToolResult as ah, type ToolSelectorOptions as ai, type WithBreakerOptions as aj, type WithBudgetGateOptions as ak, type WithDryRunBundle as al, type WithDryRunOptions as am, type WithRateLimiterOptions as an, type WithRetryOptions as ao, admissionFilter3D as ap, admissionScored as aq, agentLoop as ar, agentMemory as as, anthropicAdapter as at, chatStream as au, contentGate as av, costMeterExtractor as aw, dryRunAdapter as ax, fromLLM as ay, frozenContext as az, type AdmissionScoredOptions as b, withBreaker as b0, withBudgetGate as b1, withDryRun as b2, withRateLimiter as b3, withRetry as b4, withTimeout as b5, type AdmissionScores as c, type AdmissionThresholds as d, AgentLoopGraph as e, type AgentLoopOptions as f, type AgentLoopStatus as g, type AgentMemoryGraph as h, index as i, type AgentMemoryOptions as j, type AnthropicAdapterOptions as k, type AnthropicSdkLike as l, BudgetExhaustedError as m, type BudgetGateBundle as n, type BudgetTotals as o, ChatStreamGraph as p, type ChatStreamOptions as q, type ContentDecision as r, type ContentGateOptions as s, type CostMeterOptions as t, type CostMeterReading as u, type DryRunAdapterOptions as v, type FrozenContextOptions as w, type GatedStreamOptions as x, type GaugesAsContextOptions as y, type GoogleAdapterOptions as z };
@@ -1,5 +1,5 @@
1
1
  import { a as Node, N as NodeOptions } from './node-BVV7G1bq.cjs';
2
- import { a as GraphOptions, G as Graph } from './graph-C4Uxwv0T.cjs';
2
+ import { a as GraphOptions, G as Graph } from './graph-CdJeX7O7.cjs';
3
3
 
4
4
  /**
5
5
  * Reduction primitives (roadmap §8.1).
@@ -1,7 +1,7 @@
1
1
  import { a as Node } from './node-BVV7G1bq.cjs';
2
2
  import { NodeInput } from './extra/sources.cjs';
3
- import { a as GraphOptions, G as Graph } from './graph-C4Uxwv0T.cjs';
4
- import { T as TopicGraph } from './index-B-z8WaSd.cjs';
3
+ import { a as GraphOptions, G as Graph } from './graph-CdJeX7O7.cjs';
4
+ import { T as TopicGraph } from './index-BDLy6CQ9.cjs';
5
5
 
6
6
  /**
7
7
  * refineLoop — universal prompt/artifact optimization loop as a reactive Graph.
@@ -97,6 +97,15 @@ interface RefineStrategy<T> {
97
97
  * reactive nodes; the evaluator's returned node IS the EVALUATE topic's source
98
98
  * (no glue). Implementers can batch-eval (e.g. `funnel` with concurrency) or
99
99
  * map per-candidate — user's code.
100
+ *
101
+ * **`EvalResult.candidateIndex` semantics.** Optional per-result field.
102
+ * When present, multi-candidate aggregators ({@link errorCritique}'s
103
+ * `pickBest`) score per index, picking the candidate with the highest
104
+ * mean score. When absent across all results, those aggregators fall back
105
+ * to positional matching against `candidates[0]` — meaning a strategy that
106
+ * generates >1 candidate but emits unindexed scores effectively only ever
107
+ * critiques the first candidate. Set `candidateIndex` whenever the
108
+ * evaluator's score corresponds to a specific candidate in the batch.
100
109
  */
101
110
  type Evaluator<T> = (candidates: Node<readonly T[]>, dataset: Node<readonly DatasetItem[]>) => Node<readonly EvalResult[]>;
102
111
  /**
@@ -1,6 +1,6 @@
1
- import { M as MeasurementAdapter, P as PreparedSegment, L as LineBreaksResult, C as CharPosition, a as LayoutCursor, I as Interval, b as LayoutLine, c as LayoutNextLineContext, d as LayoutNextLineResult, R as ReactiveLayoutBundle, e as ReactiveLayoutOptions, S as SegmentBreakKind, f as SegmentMeasureStats, g as analyzeAndMeasure, h as carveTextLineSlots, i as computeCharPositions, j as computeLineBreaks, l as layoutNextLine, r as reactiveLayout } from './reactive-layout-5oEn8lHM.cjs';
1
+ import { M as MeasurementAdapter, P as PreparedSegment, L as LineBreaksResult, C as CharPosition, a as LayoutCursor, I as Interval, b as LayoutLine, c as LayoutNextLineContext, d as LayoutNextLineResult, R as ReactiveLayoutBundle, e as ReactiveLayoutOptions, S as SegmentBreakKind, f as SegmentMeasureStats, g as analyzeAndMeasure, h as carveTextLineSlots, i as computeCharPositions, j as computeLineBreaks, l as layoutNextLine, r as reactiveLayout } from './reactive-layout-Dhhe54Oj.cjs';
2
2
  import { a as Node } from './node-BVV7G1bq.cjs';
3
- import { G as Graph } from './graph-C4Uxwv0T.cjs';
3
+ import { G as Graph } from './graph-CdJeX7O7.cjs';
4
4
 
5
5
  /**
6
6
  * MeasurementAdapter implementations (roadmap §7.1 — pluggable backends).
@@ -1,9 +1,9 @@
1
1
  import { a as Node } from './node-BVV7G1bq.cjs';
2
- import { T as TopicGraph } from './index-B-z8WaSd.cjs';
3
- import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineStatus, c as RefineLoopOptions } from './index-DylQCKEL.cjs';
4
- import { G as Graph, s as GraphProfileResult, r as GraphProfileOptions } from './graph-C4Uxwv0T.cjs';
2
+ import { T as TopicGraph } from './index-BDLy6CQ9.cjs';
3
+ import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineStatus, c as RefineLoopOptions } from './index-BzxU4yhV.cjs';
4
+ import { G as Graph, s as GraphProfileResult, r as GraphProfileOptions } from './graph-CdJeX7O7.cjs';
5
5
  import { L as LLMAdapter } from './types-BgMqbc7N.cjs';
6
- import { G as GateController } from './index-DVNLe3pS.cjs';
6
+ import { G as GateController } from './index-CCdg0JLX.cjs';
7
7
 
8
8
  /**
9
9
  * Harness wiring types (roadmap §9.0).
@@ -1,9 +1,9 @@
1
1
  import { T as ToObservableOptions, t as toObservable } from './observable-BrUAPeH_.cjs';
2
2
  import { OnModuleInit, OnModuleDestroy, ExecutionContext, CanActivate, DynamicModule } from '@nestjs/common';
3
3
  import { ModuleRef } from '@nestjs/core';
4
- import { G as Graph, d as GraphPersistSnapshot } from './graph-C4Uxwv0T.cjs';
4
+ import { G as Graph, d as GraphPersistSnapshot } from './graph-CdJeX7O7.cjs';
5
5
  import { A as Actor } from './node-BVV7G1bq.cjs';
6
- import { C as CqrsOptions, a as CqrsGraph, E as EventStoreAdapter } from './index-SSGqF8mI.cjs';
6
+ import { C as CqrsOptions, a as CqrsGraph, E as EventStoreAdapter } from './index-aBqZUx3B.cjs';
7
7
 
8
8
  /** Class constructor key for decorator registries and Nest `ModuleRef.get()`. */
9
9
  type DecoratorHostConstructor = abstract new (...args: unknown[]) => unknown;
@@ -9,7 +9,7 @@ import { MergeMapOptions, TapObserver, ThrottleOptions, audit, buffer, bufferCou
9
9
  import { IndexBackend, IndexRow, ListBackend, NativeIndexBackend, NativeListBackend, ReactiveIndexBundle, ReactiveIndexOptions, ReactiveListBundle, ReactiveListOptions, UpsertOptions, reactiveIndex, reactiveList } from './extra/reactive.js';
10
10
  import { L as LogBackend, N as NativeLogBackend, R as ReactiveLogBundle, a as ReactiveLogOptions, r as reactiveLog } from './reactive-log-BOJDCI5x.js';
11
11
  import { M as MapBackend, N as NativeMapBackend, b as NativeMapBackendOptions, R as ReactiveMapBundle, a as ReactiveMapOptions, c as ReactiveMapRetention, r as reactiveMap } from './reactive-map-CtRaCddO.js';
12
- import { a as GraphOptions, G as Graph } from './graph-CWeI0aHd.js';
12
+ import { a as GraphOptions, G as Graph } from './graph-BOhEGJ6E.js';
13
13
 
14
14
  /**
15
15
  * External-register helpers — the common `register({emit, error, complete})`
@@ -1,6 +1,6 @@
1
- import { M as MeasurementAdapter, P as PreparedSegment, L as LineBreaksResult, C as CharPosition, a as LayoutCursor, I as Interval, b as LayoutLine, c as LayoutNextLineContext, d as LayoutNextLineResult, R as ReactiveLayoutBundle, e as ReactiveLayoutOptions, S as SegmentBreakKind, f as SegmentMeasureStats, g as analyzeAndMeasure, h as carveTextLineSlots, i as computeCharPositions, j as computeLineBreaks, l as layoutNextLine, r as reactiveLayout } from './reactive-layout-BAr6-_o5.js';
1
+ import { M as MeasurementAdapter, P as PreparedSegment, L as LineBreaksResult, C as CharPosition, a as LayoutCursor, I as Interval, b as LayoutLine, c as LayoutNextLineContext, d as LayoutNextLineResult, R as ReactiveLayoutBundle, e as ReactiveLayoutOptions, S as SegmentBreakKind, f as SegmentMeasureStats, g as analyzeAndMeasure, h as carveTextLineSlots, i as computeCharPositions, j as computeLineBreaks, l as layoutNextLine, r as reactiveLayout } from './reactive-layout-Bq0rA2Wb.js';
2
2
  import { a as Node } from './node-BVV7G1bq.js';
3
- import { G as Graph } from './graph-CWeI0aHd.js';
3
+ import { G as Graph } from './graph-BOhEGJ6E.js';
4
4
 
5
5
  /**
6
6
  * MeasurementAdapter implementations (roadmap §7.1 — pluggable backends).
@@ -1,6 +1,6 @@
1
1
  import { a as Node, N as NodeOptions, c as NodeActions } from './node-BVV7G1bq.cjs';
2
2
  import { D as DerivedFn } from './sugar-CqR6DJ7v.cjs';
3
- import { G as Graph, a as GraphOptions } from './graph-C4Uxwv0T.cjs';
3
+ import { G as Graph, a as GraphOptions } from './graph-CdJeX7O7.cjs';
4
4
 
5
5
  /**
6
6
  * Orchestration patterns (roadmap §4.1).
@@ -1,5 +1,5 @@
1
- import { G as Graph } from './graph-CWeI0aHd.js';
2
- import { M as MeasurementAdapter } from './reactive-layout-BAr6-_o5.js';
1
+ import { G as Graph } from './graph-BOhEGJ6E.js';
2
+ import { M as MeasurementAdapter } from './reactive-layout-Bq0rA2Wb.js';
3
3
 
4
4
  /**
5
5
  * Three-pane demo shell (roadmap §7.2).