comisai 1.0.23 → 1.0.25

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 (106) hide show
  1. package/node_modules/@comis/agent/dist/executor/pi-executor.js +17 -0
  2. package/node_modules/@comis/agent/dist/index.d.ts +2 -1
  3. package/node_modules/@comis/agent/dist/index.js +1 -1
  4. package/node_modules/@comis/agent/dist/model/auth-storage-adapter.d.ts +21 -0
  5. package/node_modules/@comis/agent/dist/model/auth-storage-adapter.js +15 -1
  6. package/node_modules/@comis/agent/dist/model/model-registry-adapter.d.ts +46 -0
  7. package/node_modules/@comis/agent/dist/model/model-registry-adapter.js +108 -0
  8. package/node_modules/@comis/agent/package.json +1 -1
  9. package/node_modules/@comis/channels/package.json +1 -1
  10. package/node_modules/@comis/cli/package.json +1 -1
  11. package/node_modules/@comis/core/dist/bootstrap.js +5 -0
  12. package/node_modules/@comis/core/dist/config/env-layer.d.ts +31 -0
  13. package/node_modules/@comis/core/dist/config/env-layer.js +41 -0
  14. package/node_modules/@comis/core/dist/config/layered.d.ts +9 -0
  15. package/node_modules/@comis/core/dist/config/layered.js +11 -0
  16. package/node_modules/@comis/core/package.json +1 -1
  17. package/node_modules/@comis/daemon/dist/daemon.js +3 -0
  18. package/node_modules/@comis/daemon/dist/wiring/setup-agents.js +15 -3
  19. package/node_modules/@comis/daemon/package.json +1 -1
  20. package/node_modules/@comis/gateway/package.json +1 -1
  21. package/node_modules/@comis/infra/package.json +1 -1
  22. package/node_modules/@comis/memory/package.json +1 -1
  23. package/node_modules/@comis/scheduler/package.json +1 -1
  24. package/node_modules/@comis/shared/package.json +1 -1
  25. package/node_modules/@comis/skills/package.json +1 -1
  26. package/node_modules/@comis/web/dist/assets/{agent-detail-BG9MGWWj.js → agent-detail-ru-AhppM.js} +270 -270
  27. package/node_modules/@comis/web/dist/assets/agent-editor-hjwRuFVp.js +2173 -0
  28. package/node_modules/@comis/web/dist/assets/{agent-list-LHCJ4rw2.js → agent-list-6Uotjatr.js} +170 -170
  29. package/node_modules/@comis/web/dist/assets/{approvals-q9VH_IKr.js → approvals-C-K6hN2U.js} +13 -13
  30. package/node_modules/@comis/web/dist/assets/billing-view-CxysXH0p.js +375 -0
  31. package/node_modules/@comis/web/dist/assets/{channel-detail-CaInesJM.js → channel-detail-BBCKtmne.js} +265 -265
  32. package/node_modules/@comis/web/dist/assets/channel-list-FkfeOLBQ.js +323 -0
  33. package/node_modules/@comis/web/dist/assets/{chat-console-CNmzl0JW.js → chat-console-BumBaIgO.js} +243 -246
  34. package/node_modules/@comis/web/dist/assets/{config-editor-DX4ITw6y.js → config-editor-C9BSwHGy.js} +477 -477
  35. package/node_modules/@comis/web/dist/assets/{context-dag-browser-BwiaF5tf.js → context-dag-browser-BHm00mJD.js} +105 -105
  36. package/node_modules/@comis/web/dist/assets/{context-engine-BZ5Am6hA.js → context-engine-BENY3pWE.js} +136 -136
  37. package/node_modules/@comis/web/dist/assets/decorate-BvWYovGE.js +38 -0
  38. package/node_modules/@comis/web/dist/assets/{delivery-view-OfBZof-m.js → delivery-view-BCnkPsAp.js} +134 -134
  39. package/node_modules/@comis/web/dist/assets/{diagnostics-view-YFwCxgr2.js → diagnostics-view-C_jQFG2H.js} +82 -82
  40. package/node_modules/@comis/web/dist/assets/directive-BOYXJ-K-.js +1 -0
  41. package/node_modules/@comis/web/dist/assets/{extract-variables-BM5qyK-s.js → extract-variables-B7-Doo7l.js} +39 -39
  42. package/node_modules/@comis/web/dist/assets/{ic-array-editor-B7m6x7-S.js → ic-array-editor-BLoEyeLS.js} +29 -29
  43. package/node_modules/@comis/web/dist/assets/{ic-breadcrumb-CUMpp3BL.js → ic-breadcrumb-DqN6G3gc.js} +16 -16
  44. package/node_modules/@comis/web/dist/assets/{ic-budget-segment-bar-BtJ6x5mN.js → ic-budget-segment-bar-zLsMzjDO.js} +20 -20
  45. package/node_modules/@comis/web/dist/assets/ic-chat-message-FdQcZsSQ.js +352 -0
  46. package/node_modules/@comis/web/dist/assets/{ic-confirm-dialog-CCDbB04e.js → ic-confirm-dialog-DGlPbV1T.js} +26 -26
  47. package/node_modules/@comis/web/dist/assets/{ic-connection-dot-CnT1b8xr.js → ic-connection-dot-BgYiK2N4.js} +13 -13
  48. package/node_modules/@comis/web/dist/assets/ic-data-table-CKIvr-ag.js +277 -0
  49. package/node_modules/@comis/web/dist/assets/ic-delivery-row-B3YwjjuM.js +67 -0
  50. package/node_modules/@comis/web/dist/assets/{ic-detail-panel-BF83r-if.js → ic-detail-panel-DiCe4hLr.js} +27 -27
  51. package/node_modules/@comis/web/dist/assets/{ic-empty-state-60l2ePhd.js → ic-empty-state-CM3Wbj2f.js} +19 -19
  52. package/node_modules/@comis/web/dist/assets/ic-graph-canvas-ByRjij68.js +359 -0
  53. package/node_modules/@comis/web/dist/assets/ic-icon-BGNCCPpZ.js +33 -0
  54. package/node_modules/@comis/web/dist/assets/{ic-layer-waterfall-COvEYMg5.js → ic-layer-waterfall-WkaFyu-l.js} +18 -18
  55. package/node_modules/@comis/web/dist/assets/ic-relative-time-B3UAnTqg.js +12 -0
  56. package/node_modules/@comis/web/dist/assets/{ic-search-input-CSOxY9g7.js → ic-search-input-B02AGw1i.js} +22 -22
  57. package/node_modules/@comis/web/dist/assets/{ic-select-Ce-Raudx.js → ic-select-BqfZISjw.js} +29 -29
  58. package/node_modules/@comis/web/dist/assets/ic-tabs-yBjkWKJH.js +95 -0
  59. package/node_modules/@comis/web/dist/assets/ic-tag-CvMVQFRR.js +33 -0
  60. package/node_modules/@comis/web/dist/assets/{ic-time-range-picker-CypCT68y.js → ic-time-range-picker-DXbYeBmY.js} +31 -31
  61. package/node_modules/@comis/web/dist/assets/{ic-tool-call-7MaXSsCW.js → ic-tool-call-DMPHsLyx.js} +51 -51
  62. package/node_modules/@comis/web/dist/assets/index-CVEaS9aY.css +2 -0
  63. package/node_modules/@comis/web/dist/assets/index-FLPhHz8p.js +2792 -0
  64. package/node_modules/@comis/web/dist/assets/{mcp-management-BNZPnpDn.js → mcp-management-5jyScQis.js} +209 -209
  65. package/node_modules/@comis/web/dist/assets/{media-config-BBvTYxOX.js → media-config-J9oT9PPs.js} +154 -154
  66. package/node_modules/@comis/web/dist/assets/{media-test-BkK3RCRK.js → media-test-DGTCtM8-.js} +259 -259
  67. package/node_modules/@comis/web/dist/assets/{memory-inspector-1hDGCGat.js → memory-inspector-D5Re9ptG.js} +450 -450
  68. package/node_modules/@comis/web/dist/assets/{message-center-CXefwsUu.js → message-center-cRLK6ZmG.js} +290 -290
  69. package/node_modules/@comis/web/dist/assets/{models-C1qcU_j3.js → models-D5vu07MR.js} +371 -371
  70. package/node_modules/@comis/web/dist/assets/observability-types-D0tkwElU.js +1 -0
  71. package/node_modules/@comis/web/dist/assets/{observe-view-C0VBhX4C.js → observe-view-CalNNEmd.js} +399 -399
  72. package/node_modules/@comis/web/dist/assets/pipeline-builder-DUYDGwZf.js +1495 -0
  73. package/node_modules/@comis/web/dist/assets/{pipeline-history-DkfOQ6SW.js → pipeline-history-BAO8brOe.js} +124 -124
  74. package/node_modules/@comis/web/dist/assets/{pipeline-history-detail-hyHgD0ai.js → pipeline-history-detail-DectIoQt.js} +65 -65
  75. package/node_modules/@comis/web/dist/assets/{pipeline-list-BPW8hV-q.js → pipeline-list-BHlaBKww.js} +227 -227
  76. package/node_modules/@comis/web/dist/assets/{pipeline-monitor-Bip16T7e.js → pipeline-monitor-BhtpNEHf.js} +298 -298
  77. package/node_modules/@comis/web/dist/assets/{scheduler-BGgwKd06.js → scheduler-VafN_8xi.js} +486 -486
  78. package/node_modules/@comis/web/dist/assets/{security-D15st4xx.js → security-QQXMRTlo.js} +389 -389
  79. package/node_modules/@comis/web/dist/assets/{session-detail-SGEYNJ0M.js → session-detail-BpZ_8Yih.js} +294 -294
  80. package/node_modules/@comis/web/dist/assets/session-key-parser-Dkqcj2Ss.js +1 -0
  81. package/node_modules/@comis/web/dist/assets/session-list-DfCm8Cec.js +231 -0
  82. package/node_modules/@comis/web/dist/assets/{setup-wizard-nT0tz9QP.js → setup-wizard-C-z477CG.js} +486 -494
  83. package/node_modules/@comis/web/dist/assets/{skills-D8yVfSUy.js → skills-BCOGPf6s.js} +329 -329
  84. package/node_modules/@comis/web/dist/assets/{subagents-HHXMeHYo.js → subagents-l-auUraL.js} +74 -74
  85. package/node_modules/@comis/web/dist/assets/{workspace-manager-BQlr10iH.js → workspace-manager-DlvBixiq.js} +236 -236
  86. package/node_modules/@comis/web/dist/index.html +3 -2
  87. package/node_modules/@comis/web/package.json +1 -1
  88. package/package.json +15 -15
  89. package/node_modules/@comis/web/dist/assets/agent-editor-C26Q_xCs.js +0 -2173
  90. package/node_modules/@comis/web/dist/assets/billing-view-CtYvBqTE.js +0 -375
  91. package/node_modules/@comis/web/dist/assets/channel-list-B8dj3O9a.js +0 -323
  92. package/node_modules/@comis/web/dist/assets/directive-DoeGSK_T.js +0 -1
  93. package/node_modules/@comis/web/dist/assets/ic-chat-message-CFyDJd0z.js +0 -352
  94. package/node_modules/@comis/web/dist/assets/ic-data-table-CKUNTxHw.js +0 -277
  95. package/node_modules/@comis/web/dist/assets/ic-delivery-row-GP5Fkygs.js +0 -67
  96. package/node_modules/@comis/web/dist/assets/ic-graph-canvas-C8FuSMe1.js +0 -359
  97. package/node_modules/@comis/web/dist/assets/ic-icon-xeGTVhVG.js +0 -33
  98. package/node_modules/@comis/web/dist/assets/ic-relative-time-3FqpjeAI.js +0 -12
  99. package/node_modules/@comis/web/dist/assets/ic-tabs-B7QtM_v8.js +0 -95
  100. package/node_modules/@comis/web/dist/assets/ic-tag-CPPUnDLF.js +0 -33
  101. package/node_modules/@comis/web/dist/assets/index-CEcM1R_C.js +0 -2830
  102. package/node_modules/@comis/web/dist/assets/index-CIJFuItj.css +0 -1
  103. package/node_modules/@comis/web/dist/assets/observability-types-D7jUtSde.js +0 -1
  104. package/node_modules/@comis/web/dist/assets/pipeline-builder-DcUUIrm0.js +0 -1496
  105. package/node_modules/@comis/web/dist/assets/session-key-parser-DPORMVyU.js +0 -1
  106. package/node_modules/@comis/web/dist/assets/session-list-6ybUTxbY.js +0 -231
