yaml-flow 8.11.5 → 8.11.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/browser/adapters/localstorage-storage.js +1 -1
  2. package/browser/asset-integrity.json +4 -4
  3. package/browser/board-sse-state.js +2 -0
  4. package/browser/server-runtime-controlface.js +1 -1
  5. package/examples/board-container/board-container-lifecycle-example.js +67 -0
  6. package/lib/board-container-lifecycle-D5gz6kB1.d.cts +57 -0
  7. package/lib/board-container-lifecycle-D5gz6kB1.d.ts +57 -0
  8. package/lib/board-live-cards-node.cjs +8 -8
  9. package/lib/board-live-cards-node.d.cts +24 -9
  10. package/lib/board-live-cards-node.d.ts +24 -9
  11. package/lib/board-live-cards-node.js +8 -8
  12. package/lib/{board-live-cards-public-async-U98IXUBx.d.ts → board-live-cards-public-async-D72v-MTi.d.ts} +1 -1
  13. package/lib/{board-live-cards-public-async-Cl0M3j5P.d.cts → board-live-cards-public-async-DtgoCVRv.d.cts} +1 -1
  14. package/lib/board-live-cards-public.cjs +1 -1
  15. package/lib/board-live-cards-public.d.cts +4 -4
  16. package/lib/board-live-cards-public.d.ts +4 -4
  17. package/lib/board-live-cards-public.js +1 -1
  18. package/lib/board-live-cards-server-runtime.cjs +1 -1
  19. package/lib/board-live-cards-server-runtime.d.cts +3 -3
  20. package/lib/board-live-cards-server-runtime.d.ts +3 -3
  21. package/lib/board-live-cards-server-runtime.js +1 -1
  22. package/lib/{board-platform-adapter-async-ByBRFn1G.d.ts → board-platform-adapter-async-CVvZYqNy.d.ts} +2 -2
  23. package/lib/{board-platform-adapter-async-DjBwE0m9.d.cts → board-platform-adapter-async-O7EUvJ3W.d.cts} +2 -2
  24. package/lib/board-sse-state.cjs +2 -0
  25. package/lib/board-sse-state.d.cts +19 -0
  26. package/lib/board-sse-state.d.ts +19 -0
  27. package/lib/board-sse-state.js +2 -0
  28. package/lib/board-state-reducer.cjs +1 -1
  29. package/lib/board-state-reducer.js +1 -1
  30. package/lib/{chunk-WE7JOO4T.cjs → chunk-3XPY7CCM.cjs} +2 -2
  31. package/lib/chunk-73LKIKD3.cjs +2 -0
  32. package/lib/chunk-7SBE7A6E.cjs +2 -0
  33. package/lib/{chunk-7UJQMFVS.js → chunk-AN7MLI7X.js} +2 -2
  34. package/lib/chunk-CAQHA4GK.js +2 -0
  35. package/lib/chunk-CJQEM63S.cjs +2 -0
  36. package/lib/{chunk-WRMOGPRG.cjs → chunk-CSHNTZW4.cjs} +2 -2
  37. package/lib/chunk-F3A3ZNF6.js +2 -0
  38. package/lib/{chunk-CODPG5MY.js → chunk-HKPVF5UI.js} +3 -3
  39. package/lib/chunk-IXZV5BS5.js +2 -0
  40. package/lib/{chunk-5RUSICUC.cjs → chunk-K5TEZRZK.cjs} +3 -3
  41. package/lib/{chunk-6MD6FVE3.js → chunk-PEJRTZU3.js} +2 -2
  42. package/lib/{chunk-QKWQ4HRE.js → chunk-RKLEBQUG.js} +3 -3
  43. package/lib/{chunk-ZWXZ5DBX.cjs → chunk-TUQ6JBER.cjs} +3 -3
  44. package/lib/{chunk-BQJVCCFU.cjs → chunk-U5BGE52X.cjs} +2 -2
  45. package/lib/{chunk-HOSD6UHA.js → chunk-X32SJDLT.js} +2 -2
  46. package/lib/cloud-storage.cjs +1 -1
  47. package/lib/cloud-storage.d.cts +2 -2
  48. package/lib/cloud-storage.d.ts +2 -2
  49. package/lib/cloud-storage.js +1 -1
  50. package/lib/firestore-storage/index.cjs +1 -1
  51. package/lib/firestore-storage/index.d.cts +1 -1
  52. package/lib/firestore-storage/index.d.ts +1 -1
  53. package/lib/firestore-storage/index.js +1 -1
  54. package/lib/index.cjs +2 -2
  55. package/lib/index.d.cts +1 -0
  56. package/lib/index.d.ts +1 -0
  57. package/lib/index.js +1 -1
  58. package/lib/localstorage-storage/index.cjs +1 -1
  59. package/lib/localstorage-storage/index.d.cts +1 -1
  60. package/lib/localstorage-storage/index.d.ts +1 -1
  61. package/lib/localstorage-storage/index.js +1 -1
  62. package/lib/notification-consumer/index.cjs +1 -1
  63. package/lib/notification-consumer/index.js +1 -1
  64. package/lib/server-jobs-queue-runner/index.cjs +1 -1
  65. package/lib/server-jobs-queue-runner/index.d.cts +3 -3
  66. package/lib/server-jobs-queue-runner/index.d.ts +3 -3
  67. package/lib/server-jobs-queue-runner/index.js +1 -1
  68. package/lib/server-runtime/index.cjs +1 -1
  69. package/lib/server-runtime/index.d.cts +4 -4
  70. package/lib/server-runtime/index.d.ts +4 -4
  71. package/lib/server-runtime/index.js +1 -1
  72. package/lib/server-runtime-agentface/index.d.cts +3 -3
  73. package/lib/server-runtime-agentface/index.d.ts +3 -3
  74. package/lib/server-runtime-controlface/index.cjs +1 -1
  75. package/lib/server-runtime-controlface/index.d.cts +3 -3
  76. package/lib/server-runtime-controlface/index.d.ts +3 -3
  77. package/lib/server-runtime-controlface/index.js +1 -1
  78. package/lib/server-runtime-core/index.cjs +1 -1
  79. package/lib/server-runtime-core/index.d.cts +5 -5
  80. package/lib/server-runtime-core/index.d.ts +5 -5
  81. package/lib/server-runtime-core/index.js +1 -1
  82. package/lib/server-runtime-watchers/index.d.cts +5 -5
  83. package/lib/server-runtime-watchers/index.d.ts +5 -5
  84. package/lib/server-runtime-webhooks/index.d.cts +3 -3
  85. package/lib/server-runtime-webhooks/index.d.ts +3 -3
  86. package/lib/{sse-hub-D_QHswxL.d.ts → sse-hub-BGQWPQJP.d.ts} +1 -1
  87. package/lib/{sse-hub-XO6crN9o.d.cts → sse-hub-DViWG1m-.d.cts} +1 -1
  88. package/lib/{types-B8Yieskx.d.ts → types-D5rknZ9j.d.ts} +2 -2
  89. package/lib/{types-gTf9pAyC.d.cts → types-VIrQZ8CW.d.cts} +2 -2
  90. package/package.json +6 -1
