@rubytech/create-maxy-code 0.1.309 → 0.1.310

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 (173) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/skills/plugin-management/SKILL.md +1 -1
  3. package/payload/platform/plugins/admin/skills/specialist-management/SKILL.md +1 -1
  4. package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +1 -1
  5. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +1 -0
  6. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  7. package/payload/platform/services/claude-session-manager/dist/http-server.js +40 -1
  8. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  9. package/payload/platform/services/webchat-channel/dist/instructions.d.ts +1 -0
  10. package/payload/platform/services/webchat-channel/dist/instructions.d.ts.map +1 -1
  11. package/payload/platform/services/webchat-channel/dist/instructions.js +31 -0
  12. package/payload/platform/services/webchat-channel/dist/instructions.js.map +1 -1
  13. package/payload/platform/services/webchat-channel/dist/notification.d.ts +8 -3
  14. package/payload/platform/services/webchat-channel/dist/notification.d.ts.map +1 -1
  15. package/payload/platform/services/webchat-channel/dist/notification.js +25 -9
  16. package/payload/platform/services/webchat-channel/dist/notification.js.map +1 -1
  17. package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
  18. package/payload/platform/services/webchat-channel/dist/server.js +5 -3
  19. package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
  20. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +8 -0
  21. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  22. package/payload/platform/services/whatsapp-channel/dist/notification.js +10 -0
  23. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  24. package/payload/server/public/assets/AccessGate-BOqUU-za.js +1 -0
  25. package/payload/server/public/assets/AdminLoginScreens-WvRuaNIg.js +1 -0
  26. package/payload/server/public/assets/AdminShell-DHv6_SZ4.js +1 -0
  27. package/payload/server/public/assets/{Checkbox-DMA1hVhn.js → Checkbox-DjM6aYP_.js} +1 -1
  28. package/payload/server/public/assets/OperatorConversations-CDY0jUMb.js +1 -0
  29. package/payload/server/public/assets/admin-XbVTsU2q.js +1 -0
  30. package/payload/server/public/assets/admin-types-D2qTXuCg.js +1 -0
  31. package/payload/server/public/assets/{arc-Dl9QFDgW.js → arc-J2g2u5Xv.js} +1 -1
  32. package/payload/server/public/assets/architecture-YZFGNWBL-C6nkAxzW.js +1 -0
  33. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CNLQUVi9.js → architectureDiagram-Q4EWVU46-CN0BXxpE.js} +1 -1
  34. package/payload/server/public/assets/audio-attachment-mime-CVxjPN8V.js +30 -0
  35. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-B-QxfVjk.js → blockDiagram-DXYQGD6D-HX-8wF2p.js} +1 -1
  36. package/payload/server/public/assets/{brand-4F9ZXBF8.css → brand-N-Hi3IPA.css} +1 -1
  37. package/payload/server/public/assets/{browser-eLSiC7_b.js → browser-Ct5Kwlmk.js} +1 -1
  38. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-NuYFvPDU.js → c4Diagram-AHTNJAMY-wIuarKF5.js} +1 -1
  39. package/payload/server/public/assets/channel-Q39xIXyT.js +1 -0
  40. package/payload/server/public/assets/chat-CEde1CLX.js +1 -0
  41. package/payload/server/public/assets/{chunk-2KRD3SAO-l5VL1KQm.js → chunk-2KRD3SAO-Buz7egJZ.js} +1 -1
  42. package/payload/server/public/assets/{chunk-336JU56O-C5gVznC2.js → chunk-336JU56O-_JcFXJqc.js} +2 -2
  43. package/payload/server/public/assets/chunk-426QAEUC-CCYjp9C2.js +1 -0
  44. package/payload/server/public/assets/{chunk-4BX2VUAB-BtMVz_Sq.js → chunk-4BX2VUAB-DUR5Dg3M.js} +1 -1
  45. package/payload/server/public/assets/{chunk-4TB4RGXK-C8-dmCuT.js → chunk-4TB4RGXK-BRIqQ9st.js} +1 -1
  46. package/payload/server/public/assets/{chunk-55IACEB6-C5gWvEJW.js → chunk-55IACEB6-CezTHWXL.js} +1 -1
  47. package/payload/server/public/assets/{chunk-5FUZZQ4R-BZ7VZoAC.js → chunk-5FUZZQ4R-DHYUPzF1.js} +1 -1
  48. package/payload/server/public/assets/{chunk-5PVQY5BW-C_ajQOGC.js → chunk-5PVQY5BW-BVn4_fI5.js} +1 -1
  49. package/payload/server/public/assets/{chunk-67CJDMHE-BJOR2dwK.js → chunk-67CJDMHE-BBLA8Mbi.js} +1 -1
  50. package/payload/server/public/assets/{chunk-7N4EOEYR-DvZLpquX.js → chunk-7N4EOEYR-CdWfEI5c.js} +1 -1
  51. package/payload/server/public/assets/{chunk-AA7GKIK3-h5tVsPlW.js → chunk-AA7GKIK3-tS11knCR.js} +1 -1
  52. package/payload/server/public/assets/{chunk-BSJP7CBP-DLOF2-m3.js → chunk-BSJP7CBP-GEu1OOZ6.js} +1 -1
  53. package/payload/server/public/assets/{chunk-CIAEETIT-CQRQMPCf.js → chunk-CIAEETIT-DKrNbbp_.js} +1 -1
  54. package/payload/server/public/assets/{chunk-EDXVE4YY-K9-EfuM2.js → chunk-EDXVE4YY-B0InXNyr.js} +1 -1
  55. package/payload/server/public/assets/{chunk-ENJZ2VHE-DVoy6NvU.js → chunk-ENJZ2VHE-CO7lkHdm.js} +1 -1
  56. package/payload/server/public/assets/{chunk-FMBD7UC4-CQn_2o2b.js → chunk-FMBD7UC4-CMj74lWo.js} +1 -1
  57. package/payload/server/public/assets/{chunk-FOC6F5B3-CuN73goS.js → chunk-FOC6F5B3-CLnKQoXw.js} +1 -1
  58. package/payload/server/public/assets/{chunk-ICPOFSXX-CKhl9J-H.js → chunk-ICPOFSXX-CdiEKIaz.js} +2 -2
  59. package/payload/server/public/assets/{chunk-K5T4RW27-CBskuQmq.js → chunk-K5T4RW27-B6LA3fiv.js} +1 -1
  60. package/payload/server/public/assets/{chunk-KGLVRYIC-Chtjt8xK.js → chunk-KGLVRYIC-DrhRrb8Q.js} +1 -1
  61. package/payload/server/public/assets/{chunk-LIHQZDEY-EOBiBNSH.js → chunk-LIHQZDEY-DVQukevB.js} +1 -1
  62. package/payload/server/public/assets/{chunk-ORNJ4GCN-uPPq-5MN.js → chunk-ORNJ4GCN-ZMLkoDhP.js} +1 -1
  63. package/payload/server/public/assets/{chunk-OYMX7WX6-BRzbxJOT.js → chunk-OYMX7WX6-C0dJkynG.js} +1 -1
  64. package/payload/server/public/assets/chunk-QZHKN3VN-BNBxnHZh.js +1 -0
  65. package/payload/server/public/assets/{chunk-U2HBQHQK-Bndyn5nF.js → chunk-U2HBQHQK-BQ9BPIFZ.js} +1 -1
  66. package/payload/server/public/assets/{chunk-X2U36JSP-BspGBHXW.js → chunk-X2U36JSP-CAonGMOd.js} +1 -1
  67. package/payload/server/public/assets/{chunk-XPW4576I-HgXQ2k9h.js → chunk-XPW4576I-D5C_WNlk.js} +1 -1
  68. package/payload/server/public/assets/{chunk-YZCP3GAM-C7oTyCnw.js → chunk-YZCP3GAM-Ecdvzekb.js} +1 -1
  69. package/payload/server/public/assets/{chunk-ZZ45TVLE-CufWa7QL.js → chunk-ZZ45TVLE-BsFZd1cN.js} +1 -1
  70. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BShusfby.js +1 -0
  71. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D4ivPLFF.js +1 -0
  72. package/payload/server/public/assets/clone-CjEM8LwB.js +1 -0
  73. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-BM3yEbF-.js → cose-bilkent-S5V4N54A-DBWHaIwm.js} +1 -1
  74. package/payload/server/public/assets/{dagre-C7WHNZO8.js → dagre-Dr7ZJYeS.js} +1 -1
  75. package/payload/server/public/assets/{dagre-KV5264BT-bcZx3l06.js → dagre-KV5264BT-oIJddk7m.js} +1 -1
  76. package/payload/server/public/assets/data-TZOmA1Qg.js +1 -0
  77. package/payload/server/public/assets/{diagram-5BDNPKRD-B7VotaMF.js → diagram-5BDNPKRD-CEVxqOZ4.js} +1 -1
  78. package/payload/server/public/assets/{diagram-G4DWMVQ6-CWWvEsFx.js → diagram-G4DWMVQ6-BovF7Rjx.js} +1 -1
  79. package/payload/server/public/assets/{diagram-MMDJMWI5-DYHVkTYJ.js → diagram-MMDJMWI5-BhrF8zoF.js} +1 -1
  80. package/payload/server/public/assets/{diagram-TYMM5635-CHeB6Ama.js → diagram-TYMM5635-DCUYwxtR.js} +1 -1
  81. package/payload/server/public/assets/{erDiagram-SMLLAGMA-C9gog8QP.js → erDiagram-SMLLAGMA-BS2-HdCg.js} +1 -1
  82. package/payload/server/public/assets/{flatten-QcJDm7yK.js → flatten-BZMXCpLh.js} +1 -1
  83. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-B2O9lKTh.js → flowDiagram-DWJPFMVM-BzSFLoea.js} +1 -1
  84. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DEa4AwbR.js → ganttDiagram-T4ZO3ILL-1-3QU7mT.js} +1 -1
  85. package/payload/server/public/assets/gitGraph-7Q5UKJZL-Btp3PwZh.js +1 -0
  86. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-BjXPQpBL.js → gitGraphDiagram-UUTBAWPF-fTrJ35Wk.js} +1 -1
  87. package/payload/server/public/assets/{graph-C7Hye_vp.js → graph-DWT1rhy9.js} +2 -2
  88. package/payload/server/public/assets/{graph-labels-YYgGsEVd.js → graph-labels-OBadNo54.js} +1 -1
  89. package/payload/server/public/assets/{graphlib-CBevn2DP.js → graphlib-rlEzI2qD.js} +1 -1
  90. package/payload/server/public/assets/info-OMHHGYJF-CPt2y6_L.js +1 -0
  91. package/payload/server/public/assets/infoDiagram-42DDH7IO-CpXNTMgd.js +2 -0
  92. package/payload/server/public/assets/{isEmpty-BO6BAEn7.js → isEmpty-DaYIrHay.js} +1 -1
  93. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CPLfpvqv.js → ishikawaDiagram-UXIWVN3A-0eU_UtlT.js} +1 -1
  94. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CTHe8MiD.js → journeyDiagram-VCZTEJTY-BKLeZohp.js} +1 -1
  95. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Bm9h1O3Y.js → kanban-definition-6JOO6SKY-Dq72xyaN.js} +1 -1
  96. package/payload/server/public/assets/{line-C31b0rtY.js → line-LQhmDT8k.js} +1 -1
  97. package/payload/server/public/assets/{linear-Cfm_8_pU.js → linear-BGotDbGs.js} +1 -1
  98. package/payload/server/public/assets/{mermaid-parser.core-B3tGwOcE.js → mermaid-parser.core-DoLdho1V.js} +2 -2
  99. package/payload/server/public/assets/{mermaid.core-BM3s85ZW.js → mermaid.core-C1RRyHGm.js} +3 -3
  100. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CaGv_mIB.js → mindmap-definition-QFDTVHPH-vUVVVyV1.js} +1 -1
  101. package/payload/server/public/assets/operator-BpzQ9Ezb.js +1 -0
  102. package/payload/server/public/assets/{ordinal-jLCwuvYg.js → ordinal-BqEhkPyh.js} +1 -1
  103. package/payload/server/public/assets/packet-4T2RLAQJ-Cwc-j_AI.js +1 -0
  104. package/payload/server/public/assets/page-Dts8u8MD.js +1 -0
  105. package/payload/server/public/assets/pie-ZZUOXDRM-BZ9fjD1_.js +1 -0
  106. package/payload/server/public/assets/{pieDiagram-DEJITSTG-BhAXps4u.js → pieDiagram-DEJITSTG-B9Pl6Qhc.js} +1 -1
  107. package/payload/server/public/assets/public-next-ClQwtyeC.js +1 -0
  108. package/payload/server/public/assets/{public-ViXjC_dA.js → public-owWW-MIA.js} +3 -3
  109. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-BWtTdNs8.js → quadrantDiagram-34T5L4WZ-Drn9T81A.js} +1 -1
  110. package/payload/server/public/assets/radar-PYXPWWZC-BNz5Rt9V.js +1 -0
  111. package/payload/server/public/assets/{reduce-Dmi_NdVH.js → reduce-T2IuntYP.js} +1 -1
  112. package/payload/server/public/assets/{requirementDiagram-MS252O5E-CWU0qCcP.js → requirementDiagram-MS252O5E-C0PAItJm.js} +1 -1
  113. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-DYvutQld.js → sankeyDiagram-XADWPNL6-BR42Mtwd.js} +1 -1
  114. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-Cir0hBWS.js → sequenceDiagram-FGHM5R23-c2lR9UOS.js} +1 -1
  115. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-Be-h8YSS.js → stateDiagram-FHFEXIEX-BcHhtqsZ.js} +1 -1
  116. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BUQ_F4eP.js +1 -0
  117. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-C3C4Wuyk.js → timeline-definition-GMOUNBTQ-Ax32c10H.js} +1 -1
  118. package/payload/server/public/assets/treeView-SZITEDCU-DcVCQgp1.js +1 -0
  119. package/payload/server/public/assets/treemap-W4RFUUIX-Bm12mwGd.js +1 -0
  120. package/payload/server/public/assets/{useSelectionMode-CG_Iel5F.js → useSelectionMode-BZsJuUm-.js} +1 -1
  121. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-mDclw0Sa.js → vennDiagram-DHZGUBPP-BxePewPq.js} +1 -1
  122. package/payload/server/public/assets/wardley-RL74JXVD-47Z3ymtK.js +1 -0
  123. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-mvk-YA9g.js → wardleyDiagram-NUSXRM2D-DmJwZ2f5.js} +1 -1
  124. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-9M7k1hmD.js → xychartDiagram-5P7HB3ND-YjHomudv.js} +1 -1
  125. package/payload/server/public/browser.html +6 -6
  126. package/payload/server/public/chat.html +10 -9
  127. package/payload/server/public/data.html +5 -5
  128. package/payload/server/public/graph.html +8 -8
  129. package/payload/server/public/index.html +10 -9
  130. package/payload/server/public/operator.html +12 -11
  131. package/payload/server/public/public-next.html +11 -10
  132. package/payload/server/public/public.html +8 -8
  133. package/payload/server/server.js +74 -30
  134. package/payload/server/public/assets/AccessGate-CU4Qw6M6.js +0 -1
  135. package/payload/server/public/assets/AdminLoginScreens-DUpRIM1h.js +0 -1
  136. package/payload/server/public/assets/AdminShell-DkoQSsqo.js +0 -1
  137. package/payload/server/public/assets/OperatorConversations-BIHiyyxU.js +0 -1
  138. package/payload/server/public/assets/admin-BHvOMcCh.js +0 -1
  139. package/payload/server/public/assets/architecture-YZFGNWBL-Crq5RSDG.js +0 -1
  140. package/payload/server/public/assets/audio-attachment-mime-DOBET-W1.js +0 -30
  141. package/payload/server/public/assets/channel-KT66MFN2.js +0 -1
  142. package/payload/server/public/assets/chat-DedpVKUl.js +0 -1
  143. package/payload/server/public/assets/chunk-426QAEUC-CWMiOm8Y.js +0 -1
  144. package/payload/server/public/assets/chunk-QZHKN3VN-DCzpF46A.js +0 -1
  145. package/payload/server/public/assets/classDiagram-6PBFFD2Q-QOU4HzJJ.js +0 -1
  146. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DcOUai3Z.js +0 -1
  147. package/payload/server/public/assets/clone-CHh05KN-.js +0 -1
  148. package/payload/server/public/assets/data-BcoBY39U.js +0 -1
  149. package/payload/server/public/assets/gitGraph-7Q5UKJZL-BC-u4jgy.js +0 -1
  150. package/payload/server/public/assets/info-OMHHGYJF-DPUetTz-.js +0 -1
  151. package/payload/server/public/assets/infoDiagram-42DDH7IO-q2dl09-M.js +0 -2
  152. package/payload/server/public/assets/operator-WsXhcbBF.js +0 -1
  153. package/payload/server/public/assets/packet-4T2RLAQJ-BcfR-ZwA.js +0 -1
  154. package/payload/server/public/assets/page-BhHTnqv4.js +0 -1
  155. package/payload/server/public/assets/pie-ZZUOXDRM-BiKgZdNB.js +0 -1
  156. package/payload/server/public/assets/public-next-BKECyMz2.js +0 -1
  157. package/payload/server/public/assets/radar-PYXPWWZC-nvCjiW_J.js +0 -1
  158. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CAnmjSj7.js +0 -1
  159. package/payload/server/public/assets/treeView-SZITEDCU-BinXCVyM.js +0 -1
  160. package/payload/server/public/assets/treemap-W4RFUUIX-CSmh20Ze.js +0 -1
  161. package/payload/server/public/assets/wardley-RL74JXVD-BiCmRKWx.js +0 -1
  162. /package/payload/server/public/assets/{_baseFor-D8P3gUw3.js → _baseFor-Y5mTRiRv.js} +0 -0
  163. /package/payload/server/public/assets/{array-CLwNaqU1.js → array-BwJyW1Dp.js} +0 -0
  164. /package/payload/server/public/assets/{brand-C7kj0USi.js → brand-zL3tAdql.js} +0 -0
  165. /package/payload/server/public/assets/{cytoscape.esm-mZ4wTuB7.js → cytoscape.esm-D95TtHqz.js} +0 -0
  166. /package/payload/server/public/assets/{defaultLocale-D_VMtRaY.js → defaultLocale-kiwRz9Au.js} +0 -0
  167. /package/payload/server/public/assets/{dist-CjjtmoWL.js → dist-DSsFp0Qd.js} +0 -0
  168. /package/payload/server/public/assets/{init-vVpfz1D6.js → init-CKZirZ49.js} +0 -0
  169. /package/payload/server/public/assets/{katex-DaHGEgm7.js → katex-8mXVa4k3.js} +0 -0
  170. /package/payload/server/public/assets/{path-CuyvWNAH.js → path-B0d9ncVi.js} +0 -0
  171. /package/payload/server/public/assets/{preload-helper-TKOBYGYD.js → preload-helper-C5gCWwwF.js} +0 -0
  172. /package/payload/server/public/assets/{rough.esm-JX0wREDd.js → rough.esm-BWqoIFNR.js} +0 -0
  173. /package/payload/server/public/assets/{src-CwB968DO.js → src-DXUM2BJo.js} +0 -0