@@ -1,67 +0,0 @@
1
- import{w as o,s as u,f as p,i as h,n as m,a as f,A as n,b as d,t as w}from"./index-CEcM1R_C.js";import"./ic-tag-CPPUnDLF.js";import"./ic-relative-time-3FqpjeAI.js";var y=Object.defineProperty,k=Object.getOwnPropertyDescriptor,v=(e,t,r,l)=>{for(var s=l>1?void 0:l?k(t,r):t,c=e.length-1,a;c>=0;c--)(a=e[c])&&(s=(l?a(t,r,s):a(s))||s);return l&&s&&y(t,r,s),s};const g=o`<path d="M20 6L9 17l-5-5" stroke="var(--ic-success)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>`,b=o`<path d="M18 6L6 18M6 6l12 12" stroke="var(--ic-error)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>`,_=o`<circle cx="12" cy="12" r="10" stroke="var(--ic-warning)" stroke-width="2" fill="none"/><path d="M12 6v6l4 2" stroke="var(--ic-warning)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>`;let i=class extends f{constructor(){super(...arguments),this.trace=null}_handleClick(){this.trace&&this.dispatchEvent(new CustomEvent("trace-click",{detail:this.trace.traceId,bubbles:!0,composed:!0}))}_handleKeyDown(e){(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),this._handleClick())}_renderStatusIcon(){if(!this.trace)return n;const t={success:{icon:g,label:"Success"},failed:{icon:b,label:"Failed"},timeout:{icon:_,label:"Timeout"}}[this.trace.status];return t?d`
2
- <svg
3
- class="status-icon"
4
- viewBox="0 0 24 24"
5
- aria-label=${t.label}
6
- role="img"
7
- >${t.icon}</svg>
8
- `:n}render(){if(!this.trace)return n;const e=this.trace,t=e.messagePreview.length>40?e.messagePreview.slice(0,40)+"...":e.messagePreview,r=e.latencyMs!=null?`${e.latencyMs}ms`:"--";return d`
9
- <div
10
- class="row"
11
- role="row"
12
- tabindex="0"
13
- @click=${this._handleClick}
14
- @keydown=${this._handleKeyDown}
15
- >
16
- <div class="cell" role="cell">
17
- <ic-relative-time .timestamp=${e.timestamp}></ic-relative-time>
18
- </div>
19
- <div class="cell" role="cell">
20
- <ic-tag variant=${e.channelType}>${e.channelType}</ic-tag>
21
- </div>
22
- <div class="cell cell-message" role="cell">${t}</div>
23
- <div class="cell" role="cell">${this._renderStatusIcon()}</div>
24
- <div class="cell cell-latency" role="cell">${r}</div>
25
- <div class="cell" role="cell">${e.stepCount}</div>
26
- </div>
27
- `}};i.styles=[u,p,h`
28
- :host {
29
- display: contents;
30
- }
31
-
32
- .row {
33
- display: contents;
34
- cursor: pointer;
35
- }
36
-
37
- .row:hover .cell {
38
- background: var(--ic-surface-2, #1f2937);
39
- }
40
-
41
- .cell {
42
- padding: var(--ic-space-xs) var(--ic-space-sm);
43
- display: flex;
44
- align-items: center;
45
- font-size: var(--ic-text-sm);
46
- border-bottom: 1px solid var(--ic-border);
47
- transition: background var(--ic-transition);
48
- }
49
-
50
- .cell-message {
51
- color: var(--ic-text-dim);
52
- overflow: hidden;
53
- text-overflow: ellipsis;
54
- white-space: nowrap;
55
- max-width: 20rem;
56
- }
57
-
58
- .cell-latency {
59
- font-family: var(--ic-font-mono, ui-monospace, monospace);
60
- }
61
-
62
- .status-icon {
63
- width: 20px;
64
- height: 20px;
65
- flex-shrink: 0;
66
- }
67
- `];v([m({attribute:!1})],i.prototype,"trace",2);i=v([w("ic-delivery-row")],i);
@@ -1,359 +0,0 @@
1
- import{j as Se,E as $e,s as Pe,i as je,n as re,a as Le,w as we,b as ae,A as le,t as Te}from"./index-CEcM1R_C.js";import{e as Ae,i as Ge,t as De}from"./directive-DoeGSK_T.js";const Oe=.25,Ce=2,wt={x:0,y:0,scale:1};function fe(s,g,v,u){return{x:(s-v.left-u.x)/u.scale,y:(g-v.top-u.y)/u.scale}}function Re(s,g,v,u,l,r){const n=u>0?.9:1.1,a=Math.max(l,Math.min(r,s.scale*n));return{x:g-(g-s.x)*(a/s.scale),y:v-(v-s.y)*(a/s.scale),scale:a}}var H=(s,g)=>()=>(g||s((g={exports:{}}).exports,g),g.exports),te=H((s,g)=>{var v=Object.defineProperty,u=(y,b,L)=>b in y?v(y,b,{enumerable:!0,configurable:!0,writable:!0,value:L}):y[b]=L,l=(y,b)=>()=>(b||y((b={exports:{}}).exports,b),b.exports),r=(y,b,L)=>u(y,typeof b!="symbol"?b+"":b,L),n=l((y,b)=>{var L="\0",I="\0",O="",S=class{constructor(h){r(this,"_isDirected",!0),r(this,"_isMultigraph",!1),r(this,"_isCompound",!1),r(this,"_label"),r(this,"_defaultNodeLabelFn",()=>{}),r(this,"_defaultEdgeLabelFn",()=>{}),r(this,"_nodes",{}),r(this,"_in",{}),r(this,"_preds",{}),r(this,"_out",{}),r(this,"_sucs",{}),r(this,"_edgeObjs",{}),r(this,"_edgeLabels",{}),r(this,"_nodeCount",0),r(this,"_edgeCount",0),r(this,"_parent"),r(this,"_children"),h&&(this._isDirected=Object.hasOwn(h,"directed")?h.directed:!0,this._isMultigraph=Object.hasOwn(h,"multigraph")?h.multigraph:!1,this._isCompound=Object.hasOwn(h,"compound")?h.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[I]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(h){return this._label=h,this}graph(){return this._label}setDefaultNodeLabel(h){return this._defaultNodeLabelFn=h,typeof h!="function"&&(this._defaultNodeLabelFn=()=>h),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var h=this;return this.nodes().filter(t=>Object.keys(h._in[t]).length===0)}sinks(){var h=this;return this.nodes().filter(t=>Object.keys(h._out[t]).length===0)}setNodes(h,t){var f=arguments,m=this;return h.forEach(function(k){f.length>1?m.setNode(k,t):m.setNode(k)}),this}setNode(h,t){return Object.hasOwn(this._nodes,h)?(arguments.length>1&&(this._nodes[h]=t),this):(this._nodes[h]=arguments.length>1?t:this._defaultNodeLabelFn(h),this._isCompound&&(this._parent[h]=I,this._children[h]={},this._children[I][h]=!0),this._in[h]={},this._preds[h]={},this._out[h]={},this._sucs[h]={},++this._nodeCount,this)}node(h){return this._nodes[h]}hasNode(h){return Object.hasOwn(this._nodes,h)}removeNode(h){var t=this;if(Object.hasOwn(this._nodes,h)){var f=m=>t.removeEdge(t._edgeObjs[m]);delete this._nodes[h],this._isCompound&&(this._removeFromParentsChildList(h),delete this._parent[h],this.children(h).forEach(function(m){t.setParent(m)}),delete this._children[h]),Object.keys(this._in[h]).forEach(f),delete this._in[h],delete this._preds[h],Object.keys(this._out[h]).forEach(f),delete this._out[h],delete this._sucs[h],--this._nodeCount}return this}setParent(h,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t=I;else{t+="";for(var f=t;f!==void 0;f=this.parent(f))if(f===h)throw new Error("Setting "+t+" as parent of "+h+" would create a cycle");this.setNode(t)}return this.setNode(h),this._removeFromParentsChildList(h),this._parent[h]=t,this._children[t][h]=!0,this}_removeFromParentsChildList(h){delete this._children[this._parent[h]][h]}parent(h){if(this._isCompound){var t=this._parent[h];if(t!==I)return t}}children(h=I){if(this._isCompound){var t=this._children[h];if(t)return Object.keys(t)}else{if(h===I)return this.nodes();if(this.hasNode(h))return[]}}predecessors(h){var t=this._preds[h];if(t)return Object.keys(t)}successors(h){var t=this._sucs[h];if(t)return Object.keys(t)}neighbors(h){var t=this.predecessors(h);if(t){let m=new Set(t);for(var f of this.successors(h))m.add(f);return Array.from(m.values())}}isLeaf(h){var t;return this.isDirected()?t=this.successors(h):t=this.neighbors(h),t.length===0}filterNodes(h){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var f=this;Object.entries(this._nodes).forEach(function([T,B]){h(T)&&t.setNode(T,B)}),Object.values(this._edgeObjs).forEach(function(T){t.hasNode(T.v)&&t.hasNode(T.w)&&t.setEdge(T,f.edge(T))});var m={};function k(T){var B=f.parent(T);return B===void 0||t.hasNode(B)?(m[T]=B,B):B in m?m[B]:k(B)}return this._isCompound&&t.nodes().forEach(T=>t.setParent(T,k(T))),t}setDefaultEdgeLabel(h){return this._defaultEdgeLabelFn=h,typeof h!="function"&&(this._defaultEdgeLabelFn=()=>h),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(h,t){var f=this,m=arguments;return h.reduce(function(k,T){return m.length>1?f.setEdge(k,T,t):f.setEdge(k,T),T}),this}setEdge(){var h,t,f,m,k=!1,T=arguments[0];typeof T=="object"&&T!==null&&"v"in T?(h=T.v,t=T.w,f=T.name,arguments.length===2&&(m=arguments[1],k=!0)):(h=T,t=arguments[1],f=arguments[3],arguments.length>2&&(m=arguments[2],k=!0)),h=""+h,t=""+t,f!==void 0&&(f=""+f);var B=G(this._isDirected,h,t,f);if(Object.hasOwn(this._edgeLabels,B))return k&&(this._edgeLabels[B]=m),this;if(f!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(h),this.setNode(t),this._edgeLabels[B]=k?m:this._defaultEdgeLabelFn(h,t,f);var W=F(this._isDirected,h,t,f);return h=W.v,t=W.w,Object.freeze(W),this._edgeObjs[B]=W,D(this._preds[t],h),D(this._sucs[h],t),this._in[t][B]=W,this._out[h][B]=W,this._edgeCount++,this}edge(h,t,f){var m=arguments.length===1?z(this._isDirected,arguments[0]):G(this._isDirected,h,t,f);return this._edgeLabels[m]}edgeAsObj(){let h=this.edge(...arguments);return typeof h!="object"?{label:h}:h}hasEdge(h,t,f){var m=arguments.length===1?z(this._isDirected,arguments[0]):G(this._isDirected,h,t,f);return Object.hasOwn(this._edgeLabels,m)}removeEdge(h,t,f){var m=arguments.length===1?z(this._isDirected,arguments[0]):G(this._isDirected,h,t,f),k=this._edgeObjs[m];return k&&(h=k.v,t=k.w,delete this._edgeLabels[m],delete this._edgeObjs[m],A(this._preds[t],h),A(this._sucs[h],t),delete this._in[t][m],delete this._out[h][m],this._edgeCount--),this}inEdges(h,t){return this.isDirected()?this.filterEdges(this._in[h],h,t):this.nodeEdges(h,t)}outEdges(h,t){return this.isDirected()?this.filterEdges(this._out[h],h,t):this.nodeEdges(h,t)}nodeEdges(h,t){if(h in this._nodes)return this.filterEdges({...this._in[h],...this._out[h]},h,t)}filterEdges(h,t,f){if(h){var m=Object.values(h);return f?m.filter(function(k){return k.v===t&&k.w===f||k.v===f&&k.w===t}):m}}};function D(h,t){h[t]?h[t]++:h[t]=1}function A(h,t){--h[t]||delete h[t]}function G(h,t,f,m){var k=""+t,T=""+f;if(!h&&k>T){var B=k;k=T,T=B}return k+O+T+O+(m===void 0?L:m)}function F(h,t,f,m){var k=""+t,T=""+f;if(!h&&k>T){var B=k;k=T,T=B}var W={v:k,w:T};return m&&(W.name=m),W}function z(h,t){return G(h,t.v,t.w,t.name)}b.exports=S}),a=l((y,b)=>{b.exports="3.0.2"}),e=l((y,b)=>{b.exports={Graph:n(),version:a()}}),d=l((y,b)=>{var L=n();b.exports={write:I,read:D};function I(A){var G={options:{directed:A.isDirected(),multigraph:A.isMultigraph(),compound:A.isCompound()},nodes:O(A),edges:S(A)};return A.graph()!==void 0&&(G.value=structuredClone(A.graph())),G}function O(A){return A.nodes().map(function(G){var F=A.node(G),z=A.parent(G),h={v:G};return F!==void 0&&(h.value=F),z!==void 0&&(h.parent=z),h})}function S(A){return A.edges().map(function(G){var F=A.edge(G),z={v:G.v,w:G.w};return G.name!==void 0&&(z.name=G.name),F!==void 0&&(z.value=F),z})}function D(A){var G=new L(A.options).setGraph(A.value);return A.nodes.forEach(function(F){G.setNode(F.v,F.value),F.parent&&G.setParent(F.v,F.parent)}),A.edges.forEach(function(F){G.setEdge({v:F.v,w:F.w,name:F.name},F.value)}),G}}),o=l((y,b)=>{b.exports=I;var L=()=>1;function I(S,D,A,G){return O(S,String(D),A||L,G||function(F){return S.outEdges(F)})}function O(S,D,A,G){var F={},z=!0,h=0,t=S.nodes(),f=function(B){var W=A(B);F[B.v].distance+W<F[B.w].distance&&(F[B.w]={distance:F[B.v].distance+W,predecessor:B.v},z=!0)},m=function(){t.forEach(function(B){G(B).forEach(function(W){var Q=W.v===B?W.v:W.w,he=Q===W.v?W.w:W.v;f({v:Q,w:he})})})};t.forEach(function(B){var W=B===D?0:Number.POSITIVE_INFINITY;F[B]={distance:W}});for(var k=t.length,T=1;T<k&&(z=!1,h++,m(),!!z);T++);if(h===k-1&&(z=!1,m(),z))throw new Error("The graph contains a negative weight cycle");return F}}),i=l((y,b)=>{b.exports=L;function L(I){var O={},S=[],D;function A(G){Object.hasOwn(O,G)||(O[G]=!0,D.push(G),I.successors(G).forEach(A),I.predecessors(G).forEach(A))}return I.nodes().forEach(function(G){D=[],A(G),D.length&&S.push(D)}),S}}),p=l((y,b)=>{var L=class{constructor(){r(this,"_arr",[]),r(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(I){return I.key})}has(I){return Object.hasOwn(this._keyIndices,I)}priority(I){var O=this._keyIndices[I];if(O!==void 0)return this._arr[O].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(I,O){var S=this._keyIndices;if(I=String(I),!Object.hasOwn(S,I)){var D=this._arr,A=D.length;return S[I]=A,D.push({key:I,priority:O}),this._decrease(A),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var I=this._arr.pop();return delete this._keyIndices[I.key],this._heapify(0),I.key}decrease(I,O){var S=this._keyIndices[I];if(O>this._arr[S].priority)throw new Error("New priority is greater than current priority. Key: "+I+" Old: "+this._arr[S].priority+" New: "+O);this._arr[S].priority=O,this._decrease(S)}_heapify(I){var O=this._arr,S=2*I,D=S+1,A=I;S<O.length&&(A=O[S].priority<O[A].priority?S:A,D<O.length&&(A=O[D].priority<O[A].priority?D:A),A!==I&&(this._swap(I,A),this._heapify(A)))}_decrease(I){for(var O=this._arr,S=O[I].priority,D;I!==0&&(D=I>>1,!(O[D].priority<S));)this._swap(I,D),I=D}_swap(I,O){var S=this._arr,D=this._keyIndices,A=S[I],G=S[O];S[I]=G,S[O]=A,D[G.key]=I,D[A.key]=O}};b.exports=L}),c=l((y,b)=>{var L=p();b.exports=O;var I=()=>1;function O(D,A,G,F){var z=function(h){return D.outEdges(h)};return S(D,String(A),G||I,F||z)}function S(D,A,G,F){var z={},h=new L,t,f,m=function(k){var T=k.v!==t?k.v:k.w,B=z[T],W=G(k),Q=f.distance+W;if(W<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+k+" Weight: "+W);Q<B.distance&&(B.distance=Q,B.predecessor=t,h.decrease(T,Q))};for(D.nodes().forEach(function(k){var T=k===A?0:Number.POSITIVE_INFINITY;z[k]={distance:T},h.add(k,T)});h.size()>0&&(t=h.removeMin(),f=z[t],f.distance!==Number.POSITIVE_INFINITY);)F(t).forEach(m);return z}}),E=l((y,b)=>{var L=c();b.exports=I;function I(O,S,D){return O.nodes().reduce(function(A,G){return A[G]=L(O,G,S,D),A},{})}}),j=l((y,b)=>{b.exports=L;function L(O,S,D){if(O[S].predecessor!==void 0)throw new Error("Invalid source vertex");if(O[D].predecessor===void 0&&D!==S)throw new Error("Invalid destination vertex");return{weight:O[D].distance,path:I(O,S,D)}}function I(O,S,D){for(var A=[],G=D;G!==S;)A.push(G),G=O[G].predecessor;return A.push(S),A.reverse()}}),X=l((y,b)=>{b.exports=L;function L(I){var O=0,S=[],D={},A=[];function G(F){var z=D[F]={onStack:!0,lowlink:O,index:O++};if(S.push(F),I.successors(F).forEach(function(f){Object.hasOwn(D,f)?D[f].onStack&&(z.lowlink=Math.min(z.lowlink,D[f].index)):(G(f),z.lowlink=Math.min(z.lowlink,D[f].lowlink))}),z.lowlink===z.index){var h=[],t;do t=S.pop(),D[t].onStack=!1,h.push(t);while(F!==t);A.push(h)}}return I.nodes().forEach(function(F){Object.hasOwn(D,F)||G(F)}),A}}),V=l((y,b)=>{var L=X();b.exports=I;function I(O){return L(O).filter(function(S){return S.length>1||S.length===1&&O.hasEdge(S[0],S[0])})}}),x=l((y,b)=>{b.exports=I;var L=()=>1;function I(S,D,A){return O(S,D||L,A||function(G){return S.outEdges(G)})}function O(S,D,A){var G={},F=S.nodes();return F.forEach(function(z){G[z]={},G[z][z]={distance:0},F.forEach(function(h){z!==h&&(G[z][h]={distance:Number.POSITIVE_INFINITY})}),A(z).forEach(function(h){var t=h.v===z?h.w:h.v,f=D(h);G[z][t]={distance:f,predecessor:z}})}),F.forEach(function(z){var h=G[z];F.forEach(function(t){var f=G[t];F.forEach(function(m){var k=f[z],T=h[m],B=f[m],W=k.distance+T.distance;W<B.distance&&(B.distance=W,B.predecessor=T.predecessor)})})}),G}}),$=l((y,b)=>{function L(O){var S={},D={},A=[];function G(F){if(Object.hasOwn(D,F))throw new I;Object.hasOwn(S,F)||(D[F]=!0,S[F]=!0,O.predecessors(F).forEach(G),delete D[F],A.push(F))}if(O.sinks().forEach(G),Object.keys(S).length!==O.nodeCount())throw new I;return A}var I=class extends Error{constructor(){super(...arguments)}};b.exports=L,L.CycleException=I}),_=l((y,b)=>{var L=$();b.exports=I;function I(O){try{L(O)}catch(S){if(S instanceof L.CycleException)return!1;throw S}return!0}}),M=l((y,b)=>{b.exports=L;function L(O,S,D,A,G){Array.isArray(S)||(S=[S]);var F=(O.isDirected()?O.successors:O.neighbors).bind(O),z={};return S.forEach(function(h){if(!O.hasNode(h))throw new Error("Graph does not have node: "+h);G=I(O,h,D==="post",z,F,A,G)}),G}function I(O,S,D,A,G,F,z){return Object.hasOwn(A,S)||(A[S]=!0,D||(z=F(z,S)),G(S).forEach(function(h){z=I(O,h,D,A,G,F,z)}),D&&(z=F(z,S))),z}}),P=l((y,b)=>{var L=M();b.exports=I;function I(O,S,D){return L(O,S,D,function(A,G){return A.push(G),A},[])}}),R=l((y,b)=>{var L=P();b.exports=I;function I(O,S){return L(O,S,"post")}}),Y=l((y,b)=>{var L=P();b.exports=I;function I(O,S){return L(O,S,"pre")}}),q=l((y,b)=>{var L=n(),I=p();b.exports=O;function O(S,D){var A=new L,G={},F=new I,z;function h(f){var m=f.v===z?f.w:f.v,k=F.priority(m);if(k!==void 0){var T=D(f);T<k&&(G[m]=z,F.decrease(m,T))}}if(S.nodeCount()===0)return A;S.nodes().forEach(function(f){F.add(f,Number.POSITIVE_INFINITY),A.setNode(f)}),F.decrease(S.nodes()[0],0);for(var t=!1;F.size()>0;){if(z=F.removeMin(),Object.hasOwn(G,z))A.setEdge(z,G[z]);else{if(t)throw new Error("Input graph is not connected: "+S);t=!0}S.nodeEdges(z).forEach(h)}return A}}),w=l((y,b)=>{var L=c(),I=o();b.exports=O;function O(D,A,G,F){return S(D,A,G,F||function(z){return D.outEdges(z)})}function S(D,A,G,F){if(G===void 0)return L(D,A,G,F);for(var z=!1,h=D.nodes(),t=0;t<h.length;t++){for(var f=F(h[t]),m=0;m<f.length;m++){var k=f[m],T=k.v===h[t]?k.v:k.w,B=T===k.v?k.w:k.v;G({v:T,w:B})<0&&(z=!0)}if(z)return I(D,A,G,F)}return L(D,A,G,F)}}),N=l((y,b)=>{b.exports={bellmanFord:o(),components:i(),dijkstra:c(),dijkstraAll:E(),extractPath:j(),findCycles:V(),floydWarshall:x(),isAcyclic:_(),postorder:R(),preorder:Y(),prim:q(),shortestPaths:w(),reduce:M(),tarjan:X(),topsort:$()}}),C=e();g.exports={Graph:C.Graph,json:d(),alg:N(),version:C.version}}),Ye=H((s,g)=>{var v=class{constructor(){let r={};r._next=r._prev=r,this._sentinel=r}dequeue(){let r=this._sentinel,n=r._prev;if(n!==r)return u(n),n}enqueue(r){let n=this._sentinel;r._prev&&r._next&&u(r),r._next=n._next,n._next._prev=r,n._next=r,r._prev=n}toString(){let r=[],n=this._sentinel,a=n._prev;for(;a!==n;)r.push(JSON.stringify(a,l)),a=a._prev;return"["+r.join(", ")+"]"}};function u(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}function l(r,n){if(r!=="_next"&&r!=="_prev")return n}g.exports=v}),Xe=H((s,g)=>{var v=te().Graph,u=Ye();g.exports=r;var l=()=>1;function r(i,p){if(i.nodeCount()<=1)return[];let c=e(i,p||l);return n(c.graph,c.buckets,c.zeroIdx).flatMap(E=>i.outEdges(E.v,E.w))}function n(i,p,c){let E=[],j=p[p.length-1],X=p[0],V;for(;i.nodeCount();){for(;V=X.dequeue();)a(i,p,c,V);for(;V=j.dequeue();)a(i,p,c,V);if(i.nodeCount()){for(let x=p.length-2;x>0;--x)if(V=p[x].dequeue(),V){E=E.concat(a(i,p,c,V,!0));break}}}return E}function a(i,p,c,E,j){let X=j?[]:void 0;return i.inEdges(E.v).forEach(V=>{let x=i.edge(V),$=i.node(V.v);j&&X.push({v:V.v,w:V.w}),$.out-=x,d(p,c,$)}),i.outEdges(E.v).forEach(V=>{let x=i.edge(V),$=V.w,_=i.node($);_.in-=x,d(p,c,_)}),i.removeNode(E.v),X}function e(i,p){let c=new v,E=0,j=0;i.nodes().forEach(x=>{c.setNode(x,{v:x,in:0,out:0})}),i.edges().forEach(x=>{let $=c.edge(x.v,x.w)||0,_=p(x),M=$+_;c.setEdge(x.v,x.w,M),j=Math.max(j,c.node(x.v).out+=_),E=Math.max(E,c.node(x.w).in+=_)});let X=o(j+E+3).map(()=>new u),V=E+1;return c.nodes().forEach(x=>{d(X,V,c.node(x))}),{graph:c,buckets:X,zeroIdx:V}}function d(i,p,c){c.out?c.in?i[c.out-c.in+p].enqueue(c):i[i.length-1].enqueue(c):i[0].enqueue(c)}function o(i){let p=[];for(let c=0;c<i;c++)p.push(c);return p}}),U=H((s,g)=>{var v=te().Graph;g.exports={addBorderNode:p,addDummyNode:u,applyWithChunking:j,asNonCompoundGraph:r,buildLayerMatrix:d,intersectRect:e,mapValues:Y,maxRank:X,normalizeRanks:o,notime:$,partition:V,pick:R,predecessorWeights:a,range:P,removeEmptyRanks:i,simplify:l,successorWeights:n,time:x,uniqueId:M,zipObject:q};function u(w,N,C,y){for(var b=y;w.hasNode(b);)b=M(y);return C.dummy=N,w.setNode(b,C),b}function l(w){let N=new v().setGraph(w.graph());return w.nodes().forEach(C=>N.setNode(C,w.node(C))),w.edges().forEach(C=>{let y=N.edge(C.v,C.w)||{weight:0,minlen:1},b=w.edge(C);N.setEdge(C.v,C.w,{weight:y.weight+b.weight,minlen:Math.max(y.minlen,b.minlen)})}),N}function r(w){let N=new v({multigraph:w.isMultigraph()}).setGraph(w.graph());return w.nodes().forEach(C=>{w.children(C).length||N.setNode(C,w.node(C))}),w.edges().forEach(C=>{N.setEdge(C,w.edge(C))}),N}function n(w){let N=w.nodes().map(C=>{let y={};return w.outEdges(C).forEach(b=>{y[b.w]=(y[b.w]||0)+w.edge(b).weight}),y});return q(w.nodes(),N)}function a(w){let N=w.nodes().map(C=>{let y={};return w.inEdges(C).forEach(b=>{y[b.v]=(y[b.v]||0)+w.edge(b).weight}),y});return q(w.nodes(),N)}function e(w,N){let C=w.x,y=w.y,b=N.x-C,L=N.y-y,I=w.width/2,O=w.height/2;if(!b&&!L)throw new Error("Not possible to find intersection inside of the rectangle");let S,D;return Math.abs(L)*I>Math.abs(b)*O?(L<0&&(O=-O),S=O*b/L,D=O):(b<0&&(I=-I),S=I,D=I*L/b),{x:C+S,y:y+D}}function d(w){let N=P(X(w)+1).map(()=>[]);return w.nodes().forEach(C=>{let y=w.node(C),b=y.rank;b!==void 0&&(N[b][y.order]=C)}),N}function o(w){let N=w.nodes().map(y=>{let b=w.node(y).rank;return b===void 0?Number.MAX_VALUE:b}),C=j(Math.min,N);w.nodes().forEach(y=>{let b=w.node(y);Object.hasOwn(b,"rank")&&(b.rank-=C)})}function i(w){let N=w.nodes().map(I=>w.node(I).rank).filter(I=>I!==void 0),C=j(Math.min,N),y=[];w.nodes().forEach(I=>{let O=w.node(I).rank-C;y[O]||(y[O]=[]),y[O].push(I)});let b=0,L=w.graph().nodeRankFactor;Array.from(y).forEach((I,O)=>{I===void 0&&O%L!==0?--b:I!==void 0&&b&&I.forEach(S=>w.node(S).rank+=b)})}function p(w,N,C,y){let b={width:0,height:0};return arguments.length>=4&&(b.rank=C,b.order=y),u(w,"border",b,N)}function c(w,N=E){let C=[];for(let y=0;y<w.length;y+=N){let b=w.slice(y,y+N);C.push(b)}return C}var E=65535;function j(w,N){if(N.length>E){let C=c(N);return w.apply(null,C.map(y=>w.apply(null,y)))}else return w.apply(null,N)}function X(w){let N=w.nodes().map(C=>{let y=w.node(C).rank;return y===void 0?Number.MIN_VALUE:y});return j(Math.max,N)}function V(w,N){let C={lhs:[],rhs:[]};return w.forEach(y=>{N(y)?C.lhs.push(y):C.rhs.push(y)}),C}function x(w,N){let C=Date.now();try{return N()}finally{console.log(w+" time: "+(Date.now()-C)+"ms")}}function $(w,N){return N()}var _=0;function M(w){var N=++_;return w+(""+N)}function P(w,N,C=1){N==null&&(N=w,w=0);let y=L=>L<N;C<0&&(y=L=>N<L);let b=[];for(let L=w;y(L);L+=C)b.push(L);return b}function R(w,N){let C={};for(let y of N)w[y]!==void 0&&(C[y]=w[y]);return C}function Y(w,N){let C=N;return typeof N=="string"&&(C=y=>y[N]),Object.entries(w).reduce((y,[b,L])=>(y[b]=C(L,b),y),{})}function q(w,N){return w.reduce((C,y,b)=>(C[y]=N[b],C),{})}}),Ve=H((s,g)=>{var v=Xe(),u=U().uniqueId;g.exports={run:l,undo:n};function l(a){(a.graph().acyclicer==="greedy"?v(a,e(a)):r(a)).forEach(d=>{let o=a.edge(d);a.removeEdge(d),o.forwardName=d.name,o.reversed=!0,a.setEdge(d.w,d.v,o,u("rev"))});function e(d){return o=>d.edge(o).weight}}function r(a){let e=[],d={},o={};function i(p){Object.hasOwn(o,p)||(o[p]=!0,d[p]=!0,a.outEdges(p).forEach(c=>{Object.hasOwn(d,c.w)?e.push(c):i(c.w)}),delete d[p])}return a.nodes().forEach(i),e}function n(a){a.edges().forEach(e=>{let d=a.edge(e);if(d.reversed){a.removeEdge(e);let o=d.forwardName;delete d.reversed,delete d.forwardName,a.setEdge(e.w,e.v,d,o)}})}}),Fe=H((s,g)=>{var v=U();g.exports={run:u,undo:r};function u(n){n.graph().dummyChains=[],n.edges().forEach(a=>l(n,a))}function l(n,a){let e=a.v,d=n.node(e).rank,o=a.w,i=n.node(o).rank,p=a.name,c=n.edge(a),E=c.labelRank;if(i===d+1)return;n.removeEdge(a);let j,X,V;for(V=0,++d;d<i;++V,++d)c.points=[],X={width:0,height:0,edgeLabel:c,edgeObj:a,rank:d},j=v.addDummyNode(n,"edge",X,"_d"),d===E&&(X.width=c.width,X.height=c.height,X.dummy="edge-label",X.labelpos=c.labelpos),n.setEdge(e,j,{weight:c.weight},p),V===0&&n.graph().dummyChains.push(j),e=j;n.setEdge(e,o,{weight:c.weight},p)}function r(n){n.graph().dummyChains.forEach(a=>{let e=n.node(a),d=e.edgeLabel,o;for(n.setEdge(e.edgeObj,d);e.dummy;)o=n.successors(a)[0],n.removeNode(a),d.points.push({x:e.x,y:e.y}),e.dummy==="edge-label"&&(d.x=e.x,d.y=e.y,d.width=e.width,d.height=e.height),a=o,e=n.node(a)})}}),ue=H((s,g)=>{var{applyWithChunking:v}=U();g.exports={longestPath:u,slack:l};function u(r){var n={};function a(e){var d=r.node(e);if(Object.hasOwn(n,e))return d.rank;n[e]=!0;let o=r.outEdges(e).map(p=>p==null?Number.POSITIVE_INFINITY:a(p.w)-r.edge(p).minlen);var i=v(Math.min,o);return i===Number.POSITIVE_INFINITY&&(i=0),d.rank=i}r.sources().forEach(a)}function l(r,n){return r.node(n.w).rank-r.node(n.v).rank-r.edge(n).minlen}}),Me=H((s,g)=>{var v=te().Graph,u=ue().slack;g.exports=l;function l(e){var d=new v({directed:!1}),o=e.nodes()[0],i=e.nodeCount();d.setNode(o,{});for(var p,c;r(d,e)<i;)p=n(d,e),c=d.hasNode(p.v)?u(e,p):-u(e,p),a(d,e,c);return d}function r(e,d){function o(i){d.nodeEdges(i).forEach(p=>{var c=p.v,E=i===c?p.w:c;!e.hasNode(E)&&!u(d,p)&&(e.setNode(E,{}),e.setEdge(i,E,{}),o(E))})}return e.nodes().forEach(o),e.nodeCount()}function n(e,d){return d.edges().reduce((o,i)=>{let p=Number.POSITIVE_INFINITY;return e.hasNode(i.v)!==e.hasNode(i.w)&&(p=u(d,i)),p<o[0]?[p,i]:o},[Number.POSITIVE_INFINITY,null])[1]}function a(e,d,o){e.nodes().forEach(i=>d.node(i).rank+=o)}}),ze=H((s,g)=>{var v=Me(),u=ue().slack,l=ue().longestPath,r=te().alg.preorder,n=te().alg.postorder,a=U().simplify;g.exports=e,e.initLowLimValues=p,e.initCutValues=d,e.calcCutValue=i,e.leaveEdge=E,e.enterEdge=j,e.exchangeEdges=X;function e(_){_=a(_),l(_);var M=v(_);p(M),d(M,_);for(var P,R;P=E(M);)R=j(M,_,P),X(M,_,P,R)}function d(_,M){var P=n(_,_.nodes());P=P.slice(0,P.length-1),P.forEach(R=>o(_,M,R))}function o(_,M,P){var R=_.node(P),Y=R.parent;_.edge(P,Y).cutvalue=i(_,M,P)}function i(_,M,P){var R=_.node(P),Y=R.parent,q=!0,w=M.edge(P,Y),N=0;return w||(q=!1,w=M.edge(Y,P)),N=w.weight,M.nodeEdges(P).forEach(C=>{var y=C.v===P,b=y?C.w:C.v;if(b!==Y){var L=y===q,I=M.edge(C).weight;if(N+=L?I:-I,x(_,P,b)){var O=_.edge(P,b).cutvalue;N+=L?-O:O}}}),N}function p(_,M){arguments.length<2&&(M=_.nodes()[0]),c(_,{},1,M)}function c(_,M,P,R,Y){var q=P,w=_.node(R);return M[R]=!0,_.neighbors(R).forEach(N=>{Object.hasOwn(M,N)||(P=c(_,M,P,N,R))}),w.low=q,w.lim=P++,Y?w.parent=Y:delete w.parent,P}function E(_){return _.edges().find(M=>_.edge(M).cutvalue<0)}function j(_,M,P){var R=P.v,Y=P.w;M.hasEdge(R,Y)||(R=P.w,Y=P.v);var q=_.node(R),w=_.node(Y),N=q,C=!1;q.lim>w.lim&&(N=w,C=!0);var y=M.edges().filter(b=>C===$(_,_.node(b.v),N)&&C!==$(_,_.node(b.w),N));return y.reduce((b,L)=>u(M,L)<u(M,b)?L:b)}function X(_,M,P,R){var Y=P.v,q=P.w;_.removeEdge(Y,q),_.setEdge(R.v,R.w,{}),p(_),d(_,M),V(_,M)}function V(_,M){var P=_.nodes().find(Y=>!M.node(Y).parent),R=r(_,P);R=R.slice(1),R.forEach(Y=>{var q=_.node(Y).parent,w=M.edge(Y,q),N=!1;w||(w=M.edge(q,Y),N=!0),M.node(Y).rank=M.node(q).rank+(N?w.minlen:-w.minlen)})}function x(_,M,P){return _.hasEdge(M,P)}function $(_,M,P){return P.low<=M.lim&&M.lim<=P.lim}}),Be=H((s,g)=>{var v=ue(),u=v.longestPath,l=Me(),r=ze();g.exports=n;function n(o){var i=o.graph().ranker;if(i instanceof Function)return i(o);switch(o.graph().ranker){case"network-simplex":d(o);break;case"tight-tree":e(o);break;case"longest-path":a(o);break;case"none":break;default:d(o)}}var a=u;function e(o){u(o),l(o)}function d(o){r(o)}}),qe=H((s,g)=>{g.exports=v;function v(r){let n=l(r);r.graph().dummyChains.forEach(a=>{let e=r.node(a),d=e.edgeObj,o=u(r,n,d.v,d.w),i=o.path,p=o.lca,c=0,E=i[c],j=!0;for(;a!==d.w;){if(e=r.node(a),j){for(;(E=i[c])!==p&&r.node(E).maxRank<e.rank;)c++;E===p&&(j=!1)}if(!j){for(;c<i.length-1&&r.node(E=i[c+1]).minRank<=e.rank;)c++;E=i[c]}r.setParent(a,E),a=r.successors(a)[0]}})}function u(r,n,a,e){let d=[],o=[],i=Math.min(n[a].low,n[e].low),p=Math.max(n[a].lim,n[e].lim),c,E;c=a;do c=r.parent(c),d.push(c);while(c&&(n[c].low>i||p>n[c].lim));for(E=c,c=e;(c=r.parent(c))!==E;)o.push(c);return{path:d.concat(o.reverse()),lca:E}}function l(r){let n={},a=0;function e(d){let o=a;r.children(d).forEach(e),n[d]={low:o,lim:a++}}return r.children().forEach(e),n}}),We=H((s,g)=>{var v=U();g.exports={run:u,cleanup:a};function u(e){let d=v.addDummyNode(e,"root",{},"_root"),o=r(e),i=Object.values(o),p=v.applyWithChunking(Math.max,i)-1,c=2*p+1;e.graph().nestingRoot=d,e.edges().forEach(j=>e.edge(j).minlen*=c);let E=n(e)+1;e.children().forEach(j=>l(e,d,c,E,p,o,j)),e.graph().nodeRankFactor=c}function l(e,d,o,i,p,c,E){let j=e.children(E);if(!j.length){E!==d&&e.setEdge(d,E,{weight:0,minlen:o});return}let X=v.addBorderNode(e,"_bt"),V=v.addBorderNode(e,"_bb"),x=e.node(E);e.setParent(X,E),x.borderTop=X,e.setParent(V,E),x.borderBottom=V,j.forEach($=>{l(e,d,o,i,p,c,$);let _=e.node($),M=_.borderTop?_.borderTop:$,P=_.borderBottom?_.borderBottom:$,R=_.borderTop?i:2*i,Y=M!==P?1:p-c[E]+1;e.setEdge(X,M,{weight:R,minlen:Y,nestingEdge:!0}),e.setEdge(P,V,{weight:R,minlen:Y,nestingEdge:!0})}),e.parent(E)||e.setEdge(d,X,{weight:0,minlen:p+c[E]})}function r(e){var d={};function o(i,p){var c=e.children(i);c&&c.length&&c.forEach(E=>o(E,p+1)),d[i]=p}return e.children().forEach(i=>o(i,1)),d}function n(e){return e.edges().reduce((d,o)=>d+e.edge(o).weight,0)}function a(e){var d=e.graph();e.removeNode(d.nestingRoot),delete d.nestingRoot,e.edges().forEach(o=>{var i=e.edge(o);i.nestingEdge&&e.removeEdge(o)})}}),He=H((s,g)=>{var v=U();g.exports=u;function u(r){function n(a){let e=r.children(a),d=r.node(a);if(e.length&&e.forEach(n),Object.hasOwn(d,"minRank")){d.borderLeft=[],d.borderRight=[];for(let o=d.minRank,i=d.maxRank+1;o<i;++o)l(r,"borderLeft","_bl",a,d,o),l(r,"borderRight","_br",a,d,o)}}r.children().forEach(n)}function l(r,n,a,e,d,o){let i={width:0,height:0,rank:o,borderType:n},p=d[n][o-1],c=v.addDummyNode(r,"border",i,a);d[n][o]=c,r.setParent(c,e),p&&r.setEdge(p,c,{weight:1})}}),Ue=H((s,g)=>{g.exports={adjust:v,undo:u};function v(o){let i=o.graph().rankdir.toLowerCase();(i==="lr"||i==="rl")&&l(o)}function u(o){let i=o.graph().rankdir.toLowerCase();(i==="bt"||i==="rl")&&n(o),(i==="lr"||i==="rl")&&(e(o),l(o))}function l(o){o.nodes().forEach(i=>r(o.node(i))),o.edges().forEach(i=>r(o.edge(i)))}function r(o){let i=o.width;o.width=o.height,o.height=i}function n(o){o.nodes().forEach(i=>a(o.node(i))),o.edges().forEach(i=>{let p=o.edge(i);p.points.forEach(a),Object.hasOwn(p,"y")&&a(p)})}function a(o){o.y=-o.y}function e(o){o.nodes().forEach(i=>d(o.node(i))),o.edges().forEach(i=>{let p=o.edge(i);p.points.forEach(d),Object.hasOwn(p,"x")&&d(p)})}function d(o){let i=o.x;o.x=o.y,o.y=i}}),Qe=H((s,g)=>{var v=U();g.exports=u;function u(l){let r={},n=l.nodes().filter(i=>!l.children(i).length),a=n.map(i=>l.node(i).rank),e=v.applyWithChunking(Math.max,a),d=v.range(e+1).map(()=>[]);function o(i){if(r[i])return;r[i]=!0;let p=l.node(i);d[p.rank].push(i),l.successors(i).forEach(o)}return n.sort((i,p)=>l.node(i).rank-l.node(p).rank).forEach(o),d}}),Ke=H((s,g)=>{var v=U().zipObject;g.exports=u;function u(r,n){let a=0;for(let e=1;e<n.length;++e)a+=l(r,n[e-1],n[e]);return a}function l(r,n,a){let e=v(a,a.map((E,j)=>j)),d=n.flatMap(E=>r.outEdges(E).map(j=>({pos:e[j.w],weight:r.edge(j).weight})).sort((j,X)=>j.pos-X.pos)),o=1;for(;o<a.length;)o<<=1;let i=2*o-1;o-=1;let p=new Array(i).fill(0),c=0;return d.forEach(E=>{let j=E.pos+o;p[j]+=E.weight;let X=0;for(;j>0;)j%2&&(X+=p[j+1]),j=j-1>>1,p[j]+=E.weight;c+=E.weight*X}),c}}),Ze=H((s,g)=>{g.exports=v;function v(u,l=[]){return l.map(r=>{let n=u.inEdges(r);if(n.length){let a=n.reduce((e,d)=>{let o=u.edge(d),i=u.node(d.v);return{sum:e.sum+o.weight*i.order,weight:e.weight+o.weight}},{sum:0,weight:0});return{v:r,barycenter:a.sum/a.weight,weight:a.weight}}else return{v:r}})}}),Je=H((s,g)=>{var v=U();g.exports=u;function u(n,a){let e={};n.forEach((o,i)=>{let p=e[o.v]={indegree:0,in:[],out:[],vs:[o.v],i};o.barycenter!==void 0&&(p.barycenter=o.barycenter,p.weight=o.weight)}),a.edges().forEach(o=>{let i=e[o.v],p=e[o.w];i!==void 0&&p!==void 0&&(p.indegree++,i.out.push(e[o.w]))});let d=Object.values(e).filter(o=>!o.indegree);return l(d)}function l(n){let a=[];function e(o){return i=>{i.merged||(i.barycenter===void 0||o.barycenter===void 0||i.barycenter>=o.barycenter)&&r(o,i)}}function d(o){return i=>{i.in.push(o),--i.indegree===0&&n.push(i)}}for(;n.length;){let o=n.pop();a.push(o),o.in.reverse().forEach(e(o)),o.out.forEach(d(o))}return a.filter(o=>!o.merged).map(o=>v.pick(o,["vs","i","barycenter","weight"]))}function r(n,a){let e=0,d=0;n.weight&&(e+=n.barycenter*n.weight,d+=n.weight),a.weight&&(e+=a.barycenter*a.weight,d+=a.weight),n.vs=a.vs.concat(n.vs),n.barycenter=e/d,n.weight=d,n.i=Math.min(a.i,n.i),a.merged=!0}}),et=H((s,g)=>{var v=U();g.exports=u;function u(n,a){let e=v.partition(n,X=>Object.hasOwn(X,"barycenter")),d=e.lhs,o=e.rhs.sort((X,V)=>V.i-X.i),i=[],p=0,c=0,E=0;d.sort(r(!!a)),E=l(i,o,E),d.forEach(X=>{E+=X.vs.length,i.push(X.vs),p+=X.barycenter*X.weight,c+=X.weight,E=l(i,o,E)});let j={vs:i.flat(!0)};return c&&(j.barycenter=p/c,j.weight=c),j}function l(n,a,e){let d;for(;a.length&&(d=a[a.length-1]).i<=e;)a.pop(),n.push(d.vs),e++;return e}function r(n){return(a,e)=>a.barycenter<e.barycenter?-1:a.barycenter>e.barycenter?1:n?e.i-a.i:a.i-e.i}}),tt=H((s,g)=>{var v=Ze(),u=Je(),l=et();g.exports=r;function r(e,d,o,i){let p=e.children(d),c=e.node(d),E=c?c.borderLeft:void 0,j=c?c.borderRight:void 0,X={};E&&(p=p.filter(_=>_!==E&&_!==j));let V=v(e,p);V.forEach(_=>{if(e.children(_.v).length){let M=r(e,_.v,o,i);X[_.v]=M,Object.hasOwn(M,"barycenter")&&a(_,M)}});let x=u(V,o);n(x,X);let $=l(x,i);if(E&&($.vs=[E,$.vs,j].flat(!0),e.predecessors(E).length)){let _=e.node(e.predecessors(E)[0]),M=e.node(e.predecessors(j)[0]);Object.hasOwn($,"barycenter")||($.barycenter=0,$.weight=0),$.barycenter=($.barycenter*$.weight+_.order+M.order)/($.weight+2),$.weight+=2}return $}function n(e,d){e.forEach(o=>{o.vs=o.vs.flatMap(i=>d[i]?d[i].vs:i)})}function a(e,d){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+d.barycenter*d.weight)/(e.weight+d.weight),e.weight+=d.weight):(e.barycenter=d.barycenter,e.weight=d.weight)}}),rt=H((s,g)=>{var v=te().Graph,u=U();g.exports=l;function l(n,a,e,d){d||(d=n.nodes());let o=r(n),i=new v({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(p=>n.node(p));return d.forEach(p=>{let c=n.node(p),E=n.parent(p);(c.rank===a||c.minRank<=a&&a<=c.maxRank)&&(i.setNode(p),i.setParent(p,E||o),n[e](p).forEach(j=>{let X=j.v===p?j.w:j.v,V=i.edge(X,p),x=V!==void 0?V.weight:0;i.setEdge(X,p,{weight:n.edge(j).weight+x})}),Object.hasOwn(c,"minRank")&&i.setNode(p,{borderLeft:c.borderLeft[a],borderRight:c.borderRight[a]}))}),i}function r(n){for(var a;n.hasNode(a=u.uniqueId("_root")););return a}}),nt=H((s,g)=>{g.exports=v;function v(u,l,r){let n={},a;r.forEach(e=>{let d=u.parent(e),o,i;for(;d;){if(o=u.parent(d),o?(i=n[o],n[o]=d):(i=a,a=d),i&&i!==d){l.setEdge(i,d);return}d=o}})}}),ot=H((s,g)=>{var v=Qe(),u=Ke(),l=tt(),r=rt(),n=nt(),a=te().Graph,e=U();g.exports=d;function d(c,E={}){if(typeof E.customOrder=="function"){E.customOrder(c,d);return}let j=e.maxRank(c),X=o(c,e.range(1,j+1),"inEdges"),V=o(c,e.range(j-1,-1,-1),"outEdges"),x=v(c);if(p(c,x),E.disableOptimalOrderHeuristic)return;let $=Number.POSITIVE_INFINITY,_,M=E.constraints||[];for(let P=0,R=0;R<4;++P,++R){i(P%2?X:V,P%4>=2,M),x=e.buildLayerMatrix(c);let Y=u(c,x);Y<$?(R=0,_=Object.assign({},x),$=Y):Y===$&&(_=structuredClone(x))}p(c,_)}function o(c,E,j){let X=new Map,V=(x,$)=>{X.has(x)||X.set(x,[]),X.get(x).push($)};for(let x of c.nodes()){let $=c.node(x);if(typeof $.rank=="number"&&V($.rank,x),typeof $.minRank=="number"&&typeof $.maxRank=="number")for(let _=$.minRank;_<=$.maxRank;_++)_!==$.rank&&V(_,x)}return E.map(function(x){return r(c,x,j,X.get(x)||[])})}function i(c,E,j){let X=new a;c.forEach(function(V){j.forEach(_=>X.setEdge(_.left,_.right));let x=V.graph().root,$=l(V,x,X,E);$.vs.forEach((_,M)=>V.node(_).order=M),n(V,X,$.vs)})}function p(c,E){Object.values(E).forEach(j=>j.forEach((X,V)=>c.node(X).order=V))}}),it=H((s,g)=>{var v=te().Graph,u=U();g.exports={positionX:j,findType1Conflicts:l,findType2Conflicts:r,addConflict:a,hasConflict:e,verticalAlignment:d,horizontalCompaction:o,alignCoordinates:c,findSmallestWidthAlignment:p,balance:E};function l(x,$){let _={};function M(P,R){let Y=0,q=0,w=P.length,N=R[R.length-1];return R.forEach((C,y)=>{let b=n(x,C),L=b?x.node(b).order:w;(b||C===N)&&(R.slice(q,y+1).forEach(I=>{x.predecessors(I).forEach(O=>{let S=x.node(O),D=S.order;(D<Y||L<D)&&!(S.dummy&&x.node(I).dummy)&&a(_,O,I)})}),q=y+1,Y=L)}),R}return $.length&&$.reduce(M),_}function r(x,$){let _={};function M(R,Y,q,w,N){let C;u.range(Y,q).forEach(y=>{C=R[y],x.node(C).dummy&&x.predecessors(C).forEach(b=>{let L=x.node(b);L.dummy&&(L.order<w||L.order>N)&&a(_,b,C)})})}function P(R,Y){let q=-1,w,N=0;return Y.forEach((C,y)=>{if(x.node(C).dummy==="border"){let b=x.predecessors(C);b.length&&(w=x.node(b[0]).order,M(Y,N,y,q,w),N=y,q=w)}M(Y,N,Y.length,w,R.length)}),Y}return $.length&&$.reduce(P),_}function n(x,$){if(x.node($).dummy)return x.predecessors($).find(_=>x.node(_).dummy)}function a(x,$,_){if($>_){let P=$;$=_,_=P}let M=x[$];M||(x[$]=M={}),M[_]=!0}function e(x,$,_){if($>_){let M=$;$=_,_=M}return!!x[$]&&Object.hasOwn(x[$],_)}function d(x,$,_,M){let P={},R={},Y={};return $.forEach(q=>{q.forEach((w,N)=>{P[w]=w,R[w]=w,Y[w]=N})}),$.forEach(q=>{let w=-1;q.forEach(N=>{let C=M(N);if(C.length){C=C.sort((b,L)=>Y[b]-Y[L]);let y=(C.length-1)/2;for(let b=Math.floor(y),L=Math.ceil(y);b<=L;++b){let I=C[b];R[N]===N&&w<Y[I]&&!e(_,N,I)&&(R[I]=N,R[N]=P[N]=P[I],w=Y[I])}}})}),{root:P,align:R}}function o(x,$,_,M,P){let R={},Y=i(x,$,_,P),q=P?"borderLeft":"borderRight";function w(y,b){let L=Y.nodes().slice(),I={},O=L.pop();for(;O;){if(I[O])y(O);else{I[O]=!0,L.push(O);for(let S of b(O))L.push(S)}O=L.pop()}}function N(y){R[y]=Y.inEdges(y).reduce((b,L)=>Math.max(b,R[L.v]+Y.edge(L)),0)}function C(y){let b=Y.outEdges(y).reduce((I,O)=>Math.min(I,R[O.w]-Y.edge(O)),Number.POSITIVE_INFINITY),L=x.node(y);b!==Number.POSITIVE_INFINITY&&L.borderType!==q&&(R[y]=Math.max(R[y],b))}return w(N,Y.predecessors.bind(Y)),w(C,Y.successors.bind(Y)),Object.keys(M).forEach(y=>R[y]=R[_[y]]),R}function i(x,$,_,M){let P=new v,R=x.graph(),Y=X(R.nodesep,R.edgesep,M);return $.forEach(q=>{let w;q.forEach(N=>{let C=_[N];if(P.setNode(C),w){var y=_[w],b=P.edge(y,C);P.setEdge(y,C,Math.max(Y(x,N,w),b||0))}w=N})}),P}function p(x,$){return Object.values($).reduce((_,M)=>{let P=Number.NEGATIVE_INFINITY,R=Number.POSITIVE_INFINITY;Object.entries(M).forEach(([q,w])=>{let N=V(x,q)/2;P=Math.max(w+N,P),R=Math.min(w-N,R)});let Y=P-R;return Y<_[0]&&(_=[Y,M]),_},[Number.POSITIVE_INFINITY,null])[1]}function c(x,$){let _=Object.values($),M=u.applyWithChunking(Math.min,_),P=u.applyWithChunking(Math.max,_);["u","d"].forEach(R=>{["l","r"].forEach(Y=>{let q=R+Y,w=x[q];if(w===$)return;let N=Object.values(w),C=M-u.applyWithChunking(Math.min,N);Y!=="l"&&(C=P-u.applyWithChunking(Math.max,N)),C&&(x[q]=u.mapValues(w,y=>y+C))})})}function E(x,$){return u.mapValues(x.ul,(_,M)=>{if($)return x[$.toLowerCase()][M];{let P=Object.values(x).map(R=>R[M]).sort((R,Y)=>R-Y);return(P[1]+P[2])/2}})}function j(x){let $=u.buildLayerMatrix(x),_=Object.assign(l(x,$),r(x,$)),M={},P;["u","d"].forEach(Y=>{P=Y==="u"?$:Object.values($).reverse(),["l","r"].forEach(q=>{q==="r"&&(P=P.map(y=>Object.values(y).reverse()));let w=(Y==="u"?x.predecessors:x.successors).bind(x),N=d(x,P,_,w),C=o(x,P,N.root,N.align,q==="r");q==="r"&&(C=u.mapValues(C,y=>-y)),M[Y+q]=C})});let R=p(x,M);return c(M,R),E(M,x.graph().align)}function X(x,$,_){return(M,P,R)=>{let Y=M.node(P),q=M.node(R),w=0,N;if(w+=Y.width/2,Object.hasOwn(Y,"labelpos"))switch(Y.labelpos.toLowerCase()){case"l":N=-Y.width/2;break;case"r":N=Y.width/2;break}if(N&&(w+=_?N:-N),N=0,w+=(Y.dummy?$:x)/2,w+=(q.dummy?$:x)/2,w+=q.width/2,Object.hasOwn(q,"labelpos"))switch(q.labelpos.toLowerCase()){case"l":N=q.width/2;break;case"r":N=-q.width/2;break}return N&&(w+=_?N:-N),N=0,w}}function V(x,$){return x.node($).width}}),st=H((s,g)=>{var v=U(),u=it().positionX;g.exports=l;function l(n){n=v.asNonCompoundGraph(n),r(n),Object.entries(u(n)).forEach(([a,e])=>n.node(a).x=e)}function r(n){let a=v.buildLayerMatrix(n),e=n.graph().ranksep,d=n.graph().rankalign,o=0;a.forEach(i=>{let p=i.reduce((c,E)=>{let j=n.node(E).height;return c>j?c:j},0);i.forEach(c=>{let E=n.node(c);d==="top"?E.y=o+E.height/2:d==="bottom"?E.y=o+p-E.height/2:E.y=o+p/2}),o+=p+e})}}),at=H((s,g)=>{var v=Ve(),u=Fe(),l=Be(),r=U().normalizeRanks,n=qe(),a=U().removeEmptyRanks,e=We(),d=He(),o=Ue(),i=ot(),p=st(),c=U(),E=te().Graph;g.exports=j;function j(t,f={}){let m=f.debugTiming?c.time:c.notime;return m("layout",()=>{let k=m(" buildLayoutGraph",()=>w(t));return m(" runLayout",()=>X(k,m,f)),m(" updateInputGraph",()=>V(t,k)),k})}function X(t,f,m){f(" makeSpaceForEdgeLabels",()=>N(t)),f(" removeSelfEdges",()=>A(t)),f(" acyclic",()=>v.run(t)),f(" nestingGraph.run",()=>e.run(t)),f(" rank",()=>l(c.asNonCompoundGraph(t))),f(" injectEdgeLabelProxies",()=>C(t)),f(" removeEmptyRanks",()=>a(t)),f(" nestingGraph.cleanup",()=>e.cleanup(t)),f(" normalizeRanks",()=>r(t)),f(" assignRankMinMax",()=>y(t)),f(" removeEdgeLabelProxies",()=>b(t)),f(" normalize.run",()=>u.run(t)),f(" parentDummyChains",()=>n(t)),f(" addBorderSegments",()=>d(t)),f(" order",()=>i(t,m)),f(" insertSelfEdges",()=>G(t)),f(" adjustCoordinateSystem",()=>o.adjust(t)),f(" position",()=>p(t)),f(" positionSelfEdges",()=>F(t)),f(" removeBorderNodes",()=>D(t)),f(" normalize.undo",()=>u.undo(t)),f(" fixupEdgeLabelCoords",()=>O(t)),f(" undoCoordinateSystem",()=>o.undo(t)),f(" translateGraph",()=>L(t)),f(" assignNodeIntersects",()=>I(t)),f(" reversePoints",()=>S(t)),f(" acyclic.undo",()=>v.undo(t))}function V(t,f){t.nodes().forEach(m=>{let k=t.node(m),T=f.node(m);k&&(k.x=T.x,k.y=T.y,k.order=T.order,k.rank=T.rank,f.children(m).length&&(k.width=T.width,k.height=T.height))}),t.edges().forEach(m=>{let k=t.edge(m),T=f.edge(m);k.points=T.points,Object.hasOwn(T,"x")&&(k.x=T.x,k.y=T.y)}),t.graph().width=f.graph().width,t.graph().height=f.graph().height}var x=["nodesep","edgesep","ranksep","marginx","marginy"],$={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb",rankalign:"center"},_=["acyclicer","ranker","rankdir","align","rankalign"],M=["width","height","rank"],P={width:0,height:0},R=["minlen","weight","width","height","labeloffset"],Y={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},q=["labelpos"];function w(t){let f=new E({multigraph:!0,compound:!0}),m=h(t.graph());return f.setGraph(Object.assign({},$,z(m,x),c.pick(m,_))),t.nodes().forEach(k=>{let T=h(t.node(k)),B=z(T,M);Object.keys(P).forEach(W=>{B[W]===void 0&&(B[W]=P[W])}),f.setNode(k,B),f.setParent(k,t.parent(k))}),t.edges().forEach(k=>{let T=h(t.edge(k));f.setEdge(k,Object.assign({},Y,z(T,R),c.pick(T,q)))}),f}function N(t){let f=t.graph();f.ranksep/=2,t.edges().forEach(m=>{let k=t.edge(m);k.minlen*=2,k.labelpos.toLowerCase()!=="c"&&(f.rankdir==="TB"||f.rankdir==="BT"?k.width+=k.labeloffset:k.height+=k.labeloffset)})}function C(t){t.edges().forEach(f=>{let m=t.edge(f);if(m.width&&m.height){let k=t.node(f.v),T={rank:(t.node(f.w).rank-k.rank)/2+k.rank,e:f};c.addDummyNode(t,"edge-proxy",T,"_ep")}})}function y(t){let f=0;t.nodes().forEach(m=>{let k=t.node(m);k.borderTop&&(k.minRank=t.node(k.borderTop).rank,k.maxRank=t.node(k.borderBottom).rank,f=Math.max(f,k.maxRank))}),t.graph().maxRank=f}function b(t){t.nodes().forEach(f=>{let m=t.node(f);m.dummy==="edge-proxy"&&(t.edge(m.e).labelRank=m.rank,t.removeNode(f))})}function L(t){let f=Number.POSITIVE_INFINITY,m=0,k=Number.POSITIVE_INFINITY,T=0,B=t.graph(),W=B.marginx||0,Q=B.marginy||0;function he(J){let K=J.x,se=J.y,me=J.width,be=J.height;f=Math.min(f,K-me/2),m=Math.max(m,K+me/2),k=Math.min(k,se-be/2),T=Math.max(T,se+be/2)}t.nodes().forEach(J=>he(t.node(J))),t.edges().forEach(J=>{let K=t.edge(J);Object.hasOwn(K,"x")&&he(K)}),f-=W,k-=Q,t.nodes().forEach(J=>{let K=t.node(J);K.x-=f,K.y-=k}),t.edges().forEach(J=>{let K=t.edge(J);K.points.forEach(se=>{se.x-=f,se.y-=k}),Object.hasOwn(K,"x")&&(K.x-=f),Object.hasOwn(K,"y")&&(K.y-=k)}),B.width=m-f+W,B.height=T-k+Q}function I(t){t.edges().forEach(f=>{let m=t.edge(f),k=t.node(f.v),T=t.node(f.w),B,W;m.points?(B=m.points[0],W=m.points[m.points.length-1]):(m.points=[],B=T,W=k),m.points.unshift(c.intersectRect(k,B)),m.points.push(c.intersectRect(T,W))})}function O(t){t.edges().forEach(f=>{let m=t.edge(f);if(Object.hasOwn(m,"x"))switch((m.labelpos==="l"||m.labelpos==="r")&&(m.width-=m.labeloffset),m.labelpos){case"l":m.x-=m.width/2+m.labeloffset;break;case"r":m.x+=m.width/2+m.labeloffset;break}})}function S(t){t.edges().forEach(f=>{let m=t.edge(f);m.reversed&&m.points.reverse()})}function D(t){t.nodes().forEach(f=>{if(t.children(f).length){let m=t.node(f),k=t.node(m.borderTop),T=t.node(m.borderBottom),B=t.node(m.borderLeft[m.borderLeft.length-1]),W=t.node(m.borderRight[m.borderRight.length-1]);m.width=Math.abs(W.x-B.x),m.height=Math.abs(T.y-k.y),m.x=B.x+m.width/2,m.y=k.y+m.height/2}}),t.nodes().forEach(f=>{t.node(f).dummy==="border"&&t.removeNode(f)})}function A(t){t.edges().forEach(f=>{if(f.v===f.w){var m=t.node(f.v);m.selfEdges||(m.selfEdges=[]),m.selfEdges.push({e:f,label:t.edge(f)}),t.removeEdge(f)}})}function G(t){var f=c.buildLayerMatrix(t);f.forEach(m=>{var k=0;m.forEach((T,B)=>{var W=t.node(T);W.order=B+k,(W.selfEdges||[]).forEach(Q=>{c.addDummyNode(t,"selfedge",{width:Q.label.width,height:Q.label.height,rank:W.rank,order:B+ ++k,e:Q.e,label:Q.label},"_se")}),delete W.selfEdges})})}function F(t){t.nodes().forEach(f=>{var m=t.node(f);if(m.dummy==="selfedge"){var k=t.node(m.e.v),T=k.x+k.width/2,B=k.y,W=m.x-T,Q=k.height/2;t.setEdge(m.e,m.label),t.removeNode(f),m.label.points=[{x:T+2*W/3,y:B-Q},{x:T+5*W/6,y:B-Q},{x:T+W,y:B},{x:T+5*W/6,y:B+Q},{x:T+2*W/3,y:B+Q}],m.label.x=m.x,m.label.y=m.y}})}function z(t,f){return c.mapValues(c.pick(t,f),Number)}function h(t){var f={};return t&&Object.entries(t).forEach(([m,k])=>{typeof m=="string"&&(m=m.toLowerCase()),f[m]=k}),f}}),dt=H((s,g)=>{var v=U(),u=te().Graph;g.exports={debugOrdering:l};function l(r){let n=v.buildLayerMatrix(r),a=new u({compound:!0,multigraph:!0}).setGraph({});return r.nodes().forEach(e=>{a.setNode(e,{label:e}),a.setParent(e,"layer"+r.node(e).rank)}),r.edges().forEach(e=>a.setEdge(e.v,e.w,{},e.name)),n.forEach((e,d)=>{let o="layer"+d;a.setNode(o,{rank:"same"}),e.reduce((i,p)=>(a.setEdge(i,p,{style:"invis"}),p))}),a}}),ct=H((s,g)=>{g.exports="2.0.4"}),ht=H((s,g)=>{g.exports={graphlib:te(),layout:at(),debug:dt(),util:{time:U().time,notime:U().notime},version:ct()}});const _e=ht();const ie=200,ce=80;function pe(s){return{x:s.position.x+ie/2,y:s.position.y+ce}}function ye(s){return{x:s.position.x+ie/2,y:s.position.y}}function ge(s,g){const v=Math.abs(g.y-s.y),u=Math.max(30,Math.min(v*.5,150));return[`M ${s.x} ${s.y}`,`C ${s.x} ${s.y+u},`,`${g.x} ${g.y-u},`,`${g.x} ${g.y}`].join(" ")}function Ee(s,g,v=8){const u=Math.abs(s.y-g.y),l=Math.max(30,Math.min(u*.5,150)),r=s.x,n=s.y-l,a=Math.atan2(s.y-n,s.x-r),e=s.x-v*Math.cos(a-Math.PI/6),d=s.y-v*Math.sin(a-Math.PI/6),o=s.x-v*Math.cos(a+Math.PI/6),i=s.y-v*Math.sin(a+Math.PI/6);return`M ${e} ${d} L ${s.x} ${s.y} L ${o} ${i} Z`}function _t(s,g){if(s.length===0)return{positions:new Map};const v=new _e.graphlib.Graph;v.setGraph({rankdir:"TB",nodesep:60,ranksep:80,marginx:40,marginy:40,ranker:"tight-tree"}),v.setDefaultEdgeLabel(()=>({}));for(const l of s)v.setNode(l.id,{width:ie,height:ce});for(const l of g)v.setEdge(l.source,l.target);_e.layout(v);const u=new Map;for(const l of s){const r=v.node(l.id);u.set(l.id,{x:r.x-ie/2,y:r.y-ce/2})}return{positions:u}}function yt(s,g,v,u=40){if(s.length===0)return{x:0,y:0,scale:1};let l=1/0,r=1/0,n=-1/0,a=-1/0;for(const $ of s){const _=$.position.x,M=$.position.y,P=_+ie,R=M+ce;_<l&&(l=_),M<r&&(r=M),P>n&&(n=P),R>a&&(a=R)}const e=n-l,d=a-r,o=g-u*2,i=v-u*2,p=o/e,c=i/d,E=Math.max(Oe,Math.min(Ce,Math.min(p,c))),j=(l+n)/2,X=(r+a)/2,V=g/2,x=v/2;return{x:V-j*E,y:x-X*E,scale:E}}const{I:lt}=Se,xe=s=>s,ke=()=>document.createComment(""),de=(s,g,v)=>{const u=s._$AA.parentNode,l=g===void 0?s._$AB:g._$AA;if(v===void 0){const r=u.insertBefore(ke(),l),n=u.insertBefore(ke(),l);v=new lt(r,n,s,s.options)}else{const r=v._$AB.nextSibling,n=v._$AM,a=n!==s;if(a){let e;v._$AQ?.(s),v._$AM=s,v._$AP!==void 0&&(e=s._$AU)!==n._$AU&&v._$AP(e)}if(r!==l||a){let e=v._$AA;for(;e!==r;){const d=xe(e).nextSibling;xe(u).insertBefore(e,l),e=d}}}return v},ne=(s,g,v=s)=>(s._$AI(g,v),s),ut={},ft=(s,g=ut)=>s._$AH=g,pt=s=>s._$AH,ve=s=>{s._$AR(),s._$AA.remove()};const Ne=(s,g,v)=>{const u=new Map;for(let l=g;l<=v;l++)u.set(s[l],l);return u},Ie=Ae(class extends Ge{constructor(s){if(super(s),s.type!==De.CHILD)throw Error("repeat() can only be used in text expressions")}dt(s,g,v){let u;v===void 0?v=g:g!==void 0&&(u=g);const l=[],r=[];let n=0;for(const a of s)l[n]=u?u(a,n):n,r[n]=v(a,n),n++;return{values:r,keys:l}}render(s,g,v){return this.dt(s,g,v).values}update(s,[g,v,u]){const l=pt(s),{values:r,keys:n}=this.dt(g,v,u);if(!Array.isArray(l))return this.ut=n,r;const a=this.ut??=[],e=[];let d,o,i=0,p=l.length-1,c=0,E=r.length-1;for(;i<=p&&c<=E;)if(l[i]===null)i++;else if(l[p]===null)p--;else if(a[i]===n[c])e[c]=ne(l[i],r[c]),i++,c++;else if(a[p]===n[E])e[E]=ne(l[p],r[E]),p--,E--;else if(a[i]===n[E])e[E]=ne(l[i],r[E]),de(s,e[E+1],l[i]),i++,E--;else if(a[p]===n[c])e[c]=ne(l[p],r[c]),de(s,l[i],l[p]),p--,c++;else if(d===void 0&&(d=Ne(n,c,E),o=Ne(a,i,p)),d.has(a[i]))if(d.has(a[p])){const j=o.get(n[c]),X=j!==void 0?l[j]:null;if(X===null){const V=de(s,l[i]);ne(V,r[c]),e[c]=V}else e[c]=ne(X,r[c]),de(s,l[i],X),l[j]=null;c++}else ve(l[p]),p--;else ve(l[i]),i++;for(;c<=E;){const j=de(s,e[E+1]);ne(j,r[c]),e[c++]=j}for(;i<=p;){const j=l[i++];j!==null&&ve(j)}return this.ut=n,ft(s,e),$e}});var gt=Object.defineProperty,vt=Object.getOwnPropertyDescriptor,ee=(s,g,v,u)=>{for(var l=u>1?void 0:u?vt(g,v):g,r=s.length-1,n;r>=0;r--)(n=s[r])&&(l=(u?n(g,v,l):n(l))||l);return u&&l&&gt(g,v,l),l};const oe={agent:{label:"Agent",color:"var(--ic-accent)"},debate:{label:"Debate",color:"var(--ic-warning)"},vote:{label:"Vote",color:"var(--ic-success)"},refine:{label:"Refine",color:"var(--ic-info)"},collaborate:{label:"Collaborate",color:"#a855f7"},"approval-gate":{label:"Approval Gate",color:"var(--ic-error)"},"map-reduce":{label:"Map-Reduce",color:"#f97316"}};let Z=class extends Le{constructor(){super(...arguments),this.viewport={x:0,y:0,scale:1},this.interactionMode="idle",this.nodes=[],this.edges=[],this.selectedNodeIds=new Set,this.selectedEdgeId=null,this.snapToGrid=!1,this.highlightNodeIds=[],this.readOnly=!1,this.nodeStatuses=new Map,this.edgeStatuses=new Map,this._mode="idle",this._dragStartX=0,this._dragStartY=0,this._startPanX=0,this._startPanY=0,this._livePanX=0,this._livePanY=0,this._currentScale=1,this._dragNodeId=null,this._dragStartGraphX=0,this._dragStartGraphY=0,this._dragNodeStartX=0,this._dragNodeStartY=0,this._dragLiveX=0,this._dragLiveY=0,this._dragSelectedStarts=new Map,this._connectSourceNodeId=null,this._previewLine=null,this._svgTransformGroup=null,this._htmlTransformGroup=null,this._zoomIndicator=null,this._container=null,this._wheelHandler=null}connectedCallback(){super.connectedCallback(),this.updateComplete.then(()=>{const s=this.renderRoot.querySelector(".canvas-container");this._wheelHandler=this._onWheel.bind(this),s?.addEventListener("wheel",this._wheelHandler,{passive:!1})})}disconnectedCallback(){this._wheelHandler&&this._container&&(this._container.removeEventListener("wheel",this._wheelHandler),this._wheelHandler=null),super.disconnectedCallback()}firstUpdated(){const s=this.renderRoot;this._svgTransformGroup=s.querySelector("g.transform-group"),this._htmlTransformGroup=s.querySelector("div.transform-group"),this._zoomIndicator=s.querySelector(".zoom-indicator"),this._container=s.querySelector(".canvas-container"),this._applyTransformGroups(this.viewport),this._currentScale=this.viewport.scale}willUpdate(s){s.has("viewport")&&(this._currentScale=this.viewport.scale,this._svgTransformGroup&&this._applyTransformGroups(this.viewport))}render(){const{x:s,y:g,scale:v}=this.viewport,u=`${Math.round(v*100)}%`,l=this.nodes.length,r=`Graph canvas with ${l} node${l!==1?"s":""}`;return ae`
2
- <div
3
- class="canvas-container"
4
- role="application"
5
- aria-label=${r}
6
- @pointerdown=${this._onPointerDown}
7
- @pointermove=${this._onPointerMove}
8
- @pointerup=${this._onPointerUp}
9
- >
10
- <svg class="svg-layer">
11
- ${we`
12
- <defs>
13
- <pattern id="dot-grid" width="24" height="24" patternUnits="userSpaceOnUse">
14
- <circle cx="12" cy="12" r="1" class="grid-dot" />
15
- </pattern>
16
- </defs>
17
- <g class="transform-group" style="transform: translate(${s}px, ${g}px) scale(${v})">
18
- <rect x="-5000" y="-5000" width="10000" height="10000" fill="url(#dot-grid)" />
19
- ${this._renderEdges(this.edges,this.nodes,this.selectedEdgeId)}
20
- </g>
21
- `}
22
- </svg>
23
- <div class="html-layer">
24
- <div
25
- class="transform-group"
26
- style="transform-origin: 0 0; transform: translate(${s}px, ${g}px) scale(${v})"
27
- >
28
- ${this._renderNodes(this.nodes,this.selectedNodeIds,this.highlightNodeIds)}
29
- </div>
30
- </div>
31
- <div class="zoom-indicator">${u}</div>
32
- </div>
33
- `}_renderNodes(s,g,v=[]){return Ie(s,u=>u.id,u=>{const l=g.has(u.id),r=v.includes(u.id),n=this.nodeStatuses.get(u.id)??"",a=u.typeId&&oe[u.typeId]?`, type ${oe[u.typeId].label}`:"",e=u.typeConfig,d=u.agentId||(typeof e?.agent=="string"&&e.agent!==""?e.agent:"")||(Array.isArray(e?.agents)&&e.agents.length>0?e.agents.join(", "):""),o=`Node ${u.id}${d?", agent "+d:""}${a}, ${u.task.substring(0,50)}`;return ae`
34
- <div
35
- class="node-card ${l?"node-card--selected":""} ${r?"highlight":""}"
36
- data-node-id=${u.id}
37
- data-status=${n}
38
- tabindex="0"
39
- role="button"
40
- aria-label=${o}
41
- aria-selected=${l?"true":"false"}
42
- style="transform: translate(${u.position.x}px, ${u.position.y}px)"
43
- >
44
- <div class="port port-in" data-node-id=${u.id} data-port="in"></div>
45
- <div class="node-header">
46
- <span class="node-status-dot"></span>
47
- <span class="node-id">${u.id}</span>
48
- </div>
49
- ${d?ae`<span class="node-agent-tag">${d}</span>`:le}
50
- ${u.typeId&&oe[u.typeId]?ae`<span class="node-type-tag" style="
51
- background: color-mix(in srgb, ${oe[u.typeId].color} 15%, transparent);
52
- color: ${oe[u.typeId].color};
53
- ">${oe[u.typeId].label}</span>`:le}
54
- <div class="node-task-preview">
55
- ${this._truncateTask(u.task)}
56
- </div>
57
- ${this._renderConstraints(u)}
58
- <div class="port port-out" data-node-id=${u.id} data-port="out"></div>
59
- </div>
60
- `})}_renderConstraints(s){const g=[];return s.timeoutMs!=null&&g.push(`${Math.round(s.timeoutMs/1e3)}s`),s.maxSteps!=null&&g.push(`${s.maxSteps} steps`),g.length===0?le:ae`<div class="node-constraints">${g.join(" | ")}</div>`}_truncateTask(s,g=40){return s.length>g?s.slice(0,g-1)+"…":s}_renderEdges(s,g,v){const u=new Map(g.map(l=>[l.id,l]));return Ie(s,l=>l.id,l=>{const r=u.get(l.source),n=u.get(l.target);if(!r||!n)return le;const a=pe(r),e=ye(n),d=ge(a,e),o=Ee(e,a),i=v===l.id,p=this.edgeStatuses.get(l.id)??"",c=p?`edge-path--${p}`:"",E=p?`edge-arrow--${p}`:"";return we`
61
- <g class="edge-group" data-edge-id=${l.id}>
62
- <path class="edge-hit-area" d=${d} @click=${()=>this._onEdgeClick(l.id)} />
63
- <path class="edge-path ${i?"edge-path--selected":""} ${c}" d=${d} />
64
- <path class="edge-arrow ${i?"edge-arrow--selected":""} ${E}" d=${o} />
65
- </g>
66
- `})}_onEdgeClick(s){this.dispatchEvent(new CustomEvent("edge-select",{detail:s,bubbles:!0,composed:!0}))}_applyTransformGroups(s){const g=`translate(${s.x}px, ${s.y}px) scale(${s.scale})`;this._svgTransformGroup&&(this._svgTransformGroup.style.transform=g),this._htmlTransformGroup&&(this._htmlTransformGroup.style.transform=g)}_syncTransformImperative(s){this._applyTransformGroups(s),this._zoomIndicator&&(this._zoomIndicator.textContent=`${Math.round(s.scale*100)}%`),this._currentScale=s.scale}_dispatchViewportChange(s){this.dispatchEvent(new CustomEvent("viewport-change",{detail:s,bubbles:!0,composed:!0}))}_getCurrentViewport(){return{x:this._livePanX||this.viewport.x,y:this._livePanY||this.viewport.y,scale:this._currentScale}}_onPointerDown(s){if(this._mode!=="idle")return;const g=s.composedPath();for(const v of g)if(v instanceof Element){if(v.classList.contains("port")&&v.classList.contains("port-out")){if(this.readOnly)return;const u=v.getAttribute("data-node-id");if(u){this._startEdgeConnection(s,u);return}}if(v.classList.contains("port")&&v.classList.contains("port-in"))return;if(v.hasAttribute("data-node-id")&&v.classList.contains("node-card")){const u=v.getAttribute("data-node-id");if(this.readOnly){this.dispatchEvent(new CustomEvent("node-inspect",{detail:{nodeId:u},bubbles:!0,composed:!0}));return}this.dispatchEvent(new CustomEvent("node-select",{detail:{nodeId:u,multi:s.shiftKey},bubbles:!0,composed:!0})),this._startNodeDrag(s,u);return}}this.dispatchEvent(new CustomEvent("canvas-click",{bubbles:!0,composed:!0})),this._mode="panning",this._dragStartX=s.clientX,this._dragStartY=s.clientY,this._startPanX=this.viewport.x,this._startPanY=this.viewport.y,this._livePanX=this.viewport.x,this._livePanY=this.viewport.y,s.currentTarget.setPointerCapture(s.pointerId),s.preventDefault(),this._container&&this._container.setAttribute("data-mode","panning"),this.interactionMode="panning"}_onPointerMove(s){switch(this._mode){case"panning":this._onPointerMovePanning(s);break;case"dragging-node":this._onPointerMoveDragNode(s);break;case"connecting-edge":this._onPointerMoveConnecting(s);break}}_onPointerUp(s){switch(this._mode){case"panning":{const g={x:this._livePanX,y:this._livePanY,scale:this._currentScale};this._dispatchViewportChange(g);break}case"dragging-node":this._finishNodeDrag();break;case"connecting-edge":this._finishEdgeConnection(s);break}this._mode="idle",this.interactionMode="idle",this._container&&this._container.removeAttribute("data-mode")}_onPointerMovePanning(s){const g=s.clientX-this._dragStartX,v=s.clientY-this._dragStartY,u=this._startPanX+g,l=this._startPanY+v,r=`translate(${u}px, ${l}px) scale(${this._currentScale})`;this._svgTransformGroup&&(this._svgTransformGroup.style.transform=r),this._htmlTransformGroup&&(this._htmlTransformGroup.style.transform=r),this._livePanX=u,this._livePanY=l}_startNodeDrag(s,g){this._mode="dragging-node",this._dragNodeId=g;const v=this._container?.getBoundingClientRect();if(!v)return;const u=this._getCurrentViewport(),l=fe(s.clientX,s.clientY,v,u);this._dragStartGraphX=l.x,this._dragStartGraphY=l.y;const r=this.nodes.find(n=>n.id===g);r&&(this._dragNodeStartX=r.position.x,this._dragNodeStartY=r.position.y,this._dragLiveX=r.position.x,this._dragLiveY=r.position.y),this._dragSelectedStarts.clear(),r&&this._dragSelectedStarts.set(g,{...r.position});for(const n of this.selectedNodeIds){if(n===g)continue;const a=this.nodes.find(e=>e.id===n);a&&this._dragSelectedStarts.set(n,{...a.position})}s.currentTarget.setPointerCapture(s.pointerId),s.preventDefault(),s.stopPropagation(),this._container&&this._container.setAttribute("data-mode","dragging-node"),this.interactionMode="dragging-node"}_onPointerMoveDragNode(s){const g=this._container?.getBoundingClientRect();if(!g)return;const v=this._getCurrentViewport(),u=fe(s.clientX,s.clientY,g,v),l=u.x-this._dragStartGraphX,r=u.y-this._dragStartGraphY;for(const[n,a]of this._dragSelectedStarts){let e=a.x+l,d=a.y+r;this.snapToGrid&&(e=Math.round(e/24)*24,d=Math.round(d/24)*24);const o=this.renderRoot.querySelector(`.node-card[data-node-id="${n}"]`);o&&(o.style.transform=`translate(${e}px, ${d}px)`),this._updateConnectedEdges(n,e,d,l,r),n===this._dragNodeId&&(this._dragLiveX=e,this._dragLiveY=d)}}_updateConnectedEdges(s,g,v,u,l){for(const r of this.edges){if(r.source!==s&&r.target!==s)continue;let n;if(r.source===s)n={x:g,y:v};else{const X=this._dragSelectedStarts.get(r.source);if(X){let V=X.x+u,x=X.y+l;this.snapToGrid&&(V=Math.round(V/24)*24,x=Math.round(x/24)*24),n={x:V,y:x}}else{const V=this.nodes.find(x=>x.id===r.source);if(!V)continue;n=V.position}}let a;if(r.target===s)a={x:g,y:v};else{const X=this._dragSelectedStarts.get(r.target);if(X){let V=X.x+u,x=X.y+l;this.snapToGrid&&(V=Math.round(V/24)*24,x=Math.round(x/24)*24),a={x:V,y:x}}else{const V=this.nodes.find(x=>x.id===r.target);if(!V)continue;a=V.position}}const e=pe({position:n}),d=ye({position:a}),o=ge(e,d),i=Ee(d,e),p=this.renderRoot.querySelector(`.edge-group[data-edge-id="${r.id}"]`);if(!p)continue;const c=p.querySelector(".edge-hit-area");c&&c.setAttribute("d",o);const E=p.querySelector(".edge-path");E&&E.setAttribute("d",o);const j=p.querySelector(".edge-arrow");j&&j.setAttribute("d",i)}}_finishNodeDrag(){const s=[],g=this._dragLiveX-this._dragNodeStartX,v=this._dragLiveY-this._dragNodeStartY;for(const[u,l]of this._dragSelectedStarts){let r=l.x+g,n=l.y+v;this.snapToGrid&&(r=Math.round(r/24)*24,n=Math.round(n/24)*24),s.push({nodeId:u,position:{x:r,y:n}})}s.length>0&&this.dispatchEvent(new CustomEvent("node-drag-end",{detail:{moves:s},bubbles:!0,composed:!0})),this._dragNodeId=null,this._dragSelectedStarts.clear()}_startEdgeConnection(s,g){this._mode="connecting-edge",this._connectSourceNodeId=g,this._previewLine=document.createElementNS("http://www.w3.org/2000/svg","path"),this._previewLine.classList.add("edge-preview"),this._svgTransformGroup?.appendChild(this._previewLine),s.currentTarget.setPointerCapture(s.pointerId),s.preventDefault(),s.stopPropagation(),this._container&&this._container.setAttribute("data-mode","connecting-edge"),this.interactionMode="connecting-edge"}_onPointerMoveConnecting(s){if(!this._connectSourceNodeId||!this._previewLine)return;const g=this.nodes.find(a=>a.id===this._connectSourceNodeId);if(!g)return;const v=pe(g),u=this._container?.getBoundingClientRect();if(!u)return;const l=this._getCurrentViewport(),r=fe(s.clientX,s.clientY,u,l),n=ge(v,r);this._previewLine.setAttribute("d",n)}_finishEdgeConnection(s){this._previewLine&&this._previewLine.parentNode&&this._previewLine.parentNode.removeChild(this._previewLine),this._previewLine=null;const g=s.composedPath();let v=null;for(const u of g)if(u instanceof Element&&u.classList.contains("port-in")&&u.hasAttribute("data-node-id")){v=u.getAttribute("data-node-id");break}v&&this._connectSourceNodeId&&v!==this._connectSourceNodeId&&this.dispatchEvent(new CustomEvent("edge-create",{detail:{source:this._connectSourceNodeId,target:v},bubbles:!0,composed:!0})),this._connectSourceNodeId=null}cancelInteraction(){this._mode==="connecting-edge"&&(this._previewLine&&this._previewLine.parentNode&&this._previewLine.parentNode.removeChild(this._previewLine),this._previewLine=null,this._connectSourceNodeId=null),this._mode="idle",this.interactionMode="idle",this._container&&this._container.removeAttribute("data-mode")}_onWheel(s){s.preventDefault();const g=this._container?.getBoundingClientRect();if(!g)return;const v=s.clientX-g.left,u=s.clientY-g.top,l=this._getCurrentViewport(),r=Re(l,v,u,s.deltaY,Oe,Ce);this._syncTransformImperative(r),this._livePanX=r.x,this._livePanY=r.y,this._dispatchViewportChange(r)}};Z.styles=[Pe,je`
67
- :host {
68
- display: block;
69
- width: 100%;
70
- height: 100%;
71
- }
72
-
73
- .canvas-container {
74
- position: relative;
75
- width: 100%;
76
- height: 100%;
77
- overflow: hidden;
78
- cursor: grab;
79
- user-select: none;
80
- touch-action: none;
81
- background: var(--ic-bg);
82
- }
83
-
84
- .canvas-container[data-mode="panning"] {
85
- cursor: grabbing;
86
- }
87
- .canvas-container[data-mode="dragging-node"] {
88
- cursor: grabbing;
89
- }
90
- .canvas-container[data-mode="connecting-edge"] {
91
- cursor: crosshair;
92
- }
93
-
94
- .svg-layer {
95
- position: absolute;
96
- inset: 0;
97
- width: 100%;
98
- height: 100%;
99
- pointer-events: none;
100
- }
101
-
102
- .html-layer {
103
- position: absolute;
104
- inset: 0;
105
- width: 100%;
106
- height: 100%;
107
- pointer-events: none;
108
- }
109
-
110
- .grid-dot {
111
- fill: var(--ic-surface-2, #1f2937);
112
- }
113
-
114
- .zoom-indicator {
115
- position: absolute;
116
- bottom: 12px;
117
- right: 12px;
118
- padding: 4px 8px;
119
- background: var(--ic-surface);
120
- border: 1px solid var(--ic-border);
121
- border-radius: var(--ic-radius-sm);
122
- font-size: var(--ic-text-xs);
123
- color: var(--ic-text-muted);
124
- pointer-events: none;
125
- font-variant-numeric: tabular-nums;
126
- }
127
-
128
- /* Node card styles */
129
- .node-card {
130
- position: absolute;
131
- width: ${ie}px;
132
- height: ${ce}px;
133
- overflow: hidden;
134
- background: var(--ic-surface);
135
- border: 1px solid var(--ic-border);
136
- border-radius: var(--ic-radius-md);
137
- padding: var(--ic-space-sm);
138
- pointer-events: auto;
139
- cursor: default;
140
- transition: border-color var(--ic-transition), box-shadow var(--ic-transition);
141
- }
142
- .node-card:hover {
143
- background: var(--ic-surface-2);
144
- box-shadow: var(--ic-shadow-md);
145
- }
146
- .node-card--selected {
147
- border: 2px solid var(--ic-accent);
148
- }
149
-
150
- .node-header {
151
- display: flex;
152
- align-items: center;
153
- gap: var(--ic-space-xs);
154
- margin-bottom: 4px;
155
- }
156
- .node-id {
157
- font-family: var(--ic-font-mono);
158
- font-size: var(--ic-text-sm);
159
- font-weight: 600;
160
- color: var(--ic-text);
161
- }
162
- .node-status-dot {
163
- width: 6px;
164
- height: 6px;
165
- border-radius: 50%;
166
- background: var(--ic-text-dim);
167
- margin-right: var(--ic-space-xs);
168
- flex-shrink: 0;
169
- }
170
- .node-agent-tag {
171
- display: inline-block;
172
- padding: 2px 8px;
173
- border-radius: 9999px;
174
- font-size: var(--ic-text-xs);
175
- background: color-mix(in srgb, var(--ic-accent) 10%, transparent);
176
- color: var(--ic-accent);
177
- }
178
- .node-type-tag {
179
- display: inline-block;
180
- padding: 2px 8px;
181
- border-radius: 9999px;
182
- font-size: var(--ic-text-xs);
183
- white-space: nowrap;
184
- margin-left: 4px;
185
- }
186
- .node-task-preview {
187
- font-size: var(--ic-text-xs);
188
- color: var(--ic-text-muted);
189
- overflow: hidden;
190
- text-overflow: ellipsis;
191
- white-space: nowrap;
192
- }
193
- .node-constraints {
194
- font-size: var(--ic-text-xs);
195
- color: var(--ic-text-dim);
196
- }
197
-
198
- /* Port styles */
199
- .port {
200
- position: absolute;
201
- width: 8px;
202
- height: 8px;
203
- border-radius: 50%;
204
- border: 1.5px solid var(--ic-text-dim);
205
- background: var(--ic-surface);
206
- left: 50%;
207
- transform: translateX(-50%);
208
- pointer-events: auto;
209
- cursor: crosshair;
210
- }
211
- .port:hover {
212
- width: 12px;
213
- height: 12px;
214
- border-color: var(--ic-accent);
215
- background: var(--ic-accent);
216
- }
217
- .port-in {
218
- top: -4px;
219
- }
220
- .port-out {
221
- bottom: -4px;
222
- }
223
-
224
- /* Edge styles (SVG) */
225
- .edge-hit-area {
226
- fill: none;
227
- stroke: transparent;
228
- stroke-width: 12;
229
- pointer-events: stroke;
230
- cursor: pointer;
231
- }
232
- .edge-path {
233
- fill: none;
234
- stroke: var(--ic-text-dim);
235
- stroke-width: 1.5;
236
- pointer-events: none;
237
- }
238
- .edge-path--selected {
239
- stroke: var(--ic-accent);
240
- stroke-width: 2;
241
- }
242
- .edge-arrow {
243
- fill: var(--ic-text-dim);
244
- stroke: none;
245
- pointer-events: none;
246
- }
247
- .edge-arrow--selected {
248
- fill: var(--ic-accent);
249
- }
250
- /* Edge preview line for connecting-edge mode */
251
- .edge-preview {
252
- fill: none;
253
- stroke: var(--ic-accent);
254
- stroke-width: 2;
255
- stroke-dasharray: 6 4;
256
- pointer-events: none;
257
- opacity: 0.7;
258
- }
259
-
260
- /* Validation highlight pulse for click-to-highlight */
261
- .node-card.highlight {
262
- box-shadow: 0 0 0 3px var(--ic-error);
263
- animation: highlight-pulse 0.6s ease-in-out 3;
264
- }
265
- @keyframes highlight-pulse {
266
- 0%, 100% { box-shadow: 0 0 0 3px var(--ic-error); }
267
- 50% { box-shadow: 0 0 0 6px rgba(239, 68, 68, 0.3); }
268
- }
269
-
270
- /* Focus-visible outlines for keyboard navigation */
271
- .node-card:focus-visible {
272
- outline: 2px solid var(--ic-accent);
273
- outline-offset: 2px;
274
- }
275
-
276
- /* A11Y-05: Disable animations for users who prefer reduced motion */
277
- @media (prefers-reduced-motion: reduce) {
278
- .node-card {
279
- transition: none;
280
- }
281
- .node-card.highlight {
282
- animation: none;
283
- }
284
- .edge-preview {
285
- stroke-dasharray: none;
286
- }
287
- }
288
-
289
- /* ---------------------------------------------------------------
290
- * Monitor mode: read-only canvas styling
291
- * --------------------------------------------------------------- */
292
-
293
- /* Hide ports and change cursor in read-only mode */
294
- :host([read-only]) .port { display: none; }
295
- :host([read-only]) .node-card { cursor: default; }
296
- :host([read-only]) .canvas-container { cursor: default; }
297
- :host([read-only]) .canvas-container[data-mode="panning"] { cursor: grabbing; }
298
-
299
- /* Status-colored node borders */
300
- .node-card[data-status="running"] {
301
- border: 2px solid var(--ic-info, #06b6d4);
302
- box-shadow: 0 0 8px rgba(6, 182, 212, 0.3);
303
- }
304
- .node-card[data-status="completed"] {
305
- border: 2px solid var(--ic-success, #22c55e);
306
- }
307
- .node-card[data-status="failed"] {
308
- border: 2px solid var(--ic-error, #ef4444);
309
- }
310
- .node-card[data-status="skipped"] {
311
- border: 2px dashed var(--ic-text-dim, #6b7280);
312
- opacity: 0.6;
313
- }
314
- .node-card[data-status="pending"],
315
- .node-card[data-status="ready"] {
316
- border: 1px solid var(--ic-border);
317
- }
318
-
319
- /* Status dot coloring in node cards */
320
- .node-card[data-status="running"] .node-status-dot { background: var(--ic-info, #06b6d4); }
321
- .node-card[data-status="completed"] .node-status-dot { background: var(--ic-success, #22c55e); }
322
- .node-card[data-status="failed"] .node-status-dot { background: var(--ic-error, #ef4444); }
323
- .node-card[data-status="skipped"] .node-status-dot { background: var(--ic-text-dim, #6b7280); }
324
-
325
- /* Status-colored edge strokes */
326
- .edge-path--running {
327
- stroke: var(--ic-info, #06b6d4);
328
- stroke-width: 2;
329
- stroke-dasharray: 8 4;
330
- animation: edge-flow 1s linear infinite;
331
- }
332
- @keyframes edge-flow {
333
- to { stroke-dashoffset: -12; }
334
- }
335
- .edge-path--completed {
336
- stroke: var(--ic-success, #22c55e);
337
- stroke-width: 1.5;
338
- }
339
- .edge-path--failed {
340
- stroke: var(--ic-error, #ef4444);
341
- stroke-width: 1.5;
342
- }
343
- .edge-path--skipped {
344
- stroke: var(--ic-text-dim, #6b7280);
345
- stroke-dasharray: 4 4;
346
- opacity: 0.5;
347
- }
348
-
349
- /* Arrow colors for status */
350
- .edge-arrow--running { fill: var(--ic-info, #06b6d4); }
351
- .edge-arrow--completed { fill: var(--ic-success, #22c55e); }
352
- .edge-arrow--failed { fill: var(--ic-error, #ef4444); }
353
- .edge-arrow--skipped { fill: var(--ic-text-dim, #6b7280); opacity: 0.5; }
354
-
355
- /* Respect prefers-reduced-motion for edge flow animation */
356
- @media (prefers-reduced-motion: reduce) {
357
- .edge-path--running { animation: none; }
358
- }
359
- `];ee([re({attribute:!1})],Z.prototype,"viewport",2);ee([re({reflect:!0})],Z.prototype,"interactionMode",2);ee([re({attribute:!1})],Z.prototype,"nodes",2);ee([re({attribute:!1})],Z.prototype,"edges",2);ee([re({attribute:!1})],Z.prototype,"selectedNodeIds",2);ee([re({attribute:!1})],Z.prototype,"selectedEdgeId",2);ee([re({type:Boolean,attribute:"snap-to-grid"})],Z.prototype,"snapToGrid",2);ee([re({type:Array})],Z.prototype,"highlightNodeIds",2);ee([re({type:Boolean,reflect:!0,attribute:"read-only"})],Z.prototype,"readOnly",2);ee([re({attribute:!1})],Z.prototype,"nodeStatuses",2);ee([re({attribute:!1})],Z.prototype,"edgeStatuses",2);Z=ee([Te("ic-graph-canvas")],Z);export{wt as D,Ce as M,ie as N,_t as a,ce as b,yt as c,Oe as d,fe as s,Re as z};
@@ -1,33 +0,0 @@
1
- import{s as i,i as H,n as a,a as r,b as m,t as V}from"./index-CEcM1R_C.js";var o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,z=(h,v,e,s)=>{for(var l=s>1?void 0:s?n(v,e):v,M=h.length-1,t;M>=0;M--)(t=h[M])&&(l=(s?t(v,e,l):t(l))||l);return s&&l&&o(v,e,l),l};const L={telegram:"M20.3 3.5L2.6 10.3c-1.2.5-1.2 1.2-.2 1.5l4.5 1.4 1.7 5.3c.2.6.1.8.7.8.4 0 .7-.2.9-.4l2.2-2.1 4.5 3.3c.8.5 1.4.2 1.6-.8l2.9-13.6c.3-1.3-.5-1.9-1.6-1.2zM8.4 13l8.7-5.4c.4-.3.8-.1.5.2l-7.1 6.4-.3 3.1-1.8-4.3z",discord:"M19.5 5.6A16 16 0 0015.5 4a12 12 0 00-.5 1.1 15 15 0 00-6 0A12 12 0 008.5 4 16 16 0 004.5 5.6 17 17 0 002 18.6a16 16 0 005 2.5c.4-.6.8-1.2 1.1-1.8a10 10 0 01-1.7-1l.4-.3a11.5 11.5 0 0010.4 0l.4.3c-.5.4-1.1.7-1.7 1 .3.6.7 1.2 1.1 1.8a16 16 0 005-2.5A17 17 0 0019.5 5.6zM8.3 16c-1 0-1.8-1-1.8-2.1s.8-2.1 1.8-2.1 1.9 1 1.8 2.1S9.4 16 8.3 16zm7.4 0c-1 0-1.8-1-1.8-2.1s.8-2.1 1.8-2.1 1.9 1 1.8 2.1S16.8 16 15.7 16z",slack:"M5.1 15c0 1-.8 1.8-1.8 1.8S1.5 16 1.5 15s.8-1.8 1.8-1.8h1.8V15zm.9 0c0-1 .8-1.8 1.8-1.8s1.8.8 1.8 1.8v4.5c0 1-.8 1.8-1.8 1.8S6 20.5 6 19.5V15zM9 5.1c-1 0-1.8-.8-1.8-1.8S8 1.5 9 1.5s1.8.8 1.8 1.8v1.8H9zm0 .9c1 0 1.8.8 1.8 1.8S10 9.6 9 9.6H4.5c-1 0-1.8-.8-1.8-1.8S3.5 6 4.5 6H9zm9.9 1.8c0-1 .8-1.8 1.8-1.8s1.8.8 1.8 1.8-.8 1.8-1.8 1.8h-1.8V7.8zm-.9 0c0 1-.8 1.8-1.8 1.8S14.4 8.8 14.4 7.8V3.3c0-1 .8-1.8 1.8-1.8s1.8.8 1.8 1.8v4.5zM15 18.9c1 0 1.8.8 1.8 1.8s-.8 1.8-1.8 1.8-1.8-.8-1.8-1.8v-1.8H15zm0-.9c-1 0-1.8-.8-1.8-1.8s.8-1.8 1.8-1.8h4.5c1 0 1.8.8 1.8 1.8s-.8 1.8-1.8 1.8H15z",whatsapp:"M17.5 14.4c-.3-.1-1.6-.8-1.9-.9-.3-.1-.5-.1-.7.1-.2.3-.7.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.4-2.3-1.4-.9-.8-1.4-1.7-1.6-2-.2-.3 0-.5.1-.6l.4-.5c.1-.2.2-.3.2-.5.1-.2 0-.3 0-.5s-.7-1.6-.9-2.2c-.3-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.3-.3.3-1 1-1 2.5s1.1 2.9 1.2 3.1c.2.2 2.1 3.2 5 4.5.7.3 1.3.5 1.7.6.7.2 1.3.2 1.8.1.6-.1 1.6-.7 1.9-1.3.2-.6.2-1.2.2-1.3-.1-.1-.3-.2-.6-.3zM12 2C6.5 2 2 6.5 2 12c0 1.8.5 3.5 1.3 4.9L2 22l5.2-1.4c1.4.8 3 1.2 4.8 1.2 5.5 0 10-4.5 10-10S17.5 2 12 2z",line:"M22 10.8c0-4.8-4.8-8.7-10.8-8.7S.4 6 .4 10.8c0 4.3 3.8 7.9 9 8.6.3.1.8.2.9.5.1.3.1.6 0 .9l-.1.9c0 .3-.2 1.1.9.6s6.2-3.7 8.5-6.3c1.6-1.6 2.4-3.4 2.4-5.2zM7.5 13.3H5.7c-.3 0-.5-.2-.5-.5V9.2c0-.3.2-.5.5-.5s.5.2.5.5v3.1h1.3c.3 0 .5.2.5.5s-.2.5-.5.5zm1.9-.5c0 .3-.2.5-.5.5s-.5-.2-.5-.5V9.2c0-.3.2-.5.5-.5s.5.2.5.5v3.6zm5 0c0 .2-.1.4-.3.4l-.2.1-2.5-3.4v3c0 .3-.2.5-.5.5s-.5-.2-.5-.5V9.2c0-.2.1-.4.3-.4h.1l2.6 3.5V9.2c0-.3.2-.5.5-.5s.5.2.5.5v3.6zm3.5.5h-1.8c-.3 0-.5-.2-.5-.5V9.2c0-.3.2-.5.5-.5s.5.2.5.5v3.1h1.3c.3 0 .5.2.5.5s-.2.5-.5.5z",signal:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 3c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zm0 3a4 4 0 100 8 4 4 0 000-8zm0 2.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3z",imessage:"M12 2C6.5 2 2 5.8 2 10.5c0 2.7 1.5 5.1 3.8 6.7-.2 1-.6 2.5-1.8 3.8 2.1-.3 3.8-1.1 4.8-1.8.9.2 2 .3 3.2.3 5.5 0 10-3.8 10-8.5S17.5 2 12 2z",irc:"M4 4h16v12H5.2L4 17.2V4zm2 2v8h12V6H6zm2 2h8v1H8V8zm0 3h6v1H8v-1z",dashboard:"M3 3h7v7H3V3zm11 0h7v7h-7V3zM3 14h7v7H3v-7zm11 0h7v7h-7v-7z",agents:"M16 11c1.7 0 3-1.3 3-3s-1.3-3-3-3-3 1.3-3 3 1.3 3 3 3zm-8 0c1.7 0 3-1.3 3-3S9.7 5 8 5 5 6.3 5 8s1.3 3 3 3zm0 2c-2.3 0-7 1.2-7 3.5V19h14v-2.5C15 14.2 10.3 13 8 13zm8 0c-.3 0-.6 0-.9.1 1.1.8 1.9 1.9 1.9 3.4V19h6v-2.5C23 14.2 18.3 13 16 13z",channels:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm-2 15l-5-5 1.4-1.4L10 14.2l7.6-7.6L19 8l-9 9z",skills:"M12 2L4.5 20.3l.7.2L12 18l6.8 2.5.7-.2L12 2zm0 3.5l5.5 13.3L12 16.5l-5.5 2.3L12 5.5z",chat:"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z",memory:"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z",sessions:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z",scheduler:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67V7z",models:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm-1 17.9c-3.9-.5-7-3.9-7-7.9 0-.6.1-1.2.2-1.8L9 15v1c0 1.1.9 2 2 2v1.9zm6.9-2.5c-.3-.8-1-1.4-1.9-1.4h-1v-3c0-.6-.4-1-1-1H8v-2h2c.6 0 1-.4 1-1V7h2c1.1 0 2-.9 2-2v-.4c2.9 1.2 5 4.1 5 7.4 0 2.1-.8 4-2.1 5.4z",observe:"M12 4.5C7 4.5 2.7 7.6 1 12c1.7 4.4 6 7.5 11 7.5s9.3-3.1 11-7.5c-1.7-4.4-6-7.5-11-7.5zM12 17c-2.8 0-5-2.2-5-5s2.2-5 5-5 5 2.2 5 5-2.2 5-5 5zm0-8c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z",security:"M12 1L3 5v6c0 5.6 3.8 10.7 9 12 5.2-1.3 9-6.4 9-12V5l-9-4zm0 10.99h7c-.5 4.1-3.3 7.8-7 8.9V12H5V6.3l7-3.1v8.79z",approvals:"M23 12l-2.4-2.8.3-3.7-3.6-.8-1.9-3.2L12 3 8.6 1.5 6.7 4.7l-3.6.8.3 3.7L1 12l2.4 2.8-.3 3.7 3.6.8 1.9 3.2L12 21l3.4 1.5 1.9-3.2 3.6-.8-.3-3.7L23 12zm-12.5 5.5l-4.5-4.5 1.4-1.4 3.1 3.1 6.6-6.6 1.4 1.4-8 8z",config:"M19.1 12.9a7 7 0 000-1.8l2-1.6a.5.5 0 00.1-.6l-1.9-3.3a.5.5 0 00-.6-.2l-2.3.9a7 7 0 00-1.6-.9l-.4-2.5a.5.5 0 00-.5-.4h-3.8a.5.5 0 00-.5.4l-.4 2.5a7 7 0 00-1.6.9l-2.3-.9a.5.5 0 00-.6.2L3 9a.5.5 0 00.1.6l2 1.6a7 7 0 000 1.8l-2 1.6a.5.5 0 00-.1.6l1.9 3.3a.5.5 0 00.6.2l2.3-.9a7 7 0 001.6.9l.4 2.5a.5.5 0 00.5.4h3.8a.5.5 0 00.5-.4l.4-2.5a7 7 0 001.6-.9l2.3.9a.5.5 0 00.6-.2l1.9-3.3a.5.5 0 00-.1-.6l-2-1.6zM12 15.5a3.5 3.5 0 110-7 3.5 3.5 0 010 7z",setup:"M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3h7zM7 9H4V5h3v4zm10 0V5h3v4h-3zm0 10v-4h3v4h-3z",close:"M19 6.4L17.6 5 12 10.6 6.4 5 5 6.4 10.6 12 5 17.6 6.4 19 12 13.4 17.6 19 19 17.6 13.4 12 19 6.4z",menu:"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z",bell:"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.1-1.6-5.6-4.5-6.3V4c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5 1.5v.7C7.6 5.4 6 7.9 6 11v5l-2 2v1h16v-1l-2-2z",logout:"M17 7l-1.4 1.4L18.2 11H8v2h10.2l-2.6 2.6L17 17l5-5-5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z","chevron-left":"M15.4 7.4L14 6l-6 6 6 6 1.4-1.4L10.8 12l4.6-4.6z","chevron-right":"M8.6 7.4L10 6l6 6-6 6-1.4-1.4L13.2 12 8.6 7.4z",search:"M15.5 14h-.8l-.3-.3c1-1.1 1.6-2.6 1.6-4.2C16 5.9 13.1 3 9.5 3S3 5.9 3 9.5 5.9 16 9.5 16c1.6 0 3.1-.6 4.2-1.6l.3.3v.8l5 5 1.5-1.5-5-5zm-6 0C7 14 5 12 5 9.5S7 5 9.5 5 14 7 14 9.5 12 14 9.5 14z",check:"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z",x:"M19 6.4L17.6 5 12 10.6 6.4 5 5 6.4 10.6 12 5 17.6 6.4 19 12 13.4 17.6 19 19 17.6 13.4 12 19 6.4z",plus:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z",minus:"M19 13H5v-2h14v2z",trash:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9zm7.5-5l-1-1h-5l-1 1H5v2h14V4h-3.5z",edit:"M3 17.3V21h3.8L17.8 9.9l-3.8-3.8L3 17.3zM20.7 7c.4-.4.4-1 0-1.4l-2.3-2.3c-.4-.4-1-.4-1.4 0l-1.8 1.8 3.8 3.8L20.7 7z",copy:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z",refresh:"M17.6 6.4A8 8 0 004.1 11H1l3.9 4 4-4H5.5a6 6 0 0110.8-3.2l1.3-1.4zM19 9l-4 4h3.5a6 6 0 01-10.8 3.2l-1.3 1.4A8 8 0 0019.9 13H23l-4-4z",expand:"M21 11V3h-8l3.3 3.3-5 5 1.4 1.4 5-5L21 11zM3 13v8h8l-3.3-3.3 5-5-1.4-1.4-5 5L3 13z",collapse:"M14 14h8l-3.3-3.3 3-3-1.4-1.4-3 3L14 6v8zM10 10H2l3.3 3.3-3 3 1.4 1.4 3-3L10 18v-8z",settings:"M19.1 12.9a7 7 0 000-1.8l2-1.6a.5.5 0 00.1-.6l-1.9-3.3a.5.5 0 00-.6-.2l-2.3.9a7 7 0 00-1.6-.9l-.4-2.5a.5.5 0 00-.5-.4h-3.8a.5.5 0 00-.5.4l-.4 2.5a7 7 0 00-1.6.9l-2.3-.9a.5.5 0 00-.6.2L3 9a.5.5 0 00.1.6l2 1.6a7 7 0 000 1.8l-2 1.6a.5.5 0 00-.1.6l1.9 3.3a.5.5 0 00.6.2l2.3-.9a7 7 0 001.6.9l.4 2.5a.5.5 0 00.5.4h3.8a.5.5 0 00.5-.4l.4-2.5a7 7 0 001.6-.9l2.3.9a.5.5 0 00.6-.2l1.9-3.3a.5.5 0 00-.1-.6l-2-1.6zM12 15.5a3.5 3.5 0 110-7 3.5 3.5 0 010 7z",pause:"M6 19h4V5H6v14zm8-14v14h4V5h-4z",play:"M8 5v14l11-7L8 5z",microphone:"M12 14c1.7 0 3-1.3 3-3V5c0-1.7-1.3-3-3-3S9 3.3 9 5v6c0 1.7 1.3 3 3 3zm5.3-3c0 3-2.5 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.4 2.7 6.2 6 6.7V21h2v-3.3c3.3-.5 6-3.3 6-6.7h-1.7z",send:"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z",attach:"M16.5 6v11.5c0 2.5-2 4.5-4.5 4.5s-4.5-2-4.5-4.5V5c0-1.7 1.3-3 3-3s3 1.3 3 3v10.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5V6H9v9.5c0 1.7 1.3 3 3 3s3-1.3 3-3V5c0-2.5-2-4.5-4.5-4.5S6 2.5 6 5v12.5c0 3.3 2.7 6 6 6s6-2.7 6-6V6h-1.5z",stop:"M6 6h12v12H6z",retry:"M17.6 6.4A8 8 0 004.1 11H1l3.9 4 4-4H5.5a6 6 0 0110.8-3.2l1.3-1.4zM19 9l-4 4h3.5a6 6 0 01-10.8 3.2l-1.3 1.4A8 8 0 0019.9 13H23l-4-4z",download:"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z",image:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z","audio-wave":"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.8-1-3.3-2.5-4v8c1.5-.7 2.5-2.2 2.5-4zM14 3.2v2.1c2.9.9 5 3.5 5 6.7s-2.1 5.8-5 6.7v2.1c4-.9 7-4.5 7-8.8s-3-7.9-7-8.8z",slash:"M10 4L4 20h2l6-16h-2zm4 0l6 16h-2L12 4h2z"};let c=class extends r{constructor(){super(...arguments),this.name="",this.size="1em",this.color="currentColor",this.label=""}render(){const h=L[this.name];return h?this.label?m`
2
- <svg
3
- width=${this.size}
4
- height=${this.size}
5
- viewBox="0 0 24 24"
6
- fill=${this.color}
7
- role="img"
8
- aria-label=${this.label}
9
- >
10
- <path d=${h} />
11
- </svg>
12
- `:m`
13
- <svg
14
- width=${this.size}
15
- height=${this.size}
16
- viewBox="0 0 24 24"
17
- fill=${this.color}
18
- aria-hidden="true"
19
- >
20
- <path d=${h} />
21
- </svg>
22
- `:m``}};c.styles=[i,H`
23
- :host {
24
- display: inline-flex;
25
- align-items: center;
26
- justify-content: center;
27
- line-height: 0;
28
- }
29
-
30
- svg {
31
- display: block;
32
- }
33
- `];z([a()],c.prototype,"name",2);z([a()],c.prototype,"size",2);z([a()],c.prototype,"color",2);z([a()],c.prototype,"label",2);c=z([V("ic-icon")],c);
@@ -1,12 +0,0 @@
1
- import{s as m,i as h,n as u,a as f,b as c,t as p}from"./index-CEcM1R_C.js";var d=Object.defineProperty,v=Object.getOwnPropertyDescriptor,o=(r,i,s,e)=>{for(var t=e>1?void 0:e?v(i,s):i,n=r.length-1,a;n>=0;n--)(a=r[n])&&(t=(e?a(i,s,t):a(t))||t);return e&&t&&d(i,s,t),t};function _(r,i){if(r<=0)return"";const s=i-r;if(s<0)return"just now";const e=Math.floor(s/1e3);if(e<60)return"just now";const t=Math.floor(e/60);if(t<60)return`${t}m ago`;const n=Math.floor(t/60);if(n<24)return`${n}h ago`;const a=Math.floor(n/24);return a<30?`${a}d ago`:new Date(r).toISOString().slice(0,10)}let l=class extends f{constructor(){super(...arguments),this.timestamp=0,this.updateInterval=6e4,this._intervalId=null}connectedCallback(){super.connectedCallback(),this._startTimer()}disconnectedCallback(){super.disconnectedCallback(),this._clearTimer()}_startTimer(){this._clearTimer(),this._intervalId=setInterval(()=>{this.requestUpdate()},this.updateInterval)}_clearTimer(){this._intervalId!==null&&(clearInterval(this._intervalId),this._intervalId=null)}render(){if(this.timestamp<=0)return c``;const r=Date.now(),i=new Date(this.timestamp).toISOString(),s=new Date(this.timestamp).toLocaleString(),e=_(this.timestamp,r);return c`
2
- <time datetime=${i} title=${s}>${e}</time>
3
- `}};l.styles=[m,h`
4
- :host {
5
- display: inline-block;
6
- }
7
-
8
- time {
9
- color: var(--ic-text-muted);
10
- font-size: var(--ic-text-xs);
11
- }
12
- `];o([u({type:Number})],l.prototype,"timestamp",2);o([u({type:Number})],l.prototype,"updateInterval",2);l=o([p("ic-relative-time")],l);