yaml-flow 8.8.0 → 8.8.6
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/browser/adapters/firestore-storage.js +2 -2
- package/browser/adapters/localstorage-storage.js +1 -1
- package/browser/asset-integrity.json +6 -6
- package/browser/live-cards.js +6 -6
- package/browser/server-runtime-controlface.js +4 -4
- package/examples/board/server/chat-flow/flow-steps.json +5 -5
- package/examples/board/test/server-http-test.js +623 -18
- package/lib/board-live-cards-node.cjs +7 -7
- package/lib/board-live-cards-node.d.cts +61 -7
- package/lib/board-live-cards-node.d.ts +61 -7
- package/lib/board-live-cards-node.js +7 -7
- package/lib/board-live-cards-public.cjs +1 -1
- package/lib/board-live-cards-public.js +1 -1
- package/lib/board-live-cards-server-runtime.cjs +1 -1
- package/lib/board-live-cards-server-runtime.d.cts +1 -1
- package/lib/board-live-cards-server-runtime.d.ts +1 -1
- package/lib/board-live-cards-server-runtime.js +1 -1
- package/lib/board-livegraph-runtime/index.cjs +1 -1
- package/lib/board-livegraph-runtime/index.d.cts +1 -0
- package/lib/board-livegraph-runtime/index.d.ts +1 -0
- package/lib/board-livegraph-runtime/index.js +1 -1
- package/lib/chunk-36QUKFL7.cjs +3 -0
- package/lib/chunk-3MMTBEAO.js +2 -0
- package/lib/{chunk-YGKDQLYP.js → chunk-4HIEOBJC.js} +2 -2
- package/lib/chunk-7QQFDYBM.js +3 -0
- package/lib/chunk-ABAVFLDP.js +7 -0
- package/lib/chunk-EPCJYP4N.js +3 -0
- package/lib/chunk-H22NK6KH.cjs +7 -0
- package/lib/chunk-OJ2CAQ4C.cjs +2 -0
- package/lib/chunk-QG6ERLZQ.cjs +3 -0
- package/lib/{chunk-S6DRP2HX.cjs → chunk-XQAHHUZO.cjs} +2 -2
- package/lib/chunk-ZENTBLLA.cjs +3 -0
- package/lib/chunk-ZWVT24YW.js +3 -0
- package/lib/cloud-storage.cjs +1 -1
- package/lib/cloud-storage.js +1 -1
- package/lib/compute-jsonata/browser.cjs +2 -0
- package/lib/compute-jsonata/browser.d.cts +20 -0
- package/lib/compute-jsonata/browser.d.ts +20 -0
- package/lib/compute-jsonata/browser.js +2 -0
- package/lib/compute-jsonata/index.cjs +2 -0
- package/lib/compute-jsonata/index.d.cts +20 -0
- package/lib/compute-jsonata/index.d.ts +20 -0
- package/lib/compute-jsonata/index.js +2 -0
- package/lib/compute-jsonata/jsonata-sync.cjs +7623 -0
- package/lib/firestore-storage/index.cjs +2 -2
- package/lib/firestore-storage/index.d.cts +2 -13
- package/lib/firestore-storage/index.d.ts +2 -13
- package/lib/firestore-storage/index.js +2 -2
- package/lib/index.cjs +2 -2
- package/lib/index.js +1 -1
- package/lib/localstorage-storage/index.cjs +1 -1
- package/lib/localstorage-storage/index.js +1 -1
- package/lib/server-jobs-queue-runner/index.d.cts +1 -1
- package/lib/server-jobs-queue-runner/index.d.ts +1 -1
- package/lib/server-runtime/index.cjs +1 -1
- package/lib/server-runtime/index.d.cts +2 -2
- package/lib/server-runtime/index.d.ts +2 -2
- package/lib/server-runtime/index.js +1 -1
- package/lib/server-runtime-agentface/index.d.cts +1 -1
- package/lib/server-runtime-agentface/index.d.ts +1 -1
- package/lib/server-runtime-controlface/index.cjs +1 -1
- package/lib/server-runtime-controlface/index.d.cts +1 -1
- package/lib/server-runtime-controlface/index.d.ts +1 -1
- package/lib/server-runtime-controlface/index.js +1 -1
- package/lib/server-runtime-core/index.cjs +1 -1
- package/lib/server-runtime-core/index.d.cts +3 -3
- package/lib/server-runtime-core/index.d.ts +3 -3
- package/lib/server-runtime-core/index.js +1 -1
- package/lib/server-runtime-watchers/index.cjs +1 -1
- package/lib/server-runtime-watchers/index.d.cts +3 -3
- package/lib/server-runtime-watchers/index.d.ts +3 -3
- package/lib/server-runtime-watchers/index.js +1 -1
- package/lib/server-runtime-webhooks/index.d.cts +1 -1
- package/lib/server-runtime-webhooks/index.d.ts +1 -1
- package/lib/{sse-hub-CYXisfXJ.d.cts → sse-hub-BDjWI7JR.d.cts} +1 -1
- package/lib/{sse-hub-Dodwtc3_.d.ts → sse-hub-DM8bw-dO.d.ts} +1 -1
- package/lib/{types-BtH3scgE.d.ts → types-BsfXZyI3.d.ts} +1 -1
- package/lib/{types-Ch0u3FKP.d.cts → types-CPnYv7RC.d.cts} +1 -1
- package/package.json +7 -1
- package/examples/board/test/sse-worker.js +0 -49
- package/lib/chunk-2GSI6C45.js +0 -7
- package/lib/chunk-CMFD27ZC.cjs +0 -3
- package/lib/chunk-DOFNXJ4C.js +0 -3
- package/lib/chunk-GU3T75C4.js +0 -3
- package/lib/chunk-H3EHFCDZ.js +0 -3
- package/lib/chunk-HEEDJEKM.js +0 -2
- package/lib/chunk-IQIZA7TN.cjs +0 -7
- package/lib/chunk-NDAKMJQK.cjs +0 -3
- package/lib/chunk-NU5NO5NM.js +0 -2
- package/lib/chunk-O4RKTQBP.cjs +0 -3
- package/lib/chunk-PBCDDO4V.cjs +0 -2
- package/lib/chunk-ZK3E7L4Y.cjs +0 -2
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {a as a$2}from'./chunk-Y4WK7HE4.js';export{a as createChatStorage,c as createInMemoryChatStorage}from'./chunk-Y4WK7HE4.js';import {a as a$3}from'./chunk-O5UYCGIN.js';export{a as createArtifactsStore,c as createCardFileMetadataStore,b as createFileArtifactsStore}from'./chunk-O5UYCGIN.js';import {a as a$4}from'./chunk-RKKSVOP2.js';export{a as createBoardWorkerStore,b as createQueueLaneRegistry}from'./chunk-RKKSVOP2.js';import {a}from'./chunk-VGDLSS2H.js';import'./chunk-
|
|
1
|
+
import {a as a$2}from'./chunk-Y4WK7HE4.js';export{a as createChatStorage,c as createInMemoryChatStorage}from'./chunk-Y4WK7HE4.js';import {a as a$3}from'./chunk-O5UYCGIN.js';export{a as createArtifactsStore,c as createCardFileMetadataStore,b as createFileArtifactsStore}from'./chunk-O5UYCGIN.js';import {a as a$4}from'./chunk-RKKSVOP2.js';export{a as createBoardWorkerStore,b as createQueueLaneRegistry}from'./chunk-RKKSVOP2.js';import {a as a$5}from'./chunk-YBYXCFAI.js';import {a}from'./chunk-VGDLSS2H.js';import'./chunk-7BTZCOT5.js';import'./chunk-7QQFDYBM.js';import {b as b$1}from'./chunk-NNSBBO5R.js';import {g,y}from'./chunk-ZWVT24YW.js';export{n as BOARD_GRAPH_KEY,u as EMPTY_CONFIG,m as SNAPSHOT_SCHEMA_VERSION_V1,z as createBoardLiveCardsNonCorePublic,y as createBoardLiveCardsPublic,l as createCardStore,e as createHttpBoardCallbackTransport,f as createInProcessBoardCallbackTransport,g as createLocalNodeBoardCallbackTransport}from'./chunk-ZWVT24YW.js';export{a as executionRefFromScriptPath,c as parseExecutionRef,b as serializeExecutionRef}from'./chunk-ANKA7HEJ.js';import {a as a$1,b}from'./chunk-44L64VQ2.js';export{b as parseRef,a as serializeRef}from'./chunk-44L64VQ2.js';import'./chunk-VGT3TRQG.js';import'./chunk-WDPOGXTY.js';export{a as createBoardLiveCardsMcp}from'./chunk-35N7ONTH.js';import {a as a$6}from'./chunk-JMDHDY6M.js';import {d}from'./chunk-3KC6LBOG.js';import'./chunk-MNEOJWPS.js';export{a as createCardStorePublic}from'./chunk-KBELAKIY.js';export{a as createArtifactsStorePublic}from'./chunk-X3LC4LII.js';import {h}from'./chunk-J4MHQ7JF.js';import'./chunk-FW4363Y4.js';import {spawn,spawnSync,execFile,execFileSync}from'child_process';import*as i from'fs';import*as Oe from'os';import*as x from'path';import*as qe from'net';import {fileURLToPath}from'url';import {randomUUID,createHash}from'crypto';import {createRequire}from'module';import {lockSync}from'proper-lockfile';function C(...e){return x.join(...e)}function Ne(e){return x.isAbsolute(e)}function ue(){return randomUUID()}function Qe(e){return createHash("sha256").update(e).digest("hex")}function Je(e){return x.dirname(fileURLToPath(e))}function Pt(e){if(typeof e=="object"&&e!==null){let{command:r,args:o=[],...n}=e,s=Le(r,o);return {...n,command:s.command,args:s.args}}let t=De(e);if(t.length===0)throw new Error(`Empty command spec: ${JSON.stringify(e)}`);return Le(t[0],t.slice(1))}function Le(e,t){return /^(node|node\.exe)$/i.test(e)?{command:process.execPath,args:t}:/\.m?js$/i.test(e)?{command:process.execPath,args:[e,...t]}:{command:e,args:t}}function De(e){let t=[],r="",o=null;for(let n of e.trim()){if(o){n===o?o=null:r+=n;continue}if(n==='"'||n==="'"){o=n;continue}if(/\s/.test(n)){r&&(t.push(r),r="");continue}r+=n;}if(o)throw new Error(`Unterminated quote in command: ${e}`);return r&&t.push(r),t}function We(e){return process.platform==="win32"&&/\.(cmd|bat)$/i.test(e)}function He(e,t){let{command:r,args:o=[],cwd:n,env:s,timeoutMs:a}=e;return execFileSync(r,o,{shell:We(r),timeout:a,encoding:t?.encoding??"utf-8",cwd:n,windowsHide:true,env:s?{...process.env,...s}:void 0,input:t?.input})}function Ft(e,t){let{command:r,args:o=[],cwd:n,env:s,timeoutMs:a=3e4}=e;execFile(r,o,{shell:We(r),encoding:"utf8",windowsHide:true,timeout:a,maxBuffer:10*1024*1024,cwd:n,env:s?{...process.env,...s}:void 0},(g,S,c)=>t(g??null,S,c));}function Ke(e,t,r){let o=x.join(e,"board-live-cards-cli.js");if(i.existsSync(o))return {cmd:process.execPath,args:[o,t,...r]};let n=x.join(e,"board-live-cards-cli.ts"),a=[x.join(e,"..","..","..","node_modules","tsx","dist","cli.mjs"),x.join(e,"..","..","node_modules","tsx","dist","cli.mjs"),x.join(e,"..","..","..","node_modules",".bin","tsx"),x.join(e,"..","..","node_modules",".bin","tsx")].find(S=>i.existsSync(S));return i.existsSync(n)&&a?{cmd:process.execPath,args:[a,n,t,...r]}:{cmd:process.platform==="win32"?"npx.cmd":"npx",args:["tsx",n,t,...r]}}function Ve(e){let t=x.join(e,"board-live-cards-cli.mjs");if(i.existsSync(t))return t;let r=x.join(e,"..","..","..","dev","board-live-cards-cli.js");if(i.existsSync(r))return r;let o=x.join(e,"..","..","dev","board-live-cards-cli.js");if(i.existsSync(o))return o;let n=x.join(e,"board-live-cards-cli.js");if(i.existsSync(n))return n;throw new Error(`resolveBoardCliCallbackTarget: cannot find callback target in ${e} (expected dev/board-live-cards-cli.js wrapper, ${n}, or ${t})`)}function $t(e){return process.platform==="win32"?`\\\\.\\pipe\\${e}`:x.join(Oe.tmpdir(),`${e}.sock`)}var ce=new Map;function Ue(e,t,r){if(t.length===0)return;let o=t.map(g=>JSON.stringify(g)).join(`
|
|
2
2
|
`)+`
|
|
3
|
-
`,n=Y.get(e);if(n&&!n.socket.destroyed){n.ready?n.socket.write(o):n.queue.push(o);return}let s=bt(e),c=Ie.createConnection(s);n={socket:c,ready:false,queue:[o]},Y.set(e,n),c.on("connect",()=>{n.ready=true;for(let l of n.queue)c.write(l);n.queue.length=0;}),c.on("error",l=>{r?.(`[named-pipe publish] ${s}: ${l instanceof Error?l.message:String(l)}`),Y.delete(e);}),c.on("close",()=>{Y.delete(e);});}function Qe(){return {executeSync(e,t,r){return Pe({command:e,args:t,cwd:r?.cwd,timeoutMs:r?.timeout,env:r?.env},{encoding:r?.encoding,input:r?.input})},executeAsync(e,t,r){kt({command:e,args:t},r);},resolveInvocation(e,t){let r=vt({command:e,args:t});return {cmd:r.command,args:r.args??[]}},splitCommand:Me}}function pe(e){return {id:e.id??"board-worker",pollIntervalMs:e.pollIntervalMs,visibilityMs:e.visibilityMs,concurrency:e.concurrency,maxAttempts:e.maxAttempts,async lease(t){return e.workerStore.leaseRequests(t).map(r=>({id:r.messageId,attempt:r.attempt,message:r.request,ack:()=>e.workerStore.ackRequest(r.messageId,r.leaseToken),nack:o=>e.workerStore.nackRequest(r.messageId,r.leaseToken,o)}))},async handle(t){await e.handleRequest(t.args,t);},onError:e.onError}}function ge(e){return {id:e.id,pollIntervalMs:e.pollIntervalMs,visibilityMs:e.visibilityMs,concurrency:e.concurrency,maxAttempts:e.maxAttempts,async lease(t){return e.queueStorage.lease(t).map(r=>({id:r.id,attempt:r.attempt,message:r.body,ack:()=>e.queueStorage.ack(r.id,r.leaseToken),nack:o=>e.queueStorage.nack(r.id,r.leaseToken,o)}))},handle:e.handleMessage,onError:e.onError}}async function _e(e,t){try{await e.handle(t.message,t),await t.ack();}catch(r){let o=t.attempt>=Math.max(1,Math.floor(e.maxAttempts??5));await t.nack({dead:o,reason:r instanceof Error?r.message:String(r)}),e.onError?.(r,t);}}function Ne(e){let t=Math.max(1,Math.floor(e.pollIntervalMs??250)),r=Math.max(1,Math.floor(e.visibilityMs??6e4)),o=Math.max(1,Math.floor(e.concurrency??1)),n=false,s=false;async function c(){if(!(n||s)){s=true;try{let y=await e.lease({max:o,visibilityMs:r});for(let a of y)await _e(e,a);}finally{s=false;}}}let l=setInterval(()=>{c();},t);return typeof l.unref=="function"&&l.unref(),c(),()=>{n=true,clearInterval(l);}}async function At(e){let t=Math.max(1,Math.floor(e.visibilityMs??6e4)),r=Math.max(1,Math.floor(e.concurrency??1)),o=await e.lease({max:r,visibilityMs:t});for(let n of o)await _e(e,n);return o.length}async function X(e,t){let r=Math.max(1,Math.floor(t?.maxPasses??256)),o=0;for(let n=0;n<r;n+=1){let s=await At(e);if(o+=s,s<=0)return o}throw new Error(`drainQueueLaneToIdle exceeded ${r} passes for lane "${e.id}"`)}function Et(e){let r=(Array.isArray(e)?e:e.lanes).map(o=>Ne(o));return ()=>{for(let o of r)o();}}var Bt=createRequire(import.meta.url);function It(e){return typeof e=="object"?e:b(e)}function We(e){let t=S.basename(String(e||"").trim());if(!t)throw new Error(`resolveYamlFlowCliPath: expected non-empty cli file name, got ${JSON.stringify(e)}`);let r=S.dirname(Bt.resolve("yaml-flow/package.json")),o=t.replace(/\.[^.]+$/,""),n=S.join(r,"cli","bundled",`${o}.mjs`);if(i.existsSync(n))return n;let s=S.join(r,"cli","node",t);if(i.existsSync(s))return s;throw new Error(`resolveYamlFlowCliPath: could not find ${t} under cli/bundled or cli/node in ${r}`)}function P(e){let t=It(e);return t.kind==="yaml-flow-cli"?We(t.value):t.value}function Ft(e,t){let r=P(e);switch(r){case "source-cli-task-executor":{let o=S.join(t,"source-cli-task-executor.js");if(i.existsSync(o))return {command:process.execPath,args:[o]};let n=S.join(t,"source-cli-task-executor.ts"),s=S.join(t,"..","..","node_modules","tsx","dist","cli.mjs"),c=S.join(t,"..","..","node_modules",".bin","tsx"),l=i.existsSync(s)?s:c;return i.existsSync(n)&&i.existsSync(l)?{command:process.execPath,args:[l,n]}:{command:process.execPath,args:[o]}}case "board-live-cards":{let{cmd:o,args:n}=Le(t,"_",[]);return {command:o,args:n}}default:throw new Error(`resolveBuiltIn: unknown built-in name "${r}". Supported: source-cli-task-executor, board-live-cards`)}}function Ct(e,t){if(e.howToRun==="built-in"){let{command:o,args:n}=Ft(e.whatToRun,t);return {command:o,baseArgs:n}}let r=(typeof e.whatToRun=="object",P(e.whatToRun));switch(e.howToRun){case "local-node":return {command:process.execPath,baseArgs:[r]};case "local-python":return {command:process.platform==="win32"?"python":"python3",baseArgs:[r]};case "local-process":return {command:r,baseArgs:[]};default:throw new Error(`resolveBaseInvocation: howToRun "${e.howToRun}" is not a local transport`)}}function ee(e,t){return Ct(e,t)}var me=new Map;function jt(e,t){let r=String(e||"").trim();if(!r)throw new Error("registerInProcessExecutionHandler: key is required");me.set(r,t);}function Mt(e){let t=String(e||"").trim();t&&me.delete(t);}function De(e){let t=e.trim();if(!t)throw new Error("empty stdout");try{return JSON.parse(t)}catch{let r=t.split(/\r?\n/).filter(Boolean),o=r[r.length-1];return JSON.parse(o)}}function Ke(e,t){return {...t,whatToRun:P(e.whatToRun),...e.extra?{extra:e.extra}:{}}}function ye(e,t,r="invokeExecutionRef"){return a(e,t,r)}function He(e,t){if(e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.result=="string"&&e.data&&typeof e.data=="object"&&!Array.isArray(e.data))return {...e,...t||{}};if(e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.status=="string"){let o=e,n=o.status==="success"?"success":o.status==="fail"?"failure":o.status,s=o.data&&typeof o.data=="object"&&!Array.isArray(o.data)?o.data:o.data===void 0?{}:{stdout:o.data};return {result:n,data:s,...typeof o.error=="string"?{error:o.error}:{},...t||{}}}return {result:"success",data:e&&typeof e=="object"&&!Array.isArray(e)?e:{stdout:e},...t||{}}}function $(e){return {result:"failure",data:{error:e}}}function N(e,t,r){let o=r?.label??"invokeExecutionRefSync",n=r?.cliDir??r?.cwd??process.cwd(),s;try{s=ye(e.argsMassaging,Ke(e,t),o);}catch(m){let u=m instanceof Error?m.message:String(m);return $(u)}let c;try{c=ee(e,n);}catch(m){let u=m instanceof Error?m.message:String(m);return $(`[${o}] ref resolution failed: ${u}`)}let l=[...c.baseArgs,...s.cmdArgs??[]],y=JSON.stringify(s.stdin??t),a=Qe(),d;try{d=a.executeSync(c.command,l,{timeout:r?.timeoutMs??3e4,encoding:"utf-8",cwd:r?.cwd,input:y});}catch(m){let u=m,p=(u.stderr?String(u.stderr):"").trim(),h=typeof u.status=="number"?u.status:"unknown",g=p||u.message;return $(`[${o}] ref exited with status ${h}${g?`: ${g}`:""}`)}try{return He(De(d))}catch{return {result:"success",data:{stdout:d.trim()}}}}async function Je(e,t,r){let o=r?.label??"invokeExecutionRef",n;try{n=ye(e.argsMassaging,Ke(e,t),o);}catch(m){let u=m instanceof Error?m.message:String(m);return $(u)}let s=P(e.whatToRun),c=n.headers?{"Content-Type":"application/json",...n.headers}:{"Content-Type":"application/json"},l=n.url??s,y;if(e.howToRun==="http:get"){let m=n.body&&typeof n.body=="object"&&!Array.isArray(n.body)?n.body:t,u=new URLSearchParams(Object.entries(m).filter(([,p])=>p!=null).map(([p,h])=>[p,String(h)]));u.size>0&&(l=`${l}${l.includes("?")?"&":"?"}${u.toString()}`);}else y=JSON.stringify(n.body??t);let a={method:e.howToRun==="http:get"?"GET":"POST",headers:c,body:y},d=0;for(;;)try{let m=await fetch(l,a);if(!m.ok){let g=await m.text().catch(()=>"");return $(`[${o}] HTTP ${m.status}${g?`: ${g}`:""}`)}let u={};m.headers.forEach((g,R)=>{u[R]=g;});let p=new Uint8Array(await m.arrayBuffer());if(p.byteLength===0)return {result:"success",data:{},headers:u};let h=new TextDecoder().decode(p);try{return He(De(h),{headers:u})}catch{return {result:"success",data:{stdout:h},headers:u}}}catch(m){let u=m?.cause,p=u&&typeof u=="object"&&"code"in u?String(u.code||""):"";if((p==="ECONNRESET"||p==="UND_ERR_SOCKET")&&d===0){d+=1;continue}let g=m instanceof Error?m.message:String(m),R=u instanceof Error?`${u.name}: ${u.message}${p?` [${p}]`:""}`:u?String(u):"",w=n.url??s??"",f=`${g}${R?` (cause: ${R})`:""}${w?` url=${w}`:""}`;return $(`[${o}] ${f}`)}}async function $t(e,t,r){let o=r?.label??"invokeExecutionRef",n=P(e.whatToRun).trim();if(!n)return $(`[${o}] in-process-loop requires a non-empty handler key`);let s=me.get(n);if(!s)return $(`[${o}] no in-process handler registered for: ${n}`);try{return await s(e,t,r)}catch(c){let l=c instanceof Error?c.message:String(c);return $(`[${o}] ${l}`)}}var Pt={"local-node":async(e,t,r)=>N(e,t,r),"local-python":async(e,t,r)=>N(e,t,r),"local-process":async(e,t,r)=>N(e,t,r),"built-in":async(e,t,r)=>N(e,t,r),"http:post":Je,"http:get":Je,"in-process-loop":$t},Lt={"local-node":N,"local-python":N,"local-process":N,"built-in":N};async function U(e,t,r){let o=r?.transports?.[e.howToRun]??Pt[e.howToRun];return o?o(e,t,r):$(`[${r?.label??"invokeExecutionRef"}] unsupported howToRun: ${e.howToRun}`)}function he(e,t,r){let o=r?.syncTransports?.[e.howToRun]??Lt[e.howToRun];return o?o(e,t,r):$(`[${r?.label??"invokeExecutionRefSync"}] unsupported sync howToRun: ${e.howToRun}`)}function qt(e){return {invoke(t,r){return U(t,r,e)},invokeSync(t,r){return he(t,r,e)}}}function Ot(e,t,r){return he(e,t,r)}function F(e,t){if(process.platform!=="win32"){i.renameSync(e,t);return}let r=[10,20,40,80,160];for(let o=0;o<=r.length;o++)try{i.renameSync(e,t);return}catch(n){let s=n.code;if((s==="EPERM"||s==="EBUSY")&&o<r.length){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,r[o]);continue}throw n}}function J(e){function t(n){return S.join(e,...n.split("/"))}function r(n){return S.relative(e,n).replace(/\\/g,"/")}function o(n,s){if(i.existsSync(n))for(let c of i.readdirSync(n,{withFileTypes:true})){let l=S.join(n,c.name);if(c.isDirectory()){o(l,s);continue}c.isFile()&&s.push(r(l));}}return {read(n){let s=t(n);if(!i.existsSync(s))return null;try{return i.readFileSync(s,"utf-8")}catch{return null}},write(n,s){let c=t(n),l=`${c}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(S.dirname(c),{recursive:true}),i.writeFileSync(l,s,"utf-8"),F(l,c);},exists(n){return i.existsSync(t(n))},remove(n){let s=t(n);try{i.existsSync(s)&&i.unlinkSync(s);}catch{}},readBytes(n){let s=t(n);if(!i.existsSync(s))return null;try{return new Uint8Array(i.readFileSync(s))}catch{return null}},writeBytes(n,s){let c=t(n),l=`${c}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(S.dirname(c),{recursive:true}),i.writeFileSync(l,Buffer.from(s)),F(l,c);},listKeys(n){let s=[];o(e,s);let c=s.sort();return n?c.filter(l=>l.startsWith(n)):c},stat(n){let s=t(n);if(!i.existsSync(s))return null;try{let c=i.statSync(s);return {key:n,size:Number(c.size||0),updatedAt:new Date(c.mtimeMs).toISOString()}}catch{return null}},keyRef(n){return {kind:"fs-path",value:t(n)}},renameKey(n,s){let c=t(n);if(!i.existsSync(c))return false;let l=t(s);return i.mkdirSync(S.dirname(l),{recursive:true}),F(c,l),true}}}function we(){return {read(e){if(!i.existsSync(e))return null;try{return i.readFileSync(e,"utf-8")}catch{return null}},write(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(S.dirname(e),{recursive:true}),i.writeFileSync(r,t,"utf-8"),F(r,e);},exists(e){return i.existsSync(e)},remove(e){try{i.existsSync(e)&&i.unlinkSync(e);}catch{}},readBytes(e){if(!i.existsSync(e))return null;try{return new Uint8Array(i.readFileSync(e))}catch{return null}},writeBytes(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(S.dirname(e),{recursive:true}),i.writeFileSync(r,Buffer.from(t)),F(r,e);},stat(e){if(!i.existsSync(e))return null;try{let t=i.statSync(e);return {key:e,size:Number(t.size||0),updatedAt:new Date(t.mtimeMs).toISOString()}}catch{return null}},listKeys(e){return []},renameKey(e,t){return i.existsSync(e)?(i.mkdirSync(S.dirname(t),{recursive:true}),F(e,t),true):false}}}function Q(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(S.dirname(e),{recursive:true}),i.writeFileSync(r,JSON.stringify(t,null,2),"utf-8"),F(r,e);}function L(e){if(!i.existsSync(e))return null;try{return JSON.parse(i.readFileSync(e,"utf-8"))}catch{return null}}function K(e){return i.existsSync(e)?i.readdirSync(e).filter(t=>t.endsWith(".json")).sort().map(t=>S.join(e,t)):[]}function H(e){return {id:e.id,body:e.body,enqueuedAt:e.enqueuedAt,attempt:e.attempt}}function Nt(e){return {...H(e),leaseToken:String(e.leaseToken||""),leaseExpiresAt:String(e.leaseExpiresAt||"")}}function Jt(e){return {...H(e),reason:e.reason}}function ve(e){let t=S.join(e,"active"),r=S.join(e,"leased"),o=S.join(e,"done"),n=S.join(e,"dead"),s=S.join(e,"staged");for(let u of [t,r,o,n,s])i.mkdirSync(u,{recursive:true});function c(u){let p=String(u.enqueuedAt||new Date().toISOString()).replace(/[:.]/g,"-");return S.join(t,`${p}-${u.id}.json`)}function l(u){return S.join(r,`${u}.json`)}function y(u){return S.join(o,`${u}.json`)}function a(u){return S.join(n,`${u}.json`)}function d(u){return S.join(s,`${u}.json`)}function m(){let u=Date.now();for(let p of K(r)){let h=L(p);if(!h?.leaseExpiresAt)continue;let g=Date.parse(h.leaseExpiresAt);if(Number.isNaN(g)||g>u)continue;let R={id:h.id,body:h.body,enqueuedAt:h.enqueuedAt,attempt:h.attempt};Q(c(R),R);try{i.unlinkSync(p);}catch{}}}return {enqueue(u){let p={id:randomUUID(),body:u,enqueuedAt:new Date().toISOString(),attempt:0};return Q(c(p),p),H(p)},enqueueMany(u){return u.map(p=>this.enqueue(p))},enqueueIfAbsent(u,p){m();for(let g of [t,r,s])for(let R of K(g))if(L(R)?.dedupKey===p)return null;let h={id:randomUUID(),body:u,enqueuedAt:new Date().toISOString(),attempt:0,dedupKey:p};return Q(c(h),h),H(h)},lease(u){m();let p=Math.max(1,Math.floor(u?.max??1)),h=Math.max(1,Math.floor(u?.visibilityMs??6e4)),g=[];for(let R of K(t)){if(g.length>=p)break;let w=L(R);if(!w)continue;let f=l(w.id);try{F(R,f);}catch{continue}let x={...w,attempt:(Number(w.attempt)||0)+1,leaseToken:randomUUID(),leaseExpiresAt:new Date(Date.now()+h).toISOString()};Q(f,x),g.push(Nt(x));}return g},ack(u,p){let h=l(u),g=L(h);if(!g||g.leaseToken!==p)return false;try{F(h,y(u));}catch{return false}return true},nack(u,p,h){let g=l(u),R=L(g);if(!R||R.leaseToken!==p)return false;let w={id:R.id,body:R.body,enqueuedAt:R.enqueuedAt,attempt:R.attempt};h?.dead?(w.reason=h.reason,Q(a(u),w)):Q(c(w),w);try{i.unlinkSync(g);}catch{}return true},peekActive(u){return m(),K(t).map(p=>L(p)).filter(p=>!!p).map(H)},peekDeadLetter(u){return K(n).map(p=>L(p)).filter(p=>!!p).map(Jt)},stage(u,p){let h=p?.dedupKey;if(h){m();for(let R of [t,r,s])for(let w of K(R))if(L(w)?.dedupKey===h)return null}let g={id:randomUUID(),body:u,enqueuedAt:new Date().toISOString(),attempt:0,...h?{dedupKey:h}:{}};return Q(d(g.id),g),H(g)},commitStaged(u){let p=d(u),h=L(p);if(!h)return false;let g={...h,attempt:0,enqueuedAt:new Date().toISOString()};Q(c(g),g);try{i.unlinkSync(p);}catch{}return true},discardStaged(u,p){let h=d(u),g=L(h);if(!g)return false;let R={id:g.id,body:g.body,enqueuedAt:g.enqueuedAt,attempt:g.attempt,reason:p};Q(a(u),R);try{i.unlinkSync(h);}catch{}return true},peekStaged(u){return K(s).map(p=>L(p)).filter(p=>!!p).map(H)}}}var Se="__scratch-marker",Re="__scratch-config.json",Wt=1440*60*1e3,Dt=720*60*1e3,Kt=500;function Ue(e,t){if(!e)return t;let r=e.replace(/[^A-Za-z0-9._-]/g,"_");return r.length>0?r:t}function z(e){i.mkdirSync(e,{recursive:true});let t=S.join(e,Se),r=S.join(e,Re),o=!i.existsSync(t);if(o)try{i.writeFileSync(t,`scratch-store
|
|
3
|
+
`,n=ce.get(e);if(n&&!n.socket.destroyed){n.ready?n.socket.write(o):n.queue.push(o);return}let s=$t(e),a=qe.createConnection(s);n={socket:a,ready:false,queue:[o]},ce.set(e,n),a.on("connect",()=>{n.ready=true;for(let g of n.queue)a.write(g);n.queue.length=0;}),a.on("error",g=>{r?.(`[named-pipe publish] ${s}: ${g instanceof Error?g.message:String(g)}`),ce.delete(e);}),a.on("close",()=>{ce.delete(e);});}function ze(){return {executeSync(e,t,r){return He({command:e,args:t,cwd:r?.cwd,timeoutMs:r?.timeout,env:r?.env},{encoding:r?.encoding,input:r?.input})},executeAsync(e,t,r){Ft({command:e,args:t},r);},resolveInvocation(e,t){let r=Pt({command:e,args:t});return {cmd:r.command,args:r.args??[]}},splitCommand:De}}function xe(e){return {id:e.id??"board-worker",pollIntervalMs:e.pollIntervalMs,visibilityMs:e.visibilityMs,concurrency:e.concurrency,maxAttempts:e.maxAttempts,async lease(t){return e.workerStore.leaseRequests(t).map(r=>({id:r.messageId,attempt:r.attempt,message:r.request,ack:()=>e.workerStore.ackRequest(r.messageId,r.leaseToken),nack:o=>e.workerStore.nackRequest(r.messageId,r.leaseToken,o)}))},async handle(t){await e.handleRequest(t.args,t);},onError:e.onError}}function we(e){return {id:e.id,pollIntervalMs:e.pollIntervalMs,visibilityMs:e.visibilityMs,concurrency:e.concurrency,maxAttempts:e.maxAttempts,async lease(t){return e.queueStorage.lease(t).map(r=>({id:r.id,attempt:r.attempt,message:r.body,ack:()=>e.queueStorage.ack(r.id,r.leaseToken),nack:o=>e.queueStorage.nack(r.id,r.leaseToken,o)}))},handle:e.handleMessage,onError:e.onError}}async function Ge(e,t){try{await e.handle(t.message,t),await t.ack();}catch(r){let o=t.attempt>=Math.max(1,Math.floor(e.maxAttempts??5));await t.nack({dead:o,reason:r instanceof Error?r.message:String(r)}),e.onError?.(r,t);}}function Ye(e){let t=Math.max(1,Math.floor(e.pollIntervalMs??250)),r=Math.max(1,Math.floor(e.visibilityMs??6e4)),o=Math.max(1,Math.floor(e.concurrency??1)),n=false,s=false;async function a(){if(!(n||s)){s=true;try{let S=await e.lease({max:o,visibilityMs:r});for(let c of S)await Ge(e,c);}finally{s=false;}}}let g=setInterval(()=>{a();},t);return typeof g.unref=="function"&&g.unref(),a(),()=>{n=true,clearInterval(g);}}async function Mt(e){let t=Math.max(1,Math.floor(e.visibilityMs??6e4)),r=Math.max(1,Math.floor(e.concurrency??1)),o=await e.lease({max:r,visibilityMs:t});for(let n of o)await Ge(e,n);return o.length}async function de(e,t){let r=Math.max(1,Math.floor(t?.maxPasses??256)),o=0;for(let n=0;n<r;n+=1){let s=await Mt(e);if(o+=s,s<=0)return o}throw new Error(`drainQueueLaneToIdle exceeded ${r} passes for lane "${e.id}"`)}function _t(e){let r=(Array.isArray(e)?e:e.lanes).map(o=>Ye(o));return ()=>{for(let o of r)o();}}var Ot=createRequire(import.meta.url);function qt(e){return typeof e=="object"?e:b(e)}function Xe(e){let t=x.basename(String(e||"").trim());if(!t)throw new Error(`resolveYamlFlowCliPath: expected non-empty cli file name, got ${JSON.stringify(e)}`);let r=x.dirname(Ot.resolve("yaml-flow/package.json")),o=t.replace(/\.[^.]+$/,""),n=x.join(r,"cli","bundled",`${o}.mjs`);if(i.existsSync(n))return n;let s=x.join(r,"cli","node",t);if(i.existsSync(s))return s;throw new Error(`resolveYamlFlowCliPath: could not find ${t} under cli/bundled or cli/node in ${r}`)}function q(e){let t=qt(e);return t.kind==="yaml-flow-cli"?Xe(t.value):t.value}function Nt(e,t){let r=q(e);switch(r){case "source-cli-task-executor":{let o=x.join(t,"source-cli-task-executor.js");if(i.existsSync(o))return {command:process.execPath,args:[o]};let n=x.join(t,"source-cli-task-executor.ts"),s=x.join(t,"..","..","node_modules","tsx","dist","cli.mjs"),a=x.join(t,"..","..","node_modules",".bin","tsx"),g=i.existsSync(s)?s:a;return i.existsSync(n)&&i.existsSync(g)?{command:process.execPath,args:[g,n]}:{command:process.execPath,args:[o]}}case "board-live-cards":{let{cmd:o,args:n}=Ke(t,"_",[]);return {command:o,args:n}}default:throw new Error(`resolveBuiltIn: unknown built-in name "${r}". Supported: source-cli-task-executor, board-live-cards`)}}function Qt(e,t){if(e.howToRun==="built-in"){let{command:o,args:n}=Nt(e.whatToRun,t);return {command:o,baseArgs:n}}let r=(typeof e.whatToRun=="object",q(e.whatToRun));switch(e.howToRun){case "local-node":return {command:process.execPath,baseArgs:[r]};case "local-python":return {command:process.platform==="win32"?"python":"python3",baseArgs:[r]};case "local-process":return {command:r,baseArgs:[]};default:throw new Error(`resolveBaseInvocation: howToRun "${e.howToRun}" is not a local transport`)}}function le(e,t){return Qt(e,t)}var ke=new Map;function Jt(e,t){let r=String(e||"").trim();if(!r)throw new Error("registerInProcessExecutionHandler: key is required");ke.set(r,t);}function Dt(e){let t=String(e||"").trim();t&&ke.delete(t);}function et(e){let t=e.trim();if(!t)throw new Error("empty stdout");try{return JSON.parse(t)}catch{let r=t.split(/\r?\n/).filter(Boolean),o=r[r.length-1];return JSON.parse(o)}}function tt(e,t){return {...t,whatToRun:q(e.whatToRun),...e.extra?{extra:e.extra}:{}}}function be(e,t,r="invokeExecutionRef"){return a(e,t,r)}function rt(e,t){if(e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.result=="string"&&e.data&&typeof e.data=="object"&&!Array.isArray(e.data))return {...e,...t||{}};if(e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.status=="string"){let o=e,n=o.status==="success"?"success":o.status==="fail"?"failure":o.status,s=o.data&&typeof o.data=="object"&&!Array.isArray(o.data)?o.data:o.data===void 0?{}:{stdout:o.data};return {result:n,data:s,...typeof o.error=="string"?{error:o.error}:{},...t||{}}}return {result:"success",data:e&&typeof e=="object"&&!Array.isArray(e)?e:{stdout:e},...t||{}}}function O(e){return {result:"failure",data:{error:e}}}function V(e,t,r){let o=r?.label??"invokeExecutionRefSync",n=r?.cliDir??r?.cwd??process.cwd(),s;try{s=be(e.argsMassaging,tt(e,t),o);}catch(h){let l=h instanceof Error?h.message:String(h);return O(l)}let a;try{a=le(e,n);}catch(h){let l=h instanceof Error?h.message:String(h);return O(`[${o}] ref resolution failed: ${l}`)}let g=[...a.baseArgs,...s.cmdArgs??[]],S=JSON.stringify(s.stdin??t),c=ze(),d;try{d=c.executeSync(a.command,g,{timeout:r?.timeoutMs??3e4,encoding:"utf-8",cwd:r?.cwd,input:S});}catch(h){let l=h,u=(l.stderr?String(l.stderr):"").trim(),p=typeof l.status=="number"?l.status:"unknown",m=u||l.message;return O(`[${o}] ref exited with status ${p}${m?`: ${m}`:""}`)}try{return rt(et(d))}catch{return {result:"success",data:{stdout:d.trim()}}}}async function Ze(e,t,r){let o=r?.label??"invokeExecutionRef",n;try{n=be(e.argsMassaging,tt(e,t),o);}catch(h){let l=h instanceof Error?h.message:String(h);return O(l)}let s=q(e.whatToRun),a=n.headers?{"Content-Type":"application/json",...n.headers}:{"Content-Type":"application/json"},g=n.url??s,S;if(e.howToRun==="http:get"){let h=n.body&&typeof n.body=="object"&&!Array.isArray(n.body)?n.body:t,l=new URLSearchParams(Object.entries(h).filter(([,u])=>u!=null).map(([u,p])=>[u,String(p)]));l.size>0&&(g=`${g}${g.includes("?")?"&":"?"}${l.toString()}`);}else S=JSON.stringify(n.body??t);let c={method:e.howToRun==="http:get"?"GET":"POST",headers:a,body:S},d=0;for(;;)try{let h=await fetch(g,c);if(!h.ok){let m=await h.text().catch(()=>"");return O(`[${o}] HTTP ${h.status}${m?`: ${m}`:""}`)}let l={};h.headers.forEach((m,R)=>{l[R]=m;});let u=new Uint8Array(await h.arrayBuffer());if(u.byteLength===0)return {result:"success",data:{},headers:l};let p=new TextDecoder().decode(u);try{return rt(et(p),{headers:l})}catch{return {result:"success",data:{stdout:p},headers:l}}}catch(h){let l=h?.cause,u=l&&typeof l=="object"&&"code"in l?String(l.code||""):"";if((u==="ECONNRESET"||u==="UND_ERR_SOCKET")&&d===0){d+=1;continue}let m=h instanceof Error?h.message:String(h),R=l instanceof Error?`${l.name}: ${l.message}${u?` [${u}]`:""}`:l?String(l):"",w=n.url??s??"",f=`${m}${R?` (cause: ${R})`:""}${w?` url=${w}`:""}`;return O(`[${o}] ${f}`)}}async function Wt(e,t,r){let o=r?.label??"invokeExecutionRef",n=q(e.whatToRun).trim();if(!n)return O(`[${o}] in-process-loop requires a non-empty handler key`);let s=ke.get(n);if(!s)return O(`[${o}] no in-process handler registered for: ${n}`);try{return await s(e,t,r)}catch(a){let g=a instanceof Error?a.message:String(a);return O(`[${o}] ${g}`)}}var Ht={"local-node":async(e,t,r)=>V(e,t,r),"local-python":async(e,t,r)=>V(e,t,r),"local-process":async(e,t,r)=>V(e,t,r),"built-in":async(e,t,r)=>V(e,t,r),"http:post":Ze,"http:get":Ze,"in-process-loop":Wt},Kt={"local-node":V,"local-python":V,"local-process":V,"built-in":V};async function Z(e,t,r){let o=r?.transports?.[e.howToRun]??Ht[e.howToRun];return o?o(e,t,r):O(`[${r?.label??"invokeExecutionRef"}] unsupported howToRun: ${e.howToRun}`)}function ve(e,t,r){let o=r?.syncTransports?.[e.howToRun]??Kt[e.howToRun];return o?o(e,t,r):O(`[${r?.label??"invokeExecutionRefSync"}] unsupported sync howToRun: ${e.howToRun}`)}function Vt(e){return {invoke(t,r){return Z(t,r,e)},invokeSync(t,r){return ve(t,r,e)}}}function Ut(e,t,r){return ve(e,t,r)}function Ae(e={}){let t=e.resolveRef??(r=>r);return {...e.executorTimeouts?{executorTimeouts:e.executorTimeouts}:{},async invokeExecutor(r,o,n){let s=t(r);if(s.howToRun==="queue-storage")throw new Error("queue-storage does not support inline executor request/response");if(s.howToRun==="http:post"||s.howToRun==="in-process-loop"){let d=await h(s,{subcommand:o,...n?.input!==void 0?{input:n.input}:{}});return typeof d=="string"?d:d&&typeof d=="object"&&!Array.isArray(d)&&typeof d.stdout=="string"?String(d.stdout):JSON.stringify(d??{})}if(s.howToRun==="http:get"){let d=await Z(s,{subcommand:o,...n?.input!==void 0?{input:n.input}:{},...s.extra?{extra:s.extra}:{}},{cwd:process.cwd(),timeoutMs:n?.timeout??3e4,label:`invokeExecutor:${o}`});if(d.result!=="success"){let h=typeof d.data?.error=="string"?d.data.error:d.error;throw new Error(h||`executor request failed: ${d.result}`)}return typeof d.data?.stdout=="string"?d.data.stdout:JSON.stringify(d.data??{})}if(!e.resolveCliDir)throw new Error(`createNonCoreExecutorDispatcher: ref.howToRun="${s.howToRun}" requires opts.resolveCliDir`);let{command:a,baseArgs:g}=le(s,e.resolveCliDir()),S=s.extra?["--extra",Buffer.from(JSON.stringify(s.extra)).toString("base64")]:[],c=[...g,o,...S];return await new Promise((d,h)=>{let l=spawn(a,c,{cwd:process.cwd(),stdio:"pipe",windowsHide:true,shell:process.platform==="win32"&&/\.(cmd|bat)$/i.test(a)}),u=[],p=[],m=false,R=null,w=y=>{m||(m=true,R&&clearTimeout(R),h(y));},f=y=>{m||(m=true,R&&clearTimeout(R),d(y));};l.stdout.on("data",y=>{u.push(Buffer.from(y));}),l.stderr.on("data",y=>{p.push(Buffer.from(y));}),l.on("error",y=>{let v=y;v.stdout=Buffer.concat(u).toString("utf-8"),v.stderr=Buffer.concat(p).toString("utf-8"),w(v);}),l.on("close",y=>{let v=Buffer.concat(u).toString("utf-8"),k=Buffer.concat(p).toString("utf-8");if(y===0){f(v);return}let b=new Error(k.trim()||`executor exited with status ${y}`);b.stdout=v,b.stderr=k,w(b);}),n?.timeout&&n.timeout>0&&(R=setTimeout(()=>{l.kill();let y=new Error(`executor timed out after ${n.timeout}ms`);y.stdout=Buffer.concat(u).toString("utf-8"),y.stderr=Buffer.concat(p).toString("utf-8"),w(y);},n.timeout)),n?.input!==void 0?l.stdin.end(n.input):l.stdin.end();})}}}function B(e,t){if(process.platform!=="win32"){i.renameSync(e,t);return}let r=[10,20,40,80,160];for(let o=0;o<=r.length;o++)try{i.renameSync(e,t);return}catch(n){let s=n.code;if((s==="EPERM"||s==="EBUSY")&&o<r.length){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,r[o]);continue}throw n}}function U(e){function t(n){return x.join(e,...n.split("/"))}function r(n){return x.relative(e,n).replace(/\\/g,"/")}function o(n,s){if(i.existsSync(n))for(let a of i.readdirSync(n,{withFileTypes:true})){let g=x.join(n,a.name);if(a.isDirectory()){o(g,s);continue}a.isFile()&&s.push(r(g));}}return {read(n){let s=t(n);if(!i.existsSync(s))return null;try{return i.readFileSync(s,"utf-8")}catch{return null}},write(n,s){let a=t(n),g=`${a}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(x.dirname(a),{recursive:true}),i.writeFileSync(g,s,"utf-8"),B(g,a);},exists(n){return i.existsSync(t(n))},remove(n){let s=t(n);try{i.existsSync(s)&&i.unlinkSync(s);}catch{}},readBytes(n){let s=t(n);if(!i.existsSync(s))return null;try{return new Uint8Array(i.readFileSync(s))}catch{return null}},writeBytes(n,s){let a=t(n),g=`${a}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(x.dirname(a),{recursive:true}),i.writeFileSync(g,Buffer.from(s)),B(g,a);},listKeys(n){let s=[];o(e,s);let a=s.sort();return n?a.filter(g=>g.startsWith(n)):a},stat(n){let s=t(n);if(!i.existsSync(s))return null;try{let a=i.statSync(s);return {key:n,size:Number(a.size||0),updatedAt:new Date(a.mtimeMs).toISOString()}}catch{return null}},keyRef(n){return {kind:"fs-path",value:t(n)}},renameKey(n,s){let a=t(n);if(!i.existsSync(a))return false;let g=t(s);return i.mkdirSync(x.dirname(g),{recursive:true}),B(a,g),true}}}function Ie(){return {read(e){if(!i.existsSync(e))return null;try{return i.readFileSync(e,"utf-8")}catch{return null}},write(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(x.dirname(e),{recursive:true}),i.writeFileSync(r,t,"utf-8"),B(r,e);},exists(e){return i.existsSync(e)},remove(e){try{i.existsSync(e)&&i.unlinkSync(e);}catch{}},readBytes(e){if(!i.existsSync(e))return null;try{return new Uint8Array(i.readFileSync(e))}catch{return null}},writeBytes(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(x.dirname(e),{recursive:true}),i.writeFileSync(r,Buffer.from(t)),B(r,e);},stat(e){if(!i.existsSync(e))return null;try{let t=i.statSync(e);return {key:e,size:Number(t.size||0),updatedAt:new Date(t.mtimeMs).toISOString()}}catch{return null}},listKeys(e){return []},renameKey(e,t){return i.existsSync(e)?(i.mkdirSync(x.dirname(t),{recursive:true}),B(e,t),true):false}}}function D(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(x.dirname(e),{recursive:true}),i.writeFileSync(r,JSON.stringify(t,null,2),"utf-8"),B(r,e);}function N(e){if(!i.existsSync(e))return null;try{return JSON.parse(i.readFileSync(e,"utf-8"))}catch{return null}}function X(e){return i.existsSync(e)?i.readdirSync(e).filter(t=>t.endsWith(".json")).sort().map(t=>x.join(e,t)):[]}function ee(e){return {id:e.id,body:e.body,enqueuedAt:e.enqueuedAt,attempt:e.attempt}}function Zt(e){return {...ee(e),leaseToken:String(e.leaseToken||""),leaseExpiresAt:String(e.leaseExpiresAt||"")}}function Xt(e){return {...ee(e),reason:e.reason}}function je(e){let t=x.join(e,"active"),r=x.join(e,"leased"),o=x.join(e,"done"),n=x.join(e,"dead"),s=x.join(e,"staged");for(let l of [t,r,o,n,s])i.mkdirSync(l,{recursive:true});function a(l){let u=String(l.enqueuedAt||new Date().toISOString()).replace(/[:.]/g,"-");return x.join(t,`${u}-${l.id}.json`)}function g(l){return x.join(r,`${l}.json`)}function S(l){return x.join(o,`${l}.json`)}function c(l){return x.join(n,`${l}.json`)}function d(l){return x.join(s,`${l}.json`)}function h(){let l=Date.now();for(let u of X(r)){let p=N(u);if(!p?.leaseExpiresAt)continue;let m=Date.parse(p.leaseExpiresAt);if(Number.isNaN(m)||m>l)continue;let R={id:p.id,body:p.body,enqueuedAt:p.enqueuedAt,attempt:p.attempt};D(a(R),R);try{i.unlinkSync(u);}catch{}}}return {enqueue(l){let u={id:randomUUID(),body:l,enqueuedAt:new Date().toISOString(),attempt:0};return D(a(u),u),ee(u)},enqueueMany(l){return l.map(u=>this.enqueue(u))},enqueueIfAbsent(l,u){h();for(let m of [t,r,s])for(let R of X(m))if(N(R)?.dedupKey===u)return null;let p={id:randomUUID(),body:l,enqueuedAt:new Date().toISOString(),attempt:0,dedupKey:u};return D(a(p),p),ee(p)},lease(l){h();let u=Math.max(1,Math.floor(l?.max??1)),p=Math.max(1,Math.floor(l?.visibilityMs??6e4)),m=[];for(let R of X(t)){if(m.length>=u)break;let w=N(R);if(!w)continue;let f=g(w.id);try{B(R,f);}catch{continue}let y={...w,attempt:(Number(w.attempt)||0)+1,leaseToken:randomUUID(),leaseExpiresAt:new Date(Date.now()+p).toISOString()};D(f,y),m.push(Zt(y));}return m},ack(l,u){let p=g(l),m=N(p);if(!m||m.leaseToken!==u)return false;try{B(p,S(l));}catch{return false}return true},nack(l,u,p){let m=g(l),R=N(m);if(!R||R.leaseToken!==u)return false;let w={id:R.id,body:R.body,enqueuedAt:R.enqueuedAt,attempt:R.attempt};p?.dead?(w.reason=p.reason,D(c(l),w)):D(a(w),w);try{i.unlinkSync(m);}catch{}return true},peekActive(l){return h(),X(t).map(u=>N(u)).filter(u=>!!u).map(ee)},peekDeadLetter(l){return X(n).map(u=>N(u)).filter(u=>!!u).map(Xt)},stage(l,u){let p=u?.dedupKey;if(p){h();for(let R of [t,r,s])for(let w of X(R))if(N(w)?.dedupKey===p)return null}let m={id:randomUUID(),body:l,enqueuedAt:new Date().toISOString(),attempt:0,...p?{dedupKey:p}:{}};return D(d(m.id),m),ee(m)},commitStaged(l){let u=d(l),p=N(u);if(!p)return false;let m={...p,attempt:0,enqueuedAt:new Date().toISOString()};D(a(m),m);try{i.unlinkSync(u);}catch{}return true},discardStaged(l,u){let p=d(l),m=N(p);if(!m)return false;let R={id:m.id,body:m.body,enqueuedAt:m.enqueuedAt,attempt:m.attempt,reason:u};D(c(l),R);try{i.unlinkSync(p);}catch{}return true},peekStaged(l){return X(s).map(u=>N(u)).filter(u=>!!u).map(ee)}}}var Ee="__scratch-marker",Te="__scratch-config.json",er=1440*60*1e3,tr=720*60*1e3,rr=500;function nt(e,t){if(!e)return t;let r=e.replace(/[^A-Za-z0-9._-]/g,"_");return r.length>0?r:t}function oe(e){i.mkdirSync(e,{recursive:true});let t=x.join(e,Ee),r=x.join(e,Te),o=!i.existsSync(t);if(o)try{i.writeFileSync(t,`scratch-store
|
|
4
4
|
${new Date().toISOString()}
|
|
5
|
-
`,"utf-8");}catch{}function n(){if(!i.existsSync(r))return {};try{let
|
|
5
|
+
`,"utf-8");}catch{}function n(){if(!i.existsSync(r))return {};try{let c=i.readFileSync(r,"utf-8"),d=JSON.parse(c);return d&&typeof d=="object"&&!Array.isArray(d)?d:{}}catch{return {}}}function s(c){let d=`${r}.${process.pid}.${randomUUID()}.tmp`;try{i.writeFileSync(d,JSON.stringify(c,null,2),"utf-8"),B(d,r);}catch{}}if(o){let c=n();typeof c["retention.lastSweepAt"]!="number"&&(c["retention.lastSweepAt"]=Date.now(),s(c));}function a(){if(!i.existsSync(t))return;let c=n(),d=typeof c["retention.maxAgeMs"]=="number"?c["retention.maxAgeMs"]:er,h=typeof c["retention.sweepIntervalMs"]=="number"?c["retention.sweepIntervalMs"]:tr;if(d<=0||h<=0)return;let l=typeof c["retention.lastSweepAt"]=="number"?c["retention.lastSweepAt"]:0,u=Date.now();if(u-l<h)return;c["retention.lastSweepAt"]=u,s(c);let p=u;try{let m=i.readdirSync(e,{withFileTypes:!0});for(let R of m){if(Date.now()-p>rr)break;if(!R.isFile()||R.name===Ee||R.name===Te)continue;let w=x.join(e,R.name);try{let f=i.statSync(w);if(u-f.mtimeMs>d)try{i.unlinkSync(w);}catch{}}catch{}}}catch{}}function g(c,d){let h=nt(c,"scratch"),l=nt(d,".json"),u=l.startsWith(".")?l:`.${l}`,p=`${h}-${Date.now()}-${randomUUID().slice(0,8)}${u}`;return x.join(e,p)}function S(c,d){let h=`${c}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(x.dirname(c),{recursive:true}),i.writeFileSync(h,d,"utf-8"),B(h,c);}return {read(c){if(!i.existsSync(c))return null;try{return i.readFileSync(c,"utf-8")}catch{return null}},write(c,d){S(c,d);try{a();}catch{}},exists(c){return i.existsSync(c)},remove(c){try{i.existsSync(c)&&i.unlinkSync(c);}catch{}},readBytes(c){if(!i.existsSync(c))return null;try{return new Uint8Array(i.readFileSync(c))}catch{return null}},writeBytes(c,d){let h=`${c}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(x.dirname(c),{recursive:true}),i.writeFileSync(h,Buffer.from(d)),B(h,c);try{a();}catch{}},stat(c){if(!i.existsSync(c))return null;try{let d=i.statSync(c);return {key:c,size:Number(d.size||0),updatedAt:new Date(d.mtimeMs).toISOString()}}catch{return null}},listKeys(c){try{let d=i.readdirSync(e,{withFileTypes:!0}),h=[];for(let l of d){if(!l.isFile()||l.name===Ee||l.name===Te)continue;let u=x.join(e,l.name);(!c||u.startsWith(c))&&h.push(u);}return h.sort()}catch{return []}},getUniqueKey(c,d){return g(c,d)},create(c,d,h){let l=g(d,h);S(l,c);try{a();}catch{}return l},keyRef(c){return {kind:"fs-path",value:c}},renameKey(c,d){return i.existsSync(c)?(i.mkdirSync(x.dirname(d),{recursive:true}),B(c,d),true):false},config:{get(c){return n()[c]??null},set(c,d){let h=n();d==null?delete h[c]:h[c]=d,s(h);}}}}var nr="__archive-marker",or="__archive-config.json",fe="streams",pe="blobs",sr=500;function ot(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"_");if(!t)throw new Error("Archive segment name cannot be empty after sanitization");return t}function ge(e){i.mkdirSync(e,{recursive:true}),i.mkdirSync(x.join(e,fe),{recursive:true}),i.mkdirSync(x.join(e,pe),{recursive:true});let t=x.join(e,nr),r=x.join(e,or);if(!i.existsSync(t))try{i.writeFileSync(t,`archive-store
|
|
6
6
|
${new Date().toISOString()}
|
|
7
|
-
`,"utf-8");}catch{}function o(){if(!i.existsSync(r))return {};try{let
|
|
8
|
-
`).filter(Boolean).map(o=>JSON.parse(o)):[]}return {append(r){let o={id:randomUUID(),payload:r};return i.mkdirSync(
|
|
9
|
-
`,"utf-8"),o},readAll(){return t()},readAfter(r){let o=t();if(!r)return {entries:o,newCursor:o.length>0?o[o.length-1].id:null};let n=o.findIndex(
|
|
7
|
+
`,"utf-8");}catch{}function o(){if(!i.existsSync(r))return {};try{let a=i.readFileSync(r,"utf-8"),g=JSON.parse(a);return g&&typeof g=="object"&&!Array.isArray(g)?g:{}}catch{return {}}}function n(a){let g=`${r}.${process.pid}.${randomUUID()}.tmp`;try{i.writeFileSync(g,JSON.stringify(a,null,2),"utf-8"),B(g,r);}catch{}}function s(){if(!i.existsSync(t))return;let a=o(),g=typeof a["retention.maxAgeMs"]=="number"?a["retention.maxAgeMs"]:0,S=typeof a["retention.sweepIntervalMs"]=="number"?a["retention.sweepIntervalMs"]:0;if(g<=0||S<=0)return;let c=typeof a["retention.lastSweepAt"]=="number"?a["retention.lastSweepAt"]:0,d=Date.now();if(d-c<S)return;a["retention.lastSweepAt"]=d,n(a);let h=d,l=u=>{let p;try{p=i.readdirSync(u,{withFileTypes:!0});}catch{return}for(let m of p){if(Date.now()-h>sr)return;let R=x.join(u,m.name);if(m.isDirectory()){l(R);continue}if(m.isFile())try{let w=i.statSync(R);if(d-w.mtimeMs>g)try{i.unlinkSync(R);}catch{}}catch{}}};l(x.join(e,fe)),l(x.join(e,pe));}return {stream(a){let g=ot(a),S=x.join(e,fe,`${g}.jsonl`),c=me(S);return {append(d){let h=c.append(d);try{s();}catch{}return h},readAll:()=>c.readAll(),readAfter:d=>c.readAfter(d),clear:()=>{c.clear&&c.clear();}}},blob(a){let g=ot(a),S=x.join(e,pe,g);i.mkdirSync(S,{recursive:true});let c=U(S);return {read:d=>c.read(d),write:(d,h)=>{c.write(d,h);try{s();}catch{}},exists:d=>c.exists(d),remove:d=>c.remove(d),readBytes:c.readBytes?d=>c.readBytes(d):void 0,writeBytes:c.writeBytes?(d,h)=>{c.writeBytes(d,h);try{s();}catch{}}:void 0,listKeys:d=>c.listKeys(d),stat:c.stat?d=>c.stat(d):void 0,renameKey:(d,h)=>c.renameKey(d,h)}},listStreams(a){let g=x.join(e,fe);try{return i.readdirSync(g,{withFileTypes:!0}).filter(S=>S.isFile()&&S.name.endsWith(".jsonl")).map(S=>S.name.slice(0,-6)).filter(S=>!a||S.startsWith(a)).sort()}catch{return []}},listBlobs(a){let g=x.join(e,pe);try{return i.readdirSync(g,{withFileTypes:!0}).filter(S=>S.isDirectory()).map(S=>S.name).filter(S=>!a||S.startsWith(a)).sort()}catch{return []}},config:{get(a){return o()[a]??null},set(a,g){let S=o();g==null?delete S[a]:S[a]=g,n(S);}}}}function se(e){function t(o){return x.join(e,...o.split("/"))+".json"}function r(o,n,s,a){if(i.existsSync(o))for(let g of i.readdirSync(o,{withFileTypes:true})){let S=n?`${n}/${g.name}`:g.name;if(g.isDirectory()){r(x.join(o,g.name),S,s,a);continue}if(!g.isFile()||!g.name.endsWith(".json"))continue;let c=S.replace(/\.json$/,"");(!s||c.startsWith(s))&&a.push(c);}}return {read(o){let n=t(o);if(!i.existsSync(n))return null;try{return JSON.parse(i.readFileSync(n,"utf-8"))}catch{return null}},write(o,n){let s=t(o),a=`${s}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(x.dirname(s),{recursive:true}),i.writeFileSync(a,JSON.stringify(n,null,2),"utf-8"),B(a,s);},delete(o){let n=t(o);try{i.existsSync(n)&&i.unlinkSync(n);}catch{}},listKeys(o){let n=[];return r(e,"",o,n),n.sort()}}}function me(e){function t(){if(!i.existsSync(e))return [];let r=i.readFileSync(e,"utf-8").trim();return r?r.split(`
|
|
8
|
+
`).filter(Boolean).map(o=>JSON.parse(o)):[]}return {append(r){let o={id:randomUUID(),payload:r};return i.mkdirSync(x.dirname(e),{recursive:true}),i.appendFileSync(e,JSON.stringify(o)+`
|
|
9
|
+
`,"utf-8"),o},readAll(){return t()},readAfter(r){let o=t();if(!r)return {entries:o,newCursor:o.length>0?o[o.length-1].id:null};let n=o.findIndex(a=>a.id===r),s=n===-1?o:o.slice(n+1);return {entries:s,newCursor:s.length>0?s[s.length-1].id:r}},clear(){i.existsSync(e)&&i.truncateSync(e,0);}}}function Ce(e){if(e==null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return `[${e.map(Ce).join(",")}]`;let t=e;return `{${Object.keys(t).sort().map(o=>`${JSON.stringify(o)}:${Ce(t[o])}`).join(",")}}`}function st(e){return createHash("sha256").update(Ce(e)).digest("hex")}function Be(e){let t=x.join(e,"board-journal.jsonl");return {readAllEntries(){if(!i.existsSync(t))return [];let r=i.readFileSync(t,"utf-8").trim();return r?r.split(`
|
|
10
10
|
`).filter(Boolean).map(o=>JSON.parse(o)):[]},appendEntry(r){i.appendFileSync(t,JSON.stringify(r)+`
|
|
11
|
-
`,"utf-8");},generateId(){return randomUUID()}}}function Ge(e){return {tryAcquire(){try{if(!i.existsSync(e)){i.mkdirSync(S.dirname(e),{recursive:!0});try{i.writeFileSync(e,"{}",{flag:"wx"});}catch{}}return lockSync(e,{retries:0})}catch{return null}}}}function qr(){return {async invoke(e,t){if(e.howToRun!=="local-node")return {dispatched:false,error:`createNodeSpawnInvocationAdapter: unsupported howToRun "${e.howToRun}"`};let r="";try{let s=e.whatToRun;r=P(s);}catch{r="";}if(!r)return {dispatched:false,error:"createNodeSpawnInvocationAdapter: could not resolve executable path from whatToRun"};let o={...t},n=Buffer.from(JSON.stringify(o)).toString("base64");try{return spawn(process.execPath,[r,"--boardId",String(t.boardId??""),"--cardId",String(t.cardId??""),"--extraEncJson",n],{stdio:"ignore",windowsHide:!0}).unref(),{dispatched:!0}}catch(s){return {dispatched:false,error:s instanceof Error?s.message:String(s)}}},async describe(e){if(e.howToRun!=="local-node")return null;let t="";try{let r=e.whatToRun;t=P(r);}catch{t="";}if(!t)return null;try{let r=spawnSync(process.execPath,[t,"describe"],{timeout:5e3,encoding:"utf-8",windowsHide:!0});return r.status!==0?null:JSON.parse(String(r.stdout).trim())}catch{return null}}}}var Gt=".board.lock";function Ze(e,t){if(!e||!t)return false;let r=String(e).replace(/[\\/]+$/,"").split(/[\\/]+/).filter(Boolean);return r.length>0&&r[r.length-1]===t}function Yt(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function Zt(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function Xe(e){if(e)return e;let t=je(import.meta.url),r=[t,T(t,"..","cli","node"),T(t,"..","..","cli","node")];for(let o of r)try{return qe(o),o}catch{}throw new Error(`createFsBoardPlatformAdapter: could not resolve a public CLI directory from module dir ${t}`)}function Xt(e,t,r){let{cliDir:o,opts:n}=Yt(t,r),s=e.value,c=null,l,y$1=null,a;function d(){return a||(a=Xe(o)),a}function m(f){let x=n?.queueStoreRef;if(!x)throw new Error(`createFsBoardPlatformAdapter: ${f} requires opts.queueStoreRef`);return x}function u(f){let x=n?.boardRuntimeStoreRef;if(!x)throw new Error(`createFsBoardPlatformAdapter: ${f} requires opts.boardRuntimeStoreRef`);return x}let p=n?.callbackTransport??g({notifyChannel:n?.notifyChannel,boardRuntimeStoreRef:n?.boardRuntimeStoreRef,queueStoreRef:n?.queueStoreRef}),h;function g$1(f){return h.queueStorageForRef(m(`internal lane "${f}"`),f)}function R(f){return a$4(g$1(f))}function w(){if(n?.suppressSpawn||c)return;let f=pe({id:"task-executor",workerStore:R("task-executor"),handleRequest:async(x,C)=>{let b=await U(C.ref,C.args,{cliDir:d(),cwd:process.cwd(),label:"fsBoardAdapter.boardWorker"});if(b.result!=="success"){let v=typeof b.data?.error=="string"?b.data.error:b.error;throw new Error(v||b.result)}}});c=X(f).catch(x=>{n?.onWarn?.(`[board-worker] in-process queue drain failed: ${x instanceof Error?x.message:String(x)}`);}).finally(()=>{c=null,g$1("task-executor").peekActive().length>0&&w();});}return h={kvStorage:f=>V(T(s,`.${f}`)),blobStorage:f=>f?J(T(s,f)):J(s),blobStorageForRef:f=>J(b(f).value),chatStorageForRef:f=>er(b(f).value),queueStorageForRef:(f,x)=>ve(T(b(f).value,x)),scratchStorage:()=>z(T(s,".tmp")),scratchStorageForRef:f=>z(b(f).value),archiveFactory:()=>ne(T(s,"archive")),archiveFactoryForRef:f=>ne(b(f).value),journalAdapter:()=>ke(s),journalAdapterForRef:f=>ke(b(f).value),lock:Ge(T(s,Gt)),callbackTransport:p,async dispatchExecution(f,x){let C=!!x.output?.ref;if(f.howToRun==="queue-storage")try{let v=R("task-executor"),I=typeof f.extra?.boardId=="string"?f.extra.boardId:void 0;if(C)return v.enqueueRequest({boardId:I,ref:f,args:x}),{dispatched:!0};let k=x.source_def?.bindTo??Z().slice(0,8),A=z(T(s,".tmp")),q=A.create(JSON.stringify(x,null,2),`exec-in-${k}`,".json"),W=A.getUniqueKey(`exec-out-${k}`,".json"),se=A.getUniqueKey(`exec-err-${k}`,".txt"),ie=a$1(A.keyRef(q)),ae=a$1(A.keyRef(W)),ce=a$1(A.keyRef(se));return v.enqueueRequest({boardId:I,ref:f,args:{subcommand:"run-source-fetch",inRef:ie,outRef:ae,errRef:ce}}),{dispatched:!0}}catch(v){return {dispatched:false,error:v instanceof Error?v.message:String(v)}}if(C&&(f.howToRun==="http:post"||f.howToRun==="in-process-loop"))try{if(f.howToRun==="http:post"){let k=P(f.whatToRun),A=await fetch(k,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...x,...f.extra?{extra:f.extra}:{}})});if(!A.ok){let q=await A.text().catch(()=>"");return {dispatched:!1,error:`HTTP ${A.status}: ${q}`}}return {dispatched:!0}}let v=await U(f,x,{cwd:process.cwd(),label:"dispatchExecution.directHostedWorker"});return v.result==="success"?{dispatched:!0}:{dispatched:!1,error:(typeof v.data?.error=="string"?v.data.error:v.error)||v.result}}catch(v){return {dispatched:false,error:v instanceof Error?v.message:String(v)}}let b=f.howToRun==="local-node"||f.howToRun==="local-process"||f.howToRun==="local-python"||f.howToRun==="built-in";if(n?.suppressSpawn&&b)return {dispatched:false};try{let v=x.source_def?.bindTo??Z().slice(0,8),I=z(T(s,".tmp")),k=I.create(JSON.stringify(x,null,2),`exec-in-${v}`,".json"),A=I.getUniqueKey(`exec-out-${v}`,".json"),q=I.getUniqueKey(`exec-err-${v}`,".txt"),W=a$1(I.keyRef(k)),se=a$1(I.keyRef(A)),ie=a$1(I.keyRef(q)),ae=R("task-executor"),ce=typeof f.extra?.boardId=="string"?f.extra.boardId:void 0;return ae.enqueueRequest({boardId:ce,ref:f,args:{subcommand:"run-source-fetch",inRef:W,outRef:se,errRef:ie}}),w(),{dispatched:!0}}catch(v){let I=v instanceof Error?v.message:String(v);try{let k=ne(T(s,"archive")),A=new Date().toISOString().replace(/[:.]/g,"-"),q=x.source_def?.bindTo??"unknown";k.blob("exec-failures").write(`${A}-${q}.json`,JSON.stringify({error:I,args:x,ref:f,at:new Date().toISOString()},null,2));}catch{}return {dispatched:false,error:I}}},supportsDirectSourceOutput(f){return f.howToRun==="queue-storage"||f.howToRun==="http:post"||f.howToRun==="in-process-loop"},resolveBlob(f){let x=Fe(f.value)?we().read(f.value):J(s).read(f.value);if(x===null)throw new Error(`resolveBlob: blob not found: ::${f.kind}::${f.value}`);return x},hashFn:Ve,genId:()=>Ce(`${Date.now()}-${Math.random()}`).slice(0,32),kvStorageForRef:f=>V(b(f).value),requestProcessAccumulated(){if(n?.suppressSpawn||y$1)return;let f=this,x=l??=y(e,f,{boardRuntimeStoreRef:u("requestProcessAccumulated")}),C=ge({id:"process-accumulated",queueStorage:g$1("process-accumulated"),handleMessage:async()=>{let b=await x.processAccumulatedEvents({});if(b.status!=="success")throw new Error(b.error||`processAccumulatedEvents returned ${b.status}`)}});y$1=X(C).catch(b=>{n?.onWarn?.(`[process-accumulated] in-process queue drain failed: ${b instanceof Error?b.message:String(b)}`);}).finally(()=>{y$1=null,g$1("process-accumulated").peekActive().length>0&&f.requestProcessAccumulated?.();});},publishBoardChangeNotifications(f){if(!n?.notifyChannel||f.length===0)return;let x=f.map(C=>({id:Z(),ts:new Date().toISOString(),boardRef:a$1(e),notification:C}));Oe(n.notifyChannel,x,n.onWarn);},onWarn:n?.onWarn},h}function Or(e,t,r){let{cliDir:o,opts:n}=Zt(t,r),s,c=()=>(s||(s=Xe(o)),s);return {...Xt(e,o,n),async invokeExecutor(y,a,d){if(y.howToRun==="queue-storage")throw new Error("queue-storage does not support inline executor request/response");if(y.howToRun==="http:post"||y.howToRun==="in-process-loop"){let g=await h(y,{subcommand:a,...d?.input!==void 0?{input:d.input}:{}});return typeof g=="string"?g:g&&typeof g=="object"&&!Array.isArray(g)&&typeof g.stdout=="string"?String(g.stdout):JSON.stringify(g??{})}if(y.howToRun==="http:get"){let g=await U(y,{subcommand:a,...d?.input!==void 0?{input:d.input}:{},...y.extra?{extra:y.extra}:{}},{cwd:process.cwd(),timeoutMs:d?.timeout??3e4,label:`invokeExecutor:${a}`});if(g.result!=="success"){let R=typeof g.data?.error=="string"?g.data.error:g.error;throw new Error(R||`executor request failed: ${g.result}`)}return typeof g.data?.stdout=="string"?g.data.stdout:JSON.stringify(g.data??{})}let{command:m,baseArgs:u}=ee(y,c()),p=y.extra?["--extra",Buffer.from(JSON.stringify(y.extra)).toString("base64")]:[],h$1=[...u,a,...p];return await new Promise((g,R)=>{let w=spawn(m,h$1,{cwd:process.cwd(),stdio:"pipe",windowsHide:true,shell:process.platform==="win32"&&/\.(cmd|bat)$/i.test(m)}),f=[],x=[],C=false,b=null,v=k=>{C||(C=true,b&&clearTimeout(b),R(k));},I=k=>{C||(C=true,b&&clearTimeout(b),g(k));};w.stdout.on("data",k=>{f.push(Buffer.from(k));}),w.stderr.on("data",k=>{x.push(Buffer.from(k));}),w.on("error",k=>{let A=k;A.stdout=Buffer.concat(f).toString("utf-8"),A.stderr=Buffer.concat(x).toString("utf-8"),v(A);}),w.on("close",k=>{let A=Buffer.concat(f).toString("utf-8"),q=Buffer.concat(x).toString("utf-8");if(k===0){I(A);return}let W=new Error(q.trim()||`executor exited with status ${k}`);W.stdout=A,W.stderr=q,v(W);}),d?.timeout&&d.timeout>0&&(b=setTimeout(()=>{w.kill();let k=new Error(`executor timed out after ${d.timeout}ms`);k.stdout=Buffer.concat(f).toString("utf-8"),k.stderr=Buffer.concat(x).toString("utf-8"),v(k);},d.timeout)),d?.input!==void 0?w.stdin.end(d.input):w.stdin.end();})},validateSchema(y){let a=d(y);return {ok:a.errors.length===0,errors:a.errors}},absoluteBlob:we()}}function Qr(e,t={}){let r=t.chatsSubdir??"chats",o=t.kvSubdir??".kv",n=o?[o,"chat"]:["chat"],s=r&&!Ze(e,r)?T(e,r):e,c=V(T(e,...n));return a$2(l=>{let a=`${String(l).replace(/[^a-zA-Z0-9_-]/g,"_")}.jsonl`,d=T(s,a);return oe(d)},c)}function er(e){return a$2(t=>{let o=`${String(t).replace(/[^a-zA-Z0-9_-]/g,"_")}.jsonl`;return oe(T(e,"journal",o))},V(T(e,"kv")))}function _r(e,t={}){let r=t.filesSubdir??"files",o=r&&!Ze(e,r)?T(e,r):e;return a$3(J(o))}function Nr(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString());return typeof t.br=="string"?t.br:null}catch{return null}}export{ee as buildLocalBaseSpec,pe as createBoardWorkerQueueLane,qt as createExecutionRefInvoker,J as createFsBlobStorage,Qr as createFsBoardChatStorage,_r as createFsBoardFileArtifactsStore,Or as createFsBoardNonCorePlatformAdapter,Xt as createFsBoardPlatformAdapter,er as createFsChatStorageForRefRoot,ve as createFsQueueStorage,qr as createNodeSpawnInvocationAdapter,ge as createQueueStorageLane,Nr as decodeBoardRefFromToken,X as drainQueueLaneToIdle,ye as evaluateArgsMassaging,U as invokeExecutionRef,he as invokeExecutionRefSync,Ot as invokeRefSync,jt as registerInProcessExecutionHandler,P as resolveWhatToRunValue,We as resolveYamlFlowCliPath,Ne as startQueueLaneRunner,Et as startQueueLaneRunners,Mt as unregisterInProcessExecutionHandler};//# sourceMappingURL=board-live-cards-node.js.map
|
|
11
|
+
`,"utf-8");},generateId(){return randomUUID()}}}function it(e){return {tryAcquire(){try{if(!i.existsSync(e)){i.mkdirSync(x.dirname(e),{recursive:!0});try{i.writeFileSync(e,"{}",{flag:"wx"});}catch{}}return lockSync(e,{retries:0})}catch{return null}}}}function z(e){return {status:"success",data:e}}function Q(e){return {status:"fail",error:e}}function re(e){return {status:"error",error:e instanceof Error?e.message:String(e)}}function ne(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function ir(e,t={}){let r=()=>b$1(e.kvStorage("config")),o=t.unsupportedLabel??"hosted async runtime";async function n(){return t.taskExecutorRef?t.taskExecutorRef:await r().readTaskExecutorRef().catch(()=>{})}async function s(u,p,m){let R=await n();if(!R||!t.invokeExecutor)throw new Error(`${u} is not supported on the ${o} yet`);let f=(await t.invokeExecutor(R,u,{...p!==void 0?{input:typeof p=="string"?p:JSON.stringify(p)}:{},...m!==void 0?{timeout:m}:{}})).trim();return f?ne(JSON.parse(f)):{}}async function a(u){try{if(!u.body||typeof u.body!="object"||Array.isArray(u.body))return Q("validateCardPreflight requires card JSON object in body");let p=u.body,m=p["card-content"]??p,R=typeof m.id=="string"?m.id:"(unknown)",w=a$5(m),f=Array.isArray(m.source_defs)&&m.source_defs.length>0,y=[...w.issues];if(f)if(t.invokeExecutor&&await n())for(let v of m.source_defs){let k=typeof v.bindTo=="string"?v.bindTo:"(unknown)";try{let b=await s("validate-source-def",v,1e4);if(b.ok!==!0&&Array.isArray(b.errors))for(let A of b.errors)typeof A=="string"&&A&&y.push(`source "${k}": ${A}`);}catch(b){y.push(`source "${k}": executor validate-source-def failed \u2014 ${b instanceof Error?b.message:String(b)}`);}}else await n()&&y.push(`executor-backed source_def preflight is not supported on the ${o} yet`);return z({cardId:R,isValid:y.length===0,issues:y})}catch(p){return re(p)}}function g(u){try{if(!u.body||typeof u.body!="object"||Array.isArray(u.body))return Q("evalCardCompute requires a JSON object in body");let p=u.body,m=p["card-content"]??p,R=typeof m.id=="string"?m.id:"(unknown)",w=p["mock-fetched-sources"]??{},f=p["mock-requires"]??{},y=m.compute;if(!y||!Array.isArray(y)||y.length===0)return z({cardId:R,ok:!0,computed_values:{},errors:[]});let v={id:R,card_data:m.card_data??{},requires:f,source_defs:m.source_defs,compute:y},k=a$6.runSync(v,{sourcesData:w});return z({cardId:R,ok:(k.errors??[]).length===0,computed_values:k.node.computed_values??{},errors:k.errors??[]})}catch(p){return re(p)}}async function S(u){return Q(`${u} is not supported on the ${o} yet`)}async function c(){try{return t.invokeExecutor&&await n()?z(await s("describe-capabilities",void 0,1e4)):await S("describeTaskExecutorCapabilities")}catch(u){return re(u)}}async function d(u){try{if(!t.invokeExecutor||!await n())return await S("probeSourcePreflight");if(!u.body||typeof u.body!="object"||Array.isArray(u.body))return Q("probeSourcePreflight requires card JSON object in body");let p=u.body,m=p["card-content"]??p,R=ne(p["mock-projections"]??{}),w=u.params?.sourceIdx,f=Array.isArray(m.source_defs)?m.source_defs:[];if(w===void 0)return Q("probeSourcePreflight requires params.sourceIdx");if(w<0||w>=f.length)return Q(`sourceIdx ${w} out of range (card has ${f.length} source(s))`);let y=f[w],v=typeof y.bindTo=="string"?y.bindTo:"source",k=await s("probe-source-preflight",{...y,_projections:R},y.timeout??6e4);return k.ok!==!0?Q(typeof k.error=="string"?k.error:"Preflight probe failed"):z({bindTo:v,reachable:k.reachable,latencyMs:k.latencyMs,...typeof k.note=="string"?{note:k.note}:{}})}catch(p){return re(p)}}async function h(u){try{if(!t.invokeExecutor||!await n())return await S("runSourcePreflight");if(!u.body||typeof u.body!="object"||Array.isArray(u.body))return Q("runSourcePreflight requires card JSON object in body");let p=u.body,m=p["card-content"]??p,R=ne(p["mock-projections"]??{}),w=u.params?.sourceIdx,f=Array.isArray(m.source_defs)?m.source_defs:[];if(w===void 0)return Q("runSourcePreflight requires params.sourceIdx");if(w<0||w>=f.length)return Q(`sourceIdx ${w} out of range (card has ${f.length} source(s))`);let y=f[w],v=typeof y.bindTo=="string"?y.bindTo:"source",k=await s("run-source-preflight",{...y,_projections:R},y.timeout??6e4);return k.ok!==!0?z({bindTo:v,ok:!1,result:null,issues:[typeof k.error=="string"?k.error:"Preflight run failed"]}):z({bindTo:v,ok:!0,result:Object.prototype.hasOwnProperty.call(k,"resultValue")?k.resultValue:null,issues:[]})}catch(p){return re(p)}}async function l(u){try{if(!u.body||typeof u.body!="object"||Array.isArray(u.body))return Q("simulateCardCycle requires a JSON object in body");let p=u.body,m=p["card-content"]??p,R=typeof m.id=="string"?m.id:"(unknown)",w=ne(p["mock-fetched-sources"]??{}),f=ne(p["mock-requires"]??{}),y=await a({body:{"card-content":m}}),v=y.status==="success"?{isValid:y.data.isValid,issues:y.data.issues}:{isValid:!1,issues:[y.status==="fail"?y.error:"internal error"]},k=Array.isArray(m.source_defs)?m.source_defs:[],b=ne(m.card_data??{}),A=[],F=[];if(k.length>0){A=a$6.enrichSourcesSync(k,{card_data:b,requires:f});for(let I of A){let P=I.projections,H=I._projections;if(P&&H){for(let $ of Object.keys(P))if(H[$]===void 0){let ut=typeof I.bindTo=="string"?I.bindTo:"(unknown)";F.push({bindTo:ut,key:$,error:`Projection "${$}" resolved to undefined`});}}}}let E=[],M={...w};for(let I=0;I<A.length;I+=1){let P=A[I],H=typeof P.bindTo=="string"?P.bindTo:`source_${I}`;if(!t.invokeExecutor||!await n()){E.push({bindTo:H,skipped:!0,error:"No task executor configured"});continue}try{let $=await s("run-source-preflight",P,P.timeout??6e4);$.ok===!0&&!Object.prototype.hasOwnProperty.call(w,H)&&Object.prototype.hasOwnProperty.call($,"resultValue")&&(M[H]=$.resultValue),E.push({bindTo:H,reachable:$.reachable,latencyMs:$.latencyMs,...$.ok===!0?{}:{error:typeof $.error=="string"?$.error:"Preflight run failed"}});}catch{E.push({bindTo:H,skipped:!0,error:"Executor does not support run-source-preflight"});}}let W=m.compute,te={},G=[];if(W&&Array.isArray(W)&&W.length>0){let I={id:R,card_data:b,requires:f,source_defs:m.source_defs,compute:W},P=a$6.runSync(I,{sourcesData:M});te=P.node.computed_values??{},G=P.errors??[];}return z({cardId:R,ok:v.isValid&&F.length===0&&G.length===0&&E.every(I=>!I.error),validation:v,source_probes:E,projection_errors:F,fetched_sources:M,computed_values:te,compute_errors:G})}catch(p){return re(p)}}return {describeTaskExecutorCapabilities:c,validateCardPreflight:a,evalCardCompute:g,probeSourcePreflight:d,runSourcePreflight:h,simulateCardCycle:l}}function on(){return {async invoke(e,t){if(e.howToRun!=="local-node")return {dispatched:false,error:`createNodeSpawnInvocationAdapter: unsupported howToRun "${e.howToRun}"`};let r="";try{let s=e.whatToRun;r=q(s);}catch{r="";}if(!r)return {dispatched:false,error:"createNodeSpawnInvocationAdapter: could not resolve executable path from whatToRun"};let o={...t},n=Buffer.from(JSON.stringify(o)).toString("base64");try{return spawn(process.execPath,[r,"--boardId",String(t.boardId??""),"--cardId",String(t.cardId??""),"--extraEncJson",n],{stdio:"ignore",windowsHide:!0}).unref(),{dispatched:!0}}catch(s){return {dispatched:false,error:s instanceof Error?s.message:String(s)}}},async describe(e){if(e.howToRun!=="local-node")return null;let t="";try{let r=e.whatToRun;t=q(r);}catch{t="";}if(!t)return null;try{let r=spawnSync(process.execPath,[t,"describe"],{timeout:5e3,encoding:"utf-8",windowsHide:!0});return r.status!==0?null:JSON.parse(String(r.stdout).trim())}catch{return null}}}}var ur=".board.lock";function at(e,t){if(!e||!t)return false;let r=String(e).replace(/[\\/]+$/,"").split(/[\\/]+/).filter(Boolean);return r.length>0&&r[r.length-1]===t}function dr(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function lr(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function ct(e){if(e)return e;let t=Je(import.meta.url),r=[t,C(t,"..","cli","node"),C(t,"..","..","cli","node")];for(let o of r)try{return Ve(o),o}catch{}throw new Error(`createFsBoardPlatformAdapter: could not resolve a public CLI directory from module dir ${t}`)}function fr(e,t,r){let{cliDir:o,opts:n}=dr(t,r),s=e.value,a=null,g$1,S=null,c;function d(){return c||(c=ct(o)),c}function h(f){let y=n?.queueStoreRef;if(!y)throw new Error(`createFsBoardPlatformAdapter: ${f} requires opts.queueStoreRef`);return y}function l(f){let y=n?.boardRuntimeStoreRef;if(!y)throw new Error(`createFsBoardPlatformAdapter: ${f} requires opts.boardRuntimeStoreRef`);return y}let u=n?.callbackTransport??g({notifyChannel:n?.notifyChannel,boardRuntimeStoreRef:n?.boardRuntimeStoreRef,queueStoreRef:n?.queueStoreRef}),p;function m(f){return p.queueStorageForRef(h(`internal lane "${f}"`),f)}function R(f){return a$4(m(f))}function w(){if(n?.suppressSpawn||a)return;let f=xe({id:"task-executor",workerStore:R("task-executor"),handleRequest:async(y,v)=>{let k=await Z(v.ref,v.args,{cliDir:d(),cwd:process.cwd(),label:"fsBoardAdapter.boardWorker"});if(k.result!=="success"){let b=typeof k.data?.error=="string"?k.data.error:k.error;throw new Error(b||k.result)}}});a=de(f).catch(y=>{n?.onWarn?.(`[board-worker] in-process queue drain failed: ${y instanceof Error?y.message:String(y)}`);}).finally(()=>{a=null,m("task-executor").peekActive().length>0&&w();});}return p={kvStorage:f=>se(C(s,`.${f}`)),blobStorage:f=>f?U(C(s,f)):U(s),blobStorageForRef:f=>U(b(f).value),chatStorageForRef:f=>pr(b(f).value),queueStorageForRef:(f,y)=>je(C(b(f).value,y)),scratchStorage:()=>oe(C(s,".tmp")),scratchStorageForRef:f=>oe(b(f).value),archiveFactory:()=>ge(C(s,"archive")),archiveFactoryForRef:f=>ge(b(f).value),journalAdapter:()=>Be(s),journalAdapterForRef:f=>Be(b(f).value),lock:it(C(s,ur)),callbackTransport:u,async dispatchExecution(f,y){let v=!!y.output?.ref;if(f.howToRun==="queue-storage")try{let b=R("task-executor"),A=typeof f.extra?.boardId=="string"?f.extra.boardId:void 0;if(v)return b.enqueueRequest({boardId:A,ref:f,args:y}),{dispatched:!0};let F=y.source_def?.bindTo??ue().slice(0,8),E=oe(C(s,".tmp")),M=E.create(JSON.stringify(y,null,2),`exec-in-${F}`,".json"),W=E.getUniqueKey(`exec-out-${F}`,".json"),te=E.getUniqueKey(`exec-err-${F}`,".txt"),G=a$1(E.keyRef(M)),I=a$1(E.keyRef(W)),P=a$1(E.keyRef(te));return b.enqueueRequest({boardId:A,ref:f,args:{subcommand:"run-source-fetch",inRef:G,outRef:I,errRef:P}}),{dispatched:!0}}catch(b){return {dispatched:false,error:b instanceof Error?b.message:String(b)}}if(v&&(f.howToRun==="http:post"||f.howToRun==="in-process-loop"))try{if(f.howToRun==="http:post"){let F=q(f.whatToRun),E=await fetch(F,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...y,...f.extra?{extra:f.extra}:{}})});if(!E.ok){let M=await E.text().catch(()=>"");return {dispatched:!1,error:`HTTP ${E.status}: ${M}`}}return {dispatched:!0}}let b=await Z(f,y,{cwd:process.cwd(),label:"dispatchExecution.directHostedWorker"});return b.result==="success"?{dispatched:!0}:{dispatched:!1,error:(typeof b.data?.error=="string"?b.data.error:b.error)||b.result}}catch(b){return {dispatched:false,error:b instanceof Error?b.message:String(b)}}let k=f.howToRun==="local-node"||f.howToRun==="local-process"||f.howToRun==="local-python"||f.howToRun==="built-in";if(n?.suppressSpawn&&k)return {dispatched:false};try{let b=y.source_def?.bindTo??ue().slice(0,8),A=oe(C(s,".tmp")),F=A.create(JSON.stringify(y,null,2),`exec-in-${b}`,".json"),E=A.getUniqueKey(`exec-out-${b}`,".json"),M=A.getUniqueKey(`exec-err-${b}`,".txt"),W=a$1(A.keyRef(F)),te=a$1(A.keyRef(E)),G=a$1(A.keyRef(M)),I=R("task-executor"),P=typeof f.extra?.boardId=="string"?f.extra.boardId:void 0;return I.enqueueRequest({boardId:P,ref:f,args:{subcommand:"run-source-fetch",inRef:W,outRef:te,errRef:G}}),w(),{dispatched:!0}}catch(b){let A=b instanceof Error?b.message:String(b);try{let F=ge(C(s,"archive")),E=new Date().toISOString().replace(/[:.]/g,"-"),M=y.source_def?.bindTo??"unknown";F.blob("exec-failures").write(`${E}-${M}.json`,JSON.stringify({error:A,args:y,ref:f,at:new Date().toISOString()},null,2));}catch{}return {dispatched:false,error:A}}},supportsDirectSourceOutput(f){return f.howToRun==="queue-storage"||f.howToRun==="http:post"||f.howToRun==="in-process-loop"},resolveBlob(f){let y=Ne(f.value)?Ie().read(f.value):U(s).read(f.value);if(y===null)throw new Error(`resolveBlob: blob not found: ::${f.kind}::${f.value}`);return y},hashFn:st,genId:()=>Qe(`${Date.now()}-${Math.random()}`).slice(0,32),kvStorageForRef:f=>se(b(f).value),requestProcessAccumulated(){if(n?.suppressSpawn||S)return;let f=this,y$1=g$1??=y(e,f,{boardRuntimeStoreRef:l("requestProcessAccumulated")}),v=we({id:"process-accumulated",queueStorage:m("process-accumulated"),handleMessage:async()=>{let k=await y$1.processAccumulatedEvents({});if(k.status!=="success")throw new Error(k.error||`processAccumulatedEvents returned ${k.status}`)}});S=de(v).catch(k=>{n?.onWarn?.(`[process-accumulated] in-process queue drain failed: ${k instanceof Error?k.message:String(k)}`);}).finally(()=>{S=null,m("process-accumulated").peekActive().length>0&&f.requestProcessAccumulated?.();});},publishBoardChangeNotifications(f){if(!n?.notifyChannel||f.length===0)return;let y=f.map(v=>({id:ue(),ts:new Date().toISOString(),boardRef:a$1(e),notification:v}));Ue(n.notifyChannel,y,n.onWarn);},onWarn:n?.onWarn},p}function sn(e,t,r){let{cliDir:o,opts:n}=lr(t,r),s,a=()=>(s||(s=ct(o)),s),g=fr(e,o,n),S=Ae({resolveCliDir:a,...n?.resolveRef?{resolveRef:n.resolveRef}:{}});return {...g,invokeExecutor:S.invokeExecutor,validateSchema(c){let d$1=d(c);return {ok:d$1.errors.length===0,errors:d$1.errors}},absoluteBlob:Ie()}}function an(e,t={}){let r=t.chatsSubdir??"chats",o=t.kvSubdir??".kv",n=o?[o,"chat"]:["chat"],s=r&&!at(e,r)?C(e,r):e,a=se(C(e,...n));return a$2(g=>{let c=`${String(g).replace(/[^a-zA-Z0-9_-]/g,"_")}.jsonl`,d=C(s,c);return me(d)},a)}function pr(e){return a$2(t=>{let o=`${String(t).replace(/[^a-zA-Z0-9_-]/g,"_")}.jsonl`;return me(C(e,"journal",o))},se(C(e,"kv")))}function cn(e,t={}){let r=t.filesSubdir??"files",o=r&&!at(e,r)?C(e,r):e;return a$3(U(o))}function un(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString());return typeof t.br=="string"?t.br:null}catch{return null}}export{le as buildLocalBaseSpec,xe as createBoardWorkerQueueLane,Vt as createExecutionRefInvoker,U as createFsBlobStorage,an as createFsBoardChatStorage,cn as createFsBoardFileArtifactsStore,sn as createFsBoardNonCorePlatformAdapter,fr as createFsBoardPlatformAdapter,pr as createFsChatStorageForRefRoot,je as createFsQueueStorage,ir as createHostedAsyncBoardNonCorePublic,on as createNodeSpawnInvocationAdapter,Ae as createNonCoreExecutorDispatcher,we as createQueueStorageLane,un as decodeBoardRefFromToken,de as drainQueueLaneToIdle,be as evaluateArgsMassaging,Z as invokeExecutionRef,ve as invokeExecutionRefSync,Ut as invokeRefSync,Jt as registerInProcessExecutionHandler,q as resolveWhatToRunValue,Xe as resolveYamlFlowCliPath,Ye as startQueueLaneRunner,_t as startQueueLaneRunners,Dt as unregisterInProcessExecutionHandler};//# sourceMappingURL=board-live-cards-node.js.map
|
|
12
12
|
//# sourceMappingURL=board-live-cards-node.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkZENTBLLA_cjs=require('./chunk-ZENTBLLA.cjs');require('./chunk-7JVHYHT2.cjs'),require('./chunk-VQCIOKJV.cjs'),require('./chunk-G4XXRHL2.cjs'),require('./chunk-LODXIALE.cjs'),require('./chunk-IXZG74EW.cjs'),require('./chunk-HWYMZK3N.cjs'),require('./chunk-UJ7ZTV4J.cjs'),require('./chunk-YMEIPKLW.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"BOARD_GRAPH_KEY",{enumerable:true,get:function(){return chunkZENTBLLA_cjs.n}});Object.defineProperty(exports,"EMPTY_CONFIG",{enumerable:true,get:function(){return chunkZENTBLLA_cjs.u}});Object.defineProperty(exports,"SNAPSHOT_SCHEMA_VERSION_V1",{enumerable:true,get:function(){return chunkZENTBLLA_cjs.m}});Object.defineProperty(exports,"createBoardLiveCardsNonCorePublic",{enumerable:true,get:function(){return chunkZENTBLLA_cjs.z}});Object.defineProperty(exports,"createBoardLiveCardsPublic",{enumerable:true,get:function(){return chunkZENTBLLA_cjs.y}});//# sourceMappingURL=board-live-cards-public.cjs.map
|
|
2
2
|
//# sourceMappingURL=board-live-cards-public.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{n as BOARD_GRAPH_KEY,u as EMPTY_CONFIG,m as SNAPSHOT_SCHEMA_VERSION_V1,z as createBoardLiveCardsNonCorePublic,y as createBoardLiveCardsPublic}from'./chunk-
|
|
1
|
+
export{n as BOARD_GRAPH_KEY,u as EMPTY_CONFIG,m as SNAPSHOT_SCHEMA_VERSION_V1,z as createBoardLiveCardsNonCorePublic,y as createBoardLiveCardsPublic}from'./chunk-ZWVT24YW.js';import'./chunk-ANKA7HEJ.js';import'./chunk-44L64VQ2.js';import'./chunk-VGT3TRQG.js';import'./chunk-WDPOGXTY.js';import'./chunk-JMDHDY6M.js';import'./chunk-3KC6LBOG.js';import'./chunk-MNEOJWPS.js';import'./chunk-KBELAKIY.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=board-live-cards-public.js.map
|
|
2
2
|
//# sourceMappingURL=board-live-cards-public.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkQG6ERLZQ_cjs=require('./chunk-QG6ERLZQ.cjs');require('./chunk-OJ2CAQ4C.cjs'),require('./chunk-7FGPOGRV.cjs'),require('./chunk-LPXVVMQT.cjs'),require('./chunk-H22NK6KH.cjs'),require('./chunk-NM6O35RY.cjs'),require('./chunk-272IYUKT.cjs');var chunkETW3BXHD_cjs=require('./chunk-ETW3BXHD.cjs');require('./chunk-BQUQTOPB.cjs'),require('./chunk-NBJTYAYN.cjs'),require('./chunk-GPCMBPLK.cjs'),require('./chunk-36QUKFL7.cjs'),require('./chunk-37HDEW26.cjs'),require('./chunk-ZENTBLLA.cjs'),require('./chunk-7JVHYHT2.cjs'),require('./chunk-VQCIOKJV.cjs'),require('./chunk-G4XXRHL2.cjs'),require('./chunk-LODXIALE.cjs'),require('./chunk-7QZ267XP.cjs'),require('./chunk-IXZG74EW.cjs'),require('./chunk-HWYMZK3N.cjs'),require('./chunk-UJ7ZTV4J.cjs'),require('./chunk-YMEIPKLW.cjs'),require('./chunk-UB54HZA4.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"createMultiBoardServerRuntime",{enumerable:true,get:function(){return chunkQG6ERLZQ_cjs.b}});Object.defineProperty(exports,"createSingleBoardServerRuntime",{enumerable:true,get:function(){return chunkQG6ERLZQ_cjs.a}});Object.defineProperty(exports,"createHostedBoardQueueLaneRegistry",{enumerable:true,get:function(){return chunkETW3BXHD_cjs.a}});//# sourceMappingURL=board-live-cards-server-runtime.cjs.map
|
|
2
2
|
//# sourceMappingURL=board-live-cards-server-runtime.cjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as Awaitable, B as BoardContextConfig, c as BoardRuntimeNonCorePublic, d as BoardRuntimePlatformAdapter, e as BoardRuntimePublic, f as BoardWorkerRequest, C as ChatHandlerFlowRunner, D as DescribeEnvelope, H as HostedBoardQueueLaneTuning, I as InvocationAdapter, a as MultiBoardRuntime, M as MultiBoardRuntimeOptions, N as NotificationTransport, Q as QueueLaneRuntimeTuning, R as RuntimeLogger, g as RuntimeRequest, h as RuntimeResponse, b as SingleBoardRuntime, S as SingleBoardRuntimeOptions } from './types-
|
|
1
|
+
export { A as Awaitable, B as BoardContextConfig, c as BoardRuntimeNonCorePublic, d as BoardRuntimePlatformAdapter, e as BoardRuntimePublic, f as BoardWorkerRequest, C as ChatHandlerFlowRunner, D as DescribeEnvelope, H as HostedBoardQueueLaneTuning, I as InvocationAdapter, a as MultiBoardRuntime, M as MultiBoardRuntimeOptions, N as NotificationTransport, Q as QueueLaneRuntimeTuning, R as RuntimeLogger, g as RuntimeRequest, h as RuntimeResponse, b as SingleBoardRuntime, S as SingleBoardRuntimeOptions } from './types-CPnYv7RC.cjs';
|
|
2
2
|
export { HostedBoardQueueLaneRegistryOptions, createHostedBoardQueueLaneRegistry } from './server-jobs-queue-runner/index.cjs';
|
|
3
3
|
export { A as AsyncBoardLiveCardsPublic } from './board-live-cards-public-async-CYjr4mgX.cjs';
|
|
4
4
|
export { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-BZIftm36.cjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as Awaitable, B as BoardContextConfig, c as BoardRuntimeNonCorePublic, d as BoardRuntimePlatformAdapter, e as BoardRuntimePublic, f as BoardWorkerRequest, C as ChatHandlerFlowRunner, D as DescribeEnvelope, H as HostedBoardQueueLaneTuning, I as InvocationAdapter, a as MultiBoardRuntime, M as MultiBoardRuntimeOptions, N as NotificationTransport, Q as QueueLaneRuntimeTuning, R as RuntimeLogger, g as RuntimeRequest, h as RuntimeResponse, b as SingleBoardRuntime, S as SingleBoardRuntimeOptions } from './types-
|
|
1
|
+
export { A as Awaitable, B as BoardContextConfig, c as BoardRuntimeNonCorePublic, d as BoardRuntimePlatformAdapter, e as BoardRuntimePublic, f as BoardWorkerRequest, C as ChatHandlerFlowRunner, D as DescribeEnvelope, H as HostedBoardQueueLaneTuning, I as InvocationAdapter, a as MultiBoardRuntime, M as MultiBoardRuntimeOptions, N as NotificationTransport, Q as QueueLaneRuntimeTuning, R as RuntimeLogger, g as RuntimeRequest, h as RuntimeResponse, b as SingleBoardRuntime, S as SingleBoardRuntimeOptions } from './types-BsfXZyI3.js';
|
|
2
2
|
export { HostedBoardQueueLaneRegistryOptions, createHostedBoardQueueLaneRegistry } from './server-jobs-queue-runner/index.js';
|
|
3
3
|
export { A as AsyncBoardLiveCardsPublic } from './board-live-cards-public-async-DlyC3PgC.js';
|
|
4
4
|
export { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-JP9V-U5E.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{b as createMultiBoardServerRuntime,a as createSingleBoardServerRuntime}from'./chunk-
|
|
1
|
+
export{b as createMultiBoardServerRuntime,a as createSingleBoardServerRuntime}from'./chunk-EPCJYP4N.js';import'./chunk-3MMTBEAO.js';import'./chunk-NTICU4OK.js';import'./chunk-O7NOHKVR.js';import'./chunk-ABAVFLDP.js';import'./chunk-XYN5D3GL.js';import'./chunk-ZJ5M5COT.js';export{a as createHostedBoardQueueLaneRegistry}from'./chunk-6OPXQPSC.js';import'./chunk-FOFGEABN.js';import'./chunk-O5UYCGIN.js';import'./chunk-RKKSVOP2.js';import'./chunk-7QQFDYBM.js';import'./chunk-NNSBBO5R.js';import'./chunk-ZWVT24YW.js';import'./chunk-ANKA7HEJ.js';import'./chunk-44L64VQ2.js';import'./chunk-VGT3TRQG.js';import'./chunk-WDPOGXTY.js';import'./chunk-35N7ONTH.js';import'./chunk-JMDHDY6M.js';import'./chunk-3KC6LBOG.js';import'./chunk-MNEOJWPS.js';import'./chunk-KBELAKIY.js';import'./chunk-Q3OTUDIE.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=board-live-cards-server-runtime.js.map
|
|
2
2
|
//# sourceMappingURL=board-live-cards-server-runtime.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkXQAHHUZO_cjs=require('../chunk-XQAHHUZO.cjs');require('../chunk-G4XXRHL2.cjs'),require('../chunk-LODXIALE.cjs'),require('../chunk-IXZG74EW.cjs'),require('../chunk-HWYMZK3N.cjs'),require('../chunk-UJ7ZTV4J.cjs'),require('../chunk-GNFE24S7.cjs');Object.defineProperty(exports,"LocalStorageService",{enumerable:true,get:function(){return chunkXQAHHUZO_cjs.a}});Object.defineProperty(exports,"buildBrowserArtifactsFromRuntime",{enumerable:true,get:function(){return chunkXQAHHUZO_cjs.e}});Object.defineProperty(exports,"createBoardLiveGraphRuntime",{enumerable:true,get:function(){return chunkXQAHHUZO_cjs.b}});Object.defineProperty(exports,"selectAllLiveCardModels",{enumerable:true,get:function(){return chunkXQAHHUZO_cjs.d}});Object.defineProperty(exports,"selectLiveCardModel",{enumerable:true,get:function(){return chunkXQAHHUZO_cjs.c}});//# sourceMappingURL=index.cjs.map
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{a as LocalStorageService,e as buildBrowserArtifactsFromRuntime,b as createBoardLiveGraphRuntime,d as selectAllLiveCardModels,c as selectLiveCardModel}from'../chunk-
|
|
1
|
+
export{a as LocalStorageService,e as buildBrowserArtifactsFromRuntime,b as createBoardLiveGraphRuntime,d as selectAllLiveCardModels,c as selectLiveCardModel}from'../chunk-4HIEOBJC.js';import'../chunk-VGT3TRQG.js';import'../chunk-WDPOGXTY.js';import'../chunk-JMDHDY6M.js';import'../chunk-3KC6LBOG.js';import'../chunk-MNEOJWPS.js';import'../chunk-FW4363Y4.js';//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';var chunk37HDEW26_cjs=require('./chunk-37HDEW26.cjs'),chunkZENTBLLA_cjs=require('./chunk-ZENTBLLA.cjs'),chunkVQCIOKJV_cjs=require('./chunk-VQCIOKJV.cjs'),chunkG4XXRHL2_cjs=require('./chunk-G4XXRHL2.cjs'),chunkIXZG74EW_cjs=require('./chunk-IXZG74EW.cjs');async function Ye(t,o,n){let s=await t.tryAcquire();if(!s)return false;try{await o();}finally{await s();}return await n?.(),true}function ct(t){return typeof t=="object"&&t!==null&&"then"in t&&typeof t.then=="function"}function ge(t,o){return ct(t)?t.then(o):o(t)}function Xe(t,o){let n={...t};for(let[s,d]of Object.entries(o))d!==null&&typeof d=="object"&&!Array.isArray(d)&&n[s]!==null&&typeof n[s]=="object"&&!Array.isArray(n[s])?n[s]=Xe(n[s],d):n[s]=d;return n}function pe(t,o,n){if(o.length===0)return t;let[s,...d]=o;if(d.length===0)return {...t,[s]:n};let g=t[s]!==null&&typeof t[s]=="object"&&!Array.isArray(t[s])?t[s]:{};return {...t,[s]:pe(g,d,n)}}function Ze(t){return {read:n=>t.read(n),get(n,s){return ge(t.read(n),d=>{if(d===null)return null;let g=d;for(let c of s.split(".").filter(Boolean)){if(g===null||typeof g!="object"||Array.isArray(g))return null;g=g[c]??null;}return g??null})},write:(n,s)=>t.write(n,s),delete:n=>t.delete(n),listKeys:n=>t.listKeys(n),shallowMerge(n,s){return ge(t.read(n),d=>t.write(n,{...d??{},...s}))},deepMerge(n,s){return ge(t.read(n),d=>t.write(n,Xe(d??{},s)))},patch(n,s,d){return ge(t.read(n),g=>{let c=s.split(".").filter(Boolean);return t.write(n,pe(g??{},c,d))})}}}function et(t){return Ze(t)}function tt(t,o){return {async readIndex(){return await t.read("_index")},writeIndex(n){return t.write("_index",n)},async readCard(n){return await t.read(n)},async writeCard(n,s){return await t.write(n,s),o(s)},removeCard(n){return t.delete(n)},async cardExists(n){return await t.read(n)!==null},defaultCardKey(n){return n}}}function rt(t,o){async function n(){return await t.readIndex()??{}}return {async readCard(s){let d=(await n())[s];return !d||!await t.cardExists(d.key)?null:await t.readCard(d.key)},async readCardKey(s){return (await n())[s]?.key??null},async readAllCards(){let s=[];for(let[d,g]of Object.entries(await n())){if(!await t.cardExists(g.key))continue;let c=await t.readCard(g.key);c?s.push(c):o?.(`[card-store] could not read card "${d}" at key "${g.key}"`);}return s},async readChecksumIndex(){let s={};for(let[d,g]of Object.entries(await n()))s[d]=g.checksum;return s},async changedSince(s){let d=await n(),g=[];for(let[c,w]of Object.entries(d))s[c]!==w.checksum&&g.push(c);for(let c of Object.keys(s))d[c]||g.push(c);return g},async validateUpsert(s,d){let g=await n(),c=g[s],w=Object.entries(g).find(([,v])=>v.key===d);return c&&c.key!==d?{ok:false,error:`Card id "${s}" is already mapped to key "${c.key}", cannot remap to "${d}"`}:w&&w[0]!==s?{ok:false,error:`Key "${d}" is already mapped to card id "${w[0]}", cannot remap to "${s}"`}:{ok:true}},async writeCard(s,d,g){let c=await n(),w=g??c[s]?.key??t.defaultCardKey(s),v=await t.writeCard(w,d);c[s]={key:w,checksum:v,updatedAt:new Date().toISOString()},await t.writeIndex(c);},async patchCard(s,d,g){let c=await n(),w=c[s];if(!w||!await t.cardExists(w.key))throw new Error(`card "${s}" not found`);let v=await t.readCard(w.key);if(!v||typeof v!="object"||Array.isArray(v))throw new Error(`card "${s}" is not patchable`);let B=String(d||"").split(".").filter(Boolean),te=pe(v,B,g),O=await t.writeCard(w.key,te);c[s]={key:w.key,checksum:O,updatedAt:new Date().toISOString()},await t.writeIndex(c);},async removeCard(s){let d=await n(),g=d[s];g&&(await t.removeCard(g.key),delete d[s],await t.writeIndex(d));},readIndex(){return n()}}}function Ct(t,o){return chunkZENTBLLA_cjs.a(t,o)}function ht(t,o,n){return {blob:t,kv:o,journal:n}}function h(t){return t!==void 0?{status:"success",data:t}:{status:"success"}}function p(t){return {status:"fail",error:t}}function P(t){return {status:"error",error:t instanceof Error?t.message:String(t)}}function x(){return new Date().toISOString()}function lt(t){let o=new TextEncoder().encode(t),n=Array.from(o,s=>String.fromCharCode(s)).join("");return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function st(t){let o=t.replace(/-/g,"+").replace(/_/g,"/"),n=o+"=".repeat((4-o.length%4)%4),s=atob(n),d=Uint8Array.from(s,g=>g.charCodeAt(0));return new TextDecoder().decode(d)}function ye(t){try{let o=JSON.parse(st(t));return typeof o?.t=="string"?{taskName:o.t}:null}catch{return null}}function nt(t){return lt(JSON.stringify(t))}function ot(t){try{let o=JSON.parse(st(t));return typeof o?.cbk=="string"&&typeof o?.cid=="string"&&typeof o?.b=="string"&&typeof o?.d=="string"?o:null}catch{return null}}function mt(t){return chunkZENTBLLA_cjs.j(t,chunkZENTBLLA_cjs.o,()=>({_sources:{}}))}function ft(t,o){return chunkZENTBLLA_cjs.h(t,o)}function gt(t){return chunkZENTBLLA_cjs.k(t)}function pt(t,o){return chunkZENTBLLA_cjs.i(t,o)}function yt(t,o,n,s,d,g){return async c=>{let w=[],v=await n.cardStore.readCard(c.nodeId);if(!v)return "task-initiate-failure";let B=v.id,te=v.card_data??{},O=v.source_defs??[],re=O.filter(m=>m.optionalForCompletionGating!==true),b=await n.cardRuntimeStore.readRuntime(B),_=false,$=async()=>{_&&(await n.cardRuntimeStore.writeRuntime(B,b),_=false);},T=m=>chunkZENTBLLA_cjs.p(b._sources[m]),D=(m,f)=>{b._sources[m]=chunkZENTBLLA_cjs.p(f),_=true;},se=c.taskState?.executionCount??0;if(b._lastExecutionCount!==se&&(b._sources={},b._lastExecutionCount=se,_=true),c.update){let m=c.update.outputFile;if(m){let f=T(m);if(c.update.failure){let R=c.update.rqt??f.lastRequestedToken??f.queueRequestedToken;R&&D(m,chunkZENTBLLA_cjs.s(f,R));}else {let R=c.update.rqt;if(!f.lastCompletedToken||R>f.lastCompletedToken){let r=typeof c.update.deliveryToken=="string"?c.update.deliveryToken:void 0,e=r?await n.fetchedSourcesStore.commitSourceData(B,m,r):false;D(m,e?chunkZENTBLLA_cjs.r(f,R):chunkZENTBLLA_cjs.s(f,R));}}await $();}}let J={};for(let m of O){if(!m.outputFile)continue;let f=await n.fetchedSourcesStore.readSourceData(B,m.outputFile);f!==null&&(J[m.bindTo]=f);}let H={};for(let[m,f]of Object.entries(c.state??{}))if(f!==null&&typeof f=="object"&&!Array.isArray(f)){let R=f[m];H[m]=R!==void 0?R:f;}else H[m]=f;let L={id:B,card_data:{...te},requires:H,source_defs:O,compute:v.compute};L._sourcesData=J,v.compute&&chunkIXZG74EW_cjs.a.runSync(L,{sourcesData:J}),(d??(()=>{}))(B,L.computed_values??{});let ne=chunkIXZG74EW_cjs.a.enrichSourcesSync(Array.isArray(v.source_defs)?v.source_defs:void 0,{card_data:v.card_data,requires:H}),F={...v,source_defs:Array.isArray(ne)?ne.map(m=>({...m,boardDir:typeof m.boardDir=="string"&&m.boardDir?m.boardDir:t.value})):ne},M=x(),G=c.update?void 0:M,W=re.filter(m=>{let f=m.outputFile;if(typeof f!="string"||!f)return true;let R=T(f);G&&(R={...R,queueRequestedToken:G},D(f,R));let r=R.queueRequestedToken??R.lastRequestedToken??M;return chunkZENTBLLA_cjs.q(R,r)==="dispatch"});if(await $(),W.length>0){let m=false,f=M;for(let R of W){let r=R.outputFile;if(typeof r!="string"||!r)continue;let e=T(r),u=e.queueRequestedToken??M;D(r,{...e,lastRequestedToken:u}),f=u,m=true;}return m&&await $(),m&&(w.push({taskKind:"source-fetch",payload:{boardRef:chunkVQCIOKJV_cjs.a(t),enrichedCard:F,callbackToken:c.callbackToken,rqt:f}}),await n.executionRequestStore.appendEntries(o,w)),"task-initiated"}if(re.some(m=>{let f=m.outputFile;if(typeof f!="string"||!f)return false;let R=T(f),r=R.queueRequestedToken??R.lastRequestedToken??M;return chunkZENTBLLA_cjs.q(R,r)==="in-flight"}))return "task-initiated";let Re=v.provides??[],oe={};for(let{bindTo:m,ref:f}of Re)oe[m]=chunkIXZG74EW_cjs.a.resolve(L,f);return (g??(()=>{}))(oe),O.filter(m=>{if(m.optionalForCompletionGating!==true)return false;let f=T(m.outputFile);return !f.lastRequestedToken||!f.lastCompletedToken?true:f.lastCompletedToken<=f.lastRequestedToken}).length>0&&w.push({taskKind:"source-fetch",payload:{boardRef:chunkVQCIOKJV_cjs.a(t),enrichedCard:F,callbackToken:c.callbackToken,rqt:M}}),s(c.nodeId,oe),w.length>0&&await n.executionRequestStore.appendEntries(o,w),"task-initiated"}}function _t(t,o,n={}){chunkZENTBLLA_cjs.d(o.callbackTransport,"createAsyncBoardLiveCardsPublic");let s=o.callbackTransport,d=o.warn??(()=>{}),g=chunkVQCIOKJV_cjs.a(t),c=null,w=n.boardRuntimeStoreRef,v=n.scratchStoreRef,B=n.taskExecutorRef,te=n.chatHandlerFlow;function O(){if(!w)throw new Error(`Board at ${t.value} has no board runtime store configured. Pass boardRuntimeStoreRef at construction or init.`);return w}function re(r){if(r.length!==0)try{return Promise.resolve(o.publishBoardChangeNotifications?.(r)).catch(e=>{d(`[async-board-live-cards-public] publishBoardChangeNotifications failed: ${e instanceof Error?e.message:String(e)}`);})}catch(e){d(`[async-board-live-cards-public] publishBoardChangeNotifications failed: ${e instanceof Error?e.message:String(e)}`);return}}let b=()=>chunk37HDEW26_cjs.b(o.kvStorageForRef(O())),_=t.value,$=()=>chunkZENTBLLA_cjs.b(chunkZENTBLLA_cjs.a(()=>o.kvStorageForRef(O()),o.hashFn),"v1"),T=async()=>{let r=await b().readOutputsStoreRef();if(!r)throw new Error(`Board at ${t.value} has no outputs store configured.`);return gt(o.kvStorageForRef(r))},D=async()=>{let r=await b().readCardStoreRef();if(!r)throw new Error(`Board at ${t.value} has no card store configured.`);let e=o.kvStorageForRef(r);return rt(tt(et(e),o.hashFn),d)};async function se(){return !!(await $().readSnapshot(_)).values[chunkZENTBLLA_cjs.n]}async function J(){let r=await $().readSnapshot(_);if(!r.values[chunkZENTBLLA_cjs.n])throw new Error(`Board not initialized at ${t.value}`);return chunkZENTBLLA_cjs.w(r.values)}async function H(r,e){let u=await $().commitSnapshot(_,{schemaVersion:"v1",expectedVersion:e,deleteKeys:[],shallowMerge:chunkZENTBLLA_cjs.v(r)});if(!u.ok)throw new Error(`Snapshot commit failed (version mismatch): expected=${e??"null"} current=${u.currentVersion??"null"}`)}let L=()=>chunkZENTBLLA_cjs.c(o.journalStorageForRef(O()));async function ne(){return B??await b().readTaskExecutorRef()}async function F(r){await L().appendEvent(r);}async function M(){let r=await b().readFetchedSourcesStoreRef();if(!r)throw new Error(`Board at ${t.value} has no fetched sources store configured. Run: init --fetched-sources-store-ref <b64-ref>`);return r}async function G(){return o.blobStorageForRef(await M())}async function W(){return ft(await G(),r=>o.resolveBlob(r))}async function ke(r){let e=(await G()).keyRef?.(r);if(!e)throw new Error("configured fetched-sources store does not support keyRef");let u=await Promise.resolve(e);return chunkVQCIOKJV_cjs.a(u)}async function Re(){let r=pt(o.kvStorageForRef(O()),async(i,l)=>{let S=i.payload,I=(S.enrichedCard??{}).id??S.cardId??"unknown";await F({type:"task-failed",taskName:I,error:l,timestamp:x()});}),e=mt(o.kvStorageForRef(O())),u=await G(),a=await W(),k=await D(),C=await T(),A=new Map,y=new Map,z=[],Q=[],V=[],U=new Map,Y=new Set,Se={async readRuntime(i){return A.get(i)??await e.readRuntime(i)},async writeRuntime(i,l){A.set(i,l),Ce[i]=l;}},at={async readSourceData(i,l){let S=`${i}/${l}`;return y.has(S)?y.get(S):await a.readSourceData(i,l)},ingestSourceDataStaged(i,l,S,E){return a.ingestSourceDataStaged(i,l,S,E)},async commitSourceData(i,l,S){let E=`${i}/.staged/${S}/${l}`,I=await u.read(E);if(I==null){let j=await Promise.resolve(u.keyRef?.(E));j&&(I=await o.resolveBlob(j));}if(I==null)return false;let K=`${i}/${l}`,Z=I.trim();try{y.set(K,JSON.parse(Z));}catch{y.set(K,Z);}return z.push({cardId:i,outputFile:l,deliveryToken:S}),true},async hasSource(i,l){let S=`${i}/${l}`;return y.has(S)||await a.hasSource(i,l)},async listSources(i){let l=await a.listSources(i),S=[...y.keys()].filter(E=>E.startsWith(`${i}/`)).map(E=>E.slice(`${i}/`.length));return [...new Set([...l,...S])]}},we=await J(),it=chunkG4XXRHL2_cjs.q(we.graph),Ce={...we.runtimeByCardId},{events:ut,newCursor:he}=await L().readEntriesAfterCursor(we.lastDrainedJournalId),ae=ut,ie=chunkG4XXRHL2_cjs.u(it,{handlers:{"card-handler":yt(t,he,{cardStore:k,cardRuntimeStore:Se,fetchedSourcesStore:at,executionRequestStore:r},(i,l)=>{ae.push({type:"task-completed",taskName:i,data:l,timestamp:x()});},(i,l)=>{Q.push({cardId:i,values:l});},i=>{V.push(i);})},onNodeRemoved:i=>{U.delete(i),A.delete(i),delete Ce[i],Y.add(i);}});for(;ae.length>0;){let i=ae;ae=[];for(let l of i)if(l.type==="task-restart"){let S=await k.readCard(l.taskName);S&&U.set(l.taskName,S);}ie.pushAll(i),await ie.waitForHandlers();}let Fe=ie.getState();await ie.dispose({wait:true}),await H({lastDrainedJournalId:he,graph:chunkG4XXRHL2_cjs.p(Fe),runtimeByCardId:Ce},(await $().readSnapshot(_)).version);for(let{cardId:i,values:l}of Q)await C.writeComputedValues(i,l);for(let i of V)await C.writeDataObjects(i);for(let[i,l]of A)await e.writeRuntime(i,l);for(let i of z)await a.commitSourceData(i.cardId,i.outputFile,i.deliveryToken);let qe=chunkZENTBLLA_cjs.t(g,Fe);await C.writeStatusSnapshot(qe);let ee=[];for(let{cardId:i,values:l}of Q)ee.push({kind:"computed_values",cardId:i,values:l});for(let i of V)for(let[l,S]of Object.entries(i))ee.push({kind:"data_object",key:l,payload:S});for(let[i,l]of U)ee.push({kind:"card_refreshed",cardId:i,card:l});for(let i of Y)ee.push({kind:"card_removed",cardId:i});ee.push({kind:"status",status:qe}),await re(ee);let X=await ne();if(!X)return;let Te=o.supportsDirectSourceOutput?.(X)===true;await r.dispatchEntriesForJournalId(he,async i=>{if(i.taskKind!=="source-fetch"){d(`[async-process-accumulated-events] unknown taskKind "${i.taskKind}" \u2014 skipping`);return}let l=i.payload,S=l.enrichedCard?.id??"unknown",E=l.enrichedCard?.source_defs??[];if(X.howToRun==="queue-storage"&&Te){try{let I=await b().readQueueStoreRef();if(!I)throw new Error(`Board at ${t.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let K=o.queueStorageForRef(I,"task-executor"),Z=typeof X.extra?.boardId=="string"?X.extra.boardId:void 0,j=[];for(let N of E){if(!N.outputFile)continue;let ue=o.genId(),de=`${S}/.staged/${ue}/${N.outputFile}`,Oe=await Promise.resolve(u.keyRef?.(de));if(!Oe)continue;let Ee={ref:chunkVQCIOKJV_cjs.a(Oe),deliveryToken:ue,outputFile:N.outputFile,cardId:S},dt=nt({cbk:l.callbackToken,rg:t.value,br:chunkVQCIOKJV_cjs.a(t),cid:S,b:N.bindTo,d:N.outputFile,cs:void 0,rqt:l.rqt,dt:Ee.deliveryToken});j.push({...Z?{boardId:Z}:{},ref:X,args:{source_def:N,base_ref:chunkVQCIOKJV_cjs.a(t),callback:s.createCallback(dt),output:Ee}});}j.length>0&&await K.enqueueMany(j);}catch(I){await F({type:"task-failed",taskName:S,error:I instanceof Error?I.message:String(I),timestamp:x()});}return}for(let I of E){if(!I.outputFile)continue;let K;if(Te){let N=o.genId(),ue=`${S}/.staged/${N}/${I.outputFile}`,de=await Promise.resolve(u.keyRef?.(ue));de&&(K={ref:chunkVQCIOKJV_cjs.a(de),deliveryToken:N,outputFile:I.outputFile,cardId:S});}let Z=nt({cbk:l.callbackToken,rg:t.value,br:chunkVQCIOKJV_cjs.a(t),cid:S,b:I.bindTo,d:I.outputFile,cs:void 0,rqt:l.rqt,...K?{dt:K.deliveryToken}:{}}),j=await o.dispatchExecution(X,{source_def:I,base_ref:chunkVQCIOKJV_cjs.a(t),callback:s.createCallback(Z),...K?{output:K}:{}});j.dispatched||await F({type:"task-failed",taskName:S,error:j.error??"dispatch failed",timestamp:x()});}});}async function oe(){try{let r=async()=>{let u=await J(),{events:a}=await L().readEntriesAfterCursor(u.lastDrainedJournalId);a.length>0&&await m();},e=await Ye(o.lock,Re,r);return h({ran:e!==!1})}catch(r){return P(r)}}async function xe(){return c||(c=oe().finally(()=>{c=null;}),c)}async function m(){let r=await b().readQueueStoreRef();if(!r)throw new Error(`Board at ${t.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let e=o.queueStorageForRef(r,"process-accumulated");e.enqueueIfAbsent?await e.enqueueIfAbsent({boardRef:chunkVQCIOKJV_cjs.a(t)},`process-accumulated:${chunkVQCIOKJV_cjs.a(t)}`):await e.enqueue({boardRef:chunkVQCIOKJV_cjs.a(t)}),await o.requestProcessAccumulated?.();}async function f(){let r=await b().readQueueStoreRef();if(!r)throw new Error(`Board at ${t.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let e=o.queueStorageForRef(r,"process-accumulated");for(;;){let u=await e.lease({max:64,visibilityMs:1e3});if(u.length<=0)return;for(let a of u)await e.ack(a.id,a.leaseToken);if(u.length<64)return}}function R(){m();}return {async init(r){try{let e=r.params?.cardStoreRef;if(!e)return p("init requires params.cardStoreRef");if(w=r.params?.boardRuntimeStoreRef,!w)return p("init requires params.boardRuntimeStoreRef");let u=r.params?.outputsStoreRef;if(!u)return p("init requires params.outputsStoreRef");let a=r.params?.queueStoreRef;if(!a)return p("init requires params.queueStoreRef");let k=r.params?.fetchedSourcesStoreRef;if(!k)return p("init requires params.fetchedSourcesStoreRef");if(v=r.params?.scratchStoreRef,!v)return p("init requires params.scratchStoreRef");let C=r.params?.chatStoreRef;if(!C)return p("init requires params.chatStoreRef");let A=r.params?.artifactsStoreRef;if(!A)return p("init requires params.artifactsStoreRef");await se()||await H({lastDrainedJournalId:"",graph:chunkG4XXRHL2_cjs.p(chunkG4XXRHL2_cjs.a(chunkZENTBLLA_cjs.u)),runtimeByCardId:{}},null);let y=b();return await y.writeBoardRuntimeStoreRef(w),await y.writeCardStoreRef(e),await y.writeOutputsStoreRef(u),await y.writeQueueStoreRef(a),await y.writeFetchedSourcesStoreRef(k),await y.writeChatStoreRef(C),await y.writeArtifactsStoreRef(A),await(await T()).writeStatusSnapshot(chunkZENTBLLA_cjs.t(g,chunkG4XXRHL2_cjs.q((await J()).graph))),h()}catch(e){return P(e)}},async status(r){try{let e=await T(),u=await e.readStatusSnapshot();return u||(u=chunkZENTBLLA_cjs.t(g,chunkG4XXRHL2_cjs.q((await J()).graph)),await e.writeStatusSnapshot(u)),h(u)}catch(e){return P(e)}},async getCardStoreRef(r){try{let e=await b().readCardStoreRef();return e?h({storeRef:e}):p(`Board at ${t.value} has no card store configured`)}catch(e){return P(e)}},async getBoardRuntimeStoreRef(r){try{return h({storeRef:w??null})}catch(e){return P(e)}},async getOutputsStoreRef(r){try{let e=await b().readOutputsStoreRef();return e?h({storeRef:e}):p(`Board at ${t.value} has no outputs store configured`)}catch(e){return P(e)}},async getScratchStoreRef(r){try{return h({storeRef:v??null})}catch(e){return P(e)}},async getChatStoreRef(r){try{return h({storeRef:await b().readChatStoreRef()})}catch(e){return P(e)}},async getArtifactsStoreRef(r){try{return h({storeRef:await b().readArtifactsStoreRef()})}catch(e){return P(e)}},async getFetchedSourcesStoreRef(r){try{return h({storeRef:await b().readFetchedSourcesStoreRef()})}catch(e){return P(e)}},async getConfig(r){try{let e=r.params?.key;if(!e)return p("getConfig requires params.key");let u=b(),a;switch(e){case "task-executor":a=B??null;break;case "chat-handler-flow":a=te??null;break;case "board-runtime-store-ref":a=await u.readBoardRuntimeStoreRef();break;case "card-store-ref":a=await u.readCardStoreRef();break;case "outputs-store-ref":a=await u.readOutputsStoreRef();break;case "scratch-store-ref":a=v??null;break;case "chat-store-ref":a=await u.readChatStoreRef();break;case "artifacts-store-ref":a=await u.readArtifactsStoreRef();break;case "fetched-sources-store-ref":a=await u.readFetchedSourcesStoreRef();break;default:return p(`getConfig: unknown key "${e}"`)}return h({value:a})}catch(e){return P(e)}},async getOutputsDataObject(r){try{let e=r.params?.key;return e?h(await(await T()).readDataObject(e)):p("getOutputsDataObject requires params.key")}catch(e){return P(e)}},async getAllOutputsDataObjects(r){try{return h(await(await T()).readAllDataObjects())}catch(e){return P(e)}},async getOutputsComputedValues(r){try{let e=r.params?.key;return e?h(await(await T()).readComputedValues(e)):p("getOutputsComputedValues requires params.key")}catch(e){return P(e)}},async getAllOutputsComputedValues(r){try{return h(await(await T()).readAllComputedValues())}catch(e){return P(e)}},async getOutputsFetchedSources(r){try{let e=r.params?.key;if(!e)return p("getOutputsFetchedSources requires params.key");let u=await(await W()).listSources(e),a={};for(let k of u)a[k]=await ke(`${e}/${k}`);return h(a)}catch(e){return P(e)}},async getAllOutputsFetchedSources(r){try{let e=await W(),u=await(await G()).listKeys(),a=new Set;for(let C of u){let A=C.indexOf("/");A>0&&!C.includes("/.staged/")&&a.add(C.slice(0,A));}let k={};for(let C of a){let A=await e.listSources(C);if(A.length!==0){k[C]={};for(let y of A)k[C][y]=await ke(`${C}/${y}`);}}return h(k)}catch(e){return P(e)}},async addCardFiles(r){try{let e=r.params?.cardId;if(!e)return p("addCardFiles requires params.cardId");let u=await D(),a=await u.readCard(e);if(!a)return p(`card "${e}" not found`);let k=r.body,C=Array.isArray(k)?k:k&&typeof k=="object"&&Array.isArray(k.files)?k.files:k!=null?[k]:null;if(!C||C.length===0)return p("addCardFiles requires a file metadata object, array, or body.files array");let A=a.card_data&&typeof a.card_data=="object"&&!Array.isArray(a.card_data)?a.card_data:{},y=Array.isArray(A.files)?A.files:[],z=[...y,...C],Q=C.map((U,Y)=>({idx:y.length+Y,entry:U}));await u.writeCard(e,{...a,card_data:{...A,files:z}});let V=await this.cardRefreshedNotify({params:{cardId:e}});return V.status!=="success"?V:h({cardId:e,files_added:Q,notified:!0})}catch(e){return P(e)}},async cardRefreshedNotify(r){try{let e=r.params?.cardId;if(!e)return p("cardRefreshedNotify requires params.cardId");let u=await(await D()).readCard(e);return u?(await re([{kind:"card_refreshed",cardId:e,card:u}]),h({cardId:e,notified:!0})):p(`Card "${e}" not found in board at ${t.value}`)}catch(e){return P(e)}},async removeCard(r){try{let e=r.params?.id;if(!e)return p("removeCard requires params.id");try{await o.kvStorage("card-upsert").delete(e);}catch{}return await F({type:"task-removal",taskName:e,timestamp:x()}),R(),h()}catch(e){return P(e)}},async retrigger(r){try{let e=r.params?.id;return e?(await F({type:"task-restart",taskName:e,timestamp:x()}),R(),h()):p("retrigger requires params.id")}catch(e){return P(e)}},async processAccumulatedEvents(r){return await f(),xe()},async upsertCard(r){try{let e=r.params?.cardId,u=r.params?.all,a=!!r.params?.restart;if(!e&&!u)return p("upsertCard requires --card-id <id> or --all");let k=await D(),C=u?(await k.readAllCards()).map(y=>y.id):[e];for(let y of C)if(!await k.readCard(y))return p(`Card "${y}" not found in board at ${t.value}`);let A=o.kvStorage("card-upsert");for(let y of C){let z=await k.readCard(y);if(!z)continue;let Q=chunkZENTBLLA_cjs.x(z),V=o.hashFn(Q),U=await A.read(y),Y=U?.taskConfigHash!==V;if(!(!Y&&!a)){if(Y){let Se=U?.blobRef??await k.readCardKey(y)??y;await F({type:"task-upsert",taskName:y,taskConfig:Q,timestamp:x()}),await A.write(y,{blobRef:Se,taskConfigHash:V,updatedAt:x()});}a&&await F({type:"task-restart",taskName:y,timestamp:x()});}}return R(),h()}catch(e){return P(e)}},async taskFailed(r){try{let e=r.params?.token;if(!e)return p("taskFailed requires params.token");let u=r.params?.error??"unknown error",a=ye(e);return a?(await F({type:"task-failed",taskName:a.taskName,error:u,timestamp:x()}),R(),h()):p("Invalid callback token")}catch(e){return P(e)}},async taskProgress(r){try{let e=r.params?.token;if(!e)return p("taskProgress requires params.token");let u=(r.body??{}).update??{},a=ye(e);return a?(await F({type:"task-progress",taskName:a.taskName,update:u,timestamp:x()}),R(),h()):p("Invalid callback token")}catch(e){return P(e)}},async sourceDataFetched(r){try{let e=r.params?.token,u=r.params?.ref;if(!e)return p("sourceDataFetched requires params.token");if(!u)return p("sourceDataFetched requires params.ref");let a=ot(e);if(!a)return p("Invalid source token");let k=await W(),C=a.dt||o.genId();a.dt||await k.ingestSourceDataStaged(a.cid,a.d,chunkVQCIOKJV_cjs.b(u),C);let A=ye(a.cbk);return A?(await F({type:"task-progress",taskName:A.taskName,update:{bindTo:a.b,outputFile:a.d,fetchedAt:x(),deliveryToken:C,sourceChecksum:a.cs,rqt:a.rqt},timestamp:x()}),R(),h()):p("Invalid callback token embedded in source token")}catch(e){return P(e)}},async sourceDataFetchFailure(r){try{let e=r.params?.token,u=r.params?.reason??"unknown";if(!e)return p("sourceDataFetchFailure requires params.token");let a=ot(e);if(!a)return p("Invalid source token");let k=ye(a.cbk);return k?(await F({type:"task-progress",taskName:k.taskName,update:{bindTo:a.b,outputFile:a.d,failure:!0,reason:u,sourceChecksum:a.cs,rqt:a.rqt},timestamp:x()}),R(),h()):p("Invalid callback token embedded in source token")}catch(e){return P(e)}}}}
|
|
2
|
+
exports.a=Ye;exports.b=et;exports.c=tt;exports.d=rt;exports.e=Ct;exports.f=ht;exports.g=_t;//# sourceMappingURL=chunk-36QUKFL7.cjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-36QUKFL7.cjs.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a,c,d,e,b,f}from'./chunk-O7NOHKVR.js';import {a as a$1}from'./chunk-FOFGEABN.js';import {b as b$1}from'./chunk-44L64VQ2.js';import {a as a$2}from'./chunk-35N7ONTH.js';function W(){return {status:null,computedValues:{},dataObjects:{},cards:{}}}function V(s){if(!s||typeof s!="object")return false;let e=s.summary;return !e||typeof e!="object"?false:Number(e.card_count||0)>0}function H(s,e){if(!e||typeof e!="object")return;let n=e;if(n.kind==="notification-batch"&&Array.isArray(n.notifications)){for(let c of n.notifications)H(s,c);return}n.kind==="status"&&V(n.status)&&(s.status=n.status),n.kind==="computed_values"&&n.cardId&&(s.computedValues[n.cardId]=n.values),n.kind==="data_object"&&n.key&&(s.dataObjects[n.key]=n.payload),n.kind==="card_refreshed"&&n.cardId&&(s.cards[n.cardId]=n.card),n.kind==="card_removed"&&n.cardId&&(delete s.cards[n.cardId],delete s.computedValues[n.cardId]);}function j(s,e){if(s?.status==="success")return Object.prototype.hasOwnProperty.call(s,"data")?s.data:void 0;throw s?.status==="fail"||s?.status==="error"?Object.assign(new Error(s.error||`${e} failed`),{statusCode:400}):Object.assign(new Error(`${e} returned an unexpected response`),{statusCode:500})}async function B(s,e){return j(await s,e)}function q(s){let e=a(s,"key");if(!e)throw Object.assign(new Error("MCP tool requires key"),{statusCode:400});let n=e.split(".");if(!(n.length>=2&&n[0]==="chat"&&n.every(h=>/^[A-Za-z_][A-Za-z0-9_]*$/.test(h))))throw Object.assign(new Error("MCP tool only supports card private keys under chat.*"),{statusCode:400});return e}function D(s,e){let n=s.__private;for(let c of e.split(".")){if(!n||typeof n!="object"||Array.isArray(n)||!Object.prototype.hasOwnProperty.call(n,c))return {exists:false,value:null};n=n[c];}return {exists:true,value:n}}function Q(s){let{boardId:e,bootstrapBoard:n,sseHub:c,onChannelSubscribed:h,onChannelUnsubscribed:v,getMcpFacade:I,getMcpCardStoreFacade:r}=s;function C(d){let l=a(d,"board_id");if(!l)throw Object.assign(new Error("MCP tool requires board_id"),{statusCode:400});if(l!==e)throw Object.assign(new Error(`Unknown board_id: ${l}`),{statusCode:400})}function w(d){let l=a(d,"client_id");if(!l)throw Object.assign(new Error("MCP tool requires client_id"),{statusCode:400});return l}function u(d){C(d);let l=w(d),a$1=a(d,"channel_name"),t=a(d,"card_id")||void 0;if(!a$1)throw Object.assign(new Error("MCP tool requires channel_name"),{statusCode:400});return {clientId:l,channelName:a$1,...t?{cardId:t}:{}}}function g(d){C(d);let l=a(d,"card_id");if(!l)throw Object.assign(new Error("MCP tool requires card_id"),{statusCode:400});return {cardId:l}}async function b(d){await n();let{cardId:l}=g(d),a=w(d);if(!await c.subscribeChat(a,l))throw Object.assign(new Error(`SSE client not connected: ${a}`),{statusCode:404});return {status:"success",data:{boardId:e,cardId:l,clientId:a,subscribed:true}}}async function y(d){await n();let{cardId:l}=g(d),a=w(d);if(!c.unsubscribeChat(a,l))throw Object.assign(new Error(`SSE client not connected: ${a}`),{statusCode:404});return {status:"success",data:{boardId:e,cardId:l,clientId:a,subscribed:false}}}async function k(d,l){await n();let{clientId:a,channelName:t,cardId:o}=u(d);if(!c.has(a))throw Object.assign(new Error(`SSE client not connected: ${a}`),{statusCode:404});return l?h?.(a,t,o?{cardId:o}:{}):v?.(a,t,o?{cardId:o}:{}),{status:"success",data:{boardId:e,clientId:a,channelName:t,subscribed:l,...o?{cardId:o}:{}}}}async function f(d,l){let{cardId:a}=g(d);return await I().setChatProcessing({cardId:a,active:l}),{status:"success",data:{boardId:e,cardId:a,active:l}}}async function i(d){let{cardId:l}=g(d),a=await I().getChatProcessing({cardId:l});return {status:"success",data:{boardId:e,cardId:l,active:a.active}}}async function m(d){let{cardId:l}=g(d),a=q(d);if(!Object.prototype.hasOwnProperty.call(d,"value"))throw Object.assign(new Error("MCP tool requires value"),{statusCode:400});if(a.split(".").includes("visible_controlplane_only")){let t=await B(r().get({params:{id:l}}),"cardStore.get"),o=Array.isArray(t.cards)&&t.cards.length>0&&typeof t.cards[0]=="object"&&!Array.isArray(t.cards[0])?t.cards[0]:null,R=o?D(o,"visible_controlplane_only").value:void 0;if(d.value!==R)throw Object.assign(new Error("MCP tool cannot change the reserved private flag visible_controlplane_only"),{statusCode:403});return {status:"success",data:{boardId:e,cardId:l,key:a}}}return j(await r().patch({params:{id:l,path:`__private.${a}`},body:{value:d.value}}),"cardStore.patch"),{status:"success",data:{boardId:e,cardId:l,key:a}}}async function _(d){let{cardId:l}=g(d),a=q(d),t=await B(r().get({params:{id:l}}),"cardStore.get"),o=Array.isArray(t.cards)&&t.cards.length>0&&t.cards[0]&&typeof t.cards[0]=="object"&&!Array.isArray(t.cards[0])?t.cards[0]:null;if(!o)throw Object.assign(new Error(`Card "${l}" not found`),{statusCode:404});let R=D(o,a);return {status:"success",data:{boardId:e,cardId:l,key:a,exists:R.exists,value:R.value}}}return {requireCardArgs:g,subscribeChat:b,unsubscribeChat:y,watchChannel:k,setChatProcessing:f,getChatProcessing:i,setCardMeta:m,getCardMeta:_}}function ee(s){let{boardId:e,boardContexts:n,readCardDefinitions:c,readChatRecords:h,getChatProcessing:v}=s;async function I(){let u=(await Promise.all(n.map(async f=>{try{let i=f.boardAdapter.kvStorageForRef(f.outputsStoreRef),m=await Promise.resolve(i.read("status"));if(m!=null)return m}catch{}return f.notification.status}))).filter(Boolean);if(u.length===0)return null;if(u.length===1)return u[0];let g=[],b=["completed","eligible","pending","blocked","unresolved","failed","in_progress","orphan_cards"],y={};for(let f of b)y[f]=0;for(let f of u){let i=f,m=Array.isArray(i.cards)?i.cards:[];g.push(...m);for(let _ of b)y[_]+=Number(i?.summary?.[_]||0);}let k=u[0];return {...k,cards:g,summary:{...k.summary||{},card_count:g.length,...y}}}async function r(){let u={},g=async b=>{try{let y=await b.boardOps.getAllOutputsComputedValues({});if(y.status==="success"&&y.data&&typeof y.data=="object"){for(let[k,f]of Object.entries(y.data)){let i=b.notification.cards[k];u[k]={schema_version:"v1",card_id:k,card_data:i?.card_data??{},computed_values:f??{}};}return}}catch{}for(let[y,k]of Object.entries(b.notification.computedValues)){let f=b.notification.cards[y];u[y]={schema_version:"v1",card_id:y,card_data:f?.card_data??{},computed_values:k??{}};}};for(let b of n)await g(b);return u}async function C(){let u={};for(let g of n){try{let b=await g.boardOps.getAllOutputsDataObjects({});if(b.status==="success"&&b.data&&typeof b.data=="object"){Object.assign(u,b.data);continue}}catch{}Object.assign(u,g.notification.dataObjects||{});}return u}async function w(){let u=await c(),g=await r(),b=await C(),y={};for(let f of u){if(!f?.id)continue;let i=f.id,m=g[i]||{},_={...m.card_data&&typeof m.card_data=="object"?m.card_data:f.card_data&&typeof f.card_data=="object"?f.card_data:{}};y[i]={schema_version:m.schema_version||"v1",card_id:m.card_id||i,card_data:_,computed_values:m.computed_values&&typeof m.computed_values=="object"?m.computed_values:{}};}let k={};for(let f of u){if(!f?.id)continue;let i=f.id;try{let m=await h(i),_=await v(i);(m.length>0||_)&&(k[i]={messages:m.map(d=>({role:String(d.role||"system"),text:String(d.text||""),files:Array.isArray(d.files)?d.files:[]})),receiving:!1,processing:_});}catch{}}return {boardId:e,cardDefinitions:u,statusSnapshot:await I(),dataObjectsByToken:b,cardRuntimeById:y,cardChatsByCardId:k}}return {readStatusSnapshot:I,readCardRuntimeArtifacts:r,readDataObjectsByToken:C,buildPublishedRuntimePayload:w}}function z(s){let e=String(s||"").trim();if(!e)return "upload.bin";let n=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return (n>=0?e.slice(n+1):e)||"upload.bin"}function re(s){let{safeCardId:e,artifactsStores:n,cardFileMetadataStore:c,readCardFromStore:h,updateCardLocalOnly:v,writeChatRecord:I}=s;async function r(u){let g=[];try{let b=await h(u);if(!b)return g;let y=c().read(b.card_data&&typeof b.card_data=="object"?b.card_data:null);for(let k of y)g.push(String(k.stored_name??""));}catch{}return g}async function C(u,g,b,y){let k=e(u),f=n(u),i=z(g),m=await r(u),d=`${String(m.length+1).padStart(3,"0")}-${i}`.slice(-36);if(!f.files)throw Object.assign(new Error(`artifactsStoreRef is not configured for card uploads: ${u}`),{statusCode:500});return await f.files.putBytes(`${k}/${d}`,new Uint8Array(y),b||"application/octet-stream"),{name:i,stored_name:d,size:y.length,mime_type:b||"application/octet-stream",uploaded_at:new Date().toISOString()}}async function w(u,g,b,y,k){if(!y.length)throw Object.assign(new Error("Empty upload body"),{statusCode:400});let f=k?.inChat===true,i=await C(u,g,b,y),m=null;if(await v(u,_=>{let d=new Date().toISOString(),l=_.card_data&&typeof _.card_data=="object"?_.card_data:{};_.card_data=l;let a=c().normalizeIncoming([{name:i.name,stored_name:i.stored_name,size:i.size,mime_type:i.mime_type,uploaded_at:i.uploaded_at||d,chat:f}],d);return m=c().merge(l,a).findIndex(o=>o.stored_name===i.stored_name),_}),f&&k?.suppressChatRecordWrite!==true){let _=typeof m=="number"&&m>=0?` #${m}`:"";await I(u,"system",`file uploaded: ${i.name} as ${i.stored_name}${_}`,[],k?.turnId??"");}return {ok:true,file:{...i,...typeof m=="number"&&m>=0?{file_idx:m}:{},chat:f},...typeof m=="number"&&m>=0?{file_idx:m}:{}}}return {uploadCardFile:w,readCardStoredFileNames:r}}function se(s){return {"discover.source-kinds":()=>s.discoverSourceKinds(),"inspect.board-runtime-status":()=>s.inspectBoardRuntimeStatus(),"inspect.card-definition-and-runtime":e=>s.inspectCardDefinitionAndRuntime({cardId:a(e,"card_id")}),"inspect.chat-messages-on-cards":e=>{let n=b(e,"tail_turns"),c=b(e,"tail"),h=a(e,"turn_id"),v=e.all_turns===true,I=a(e,"tail_turns_before_id");return s.inspectChatMessagesOnCards({cardId:a(e,"card_id"),...n!==void 0?{lastUserTurns:n}:{},...c!==void 0?{tail:c}:{},...h?{turnId:h}:{},...v?{allTurns:true}:{},...I?{tailTurnsBeforeId:I}:{}})},"inspect.file-contents":e=>s.inspectFileContents({cardId:a(e,"card_id"),fileIdx:Number(b(e,"file_idx"))}),"preflight.validate-candidate-card-definition":e=>s.preflightValidateCandidateCardDefinition({candidateCardContent:d(e,"candidate_card_content","candidate_card_content")}),"preflight.materialize-candidate-card":e=>s.preflightMaterializeCandidateCard({candidateCardContent:d(e,"candidate_card_content","candidate_card_content"),mockRequires:d(e,"mock_requires","mock_requires"),mockFetchedSources:d(e,"mock_fetched_sources","mock_fetched_sources")}),"preflight.probe-single-source-in-candidate-card":e$1=>s.preflightProbeSingleSourceInCandidateCard({candidateCardContent:d(e$1,"candidate_card_content","candidate_card_content"),mockProjections:c(e$1,"mock_projections"),sourceIdx:e(e$1,"source_idx","source_idx")}),"preflight.run-single-source-in-candidate-card":e$1=>s.preflightRunSingleSourceInCandidateCard({candidateCardContent:d(e$1,"candidate_card_content","candidate_card_content"),mockProjections:c(e$1,"mock_projections"),sourceIdx:e(e$1,"source_idx","source_idx")}),"preflight.run-single-source-in-live-card":e$1=>s.preflightRunSingleSourceInLiveCard({cardId:a(e$1,"card_id"),sourceIdx:e(e$1,"source_idx","source_idx"),mockRequires:d(e$1,"mock_requires","mock_requires")}),"preflight.run-one-cycle-with-candidate-card":e=>s.preflightRunOneCycleWithCandidateCard({candidateCardContent:d(e,"candidate_card_content","candidate_card_content"),mockRequires:c(e,"mock_requires")}),"manage.read-card":e=>s.manageReadCard({cardId:a(e,"card_id")}),"stage-ai-response-and-any-attachments":e=>{let n=a(e,"turn_id");if(!n)throw Object.assign(new Error("stage-ai-response-and-any-attachments requires a non-empty turn_id"),{statusCode:400});return s.manageAddChatEntryAndAnyAttachments({cardId:a(e,"card_id"),role:"assistant",...typeof e.text=="string"?{text:e.text}:{},...n?{turn:n}:{},...Array.isArray(e.files)?{files:e.files}:{}})},"stage-ai-failure-message":e=>{let n=a(e,"turn_id"),c=a(e,"failure");if(!n)throw Object.assign(new Error("stage-ai-failure-message requires a non-empty turn_id"),{statusCode:400});if(!c)throw Object.assign(new Error("stage-ai-failure-message requires a non-empty failure"),{statusCode:400});return s.manageAddChatEntryAndAnyAttachments({cardId:a(e,"card_id"),role:"system",text:c,turn:n})},"manage.upsert-card":e=>s.manageUpsertCard({cardId:a(e,"card_id"),candidateCardContent:c(e,"candidate_card_content")}),"manage.remove-card":e=>s.manageRemoveCard({cardId:a(e,"card_id")})}}function oe(s){return {"webhook.process-accumulated":()=>s.webhookProcessAccumulated(),"webhook.source-fetch-done":e=>s.webhookSourceFetchDone({token:a(e,"token"),ref:a(e,"ref")}),"webhook.source-fetch-failed":e=>s.webhookSourceFetchFailed({token:a(e,"token"),reason:a(e,"reason")})}}function de(s){let{boardId:e,uploadCardFile:n,getMcpFacade:c$1,controlplane:h}=s;function v(r,C){let w=a(r,"board_id");if(!w)throw Object.assign(new Error(`${C} requires board_id`),{statusCode:400});if(w!==e)throw Object.assign(new Error(`Unknown board_id: ${w}`),{statusCode:400})}function I(r,C){let{cardId:w}=h.requireCardArgs(r),u=a(r,"turn_id");return v(r,C),c$1().manageAddChatAttachment({cardId:w,role:a(r,"role")||"user",...u?{turn:u}:{},files:[{file_name:a(r,"file_name"),content_type:a(r,"content_type")||"application/octet-stream",...typeof r.text=="string"?{text:r.text}:{},...typeof r.base64=="string"?{base64:r.base64}:{},...Array.isArray(r.bytes)?{bytes:r.bytes}:{}}]})}return {"list-runtime-cards":r=>(v(r,"list-runtime-cards"),c$1().listRuntimeCards()),"sse.subscribe-chat":r=>h.subscribeChat(r),"sse.unsubscribe-chat":r=>h.unsubscribeChat(r),"sse.watch-channel":r=>h.watchChannel(r,true),"sse.unwatch-channel":r=>h.watchChannel(r,false),"getstate.is-chat-processing":r=>h.getChatProcessing(r),"setstate.chat-processing-started":r=>h.setChatProcessing(r,true),"setstate.chat-processing-done":r=>h.setChatProcessing(r,false),"getstate.card-private":r=>h.getCardMeta(r),"setstate.card-private":r=>h.setCardMeta(r),"manage.upload-card-file":r=>{let C=a(r,"card_id"),w=a(r,"file_name"),u=a(r,"content_type")||"application/octet-stream",g=f(r);if(v(r,"manage.upload-card-file"),!C)throw Object.assign(new Error("manage.upload-card-file requires card_id"),{statusCode:400});if(!w)throw Object.assign(new Error("manage.upload-card-file requires file_name"),{statusCode:400});if(!g)throw Object.assign(new Error("manage.upload-card-file requires args.bytes, args.text, or args.base64"),{statusCode:400});return n(C,w,u,g,{inChat:false})},"manage.add-chat-attachment":r=>I(r,"manage.add-chat-attachment"),"manage.add-chat-attachement":r=>I(r,"manage.add-chat-attachement"),"manage.add-chat-entry-and-any-attachments":r=>{let{cardId:C}=h.requireCardArgs(r),w=a(r,"role")||"user",u=a(r,"turn_id");return v(r,"manage.add-chat-entry-and-any-attachments"),c$1().manageAddChatEntryAndAnyAttachments({cardId:C,role:w,...typeof r.text=="string"?{text:r.text}:{},...u?{turn:u}:{},...Array.isArray(r.files)?{files:r.files}:{}})},"manage.patch-card":r=>{let{cardId:C}=h.requireCardArgs(r);return v(r,"manage.patch-card"),c$1().managePatchCard({cardId:C,patch:c(r,"patch")})},"manage.upsert-card":r=>{let{cardId:C}=h.requireCardArgs(r);return v(r,"manage.upsert-card"),c$1().manageUpsertCard({cardId:C,candidateCardContent:c(r,"candidate_card_content")})},"manage.remove-card":r=>{let{cardId:C}=h.requireCardArgs(r);return v(r,"manage.remove-card"),c$1().manageRemoveCard({cardId:C})},"manage.admin-read-card":async r=>{let{cardId:C}=h.requireCardArgs(r);return {status:"success",data:{cards:await c$1().adminReadCard({cardId:C})}}},"manage.admin-upsert-card":r=>{let C=a(r,"board_id"),w=a(r,"card_id");if(!C)throw Object.assign(new Error("manage.admin-upsert-card requires board_id"),{statusCode:400});if(!w)throw Object.assign(new Error("manage.admin-upsert-card requires card_id"),{statusCode:400});if(C!==e)throw Object.assign(new Error(`Unknown board_id: ${C}`),{statusCode:400});return c$1().adminUpsertCard({cardId:w,candidateCardContent:c(r,"candidate_card_content")})}}}function pe(s){let{boardContexts:e,cardOwnerIndex:n,cardContextForCard:c,readStatusSnapshot:h,readDataObjectsByToken:v,readCardRuntimeArtifacts:I,readCardFromStore:r,readCardDefinitions:C,processAccumulatedLaneInternal:w,reportSourceFetched:u,reportSourceFetchFailure:g,uploadCardFile:b,chatStorePublic:y,serverUrl:k,apiBasePath:f}=s;function i(){return e[0]??null}function m(){return {async status(){let a=await h();return a==null?{status:"fail",error:"Board status is unavailable"}:{status:"success",data:a}},async getOutputsDataObject(a){let t=a?.params?.key;return t?{status:"success",data:(await v())[t]}:{status:"fail",error:"getOutputsDataObject requires params.key"}},async getOutputsComputedValues(a){let t=a?.params?.key;return t?{status:"success",data:(await I())[t]?.computed_values}:{status:"fail",error:"getOutputsComputedValues requires params.key"}},async getOutputsFetchedSources(a){let t=a?.params?.key;if(!t)return {status:"fail",error:"getOutputsFetchedSources requires params.key"};let o=c(t)??i();return o?o.boardOps.getOutputsFetchedSources({params:{key:t}}):{status:"fail",error:"Board context is unavailable"}},async removeCard(a){let t=a?.params?.id;if(!t)return {status:"fail",error:"removeCard requires params.id"};let o=c(t)??i();return o?o.boardOps.removeCard({params:{id:t}}):{status:"fail",error:"Board context is unavailable"}},async cardRefreshedNotify(a){let t=a?.params?.cardId;if(!t)return {status:"fail",error:"cardRefreshedNotify requires params.cardId"};let o=c(t)??i();return o?o.boardOps.cardRefreshedNotify({params:{cardId:t}}):{status:"fail",error:"Board context is unavailable"}},async upsertCard(a){let t=a?.params?.cardId;if(!t)return {status:"fail",error:"upsertCard requires params.cardId"};let o=c(t)??i();if(!o)return {status:"fail",error:"Board context is unavailable"};let R=await o.boardOps.upsertCard({params:{cardId:t,restart:a.params.restart===true}});if(R.status!=="success")return R;if(a$1(o.boardAdapter)){let P=await w(true);if(P.status!=="success")return P}return R}}}function _(){let a=()=>{let t=i();if(!t?.nonCore)throw new Error("Board non-core adapter is not configured for MCP preflight/discovery tools");return t.nonCore};return {describeTaskExecutorCapabilities(t){return a().describeTaskExecutorCapabilities(t)},validateCardPreflight(t){return a().validateCardPreflight(t)},evalCardCompute(t){return a().evalCardCompute(t)},probeSourcePreflight(t){return a().probeSourcePreflight(t)},runSourcePreflight(t){return a().runSourcePreflight(t)},simulateCardCycle(t){return a().simulateCardCycle(t)}}}function d(){return {async get(a){let t=typeof a.params?.id=="string"?a.params.id:void 0;if(t){let o=await r(t);return o?{status:"success",data:{cards:[o]}}:{status:"success",data:{cards:[]}}}return {status:"success",data:{cards:await C()}}},async set(a){let t=a.body;if(t==null)return {status:"fail",error:"set requires a body (card object or array of cards)"};let o=Array.isArray(t)?t:[t];for(let R of o){let P=R,A=typeof P.id=="string"?P.id:"";if(!A)return {status:"fail",error:"each card must have a string `id` field"};let E=n.get(A)??0,N=e[E]??i();if(!N)return {status:"fail",error:"Board context is unavailable"};let T=await N.cardStoreOps.set({body:P});if(T.status!=="success")return T;n.set(A,E);}return {status:"success",data:{count:o.length}}},async del(a){let t=[a.params?.id,...a.body?.ids??[]].filter(o=>typeof o=="string"&&!!o);if(t.length===0)return {status:"fail",error:"del requires body.ids (string[]) or params.id"};for(let o of t){let R=c(o)??i();if(!R)return {status:"fail",error:"Board context is unavailable"};let P=await R.cardStoreOps.del({params:{id:o}});if(P.status!=="success")return P;n.delete(o);}return {status:"success",data:{count:t.length}}},async patch(a){let t=typeof a.params?.id=="string"?a.params.id:void 0,o=typeof a.params?.path=="string"?a.params.path:void 0;if(!t||!o)return {status:"fail",error:"patch requires params.id and params.path"};let R=c(t)??i();return R?R.cardStoreOps.patch(a):{status:"fail",error:"Board context is unavailable"}},async appendFiles(a){let t=typeof a.params?.id=="string"?a.params.id:void 0;if(!t)return {status:"fail",error:"appendFiles requires params.id"};let o=c(t)??i();return o?o.cardStoreOps.appendFiles(a):{status:"fail",error:"Board context is unavailable"}}}}function l(){return a$2({board:m(),nonCore:_(),cardStore:d(),chatStore:y,processAccumulated:()=>w(true),sourceFetchDone:({token:a,ref:t})=>u(a,t),sourceFetchFailed:({token:a,reason:t})=>g(a,t),uploadCardFile({cardId:a,fileName:t,contentType:o,bytes:R,suppressChatRecordWrite:P}){return b(a,t,o,R,{inChat:true,...P===true?{suppressChatRecordWrite:true}:{}})},buildFileDownloadUrl({cardId:a,fileIdx:t,storedName:o}){let R=`${k||""}${f}/cards/${encodeURIComponent(a)}/files/${t}`;return o?`${R}?sn=${encodeURIComponent(o)}`:R},readFetchedSourceJsonByRef({cardId:a,ref:t}){let o=c(a)??i();if(!o||a$1(o.boardAdapter))return null;let A=o.boardAdapter.resolveBlob(b$1(t)).trim();return A?JSON.parse(A):null}})}return {mcpBoardFacade:m,mcpNonCoreFacade:_,mcpCardStoreFacade:d,createMcpFacade:l}}export{W as a,V as b,H as c,j as d,B as e,q as f,D as g,Q as h,ee as i,re as j,se as k,oe as l,de as m,pe as n};//# sourceMappingURL=chunk-3MMTBEAO.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-3MMTBEAO.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {u}from'./chunk-VGT3TRQG.js';import {a}from'./chunk-JMDHDY6M.js';function b(e){return JSON.parse(JSON.stringify(e))}function E(e){let r=e.provides&&e.provides.length>0?e.provides.map(n=>n.bindTo):[e.id];return {requires:e.requires&&e.requires.length>0?[...e.requires]:void 0,provides:r,taskHandlers:[e.id],description:e.meta?.title??e.id}}function I(e){let r=new Map;for(let[n,u]of e.entries()){let o=u.provides&&u.provides.length>0?u.provides:[{bindTo:n,ref:"card_data"}];for(let h of o)r.set(h.bindTo,n);}return r}function O(e,r){let n=I(e),u=e.get(r);if(u){for(let o of u.requires??[])if(!n.has(o))throw new Error(`Card "${r}" requires token "${o}" but no card provides it`)}}var F={CARD_PREFIX:"yf:cards:",RUNTIME_OUT_PREFIX:"yf:runtime-out:cards:",STATUS_KEY:"yf:runtime-out:status",writeCard(e,r){try{localStorage.setItem(this.CARD_PREFIX+e,JSON.stringify(r));}catch(n){console.warn(`Failed to write card ${e} to localStorage:`,n);}},readCard(e){try{let r=localStorage.getItem(this.CARD_PREFIX+e);return r?JSON.parse(r):null}catch(r){return console.warn(`Failed to read card ${e} from localStorage:`,r),null}},readAllCards(e){let r={};for(let n of e){let u=this.readCard(n);u&&(r[n]=u);}return r},writeComputedArtifact(e){if(!(!e||!e.card_id))try{localStorage.setItem(this.RUNTIME_OUT_PREFIX+String(e.card_id),JSON.stringify(e));}catch(r){console.warn(`Failed to write computed artifact ${e.card_id}:`,r);}},readComputedArtifact(e){try{let r=localStorage.getItem(this.RUNTIME_OUT_PREFIX+e);return r?JSON.parse(r):null}catch(r){return console.warn(`Failed to read computed artifact ${e}:`,r),null}},readAllComputedArtifacts(e){let r={};for(let n of e){let u=this.readComputedArtifact(n);u&&(r[n]=u);}return r},writeStatusSnapshot(e){try{localStorage.setItem(this.STATUS_KEY,JSON.stringify(e));}catch(r){console.warn("Failed to write status snapshot to localStorage:",r);}},readStatusSnapshot(){try{let e=localStorage.getItem(this.STATUS_KEY);return e?JSON.parse(e):null}catch(e){return console.warn("Failed to read status snapshot from localStorage:",e),null}},clear(){let e=[];for(let r=0;r<localStorage.length;r++){let n=localStorage.key(r);n&&(n.startsWith(this.CARD_PREFIX)||n.startsWith(this.RUNTIME_OUT_PREFIX)||n===this.STATUS_KEY)&&e.push(n);}for(let r of e)localStorage.removeItem(r);}};function H(e,r={}){let n=Array.isArray(e)?{}:{id:e.id,title:e.title,mode:e.mode,positions:e.positions,settings:e.settings},u$1=Array.isArray(e)?e:e.nodes,o=new Map;for(let t of u$1){if(o.has(t.id))throw new Error(`Duplicate card ID: "${t.id}"`);o.set(t.id,b(t));}let h=new Set,S=r.taskExecutor,L=r.sourceAdapters??{},d=r.defaultSourceAdapter,m=null,A=(t,g)=>{let a={events:t,graph:g,nodes:v()};for(let w of h)w(a);},_=t=>async g=>{let a$1=o.get(t);if(!a$1)return "task-initiate-failure";let w={};for(let R of a$1.requires??[]){let y=g.state[R];if(!y||typeof y!="object")continue;let k=y.provides_data;!k||typeof k!="object"||Object.prototype.hasOwnProperty.call(k,R)&&(w[R]=k[R]);}let p={};if(a$1.source_defs&&a$1.source_defs.length>0){let R=L[t]??d,y=S?await S({card:a$1,input:g}):R?await R({card:a$1,input:g}):void 0;if(y&&typeof y=="object")for(let k of a$1.source_defs)Object.prototype.hasOwnProperty.call(y,k.bindTo)?p[k.bindTo]=y[k.bindTo]:a$1.source_defs.length===1&&(p[k.bindTo]=y);}let c={id:a$1.id,card_data:b(a$1.card_data??{}),requires:w,source_defs:a$1.source_defs,compute:a$1.compute};c._sourcesData=p,c.compute&&c.compute.length>0&&await a.run(c,{sourcesData:p});let T={};if(a$1.provides&&a$1.provides.length>0)for(let{bindTo:R,ref:y}of a$1.provides)T[R]=a.resolve(c,y);else T[a$1.id]={...c.card_data??{},...c.computed_values??{},...c._sourcesData??{}};let B={provides_data:T,card_data:c.card_data??{},computed_values:c.computed_values??{},fetched_sources:p,requires:w};return m?.resolveCallback(g.callbackToken,B),"task-initiated"},s={},f={};for(let[t,g]of o.entries())O(o,t),s[t]=E(g),f[t]=_(t);let l={id:n.id??`browser-board-${Date.now()}`,settings:{completion:"manual",execution_mode:"eligibility-mode",...n.settings??{},...r.graphSettings??{}},tasks:s},C=r.reactiveOptions?.onDrain,i=u(l,{...r.reactiveOptions??{},handlers:f,onDrain:(t,g,a)=>{C?.(t,g,a),A(t,g);}},r.executionId);m=i;function v(){let t=i.getState(),g=[];for(let[a,w]of o.entries()){let p=t.state.tasks[a]?.data,c=t.state.tasks[a],T={...w.card_data??{},...p&&typeof p.card_data=="object"?p.card_data:{}},B=c?.status==="running"?"loading":c?.status,R={...T,...B?{status:B}:{},...c?.lastUpdated?{lastRun:c.lastUpdated}:{},...c?.status==="failed"&&c.error?{error:c.error}:{}};g.push({id:a,card:b(w),card_data:R,requires:p&&typeof p.requires=="object"?b(p.requires):{},computed_values:p&&typeof p.computed_values=="object"?b(p.computed_values):{},runtime_state:c?b(c):{}});}return g}return {getGraph:()=>i,getState:()=>i.getState(),getSchedule:()=>i.getSchedule(),getNodes:()=>v(),getBoard:()=>({...n,nodes:v()}),subscribe(t){return h.add(t),t({events:[],graph:i.getState(),nodes:v()}),()=>h.delete(t)},addCard(t){if(o.has(t.id))throw new Error(`Card "${t.id}" already exists`);o.set(t.id,b(t)),O(o,t.id),i.registerHandler(t.id,_(t.id)),i.addNode(t.id,E(t));},upsertCard(t){o.set(t.id,b(t)),O(o,t.id),i.registerHandler(t.id,_(t.id)),i.addNode(t.id,E(t));},removeCard(t){o.delete(t),i.unregisterHandler(t),i.removeNode(t);},patchCardState(t,g){let a=o.get(t);if(!a)throw new Error(`Card "${t}" not found`);a.card_data={...a.card_data??{},...g},i.retrigger(t);},retrigger(t){i.retrigger(t);},retriggerAll(){i.retriggerAll(Array.from(o.keys()));},push(t){i.push(t);},pushAll(t){i.pushAll(t);},dispose(){h.clear(),i.dispose();}}}function G(e){return e==="running"||e==="in-progress"?"loading":e==="failed"?"error":"fresh"}function D(e){return e==="loading"?"in-progress":e==="error"?"failed":e==="stale"?"pending":e==="fresh"?"completed":"pending"}function M(e,r){let n=r&&typeof r=="object"&&!Array.isArray(r)?r:{};return {schema_version:n.schema_version||"v1",card_id:typeof n.card_id=="string"?n.card_id:e,card_data:n.card_data&&typeof n.card_data=="object"&&!Array.isArray(n.card_data)?structuredClone(n.card_data):{},computed_values:n.computed_values&&typeof n.computed_values=="object"&&!Array.isArray(n.computed_values)?structuredClone(n.computed_values):{}}}function P(e,r){if(!e||typeof e!="object")throw new Error("payload must be an object");if(!r)throw new Error("cardId is required");let u=(Array.isArray(e.cardDefinitions)?e.cardDefinitions:[]).find(t=>t.id===r);if(!u)throw new Error(`cardDefinitions has no entry with id ${r}`);let o=e.statusSnapshot&&typeof e.statusSnapshot=="object"?e.statusSnapshot:{},h=e.cardRuntimeById&&typeof e.cardRuntimeById=="object"?e.cardRuntimeById:{},S=e.dataObjectsByToken&&typeof e.dataObjectsByToken=="object"?e.dataObjectsByToken:{},d=(Array.isArray(o.cards)?o.cards:[]).find(t=>t.name===r),m=structuredClone(u),A=M(r,h[r]),s={...m.card_data&&typeof m.card_data=="object"&&!Array.isArray(m.card_data)?m.card_data:{},...A.card_data||{},status:G(d?.status),lastRun:d?.runtime?.last_transition_at??null};d?.error?.message&&(s.error=d.error.message);let f=d?{task_status:d.status??null,card_status:G(d.status),runtime:structuredClone(d.runtime??{}),error:d.error?structuredClone(d.error):null,blocked_by:Array.isArray(d.blocked_by)?structuredClone(d.blocked_by):[],requires_missing:Array.isArray(d.requires_missing)?structuredClone(d.requires_missing):[]}:{task_status:null,card_status:s.status??"fresh",runtime:{last_transition_at:s.lastRun??null},error:s.error?{message:s.error}:null,blocked_by:[],requires_missing:[]},l=Array.isArray(m.requires)?m.requires:[],C={};for(let[t,g]of Object.entries(S))C[t]=structuredClone(g);for(let t of l)Object.prototype.hasOwnProperty.call(C,t)||(C[t]=null);let v=(e.cardChatsByCardId&&typeof e.cardChatsByCardId=="object"?e.cardChatsByCardId:{})[r],q=v?{messages:Array.isArray(v.messages)?v.messages:[],receiving:!!v.receiving,processing:!!v.processing}:null;return {id:r,card:m,card_data:s,requires:C,computed_values:A.computed_values,runtime_state:f,card_chats:q}}function $(e){if(!e||typeof e!="object")throw new Error("payload must be an object");return (Array.isArray(e.cardDefinitions)?e.cardDefinitions:[]).map(n=>P(e,n.id))}function J({boardPath:e,cardDefinitions:r,runtimeModels:n,graphState:u}){let o=Array.isArray(r)?r:[],h=Array.isArray(n)?n:[],S=new Map(h.map(s=>[s.id,s])),d=u.state?.tasks??{},m={};for(let s of h)s?.id&&(m[s.id]={schema_version:"v1",card_id:s.id,card_data:structuredClone(s.card_data??{}),computed_values:structuredClone(s.computed_values??{})});let A={};for(let s of Object.keys(d)){let f=d[s]?.data?.provides_data;if(f&&typeof f=="object")for(let l of Object.keys(f))A[l]=structuredClone(f[l]);}let _=o.map(s=>{let f=S.get(s.id)??{},l=d[s.id],C=typeof l?.status=="string"?l.status:D(f.card_data?.status),i=typeof l?.error=="string"?l.error:typeof f.card_data?.error=="string"?f.card_data.error:null;return {name:s.id,status:C,...i?{error:{message:i,code:"TASK_FAILED",at:l?.failedAt??null,source:"browser-runtime"}}:{},requires:Array.isArray(s.requires)?s.requires:[],requires_satisfied:[],requires_missing:[],provides_declared:Array.isArray(s.provides)?s.provides.map(v=>v.bindTo):[s.id],provides_runtime:Object.keys(l?.data?.provides_data??{}).sort(),blocked_by:[],unblocks:[],runtime:{attempt_count:l?.executionCount??0,restart_count:l?.retryCount??0,in_progress_since:C==="in-progress"?l?.startedAt??null:null,last_transition_at:l?.lastUpdated??f.card_data?.lastRun??null,last_completed_at:l?.completedAt??null,last_restarted_at:l?.startedAt??null,status_age_ms:null}}});return {cardDefinitions:structuredClone(o),cardRuntimeById:m,dataObjectsByToken:A,statusSnapshot:{schema_version:"v1",meta:{board:{path:e??"browser-runtime"}},summary:{card_count:_.length,completed:_.filter(s=>s.status==="completed").length,eligible:0,pending:_.filter(s=>s.status==="pending").length,blocked:0,unresolved:0,failed:_.filter(s=>s.status==="failed").length,in_progress:_.filter(s=>s.status==="in-progress").length,orphan_cards:0,topology:{edge_count:0,max_fan_out_card:null,max_fan_out:0}},cards:_}}}export{F as a,H as b,P as c,$ as d,J as e};//# sourceMappingURL=chunk-YGKDQLYP.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {u}from'./chunk-VGT3TRQG.js';import {a}from'./chunk-JMDHDY6M.js';function b(e){return JSON.parse(JSON.stringify(e))}function E(e){let r=e.provides&&e.provides.length>0?e.provides.map(n=>n.bindTo):[e.id];return {requires:e.requires&&e.requires.length>0?[...e.requires]:void 0,provides:r,taskHandlers:[e.id],description:e.meta?.title??e.id}}function I(e){let r=new Map;for(let[n,u]of e.entries()){let o=u.provides&&u.provides.length>0?u.provides:[{bindTo:n,ref:"card_data"}];for(let h of o)r.set(h.bindTo,n);}return r}function O(e,r){let n=I(e),u=e.get(r);if(u){for(let o of u.requires??[])if(!n.has(o))throw new Error(`Card "${r}" requires token "${o}" but no card provides it`)}}var F={CARD_PREFIX:"yf:cards:",RUNTIME_OUT_PREFIX:"yf:runtime-out:cards:",STATUS_KEY:"yf:runtime-out:status",writeCard(e,r){try{localStorage.setItem(this.CARD_PREFIX+e,JSON.stringify(r));}catch(n){console.warn(`Failed to write card ${e} to localStorage:`,n);}},readCard(e){try{let r=localStorage.getItem(this.CARD_PREFIX+e);return r?JSON.parse(r):null}catch(r){return console.warn(`Failed to read card ${e} from localStorage:`,r),null}},readAllCards(e){let r={};for(let n of e){let u=this.readCard(n);u&&(r[n]=u);}return r},writeComputedArtifact(e){if(!(!e||!e.card_id))try{localStorage.setItem(this.RUNTIME_OUT_PREFIX+String(e.card_id),JSON.stringify(e));}catch(r){console.warn(`Failed to write computed artifact ${e.card_id}:`,r);}},readComputedArtifact(e){try{let r=localStorage.getItem(this.RUNTIME_OUT_PREFIX+e);return r?JSON.parse(r):null}catch(r){return console.warn(`Failed to read computed artifact ${e}:`,r),null}},readAllComputedArtifacts(e){let r={};for(let n of e){let u=this.readComputedArtifact(n);u&&(r[n]=u);}return r},writeStatusSnapshot(e){try{localStorage.setItem(this.STATUS_KEY,JSON.stringify(e));}catch(r){console.warn("Failed to write status snapshot to localStorage:",r);}},readStatusSnapshot(){try{let e=localStorage.getItem(this.STATUS_KEY);return e?JSON.parse(e):null}catch(e){return console.warn("Failed to read status snapshot from localStorage:",e),null}},clear(){let e=[];for(let r=0;r<localStorage.length;r++){let n=localStorage.key(r);n&&(n.startsWith(this.CARD_PREFIX)||n.startsWith(this.RUNTIME_OUT_PREFIX)||n===this.STATUS_KEY)&&e.push(n);}for(let r of e)localStorage.removeItem(r);}};function H(e,r={}){let n=Array.isArray(e)?{}:{id:e.id,title:e.title,mode:e.mode,positions:e.positions,settings:e.settings},u$1=Array.isArray(e)?e:e.nodes,o=new Map;for(let t of u$1){if(o.has(t.id))throw new Error(`Duplicate card ID: "${t.id}"`);o.set(t.id,b(t));}let h=new Set,S=r.taskExecutor,L=r.sourceAdapters??{},d=r.defaultSourceAdapter,m=null,A=(t,g)=>{let a={events:t,graph:g,nodes:v()};for(let w of h)w(a);},_=t=>async g=>{let a$1=o.get(t);if(!a$1)return "task-initiate-failure";let w={};for(let R of a$1.requires??[]){let y=g.state[R];if(!y||typeof y!="object")continue;let k=y.provides_data;!k||typeof k!="object"||Object.prototype.hasOwnProperty.call(k,R)&&(w[R]=k[R]);}let p={};if(a$1.source_defs&&a$1.source_defs.length>0){let R=L[t]??d,y=S?await S({card:a$1,input:g}):R?await R({card:a$1,input:g}):void 0;if(y&&typeof y=="object")for(let k of a$1.source_defs)Object.prototype.hasOwnProperty.call(y,k.bindTo)?p[k.bindTo]=y[k.bindTo]:a$1.source_defs.length===1&&(p[k.bindTo]=y);}let c={id:a$1.id,card_data:b(a$1.card_data??{}),requires:w,source_defs:a$1.source_defs,compute:a$1.compute};c._sourcesData=p,c.compute&&c.compute.length>0&&await a.run(c,{sourcesData:p});let T={};if(a$1.provides&&a$1.provides.length>0)for(let{bindTo:R,ref:y}of a$1.provides)T[R]=a.resolve(c,y);else T[a$1.id]={...c.card_data??{},...c.computed_values??{},...c._sourcesData??{}};let B={provides_data:T,card_data:c.card_data??{},computed_values:c.computed_values??{},fetched_sources:p,requires:w};return m?.resolveCallback(g.callbackToken,B),"task-initiated"},s={},f={};for(let[t,g]of o.entries())O(o,t),s[t]=E(g),f[t]=_(t);let l={id:n.id??`browser-board-${Date.now()}`,settings:{completion:"manual",execution_mode:"eligibility-mode",...n.settings??{},...r.graphSettings??{}},tasks:s},C=r.reactiveOptions?.onDrain,i=u(l,{...r.reactiveOptions??{},handlers:f,onDrain:(t,g,a)=>{C?.(t,g,a),A(t,g);}},r.executionId);m=i;function v(){let t=i.getState(),g=[];for(let[a,w]of o.entries()){let p=t.state.tasks[a]?.data,c=t.state.tasks[a],T={...w.card_data??{},...p&&typeof p.card_data=="object"?p.card_data:{}},B=c?.status==="running"?"loading":c?.status,R={...T,...B?{status:B}:{},...c?.lastUpdated?{lastRun:c.lastUpdated}:{},...c?.status==="failed"&&c.error?{error:c.error}:{}};g.push({id:a,card:b(w),card_data:R,requires:p&&typeof p.requires=="object"?b(p.requires):{},computed_values:p&&typeof p.computed_values=="object"?b(p.computed_values):{},runtime_state:c?b(c):{}});}return g}return {getGraph:()=>i,getState:()=>i.getState(),getSchedule:()=>i.getSchedule(),getNodes:()=>v(),getBoard:()=>({...n,nodes:v()}),subscribe(t){return h.add(t),t({events:[],graph:i.getState(),nodes:v()}),()=>h.delete(t)},addCard(t){if(o.has(t.id))throw new Error(`Card "${t.id}" already exists`);o.set(t.id,b(t)),O(o,t.id),i.registerHandler(t.id,_(t.id)),i.addNode(t.id,E(t));},upsertCard(t){o.set(t.id,b(t)),O(o,t.id),i.registerHandler(t.id,_(t.id)),i.addNode(t.id,E(t));},removeCard(t){o.delete(t),i.unregisterHandler(t),i.removeNode(t);},patchCardState(t,g){let a=o.get(t);if(!a)throw new Error(`Card "${t}" not found`);a.card_data={...a.card_data??{},...g},i.retrigger(t);},retrigger(t){i.retrigger(t);},retriggerAll(){i.retriggerAll(Array.from(o.keys()));},push(t){i.push(t);},pushAll(t){i.pushAll(t);},dispose(){h.clear(),i.dispose();}}}function G(e){return e==="running"||e==="in-progress"?"loading":e==="failed"?"error":"fresh"}function D(e){return e==="loading"?"in-progress":e==="error"?"failed":e==="stale"?"pending":e==="fresh"?"completed":"pending"}function M(e,r){let n=r&&typeof r=="object"&&!Array.isArray(r)?r:{};return {schema_version:n.schema_version||"v1",card_id:typeof n.card_id=="string"?n.card_id:e,card_data:n.card_data&&typeof n.card_data=="object"&&!Array.isArray(n.card_data)?structuredClone(n.card_data):{},computed_values:n.computed_values&&typeof n.computed_values=="object"&&!Array.isArray(n.computed_values)?structuredClone(n.computed_values):{}}}function P(e,r){if(!e||typeof e!="object")throw new Error("payload must be an object");if(!r)throw new Error("cardId is required");let u=(Array.isArray(e.cardDefinitions)?e.cardDefinitions:[]).find(t=>t.id===r);if(!u)throw new Error(`cardDefinitions has no entry with id ${r}`);let o=e.statusSnapshot&&typeof e.statusSnapshot=="object"?e.statusSnapshot:{},h=e.cardRuntimeById&&typeof e.cardRuntimeById=="object"?e.cardRuntimeById:{},S=e.dataObjectsByToken&&typeof e.dataObjectsByToken=="object"?e.dataObjectsByToken:{},d=(Array.isArray(o.cards)?o.cards:[]).find(t=>t.name===r),m=structuredClone(u),A=M(r,h[r]),s={...m.card_data&&typeof m.card_data=="object"&&!Array.isArray(m.card_data)?m.card_data:{},...A.card_data||{},status:G(d?.status),lastRun:d?.runtime?.last_transition_at??null};d?.error?.message&&(s.error=d.error.message);let f=d?{task_status:d.status??null,card_status:G(d.status),runtime:structuredClone(d.runtime??{}),error:d.error?structuredClone(d.error):null,blocked_by:Array.isArray(d.blocked_by)?structuredClone(d.blocked_by):[],requires_missing:Array.isArray(d.requires_missing)?structuredClone(d.requires_missing):[]}:{task_status:null,card_status:s.status??"fresh",runtime:{last_transition_at:s.lastRun??null},error:s.error?{message:s.error}:null,blocked_by:[],requires_missing:[]},l=Array.isArray(m.requires)?m.requires:[],C={};for(let[t,g]of Object.entries(S))C[t]=structuredClone(g);for(let t of l)Object.prototype.hasOwnProperty.call(C,t)||(C[t]=null);let v=(e.cardChatsByCardId&&typeof e.cardChatsByCardId=="object"?e.cardChatsByCardId:{})[r],q=v?{messages:Array.isArray(v.messages)?v.messages:[],receiving:!!v.receiving,processing:!!v.processing}:null;return {id:r,card:m,card_data:s,requires:C,computed_values:A.computed_values,runtime_state:f,card_chats:q}}function $(e){if(!e||typeof e!="object")throw new Error("payload must be an object");return (Array.isArray(e.cardDefinitions)?e.cardDefinitions:[]).map(n=>P(e,n.id))}function J({boardPath:e,cardDefinitions:r,runtimeModels:n,graphState:u}){let o=Array.isArray(r)?r:[],h=Array.isArray(n)?n:[],S=new Map(h.map(s=>[s.id,s])),d=u.state?.tasks??{},m={};for(let s of h)s?.id&&(m[s.id]={schema_version:"v1",card_id:s.id,card_data:structuredClone(s.card_data??{}),computed_values:structuredClone(s.computed_values??{})});let A={};for(let s of Object.keys(d)){let f=d[s]?.data?.provides_data;if(f&&typeof f=="object")for(let l of Object.keys(f))A[l]=structuredClone(f[l]);}let _=o.map(s=>{let f=S.get(s.id)??{},l=d[s.id],C=typeof l?.status=="string"?l.status:D(f.card_data?.status),i=typeof l?.error=="string"?l.error:typeof f.card_data?.error=="string"?f.card_data.error:null;return {name:s.id,status:C,...i?{error:{message:i,code:"TASK_FAILED",at:l?.failedAt??null,source:"browser-runtime"}}:{},requires:Array.isArray(s.requires)?s.requires:[],requires_satisfied:[],requires_missing:[],provides_declared:Array.isArray(s.provides)?s.provides.map(v=>v.bindTo):[s.id],provides_runtime:Object.keys(l?.data?.provides_data??{}).sort(),blocked_by:[],unblocks:[],runtime:{attempt_count:l?.executionCount??0,restart_count:l?.retryCount??0,in_progress_since:C==="in-progress"?l?.startedAt??null:null,last_transition_at:l?.lastUpdated??f.card_data?.lastRun??null,last_completed_at:l?.completedAt??null,last_restarted_at:l?.startedAt??null,status_age_ms:null}}});return {cardDefinitions:structuredClone(o),cardRuntimeById:m,dataObjectsByToken:A,statusSnapshot:{schema_version:"v1",meta:{board:{path:e??"browser-runtime"}},summary:{card_count:_.length,completed:_.filter(s=>s.status==="completed").length,eligible:0,pending:_.filter(s=>s.status==="pending").length,blocked:0,unresolved:0,failed:_.filter(s=>s.status==="failed").length,in_progress:_.filter(s=>s.status==="in-progress").length,orphan_cards:0,topology:{edge_count:0,max_fan_out_card:null,max_fan_out:0}},cards:_}}}export{F as a,H as b,P as c,$ as d,J as e};//# sourceMappingURL=chunk-4HIEOBJC.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-4HIEOBJC.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import {b as b$1}from'./chunk-NNSBBO5R.js';import {a,d,x as x$1,t,u,n,w,v,k,b as b$2,c,h as h$1,i,j,o,s,r,q as q$1,p as p$2}from'./chunk-ZWVT24YW.js';import {a as a$1,b}from'./chunk-44L64VQ2.js';import {q,p as p$1,a as a$2,u as u$1}from'./chunk-VGT3TRQG.js';import {a as a$3}from'./chunk-JMDHDY6M.js';async function Ye(t,o,n){let s=await t.tryAcquire();if(!s)return false;try{await o();}finally{await s();}return await n?.(),true}function ct(t){return typeof t=="object"&&t!==null&&"then"in t&&typeof t.then=="function"}function ge(t,o){return ct(t)?t.then(o):o(t)}function Xe(t,o){let n={...t};for(let[s,d]of Object.entries(o))d!==null&&typeof d=="object"&&!Array.isArray(d)&&n[s]!==null&&typeof n[s]=="object"&&!Array.isArray(n[s])?n[s]=Xe(n[s],d):n[s]=d;return n}function pe(t,o,n){if(o.length===0)return t;let[s,...d]=o;if(d.length===0)return {...t,[s]:n};let g=t[s]!==null&&typeof t[s]=="object"&&!Array.isArray(t[s])?t[s]:{};return {...t,[s]:pe(g,d,n)}}function Ze(t){return {read:n=>t.read(n),get(n,s){return ge(t.read(n),d=>{if(d===null)return null;let g=d;for(let c of s.split(".").filter(Boolean)){if(g===null||typeof g!="object"||Array.isArray(g))return null;g=g[c]??null;}return g??null})},write:(n,s)=>t.write(n,s),delete:n=>t.delete(n),listKeys:n=>t.listKeys(n),shallowMerge(n,s){return ge(t.read(n),d=>t.write(n,{...d??{},...s}))},deepMerge(n,s){return ge(t.read(n),d=>t.write(n,Xe(d??{},s)))},patch(n,s,d){return ge(t.read(n),g=>{let c=s.split(".").filter(Boolean);return t.write(n,pe(g??{},c,d))})}}}function et(t){return Ze(t)}function tt(t,o){return {async readIndex(){return await t.read("_index")},writeIndex(n){return t.write("_index",n)},async readCard(n){return await t.read(n)},async writeCard(n,s){return await t.write(n,s),o(s)},removeCard(n){return t.delete(n)},async cardExists(n){return await t.read(n)!==null},defaultCardKey(n){return n}}}function rt(t,o){async function n(){return await t.readIndex()??{}}return {async readCard(s){let d=(await n())[s];return !d||!await t.cardExists(d.key)?null:await t.readCard(d.key)},async readCardKey(s){return (await n())[s]?.key??null},async readAllCards(){let s=[];for(let[d,g]of Object.entries(await n())){if(!await t.cardExists(g.key))continue;let c=await t.readCard(g.key);c?s.push(c):o?.(`[card-store] could not read card "${d}" at key "${g.key}"`);}return s},async readChecksumIndex(){let s={};for(let[d,g]of Object.entries(await n()))s[d]=g.checksum;return s},async changedSince(s){let d=await n(),g=[];for(let[c,w]of Object.entries(d))s[c]!==w.checksum&&g.push(c);for(let c of Object.keys(s))d[c]||g.push(c);return g},async validateUpsert(s,d){let g=await n(),c=g[s],w=Object.entries(g).find(([,v])=>v.key===d);return c&&c.key!==d?{ok:false,error:`Card id "${s}" is already mapped to key "${c.key}", cannot remap to "${d}"`}:w&&w[0]!==s?{ok:false,error:`Key "${d}" is already mapped to card id "${w[0]}", cannot remap to "${s}"`}:{ok:true}},async writeCard(s,d,g){let c=await n(),w=g??c[s]?.key??t.defaultCardKey(s),v=await t.writeCard(w,d);c[s]={key:w,checksum:v,updatedAt:new Date().toISOString()},await t.writeIndex(c);},async patchCard(s,d,g){let c=await n(),w=c[s];if(!w||!await t.cardExists(w.key))throw new Error(`card "${s}" not found`);let v=await t.readCard(w.key);if(!v||typeof v!="object"||Array.isArray(v))throw new Error(`card "${s}" is not patchable`);let B=String(d||"").split(".").filter(Boolean),te=pe(v,B,g),O=await t.writeCard(w.key,te);c[s]={key:w.key,checksum:O,updatedAt:new Date().toISOString()},await t.writeIndex(c);},async removeCard(s){let d=await n(),g=d[s];g&&(await t.removeCard(g.key),delete d[s],await t.writeIndex(d));},readIndex(){return n()}}}function Ct(t,o){return a(t,o)}function ht(t,o,n){return {blob:t,kv:o,journal:n}}function h(t){return t!==void 0?{status:"success",data:t}:{status:"success"}}function p(t){return {status:"fail",error:t}}function P(t){return {status:"error",error:t instanceof Error?t.message:String(t)}}function x(){return new Date().toISOString()}function lt(t){let o=new TextEncoder().encode(t),n=Array.from(o,s=>String.fromCharCode(s)).join("");return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function st(t){let o=t.replace(/-/g,"+").replace(/_/g,"/"),n=o+"=".repeat((4-o.length%4)%4),s=atob(n),d=Uint8Array.from(s,g=>g.charCodeAt(0));return new TextDecoder().decode(d)}function ye(t){try{let o=JSON.parse(st(t));return typeof o?.t=="string"?{taskName:o.t}:null}catch{return null}}function nt(t){return lt(JSON.stringify(t))}function ot(t){try{let o=JSON.parse(st(t));return typeof o?.cbk=="string"&&typeof o?.cid=="string"&&typeof o?.b=="string"&&typeof o?.d=="string"?o:null}catch{return null}}function mt(t){return j(t,o,()=>({_sources:{}}))}function ft(t,o){return h$1(t,o)}function gt(t){return k(t)}function pt(t,o){return i(t,o)}function yt(t,o,n,s$1,d,g){return async c=>{let w=[],v=await n.cardStore.readCard(c.nodeId);if(!v)return "task-initiate-failure";let B=v.id,te=v.card_data??{},O=v.source_defs??[],re=O.filter(m=>m.optionalForCompletionGating!==true),b=await n.cardRuntimeStore.readRuntime(B),_=false,$=async()=>{_&&(await n.cardRuntimeStore.writeRuntime(B,b),_=false);},T=m=>p$2(b._sources[m]),D=(m,f)=>{b._sources[m]=p$2(f),_=true;},se=c.taskState?.executionCount??0;if(b._lastExecutionCount!==se&&(b._sources={},b._lastExecutionCount=se,_=true),c.update){let m=c.update.outputFile;if(m){let f=T(m);if(c.update.failure){let R=c.update.rqt??f.lastRequestedToken??f.queueRequestedToken;R&&D(m,s(f,R));}else {let R=c.update.rqt;if(!f.lastCompletedToken||R>f.lastCompletedToken){let r$1=typeof c.update.deliveryToken=="string"?c.update.deliveryToken:void 0,e=r$1?await n.fetchedSourcesStore.commitSourceData(B,m,r$1):false;D(m,e?r(f,R):s(f,R));}}await $();}}let J={};for(let m of O){if(!m.outputFile)continue;let f=await n.fetchedSourcesStore.readSourceData(B,m.outputFile);f!==null&&(J[m.bindTo]=f);}let H={};for(let[m,f]of Object.entries(c.state??{}))if(f!==null&&typeof f=="object"&&!Array.isArray(f)){let R=f[m];H[m]=R!==void 0?R:f;}else H[m]=f;let L={id:B,card_data:{...te},requires:H,source_defs:O,compute:v.compute};L._sourcesData=J,v.compute&&a$3.runSync(L,{sourcesData:J}),(d??(()=>{}))(B,L.computed_values??{});let ne=a$3.enrichSourcesSync(Array.isArray(v.source_defs)?v.source_defs:void 0,{card_data:v.card_data,requires:H}),F={...v,source_defs:Array.isArray(ne)?ne.map(m=>({...m,boardDir:typeof m.boardDir=="string"&&m.boardDir?m.boardDir:t.value})):ne},M=x(),G=c.update?void 0:M,W=re.filter(m=>{let f=m.outputFile;if(typeof f!="string"||!f)return true;let R=T(f);G&&(R={...R,queueRequestedToken:G},D(f,R));let r=R.queueRequestedToken??R.lastRequestedToken??M;return q$1(R,r)==="dispatch"});if(await $(),W.length>0){let m=false,f=M;for(let R of W){let r=R.outputFile;if(typeof r!="string"||!r)continue;let e=T(r),u=e.queueRequestedToken??M;D(r,{...e,lastRequestedToken:u}),f=u,m=true;}return m&&await $(),m&&(w.push({taskKind:"source-fetch",payload:{boardRef:a$1(t),enrichedCard:F,callbackToken:c.callbackToken,rqt:f}}),await n.executionRequestStore.appendEntries(o,w)),"task-initiated"}if(re.some(m=>{let f=m.outputFile;if(typeof f!="string"||!f)return false;let R=T(f),r=R.queueRequestedToken??R.lastRequestedToken??M;return q$1(R,r)==="in-flight"}))return "task-initiated";let Re=v.provides??[],oe={};for(let{bindTo:m,ref:f}of Re)oe[m]=a$3.resolve(L,f);return (g??(()=>{}))(oe),O.filter(m=>{if(m.optionalForCompletionGating!==true)return false;let f=T(m.outputFile);return !f.lastRequestedToken||!f.lastCompletedToken?true:f.lastCompletedToken<=f.lastRequestedToken}).length>0&&w.push({taskKind:"source-fetch",payload:{boardRef:a$1(t),enrichedCard:F,callbackToken:c.callbackToken,rqt:M}}),s$1(c.nodeId,oe),w.length>0&&await n.executionRequestStore.appendEntries(o,w),"task-initiated"}}function _t(t$1,o,n$1={}){d(o.callbackTransport,"createAsyncBoardLiveCardsPublic");let s=o.callbackTransport,d$1=o.warn??(()=>{}),g=a$1(t$1),c$1=null,w$1=n$1.boardRuntimeStoreRef,v$1=n$1.scratchStoreRef,B=n$1.taskExecutorRef,te=n$1.chatHandlerFlow;function O(){if(!w$1)throw new Error(`Board at ${t$1.value} has no board runtime store configured. Pass boardRuntimeStoreRef at construction or init.`);return w$1}function re(r){if(r.length!==0)try{return Promise.resolve(o.publishBoardChangeNotifications?.(r)).catch(e=>{d$1(`[async-board-live-cards-public] publishBoardChangeNotifications failed: ${e instanceof Error?e.message:String(e)}`);})}catch(e){d$1(`[async-board-live-cards-public] publishBoardChangeNotifications failed: ${e instanceof Error?e.message:String(e)}`);return}}let b$3=()=>b$1(o.kvStorageForRef(O())),_=t$1.value,$=()=>b$2(a(()=>o.kvStorageForRef(O()),o.hashFn),"v1"),T=async()=>{let r=await b$3().readOutputsStoreRef();if(!r)throw new Error(`Board at ${t$1.value} has no outputs store configured.`);return gt(o.kvStorageForRef(r))},D=async()=>{let r=await b$3().readCardStoreRef();if(!r)throw new Error(`Board at ${t$1.value} has no card store configured.`);let e=o.kvStorageForRef(r);return rt(tt(et(e),o.hashFn),d$1)};async function se(){return !!(await $().readSnapshot(_)).values[n]}async function J(){let r=await $().readSnapshot(_);if(!r.values[n])throw new Error(`Board not initialized at ${t$1.value}`);return w(r.values)}async function H(r,e){let u=await $().commitSnapshot(_,{schemaVersion:"v1",expectedVersion:e,deleteKeys:[],shallowMerge:v(r)});if(!u.ok)throw new Error(`Snapshot commit failed (version mismatch): expected=${e??"null"} current=${u.currentVersion??"null"}`)}let L=()=>c(o.journalStorageForRef(O()));async function ne(){return B??await b$3().readTaskExecutorRef()}async function F(r){await L().appendEvent(r);}async function M(){let r=await b$3().readFetchedSourcesStoreRef();if(!r)throw new Error(`Board at ${t$1.value} has no fetched sources store configured. Run: init --fetched-sources-store-ref <b64-ref>`);return r}async function G(){return o.blobStorageForRef(await M())}async function W(){return ft(await G(),r=>o.resolveBlob(r))}async function ke(r){let e=(await G()).keyRef?.(r);if(!e)throw new Error("configured fetched-sources store does not support keyRef");let u=await Promise.resolve(e);return a$1(u)}async function Re(){let r=pt(o.kvStorageForRef(O()),async(i,l)=>{let S=i.payload,I=(S.enrichedCard??{}).id??S.cardId??"unknown";await F({type:"task-failed",taskName:I,error:l,timestamp:x()});}),e=mt(o.kvStorageForRef(O())),u=await G(),a=await W(),k=await D(),C=await T(),A=new Map,y=new Map,z=[],Q=[],V=[],U=new Map,Y=new Set,Se={async readRuntime(i){return A.get(i)??await e.readRuntime(i)},async writeRuntime(i,l){A.set(i,l),Ce[i]=l;}},at={async readSourceData(i,l){let S=`${i}/${l}`;return y.has(S)?y.get(S):await a.readSourceData(i,l)},ingestSourceDataStaged(i,l,S,E){return a.ingestSourceDataStaged(i,l,S,E)},async commitSourceData(i,l,S){let E=`${i}/.staged/${S}/${l}`,I=await u.read(E);if(I==null){let j=await Promise.resolve(u.keyRef?.(E));j&&(I=await o.resolveBlob(j));}if(I==null)return false;let K=`${i}/${l}`,Z=I.trim();try{y.set(K,JSON.parse(Z));}catch{y.set(K,Z);}return z.push({cardId:i,outputFile:l,deliveryToken:S}),true},async hasSource(i,l){let S=`${i}/${l}`;return y.has(S)||await a.hasSource(i,l)},async listSources(i){let l=await a.listSources(i),S=[...y.keys()].filter(E=>E.startsWith(`${i}/`)).map(E=>E.slice(`${i}/`.length));return [...new Set([...l,...S])]}},we=await J(),it=q(we.graph),Ce={...we.runtimeByCardId},{events:ut,newCursor:he}=await L().readEntriesAfterCursor(we.lastDrainedJournalId),ae=ut,ie=u$1(it,{handlers:{"card-handler":yt(t$1,he,{cardStore:k,cardRuntimeStore:Se,fetchedSourcesStore:at,executionRequestStore:r},(i,l)=>{ae.push({type:"task-completed",taskName:i,data:l,timestamp:x()});},(i,l)=>{Q.push({cardId:i,values:l});},i=>{V.push(i);})},onNodeRemoved:i=>{U.delete(i),A.delete(i),delete Ce[i],Y.add(i);}});for(;ae.length>0;){let i=ae;ae=[];for(let l of i)if(l.type==="task-restart"){let S=await k.readCard(l.taskName);S&&U.set(l.taskName,S);}ie.pushAll(i),await ie.waitForHandlers();}let Fe=ie.getState();await ie.dispose({wait:true}),await H({lastDrainedJournalId:he,graph:p$1(Fe),runtimeByCardId:Ce},(await $().readSnapshot(_)).version);for(let{cardId:i,values:l}of Q)await C.writeComputedValues(i,l);for(let i of V)await C.writeDataObjects(i);for(let[i,l]of A)await e.writeRuntime(i,l);for(let i of z)await a.commitSourceData(i.cardId,i.outputFile,i.deliveryToken);let qe=t(g,Fe);await C.writeStatusSnapshot(qe);let ee=[];for(let{cardId:i,values:l}of Q)ee.push({kind:"computed_values",cardId:i,values:l});for(let i of V)for(let[l,S]of Object.entries(i))ee.push({kind:"data_object",key:l,payload:S});for(let[i,l]of U)ee.push({kind:"card_refreshed",cardId:i,card:l});for(let i of Y)ee.push({kind:"card_removed",cardId:i});ee.push({kind:"status",status:qe}),await re(ee);let X=await ne();if(!X)return;let Te=o.supportsDirectSourceOutput?.(X)===true;await r.dispatchEntriesForJournalId(he,async i=>{if(i.taskKind!=="source-fetch"){d$1(`[async-process-accumulated-events] unknown taskKind "${i.taskKind}" \u2014 skipping`);return}let l=i.payload,S=l.enrichedCard?.id??"unknown",E=l.enrichedCard?.source_defs??[];if(X.howToRun==="queue-storage"&&Te){try{let I=await b$3().readQueueStoreRef();if(!I)throw new Error(`Board at ${t$1.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let K=o.queueStorageForRef(I,"task-executor"),Z=typeof X.extra?.boardId=="string"?X.extra.boardId:void 0,j=[];for(let N of E){if(!N.outputFile)continue;let ue=o.genId(),de=`${S}/.staged/${ue}/${N.outputFile}`,Oe=await Promise.resolve(u.keyRef?.(de));if(!Oe)continue;let Ee={ref:a$1(Oe),deliveryToken:ue,outputFile:N.outputFile,cardId:S},dt=nt({cbk:l.callbackToken,rg:t$1.value,br:a$1(t$1),cid:S,b:N.bindTo,d:N.outputFile,cs:void 0,rqt:l.rqt,dt:Ee.deliveryToken});j.push({...Z?{boardId:Z}:{},ref:X,args:{source_def:N,base_ref:a$1(t$1),callback:s.createCallback(dt),output:Ee}});}j.length>0&&await K.enqueueMany(j);}catch(I){await F({type:"task-failed",taskName:S,error:I instanceof Error?I.message:String(I),timestamp:x()});}return}for(let I of E){if(!I.outputFile)continue;let K;if(Te){let N=o.genId(),ue=`${S}/.staged/${N}/${I.outputFile}`,de=await Promise.resolve(u.keyRef?.(ue));de&&(K={ref:a$1(de),deliveryToken:N,outputFile:I.outputFile,cardId:S});}let Z=nt({cbk:l.callbackToken,rg:t$1.value,br:a$1(t$1),cid:S,b:I.bindTo,d:I.outputFile,cs:void 0,rqt:l.rqt,...K?{dt:K.deliveryToken}:{}}),j=await o.dispatchExecution(X,{source_def:I,base_ref:a$1(t$1),callback:s.createCallback(Z),...K?{output:K}:{}});j.dispatched||await F({type:"task-failed",taskName:S,error:j.error??"dispatch failed",timestamp:x()});}});}async function oe(){try{let r=async()=>{let u=await J(),{events:a}=await L().readEntriesAfterCursor(u.lastDrainedJournalId);a.length>0&&await m();},e=await Ye(o.lock,Re,r);return h({ran:e!==!1})}catch(r){return P(r)}}async function xe(){return c$1||(c$1=oe().finally(()=>{c$1=null;}),c$1)}async function m(){let r=await b$3().readQueueStoreRef();if(!r)throw new Error(`Board at ${t$1.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let e=o.queueStorageForRef(r,"process-accumulated");e.enqueueIfAbsent?await e.enqueueIfAbsent({boardRef:a$1(t$1)},`process-accumulated:${a$1(t$1)}`):await e.enqueue({boardRef:a$1(t$1)}),await o.requestProcessAccumulated?.();}async function f(){let r=await b$3().readQueueStoreRef();if(!r)throw new Error(`Board at ${t$1.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let e=o.queueStorageForRef(r,"process-accumulated");for(;;){let u=await e.lease({max:64,visibilityMs:1e3});if(u.length<=0)return;for(let a of u)await e.ack(a.id,a.leaseToken);if(u.length<64)return}}function R(){m();}return {async init(r){try{let e=r.params?.cardStoreRef;if(!e)return p("init requires params.cardStoreRef");if(w$1=r.params?.boardRuntimeStoreRef,!w$1)return p("init requires params.boardRuntimeStoreRef");let u$1=r.params?.outputsStoreRef;if(!u$1)return p("init requires params.outputsStoreRef");let a=r.params?.queueStoreRef;if(!a)return p("init requires params.queueStoreRef");let k=r.params?.fetchedSourcesStoreRef;if(!k)return p("init requires params.fetchedSourcesStoreRef");if(v$1=r.params?.scratchStoreRef,!v$1)return p("init requires params.scratchStoreRef");let C=r.params?.chatStoreRef;if(!C)return p("init requires params.chatStoreRef");let A=r.params?.artifactsStoreRef;if(!A)return p("init requires params.artifactsStoreRef");await se()||await H({lastDrainedJournalId:"",graph:p$1(a$2(u)),runtimeByCardId:{}},null);let y=b$3();return await y.writeBoardRuntimeStoreRef(w$1),await y.writeCardStoreRef(e),await y.writeOutputsStoreRef(u$1),await y.writeQueueStoreRef(a),await y.writeFetchedSourcesStoreRef(k),await y.writeChatStoreRef(C),await y.writeArtifactsStoreRef(A),await(await T()).writeStatusSnapshot(t(g,q((await J()).graph))),h()}catch(e){return P(e)}},async status(r){try{let e=await T(),u=await e.readStatusSnapshot();return u||(u=t(g,q((await J()).graph)),await e.writeStatusSnapshot(u)),h(u)}catch(e){return P(e)}},async getCardStoreRef(r){try{let e=await b$3().readCardStoreRef();return e?h({storeRef:e}):p(`Board at ${t$1.value} has no card store configured`)}catch(e){return P(e)}},async getBoardRuntimeStoreRef(r){try{return h({storeRef:w$1??null})}catch(e){return P(e)}},async getOutputsStoreRef(r){try{let e=await b$3().readOutputsStoreRef();return e?h({storeRef:e}):p(`Board at ${t$1.value} has no outputs store configured`)}catch(e){return P(e)}},async getScratchStoreRef(r){try{return h({storeRef:v$1??null})}catch(e){return P(e)}},async getChatStoreRef(r){try{return h({storeRef:await b$3().readChatStoreRef()})}catch(e){return P(e)}},async getArtifactsStoreRef(r){try{return h({storeRef:await b$3().readArtifactsStoreRef()})}catch(e){return P(e)}},async getFetchedSourcesStoreRef(r){try{return h({storeRef:await b$3().readFetchedSourcesStoreRef()})}catch(e){return P(e)}},async getConfig(r){try{let e=r.params?.key;if(!e)return p("getConfig requires params.key");let u=b$3(),a;switch(e){case "task-executor":a=B??null;break;case "chat-handler-flow":a=te??null;break;case "board-runtime-store-ref":a=await u.readBoardRuntimeStoreRef();break;case "card-store-ref":a=await u.readCardStoreRef();break;case "outputs-store-ref":a=await u.readOutputsStoreRef();break;case "scratch-store-ref":a=v$1??null;break;case "chat-store-ref":a=await u.readChatStoreRef();break;case "artifacts-store-ref":a=await u.readArtifactsStoreRef();break;case "fetched-sources-store-ref":a=await u.readFetchedSourcesStoreRef();break;default:return p(`getConfig: unknown key "${e}"`)}return h({value:a})}catch(e){return P(e)}},async getOutputsDataObject(r){try{let e=r.params?.key;return e?h(await(await T()).readDataObject(e)):p("getOutputsDataObject requires params.key")}catch(e){return P(e)}},async getAllOutputsDataObjects(r){try{return h(await(await T()).readAllDataObjects())}catch(e){return P(e)}},async getOutputsComputedValues(r){try{let e=r.params?.key;return e?h(await(await T()).readComputedValues(e)):p("getOutputsComputedValues requires params.key")}catch(e){return P(e)}},async getAllOutputsComputedValues(r){try{return h(await(await T()).readAllComputedValues())}catch(e){return P(e)}},async getOutputsFetchedSources(r){try{let e=r.params?.key;if(!e)return p("getOutputsFetchedSources requires params.key");let u=await(await W()).listSources(e),a={};for(let k of u)a[k]=await ke(`${e}/${k}`);return h(a)}catch(e){return P(e)}},async getAllOutputsFetchedSources(r){try{let e=await W(),u=await(await G()).listKeys(),a=new Set;for(let C of u){let A=C.indexOf("/");A>0&&!C.includes("/.staged/")&&a.add(C.slice(0,A));}let k={};for(let C of a){let A=await e.listSources(C);if(A.length!==0){k[C]={};for(let y of A)k[C][y]=await ke(`${C}/${y}`);}}return h(k)}catch(e){return P(e)}},async addCardFiles(r){try{let e=r.params?.cardId;if(!e)return p("addCardFiles requires params.cardId");let u=await D(),a=await u.readCard(e);if(!a)return p(`card "${e}" not found`);let k=r.body,C=Array.isArray(k)?k:k&&typeof k=="object"&&Array.isArray(k.files)?k.files:k!=null?[k]:null;if(!C||C.length===0)return p("addCardFiles requires a file metadata object, array, or body.files array");let A=a.card_data&&typeof a.card_data=="object"&&!Array.isArray(a.card_data)?a.card_data:{},y=Array.isArray(A.files)?A.files:[],z=[...y,...C],Q=C.map((U,Y)=>({idx:y.length+Y,entry:U}));await u.writeCard(e,{...a,card_data:{...A,files:z}});let V=await this.cardRefreshedNotify({params:{cardId:e}});return V.status!=="success"?V:h({cardId:e,files_added:Q,notified:!0})}catch(e){return P(e)}},async cardRefreshedNotify(r){try{let e=r.params?.cardId;if(!e)return p("cardRefreshedNotify requires params.cardId");let u=await(await D()).readCard(e);return u?(await re([{kind:"card_refreshed",cardId:e,card:u}]),h({cardId:e,notified:!0})):p(`Card "${e}" not found in board at ${t$1.value}`)}catch(e){return P(e)}},async removeCard(r){try{let e=r.params?.id;if(!e)return p("removeCard requires params.id");try{await o.kvStorage("card-upsert").delete(e);}catch{}return await F({type:"task-removal",taskName:e,timestamp:x()}),R(),h()}catch(e){return P(e)}},async retrigger(r){try{let e=r.params?.id;return e?(await F({type:"task-restart",taskName:e,timestamp:x()}),R(),h()):p("retrigger requires params.id")}catch(e){return P(e)}},async processAccumulatedEvents(r){return await f(),xe()},async upsertCard(r){try{let e=r.params?.cardId,u=r.params?.all,a=!!r.params?.restart;if(!e&&!u)return p("upsertCard requires --card-id <id> or --all");let k=await D(),C=u?(await k.readAllCards()).map(y=>y.id):[e];for(let y of C)if(!await k.readCard(y))return p(`Card "${y}" not found in board at ${t$1.value}`);let A=o.kvStorage("card-upsert");for(let y of C){let z=await k.readCard(y);if(!z)continue;let Q=x$1(z),V=o.hashFn(Q),U=await A.read(y),Y=U?.taskConfigHash!==V;if(!(!Y&&!a)){if(Y){let Se=U?.blobRef??await k.readCardKey(y)??y;await F({type:"task-upsert",taskName:y,taskConfig:Q,timestamp:x()}),await A.write(y,{blobRef:Se,taskConfigHash:V,updatedAt:x()});}a&&await F({type:"task-restart",taskName:y,timestamp:x()});}}return R(),h()}catch(e){return P(e)}},async taskFailed(r){try{let e=r.params?.token;if(!e)return p("taskFailed requires params.token");let u=r.params?.error??"unknown error",a=ye(e);return a?(await F({type:"task-failed",taskName:a.taskName,error:u,timestamp:x()}),R(),h()):p("Invalid callback token")}catch(e){return P(e)}},async taskProgress(r){try{let e=r.params?.token;if(!e)return p("taskProgress requires params.token");let u=(r.body??{}).update??{},a=ye(e);return a?(await F({type:"task-progress",taskName:a.taskName,update:u,timestamp:x()}),R(),h()):p("Invalid callback token")}catch(e){return P(e)}},async sourceDataFetched(r){try{let e=r.params?.token,u=r.params?.ref;if(!e)return p("sourceDataFetched requires params.token");if(!u)return p("sourceDataFetched requires params.ref");let a=ot(e);if(!a)return p("Invalid source token");let k=await W(),C=a.dt||o.genId();a.dt||await k.ingestSourceDataStaged(a.cid,a.d,b(u),C);let A=ye(a.cbk);return A?(await F({type:"task-progress",taskName:A.taskName,update:{bindTo:a.b,outputFile:a.d,fetchedAt:x(),deliveryToken:C,sourceChecksum:a.cs,rqt:a.rqt},timestamp:x()}),R(),h()):p("Invalid callback token embedded in source token")}catch(e){return P(e)}},async sourceDataFetchFailure(r){try{let e=r.params?.token,u=r.params?.reason??"unknown";if(!e)return p("sourceDataFetchFailure requires params.token");let a=ot(e);if(!a)return p("Invalid source token");let k=ye(a.cbk);return k?(await F({type:"task-progress",taskName:k.taskName,update:{bindTo:a.b,outputFile:a.d,failure:!0,reason:u,sourceChecksum:a.cs,rqt:a.rqt},timestamp:x()}),R(),h()):p("Invalid callback token embedded in source token")}catch(e){return P(e)}}}}
|
|
2
|
+
export{Ye as a,et as b,tt as c,rt as d,Ct as e,ht as f,_t as g};//# sourceMappingURL=chunk-7QQFDYBM.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-7QQFDYBM.js.map
|