@graphrefly/graphrefly 0.37.0 → 0.38.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.
- package/dist/{chunk-CZIQ6JCE.js → chunk-2YFDSYEF.js} +1 -1
- package/dist/{chunk-YVYSO5CW.js → chunk-4BDQXBXE.js} +1 -1
- package/dist/chunk-5BGFS2XH.js +1 -0
- package/dist/chunk-6773HURD.js +1 -0
- package/dist/{chunk-U3COB5WU.js → chunk-6KZZ6XQE.js} +1 -1
- package/dist/{chunk-5CPPC75H.js → chunk-6VFC334U.js} +1 -1
- package/dist/{chunk-KUVDFOJH.js → chunk-7KZZLWZ6.js} +1 -1
- package/dist/{chunk-Q7EUZ6NN.js → chunk-B5S7KTGP.js} +1 -1
- package/dist/chunk-CMTN3KPT.js +80 -0
- package/dist/chunk-DQJLC6YY.js +1 -0
- package/dist/chunk-DSOVKKTI.js +1 -0
- package/dist/chunk-FAYEMS5M.js +1 -0
- package/dist/chunk-FWGIZP3W.js +1 -0
- package/dist/{chunk-FMI4CWFL.js → chunk-G7JN6LCB.js} +1 -1
- package/dist/{chunk-PCD2MU7X.js → chunk-IBGE62GZ.js} +1 -1
- package/dist/{chunk-MYFR67PY.js → chunk-K5C67OGE.js} +1 -1
- package/dist/chunk-KJEAIIIY.js +43 -0
- package/dist/chunk-LV3ACS5J.js +1 -0
- package/dist/{chunk-LOQRPP4Y.js → chunk-NBGPXQSP.js} +1 -1
- package/dist/chunk-NN3QPJ6U.js +1 -0
- package/dist/{chunk-QWVQIL3T.js → chunk-NSAZ6PR6.js} +1 -1
- package/dist/{chunk-MC5LZG3U.js → chunk-NV63VQHI.js} +1 -1
- package/dist/{chunk-2C4NESZE.js → chunk-O245YLM5.js} +1 -1
- package/dist/{chunk-TLS7M7H4.js → chunk-O2BLVQU4.js} +1 -1
- package/dist/chunk-PHXZRR6C.js +1 -0
- package/dist/{chunk-K6ZFJ473.js → chunk-POCWFIJ7.js} +1 -1
- package/dist/{chunk-C5CBVOCB.js → chunk-QEVSIVSF.js} +1 -1
- package/dist/chunk-QMC2PLNM.js +7 -0
- package/dist/chunk-QOJFR6GS.js +1 -0
- package/dist/{chunk-MQZWA3DF.js → chunk-RZ5HKPGI.js} +1 -1
- package/dist/{chunk-WSLN4JFO.js → chunk-SFK7MN7S.js} +1 -1
- package/dist/{chunk-QP5TH523.js → chunk-SP5O2MIX.js} +1 -1
- package/dist/chunk-TB7JKSVS.js +61 -0
- package/dist/{chunk-T4U24DXX.js → chunk-TMVY7OWG.js} +1 -1
- package/dist/{chunk-UODQF4EY.js → chunk-UAXFKMAG.js} +1 -1
- package/dist/{chunk-TFK4P4CX.js → chunk-UVLZX2OU.js} +1 -1
- package/dist/chunk-XIMFHEKV.js +1 -0
- package/dist/{chunk-XIJKEXWR.js → chunk-XLMYQB6F.js} +1 -1
- package/dist/{chunk-4EATTNAE.js → chunk-XLYF4LBH.js} +1 -1
- package/dist/compat/index.cjs +9 -9
- package/dist/compat/index.d.cts +7 -7
- package/dist/compat/index.d.ts +7 -7
- package/dist/compat/index.js +1 -1
- package/dist/compat/nestjs/index.cjs +11 -11
- package/dist/compat/nestjs/index.d.cts +5 -5
- package/dist/compat/nestjs/index.d.ts +5 -5
- package/dist/compat/nestjs/index.js +1 -1
- package/dist/compat/zustand/index.cjs +7 -7
- package/dist/compat/zustand/index.d.cts +3 -3
- package/dist/compat/zustand/index.d.ts +3 -3
- package/dist/compat/zustand/index.js +1 -1
- package/dist/{composite-_XckYx2e.d.cts → composite-CgG0MqHm.d.cts} +8 -1
- package/dist/{composite-CT_mApQD.d.ts → composite-DTOlDuch.d.ts} +8 -1
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +1 -1
- package/dist/extra/index.cjs +19 -19
- package/dist/extra/index.d.cts +5 -5
- package/dist/extra/index.d.ts +5 -5
- package/dist/extra/index.js +1 -1
- package/dist/extra/node.cjs +2 -2
- package/dist/extra/node.d.cts +107 -1
- package/dist/extra/node.d.ts +107 -1
- package/dist/extra/node.js +2 -2
- package/dist/extra/operators.cjs +1 -1
- package/dist/extra/operators.js +1 -1
- package/dist/extra/reactive.d.cts +1 -1
- package/dist/extra/reactive.d.ts +1 -1
- package/dist/extra/reactive.js +1 -1
- package/dist/extra/sources.cjs +1 -1
- package/dist/extra/sources.js +1 -1
- package/dist/extra/storage-tiers-browser.d.cts +76 -5
- package/dist/extra/storage-tiers-browser.d.ts +76 -5
- package/dist/extra/storage-tiers-node.d.cts +137 -13
- package/dist/extra/storage-tiers-node.d.ts +137 -13
- package/dist/extra/storage-tiers.d.cts +151 -23
- package/dist/extra/storage-tiers.d.ts +151 -23
- package/dist/graph/index.cjs +7 -7
- package/dist/graph/index.d.cts +4 -4
- package/dist/graph/index.d.ts +4 -4
- package/dist/graph/index.js +1 -1
- package/dist/{graph-YQXDndFy.d.ts → graph-BjW1taJl.d.ts} +217 -10
- package/dist/{graph-CaNXUc3c.d.cts → graph-CHsVwf9S.d.cts} +217 -10
- package/dist/{index-CUTHDZ7Q.d.ts → index-5dNRlW7J.d.ts} +3 -3
- package/dist/{index-Bpzw8hx3.d.ts → index-AUqWe_fX.d.ts} +7 -4
- package/dist/{index-fHKHdAso.d.ts → index-B-ORMr3k.d.ts} +2 -2
- package/dist/{index-DcWbx58m.d.cts → index-B2IUcH13.d.cts} +2 -2
- package/dist/{index-DuhOdNyg.d.ts → index-BFaALJxR.d.ts} +2 -2
- package/dist/{index-DPqR3wdW.d.ts → index-BI1wMfyc.d.ts} +2 -2
- package/dist/{index-D0ZxFXYl.d.ts → index-BUFCHvOR.d.ts} +2 -2
- package/dist/{index-CLPQyYY5.d.cts → index-BWUMIt7J.d.cts} +3 -3
- package/dist/{index-CkN8CZlT.d.cts → index-BaSy4L6w.d.cts} +37 -17
- package/dist/{index-B1IcU--K.d.cts → index-BgzPO43H.d.cts} +2 -2
- package/dist/{index-D6tRNEKz.d.cts → index-BhzwpIJc.d.cts} +1 -1
- package/dist/{index-4IwO4mH2.d.cts → index-BkQqf1EF.d.cts} +80 -7
- package/dist/{index-CajEOoAN.d.ts → index-BmWuVdER.d.ts} +2 -2
- package/dist/{index-0qOD-421.d.ts → index-Bn0uZEL4.d.ts} +2 -2
- package/dist/{index-DAKm44My.d.cts → index-BpMZzX9P.d.cts} +2 -2
- package/dist/{index-CrpjECS6.d.cts → index-Bpr0Pwgl.d.cts} +2 -2
- package/dist/{index-BECJ8M0T.d.cts → index-BqcgiSQg.d.cts} +2 -2
- package/dist/{index-DfAo9WKr.d.ts → index-BsZk9T8y.d.ts} +1 -1
- package/dist/{index-CU3z8Cel.d.cts → index-BsgxnHN8.d.cts} +2 -2
- package/dist/index-Bub6x_D4.d.cts +427 -0
- package/dist/{index-C-pFD_FV.d.ts → index-BwOsJfLJ.d.ts} +2 -2
- package/dist/{index-CRycrNfn.d.ts → index-Byp771zP.d.ts} +1 -1
- package/dist/{index-e1m3ZHgc.d.cts → index-C-3UXnHT.d.cts} +1 -1
- package/dist/{index-DTYIRT_v.d.cts → index-C56XZiDe.d.cts} +2 -2
- package/dist/{index-D11pGlaI.d.cts → index-CAV-3RpJ.d.cts} +2 -2
- package/dist/{index-D_DThl_J.d.cts → index-CAbHN_rP.d.cts} +1 -1
- package/dist/{index-BhLA9feT.d.ts → index-CEVzBWeB.d.ts} +2 -2
- package/dist/{index-Ci358GSC.d.cts → index-CM-i58FY.d.cts} +2 -2
- package/dist/{index-B9qJmmv3.d.cts → index-CQsqqEVz.d.cts} +1 -1
- package/dist/{index-C0tga1_x.d.ts → index-CijfwEWx.d.ts} +2 -2
- package/dist/{index-BwtIbzSV.d.cts → index-Ckil6miL.d.cts} +2 -2
- package/dist/{index-BokynmA4.d.cts → index-CpdnP-0y.d.cts} +1 -1
- package/dist/{index-BmLkcDlj.d.ts → index-CrlHFsiT.d.ts} +37 -17
- package/dist/{index-DCAuN9u5.d.cts → index-Czk3r0yA.d.cts} +37 -3
- package/dist/{index-C4N-dg5U.d.cts → index-D-B7U42V.d.cts} +2 -2
- package/dist/{index-CKcnuQ2c.d.ts → index-D-HZ7sP4.d.ts} +2 -2
- package/dist/{index-D6pwWiOc.d.cts → index-D7-RSD93.d.cts} +2 -2
- package/dist/{index-9mbs_PIG.d.ts → index-D9vBTuzo.d.ts} +2 -2
- package/dist/{index-C_qi0WlF.d.cts → index-DJNAWzcH.d.cts} +2 -2
- package/dist/{index-Ae6L8liv.d.ts → index-DJVQ-t07.d.ts} +2 -2
- package/dist/{index-D_d1erkR.d.ts → index-DKrIuF-r.d.ts} +2 -2
- package/dist/{index-DXz9uwcs.d.ts → index-DOU1Ee_k.d.ts} +1 -1
- package/dist/{index-D1E1tqHT.d.ts → index-DTDVDzhA.d.ts} +37 -3
- package/dist/{index-B5UR87KG.d.ts → index-DY2f2b9z.d.ts} +4 -2
- package/dist/{index-D8IyqHvT.d.cts → index-DeSsvHDD.d.cts} +4 -2
- package/dist/index-Di7OdwlO.d.ts +427 -0
- package/dist/{index-CzIWlnPp.d.ts → index-DqICM_I7.d.ts} +80 -7
- package/dist/{index-BOfHwQc1.d.ts → index-ML6vHKXK.d.ts} +1 -1
- package/dist/{index-DqtXA3yX.d.cts → index-UsU9ptzs.d.cts} +7 -4
- package/dist/{index-B46GWgk3.d.ts → index-Vz7KPfgz.d.ts} +1 -1
- package/dist/index.cjs +50 -50
- package/dist/index.d.cts +32 -32
- package/dist/index.d.ts +32 -32
- package/dist/index.js +1 -1
- package/dist/meta-BYqlATmg.d.ts +98 -0
- package/dist/meta-DreaEM_a.d.cts +98 -0
- package/dist/patterns/ai/browser.cjs +2 -2
- package/dist/patterns/ai/browser.js +1 -1
- package/dist/patterns/ai/index.cjs +21 -21
- package/dist/patterns/ai/index.d.cts +9 -9
- package/dist/patterns/ai/index.d.ts +9 -9
- package/dist/patterns/ai/index.js +1 -1
- package/dist/patterns/ai/node.js +1 -1
- package/dist/patterns/audit/index.cjs +7 -7
- package/dist/patterns/audit/index.d.cts +5 -5
- package/dist/patterns/audit/index.d.ts +5 -5
- package/dist/patterns/audit/index.js +1 -1
- package/dist/patterns/cqrs/index.cjs +7 -7
- package/dist/patterns/cqrs/index.d.cts +4 -4
- package/dist/patterns/cqrs/index.d.ts +4 -4
- package/dist/patterns/cqrs/index.js +1 -1
- package/dist/patterns/demo-shell/index.cjs +8 -8
- package/dist/patterns/demo-shell/index.d.cts +4 -4
- package/dist/patterns/demo-shell/index.d.ts +4 -4
- package/dist/patterns/demo-shell/index.js +1 -1
- package/dist/patterns/domain-templates/index.cjs +7 -7
- package/dist/patterns/domain-templates/index.d.cts +3 -3
- package/dist/patterns/domain-templates/index.d.ts +3 -3
- package/dist/patterns/domain-templates/index.js +1 -1
- package/dist/patterns/graphspec/index.cjs +21 -21
- package/dist/patterns/graphspec/index.d.cts +3 -3
- package/dist/patterns/graphspec/index.d.ts +3 -3
- package/dist/patterns/graphspec/index.js +1 -1
- package/dist/patterns/guarded-execution/index.cjs +7 -7
- package/dist/patterns/guarded-execution/index.d.cts +6 -6
- package/dist/patterns/guarded-execution/index.d.ts +6 -6
- package/dist/patterns/guarded-execution/index.js +1 -1
- package/dist/patterns/harness/index.cjs +12 -12
- package/dist/patterns/harness/index.d.cts +8 -8
- package/dist/patterns/harness/index.d.ts +8 -8
- package/dist/patterns/harness/index.js +1 -1
- package/dist/patterns/job-queue/index.cjs +7 -7
- package/dist/patterns/job-queue/index.d.cts +4 -4
- package/dist/patterns/job-queue/index.d.ts +4 -4
- package/dist/patterns/job-queue/index.js +1 -1
- package/dist/patterns/lens/index.cjs +7 -7
- package/dist/patterns/lens/index.d.cts +4 -4
- package/dist/patterns/lens/index.d.ts +4 -4
- package/dist/patterns/lens/index.js +1 -1
- package/dist/patterns/memory/index.cjs +7 -7
- package/dist/patterns/memory/index.d.cts +6 -4
- package/dist/patterns/memory/index.d.ts +6 -4
- package/dist/patterns/memory/index.js +1 -1
- package/dist/patterns/messaging/index.cjs +7 -7
- package/dist/patterns/messaging/index.d.cts +4 -4
- package/dist/patterns/messaging/index.d.ts +4 -4
- package/dist/patterns/messaging/index.js +1 -1
- package/dist/patterns/orchestration/index.cjs +7 -7
- package/dist/patterns/orchestration/index.d.cts +4 -4
- package/dist/patterns/orchestration/index.d.ts +4 -4
- package/dist/patterns/orchestration/index.js +1 -1
- package/dist/patterns/process/index.d.cts +5 -5
- package/dist/patterns/process/index.d.ts +5 -5
- package/dist/patterns/process/index.js +1 -1
- package/dist/patterns/reactive-layout/index.cjs +8 -8
- package/dist/patterns/reactive-layout/index.d.cts +4 -4
- package/dist/patterns/reactive-layout/index.d.ts +4 -4
- package/dist/patterns/reactive-layout/index.js +1 -1
- package/dist/patterns/reduction/index.cjs +7 -7
- package/dist/patterns/reduction/index.d.cts +3 -3
- package/dist/patterns/reduction/index.d.ts +3 -3
- package/dist/patterns/reduction/index.js +1 -1
- package/dist/patterns/refine-loop/index.cjs +8 -8
- package/dist/patterns/refine-loop/index.d.cts +5 -5
- package/dist/patterns/refine-loop/index.d.ts +5 -5
- package/dist/patterns/refine-loop/index.js +1 -1
- package/dist/patterns/resilient-pipeline/index.cjs +1 -1
- package/dist/patterns/resilient-pipeline/index.d.cts +4 -4
- package/dist/patterns/resilient-pipeline/index.d.ts +4 -4
- package/dist/patterns/resilient-pipeline/index.js +1 -1
- package/dist/patterns/surface/index.cjs +14 -14
- package/dist/patterns/surface/index.d.cts +4 -4
- package/dist/patterns/surface/index.d.ts +4 -4
- package/dist/patterns/surface/index.js +1 -1
- package/dist/{pipeline-graph-DX2Twdj-.d.ts → pipeline-graph-9JBbmRxA.d.ts} +2 -2
- package/dist/{pipeline-graph-BrrYGjuZ.d.cts → pipeline-graph-DuHpXSOn.d.cts} +2 -2
- package/dist/{reactive-layout-DrGjuwyC.d.cts → reactive-layout-BMLDB4Vd.d.cts} +1 -1
- package/dist/{reactive-layout-BDdngW56.d.ts → reactive-layout-D-tRiNhg.d.ts} +1 -1
- package/dist/{reactive-log-jirQsxMY.d.ts → reactive-log-BgWSA1fg.d.ts} +28 -1
- package/dist/{reactive-log-ScpWyqny.d.cts → reactive-log-C3IMAGpT.d.cts} +28 -1
- package/dist/resilience-LGBK236C.js +1 -0
- package/dist/{topology-tree-BI665P0L.d.ts → topology-tree-D47-nI6Z.d.ts} +1 -1
- package/dist/{topology-tree-BkhmMg2a.d.cts → topology-tree-jrZue3ao.d.cts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-533RQFF6.js +0 -1
- package/dist/chunk-6SVKZ7VI.js +0 -1
- package/dist/chunk-A5HZZYRK.js +0 -1
- package/dist/chunk-B4L5X2QO.js +0 -7
- package/dist/chunk-FJ6IEMOS.js +0 -1
- package/dist/chunk-G6Q3DUMJ.js +0 -1
- package/dist/chunk-GDDPCDLG.js +0 -1
- package/dist/chunk-GFOT6UBB.js +0 -1
- package/dist/chunk-JJTF75VS.js +0 -1
- package/dist/chunk-K2WYIVHM.js +0 -1
- package/dist/chunk-KTWBUJO5.js +0 -61
- package/dist/chunk-M27MVZCP.js +0 -1
- package/dist/chunk-NKKUUKPD.js +0 -43
- package/dist/chunk-QKBCTKH7.js +0 -1
- package/dist/chunk-WGST56ZH.js +0 -80
- package/dist/index-BCq12BqB.d.ts +0 -139
- package/dist/index-DbWwMWiB.d.cts +0 -139
- package/dist/meta-BGO6C7K9.d.cts +0 -41
- package/dist/meta-CC6EPdpK.d.ts +0 -41
- package/dist/resilience-OBU472D2.js +0 -1
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
import { a as Node } from './node-fSc-hCv8.js';
|
|
2
|
+
import { R as ReactiveLogBundle } from './reactive-log-BgWSA1fg.js';
|
|
3
|
+
import { G as Graph } from './graph-BjW1taJl.js';
|
|
4
|
+
import { B as BaseAuditRecord } from './imperative-audit-ahAE65a9.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Memory patterns (roadmap §4.3) — public-face Phase-4 primitives audited under
|
|
8
|
+
* `archive/docs/SESSION-public-face-blocks-review.md` (Wave A, locked 2026-04-25).
|
|
9
|
+
*
|
|
10
|
+
* Five primitives:
|
|
11
|
+
* - {@link decay} — pure exponential-decay utility.
|
|
12
|
+
* - {@link lightCollection} — Map + LRU eviction + audit log; non-Graph bundle.
|
|
13
|
+
* - {@link collection} / {@link CollectionGraph} — scored memory store with live
|
|
14
|
+
* decay-ranking via reactive timer dep.
|
|
15
|
+
* - {@link vectorIndex} / {@link VectorIndexGraph} — reactive vector store with
|
|
16
|
+
* optional HNSW backend, retention, and reactive {@link VectorIndexGraph.searchNode}.
|
|
17
|
+
* - {@link knowledgeGraph} / {@link KnowledgeGraph} — entities + typed edges with
|
|
18
|
+
* symmetric adjacency indexes and reactive {@link KnowledgeGraph.relatedNode}.
|
|
19
|
+
*
|
|
20
|
+
* **No imperative reads.** Per the API-style policy locked 2026-04-25, public-face
|
|
21
|
+
* primitives expose reactive reads only — `itemNode` / `hasNode` / `searchNode` /
|
|
22
|
+
* `relatedNode`. One-shot snapshots use `node.cache` after `awaitSettled`, or
|
|
23
|
+
* `firstValueFrom(node)`.
|
|
24
|
+
*
|
|
25
|
+
* **Audit logs.** Every imperative mutation (`upsert / remove / clear / link /
|
|
26
|
+
* unlink / rescore / reindex`) is wrapped via {@link lightMutation} and appends a
|
|
27
|
+
* typed record to a public `events` log on the bundle / graph.
|
|
28
|
+
*
|
|
29
|
+
* @module
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Exponential decay with floor: `score = max(minScore, baseScore * exp(-ratePerSecond * ageSeconds))`.
|
|
34
|
+
*
|
|
35
|
+
* Tolerant fallbacks (deliberate for use inside reactive derived fns):
|
|
36
|
+
* - non-finite `baseScore` → `minScore`
|
|
37
|
+
* - non-positive `ageSeconds` (incl. clock skew) → `max(minScore, baseScore)` (no decay)
|
|
38
|
+
* - non-positive `ratePerSecond` → `max(minScore, baseScore)` (no decay; rate=0 disables)
|
|
39
|
+
*
|
|
40
|
+
* Underflow boundary: `Math.exp(-745) === 0`. For very long ages × rates the
|
|
41
|
+
* result clamps to `minScore`; if you need slow decay over years, choose a
|
|
42
|
+
* smaller `ratePerSecond` rather than relying on graceful underflow.
|
|
43
|
+
*
|
|
44
|
+
* Half-life conversion: `ratePerSecond = Math.LN2 / halfLifeSeconds`.
|
|
45
|
+
*
|
|
46
|
+
* @category memory
|
|
47
|
+
*/
|
|
48
|
+
declare function decay(baseScore: number, ageSeconds: number, ratePerSecond: number, minScore?: number): number;
|
|
49
|
+
/**
|
|
50
|
+
* Cosine similarity over `(a, b)`. When lengths differ, the shorter is
|
|
51
|
+
* implicitly zero-padded to the longer length. Returns `0` if either vector
|
|
52
|
+
* has zero norm. Public utility — used by {@link VectorIndexGraph.searchNode}
|
|
53
|
+
* and exposed for downstream consumers (e.g. `patterns/ai/memory/`) that need
|
|
54
|
+
* the same scoring at the boundary.
|
|
55
|
+
*
|
|
56
|
+
* **Numeric guards.** Returns `0` for non-finite results (overflow producing
|
|
57
|
+
* `Infinity`/`NaN` from very-large vectors, or `NaN` propagating from any
|
|
58
|
+
* `NaN`/`Infinity` component). Without this guard, downstream sort
|
|
59
|
+
* comparators would order NaN-scored rows arbitrarily.
|
|
60
|
+
*
|
|
61
|
+
* **Depth.** This is a per-call computation; no internal caching. For very
|
|
62
|
+
* large indexes (>10k) consider precomputing norms or using HNSW.
|
|
63
|
+
*
|
|
64
|
+
* @category memory
|
|
65
|
+
*/
|
|
66
|
+
declare function cosineSimilarity(a: readonly number[], b: readonly number[]): number;
|
|
67
|
+
/** Public alias for the `Node | value` shape accepted by reactive read factories. */
|
|
68
|
+
type NodeOrValue<T> = T | Node<T>;
|
|
69
|
+
type LightCollectionEntry<T> = {
|
|
70
|
+
readonly id: string;
|
|
71
|
+
readonly value: T;
|
|
72
|
+
readonly createdAtNs: number;
|
|
73
|
+
readonly lastAccessNs: number;
|
|
74
|
+
};
|
|
75
|
+
type LightCollectionOptions = {
|
|
76
|
+
name?: string;
|
|
77
|
+
maxSize?: number;
|
|
78
|
+
};
|
|
79
|
+
interface LightCollectionAuditRecord extends BaseAuditRecord {
|
|
80
|
+
readonly action: "upsert" | "remove" | "clear";
|
|
81
|
+
readonly id?: string;
|
|
82
|
+
}
|
|
83
|
+
type LightCollectionBundle<T> = {
|
|
84
|
+
readonly entries: Node<ReadonlyMap<string, LightCollectionEntry<T>>>;
|
|
85
|
+
readonly events: ReactiveLogBundle<LightCollectionAuditRecord>;
|
|
86
|
+
upsert: (id: string, value: T) => void;
|
|
87
|
+
remove: (id: string) => void;
|
|
88
|
+
clear: () => void;
|
|
89
|
+
itemNode: (id: NodeOrValue<string>) => Node<LightCollectionEntry<T> | undefined>;
|
|
90
|
+
hasNode: (id: NodeOrValue<string>) => Node<boolean>;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Reactive Map of {@link LightCollectionEntry} with native LRU eviction by
|
|
94
|
+
* `maxSize`. Backed by `reactiveMap` so iteration order, snapshot delivery,
|
|
95
|
+
* and copy-on-write semantics match the rest of the data-structure tier.
|
|
96
|
+
*
|
|
97
|
+
* **No-Graph composition.** `bundle.entries` is a detached `state()` — mount
|
|
98
|
+
* manually with `parent.add(bundle.entries)` for `describe()` / `lens.flow`
|
|
99
|
+
* coverage.
|
|
100
|
+
*
|
|
101
|
+
* **`createdAtNs` preservation.** Re-upserting an existing id keeps the
|
|
102
|
+
* original `createdAtNs`; only `lastAccessNs` advances. Eviction is purely
|
|
103
|
+
* LRU-by-`lastAccessNs` (newest wins) via `reactiveMap`'s native `maxSize`.
|
|
104
|
+
*
|
|
105
|
+
* **No imperative reads.** Per the no-imperative-reads policy: subscribe to
|
|
106
|
+
* `entries` for the live snapshot, or use `itemNode(id)` / `hasNode(id)` for
|
|
107
|
+
* single-key reactive reads. For one-shot snapshots use `firstValueFrom` or
|
|
108
|
+
* `node.cache` after `awaitSettled`.
|
|
109
|
+
*
|
|
110
|
+
* **Audit log freeze contract.** Mutations are wrapped via `lightMutation`,
|
|
111
|
+
* which deep-freezes args at entry by default (per the Audit 2 framework).
|
|
112
|
+
* That means the `value` you pass to `upsert(id, value)` is frozen by the
|
|
113
|
+
* time it lands in `LightCollectionEntry.value`. If you store mutable
|
|
114
|
+
* payloads and need them mutable post-upsert, opt out via `lightMutation`'s
|
|
115
|
+
* `freeze: false` (currently internal — not exposed on the bundle; if you
|
|
116
|
+
* hit this, file in `docs/optimizations.md`).
|
|
117
|
+
*
|
|
118
|
+
* **Audit no-op records.** Mutations record an audit entry even when the
|
|
119
|
+
* impl was a no-op (`remove(id)` for a missing id, `clear()` on empty store).
|
|
120
|
+
* The framework records attempts, not state changes — this is intentional
|
|
121
|
+
* (see `_internal/imperative-audit.ts` rationale). Audit consumers that
|
|
122
|
+
* reconstruct state by replaying records can ignore no-op redundant entries
|
|
123
|
+
* without losing correctness.
|
|
124
|
+
*
|
|
125
|
+
* @category memory
|
|
126
|
+
*/
|
|
127
|
+
declare function lightCollection<T>(opts?: LightCollectionOptions): LightCollectionBundle<T>;
|
|
128
|
+
type CollectionEntry<T> = LightCollectionEntry<T> & {
|
|
129
|
+
readonly baseScore: number;
|
|
130
|
+
};
|
|
131
|
+
type RankedCollectionEntry<T> = CollectionEntry<T> & {
|
|
132
|
+
readonly score: number;
|
|
133
|
+
};
|
|
134
|
+
type CollectionScoreFn<T> = (value: T) => number;
|
|
135
|
+
type CollectionOptions<T> = {
|
|
136
|
+
maxSize?: number;
|
|
137
|
+
/**
|
|
138
|
+
* Produces a base score at insert/update time. Static fn or a reactive
|
|
139
|
+
* `Node<(value: T) => number>` — when supplied as a Node, `ranked` re-derives
|
|
140
|
+
* whenever the score fn changes, but `baseScore` on each entry is only
|
|
141
|
+
* recomputed via {@link CollectionGraph.rescore}. Default `() => 1`.
|
|
142
|
+
*/
|
|
143
|
+
score?: CollectionScoreFn<T> | Node<CollectionScoreFn<T>>;
|
|
144
|
+
/**
|
|
145
|
+
* Exponential decay rate per second. `0` disables decay (default). When
|
|
146
|
+
* positive, `ranked` becomes fully reactive on time via a `fromTimer` source
|
|
147
|
+
* (cadence auto-derived from `decayRate` unless overridden via
|
|
148
|
+
* `refreshIntervalMs`). Half-life: `ratePerSecond = Math.LN2 / halfLifeSeconds`.
|
|
149
|
+
*/
|
|
150
|
+
decayRate?: number;
|
|
151
|
+
/** Minimum score floor after decay. Default `0`. */
|
|
152
|
+
minScore?: number;
|
|
153
|
+
/**
|
|
154
|
+
* Override for the `ranked` refresh tick cadence (milliseconds). When
|
|
155
|
+
* unset and `decayRate > 0`, defaults to `1000 * Math.LN2 / (10 * decayRate)`
|
|
156
|
+
* — roughly one tick per 10% of the half-life (~10% staleness budget).
|
|
157
|
+
*/
|
|
158
|
+
refreshIntervalMs?: number;
|
|
159
|
+
};
|
|
160
|
+
interface CollectionAuditRecord extends BaseAuditRecord {
|
|
161
|
+
readonly action: "upsert" | "remove" | "clear" | "rescore";
|
|
162
|
+
readonly id?: string;
|
|
163
|
+
}
|
|
164
|
+
type CollectionGraph<T> = Graph & {
|
|
165
|
+
readonly events: ReactiveLogBundle<CollectionAuditRecord>;
|
|
166
|
+
readonly items: Node<ReadonlyMap<string, CollectionEntry<T>>>;
|
|
167
|
+
readonly ranked: Node<readonly RankedCollectionEntry<T>[]>;
|
|
168
|
+
readonly size: Node<number>;
|
|
169
|
+
upsert: (id: string, value: T, opts?: {
|
|
170
|
+
score?: number;
|
|
171
|
+
}) => void;
|
|
172
|
+
remove: (id: string) => void;
|
|
173
|
+
clear: () => void;
|
|
174
|
+
/**
|
|
175
|
+
* Recompute every entry's `baseScore` via the latest score fn. O(N). Useful
|
|
176
|
+
* when a reactive `score` Node has emitted a new fn and the caller wants
|
|
177
|
+
* existing entries re-scored without an explicit re-upsert.
|
|
178
|
+
*/
|
|
179
|
+
rescore: () => void;
|
|
180
|
+
itemNode: (id: NodeOrValue<string>) => Node<CollectionEntry<T> | undefined>;
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Scored memory store with live decay-aware ranking.
|
|
184
|
+
*
|
|
185
|
+
* Topology (mounted on the returned graph):
|
|
186
|
+
* - `items` — `reactiveMap<id, CollectionEntry<T>>` (with `retention` configured
|
|
187
|
+
* for score-based eviction when `maxSize` is set).
|
|
188
|
+
* - `ranked` — `Node<readonly RankedCollectionEntry<T>[]>`, sorted by live
|
|
189
|
+
* decayed score. **Lazy** — does NOT compute until subscribed (no internal
|
|
190
|
+
* keepalive). Use `keepalive(coll.ranked)` for eager activation.
|
|
191
|
+
* - `size` — `Node<number>`, count of entries.
|
|
192
|
+
* - `_refreshTick` — `fromTimer`-driven `monotonicNs()` source, mounted only
|
|
193
|
+
* when `decayRate > 0`. Drives `ranked`'s time-dependent re-derivation.
|
|
194
|
+
* - `_seq` — sequence cursor for the audit log.
|
|
195
|
+
* - `events` — bounded reactive log of every mutation.
|
|
196
|
+
*
|
|
197
|
+
* **Time as a reactive dep.** When `decayRate > 0`, `ranked`'s deps are
|
|
198
|
+
* `[items, refreshTick]` — the tick payload IS `monotonicNs()`, so the fn is
|
|
199
|
+
* pure of deps and dry-run-reproducible with a mocked clock.
|
|
200
|
+
*
|
|
201
|
+
* **Lazy timer.** With no subscriber to `ranked`, the timer source does not
|
|
202
|
+
* fire — the activation chain is downstream-driven. To keep the timer warm
|
|
203
|
+
* without consuming results, register `graph.addDisposer(keepalive(coll.ranked))`.
|
|
204
|
+
*
|
|
205
|
+
* **Eviction at write-time.** Score-based retention runs on every successful
|
|
206
|
+
* `upsert / remove / clear` (it is mutation-driven, not tick-driven). The
|
|
207
|
+
* retention scorer reads `monotonicNs()` to compute decayed scores at eviction
|
|
208
|
+
* time — this is a deliberate impurity vs. `ReactiveMapRetention.score`'s
|
|
209
|
+
* "pure of `(key, value)`" docstring: write-time is the right moment to evict
|
|
210
|
+
* stale-by-decay entries.
|
|
211
|
+
*
|
|
212
|
+
* **No imperative reads.** Subscribe to `items` / `ranked` for live snapshots,
|
|
213
|
+
* or use `itemNode(id)` for single-key reactive reads.
|
|
214
|
+
*
|
|
215
|
+
* **`rescore` ordering caveat.** `rescore()` reads `items.entries.cache`
|
|
216
|
+
* (the post-emission snapshot) and writes via `setMany`. When called
|
|
217
|
+
* stand-alone it sees the latest committed state. When wrapped inside a
|
|
218
|
+
* user-level `batch(() => { coll.upsert(...); coll.rescore(); })`, the
|
|
219
|
+
* `cache` snapshot reflects state BEFORE the batch — so a just-staged
|
|
220
|
+
* upsert is invisible to the rescore scan. If you need rescore to include
|
|
221
|
+
* the staged upsert, either call `rescore()` after the batch settles or
|
|
222
|
+
* pass the new `baseScore` directly via `upsert(id, value, { score })`.
|
|
223
|
+
*
|
|
224
|
+
* **Audit no-op records.** Like `lightCollection`, mutations record audit
|
|
225
|
+
* entries even when the impl was a no-op (e.g., `rescore()` on an empty
|
|
226
|
+
* store). Intentional — the framework records attempts.
|
|
227
|
+
*
|
|
228
|
+
* @category memory
|
|
229
|
+
*/
|
|
230
|
+
declare function collection<T>(name: string, opts?: CollectionOptions<T>): CollectionGraph<T>;
|
|
231
|
+
type VectorBackend = "flat" | "hnsw";
|
|
232
|
+
type VectorRecord<TMeta> = {
|
|
233
|
+
readonly id: string;
|
|
234
|
+
readonly vector: readonly number[];
|
|
235
|
+
readonly meta?: TMeta;
|
|
236
|
+
/** Wall-clock-monotonic timestamp at last upsert; used for the default LRU retention. */
|
|
237
|
+
readonly upsertedAtNs: number;
|
|
238
|
+
};
|
|
239
|
+
type VectorSearchResult<TMeta> = {
|
|
240
|
+
readonly id: string;
|
|
241
|
+
readonly score: number;
|
|
242
|
+
readonly meta?: TMeta;
|
|
243
|
+
};
|
|
244
|
+
type HnswAdapter<TMeta> = {
|
|
245
|
+
upsert: (id: string, vector: readonly number[], meta?: TMeta) => void;
|
|
246
|
+
remove: (id: string) => void;
|
|
247
|
+
clear: () => void;
|
|
248
|
+
search: (query: readonly number[], k: number) => ReadonlyArray<VectorSearchResult<TMeta>>;
|
|
249
|
+
/** Optional adapter teardown. Called from `graph.destroy()` via `addDisposer`. */
|
|
250
|
+
dispose?: () => void;
|
|
251
|
+
};
|
|
252
|
+
type VectorIndexOptions<TMeta> = {
|
|
253
|
+
name?: string;
|
|
254
|
+
backend?: VectorBackend;
|
|
255
|
+
dimension?: number;
|
|
256
|
+
/**
|
|
257
|
+
* Strict-dimension default. When `true` (default) AND `dimension` is unset,
|
|
258
|
+
* mixed-length upserts throw `RangeError`. Set `false` to opt into the
|
|
259
|
+
* lenient zero-padding behavior of {@link VectorIndexGraph.searchNode}.
|
|
260
|
+
*/
|
|
261
|
+
strictDimension?: boolean;
|
|
262
|
+
/** Optional dependency seam for HNSW. */
|
|
263
|
+
hnswFactory?: () => HnswAdapter<TMeta>;
|
|
264
|
+
/** Maximum live entries (LRU-by-upsert-time when set; user-overridable via `retentionScore`). */
|
|
265
|
+
maxSize?: number;
|
|
266
|
+
/** Custom retention scorer. Higher score = kept. Defaults to `r => r.upsertedAtNs`. */
|
|
267
|
+
retentionScore?: (record: VectorRecord<TMeta>) => number;
|
|
268
|
+
};
|
|
269
|
+
interface VectorIndexAuditRecord extends BaseAuditRecord {
|
|
270
|
+
readonly action: "upsert" | "remove" | "clear" | "reindex" | "evict";
|
|
271
|
+
readonly id?: string;
|
|
272
|
+
}
|
|
273
|
+
type VectorIndexGraph<TMeta> = Graph & {
|
|
274
|
+
readonly backend: VectorBackend;
|
|
275
|
+
readonly events: ReactiveLogBundle<VectorIndexAuditRecord>;
|
|
276
|
+
readonly entries: Node<ReadonlyMap<string, VectorRecord<TMeta>>>;
|
|
277
|
+
upsert: (id: string, vector: readonly number[], meta?: TMeta) => void;
|
|
278
|
+
remove: (id: string) => void;
|
|
279
|
+
clear: () => void;
|
|
280
|
+
/** Re-push every live entry into the optional HNSW adapter. No-op for `flat`. */
|
|
281
|
+
reindex: () => void;
|
|
282
|
+
/**
|
|
283
|
+
* Reactive top-K search. Re-derives whenever entries / query / k change.
|
|
284
|
+
* Lazy. Use `firstValueFrom(searchNode(...))` for one-shot reads.
|
|
285
|
+
*/
|
|
286
|
+
searchNode: (query: Node<readonly number[]>, k?: NodeOrValue<number>) => Node<readonly VectorSearchResult<TMeta>[]>;
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* Reactive vector store with optional HNSW backend.
|
|
290
|
+
*
|
|
291
|
+
* **Storage on `reactiveMap`.** `entries` is a `reactiveMap<id, VectorRecord<TMeta>>`
|
|
292
|
+
* with optional score-based retention (`maxSize` + LRU-by-`upsertedAtNs` by
|
|
293
|
+
* default; user can supply a custom `retentionScore`). On retention eviction,
|
|
294
|
+
* the HNSW adapter (if configured) is also notified via `adapter.remove(id)`.
|
|
295
|
+
*
|
|
296
|
+
* **Reactive search.** `searchNode(queryNode, k)` returns a `Node<readonly
|
|
297
|
+
* VectorSearchResult<TMeta>[]>` that re-derives on entries / query / k change.
|
|
298
|
+
* Lazy — only computes when subscribed. Imperative `search()` is intentionally
|
|
299
|
+
* not exposed (no-imperative-reads policy). Use `firstValueFrom(searchNode(...))`
|
|
300
|
+
* for one-shot reads.
|
|
301
|
+
*
|
|
302
|
+
* **Strict dimension.** Default `strictDimension: true` — if `dimension` is
|
|
303
|
+
* unset and an upsert produces a vector of a different length than the first
|
|
304
|
+
* upserted, throws `RangeError`. Pass `strictDimension: false` to opt into
|
|
305
|
+
* the lenient zero-padding fallback (the previous default).
|
|
306
|
+
*
|
|
307
|
+
* **Adapter lifecycle.** When the HNSW adapter exposes a `dispose()` method,
|
|
308
|
+
* it is bound to the graph's teardown via `addDisposer`. When retention
|
|
309
|
+
* evicts an entry, `adapter.remove(id)` is invoked synchronously inside the
|
|
310
|
+
* retention `onArchive` callback.
|
|
311
|
+
*
|
|
312
|
+
* **Cosine zero-pad.** The flat backend uses cosine similarity over the
|
|
313
|
+
* pairwise max-length zero-pad. Mixing dimensions silently degrades scores
|
|
314
|
+
* unless strict mode catches it at upsert time. For embedding-model vectors,
|
|
315
|
+
* L2-normalize at the source — `vectorIndex` does not normalize.
|
|
316
|
+
*
|
|
317
|
+
* @category memory
|
|
318
|
+
*/
|
|
319
|
+
declare function vectorIndex<TMeta>(opts?: VectorIndexOptions<TMeta>): VectorIndexGraph<TMeta>;
|
|
320
|
+
type KnowledgeEdge<TRelation extends string = string> = {
|
|
321
|
+
readonly from: string;
|
|
322
|
+
readonly to: string;
|
|
323
|
+
readonly relation: TRelation;
|
|
324
|
+
readonly weight: number;
|
|
325
|
+
};
|
|
326
|
+
type KnowledgeGraphOptions = {
|
|
327
|
+
/** Cap on entity count (LRU-by-upsert-time when set). */
|
|
328
|
+
entitiesMaxSize?: number;
|
|
329
|
+
/** Cap on edge count (LRU-by-upsert-time when set). */
|
|
330
|
+
edgesMaxSize?: number;
|
|
331
|
+
/**
|
|
332
|
+
* Orphan-entity garbage collection. `"keep"` (default) leaves entities
|
|
333
|
+
* untouched when their last edge is unlinked; `"remove"` deletes the
|
|
334
|
+
* entity post-`unlink` if no edges reference it.
|
|
335
|
+
*/
|
|
336
|
+
orphanGC?: "keep" | "remove";
|
|
337
|
+
};
|
|
338
|
+
interface KnowledgeGraphAuditRecord extends BaseAuditRecord {
|
|
339
|
+
readonly action: "upsertEntity" | "removeEntity" | "link" | "unlink" | "orphanRemove";
|
|
340
|
+
readonly id?: string;
|
|
341
|
+
readonly from?: string;
|
|
342
|
+
readonly to?: string;
|
|
343
|
+
readonly relation?: string;
|
|
344
|
+
/** Edge weight at the time of the `link`. Omitted for non-edge actions. */
|
|
345
|
+
readonly weight?: number;
|
|
346
|
+
}
|
|
347
|
+
type KnowledgeGraph<TEntity, TRelation extends string = string> = Graph & {
|
|
348
|
+
readonly events: ReactiveLogBundle<KnowledgeGraphAuditRecord>;
|
|
349
|
+
readonly entities: Node<ReadonlyMap<string, TEntity>>;
|
|
350
|
+
readonly edges: Node<ReadonlyMap<string, KnowledgeEdge<TRelation>>>;
|
|
351
|
+
readonly adjacencyOut: Node<ReadonlyMap<string, readonly KnowledgeEdge<TRelation>[]>>;
|
|
352
|
+
readonly adjacencyIn: Node<ReadonlyMap<string, readonly KnowledgeEdge<TRelation>[]>>;
|
|
353
|
+
readonly entityCount: Node<number>;
|
|
354
|
+
readonly edgeCount: Node<number>;
|
|
355
|
+
upsertEntity: (id: string, value: TEntity) => void;
|
|
356
|
+
removeEntity: (id: string) => void;
|
|
357
|
+
link: (from: string, to: string, relation: TRelation, weight?: number) => void;
|
|
358
|
+
unlink: (from: string, to: string, relation?: TRelation) => void;
|
|
359
|
+
relatedNode: (id: NodeOrValue<string>, relation?: NodeOrValue<TRelation>) => Node<readonly KnowledgeEdge<TRelation>[]>;
|
|
360
|
+
};
|
|
361
|
+
/**
|
|
362
|
+
* Reactive knowledge graph: entities + typed edges + symmetric adjacency.
|
|
363
|
+
*
|
|
364
|
+
* Topology (mounted on the returned graph):
|
|
365
|
+
* - `entities` — `reactiveMap<id, TEntity>` (optional `entitiesMaxSize` LRU).
|
|
366
|
+
* - `edges` — `reactiveMap<tripleKey, KnowledgeEdge<TRelation>>` keyed by
|
|
367
|
+
* `${from}${to}${relation}` (optional `edgesMaxSize` LRU).
|
|
368
|
+
* Entity IDs / relations must NOT contain ``.
|
|
369
|
+
* - `adjacencyOut` — `Node<ReadonlyMap<from, readonly edge[]>>`. **Full O(E)
|
|
370
|
+
* rebuild on every `link` / `unlink` mutation.** (Prior JSDoc claim of
|
|
371
|
+
* "O(E) build" referred to a single rebuild — the per-mutation cost is
|
|
372
|
+
* O(E), not O(1) amortized. For very large graphs with frequent edge
|
|
373
|
+
* churn, consider batching via `reactiveMap.setMany`.)
|
|
374
|
+
* - `adjacencyIn` — `Node<ReadonlyMap<to, readonly edge[]>>`. Same O(E) per
|
|
375
|
+
* mutation rebuild characteristic.
|
|
376
|
+
* - `entityCount` / `edgeCount` — observability deriveds.
|
|
377
|
+
* - `events` — bounded reactive audit log.
|
|
378
|
+
*
|
|
379
|
+
* **`link()` semantics.** Calling `link(a, b, rel, w)` twice with different
|
|
380
|
+
* weights replaces the weight on the existing edge (keyed by the triple).
|
|
381
|
+
* `unlink` then `link` re-creates the edge (and bumps `lastUpsertNs` for
|
|
382
|
+
* retention purposes).
|
|
383
|
+
*
|
|
384
|
+
* **Edge weight convention.** Higher weight = stronger relation. Default `1`.
|
|
385
|
+
*
|
|
386
|
+
* **Orphan GC.** `orphanGC: "remove"` deletes an entity from `entities` after
|
|
387
|
+
* an `unlink` that empties its adjacency on both sides. Default `"keep"`.
|
|
388
|
+
*
|
|
389
|
+
* **No imperative reads.** Use `relatedNode(id, relation?)` for reactive reads.
|
|
390
|
+
*
|
|
391
|
+
* @category memory
|
|
392
|
+
*/
|
|
393
|
+
declare function knowledgeGraph<TEntity, TRelation extends string = string>(name: string, opts?: KnowledgeGraphOptions): KnowledgeGraph<TEntity, TRelation>;
|
|
394
|
+
|
|
395
|
+
type index_CollectionAuditRecord = CollectionAuditRecord;
|
|
396
|
+
type index_CollectionEntry<T> = CollectionEntry<T>;
|
|
397
|
+
type index_CollectionGraph<T> = CollectionGraph<T>;
|
|
398
|
+
type index_CollectionOptions<T> = CollectionOptions<T>;
|
|
399
|
+
type index_CollectionScoreFn<T> = CollectionScoreFn<T>;
|
|
400
|
+
type index_HnswAdapter<TMeta> = HnswAdapter<TMeta>;
|
|
401
|
+
type index_KnowledgeEdge<TRelation extends string = string> = KnowledgeEdge<TRelation>;
|
|
402
|
+
type index_KnowledgeGraph<TEntity, TRelation extends string = string> = KnowledgeGraph<TEntity, TRelation>;
|
|
403
|
+
type index_KnowledgeGraphAuditRecord = KnowledgeGraphAuditRecord;
|
|
404
|
+
type index_KnowledgeGraphOptions = KnowledgeGraphOptions;
|
|
405
|
+
type index_LightCollectionAuditRecord = LightCollectionAuditRecord;
|
|
406
|
+
type index_LightCollectionBundle<T> = LightCollectionBundle<T>;
|
|
407
|
+
type index_LightCollectionEntry<T> = LightCollectionEntry<T>;
|
|
408
|
+
type index_LightCollectionOptions = LightCollectionOptions;
|
|
409
|
+
type index_NodeOrValue<T> = NodeOrValue<T>;
|
|
410
|
+
type index_RankedCollectionEntry<T> = RankedCollectionEntry<T>;
|
|
411
|
+
type index_VectorBackend = VectorBackend;
|
|
412
|
+
type index_VectorIndexAuditRecord = VectorIndexAuditRecord;
|
|
413
|
+
type index_VectorIndexGraph<TMeta> = VectorIndexGraph<TMeta>;
|
|
414
|
+
type index_VectorIndexOptions<TMeta> = VectorIndexOptions<TMeta>;
|
|
415
|
+
type index_VectorRecord<TMeta> = VectorRecord<TMeta>;
|
|
416
|
+
type index_VectorSearchResult<TMeta> = VectorSearchResult<TMeta>;
|
|
417
|
+
declare const index_collection: typeof collection;
|
|
418
|
+
declare const index_cosineSimilarity: typeof cosineSimilarity;
|
|
419
|
+
declare const index_decay: typeof decay;
|
|
420
|
+
declare const index_knowledgeGraph: typeof knowledgeGraph;
|
|
421
|
+
declare const index_lightCollection: typeof lightCollection;
|
|
422
|
+
declare const index_vectorIndex: typeof vectorIndex;
|
|
423
|
+
declare namespace index {
|
|
424
|
+
export { type index_CollectionAuditRecord as CollectionAuditRecord, type index_CollectionEntry as CollectionEntry, type index_CollectionGraph as CollectionGraph, type index_CollectionOptions as CollectionOptions, type index_CollectionScoreFn as CollectionScoreFn, type index_HnswAdapter as HnswAdapter, type index_KnowledgeEdge as KnowledgeEdge, type index_KnowledgeGraph as KnowledgeGraph, type index_KnowledgeGraphAuditRecord as KnowledgeGraphAuditRecord, type index_KnowledgeGraphOptions as KnowledgeGraphOptions, type index_LightCollectionAuditRecord as LightCollectionAuditRecord, type index_LightCollectionBundle as LightCollectionBundle, type index_LightCollectionEntry as LightCollectionEntry, type index_LightCollectionOptions as LightCollectionOptions, type index_NodeOrValue as NodeOrValue, type index_RankedCollectionEntry as RankedCollectionEntry, type index_VectorBackend as VectorBackend, type index_VectorIndexAuditRecord as VectorIndexAuditRecord, type index_VectorIndexGraph as VectorIndexGraph, type index_VectorIndexOptions as VectorIndexOptions, type index_VectorRecord as VectorRecord, type index_VectorSearchResult as VectorSearchResult, index_collection as collection, index_cosineSimilarity as cosineSimilarity, index_decay as decay, index_knowledgeGraph as knowledgeGraph, index_lightCollection as lightCollection, index_vectorIndex as vectorIndex };
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
export { type CollectionAuditRecord as C, type HnswAdapter as H, type KnowledgeGraph as K, type LightCollectionBundle as L, type NodeOrValue as N, type RankedCollectionEntry as R, type VectorSearchResult as V, type VectorIndexGraph as a, type CollectionEntry as b, type CollectionGraph as c, type CollectionOptions as d, type CollectionScoreFn as e, type KnowledgeEdge as f, type KnowledgeGraphAuditRecord as g, type KnowledgeGraphOptions as h, index as i, type LightCollectionAuditRecord as j, type LightCollectionEntry as k, type LightCollectionOptions as l, type VectorBackend as m, type VectorIndexAuditRecord as n, type VectorIndexOptions as o, type VectorRecord as p, collection as q, cosineSimilarity as r, decay as s, knowledgeGraph as t, lightCollection as u, vectorIndex as v };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { NodeInput } from './extra/sources.js';
|
|
2
2
|
import { a as Node } from './node-fSc-hCv8.js';
|
|
3
3
|
import { L as LLMAdapter } from './types-CidcBDuk.js';
|
|
4
|
-
import { T as TopicGraph, M as MessagingHubGraph } from './index-
|
|
5
|
-
import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-
|
|
6
|
-
import { G as Graph,
|
|
7
|
-
import { G as GateController } from './pipeline-graph-
|
|
8
|
-
import { J as JobQueueGraph } from './index-
|
|
4
|
+
import { T as TopicGraph, M as MessagingHubGraph } from './index-BUFCHvOR.js';
|
|
5
|
+
import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-BI1wMfyc.js';
|
|
6
|
+
import { G as Graph, u as GraphProfileResult, t as GraphProfileOptions } from './graph-BjW1taJl.js';
|
|
7
|
+
import { G as GateController } from './pipeline-graph-9JBbmRxA.js';
|
|
8
|
+
import { J as JobQueueGraph } from './index-D9vBTuzo.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Strategy model and priority scoring (roadmap §9.0).
|
|
@@ -187,6 +187,20 @@ type StrategyKey = `${RootCause}→${Intervention}`;
|
|
|
187
187
|
* for escape-hatch executors that carry opaque state.
|
|
188
188
|
*/
|
|
189
189
|
type ExecuteOutput<A = unknown> = {
|
|
190
|
+
/**
|
|
191
|
+
* Execution outcome classification:
|
|
192
|
+
*
|
|
193
|
+
* - `"success"`: execution completed cleanly and the artifact (if any) is
|
|
194
|
+
* ready for verification. The verifier should proceed with a full
|
|
195
|
+
* evaluation pass.
|
|
196
|
+
* - `"failure"`: execution did not produce a usable artifact — the actuator
|
|
197
|
+
* threw, a prompt parse failed, or `shouldApply` skipped the item. The
|
|
198
|
+
* verifier should treat this as a non-result and route accordingly.
|
|
199
|
+
* - `"partial"`: execution produced a candidate that converged but did not
|
|
200
|
+
* fully meet verification criteria. Used by `refineExecutor` when the
|
|
201
|
+
* iteration cap is reached without full convergence; the artifact holds
|
|
202
|
+
* the best candidate achieved.
|
|
203
|
+
*/
|
|
190
204
|
outcome: "success" | "failure" | "partial";
|
|
191
205
|
detail: string;
|
|
192
206
|
/**
|
|
@@ -201,6 +215,16 @@ type ExecuteOutput<A = unknown> = {
|
|
|
201
215
|
/** Full execution result assembled downstream (LLM output + context). */
|
|
202
216
|
interface ExecutionResult<A = unknown> {
|
|
203
217
|
item: TriagedItem;
|
|
218
|
+
/**
|
|
219
|
+
* Execution outcome classification. Same semantics as
|
|
220
|
+
* {@link ExecuteOutput.outcome}:
|
|
221
|
+
*
|
|
222
|
+
* - `"success"`: execution completed cleanly; artifact is ready for
|
|
223
|
+
* verification.
|
|
224
|
+
* - `"failure"`: no usable artifact was produced.
|
|
225
|
+
* - `"partial"`: best candidate produced but convergence criteria not met
|
|
226
|
+
* (iteration cap reached in `refineExecutor`).
|
|
227
|
+
*/
|
|
204
228
|
outcome: "success" | "failure" | "partial";
|
|
205
229
|
detail: string;
|
|
206
230
|
/**
|
|
@@ -464,6 +488,52 @@ interface ActuatorExecutorConfig<R> {
|
|
|
464
488
|
* ```
|
|
465
489
|
*/
|
|
466
490
|
declare function actuatorExecutor<R>(config: ActuatorExecutorConfig<R>): HarnessExecutor<R>;
|
|
491
|
+
/**
|
|
492
|
+
* Apply callback shape consumed by {@link dispatchActuator}. Same shape as
|
|
493
|
+
* {@link ActuatorExecutorConfig.apply}.
|
|
494
|
+
*/
|
|
495
|
+
type ActuatorApplyFn<R> = (item: TriagedItem, opts: {
|
|
496
|
+
signal: AbortSignal;
|
|
497
|
+
}) => ActuatorResult<R>;
|
|
498
|
+
/** Configuration for {@link dispatchActuator}. */
|
|
499
|
+
interface DispatchActuatorConfig<R> {
|
|
500
|
+
/**
|
|
501
|
+
* Per-intervention apply callbacks. Keyed by `TriagedItem.intervention`.
|
|
502
|
+
* Items whose intervention is not in `routes` fall through to `default`
|
|
503
|
+
* (when set) or emit a skip-failure `ExecuteOutput`.
|
|
504
|
+
*/
|
|
505
|
+
routes: Readonly<Partial<Record<TriagedItem["intervention"], ActuatorApplyFn<R>>>>;
|
|
506
|
+
/** Fallback apply callback for items whose intervention is not in `routes`. */
|
|
507
|
+
default?: ActuatorApplyFn<R>;
|
|
508
|
+
/** Node name prefix for `describe()` introspection. Default `"dispatch-actuator"`. */
|
|
509
|
+
name?: string;
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Multi-intervention actuator — dispatches each `TriagedItem` to one of
|
|
513
|
+
* several `apply` callbacks based on `item.intervention`.
|
|
514
|
+
*
|
|
515
|
+
* Internally builds a single `actuatorExecutor` whose `apply` resolves the
|
|
516
|
+
* intervention → callback at call-time. Items with no matching route and no
|
|
517
|
+
* `default` emit a skip-failure with detail
|
|
518
|
+
* `"no route for intervention 'X'"`.
|
|
519
|
+
*
|
|
520
|
+
* @example Multi-intervention dogfood loop.
|
|
521
|
+
* ```ts
|
|
522
|
+
* const harness = harnessLoop("repair", {
|
|
523
|
+
* adapter,
|
|
524
|
+
* executor: dispatchActuator<CatalogPatch>({
|
|
525
|
+
* routes: {
|
|
526
|
+
* "catalog-fn": catalogFnActuator,
|
|
527
|
+
* "template": templateActuator,
|
|
528
|
+
* "docs": docEditActuator,
|
|
529
|
+
* },
|
|
530
|
+
* default: investigateActuator,
|
|
531
|
+
* }),
|
|
532
|
+
* verifier: evalVerifier<CatalogPatch>({ ... }),
|
|
533
|
+
* });
|
|
534
|
+
* ```
|
|
535
|
+
*/
|
|
536
|
+
declare function dispatchActuator<R>(config: DispatchActuatorConfig<R>): HarnessExecutor<R>;
|
|
467
537
|
|
|
468
538
|
/**
|
|
469
539
|
* autoSolidify — promote successful VERIFY runs into a durable artifact
|
|
@@ -1252,6 +1322,7 @@ declare function harnessTrace(harness: HarnessGraph, opts?: HarnessTraceOptions)
|
|
|
1252
1322
|
* @module
|
|
1253
1323
|
*/
|
|
1254
1324
|
|
|
1325
|
+
type index_ActuatorApplyFn<R> = ActuatorApplyFn<R>;
|
|
1255
1326
|
type index_ActuatorExecutorConfig<R> = ActuatorExecutorConfig<R>;
|
|
1256
1327
|
type index_ActuatorResult<R> = ActuatorResult<R>;
|
|
1257
1328
|
type index_AutoSolidifyConfig<R, T = R> = AutoSolidifyConfig<R, T>;
|
|
@@ -1263,6 +1334,7 @@ declare const index_DEFAULT_QUEUE_CONFIGS: typeof DEFAULT_QUEUE_CONFIGS;
|
|
|
1263
1334
|
declare const index_DEFAULT_SEVERITY_WEIGHTS: typeof DEFAULT_SEVERITY_WEIGHTS;
|
|
1264
1335
|
declare const index_DEFAULT_TRIAGE_PROMPT: typeof DEFAULT_TRIAGE_PROMPT;
|
|
1265
1336
|
declare const index_DEFAULT_VERIFY_PROMPT: typeof DEFAULT_VERIFY_PROMPT;
|
|
1337
|
+
type index_DispatchActuatorConfig<R> = DispatchActuatorConfig<R>;
|
|
1266
1338
|
type index_ErrorClass = ErrorClass;
|
|
1267
1339
|
type index_ErrorClassifier = ErrorClassifier;
|
|
1268
1340
|
type index_EvalDelta = EvalDelta;
|
|
@@ -1323,6 +1395,7 @@ declare const index_createIntakeBridge: typeof createIntakeBridge;
|
|
|
1323
1395
|
declare const index_defaultErrorClassifier: typeof defaultErrorClassifier;
|
|
1324
1396
|
declare const index_defaultLlmExecutor: typeof defaultLlmExecutor;
|
|
1325
1397
|
declare const index_defaultLlmVerifier: typeof defaultLlmVerifier;
|
|
1398
|
+
declare const index_dispatchActuator: typeof dispatchActuator;
|
|
1326
1399
|
declare const index_evalIntakeBridge: typeof evalIntakeBridge;
|
|
1327
1400
|
declare const index_evalSource: typeof evalSource;
|
|
1328
1401
|
declare const index_evalVerifier: typeof evalVerifier;
|
|
@@ -1337,7 +1410,7 @@ declare const index_resolvePromptFn: typeof resolvePromptFn;
|
|
|
1337
1410
|
declare const index_strategyKey: typeof strategyKey;
|
|
1338
1411
|
declare const index_strategyModel: typeof strategyModel;
|
|
1339
1412
|
declare namespace index {
|
|
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 };
|
|
1413
|
+
export { type index_ActuatorApplyFn as ActuatorApplyFn, type index_ActuatorExecutorConfig as ActuatorExecutorConfig, type index_ActuatorResult as ActuatorResult, type index_AutoSolidifyConfig as AutoSolidifyConfig, type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_DispatchActuatorConfig as DispatchActuatorConfig, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_actuatorExecutor as actuatorExecutor, index_affectedTaskFilter as affectedTaskFilter, index_autoSolidify as autoSolidify, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_dispatchActuator as dispatchActuator, index_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 };
|
|
1341
1414
|
}
|
|
1342
1415
|
|
|
1343
|
-
export { type
|
|
1416
|
+
export { type StrategyModelBundle as $, type ActuatorApplyFn as A, type HarnessProfileResult as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type ErrorClass as E, type HarnessTraceHandle as F, type HarnessTraceOptions as G, type HarnessEvalPairConfig as H, type HarnessVerifier as I, type IntakeBridgeOptions as J, type IntakeItem as K, type IntakeSource as L, type Intervention as M, type KnownIntakeSource as N, type LintError as O, type NotifyEffectOptions as P, type NotifyTransport as Q, type PrioritySignals as R, QUEUE_NAMES as S, type QueueConfig as T, type QueueRoute as U, type RefineExecutorConfig as V, type RefineExecutorResult as W, type RootCause as X, type Severity as Y, type StrategyEntry as Z, type StrategyKey as _, type ActuatorExecutorConfig as a, type StrategySnapshot as a0, type TestFailure as a1, type TraceDetail as a2, type TraceEvent as a3, type TraceEventType as a4, type TriagePromptFn as a5, type TriagedItem as a6, type VerifyOutput as a7, type VerifyPromptFn as a8, type VerifyResult as a9, actuatorExecutor as aa, affectedTaskFilter as ab, autoSolidify as ac, beforeAfterCompare as ad, codeChangeBridge as ae, createIntakeBridge as af, defaultErrorClassifier as ag, defaultLlmExecutor as ah, defaultLlmVerifier as ai, dispatchActuator as aj, evalIntakeBridge as ak, evalSource as al, evalVerifier as am, harnessEvalPair as an, harnessLoop as ao, harnessProfile as ap, harnessTrace as aq, notifyEffect as ar, priorityScore as as, refineExecutor as at, resolvePromptFn as au, strategyKey as av, strategyModel as aw, type ActuatorResult as b, type AutoSolidifyConfig as c, type CodeChangeBridgeOptions as d, DEFAULT_EXECUTE_PROMPT as e, DEFAULT_QUEUE_CONFIGS as f, DEFAULT_SEVERITY_WEIGHTS as g, DEFAULT_TRIAGE_PROMPT as h, index as i, DEFAULT_VERIFY_PROMPT as j, type DispatchActuatorConfig as k, type ErrorClassifier as l, type EvalDelta as m, type EvalIntakeBridgeOptions as n, type EvalJudgeScore as o, type EvalResult as p, type EvalTaskDelta as q, type EvalTaskResult as r, type EvalVerifierConfig as s, type EvalVerifierSummary as t, type ExecuteOutput as u, type ExecutePromptFn as v, type ExecutionResult as w, type HarnessExecutor as x, HarnessGraph as y, type HarnessLoopOptions as z };
|