@@ -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$5}from'./chunk-2LGCYN35.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 {h}from'./chunk-J4MHQ7JF.js';import {a}from'./chunk-VGDLSS2H.js';import'./chunk-QLB6PKOT.js';import'./chunk-QKWQ4HRE.js';import {b as b$1}from'./chunk-6MD6FVE3.js';import {d,e}from'./chunk-HOSD6UHA.js';export{f as createBoardLiveCardsNonCorePublic,e as createBoardLiveCardsPublic,b as createHttpBoardCallbackTransport,c as createInProcessBoardCallbackTransport,d as createLocalNodeBoardCallbackTransport}from'./chunk-HOSD6UHA.js';import'./chunk-FULAMLUU.js';import'./chunk-EOVTMJYZ.js';export{a as createBoardLiveCardsMcp}from'./chunk-6M3RIGUH.js';export{q as BOARD_GRAPH_KEY,D as EMPTY_CONFIG,p as SNAPSHOT_SCHEMA_VERSION_V1,m as createCardStore,H as createCardStorePublic}from'./chunk-WGYS2L4V.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-Q444D72R.js';import'./chunk-R7SQQSDX.js';import {a as a$6}from'./chunk-ATOQP3BD.js';import {d as d$1}from'./chunk-YT76JNKE.js';import'./chunk-MNEOJWPS.js';export{a as createQueueStoragePublic}from'./chunk-BJGK5FNL.js';export{a as createArtifactsStorePublic}from'./chunk-X3LC4LII.js';import'./chunk-UGB7PC4P.js';import'./chunk-FW4363Y4.js';import {spawn,spawnSync,execFile,execFileSync}from'child_process';import*as i from'fs';import*as qe from'os';import*as w from'path';import*as Le from'net';import {fileURLToPath}from'url';import {randomUUID,createHash}from'crypto';import {createRequire}from'module';import {lockSync}from'proper-lockfile';function C(...e){return w.join(...e)}function Ne(e){return w.isAbsolute(e)}function ue(){return randomUUID()}function Qe(e){return createHash("sha256").update(e).digest("hex")}function Je(e){return w.dirname(fileURLToPath(e))}function Ft(e){if(typeof e=="object"&&e!==null){let{command:r,args:o=[],...n}=e,s=Oe(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 Oe(t[0],t.slice(1))}function Oe(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 Ke(e){return process.platform==="win32"&&/\.(cmd|bat)$/i.test(e)}function We(e,t){let{command:r,args:o=[],cwd:n,env:s,timeoutMs:u}=e;return execFileSync(r,o,{shell:Ke(r),timeout:u,encoding:t?.encoding??"utf-8",cwd:n,windowsHide:true,env:s?{...process.env,...s}:void 0,input:t?.input})}function $t(e,t){let{command:r,args:o=[],cwd:n,env:s,timeoutMs:u=3e4}=e;execFile(r,o,{shell:Ke(r),encoding:"utf8",windowsHide:true,timeout:u,maxBuffer:10*1024*1024,cwd:n,env:s?{...process.env,...s}:void 0},(p,x,c)=>t(p??null,x,c));}function He(e,t,r){let o=w.join(e,"board-live-cards-cli.js");if(i.existsSync(o))return {cmd:process.execPath,args:[o,t,...r]};let n=w.join(e,"board-live-cards-cli.ts"),u=[w.join(e,"..","..","..","node_modules","tsx","dist","cli.mjs"),w.join(e,"..","..","node_modules","tsx","dist","cli.mjs"),w.join(e,"..","..","..","node_modules",".bin","tsx"),w.join(e,"..","..","node_modules",".bin","tsx")].find(x=>i.existsSync(x));return i.existsSync(n)&&u?{cmd:process.execPath,args:[u,n,t,...r]}:{cmd:process.platform==="win32"?"npx.cmd":"npx",args:["tsx",n,t,...r]}}function Ve(e){let t=w.join(e,"board-live-cards-cli.mjs");if(i.existsSync(t))return t;let r=w.join(e,"..","..","..","dev","board-live-cards-cli.js");if(i.existsSync(r))return r;let o=w.join(e,"..","..","dev","board-live-cards-cli.js");if(i.existsSync(o))return o;let n=w.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 Mt(e){return process.platform==="win32"?`\\\\.\\pipe\\${e}`:w.join(qe.tmpdir(),`${e}.sock`)}var ce=new Map;function Ue(e,t,r){if(t.length===0)return;let o=t.map(p=>JSON.stringify(p)).join(`
1
+ import {a as a$3}from'./chunk-Y4WK7HE4.js';export{a as createChatStorage,c as createInMemoryChatStorage}from'./chunk-Y4WK7HE4.js';import {a as a$6}from'./chunk-2LGCYN35.js';import {a as a$4}from'./chunk-O5UYCGIN.js';export{a as createArtifactsStore,c as createCardFileMetadataStore,b as createFileArtifactsStore}from'./chunk-O5UYCGIN.js';import {a as a$5}from'./chunk-RKKSVOP2.js';export{a as createBoardWorkerStore,b as createQueueLaneRegistry}from'./chunk-RKKSVOP2.js';import {h}from'./chunk-J4MHQ7JF.js';import {a as a$1}from'./chunk-VGDLSS2H.js';export{a as createBoardContainerLifecycle}from'./chunk-F3A3ZNF6.js';import'./chunk-QLB6PKOT.js';import'./chunk-RKLEBQUG.js';import {b as b$1}from'./chunk-PEJRTZU3.js';import {d,e}from'./chunk-X32SJDLT.js';export{f as createBoardLiveCardsNonCorePublic,e as createBoardLiveCardsPublic,b as createHttpBoardCallbackTransport,c as createInProcessBoardCallbackTransport,d as createLocalNodeBoardCallbackTransport}from'./chunk-X32SJDLT.js';import'./chunk-FULAMLUU.js';import'./chunk-EOVTMJYZ.js';export{a as createBoardLiveCardsMcp}from'./chunk-6M3RIGUH.js';export{q as BOARD_GRAPH_KEY,D as EMPTY_CONFIG,p as SNAPSHOT_SCHEMA_VERSION_V1,m as createCardStore,H as createCardStorePublic}from'./chunk-WGYS2L4V.js';export{a as executionRefFromScriptPath,c as parseExecutionRef,b as serializeExecutionRef}from'./chunk-ANKA7HEJ.js';import {a as a$2,b}from'./chunk-44L64VQ2.js';export{b as parseRef,a as serializeRef}from'./chunk-44L64VQ2.js';import'./chunk-Q444D72R.js';import'./chunk-R7SQQSDX.js';import {a as a$7}from'./chunk-ATOQP3BD.js';import {d as d$1}from'./chunk-YT76JNKE.js';import'./chunk-MNEOJWPS.js';export{a as createQueueStoragePublic}from'./chunk-BJGK5FNL.js';export{a as createArtifactsStorePublic}from'./chunk-X3LC4LII.js';import'./chunk-UGB7PC4P.js';import'./chunk-FW4363Y4.js';import {spawn,spawnSync,execFile,execFileSync}from'child_process';import*as a from'fs';import a__default from'fs';import*as Qe from'os';import*as v from'path';import v__default from'path';import*as De from'net';import {fileURLToPath}from'url';import {randomUUID,createHash}from'crypto';import {createRequire}from'module';import {lockSync}from'proper-lockfile';function I(...e){return v.join(...e)}function Je(e){return v.isAbsolute(e)}function le(){return randomUUID()}function Ke(e){return createHash("sha256").update(e).digest("hex")}function We(e){return v.dirname(fileURLToPath(e))}function Nt(e){if(typeof e=="object"&&e!==null){let{command:r,args:o=[],...n}=e,s=qe(r,o);return {...n,command:s.command,args:s.args}}let t=He(e);if(t.length===0)throw new Error(`Empty command spec: ${JSON.stringify(e)}`);return qe(t[0],t.slice(1))}function qe(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 He(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 Ve(e){return process.platform==="win32"&&/\.(cmd|bat)$/i.test(e)}function Ue(e,t){let{command:r,args:o=[],cwd:n,env:s,timeoutMs:d}=e;return execFileSync(r,o,{shell:Ve(r),timeout:d,encoding:t?.encoding??"utf-8",cwd:n,windowsHide:true,env:s?{...process.env,...s}:void 0,input:t?.input})}function qt(e,t){let{command:r,args:o=[],cwd:n,env:s,timeoutMs:d=3e4}=e;execFile(r,o,{shell:Ve(r),encoding:"utf8",windowsHide:true,timeout:d,maxBuffer:10*1024*1024,cwd:n,env:s?{...process.env,...s}:void 0},(g,x,u)=>t(g??null,x,u));}function ze(e,t,r){let o=v.join(e,"board-live-cards-cli.js");if(a.existsSync(o))return {cmd:process.execPath,args:[o,t,...r]};let n=v.join(e,"board-live-cards-cli.ts"),d=[v.join(e,"..","..","..","node_modules","tsx","dist","cli.mjs"),v.join(e,"..","..","node_modules","tsx","dist","cli.mjs"),v.join(e,"..","..","..","node_modules",".bin","tsx"),v.join(e,"..","..","node_modules",".bin","tsx")].find(x=>a.existsSync(x));return a.existsSync(n)&&d?{cmd:process.execPath,args:[d,n,t,...r]}:{cmd:process.platform==="win32"?"npx.cmd":"npx",args:["tsx",n,t,...r]}}function Ge(e){let t=v.join(e,"board-live-cards-cli.mjs");if(a.existsSync(t))return t;let r=v.join(e,"..","..","..","dev","board-live-cards-cli.js");if(a.existsSync(r))return r;let o=v.join(e,"..","..","dev","board-live-cards-cli.js");if(a.existsSync(o))return o;let n=v.join(e,"board-live-cards-cli.js");if(a.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 Qt(e){return process.platform==="win32"?`\\\\.\\pipe\\${e}`:v.join(Qe.tmpdir(),`${e}.sock`)}var de=new Map;function Ye(e,t,r){if(t.length===0)return;let o=t.map(g=>JSON.stringify(g)).join(`
2
2
  `)+`
3
- `,n=ce.get(e);if(n&&!n.socket.destroyed){n.ready?n.socket.write(o):n.queue.push(o);return}let s=Mt(e),u=Le.createConnection(s);n={socket:u,ready:false,queue:[o]},ce.set(e,n),u.on("connect",()=>{n.ready=true;for(let p of n.queue)u.write(p);n.queue.length=0;}),u.on("error",p=>{r?.(`[named-pipe publish] ${s}: ${p instanceof Error?p.message:String(p)}`),ce.delete(e);}),u.on("close",()=>{ce.delete(e);});}function ze(){return {executeSync(e,t,r){return We({command:e,args:t,cwd:r?.cwd,timeoutMs:r?.timeout,env:r?.env},{encoding:r?.encoding,input:r?.input})},executeAsync(e,t,r){$t({command:e,args:t},r);},resolveInvocation(e,t){let r=Ft({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 u(){if(!(n||s)){s=true;try{let x=await e.lease({max:o,visibilityMs:r});for(let c of x)await Ge(e,c);}finally{s=false;}}}let p=setInterval(()=>{u();},t);return typeof p.unref=="function"&&p.unref(),u(),()=>{n=true,clearInterval(p);}}async function _t(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 _t(e);if(o+=s,s<=0)return o}throw new Error(`drainQueueLaneToIdle exceeded ${r} passes for lane "${e.id}"`)}function Ot(e){let r=(Array.isArray(e)?e:e.lanes).map(o=>Ye(o));return ()=>{for(let o of r)o();}}var Lt=createRequire(import.meta.url);function Nt(e){return typeof e=="object"?e:b(e)}function Xe(e){let t=w.basename(String(e||"").trim());if(!t)throw new Error(`resolveYamlFlowCliPath: expected non-empty cli file name, got ${JSON.stringify(e)}`);let r=w.dirname(Lt.resolve("yaml-flow/package.json")),o=t.replace(/\.[^.]+$/,""),n=w.join(r,"cli","bundled",`${o}.mjs`);if(i.existsSync(n))return n;let s=w.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 L(e){let t=Nt(e);return t.kind==="yaml-flow-cli"?Xe(t.value):t.value}function Qt(e,t){let r=L(e);switch(r){case "source-cli-task-executor":{let o=w.join(t,"source-cli-task-executor.js");if(i.existsSync(o))return {command:process.execPath,args:[o]};let n=w.join(t,"source-cli-task-executor.ts"),s=w.join(t,"..","..","node_modules","tsx","dist","cli.mjs"),u=w.join(t,"..","..","node_modules",".bin","tsx"),p=i.existsSync(s)?s:u;return i.existsSync(n)&&i.existsSync(p)?{command:process.execPath,args:[p,n]}:{command:process.execPath,args:[o]}}case "board-live-cards":{let{cmd:o,args:n}=He(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 Jt(e,t){if(e.howToRun==="built-in"){let{command:o,args:n}=Qt(e.whatToRun,t);return {command:o,baseArgs:n}}let r=(typeof e.whatToRun=="object",L(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 Jt(e,t)}var be=new Map;function Dt(e,t){let r=String(e||"").trim();if(!r)throw new Error("registerInProcessExecutionHandler: key is required");be.set(r,t);}function Kt(e){let t=String(e||"").trim();t&&be.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:L(e.whatToRun),...e.extra?{extra:e.extra}:{}}}function ke(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 q(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=ke(e.argsMassaging,tt(e,t),o);}catch(h){let R=h instanceof Error?h.message:String(h);return q(R)}let u;try{u=le(e,n);}catch(h){let R=h instanceof Error?h.message:String(h);return q(`[${o}] ref resolution failed: ${R}`)}let p=[...u.baseArgs,...s.cmdArgs??[]],x=JSON.stringify(s.stdin??t),c=ze(),l;try{l=c.executeSync(u.command,p,{timeout:r?.timeoutMs??3e4,encoding:"utf-8",cwd:r?.cwd,input:x});}catch(h){let R=h,y=(R.stderr?String(R.stderr):"").trim(),d=typeof R.status=="number"?R.status:"unknown",f=y||R.message;return q(`[${o}] ref exited with status ${d}${f?`: ${f}`:""}`)}try{return rt(et(l))}catch{return {result:"success",data:{stdout:l.trim()}}}}async function Ze(e,t,r){let o=r?.label??"invokeExecutionRef",n;try{n=ke(e.argsMassaging,tt(e,t),o);}catch(h){let R=h instanceof Error?h.message:String(h);return q(R)}let s=L(e.whatToRun),u=n.headers?{"Content-Type":"application/json",...n.headers}:{"Content-Type":"application/json"},p=n.url??s,x;if(e.howToRun==="http:get"){let h=n.body&&typeof n.body=="object"&&!Array.isArray(n.body)?n.body:t,R=new URLSearchParams(Object.entries(h).filter(([,y])=>y!=null).map(([y,d])=>[y,String(d)]));R.size>0&&(p=`${p}${p.includes("?")?"&":"?"}${R.toString()}`);}else x=JSON.stringify(n.body??t);let c={method:e.howToRun==="http:get"?"GET":"POST",headers:u,body:x},l=0;for(;;)try{let h=await fetch(p,c);if(!h.ok){let f=await h.text().catch(()=>"");return q(`[${o}] HTTP ${h.status}${f?`: ${f}`:""}`)}let R={};h.headers.forEach((f,m)=>{R[m]=f;});let y=new Uint8Array(await h.arrayBuffer());if(y.byteLength===0)return {result:"success",data:{},headers:R};let d=new TextDecoder().decode(y);try{return rt(et(d),{headers:R})}catch{return {result:"success",data:{stdout:d},headers:R}}}catch(h){let R=h?.cause,y=R&&typeof R=="object"&&"code"in R?String(R.code||""):"";if((y==="ECONNRESET"||y==="UND_ERR_SOCKET")&&l===0){l+=1;continue}let f=h instanceof Error?h.message:String(h),m=R instanceof Error?`${R.name}: ${R.message}${y?` [${y}]`:""}`:R?String(R):"",S=n.url??s??"",a=`${f}${m?` (cause: ${m})`:""}${S?` url=${S}`:""}`;return q(`[${o}] ${a}`)}}async function Wt(e,t,r){let o=r?.label??"invokeExecutionRef",n=L(e.whatToRun).trim();if(!n)return q(`[${o}] in-process-loop requires a non-empty handler key`);let s=be.get(n);if(!s)return q(`[${o}] no in-process handler registered for: ${n}`);try{return await s(e,t,r)}catch(u){let p=u instanceof Error?u.message:String(u);return q(`[${o}] ${p}`)}}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},Vt={"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):q(`[${r?.label??"invokeExecutionRef"}] unsupported howToRun: ${e.howToRun}`)}function ve(e,t,r){let o=r?.syncTransports?.[e.howToRun]??Vt[e.howToRun];return o?o(e,t,r):q(`[${r?.label??"invokeExecutionRefSync"}] unsupported sync howToRun: ${e.howToRun}`)}function Ut(e){return {invoke(t,r){return Z(t,r,e)},invokeSync(t,r){return ve(t,r,e)}}}function zt(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 l=await h(s,{subcommand:o,...n?.input!==void 0?{input:n.input}:{}});return typeof l=="string"?l:l&&typeof l=="object"&&!Array.isArray(l)&&typeof l.stdout=="string"?String(l.stdout):JSON.stringify(l??{})}if(s.howToRun==="http:get"){let l=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(l.result!=="success"){let h=typeof l.data?.error=="string"?l.data.error:l.error;throw new Error(h||`executor request failed: ${l.result}`)}return typeof l.data?.stdout=="string"?l.data.stdout:JSON.stringify(l.data??{})}if(!e.resolveCliDir)throw new Error(`createNonCoreExecutorDispatcher: ref.howToRun="${s.howToRun}" requires opts.resolveCliDir`);let{command:u,baseArgs:p}=le(s,e.resolveCliDir()),x=s.extra?["--extra",Buffer.from(JSON.stringify(s.extra)).toString("base64")]:[],c=[...p,o,...x];return await new Promise((l,h)=>{let R=spawn(u,c,{cwd:process.cwd(),stdio:"pipe",windowsHide:true,shell:process.platform==="win32"&&/\.(cmd|bat)$/i.test(u)}),y=[],d=[],f=false,m=null,S=g=>{f||(f=true,m&&clearTimeout(m),h(g));},a=g=>{f||(f=true,m&&clearTimeout(m),l(g));};R.stdout.on("data",g=>{y.push(Buffer.from(g));}),R.stderr.on("data",g=>{d.push(Buffer.from(g));}),R.on("error",g=>{let v=g;v.stdout=Buffer.concat(y).toString("utf-8"),v.stderr=Buffer.concat(d).toString("utf-8"),S(v);}),R.on("close",g=>{let v=Buffer.concat(y).toString("utf-8"),b=Buffer.concat(d).toString("utf-8");if(g===0){a(v);return}let k=new Error(b.trim()||`executor exited with status ${g}`);k.stdout=v,k.stderr=b,S(k);}),n?.timeout&&n.timeout>0&&(m=setTimeout(()=>{R.kill();let g=new Error(`executor timed out after ${n.timeout}ms`);g.stdout=Buffer.concat(y).toString("utf-8"),g.stderr=Buffer.concat(d).toString("utf-8"),S(g);},n.timeout)),n?.input!==void 0?R.stdin.end(n.input):R.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 w.join(e,...n.split("/"))}function r(n){return w.relative(e,n).replace(/\\/g,"/")}function o(n,s){if(i.existsSync(n))for(let u of i.readdirSync(n,{withFileTypes:true})){let p=w.join(n,u.name);if(u.isDirectory()){o(p,s);continue}u.isFile()&&s.push(r(p));}}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 u=t(n),p=`${u}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(w.dirname(u),{recursive:true}),i.writeFileSync(p,s,"utf-8"),B(p,u);},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 u=t(n),p=`${u}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(w.dirname(u),{recursive:true}),i.writeFileSync(p,Buffer.from(s)),B(p,u);},listKeys(n){let s=[];o(e,s);let u=s.sort();return n?u.filter(p=>p.startsWith(n)):u},stat(n){let s=t(n);if(!i.existsSync(s))return null;try{let u=i.statSync(s);return {key:n,size:Number(u.size||0),updatedAt:new Date(u.mtimeMs).toISOString()}}catch{return null}},keyRef(n){return {kind:"fs-path",value:t(n)}},renameKey(n,s){let u=t(n);if(!i.existsSync(u))return false;let p=t(s);return i.mkdirSync(w.dirname(p),{recursive:true}),B(u,p),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(w.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(w.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(w.dirname(t),{recursive:true}),B(e,t),true):false}}}function D(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(w.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=>w.join(e,t)):[]}function ee(e){return {id:e.id,body:e.body,enqueuedAt:e.enqueuedAt,attempt:e.attempt}}function Xt(e){return {...ee(e),leaseToken:String(e.leaseToken||""),leaseExpiresAt:String(e.leaseExpiresAt||"")}}function er(e){return {...ee(e),reason:e.reason}}function je(e){let t=w.join(e,"active"),r=w.join(e,"leased"),o=w.join(e,"done"),n=w.join(e,"dead"),s=w.join(e,"staged");for(let d of [t,r,o,n,s])i.mkdirSync(d,{recursive:true});let u=0;function p(d){let f=d.replace(/[:.]/g,"-"),m=String(u++).padStart(6,"0");return `${f}-${m}`}function x(d){let f=d.activeOrderKey||p(String(d.enqueuedAt||new Date().toISOString()));return w.join(t,`${f}-${d.id}.json`)}function c(d){return w.join(r,`${d}.json`)}function l(d){return w.join(o,`${d}.json`)}function h(d){return w.join(n,`${d}.json`)}function R(d){return w.join(s,`${d}.json`)}function y(){let d=Date.now();for(let f of X(r)){let m=N(f);if(!m?.leaseExpiresAt)continue;let S=Date.parse(m.leaseExpiresAt);if(Number.isNaN(S)||S>d)continue;let a={id:m.id,body:m.body,enqueuedAt:m.enqueuedAt,attempt:m.attempt,activeOrderKey:m.activeOrderKey};D(x(a),a);try{i.unlinkSync(f);}catch{}}}return {enqueue(d){let f={id:randomUUID(),body:d,enqueuedAt:new Date().toISOString(),attempt:0};return f.activeOrderKey=p(f.enqueuedAt),D(x(f),f),ee(f)},enqueueMany(d){return d.map(f=>this.enqueue(f))},enqueueIfAbsent(d,f){y();for(let S of [t,r,s])for(let a of X(S))if(N(a)?.dedupKey===f)return null;let m={id:randomUUID(),body:d,enqueuedAt:new Date().toISOString(),attempt:0,dedupKey:f};return m.activeOrderKey=p(m.enqueuedAt),D(x(m),m),ee(m)},lease(d){y();let f=Math.max(1,Math.floor(d?.max??1)),m=Math.max(1,Math.floor(d?.visibilityMs??6e4)),S=[];for(let a of X(t)){if(S.length>=f)break;let g=N(a);if(!g)continue;let v=c(g.id);try{B(a,v);}catch{continue}let b={...g,attempt:(Number(g.attempt)||0)+1,leaseToken:randomUUID(),leaseExpiresAt:new Date(Date.now()+m).toISOString()};D(v,b),S.push(Xt(b));}return S},ack(d,f){let m=c(d),S=N(m);if(!S||S.leaseToken!==f)return false;try{B(m,l(d));}catch{return false}return true},nack(d,f,m){let S=c(d),a=N(S);if(!a||a.leaseToken!==f)return false;let g={id:a.id,body:a.body,enqueuedAt:a.enqueuedAt,attempt:a.attempt,activeOrderKey:a.activeOrderKey};m?.dead?(g.reason=m.reason,D(h(d),g)):D(x(g),g);try{i.unlinkSync(S);}catch{}return true},peekActive(d){return y(),X(t).map(f=>N(f)).filter(f=>!!f).map(ee)},peekDeadLetter(d){return X(n).map(f=>N(f)).filter(f=>!!f).map(er)},stage(d,f){let m=f?.dedupKey;if(m){y();for(let a of [t,r,s])for(let g of X(a))if(N(g)?.dedupKey===m)return null}let S={id:randomUUID(),body:d,enqueuedAt:new Date().toISOString(),attempt:0,...m?{dedupKey:m}:{}};return D(R(S.id),S),ee(S)},commitStaged(d){let f=R(d),m=N(f);if(!m)return false;let S=new Date().toISOString(),a={...m,attempt:0,enqueuedAt:S,activeOrderKey:p(S)};D(x(a),a);try{i.unlinkSync(f);}catch{}return true},discardStaged(d,f){let m=R(d),S=N(m);if(!S)return false;let a={id:S.id,body:S.body,enqueuedAt:S.enqueuedAt,attempt:S.attempt,reason:f};D(h(d),a);try{i.unlinkSync(m);}catch{}return true},peekStaged(d){return X(s).map(f=>N(f)).filter(f=>!!f).map(ee)}}}var Ee="__scratch-marker",Te="__scratch-config.json",tr=1440*60*1e3,rr=720*60*1e3,nr=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=w.join(e,Ee),r=w.join(e,Te),o=!i.existsSync(t);if(o)try{i.writeFileSync(t,`scratch-store
3
+ `,n=de.get(e);if(n&&!n.socket.destroyed){n.ready?n.socket.write(o):n.queue.push(o);return}let s=Qt(e),d=De.createConnection(s);n={socket:d,ready:false,queue:[o]},de.set(e,n),d.on("connect",()=>{n.ready=true;for(let g of n.queue)d.write(g);n.queue.length=0;}),d.on("error",g=>{r?.(`[named-pipe publish] ${s}: ${g instanceof Error?g.message:String(g)}`),de.delete(e);}),d.on("close",()=>{de.delete(e);});}function Ze(){return {executeSync(e,t,r){return Ue({command:e,args:t,cwd:r?.cwd,timeoutMs:r?.timeout,env:r?.env},{encoding:r?.encoding,input:r?.input})},executeAsync(e,t,r){qt({command:e,args:t},r);},resolveInvocation(e,t){let r=Nt({command:e,args:t});return {cmd:r.command,args:r.args??[]}},splitCommand:He}}function be(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 ve(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 Xe(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 et(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 d(){if(!(n||s)){s=true;try{let x=await e.lease({max:o,visibilityMs:r});for(let u of x)await Xe(e,u);}finally{s=false;}}}let g=setInterval(()=>{d();},t);return typeof g.unref=="function"&&g.unref(),d(),()=>{n=true,clearInterval(g);}}async function Dt(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 Xe(e,n);return o.length}async function fe(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 Dt(e);if(o+=s,s<=0)return o}throw new Error(`drainQueueLaneToIdle exceeded ${r} passes for lane "${e.id}"`)}function Jt(e){let r=(Array.isArray(e)?e:e.lanes).map(o=>et(o));return ()=>{for(let o of r)o();}}var Wt=createRequire(import.meta.url);function Ht(e){return typeof e=="object"?e:b(e)}function rt(e){let t=v.basename(String(e||"").trim());if(!t)throw new Error(`resolveYamlFlowCliPath: expected non-empty cli file name, got ${JSON.stringify(e)}`);let r=v.dirname(Wt.resolve("yaml-flow/package.json")),o=t.replace(/\.[^.]+$/,""),n=v.join(r,"cli","bundled",`${o}.mjs`);if(a.existsSync(n))return n;let s=v.join(r,"cli","node",t);if(a.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=Ht(e);return t.kind==="yaml-flow-cli"?rt(t.value):t.value}function Vt(e,t){let r=q(e);switch(r){case "source-cli-task-executor":{let o=v.join(t,"source-cli-task-executor.js");if(a.existsSync(o))return {command:process.execPath,args:[o]};let n=v.join(t,"source-cli-task-executor.ts"),s=v.join(t,"..","..","node_modules","tsx","dist","cli.mjs"),d=v.join(t,"..","..","node_modules",".bin","tsx"),g=a.existsSync(s)?s:d;return a.existsSync(n)&&a.existsSync(g)?{command:process.execPath,args:[g,n]}:{command:process.execPath,args:[o]}}case "board-live-cards":{let{cmd:o,args:n}=ze(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 Ut(e,t){if(e.howToRun==="built-in"){let{command:o,args:n}=Vt(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 pe(e,t){return Ut(e,t)}var Ae=new Map;function zt(e,t){let r=String(e||"").trim();if(!r)throw new Error("registerInProcessExecutionHandler: key is required");Ae.set(r,t);}function Gt(e){let t=String(e||"").trim();t&&Ae.delete(t);}function nt(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 ot(e,t){return {...t,whatToRun:q(e.whatToRun),...e.extra?{extra:e.extra}:{}}}function Te(e,t,r="invokeExecutionRef"){return a$1(e,t,r)}function st(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 N(e){return {result:"failure",data:{error:e}}}function G(e,t,r){let o=r?.label??"invokeExecutionRefSync",n=r?.cliDir??r?.cwd??process.cwd(),s;try{s=Te(e.argsMassaging,ot(e,t),o);}catch(h){let R=h instanceof Error?h.message:String(h);return N(R)}let d;try{d=pe(e,n);}catch(h){let R=h instanceof Error?h.message:String(h);return N(`[${o}] ref resolution failed: ${R}`)}let g=[...d.baseArgs,...s.cmdArgs??[]],x=JSON.stringify(s.stdin??t),u=Ze(),p;try{p=u.executeSync(d.command,g,{timeout:r?.timeoutMs??3e4,encoding:"utf-8",cwd:r?.cwd,input:x});}catch(h){let R=h,y=(R.stderr?String(R.stderr):"").trim(),l=typeof R.status=="number"?R.status:"unknown",f=y||R.message;return N(`[${o}] ref exited with status ${l}${f?`: ${f}`:""}`)}try{return st(nt(p))}catch{return {result:"success",data:{stdout:p.trim()}}}}async function tt(e,t,r){let o=r?.label??"invokeExecutionRef",n;try{n=Te(e.argsMassaging,ot(e,t),o);}catch(h){let R=h instanceof Error?h.message:String(h);return N(R)}let s=q(e.whatToRun),d=n.headers?{"Content-Type":"application/json",...n.headers}:{"Content-Type":"application/json"},g=n.url??s,x;if(e.howToRun==="http:get"){let h=n.body&&typeof n.body=="object"&&!Array.isArray(n.body)?n.body:t,R=new URLSearchParams(Object.entries(h).filter(([,y])=>y!=null).map(([y,l])=>[y,String(l)]));R.size>0&&(g=`${g}${g.includes("?")?"&":"?"}${R.toString()}`);}else x=JSON.stringify(n.body??t);let u={method:e.howToRun==="http:get"?"GET":"POST",headers:d,body:x},p=0;for(;;)try{let h=await fetch(g,u);if(!h.ok){let f=await h.text().catch(()=>"");return N(`[${o}] HTTP ${h.status}${f?`: ${f}`:""}`)}let R={};h.headers.forEach((f,m)=>{R[m]=f;});let y=new Uint8Array(await h.arrayBuffer());if(y.byteLength===0)return {result:"success",data:{},headers:R};let l=new TextDecoder().decode(y);try{return st(nt(l),{headers:R})}catch{return {result:"success",data:{stdout:l},headers:R}}}catch(h){let R=h?.cause,y=R&&typeof R=="object"&&"code"in R?String(R.code||""):"";if((y==="ECONNRESET"||y==="UND_ERR_SOCKET")&&p===0){p+=1;continue}let f=h instanceof Error?h.message:String(h),m=R instanceof Error?`${R.name}: ${R.message}${y?` [${y}]`:""}`:R?String(R):"",S=n.url??s??"",c=`${f}${m?` (cause: ${m})`:""}${S?` url=${S}`:""}`;return N(`[${o}] ${c}`)}}async function Yt(e,t,r){let o=r?.label??"invokeExecutionRef",n=q(e.whatToRun).trim();if(!n)return N(`[${o}] in-process-loop requires a non-empty handler key`);let s=Ae.get(n);if(!s)return N(`[${o}] no in-process handler registered for: ${n}`);try{return await s(e,t,r)}catch(d){let g=d instanceof Error?d.message:String(d);return N(`[${o}] ${g}`)}}var Zt={"local-node":async(e,t,r)=>G(e,t,r),"local-python":async(e,t,r)=>G(e,t,r),"local-process":async(e,t,r)=>G(e,t,r),"built-in":async(e,t,r)=>G(e,t,r),"http:post":tt,"http:get":tt,"in-process-loop":Yt},Xt={"local-node":G,"local-python":G,"local-process":G,"built-in":G};async function te(e,t,r){let o=r?.transports?.[e.howToRun]??Zt[e.howToRun];return o?o(e,t,r):N(`[${r?.label??"invokeExecutionRef"}] unsupported howToRun: ${e.howToRun}`)}function Ee(e,t,r){let o=r?.syncTransports?.[e.howToRun]??Xt[e.howToRun];return o?o(e,t,r):N(`[${r?.label??"invokeExecutionRefSync"}] unsupported sync howToRun: ${e.howToRun}`)}function er(e){return {invoke(t,r){return te(t,r,e)},invokeSync(t,r){return Ee(t,r,e)}}}function tr(e,t,r){return Ee(e,t,r)}function Ce(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 p=await h(s,{subcommand:o,...n?.input!==void 0?{input:n.input}:{}});return typeof p=="string"?p:p&&typeof p=="object"&&!Array.isArray(p)&&typeof p.stdout=="string"?String(p.stdout):JSON.stringify(p??{})}if(s.howToRun==="http:get"){let p=await te(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(p.result!=="success"){let h=typeof p.data?.error=="string"?p.data.error:p.error;throw new Error(h||`executor request failed: ${p.result}`)}return typeof p.data?.stdout=="string"?p.data.stdout:JSON.stringify(p.data??{})}if(!e.resolveCliDir)throw new Error(`createNonCoreExecutorDispatcher: ref.howToRun="${s.howToRun}" requires opts.resolveCliDir`);let{command:d,baseArgs:g}=pe(s,e.resolveCliDir()),x=s.extra?["--extra",Buffer.from(JSON.stringify(s.extra)).toString("base64")]:[],u=[...g,o,...x];return await new Promise((p,h)=>{let R=spawn(d,u,{cwd:process.cwd(),stdio:"pipe",windowsHide:true,shell:process.platform==="win32"&&/\.(cmd|bat)$/i.test(d)}),y=[],l=[],f=false,m=null,S=i=>{f||(f=true,m&&clearTimeout(m),h(i));},c=i=>{f||(f=true,m&&clearTimeout(m),p(i));};R.stdout.on("data",i=>{y.push(Buffer.from(i));}),R.stderr.on("data",i=>{l.push(Buffer.from(i));}),R.on("error",i=>{let k=i;k.stdout=Buffer.concat(y).toString("utf-8"),k.stderr=Buffer.concat(l).toString("utf-8"),S(k);}),R.on("close",i=>{let k=Buffer.concat(y).toString("utf-8"),w=Buffer.concat(l).toString("utf-8");if(i===0){c(k);return}let b=new Error(w.trim()||`executor exited with status ${i}`);b.stdout=k,b.stderr=w,S(b);}),n?.timeout&&n.timeout>0&&(m=setTimeout(()=>{R.kill();let i=new Error(`executor timed out after ${n.timeout}ms`);i.stdout=Buffer.concat(y).toString("utf-8"),i.stderr=Buffer.concat(l).toString("utf-8"),S(i);},n.timeout)),n?.input!==void 0?R.stdin.end(n.input):R.stdin.end();})}}}function $(e,t){if(process.platform!=="win32"){a.renameSync(e,t);return}let r=[10,20,40,80,160];for(let o=0;o<=r.length;o++)try{a.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 Y(e){function t(n){return v.join(e,...n.split("/"))}function r(n){return v.relative(e,n).replace(/\\/g,"/")}function o(n,s){if(a.existsSync(n))for(let d of a.readdirSync(n,{withFileTypes:true})){let g=v.join(n,d.name);if(d.isDirectory()){o(g,s);continue}d.isFile()&&s.push(r(g));}}return {read(n){let s=t(n);if(!a.existsSync(s))return null;try{return a.readFileSync(s,"utf-8")}catch{return null}},write(n,s){let d=t(n),g=`${d}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(v.dirname(d),{recursive:true}),a.writeFileSync(g,s,"utf-8"),$(g,d);},exists(n){return a.existsSync(t(n))},remove(n){let s=t(n);try{a.existsSync(s)&&a.unlinkSync(s);}catch{}},readBytes(n){let s=t(n);if(!a.existsSync(s))return null;try{return new Uint8Array(a.readFileSync(s))}catch{return null}},writeBytes(n,s){let d=t(n),g=`${d}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(v.dirname(d),{recursive:true}),a.writeFileSync(g,Buffer.from(s)),$(g,d);},listKeys(n){let s=[];o(e,s);let d=s.sort();return n?d.filter(g=>g.startsWith(n)):d},stat(n){let s=t(n);if(!a.existsSync(s))return null;try{let d=a.statSync(s);return {key:n,size:Number(d.size||0),updatedAt:new Date(d.mtimeMs).toISOString()}}catch{return null}},keyRef(n){return {kind:"fs-path",value:t(n)}},renameKey(n,s){let d=t(n);if(!a.existsSync(d))return false;let g=t(s);return a.mkdirSync(v.dirname(g),{recursive:true}),$(d,g),true}}}function Pe(){return {read(e){if(!a.existsSync(e))return null;try{return a.readFileSync(e,"utf-8")}catch{return null}},write(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(v.dirname(e),{recursive:true}),a.writeFileSync(r,t,"utf-8"),$(r,e);},exists(e){return a.existsSync(e)},remove(e){try{a.existsSync(e)&&a.unlinkSync(e);}catch{}},readBytes(e){if(!a.existsSync(e))return null;try{return new Uint8Array(a.readFileSync(e))}catch{return null}},writeBytes(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(v.dirname(e),{recursive:true}),a.writeFileSync(r,Buffer.from(t)),$(r,e);},stat(e){if(!a.existsSync(e))return null;try{let t=a.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 a.existsSync(e)?(a.mkdirSync(v.dirname(t),{recursive:true}),$(e,t),true):false}}}function W(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(v.dirname(e),{recursive:true}),a.writeFileSync(r,JSON.stringify(t,null,2),"utf-8"),$(r,e);}function Q(e){if(!a.existsSync(e))return null;try{return JSON.parse(a.readFileSync(e,"utf-8"))}catch{return null}}function re(e){return a.existsSync(e)?a.readdirSync(e).filter(t=>t.endsWith(".json")).sort().map(t=>v.join(e,t)):[]}function ne(e){return {id:e.id,body:e.body,enqueuedAt:e.enqueuedAt,attempt:e.attempt}}function sr(e){return {...ne(e),leaseToken:String(e.leaseToken||""),leaseExpiresAt:String(e.leaseExpiresAt||"")}}function ir(e){return {...ne(e),reason:e.reason}}function Fe(e){let t=v.join(e,"active"),r=v.join(e,"leased"),o=v.join(e,"done"),n=v.join(e,"dead"),s=v.join(e,"staged");for(let l of [t,r,o,n,s])a.mkdirSync(l,{recursive:true});let d=0;function g(l){let f=l.replace(/[:.]/g,"-"),m=String(d++).padStart(6,"0");return `${f}-${m}`}function x(l){let f=l.activeOrderKey||g(String(l.enqueuedAt||new Date().toISOString()));return v.join(t,`${f}-${l.id}.json`)}function u(l){return v.join(r,`${l}.json`)}function p(l){return v.join(o,`${l}.json`)}function h(l){return v.join(n,`${l}.json`)}function R(l){return v.join(s,`${l}.json`)}function y(){let l=Date.now();for(let f of re(r)){let m=Q(f);if(!m?.leaseExpiresAt)continue;let S=Date.parse(m.leaseExpiresAt);if(Number.isNaN(S)||S>l)continue;let c={id:m.id,body:m.body,enqueuedAt:m.enqueuedAt,attempt:m.attempt,activeOrderKey:m.activeOrderKey};W(x(c),c);try{a.unlinkSync(f);}catch{}}}return {enqueue(l){let f={id:randomUUID(),body:l,enqueuedAt:new Date().toISOString(),attempt:0};return f.activeOrderKey=g(f.enqueuedAt),W(x(f),f),ne(f)},enqueueMany(l){return l.map(f=>this.enqueue(f))},enqueueIfAbsent(l,f){y();for(let S of [t,r,s])for(let c of re(S))if(Q(c)?.dedupKey===f)return null;let m={id:randomUUID(),body:l,enqueuedAt:new Date().toISOString(),attempt:0,dedupKey:f};return m.activeOrderKey=g(m.enqueuedAt),W(x(m),m),ne(m)},lease(l){y();let f=Math.max(1,Math.floor(l?.max??1)),m=Math.max(1,Math.floor(l?.visibilityMs??6e4)),S=[];for(let c of re(t)){if(S.length>=f)break;let i=Q(c);if(!i)continue;let k=u(i.id);try{$(c,k);}catch{continue}let w={...i,attempt:(Number(i.attempt)||0)+1,leaseToken:randomUUID(),leaseExpiresAt:new Date(Date.now()+m).toISOString()};W(k,w),S.push(sr(w));}return S},ack(l,f){let m=u(l),S=Q(m);if(!S||S.leaseToken!==f)return false;try{$(m,p(l));}catch{return false}return true},nack(l,f,m){let S=u(l),c=Q(S);if(!c||c.leaseToken!==f)return false;let i={id:c.id,body:c.body,enqueuedAt:c.enqueuedAt,attempt:c.attempt,activeOrderKey:c.activeOrderKey};m?.dead?(i.reason=m.reason,W(h(l),i)):W(x(i),i);try{a.unlinkSync(S);}catch{}return true},peekActive(l){return y(),re(t).map(f=>Q(f)).filter(f=>!!f).map(ne)},peekDeadLetter(l){return re(n).map(f=>Q(f)).filter(f=>!!f).map(ir)},stage(l,f){let m=f?.dedupKey;if(m){y();for(let c of [t,r,s])for(let i of re(c))if(Q(i)?.dedupKey===m)return null}let S={id:randomUUID(),body:l,enqueuedAt:new Date().toISOString(),attempt:0,...m?{dedupKey:m}:{}};return W(R(S.id),S),ne(S)},commitStaged(l){let f=R(l),m=Q(f);if(!m)return false;let S=new Date().toISOString(),c={...m,attempt:0,enqueuedAt:S,activeOrderKey:g(S)};W(x(c),c);try{a.unlinkSync(f);}catch{}return true},discardStaged(l,f){let m=R(l),S=Q(m);if(!S)return false;let c={id:S.id,body:S.body,enqueuedAt:S.enqueuedAt,attempt:S.attempt,reason:f};W(h(l),c);try{a.unlinkSync(m);}catch{}return true},peekStaged(l){return re(s).map(f=>Q(f)).filter(f=>!!f).map(ne)}}}var je="__scratch-marker",Be="__scratch-config.json",ar=1440*60*1e3,cr=720*60*1e3,ur=500;function it(e,t){if(!e)return t;let r=e.replace(/[^A-Za-z0-9._-]/g,"_");return r.length>0?r:t}function ie(e){a.mkdirSync(e,{recursive:true});let t=v.join(e,je),r=v.join(e,Be),o=!a.existsSync(t);if(o)try{a.writeFileSync(t,`scratch-store
4
4
  ${new Date().toISOString()}
5
- `,"utf-8");}catch{}function n(){if(!i.existsSync(r))return {};try{let c=i.readFileSync(r,"utf-8"),l=JSON.parse(c);return l&&typeof l=="object"&&!Array.isArray(l)?l:{}}catch{return {}}}function s(c){let l=`${r}.${process.pid}.${randomUUID()}.tmp`;try{i.writeFileSync(l,JSON.stringify(c,null,2),"utf-8"),B(l,r);}catch{}}if(o){let c=n();typeof c["retention.lastSweepAt"]!="number"&&(c["retention.lastSweepAt"]=Date.now(),s(c));}function u(){if(!i.existsSync(t))return;let c=n(),l=typeof c["retention.maxAgeMs"]=="number"?c["retention.maxAgeMs"]:tr,h=typeof c["retention.sweepIntervalMs"]=="number"?c["retention.sweepIntervalMs"]:rr;if(l<=0||h<=0)return;let R=typeof c["retention.lastSweepAt"]=="number"?c["retention.lastSweepAt"]:0,y=Date.now();if(y-R<h)return;c["retention.lastSweepAt"]=y,s(c);let d=y;try{let f=i.readdirSync(e,{withFileTypes:!0});for(let m of f){if(Date.now()-d>nr)break;if(!m.isFile()||m.name===Ee||m.name===Te)continue;let S=w.join(e,m.name);try{let a=i.statSync(S);if(y-a.mtimeMs>l)try{i.unlinkSync(S);}catch{}}catch{}}}catch{}}function p(c,l){let h=nt(c,"scratch"),R=nt(l,".json"),y=R.startsWith(".")?R:`.${R}`,d=`${h}-${Date.now()}-${randomUUID().slice(0,8)}${y}`;return w.join(e,d)}function x(c,l){let h=`${c}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(w.dirname(c),{recursive:true}),i.writeFileSync(h,l,"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,l){x(c,l);try{u();}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,l){let h=`${c}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(w.dirname(c),{recursive:true}),i.writeFileSync(h,Buffer.from(l)),B(h,c);try{u();}catch{}},stat(c){if(!i.existsSync(c))return null;try{let l=i.statSync(c);return {key:c,size:Number(l.size||0),updatedAt:new Date(l.mtimeMs).toISOString()}}catch{return null}},listKeys(c){try{let l=i.readdirSync(e,{withFileTypes:!0}),h=[];for(let R of l){if(!R.isFile()||R.name===Ee||R.name===Te)continue;let y=w.join(e,R.name);(!c||y.startsWith(c))&&h.push(y);}return h.sort()}catch{return []}},getUniqueKey(c,l){return p(c,l)},create(c,l,h){let R=p(l,h);x(R,c);try{u();}catch{}return R},keyRef(c){return {kind:"fs-path",value:c}},renameKey(c,l){return i.existsSync(c)?(i.mkdirSync(w.dirname(l),{recursive:true}),B(c,l),true):false},config:{get(c){return n()[c]??null},set(c,l){let h=n();l==null?delete h[c]:h[c]=l,s(h);}}}}var or="__archive-marker",sr="__archive-config.json",fe="streams",pe="blobs",ir=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(w.join(e,fe),{recursive:true}),i.mkdirSync(w.join(e,pe),{recursive:true});let t=w.join(e,or),r=w.join(e,sr);if(!i.existsSync(t))try{i.writeFileSync(t,`archive-store
5
+ `,"utf-8");}catch{}function n(){if(!a.existsSync(r))return {};try{let u=a.readFileSync(r,"utf-8"),p=JSON.parse(u);return p&&typeof p=="object"&&!Array.isArray(p)?p:{}}catch{return {}}}function s(u){let p=`${r}.${process.pid}.${randomUUID()}.tmp`;try{a.writeFileSync(p,JSON.stringify(u,null,2),"utf-8"),$(p,r);}catch{}}if(o){let u=n();typeof u["retention.lastSweepAt"]!="number"&&(u["retention.lastSweepAt"]=Date.now(),s(u));}function d(){if(!a.existsSync(t))return;let u=n(),p=typeof u["retention.maxAgeMs"]=="number"?u["retention.maxAgeMs"]:ar,h=typeof u["retention.sweepIntervalMs"]=="number"?u["retention.sweepIntervalMs"]:cr;if(p<=0||h<=0)return;let R=typeof u["retention.lastSweepAt"]=="number"?u["retention.lastSweepAt"]:0,y=Date.now();if(y-R<h)return;u["retention.lastSweepAt"]=y,s(u);let l=y;try{let f=a.readdirSync(e,{withFileTypes:!0});for(let m of f){if(Date.now()-l>ur)break;if(!m.isFile()||m.name===je||m.name===Be)continue;let S=v.join(e,m.name);try{let c=a.statSync(S);if(y-c.mtimeMs>p)try{a.unlinkSync(S);}catch{}}catch{}}}catch{}}function g(u,p){let h=it(u,"scratch"),R=it(p,".json"),y=R.startsWith(".")?R:`.${R}`,l=`${h}-${Date.now()}-${randomUUID().slice(0,8)}${y}`;return v.join(e,l)}function x(u,p){let h=`${u}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(v.dirname(u),{recursive:true}),a.writeFileSync(h,p,"utf-8"),$(h,u);}return {read(u){if(!a.existsSync(u))return null;try{return a.readFileSync(u,"utf-8")}catch{return null}},write(u,p){x(u,p);try{d();}catch{}},exists(u){return a.existsSync(u)},remove(u){try{a.existsSync(u)&&a.unlinkSync(u);}catch{}},readBytes(u){if(!a.existsSync(u))return null;try{return new Uint8Array(a.readFileSync(u))}catch{return null}},writeBytes(u,p){let h=`${u}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(v.dirname(u),{recursive:true}),a.writeFileSync(h,Buffer.from(p)),$(h,u);try{d();}catch{}},stat(u){if(!a.existsSync(u))return null;try{let p=a.statSync(u);return {key:u,size:Number(p.size||0),updatedAt:new Date(p.mtimeMs).toISOString()}}catch{return null}},listKeys(u){try{let p=a.readdirSync(e,{withFileTypes:!0}),h=[];for(let R of p){if(!R.isFile()||R.name===je||R.name===Be)continue;let y=v.join(e,R.name);(!u||y.startsWith(u))&&h.push(y);}return h.sort()}catch{return []}},getUniqueKey(u,p){return g(u,p)},create(u,p,h){let R=g(p,h);x(R,u);try{d();}catch{}return R},keyRef(u){return {kind:"fs-path",value:u}},renameKey(u,p){return a.existsSync(u)?(a.mkdirSync(v.dirname(p),{recursive:true}),$(u,p),true):false},config:{get(u){return n()[u]??null},set(u,p){let h=n();p==null?delete h[u]:h[u]=p,s(h);}}}}var dr="__archive-marker",lr="__archive-config.json",ge="streams",me="blobs",fr=500;function at(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 ye(e){a.mkdirSync(e,{recursive:true}),a.mkdirSync(v.join(e,ge),{recursive:true}),a.mkdirSync(v.join(e,me),{recursive:true});let t=v.join(e,dr),r=v.join(e,lr);if(!a.existsSync(t))try{a.writeFileSync(t,`archive-store
6
6
  ${new Date().toISOString()}
7
- `,"utf-8");}catch{}function o(){if(!i.existsSync(r))return {};try{let u=i.readFileSync(r,"utf-8"),p=JSON.parse(u);return p&&typeof p=="object"&&!Array.isArray(p)?p:{}}catch{return {}}}function n(u){let p=`${r}.${process.pid}.${randomUUID()}.tmp`;try{i.writeFileSync(p,JSON.stringify(u,null,2),"utf-8"),B(p,r);}catch{}}function s(){if(!i.existsSync(t))return;let u=o(),p=typeof u["retention.maxAgeMs"]=="number"?u["retention.maxAgeMs"]:0,x=typeof u["retention.sweepIntervalMs"]=="number"?u["retention.sweepIntervalMs"]:0;if(p<=0||x<=0)return;let c=typeof u["retention.lastSweepAt"]=="number"?u["retention.lastSweepAt"]:0,l=Date.now();if(l-c<x)return;u["retention.lastSweepAt"]=l,n(u);let h=l,R=y=>{let d;try{d=i.readdirSync(y,{withFileTypes:!0});}catch{return}for(let f of d){if(Date.now()-h>ir)return;let m=w.join(y,f.name);if(f.isDirectory()){R(m);continue}if(f.isFile())try{let S=i.statSync(m);if(l-S.mtimeMs>p)try{i.unlinkSync(m);}catch{}}catch{}}};R(w.join(e,fe)),R(w.join(e,pe));}return {stream(u){let p=ot(u),x=w.join(e,fe,`${p}.jsonl`),c=me(x);return {append(l){let h=c.append(l);try{s();}catch{}return h},readAll:()=>c.readAll(),readAfter:l=>c.readAfter(l),clear:()=>{c.clear&&c.clear();}}},blob(u){let p=ot(u),x=w.join(e,pe,p);i.mkdirSync(x,{recursive:true});let c=U(x);return {read:l=>c.read(l),write:(l,h)=>{c.write(l,h);try{s();}catch{}},exists:l=>c.exists(l),remove:l=>c.remove(l),readBytes:c.readBytes?l=>c.readBytes(l):void 0,writeBytes:c.writeBytes?(l,h)=>{c.writeBytes(l,h);try{s();}catch{}}:void 0,listKeys:l=>c.listKeys(l),stat:c.stat?l=>c.stat(l):void 0,renameKey:(l,h)=>c.renameKey(l,h)}},listStreams(u){let p=w.join(e,fe);try{return i.readdirSync(p,{withFileTypes:!0}).filter(x=>x.isFile()&&x.name.endsWith(".jsonl")).map(x=>x.name.slice(0,-6)).filter(x=>!u||x.startsWith(u)).sort()}catch{return []}},listBlobs(u){let p=w.join(e,pe);try{return i.readdirSync(p,{withFileTypes:!0}).filter(x=>x.isDirectory()).map(x=>x.name).filter(x=>!u||x.startsWith(u)).sort()}catch{return []}},config:{get(u){return o()[u]??null},set(u,p){let x=o();p==null?delete x[u]:x[u]=p,n(x);}}}}function se(e){function t(o){return w.join(e,...o.split("/"))+".json"}function r(o,n,s,u){if(i.existsSync(o))for(let p of i.readdirSync(o,{withFileTypes:true})){let x=n?`${n}/${p.name}`:p.name;if(p.isDirectory()){r(w.join(o,p.name),x,s,u);continue}if(!p.isFile()||!p.name.endsWith(".json"))continue;let c=x.replace(/\.json$/,"");(!s||c.startsWith(s))&&u.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),u=`${s}.${process.pid}.${randomUUID()}.tmp`;i.mkdirSync(w.dirname(s),{recursive:true}),i.writeFileSync(u,JSON.stringify(n,null,2),"utf-8"),B(u,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(w.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(u=>u.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=w.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
- `).filter(Boolean).map(o=>JSON.parse(o)):[]},appendEntry(r){i.appendFileSync(t,JSON.stringify(r)+`
11
- `,"utf-8");},generateId(){return randomUUID()}}}function it(e){return {tryAcquire(){try{if(!i.existsSync(e)){i.mkdirSync(w.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 ar(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(y,d,f){let m=await n();if(!m||!t.invokeExecutor)throw new Error(`${y} is not supported on the ${o} yet`);let a=(await t.invokeExecutor(m,y,{...d!==void 0?{input:typeof d=="string"?d:JSON.stringify(d)}:{},...f!==void 0?{timeout:f}:{}})).trim();return a?ne(JSON.parse(a)):{}}async function u(y){try{if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return Q("validateCardPreflight requires card JSON object in body");let d=y.body,f=d["card-content"]??d,m=typeof f.id=="string"?f.id:"(unknown)",S=a$5(f),a=Array.isArray(f.source_defs)&&f.source_defs.length>0,g=[...S.issues];if(a)if(t.invokeExecutor&&await n())for(let v of f.source_defs){let b=typeof v.bindTo=="string"?v.bindTo:"(unknown)";try{let k=await s("validate-source-def",v,1e4);if(k.ok!==!0&&Array.isArray(k.errors))for(let A of k.errors)typeof A=="string"&&A&&g.push(`source "${b}": ${A}`);}catch(k){g.push(`source "${b}": executor validate-source-def failed \u2014 ${k instanceof Error?k.message:String(k)}`);}}else await n()&&g.push(`executor-backed source_def preflight is not supported on the ${o} yet`);return z({cardId:m,isValid:g.length===0,issues:g})}catch(d){return re(d)}}function p(y){try{if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return Q("evalCardCompute requires a JSON object in body");let d=y.body,f=d["card-content"]??d,m=typeof f.id=="string"?f.id:"(unknown)",S=d["mock-fetched-sources"]??{},a=d["mock-requires"]??{},g=f.compute;if(!g||!Array.isArray(g)||g.length===0)return z({cardId:m,ok:!0,computed_values:{},errors:[]});let v={id:m,card_data:f.card_data??{},requires:a,source_defs:f.source_defs,compute:g},b=a$6.runSync(v,{sourcesData:S});return z({cardId:m,ok:(b.errors??[]).length===0,computed_values:b.node.computed_values??{},errors:b.errors??[]})}catch(d){return re(d)}}async function x(y){return Q(`${y} 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 x("describeTaskExecutorCapabilities")}catch(y){return re(y)}}async function l(y){try{if(!t.invokeExecutor||!await n())return await x("probeSourcePreflight");if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return Q("probeSourcePreflight requires card JSON object in body");let d=y.body,f=d["card-content"]??d,m=ne(d["mock-projections"]??{}),S=y.params?.sourceIdx,a=Array.isArray(f.source_defs)?f.source_defs:[];if(S===void 0)return Q("probeSourcePreflight requires params.sourceIdx");if(S<0||S>=a.length)return Q(`sourceIdx ${S} out of range (card has ${a.length} source(s))`);let g=a[S],v=typeof g.bindTo=="string"?g.bindTo:"source",b=await s("probe-source-preflight",{...g,_projections:m},g.timeout??6e4);return b.ok!==!0?Q(typeof b.error=="string"?b.error:"Preflight probe failed"):z({bindTo:v,reachable:b.reachable,latencyMs:b.latencyMs,...typeof b.note=="string"?{note:b.note}:{}})}catch(d){return re(d)}}async function h(y){try{if(!t.invokeExecutor||!await n())return await x("runSourcePreflight");if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return Q("runSourcePreflight requires card JSON object in body");let d=y.body,f=d["card-content"]??d,m=ne(d["mock-projections"]??{}),S=y.params?.sourceIdx,a=Array.isArray(f.source_defs)?f.source_defs:[];if(S===void 0)return Q("runSourcePreflight requires params.sourceIdx");if(S<0||S>=a.length)return Q(`sourceIdx ${S} out of range (card has ${a.length} source(s))`);let g=a[S],v=typeof g.bindTo=="string"?g.bindTo:"source",b=await s("run-source-preflight",{...g,_projections:m},g.timeout??6e4);return b.ok!==!0?z({bindTo:v,ok:!1,result:null,issues:[typeof b.error=="string"?b.error:"Preflight run failed"]}):z({bindTo:v,ok:!0,result:Object.prototype.hasOwnProperty.call(b,"resultValue")?b.resultValue:null,issues:[]})}catch(d){return re(d)}}async function R(y){try{if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return Q("simulateCardCycle requires a JSON object in body");let d=y.body,f=d["card-content"]??d,m=typeof f.id=="string"?f.id:"(unknown)",S=ne(d["mock-fetched-sources"]??{}),a=ne(d["mock-requires"]??{}),g=await u({body:{"card-content":f}}),v=g.status==="success"?{isValid:g.data.isValid,issues:g.data.issues}:{isValid:!1,issues:[g.status==="fail"?g.error:"internal error"]},b=Array.isArray(f.source_defs)?f.source_defs:[],k=ne(f.card_data??{}),A=[],F=[];if(b.length>0){A=a$6.enrichSourcesSync(b,{card_data:k,requires:a});for(let I of A){let P=I.projections,W=I._projections;if(P&&W){for(let $ of Object.keys(P))if(W[$]===void 0){let ut=typeof I.bindTo=="string"?I.bindTo:"(unknown)";F.push({bindTo:ut,key:$,error:`Projection "${$}" resolved to undefined`});}}}}let E=[],M={...S};for(let I=0;I<A.length;I+=1){let P=A[I],W=typeof P.bindTo=="string"?P.bindTo:`source_${I}`;if(!t.invokeExecutor||!await n()){E.push({bindTo:W,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(S,W)&&Object.prototype.hasOwnProperty.call($,"resultValue")&&(M[W]=$.resultValue),E.push({bindTo:W,reachable:$.reachable,latencyMs:$.latencyMs,...$.ok===!0?{}:{error:typeof $.error=="string"?$.error:"Preflight run failed"}});}catch{E.push({bindTo:W,skipped:!0,error:"Executor does not support run-source-preflight"});}}let K=f.compute,te={},G=[];if(K&&Array.isArray(K)&&K.length>0){let I={id:m,card_data:k,requires:a,source_defs:f.source_defs,compute:K},P=a$6.runSync(I,{sourcesData:M});te=P.node.computed_values??{},G=P.errors??[];}return z({cardId:m,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(d){return re(d)}}return {describeTaskExecutorCapabilities:c,validateCardPreflight:u,evalCardCompute:p,probeSourcePreflight:l,runSourcePreflight:h,simulateCardCycle:R}}function sn(){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=L(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=L(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 dr=".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 lr(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function fr(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 pr(e$1,t,r){let{cliDir:o,opts:n}=lr(t,r),s=e$1.value,u=null,p,x=null,c;function l(){return c||(c=ct(o)),c}function h(a){let g=n?.queueStoreRef;if(!g)throw new Error(`createFsBoardPlatformAdapter: ${a} requires opts.queueStoreRef`);return g}function R(a){let g=n?.boardRuntimeStoreRef;if(!g)throw new Error(`createFsBoardPlatformAdapter: ${a} requires opts.boardRuntimeStoreRef`);return g}let y=n?.callbackTransport??d({notifyChannel:n?.notifyChannel,boardRuntimeStoreRef:n?.boardRuntimeStoreRef,queueStoreRef:n?.queueStoreRef}),d$1;function f(a){return d$1.queueStorageForRef(h(`internal lane "${a}"`),a)}function m(a){return a$4(f(a))}function S(){if(n?.suppressSpawn||u)return;let a=xe({id:"task-executor",workerStore:m("task-executor"),handleRequest:async(g,v)=>{let b=await Z(v.ref,v.args,{cliDir:l(),cwd:process.cwd(),label:"fsBoardAdapter.boardWorker"});if(b.result!=="success"){let k=typeof b.data?.error=="string"?b.data.error:b.error;throw new Error(k||b.result)}}});u=de(a).catch(g=>{n?.onWarn?.(`[board-worker] in-process queue drain failed: ${g instanceof Error?g.message:String(g)}`);}).finally(()=>{u=null,f("task-executor").peekActive().length>0&&S();});}return d$1={kvStorage:a=>se(C(s,`.${a}`)),blobStorage:a=>a?U(C(s,a)):U(s),blobStorageForRef:a=>U(b(a).value),chatStorageForRef:a=>gr(b(a).value),queueStorageForRef:(a,g)=>je(C(b(a).value,g)),scratchStorage:()=>oe(C(s,".tmp")),scratchStorageForRef:a=>oe(b(a).value),archiveFactory:()=>ge(C(s,"archive")),archiveFactoryForRef:a=>ge(b(a).value),journalAdapter:()=>Be(s),journalAdapterForRef:a=>Be(b(a).value),lock:it(C(s,dr)),callbackTransport:y,async dispatchExecution(a,g){let v=!!g.output?.ref;if(a.howToRun==="queue-storage")try{let k=m("task-executor"),A=typeof a.extra?.boardId=="string"?a.extra.boardId:void 0;if(v)return k.enqueueRequest({boardId:A,ref:a,args:g}),{dispatched:!0};let F=g.source_def?.bindTo??ue().slice(0,8),E=oe(C(s,".tmp")),M=E.create(JSON.stringify(g,null,2),`exec-in-${F}`,".json"),K=E.getUniqueKey(`exec-out-${F}`,".json"),te=E.getUniqueKey(`exec-err-${F}`,".txt"),G=a$1(E.keyRef(M)),I=a$1(E.keyRef(K)),P=a$1(E.keyRef(te));return k.enqueueRequest({boardId:A,ref:a,args:{subcommand:"run-source-fetch",inRef:G,outRef:I,errRef:P}}),{dispatched:!0}}catch(k){return {dispatched:false,error:k instanceof Error?k.message:String(k)}}if(v&&(a.howToRun==="http:post"||a.howToRun==="in-process-loop"))try{if(a.howToRun==="http:post"){let F=L(a.whatToRun),E=await fetch(F,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...g,...a.extra?{extra:a.extra}:{}})});if(!E.ok){let M=await E.text().catch(()=>"");return {dispatched:!1,error:`HTTP ${E.status}: ${M}`}}return {dispatched:!0}}let k=await Z(a,g,{cwd:process.cwd(),label:"dispatchExecution.directHostedWorker"});return k.result==="success"?{dispatched:!0}:{dispatched:!1,error:(typeof k.data?.error=="string"?k.data.error:k.error)||k.result}}catch(k){return {dispatched:false,error:k instanceof Error?k.message:String(k)}}let b=a.howToRun==="local-node"||a.howToRun==="local-process"||a.howToRun==="local-python"||a.howToRun==="built-in";if(n?.suppressSpawn&&b)return {dispatched:false};try{let k=g.source_def?.bindTo??ue().slice(0,8),A=oe(C(s,".tmp")),F=A.create(JSON.stringify(g,null,2),`exec-in-${k}`,".json"),E=A.getUniqueKey(`exec-out-${k}`,".json"),M=A.getUniqueKey(`exec-err-${k}`,".txt"),K=a$1(A.keyRef(F)),te=a$1(A.keyRef(E)),G=a$1(A.keyRef(M)),I=m("task-executor"),P=typeof a.extra?.boardId=="string"?a.extra.boardId:void 0;return I.enqueueRequest({boardId:P,ref:a,args:{subcommand:"run-source-fetch",inRef:K,outRef:te,errRef:G}}),S(),{dispatched:!0}}catch(k){let A=k instanceof Error?k.message:String(k);try{let F=ge(C(s,"archive")),E=new Date().toISOString().replace(/[:.]/g,"-"),M=g.source_def?.bindTo??"unknown";F.blob("exec-failures").write(`${E}-${M}.json`,JSON.stringify({error:A,args:g,ref:a,at:new Date().toISOString()},null,2));}catch{}return {dispatched:false,error:A}}},supportsDirectSourceOutput(a){return a.howToRun==="queue-storage"||a.howToRun==="http:post"||a.howToRun==="in-process-loop"},resolveBlob(a){let g=Ne(a.value)?Ie().read(a.value):U(s).read(a.value);if(g===null)throw new Error(`resolveBlob: blob not found: ::${a.kind}::${a.value}`);return g},hashFn:st,genId:()=>Qe(`${Date.now()}-${Math.random()}`).slice(0,32),kvStorageForRef:a=>se(b(a).value),requestProcessAccumulated(){if(n?.suppressSpawn||x)return;let a=this,g=p??=e(e$1,a,{boardRuntimeStoreRef:R("requestProcessAccumulated")}),v=we({id:"process-accumulated",queueStorage:f("process-accumulated"),handleMessage:async()=>{let b=await g.processAccumulatedEvents({});if(b.status!=="success")throw new Error(b.error||`processAccumulatedEvents returned ${b.status}`)}});x=de(v).catch(b=>{n?.onWarn?.(`[process-accumulated] in-process queue drain failed: ${b instanceof Error?b.message:String(b)}`);}).finally(()=>{x=null,f("process-accumulated").peekActive().length>0&&a.requestProcessAccumulated?.();});},publishBoardChangeNotifications(a){if(!n?.notifyChannel||a.length===0)return;let g=a.map(v=>({id:ue(),ts:new Date().toISOString(),boardRef:a$1(e$1),notification:v}));Ue(n.notifyChannel,g,n.onWarn);},onWarn:n?.onWarn},d$1}function an(e,t,r){let{cliDir:o,opts:n}=fr(t,r),s,u=()=>(s||(s=ct(o)),s),p=pr(e,o,n),x=Ae({resolveCliDir:u,...n?.resolveRef?{resolveRef:n.resolveRef}:{}});return {...p,invokeExecutor:x.invokeExecutor,validateSchema(c){let l=d$1(c);return {ok:l.errors.length===0,errors:l.errors}},absoluteBlob:Ie()}}function cn(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,u=se(C(e,...n));return a$2(p=>{let c=`${String(p).replace(/[^a-zA-Z0-9_-]/g,"_")}.jsonl`,l=C(s,c);return me(l)},u)}function gr(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 un(e,t={}){let r=t.filesSubdir??"files",o=r&&!at(e,r)?C(e,r):e;return a$3(U(o))}function dn(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,Ut as createExecutionRefInvoker,U as createFsBlobStorage,cn as createFsBoardChatStorage,un as createFsBoardFileArtifactsStore,an as createFsBoardNonCorePlatformAdapter,pr as createFsBoardPlatformAdapter,gr as createFsChatStorageForRefRoot,je as createFsQueueStorage,ar as createHostedAsyncBoardNonCorePublic,sn as createNodeSpawnInvocationAdapter,Ae as createNonCoreExecutorDispatcher,we as createQueueStorageLane,dn as decodeBoardRefFromToken,de as drainQueueLaneToIdle,ke as evaluateArgsMassaging,Z as invokeExecutionRef,ve as invokeExecutionRefSync,zt as invokeRefSync,Dt as registerInProcessExecutionHandler,L as resolveWhatToRunValue,Xe as resolveYamlFlowCliPath,Ye as startQueueLaneRunner,Ot as startQueueLaneRunners,Kt as unregisterInProcessExecutionHandler};//# sourceMappingURL=board-live-cards-node.js.map
7
+ `,"utf-8");}catch{}function o(){if(!a.existsSync(r))return {};try{let d=a.readFileSync(r,"utf-8"),g=JSON.parse(d);return g&&typeof g=="object"&&!Array.isArray(g)?g:{}}catch{return {}}}function n(d){let g=`${r}.${process.pid}.${randomUUID()}.tmp`;try{a.writeFileSync(g,JSON.stringify(d,null,2),"utf-8"),$(g,r);}catch{}}function s(){if(!a.existsSync(t))return;let d=o(),g=typeof d["retention.maxAgeMs"]=="number"?d["retention.maxAgeMs"]:0,x=typeof d["retention.sweepIntervalMs"]=="number"?d["retention.sweepIntervalMs"]:0;if(g<=0||x<=0)return;let u=typeof d["retention.lastSweepAt"]=="number"?d["retention.lastSweepAt"]:0,p=Date.now();if(p-u<x)return;d["retention.lastSweepAt"]=p,n(d);let h=p,R=y=>{let l;try{l=a.readdirSync(y,{withFileTypes:!0});}catch{return}for(let f of l){if(Date.now()-h>fr)return;let m=v.join(y,f.name);if(f.isDirectory()){R(m);continue}if(f.isFile())try{let S=a.statSync(m);if(p-S.mtimeMs>g)try{a.unlinkSync(m);}catch{}}catch{}}};R(v.join(e,ge)),R(v.join(e,me));}return {stream(d){let g=at(d),x=v.join(e,ge,`${g}.jsonl`),u=he(x);return {append(p){let h=u.append(p);try{s();}catch{}return h},readAll:()=>u.readAll(),readAfter:p=>u.readAfter(p),clear:()=>{u.clear&&u.clear();}}},blob(d){let g=at(d),x=v.join(e,me,g);a.mkdirSync(x,{recursive:true});let u=Y(x);return {read:p=>u.read(p),write:(p,h)=>{u.write(p,h);try{s();}catch{}},exists:p=>u.exists(p),remove:p=>u.remove(p),readBytes:u.readBytes?p=>u.readBytes(p):void 0,writeBytes:u.writeBytes?(p,h)=>{u.writeBytes(p,h);try{s();}catch{}}:void 0,listKeys:p=>u.listKeys(p),stat:u.stat?p=>u.stat(p):void 0,renameKey:(p,h)=>u.renameKey(p,h)}},listStreams(d){let g=v.join(e,ge);try{return a.readdirSync(g,{withFileTypes:!0}).filter(x=>x.isFile()&&x.name.endsWith(".jsonl")).map(x=>x.name.slice(0,-6)).filter(x=>!d||x.startsWith(d)).sort()}catch{return []}},listBlobs(d){let g=v.join(e,me);try{return a.readdirSync(g,{withFileTypes:!0}).filter(x=>x.isDirectory()).map(x=>x.name).filter(x=>!d||x.startsWith(d)).sort()}catch{return []}},config:{get(d){return o()[d]??null},set(d,g){let x=o();g==null?delete x[d]:x[d]=g,n(x);}}}}function ae(e){function t(o){return v.join(e,...o.split("/"))+".json"}function r(o,n,s,d){if(a.existsSync(o))for(let g of a.readdirSync(o,{withFileTypes:true})){let x=n?`${n}/${g.name}`:g.name;if(g.isDirectory()){r(v.join(o,g.name),x,s,d);continue}if(!g.isFile()||!g.name.endsWith(".json"))continue;let u=x.replace(/\.json$/,"");(!s||u.startsWith(s))&&d.push(u);}}return {read(o){let n=t(o);if(!a.existsSync(n))return null;try{return JSON.parse(a.readFileSync(n,"utf-8"))}catch{return null}},write(o,n){let s=t(o),d=`${s}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(v.dirname(s),{recursive:true}),a.writeFileSync(d,JSON.stringify(n,null,2),"utf-8"),$(d,s);},delete(o){let n=t(o);try{a.existsSync(n)&&a.unlinkSync(n);}catch{}},listKeys(o){let n=[];return r(e,"",o,n),n.sort()}}}function he(e){function t(){if(!a.existsSync(e))return [];let r=a.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 a.mkdirSync(v.dirname(e),{recursive:true}),a.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(d=>d.id===r),s=n===-1?o:o.slice(n+1);return {entries:s,newCursor:s.length>0?s[s.length-1].id:r}},clear(){a.existsSync(e)&&a.truncateSync(e,0);}}}function Ie(e){if(e==null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return `[${e.map(Ie).join(",")}]`;let t=e;return `{${Object.keys(t).sort().map(o=>`${JSON.stringify(o)}:${Ie(t[o])}`).join(",")}}`}function ct(e){return createHash("sha256").update(Ie(e)).digest("hex")}function $e(e){let t=v.join(e,"board-journal.jsonl");return {readAllEntries(){if(!a.existsSync(t))return [];let r=a.readFileSync(t,"utf-8").trim();return r?r.split(`
10
+ `).filter(Boolean).map(o=>JSON.parse(o)):[]},appendEntry(r){a.appendFileSync(t,JSON.stringify(r)+`
11
+ `,"utf-8");},generateId(){return randomUUID()}}}function ut(e){return {tryAcquire(){try{if(!a.existsSync(e)){a.mkdirSync(v.dirname(e),{recursive:!0});try{a.writeFileSync(e,"{}",{flag:"wx"});}catch{}}return lockSync(e,{retries:0})}catch{return null}}}}function dt(e,t){if(e?.kind!=="fs-path"||typeof e.value!="string"||!e.value.trim())throw new Error(`${t} must be an fs-path ref`);return v__default.normalize(e.value)}function Re(e){a__default.existsSync(e)||a__default.mkdirSync(e,{recursive:true});}function pr(e=new Date){let t=r=>String(r).padStart(2,"0");return `${t(e.getMonth()+1)}${t(e.getDate())}-${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}`}function lt(e){return a__default.existsSync(e)?JSON.parse(a__default.readFileSync(e,"utf8")):null}function gr(e){let t=e.registry??{},r=dt(t.boardsIndexRef,"registry.boardsIndexRef"),o=dt(t.boardsLayoutRef,"registry.boardsLayoutRef"),n=t.deprecatedContainerRef?.kind==="fs-path"&&typeof t.deprecatedContainerRef.value=="string"&&t.deprecatedContainerRef.value.trim()?v__default.normalize(t.deprecatedContainerRef.value):"";function s(i){return v__default.join(r,`${i}.json`)}function d(i){return v__default.join(o,`${i}.json`)}function g(i){Re(n);let k=pr(),w="",b=1;for(;;){let A=`${i}-${k}${w}`,C=v__default.join(n,`${A}.json`),E=v__default.join(n,`${A}.layout.json`),j=v__default.join(n,A);if(!a__default.existsSync(C)&&!a__default.existsSync(E)&&!a__default.existsSync(j))return {archiveBase:A,archiveRecordPath:C,archiveLayoutPath:E,archiveWorkspaceDir:j};b+=1,w=`-${b}`;}}function x(i,k){if(!i||!a__default.existsSync(i))return "";let w=10;for(let b=1;b<=w;b+=1)try{return a__default.renameSync(i,k),k}catch(A){let C=A&&typeof A=="object"&&"code"in A?String(A.code??""):"";if(!(C==="EPERM"||C==="EBUSY"||C==="EACCES"||C==="ENOTEMPTY")||b===w)return "";}return ""}async function u(){if(!a__default.existsSync(r))return [];let i=[];for(let k of a__default.readdirSync(r)){if(!k.endsWith(".json"))continue;let w=k.slice(0,-5),b=JSON.parse(a__default.readFileSync(v__default.join(r,k),"utf8"));i.push({id:w,record:b});}return i}async function p(i){return lt(s(i))}async function h(i){return a__default.existsSync(s(i))}async function R(i,k){Re(r),a__default.writeFileSync(s(i),JSON.stringify(k,null,2),{encoding:"utf8",flag:"wx"});}async function y(i,k){Re(r),a__default.writeFileSync(s(i),JSON.stringify(k,null,2),{encoding:"utf8",flag:"w"});}async function l(i){return lt(d(i))}async function f(i,k){Re(o),a__default.writeFileSync(d(i),JSON.stringify(k,null,2),{encoding:"utf8",flag:"w"});}async function m(i){let k=d(i);a__default.existsSync(k)&&a__default.unlinkSync(k);}async function S(i,k,w={}){if(await R(i,k),w.layout==null){await m(i);return}await f(i,w.layout);}async function c(i,k={}){let w=s(i),b=d(i);if(!a__default.existsSync(w))return null;let A=typeof k.workspaceDir=="string"&&k.workspaceDir.trim()?v__default.normalize(k.workspaceDir):"";if(!n){if(a__default.rmSync(w,{force:true}),a__default.existsSync(b)&&a__default.rmSync(b,{force:true}),A&&a__default.existsSync(A))try{a__default.rmSync(A,{recursive:!0,force:!0});}catch{}return {archiveId:"",archiveRecordPath:"",archiveWorkspaceDir:"",archiveLayoutPath:""}}let{archiveBase:C,archiveRecordPath:E,archiveLayoutPath:j,archiveWorkspaceDir:J}=g(i);a__default.renameSync(w,E),a__default.existsSync(b)&&a__default.renameSync(b,j);let V=x(A,J);return {archiveId:C,archiveRecordPath:E,archiveWorkspaceDir:V,archiveLayoutPath:a__default.existsSync(j)?j:""}}return {kind:"fs-board-container",list:u,get:p,has:h,put:R,set:y,getLayout:l,setLayout:f,removeLayout:m,provision:S,archive:c}}function Z(e){return {status:"success",data:e}}function D(e){return {status:"fail",error:e}}function oe(e){return {status:"error",error:e instanceof Error?e.message:String(e)}}function se(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function mr(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(y,l,f){let m=await n();if(!m||!t.invokeExecutor)throw new Error(`${y} is not supported on the ${o} yet`);let c=(await t.invokeExecutor(m,y,{...l!==void 0?{input:typeof l=="string"?l:JSON.stringify(l)}:{},...f!==void 0?{timeout:f}:{}})).trim();return c?se(JSON.parse(c)):{}}async function d(y){try{if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return D("validateCardPreflight requires card JSON object in body");let l=y.body,f=l["card-content"]??l,m=typeof f.id=="string"?f.id:"(unknown)",S=a$6(f),c=Array.isArray(f.source_defs)&&f.source_defs.length>0,i=[...S.issues];if(c)if(t.invokeExecutor&&await n())for(let k of f.source_defs){let w=typeof k.bindTo=="string"?k.bindTo:"(unknown)";try{let b=await s("validate-source-def",k,1e4);if(b.ok!==!0&&Array.isArray(b.errors))for(let A of b.errors)typeof A=="string"&&A&&i.push(`source "${w}": ${A}`);}catch(b){i.push(`source "${w}": executor validate-source-def failed \u2014 ${b instanceof Error?b.message:String(b)}`);}}else await n()&&i.push(`executor-backed source_def preflight is not supported on the ${o} yet`);return Z({cardId:m,isValid:i.length===0,issues:i})}catch(l){return oe(l)}}function g(y){try{if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return D("evalCardCompute requires a JSON object in body");let l=y.body,f=l["card-content"]??l,m=typeof f.id=="string"?f.id:"(unknown)",S=l["mock-fetched-sources"]??{},c=l["mock-requires"]??{},i=f.compute;if(!i||!Array.isArray(i)||i.length===0)return Z({cardId:m,ok:!0,computed_values:{},errors:[]});let k={id:m,card_data:f.card_data??{},requires:c,source_defs:f.source_defs,compute:i},w=a$7.runSync(k,{sourcesData:S});return Z({cardId:m,ok:(w.errors??[]).length===0,computed_values:w.node.computed_values??{},errors:w.errors??[]})}catch(l){return oe(l)}}async function x(y){return D(`${y} is not supported on the ${o} yet`)}async function u(){try{return t.invokeExecutor&&await n()?Z(await s("describe-capabilities",void 0,1e4)):await x("describeTaskExecutorCapabilities")}catch(y){return oe(y)}}async function p(y){try{if(!t.invokeExecutor||!await n())return await x("probeSourcePreflight");if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return D("probeSourcePreflight requires card JSON object in body");let l=y.body,f=l["card-content"]??l,m=se(l["mock-projections"]??{}),S=y.params?.sourceIdx,c=Array.isArray(f.source_defs)?f.source_defs:[];if(S===void 0)return D("probeSourcePreflight requires params.sourceIdx");if(S<0||S>=c.length)return D(`sourceIdx ${S} out of range (card has ${c.length} source(s))`);let i=c[S],k=typeof i.bindTo=="string"?i.bindTo:"source",w=await s("probe-source-preflight",{...i,_projections:m},i.timeout??6e4);return w.ok!==!0?D(typeof w.error=="string"?w.error:"Preflight probe failed"):Z({bindTo:k,reachable:w.reachable,latencyMs:w.latencyMs,...typeof w.note=="string"?{note:w.note}:{}})}catch(l){return oe(l)}}async function h(y){try{if(!t.invokeExecutor||!await n())return await x("runSourcePreflight");if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return D("runSourcePreflight requires card JSON object in body");let l=y.body,f=l["card-content"]??l,m=se(l["mock-projections"]??{}),S=y.params?.sourceIdx,c=Array.isArray(f.source_defs)?f.source_defs:[];if(S===void 0)return D("runSourcePreflight requires params.sourceIdx");if(S<0||S>=c.length)return D(`sourceIdx ${S} out of range (card has ${c.length} source(s))`);let i=c[S],k=typeof i.bindTo=="string"?i.bindTo:"source",w=await s("run-source-preflight",{...i,_projections:m},i.timeout??6e4);return w.ok!==!0?Z({bindTo:k,ok:!1,result:null,issues:[typeof w.error=="string"?w.error:"Preflight run failed"]}):Z({bindTo:k,ok:!0,result:Object.prototype.hasOwnProperty.call(w,"resultValue")?w.resultValue:null,issues:[]})}catch(l){return oe(l)}}async function R(y){try{if(!y.body||typeof y.body!="object"||Array.isArray(y.body))return D("simulateCardCycle requires a JSON object in body");let l=y.body,f=l["card-content"]??l,m=typeof f.id=="string"?f.id:"(unknown)",S=se(l["mock-fetched-sources"]??{}),c=se(l["mock-requires"]??{}),i=await d({body:{"card-content":f}}),k=i.status==="success"?{isValid:i.data.isValid,issues:i.data.issues}:{isValid:!1,issues:[i.status==="fail"?i.error:"internal error"]},w=Array.isArray(f.source_defs)?f.source_defs:[],b=se(f.card_data??{}),A=[],C=[];if(w.length>0){A=a$7.enrichSourcesSync(w,{card_data:b,requires:c});for(let P of A){let M=P.projections,U=P._projections;if(M&&U){for(let O of Object.keys(M))if(U[O]===void 0){let gt=typeof P.bindTo=="string"?P.bindTo:"(unknown)";C.push({bindTo:gt,key:O,error:`Projection "${O}" resolved to undefined`});}}}}let E=[],j={...S};for(let P=0;P<A.length;P+=1){let M=A[P],U=typeof M.bindTo=="string"?M.bindTo:`source_${P}`;if(!t.invokeExecutor||!await n()){E.push({bindTo:U,skipped:!0,error:"No task executor configured"});continue}try{let O=await s("run-source-preflight",M,M.timeout??6e4);O.ok===!0&&!Object.prototype.hasOwnProperty.call(S,U)&&Object.prototype.hasOwnProperty.call(O,"resultValue")&&(j[U]=O.resultValue),E.push({bindTo:U,reachable:O.reachable,latencyMs:O.latencyMs,...O.ok===!0?{}:{error:typeof O.error=="string"?O.error:"Preflight run failed"}});}catch{E.push({bindTo:U,skipped:!0,error:"Executor does not support run-source-preflight"});}}let J=f.compute,V={},X=[];if(J&&Array.isArray(J)&&J.length>0){let P={id:m,card_data:b,requires:c,source_defs:f.source_defs,compute:J},M=a$7.runSync(P,{sourcesData:j});V=M.node.computed_values??{},X=M.errors??[];}return Z({cardId:m,ok:k.isValid&&C.length===0&&X.length===0&&E.every(P=>!P.error),validation:k,source_probes:E,projection_errors:C,fetched_sources:j,computed_values:V,compute_errors:X})}catch(l){return oe(l)}}return {describeTaskExecutorCapabilities:u,validateCardPreflight:d,evalCardCompute:g,probeSourcePreflight:p,runSourcePreflight:h,simulateCardCycle:R}}function hn(){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 Rr=".board.lock";function ft(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 Sr(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function xr(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function pt(e){if(e)return e;let t=We(import.meta.url),r=[t,I(t,"..","cli","node"),I(t,"..","..","cli","node")];for(let o of r)try{return Ge(o),o}catch{}throw new Error(`createFsBoardPlatformAdapter: could not resolve a public CLI directory from module dir ${t}`)}function wr(e$1,t,r){let{cliDir:o,opts:n}=Sr(t,r),s=e$1.value,d$1=null,g,x=null,u;function p(){return u||(u=pt(o)),u}function h(c){let i=n?.queueStoreRef;if(!i)throw new Error(`createFsBoardPlatformAdapter: ${c} requires opts.queueStoreRef`);return i}function R(c){let i=n?.boardRuntimeStoreRef;if(!i)throw new Error(`createFsBoardPlatformAdapter: ${c} requires opts.boardRuntimeStoreRef`);return i}let y=n?.callbackTransport??d({notifyChannel:n?.notifyChannel,boardRuntimeStoreRef:n?.boardRuntimeStoreRef,queueStoreRef:n?.queueStoreRef}),l;function f(c){return l.queueStorageForRef(h(`internal lane "${c}"`),c)}function m(c){return a$5(f(c))}function S(){if(n?.suppressSpawn||d$1)return;let c=be({id:"task-executor",workerStore:m("task-executor"),handleRequest:async(i,k)=>{let w=await te(k.ref,k.args,{cliDir:p(),cwd:process.cwd(),label:"fsBoardAdapter.boardWorker"});if(w.result!=="success"){let b=typeof w.data?.error=="string"?w.data.error:w.error;throw new Error(b||w.result)}}});d$1=fe(c).catch(i=>{n?.onWarn?.(`[board-worker] in-process queue drain failed: ${i instanceof Error?i.message:String(i)}`);}).finally(()=>{d$1=null,f("task-executor").peekActive().length>0&&S();});}return l={kvStorage:c=>ae(I(s,`.${c}`)),blobStorage:c=>c?Y(I(s,c)):Y(s),blobStorageForRef:c=>Y(b(c).value),chatStorageForRef:c=>kr(b(c).value),queueStorageForRef:(c,i)=>Fe(I(b(c).value,i)),scratchStorage:()=>ie(I(s,".tmp")),scratchStorageForRef:c=>ie(b(c).value),archiveFactory:()=>ye(I(s,"archive")),archiveFactoryForRef:c=>ye(b(c).value),journalAdapter:()=>$e(s),journalAdapterForRef:c=>$e(b(c).value),lock:ut(I(s,Rr)),callbackTransport:y,async dispatchExecution(c,i){let k=!!i.output?.ref;if(c.howToRun==="queue-storage")try{let b=m("task-executor"),A=typeof c.extra?.boardId=="string"?c.extra.boardId:void 0;if(k)return b.enqueueRequest({boardId:A,ref:c,args:i}),{dispatched:!0};let C=i.source_def?.bindTo??le().slice(0,8),E=ie(I(s,".tmp")),j=E.create(JSON.stringify(i,null,2),`exec-in-${C}`,".json"),J=E.getUniqueKey(`exec-out-${C}`,".json"),V=E.getUniqueKey(`exec-err-${C}`,".txt"),X=a$2(E.keyRef(j)),P=a$2(E.keyRef(J)),M=a$2(E.keyRef(V));return b.enqueueRequest({boardId:A,ref:c,args:{subcommand:"run-source-fetch",inRef:X,outRef:P,errRef:M}}),{dispatched:!0}}catch(b){return {dispatched:false,error:b instanceof Error?b.message:String(b)}}if(k&&(c.howToRun==="http:post"||c.howToRun==="in-process-loop"))try{if(c.howToRun==="http:post"){let C=q(c.whatToRun),E=await fetch(C,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...i,...c.extra?{extra:c.extra}:{}})});if(!E.ok){let j=await E.text().catch(()=>"");return {dispatched:!1,error:`HTTP ${E.status}: ${j}`}}return {dispatched:!0}}let b=await te(c,i,{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 w=c.howToRun==="local-node"||c.howToRun==="local-process"||c.howToRun==="local-python"||c.howToRun==="built-in";if(n?.suppressSpawn&&w)return {dispatched:false};try{let b=i.source_def?.bindTo??le().slice(0,8),A=ie(I(s,".tmp")),C=A.create(JSON.stringify(i,null,2),`exec-in-${b}`,".json"),E=A.getUniqueKey(`exec-out-${b}`,".json"),j=A.getUniqueKey(`exec-err-${b}`,".txt"),J=a$2(A.keyRef(C)),V=a$2(A.keyRef(E)),X=a$2(A.keyRef(j)),P=m("task-executor"),M=typeof c.extra?.boardId=="string"?c.extra.boardId:void 0;return P.enqueueRequest({boardId:M,ref:c,args:{subcommand:"run-source-fetch",inRef:J,outRef:V,errRef:X}}),S(),{dispatched:!0}}catch(b){let A=b instanceof Error?b.message:String(b);try{let C=ye(I(s,"archive")),E=new Date().toISOString().replace(/[:.]/g,"-"),j=i.source_def?.bindTo??"unknown";C.blob("exec-failures").write(`${E}-${j}.json`,JSON.stringify({error:A,args:i,ref:c,at:new Date().toISOString()},null,2));}catch{}return {dispatched:false,error:A}}},supportsDirectSourceOutput(c){return c.howToRun==="queue-storage"||c.howToRun==="http:post"||c.howToRun==="in-process-loop"},resolveBlob(c){let i=Je(c.value)?Pe().read(c.value):Y(s).read(c.value);if(i===null)throw new Error(`resolveBlob: blob not found: ::${c.kind}::${c.value}`);return i},hashFn:ct,genId:()=>Ke(`${Date.now()}-${Math.random()}`).slice(0,32),kvStorageForRef:c=>ae(b(c).value),requestProcessAccumulated(){if(n?.suppressSpawn||x)return;let c=this,i=g??=e(e$1,c,{boardRuntimeStoreRef:R("requestProcessAccumulated")}),k=ve({id:"process-accumulated",queueStorage:f("process-accumulated"),handleMessage:async()=>{let w=await i.processAccumulatedEvents({});if(w.status!=="success")throw new Error(w.error||`processAccumulatedEvents returned ${w.status}`)}});x=fe(k).catch(w=>{n?.onWarn?.(`[process-accumulated] in-process queue drain failed: ${w instanceof Error?w.message:String(w)}`);}).finally(()=>{x=null,f("process-accumulated").peekActive().length>0&&c.requestProcessAccumulated?.();});},publishBoardChangeNotifications(c){if(!n?.notifyChannel||c.length===0)return;let i=c.map(k=>({id:le(),ts:new Date().toISOString(),boardRef:a$2(e$1),notification:k}));Ye(n.notifyChannel,i,n.onWarn);},onWarn:n?.onWarn},l}function Rn(e,t,r){let{cliDir:o,opts:n}=xr(t,r),s,d=()=>(s||(s=pt(o)),s),g=wr(e,o,n),x=Ce({resolveCliDir:d,...n?.resolveRef?{resolveRef:n.resolveRef}:{}});return {...g,invokeExecutor:x.invokeExecutor,validateSchema(u){let p=d$1(u);return {ok:p.errors.length===0,errors:p.errors}},absoluteBlob:Pe()}}function Sn(e,t={}){let r=t.chatsSubdir??"chats",o=t.kvSubdir??".kv",n=o?[o,"chat"]:["chat"],s=r&&!ft(e,r)?I(e,r):e,d=ae(I(e,...n));return a$3(g=>{let u=`${String(g).replace(/[^a-zA-Z0-9_-]/g,"_")}.jsonl`,p=I(s,u);return he(p)},d)}function kr(e){return a$3(t=>{let o=`${String(t).replace(/[^a-zA-Z0-9_-]/g,"_")}.jsonl`;return he(I(e,"journal",o))},ae(I(e,"kv")))}function xn(e,t={}){let r=t.filesSubdir??"files",o=r&&!ft(e,r)?I(e,r):e;return a$4(Y(o))}function wn(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString());return typeof t.br=="string"?t.br:null}catch{return null}}export{pe as buildLocalBaseSpec,be as createBoardWorkerQueueLane,er as createExecutionRefInvoker,Y as createFsBlobStorage,Sn as createFsBoardChatStorage,gr as createFsBoardContainerStorage,xn as createFsBoardFileArtifactsStore,Rn as createFsBoardNonCorePlatformAdapter,wr as createFsBoardPlatformAdapter,kr as createFsChatStorageForRefRoot,Fe as createFsQueueStorage,mr as createHostedAsyncBoardNonCorePublic,hn as createNodeSpawnInvocationAdapter,Ce as createNonCoreExecutorDispatcher,ve as createQueueStorageLane,wn as decodeBoardRefFromToken,fe as drainQueueLaneToIdle,Te as evaluateArgsMassaging,te as invokeExecutionRef,Ee as invokeExecutionRefSync,tr as invokeRefSync,zt as registerInProcessExecutionHandler,q as resolveWhatToRunValue,rt as resolveYamlFlowCliPath,et as startQueueLaneRunner,Jt as startQueueLaneRunners,Gt as unregisterInProcessExecutionHandler};//# sourceMappingURL=board-live-cards-node.js.map
12
12
  //# sourceMappingURL=board-live-cards-node.js.map
@@ -2,7 +2,7 @@ import { a as KindValueRef } from './storage-interface-DogVPooM.js';
2
2
  import { CommandInput, CommandResult, BoardSseOneShotPayload } from './board-live-cards-public.js';
3
3
  import { k as BoardStatusObject, h as NotificationEmitter } from './board-live-cards-lib-iU8xOwNp.js';
4
4
  import { ExecutionRef } from './execution-refs.js';
5
- import { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-ByBRFn1G.js';
5
+ import { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-CVvZYqNy.js';
6
6
 
7
7
  interface AsyncBoardLiveCardsPublic {
8
8
  init(input: CommandInput): Promise<CommandResult>;
@@ -2,7 +2,7 @@ import { a as KindValueRef } from './storage-interface-DogVPooM.cjs';
2
2
  import { CommandInput, CommandResult, BoardSseOneShotPayload } from './board-live-cards-public.cjs';
3
3
  import { k as BoardStatusObject, h as NotificationEmitter } from './board-live-cards-lib-DVh3t9NT.cjs';
4
4
  import { ExecutionRef } from './execution-refs.cjs';
5
- import { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-DjBwE0m9.cjs';
5
+ import { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-O7EUvJ3W.cjs';
6
6
 
7
7
  interface AsyncBoardLiveCardsPublic {
8
8
  init(input: CommandInput): Promise<CommandResult>;
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkWE7JOO4T_cjs=require('./chunk-WE7JOO4T.cjs');require('./chunk-AW3COGCI.cjs'),require('./chunk-SIPLKLWU.cjs');var chunkJ7KE7SPA_cjs=require('./chunk-J7KE7SPA.cjs');require('./chunk-7JVHYHT2.cjs'),require('./chunk-VQCIOKJV.cjs'),require('./chunk-VI36DRWG.cjs'),require('./chunk-7Y47QXMX.cjs'),require('./chunk-QBEQL4TL.cjs'),require('./chunk-QEHKMLHA.cjs'),require('./chunk-UJ7ZTV4J.cjs'),require('./chunk-2RIHC5TZ.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"createBoardLiveCardsNonCorePublic",{enumerable:true,get:function(){return chunkWE7JOO4T_cjs.f}});Object.defineProperty(exports,"createBoardLiveCardsPublic",{enumerable:true,get:function(){return chunkWE7JOO4T_cjs.e}});Object.defineProperty(exports,"BOARD_GRAPH_KEY",{enumerable:true,get:function(){return chunkJ7KE7SPA_cjs.q}});Object.defineProperty(exports,"EMPTY_CONFIG",{enumerable:true,get:function(){return chunkJ7KE7SPA_cjs.D}});Object.defineProperty(exports,"SNAPSHOT_SCHEMA_VERSION_V1",{enumerable:true,get:function(){return chunkJ7KE7SPA_cjs.p}});//# sourceMappingURL=board-live-cards-public.cjs.map
1
+ 'use strict';var chunk3XPY7CCM_cjs=require('./chunk-3XPY7CCM.cjs');require('./chunk-AW3COGCI.cjs'),require('./chunk-SIPLKLWU.cjs');var chunkJ7KE7SPA_cjs=require('./chunk-J7KE7SPA.cjs');require('./chunk-7JVHYHT2.cjs'),require('./chunk-VQCIOKJV.cjs'),require('./chunk-VI36DRWG.cjs'),require('./chunk-7Y47QXMX.cjs'),require('./chunk-QBEQL4TL.cjs'),require('./chunk-QEHKMLHA.cjs'),require('./chunk-UJ7ZTV4J.cjs'),require('./chunk-2RIHC5TZ.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"createBoardLiveCardsNonCorePublic",{enumerable:true,get:function(){return chunk3XPY7CCM_cjs.f}});Object.defineProperty(exports,"createBoardLiveCardsPublic",{enumerable:true,get:function(){return chunk3XPY7CCM_cjs.e}});Object.defineProperty(exports,"BOARD_GRAPH_KEY",{enumerable:true,get:function(){return chunkJ7KE7SPA_cjs.q}});Object.defineProperty(exports,"EMPTY_CONFIG",{enumerable:true,get:function(){return chunkJ7KE7SPA_cjs.D}});Object.defineProperty(exports,"SNAPSHOT_SCHEMA_VERSION_V1",{enumerable:true,get:function(){return chunkJ7KE7SPA_cjs.p}});//# sourceMappingURL=board-live-cards-public.cjs.map
2
2
  //# sourceMappingURL=board-live-cards-public.cjs.map
@@ -1,8 +1,8 @@
1
1
  import { K as KVStorage, B as BlobStorage, S as ScratchStorage, A as ArchiveFactory, Q as QueueStorage, g as AtomicRelayLock, a as KindValueRef } from './storage-interface-DogVPooM.cjs';
2
2
  import { C as ChatStorage, B as BoardCallbackTransport } from './board-callback-transport-kP0K6UMq.cjs';
3
3
  import { ExecutionRef } from './execution-refs.cjs';
4
- import { k as BoardStatusObject, L as LiveCard, h as NotificationEmitter, J as JournalStorageAdapter, B as BoardChangeNotification } from './board-live-cards-lib-DVh3t9NT.cjs';
5
- export { l as BOARD_GRAPH_KEY, E as EMPTY_CONFIG, S as SNAPSHOT_SCHEMA_VERSION_V1 } from './board-live-cards-lib-DVh3t9NT.cjs';
4
+ import { k as BoardStatusObject, L as LiveCard, h as NotificationEmitter, J as JournalStorageAdapter, R as RuntimeNotification } from './board-live-cards-lib-DVh3t9NT.cjs';
5
+ export { l as BOARD_GRAPH_KEY, B as BoardChangeNotification, E as EMPTY_CONFIG, S as SNAPSHOT_SCHEMA_VERSION_V1 } from './board-live-cards-lib-DVh3t9NT.cjs';
6
6
  import './types-BBhqYGhE.cjs';
7
7
 
8
8
  /**
@@ -171,7 +171,7 @@ interface BoardPlatformAdapter {
171
171
  * Optional cross-process board change notification publisher (named pipe, webhook, pubsub, etc.).
172
172
  * Called once per drain cycle with the complete batch of notifications produced in that cycle.
173
173
  */
174
- publishBoardChangeNotifications?(notifications: BoardChangeNotification[]): void | Promise<void>;
174
+ publishBoardChangeNotifications?(notifications: RuntimeNotification[]): void | Promise<void>;
175
175
  /** Optional warn sink — defaults to no-op. */
176
176
  onWarn?(msg: string): void;
177
177
  }
@@ -323,4 +323,4 @@ declare function createBoardLiveCardsNonCorePublic(baseRef: KindValueRef, adapte
323
323
  taskExecutorRef?: ExecutionRef;
324
324
  }): BoardLiveCardsNonCorePublic;
325
325
 
326
- export { BoardChangeNotification, type BoardLiveCardsNonCorePublic, type BoardLiveCardsPublic, type BoardLiveCardsPublicOptions, type BoardNonCorePlatformAdapter, type BoardPlatformAdapter, type BoardSseOneShotPayload, type CommandInput, type CommandResult, createBoardLiveCardsNonCorePublic, createBoardLiveCardsPublic };
326
+ export { type BoardLiveCardsNonCorePublic, type BoardLiveCardsPublic, type BoardLiveCardsPublicOptions, type BoardNonCorePlatformAdapter, type BoardPlatformAdapter, type BoardSseOneShotPayload, type CommandInput, type CommandResult, createBoardLiveCardsNonCorePublic, createBoardLiveCardsPublic };
@@ -1,8 +1,8 @@
1
1
  import { K as KVStorage, B as BlobStorage, S as ScratchStorage, A as ArchiveFactory, Q as QueueStorage, g as AtomicRelayLock, a as KindValueRef } from './storage-interface-DogVPooM.js';
2
2
  import { C as ChatStorage, B as BoardCallbackTransport } from './board-callback-transport-Bekq8Gp-.js';
3
3
  import { ExecutionRef } from './execution-refs.js';
4
- import { k as BoardStatusObject, L as LiveCard, h as NotificationEmitter, J as JournalStorageAdapter, B as BoardChangeNotification } from './board-live-cards-lib-iU8xOwNp.js';
5
- export { l as BOARD_GRAPH_KEY, E as EMPTY_CONFIG, S as SNAPSHOT_SCHEMA_VERSION_V1 } from './board-live-cards-lib-iU8xOwNp.js';
4
+ import { k as BoardStatusObject, L as LiveCard, h as NotificationEmitter, J as JournalStorageAdapter, R as RuntimeNotification } from './board-live-cards-lib-iU8xOwNp.js';
5
+ export { l as BOARD_GRAPH_KEY, B as BoardChangeNotification, E as EMPTY_CONFIG, S as SNAPSHOT_SCHEMA_VERSION_V1 } from './board-live-cards-lib-iU8xOwNp.js';
6
6
  import './types-BBhqYGhE.js';
7
7
 
8
8
  /**
@@ -171,7 +171,7 @@ interface BoardPlatformAdapter {
171
171
  * Optional cross-process board change notification publisher (named pipe, webhook, pubsub, etc.).
172
172
  * Called once per drain cycle with the complete batch of notifications produced in that cycle.
173
173
  */
174
- publishBoardChangeNotifications?(notifications: BoardChangeNotification[]): void | Promise<void>;
174
+ publishBoardChangeNotifications?(notifications: RuntimeNotification[]): void | Promise<void>;
175
175
  /** Optional warn sink — defaults to no-op. */
176
176
  onWarn?(msg: string): void;
177
177
  }
@@ -323,4 +323,4 @@ declare function createBoardLiveCardsNonCorePublic(baseRef: KindValueRef, adapte
323
323
  taskExecutorRef?: ExecutionRef;
324
324
  }): BoardLiveCardsNonCorePublic;
325
325
 
326
- export { BoardChangeNotification, type BoardLiveCardsNonCorePublic, type BoardLiveCardsPublic, type BoardLiveCardsPublicOptions, type BoardNonCorePlatformAdapter, type BoardPlatformAdapter, type BoardSseOneShotPayload, type CommandInput, type CommandResult, createBoardLiveCardsNonCorePublic, createBoardLiveCardsPublic };
326
+ export { type BoardLiveCardsNonCorePublic, type BoardLiveCardsPublic, type BoardLiveCardsPublicOptions, type BoardNonCorePlatformAdapter, type BoardPlatformAdapter, type BoardSseOneShotPayload, type CommandInput, type CommandResult, createBoardLiveCardsNonCorePublic, createBoardLiveCardsPublic };
@@ -1,2 +1,2 @@
1
- export{f as createBoardLiveCardsNonCorePublic,e as createBoardLiveCardsPublic}from'./chunk-HOSD6UHA.js';import'./chunk-FULAMLUU.js';import'./chunk-EOVTMJYZ.js';export{q as BOARD_GRAPH_KEY,D as EMPTY_CONFIG,p as SNAPSHOT_SCHEMA_VERSION_V1}from'./chunk-WGYS2L4V.js';import'./chunk-ANKA7HEJ.js';import'./chunk-44L64VQ2.js';import'./chunk-Q444D72R.js';import'./chunk-R7SQQSDX.js';import'./chunk-ATOQP3BD.js';import'./chunk-YT76JNKE.js';import'./chunk-MNEOJWPS.js';import'./chunk-UGB7PC4P.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=board-live-cards-public.js.map
1
+ export{f as createBoardLiveCardsNonCorePublic,e as createBoardLiveCardsPublic}from'./chunk-X32SJDLT.js';import'./chunk-FULAMLUU.js';import'./chunk-EOVTMJYZ.js';export{q as BOARD_GRAPH_KEY,D as EMPTY_CONFIG,p as SNAPSHOT_SCHEMA_VERSION_V1}from'./chunk-WGYS2L4V.js';import'./chunk-ANKA7HEJ.js';import'./chunk-44L64VQ2.js';import'./chunk-Q444D72R.js';import'./chunk-R7SQQSDX.js';import'./chunk-ATOQP3BD.js';import'./chunk-YT76JNKE.js';import'./chunk-MNEOJWPS.js';import'./chunk-UGB7PC4P.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 chunkZWXZ5DBX_cjs=require('./chunk-ZWXZ5DBX.cjs');require('./chunk-LFVMX23W.cjs'),require('./chunk-NM6O35RY.cjs'),require('./chunk-NBJTYAYN.cjs'),require('./chunk-NOAERAOE.cjs');var chunkBQJVCCFU_cjs=require('./chunk-BQJVCCFU.cjs');require('./chunk-BQUQTOPB.cjs'),require('./chunk-GPCMBPLK.cjs'),require('./chunk-7FGPOGRV.cjs'),require('./chunk-LPXVVMQT.cjs'),require('./chunk-272IYUKT.cjs'),require('./chunk-5RUSICUC.cjs'),require('./chunk-WRMOGPRG.cjs'),require('./chunk-WE7JOO4T.cjs'),require('./chunk-AW3COGCI.cjs'),require('./chunk-SIPLKLWU.cjs'),require('./chunk-GHUW6P4G.cjs'),require('./chunk-J7KE7SPA.cjs'),require('./chunk-7JVHYHT2.cjs'),require('./chunk-VQCIOKJV.cjs'),require('./chunk-VI36DRWG.cjs'),require('./chunk-7Y47QXMX.cjs'),require('./chunk-QBEQL4TL.cjs'),require('./chunk-QEHKMLHA.cjs'),require('./chunk-UJ7ZTV4J.cjs'),require('./chunk-SDJ3747Q.cjs'),require('./chunk-OF4FPYNI.cjs'),require('./chunk-2RIHC5TZ.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"createMultiBoardServerRuntime",{enumerable:true,get:function(){return chunkZWXZ5DBX_cjs.b}});Object.defineProperty(exports,"createSingleBoardServerRuntime",{enumerable:true,get:function(){return chunkZWXZ5DBX_cjs.a}});Object.defineProperty(exports,"createHostedBoardQueueLaneRegistry",{enumerable:true,get:function(){return chunkBQJVCCFU_cjs.a}});//# sourceMappingURL=board-live-cards-server-runtime.cjs.map
1
+ 'use strict';var chunkTUQ6JBER_cjs=require('./chunk-TUQ6JBER.cjs');require('./chunk-LFVMX23W.cjs'),require('./chunk-NM6O35RY.cjs'),require('./chunk-NBJTYAYN.cjs'),require('./chunk-NOAERAOE.cjs');var chunkU5BGE52X_cjs=require('./chunk-U5BGE52X.cjs');require('./chunk-BQUQTOPB.cjs'),require('./chunk-GPCMBPLK.cjs'),require('./chunk-7FGPOGRV.cjs'),require('./chunk-LPXVVMQT.cjs'),require('./chunk-272IYUKT.cjs'),require('./chunk-K5TEZRZK.cjs'),require('./chunk-CSHNTZW4.cjs'),require('./chunk-3XPY7CCM.cjs'),require('./chunk-AW3COGCI.cjs'),require('./chunk-SIPLKLWU.cjs'),require('./chunk-GHUW6P4G.cjs'),require('./chunk-J7KE7SPA.cjs'),require('./chunk-7JVHYHT2.cjs'),require('./chunk-VQCIOKJV.cjs'),require('./chunk-VI36DRWG.cjs'),require('./chunk-7Y47QXMX.cjs'),require('./chunk-QBEQL4TL.cjs'),require('./chunk-QEHKMLHA.cjs'),require('./chunk-UJ7ZTV4J.cjs'),require('./chunk-SDJ3747Q.cjs'),require('./chunk-OF4FPYNI.cjs'),require('./chunk-2RIHC5TZ.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"createMultiBoardServerRuntime",{enumerable:true,get:function(){return chunkTUQ6JBER_cjs.b}});Object.defineProperty(exports,"createSingleBoardServerRuntime",{enumerable:true,get:function(){return chunkTUQ6JBER_cjs.a}});Object.defineProperty(exports,"createHostedBoardQueueLaneRegistry",{enumerable:true,get:function(){return chunkU5BGE52X_cjs.a}});//# sourceMappingURL=board-live-cards-server-runtime.cjs.map
2
2
  //# sourceMappingURL=board-live-cards-server-runtime.cjs.map
@@ -1,7 +1,7 @@
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-gTf9pAyC.cjs';
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-VIrQZ8CW.cjs';
2
2
  export { HostedBoardQueueLaneRegistryOptions, createHostedBoardQueueLaneRegistry } from './server-jobs-queue-runner/index.cjs';
3
- export { A as AsyncBoardLiveCardsPublic } from './board-live-cards-public-async-Cl0M3j5P.cjs';
4
- export { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-DjBwE0m9.cjs';
3
+ export { A as AsyncBoardLiveCardsPublic } from './board-live-cards-public-async-DtgoCVRv.cjs';
4
+ export { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-O7EUvJ3W.cjs';
5
5
  export { B as BlobStorage, K as KVStorage, a as KindValueRef } from './storage-interface-DogVPooM.cjs';
6
6
  export { B as BoardChangeNotification } from './board-live-cards-lib-DVh3t9NT.cjs';
7
7
  export { BoardLiveCardsPublic, BoardNonCorePlatformAdapter, BoardPlatformAdapter, CommandInput, CommandResult } from './board-live-cards-public.cjs';
@@ -1,7 +1,7 @@
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-B8Yieskx.js';
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-D5rknZ9j.js';
2
2
  export { HostedBoardQueueLaneRegistryOptions, createHostedBoardQueueLaneRegistry } from './server-jobs-queue-runner/index.js';
3
- export { A as AsyncBoardLiveCardsPublic } from './board-live-cards-public-async-U98IXUBx.js';
4
- export { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-ByBRFn1G.js';
3
+ export { A as AsyncBoardLiveCardsPublic } from './board-live-cards-public-async-D72v-MTi.js';
4
+ export { A as AsyncBoardPlatformAdapter } from './board-platform-adapter-async-CVvZYqNy.js';
5
5
  export { B as BlobStorage, K as KVStorage, a as KindValueRef } from './storage-interface-DogVPooM.js';
6
6
  export { B as BoardChangeNotification } from './board-live-cards-lib-iU8xOwNp.js';
7
7
  export { BoardLiveCardsPublic, BoardNonCorePlatformAdapter, BoardPlatformAdapter, CommandInput, CommandResult } from './board-live-cards-public.js';
@@ -1,2 +1,2 @@
1
- export{b as createMultiBoardServerRuntime,a as createSingleBoardServerRuntime}from'./chunk-CODPG5MY.js';import'./chunk-JB4Q2W7I.js';import'./chunk-XYN5D3GL.js';import'./chunk-O5UYCGIN.js';import'./chunk-I3ZOFU3F.js';export{a as createHostedBoardQueueLaneRegistry}from'./chunk-7UJQMFVS.js';import'./chunk-FOFGEABN.js';import'./chunk-RKKSVOP2.js';import'./chunk-NTICU4OK.js';import'./chunk-O7NOHKVR.js';import'./chunk-ZJ5M5COT.js';import'./chunk-QKWQ4HRE.js';import'./chunk-6MD6FVE3.js';import'./chunk-HOSD6UHA.js';import'./chunk-FULAMLUU.js';import'./chunk-EOVTMJYZ.js';import'./chunk-6M3RIGUH.js';import'./chunk-WGYS2L4V.js';import'./chunk-ANKA7HEJ.js';import'./chunk-44L64VQ2.js';import'./chunk-Q444D72R.js';import'./chunk-R7SQQSDX.js';import'./chunk-ATOQP3BD.js';import'./chunk-YT76JNKE.js';import'./chunk-MNEOJWPS.js';import'./chunk-BJGK5FNL.js';import'./chunk-NIBLKYXN.js';import'./chunk-UGB7PC4P.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=board-live-cards-server-runtime.js.map
1
+ export{b as createMultiBoardServerRuntime,a as createSingleBoardServerRuntime}from'./chunk-HKPVF5UI.js';import'./chunk-JB4Q2W7I.js';import'./chunk-XYN5D3GL.js';import'./chunk-O5UYCGIN.js';import'./chunk-I3ZOFU3F.js';export{a as createHostedBoardQueueLaneRegistry}from'./chunk-AN7MLI7X.js';import'./chunk-FOFGEABN.js';import'./chunk-RKKSVOP2.js';import'./chunk-NTICU4OK.js';import'./chunk-O7NOHKVR.js';import'./chunk-ZJ5M5COT.js';import'./chunk-RKLEBQUG.js';import'./chunk-PEJRTZU3.js';import'./chunk-X32SJDLT.js';import'./chunk-FULAMLUU.js';import'./chunk-EOVTMJYZ.js';import'./chunk-6M3RIGUH.js';import'./chunk-WGYS2L4V.js';import'./chunk-ANKA7HEJ.js';import'./chunk-44L64VQ2.js';import'./chunk-Q444D72R.js';import'./chunk-R7SQQSDX.js';import'./chunk-ATOQP3BD.js';import'./chunk-YT76JNKE.js';import'./chunk-MNEOJWPS.js';import'./chunk-BJGK5FNL.js';import'./chunk-NIBLKYXN.js';import'./chunk-UGB7PC4P.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=board-live-cards-server-runtime.js.map
2
2
  //# sourceMappingURL=board-live-cards-server-runtime.js.map
@@ -1,4 +1,4 @@
1
- import { B as BoardChangeNotification } from './board-live-cards-lib-iU8xOwNp.js';
1
+ import { R as RuntimeNotification, B as BoardChangeNotification } from './board-live-cards-lib-iU8xOwNp.js';
2
2
  import { C as ChatStorage, B as BoardCallbackTransport } from './board-callback-transport-Bekq8Gp-.js';
3
3
  import { ExecutionRef } from './execution-refs.js';
4
4
  import { a as KindValueRef } from './storage-interface-DogVPooM.js';
@@ -82,7 +82,7 @@ interface AsyncBoardPlatformAdapter {
82
82
  hashFn(value: unknown): string;
83
83
  genId(): string;
84
84
  requestProcessAccumulated?(): void | Promise<void>;
85
- publishBoardChangeNotifications?(notifications: BoardChangeNotification[]): void | Promise<void>;
85
+ publishBoardChangeNotifications?(notifications: RuntimeNotification[]): void | Promise<void>;
86
86
  warn?: (msg: string) => void;
87
87
  }
88
88
  interface HostedFetchResponseLike {
@@ -1,4 +1,4 @@
1
- import { B as BoardChangeNotification } from './board-live-cards-lib-DVh3t9NT.cjs';
1
+ import { R as RuntimeNotification, B as BoardChangeNotification } from './board-live-cards-lib-DVh3t9NT.cjs';
2
2
  import { C as ChatStorage, B as BoardCallbackTransport } from './board-callback-transport-kP0K6UMq.cjs';
3
3
  import { ExecutionRef } from './execution-refs.cjs';
4
4
  import { a as KindValueRef } from './storage-interface-DogVPooM.cjs';
@@ -82,7 +82,7 @@ interface AsyncBoardPlatformAdapter {
82
82
  hashFn(value: unknown): string;
83
83
  genId(): string;
84
84
  requestProcessAccumulated?(): void | Promise<void>;
85
- publishBoardChangeNotifications?(notifications: BoardChangeNotification[]): void | Promise<void>;
85
+ publishBoardChangeNotifications?(notifications: RuntimeNotification[]): void | Promise<void>;
86
86
  warn?: (msg: string) => void;
87
87
  }
88
88
  interface HostedFetchResponseLike {
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkCJQEM63S_cjs=require('./chunk-CJQEM63S.cjs'),chunk7SBE7A6E_cjs=require('./chunk-7SBE7A6E.cjs');require('./chunk-2RIHC5TZ.cjs'),require('./chunk-GNFE24S7.cjs');var e=Object.freeze({}),l=Object.freeze([]);function A(t=null){return {boardInfo:{boardId:t,boardInfo:null},boardStatus:{summary:null,cardRuntimesById:e},boardDataObjects:e,boardCardComputedValues:e,cardDefinitionsAndData:e,cardChatViews:e,cardWatchParties:e}}function h(t=null){return t?{messages:t?.messages??l,processing:!!t?.processing,receiving:!!t?.receiving}:{messages:l,processing:false,receiving:false}}function _({chatState:t=null}={}){return {chatState:t??h()}}function D(t){return Array.isArray(t)?t.filter(Boolean).map(String):l}function B(t,n){let s=new Map;for(let a of t?.cards??[]){let r=typeof a?.name=="string"?a.name.trim():"";!r||s.has(r)||s.set(r,{id:r,meta:{title:r},requires:D(a?.requires),provides:D(a?.provides_declared??a?.provides_runtime),source_defs:l,card_data:e});}for(let a of Object.keys(n??e)){let r=typeof a=="string"?a.trim():"";!r||s.has(r)||s.set(r,{id:r,meta:{title:r},requires:l,provides:l,source_defs:l,card_data:e});}return [...s.values()]}function k(t,n){let s={};for(let r of n?.cards??[])s[r.name]=r;let a={};for(let r of t){let c=s[r.id]??{};a[r.id]={status:c.status??"",runtime:c.runtime??e};}return {summary:n?.summary??null,cardRuntimesById:a}}function w(t,n){return Object.fromEntries(t.map(s=>[s.id,n?.[s.id]?.computed_values??e]))}function P(t){return Object.fromEntries(t.map(n=>[n.id,{cardContent:n,cardData:n?.card_data??e}]))}function x(t,n){let s={},a=new Set([...Object.keys(n??e),...Object.keys(t??e)]);for(let r of a){let c=t?.[r]??null;s[r]=_({chatState:h(c)});}return s}function v(t,n=null){let s=Array.isArray(t.cardDefinitions)&&t.cardDefinitions.length>0?t.cardDefinitions:B(t.statusSnapshot,t.cardRuntimeById),a=P(s);return {boardInfo:{boardId:t.boardId??null,boardInfo:t.boardInfo??null},boardStatus:k(s,t.statusSnapshot),boardDataObjects:t.dataObjectsByToken??e,boardCardComputedValues:w(s,t.cardRuntimeById),cardDefinitionsAndData:a,cardChatViews:x(t.cardChatsByCardId,a),cardWatchParties:n?.cardWatchParties??e}}function I(t,n){let s=t?.cardDefinitionsAndData?.[n]??null,a=t?.boardStatus?.cardRuntimesById?.[n]??null,r=t?.boardCardComputedValues?.[n]??e,c=s?.cardContent??null,u={};for(let y of D(c?.requires))u[y]=Object.prototype.hasOwnProperty.call(t?.boardDataObjects??e,y)?t.boardDataObjects[y]:null;return {id:n,card:c,card_data:s?.cardData??e,requires:u,computed_values:r,runtime_state:{task_status:a?.status??null,runtime:a?.runtime??e},card_chats:t?.cardChatViews?.[n]?.chatState??null}}function W(t){let n=Object.keys(t?.cardDefinitionsAndData??e),s=Object.fromEntries(n.map(a=>[a,I(t,a)]));return {payload:t,cardIds:n,modelsById:s,cardWatchParties:t?.cardWatchParties??e}}function E(t,n,s,a){let r={},c={},u={},y={};for(let d of n.cardIds){let o=n.modelsById[d];if(!o)continue;let m=t?.cardDefinitionsAndData?.[d]??null,i=o.card??m?.cardContent??null,b=o.card_data??e;r[d]=m&&m.cardContent===i&&m.cardData===b?m:{cardContent:i,cardData:b};let p=t?.boardCardComputedValues?.[d]??e,g=o.computed_values??e;c[d]=p===g?p:g;let C=t?.cardChatViews?.[d]??null,S=o.card_chats??h();u[d]=C&&C.chatState===S?C:_({chatState:S});let f=t?.boardStatus?.cardRuntimesById?.[d]??{status:"",runtime:e},R=o.runtime_state?.runtime??f.runtime,j=o.runtime_state?.task_status??f.status;y[d]=f.status===j&&f.runtime===R?f:{status:j,runtime:R};}return {...t,boardStatus:{summary:a,cardRuntimesById:y},boardDataObjects:s,boardCardComputedValues:c,cardDefinitionsAndData:r,cardChatViews:u,cardWatchParties:n.cardWatchParties??e}}function T(t,n){if(Array.isArray(n?.cardDefinitions))return v(n,t);let s=chunkCJQEM63S_cjs.b(n);if(s.length===0)return t;let a=t??A(),r=a.boardDataObjects??e,c=a.boardStatus?.summary??null,u=[];for(let i of s)i.kind==="data_object"&&i.key?(r===(t?.boardDataObjects??e)&&(r={...r}),r[i.key]=i.payload):i.kind==="status"&&i.status&&"summary"in i.status&&(c=i.status.summary??null),u.push(i);let y=W(a),d=u.length>0?chunk7SBE7A6E_cjs.c(y,u,(i,b)=>I(i,b),()=>a):y,o=E(a,d,r,c);return !(o.boardStatus!==a.boardStatus||o.boardDataObjects!==a.boardDataObjects||o.boardCardComputedValues!==a.boardCardComputedValues||o.cardDefinitionsAndData!==a.cardDefinitionsAndData||o.cardChatViews!==a.cardChatViews||o.cardWatchParties!==a.cardWatchParties)&&t?t:o}exports.EMPTY_ARRAY=l;exports.EMPTY_OBJECT=e;exports.applyBoardSseFrame=T;exports.createEmptyBoardSnapshot=A;//# sourceMappingURL=board-sse-state.cjs.map
2
+ //# sourceMappingURL=board-sse-state.cjs.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * board-sse-state
3
+ *
4
+ * Platform-free reducer wrapper that folds raw board SSE frames (bootstrap
5
+ * published-payloads + incremental notification batches) into the UI snapshot
6
+ * shape consumed by board front-ends.
7
+ *
8
+ * Delegates the actual incremental reduction to the platform-free primitives:
9
+ * - runtimeNotificationsFromPayload (notification-consumer)
10
+ * - applyNotification (board-state-reducer)
11
+ *
12
+ * No node: builtins — runs in any JS engine (browser, embedded, Node).
13
+ */
14
+ declare const EMPTY_OBJECT: Record<string, any>;
15
+ declare const EMPTY_ARRAY: readonly any[];
16
+ declare function createEmptyBoardSnapshot(boardId?: any): any;
17
+ declare function applyBoardSseFrame(prev: any, payload: any): any;
18
+
19
+ export { EMPTY_ARRAY, EMPTY_OBJECT, applyBoardSseFrame, createEmptyBoardSnapshot };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * board-sse-state
3
+ *
4
+ * Platform-free reducer wrapper that folds raw board SSE frames (bootstrap
5
+ * published-payloads + incremental notification batches) into the UI snapshot
6
+ * shape consumed by board front-ends.
7
+ *
8
+ * Delegates the actual incremental reduction to the platform-free primitives:
9
+ * - runtimeNotificationsFromPayload (notification-consumer)
10
+ * - applyNotification (board-state-reducer)
11
+ *
12
+ * No node: builtins — runs in any JS engine (browser, embedded, Node).
13
+ */
14
+ declare const EMPTY_OBJECT: Record<string, any>;
15
+ declare const EMPTY_ARRAY: readonly any[];
16
+ declare function createEmptyBoardSnapshot(boardId?: any): any;
17
+ declare function applyBoardSseFrame(prev: any, payload: any): any;
18
+
19
+ export { EMPTY_ARRAY, EMPTY_OBJECT, applyBoardSseFrame, createEmptyBoardSnapshot };
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-CAQHA4GK.js';import {c}from'./chunk-IXZV5BS5.js';import'./chunk-UGB7PC4P.js';import'./chunk-FW4363Y4.js';var e=Object.freeze({}),l=Object.freeze([]);function A(t=null){return {boardInfo:{boardId:t,boardInfo:null},boardStatus:{summary:null,cardRuntimesById:e},boardDataObjects:e,boardCardComputedValues:e,cardDefinitionsAndData:e,cardChatViews:e,cardWatchParties:e}}function h(t=null){return t?{messages:t?.messages??l,processing:!!t?.processing,receiving:!!t?.receiving}:{messages:l,processing:false,receiving:false}}function _({chatState:t=null}={}){return {chatState:t??h()}}function D(t){return Array.isArray(t)?t.filter(Boolean).map(String):l}function B(t,n){let s=new Map;for(let a of t?.cards??[]){let r=typeof a?.name=="string"?a.name.trim():"";!r||s.has(r)||s.set(r,{id:r,meta:{title:r},requires:D(a?.requires),provides:D(a?.provides_declared??a?.provides_runtime),source_defs:l,card_data:e});}for(let a of Object.keys(n??e)){let r=typeof a=="string"?a.trim():"";!r||s.has(r)||s.set(r,{id:r,meta:{title:r},requires:l,provides:l,source_defs:l,card_data:e});}return [...s.values()]}function k(t,n){let s={};for(let r of n?.cards??[])s[r.name]=r;let a={};for(let r of t){let c=s[r.id]??{};a[r.id]={status:c.status??"",runtime:c.runtime??e};}return {summary:n?.summary??null,cardRuntimesById:a}}function w(t,n){return Object.fromEntries(t.map(s=>[s.id,n?.[s.id]?.computed_values??e]))}function P(t){return Object.fromEntries(t.map(n=>[n.id,{cardContent:n,cardData:n?.card_data??e}]))}function x(t,n){let s={},a=new Set([...Object.keys(n??e),...Object.keys(t??e)]);for(let r of a){let c=t?.[r]??null;s[r]=_({chatState:h(c)});}return s}function v(t,n=null){let s=Array.isArray(t.cardDefinitions)&&t.cardDefinitions.length>0?t.cardDefinitions:B(t.statusSnapshot,t.cardRuntimeById),a=P(s);return {boardInfo:{boardId:t.boardId??null,boardInfo:t.boardInfo??null},boardStatus:k(s,t.statusSnapshot),boardDataObjects:t.dataObjectsByToken??e,boardCardComputedValues:w(s,t.cardRuntimeById),cardDefinitionsAndData:a,cardChatViews:x(t.cardChatsByCardId,a),cardWatchParties:n?.cardWatchParties??e}}function I(t,n){let s=t?.cardDefinitionsAndData?.[n]??null,a=t?.boardStatus?.cardRuntimesById?.[n]??null,r=t?.boardCardComputedValues?.[n]??e,c=s?.cardContent??null,u={};for(let y of D(c?.requires))u[y]=Object.prototype.hasOwnProperty.call(t?.boardDataObjects??e,y)?t.boardDataObjects[y]:null;return {id:n,card:c,card_data:s?.cardData??e,requires:u,computed_values:r,runtime_state:{task_status:a?.status??null,runtime:a?.runtime??e},card_chats:t?.cardChatViews?.[n]?.chatState??null}}function W(t){let n=Object.keys(t?.cardDefinitionsAndData??e),s=Object.fromEntries(n.map(a=>[a,I(t,a)]));return {payload:t,cardIds:n,modelsById:s,cardWatchParties:t?.cardWatchParties??e}}function E(t,n,s,a){let r={},c={},u={},y={};for(let d of n.cardIds){let o=n.modelsById[d];if(!o)continue;let m=t?.cardDefinitionsAndData?.[d]??null,i=o.card??m?.cardContent??null,b=o.card_data??e;r[d]=m&&m.cardContent===i&&m.cardData===b?m:{cardContent:i,cardData:b};let p=t?.boardCardComputedValues?.[d]??e,g=o.computed_values??e;c[d]=p===g?p:g;let C=t?.cardChatViews?.[d]??null,S=o.card_chats??h();u[d]=C&&C.chatState===S?C:_({chatState:S});let f=t?.boardStatus?.cardRuntimesById?.[d]??{status:"",runtime:e},R=o.runtime_state?.runtime??f.runtime,j=o.runtime_state?.task_status??f.status;y[d]=f.status===j&&f.runtime===R?f:{status:j,runtime:R};}return {...t,boardStatus:{summary:a,cardRuntimesById:y},boardDataObjects:s,boardCardComputedValues:c,cardDefinitionsAndData:r,cardChatViews:u,cardWatchParties:n.cardWatchParties??e}}function T(t,n){if(Array.isArray(n?.cardDefinitions))return v(n,t);let s=b(n);if(s.length===0)return t;let a=t??A(),r=a.boardDataObjects??e,c$1=a.boardStatus?.summary??null,u=[];for(let i of s)i.kind==="data_object"&&i.key?(r===(t?.boardDataObjects??e)&&(r={...r}),r[i.key]=i.payload):i.kind==="status"&&i.status&&"summary"in i.status&&(c$1=i.status.summary??null),u.push(i);let y=W(a),d=u.length>0?c(y,u,(i,b)=>I(i,b),()=>a):y,o=E(a,d,r,c$1);return !(o.boardStatus!==a.boardStatus||o.boardDataObjects!==a.boardDataObjects||o.boardCardComputedValues!==a.boardCardComputedValues||o.cardDefinitionsAndData!==a.cardDefinitionsAndData||o.cardChatViews!==a.cardChatViews||o.cardWatchParties!==a.cardWatchParties)&&t?t:o}export{l as EMPTY_ARRAY,e as EMPTY_OBJECT,T as applyBoardSseFrame,A as createEmptyBoardSnapshot};//# sourceMappingURL=board-sse-state.js.map
2
+ //# sourceMappingURL=board-sse-state.js.map
@@ -1,2 +1,2 @@
1
- 'use strict';var chunk2RIHC5TZ_cjs=require('./chunk-2RIHC5TZ.cjs');require('./chunk-GNFE24S7.cjs');function b(n){return JSON.parse(JSON.stringify(n))}function k(n,i){if(n===i)return n;try{if(JSON.stringify(n)===JSON.stringify(i))return n}catch{}return i}function m(n,i){if(n===i)return true;try{return JSON.stringify(n)===JSON.stringify(i)}catch{return false}}function q(n){return n==="running"||n==="in-progress"?"loading":n==="failed"?"error":"fresh"}function x(n,i,h){let v=n,f=(v&&Array.isArray(v.cardDefinitions)?v.cardDefinitions:[]).map(p=>p.id),g=i&&i.modelsById||{},o={};for(let p of f){let t=h(n,p),a=g[p];if(!a){o[p]=t;continue}let e=t.card_chats!=null?k(a.card_chats,t.card_chats??null):a.card_chats??null,r={id:t.id,card:k(a.card,t.card),card_data:k(a.card_data,t.card_data),requires:k(a.requires,t.requires),computed_values:k(a.computed_values,t.computed_values),runtime_state:k(a.runtime_state,t.runtime_state),card_chats:e};o[p]=r.card===a.card&&r.card_data===a.card_data&&r.requires===a.requires&&r.computed_values===a.computed_values&&r.runtime_state===a.runtime_state&&r.card_chats===a.card_chats?a:r;}let y=i?.cardWatchParties||{},l=Object.fromEntries(f.filter(p=>Object.prototype.hasOwnProperty.call(y,p)).map(p=>[p,y[p]])),_=i?.pendingComputedValues||{},C=Object.fromEntries(Object.entries(_).filter(([p])=>!f.includes(p)));return {payload:n,cardIds:f,modelsById:o,cardWatchParties:l,pendingComputedValues:C}}function S(n,i={}){if(!n)return n;let h=typeof i.includeCard=="function"?i.includeCard:(()=>true),v=typeof i.mapCard=="function"?i.mapCard:(y=>y),d=false,f=[],g={};for(let y of n.cardIds){let l=n.modelsById[y];if(!l){d=true;continue}if(!h(l,n)){d=true;continue}let _=v(l,n);if(!_||_.id!==y)throw new Error(`deriveBoardState: mapped card must preserve id "${y}"`);_!==l&&(d=true),f.push(y),g[y]=_;}let o=typeof i.mapPayload=="function"?i.mapPayload(n.payload,{sourceState:n,cardIds:f,modelsById:g}):n.payload;return o!==n.payload&&(d=true),!d&&f.length===n.cardIds.length?n:{payload:o,cardIds:f,modelsById:g,cardWatchParties:n.cardWatchParties,pendingComputedValues:n.pendingComputedValues}}function O(n,i,h,v){if(!n||!Array.isArray(i)||i.length===0)return n;let d=n.modelsById,f=n.cardIds,g=n.cardWatchParties||{},o=n.pendingComputedValues||{},y=false,l=false,_={};for(let t of f){let a=d[t],e=a&&a.requires;if(e&&typeof e=="object")for(let r of Object.keys(e))(_[r]=_[r]||[]).push(t);}function C(){y||(d={...d},y=true);}function p(t){if(t.kind!=="card_watchparty"||!t.cardId||!t.channel)return;let a=g[t.cardId]||{},e=Array.isArray(a[t.channel])?a[t.channel]:[],r=e;if(t.clear){if(e.length===0)return;r=[];}else if(t.replace){let c=Number.isFinite(Number(t.sentAtMs))?Number(t.sentAtMs):0,u={payload:t.payload,ts:c};if(e.length===1&&e[0]?.ts===u.ts&&m(e[0]?.payload,u.payload))return;r=[u];}else {let c={payload:t.payload,ts:Number.isFinite(Number(t.sentAtMs))?Number(t.sentAtMs):0};r=[...e,c];}g={...g,[t.cardId]:{...a,[t.channel]:r}},l=true;}for(let t of i)if(!(!t||!t.kind)){if(t.kind==="card_watchparty"){p(t);continue}if(chunk2RIHC5TZ_cjs.c(t)){if(t.kind==="card_chats"){let a=t.cardId,e=d[a];if(!e)continue;let r=Array.isArray(t.messages)?t.messages:e.card_chats?.messages??[],c=typeof t.receiving=="boolean"?t.receiving:e.card_chats?.receiving??false,u=typeof t.processing=="boolean"?t.processing:e.card_chats?.processing??false,s={messages:r,receiving:c,processing:u};if(m(e.card_chats,s))continue;C(),d[a]={...e,card_chats:s},l=true;}else if(t.kind==="chat_messages"){let a=t.cardId,e=d[a];if(!e)continue;let r=Array.isArray(t.messages)?t.messages:[],c=e.card_chats||{receiving:false,processing:false},u={messages:r,receiving:c.receiving,processing:!!c.processing};if(m(e.card_chats,u))continue;C(),d[a]={...e,card_chats:u},l=true;}else if(t.kind==="chat_processing"){let a=t.cardId,e=d[a];if(!e)continue;let r=e.card_chats||{messages:[],receiving:false},c={messages:r.messages,receiving:r.receiving,processing:t.active===true};if(m(e.card_chats,c))continue;C(),d[a]={...e,card_chats:c},l=true;}continue}if(chunk2RIHC5TZ_cjs.b(t)){if(t.kind==="computed_values"){let a=t.cardId,e=d[a],r=t.values||{};if(!e){let c=o[a];if(m(c,r))continue;o={...o,[a]:b(r)},l=true;continue}if(m(e.computed_values,r))continue;C(),d[a]={...e,computed_values:r},l=true;}else if(t.kind==="data_object"){let a=t.key,e=t.payload,r=_[a]||[];for(let c of r){let u=d[c];if(!u)continue;let s=u.requires||{};m(s[a],e)||(C(),d[c]={...u,requires:{...s,[a]:e}},l=true);}}else if(t.kind==="card_refreshed"){let a=t.cardId,e=null,r=d[a],c=t.card;if(r&&c&&typeof c=="object"&&!Array.isArray(c)){let s=c,w=s.card_data&&typeof s.card_data=="object"&&!Array.isArray(s.card_data)?s.card_data:r.card_data,A=s.requires&&typeof s.requires=="object"&&!Array.isArray(s.requires)?s.requires:r.requires,B=s.computed_values&&typeof s.computed_values=="object"&&!Array.isArray(s.computed_values)?s.computed_values:r.computed_values,P=s.runtime_state&&typeof s.runtime_state=="object"&&!Array.isArray(s.runtime_state)?s.runtime_state:r.runtime_state;e={...r,card:c,card_data:w,requires:A,computed_values:B,runtime_state:P};}if(!e)try{let s=v();s&&(e=h(s,a));}catch{}if(!e)continue;let u=o[a];if(u!==void 0&&!m(e.computed_values,u)&&(e={...e,computed_values:b(u)}),r&&m(r.card,e.card)&&m(r.card_data,e.card_data)&&m(r.requires,e.requires)&&m(r.computed_values,e.computed_values)&&m(r.runtime_state,e.runtime_state))continue;C(),d[a]=e,f.includes(a)||(f=[...f,a]),Object.prototype.hasOwnProperty.call(o,a)&&(o={...o},delete o[a]),l=true;}else if(t.kind==="card_removed"){let a=t.cardId;if(!d[a])continue;if(C(),delete d[a],f=f.filter(e=>e!==a),Object.prototype.hasOwnProperty.call(g,a)){let e={...g};delete e[a],g=e;}Object.prototype.hasOwnProperty.call(o,a)&&(o={...o},delete o[a]),l=true;}else if(t.kind==="status"){let a=t.status?.cards??[];for(let e of a){let r=e?.name;if(!r||!d[r])continue;let c=d[r],u=q(e.status),s={...c.card_data||{},status:u,lastRun:e.runtime?.last_transition_at??null,...e.error?.message?{error:e.error.message}:{}};e.error?.message||delete s.error;let w={task_status:e.status??null,card_status:u,runtime:e.runtime?b(e.runtime):{},error:e.error?b(e.error):null,blocked_by:Array.isArray(e.blocked_by)?b(e.blocked_by):[],requires_missing:Array.isArray(e.requires_missing)?b(e.requires_missing):[]};m(c.card_data,s)&&m(c.runtime_state,w)||(C(),d[r]={...c,card_data:s,runtime_state:w},l=true);}}}}return l?{payload:n.payload,cardIds:f,modelsById:d,cardWatchParties:g,pendingComputedValues:o}:n}exports.applyNotification=O;exports.buildBoardState=x;exports.deriveBoardState=S;//# sourceMappingURL=board-state-reducer.cjs.map
1
+ 'use strict';var chunk7SBE7A6E_cjs=require('./chunk-7SBE7A6E.cjs');require('./chunk-2RIHC5TZ.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"applyNotification",{enumerable:true,get:function(){return chunk7SBE7A6E_cjs.c}});Object.defineProperty(exports,"buildBoardState",{enumerable:true,get:function(){return chunk7SBE7A6E_cjs.a}});Object.defineProperty(exports,"deriveBoardState",{enumerable:true,get:function(){return chunk7SBE7A6E_cjs.b}});//# sourceMappingURL=board-state-reducer.cjs.map
2
2
  //# sourceMappingURL=board-state-reducer.cjs.map
@@ -1,2 +1,2 @@
1
- import {c,b as b$1}from'./chunk-UGB7PC4P.js';import'./chunk-FW4363Y4.js';function b(n){return JSON.parse(JSON.stringify(n))}function k(n,i){if(n===i)return n;try{if(JSON.stringify(n)===JSON.stringify(i))return n}catch{}return i}function m(n,i){if(n===i)return true;try{return JSON.stringify(n)===JSON.stringify(i)}catch{return false}}function q(n){return n==="running"||n==="in-progress"?"loading":n==="failed"?"error":"fresh"}function x(n,i,h){let v=n,f=(v&&Array.isArray(v.cardDefinitions)?v.cardDefinitions:[]).map(p=>p.id),g=i&&i.modelsById||{},o={};for(let p of f){let t=h(n,p),a=g[p];if(!a){o[p]=t;continue}let e=t.card_chats!=null?k(a.card_chats,t.card_chats??null):a.card_chats??null,r={id:t.id,card:k(a.card,t.card),card_data:k(a.card_data,t.card_data),requires:k(a.requires,t.requires),computed_values:k(a.computed_values,t.computed_values),runtime_state:k(a.runtime_state,t.runtime_state),card_chats:e};o[p]=r.card===a.card&&r.card_data===a.card_data&&r.requires===a.requires&&r.computed_values===a.computed_values&&r.runtime_state===a.runtime_state&&r.card_chats===a.card_chats?a:r;}let y=i?.cardWatchParties||{},l=Object.fromEntries(f.filter(p=>Object.prototype.hasOwnProperty.call(y,p)).map(p=>[p,y[p]])),_=i?.pendingComputedValues||{},C=Object.fromEntries(Object.entries(_).filter(([p])=>!f.includes(p)));return {payload:n,cardIds:f,modelsById:o,cardWatchParties:l,pendingComputedValues:C}}function S(n,i={}){if(!n)return n;let h=typeof i.includeCard=="function"?i.includeCard:(()=>true),v=typeof i.mapCard=="function"?i.mapCard:(y=>y),d=false,f=[],g={};for(let y of n.cardIds){let l=n.modelsById[y];if(!l){d=true;continue}if(!h(l,n)){d=true;continue}let _=v(l,n);if(!_||_.id!==y)throw new Error(`deriveBoardState: mapped card must preserve id "${y}"`);_!==l&&(d=true),f.push(y),g[y]=_;}let o=typeof i.mapPayload=="function"?i.mapPayload(n.payload,{sourceState:n,cardIds:f,modelsById:g}):n.payload;return o!==n.payload&&(d=true),!d&&f.length===n.cardIds.length?n:{payload:o,cardIds:f,modelsById:g,cardWatchParties:n.cardWatchParties,pendingComputedValues:n.pendingComputedValues}}function O(n,i,h,v){if(!n||!Array.isArray(i)||i.length===0)return n;let d=n.modelsById,f=n.cardIds,g=n.cardWatchParties||{},o=n.pendingComputedValues||{},y=false,l=false,_={};for(let t of f){let a=d[t],e=a&&a.requires;if(e&&typeof e=="object")for(let r of Object.keys(e))(_[r]=_[r]||[]).push(t);}function C(){y||(d={...d},y=true);}function p(t){if(t.kind!=="card_watchparty"||!t.cardId||!t.channel)return;let a=g[t.cardId]||{},e=Array.isArray(a[t.channel])?a[t.channel]:[],r=e;if(t.clear){if(e.length===0)return;r=[];}else if(t.replace){let c=Number.isFinite(Number(t.sentAtMs))?Number(t.sentAtMs):0,u={payload:t.payload,ts:c};if(e.length===1&&e[0]?.ts===u.ts&&m(e[0]?.payload,u.payload))return;r=[u];}else {let c={payload:t.payload,ts:Number.isFinite(Number(t.sentAtMs))?Number(t.sentAtMs):0};r=[...e,c];}g={...g,[t.cardId]:{...a,[t.channel]:r}},l=true;}for(let t of i)if(!(!t||!t.kind)){if(t.kind==="card_watchparty"){p(t);continue}if(c(t)){if(t.kind==="card_chats"){let a=t.cardId,e=d[a];if(!e)continue;let r=Array.isArray(t.messages)?t.messages:e.card_chats?.messages??[],c=typeof t.receiving=="boolean"?t.receiving:e.card_chats?.receiving??false,u=typeof t.processing=="boolean"?t.processing:e.card_chats?.processing??false,s={messages:r,receiving:c,processing:u};if(m(e.card_chats,s))continue;C(),d[a]={...e,card_chats:s},l=true;}else if(t.kind==="chat_messages"){let a=t.cardId,e=d[a];if(!e)continue;let r=Array.isArray(t.messages)?t.messages:[],c=e.card_chats||{receiving:false,processing:false},u={messages:r,receiving:c.receiving,processing:!!c.processing};if(m(e.card_chats,u))continue;C(),d[a]={...e,card_chats:u},l=true;}else if(t.kind==="chat_processing"){let a=t.cardId,e=d[a];if(!e)continue;let r=e.card_chats||{messages:[],receiving:false},c={messages:r.messages,receiving:r.receiving,processing:t.active===true};if(m(e.card_chats,c))continue;C(),d[a]={...e,card_chats:c},l=true;}continue}if(b$1(t)){if(t.kind==="computed_values"){let a=t.cardId,e=d[a],r=t.values||{};if(!e){let c=o[a];if(m(c,r))continue;o={...o,[a]:b(r)},l=true;continue}if(m(e.computed_values,r))continue;C(),d[a]={...e,computed_values:r},l=true;}else if(t.kind==="data_object"){let a=t.key,e=t.payload,r=_[a]||[];for(let c of r){let u=d[c];if(!u)continue;let s=u.requires||{};m(s[a],e)||(C(),d[c]={...u,requires:{...s,[a]:e}},l=true);}}else if(t.kind==="card_refreshed"){let a=t.cardId,e=null,r=d[a],c=t.card;if(r&&c&&typeof c=="object"&&!Array.isArray(c)){let s=c,w=s.card_data&&typeof s.card_data=="object"&&!Array.isArray(s.card_data)?s.card_data:r.card_data,A=s.requires&&typeof s.requires=="object"&&!Array.isArray(s.requires)?s.requires:r.requires,B=s.computed_values&&typeof s.computed_values=="object"&&!Array.isArray(s.computed_values)?s.computed_values:r.computed_values,P=s.runtime_state&&typeof s.runtime_state=="object"&&!Array.isArray(s.runtime_state)?s.runtime_state:r.runtime_state;e={...r,card:c,card_data:w,requires:A,computed_values:B,runtime_state:P};}if(!e)try{let s=v();s&&(e=h(s,a));}catch{}if(!e)continue;let u=o[a];if(u!==void 0&&!m(e.computed_values,u)&&(e={...e,computed_values:b(u)}),r&&m(r.card,e.card)&&m(r.card_data,e.card_data)&&m(r.requires,e.requires)&&m(r.computed_values,e.computed_values)&&m(r.runtime_state,e.runtime_state))continue;C(),d[a]=e,f.includes(a)||(f=[...f,a]),Object.prototype.hasOwnProperty.call(o,a)&&(o={...o},delete o[a]),l=true;}else if(t.kind==="card_removed"){let a=t.cardId;if(!d[a])continue;if(C(),delete d[a],f=f.filter(e=>e!==a),Object.prototype.hasOwnProperty.call(g,a)){let e={...g};delete e[a],g=e;}Object.prototype.hasOwnProperty.call(o,a)&&(o={...o},delete o[a]),l=true;}else if(t.kind==="status"){let a=t.status?.cards??[];for(let e of a){let r=e?.name;if(!r||!d[r])continue;let c=d[r],u=q(e.status),s={...c.card_data||{},status:u,lastRun:e.runtime?.last_transition_at??null,...e.error?.message?{error:e.error.message}:{}};e.error?.message||delete s.error;let w={task_status:e.status??null,card_status:u,runtime:e.runtime?b(e.runtime):{},error:e.error?b(e.error):null,blocked_by:Array.isArray(e.blocked_by)?b(e.blocked_by):[],requires_missing:Array.isArray(e.requires_missing)?b(e.requires_missing):[]};m(c.card_data,s)&&m(c.runtime_state,w)||(C(),d[r]={...c,card_data:s,runtime_state:w},l=true);}}}}return l?{payload:n.payload,cardIds:f,modelsById:d,cardWatchParties:g,pendingComputedValues:o}:n}export{O as applyNotification,x as buildBoardState,S as deriveBoardState};//# sourceMappingURL=board-state-reducer.js.map
1
+ export{c as applyNotification,a as buildBoardState,b as deriveBoardState}from'./chunk-IXZV5BS5.js';import'./chunk-UGB7PC4P.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=board-state-reducer.js.map
2
2
  //# sourceMappingURL=board-state-reducer.js.map