@@ -1,4 +1,4 @@
1
- import"./chunk-K5T4RW27-CBskuQmq.js";import"./chunk-7N4EOEYR-DvZLpquX.js";import"./chunk-67CJDMHE-BJOR2dwK.js";import"./chunk-KGLVRYIC-Chtjt8xK.js";import"./chunk-FOC6F5B3-CuN73goS.js";import"./chunk-AA7GKIK3-h5tVsPlW.js";import"./chunk-2KRD3SAO-l5VL1KQm.js";import"./chunk-ORNJ4GCN-uPPq-5MN.js";import"./chunk-LIHQZDEY-EOBiBNSH.js";import"./chunk-CIAEETIT-CQRQMPCf.js";import{g as e,h as t}from"./src-CwB968DO.js";import{B as n,C as r,L as i,V as a,W as o,_ as s,a as c,b as l,c as u,v as d}from"./chunk-ICPOFSXX-CKhl9J-H.js";import{t as f}from"./chunk-426QAEUC-CWMiOm8Y.js";import{t as p}from"./chunk-4BX2VUAB-BtMVz_Sq.js";import{t as m}from"./mermaid-parser.core-B3tGwOcE.js";var h=t((e,t)=>{let n=e<=1?e*100:e;if(n<0||n>100)throw Error(`${t} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return n},`toPercent`),g=t((e,t,n)=>({x:h(t,`${n} evolution`),y:h(e,`${n} visibility`)}),`toCoordinates`),_=t(e=>{if(e){if(e===`+<>`)return`bidirectional`;if(e===`+<`)return`backward`;if(e===`+>`)return`forward`}},`getFlowFromPort`),v=t(e=>{if(!e?.startsWith(`+`))return{};let t=/^\+'([^']*)'/.exec(e)?.[1];return e.includes(`<>`)?{flow:`bidirectional`,label:t}:e.includes(`<`)?{flow:`backward`,label:t}:e.includes(`>`)?{flow:`forward`,label:t}:{label:t}},`extractFlowFromArrow`),y=t((e,t)=>{if(p(e,t),e.size&&t.setSize(e.size.width,e.size.height),e.evolution){let n=e.evolution.stages.map(e=>e.secondName?`${e.name.trim()} / ${e.secondName.trim()}`:e.name.trim()),r=e.evolution.stages.filter(e=>e.boundary!==void 0).map(e=>e.boundary);t.updateAxes({stages:n,stageBoundaries:r})}if(e.anchors.forEach(e=>{let n=g(e.visibility,e.evolution,`Anchor "${e.name}"`);t.addNode(e.name,e.name,n.x,n.y,`anchor`)}),e.components.forEach(e=>{let n=g(e.visibility,e.evolution,`Component "${e.name}"`),r=e.label?(e.label.negX?-1:1)*e.label.offsetX:void 0,i=e.label?(e.label.negY?-1:1)*e.label.offsetY:void 0,a=e.decorator?.strategy;t.addNode(e.name,e.name,n.x,n.y,`component`,r,i,e.inertia,a)}),e.notes.forEach(e=>{let n=g(e.visibility,e.evolution,`Note "${e.text}"`);t.addNote(e.text,n.x,n.y)}),e.pipelines.forEach(e=>{let n=t.getNode(e.parent);if(!n||typeof n.y!=`number`)throw Error(`Pipeline "${e.parent}" must reference an existing component with coordinates.`);let r=n.y;t.startPipeline(e.parent),e.components.forEach(n=>{let i=`${e.parent}_${n.name}`,a=n.label?(n.label.negX?-1:1)*n.label.offsetX:void 0,o=n.label?(n.label.negY?-1:1)*n.label.offsetY:void 0,s=h(n.evolution,`Pipeline component "${n.name}" evolution`);t.addNode(i,n.name,s,r,`pipeline-component`,a,o),t.addPipelineComponent(e.parent,i)})}),e.links.forEach(e=>{let n=!!e.arrow&&(e.arrow.includes(`-.->`)||e.arrow.includes(`.-.`)),r=_(e.fromPort)??_(e.toPort),{flow:i,label:a}=v(e.arrow);!r&&i&&(r=i);let o=e.linkLabel,s=a??o;t.addLink(e.from,e.to,n,s,r)}),e.evolves.forEach(e=>{let n=t.getNode(e.component);if(n?.y!==void 0){let r=h(e.target,`Evolve target for "${e.component}"`);t.addTrend(e.component,r,n.y)}}),e.annotations.length>0){let n=e.annotations[0],r=g(n.x,n.y,`Annotations box`);t.setAnnotationsBox(r.x,r.y)}e.annotation.forEach(e=>{let n=g(e.x,e.y,`Annotation ${e.number}`);t.addAnnotation(e.number,[{x:n.x,y:n.y}],e.text)}),e.accelerators.forEach(e=>{let n=g(e.x,e.y,`Accelerator "${e.name}"`);t.addAccelerator(e.name,n.x,n.y)}),e.deaccelerators.forEach(e=>{let n=g(e.x,e.y,`Deaccelerator "${e.name}"`);t.addDeaccelerator(e.name,n.x,n.y)})},`populateDb`),b={parser:{yy:void 0},parse:t(async t=>{let n=await m(`wardley`,t);e.debug(n);let r=b.parser?.yy;if(!r||typeof r.addNode!=`function`)throw Error(`parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);y(n,r)},`parse`)},x=new class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{t(this,`WardleyBuilder`)}addNode(e){let t=this.nodes.get(e.id)??{id:e.id,label:e.label},n={...t,...e,className:e.className??t.className,labelOffsetX:e.labelOffsetX??t.labelOffsetX,labelOffsetY:e.labelOffsetY??t.labelOffsetY};this.nodes.set(e.id,n)}addLink(e){this.links.push(e)}addTrend(e){this.trends.set(e.nodeId,e)}startPipeline(e){this.pipelines.set(e,{nodeId:e,componentIds:[]});let t=this.nodes.get(e);t&&(t.isPipelineParent=!0)}addPipelineComponent(e,t){let n=this.pipelines.get(e);n&&n.componentIds.push(t);let r=this.nodes.get(t);r&&(r.inPipeline=!0)}addAnnotation(e){this.annotations.push(e)}addNote(e){this.notes.push(e)}addAccelerator(e){this.accelerators.push(e)}addDeaccelerator(e){this.deaccelerators.push(e)}setAnnotationsBox(e,t){this.annotationsBox={x:e,y:t}}setAxes(e){this.axes={...this.axes,...e}}setSize(e,t){this.size={width:e,height:t}}getNode(e){return this.nodes.get(e)}build(){let e=[];for(let t of this.nodes.values()){if(typeof t.x!=`number`||typeof t.y!=`number`)throw Error(`Node "${t.label}" is missing coordinates`);e.push(t)}return{nodes:e,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}};function S(e){let t=l();return i(e.trim(),t)}t(S,`textSanitizer`);function C(){return l()[`wardley-beta`]}t(C,`getConfig`);function w(e,t,n,r,i,a,o,s,c){x.addNode({id:e,label:S(t),x:n,y:r,className:i,labelOffsetX:a,labelOffsetY:o,inertia:s,sourceStrategy:c})}t(w,`addNode`);function T(e,t,n=!1,r,i){x.addLink({source:e,target:t,dashed:n,label:r,flow:i})}t(T,`addLink`);function E(e,t,n){x.addTrend({nodeId:e,targetX:t,targetY:n})}t(E,`addTrend`);function D(e,t,n){x.addAnnotation({number:e,coordinates:t,text:n?S(n):void 0})}t(D,`addAnnotation`);function O(e,t,n){x.addNote({text:S(e),x:t,y:n})}t(O,`addNote`);function k(e,t,n){x.addAccelerator({name:S(e),x:t,y:n})}t(k,`addAccelerator`);function A(e,t,n){x.addDeaccelerator({name:S(e),x:t,y:n})}t(A,`addDeaccelerator`);function j(e,t){x.setAnnotationsBox(e,t)}t(j,`setAnnotationsBox`);function M(e,t){x.setSize(e,t)}t(M,`setSize`);function N(e){x.startPipeline(e)}t(N,`startPipeline`);function P(e,t){x.addPipelineComponent(e,t)}t(P,`addPipelineComponent`);function F(e){let t={};e.xLabel&&(t.xLabel=S(e.xLabel)),e.yLabel&&(t.yLabel=S(e.yLabel)),e.stages&&(t.stages=e.stages.map(e=>S(e))),e.stageBoundaries&&(t.stageBoundaries=e.stageBoundaries),x.setAxes(t)}t(F,`updateAxes`);function I(e){return x.getNode(e)}t(I,`getNode`);function L(){return x.build()}t(L,`getWardleyData`);function R(){x.clear(),c()}t(R,`clear`);var z={getConfig:C,addNode:w,addLink:T,addTrend:E,addAnnotation:D,addNote:O,addAccelerator:k,addDeaccelerator:A,setAnnotationsBox:j,setSize:M,startPipeline:N,addPipelineComponent:P,updateAxes:F,getNode:I,getWardleyData:L,clear:R,setAccTitle:a,getAccTitle:d,setDiagramTitle:o,getDiagramTitle:r,getAccDescription:s,setAccDescription:n},B=[`Genesis`,`Custom Built`,`Product`,`Commodity`],V=t(()=>{let{themeVariables:e}=l();return{backgroundColor:e.wardley?.backgroundColor??e.background??`#fff`,axisColor:e.wardley?.axisColor??`#000`,axisTextColor:e.wardley?.axisTextColor??e.primaryTextColor??`#222`,gridColor:e.wardley?.gridColor??`rgba(100, 100, 100, 0.2)`,componentFill:e.wardley?.componentFill??`#fff`,componentStroke:e.wardley?.componentStroke??`#000`,componentLabelColor:e.wardley?.componentLabelColor??e.primaryTextColor??`#222`,linkStroke:e.wardley?.linkStroke??`#000`,evolutionStroke:e.wardley?.evolutionStroke??`#dc3545`,annotationStroke:e.wardley?.annotationStroke??`#000`,annotationTextColor:e.wardley?.annotationTextColor??e.primaryTextColor??`#222`,annotationFill:e.wardley?.annotationFill??e.background??`#fff`}},`getTheme`),H=t(()=>{let e=l()[`wardley-beta`];return{width:e?.width??900,height:e?.height??600,padding:e?.padding??48,nodeRadius:e?.nodeRadius??6,nodeLabelOffset:e?.nodeLabelOffset??8,axisFontSize:e?.axisFontSize??12,labelFontSize:e?.labelFontSize??10,showGrid:e?.showGrid??!1,useMaxWidth:e?.useMaxWidth??!0}},`getConfigValues`),U={parser:b,db:z,renderer:{draw:t((n,r,i,a)=>{e.debug(`Rendering Wardley map
1
+ import"./chunk-K5T4RW27-B6LA3fiv.js";import"./chunk-7N4EOEYR-CdWfEI5c.js";import"./chunk-67CJDMHE-BBLA8Mbi.js";import"./chunk-KGLVRYIC-DrhRrb8Q.js";import"./chunk-FOC6F5B3-CLnKQoXw.js";import"./chunk-AA7GKIK3-tS11knCR.js";import"./chunk-2KRD3SAO-Buz7egJZ.js";import"./chunk-ORNJ4GCN-ZMLkoDhP.js";import"./chunk-LIHQZDEY-DVQukevB.js";import"./chunk-CIAEETIT-DKrNbbp_.js";import{g as e,h as t}from"./src-DXUM2BJo.js";import{B as n,C as r,L as i,V as a,W as o,_ as s,a as c,b as l,c as u,v as d}from"./chunk-ICPOFSXX-CdiEKIaz.js";import{t as f}from"./chunk-426QAEUC-CCYjp9C2.js";import{t as p}from"./chunk-4BX2VUAB-DUR5Dg3M.js";import{t as m}from"./mermaid-parser.core-DoLdho1V.js";var h=t((e,t)=>{let n=e<=1?e*100:e;if(n<0||n>100)throw Error(`${t} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return n},`toPercent`),g=t((e,t,n)=>({x:h(t,`${n} evolution`),y:h(e,`${n} visibility`)}),`toCoordinates`),_=t(e=>{if(e){if(e===`+<>`)return`bidirectional`;if(e===`+<`)return`backward`;if(e===`+>`)return`forward`}},`getFlowFromPort`),v=t(e=>{if(!e?.startsWith(`+`))return{};let t=/^\+'([^']*)'/.exec(e)?.[1];return e.includes(`<>`)?{flow:`bidirectional`,label:t}:e.includes(`<`)?{flow:`backward`,label:t}:e.includes(`>`)?{flow:`forward`,label:t}:{label:t}},`extractFlowFromArrow`),y=t((e,t)=>{if(p(e,t),e.size&&t.setSize(e.size.width,e.size.height),e.evolution){let n=e.evolution.stages.map(e=>e.secondName?`${e.name.trim()} / ${e.secondName.trim()}`:e.name.trim()),r=e.evolution.stages.filter(e=>e.boundary!==void 0).map(e=>e.boundary);t.updateAxes({stages:n,stageBoundaries:r})}if(e.anchors.forEach(e=>{let n=g(e.visibility,e.evolution,`Anchor "${e.name}"`);t.addNode(e.name,e.name,n.x,n.y,`anchor`)}),e.components.forEach(e=>{let n=g(e.visibility,e.evolution,`Component "${e.name}"`),r=e.label?(e.label.negX?-1:1)*e.label.offsetX:void 0,i=e.label?(e.label.negY?-1:1)*e.label.offsetY:void 0,a=e.decorator?.strategy;t.addNode(e.name,e.name,n.x,n.y,`component`,r,i,e.inertia,a)}),e.notes.forEach(e=>{let n=g(e.visibility,e.evolution,`Note "${e.text}"`);t.addNote(e.text,n.x,n.y)}),e.pipelines.forEach(e=>{let n=t.getNode(e.parent);if(!n||typeof n.y!=`number`)throw Error(`Pipeline "${e.parent}" must reference an existing component with coordinates.`);let r=n.y;t.startPipeline(e.parent),e.components.forEach(n=>{let i=`${e.parent}_${n.name}`,a=n.label?(n.label.negX?-1:1)*n.label.offsetX:void 0,o=n.label?(n.label.negY?-1:1)*n.label.offsetY:void 0,s=h(n.evolution,`Pipeline component "${n.name}" evolution`);t.addNode(i,n.name,s,r,`pipeline-component`,a,o),t.addPipelineComponent(e.parent,i)})}),e.links.forEach(e=>{let n=!!e.arrow&&(e.arrow.includes(`-.->`)||e.arrow.includes(`.-.`)),r=_(e.fromPort)??_(e.toPort),{flow:i,label:a}=v(e.arrow);!r&&i&&(r=i);let o=e.linkLabel,s=a??o;t.addLink(e.from,e.to,n,s,r)}),e.evolves.forEach(e=>{let n=t.getNode(e.component);if(n?.y!==void 0){let r=h(e.target,`Evolve target for "${e.component}"`);t.addTrend(e.component,r,n.y)}}),e.annotations.length>0){let n=e.annotations[0],r=g(n.x,n.y,`Annotations box`);t.setAnnotationsBox(r.x,r.y)}e.annotation.forEach(e=>{let n=g(e.x,e.y,`Annotation ${e.number}`);t.addAnnotation(e.number,[{x:n.x,y:n.y}],e.text)}),e.accelerators.forEach(e=>{let n=g(e.x,e.y,`Accelerator "${e.name}"`);t.addAccelerator(e.name,n.x,n.y)}),e.deaccelerators.forEach(e=>{let n=g(e.x,e.y,`Deaccelerator "${e.name}"`);t.addDeaccelerator(e.name,n.x,n.y)})},`populateDb`),b={parser:{yy:void 0},parse:t(async t=>{let n=await m(`wardley`,t);e.debug(n);let r=b.parser?.yy;if(!r||typeof r.addNode!=`function`)throw Error(`parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);y(n,r)},`parse`)},x=new class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{t(this,`WardleyBuilder`)}addNode(e){let t=this.nodes.get(e.id)??{id:e.id,label:e.label},n={...t,...e,className:e.className??t.className,labelOffsetX:e.labelOffsetX??t.labelOffsetX,labelOffsetY:e.labelOffsetY??t.labelOffsetY};this.nodes.set(e.id,n)}addLink(e){this.links.push(e)}addTrend(e){this.trends.set(e.nodeId,e)}startPipeline(e){this.pipelines.set(e,{nodeId:e,componentIds:[]});let t=this.nodes.get(e);t&&(t.isPipelineParent=!0)}addPipelineComponent(e,t){let n=this.pipelines.get(e);n&&n.componentIds.push(t);let r=this.nodes.get(t);r&&(r.inPipeline=!0)}addAnnotation(e){this.annotations.push(e)}addNote(e){this.notes.push(e)}addAccelerator(e){this.accelerators.push(e)}addDeaccelerator(e){this.deaccelerators.push(e)}setAnnotationsBox(e,t){this.annotationsBox={x:e,y:t}}setAxes(e){this.axes={...this.axes,...e}}setSize(e,t){this.size={width:e,height:t}}getNode(e){return this.nodes.get(e)}build(){let e=[];for(let t of this.nodes.values()){if(typeof t.x!=`number`||typeof t.y!=`number`)throw Error(`Node "${t.label}" is missing coordinates`);e.push(t)}return{nodes:e,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}};function S(e){let t=l();return i(e.trim(),t)}t(S,`textSanitizer`);function C(){return l()[`wardley-beta`]}t(C,`getConfig`);function w(e,t,n,r,i,a,o,s,c){x.addNode({id:e,label:S(t),x:n,y:r,className:i,labelOffsetX:a,labelOffsetY:o,inertia:s,sourceStrategy:c})}t(w,`addNode`);function T(e,t,n=!1,r,i){x.addLink({source:e,target:t,dashed:n,label:r,flow:i})}t(T,`addLink`);function E(e,t,n){x.addTrend({nodeId:e,targetX:t,targetY:n})}t(E,`addTrend`);function D(e,t,n){x.addAnnotation({number:e,coordinates:t,text:n?S(n):void 0})}t(D,`addAnnotation`);function O(e,t,n){x.addNote({text:S(e),x:t,y:n})}t(O,`addNote`);function k(e,t,n){x.addAccelerator({name:S(e),x:t,y:n})}t(k,`addAccelerator`);function A(e,t,n){x.addDeaccelerator({name:S(e),x:t,y:n})}t(A,`addDeaccelerator`);function j(e,t){x.setAnnotationsBox(e,t)}t(j,`setAnnotationsBox`);function M(e,t){x.setSize(e,t)}t(M,`setSize`);function N(e){x.startPipeline(e)}t(N,`startPipeline`);function P(e,t){x.addPipelineComponent(e,t)}t(P,`addPipelineComponent`);function F(e){let t={};e.xLabel&&(t.xLabel=S(e.xLabel)),e.yLabel&&(t.yLabel=S(e.yLabel)),e.stages&&(t.stages=e.stages.map(e=>S(e))),e.stageBoundaries&&(t.stageBoundaries=e.stageBoundaries),x.setAxes(t)}t(F,`updateAxes`);function I(e){return x.getNode(e)}t(I,`getNode`);function L(){return x.build()}t(L,`getWardleyData`);function R(){x.clear(),c()}t(R,`clear`);var z={getConfig:C,addNode:w,addLink:T,addTrend:E,addAnnotation:D,addNote:O,addAccelerator:k,addDeaccelerator:A,setAnnotationsBox:j,setSize:M,startPipeline:N,addPipelineComponent:P,updateAxes:F,getNode:I,getWardleyData:L,clear:R,setAccTitle:a,getAccTitle:d,setDiagramTitle:o,getDiagramTitle:r,getAccDescription:s,setAccDescription:n},B=[`Genesis`,`Custom Built`,`Product`,`Commodity`],V=t(()=>{let{themeVariables:e}=l();return{backgroundColor:e.wardley?.backgroundColor??e.background??`#fff`,axisColor:e.wardley?.axisColor??`#000`,axisTextColor:e.wardley?.axisTextColor??e.primaryTextColor??`#222`,gridColor:e.wardley?.gridColor??`rgba(100, 100, 100, 0.2)`,componentFill:e.wardley?.componentFill??`#fff`,componentStroke:e.wardley?.componentStroke??`#000`,componentLabelColor:e.wardley?.componentLabelColor??e.primaryTextColor??`#222`,linkStroke:e.wardley?.linkStroke??`#000`,evolutionStroke:e.wardley?.evolutionStroke??`#dc3545`,annotationStroke:e.wardley?.annotationStroke??`#000`,annotationTextColor:e.wardley?.annotationTextColor??e.primaryTextColor??`#222`,annotationFill:e.wardley?.annotationFill??e.background??`#fff`}},`getTheme`),H=t(()=>{let e=l()[`wardley-beta`];return{width:e?.width??900,height:e?.height??600,padding:e?.padding??48,nodeRadius:e?.nodeRadius??6,nodeLabelOffset:e?.nodeLabelOffset??8,axisFontSize:e?.axisFontSize??12,labelFontSize:e?.labelFontSize??10,showGrid:e?.showGrid??!1,useMaxWidth:e?.useMaxWidth??!0}},`getConfigValues`),U={parser:b,db:z,renderer:{draw:t((n,r,i,a)=>{e.debug(`Rendering Wardley map
2
2
  `+n);let o=H(),s=V(),c=o.nodeRadius*1.6,l=a.db,d=l.getWardleyData(),p=l.getDiagramTitle(),m=d.size?.width??o.width,h=d.size?.height??o.height,g=f(r);g.selectAll(`*`).remove(),u(g,h,m,o.useMaxWidth),g.attr(`viewBox`,`0 0 ${m} ${h}`);let _=g.append(`g`).attr(`class`,`wardley-map`),v=g.append(`defs`);v.append(`marker`).attr(`id`,`arrow-${r}`).attr(`viewBox`,`0 0 10 10`).attr(`refX`,9).attr(`refY`,5).attr(`markerWidth`,6).attr(`markerHeight`,6).attr(`orient`,`auto-start-reverse`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`fill`,s.evolutionStroke).attr(`stroke`,`none`),v.append(`marker`).attr(`id`,`link-arrow-end-${r}`).attr(`viewBox`,`0 0 10 10`).attr(`refX`,9).attr(`refY`,5).attr(`markerWidth`,5).attr(`markerHeight`,5).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`fill`,s.linkStroke).attr(`stroke`,`none`),v.append(`marker`).attr(`id`,`link-arrow-start-${r}`).attr(`viewBox`,`0 0 10 10`).attr(`refX`,1).attr(`refY`,5).attr(`markerWidth`,5).attr(`markerHeight`,5).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 10 0 L 0 5 L 10 10 z`).attr(`fill`,s.linkStroke).attr(`stroke`,`none`),_.append(`rect`).attr(`class`,`wardley-background`).attr(`width`,m).attr(`height`,h).attr(`fill`,s.backgroundColor);let y=m-o.padding*2,b=h-o.padding*2;p&&_.append(`text`).attr(`class`,`wardley-title`).attr(`x`,m/2).attr(`y`,o.padding/2).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize*1.05).attr(`font-weight`,`bold`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(p);let x=t(e=>o.padding+e/100*y,`projectX`),S=t(e=>h-o.padding-e/100*b,`projectY`),C=_.append(`g`).attr(`class`,`wardley-axes`);C.append(`line`).attr(`x1`,o.padding).attr(`x2`,m-o.padding).attr(`y1`,h-o.padding).attr(`y2`,h-o.padding).attr(`stroke`,s.axisColor).attr(`stroke-width`,1),C.append(`line`).attr(`x1`,o.padding).attr(`x2`,o.padding).attr(`y1`,o.padding).attr(`y2`,h-o.padding).attr(`stroke`,s.axisColor).attr(`stroke-width`,1);let w=d.axes.xLabel??`Evolution`,T=d.axes.yLabel??`Visibility`;C.append(`text`).attr(`class`,`wardley-axis-label wardley-axis-label-x`).attr(`x`,o.padding+y/2).attr(`y`,h-o.padding/4).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize).attr(`font-weight`,`bold`).attr(`text-anchor`,`middle`).text(w),C.append(`text`).attr(`class`,`wardley-axis-label wardley-axis-label-y`).attr(`x`,o.padding/3).attr(`y`,o.padding+b/2).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize).attr(`font-weight`,`bold`).attr(`text-anchor`,`middle`).attr(`transform`,`rotate(-90 ${o.padding/3} ${o.padding+b/2})`).text(T);let E=d.axes.stages&&d.axes.stages.length>0?d.axes.stages:B;if(E.length>0){let e=_.append(`g`).attr(`class`,`wardley-stages`),t=d.axes.stageBoundaries,n=[];if(t&&t.length===E.length){let e=0;t.forEach(t=>{n.push({start:e,end:t}),e=t})}else{let e=1/E.length;E.forEach((t,r)=>{n.push({start:r*e,end:(r+1)*e})})}E.forEach((t,r)=>{let i=n[r],a=o.padding+i.start*y,c=(a+(o.padding+i.end*y))/2;r>0&&e.append(`line`).attr(`x1`,a).attr(`x2`,a).attr(`y1`,o.padding).attr(`y2`,h-o.padding).attr(`stroke`,`#000`).attr(`stroke-width`,1).attr(`stroke-dasharray`,`5 5`).attr(`opacity`,.8),e.append(`text`).attr(`class`,`wardley-stage-label`).attr(`x`,c).attr(`y`,h-o.padding/1.5).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize-2).attr(`text-anchor`,`middle`).text(t)})}if(o.showGrid){let e=_.append(`g`).attr(`class`,`wardley-grid`);for(let t=1;t<4;t++){let n=t/4,r=o.padding+y*n;e.append(`line`).attr(`x1`,r).attr(`x2`,r).attr(`y1`,o.padding).attr(`y2`,h-o.padding).attr(`stroke`,s.gridColor).attr(`stroke-dasharray`,`2 6`),e.append(`line`).attr(`x1`,o.padding).attr(`x2`,m-o.padding).attr(`y1`,h-o.padding-b*n).attr(`y2`,h-o.padding-b*n).attr(`stroke`,s.gridColor).attr(`stroke-dasharray`,`2 6`)}}let D=new Map;if(d.nodes.forEach(e=>{D.set(e.id,{x:x(e.x),y:S(e.y),node:e})}),d.pipelines.length>0){let e=_.append(`g`).attr(`class`,`wardley-pipelines`),t=_.append(`g`).attr(`class`,`wardley-pipeline-links`);d.pipelines.forEach(n=>{if(n.componentIds.length===0)return;let r=n.componentIds.map(e=>({id:e,pos:D.get(e),node:d.nodes.find(t=>t.id===e)})).filter(e=>e.pos&&e.node).sort((e,t)=>e.node.x-t.node.x);for(let e=0;e<r.length-1;e++){let n=r[e],i=r[e+1];t.append(`line`).attr(`class`,`wardley-pipeline-evolution-link`).attr(`x1`,n.pos.x).attr(`y1`,n.pos.y).attr(`x2`,i.pos.x).attr(`y2`,i.pos.y).attr(`stroke`,s.linkStroke).attr(`stroke-width`,1).attr(`stroke-dasharray`,`4 4`)}let i=1/0,a=-1/0,l=0;if(n.componentIds.forEach(e=>{let t=D.get(e);t&&(i=Math.min(i,t.x),a=Math.max(a,t.x),l=t.y)}),i!==1/0&&a!==-1/0){let t=o.nodeRadius*4,r=l-t/2,u=D.get(n.nodeId);u&&(u.x=(i+a)/2,u.y=r-c/6),e.append(`rect`).attr(`class`,`wardley-pipeline-box`).attr(`x`,i-15).attr(`y`,r).attr(`width`,a-i+30).attr(`height`,t).attr(`fill`,`none`).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5).attr(`rx`,4).attr(`ry`,4)}})}let O=_.append(`g`).attr(`class`,`wardley-links`),k=new Map;d.pipelines.forEach(e=>{k.set(e.nodeId,new Set(e.componentIds))});let A=d.links.filter(e=>!(!D.has(e.source)||!D.has(e.target)||k.get(e.target)?.has(e.source)));O.selectAll(`line`).data(A).enter().append(`line`).attr(`class`,e=>`wardley-link${e.dashed?` wardley-link--dashed`:``}`).attr(`x1`,e=>{let t=D.get(e.source),n=D.get(e.target),r=d.nodes.find(t=>t.id===e.source).isPipelineParent?c/Math.sqrt(2):o.nodeRadius,i=n.x-t.x,a=n.y-t.y,s=Math.sqrt(i*i+a*a);return t.x+i/s*r}).attr(`y1`,e=>{let t=D.get(e.source),n=D.get(e.target),r=d.nodes.find(t=>t.id===e.source).isPipelineParent?c/Math.sqrt(2):o.nodeRadius,i=n.x-t.x,a=n.y-t.y,s=Math.sqrt(i*i+a*a);return t.y+a/s*r}).attr(`x2`,e=>{let t=D.get(e.source),n=D.get(e.target),r=d.nodes.find(t=>t.id===e.target).isPipelineParent?c/Math.sqrt(2):o.nodeRadius,i=t.x-n.x,a=t.y-n.y,s=Math.sqrt(i*i+a*a);return n.x+i/s*r}).attr(`y2`,e=>{let t=D.get(e.source),n=D.get(e.target),r=d.nodes.find(t=>t.id===e.target).isPipelineParent?c/Math.sqrt(2):o.nodeRadius,i=t.x-n.x,a=t.y-n.y,s=Math.sqrt(i*i+a*a);return n.y+a/s*r}).attr(`stroke`,s.linkStroke).attr(`stroke-width`,1).attr(`stroke-dasharray`,e=>e.dashed?`6 6`:null).attr(`marker-end`,e=>e.flow===`forward`||e.flow===`bidirectional`?`url(#link-arrow-end-${r})`:null).attr(`marker-start`,e=>e.flow===`backward`||e.flow===`bidirectional`?`url(#link-arrow-start-${r})`:null),O.selectAll(`text`).data(A.filter(e=>e.label)).enter().append(`text`).attr(`class`,`wardley-link-label`).attr(`x`,e=>{let t=D.get(e.source),n=D.get(e.target),r=(t.x+n.x)/2,i=n.y-t.y,a=n.x-t.x;return r+i/Math.sqrt(a*a+i*i)*8}).attr(`y`,e=>{let t=D.get(e.source),n=D.get(e.target),r=(t.y+n.y)/2,i=n.x-t.x,a=n.y-t.y,o=Math.sqrt(i*i+a*a);return r+-i/o*8}).attr(`fill`,s.axisTextColor).attr(`font-size`,o.labelFontSize).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).attr(`transform`,e=>{let t=D.get(e.source),n=D.get(e.target),r=(t.x+n.x)/2,i=(t.y+n.y)/2,a=n.x-t.x,o=n.y-t.y,s=Math.sqrt(a*a+o*o),c=o/s,l=-a/s,u=r+c*8,d=i+l*8,f=Math.atan2(o,a)*180/Math.PI;return(f>90||f<-90)&&(f+=180),`rotate(${f} ${u} ${d})`}).text(e=>e.label);let j=_.append(`g`).attr(`class`,`wardley-trends`),M=d.trends.map(e=>{let t=D.get(e.nodeId);if(!t)return null;let n=x(e.targetX),r=S(e.targetY),i=n-t.x,a=r-t.y,s=Math.sqrt(i*i+a*a),c=o.nodeRadius+2;return{origin:t,targetX:n,targetY:r,adjustedX2:s>c?n-i/s*c:n,adjustedY2:s>c?r-a/s*c:r}}).filter(e=>e!==null);j.selectAll(`line`).data(M).enter().append(`line`).attr(`class`,`wardley-trend`).attr(`x1`,e=>e.origin.x).attr(`y1`,e=>e.origin.y).attr(`x2`,e=>e.adjustedX2).attr(`y2`,e=>e.adjustedY2).attr(`stroke`,s.evolutionStroke).attr(`stroke-width`,1).attr(`stroke-dasharray`,`4 4`).attr(`marker-end`,`url(#arrow-${r})`);let N=_.append(`g`).attr(`class`,`wardley-nodes`).selectAll(`g`).data(d.nodes).enter().append(`g`).attr(`class`,e=>[`wardley-node`,e.className?`wardley-node--${e.className}`:``].filter(Boolean).join(` `));N.filter(e=>e.sourceStrategy===`outsource`).append(`circle`).attr(`class`,`wardley-outsource-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`#666`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>e.sourceStrategy===`buy`).append(`circle`).attr(`class`,`wardley-buy-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`#ccc`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>e.sourceStrategy===`build`).append(`circle`).attr(`class`,`wardley-build-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`#eee`).attr(`stroke`,`#000`).attr(`stroke-width`,1);let P=N.filter(e=>e.sourceStrategy===`market`);P.append(`circle`).attr(`class`,`wardley-market-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>!e.isPipelineParent&&e.sourceStrategy!==`market`&&e.className!==`anchor`).append(`circle`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius).attr(`fill`,s.componentFill).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1);let F=o.nodeRadius*.7,I=o.nodeRadius*1.2;if(P.append(`line`).attr(`class`,`wardley-market-line`).attr(`x1`,e=>D.get(e.id).x).attr(`y1`,e=>D.get(e.id).y-I).attr(`x2`,e=>D.get(e.id).x-I*Math.cos(Math.PI/6)).attr(`y2`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),P.append(`line`).attr(`class`,`wardley-market-line`).attr(`x1`,e=>D.get(e.id).x-I*Math.cos(Math.PI/6)).attr(`y1`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`x2`,e=>D.get(e.id).x+I*Math.cos(Math.PI/6)).attr(`y2`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),P.append(`line`).attr(`class`,`wardley-market-line`).attr(`x1`,e=>D.get(e.id).x+I*Math.cos(Math.PI/6)).attr(`y1`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`x2`,e=>D.get(e.id).x).attr(`y2`,e=>D.get(e.id).y-I).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),P.append(`circle`).attr(`class`,`wardley-market-dot`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y-I).attr(`r`,F).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,2),P.append(`circle`).attr(`class`,`wardley-market-dot`).attr(`cx`,e=>D.get(e.id).x-I*Math.cos(Math.PI/6)).attr(`cy`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`r`,F).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,2),P.append(`circle`).attr(`class`,`wardley-market-dot`).attr(`cx`,e=>D.get(e.id).x+I*Math.cos(Math.PI/6)).attr(`cy`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`r`,F).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,2),N.filter(e=>e.isPipelineParent===!0).append(`rect`).attr(`x`,e=>D.get(e.id).x-c/2).attr(`y`,e=>D.get(e.id).y-c/2).attr(`width`,c).attr(`height`,c).attr(`fill`,s.componentFill).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>e.inertia===!0).append(`line`).attr(`class`,`wardley-inertia`).attr(`x1`,e=>{let t=D.get(e.id),n=e.isPipelineParent?c/2+15:o.nodeRadius+15;return e.sourceStrategy&&(n+=o.nodeRadius+10),t.x+n}).attr(`y1`,e=>{let t=D.get(e.id),n=e.isPipelineParent?c:o.nodeRadius*2;return t.y-n/2}).attr(`x2`,e=>{let t=D.get(e.id),n=e.isPipelineParent?c/2+15:o.nodeRadius+15;return e.sourceStrategy&&(n+=o.nodeRadius+10),t.x+n}).attr(`y2`,e=>{let t=D.get(e.id),n=e.isPipelineParent?c:o.nodeRadius*2;return t.y+n/2}).attr(`stroke`,s.componentStroke).attr(`stroke-width`,6),N.append(`text`).attr(`x`,e=>{let t=D.get(e.id);if(e.className===`anchor`)return e.labelOffsetX===void 0?t.x:t.x+e.labelOffsetX;let n=o.nodeLabelOffset;e.sourceStrategy&&e.labelOffsetX===void 0&&(n+=10);let r=e.labelOffsetX??n;return t.x+r}).attr(`y`,e=>{let t=D.get(e.id);if(e.className===`anchor`)return e.labelOffsetY===void 0?t.y-3:t.y+e.labelOffsetY;let n=-o.nodeLabelOffset;e.sourceStrategy&&e.labelOffsetY===void 0&&(n-=10);let r=e.labelOffsetY??n;return t.y+r}).attr(`class`,`wardley-node-label`).attr(`fill`,e=>e.className===`evolved`?s.evolutionStroke:e.className===`anchor`?`#000`:s.componentLabelColor).attr(`font-size`,o.labelFontSize).attr(`font-weight`,e=>e.className===`anchor`?`bold`:`normal`).attr(`text-anchor`,e=>e.className===`anchor`?`middle`:`start`).attr(`dominant-baseline`,e=>e.className===`anchor`?`middle`:`auto`).text(e=>e.label),d.annotations.length>0){let e=_.append(`g`).attr(`class`,`wardley-annotations`);if(d.annotations.forEach(t=>{let n=t.coordinates.map(e=>({x:x(e.x),y:S(e.y)}));if(n.length>1)for(let t=0;t<n.length-1;t++)e.append(`line`).attr(`class`,`wardley-annotation-line`).attr(`x1`,n[t].x).attr(`y1`,n[t].y).attr(`x2`,n[t+1].x).attr(`y2`,n[t+1].y).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5).attr(`stroke-dasharray`,`4 4`);n.forEach(n=>{let r=e.append(`g`).attr(`class`,`wardley-annotation`);r.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,10).attr(`fill`,`white`).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5),r.append(`text`).attr(`x`,n.x).attr(`y`,n.y).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`central`).attr(`font-size`,10).attr(`fill`,s.axisTextColor).attr(`font-weight`,`bold`).text(t.number)})}),d.annotationsBox){let t=x(d.annotationsBox.x),n=S(d.annotationsBox.y),r=e.append(`g`).attr(`class`,`wardley-annotations-box`),i=[...d.annotations].filter(e=>e.text).sort((e,t)=>e.number-t.number),a=[];if(i.forEach((e,i)=>{let o=r.append(`text`).attr(`x`,t+10).attr(`y`,n+10+(i+1)*16).attr(`font-size`,11).attr(`fill`,s.axisTextColor).attr(`text-anchor`,`start`).attr(`dominant-baseline`,`middle`).text(`${e.number}. ${e.text}`);a.push(o)}),a.length>0){let e=0,c=0;a.forEach(t=>{let n=t.node(),r=n.getComputedTextLength();e=Math.max(e,r);let i=n.getBBox();c=Math.max(c,i.height)});let l=e+20+105,u=i.length*16+20+c/2,d=o.padding,f=m-o.padding-l,p=o.padding,g=h-o.padding-u;t=Math.max(d,Math.min(t,f)),n=Math.max(p,Math.min(n,g)),a.forEach((e,r)=>{e.attr(`x`,t+10).attr(`y`,n+10+(r+1)*16)}),r.insert(`rect`,`text`).attr(`x`,t).attr(`y`,n).attr(`width`,l).attr(`height`,u).attr(`fill`,`white`).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5).attr(`rx`,4).attr(`ry`,4)}}}if(d.notes.length>0){let e=_.append(`g`).attr(`class`,`wardley-notes`);d.notes.forEach(t=>{let n=x(t.x),r=S(t.y);e.append(`text`).attr(`x`,n).attr(`y`,r).attr(`text-anchor`,`start`).attr(`font-size`,11).attr(`fill`,s.axisTextColor).attr(`font-weight`,`bold`).text(t.text)})}if(d.accelerators.length>0){let e=_.append(`g`).attr(`class`,`wardley-accelerators`);d.accelerators.forEach(t=>{let n=x(t.x),r=S(t.y),i=`
3
3
  M ${n} ${r-30/2}
4
4
  L ${n+60-20} ${r-30/2}
@@ -1,4 +1,4 @@
1
- import{g as e,h as t}from"./src-CwB968DO.js";import{B as n,C as r,E as i,L as a,V as o,W as s,_ as c,a as l,c as u,d,v as f,y as p}from"./chunk-ICPOFSXX-CKhl9J-H.js";import{t as m}from"./linear-Cfm_8_pU.js";import{t as h}from"./ordinal-jLCwuvYg.js";import"./defaultLocale-D_VMtRaY.js";import{t as g}from"./init-vVpfz1D6.js";import"./dist-CjjtmoWL.js";import{r as _}from"./chunk-5PVQY5BW-C_ajQOGC.js";import{t as v}from"./line-C31b0rtY.js";import{t as y}from"./chunk-426QAEUC-CWMiOm8Y.js";import{t as b}from"./chunk-U2HBQHQK-Bndyn5nF.js";function x(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function S(){var e=h().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=x(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return S(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},g.apply(d(),arguments)}var C=(function(){var e=t(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,10,12,14,16,18,19,21,23],r=[2,6],i=[1,3],a=[1,5],o=[1,6],s=[1,7],c=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],u=[1,26],d=[1,28],f=[1,29],p=[1,30],m=[1,31],h=[1,32],g=[1,33],_=[1,34],v=[1,35],y=[1,36],b=[1,37],x=[1,43],S=[1,42],C=[1,47],w=[1,50],T=[1,10,12,14,16,18,19,21,23,34,35,36],E=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],D=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],O=[1,64],k={trace:t(function(){},`trace`),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:`error`,5:`XYCHART`,8:`CHART_ORIENTATION`,10:`title`,12:`X_AXIS`,14:`Y_AXIS`,16:`LINE`,18:`BAR`,19:`acc_title`,20:`acc_title_value`,21:`acc_descr`,22:`acc_descr_value`,23:`acc_descr_multiline_value`,24:`SQUARE_BRACES_START`,26:`SQUARE_BRACES_END`,27:`NUMBER_WITH_DECIMAL`,28:`COMMA`,31:`ARROW_DELIMITER`,34:`NEWLINE`,35:`SEMI`,36:`EOF`,38:`STR`,39:`MD_STR`,41:`AMP`,42:`NUM`,43:`ALPHA`,44:`PLUS`,45:`EQUALS`,46:`MULT`,47:`DOT`,48:`BRKT`,49:`MINUS`,50:`UNDERSCORE`},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:t(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 5:r.setOrientation(a[s]);break;case 9:r.setDiagramTitle(a[s].text.trim());break;case 12:r.setLineData({text:``,type:`text`},a[s]);break;case 13:r.setLineData(a[s-1],a[s]);break;case 14:r.setBarData({text:``,type:`text`},a[s]);break;case 15:r.setBarData(a[s-1],a[s]);break;case 16:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 19:this.$=a[s-1];break;case 20:this.$=[Number(a[s-2]),...a[s]];break;case 21:this.$=[Number(a[s])];break;case 22:r.setXAxisTitle(a[s]);break;case 23:r.setXAxisTitle(a[s-1]);break;case 24:r.setXAxisTitle({type:`text`,text:``});break;case 25:r.setXAxisBand(a[s]);break;case 26:r.setXAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 27:this.$=a[s-1];break;case 28:this.$=[a[s-2],...a[s]];break;case 29:this.$=[a[s]];break;case 30:r.setYAxisTitle(a[s]);break;case 31:r.setYAxisTitle(a[s-1]);break;case 32:r.setYAxisTitle({type:`text`,text:``});break;case 33:r.setYAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 37:this.$={text:a[s],type:`text`};break;case 38:this.$={text:a[s],type:`text`};break;case 39:this.$={text:a[s],type:`markdown`};break;case 40:this.$=a[s];break;case 41:this.$=a[s-1]+``+a[s];break}},`anonymous`),table:[e(n,r,{3:1,4:2,7:4,5:i,34:a,35:o,36:s}),{1:[3]},e(n,r,{4:2,7:4,3:8,5:i,34:a,35:o,36:s}),e(n,r,{4:2,7:4,6:9,3:10,5:i,8:[1,11],34:a,35:o,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(c,[2,34]),e(c,[2,35]),e(c,[2,36]),{1:[2,1]},e(n,r,{4:2,7:4,3:21,5:i,34:a,35:o,36:s}),{1:[2,3]},e(c,[2,5]),e(n,[2,7],{4:22,34:a,35:o,36:s}),{11:23,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{11:39,13:38,24:x,27:S,29:40,30:41,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{11:45,15:44,27:C,33:46,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{11:49,17:48,24:w,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{11:52,17:51,24:w,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{20:[1,53]},{22:[1,54]},e(T,[2,18]),{1:[2,2]},e(T,[2,8]),e(T,[2,9]),e(E,[2,37],{40:55,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b}),e(E,[2,38]),e(E,[2,39]),e(D,[2,40]),e(D,[2,42]),e(D,[2,43]),e(D,[2,44]),e(D,[2,45]),e(D,[2,46]),e(D,[2,47]),e(D,[2,48]),e(D,[2,49]),e(D,[2,50]),e(D,[2,51]),e(T,[2,10]),e(T,[2,22],{30:41,29:56,24:x,27:S}),e(T,[2,24]),e(T,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},e(T,[2,11]),e(T,[2,30],{33:60,27:C}),e(T,[2,32]),{31:[1,61]},e(T,[2,12]),{17:62,24:w},{25:63,27:O},e(T,[2,14]),{17:65,24:w},e(T,[2,16]),e(T,[2,17]),e(D,[2,41]),e(T,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(T,[2,31]),{27:[1,69]},e(T,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(T,[2,15]),e(T,[2,26]),e(T,[2,27]),{11:59,32:72,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},e(T,[2,33]),e(T,[2,19]),{25:73,27:O},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:t(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:t(function(e){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(e,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;typeof g.yy.parseError==`function`?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}t(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}t(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
1
+ import{g as e,h as t}from"./src-DXUM2BJo.js";import{B as n,C as r,E as i,L as a,V as o,W as s,_ as c,a as l,c as u,d,v as f,y as p}from"./chunk-ICPOFSXX-CdiEKIaz.js";import{t as m}from"./linear-BGotDbGs.js";import{t as h}from"./ordinal-BqEhkPyh.js";import"./defaultLocale-kiwRz9Au.js";import{t as g}from"./init-CKZirZ49.js";import"./dist-DSsFp0Qd.js";import{r as _}from"./chunk-5PVQY5BW-BVn4_fI5.js";import{t as v}from"./line-LQhmDT8k.js";import{t as y}from"./chunk-426QAEUC-CCYjp9C2.js";import{t as b}from"./chunk-U2HBQHQK-BQ9BPIFZ.js";function x(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function S(){var e=h().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=x(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return S(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},g.apply(d(),arguments)}var C=(function(){var e=t(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,10,12,14,16,18,19,21,23],r=[2,6],i=[1,3],a=[1,5],o=[1,6],s=[1,7],c=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],u=[1,26],d=[1,28],f=[1,29],p=[1,30],m=[1,31],h=[1,32],g=[1,33],_=[1,34],v=[1,35],y=[1,36],b=[1,37],x=[1,43],S=[1,42],C=[1,47],w=[1,50],T=[1,10,12,14,16,18,19,21,23,34,35,36],E=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],D=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],O=[1,64],k={trace:t(function(){},`trace`),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:`error`,5:`XYCHART`,8:`CHART_ORIENTATION`,10:`title`,12:`X_AXIS`,14:`Y_AXIS`,16:`LINE`,18:`BAR`,19:`acc_title`,20:`acc_title_value`,21:`acc_descr`,22:`acc_descr_value`,23:`acc_descr_multiline_value`,24:`SQUARE_BRACES_START`,26:`SQUARE_BRACES_END`,27:`NUMBER_WITH_DECIMAL`,28:`COMMA`,31:`ARROW_DELIMITER`,34:`NEWLINE`,35:`SEMI`,36:`EOF`,38:`STR`,39:`MD_STR`,41:`AMP`,42:`NUM`,43:`ALPHA`,44:`PLUS`,45:`EQUALS`,46:`MULT`,47:`DOT`,48:`BRKT`,49:`MINUS`,50:`UNDERSCORE`},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:t(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 5:r.setOrientation(a[s]);break;case 9:r.setDiagramTitle(a[s].text.trim());break;case 12:r.setLineData({text:``,type:`text`},a[s]);break;case 13:r.setLineData(a[s-1],a[s]);break;case 14:r.setBarData({text:``,type:`text`},a[s]);break;case 15:r.setBarData(a[s-1],a[s]);break;case 16:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 19:this.$=a[s-1];break;case 20:this.$=[Number(a[s-2]),...a[s]];break;case 21:this.$=[Number(a[s])];break;case 22:r.setXAxisTitle(a[s]);break;case 23:r.setXAxisTitle(a[s-1]);break;case 24:r.setXAxisTitle({type:`text`,text:``});break;case 25:r.setXAxisBand(a[s]);break;case 26:r.setXAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 27:this.$=a[s-1];break;case 28:this.$=[a[s-2],...a[s]];break;case 29:this.$=[a[s]];break;case 30:r.setYAxisTitle(a[s]);break;case 31:r.setYAxisTitle(a[s-1]);break;case 32:r.setYAxisTitle({type:`text`,text:``});break;case 33:r.setYAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 37:this.$={text:a[s],type:`text`};break;case 38:this.$={text:a[s],type:`text`};break;case 39:this.$={text:a[s],type:`markdown`};break;case 40:this.$=a[s];break;case 41:this.$=a[s-1]+``+a[s];break}},`anonymous`),table:[e(n,r,{3:1,4:2,7:4,5:i,34:a,35:o,36:s}),{1:[3]},e(n,r,{4:2,7:4,3:8,5:i,34:a,35:o,36:s}),e(n,r,{4:2,7:4,6:9,3:10,5:i,8:[1,11],34:a,35:o,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(c,[2,34]),e(c,[2,35]),e(c,[2,36]),{1:[2,1]},e(n,r,{4:2,7:4,3:21,5:i,34:a,35:o,36:s}),{1:[2,3]},e(c,[2,5]),e(n,[2,7],{4:22,34:a,35:o,36:s}),{11:23,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{11:39,13:38,24:x,27:S,29:40,30:41,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{11:45,15:44,27:C,33:46,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{11:49,17:48,24:w,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{11:52,17:51,24:w,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},{20:[1,53]},{22:[1,54]},e(T,[2,18]),{1:[2,2]},e(T,[2,8]),e(T,[2,9]),e(E,[2,37],{40:55,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b}),e(E,[2,38]),e(E,[2,39]),e(D,[2,40]),e(D,[2,42]),e(D,[2,43]),e(D,[2,44]),e(D,[2,45]),e(D,[2,46]),e(D,[2,47]),e(D,[2,48]),e(D,[2,49]),e(D,[2,50]),e(D,[2,51]),e(T,[2,10]),e(T,[2,22],{30:41,29:56,24:x,27:S}),e(T,[2,24]),e(T,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},e(T,[2,11]),e(T,[2,30],{33:60,27:C}),e(T,[2,32]),{31:[1,61]},e(T,[2,12]),{17:62,24:w},{25:63,27:O},e(T,[2,14]),{17:65,24:w},e(T,[2,16]),e(T,[2,17]),e(D,[2,41]),e(T,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(T,[2,31]),{27:[1,69]},e(T,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(T,[2,15]),e(T,[2,26]),e(T,[2,27]),{11:59,32:72,37:24,38:l,39:u,40:27,41:d,42:f,43:p,44:m,45:h,46:g,47:_,48:v,49:y,50:b},e(T,[2,33]),e(T,[2,19]),{25:73,27:O},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:t(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:t(function(e){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(e,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;typeof g.yy.parseError==`function`?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}t(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}t(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
2
2
  `+h.showPosition()+`
3
3
  Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};k.lexer=(function(){return{EOF:1,parseError:t(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:t(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:t(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:t(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:t(function(){return this._more=!0,this},`more`),reject:t(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:t(function(e){this.unput(this.match.slice(e))},`less`),pastInput:t(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:t(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:t(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
@@ -5,13 +5,13 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Browser — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/browser-eLSiC7_b.js"></script>
8
+ <script type="module" crossorigin src="/assets/browser-Ct5Kwlmk.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/brand-C7kj0USi.js">
11
- <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-BIHiyyxU.js">
12
- <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-CG_Iel5F.js">
13
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-DkoQSsqo.js">
14
- <link rel="stylesheet" crossorigin href="/assets/brand-4F9ZXBF8.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/brand-zL3tAdql.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-CDY0jUMb.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-BZsJuUm-.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DHv6_SZ4.js">
14
+ <link rel="stylesheet" crossorigin href="/assets/brand-N-Hi3IPA.css">
15
15
  <link rel="stylesheet" crossorigin href="/assets/OperatorConversations-qc_xy7Az.css">
16
16
  </head>
17
17
  <body>
@@ -5,16 +5,17 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Chat — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/chat-DedpVKUl.js"></script>
8
+ <script type="module" crossorigin src="/assets/chat-CEde1CLX.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/brand-C7kj0USi.js">
11
- <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-BIHiyyxU.js">
12
- <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-CG_Iel5F.js">
13
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-DkoQSsqo.js">
14
- <link rel="modulepreload" crossorigin href="/assets/preload-helper-TKOBYGYD.js">
15
- <link rel="modulepreload" crossorigin href="/assets/audio-attachment-mime-DOBET-W1.js">
16
- <link rel="modulepreload" crossorigin href="/assets/page-BhHTnqv4.js">
17
- <link rel="stylesheet" crossorigin href="/assets/brand-4F9ZXBF8.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/brand-zL3tAdql.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-CDY0jUMb.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-BZsJuUm-.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DHv6_SZ4.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/admin-types-D2qTXuCg.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/preload-helper-C5gCWwwF.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/audio-attachment-mime-CVxjPN8V.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/page-Dts8u8MD.js">
18
+ <link rel="stylesheet" crossorigin href="/assets/brand-N-Hi3IPA.css">
18
19
  <link rel="stylesheet" crossorigin href="/assets/OperatorConversations-qc_xy7Az.css">
19
20
  </head>
20
21
  <body>
@@ -5,12 +5,12 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Data — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/data-BcoBY39U.js"></script>
8
+ <script type="module" crossorigin src="/assets/data-TZOmA1Qg.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/brand-C7kj0USi.js">
11
- <link rel="modulepreload" crossorigin href="/assets/graph-labels-YYgGsEVd.js">
12
- <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-BIHiyyxU.js">
13
- <link rel="stylesheet" crossorigin href="/assets/brand-4F9ZXBF8.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/brand-zL3tAdql.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/graph-labels-OBadNo54.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-CDY0jUMb.js">
13
+ <link rel="stylesheet" crossorigin href="/assets/brand-N-Hi3IPA.css">
14
14
  <link rel="stylesheet" crossorigin href="/assets/OperatorConversations-qc_xy7Az.css">
15
15
  </head>
16
16
  <body>
@@ -5,15 +5,15 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Graph — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/graph-C7Hye_vp.js"></script>
8
+ <script type="module" crossorigin src="/assets/graph-DWT1rhy9.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/brand-C7kj0USi.js">
11
- <link rel="modulepreload" crossorigin href="/assets/graph-labels-YYgGsEVd.js">
12
- <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-BIHiyyxU.js">
13
- <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-CG_Iel5F.js">
14
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-DkoQSsqo.js">
15
- <link rel="modulepreload" crossorigin href="/assets/Checkbox-DMA1hVhn.js">
16
- <link rel="stylesheet" crossorigin href="/assets/brand-4F9ZXBF8.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/brand-zL3tAdql.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/graph-labels-OBadNo54.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-CDY0jUMb.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-BZsJuUm-.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DHv6_SZ4.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/Checkbox-DjM6aYP_.js">
16
+ <link rel="stylesheet" crossorigin href="/assets/brand-N-Hi3IPA.css">
17
17
  <link rel="stylesheet" crossorigin href="/assets/OperatorConversations-qc_xy7Az.css">
18
18
  </head>
19
19
  <body>
@@ -5,17 +5,18 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/admin-BHvOMcCh.js"></script>
8
+ <script type="module" crossorigin src="/assets/admin-XbVTsU2q.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/brand-C7kj0USi.js">
11
- <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-BIHiyyxU.js">
12
- <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-CG_Iel5F.js">
13
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-DkoQSsqo.js">
14
- <link rel="modulepreload" crossorigin href="/assets/Checkbox-DMA1hVhn.js">
15
- <link rel="modulepreload" crossorigin href="/assets/AdminLoginScreens-DUpRIM1h.js">
16
- <link rel="stylesheet" crossorigin href="/assets/brand-4F9ZXBF8.css">
17
- <link rel="stylesheet" crossorigin href="/assets/OperatorConversations-qc_xy7Az.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/brand-zL3tAdql.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-CDY0jUMb.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-BZsJuUm-.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DHv6_SZ4.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/admin-types-D2qTXuCg.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/Checkbox-DjM6aYP_.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/AdminLoginScreens-WvRuaNIg.js">
17
+ <link rel="stylesheet" crossorigin href="/assets/brand-N-Hi3IPA.css">
18
18
  <link rel="stylesheet" crossorigin href="/assets/AdminLoginScreens-CWMpccrR.css">
19
+ <link rel="stylesheet" crossorigin href="/assets/OperatorConversations-qc_xy7Az.css">
19
20
  <link rel="stylesheet" href="/brand-defaults.css">
20
21
  </head>
21
22
  <body>
@@ -5,18 +5,19 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Operator — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/operator-WsXhcbBF.js"></script>
8
+ <script type="module" crossorigin src="/assets/operator-BpzQ9Ezb.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/brand-C7kj0USi.js">
11
- <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-BIHiyyxU.js">
12
- <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-CG_Iel5F.js">
13
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-DkoQSsqo.js">
14
- <link rel="modulepreload" crossorigin href="/assets/preload-helper-TKOBYGYD.js">
15
- <link rel="modulepreload" crossorigin href="/assets/audio-attachment-mime-DOBET-W1.js">
16
- <link rel="modulepreload" crossorigin href="/assets/page-BhHTnqv4.js">
17
- <link rel="modulepreload" crossorigin href="/assets/Checkbox-DMA1hVhn.js">
18
- <link rel="modulepreload" crossorigin href="/assets/AdminLoginScreens-DUpRIM1h.js">
19
- <link rel="stylesheet" crossorigin href="/assets/brand-4F9ZXBF8.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/brand-zL3tAdql.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-CDY0jUMb.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-BZsJuUm-.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DHv6_SZ4.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/admin-types-D2qTXuCg.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/preload-helper-C5gCWwwF.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/audio-attachment-mime-CVxjPN8V.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/page-Dts8u8MD.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/Checkbox-DjM6aYP_.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/AdminLoginScreens-WvRuaNIg.js">
20
+ <link rel="stylesheet" crossorigin href="/assets/brand-N-Hi3IPA.css">
20
21
  <link rel="stylesheet" crossorigin href="/assets/OperatorConversations-qc_xy7Az.css">
21
22
  <link rel="stylesheet" crossorigin href="/assets/AdminLoginScreens-CWMpccrR.css">
22
23
  </head>
@@ -5,17 +5,18 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/public-next-BKECyMz2.js"></script>
8
+ <script type="module" crossorigin src="/assets/public-next-ClQwtyeC.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/brand-C7kj0USi.js">
11
- <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-BIHiyyxU.js">
12
- <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-CG_Iel5F.js">
13
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-DkoQSsqo.js">
14
- <link rel="modulepreload" crossorigin href="/assets/preload-helper-TKOBYGYD.js">
15
- <link rel="modulepreload" crossorigin href="/assets/audio-attachment-mime-DOBET-W1.js">
16
- <link rel="modulepreload" crossorigin href="/assets/page-BhHTnqv4.js">
17
- <link rel="modulepreload" crossorigin href="/assets/AccessGate-CU4Qw6M6.js">
18
- <link rel="stylesheet" crossorigin href="/assets/brand-4F9ZXBF8.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/brand-zL3tAdql.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/OperatorConversations-CDY0jUMb.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-BZsJuUm-.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DHv6_SZ4.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/admin-types-D2qTXuCg.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/preload-helper-C5gCWwwF.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/audio-attachment-mime-CVxjPN8V.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/page-Dts8u8MD.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/AccessGate-BOqUU-za.js">
19
+ <link rel="stylesheet" crossorigin href="/assets/brand-N-Hi3IPA.css">
19
20
  <link rel="stylesheet" crossorigin href="/assets/OperatorConversations-qc_xy7Az.css">
20
21
  </head>
21
22
  <body class="public-surface">
@@ -5,15 +5,15 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/public-ViXjC_dA.js"></script>
8
+ <script type="module" crossorigin src="/assets/public-owWW-MIA.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
10
- <link rel="modulepreload" crossorigin href="/assets/brand-C7kj0USi.js">
11
- <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-CG_Iel5F.js">
12
- <link rel="modulepreload" crossorigin href="/assets/Checkbox-DMA1hVhn.js">
13
- <link rel="modulepreload" crossorigin href="/assets/preload-helper-TKOBYGYD.js">
14
- <link rel="modulepreload" crossorigin href="/assets/audio-attachment-mime-DOBET-W1.js">
15
- <link rel="modulepreload" crossorigin href="/assets/AccessGate-CU4Qw6M6.js">
16
- <link rel="stylesheet" crossorigin href="/assets/brand-4F9ZXBF8.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/brand-zL3tAdql.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/useSelectionMode-BZsJuUm-.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/Checkbox-DjM6aYP_.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/preload-helper-C5gCWwwF.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/audio-attachment-mime-CVxjPN8V.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/AccessGate-BOqUU-za.js">
16
+ <link rel="stylesheet" crossorigin href="/assets/brand-N-Hi3IPA.css">
17
17
  <link rel="stylesheet" crossorigin href="/assets/public-vnj7OhQj.css">
18
18
  <link rel="stylesheet" href="/brand-defaults.css">
19
19
  </head>
@@ -6591,6 +6591,28 @@ import { basename as basename2, dirname, join as join10, resolve as resolve11, s
6591
6591
  // server/routes/admin/sidebar-sessions.ts
6592
6592
  import { readdirSync as readdirSync4, readFileSync as readFileSync9, statSync as statSync2 } from "fs";
6593
6593
  import { join as join8, resolve as resolve10 } from "path";
6594
+
6595
+ // app/lib/whatsapp-reader/select-sessions.ts
6596
+ function isReaderChannelSession(role, channel) {
6597
+ return role === "admin" && (channel === "whatsapp" || channel === "telegram") || role === "public" && (channel === "whatsapp" || channel === "webchat");
6598
+ }
6599
+ function selectReaderChannelSessions(rows) {
6600
+ return rows.filter((r) => isReaderChannelSession(r.role, r.channel)).sort((a, b) => b.startedAt.localeCompare(a.startedAt)).map((r) => ({
6601
+ sessionId: r.sessionId,
6602
+ projectDir: r.projectDir,
6603
+ title: r.title,
6604
+ senderId: r.senderId,
6605
+ startedAt: r.startedAt,
6606
+ channel: r.channel,
6607
+ role: r.role,
6608
+ operatorName: null,
6609
+ whatsappName: null,
6610
+ lastMessageAt: r.lastMessageAt,
6611
+ modelGated: r.modelGated
6612
+ }));
6613
+ }
6614
+
6615
+ // server/routes/admin/sidebar-sessions.ts
6594
6616
  var SESSION_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.jsonl$/i;
6595
6617
  var CLI_MARKER_PREFIXES = ["<local-command-", "<command-name>", "<command-message>"];
6596
6618
  var PUBLIC_ROLE = "public";
@@ -6816,6 +6838,7 @@ app3.get("/", requireAdminSession, async (c) => {
6816
6838
  let subagentCount = 0;
6817
6839
  let nonResumableCount = 0;
6818
6840
  let archivedCount = 0;
6841
+ let excludedChannelCount = 0;
6819
6842
  const titleSourceCounts = { user: 0, ai: 0, "first-message": 0, prefix: 0 };
6820
6843
  const personIdBySession = /* @__PURE__ */ new Map();
6821
6844
  const adminUserIdBySession = /* @__PURE__ */ new Map();
@@ -6843,6 +6866,10 @@ app3.get("/", requireAdminSession, async (c) => {
6843
6866
  titleSourceCounts[resolved.source] += 1;
6844
6867
  const metaPath = join8(projectDir, `${sessionId}.meta.json`);
6845
6868
  const { bridgeIds, role, channel: sidecarChannel, personId, adminUserId } = readSidecarMeta(metaPath);
6869
+ if (isReaderChannelSession(role, sidecarChannel)) {
6870
+ excludedChannelCount += 1;
6871
+ continue;
6872
+ }
6846
6873
  const resumable = !(role === PUBLIC_ROLE && (sidecarChannel === WEBCHAT_CHANNEL || sidecarChannel === WHATSAPP_CHANNEL));
6847
6874
  if (personId) personIdBySession.set(sessionId, personId);
6848
6875
  if (adminUserId && role === ADMIN_ROLE && sidecarChannel === WEBCHAT_CHANNEL) {
@@ -6896,29 +6923,12 @@ app3.get("/", requireAdminSession, async (c) => {
6896
6923
  }
6897
6924
  rows.sort((a, b) => a.startedAt < b.startedAt ? 1 : -1);
6898
6925
  console.log(
6899
- `[admin-sessions-list] rows=${rows.length} live=${liveCount} subagents=${subagentCount} archived=${archivedCount} nonResumable=${nonResumableCount} titles user=${titleSourceCounts.user} ai=${titleSourceCounts.ai} first=${titleSourceCounts["first-message"]} prefix=${titleSourceCounts.prefix} personNames=${personNameCount} adminNames=${adminNameCount} accountId=${accountId ? accountId.slice(0, 8) : "unset"}`
6926
+ `[admin-sessions-list] rows=${rows.length} live=${liveCount} subagents=${subagentCount} archived=${archivedCount} nonResumable=${nonResumableCount} excludedChannel=${excludedChannelCount} titles user=${titleSourceCounts.user} ai=${titleSourceCounts.ai} first=${titleSourceCounts["first-message"]} prefix=${titleSourceCounts.prefix} personNames=${personNameCount} adminNames=${adminNameCount} accountId=${accountId ? accountId.slice(0, 8) : "unset"}`
6900
6927
  );
6901
6928
  return c.json({ sessions: rows, accountId });
6902
6929
  });
6903
6930
  var sidebar_sessions_default = app3;
6904
6931
 
6905
- // app/lib/whatsapp-reader/select-sessions.ts
6906
- function selectReaderChannelSessions(rows) {
6907
- return rows.filter((r) => r.role === "admin" && (r.channel === "whatsapp" || r.channel === "telegram") || r.role === "public" && (r.channel === "whatsapp" || r.channel === "webchat")).sort((a, b) => b.startedAt.localeCompare(a.startedAt)).map((r) => ({
6908
- sessionId: r.sessionId,
6909
- projectDir: r.projectDir,
6910
- title: r.title,
6911
- senderId: r.senderId,
6912
- startedAt: r.startedAt,
6913
- channel: r.channel,
6914
- role: r.role,
6915
- operatorName: null,
6916
- whatsappName: null,
6917
- lastMessageAt: r.lastMessageAt,
6918
- modelGated: r.modelGated
6919
- }));
6920
- }
6921
-
6922
6932
  // app/lib/admin-identity/pin-validator.ts
6923
6933
  import { createHash } from "crypto";
6924
6934
  import { existsSync as existsSync6, readFileSync as readFileSync10, readdirSync as readdirSync5, statSync as statSync3 } from "fs";
@@ -7121,6 +7131,7 @@ function isModelGated(turns) {
7121
7131
  }
7122
7132
  function parseTranscript(lines) {
7123
7133
  const out = [];
7134
+ const queuedPendingSuppress = /* @__PURE__ */ new Map();
7124
7135
  for (const line of lines) {
7125
7136
  if (!line || line[0] !== "{") continue;
7126
7137
  let row;
@@ -7145,12 +7156,26 @@ function parseTranscript(lines) {
7145
7156
  out.push(...assistantTurns(msg?.content, ts));
7146
7157
  continue;
7147
7158
  }
7159
+ if (row.type === "queue-operation" && row.operation === "enqueue") {
7160
+ const content = asString(row.content);
7161
+ if (content !== null && CHANNEL_WRAPPER2.test(content)) {
7162
+ const u = unwrapChannel(content);
7163
+ out.push({ kind: "operator-inbound", text: u.text, ts, ...u.source ? { source: u.source } : {} });
7164
+ queuedPendingSuppress.set(u.text, (queuedPendingSuppress.get(u.text) ?? 0) + 1);
7165
+ }
7166
+ continue;
7167
+ }
7148
7168
  if (row.type === "attachment") {
7149
7169
  const att = row.attachment;
7150
7170
  const isChannelQueued = att?.type === "queued_command" && att.isMeta === true && typeof att.origin === "object" && att.origin !== null && att.origin.kind === "channel" && typeof att.prompt === "string";
7151
7171
  if (isChannelQueued) {
7152
7172
  const u = unwrapChannel(att.prompt);
7153
- out.push({ kind: "operator-inbound", text: u.text, ts, ...u.source ? { source: u.source } : {} });
7173
+ const armed = queuedPendingSuppress.get(u.text) ?? 0;
7174
+ if (armed > 0) {
7175
+ queuedPendingSuppress.set(u.text, armed - 1);
7176
+ } else {
7177
+ out.push({ kind: "operator-inbound", text: u.text, ts, ...u.source ? { source: u.source } : {} });
7178
+ }
7154
7179
  }
7155
7180
  continue;
7156
7181
  }
@@ -7208,9 +7233,7 @@ app4.get("/conversations", requireAdminSession, async (c) => {
7208
7233
  const sessionId = basename2(path2).replace(/\.jsonl$/, "");
7209
7234
  const projectDir = dirname(path2);
7210
7235
  const meta = readSidecarMeta(join10(projectDir, `${sessionId}.meta.json`));
7211
- const isAdminChannel = meta.role === "admin" && (meta.channel === "whatsapp" || meta.channel === "telegram");
7212
- const isPublicChannel = meta.role === "public" && (meta.channel === "whatsapp" || meta.channel === "webchat");
7213
- if (!isAdminChannel && !isPublicChannel) continue;
7236
+ if (!isReaderChannelSession(meta.role, meta.channel)) continue;
7214
7237
  let body = "";
7215
7238
  try {
7216
7239
  body = readFileSync11(path2, "utf8");
@@ -7463,8 +7486,11 @@ function filterDeliveredFrames(lines) {
7463
7486
  const turns = [];
7464
7487
  let dropped = 0;
7465
7488
  for (const turn of parseTranscript(lines)) {
7466
- if (isDeliveredKind(turn.kind, PUBLIC_DELIVERED_KINDS)) turns.push(turn);
7467
- else dropped++;
7489
+ if (!isDeliveredKind(turn.kind, PUBLIC_DELIVERED_KINDS)) {
7490
+ dropped++;
7491
+ continue;
7492
+ }
7493
+ turns.push(turn.kind === "agent-error" ? { ...turn, raw: "" } : turn);
7468
7494
  }
7469
7495
  return { turns, dropped };
7470
7496
  }
@@ -10883,6 +10909,18 @@ async function resolveOwnerProfileBlock(accountId, userId) {
10883
10909
  return { ok: false, reason: "neo4j-unreachable" };
10884
10910
  }
10885
10911
  }
10912
+ async function resolveAuthenticatedName(accountId, userId) {
10913
+ if (!userId) return void 0;
10914
+ try {
10915
+ const res = await loadAdminUserName(accountId, userId);
10916
+ return res.source === "neo4j" ? res.joined : void 0;
10917
+ } catch (err) {
10918
+ console.error(
10919
+ `[spawn-context] resolveAuthenticatedName failed: ${err instanceof Error ? err.message : String(err)}`
10920
+ );
10921
+ return void 0;
10922
+ }
10923
+ }
10886
10924
  function frontmatterField(manifest, field2) {
10887
10925
  const fm = manifest.match(/^---\r?\n([\s\S]*?)\r?\n---/);
10888
10926
  if (!fm) return null;
@@ -14871,7 +14909,7 @@ var session_archive_default = app29;
14871
14909
 
14872
14910
  // server/routes/admin/session-rc-spawn.ts
14873
14911
  import { randomUUID as randomUUID10 } from "crypto";
14874
- function resolveSpawnPlan(host, operatorDomains, body, mintId = randomUUID10, adminUserId) {
14912
+ function resolveSpawnPlan(host, operatorDomains, body, mintId = randomUUID10, adminUserId, authenticatedName) {
14875
14913
  const operator = isOperatorHost(host, operatorDomains);
14876
14914
  const resumeId = typeof body.sessionId === "string" && body.sessionId.length > 0 ? body.sessionId : void 0;
14877
14915
  const name = typeof body.name === "string" && body.name.length > 0 ? body.name : void 0;
@@ -14890,6 +14928,7 @@ function resolveSpawnPlan(host, operatorDomains, body, mintId = randomUUID10, ad
14890
14928
  payload.webchatChannel = webchatChannelDescriptor(key);
14891
14929
  if (name) payload.name = name;
14892
14930
  if (adminUserId) payload.adminUserId = adminUserId;
14931
+ if (authenticatedName) payload.authenticatedName = authenticatedName;
14893
14932
  } else {
14894
14933
  sessionId = resumeId;
14895
14934
  payload.sessionId = resumeId;
@@ -14912,7 +14951,9 @@ app30.post("/", requireAdminSession, async (c) => {
14912
14951
  const host = (c.req.header("host") ?? "").split(":")[0];
14913
14952
  const cacheKey = c.get("cacheKey");
14914
14953
  const adminUserId = cacheKey ? getUserIdForSession(cacheKey) : void 0;
14915
- const plan = resolveSpawnPlan(host, getOperatorDomains(), body, randomUUID10, adminUserId);
14954
+ const accountId = cacheKey ? getAccountIdForSession(cacheKey) : void 0;
14955
+ const authenticatedName = accountId ? await resolveAuthenticatedName(accountId, adminUserId) : void 0;
14956
+ const plan = resolveSpawnPlan(host, getOperatorDomains(), body, randomUUID10, adminUserId, authenticatedName);
14916
14957
  const spawnReqId = randomUUID10();
14917
14958
  console.log(
14918
14959
  `[chat-spawn] op=request spawnReqId=${spawnReqId} origin=${plan.origin} kind=${plan.kind} sessionId=${plan.kind === "new" ? "new" : plan.sessionId}`
@@ -14980,7 +15021,7 @@ function isSelectableModel(id) {
14980
15021
  }
14981
15022
 
14982
15023
  // server/routes/admin/session-reseat.ts
14983
- function resolveReseatPlan(body, mintId = randomUUID11, adminUserId) {
15024
+ function resolveReseatPlan(body, mintId = randomUUID11, adminUserId, authenticatedName) {
14984
15025
  const sessionId = mintId();
14985
15026
  const key = `session:${sessionId}`;
14986
15027
  const payload = {
@@ -14994,6 +15035,7 @@ function resolveReseatPlan(body, mintId = randomUUID11, adminUserId) {
14994
15035
  };
14995
15036
  if (body.name) payload.name = body.name;
14996
15037
  if (adminUserId) payload.adminUserId = adminUserId;
15038
+ if (authenticatedName) payload.authenticatedName = authenticatedName;
14997
15039
  return { sessionId, payload };
14998
15040
  }
14999
15041
  var app31 = new Hono();
@@ -15016,7 +15058,9 @@ app31.post("/", requireAdminSession, async (c) => {
15016
15058
  try {
15017
15059
  const cacheKey = c.get("cacheKey");
15018
15060
  const adminUserId = cacheKey ? getUserIdForSession(cacheKey) : void 0;
15019
- const plan = resolveReseatPlan({ fromSessionId, model }, randomUUID11, adminUserId);
15061
+ const accountId = cacheKey ? getAccountIdForSession(cacheKey) : void 0;
15062
+ const authenticatedName = accountId ? await resolveAuthenticatedName(accountId, adminUserId) : void 0;
15063
+ const plan = resolveReseatPlan({ fromSessionId, model }, randomUUID11, adminUserId, authenticatedName);
15020
15064
  const reseatReqId = randomUUID11();
15021
15065
  console.log(`[chat-reseat] op=request reseatReqId=${reseatReqId} from=${fromSessionId} to-model=${model} new=${plan.sessionId}`);
15022
15066
  let res;
@@ -15046,8 +15090,8 @@ app31.post("/", requireAdminSession, async (c) => {
15046
15090
  try {
15047
15091
  const account = resolveAccount();
15048
15092
  if (account) {
15049
- const accountId = resolvePlatformAccountId();
15050
- const canonicalId = adminSessionIdFor(accountId, WEBCHAT_ADMIN_KEY);
15093
+ const accountId2 = resolvePlatformAccountId();
15094
+ const canonicalId = adminSessionIdFor(accountId2, WEBCHAT_ADMIN_KEY);
15051
15095
  const currentOverride = readCanonicalOverrideId(account.accountDir);
15052
15096
  if (fromSessionId === canonicalId || fromSessionId === currentOverride) {
15053
15097
  writeCanonicalOverrideId(account.accountDir, plan.sessionId);
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-CAM3fms7.js";import{o as t,u as n}from"./brand-C7kj0USi.js";import{c as r,d as i,l as a,u as o}from"./audio-attachment-mime-DOBET-W1.js";import{r as s}from"./useSelectionMode-CG_Iel5F.js";var c=e(n(),1);function l(){let[e,t]=(0,c.useState)(null),[n,s]=(0,c.useState)(null),[l,u]=(0,c.useState)(`loading`),[d,f]=(0,c.useState)(``),[p,m]=(0,c.useState)(null),[h,g]=(0,c.useState)(null),[_,v]=(0,c.useState)(!1),[y,b]=(0,c.useState)(null),x=(0,c.useMemo)(()=>r(),[]),S=(0,c.useMemo)(()=>a(),[]),[C,w]=(0,c.useState)(null),T=(0,c.useRef)(x||``),E=(0,c.useRef)(null),D=(0,c.useRef)(null),O=(0,c.useRef)(!1),k=(0,c.useRef)(null),[A,j]=(0,c.useState)(`request-link`),[M,N]=(0,c.useState)(null),P=(0,c.useRef)(null),F=(0,c.useRef)(null);(0,c.useEffect)(()=>{try{let e=sessionStorage.getItem(`maxy_session`);e&&(F.current=e)}catch{}},[]);let I=(0,c.useCallback)(e=>{E.current=e,t(e);try{sessionStorage.setItem(`maxy_session`,e)}catch{}u(`chat`)},[]),L=(0,c.useCallback)(()=>{E.current=null;try{sessionStorage.removeItem(`maxy_session`)}catch{}t(null),u(`auth-required`),j(`request-link`)},[]),R=(0,c.useCallback)(async e=>{j(`verifying`);try{let t=T.current,n=await fetch(`/api/access/verify-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,agentSlug:t})});if(window.history.replaceState({},``,window.location.pathname),n.ok){let e=await n.json().catch(()=>({}));return e?.displayName&&N({displayName:e.displayName,contactValue:``,expiresAt:null,status:`active`}),!0}return j(`verify-failed`),!1}catch{return j(`verify-failed`),!1}},[]),z=(0,c.useCallback)(async()=>{if(E.current)return E.current;if(D.current)return D.current;let e=(async()=>{try{let e=F.current,n=await fetch(`/api/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_id:o(),...x?{agent:x}:{},...S?{group_slug:S}:{},...e?{session_key:e}:{}})});if(!n.ok){let e=await n.json().catch(()=>({error:``}));return i&&console.error(`[session] POST /api/session failed: ${n.status} ${n.statusText}`,e),n.status===404?s(e.error||`Agent not found`):n.status===503&&s(e.error||`Service unavailable`),null}let r=await n.json();if(r.auth_required){r.agent_id&&(T.current=r.agent_id),f(r.displayName||``),r.agentImage&&m(r.agentImage),r.agentImageShape&&g(r.agentImageShape),r.showAgentName&&v(r.showAgentName),r.branding&&b(r.branding),u(`auth-required`);let e=new URLSearchParams(window.location.search).get(`token`);return e?await R(e)&&window.location.reload():j(`request-link`),null}E.current=r.session_key,t(r.session_key),r.displayName&&f(r.displayName),r.agentImage&&m(r.agentImage),r.agentImageShape&&g(r.agentImageShape),r.showAgentName&&v(r.showAgentName),r.branding&&b(r.branding),u(`chat`),r.resumed&&r.messages&&(O.current=!0,k.current=r.messages),r.group&&w({groupSlug:r.groupSlug,groupName:r.groupName,participants:r.participants??[]});try{sessionStorage.setItem(`maxy_session`,r.session_key)}catch{}return r.session_key}catch(e){return i&&console.error(`[session] fetch /api/session threw:`,e),s(`Unable to connect. Please check your connection and try again.`),null}finally{D.current=null}})();return D.current=e,e},[x,S,R]);return{sessionId:e,cacheKeyRef:E,sessionError:n,pageState:l,setPageState:u,agentDisplayName:d,agentImage:p,agentImageShape:h,showAgentName:_,agentSlug:x,branding:y,resolvedSlugRef:T,ensureSession:z,startNewSession:(0,c.useCallback)(async()=>{E.current=null,D.current=null,F.current=null,O.current=!1,k.current=null,t(null),s(null);try{sessionStorage.removeItem(`maxy_session`)}catch{}await z()},[z]),enterChat:I,enterGate:L,resumedRef:O,resumeMessagesRef:k,gateState:A,setGateState:j,grantInfo:M,setGrantInfo:N,gateCacheKeyRef:P,groupContext:C,groupSlug:S}}var u=t();function d({gateState:e,setGateState:t,grantInfo:n,resolvedSlugRef:r}){let[i,a]=(0,c.useState)(``),[o,l]=(0,c.useState)(!1),[d,f]=(0,c.useState)(null);async function p(e){e.preventDefault();let n=i.trim().toLowerCase();if(!n){f(`Enter the email you were invited on.`);return}l(!0),f(null);try{let e=await fetch(`/api/access/request-magic-link`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({contactValue:n,agentSlug:r.current})});if(e.status===429){f((await e.json().catch(()=>({})))?.error||`Too many requests. Try again later.`);return}t(`request-sent`)}catch{f(`Could not reach the server. Check your connection and try again.`)}finally{l(!1)}}return(0,u.jsxs)(`div`,{className:`access-gate`,children:[e===`verifying`&&(0,u.jsxs)(`div`,{className:`access-gate-message`,children:[(0,u.jsx)(`h2`,{children:`Verifying your link…`}),(0,u.jsx)(`p`,{children:`This takes a moment.`})]}),e===`verify-failed`&&(0,u.jsxs)(`div`,{className:`access-gate-message`,children:[(0,u.jsx)(`h2`,{children:`That link did not work`}),(0,u.jsx)(`p`,{children:`It may have expired, already been used, or been for a different agent. You can request a fresh one below.`}),(0,u.jsx)(s,{onClick:()=>{t(`request-link`),f(null)},children:`Request a new link`})]}),e===`request-link`&&(0,u.jsxs)(`form`,{className:`access-gate-form`,onSubmit:p,children:[(0,u.jsx)(`h2`,{children:n?.displayName?`Welcome back, ${n.displayName}`:`Sign in`}),(0,u.jsx)(`p`,{children:`Enter the email you were invited on and we will send you a fresh link.`}),(0,u.jsx)(`label`,{htmlFor:`access-email`,children:`Email`}),(0,u.jsx)(`input`,{id:`access-email`,type:`email`,inputMode:`email`,autoComplete:`email`,value:i,onChange:e=>a(e.target.value),disabled:o}),d&&(0,u.jsx)(`p`,{className:`access-gate-error`,children:d}),(0,u.jsx)(s,{type:`submit`,disabled:o||!i.trim(),children:o?`Sending…`:`Send me a link`})]}),e===`request-sent`&&(0,u.jsxs)(`div`,{className:`access-gate-message`,children:[(0,u.jsx)(`h2`,{children:`Check your email`}),(0,u.jsx)(`p`,{children:`If that address is on the invite list, a fresh link is on the way. It expires in 15 minutes.`}),(0,u.jsx)(s,{onClick:()=>{t(`request-link`),a(``),f(null)},children:`Try a different email`})]})]})}export{l as n,d as t};