@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.
- package/package.json +1 -1
- package/payload/platform/plugins/admin/skills/plugin-management/SKILL.md +1 -1
- package/payload/platform/plugins/admin/skills/specialist-management/SKILL.md +1 -1
- package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +1 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +40 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/instructions.d.ts +1 -0
- package/payload/platform/services/webchat-channel/dist/instructions.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/instructions.js +31 -0
- package/payload/platform/services/webchat-channel/dist/instructions.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/notification.d.ts +8 -3
- package/payload/platform/services/webchat-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/notification.js +25 -9
- package/payload/platform/services/webchat-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.js +5 -3
- package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +8 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js +10 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
- package/payload/server/public/assets/AccessGate-BOqUU-za.js +1 -0
- package/payload/server/public/assets/AdminLoginScreens-WvRuaNIg.js +1 -0
- package/payload/server/public/assets/AdminShell-DHv6_SZ4.js +1 -0
- package/payload/server/public/assets/{Checkbox-DMA1hVhn.js → Checkbox-DjM6aYP_.js} +1 -1
- package/payload/server/public/assets/OperatorConversations-CDY0jUMb.js +1 -0
- package/payload/server/public/assets/admin-XbVTsU2q.js +1 -0
- package/payload/server/public/assets/admin-types-D2qTXuCg.js +1 -0
- package/payload/server/public/assets/{arc-Dl9QFDgW.js → arc-J2g2u5Xv.js} +1 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-C6nkAxzW.js +1 -0
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CNLQUVi9.js → architectureDiagram-Q4EWVU46-CN0BXxpE.js} +1 -1
- package/payload/server/public/assets/audio-attachment-mime-CVxjPN8V.js +30 -0
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-B-QxfVjk.js → blockDiagram-DXYQGD6D-HX-8wF2p.js} +1 -1
- package/payload/server/public/assets/{brand-4F9ZXBF8.css → brand-N-Hi3IPA.css} +1 -1
- package/payload/server/public/assets/{browser-eLSiC7_b.js → browser-Ct5Kwlmk.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-NuYFvPDU.js → c4Diagram-AHTNJAMY-wIuarKF5.js} +1 -1
- package/payload/server/public/assets/channel-Q39xIXyT.js +1 -0
- package/payload/server/public/assets/chat-CEde1CLX.js +1 -0
- package/payload/server/public/assets/{chunk-2KRD3SAO-l5VL1KQm.js → chunk-2KRD3SAO-Buz7egJZ.js} +1 -1
- package/payload/server/public/assets/{chunk-336JU56O-C5gVznC2.js → chunk-336JU56O-_JcFXJqc.js} +2 -2
- package/payload/server/public/assets/chunk-426QAEUC-CCYjp9C2.js +1 -0
- package/payload/server/public/assets/{chunk-4BX2VUAB-BtMVz_Sq.js → chunk-4BX2VUAB-DUR5Dg3M.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-C8-dmCuT.js → chunk-4TB4RGXK-BRIqQ9st.js} +1 -1
- package/payload/server/public/assets/{chunk-55IACEB6-C5gWvEJW.js → chunk-55IACEB6-CezTHWXL.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-BZ7VZoAC.js → chunk-5FUZZQ4R-DHYUPzF1.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-C_ajQOGC.js → chunk-5PVQY5BW-BVn4_fI5.js} +1 -1
- package/payload/server/public/assets/{chunk-67CJDMHE-BJOR2dwK.js → chunk-67CJDMHE-BBLA8Mbi.js} +1 -1
- package/payload/server/public/assets/{chunk-7N4EOEYR-DvZLpquX.js → chunk-7N4EOEYR-CdWfEI5c.js} +1 -1
- package/payload/server/public/assets/{chunk-AA7GKIK3-h5tVsPlW.js → chunk-AA7GKIK3-tS11knCR.js} +1 -1
- package/payload/server/public/assets/{chunk-BSJP7CBP-DLOF2-m3.js → chunk-BSJP7CBP-GEu1OOZ6.js} +1 -1
- package/payload/server/public/assets/{chunk-CIAEETIT-CQRQMPCf.js → chunk-CIAEETIT-DKrNbbp_.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-K9-EfuM2.js → chunk-EDXVE4YY-B0InXNyr.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-DVoy6NvU.js → chunk-ENJZ2VHE-CO7lkHdm.js} +1 -1
- package/payload/server/public/assets/{chunk-FMBD7UC4-CQn_2o2b.js → chunk-FMBD7UC4-CMj74lWo.js} +1 -1
- package/payload/server/public/assets/{chunk-FOC6F5B3-CuN73goS.js → chunk-FOC6F5B3-CLnKQoXw.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-CKhl9J-H.js → chunk-ICPOFSXX-CdiEKIaz.js} +2 -2
- package/payload/server/public/assets/{chunk-K5T4RW27-CBskuQmq.js → chunk-K5T4RW27-B6LA3fiv.js} +1 -1
- package/payload/server/public/assets/{chunk-KGLVRYIC-Chtjt8xK.js → chunk-KGLVRYIC-DrhRrb8Q.js} +1 -1
- package/payload/server/public/assets/{chunk-LIHQZDEY-EOBiBNSH.js → chunk-LIHQZDEY-DVQukevB.js} +1 -1
- package/payload/server/public/assets/{chunk-ORNJ4GCN-uPPq-5MN.js → chunk-ORNJ4GCN-ZMLkoDhP.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-BRzbxJOT.js → chunk-OYMX7WX6-C0dJkynG.js} +1 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-BNBxnHZh.js +1 -0
- package/payload/server/public/assets/{chunk-U2HBQHQK-Bndyn5nF.js → chunk-U2HBQHQK-BQ9BPIFZ.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-BspGBHXW.js → chunk-X2U36JSP-CAonGMOd.js} +1 -1
- package/payload/server/public/assets/{chunk-XPW4576I-HgXQ2k9h.js → chunk-XPW4576I-D5C_WNlk.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-C7oTyCnw.js → chunk-YZCP3GAM-Ecdvzekb.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-CufWa7QL.js → chunk-ZZ45TVLE-BsFZd1cN.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BShusfby.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D4ivPLFF.js +1 -0
- package/payload/server/public/assets/clone-CjEM8LwB.js +1 -0
- package/payload/server/public/assets/{cose-bilkent-S5V4N54A-BM3yEbF-.js → cose-bilkent-S5V4N54A-DBWHaIwm.js} +1 -1
- package/payload/server/public/assets/{dagre-C7WHNZO8.js → dagre-Dr7ZJYeS.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-bcZx3l06.js → dagre-KV5264BT-oIJddk7m.js} +1 -1
- package/payload/server/public/assets/data-TZOmA1Qg.js +1 -0
- package/payload/server/public/assets/{diagram-5BDNPKRD-B7VotaMF.js → diagram-5BDNPKRD-CEVxqOZ4.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-CWWvEsFx.js → diagram-G4DWMVQ6-BovF7Rjx.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-DYHVkTYJ.js → diagram-MMDJMWI5-BhrF8zoF.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-CHeB6Ama.js → diagram-TYMM5635-DCUYwxtR.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-C9gog8QP.js → erDiagram-SMLLAGMA-BS2-HdCg.js} +1 -1
- package/payload/server/public/assets/{flatten-QcJDm7yK.js → flatten-BZMXCpLh.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-B2O9lKTh.js → flowDiagram-DWJPFMVM-BzSFLoea.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DEa4AwbR.js → ganttDiagram-T4ZO3ILL-1-3QU7mT.js} +1 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-Btp3PwZh.js +1 -0
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-BjXPQpBL.js → gitGraphDiagram-UUTBAWPF-fTrJ35Wk.js} +1 -1
- package/payload/server/public/assets/{graph-C7Hye_vp.js → graph-DWT1rhy9.js} +2 -2
- package/payload/server/public/assets/{graph-labels-YYgGsEVd.js → graph-labels-OBadNo54.js} +1 -1
- package/payload/server/public/assets/{graphlib-CBevn2DP.js → graphlib-rlEzI2qD.js} +1 -1
- package/payload/server/public/assets/info-OMHHGYJF-CPt2y6_L.js +1 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-CpXNTMgd.js +2 -0
- package/payload/server/public/assets/{isEmpty-BO6BAEn7.js → isEmpty-DaYIrHay.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CPLfpvqv.js → ishikawaDiagram-UXIWVN3A-0eU_UtlT.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CTHe8MiD.js → journeyDiagram-VCZTEJTY-BKLeZohp.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Bm9h1O3Y.js → kanban-definition-6JOO6SKY-Dq72xyaN.js} +1 -1
- package/payload/server/public/assets/{line-C31b0rtY.js → line-LQhmDT8k.js} +1 -1
- package/payload/server/public/assets/{linear-Cfm_8_pU.js → linear-BGotDbGs.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-B3tGwOcE.js → mermaid-parser.core-DoLdho1V.js} +2 -2
- package/payload/server/public/assets/{mermaid.core-BM3s85ZW.js → mermaid.core-C1RRyHGm.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CaGv_mIB.js → mindmap-definition-QFDTVHPH-vUVVVyV1.js} +1 -1
- package/payload/server/public/assets/operator-BpzQ9Ezb.js +1 -0
- package/payload/server/public/assets/{ordinal-jLCwuvYg.js → ordinal-BqEhkPyh.js} +1 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-Cwc-j_AI.js +1 -0
- package/payload/server/public/assets/page-Dts8u8MD.js +1 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-BZ9fjD1_.js +1 -0
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-BhAXps4u.js → pieDiagram-DEJITSTG-B9Pl6Qhc.js} +1 -1
- package/payload/server/public/assets/public-next-ClQwtyeC.js +1 -0
- package/payload/server/public/assets/{public-ViXjC_dA.js → public-owWW-MIA.js} +3 -3
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-BWtTdNs8.js → quadrantDiagram-34T5L4WZ-Drn9T81A.js} +1 -1
- package/payload/server/public/assets/radar-PYXPWWZC-BNz5Rt9V.js +1 -0
- package/payload/server/public/assets/{reduce-Dmi_NdVH.js → reduce-T2IuntYP.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-CWU0qCcP.js → requirementDiagram-MS252O5E-C0PAItJm.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-DYvutQld.js → sankeyDiagram-XADWPNL6-BR42Mtwd.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-Cir0hBWS.js → sequenceDiagram-FGHM5R23-c2lR9UOS.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-Be-h8YSS.js → stateDiagram-FHFEXIEX-BcHhtqsZ.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BUQ_F4eP.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-C3C4Wuyk.js → timeline-definition-GMOUNBTQ-Ax32c10H.js} +1 -1
- package/payload/server/public/assets/treeView-SZITEDCU-DcVCQgp1.js +1 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-Bm12mwGd.js +1 -0
- package/payload/server/public/assets/{useSelectionMode-CG_Iel5F.js → useSelectionMode-BZsJuUm-.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-mDclw0Sa.js → vennDiagram-DHZGUBPP-BxePewPq.js} +1 -1
- package/payload/server/public/assets/wardley-RL74JXVD-47Z3ymtK.js +1 -0
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-mvk-YA9g.js → wardleyDiagram-NUSXRM2D-DmJwZ2f5.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-9M7k1hmD.js → xychartDiagram-5P7HB3ND-YjHomudv.js} +1 -1
- package/payload/server/public/browser.html +6 -6
- package/payload/server/public/chat.html +10 -9
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +8 -8
- package/payload/server/public/index.html +10 -9
- package/payload/server/public/operator.html +12 -11
- package/payload/server/public/public-next.html +11 -10
- package/payload/server/public/public.html +8 -8
- package/payload/server/server.js +74 -30
- package/payload/server/public/assets/AccessGate-CU4Qw6M6.js +0 -1
- package/payload/server/public/assets/AdminLoginScreens-DUpRIM1h.js +0 -1
- package/payload/server/public/assets/AdminShell-DkoQSsqo.js +0 -1
- package/payload/server/public/assets/OperatorConversations-BIHiyyxU.js +0 -1
- package/payload/server/public/assets/admin-BHvOMcCh.js +0 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-Crq5RSDG.js +0 -1
- package/payload/server/public/assets/audio-attachment-mime-DOBET-W1.js +0 -30
- package/payload/server/public/assets/channel-KT66MFN2.js +0 -1
- package/payload/server/public/assets/chat-DedpVKUl.js +0 -1
- package/payload/server/public/assets/chunk-426QAEUC-CWMiOm8Y.js +0 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-DCzpF46A.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-QOU4HzJJ.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DcOUai3Z.js +0 -1
- package/payload/server/public/assets/clone-CHh05KN-.js +0 -1
- package/payload/server/public/assets/data-BcoBY39U.js +0 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-BC-u4jgy.js +0 -1
- package/payload/server/public/assets/info-OMHHGYJF-DPUetTz-.js +0 -1
- package/payload/server/public/assets/infoDiagram-42DDH7IO-q2dl09-M.js +0 -2
- package/payload/server/public/assets/operator-WsXhcbBF.js +0 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-BcfR-ZwA.js +0 -1
- package/payload/server/public/assets/page-BhHTnqv4.js +0 -1
- package/payload/server/public/assets/pie-ZZUOXDRM-BiKgZdNB.js +0 -1
- package/payload/server/public/assets/public-next-BKECyMz2.js +0 -1
- package/payload/server/public/assets/radar-PYXPWWZC-nvCjiW_J.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CAnmjSj7.js +0 -1
- package/payload/server/public/assets/treeView-SZITEDCU-BinXCVyM.js +0 -1
- package/payload/server/public/assets/treemap-W4RFUUIX-CSmh20Ze.js +0 -1
- package/payload/server/public/assets/wardley-RL74JXVD-BiCmRKWx.js +0 -1
- /package/payload/server/public/assets/{_baseFor-D8P3gUw3.js → _baseFor-Y5mTRiRv.js} +0 -0
- /package/payload/server/public/assets/{array-CLwNaqU1.js → array-BwJyW1Dp.js} +0 -0
- /package/payload/server/public/assets/{brand-C7kj0USi.js → brand-zL3tAdql.js} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-mZ4wTuB7.js → cytoscape.esm-D95TtHqz.js} +0 -0
- /package/payload/server/public/assets/{defaultLocale-D_VMtRaY.js → defaultLocale-kiwRz9Au.js} +0 -0
- /package/payload/server/public/assets/{dist-CjjtmoWL.js → dist-DSsFp0Qd.js} +0 -0
- /package/payload/server/public/assets/{init-vVpfz1D6.js → init-CKZirZ49.js} +0 -0
- /package/payload/server/public/assets/{katex-DaHGEgm7.js → katex-8mXVa4k3.js} +0 -0
- /package/payload/server/public/assets/{path-CuyvWNAH.js → path-B0d9ncVi.js} +0 -0
- /package/payload/server/public/assets/{preload-helper-TKOBYGYD.js → preload-helper-C5gCWwwF.js} +0 -0
- /package/payload/server/public/assets/{rough.esm-JX0wREDd.js → rough.esm-BWqoIFNR.js} +0 -0
- /package/payload/server/public/assets/{src-CwB968DO.js → src-DXUM2BJo.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./chunk-K5T4RW27-
|
|
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-
|
|
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-
|
|
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-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/OperatorConversations-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/useSelectionMode-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
14
|
-
<link rel="stylesheet" crossorigin href="/assets/brand-
|
|
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-
|
|
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-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/OperatorConversations-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/useSelectionMode-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
17
|
-
<link rel="
|
|
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-
|
|
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-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/graph-labels-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/OperatorConversations-
|
|
13
|
-
<link rel="stylesheet" crossorigin href="/assets/brand-
|
|
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-
|
|
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-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/graph-labels-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/OperatorConversations-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/useSelectionMode-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/Checkbox-
|
|
16
|
-
<link rel="stylesheet" crossorigin href="/assets/brand-
|
|
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-
|
|
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-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/OperatorConversations-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/useSelectionMode-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
16
|
-
<link rel="
|
|
17
|
-
<link rel="stylesheet" crossorigin href="/assets/
|
|
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-
|
|
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-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/OperatorConversations-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/useSelectionMode-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
19
|
-
<link rel="
|
|
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-
|
|
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-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/OperatorConversations-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/useSelectionMode-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
18
|
-
<link rel="
|
|
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-
|
|
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-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/useSelectionMode-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/Checkbox-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/preload-helper-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/audio-attachment-mime-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/AccessGate-
|
|
16
|
-
<link rel="stylesheet" crossorigin href="/assets/brand-
|
|
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>
|
package/payload/server/server.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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))
|
|
7467
|
-
|
|
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
|
|
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
|
|
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
|
|
15050
|
-
const canonicalId = adminSessionIdFor(
|
|
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};
|