awaitly 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1278 -0
- package/dist/batch.cjs +2 -0
- package/dist/batch.cjs.map +1 -0
- package/dist/batch.d.cts +197 -0
- package/dist/batch.d.ts +197 -0
- package/dist/batch.js +2 -0
- package/dist/batch.js.map +1 -0
- package/dist/circuit-breaker.cjs +2 -0
- package/dist/circuit-breaker.cjs.map +1 -0
- package/dist/circuit-breaker.d.cts +208 -0
- package/dist/circuit-breaker.d.ts +208 -0
- package/dist/circuit-breaker.js +2 -0
- package/dist/circuit-breaker.js.map +1 -0
- package/dist/conditional.cjs +2 -0
- package/dist/conditional.cjs.map +1 -0
- package/dist/conditional.d.cts +249 -0
- package/dist/conditional.d.ts +249 -0
- package/dist/conditional.js +2 -0
- package/dist/conditional.js.map +1 -0
- package/dist/core-BuTBsR0x.d.cts +2325 -0
- package/dist/core-BuTBsR0x.d.ts +2325 -0
- package/dist/core.cjs +2 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.cts +3 -0
- package/dist/core.d.ts +3 -0
- package/dist/core.js +2 -0
- package/dist/core.js.map +1 -0
- package/dist/devtools.cjs +11 -0
- package/dist/devtools.cjs.map +1 -0
- package/dist/devtools.d.cts +176 -0
- package/dist/devtools.d.ts +176 -0
- package/dist/devtools.js +11 -0
- package/dist/devtools.js.map +1 -0
- package/dist/duration.cjs +2 -0
- package/dist/duration.cjs.map +1 -0
- package/dist/duration.d.cts +246 -0
- package/dist/duration.d.ts +246 -0
- package/dist/duration.js +2 -0
- package/dist/duration.js.map +1 -0
- package/dist/hitl.cjs +2 -0
- package/dist/hitl.cjs.map +1 -0
- package/dist/hitl.d.cts +337 -0
- package/dist/hitl.d.ts +337 -0
- package/dist/hitl.js +2 -0
- package/dist/hitl.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/match.cjs +2 -0
- package/dist/match.cjs.map +1 -0
- package/dist/match.d.cts +209 -0
- package/dist/match.d.ts +209 -0
- package/dist/match.js +2 -0
- package/dist/match.js.map +1 -0
- package/dist/otel.cjs +2 -0
- package/dist/otel.cjs.map +1 -0
- package/dist/otel.d.cts +185 -0
- package/dist/otel.d.ts +185 -0
- package/dist/otel.js +2 -0
- package/dist/otel.js.map +1 -0
- package/dist/persistence.cjs +2 -0
- package/dist/persistence.cjs.map +1 -0
- package/dist/persistence.d.cts +572 -0
- package/dist/persistence.d.ts +572 -0
- package/dist/persistence.js +2 -0
- package/dist/persistence.js.map +1 -0
- package/dist/policies.cjs +2 -0
- package/dist/policies.cjs.map +1 -0
- package/dist/policies.d.cts +378 -0
- package/dist/policies.d.ts +378 -0
- package/dist/policies.js +2 -0
- package/dist/policies.js.map +1 -0
- package/dist/ratelimit.cjs +2 -0
- package/dist/ratelimit.cjs.map +1 -0
- package/dist/ratelimit.d.cts +279 -0
- package/dist/ratelimit.d.ts +279 -0
- package/dist/ratelimit.js +2 -0
- package/dist/ratelimit.js.map +1 -0
- package/dist/reliability.cjs +2 -0
- package/dist/reliability.cjs.map +1 -0
- package/dist/reliability.d.cts +5 -0
- package/dist/reliability.d.ts +5 -0
- package/dist/reliability.js +2 -0
- package/dist/reliability.js.map +1 -0
- package/dist/resource.cjs +2 -0
- package/dist/resource.cjs.map +1 -0
- package/dist/resource.d.cts +171 -0
- package/dist/resource.d.ts +171 -0
- package/dist/resource.js +2 -0
- package/dist/resource.js.map +1 -0
- package/dist/retry.cjs +2 -0
- package/dist/retry.cjs.map +1 -0
- package/dist/retry.d.cts +2 -0
- package/dist/retry.d.ts +2 -0
- package/dist/retry.js +2 -0
- package/dist/retry.js.map +1 -0
- package/dist/saga.cjs +2 -0
- package/dist/saga.cjs.map +1 -0
- package/dist/saga.d.cts +231 -0
- package/dist/saga.d.ts +231 -0
- package/dist/saga.js +2 -0
- package/dist/saga.js.map +1 -0
- package/dist/schedule.cjs +2 -0
- package/dist/schedule.cjs.map +1 -0
- package/dist/schedule.d.cts +387 -0
- package/dist/schedule.d.ts +387 -0
- package/dist/schedule.js +2 -0
- package/dist/schedule.js.map +1 -0
- package/dist/tagged-error.cjs +2 -0
- package/dist/tagged-error.cjs.map +1 -0
- package/dist/tagged-error.d.cts +252 -0
- package/dist/tagged-error.d.ts +252 -0
- package/dist/tagged-error.js +2 -0
- package/dist/tagged-error.js.map +1 -0
- package/dist/testing.cjs +2 -0
- package/dist/testing.cjs.map +1 -0
- package/dist/testing.d.cts +228 -0
- package/dist/testing.d.ts +228 -0
- package/dist/testing.js +2 -0
- package/dist/testing.js.map +1 -0
- package/dist/visualize.cjs +1573 -0
- package/dist/visualize.cjs.map +1 -0
- package/dist/visualize.d.cts +1415 -0
- package/dist/visualize.d.ts +1415 -0
- package/dist/visualize.js +1573 -0
- package/dist/visualize.js.map +1 -0
- package/dist/webhook.cjs +2 -0
- package/dist/webhook.cjs.map +1 -0
- package/dist/webhook.d.cts +469 -0
- package/dist/webhook.d.ts +469 -0
- package/dist/webhook.js +2 -0
- package/dist/webhook.js.map +1 -0
- package/dist/workflow-entry-C6nH8ByN.d.ts +858 -0
- package/dist/workflow-entry-RRTlSg_4.d.cts +858 -0
- package/dist/workflow.cjs +2 -0
- package/dist/workflow.cjs.map +1 -0
- package/dist/workflow.d.cts +2 -0
- package/dist/workflow.d.ts +2 -0
- package/dist/workflow.js +2 -0
- package/dist/workflow.js.map +1 -0
- package/docs/advanced.md +1548 -0
- package/docs/api.md +513 -0
- package/docs/coming-from-neverthrow.md +1013 -0
- package/docs/match.md +417 -0
- package/docs/pino-logging-example.md +396 -0
- package/docs/policies.md +508 -0
- package/docs/resource-management.md +509 -0
- package/docs/schedule.md +467 -0
- package/docs/tagged-error.md +785 -0
- package/docs/visualization.md +430 -0
- package/docs/visualize-examples.md +330 -0
- package/package.json +227 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";var ge=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var qe=Object.prototype.hasOwnProperty;var Ge=(e,t)=>{for(var n in t)ge(e,n,{get:t[n],enumerable:!0})},Ze=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Xe(t))!qe.call(e,o)&&o!==n&&ge(e,o,{get:()=>t[o],enumerable:!(i=Je(t,o))||i.enumerable});return e};var Qe=e=>Ze(ge({},"__esModule",{value:!0}),e);var Qt={};Ge(Qt,{createConsoleLogger:()=>Ve,createDevtools:()=>Ee,quickVisualize:()=>Ke,renderDiff:()=>Fe});module.exports=Qe(Qt);function C(e){if(e<1e3)return`${Math.round(e)}ms`;if(e<6e4)return`${(e/1e3).toFixed(1).replace(/\.0$/,"")}s`;let t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);return n===0?`${t}m`:`${t}m ${n}s`}function we(){return`node_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function et(e){for(let t of e)if((t.type==="parallel"||t.type==="race"||t.type==="sequence")&&!t.id.startsWith("detected_")||"decisionId"in t)return!0;return!1}function be(e,t={}){if(et(e))return e;let{minOverlapMs:n=0,maxGapMs:i=5}=t,o=[],r=[];for(let c=0;c<e.length;c++){let d=e[c];d.type==="step"&&d.startTs!==void 0?o.push({node:d,startTs:d.startTs,endTs:d.endTs??d.startTs+(d.durationMs??0),originalIndex:c}):r.push({node:d,originalIndex:c})}if(o.length<=1)return e;o.sort((c,d)=>c.startTs-d.startTs);let s=[],a=[o[0]];for(let c=1;c<o.length;c++){let d=o[c],p=Math.min(...a.map(x=>x.startTs)),f=Math.max(...a.map(x=>x.endTs)),m=d.startTs<=p+i,v=d.startTs<f;if(!m&&!v){s.push(a),a=[d];continue}let g=v?Math.min(d.endTs,f)-d.startTs:0;m||g>=n?a.push(d):(s.push(a),a=[d])}s.push(a);let u=[];for(let c of s){let d=Math.min(...c.map(p=>p.originalIndex));if(c.length===1)u.push({node:c[0].node,position:d});else{let p=c.map(g=>g.node),f=Math.min(...c.map(g=>g.startTs)),m=Math.max(...c.map(g=>g.endTs)),v={type:"parallel",id:`detected_parallel_${f}`,name:`${p.length} parallel steps`,state:tt(p),mode:"all",children:p,startTs:f,endTs:m,durationMs:m-f};u.push({node:v,position:d})}}for(let{node:c,originalIndex:d}of r)u.push({node:c,position:d});return u.sort((c,d)=>c.position-d.position),u.map(c=>c.node)}function tt(e){return e.some(r=>r.state==="error")?"error":e.some(r=>r.state==="running")?"running":e.some(r=>r.state==="pending")?"pending":(e.every(r=>r.state==="success"||r.state==="cached"),"success")}function te(e={}){let{detectParallel:t=!0,parallelDetection:n,enableSnapshots:i=!1,maxSnapshots:o=1e3}=e,r,s,a="pending",u,c,d=new Map,p=[],f=[],m=[],v=Date.now(),g=v,x={onAfterStep:new Map},y=[],$=0;function D(l){return l.stepId??l.stepKey??l.name??we()}function k(l){if(f.length>0){let h=f[f.length-1];for(let _ of h.branches.values())if(_.taken){_.children.push(l),g=Date.now();return}let w=Array.from(h.branches.values())[0];if(w){w.children.push(l),g=Date.now();return}}p.length>0?p[p.length-1].children.push(l):m.push(l),g=Date.now()}function T(l){if(!i)return;let h=O(),w=new Map;for(let[P,X]of d)w.set(P,{id:X.id,name:X.name,key:X.key,startTs:X.startTs,retryCount:X.retryCount,timedOut:X.timedOut,timeoutMs:X.timeoutMs});let _={id:`snapshot_${$}`,eventIndex:$,event:structuredClone(l),ir:structuredClone(h),timestamp:Date.now(),activeSteps:w};y.push(_),y.length>o&&y.shift(),$++}function R(l){switch(l.type){case"workflow_start":r=l.workflowId,s=l.ts,a="running",v=Date.now(),g=v,x.onAfterStep=new Map;break;case"workflow_success":a="success",c=l.durationMs,g=Date.now();break;case"workflow_error":a="error",u=l.error,c=l.durationMs,g=Date.now();break;case"step_start":{let h=D(l);d.set(h,{id:h,name:l.name,key:l.stepKey,startTs:l.ts,retryCount:0,timedOut:!1}),g=Date.now();break}case"step_success":{let h=D(l),w=d.get(h);if(w){let _={type:"step",id:w.id,name:w.name,key:w.key,state:"success",startTs:w.startTs,endTs:l.ts,durationMs:l.durationMs,...w.retryCount>0&&{retryCount:w.retryCount},...w.timedOut&&{timedOut:!0,timeoutMs:w.timeoutMs}};k(_),d.delete(h)}break}case"step_error":{let h=D(l),w=d.get(h);if(w){let _={type:"step",id:w.id,name:w.name,key:w.key,state:"error",startTs:w.startTs,endTs:l.ts,durationMs:l.durationMs,error:l.error,...w.retryCount>0&&{retryCount:w.retryCount},...w.timedOut&&{timedOut:!0,timeoutMs:w.timeoutMs}};k(_),d.delete(h)}break}case"step_aborted":{let h=D(l),w=d.get(h);if(w){let _={type:"step",id:w.id,name:w.name,key:w.key,state:"aborted",startTs:w.startTs,endTs:l.ts,durationMs:l.durationMs,...w.retryCount>0&&{retryCount:w.retryCount},...w.timedOut&&{timedOut:!0,timeoutMs:w.timeoutMs}};k(_),d.delete(h)}break}case"step_cache_hit":{let w={type:"step",id:D(l),name:l.name,key:l.stepKey,state:"cached",startTs:l.ts,endTs:l.ts,durationMs:0};k(w);break}case"step_cache_miss":break;case"step_complete":break;case"step_timeout":{let h=D(l),w=d.get(h);w&&(w.timedOut=!0,w.timeoutMs=l.timeoutMs),g=Date.now();break}case"step_retry":{let h=D(l),w=d.get(h);w&&(w.retryCount=(l.attempt??1)-1),g=Date.now();break}case"step_retries_exhausted":g=Date.now();break;case"step_skipped":{let w={type:"step",id:D(l),name:l.name,key:l.stepKey,state:"skipped",startTs:l.ts,endTs:l.ts,durationMs:0};k(w);break}case"hook_should_run":{let h={type:"shouldRun",state:"success",ts:l.ts,durationMs:l.durationMs,context:{result:l.result,skipped:l.skipped}};x.shouldRun=h,g=Date.now();break}case"hook_should_run_error":{let h={type:"shouldRun",state:"error",ts:l.ts,durationMs:l.durationMs,error:l.error};x.shouldRun=h,g=Date.now();break}case"hook_before_start":{let h={type:"onBeforeStart",state:"success",ts:l.ts,durationMs:l.durationMs,context:{result:l.result,skipped:l.skipped}};x.onBeforeStart=h,g=Date.now();break}case"hook_before_start_error":{let h={type:"onBeforeStart",state:"error",ts:l.ts,durationMs:l.durationMs,error:l.error};x.onBeforeStart=h,g=Date.now();break}case"hook_after_step":{let h={type:"onAfterStep",state:"success",ts:l.ts,durationMs:l.durationMs,context:{stepKey:l.stepKey}};x.onAfterStep.set(l.stepKey,h),g=Date.now();break}case"hook_after_step_error":{let h={type:"onAfterStep",state:"error",ts:l.ts,durationMs:l.durationMs,error:l.error,context:{stepKey:l.stepKey}};x.onAfterStep.set(l.stepKey,h),g=Date.now();break}}T(l)}function N(l){if(l.type==="scope_start")p.push({id:l.scopeId,name:l.name,type:l.scopeType,startTs:l.ts,children:[]}),g=Date.now();else if(l.type==="scope_end"){let h=p.pop();if(h){let w=h.type==="race"?{type:"race",id:h.id,name:h.name,state:W(h.children),startTs:h.startTs,endTs:l.ts,durationMs:l.durationMs,children:h.children,winnerId:l.winnerId}:{type:"parallel",id:h.id,name:h.name,state:W(h.children),startTs:h.startTs,endTs:l.ts,durationMs:l.durationMs,children:h.children,mode:h.type==="allSettled"?"allSettled":"all"};k(w)}}}function L(l){if(l.type==="decision_start")f.push({id:l.decisionId,name:l.name,condition:l.condition,decisionValue:l.decisionValue,startTs:l.ts,branches:new Map}),g=Date.now();else if(l.type==="decision_branch"){let h=f[f.length-1];if(h&&h.id===l.decisionId){let w=l.branchLabel,_=h.branches.get(w);_?_.taken=l.taken:h.branches.set(w,{label:l.branchLabel,condition:l.condition,taken:l.taken,children:[]}),g=Date.now()}}else if(l.type==="decision_end"){let h=f.pop();if(h&&h.id===l.decisionId){let w=Array.from(h.branches.values()),_={type:"decision",id:h.id,name:h.name,state:W(w.flatMap(P=>P.taken?P.children:[])),startTs:h.startTs,endTs:l.ts,durationMs:l.durationMs,condition:h.condition,decisionValue:h.decisionValue,branchTaken:l.branchTaken??h.branchTaken,branches:w};k(_)}}}function W(l){return l.length===0?"success":l.some(P=>P.state==="error")?"error":l.every(P=>P.state==="success"||P.state==="cached")?"success":l.some(P=>P.state==="running")?"running":"pending"}function S(){let l=[...m];for(let[,h]of d)l.push({type:"step",id:h.id,name:h.name,key:h.key,state:"running",startTs:h.startTs,...h.retryCount>0&&{retryCount:h.retryCount},...h.timedOut&&{timedOut:!0,timeoutMs:h.timeoutMs}});return l}function O(){let l=S();t&&(l=be(l,n));let h={type:"workflow",id:r??we(),workflowId:r??"unknown",state:a,startTs:s,durationMs:c,children:l,error:u},w=x.shouldRun!==void 0||x.onBeforeStart!==void 0||x.onAfterStep.size>0;return{root:h,metadata:{createdAt:v,lastUpdatedAt:g},...w&&{hooks:x}}}function se(){r=void 0,s=void 0,a="pending",u=void 0,c=void 0,d.clear(),p.length=0,f.length=0,m=[],v=Date.now(),g=v,x={onAfterStep:new Map},y.length=0,$=0}function ae(){return[...y]}function je(l){return y[l]}function Ue(l){return y[l]?.ir}function Ye(){y.length=0,$=0}return{handleEvent:R,handleScopeEvent:N,handleDecisionEvent:L,getIR:O,reset:se,getSnapshots:ae,getSnapshotAt:je,getIRAt:Ue,clearSnapshots:Ye,get hasActiveSteps(){return d.size>0},get state(){return a},get snapshotCount(){return y.length},get snapshotsEnabled(){return i}}}function B(e){return e.type==="step"}function $e(e){return e.type==="sequence"}function z(e){return e.type==="parallel"}function H(e){return e.type==="race"}function F(e){return e.type==="decision"}var ve="\x1B[0m",nt="\x1B[1m",De="\x1B[2m",rt="\x1B[31m",ot="\x1B[32m",it="\x1B[33m",st="\x1B[34m",Ie="\x1B[90m",at="\x1B[37m";function U(e,t){return t?`${t}${e}${ve}`:e}function ne(e){return`${nt}${e}${ve}`}function E(e){return`${De}${e}${ve}`}var K={pending:at,running:it,success:ot,error:rt,aborted:Ie,cached:st,skipped:De+Ie};function ct(e){switch(e){case"pending":return"\u25CB";case"running":return"\u27F3";case"success":return"\u2713";case"error":return"\u2717";case"aborted":return"\u2298";case"cached":return"\u21BA";case"skipped":return"\u2298"}}function re(e,t){let n=ct(e);return U(n,t[e])}function ye(e,t,n){return U(e,n[t])}function Y(e){return e.replace(/\x1b\[[0-9;]*m/g,"")}var b={topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",teeRight:"\u251C",teeLeft:"\u2524",teeDown:"\u252C",teeUp:"\u2534",cross:"\u253C"},Z={cold:"\x1B[34m",cool:"\x1B[36m",neutral:"",warm:"\x1B[33m",hot:"\x1B[31m",critical:"\x1B[41m"},dt="\x1B[0m";function lt(e){return e<.2?Z.cold:e<.4?Z.cool:e<.6?Z.neutral:e<.8?Z.warm:e<.95?Z.hot:Z.critical}function Ne(e,t){let n=lt(t);return n?`${n}${e}${dt}`:e}var Me="\u2581\u2582\u2583\u2584\u2585\u2586\u2587\u2588";function xe(e,t=10){if(e.length===0)return"";let n=e.slice(-t),i=Math.min(...n),r=Math.max(...n)-i||1;return n.map(s=>{let a=(s-i)/r,u=Math.floor(a*(Me.length-1));return Me[u]}).join("")}function ke(e,t){let n=Y(e).length,i=Math.max(0,t-n);return e+" ".repeat(i)}function ut(e,t){if(!t)return b.horizontal.repeat(e);let n=` ${t} `,i=e-n.length;if(i<4)return b.horizontal.repeat(e);let o=2,r=i-o;return b.horizontal.repeat(o)+n+b.horizontal.repeat(r)}function Te(e,t,n){let i=e.state==="success"?U("\u2699",n.success):U("\u26A0",n.error),o=e.durationMs!==void 0?E(` [${C(e.durationMs)}]`):"",r="";e.type==="shouldRun"&&e.context?.skipped?r=E(" \u2192 workflow skipped"):e.type==="shouldRun"&&e.context?.result===!0?r=E(" \u2192 proceed"):e.type==="onBeforeStart"&&e.context?.skipped?r=E(" \u2192 workflow skipped"):e.type==="onAfterStep"&&e.context?.stepKey&&(r=E(` (${e.context.stepKey})`));let s=e.state==="error"&&e.error?E(` error: ${String(e.error)}`):"";return`${i} ${E(t)}${r}${o}${s}`}function pt(e,t){let n=[];return e.shouldRun&&n.push(Te(e.shouldRun,"shouldRun",t)),e.onBeforeStart&&n.push(Te(e.onBeforeStart,"onBeforeStart",t)),n.length>0&&n.push(E("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),n}function q(){return{name:"ascii",supportsLive:!0,render(e,t){let n={...K,...t.colors},i=t.terminalWidth??60,o=i-4,r=[],s=e.root.name??"workflow",a=ne(s);if(r.push(`${b.topLeft}${ut(i-2,a)}${b.topRight}`),r.push(`${b.vertical}${" ".repeat(i-2)}${b.vertical}`),e.hooks){let c=pt(e.hooks,n);for(let d of c)r.push(`${b.vertical} ${ke(d,o)}${b.vertical}`)}let u=ce(e.root.children,t,n,0,e.hooks);for(let c of u)r.push(`${b.vertical} ${ke(c,o)}${b.vertical}`);if(r.push(`${b.vertical}${" ".repeat(i-2)}${b.vertical}`),e.root.durationMs!==void 0&&t.showTimings){let c=e.root.state==="success"?"Completed":"Failed",p=`${ye(c,e.root.state,n)} in ${C(e.root.durationMs)}`;r.push(`${b.vertical} ${ke(p,o)}${b.vertical}`),r.push(`${b.vertical}${" ".repeat(i-2)}${b.vertical}`)}return r.push(`${b.bottomLeft}${b.horizontal.repeat(i-2)}${b.bottomRight}`),r.join(`
|
|
2
|
+
`)}}}function ce(e,t,n,i,o){let r=[];for(let s of e)B(s)?r.push(Se(s,t,n,o)):z(s)?r.push(...ft(s,t,n,i,o)):H(s)?r.push(...mt(s,t,n,i,o)):F(s)&&r.push(...ht(s,t,n,i,o));return r}function Se(e,t,n,i){let o=re(e.state,n),r=e.name??e.key??"step",s=t,a=e.name??e.id,u=s.showHeatmap&&s.heatmapData?s.heatmapData.heat.get(e.id)??s.heatmapData.heat.get(a):void 0,c;u!==void 0?c=Ne(r,u):c=ye(r,e.state,n);let d=`${o} ${c}`;if(t.showKeys&&e.key&&(d+=E(` [key: ${e.key}]`)),e.input!==void 0){let p=typeof e.input=="string"?e.input:JSON.stringify(e.input).slice(0,30);d+=E(` [in: ${p}${p.length>=30?"...":""}]`)}if(e.output!==void 0&&e.state==="success"){let p=typeof e.output=="string"?e.output:JSON.stringify(e.output).slice(0,30);d+=E(` [out: ${p}${p.length>=30?"...":""}]`)}if(t.showTimings&&e.durationMs!==void 0){let p=C(e.durationMs),f=u!==void 0?Ne(`[${p}]`,u):E(`[${p}]`);d+=` ${f}`}if(s.showSparklines&&s.timingHistory){let p=s.timingHistory.get(a);p&&p.length>1&&(d+=` ${E(xe(p))}`)}if(e.retryCount!==void 0&&e.retryCount>0&&(d+=E(` [${e.retryCount} ${e.retryCount===1?"retry":"retries"}]`)),e.timedOut){let p=e.timeoutMs!==void 0?` ${e.timeoutMs}ms`:"";d+=E(` [timeout${p}]`)}if(i&&e.key&&i.onAfterStep.has(e.key)){let p=i.onAfterStep.get(e.key),f=p.state==="success"?U("\u2699",n.success):U("\u26A0",n.error),m=p.durationMs!==void 0?E(` ${C(p.durationMs)}`):"";d+=` ${f}${m}`}return d}function ft(e,t,n,i,o){let r=[],s=" ".repeat(i),a=re(e.state,n),u=e.name??"parallel",c=e.mode==="allSettled"?" (allSettled)":"";if(r.push(`${s}${b.teeRight}${b.teeDown}${b.horizontal} ${a} ${ne(u)}${c}`),e.children.length===0)r.push(`${s}${b.vertical} ${E("(operations not individually tracked)")}`),r.push(`${s}${b.vertical} ${E("(wrap each operation with step() to see individual steps)")}`);else for(let d=0;d<e.children.length;d++){let p=e.children[d],m=d===e.children.length-1?`${s}${b.vertical} ${b.bottomLeft}`:`${s}${b.vertical} ${b.teeRight}`;if(B(p))r.push(`${m} ${Se(p,t,n,o)}`);else{let v=ce([p],t,n,i+1,o);for(let g of v)r.push(`${s}${b.vertical} ${g}`)}}return t.showTimings&&e.durationMs!==void 0&&r.push(`${s}${b.bottomLeft}${b.horizontal}${b.horizontal} ${E(`[${C(e.durationMs)}]`)}`),r}function mt(e,t,n,i,o){let r=[],s=" ".repeat(i),a=re(e.state,n),u=e.name??"race";if(r.push(`${s}${b.teeRight}\u26A1 ${a} ${ne(u)}`),e.children.length===0)r.push(`${s}${b.vertical} ${E("(operations not individually tracked)")}`),r.push(`${s}${b.vertical} ${E("(wrap each operation with step() to see individual steps)")}`);else for(let c=0;c<e.children.length;c++){let d=e.children[c],f=c===e.children.length-1?`${s}${b.vertical} ${b.bottomLeft}`:`${s}${b.vertical} ${b.teeRight}`,v=e.winnerId&&d.id===e.winnerId?E(" (winner)"):"";if(B(d))r.push(`${f} ${Se(d,t,n,o)}${v}`);else{let g=ce([d],t,n,i+1,o);for(let x of g)r.push(`${s}${b.vertical} ${x}`)}}return t.showTimings&&e.durationMs!==void 0&&r.push(`${s}${b.bottomLeft}${b.horizontal}${b.horizontal} ${E(`[${C(e.durationMs)}]`)}`),r}function ht(e,t,n,i,o){let r=[],s=" ".repeat(i),a=re(e.state,n),u=e.name??"decision",c=e.condition?E(` (${e.condition})`):"",d=e.decisionValue!==void 0?E(` = ${String(e.decisionValue)}`):"",p=e.branchTaken!==void 0?E(` \u2192 ${String(e.branchTaken)}`):"";r.push(`${s}${b.teeRight}${b.teeDown}${b.horizontal} ${a} ${ne(u)}${c}${d}${p}`);for(let f=0;f<e.branches.length;f++){let m=e.branches[f],g=f===e.branches.length-1?`${s}${b.vertical} ${b.bottomLeft}`:`${s}${b.vertical} ${b.teeRight}`,x=m.taken?"\u2713":"\u2298",y=m.taken?n.success:n.skipped,$=U(`${x} ${m.label}`,y),D=m.condition?E(` (${m.condition})`):"";if(r.push(`${g} ${$}${D}`),m.children.length>0){let k=ce(m.children,t,n,i+1,o);for(let T of k)r.push(`${s}${b.vertical} ${T}`)}else m.taken||r.push(`${s}${b.vertical} ${E("(skipped)")}`)}return t.showTimings&&e.durationMs!==void 0&&r.push(`${s}${b.bottomLeft}${b.horizontal}${b.horizontal} ${E(`[${C(e.durationMs)}]`)}`),r}function oe(e){return e<.2?"cold":e<.4?"cool":e<.6?"neutral":e<.8?"warm":e<.95?"hot":"critical"}function gt(){return[" classDef pending fill:#f3f4f6,stroke:#9ca3af,stroke-width:2px,color:#374151"," classDef running fill:#fef3c7,stroke:#f59e0b,stroke-width:3px,color:#92400e"," classDef success fill:#d1fae5,stroke:#10b981,stroke-width:3px,color:#065f46"," classDef error fill:#fee2e2,stroke:#ef4444,stroke-width:3px,color:#991b1b"," classDef aborted fill:#f3f4f6,stroke:#6b7280,stroke-width:2px,color:#4b5563,stroke-dasharray: 5 5"," classDef cached fill:#dbeafe,stroke:#3b82f6,stroke-width:3px,color:#1e40af"," classDef skipped fill:#f9fafb,stroke:#d1d5db,stroke-width:2px,color:#6b7280,stroke-dasharray: 5 5"]}function wt(){return[" classDef heat_cold fill:#dbeafe,stroke:#3b82f6,stroke-width:2px,color:#1e40af"," classDef heat_cool fill:#ccfbf1,stroke:#14b8a6,stroke-width:2px,color:#0f766e"," classDef heat_neutral fill:#f3f4f6,stroke:#6b7280,stroke-width:2px,color:#374151"," classDef heat_warm fill:#fef3c7,stroke:#f59e0b,stroke-width:2px,color:#92400e"," classDef heat_hot fill:#fed7aa,stroke:#f97316,stroke-width:3px,color:#c2410c"," classDef heat_critical fill:#fecaca,stroke:#ef4444,stroke-width:3px,color:#b91c1c"]}function bt(e){return`heat_${e}`}function vt(){return[" classDef hook_success fill:#e0f2fe,stroke:#0284c7,stroke-width:2px,color:#0c4a6e"," classDef hook_error fill:#fef2f2,stroke:#dc2626,stroke-width:2px,color:#7f1d1d"]}function yt(e,t,n){let i;if(e.shouldRun){let o="hook_shouldRun",r=e.shouldRun.state==="success"?"hook_success":"hook_error",s=e.shouldRun.state==="success"?"\u2699":"\u26A0",a=n.showTimings&&e.shouldRun.durationMs!==void 0?` ${C(e.shouldRun.durationMs)}`:"",u=e.shouldRun.context?.skipped?"\\nskipped workflow":e.shouldRun.context?.result===!0?"\\nproceed":"";t.push(` ${o}[["${s} shouldRun${u}${a}"]]:::${r}`),i=o}if(e.onBeforeStart){let o="hook_beforeStart",r=e.onBeforeStart.state==="success"?"hook_success":"hook_error",s=e.onBeforeStart.state==="success"?"\u2699":"\u26A0",a=n.showTimings&&e.onBeforeStart.durationMs!==void 0?` ${C(e.onBeforeStart.durationMs)}`:"",u=e.onBeforeStart.context?.skipped?"\\nskipped workflow":"";t.push(` ${o}[["${s} onBeforeStart${u}${a}"]]:::${r}`),i&&t.push(` ${i} --> ${o}`),i=o}return{lastHookId:i}}var Le=0;function ie(e="node"){return`${e}_${++Le}`}function kt(){Le=0}function A(e){return e.replace(/[{}[\]()]/g,"").replace(/[<>]/g,"").replace(/"/g,"'").trim()}function Oe(e){return A(e).replace(/[[\]]/g,"")}function de(){return{name:"mermaid",supportsLive:!1,render(e,t){kt();let n=[],i=t;n.push("flowchart TD");let o;e.hooks&&(o=yt(e.hooks,n,t).lastHookId);let r="start";n.push(` ${r}(("\u25B6 Start"))`),o&&n.push(` ${o} --> ${r}`);let s=r;for(let a of e.root.children){let u=le(a,t,n,i,e.hooks);n.push(` ${s} --> ${u.entryId}`),s=u.exitId}if(e.root.state==="success"||e.root.state==="error"){let a="finish",u=e.root.state==="success"?"\u2713":"\u2717",c=e.root.state==="success"?"Done":"Failed",d=`(("${u} ${c}"))`,p=e.root.state==="success"?":::success":":::error";n.push(` ${a}${d}${p}`),n.push(` ${s} --> ${a}`)}return n.push(""),n.push(...gt()),i.showHeatmap&&n.push(...wt()),e.hooks&&n.push(...vt()),n.join(`
|
|
3
|
+
`)}}}function le(e,t,n,i,o){if(B(e))return xt(e,t,n,i,o);if(z(e))return St(e,t,n,i,o);if(H(e))return Rt(e,t,n,i,o);if(F(e))return Et(e,t,n,i,o);let r=ie("unknown");return n.push(` ${r}[Unknown Node]`),{entryId:r,exitId:r}}function xt(e,t,n,i,o){let r=t,s=r.showRetryEdges??!0,a=r.showErrorEdges??!0,u=r.showTimeoutEdges??!0,c=e.key?`step_${e.key.replace(/[^a-zA-Z0-9]/g,"_")}`:ie("step"),d=A(e.name??e.key??"Step"),p=t.showTimings&&e.durationMs!==void 0?` ${C(e.durationMs)}`:"",f="";switch(e.state){case"success":f="\u2713 ";break;case"error":f="\u2717 ";break;case"cached":f="\u{1F4BE} ";break;case"running":f="\u23F3 ";break;case"skipped":f="\u2298 ";break}let m="";if(e.input!==void 0){let k=typeof e.input=="string"?A(e.input):A(JSON.stringify(e.input).slice(0,20));m+=`\\nin: ${k}`}if(e.output!==void 0&&e.state==="success"){let k=typeof e.output=="string"?A(e.output):A(JSON.stringify(e.output).slice(0,20));m+=`\\nout: ${k}`}let v="";if(o&&e.key&&o.onAfterStep.has(e.key)){let k=o.onAfterStep.get(e.key),T=k.state==="success"?"\u2699":"\u26A0",R=t.showTimings&&k.durationMs!==void 0?` ${C(k.durationMs)}`:"";v=`\\n${T} hook${R}`}let g=(f+d+m+v+p).trim(),x,y=e.name??e.id,$=i?.showHeatmap&&i.heatmapData?i.heatmapData.heat.get(e.id)??i.heatmapData.heat.get(y):void 0;if($!==void 0){let k=oe($);x=bt(k)}else x=e.state;let D;switch(e.state){case"error":D=`{{${g}}}`;break;case"cached":D=`[(${g})]`;break;case"skipped":D=`[${g}]:::skipped`;break;default:D=`[${g}]`}if(n.push(` ${c}${D}:::${x}`),s&&e.retryCount!==void 0&&e.retryCount>0){let k=`\u21BB ${e.retryCount} retr${e.retryCount===1?"y":"ies"}`;n.push(` ${c} -.->|"${k}"| ${c}`)}if(a&&e.state==="error"&&e.error!==void 0){let k=`ERR_${c}`,T=A(String(e.error)).slice(0,30);n.push(` ${k}{{${T}}}`),n.push(` ${c} -->|error| ${k}`),n.push(` style ${k} fill:#fee2e2,stroke:#dc2626`)}if(u&&e.timedOut){let k=`TO_${c}`,T=e.timeoutMs!==void 0?`${e.timeoutMs}ms`:"";n.push(` ${k}{{\u23F1 Timeout ${T}}}`),n.push(` ${c} -.->|timeout| ${k}`),n.push(` style ${k} fill:#fef3c7,stroke:#f59e0b`)}return{entryId:c,exitId:c}}function St(e,t,n,i,o){let r=ie("parallel"),s=`${r}_fork`,a=`${r}_join`,u=Oe(e.name??"Parallel"),c=e.mode==="allSettled"?" (allSettled)":"";if(e.children.length===0){let f=r,m=A(`${u}${c}`),v="operations not individually tracked",g=t.showTimings&&e.durationMs!==void 0?` ${C(e.durationMs)}`:"";return n.push(` ${f}[${m}${g}\\n${v}]:::${e.state}`),{entryId:f,exitId:f}}n.push(` subgraph ${r}["${u}${c}"]`),n.push(" direction TB"),n.push(` ${s}{"\u26A1 Fork"}`);let d=[];for(let f of e.children){let m=le(f,t,n,i,o);n.push(` ${s} --> ${m.entryId}`),d.push(m.exitId)}n.push(` ${a}{"\u2713 Join"}`);for(let f of d)n.push(` ${f} --> ${a}`);n.push(" end");let p=e.state;return n.push(` class ${r} ${p}`),{entryId:s,exitId:a}}function Rt(e,t,n,i,o){let r=ie("race"),s=`${r}_start`,a=`${r}_end`,u=Oe(e.name??"Race");if(e.children.length===0){let f=r,m=A(u),v="operations not individually tracked",g=t.showTimings&&e.durationMs!==void 0?` ${C(e.durationMs)}`:"";return n.push(` ${f}[\u26A1 ${m}${g}\\n${v}]:::${e.state}`),{entryId:f,exitId:f}}n.push(` subgraph ${r}["\u26A1 ${u}"]`),n.push(" direction TB"),n.push(` ${s}(("\u{1F3C1} Start"))`);let c=[],d;for(let f of e.children){let m=le(f,t,n,i,o),v=B(f)&&e.winnerId===f.id;n.push(` ${s} --> ${m.entryId}`),v&&(d=m.exitId),c.push({exitId:m.exitId,isWinner:v})}n.push(` ${a}(("\u2713 First"))`);for(let{exitId:f,isWinner:m}of c)m&&d?n.push(` ${f} ==>|\u{1F3C6} Winner| ${a}`):e.winnerId?n.push(` ${f} -. cancelled .-> ${a}`):n.push(` ${f} --> ${a}`);n.push(" end");let p=e.state;return n.push(` class ${r} ${p}`),{entryId:s,exitId:a}}function Et(e,t,n,i,o){let r=e.key?`decision_${e.key.replace(/[^a-zA-Z0-9]/g,"_")}`:ie("decision"),s=A(e.condition??"condition"),a=e.decisionValue!==void 0?` = ${A(String(e.decisionValue)).slice(0,30)}`:"",u=`${s}${a}`.trim();n.push(` ${r}{${u}}`);let c=[],d;for(let p of e.branches){let f=`${r}_${p.label.replace(/[^a-zA-Z0-9]/g,"_")}`,m=A(p.label),v=p.taken?`${m} \u2713`:`${m} skipped`,g=p.taken?":::success":":::skipped";n.push(` ${f}[${v}]${g}`);let x=p.condition?`|${A(p.condition).replace(/\|/g,"")}|`:"";if(n.push(` ${r} -->${x} ${f}`),p.children.length>0){let y=f;for(let $ of p.children){let D=le($,t,n,i,o);n.push(` ${y} --> ${D.entryId}`),y=D.exitId}c.push(y),p.taken&&(d=y)}else c.push(f),p.taken&&(d=f)}return d?{entryId:r,exitId:d}:{entryId:r,exitId:r}}var I={topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",teeDown:"\u252C",teeUp:"\u2534",teeRight:"\u251C",teeLeft:"\u2524",cross:"\u253C",arrowDown:"\u25BC",arrowUp:"\u25B2"},$t={cold:"\x1B[34m",cool:"\x1B[36m",neutral:"",warm:"\x1B[33m",hot:"\x1B[31m",critical:"\x1B[41m"},It="\x1B[0m";function Dt(e,t){let n=[],i=[];for(let o=0;o<t;o++)n.push(Array(e).fill(" ")),i.push(Array(e).fill(void 0));return{cells:n,colors:i,width:e,height:t}}function M(e,t,n,i,o){t>=0&&t<e.width&&n>=0&&n<e.height&&(e.cells[n][t]=i,o&&(e.colors[n][t]=o))}function We(e,t,n){return t>=0&&t<e.width&&n>=0&&n<e.height?e.cells[n][t]:" "}function Nt(e,t,n,i,o){M(e,t,n,I.topLeft);for(let r=1;r<i-1;r++)M(e,t+r,n,I.horizontal);M(e,t+i-1,n,I.topRight);for(let r=1;r<o-1;r++)M(e,t,n+r,I.vertical),M(e,t+i-1,n+r,I.vertical);M(e,t,n+o-1,I.bottomLeft);for(let r=1;r<i-1;r++)M(e,t+r,n+o-1,I.horizontal);M(e,t+i-1,n+o-1,I.bottomRight)}function Ce(e,t,n,i,o){let r=Y(i).split("");for(let s=0;s<r.length;s++)M(e,t+s,n,r[s],o)}function V(e,t,n,i){let o=Math.min(n,i),r=Math.max(n,i);for(let s=o;s<=r;s++){let a=We(e,t,s);a===I.horizontal?M(e,t,s,I.cross):(a===" "||a===I.vertical)&&M(e,t,s,I.vertical)}}function _e(e,t,n,i){let o=Math.min(n,i),r=Math.max(n,i);for(let s=o;s<=r;s++){let a=We(e,s,t);a===I.vertical?M(e,s,t,I.cross):(a===" "||a===I.horizontal)&&M(e,s,t,I.horizontal)}}function G(e,t,n){M(e,t,n,I.arrowDown)}function Mt(e){let t=[];for(let n=0;n<e.height;n++){let i="";for(let o=0;o<e.width;o++){let r=e.colors[n][o],s=e.cells[n][o];r?i+=r+s+It:i+=s}t.push(i.trimEnd())}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t.join(`
|
|
4
|
+
`)}var j=11,J=2,Q=2,ue=3;function Be(e,t){if(e.length<=t)return[e];let n=e.split(" "),i=[],o="";for(let r of n)o?o.length+1+r.length<=t?o+=" "+r:(i.push(o),o=r):o=r;if(o&&i.push(o),i.length===0)for(let r=0;r<e.length;r+=t)i.push(e.slice(r,r+t));return i}function He(e){switch(e){case"success":return"\u2713";case"error":return"\u2717";case"running":return"\u27F3";case"pending":return"\u25CB";case"aborted":case"skipped":return"\u2298";case"cached":return"\u21BA";default:return"\u25CB"}}function Tt(e,t,n){let i=t.showStartEnd??!0,o=t,r=Math.floor(n/2),s=[],a=0;if(i){let u=pe("start","start",["\u25B6 Start"],"success",r,a);s.push(u),a=u.bottomY+Q}for(let u of e.root.children){let c=fe(u,r,a,n-4,t,o);s.push(c.node),a=c.bottomY+Q}if(i&&(e.root.state==="success"||e.root.state==="error")){let u=e.root.state==="success"?"\u2713 Done":"\u2717 Failed",c=pe("end","end",[u],e.root.state,r,a);s.push(c),a=c.bottomY}return{nodes:s,totalHeight:a+2}}function pe(e,t,n,i,o,r){let s=Math.max(...n.map(d=>Y(d).length)),a=Math.max(j,s+J*2),u=n.length+2,c=o-Math.floor(a/2);return{id:e,type:t,label:n,state:i,x:c,y:r,width:a,height:u,centerX:o,bottomY:r+u-1}}function fe(e,t,n,i,o,r){if(B(e))return Lt(e,t,n,i,o,r);if(z(e)||H(e))return Ot(e,t,n,i,o,r);if(F(e))return Ct(e,t,n,i,o,r);let s=pe(e.id,"step",["?"],e.state,t,n);return{node:s,bottomY:s.bottomY}}function Lt(e,t,n,i,o,r){let s=e.name??e.key??"step",a=He(e.state),u=[],c=`${a} ${s}`,d=Math.min(i-J*2,40);if(u.push(...Be(c,d)),o.showTimings&&e.durationMs!==void 0&&u.push(`[${C(e.durationMs)}]`),e.retryCount&&e.retryCount>0&&u.push(`${e.retryCount}x retry`),e.timedOut&&u.push("timeout"),r?.showSparklines&&r.timingHistory){let y=e.name??e.id,$=r.timingHistory.get(y);$&&$.length>1&&u.push(xe($,8))}let p=Math.max(...u.map(y=>Y(y).length)),f=Math.max(j,p+J*2),m=u.length+2,v=t-Math.floor(f/2),g;if(r?.showHeatmap&&r.heatmapData){let y=e.name??e.id;g=r.heatmapData.heat.get(e.id)??r.heatmapData.heat.get(y)}let x={id:e.id,type:"step",label:u,state:e.state,x:v,y:n,width:f,height:m,centerX:t,bottomY:n+m-1,metadata:g!==void 0?{heat:g}:void 0};return{node:x,bottomY:x.bottomY}}function Ot(e,t,n,i,o,r){let s=H(e),a=e.name??(s?"race":"parallel"),c=`${s?"\u26A1":"\u2AD8"} ${a}`;if(e.children.length===0){let N=[c,"(not tracked)"],L=pe(e.id,s?"race":"parallel",N,e.state,t,n);return{node:L,bottomY:L.bottomY}}let d=Math.floor((i-ue*(e.children.length-1))/e.children.length),p=[];for(let N of e.children){let L=Re(N,Math.max(d,j),o,r);p.push(L.width)}let f=p.reduce((N,L)=>N+L,0)+ue*(e.children.length-1),m=f>i&&e.children.length>1,v=Math.max(j,c.length+J*2),g=3,x=t-Math.floor(v/2),y=n;y+=g,y+=1,y+=1;let $=[];if(m)for(let N=0;N<e.children.length;N++){let L=e.children[N],W=fe(L,t,y,i,o,r);s&&H(e)&&e.winnerId===L.id&&(W.node.metadata={...W.node.metadata,isWinner:!0}),$.push(W.node),y=W.bottomY+Q}else{let N=t-Math.floor(f/2);for(let L=0;L<e.children.length;L++){let W=e.children[L],S=N+Math.floor(p[L]/2),O=fe(W,S,y,p[L],o,r);s&&H(e)&&e.winnerId===W.id&&(O.node.metadata={...O.node.metadata,isWinner:!0}),$.push(O.node),N+=p[L]+ue}}let D=Math.max(...$.map(N=>N.bottomY)),T=!m&&$.length>1?D+2:D;return{node:{id:e.id,type:s?"race":"parallel",label:[c],state:e.state,x,y:n,width:v,height:g,centerX:t,bottomY:T,children:$,metadata:{verticalLayout:m}},bottomY:T}}function Ct(e,t,n,i,o,r){let s=e.name??"decision",a=e.condition?` (${e.condition.slice(0,20)})`:"",u=`\u25C7 ${s}${a}`,c=Math.min(i-J*2,40),d=Be(u,c),p=Math.max(...d.map(k=>Y(k).length)),f=Math.max(j,p+J*2),m=d.length+2,v=t-Math.floor(f/2),g=e.branches.find(k=>k.taken);if(!g||g.children.length===0){let k={id:e.id,type:"decision",label:d,state:e.state,x:v,y:n,width:f,height:m,centerX:t,bottomY:n+m-1};return{node:k,bottomY:k.bottomY}}let x=n+m+Q,y=[];for(let k of g.children){let T=fe(k,t,x,i,o,r);y.push(T.node),x=T.bottomY+Q}let $=y.length>0?y[y.length-1].bottomY:n+m-1;return{node:{id:e.id,type:"decision",label:d,state:e.state,x:v,y:n,width:f,height:m,centerX:t,bottomY:$,children:y},bottomY:$}}function Re(e,t,n,i){if(B(e)){let o=e.name??e.key??"step",r=He(e.state),s=1;n.showTimings&&e.durationMs!==void 0&&s++,e.retryCount&&e.retryCount>0&&s++,e.timedOut&&s++,i?.showSparklines&&i.timingHistory?.has(e.name??e.id)&&s++;let a=Math.min(t,Math.max(j,`${r} ${o}`.length+J*2)),u=s+2;return{width:a,height:u}}if(z(e)||H(e)){if(e.children.length===0)return{width:j+4,height:4};let o=Math.floor(t/e.children.length),r=0,s=0;for(let a of e.children){let u=Re(a,o,n,i);r+=u.width,s=Math.max(s,u.height)}return r+=ue*(e.children.length-1),{width:Math.max(r,j),height:5+s+2}}if(F(e)){let o=e.branches.find(s=>s.taken),r=0;if(o)for(let s of o.children){let a=Re(s,t,n,i);r+=a.height+Q}return{width:Math.min(t,30),height:3+r}}return{width:j,height:3}}function _t(e,t,n){let i={...K,...n.colors};for(let o=0;o<t.length;o++){let r=t[o],s=o===t.length-1;if(me(e,r,i),!s){let a=t[o+1],u=r.centerX,c=r.bottomY+1,d=a.centerX,p=a.y-1;V(e,u,c,p-1),G(e,d,p)}}}function me(e,t,n){let i=t.type!=="start",o=t.type!=="end"&&(!t.children||t.children.length===0);Nt(e,t.x,t.y,t.width,t.height),i&&M(e,t.centerX,t.y,I.teeUp),(o||t.children&&t.children.length>0)&&M(e,t.centerX,t.y+t.height-1,I.teeDown);let r=t.width-J*2,s=Ht(t,n);for(let a=0;a<t.label.length;a++){let u=t.label[a],c=t.x+1+Math.floor((r-Y(u).length)/2),d=t.y+1+a;Ce(e,c,d,u,s)}t.metadata?.isWinner&&Ce(e,t.x+t.width-2,t.y,"\u{1F3C6}"),t.children&&t.children.length>0&&(t.type==="parallel"||t.type==="race"?Wt(e,t,n):Bt(e,t,n))}function Wt(e,t,n){let i=t.children;if(i.length===0)return;let o=t.y+t.height,r=t.centerX;if(t.metadata?.verticalLayout===!0){let a=i[0];V(e,r,o,a.y-2),G(e,a.centerX,a.y-1);for(let u=0;u<i.length;u++){let c=i[u];if(me(e,c,n),u<i.length-1){let d=i[u+1];V(e,c.centerX,c.bottomY+1,d.y-2),G(e,d.centerX,d.y-1)}}return}if(i.length===1)V(e,r,o,i[0].y-2),G(e,i[0].centerX,i[0].y-1);else{let a=i.map(d=>d.centerX),u=Math.min(...a),c=Math.max(...a);V(e,r,o,o+1),_e(e,o+1,u,c),M(e,r,o+1,I.teeUp);for(let d of i){let p=d.centerX;p===u?M(e,p,o+1,I.topLeft):p===c?M(e,p,o+1,I.topRight):p!==r&&M(e,p,o+1,I.teeDown),V(e,p,o+2,d.y-2),G(e,p,d.y-1)}}for(let a of i)me(e,a,n);if(i.length>1){let a=i.map(m=>m.bottomY),u=Math.max(...a),c=u+1,d=i.map(m=>m.centerX),p=Math.min(...d),f=Math.max(...d);for(let m of i)m.bottomY<u&&V(e,m.centerX,m.bottomY+1,c-1);_e(e,c,p,f);for(let m of i){let v=m.centerX;v===p?M(e,v,c,I.bottomLeft):v===f?M(e,v,c,I.bottomRight):M(e,v,c,I.teeUp)}M(e,t.centerX,c,I.teeDown),M(e,t.centerX,c+1,I.vertical)}}function Bt(e,t,n){let i=t.children;if(i.length===0)return;let o=t.y+t.height,r=i[0];V(e,t.centerX,o,r.y-2),G(e,r.centerX,r.y-1);for(let s=0;s<i.length;s++){let a=i[s];if(me(e,a,n),s<i.length-1){let u=i[s+1];V(e,a.centerX,a.bottomY+1,u.y-2),G(e,u.centerX,u.y-1)}}}function Ht(e,t){if(e.metadata?.heat!==void 0){let n=oe(e.metadata.heat);return $t[n]||void 0}return t[e.state]||void 0}function ee(){return{name:"flowchart",supportsLive:!1,render(e,t){let n=t.terminalWidth??80,{nodes:i,totalHeight:o}=Tt(e,t,n),r=Dt(n,o);return _t(r,i,t),Mt(r)}}}function At(e){return e.replace(/\x1b\[[0-9;]*m/g,"")}function Pt(e){let t=[];function n(i){for(let o of i)if(B(o))t.push(o);else if($e(o))n(o.children);else if(z(o)||H(o))n(o.children);else if(F(o))for(let r of o.branches)n(r.children)}return n(e),t}function zt(e){let t={id:e.id,name:e.name??e.key??e.id,state:e.state};return e.key&&(t.key=e.key),e.durationMs!==void 0&&(t.durationMs=e.durationMs),e.startTs!==void 0&&(t.startTs=e.startTs),e.endTs!==void 0&&(t.endTs=e.endTs),e.retryCount!==void 0&&e.retryCount>0&&(t.retryCount=e.retryCount),e.timedOut&&(t.timedOut=!0,e.timeoutMs!==void 0&&(t.timeoutMs=e.timeoutMs)),e.error!==void 0&&(t.error=typeof e.error=="string"?e.error:String(e.error)),t}function Ft(e){let t=0,n=0,i=0,o=0,r=0,s;for(let a of e)a.state==="success"&&t++,a.state==="error"&&n++,a.state==="cached"&&i++,a.state==="skipped"&&o++,a.retryCount!==void 0&&(r+=a.retryCount),a.durationMs!==void 0&&(!s||a.durationMs>s.durationMs)&&(s={name:a.name??a.key??a.id,durationMs:a.durationMs});return{totalSteps:e.length,successCount:t,errorCount:n,cacheHits:i,skippedCount:o,totalRetries:r,slowestStep:s}}function Kt(e){let t={};if(e.shouldRun&&(t.shouldRun={result:e.shouldRun.context?.result,durationMs:e.shouldRun.durationMs},e.shouldRun.error&&(t.shouldRun.error=String(e.shouldRun.error))),e.onBeforeStart&&(t.onBeforeStart={durationMs:e.onBeforeStart.durationMs},e.onBeforeStart.error&&(t.onBeforeStart.error=String(e.onBeforeStart.error))),e.onAfterStep.size>0){t.onAfterStep=[];for(let[n,i]of e.onAfterStep){let o={stepKey:n};i.durationMs!==void 0&&(o.durationMs=i.durationMs),i.error&&(o.error=String(i.error)),t.onAfterStep.push(o)}}return t}function Vt(e,t){let n=e.root,i=Pt(n.children),o=t.includeDiagram??!0,r=t.stripAnsiColors??!0,s={workflow:{id:n.workflowId,name:n.name,state:n.state,durationMs:n.durationMs,startedAt:n.startTs,completedAt:n.endTs},steps:i.map(zt),summary:Ft(i)};if(e.hooks){let a=Kt(e.hooks);Object.keys(a).length>0&&(s.hooks=a)}if(o){let c=((t.diagramFormat??"ascii")==="flowchart"?ee():q()).render(e,t);r&&(c=At(c)),s.diagram=c}return s}function he(){return{name:"logger",supportsLive:!1,render(e,t){let i=Vt(e,t);return JSON.stringify(i)}}}var Jt=require("http"),Xt=require("child_process");function Ae(e={}){let{workflowName:t,detectParallel:n=!0,showTimings:i=!0,showKeys:o=!1,colors:r}=e,s=te({detectParallel:n}),a=new Set,u=q(),c=de(),d=he(),p=ee(),f={showTimings:i,showKeys:o,terminalWidth:process.stdout?.columns??80,colors:{...K,...r}};function m(){if(a.size>0){let R=s.getIR();for(let N of a)N(R)}}function v(R){if(R.type==="scope_start"||R.type==="scope_end"){g(R);return}s.handleEvent(R),R.type,m()}function g(R){s.handleScopeEvent(R),m()}function x(R){s.handleDecisionEvent(R),m()}function y(){let R=s.getIR();return t&&!R.root.name&&(R.root.name=t),R}function $(){let R=y();return u.render(R,f)}function D(R){let N=y();switch(R){case"ascii":return u.render(N,f);case"mermaid":return c.render(N,f);case"json":return JSON.stringify(N,null,2);case"logger":return d.render(N,f);case"flowchart":return p.render(N,f);default:throw new Error(`Unknown format: ${R}`)}}function k(){s.reset(),m()}function T(R){return a.add(R),()=>a.delete(R)}return{handleEvent:v,handleScopeEvent:g,handleDecisionEvent:x,getIR:y,render:$,renderAs:D,reset:k,onUpdate:T}}function Ee(e={}){let{logEvents:t=!1,maxHistory:n=10,logger:i=console.log}=e,o=Ae(e),r=[],s,a=0;function u(S){if(s)for(r.push(s);r.length>n;)r.shift();a=Date.now(),s={id:S,name:e.workflowName,startTime:a,events:[]},o.reset()}function c(S,O){s&&(s.endTime=Date.now(),s.durationMs=s.endTime-s.startTime,s.success=S,s.error=O)}function d(S){t&&i(`[devtools] ${S.type}: ${JSON.stringify(S)}`),S.type==="workflow_start"&&u(S.workflowId),s&&s.events.push(S),o.handleEvent(S),S.type==="workflow_success"?c(!0):S.type==="workflow_error"&&c(!1,S.error)}function p(S){t&&i(`[devtools] ${S.type}: ${JSON.stringify(S)}`),s&&s.events.push(S),o.handleDecisionEvent(S)}function f(){return s}function m(){return[...r]}function v(S){return s?.id===S?s:r.find(O=>O.id===S)}function g(S,O){let se=v(S),ae=v(O);if(!(!se||!ae))return Pe(se,ae)}function x(){if(!s||r.length===0)return;let S=r[r.length-1];return Pe(S,s)}function y(){return o.render()}function $(S){return o.renderAs(S)}function D(){return o.renderAs("mermaid")}function k(){let S=T();return Gt(S)}function T(){return s?qt(s.events,a):[]}function R(){r.length=0}function N(){s=void 0,o.reset()}function L(S){let O=S?v(S):s;return O?JSON.stringify(O,null,2):"{}"}function W(S){let O=JSON.parse(S);return r.push(O),O}return{handleEvent:d,handleDecisionEvent:p,getCurrentRun:f,getHistory:m,getRun:v,diff:g,diffWithPrevious:x,render:y,renderAs:$,renderMermaid:D,renderTimeline:k,getTimeline:T,clearHistory:R,reset:N,exportRun:L,importRun:W}}function Pe(e,t){let n=ze(e.events),i=ze(t.events),o=[],r=[],s=[],a=[];for(let[f,m]of i){let v=n.get(f);v?v.status!==m.status?s.push({step:f,type:"status",from:v.status,to:m.status}):v.durationMs!==m.durationMs?s.push({step:f,type:"duration",from:v.durationMs,to:m.durationMs}):a.push(f):o.push({step:f,type:"added",to:m.status})}for(let[f]of n)i.has(f)||r.push({step:f,type:"removed",from:n.get(f)?.status});let u,c=e.success===void 0?"running":e.success?"success":"error",d=t.success===void 0?"running":t.success?"success":"error";c!==d&&(u={from:c,to:d});let p;return e.durationMs!==void 0&&t.durationMs!==void 0&&(p=t.durationMs-e.durationMs),{added:o,removed:r,changed:s,unchanged:a,statusChange:u,durationChange:p}}function ze(e){let t=new Map;for(let n of e)if(n.type==="step_start"){let i=n,o=i.name||i.stepKey||i.stepId;t.set(o,{name:o,key:i.stepKey,status:"running"})}else if(n.type==="step_success"){let i=n,o=i.name||i.stepKey||i.stepId,r=t.get(o);r&&(r.status="success",r.durationMs=i.durationMs)}else if(n.type==="step_error"){let i=n,o=i.name||i.stepKey||i.stepId,r=t.get(o);r&&(r.status="error",r.durationMs=i.durationMs,r.error=i.error)}else if(n.type==="step_cache_hit"){let i=n,o=i.name||i.stepKey;t.set(o,{name:o,key:i.stepKey,status:"cached"})}else if(n.type==="step_skipped"){let i=n,o=i.name||i.stepKey||"unknown";t.set(o,{name:o,key:i.stepKey,status:"skipped"})}return t}function qt(e,t){let n=[],i=new Map;for(let o of e)if(o.type==="step_start"){let r=o,s=r.name||r.stepKey||r.stepId;i.set(s,r.ts),n.push({name:s,key:r.stepKey,startMs:r.ts-t,status:"running"})}else if(o.type==="step_success"){let r=o,s=r.name||r.stepKey||r.stepId,a=n.find(u=>u.name===s&&u.status==="running");a&&(a.endMs=r.ts-t,a.durationMs=r.durationMs,a.status="success")}else if(o.type==="step_error"){let r=o,s=r.name||r.stepKey||r.stepId,a=n.find(u=>u.name===s&&u.status==="running");a&&(a.endMs=r.ts-t,a.durationMs=r.durationMs,a.status="error",a.error=r.error)}else if(o.type==="step_cache_hit"){let r=o,s=r.name||r.stepKey;n.push({name:s,key:r.stepKey,startMs:r.ts-t,endMs:r.ts-t,durationMs:0,status:"cached"})}else if(o.type==="step_skipped"){let r=o,s=r.name||r.stepKey||"unknown";n.push({name:s,key:r.stepKey,startMs:r.ts-t,endMs:r.ts-t,durationMs:0,status:"skipped"})}return n}function Gt(e){if(e.length===0)return"No timeline data";let t=[];t.push("Timeline:"),t.push("\u2500".repeat(60));let n=Math.max(...e.map(o=>o.endMs??o.startMs+100)),i=40;for(let o of e){let r=Math.floor(o.startMs/n*i),s=Math.floor((o.endMs??o.startMs+10)/n*i),a=Math.max(1,s-r),u=Zt(o.status),c=" ".repeat(r)+u.repeat(a),d=o.durationMs!==void 0?`${o.durationMs}ms`:"?";t.push(`${o.name.padEnd(20)} |${c.padEnd(i)}| ${d}`)}return t.push("\u2500".repeat(60)),t.join(`
|
|
5
|
+
`)}function Zt(e){switch(e){case"success":return"\u2588";case"error":return"\u2591";case"running":return"\u2592";case"cached":return"\u2593";case"skipped":return"\xB7";default:return"?"}}function Fe(e){let t=[];if(e.statusChange&&t.push(`Status: ${e.statusChange.from} \u2192 ${e.statusChange.to}`),e.durationChange!==void 0){let n=e.durationChange>=0?"+":"";t.push(`Duration: ${n}${e.durationChange}ms`)}if(e.added.length>0){t.push(`
|
|
6
|
+
Added steps:`);for(let n of e.added)t.push(` + ${n.step}`)}if(e.removed.length>0){t.push(`
|
|
7
|
+
Removed steps:`);for(let n of e.removed)t.push(` - ${n.step}`)}if(e.changed.length>0){t.push(`
|
|
8
|
+
Changed steps:`);for(let n of e.changed)t.push(` ~ ${n.step}: ${n.from} \u2192 ${n.to}`)}return e.unchanged.length>0&&t.push(`
|
|
9
|
+
Unchanged: ${e.unchanged.length} steps`),t.join(`
|
|
10
|
+
`)}function Ke(e,t={}){let n=Ee(t);return e(n.handleEvent).then(()=>n.render())}function Ve(e={}){let{prefix:t="[workflow]",colors:n=!0}=e,i=n?{reset:"\x1B[0m",dim:"\x1B[2m",green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m"}:{reset:"",dim:"",green:"",red:"",yellow:"",blue:"",cyan:""};return o=>{let r=new Date().toISOString().slice(11,23),s="";switch(o.type){case"workflow_start":s=`${i.blue}\u23F5 Workflow started${i.reset}`;break;case"workflow_success":s=`${i.green}\u2713 Workflow completed${i.reset} ${i.dim}(${o.durationMs}ms)${i.reset}`;break;case"workflow_error":s=`${i.red}\u2717 Workflow failed${i.reset}`;break;case"step_start":s=`${i.cyan}\u2192 ${o.name||o.stepKey||o.stepId}${i.reset}`;break;case"step_success":s=`${i.green}\u2713 ${o.name||o.stepKey||o.stepId}${i.reset} ${i.dim}(${o.durationMs}ms)${i.reset}`;break;case"step_error":s=`${i.red}\u2717 ${o.name||o.stepKey||o.stepId}${i.reset}`;break;case"step_cache_hit":s=`${i.yellow}\u26A1 ${o.name||o.stepKey} (cached)${i.reset}`;break;case"step_retry":s=`${i.yellow}\u21BB ${o.name||o.stepKey||o.stepId} retry ${o.attempt}/${o.maxAttempts}${i.reset}`;break;default:s=`${i.dim}${o.type}${i.reset}`}console.log(`${i.dim}${r}${i.reset} ${t} ${s}`)}}0&&(module.exports={createConsoleLogger,createDevtools,quickVisualize,renderDiff});
|
|
11
|
+
//# sourceMappingURL=devtools.cjs.map
|