yaml-flow 8.11.3 → 8.11.5

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 (99) hide show
  1. package/browser/adapters/firestore-storage.js +2 -2
  2. package/browser/adapters/localstorage-storage.js +3 -3
  3. package/browser/asset-integrity.json +7 -7
  4. package/browser/server-runtime-controlface.js +4 -4
  5. package/examples/board/test/server-http-test-browser.ts +1 -1
  6. package/examples/board/test/server-http-test.js +1 -1
  7. package/lib/board-live-cards-node.cjs +2 -2
  8. package/lib/board-live-cards-node.d.cts +2 -2
  9. package/lib/board-live-cards-node.d.ts +2 -2
  10. package/lib/board-live-cards-node.js +2 -2
  11. package/lib/board-live-cards-public.cjs +1 -1
  12. package/lib/board-live-cards-public.js +1 -1
  13. package/lib/board-live-cards-server-runtime.cjs +1 -1
  14. package/lib/board-live-cards-server-runtime.d.cts +1 -1
  15. package/lib/board-live-cards-server-runtime.d.ts +1 -1
  16. package/lib/board-live-cards-server-runtime.js +1 -1
  17. package/lib/board-livegraph-runtime/index.cjs +1 -1
  18. package/lib/board-livegraph-runtime/index.d.cts +1 -0
  19. package/lib/board-livegraph-runtime/index.d.ts +1 -0
  20. package/lib/board-livegraph-runtime/index.js +1 -1
  21. package/lib/card-store-public.cjs +1 -1
  22. package/lib/card-store-public.js +1 -1
  23. package/lib/{chunk-MEL5LKF7.js → chunk-23PEDGFN.js} +2 -2
  24. package/lib/{chunk-O65MSWUE.cjs → chunk-52XPRCZC.cjs} +2 -2
  25. package/lib/chunk-5RUSICUC.cjs +3 -0
  26. package/lib/chunk-7Y47QXMX.cjs +2 -0
  27. package/lib/chunk-AW3COGCI.cjs +3 -0
  28. package/lib/chunk-CODPG5MY.js +3 -0
  29. package/lib/chunk-EHREWADE.js +2 -0
  30. package/lib/chunk-EOVTMJYZ.js +2 -0
  31. package/lib/chunk-FULAMLUU.js +3 -0
  32. package/lib/chunk-HOSD6UHA.js +3 -0
  33. package/lib/chunk-I3ZOFU3F.js +2 -0
  34. package/lib/chunk-J7KE7SPA.cjs +2 -0
  35. package/lib/chunk-NOAERAOE.cjs +2 -0
  36. package/lib/chunk-Q444D72R.js +2 -0
  37. package/lib/chunk-QKWQ4HRE.js +3 -0
  38. package/lib/chunk-R7SQQSDX.js +2 -0
  39. package/lib/chunk-SIPLKLWU.cjs +2 -0
  40. package/lib/{chunk-HLJH7LGW.js → chunk-SK2R5ILQ.js} +3 -3
  41. package/lib/chunk-VI36DRWG.cjs +2 -0
  42. package/lib/chunk-WE7JOO4T.cjs +3 -0
  43. package/lib/chunk-WGYS2L4V.js +2 -0
  44. package/lib/chunk-X5MLNGGM.cjs +16 -0
  45. package/lib/{chunk-FFHG3CFU.cjs → chunk-YAPTL2MP.cjs} +2 -2
  46. package/lib/chunk-ZWXZ5DBX.cjs +3 -0
  47. package/lib/cloud-storage.cjs +1 -1
  48. package/lib/cloud-storage.js +1 -1
  49. package/lib/continuous-event-graph/index.cjs +1 -1
  50. package/lib/continuous-event-graph/index.js +1 -1
  51. package/lib/event-graph/index.cjs +1 -1
  52. package/lib/event-graph/index.js +1 -1
  53. package/lib/firestore-storage/index.cjs +1 -1
  54. package/lib/firestore-storage/index.js +1 -1
  55. package/lib/index.cjs +2 -2
  56. package/lib/index.js +1 -1
  57. package/lib/localstorage-storage/index.cjs +1 -1
  58. package/lib/localstorage-storage/index.js +1 -1
  59. package/lib/server-jobs-queue-runner/index.d.cts +1 -1
  60. package/lib/server-jobs-queue-runner/index.d.ts +1 -1
  61. package/lib/server-runtime/index.cjs +1 -1
  62. package/lib/server-runtime/index.d.cts +2 -2
  63. package/lib/server-runtime/index.d.ts +2 -2
  64. package/lib/server-runtime/index.js +1 -1
  65. package/lib/server-runtime-agentface/index.d.cts +1 -1
  66. package/lib/server-runtime-agentface/index.d.ts +1 -1
  67. package/lib/server-runtime-controlface/index.cjs +1 -1
  68. package/lib/server-runtime-controlface/index.d.cts +1 -1
  69. package/lib/server-runtime-controlface/index.d.ts +1 -1
  70. package/lib/server-runtime-controlface/index.js +1 -1
  71. package/lib/server-runtime-core/index.cjs +1 -1
  72. package/lib/server-runtime-core/index.d.cts +7 -4
  73. package/lib/server-runtime-core/index.d.ts +7 -4
  74. package/lib/server-runtime-core/index.js +1 -1
  75. package/lib/server-runtime-watchers/index.d.cts +3 -3
  76. package/lib/server-runtime-watchers/index.d.ts +3 -3
  77. package/lib/server-runtime-webhooks/index.d.cts +1 -1
  78. package/lib/server-runtime-webhooks/index.d.ts +1 -1
  79. package/lib/{sse-hub-D_94fV87.d.ts → sse-hub-D_QHswxL.d.ts} +1 -1
  80. package/lib/{sse-hub-BRBvymHR.d.cts → sse-hub-XO6crN9o.d.cts} +1 -1
  81. package/lib/{types-BsqzUZNl.d.ts → types-B8Yieskx.d.ts} +2 -0
  82. package/lib/{types-DxhB6Toz.d.cts → types-gTf9pAyC.d.cts} +2 -0
  83. package/package.json +1 -1
  84. package/lib/chunk-5EA2ESS4.cjs +0 -16
  85. package/lib/chunk-5VTIOM2U.js +0 -3
  86. package/lib/chunk-5XLFPPTY.cjs +0 -2
  87. package/lib/chunk-7QNEV5S3.js +0 -2
  88. package/lib/chunk-BAG7MHZP.cjs +0 -3
  89. package/lib/chunk-CZ6ZFWFT.js +0 -2
  90. package/lib/chunk-EZOXABJ2.js +0 -3
  91. package/lib/chunk-G4XXRHL2.cjs +0 -3
  92. package/lib/chunk-HVLWVMG6.cjs +0 -3
  93. package/lib/chunk-LODXIALE.cjs +0 -2
  94. package/lib/chunk-NMOUBZXX.cjs +0 -2
  95. package/lib/chunk-SEUSFOMM.js +0 -3
  96. package/lib/chunk-VGT3TRQG.js +0 -3
  97. package/lib/chunk-WDPOGXTY.js +0 -2
  98. package/lib/chunk-YQ4MW72D.cjs +0 -3
  99. package/lib/chunk-ZCU5O2LR.js +0 -2
