@graphrefly/graphrefly 0.32.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cascading-D3sapjue.d.ts → cascading-Bg0a4VSf.d.ts} +2 -2
- package/dist/{cascading-BfQmSmjU.d.cts → cascading-DKIb6Pk8.d.cts} +2 -2
- package/dist/{chunk-4JBKKUCJ.js → chunk-2JO6LXFT.js} +1 -1
- package/dist/{chunk-FTA5TB2A.js → chunk-2LZ6DL45.js} +1 -1
- package/dist/chunk-3Y4BXFFR.js +1 -0
- package/dist/{chunk-WQ7I7JVU.js → chunk-4F564IPP.js} +1 -1
- package/dist/{chunk-M2VFLRPJ.js → chunk-4NYSEUKV.js} +1 -1
- package/dist/{chunk-N2KKISCE.js → chunk-533RQFF6.js} +1 -1
- package/dist/{chunk-BU4SUZSA.js → chunk-55T3K37W.js} +1 -1
- package/dist/chunk-65WWQ5CB.js +43 -0
- package/dist/chunk-6HQ6HVTF.js +1 -0
- package/dist/{chunk-4VXL3UZK.js → chunk-7Q2WPFQ7.js} +1 -1
- package/dist/chunk-A3GDELMY.js +61 -0
- package/dist/{chunk-5PBXUVHI.js → chunk-BY4WKPKM.js} +1 -1
- package/dist/{chunk-JYMNVEH6.js → chunk-C5DINHNP.js} +1 -1
- package/dist/{chunk-7QS77X6G.js → chunk-CJMFZXIZ.js} +1 -1
- package/dist/{chunk-W6FQIFVE.js → chunk-CLD3F4R5.js} +1 -1
- package/dist/{chunk-RWGJQQLT.js → chunk-FKRPIRE6.js} +1 -1
- package/dist/{chunk-UXEB35L4.js → chunk-GAOX6OPT.js} +1 -1
- package/dist/{chunk-TOCCHQI6.js → chunk-GCUYSIM4.js} +1 -1
- package/dist/{chunk-XRSHMHEG.js → chunk-HTBOCKVD.js} +1 -1
- package/dist/{chunk-LJGPOJHS.js → chunk-IB64M7VP.js} +1 -1
- package/dist/{chunk-Q2SY7M7K.js → chunk-IJFSR4NU.js} +1 -1
- package/dist/{chunk-X4OOM6QU.js → chunk-INXDSJRC.js} +1 -1
- package/dist/{chunk-4YGJ7KZ6.js → chunk-IPNJDNE7.js} +1 -1
- package/dist/{chunk-4UUDNFYG.js → chunk-KGKJCHEK.js} +1 -1
- package/dist/chunk-KN2UMFT6.js +5 -0
- package/dist/{chunk-A4JT4SAD.js → chunk-KRH66M4O.js} +1 -1
- package/dist/{chunk-K54OKWNY.js → chunk-L3KUKDZC.js} +1 -1
- package/dist/{chunk-Y26UN6J5.js → chunk-LOF5HSD3.js} +1 -1
- package/dist/chunk-LYCLF26R.js +1 -0
- package/dist/{chunk-CZVYLXFK.js → chunk-M27MVZCP.js} +1 -1
- package/dist/{chunk-DWIAG62L.js → chunk-NNKJUORL.js} +1 -1
- package/dist/{chunk-WF3V5X2L.js → chunk-PBN426RU.js} +1 -1
- package/dist/{chunk-MFNOZ5E6.js → chunk-Q46YJCQH.js} +1 -1
- package/dist/{chunk-KD3IYBTD.js → chunk-SFIM774L.js} +1 -1
- package/dist/{chunk-VXJX3ZZP.js → chunk-T2TB37TW.js} +1 -1
- package/dist/{chunk-UMH3HSP7.js → chunk-T7EQPKOP.js} +1 -1
- package/dist/{chunk-JAHAJU4G.js → chunk-TONEKQM3.js} +1 -1
- package/dist/{chunk-CNXUW2CU.js → chunk-TZLEMGAK.js} +1 -1
- package/dist/{chunk-LWGLBCMU.js → chunk-TZQPPQEQ.js} +1 -1
- package/dist/{chunk-7JZ3YORY.js → chunk-U2T2XWDA.js} +1 -1
- package/dist/{chunk-WE32AFFA.js → chunk-UF746BQ4.js} +1 -1
- package/dist/{chunk-7QMVU3IX.js → chunk-WBWBY6LI.js} +1 -1
- package/dist/{chunk-7EMUF2RY.js → chunk-Y63GWRHO.js} +1 -1
- package/dist/{chunk-PWKLZ2XU.js → chunk-YDWTVO4E.js} +1 -1
- package/dist/{chunk-EIFHFDFD.js → chunk-YUBV7EEE.js} +1 -1
- package/dist/compat/index.cjs +5 -5
- package/dist/compat/index.d.cts +14 -14
- package/dist/compat/index.d.ts +14 -14
- package/dist/compat/index.js +1 -1
- package/dist/compat/jotai/index.cjs +1 -1
- package/dist/compat/jotai/index.d.cts +2 -2
- package/dist/compat/jotai/index.d.ts +2 -2
- package/dist/compat/jotai/index.js +1 -1
- package/dist/compat/nanostores/index.cjs +1 -1
- package/dist/compat/nanostores/index.d.cts +2 -2
- package/dist/compat/nanostores/index.d.ts +2 -2
- package/dist/compat/nanostores/index.js +1 -1
- package/dist/compat/nestjs/index.cjs +5 -5
- package/dist/compat/nestjs/index.d.cts +6 -6
- package/dist/compat/nestjs/index.d.ts +6 -6
- package/dist/compat/nestjs/index.js +1 -1
- package/dist/compat/react/index.d.cts +2 -2
- package/dist/compat/react/index.d.ts +2 -2
- package/dist/compat/solid/index.d.cts +2 -2
- package/dist/compat/solid/index.d.ts +2 -2
- package/dist/compat/svelte/index.d.cts +2 -2
- package/dist/compat/svelte/index.d.ts +2 -2
- package/dist/compat/vue/index.d.cts +2 -2
- package/dist/compat/vue/index.d.ts +2 -2
- package/dist/compat/zustand/index.cjs +3 -3
- package/dist/compat/zustand/index.d.cts +4 -4
- package/dist/compat/zustand/index.d.ts +4 -4
- package/dist/compat/zustand/index.js +1 -1
- package/dist/{composite-BY9hMxN7.d.ts → composite-BPDU_XV1.d.ts} +2 -2
- package/dist/{composite-CH0S8DFn.d.cts → composite-CmvdhTJe.d.cts} +2 -2
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.d.cts +4 -4
- package/dist/core/index.d.ts +4 -4
- package/dist/core/index.js +1 -1
- package/dist/extra/browser.cjs +1 -1
- package/dist/extra/browser.d.cts +1 -1
- package/dist/extra/browser.d.ts +1 -1
- package/dist/extra/browser.js +1 -1
- package/dist/extra/index.cjs +16 -16
- package/dist/extra/index.d.cts +9 -9
- package/dist/extra/index.d.ts +9 -9
- package/dist/extra/index.js +1 -1
- package/dist/extra/node.cjs +1 -1
- package/dist/extra/node.d.cts +1 -1
- package/dist/extra/node.d.ts +1 -1
- package/dist/extra/node.js +1 -1
- package/dist/extra/operators.cjs +1 -1
- package/dist/extra/operators.d.cts +1 -1
- package/dist/extra/operators.d.ts +1 -1
- package/dist/extra/operators.js +1 -1
- package/dist/extra/reactive.cjs +1 -1
- package/dist/extra/reactive.d.cts +3 -3
- package/dist/extra/reactive.d.ts +3 -3
- package/dist/extra/reactive.js +1 -1
- package/dist/extra/sources.cjs +1 -1
- package/dist/extra/sources.d.cts +1 -1
- package/dist/extra/sources.d.ts +1 -1
- package/dist/extra/sources.js +1 -1
- package/dist/extra/storage-browser.cjs +1 -1
- package/dist/extra/storage-browser.d.cts +1 -1
- package/dist/extra/storage-browser.d.ts +1 -1
- package/dist/extra/storage-browser.js +1 -1
- package/dist/{fallback-Cb3GH1O7.d.cts → fallback-9YznPvPP.d.cts} +1 -1
- package/dist/{fallback-DRjJ_ZM8.d.ts → fallback-mYSd8vQo.d.ts} +1 -1
- package/dist/graph/index.cjs +4 -4
- package/dist/graph/index.d.cts +5 -5
- package/dist/graph/index.d.ts +5 -5
- package/dist/graph/index.js +1 -1
- package/dist/{graph-BOhEGJ6E.d.ts → graph-BROUZPG9.d.ts} +2 -2
- package/dist/{graph-CdJeX7O7.d.cts → graph-DaoydJ_u.d.cts} +2 -2
- package/dist/{index-C22aTC1X.d.cts → index-3L3RC3VJ.d.ts} +578 -108
- package/dist/{index-BmZb8fNF.d.cts → index-B-KCkW4M.d.cts} +4 -4
- package/dist/{index-CDK5RsV5.d.cts → index-B1hFhK1K.d.cts} +1 -1
- package/dist/{index-C7RqYbOZ.d.ts → index-B5eS17Bz.d.ts} +7 -7
- package/dist/{index-DSawGt8n.d.cts → index-BDEhWLF4.d.cts} +3 -3
- package/dist/{index-CZUzi6Dy.d.ts → index-BFHpNSsV.d.ts} +4 -4
- package/dist/{index-DDo-eqQ4.d.cts → index-BO6t0HjV.d.cts} +1 -1
- package/dist/{index-CrC7urhX.d.ts → index-BRisOxlx.d.ts} +1 -1
- package/dist/{index-CHfBm51k.d.ts → index-BUtCR0k6.d.ts} +4 -4
- package/dist/{index-BydMDMf7.d.cts → index-BVTjuKeP.d.cts} +1 -1
- package/dist/{index-BX22kvjh.d.ts → index-BWiX5foT.d.ts} +1 -1
- package/dist/{index-Dxk-pUQI.d.ts → index-Bd2AjMQY.d.ts} +2 -2
- package/dist/{index-Dbmj0iYR.d.ts → index-Bi4ZP6Hc.d.ts} +2 -2
- package/dist/{index-j33Lfb1G.d.cts → index-BkfL5MXh.d.cts} +3 -3
- package/dist/{index-CnjUhRbs.d.cts → index-BpjQanLs.d.cts} +2 -2
- package/dist/{index-LGzAYqdR.d.ts → index-BsxqmV6u.d.ts} +2 -2
- package/dist/{index-CCdg0JLX.d.cts → index-C2Dey3L-.d.cts} +12 -3
- package/dist/{index-gXTVbSax.d.ts → index-C5uMGVJw.d.ts} +4 -4
- package/dist/{index-C-Gsh-0a.d.cts → index-C8_bnDBZ.d.cts} +3 -3
- package/dist/{index-C9qCLIN4.d.ts → index-CD7qmvSf.d.ts} +3 -3
- package/dist/{index-wIx1Jisk.d.ts → index-CI5fULSz.d.ts} +1 -1
- package/dist/{index-BUZPTPSQ.d.ts → index-CNxdDb2e.d.ts} +3 -3
- package/dist/{index-FBqTfL_S.d.cts → index-CQ1gt4rn.d.cts} +1 -1
- package/dist/{index-CNyiYQWF.d.ts → index-CQtnGFrZ.d.cts} +578 -108
- package/dist/{index-DhlAMlm9.d.ts → index-CbCNoogR.d.ts} +218 -66
- package/dist/{index-BDLy6CQ9.d.cts → index-Ccv_61jG.d.cts} +2 -2
- package/dist/{index-MV2yGIAq.d.ts → index-Ced0dphF.d.ts} +9 -9
- package/dist/{index-BzxU4yhV.d.cts → index-ChZvMC4M.d.cts} +4 -4
- package/dist/{index-zMQIQuDu.d.ts → index-Chi9IiHJ.d.ts} +3 -3
- package/dist/{index-DUkuH3jP.d.cts → index-ClJUZAOr.d.cts} +18 -3
- package/dist/{index-D7XxY1Ff.d.cts → index-ClKm7CFB.d.cts} +1 -1
- package/dist/{index-D3HcdZ4d.d.cts → index-Cn3taOmp.d.cts} +2 -2
- package/dist/{index-C4QTaDli.d.cts → index-CoR-tOZA.d.cts} +4 -4
- package/dist/{index-BpFWP7Bq.d.cts → index-Cp91Sxbo.d.cts} +5 -4
- package/dist/{index-DD1czHj3.d.ts → index-Cq7Uqgu4.d.ts} +2 -2
- package/dist/{index-EGjF6iSY.d.cts → index-D23g00HE.d.cts} +4 -4
- package/dist/{index-Bnmttu35.d.ts → index-D80nGRb9.d.ts} +3 -3
- package/dist/{index-DY2QbdoP.d.cts → index-DR3XqZlV.d.cts} +1 -1
- package/dist/{index-BANwzwBV.d.ts → index-Db21wuaD.d.ts} +5 -4
- package/dist/{index-CIXaiYDE.d.cts → index-DhWrMTI6.d.cts} +1 -1
- package/dist/{index-Dp_pS7Bw.d.ts → index-DheNs40A.d.ts} +2 -2
- package/dist/{index-CVevMZ0n.d.ts → index-Dia4yc2y.d.ts} +3 -3
- package/dist/{index-_BXz9K7b.d.cts → index-Ds3Rz9m9.d.cts} +3 -3
- package/dist/{index-Ckl03Q0s.d.ts → index-Dtpr2FIB.d.ts} +18 -3
- package/dist/{index-ByPnK85n.d.ts → index-DupIl9wI.d.ts} +1 -1
- package/dist/{index-CEoU-r-g.d.ts → index-DuvQAU02.d.ts} +2 -2
- package/dist/{index-D0C_USMR.d.ts → index-DxEcY7Om.d.ts} +1 -1
- package/dist/{index-eYHRkoK-.d.ts → index-HvJ90_tX.d.ts} +12 -3
- package/dist/{index-BuN2wGJs.d.cts → index-IxinNgAH.d.cts} +218 -66
- package/dist/{index-LzCJ0kMT.d.cts → index-Jgl7ev9I.d.cts} +9 -9
- package/dist/{index-DlGaEBW5.d.cts → index-RJX4snyi.d.cts} +2 -2
- package/dist/{index-DNhTQReY.d.cts → index-ZIQaKIdY.d.cts} +7 -7
- package/dist/{index-lpGUhTBn.d.ts → index-b4a6Sg0R.d.ts} +4 -4
- package/dist/{index-BiGeETJs.d.cts → index-iKsmdnq6.d.cts} +2 -2
- package/dist/{index-CmSjld-4.d.ts → index-nP13Qe6T.d.ts} +1 -1
- package/dist/{index-BJDXj9Wf.d.cts → index-p0bkNfby.d.cts} +3 -3
- package/dist/{index-aBqZUx3B.d.cts → index-wcfc7W-f.d.cts} +2 -2
- package/dist/{index-BwdPDWI4.d.cts → index-yJY9thRY.d.cts} +2 -2
- package/dist/{index-BbcSZCAG.d.ts → index-ygRFoyrN.d.ts} +2 -2
- package/dist/{index-Ip3q9T9x.d.ts → index-zA1uVtk0.d.ts} +1 -1
- package/dist/index.cjs +57 -57
- package/dist/index.d.cts +44 -44
- package/dist/index.d.ts +44 -44
- package/dist/index.js +1 -1
- package/dist/{meta-COtmHLwT.d.cts → meta-BdjSt8ky.d.cts} +1 -1
- package/dist/{meta-BMwx3ExI.d.ts → meta-CtDjj7cU.d.ts} +1 -1
- package/dist/{node-BVV7G1bq.d.cts → node-8qx0kgYt.d.cts} +49 -1
- package/dist/{node-BVV7G1bq.d.ts → node-8qx0kgYt.d.ts} +49 -1
- package/dist/{observable-BrUAPeH_.d.cts → observable-B6Ba-TTI.d.cts} +1 -1
- package/dist/{observable-ITikPXz3.d.ts → observable-DOniYM2B.d.ts} +1 -1
- package/dist/patterns/ai/browser.cjs +5 -5
- package/dist/patterns/ai/browser.d.cts +4 -4
- package/dist/patterns/ai/browser.d.ts +4 -4
- package/dist/patterns/ai/browser.js +1 -1
- package/dist/patterns/ai/index.cjs +19 -19
- package/dist/patterns/ai/index.d.cts +16 -16
- package/dist/patterns/ai/index.d.ts +16 -16
- package/dist/patterns/ai/index.js +1 -1
- package/dist/patterns/ai/node.cjs +2 -2
- package/dist/patterns/ai/node.d.cts +4 -4
- package/dist/patterns/ai/node.d.ts +4 -4
- 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 +3 -3
- 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 +6 -6
- package/dist/patterns/demo-shell/index.d.cts +5 -5
- package/dist/patterns/demo-shell/index.d.ts +5 -5
- package/dist/patterns/demo-shell/index.js +1 -1
- package/dist/patterns/domain-templates/index.cjs +6 -6
- package/dist/patterns/domain-templates/index.d.cts +4 -4
- package/dist/patterns/domain-templates/index.d.ts +4 -4
- package/dist/patterns/domain-templates/index.js +1 -1
- package/dist/patterns/graphspec/index.cjs +8 -8
- package/dist/patterns/graphspec/index.d.cts +5 -5
- package/dist/patterns/graphspec/index.d.ts +5 -5
- 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 +11 -10
- package/dist/patterns/harness/index.d.ts +11 -10
- 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 +5 -5
- package/dist/patterns/lens/index.d.cts +6 -6
- package/dist/patterns/lens/index.d.ts +6 -6
- package/dist/patterns/lens/index.js +1 -1
- package/dist/patterns/memory/index.cjs +4 -4
- package/dist/patterns/memory/index.d.cts +4 -4
- package/dist/patterns/memory/index.d.ts +4 -4
- package/dist/patterns/memory/index.js +1 -1
- package/dist/patterns/messaging/index.cjs +4 -4
- 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 +5 -5
- package/dist/patterns/orchestration/index.d.ts +5 -5
- package/dist/patterns/orchestration/index.js +1 -1
- package/dist/patterns/reactive-layout/index.cjs +1 -1
- package/dist/patterns/reactive-layout/index.d.cts +5 -5
- package/dist/patterns/reactive-layout/index.d.ts +5 -5
- package/dist/patterns/reactive-layout/index.js +1 -1
- package/dist/patterns/reduction/index.cjs +1 -1
- package/dist/patterns/reduction/index.d.cts +4 -4
- package/dist/patterns/reduction/index.d.ts +4 -4
- package/dist/patterns/reduction/index.js +1 -1
- package/dist/patterns/refine-loop/index.cjs +7 -7
- 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 +6 -6
- package/dist/patterns/resilient-pipeline/index.d.ts +6 -6
- package/dist/patterns/resilient-pipeline/index.js +1 -1
- package/dist/patterns/surface/index.cjs +7 -7
- package/dist/patterns/surface/index.d.cts +6 -6
- package/dist/patterns/surface/index.d.ts +6 -6
- package/dist/patterns/surface/index.js +1 -1
- package/dist/{reactive-layout-Bq0rA2Wb.d.ts → reactive-layout-DBJ3Vz-m.d.ts} +2 -2
- package/dist/{reactive-layout-Dhhe54Oj.d.cts → reactive-layout-Dk9AOQb_.d.cts} +2 -2
- package/dist/{reactive-log-5jFeNRmd.d.cts → reactive-log-CWC7jO4J.d.cts} +1 -1
- package/dist/{reactive-log-BOJDCI5x.d.ts → reactive-log-CqaBg8nf.d.ts} +1 -1
- package/dist/{reactive-map-IJIfZxoh.d.cts → reactive-map-Cm89Hk0c.d.cts} +1 -1
- package/dist/{reactive-map-CtRaCddO.d.ts → reactive-map-LjwjcFaW.d.ts} +1 -1
- package/dist/{resilience-IVNDYORD.js → resilience-7UZHSSGC.js} +1 -1
- package/dist/{resilience-Q6Bt_7y0.d.cts → resilience-N_VtLf7W.d.cts} +1 -1
- package/dist/{resilience-CludlzcP.d.ts → resilience-RjDIHZNZ.d.ts} +1 -1
- package/dist/{sugar-BHbAACDG.d.ts → sugar-CQkn_rxB.d.ts} +1 -1
- package/dist/{sugar-CqR6DJ7v.d.cts → sugar-DVEYhR7a.d.cts} +1 -1
- package/dist/{topology-tree-CpSjvIXp.d.cts → topology-tree-BB6oJxMz.d.cts} +1 -1
- package/dist/{topology-tree-DAbCV2Yw.d.ts → topology-tree-CAFOG5S5.d.ts} +1 -1
- package/dist/{types-CdfO2QTt.d.ts → types-B2LfBvNc.d.ts} +16 -2
- package/dist/{types-BgMqbc7N.d.cts → types-Cp_4coR_.d.cts} +16 -2
- package/package.json +1 -1
- package/dist/chunk-2JNT5NDF.js +0 -61
- package/dist/chunk-2RH4QNDQ.js +0 -1
- package/dist/chunk-7AJKUA36.js +0 -1
- package/dist/chunk-LG73TUF4.js +0 -43
- package/dist/chunk-PNTBXOQ6.js +0 -5
- package/dist/chunk-ZWETYYQG.js +0 -1
|
@@ -1,9 +1,110 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { G as
|
|
1
|
+
import { NodeInput } from './extra/sources.cjs';
|
|
2
|
+
import { a as Node } from './node-8qx0kgYt.cjs';
|
|
3
|
+
import { L as LLMAdapter } from './types-Cp_4coR_.cjs';
|
|
4
|
+
import { T as TopicGraph, M as MessagingHubGraph } from './index-Ccv_61jG.cjs';
|
|
5
|
+
import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-ChZvMC4M.cjs';
|
|
6
|
+
import { G as Graph, s as GraphProfileResult, r as GraphProfileOptions } from './graph-DaoydJ_u.cjs';
|
|
7
|
+
import { G as GateController } from './index-C2Dey3L-.cjs';
|
|
8
|
+
import { J as JobQueueGraph } from './index-ClJUZAOr.cjs';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Strategy model and priority scoring (roadmap §9.0).
|
|
12
|
+
*
|
|
13
|
+
* Pure-computation derived nodes — no LLM, no async.
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/** Snapshot shape for the strategy model node. */
|
|
19
|
+
type StrategySnapshot = ReadonlyMap<StrategyKey, StrategyEntry>;
|
|
20
|
+
/** Bundle returned by {@link strategyModel}. */
|
|
21
|
+
interface StrategyModelBundle {
|
|
22
|
+
/** Reactive node — current strategy map. */
|
|
23
|
+
readonly node: Node<StrategySnapshot>;
|
|
24
|
+
/** Record a completed issue (success or failure). */
|
|
25
|
+
record(rootCause: RootCause, intervention: Intervention, success: boolean): void;
|
|
26
|
+
/** Look up effectiveness for a specific pair. */
|
|
27
|
+
lookup(rootCause: RootCause, intervention: Intervention): StrategyEntry | undefined;
|
|
28
|
+
/** Tear down internal keepalive subscriptions. */
|
|
29
|
+
dispose(): void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create a strategy model that tracks `rootCause × intervention → successRate`
|
|
33
|
+
* over completed issues. Pure derived computation — no LLM.
|
|
34
|
+
*
|
|
35
|
+
* The model feeds back into TRIAGE for routing hints.
|
|
36
|
+
*/
|
|
37
|
+
declare function strategyModel(): StrategyModelBundle;
|
|
38
|
+
/**
|
|
39
|
+
* Create a priority scoring derived node for a single triaged item.
|
|
40
|
+
*
|
|
41
|
+
* Combines severity weight, attention decay, strategy model effectiveness,
|
|
42
|
+
* and an optional external urgency signal.
|
|
43
|
+
*
|
|
44
|
+
* **Age sampling caveat.** The `ageSeconds` term is computed as
|
|
45
|
+
* `monotonicNs() - lastInteractionNs.cache` at *each reactive update*. If
|
|
46
|
+
* nothing upstream settles, the score node does not recompute — so a
|
|
47
|
+
* long-idle queue may show a stale score. Pass a `fromTimer(...)`-driven
|
|
48
|
+
* node as a dep (or re-emit on `lastInteractionNs`) when live age decay
|
|
49
|
+
* matters.
|
|
50
|
+
*
|
|
51
|
+
* **Not the same as `TriagedItem.priority`.** The LLM-emitted
|
|
52
|
+
* `priority: 0..100` field on each triaged item is decorative today — the
|
|
53
|
+
* queue consumption order ignores it (tracked in `docs/optimizations.md`
|
|
54
|
+
* as a priority-ordered queue enhancement). This function computes an
|
|
55
|
+
* orthogonal reactive score; it does NOT override the LLM's per-item
|
|
56
|
+
* priority, nor does it drive queue ordering. Wire it to
|
|
57
|
+
* `HarnessGraph.priorityScores` to surface per-route pressure.
|
|
58
|
+
*
|
|
59
|
+
* @param item - Node holding the triaged item.
|
|
60
|
+
* @param strategy - Strategy model node.
|
|
61
|
+
* @param lastInteractionNs - Node holding the monotonic timestamp (ns) of last human interaction.
|
|
62
|
+
* @param urgency - Optional external urgency signal node (0–1 scale).
|
|
63
|
+
* @param signals - Configurable scoring parameters.
|
|
64
|
+
*/
|
|
65
|
+
declare function priorityScore(item: Node<TriagedItem>, strategy: Node<StrategySnapshot>, lastInteractionNs: Node<number>, urgency?: Node<number>, signals?: PrioritySignals): Node<number>;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Harness runtime defaults (roadmap §9.0).
|
|
69
|
+
*
|
|
70
|
+
* Split out from `types.ts` in Wave B Unit 15 G so the type file holds
|
|
71
|
+
* only type declarations and plug-in contracts. Runtime constants and
|
|
72
|
+
* helpers live here; the harness barrel (`index.ts`) re-exports both so
|
|
73
|
+
* external consumers see a single surface.
|
|
74
|
+
*
|
|
75
|
+
* @module
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
/** Ordered queue route names for iteration. */
|
|
79
|
+
declare const QUEUE_NAMES: readonly QueueRoute[];
|
|
80
|
+
/** Default queue configurations. */
|
|
81
|
+
declare const DEFAULT_QUEUE_CONFIGS: Record<QueueRoute, QueueConfig>;
|
|
82
|
+
/** Default severity weights. */
|
|
83
|
+
declare const DEFAULT_SEVERITY_WEIGHTS: Record<Severity, number>;
|
|
84
|
+
/** Default decay rate: ~7-day half-life. */
|
|
85
|
+
declare const DEFAULT_DECAY_RATE: number;
|
|
86
|
+
/** Canonical `${RootCause}→${Intervention}` join char; used by the `StrategyKey` template literal. */
|
|
87
|
+
declare function strategyKey(rootCause: RootCause, intervention: Intervention): StrategyKey;
|
|
88
|
+
/** Default error classifier: parse/config errors are self-correctable. */
|
|
89
|
+
declare const defaultErrorClassifier: ErrorClassifier;
|
|
90
|
+
/** Default TRIAGE prompt — LLM classifies intake items into root-cause + intervention + route + priority. */
|
|
91
|
+
declare const DEFAULT_TRIAGE_PROMPT = "You are a triage classifier for a reactive collaboration harness.\n\nGiven an intake item, classify it and output JSON:\n{\n \"rootCause\": \"composition\" | \"missing-fn\" | \"bad-docs\" | \"schema-gap\" | \"regression\" | \"unknown\",\n \"intervention\": \"template\" | \"catalog-fn\" | \"docs\" | \"wrapper\" | \"schema-change\" | \"investigate\",\n \"route\": \"auto-fix\" | \"needs-decision\" | \"investigation\" | \"backlog\",\n \"priority\": <number 0-100>,\n \"triageReasoning\": \"<one sentence>\"\n}\n\nStrategy model (past effectiveness):\n{{strategy}}\n\nIntake item:\n{{item}}";
|
|
92
|
+
/** Default EXECUTE prompt — LLM produces a fix given a triaged issue. */
|
|
93
|
+
declare const DEFAULT_EXECUTE_PROMPT = "You are an implementation agent.\n\nGiven a triaged issue with root cause and intervention type, produce a fix.\n\nIssue:\n{{item}}\n\nOutput JSON:\n{\n \"outcome\": \"success\" | \"failure\" | \"partial\",\n \"detail\": \"<description of what was done or what failed>\"\n}";
|
|
94
|
+
/** Default VERIFY prompt — LLM reviews an execution result against the original issue. */
|
|
95
|
+
declare const DEFAULT_VERIFY_PROMPT = "You are a QA reviewer.\n\nGiven an execution result, verify whether the fix is correct.\n\nExecution:\n{{execution}}\n\nOriginal issue:\n{{item}}\n\nOutput JSON:\n{\n \"verified\": true/false,\n \"findings\": [\"<finding1>\", ...],\n \"errorClass\": \"self-correctable\" | \"structural\" // only if verified=false\n}";
|
|
96
|
+
/**
|
|
97
|
+
* Collapse the `string | ((input: In) => string) | undefined` prompt-template
|
|
98
|
+
* pattern into a single `(input: In) => string`. A function `raw` is used as-is
|
|
99
|
+
* (the caller opted into full control). Otherwise `raw ?? fallbackTemplate`
|
|
100
|
+
* is fed through `substitute`, which does the placeholder replacement.
|
|
101
|
+
*
|
|
102
|
+
* Used by the three harness stages (TRIAGE / EXECUTE / VERIFY), which each
|
|
103
|
+
* accept a `string | function` config but use different placeholder schemes
|
|
104
|
+
* (`{{item}}`, `{{execution}}`, `{{strategy}}`). The helper absorbs only the
|
|
105
|
+
* branch logic; the per-stage placeholder substitution lives at the call site.
|
|
106
|
+
*/
|
|
107
|
+
declare function resolvePromptFn<In>(raw: string | ((input: In) => string) | undefined, fallbackTemplate: string, substitute: (template: string, input: In) => string): (input: In) => string;
|
|
7
108
|
|
|
8
109
|
/**
|
|
9
110
|
* Harness wiring types (roadmap §9.0).
|
|
@@ -12,26 +113,39 @@ import { G as GateController } from './index-eYHRkoK-.js';
|
|
|
12
113
|
* gate, execute, verify, reflect. These types are intentionally domain-agnostic
|
|
13
114
|
* — the harness loop is not specific to eval workflows.
|
|
14
115
|
*
|
|
116
|
+
* Runtime constants and helpers live in `./defaults.ts`. The harness barrel
|
|
117
|
+
* (`./index.ts`) re-exports both so external consumers see a single surface.
|
|
118
|
+
*
|
|
15
119
|
* @module
|
|
16
120
|
*/
|
|
17
121
|
|
|
18
|
-
/**
|
|
19
|
-
type
|
|
122
|
+
/** Known intake source tags. */
|
|
123
|
+
type KnownIntakeSource = "eval" | "test" | "human" | "code-change" | "hypothesis" | "parity";
|
|
124
|
+
/**
|
|
125
|
+
* Sources that can produce intake items. Open union — the known tags
|
|
126
|
+
* retain IDE autocomplete while user-supplied strings (e.g. `"schema"`,
|
|
127
|
+
* `"slack"`) pass through without a type change.
|
|
128
|
+
*/
|
|
129
|
+
type IntakeSource = KnownIntakeSource | (string & {});
|
|
20
130
|
/** Severity levels for intake items. */
|
|
21
131
|
type Severity = "critical" | "high" | "medium" | "low";
|
|
22
132
|
/** Root cause categories for triage classification. */
|
|
23
133
|
type RootCause = "composition" | "missing-fn" | "bad-docs" | "schema-gap" | "regression" | "unknown";
|
|
24
134
|
/** Intervention types that address root causes. */
|
|
25
135
|
type Intervention = "template" | "catalog-fn" | "docs" | "wrapper" | "schema-change" | "investigate";
|
|
26
|
-
/** Routing destinations after triage. */
|
|
136
|
+
/** Routing destinations after triage. Closed union — iterated via `QUEUE_NAMES`. */
|
|
27
137
|
type QueueRoute = "auto-fix" | "needs-decision" | "investigation" | "backlog";
|
|
28
|
-
/** Ordered queue route names for iteration. */
|
|
29
|
-
declare const QUEUE_NAMES: readonly QueueRoute[];
|
|
30
138
|
/**
|
|
31
139
|
* An item entering the harness loop via the INTAKE stage.
|
|
32
140
|
*
|
|
33
141
|
* All intake sources produce this uniform shape — the intake topic
|
|
34
142
|
* doesn't care where items came from.
|
|
143
|
+
*
|
|
144
|
+
* `$`-prefix keys (`$reingestions`, `$retries` on {@link TriagedItem}) are
|
|
145
|
+
* framework-only — an LLM round-tripping the serialized item is far less
|
|
146
|
+
* likely to echo back a `$`-prefixed key than an `_`-prefixed one, which
|
|
147
|
+
* neutralizes the field-collision class that surfaced earlier in the
|
|
148
|
+
* router's spread order.
|
|
35
149
|
*/
|
|
36
150
|
interface IntakeItem {
|
|
37
151
|
source: IntakeSource;
|
|
@@ -42,7 +156,7 @@ interface IntakeItem {
|
|
|
42
156
|
severity?: Severity;
|
|
43
157
|
relatedTo?: string[];
|
|
44
158
|
/** Item-carried reingestion count. Incremented on each full-loop reingestion. */
|
|
45
|
-
|
|
159
|
+
$reingestions?: number;
|
|
46
160
|
}
|
|
47
161
|
/** Output of the TRIAGE stage — enriched intake item with classification. */
|
|
48
162
|
interface TriagedItem extends IntakeItem {
|
|
@@ -52,7 +166,7 @@ interface TriagedItem extends IntakeItem {
|
|
|
52
166
|
priority: number;
|
|
53
167
|
triageReasoning?: string;
|
|
54
168
|
/** Item-carried retry count. Incremented on each fast-retry pass. */
|
|
55
|
-
|
|
169
|
+
$retries?: number;
|
|
56
170
|
}
|
|
57
171
|
/** Effectiveness record for a rootCause→intervention pair. */
|
|
58
172
|
interface StrategyEntry {
|
|
@@ -64,9 +178,15 @@ interface StrategyEntry {
|
|
|
64
178
|
}
|
|
65
179
|
/** Key format: `${rootCause}→${intervention}`. */
|
|
66
180
|
type StrategyKey = `${RootCause}→${Intervention}`;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
181
|
+
/**
|
|
182
|
+
* LLM output shape from the EXECUTE stage (partial — lacks `item`).
|
|
183
|
+
*
|
|
184
|
+
* Generic over the artifact type `A` so typed executors like
|
|
185
|
+
* `refineExecutor<T>` can flow `T` through to an `evalVerifier<T>` without
|
|
186
|
+
* the caller casting `artifact` at the boundary. Defaults to `unknown`
|
|
187
|
+
* for escape-hatch executors that carry opaque state.
|
|
188
|
+
*/
|
|
189
|
+
type ExecuteOutput<A = unknown> = {
|
|
70
190
|
outcome: "success" | "failure" | "partial";
|
|
71
191
|
detail: string;
|
|
72
192
|
/**
|
|
@@ -76,10 +196,10 @@ type ExecuteOutput = {
|
|
|
76
196
|
* this — it's an escape hatch for reactive executors carrying structured
|
|
77
197
|
* output (a refined prompt, a patched spec, a generated template, ...).
|
|
78
198
|
*/
|
|
79
|
-
artifact?:
|
|
199
|
+
artifact?: A;
|
|
80
200
|
};
|
|
81
201
|
/** Full execution result assembled downstream (LLM output + context). */
|
|
82
|
-
interface ExecutionResult {
|
|
202
|
+
interface ExecutionResult<A = unknown> {
|
|
83
203
|
item: TriagedItem;
|
|
84
204
|
outcome: "success" | "failure" | "partial";
|
|
85
205
|
detail: string;
|
|
@@ -88,18 +208,16 @@ interface ExecutionResult {
|
|
|
88
208
|
* one. Reactive executors like `refineExecutor` populate this; LLM-backed
|
|
89
209
|
* default executors leave it undefined.
|
|
90
210
|
*/
|
|
91
|
-
artifact?:
|
|
211
|
+
artifact?: A;
|
|
92
212
|
}
|
|
93
213
|
/** Whether an error is self-correctable (fast-retry) or structural (full loop). */
|
|
94
214
|
type ErrorClass = "self-correctable" | "structural";
|
|
95
215
|
/** Classifier for fast-retry path. */
|
|
96
216
|
type ErrorClassifier = (result: ExecutionResult) => ErrorClass;
|
|
97
|
-
/** Default error classifier: parse/config errors are self-correctable. */
|
|
98
|
-
declare function defaultErrorClassifier(result: ExecutionResult): ErrorClass;
|
|
99
217
|
/** Result of the VERIFY stage. */
|
|
100
|
-
interface VerifyResult {
|
|
218
|
+
interface VerifyResult<A = unknown> {
|
|
101
219
|
item: TriagedItem;
|
|
102
|
-
execution: ExecutionResult
|
|
220
|
+
execution: ExecutionResult<A>;
|
|
103
221
|
verified: boolean;
|
|
104
222
|
findings: string[];
|
|
105
223
|
errorClass?: ErrorClass;
|
|
@@ -125,24 +243,19 @@ interface PrioritySignals {
|
|
|
125
243
|
/** Strategy model effectiveness boost amount (default 15). */
|
|
126
244
|
effectivenessBoost?: number;
|
|
127
245
|
}
|
|
128
|
-
|
|
129
|
-
declare const DEFAULT_SEVERITY_WEIGHTS: Record<Severity, number>;
|
|
130
|
-
/** Default decay rate: ~7-day half-life. */
|
|
131
|
-
declare const DEFAULT_DECAY_RATE: number;
|
|
246
|
+
|
|
132
247
|
/** Per-queue configuration in the harness loop. */
|
|
133
248
|
interface QueueConfig {
|
|
134
249
|
/** Whether this queue is gated (requires human approval). */
|
|
135
250
|
gated: boolean;
|
|
136
251
|
/** Maximum pending items in the gate (default Infinity). */
|
|
137
252
|
maxPending?: number;
|
|
138
|
-
/** Start the gate in open (auto-approve) mode? */
|
|
253
|
+
/** Start the gate in open (auto-approve) mode? Only meaningful when `gated: true`. */
|
|
139
254
|
startOpen?: boolean;
|
|
140
255
|
}
|
|
141
|
-
/** Default queue configurations. */
|
|
142
|
-
declare const DEFAULT_QUEUE_CONFIGS: Record<QueueRoute, QueueConfig>;
|
|
143
256
|
/**
|
|
144
257
|
* Pluggable EXECUTE slot. Given the reactive `executeInput` stream of
|
|
145
|
-
* triaged items, produce a stream of `ExecuteOutput
|
|
258
|
+
* triaged items, produce a stream of `ExecuteOutput<A>` decisions.
|
|
146
259
|
*
|
|
147
260
|
* **Contract** (see design note in `docs/optimizations.md` / session log):
|
|
148
261
|
* 1. Emit DATA exactly once per completed execution — not on input arrival.
|
|
@@ -157,50 +270,72 @@ declare const DEFAULT_QUEUE_CONFIGS: Record<QueueRoute, QueueConfig>;
|
|
|
157
270
|
*
|
|
158
271
|
* `refineExecutor` makes all four rules structurally unreachable.
|
|
159
272
|
*/
|
|
160
|
-
type HarnessExecutor = (input: Node<TriagedItem | null>) => Node<ExecuteOutput | null>;
|
|
273
|
+
type HarnessExecutor<A = unknown> = (input: Node<TriagedItem | null>) => Node<ExecuteOutput<A> | null>;
|
|
161
274
|
/**
|
|
162
|
-
* Pluggable VERIFY slot. Receives `[executeOutput, triagedItem]`
|
|
163
|
-
*
|
|
164
|
-
* `
|
|
275
|
+
* Pluggable VERIFY slot. Receives a pre-paired `[executeOutput, triagedItem]`
|
|
276
|
+
* context node — the harness creates this via `withLatestFrom(executeNode,
|
|
277
|
+
* executeInput)` once and shares it with both the verifier and the internal
|
|
278
|
+
* fast-retry dispatcher, so verifier implementations do NOT need to build
|
|
279
|
+
* their own pairing node (and doubling the `withLatestFrom` would pay the
|
|
280
|
+
* subscription cost twice).
|
|
165
281
|
*
|
|
166
282
|
* Same contract rules 1–3 as {@link HarnessExecutor}. Rule 4 does not
|
|
167
283
|
* apply (verify output isn't a primary to a further withLatestFrom).
|
|
168
284
|
*
|
|
169
285
|
* `evalVerifier` handles the re-evaluation case against affected eval tasks.
|
|
170
286
|
*/
|
|
171
|
-
type HarnessVerifier = (context: Node<[ExecuteOutput | null, TriagedItem | null]>) => Node<VerifyOutput | null>;
|
|
287
|
+
type HarnessVerifier<A = unknown> = (context: Node<readonly [ExecuteOutput<A> | null, TriagedItem | null] | null>) => Node<VerifyOutput | null>;
|
|
288
|
+
/** Triage prompt callable shape — pair of `[intake item, strategy snapshot]`. */
|
|
289
|
+
type TriagePromptFn = (pair: readonly [IntakeItem, StrategySnapshot]) => string;
|
|
290
|
+
/** Execute prompt callable shape. */
|
|
291
|
+
type ExecutePromptFn = (item: TriagedItem) => string;
|
|
292
|
+
/** Verify prompt callable shape — pair of `[execute output, triaged item]`. */
|
|
293
|
+
type VerifyPromptFn<A = unknown> = (pair: readonly [ExecuteOutput<A> | null, TriagedItem | null]) => string;
|
|
172
294
|
/** Options for {@link harnessLoop}. */
|
|
173
|
-
interface HarnessLoopOptions {
|
|
295
|
+
interface HarnessLoopOptions<A = unknown> {
|
|
174
296
|
/** LLM adapter for promptNode-based stages (triage + any default executor/verifier). */
|
|
175
|
-
adapter:
|
|
176
|
-
/** Custom triage prompt (receives IntakeItem + strategy
|
|
177
|
-
triagePrompt?: string |
|
|
297
|
+
adapter: LLMAdapter;
|
|
298
|
+
/** Custom triage prompt (receives IntakeItem + strategy snapshot as a tuple). */
|
|
299
|
+
triagePrompt?: string | TriagePromptFn;
|
|
178
300
|
/**
|
|
179
301
|
* Execute prompt — sugar over the default LLM executor. Ignored when
|
|
180
302
|
* `executor` is set.
|
|
181
303
|
*/
|
|
182
|
-
executePrompt?: string |
|
|
304
|
+
executePrompt?: string | ExecutePromptFn;
|
|
183
305
|
/**
|
|
184
306
|
* Verify prompt — sugar over the default LLM verifier. Ignored when
|
|
185
307
|
* `verifier` is set.
|
|
186
308
|
*/
|
|
187
|
-
verifyPrompt?: string |
|
|
309
|
+
verifyPrompt?: string | VerifyPromptFn<A>;
|
|
188
310
|
/**
|
|
189
311
|
* Pluggable EXECUTE slot. When omitted, the harness uses a `promptNode`
|
|
190
312
|
* driven by `adapter` + `executePrompt`. Replace to plug in a
|
|
191
313
|
* `refineExecutor`, tool-using agent, or any reactive execution pipeline.
|
|
192
314
|
*/
|
|
193
|
-
executor?: HarnessExecutor
|
|
315
|
+
executor?: HarnessExecutor<A>;
|
|
194
316
|
/**
|
|
195
317
|
* Pluggable VERIFY slot. When omitted, the harness uses a `promptNode`
|
|
196
318
|
* driven by `adapter` + `verifyPrompt`. Replace to plug in an
|
|
197
319
|
* `evalVerifier` that re-runs affected eval tasks.
|
|
198
320
|
*/
|
|
199
|
-
verifier?: HarnessVerifier
|
|
321
|
+
verifier?: HarnessVerifier<A>;
|
|
200
322
|
/** Per-queue configuration overrides. */
|
|
201
323
|
queues?: Partial<Record<QueueRoute, QueueConfig>>;
|
|
202
324
|
/** Priority scoring signals. */
|
|
203
325
|
priority?: PrioritySignals;
|
|
326
|
+
/**
|
|
327
|
+
* Reactive last-human-interaction timestamp (monotonic ns). Drives the
|
|
328
|
+
* priority score age-decay term for `HarnessGraph.priorityScores`.
|
|
329
|
+
*
|
|
330
|
+
* **Required when `opts.priority` is set.** Priority score nodes only
|
|
331
|
+
* re-derive when `topic.latest`, `strategy.node`, or this tick settles —
|
|
332
|
+
* an idle queue would freeze its age at construction time if we
|
|
333
|
+
* auto-defaulted. Typical sources:
|
|
334
|
+
* - `fromTimer(60_000)` — steady tick, uniform decay.
|
|
335
|
+
* - `state(monotonicNs())` — bumped from a human-interaction handler.
|
|
336
|
+
* - A reactive view over a DB column / external metrics source.
|
|
337
|
+
*/
|
|
338
|
+
lastInteractionNs?: Node<number>;
|
|
204
339
|
/** Error classifier for fast-retry path. */
|
|
205
340
|
errorClassifier?: ErrorClassifier;
|
|
206
341
|
/** Max fast-retries per item before routing to full intake (default 2). */
|
|
@@ -215,6 +350,226 @@ interface HarnessLoopOptions {
|
|
|
215
350
|
retainedLimit?: number;
|
|
216
351
|
}
|
|
217
352
|
|
|
353
|
+
/**
|
|
354
|
+
* actuatorExecutor — bridge a side-effecting actuator into the harness EXECUTE slot.
|
|
355
|
+
*
|
|
356
|
+
* `refineExecutor` covers the artifact-typed case (refine a candidate
|
|
357
|
+
* `T` against an evaluator); `actuatorExecutor` covers the side-effecting
|
|
358
|
+
* case (write a catalog entry, mutate a template registry, edit a doc on
|
|
359
|
+
* disk). The user's `apply` callback owns the side effect; the executor
|
|
360
|
+
* wraps it in the per-item lifecycle that makes the four
|
|
361
|
+
* {@link HarnessExecutor} contract rules structurally unreachable:
|
|
362
|
+
*
|
|
363
|
+
* 1. **One DATA per actuation.** The inner producer captures the first
|
|
364
|
+
* DATA from the bridged `apply` result, emits a single
|
|
365
|
+
* `ExecuteOutput<R>` carrying the actuation record as `artifact`, and
|
|
366
|
+
* completes. Subsequent inner DATAs are ignored.
|
|
367
|
+
* 2. **Cancel-on-supersede.** A new triaged item supersedes via
|
|
368
|
+
* `switchMap`; the prior producer's cleanup fires `ac.abort()`, which
|
|
369
|
+
* propagates into `apply`'s `signal` (and through `fromAny`'s
|
|
370
|
+
* internal cancellation hooks) so signal-aware actuators stop
|
|
371
|
+
* in-flight work instead of double-writing.
|
|
372
|
+
* 3. **Item via deps, not closure mirror.** The triaged item is captured
|
|
373
|
+
* in the `switchMap` callback's lexical scope, not mirrored to a
|
|
374
|
+
* side-state node — same shape as `refineExecutor`.
|
|
375
|
+
* 4. **Fires on result, not input.** The producer emits exactly when
|
|
376
|
+
* `apply`'s bridged node settles (or fails). Input-arrival waves
|
|
377
|
+
* never produce an `ExecuteOutput`.
|
|
378
|
+
*
|
|
379
|
+
* **What `apply` may return.** Anything `fromAny` accepts: a
|
|
380
|
+
* `Promise<R>`, a `Node<R>`, an `AsyncIterable<R>`, an `Iterable<R>`,
|
|
381
|
+
* or a synchronous `R`. `Promise<R>` is the typical shape (`writeFile`,
|
|
382
|
+
* `fetch`, `db.execute`); reactive composition through `Node<R>` is the
|
|
383
|
+
* escape hatch when the actuator itself wants to surface intermediate
|
|
384
|
+
* progress before settling.
|
|
385
|
+
*
|
|
386
|
+
* **Pairing with `evalVerifier`.** `ExecuteOutput.artifact` is set to
|
|
387
|
+
* the actuation record; an `evalVerifier<R>` whose `extractArtifact`
|
|
388
|
+
* returns the record (or a transform of it — typically the post-apply
|
|
389
|
+
* world state needed by the evaluator) closes the EXECUTE → VERIFY loop
|
|
390
|
+
* with consistent typing end-to-end.
|
|
391
|
+
*
|
|
392
|
+
* @module
|
|
393
|
+
*/
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* What an actuator's `apply` may return. Mirrors `NodeInput<R>` plus a
|
|
397
|
+
* raw `R` for synchronous side effects, so callers can write the most
|
|
398
|
+
* direct shape for their case (Promise for async I/O, raw record for
|
|
399
|
+
* pure in-memory mutation).
|
|
400
|
+
*/
|
|
401
|
+
type ActuatorResult<R> = NodeInput<R>;
|
|
402
|
+
/** Configuration for {@link actuatorExecutor}. */
|
|
403
|
+
interface ActuatorExecutorConfig<R> {
|
|
404
|
+
/**
|
|
405
|
+
* Apply the side effect for this triaged item. Receives the abort
|
|
406
|
+
* signal — actuators that own real I/O should thread `signal` into
|
|
407
|
+
* `fetch`, `fs.writeFile`, child-process kills, etc. so that
|
|
408
|
+
* `switchMap` supersede actually cancels in-flight work.
|
|
409
|
+
*
|
|
410
|
+
* The first DATA emitted by the bridged result wins; later DATAs are
|
|
411
|
+
* discarded. ERROR (or a synchronous throw) is mapped via `onError`.
|
|
412
|
+
*/
|
|
413
|
+
apply: (item: TriagedItem, opts: {
|
|
414
|
+
signal: AbortSignal;
|
|
415
|
+
}) => ActuatorResult<R>;
|
|
416
|
+
/**
|
|
417
|
+
* Optional gate — when provided and returning `false`, the actuator
|
|
418
|
+
* is skipped and the executor emits an `ExecuteOutput` with
|
|
419
|
+
* `outcome: "failure"` and detail from `skipDetail` (default
|
|
420
|
+
* `"actuator skipped (shouldApply returned false)"`). Use this to
|
|
421
|
+
* route interventions the actuator can't handle (e.g. `intervention:
|
|
422
|
+
* "investigate"` items) into the failure path so the verifier sees
|
|
423
|
+
* them.
|
|
424
|
+
*/
|
|
425
|
+
shouldApply?: (item: TriagedItem) => boolean;
|
|
426
|
+
/** Detail string for the skip path. Default: includes intervention name. */
|
|
427
|
+
skipDetail?: (item: TriagedItem) => string;
|
|
428
|
+
/**
|
|
429
|
+
* Map a successfully-applied actuation record into an `ExecuteOutput<R>`.
|
|
430
|
+
* Default: `outcome: "success"`, `detail` references the intervention
|
|
431
|
+
* + summary, `artifact: record`.
|
|
432
|
+
*/
|
|
433
|
+
toOutput?: (record: R, item: TriagedItem) => ExecuteOutput<R>;
|
|
434
|
+
/**
|
|
435
|
+
* Map a thrown / ERROR result into an `ExecuteOutput<R>`. Default:
|
|
436
|
+
* `outcome: "failure"`, `detail` carries the error message,
|
|
437
|
+
* `artifact: undefined`.
|
|
438
|
+
*/
|
|
439
|
+
onError?: (err: unknown, item: TriagedItem) => ExecuteOutput<R>;
|
|
440
|
+
/** Node name prefix for `describe()` introspection. Default `"actuator-executor"`. */
|
|
441
|
+
name?: string;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Build a {@link HarnessExecutor} backed by a side-effecting actuator.
|
|
445
|
+
*
|
|
446
|
+
* @example File-system actuator that writes a catalog entry and emits the diff.
|
|
447
|
+
* ```ts
|
|
448
|
+
* const harness = harnessLoop("repair", {
|
|
449
|
+
* adapter,
|
|
450
|
+
* executor: actuatorExecutor<CatalogPatch>({
|
|
451
|
+
* async apply(item, { signal }) {
|
|
452
|
+
* const patch = patchFromItem(item);
|
|
453
|
+
* await fs.writeFile(patch.path, patch.contents, { signal });
|
|
454
|
+
* return patch;
|
|
455
|
+
* },
|
|
456
|
+
* shouldApply: (item) => item.intervention === "catalog-fn",
|
|
457
|
+
* }),
|
|
458
|
+
* verifier: evalVerifier<CatalogPatch>({
|
|
459
|
+
* evaluator,
|
|
460
|
+
* datasetFor,
|
|
461
|
+
* extractArtifact: (exec) => exec.artifact ?? null,
|
|
462
|
+
* }),
|
|
463
|
+
* });
|
|
464
|
+
* ```
|
|
465
|
+
*/
|
|
466
|
+
declare function actuatorExecutor<R>(config: ActuatorExecutorConfig<R>): HarnessExecutor<R>;
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* autoSolidify — promote successful VERIFY runs into a durable artifact
|
|
470
|
+
* (catalog entry, skill, template, doc edit, …).
|
|
471
|
+
*
|
|
472
|
+
* Closes the dogfood retrospective loop: when the harness's VERIFY
|
|
473
|
+
* stage reports `verified: true`, the validated intervention should
|
|
474
|
+
* become an authoring artifact the next loop run can rely on. This
|
|
475
|
+
* primitive is the generic substrate — pass a `write` callback that
|
|
476
|
+
* does the actual promotion (e.g. `overlay.upsertTemplate` for the
|
|
477
|
+
* dogfood catalog overlay; `fs.writeFile` for a doc edit; `ctx.skill`
|
|
478
|
+
* for a Hermes-style skill registry).
|
|
479
|
+
*
|
|
480
|
+
* @example Wire the catalog overlay as the solidify target.
|
|
481
|
+
* ```ts
|
|
482
|
+
* const solidified = autoSolidify({
|
|
483
|
+
* verifyResults: harness.verifyResults.latest,
|
|
484
|
+
* extract: (vr) => vr.execution.artifact ?? null,
|
|
485
|
+
* write: (entry, vr) => overlay.upsertFn(`learned-${vr.item.summary}`, entry),
|
|
486
|
+
* });
|
|
487
|
+
* solidified.subscribe(() => {}); // keep alive for log
|
|
488
|
+
* ```
|
|
489
|
+
*
|
|
490
|
+
* **Why a node and not just an effect.** The returned `Node<R>` emits
|
|
491
|
+
* each promoted artifact, so callers can pipe solidifications through
|
|
492
|
+
* the standard reactive surface (`describe()`, `observe()`, replay
|
|
493
|
+
* buffers) instead of side-channel logging. An audit / dashboard that
|
|
494
|
+
* wants "what was learned this run?" subscribes to the returned node;
|
|
495
|
+
* the `write` callback owns the durable side effect.
|
|
496
|
+
*
|
|
497
|
+
* **Idempotency is the caller's responsibility.** The primitive
|
|
498
|
+
* promotes every `verified: true` wave that passes the predicate. If
|
|
499
|
+
* the harness re-verifies the same item (e.g. via reingestion), the
|
|
500
|
+
* `write` callback is invoked again. Wrap your write fn with a
|
|
501
|
+
* dedup-by-key guard if your target store would otherwise bloat. The
|
|
502
|
+
* inner `seen` set inside this factory is intentionally absent — the
|
|
503
|
+
* harness already retains via topic logs and the user may want
|
|
504
|
+
* re-promotion semantics that are domain-specific.
|
|
505
|
+
*
|
|
506
|
+
* @module
|
|
507
|
+
*/
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Configuration for {@link autoSolidify}.
|
|
511
|
+
*
|
|
512
|
+
* `R` is the artifact type the upstream EXECUTE stage produced (and
|
|
513
|
+
* `evalVerifier` carries through `execution.artifact`). `T` is the
|
|
514
|
+
* promotion shape — what `write` consumes and what the returned node
|
|
515
|
+
* emits. Often `T = R`, but they diverge when the actuator's raw
|
|
516
|
+
* artifact needs a transform before storing (e.g. wrap a `CatalogPatch`
|
|
517
|
+
* into a `CatalogEntry` with effectiveness metadata).
|
|
518
|
+
*/
|
|
519
|
+
interface AutoSolidifyConfig<R, T = R> {
|
|
520
|
+
/** Reactive verify-result stream. Typically `harness.verifyResults.latest`. */
|
|
521
|
+
verifyResults: Node<VerifyResult<R> | null>;
|
|
522
|
+
/**
|
|
523
|
+
* Pull the value-to-promote out of a verified VerifyResult.
|
|
524
|
+
* Default: `(vr) => vr.execution.artifact as T | null`. Return `null`
|
|
525
|
+
* to skip a particular VerifyResult even when `verified: true` (e.g.
|
|
526
|
+
* an LLM-default executor produces no artifact and there's nothing to
|
|
527
|
+
* solidify).
|
|
528
|
+
*/
|
|
529
|
+
extract?: (vr: VerifyResult<R>) => T | null;
|
|
530
|
+
/**
|
|
531
|
+
* Optional gate beyond `verified === true`. When provided, the
|
|
532
|
+
* primitive only promotes when this returns `true`. Default: pass
|
|
533
|
+
* everything verified.
|
|
534
|
+
*
|
|
535
|
+
* Useful predicates:
|
|
536
|
+
* - `(vr) => vr.item.intervention === "catalog-fn"` — only catalog work.
|
|
537
|
+
* - `(vr) => (vr.findings ?? []).every(f => !/regression/i.test(f))` —
|
|
538
|
+
* skip even-passes that mention regressions.
|
|
539
|
+
*/
|
|
540
|
+
predicate?: (vr: VerifyResult<R>) => boolean;
|
|
541
|
+
/**
|
|
542
|
+
* Promote — usually a side effect (write to overlay, fs, KG, etc.).
|
|
543
|
+
* Receives the extracted artifact AND the originating VerifyResult so
|
|
544
|
+
* the writer can use any context it needs (item summary, eval task
|
|
545
|
+
* IDs, finding text, …) when shaping the durable record.
|
|
546
|
+
*/
|
|
547
|
+
write: (artifact: T, vr: VerifyResult<R>) => void;
|
|
548
|
+
/** Node name for `describe()` introspection. Default `"auto-solidify"`. */
|
|
549
|
+
name?: string;
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Build a `Node<T>` that subscribes to `verifyResults`, filters to
|
|
553
|
+
* verified passes that produced an extractable artifact, runs `write`,
|
|
554
|
+
* and emits the artifact. Use the returned node as a subscription
|
|
555
|
+
* point for audit / dashboard / log pipelines.
|
|
556
|
+
*
|
|
557
|
+
* **Terminal-on-error semantics.** A throw from `predicate`, `extract`,
|
|
558
|
+
* or `write` surfaces as `[[ERROR]]` on the returned node and
|
|
559
|
+
* **terminates** it — the upstream subscription tears down and no
|
|
560
|
+
* further DATA is emitted. This matches the spec's terminal-frame
|
|
561
|
+
* contract for ERROR. If you want the solidify node to stay live
|
|
562
|
+
* across user-callback throws, wrap your callbacks with try/catch
|
|
563
|
+
* internally and emit a sentinel value or no-op on failure. A future
|
|
564
|
+
* non-terminal `errors: Node<unknown>` companion may surface failures
|
|
565
|
+
* without terminating the success stream — flagged as a follow-up.
|
|
566
|
+
*
|
|
567
|
+
* @returns A `Node<T>` that emits one DATA per promoted artifact.
|
|
568
|
+
* Stays live as long as `verifyResults` is live AND no user callback
|
|
569
|
+
* has thrown.
|
|
570
|
+
*/
|
|
571
|
+
declare function autoSolidify<R, T = R>(config: AutoSolidifyConfig<R, T>): Node<T>;
|
|
572
|
+
|
|
218
573
|
/**
|
|
219
574
|
* Harness bridge factories (roadmap §9.0).
|
|
220
575
|
*
|
|
@@ -423,7 +778,7 @@ declare function notifyEffect<T>(topic: TopicGraph<T>, transport: NotifyTranspor
|
|
|
423
778
|
* artifact instead of asking an LLM to opine on the fix.
|
|
424
779
|
*
|
|
425
780
|
* Pairs naturally with {@link refineExecutor}: refineExecutor emits an
|
|
426
|
-
* `ExecuteOutput
|
|
781
|
+
* `ExecuteOutput<T>.artifact` holding the converged candidate; evalVerifier
|
|
427
782
|
* pulls it out via `extractArtifact` and feeds a single-candidate batch
|
|
428
783
|
* into the same `Evaluator<T>` shape that `refineLoop` used. Consistent
|
|
429
784
|
* scoring between EXECUTE and VERIFY — no "LLM said it looks fine" gap.
|
|
@@ -463,7 +818,7 @@ interface EvalVerifierConfig<T> {
|
|
|
463
818
|
* surfaces as a runtime error inside `evaluator`, not here — supply a
|
|
464
819
|
* narrowing `extractArtifact` if you need stricter validation.
|
|
465
820
|
*/
|
|
466
|
-
extractArtifact?: (exec: ExecuteOutput
|
|
821
|
+
extractArtifact?: (exec: ExecuteOutput<T>, item: TriagedItem) => T | null | undefined;
|
|
467
822
|
/**
|
|
468
823
|
* Reactive evaluator — same contract as `refineLoop`'s `Evaluator<T>`.
|
|
469
824
|
* Typically this is the SAME evaluator configured inside `refineExecutor`
|
|
@@ -487,6 +842,12 @@ interface EvalVerifierConfig<T> {
|
|
|
487
842
|
* Build a {@link HarnessVerifier} that re-runs the eval suite against the
|
|
488
843
|
* artifact produced by EXECUTE.
|
|
489
844
|
*
|
|
845
|
+
* Consumes the shared `[executeOutput, item]` context node that the
|
|
846
|
+
* harness pre-pairs via `withLatestFrom` — no internal re-wrap here (QA
|
|
847
|
+
* round: "defaultLlmVerifier double-wraps withLatestFrom"). The harness's
|
|
848
|
+
* single `executeContextNode` is reused by both the verifier and the
|
|
849
|
+
* fast-retry dispatcher, so exec + item are subscribed once per wave.
|
|
850
|
+
*
|
|
490
851
|
* @example Pair with refineExecutor for end-to-end eval consistency.
|
|
491
852
|
* ```ts
|
|
492
853
|
* const evaluator: Evaluator<CatalogEntry> = (cands, ds) => runEval(cands, ds);
|
|
@@ -497,49 +858,57 @@ interface EvalVerifierConfig<T> {
|
|
|
497
858
|
* });
|
|
498
859
|
* ```
|
|
499
860
|
*/
|
|
500
|
-
declare function evalVerifier<T>(config: EvalVerifierConfig<T>): HarnessVerifier
|
|
501
|
-
|
|
861
|
+
declare function evalVerifier<T>(config: EvalVerifierConfig<T>): HarnessVerifier<T>;
|
|
502
862
|
/**
|
|
503
|
-
*
|
|
504
|
-
*
|
|
505
|
-
*
|
|
506
|
-
*
|
|
507
|
-
* @module
|
|
863
|
+
* Config for {@link harnessEvalPair} — the typed bundle that produces a
|
|
864
|
+
* matched `refineExecutor<T>` + `evalVerifier<T>` pair sharing one
|
|
865
|
+
* {@link Evaluator} and one `datasetFor` resolver.
|
|
508
866
|
*/
|
|
509
|
-
|
|
510
|
-
/**
|
|
511
|
-
|
|
512
|
-
/**
|
|
513
|
-
|
|
514
|
-
/**
|
|
515
|
-
|
|
516
|
-
/**
|
|
517
|
-
|
|
518
|
-
/**
|
|
519
|
-
|
|
520
|
-
/**
|
|
521
|
-
|
|
867
|
+
interface HarnessEvalPairConfig<T> {
|
|
868
|
+
/** Map a triaged item to the seed candidate. */
|
|
869
|
+
seedFrom: (item: TriagedItem) => T;
|
|
870
|
+
/** The reactive evaluator used by BOTH executor and verifier. */
|
|
871
|
+
evaluator: Evaluator<T>;
|
|
872
|
+
/** The refinement strategy (e.g. `errorCritique(teacher)`). */
|
|
873
|
+
strategy: RefineStrategy<T>;
|
|
874
|
+
/** Resolve dataset rows per triaged item. */
|
|
875
|
+
datasetFor: (item: TriagedItem) => readonly DatasetItem[];
|
|
876
|
+
/** Pass-threshold for the verifier. Default `0.5`. */
|
|
877
|
+
threshold?: number;
|
|
878
|
+
/** Convergence / budget options forwarded to each inner `refineLoop`. */
|
|
879
|
+
refine?: Omit<RefineLoopOptions, "dataset" | "name">;
|
|
880
|
+
/**
|
|
881
|
+
* Shared node-name prefix — the executor becomes `${name}-exec` and the
|
|
882
|
+
* verifier `${name}-verify` for distinct but related describe() paths.
|
|
883
|
+
* Default `"harness-pair"`.
|
|
884
|
+
*/
|
|
885
|
+
name?: string;
|
|
522
886
|
}
|
|
523
887
|
/**
|
|
524
|
-
*
|
|
525
|
-
* over completed issues. Pure derived computation — no LLM.
|
|
888
|
+
* Typed factory that returns a matched `{ executor, verifier }` pair.
|
|
526
889
|
*
|
|
527
|
-
*
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
*
|
|
890
|
+
* Prevents the "executor wrote `A`, verifier expected `B`" class of runtime
|
|
891
|
+
* cast errors — `T` is threaded through both sides, so mixing up the
|
|
892
|
+
* configuration is a compile error instead of a silent `as T` in
|
|
893
|
+
* `extractArtifact`. Shares the evaluator so EXECUTE and VERIFY score with
|
|
894
|
+
* identical semantics (the whole point of `evalVerifier`).
|
|
532
895
|
*
|
|
533
|
-
*
|
|
534
|
-
*
|
|
535
|
-
*
|
|
536
|
-
*
|
|
537
|
-
*
|
|
538
|
-
*
|
|
539
|
-
*
|
|
540
|
-
*
|
|
896
|
+
* @example
|
|
897
|
+
* ```ts
|
|
898
|
+
* const { executor, verifier } = harnessEvalPair<CatalogEntry>({
|
|
899
|
+
* seedFrom: (item) => initialCatalogEntry(item),
|
|
900
|
+
* evaluator: (cands, ds) => runEvalBatch(cands, ds),
|
|
901
|
+
* strategy: errorCritique({ teacher, width: 3 }),
|
|
902
|
+
* datasetFor: affectedTasksFor,
|
|
903
|
+
* threshold: 0.8,
|
|
904
|
+
* });
|
|
905
|
+
* const harness = harnessLoop<CatalogEntry>("repair", { adapter, executor, verifier });
|
|
906
|
+
* ```
|
|
541
907
|
*/
|
|
542
|
-
declare function
|
|
908
|
+
declare function harnessEvalPair<T>(config: HarnessEvalPairConfig<T>): {
|
|
909
|
+
executor: HarnessExecutor<T>;
|
|
910
|
+
verifier: HarnessVerifier<T>;
|
|
911
|
+
};
|
|
543
912
|
|
|
544
913
|
/**
|
|
545
914
|
* harnessLoop() factory (roadmap §9.0).
|
|
@@ -548,6 +917,15 @@ declare function priorityScore(item: Node<TriagedItem>, strategy: Node<StrategyS
|
|
|
548
917
|
* EXECUTE → VERIFY → REFLECT. Static topology, flowing data — the Kafka
|
|
549
918
|
* insight applied to human+LLM collaboration.
|
|
550
919
|
*
|
|
920
|
+
* **Hub model (Wave B Unit 20 C + Q1).** All reactive-wire-crossing topics
|
|
921
|
+
* live in one `MessagingHubGraph` exposed as `HarnessGraph.queues`: the
|
|
922
|
+
* four per-route queues, an `__unrouted` dead-letter, plus `intake`,
|
|
923
|
+
* `retry`, `verify-results`, and the `triage-output` fan-in topic. The
|
|
924
|
+
* router is a single derived/effect pair that publishes to `triage-output`;
|
|
925
|
+
* per-route `topicBridge`s fan out by `map:` predicate. Routing is data
|
|
926
|
+
* (topic name), not code — every routing decision is a visible edge in
|
|
927
|
+
* `describe()` / `explain()`.
|
|
928
|
+
*
|
|
551
929
|
* @module
|
|
552
930
|
*/
|
|
553
931
|
|
|
@@ -565,33 +943,103 @@ declare function priorityScore(item: Node<TriagedItem>, strategy: Node<StrategyS
|
|
|
565
943
|
* @param prompt - Prompt template (string or `(item) => string`). Defaults
|
|
566
944
|
* to the harness's built-in execute prompt.
|
|
567
945
|
*/
|
|
568
|
-
declare function defaultLlmExecutor(adapter: LLMAdapter, prompt?:
|
|
946
|
+
declare function defaultLlmExecutor<A = unknown>(adapter: LLMAdapter, prompt?: string | ExecutePromptFn): HarnessExecutor<A>;
|
|
569
947
|
/**
|
|
570
|
-
* Build the default VERIFY slot — a `promptNode` that reviews
|
|
571
|
-
* `[executeOutput, item]`
|
|
948
|
+
* Build the default VERIFY slot — a `promptNode` that reviews a
|
|
949
|
+
* pre-paired `[executeOutput, item]` context node. The harness creates
|
|
950
|
+
* the pairing (via `withLatestFrom(executeNode, executeInput)`) once and
|
|
951
|
+
* shares it with both the verifier and the internal fast-retry
|
|
952
|
+
* dispatcher, so the default verifier can consume the context directly
|
|
953
|
+
* without building its own withLatestFrom.
|
|
572
954
|
*
|
|
573
955
|
* @param adapter - LLMAdapter for the verify call.
|
|
574
956
|
* @param prompt - Prompt template. Defaults to the harness's built-in
|
|
575
957
|
* verify prompt (receives the full pair, extracts both).
|
|
576
958
|
*/
|
|
577
|
-
declare function defaultLlmVerifier(adapter: LLMAdapter, prompt?:
|
|
578
|
-
/**
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
959
|
+
declare function defaultLlmVerifier<A = unknown>(adapter: LLMAdapter, prompt?: string | VerifyPromptFn<A>): HarnessVerifier<A>;
|
|
960
|
+
/**
|
|
961
|
+
* The graph returned by {@link harnessLoop}. Wraps a single
|
|
962
|
+
* {@link MessagingHubGraph} that owns all reactive-wire-crossing topics
|
|
963
|
+
* (intake, per-route queues, `__unrouted`, retry, verify-results,
|
|
964
|
+
* triage-output). Sugar getters expose the canonical topics so the
|
|
965
|
+
* surface stays ergonomic.
|
|
966
|
+
*/
|
|
967
|
+
declare class HarnessGraph<A = unknown> extends Graph {
|
|
968
|
+
/** Messaging hub — the routing-data plane. Queue topics live here. */
|
|
969
|
+
readonly queues: MessagingHubGraph;
|
|
970
|
+
/**
|
|
971
|
+
* Per-route JobQueueGraph mirrors (Unit 20 D). Each triaged item that
|
|
972
|
+
* reaches a queue is also enqueued here, giving reactive `depth` +
|
|
973
|
+
* `pending` + `jobs` observables. `fastRetry` terminal decisions
|
|
974
|
+
* {@link JobQueueGraph.ack ack} / {@link JobQueueGraph.nack nack} the
|
|
975
|
+
* matching job. The executor dataflow is unchanged — claim/ack/nack
|
|
976
|
+
* runs as an audit-side layer (per Unit 21's "interface unchanged"
|
|
977
|
+
* decision). Inspect via `harness.jobs.get(route).depth.cache` for
|
|
978
|
+
* backpressure metrics.
|
|
979
|
+
*/
|
|
980
|
+
readonly jobs: ReadonlyMap<QueueRoute, JobQueueGraph<TriagedItem>>;
|
|
584
981
|
/** Per-route gate controllers (only for gated queues). */
|
|
585
982
|
readonly gates: ReadonlyMap<QueueRoute, GateController<TriagedItem>>;
|
|
983
|
+
/**
|
|
984
|
+
* Per-route queue topics — typed accessor for the four
|
|
985
|
+
* {@link QUEUE_NAMES} entries (`auto-fix`, `needs-decision`,
|
|
986
|
+
* `investigation`, `backlog`). Mirrors the `gates` / `jobs` map
|
|
987
|
+
* shape so callers can iterate `[route, topic]` pairs without
|
|
988
|
+
* hand-rolling `harness.queues.topicNames()` + meta-topic exclusion.
|
|
989
|
+
*
|
|
990
|
+
* Excludes the meta topics that share the hub:
|
|
991
|
+
* `intake` (use {@link intake}), `verify-results` (use
|
|
992
|
+
* {@link verifyResults}), `retry` (use {@link retry}), `__unrouted`
|
|
993
|
+
* (use {@link unrouted}), and the internal `triage-output` fan-in.
|
|
994
|
+
*
|
|
995
|
+
* **Why this exists.** `for (const [, topic] of harness.queues)`
|
|
996
|
+
* appears to iterate via `Graph[Symbol.iterator]`, but that yields
|
|
997
|
+
* locally-registered nodes only — and `MessagingHubGraph` mounts
|
|
998
|
+
* topics as child graphs rather than registering them locally, so
|
|
999
|
+
* the loop yields nothing. This map gives a typed, working
|
|
1000
|
+
* iteration path.
|
|
1001
|
+
*/
|
|
1002
|
+
readonly queueTopics: ReadonlyMap<QueueRoute, TopicGraph<TriagedItem>>;
|
|
586
1003
|
/** Strategy model bundle — record outcomes, lookup effectiveness. */
|
|
587
1004
|
readonly strategy: StrategyModelBundle;
|
|
588
|
-
/** Verify results topic — subscribe to see verification outcomes. */
|
|
589
|
-
readonly verifyResults: TopicGraph<VerifyResult>;
|
|
590
1005
|
/** Global retry count across all items (circuit breaker). Reactive — subscribable. */
|
|
591
1006
|
readonly totalRetries: Node<number>;
|
|
592
1007
|
/** Global reingestion count across all items (circuit breaker). Reactive — subscribable. */
|
|
593
1008
|
readonly totalReingestions: Node<number>;
|
|
594
|
-
|
|
1009
|
+
/**
|
|
1010
|
+
* Per-route priority score nodes, populated only when `opts.priority` is
|
|
1011
|
+
* set on {@link harnessLoop}. Each node emits a score combining severity,
|
|
1012
|
+
* attention decay, and strategy-model effectiveness for the route's
|
|
1013
|
+
* current head-of-queue item. `undefined` means the caller did not opt
|
|
1014
|
+
* in to priority scoring.
|
|
1015
|
+
*/
|
|
1016
|
+
readonly priorityScores?: ReadonlyMap<QueueRoute, Node<number>>;
|
|
1017
|
+
constructor(name: string, queues: MessagingHubGraph, queueTopics: Map<QueueRoute, TopicGraph<TriagedItem>>, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
|
|
1018
|
+
/** Intake topic — publish items here to enter the loop. */
|
|
1019
|
+
get intake(): TopicGraph<IntakeItem>;
|
|
1020
|
+
/** Verify results topic — subscribe to see verification outcomes. */
|
|
1021
|
+
get verifyResults(): TopicGraph<VerifyResult<A>>;
|
|
1022
|
+
/** Retry feedback topic — fast-retry re-entry point. */
|
|
1023
|
+
get retry(): TopicGraph<TriagedItem>;
|
|
1024
|
+
/** Dead-letter topic for items whose LLM-chosen route is unknown. */
|
|
1025
|
+
get unrouted(): TopicGraph<TriagedItem>;
|
|
1026
|
+
/**
|
|
1027
|
+
* Stage-label → observe-path map for the 7 pipeline stages (Unit 22 C).
|
|
1028
|
+
*
|
|
1029
|
+
* Decouples inspection tools (`harnessTrace`, `harnessProfile`, custom
|
|
1030
|
+
* dashboards) from mount-structure churn: hub migration, future stage
|
|
1031
|
+
* splits, or gate remounting won't require edits to `trace.ts` as long
|
|
1032
|
+
* as this method stays accurate. Returned paths are resolvable via
|
|
1033
|
+
* `harness.observe(path)` / `harness.resolve(path)`.
|
|
1034
|
+
*
|
|
1035
|
+
* Each stage yields `{ label, paths }` because QUEUE and GATE legitimately
|
|
1036
|
+
* have multiple paths (one per route). Consumers iterate paths per stage
|
|
1037
|
+
* and attach observers as needed.
|
|
1038
|
+
*/
|
|
1039
|
+
stageNodes(): ReadonlyArray<{
|
|
1040
|
+
label: string;
|
|
1041
|
+
paths: readonly string[];
|
|
1042
|
+
}>;
|
|
595
1043
|
}
|
|
596
1044
|
/**
|
|
597
1045
|
* Wire the reactive collaboration loop as a static-topology graph.
|
|
@@ -609,7 +1057,7 @@ declare class HarnessGraph extends Graph {
|
|
|
609
1057
|
* @param opts - Configuration.
|
|
610
1058
|
* @returns HarnessGraph with controller accessors.
|
|
611
1059
|
*/
|
|
612
|
-
declare function harnessLoop(name: string, opts: HarnessLoopOptions): HarnessGraph
|
|
1060
|
+
declare function harnessLoop<A = unknown>(name: string, opts: HarnessLoopOptions<A>): HarnessGraph<A>;
|
|
613
1061
|
|
|
614
1062
|
/**
|
|
615
1063
|
* Harness-specific graph profiling (roadmap §9.0).
|
|
@@ -634,6 +1082,13 @@ interface HarnessProfileResult extends GraphProfileResult {
|
|
|
634
1082
|
/**
|
|
635
1083
|
* Profile a harness graph with domain-specific counters.
|
|
636
1084
|
*
|
|
1085
|
+
* **Snapshot caveat (Unit 22 B).** Reads `.cache` values from the
|
|
1086
|
+
* strategy / retry / reingestion nodes + each queue topic's `.retained()`
|
|
1087
|
+
* view. These are point-in-time reads and are not transactional — if you
|
|
1088
|
+
* invoke this during an in-flight reactive wave the values may reflect
|
|
1089
|
+
* a partially-settled frame. For end-of-wave accuracy, call from outside
|
|
1090
|
+
* any batch boundary.
|
|
1091
|
+
*
|
|
637
1092
|
* @param harness - The HarnessGraph to profile.
|
|
638
1093
|
* @param opts - Optional base profile options.
|
|
639
1094
|
* @returns Harness profile with queue depths, strategy stats, and tracker sizes.
|
|
@@ -688,10 +1143,10 @@ interface RefineExecutorConfig<T> {
|
|
|
688
1143
|
datasetFor: (item: TriagedItem) => readonly DatasetItem[];
|
|
689
1144
|
/**
|
|
690
1145
|
* Optional mapper from the inner loop's terminal snapshot to an
|
|
691
|
-
* `ExecuteOutput
|
|
1146
|
+
* `ExecuteOutput<T>`. Default: converged→success, budget→partial,
|
|
692
1147
|
* errored→failure.
|
|
693
1148
|
*/
|
|
694
|
-
toOutput?: (result: RefineExecutorResult<T>) => ExecuteOutput
|
|
1149
|
+
toOutput?: (result: RefineExecutorResult<T>) => ExecuteOutput<T>;
|
|
695
1150
|
/** Convergence / budget options forwarded to each inner `refineLoop`. */
|
|
696
1151
|
refine?: Omit<RefineLoopOptions, "dataset" | "name">;
|
|
697
1152
|
/** Node name prefix for introspection. Default `"refine-executor"`. */
|
|
@@ -714,7 +1169,7 @@ interface RefineExecutorConfig<T> {
|
|
|
714
1169
|
* });
|
|
715
1170
|
* ```
|
|
716
1171
|
*/
|
|
717
|
-
declare function refineExecutor<T>(config: RefineExecutorConfig<T>): HarnessExecutor
|
|
1172
|
+
declare function refineExecutor<T>(config: RefineExecutorConfig<T>): HarnessExecutor<T>;
|
|
718
1173
|
|
|
719
1174
|
/**
|
|
720
1175
|
* Harness pipeline trace — thin sugar over `graph.observe({ format: "stage-log" })`.
|
|
@@ -797,11 +1252,17 @@ declare function harnessTrace(harness: HarnessGraph, opts?: HarnessTraceOptions)
|
|
|
797
1252
|
* @module
|
|
798
1253
|
*/
|
|
799
1254
|
|
|
1255
|
+
type index_ActuatorExecutorConfig<R> = ActuatorExecutorConfig<R>;
|
|
1256
|
+
type index_ActuatorResult<R> = ActuatorResult<R>;
|
|
1257
|
+
type index_AutoSolidifyConfig<R, T = R> = AutoSolidifyConfig<R, T>;
|
|
800
1258
|
type index_CodeChange = CodeChange;
|
|
801
1259
|
type index_CodeChangeBridgeOptions = CodeChangeBridgeOptions;
|
|
802
1260
|
declare const index_DEFAULT_DECAY_RATE: typeof DEFAULT_DECAY_RATE;
|
|
1261
|
+
declare const index_DEFAULT_EXECUTE_PROMPT: typeof DEFAULT_EXECUTE_PROMPT;
|
|
803
1262
|
declare const index_DEFAULT_QUEUE_CONFIGS: typeof DEFAULT_QUEUE_CONFIGS;
|
|
804
1263
|
declare const index_DEFAULT_SEVERITY_WEIGHTS: typeof DEFAULT_SEVERITY_WEIGHTS;
|
|
1264
|
+
declare const index_DEFAULT_TRIAGE_PROMPT: typeof DEFAULT_TRIAGE_PROMPT;
|
|
1265
|
+
declare const index_DEFAULT_VERIFY_PROMPT: typeof DEFAULT_VERIFY_PROMPT;
|
|
805
1266
|
type index_ErrorClass = ErrorClass;
|
|
806
1267
|
type index_ErrorClassifier = ErrorClassifier;
|
|
807
1268
|
type index_EvalDelta = EvalDelta;
|
|
@@ -812,20 +1273,23 @@ type index_EvalTaskDelta = EvalTaskDelta;
|
|
|
812
1273
|
type index_EvalTaskResult = EvalTaskResult;
|
|
813
1274
|
type index_EvalVerifierConfig<T> = EvalVerifierConfig<T>;
|
|
814
1275
|
type index_EvalVerifierSummary = EvalVerifierSummary;
|
|
815
|
-
type index_ExecuteOutput = ExecuteOutput
|
|
816
|
-
type
|
|
817
|
-
type
|
|
818
|
-
type
|
|
1276
|
+
type index_ExecuteOutput<A = unknown> = ExecuteOutput<A>;
|
|
1277
|
+
type index_ExecutePromptFn = ExecutePromptFn;
|
|
1278
|
+
type index_ExecutionResult<A = unknown> = ExecutionResult<A>;
|
|
1279
|
+
type index_HarnessEvalPairConfig<T> = HarnessEvalPairConfig<T>;
|
|
1280
|
+
type index_HarnessExecutor<A = unknown> = HarnessExecutor<A>;
|
|
1281
|
+
type index_HarnessGraph<A = unknown> = HarnessGraph<A>;
|
|
819
1282
|
declare const index_HarnessGraph: typeof HarnessGraph;
|
|
820
|
-
type index_HarnessLoopOptions = HarnessLoopOptions
|
|
1283
|
+
type index_HarnessLoopOptions<A = unknown> = HarnessLoopOptions<A>;
|
|
821
1284
|
type index_HarnessProfileResult = HarnessProfileResult;
|
|
822
1285
|
type index_HarnessTraceHandle = HarnessTraceHandle;
|
|
823
1286
|
type index_HarnessTraceOptions = HarnessTraceOptions;
|
|
824
|
-
type index_HarnessVerifier = HarnessVerifier
|
|
1287
|
+
type index_HarnessVerifier<A = unknown> = HarnessVerifier<A>;
|
|
825
1288
|
type index_IntakeBridgeOptions = IntakeBridgeOptions;
|
|
826
1289
|
type index_IntakeItem = IntakeItem;
|
|
827
1290
|
type index_IntakeSource = IntakeSource;
|
|
828
1291
|
type index_Intervention = Intervention;
|
|
1292
|
+
type index_KnownIntakeSource = KnownIntakeSource;
|
|
829
1293
|
type index_LintError = LintError;
|
|
830
1294
|
type index_NotifyEffectOptions = NotifyEffectOptions;
|
|
831
1295
|
type index_NotifyTransport<T> = NotifyTransport<T>;
|
|
@@ -845,10 +1309,14 @@ type index_TestFailure = TestFailure;
|
|
|
845
1309
|
type index_TraceDetail = TraceDetail;
|
|
846
1310
|
type index_TraceEvent = TraceEvent;
|
|
847
1311
|
type index_TraceEventType = TraceEventType;
|
|
1312
|
+
type index_TriagePromptFn = TriagePromptFn;
|
|
848
1313
|
type index_TriagedItem = TriagedItem;
|
|
849
1314
|
type index_VerifyOutput = VerifyOutput;
|
|
850
|
-
type
|
|
1315
|
+
type index_VerifyPromptFn<A = unknown> = VerifyPromptFn<A>;
|
|
1316
|
+
type index_VerifyResult<A = unknown> = VerifyResult<A>;
|
|
1317
|
+
declare const index_actuatorExecutor: typeof actuatorExecutor;
|
|
851
1318
|
declare const index_affectedTaskFilter: typeof affectedTaskFilter;
|
|
1319
|
+
declare const index_autoSolidify: typeof autoSolidify;
|
|
852
1320
|
declare const index_beforeAfterCompare: typeof beforeAfterCompare;
|
|
853
1321
|
declare const index_codeChangeBridge: typeof codeChangeBridge;
|
|
854
1322
|
declare const index_createIntakeBridge: typeof createIntakeBridge;
|
|
@@ -858,16 +1326,18 @@ declare const index_defaultLlmVerifier: typeof defaultLlmVerifier;
|
|
|
858
1326
|
declare const index_evalIntakeBridge: typeof evalIntakeBridge;
|
|
859
1327
|
declare const index_evalSource: typeof evalSource;
|
|
860
1328
|
declare const index_evalVerifier: typeof evalVerifier;
|
|
1329
|
+
declare const index_harnessEvalPair: typeof harnessEvalPair;
|
|
861
1330
|
declare const index_harnessLoop: typeof harnessLoop;
|
|
862
1331
|
declare const index_harnessProfile: typeof harnessProfile;
|
|
863
1332
|
declare const index_harnessTrace: typeof harnessTrace;
|
|
864
1333
|
declare const index_notifyEffect: typeof notifyEffect;
|
|
865
1334
|
declare const index_priorityScore: typeof priorityScore;
|
|
866
1335
|
declare const index_refineExecutor: typeof refineExecutor;
|
|
1336
|
+
declare const index_resolvePromptFn: typeof resolvePromptFn;
|
|
867
1337
|
declare const index_strategyKey: typeof strategyKey;
|
|
868
1338
|
declare const index_strategyModel: typeof strategyModel;
|
|
869
1339
|
declare namespace index {
|
|
870
|
-
export { type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, 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_ExecutionResult as ExecutionResult, 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_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_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyResult as VerifyResult, index_affectedTaskFilter as affectedTaskFilter, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
|
|
1340
|
+
export { type index_ActuatorExecutorConfig as ActuatorExecutorConfig, type index_ActuatorResult as ActuatorResult, type index_AutoSolidifyConfig as AutoSolidifyConfig, type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_actuatorExecutor as actuatorExecutor, index_affectedTaskFilter as affectedTaskFilter, index_autoSolidify as autoSolidify, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessEvalPair as harnessEvalPair, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
|
|
871
1341
|
}
|
|
872
1342
|
|
|
873
|
-
export {
|
|
1343
|
+
export { type TestFailure as $, type ActuatorExecutorConfig as A, type HarnessTraceOptions as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type ErrorClass as E, type HarnessVerifier as F, type IntakeItem as G, type HarnessEvalPairConfig as H, type IntakeBridgeOptions as I, type IntakeSource as J, type Intervention as K, type KnownIntakeSource as L, type LintError as M, type NotifyEffectOptions as N, type NotifyTransport as O, type PrioritySignals as P, QUEUE_NAMES as Q, type QueueConfig as R, type QueueRoute as S, type RefineExecutorConfig as T, type RefineExecutorResult as U, type RootCause as V, type Severity as W, type StrategyEntry as X, type StrategyKey as Y, type StrategyModelBundle as Z, type StrategySnapshot as _, type ActuatorResult as a, type TraceDetail as a0, type TraceEvent as a1, type TraceEventType as a2, type TriagePromptFn as a3, type TriagedItem as a4, type VerifyOutput as a5, type VerifyPromptFn as a6, type VerifyResult as a7, actuatorExecutor as a8, affectedTaskFilter as a9, autoSolidify as aa, beforeAfterCompare as ab, codeChangeBridge as ac, createIntakeBridge as ad, defaultErrorClassifier as ae, defaultLlmExecutor as af, defaultLlmVerifier as ag, evalIntakeBridge as ah, evalSource as ai, evalVerifier as aj, harnessEvalPair as ak, harnessLoop as al, harnessProfile as am, harnessTrace as an, notifyEffect as ao, priorityScore as ap, refineExecutor as aq, resolvePromptFn as ar, strategyKey as as, strategyModel as at, type AutoSolidifyConfig as b, type CodeChangeBridgeOptions as c, DEFAULT_EXECUTE_PROMPT as d, DEFAULT_QUEUE_CONFIGS as e, DEFAULT_SEVERITY_WEIGHTS as f, DEFAULT_TRIAGE_PROMPT as g, DEFAULT_VERIFY_PROMPT as h, index as i, type ErrorClassifier as j, type EvalDelta as k, type EvalIntakeBridgeOptions as l, type EvalJudgeScore as m, type EvalResult as n, type EvalTaskDelta as o, type EvalTaskResult as p, type EvalVerifierConfig as q, type EvalVerifierSummary as r, type ExecuteOutput as s, type ExecutePromptFn as t, type ExecutionResult as u, type HarnessExecutor as v, HarnessGraph as w, type HarnessLoopOptions as x, type HarnessProfileResult as y, type HarnessTraceHandle as z };
|