@wrongstack/webui 0.283.0 → 0.284.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.
Files changed (96) hide show
  1. package/dist/assets/AnalyticsDashboard-BBoAzpgL.js +1 -0
  2. package/dist/assets/AutoPhaseView-D053zOhN.js +1 -0
  3. package/dist/assets/ChangesView-4X9cQM4r.js +1 -0
  4. package/dist/assets/CodeEditor-C8hiA7LI.js +1 -0
  5. package/dist/assets/DebugDashboard-DBPKvghW.js +1 -0
  6. package/dist/assets/{DesignGalleryView-DaLPPF4Q.js → DesignGalleryView-CzF24Ppi.js} +1 -1
  7. package/dist/assets/{KanbanView-BdsVeyFI.js → KanbanView-DWBGErwm.js} +1 -1
  8. package/dist/assets/MailboxDetailView-CCtq-c8u.js +1 -0
  9. package/dist/assets/OfficeMapPanel-BBKsytG0.js +4 -0
  10. package/dist/assets/ProcessMonitor-pm8Ih7-q.js +1 -0
  11. package/dist/assets/{QueuePanel-BweqXLzT.js → QueuePanel-Lv54tvvk.js} +1 -1
  12. package/dist/assets/{RefreshDebugView-LYcQUNfU.js → RefreshDebugView-0VzJJqhZ.js} +1 -1
  13. package/dist/assets/SddBoardView-Q-k1UjLv.js +2 -0
  14. package/dist/assets/SddFlowGraph-BaWwH9Zc.js +1 -0
  15. package/dist/assets/{SddWizard-C8wm_izV.js → SddWizard-C4wdyhYe.js} +1 -1
  16. package/dist/assets/SessionsDashboard-CveBdrQJ.js +1 -0
  17. package/dist/assets/SkillDetailView-B4U0AtHj.js +2 -0
  18. package/dist/assets/SpecsView-QssXs9kF.js +1 -0
  19. package/dist/assets/{TerminalPanel-DxtPDRk5.js → TerminalPanel-CSDEzJNZ.js} +1 -1
  20. package/dist/assets/{activity-CVWYwjgf.js → activity-3lpGdUIy.js} +1 -1
  21. package/dist/assets/{activity-Cjm0UoMi.js → activity-Bi6wI_Cg.js} +1 -1
  22. package/dist/assets/{activity-BEjzb11U.js → activity-CSPSX--m.js} +1 -1
  23. package/dist/assets/{activity-Lmjx6MD1.js → activity-CcEdxJjx.js} +1 -1
  24. package/dist/assets/{activity-DN6Bmnaw.js → activity-Cv0CmTyM.js} +1 -1
  25. package/dist/assets/{activity-ByEwzh5Q.js → activity-Doy5Yots.js} +1 -1
  26. package/dist/assets/{activity-BjnFo4NL.js → activity-T9kySYDT.js} +1 -1
  27. package/dist/assets/chat--Zry3Atx.js +1 -0
  28. package/dist/assets/chat-0DeGMNFQ.js +1 -0
  29. package/dist/assets/chat-BErfSQjE.js +1 -0
  30. package/dist/assets/chat-CX5cjaC-.js +1 -0
  31. package/dist/assets/chat-CibJIps5.js +1 -0
  32. package/dist/assets/chat-Dr5SJikx.js +1 -0
  33. package/dist/assets/chat-Siz8aWTB.js +1 -0
  34. package/dist/assets/{chat-store-uNXIpAx_.js → chat-store-De7J1E26.js} +1 -1
  35. package/dist/assets/common-B28qhvZh.js +1 -0
  36. package/dist/assets/common-C9ikgX7d.js +1 -0
  37. package/dist/assets/common-CeTsF3jX.js +1 -0
  38. package/dist/assets/common-D29Zdkxb.js +1 -0
  39. package/dist/assets/{common-BAg8_MKg.js → common-DMM-xyW3.js} +1 -1
  40. package/dist/assets/common-DoUBSHRY.js +1 -0
  41. package/dist/assets/common-vdwxzODB.js +1 -0
  42. package/dist/assets/i18n-CkkVJCs9.js +2 -0
  43. package/dist/assets/index-BqAVsSCe.js +154 -0
  44. package/dist/assets/index-DTFjO9oF.css +1 -0
  45. package/dist/assets/local-prefs-C1YdbI5g.js +1 -0
  46. package/dist/assets/{monaco-DqY9Mr3N.js → monaco-XnLmrAXJ.js} +212 -212
  47. package/dist/assets/monaco-theme-Lsd14tM-.js +1 -0
  48. package/dist/assets/{session-store-DhcyG2AC.js → session-store-P-JnaPPK.js} +1 -1
  49. package/dist/assets/{ui-store-isn1eTG7.js → ui-store-FTgDlcX2.js} +1 -1
  50. package/dist/assets/utils-CU_o9ioU.js +1 -0
  51. package/dist/assets/{vendor-OWPFcqeg.js → vendor-CyLvG8N0.js} +14 -14
  52. package/dist/assets/{ws-client-Dglowar-.js → ws-client-lDxBz-7w.js} +1 -1
  53. package/dist/assets/{xyflow-CGx_hPAX.js → xyflow-oYDGUYW6.js} +1 -1
  54. package/dist/index.html +14 -13
  55. package/dist/index.js +7819 -7458
  56. package/dist/index.js.map +1 -1
  57. package/dist/server/index.d.ts +1 -1223
  58. package/dist/server/index.js +3 -12753
  59. package/dist/types.d.ts +17 -1
  60. package/package.json +23 -36
  61. package/dist/assets/AnalyticsDashboard-vbaFTrJa.js +0 -1
  62. package/dist/assets/AutoPhaseView-Ce8a1eUl.js +0 -1
  63. package/dist/assets/CodeEditor-CduSdsMI.js +0 -1
  64. package/dist/assets/DebugDashboard-DoVJhkxa.js +0 -1
  65. package/dist/assets/MailboxDetailView-BYR6CSvz.js +0 -1
  66. package/dist/assets/OfficeMapPanel-BkaZBJEZ.js +0 -4
  67. package/dist/assets/ProcessMonitor-C7OgHnln.js +0 -1
  68. package/dist/assets/SddBoardView-c87Bwdig.js +0 -2
  69. package/dist/assets/SddFlowGraph-DK7RD9NA.js +0 -1
  70. package/dist/assets/SessionsDashboard-DySTssFb.js +0 -1
  71. package/dist/assets/SkillDetailView-y0BgfnBr.js +0 -2
  72. package/dist/assets/SpecsView-BudIVvtN.js +0 -1
  73. package/dist/assets/chat-CdLXf1yN.js +0 -1
  74. package/dist/assets/chat-Cfq81NCh.js +0 -1
  75. package/dist/assets/chat-Cvy-F2d6.js +0 -1
  76. package/dist/assets/chat-DCAGDU3F.js +0 -1
  77. package/dist/assets/chat-DNIePdaQ.js +0 -1
  78. package/dist/assets/chat-DhofDrgA.js +0 -1
  79. package/dist/assets/chat-cxuX4gFa.js +0 -1
  80. package/dist/assets/common-BH1mb9Im.js +0 -1
  81. package/dist/assets/common-C29pCVfm.js +0 -1
  82. package/dist/assets/common-CrGjglH4.js +0 -1
  83. package/dist/assets/common-D7usadq4.js +0 -1
  84. package/dist/assets/common-KzRPhobM.js +0 -1
  85. package/dist/assets/common-tmj0IcQS.js +0 -1
  86. package/dist/assets/i18n-DD-_8vnT.js +0 -2
  87. package/dist/assets/index-0LBBDKsK.js +0 -147
  88. package/dist/assets/index-Dv6bXQoD.css +0 -1
  89. package/dist/assets/utils-B-rhScDN.js +0 -1
  90. package/dist/server/entry.d.ts +0 -2
  91. package/dist/server/entry.js +0 -12763
  92. package/dist/server/entry.js.map +0 -1
  93. package/dist/server/handlers.d.ts +0 -51
  94. package/dist/server/handlers.js +0 -253
  95. package/dist/server/handlers.js.map +0 -1
  96. package/dist/server/index.js.map +0 -1
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-QTnfLwEv.js";import{di as t}from"./vendor-OWPFcqeg.js";import{t as n}from"./session-store-DhcyG2AC.js";function r(e){typeof requestAnimationFrame==`function`?requestAnimationFrame(e):queueMicrotask(e)}var i=new class{pending=new Map;scheduled=!1;push(e,t,n){if(!t)return;let r=this.pending.get(e);r?(r.buffer+=t,r.flush=n):this.pending.set(e,{buffer:t,flush:n}),this.schedule()}schedule(){this.scheduled||(this.scheduled=!0,r(()=>{this.scheduled=!1,this.drain()}))}drain(){if(this.pending.size===0)return;let e=Array.from(this.pending.entries());this.pending.clear();for(let[t,n]of e)n.buffer&&n.flush(t,n.buffer)}drop(e){this.pending.delete(e)}dropAll(){this.pending.clear()}flush(e){let t=this.pending.get(e);t&&(this.pending.delete(e),t.buffer&&t.flush(e,t.buffer))}flushAll(){this.drain()}};function a(e){return{type:`provider.clear_models`,payload:{providerId:e}}}function o(e,t){return{type:`provider.undo_clear`,payload:{providerId:e,previousModels:[...t]}}}function s(e){return{type:`provider.update`,payload:e}}function c(e){return Math.max(0,Math.min(100,Math.round((typeof e==`number`&&Number.isFinite(e)?e:0)*100)))}function l(e,t=!1){if(t&&e.target){if(e.kind===`agent:tool`||e.kind===`tool:executed`||e.kind===`tool:started`)return`tool`;if(e.source===`leader`||e.source===`coordinator`)return`coordinator`;if(e.kind.startsWith(`provider:`))return`provider`;if(e.kind.startsWith(`mailbox:`))return`mailbox`}switch(e.kind){case`provider:call`:case`provider:delta`:case`provider:response`:return`provider`;case`agent:spawned`:case`agent:tool`:case`agent:status`:case`agent:text`:case`agent:ctx`:case`budget:warning`:case`budget:extended`:return`agent`;case`tool:started`:case`tool:executed`:case`tool:progress`:return`tool`;case`mailbox:send`:case`mailbox:deliver`:return`mailbox`;case`collab:event`:return`system`;case`session:start`:case`session:end`:case`iteration:start`:case`iteration:end`:case`eternal:iteration`:case`fleet:snapshot`:return`session`;case`context:compacted`:case`context:repaired`:case`cost:update`:return`system`;case`error`:return`error`;default:return`system`}}function u(e){switch(e){case`provider:call`:case`provider:delta`:case`agent:tool`:case`tool:started`:case`tool:progress`:case`iteration:start`:case`agent:text`:return`streaming`;case`agent:status`:case`iteration:end`:return`completed`;case`error`:return`error`;case`tool:executed`:return`completed`;case`session:end`:return`idle`;default:return`active`}}var d=0;function f(){return`viz_${Date.now()}_${++d}`}function p(e,t){if(e===t)return!0;if(!e||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n){let n=e[r],i=t[r];if(n!==i){if(n==null||i==null||typeof n!=typeof i)return!1;if(typeof n==`object`){if(Array.isArray(n)||Array.isArray(i)||!p(n,i))return!1;continue}return!1}}return!0}var m={provider:`hsl(var(--info))`,agent:`hsl(var(--primary))`,tool:`hsl(var(--warning))`,mailbox:`hsl(var(--success))`,session:`hsl(var(--primary))`,system:`hsl(var(--muted-foreground))`,success:`hsl(var(--success))`,error:`hsl(var(--destructive))`},h={"provider:call":`hsl(var(--info))`,"provider:delta":`hsl(var(--primary))`,"agent:tool":`hsl(var(--warning))`,"mailbox:send":`hsl(var(--success))`,default:`hsl(var(--muted-foreground))`},g=t()((e,t)=>({events:[],nodes:new Map,edges:new Map,isActive:!1,maxEvents:2e3,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0},pushEvent:t=>e(e=>{let n=[{...t,id:t.id??f(),timestamp:t.timestamp||Date.now()},...e.events];n.length>e.maxEvents&&(n.length=e.maxEvents);let r=Date.now(),i=t.source,a={id:i,kind:l(t),label:t.label,status:u(t.kind),activity:1,color:t.color??m[l(t)],lastSeenAt:r},o=e.nodes.get(i),s=o?{...o,...a}:a,c=!p(o,s),d,h=!1,g;if(t.target){g=t.target;let n={id:g,kind:l(t,!0),label:g,status:u(t.kind),activity:.8,color:t.color??m[l(t,!0)],lastSeenAt:r},i=e.nodes.get(g);d=i?{...i,...n}:n,h=!p(i,d)}let _,v=!1,y;if(t.target&&i){y=`${i}->${t.target}`;let n=e.edges.get(y),a={id:y,source:i,target:t.target,kind:t.kind,label:t.label,intensity:n?Math.min(1,n.intensity+.3):.7,color:t.color??m[l(t)]??m.agent,lastActiveAt:r,totalMagnitude:(n?.totalMagnitude??0)+(t.magnitude??0)};_=n?{...n,...a}:a,v=!p(n,_)}let b=e.nodes,x=e.edges;return(c||h)&&(b=new Map(e.nodes),c&&b.set(i,s),h&&d&&g&&b.set(g,d)),v&&_&&y&&(x=new Map(e.edges),x.set(y,_)),{events:n,nodes:b,edges:x}}),upsertNode:t=>e(e=>{let n=new Map(e.nodes),r=n.get(t.id);return n.set(t.id,{...r,...t,lastSeenAt:t.lastSeenAt===void 0?Date.now():t.lastSeenAt}),{nodes:n}}),removeNode:t=>e(e=>{let n=new Map(e.nodes);n.delete(t);let r=new Map(e.edges);for(let[e,n]of r)(n.source===t||n.target===t)&&r.delete(e);return{nodes:n,edges:r}}),upsertEdge:t=>e(e=>{let n=new Map(e.edges),r=n.get(t.id);return n.set(t.id,{...r,...t,lastActiveAt:t.lastActiveAt===void 0?Date.now():t.lastActiveAt,intensity:t.intensity??r?.intensity??.5,color:t.color??h[t.kind]??h.default,totalMagnitude:(r?.totalMagnitude??0)+(t.totalMagnitude??0)}),{edges:n}}),removeEdge:t=>e(e=>{let n=new Map(e.edges);return n.delete(t),{edges:n}}),clear:()=>e({events:[],nodes:new Map,edges:new Map,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0}}),setActive:t=>e({isActive:t}),decayActivity:()=>e(e=>{let t=new Map(e.nodes);for(let[e,n]of t)if(n.activity>=.01){let r=n.activity*.92;t.set(e,{...n,activity:r<.01?0:r})}let n=new Map(e.edges);for(let[e,t]of n)if(t.intensity>=.01){let r=t.intensity*.9;n.set(e,{...t,intensity:r<.01?0:r})}return{nodes:t,edges:n}}),prunesStale:t=>e(e=>{let n=Date.now()-t,r=new Map(e.nodes);for(let[e,t]of r)t.lastSeenAt<n&&t.status!==void 0&&t.status!==`active`&&r.delete(e);let i=new Map(e.edges);for(let[e,t]of i)t.lastActiveAt<n&&i.delete(e);return{nodes:r,edges:i,events:e.events.filter(e=>e.timestamp>n)}})}));function _(e,t){switch(e){case`provider.text_delta`:{let e=t.text??``;return{id:f(),kind:`provider:delta`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,60),magnitude:e.length,data:{text:e},color:m.provider,flowGroup:`provider`}}case`provider.response`:{let e=t.usage,n=(e?.input??0)+(e?.output??0);return{id:f(),kind:`provider:response`,timestamp:Date.now(),source:`provider`,target:`leader`,label:`${(e?.input??0).toLocaleString(`en-US`)} in / ${(e?.output??0).toLocaleString(`en-US`)} out`,magnitude:n,data:t,color:m.provider,flowGroup:`provider`}}case`provider.stream_error`:{let e=t.message??`Provider stream error`;return{id:f(),kind:`error`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,80),magnitude:1,data:t,color:m.error,flowGroup:`provider`}}case`tool.started`:{let e=t.name??`tool`;return{id:f(),kind:`tool:started`,timestamp:Date.now(),source:e,target:`filesystem`,label:e,magnitude:1,data:t,color:m.tool,flowGroup:`tool:${e}`}}case`tool.executed`:{let e=t.name??`tool`,n=t.ok??!0;return{id:f(),kind:`tool:executed`,timestamp:Date.now(),source:e,target:`leader`,label:`${e} ${n?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:n?m.tool:m.error,flowGroup:`tool:${e}`}}case`tool.progress`:{let e=t.name??`tool`,n=t.event?.text??``;return{id:f(),kind:`tool:progress`,timestamp:Date.now(),source:e,target:`leader`,label:n.slice(0,60)||e,magnitude:n.length,data:t,color:m.tool,flowGroup:`tool:${e}`}}case`tool.loop_detected`:{let e=t.tools??``,n=t.kind??`loop`;return{id:f(),kind:`error`,timestamp:Date.now(),source:e||n,target:`leader`,label:`${n} loop x${t.repeatCount??0}`,magnitude:t.repeatCount??1,data:t,color:m.error,flowGroup:`tool`}}case`delegate.started`:{let e=t.target??`delegate`,n=t.task??``;return{id:f(),kind:`agent:status`,timestamp:Date.now(),source:`leader`,target:e,label:n.slice(0,80)||`Delegating to ${e}`,magnitude:1,data:t,color:m.agent,flowGroup:`delegate:${e}`}}case`delegate.completed`:{let e=t.subagentId??t.target??`delegate`,n=t.ok??!1;return{id:f(),kind:n?`agent:status`:`error`,timestamp:Date.now(),source:e,target:`leader`,label:(t.summary??t.status??`delegate completed`).slice(0,80),magnitude:t.durationMs??1,data:t,color:n?m.agent:m.error,flowGroup:`delegate:${e}`}}case`subagent.event`:{let e=t.kind,n=t.subagentId??`unknown`,r=t.name??n;switch(e){case`spawned`:return{id:f(),kind:`agent:spawned`,timestamp:Date.now(),source:n,target:`session`,label:`${r} spawned`,magnitude:1,data:t,color:m.agent,flowGroup:`agent:${n}`};case`tool_executed`:{let e=t.toolName??`tool`,r=t.ok??!0;return{id:f(),kind:`agent:tool`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:t.durationMs??0,data:t,color:r?m.tool:m.error,flowGroup:`agent:${n}`}}case`task_completed`:{let e=t.status??`completed`;return{id:f(),kind:`agent:status`,timestamp:Date.now(),source:n,target:`session`,label:`${r} ${e}`,magnitude:1,data:t,color:e===`success`?m.success:m.error,flowGroup:`agent:${n}`}}case`ctx_pct`:return{id:f(),kind:`agent:ctx`,timestamp:Date.now(),source:n,target:`session`,label:`ctx ${c(t.load)}%`,magnitude:t.tokens??0,data:t,color:m.agent,flowGroup:`agent:${n}`};case`iteration_summary`:return{id:f(),kind:`agent:text`,timestamp:Date.now(),source:n,target:`session`,label:(t.partialText??``).slice(0,80)||`iter ${t.iteration??0}`,magnitude:t.costUsd??0,data:t,color:m.agent,flowGroup:`agent:${n}`};case`budget_extended`:return{id:f(),kind:`budget:extended`,timestamp:Date.now(),source:n,target:`session`,label:`${r} extended budget`,magnitude:t.totalExtensions??1,data:t,color:m.tool,flowGroup:`agent:${n}`};case`budget_warning`:return{id:f(),kind:`budget:warning`,timestamp:Date.now(),source:n,target:`session`,label:`${r} hit ${t.budgetKind??`budget`} ${t.used??0}/${t.limit??0}`,magnitude:t.used??1,data:t,color:m.error,flowGroup:`agent:${n}`}}return null}case`mailbox.event`:{let e=t.event,n=t.from??`?`,r=t.to??`?`,i=t.subject??``,a=e===`mailbox.sent`;return{id:f(),kind:a?`mailbox:send`:`mailbox:deliver`,timestamp:Date.now(),source:n,target:r,label:i||(a?`→ ${r}`:`← ${n}`),magnitude:1,data:t,color:m.mailbox,flowGroup:`mailbox`}}case`iteration.started`:{let e=t.index??0;return{id:f(),kind:`iteration:start`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e}`,magnitude:e,data:t,color:m.agent,flowGroup:`iteration`}}case`iteration.completed`:{let e=t.index??0;return{id:f(),kind:`iteration:end`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e} done`,magnitude:e,data:t,color:m.session,flowGroup:`iteration`}}case`ctx.pct`:{let e=t.tokens??0;return{id:f(),kind:`agent:ctx`,timestamp:Date.now(),source:`leader`,target:`session`,label:`ctx ${c(t.load)}%`,magnitude:e,data:t,color:m.agent,flowGroup:`leader`}}case`error`:{let e=t.message??`Error`;return{id:f(),kind:`error`,timestamp:Date.now(),source:t.phase??`system`,target:`session`,label:e,magnitude:1,data:t,color:m.error,flowGroup:`error`}}case`context.compacted`:return{id:f(),kind:`context:compacted`,timestamp:Date.now(),source:`system`,target:`session`,label:`Compacted: ${(t.saved??0).toLocaleString(`en-US`)} tokens`,magnitude:t.saved??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`compaction.failed`:{let e=t.message??`Compaction failed`;return{id:f(),kind:`error`,timestamp:Date.now(),source:`compactor`,target:`session`,label:e.slice(0,80),magnitude:t.tokens??1,data:t,color:m.error,flowGroup:`context`}}case`context.repaired`:return{id:f(),kind:`context:repaired`,timestamp:Date.now(),source:`system`,target:`session`,label:`Repaired: ${t.removedMessages??0} msgs`,magnitude:t.removedMessages??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`session.start`:{let e=t.sessionId??`?`,n=t.projectName??``;return{id:f(),kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:n||e.slice(0,12),magnitude:1,data:t,color:m.session,flowGroup:`session`}}case`sessions.status_update`:{let e=t.sessions??[];return{id:f(),kind:`fleet:snapshot`,timestamp:Date.now(),source:`system`,target:`session`,label:`${e.length} session(s)`,magnitude:e.length,data:t,color:m.system,flowGroup:`fleet`}}default:return null}}function v(e){let t=e.payload?.sessionId,r=n.getState().session?.id;return!t||!r||t===r}function y(e){let t=_(e.type,e.payload);t&&(g.getState().pushEvent(t),g.getState().setActive(!0))}function b(e,t,n){let r=e.payload??{};for(let[e,n]of Object.entries(t)){let t=r[e];if(!x(t,n))return null}if(n)for(let[e,t]of Object.entries(n)){let n=r[e];if(n!=null&&!x(n,t))return null}return r}function x(e,t){switch(t){case`string`:return typeof e==`string`;case`number`:return typeof e==`number`;case`boolean`:return typeof e==`boolean`;case`object`:return typeof e==`object`&&!!e&&!Array.isArray(e);case`array`:return Array.isArray(e);default:return!1}}function S(e){try{return new URL(e).searchParams.get(`token`)}catch{return null}}function C(){if(typeof window>`u`||!window.location)return null;try{let e=window.location.search??``;return new URLSearchParams(e).get(`token`)}catch{return null}}function w(e){try{let t=new URL(e);return t.searchParams.delete(`token`),t.toString()}catch{return e}}function T(){if(!(typeof window>`u`||!window.location||!window.history?.replaceState))try{let e=window.location.href;if(!e)return;let t=new URL(e);if(!t.searchParams.has(`token`))return;t.searchParams.delete(`token`),window.history.replaceState(window.history.state,document.title,t.toString())}catch{}}var E=3457;function D(){if(typeof document>`u`)return E;let e=document.querySelector(`meta[name="wrongstack-ws-port"]`)?.getAttribute(`content`),t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0&&t<65536?t:E}function O(){if(typeof document>`u`)return null;let e=document.querySelector(`meta[name="wrongstack-ws-url"]`)?.getAttribute(`content`)?.trim();if(!e)return null;try{let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)return null;let n=C();return n&&!t.searchParams.has(`token`)&&t.searchParams.set(`token`,n),t.toString()}catch{return null}}function k(){let e=O();if(e)return e;let t=D();if(typeof window>`u`||!window.location?.hostname)return`ws://127.0.0.1:${t}`;let n=window.location.protocol===`https:`?`wss`:`ws`,r=window.location.hostname.toLowerCase(),i=C(),a=i?`?token=${encodeURIComponent(i)}`:``;return r===`localhost`||r===`127.0.0.1`||r===`[::1]`||r===`::1`?`${n}://127.0.0.1:${t}${a}`:`${n}://${window.location.hostname}:${t}${a}`}function A(){if(typeof window>`u`||!window.location?.hostname)return`http://127.0.0.1:3456`;let e=window.location.protocol===`https:`?`https`:`http`,t=window.location.hostname.toLowerCase(),n=window.location.port?`:${window.location.port}`:``;return t===`localhost`||t===`127.0.0.1`||t===`[::1]`||t===`::1`?`${e}://127.0.0.1${n}`:`${e}://${window.location.hostname}${n}`}var j=e({WrongStackWebSocketClient:()=>N,getWSClient:()=>F});function M(e){try{let t=new URL(e),n=new URL(A());return t.hostname===n.hostname}catch{return!0}}var N=class e{ws=null;url;handlers=new Map;reconnectAttempts=0;maxReconnectAttempts=10;reconnectDelay=1e3;shouldReconnect=!0;reconnectTimer=null;messageQueue=[];static MAX_QUEUED_MESSAGES=1e3;pendingConfirms=new Map;sessionId=null;lastErrorText;statusListeners=new Set;currentStatus={state:`connecting`};onStatus(e){return this.statusListeners.add(e),e(this.currentStatus),()=>this.statusListeners.delete(e)}get status(){return this.currentStatus}setStatus(e){this.currentStatus=e;for(let t of this.statusListeners)try{t(e)}catch{}}constructor(e){this.url=e??k()}withSession(e){return this.sessionId?{...e,sessionId:this.sessionId}:e}async ensureAuthCookie(){if(typeof window>`u`)return;if(document.cookie.split(`;`).some(e=>e.trim().startsWith(`ws_token=`))){M(this.url)&&(this.url=w(this.url)),T();return}let e=S(this.url)??C();if(!e)return;let t=A()+`/ws-auth?token=${encodeURIComponent(e)}`;try{let e=await fetch(t,{method:`GET`,credentials:`same-origin`,cache:`no-store`});e.ok?(M(this.url)&&(this.url=w(this.url)),T()):console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_failed`,status:e.status,timestamp:new Date().toISOString()}))}catch(e){console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}}async connect(){return await this.ensureAuthCookie(),new Promise((e,t)=>{if(this.ws?.readyState===WebSocket.OPEN){e();return}this.setStatus({state:`connecting`});try{this.ws=new WebSocket(this.url),this.ws.binaryType=`arraybuffer`;let n=setTimeout(()=>{t(Error(`Connection timeout`))},1e4),r=!1;this.ws.onopen=()=>{clearTimeout(n),r=!0,this.reconnectAttempts=0,this.lastErrorText=void 0,this.setStatus({state:`open`}),this.flushMessageQueue(),e()},this.ws.onmessage=e=>{try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.message_parse_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},this.ws.onerror=e=>{console.error(JSON.stringify({level:`error`,event:`ws_client.error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()})),this.lastErrorText=`Connection error (see browser devtools)`,r||(clearTimeout(n),t(Error(this.lastErrorText)))},this.ws.onclose=e=>{if(!r){clearTimeout(n);let r=e.reason||`Closed with code ${e.code}`;this.lastErrorText=r,t(Error(r));return}e.reason&&!this.lastErrorText?this.lastErrorText=`${e.reason} (code ${e.code})`:!this.lastErrorText&&e.code!==1e3&&(this.lastErrorText=`Closed with code ${e.code}`),this.attemptReconnect()}}catch(e){this.lastErrorText=e instanceof Error?e.message:String(e),this.setStatus({state:`closed`,error:this.lastErrorText}),t(e)}})}attemptReconnect(){if(!this.shouldReconnect||this.reconnectAttempts>=this.maxReconnectAttempts){this.reconnectTimer=null,this.setStatus({state:`closed`,error:this.lastErrorText??`Disconnected`});return}this.reconnectAttempts++;let e=Math.min(this.reconnectDelay*2**(this.reconnectAttempts-1),3e4),t=Date.now()+e;this.setStatus({state:`reconnecting`,attempt:this.reconnectAttempts,nextRetryAt:t,lastError:this.lastErrorText}),this.reconnectTimer=setTimeout(async()=>{if(this.shouldReconnect)try{await this.connect()}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},e)}retryNow(){this.currentStatus.state!==`open`&&(this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.reconnectAttempts=0,this.connect().catch(e=>console.warn(JSON.stringify({level:`warn`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))))}flushMessageQueue(){for(;this.messageQueue.length>0;){let e=this.messageQueue.shift();e&&this.send(e)}}handleMessage(e){if(e.type===`tool.confirm_needed`){let t=e.payload;this.pendingConfirms.set(t.id,{}),this.emit(e);return}if(e.type===`session.start`){let t=e.payload;this.sessionId=t.sessionId}this.emit(e)}emit(e){let t=this.handlers.get(e.type);if(t)for(let n of t)try{n(e)}catch(t){console.error(JSON.stringify({level:`error`,event:`ws_client.handler_error`,messageType:e.type,message:t instanceof Error?t.message:String(t),timestamp:new Date().toISOString()}))}}send(t){if((t.type===`context.clear`||t.type===`session.new`||t.type===`session.resume`)&&i.dropAll(),this.ws?.readyState===WebSocket.OPEN)this.ws.send(JSON.stringify(t));else{if(this.messageQueue.length>=e.MAX_QUEUED_MESSAGES){let t=this.messageQueue.shift();t&&console.warn(JSON.stringify({level:`warn`,event:`ws_client.message_queue_full`,cap:e.MAX_QUEUED_MESSAGES,droppedType:t.type,timestamp:new Date().toISOString()}))}this.messageQueue.push(t)}}on(e,t){let n=this.handlers.get(e);return n||(n=new Set,this.handlers.set(e,n)),n.add(t),()=>n?.delete(t)}off(e,t){this.handlers.get(e)?.delete(t)}sendMessage(e,t){let n=`msg_${Date.now()}_${crypto.randomUUID().slice(0,8)}`;return this.send({type:`user_message`,payload:this.withSession({id:n,content:e,timestamp:Date.now(),...t?{imageBase64:t}:{}})}),n}sendAbort(){this.send({type:`abort`,payload:this.withSession({})})}getGitInfo(){this.send({type:`git.info`})}getGitChanges(){this.send({type:`git.changes`})}getGitDiff(e){this.send({type:`git.diff`,payload:{path:e}})}sendConfirm(e,t){this.pendingConfirms.has(e)&&this.pendingConfirms.delete(e),this.send({type:`tool.confirm_result`,payload:this.withSession({id:e,decision:t})})}switchModel(e,t){this.send({type:`model.switch`,payload:{provider:e,model:t}})}newSession(){this.send({type:`session.new`,payload:this.withSession({})})}listProviders(){this.send({type:`providers.list`})}listProviderModels(e){this.send({type:`provider.models`,payload:{providerId:e}})}listSavedProviders(){this.send({type:`providers.saved`})}addKey(e,t,n){this.send({type:`key.add`,payload:{providerId:e,label:t,apiKey:n}})}updateKey(e,t,n){this.send({type:`key.update`,payload:{providerId:e,label:t,apiKey:n}})}deleteKey(e,t){this.send({type:`key.delete`,payload:{providerId:e,label:t}})}setActiveKey(e,t){this.send({type:`key.set_active`,payload:{providerId:e,label:t}})}addProvider(e,t,n,r){this.send({type:`provider.add`,payload:{id:e,family:t,baseUrl:n,apiKey:r}})}removeProvider(e){this.send({type:`provider.remove`,payload:{providerId:e}})}startOAuth(e){this.send({type:`auth.oauth.start`,payload:{kind:e}})}submitOAuthCode(e,t){this.send({type:`auth.oauth.code`,payload:{kind:e,input:t}})}cancelOAuth(e){this.send({type:`auth.oauth.cancel`,payload:{kind:e}})}probeProvider(e,t){this.send({type:`provider.probe`,payload:t===void 0?{providerId:e}:{providerId:e,timeoutMs:t}})}clearProviderModels(e){this.send(a(e))}undoProviderClear(e,t){this.send(o(e,t))}updateProvider(e){this.send(s(e))}clearContext(){this.send({type:`context.clear`,payload:this.withSession({})})}compactContext(e=!1){this.send({type:`context.compact`,payload:this.withSession({aggressive:e})})}repairContext(){this.send({type:`context.repair`,payload:this.withSession({})})}debugContext(){this.send({type:`context.debug`,payload:this.withSession({})})}listContextModes(){this.send({type:`context.modes.list`,payload:this.withSession({})})}switchContextMode(e){this.send({type:`context.mode.switch`,payload:this.withSession({id:e})})}createContextMode(e){this.send({type:`context.mode.create`,payload:this.withSession(e)})}updateContextMode(e,t){this.send({type:`context.mode.update`,payload:this.withSession({id:e,...t})})}deleteContextMode(e){this.send({type:`context.mode.delete`,payload:this.withSession({id:e})})}switchAutonomy(e){this.send({type:`autonomy.switch`,payload:{mode:e}})}updatePrefs(e){this.send({type:`prefs.update`,payload:e})}getPrefs(){this.send({type:`prefs.get`})}listTools(){this.send({type:`tools.list`})}listMemory(){this.send({type:`memory.list`})}remember(e,t){this.send({type:`memory.remember`,payload:{text:e,scope:t}})}forget(e,t){this.send({type:`memory.forget`,payload:{text:e,scope:t}})}listMcpServers(){this.send({type:`mcp.list`})}addMcpServer(e){this.send({type:`mcp.add`,payload:e})}removeMcpServer(e){this.send({type:`mcp.remove`,payload:{name:e}})}updateMcpServer(e){this.send({type:`mcp.update`,payload:e})}wakeMcpServer(e){this.send({type:`mcp.wake`,payload:{name:e}})}sleepMcpServer(e){this.send({type:`mcp.sleep`,payload:{name:e}})}discoverMcpServer(e){this.send({type:`mcp.discover`,payload:{name:e}})}enableMcpServer(e){this.send({type:`mcp.enable`,payload:{name:e}})}disableMcpServer(e){this.send({type:`mcp.disable`,payload:{name:e}})}restartMcpServer(e){this.send({type:`mcp.restart`,payload:{name:e}})}listSkills(){this.send({type:`skills.list`})}getSkillContent(e,t){this.send({type:`skills.content`,payload:{name:e,source:t}})}installSkill(e,t){this.send({type:`skills.install`,payload:{ref:e,global:t}})}uninstallSkill(e,t){this.send({type:`skills.uninstall`,payload:{name:e,global:t}})}checkForUpdates(e,t){this.send({type:`skills.update`,payload:{name:e,global:t}})}createSkill(e,t,n){this.send({type:`skills.create`,payload:{name:e,description:t,scope:n}})}editSkill(e,t){this.send({type:`skills.edit`,payload:{name:e,body:t}})}exportAllSkills(){this.send({type:`skills.export`})}getDiag(){this.send({type:`diag.get`,payload:this.withSession({})})}getStats(){this.send({type:`stats.get`,payload:this.withSession({})})}saveSession(){this.send({type:`session.save`,payload:this.withSession({})})}resumeSessionById(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}listModes(){this.send({type:`modes.list`})}switchMode(e){this.send({type:`mode.switch`,payload:{id:e}})}listFiles(e,t,n){this.send({type:`files.list`,payload:{query:e,limit:t,path:n}})}requestCompletion(e){this.send({type:`completion.request`,payload:e})}getTodos(){this.send({type:`todos.get`,payload:this.withSession({})})}clearTodos(){this.send({type:`todos.clear`,payload:this.withSession({})})}removeTodo(e){let t=typeof e==`number`?{index:e}:{id:e};this.send({type:`todos.remove`,payload:this.withSession(t)})}updateTodoStatus(e,t){this.send({type:`todo.update`,payload:this.withSession({id:e,status:t})})}getTasks(){this.send({type:`tasks.get`,payload:this.withSession({})})}updateTaskStatus(e,t){this.send({type:`task.update`,payload:this.withSession({id:e,status:t})})}getPlan(){this.send({type:`plan.get`,payload:this.withSession({})})}updatePlanItem(e,t){this.send({type:`plan.item.update`,payload:this.withSession({target:e,status:t})})}listSessions(e=50){this.send({type:`sessions.list`,payload:this.withSession({limit:e})})}deleteSession(e){this.send({type:`session.delete`,payload:{id:e}})}renameSession(e,t){this.send({type:`session.rename`,payload:{id:e,name:t}})}setWorkingDir(e){this.send({type:`working_dir.set`,payload:{path:e}})}resumeSession(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}ping(){this.send({type:`ping`})}refineModel(e){this.send({type:`model.refine`,payload:{text:e}})}disconnect(){this.shouldReconnect=!1,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.messageQueue.length=0,this.ws?.close(),this.ws=null}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}get currentSessionId(){return this.sessionId}},P=null;function F(e){return P||=new N(e),P}export{y as a,_ as c,v as i,i as l,j as n,b as o,k as r,g as s,F as t};
1
+ import{n as e}from"./rolldown-runtime-QTnfLwEv.js";import{di as t}from"./vendor-CyLvG8N0.js";import{t as n}from"./session-store-P-JnaPPK.js";function r(e){typeof requestAnimationFrame==`function`?requestAnimationFrame(e):queueMicrotask(e)}var i=new class{pending=new Map;scheduled=!1;push(e,t,n){if(!t)return;let r=this.pending.get(e);r?(r.buffer+=t,r.flush=n):this.pending.set(e,{buffer:t,flush:n}),this.schedule()}schedule(){this.scheduled||(this.scheduled=!0,r(()=>{this.scheduled=!1,this.drain()}))}drain(){if(this.pending.size===0)return;let e=Array.from(this.pending.entries());this.pending.clear();for(let[t,n]of e)n.buffer&&n.flush(t,n.buffer)}drop(e){this.pending.delete(e)}dropAll(){this.pending.clear()}flush(e){let t=this.pending.get(e);t&&(this.pending.delete(e),t.buffer&&t.flush(e,t.buffer))}flushAll(){this.drain()}};function a(e){return{type:`provider.clear_models`,payload:{providerId:e}}}function o(e,t){return{type:`provider.undo_clear`,payload:{providerId:e,previousModels:[...t]}}}function s(e){return{type:`provider.update`,payload:e}}function c(e){return Math.max(0,Math.min(100,Math.round((typeof e==`number`&&Number.isFinite(e)?e:0)*100)))}function l(e,t=!1){if(t&&e.target){if(e.kind===`agent:tool`||e.kind===`tool:executed`||e.kind===`tool:started`)return`tool`;if(e.source===`leader`||e.source===`coordinator`)return`coordinator`;if(e.kind.startsWith(`provider:`))return`provider`;if(e.kind.startsWith(`mailbox:`))return`mailbox`}switch(e.kind){case`provider:call`:case`provider:delta`:case`provider:response`:return`provider`;case`agent:spawned`:case`agent:tool`:case`agent:status`:case`agent:text`:case`agent:ctx`:case`budget:warning`:case`budget:extended`:return`agent`;case`tool:started`:case`tool:executed`:case`tool:progress`:return`tool`;case`mailbox:send`:case`mailbox:deliver`:return`mailbox`;case`collab:event`:return`system`;case`session:start`:case`session:end`:case`iteration:start`:case`iteration:end`:case`eternal:iteration`:case`fleet:snapshot`:return`session`;case`context:compacted`:case`context:repaired`:case`cost:update`:return`system`;case`error`:return`error`;default:return`system`}}function u(e){switch(e){case`provider:call`:case`provider:delta`:case`agent:tool`:case`tool:started`:case`tool:progress`:case`iteration:start`:case`agent:text`:return`streaming`;case`agent:status`:case`iteration:end`:return`completed`;case`error`:return`error`;case`tool:executed`:return`completed`;case`session:end`:return`idle`;default:return`active`}}var d=0;function f(){return`viz_${Date.now()}_${++d}`}function p(e,t){if(e===t)return!0;if(!e||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n){let n=e[r],i=t[r];if(n!==i){if(n==null||i==null||typeof n!=typeof i)return!1;if(typeof n==`object`){if(Array.isArray(n)||Array.isArray(i)||!p(n,i))return!1;continue}return!1}}return!0}var m={provider:`hsl(var(--info))`,agent:`hsl(var(--primary))`,tool:`hsl(var(--warning))`,mailbox:`hsl(var(--success))`,session:`hsl(var(--primary))`,system:`hsl(var(--muted-foreground))`,success:`hsl(var(--success))`,error:`hsl(var(--destructive))`},h={"provider:call":`hsl(var(--info))`,"provider:delta":`hsl(var(--primary))`,"agent:tool":`hsl(var(--warning))`,"mailbox:send":`hsl(var(--success))`,default:`hsl(var(--muted-foreground))`},g=t()((e,t)=>({events:[],nodes:new Map,edges:new Map,isActive:!1,maxEvents:2e3,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0},pushEvent:t=>e(e=>{let n=[{...t,id:t.id??f(),timestamp:t.timestamp||Date.now()},...e.events];n.length>e.maxEvents&&(n.length=e.maxEvents);let r=Date.now(),i=t.source,a={id:i,kind:l(t),label:t.label,status:u(t.kind),activity:1,color:t.color??m[l(t)],lastSeenAt:r},o=e.nodes.get(i),s=o?{...o,...a}:a,c=!p(o,s),d,h=!1,g;if(t.target){g=t.target;let n={id:g,kind:l(t,!0),label:g,status:u(t.kind),activity:.8,color:t.color??m[l(t,!0)],lastSeenAt:r},i=e.nodes.get(g);d=i?{...i,...n}:n,h=!p(i,d)}let _,v=!1,y;if(t.target&&i){y=`${i}->${t.target}`;let n=e.edges.get(y),a={id:y,source:i,target:t.target,kind:t.kind,label:t.label,intensity:n?Math.min(1,n.intensity+.3):.7,color:t.color??m[l(t)]??m.agent,lastActiveAt:r,totalMagnitude:(n?.totalMagnitude??0)+(t.magnitude??0)};_=n?{...n,...a}:a,v=!p(n,_)}let b=e.nodes,x=e.edges;return(c||h)&&(b=new Map(e.nodes),c&&b.set(i,s),h&&d&&g&&b.set(g,d)),v&&_&&y&&(x=new Map(e.edges),x.set(y,_)),{events:n,nodes:b,edges:x}}),upsertNode:t=>e(e=>{let n=new Map(e.nodes),r=n.get(t.id);return n.set(t.id,{...r,...t,lastSeenAt:t.lastSeenAt===void 0?Date.now():t.lastSeenAt}),{nodes:n}}),removeNode:t=>e(e=>{let n=new Map(e.nodes);n.delete(t);let r=new Map(e.edges);for(let[e,n]of r)(n.source===t||n.target===t)&&r.delete(e);return{nodes:n,edges:r}}),upsertEdge:t=>e(e=>{let n=new Map(e.edges),r=n.get(t.id);return n.set(t.id,{...r,...t,lastActiveAt:t.lastActiveAt===void 0?Date.now():t.lastActiveAt,intensity:t.intensity??r?.intensity??.5,color:t.color??h[t.kind]??h.default,totalMagnitude:(r?.totalMagnitude??0)+(t.totalMagnitude??0)}),{edges:n}}),removeEdge:t=>e(e=>{let n=new Map(e.edges);return n.delete(t),{edges:n}}),clear:()=>e({events:[],nodes:new Map,edges:new Map,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0}}),setActive:t=>e({isActive:t}),decayActivity:()=>e(e=>{let t=new Map(e.nodes);for(let[e,n]of t)if(n.activity>=.01){let r=n.activity*.92;t.set(e,{...n,activity:r<.01?0:r})}let n=new Map(e.edges);for(let[e,t]of n)if(t.intensity>=.01){let r=t.intensity*.9;n.set(e,{...t,intensity:r<.01?0:r})}return{nodes:t,edges:n}}),prunesStale:t=>e(e=>{let n=Date.now()-t,r=new Map(e.nodes);for(let[e,t]of r)t.lastSeenAt<n&&t.status!==void 0&&t.status!==`active`&&r.delete(e);let i=new Map(e.edges);for(let[e,t]of i)t.lastActiveAt<n&&i.delete(e);return{nodes:r,edges:i,events:e.events.filter(e=>e.timestamp>n)}})}));function _(e,t){switch(e){case`provider.text_delta`:{let e=t.text??``;return{id:f(),kind:`provider:delta`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,60),magnitude:e.length,data:{text:e},color:m.provider,flowGroup:`provider`}}case`provider.response`:{let e=t.usage,n=(e?.input??0)+(e?.output??0);return{id:f(),kind:`provider:response`,timestamp:Date.now(),source:`provider`,target:`leader`,label:`${(e?.input??0).toLocaleString(`en-US`)} in / ${(e?.output??0).toLocaleString(`en-US`)} out`,magnitude:n,data:t,color:m.provider,flowGroup:`provider`}}case`provider.stream_error`:{let e=t.message??`Provider stream error`;return{id:f(),kind:`error`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,80),magnitude:1,data:t,color:m.error,flowGroup:`provider`}}case`tool.started`:{let e=t.name??`tool`;return{id:f(),kind:`tool:started`,timestamp:Date.now(),source:e,target:`filesystem`,label:e,magnitude:1,data:t,color:m.tool,flowGroup:`tool:${e}`}}case`tool.executed`:{let e=t.name??`tool`,n=t.ok??!0;return{id:f(),kind:`tool:executed`,timestamp:Date.now(),source:e,target:`leader`,label:`${e} ${n?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:n?m.tool:m.error,flowGroup:`tool:${e}`}}case`tool.progress`:{let e=t.name??`tool`,n=t.event?.text??``;return{id:f(),kind:`tool:progress`,timestamp:Date.now(),source:e,target:`leader`,label:n.slice(0,60)||e,magnitude:n.length,data:t,color:m.tool,flowGroup:`tool:${e}`}}case`tool.loop_detected`:{let e=t.tools??``,n=t.kind??`loop`;return{id:f(),kind:`error`,timestamp:Date.now(),source:e||n,target:`leader`,label:`${n} loop x${t.repeatCount??0}`,magnitude:t.repeatCount??1,data:t,color:m.error,flowGroup:`tool`}}case`delegate.started`:{let e=t.target??`delegate`,n=t.task??``;return{id:f(),kind:`agent:status`,timestamp:Date.now(),source:`leader`,target:e,label:n.slice(0,80)||`Delegating to ${e}`,magnitude:1,data:t,color:m.agent,flowGroup:`delegate:${e}`}}case`delegate.completed`:{let e=t.subagentId??t.target??`delegate`,n=t.ok??!1;return{id:f(),kind:n?`agent:status`:`error`,timestamp:Date.now(),source:e,target:`leader`,label:(t.summary??t.status??`delegate completed`).slice(0,80),magnitude:t.durationMs??1,data:t,color:n?m.agent:m.error,flowGroup:`delegate:${e}`}}case`subagent.event`:{let e=t.kind,n=t.subagentId??`unknown`,r=t.name??n;switch(e){case`spawned`:return{id:f(),kind:`agent:spawned`,timestamp:Date.now(),source:n,target:`session`,label:`${r} spawned`,magnitude:1,data:t,color:m.agent,flowGroup:`agent:${n}`};case`tool_executed`:{let e=t.toolName??`tool`,r=t.ok??!0;return{id:f(),kind:`agent:tool`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:t.durationMs??0,data:t,color:r?m.tool:m.error,flowGroup:`agent:${n}`}}case`task_completed`:{let e=t.status??`completed`;return{id:f(),kind:`agent:status`,timestamp:Date.now(),source:n,target:`session`,label:`${r} ${e}`,magnitude:1,data:t,color:e===`success`?m.success:m.error,flowGroup:`agent:${n}`}}case`ctx_pct`:return{id:f(),kind:`agent:ctx`,timestamp:Date.now(),source:n,target:`session`,label:`ctx ${c(t.load)}%`,magnitude:t.tokens??0,data:t,color:m.agent,flowGroup:`agent:${n}`};case`iteration_summary`:return{id:f(),kind:`agent:text`,timestamp:Date.now(),source:n,target:`session`,label:(t.partialText??``).slice(0,80)||`iter ${t.iteration??0}`,magnitude:t.costUsd??0,data:t,color:m.agent,flowGroup:`agent:${n}`};case`budget_extended`:return{id:f(),kind:`budget:extended`,timestamp:Date.now(),source:n,target:`session`,label:`${r} extended budget`,magnitude:t.totalExtensions??1,data:t,color:m.tool,flowGroup:`agent:${n}`};case`budget_warning`:return{id:f(),kind:`budget:warning`,timestamp:Date.now(),source:n,target:`session`,label:`${r} hit ${t.budgetKind??`budget`} ${t.used??0}/${t.limit??0}`,magnitude:t.used??1,data:t,color:m.error,flowGroup:`agent:${n}`}}return null}case`mailbox.event`:{let e=t.event,n=t.from??`?`,r=t.to??`?`,i=t.subject??``,a=e===`mailbox.sent`;return{id:f(),kind:a?`mailbox:send`:`mailbox:deliver`,timestamp:Date.now(),source:n,target:r,label:i||(a?`→ ${r}`:`← ${n}`),magnitude:1,data:t,color:m.mailbox,flowGroup:`mailbox`}}case`iteration.started`:{let e=t.index??0;return{id:f(),kind:`iteration:start`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e}`,magnitude:e,data:t,color:m.agent,flowGroup:`iteration`}}case`iteration.completed`:{let e=t.index??0;return{id:f(),kind:`iteration:end`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e} done`,magnitude:e,data:t,color:m.session,flowGroup:`iteration`}}case`ctx.pct`:{let e=t.tokens??0;return{id:f(),kind:`agent:ctx`,timestamp:Date.now(),source:`leader`,target:`session`,label:`ctx ${c(t.load)}%`,magnitude:e,data:t,color:m.agent,flowGroup:`leader`}}case`error`:{let e=t.message??`Error`;return{id:f(),kind:`error`,timestamp:Date.now(),source:t.phase??`system`,target:`session`,label:e,magnitude:1,data:t,color:m.error,flowGroup:`error`}}case`context.compacted`:return{id:f(),kind:`context:compacted`,timestamp:Date.now(),source:`system`,target:`session`,label:`Compacted: ${(t.saved??0).toLocaleString(`en-US`)} tokens`,magnitude:t.saved??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`compaction.failed`:{let e=t.message??`Compaction failed`;return{id:f(),kind:`error`,timestamp:Date.now(),source:`compactor`,target:`session`,label:e.slice(0,80),magnitude:t.tokens??1,data:t,color:m.error,flowGroup:`context`}}case`context.repaired`:return{id:f(),kind:`context:repaired`,timestamp:Date.now(),source:`system`,target:`session`,label:`Repaired: ${t.removedMessages??0} msgs`,magnitude:t.removedMessages??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`session.start`:{let e=t.sessionId??`?`,n=t.projectName??``;return{id:f(),kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:n||e.slice(0,12),magnitude:1,data:t,color:m.session,flowGroup:`session`}}case`sessions.status_update`:{let e=t.sessions??[];return{id:f(),kind:`fleet:snapshot`,timestamp:Date.now(),source:`system`,target:`session`,label:`${e.length} session(s)`,magnitude:e.length,data:t,color:m.system,flowGroup:`fleet`}}default:return null}}function v(e){let t=e.payload?.sessionId,r=n.getState().session?.id;return!t||!r||t===r}function y(e){let t=_(e.type,e.payload);t&&(g.getState().pushEvent(t),g.getState().setActive(!0))}function b(e,t,n){let r=e.payload??{};for(let[e,n]of Object.entries(t)){let t=r[e];if(!x(t,n))return null}if(n)for(let[e,t]of Object.entries(n)){let n=r[e];if(n!=null&&!x(n,t))return null}return r}function x(e,t){switch(t){case`string`:return typeof e==`string`;case`number`:return typeof e==`number`;case`boolean`:return typeof e==`boolean`;case`object`:return typeof e==`object`&&!!e&&!Array.isArray(e);case`array`:return Array.isArray(e);default:return!1}}function S(e){try{return new URL(e).searchParams.get(`token`)}catch{return null}}function C(){if(typeof window>`u`||!window.location)return null;try{let e=window.location.search??``;return new URLSearchParams(e).get(`token`)}catch{return null}}function w(e){try{let t=new URL(e);return t.searchParams.delete(`token`),t.toString()}catch{return e}}function T(){if(!(typeof window>`u`||!window.location||!window.history?.replaceState))try{let e=window.location.href;if(!e)return;let t=new URL(e);if(!t.searchParams.has(`token`))return;t.searchParams.delete(`token`),window.history.replaceState(window.history.state,document.title,t.toString())}catch{}}var E=3457;function D(){if(typeof document>`u`)return E;let e=document.querySelector(`meta[name="wrongstack-ws-port"]`)?.getAttribute(`content`),t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0&&t<65536?t:E}function O(){if(typeof document>`u`)return null;let e=document.querySelector(`meta[name="wrongstack-ws-url"]`)?.getAttribute(`content`)?.trim();if(!e)return null;try{let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)return null;let n=C();return n&&!t.searchParams.has(`token`)&&t.searchParams.set(`token`,n),t.toString()}catch{return null}}function k(){let e=O();if(e)return e;let t=D();if(typeof window>`u`||!window.location?.hostname)return`ws://127.0.0.1:${t}`;let n=window.location.protocol===`https:`?`wss`:`ws`,r=window.location.hostname.toLowerCase(),i=C(),a=i?`?token=${encodeURIComponent(i)}`:``;return r===`localhost`||r===`127.0.0.1`||r===`[::1]`||r===`::1`?`${n}://127.0.0.1:${t}${a}`:`${n}://${window.location.hostname}:${t}${a}`}function A(){if(typeof window>`u`||!window.location?.hostname)return`http://127.0.0.1:3456`;let e=window.location.protocol===`https:`?`https`:`http`,t=window.location.hostname.toLowerCase(),n=window.location.port?`:${window.location.port}`:``;return t===`localhost`||t===`127.0.0.1`||t===`[::1]`||t===`::1`?`${e}://127.0.0.1${n}`:`${e}://${window.location.hostname}${n}`}var j=e({WrongStackWebSocketClient:()=>N,getWSClient:()=>F});function M(e){try{let t=new URL(e),n=new URL(A());return t.hostname===n.hostname}catch{return!0}}var N=class e{ws=null;url;handlers=new Map;reconnectAttempts=0;maxReconnectAttempts=10;reconnectDelay=1e3;shouldReconnect=!0;reconnectTimer=null;connectPromise=null;socketGeneration=0;messageQueue=[];static MAX_QUEUED_MESSAGES=1e3;pendingConfirms=new Map;sessionId=null;lastErrorText;statusListeners=new Set;currentStatus={state:`connecting`};onStatus(e){return this.statusListeners.add(e),e(this.currentStatus),()=>this.statusListeners.delete(e)}get status(){return this.currentStatus}setStatus(e){this.currentStatus=e;for(let t of this.statusListeners)try{t(e)}catch{}}constructor(e){this.url=e??k()}withSession(e){return this.sessionId?{...e,sessionId:this.sessionId}:e}async ensureAuthCookie(){if(typeof window>`u`)return;if(document.cookie.split(`;`).some(e=>e.trim().startsWith(`ws_token=`))){M(this.url)&&(this.url=w(this.url)),T();return}let e=S(this.url)??C();if(!e)return;let t=A()+`/ws-auth?token=${encodeURIComponent(e)}`;try{let e=await fetch(t,{method:`GET`,credentials:`same-origin`,cache:`no-store`});e.ok?(M(this.url)&&(this.url=w(this.url)),T()):console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_failed`,status:e.status,timestamp:new Date().toISOString()}))}catch(e){console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}}connect(){return this.ws?.readyState===WebSocket.OPEN?Promise.resolve():(this.connectPromise||=this.openSocket().finally(()=>{this.connectPromise=null}),this.connectPromise)}async openSocket(){return await this.ensureAuthCookie(),new Promise((e,t)=>{if(this.ws?.readyState===WebSocket.OPEN){e();return}this.setStatus({state:`connecting`});let n=++this.socketGeneration;try{let r=new WebSocket(this.url);this.ws=r,r.binaryType=`arraybuffer`;let i=setTimeout(()=>{if(this.ws===r){try{r.onopen=null,r.onmessage=null,r.onerror=null,r.onclose=null,r.close()}catch{}this.ws===r&&(this.ws=null)}t(Error(`Connection timeout`))},1e4),a=!1;r.onopen=()=>{this.socketGeneration===n&&(clearTimeout(i),a=!0,this.reconnectAttempts=0,this.lastErrorText=void 0,this.setStatus({state:`open`}),this.flushMessageQueue(),e())},r.onmessage=e=>{if(this.socketGeneration===n)try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.message_parse_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},r.onerror=e=>{this.socketGeneration===n&&(console.error(JSON.stringify({level:`error`,event:`ws_client.error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()})),this.lastErrorText=`Connection error (see browser devtools)`,a||(clearTimeout(i),t(Error(this.lastErrorText)),this.attemptReconnect()))},r.onclose=e=>{if(this.socketGeneration===n){if(!a){clearTimeout(i);let n=e.reason||`Closed with code ${e.code}`;this.lastErrorText=n,t(Error(n)),this.attemptReconnect();return}e.reason&&!this.lastErrorText?this.lastErrorText=`${e.reason} (code ${e.code})`:!this.lastErrorText&&e.code!==1e3&&(this.lastErrorText=`Closed with code ${e.code}`),this.attemptReconnect()}}}catch(e){if(this.socketGeneration!==n)return;this.lastErrorText=e instanceof Error?e.message:String(e),this.setStatus({state:`closed`,error:this.lastErrorText}),t(e)}})}attemptReconnect(){if(!this.shouldReconnect||this.reconnectAttempts>=this.maxReconnectAttempts){this.reconnectTimer=null,this.setStatus({state:`closed`,error:this.lastErrorText??`Disconnected`});return}this.reconnectAttempts++;let e=Math.min(this.reconnectDelay*2**(this.reconnectAttempts-1),3e4),t=Date.now()+e;this.setStatus({state:`reconnecting`,attempt:this.reconnectAttempts,nextRetryAt:t,lastError:this.lastErrorText}),this.reconnectTimer=setTimeout(async()=>{if(this.reconnectTimer=null,this.shouldReconnect)try{await this.connect()}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},e)}retryNow(){this.currentStatus.state!==`open`&&(this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.reconnectAttempts=0,this.connect().catch(e=>console.warn(JSON.stringify({level:`warn`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))))}flushMessageQueue(){for(;this.messageQueue.length>0;){let e=this.messageQueue.shift();e&&this.send(e)}}handleMessage(e){if(e.type===`tool.confirm_needed`){let t=e.payload;this.pendingConfirms.set(t.id,{}),this.emit(e);return}if(e.type===`session.start`){let t=e.payload;this.sessionId=t.sessionId}this.emit(e)}emit(e){let t=this.handlers.get(e.type);if(t)for(let n of t)try{n(e)}catch(t){console.error(JSON.stringify({level:`error`,event:`ws_client.handler_error`,messageType:e.type,message:t instanceof Error?t.message:String(t),timestamp:new Date().toISOString()}))}}send(t){if((t.type===`context.clear`||t.type===`session.new`||t.type===`session.resume`)&&i.dropAll(),this.ws?.readyState===WebSocket.OPEN)this.ws.send(JSON.stringify(t));else{if(this.messageQueue.length>=e.MAX_QUEUED_MESSAGES){let t=this.messageQueue.shift();t&&console.warn(JSON.stringify({level:`warn`,event:`ws_client.message_queue_full`,cap:e.MAX_QUEUED_MESSAGES,droppedType:t.type,timestamp:new Date().toISOString()}))}this.messageQueue.push(t)}}on(e,t){let n=this.handlers.get(e);return n||(n=new Set,this.handlers.set(e,n)),n.add(t),()=>n?.delete(t)}off(e,t){this.handlers.get(e)?.delete(t)}sendMessage(e,t){let n=`msg_${Date.now()}_${crypto.randomUUID().slice(0,8)}`;return this.send({type:`user_message`,payload:this.withSession({id:n,content:e,timestamp:Date.now(),...t?{imageBase64:t}:{}})}),n}sendAbort(){this.send({type:`abort`,payload:this.withSession({})})}getGitInfo(){this.send({type:`git.info`})}getGitChanges(){this.send({type:`git.changes`})}getGitDiff(e){this.send({type:`git.diff`,payload:{path:e}})}sendConfirm(e,t){this.pendingConfirms.has(e)&&this.pendingConfirms.delete(e),this.send({type:`tool.confirm_result`,payload:this.withSession({id:e,decision:t})})}switchModel(e,t){this.send({type:`model.switch`,payload:{provider:e,model:t}})}newSession(){this.send({type:`session.new`,payload:this.withSession({})})}listProviders(){this.send({type:`providers.list`})}listProviderModels(e){this.send({type:`provider.models`,payload:{providerId:e}})}listSavedProviders(){this.send({type:`providers.saved`})}addKey(e,t,n){this.send({type:`key.add`,payload:{providerId:e,label:t,apiKey:n}})}updateKey(e,t,n){this.send({type:`key.update`,payload:{providerId:e,label:t,apiKey:n}})}deleteKey(e,t){this.send({type:`key.delete`,payload:{providerId:e,label:t}})}setActiveKey(e,t){this.send({type:`key.set_active`,payload:{providerId:e,label:t}})}addProvider(e,t,n,r){this.send({type:`provider.add`,payload:{id:e,family:t,baseUrl:n,apiKey:r}})}removeProvider(e){this.send({type:`provider.remove`,payload:{providerId:e}})}startOAuth(e){this.send({type:`auth.oauth.start`,payload:{kind:e}})}submitOAuthCode(e,t){this.send({type:`auth.oauth.code`,payload:{kind:e,input:t}})}cancelOAuth(e){this.send({type:`auth.oauth.cancel`,payload:{kind:e}})}probeProvider(e,t){this.send({type:`provider.probe`,payload:t===void 0?{providerId:e}:{providerId:e,timeoutMs:t}})}clearProviderModels(e){this.send(a(e))}undoProviderClear(e,t){this.send(o(e,t))}updateProvider(e){this.send(s(e))}clearContext(){this.send({type:`context.clear`,payload:this.withSession({})})}compactContext(e=!1){this.send({type:`context.compact`,payload:this.withSession({aggressive:e})})}repairContext(){this.send({type:`context.repair`,payload:this.withSession({})})}debugContext(){this.send({type:`context.debug`,payload:this.withSession({})})}listContextModes(){this.send({type:`context.modes.list`,payload:this.withSession({})})}switchContextMode(e){this.send({type:`context.mode.switch`,payload:this.withSession({id:e})})}createContextMode(e){this.send({type:`context.mode.create`,payload:this.withSession(e)})}updateContextMode(e,t){this.send({type:`context.mode.update`,payload:this.withSession({id:e,...t})})}deleteContextMode(e){this.send({type:`context.mode.delete`,payload:this.withSession({id:e})})}switchAutonomy(e){this.send({type:`autonomy.switch`,payload:{mode:e}})}updatePrefs(e){this.send({type:`prefs.update`,payload:e})}getPrefs(){this.send({type:`prefs.get`})}listTools(){this.send({type:`tools.list`})}listMemory(){this.send({type:`memory.list`})}remember(e,t){this.send({type:`memory.remember`,payload:{text:e,scope:t}})}forget(e,t){this.send({type:`memory.forget`,payload:{text:e,scope:t}})}listMcpServers(){this.send({type:`mcp.list`})}addMcpServer(e){this.send({type:`mcp.add`,payload:e})}removeMcpServer(e){this.send({type:`mcp.remove`,payload:{name:e}})}updateMcpServer(e){this.send({type:`mcp.update`,payload:e})}wakeMcpServer(e){this.send({type:`mcp.wake`,payload:{name:e}})}sleepMcpServer(e){this.send({type:`mcp.sleep`,payload:{name:e}})}discoverMcpServer(e){this.send({type:`mcp.discover`,payload:{name:e}})}enableMcpServer(e){this.send({type:`mcp.enable`,payload:{name:e}})}disableMcpServer(e){this.send({type:`mcp.disable`,payload:{name:e}})}restartMcpServer(e){this.send({type:`mcp.restart`,payload:{name:e}})}listSkills(){this.send({type:`skills.list`})}getSkillContent(e,t){this.send({type:`skills.content`,payload:{name:e,source:t}})}installSkill(e,t){this.send({type:`skills.install`,payload:{ref:e,global:t}})}uninstallSkill(e,t){this.send({type:`skills.uninstall`,payload:{name:e,global:t}})}checkForUpdates(e,t){this.send({type:`skills.update`,payload:{name:e,global:t}})}createSkill(e,t,n){this.send({type:`skills.create`,payload:{name:e,description:t,scope:n}})}editSkill(e,t){this.send({type:`skills.edit`,payload:{name:e,body:t}})}exportAllSkills(){this.send({type:`skills.export`})}getDiag(){this.send({type:`diag.get`,payload:this.withSession({})})}getStats(){this.send({type:`stats.get`,payload:this.withSession({})})}saveSession(){this.send({type:`session.save`,payload:this.withSession({})})}resumeSessionById(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}listModes(){this.send({type:`modes.list`})}switchMode(e){this.send({type:`mode.switch`,payload:{id:e}})}listFiles(e,t,n){this.send({type:`files.list`,payload:{query:e,limit:t,path:n}})}requestCompletion(e){this.send({type:`completion.request`,payload:e})}getTodos(){this.send({type:`todos.get`,payload:this.withSession({})})}clearTodos(){this.send({type:`todos.clear`,payload:this.withSession({})})}removeTodo(e){let t=typeof e==`number`?{index:e}:{id:e};this.send({type:`todos.remove`,payload:this.withSession(t)})}updateTodoStatus(e,t){this.send({type:`todo.update`,payload:this.withSession({id:e,status:t})})}getTasks(){this.send({type:`tasks.get`,payload:this.withSession({})})}updateTaskStatus(e,t){this.send({type:`task.update`,payload:this.withSession({id:e,status:t})})}getPlan(){this.send({type:`plan.get`,payload:this.withSession({})})}updatePlanItem(e,t){this.send({type:`plan.item.update`,payload:this.withSession({target:e,status:t})})}listSessions(e=50){this.send({type:`sessions.list`,payload:this.withSession({limit:e})})}deleteSession(e){this.send({type:`session.delete`,payload:{id:e}})}renameSession(e,t){this.send({type:`session.rename`,payload:{id:e,name:t}})}setWorkingDir(e){this.send({type:`working_dir.set`,payload:{path:e}})}resumeSession(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}ping(){this.send({type:`ping`})}refineModel(e){this.send({type:`model.refine`,payload:{text:e}})}disconnect(){this.shouldReconnect=!1,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.messageQueue.length=0,this.ws?.close(),this.ws=null}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}get currentSessionId(){return this.sessionId}},P=null;function F(e){return P||=new N(e),P}export{y as a,_ as c,v as i,i as l,j as n,b as o,k as r,g as s,F as t};
@@ -1,4 +1,4 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{m as t,p as n}from"./markdown-D0X23O-i.js";import{_i as r,a as i,c as a,d as o,f as s,i as c,l,n as u,o as d,p as f,r as p,s as m,u as h}from"./vendor-OWPFcqeg.js";var g=e(t()),_=n(),v={error001:(e=`react`)=>`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},y=[[-1/0,-1/0],[1/0,1/0]],b=[`Enter`,` `,`Escape`],x={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},S;(function(e){e.Strict=`strict`,e.Loose=`loose`})(S||={});var C;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(C||={});var w;(function(e){e.Partial=`partial`,e.Full=`full`})(w||={});var T={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},E;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(E||={});var D;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(D||={});var O;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(O||={});var k={[O.Left]:O.Right,[O.Right]:O.Left,[O.Top]:O.Bottom,[O.Bottom]:O.Top};function A(e){return e===null?null:e?`valid`:`invalid`}var j=e=>`id`in e&&`source`in e&&`target`in e,M=e=>`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),N=e=>`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),P=(e,t=[0,0])=>{let{width:n,height:r}=_e(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},F=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:te(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):N(n)?n:t.nodeLookup.get(n.id)),q(e,i?re(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),I=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=q(n,re(e)),r=!0)}),r?te(n):{x:0,y:0,width:0,height:0}},L=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=ae(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},R=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function z(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{e.measured.width&&e.measured.height&&(t?.includeHiddenNodes||!e.hidden)&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function B({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=me(I(z(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function V({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,v.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&ge(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=ge(d)?W(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,v.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function H({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=R(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var U=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),W=(e={x:0,y:0},t,n)=>({x:U(e.x,t[0][0],t[1][0]-(n?.width??0)),y:U(e.y,t[0][1],t[1][1]-(n?.height??0))});function G(e,t,n){let{width:r,height:i}=_e(n),{x:a,y:o}=n.internals.positionAbsolute;return W(e,[[a,o],[a+r,o+i]],t)}var K=(e,t,n)=>e<t?U(Math.abs(e-t),1,t)/t:e>n?-U(Math.abs(e-n),1,t)/t:0,ee=(e,t,n=15,r=40)=>[K(e.x,r,t.width-r)*n,K(e.y,r,t.height-r)*n],q=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),J=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),te=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),ne=(e,t=[0,0])=>{let{x:n,y:r}=N(e)?e.internals.positionAbsolute:P(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},re=(e,t=[0,0])=>{let{x:n,y:r}=N(e)?e.internals.positionAbsolute:P(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},ie=(e,t)=>te(q(J(e),J(t))),ae=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},oe=(e,t)=>ae(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),se=e=>Y(e.width)&&Y(e.height)&&Y(e.x)&&Y(e.y),Y=e=>!isNaN(e)&&isFinite(e),ce=(e,t)=>(e,t)=>{},le=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ue=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?le(s,o):s},X=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function de(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function fe(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=de(e,n),i=de(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=de(e.top??e.y??0,n),i=de(e.bottom??e.y??0,n),a=de(e.left??e.x??0,t),o=de(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function pe(e,t,n,r,i,a){let{x:o,y:s}=X(e,[t,n,r]),{x:c,y:l}=X({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var me=(e,t,n,r,i,a)=>{let o=fe(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=U(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=pe(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},he=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function ge(e){return e!=null&&e!==`parent`}function _e(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ve(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ye(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function be(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function xe(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Se(e){return{...x,...e||{}}}function Ce(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Z(e),s=ue({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?le(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var we=e=>({width:e.offsetWidth,height:e.offsetHeight}),Te=e=>e?.getRootNode?.()||window?.document,Ee=[`INPUT`,`SELECT`,`TEXTAREA`];function De(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Ee.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Oe=e=>`clientX`in e,Z=(e,t)=>{let n=Oe(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},ke=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...we(t)}})};function Ae({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function je(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Me({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case O.Left:return[t-je(t-r,a),n];case O.Right:return[t+je(r-t,a),n];case O.Top:return[t,n-je(n-i,a)];case O.Bottom:return[t,n+je(i-n,a)]}}function Ne({sourceX:e,sourceY:t,sourcePosition:n=O.Bottom,targetX:r,targetY:i,targetPosition:a=O.Top,curvature:o=.25}){let[s,c]=Me({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Me({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Ae({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Pe({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function Fe({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function Ie({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=q(re(e),re(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),oe({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},te(a))>0}var Le=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,Re=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),ze=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,v.error006()),t;let r=n.getEdgeId||Le,i;return i=j(e)?{...e}:{...e,id:r(e)},Re(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Be({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Pe({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Ve={[O.Left]:{x:-1,y:0},[O.Right]:{x:1,y:0},[O.Top]:{x:0,y:-1},[O.Bottom]:{x:0,y:1}},He=({source:e,sourcePosition:t=O.Bottom,target:n})=>t===O.Left||t===O.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Ue=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function We({source:e,sourcePosition:t=O.Bottom,target:n,targetPosition:r=O.Top,center:i,offset:a,stepPosition:o}){let s=Ve[t],c=Ve[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=He({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Pe({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function Ge(e,t,n,r){let i=Math.min(Ue(e,t)/2,Ue(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function Ke({sourceX:e,sourceY:t,sourcePosition:n=O.Bottom,targetX:r,targetY:i,targetPosition:a=O.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=We({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=Ge(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function qe(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Je(e){let{sourceNode:t,targetNode:n}=e;if(!qe(t)||!qe(n))return null;let r=t.internals.handleBounds||Ye(t.handles),i=n.internals.handleBounds||Ye(n.handles),a=Ze(r?.source??[],e.sourceHandle),o=Ze(e.connectionMode===S.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,v.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||O.Bottom,c=o?.position||O.Top,l=Xe(t,a,s),u=Xe(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function Ye(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,r.type===`source`?t.push(r):r.type===`target`&&n.push(r);return{source:t,target:n}}function Xe(e,t,n=O.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??_e(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case O.Top:return{x:i+o/2,y:a};case O.Right:return{x:i+o,y:a+s/2};case O.Bottom:return{x:i+o/2,y:a+s};case O.Left:return{x:i,y:a+s/2}}}function Ze(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function Qe(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function $e(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=Qe(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var et=1e3,tt=10,nt={nodeOrigin:[0,0],nodeExtent:y,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},rt={...nt,checkEquality:!0};function it(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function at(e,t,n){let r=it(nt,n);for(let n of e.values())if(n.parentId)ut(n,e,t,r);else{let e=W(P(n,r.nodeOrigin),ge(n.extent)?n.extent:r.nodeExtent,_e(n));n.internals.positionAbsolute=e}}function ot(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function st(e){return e===`manual`}function ct(e,t,n,r={}){let i=it(rt,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!st(i.zIndexMode)?et:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=W(P(u,i.nodeOrigin),ge(u.extent)?u.extent:i.nodeExtent,_e(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:ot(u,e),z:dt(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&ut(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function lt(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ut(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=it(nt,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}lt(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*tt),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=ft(e,u,o,s,a&&!st(c)?et:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function dt(e,t,n){let r=Y(e.zIndex)?e.zIndex:0;return st(n)?r:r+(e.selected?t:0)}function ft(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=_e(e),l=P(e,n),u=ge(e.extent)?W(l,e.extent,c):l,d=W({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=G(d,c,t));let f=dt(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function pt(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=ie(a.get(n.parentId)?.expandedRect??ne(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=_e(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function mt(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=we(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=ge(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;e.parentId&&e.extent===`parent`?h=G(h,s,t.get(e.parentId)):m&&(h=W(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:ke(`source`,r.nodeElement,p,d,e.id),target:ke(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&ut(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:ne(g,i)}))}}if(f.length>0){let e=pt(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function ht({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function gt(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function _t(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;gt(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),gt(`target`,s,c,e,i,o),t.set(r.id,r)}}function vt(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:vt(n,t):!1}function yt(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function bt(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!vt(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function xt({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function St({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=le(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Ct({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},s=0,c=new Map,l=!1,u={x:0,y:0},d=null,f=!1,p=null,m=!1,g=!1,_=null;function v({noDragClassName:v,handleSelector:y,domNode:b,isSelectable:x,nodeId:S,nodeClickDistance:C=0}){p=o(b);function w({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:s,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:m}=t();a={x:e,y:n};let h=!1,v=c.size>1,y=v&&o?J(I(c)):null,b=v&&l?St({dragItems:c,snapGrid:s,x:e,y:n}):null;for(let[t,r]of c){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=b?{x:Math.round(a.x+b.x),y:Math.round(a.y+b.y)}:le(a,s));let c=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];c=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=V({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:c||o,nodeOrigin:u,onError:p});h=h||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(g||=h,h&&(m(c,!0),_&&(r||d||!S&&f))){let[e,t]=xt({nodeId:S,dragItems:c,nodeLookup:i});r?.(_,c,e,t),d?.(_,e,t),S||f?.(_,t)}}async function T(){if(!d)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){l=!1,cancelAnimationFrame(s);return}let[o,c]=ee(u,d,r);(o!==0||c!==0)&&(a.x=(a.x??0)-o/e[2],a.y=(a.y??0)-c/e[2],await n({x:o,y:c})&&w(a)),s=requestAnimationFrame(T)}function E(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:s,transform:l,snapGrid:u,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();f=!0,(!m||!x)&&!o&&S&&(i.get(S)?.selected||_()),x&&m&&S&&e?.(S);let v=Ce(r.sourceEvent,{transform:l,snapGrid:u,snapToGrid:p,containerBounds:d});if(a=v,c=bt(i,s,v,S),c.size>0&&(n||h||!S&&g)){let[e,t]=xt({nodeId:S,dragItems:c,nodeLookup:i});n?.(r.sourceEvent,c,e,t),h?.(r.sourceEvent,e,t),S||g?.(r.sourceEvent,t)}}let D=h().clickDistance(C).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();d=n?.getBoundingClientRect()||null,m=!1,g=!1,_=e.sourceEvent,r===0&&E(e),a=Ce(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:d}),u=Z(e.sourceEvent,d)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:s,nodeLookup:p}=t(),h=Ce(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:d});if(_=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||S&&!p.has(S))&&(m=!0),!m){if(!l&&n&&f&&(l=!0,T()),!f){let t=Z(e.sourceEvent,d),n=t.x-u.x,r=t.y-u.y;Math.sqrt(n*n+r*r)>s&&E(e)}(a.x!==h.xSnapped||a.y!==h.ySnapped)&&c&&f&&(u=Z(e.sourceEvent,d),w(h))}}).on(`end`,e=>{if(!f||m){m&&c.size>0&&t().updateNodePositions(c,!1);return}if(l=!1,f=!1,cancelAnimationFrame(s),c.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(g&&=(r(c,!1),!1),i||a||!S&&o){let[t,r]=xt({nodeId:S,dragItems:c,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,c,t,r),a?.(e.sourceEvent,t,r),S||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!v||!yt(t,`.${v}`,b))&&(!y||yt(t,y,b))});p.call(D)}function y(){p?.on(`.drag`,null)}return{update:v,destroy:y}}function wt(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())oe(i,ne(e))>0&&r.push(e);return r}var Tt=250;function Et(e,t,n,r){let i=[],a=1/0,o=wt(e,n,t+Tt);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=Xe(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Dt(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...Xe(o,c,c.position,!0)}:c}function Ot(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function kt(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var At=()=>!0;function jt(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=At,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=Te(e.target),E=0,D,{x:A,y:j}=Z(e),M=Ot(a,w),N=s?.getBoundingClientRect(),P=!1;if(!N||!M)return;let F=Dt(i,M,r,c,t);if(!F)return;let I=Z(e,N),L=!1,R=null,z=!1,B=null;function V(){if(!u||!N)return;let[e,t]=ee(I,N,S);f({x:e,y:t}),E=requestAnimationFrame(V)}let H={...F,nodeId:i,type:M,position:F.position},U=c.get(i),W={inProgress:!0,isValid:null,from:Xe(U,H,O.Left,!0),fromHandle:H,fromPosition:H.position,fromNode:U,to:I,toHandle:null,toPosition:k[H.position],toNode:null,pointer:I};function G(){P=!0,y(W),m?.(e,{nodeId:i,handleId:r,handleType:M})}C===0&&G();function K(e){if(!P){let{x:t,y:n}=Z(e),r=t-A,i=n-j;if(!(r*r+i*i>C*C))return;G()}if(!x()||!H){q(e);return}let a=b();I=Z(e,N),D=Et(ue(I,a,!1,[1,1]),n,c,H),L||=(V(),!0);let s=Mt(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});B=s.handleDomNode,R=s.connection,z=kt(!!D,s.isValid);let u=c.get(i),f=u?Xe(u,H,O.Left,!0):W.from,p={...W,from:f,isValid:z,to:s.toHandle&&z?X({x:s.toHandle.x,y:s.toHandle.y},a):I,toHandle:s.toHandle,toPosition:z&&s.toHandle?s.toHandle.position:k[H.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:I};y(p),W=p}function q(e){if(!(`touches`in e&&e.touches.length>0)){if(P){(D||B)&&R&&z&&h?.(R);let{inProgress:t,...n}=W,r={...n,toPosition:W.toHandle?W.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),L=!1,z=!1,R=null,B=null,T.removeEventListener(`mousemove`,K),T.removeEventListener(`mouseup`,q),T.removeEventListener(`touchmove`,K),T.removeEventListener(`touchend`,q)}}T.addEventListener(`mousemove`,K),T.addEventListener(`mouseup`,q),T.addEventListener(`touchmove`,K),T.addEventListener(`touchend`,q)}function Mt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=At,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=Z(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Ot(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===S.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Dt(t,e,a,u,n,!0)}return _}var Nt={onPointerDown:jt,isValid:Mt};function Pt({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let a=o(e);function c({translateExtent:e,width:o,height:s,zoomStep:c=1,pannable:l=!0,zoomable:u=!0,inversePan:d=!1}){let f=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&he()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*c,o=r[2]*2**(a*i);t.scaleTo(o)},p=[0,0],m=i().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(p=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,l?i=>{let a=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-p[0],c[1]-p[1]];p=c;let u=r()*Math.max(a[2],Math.log(a[2]))*(d?-1:1),f={x:a[0]-l[0]*u,y:a[1]-l[1]*u},m=[[0,0],[o,s]];t.setViewportConstrained({x:f.x,y:f.y,zoom:a[2]},m,e)}:null).on(`zoom.wheel`,u?f:null);a.call(m,{})}function l(){a.on(`zoom`,null)}return{update:c,destroy:l,pointer:s}}var Ft=e=>({x:e.x,y:e.y,zoom:e.k}),It=({x:e,y:t,zoom:n})=>d.translate(e,t).scale(n),Lt=(e,t)=>e.target.closest(`.${t}`),Rt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),zt=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Bt=(e,t=0,n=zt,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Vt=e=>{let t=e.ctrlKey&&he()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Ht({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:c,onPanZoom:l,onPanZoomEnd:u}){return d=>{if(Lt(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();let f=n.property(`__zoom`).k||1;if(d.ctrlKey&&o){let e=s(d),t=f*2**Vt(d);r.scaleTo(n,t,e,d);return}let p=d.deltaMode===1?20:1,m=i===C.Vertical?0:d.deltaX*p,h=i===C.Horizontal?0:d.deltaY*p;!he()&&d.shiftKey&&i!==C.Vertical&&(m=d.deltaY*p,h=0),r.translateBy(n,-(m/f)*a,-(h/f)*a,{internal:!0});let g=Ft(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l?.(d,g),e.panScrollTimeout=setTimeout(()=>{u?.(d,g),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,c?.(d,g))}}function Ut({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Lt(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function Wt({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Ft(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function Gt({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Rt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Ft(a.transform))}}function Kt({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Rt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Ft(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function qt({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(Lt(d,`${l}-flow__node`)||Lt(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||Lt(d,s)&&m||Lt(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function Jt({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:c,onPanZoomStart:u,onPanZoomEnd:d,onDraggingChange:f}){let p={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=e.getBoundingClientRect(),g=i().scaleExtent([t,n]).translateExtent(r),_=o(e).call(g);C({x:s.x,y:s.y,zoom:U(s.zoom,t,n)},[[0,0],[h.width,h.height]],r);let v=_.on(`wheel.zoom`),y=_.on(`dblclick.zoom`);g.wheelDelta(Vt);async function b(e,t){return _?new Promise(n=>{g?.interpolate(t?.interpolate===`linear`?l:a).transform(Bt(_,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function x({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:a,panOnScrollMode:o,panOnScrollSpeed:s,preventScrolling:l,zoomOnPinch:m,zoomOnScroll:h,zoomOnDoubleClick:b,zoomActivationKeyPressed:x,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!p.isZoomingOrPanning&&S();let O=i&&!x&&!r;g.clickDistance(D?1/0:!Y(E)||E<0?0:E);let k=O?Ht({zoomPanValues:p,noWheelClassName:e,d3Selection:_,d3Zoom:g,panOnScrollMode:o,panOnScrollSpeed:s,zoomOnPinch:m,onPanZoomStart:u,onPanZoom:c,onPanZoomEnd:d}):Ut({noWheelClassName:e,preventScrolling:l,d3ZoomHandler:v});_.on(`wheel.zoom`,k,{passive:!1});let A=Wt({zoomPanValues:p,onDraggingChange:f,onPanZoomStart:u});g.on(`start`,A);let j=Gt({zoomPanValues:p,panOnDrag:a,onPaneContextMenu:!!n,onPanZoom:c,onTransformChange:w});g.on(`zoom`,j);let M=Kt({zoomPanValues:p,panOnDrag:a,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:d,onDraggingChange:f});g.on(`end`,M);let N=qt({zoomActivationKeyPressed:x,panOnDrag:a,zoomOnScroll:h,panOnScroll:i,zoomOnDoubleClick:b,zoomOnPinch:m,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});g.filter(N),b?_.on(`dblclick.zoom`,y):_.on(`dblclick.zoom`,null)}function S(){g.on(`zoom`,null)}async function C(e,t,n){let r=It(e),i=g?.constrain()(r,t,n);return i&&await b(i),i}async function w(e,t){let n=It(e);return await b(n,t),n}function T(e){if(_){let t=It(e),n=_.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&g?.transform(_,t,null,{sync:!0})}}function E(){let e=_?m(_.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function D(e,t){return _?new Promise(n=>{g?.interpolate(t?.interpolate===`linear`?l:a).scaleTo(Bt(_,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function O(e,t){return _?new Promise(n=>{g?.interpolate(t?.interpolate===`linear`?l:a).scaleBy(Bt(_,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function k(e){g?.scaleExtent(e)}function A(e){g?.translateExtent(e)}function j(e){let t=!Y(e)||e<0?0:e;g?.clickDistance(t)}return{update:x,destroy:S,setViewport:w,setViewportConstrained:C,getViewport:E,scaleTo:D,scaleBy:O,setScaleExtent:k,setTranslateExtent:A,syncViewport:T,setClickDistance:j}}var Yt;(function(e){e.Line=`line`,e.Handle=`handle`})(Yt||={});function Xt({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function Zt(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function Qt(e,t){return Math.max(0,t-e)}function $t(e,t){return Math.max(0,e-t)}function en(e,t,n){return Math.max(0,t-e,e-n)}function tn(e,t){return e?!t:t}function nn(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=en(E,h,g),j=en(D,_,v);if(o){let e=0,t=0;c&&w<0?e=Qt(y+w+O,o[0][0]):!c&&w>0&&(e=$t(y+E+O,o[1][0])),l&&T<0?t=Qt(b+T+k,o[0][1]):!l&&T>0&&(t=$t(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=$t(y+w,s[0][0]):!c&&w<0&&(e=Qt(y+E,s[1][0])),l&&T>0?t=$t(b+T,s[0][1]):!l&&T<0&&(t=Qt(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=en(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?$t(b+k+E/C,o[1][1])*C:Qt(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?Qt(b+E/C,s[1][1])*C:$t(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=en(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?$t(y+D*C+O,o[1][0])/C:Qt(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?Qt(y+D*C,s[1][0])/C:$t(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(tn(c,l)?-w:w)/C:w=(tn(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var rn={width:0,height:0,x:0,y:0},an={...rn,pointerX:0,pointerY:0,aspectRatio:1};function on(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function sn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=o(e),s={controlDirection:Zt(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function c({controlPosition:e,boundaries:o,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...rn},g={...an};s={boundaries:o,resizeDirection:l,keepAspectRatio:c,controlDirection:Zt(e)};let _,v=null,y=[],b,x,S,C=!1,w=h().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(_=r.get(t),!_)return;v=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=Ce(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:v});m={width:_.measured.width??0,height:_.measured.height??0,x:_.position.x??0,y:_.position.y??0},g={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},b=void 0,x=ge(_.extent)?_.extent:void 0,_.parentId&&(_.extent===`parent`||_.expandParent)&&(b=r.get(_.parentId)),b&&_.extent===`parent`&&(x=[[0,0],[b.measured.width,b.measured.height]]),y=[],S=void 0;for(let[e,n]of r)if(n.parentId===t&&(y.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=on(n,_,n.origin??s);S=S?[[Math.min(e[0][0],S[0][0]),Math.min(e[0][1],S[0][1])],[Math.max(e[1][0],S[1][0]),Math.max(e[1][1],S[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:o}=n(),c=Ce(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:v}),l=[];if(!_)return;let{x:u,y:f,width:h,height:w}=m,T={},E=_.origin??o,{width:D,height:O,x:k,y:A}=nn(g,s.controlDirection,c,s.boundaries,s.keepAspectRatio,E,x,S),j=D!==h,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,y.length>0)){let e=k-u,t=A-f;for(let n of y)n.position={x:n.position.x-e+E[0]*(D-h),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!s.resizeDirection||s.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!s.resizeDirection||s.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),b&&_.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,g.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,g.y-=T.y-t)}let F=Xt({width:m.width,prevWidth:h,height:m.height,prevHeight:w,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),I={...m,direction:F};p?.(e,I)!==!1&&(C=!0,d?.(e,I),r(T,l))}).on(`end`,e=>{C&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(w)}function l(){a.on(`.drag`,null)}return{update:c,destroy:l}}var cn=e(r()),ln=(0,g.createContext)(null),un=ln.Provider,dn=v.error001(`react`);function Q(e,t){let n=(0,g.useContext)(ln);if(n===null)throw Error(dn);return c(n,e,t)}function $(){let e=(0,g.useContext)(ln);if(e===null)throw Error(dn);return(0,g.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var fn={display:`none`},pn={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},mn=`react-flow__node-desc`,hn=`react-flow__edge-desc`,gn=`react-flow__aria-live`,_n=e=>e.ariaLiveMessage,vn=e=>e.ariaLabelConfig;function yn({rfId:e}){let t=Q(_n);return(0,_.jsx)(`div`,{id:`${gn}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:pn,children:t})}function bn({rfId:e,disableKeyboardA11y:t}){let n=Q(vn);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`div`,{id:`${mn}-${e}`,style:fn,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,_.jsx)(`div`,{id:`${hn}-${e}`,style:fn,children:n[`edge.a11yDescription.default`]}),!t&&(0,_.jsx)(yn,{rfId:e})]})}var xn=(0,g.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,_.jsx)(`div`,{className:f([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));xn.displayName=`Panel`;var Sn=`https://reactflow.dev?utm_source=attribution`;function Cn({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,_.jsx)(xn,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Sn}`,children:(0,_.jsx)(`a`,{href:Sn,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var wn=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Tn=e=>e.id;function En(e,t){return u(e.selectedNodes.map(Tn),t.selectedNodes.map(Tn))&&u(e.selectedEdges.map(Tn),t.selectedEdges.map(Tn))}function Dn({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q(wn,En);return(0,g.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var On=e=>!!e.onSelectionChangeHandlers;function kn({onSelectionChange:e}){let t=Q(On);return e||t?(0,_.jsx)(Dn,{onSelectionChange:e}):null}var An=[0,0],jn={x:0,y:0,zoom:1},Mn=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],Nn=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Pn={translateExtent:y,nodeOrigin:An,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Fn(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q(Nn,u),l=$();(0,g.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=Pn,s()}),[]);let d=(0,g.useRef)(Pn);return(0,g.useEffect)(()=>{for(let s of Mn){let c=e[s];c!==d.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Se(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}d.current=e},Mn.map(t=>e[t])),null}function In(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function Ln(e){let[t,n]=(0,g.useState)(e===`system`?null:e);return(0,g.useEffect)(()=>{if(e!==`system`){n(e);return}let t=In(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?In()?.matches?`dark`:`light`:t}var Rn=typeof document<`u`?document:null;function zn(e=null,t={target:Rn,actInsideInputWithModifier:!0}){let[n,r]=(0,g.useState)(!1),i=(0,g.useRef)(!1),a=(0,g.useRef)(new Set([])),[o,s]=(0,g.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,`
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{m as t,p as n}from"./markdown-D0X23O-i.js";import{_i as r,a as i,c as a,d as o,f as s,i as c,l,n as u,o as d,p as f,r as p,s as m,u as h}from"./vendor-CyLvG8N0.js";var g=e(t()),_=n(),v={error001:(e=`react`)=>`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},y=[[-1/0,-1/0],[1/0,1/0]],b=[`Enter`,` `,`Escape`],x={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},S;(function(e){e.Strict=`strict`,e.Loose=`loose`})(S||={});var C;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(C||={});var w;(function(e){e.Partial=`partial`,e.Full=`full`})(w||={});var T={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},E;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(E||={});var D;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(D||={});var O;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(O||={});var k={[O.Left]:O.Right,[O.Right]:O.Left,[O.Top]:O.Bottom,[O.Bottom]:O.Top};function A(e){return e===null?null:e?`valid`:`invalid`}var j=e=>`id`in e&&`source`in e&&`target`in e,M=e=>`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),N=e=>`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),P=(e,t=[0,0])=>{let{width:n,height:r}=_e(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},F=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:te(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):N(n)?n:t.nodeLookup.get(n.id)),q(e,i?re(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),I=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=q(n,re(e)),r=!0)}),r?te(n):{x:0,y:0,width:0,height:0}},L=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=ae(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},R=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function z(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{e.measured.width&&e.measured.height&&(t?.includeHiddenNodes||!e.hidden)&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function B({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=me(I(z(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function V({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,v.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&ge(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=ge(d)?W(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,v.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function H({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=R(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var U=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),W=(e={x:0,y:0},t,n)=>({x:U(e.x,t[0][0],t[1][0]-(n?.width??0)),y:U(e.y,t[0][1],t[1][1]-(n?.height??0))});function G(e,t,n){let{width:r,height:i}=_e(n),{x:a,y:o}=n.internals.positionAbsolute;return W(e,[[a,o],[a+r,o+i]],t)}var K=(e,t,n)=>e<t?U(Math.abs(e-t),1,t)/t:e>n?-U(Math.abs(e-n),1,t)/t:0,ee=(e,t,n=15,r=40)=>[K(e.x,r,t.width-r)*n,K(e.y,r,t.height-r)*n],q=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),J=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),te=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),ne=(e,t=[0,0])=>{let{x:n,y:r}=N(e)?e.internals.positionAbsolute:P(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},re=(e,t=[0,0])=>{let{x:n,y:r}=N(e)?e.internals.positionAbsolute:P(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},ie=(e,t)=>te(q(J(e),J(t))),ae=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},oe=(e,t)=>ae(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),se=e=>Y(e.width)&&Y(e.height)&&Y(e.x)&&Y(e.y),Y=e=>!isNaN(e)&&isFinite(e),ce=(e,t)=>(e,t)=>{},le=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ue=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?le(s,o):s},X=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function de(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function fe(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=de(e,n),i=de(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=de(e.top??e.y??0,n),i=de(e.bottom??e.y??0,n),a=de(e.left??e.x??0,t),o=de(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function pe(e,t,n,r,i,a){let{x:o,y:s}=X(e,[t,n,r]),{x:c,y:l}=X({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var me=(e,t,n,r,i,a)=>{let o=fe(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=U(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=pe(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},he=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function ge(e){return e!=null&&e!==`parent`}function _e(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ve(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ye(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function be(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function xe(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Se(e){return{...x,...e||{}}}function Ce(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Z(e),s=ue({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?le(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var we=e=>({width:e.offsetWidth,height:e.offsetHeight}),Te=e=>e?.getRootNode?.()||window?.document,Ee=[`INPUT`,`SELECT`,`TEXTAREA`];function De(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Ee.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Oe=e=>`clientX`in e,Z=(e,t)=>{let n=Oe(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},ke=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...we(t)}})};function Ae({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function je(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Me({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case O.Left:return[t-je(t-r,a),n];case O.Right:return[t+je(r-t,a),n];case O.Top:return[t,n-je(n-i,a)];case O.Bottom:return[t,n+je(i-n,a)]}}function Ne({sourceX:e,sourceY:t,sourcePosition:n=O.Bottom,targetX:r,targetY:i,targetPosition:a=O.Top,curvature:o=.25}){let[s,c]=Me({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Me({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Ae({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Pe({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function Fe({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function Ie({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=q(re(e),re(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),oe({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},te(a))>0}var Le=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,Re=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),ze=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,v.error006()),t;let r=n.getEdgeId||Le,i;return i=j(e)?{...e}:{...e,id:r(e)},Re(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Be({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Pe({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Ve={[O.Left]:{x:-1,y:0},[O.Right]:{x:1,y:0},[O.Top]:{x:0,y:-1},[O.Bottom]:{x:0,y:1}},He=({source:e,sourcePosition:t=O.Bottom,target:n})=>t===O.Left||t===O.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Ue=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function We({source:e,sourcePosition:t=O.Bottom,target:n,targetPosition:r=O.Top,center:i,offset:a,stepPosition:o}){let s=Ve[t],c=Ve[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=He({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Pe({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function Ge(e,t,n,r){let i=Math.min(Ue(e,t)/2,Ue(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function Ke({sourceX:e,sourceY:t,sourcePosition:n=O.Bottom,targetX:r,targetY:i,targetPosition:a=O.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=We({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=Ge(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function qe(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Je(e){let{sourceNode:t,targetNode:n}=e;if(!qe(t)||!qe(n))return null;let r=t.internals.handleBounds||Ye(t.handles),i=n.internals.handleBounds||Ye(n.handles),a=Ze(r?.source??[],e.sourceHandle),o=Ze(e.connectionMode===S.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,v.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||O.Bottom,c=o?.position||O.Top,l=Xe(t,a,s),u=Xe(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function Ye(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,r.type===`source`?t.push(r):r.type===`target`&&n.push(r);return{source:t,target:n}}function Xe(e,t,n=O.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??_e(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case O.Top:return{x:i+o/2,y:a};case O.Right:return{x:i+o,y:a+s/2};case O.Bottom:return{x:i+o/2,y:a+s};case O.Left:return{x:i,y:a+s/2}}}function Ze(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function Qe(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function $e(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=Qe(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var et=1e3,tt=10,nt={nodeOrigin:[0,0],nodeExtent:y,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},rt={...nt,checkEquality:!0};function it(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function at(e,t,n){let r=it(nt,n);for(let n of e.values())if(n.parentId)ut(n,e,t,r);else{let e=W(P(n,r.nodeOrigin),ge(n.extent)?n.extent:r.nodeExtent,_e(n));n.internals.positionAbsolute=e}}function ot(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function st(e){return e===`manual`}function ct(e,t,n,r={}){let i=it(rt,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!st(i.zIndexMode)?et:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=W(P(u,i.nodeOrigin),ge(u.extent)?u.extent:i.nodeExtent,_e(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:ot(u,e),z:dt(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&ut(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function lt(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ut(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=it(nt,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}lt(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*tt),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=ft(e,u,o,s,a&&!st(c)?et:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function dt(e,t,n){let r=Y(e.zIndex)?e.zIndex:0;return st(n)?r:r+(e.selected?t:0)}function ft(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=_e(e),l=P(e,n),u=ge(e.extent)?W(l,e.extent,c):l,d=W({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=G(d,c,t));let f=dt(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function pt(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=ie(a.get(n.parentId)?.expandedRect??ne(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=_e(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function mt(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=we(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=ge(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;e.parentId&&e.extent===`parent`?h=G(h,s,t.get(e.parentId)):m&&(h=W(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:ke(`source`,r.nodeElement,p,d,e.id),target:ke(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&ut(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:ne(g,i)}))}}if(f.length>0){let e=pt(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function ht({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function gt(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function _t(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;gt(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),gt(`target`,s,c,e,i,o),t.set(r.id,r)}}function vt(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:vt(n,t):!1}function yt(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function bt(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!vt(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function xt({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function St({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=le(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Ct({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},s=0,c=new Map,l=!1,u={x:0,y:0},d=null,f=!1,p=null,m=!1,g=!1,_=null;function v({noDragClassName:v,handleSelector:y,domNode:b,isSelectable:x,nodeId:S,nodeClickDistance:C=0}){p=o(b);function w({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:s,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:m}=t();a={x:e,y:n};let h=!1,v=c.size>1,y=v&&o?J(I(c)):null,b=v&&l?St({dragItems:c,snapGrid:s,x:e,y:n}):null;for(let[t,r]of c){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=b?{x:Math.round(a.x+b.x),y:Math.round(a.y+b.y)}:le(a,s));let c=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];c=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=V({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:c||o,nodeOrigin:u,onError:p});h=h||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(g||=h,h&&(m(c,!0),_&&(r||d||!S&&f))){let[e,t]=xt({nodeId:S,dragItems:c,nodeLookup:i});r?.(_,c,e,t),d?.(_,e,t),S||f?.(_,t)}}async function T(){if(!d)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){l=!1,cancelAnimationFrame(s);return}let[o,c]=ee(u,d,r);(o!==0||c!==0)&&(a.x=(a.x??0)-o/e[2],a.y=(a.y??0)-c/e[2],await n({x:o,y:c})&&w(a)),s=requestAnimationFrame(T)}function E(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:s,transform:l,snapGrid:u,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();f=!0,(!m||!x)&&!o&&S&&(i.get(S)?.selected||_()),x&&m&&S&&e?.(S);let v=Ce(r.sourceEvent,{transform:l,snapGrid:u,snapToGrid:p,containerBounds:d});if(a=v,c=bt(i,s,v,S),c.size>0&&(n||h||!S&&g)){let[e,t]=xt({nodeId:S,dragItems:c,nodeLookup:i});n?.(r.sourceEvent,c,e,t),h?.(r.sourceEvent,e,t),S||g?.(r.sourceEvent,t)}}let D=h().clickDistance(C).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();d=n?.getBoundingClientRect()||null,m=!1,g=!1,_=e.sourceEvent,r===0&&E(e),a=Ce(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:d}),u=Z(e.sourceEvent,d)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:s,nodeLookup:p}=t(),h=Ce(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:d});if(_=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||S&&!p.has(S))&&(m=!0),!m){if(!l&&n&&f&&(l=!0,T()),!f){let t=Z(e.sourceEvent,d),n=t.x-u.x,r=t.y-u.y;Math.sqrt(n*n+r*r)>s&&E(e)}(a.x!==h.xSnapped||a.y!==h.ySnapped)&&c&&f&&(u=Z(e.sourceEvent,d),w(h))}}).on(`end`,e=>{if(!f||m){m&&c.size>0&&t().updateNodePositions(c,!1);return}if(l=!1,f=!1,cancelAnimationFrame(s),c.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(g&&=(r(c,!1),!1),i||a||!S&&o){let[t,r]=xt({nodeId:S,dragItems:c,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,c,t,r),a?.(e.sourceEvent,t,r),S||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!v||!yt(t,`.${v}`,b))&&(!y||yt(t,y,b))});p.call(D)}function y(){p?.on(`.drag`,null)}return{update:v,destroy:y}}function wt(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())oe(i,ne(e))>0&&r.push(e);return r}var Tt=250;function Et(e,t,n,r){let i=[],a=1/0,o=wt(e,n,t+Tt);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=Xe(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Dt(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...Xe(o,c,c.position,!0)}:c}function Ot(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function kt(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var At=()=>!0;function jt(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=At,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=Te(e.target),E=0,D,{x:A,y:j}=Z(e),M=Ot(a,w),N=s?.getBoundingClientRect(),P=!1;if(!N||!M)return;let F=Dt(i,M,r,c,t);if(!F)return;let I=Z(e,N),L=!1,R=null,z=!1,B=null;function V(){if(!u||!N)return;let[e,t]=ee(I,N,S);f({x:e,y:t}),E=requestAnimationFrame(V)}let H={...F,nodeId:i,type:M,position:F.position},U=c.get(i),W={inProgress:!0,isValid:null,from:Xe(U,H,O.Left,!0),fromHandle:H,fromPosition:H.position,fromNode:U,to:I,toHandle:null,toPosition:k[H.position],toNode:null,pointer:I};function G(){P=!0,y(W),m?.(e,{nodeId:i,handleId:r,handleType:M})}C===0&&G();function K(e){if(!P){let{x:t,y:n}=Z(e),r=t-A,i=n-j;if(!(r*r+i*i>C*C))return;G()}if(!x()||!H){q(e);return}let a=b();I=Z(e,N),D=Et(ue(I,a,!1,[1,1]),n,c,H),L||=(V(),!0);let s=Mt(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});B=s.handleDomNode,R=s.connection,z=kt(!!D,s.isValid);let u=c.get(i),f=u?Xe(u,H,O.Left,!0):W.from,p={...W,from:f,isValid:z,to:s.toHandle&&z?X({x:s.toHandle.x,y:s.toHandle.y},a):I,toHandle:s.toHandle,toPosition:z&&s.toHandle?s.toHandle.position:k[H.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:I};y(p),W=p}function q(e){if(!(`touches`in e&&e.touches.length>0)){if(P){(D||B)&&R&&z&&h?.(R);let{inProgress:t,...n}=W,r={...n,toPosition:W.toHandle?W.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),L=!1,z=!1,R=null,B=null,T.removeEventListener(`mousemove`,K),T.removeEventListener(`mouseup`,q),T.removeEventListener(`touchmove`,K),T.removeEventListener(`touchend`,q)}}T.addEventListener(`mousemove`,K),T.addEventListener(`mouseup`,q),T.addEventListener(`touchmove`,K),T.addEventListener(`touchend`,q)}function Mt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=At,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=Z(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Ot(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===S.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Dt(t,e,a,u,n,!0)}return _}var Nt={onPointerDown:jt,isValid:Mt};function Pt({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let a=o(e);function c({translateExtent:e,width:o,height:s,zoomStep:c=1,pannable:l=!0,zoomable:u=!0,inversePan:d=!1}){let f=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&he()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*c,o=r[2]*2**(a*i);t.scaleTo(o)},p=[0,0],m=i().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(p=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,l?i=>{let a=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-p[0],c[1]-p[1]];p=c;let u=r()*Math.max(a[2],Math.log(a[2]))*(d?-1:1),f={x:a[0]-l[0]*u,y:a[1]-l[1]*u},m=[[0,0],[o,s]];t.setViewportConstrained({x:f.x,y:f.y,zoom:a[2]},m,e)}:null).on(`zoom.wheel`,u?f:null);a.call(m,{})}function l(){a.on(`zoom`,null)}return{update:c,destroy:l,pointer:s}}var Ft=e=>({x:e.x,y:e.y,zoom:e.k}),It=({x:e,y:t,zoom:n})=>d.translate(e,t).scale(n),Lt=(e,t)=>e.target.closest(`.${t}`),Rt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),zt=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Bt=(e,t=0,n=zt,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Vt=e=>{let t=e.ctrlKey&&he()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Ht({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:c,onPanZoom:l,onPanZoomEnd:u}){return d=>{if(Lt(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();let f=n.property(`__zoom`).k||1;if(d.ctrlKey&&o){let e=s(d),t=f*2**Vt(d);r.scaleTo(n,t,e,d);return}let p=d.deltaMode===1?20:1,m=i===C.Vertical?0:d.deltaX*p,h=i===C.Horizontal?0:d.deltaY*p;!he()&&d.shiftKey&&i!==C.Vertical&&(m=d.deltaY*p,h=0),r.translateBy(n,-(m/f)*a,-(h/f)*a,{internal:!0});let g=Ft(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l?.(d,g),e.panScrollTimeout=setTimeout(()=>{u?.(d,g),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,c?.(d,g))}}function Ut({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Lt(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function Wt({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Ft(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function Gt({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Rt(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Ft(a.transform))}}function Kt({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Rt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Ft(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function qt({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(Lt(d,`${l}-flow__node`)||Lt(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||Lt(d,s)&&m||Lt(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function Jt({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:c,onPanZoomStart:u,onPanZoomEnd:d,onDraggingChange:f}){let p={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=e.getBoundingClientRect(),g=i().scaleExtent([t,n]).translateExtent(r),_=o(e).call(g);C({x:s.x,y:s.y,zoom:U(s.zoom,t,n)},[[0,0],[h.width,h.height]],r);let v=_.on(`wheel.zoom`),y=_.on(`dblclick.zoom`);g.wheelDelta(Vt);async function b(e,t){return _?new Promise(n=>{g?.interpolate(t?.interpolate===`linear`?l:a).transform(Bt(_,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function x({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:a,panOnScrollMode:o,panOnScrollSpeed:s,preventScrolling:l,zoomOnPinch:m,zoomOnScroll:h,zoomOnDoubleClick:b,zoomActivationKeyPressed:x,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!p.isZoomingOrPanning&&S();let O=i&&!x&&!r;g.clickDistance(D?1/0:!Y(E)||E<0?0:E);let k=O?Ht({zoomPanValues:p,noWheelClassName:e,d3Selection:_,d3Zoom:g,panOnScrollMode:o,panOnScrollSpeed:s,zoomOnPinch:m,onPanZoomStart:u,onPanZoom:c,onPanZoomEnd:d}):Ut({noWheelClassName:e,preventScrolling:l,d3ZoomHandler:v});_.on(`wheel.zoom`,k,{passive:!1});let A=Wt({zoomPanValues:p,onDraggingChange:f,onPanZoomStart:u});g.on(`start`,A);let j=Gt({zoomPanValues:p,panOnDrag:a,onPaneContextMenu:!!n,onPanZoom:c,onTransformChange:w});g.on(`zoom`,j);let M=Kt({zoomPanValues:p,panOnDrag:a,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:d,onDraggingChange:f});g.on(`end`,M);let N=qt({zoomActivationKeyPressed:x,panOnDrag:a,zoomOnScroll:h,panOnScroll:i,zoomOnDoubleClick:b,zoomOnPinch:m,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});g.filter(N),b?_.on(`dblclick.zoom`,y):_.on(`dblclick.zoom`,null)}function S(){g.on(`zoom`,null)}async function C(e,t,n){let r=It(e),i=g?.constrain()(r,t,n);return i&&await b(i),i}async function w(e,t){let n=It(e);return await b(n,t),n}function T(e){if(_){let t=It(e),n=_.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&g?.transform(_,t,null,{sync:!0})}}function E(){let e=_?m(_.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function D(e,t){return _?new Promise(n=>{g?.interpolate(t?.interpolate===`linear`?l:a).scaleTo(Bt(_,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function O(e,t){return _?new Promise(n=>{g?.interpolate(t?.interpolate===`linear`?l:a).scaleBy(Bt(_,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function k(e){g?.scaleExtent(e)}function A(e){g?.translateExtent(e)}function j(e){let t=!Y(e)||e<0?0:e;g?.clickDistance(t)}return{update:x,destroy:S,setViewport:w,setViewportConstrained:C,getViewport:E,scaleTo:D,scaleBy:O,setScaleExtent:k,setTranslateExtent:A,syncViewport:T,setClickDistance:j}}var Yt;(function(e){e.Line=`line`,e.Handle=`handle`})(Yt||={});function Xt({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function Zt(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function Qt(e,t){return Math.max(0,t-e)}function $t(e,t){return Math.max(0,e-t)}function en(e,t,n){return Math.max(0,t-e,e-n)}function tn(e,t){return e?!t:t}function nn(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=en(E,h,g),j=en(D,_,v);if(o){let e=0,t=0;c&&w<0?e=Qt(y+w+O,o[0][0]):!c&&w>0&&(e=$t(y+E+O,o[1][0])),l&&T<0?t=Qt(b+T+k,o[0][1]):!l&&T>0&&(t=$t(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=$t(y+w,s[0][0]):!c&&w<0&&(e=Qt(y+E,s[1][0])),l&&T>0?t=$t(b+T,s[0][1]):!l&&T<0&&(t=Qt(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=en(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?$t(b+k+E/C,o[1][1])*C:Qt(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?Qt(b+E/C,s[1][1])*C:$t(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=en(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?$t(y+D*C+O,o[1][0])/C:Qt(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?Qt(y+D*C,s[1][0])/C:$t(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(tn(c,l)?-w:w)/C:w=(tn(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var rn={width:0,height:0,x:0,y:0},an={...rn,pointerX:0,pointerY:0,aspectRatio:1};function on(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function sn({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=o(e),s={controlDirection:Zt(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function c({controlPosition:e,boundaries:o,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...rn},g={...an};s={boundaries:o,resizeDirection:l,keepAspectRatio:c,controlDirection:Zt(e)};let _,v=null,y=[],b,x,S,C=!1,w=h().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(_=r.get(t),!_)return;v=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=Ce(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:v});m={width:_.measured.width??0,height:_.measured.height??0,x:_.position.x??0,y:_.position.y??0},g={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},b=void 0,x=ge(_.extent)?_.extent:void 0,_.parentId&&(_.extent===`parent`||_.expandParent)&&(b=r.get(_.parentId)),b&&_.extent===`parent`&&(x=[[0,0],[b.measured.width,b.measured.height]]),y=[],S=void 0;for(let[e,n]of r)if(n.parentId===t&&(y.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=on(n,_,n.origin??s);S=S?[[Math.min(e[0][0],S[0][0]),Math.min(e[0][1],S[0][1])],[Math.max(e[1][0],S[1][0]),Math.max(e[1][1],S[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:o}=n(),c=Ce(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:v}),l=[];if(!_)return;let{x:u,y:f,width:h,height:w}=m,T={},E=_.origin??o,{width:D,height:O,x:k,y:A}=nn(g,s.controlDirection,c,s.boundaries,s.keepAspectRatio,E,x,S),j=D!==h,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,y.length>0)){let e=k-u,t=A-f;for(let n of y)n.position={x:n.position.x-e+E[0]*(D-h),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!s.resizeDirection||s.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!s.resizeDirection||s.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),b&&_.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,g.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,g.y-=T.y-t)}let F=Xt({width:m.width,prevWidth:h,height:m.height,prevHeight:w,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),I={...m,direction:F};p?.(e,I)!==!1&&(C=!0,d?.(e,I),r(T,l))}).on(`end`,e=>{C&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(w)}function l(){a.on(`.drag`,null)}return{update:c,destroy:l}}var cn=e(r()),ln=(0,g.createContext)(null),un=ln.Provider,dn=v.error001(`react`);function Q(e,t){let n=(0,g.useContext)(ln);if(n===null)throw Error(dn);return c(n,e,t)}function $(){let e=(0,g.useContext)(ln);if(e===null)throw Error(dn);return(0,g.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var fn={display:`none`},pn={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},mn=`react-flow__node-desc`,hn=`react-flow__edge-desc`,gn=`react-flow__aria-live`,_n=e=>e.ariaLiveMessage,vn=e=>e.ariaLabelConfig;function yn({rfId:e}){let t=Q(_n);return(0,_.jsx)(`div`,{id:`${gn}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:pn,children:t})}function bn({rfId:e,disableKeyboardA11y:t}){let n=Q(vn);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`div`,{id:`${mn}-${e}`,style:fn,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,_.jsx)(`div`,{id:`${hn}-${e}`,style:fn,children:n[`edge.a11yDescription.default`]}),!t&&(0,_.jsx)(yn,{rfId:e})]})}var xn=(0,g.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,_.jsx)(`div`,{className:f([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));xn.displayName=`Panel`;var Sn=`https://reactflow.dev?utm_source=attribution`;function Cn({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,_.jsx)(xn,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Sn}`,children:(0,_.jsx)(`a`,{href:Sn,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var wn=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Tn=e=>e.id;function En(e,t){return u(e.selectedNodes.map(Tn),t.selectedNodes.map(Tn))&&u(e.selectedEdges.map(Tn),t.selectedEdges.map(Tn))}function Dn({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q(wn,En);return(0,g.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var On=e=>!!e.onSelectionChangeHandlers;function kn({onSelectionChange:e}){let t=Q(On);return e||t?(0,_.jsx)(Dn,{onSelectionChange:e}):null}var An=[0,0],jn={x:0,y:0,zoom:1},Mn=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],Nn=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Pn={translateExtent:y,nodeOrigin:An,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Fn(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q(Nn,u),l=$();(0,g.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=Pn,s()}),[]);let d=(0,g.useRef)(Pn);return(0,g.useEffect)(()=>{for(let s of Mn){let c=e[s];c!==d.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Se(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}d.current=e},Mn.map(t=>e[t])),null}function In(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function Ln(e){let[t,n]=(0,g.useState)(e===`system`?null:e);return(0,g.useEffect)(()=>{if(e!==`system`){n(e);return}let t=In(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?In()?.matches?`dark`:`light`:t}var Rn=typeof document<`u`?document:null;function zn(e=null,t={target:Rn,actInsideInputWithModifier:!0}){let[n,r]=(0,g.useState)(!1),i=(0,g.useRef)(!1),a=(0,g.useRef)(new Set([])),[o,s]=(0,g.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,`
2
2
  `).replace(`
3
3
 
4
4
  `,`
package/dist/index.html CHANGED
@@ -5,27 +5,28 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/wrongstack.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>WrongStack WebUI</title>
8
- <script type="module" crossorigin src="/assets/index-0LBBDKsK.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-BqAVsSCe.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/markdown-D0X23O-i.js">
11
- <link rel="modulepreload" crossorigin href="/assets/vendor-OWPFcqeg.js">
12
- <link rel="modulepreload" crossorigin href="/assets/chat-store-uNXIpAx_.js">
13
- <link rel="modulepreload" crossorigin href="/assets/activity-Lmjx6MD1.js">
14
- <link rel="modulepreload" crossorigin href="/assets/chat-DCAGDU3F.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/vendor-CyLvG8N0.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/chat-store-De7J1E26.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/local-prefs-C1YdbI5g.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/activity-CcEdxJjx.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/chat--Zry3Atx.js">
15
16
  <link rel="modulepreload" crossorigin href="/assets/commandPalette-DUootORZ.js">
16
- <link rel="modulepreload" crossorigin href="/assets/common-D7usadq4.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/common-B28qhvZh.js">
17
18
  <link rel="modulepreload" crossorigin href="/assets/settings-Os0ifjjB.js">
18
19
  <link rel="modulepreload" crossorigin href="/assets/setup-Dr2UDb8s.js">
19
20
  <link rel="modulepreload" crossorigin href="/assets/toasts-BL_8kH4B.js">
20
- <link rel="modulepreload" crossorigin href="/assets/monaco-DqY9Mr3N.js">
21
- <link rel="modulepreload" crossorigin href="/assets/i18n-DD-_8vnT.js">
22
- <link rel="modulepreload" crossorigin href="/assets/session-store-DhcyG2AC.js">
23
- <link rel="modulepreload" crossorigin href="/assets/ws-client-Dglowar-.js">
24
- <link rel="modulepreload" crossorigin href="/assets/ui-store-isn1eTG7.js">
25
- <link rel="modulepreload" crossorigin href="/assets/utils-B-rhScDN.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/monaco-XnLmrAXJ.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/i18n-CkkVJCs9.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/session-store-P-JnaPPK.js">
24
+ <link rel="modulepreload" crossorigin href="/assets/ws-client-lDxBz-7w.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/ui-store-FTgDlcX2.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/utils-CU_o9ioU.js">
26
27
  <link rel="stylesheet" crossorigin href="/assets/vendor-CcOzUMQS.css">
27
28
  <link rel="stylesheet" crossorigin href="/assets/monaco-Br_kD0ds.css">
28
- <link rel="stylesheet" crossorigin href="/assets/index-Dv6bXQoD.css">
29
+ <link rel="stylesheet" crossorigin href="/assets/index-DTFjO9oF.css">
29
30
  </head>
30
31
  <body>
31
32
  <div id="root"></div>