@@ -1,16 +0,0 @@
1
- 'use strict';var chunkLODXIALE_cjs=require('./chunk-LODXIALE.cjs'),chunkUJ7ZTV4J_cjs=require('./chunk-UJ7ZTV4J.cjs'),chunkGNFE24S7_cjs=require('./chunk-GNFE24S7.cjs'),Pe=require('ajv-formats');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Pe__default=/*#__PURE__*/_interopDefault(Pe);function F(t,e,n,s){switch(s){case "alphabetical":return Y(t);case "priority-first":return ie(t,e);case "duration-first":return ae(t,e);case "cost-optimized":return ce(t,e);case "resource-aware":return ue(t,e);case "round-robin":return le(t,n);default:return Y(t)}}function Y(t){return [...t].sort((e,n)=>e.localeCompare(n))[0]}function ie(t,e){return [...t].sort((n,s)=>{let o=e[n]?.priority??0,r=e[s]?.priority??0;if(o!==r)return r-o;let i=A(e[n]),a=A(e[s]);return i!==a?i-a:n.localeCompare(s)})[0]}function ae(t,e){return [...t].sort((n,s)=>{let o=A(e[n]),r=A(e[s]);if(o!==r)return o-r;let i=e[n]?.priority??0,a=e[s]?.priority??0;return i!==a?a-i:n.localeCompare(s)})[0]}function ce(t,e){return [...t].sort((n,s)=>{let o=e[n]?.estimatedCost??0,r=e[s]?.estimatedCost??0;if(o!==r)return o-r;let i=e[n]?.priority??0,a=e[s]?.priority??0;return i!==a?a-i:n.localeCompare(s)})[0]}function ue(t,e){return [...t].sort((n,s)=>{let o=e[n]?.estimatedResources?.cpu??1,r=e[s]?.estimatedResources?.cpu??1;if(o!==r)return o-r;let i=e[n]?.priority??0,a=e[s]?.priority??0;return i!==a?a-i:n.localeCompare(s)})[0]}function le(t,e){let n=Object.values(e.tasks).reduce((o,r)=>o+r.executionCount,0),s=[...t].sort();return s[n%s.length]}function A(t){return t?.estimatedDuration??1/0}function j(t,e){return t.filter(n=>{let s=chunkLODXIALE_cjs.g(e[n]);return !chunkLODXIALE_cjs.t(n,s,t,e)})}function U(t,e){let n=chunkLODXIALE_cjs.s(t,e),s=[];for(let r of Object.values(n))if(r.length===1)s.push(...r);else {let i=Math.floor(Math.random()*r.length);s.push(r[i]);}return j(t,e).forEach(r=>{s.includes(r)||s.push(r);}),s}function W(t,e){switch(e.executionConfig.completionStrategy){case "all-tasks-done":return pe(t,e);case "all-outputs-done":return K(t,e);case "only-resolved":return fe(t,e);case "goal-reached":return de(t,e);case "manual":return {isComplete:false,expectedCompletion:{taskNames:[],outputs:[]}};default:return K(t,e)}}function pe(t,e){let n=chunkLODXIALE_cjs.i(t),s=Object.keys(n);return s.length===0?{isComplete:true,expectedCompletion:{taskNames:[],outputs:[]}}:{isComplete:s.every(r=>{let i=e.tasks[r];return i?.status===chunkLODXIALE_cjs.a.COMPLETED||chunkLODXIALE_cjs.l(i)}),expectedCompletion:{taskNames:s,outputs:[]}}}function K(t,e){let n=chunkLODXIALE_cjs.i(t),s=new Set;for(let i of Object.values(n))chunkLODXIALE_cjs.g(i).forEach(a=>s.add(a));let o=chunkLODXIALE_cjs.r(t,e.tasks);return {isComplete:[...s].every(i=>o.includes(i)),expectedCompletion:{taskNames:[],outputs:[...s]}}}function fe(t,e){let n=chunkLODXIALE_cjs.i(t),s=chunkLODXIALE_cjs.r(t,e.tasks),o=new Set,r={};for(let[c,u]of Object.entries(n))chunkLODXIALE_cjs.g(u).forEach(p=>{o.add(p),r[p]||(r[p]=[]),r[p].push(c);});for(let c of o){if(s.includes(c))continue;if((r[c]??[]).some(p=>{let g=e.tasks[p];if(g?.status===chunkLODXIALE_cjs.a.COMPLETED||chunkLODXIALE_cjs.l(g))return false;let l=n[p];return chunkLODXIALE_cjs.h(l).every(m=>s.includes(m))}))return {isComplete:false,expectedCompletion:{taskNames:[],outputs:[]}}}let i=ge(t,e);return i.length>0?{isComplete:false,expectedCompletion:{taskNames:i,outputs:[]}}:{isComplete:Object.values(e.tasks).filter(c=>c.status===chunkLODXIALE_cjs.a.COMPLETED).length>0||s.length>0,expectedCompletion:{taskNames:[],outputs:[]}}}function de(t,e){let n=t.settings.goal??[];if(n.length===0)return K(t,e);let s=chunkLODXIALE_cjs.r(t,e.tasks);return {isComplete:n.every(r=>s.includes(r)),expectedCompletion:{taskNames:[],outputs:n}}}function ge(t,e){let n=chunkLODXIALE_cjs.i(t),s=chunkLODXIALE_cjs.r(t,e.tasks),o=[];for(let[r,i]of Object.entries(n)){let a=e.tasks[r];if(a?.status===chunkLODXIALE_cjs.a.COMPLETED||a?.status===chunkLODXIALE_cjs.a.RUNNING||chunkLODXIALE_cjs.l(a))continue;if(chunkLODXIALE_cjs.h(i).every(u=>s.includes(u))){let u=chunkLODXIALE_cjs.g(i);u.length>0&&u.every(p=>s.includes(p))||o.push(r);}}return o}function H(t){let{graph:e,state:n,eligibleTasks:s,completionResult:o}=t,r=n.tasks,i=chunkLODXIALE_cjs.i(e),a=chunkLODXIALE_cjs.r(e,r);if(s.length>0)return {is_stuck:false,stuck_description:null,outputs_unresolvable:[],tasks_blocked:[]};if(Object.values(r).some(p=>p.status===chunkLODXIALE_cjs.a.RUNNING))return {is_stuck:false,stuck_description:null,outputs_unresolvable:[],tasks_blocked:[]};if(o?.expectedCompletion){let{taskNames:p=[],outputs:g=[]}=o.expectedCompletion;if(p.length>0){let l=p.filter(f=>chunkLODXIALE_cjs.l(r[f]));if(l.length>0&&l.length===p.length)return {is_stuck:true,stuck_description:`Completion expects tasks ${p.join(", ")} but all are failed`,tasks_blocked:l,outputs_unresolvable:g}}if(g.length>0&&n.executionConfig.completionStrategy!=="only-resolved"){let l=g.filter(f=>!a.includes(f));if(l.length>0){let f=[];for(let m of l)Object.entries(i).filter(([,C])=>chunkLODXIALE_cjs.g(C).includes(m)).map(([C])=>C).filter(C=>!chunkLODXIALE_cjs.l(r[C])).length===0&&f.push(m);if(f.length>0)return {is_stuck:true,stuck_description:`Completion expects outputs '${f.join("', '")}' but no viable tasks can provide them`,tasks_blocked:[],outputs_unresolvable:f}}}}let u=[],d=new Set;for(let[p,g]of Object.entries(i)){let l=r[p];if(l?.status===chunkLODXIALE_cjs.a.COMPLETED||chunkLODXIALE_cjs.l(l)||l?.status===chunkLODXIALE_cjs.a.RUNNING)continue;let m=chunkLODXIALE_cjs.h(g).filter(k=>!a.includes(k));m.length>0&&(m.every(x=>Object.entries(i).filter(([,v])=>chunkLODXIALE_cjs.g(v).includes(x)).map(([v])=>v).some(v=>!chunkLODXIALE_cjs.l(r[v])&&r[v]?.status!==chunkLODXIALE_cjs.a.COMPLETED))||(u.push(p),m.forEach(x=>d.add(x))));}return u.length>0?{is_stuck:true,stuck_description:`Tasks [${u.join(", ")}] blocked by unresolvable dependencies: ${[...d].join(", ")}`,tasks_blocked:u,outputs_unresolvable:[...d]}:{is_stuck:false,stuck_description:null,outputs_unresolvable:[],tasks_blocked:[]}}function me(t,e){let n=[],s=chunkLODXIALE_cjs.i(t);if(Object.keys(s).length===0)return {eligibleTasks:[],isComplete:true,stuckDetection:{is_stuck:false,stuck_description:null,outputs_unresolvable:[],tasks_blocked:[]},hasConflicts:false,conflicts:{},strategy:e.executionConfig.conflictStrategy,processingLog:["No tasks defined"]};let o=e.executionConfig.executionMode,r=e.executionConfig.conflictStrategy,i=J(t,e);n.push(`Found ${i.length} candidate tasks: ${i.join(", ")||"none"}`);let a,c=false,u={};if(o==="dependency-mode")a=i;else {let g=he(i,t,e,r);a=g.eligibleTasks,c=g.hasConflicts,u=g.conflicts;}n.push(`Eligible after conflict resolution: ${a.join(", ")||"none"}`);let d=W(t,e);n.push(`Execution complete: ${d.isComplete}`);let p=H({graph:t,state:e,eligibleTasks:a,completionResult:d});return p.is_stuck&&n.push(`STUCK: ${p.stuck_description}`),{eligibleTasks:a,isComplete:d.isComplete,stuckDetection:p,hasConflicts:c,conflicts:u,strategy:r,processingLog:n}}function J(t,e){let n=chunkLODXIALE_cjs.i(t),s=chunkLODXIALE_cjs.r(t,e.tasks),o=[...new Set([...s,...e.availableOutputs])],r=[];for(let[i,a]of Object.entries(n)){let c=e.tasks[i],u=chunkLODXIALE_cjs.o(a,t.settings),d=u!=="once";if(c?.status===chunkLODXIALE_cjs.a.RUNNING||chunkLODXIALE_cjs.l(c))continue;let p=chunkLODXIALE_cjs.q(a);if(p!==void 0&&c&&c.executionCount>=p||a.circuit_breaker&&c&&c.executionCount>=a.circuit_breaker.max_executions||!d&&c?.status===chunkLODXIALE_cjs.a.COMPLETED)continue;if(d&&c?.status===chunkLODXIALE_cjs.a.COMPLETED){let l=chunkLODXIALE_cjs.h(a);switch(u){case "data-changed":{if(l.length>0){if(!l.some(m=>{for(let[k,x]of Object.entries(n))if(chunkLODXIALE_cjs.g(x).includes(m)){let C=e.tasks[k];if(!C)continue;let v=c.lastConsumedHashes?.[m];return C.lastDataHash==null?C.executionCount>c.lastEpoch:C.lastDataHash!==v}return false}))continue}else continue;break}case "epoch-changed":{if(l.length>0){if(!l.some(m=>{for(let[k,x]of Object.entries(n))if(chunkLODXIALE_cjs.g(x).includes(m)){let C=e.tasks[k];if(C&&C.executionCount>c.lastEpoch)return true}return false}))continue}else continue;break}case "time-based":{let f=a.refreshInterval??0;if(f<=0)continue;let m=c.completedAt;if(!m||(Date.now()-Date.parse(m))/1e3<f)continue;break}case "manual":continue;default:continue}}if(chunkLODXIALE_cjs.h(a).every(l=>o.includes(l))){if(!d){let l=chunkLODXIALE_cjs.g(a);if(l.length>0&&l.every(m=>o.includes(m)))continue}r.push(i);}}return r}function he(t,e,n,s){let o={eligibleTasks:[],hasConflicts:false,conflicts:{}};if(t.length===0)return o;let r=chunkLODXIALE_cjs.i(e);switch(s){case "parallel-all":return o.eligibleTasks=t,o;case "user-choice":{if(o.eligibleTasks=t,t.length>1){let p=chunkLODXIALE_cjs.s(t,r);for(let[g,l]of Object.entries(p))l.length>1&&(o.conflicts[g]=l,o.hasConflicts=true);}return o}case "skip-conflicts":return o.eligibleTasks=j(t,r),o;case "random-select":return o.eligibleTasks=U(t,r),o}let i=chunkLODXIALE_cjs.s(t,r),a=new Set;for(let[p,g]of Object.entries(n.tasks))if(g.status===chunkLODXIALE_cjs.a.RUNNING){let l=e.tasks[p];l&&chunkLODXIALE_cjs.g(l).forEach(f=>a.add(f));}let c=[],u=new Set;for(let[p,g]of Object.entries(i))if(!a.has(p)){if(g.length===1)c.push(g[0]);else {let l=F(g,r,n,s);c.push(l);}g.forEach(l=>u.add(l));}return t.filter(p=>!u.has(p)).forEach(p=>{c.includes(p)||c.push(p);}),o.eligibleTasks=c,o}function X(t,e,n){if("executionId"in e&&e.executionId&&e.executionId!==t.executionId)return t;switch(e.type){case "task-started":return chunkLODXIALE_cjs.B(t,e.taskName,n);case "task-completed":return chunkLODXIALE_cjs.C(t,n,e.taskName,e.result,e.dataHash,e.data);case "task-failed":return chunkLODXIALE_cjs.D(t,n,e.taskName,e.error);case "task-progress":return chunkLODXIALE_cjs.E(t,e.taskName,e.message,e.progress);case "task-restart":return chunkLODXIALE_cjs.F(t,e.taskName);case "inject-tokens":return ye(t,e.tokens);case "agent-action":return Ce(t,e.action,n,e.config);case "task-upsert":return be(t,e.taskName,e.taskConfig);default:return t}}function ke(t,e,n){return e.reduce((s,o)=>X(s,o,n),t)}function ye(t,e){return {...t,availableOutputs:[...new Set([...t.availableOutputs,...e])],lastUpdated:new Date().toISOString()}}function Ce(t,e,n,s){let o=new Date().toISOString();switch(e){case "start":{let r=`exec-${Date.now()}`,i=chunkLODXIALE_cjs.A(n,r);return s&&(s.executionMode&&(i.executionConfig.executionMode=s.executionMode),s.conflictStrategy&&(i.executionConfig.conflictStrategy=s.conflictStrategy),s.completionStrategy&&(i.executionConfig.completionStrategy=s.completionStrategy)),i}case "stop":return {...t,status:"stopped",executionId:null,lastUpdated:o};case "pause":return {...t,status:"paused",lastUpdated:o};case "resume":return {...t,status:"running",lastUpdated:o};default:return t}}function be(t,e,n){return !e||!n||!Array.isArray(n.provides)?t:{...t,tasks:{...t.tasks,[e]:t.tasks[e]??chunkLODXIALE_cjs.z()},lastUpdated:new Date().toISOString()}}function Te(t){let e={};for(let[n,s]of Object.entries(t)){for(let o of chunkLODXIALE_cjs.g(s))e[o]||(e[o]=[]),e[o].push(n);if(s.on)for(let o of Object.values(s.on))for(let r of o)e[r]||(e[r]=[]),e[r].includes(n)||e[r].push(n);if(s.on_failure)for(let o of s.on_failure)e[o]||(e[o]=[]),e[o].includes(n)||e[o].push(n);}return e}function xe(t,e){let n={};for(let[s,o]of Object.entries(t)){let r=chunkLODXIALE_cjs.h(o),i=new Set;for(let a of r){let c=e[a]||[];for(let u of c)u!==s&&i.add(u);}n[s]=[...i];}return n}function Se(t,e){let n=new Set(t),s={},o={};for(let a of t)s[a]=0,o[a]=[];for(let a of t)for(let c of e[a]||[])n.has(c)&&(s[a]++,o[c].push(a));let r=[],i=new Set(t);for(;i.size>0;){let a=[];for(let c of i)s[c]===0&&a.push(c);if(a.length===0){r.push([...i]);break}a.sort(),r.push(a);for(let c of a){i.delete(c);for(let u of o[c]||[])i.has(u)&&s[u]--;}}return r}function ve(t){let e=chunkLODXIALE_cjs.i(t),n=Object.keys(e);if(n.length===0)return {phases:[],dependencies:{},conflicts:{},entryPoints:[],leafTasks:[],unreachableTokens:[],blockedTasks:[],depth:0,maxParallelism:0};let s=Te(e),o=xe(e,s),r={};for(let[f,m]of Object.entries(s))m.length>1&&(r[f]=m);let i=n.filter(f=>chunkLODXIALE_cjs.h(e[f]).length===0),a=new Set;for(let f of Object.values(o))for(let m of f)a.add(m);let c=n.filter(f=>!a.has(f)),u=new Set;for(let f of Object.values(e))for(let m of chunkLODXIALE_cjs.h(f))u.add(m);let d=[...u].filter(f=>!s[f]),p=new Set(d),g=n.filter(f=>chunkLODXIALE_cjs.h(e[f]).some(m=>p.has(m))),l=Se(n,o);return {phases:l,dependencies:o,conflicts:r,entryPoints:i,leafTasks:c.sort(),unreachableTokens:d.sort(),blockedTasks:g.sort(),depth:l.length,maxParallelism:Math.max(0,...l.map(f=>f.length))}}function R(t){return t.replace(/[^a-zA-Z0-9_]/g,"_")}function Ee(t,e={}){let{direction:n="TD",showTokens:s=true,title:o}=e,r=chunkLODXIALE_cjs.i(t),i=Object.keys(r);if(i.length===0)return `graph ${n}
2
- empty[No tasks defined]`;let a={};for(let[l,f]of Object.entries(r)){for(let m of chunkLODXIALE_cjs.g(f))a[m]||(a[m]=[]),a[m].push(l);if(f.on)for(let m of Object.values(f.on))for(let k of m)a[k]||(a[k]=[]),a[k].includes(l)||a[k].push(l);}let c=[],u=o||t.id||"Event Graph";c.push(`%% ${u}`),c.push(`graph ${n}`);let d=new Set;for(let l of Object.values(r))for(let f of chunkLODXIALE_cjs.h(l))d.add(f);let p=new Set(i.filter(l=>{let f=chunkLODXIALE_cjs.g(r[l]);return f.length===0||f.every(m=>!d.has(m))}));for(let l of i){let f=R(l);chunkLODXIALE_cjs.h(r[l]).length===0?c.push(` ${f}([${l}])`):p.has(l)?c.push(` ${f}[[${l}]]`):c.push(` ${f}[${l}]`);}let g=new Set;for(let[l,f]of Object.entries(r)){let m=chunkLODXIALE_cjs.h(f);for(let k of m){let x=a[k]||[];for(let C of x){if(C===l)continue;let v=`${C}->${l}:${k}`;if(g.has(v))continue;g.add(v);let V=R(C),z=R(l);s?c.push(` ${V} -->|${k}| ${z}`):c.push(` ${V} --> ${z}`);}}for(let k of m)if(!a[k]){let x=`warn_${R(k)}`,C=R(l);c.push(` ${x}{{\u26A0 ${k}}} -.->|missing| ${C}`);}}return c.join(`
3
- `)}function Re(t,e={}){let{direction:n="TD",title:s}=e,o=t.steps,r=t.terminal_states,i=t.settings.start_step,a=[],c=s||t.id||"Step Machine";a.push(`%% ${c}`),a.push(`graph ${n}`),a.push(" START(( ))"),a.push(` START --> ${R(i)}`);for(let u of Object.keys(o)){let d=R(u);a.push(` ${d}[${u}]`);}for(let[u,d]of Object.entries(r)){let p=R(u);a.push(` ${p}([${u}: ${d.return_intent}])`);}for(let[u,d]of Object.entries(o)){let p=R(u);for(let[g,l]of Object.entries(d.transitions)){let f=R(l);a.push(` ${p} -->|${g}| ${f}`);}}return a.join(`
4
- `)}function Z(t){let e=[];if(!t||typeof t!="object")return ["Graph config must be an object"];let n=t;if(!n.settings||typeof n.settings!="object")e.push('Graph config must have a "settings" object');else {let s=n.settings;(!s.completion||typeof s.completion!="string")&&e.push("settings.completion must be a string"),s.completion==="goal-reached"&&(!Array.isArray(s.goal)||s.goal.length===0)&&e.push('settings.goal must be a non-empty array when completion is "goal-reached"');}if(!n.tasks||typeof n.tasks!="object")e.push('Graph config must have a "tasks" object');else {let s=n.tasks;Object.keys(s).length===0&&e.push("Graph config must have at least one task");for(let[o,r]of Object.entries(s)){if(!r||typeof r!="object"){e.push(`Task "${o}" must be an object`);continue}let i=r;if(Array.isArray(i.provides)||e.push(`Task "${o}" must have a "provides" array`),i.requires!==void 0&&!Array.isArray(i.requires)&&e.push(`Task "${o}".requires must be an array if present`),i.on!==void 0)if(typeof i.on!="object"||Array.isArray(i.on))e.push(`Task "${o}".on must be an object mapping result keys to token arrays`);else for(let[a,c]of Object.entries(i.on))Array.isArray(c)||e.push(`Task "${o}".on.${a} must be an array of tokens`);}}return e}async function Q(t){return (await import('yaml')).parse(t)}async function Oe(t){let e;if(typeof t=="string")if(t.startsWith("http://")||t.startsWith("https://")){let s=await fetch(t);if(!s.ok)throw new Error(`Failed to load graph config from ${t}: ${s.statusText}`);let o=await s.text();(s.headers.get("content-type")??"").includes("json")||t.endsWith(".json")?e=JSON.parse(o):e=await Q(o);}else if(t.includes("{"))e=JSON.parse(t);else {let o=await(await import('fs/promises')).readFile(t,"utf-8");t.endsWith(".json")?e=JSON.parse(o):e=await Q(o);}else e=t;let n=Z(e);if(n.length>0)throw new Error(`Invalid graph configuration:
5
- - ${n.join(`
6
- - `)}`);return e}function ee(t,e={}){let{format:n="json",indent:s=2}=e;return n==="yaml"?G(t,s):JSON.stringify(t,null,s)}async function Ae(t,e,n={}){let s=n.format??(e.endsWith(".yaml")||e.endsWith(".yml")?"yaml":"json"),o=ee(t,{...n,format:s});await(await import('fs/promises')).writeFile(e,o,"utf-8");}function G(t,e,n=0){let s=" ".repeat(e*n);if(t==null)return "null";if(typeof t=="boolean"||typeof t=="number")return String(t);if(typeof t=="string")return t.includes(":")||t.includes("#")||t.includes(`
7
- `)||t.includes('"')||t.includes("'")||t.startsWith(" ")||t.startsWith("{")||t.startsWith("[")||t===""?JSON.stringify(t):t;if(Array.isArray(t))return t.length===0?"[]":t.every(o=>typeof o=="string"||typeof o=="number"||typeof o=="boolean")?`[${t.map(o=>typeof o=="string"?G(o,e,0):String(o)).join(", ")}]`:t.map(o=>{let r=G(o,e,n+1);if(typeof o=="object"&&o!==null&&!Array.isArray(o)){let i=r.trimStart().split(`
8
- `);return `${s}- ${i[0]}
9
- ${i.slice(1).map(a=>`${s} ${a.trimStart()?a:""}`).filter(Boolean).join(`
10
- `)}`}return `${s}- ${r}`}).join(`
11
- `);if(typeof t=="object"){let o=Object.entries(t);return o.length===0?"{}":o.map(([r,i])=>{if(i===void 0)return "";let a=G(i,e,n+1);return typeof i=="object"&&i!==null&&!Array.isArray(i)&&Object.keys(i).length>0?`${s}${r}:
12
- ${a}`:Array.isArray(i)&&i.length>0&&!i.every(c=>typeof c=="string"||typeof c=="number"||typeof c=="boolean")?`${s}${r}:
13
- ${a}`:`${s}${r}: ${a}`}).filter(Boolean).join(`
14
- `)}return String(t)}function je(t){let e={};for(let[n,s]of Object.entries(t)){for(let o of chunkLODXIALE_cjs.g(s))e[o]||(e[o]=[]),e[o].push(n);if(s.on)for(let o of Object.values(s.on))for(let r of o)e[r]||(e[r]=[]),e[r].includes(n)||e[r].push(n);if(s.on_failure)for(let o of s.on_failure)e[o]||(e[o]=[]),e[o].includes(n)||e[o].push(n);}return e}function Ge(t,e){let n={};for(let[s,o]of Object.entries(t)){n[s]=new Set;for(let r of chunkLODXIALE_cjs.h(o))for(let i of e[r]||[])i!==s&&n[s].add(i);}return n}function _e(t,e){let r={},i={},a=[];for(let u of t)r[u]=0,i[u]=null;function c(u){r[u]=1;for(let d of e[u]||[])if(r[d]===1){let p=[d],g=u;for(;g!==d;)p.push(g),g=i[g];p.push(d),p.reverse(),a.push(p);}else r[d]===0&&(i[d]=u,c(d));r[u]=2;}for(let u of t)r[u]===0&&c(u);return a}function $e(t){let e=[],n=chunkLODXIALE_cjs.i(t),s=Object.keys(n);if(s.length===0)return e.push({severity:"error",code:"EMPTY_GRAPH",message:"Graph has no tasks"}),te(e);let o=je(n),r=Ge(n,o);for(let[c,u]of Object.entries(n))for(let d of chunkLODXIALE_cjs.h(u))o[d]||e.push({severity:"error",code:"DANGLING_REQUIRES",message:`Task "${c}" requires token "${d}" but no task produces it`,tasks:[c],tokens:[d]});let i=_e(s,r);for(let c of i)e.push({severity:"error",code:"CIRCULAR_DEPENDENCY",message:`Circular dependency: ${c.join(" \u2192 ")}`,tasks:c.filter((u,d)=>d<c.length-1)});for(let[c,u]of Object.entries(n)){let d=chunkLODXIALE_cjs.h(u),p=chunkLODXIALE_cjs.g(u),g=d.filter(l=>p.includes(l));g.length>0&&e.push({severity:"error",code:"SELF_DEPENDENCY",message:`Task "${c}" requires tokens it provides itself: [${g.join(", ")}]`,tasks:[c],tokens:g});}for(let[c,u]of Object.entries(o))u.length>1&&e.push({severity:"warning",code:"PROVIDE_CONFLICT",message:`Token "${c}" is produced by multiple tasks: [${u.join(", ")}]. This requires a conflict strategy.`,tasks:u,tokens:[c]});if(t.settings.completion==="goal-reached"&&t.settings.goal)for(let c of t.settings.goal)o[c]||e.push({severity:"error",code:"UNREACHABLE_GOAL",message:`Goal token "${c}" cannot be produced by any task`,tokens:[c]});if(s.length>1)for(let[c,u]of Object.entries(n)){let d=chunkLODXIALE_cjs.g(u),p=u.on?Object.values(u.on).flat():[],g=u.on_failure||[];d.length===0&&p.length===0&&g.length===0&&e.push({severity:"warning",code:"DEAD_END_TASK",message:`Task "${c}" has no provides \u2014 it cannot unblock any downstream task`,tasks:[c]});}let a=new Set;for(let c of Object.values(n))for(let u of chunkLODXIALE_cjs.h(c))a.add(u);for(let[c,u]of Object.entries(n)){let d=chunkLODXIALE_cjs.h(u),p=chunkLODXIALE_cjs.g(u),g=u.on?Object.values(u.on).flat():[],l=[...p,...g],f=d.length===0,m=l.some(k=>a.has(k));f&&!m&&s.length>1&&(t.settings.completion==="goal-reached"&&t.settings.goal?.some(x=>l.includes(x))||e.push({severity:"info",code:"ISOLATED_TASK",message:`Task "${c}" is disconnected \u2014 it has no requires and nothing depends on its provides`,tasks:[c]}));}return t.settings.completion==="goal-reached"&&!t.settings.goal&&e.push({severity:"error",code:"MISSING_GOAL",message:'Completion strategy is "goal-reached" but no goal tokens are defined'}),te(e)}function te(t){let e=t.filter(s=>s.severity==="error"),n=t.filter(s=>s.severity==="warning");return {valid:e.length===0,issues:t,errors:e,warnings:n}}var se={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://github.com/yaml-flow/schema/event-graph.json",title:"Event Graph Configuration",description:"Schema for stateless event-graph (DAG) workflow definitions in yaml-flow",type:"object",required:["settings","tasks"],additionalProperties:false,properties:{id:{type:"string",description:"Optional graph identifier"},settings:{$ref:"#/definitions/settings"},tasks:{type:"object",description:"Task definitions keyed by name",minProperties:1,additionalProperties:{$ref:"#/definitions/task"}}},definitions:{settings:{type:"object",required:["completion"],properties:{completion:{type:"string",enum:["all-tasks-done","all-outputs-done","only-resolved","goal-reached","manual"],description:"Completion strategy"},conflict_strategy:{type:"string",enum:["alphabetical","priority-first","duration-first","cost-optimized","resource-aware","random-select","user-choice","parallel-all","skip-conflicts","round-robin"],description:"Conflict resolution strategy"},execution_mode:{type:"string",enum:["dependency-mode","eligibility-mode"],description:"Execution mode"},goal:{type:"array",items:{type:"string"},minItems:1,description:"Goal outputs \u2014 required when completion is 'goal-reached'"},max_iterations:{type:"integer",minimum:1,description:"Max scheduler iterations (safety limit, default: 1000)"},timeout_ms:{type:"integer",minimum:0,description:"Timeout in ms (declared for drivers, not enforced by pure engine)"},refreshStrategy:{$ref:"#/definitions/refresh_strategy",description:"Default refresh strategy for all tasks (default: 'data-changed')"}},additionalProperties:false,if:{properties:{completion:{const:"goal-reached"}}},then:{required:["completion","goal"]}},task:{type:"object",required:["provides"],properties:{requires:{type:"array",items:{type:"string"},description:"Tokens this task needs to become eligible"},provides:{type:"array",items:{type:"string"},description:"Tokens this task produces on successful completion"},on:{type:"object",description:"Conditional provides based on handler result key",additionalProperties:{type:"array",items:{type:"string"}}},on_failure:{type:"array",items:{type:"string"},description:"Tokens to inject when this task fails"},method:{type:"string",description:"Task execution method (informational \u2014 driver concern)"},config:{type:"object",description:"Arbitrary task configuration (driver concern)"},priority:{type:"number",description:"Higher = preferred in conflict resolution"},estimatedDuration:{type:"number",minimum:0,description:"Estimated duration in ms (used by duration-first strategy)"},estimatedCost:{type:"number",minimum:0,description:"Estimated cost (used by cost-optimized strategy)"},estimatedResources:{type:"object",additionalProperties:{type:"number"},description:"Resource requirements (used by resource-aware strategy)"},retry:{$ref:"#/definitions/task_retry"},refreshStrategy:{$ref:"#/definitions/refresh_strategy",description:"Task-level refresh strategy (overrides settings default)"},refreshInterval:{type:"number",minimum:0,description:"Interval in seconds for time-based refresh strategy"},maxExecutions:{type:"integer",minimum:1,description:"Maximum number of times this task can execute"},circuit_breaker:{$ref:"#/definitions/task_circuit_breaker"},description:{type:"string",description:"Human-readable description"},inference:{$ref:"#/definitions/inference_hints"}},additionalProperties:false},task_retry:{type:"object",required:["max_attempts"],properties:{max_attempts:{type:"integer",minimum:1,description:"Maximum retry attempts"},delay_ms:{type:"integer",minimum:0,description:"Delay between retries in ms"},backoff_multiplier:{type:"number",minimum:1,description:"Backoff multiplier (e.g., 2 for exponential)"}},additionalProperties:false},refresh_strategy:{type:"string",enum:["data-changed","epoch-changed","time-based","manual","once"],description:"Strategy for determining when a completed task should re-run"},task_circuit_breaker:{type:"object",required:["max_executions","on_break"],properties:{max_executions:{type:"integer",minimum:1,description:"Max executions before breaker trips"},on_break:{type:"array",items:{type:"string"},minItems:1,description:"Tokens to inject when breaker trips"}},additionalProperties:false},inference_hints:{type:"object",description:"LLM inference hints \u2014 opt-in metadata for AI-assisted completion detection",properties:{criteria:{type:"string",description:"Human-readable completion criteria"},keywords:{type:"array",items:{type:"string"},description:"Keywords to help the LLM understand the domain"},suggestedChecks:{type:"array",items:{type:"string"},description:"Suggested checks for verification"},autoDetectable:{type:"boolean",description:"Whether the LLM should attempt to auto-detect completion (default: false)"}},additionalProperties:false}}};var ne=chunkGNFE24S7_cjs.b(chunkUJ7ZTV4J_cjs.q(),1);var _=null;function Ie(){if(_)return _;let t=new ne.default({allErrors:true});return Pe__default.default(t),_=t.compile(se),_}function Ne(t){let e=Ie();return e(t)?{ok:true,errors:[]}:{ok:false,errors:(e.errors??[]).map(o=>`${o.instancePath||"/"}: ${o.message??"unknown error"}`)}}
15
- exports.a=F;exports.b=j;exports.c=U;exports.d=W;exports.e=H;exports.f=me;exports.g=J;exports.h=X;exports.i=ke;exports.j=ve;exports.k=Ee;exports.l=Re;exports.m=Z;exports.n=Oe;exports.o=ee;exports.p=Ae;exports.q=$e;exports.r=Ne;//# sourceMappingURL=chunk-5EA2ESS4.cjs.map
16
- //# sourceMappingURL=chunk-5EA2ESS4.cjs.map
@@ -1,3 +0,0 @@
1
- import {b as b$2}from'./chunk-6MD6FVE3.js';import {a,d,E,m,l,y,A,B,p as p$1,s,D,C,z,k,b as b$3,c,h,i,j,t,o,n,x,w,v,u as u$1}from'./chunk-EZOXABJ2.js';import {a as a$1,b as b$1}from'./chunk-44L64VQ2.js';import {q as q$1,p,a as a$2,u}from'./chunk-VGT3TRQG.js';import {a as a$3}from'./chunk-ATOQP3BD.js';import {e,f}from'./chunk-UGB7PC4P.js';async function mt(e,o,a){let r=await e.tryAcquire();if(!r)return false;try{await o();}finally{await r();}return await a?.(),true}function Pt(e){return typeof e=="object"&&e!==null&&"then"in e&&typeof e.then=="function"}function Pe(e,o){return Pt(e)?e.then(o):o(e)}function lt(e,o){let a={...e};for(let[r,s]of Object.entries(o))s!==null&&typeof s=="object"&&!Array.isArray(s)&&a[r]!==null&&typeof a[r]=="object"&&!Array.isArray(a[r])?a[r]=lt(a[r],s):a[r]=s;return a}function ve(e,o,a){if(o.length===0)return e;let[r,...s]=o;if(s.length===0)return {...e,[r]:a};let d=e[r]!==null&&typeof e[r]=="object"&&!Array.isArray(e[r])?e[r]:{};return {...e,[r]:ve(d,s,a)}}function ft(e){return {read:a=>e.read(a),get(a,r){return Pe(e.read(a),s=>{if(s===null)return null;let d=s;for(let f of r.split(".").filter(Boolean)){if(d===null||typeof d!="object"||Array.isArray(d))return null;d=d[f]??null;}return d??null})},write:(a,r)=>e.write(a,r),delete:a=>e.delete(a),listKeys:a=>e.listKeys(a),shallowMerge(a,r){return Pe(e.read(a),s=>e.write(a,{...s??{},...r}))},deepMerge(a,r){return Pe(e.read(a),s=>e.write(a,lt(s??{},r)))},patch(a,r,s){return Pe(e.read(a),d=>{let f=r.split(".").filter(Boolean);return e.write(a,ve(d??{},f,s))})}}}function gt(e){return ft(e)}function pt(e,o){return {async readIndex(){return await e.read("_index")},writeIndex(a){return e.write("_index",a)},async readCard(a){return await e.read(a)},async writeCard(a,r){return await e.write(a,r),o(r)},removeCard(a){return e.delete(a)},async cardExists(a){return await e.read(a)!==null},defaultCardKey(a){return a}}}function yt(e,o){async function a(){return await e.readIndex()??{}}return {async readCard(r){let s=(await a())[r];return !s||!await e.cardExists(s.key)?null:await e.readCard(s.key)},async readCardKey(r){return (await a())[r]?.key??null},async readAllCards(){let r=[];for(let[s,d]of Object.entries(await a())){if(!await e.cardExists(d.key))continue;let f=await e.readCard(d.key);f?r.push(f):o?.(`[card-store] could not read card "${s}" at key "${d.key}"`);}return r},async readChecksumIndex(){let r={};for(let[s,d]of Object.entries(await a()))r[s]=d.checksum;return r},async changedSince(r){let s=await a(),d=[];for(let[f,v]of Object.entries(s))r[f]!==v.checksum&&d.push(f);for(let f of Object.keys(r))s[f]||d.push(f);return d},async validateUpsert(r,s){let d=await a(),f=d[r],v=Object.entries(d).find(([,w])=>w.key===s);return f&&f.key!==s?{ok:false,error:`Card id "${r}" is already mapped to key "${f.key}", cannot remap to "${s}"`}:v&&v[0]!==r?{ok:false,error:`Key "${s}" is already mapped to card id "${v[0]}", cannot remap to "${r}"`}:{ok:true}},async writeCard(r,s,d){let f=await a(),v=d??f[r]?.key??e.defaultCardKey(r),w=await e.writeCard(v,s);f[r]={key:v,checksum:w,updatedAt:new Date().toISOString()},await e.writeIndex(f);},async patchCard(r,s,d){let f=await a(),v=f[r];if(!v||!await e.cardExists(v.key))throw new Error(`card "${r}" not found`);let w=await e.readCard(v.key);if(!w||typeof w!="object"||Array.isArray(w))throw new Error(`card "${r}" is not patchable`);let m=String(s||"").split(".").filter(Boolean),l=ve(w,m,d),S=await e.writeCard(v.key,l);f[r]={key:v.key,checksum:S,updatedAt:new Date().toISOString()},await e.writeIndex(f);},async removeCard(r){let s=await a(),d=s[r];d&&(await e.removeCard(d.key),delete s[r],await e.writeIndex(s));},readIndex(){return a()}}}function Nt(e,o){return a(e,o)}function _t(e,o,a){return {blob:e,kv:o,journal:a}}function St(e$1,o={}){function a(m){return {status:"success",data:m}}function r(m){return {status:"fail",error:m}}function s(m){return {status:"error",error:m instanceof Error?m.message:String(m)}}async function d(m){let l=o.emitNotification;if(!l||m.length===0)return;let S=e(m);if(S.length===1){await l(S[0]);return}await l(f({kind:"notification-batch",notifications:S}));}async function f$1(m){let l=m.params?.id;if(l){let S=await e$1.readCard(l);if(!S)throw new Error(`card "${l}" not found`);return [S]}return await e$1.readAllCards()}function v(m){return f({kind:"notification-batch",notifications:e(m.map(l=>({kind:"card_refreshed",cardId:l.id,card:l})))})}function w(m){if(Array.isArray(m))return m;if(m&&typeof m=="object"){let l=m;return Array.isArray(l.files)?l.files:[m]}return null}return {async get(m){try{return a({cards:await f$1(m)})}catch(l){return s(l)}},async buildNotificationBatch(m){try{return a(v(await f$1(m)))}catch(l){return s(l)}},async set(m){try{let l=m.body;if(l==null)return r("set requires a body (card object or array of cards)");let S=Array.isArray(l)?l:[l];for(let h of S){if(typeof h.id!="string")return r("each card must have a string `id` field");await e$1.writeCard(h.id,h);}return await d(S.map(h=>({kind:"card_refreshed",cardId:h.id,card:h}))),a({count:S.length})}catch(l){return s(l)}},async del(m){try{let l=m.body?.ids??[],S=m.params?.id,h=S?[...l,S]:l;if(h.length===0)return r("del requires body.ids (string[]) or params.id");for(let N of h)await e$1.removeCard(N);return await d(h.map(N=>({kind:"card_removed",cardId:N}))),a({count:h.length})}catch(l){return s(l)}},async patch(m){try{let l=m.params?.id,S=m.params?.path;if(!l)return r("patch requires params.id");if(!S)return r("patch requires params.path");let h=m.body,N=h&&Object.prototype.hasOwnProperty.call(h,"value")?h.value:m.body;await e$1.patchCard(l,S,N);let O=await e$1.readCard(l);return O?(await d([{kind:"card_refreshed",cardId:l,card:O}]),a({count:1})):r(`card "${l}" not found`)}catch(l){return s(l)}},async appendFiles(m){try{let l=m.params?.id;if(!l)return r("appendFiles requires params.id");let S=await e$1.readCard(l);if(!S)return r(`card "${l}" not found`);let h=w(m.body);if(!h||h.length===0)return r("appendFiles requires a file metadata object, array, or body.files array");let N=S.card_data&&typeof S.card_data=="object"&&!Array.isArray(S.card_data)?S.card_data:{},O=Array.isArray(N.files)?N.files:[],M=[...O,...h],V=h.map(($,Z)=>({idx:O.length+Z,entry:$})),K=await this.patch({params:{id:l,path:"card_data.files"},body:{value:M}});return K.status!=="success"?K:a({files_added:V})}catch(l){return s(l)}}}}async function vt(e,o){return (await e.peekActive()).find(a=>a.id===o)}function $t(e$1,o={}){async function a(r){let s=o.emitNotification;if(!s||r.length===0)return;let d=e(r);if(d.length===1){await s(d[0]);return}await s(f({kind:"notification-batch",notifications:d}));}return {async enqueue(r){let s=await e$1.enqueue(r);return await a([{kind:"message_enqueued",lane:o.lane,message:s}]),s},async enqueueMany(r){let s=await e$1.enqueueMany(r);return await a(s.map(d=>({kind:"message_enqueued",lane:o.lane,message:d}))),s},enqueueIfAbsent:e$1.enqueueIfAbsent?async(r,s)=>{let d=await e$1.enqueueIfAbsent(r,s);return d&&await a([{kind:"message_enqueued",lane:o.lane,message:d}]),d}:void 0,lease(r){return e$1.lease(r)},ack(r,s){return e$1.ack(r,s)},nack(r,s,d){return e$1.nack(r,s,d)},peekActive(r){return e$1.peekActive(r)},peekDeadLetter(r){return e$1.peekDeadLetter(r)},async stage(r,s){return e$1.stage(r,s)},async commitStaged(r){let s=await e$1.commitStaged(r);if(s){let d=await vt(e$1,r);d&&await a([{kind:"message_enqueued",lane:o.lane,message:d}]);}return s},async discardStaged(r,s){return e$1.discardStaged(r,s)},peekStaged(r){return e$1.peekStaged(r)}}}function b(e){return e!==void 0?{status:"success",data:e}:{status:"success"}}function R(e){return {status:"fail",error:e}}function T(e){return {status:"error",error:e instanceof Error?e.message:String(e)}}function q(){return new Date().toISOString()}function bt(e){let o=new TextEncoder().encode(e),a=Array.from(o,r=>String.fromCharCode(r)).join("");return btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Rt(e){let o=e.replace(/-/g,"+").replace(/_/g,"/"),a=o+"=".repeat((4-o.length%4)%4),r=atob(a),s=Uint8Array.from(r,d=>d.charCodeAt(0));return new TextDecoder().decode(s)}function be(e){try{let o=JSON.parse(Rt(e));return typeof o?.t=="string"?{taskName:o.t}:null}catch{return null}}function kt(e){return bt(JSON.stringify(e))}function Ct(e){try{let o=JSON.parse(Rt(e));return typeof o?.cbk=="string"&&typeof o?.cid=="string"&&typeof o?.b=="string"&&typeof o?.d=="string"?o:null}catch{return null}}function At(e){return j(e,t,()=>({_sources:{}}))}function It(e,o){return h(e,o)}function xt(e){return k(e)}function Tt(e,o){return i(e,o)}function Ot(e,o$1,a,r,s,d){return async f=>{let v$1=[],w$1=await a.cardStore.readCard(f.nodeId);if(!w$1)return "task-initiate-failure";let m$1=w$1.id;if(m$1===m){let p=a.activeTaskConfigs?.(),y={[l]:p?o((await Promise.all(Object.keys(p).filter(k=>k!==m).map(k=>a.cardStore.readCard(k)))).filter(k=>!!k),p):await n(await a.cardStore.readAllCards())};return (d??(()=>{}))(y),r(f.nodeId,y),"task-initiated"}let l$1=w$1.card_data??{},S=w$1.source_defs??[],h=S,N=await a.cardRuntimeStore.readRuntime(m$1),O=false,M=async()=>{O&&(await a.cardRuntimeStore.writeRuntime(m$1,N),O=false);},V=p=>u$1(N._sources[p]),K=(p,y)=>{N._sources[p]=u$1(y),O=true;},$=f.taskState?.executionCount??0;if(N._lastExecutionCount!==$&&(N._sources={},N._lastExecutionCount=$,O=true),f.update){let p=f.update.outputFile;if(p){let y=V(p);if(f.update.failure){let k=f.update.rqt??y.lastRequestedToken??y.queueRequestedToken;k&&K(p,x(y,k));}else {let k=f.update.rqt;if(!y.lastCompletedToken||k>y.lastCompletedToken){let j=typeof f.update.deliveryToken=="string"?f.update.deliveryToken:void 0,re=j?await a.fetchedSourcesStore.commitSourceData(m$1,p,j):false;K(p,re?w(y,k):x(y,k));}}await M();}}let Z={};for(let p of S){if(!p.outputFile)continue;let y=await a.fetchedSourcesStore.readSourceData(m$1,p.outputFile);y!==null&&(Z[p.bindTo]=y);}let H={};for(let[p,y]of Object.entries(f.state??{}))if(y!==null&&typeof y=="object"&&!Array.isArray(y)){let k=y[p];H[p]=k!==void 0?k:y;}else H[p]=y;let ee={id:m$1,card_data:{...l$1},requires:H,source_defs:S,compute:w$1.compute};ee._sourcesData=Z,w$1.compute&&a$3.runSync(ee,{sourcesData:Z}),(s??(()=>{}))(m$1,ee.computed_values??{});let te=a$3.enrichSourcesSync(Array.isArray(w$1.source_defs)?w$1.source_defs:void 0,{card_data:w$1.card_data,requires:H}),Ae={...w$1,source_defs:Array.isArray(te)?te.map(p=>({...p,boardDir:typeof p.boardDir=="string"&&p.boardDir?p.boardDir:e.value})):te},W=q(),E=f.update?void 0:W,ge=h.filter(p=>{let y=p.outputFile;if(typeof y!="string"||!y)return true;let k=V(y);E&&(k={...k,queueRequestedToken:E},K(y,k));let j=k.queueRequestedToken??k.lastRequestedToken??W;return v(k,j)==="dispatch"});if(await M(),ge.length>0){let p=false,y=W;for(let k of ge){let j=k.outputFile;if(typeof j!="string"||!j)continue;let re=V(j),L=re.queueRequestedToken??W;K(j,{...re,lastRequestedToken:L}),y=L,p=true;}return p&&await M(),p&&(v$1.push({taskKind:"source-fetch",payload:{boardRef:a$1(e),enrichedCard:Ae,callbackToken:f.callbackToken,rqt:y}}),await a.executionRequestStore.appendEntries(o$1,v$1)),"task-initiated"}if(h.some(p=>{let y=p.outputFile;if(typeof y!="string"||!y)return false;let k=V(y),j=k.queueRequestedToken??k.lastRequestedToken??W;return v(k,j)==="in-flight"}))return "task-initiated";let ie=w$1.provides??[],ue={};for(let{bindTo:p,ref:y}of ie)ue[p]=a$3.resolve(ee,y);return (d??(()=>{}))(ue),r(f.nodeId,ue),v$1.length>0&&await a.executionRequestStore.appendEntries(o$1,v$1),"task-initiated"}}function nr(e$1,o,a$3={}){d(o.callbackTransport,"createAsyncBoardLiveCardsPublic");let r=o.callbackTransport,s$1=o.warn??(()=>{}),d$1=a$1(e$1),f$1=a$3.emitNotification??(n=>{if(!o.publishBoardChangeNotifications)return;let t=n.kind==="notification-batch"?n.notifications:[n];return o.publishBoardChangeNotifications(t)}),v=null,w=a$3.boardRuntimeStoreRef,m$1=a$3.scratchStoreRef,l$1=a$3.taskExecutorRef,S=a$3.chatHandlerFlow;function h(){if(!w)throw new Error(`Board at ${e$1.value} has no board runtime store configured. Pass boardRuntimeStoreRef at construction or init.`);return w}function N(n){if(n.length!==0)try{let t=e(n),c=f({kind:"notification-batch",notifications:t});return Promise.resolve(f$1(c)).catch(i=>{s$1(`[async-board-live-cards-public] emitNotification failed: ${i instanceof Error?i.message:String(i)}`);})}catch(t){s$1(`[async-board-live-cards-public] emitNotification failed: ${t instanceof Error?t.message:String(t)}`);return}}let O=()=>b$2(o.kvStorageForRef(h())),M=e$1.value,V=()=>b$3(a(()=>o.kvStorageForRef(h()),o.hashFn),"v1"),K=async()=>{let n=await O().readOutputsStoreRef();if(!n)throw new Error(`Board at ${e$1.value} has no outputs store configured.`);return xt(o.kvStorageForRef(n))},$=async()=>{let n=await O().readCardStoreRef();if(!n)throw new Error(`Board at ${e$1.value} has no card store configured.`);let t=o.kvStorageForRef(n);return yt(pt(gt(t),o.hashFn),s$1)};async function Z(){return !!(await V().readSnapshot(M)).values[s]}async function H(){let n=await V().readSnapshot(M);if(!n.values[s])throw new Error(`Board not initialized at ${e$1.value}`);return D(n.values)}async function ee(n,t){let c=await V().commitSnapshot(M,{schemaVersion:"v1",expectedVersion:t,deleteKeys:[],shallowMerge:C(n)});if(!c.ok)throw new Error(`Snapshot commit failed (version mismatch): expected=${t??"null"} current=${c.currentVersion??"null"}`)}let te=()=>c(o.journalStorageForRef(h()));async function Ae(){return l$1??await O().readTaskExecutorRef()}async function W(){return z(await(await K()).readAllDataObjects())}async function E$1(n){await te().appendEvent(n);}async function ge(){let n=await O().readFetchedSourcesStoreRef();if(!n)throw new Error(`Board at ${e$1.value} has no fetched sources store configured. Run: init --fetched-sources-store-ref <b64-ref>`);return n}async function le(){return o.blobStorageForRef(await ge())}async function ie(){return It(await le(),n=>o.resolveBlob(n))}async function ue(n){let t=(await le()).keyRef?.(n);if(!t)throw new Error("configured fetched-sources store does not support keyRef");let c=await Promise.resolve(t);return a$1(c)}async function p$2(){let n=Tt(o.kvStorageForRef(h()),async(u,g)=>{let P=u.payload,B=(P.enrichedCard??{}).id??P.cardId??"unknown";await E$1({type:"task-failed",taskName:B,error:g,timestamp:q()});}),t=At(o.kvStorageForRef(h())),c=await le(),i=await ie(),A$1=await $(),I=await K(),F=new Map,C=new Map,x=[],Q=[],G=[],X=new Map,de=new Set,ce={async readRuntime(u){return F.get(u)??await t.readRuntime(u)},async writeRuntime(u,g){F.set(u,g),Te[u]=g;}},Ie={async readSourceData(u,g){let P=`${u}/${g}`;return C.has(P)?C.get(P):await i.readSourceData(u,g)},ingestSourceDataStaged(u,g,P,D){return i.ingestSourceDataStaged(u,g,P,D)},async commitSourceData(u,g,P){let D=`${u}/.staged/${P}/${g}`,B=await c.read(D);if(B==null){let z=await Promise.resolve(c.keyRef?.(D));z&&(B=await o.resolveBlob(z));}if(B==null)return false;let U=`${u}/${g}`,ae=B.trim();try{C.set(U,JSON.parse(ae));}catch{C.set(U,ae);}return x.push({cardId:u,outputFile:g,deliveryToken:P}),true},async hasSource(u,g){let P=`${u}/${g}`;return C.has(P)||await i.hasSource(u,g)},async listSources(u){let g=await i.listSources(u),P=[...C.keys()].filter(D=>D.startsWith(`${u}/`)).map(D=>D.slice(`${u}/`.length));return [...new Set([...g,...P])]}},xe=await H(),De=q$1(xe.graph),Te={...xe.runtimeByCardId},{events:wt,newCursor:Oe}=await te().readEntriesAfterCursor(xe.lastDrainedJournalId),pe=wt,Ve=()=>De.config.tasks,fe=u(De,{handlers:{"card-handler":Ot(e$1,Oe,{cardStore:A$1,cardRuntimeStore:ce,fetchedSourcesStore:Ie,outputStore:I,executionRequestStore:n,activeTaskConfigs:()=>Ve()},(u,g)=>{pe.push({type:"task-completed",taskName:u,data:g,timestamp:q()});},(u,g)=>{Q.push({cardId:u,values:g});},u=>{G.push(u);})},onNodeRemoved:u=>{X.delete(u),F.delete(u),delete Te[u],de.add(u);}});for(Ve=()=>fe.getState().config.tasks;pe.length>0;){let u=pe;pe=[];for(let g of u)if(g.type==="task-restart"){let P=await A$1.readCard(g.taskName);P&&X.set(g.taskName,P);}fe.pushAll(u),await fe.waitForHandlers();}let $e=fe.getState();await fe.dispose({wait:true}),await ee({lastDrainedJournalId:Oe,graph:p($e),runtimeByCardId:Te},(await V().readSnapshot(M)).version);for(let{cardId:u,values:g}of Q)await I.writeComputedValues(u,g);for(let u of G)await I.writeDataObjects(u);for(let[u,g]of F)await t.writeRuntime(u,g);for(let u of x)await i.commitSourceData(u.cardId,u.outputFile,u.deliveryToken);let Le=y(A(d$1,$e));await I.writeStatusSnapshot(Le);let me=[];for(let{cardId:u,values:g}of Q)me.push({kind:"computed_values",cardId:u,values:g});for(let u of G)for(let[g,P]of Object.entries(u))me.push({kind:"data_object",key:g,payload:P});for(let[u,g]of X)me.push({kind:"card_refreshed",cardId:u,card:g});for(let u of de)me.push({kind:"card_removed",cardId:u});me.push({kind:"status",status:Le}),await N(me);let ne=await Ae();if(!ne)return;let Je=o.supportsDirectSourceOutput?.(ne)===true;await n.dispatchEntriesForJournalId(Oe,async u=>{if(u.taskKind!=="source-fetch"){s$1(`[async-process-accumulated-events] unknown taskKind "${u.taskKind}" \u2014 skipping`);return}let g=u.payload,P=g.enrichedCard?.id??"unknown",D=g.enrichedCard?.source_defs??[];if(ne.howToRun==="queue-storage"&&Je){try{let B=await O().readQueueStoreRef();if(!B)throw new Error(`Board at ${e$1.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let U=o.queueStorageForRef(B,"task-executor"),ae=typeof ne.extra?.boardId=="string"?ne.extra.boardId:void 0,z=[];for(let Y of D){if(!Y.outputFile)continue;let ye=o.genId(),Se=`${P}/.staged/${ye}/${Y.outputFile}`,Me=await Promise.resolve(c.keyRef?.(Se));if(!Me)continue;let Qe={ref:a$1(Me),deliveryToken:ye,outputFile:Y.outputFile,cardId:P},ht=kt({cbk:g.callbackToken,rg:e$1.value,br:a$1(e$1),cid:P,b:Y.bindTo,d:Y.outputFile,cs:void 0,rqt:g.rqt,dt:Qe.deliveryToken});z.push({...ae?{boardId:ae}:{},ref:ne,args:{source_def:Y,base_ref:a$1(e$1),callback:r.createCallback(ht),output:Qe}});}z.length>0&&await U.enqueueMany(z);}catch(B){await E$1({type:"task-failed",taskName:P,error:B instanceof Error?B.message:String(B),timestamp:q()});}return}for(let B of D){if(!B.outputFile)continue;let U;if(Je){let Y=o.genId(),ye=`${P}/.staged/${Y}/${B.outputFile}`,Se=await Promise.resolve(c.keyRef?.(ye));Se&&(U={ref:a$1(Se),deliveryToken:Y,outputFile:B.outputFile,cardId:P});}let ae=kt({cbk:g.callbackToken,rg:e$1.value,br:a$1(e$1),cid:P,b:B.bindTo,d:B.outputFile,cs:void 0,rqt:g.rqt,...U?{dt:U.deliveryToken}:{}}),z=await o.dispatchExecution(ne,{source_def:B,base_ref:a$1(e$1),callback:r.createCallback(ae),...U?{output:U}:{}});z.dispatched||await E$1({type:"task-failed",taskName:P,error:z.error??"dispatch failed",timestamp:q()});}});}async function y$1(){try{let n=async()=>{let c=await H(),{events:i}=await te().readEntriesAfterCursor(c.lastDrainedJournalId);i.length>0&&await j();},t=await mt(o.lock,p$2,n);return b({ran:t!==!1})}catch(n){return T(n)}}async function k(){return v||(v=y$1().finally(()=>{v=null;}),v)}async function j(){let n=await O().readQueueStoreRef();if(!n)throw new Error(`Board at ${e$1.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);await o.queueStorageForRef(n,"process-accumulated").enqueue({boardRef:a$1(e$1)}),await o.requestProcessAccumulated?.();}async function re(){let n=await O().readQueueStoreRef();if(!n)throw new Error(`Board at ${e$1.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let t=o.queueStorageForRef(n,"process-accumulated");for(;;){let c=await t.lease({max:64,visibilityMs:1e3});if(c.length<=0)return;for(let i of c)await t.ack(i.id,i.leaseToken);if(c.length<64)return}}function L(){j();}return {async init(n){try{let t=n.params?.cardStoreRef;if(!t)return R("init requires params.cardStoreRef");if(w=n.params?.boardRuntimeStoreRef,!w)return R("init requires params.boardRuntimeStoreRef");let c=n.params?.outputsStoreRef;if(!c)return R("init requires params.outputsStoreRef");let i=n.params?.queueStoreRef;if(!i)return R("init requires params.queueStoreRef");let A$1=n.params?.fetchedSourcesStoreRef;if(!A$1)return R("init requires params.fetchedSourcesStoreRef");m$1=n.params?.scratchStoreRef;let I=n.params?.chatStoreRef;if(!I)return R("init requires params.chatStoreRef");let F=n.params?.artifactsStoreRef;if(!F)return R("init requires params.artifactsStoreRef");await Z()||await ee({lastDrainedJournalId:"",graph:p(a$2(B)),runtimeByCardId:{}},null);let C=O();await C.writeBoardRuntimeStoreRef(w),await C.writeCardStoreRef(t),await C.writeOutputsStoreRef(c),await C.writeQueueStoreRef(i),await C.writeFetchedSourcesStoreRef(A$1),await C.writeChatStoreRef(I),await C.writeArtifactsStoreRef(F),await(await $()).writeCard(m,p$1());let x=o.kvStorage("card-upsert"),Q=p$1(),G=E(Q),X=o.hashFn(G),ce=(await x.read(m))?.blobRef??await(await $()).readCardKey(m)??m;return await E$1({type:"task-upsert",taskName:m,taskConfig:G,timestamp:q()}),await x.write(m,{blobRef:ce,taskConfigHash:X,updatedAt:q()}),await E$1({type:"task-restart",taskName:m,timestamp:q()}),L(),await(await K()).writeStatusSnapshot(y(A(d$1,q$1((await H()).graph)))),b()}catch(t){return T(t)}},async status(n){try{let t=await K(),c=await t.readStatusSnapshot();return c||(c=y(A(d$1,q$1((await H()).graph))),await t.writeStatusSnapshot(c)),b(c)}catch(t){return T(t)}},async getCardStoreRef(n){try{let t=await O().readCardStoreRef();return t?b({storeRef:t}):R(`Board at ${e$1.value} has no card store configured`)}catch(t){return T(t)}},async getBoardRuntimeStoreRef(n){try{return b({storeRef:w??null})}catch(t){return T(t)}},async getOutputsStoreRef(n){try{let t=await O().readOutputsStoreRef();return t?b({storeRef:t}):R(`Board at ${e$1.value} has no outputs store configured`)}catch(t){return T(t)}},async getScratchStoreRef(n){try{return b({storeRef:m$1??null})}catch(t){return T(t)}},async getChatStoreRef(n){try{return b({storeRef:await O().readChatStoreRef()})}catch(t){return T(t)}},async getArtifactsStoreRef(n){try{return b({storeRef:await O().readArtifactsStoreRef()})}catch(t){return T(t)}},async getFetchedSourcesStoreRef(n){try{return b({storeRef:await O().readFetchedSourcesStoreRef()})}catch(t){return T(t)}},async getConfig(n){try{let t=n.params?.key;if(!t)return R("getConfig requires params.key");let c=O(),i;switch(t){case "task-executor":i=l$1??null;break;case "chat-handler-flow":i=S??null;break;case "board-runtime-store-ref":i=await c.readBoardRuntimeStoreRef();break;case "card-store-ref":i=await c.readCardStoreRef();break;case "outputs-store-ref":i=await c.readOutputsStoreRef();break;case "scratch-store-ref":i=m$1??null;break;case "chat-store-ref":i=await c.readChatStoreRef();break;case "artifacts-store-ref":i=await c.readArtifactsStoreRef();break;case "fetched-sources-store-ref":i=await c.readFetchedSourcesStoreRef();break;default:return R(`getConfig: unknown key "${t}"`)}return b({value:i})}catch(t){return T(t)}},async getOutputsDataObject(n){try{let t=n.params?.key;if(!t)return R("getOutputsDataObject requires params.key");if(t===l)return b(null);let c=await W();return b(c[t]??null)}catch(t){return T(t)}},async getAllOutputsDataObjects(n){try{return b(await W())}catch(t){return T(t)}},async getOutputsComputedValues(n){try{let t=n.params?.key;return t?b(await(await K()).readComputedValues(t)):R("getOutputsComputedValues requires params.key")}catch(t){return T(t)}},async getAllOutputsComputedValues(n){try{return b(await(await K()).readAllComputedValues())}catch(t){return T(t)}},async getOutputsFetchedSources(n){try{let t=n.params?.key;if(!t)return R("getOutputsFetchedSources requires params.key");let c=await(await ie()).listSources(t),i={};for(let A of c)i[A]=await ue(`${t}/${A}`);return b(i)}catch(t){return T(t)}},async getAllOutputsFetchedSources(n){try{let t=await ie(),c=await(await le()).listKeys(),i=new Set;for(let I of c){let F=I.indexOf("/");F>0&&!I.includes("/.staged/")&&i.add(I.slice(0,F));}let A={};for(let I of i){let F=await t.listSources(I);if(F.length!==0){A[I]={};for(let C of F)A[I][C]=await ue(`${I}/${C}`);}}return b(A)}catch(t){return T(t)}},async buildSseOneShotPayload(n){try{let t=(await(await $()).readAllCards()).filter(C=>C.id!==m),c=await this.status({});if(c.status!=="success")return c;let i=await this.getAllOutputsDataObjects({});if(i.status!=="success")return i;let A=await this.getAllOutputsComputedValues({});if(A.status!=="success")return A;let I=A.data,F={};for(let C of t){let x=typeof C?.id=="string"?C.id:null;if(!x)continue;let Q=C.card_data&&typeof C.card_data=="object"&&!Array.isArray(C.card_data)?C.card_data:{};F[x]={schema_version:"v1",card_id:x,card_data:{...Q},computed_values:I[x]&&typeof I[x]=="object"?I[x]:{}};}return b({cardDefinitions:t,statusSnapshot:c.data,dataObjectsByToken:i.data,cardRuntimeById:F})}catch(t){return T(t)}},async addCardFiles(n){try{let t=n.params?.cardId;if(!t)return R("addCardFiles requires params.cardId");let i=await St(await $(),{emitNotification:f$1}).appendFiles({params:{id:t},body:n.body});return i.status!=="success"?i:b({cardId:t,files_added:i.data.files_added,notified:!0})}catch(t){return T(t)}},async removeCard(n){try{let t=n.params?.id;if(!t)return R("removeCard requires params.id");try{await o.kvStorage("card-upsert").delete(t);}catch{}return await E$1({type:"task-removal",taskName:t,timestamp:q()}),t!==m&&await E$1({type:"task-restart",taskName:m,timestamp:q()}),L(),b()}catch(t){return T(t)}},async retrigger(n){try{let t=n.params?.id;return t?(await E$1({type:"task-restart",taskName:t,timestamp:q()}),L(),b()):R("retrigger requires params.id")}catch(t){return T(t)}},async processAccumulatedEvents(n){return await re(),k()},async upsertCard(n){try{let t=n.params?.cardId,c=n.params?.all,i=!!n.params?.restart;if(!t&&!c)return R("upsertCard requires --card-id <id> or --all");let A=await $(),I=c?(await A.readAllCards()).map(x=>x.id):[t];for(let x of I)if(!await A.readCard(x))return R(`Card "${x}" not found in board at ${e$1.value}`);let F=o.kvStorage("card-upsert"),C=!1;for(let x of I){let Q=await A.readCard(x);if(!Q)continue;let G=E(Q),X=o.hashFn(G),de=await F.read(x),ce=de?.taskConfigHash!==X;if(!(!ce&&!i)){if(ce){let Ie=de?.blobRef??await A.readCardKey(x)??x;await E$1({type:"task-upsert",taskName:x,taskConfig:G,timestamp:q()}),await F.write(x,{blobRef:Ie,taskConfigHash:X,updatedAt:q()}),C=C||x!==m;}i&&await E$1({type:"task-restart",taskName:x,timestamp:q()});}}return C&&await E$1({type:"task-restart",taskName:m,timestamp:q()}),L(),b()}catch(t){return T(t)}},async taskFailed(n){try{let t=n.params?.token;if(!t)return R("taskFailed requires params.token");let c=n.params?.error??"unknown error",i=be(t);return i?(await E$1({type:"task-failed",taskName:i.taskName,error:c,timestamp:q()}),L(),b()):R("Invalid callback token")}catch(t){return T(t)}},async taskProgress(n){try{let t=n.params?.token;if(!t)return R("taskProgress requires params.token");let c=(n.body??{}).update??{},i=be(t);return i?(await E$1({type:"task-progress",taskName:i.taskName,update:c,timestamp:q()}),L(),b()):R("Invalid callback token")}catch(t){return T(t)}},async sourceDataFetched(n){try{let t=n.params?.token,c=n.params?.ref;if(!t)return R("sourceDataFetched requires params.token");if(!c)return R("sourceDataFetched requires params.ref");let i=Ct(t);if(!i)return R("Invalid source token");let A=await ie(),I=i.dt||o.genId();i.dt||await A.ingestSourceDataStaged(i.cid,i.d,b$1(c),I);let F=be(i.cbk);return F?(await E$1({type:"task-progress",taskName:F.taskName,update:{bindTo:i.b,outputFile:i.d,fetchedAt:q(),deliveryToken:I,sourceChecksum:i.cs,rqt:i.rqt},timestamp:q()}),L(),b()):R("Invalid callback token embedded in source token")}catch(t){return T(t)}},async sourceDataFetchFailure(n){try{let t=n.params?.token,c=n.params?.reason??"unknown";if(!t)return R("sourceDataFetchFailure requires params.token");let i=Ct(t);if(!i)return R("Invalid source token");let A=be(i.cbk);return A?(await E$1({type:"task-progress",taskName:A.taskName,update:{bindTo:i.b,outputFile:i.d,failure:!0,reason:c,sourceChecksum:i.cs,rqt:i.rqt},timestamp:q()}),L(),b()):R("Invalid callback token embedded in source token")}catch(t){return T(t)}}}}
2
- export{mt as a,gt as b,pt as c,yt as d,Nt as e,_t as f,St as g,$t as h,nr as i};//# sourceMappingURL=chunk-5VTIOM2U.js.map
3
- //# sourceMappingURL=chunk-5VTIOM2U.js.map
@@ -1,2 +0,0 @@
1
- 'use strict';var chunk2RIHC5TZ_cjs=require('./chunk-2RIHC5TZ.cjs');function A(d,C={}){function o(r){return {status:"success",data:r}}function e(r){return {status:"fail",error:r}}function s(r){return {status:"error",error:r instanceof Error?r.message:String(r)}}async function c(r){let t=C.emitNotification;if(!t||r.length===0)return;let n=chunk2RIHC5TZ_cjs.e(r);if(n.length===1){await t(n[0]);return}await t(chunk2RIHC5TZ_cjs.f({kind:"notification-batch",notifications:n}));}function l(r){let t=r.params?.id;if(t){let n=d.readCard(t);if(!n)throw new Error(`card "${t}" not found`);return [n]}return d.readAllCards()}function h(r){return chunk2RIHC5TZ_cjs.f({kind:"notification-batch",notifications:chunk2RIHC5TZ_cjs.e(r.map(t=>({kind:"card_refreshed",cardId:t.id,card:t})))})}function y(r){if(Array.isArray(r))return r;if(r&&typeof r=="object"){let t=r;return Array.isArray(t.files)?t.files:[r]}return null}return {get(r){try{return o({cards:l(r)})}catch(t){return s(t)}},buildNotificationBatch(r){try{return o(h(l(r)))}catch(t){return s(t)}},set(r){try{let t=r.body;if(t==null)return e("set requires a body (card object or array of cards)");let n=Array.isArray(t)?t:[t];for(let a of n){if(typeof a.id!="string")return e("each card must have a string `id` field");d.writeCard(a.id,a);}return c(n.map(a=>({kind:"card_refreshed",cardId:a.id,card:a}))),o({count:n.length})}catch(t){return s(t)}},del(r){try{let t=r.body?.ids??[],n=r.params?.id,a=n?[...t,n]:t;if(a.length===0)return e("del requires body.ids (string[]) or params.id");for(let i of a)d.removeCard(i);return c(a.map(i=>({kind:"card_removed",cardId:i}))),o({count:a.length})}catch(t){return s(t)}},patch(r){try{let t=r.params?.id,n=r.params?.path;if(!t)return e("patch requires params.id");if(!n)return e("patch requires params.path");let a=r.body,i=a&&Object.prototype.hasOwnProperty.call(a,"value")?a.value:r.body;d.patchCard(t,n,i);let u=d.readCard(t);return u?(c([{kind:"card_refreshed",cardId:t,card:u}]),o({count:1})):e(`card "${t}" not found`)}catch(t){return s(t)}},appendFiles(r){try{let t=r.params?.id;if(!t)return e("appendFiles requires params.id");let n=d.readCard(t);if(!n)return e(`card "${t}" not found`);let a=y(r.body);if(!a||a.length===0)return e("appendFiles requires a file metadata object, array, or body.files array");let i=n.card_data&&typeof n.card_data=="object"&&!Array.isArray(n.card_data)?n.card_data:{},u=Array.isArray(i.files)?i.files:[],b=[...u,...a],R=a.map((v,g)=>({idx:u.length+g,entry:v})),p=this.patch({params:{id:t,path:"card_data.files"},body:{value:b}});return p.status!=="success"?p:o({files_added:R})}catch(t){return s(t)}}}}exports.a=A;//# sourceMappingURL=chunk-5XLFPPTY.cjs.map
2
- //# sourceMappingURL=chunk-5XLFPPTY.cjs.map
@@ -1,2 +0,0 @@
1
- import {e,f}from'./chunk-UGB7PC4P.js';function A(d,C={}){function o(r){return {status:"success",data:r}}function e$1(r){return {status:"fail",error:r}}function s(r){return {status:"error",error:r instanceof Error?r.message:String(r)}}async function c(r){let t=C.emitNotification;if(!t||r.length===0)return;let n=e(r);if(n.length===1){await t(n[0]);return}await t(f({kind:"notification-batch",notifications:n}));}function l(r){let t=r.params?.id;if(t){let n=d.readCard(t);if(!n)throw new Error(`card "${t}" not found`);return [n]}return d.readAllCards()}function h(r){return f({kind:"notification-batch",notifications:e(r.map(t=>({kind:"card_refreshed",cardId:t.id,card:t})))})}function y(r){if(Array.isArray(r))return r;if(r&&typeof r=="object"){let t=r;return Array.isArray(t.files)?t.files:[r]}return null}return {get(r){try{return o({cards:l(r)})}catch(t){return s(t)}},buildNotificationBatch(r){try{return o(h(l(r)))}catch(t){return s(t)}},set(r){try{let t=r.body;if(t==null)return e$1("set requires a body (card object or array of cards)");let n=Array.isArray(t)?t:[t];for(let a of n){if(typeof a.id!="string")return e$1("each card must have a string `id` field");d.writeCard(a.id,a);}return c(n.map(a=>({kind:"card_refreshed",cardId:a.id,card:a}))),o({count:n.length})}catch(t){return s(t)}},del(r){try{let t=r.body?.ids??[],n=r.params?.id,a=n?[...t,n]:t;if(a.length===0)return e$1("del requires body.ids (string[]) or params.id");for(let i of a)d.removeCard(i);return c(a.map(i=>({kind:"card_removed",cardId:i}))),o({count:a.length})}catch(t){return s(t)}},patch(r){try{let t=r.params?.id,n=r.params?.path;if(!t)return e$1("patch requires params.id");if(!n)return e$1("patch requires params.path");let a=r.body,i=a&&Object.prototype.hasOwnProperty.call(a,"value")?a.value:r.body;d.patchCard(t,n,i);let u=d.readCard(t);return u?(c([{kind:"card_refreshed",cardId:t,card:u}]),o({count:1})):e$1(`card "${t}" not found`)}catch(t){return s(t)}},appendFiles(r){try{let t=r.params?.id;if(!t)return e$1("appendFiles requires params.id");let n=d.readCard(t);if(!n)return e$1(`card "${t}" not found`);let a=y(r.body);if(!a||a.length===0)return e$1("appendFiles requires a file metadata object, array, or body.files array");let i=n.card_data&&typeof n.card_data=="object"&&!Array.isArray(n.card_data)?n.card_data:{},u=Array.isArray(i.files)?i.files:[],b=[...u,...a],R=a.map((v,g)=>({idx:u.length+g,entry:v})),p=this.patch({params:{id:t,path:"card_data.files"},body:{value:b}});return p.status!=="success"?p:o({files_added:R})}catch(t){return s(t)}}}}export{A as a};//# sourceMappingURL=chunk-7QNEV5S3.js.map
2
- //# sourceMappingURL=chunk-7QNEV5S3.js.map
@@ -1,3 +0,0 @@
1
- 'use strict';var chunk7JVHYHT2_cjs=require('./chunk-7JVHYHT2.cjs'),chunkVQCIOKJV_cjs=require('./chunk-VQCIOKJV.cjs'),chunkG4XXRHL2_cjs=require('./chunk-G4XXRHL2.cjs'),chunkQBEQL4TL_cjs=require('./chunk-QBEQL4TL.cjs'),chunk5XLFPPTY_cjs=require('./chunk-5XLFPPTY.cjs'),chunk2RIHC5TZ_cjs=require('./chunk-2RIHC5TZ.cjs');function St(e){return typeof e=="string"&&e.trim().length>0}function kt(e,t){if(!e||typeof e!="object")throw new Error(`${t}: adapter.selfRef is required`);if(!St(e.howToRun))throw new Error(`${t}: adapter.selfRef.howToRun is required`);if(!St(e.whatToRun))throw new Error(`${t}: adapter.selfRef.whatToRun is required`)}function Rt(e,t){if(!e||typeof e!="object")throw new Error(`${t}: adapter.callbackTransport is required`);if(typeof e.createCallback!="function")throw new Error(`${t}: adapter.callbackTransport.createCallback is required`)}function or(e,t="callbackTransport"){return {createCallback(r){let s=e();return kt(s,t),{token:r,via:s}}}}function Ue(e){return or(()=>e,"createStaticExecutionRefCallbackTransport")}function br(e){return Ue({meta:"board-live-cards",howToRun:"http:post",whatToRun:chunkVQCIOKJV_cjs.a({kind:"http-url",value:String(e||"").trim()})})}function wr(e){return Ue({meta:"board-live-cards",howToRun:"in-process-loop",whatToRun:chunkVQCIOKJV_cjs.a({kind:"in-process-loop",value:String(e||"").trim()})})}function vr(e){let t=typeof e=="string"?{notifyChannel:e}:e??{},r={};return t.notifyChannel&&(r.notifyChannel=t.notifyChannel),t.boardRuntimeStoreRef&&(r.boardRuntimeStoreRef=t.boardRuntimeStoreRef),t.queueStoreRef&&(r.queueStoreRef=t.queueStoreRef),Ue({meta:"board-live-cards",howToRun:"built-in",whatToRun:chunkVQCIOKJV_cjs.a({kind:"built-in",value:"board-live-cards"}),...Object.keys(r).length>0?{extra:r}:{}})}function Oe(e){return typeof e=="object"&&e!==null&&"then"in e&&typeof e.then=="function"}function Ye(e,t){return Oe(e)?e.then(t):t(e)}function yt(e,t){let r={...e};for(let s of t.deleteKeys)delete r[s];return {...r,...t.shallowMerge}}function Tr(e,t){return {readValues(s){let o=e(s);return Ye(o.listKeys(),a=>{let c=[...a].sort();if(c.length===0)return {version:null,values:{}};let d={},S=null;for(let y of c){let V=o.read(y);Oe(V)?S=(S??Promise.resolve()).then(async()=>{d[y]=await V;}):d[y]=V;}return S?S.then(()=>({version:t(d),values:d})):{version:t(d),values:d}})},writeValues(s,o,a){let c=e(s),d=null;for(let S of a){let y=c.delete(S);Oe(y)&&(d=(d??Promise.resolve()).then(()=>y).then(()=>{}));}for(let[S,y]of Object.entries(o)){let V=c.write(S,y);Oe(V)&&(d=(d??Promise.resolve()).then(()=>V).then(()=>{}));}return d?d.then(()=>t(o)):t(o)}}}function Ct(e,t){return {readSnapshot(r){return e.readValues(r)},commitSnapshot(r,s){if(s.schemaVersion!==t)throw new Error(`Unsupported snapshot schema version: ${s.schemaVersion}`);return Ye(e.readValues(r),o=>{if(o.version!==s.expectedVersion)return {ok:false,reason:"version-mismatch",currentVersion:o.version};let a=yt(o.values,s);return Ye(e.writeValues(r,a,s.deleteKeys),c=>({ok:true,newVersion:c}))})}}}function ht(e,t){if(!t)return e;let r=e.findIndex(s=>s.id===t);return r===-1?e:e.slice(r+1)}function bt(e){return {readEntriesAfterCursor(t){let r=ht(e.readAllEntries(),t);return r.length===0?{events:[],newCursor:t}:{events:r.map(s=>s.event),newCursor:r[r.length-1].id}},pendingCount(t){return ht(e.readAllEntries(),t).length},appendEvent(t){e.appendEntry({id:e.generateId(),event:t});}}}function Er(e){return {appendEvent(t){return e.append(t).then(()=>{})},async readEntriesAfterCursor(t){let r=await e.readAfter(t||null);return {events:r.entries.map(s=>s.payload),newCursor:r.newCursor??t}}}}function Be(e){return typeof e=="object"&&e!==null&&"then"in e&&typeof e.then=="function"}function ce(e,t){return Be(e)?e.then(t):t(e)}function ze(e,t){let r=null;for(let s of e){if(r){r=r.then(()=>t(s)).then(()=>{});continue}let o=t(s);Be(o)&&(r=Promise.resolve(o).then(()=>{}));}return r??void 0}function sr(e){if(e==null)return null;let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return t}}function ar(e,t){let r=e.match(t);return r?r[1]:null}function wt(e,t,r){let s={},o=ze(e,a=>{let c=r(a);if(c)return ce(t(a),d=>{s[c]=d;})});return Be(o)?o.then(()=>s):s}function vt(e,t){return {readSourceData(r,s){return ce(e.read(`${r}/${s}`),sr)},ingestSourceDataStaged(r,s,o,a){return ce(t(o),c=>e.write(`${r}/.staged/${a}/${s}`,c))},commitSourceData(r,s,o){let a=`${r}/.staged/${o}/${s}`,c=`${r}/${s}`;return e.renameKey(a,c)},hasSource(r,s){return e.exists(`${r}/${s}`)},listSources(r){return ce(e.listKeys(`${r}/`),s=>s.filter(o=>!o.includes("/.staged/")).map(o=>o.slice(`${r}/`.length)))}}}function ir(e,t){let r=(s,o)=>{try{let a=o(s);return Be(a)?a.catch(c=>t(s,c instanceof Error?c.message:String(c))):void 0}catch(a){try{return t(s,a instanceof Error?a.message:String(a))}catch{return}}};return {appendEntries(s,o){if(!(!s||o.length===0))return ce(e.read(s),a=>e.write(s,[...a??[],...o]))},dispatchEntriesForJournalId(s,o){if(s)return ce(e.read(s),a=>{let c=a;if(!(!c||c.length===0))return ce(ze(c,d=>r(d,o)),()=>e.delete(s))})}}}function ur(e,t,r){return {readRuntime(s){return ce(e.read(t(s)),o=>o??r())},writeRuntime(s,o){return e.write(t(s),o)}}}function xt(e){return {writeComputedValues(t,r){return e.write(`cards/${t}/computed_values`,r)},readComputedValues(t){return e.read(`cards/${t}/computed_values`)},readAllComputedValues(){return ce(e.listKeys("cards/"),t=>wt(t,r=>e.read(r),r=>ar(r,/^cards\/([^/]+)\/computed_values$/)))},writeDataObjects(t){return ze(Object.entries(t),([r,s])=>{if(r)return s===void 0?e.delete(`data-objects/${r}`):e.write(`data-objects/${r}`,s)})},readDataObject(t){return e.read(`data-objects/${t}`)},readAllDataObjects(){return ce(e.listKeys("data-objects/"),t=>wt(t,r=>e.read(r),r=>r.slice(13)))},writeStatusSnapshot(t){return e.write("status",t)},readStatusSnapshot(){return e.read("status")}}}var fe="sys_keys_board_state",ae="__sys_keys_board_state_init";function It(e){if(!e||typeof e!="object"||Array.isArray(e))return false;let t=e.__private;return !!t&&typeof t=="object"&&!Array.isArray(t)&&t.visible_controlplane_only===true}function dr(e){let t=e.filter(o=>!It(o)),r=[...new Set(t.map(o=>o.id).filter(o=>typeof o=="string"&&o.length>0))].sort(),s=[...new Set(t.flatMap(o=>Array.isArray(o.provides)?o.provides:[]).map(o=>o&&typeof o=="object"&&!Array.isArray(o)?o.bindTo:void 0).filter(o=>typeof o=="string"&&o.length>0&&o!==fe))].sort();return {card_ids:r,data_object_keys:s}}function cr(e,t){let r=e.filter(a=>!It(a)),s=[...new Set(r.map(a=>a.id).filter(a=>typeof a=="string"&&a.length>0))].sort(),o=[...new Set(Object.entries(t).filter(([a])=>a!==ae).flatMap(([,a])=>Array.isArray(a.provides)?a.provides:[]).filter(a=>typeof a=="string"&&a.length>0&&a!==fe))].sort();return {card_ids:s,data_object_keys:o}}function Pe(){return {id:ae,meta:{title:"System Keys Board State",synthetic:true},provides:[{bindTo:fe,ref:`card_data.${fe}`}],card_data:{[fe]:{card_ids:[],data_object_keys:[]}},__private:{visible_controlplane_only:true}}}function Qe(e,t){function r(){return e.readIndex()??{}}function s(o,a,c){let d=String(a||"").split(".").filter(Boolean);if(d.length===0)return c&&typeof c=="object"&&!Array.isArray(c)?c:{value:c};let S={...o},y=S;for(let V=0;V<d.length-1;V++){let z=d[V],Q=y[z],te=Q&&typeof Q=="object"&&!Array.isArray(Q)?{...Q}:{};y[z]=te,y=te;}return y[d[d.length-1]]=c,S}return {readCard(o){let a=r()[o];return !a||!e.cardExists(a.key)?null:e.readCard(a.key)},readCardKey(o){return r()[o]?.key??null},readAllCards(){let o=[];for(let[a,c]of Object.entries(r())){if(!e.cardExists(c.key))continue;let d=e.readCard(c.key);d?o.push(d):t?.(`[card-store] could not read card "${a}" at key "${c.key}"`);}return o},readChecksumIndex(){let o={};for(let[a,c]of Object.entries(r()))o[a]=c.checksum;return o},changedSince(o){let a=r(),c=[];for(let[d,S]of Object.entries(a))o[d]!==S.checksum&&c.push(d);for(let d of Object.keys(o))a[d]||c.push(d);return c},validateUpsert(o,a){let c=r(),d=c[o],S=Object.entries(c).find(([,y])=>y.key===a);return d&&d.key!==a?{ok:false,error:`Card id "${o}" is already mapped to key "${d.key}", cannot remap to "${a}"`}:S&&S[0]!==o?{ok:false,error:`Key "${a}" is already mapped to card id "${S[0]}", cannot remap to "${o}"`}:{ok:true}},writeCard(o,a,c){let d=r(),S=c??d[o]?.key??e.defaultCardKey(o),y=e.writeCard(S,a);d[o]={key:S,checksum:y,updatedAt:new Date().toISOString()},e.writeIndex(d);},patchCard(o,a,c){let d=r(),S=d[o];if(!S||!e.cardExists(S.key))throw new Error(`card "${o}" not found`);let y=e.readCard(S.key);if(!y||typeof y!="object"||Array.isArray(y))throw new Error(`card "${o}" is not patchable`);let V=s(y,a,c),z=e.writeCard(S.key,V);d[o]={key:S.key,checksum:z,updatedAt:new Date().toISOString()},e.writeIndex(d);},removeCard(o){let a=r(),c=a[o];c&&(e.removeCard(c.key),delete a[o],e.writeIndex(a));},readIndex(){return r()}}}function qe(e,t){return vt(e,t)}function _t(e){return bt(e)}var Ve="v1",ye="board/graph",Ft="board/lastJournalProcessedId";function Vr(e){return `cards/${e}/runtime`}function Ot(e){return Ct(e,Ve)}function je(e){function t(r){let s=e.read(r);return s==null?null:typeof s=="string"?s:JSON.stringify(s)}return {readTaskExecutorRef(){let r=t("task-executor");if(r?.trim())return chunk7JVHYHT2_cjs.c(r.trim())},writeTaskExecutorRef(r){e.write("task-executor",chunk7JVHYHT2_cjs.b(r));},readChatHandlerFlow(){return e.read("chat-handler-flow")},writeChatHandlerFlow(r){e.write("chat-handler-flow",r);},readBoardRuntimeStoreRef(){return t("board-runtime-store-ref")},writeBoardRuntimeStoreRef(r){e.write("board-runtime-store-ref",r);},readCardStoreRef(){return t("card-store-ref")},writeCardStoreRef(r){e.write("card-store-ref",r);},readOutputsStoreRef(){return t("outputs-store-ref")},writeOutputsStoreRef(r){e.write("outputs-store-ref",r);},readQueueStoreRef(){return t("queue-store-ref")},writeQueueStoreRef(r){e.write("queue-store-ref",r);},readScratchStoreRef(){return t("scratch-store-ref")},writeScratchStoreRef(r){e.write("scratch-store-ref",r);},readChatStoreRef(){return t("chat-store-ref")},writeChatStoreRef(r){e.write("chat-store-ref",r);},readArtifactsStoreRef(){return t("artifacts-store-ref")},writeArtifactsStoreRef(r){e.write("artifacts-store-ref",r);},readFetchedSourcesStoreRef(){return t("fetched-sources-store-ref")},writeFetchedSourcesStoreRef(r){e.write("fetched-sources-store-ref",r);}}}function Bt(e){return xt(e)}function Tt(e){return e?{lastRequestedToken:e.lastRequestedToken,lastCompletedToken:e.lastCompletedToken,lastCompletionStatus:e.lastCompletionStatus??(e.lastCompletedToken?"success":"not-started"),queueRequestedToken:e.queueRequestedToken}:{lastCompletionStatus:"not-started"}}function lr(e){return e?.lastRequestedToken?e.lastCompletedToken!==e.lastRequestedToken:false}function Et(e,t){return e?.lastRequestedToken?lr(e)?"in-flight":!e.lastCompletedToken||e.lastCompletedToken<t?"dispatch":"idle":"dispatch"}function fr(e,t){return {...e,lastCompletedToken:t,lastCompletionStatus:"success"}}function At(e,t){return {...e,lastCompletedToken:t,lastCompletionStatus:"failure"}}function Ke(e){let t=e.cards.filter(d=>d.name!==ae);if(t.length===e.cards.length)return e;let r=new Set;for(let d of t)for(let S of d.requires)r.add(S);let s=t.map(d=>({name:d.name,fanOut:d.unblocks.length})).sort((d,S)=>S.fanOut-d.fanOut||d.name.localeCompare(S.name)),o=s.length>0?s[0]:{name:null,fanOut:0},a=d=>t.filter(S=>S.status===d).length,c=t.filter(d=>d.requires.length===0&&d.unblocks.length===0).length;return {...e,summary:{...e.summary,card_count:t.length,completed:a("completed"),eligible:a("eligible"),pending:a("pending"),blocked:a("blocked"),unresolved:a("unresolved"),failed:a("failed"),in_progress:a("in-progress"),orphan_cards:c,topology:{edge_count:r.size,max_fan_out_card:o.name,max_fan_out:o.fanOut}},cards:t}}function Pt(e){let{[fe]:t,...r}=e;return r}function De(e,t){let r=t.state.tasks,s=t.config.tasks,o=Object.keys(r),a=chunkG4XXRHL2_cjs.r(t),c={completed:0,failed:0,in_progress:0,pending:0,blocked:0,unresolved:0},d=new Map;for(let A of a.pending)d.set(A.taskName,A.waitingOn);for(let A of a.unresolved)d.set(A.taskName,A.missingTokens);for(let A of a.blocked)d.set(A.taskName,A.failedTokens);let S=new Map;for(let[A,k]of Object.entries(s))for(let H of k.requires??[]){let G=S.get(H)??[];G.push(A),S.set(H,G);}let y=o.sort().map(A=>{let k=r[A],H=s[A]??{requires:[],provides:[]};k.status==="completed"?c.completed+=1:k.status==="failed"?c.failed+=1:k.status==="in-progress"&&(c.in_progress+=1);let G=H.requires??[],g=H.provides??[],u=Object.keys(k.data??{}).sort(),p=G.filter(P=>t.state.availableOutputs.includes(P)),v=G.filter(P=>!t.state.availableOutputs.includes(P)),I=d.get(A)??v,T=new Set;for(let P of g)for(let L of S.get(P)??[])L!==A&&T.add(L);let x=k.failedAt,D=k.error?{message:k.error,code:"TASK_FAILED",at:x,source:"task-runtime"}:void 0;return {name:A,status:k.status,error:D,requires:G,requires_satisfied:p,requires_missing:v,provides_declared:g,provides_runtime:u,blocked_by:I,unblocks:Array.from(T).sort(),runtime:{attempt_count:k.executionCount??0,restart_count:k.retryCount??0,in_progress_since:k.status==="in-progress"?k.startedAt??null:null,last_transition_at:k.lastUpdated??null,last_completed_at:k.completedAt??null,last_restarted_at:k.startedAt??null,status_age_ms:k.lastUpdated?0:null}}});c.pending=a.pending.length,c.blocked=a.blocked.length,c.unresolved=a.unresolved.length;let V=y.map(A=>({name:A.name,fanOut:A.unblocks.length})).sort((A,k)=>k.fanOut-A.fanOut||A.name.localeCompare(k.name)),z=V.length>0?V[0]:{name:null,fanOut:0},Q=new Set;for(let A of Object.values(s))for(let k of A.requires??[])Q.add(k);let te=0;for(let[A,k]of Object.entries(s)){let H=(k.requires??[]).length===0,g=(k.provides??[]).some(u=>(S.get(u)??[]).some(p=>p!==A));H&&!g&&(te+=1);}return {schema_version:"v1",meta:{board:{path:e}},summary:{card_count:o.length,completed:c.completed,eligible:a.eligible.length,pending:c.pending,blocked:c.blocked,unresolved:c.unresolved,failed:c.failed,in_progress:c.in_progress,orphan_cards:te,topology:{edge_count:Array.from(Q).length,max_fan_out_card:z.name,max_fan_out:z.fanOut}},cards:y}}function mr(){return new Date().toISOString()}function qt(e,t,r,s,o,a,c){return async d=>{let S=[],y=r.cardStore.readCard(d.nodeId);if(!y)return "task-initiate-failure";let V=y.id;if(V===ae){let C=r.activeTaskConfigs?.(),b={[fe]:C?cr(Object.keys(C).filter(_=>_!==ae).map(_=>r.cardStore.readCard(_)).filter(_=>!!_),C):dr(r.cardStore.readAllCards())};return (c??r.outputStore.writeDataObjects.bind(r.outputStore))(b),s(d.nodeId,b),"task-initiated"}let z=y.card_data??{},Q=y.source_defs??[],te=Q,A=r.cardRuntimeStore.readRuntime(V),k=false,H=()=>{k&&(r.cardRuntimeStore.writeRuntime(V,A),k=false);},G=C=>Tt(A._sources[C]),g=(C,b)=>{A._sources[C]=Tt(b),k=true;},u=d.taskState?.executionCount??0;if(A._lastExecutionCount!==u&&(A._sources={},A._lastExecutionCount=u,k=true),d.update){let C=d.update,b=C.outputFile;if(b){let _=G(b);if(C.failure){let $=C.rqt??_.lastRequestedToken??_.queueRequestedToken;$&&g(b,At(_,$));}else {let $=C.rqt;if(!_.lastCompletedToken||$>_.lastCompletedToken){let re=typeof C.deliveryToken=="string"?C.deliveryToken:void 0,K=false;re&&(K=r.fetchedSourcesStore.commitSourceData(V,b,re)),K?g(b,fr(_,$)):g(b,At(_,$));}}H();}}let v={};for(let C of Q)if(C.outputFile){let b=r.fetchedSourcesStore.readSourceData(V,C.outputFile);b!==null&&(v[C.bindTo]=b);}let I={};for(let[C,b]of Object.entries(d.state??{}))if(b!==null&&typeof b=="object"&&!Array.isArray(b)){let _=b[C];I[C]=_!==void 0?_:b;}else I[C]=b;let T={id:V,card_data:{...z},requires:I,source_defs:Q,compute:y.compute};T._sourcesData=v,y.compute&&chunkQBEQL4TL_cjs.a.runSync(T,{sourcesData:v}),(a??r.outputStore.writeComputedValues.bind(r.outputStore))(V,T.computed_values??{});let x={...y},D=chunkQBEQL4TL_cjs.a.enrichSourcesSync(Array.isArray(y.source_defs)?y.source_defs:void 0,{card_data:y.card_data,requires:I}),P=e.value;x.source_defs=Array.isArray(D)?D.map(C=>({...C,boardDir:typeof C.boardDir=="string"&&C.boardDir?C.boardDir:P})):D;let L=mr(),M=d.update?void 0:L,oe=te.filter(C=>{let b=C.outputFile;if(typeof b!="string"||!b)return true;let _=G(b);M&&(_={..._,queueRequestedToken:M},g(b,_));let $=_.queueRequestedToken??_.lastRequestedToken??L,re=Et(_,$);return re==="in-flight"?false:re==="dispatch"});if(H(),oe.length>0){let C=false,b=L;for(let _ of oe){let $=_.outputFile;if(typeof $!="string"||!$)continue;let re=G($),K=re.queueRequestedToken??L;g($,{...re,lastRequestedToken:K}),b=K,C=true;}return C&&H(),C&&(S.push({taskKind:"source-fetch",payload:{boardRef:chunkVQCIOKJV_cjs.a(e),enrichedCard:x,callbackToken:d.callbackToken,rqt:b}}),r.executionRequestStore.appendEntries(t,S)),"task-initiated"}if(te.some(C=>{let b=C.outputFile;if(typeof b!="string"||!b)return false;let _=G(b),$=_.queueRequestedToken??_.lastRequestedToken??L;return Et(_,$)==="in-flight"}))return "task-initiated";let ge=y.provides??[],ie={};for(let{bindTo:C,ref:b}of ge)ie[C]=chunkQBEQL4TL_cjs.a.resolve(T,b);return (c??r.outputStore.writeDataObjects.bind(r.outputStore))(ie),s(d.nodeId,ie),S.length>0&&r.executionRequestStore.appendEntries(t,S),"task-initiated"}}var Xe={settings:{completion:"manual",refreshStrategy:"data-changed"},tasks:{}};function Vt(e){return {[ye]:e.graph,[Ft]:e.lastDrainedJournalId,board:{runtimeByCardId:e.runtimeByCardId}}}function jt(e){let t=e[ye],r=e[Ft],o=e.board?.runtimeByCardId;if(!t||typeof t!="object")throw new Error(`State snapshot is missing required key: ${ye}`);return {graph:t,lastDrainedJournalId:typeof r=="string"?r:"",runtimeByCardId:o&&typeof o=="object"?o:{}}}function Kt(e){let t=e.requires;return {provides:e.provides?.map(s=>s.bindTo)??[],taskHandlers:["card-handler"],description:e.meta?.title??e.id,...t&&t.length>0?{requires:t}:{}}}function E(e){return e!==void 0?{status:"success",data:e}:{status:"success"}}function h(e){return {status:"fail",error:e}}function F(e){return {status:"error",error:e instanceof Error?e.message:String(e)}}function pr(e){let t=new TextEncoder().encode(e),r=Array.from(t,s=>String.fromCharCode(s)).join("");return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Lt(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t+"=".repeat((4-t.length%4)%4),s=atob(r),o=Uint8Array.from(s,a=>a.charCodeAt(0));return new TextDecoder().decode(o)}function Ne(e){try{let t=JSON.parse(Lt(e));return typeof t?.t=="string"?{taskName:t.t}:null}catch{return null}}function Dt(e){return pr(JSON.stringify(e))}function Nt(e){try{let t=JSON.parse(Lt(e));return typeof t?.cbk=="string"&&typeof t?.cid=="string"&&typeof t?.b=="string"&&typeof t?.d=="string"?t:null}catch{return null}}function W(){return new Date().toISOString()}function gr(e){let t=new Map;return {appendEntries(r,s){if(!r||s.length===0)return;let o=t.get(r)??[];t.set(r,[...o,...s]);},dispatchEntriesForJournalId(r,s){if(!r)return;let o=t.get(r);if(!(!o||o.length===0)){for(let a of o)try{s(a);}catch(c){try{e(a,c instanceof Error?c.message:String(c));}catch{}}t.delete(r);}}}}function Gr(e,t,r={}){Rt(t.callbackTransport,"createBoardLiveCardsPublic");let s=t.callbackTransport,o=t.onWarn??(()=>{}),a=chunkVQCIOKJV_cjs.a(e),c=r.boardRuntimeStoreRef,d=r.scratchStoreRef,S=r.taskExecutorRef,y=r.chatHandlerFlow,V=r.emitNotification??(i=>{if(!t.publishBoardChangeNotifications)return;let n=i.kind==="notification-batch"?i.notifications:[i];return t.publishBoardChangeNotifications(n)});function z(){if(!c)throw new Error(`Board at ${e.value} has no board runtime store configured. Pass boardRuntimeStoreRef at construction or init.`);return c}function Q(i){if(i.length!==0)try{let n=chunk2RIHC5TZ_cjs.e(i),l=chunk2RIHC5TZ_cjs.f({kind:"notification-batch",notifications:n}),m=V(l);m&&typeof m.catch=="function"&&m.catch(w=>o(`[board-live-cards-public] emitNotification failed: ${w instanceof Error?w.message:String(w)}`));}catch(n){o(`[board-live-cards-public] emitNotification failed: ${n instanceof Error?n.message:String(n)}`);}}function te(){let i=k().readCardStoreRef();if(!i)throw new Error(`Board at ${e.value} has no card store configured. Run: init --base-ref <ref> --store-ref <b64-ref>`);let n=t.kvStorageForRef(i);return {readIndex(){return n.read("_index")},writeIndex(l){n.write("_index",l);},readCard(l){return n.read(l)},writeCard(l,m){return n.write(l,m),t.hashFn(m)},removeCard(l){n.delete(l);},cardExists(l){return n.read(l)!==null},defaultCardKey(l){return l}}}let A={readValues(i){let n=t.kvStorageForRef(z()),l=n.listKeys().sort();if(l.length===0)return {version:null,values:{}};let m={};for(let w of l)m[w]=n.read(w);return {version:t.hashFn(m),values:m}},writeValues(i,n,l){let m=t.kvStorageForRef(z());for(let w of l)m.delete(w);for(let[w,j]of Object.entries(n))m.write(w,j);return t.hashFn(n)}},k=()=>je(t.kvStorageForRef(z())),H=()=>Ot(A),G=()=>_t(t.journalAdapterForRef(z())),g=()=>Qe(te(),o),u=()=>{let i=k().readOutputsStoreRef();if(!i)throw new Error(`Board at ${e.value} has no outputs store configured. Run: init --outputs-store-ref <b64-ref>`);return Bt(t.kvStorageForRef(i))};function p(){return S??k().readTaskExecutorRef()}function v(){return !!H().readSnapshot(e.value).values[ye]}function I(){let i=H().readSnapshot(e.value);if(!i.values[ye])throw new Error(`Board not initialized at ${e.value}`);return jt(i.values)}function T(i,n){let l=H().commitSnapshot(e.value,{schemaVersion:Ve,expectedVersion:n,commitId:t.genId(),committedAt:W(),deleteKeys:[],shallowMerge:Vt(i)});if(!l.ok)throw new Error(`Snapshot commit failed (version mismatch): expected=${n??"null"} current=${l.currentVersion??"null"}`)}function x(i){G().appendEvent(i);}async function D(){let n=gr((f,R)=>{let B=f.payload,N=(B?.enrichedCard??{}).id??B?.cardId??"unknown";x({type:"task-failed",taskName:N,error:R,timestamp:W()});}),l=I(),m=chunkG4XXRHL2_cjs.q(l.graph),{events:w,newCursor:j}=G().readEntriesAfterCursor(l.lastDrainedJournalId),O=K(),q=qe(O,f=>t.resolveBlob(f)),J={...l.runtimeByCardId},X=new Map,ke={readRuntime(f){return X.get(f)??J[f]??{_sources:{}}},writeRuntime(f,R){X.set(f,R),J[f]=R;}},Re=[],ne=new Map,Ce={readSourceData(f,R){let B=`${f}/${R}`;return ne.has(B)?ne.get(B):q.readSourceData(f,R)},ingestSourceDataStaged(f,R,B,de){q.ingestSourceDataStaged(f,R,B,de);},commitSourceData(f,R,B){let de=`${f}/.staged/${B}/${R}`,N=O.read(de);if(N==null){let Y=O.keyRef?.(de);Y&&(N=t.resolveBlob(Y));}if(N==null)return false;let se=`${f}/${R}`,me=N.trim();try{ne.set(se,JSON.parse(me));}catch{ne.set(se,me);}return Re.push({cardId:f,outputFile:R,deliveryToken:B}),true},hasSource(f,R){let B=`${f}/${R}`;return ne.has(B)?true:q.hasSource(f,R)},listSources(f){let R=q.listSources(f),B=new Set;for(let N of ne.keys())N.startsWith(`${f}/`)&&B.add(N.slice(`${f}/`.length));let de=new Set([...R,...B]);return Array.from(de)}},xe=()=>m.config.tasks,he={cardStore:g(),cardRuntimeStore:ke,fetchedSourcesStore:Ce,outputStore:u(),executionRequestStore:n,activeTaskConfigs:()=>xe()},Te=[],Le=[],$e=[],Je=new Map,rt=new Set,tr=(f,R)=>{Te.push({type:"task-completed",taskName:f,data:R,timestamp:W()});},Me=(f,R)=>{x({type:"task-failed",taskName:f,error:R,timestamp:W()});},Ee=chunkG4XXRHL2_cjs.u(m,{handlers:{"card-handler":qt(e,j,he,tr,Me,(f,R)=>{Le.push({cardId:f,values:R});},f=>{$e.push(f);})},onNodeRemoved:f=>{Je.delete(f),X.delete(f),delete J[f],rt.add(f);}});for(xe=()=>Ee.getState().config.tasks,Te=w;Te.length>0;){let f=Te;Te=[];for(let R of f)if(R.type==="task-restart"){let B=he.cardStore.readCard(R.taskName);B&&Je.set(R.taskName,B);}Ee.pushAll(f),await Ee.waitForHandlers();}let nt=Ee.getState();await Ee.dispose({wait:true});let rr=H().readSnapshot(e.value).version;T({lastDrainedJournalId:j,graph:chunkG4XXRHL2_cjs.p(nt),runtimeByCardId:J},rr);for(let{cardId:f,values:R}of Le)he.outputStore.writeComputedValues(f,R);for(let f of $e)he.outputStore.writeDataObjects(f);for(let{cardId:f,outputFile:R,deliveryToken:B}of Re)q.commitSourceData(f,R,B);let Ae;try{Ae=Ke(De(a,nt)),he.outputStore.writeStatusSnapshot(Ae);}catch(f){o(`[board-live-cards-public] status publish failed: ${f instanceof Error?f.message:String(f)}`);}let be=[];for(let{cardId:f,values:R}of Le)be.push({kind:"computed_values",cardId:f,values:R});for(let f of $e)for(let[R,B]of Object.entries(f))R&&be.push({kind:"data_object",key:R,payload:B});for(let[f,R]of Je)be.push({kind:"card_refreshed",cardId:f,card:R});for(let f of rt)be.push({kind:"card_removed",cardId:f});Ae!==void 0&&be.push({kind:"status",status:Ae}),Q(be);let we=p()??{howToRun:"built-in",whatToRun:chunkVQCIOKJV_cjs.a({kind:"built-in",value:"source-cli-task-executor"})},ot=t.supportsDirectSourceOutput?.(we)===true;n.dispatchEntriesForJournalId(j,f=>{if(f.taskKind!=="source-fetch"){o(`[process-accumulated-events] unknown taskKind "${f.taskKind}" \u2014 skipping`);return}let R=f.payload,B=R.enrichedCard?.id??"unknown",de=R.enrichedCard?.source_defs??[];if(we.howToRun==="queue-storage"&&ot){try{let N=t.queueStorageForRef(P(),"task-executor"),se=typeof we.extra?.boardId=="string"?we.extra.boardId:void 0,me=[];for(let Y of de){if(!Y.outputFile){o(`[dispatch] source "${Y.bindTo}" has no outputFile \u2014 skipping`);continue}let Ie=t.genId(),_e=`${B}/.staged/${Ie}/${Y.outputFile}`,st=O.keyRef?.(_e);if(!st)continue;let at={ref:chunkVQCIOKJV_cjs.a(st),deliveryToken:Ie,outputFile:Y.outputFile,cardId:B},nr=Dt({cbk:R.callbackToken,rg:e.value,br:chunkVQCIOKJV_cjs.a(e),cid:B,b:Y.bindTo,d:Y.outputFile,cs:void 0,rqt:R.rqt,dt:at.deliveryToken});me.push({...se?{boardId:se}:{},ref:we,args:{source_def:Y,base_ref:chunkVQCIOKJV_cjs.a(e),callback:s.createCallback(nr),output:at}});}me.length>0&&N.enqueueMany(me);}catch(N){Me(B,N instanceof Error?N.message:String(N));}return}for(let N of de){if(!N.outputFile){o(`[dispatch] source "${N.bindTo}" has no outputFile \u2014 skipping`);continue}let se;if(ot){let Y=t.genId(),Ie=`${B}/.staged/${Y}/${N.outputFile}`,_e=O.keyRef?.(Ie);_e&&(se={ref:chunkVQCIOKJV_cjs.a(_e),deliveryToken:Y,outputFile:N.outputFile,cardId:B});}let me=Dt({cbk:R.callbackToken,rg:e.value,br:chunkVQCIOKJV_cjs.a(e),cid:B,b:N.bindTo,d:N.outputFile,cs:void 0,rqt:R.rqt,...se?{dt:se.deliveryToken}:{}});t.dispatchExecution(we,{source_def:N,base_ref:chunkVQCIOKJV_cjs.a(e),callback:s.createCallback(me),...se?{output:se}:{}}).catch(Y=>Me(B,Y instanceof Error?Y.message:String(Y)));}});}function P(){let i=k().readQueueStoreRef();if(!i)throw new Error(`Board at ${e.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);return i}function L(){t.queueStorageForRef(P(),"process-accumulated").enqueue({boardRef:chunkVQCIOKJV_cjs.a(e)}),t.requestProcessAccumulated?.();}function M(){let i=t.queueStorageForRef(P(),"process-accumulated");for(;;){let n=i.lease({max:64,visibilityMs:1e3});if(n.length<=0)return;for(let l of n)i.ack(l.id,l.leaseToken);if(n.length<64)return}}async function oe(){try{let i=()=>{let l=I(),{events:m}=G().readEntriesAfterCursor(l.lastDrainedJournalId);m.length<=0||L();},n=await chunkVQCIOKJV_cjs.c(t.lock,D,i);return E({ran:n!==!1})}catch(i){return F(i)}}function Z(){L();}function ge(i){try{let n=i.params?.cardStoreRef;if(!n)return h("init requires params.cardStoreRef \u2014 create a card store with card-store-cli and pass its ref here");if(c=i.params?.boardRuntimeStoreRef,!c)return h("init requires params.boardRuntimeStoreRef \u2014 pass the board runtime store ref here");if(!v()){let X=chunkG4XXRHL2_cjs.a(Xe);T({lastDrainedJournalId:"",graph:chunkG4XXRHL2_cjs.p(X),runtimeByCardId:{}},null);}let l=i.params?.outputsStoreRef;if(!l)return h("init requires params.outputsStoreRef \u2014 pass the outputs store ref here");let m=i.params?.queueStoreRef;if(!m)return h("init requires params.queueStoreRef \u2014 pass the queue store ref here");let w=i.params?.fetchedSourcesStoreRef;if(!w)return h("init requires params.fetchedSourcesStoreRef \u2014 pass the fetched sources store ref here");d=i.params?.scratchStoreRef;let j=i.params?.chatStoreRef;if(!j)return h("init requires params.chatStoreRef \u2014 pass the chat store ref here");let O=i.params?.artifactsStoreRef;if(!O)return h("init requires params.artifactsStoreRef \u2014 pass the artifacts store ref here");let q=k();q.writeBoardRuntimeStoreRef(c),q.writeCardStoreRef(n),q.writeOutputsStoreRef(l),q.writeQueueStoreRef(m),q.writeFetchedSourcesStoreRef(w),q.writeChatStoreRef(j),q.writeArtifactsStoreRef(O),g().writeCard(Pe().id,Pe());let J=ee({params:{cardId:Pe().id,restart:!0}});if(J.status!=="success")return J;try{u().writeStatusSnapshot(Ke(De(a,chunkG4XXRHL2_cjs.q(I().graph))));}catch{}return E()}catch(n){return F(n)}}function ie(i){try{let n=u().readStatusSnapshot();if(!n){n=Ke(De(a,chunkG4XXRHL2_cjs.q(I().graph)));try{u().writeStatusSnapshot(n);}catch{}}return E(n)}catch(n){return F(n)}}function C(i){try{let n=i.params?.id;if(!n)return h("removeCard requires params.id");try{t.kvStorage("card-upsert").delete(n);}catch{}return x({type:"task-removal",taskName:n,timestamp:W()}),n!==ae&&x({type:"task-restart",taskName:ae,timestamp:W()}),Z(),E()}catch(n){return F(n)}}function b(i){try{let n=i.params?.cardId;if(!n)return h("addCardFiles requires params.cardId");let l=chunk5XLFPPTY_cjs.a(g(),{emitNotification:V}).appendFiles({params:{id:n},body:i.body});return l.status!=="success"?l:E({cardId:n,files_added:l.data.files_added,notified:!0})}catch(n){return F(n)}}function _(i){try{let n=i.params?.id;return n?(x({type:"task-restart",taskName:n,timestamp:W()}),Z(),E()):h("retrigger requires params.id")}catch(n){return F(n)}}async function $(i){return M(),oe()}function re(){let i=k().readFetchedSourcesStoreRef();if(!i)throw new Error(`Board at ${e.value} has no fetched sources store configured. Run: init --fetched-sources-store-ref <b64-ref>`);return i}function K(){return t.blobStorageForRef(re())}function ee(i){try{let n=i.params?.cardId,l=i.params?.all,m=!!i.params?.restart;if(!n&&!l)return h("upsertCard requires --card-id <id> or --all");let w=l?g().readAllCards().map(O=>O.id):[n];for(let O of w)if(!g().readCard(O))return h(`Card "${O}" not found in board at ${e.value}`);let j=!1;for(let O of w){let q=g().readCard(O),J=Kt(q),X=t.hashFn(J),ke=t.kvStorage("card-upsert"),Re=ke.read(O),ne=Re?.taskConfigHash!==X;if(!(!ne&&!m)){if(ne){let Ce=Re?.blobRef??g().readCardKey(O)??O;x({type:"task-upsert",taskName:O,taskConfig:J,timestamp:W()}),ke.write(O,{blobRef:Ce,taskConfigHash:X,updatedAt:W()}),j=j||O!==ae;}m&&x({type:"task-restart",taskName:O,timestamp:W()});}}return j&&x({type:"task-restart",taskName:ae,timestamp:W()}),Z(),E()}catch(n){return F(n)}}function ue(i){try{let n=i.params?.token;if(!n)return h("taskFailed requires params.token");let l=i.params?.error??"unknown error",m=Ne(n);return m?(x({type:"task-failed",taskName:m.taskName,error:l,timestamp:W()}),Z(),E()):h("Invalid callback token")}catch(n){return F(n)}}function Se(i){try{let n=i.params?.token;if(!n)return h("taskProgress requires params.token");let m=(i.body??{}).update??{},w=Ne(n);return w?(x({type:"task-progress",taskName:w.taskName,update:m,timestamp:W()}),Z(),E()):h("Invalid callback token")}catch(n){return F(n)}}function ve(i){try{let n=i.params?.token,l=i.params?.ref;if(!n)return h("sourceDataFetched requires params.token");if(!l)return h("sourceDataFetched requires params.ref");let m=Nt(n);if(!m)return h("Invalid source token");let{cbk:w,cid:j,b:O,d:q,cs:J,rqt:X,dt:ke}=m,Re=qe(K(),he=>t.resolveBlob(he)),ne=ke||t.genId();ke||Re.ingestSourceDataStaged(j,q,chunkVQCIOKJV_cjs.b(l),ne);let Ce=Ne(w);if(!Ce)return h("Invalid callback token embedded in source token");let xe=W();return x({type:"task-progress",taskName:Ce.taskName,update:{bindTo:O,outputFile:q,fetchedAt:xe,deliveryToken:ne,sourceChecksum:J,rqt:X},timestamp:xe}),Z(),E()}catch(n){return F(n)}}function le(i){try{let n=i.params?.token,l=i.params?.reason??"unknown";if(!n)return h("sourceDataFetchFailure requires params.token");let m=Nt(n);if(!m)return h("Invalid source token");let{cbk:w,b:j,d:O,cs:q,rqt:J}=m,X=Ne(w);return X?(x({type:"task-progress",taskName:X.taskName,update:{bindTo:j,outputFile:O,failure:!0,reason:l,sourceChecksum:q,rqt:J},timestamp:W()}),Z(),E()):h("Invalid callback token embedded in source token")}catch(n){return F(n)}}function $t(i){try{let n=k().readCardStoreRef();return n?E({storeRef:n}):h(`Board at ${e.value} has no card store configured`)}catch(n){return F(n)}}function Jt(i){try{return E({storeRef:c??null})}catch(n){return F(n)}}function Mt(i){try{let n=k().readOutputsStoreRef();return n?E({storeRef:n}):h(`Board at ${e.value} has no outputs store configured`)}catch(n){return F(n)}}function Ht(i){try{return E({storeRef:d??null})}catch(n){return F(n)}}function Gt(i){try{let n=k().readChatStoreRef();return E({storeRef:n})}catch(n){return F(n)}}function Ut(i){try{let n=k().readArtifactsStoreRef();return E({storeRef:n})}catch(n){return F(n)}}function Yt(i){try{let n=k().readFetchedSourcesStoreRef();return E({storeRef:n})}catch(n){return F(n)}}function zt(i){try{let n=i.params?.key;if(!n)return h("getConfig requires params.key");let l=k(),m;switch(n){case "task-executor":m=S??null;break;case "chat-handler-flow":m=y??null;break;case "board-runtime-store-ref":m=l.readBoardRuntimeStoreRef();break;case "card-store-ref":m=l.readCardStoreRef();break;case "outputs-store-ref":m=l.readOutputsStoreRef();break;case "scratch-store-ref":m=d??null;break;case "chat-store-ref":m=l.readChatStoreRef();break;case "artifacts-store-ref":m=l.readArtifactsStoreRef();break;case "fetched-sources-store-ref":m=l.readFetchedSourcesStoreRef();break;default:return h(`getConfig: unknown key "${n}"`)}return E({value:m})}catch(n){return F(n)}}function Qt(i){try{let n=i.params?.key;if(!n)return h("getOutputsDataObject requires params.key");if(n===fe)return E(null);let l=u().readDataObject(n);return E(l)}catch(n){return F(n)}}function We(i){try{return E(Pt(u().readAllDataObjects()))}catch(n){return F(n)}}function Xt(i){try{let n=i.params?.key;if(!n)return h("getOutputsComputedValues requires params.key");let l=u().readComputedValues(n);return E(l)}catch(n){return F(n)}}function Ze(i){try{return E(u().readAllComputedValues())}catch(n){return F(n)}}function et(){return qe(K(),i=>t.resolveBlob(i))}function tt(i){let n=K().keyRef?.(i);if(!n)throw new Error("configured fetched-sources store does not support keyRef");return chunkVQCIOKJV_cjs.a(n)}function Wt(i){try{let n=i.params?.key;if(!n)return h("getOutputsFetchedSources requires params.key");let l=et().listSources(n),m={};for(let w of l)m[w]=tt(`${n}/${w}`);return E(m)}catch(n){return F(n)}}function Zt(i){try{let n=et(),l=new Set;for(let w of K().listKeys()){let j=w.indexOf("/");j>0&&!w.includes("/.staged/")&&l.add(w.slice(0,j));}let m={};for(let w of l){let j=n.listSources(w);if(j.length>0){m[w]={};for(let O of j)m[w][O]=tt(`${w}/${O}`);}}return E(m)}catch(n){return F(n)}}function er(i){try{let n=g().readAllCards().filter(q=>q.id!==ae),l=ie({});if(l.status!=="success")return l;let m=We({});if(m.status!=="success")return m;let w=Ze({});if(w.status!=="success")return w;let j=w.data,O={};for(let q of n){let J=typeof q?.id=="string"?q.id:null;if(!J)continue;let X=q.card_data&&typeof q.card_data=="object"&&!Array.isArray(q.card_data)?q.card_data:{};O[J]={schema_version:"v1",card_id:J,card_data:{...X},computed_values:j[J]&&typeof j[J]=="object"?j[J]:{}};}return E({cardDefinitions:n,statusSnapshot:l.data,dataObjectsByToken:m.data,cardRuntimeById:O})}catch(n){return F(n)}}return {init:ge,status:ie,getBoardRuntimeStoreRef:Jt,getCardStoreRef:$t,getOutputsStoreRef:Mt,getScratchStoreRef:Ht,getChatStoreRef:Gt,getArtifactsStoreRef:Ut,getFetchedSourcesStoreRef:Yt,getConfig:zt,getOutputsDataObject:Qt,getAllOutputsDataObjects:We,getOutputsComputedValues:Xt,getAllOutputsComputedValues:Ze,getOutputsFetchedSources:Wt,getAllOutputsFetchedSources:Zt,buildSseOneShotPayload:er,removeCard:C,addCardFiles:b,retrigger:_,processAccumulatedEvents:$,upsertCard:ee,taskFailed:ue,taskProgress:Se,sourceDataFetched:ve,sourceDataFetchFailure:le}}function Ur(e,t,r){let s=r?.taskExecutorRef,o=()=>{if(r){if(!r.boardRuntimeStoreRef)throw new Error(`Board at ${e.value} requires boardRuntimeStoreRef for non-core runtime operations.`);return je(t.kvStorageForRef(r.boardRuntimeStoreRef))}return je(t.kvStorage("config"))};function a(){let g=o().readCardStoreRef();if(!g)throw new Error(`Board at ${e.value} has no card store configured. Run: init --base-ref <ref> --store-ref <b64-ref>`);let u=t.kvStorageForRef(g);return {readIndex(){return u.read("_index")},writeIndex(p){u.write("_index",p);},readCard(p){return u.read(p)},writeCard(p,v){return u.write(p,v),t.hashFn(v)},removeCard(p){u.delete(p);},cardExists(p){return u.read(p)!==null},defaultCardKey(p){return p}}}let c=()=>Qe(a(),t.onWarn??(()=>{}));function d(){return s??o().readTaskExecutorRef()}async function S(g,u){let p=t.validateSchema(u),v=[],I=d();if(I&&Array.isArray(u.source_defs))for(let x of u.source_defs){let D=typeof x.bindTo=="string"?x.bindTo:"(unknown)";try{let P;try{P=await t.invokeExecutor(I,"validate-source-def",{timeout:t.executorTimeouts?.validationMs??1e4,input:JSON.stringify(x)});}catch(M){let oe=M;if(P=typeof oe?.stdout=="string"?oe.stdout:"",!P.trim()){v.push(`source "${D}": executor validate-source-def failed \u2014 ${M instanceof Error?M.message:String(M)}`);continue}}let L=JSON.parse(P.trim());if(!L.ok&&Array.isArray(L.errors))for(let M of L.errors)v.push(`source "${D}": ${M}`);}catch(P){v.push(`source "${D}": executor validate-source-def failed \u2014 ${P instanceof Error?P.message:String(P)}`);}}let T=[...p.errors,...v];return E({cardId:g,isValid:T.length===0,issues:T})}function y(g,u){let p=g.params?.sourceIdx,v=g.params?.outRef;if(p===void 0)return h(`${u} requires params.sourceIdx`);if(!g.body||typeof g.body!="object"||Array.isArray(g.body))return h(`${u} requires card JSON object in body`);let I=g.body,T=I["card-content"]??I,x=I["mock-projections"]??{},D=T.source_defs??[];if(p<0||p>=D.length)return h(`sourceIdx ${p} out of range (card has ${D.length} source(s))`);let P=D[p],L=typeof P.bindTo=="string"?P.bindTo:"source";return {src:P,bindTo:L,outRef:v,mockProjections:x}}async function V(g){try{if(!g.body||typeof g.body!="object"||Array.isArray(g.body))return h("validateCardPreflight requires card JSON object in body");let u=g.body,p=u["card-content"]??u,v=typeof p.id=="string"?p.id:"(unknown)";return await S(v,p)}catch(u){return F(u)}}async function z(g){try{let u=y(g,"probeSourcePreflight");if("status"in u)return u;let p=d();if(!p)return h("No task-executor registered for this board");try{let v={...u.src,_projections:u.mockProjections},I=await t.invokeExecutor(p,"probe-source-preflight",{timeout:u.src.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(v)}),T=JSON.parse(I.trim());return T.ok?E({bindTo:u.bindTo,reachable:T.reachable,latencyMs:T.latencyMs,note:T.note}):h(T.error??"Preflight probe failed")}catch{return h("Executor does not support probe-source-preflight")}}catch(u){return F(u)}}async function Q(g){try{let u=y(g,"runSourcePreflight");if("status"in u)return u;let p=d();if(!p)return h("No task-executor registered for this board");try{let v={...u.src,_projections:u.mockProjections},I=await t.invokeExecutor(p,"run-source-preflight",{timeout:u.src.timeout??t.executorTimeouts?.probeMs??6e4,input:JSON.stringify(v)}),T=JSON.parse(I.trim());if(!T.ok)return E({bindTo:u.bindTo,ok:!1,result:null,issues:[T.error??"Preflight run failed"]});if(u.outRef){let x=chunkVQCIOKJV_cjs.b(u.outRef);t.absoluteBlob.write(x.value,JSON.stringify(T.resultValue,null,2));}return E({bindTo:typeof T.bindTo=="string"?T.bindTo:u.bindTo,ok:!0,result:T.resultValue??null,issues:[]})}catch(v){let I=v instanceof Error?v.message:String(v);return E({bindTo:u.bindTo,ok:!1,result:null,issues:[I]})}}catch(u){return F(u)}}async function te(g){try{let u=d();if(!u)return h("No task-executor registered for this board");let p=await t.invokeExecutor(u,"describe-capabilities",{timeout:t.executorTimeouts?.describeMs??1e4});return E(JSON.parse(p.trim()))}catch(u){return F(u)}}function A(g){try{let u=g.body;if(!u||!Array.isArray(u.ops))return h("updatesInCardStore requires body.ops array");let p=u.ops,v=c();for(let I of p){let T=I.op,x=I.id;if(!x)return h('op is missing "id"');if(T==="update"){let D=I["card-content"];if(!D)return h(`update op for "${x}" is missing "card-content"`);v.writeCard(x,D);}else return h(`Unknown op type: "${T??"(none)"}"`)}return E()}catch(u){return F(u)}}function k(g){try{let u=g.body;if(!u||!Array.isArray(u.ids))return h("readFromCardStore requires body.ids array");let p=u.ids,v=c(),I=p.map(T=>({id:T,"card-content":v.readCard(T)}));return E({cards:I})}catch(u){return F(u)}}function H(g){try{if(!g.body||typeof g.body!="object"||Array.isArray(g.body))return h("evalCardCompute requires a JSON object in body");let u=g.body,p=u["card-content"]??u,v=typeof p.id=="string"?p.id:"(unknown)",I=u["mock-fetched-sources"]??{},T=u["mock-requires"]??{},x=p.compute;if(!x||!Array.isArray(x)||x.length===0)return E({cardId:v,ok:!0,computed_values:{},errors:[]});let D={id:v,card_data:p.card_data??{},requires:T,source_defs:p.source_defs,compute:x},P=chunkQBEQL4TL_cjs.a.runSync(D,{sourcesData:I}),L=P.node.computed_values??{},M=P.errors??[];return E({cardId:v,ok:M.length===0,computed_values:L,errors:M})}catch(u){return F(u)}}async function G(g){try{if(!g.body||typeof g.body!="object"||Array.isArray(g.body))return h("simulateCardCycle requires a JSON object in body");let u=g.body,p=u["card-content"]??u,v=typeof p.id=="string"?p.id:"(unknown)",I=u["mock-fetched-sources"]??{},T=u["mock-requires"]??{},x=await S(v,p),D=x.status==="success"?{isValid:x.data.isValid,issues:x.data.issues}:{isValid:!1,issues:[x.status==="fail"?x.error:"internal error"]},P=p.source_defs??[],L=p.card_data??{},M=[],oe=[];if(P.length>0){M=chunkQBEQL4TL_cjs.a.enrichSourcesSync(P,{card_data:L,requires:T});for(let K of M){let ee=K.projections,ue=K._projections;if(ee&&ue){for(let Se of Object.keys(ee))if(ue[Se]===void 0){let ve=typeof K.bindTo=="string"?K.bindTo:"(unknown)";oe.push({bindTo:ve,key:Se,error:`Projection "${Se}" resolved to undefined`});}}}}let Z=[],ge={...I},ie=u["task-executor-ref"],C=(ie?.howToRun&&ie?.whatToRun?ie:void 0)??d();for(let K=0;K<M.length;K++){let ee=M[K],ue=typeof ee.bindTo=="string"?ee.bindTo:`source_${K}`;if(!C){Z.push({bindTo:ue,skipped:!0,error:"No task executor configured"});continue}try{let Se={...ee},ve=await t.invokeExecutor(C,"run-source-preflight",{timeout:ee.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(Se)}),le=JSON.parse(ve.trim());le.ok&&!Object.prototype.hasOwnProperty.call(I,ue)&&Object.prototype.hasOwnProperty.call(le,"resultValue")&&(ge[ue]=le.resultValue),Z.push({bindTo:ue,reachable:le.reachable,latencyMs:le.latencyMs,error:le.ok?void 0:le.error});}catch{Z.push({bindTo:ue,skipped:!0,error:"Executor does not support run-source-preflight"});}}let b=p.compute,_={},$=[];if(b&&Array.isArray(b)&&b.length>0){let K={id:v,card_data:L,requires:T,source_defs:p.source_defs,compute:b},ee=chunkQBEQL4TL_cjs.a.runSync(K,{sourcesData:ge});_=ee.node.computed_values??{},$=ee.errors??[];}let re=D.isValid&&oe.length===0&&$.length===0&&Z.every(K=>K.reachable!==!1);return E({cardId:v,ok:re,validation:D,source_probes:Z,projection_errors:oe,fetched_sources:ge,computed_values:_,compute_errors:$})}catch(u){return F(u)}}return {validateCardPreflight:V,probeSourcePreflight:z,runSourcePreflight:Q,evalCardCompute:H,simulateCardCycle:G,describeTaskExecutorCapabilities:te,updatesInCardStore:A,readFromCardStore:k}}
2
- exports.A=De;exports.B=Xe;exports.C=Vt;exports.D=jt;exports.E=Kt;exports.F=Gr;exports.G=Ur;exports.a=Tr;exports.b=Ct;exports.c=Er;exports.d=Rt;exports.e=br;exports.f=wr;exports.g=vr;exports.h=vt;exports.i=ir;exports.j=ur;exports.k=xt;exports.l=fe;exports.m=ae;exports.n=dr;exports.o=cr;exports.p=Pe;exports.q=Qe;exports.r=Ve;exports.s=ye;exports.t=Vr;exports.u=Tt;exports.v=Et;exports.w=fr;exports.x=At;exports.y=Ke;exports.z=Pt;//# sourceMappingURL=chunk-BAG7MHZP.cjs.map
3
- //# sourceMappingURL=chunk-BAG7MHZP.cjs.map
@@ -1,2 +0,0 @@
1
- import {a as a$1}from'./chunk-FOFGEABN.js';import {a,c,d,e,b,f}from'./chunk-O7NOHKVR.js';import {b as b$1}from'./chunk-44L64VQ2.js';import {a as a$2}from'./chunk-6M3RIGUH.js';function v(a){if(!a||typeof a!="object")return false;let e=a;return typeof e.kind=="string"&&e.kind.length>0}function J(a){if(!a||typeof a!="object")return [];let e=a;return e.kind==="notification-batch"?Array.isArray(e.notifications)?e.notifications.filter(v):[]:v(a)?[a]:[]}function X(a,e,i){let u=0;return {accepted:a.filter(R=>{if(!v(R))return u++,false;let _=R;return typeof _.sentAtMs=="number"&&e-_.sentAtMs>i?(u++,false):true}),rejected:u}}function Q(){return {status:null,computedValues:{},dataObjects:{},cards:{}}}function z(a){if(!a||typeof a!="object")return false;let e=a.summary;return !e||typeof e!="object"?false:Number(e.card_count||0)>0}function W(a){if(!a||typeof a!="object")return false;let e=a;return e.kind==="notification-batch"&&Array.isArray(e.notifications)}function V(a,e){if(e.kind==="status"){z(e.status)&&(a.status=e.status);return}if(e.kind==="computed_values"){a.computedValues[e.cardId]=e.values;return}if(e.kind==="data_object"){a.dataObjects[e.key]=e.payload;return}if(e.kind==="card_refreshed"){a.cards[e.cardId]=e.card;return}e.kind==="card_removed"&&(delete a.cards[e.cardId],delete a.computedValues[e.cardId]);}function Y(a,e){if(W(e)){for(let i of e.notifications)v(i)&&V(a,i);return}v(e)&&V(a,e);}function j(a,e){if(a?.status==="success")return Object.prototype.hasOwnProperty.call(a,"data")?a.data:void 0;throw a?.status==="fail"||a?.status==="error"?Object.assign(new Error(a.error||`${e} failed`),{statusCode:400}):Object.assign(new Error(`${e} returned an unexpected response`),{statusCode:500})}async function N(a,e){return j(await a,e)}function q(a$1){let e=a(a$1,"key");if(!e)throw Object.assign(new Error("MCP tool requires key"),{statusCode:400});let i=e.split(".");if(!(i.length>=2&&i.every(f=>/^[A-Za-z_][A-Za-z0-9_]*$/.test(f))))throw Object.assign(new Error("MCP tool requires a card private key with at least two identifier segments (e.g. chat.foundry_thread_id)"),{statusCode:400});return e}function E(a,e){let i=a.__private;for(let u of e.split(".")){if(!i||typeof i!="object"||Array.isArray(i)||!Object.prototype.hasOwnProperty.call(i,u))return {exists:false,value:null};i=i[u];}return {exists:true,value:i}}function oe(a$1){let{boardId:e,bootstrapBoard:i,sseHub:u,onChannelSubscribed:f,onChannelUnsubscribed:R,getMcpFacade:_,getMcpCardStoreFacade:r}=a$1;function g(s){let d=a(s,"board_id");if(!d)throw Object.assign(new Error("MCP tool requires board_id"),{statusCode:400});if(d!==e)throw Object.assign(new Error(`Unknown board_id: ${d}`),{statusCode:400})}function b(s){let d=a(s,"client_id");if(!d)throw Object.assign(new Error("MCP tool requires client_id"),{statusCode:400});return d}function y(s){g(s);let d=b(s),n=a(s,"channel_name"),t=a(s,"card_id")||void 0;if(!n)throw Object.assign(new Error("MCP tool requires channel_name"),{statusCode:400});return {clientId:d,channelName:n,...t?{cardId:t}:{}}}function c(s){g(s);let d=a(s,"card_id");if(!d)throw Object.assign(new Error("MCP tool requires card_id"),{statusCode:400});return {cardId:d}}async function C(s){await i();let{cardId:d}=c(s),n=b(s);if(!await u.subscribeChat(n,d))throw Object.assign(new Error(`SSE client not connected: ${n}`),{statusCode:404});return {status:"success",data:{boardId:e,cardId:d,clientId:n,subscribed:true}}}async function m(s){await i();let{cardId:d}=c(s),n=b(s);if(!u.unsubscribeChat(n,d))throw Object.assign(new Error(`SSE client not connected: ${n}`),{statusCode:404});return {status:"success",data:{boardId:e,cardId:d,clientId:n,subscribed:false}}}async function w(s,d){await i();let{clientId:n,channelName:t,cardId:o}=y(s);if(!u.has(n))throw Object.assign(new Error(`SSE client not connected: ${n}`),{statusCode:404});return d?(u.subscribeChannel(n,t,o),f?.(n,t,o?{cardId:o}:{})):(u.unsubscribeChannel(n,t,o),R?.(n,t,o?{cardId:o}:{})),{status:"success",data:{boardId:e,clientId:n,channelName:t,subscribed:d,...o?{cardId:o}:{}}}}async function S(s,d){let{cardId:n}=c(s);return await _().setChatProcessing({cardId:n,active:d}),{status:"success",data:{boardId:e,cardId:n,active:d}}}async function l(s){let{cardId:d}=c(s),n=await _().getChatProcessing({cardId:d});return {status:"success",data:{boardId:e,cardId:d,active:n.active}}}async function h(s){let{cardId:d}=c(s),n=q(s);if(!Object.prototype.hasOwnProperty.call(s,"value"))throw Object.assign(new Error("MCP tool requires value"),{statusCode:400});if(n.split(".").includes("visible_controlplane_only")){let t=await N(r().get({params:{id:d}}),"cardStore.get"),o=Array.isArray(t.cards)&&t.cards.length>0&&typeof t.cards[0]=="object"&&!Array.isArray(t.cards[0])?t.cards[0]:null,k=o?E(o,"visible_controlplane_only").value:void 0;if(s.value!==k)throw Object.assign(new Error("MCP tool cannot change the reserved private flag visible_controlplane_only"),{statusCode:403});return {status:"success",data:{boardId:e,cardId:d,key:n}}}return j(await r().patch({params:{id:d,path:`__private.${n}`},body:{value:s.value}}),"cardStore.patch"),{status:"success",data:{boardId:e,cardId:d,key:n}}}async function I(s){let{cardId:d}=c(s),n=q(s),t=await N(r().get({params:{id:d}}),"cardStore.get"),o=Array.isArray(t.cards)&&t.cards.length>0&&t.cards[0]&&typeof t.cards[0]=="object"&&!Array.isArray(t.cards[0])?t.cards[0]:null;if(!o)throw Object.assign(new Error(`Card "${d}" not found`),{statusCode:404});let k=E(o,n);return {status:"success",data:{boardId:e,cardId:d,key:n,exists:k.exists,value:k.value}}}return {requireCardArgs:c,subscribeChat:C,unsubscribeChat:m,watchChannel:w,setChatProcessing:S,getChatProcessing:l,setCardMeta:h,getCardMeta:I}}function ie(a){let{boardId:e,boardContexts:i,readChatRecords:u,getChatProcessing:f}=a;function R(c){if(c.length===0)return null;if(c.length===1)return c[0];let C=[],m=["completed","eligible","pending","blocked","unresolved","failed","in_progress","orphan_cards"],w={};for(let l of m)w[l]=0;for(let l of c){let h=l,I=Array.isArray(h.cards)?h.cards:[];C.push(...I);for(let s of m)w[s]+=Number(h?.summary?.[s]||0);}let S=c[0];return {...S,cards:C,summary:{...S.summary||{},card_count:C.length,...w}}}async function _(){let c=[];for(let C of i)try{let m=await C.boardOps.buildSseOneShotPayload({});m.status==="success"&&m.data&&c.push(m.data);}catch{}return c}async function r(){let C=(await _()).map(m=>m.statusSnapshot).filter(Boolean);if(C.length===0){let m=i.map(w=>w.notification.status).filter(Boolean);return R(m)}return R(C)}async function g(){let c={},C=await _();for(let m of C)Object.assign(c,m.cardRuntimeById||{});if(Object.keys(c).length>0)return c;for(let m of i)for(let[w,S]of Object.entries(m.notification.computedValues)){let l=m.notification.cards[w];c[w]={schema_version:"v1",card_id:w,card_data:l?.card_data??{},computed_values:S??{}};}return c}async function b(){let c={},C=await _();for(let m of C)Object.assign(c,m.dataObjectsByToken||{});if(Object.keys(c).length===0)for(let m of i)Object.assign(c,m.notification.dataObjects||{});return c}async function y(){let c=await _(),C=c.flatMap(l=>Array.isArray(l.cardDefinitions)?l.cardDefinitions:[]),m={},w={};for(let l of c)Object.assign(m,l.dataObjectsByToken||{}),Object.assign(w,l.cardRuntimeById||{});let S={};for(let l of C){if(!l?.id)continue;let h=l.id;try{let I=await u(h),s=await f(h);(I.length>0||s)&&(S[h]={messages:I.map(d=>({role:String(d.role||"system"),text:String(d.text||""),files:Array.isArray(d.files)?d.files:[]})),receiving:!1,processing:s});}catch{}}return {boardId:e,cardDefinitions:C,statusSnapshot:await r(),dataObjectsByToken:m,cardRuntimeById:w,cardChatsByCardId:S}}return {readStatusSnapshot:r,readCardRuntimeArtifacts:g,readDataObjectsByToken:b,buildPublishedRuntimePayload:y}}function K(a){let e=String(a||"").trim();if(!e)return "upload.bin";let i=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return (i>=0?e.slice(i+1):e)||"upload.bin"}function ce(a){let{safeCardId:e,artifactsStores:i,cardFileMetadataStore:u,readCardFromStore:f,updateCardLocalOnly:R,writeChatRecord:_}=a;async function r(y){let c=[];try{let C=await f(y);if(!C)return c;let m=u().read(C.card_data&&typeof C.card_data=="object"?C.card_data:null);for(let w of m)c.push(String(w.stored_name??""));}catch{}return c}async function g(y,c,C,m){let w=e(y),S=i(y),l=K(c),h=await r(y),s=`${String(h.length+1).padStart(3,"0")}-${l}`.slice(-36);if(!S.files)throw Object.assign(new Error(`artifactsStoreRef is not configured for card uploads: ${y}`),{statusCode:500});return await S.files.putBytes(`${w}/${s}`,new Uint8Array(m),C||"application/octet-stream"),{name:l,stored_name:s,size:m.length,mime_type:C||"application/octet-stream",uploaded_at:new Date().toISOString()}}async function b(y,c,C,m,w){if(!m.length)throw Object.assign(new Error("Empty upload body"),{statusCode:400});let S=w?.inChat===true,l=await g(y,c,C,m),h=null;if(await R(y,I=>{let s=new Date().toISOString(),d=I.card_data&&typeof I.card_data=="object"?I.card_data:{};I.card_data=d;let n=u().normalizeIncoming([{name:l.name,stored_name:l.stored_name,size:l.size,mime_type:l.mime_type,uploaded_at:l.uploaded_at||s,chat:S}],s);return h=u().merge(d,n).findIndex(o=>o.stored_name===l.stored_name),I}),S&&w?.suppressChatRecordWrite!==true){let I=typeof h=="number"&&h>=0?` #${h}`:"";await _(y,"system",`file uploaded: ${l.name} as ${l.stored_name}${I}`,[],w?.turnId??"");}return {ok:true,file:{...l,...typeof h=="number"&&h>=0?{file_idx:h}:{},chat:S},...typeof h=="number"&&h>=0?{file_idx:h}:{}}}return {uploadCardFile:b,readCardStoredFileNames:r}}function pe(a$1){return {"discover.source-kinds":()=>a$1.discoverSourceKinds(),"inspect.board-runtime-status":()=>a$1.inspectBoardRuntimeStatus(),"inspect.card-definition-and-runtime":e=>a$1.inspectCardDefinitionAndRuntime({cardId:a(e,"card_id")}),"inspect.chat-messages-on-cards":e=>{let i=b(e,"tail_turns"),u=b(e,"tail"),f=a(e,"turn_id"),R=e.all_turns===true,_=a(e,"tail_turns_before_id");return a$1.inspectChatMessagesOnCards({cardId:a(e,"card_id"),...i!==void 0?{lastUserTurns:i}:{},...u!==void 0?{tail:u}:{},...f?{turnId:f}:{},...R?{allTurns:true}:{},..._?{tailTurnsBeforeId:_}:{}})},"inspect.file-contents":e=>a$1.inspectFileContents({cardId:a(e,"card_id"),fileIdx:Number(b(e,"file_idx"))}),"preflight.validate-candidate-card-definition":e=>a$1.preflightValidateCandidateCardDefinition({candidateCardContent:d(e,"candidate_card_content","candidate_card_content")}),"preflight.materialize-candidate-card":e=>a$1.preflightMaterializeCandidateCard({candidateCardContent:d(e,"candidate_card_content","candidate_card_content"),mockRequires:d(e,"mock_requires","mock_requires"),mockFetchedSources:d(e,"mock_fetched_sources","mock_fetched_sources")}),"preflight.probe-single-source-in-candidate-card":e$1=>a$1.preflightProbeSingleSourceInCandidateCard({candidateCardContent:d(e$1,"candidate_card_content","candidate_card_content"),mockProjections:c(e$1,"mock_projections"),sourceIdx:e(e$1,"source_idx","source_idx")}),"preflight.run-single-source-in-candidate-card":e$1=>a$1.preflightRunSingleSourceInCandidateCard({candidateCardContent:d(e$1,"candidate_card_content","candidate_card_content"),mockProjections:c(e$1,"mock_projections"),sourceIdx:e(e$1,"source_idx","source_idx")}),"preflight.run-single-source-in-live-card":e$1=>a$1.preflightRunSingleSourceInLiveCard({cardId:a(e$1,"card_id"),sourceIdx:e(e$1,"source_idx","source_idx"),mockRequires:d(e$1,"mock_requires","mock_requires")}),"preflight.run-one-cycle-with-candidate-card":e=>a$1.preflightRunOneCycleWithCandidateCard({candidateCardContent:d(e,"candidate_card_content","candidate_card_content"),mockRequires:c(e,"mock_requires")}),"manage.read-card":e=>a$1.manageReadCard({cardId:a(e,"card_id")}),"stage-ai-response-and-any-attachments":e=>{let i=a(e,"turn_id");if(!i)throw Object.assign(new Error("stage-ai-response-and-any-attachments requires a non-empty turn_id"),{statusCode:400});return a$1.manageAddChatEntryAndAnyAttachments({cardId:a(e,"card_id"),role:"assistant",...typeof e.text=="string"?{text:e.text}:{},...i?{turn:i}:{},...Array.isArray(e.files)?{files:e.files}:{}})},"stage-ai-failure-message":e=>{let i=a(e,"turn_id"),u=a(e,"failure");if(!i)throw Object.assign(new Error("stage-ai-failure-message requires a non-empty turn_id"),{statusCode:400});if(!u)throw Object.assign(new Error("stage-ai-failure-message requires a non-empty failure"),{statusCode:400});return a$1.manageAddChatEntryAndAnyAttachments({cardId:a(e,"card_id"),role:"system",text:u,turn:i})},"manage.upsert-card":e=>a$1.manageUpsertCard({cardId:a(e,"card_id"),candidateCardContent:c(e,"candidate_card_content")}),"manage.remove-card":e=>a$1.manageRemoveCard({cardId:a(e,"card_id")})}}function me(a$1){return {"webhook.process-accumulated":()=>a$1.webhookProcessAccumulated(),"webhook.source-fetch-done":e=>a$1.webhookSourceFetchDone({token:a(e,"token"),ref:a(e,"ref")}),"webhook.source-fetch-failed":e=>a$1.webhookSourceFetchFailed({token:a(e,"token"),reason:a(e,"reason")})}}function fe(a$1){let{boardId:e,uploadCardFile:i,getMcpFacade:u,controlplane:f$1}=a$1;function R(r,g){let b=a(r,"board_id");if(!b)throw Object.assign(new Error(`${g} requires board_id`),{statusCode:400});if(b!==e)throw Object.assign(new Error(`Unknown board_id: ${b}`),{statusCode:400})}function _(r,g){let{cardId:b}=f$1.requireCardArgs(r),y=a(r,"turn_id");return R(r,g),u().manageAddChatAttachment({cardId:b,role:a(r,"role")||"user",...y?{turn:y}:{},files:[{file_name:a(r,"file_name"),content_type:a(r,"content_type")||"application/octet-stream",...typeof r.text=="string"?{text:r.text}:{},...typeof r.base64=="string"?{base64:r.base64}:{},...Array.isArray(r.bytes)?{bytes:r.bytes}:{}}]})}return {"list-runtime-cards":r=>(R(r,"list-runtime-cards"),u().listRuntimeCards()),"sse.subscribe-chat":r=>f$1.subscribeChat(r),"sse.unsubscribe-chat":r=>f$1.unsubscribeChat(r),"sse.watch-channel":r=>f$1.watchChannel(r,true),"sse.unwatch-channel":r=>f$1.watchChannel(r,false),"getstate.is-chat-processing":r=>f$1.getChatProcessing(r),"setstate.chat-processing-started":r=>f$1.setChatProcessing(r,true),"setstate.chat-processing-done":r=>f$1.setChatProcessing(r,false),"getstate.card-private":r=>f$1.getCardMeta(r),"setstate.card-private":r=>f$1.setCardMeta(r),"manage.upload-card-file":r=>{let g=a(r,"card_id"),b=a(r,"file_name"),y=a(r,"content_type")||"application/octet-stream",c=f(r);if(R(r,"manage.upload-card-file"),!g)throw Object.assign(new Error("manage.upload-card-file requires card_id"),{statusCode:400});if(!b)throw Object.assign(new Error("manage.upload-card-file requires file_name"),{statusCode:400});if(!c)throw Object.assign(new Error("manage.upload-card-file requires args.bytes, args.text, or args.base64"),{statusCode:400});return i(g,b,y,c,{inChat:false})},"manage.add-chat-attachment":r=>_(r,"manage.add-chat-attachment"),"manage.add-chat-attachement":r=>_(r,"manage.add-chat-attachement"),"manage.add-chat-entry-and-any-attachments":r=>{let{cardId:g}=f$1.requireCardArgs(r),b=a(r,"role")||"user",y=a(r,"turn_id");return R(r,"manage.add-chat-entry-and-any-attachments"),u().manageAddChatEntryAndAnyAttachments({cardId:g,role:b,...typeof r.text=="string"?{text:r.text}:{},...y?{turn:y}:{},...Array.isArray(r.files)?{files:r.files}:{}})},"manage.patch-card":r=>{let{cardId:g}=f$1.requireCardArgs(r);return R(r,"manage.patch-card"),u().managePatchCard({cardId:g,patch:c(r,"patch")},{allowControlplaneOnlyCards:true})},"manage.upsert-card":r=>{let{cardId:g}=f$1.requireCardArgs(r);return R(r,"manage.upsert-card"),u().manageUpsertCard({cardId:g,candidateCardContent:c(r,"candidate_card_content")},{allowControlplaneOnlyCards:true})},"manage.remove-card":r=>{let{cardId:g}=f$1.requireCardArgs(r);return R(r,"manage.remove-card"),u().manageRemoveCard({cardId:g},{allowControlplaneOnlyCards:true})},"manage.admin-read-card":async r=>{let{cardId:g}=f$1.requireCardArgs(r);return {status:"success",data:{cards:await u().adminReadCard({cardId:g})}}},"manage.admin-upsert-card":r=>{let g=a(r,"board_id"),b=a(r,"card_id");if(!g)throw Object.assign(new Error("manage.admin-upsert-card requires board_id"),{statusCode:400});if(!b)throw Object.assign(new Error("manage.admin-upsert-card requires card_id"),{statusCode:400});if(g!==e)throw Object.assign(new Error(`Unknown board_id: ${g}`),{statusCode:400});return u().adminUpsertCard({cardId:b,candidateCardContent:c(r,"candidate_card_content")})}}}function ye(a){let{boardContexts:e,cardOwnerIndex:i,cardContextForCard:u,readStatusSnapshot:f,readDataObjectsByToken:R,readCardRuntimeArtifacts:_,readCardFromStore:r,readCardDefinitions:g,processAccumulatedLaneInternal:b,reportSourceFetched:y,reportSourceFetchFailure:c,uploadCardFile:C,chatStorePublic:m,serverUrl:w,apiBasePath:S}=a;function l(){return e[0]??null}function h(){return {async status(){let n=await f();return n==null?{status:"fail",error:"Board status is unavailable"}:{status:"success",data:n}},async getOutputsDataObject(n){let t=n?.params?.key;return t?{status:"success",data:(await R())[t]}:{status:"fail",error:"getOutputsDataObject requires params.key"}},async getOutputsComputedValues(n){let t=n?.params?.key;return t?{status:"success",data:(await _())[t]?.computed_values}:{status:"fail",error:"getOutputsComputedValues requires params.key"}},async getOutputsFetchedSources(n){let t=n?.params?.key;if(!t)return {status:"fail",error:"getOutputsFetchedSources requires params.key"};let o=u(t)??l();return o?o.boardOps.getOutputsFetchedSources({params:{key:t}}):{status:"fail",error:"Board context is unavailable"}},async removeCard(n){let t=n?.params?.id;if(!t)return {status:"fail",error:"removeCard requires params.id"};let o=u(t)??l();return o?o.boardOps.removeCard({params:{id:t}}):{status:"fail",error:"Board context is unavailable"}},async upsertCard(n){let t=n?.params?.cardId;if(!t)return {status:"fail",error:"upsertCard requires params.cardId"};let o=u(t)??l();if(!o)return {status:"fail",error:"Board context is unavailable"};let k=await o.boardOps.upsertCard({params:{cardId:t,restart:n.params.restart===true}});if(k.status!=="success")return k;if(a$1(o.boardAdapter)){let P=await b(true);if(P.status!=="success")return P}return k}}}function I(){let n=()=>{let t=l();if(!t?.nonCore)throw new Error("Board non-core adapter is not configured for MCP preflight/discovery tools");return t.nonCore};return {describeTaskExecutorCapabilities(t){return n().describeTaskExecutorCapabilities(t)},validateCardPreflight(t){return n().validateCardPreflight(t)},evalCardCompute(t){return n().evalCardCompute(t)},probeSourcePreflight(t){return n().probeSourcePreflight(t)},runSourcePreflight(t){return n().runSourcePreflight(t)},simulateCardCycle(t){return n().simulateCardCycle(t)}}}function s(){return {async get(n){let t=typeof n.params?.id=="string"?n.params.id:void 0;if(t){let o=await r(t);return o?{status:"success",data:{cards:[o]}}:{status:"success",data:{cards:[]}}}return {status:"success",data:{cards:await g()}}},async set(n){let t=n.body;if(t==null)return {status:"fail",error:"set requires a body (card object or array of cards)"};let o=Array.isArray(t)?t:[t];for(let k of o){let P=k,A=typeof P.id=="string"?P.id:"";if(!A)return {status:"fail",error:"each card must have a string `id` field"};let D=i.get(A)??0,L=e[D]??l();if(!L)return {status:"fail",error:"Board context is unavailable"};let T=await L.cardStoreOps.set({body:P});if(T.status!=="success")return T;i.set(A,D);}return {status:"success",data:{count:o.length}}},async del(n){let t=[n.params?.id,...n.body?.ids??[]].filter(o=>typeof o=="string"&&!!o);if(t.length===0)return {status:"fail",error:"del requires body.ids (string[]) or params.id"};for(let o of t){let k=u(o)??l();if(!k)return {status:"fail",error:"Board context is unavailable"};let P=await k.cardStoreOps.del({params:{id:o}});if(P.status!=="success")return P;i.delete(o);}return {status:"success",data:{count:t.length}}},async patch(n){let t=typeof n.params?.id=="string"?n.params.id:void 0,o=typeof n.params?.path=="string"?n.params.path:void 0;if(!t||!o)return {status:"fail",error:"patch requires params.id and params.path"};let k=u(t)??l();return k?k.cardStoreOps.patch(n):{status:"fail",error:"Board context is unavailable"}},async appendFiles(n){let t=typeof n.params?.id=="string"?n.params.id:void 0;if(!t)return {status:"fail",error:"appendFiles requires params.id"};let o=u(t)??l();return o?o.cardStoreOps.appendFiles(n):{status:"fail",error:"Board context is unavailable"}}}}function d(){return a$2({board:h(),nonCore:I(),cardStore:s(),chatStore:m,processAccumulated:()=>b(true),sourceFetchDone:({token:n,ref:t})=>y(n,t),sourceFetchFailed:({token:n,reason:t})=>c(n,t),uploadCardFile({cardId:n,fileName:t,contentType:o,bytes:k,suppressChatRecordWrite:P}){return C(n,t,o,k,{inChat:true,...P===true?{suppressChatRecordWrite:true}:{}})},buildFileDownloadUrl({cardId:n,fileIdx:t,storedName:o}){let k=`${w||""}${S}/cards/${encodeURIComponent(n)}/files/${t}`;return o?`${k}?sn=${encodeURIComponent(o)}`:k},readFetchedSourceJsonByRef({cardId:n,ref:t}){let o=u(n)??l();if(!o||a$1(o.boardAdapter))return null;let A=o.boardAdapter.resolveBlob(b$1(t)).trim();return A?JSON.parse(A):null}})}return {mcpBoardFacade:h,mcpNonCoreFacade:I,mcpCardStoreFacade:s,createMcpFacade:d}}export{J as a,X as b,Q as c,z as d,Y as e,j as f,N as g,q as h,E as i,oe as j,ie as k,ce as l,pe as m,me as n,fe as o,ye as p};//# sourceMappingURL=chunk-CZ6ZFWFT.js.map
2
- //# sourceMappingURL=chunk-CZ6ZFWFT.js.map
@@ -1,3 +0,0 @@
1
- import {b as b$1,c as c$1}from'./chunk-ANKA7HEJ.js';import {a,b,c}from'./chunk-44L64VQ2.js';import {r,a as a$1,p,q,u}from'./chunk-VGT3TRQG.js';import {a as a$3}from'./chunk-ATOQP3BD.js';import {a as a$2}from'./chunk-7QNEV5S3.js';import {e,f}from'./chunk-UGB7PC4P.js';function St(e){return typeof e=="string"&&e.trim().length>0}function kt(e,t){if(!e||typeof e!="object")throw new Error(`${t}: adapter.selfRef is required`);if(!St(e.howToRun))throw new Error(`${t}: adapter.selfRef.howToRun is required`);if(!St(e.whatToRun))throw new Error(`${t}: adapter.selfRef.whatToRun is required`)}function Rt(e,t){if(!e||typeof e!="object")throw new Error(`${t}: adapter.callbackTransport is required`);if(typeof e.createCallback!="function")throw new Error(`${t}: adapter.callbackTransport.createCallback is required`)}function or(e,t="callbackTransport"){return {createCallback(r){let s=e();return kt(s,t),{token:r,via:s}}}}function Ue(e){return or(()=>e,"createStaticExecutionRefCallbackTransport")}function br(e){return Ue({meta:"board-live-cards",howToRun:"http:post",whatToRun:a({kind:"http-url",value:String(e||"").trim()})})}function wr(e){return Ue({meta:"board-live-cards",howToRun:"in-process-loop",whatToRun:a({kind:"in-process-loop",value:String(e||"").trim()})})}function vr(e){let t=typeof e=="string"?{notifyChannel:e}:e??{},r={};return t.notifyChannel&&(r.notifyChannel=t.notifyChannel),t.boardRuntimeStoreRef&&(r.boardRuntimeStoreRef=t.boardRuntimeStoreRef),t.queueStoreRef&&(r.queueStoreRef=t.queueStoreRef),Ue({meta:"board-live-cards",howToRun:"built-in",whatToRun:a({kind:"built-in",value:"board-live-cards"}),...Object.keys(r).length>0?{extra:r}:{}})}function Oe(e){return typeof e=="object"&&e!==null&&"then"in e&&typeof e.then=="function"}function Ye(e,t){return Oe(e)?e.then(t):t(e)}function yt(e,t){let r={...e};for(let s of t.deleteKeys)delete r[s];return {...r,...t.shallowMerge}}function Tr(e,t){return {readValues(s){let o=e(s);return Ye(o.listKeys(),a=>{let c=[...a].sort();if(c.length===0)return {version:null,values:{}};let d={},S=null;for(let y of c){let V=o.read(y);Oe(V)?S=(S??Promise.resolve()).then(async()=>{d[y]=await V;}):d[y]=V;}return S?S.then(()=>({version:t(d),values:d})):{version:t(d),values:d}})},writeValues(s,o,a){let c=e(s),d=null;for(let S of a){let y=c.delete(S);Oe(y)&&(d=(d??Promise.resolve()).then(()=>y).then(()=>{}));}for(let[S,y]of Object.entries(o)){let V=c.write(S,y);Oe(V)&&(d=(d??Promise.resolve()).then(()=>V).then(()=>{}));}return d?d.then(()=>t(o)):t(o)}}}function Ct(e,t){return {readSnapshot(r){return e.readValues(r)},commitSnapshot(r,s){if(s.schemaVersion!==t)throw new Error(`Unsupported snapshot schema version: ${s.schemaVersion}`);return Ye(e.readValues(r),o=>{if(o.version!==s.expectedVersion)return {ok:false,reason:"version-mismatch",currentVersion:o.version};let a=yt(o.values,s);return Ye(e.writeValues(r,a,s.deleteKeys),c=>({ok:true,newVersion:c}))})}}}function ht(e,t){if(!t)return e;let r=e.findIndex(s=>s.id===t);return r===-1?e:e.slice(r+1)}function bt(e){return {readEntriesAfterCursor(t){let r=ht(e.readAllEntries(),t);return r.length===0?{events:[],newCursor:t}:{events:r.map(s=>s.event),newCursor:r[r.length-1].id}},pendingCount(t){return ht(e.readAllEntries(),t).length},appendEvent(t){e.appendEntry({id:e.generateId(),event:t});}}}function Er(e){return {appendEvent(t){return e.append(t).then(()=>{})},async readEntriesAfterCursor(t){let r=await e.readAfter(t||null);return {events:r.entries.map(s=>s.payload),newCursor:r.newCursor??t}}}}function Be(e){return typeof e=="object"&&e!==null&&"then"in e&&typeof e.then=="function"}function ce(e,t){return Be(e)?e.then(t):t(e)}function ze(e,t){let r=null;for(let s of e){if(r){r=r.then(()=>t(s)).then(()=>{});continue}let o=t(s);Be(o)&&(r=Promise.resolve(o).then(()=>{}));}return r??void 0}function sr(e){if(e==null)return null;let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return t}}function ar(e,t){let r=e.match(t);return r?r[1]:null}function wt(e,t,r){let s={},o=ze(e,a=>{let c=r(a);if(c)return ce(t(a),d=>{s[c]=d;})});return Be(o)?o.then(()=>s):s}function vt(e,t){return {readSourceData(r,s){return ce(e.read(`${r}/${s}`),sr)},ingestSourceDataStaged(r,s,o,a){return ce(t(o),c=>e.write(`${r}/.staged/${a}/${s}`,c))},commitSourceData(r,s,o){let a=`${r}/.staged/${o}/${s}`,c=`${r}/${s}`;return e.renameKey(a,c)},hasSource(r,s){return e.exists(`${r}/${s}`)},listSources(r){return ce(e.listKeys(`${r}/`),s=>s.filter(o=>!o.includes("/.staged/")).map(o=>o.slice(`${r}/`.length)))}}}function ir(e,t){let r=(s,o)=>{try{let a=o(s);return Be(a)?a.catch(c=>t(s,c instanceof Error?c.message:String(c))):void 0}catch(a){try{return t(s,a instanceof Error?a.message:String(a))}catch{return}}};return {appendEntries(s,o){if(!(!s||o.length===0))return ce(e.read(s),a=>e.write(s,[...a??[],...o]))},dispatchEntriesForJournalId(s,o){if(s)return ce(e.read(s),a=>{let c=a;if(!(!c||c.length===0))return ce(ze(c,d=>r(d,o)),()=>e.delete(s))})}}}function ur(e,t,r){return {readRuntime(s){return ce(e.read(t(s)),o=>o??r())},writeRuntime(s,o){return e.write(t(s),o)}}}function xt(e){return {writeComputedValues(t,r){return e.write(`cards/${t}/computed_values`,r)},readComputedValues(t){return e.read(`cards/${t}/computed_values`)},readAllComputedValues(){return ce(e.listKeys("cards/"),t=>wt(t,r=>e.read(r),r=>ar(r,/^cards\/([^/]+)\/computed_values$/)))},writeDataObjects(t){return ze(Object.entries(t),([r,s])=>{if(r)return s===void 0?e.delete(`data-objects/${r}`):e.write(`data-objects/${r}`,s)})},readDataObject(t){return e.read(`data-objects/${t}`)},readAllDataObjects(){return ce(e.listKeys("data-objects/"),t=>wt(t,r=>e.read(r),r=>r.slice(13)))},writeStatusSnapshot(t){return e.write("status",t)},readStatusSnapshot(){return e.read("status")}}}var fe="sys_keys_board_state",ae="__sys_keys_board_state_init";function It(e){if(!e||typeof e!="object"||Array.isArray(e))return false;let t=e.__private;return !!t&&typeof t=="object"&&!Array.isArray(t)&&t.visible_controlplane_only===true}function dr(e){let t=e.filter(o=>!It(o)),r=[...new Set(t.map(o=>o.id).filter(o=>typeof o=="string"&&o.length>0))].sort(),s=[...new Set(t.flatMap(o=>Array.isArray(o.provides)?o.provides:[]).map(o=>o&&typeof o=="object"&&!Array.isArray(o)?o.bindTo:void 0).filter(o=>typeof o=="string"&&o.length>0&&o!==fe))].sort();return {card_ids:r,data_object_keys:s}}function cr(e,t){let r=e.filter(a=>!It(a)),s=[...new Set(r.map(a=>a.id).filter(a=>typeof a=="string"&&a.length>0))].sort(),o=[...new Set(Object.entries(t).filter(([a])=>a!==ae).flatMap(([,a])=>Array.isArray(a.provides)?a.provides:[]).filter(a=>typeof a=="string"&&a.length>0&&a!==fe))].sort();return {card_ids:s,data_object_keys:o}}function Pe(){return {id:ae,meta:{title:"System Keys Board State",synthetic:true},provides:[{bindTo:fe,ref:`card_data.${fe}`}],card_data:{[fe]:{card_ids:[],data_object_keys:[]}},__private:{visible_controlplane_only:true}}}function Qe(e,t){function r(){return e.readIndex()??{}}function s(o,a,c){let d=String(a||"").split(".").filter(Boolean);if(d.length===0)return c&&typeof c=="object"&&!Array.isArray(c)?c:{value:c};let S={...o},y=S;for(let V=0;V<d.length-1;V++){let z=d[V],Q=y[z],te=Q&&typeof Q=="object"&&!Array.isArray(Q)?{...Q}:{};y[z]=te,y=te;}return y[d[d.length-1]]=c,S}return {readCard(o){let a=r()[o];return !a||!e.cardExists(a.key)?null:e.readCard(a.key)},readCardKey(o){return r()[o]?.key??null},readAllCards(){let o=[];for(let[a,c]of Object.entries(r())){if(!e.cardExists(c.key))continue;let d=e.readCard(c.key);d?o.push(d):t?.(`[card-store] could not read card "${a}" at key "${c.key}"`);}return o},readChecksumIndex(){let o={};for(let[a,c]of Object.entries(r()))o[a]=c.checksum;return o},changedSince(o){let a=r(),c=[];for(let[d,S]of Object.entries(a))o[d]!==S.checksum&&c.push(d);for(let d of Object.keys(o))a[d]||c.push(d);return c},validateUpsert(o,a){let c=r(),d=c[o],S=Object.entries(c).find(([,y])=>y.key===a);return d&&d.key!==a?{ok:false,error:`Card id "${o}" is already mapped to key "${d.key}", cannot remap to "${a}"`}:S&&S[0]!==o?{ok:false,error:`Key "${a}" is already mapped to card id "${S[0]}", cannot remap to "${o}"`}:{ok:true}},writeCard(o,a,c){let d=r(),S=c??d[o]?.key??e.defaultCardKey(o),y=e.writeCard(S,a);d[o]={key:S,checksum:y,updatedAt:new Date().toISOString()},e.writeIndex(d);},patchCard(o,a,c){let d=r(),S=d[o];if(!S||!e.cardExists(S.key))throw new Error(`card "${o}" not found`);let y=e.readCard(S.key);if(!y||typeof y!="object"||Array.isArray(y))throw new Error(`card "${o}" is not patchable`);let V=s(y,a,c),z=e.writeCard(S.key,V);d[o]={key:S.key,checksum:z,updatedAt:new Date().toISOString()},e.writeIndex(d);},removeCard(o){let a=r(),c=a[o];c&&(e.removeCard(c.key),delete a[o],e.writeIndex(a));},readIndex(){return r()}}}function qe(e,t){return vt(e,t)}function _t(e){return bt(e)}var Ve="v1",ye="board/graph",Ft="board/lastJournalProcessedId";function Vr(e){return `cards/${e}/runtime`}function Ot(e){return Ct(e,Ve)}function je(e){function t(r){let s=e.read(r);return s==null?null:typeof s=="string"?s:JSON.stringify(s)}return {readTaskExecutorRef(){let r=t("task-executor");if(r?.trim())return c$1(r.trim())},writeTaskExecutorRef(r){e.write("task-executor",b$1(r));},readChatHandlerFlow(){return e.read("chat-handler-flow")},writeChatHandlerFlow(r){e.write("chat-handler-flow",r);},readBoardRuntimeStoreRef(){return t("board-runtime-store-ref")},writeBoardRuntimeStoreRef(r){e.write("board-runtime-store-ref",r);},readCardStoreRef(){return t("card-store-ref")},writeCardStoreRef(r){e.write("card-store-ref",r);},readOutputsStoreRef(){return t("outputs-store-ref")},writeOutputsStoreRef(r){e.write("outputs-store-ref",r);},readQueueStoreRef(){return t("queue-store-ref")},writeQueueStoreRef(r){e.write("queue-store-ref",r);},readScratchStoreRef(){return t("scratch-store-ref")},writeScratchStoreRef(r){e.write("scratch-store-ref",r);},readChatStoreRef(){return t("chat-store-ref")},writeChatStoreRef(r){e.write("chat-store-ref",r);},readArtifactsStoreRef(){return t("artifacts-store-ref")},writeArtifactsStoreRef(r){e.write("artifacts-store-ref",r);},readFetchedSourcesStoreRef(){return t("fetched-sources-store-ref")},writeFetchedSourcesStoreRef(r){e.write("fetched-sources-store-ref",r);}}}function Bt(e){return xt(e)}function Tt(e){return e?{lastRequestedToken:e.lastRequestedToken,lastCompletedToken:e.lastCompletedToken,lastCompletionStatus:e.lastCompletionStatus??(e.lastCompletedToken?"success":"not-started"),queueRequestedToken:e.queueRequestedToken}:{lastCompletionStatus:"not-started"}}function lr(e){return e?.lastRequestedToken?e.lastCompletedToken!==e.lastRequestedToken:false}function Et(e,t){return e?.lastRequestedToken?lr(e)?"in-flight":!e.lastCompletedToken||e.lastCompletedToken<t?"dispatch":"idle":"dispatch"}function fr(e,t){return {...e,lastCompletedToken:t,lastCompletionStatus:"success"}}function At(e,t){return {...e,lastCompletedToken:t,lastCompletionStatus:"failure"}}function Ke(e){let t=e.cards.filter(d=>d.name!==ae);if(t.length===e.cards.length)return e;let r=new Set;for(let d of t)for(let S of d.requires)r.add(S);let s=t.map(d=>({name:d.name,fanOut:d.unblocks.length})).sort((d,S)=>S.fanOut-d.fanOut||d.name.localeCompare(S.name)),o=s.length>0?s[0]:{name:null,fanOut:0},a=d=>t.filter(S=>S.status===d).length,c=t.filter(d=>d.requires.length===0&&d.unblocks.length===0).length;return {...e,summary:{...e.summary,card_count:t.length,completed:a("completed"),eligible:a("eligible"),pending:a("pending"),blocked:a("blocked"),unresolved:a("unresolved"),failed:a("failed"),in_progress:a("in-progress"),orphan_cards:c,topology:{edge_count:r.size,max_fan_out_card:o.name,max_fan_out:o.fanOut}},cards:t}}function Pt(e){let{[fe]:t,...r}=e;return r}function De(e,t){let r$1=t.state.tasks,s=t.config.tasks,o=Object.keys(r$1),a=r(t),c={completed:0,failed:0,in_progress:0,pending:0,blocked:0,unresolved:0},d=new Map;for(let A of a.pending)d.set(A.taskName,A.waitingOn);for(let A of a.unresolved)d.set(A.taskName,A.missingTokens);for(let A of a.blocked)d.set(A.taskName,A.failedTokens);let S=new Map;for(let[A,k]of Object.entries(s))for(let H of k.requires??[]){let G=S.get(H)??[];G.push(A),S.set(H,G);}let y=o.sort().map(A=>{let k=r$1[A],H=s[A]??{requires:[],provides:[]};k.status==="completed"?c.completed+=1:k.status==="failed"?c.failed+=1:k.status==="in-progress"&&(c.in_progress+=1);let G=H.requires??[],g=H.provides??[],u=Object.keys(k.data??{}).sort(),p=G.filter(P=>t.state.availableOutputs.includes(P)),v=G.filter(P=>!t.state.availableOutputs.includes(P)),I=d.get(A)??v,T=new Set;for(let P of g)for(let L of S.get(P)??[])L!==A&&T.add(L);let x=k.failedAt,D=k.error?{message:k.error,code:"TASK_FAILED",at:x,source:"task-runtime"}:void 0;return {name:A,status:k.status,error:D,requires:G,requires_satisfied:p,requires_missing:v,provides_declared:g,provides_runtime:u,blocked_by:I,unblocks:Array.from(T).sort(),runtime:{attempt_count:k.executionCount??0,restart_count:k.retryCount??0,in_progress_since:k.status==="in-progress"?k.startedAt??null:null,last_transition_at:k.lastUpdated??null,last_completed_at:k.completedAt??null,last_restarted_at:k.startedAt??null,status_age_ms:k.lastUpdated?0:null}}});c.pending=a.pending.length,c.blocked=a.blocked.length,c.unresolved=a.unresolved.length;let V=y.map(A=>({name:A.name,fanOut:A.unblocks.length})).sort((A,k)=>k.fanOut-A.fanOut||A.name.localeCompare(k.name)),z=V.length>0?V[0]:{name:null,fanOut:0},Q=new Set;for(let A of Object.values(s))for(let k of A.requires??[])Q.add(k);let te=0;for(let[A,k]of Object.entries(s)){let H=(k.requires??[]).length===0,g=(k.provides??[]).some(u=>(S.get(u)??[]).some(p=>p!==A));H&&!g&&(te+=1);}return {schema_version:"v1",meta:{board:{path:e}},summary:{card_count:o.length,completed:c.completed,eligible:a.eligible.length,pending:c.pending,blocked:c.blocked,unresolved:c.unresolved,failed:c.failed,in_progress:c.in_progress,orphan_cards:te,topology:{edge_count:Array.from(Q).length,max_fan_out_card:z.name,max_fan_out:z.fanOut}},cards:y}}function mr(){return new Date().toISOString()}function qt(e,t,r,s,o,a$1,c){return async d=>{let S=[],y=r.cardStore.readCard(d.nodeId);if(!y)return "task-initiate-failure";let V=y.id;if(V===ae){let C=r.activeTaskConfigs?.(),b={[fe]:C?cr(Object.keys(C).filter(_=>_!==ae).map(_=>r.cardStore.readCard(_)).filter(_=>!!_),C):dr(r.cardStore.readAllCards())};return (c??r.outputStore.writeDataObjects.bind(r.outputStore))(b),s(d.nodeId,b),"task-initiated"}let z=y.card_data??{},Q=y.source_defs??[],te=Q,A=r.cardRuntimeStore.readRuntime(V),k=false,H=()=>{k&&(r.cardRuntimeStore.writeRuntime(V,A),k=false);},G=C=>Tt(A._sources[C]),g=(C,b)=>{A._sources[C]=Tt(b),k=true;},u=d.taskState?.executionCount??0;if(A._lastExecutionCount!==u&&(A._sources={},A._lastExecutionCount=u,k=true),d.update){let C=d.update,b=C.outputFile;if(b){let _=G(b);if(C.failure){let $=C.rqt??_.lastRequestedToken??_.queueRequestedToken;$&&g(b,At(_,$));}else {let $=C.rqt;if(!_.lastCompletedToken||$>_.lastCompletedToken){let re=typeof C.deliveryToken=="string"?C.deliveryToken:void 0,K=false;re&&(K=r.fetchedSourcesStore.commitSourceData(V,b,re)),K?g(b,fr(_,$)):g(b,At(_,$));}}H();}}let v={};for(let C of Q)if(C.outputFile){let b=r.fetchedSourcesStore.readSourceData(V,C.outputFile);b!==null&&(v[C.bindTo]=b);}let I={};for(let[C,b]of Object.entries(d.state??{}))if(b!==null&&typeof b=="object"&&!Array.isArray(b)){let _=b[C];I[C]=_!==void 0?_:b;}else I[C]=b;let T={id:V,card_data:{...z},requires:I,source_defs:Q,compute:y.compute};T._sourcesData=v,y.compute&&a$3.runSync(T,{sourcesData:v}),(a$1??r.outputStore.writeComputedValues.bind(r.outputStore))(V,T.computed_values??{});let x={...y},D=a$3.enrichSourcesSync(Array.isArray(y.source_defs)?y.source_defs:void 0,{card_data:y.card_data,requires:I}),P=e.value;x.source_defs=Array.isArray(D)?D.map(C=>({...C,boardDir:typeof C.boardDir=="string"&&C.boardDir?C.boardDir:P})):D;let L=mr(),M=d.update?void 0:L,oe=te.filter(C=>{let b=C.outputFile;if(typeof b!="string"||!b)return true;let _=G(b);M&&(_={..._,queueRequestedToken:M},g(b,_));let $=_.queueRequestedToken??_.lastRequestedToken??L,re=Et(_,$);return re==="in-flight"?false:re==="dispatch"});if(H(),oe.length>0){let C=false,b=L;for(let _ of oe){let $=_.outputFile;if(typeof $!="string"||!$)continue;let re=G($),K=re.queueRequestedToken??L;g($,{...re,lastRequestedToken:K}),b=K,C=true;}return C&&H(),C&&(S.push({taskKind:"source-fetch",payload:{boardRef:a(e),enrichedCard:x,callbackToken:d.callbackToken,rqt:b}}),r.executionRequestStore.appendEntries(t,S)),"task-initiated"}if(te.some(C=>{let b=C.outputFile;if(typeof b!="string"||!b)return false;let _=G(b),$=_.queueRequestedToken??_.lastRequestedToken??L;return Et(_,$)==="in-flight"}))return "task-initiated";let ge=y.provides??[],ie={};for(let{bindTo:C,ref:b}of ge)ie[C]=a$3.resolve(T,b);return (c??r.outputStore.writeDataObjects.bind(r.outputStore))(ie),s(d.nodeId,ie),S.length>0&&r.executionRequestStore.appendEntries(t,S),"task-initiated"}}var Xe={settings:{completion:"manual",refreshStrategy:"data-changed"},tasks:{}};function Vt(e){return {[ye]:e.graph,[Ft]:e.lastDrainedJournalId,board:{runtimeByCardId:e.runtimeByCardId}}}function jt(e){let t=e[ye],r=e[Ft],o=e.board?.runtimeByCardId;if(!t||typeof t!="object")throw new Error(`State snapshot is missing required key: ${ye}`);return {graph:t,lastDrainedJournalId:typeof r=="string"?r:"",runtimeByCardId:o&&typeof o=="object"?o:{}}}function Kt(e){let t=e.requires;return {provides:e.provides?.map(s=>s.bindTo)??[],taskHandlers:["card-handler"],description:e.meta?.title??e.id,...t&&t.length>0?{requires:t}:{}}}function E(e){return e!==void 0?{status:"success",data:e}:{status:"success"}}function h(e){return {status:"fail",error:e}}function F(e){return {status:"error",error:e instanceof Error?e.message:String(e)}}function pr(e){let t=new TextEncoder().encode(e),r=Array.from(t,s=>String.fromCharCode(s)).join("");return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Lt(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=t+"=".repeat((4-t.length%4)%4),s=atob(r),o=Uint8Array.from(s,a=>a.charCodeAt(0));return new TextDecoder().decode(o)}function Ne(e){try{let t=JSON.parse(Lt(e));return typeof t?.t=="string"?{taskName:t.t}:null}catch{return null}}function Dt(e){return pr(JSON.stringify(e))}function Nt(e){try{let t=JSON.parse(Lt(e));return typeof t?.cbk=="string"&&typeof t?.cid=="string"&&typeof t?.b=="string"&&typeof t?.d=="string"?t:null}catch{return null}}function W(){return new Date().toISOString()}function gr(e){let t=new Map;return {appendEntries(r,s){if(!r||s.length===0)return;let o=t.get(r)??[];t.set(r,[...o,...s]);},dispatchEntriesForJournalId(r,s){if(!r)return;let o=t.get(r);if(!(!o||o.length===0)){for(let a of o)try{s(a);}catch(c){try{e(a,c instanceof Error?c.message:String(c));}catch{}}t.delete(r);}}}}function Gr(e$1,t,r={}){Rt(t.callbackTransport,"createBoardLiveCardsPublic");let s=t.callbackTransport,o=t.onWarn??(()=>{}),a$3=a(e$1),c$1=r.boardRuntimeStoreRef,d=r.scratchStoreRef,S=r.taskExecutorRef,y=r.chatHandlerFlow,V=r.emitNotification??(i=>{if(!t.publishBoardChangeNotifications)return;let n=i.kind==="notification-batch"?i.notifications:[i];return t.publishBoardChangeNotifications(n)});function z(){if(!c$1)throw new Error(`Board at ${e$1.value} has no board runtime store configured. Pass boardRuntimeStoreRef at construction or init.`);return c$1}function Q(i){if(i.length!==0)try{let n=e(i),l=f({kind:"notification-batch",notifications:n}),m=V(l);m&&typeof m.catch=="function"&&m.catch(w=>o(`[board-live-cards-public] emitNotification failed: ${w instanceof Error?w.message:String(w)}`));}catch(n){o(`[board-live-cards-public] emitNotification failed: ${n instanceof Error?n.message:String(n)}`);}}function te(){let i=k().readCardStoreRef();if(!i)throw new Error(`Board at ${e$1.value} has no card store configured. Run: init --base-ref <ref> --store-ref <b64-ref>`);let n=t.kvStorageForRef(i);return {readIndex(){return n.read("_index")},writeIndex(l){n.write("_index",l);},readCard(l){return n.read(l)},writeCard(l,m){return n.write(l,m),t.hashFn(m)},removeCard(l){n.delete(l);},cardExists(l){return n.read(l)!==null},defaultCardKey(l){return l}}}let A={readValues(i){let n=t.kvStorageForRef(z()),l=n.listKeys().sort();if(l.length===0)return {version:null,values:{}};let m={};for(let w of l)m[w]=n.read(w);return {version:t.hashFn(m),values:m}},writeValues(i,n,l){let m=t.kvStorageForRef(z());for(let w of l)m.delete(w);for(let[w,j]of Object.entries(n))m.write(w,j);return t.hashFn(n)}},k=()=>je(t.kvStorageForRef(z())),H=()=>Ot(A),G=()=>_t(t.journalAdapterForRef(z())),g=()=>Qe(te(),o),u$1=()=>{let i=k().readOutputsStoreRef();if(!i)throw new Error(`Board at ${e$1.value} has no outputs store configured. Run: init --outputs-store-ref <b64-ref>`);return Bt(t.kvStorageForRef(i))};function p$1(){return S??k().readTaskExecutorRef()}function v(){return !!H().readSnapshot(e$1.value).values[ye]}function I(){let i=H().readSnapshot(e$1.value);if(!i.values[ye])throw new Error(`Board not initialized at ${e$1.value}`);return jt(i.values)}function T(i,n){let l=H().commitSnapshot(e$1.value,{schemaVersion:Ve,expectedVersion:n,commitId:t.genId(),committedAt:W(),deleteKeys:[],shallowMerge:Vt(i)});if(!l.ok)throw new Error(`Snapshot commit failed (version mismatch): expected=${n??"null"} current=${l.currentVersion??"null"}`)}function x(i){G().appendEvent(i);}async function D(){let n=gr((f,R)=>{let B=f.payload,N=(B?.enrichedCard??{}).id??B?.cardId??"unknown";x({type:"task-failed",taskName:N,error:R,timestamp:W()});}),l=I(),m=q(l.graph),{events:w,newCursor:j}=G().readEntriesAfterCursor(l.lastDrainedJournalId),O=K(),q$1=qe(O,f=>t.resolveBlob(f)),J={...l.runtimeByCardId},X=new Map,ke={readRuntime(f){return X.get(f)??J[f]??{_sources:{}}},writeRuntime(f,R){X.set(f,R),J[f]=R;}},Re=[],ne=new Map,Ce={readSourceData(f,R){let B=`${f}/${R}`;return ne.has(B)?ne.get(B):q$1.readSourceData(f,R)},ingestSourceDataStaged(f,R,B,de){q$1.ingestSourceDataStaged(f,R,B,de);},commitSourceData(f,R,B){let de=`${f}/.staged/${B}/${R}`,N=O.read(de);if(N==null){let Y=O.keyRef?.(de);Y&&(N=t.resolveBlob(Y));}if(N==null)return false;let se=`${f}/${R}`,me=N.trim();try{ne.set(se,JSON.parse(me));}catch{ne.set(se,me);}return Re.push({cardId:f,outputFile:R,deliveryToken:B}),true},hasSource(f,R){let B=`${f}/${R}`;return ne.has(B)?true:q$1.hasSource(f,R)},listSources(f){let R=q$1.listSources(f),B=new Set;for(let N of ne.keys())N.startsWith(`${f}/`)&&B.add(N.slice(`${f}/`.length));let de=new Set([...R,...B]);return Array.from(de)}},xe=()=>m.config.tasks,he={cardStore:g(),cardRuntimeStore:ke,fetchedSourcesStore:Ce,outputStore:u$1(),executionRequestStore:n,activeTaskConfigs:()=>xe()},Te=[],Le=[],$e=[],Je=new Map,rt=new Set,tr=(f,R)=>{Te.push({type:"task-completed",taskName:f,data:R,timestamp:W()});},Me=(f,R)=>{x({type:"task-failed",taskName:f,error:R,timestamp:W()});},Ee=u(m,{handlers:{"card-handler":qt(e$1,j,he,tr,Me,(f,R)=>{Le.push({cardId:f,values:R});},f=>{$e.push(f);})},onNodeRemoved:f=>{Je.delete(f),X.delete(f),delete J[f],rt.add(f);}});for(xe=()=>Ee.getState().config.tasks,Te=w;Te.length>0;){let f=Te;Te=[];for(let R of f)if(R.type==="task-restart"){let B=he.cardStore.readCard(R.taskName);B&&Je.set(R.taskName,B);}Ee.pushAll(f),await Ee.waitForHandlers();}let nt=Ee.getState();await Ee.dispose({wait:true});let rr=H().readSnapshot(e$1.value).version;T({lastDrainedJournalId:j,graph:p(nt),runtimeByCardId:J},rr);for(let{cardId:f,values:R}of Le)he.outputStore.writeComputedValues(f,R);for(let f of $e)he.outputStore.writeDataObjects(f);for(let{cardId:f,outputFile:R,deliveryToken:B}of Re)q$1.commitSourceData(f,R,B);let Ae;try{Ae=Ke(De(a$3,nt)),he.outputStore.writeStatusSnapshot(Ae);}catch(f){o(`[board-live-cards-public] status publish failed: ${f instanceof Error?f.message:String(f)}`);}let be=[];for(let{cardId:f,values:R}of Le)be.push({kind:"computed_values",cardId:f,values:R});for(let f of $e)for(let[R,B]of Object.entries(f))R&&be.push({kind:"data_object",key:R,payload:B});for(let[f,R]of Je)be.push({kind:"card_refreshed",cardId:f,card:R});for(let f of rt)be.push({kind:"card_removed",cardId:f});Ae!==void 0&&be.push({kind:"status",status:Ae}),Q(be);let we=p$1()??{howToRun:"built-in",whatToRun:a({kind:"built-in",value:"source-cli-task-executor"})},ot=t.supportsDirectSourceOutput?.(we)===true;n.dispatchEntriesForJournalId(j,f=>{if(f.taskKind!=="source-fetch"){o(`[process-accumulated-events] unknown taskKind "${f.taskKind}" \u2014 skipping`);return}let R=f.payload,B=R.enrichedCard?.id??"unknown",de=R.enrichedCard?.source_defs??[];if(we.howToRun==="queue-storage"&&ot){try{let N=t.queueStorageForRef(P(),"task-executor"),se=typeof we.extra?.boardId=="string"?we.extra.boardId:void 0,me=[];for(let Y of de){if(!Y.outputFile){o(`[dispatch] source "${Y.bindTo}" has no outputFile \u2014 skipping`);continue}let Ie=t.genId(),_e=`${B}/.staged/${Ie}/${Y.outputFile}`,st=O.keyRef?.(_e);if(!st)continue;let at={ref:a(st),deliveryToken:Ie,outputFile:Y.outputFile,cardId:B},nr=Dt({cbk:R.callbackToken,rg:e$1.value,br:a(e$1),cid:B,b:Y.bindTo,d:Y.outputFile,cs:void 0,rqt:R.rqt,dt:at.deliveryToken});me.push({...se?{boardId:se}:{},ref:we,args:{source_def:Y,base_ref:a(e$1),callback:s.createCallback(nr),output:at}});}me.length>0&&N.enqueueMany(me);}catch(N){Me(B,N instanceof Error?N.message:String(N));}return}for(let N of de){if(!N.outputFile){o(`[dispatch] source "${N.bindTo}" has no outputFile \u2014 skipping`);continue}let se;if(ot){let Y=t.genId(),Ie=`${B}/.staged/${Y}/${N.outputFile}`,_e=O.keyRef?.(Ie);_e&&(se={ref:a(_e),deliveryToken:Y,outputFile:N.outputFile,cardId:B});}let me=Dt({cbk:R.callbackToken,rg:e$1.value,br:a(e$1),cid:B,b:N.bindTo,d:N.outputFile,cs:void 0,rqt:R.rqt,...se?{dt:se.deliveryToken}:{}});t.dispatchExecution(we,{source_def:N,base_ref:a(e$1),callback:s.createCallback(me),...se?{output:se}:{}}).catch(Y=>Me(B,Y instanceof Error?Y.message:String(Y)));}});}function P(){let i=k().readQueueStoreRef();if(!i)throw new Error(`Board at ${e$1.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);return i}function L(){t.queueStorageForRef(P(),"process-accumulated").enqueue({boardRef:a(e$1)}),t.requestProcessAccumulated?.();}function M(){let i=t.queueStorageForRef(P(),"process-accumulated");for(;;){let n=i.lease({max:64,visibilityMs:1e3});if(n.length<=0)return;for(let l of n)i.ack(l.id,l.leaseToken);if(n.length<64)return}}async function oe(){try{let i=()=>{let l=I(),{events:m}=G().readEntriesAfterCursor(l.lastDrainedJournalId);m.length<=0||L();},n=await c(t.lock,D,i);return E({ran:n!==!1})}catch(i){return F(i)}}function Z(){L();}function ge(i){try{let n=i.params?.cardStoreRef;if(!n)return h("init requires params.cardStoreRef \u2014 create a card store with card-store-cli and pass its ref here");if(c$1=i.params?.boardRuntimeStoreRef,!c$1)return h("init requires params.boardRuntimeStoreRef \u2014 pass the board runtime store ref here");if(!v()){let X=a$1(Xe);T({lastDrainedJournalId:"",graph:p(X),runtimeByCardId:{}},null);}let l=i.params?.outputsStoreRef;if(!l)return h("init requires params.outputsStoreRef \u2014 pass the outputs store ref here");let m=i.params?.queueStoreRef;if(!m)return h("init requires params.queueStoreRef \u2014 pass the queue store ref here");let w=i.params?.fetchedSourcesStoreRef;if(!w)return h("init requires params.fetchedSourcesStoreRef \u2014 pass the fetched sources store ref here");d=i.params?.scratchStoreRef;let j=i.params?.chatStoreRef;if(!j)return h("init requires params.chatStoreRef \u2014 pass the chat store ref here");let O=i.params?.artifactsStoreRef;if(!O)return h("init requires params.artifactsStoreRef \u2014 pass the artifacts store ref here");let q$1=k();q$1.writeBoardRuntimeStoreRef(c$1),q$1.writeCardStoreRef(n),q$1.writeOutputsStoreRef(l),q$1.writeQueueStoreRef(m),q$1.writeFetchedSourcesStoreRef(w),q$1.writeChatStoreRef(j),q$1.writeArtifactsStoreRef(O),g().writeCard(Pe().id,Pe());let J=ee({params:{cardId:Pe().id,restart:!0}});if(J.status!=="success")return J;try{u$1().writeStatusSnapshot(Ke(De(a$3,q(I().graph))));}catch{}return E()}catch(n){return F(n)}}function ie(i){try{let n=u$1().readStatusSnapshot();if(!n){n=Ke(De(a$3,q(I().graph)));try{u$1().writeStatusSnapshot(n);}catch{}}return E(n)}catch(n){return F(n)}}function C(i){try{let n=i.params?.id;if(!n)return h("removeCard requires params.id");try{t.kvStorage("card-upsert").delete(n);}catch{}return x({type:"task-removal",taskName:n,timestamp:W()}),n!==ae&&x({type:"task-restart",taskName:ae,timestamp:W()}),Z(),E()}catch(n){return F(n)}}function b$1(i){try{let n=i.params?.cardId;if(!n)return h("addCardFiles requires params.cardId");let l=a$2(g(),{emitNotification:V}).appendFiles({params:{id:n},body:i.body});return l.status!=="success"?l:E({cardId:n,files_added:l.data.files_added,notified:!0})}catch(n){return F(n)}}function _(i){try{let n=i.params?.id;return n?(x({type:"task-restart",taskName:n,timestamp:W()}),Z(),E()):h("retrigger requires params.id")}catch(n){return F(n)}}async function $(i){return M(),oe()}function re(){let i=k().readFetchedSourcesStoreRef();if(!i)throw new Error(`Board at ${e$1.value} has no fetched sources store configured. Run: init --fetched-sources-store-ref <b64-ref>`);return i}function K(){return t.blobStorageForRef(re())}function ee(i){try{let n=i.params?.cardId,l=i.params?.all,m=!!i.params?.restart;if(!n&&!l)return h("upsertCard requires --card-id <id> or --all");let w=l?g().readAllCards().map(O=>O.id):[n];for(let O of w)if(!g().readCard(O))return h(`Card "${O}" not found in board at ${e$1.value}`);let j=!1;for(let O of w){let q=g().readCard(O),J=Kt(q),X=t.hashFn(J),ke=t.kvStorage("card-upsert"),Re=ke.read(O),ne=Re?.taskConfigHash!==X;if(!(!ne&&!m)){if(ne){let Ce=Re?.blobRef??g().readCardKey(O)??O;x({type:"task-upsert",taskName:O,taskConfig:J,timestamp:W()}),ke.write(O,{blobRef:Ce,taskConfigHash:X,updatedAt:W()}),j=j||O!==ae;}m&&x({type:"task-restart",taskName:O,timestamp:W()});}}return j&&x({type:"task-restart",taskName:ae,timestamp:W()}),Z(),E()}catch(n){return F(n)}}function ue(i){try{let n=i.params?.token;if(!n)return h("taskFailed requires params.token");let l=i.params?.error??"unknown error",m=Ne(n);return m?(x({type:"task-failed",taskName:m.taskName,error:l,timestamp:W()}),Z(),E()):h("Invalid callback token")}catch(n){return F(n)}}function Se(i){try{let n=i.params?.token;if(!n)return h("taskProgress requires params.token");let m=(i.body??{}).update??{},w=Ne(n);return w?(x({type:"task-progress",taskName:w.taskName,update:m,timestamp:W()}),Z(),E()):h("Invalid callback token")}catch(n){return F(n)}}function ve(i){try{let n=i.params?.token,l=i.params?.ref;if(!n)return h("sourceDataFetched requires params.token");if(!l)return h("sourceDataFetched requires params.ref");let m=Nt(n);if(!m)return h("Invalid source token");let{cbk:w,cid:j,b:O,d:q,cs:J,rqt:X,dt:ke}=m,Re=qe(K(),he=>t.resolveBlob(he)),ne=ke||t.genId();ke||Re.ingestSourceDataStaged(j,q,b(l),ne);let Ce=Ne(w);if(!Ce)return h("Invalid callback token embedded in source token");let xe=W();return x({type:"task-progress",taskName:Ce.taskName,update:{bindTo:O,outputFile:q,fetchedAt:xe,deliveryToken:ne,sourceChecksum:J,rqt:X},timestamp:xe}),Z(),E()}catch(n){return F(n)}}function le(i){try{let n=i.params?.token,l=i.params?.reason??"unknown";if(!n)return h("sourceDataFetchFailure requires params.token");let m=Nt(n);if(!m)return h("Invalid source token");let{cbk:w,b:j,d:O,cs:q,rqt:J}=m,X=Ne(w);return X?(x({type:"task-progress",taskName:X.taskName,update:{bindTo:j,outputFile:O,failure:!0,reason:l,sourceChecksum:q,rqt:J},timestamp:W()}),Z(),E()):h("Invalid callback token embedded in source token")}catch(n){return F(n)}}function $t(i){try{let n=k().readCardStoreRef();return n?E({storeRef:n}):h(`Board at ${e$1.value} has no card store configured`)}catch(n){return F(n)}}function Jt(i){try{return E({storeRef:c$1??null})}catch(n){return F(n)}}function Mt(i){try{let n=k().readOutputsStoreRef();return n?E({storeRef:n}):h(`Board at ${e$1.value} has no outputs store configured`)}catch(n){return F(n)}}function Ht(i){try{return E({storeRef:d??null})}catch(n){return F(n)}}function Gt(i){try{let n=k().readChatStoreRef();return E({storeRef:n})}catch(n){return F(n)}}function Ut(i){try{let n=k().readArtifactsStoreRef();return E({storeRef:n})}catch(n){return F(n)}}function Yt(i){try{let n=k().readFetchedSourcesStoreRef();return E({storeRef:n})}catch(n){return F(n)}}function zt(i){try{let n=i.params?.key;if(!n)return h("getConfig requires params.key");let l=k(),m;switch(n){case "task-executor":m=S??null;break;case "chat-handler-flow":m=y??null;break;case "board-runtime-store-ref":m=l.readBoardRuntimeStoreRef();break;case "card-store-ref":m=l.readCardStoreRef();break;case "outputs-store-ref":m=l.readOutputsStoreRef();break;case "scratch-store-ref":m=d??null;break;case "chat-store-ref":m=l.readChatStoreRef();break;case "artifacts-store-ref":m=l.readArtifactsStoreRef();break;case "fetched-sources-store-ref":m=l.readFetchedSourcesStoreRef();break;default:return h(`getConfig: unknown key "${n}"`)}return E({value:m})}catch(n){return F(n)}}function Qt(i){try{let n=i.params?.key;if(!n)return h("getOutputsDataObject requires params.key");if(n===fe)return E(null);let l=u$1().readDataObject(n);return E(l)}catch(n){return F(n)}}function We(i){try{return E(Pt(u$1().readAllDataObjects()))}catch(n){return F(n)}}function Xt(i){try{let n=i.params?.key;if(!n)return h("getOutputsComputedValues requires params.key");let l=u$1().readComputedValues(n);return E(l)}catch(n){return F(n)}}function Ze(i){try{return E(u$1().readAllComputedValues())}catch(n){return F(n)}}function et(){return qe(K(),i=>t.resolveBlob(i))}function tt(i){let n=K().keyRef?.(i);if(!n)throw new Error("configured fetched-sources store does not support keyRef");return a(n)}function Wt(i){try{let n=i.params?.key;if(!n)return h("getOutputsFetchedSources requires params.key");let l=et().listSources(n),m={};for(let w of l)m[w]=tt(`${n}/${w}`);return E(m)}catch(n){return F(n)}}function Zt(i){try{let n=et(),l=new Set;for(let w of K().listKeys()){let j=w.indexOf("/");j>0&&!w.includes("/.staged/")&&l.add(w.slice(0,j));}let m={};for(let w of l){let j=n.listSources(w);if(j.length>0){m[w]={};for(let O of j)m[w][O]=tt(`${w}/${O}`);}}return E(m)}catch(n){return F(n)}}function er(i){try{let n=g().readAllCards().filter(q=>q.id!==ae),l=ie({});if(l.status!=="success")return l;let m=We({});if(m.status!=="success")return m;let w=Ze({});if(w.status!=="success")return w;let j=w.data,O={};for(let q of n){let J=typeof q?.id=="string"?q.id:null;if(!J)continue;let X=q.card_data&&typeof q.card_data=="object"&&!Array.isArray(q.card_data)?q.card_data:{};O[J]={schema_version:"v1",card_id:J,card_data:{...X},computed_values:j[J]&&typeof j[J]=="object"?j[J]:{}};}return E({cardDefinitions:n,statusSnapshot:l.data,dataObjectsByToken:m.data,cardRuntimeById:O})}catch(n){return F(n)}}return {init:ge,status:ie,getBoardRuntimeStoreRef:Jt,getCardStoreRef:$t,getOutputsStoreRef:Mt,getScratchStoreRef:Ht,getChatStoreRef:Gt,getArtifactsStoreRef:Ut,getFetchedSourcesStoreRef:Yt,getConfig:zt,getOutputsDataObject:Qt,getAllOutputsDataObjects:We,getOutputsComputedValues:Xt,getAllOutputsComputedValues:Ze,getOutputsFetchedSources:Wt,getAllOutputsFetchedSources:Zt,buildSseOneShotPayload:er,removeCard:C,addCardFiles:b$1,retrigger:_,processAccumulatedEvents:$,upsertCard:ee,taskFailed:ue,taskProgress:Se,sourceDataFetched:ve,sourceDataFetchFailure:le}}function Ur(e,t,r){let s=r?.taskExecutorRef,o=()=>{if(r){if(!r.boardRuntimeStoreRef)throw new Error(`Board at ${e.value} requires boardRuntimeStoreRef for non-core runtime operations.`);return je(t.kvStorageForRef(r.boardRuntimeStoreRef))}return je(t.kvStorage("config"))};function a(){let g=o().readCardStoreRef();if(!g)throw new Error(`Board at ${e.value} has no card store configured. Run: init --base-ref <ref> --store-ref <b64-ref>`);let u=t.kvStorageForRef(g);return {readIndex(){return u.read("_index")},writeIndex(p){u.write("_index",p);},readCard(p){return u.read(p)},writeCard(p,v){return u.write(p,v),t.hashFn(v)},removeCard(p){u.delete(p);},cardExists(p){return u.read(p)!==null},defaultCardKey(p){return p}}}let c=()=>Qe(a(),t.onWarn??(()=>{}));function d(){return s??o().readTaskExecutorRef()}async function S(g,u){let p=t.validateSchema(u),v=[],I=d();if(I&&Array.isArray(u.source_defs))for(let x of u.source_defs){let D=typeof x.bindTo=="string"?x.bindTo:"(unknown)";try{let P;try{P=await t.invokeExecutor(I,"validate-source-def",{timeout:t.executorTimeouts?.validationMs??1e4,input:JSON.stringify(x)});}catch(M){let oe=M;if(P=typeof oe?.stdout=="string"?oe.stdout:"",!P.trim()){v.push(`source "${D}": executor validate-source-def failed \u2014 ${M instanceof Error?M.message:String(M)}`);continue}}let L=JSON.parse(P.trim());if(!L.ok&&Array.isArray(L.errors))for(let M of L.errors)v.push(`source "${D}": ${M}`);}catch(P){v.push(`source "${D}": executor validate-source-def failed \u2014 ${P instanceof Error?P.message:String(P)}`);}}let T=[...p.errors,...v];return E({cardId:g,isValid:T.length===0,issues:T})}function y(g,u){let p=g.params?.sourceIdx,v=g.params?.outRef;if(p===void 0)return h(`${u} requires params.sourceIdx`);if(!g.body||typeof g.body!="object"||Array.isArray(g.body))return h(`${u} requires card JSON object in body`);let I=g.body,T=I["card-content"]??I,x=I["mock-projections"]??{},D=T.source_defs??[];if(p<0||p>=D.length)return h(`sourceIdx ${p} out of range (card has ${D.length} source(s))`);let P=D[p],L=typeof P.bindTo=="string"?P.bindTo:"source";return {src:P,bindTo:L,outRef:v,mockProjections:x}}async function V(g){try{if(!g.body||typeof g.body!="object"||Array.isArray(g.body))return h("validateCardPreflight requires card JSON object in body");let u=g.body,p=u["card-content"]??u,v=typeof p.id=="string"?p.id:"(unknown)";return await S(v,p)}catch(u){return F(u)}}async function z(g){try{let u=y(g,"probeSourcePreflight");if("status"in u)return u;let p=d();if(!p)return h("No task-executor registered for this board");try{let v={...u.src,_projections:u.mockProjections},I=await t.invokeExecutor(p,"probe-source-preflight",{timeout:u.src.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(v)}),T=JSON.parse(I.trim());return T.ok?E({bindTo:u.bindTo,reachable:T.reachable,latencyMs:T.latencyMs,note:T.note}):h(T.error??"Preflight probe failed")}catch{return h("Executor does not support probe-source-preflight")}}catch(u){return F(u)}}async function Q(g){try{let u=y(g,"runSourcePreflight");if("status"in u)return u;let p=d();if(!p)return h("No task-executor registered for this board");try{let v={...u.src,_projections:u.mockProjections},I=await t.invokeExecutor(p,"run-source-preflight",{timeout:u.src.timeout??t.executorTimeouts?.probeMs??6e4,input:JSON.stringify(v)}),T=JSON.parse(I.trim());if(!T.ok)return E({bindTo:u.bindTo,ok:!1,result:null,issues:[T.error??"Preflight run failed"]});if(u.outRef){let x=b(u.outRef);t.absoluteBlob.write(x.value,JSON.stringify(T.resultValue,null,2));}return E({bindTo:typeof T.bindTo=="string"?T.bindTo:u.bindTo,ok:!0,result:T.resultValue??null,issues:[]})}catch(v){let I=v instanceof Error?v.message:String(v);return E({bindTo:u.bindTo,ok:!1,result:null,issues:[I]})}}catch(u){return F(u)}}async function te(g){try{let u=d();if(!u)return h("No task-executor registered for this board");let p=await t.invokeExecutor(u,"describe-capabilities",{timeout:t.executorTimeouts?.describeMs??1e4});return E(JSON.parse(p.trim()))}catch(u){return F(u)}}function A(g){try{let u=g.body;if(!u||!Array.isArray(u.ops))return h("updatesInCardStore requires body.ops array");let p=u.ops,v=c();for(let I of p){let T=I.op,x=I.id;if(!x)return h('op is missing "id"');if(T==="update"){let D=I["card-content"];if(!D)return h(`update op for "${x}" is missing "card-content"`);v.writeCard(x,D);}else return h(`Unknown op type: "${T??"(none)"}"`)}return E()}catch(u){return F(u)}}function k(g){try{let u=g.body;if(!u||!Array.isArray(u.ids))return h("readFromCardStore requires body.ids array");let p=u.ids,v=c(),I=p.map(T=>({id:T,"card-content":v.readCard(T)}));return E({cards:I})}catch(u){return F(u)}}function H(g){try{if(!g.body||typeof g.body!="object"||Array.isArray(g.body))return h("evalCardCompute requires a JSON object in body");let u=g.body,p=u["card-content"]??u,v=typeof p.id=="string"?p.id:"(unknown)",I=u["mock-fetched-sources"]??{},T=u["mock-requires"]??{},x=p.compute;if(!x||!Array.isArray(x)||x.length===0)return E({cardId:v,ok:!0,computed_values:{},errors:[]});let D={id:v,card_data:p.card_data??{},requires:T,source_defs:p.source_defs,compute:x},P=a$3.runSync(D,{sourcesData:I}),L=P.node.computed_values??{},M=P.errors??[];return E({cardId:v,ok:M.length===0,computed_values:L,errors:M})}catch(u){return F(u)}}async function G(g){try{if(!g.body||typeof g.body!="object"||Array.isArray(g.body))return h("simulateCardCycle requires a JSON object in body");let u=g.body,p=u["card-content"]??u,v=typeof p.id=="string"?p.id:"(unknown)",I=u["mock-fetched-sources"]??{},T=u["mock-requires"]??{},x=await S(v,p),D=x.status==="success"?{isValid:x.data.isValid,issues:x.data.issues}:{isValid:!1,issues:[x.status==="fail"?x.error:"internal error"]},P=p.source_defs??[],L=p.card_data??{},M=[],oe=[];if(P.length>0){M=a$3.enrichSourcesSync(P,{card_data:L,requires:T});for(let K of M){let ee=K.projections,ue=K._projections;if(ee&&ue){for(let Se of Object.keys(ee))if(ue[Se]===void 0){let ve=typeof K.bindTo=="string"?K.bindTo:"(unknown)";oe.push({bindTo:ve,key:Se,error:`Projection "${Se}" resolved to undefined`});}}}}let Z=[],ge={...I},ie=u["task-executor-ref"],C=(ie?.howToRun&&ie?.whatToRun?ie:void 0)??d();for(let K=0;K<M.length;K++){let ee=M[K],ue=typeof ee.bindTo=="string"?ee.bindTo:`source_${K}`;if(!C){Z.push({bindTo:ue,skipped:!0,error:"No task executor configured"});continue}try{let Se={...ee},ve=await t.invokeExecutor(C,"run-source-preflight",{timeout:ee.timeout??t.executorTimeouts?.preflightMs??6e4,input:JSON.stringify(Se)}),le=JSON.parse(ve.trim());le.ok&&!Object.prototype.hasOwnProperty.call(I,ue)&&Object.prototype.hasOwnProperty.call(le,"resultValue")&&(ge[ue]=le.resultValue),Z.push({bindTo:ue,reachable:le.reachable,latencyMs:le.latencyMs,error:le.ok?void 0:le.error});}catch{Z.push({bindTo:ue,skipped:!0,error:"Executor does not support run-source-preflight"});}}let b=p.compute,_={},$=[];if(b&&Array.isArray(b)&&b.length>0){let K={id:v,card_data:L,requires:T,source_defs:p.source_defs,compute:b},ee=a$3.runSync(K,{sourcesData:ge});_=ee.node.computed_values??{},$=ee.errors??[];}let re=D.isValid&&oe.length===0&&$.length===0&&Z.every(K=>K.reachable!==!1);return E({cardId:v,ok:re,validation:D,source_probes:Z,projection_errors:oe,fetched_sources:ge,computed_values:_,compute_errors:$})}catch(u){return F(u)}}return {validateCardPreflight:V,probeSourcePreflight:z,runSourcePreflight:Q,evalCardCompute:H,simulateCardCycle:G,describeTaskExecutorCapabilities:te,updatesInCardStore:A,readFromCardStore:k}}
2
- export{De as A,Xe as B,Vt as C,jt as D,Kt as E,Gr as F,Ur as G,Tr as a,Ct as b,Er as c,Rt as d,br as e,wr as f,vr as g,vt as h,ir as i,ur as j,xt as k,fe as l,ae as m,dr as n,cr as o,Pe as p,Qe as q,Ve as r,ye as s,Vr as t,Tt as u,Et as v,fr as w,At as x,Ke as y,Pt as z};//# sourceMappingURL=chunk-EZOXABJ2.js.map
3
- //# sourceMappingURL=chunk-EZOXABJ2.js.map
@@ -1,3 +0,0 @@
1
- 'use strict';var chunkLODXIALE_cjs=require('./chunk-LODXIALE.cjs');function W(t,e){let n=e??`live-${Date.now()}`,s={};for(let d of Object.keys(t.tasks))s[d]=H();let a={status:"running",tasks:s,availableOutputs:[],stuckDetection:{is_stuck:false,stuck_description:null,outputs_unresolvable:[],tasks_blocked:[]},lastUpdated:new Date().toISOString(),executionId:n,executionConfig:{executionMode:t.settings.execution_mode??"eligibility-mode",conflictStrategy:t.settings.conflict_strategy??"alphabetical",completionStrategy:t.settings.completion}};return {config:t,state:a}}function X(t,e){let{config:n,state:s}=t;if("executionId"in e&&e.executionId&&e.executionId!==s.executionId)return t;switch(e.type){case "task-started":return {config:n,state:chunkLODXIALE_cjs.B(s,e.taskName,n)};case "task-completed":return {config:n,state:chunkLODXIALE_cjs.C(s,n,e.taskName,e.result,e.dataHash,e.data)};case "task-failed":return {config:n,state:chunkLODXIALE_cjs.D(s,n,e.taskName,e.error)};case "task-progress":return {config:n,state:chunkLODXIALE_cjs.E(s,e.taskName,e.message,e.progress)};case "task-restart":return {config:n,state:chunkLODXIALE_cjs.F(s,e.taskName)};case "inject-tokens":return {config:n,state:{...s,availableOutputs:[...new Set([...s.availableOutputs,...e.tokens])],lastUpdated:new Date().toISOString()}};case "agent-action":return {config:n,state:it(s,e.action)};case "task-upsert":return et(t,e.taskName,e.taskConfig);case "task-removal":return nt(t,e.taskName);case "node-requires-add":return st(t,e.nodeName,e.tokens);case "node-requires-remove":return rt(t,e.nodeName,e.tokens);case "node-provides-add":return at(t,e.nodeName,e.tokens);case "node-provides-remove":return ot(t,e.nodeName,e.tokens);default:return t}}function Y(t,e){return e.reduce((n,s)=>X(n,s),t)}function et(t,e,n){let s=!!t.config.tasks[e];return {config:{...t.config,tasks:{...t.config.tasks,[e]:n}},state:{...t.state,tasks:{...t.state.tasks,[e]:s?t.state.tasks[e]:H()},lastUpdated:new Date().toISOString()}}}function nt(t,e){if(!t.config.tasks[e])return t;let{[e]:n,...s}=t.config.tasks,{[e]:a,...d}=t.state.tasks;return {config:{...t.config,tasks:s},state:{...t.state,tasks:d,lastUpdated:new Date().toISOString()}}}function st(t,e,n){let s=t.config.tasks[e];if(!s)return t;let a=chunkLODXIALE_cjs.h(s),d=n.filter(u=>!a.includes(u));return d.length===0?t:{config:{...t.config,tasks:{...t.config.tasks,[e]:{...s,requires:[...a,...d]}}},state:t.state}}function rt(t,e,n){let s=t.config.tasks[e];if(!s)return t;let a=chunkLODXIALE_cjs.h(s),d=a.filter(u=>!n.includes(u));return d.length===a.length?t:{config:{...t.config,tasks:{...t.config.tasks,[e]:{...s,requires:d}}},state:t.state}}function at(t,e,n){let s=t.config.tasks[e];if(!s)return t;let a=chunkLODXIALE_cjs.g(s),d=n.filter(u=>!a.includes(u));return d.length===0?t:{config:{...t.config,tasks:{...t.config.tasks,[e]:{...s,provides:[...a,...d]}}},state:t.state}}function ot(t,e,n){let s=t.config.tasks[e];if(!s)return t;let a=chunkLODXIALE_cjs.g(s),d=a.filter(u=>!n.includes(u));return d.length===a.length?t:{config:{...t.config,tasks:{...t.config.tasks,[e]:{...s,provides:d}}},state:t.state}}function ht(t,e){return X(t,{type:"inject-tokens",tokens:e,timestamp:new Date().toISOString()})}function kt(t,e){let n=new Set(e),s=t.state.availableOutputs.filter(a=>!n.has(a));return s.length===t.state.availableOutputs.length?t:{config:t.config,state:{...t.state,availableOutputs:s,lastUpdated:new Date().toISOString()}}}function mt(t,e){return !t.config.tasks[e]||!t.state.tasks[e]?t:{config:t.config,state:{...t.state,tasks:{...t.state.tasks,[e]:H()},lastUpdated:new Date().toISOString()}}}function St(t,e){let n=t.state.tasks[e];return !n||n.status==="inactivated"?t:{config:t.config,state:{...t.state,tasks:{...t.state.tasks,[e]:{...n,status:"inactivated",lastUpdated:new Date().toISOString()}},lastUpdated:new Date().toISOString()}}}function vt(t,e){let n=t.state.tasks[e];return !n||n.status!=="inactivated"?t:{config:t.config,state:{...t.state,tasks:{...t.state.tasks,[e]:{...n,status:"not-started",lastUpdated:new Date().toISOString()}},lastUpdated:new Date().toISOString()}}}function yt(t,e){let n=t.config.tasks[e];if(!n)return;let s=t.state.tasks[e]??H();return {name:e,config:n,state:s}}function Z(t){return {version:1,config:t.config,state:t.state,snapshotAt:new Date().toISOString()}}function bt(t){if(!t||typeof t!="object")throw new Error("Invalid snapshot: expected an object");let e=t;if(!e.config||typeof e.config!="object")throw new Error('Invalid snapshot: missing or invalid "config"');if(!e.state||typeof e.state!="object")throw new Error('Invalid snapshot: missing or invalid "state"');let n=e.config,s=e.state;if(!n.settings||typeof n.settings!="object")throw new Error("Invalid snapshot: config.settings missing");if(!n.tasks||typeof n.tasks!="object")throw new Error("Invalid snapshot: config.tasks missing");if(!s.tasks||typeof s.tasks!="object")throw new Error("Invalid snapshot: state.tasks missing");if(!Array.isArray(s.availableOutputs))throw new Error("Invalid snapshot: state.availableOutputs must be an array");return {config:n,state:s}}function H(){return {status:"not-started",executionCount:0,retryCount:0,lastEpoch:0,messages:[],progress:null}}function it(t,e){let n=new Date().toISOString();switch(e){case "stop":return {...t,status:"stopped",lastUpdated:n};case "pause":return {...t,status:"paused",lastUpdated:n};case "resume":return {...t,status:"running",lastUpdated:n};default:return t}}function A(t){let{config:e,state:n}=t,s=chunkLODXIALE_cjs.i(e);if(Object.keys(s).length===0)return {eligible:[],pending:[],unresolved:[],blocked:[],conflicts:{}};let d=ct(s),u=chunkLODXIALE_cjs.r(e,n.tasks),l=new Set([...u,...n.availableOutputs]),f=[],y=[],O=[],G=[];for(let[v,p]of Object.entries(s)){let k=n.tasks[v],N=chunkLODXIALE_cjs.o(p,e.settings),I=N!=="once";if(k?.status===chunkLODXIALE_cjs.a.RUNNING||chunkLODXIALE_cjs.l(k))continue;let D=chunkLODXIALE_cjs.q(p);if(D!==void 0&&k&&k.executionCount>=D||p.circuit_breaker&&k&&k.executionCount>=p.circuit_breaker.max_executions||!I&&k?.status===chunkLODXIALE_cjs.a.COMPLETED)continue;if(I&&k?.status===chunkLODXIALE_cjs.a.COMPLETED){let c=chunkLODXIALE_cjs.h(p),i=false;switch(N){case "data-changed":{c.length>0&&c.some(S=>{for(let[w,T]of Object.entries(s))if(chunkLODXIALE_cjs.g(T).includes(S)){let b=n.tasks[w];if(!b)continue;let L=k.lastConsumedHashes?.[S];return b.lastDataHash==null?b.executionCount>k.lastEpoch:b.lastDataHash!==L}return false})||(i=true);break}case "epoch-changed":{c.length>0&&c.some(S=>{for(let[w,T]of Object.entries(s))if(chunkLODXIALE_cjs.g(T).includes(S)){let b=n.tasks[w];if(b&&b.executionCount>k.lastEpoch)return true}return false})||(i=true);break}case "time-based":{let m=p.refreshInterval??0;if(m<=0){i=true;break}let S=k.completedAt;if(!S){i=true;break}(Date.now()-Date.parse(S))/1e3<m&&(i=true);break}case "manual":i=true;break}if(i)continue}let r=chunkLODXIALE_cjs.h(p);if(r.length===0){f.push(v);continue}let o=[],g=[],h=[];for(let c of r){if(l.has(c))continue;let i=d[c]||[];i.length===0?o.push(c):i.every(S=>chunkLODXIALE_cjs.l(n.tasks[S]))?h.push({token:c,failedProducer:i[0]}):g.push(c);}o.length>0?O.push({taskName:v,missingTokens:o}):h.length>0?G.push({taskName:v,failedTokens:h.map(c=>c.token),failedProducers:[...new Set(h.map(c=>c.failedProducer))]}):g.length>0?y.push({taskName:v,waitingOn:g}):f.push(v);}let E={};if(f.length>1){let v=chunkLODXIALE_cjs.s(f,s);for(let[p,k]of Object.entries(v))k.length>1&&(E[p]=k);}return {eligible:f,pending:y,unresolved:O,blocked:G,conflicts:E}}function ct(t){let e={};for(let[n,s]of Object.entries(t)){for(let a of chunkLODXIALE_cjs.g(s))e[a]||(e[a]=[]),e[a].push(n);if(s.on)for(let a of Object.values(s.on))for(let d of a)e[d]||(e[d]=[]),e[d].includes(n)||e[d].push(n);if(s.on_failure)for(let a of s.on_failure)e[a]||(e[a]=[]),e[a].includes(n)||e[a].push(n);}return e}var C=class{buffer=[];append(e){this.buffer.push(e);}drain(){let e=this.buffer;return this.buffer=[],e}get size(){return this.buffer.length}};function U(t){let e=q(t);return dt(e)}function q(t){if(t==null||typeof t!="object")return JSON.stringify(t);if(Array.isArray(t))return "["+t.map(q).join(",")+"]";let e=t;return "{"+Object.keys(e).sort().map(s=>JSON.stringify(s)+":"+q(e[s])).join(",")+"}"}function dt(t){let e=0xcbf29ce484222325n,n=0x100000001b3n,s=0xffffffffffffffffn;for(let a=0;a<t.length;a++)e^=BigInt(t.charCodeAt(a)),e=e*n&s;return e.toString(16).padStart(16,"0")}function ut(t){if(typeof Buffer<"u")return Buffer.from(t,"utf8").toString("base64url");if(typeof btoa=="function"){let e=new TextEncoder().encode(t),n="";for(let s of e)n+=String.fromCharCode(s);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}throw new Error("No base64 encoder available in this runtime")}function pt(t){if(typeof Buffer<"u")return Buffer.from(t,"base64url").toString("utf8");if(typeof atob=="function"){let e=t.replace(/-/g,"+").replace(/_/g,"/"),n=e+"=".repeat((4-e.length%4)%4),s=atob(n),a=new Uint8Array(s.length);for(let d=0;d<s.length;d++)a[d]=s.charCodeAt(d);return new TextDecoder().decode(a)}throw new Error("No base64 decoder available in this runtime")}function tt(t){let e=JSON.stringify({t,n:Date.now().toString(36)+Math.random().toString(36).slice(2,6)});return ut(e)}function ft(t){try{let e=JSON.parse(pt(t));return typeof e?.t=="string"?{taskName:e.t}:null}catch{return null}}function Ct(t,e,n){let{handlers:s,onNodeRemoved:a,onDrain:d}=e,u=new C,l="state"in t&&"config"in t?t:W(t,n),f=false,y=new Set,O=new Map(Object.entries(s)),G=new C,E=false,v=false;function p(){if(!f){if(E){v=true;return}E=true;try{do v=!1,k();while(v)}finally{E=false;}}}function k(){let r=G.drain(),o=u.drain(),g=[...r,...o];if(g.length>0&&(l=Y(l,g),a)){for(let c of g)if(c.type==="task-removal")try{a(c.taskName);}catch(i){console.warn("[reactive] onNodeRemoved failed:",i instanceof Error?i.message:String(i));}}let h=A(l);g.length>0&&d?.(g,l,h);for(let c of h.eligible)D(c);for(let c of g)if(c.type==="task-progress"){let{taskName:i,update:m}=c;if(!l.config.tasks[i])continue;let w=l.state.tasks[i];if(!w||w.status!=="running")continue;let T=tt(i),b=I(i,T,m).catch(L=>{f||(G.append({type:"task-failed",taskName:i,error:L.message??String(L),timestamp:new Date().toISOString()}),p());}).finally(()=>{y.delete(b);});y.add(b);}}function N(r){let g=l.config.tasks[r].requires??[],h=new Map;for(let[i,m]of Object.entries(l.config.tasks))for(let S of m.provides??[])h.set(S,i);let c={};for(let i of g){let m=h.get(i);m?c[i]=l.state.tasks[m]?.data:c[i]=void 0;}return c}async function I(r,o,g){let h=l.config.tasks[r],c=h.taskHandlers??[],i=N(r);for(let m of c){let S=O.get(m);if(!S)throw new Error(`Handler '${m}' not found in registry (task '${r}')`);let w={nodeId:r,state:i,taskState:l.state.tasks[r],config:h,callbackToken:o,update:g};if(await S(w)==="task-initiate-failure")throw new Error(`Handler '${m}' returned task-initiate-failure (task '${r}')`)}}function D(r){let g=l.config.tasks[r]?.taskHandlers;if(!g||g.length===0)return;G.append({type:"task-started",taskName:r,timestamp:new Date().toISOString()}),p();let h=tt(r),c=I(r,h).catch(i=>{f||(G.append({type:"task-failed",taskName:r,error:i.message??String(i),timestamp:new Date().toISOString()}),p());}).finally(()=>{y.delete(c);});y.add(c);}return {push(r){f||(r.type==="task-completed"&&r.data&&!r.dataHash&&(r={...r,dataHash:U(r.data)}),u.append(r),p());},pushAll(r){if(!f){for(let o of r)o.type==="task-completed"&&o.data&&!o.dataHash?u.append({...o,dataHash:U(o.data)}):u.append(o);p();}},resolveCallback(r,o,g){if(f)return;let h=ft(r);if(!h)return;let{taskName:c}=h;if(l.config.tasks[c]){if(g&&g.length>0)u.append({type:"task-failed",taskName:c,error:g.join("; "),timestamp:new Date().toISOString()});else {let i=o&&Object.keys(o).length>0?U(o):void 0;u.append({type:"task-completed",taskName:c,data:o,dataHash:i,timestamp:new Date().toISOString()});}p();}},addNode(r,o){f||(u.append({type:"task-upsert",taskName:r,taskConfig:o,timestamp:new Date().toISOString()}),p());},removeNode(r){f||(u.append({type:"task-removal",taskName:r,timestamp:new Date().toISOString()}),p());},addRequires(r,o){f||(u.append({type:"node-requires-add",nodeName:r,tokens:o,timestamp:new Date().toISOString()}),p());},removeRequires(r,o){f||(u.append({type:"node-requires-remove",nodeName:r,tokens:o,timestamp:new Date().toISOString()}),p());},addProvides(r,o){f||(u.append({type:"node-provides-add",nodeName:r,tokens:o,timestamp:new Date().toISOString()}),p());},removeProvides(r,o){f||(u.append({type:"node-provides-remove",nodeName:r,tokens:o,timestamp:new Date().toISOString()}),p());},registerHandler(r,o){O.set(r,o);},unregisterHandler(r){O.delete(r);},retrigger(r){f||l.config.tasks[r]&&(u.append({type:"task-restart",taskName:r,timestamp:new Date().toISOString()}),p());},retriggerAll(r){if(!f){for(let o of r)l.config.tasks[o]&&u.append({type:"task-restart",taskName:o,timestamp:new Date().toISOString()});p();}},snapshot(){return Z(l)},getState(){return l},getSchedule(){return A(l)},async waitForHandlers(){y.size>0&&await Promise.allSettled([...y]);},async dispose(r){r?.wait&&y.size>0&&await Promise.allSettled([...y]),f=true;}}}
2
- exports.a=W;exports.b=X;exports.c=Y;exports.d=et;exports.e=nt;exports.f=st;exports.g=rt;exports.h=at;exports.i=ot;exports.j=ht;exports.k=kt;exports.l=mt;exports.m=St;exports.n=vt;exports.o=yt;exports.p=Z;exports.q=bt;exports.r=A;exports.s=C;exports.t=U;exports.u=Ct;//# sourceMappingURL=chunk-G4XXRHL2.cjs.map
3
- //# sourceMappingURL=chunk-G4XXRHL2.cjs.map
@@ -1,3 +0,0 @@
1
- 'use strict';var chunkWRMOGPRG_cjs=require('./chunk-WRMOGPRG.cjs'),chunkBAG7MHZP_cjs=require('./chunk-BAG7MHZP.cjs'),chunkVQCIOKJV_cjs=require('./chunk-VQCIOKJV.cjs'),chunkG4XXRHL2_cjs=require('./chunk-G4XXRHL2.cjs'),chunkQBEQL4TL_cjs=require('./chunk-QBEQL4TL.cjs'),chunk2RIHC5TZ_cjs=require('./chunk-2RIHC5TZ.cjs');async function mt(e,o,a){let r=await e.tryAcquire();if(!r)return false;try{await o();}finally{await r();}return await a?.(),true}function Pt(e){return typeof e=="object"&&e!==null&&"then"in e&&typeof e.then=="function"}function Pe(e,o){return Pt(e)?e.then(o):o(e)}function lt(e,o){let a={...e};for(let[r,s]of Object.entries(o))s!==null&&typeof s=="object"&&!Array.isArray(s)&&a[r]!==null&&typeof a[r]=="object"&&!Array.isArray(a[r])?a[r]=lt(a[r],s):a[r]=s;return a}function ve(e,o,a){if(o.length===0)return e;let[r,...s]=o;if(s.length===0)return {...e,[r]:a};let d=e[r]!==null&&typeof e[r]=="object"&&!Array.isArray(e[r])?e[r]:{};return {...e,[r]:ve(d,s,a)}}function ft(e){return {read:a=>e.read(a),get(a,r){return Pe(e.read(a),s=>{if(s===null)return null;let d=s;for(let f of r.split(".").filter(Boolean)){if(d===null||typeof d!="object"||Array.isArray(d))return null;d=d[f]??null;}return d??null})},write:(a,r)=>e.write(a,r),delete:a=>e.delete(a),listKeys:a=>e.listKeys(a),shallowMerge(a,r){return Pe(e.read(a),s=>e.write(a,{...s??{},...r}))},deepMerge(a,r){return Pe(e.read(a),s=>e.write(a,lt(s??{},r)))},patch(a,r,s){return Pe(e.read(a),d=>{let f=r.split(".").filter(Boolean);return e.write(a,ve(d??{},f,s))})}}}function gt(e){return ft(e)}function pt(e,o){return {async readIndex(){return await e.read("_index")},writeIndex(a){return e.write("_index",a)},async readCard(a){return await e.read(a)},async writeCard(a,r){return await e.write(a,r),o(r)},removeCard(a){return e.delete(a)},async cardExists(a){return await e.read(a)!==null},defaultCardKey(a){return a}}}function yt(e,o){async function a(){return await e.readIndex()??{}}return {async readCard(r){let s=(await a())[r];return !s||!await e.cardExists(s.key)?null:await e.readCard(s.key)},async readCardKey(r){return (await a())[r]?.key??null},async readAllCards(){let r=[];for(let[s,d]of Object.entries(await a())){if(!await e.cardExists(d.key))continue;let f=await e.readCard(d.key);f?r.push(f):o?.(`[card-store] could not read card "${s}" at key "${d.key}"`);}return r},async readChecksumIndex(){let r={};for(let[s,d]of Object.entries(await a()))r[s]=d.checksum;return r},async changedSince(r){let s=await a(),d=[];for(let[f,v]of Object.entries(s))r[f]!==v.checksum&&d.push(f);for(let f of Object.keys(r))s[f]||d.push(f);return d},async validateUpsert(r,s){let d=await a(),f=d[r],v=Object.entries(d).find(([,w])=>w.key===s);return f&&f.key!==s?{ok:false,error:`Card id "${r}" is already mapped to key "${f.key}", cannot remap to "${s}"`}:v&&v[0]!==r?{ok:false,error:`Key "${s}" is already mapped to card id "${v[0]}", cannot remap to "${r}"`}:{ok:true}},async writeCard(r,s,d){let f=await a(),v=d??f[r]?.key??e.defaultCardKey(r),w=await e.writeCard(v,s);f[r]={key:v,checksum:w,updatedAt:new Date().toISOString()},await e.writeIndex(f);},async patchCard(r,s,d){let f=await a(),v=f[r];if(!v||!await e.cardExists(v.key))throw new Error(`card "${r}" not found`);let w=await e.readCard(v.key);if(!w||typeof w!="object"||Array.isArray(w))throw new Error(`card "${r}" is not patchable`);let m=String(s||"").split(".").filter(Boolean),l=ve(w,m,d),S=await e.writeCard(v.key,l);f[r]={key:v.key,checksum:S,updatedAt:new Date().toISOString()},await e.writeIndex(f);},async removeCard(r){let s=await a(),d=s[r];d&&(await e.removeCard(d.key),delete s[r],await e.writeIndex(s));},readIndex(){return a()}}}function Nt(e,o){return chunkBAG7MHZP_cjs.a(e,o)}function _t(e,o,a){return {blob:e,kv:o,journal:a}}function St(e,o={}){function a(m){return {status:"success",data:m}}function r(m){return {status:"fail",error:m}}function s(m){return {status:"error",error:m instanceof Error?m.message:String(m)}}async function d(m){let l=o.emitNotification;if(!l||m.length===0)return;let S=chunk2RIHC5TZ_cjs.e(m);if(S.length===1){await l(S[0]);return}await l(chunk2RIHC5TZ_cjs.f({kind:"notification-batch",notifications:S}));}async function f(m){let l=m.params?.id;if(l){let S=await e.readCard(l);if(!S)throw new Error(`card "${l}" not found`);return [S]}return await e.readAllCards()}function v(m){return chunk2RIHC5TZ_cjs.f({kind:"notification-batch",notifications:chunk2RIHC5TZ_cjs.e(m.map(l=>({kind:"card_refreshed",cardId:l.id,card:l})))})}function w(m){if(Array.isArray(m))return m;if(m&&typeof m=="object"){let l=m;return Array.isArray(l.files)?l.files:[m]}return null}return {async get(m){try{return a({cards:await f(m)})}catch(l){return s(l)}},async buildNotificationBatch(m){try{return a(v(await f(m)))}catch(l){return s(l)}},async set(m){try{let l=m.body;if(l==null)return r("set requires a body (card object or array of cards)");let S=Array.isArray(l)?l:[l];for(let h of S){if(typeof h.id!="string")return r("each card must have a string `id` field");await e.writeCard(h.id,h);}return await d(S.map(h=>({kind:"card_refreshed",cardId:h.id,card:h}))),a({count:S.length})}catch(l){return s(l)}},async del(m){try{let l=m.body?.ids??[],S=m.params?.id,h=S?[...l,S]:l;if(h.length===0)return r("del requires body.ids (string[]) or params.id");for(let N of h)await e.removeCard(N);return await d(h.map(N=>({kind:"card_removed",cardId:N}))),a({count:h.length})}catch(l){return s(l)}},async patch(m){try{let l=m.params?.id,S=m.params?.path;if(!l)return r("patch requires params.id");if(!S)return r("patch requires params.path");let h=m.body,N=h&&Object.prototype.hasOwnProperty.call(h,"value")?h.value:m.body;await e.patchCard(l,S,N);let O=await e.readCard(l);return O?(await d([{kind:"card_refreshed",cardId:l,card:O}]),a({count:1})):r(`card "${l}" not found`)}catch(l){return s(l)}},async appendFiles(m){try{let l=m.params?.id;if(!l)return r("appendFiles requires params.id");let S=await e.readCard(l);if(!S)return r(`card "${l}" not found`);let h=w(m.body);if(!h||h.length===0)return r("appendFiles requires a file metadata object, array, or body.files array");let N=S.card_data&&typeof S.card_data=="object"&&!Array.isArray(S.card_data)?S.card_data:{},O=Array.isArray(N.files)?N.files:[],M=[...O,...h],V=h.map(($,Z)=>({idx:O.length+Z,entry:$})),K=await this.patch({params:{id:l,path:"card_data.files"},body:{value:M}});return K.status!=="success"?K:a({files_added:V})}catch(l){return s(l)}}}}async function vt(e,o){return (await e.peekActive()).find(a=>a.id===o)}function $t(e,o={}){async function a(r){let s=o.emitNotification;if(!s||r.length===0)return;let d=chunk2RIHC5TZ_cjs.e(r);if(d.length===1){await s(d[0]);return}await s(chunk2RIHC5TZ_cjs.f({kind:"notification-batch",notifications:d}));}return {async enqueue(r){let s=await e.enqueue(r);return await a([{kind:"message_enqueued",lane:o.lane,message:s}]),s},async enqueueMany(r){let s=await e.enqueueMany(r);return await a(s.map(d=>({kind:"message_enqueued",lane:o.lane,message:d}))),s},enqueueIfAbsent:e.enqueueIfAbsent?async(r,s)=>{let d=await e.enqueueIfAbsent(r,s);return d&&await a([{kind:"message_enqueued",lane:o.lane,message:d}]),d}:void 0,lease(r){return e.lease(r)},ack(r,s){return e.ack(r,s)},nack(r,s,d){return e.nack(r,s,d)},peekActive(r){return e.peekActive(r)},peekDeadLetter(r){return e.peekDeadLetter(r)},async stage(r,s){return e.stage(r,s)},async commitStaged(r){let s=await e.commitStaged(r);if(s){let d=await vt(e,r);d&&await a([{kind:"message_enqueued",lane:o.lane,message:d}]);}return s},async discardStaged(r,s){return e.discardStaged(r,s)},peekStaged(r){return e.peekStaged(r)}}}function b(e){return e!==void 0?{status:"success",data:e}:{status:"success"}}function R(e){return {status:"fail",error:e}}function T(e){return {status:"error",error:e instanceof Error?e.message:String(e)}}function q(){return new Date().toISOString()}function bt(e){let o=new TextEncoder().encode(e),a=Array.from(o,r=>String.fromCharCode(r)).join("");return btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Rt(e){let o=e.replace(/-/g,"+").replace(/_/g,"/"),a=o+"=".repeat((4-o.length%4)%4),r=atob(a),s=Uint8Array.from(r,d=>d.charCodeAt(0));return new TextDecoder().decode(s)}function be(e){try{let o=JSON.parse(Rt(e));return typeof o?.t=="string"?{taskName:o.t}:null}catch{return null}}function kt(e){return bt(JSON.stringify(e))}function Ct(e){try{let o=JSON.parse(Rt(e));return typeof o?.cbk=="string"&&typeof o?.cid=="string"&&typeof o?.b=="string"&&typeof o?.d=="string"?o:null}catch{return null}}function At(e){return chunkBAG7MHZP_cjs.j(e,chunkBAG7MHZP_cjs.t,()=>({_sources:{}}))}function It(e,o){return chunkBAG7MHZP_cjs.h(e,o)}function xt(e){return chunkBAG7MHZP_cjs.k(e)}function Tt(e,o){return chunkBAG7MHZP_cjs.i(e,o)}function Ot(e,o,a,r,s,d){return async f=>{let v=[],w=await a.cardStore.readCard(f.nodeId);if(!w)return "task-initiate-failure";let m=w.id;if(m===chunkBAG7MHZP_cjs.m){let p=a.activeTaskConfigs?.(),y={[chunkBAG7MHZP_cjs.l]:p?chunkBAG7MHZP_cjs.o((await Promise.all(Object.keys(p).filter(k=>k!==chunkBAG7MHZP_cjs.m).map(k=>a.cardStore.readCard(k)))).filter(k=>!!k),p):await chunkBAG7MHZP_cjs.n(await a.cardStore.readAllCards())};return (d??(()=>{}))(y),r(f.nodeId,y),"task-initiated"}let l=w.card_data??{},S=w.source_defs??[],h=S,N=await a.cardRuntimeStore.readRuntime(m),O=false,M=async()=>{O&&(await a.cardRuntimeStore.writeRuntime(m,N),O=false);},V=p=>chunkBAG7MHZP_cjs.u(N._sources[p]),K=(p,y)=>{N._sources[p]=chunkBAG7MHZP_cjs.u(y),O=true;},$=f.taskState?.executionCount??0;if(N._lastExecutionCount!==$&&(N._sources={},N._lastExecutionCount=$,O=true),f.update){let p=f.update.outputFile;if(p){let y=V(p);if(f.update.failure){let k=f.update.rqt??y.lastRequestedToken??y.queueRequestedToken;k&&K(p,chunkBAG7MHZP_cjs.x(y,k));}else {let k=f.update.rqt;if(!y.lastCompletedToken||k>y.lastCompletedToken){let j=typeof f.update.deliveryToken=="string"?f.update.deliveryToken:void 0,re=j?await a.fetchedSourcesStore.commitSourceData(m,p,j):false;K(p,re?chunkBAG7MHZP_cjs.w(y,k):chunkBAG7MHZP_cjs.x(y,k));}}await M();}}let Z={};for(let p of S){if(!p.outputFile)continue;let y=await a.fetchedSourcesStore.readSourceData(m,p.outputFile);y!==null&&(Z[p.bindTo]=y);}let H={};for(let[p,y]of Object.entries(f.state??{}))if(y!==null&&typeof y=="object"&&!Array.isArray(y)){let k=y[p];H[p]=k!==void 0?k:y;}else H[p]=y;let ee={id:m,card_data:{...l},requires:H,source_defs:S,compute:w.compute};ee._sourcesData=Z,w.compute&&chunkQBEQL4TL_cjs.a.runSync(ee,{sourcesData:Z}),(s??(()=>{}))(m,ee.computed_values??{});let te=chunkQBEQL4TL_cjs.a.enrichSourcesSync(Array.isArray(w.source_defs)?w.source_defs:void 0,{card_data:w.card_data,requires:H}),Ae={...w,source_defs:Array.isArray(te)?te.map(p=>({...p,boardDir:typeof p.boardDir=="string"&&p.boardDir?p.boardDir:e.value})):te},W=q(),E=f.update?void 0:W,ge=h.filter(p=>{let y=p.outputFile;if(typeof y!="string"||!y)return true;let k=V(y);E&&(k={...k,queueRequestedToken:E},K(y,k));let j=k.queueRequestedToken??k.lastRequestedToken??W;return chunkBAG7MHZP_cjs.v(k,j)==="dispatch"});if(await M(),ge.length>0){let p=false,y=W;for(let k of ge){let j=k.outputFile;if(typeof j!="string"||!j)continue;let re=V(j),L=re.queueRequestedToken??W;K(j,{...re,lastRequestedToken:L}),y=L,p=true;}return p&&await M(),p&&(v.push({taskKind:"source-fetch",payload:{boardRef:chunkVQCIOKJV_cjs.a(e),enrichedCard:Ae,callbackToken:f.callbackToken,rqt:y}}),await a.executionRequestStore.appendEntries(o,v)),"task-initiated"}if(h.some(p=>{let y=p.outputFile;if(typeof y!="string"||!y)return false;let k=V(y),j=k.queueRequestedToken??k.lastRequestedToken??W;return chunkBAG7MHZP_cjs.v(k,j)==="in-flight"}))return "task-initiated";let ie=w.provides??[],ue={};for(let{bindTo:p,ref:y}of ie)ue[p]=chunkQBEQL4TL_cjs.a.resolve(ee,y);return (d??(()=>{}))(ue),r(f.nodeId,ue),v.length>0&&await a.executionRequestStore.appendEntries(o,v),"task-initiated"}}function nr(e,o,a={}){chunkBAG7MHZP_cjs.d(o.callbackTransport,"createAsyncBoardLiveCardsPublic");let r=o.callbackTransport,s=o.warn??(()=>{}),d=chunkVQCIOKJV_cjs.a(e),f=a.emitNotification??(n=>{if(!o.publishBoardChangeNotifications)return;let t=n.kind==="notification-batch"?n.notifications:[n];return o.publishBoardChangeNotifications(t)}),v=null,w=a.boardRuntimeStoreRef,m=a.scratchStoreRef,l=a.taskExecutorRef,S=a.chatHandlerFlow;function h(){if(!w)throw new Error(`Board at ${e.value} has no board runtime store configured. Pass boardRuntimeStoreRef at construction or init.`);return w}function N(n){if(n.length!==0)try{let t=chunk2RIHC5TZ_cjs.e(n),c=chunk2RIHC5TZ_cjs.f({kind:"notification-batch",notifications:t});return Promise.resolve(f(c)).catch(i=>{s(`[async-board-live-cards-public] emitNotification failed: ${i instanceof Error?i.message:String(i)}`);})}catch(t){s(`[async-board-live-cards-public] emitNotification failed: ${t instanceof Error?t.message:String(t)}`);return}}let O=()=>chunkWRMOGPRG_cjs.b(o.kvStorageForRef(h())),M=e.value,V=()=>chunkBAG7MHZP_cjs.b(chunkBAG7MHZP_cjs.a(()=>o.kvStorageForRef(h()),o.hashFn),"v1"),K=async()=>{let n=await O().readOutputsStoreRef();if(!n)throw new Error(`Board at ${e.value} has no outputs store configured.`);return xt(o.kvStorageForRef(n))},$=async()=>{let n=await O().readCardStoreRef();if(!n)throw new Error(`Board at ${e.value} has no card store configured.`);let t=o.kvStorageForRef(n);return yt(pt(gt(t),o.hashFn),s)};async function Z(){return !!(await V().readSnapshot(M)).values[chunkBAG7MHZP_cjs.s]}async function H(){let n=await V().readSnapshot(M);if(!n.values[chunkBAG7MHZP_cjs.s])throw new Error(`Board not initialized at ${e.value}`);return chunkBAG7MHZP_cjs.D(n.values)}async function ee(n,t){let c=await V().commitSnapshot(M,{schemaVersion:"v1",expectedVersion:t,deleteKeys:[],shallowMerge:chunkBAG7MHZP_cjs.C(n)});if(!c.ok)throw new Error(`Snapshot commit failed (version mismatch): expected=${t??"null"} current=${c.currentVersion??"null"}`)}let te=()=>chunkBAG7MHZP_cjs.c(o.journalStorageForRef(h()));async function Ae(){return l??await O().readTaskExecutorRef()}async function W(){return chunkBAG7MHZP_cjs.z(await(await K()).readAllDataObjects())}async function E(n){await te().appendEvent(n);}async function ge(){let n=await O().readFetchedSourcesStoreRef();if(!n)throw new Error(`Board at ${e.value} has no fetched sources store configured. Run: init --fetched-sources-store-ref <b64-ref>`);return n}async function le(){return o.blobStorageForRef(await ge())}async function ie(){return It(await le(),n=>o.resolveBlob(n))}async function ue(n){let t=(await le()).keyRef?.(n);if(!t)throw new Error("configured fetched-sources store does not support keyRef");let c=await Promise.resolve(t);return chunkVQCIOKJV_cjs.a(c)}async function p(){let n=Tt(o.kvStorageForRef(h()),async(u,g)=>{let P=u.payload,B=(P.enrichedCard??{}).id??P.cardId??"unknown";await E({type:"task-failed",taskName:B,error:g,timestamp:q()});}),t=At(o.kvStorageForRef(h())),c=await le(),i=await ie(),A=await $(),I=await K(),F=new Map,C=new Map,x=[],Q=[],G=[],X=new Map,de=new Set,ce={async readRuntime(u){return F.get(u)??await t.readRuntime(u)},async writeRuntime(u,g){F.set(u,g),Te[u]=g;}},Ie={async readSourceData(u,g){let P=`${u}/${g}`;return C.has(P)?C.get(P):await i.readSourceData(u,g)},ingestSourceDataStaged(u,g,P,D){return i.ingestSourceDataStaged(u,g,P,D)},async commitSourceData(u,g,P){let D=`${u}/.staged/${P}/${g}`,B=await c.read(D);if(B==null){let z=await Promise.resolve(c.keyRef?.(D));z&&(B=await o.resolveBlob(z));}if(B==null)return false;let U=`${u}/${g}`,ae=B.trim();try{C.set(U,JSON.parse(ae));}catch{C.set(U,ae);}return x.push({cardId:u,outputFile:g,deliveryToken:P}),true},async hasSource(u,g){let P=`${u}/${g}`;return C.has(P)||await i.hasSource(u,g)},async listSources(u){let g=await i.listSources(u),P=[...C.keys()].filter(D=>D.startsWith(`${u}/`)).map(D=>D.slice(`${u}/`.length));return [...new Set([...g,...P])]}},xe=await H(),De=chunkG4XXRHL2_cjs.q(xe.graph),Te={...xe.runtimeByCardId},{events:wt,newCursor:Oe}=await te().readEntriesAfterCursor(xe.lastDrainedJournalId),pe=wt,Ve=()=>De.config.tasks,fe=chunkG4XXRHL2_cjs.u(De,{handlers:{"card-handler":Ot(e,Oe,{cardStore:A,cardRuntimeStore:ce,fetchedSourcesStore:Ie,outputStore:I,executionRequestStore:n,activeTaskConfigs:()=>Ve()},(u,g)=>{pe.push({type:"task-completed",taskName:u,data:g,timestamp:q()});},(u,g)=>{Q.push({cardId:u,values:g});},u=>{G.push(u);})},onNodeRemoved:u=>{X.delete(u),F.delete(u),delete Te[u],de.add(u);}});for(Ve=()=>fe.getState().config.tasks;pe.length>0;){let u=pe;pe=[];for(let g of u)if(g.type==="task-restart"){let P=await A.readCard(g.taskName);P&&X.set(g.taskName,P);}fe.pushAll(u),await fe.waitForHandlers();}let $e=fe.getState();await fe.dispose({wait:true}),await ee({lastDrainedJournalId:Oe,graph:chunkG4XXRHL2_cjs.p($e),runtimeByCardId:Te},(await V().readSnapshot(M)).version);for(let{cardId:u,values:g}of Q)await I.writeComputedValues(u,g);for(let u of G)await I.writeDataObjects(u);for(let[u,g]of F)await t.writeRuntime(u,g);for(let u of x)await i.commitSourceData(u.cardId,u.outputFile,u.deliveryToken);let Le=chunkBAG7MHZP_cjs.y(chunkBAG7MHZP_cjs.A(d,$e));await I.writeStatusSnapshot(Le);let me=[];for(let{cardId:u,values:g}of Q)me.push({kind:"computed_values",cardId:u,values:g});for(let u of G)for(let[g,P]of Object.entries(u))me.push({kind:"data_object",key:g,payload:P});for(let[u,g]of X)me.push({kind:"card_refreshed",cardId:u,card:g});for(let u of de)me.push({kind:"card_removed",cardId:u});me.push({kind:"status",status:Le}),await N(me);let ne=await Ae();if(!ne)return;let Je=o.supportsDirectSourceOutput?.(ne)===true;await n.dispatchEntriesForJournalId(Oe,async u=>{if(u.taskKind!=="source-fetch"){s(`[async-process-accumulated-events] unknown taskKind "${u.taskKind}" \u2014 skipping`);return}let g=u.payload,P=g.enrichedCard?.id??"unknown",D=g.enrichedCard?.source_defs??[];if(ne.howToRun==="queue-storage"&&Je){try{let B=await O().readQueueStoreRef();if(!B)throw new Error(`Board at ${e.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let U=o.queueStorageForRef(B,"task-executor"),ae=typeof ne.extra?.boardId=="string"?ne.extra.boardId:void 0,z=[];for(let Y of D){if(!Y.outputFile)continue;let ye=o.genId(),Se=`${P}/.staged/${ye}/${Y.outputFile}`,Me=await Promise.resolve(c.keyRef?.(Se));if(!Me)continue;let Qe={ref:chunkVQCIOKJV_cjs.a(Me),deliveryToken:ye,outputFile:Y.outputFile,cardId:P},ht=kt({cbk:g.callbackToken,rg:e.value,br:chunkVQCIOKJV_cjs.a(e),cid:P,b:Y.bindTo,d:Y.outputFile,cs:void 0,rqt:g.rqt,dt:Qe.deliveryToken});z.push({...ae?{boardId:ae}:{},ref:ne,args:{source_def:Y,base_ref:chunkVQCIOKJV_cjs.a(e),callback:r.createCallback(ht),output:Qe}});}z.length>0&&await U.enqueueMany(z);}catch(B){await E({type:"task-failed",taskName:P,error:B instanceof Error?B.message:String(B),timestamp:q()});}return}for(let B of D){if(!B.outputFile)continue;let U;if(Je){let Y=o.genId(),ye=`${P}/.staged/${Y}/${B.outputFile}`,Se=await Promise.resolve(c.keyRef?.(ye));Se&&(U={ref:chunkVQCIOKJV_cjs.a(Se),deliveryToken:Y,outputFile:B.outputFile,cardId:P});}let ae=kt({cbk:g.callbackToken,rg:e.value,br:chunkVQCIOKJV_cjs.a(e),cid:P,b:B.bindTo,d:B.outputFile,cs:void 0,rqt:g.rqt,...U?{dt:U.deliveryToken}:{}}),z=await o.dispatchExecution(ne,{source_def:B,base_ref:chunkVQCIOKJV_cjs.a(e),callback:r.createCallback(ae),...U?{output:U}:{}});z.dispatched||await E({type:"task-failed",taskName:P,error:z.error??"dispatch failed",timestamp:q()});}});}async function y(){try{let n=async()=>{let c=await H(),{events:i}=await te().readEntriesAfterCursor(c.lastDrainedJournalId);i.length>0&&await j();},t=await mt(o.lock,p,n);return b({ran:t!==!1})}catch(n){return T(n)}}async function k(){return v||(v=y().finally(()=>{v=null;}),v)}async function j(){let n=await O().readQueueStoreRef();if(!n)throw new Error(`Board at ${e.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);await o.queueStorageForRef(n,"process-accumulated").enqueue({boardRef:chunkVQCIOKJV_cjs.a(e)}),await o.requestProcessAccumulated?.();}async function re(){let n=await O().readQueueStoreRef();if(!n)throw new Error(`Board at ${e.value} has no queue store configured. Run: init --queue-store-ref <b64-ref>`);let t=o.queueStorageForRef(n,"process-accumulated");for(;;){let c=await t.lease({max:64,visibilityMs:1e3});if(c.length<=0)return;for(let i of c)await t.ack(i.id,i.leaseToken);if(c.length<64)return}}function L(){j();}return {async init(n){try{let t=n.params?.cardStoreRef;if(!t)return R("init requires params.cardStoreRef");if(w=n.params?.boardRuntimeStoreRef,!w)return R("init requires params.boardRuntimeStoreRef");let c=n.params?.outputsStoreRef;if(!c)return R("init requires params.outputsStoreRef");let i=n.params?.queueStoreRef;if(!i)return R("init requires params.queueStoreRef");let A=n.params?.fetchedSourcesStoreRef;if(!A)return R("init requires params.fetchedSourcesStoreRef");m=n.params?.scratchStoreRef;let I=n.params?.chatStoreRef;if(!I)return R("init requires params.chatStoreRef");let F=n.params?.artifactsStoreRef;if(!F)return R("init requires params.artifactsStoreRef");await Z()||await ee({lastDrainedJournalId:"",graph:chunkG4XXRHL2_cjs.p(chunkG4XXRHL2_cjs.a(chunkBAG7MHZP_cjs.B)),runtimeByCardId:{}},null);let C=O();await C.writeBoardRuntimeStoreRef(w),await C.writeCardStoreRef(t),await C.writeOutputsStoreRef(c),await C.writeQueueStoreRef(i),await C.writeFetchedSourcesStoreRef(A),await C.writeChatStoreRef(I),await C.writeArtifactsStoreRef(F),await(await $()).writeCard(chunkBAG7MHZP_cjs.m,chunkBAG7MHZP_cjs.p());let x=o.kvStorage("card-upsert"),Q=chunkBAG7MHZP_cjs.p(),G=chunkBAG7MHZP_cjs.E(Q),X=o.hashFn(G),ce=(await x.read(chunkBAG7MHZP_cjs.m))?.blobRef??await(await $()).readCardKey(chunkBAG7MHZP_cjs.m)??chunkBAG7MHZP_cjs.m;return await E({type:"task-upsert",taskName:chunkBAG7MHZP_cjs.m,taskConfig:G,timestamp:q()}),await x.write(chunkBAG7MHZP_cjs.m,{blobRef:ce,taskConfigHash:X,updatedAt:q()}),await E({type:"task-restart",taskName:chunkBAG7MHZP_cjs.m,timestamp:q()}),L(),await(await K()).writeStatusSnapshot(chunkBAG7MHZP_cjs.y(chunkBAG7MHZP_cjs.A(d,chunkG4XXRHL2_cjs.q((await H()).graph)))),b()}catch(t){return T(t)}},async status(n){try{let t=await K(),c=await t.readStatusSnapshot();return c||(c=chunkBAG7MHZP_cjs.y(chunkBAG7MHZP_cjs.A(d,chunkG4XXRHL2_cjs.q((await H()).graph))),await t.writeStatusSnapshot(c)),b(c)}catch(t){return T(t)}},async getCardStoreRef(n){try{let t=await O().readCardStoreRef();return t?b({storeRef:t}):R(`Board at ${e.value} has no card store configured`)}catch(t){return T(t)}},async getBoardRuntimeStoreRef(n){try{return b({storeRef:w??null})}catch(t){return T(t)}},async getOutputsStoreRef(n){try{let t=await O().readOutputsStoreRef();return t?b({storeRef:t}):R(`Board at ${e.value} has no outputs store configured`)}catch(t){return T(t)}},async getScratchStoreRef(n){try{return b({storeRef:m??null})}catch(t){return T(t)}},async getChatStoreRef(n){try{return b({storeRef:await O().readChatStoreRef()})}catch(t){return T(t)}},async getArtifactsStoreRef(n){try{return b({storeRef:await O().readArtifactsStoreRef()})}catch(t){return T(t)}},async getFetchedSourcesStoreRef(n){try{return b({storeRef:await O().readFetchedSourcesStoreRef()})}catch(t){return T(t)}},async getConfig(n){try{let t=n.params?.key;if(!t)return R("getConfig requires params.key");let c=O(),i;switch(t){case "task-executor":i=l??null;break;case "chat-handler-flow":i=S??null;break;case "board-runtime-store-ref":i=await c.readBoardRuntimeStoreRef();break;case "card-store-ref":i=await c.readCardStoreRef();break;case "outputs-store-ref":i=await c.readOutputsStoreRef();break;case "scratch-store-ref":i=m??null;break;case "chat-store-ref":i=await c.readChatStoreRef();break;case "artifacts-store-ref":i=await c.readArtifactsStoreRef();break;case "fetched-sources-store-ref":i=await c.readFetchedSourcesStoreRef();break;default:return R(`getConfig: unknown key "${t}"`)}return b({value:i})}catch(t){return T(t)}},async getOutputsDataObject(n){try{let t=n.params?.key;if(!t)return R("getOutputsDataObject requires params.key");if(t===chunkBAG7MHZP_cjs.l)return b(null);let c=await W();return b(c[t]??null)}catch(t){return T(t)}},async getAllOutputsDataObjects(n){try{return b(await W())}catch(t){return T(t)}},async getOutputsComputedValues(n){try{let t=n.params?.key;return t?b(await(await K()).readComputedValues(t)):R("getOutputsComputedValues requires params.key")}catch(t){return T(t)}},async getAllOutputsComputedValues(n){try{return b(await(await K()).readAllComputedValues())}catch(t){return T(t)}},async getOutputsFetchedSources(n){try{let t=n.params?.key;if(!t)return R("getOutputsFetchedSources requires params.key");let c=await(await ie()).listSources(t),i={};for(let A of c)i[A]=await ue(`${t}/${A}`);return b(i)}catch(t){return T(t)}},async getAllOutputsFetchedSources(n){try{let t=await ie(),c=await(await le()).listKeys(),i=new Set;for(let I of c){let F=I.indexOf("/");F>0&&!I.includes("/.staged/")&&i.add(I.slice(0,F));}let A={};for(let I of i){let F=await t.listSources(I);if(F.length!==0){A[I]={};for(let C of F)A[I][C]=await ue(`${I}/${C}`);}}return b(A)}catch(t){return T(t)}},async buildSseOneShotPayload(n){try{let t=(await(await $()).readAllCards()).filter(C=>C.id!==chunkBAG7MHZP_cjs.m),c=await this.status({});if(c.status!=="success")return c;let i=await this.getAllOutputsDataObjects({});if(i.status!=="success")return i;let A=await this.getAllOutputsComputedValues({});if(A.status!=="success")return A;let I=A.data,F={};for(let C of t){let x=typeof C?.id=="string"?C.id:null;if(!x)continue;let Q=C.card_data&&typeof C.card_data=="object"&&!Array.isArray(C.card_data)?C.card_data:{};F[x]={schema_version:"v1",card_id:x,card_data:{...Q},computed_values:I[x]&&typeof I[x]=="object"?I[x]:{}};}return b({cardDefinitions:t,statusSnapshot:c.data,dataObjectsByToken:i.data,cardRuntimeById:F})}catch(t){return T(t)}},async addCardFiles(n){try{let t=n.params?.cardId;if(!t)return R("addCardFiles requires params.cardId");let i=await St(await $(),{emitNotification:f}).appendFiles({params:{id:t},body:n.body});return i.status!=="success"?i:b({cardId:t,files_added:i.data.files_added,notified:!0})}catch(t){return T(t)}},async removeCard(n){try{let t=n.params?.id;if(!t)return R("removeCard requires params.id");try{await o.kvStorage("card-upsert").delete(t);}catch{}return await E({type:"task-removal",taskName:t,timestamp:q()}),t!==chunkBAG7MHZP_cjs.m&&await E({type:"task-restart",taskName:chunkBAG7MHZP_cjs.m,timestamp:q()}),L(),b()}catch(t){return T(t)}},async retrigger(n){try{let t=n.params?.id;return t?(await E({type:"task-restart",taskName:t,timestamp:q()}),L(),b()):R("retrigger requires params.id")}catch(t){return T(t)}},async processAccumulatedEvents(n){return await re(),k()},async upsertCard(n){try{let t=n.params?.cardId,c=n.params?.all,i=!!n.params?.restart;if(!t&&!c)return R("upsertCard requires --card-id <id> or --all");let A=await $(),I=c?(await A.readAllCards()).map(x=>x.id):[t];for(let x of I)if(!await A.readCard(x))return R(`Card "${x}" not found in board at ${e.value}`);let F=o.kvStorage("card-upsert"),C=!1;for(let x of I){let Q=await A.readCard(x);if(!Q)continue;let G=chunkBAG7MHZP_cjs.E(Q),X=o.hashFn(G),de=await F.read(x),ce=de?.taskConfigHash!==X;if(!(!ce&&!i)){if(ce){let Ie=de?.blobRef??await A.readCardKey(x)??x;await E({type:"task-upsert",taskName:x,taskConfig:G,timestamp:q()}),await F.write(x,{blobRef:Ie,taskConfigHash:X,updatedAt:q()}),C=C||x!==chunkBAG7MHZP_cjs.m;}i&&await E({type:"task-restart",taskName:x,timestamp:q()});}}return C&&await E({type:"task-restart",taskName:chunkBAG7MHZP_cjs.m,timestamp:q()}),L(),b()}catch(t){return T(t)}},async taskFailed(n){try{let t=n.params?.token;if(!t)return R("taskFailed requires params.token");let c=n.params?.error??"unknown error",i=be(t);return i?(await E({type:"task-failed",taskName:i.taskName,error:c,timestamp:q()}),L(),b()):R("Invalid callback token")}catch(t){return T(t)}},async taskProgress(n){try{let t=n.params?.token;if(!t)return R("taskProgress requires params.token");let c=(n.body??{}).update??{},i=be(t);return i?(await E({type:"task-progress",taskName:i.taskName,update:c,timestamp:q()}),L(),b()):R("Invalid callback token")}catch(t){return T(t)}},async sourceDataFetched(n){try{let t=n.params?.token,c=n.params?.ref;if(!t)return R("sourceDataFetched requires params.token");if(!c)return R("sourceDataFetched requires params.ref");let i=Ct(t);if(!i)return R("Invalid source token");let A=await ie(),I=i.dt||o.genId();i.dt||await A.ingestSourceDataStaged(i.cid,i.d,chunkVQCIOKJV_cjs.b(c),I);let F=be(i.cbk);return F?(await E({type:"task-progress",taskName:F.taskName,update:{bindTo:i.b,outputFile:i.d,fetchedAt:q(),deliveryToken:I,sourceChecksum:i.cs,rqt:i.rqt},timestamp:q()}),L(),b()):R("Invalid callback token embedded in source token")}catch(t){return T(t)}},async sourceDataFetchFailure(n){try{let t=n.params?.token,c=n.params?.reason??"unknown";if(!t)return R("sourceDataFetchFailure requires params.token");let i=Ct(t);if(!i)return R("Invalid source token");let A=be(i.cbk);return A?(await E({type:"task-progress",taskName:A.taskName,update:{bindTo:i.b,outputFile:i.d,failure:!0,reason:c,sourceChecksum:i.cs,rqt:i.rqt},timestamp:q()}),L(),b()):R("Invalid callback token embedded in source token")}catch(t){return T(t)}}}}
2
- exports.a=mt;exports.b=gt;exports.c=pt;exports.d=yt;exports.e=Nt;exports.f=_t;exports.g=St;exports.h=$t;exports.i=nr;//# sourceMappingURL=chunk-HVLWVMG6.cjs.map
3
- //# sourceMappingURL=chunk-HVLWVMG6.cjs.map