ompchamber 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/dist/client/index.html +1 -1
  2. package/dist/client/static/css/index.b938f4a693.css +2 -0
  3. package/dist/client/static/js/77.8022a800b5.js +139 -0
  4. package/dist/client/static/js/async/{1k.5974df3b87.js → 1k.a411fe5b43.js} +2 -2
  5. package/dist/client/static/js/async/{3y.71f2ccf3b6.js → 3y.3186ecdd63.js} +5 -5
  6. package/dist/client/static/js/async/5b.d88304bc13.js +1 -0
  7. package/dist/client/static/js/async/66.86544ad741.js +93 -0
  8. package/dist/client/static/js/async/7g.db82aca7ba.js +1 -0
  9. package/dist/client/static/js/async/7l.fadbbc0583.js +1 -0
  10. package/dist/client/static/js/async/{dc.856fda6560.js → ar.ad5c8822a8.js} +2 -2
  11. package/dist/client/static/js/async/cx.9c8268d542.js +226 -0
  12. package/dist/client/static/js/async/e.6443e739a2.js +79 -0
  13. package/dist/client/static/js/async/f7.46971e9d6d.js +2 -0
  14. package/dist/client/static/js/async/g.ee41bfed7f.js +2 -0
  15. package/dist/client/static/js/async/h1.d7091cef78.js +1 -0
  16. package/dist/client/static/js/async/hs.e7c59d8090.js +41 -0
  17. package/dist/client/static/js/async/jl.4911fa3383.js +1 -0
  18. package/dist/client/static/js/async/{k.7466330d1a.js → k.d16cd09ae7.js} +2 -2
  19. package/dist/client/static/js/async/{m.c038c71b9f.js → m.2e1ea3db9e.js} +2 -2
  20. package/dist/client/static/js/async/m3.d2b05f9604.js +2 -0
  21. package/dist/client/static/js/async/mt.853be2b5aa.js +1 -0
  22. package/dist/client/static/js/async/{oc.9c060c9779.js → oc.eb22093f05.js} +1 -1
  23. package/dist/client/static/js/async/{og.634fba99ac.js → og.53f068804c.js} +1 -1
  24. package/dist/client/static/js/async/{5b.a5ccbc19dc.js → q.b453193538.js} +10 -10
  25. package/dist/client/static/js/async/q5.88b50ffa95.js +286 -0
  26. package/dist/client/static/js/async/q8.7f1b48e9cd.js +21 -0
  27. package/dist/client/static/js/async/{sy.d16be843a7.js → s.aad2ecebc6.js} +1 -1
  28. package/dist/client/static/js/async/{tr.e878658140.js → tr.2a0d2b7600.js} +1 -1
  29. package/dist/client/static/js/async/vt.20406a5604.js +1 -0
  30. package/dist/client/static/js/async/x1.fe8af17016.js +90 -0
  31. package/dist/client/static/js/async/yg.5a94e1fc8a.js +149 -0
  32. package/dist/client/static/js/async/yx.af2936c368.js +10 -0
  33. package/dist/client/static/js/index.57b39ffa7f.js +34 -0
  34. package/package.json +1 -1
  35. package/src/client/components/common/file-icon/index.tsx +4 -1
  36. package/src/client/components/common/image-viewer/index.tsx +224 -0
  37. package/src/client/components/mobile/mobile-right-sidebar/FullEditor.tsx +57 -43
  38. package/src/client/components/mobile/mobile-right-sidebar/Header.tsx +31 -24
  39. package/src/client/components/settings/Modal.tsx +1 -0
  40. package/src/client/components/settings/categories/ChatSettings.tsx +6 -2
  41. package/src/client/components/settings/categories/chat-settings/TitleSection.tsx +99 -0
  42. package/src/client/components/workspace/btw-panel/AskCard.tsx +155 -0
  43. package/src/client/components/workspace/btw-panel/Composer.tsx +181 -0
  44. package/src/client/components/workspace/btw-panel/Messages.tsx +100 -0
  45. package/src/client/components/workspace/btw-panel/TopicMenu.tsx +106 -0
  46. package/src/client/components/workspace/btw-panel/attachments.ts +80 -0
  47. package/src/client/components/workspace/btw-panel/index.tsx +83 -0
  48. package/src/client/components/workspace/chat-timeline/ComposerDock.tsx +37 -21
  49. package/src/client/components/workspace/chat-timeline/MinimapShortcuts.tsx +49 -12
  50. package/src/client/components/workspace/chat-timeline/TimelineBody.tsx +10 -6
  51. package/src/client/components/workspace/chat-timeline/chat-input/AttachmentToolbar.tsx +2 -1
  52. package/src/client/components/workspace/chat-timeline/chat-input/DropOverlay.tsx +17 -0
  53. package/src/client/components/workspace/chat-timeline/chat-input/index.tsx +44 -40
  54. package/src/client/components/workspace/chat-timeline/index.tsx +11 -9
  55. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Read.tsx +25 -7
  56. package/src/client/components/workspace/editor/Toolbar.tsx +32 -23
  57. package/src/client/components/workspace/editor/index.tsx +45 -36
  58. package/src/client/hooks/chat/btw/index.ts +180 -0
  59. package/src/client/hooks/chat/btw/intercept.ts +43 -0
  60. package/src/client/hooks/chat/btw/mode.ts +179 -0
  61. package/src/client/hooks/chat/composer/attachments.ts +198 -0
  62. package/src/client/hooks/chat/composer/drop-entries.ts +204 -0
  63. package/src/client/hooks/chat/composer/drop-payload.test.ts +97 -0
  64. package/src/client/hooks/chat/composer/drop-payload.ts +130 -0
  65. package/src/client/hooks/chat/composer/drop-references.ts +106 -0
  66. package/src/client/hooks/chat/composer/file-drop.test.ts +194 -0
  67. package/src/client/hooks/chat/composer/file-drop.ts +226 -0
  68. package/src/client/hooks/chat/composer/file-reads.test.ts +211 -0
  69. package/src/client/hooks/chat/composer/file-reads.ts +238 -0
  70. package/src/client/hooks/chat/composer/index.ts +7 -1
  71. package/src/client/hooks/chat/composer/pipeline.ts +181 -0
  72. package/src/client/hooks/chat/omp/index.ts +3 -3
  73. package/src/client/hooks/chat/omp/prompt-send.ts +5 -5
  74. package/src/client/hooks/chat/timeline/actions.ts +16 -1
  75. package/src/client/hooks/chat/timeline/index.ts +16 -8
  76. package/src/client/hooks/chat/timeline/prompt-text.ts +6 -1
  77. package/src/client/hooks/chat/timeline/send.ts +29 -65
  78. package/src/client/hooks/chat/timeline/session-load.ts +2 -1
  79. package/src/client/hooks/chat/timeline/session-pagination.ts +161 -14
  80. package/src/client/hooks/chat/timeline/user-turns.ts +149 -0
  81. package/src/client/hooks/editor/file-actions.ts +49 -0
  82. package/src/client/hooks/editor/use-file-editor.ts +38 -27
  83. package/src/client/hooks/editor/use-file-transfer.ts +78 -0
  84. package/src/client/tailwind.css +22 -0
  85. package/src/server/db.server.ts +21 -287
  86. package/src/server/lib/btw/frames.test.ts +68 -0
  87. package/src/server/lib/btw/frames.ts +56 -0
  88. package/src/server/lib/btw/prompt.ts +28 -0
  89. package/src/server/lib/btw/registry.server.ts +141 -0
  90. package/src/server/lib/btw/runtime.server.ts +324 -0
  91. package/src/server/lib/btw/schema.server.ts +44 -0
  92. package/src/server/lib/btw/service.server.ts +171 -0
  93. package/src/server/lib/btw/session-copy.server.ts +213 -0
  94. package/src/server/lib/btw/session-copy.test.ts +166 -0
  95. package/src/server/lib/btw/store.server.ts +240 -0
  96. package/src/server/lib/db/schema.ts +110 -0
  97. package/src/server/lib/db/seed.ts +160 -0
  98. package/src/server/lib/db/workspace-sync.ts +70 -0
  99. package/src/server/lib/fs/root.ts +37 -0
  100. package/src/server/lib/omp/rpc/frame-fold.ts +207 -0
  101. package/src/server/lib/omp/rpc/manager.ts +27 -123
  102. package/src/server/lib/omp/session/auto-title.server.test.ts +137 -0
  103. package/src/server/lib/omp/session/auto-title.server.ts +152 -0
  104. package/src/server/lib/omp/session/blobs.server.test.ts +100 -0
  105. package/src/server/lib/omp/session/blobs.server.ts +76 -0
  106. package/src/server/lib/omp/session/file-scan.ts +174 -0
  107. package/src/server/lib/omp/session/files.test.ts +147 -0
  108. package/src/server/lib/omp/session/files.ts +52 -35
  109. package/src/server/lib/omp/session/locator.ts +2 -2
  110. package/src/server/lib/omp/session/merge-stored.test.ts +118 -0
  111. package/src/server/lib/omp/session/merge-stored.ts +171 -0
  112. package/src/server/lib/omp/session/messages.ts +34 -0
  113. package/src/server/lib/omp/session/reader.ts +2 -2
  114. package/src/server/lib/omp/session/subagent-presence.ts +9 -6
  115. package/src/server/lib/queue/delivery.server.test.ts +57 -0
  116. package/src/server/lib/queue/delivery.server.ts +25 -3
  117. package/src/server/plugins/ssr.ts +29 -2
  118. package/src/server/routes/btw/events.ts +70 -0
  119. package/src/server/routes/btw/index.ts +8 -0
  120. package/src/server/routes/btw/topics.ts +87 -0
  121. package/src/server/routes/btw/ws.ts +136 -0
  122. package/src/server/routes/chat/index.ts +2 -0
  123. package/src/server/routes/chat/session.ts +1 -115
  124. package/src/server/routes/chat/turns.ts +87 -0
  125. package/src/server/routes/fs/index.ts +4 -1
  126. package/src/server/routes/fs/raw.ts +85 -0
  127. package/src/server/routes/fs/read.ts +58 -3
  128. package/src/server/routes/index.ts +7 -1
  129. package/src/shared/lib/chat/attachments.test.ts +208 -0
  130. package/src/shared/lib/chat/attachments.ts +200 -15
  131. package/src/shared/lib/chat/btw/client.ts +94 -0
  132. package/src/shared/lib/chat/composer/client.test.ts +48 -0
  133. package/src/shared/lib/chat/composer/client.ts +6 -1
  134. package/src/shared/lib/chat/composer/composer.test.ts +39 -1
  135. package/src/shared/lib/chat/composer/trigger.ts +45 -1
  136. package/src/shared/lib/chat/omp/agent-events.ts +33 -80
  137. package/src/shared/lib/chat/omp/socket.ts +11 -6
  138. package/src/shared/lib/chat/omp/sse.ts +11 -6
  139. package/src/shared/lib/chat/omp/tool-results.ts +102 -0
  140. package/src/shared/lib/chat/omp/transport.ts +19 -3
  141. package/src/shared/lib/chat/text-file.ts +148 -0
  142. package/src/shared/lib/chat/timeline/omp-callbacks.ts +18 -32
  143. package/src/shared/lib/chat/timeline/stream-coalescer.ts +66 -0
  144. package/src/shared/lib/chat/timeline/turns.ts +7 -0
  145. package/src/shared/lib/fs/file-kind.ts +50 -0
  146. package/src/shared/lib/fs/paths.ts +19 -1
  147. package/src/shared/lib/markdown/math.test.ts +20 -3
  148. package/src/shared/lib/omp/session/inlined-attachments.test.ts +82 -0
  149. package/src/shared/lib/omp/session/mapper.ts +24 -4
  150. package/src/shared/lib/omp/session/messages-map.ts +16 -3
  151. package/src/shared/lib/omp/session/messages-parse.ts +2 -2
  152. package/src/shared/lib/omp/session/parse-message-blocks.ts +85 -5
  153. package/src/shared/types/btw.ts +65 -0
  154. package/src/shared/types/chat.ts +39 -1
  155. package/src/shared/types/index.ts +1 -0
  156. package/src/shared/types/omp/agent.ts +14 -1
  157. package/src/shared/types/omp/session.ts +4 -1
  158. package/src/shared/types/settings/state.ts +5 -0
  159. package/dist/client/static/css/index.b859cc1cc5.css +0 -2
  160. package/dist/client/static/js/async/5bh.8b2363424f.js +0 -1
  161. package/dist/client/static/js/async/66.5dfa29f957.js +0 -93
  162. package/dist/client/static/js/async/7g.a7814350c3.js +0 -1
  163. package/dist/client/static/js/async/7l.7a6a377ecc.js +0 -1
  164. package/dist/client/static/js/async/cx.ca5feec570.js +0 -226
  165. package/dist/client/static/js/async/e.93214d622b.js +0 -79
  166. package/dist/client/static/js/async/g.a06ca3b3e9.js +0 -2
  167. package/dist/client/static/js/async/h1.e8d5aa8e80.js +0 -1
  168. package/dist/client/static/js/async/hs.6d480d0ded.js +0 -41
  169. package/dist/client/static/js/async/jl.874d352278.js +0 -1
  170. package/dist/client/static/js/async/mt.0352e976d8.js +0 -1
  171. package/dist/client/static/js/async/nam.b5663e919f.js +0 -10
  172. package/dist/client/static/js/async/q.23af2a358f.js +0 -21
  173. package/dist/client/static/js/async/q5.e683f7c26e.js +0 -286
  174. package/dist/client/static/js/async/s.222ee974f6.js +0 -2
  175. package/dist/client/static/js/async/uf.46ad6209fa.js +0 -2
  176. package/dist/client/static/js/async/vt.42416b707d.js +0 -1
  177. package/dist/client/static/js/async/x1.da8687159b.js +0 -90
  178. package/dist/client/static/js/async/yg.35bebd6d0c.js +0 -149
  179. package/dist/client/static/js/index.6e065017eb.js +0 -33
  180. package/dist/client/static/js/jp.50817896f3.js +0 -139
  181. /package/dist/client/static/js/{jp.50817896f3.js.LICENSE.txt → 77.8022a800b5.js.LICENSE.txt} +0 -0
  182. /package/dist/client/static/js/async/{1k.5974df3b87.js.LICENSE.txt → 1k.a411fe5b43.js.LICENSE.txt} +0 -0
  183. /package/dist/client/static/js/async/{3y.71f2ccf3b6.js.LICENSE.txt → 3y.3186ecdd63.js.LICENSE.txt} +0 -0
  184. /package/dist/client/static/js/async/{dc.856fda6560.js.LICENSE.txt → ar.ad5c8822a8.js.LICENSE.txt} +0 -0
  185. /package/dist/client/static/js/async/{m.c038c71b9f.js.LICENSE.txt → f7.46971e9d6d.js.LICENSE.txt} +0 -0
  186. /package/dist/client/static/js/async/{5b.a5ccbc19dc.js.LICENSE.txt → g.ee41bfed7f.js.LICENSE.txt} +0 -0
  187. /package/dist/client/static/js/async/{q.23af2a358f.js.LICENSE.txt → m.2e1ea3db9e.js.LICENSE.txt} +0 -0
  188. /package/dist/client/static/js/async/{s.222ee974f6.js.LICENSE.txt → m3.d2b05f9604.js.LICENSE.txt} +0 -0
  189. /package/dist/client/static/js/async/{g.a06ca3b3e9.js.LICENSE.txt → q.b453193538.js.LICENSE.txt} +0 -0
  190. /package/dist/client/static/js/async/{uf.46ad6209fa.js.LICENSE.txt → q8.7f1b48e9cd.js.LICENSE.txt} +0 -0
  191. /package/dist/client/static/js/async/{nam.b5663e919f.js.LICENSE.txt → yx.af2936c368.js.LICENSE.txt} +0 -0
  192. /package/dist/client/static/js/{index.6e065017eb.js.LICENSE.txt → index.57b39ffa7f.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
1
+ /*! LICENSE: m3.d2b05f9604.js.LICENSE.txt */
2
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["m3"],{ky(e,t,r){r.d(t,{BrowserPanel:()=>$});var n=r("j"),a=r("H"),l=r("Wb0"),i=r("Oj"),o=r("bu");let s={live:"Live","agent-offline":"Agent offline","browser-offline":"Browser offline","no-tab":"Tanpa tab"};function d(e){let{url:t,status:r,viewportMode:a,zoomLevel:d=100,onIncludeInChat:c,onReconnect:u,onOpenExternal:m,onChangeViewport:p,onZoomIn:b,onZoomOut:h,onResetZoom:f,onSetZoom:v}=e;return(0,n.Y)(o.K,{url:t??"",statusDotClass:"live"===r?"bg-success animate-pulse":"bg-ink/25",statusLabel:s[r],viewportMode:a,zoomLevel:d,onChangeViewport:p,onZoomIn:b,onZoomOut:h,onResetZoom:f,onSetZoom:v,onIncludeInChat:c,onOpenExternal:m,openExternalLabel:"Buka di jendela baru",openExternalTitle:t?"Open in new window":"No URL loaded",trailingControls:(0,n.Y)("button",{type:"button",onClick:u,"aria-label":"Sambungkan ulang live view",title:"Reconnect live view",className:o.B,children:(0,n.Y)(l.A,{size:14})}),children:(0,n.FD)("div",{className:"flex-1 min-w-0 flex items-center bg-canvas border border-ink/15 rounded-md px-2 py-0.5",children:[(0,n.Y)(i.A,{size:12,className:"text-ink/40 mr-1.5 flex-shrink-0"}),(0,n.Y)("span",{className:"w-full truncate text-ink/80 font-mono text-[11px]",title:t??"",children:t||"Agent belum membuka halaman"})]})})}var c=r("t"),u=r("zH"),m=r("m"),p=r("y");let b=(0,p.A)({name:"mouse-pointer-click",size:24,node:[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]});var h=r("zr"),f=r("DTR"),v=r("YL"),x=r("Sjr"),k=r("bt");let g=(0,p.A)({name:"move-vertical",size:24,node:[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m8 18 4 4 4-4",key:"bh5tu3"}],["path",{d:"m8 6 4-4 4 4",key:"ybng9g"}]]});var w=r("ke"),y=r("rr");let A={open:i.A,navigate:i.A,loaded:m.A,click:b,type:h.A,press:f.A,submit:v.A,wait:x.A,screenshot:k.A,scroll:g,upload:w.A,close:y.A,error:y.A};function z(e){let{actions:t}=e;return 0===t.length?null:(0,n.Y)("div",{className:"absolute bottom-3 left-3 z-20 flex flex-col gap-1.5 pointer-events-none max-w-[320px]",children:t.map(e=>{let t=A[e.kind],r="error"===e.kind;return(0,n.FD)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1.5 text-[11px] shadow-sm backdrop-blur-sm ${r?"border-error/30 bg-error/10 text-error":"border-ink/15 bg-paper/95 text-ink"}`,children:[(0,n.Y)(t,{size:12,className:`flex-shrink-0 ${r?"text-error":"text-ink/60"}`}),(0,n.Y)("span",{className:"truncate",children:e.label})]},e.id)})})}var N=r("nTz");let Y={"agent-offline":{title:"Agent belum berjalan",body:"Aktifkan sesi ini agar browser bisa dikendalikan agent."},"browser-offline":{title:"Belum ada browser aktif",body:"Minta agent membuka sebuah halaman; tampilan live akan muncul di sini."},"no-tab":{title:"Browser aktif, belum ada tab",body:"Sesi ini belum membuka tab di browser bersama."}};function I(e){let{status:t,url:r,tabs:a,targetId:l,frameSrc:o,actions:s,onSelectTarget:d,viewportMode:m,zoomLevel:p}=e,b="live"===t,h=b?null:Y[t];return(0,n.FD)("div",{className:"flex-1 flex flex-col min-h-0 bg-canvas/60 relative overflow-hidden",children:[(0,n.Y)(z,{actions:s}),b&&a.length>1&&(0,n.Y)("div",{className:"px-2 py-1 border-b border-ink/10 bg-paper flex items-center gap-1 overflow-x-auto flex-shrink-0",children:a.map(e=>{let t=e.targetId===l;return(0,n.Y)("button",{type:"button",onClick:()=>d(t?"":e.targetId),className:`px-2 py-0.5 rounded text-[11px] font-mono max-w-[220px] truncate border transition-colors cursor-pointer ${t?"bg-ink text-canvas border-ink":"bg-paper text-ink/70 border-ink/15 hover:border-ink/35 hover:text-ink"}`,title:e.url||e.title||e.targetId,children:e.title||e.url||e.targetId},e.targetId)})}),(0,n.Y)("div",{className:"flex-1 flex items-center justify-center p-2 min-h-0 overflow-auto",children:b?(0,n.Y)("div",{className:`relative flex flex-col bg-paper ${N.I[m]} transition-all duration-200`,style:{zoom:100!==p?`${p}%`:void 0,transformOrigin:"top center"},children:o?(0,n.Y)("img",{src:o,alt:r||"Live browser view",className:"w-full h-full object-contain bg-paper",draggable:!1}):(0,n.FD)("div",{className:"w-full h-full flex flex-col items-center justify-center text-center p-6 select-none",children:[(0,n.Y)(c.A,{size:20,className:"animate-spin text-ink/40 mb-2"}),(0,n.Y)("p",{className:"text-xs text-ink/60",children:"Menunggu frame pertama dari browser…"})]})}):(0,n.FD)("div",{className:"flex-1 flex flex-col items-center justify-center p-6 text-center select-none my-auto",children:[(0,n.Y)("div",{className:"w-12 h-12 rounded-xl bg-ink/5 border border-ink/10 flex items-center justify-center text-ink/40 mb-3",children:"agent-offline"===t?(0,n.Y)(u.A,{size:24}):(0,n.Y)(i.A,{size:24})}),(0,n.Y)("h3",{className:"text-sm font-semibold text-ink mb-1",children:h?.title}),(0,n.Y)("p",{className:"text-xs text-ink/60 max-w-sm",children:h?.body})]})})]})}var M=r("As");let L={status:"agent-offline",tabs:[]};var S=r("FL"),C=r("Fb");function $(e){let{className:t="",active:r=!0}=e,[l,i]=(0,S.bL)("browser.viewportMode","responsive"),[o,s]=(0,S.bL)("browser.zoomLevel",100),{status:c,url:u,title:m,tabs:p,targetId:b,frameSrc:h,actions:f,selectTarget:v,reconnect:x}=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],{sessionId:t,ready:r}=(0,M.O)(),[n,l]=(0,a.J0)(L),[i,o]=(0,a.J0)(void 0),[s,d]=(0,a.J0)([]),[c,u]=(0,a.J0)(""),[m,p]=(0,a.J0)(0),b=(0,a.li)(null),h=(0,a.li)(null),f=(0,a.li)(void 0),v=(0,a.li)(0),x=(0,a.li)([]),k=(0,a.hb)(e=>{u(e.trim())},[]),g=(0,a.hb)(()=>{p(e=>e+1)},[]);return(0,a.vJ)(()=>{let e=setInterval(()=>{d(e=>{let t=Date.now(),r=e.filter(e=>e.expiresAt>t),n=x.current.shift();return n?[...r.slice(-2),{...n,expiresAt:t+4e3}]:r.length===e.length?e:r})},500);return()=>clearInterval(e)},[]),(0,a.vJ)(()=>{l(L),o(void 0),u(""),x.current=[],d([])},[t]),(0,a.vJ)(()=>{if(!r||!t||!e)return;let n=!1,a=()=>{if(n)return;let e=c?`?target=${encodeURIComponent(c)}`:"",r=new EventSource(`/api/browser/${encodeURIComponent(t)}/stream${e}`);b.current=r,r.addEventListener("open",()=>{v.current=0}),r.addEventListener("state",e=>{try{let t=JSON.parse(e.data);t.targetId!==f.current&&o(void 0),f.current=t.targetId,l(t),"live"!==t.status&&o(void 0)}catch{}}),r.addEventListener("frame",e=>{try{let t=JSON.parse(e.data),r=f.current;if(r&&t.targetId&&t.targetId!==r)return;o(`data:${t.mimeType};base64,${t.data}`)}catch{}}),r.addEventListener("action",e=>{try{let t=JSON.parse(e.data);if("string"!=typeof t?.label||!t.label)return;x.current.push(t),x.current.length>16&&x.current.splice(0,x.current.length-16)}catch{}}),r.addEventListener("error",()=>{r.readyState===EventSource.CLOSED&&i()})},i=()=>{if(n||h.current)return;let e=Math.min(v.current+1,5);v.current=e,h.current=setTimeout(()=>{h.current=null,b.current?.close(),b.current=null,a()},Math.min(1e3*e,5e3))};return a(),()=>{n=!0,h.current&&(clearTimeout(h.current),h.current=null),b.current?.close(),b.current=null}},[r,t,c,m,e]),{status:n.status,url:n.url,title:n.title,tabs:n.tabs,targetId:n.targetId,frameSrc:i,actions:s,selectTarget:k,reconnect:g}}(r),k=(0,a.hb)(()=>{u&&(0,C.q)({url:u,title:m})},[u,m]);return(0,n.FD)("div",{className:`flex flex-col h-full w-full bg-paper text-ink overflow-hidden select-none ${t}`,children:[(0,n.Y)(d,{url:u,status:c,viewportMode:l,zoomLevel:o,onIncludeInChat:k,onReconnect:x,onOpenExternal:()=>{if(!u)return;let e=u.startsWith("/")&&"u">typeof window?`${window.location.origin}${u}`:u;window.open(e,"_blank","noopener,noreferrer")},onChangeViewport:i,onZoomIn:()=>s(e=>Math.min(200,e+10)),onZoomOut:()=>s(e=>Math.max(50,e-10)),onResetZoom:()=>s(100),onSetZoom:s}),(0,n.Y)(I,{status:c,url:u,tabs:p,targetId:b,frameSrc:h,actions:f,onSelectTarget:v,viewportMode:l,zoomLevel:o})]})}},Wb0(e,t,r){let n=(0,r("y").A)({name:"rotate-cw",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]});r.d(t,{},{A:n})},zr(e,t,r){let n=(0,r("y").A)({name:"type",size:24,node:[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]]});r.d(t,{},{A:n})},ke(e,t,r){let n=(0,r("y").A)({name:"upload",size:24,node:[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]});r.d(t,{},{A:n})}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["mt"],{Ag(e,t,n){var r=n("ix"),a=n("LC"),i=n("bQ1"),d=n("Ut"),o=n("NH"),l=n("Yr"),s=n("M4"),g=n("Gt"),c=n("v2");function u(e,{edgePathsClass:t="edges edgePaths"}={}){let n=e.insert("g").attr("class","root"),r=n.insert("g").attr("class","clusters");return{clusters:r,edgePaths:n.insert("g").attr("class",t),edgeLabels:n.insert("g").attr("class","edgeLabels"),nodes:n.insert("g").attr("class","nodes"),rootGroups:n}}async function f(e,t,n){if(t.label){let{shapeSvg:r,bbox:a}=await (0,d.Zk)(e,void 0===n?t:{...t,width:n});t.labelBBox={width:a.width,height:a.height},r.remove()}else t.labelBBox={width:0,height:0}}async function h(e,t,n){let r=await (0,i.on)(e,t,n),a=r.node()?.getBBox()??{width:0,height:0};return t.width=a.width,t.height=a.height,r}function p(e,t,n){let r=e,a=new Set;for(;r;){if(r.dir)return r.dir;if(!r.parentId||a.has(r.parentId))break;a.add(r.parentId),r=t.get(r.parentId)}return n}async function w(e,t,r={}){let i=new c.T({multigraph:!0,compound:!0}),d=[...t.edges],o=(0,l.D7)(),s=u(e),{edgeLabels:g,nodes:b}=s,m=new Map,R=new Map(t.nodes.map(e=>[e.id,e])),y=t.direction,v=null!=e.node();for(let e of(await Promise.all(t.nodes.map(async e=>{if(e.isGroup){if(v){let t=r.unwrapGroupLabels&&"markdown"!==e.labelType;await f(b,e,t?1/0:void 0)}i.setNode(e.id,{...e})}else{if(v){let t=await h(b,e,{config:o,dir:p(e,R,y)});m.set(e.id,t)}i.setNode(e.id,{...e})}})),d))v&&(0,a.a6)(e)&&await (0,a.jP)(g,e),i.setEdge(e.start,e.end,{...e},e.id),t.edges.some(t=>t.id===e.id)||t.edges.push(e);if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:r}=await n.e("0k").then(n.bind(n,"GE"));r(e,t)}return{graph:i,groups:s,nodeElements:m}}(0,g.K)(u,"createLayoutElementGroups"),(0,g.K)(f,"measureGroupLabel"),(0,g.K)(h,"insertMeasuredNode"),(0,g.K)(p,"resolveNodeDir"),(0,g.K)(w,"createGraphWithElements");var b=new Map,m=new Map,R=new Map,y=(0,g.K)(()=>{m.clear(),R.clear(),b.clear()},"clear"),v=(0,g.K)((e,t)=>{let n=m.get(t)||[];return s.R.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),x=(0,g.K)((e,t)=>{let n=m.get(t)||[];return s.R.info("Descendants of ",t," is ",n),s.R.info("Edge is ",e),e.v!==t&&e.w!==t&&(n?n.includes(e.v)||v(e.v,t)||v(e.w,t)||n.includes(e.w):(s.R.debug("Tilt, ",t,",not in descendants"),!1))},"edgeInCluster"),K=(0,g.K)((e,t,n,r)=>{s.R.debug("Copying children of ",e,"root",r,"data",t.node(e),r);let a=t.children(e)||[];e!==r&&a.push(e),s.R.debug("Copying (nodes) clusterId",e,"nodes",a),a.forEach(a=>{if(t.children(a).length>0)K(a,t,n,r);else{let i=t.node(a);s.R.info("cp ",a," to ",r," with parent ",e),n.setNode(a,i),r!==t.parent(a)&&(s.R.debug("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==r&&a!==e?(s.R.debug("Setting parent",a,e),n.setParent(a,e)):(s.R.info("In copy ",e,"root",r,"data",t.node(e),r),s.R.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));let d=t.edges(a);s.R.debug("Copying Edges",d),d.forEach(a=>{s.R.info("Edge",a);let i=t.edge(a.v,a.w,a.name);s.R.info("Edge data",i,r);try{x(a,r)?(s.R.info("Copying as ",a.v,a.w,i,a.name),n.setEdge(a.v,a.w,i,a.name),s.R.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):s.R.info("Skipping copy of edge ",a.v,"--\x3e",a.w," rootId: ",r," clusterId:",e)}catch(e){s.R.error(e)}})}s.R.debug("Removing node",a),t.removeNode(a)})},"copy"),C=(0,g.K)((e,t)=>{let n=t.children(e),r=[...n];for(let a of n)R.set(a,e),r=[...r,...C(a,t)];return r},"extractDescendants"),E=(0,g.K)((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),a=e.edges().filter(e=>e.v===n||e.w===n),i=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),d=a.map(e=>({v:e.v,w:e.w}));return i.filter(e=>d.some(t=>e.v===t.v&&e.w===t.w))},"findCommonEdges"),L=(0,g.K)((e,t,n)=>{let r,a=t.children(e);if(s.R.trace("Searching children of id ",e,a),a.length<1)return e;for(let e of a){let a=L(e,t,n),i=E(t,n,a);if(a)if(!(i.length>0))return a;else r=a}return r},"findNonClusterChild"),N=(0,g.K)(e=>b.has(e)&&b.get(e).externalConnections&&b.has(e)?b.get(e).id:e,"getAnchorId"),k=(0,g.K)((e,t)=>{if(!e||t>10)return void s.R.debug("Opting out, no graph ");for(let t of(s.R.debug("Opting in, graph "),e.nodes().forEach(function(t){e.children(t).length>0&&(s.R.debug("Cluster identified",t," Replacement id in edges: ",L(t,e,t)),m.set(t,C(t,e)),b.set(t,{id:L(t,e,t),clusterData:e.node(t)}))}),e.nodes().forEach(function(t){let n=e.children(t),r=e.edges();n.length>0?(s.R.debug("Cluster identified",t,m),r.forEach(e=>{v(e.v,t)^v(e.w,t)&&(s.R.debug("Edge: ",e," leaves cluster ",t),s.R.debug("Descendants of XXX ",t,": ",m.get(t)),b.get(t).externalConnections=!0)})):s.R.debug("Not a cluster ",t,m)}),b.keys())){let n=b.get(t).id,r=e.parent(n);r!==t&&b.has(r)&&!b.get(r).externalConnections&&(b.get(t).id=r);let a=e.edges().some(e=>e.v===t);if(n&&b.get(t)?.externalConnections&&a&&S(e,n,t)){let r=T(e,t,e.parent(n));r&&(b.get(t).id=r)}}e.edges().forEach(function(t){let n=e.edge(t);s.R.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),s.R.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let r=t.v,a=t.w;if(s.R.debug("Fix XXX",b,"ids:",t.v,t.w,"Translating: ",b.get(t.v)," --- ",b.get(t.w)),b.get(t.v)||b.get(t.w)){if(s.R.debug("Fixing and trying - removing XXX",t.v,t.w,t.name),r=N(t.v),a=N(t.w),e.removeEdge(t.v,t.w,t.name),r!==t.v){let a=e.parent(r);b.get(a).externalConnections=!0,n.fromCluster=t.v}if(a!==t.w){let r=e.parent(a);b.get(r).externalConnections=!0,n.toCluster=t.w}s.R.debug("Fix Replacing with XXX",r,a,t.name),e.setEdge(r,a,n,t.name)}}),I(e,0),s.R.trace(b)},"adjustClustersAndEdges"),I=(0,g.K)((e,t)=>{if(t>10)return void s.R.error("Bailing out");let n=e.nodes(),r=!1;for(let t of n){let n=e.children(t);r=r||n.length>0}if(!r)return void s.R.debug("Done, no node has children",e.nodes());for(let r of(s.R.debug("Nodes = ",n,t),n))if(s.R.debug("Extracting node",r,b,b.has(r)&&!b.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),b.has(r))if(!b.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){s.R.debug("Cluster without external connections, without a parent and with children",r,t);let n="TB"===e.graph().rankdir?"LR":"TB";b.get(r)?.clusterData?.dir&&(n=b.get(r).clusterData.dir,s.R.debug("Fixing dir",b.get(r).clusterData.dir,n));let a=new c.T({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});K(r,e,a,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:b.get(r).clusterData,label:b.get(r).label,graph:a})}else s.R.debug("Cluster ** ",r," **not meeting the criteria !externalConnections:",!b.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),s.R.debug(b);else s.R.debug("Not a cluster",r,t);for(let r of(n=e.nodes(),s.R.debug("New list of nodes",n),n)){let n=e.node(r);s.R.debug(" Now next level",r,n),n?.clusterNode&&I(n.graph,t+1)}},"extractor"),D=(0,g.K)((e,t)=>{if(0===t.length)return[];let n=Object.assign([],t);return t.forEach(t=>{let r=e.children(t),a=D(e,r);n=[...n,...a]}),n},"sorter"),P=(0,g.K)(e=>D(e,e.children()),"sortNodesByHierarchy"),S=(0,g.K)((e,t,n)=>{let r=e.parent(t);for(;r&&r!==n;){let t=b.get(r);if(t&&!t.externalConnections)return!0;r=e.parent(r)}return!1},"isNodeInExtractableCluster"),T=(0,g.K)((e,t,n)=>{for(let r of e.children(t)??[]){if(r===n||v(r,n))continue;let a=L(r,e,t);if(a&&!S(e,a,t))return a}return null},"findSafeAnchorNode");function M({prepareLayout:e,measureLayout:t,runLayoutCore:n,paintLayout:r,afterPaint:i,paintOptions:d}){let o=t??B;return(0,g.K)(async function(t,l,s,g){let c=l.select("g");(s?.insertMarkers??a.g0)(c,t.markers,t.type,t.diagramId),X();let u={element:c,helpers:s,options:g};u.preparedLayout=await e?.(t,u);let f=await o(t,u),h=await n(t,u),p={...u,measure:f};r?await r(t,p,h):await U(t,p,d),await i?.(t,p,h)},"render")}function X(){(0,i.IU)(),(0,a.IU)(),(0,r.IU)(),y()}async function B(e,{element:t},n){return await w(t,e,n)}async function U(e,t,n={}){let{measure:r}=t,{groups:a}=r;for(let r of n.getNodes?.(e,t)??e.nodes)n.skipNode?.(r,t)||await _(a,r,t,n);let i=$(e.nodes);for(let r of e.edges)O(r,n)||await j(a,r,i,e,n,t)}async function _(e,t,n,a){t.clusterNode?(0,i.U_)(t):G(t,n,a)?await (0,r.U)(e.clusters,t):(0,i.U_)(t)}function G(e,t,n){return!0===e.isGroup&&(n.isCluster?.(e,t)??!0)}function $(e){let t=new Map;for(let n of e)n?.id&&t.set(n.id,n);return t}function O(e,t){return e.isLayoutOnly||!!t.skipEdge?.(e)}async function j(e,t,n,r,i,d){let o=(0,a.Jo)(e.edgePaths,{...t},i.clusterDb??new Map,r.type,Q(t.start,t,n,d,i),Q(t.end,t,n,d,i),r.diagramId,A(t,i));(0,a.a6)(t)&&(a.lP.has(t.id)||await (0,a.jP)(e.edgeLabels,t),F(t,o))}function Q(e,t,n,r,a){return a.getEdgeNode?.(e,t,r)??(e?n.get(e)??{}:{})}function A(e,t){return"function"==typeof t.skipIntersect?t.skipIntersect(e):t.skipIntersect??!1}function F(e,t){let n=t?.updatedPath??t?.originalPath,r=(0,l.zj)(),{subGraphTitleTotalMargin:d}=(0,i.Oi)({flowchart:r.flowchart??{}});if(e.label){let r=a.lP.get(e.id),i=e.x,l=e.y;if(n){let r=o._K.calcLabelPosition(n);s.R.debug("Moving label "+e.label+" from (",i,",",l,") to (",r.x,",",r.y,") abc88"),t?.updatedPath&&(i=r.x,l=r.y)}r.attr("transform",`translate(${i}, ${l+d/2})`)}if(e?.startLabelLeft){let t=a.UQ.get(e.id).startLeft,r=e?.x,i=e?.y;if(n){let t=o._K.calcTerminalLabelPosition(10*!!e.arrowTypeStart,"start_left",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}if(e.startLabelRight){let t=a.UQ.get(e.id).startRight,r=e.x,i=e.y;if(n){let t=o._K.calcTerminalLabelPosition(10*!!e.arrowTypeStart,"start_right",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}if(e.endLabelLeft){let t=a.UQ.get(e.id).endLeft,r=e.x,i=e.y;if(n){let t=o._K.calcTerminalLabelPosition(10*!!e.arrowTypeEnd,"end_left",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}if(e.endLabelRight){let t=a.UQ.get(e.id).endRight,r=e.x,i=e.y;if(n){let t=o._K.calcTerminalLabelPosition(10*!!e.arrowTypeEnd,"end_right",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}}(0,g.K)(M,"createCommonLayoutRenderer"),(0,g.K)(X,"clearLayoutRenderState"),(0,g.K)(B,"defaultMeasureLayout"),(0,g.K)(U,"paintLayoutData"),(0,g.K)(_,"paintLayoutNode"),(0,g.K)(G,"shouldPaintAsCluster"),(0,g.K)($,"buildNodeLookup"),(0,g.K)(O,"shouldSkipPaintEdge"),(0,g.K)(j,"paintLayoutEdge"),(0,g.K)(Q,"getRenderedNode"),(0,g.K)(A,"shouldSkipIntersect"),(0,g.K)(F,"positionRenderedEdgeLabel"),n.d(t,{B:()=>u,OS:()=>k,QV:()=>B,dc:()=>L,ju:()=>b,sc:()=>P,sv:()=>h,xY:()=>M})}}]);
@@ -1,4 +1,4 @@
1
- "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["oc"],{WK(r,t,e){var a=e("a6X");e("VV8"),e("OT"),e("WJ"),e("Wf"),e("mW"),e("Q"),e("v0"),e("ix"),e("LC"),e("bQ"),e("Ut"),e("PF"),e("iV"),e("h5"),e("pK"),e("NH"),e("Yr"),e("M4");var s=(0,e("Gt").K)(r=>`${(0,a.tM)(r)}
1
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["oc"],{WK(r,t,e){var a=e("a6");e("VV8"),e("OT"),e("WJ"),e("Wf"),e("mW"),e("Q"),e("v0"),e("ix"),e("LC"),e("bQ1"),e("Ut"),e("PF"),e("iV"),e("h5"),e("pK"),e("NH"),e("Yr"),e("M4");var s=(0,e("Gt").K)(r=>`${(0,a.tM)(r)}
2
2
  .swimlane.cluster:not([data-color-id]) rect {
3
3
  stroke: ${r.clusterBorder} !important;
4
4
  }
@@ -12,7 +12,7 @@
12
12
  stroke: revert;
13
13
  stroke-width: revert;
14
14
  }
15
- `,"getIconStyles");s.d(t,{o:()=>i})},v0(e,t,s){var i=s("Yr"),r=s("Gt"),a=s("tP"),n=s("El"),o=(0,r.K)((e,t)=>{let s=e.append("rect");if(s.attr("x",t.x),s.attr("y",t.y),s.attr("fill",t.fill),s.attr("stroke",t.stroke),s.attr("width",t.width),s.attr("height",t.height),t.name&&s.attr("name",t.name),t.rx&&s.attr("rx",t.rx),t.ry&&s.attr("ry",t.ry),void 0!==t.attrs)for(let e in t.attrs)s.attr(e,t.attrs[e]);return t.class&&s.attr("class",t.class),s},"drawRect"),l=(0,r.K)((e,t)=>{o(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"}).lower()},"drawBackgroundRect"),u=(0,r.K)((e,t)=>{let s=t.text.replace(i.H1," "),r=e.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class&&r.attr("class",t.class);let a=r.append("tspan");return a.attr("x",t.x+2*t.textMargin),a.text(s),r},"drawText"),d=(0,r.K)((e,t,s,i)=>{let r=e.append("image");r.attr("x",t),r.attr("y",s);let n=(0,a.J)(i);r.attr("xlink:href",n)},"drawImage"),h=(0,r.K)((e,t,s,i)=>{let r=e.append("use");r.attr("x",t),r.attr("y",s);let n=(0,a.J)(i);r.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),c=(0,r.K)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),p=(0,r.K)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),g=(0,r.K)(()=>{let e=(0,n.Ltv)(".mermaidTooltip");return e.empty()&&(e=(0,n.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),e},"createTooltip");s.d(t,{CP:()=>h,Ck:()=>g,HT:()=>p,PB:()=>c,aC:()=>d,lC:()=>l,m:()=>u,tk:()=>o})},WJ(e,t,s){var i=s("Yr"),r=s("M4"),a=s("Gt"),n=(0,a.K)((e,t,s,a)=>{e.attr("class",s);let{width:n,height:u,x:d,y:h}=o(e,t);(0,i.a$)(e,u,n,a);let c=l(d,h,n,u,t);e.attr("viewBox",c),r.R.debug(`viewBox configured: ${c} with padding: ${t}`)},"setupViewPortForSVG"),o=(0,a.K)((e,t)=>{let s=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*t,height:s.height+2*t,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),l=(0,a.K)((e,t,s,i,r)=>`${e-r} ${t-r} ${s} ${i}`,"createViewBox");s.d(t,{P:()=>n})},OT(e,t,s){var i=s("Gt"),r=s("El"),a=(0,i.K)((e,t)=>{let s;return"sandbox"===t&&(s=(0,r.Ltv)("#i"+e)),("sandbox"===t?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${e}"]`)},"getDiagramElement");s.d(t,{A:()=>a})},WU(e,t,s){var i=s("VV8"),r=s("OT"),a=s("WJ"),n=s("Wf"),o=s("mW");s("Q");var l=s("v0");s("ix"),s("LC"),s("bQ");var u=s("Ut");s("PF"),s("iV"),s("h5");var d=s("pK"),h=s("NH"),c=s("Yr"),p=s("M4"),g=s("Gt"),f=s("El"),m=s("L"),y=s("gj"),b=s("Cv"),A={SHAPE_UNSUPPORTED:"SHAPE_UNSUPPORTED",SHAPE_REMOVED:"SHAPE_REMOVED",EDGE_OPERATOR_UNSUPPORTED:"EDGE_OPERATOR_UNSUPPORTED",REFERENCE_EDGE_LABEL_REJECTED:"REFERENCE_EDGE_LABEL_REJECTED",CONNECTOR_REF_UNRESOLVED:"CONNECTOR_REF_UNRESOLVED",CONNECTOR_REF_NOT_A_CONNECTOR:"CONNECTOR_REF_NOT_A_CONNECTOR",METADATA_KEY_MISAPPLIED:"METADATA_KEY_MISAPPLIED",DUPLICATE_ID_NODE:"DUPLICATE_ID_NODE",RESERVED_SYNTHETIC_ID:"RESERVED_SYNTHETIC_ID",CONTAINMENT_VIOLATION:"CONTAINMENT_VIOLATION",EDGE_SEMANTIC_CONTRADICTION:"EDGE_SEMANTIC_CONTRADICTION",FLOW_NO_INPUT:"FLOW_NO_INPUT"},k=new Set([A.SHAPE_UNSUPPORTED,A.SHAPE_REMOVED,A.CONTAINMENT_VIOLATION]);new Set(Object.values(A).filter(e=>!k.has(e)));var E=new Map([["task","roundedRect"],["tool","subroutine"],["input","lean-right"],["decision","diamond"],["refdoc","lin-doc"],["action","hexagon"],["round","rect"]]),x=new Set(["doc","stadium","terminal","circle","trapezoid","inv_trapezoid","inv-trapezoid","doublecircle","double-circle","typeDeclaration","procs","lean_left","lean-left","in-out","cylinder","ellipse","odd","tag-rect","tagged-rectangle","delay","half-rounded-rectangle","lin-rect","lined-rectangle","win-pane","window-pane","curv-trap","curved-trapezoid"]),C=new Set(["roundedRect","subroutine","subprocess","subproc","framed-rectangle","lean-right","diamond","lin-doc","lined-document","hexagon","hex","connector","collapsedGroup"]),S="roundedRect";function T(e){return e?E.get(e)??e:e}function D(e,t){for(let s of e)if(!s.isGroup){if(s.shape&&"squareRect"!==s.shape&&"rect"!==s.shape||(s.shape=S),x.has(s.shape)){let e=`shape "${s.shape}" was removed in v0.8.1, using "${S}"`;t?.emitError?t.emitError("SHAPE_REMOVED",e,{nodeId:s.id}):p.R.warn(`agentflow: ${e}`),s.shape=S;continue}if(!C.has(s.shape)){let e=`shape "${s.shape}" is not supported, using "${S}"`;t?.emitWarning?t.emitWarning("SHAPE_UNSUPPORTED",e,{nodeId:s.id}):p.R.warn(`agentflow: ${e}`),s.shape=S}}}(0,g.K)(T,"resolveShapeAlias"),(0,g.K)(D,"normaliseNodeShapes");var _=new Map([["tool",0],["task",1],["decision",2],["input",3],["refdoc",4],["connector",5],["action",6]]),v=_.size,F=(0,g.K)(e=>`af-kind-${e}`,"kindClass"),$=[..._.keys()],L=(0,g.K)(e=>Math.max(1,e-v),"containerSlotCount"),B=(0,g.K)((e,t)=>{let s=v+e%L(t);return t>0?s%t:s},"containerSlot");function w(e,t,s){let i=(0,c.D7)().themeVariables?.borderColorArray,r=Array.isArray(i)?i.length:0,a=s.size;for(let i of e??[]){if(i.isGroup||"collapsedGroup"===i.shape){let e=s.get(String(i.id))??a++;i.colorIndex=B(e,r);continue}let e=t(String(i.id));e&&_.has(e)&&(i.cssClasses=`${i.cssClasses??""} ${F(e)}`.replace(/\s+/g," ").trim())}}(0,g.K)(w,"assignColorSlots");var I="agentflow-",M=new Set(["shape","view","icon","img","form","pos","w","h","class","style","labelType"]),N=new Set(["subroutine","subprocess","subproc","framed-rectangle","tool"]),R={flow:"flowGroup"};function O(e){if(Array.isArray(e))return e.map(e=>O(e));if(null===e||"object"!=typeof e)return e;let t={};for(let s of Object.keys(e))"__proto__"!==s&&"constructor"!==s&&"prototype"!==s&&(t[s]=O(e[s]));return t}function V(e){let t,s=!1,i=!1,r=0,a=[];for(let n of e.split("\n")){if(void 0!==t){let e=n.length-n.trimStart().length;if(""===n.trim()||e>t){a.push(n);continue}t=void 0}let e=-1;for(let t=0;t<n.length;t++){let a=n[t];if(i)"\\"===a?t++:'"'===a&&(i=!1);else if(s)"'"===a&&(s=!1);else if('"'===a)i=!0;else if("'"===a)s=!0;else if("#"===a&&(0===t||" "===n[t-1]||" "===n[t-1])){e=t;break}else"["===a||"{"===a?r++:("]"===a||"}"===a)&&(r=Math.max(0,r-1))}if(s||i||r>0){a.push(n);continue}let o=e>=0?n.slice(0,e):n,l=e>=0?n.slice(e):"";if(/:\s*[>|][\d+-]*\s*$/.test(o)){t=n.length-n.trimStart().length,a.push(n);continue}a.push(o.replace(/,([\t ]*)$/,"$1")+l)}return a.join("\n")}(0,g.K)(O,"stripPrototypeKeys"),(0,g.K)(V,"stripLineTrailingCommas");var P=class{constructor(){this.vertexCounter=0,this.config=(0,c.D7)(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.globalNodes=new Set,this.connectors=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.diagramId="",this.preserveCommentsWhenParsing=!0,this.frontmatterLineOffset=0,this.elementMappings=[],this.bareVertexMappings=new WeakSet,this.diagnostics=[],this.postParseValidationRun=!1,this.funs=[],this.setAccTitle=c.SV,this.setAccDescription=c.EI,this.setDiagramTitle=c.ke,this.getAccTitle=c.iN,this.getAccDescription=c.m7,this.getDiagramTitle=c.ab,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addGlobal=this.addGlobal.bind(this),this.addConnector=this.addConnector.bind(this),this.addConnectorMapping=this.addConnectorMapping.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.setFrontmatterLineOffset=this.setFrontmatterLineOffset.bind(this),this.addVertexMapping=this.addVertexMapping.bind(this),this.extendVertexMapping=this.extendVertexMapping.bind(this),this.addEdgeMapping=this.addEdgeMapping.bind(this),this.addSubgraphMapping=this.addSubgraphMapping.bind(this),this.emitWarning=this.emitWarning.bind(this),this.emitError=this.emitError.bind(this),this.getDiagnostics=this.getDiagnostics.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{(0,g.K)(this,"AgentFlowDB")}sanitizeText(e){return c.Y2.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case"markdown":case"string":case"text":return e;default:return"markdown"}}setDiagramId(e){this.diagramId=e}lookUpDomId(e){for(let t of this.vertices.values())if(t.id===e)return this.diagramId?`${this.diagramId}-${t.domId}`:t.domId;return this.diagramId?`${this.diagramId}-${e}`:e}addVertex(e,t,s,i,r,a,o={},l,d){let h,p,g;if(!e||0===e.trim().length)return;if(void 0!==l){let e;e=l.includes("\n")?l+"\n":"{\n"+l+"\n}";try{h=(0,n.H)(e,{schema:n.r})??{}}catch(t){let e=l.includes("\n")?V(l):l;if(e!==l)try{h=(0,n.H)(e+"\n",{schema:n.r})??{}}catch{this.rethrowMetadataYamlError(t,l,d)}else this.rethrowMetadataYamlError(t,l,d)}h=O(h)}if(h&&"string"==typeof h.shape){let e=h,t=T(p=e.shape);t&&t!==p&&(e.shape=t)}let f=this.subGraphLookup.get(e);if(f&&h){f.metadata={...f.metadata,...h};return}let m=this.connectors.get(e);if(m&&h){m.metadata={...m.metadata,...h};return}if("connectors"===e)return;let y=this.edges.find(t=>t.id===e);if(y){let e=h;e?.animate!==void 0&&(y.animate=e.animate),e?.animation!==void 0&&(y.animation=e.animation),e?.curve!==void 0&&(y.interpolate=e.curve),h&&(y.metadata={...y.metadata,...h});return}let b=this.vertices.get(e);if(void 0===b&&(b={id:e,labelType:"text",domId:I+e+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(e,b)),this.vertexCounter++,void 0!==t?(this.config=(0,c.D7)(),g=this.sanitizeText(t.text.trim()),b.labelType=t.type,g.startsWith('"')&&g.endsWith('"')&&(g=g.substring(1,g.length-1)),b.text=g):void 0===b.text&&(b.text=e),void 0!==s&&(b.type=s),null!=i&&i.forEach(e=>{b.styles.push(e)}),null!=r&&r.forEach(e=>{b.classes.push(e)}),void 0!==a&&(b.dir=a),void 0===b.props?b.props=o:void 0!==o&&Object.assign(b.props,o),h){if(b.metadata={...b.metadata,...h},h.shape){let e=p??h.shape;if("string"!=typeof e)throw this.positionedShapeError(`No such shape: ${JSON.stringify(e)}.`,d);if(e!==e.toLowerCase()||e.includes("_"))throw this.positionedShapeError(`No such shape: ${e}. Shape names should be lowercase.`,d);if(!(0,u.aP)(h.shape))throw this.positionedShapeError(`No such shape: ${h.shape}.`,d);b.type=h?.shape}h?.label&&(b.text=this.sanitizeText(h.label),b.labelType=this.sanitizeNodeLabelType(h?.labelType))}}positionedShapeError(e,t){let s=Error(e);if(!t)return s;let i=t.first_line+this.frontmatterLineOffset;return Object.assign(s,{hash:{text:"",token:null,line:i-1,loc:{first_line:i,last_line:t.last_line+this.frontmatterLineOffset,first_column:t.first_column,last_column:t.last_column},expected:[]}}),s}rethrowMetadataYamlError(e,t,s){let i;if(!e||"YAMLException"!==e.name||!e.mark||!s)throw e;try{let r=!t.includes("\n"),a=r?"{\n"+t+"\n}":t+"\n",n=s.first_line+this.frontmatterLineOffset,o=s.first_column+2,l=(0,g.K)((e,t)=>r?{line:n,column:o+(1===e?t:0)}:{line:n+e,column:0===e?o+t:t},"toSource"),u=l(e.mark.line,e.mark.column),d=e.reason??(e.message??"").split("\n")[0].replace(/\s*\(\d+:\d+\)\s*$/,""),h=a.split("\n"),c=[];if(r)c.push(1);else for(let t=e.mark.line-1;t<=e.mark.line+1;t++)t<0||t>=h.length||(t!==h.length-1||""!==h[t]||t===e.mark.line)&&c.push(t);let p=Math.max(...c.map(e=>String(l(e,0).line).length)),f=[];for(let t of c){let s=l(t,0).line,i=` ${String(s).padStart(p)} | `;f.push(i+h[t].replace(/\t/g,"→")),t===e.mark.line&&f.push("-".repeat(i.length+e.mark.column)+"^")}i={message:`${d} (${u.line}:${u.column+1})
15
+ `,"getIconStyles");s.d(t,{o:()=>i})},v0(e,t,s){var i=s("Yr"),r=s("Gt"),a=s("tP"),n=s("El"),o=(0,r.K)((e,t)=>{let s=e.append("rect");if(s.attr("x",t.x),s.attr("y",t.y),s.attr("fill",t.fill),s.attr("stroke",t.stroke),s.attr("width",t.width),s.attr("height",t.height),t.name&&s.attr("name",t.name),t.rx&&s.attr("rx",t.rx),t.ry&&s.attr("ry",t.ry),void 0!==t.attrs)for(let e in t.attrs)s.attr(e,t.attrs[e]);return t.class&&s.attr("class",t.class),s},"drawRect"),l=(0,r.K)((e,t)=>{o(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"}).lower()},"drawBackgroundRect"),u=(0,r.K)((e,t)=>{let s=t.text.replace(i.H1," "),r=e.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class&&r.attr("class",t.class);let a=r.append("tspan");return a.attr("x",t.x+2*t.textMargin),a.text(s),r},"drawText"),d=(0,r.K)((e,t,s,i)=>{let r=e.append("image");r.attr("x",t),r.attr("y",s);let n=(0,a.J)(i);r.attr("xlink:href",n)},"drawImage"),h=(0,r.K)((e,t,s,i)=>{let r=e.append("use");r.attr("x",t),r.attr("y",s);let n=(0,a.J)(i);r.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),c=(0,r.K)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),p=(0,r.K)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),g=(0,r.K)(()=>{let e=(0,n.Ltv)(".mermaidTooltip");return e.empty()&&(e=(0,n.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),e},"createTooltip");s.d(t,{CP:()=>h,Ck:()=>g,HT:()=>p,PB:()=>c,aC:()=>d,lC:()=>l,m:()=>u,tk:()=>o})},WJ(e,t,s){var i=s("Yr"),r=s("M4"),a=s("Gt"),n=(0,a.K)((e,t,s,a)=>{e.attr("class",s);let{width:n,height:u,x:d,y:h}=o(e,t);(0,i.a$)(e,u,n,a);let c=l(d,h,n,u,t);e.attr("viewBox",c),r.R.debug(`viewBox configured: ${c} with padding: ${t}`)},"setupViewPortForSVG"),o=(0,a.K)((e,t)=>{let s=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*t,height:s.height+2*t,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),l=(0,a.K)((e,t,s,i,r)=>`${e-r} ${t-r} ${s} ${i}`,"createViewBox");s.d(t,{P:()=>n})},OT(e,t,s){var i=s("Gt"),r=s("El"),a=(0,i.K)((e,t)=>{let s;return"sandbox"===t&&(s=(0,r.Ltv)("#i"+e)),("sandbox"===t?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${e}"]`)},"getDiagramElement");s.d(t,{A:()=>a})},WU(e,t,s){var i=s("VV8"),r=s("OT"),a=s("WJ"),n=s("Wf"),o=s("mW");s("Q");var l=s("v0");s("ix"),s("LC"),s("bQ1");var u=s("Ut");s("PF"),s("iV"),s("h5");var d=s("pK"),h=s("NH"),c=s("Yr"),p=s("M4"),g=s("Gt"),f=s("El"),m=s("L"),y=s("gj"),b=s("Cv"),A={SHAPE_UNSUPPORTED:"SHAPE_UNSUPPORTED",SHAPE_REMOVED:"SHAPE_REMOVED",EDGE_OPERATOR_UNSUPPORTED:"EDGE_OPERATOR_UNSUPPORTED",REFERENCE_EDGE_LABEL_REJECTED:"REFERENCE_EDGE_LABEL_REJECTED",CONNECTOR_REF_UNRESOLVED:"CONNECTOR_REF_UNRESOLVED",CONNECTOR_REF_NOT_A_CONNECTOR:"CONNECTOR_REF_NOT_A_CONNECTOR",METADATA_KEY_MISAPPLIED:"METADATA_KEY_MISAPPLIED",DUPLICATE_ID_NODE:"DUPLICATE_ID_NODE",RESERVED_SYNTHETIC_ID:"RESERVED_SYNTHETIC_ID",CONTAINMENT_VIOLATION:"CONTAINMENT_VIOLATION",EDGE_SEMANTIC_CONTRADICTION:"EDGE_SEMANTIC_CONTRADICTION",FLOW_NO_INPUT:"FLOW_NO_INPUT"},k=new Set([A.SHAPE_UNSUPPORTED,A.SHAPE_REMOVED,A.CONTAINMENT_VIOLATION]);new Set(Object.values(A).filter(e=>!k.has(e)));var E=new Map([["task","roundedRect"],["tool","subroutine"],["input","lean-right"],["decision","diamond"],["refdoc","lin-doc"],["action","hexagon"],["round","rect"]]),x=new Set(["doc","stadium","terminal","circle","trapezoid","inv_trapezoid","inv-trapezoid","doublecircle","double-circle","typeDeclaration","procs","lean_left","lean-left","in-out","cylinder","ellipse","odd","tag-rect","tagged-rectangle","delay","half-rounded-rectangle","lin-rect","lined-rectangle","win-pane","window-pane","curv-trap","curved-trapezoid"]),C=new Set(["roundedRect","subroutine","subprocess","subproc","framed-rectangle","lean-right","diamond","lin-doc","lined-document","hexagon","hex","connector","collapsedGroup"]),S="roundedRect";function T(e){return e?E.get(e)??e:e}function D(e,t){for(let s of e)if(!s.isGroup){if(s.shape&&"squareRect"!==s.shape&&"rect"!==s.shape||(s.shape=S),x.has(s.shape)){let e=`shape "${s.shape}" was removed in v0.8.1, using "${S}"`;t?.emitError?t.emitError("SHAPE_REMOVED",e,{nodeId:s.id}):p.R.warn(`agentflow: ${e}`),s.shape=S;continue}if(!C.has(s.shape)){let e=`shape "${s.shape}" is not supported, using "${S}"`;t?.emitWarning?t.emitWarning("SHAPE_UNSUPPORTED",e,{nodeId:s.id}):p.R.warn(`agentflow: ${e}`),s.shape=S}}}(0,g.K)(T,"resolveShapeAlias"),(0,g.K)(D,"normaliseNodeShapes");var _=new Map([["tool",0],["task",1],["decision",2],["input",3],["refdoc",4],["connector",5],["action",6]]),v=_.size,F=(0,g.K)(e=>`af-kind-${e}`,"kindClass"),$=[..._.keys()],L=(0,g.K)(e=>Math.max(1,e-v),"containerSlotCount"),B=(0,g.K)((e,t)=>{let s=v+e%L(t);return t>0?s%t:s},"containerSlot");function w(e,t,s){let i=(0,c.D7)().themeVariables?.borderColorArray,r=Array.isArray(i)?i.length:0,a=s.size;for(let i of e??[]){if(i.isGroup||"collapsedGroup"===i.shape){let e=s.get(String(i.id))??a++;i.colorIndex=B(e,r);continue}let e=t(String(i.id));e&&_.has(e)&&(i.cssClasses=`${i.cssClasses??""} ${F(e)}`.replace(/\s+/g," ").trim())}}(0,g.K)(w,"assignColorSlots");var I="agentflow-",M=new Set(["shape","view","icon","img","form","pos","w","h","class","style","labelType"]),N=new Set(["subroutine","subprocess","subproc","framed-rectangle","tool"]),R={flow:"flowGroup"};function O(e){if(Array.isArray(e))return e.map(e=>O(e));if(null===e||"object"!=typeof e)return e;let t={};for(let s of Object.keys(e))"__proto__"!==s&&"constructor"!==s&&"prototype"!==s&&(t[s]=O(e[s]));return t}function V(e){let t,s=!1,i=!1,r=0,a=[];for(let n of e.split("\n")){if(void 0!==t){let e=n.length-n.trimStart().length;if(""===n.trim()||e>t){a.push(n);continue}t=void 0}let e=-1;for(let t=0;t<n.length;t++){let a=n[t];if(i)"\\"===a?t++:'"'===a&&(i=!1);else if(s)"'"===a&&(s=!1);else if('"'===a)i=!0;else if("'"===a)s=!0;else if("#"===a&&(0===t||" "===n[t-1]||" "===n[t-1])){e=t;break}else"["===a||"{"===a?r++:("]"===a||"}"===a)&&(r=Math.max(0,r-1))}if(s||i||r>0){a.push(n);continue}let o=e>=0?n.slice(0,e):n,l=e>=0?n.slice(e):"";if(/:\s*[>|][\d+-]*\s*$/.test(o)){t=n.length-n.trimStart().length,a.push(n);continue}a.push(o.replace(/,([\t ]*)$/,"$1")+l)}return a.join("\n")}(0,g.K)(O,"stripPrototypeKeys"),(0,g.K)(V,"stripLineTrailingCommas");var P=class{constructor(){this.vertexCounter=0,this.config=(0,c.D7)(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.globalNodes=new Set,this.connectors=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.diagramId="",this.preserveCommentsWhenParsing=!0,this.frontmatterLineOffset=0,this.elementMappings=[],this.bareVertexMappings=new WeakSet,this.diagnostics=[],this.postParseValidationRun=!1,this.funs=[],this.setAccTitle=c.SV,this.setAccDescription=c.EI,this.setDiagramTitle=c.ke,this.getAccTitle=c.iN,this.getAccDescription=c.m7,this.getDiagramTitle=c.ab,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addGlobal=this.addGlobal.bind(this),this.addConnector=this.addConnector.bind(this),this.addConnectorMapping=this.addConnectorMapping.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.setFrontmatterLineOffset=this.setFrontmatterLineOffset.bind(this),this.addVertexMapping=this.addVertexMapping.bind(this),this.extendVertexMapping=this.extendVertexMapping.bind(this),this.addEdgeMapping=this.addEdgeMapping.bind(this),this.addSubgraphMapping=this.addSubgraphMapping.bind(this),this.emitWarning=this.emitWarning.bind(this),this.emitError=this.emitError.bind(this),this.getDiagnostics=this.getDiagnostics.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{(0,g.K)(this,"AgentFlowDB")}sanitizeText(e){return c.Y2.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case"markdown":case"string":case"text":return e;default:return"markdown"}}setDiagramId(e){this.diagramId=e}lookUpDomId(e){for(let t of this.vertices.values())if(t.id===e)return this.diagramId?`${this.diagramId}-${t.domId}`:t.domId;return this.diagramId?`${this.diagramId}-${e}`:e}addVertex(e,t,s,i,r,a,o={},l,d){let h,p,g;if(!e||0===e.trim().length)return;if(void 0!==l){let e;e=l.includes("\n")?l+"\n":"{\n"+l+"\n}";try{h=(0,n.H)(e,{schema:n.r})??{}}catch(t){let e=l.includes("\n")?V(l):l;if(e!==l)try{h=(0,n.H)(e+"\n",{schema:n.r})??{}}catch{this.rethrowMetadataYamlError(t,l,d)}else this.rethrowMetadataYamlError(t,l,d)}h=O(h)}if(h&&"string"==typeof h.shape){let e=h,t=T(p=e.shape);t&&t!==p&&(e.shape=t)}let f=this.subGraphLookup.get(e);if(f&&h){f.metadata={...f.metadata,...h};return}let m=this.connectors.get(e);if(m&&h){m.metadata={...m.metadata,...h};return}if("connectors"===e)return;let y=this.edges.find(t=>t.id===e);if(y){let e=h;e?.animate!==void 0&&(y.animate=e.animate),e?.animation!==void 0&&(y.animation=e.animation),e?.curve!==void 0&&(y.interpolate=e.curve),h&&(y.metadata={...y.metadata,...h});return}let b=this.vertices.get(e);if(void 0===b&&(b={id:e,labelType:"text",domId:I+e+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(e,b)),this.vertexCounter++,void 0!==t?(this.config=(0,c.D7)(),g=this.sanitizeText(t.text.trim()),b.labelType=t.type,g.startsWith('"')&&g.endsWith('"')&&(g=g.substring(1,g.length-1)),b.text=g):void 0===b.text&&(b.text=e),void 0!==s&&(b.type=s),null!=i&&i.forEach(e=>{b.styles.push(e)}),null!=r&&r.forEach(e=>{b.classes.push(e)}),void 0!==a&&(b.dir=a),void 0===b.props?b.props=o:void 0!==o&&Object.assign(b.props,o),h){if(b.metadata={...b.metadata,...h},h.shape){let e=p??h.shape;if("string"!=typeof e)throw this.positionedShapeError(`No such shape: ${JSON.stringify(e)}.`,d);if(e!==e.toLowerCase()||e.includes("_"))throw this.positionedShapeError(`No such shape: ${e}. Shape names should be lowercase.`,d);if(!(0,u.aP)(h.shape))throw this.positionedShapeError(`No such shape: ${h.shape}.`,d);b.type=h?.shape}h?.label&&(b.text=this.sanitizeText(h.label),b.labelType=this.sanitizeNodeLabelType(h?.labelType))}}positionedShapeError(e,t){let s=Error(e);if(!t)return s;let i=t.first_line+this.frontmatterLineOffset;return Object.assign(s,{hash:{text:"",token:null,line:i-1,loc:{first_line:i,last_line:t.last_line+this.frontmatterLineOffset,first_column:t.first_column,last_column:t.last_column},expected:[]}}),s}rethrowMetadataYamlError(e,t,s){let i;if(!e||"YAMLException"!==e.name||!e.mark||!s)throw e;try{let r=!t.includes("\n"),a=r?"{\n"+t+"\n}":t+"\n",n=s.first_line+this.frontmatterLineOffset,o=s.first_column+2,l=(0,g.K)((e,t)=>r?{line:n,column:o+(1===e?t:0)}:{line:n+e,column:0===e?o+t:t},"toSource"),u=l(e.mark.line,e.mark.column),d=e.reason??(e.message??"").split("\n")[0].replace(/\s*\(\d+:\d+\)\s*$/,""),h=a.split("\n"),c=[];if(r)c.push(1);else for(let t=e.mark.line-1;t<=e.mark.line+1;t++)t<0||t>=h.length||(t!==h.length-1||""!==h[t]||t===e.mark.line)&&c.push(t);let p=Math.max(...c.map(e=>String(l(e,0).line).length)),f=[];for(let t of c){let s=l(t,0).line,i=` ${String(s).padStart(p)} | `;f.push(i+h[t].replace(/\t/g,"→")),t===e.mark.line&&f.push("-".repeat(i.length+e.mark.column)+"^")}i={message:`${d} (${u.line}:${u.column+1})
16
16
 
17
17
  ${f.join("\n")}`,markLine:u.line-1,markColumn:u.column,hash:{text:"",token:null,line:u.line-1,loc:{first_line:u.line,last_line:u.line,first_column:u.column,last_column:u.column+1},expected:[]}}}catch{}throw i&&(e.message=i.message,e.mark.line=i.markLine,e.mark.column=i.markColumn,e.hash=i.hash),e}addSingleLink(e,t,s,i){let r={start:e,end:t,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};p.R.info("abc78 Got edge...",r);let a=s.text;if(void 0!==a&&(r.text=this.sanitizeText(a.text.trim()),r.text.startsWith('"')&&r.text.endsWith('"')&&(r.text=r.text.substring(1,r.text.length-1)),r.labelType=this.sanitizeNodeLabelType(a.type)),void 0!==s&&(r.type=s.type,r.stroke=s.stroke,r.length=s.length>10?10:s.length,s.edgeSemantic&&(r.edgeSemantic=s.edgeSemantic)),i&&!this.edges.some(e=>e.id===i))r.id=i,r.isUserDefinedId=!0;else{let e=this.edges.filter(e=>e.start===r.start&&e.end===r.end);0===e.length?r.id=(0,h.rY)(r.start,r.end,{counter:0,prefix:"L"}):r.id=(0,h.rY)(r.start,r.end,{counter:e.length+1,prefix:"L"})}if(this.edges.length<(this.config.maxEdges??500))p.R.info("Pushing edge..."),this.edges.push(r);else throw Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}.
18
18