@graphrefly/graphrefly 0.42.0 → 0.43.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-5ST42ESJ.js → chunk-3XDYJRYU.js} +1 -1
- package/dist/{chunk-FDZAZNRO.js → chunk-4YAN45KM.js} +1 -1
- package/dist/{chunk-ACMJ2ZPS.js → chunk-626TESAC.js} +1 -1
- package/dist/{chunk-7B7ELAT2.js → chunk-6HOSXQKF.js} +1 -1
- package/dist/{chunk-G5VBJ5K6.js → chunk-CUNIRONA.js} +1 -1
- package/dist/chunk-EBW4V6JN.js +1 -0
- package/dist/chunk-FDQGFWLF.js +1 -0
- package/dist/{chunk-KY2LMAXU.js → chunk-FG4TKHMC.js} +1 -1
- package/dist/{chunk-YGL7FPVQ.js → chunk-I7IGYPSL.js} +1 -1
- package/dist/{chunk-3K7HA4Y6.js → chunk-INQD2KRQ.js} +1 -1
- package/dist/{chunk-AGNM6RS6.js → chunk-JNWRYDJN.js} +1 -1
- package/dist/{chunk-LDQ3IUIP.js → chunk-JQFH2DV6.js} +1 -1
- package/dist/{chunk-5QRRKBUT.js → chunk-K2Q24F5T.js} +1 -1
- package/dist/chunk-KVV66NN2.js +1 -0
- package/dist/{chunk-3ERTUW2J.js → chunk-NON4NLIC.js} +4 -4
- package/dist/{chunk-IZM3UEH3.js → chunk-O2BLLH7M.js} +1 -1
- package/dist/{chunk-FUZ6S2DY.js → chunk-OCKEEPRJ.js} +1 -1
- package/dist/{chunk-NWXQIOIB.js → chunk-OFZG3TB3.js} +1 -1
- package/dist/{chunk-4QH6VJF4.js → chunk-OYJKFY7V.js} +1 -1
- package/dist/{chunk-7ARY3Y3T.js → chunk-P6C4WHZO.js} +1 -1
- package/dist/{chunk-Q7QQQA3I.js → chunk-PT7W5FCD.js} +1 -1
- package/dist/{chunk-KCACBSJH.js → chunk-Q4U3A3L5.js} +1 -1
- package/dist/{chunk-LPRWATHB.js → chunk-QE4IGY7I.js} +1 -1
- package/dist/{chunk-WHMUB5QB.js → chunk-QYVXF7GW.js} +1 -1
- package/dist/{chunk-DEJTNNQC.js → chunk-S3EEIPO7.js} +1 -1
- package/dist/{chunk-KT5DTRBP.js → chunk-SUWT3ZON.js} +1 -1
- package/dist/{chunk-CISGGAIF.js → chunk-TPKQW72B.js} +1 -1
- package/dist/{chunk-2K5RXLAH.js → chunk-V5A7M7RJ.js} +1 -1
- package/dist/{chunk-AS3TV2TV.js → chunk-VNC3TMVY.js} +1 -1
- package/dist/{chunk-6YFZMUMR.js → chunk-VOPGGIL7.js} +1 -1
- package/dist/{chunk-VRALOYRD.js → chunk-VQ4A6T2A.js} +1 -1
- package/dist/{chunk-HZKW2AAB.js → chunk-XG62INFA.js} +1 -1
- package/dist/{chunk-7VKFXLZQ.js → chunk-Y4NI3X7O.js} +1 -1
- package/dist/compat/index.cjs +5 -5
- package/dist/compat/index.d.cts +4 -4
- package/dist/compat/index.d.ts +4 -4
- package/dist/compat/index.js +1 -1
- package/dist/compat/nestjs/index.cjs +5 -5
- package/dist/compat/nestjs/index.d.cts +3 -3
- package/dist/compat/nestjs/index.d.ts +3 -3
- package/dist/compat/nestjs/index.js +1 -1
- package/dist/compat/zustand/index.js +1 -1
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/extra/index.cjs +11 -11
- package/dist/extra/index.d.cts +2 -2
- package/dist/extra/index.d.ts +2 -2
- package/dist/extra/index.js +1 -1
- package/dist/extra/node.js +1 -1
- package/dist/extra/operators.js +1 -1
- package/dist/extra/reactive.js +1 -1
- package/dist/extra/sources.js +1 -1
- package/dist/graph/index.cjs +1 -1
- package/dist/graph/index.d.cts +1 -1
- package/dist/graph/index.d.ts +1 -1
- package/dist/graph/index.js +1 -1
- package/dist/{index-C0-Jv1kP.d.cts → index-0rKFCVFp.d.cts} +9 -0
- package/dist/{index-B11anra4.d.cts → index-B5iz82A3.d.cts} +2 -2
- package/dist/{index-BtAsBp8K.d.cts → index-BAOD98JD.d.cts} +1 -1
- package/dist/{index-D-Xs74HZ.d.cts → index-BiX1Nkgx.d.cts} +13 -3
- package/dist/{index-HoU88d5U.d.cts → index-BojK2fwH.d.cts} +2 -2
- package/dist/{index-3NmAfcH0.d.cts → index-BwLvVVsy.d.cts} +1 -1
- package/dist/{index-DQo8xBgd.d.ts → index-C59mYFKp.d.ts} +1 -1
- package/dist/{index-DBIqYS43.d.cts → index-C9pjcz3l.d.cts} +0 -15
- package/dist/{index-CJQm0g38.d.ts → index-CAC_rNzm.d.ts} +1 -1
- package/dist/{index-sl4NyzQx.d.cts → index-CDXc9zKM.d.cts} +1 -1
- package/dist/{index-2B7u2pVn.d.cts → index-CLon-IWF.d.cts} +1 -1
- package/dist/{index-CEMx8n40.d.cts → index-COD1kVoS.d.cts} +1 -1
- package/dist/{index-Bn4zHYLj.d.ts → index-CPT7C_f1.d.ts} +1 -1
- package/dist/{index-D8l8hNXn.d.ts → index-CQG3D1cp.d.ts} +1 -1
- package/dist/{index-DO9XxMzS.d.ts → index-CZQXo5tH.d.ts} +0 -15
- package/dist/{index-Bbkgpt5t.d.ts → index-D-AEQVLo.d.ts} +2 -2
- package/dist/{index-CZmcDtFn.d.ts → index-D4Y1cMG0.d.ts} +1 -1
- package/dist/{index-B3OTH1dV.d.ts → index-DSZ3ZCHF.d.ts} +1 -1
- package/dist/{index-BUYXac2c.d.ts → index-Dh_HJ82K.d.ts} +2 -2
- package/dist/{index-4Uz-e_fL.d.ts → index-DwigL4lY.d.ts} +13 -3
- package/dist/{index-CPNSy-U0.d.cts → index-DyR7eU5S.d.cts} +19 -0
- package/dist/{index-BeT2r7sk.d.ts → index-JZUPJIJy.d.ts} +19 -0
- package/dist/{index-pT8sCpOJ.d.ts → index-K0_0eR8g.d.ts} +9 -0
- package/dist/{index-CJIuLu2f.d.cts → index-O16yXPK4.d.cts} +1 -1
- package/dist/{index-LIpQQE9f.d.cts → index-O7fucFrU.d.cts} +1 -1
- package/dist/{index-DmAgG5CI.d.cts → index-RV_yDjOX.d.cts} +1 -1
- package/dist/{index-D6egPFAL.d.ts → index-cm1GNcWE.d.ts} +1 -1
- package/dist/{index-CpyNFqkB.d.ts → index-wAzD9yVj.d.ts} +1 -1
- package/dist/index.cjs +39 -39
- package/dist/index.d.cts +16 -16
- package/dist/index.d.ts +16 -16
- package/dist/index.js +1 -1
- package/dist/patterns/ai/browser.js +1 -1
- package/dist/patterns/ai/index.cjs +15 -15
- package/dist/patterns/ai/index.d.cts +5 -5
- package/dist/patterns/ai/index.d.ts +5 -5
- package/dist/patterns/ai/index.js +1 -1
- package/dist/patterns/ai/node.js +1 -1
- package/dist/patterns/cqrs/index.cjs +3 -3
- package/dist/patterns/cqrs/index.d.cts +2 -2
- package/dist/patterns/cqrs/index.d.ts +2 -2
- package/dist/patterns/cqrs/index.js +1 -1
- package/dist/patterns/demo-shell/index.js +1 -1
- package/dist/patterns/domain-templates/index.cjs +2 -2
- package/dist/patterns/domain-templates/index.js +1 -1
- package/dist/patterns/graphspec/index.cjs +4 -4
- package/dist/patterns/graphspec/index.js +1 -1
- package/dist/patterns/harness/index.cjs +7 -7
- package/dist/patterns/harness/index.d.cts +5 -5
- package/dist/patterns/harness/index.d.ts +5 -5
- package/dist/patterns/harness/index.js +1 -1
- package/dist/patterns/inspect/index.cjs +3 -3
- package/dist/patterns/inspect/index.d.cts +1 -1
- package/dist/patterns/inspect/index.d.ts +1 -1
- package/dist/patterns/inspect/index.js +1 -1
- package/dist/patterns/job-queue/index.cjs +3 -3
- package/dist/patterns/job-queue/index.d.cts +2 -2
- package/dist/patterns/job-queue/index.d.ts +2 -2
- package/dist/patterns/job-queue/index.js +1 -1
- package/dist/patterns/memory/index.cjs +3 -3
- package/dist/patterns/memory/index.d.cts +2 -2
- package/dist/patterns/memory/index.d.ts +2 -2
- package/dist/patterns/memory/index.js +1 -1
- package/dist/patterns/messaging/index.cjs +3 -3
- package/dist/patterns/messaging/index.js +1 -1
- package/dist/patterns/orchestration/index.cjs +3 -3
- package/dist/patterns/orchestration/index.d.cts +3 -3
- package/dist/patterns/orchestration/index.d.ts +3 -3
- package/dist/patterns/orchestration/index.js +1 -1
- package/dist/patterns/process/index.cjs +1 -1
- package/dist/patterns/process/index.d.cts +3 -3
- package/dist/patterns/process/index.d.ts +3 -3
- package/dist/patterns/process/index.js +1 -1
- package/dist/patterns/reactive-layout/index.js +1 -1
- package/dist/patterns/reduction/index.js +1 -1
- package/dist/patterns/surface/index.cjs +3 -3
- package/dist/patterns/surface/index.js +1 -1
- package/dist/{pipeline-graph-WBlobVhU.d.cts → pipeline-graph-DPqKDk59.d.cts} +2 -2
- package/dist/{pipeline-graph-v8fMvqNk.d.ts → pipeline-graph-loP57TBA.d.ts} +2 -2
- package/dist/resilience-YIWPK4YC.js +1 -0
- package/dist/{sugar-CH-2ZY90.d.ts → sugar-DLwvMr3F.d.ts} +23 -3
- package/dist/{sugar-DStZfUEK.d.cts → sugar-DyVGtczU.d.cts} +23 -3
- package/package.json +1 -1
- package/dist/chunk-3ZZX7M25.js +0 -1
- package/dist/chunk-VE5SIZEM.js +0 -1
- package/dist/chunk-XLQPNNIC.js +0 -1
- package/dist/resilience-445VFFXQ.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as tt,e as rt}from"./chunk-
|
|
1
|
+
import{d as tt,e as rt}from"./chunk-3XDYJRYU.js";import{s as $e,t as Me,v as Ze}from"./chunk-QE4IGY7I.js";import{g as Se,i as Ge}from"./chunk-OYJKFY7V.js";import{c as et}from"./chunk-JNWRYDJN.js";import{b as me}from"./chunk-D27JNOLZ.js";import{b as Xe}from"./chunk-TSOYJ743.js";import{a as _e}from"./chunk-FDQGFWLF.js";import{g as ze,j as xe}from"./chunk-626TESAC.js";import{b as Re,s as De,t as Ke,x as Ie}from"./chunk-VOPGGIL7.js";import{b as Ye}from"./chunk-35JTVPOX.js";import{b as Ne}from"./chunk-TZQPPQEQ.js";import{C as We,m as ke}from"./chunk-V5A7M7RJ.js";import{D as Be,E as S,F as Ee,G as h,H as O,m as fe,o as H}from"./chunk-LYCLF26R.js";import{b as V,i as X,j as Y}from"./chunk-CK2E7BTU.js";import{b as pt}from"./chunk-QYADASLV.js";var Yt={};pt(Yt,{DEFAULT_DECAY_RATE:()=>ee,DEFAULT_EXECUTE_PROMPT:()=>Ve,DEFAULT_QUEUE_CONFIGS:()=>Ae,DEFAULT_SEVERITY_WEIGHTS:()=>Z,DEFAULT_TRIAGE_PROMPT:()=>He,DEFAULT_VERIFY_PROMPT:()=>Le,HarnessGraph:()=>Ce,QUEUE_NAMES:()=>M,actuatorExecutor:()=>nt,affectedTaskFilter:()=>kt,autoSolidify:()=>ht,beforeAfterCompare:()=>It,blindVariation:()=>Pt,codeChangeBridge:()=>Nt,createIntakeBridge:()=>Et,defaultErrorClassifier:()=>we,defaultLlmExecutor:()=>lt,defaultLlmVerifier:()=>dt,dispatchActuator:()=>vt,effectivenessTracker:()=>wt,errorCritique:()=>Dt,evalIntakeBridge:()=>xt,evalSource:()=>Rt,evalVerifier:()=>at,harnessEvalPair:()=>Ht,harnessLoop:()=>qt,harnessProfile:()=>Jt,harnessTrace:()=>Ut,notifyEffect:()=>St,priorityScore:()=>Vt,refineExecutor:()=>Je,refineLoop:()=>je,resolvePromptFn:()=>pe,strategyKey:()=>te,strategyModel:()=>Qe});function yt(e,r){return{outcome:"success",detail:`actuator applied ${r.intervention} for ${Tt(r.summary)}`,artifact:e}}function gt(e,r){let c=e instanceof Error?e.message:String(e);return{outcome:"failure",detail:`actuator threw on ${r.intervention}: ${c}`}}function bt(e){return`actuator skipped ${e.intervention} (shouldApply returned false)`}function Tt(e,r=80){return e.length<=r?e:`${e.slice(0,r-1)}\u2026`}function nt(e){let r=e.name??"actuator-executor",c=e.toOutput??yt,n=e.onError??gt,i=e.skipDetail??bt;return t=>{let o=t.payload.item;return e.shouldApply&&!e.shouldApply(o)?{...t.payload,execution:{item:o,outcome:"failure",detail:i(o)}}:Ee(a=>{let u=new AbortController,s=!1,l=null,m=y=>{s||(s=!0,a.down([[V,{...t.payload,execution:{item:o,...y}}],[X]]),l?.(),l=null)},f;try{let y=e.apply(o,{signal:u.signal});f=ke(y,{signal:u.signal})}catch(y){return m(n(y,o)),()=>{u.abort()}}return l=f.subscribe(y=>{for(let g of y){if(s)return;if(g[0]===V){m(c(g[1],o));return}if(g[0]===Y){m(n(g[1],o));return}if(g[0]===X){m(n(new Error("actuator inner completed without emitting DATA"),o));return}}}),s&&l&&(l(),l=null),()=>{u.abort(),l?.(),l=null}},{name:`${r}/inner`})}}function vt(e){let r=e.name??"dispatch-actuator",c=e.default??null,n=c!=null;return nt({apply:(i,t)=>{let o=Object.hasOwn(e.routes,i.intervention)?e.routes[i.intervention]:c;if(!o)throw new Error(`dispatchActuator: no route for intervention '${i.intervention}'`);return o(i,t)},shouldApply:i=>Object.hasOwn(e.routes,i.intervention)||n,skipDetail:i=>`no route for intervention '${i.intervention}'`,name:r})}function ht(e){let r=e.name??"auto-solidify",c=e.extract??(i=>i.execution.artifact??null),n=e.predicate??(()=>!0);return Ee(i=>{let t=null,o=!1,a=()=>{o||(o=!0,t?.(),t=null)},u=s=>{o||(i.down([[Y,s]]),a())};return t=e.verifyResults.subscribe(s=>{if(!o)for(let l of s){if(o)return;if(l[0]!==V){if(l[0]===X){i.down([[X]]),a();return}continue}let m=l[1];if(m==null||!m.verified)continue;let f;try{f=n(m)}catch(g){u(g);return}if(!f)continue;let y;try{y=c(m)}catch(g){u(g);return}if(y!=null){try{e.write(y,m)}catch(g){u(g);return}i.down([[V,y]])}}}),o&&t&&(t(),t=null),()=>{a()}},{name:r})}function Et(e,r,c,n){return O([e],([i])=>{if(i==null)return;let t=c(i);for(let o of t)r.publish(o)},{name:n?.name??"intake-bridge"})}function xt(e,r,c){let n=c?.defaultSeverity??"medium";return O([e],([i])=>{if(i==null)return;let t=Array.isArray(i)?i:[i];for(let o of t)for(let a of o.tasks)if(!(a.valid&&a.judge_scores?.every(u=>u.pass))){if(!a.valid&&(!a.judge_scores||a.judge_scores.length===0)){r.publish({source:"eval",summary:`Task ${a.task_id} invalid (model: ${o.model})`,evidence:`Run ${o.run_id}: task produced invalid output`,affectsAreas:["graphspec"],affectsEvalTasks:[a.task_id],severity:n});continue}if(a.judge_scores)for(let u of a.judge_scores)u.pass||r.publish({source:"eval",summary:`${a.task_id}: ${u.claim} (model: ${o.model})`,evidence:u.reasoning,affectsAreas:["graphspec"],affectsEvalTasks:[a.task_id],severity:n})}},{name:c?.name??"eval-intake-bridge"})}function Rt(e,r){return Ie(e,()=>ke(r()))}function It(e,r){return h([e,r],([c,n])=>{let i=c,t=n,o=new Map(i.tasks.map(f=>[f.task_id,f])),a=new Map(t.tasks.map(f=>[f.task_id,f])),u=new Set([...o.keys(),...a.keys()]),s=[],l=[],m=[];for(let f of u){let y=o.get(f),g=a.get(f),E=y?.valid??!1,A=g?.valid??!1,R=y?.judge_scores?y.judge_scores.filter(_=>_.pass).length:void 0,$=g?.judge_scores?g.judge_scores.filter(_=>_.pass).length:void 0,w=R!==void 0&&$!==void 0?$-R:void 0;s.push({taskId:f,before:E,after:A,scoreDiff:w}),E&&!A&&l.push(f),!E&&A&&m.push(f)}return{newFailures:l,resolved:m,taskDeltas:s,overallImproved:m.length>l.length}},{name:"eval-delta"})}function kt(e,r){let c=r==null?null:Array.isArray(r)?S(r):r,n=[e];return c&&n.push(c),h(n,i=>{let t=i[0],o=c?new Set(i[1]):null,a=new Set;for(let u of t)for(let s of u.affectsEvalTasks??[])(o==null||o.has(s))&&a.add(s);return[...a].sort()},{name:"affected-task-filter"})}function Nt(e,r,c,n){let i=n?.defaultSeverity??"high";function t(a){let u=[];for(let s of a.lintErrors??[])u.push({source:"code-change",summary:`Lint: ${s.rule} in ${s.file}:${s.line}`,evidence:s.message,affectsAreas:[s.file],severity:i});for(let s of a.testFailures??[])u.push({source:"test",summary:`Test failure: ${s.testId}`,evidence:s.message,affectsAreas:[s.file],affectsEvalTasks:[s.testId],severity:i});return u}let o=c??t;return O([e],([a])=>{if(a!=null)for(let u of o(a))r.publish(u)},{name:n?.name??"code-change-bridge"})}function St(e,r,c){return O([e.latest],([n])=>{n!=null&&r(n)},{name:c?.name??"notify-effect"})}var M=["auto-fix","needs-decision","investigation","backlog"],Ae={"auto-fix":{gated:!1},"needs-decision":{gated:!0},investigation:{gated:!0},backlog:{gated:!1}},Z={critical:100,high:70,medium:40,low:10},ee=Math.LN2/(168*3600);function te(e,r){return`${e}\u2192${r}`}var At=/\b(parse|json|config|validation|syntax)\b/i,we=e=>At.test(e.detail)?"self-correctable":"structural",He=`You are a triage classifier for a reactive collaboration harness.
|
|
2
2
|
|
|
3
3
|
Given an intake item, classify it and output JSON:
|
|
4
4
|
{
|
|
@@ -39,7 +39,7 @@ Output JSON:
|
|
|
39
39
|
"verified": true/false,
|
|
40
40
|
"findings": ["<finding1>", ...],
|
|
41
41
|
"errorClass": "self-correctable" | "structural" // only if verified=false
|
|
42
|
-
}`;function pe(e,r,c){if(typeof e=="function")return e;let n=e??r;return i=>c(n,i)}function wt(e){let r=
|
|
42
|
+
}`;function pe(e,r,c){if(typeof e=="function")return e;let n=e??r;return i=>c(n,i)}function wt(e){let r=Ne({name:e?.name??"effectiveness-entries"}),c=h([r.entries],([o])=>new Map(o),{name:`${e?.name??"effectiveness"}-snapshot`,equals:(o,a)=>{let u=o,s=a;if(u.size!==s.size)return!1;for(let[l,m]of u){let f=s.get(l);if(!f||m.attempts!==f.attempts||m.successes!==f.successes)return!1}return!0}});function n(o,a){let u=r.get(o),s=(u?.attempts??0)+1,l=(u?.successes??0)+(a?1:0);r.set(o,{key:o,attempts:s,successes:l,successRate:l/s})}function i(o){return r.get(o)}let t=We(c);return{node:c,record:n,lookup:i,dispose:()=>{t(),r.dispose()}}}function Ct(e){if(typeof e!="object"||e===null)return!1;let r=e;return typeof r.subscribe=="function"&&typeof r.down=="function"&&typeof r.emit=="function"}function ot(e,r){if(e.length===0)return{best:null,bestScore:Number.NEGATIVE_INFINITY};if(e.length===1){let t=qe(r);return{best:e[0],bestScore:t}}if(r.some(t=>typeof t.candidateIndex=="number")){let t=new Array(e.length);for(let u=0;u<e.length;u++)t[u]={sum:0,count:0};for(let u of r){let s=u.candidateIndex;typeof s=="number"&&s>=0&&s<e.length&&(t[s].sum+=u.score,t[s].count+=1)}let o=e[0],a=t[0].count>0?t[0].sum/t[0].count:Number.NEGATIVE_INFINITY;for(let u=1;u<e.length;u++){let s=t[u].count>0?t[u].sum/t[u].count:Number.NEGATIVE_INFINITY;s>a&&(a=s,o=e[u])}return{best:o,bestScore:a}}let n=e[0],i=r[0]?.score??Number.NEGATIVE_INFINITY;for(let t=1;t<e.length;t++){let o=r[t]?.score??Number.NEGATIVE_INFINITY;o>i&&(i=o,n=e[t])}return{best:n,bestScore:i}}function qe(e){if(e.length===0)return Number.NEGATIVE_INFINITY;let r=0;for(let c of e)r+=c.score;return r/e.length}function je(e,r,c,n){let i=n.name??"refine-loop",t=new xe(i,n.graph),o=Ct(n.dataset)?n.dataset:S(n.dataset,{name:"dataset"});t.add(o,{name:"dataset"});let a=S(0,{name:"iteration"});t.add(a,{name:"iteration"});let u=S(c,{name:"strategy",equals:()=>!1});t.add(u,{name:"strategy"});let s=S(null,{name:"lastFeedback"});t.add(s,{name:"lastFeedback"});let l=S([],{name:"prevCandidates"});t.add(l,{name:"prevCandidates"});let m=S(!1,{name:"paused"});t.add(m,{name:"paused"});let f=S("running",{name:"status"});t.add(f,{name:"status"});let y=S([],{name:"history",equals:()=>!1});t.add(y,{name:"history"});let g=S(null,{name:"best"});t.add(g,{name:"best"});let E=S(Number.NEGATIVE_INFINITY,{name:"score"});t.add(E,{name:"score"});let A=S(0,{name:"budget-used"});t.add(A,{name:"budget-used"});let R=Se("stages");t.mount("stages",R);let $=R.topic("generate"),w=R.topic("evaluate"),_=R.topic("analyze"),ye=R.topic("decide"),L=c,U=null,re=[];t.addDisposer(u.subscribe(b=>{for(let T of b)T[0]===V&&(L=T[1])})),t.addDisposer(s.subscribe(b=>{for(let T of b)T[0]===V&&(U=T[1])})),t.addDisposer(l.subscribe(b=>{for(let T of b)T[0]===V&&(re=T[1])}));let G=Ie(a,b=>{let T=L,C=b===0||U==null;return Be([],(I,P)=>{let v=!1;try{let d=C?T.seed(e):T.generate(U,re);if(d instanceof Promise)return d.then(p=>{v||P.emit(p)},p=>{v||P.down([[Y,p]])}),()=>{v=!0};P.emit(d)}catch(d){v=!0,P.down([[Y,d]])}},{describeKind:"producer"})},{name:"candidates"});t.add(G,{name:"candidates"});let ne=O([G],(b,T,C)=>{let I=C.terminalDeps[0];I!==void 0&&I!==!0&&f.emit("errored")},{name:"error-watcher",errorWhenDepsError:!1});t.add(ne,{name:"error-watcher"}),t.addDisposer(ne.subscribe(()=>{}));let Q=h([G,a],([b,T])=>({iteration:T,candidates:b,timestamp_ns:H()}),{name:"generate-event"});t.add(Q,{name:"generate-event"}),t.addDisposer(Q.subscribe(()=>{}));let B=O([Q],([b])=>{$.publish(b)},{name:"generate-publish"});t.add(B,{name:"generate-publish"}),t.addDisposer(B.subscribe(()=>{}));let oe=O([G],([b])=>{l.emit(b)},{name:"generate-mirror"});t.add(oe,{name:"generate-mirror"}),t.addDisposer(oe.subscribe(()=>{}));let z=r(G,o);t.add(z,{name:"scores"});let ae=h([z,G,a],([b,T,C])=>({iteration:C,candidates:T,scores:b,timestamp_ns:H()}),{name:"evaluate-event"});t.add(ae,{name:"evaluate-event"}),t.addDisposer(ae.subscribe(()=>{}));let ge=O([ae],([b])=>{w.publish(b)},{name:"evaluate-publish"});t.add(ge,{name:"evaluate-publish"}),t.addDisposer(ge.subscribe(()=>{}));let se=h([z,G],([b,T])=>L.analyze(b,T),{name:"feedback"});t.add(se,{name:"feedback"});let q=h([se,G,a],([b,T,C])=>({iteration:C,candidates:T,feedback:b,timestamp_ns:H()}),{name:"analyze-event"});t.add(q,{name:"analyze-event"}),t.addDisposer(q.subscribe(()=>{}));let ie=O([q],([b])=>{_.publish(b)},{name:"analyze-publish"});t.add(ie,{name:"analyze-publish"}),t.addDisposer(ie.subscribe(()=>{}));let ue=h([y],([b])=>{let T=b;if(n.patience==null||T.length<=n.patience)return!1;let C=T.slice(-(n.patience+1)),I=C[0].bestScore;return C.slice(1).every(P=>P.bestScore<=I)},{name:"patience-check"});t.add(ue,{name:"patience-check"});let K=h([E],([b])=>n.minScore!=null&&b>=n.minScore,{name:"min-score-check"});t.add(K,{name:"min-score-check"});let ce=h([y],([b])=>{let T=b;if(n.minDelta==null||T.length<2)return!1;let C=T[T.length-2].bestScore,I=T[T.length-1].bestScore;return Math.abs(I-C)<n.minDelta},{name:"min-delta-check"});t.add(ce,{name:"min-delta-check"});let le=h([A],([b])=>n.maxEvaluations!=null&&b>=n.maxEvaluations,{name:"max-evaluations-check"});t.add(le,{name:"max-evaluations-check"});let W=h([a],([b])=>n.maxIterations!=null&&b>=n.maxIterations,{name:"max-iterations-check"});t.add(W,{name:"max-iterations-check"});let de=h([A],([b])=>n.budget!=null&&b>=n.budget,{name:"budget-exhausted-check"});t.add(de,{name:"budget-exhausted-check"}),t.addDisposer(ue.subscribe(()=>{})),t.addDisposer(K.subscribe(()=>{})),t.addDisposer(ce.subscribe(()=>{})),t.addDisposer(le.subscribe(()=>{})),t.addDisposer(W.subscribe(()=>{})),t.addDisposer(de.subscribe(()=>{}));let be=h([ue,K,ce,le,W],([b,T,C,I,P])=>b?{converged:!0,reason:"patience"}:T?{converged:!0,reason:"min-score"}:C?{converged:!0,reason:"min-delta"}:I?{converged:!0,reason:"max-evaluations"}:P?{converged:!0,reason:"max-iterations"}:{converged:!1},{name:"converged"});t.add(be,{name:"converged"}),t.addDisposer(be.subscribe(()=>{}));let Te=-1,ve=O([se,z,G],([b,T,C])=>{let I=a.cache,P=b,v=C,d=T;if(I<=Te)return;Te=I;let{best:p,bestScore:x}=ot(v,d),k=y.cache,j={n:I,candidates:v,scores:d,feedback:P,best:p,bestScore:x,timestamp_ns:H()},F=[...k,j],J=A.cache+v.length,N="continue",D,Pe=n.budget!=null&&J>=n.budget,Fe=m.cache;if(Pe)N="budget",D="budget";else if(n.minScore!=null&&P.score>=n.minScore)N="converged",D="min-score";else if(n.maxIterations!=null&&I>=n.maxIterations)N="converged",D="max-iterations";else if(n.maxEvaluations!=null&&J>=n.maxEvaluations)N="converged",D="max-evaluations";else if(n.minDelta!=null&&F.length>=2){let he=F[F.length-2].bestScore,Oe=F[F.length-1].bestScore;Math.abs(Oe-he)<n.minDelta&&(N="converged",D="min-delta")}else if(n.patience!=null&&F.length>n.patience){let he=F.slice(-(n.patience+1)),Oe=he[0].bestScore;he.slice(1).every(mt=>mt.bestScore<=Oe)&&(N="converged",D="patience")}N==="continue"&&Fe&&(N="paused"),fe(()=>{g.emit(p),E.emit(P.score),y.emit(F),A.emit(J),s.emit(P),ye.publish({iteration:I,decision:N,reason:D,timestamp_ns:H()}),N==="continue"?a.emit(I+1):f.emit(N==="converged"?"converged":N==="budget"?"budget":"paused")})},{name:"decide-bridge"});return t.add(ve,{name:"decide-bridge"}),t.addDisposer(ve.subscribe(()=>{})),Object.assign(t,{best:g,score:E,status:f,history:y,strategy:u,iteration:a,generate:$,evaluate:w,analyze:_,decide:ye,setStrategy(b){u.emit(b)},pause(){m.emit(!0)},resume(){f.cache==="paused"&&fe(()=>{m.emit(!1),f.emit("running"),a.emit(a.cache+1)})}})}function Pt(e){let r=e.width??4;return{name:e.name??"blindVariation",seed(n){return[n]},analyze(n,i){let t=qe(n),o=null;for(let a of n)(!o||a.score<o.score)&&(o=a);return{summary:`blindVariation iteration: mean=${t.toFixed(3)}, n=${n.length}`,score:t,weakTasks:o?[o.taskId]:[]}},async generate(n,i){if(i.length===0)throw new Error("blindVariation.generate: empty candidate batch \u2014 cannot derive prior for teacher");let t=i[i.length-1],o=0,u={prior:t,reportCost:s=>{o+=s}};try{if(e.parallel!==!1)return await Promise.all(Array.from({length:r},()=>e.teacher(u)));let s=[];for(let l=0;l<r;l++)s.push(await e.teacher(u));return s}finally{if(e.tokens!=null&&o>0){let s=e.tokens.cache??0;e.tokens.emit(s+o)}}}}}function Ft(e){return typeof e=="object"&&e!==null&&e.kind==="errorCritique"}function Ot(e,r){return e.length===0?`No task scored below the batch mean (${r.score.toFixed(3)}). Reinforce the current direction.`:`Failures below threshold:
|
|
43
43
|
${e.map(n=>{let i=n.error!=null?` | error: ${n.error}`:"";return`- ${n.taskId} (score=${n.score.toFixed(3)})${i}`}).join(`
|
|
44
|
-
`)}`}function Dt(e){let r=e.width??4,c=e.name??"errorCritique",n=e.maxFailureSamples??5,i=e.formatCritique??Ot;return{name:c,seed(t){return[t]},analyze(t,o){let a=qe(t),u=typeof e.failureThreshold=="function"?e.failureThreshold(t):e.failureThreshold,s=u===void 0&&!Number.isFinite(a),l=u??a,m=s?[...t].sort((A,_)=>A.score-_.score):t.filter(A=>A.score<l).slice().sort((A,_)=>A.score-_.score),f=m.slice(0,n),{best:y,bestScore:g}=ot(o,t),E={summary:"",score:a,weakTasks:f.map(A=>A.taskId)},N=i(f,E),R={kind:"errorCritique",best:y,failures:f,critiqueText:N},$=m.length>f.length?` (top ${f.length} retained)`:"";return{summary:`errorCritique iteration: mean=${a.toFixed(3)}, failures=${m.length}${$}/${t.length}, bestScore=${g.toFixed(3)}`,critique:R,weakTasks:f.map(A=>A.taskId),score:a}},async generate(t,o){if(o.length===0)throw new Error("errorCritique.generate: empty candidate batch \u2014 cannot derive prior for teacher");let a=Ft(t.critique)?t.critique:void 0,u=a!==void 0?a.best:o[o.length-1],s=a?.critiqueText??t.summary,l=a?.failures??[],m=0,y={prior:u,critique:s,failures:l,reportCost:g=>{m+=g}};try{if(e.parallel!==!1)return await Promise.all(Array.from({length:r},()=>e.teacher(y)));let g=[];for(let E=0;E<r;E++)g.push(await e.teacher(y));return g}finally{if(e.tokens!=null&&m>0){let g=e.tokens.cache??0;e.tokens.emit(g+m)}}}}}function _t(e){let{best:r,score:c,status:n}=e,i=Number.isFinite(c)?c.toFixed(3):String(c),t=r??void 0;return n==="converged"?{outcome:"success",detail:`refineLoop converged at score ${i}`,artifact:t}:n==="budget"?{outcome:"partial",detail:`refineLoop hit budget at score ${i}`,artifact:t}:{outcome:"failure",detail:`refineLoop errored (status=${n})`,artifact:t}}function Je(e){let r=e.name??"refine-executor",c=e.toOutput??_t;return n=>{let i=n.payload.item,t=je(e.seedFrom(i),e.evaluator,e.strategy,{...e.refine,dataset:e.datasetFor(i),name:`${r}/inner`}),o=h([t.status,t.best,t.score],([a,u,s])=>{let l=a;if(l!=="converged"&&l!=="budget"&&l!=="errored")return null;let m=c({best:u,score:s,status:l});return{...n.payload,execution:{item:i,...m}}},{name:`${r}/output`});return Re(o,a=>a!=null,{name:`${r}/gate-out`})}}function $t(e){if(e.length===0)return Number.NEGATIVE_INFINITY;let r=0;for(let c of e)r+=c.score;return r/e.length}function Mt(e){let{passCount:r,total:c,meanScore:n,threshold:i,missingArtifact:t}=e,o=Number.isFinite(n)?n.toFixed(3):String(n),a=!t&&c>0&&n>=i,u=t?["EXECUTE stage did not emit an artifact; cannot verify reactively"]:a?[`${r}/${c} eval tasks passed; mean score ${o} \u2265 ${i}`]:c===0?["No eval tasks were selected for this item \u2014 cannot verify"]:[`${r}/${c} eval tasks passed; mean score ${o} < threshold ${i}`];return a?{verified:!0,findings:u}:{verified:!1,findings:u,errorClass:"structural"}}function Gt(e){return e.artifact??null}function at(e){let r=e.name??"eval-verifier",c=e.threshold??.5,n=e.toOutput??Mt,i=e.extractArtifact??Gt;return t=>{let{item:o,execution:a}=t.payload;if(a==null)return{...t.payload,verify:{verified:!1,findings:["evalVerifier: prior execute stage produced no execution"],errorClass:"structural"}};let u=i(a,o);if(u==null)return{...t.payload,verify:n({scores:[],meanScore:Number.NEGATIVE_INFINITY,passCount:0,total:0,threshold:c,missingArtifact:!0})};let s=S([u],{name:`${r}/candidates`}),l=S(e.datasetFor(o),{name:`${r}/dataset`}),m;fe(()=>{m=e.evaluator(s,l)});let f=h([m],([y])=>{let g=y;if(g==null)return null;let E=$t(g),N=g.filter(R=>R.score>=c).length;return{...t.payload,verify:n({scores:g,meanScore:E,passCount:N,total:g.length,threshold:c})}},{name:`${r}/output`});return Re(f,y=>y!=null,{name:`${r}/gate-out`})}}function Ht(e){let r=e.name??"harness-pair",c=Je({name:`${r}-exec`,seedFrom:e.seedFrom,evaluator:e.evaluator,strategy:e.strategy,datasetFor:e.datasetFor,refine:e.refine}),n=at({name:`${r}-verify`,evaluator:e.evaluator,datasetFor:e.datasetFor,threshold:e.threshold});return{executor:c,verifier:n}}function Qe(){let e=Se({name:"strategy-entries"}),r=h([e.entries],([o])=>{let a=o;return new Map(a)},{name:"strategy-model",equals:(o,a)=>{let u=o,s=a;if(u.size!==s.size)return!1;for(let[l,m]of u){let f=s.get(l);if(!f||m.attempts!==f.attempts||m.successes!==f.successes)return!1}return!0}});function c(o,a,u){let s=te(o,a),l=e.get(s),m=(l?.attempts??0)+1,f=(l?.successes??0)+(u?1:0);e.set(s,{rootCause:o,intervention:a,attempts:m,successes:f,successRate:f/m})}function n(o,a){return e.get(te(o,a))}let i=r.subscribe(()=>{});function t(){i()}return{node:r,record:c,lookup:n,dispose:t}}function Vt(e,r,c,n,i){let t={...Z,...i?.severityWeights},o=i?.decayRate??ee,a=i?.effectivenessThreshold??.7,u=i?.effectivenessBoost??15,s=[e,r,c];return n&&s.push(n),h(s,l=>{let m=l[0],f=l[1],y=l[2],g=n?l[3]:0,E=t[m.severity??"medium"],N=(H()-y)/1e9,R=Xe(E,N,o,0),$=te(m.rootCause,m.intervention),A=f.get($);return A&&A.successRate>=a&&(R+=u),R+=g*20,R},{name:"priority-score"})}var st="intake",Lt="triage-output",it="retry",ut="verify-results",ct="__unrouted";function lt(e,r){let c=pe(r,Ve,(n,i)=>n.replace("{{item}}",JSON.stringify(i)));return n=>{let i=n.payload.item,t=[{role:"user",content:c(i)}],o=u=>({...n.payload,execution:{item:i,outcome:"failure",detail:u}}),a=u=>u instanceof Error?u.message:String(u);return Me(e,t,{onSuccess:u=>{let s;try{s=JSON.parse($e(String(u.content)))}catch(m){return o(`execute parse error: ${a(m)}`)}if(s==null||typeof s!="object"||Array.isArray(s))return o(`execute parse error: non-object response: ${JSON.stringify(s)}`);let l=s;return{...n.payload,execution:{item:i,outcome:l.outcome??"failure",detail:l.detail??"unknown",artifact:l.artifact}}},onFailure:(u,s)=>o(u==="complete"?"adapter completed without emitting DATA":`executor failed: ${a(s)}`)})}}function dt(e,r){let c=pe(r,Le,(n,i)=>{let[t,o]=i;return n.replace("{{execution}}",JSON.stringify(t)).replace("{{item}}",JSON.stringify(o))});return n=>{let{item:i,execution:t}=n.payload;if(t==null)return{...n.payload,verify:{verified:!1,findings:["verifier: prior execute stage produced no execution"],errorClass:"structural"}};let o=[{role:"user",content:c([t,i])}],a=s=>({...n.payload,verify:{verified:!1,findings:[s],errorClass:"self-correctable"}}),u=s=>s instanceof Error?s.message:String(s);return Me(e,o,{onSuccess:s=>{let l;try{l=JSON.parse($e(String(s.content)))}catch(f){return a(`verify parse error: ${u(f)}`)}if(l==null||typeof l!="object"||Array.isArray(l))return a(`verify parse error: non-object response: ${JSON.stringify(l)}`);let m=l;return{...n.payload,verify:{verified:m.verified===!0,findings:m.findings??[],errorClass:m.errorClass}}},onFailure:(s,l)=>a(s==="complete"?"verifier completed without emitting DATA":`verifier failed: ${u(l)}`)})}}var Ce=class extends xe{queues;executeFlow;jobs;gates;queueTopics;strategy;totalRetries;totalReingestions;priorityScores;constructor(r,c,n,i,t,o,a,u,s,l){super(r),this.queues=c,this.executeFlow=n,this.queueTopics=i,this.jobs=t,this.gates=o,this.strategy=a,this.totalRetries=u,this.totalReingestions=s,this.priorityScores=l}get intake(){return this.queues.topic(st)}get verifyResults(){return this.queues.topic(ut)}get retry(){return this.queues.topic(it)}get unrouted(){return this.queues.topic(ct)}stageNodes(){let r=this.queues,c=o=>r.has(o)?`queues::${o}::latest`:null,n=o=>o==null?[]:[o],i=M.flatMap(o=>n(c(o))),t=[];for(let[o]of this.gates)t.push(`gates::${o}/gate`);return[{label:"INTAKE",paths:n(c("intake"))},{label:"TRIAGE",paths:["triage"]},{label:"QUEUE",paths:i},{label:"GATE",paths:t},{label:"EXECUTE",paths:["executeFlow::execute::events"]},{label:"VERIFY",paths:["executeFlow::verify::events"]},{label:"REFLECT",paths:["reflect"]},{label:"STRATEGY",paths:["strategy"]}]}};function qt(e,r){let c=r.adapter,n=r.maxRetries??2,i=r.retainedLimit??1e3,t=r.errorClassifier??we,o=new Map;for(let d of M)o.set(d,{...Ae[d],...r.queues?.[d]});let a=Ne(`${e}/queues`,{defaultTopicOptions:{retainedLimit:i}}),u=a.topic(st),s=a.topic(Lt),l=a.topic(it),m=a.topic(ut),f=new Map;for(let d of M)f.set(d,a.topic(d));let y=a.topic(ct),g=Qe(),E=De(u.latest,g.node),N=pe(r.triagePrompt,He,(d,p)=>{let[x,I]=p;return d.replace("{{strategy}}",JSON.stringify(Array.from(I.entries()))).replace("{{item}}",JSON.stringify(x))}),R=Ze(c,[E],d=>{let p=d;return!p||!p[0]?"":N(p)},{name:"triage",format:"json"}),$=De(R,E),_=O([$],([d])=>{if(d==null)return;let[p,x]=d;if(!p?.route)return;let I=x?.[0],j={...p,...I};s.publish(j)}).subscribe(()=>{}),ye=new Set(M);for(let d of M)Ge(`bridge/${d}`,s,f.get(d),{map:p=>p.route===d?p:void 0});Ge("bridge/__unrouted",s,y,{map:d=>ye.has(d.route)?void 0:d});let L=new Map,U=new Map;for(let d of M)L.set(d,tt(`jobs/${d}`));let re=[];for(let d of M){let p=f.get(d),x=L.get(d),I=new WeakSet,j=O([p.events],([F])=>{let J=F??[];for(let k of J){if(I.has(k))continue;I.add(k);let D=x.enqueue(k);U.set(me(k),{route:d,id:D})}},{name:`jobs/${d}-mirror`});re.push(j.subscribe(()=>{}))}function G(d){let p=me(d),x=U.get(p);x&&(L.get(x.route)?.removeById(x.id),U.delete(p))}let ne=et("gates"),Q=new Map;for(let d of M){let p=o.get(d);if(!p.gated)continue;let x=f.get(d),I=ne.approvalGate(`${d}/gate`,x.latest,{maxPending:p.maxPending,startOpen:p.startOpen});Q.set(d,I)}let B=[];for(let d of M)o.get(d).gated&&Q.has(d)?B.push(Q.get(d).node):B.push(f.get(d).latest);B.push(l.latest);let oe=Ke(...B),z=r.executor??lt(c,r.executePrompt),ae=r.verifier??dt(c,r.verifyPrompt),ge=r.executeMaxPerPump??Number.MAX_SAFE_INTEGER,se=r.verifyMaxPerPump??Number.MAX_SAFE_INTEGER,q=rt(`${e}/executeFlow`,{stages:[{name:"execute",work:d=>z(d),maxPerPump:ge},{name:"verify",work:d=>ae(d),maxPerPump:se}]}),ie=O([oe],([d])=>{d!=null&&q.enqueue({item:d})},{name:"execute-enqueue"}),ue=ie.subscribe(()=>{}),K=r.maxReingestions??1,ce=Math.min(r.maxTotalRetries??n*10,100),le=Math.min(r.maxTotalReingestions??K*10,100),W=S(0),de=S(0);function be(d,p,x){return{item:x,execution:d,verified:p.verified,findings:p.findings??[],errorClass:p.errorClass}}function Te(d,p){g.record(p.rootCause,p.intervention,!0),m.publish(d),G(p)}function ve(d,p){let x=me(p),I=p.$retries??0,j={...p,$retries:I+1,summary:`[RETRY ${I+1}/${n}] ${x} \u2014 Previous attempt failed: ${d.findings.join("; ")}`,relatedTo:[x]};l.publish(j)}function Ue(d,p){g.record(p.rootCause,p.intervention,!1),m.publish(d),G(p);let x=me(p),I=p.$reingestions??0;I<K&&_e(de,le)&&u.publish({source:p.source,summary:`Verification failed for: ${x}`,evidence:d.findings.join(`
|
|
45
|
-
`),affectsAreas:p.affectsAreas,affectsEvalTasks:p.affectsEvalTasks,severity:p.severity??"high",relatedTo:[x],$reingestions:
|
|
44
|
+
`)}`}function Dt(e){let r=e.width??4,c=e.name??"errorCritique",n=e.maxFailureSamples??5,i=e.formatCritique??Ot;return{name:c,seed(t){return[t]},analyze(t,o){let a=qe(t),u=typeof e.failureThreshold=="function"?e.failureThreshold(t):e.failureThreshold,s=u===void 0&&!Number.isFinite(a),l=u??a,m=s?[...t].sort((w,_)=>w.score-_.score):t.filter(w=>w.score<l).slice().sort((w,_)=>w.score-_.score),f=m.slice(0,n),{best:y,bestScore:g}=ot(o,t),E={summary:"",score:a,weakTasks:f.map(w=>w.taskId)},A=i(f,E),R={kind:"errorCritique",best:y,failures:f,critiqueText:A},$=m.length>f.length?` (top ${f.length} retained)`:"";return{summary:`errorCritique iteration: mean=${a.toFixed(3)}, failures=${m.length}${$}/${t.length}, bestScore=${g.toFixed(3)}`,critique:R,weakTasks:f.map(w=>w.taskId),score:a}},async generate(t,o){if(o.length===0)throw new Error("errorCritique.generate: empty candidate batch \u2014 cannot derive prior for teacher");let a=Ft(t.critique)?t.critique:void 0,u=a!==void 0?a.best:o[o.length-1],s=a?.critiqueText??t.summary,l=a?.failures??[],m=0,y={prior:u,critique:s,failures:l,reportCost:g=>{m+=g}};try{if(e.parallel!==!1)return await Promise.all(Array.from({length:r},()=>e.teacher(y)));let g=[];for(let E=0;E<r;E++)g.push(await e.teacher(y));return g}finally{if(e.tokens!=null&&m>0){let g=e.tokens.cache??0;e.tokens.emit(g+m)}}}}}function _t(e){let{best:r,score:c,status:n}=e,i=Number.isFinite(c)?c.toFixed(3):String(c),t=r??void 0;return n==="converged"?{outcome:"success",detail:`refineLoop converged at score ${i}`,artifact:t}:n==="budget"?{outcome:"partial",detail:`refineLoop hit budget at score ${i}`,artifact:t}:{outcome:"failure",detail:`refineLoop errored (status=${n})`,artifact:t}}function Je(e){let r=e.name??"refine-executor",c=e.toOutput??_t;return n=>{let i=n.payload.item,t=je(e.seedFrom(i),e.evaluator,e.strategy,{...e.refine,dataset:e.datasetFor(i),name:`${r}/inner`}),o=h([t.status,t.best,t.score],([a,u,s])=>{let l=a;if(l!=="converged"&&l!=="budget"&&l!=="errored")return null;let m=c({best:u,score:s,status:l});return{...n.payload,execution:{item:i,...m}}},{name:`${r}/output`});return Re(o,a=>a!=null,{name:`${r}/gate-out`})}}function $t(e){if(e.length===0)return Number.NEGATIVE_INFINITY;let r=0;for(let c of e)r+=c.score;return r/e.length}function Mt(e){let{passCount:r,total:c,meanScore:n,threshold:i,missingArtifact:t}=e,o=Number.isFinite(n)?n.toFixed(3):String(n),a=!t&&c>0&&n>=i,u=t?["EXECUTE stage did not emit an artifact; cannot verify reactively"]:a?[`${r}/${c} eval tasks passed; mean score ${o} \u2265 ${i}`]:c===0?["No eval tasks were selected for this item \u2014 cannot verify"]:[`${r}/${c} eval tasks passed; mean score ${o} < threshold ${i}`];return a?{verified:!0,findings:u}:{verified:!1,findings:u,errorClass:"structural"}}function Gt(e){return e.artifact??null}function at(e){let r=e.name??"eval-verifier",c=e.threshold??.5,n=e.toOutput??Mt,i=e.extractArtifact??Gt;return t=>{let{item:o,execution:a}=t.payload;if(a==null)return{...t.payload,verify:{verified:!1,findings:["evalVerifier: prior execute stage produced no execution"],errorClass:"structural"}};let u=i(a,o);if(u==null)return{...t.payload,verify:n({scores:[],meanScore:Number.NEGATIVE_INFINITY,passCount:0,total:0,threshold:c,missingArtifact:!0})};let s=S([u],{name:`${r}/candidates`}),l=S(e.datasetFor(o),{name:`${r}/dataset`}),m;fe(()=>{m=e.evaluator(s,l)});let f=h([m],([y])=>{let g=y;if(g==null)return null;let E=$t(g),A=g.filter(R=>R.score>=c).length;return{...t.payload,verify:n({scores:g,meanScore:E,passCount:A,total:g.length,threshold:c})}},{name:`${r}/output`});return Re(f,y=>y!=null,{name:`${r}/gate-out`})}}function Ht(e){let r=e.name??"harness-pair",c=Je({name:`${r}-exec`,seedFrom:e.seedFrom,evaluator:e.evaluator,strategy:e.strategy,datasetFor:e.datasetFor,refine:e.refine}),n=at({name:`${r}-verify`,evaluator:e.evaluator,datasetFor:e.datasetFor,threshold:e.threshold});return{executor:c,verifier:n}}function Qe(){let e=Ne({name:"strategy-entries"}),r=h([e.entries],([o])=>{let a=o;return new Map(a)},{name:"strategy-model",equals:(o,a)=>{let u=o,s=a;if(u.size!==s.size)return!1;for(let[l,m]of u){let f=s.get(l);if(!f||m.attempts!==f.attempts||m.successes!==f.successes)return!1}return!0}});function c(o,a,u){let s=te(o,a),l=e.get(s),m=(l?.attempts??0)+1,f=(l?.successes??0)+(u?1:0);e.set(s,{rootCause:o,intervention:a,attempts:m,successes:f,successRate:f/m})}function n(o,a){return e.get(te(o,a))}let i=r.subscribe(()=>{});function t(){i()}return{node:r,record:c,lookup:n,dispose:t}}function Vt(e,r,c,n,i){let t={...Z,...i?.severityWeights},o=i?.decayRate??ee,a=i?.effectivenessThreshold??.7,u=i?.effectivenessBoost??15,s=[e,r,c];return n&&s.push(n),h(s,l=>{let m=l[0],f=l[1],y=l[2],g=n?l[3]:0,E=t[m.severity??"medium"],A=(H()-y)/1e9,R=Xe(E,A,o,0),$=te(m.rootCause,m.intervention),w=f.get($);return w&&w.successRate>=a&&(R+=u),R+=g*20,R},{name:"priority-score"})}var st="intake",Lt="triage-output",it="retry",ut="verify-results",ct="__unrouted";function lt(e,r){let c=pe(r,Ve,(n,i)=>n.replace("{{item}}",JSON.stringify(i)));return n=>{let i=n.payload.item,t=[{role:"user",content:c(i)}],o=u=>({...n.payload,execution:{item:i,outcome:"failure",detail:u}}),a=u=>u instanceof Error?u.message:String(u);return Me(e,t,{onSuccess:u=>{let s;try{s=JSON.parse($e(String(u.content)))}catch(m){return o(`execute parse error: ${a(m)}`)}if(s==null||typeof s!="object"||Array.isArray(s))return o(`execute parse error: non-object response: ${JSON.stringify(s)}`);let l=s;return{...n.payload,execution:{item:i,outcome:l.outcome??"failure",detail:l.detail??"unknown",artifact:l.artifact}}},onFailure:(u,s)=>o(u==="complete"?"adapter completed without emitting DATA":`executor failed: ${a(s)}`)})}}function dt(e,r){let c=pe(r,Le,(n,i)=>{let[t,o]=i;return n.replace("{{execution}}",JSON.stringify(t)).replace("{{item}}",JSON.stringify(o))});return n=>{let{item:i,execution:t}=n.payload;if(t==null)return{...n.payload,verify:{verified:!1,findings:["verifier: prior execute stage produced no execution"],errorClass:"structural"}};let o=[{role:"user",content:c([t,i])}],a=s=>({...n.payload,verify:{verified:!1,findings:[s],errorClass:"self-correctable"}}),u=s=>s instanceof Error?s.message:String(s);return Me(e,o,{onSuccess:s=>{let l;try{l=JSON.parse($e(String(s.content)))}catch(f){return a(`verify parse error: ${u(f)}`)}if(l==null||typeof l!="object"||Array.isArray(l))return a(`verify parse error: non-object response: ${JSON.stringify(l)}`);let m=l;return{...n.payload,verify:{verified:m.verified===!0,findings:m.findings??[],errorClass:m.errorClass}}},onFailure:(s,l)=>a(s==="complete"?"verifier completed without emitting DATA":`verifier failed: ${u(l)}`)})}}var Ce=class extends xe{queues;executeFlow;jobs;gates;queueTopics;strategy;totalRetries;totalReingestions;priorityScores;reflect;constructor(r,c,n,i,t,o,a,u,s,l,m){super(r),this.queues=c,this.executeFlow=n,this.queueTopics=i,this.jobs=t,this.gates=o,this.strategy=a,this.totalRetries=u,this.totalReingestions=s,this.reflect=l,this.priorityScores=m}get intake(){return this.queues.topic(st)}get verifyResults(){return this.queues.topic(ut)}get retry(){return this.queues.topic(it)}get unrouted(){return this.queues.topic(ct)}stageNodes(){let r=this.queues,c=o=>r.has(o)?`queues::${o}::latest`:null,n=o=>o==null?[]:[o],i=M.flatMap(o=>n(c(o))),t=[];for(let[o]of this.gates)t.push(`gates::${o}/gate`);return[{label:"INTAKE",paths:n(c("intake"))},{label:"TRIAGE",paths:["triage"]},{label:"QUEUE",paths:i},{label:"GATE",paths:t},{label:"EXECUTE",paths:["executeFlow::execute::events"]},{label:"VERIFY",paths:["executeFlow::verify::events"]},{label:"REFLECT",paths:["reflect"]},{label:"STRATEGY",paths:["strategy"]}]}};function qt(e,r){let c=r.adapter,n=r.maxRetries??2,i=r.retainedLimit??1e3,t=r.errorClassifier??we,o=new Map;for(let d of M)o.set(d,{...Ae[d],...r.queues?.[d]});let a=Se(`${e}/queues`,{defaultTopicOptions:{retainedLimit:i}}),u=a.topic(st),s=a.topic(Lt),l=a.topic(it),m=a.topic(ut),f=new Map;for(let d of M)f.set(d,a.topic(d));let y=a.topic(ct),g=Qe(),E=De(u.latest,g.node),A=pe(r.triagePrompt,He,(d,p)=>{let[x,k]=p;return d.replace("{{strategy}}",JSON.stringify(Array.from(k.entries()))).replace("{{item}}",JSON.stringify(x))}),R=Ze(c,[E],d=>{let p=d;return!p||!p[0]?"":A(p)},{name:"triage",format:"json"}),$=De(R,E),_=O([$],([d])=>{if(d==null)return;let[p,x]=d;if(!p?.route)return;let k=x?.[0],j={...p,...k};s.publish(j)}).subscribe(()=>{}),ye=new Set(M);for(let d of M)Ge(`bridge/${d}`,s,f.get(d),{map:p=>p.route===d?p:void 0});Ge("bridge/__unrouted",s,y,{map:d=>ye.has(d.route)?void 0:d});let L=new Map,U=new Map;for(let d of M)L.set(d,tt(`jobs/${d}`));let re=[];for(let d of M){let p=f.get(d),x=L.get(d),k=new WeakSet,j=O([p.events],([F])=>{let J=F??[];for(let N of J){if(k.has(N))continue;k.add(N);let D=x.enqueue(N);U.set(me(N),{route:d,id:D})}},{name:`jobs/${d}-mirror`});re.push(j.subscribe(()=>{}))}function G(d){let p=me(d),x=U.get(p);x&&(L.get(x.route)?.removeById(x.id),U.delete(p))}let ne=et("gates"),Q=new Map;for(let d of M){let p=o.get(d);if(!p.gated)continue;let x=f.get(d),k=ne.approvalGate(`${d}/gate`,x.latest,{maxPending:p.maxPending,startOpen:p.startOpen});Q.set(d,k)}let B=[];for(let d of M)o.get(d).gated&&Q.has(d)?B.push(Q.get(d).node):B.push(f.get(d).latest);B.push(l.latest);let oe=Ke(...B),z=r.executor??lt(c,r.executePrompt),ae=r.verifier??dt(c,r.verifyPrompt),ge=r.executeMaxPerPump??Number.MAX_SAFE_INTEGER,se=r.verifyMaxPerPump??Number.MAX_SAFE_INTEGER,q=rt(`${e}/executeFlow`,{stages:[{name:"execute",work:d=>z(d),maxPerPump:ge},{name:"verify",work:d=>ae(d),maxPerPump:se}]}),ie=O([oe],([d])=>{d!=null&&q.enqueue({item:d})},{name:"execute-enqueue"}),ue=ie.subscribe(()=>{}),K=r.maxReingestions??1,ce=Math.min(r.maxTotalRetries??n*10,100),le=Math.min(r.maxTotalReingestions??K*10,100),W=S(0),de=S(0);function be(d,p,x){return{item:x,execution:d,verified:p.verified,findings:p.findings??[],errorClass:p.errorClass}}function Te(d,p){g.record(p.rootCause,p.intervention,!0),m.publish(d),G(p)}function ve(d,p){let x=me(p),k=p.$retries??0,j={...p,$retries:k+1,summary:`[RETRY ${k+1}/${n}] ${x} \u2014 Previous attempt failed: ${d.findings.join("; ")}`,relatedTo:[x]};l.publish(j)}function Ue(d,p){g.record(p.rootCause,p.intervention,!1),m.publish(d),G(p);let x=me(p),k=p.$reingestions??0;k<K&&_e(de,le)&&u.publish({source:p.source,summary:`Verification failed for: ${x}`,evidence:d.findings.join(`
|
|
45
|
+
`),affectsAreas:p.affectsAreas,affectsEvalTasks:p.affectsEvalTasks,severity:p.severity??"high",relatedTo:[x],$reingestions:k+1})}let b=0,T=O([q.completed],([d])=>{let p=d??[];b>p.length&&(b=p.length);let x=b;b=p.length;for(let k=x;k<p.length;k++){let j=p[k],{item:F,execution:J,verify:N}=j.payload;if(J==null||N==null){G(F);continue}let D=be(J,N,F);if(D.verified){Te(D,F);continue}let Pe=D.errorClass??t({item:F,outcome:J.outcome,detail:D.findings.join("; ")}),Fe=F.$retries??0;Pe==="self-correctable"&&Fe<n&&_e(W,ce)?ve(D,F):Ue(D,F)}},{name:"verify-dispatch"}),C=T.subscribe(()=>{}),I=h([q.completed],()=>null,{name:"reflect",equals:()=>!1}),P;r.priority&&(P=jt(f,g,r));let v=new Ce(e,a,q,f,L,Q,g,W,de,I,P);v.addDisposer(_),v.addDisposer(ue),v.addDisposer(C),v.addDisposer(g.dispose);for(let d of re)v.addDisposer(d);if(v.add(E,{name:"triage-input"}),v.add(R,{name:"triage"}),v.add($,{name:"router-input"}),v.add(oe,{name:"execute-input"}),v.add(ie,{name:"execute-enqueue"}),v.add(T,{name:"verify-dispatch"}),v.add(I,{name:"reflect"}),v.add(g.node,{name:"strategy"}),v.addDisposer(I.subscribe(()=>{})),P)for(let[d,p]of P)v.add(p,{name:`priority/${d}`}),v.addDisposer(p.subscribe(()=>{}));v.mount("queues",a),v.mount("gates",ne),v.mount("executeFlow",q);for(let[d,p]of L)v.mount(`jobs/${d}`,p);return v.tagFactory("harnessLoop",Ye(r)),v}function jt(e,r,c){if(!c.lastInteractionNs)throw new Error("harnessLoop: `opts.priority` requires `opts.lastInteractionNs` \u2014 pass a Node<number> (e.g. `fromTimer(60_000)` or a `state(monotonicNs())` you bump on human interaction). Priority scores only decay when this node settles; an internal default would freeze age at construction time.");let n=c.lastInteractionNs,i=c.priority??{},t={...Z,...i.severityWeights},o=i.decayRate??ee,a=i.effectivenessThreshold??.7,u=i.effectivenessBoost??15,s=new Map;for(let[l,m]of e){let f=h([m.latest,r.node,n],y=>{let g=y[0];if(g==null)return 0;let E=t[g.severity??"medium"]??40,A=(H()-y[2])/1e9,R=E*Math.exp(-o*Math.max(0,A)),$=`${g.rootCause}\u2192${g.intervention}`,_=y[1]?.get($);return _&&_.successRate>=a&&(R+=u),R},{name:`priority/${l}`});s.set(l,f)}return s}function Jt(e,r){let c=ze(e,r),n={};for(let i of M){let t=e.queues.has(i)?e.queues.topic(i):null;n[i]=t?.retained().length??0}return{...c,queueDepths:n,strategyEntries:e.strategy.node.cache?.size??0,totalRetries:e.totalRetries.cache??0,totalReingestions:e.totalReingestions.cache??0}}function Qt(e){let r={};for(let{label:c,paths:n}of e.stageNodes())for(let i of n)r[i]=c;return r}function Ut(e,r){let c=r?.logger===null?null:r?.logger??console.log,n=r?.detail??"summary",i=H(),t=[],o=[],a=Qt(e);function u(){return(H()-i)/1e9}function s(l,m,f){let y={elapsed:u(),stage:l,type:m};n!=="summary"&&(y.summary=Bt(f)),n==="full"&&(y.data=f),o.push(y)}for(let[l,m]of Object.entries(a))try{let f=e.observe(l,{format:"stage-log",stageLabels:a,logger:c?y=>c(y):()=>{},includeTypes:["data","error","complete"]});f.onEvent(y=>{y.type==="data"?s(m,"data",y.data):y.type==="error"?s(m,"error",y.data):y.type==="complete"&&s(m,"complete",void 0)}),t.push(f)}catch(f){let y=f instanceof Error?f.message:String(f);s(m,"error",`observe-unavailable: ${l} \u2014 ${y}`),c&&c(`[${u().toFixed(3)}s] ${m.padEnd(9)} \u2717 observe-unavailable: ${y}`)}return{get events(){return o},dispose(){for(let l of t)l.dispose();t.length=0}}}function Bt(e){if(e==null)return"null";if(typeof e=="string")return ft(e,80);if(typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")return String(e);try{let r=JSON.stringify(e);return ft(r,120)}catch{return String(e)}}function ft(e,r){return e.length>r?`${e.slice(0,r-1)}\u2026`:e}export{nt as a,vt as b,ht as c,Et as d,xt as e,Rt as f,It as g,kt as h,Nt as i,St as j,M as k,Ae as l,Z as m,ee as n,te as o,we as p,He as q,Ve as r,Le as s,pe as t,wt as u,je as v,Pt as w,Dt as x,Je as y,at as z,Ht as A,Qe as B,Vt as C,lt as D,dt as E,Ce as F,qt as G,Jt as H,Ut as I,Yt as J};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as Re,k as Pe}from"./chunk-
|
|
1
|
+
import{d as Re,k as Pe}from"./chunk-VNC3TMVY.js";import{f as Oe}from"./chunk-626TESAC.js";import{x as pe}from"./chunk-VOPGGIL7.js";import{a as Z,b as le,i as Ne}from"./chunk-4VVTGLXJ.js";import{f as fe}from"./chunk-V5A7M7RJ.js";import{A as ee,D as be,E as U,F as B,m as J,p as D}from"./chunk-LYCLF26R.js";import{b as E,c as ye,d as ke,h as de,i as P,j as x}from"./chunk-CK2E7BTU.js";function Ce(r){return{describeKind:"producer",...r}}function oe(r,n){return B(i=>{let s=!0,u={emit(t){s&&i.emit(t)},error(t){s&&(s=!1,i.down([[x,t]]))},complete(){s&&(s=!1,i.down([[P]]))}},o;try{let t=r(u);o=typeof t=="function"?t:void 0}catch(t){return u.error(t),()=>{s=!1}}return()=>{s=!1;try{o?.()}catch{}}},Ce(n))}function Me(r,n,i){let s=!0,u,o=0,t=0,e={},a=[],c=()=>{let l=u;u=void 0;try{l?.()}catch{}};for(let l of n){let m=i?.name?`${i.name}::${l}`:l,g=i?.channelOpts?.[l],y=B(T=>(o++,()=>{t++,o>0&&t>=o&&t>=n.length&&c()}),Ce({...g,name:m}));e[l]=y,a.push(y)}let f={};for(let l of n)f[l]=m=>{s&&e[l].down([[E,m]])};f.error=l=>{s&&(s=!1,J(()=>{for(let m of a)m.down([[x,l]])}),c())},f.complete=()=>{s&&(s=!1,J(()=>{for(let l of a)l.down([[P]])}),c())};let p=r(f);return u=typeof p=="function"?p:void 0,Object.assign(e,{dispose:()=>{s&&(s=!1,J(()=>{for(let l of a)try{l.down([[P]])}catch{}}),c())}})}var he=class{ring;arr;constructor(n){n===Number.POSITIVE_INFINITY||n<=0?(this.arr=[],this.ring=null):(this.ring=new Oe(n),this.arr=null)}get length(){return this.ring!=null?this.ring.size:this.arr.length}push(n){this.ring!=null?this.ring.push(n):this.arr.push(n)}shift(){return this.ring!=null?this.ring.shift():this.arr.shift()}drain(){if(this.ring!=null){let i=this.ring.toArray();return this.ring.clear(),i}let n=this.arr;return this.arr=[],n}};function se(r){return r instanceof Error?r:new Error(String(r))}function De(r){return r===void 0?null:typeof r=="string"?Ne(r):r}function z(r,n){let{name:i,onTransportError:s,retry:u,backpressure:o,batchSize:t=Number.POSITIVE_INFINITY,flushIntervalMs:e=0,serialize:a,stopOn:c,onUpstreamMessage:f,onDispose:p,send:d,sendBatch:l,ctx:m}=n;if(!d&&!l)throw new Error("reactiveSink: `send` or `sendBatch` must be provided");let g=m,y=Math.max(1,u?.maxAttempts??1),T=De(u?.backoff??(y>1?"exponential":void 0)),h=u?.shouldRetry??(()=>!0),b=l!==void 0||t<Number.POSITIVE_INFINITY||e>0,w=k=>i?`${i}::${k}`:void 0,v=U(void 0,{equals:()=>!1,name:w("sent")}),S=U(null,{name:w("failed")}),L=U(0,{name:w("inFlight")}),F=U(null,{name:w("errors")}),K=b?U(0,{name:w("buffered")}):void 0,Y=o?U(!1,{name:w("paused")}):void 0,ie=0,Q=k=>{ie+=k,L.down([[E,ie]])},O=k=>{try{s?.(k)}catch{}try{F.down([[E,k]])}catch{}},q=new Set,V=k=>{q.add(k);let N=()=>q.delete(k);k.then(N,N)},I=(k,N,C)=>{let A=T?T(N-1,C,null):0,H=A==null?0:typeof A=="number"&&A>0?A:0,j=Math.max(1,Math.ceil(H/1e6));return new Promise(M=>{setTimeout(()=>M(k()),j)})},$=k=>k!=null&&typeof k=="object"&&typeof k.then=="function",_=k=>{let N;try{N=a?a(k):k}catch(M){let R=se(M);return O({stage:"serialize",error:R,value:k}),S.down([[E,{value:k,error:R,attempts:0}]]),Promise.resolve()}let C=0,A=M=>{Q(-1);let R=se(M);if(O({stage:"send",error:R,value:k,attempt:C}),!(C<y&&h(R,C))){S.down([[E,{value:k,error:R,attempts:C}]]);return}return I(j,C,R)},H=()=>{Q(-1),v.down([[E,k]])};function j(){C+=1,Q(1);let M;try{M=d(N,g)}catch(R){return A(R)??Promise.resolve()}return $(M)?M.then(H,R=>A(R)):(H(),Promise.resolve())}return j()},te=o?.maxBuffer??Number.POSITIVE_INFINITY,X=new he(te),G,ae=!1,me=()=>{K?.down([[E,X.length]])},ue=k=>{Y&&Y.down([[E,k]])},we=o?.strategy??"drop-oldest",Be=(k,N)=>{let C={value:k,payload:N};if(X.length<te)return X.push(C),me(),!0;if(we==="drop-oldest"){let H=X.shift();return X.push(C),me(),ue(!0),S.down([[E,{value:H.value,error:new Error("backpressure: buffer overflow \u2014 dropped oldest"),attempts:0}]]),!0}if(we==="drop-newest")return ue(!0),S.down([[E,{value:k,error:new Error("backpressure: buffer overflow \u2014 dropped newest"),attempts:0}]]),!1;let A=new Error("backpressure: buffer overflow");return O({stage:"send",error:A,value:k}),S.down([[E,{value:k,error:A,attempts:0}]]),ue(!0),!1},Fe=k=>{let N=0,C=k.map(M=>M.payload),A=M=>{Q(-1);let R=se(M);if(O({stage:"send",error:R,value:k.map(ge=>ge.value),attempt:N}),!(N<y&&h(R,N))){for(let{value:ge}of k)S.down([[E,{value:ge,error:R,attempts:N}]]);return}return I(j,N,R)},H=()=>{Q(-1);for(let{value:M}of k)v.down([[E,M]])};function j(){N+=1,Q(1);let M;try{M=l(C,g)}catch(R){return A(R)??Promise.resolve()}return $(M)?M.then(H,R=>A(R)):(H(),Promise.resolve())}return j()},He=async k=>{for(let N of k)await ze(N.value,N.payload)},ze=(k,N)=>{let C=0,A=M=>{Q(-1);let R=se(M);if(O({stage:"send",error:R,value:k,attempt:C}),!(C<y&&h(R,C))){S.down([[E,{value:k,error:R,attempts:C}]]);return}return I(j,C,R)},H=()=>{Q(-1),v.down([[E,k]])};function j(){C+=1,Q(1);let M;try{M=d(N,g)}catch(R){return A(R)??Promise.resolve()}return $(M)?M.then(H,R=>A(R)):(H(),Promise.resolve())}return j()},ne=()=>{if(ae||X.length===0)return Promise.resolve();let k=X.drain();if(me(),ue(!1),l!==void 0){let C=Fe(k);return V(C),C}let N=He(k);return V(N),N},qe=()=>{G!==void 0||ae||e<=0||(G=setTimeout(()=>{G=void 0,ne()},e))},Ue=r.subscribe(k=>{for(let N of k){let C=N[0];if(C!==E)try{f?.(N)}catch{}if(C===E){let A=N[1];if(b){let H;if(a)try{H=a(A)}catch(M){let R=se(M);O({stage:"serialize",error:R,value:A}),S.down([[E,{value:A,error:R,attempts:0}]]);continue}else H=A;if(!Be(A,H))continue;X.length>=t?ne():qe()}else{let H=_(A);V(H)}}else ee.messageTier(C)>=3&&b&&(G!==void 0&&(clearTimeout(G),G=void 0),ne())}}),Se;if(c){let k=!1;Se=c.subscribe(N=>{if(!k){k=!0;return}N.length>0&&!Te&&Ee()})}let Te=!1,Ee=()=>{if(Te)return;Te=!0,G!==void 0&&(clearTimeout(G),G=void 0),b&&ne(),ae=!0,Se?.(),Ue();let k=N=>{try{N.down([[de]])}catch{}};k(F),k(S),k(v),k(L),K&&k(K),Y&&k(Y);try{p?.()}catch{}},ce={dispose:Ee,sent:v,failed:S,inFlight:L,errors:F};return b&&(ce.buffered=K,ce.flush=async()=>{ae||(await ne(),await Promise.all(q))}),Y&&(ce.paused=Y),ce}function W(r){return{describeKind:"producer",...r}}function Ke(r,n){let{parse:i,closeOnTeardown:s=!1,...u}=n??{};return B(o=>{let t=!0,e,a=()=>{let T=e;e=void 0,T?.()},c=T=>{t&&(t=!1,o.down([T]),a())},f=(T,h=T)=>{if(t)try{let b=T!==null&&typeof T=="object"&&"data"in T?T.data:T,w=i?i(b,h):b;o.emit(w)}catch(b){c([x,b])}},p=T=>{c([x,T])},d=()=>{c([P])};if(typeof r=="function"){try{if(e=r(f,p,d),typeof e!="function")throw new Error("fromWebSocket register contract violation: register must return cleanup callable")}catch(T){c([x,T])}return()=>{t=!1,a()}}let l=r,m=T=>f(T,T),g=T=>p(T),y=()=>d();return l.addEventListener("message",m),l.addEventListener("error",g),l.addEventListener("close",y),e=()=>{l.removeEventListener("message",m),l.removeEventListener("error",g),l.removeEventListener("close",y),s&&l.close()},()=>{t=!1,a()}},W(u))}function Tr(r,n){return oe(r,n)}function $e(r,n){let{method:i="GET",headers:s,body:u,transform:o=b=>b.json(),timeoutNs:t=30*1e9,signal:e,completeAfterFetch:a=!1,refetchOnSubscribe:c=!1,...f}=n??{},p=U(0,{name:`${f.name??"http"}/fetchCount`}),d=U(0,{name:`${f.name??"http"}/lastUpdated`}),l=U(!1,{name:`${f.name??"http"}/fetched`}),m=0,g=u!==void 0?typeof u=="string"?u:JSON.stringify(u):void 0,y=b=>{let w=new AbortController,v=!0;if(e?.aborted)return v=!1,b.down([[x,e.reason??new Error("Aborted")]]),()=>{};e?.addEventListener("abort",()=>w.abort(e.reason),{once:!0});let S=setTimeout(()=>w.abort(new Error("Request timeout")),Math.ceil(t/1e6));return fetch(r,{method:i,headers:s,body:g,signal:w.signal}).then(async L=>{if(clearTimeout(S),!v)return;if(!L.ok)throw new Error(`HTTP ${L.status}: ${L.statusText}`);let F=await o(L);v&&(J(()=>{m+=1,p.down([[E,m]]),d.down([[E,D()]]),l.down([[E,!0]]),b.emit(F)}),a&&b.down([[P]]))}).catch(L=>{clearTimeout(S),v&&(L&&L.name==="AbortError"||b.down([[x,L]]))}),()=>{v=!1,w.abort()}},T=B(b=>y({emit:w=>b.emit(w),down:w=>b.down(w)}),{...W(f),resubscribable:c});return{...Pe(T),fetchCount:p,lastUpdated:d,fetched:l}}function gr(r,n,i){let{method:s="POST",headers:u={"Content-Type":"application/json"},serialize:o=m=>JSON.stringify(m),timeoutNs:t,batchFormat:e="json-array",batchSize:a,flushIntervalMs:c,retry:f,onTransportError:p}=i??{},d=async m=>{let g=t!==void 0?new AbortController:void 0,y;g&&t!==void 0&&(y=setTimeout(()=>g.abort(new Error("Request timeout")),Math.ceil(t/1e6)));try{let T=await fetch(n,{method:s,headers:u,body:m,signal:g?.signal}),h=async()=>{try{await T.arrayBuffer?.()}catch{}};if(!T.ok)throw await h(),new Error(`HTTP ${T.status}: ${T.statusText}`);await h()}finally{y!==void 0&&clearTimeout(y)}};return a!==void 0||c!==void 0?z(r,{onTransportError:p,retry:f,batchSize:a,flushIntervalMs:c,sendBatch:async m=>{let g;e==="ndjson"?g=m.map(y=>{let T=o(y);return typeof T=="string"?T:new TextDecoder().decode(T)}).join(`
|
|
2
2
|
`):g=JSON.stringify(m),await d(g)}}):z(r,{onTransportError:p,retry:f,serialize:o,send:async m=>{await d(m)}})}function Ae(r){return Symbol.keyFor(r)??r.description??"message"}function re(r,n){return typeof r=="string"?r:n(r)}function Le(r,n){let i=`event: ${r}
|
|
3
3
|
`;if(n!==void 0){let s=n.split(/\r?\n/);for(let u of s)i+=`data: ${u}
|
|
4
4
|
`}return`${i}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as G}from"./chunk-D27JNOLZ.js";import{j as z}from"./chunk-
|
|
1
|
+
import{a as G}from"./chunk-D27JNOLZ.js";import{j as z}from"./chunk-626TESAC.js";import{D as H,E as M,G as N,o as R}from"./chunk-LYCLF26R.js";function q(t){for(let c of t){let m=c.codePointAt(0);if(m>=19968&&m<=40959||m>=13312&&m<=19903||m>=12288&&m<=12351||m>=12352&&m<=12447||m>=12448&&m<=12543||m>=44032&&m<=55215||m>=65280&&m<=65519)return!0}return!1}var E=new Set(["\uFF0C","\uFF0E","\uFF01","\uFF1A","\uFF1B","\uFF1F","\u3001","\u3002","\u30FB","\uFF09","\u3015","\u3009","\u300B","\u300D","\u300F","\u3011"]),F=new Set([".",",","!","?",":",";",")","]","}","%",'"',"\u201D","\u2019","\xBB","\u203A","\u2026"]);function D(t){return t.replace(/[\t\n\r\f ]+/g," ").replace(/^ | $/g,"")}function O(t){let c=new Intl.Segmenter(void 0,{granularity:"word"}),m=[];for(let f of c.segment(t)){let h=f.segment,w=f.isWordLike??!1,u=[],s=[],r=[],p="",n=null;for(let i of h){let S;i===" "?S="space":i==="\u200B"?S="zero-width-break":i==="\xAD"?S="soft-hyphen":i===`
|
|
2
2
|
`?S="hard-break":S="text",n!==null&&S===n?p+=i:(n!==null&&(u.push(p),s.push(n==="text"&&w),r.push(n)),p=i,n=S)}n!==null&&(u.push(p),s.push(n==="text"&&w),r.push(n)),m.push({texts:u,isWordLike:s,kinds:r})}return m}function V(t,c,m,f,h){let w=D(t);if(w.length===0)return[];let u=O(w),s=new Intl.Segmenter(void 0,{granularity:"grapheme"}),r=[],p=[],n=[];for(let g of u)for(let o=0;o<g.texts.length;o++)r.push(g.texts[o]),p.push(g.kinds[o]),n.push(g.isWordLike[o]);let i=[],S=[],B=[];for(let g=0;g<r.length;g++){let o=r[g],y=p[g],I=n[g];if(y==="text"&&!I&&i.length>0&&S[S.length-1]==="text"&&o.length===1&&(F.has(o)||E.has(o))){i[i.length-1]+=o;continue}if(o==="-"&&i.length>0&&S[S.length-1]==="text"&&B[B.length-1]){i[i.length-1]+=o;continue}i.push(o),S.push(y),B.push(I)}let l=f.get(c);l||(l=new Map,f.set(c,l));function b(g){let o=l.get(g);if(o===void 0){h&&(h.misses+=1);let y=m.measureSegment(g,c).width;o=Number.isFinite(y)&&y>=0?y:0,l.set(g,o)}else h&&(h.hits+=1);return o}let d=[];for(let g=0;g<i.length;g++){let o=i[g],y=S[g];if(y!=="text"){d.push({text:o,width:y==="space"?b(" ")*o.length:0,kind:y,graphemeWidths:null});continue}if(q(o)){let a="";for(let x of s.segment(o)){let k=x.segment;if(a.length>0&&E.has(k)){a+=k;continue}if(a.length>0){let L=b(a);d.push({text:a,width:L,kind:"text",graphemeWidths:null})}a=k}if(a.length>0){let x=b(a);d.push({text:a,width:x,kind:"text",graphemeWidths:null})}continue}let I=b(o),e=null;if(B[g]&&o.length>1){let a=[];for(let x of s.segment(o))a.push(b(x.segment));a.length>1&&(e=a)}d.push({text:o,width:I,kind:"text",graphemeWidths:e})}return d}function J(t,c,m,f,h){if(t.length===0)return{lines:[],lineCount:0};let w=[],u=0,s=!1,r=0,p=0,n=0,i=0,S=-1,B=0,l=h.get(f);l||(l=new Map,h.set(f,l));let b=l.get("-");b===void 0&&(b=m.measureSegment("-",f).width,l.set("-",b));function d(e=n,a=i,x=u){let k="";for(let L=r;L<e;L++){let W=t[L];if(!(W.kind==="soft-hyphen"||W.kind==="hard-break"))if(L===r&&p>0&&W.graphemeWidths){let P=[...new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(W.text)].map(K=>K.segment);k+=P.slice(p).join("")}else k+=W.text}if(a>0&&e<t.length){let L=t[e],v=[...new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(L.text)].map(K=>K.segment),P=r===e?p:0;k+=v.slice(P,a).join("")}e>0&&t[e-1]?.kind==="soft-hyphen"&&!(r===e&&p>0)&&(k+="-"),w.push({text:k,width:x,startSegment:r,startGrapheme:p,endSegment:e,endGrapheme:a}),u=0,s=!1,S=-1,B=0}function g(e){return e==="space"||e==="zero-width-break"||e==="soft-hyphen"}function o(e,a,x){s=!0,r=e,p=a,n=e+1,i=0,u=x}function y(e,a,x){s=!0,r=e,p=a,n=e,i=a+1,u=x}for(let e=0;e<t.length;e++){let a=t[e];if(a.kind==="hard-break"){s?d():w.push({text:"",width:0,startSegment:e,startGrapheme:0,endSegment:e,endGrapheme:0}),r=e+1,p=0;continue}let x=a.width;if(!s){x>c&&a.graphemeWidths?I(e,0,a.graphemeWidths):o(e,0,x),g(a.kind)&&(S=e+1,B=a.kind==="space"?u-x:u);continue}let k=u+x;if(k>c+.005){if(g(a.kind)){u+=x,n=e+1,i=0,d(e+1,0,a.kind==="space"?u-x:u);continue}if(S>=0){d(S,0,B),e--;continue}if(x>c&&a.graphemeWidths){d(),I(e,0,a.graphemeWidths);continue}d(),e--;continue}u=k,n=e+1,i=0,g(a.kind)&&(S=e+1,B=a.kind==="space"?u-x:u)}return s&&d(),{lines:w,lineCount:w.length};function I(e,a,x){for(let k=a;k<x.length;k++){let L=x[k];if(!s){y(e,k,L);continue}u+L>c+.005?(d(),y(e,k,L)):(u+=L,n=e,i=k+1)}s&&n===e&&i===x.length&&(n=e+1,i=0)}}function A(t){return t==="space"||t==="zero-width-break"||t==="soft-hyphen"}var T=null;function _(){return T===null&&(T=new Intl.Segmenter(void 0,{granularity:"grapheme"})),T}function j(t,c,m){if(c===0&&m<0)return t.text;let f=[..._().segment(t.text)].map(w=>w.segment),h=m<0?f.length:m;return f.slice(c,h).join("")}function C(t,c,m,f,h,w){let u="";for(let s=c;s<f;s++){let r=t[s];r.kind==="soft-hyphen"||r.kind==="hard-break"||(s===c&&m>0?u+=j(r,m,-1):u+=r.text)}if(h>0&&f<t.length){let s=t[f];u+=j(s,c===f?m:0,h)}return w&&(u+="-"),u}function $(t){if(!t?.adapter||!t.font)return 0;let c=t.cache;if(c){let m=c.get(t.font);m||(m=new Map,c.set(t.font,m));let f=m.get("-");return f===void 0&&(f=t.adapter.measureSegment("-",t.font).width,m.set("-",f)),f}return t.adapter.measureSegment("-",t.font).width}function te(t,c,m,f){let h=c.segmentIndex,w=c.graphemeIndex;if(h>=t.length)return null;if(w===0){for(;h<t.length;){let e=t[h];if(e.kind==="hard-break")return{text:"",width:0,start:{segmentIndex:c.segmentIndex,graphemeIndex:0},end:{segmentIndex:h+1,graphemeIndex:0}};if(e.kind==="space"||e.kind==="zero-width-break"||e.kind==="soft-hyphen"){h+=1;continue}break}if(h>=t.length)return null}let u=$(f),s=h,r=h===c.segmentIndex?w:0,p=0,n=s,i=0,S=!1,B=-1,l=0,b=0,d=!1,g=(e,a,x,k)=>{B=e,l=a,b=x,d=k==="soft-hyphen"},o=(e,a,x)=>{for(let k=a;k<x.length;k++){let L=x[k];if(!S){p=L,n=e,i=k+1,S=!0;continue}if(p+L>m+.005)return!0;p+=L,n=e,i=k+1}return n===e&&i===x.length&&(n=e+1,i=0),!1};if(r>0&&s<t.length){let e=t[s];if(e.graphemeWidths){if(o(s,r,e.graphemeWidths))return{text:C(t,s,r,n,i,!1),width:p,start:{segmentIndex:s,graphemeIndex:r},end:{segmentIndex:n,graphemeIndex:i}};h=n}}for(;h<t.length;){let e=t[h];if(e.kind==="hard-break"){if(S){let k=n>0&&t[n-1]?.kind==="soft-hyphen";return{text:C(t,s,r,n,i,k),width:p+(k?u:0),start:{segmentIndex:s,graphemeIndex:r},end:{segmentIndex:n,graphemeIndex:i}}}return{text:"",width:0,start:{segmentIndex:s,graphemeIndex:r},end:{segmentIndex:h+1,graphemeIndex:0}}}let a=e.width;if(!S){if(a>m&&e.graphemeWidths){if(o(h,0,e.graphemeWidths))return{text:C(t,s,r,n,i,!1),width:p,start:{segmentIndex:s,graphemeIndex:r},end:{segmentIndex:n,graphemeIndex:i}};h=n;continue}p=a,n=h+1,i=0,S=!0,A(e.kind)&&g(h+1,0,e.kind==="space"?p-a:p,e.kind),h+=1;continue}let x=p+a;if(x>m+.005){if(A(e.kind)){n=h+1,i=0;let L=e.kind==="soft-hyphen",W=e.kind==="space"?p:p+(L?u:0);return{text:C(t,s,r,n,i,L),width:W,start:{segmentIndex:s,graphemeIndex:r},end:{segmentIndex:n,graphemeIndex:i}}}return B>=0?{text:C(t,s,r,B,l,d),width:b+(d?u:0),start:{segmentIndex:s,graphemeIndex:r},end:{segmentIndex:B,graphemeIndex:l}}:a>m&&e.graphemeWidths?{text:C(t,s,r,n,i,!1),width:p,start:{segmentIndex:s,graphemeIndex:r},end:{segmentIndex:n,graphemeIndex:i}}:{text:C(t,s,r,n,i,!1),width:p,start:{segmentIndex:s,graphemeIndex:r},end:{segmentIndex:n,graphemeIndex:i}}}p=x,n=h+1,i=0,A(e.kind)&&g(h+1,0,e.kind==="space"?p-a:p,e.kind),h+=1}if(!S)return null;let y=n>0&&t[n-1]?.kind==="soft-hyphen";return{text:C(t,s,r,n,i,y),width:p+(y?u:0),start:{segmentIndex:s,graphemeIndex:r},end:{segmentIndex:n,graphemeIndex:i}}}function ne(t,c,m=0){let f=[t];for(let h=0;h<c.length;h++){let w=c[h],u=[];for(let s=0;s<f.length;s++){let r=f[s];if(w.right<=r.left||w.left>=r.right){u.push(r);continue}w.left>r.left&&u.push({left:r.left,right:w.left}),w.right<r.right&&u.push({left:w.right,right:r.right})}f=u}return m>0?f.filter(h=>h.right-h.left>=m):f}function Q(t,c,m){let f=[],h=new Intl.Segmenter(void 0,{granularity:"grapheme"});for(let w=0;w<t.lines.length;w++){let u=t.lines[w],s=w*m,r=0;for(let p=u.startSegment;p<c.length;p++){let n=c[p];if(n.kind==="soft-hyphen"||n.kind==="hard-break"){if(p>=u.endSegment&&u.endGrapheme===0)break;continue}let i=[...h.segment(n.text)].map(l=>l.segment);if(i.length===0)continue;let S=p===u.startSegment?u.startGrapheme:0,B;if(p<u.endSegment)B=i.length;else if(p===u.endSegment&&u.endGrapheme>0)B=u.endGrapheme;else break;for(let l=S;l<B;l++){let b=n.graphemeWidths?n.graphemeWidths[l]:n.width/i.length;f.push({x:r,y:s,width:b,height:m,line:w}),r+=b}}}return f}function re(t){let{adapter:c,name:m="reactive-layout"}=t,f=new z(m),h=new Map,w=M(t.text??"",{name:"text"}),u=M(t.font??"16px sans-serif",{name:"font"}),s=M(t.lineHeight??20,{name:"line-height"}),r=M(Math.max(0,t.maxWidth??800),{name:"max-width"});function p(l,b){if(l===null||b===null)return l===b;if(l.length!==b.length)return!1;for(let d=0;d<l.length;d++)if(l[d]!==b[d])return!1;return!0}let n=H([w,u],(l,b,d)=>{let g=l[0],o=g!=null&&g.length>0?g.at(-1):d.prevData[0],y=l[1],I=y!=null&&y.length>0?y.at(-1):d.prevData[1],e=R(),a={hits:0,misses:0},x=V(o,I,c,h,a),k=R()-e,L=a.hits+a.misses,W=L===0?1:a.hits/L,v=n.meta;v&&(G(v["cache-hit-rate"],W),G(v["segment-count"],x.length),G(v["layout-time-ns"],k)),b.emit(x);let P=()=>{h.clear(),c.clearCache?.()};return{deactivate:P,invalidate:P}},{name:"segments",describeKind:"derived",meta:{"cache-hit-rate":0,"segment-count":0,"layout-time-ns":0},equals:(l,b)=>{let d=l,g=b;if(d==null||g==null)return d===g;if(d.length!==g.length)return!1;for(let o=0;o<d.length;o++){let y=d[o],I=g[o];if(y.text!==I.text||y.width!==I.width||y.kind!==I.kind||!p(y.graphemeWidths??null,I.graphemeWidths??null))return!1}return!0}}),i=N([n,r,u],([l,b,d])=>J(l,b,c,d,h),{name:"line-breaks",equals:(l,b)=>{let d=l,g=b;if(d==null||g==null)return d===g;if(d.lineCount!==g.lineCount)return!1;for(let o=0;o<d.lines.length;o++){let y=d.lines[o],I=g.lines[o];if(y.text!==I.text||y.width!==I.width||y.startSegment!==I.startSegment||y.startGrapheme!==I.startGrapheme||y.endSegment!==I.endSegment||y.endGrapheme!==I.endGrapheme)return!1}return!0}}),S=N([i,s],([l,b])=>l.lineCount*b,{name:"height"}),B=N([i,n,s],([l,b,d])=>Q(l,b,d),{name:"char-positions",equals:(l,b)=>{let d=l,g=b;if(d==null||g==null)return d===g;if(d.length!==g.length)return!1;for(let o=0;o<d.length;o++)if(d[o].x!==g[o].x||d[o].y!==g[o].y||d[o].width!==g[o].width)return!1;return!0}});return f.add(w,{name:"text"}),f.add(u,{name:"font"}),f.add(s,{name:"line-height"}),f.add(r,{name:"max-width"}),f.add(n,{name:"segments"}),f.add(i,{name:"line-breaks"}),f.add(S,{name:"height"}),f.add(B,{name:"char-positions"}),{graph:f,setText:l=>f.set("text",l),setFont:l=>f.set("font",l),setLineHeight:l=>f.set("line-height",l),setMaxWidth:l=>f.set("max-width",Math.max(0,l)),segments:n,lineBreaks:i,height:S,charPositions:B}}export{V as a,J as b,te as c,ne as d,Q as e,re as f};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{e as ce}from"./chunk-
|
|
1
|
+
import{e as ce}from"./chunk-VQ4A6T2A.js";import{a as se,b as L}from"./chunk-5QDBSZBV.js";import{j as P}from"./chunk-626TESAC.js";import{f as ae,h as ie}from"./chunk-V5A7M7RJ.js";import{i as ne,j as U}from"./chunk-LYCLF26R.js";import{b,h as _,i as T,j as W}from"./chunk-CK2E7BTU.js";import{b as Oe,c as re,d as te,e as oe}from"./chunk-QYADASLV.js";var ke={};Oe(ke,{ACTOR_KEY:()=>F,COMMAND_HANDLERS:()=>A,CQRS_EVENT_HANDLERS:()=>S,CRON_HANDLERS:()=>D,CommandHandler:()=>me,EVENT_HANDLERS:()=>G,EventHandler:()=>ve,GRAPHREFLY_REQUEST_GRAPH:()=>R,GRAPHREFLY_ROOT_GRAPH:()=>v,GraphCron:()=>fe,GraphInterval:()=>he,GraphReflyEventExplorer:()=>x,GraphReflyGuard:()=>Re,GraphReflyGuardImpl:()=>I,GraphReflyModule:()=>Q,INTERVAL_HANDLERS:()=>O,InjectCqrsGraph:()=>de,InjectGraph:()=>ue,InjectNode:()=>pe,ObserveGateway:()=>B,OnGraphEvent:()=>le,QUERY_HANDLERS:()=>H,QueryHandler:()=>ye,SAGA_HANDLERS:()=>N,SagaHandler:()=>ge,fromHeader:()=>Ee,fromJwtPayload:()=>V,getActor:()=>we,getGraphToken:()=>m,getNodeToken:()=>y,observeSSE:()=>Me,observeSubscription:()=>Ce,toObservable:()=>se});import{Inject as j}from"@nestjs/common";var v=Symbol.for("graphrefly:root-graph");var R=Symbol.for("graphrefly:request-graph");function m(s){return Symbol.for(`graphrefly:graph:${s}`)}function y(s){return Symbol.for(`graphrefly:node:${s}`)}var G=new Map,O=new Map,D=new Map,A=new Map,S=new Map,H=new Map,N=new Map;function ue(s){return s==="request"?j(R):j(s?m(s):v)}function de(s){return j(m(s))}function pe(s){return j(y(s))}function le(s){return(e,r)=>{let t=r.name;r.addInitializer(function(){let o=this.constructor,n=G.get(o)??[];n.push({nodeName:s,methodKey:t}),G.set(o,n)})}}function he(s){return(e,r)=>{let t=r.name;r.addInitializer(function(){let o=this.constructor,n=O.get(o)??[];n.push({ms:s,methodKey:t}),O.set(o,n)})}}function fe(s){return(e,r)=>{let t=r.name;r.addInitializer(function(){let o=this.constructor,n=D.get(o)??[];n.push({expr:s,methodKey:t}),D.set(o,n)})}}function me(s,e){return(r,t)=>{let o=t.name;t.addInitializer(function(){let n=this.constructor,a=A.get(n)??[];a.push({cqrsName:s,commandName:e,methodKey:o}),A.set(n,a)})}}function ve(s,e){return(r,t)=>{let o=t.name;t.addInitializer(function(){let n=this.constructor,a=S.get(n)??[];a.push({cqrsName:s,eventName:e,methodKey:o}),S.set(n,a)})}}function ye(s,e){return(r,t)=>{let o=t.name;t.addInitializer(function(){let n=this.constructor,a=H.get(n)??[];a.push({cqrsName:s,projectionName:e,methodKey:o}),H.set(n,a)})}}function ge(s,e,r){return(t,o)=>{let n=o.name;o.addInitializer(function(){let a=this.constructor,c=N.get(a)??[];c.push({cqrsName:s,eventNames:r,sagaName:e,methodKey:n}),N.set(a,c)})}}var be=0,x=class{constructor(e,r){this.graph=e;this.moduleRef=r}disposers=[];scheduleNodeNames=[];onModuleInit(){this.wireEvents(),this.wireIntervals(),this.wireCrons(),this.wireCqrsCommands(),this.wireCqrsEvents(),this.wireCqrsQueries(),this.wireCqrsSagas()}onModuleDestroy(){for(let e of this.disposers)e();this.disposers.length=0;for(let e of this.scheduleNodeNames)try{this.graph.remove(e)}catch{}this.scheduleNodeNames.length=0}wireEvents(){for(let[e,r]of G){let t=this.resolveInstance(e);if(t)for(let o of r)this.wireEventHandler(t,o)}}wireEventHandler(e,r){let t=e[r.methodKey];if(typeof t!="function")return;let o=t.bind(e),a=this.observeNode(r.nodeName).subscribe(c=>{for(let l of c)l[0]===b&&o(l[1])});this.disposers.push(a)}wireIntervals(){for(let[e,r]of O){let t=this.resolveInstance(e);if(t)for(let o of r)this.wireIntervalHandler(t,e,o)}}wireIntervalHandler(e,r,t){let o=e[t.methodKey];if(typeof o!="function")return;let n=o.bind(e),c=`__schedule__.${r.name??"anonymous"}.${String(t.methodKey)}.${be++}`,l=ae(t.ms,{period:t.ms,name:c});this.graph.add(l),this.scheduleNodeNames.push(c);let p=this.observeNode(c).subscribe(u=>{for(let d of u)d[0]===b&&n(d[1])});this.disposers.push(p)}wireCrons(){for(let[e,r]of D){let t=this.resolveInstance(e);if(t)for(let o of r)this.wireCronHandler(t,e,o)}}wireCronHandler(e,r,t){let o=e[t.methodKey];if(typeof o!="function")return;let n=o.bind(e),c=`__schedule__.${r.name??"anonymous"}.${String(t.methodKey)}.${be++}`,l=ie(t.expr,{name:c});this.graph.add(l),this.scheduleNodeNames.push(c);let p=this.observeNode(c).subscribe(u=>{for(let d of u)d[0]===b&&n(d[1])});this.disposers.push(p)}wireCqrsCommands(){for(let[e,r]of A){let t=this.resolveInstance(e);if(t)for(let o of r)this.wireCqrsCommand(t,o)}}wireCqrsCommand(e,r){let t=e[r.methodKey];if(typeof t!="function")return;let o=t.bind(e),n=this.resolveCqrsGraph(r.cqrsName);n&&n.command(r.commandName,o)}wireCqrsEvents(){for(let[e,r]of S){let t=this.resolveInstance(e);if(t)for(let o of r)this.wireCqrsEventHandler(t,o)}}wireCqrsEventHandler(e,r){let t=e[r.methodKey];if(typeof t!="function")return;let o=t.bind(e),n=this.resolveCqrsGraph(r.cqrsName);if(!n)return;n.event(r.eventName);let c=n.resolve(r.eventName).cache,l=c&&c.length>0?c[c.length-1].seq:0,p=this.observeNodeOn(n,r.eventName).subscribe(u=>{for(let d of u)if(d[0]===b){let g=d[1];for(let i of g)i.seq>l&&(o(i),l=i.seq)}});this.disposers.push(p)}wireCqrsQueries(){for(let[e,r]of H){let t=this.resolveInstance(e);if(t)for(let o of r)this.wireCqrsQuery(t,o)}}wireCqrsQuery(e,r){let t=e[r.methodKey];if(typeof t!="function")return;let o=t.bind(e),n=this.resolveCqrsGraph(r.cqrsName);if(!n)return;let c=this.observeNodeOn(n,r.projectionName).subscribe(l=>{for(let f of l)f[0]===b&&o(f[1])});this.disposers.push(c)}wireCqrsSagas(){for(let[e,r]of N){let t=this.resolveInstance(e);if(t)for(let o of r)this.wireCqrsSaga(t,o)}}wireCqrsSaga(e,r){let t=e[r.methodKey];if(typeof t!="function")return;let o=t.bind(e),n=this.resolveCqrsGraph(r.cqrsName);n&&n.saga(r.sagaName,r.eventNames,o)}observeNode(e){return this.graph.observe(e)}observeNodeOn(e,r){return e.observe(r)}resolveCqrsGraph(e){try{return this.moduleRef.get(m(e),{strict:!1})}catch{return console.warn(`[GraphReFly] CqrsGraph "${e}" not found in DI \u2014 did you import GraphReflyModule.forCqrs({ name: "${e}" })?`),null}}resolveInstance(e){try{return this.moduleRef.get(e,{strict:!1})}catch{return null}}};function Me(s,e,r){let{actor:t,serialize:o=De,keepAliveMs:n,signal:a}=r??{},c=new TextEncoder,l,f=r?.highWaterMark!=null,p,u,d=[],g=!1;return new ReadableStream({start(i){let h,w=()=>{},M=()=>{if(!g){g=!0,h!==void 0&&clearInterval(h),a?.removeEventListener("abort",K),w(),p?.dispose(),u?.(),u=void 0;for(let k of d)i.enqueue(k.frame);d.length=0,i.close()}};l=M;let K=()=>M(),ee=s.observe(e,{actor:t});f&&(p=L(k=>ee.up(k),{highWaterMark:r.highWaterMark,lowWaterMark:r.lowWaterMark??Math.floor(r.highWaterMark/2)})),w=ee.subscribe(k=>{for(let $ of k){if(g)return;let q=$[0];if(q===b){let C=c.encode(Y("data",o($[1])));f?(d.push({frame:C,counted:!0}),p.onEnqueue(),u?.(),u=void 0):i.enqueue(C)}else if(q===W){let C=c.encode(Y("error",o($[1])));f?(d.push({frame:C,counted:!1}),u?.(),u=void 0):i.enqueue(C),M();return}else if(q===T||q===_){if(q===T){let C=c.encode(Y("complete"));f?(d.push({frame:C,counted:!1}),u?.(),u=void 0):i.enqueue(C)}M();return}}}),n!==void 0&&n>0&&(h=setInterval(()=>{g||(f?(d.push({frame:c.encode(`: keepalive
|
|
2
2
|
|
|
3
3
|
`),counted:!1}),u?.(),u=void 0):i.enqueue(c.encode(`: keepalive
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as b}from"./chunk-
|
|
1
|
+
import{f as b}from"./chunk-FDQGFWLF.js";import{a as S}from"./chunk-L6NSJVJZ.js";import{j as T}from"./chunk-626TESAC.js";import{b as D}from"./chunk-JQFH2DV6.js";import{C as d}from"./chunk-V5A7M7RJ.js";import{D as N,E as _,G as y,m as P}from"./chunk-LYCLF26R.js";import{b as M,i as A}from"./chunk-CK2E7BTU.js";import{b as C}from"./chunk-QYADASLV.js";var $={};C($,{MessagingHubGraph:()=>k,SubscriptionGraph:()=>f,TopicBridgeGraph:()=>O,TopicGraph:()=>g,TopicRegistry:()=>I,messagingHub:()=>F,subscription:()=>R,topic:()=>H,topicBridge:()=>U});var z=256;function l(r,e){if(!Number.isFinite(r)||!Number.isInteger(r)||r<0)throw new Error(`${e} must be a non-negative integer`);return r}function p(r,e){return S("messaging",r,e)}var B=1024,g=class extends T{_log;_publishImpl;events;latest;hasLatest;constructor(e,n={}){super(e,n.graph),this._log=D([],{name:"events",maxSize:n.retainedLimit??B}),this._log.withLatest(),this.events=this._log.entries,this.add(this.events,{name:"events"}),this.latest=y([this.events],([t])=>{let i=t;return i.length===0?null:i[i.length-1]},{name:"latest",describeKind:"derived",meta:p("topic_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(d(this.latest)),this.hasLatest=y([this.events],([t])=>t.length>0,{name:"hasLatest",describeKind:"derived",meta:p("topic_has_latest")}),this.add(this.hasLatest,{name:"hasLatest"}),this.addDisposer(d(this.hasLatest)),this.addDisposer(()=>{this.events.down([[A]])}),this.addDisposer(()=>this._log.disposeAllViews()),this._publishImpl=b(t=>{this._log.append(t)},{freeze:!1})}publish(e){if(e===void 0)throw new TypeError(`TopicGraph "${this.name}": publish(undefined) is not allowed (spec \xA75.12 SENTINEL).`);this._publishImpl(e)}attachEventStorage(e){return this._log.attachStorage(e)}retained(){return this.events.cache}get _logBundle(){return this._log}},f=class extends T{cursor;available;topic;_disposed=!1;_ackImpl;_pullAndAckImpl;constructor(e,n,t={}){super(e,t.graph),this.topic=n;let i;if(t.from!==void 0?t.from==="retained"?i=0:t.from==="now"?i=n.events.cache.length:i=l(t.from,"subscription from"):i=l(t.cursor??0,"subscription cursor"),this.cursor=_(i,{name:"cursor",describeKind:"state",meta:p("subscription_cursor")}),this.add(this.cursor,{name:"cursor"}),this.available=n._logBundle.view({kind:"fromCursor",cursor:this.cursor}),this.add(this.available,{name:"available"}),this.addDisposer(d(this.available)),t.advanceOn!==void 0){let s=t.advanceOn,a=!1,c=N([s],()=>{if(!a){a=!0;return}if(this._disposed)return;let o=this.available.cache;if(o.length===0)return;let u=this.cursor.cache+o.length;this.cursor.emit(u)},{name:"advancePump",describeKind:"effect",meta:p("subscription_advance_pump")});this.add(c,{name:"advancePump"}),this.addDisposer(d(c))}this._ackImpl=b(s=>{let a=this.available.cache,c=s===void 0?a.length:l(s,"subscription ack count"),o=Math.min(c,a.length);if(o<=0)return this.cursor.cache;let u=this.cursor.cache+o;return this.cursor.emit(u),u},{freeze:!1}),this._pullAndAckImpl=b(s=>{let a=this.available.cache,c=s===void 0?a.length:l(s,"subscription pullAndAck limit"),o=a.slice(0,c);if(o.length===0)return{items:o,cursor:this.cursor.cache};let u=this.cursor.cache+o.length;return this.cursor.emit(u),{items:o,cursor:u}},{freeze:!1})}ack(e){return this._disposed?this.cursor.cache:this._ackImpl(e)}pull(e){if(this._disposed)return[];let n=this.available.cache,t=e===void 0?n.length:l(e,"subscription pull limit");return n.slice(0,t)}pullAndAck(e){return this._disposed?{items:[],cursor:this.cursor.cache}:this._pullAndAckImpl(e)}dispose(){this._disposed||(this._disposed=!0,this.cursor.down([[A]]),this.destroy())}},O=class extends T{_sourceSub;bridgedCount;output;constructor(e,n,t,i={}){super(e,i.graph),this._sourceSub=R(`${e}-subscription`,n,{cursor:i.cursor}),this.mount("subscription",this._sourceSub);let s=Math.max(1,l(i.maxPerPump??z,"topic bridge maxPerPump")),a=i.map??(h=>h);this.output=y([this._sourceSub.available],([h])=>{let v=h,m=[],w=Math.min(v.length,s);for(let x=0;x<w;x++){let L=a(v[x]);L!==void 0&&m.push(L)}return m},{name:"output",describeKind:"derived",meta:p("topic_bridge_output",{targetRef:t.name}),initial:[]}),this.add(this.output,{name:"output"}),this.addDisposer(d(this.output)),this.bridgedCount=_(0,{name:"bridgedCount",describeKind:"state",meta:p("topic_bridge_count")}),this.add(this.bridgedCount,{name:"bridgedCount"}),this.addDisposer(d(this.bridgedCount));let c=this.output,o=this._sourceSub,u=this.bridgedCount,G=N([c],()=>{let h=c.cache;if(h.length===0)return;let v=o.available.cache.length,m=Math.min(v,s);if(m>0){o.ack(m);let w=u.cache??0;u.emit(w+h.length)}},{name:"ackPump",describeKind:"effect",meta:p("topic_bridge_ack_pump")});this.add(G,{name:"ackPump"}),this.addDisposer(d(G));let E=K(this.output,t);this.addDisposer(E)}};function K(r,e){return r.subscribe(n=>{for(let t of n){if(t[0]!==M)continue;let i=t[1];i.length!==0&&P(()=>{for(let s of i)e.publish(s)})}})}var I=class{_map=new Map;version;constructor(e){this.version=e}get size(){return this._map.size}has(e){return this._map.has(e)}get(e){return this._map.get(e)}set(e,n){this._map.set(e,n)}delete(e){return this._map.delete(e)}keys(){return this._map.keys()}},k=class extends T{_registry;version;_defaultTopicOptions;_removeTopicImpl;constructor(e,n={}){super(e,n.graph);let t=_(0,{name:"version",describeKind:"state",meta:p("hub_version")});this.add(t,{name:"version"}),this.version=t,this._registry=new I(t),this._defaultTopicOptions={...n.defaultTopicOptions??{}},this._removeTopicImpl=b(i=>{try{this.remove(i)}finally{this._registry.delete(i);let s=this.version.cache??0;this.version.emit(s+1)}},{freeze:!1})}get size(){return this._registry.size}has(e){return this._registry.has(e)}topicNames(){return this._registry.keys()}topic(e,n){let t=this._registry.get(e);if(t===void 0){let i={...this._defaultTopicOptions,...n??{}};t=new g(e,i),this._registry.set(e,t),this.mount(e,t);let s=this.version.cache??0;this.version.emit(s+1)}return t}publish(e,n){this.topic(e).publish(n)}publishMany(e){P(()=>{for(let[n,t]of e)this.topic(n).publish(t)})}subscribe(e,n,t){let i=this.topic(n);return new f(e,i,t)}removeTopic(e){return this._registry.has(e)?(this._removeTopicImpl(e),!0):!1}};function H(r,e){return new g(r,e)}function F(r,e){return new k(r,e)}function R(r,e,n){return new f(r,e,n)}function U(r,e,n,t){return new O(r,e,n,t)}export{g as a,f as b,O as c,I as d,k as e,H as f,F as g,R as h,U as i,$ as j};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{f as F,g as j,h as A}from"./chunk-
|
|
1
|
+
import{f as F,g as j,h as A}from"./chunk-Y4NI3X7O.js";import{i as b,j as x}from"./chunk-626TESAC.js";import{p as _}from"./chunk-LYCLF26R.js";import{b as C,d as $,i as T,j as N}from"./chunk-CK2E7BTU.js";import{b as J}from"./chunk-QYADASLV.js";var Y={};J(Y,{SNAPSHOT_WIRE_VERSION:()=>v,SurfaceError:()=>o,asSurfaceError:()=>K,createGraph:()=>R,deleteSnapshot:()=>L,diffSnapshots:()=>V,listSnapshots:()=>W,restoreSnapshot:()=>U,runReduction:()=>D,saveSnapshot:()=>M});var o=class extends Error{code;details;constructor(t,r,n){super(r),this.name="SurfaceError",this.code=t,n!==void 0&&(this.details=n)}toJSON(){let t={code:this.code,message:this.message};if(this.details!==void 0){let r=q(this.details);r!==void 0&&(t.details=r)}return t}};function q(e){try{return JSON.parse(JSON.stringify(e))}catch{return}}function K(e,t="internal-error"){if(e instanceof o)return e;let r=e instanceof Error?e.message:String(e);return new o(t,r)}function R(e,t){let r=j(e);if(!r.valid)throw new o("invalid-spec",`GraphSpec validation failed:
|
|
2
2
|
${r.errors.join(`
|
|
3
3
|
`)}`,{errors:r.errors});let n=t?.catalog??{},s=F(e,n);if(!s.valid)throw new o("catalog-error",`Catalog validation failed:
|
|
4
4
|
${s.errors.join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as O,f as v,k as P}from"./chunk-
|
|
1
|
+
import{a as O,f as v,k as P}from"./chunk-Q4U3A3L5.js";import{ba as _,k as A}from"./chunk-O2BLLH7M.js";import{f as E}from"./chunk-VNC3TMVY.js";import{m as U,x as T}from"./chunk-V5A7M7RJ.js";import{o as y}from"./chunk-LYCLF26R.js";function G(e={}){return e.sdk?V(e):H(e)}function b(e,t,o,r){let s=t?.model??o;if(!s)throw new Error("anthropicAdapter: model must be set via options.model or invokeOpts.model");let{system:n,chat:i}=J(e,t?.systemPrompt),a={model:s,messages:i.map(F),max_tokens:t?.maxTokens??4096};return n&&(a.system=n),t?.temperature!=null&&(a.temperature=t.temperature),t?.tools&&t.tools.length>0&&(a.tools=t.tools.map(Y)),t?.maxReasoningTokens!=null&&(a.thinking={type:"enabled",budget_tokens:t.maxReasoningTokens}),t?.cacheHint,r&&(a.stream=!0),t?.providerExtras&&Object.assign(a,t.providerExtras),a}function J(e,t){let o=[];t&&o.push(t);let r=[];for(let s of e)s.role==="system"?o.push(s.content):r.push(s);return{system:o.length>0?o.join(`
|
|
2
2
|
|
|
3
3
|
`):void 0,chat:r}}function F(e){if(e.role==="tool")return{role:"user",content:[{type:"tool_result",tool_use_id:e.toolCallId,content:e.content}]};if(e.role==="assistant"&&e.toolCalls&&e.toolCalls.length>0){let t=[];e.content&&t.push({type:"text",text:e.content});for(let o of e.toolCalls)t.push({type:"tool_use",id:o.id,name:o.name,input:o.arguments});return{role:"assistant",content:t}}return{role:e.role,content:e.content}}function Y(e){return{name:e.name,description:e.description,input_schema:e.parameters}}function R(e,t){if(!e)return{...t};let o={...e};return t.input_tokens!=null&&(o.input_tokens=t.input_tokens),t.output_tokens!=null&&(o.output_tokens=t.output_tokens),t.cache_read_input_tokens!=null&&(o.cache_read_input_tokens=t.cache_read_input_tokens),t.cache_creation_input_tokens!=null&&(o.cache_creation_input_tokens=t.cache_creation_input_tokens),t.cache_creation&&(o.cache_creation={...e.cache_creation??{},...t.cache_creation}),t.server_tool_use&&(o.server_tool_use={...e.server_tool_use??{},...t.server_tool_use}),o}function x(e){let t={input:{regular:e?.input_tokens??0},output:{regular:e?.output_tokens??0},raw:e};return e?.cache_read_input_tokens&&(t.input.cacheRead=e.cache_read_input_tokens),e?.cache_creation?(e.cache_creation.ephemeral_5m_input_tokens&&(t.input.cacheWrite5m=e.cache_creation.ephemeral_5m_input_tokens),e.cache_creation.ephemeral_1h_input_tokens&&(t.input.cacheWrite1h=e.cache_creation.ephemeral_1h_input_tokens)):e?.cache_creation_input_tokens&&(t.input.cacheWrite5m=e.cache_creation_input_tokens),e?.server_tool_use?.web_search_requests&&(t.auxiliary={webSearchRequests:e.server_tool_use.web_search_requests}),t}function K(e,t){let o=[],r=[];for(let s of e.content)if(s.type==="text"&&typeof s.text=="string")o.push(s.text);else if(s.type==="tool_use"){let n=s;r.push({id:n.id,name:n.name,arguments:n.input??{}})}return{content:o.join(""),toolCalls:r.length>0?r:void 0,usage:x(e.usage),finishReason:e.stop_reason,latencyMs:t,model:e.model,provider:"anthropic"}}function H(e){let t=e.apiKey??globalThis.process?.env?.ANTHROPIC_API_KEY,o=e.baseURL??"https://api.anthropic.com",r=e.anthropicVersion??"2023-06-01",s=e.fetchImpl??fetch,n=()=>{if(!t)throw new Error("anthropicAdapter: apiKey required for invoke/stream (or provide opts.sdk)");return{"x-api-key":t,"anthropic-version":r,"content-type":"application/json",...e.headers??{}}};return{provider:"anthropic",model:e.model,async invoke(i,a){let d=b(i,a,e.model,!1),g=y(),l=await s(`${o}/v1/messages`,{method:"POST",headers:n(),body:JSON.stringify(d),signal:a?.signal});if(!l.ok)throw await _(l,"Anthropic");let c=await l.json(),p=Math.max(0,(y()-g)/1e6);return K(c,p)},async*stream(i,a){let d=b(i,a,e.model,!0),g=await s(`${o}/v1/messages`,{method:"POST",headers:{...n(),accept:"text/event-stream"},body:JSON.stringify(d),signal:a?.signal});if(!g.ok)throw await _(g,"Anthropic");if(!g.body)throw new Error("anthropicAdapter: streaming response has no body");let l,c,p=new Map;for await(let m of A(g.body,{signal:a?.signal})){let h=m.data;if(!h)continue;let k;try{k=JSON.parse(h)}catch{continue}switch(k.type){case"message_start":{l=R(l,k.message.usage);break}case"content_block_start":{let u=k,f=u.content_block;f.type==="tool_use"&&(p.set(u.index,{id:String(f.id??""),name:String(f.name??""),argBuf:""}),yield{type:"tool-call-delta",delta:{id:String(f.id??""),name:String(f.name??"")}});break}case"content_block_delta":{let u=k,f=u.delta;if(f.type==="text_delta"&&typeof f.text=="string")yield{type:"token",delta:f.text};else if(f.type==="input_json_delta"&&typeof f.partial_json=="string"){let S=p.get(u.index);S&&(S.argBuf+=f.partial_json),yield{type:"tool-call-delta",delta:{argumentsDelta:f.partial_json}}}else f.type==="thinking_delta"&&typeof f.thinking=="string"&&(yield{type:"thinking",delta:f.thinking});break}case"message_delta":{let u=k;u.delta.stop_reason&&(c=u.delta.stop_reason),u.delta.usage&&(l=R(l,u.delta.usage));break}case"message_stop":break}}l&&(yield{type:"usage",usage:x(l)}),yield{type:"finish",reason:c??"stop"}}}}function V(e){let t=e.sdk;if(!t)throw new Error("sdkBackedAnthropic: sdk instance required");return{provider:"anthropic",model:e.model,async invoke(o,r){let s=b(o,r,e.model,!1),n=y(),i=await t.messages.create(s,{signal:r?.signal}),a=Math.max(0,(y()-n)/1e6);return K(i,a)},async*stream(o,r){if(!t.messages.stream)throw new Error("sdkBackedAnthropic: SDK instance does not expose .messages.stream");let s=b(o,r,e.model,!0),n,i;for await(let a of t.messages.stream(s,{signal:r?.signal}))switch(a.type){case"message_start":n=R(n,a.message.usage);break;case"content_block_delta":{let d=a.delta;d?.type==="text_delta"&&typeof d.text=="string"?yield{type:"token",delta:d.text}:d?.type==="input_json_delta"&&typeof d.partial_json=="string"?yield{type:"tool-call-delta",delta:{argumentsDelta:d.partial_json}}:d?.type==="thinking_delta"&&typeof d.thinking=="string"&&(yield{type:"thinking",delta:d.thinking});break}case"message_delta":{let d=a;d.delta.stop_reason&&(i=d.delta.stop_reason),d.delta.usage&&(n=R(n,d.delta.usage));break}}n&&(yield{type:"usage",usage:x(n)}),yield{type:"finish",reason:i??"stop"}}}}function D(e={}){return e.sdk?X(e):Q(e)}function w(e,t){let o=[],r=[];t?.systemPrompt&&o.push(t.systemPrompt);for(let i of e){if(i.role==="system"){o.push(i.content);continue}if(i.role==="tool"){r.push({role:"user",parts:[{functionResponse:{name:i.name??i.toolCallId??"tool",response:{result:i.content}}}]});continue}if(i.role==="assistant"&&i.toolCalls&&i.toolCalls.length>0){let a=[];i.content&&a.push({text:i.content});for(let d of i.toolCalls)a.push({functionCall:{name:d.name,args:d.arguments}});r.push({role:"model",parts:a});continue}r.push({role:i.role==="assistant"?"model":"user",parts:[{text:i.content}]})}let s={contents:r};o.length>0&&(s.systemInstruction={role:"system",parts:[{text:o.join(`
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as D,c as j,d as V,e as $}from"./chunk-
|
|
1
|
+
import{a as D,c as j,d as V,e as $}from"./chunk-XG62INFA.js";import{a as v}from"./chunk-ESMPEKEV.js";import{i as S}from"./chunk-D5RFJOZ2.js";import{n as N}from"./chunk-VOPGGIL7.js";import{m as R,x as T}from"./chunk-V5A7M7RJ.js";import{G as K,o as b,p as L}from"./chunk-LYCLF26R.js";import{j as O}from"./chunk-CK2E7BTU.js";function w(){let e=new Error("aborted");return e.name="AbortError",e}function W(e,r){return e<=0?Promise.resolve():r?.aborted?Promise.reject(w()):new Promise((t,s)=>{let p=new v,u,y=()=>{p.cancel(),r&&u&&r.removeEventListener("abort",u)};p.start(e,()=>{y(),t()}),r&&(u=()=>{y(),s(w())},r.addEventListener("abort",u,{once:!0}))})}function U(e={}){let r=e.provider??"dry-run",t=e.model??"dry-run-v1",s=e.latencyMs??0,p=Math.max(1,e.streamChunkSize??16),u=e.respond??(d=>{let o=[...d].reverse().find(n=>n.role==="user");return o?`echo: ${o.content}`:"dry-run: no user message"}),y=e.usage??((d,o)=>{let n=d.reduce((a,l)=>a+l.content.length,0);return{input:{regular:Math.ceil(n/4)},output:{regular:Math.ceil(o.length/4)}}});return{provider:r,model:t,async invoke(d,o){if(await W(s,o?.signal),o?.signal?.aborted)throw w();let n=u(d,o),a=y(d,n);return{content:n,usage:a,finishReason:"stop",model:o?.model??t,provider:r,tier:o?.tier,metadata:{dryRun:!0}}},async*stream(d,o){let n=u(d,o),a=y(d,n),l=Math.ceil(n.length/p)||1,i=s>0?s/l:0;for(let c=0;c<n.length;c+=p){if(o?.signal?.aborted)throw w();await W(i,o?.signal),yield{type:"token",delta:n.slice(c,c+p)}}yield{type:"usage",usage:a},yield{type:"finish",reason:"stop"}}}}function _(e){let{storage:r,mode:t="read-write",keyFn:s,keyPrefix:p="llm-replay"}=e,y=V({storage:r,keyPrefix:p,mode:t==="read-strict"?"read":t,keyContext:({messages:o,opts:n})=>{let{signal:a,keyContext:l,...i}=n??{};return{messages:o,opts:i}}});async function d(o,n){if(s){if(s.length<=1){let l={messages:o,opts:n,context:n?.keyContext},i=await s(l);return`${p}:${i}`}let a=await s(o,n);return`${p}:${a}`}return y.keyFor({messages:o,opts:n})}return{keyFor:d,async lookup(o,n){if(t!=="write"){if(s){let a=await d(o,n),l=await r.load(a);return l===void 0?void 0:l}return y.lookup({messages:o,opts:n})}},async store(o,n,a){if(t!=="read"){if(s){let l=await d(o,n);await r.save(l,a);return}await y.store({messages:o,opts:n},a)}},async forget(o,n){if(!(t==="read"||t==="write")&&r.delete){if(s){let a=await d(o,n);await r.delete(a);return}await y.forget({messages:o,opts:n})}}}}function z(e,r,t){return{provider:t?.provider??e.provider,model:t?.model??e.model,capabilities:t?.capabilities??e.capabilities?.bind(e),invoke:r.invoke,stream:r.stream}}function ce(e,r){let{onResp:t,onError:s,name:p}=r;if(e!=null&&typeof e.then=="function"){let n=e;return s?n.then(t).catch(a=>{throw s(a),a}):n.then(t)}if(e!=null&&typeof e=="object"&&"content"in e)return t(e);let u=R(e);if(s){let n=!1;u.subscribe(a=>{for(let l of a){if(n)return;l[0]===O&&(n=!0,s(l[1]))}})}let y,d=!1,o=N(u,n=>{y=t(n),d=!0});return K([o],([n])=>n==null?null:d?y:t(n),{name:p??"adapt/invokeTap"})}function pe(e){let r=e.endNs??b();return{timestamp:r,wallClock:e.startWallClockNs??L(),provider:e.provider,model:e.model,tier:e.tier,usage:e.usage,latencyMs:Math.max(0,(r-e.startNs)/1e6),method:e.method,...e.error?{error:e.error}:{}}}function ye(){return{input:{regular:0},output:{regular:0}}}var G=Symbol.for("graphrefly.adapter.middlewareLayers");function J(e,r,t){let p=[...t?Q(t):[],r];return Object.defineProperty(e,G,{value:Object.freeze(p),enumerable:!1,writable:!1,configurable:!1}),e}function Q(e){let r=e[G];return Array.isArray(r)?r:[]}var M=class extends Error{constructor(t,s){super(`withReplayCache: no cached response for ${s} (key=${t}, mode=read-strict)`);this.key=t;this.method=s}name="ReplayCacheMissError"};function q(e,r){let t=r.mode??"read-write",s=r.cacheStreaming??!1,p=r.captureStreamCadence??!1,u=r.replaySpeed??1,y=r.keyPrefix??"llm-replay",d=t==="read"||t==="read-strict",o=_({storage:r.storage,mode:t==="write-only"?"write":t,keyFn:r.keyFn,keyPrefix:y}),n=i=>i<=0?Promise.resolve():new Promise(c=>{new v().start(i,()=>c())}),a=$(async({messages:i,invokeOpts:c})=>await T(R(e.invoke(i,c))),{keyFn:({_precomputedKey:i})=>i}),l=z(e,{async invoke(i,c){let C=await o.keyFor(i,c),f=await o.lookup(i,c);if(f?.response){let k=f.response;return{...k,metadata:{...k.metadata??{},replayCache:"hit"}}}if(t==="read-strict")throw new M(C,"invoke");let h=await a({messages:i,invokeOpts:c,_precomputedKey:C});return d||await o.store(i,c,{response:h,storedAtNs:L()}),h},async*stream(i,c){if(!s){for await(let m of e.stream(i,c))yield m;return}let C=await o.keyFor(i,c),f=await o.lookup(i,c);if(f){let m=f.response;if(f.streamChunks&&f.streamCadenceMs)for(let g=0;g<f.streamChunks.length;g++){let A=f.streamCadenceMs[g]??0,E=u>0?A/u:0;E>0&&await n(E),yield{type:"token",delta:f.streamChunks[g]?.delta??""}}else m.content&&(yield{type:"token",delta:m.content});m.usage&&(yield{type:"usage",usage:m.usage}),yield{type:"finish",reason:m.finishReason??"stop"};return}if(t==="read-strict")throw new M(C,"stream");let h="",k,P,F=[],I=[],x;for await(let m of e.stream(i,c)){if(m.type==="token"&&(h+=m.delta,p)){let g=b(),A=x===void 0?0:(g-x)/1e6;I.push(A),x=g,F.push({delta:m.delta})}m.type==="usage"&&(k=m.usage),m.type==="finish"&&(P=m.reason),yield m}if((h||k)&&!d){let g={response:{content:h,usage:k??{input:{regular:0},output:{regular:0}},finishReason:P,model:e.model??c?.model??"",provider:e.provider},storedAtNs:L(),...p?{streamChunks:F,streamCadenceMs:I}:{}};await o.store(i,c,g)}}});return J(l,"withReplayCache",e),l}var B=j;var Ae=M;function H(e,r){return{content:"[fallback: no cached response available for this request]",usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:r,provider:e,metadata:{degraded:!0,reason:"no-fixture"}}}function Y(e,r,t){return typeof e=="string"?{content:e,usage:{input:{regular:0},output:{regular:0}},finishReason:"stop",model:t,provider:r,metadata:{degraded:!0,reason:"respond"}}:e}async function X(e,r){if("key"in e)return e.key;let t=B({messages:e.messages,opts:e.invokeOpts??{}}),s=await D(t);return`${r}:${s}`}function Z(e){let r={response:e.response,storedAtNs:L()};if("key"in e&&e.stream){let t=e.stream.chunks.filter(s=>s.type==="token");return{...r,streamChunks:t.map(s=>({delta:s.delta})),streamCadenceMs:e.stream.delaysMs??t.map(()=>0)}}return r}function ee(e,r){let t=[];if(e.fixtures!=null&&t.push("fixtures"),e.fixturesStorage!=null&&t.push("fixturesStorage"),t.length>1)throw new TypeError(`fallbackAdapter: \`fixtures\` and \`fixturesStorage\` are mutually exclusive; got both ${t.join(" and ")}. Pick one source. For filesystem directories use the node subpath's \`fallbackAdapter\`.`);if(e.fixtures){let s=S(),p=e.fixtures,u=(async()=>{for(let y of p){let d=await X(y,r);await s.save(d,Z(y))}})();return u.catch(()=>{}),{tier:s,seedReady:u}}return e.fixturesStorage?{tier:e.fixturesStorage,seedReady:Promise.resolve()}:{tier:void 0,seedReady:Promise.resolve()}}function Se(e={}){let r=e.provider??"fallback",t=e.model??"fallback",s=e.onMiss??"respond",p=e.keyPrefix??"fallback",u=e.record?e.record.adapter:s==="throw"?U({provider:r,model:t,respond:()=>"[unreachable: read-strict mode throws on miss]"}):{provider:r,model:t,async invoke(a,l){let i=e.respond?e.respond(a,l):H(r,t);return Y(i,r,t)},async*stream(a,l){let i=e.respond?e.respond(a,l):H(r,t),c=Y(i,r,t);yield{type:"token",delta:c.content},c.usage&&(yield{type:"usage",usage:c.usage}),yield{type:"finish",reason:c.finishReason??"stop"}}},y,d=Promise.resolve();if(e.record){if(!e.record.storage)throw new TypeError("fallbackAdapter: `record.storage` is required in record mode. For filesystem `record.dir` convenience, use the node subpath's `fallbackAdapter`.");y=e.record.storage}else{let a=ee(e,p);y=a.tier??S(),d=a.seedReady}let o=e.record?"read-write":s==="throw"?"read-strict":"read",n=q(u,{storage:y,mode:o,keyPrefix:p,cacheStreaming:!0,captureStreamCadence:!0,replaySpeed:e.replaySpeed,...e.keyFn?{keyFn:e.keyFn}:{}});return{provider:r,model:t,capabilities:n.capabilities?.bind(n),async invoke(a,l){return await d,n.invoke(a,l)},async*stream(a,l){await d;for await(let i of n.stream(a,l))yield i}}}export{U as a,z as b,ce as c,pe as d,ye as e,J as f,M as g,q as h,B as i,Ae as j,Se as k};
|