@rubytech/create-maxy-code 0.1.535 → 0.1.537
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/hooks/__tests__/mailbox-inject.test.sh +11 -5
- package/payload/platform/plugins/admin/hooks/mailbox-inject.sh +12 -7
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +70 -9
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +12 -0
- package/payload/platform/plugins/docs/references/admin-ui.md +63 -1
- package/payload/platform/plugins/docs/references/calendar-booking.md +6 -7
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js +10 -7
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/whatsapp/skills/manage-whatsapp-config/SKILL.md +6 -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 +150 -10
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +62 -2
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +24 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +62 -24
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts +8 -2
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js +32 -27
- package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/public-allowlist.d.ts +19 -0
- package/payload/platform/services/claude-session-manager/dist/public-allowlist.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/public-allowlist.js +23 -0
- package/payload/platform/services/claude-session-manager/dist/public-allowlist.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/public-spawn-session.d.ts +23 -0
- package/payload/platform/services/claude-session-manager/dist/public-spawn-session.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/public-spawn-session.js +34 -0
- package/payload/platform/services/claude-session-manager/dist/public-spawn-session.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/public-surface-audit.d.ts +44 -0
- package/payload/platform/services/claude-session-manager/dist/public-surface-audit.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/public-surface-audit.js +110 -0
- package/payload/platform/services/claude-session-manager/dist/public-surface-audit.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.d.ts +36 -0
- package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.js +49 -0
- package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.js.map +1 -0
- package/payload/server/{chunk-4QCYFTAI.js → chunk-44Z4ZFYS.js} +2 -0
- package/payload/server/{chunk-DLG7XSLA.js → chunk-IALJPXIO.js} +70 -3
- package/payload/server/{manager-ZNHQQCED.js → manager-AJSPM6X2.js} +1 -1
- package/payload/server/maxy-edge.js +1 -1
- package/payload/server/public/activity.html +5 -5
- package/payload/server/public/agents.html +4 -4
- package/payload/server/public/assets/AdminLoginScreens-CYFf2awh.js +1 -0
- package/payload/server/public/assets/AdminLoginScreens-CYFf2awh.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-CYFf2awh.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-7l3ubYFZ.js +2 -0
- package/payload/server/public/assets/AdminShell-7l3ubYFZ.js.br +0 -0
- package/payload/server/public/assets/AdminShell-7l3ubYFZ.js.gz +0 -0
- package/payload/server/public/assets/{activity-DKeRUjQ9.js → activity-BH65sm9Q.js} +1 -1
- package/payload/server/public/assets/activity-BH65sm9Q.js.br +0 -0
- package/payload/server/public/assets/activity-BH65sm9Q.js.gz +0 -0
- package/payload/server/public/assets/admin-CQtEjRGU.js +1 -0
- package/payload/server/public/assets/admin-CQtEjRGU.js.br +0 -0
- package/payload/server/public/assets/admin-CQtEjRGU.js.gz +0 -0
- package/payload/server/public/assets/{agents-CrR_OMe8.js → agents-CjhOWwl5.js} +1 -1
- package/payload/server/public/assets/agents-CjhOWwl5.js.br +0 -0
- package/payload/server/public/assets/agents-CjhOWwl5.js.gz +0 -0
- package/payload/server/public/assets/{arc-CHoXZR2f.js → arc-DaudCnXg.js} +1 -1
- package/payload/server/public/assets/arc-DaudCnXg.js.br +0 -0
- package/payload/server/public/assets/arc-DaudCnXg.js.gz +0 -0
- package/payload/server/public/assets/architecture-YZFGNWBL-DPFsm5jD.js +1 -0
- package/payload/server/public/assets/architecture-YZFGNWBL-DPFsm5jD.js.br +0 -0
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-B8SCI0AR.js → architectureDiagram-Q4EWVU46-Dj9L_JR0.js} +1 -1
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-Dj9L_JR0.js.br +0 -0
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-Dj9L_JR0.js.gz +0 -0
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-CsJmhz5D.js → blockDiagram-DXYQGD6D-BTXKYwrR.js} +1 -1
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-BTXKYwrR.js.br +0 -0
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-BTXKYwrR.js.gz +0 -0
- package/payload/server/public/assets/browser-DGXpfL99.js +1 -0
- package/payload/server/public/assets/browser-DGXpfL99.js.br +0 -0
- package/payload/server/public/assets/browser-DGXpfL99.js.gz +0 -0
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-CzaSNqcs.js → c4Diagram-AHTNJAMY-BN7XeOWV.js} +1 -1
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-BN7XeOWV.js.br +0 -0
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-BN7XeOWV.js.gz +0 -0
- package/payload/server/public/assets/calendar-Cu4yjEuX.js +1 -0
- package/payload/server/public/assets/calendar-Cu4yjEuX.js.br +0 -0
- package/payload/server/public/assets/calendar-Cu4yjEuX.js.gz +0 -0
- package/payload/server/public/assets/channel-D08XWP9e.js +1 -0
- package/payload/server/public/assets/chat-0na4XVZC.js +1 -0
- package/payload/server/public/assets/chat-0na4XVZC.js.br +0 -0
- package/payload/server/public/assets/chat-0na4XVZC.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-DHzJobWp.js +1 -0
- package/payload/server/public/assets/chevron-left-DHzJobWp.js.br +0 -0
- package/payload/server/public/assets/chevron-right-yg4DMfLT.js +1 -0
- package/payload/server/public/assets/chevron-right-yg4DMfLT.js.br +0 -0
- package/payload/server/public/assets/{chunk-2KRD3SAO-DAN3KCZc.js → chunk-2KRD3SAO-BwEVlnxo.js} +1 -1
- package/payload/server/public/assets/chunk-2KRD3SAO-BwEVlnxo.js.br +0 -0
- package/payload/server/public/assets/chunk-2KRD3SAO-BwEVlnxo.js.gz +0 -0
- package/payload/server/public/assets/{chunk-336JU56O-Dm-0_lIT.js → chunk-336JU56O-DR5EUh9D.js} +2 -2
- package/payload/server/public/assets/chunk-336JU56O-DR5EUh9D.js.br +0 -0
- package/payload/server/public/assets/chunk-336JU56O-DR5EUh9D.js.gz +0 -0
- package/payload/server/public/assets/chunk-426QAEUC-YPE0DZOq.js +1 -0
- package/payload/server/public/assets/chunk-426QAEUC-YPE0DZOq.js.br +0 -0
- package/payload/server/public/assets/chunk-426QAEUC-YPE0DZOq.js.gz +0 -0
- package/payload/server/public/assets/{chunk-4BX2VUAB-C2l9bAlo.js → chunk-4BX2VUAB-C5p3xTC6.js} +1 -1
- package/payload/server/public/assets/chunk-4BX2VUAB-C5p3xTC6.js.br +0 -0
- package/payload/server/public/assets/chunk-4BX2VUAB-C5p3xTC6.js.gz +0 -0
- package/payload/server/public/assets/{chunk-4TB4RGXK-BMXDzU09.js → chunk-4TB4RGXK-CqrBvvGI.js} +1 -1
- package/payload/server/public/assets/chunk-4TB4RGXK-CqrBvvGI.js.br +0 -0
- package/payload/server/public/assets/chunk-4TB4RGXK-CqrBvvGI.js.gz +0 -0
- package/payload/server/public/assets/{chunk-55IACEB6-CbMYAZon.js → chunk-55IACEB6-DDU_m1ra.js} +1 -1
- package/payload/server/public/assets/chunk-55IACEB6-DDU_m1ra.js.br +0 -0
- package/payload/server/public/assets/chunk-55IACEB6-DDU_m1ra.js.gz +0 -0
- package/payload/server/public/assets/{chunk-5FUZZQ4R-DjdsuxLA.js → chunk-5FUZZQ4R-B21kX6ld.js} +1 -1
- package/payload/server/public/assets/chunk-5FUZZQ4R-B21kX6ld.js.br +0 -0
- package/payload/server/public/assets/chunk-5FUZZQ4R-B21kX6ld.js.gz +0 -0
- package/payload/server/public/assets/{chunk-5PVQY5BW-CGSBzsF6.js → chunk-5PVQY5BW-CYusrVbq.js} +1 -1
- package/payload/server/public/assets/chunk-5PVQY5BW-CYusrVbq.js.br +0 -0
- package/payload/server/public/assets/chunk-5PVQY5BW-CYusrVbq.js.gz +0 -0
- package/payload/server/public/assets/{chunk-67CJDMHE-ClOLWser.js → chunk-67CJDMHE-9W0Qv0jm.js} +1 -1
- package/payload/server/public/assets/chunk-67CJDMHE-9W0Qv0jm.js.br +0 -0
- package/payload/server/public/assets/chunk-67CJDMHE-9W0Qv0jm.js.gz +0 -0
- package/payload/server/public/assets/{chunk-7N4EOEYR-BzC1dzY0.js → chunk-7N4EOEYR-B3gqydR3.js} +1 -1
- package/payload/server/public/assets/chunk-7N4EOEYR-B3gqydR3.js.br +0 -0
- package/payload/server/public/assets/chunk-7N4EOEYR-B3gqydR3.js.gz +0 -0
- package/payload/server/public/assets/{chunk-AA7GKIK3-R_pjI1kw.js → chunk-AA7GKIK3-DW8a-2NK.js} +1 -1
- package/payload/server/public/assets/chunk-AA7GKIK3-DW8a-2NK.js.br +4 -0
- package/payload/server/public/assets/chunk-AA7GKIK3-DW8a-2NK.js.gz +0 -0
- package/payload/server/public/assets/{chunk-BSJP7CBP-D2KRAq3U.js → chunk-BSJP7CBP-DqXIO_5R.js} +1 -1
- package/payload/server/public/assets/chunk-BSJP7CBP-DqXIO_5R.js.br +0 -0
- package/payload/server/public/assets/chunk-BSJP7CBP-DqXIO_5R.js.gz +0 -0
- package/payload/server/public/assets/{chunk-CIAEETIT-BPGWtrKR.js → chunk-CIAEETIT-BMJfgj2u.js} +1 -1
- package/payload/server/public/assets/chunk-CIAEETIT-BMJfgj2u.js.br +0 -0
- package/payload/server/public/assets/chunk-CIAEETIT-BMJfgj2u.js.gz +0 -0
- package/payload/server/public/assets/{chunk-EDXVE4YY-tqt7wueu.js → chunk-EDXVE4YY-CyjTyMkv.js} +1 -1
- package/payload/server/public/assets/chunk-EDXVE4YY-CyjTyMkv.js.br +0 -0
- package/payload/server/public/assets/chunk-EDXVE4YY-CyjTyMkv.js.gz +0 -0
- package/payload/server/public/assets/{chunk-ENJZ2VHE-DJG3cA6E.js → chunk-ENJZ2VHE-B-k8uOTF.js} +1 -1
- package/payload/server/public/assets/chunk-ENJZ2VHE-B-k8uOTF.js.br +0 -0
- package/payload/server/public/assets/chunk-ENJZ2VHE-B-k8uOTF.js.gz +0 -0
- package/payload/server/public/assets/{chunk-FMBD7UC4-DO1xgCDf.js → chunk-FMBD7UC4-CdPjwbtf.js} +1 -1
- package/payload/server/public/assets/chunk-FMBD7UC4-CdPjwbtf.js.br +0 -0
- package/payload/server/public/assets/chunk-FMBD7UC4-CdPjwbtf.js.gz +0 -0
- package/payload/server/public/assets/{chunk-FOC6F5B3-BhWAbCUG.js → chunk-FOC6F5B3-Dl6l1KAh.js} +1 -1
- package/payload/server/public/assets/chunk-FOC6F5B3-Dl6l1KAh.js.br +0 -0
- package/payload/server/public/assets/chunk-FOC6F5B3-Dl6l1KAh.js.gz +0 -0
- package/payload/server/public/assets/{chunk-ICPOFSXX-BhUzt35c.js → chunk-ICPOFSXX-CKQWnR1l.js} +2 -2
- package/payload/server/public/assets/chunk-ICPOFSXX-CKQWnR1l.js.br +0 -0
- package/payload/server/public/assets/chunk-ICPOFSXX-CKQWnR1l.js.gz +0 -0
- package/payload/server/public/assets/{chunk-K5T4RW27-Boj-qHrX.js → chunk-K5T4RW27--g29_wjW.js} +1 -1
- package/payload/server/public/assets/chunk-K5T4RW27--g29_wjW.js.br +0 -0
- package/payload/server/public/assets/chunk-K5T4RW27--g29_wjW.js.gz +0 -0
- package/payload/server/public/assets/{chunk-KGLVRYIC-3cBRDk1b.js → chunk-KGLVRYIC-CI77ENeO.js} +1 -1
- package/payload/server/public/assets/chunk-KGLVRYIC-CI77ENeO.js.br +3 -0
- package/payload/server/public/assets/chunk-KGLVRYIC-CI77ENeO.js.gz +0 -0
- package/payload/server/public/assets/{chunk-LIHQZDEY-CgkLKaII.js → chunk-LIHQZDEY-CE-XByg6.js} +1 -1
- package/payload/server/public/assets/chunk-LIHQZDEY-CE-XByg6.js.br +0 -0
- package/payload/server/public/assets/chunk-LIHQZDEY-CE-XByg6.js.gz +0 -0
- package/payload/server/public/assets/{chunk-ORNJ4GCN-Dl449r_k.js → chunk-ORNJ4GCN-DkjJQQSm.js} +1 -1
- package/payload/server/public/assets/chunk-ORNJ4GCN-DkjJQQSm.js.br +0 -0
- package/payload/server/public/assets/chunk-ORNJ4GCN-DkjJQQSm.js.gz +0 -0
- package/payload/server/public/assets/{chunk-OYMX7WX6-Dzkj67n6.js → chunk-OYMX7WX6-Dis40FU5.js} +1 -1
- package/payload/server/public/assets/chunk-OYMX7WX6-Dis40FU5.js.br +0 -0
- package/payload/server/public/assets/chunk-OYMX7WX6-Dis40FU5.js.gz +0 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js +1 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js.br +0 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js.gz +0 -0
- package/payload/server/public/assets/{chunk-U2HBQHQK-Dyz9Kbir.js → chunk-U2HBQHQK-DT3NLMic.js} +1 -1
- package/payload/server/public/assets/chunk-U2HBQHQK-DT3NLMic.js.br +0 -0
- package/payload/server/public/assets/chunk-U2HBQHQK-DT3NLMic.js.gz +0 -0
- package/payload/server/public/assets/{chunk-X2U36JSP-ag0VVCw6.js → chunk-X2U36JSP-Dxaab1tD.js} +1 -1
- package/payload/server/public/assets/chunk-X2U36JSP-Dxaab1tD.js.br +0 -0
- package/payload/server/public/assets/chunk-X2U36JSP-Dxaab1tD.js.gz +0 -0
- package/payload/server/public/assets/{chunk-XPW4576I-B-vhDYPE.js → chunk-XPW4576I-DtqJwn2x.js} +1 -1
- package/payload/server/public/assets/chunk-XPW4576I-DtqJwn2x.js.br +0 -0
- package/payload/server/public/assets/chunk-XPW4576I-DtqJwn2x.js.gz +0 -0
- package/payload/server/public/assets/{chunk-YZCP3GAM-C4COviPb.js → chunk-YZCP3GAM-CEEcRrOH.js} +1 -1
- package/payload/server/public/assets/chunk-YZCP3GAM-CEEcRrOH.js.br +0 -0
- package/payload/server/public/assets/chunk-YZCP3GAM-CEEcRrOH.js.gz +0 -0
- package/payload/server/public/assets/{chunk-ZZ45TVLE-8dGsCp5b.js → chunk-ZZ45TVLE-CVhqjM4L.js} +1 -1
- package/payload/server/public/assets/chunk-ZZ45TVLE-CVhqjM4L.js.br +0 -0
- package/payload/server/public/assets/chunk-ZZ45TVLE-CVhqjM4L.js.gz +0 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BPY9jtfT.js +1 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BPY9jtfT.js.br +0 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BPY9jtfT.js.gz +0 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CLgDbwDp.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CLgDbwDp.js.br +0 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CLgDbwDp.js.gz +0 -0
- package/payload/server/public/assets/clock-BIDzihvp.js +1 -0
- package/payload/server/public/assets/clock-BIDzihvp.js.br +0 -0
- package/payload/server/public/assets/clock-BIDzihvp.js.gz +0 -0
- package/payload/server/public/assets/clone-B6yMH1PX.js +1 -0
- package/payload/server/public/assets/clone-B6yMH1PX.js.br +0 -0
- package/payload/server/public/assets/{cose-bilkent-S5V4N54A-qM4Q4TuE.js → cose-bilkent-S5V4N54A-kEHVkDNn.js} +1 -1
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-kEHVkDNn.js.br +0 -0
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-kEHVkDNn.js.gz +0 -0
- package/payload/server/public/assets/{dagre-DRvHdusQ.js → dagre-BgQxtxH1.js} +1 -1
- package/payload/server/public/assets/dagre-BgQxtxH1.js.br +0 -0
- package/payload/server/public/assets/dagre-BgQxtxH1.js.gz +0 -0
- package/payload/server/public/assets/{dagre-KV5264BT-CGqSVVTn.js → dagre-KV5264BT-CgxwoTcv.js} +1 -1
- package/payload/server/public/assets/dagre-KV5264BT-CgxwoTcv.js.br +0 -0
- package/payload/server/public/assets/dagre-KV5264BT-CgxwoTcv.js.gz +0 -0
- package/payload/server/public/assets/data-Ql9qG3YO.js +1 -0
- package/payload/server/public/assets/data-Ql9qG3YO.js.br +0 -0
- package/payload/server/public/assets/data-Ql9qG3YO.js.gz +0 -0
- package/payload/server/public/assets/{diagram-5BDNPKRD-DfFgeApz.js → diagram-5BDNPKRD-MEZ1cQGO.js} +1 -1
- package/payload/server/public/assets/diagram-5BDNPKRD-MEZ1cQGO.js.br +0 -0
- package/payload/server/public/assets/diagram-5BDNPKRD-MEZ1cQGO.js.gz +0 -0
- package/payload/server/public/assets/{diagram-G4DWMVQ6-DPXc3Q8e.js → diagram-G4DWMVQ6-DbZg9hWP.js} +1 -1
- package/payload/server/public/assets/diagram-G4DWMVQ6-DbZg9hWP.js.br +0 -0
- package/payload/server/public/assets/diagram-G4DWMVQ6-DbZg9hWP.js.gz +0 -0
- package/payload/server/public/assets/{diagram-MMDJMWI5-V8RCddvy.js → diagram-MMDJMWI5-Bb1y8DFy.js} +1 -1
- package/payload/server/public/assets/diagram-MMDJMWI5-Bb1y8DFy.js.br +0 -0
- package/payload/server/public/assets/diagram-MMDJMWI5-Bb1y8DFy.js.gz +0 -0
- package/payload/server/public/assets/{diagram-TYMM5635-CrvfIf-m.js → diagram-TYMM5635-tbStCw5U.js} +1 -1
- package/payload/server/public/assets/diagram-TYMM5635-tbStCw5U.js.br +0 -0
- package/payload/server/public/assets/diagram-TYMM5635-tbStCw5U.js.gz +0 -0
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-DClMgmBB.js → erDiagram-SMLLAGMA-ClEFo_Bw.js} +1 -1
- package/payload/server/public/assets/erDiagram-SMLLAGMA-ClEFo_Bw.js.br +0 -0
- package/payload/server/public/assets/erDiagram-SMLLAGMA-ClEFo_Bw.js.gz +0 -0
- package/payload/server/public/assets/file-download-DbNIjWiK.js +1 -0
- package/payload/server/public/assets/file-download-DbNIjWiK.js.br +0 -0
- package/payload/server/public/assets/file-download-DbNIjWiK.js.gz +0 -0
- package/payload/server/public/assets/{file-text-5osg-EVb.js → file-text-CbQoZfJD.js} +1 -1
- package/payload/server/public/assets/file-text-CbQoZfJD.js.br +0 -0
- package/payload/server/public/assets/file-text-CbQoZfJD.js.gz +0 -0
- package/payload/server/public/assets/{flatten-UdUTbm8v.js → flatten-Bu-b1uTY.js} +1 -1
- package/payload/server/public/assets/flatten-Bu-b1uTY.js.br +0 -0
- package/payload/server/public/assets/flatten-Bu-b1uTY.js.gz +0 -0
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-D29Ou09P.js → flowDiagram-DWJPFMVM-9yr262Ji.js} +1 -1
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-9yr262Ji.js.br +0 -0
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-9yr262Ji.js.gz +0 -0
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-CoAK7W_V.js → ganttDiagram-T4ZO3ILL-ZCSA0DtG.js} +1 -1
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-ZCSA0DtG.js.br +0 -0
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-ZCSA0DtG.js.gz +0 -0
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-B0OUwOUx.js +1 -0
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-B0OUwOUx.js.br +0 -0
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-DMEc_1aX.js → gitGraphDiagram-UUTBAWPF-0KvpzpaU.js} +1 -1
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-0KvpzpaU.js.br +0 -0
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-0KvpzpaU.js.gz +0 -0
- package/payload/server/public/assets/{graph-CAUo1OTY.js → graph-7414Kjn9.js} +3 -3
- package/payload/server/public/assets/graph-7414Kjn9.js.br +0 -0
- package/payload/server/public/assets/graph-7414Kjn9.js.gz +0 -0
- package/payload/server/public/assets/{graph-labels-TJ-3ljQo.js → graph-labels-D695CsC9.js} +1 -1
- package/payload/server/public/assets/graph-labels-D695CsC9.js.br +0 -0
- package/payload/server/public/assets/graph-labels-D695CsC9.js.gz +0 -0
- package/payload/server/public/assets/{graphlib-ihSLgqUG.js → graphlib-B3SsCJOd.js} +1 -1
- package/payload/server/public/assets/graphlib-B3SsCJOd.js.br +0 -0
- package/payload/server/public/assets/graphlib-B3SsCJOd.js.gz +0 -0
- package/payload/server/public/assets/info-OMHHGYJF-C_8TwPDe.js +1 -0
- package/payload/server/public/assets/info-OMHHGYJF-C_8TwPDe.js.br +0 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-B607bZBJ.js +2 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-B607bZBJ.js.br +0 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-B607bZBJ.js.gz +0 -0
- package/payload/server/public/assets/{isEmpty-DY_Xp9Na.js → isEmpty-CjH0UASp.js} +1 -1
- package/payload/server/public/assets/isEmpty-CjH0UASp.js.br +0 -0
- package/payload/server/public/assets/isEmpty-CjH0UASp.js.gz +0 -0
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-w8fVIbxy.js → ishikawaDiagram-UXIWVN3A-DsDoNemz.js} +1 -1
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-DsDoNemz.js.br +0 -0
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-DsDoNemz.js.gz +0 -0
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-BRTPKDT5.js → journeyDiagram-VCZTEJTY-xyayGhw3.js} +1 -1
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-xyayGhw3.js.br +0 -0
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-xyayGhw3.js.gz +0 -0
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Ls3VaFZ_.js → kanban-definition-6JOO6SKY-DuV3Go_1.js} +1 -1
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-DuV3Go_1.js.br +0 -0
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-DuV3Go_1.js.gz +0 -0
- package/payload/server/public/assets/{line-BwhAIh8u.js → line-Cpb8GRkf.js} +1 -1
- package/payload/server/public/assets/line-Cpb8GRkf.js.br +0 -0
- package/payload/server/public/assets/line-Cpb8GRkf.js.gz +0 -0
- package/payload/server/public/assets/{linear-USiZPFN4.js → linear-l39GooQ5.js} +1 -1
- package/payload/server/public/assets/linear-l39GooQ5.js.br +0 -0
- package/payload/server/public/assets/linear-l39GooQ5.js.gz +0 -0
- package/payload/server/public/assets/{maximize-2-S9W3q1O4.js → maximize-2-CD0gTjW_.js} +1 -1
- package/payload/server/public/assets/maximize-2-CD0gTjW_.js.br +0 -0
- package/payload/server/public/assets/maximize-2-CD0gTjW_.js.gz +0 -0
- package/payload/server/public/assets/{mermaid-parser.core-Bq--iC2w.js → mermaid-parser.core-9hkxt3j1.js} +2 -2
- package/payload/server/public/assets/mermaid-parser.core-9hkxt3j1.js.br +0 -0
- package/payload/server/public/assets/mermaid-parser.core-9hkxt3j1.js.gz +0 -0
- package/payload/server/public/assets/{mermaid.core-oYX-FxVa.js → mermaid.core-iR6TQesD.js} +3 -3
- package/payload/server/public/assets/mermaid.core-iR6TQesD.js.br +0 -0
- package/payload/server/public/assets/mermaid.core-iR6TQesD.js.gz +0 -0
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-ByZjL4Bs.js → mindmap-definition-QFDTVHPH-LCKhTYzs.js} +1 -1
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-LCKhTYzs.js.br +0 -0
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-LCKhTYzs.js.gz +0 -0
- package/payload/server/public/assets/operator-CLw4PZs5.js +1 -0
- package/payload/server/public/assets/operator-CLw4PZs5.js.br +0 -0
- package/payload/server/public/assets/operator-CLw4PZs5.js.gz +0 -0
- package/payload/server/public/assets/{ordinal-gnpqfIHn.js → ordinal-D6D6WcTC.js} +1 -1
- package/payload/server/public/assets/ordinal-D6D6WcTC.js.br +0 -0
- package/payload/server/public/assets/ordinal-D6D6WcTC.js.gz +0 -0
- package/payload/server/public/assets/packet-4T2RLAQJ-CCQdbIqO.js +1 -0
- package/payload/server/public/assets/packet-4T2RLAQJ-CCQdbIqO.js.br +0 -0
- package/payload/server/public/assets/{page-BUFW-PWF.js → page-BNRFmFc-.js} +4 -4
- package/payload/server/public/assets/page-BNRFmFc-.js.br +0 -0
- package/payload/server/public/assets/page-BNRFmFc-.js.gz +0 -0
- package/payload/server/public/assets/page-BRr295G2.js +1 -0
- package/payload/server/public/assets/page-BRr295G2.js.br +0 -0
- package/payload/server/public/assets/page-BRr295G2.js.gz +0 -0
- package/payload/server/public/assets/{pdf-render-gEryZmeC.js → pdf-render-DanMu_cf.js} +1 -1
- package/payload/server/public/assets/pdf-render-DanMu_cf.js.br +0 -0
- package/payload/server/public/assets/pdf-render-DanMu_cf.js.gz +0 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-Bdw3Iqs7.js +1 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-Bdw3Iqs7.js.br +0 -0
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-BGFms5bU.js → pieDiagram-DEJITSTG-Oo7wgo0C.js} +1 -1
- package/payload/server/public/assets/pieDiagram-DEJITSTG-Oo7wgo0C.js.br +0 -0
- package/payload/server/public/assets/pieDiagram-DEJITSTG-Oo7wgo0C.js.gz +0 -0
- package/payload/server/public/assets/play-CbRU6q0T.js +1 -0
- package/payload/server/public/assets/play-CbRU6q0T.js.br +0 -0
- package/payload/server/public/assets/play-CbRU6q0T.js.gz +0 -0
- package/payload/server/public/assets/{public-Cx2ddU9a.js → public-CqbKJ-Q3.js} +1 -1
- package/payload/server/public/assets/public-CqbKJ-Q3.js.br +0 -0
- package/payload/server/public/assets/public-CqbKJ-Q3.js.gz +0 -0
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-_ymoz8bQ.js → quadrantDiagram-34T5L4WZ-B2hs2ord.js} +1 -1
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-B2hs2ord.js.br +0 -0
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-B2hs2ord.js.gz +0 -0
- package/payload/server/public/assets/radar-PYXPWWZC-D3FUdA3r.js +1 -0
- package/payload/server/public/assets/radar-PYXPWWZC-D3FUdA3r.js.br +0 -0
- package/payload/server/public/assets/{reduce-BvezuHIe.js → reduce-BtXXK8Ma.js} +1 -1
- package/payload/server/public/assets/reduce-BtXXK8Ma.js.br +0 -0
- package/payload/server/public/assets/reduce-BtXXK8Ma.js.gz +0 -0
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-lrOmOxIA.js → requirementDiagram-MS252O5E-B8UkCUzW.js} +1 -1
- package/payload/server/public/assets/requirementDiagram-MS252O5E-B8UkCUzW.js.br +0 -0
- package/payload/server/public/assets/requirementDiagram-MS252O5E-B8UkCUzW.js.gz +0 -0
- package/payload/server/public/assets/{rotate-ccw-C2qSSBFA.js → rotate-ccw-CjliWBou.js} +1 -1
- package/payload/server/public/assets/rotate-ccw-CjliWBou.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-CjliWBou.js.gz +0 -0
- package/payload/server/public/assets/routines-yJuRuBfn.js +2 -0
- package/payload/server/public/assets/routines-yJuRuBfn.js.br +0 -0
- package/payload/server/public/assets/routines-yJuRuBfn.js.gz +0 -0
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-CdUQThXU.js → sankeyDiagram-XADWPNL6-Cojqqz7t.js} +1 -1
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-Cojqqz7t.js.br +0 -0
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-Cojqqz7t.js.gz +0 -0
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-DqnEEldq.js → sequenceDiagram-FGHM5R23-C7ODsPjE.js} +1 -1
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-C7ODsPjE.js.br +0 -0
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-C7ODsPjE.js.gz +0 -0
- package/payload/server/public/assets/{skills-CmsYXVd3.js → skills-ipK9BJFb.js} +1 -1
- package/payload/server/public/assets/skills-ipK9BJFb.js.br +0 -0
- package/payload/server/public/assets/skills-ipK9BJFb.js.gz +0 -0
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-KEdtxqdq.js → stateDiagram-FHFEXIEX-BC8a_P9c.js} +1 -1
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-BC8a_P9c.js.br +0 -0
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-BC8a_P9c.js.gz +0 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C7KvMtT5.js +1 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C7KvMtT5.js.br +0 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C7KvMtT5.js.gz +0 -0
- package/payload/server/public/assets/tasks-CGcJHQ3X.js +3 -0
- package/payload/server/public/assets/tasks-CGcJHQ3X.js.br +0 -0
- package/payload/server/public/assets/tasks-CGcJHQ3X.js.gz +0 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-BRXdCMau.js → timeline-definition-GMOUNBTQ-BMxUC3ri.js} +1 -1
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BMxUC3ri.js.br +0 -0
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BMxUC3ri.js.gz +0 -0
- package/payload/server/public/assets/treeView-SZITEDCU-DetKw0D0.js +1 -0
- package/payload/server/public/assets/treeView-SZITEDCU-DetKw0D0.js.br +0 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-zQkIANxW.js +1 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-zQkIANxW.js.br +0 -0
- package/payload/server/public/assets/{triangle-alert-CuRAK3jk.js → triangle-alert-CjsLPsBD.js} +1 -1
- package/payload/server/public/assets/triangle-alert-CjsLPsBD.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-CjsLPsBD.js.gz +0 -0
- package/payload/server/public/assets/{useCopyFeedback-BGzzIsSD.js → useCopyFeedback-umIgCxI_.js} +1 -1
- package/payload/server/public/assets/useCopyFeedback-umIgCxI_.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-umIgCxI_.js.gz +0 -0
- package/payload/server/public/assets/{useSubAccountSwitcher-BDQ8Wsdt.css → useSubAccountSwitcher-D8jXV7R5.css} +1 -1
- package/payload/server/public/assets/useSubAccountSwitcher-D8jXV7R5.css.br +0 -0
- package/payload/server/public/assets/{useSubAccountSwitcher-BDQ8Wsdt.css.gz → useSubAccountSwitcher-D8jXV7R5.css.gz} +0 -0
- package/payload/server/public/assets/useSubAccountSwitcher-UMg53kKF.js +14 -0
- package/payload/server/public/assets/useSubAccountSwitcher-UMg53kKF.js.br +0 -0
- package/payload/server/public/assets/useSubAccountSwitcher-UMg53kKF.js.gz +0 -0
- package/payload/server/public/assets/useVoiceRecorder-tzfqfXni.js +2 -0
- package/payload/server/public/assets/useVoiceRecorder-tzfqfXni.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-tzfqfXni.js.gz +0 -0
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-8nc7NUVQ.js → vennDiagram-DHZGUBPP-BsRGBF0K.js} +1 -1
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-BsRGBF0K.js.br +0 -0
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-BsRGBF0K.js.gz +0 -0
- package/payload/server/public/assets/wardley-RL74JXVD-DkQV3DvB.js +1 -0
- package/payload/server/public/assets/wardley-RL74JXVD-DkQV3DvB.js.br +0 -0
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-Cjjiap8M.js → wardleyDiagram-NUSXRM2D-oQh9A-Mq.js} +1 -1
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-oQh9A-Mq.js.br +0 -0
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-oQh9A-Mq.js.gz +0 -0
- package/payload/server/public/assets/{wrench-DxSsCrue.js → wrench-DtfKfR4s.js} +1 -1
- package/payload/server/public/assets/wrench-DtfKfR4s.js.br +0 -0
- package/payload/server/public/assets/wrench-DtfKfR4s.js.gz +0 -0
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-DEzDNw_i.js → xychartDiagram-5P7HB3ND-0K87OmFI.js} +1 -1
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0K87OmFI.js.br +0 -0
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0K87OmFI.js.gz +0 -0
- package/payload/server/public/browser.html +4 -5
- package/payload/server/public/calendar.html +7 -7
- package/payload/server/public/chat.html +14 -14
- package/payload/server/public/data.html +13 -13
- package/payload/server/public/graph.html +9 -9
- package/payload/server/public/index.html +16 -17
- package/payload/server/public/operator.html +15 -16
- package/payload/server/public/public.html +14 -14
- package/payload/server/public/routines.html +7 -7
- package/payload/server/public/skills.html +5 -5
- package/payload/server/public/tasks.html +6 -6
- package/payload/server/server.js +1186 -516
- package/payload/server/public/assets/AdminLoginScreens-DxjuTFjL.js +0 -1
- package/payload/server/public/assets/AdminLoginScreens-DxjuTFjL.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-DxjuTFjL.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-B6H3J5C2.js +0 -2
- package/payload/server/public/assets/AdminShell-B6H3J5C2.js.br +0 -0
- package/payload/server/public/assets/AdminShell-B6H3J5C2.js.gz +0 -0
- package/payload/server/public/assets/CdpScreencastSurface-BRSv89v-.js +0 -1
- package/payload/server/public/assets/CdpScreencastSurface-BRSv89v-.js.br +0 -0
- package/payload/server/public/assets/CdpScreencastSurface-BRSv89v-.js.gz +0 -0
- package/payload/server/public/assets/activity-DKeRUjQ9.js.br +0 -0
- package/payload/server/public/assets/activity-DKeRUjQ9.js.gz +0 -0
- package/payload/server/public/assets/admin-BxRWjeyZ.js +0 -1
- package/payload/server/public/assets/admin-BxRWjeyZ.js.br +0 -0
- package/payload/server/public/assets/admin-BxRWjeyZ.js.gz +0 -0
- package/payload/server/public/assets/agents-CrR_OMe8.js.br +0 -0
- package/payload/server/public/assets/agents-CrR_OMe8.js.gz +0 -0
- package/payload/server/public/assets/arc-CHoXZR2f.js.br +0 -0
- package/payload/server/public/assets/arc-CHoXZR2f.js.gz +0 -0
- package/payload/server/public/assets/architecture-YZFGNWBL-CQyo9W6E.js +0 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-CQyo9W6E.js.br +0 -0
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-B8SCI0AR.js.br +0 -0
- package/payload/server/public/assets/architectureDiagram-Q4EWVU46-B8SCI0AR.js.gz +0 -0
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-CsJmhz5D.js.br +0 -0
- package/payload/server/public/assets/blockDiagram-DXYQGD6D-CsJmhz5D.js.gz +0 -0
- package/payload/server/public/assets/browser-sfwnP1kH.js +0 -1
- package/payload/server/public/assets/browser-sfwnP1kH.js.br +0 -0
- package/payload/server/public/assets/browser-sfwnP1kH.js.gz +0 -0
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-CzaSNqcs.js.br +0 -0
- package/payload/server/public/assets/c4Diagram-AHTNJAMY-CzaSNqcs.js.gz +0 -0
- package/payload/server/public/assets/calendar-ByLH0Q5p.js +0 -1
- package/payload/server/public/assets/calendar-ByLH0Q5p.js.br +0 -0
- package/payload/server/public/assets/calendar-ByLH0Q5p.js.gz +0 -0
- package/payload/server/public/assets/channel-Dg_Rah6O.js +0 -1
- package/payload/server/public/assets/channel-Dg_Rah6O.js.br +0 -0
- package/payload/server/public/assets/chat-C3xYZlGo.js +0 -1
- package/payload/server/public/assets/chat-C3xYZlGo.js.br +0 -2
- package/payload/server/public/assets/chat-C3xYZlGo.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-C0HG8MBj.js +0 -1
- package/payload/server/public/assets/chevron-right-B49Xpptm.js +0 -1
- package/payload/server/public/assets/chevron-right-B49Xpptm.js.br +0 -0
- package/payload/server/public/assets/chunk-2KRD3SAO-DAN3KCZc.js.br +0 -0
- package/payload/server/public/assets/chunk-2KRD3SAO-DAN3KCZc.js.gz +0 -0
- package/payload/server/public/assets/chunk-336JU56O-Dm-0_lIT.js.br +0 -0
- package/payload/server/public/assets/chunk-336JU56O-Dm-0_lIT.js.gz +0 -0
- package/payload/server/public/assets/chunk-426QAEUC-Rh8qTRZB.js +0 -1
- package/payload/server/public/assets/chunk-426QAEUC-Rh8qTRZB.js.br +0 -0
- package/payload/server/public/assets/chunk-426QAEUC-Rh8qTRZB.js.gz +0 -0
- package/payload/server/public/assets/chunk-4BX2VUAB-C2l9bAlo.js.br +0 -0
- package/payload/server/public/assets/chunk-4BX2VUAB-C2l9bAlo.js.gz +0 -0
- package/payload/server/public/assets/chunk-4TB4RGXK-BMXDzU09.js.br +0 -0
- package/payload/server/public/assets/chunk-4TB4RGXK-BMXDzU09.js.gz +0 -0
- package/payload/server/public/assets/chunk-55IACEB6-CbMYAZon.js.br +0 -0
- package/payload/server/public/assets/chunk-55IACEB6-CbMYAZon.js.gz +0 -0
- package/payload/server/public/assets/chunk-5FUZZQ4R-DjdsuxLA.js.br +0 -0
- package/payload/server/public/assets/chunk-5FUZZQ4R-DjdsuxLA.js.gz +0 -0
- package/payload/server/public/assets/chunk-5PVQY5BW-CGSBzsF6.js.br +0 -0
- package/payload/server/public/assets/chunk-5PVQY5BW-CGSBzsF6.js.gz +0 -0
- package/payload/server/public/assets/chunk-67CJDMHE-ClOLWser.js.br +0 -0
- package/payload/server/public/assets/chunk-67CJDMHE-ClOLWser.js.gz +0 -0
- package/payload/server/public/assets/chunk-7N4EOEYR-BzC1dzY0.js.br +0 -0
- package/payload/server/public/assets/chunk-7N4EOEYR-BzC1dzY0.js.gz +0 -0
- package/payload/server/public/assets/chunk-AA7GKIK3-R_pjI1kw.js.br +0 -0
- package/payload/server/public/assets/chunk-AA7GKIK3-R_pjI1kw.js.gz +0 -0
- package/payload/server/public/assets/chunk-BSJP7CBP-D2KRAq3U.js.br +0 -0
- package/payload/server/public/assets/chunk-BSJP7CBP-D2KRAq3U.js.gz +0 -0
- package/payload/server/public/assets/chunk-CIAEETIT-BPGWtrKR.js.br +0 -0
- package/payload/server/public/assets/chunk-CIAEETIT-BPGWtrKR.js.gz +0 -0
- package/payload/server/public/assets/chunk-EDXVE4YY-tqt7wueu.js.br +0 -3
- package/payload/server/public/assets/chunk-EDXVE4YY-tqt7wueu.js.gz +0 -0
- package/payload/server/public/assets/chunk-ENJZ2VHE-DJG3cA6E.js.br +0 -0
- package/payload/server/public/assets/chunk-ENJZ2VHE-DJG3cA6E.js.gz +0 -0
- package/payload/server/public/assets/chunk-FMBD7UC4-DO1xgCDf.js.br +0 -2
- package/payload/server/public/assets/chunk-FMBD7UC4-DO1xgCDf.js.gz +0 -0
- package/payload/server/public/assets/chunk-FOC6F5B3-BhWAbCUG.js.br +0 -0
- package/payload/server/public/assets/chunk-FOC6F5B3-BhWAbCUG.js.gz +0 -0
- package/payload/server/public/assets/chunk-ICPOFSXX-BhUzt35c.js.br +0 -0
- package/payload/server/public/assets/chunk-ICPOFSXX-BhUzt35c.js.gz +0 -0
- package/payload/server/public/assets/chunk-K5T4RW27-Boj-qHrX.js.br +0 -0
- package/payload/server/public/assets/chunk-K5T4RW27-Boj-qHrX.js.gz +0 -0
- package/payload/server/public/assets/chunk-KGLVRYIC-3cBRDk1b.js.br +0 -2
- package/payload/server/public/assets/chunk-KGLVRYIC-3cBRDk1b.js.gz +0 -0
- package/payload/server/public/assets/chunk-LIHQZDEY-CgkLKaII.js.br +0 -0
- package/payload/server/public/assets/chunk-LIHQZDEY-CgkLKaII.js.gz +0 -0
- package/payload/server/public/assets/chunk-ORNJ4GCN-Dl449r_k.js.br +0 -0
- package/payload/server/public/assets/chunk-ORNJ4GCN-Dl449r_k.js.gz +0 -0
- package/payload/server/public/assets/chunk-OYMX7WX6-Dzkj67n6.js.br +0 -0
- package/payload/server/public/assets/chunk-OYMX7WX6-Dzkj67n6.js.gz +0 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-BDoCtU0N.js +0 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-BDoCtU0N.js.br +0 -0
- package/payload/server/public/assets/chunk-QZHKN3VN-BDoCtU0N.js.gz +0 -0
- package/payload/server/public/assets/chunk-U2HBQHQK-Dyz9Kbir.js.br +0 -0
- package/payload/server/public/assets/chunk-U2HBQHQK-Dyz9Kbir.js.gz +0 -0
- package/payload/server/public/assets/chunk-X2U36JSP-ag0VVCw6.js.br +0 -0
- package/payload/server/public/assets/chunk-X2U36JSP-ag0VVCw6.js.gz +0 -0
- package/payload/server/public/assets/chunk-XPW4576I-B-vhDYPE.js.br +0 -0
- package/payload/server/public/assets/chunk-XPW4576I-B-vhDYPE.js.gz +0 -0
- package/payload/server/public/assets/chunk-YZCP3GAM-C4COviPb.js.br +0 -0
- package/payload/server/public/assets/chunk-YZCP3GAM-C4COviPb.js.gz +0 -0
- package/payload/server/public/assets/chunk-ZZ45TVLE-8dGsCp5b.js.br +0 -0
- package/payload/server/public/assets/chunk-ZZ45TVLE-8dGsCp5b.js.gz +0 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-qevfwy5C.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-qevfwy5C.js.br +0 -0
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-qevfwy5C.js.gz +0 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CxOR3aao.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CxOR3aao.js.br +0 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CxOR3aao.js.gz +0 -0
- package/payload/server/public/assets/clock-CJq9vvt8.js +0 -1
- package/payload/server/public/assets/clock-CJq9vvt8.js.br +0 -0
- package/payload/server/public/assets/clock-CJq9vvt8.js.gz +0 -0
- package/payload/server/public/assets/clone-CJmzeWWZ.js +0 -1
- package/payload/server/public/assets/clone-CJmzeWWZ.js.br +0 -0
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-qM4Q4TuE.js.br +0 -0
- package/payload/server/public/assets/cose-bilkent-S5V4N54A-qM4Q4TuE.js.gz +0 -0
- package/payload/server/public/assets/dagre-DRvHdusQ.js.br +0 -0
- package/payload/server/public/assets/dagre-DRvHdusQ.js.gz +0 -0
- package/payload/server/public/assets/dagre-KV5264BT-CGqSVVTn.js.br +0 -0
- package/payload/server/public/assets/dagre-KV5264BT-CGqSVVTn.js.gz +0 -0
- package/payload/server/public/assets/data-DmeTKd-P.js +0 -1
- package/payload/server/public/assets/data-DmeTKd-P.js.br +0 -0
- package/payload/server/public/assets/data-DmeTKd-P.js.gz +0 -0
- package/payload/server/public/assets/diagram-5BDNPKRD-DfFgeApz.js.br +0 -0
- package/payload/server/public/assets/diagram-5BDNPKRD-DfFgeApz.js.gz +0 -0
- package/payload/server/public/assets/diagram-G4DWMVQ6-DPXc3Q8e.js.br +0 -0
- package/payload/server/public/assets/diagram-G4DWMVQ6-DPXc3Q8e.js.gz +0 -0
- package/payload/server/public/assets/diagram-MMDJMWI5-V8RCddvy.js.br +0 -0
- package/payload/server/public/assets/diagram-MMDJMWI5-V8RCddvy.js.gz +0 -0
- package/payload/server/public/assets/diagram-TYMM5635-CrvfIf-m.js.br +0 -0
- package/payload/server/public/assets/diagram-TYMM5635-CrvfIf-m.js.gz +0 -0
- package/payload/server/public/assets/erDiagram-SMLLAGMA-DClMgmBB.js.br +0 -0
- package/payload/server/public/assets/erDiagram-SMLLAGMA-DClMgmBB.js.gz +0 -0
- package/payload/server/public/assets/file-download-BWe9Muoh.js +0 -1
- package/payload/server/public/assets/file-download-BWe9Muoh.js.br +0 -0
- package/payload/server/public/assets/file-download-BWe9Muoh.js.gz +0 -0
- package/payload/server/public/assets/file-text-5osg-EVb.js.br +0 -0
- package/payload/server/public/assets/file-text-5osg-EVb.js.gz +0 -0
- package/payload/server/public/assets/flatten-UdUTbm8v.js.br +0 -0
- package/payload/server/public/assets/flatten-UdUTbm8v.js.gz +0 -0
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-D29Ou09P.js.br +0 -0
- package/payload/server/public/assets/flowDiagram-DWJPFMVM-D29Ou09P.js.gz +0 -0
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-CoAK7W_V.js.br +0 -0
- package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-CoAK7W_V.js.gz +0 -0
- package/payload/server/public/assets/gitGraph-7Q5UKJZL--JSoLMoH.js +0 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL--JSoLMoH.js.br +0 -0
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DMEc_1aX.js.br +0 -0
- package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-DMEc_1aX.js.gz +0 -0
- package/payload/server/public/assets/graph-CAUo1OTY.js.br +0 -0
- package/payload/server/public/assets/graph-CAUo1OTY.js.gz +0 -0
- package/payload/server/public/assets/graph-labels-TJ-3ljQo.js.br +0 -0
- package/payload/server/public/assets/graph-labels-TJ-3ljQo.js.gz +0 -0
- package/payload/server/public/assets/graphlib-ihSLgqUG.js.br +0 -0
- package/payload/server/public/assets/graphlib-ihSLgqUG.js.gz +0 -0
- package/payload/server/public/assets/info-OMHHGYJF-CY4gsXn4.js +0 -1
- package/payload/server/public/assets/info-OMHHGYJF-CY4gsXn4.js.br +0 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-CpWSNS3C.js +0 -2
- package/payload/server/public/assets/infoDiagram-42DDH7IO-CpWSNS3C.js.br +0 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-CpWSNS3C.js.gz +0 -0
- package/payload/server/public/assets/isEmpty-DY_Xp9Na.js.br +0 -0
- package/payload/server/public/assets/isEmpty-DY_Xp9Na.js.gz +0 -0
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-w8fVIbxy.js.br +0 -0
- package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-w8fVIbxy.js.gz +0 -0
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-BRTPKDT5.js.br +0 -0
- package/payload/server/public/assets/journeyDiagram-VCZTEJTY-BRTPKDT5.js.gz +0 -0
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-Ls3VaFZ_.js.br +0 -0
- package/payload/server/public/assets/kanban-definition-6JOO6SKY-Ls3VaFZ_.js.gz +0 -0
- package/payload/server/public/assets/line-BwhAIh8u.js.br +0 -0
- package/payload/server/public/assets/line-BwhAIh8u.js.gz +0 -0
- package/payload/server/public/assets/linear-USiZPFN4.js.br +0 -0
- package/payload/server/public/assets/linear-USiZPFN4.js.gz +0 -0
- package/payload/server/public/assets/maximize-2-S9W3q1O4.js.br +0 -0
- package/payload/server/public/assets/maximize-2-S9W3q1O4.js.gz +0 -0
- package/payload/server/public/assets/mermaid-parser.core-Bq--iC2w.js.br +0 -0
- package/payload/server/public/assets/mermaid-parser.core-Bq--iC2w.js.gz +0 -0
- package/payload/server/public/assets/mermaid.core-oYX-FxVa.js.br +0 -0
- package/payload/server/public/assets/mermaid.core-oYX-FxVa.js.gz +0 -0
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-ByZjL4Bs.js.br +0 -0
- package/payload/server/public/assets/mindmap-definition-QFDTVHPH-ByZjL4Bs.js.gz +0 -0
- package/payload/server/public/assets/operator-CzOJfank.js +0 -1
- package/payload/server/public/assets/operator-CzOJfank.js.br +0 -0
- package/payload/server/public/assets/operator-CzOJfank.js.gz +0 -0
- package/payload/server/public/assets/ordinal-gnpqfIHn.js.br +0 -0
- package/payload/server/public/assets/ordinal-gnpqfIHn.js.gz +0 -0
- package/payload/server/public/assets/packet-4T2RLAQJ-DczCn3uj.js +0 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-DczCn3uj.js.br +0 -0
- package/payload/server/public/assets/page-BUFW-PWF.js.br +0 -0
- package/payload/server/public/assets/page-BUFW-PWF.js.gz +0 -0
- package/payload/server/public/assets/page-jT4queFM.js +0 -1
- package/payload/server/public/assets/page-jT4queFM.js.br +0 -0
- package/payload/server/public/assets/page-jT4queFM.js.gz +0 -0
- package/payload/server/public/assets/pdf-render-gEryZmeC.js.br +0 -0
- package/payload/server/public/assets/pdf-render-gEryZmeC.js.gz +0 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-CbvZUaof.js +0 -1
- package/payload/server/public/assets/pie-ZZUOXDRM-CbvZUaof.js.br +0 -0
- package/payload/server/public/assets/pieDiagram-DEJITSTG-BGFms5bU.js.br +0 -0
- package/payload/server/public/assets/pieDiagram-DEJITSTG-BGFms5bU.js.gz +0 -0
- package/payload/server/public/assets/public-Cx2ddU9a.js.br +0 -0
- package/payload/server/public/assets/public-Cx2ddU9a.js.gz +0 -0
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-_ymoz8bQ.js.br +0 -0
- package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-_ymoz8bQ.js.gz +0 -0
- package/payload/server/public/assets/radar-PYXPWWZC-XmuabQlO.js +0 -1
- package/payload/server/public/assets/radar-PYXPWWZC-XmuabQlO.js.br +0 -0
- package/payload/server/public/assets/reduce-BvezuHIe.js.br +0 -0
- package/payload/server/public/assets/reduce-BvezuHIe.js.gz +0 -0
- package/payload/server/public/assets/requirementDiagram-MS252O5E-lrOmOxIA.js.br +0 -0
- package/payload/server/public/assets/requirementDiagram-MS252O5E-lrOmOxIA.js.gz +0 -0
- package/payload/server/public/assets/rotate-ccw-C2qSSBFA.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-C2qSSBFA.js.gz +0 -0
- package/payload/server/public/assets/routines-80uEwjng.js +0 -2
- package/payload/server/public/assets/routines-80uEwjng.js.br +0 -0
- package/payload/server/public/assets/routines-80uEwjng.js.gz +0 -0
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-CdUQThXU.js.br +0 -0
- package/payload/server/public/assets/sankeyDiagram-XADWPNL6-CdUQThXU.js.gz +0 -0
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DqnEEldq.js.br +0 -0
- package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DqnEEldq.js.gz +0 -0
- package/payload/server/public/assets/skills-CmsYXVd3.js.br +0 -0
- package/payload/server/public/assets/skills-CmsYXVd3.js.gz +0 -0
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-KEdtxqdq.js.br +0 -0
- package/payload/server/public/assets/stateDiagram-FHFEXIEX-KEdtxqdq.js.gz +0 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Cs85Ewtt.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Cs85Ewtt.js.br +0 -0
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Cs85Ewtt.js.gz +0 -0
- package/payload/server/public/assets/tasks-CFfvn-KE.js +0 -3
- package/payload/server/public/assets/tasks-CFfvn-KE.js.br +0 -0
- package/payload/server/public/assets/tasks-CFfvn-KE.js.gz +0 -0
- package/payload/server/public/assets/time-entry-format-BD99oR05.js +0 -1
- package/payload/server/public/assets/time-entry-format-BD99oR05.js.br +0 -0
- package/payload/server/public/assets/time-entry-format-BD99oR05.js.gz +0 -0
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BRXdCMau.js.br +0 -0
- package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BRXdCMau.js.gz +0 -0
- package/payload/server/public/assets/treeView-SZITEDCU-B-SYhqwK.js +0 -1
- package/payload/server/public/assets/treeView-SZITEDCU-B-SYhqwK.js.br +0 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-DpZmFNM9.js +0 -1
- package/payload/server/public/assets/treemap-W4RFUUIX-DpZmFNM9.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-CuRAK3jk.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-CuRAK3jk.js.gz +0 -0
- package/payload/server/public/assets/useCopyFeedback-BGzzIsSD.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-BGzzIsSD.js.gz +0 -0
- package/payload/server/public/assets/useSubAccountSwitcher-BDQ8Wsdt.css.br +0 -0
- package/payload/server/public/assets/useSubAccountSwitcher-D1VtIEp2.js +0 -14
- package/payload/server/public/assets/useSubAccountSwitcher-D1VtIEp2.js.br +0 -0
- package/payload/server/public/assets/useSubAccountSwitcher-D1VtIEp2.js.gz +0 -0
- package/payload/server/public/assets/useVoiceRecorder-fpwWw2VW.js +0 -2
- package/payload/server/public/assets/useVoiceRecorder-fpwWw2VW.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-fpwWw2VW.js.gz +0 -0
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-8nc7NUVQ.js.br +0 -0
- package/payload/server/public/assets/vennDiagram-DHZGUBPP-8nc7NUVQ.js.gz +0 -0
- package/payload/server/public/assets/wardley-RL74JXVD-D2FCCV4-.js +0 -1
- package/payload/server/public/assets/wardley-RL74JXVD-D2FCCV4-.js.br +0 -0
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cjjiap8M.js.br +0 -0
- package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cjjiap8M.js.gz +0 -0
- package/payload/server/public/assets/wrench-DxSsCrue.js.br +0 -2
- package/payload/server/public/assets/wrench-DxSsCrue.js.gz +0 -0
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DEzDNw_i.js.br +0 -0
- package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DEzDNw_i.js.gz +0 -0
- /package/payload/server/public/assets/{_baseFor-BApe6Tla.js → _baseFor-B12He5Rp.js} +0 -0
- /package/payload/server/public/assets/{_baseFor-BApe6Tla.js.br → _baseFor-B12He5Rp.js.br} +0 -0
- /package/payload/server/public/assets/{_baseFor-BApe6Tla.js.gz → _baseFor-B12He5Rp.js.gz} +0 -0
- /package/payload/server/public/assets/{array-eiH4WfvY.js → array-DO1uCttT.js} +0 -0
- /package/payload/server/public/assets/{array-eiH4WfvY.js.br → array-DO1uCttT.js.br} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-BZ6NYo0w.js → cytoscape.esm-DFn2foqy.js} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-BZ6NYo0w.js.br → cytoscape.esm-DFn2foqy.js.br} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-BZ6NYo0w.js.gz → cytoscape.esm-DFn2foqy.js.gz} +0 -0
- /package/payload/server/public/assets/{defaultLocale-DWHqsa6O.js → defaultLocale-ieI3yFoA.js} +0 -0
- /package/payload/server/public/assets/{defaultLocale-DWHqsa6O.js.br → defaultLocale-ieI3yFoA.js.br} +0 -0
- /package/payload/server/public/assets/{defaultLocale-DWHqsa6O.js.gz → defaultLocale-ieI3yFoA.js.gz} +0 -0
- /package/payload/server/public/assets/{dist-IoQuidkp.js → dist-DlU7AEeD.js} +0 -0
- /package/payload/server/public/assets/{dist-IoQuidkp.js.br → dist-DlU7AEeD.js.br} +0 -0
- /package/payload/server/public/assets/{dist-IoQuidkp.js.gz → dist-DlU7AEeD.js.gz} +0 -0
- /package/payload/server/public/assets/{init-BdkYWjJJ.js → init-BCRlEgNP.js} +0 -0
- /package/payload/server/public/assets/{init-BdkYWjJJ.js.br → init-BCRlEgNP.js.br} +0 -0
- /package/payload/server/public/assets/{init-BdkYWjJJ.js.gz → init-BCRlEgNP.js.gz} +0 -0
- /package/payload/server/public/assets/{katex-BCzoGtFh.js → katex-gkTaZgi6.js} +0 -0
- /package/payload/server/public/assets/{katex-BCzoGtFh.js.br → katex-gkTaZgi6.js.br} +0 -0
- /package/payload/server/public/assets/{katex-BCzoGtFh.js.gz → katex-gkTaZgi6.js.gz} +0 -0
- /package/payload/server/public/assets/{path-DY2qBuPM.js → path-DTmzQFjQ.js} +0 -0
- /package/payload/server/public/assets/{path-DY2qBuPM.js.br → path-DTmzQFjQ.js.br} +0 -0
- /package/payload/server/public/assets/{path-DY2qBuPM.js.gz → path-DTmzQFjQ.js.gz} +0 -0
- /package/payload/server/public/assets/{preload-helper-3YNEDsJZ.js → preload-helper-BQrMkyGX.js} +0 -0
- /package/payload/server/public/assets/{preload-helper-3YNEDsJZ.js.br → preload-helper-BQrMkyGX.js.br} +0 -0
- /package/payload/server/public/assets/{preload-helper-3YNEDsJZ.js.gz → preload-helper-BQrMkyGX.js.gz} +0 -0
- /package/payload/server/public/assets/{rough.esm-ec8xsRC7.js → rough.esm-BFJ-MgcB.js} +0 -0
- /package/payload/server/public/assets/{rough.esm-ec8xsRC7.js.br → rough.esm-BFJ-MgcB.js.br} +0 -0
- /package/payload/server/public/assets/{rough.esm-ec8xsRC7.js.gz → rough.esm-BFJ-MgcB.js.gz} +0 -0
- /package/payload/server/public/assets/{src-C-STKunZ.js → src-9CNk4JU0.js} +0 -0
- /package/payload/server/public/assets/{src-C-STKunZ.js.br → src-9CNk4JU0.js.br} +0 -0
- /package/payload/server/public/assets/{src-C-STKunZ.js.gz → src-9CNk4JU0.js.gz} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export type Logger = (line: string) => void;
|
|
2
|
+
/** The channel servers a public session is allowed to hold: the three per-kind
|
|
3
|
+
* servers and the unified server a multi-target session registers instead.
|
|
4
|
+
* Anything else on a public session is a breach — the visitor's spawn holds a
|
|
5
|
+
* server the lockdown should have excluded. */
|
|
6
|
+
export declare const CHANNEL_SERVER_NAMES: ReadonlySet<string>;
|
|
7
|
+
/** The server name in a spawn-tee log filename for THIS session, else null.
|
|
8
|
+
* The filename is `mcp-<server>-<sessionId>.log` and the server name itself
|
|
9
|
+
* contains dashes, so the match is anchored on the sessionId suffix rather
|
|
10
|
+
* than split on '-'. The sessionless twin (`mcp-<server>-nosession.log`)
|
|
11
|
+
* belongs to no session and is never a breach. */
|
|
12
|
+
export declare function parseMcpLogServerName(filename: string, sessionId: string): string | null;
|
|
13
|
+
/** Every server on a public session that is not a channel server, deduped and
|
|
14
|
+
* sorted so the logged set is stable across ticks. */
|
|
15
|
+
export declare function selectBreachServers(servers: readonly string[]): string[];
|
|
16
|
+
/** The every-tick line. Emitted including zero, so a silent audit is
|
|
17
|
+
* distinguishable from a healthy one. */
|
|
18
|
+
export declare function formatPublicSurfaceSummary(p: {
|
|
19
|
+
publicSessions: number;
|
|
20
|
+
breaches: number;
|
|
21
|
+
}): string;
|
|
22
|
+
export declare function formatPublicSurfaceBreach(p: {
|
|
23
|
+
sessionId: string;
|
|
24
|
+
servers: readonly string[];
|
|
25
|
+
}): string;
|
|
26
|
+
export interface PublicSurfaceAuditDeps {
|
|
27
|
+
intervalMs: number;
|
|
28
|
+
logger: Logger;
|
|
29
|
+
/** Live sessions and the role their classification sidecar records. A role
|
|
30
|
+
* that cannot be resolved is null, which is never a breach. */
|
|
31
|
+
listSessions(): readonly {
|
|
32
|
+
sessionId: string;
|
|
33
|
+
role: string | null;
|
|
34
|
+
}[];
|
|
35
|
+
/** MCP server names this session actually realised. */
|
|
36
|
+
serversForSession(sessionId: string): readonly string[];
|
|
37
|
+
}
|
|
38
|
+
export interface PublicSurfaceAudit {
|
|
39
|
+
start(): void;
|
|
40
|
+
stop(): void;
|
|
41
|
+
tickOnce(): void;
|
|
42
|
+
}
|
|
43
|
+
export declare function createPublicSurfaceAudit(deps: PublicSurfaceAuditDeps): PublicSurfaceAudit;
|
|
44
|
+
//# sourceMappingURL=public-surface-audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-surface-audit.d.ts","sourceRoot":"","sources":["../src/public-surface-audit.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;AAE3C;;;gDAGgD;AAChD,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAKnD,CAAA;AAEF;;;;mDAImD;AACnD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMxF;AAED;uDACuD;AACvD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAExE;AAED;0CAC0C;AAC1C,wBAAgB,0BAA0B,CAAC,CAAC,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAElG;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAEtG;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd;oEACgE;IAChE,YAAY,IAAI,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAA;IACrE,uDAAuD;IACvD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;CACxD;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;IACZ,QAAQ,IAAI,IAAI,CAAA;CACjB;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB,CAmDzF"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Task 2260 — the transition-only `tool-allowlist` line records the surface a
|
|
2
|
+
// spawn was GIVEN; it cannot see a session already running over-privileged —
|
|
3
|
+
// every session live when the lockdown landed, and any future path that reopens
|
|
4
|
+
// the surface without going through the lockdown. This standing audit closes
|
|
5
|
+
// that gap: it reconciles each live session's classification-sidecar role
|
|
6
|
+
// against the MCP server set its spawn actually realised.
|
|
7
|
+
//
|
|
8
|
+
// The realised set is read from the spawn-tee's own filenames. Every MCP child
|
|
9
|
+
// writes `${LOG_DIR}/mcp-<server>-<sessionId>.log` (platform/lib/mcp-spawn-tee),
|
|
10
|
+
// so a directory listing IS the realised surface — no log tailing, no parsing of
|
|
11
|
+
// server.log.
|
|
12
|
+
//
|
|
13
|
+
// Shape mirrors skill-staleness-audit.ts: PURE parsers, selector and formatters
|
|
14
|
+
// plus an impure factory whose setInterval is unref'd and whose readers are
|
|
15
|
+
// injected.
|
|
16
|
+
const TAG = '[public-surface]';
|
|
17
|
+
/** The channel servers a public session is allowed to hold: the three per-kind
|
|
18
|
+
* servers and the unified server a multi-target session registers instead.
|
|
19
|
+
* Anything else on a public session is a breach — the visitor's spawn holds a
|
|
20
|
+
* server the lockdown should have excluded. */
|
|
21
|
+
export const CHANNEL_SERVER_NAMES = new Set([
|
|
22
|
+
'channel',
|
|
23
|
+
'whatsapp-channel',
|
|
24
|
+
'webchat-channel',
|
|
25
|
+
'telegram-channel',
|
|
26
|
+
]);
|
|
27
|
+
/** The server name in a spawn-tee log filename for THIS session, else null.
|
|
28
|
+
* The filename is `mcp-<server>-<sessionId>.log` and the server name itself
|
|
29
|
+
* contains dashes, so the match is anchored on the sessionId suffix rather
|
|
30
|
+
* than split on '-'. The sessionless twin (`mcp-<server>-nosession.log`)
|
|
31
|
+
* belongs to no session and is never a breach. */
|
|
32
|
+
export function parseMcpLogServerName(filename, sessionId) {
|
|
33
|
+
const prefix = 'mcp-';
|
|
34
|
+
const suffix = `-${sessionId}.log`;
|
|
35
|
+
if (!filename.startsWith(prefix) || !filename.endsWith(suffix))
|
|
36
|
+
return null;
|
|
37
|
+
const name = filename.slice(prefix.length, filename.length - suffix.length);
|
|
38
|
+
return name.length > 0 ? name : null;
|
|
39
|
+
}
|
|
40
|
+
/** Every server on a public session that is not a channel server, deduped and
|
|
41
|
+
* sorted so the logged set is stable across ticks. */
|
|
42
|
+
export function selectBreachServers(servers) {
|
|
43
|
+
return Array.from(new Set(servers.filter((s) => !CHANNEL_SERVER_NAMES.has(s)))).sort();
|
|
44
|
+
}
|
|
45
|
+
/** The every-tick line. Emitted including zero, so a silent audit is
|
|
46
|
+
* distinguishable from a healthy one. */
|
|
47
|
+
export function formatPublicSurfaceSummary(p) {
|
|
48
|
+
return `${TAG} op=audit publicSessions=${p.publicSessions} breaches=${p.breaches}`;
|
|
49
|
+
}
|
|
50
|
+
export function formatPublicSurfaceBreach(p) {
|
|
51
|
+
return `${TAG} op=breach sessionId=${p.sessionId.slice(0, 8)} servers=${p.servers.join(',')}`;
|
|
52
|
+
}
|
|
53
|
+
export function createPublicSurfaceAudit(deps) {
|
|
54
|
+
// sessionId -> the breach set already logged, so a steady-state breach logs
|
|
55
|
+
// once rather than every tick; a changed set re-logs. Pruned when the session
|
|
56
|
+
// is no longer live or no longer breaching.
|
|
57
|
+
const loggedBreach = new Map();
|
|
58
|
+
let timer = null;
|
|
59
|
+
function tickOnce() {
|
|
60
|
+
let publicSessions = 0;
|
|
61
|
+
let breaches = 0;
|
|
62
|
+
const seen = new Set();
|
|
63
|
+
for (const s of deps.listSessions()) {
|
|
64
|
+
if (s.role !== 'public')
|
|
65
|
+
continue;
|
|
66
|
+
publicSessions++;
|
|
67
|
+
seen.add(s.sessionId);
|
|
68
|
+
const breach = selectBreachServers(deps.serversForSession(s.sessionId));
|
|
69
|
+
if (breach.length === 0) {
|
|
70
|
+
loggedBreach.delete(s.sessionId);
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
breaches++;
|
|
74
|
+
const key = breach.join(',');
|
|
75
|
+
if (loggedBreach.get(s.sessionId) === key)
|
|
76
|
+
continue;
|
|
77
|
+
deps.logger(formatPublicSurfaceBreach({ sessionId: s.sessionId, servers: breach }));
|
|
78
|
+
loggedBreach.set(s.sessionId, key);
|
|
79
|
+
}
|
|
80
|
+
for (const id of loggedBreach.keys())
|
|
81
|
+
if (!seen.has(id))
|
|
82
|
+
loggedBreach.delete(id);
|
|
83
|
+
deps.logger(formatPublicSurfaceSummary({ publicSessions, breaches }));
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
tickOnce,
|
|
87
|
+
start() {
|
|
88
|
+
if (timer)
|
|
89
|
+
return;
|
|
90
|
+
timer = setInterval(() => {
|
|
91
|
+
try {
|
|
92
|
+
tickOnce();
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
deps.logger(`${TAG} op=audit-tick-failed message=${err instanceof Error ? err.message : String(err)}`);
|
|
96
|
+
}
|
|
97
|
+
}, deps.intervalMs);
|
|
98
|
+
if (typeof timer.unref === 'function')
|
|
99
|
+
timer.unref();
|
|
100
|
+
deps.logger(`${TAG} op=audit-started intervalMs=${deps.intervalMs}`);
|
|
101
|
+
},
|
|
102
|
+
stop() {
|
|
103
|
+
if (timer) {
|
|
104
|
+
clearInterval(timer);
|
|
105
|
+
timer = null;
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=public-surface-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-surface-audit.js","sourceRoot":"","sources":["../src/public-surface-audit.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,gFAAgF;AAChF,6EAA6E;AAC7E,0EAA0E;AAC1E,0DAA0D;AAC1D,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,iFAAiF;AACjF,cAAc;AACd,EAAE;AACF,gFAAgF;AAChF,4EAA4E;AAC5E,YAAY;AAEZ,MAAM,GAAG,GAAG,kBAAkB,CAAA;AAG9B;;;gDAGgD;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,SAAS;IACT,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;CACnB,CAAC,CAAA;AAEF;;;;mDAImD;AACnD,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,SAAiB;IACvE,MAAM,MAAM,GAAG,MAAM,CAAA;IACrB,MAAM,MAAM,GAAG,IAAI,SAAS,MAAM,CAAA;IAClC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3E,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;AACtC,CAAC;AAED;uDACuD;AACvD,MAAM,UAAU,mBAAmB,CAAC,OAA0B;IAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACxF,CAAC;AAED;0CAC0C;AAC1C,MAAM,UAAU,0BAA0B,CAAC,CAA+C;IACxF,OAAO,GAAG,GAAG,4BAA4B,CAAC,CAAC,cAAc,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,CAAoD;IAC5F,OAAO,GAAG,GAAG,wBAAwB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AAC/F,CAAC;AAkBD,MAAM,UAAU,wBAAwB,CAAC,IAA4B;IACnE,4EAA4E;IAC5E,8EAA8E;IAC9E,4CAA4C;IAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC9C,IAAI,KAAK,GAA0B,IAAI,CAAA;IAEvC,SAAS,QAAQ;QACf,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAQ;YACjC,cAAc,EAAE,CAAA;YAChB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACrB,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;YACvE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;gBAChC,SAAQ;YACV,CAAC;YACD,QAAQ,EAAE,CAAA;YACV,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG;gBAAE,SAAQ;YACnD,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;YACnF,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACpC,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,YAAY,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAChF,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IACvE,CAAC;IAED,OAAO;QACL,QAAQ;QACR,KAAK;YACH,IAAI,KAAK;gBAAE,OAAM;YACjB,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBACvB,IAAI,CAAC;oBACH,QAAQ,EAAE,CAAA;gBACZ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACxG,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YACnB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;gBAAE,KAAK,CAAC,KAAK,EAAE,CAAA;YACpD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,gCAAgC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QACtE,CAAC;QACD,IAAI;YACF,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,CAAC,KAAK,CAAC,CAAA;gBACpB,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Task 609 — deny-basis sentinel for a dontAsk spawn whose resolved allowlist
|
|
2
|
+
* is otherwise empty. Follows the `mcp__<server>__<tool>` grammar; server
|
|
3
|
+
* `none` is never registered in any brand's .mcp.json, so the token matches no
|
|
4
|
+
* real tool and grants nothing. It is absent from CC_NATIVE_TOOLS, so an
|
|
5
|
+
* allowlist anchored on it stays native-excluding. Its only job is to make
|
|
6
|
+
* `--allowed-tools` present and non-empty so dontAsk fails closed. Defined
|
|
7
|
+
* here rather than in pty-spawner.ts, where it began, so both spawn paths
|
|
8
|
+
* share one definition. */
|
|
9
|
+
export declare const DONTASK_DENY_BASIS = "mcp__none__deny-basis";
|
|
10
|
+
/** The single tool a public rc-spawn may call: the reply tool of whichever
|
|
11
|
+
* channel server this spawn registered. Derived rather than hardcoded to
|
|
12
|
+
* `whatsapp-channel` because /rc-spawn also serves role:'public' Telegram, and
|
|
13
|
+
* a multi-target session registers one unified server named `channel`; naming
|
|
14
|
+
* the WhatsApp tool on those spawns would allowlist a tool that is not
|
|
15
|
+
* registered and leave the visitor unable to reply at all. */
|
|
16
|
+
export declare function publicReplyToolFor(channelServerName: string | null): string;
|
|
17
|
+
/** The exact argv fragment appended to a role:'public' rc-spawn. Three flags,
|
|
18
|
+
* no more: one allowlist entry, `--strict-mcp-config` so only the per-spawn
|
|
19
|
+
* channel server registers and none of the plugin servers do, and
|
|
20
|
+
* `--permission-mode dontAsk`, which overrides the brand defaultMode and
|
|
21
|
+
* auto-denies every unlisted tool including Bash, Write, Edit and Read. */
|
|
22
|
+
export declare function buildRcPublicLockdownArgv(channelServerName: string | null): {
|
|
23
|
+
argv: string[];
|
|
24
|
+
allowedTools: string[];
|
|
25
|
+
};
|
|
26
|
+
/** The realised-surface line, emitted at spawn time on EVERY rc-spawn. Shares
|
|
27
|
+
* the `tool-allowlist` tag with pty-spawner.ts so one grep covers both spawn
|
|
28
|
+
* paths. Its absence on /rc-spawn is why the incident session was invisible to
|
|
29
|
+
* every tool-surface audit. */
|
|
30
|
+
export declare function formatToolAllowlistLine(p: {
|
|
31
|
+
role: string;
|
|
32
|
+
count: number;
|
|
33
|
+
strictMcp: boolean;
|
|
34
|
+
mode: string;
|
|
35
|
+
}): string;
|
|
36
|
+
//# sourceMappingURL=rc-public-lockdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rc-public-lockdown.d.ts","sourceRoot":"","sources":["../src/rc-public-lockdown.ts"],"names":[],"mappings":"AAYA;;;;;;;4BAO4B;AAC5B,eAAO,MAAM,kBAAkB,0BAA0B,CAAA;AAEzD;;;;;+DAK+D;AAC/D,wBAAgB,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE3E;AAED;;;;4EAI4E;AAC5E,wBAAgB,yBAAyB,CACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAC/B;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAM5C;AAED;;;gCAGgC;AAChC,wBAAgB,uBAAuB,CAAC,CAAC,EAAE;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,MAAM,CAET"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Task 2260 — the public lockdown for POST /rc-spawn. `/rc-spawn` read `role`
|
|
2
|
+
// and wrote it to the classification sidecar but constrained nothing: it pushed
|
|
3
|
+
// `--allowed-tools` zero times, passed no `--strict-mcp-config` and no
|
|
4
|
+
// `--permission-mode`, so a role:'public' WhatsApp visitor resolved the brand
|
|
5
|
+
// `permissions.defaultMode` (bypassPermissions) with all 23 plugin MCP servers
|
|
6
|
+
// registered. The lockdown that existed was on the other path (pty-spawner.ts,
|
|
7
|
+
// serving /public-spawn), which WhatsApp never takes: server/index.ts calls
|
|
8
|
+
// managerRcSpawn for every non-passive inbound, admin and public alike.
|
|
9
|
+
//
|
|
10
|
+
// Pure (no fs, no node-pty) so it unit-tests in isolation and so pty-spawner.ts
|
|
11
|
+
// can import the shared deny-basis token without a cycle.
|
|
12
|
+
/** Task 609 — deny-basis sentinel for a dontAsk spawn whose resolved allowlist
|
|
13
|
+
* is otherwise empty. Follows the `mcp__<server>__<tool>` grammar; server
|
|
14
|
+
* `none` is never registered in any brand's .mcp.json, so the token matches no
|
|
15
|
+
* real tool and grants nothing. It is absent from CC_NATIVE_TOOLS, so an
|
|
16
|
+
* allowlist anchored on it stays native-excluding. Its only job is to make
|
|
17
|
+
* `--allowed-tools` present and non-empty so dontAsk fails closed. Defined
|
|
18
|
+
* here rather than in pty-spawner.ts, where it began, so both spawn paths
|
|
19
|
+
* share one definition. */
|
|
20
|
+
export const DONTASK_DENY_BASIS = 'mcp__none__deny-basis';
|
|
21
|
+
/** The single tool a public rc-spawn may call: the reply tool of whichever
|
|
22
|
+
* channel server this spawn registered. Derived rather than hardcoded to
|
|
23
|
+
* `whatsapp-channel` because /rc-spawn also serves role:'public' Telegram, and
|
|
24
|
+
* a multi-target session registers one unified server named `channel`; naming
|
|
25
|
+
* the WhatsApp tool on those spawns would allowlist a tool that is not
|
|
26
|
+
* registered and leave the visitor unable to reply at all. */
|
|
27
|
+
export function publicReplyToolFor(channelServerName) {
|
|
28
|
+
return channelServerName ? `mcp__${channelServerName}__reply` : DONTASK_DENY_BASIS;
|
|
29
|
+
}
|
|
30
|
+
/** The exact argv fragment appended to a role:'public' rc-spawn. Three flags,
|
|
31
|
+
* no more: one allowlist entry, `--strict-mcp-config` so only the per-spawn
|
|
32
|
+
* channel server registers and none of the plugin servers do, and
|
|
33
|
+
* `--permission-mode dontAsk`, which overrides the brand defaultMode and
|
|
34
|
+
* auto-denies every unlisted tool including Bash, Write, Edit and Read. */
|
|
35
|
+
export function buildRcPublicLockdownArgv(channelServerName) {
|
|
36
|
+
const tool = publicReplyToolFor(channelServerName);
|
|
37
|
+
return {
|
|
38
|
+
argv: ['--allowed-tools', tool, '--strict-mcp-config', '--permission-mode', 'dontAsk'],
|
|
39
|
+
allowedTools: [tool],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/** The realised-surface line, emitted at spawn time on EVERY rc-spawn. Shares
|
|
43
|
+
* the `tool-allowlist` tag with pty-spawner.ts so one grep covers both spawn
|
|
44
|
+
* paths. Its absence on /rc-spawn is why the incident session was invisible to
|
|
45
|
+
* every tool-surface audit. */
|
|
46
|
+
export function formatToolAllowlistLine(p) {
|
|
47
|
+
return `tool-allowlist role=${p.role} count=${p.count} strictMcp=${p.strictMcp ? 'y' : 'n'} mode=${p.mode}`;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=rc-public-lockdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rc-public-lockdown.js","sourceRoot":"","sources":["../src/rc-public-lockdown.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gFAAgF;AAChF,uEAAuE;AACvE,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,wEAAwE;AACxE,EAAE;AACF,gFAAgF;AAChF,0DAA0D;AAE1D;;;;;;;4BAO4B;AAC5B,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAA;AAEzD;;;;;+DAK+D;AAC/D,MAAM,UAAU,kBAAkB,CAAC,iBAAgC;IACjE,OAAO,iBAAiB,CAAC,CAAC,CAAC,QAAQ,iBAAiB,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAA;AACpF,CAAC;AAED;;;;4EAI4E;AAC5E,MAAM,UAAU,yBAAyB,CACvC,iBAAgC;IAEhC,MAAM,IAAI,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;IAClD,OAAO;QACL,IAAI,EAAE,CAAC,iBAAiB,EAAE,IAAI,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,SAAS,CAAC;QACtF,YAAY,EAAE,CAAC,IAAI,CAAC;KACrB,CAAA;AACH,CAAC;AAED;;;gCAGgC;AAChC,MAAM,UAAU,uBAAuB,CAAC,CAKvC;IACC,OAAO,uBAAuB,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;AAC7G,CAAC"}
|
|
@@ -28,6 +28,7 @@ var WhatsAppAccountSchema = z.object({
|
|
|
28
28
|
}).strict().optional().describe("React to incoming messages with an emoji to acknowledge receipt before the agent responds."),
|
|
29
29
|
debounceMs: z.number().int().nonnegative().optional().default(2e3).describe("Wait this many milliseconds after the last message before processing, to batch rapid multi-message input into a single agent turn. Default 2000ms catches most multi-message bursts. 0 means process each message immediately."),
|
|
30
30
|
publicAgent: z.string().optional().describe("Slug of the public agent that handles WhatsApp inbound from non-admin phones for this account. Overrides the top-level publicAgent when set."),
|
|
31
|
+
publicAgentEnabled: z.boolean().optional().describe("When true, WhatsApp inbound from non-admin phones for this account is answered by the resolved public agent. When false (the default), a public inbound notifies the account managers and spawns nothing \u2014 the visitor receives no reply. Overrides the top-level publicAgentEnabled when set."),
|
|
31
32
|
afterHoursMessage: z.string().optional().describe("Auto-reply text sent to public senders when the business is closed (outside opening hours). If not set, messages received outside business hours are silently skipped with no reply."),
|
|
32
33
|
dispatchInbound: z.boolean().optional().describe("When false, this account's WhatsApp socket only observes: inbound is stored and readable but never dispatched to an agent. Default true. Set with set-dispatch-inbound.")
|
|
33
34
|
}).strict().superRefine((value, ctx) => {
|
|
@@ -75,6 +76,7 @@ var WhatsAppConfigSchema = z.object({
|
|
|
75
76
|
textChunkLimit: z.number().int().positive().optional().default(4e3).describe("Maximum characters per outbound message. Longer replies are split into multiple messages."),
|
|
76
77
|
debounceMs: z.number().int().nonnegative().optional().default(2e3).describe("Wait this many milliseconds after the last message before processing, to batch rapid multi-message input into a single agent turn. Default 2000ms catches most multi-message bursts. 0 means process each message immediately."),
|
|
77
78
|
publicAgent: z.string().optional().describe("Slug of the public agent that handles WhatsApp inbound from non-admin phones. Per-account overrides take precedence."),
|
|
79
|
+
publicAgentEnabled: z.boolean().optional().describe("Default for whether WhatsApp inbound from non-admin phones is answered by the resolved public agent. False by default. Per-account overrides take precedence."),
|
|
78
80
|
afterHoursMessage: z.string().optional().describe("Default auto-reply text sent to public senders when the business is closed (outside opening hours). Per-account overrides take precedence. If not set, messages received outside business hours are silently skipped.")
|
|
79
81
|
}).strict().superRefine((value, ctx) => {
|
|
80
82
|
if (value.dmPolicy !== "open") return;
|
|
@@ -4098,7 +4098,13 @@ var CLIENT_SCREENCAST_OPS = [
|
|
|
4098
4098
|
"send-failed",
|
|
4099
4099
|
"frame",
|
|
4100
4100
|
"input",
|
|
4101
|
-
"teardown"
|
|
4101
|
+
"teardown",
|
|
4102
|
+
// Task 2264 — the chrome's own ops. They belong on this side of the allowlist
|
|
4103
|
+
// because each is an action the browser observes itself taking, not a decision
|
|
4104
|
+
// the server made; admitting them cannot let a client forge a security line.
|
|
4105
|
+
"navigate",
|
|
4106
|
+
"history",
|
|
4107
|
+
"chrome-mounted"
|
|
4102
4108
|
];
|
|
4103
4109
|
function isClientScreencastOp(v) {
|
|
4104
4110
|
return typeof v === "string" && CLIENT_SCREENCAST_OPS.includes(v);
|
|
@@ -4219,7 +4225,16 @@ var EVENT_DETAIL_KEYS = [
|
|
|
4219
4225
|
"stopSent",
|
|
4220
4226
|
"ackMs",
|
|
4221
4227
|
"err",
|
|
4222
|
-
"method"
|
|
4228
|
+
"method",
|
|
4229
|
+
// Task 2264 — `host` is the navigate target's HOST ONLY. A full URL is the
|
|
4230
|
+
// operator's private browsing and server.log is not the place for it, which is
|
|
4231
|
+
// why the client sends the host rather than the log line truncating one.
|
|
4232
|
+
// `surface` and `chrome` carry the mount marker that detects a stale bundle.
|
|
4233
|
+
"host",
|
|
4234
|
+
"dir",
|
|
4235
|
+
"outcome",
|
|
4236
|
+
"surface",
|
|
4237
|
+
"chrome"
|
|
4223
4238
|
];
|
|
4224
4239
|
var DETAIL_MAX_LEN = 128;
|
|
4225
4240
|
function parseScreencastEvent(body) {
|
|
@@ -4282,6 +4297,55 @@ function parseOriginHost(origin) {
|
|
|
4282
4297
|
return null;
|
|
4283
4298
|
}
|
|
4284
4299
|
}
|
|
4300
|
+
function tabsLog(op, fields = {}) {
|
|
4301
|
+
const rendered = renderFields(fields);
|
|
4302
|
+
console.error(`[admin/browser/tabs] op=${sanitizeLogValue(op)}${rendered ? " " + rendered : ""}`);
|
|
4303
|
+
}
|
|
4304
|
+
async function createPageTarget(deps) {
|
|
4305
|
+
if (deps.platform !== "linux") {
|
|
4306
|
+
return { ok: false, status: 501, error: "The device browser is available on the Linux display stack only." };
|
|
4307
|
+
}
|
|
4308
|
+
let res;
|
|
4309
|
+
try {
|
|
4310
|
+
res = await deps.fetchImpl(`http://127.0.0.1:${deps.cdpPort}/json/new`, {
|
|
4311
|
+
method: "PUT",
|
|
4312
|
+
signal: AbortSignal.timeout(5e3)
|
|
4313
|
+
});
|
|
4314
|
+
} catch {
|
|
4315
|
+
return { ok: false, status: 502, error: "Chromium is not reachable on this device." };
|
|
4316
|
+
}
|
|
4317
|
+
if (!res.ok) return { ok: false, status: 502, error: `CDP /json/new returned ${res.status}` };
|
|
4318
|
+
let parsed;
|
|
4319
|
+
try {
|
|
4320
|
+
parsed = await res.json();
|
|
4321
|
+
} catch {
|
|
4322
|
+
return { ok: false, status: 502, error: "CDP /json/new response was not JSON." };
|
|
4323
|
+
}
|
|
4324
|
+
const id = typeof parsed.id === "string" ? parsed.id : "";
|
|
4325
|
+
if (!TARGET_ID_RE.test(id)) {
|
|
4326
|
+
return { ok: false, status: 502, error: "CDP /json/new returned no usable target id." };
|
|
4327
|
+
}
|
|
4328
|
+
return { ok: true, id };
|
|
4329
|
+
}
|
|
4330
|
+
async function closePageTarget(deps, targetId) {
|
|
4331
|
+
if (deps.platform !== "linux") {
|
|
4332
|
+
return { ok: false, status: 501, error: "The device browser is available on the Linux display stack only." };
|
|
4333
|
+
}
|
|
4334
|
+
if (!TARGET_ID_RE.test(targetId)) {
|
|
4335
|
+
return { ok: false, status: 400, error: "Not a target id." };
|
|
4336
|
+
}
|
|
4337
|
+
let res;
|
|
4338
|
+
try {
|
|
4339
|
+
res = await deps.fetchImpl(`http://127.0.0.1:${deps.cdpPort}/json/close/${targetId}`, {
|
|
4340
|
+
method: "PUT",
|
|
4341
|
+
signal: AbortSignal.timeout(5e3)
|
|
4342
|
+
});
|
|
4343
|
+
} catch {
|
|
4344
|
+
return { ok: false, status: 502, error: "Chromium is not reachable on this device." };
|
|
4345
|
+
}
|
|
4346
|
+
if (!res.ok) return { ok: false, status: 502, error: `CDP /json/close returned ${res.status}` };
|
|
4347
|
+
return { ok: true };
|
|
4348
|
+
}
|
|
4285
4349
|
|
|
4286
4350
|
export {
|
|
4287
4351
|
HTTPException,
|
|
@@ -4352,5 +4416,8 @@ export {
|
|
|
4352
4416
|
fetchPageTargets,
|
|
4353
4417
|
parseScreencastEvent,
|
|
4354
4418
|
screencastLog,
|
|
4355
|
-
cdpWsCensusLog
|
|
4419
|
+
cdpWsCensusLog,
|
|
4420
|
+
tabsLog,
|
|
4421
|
+
createPageTarget,
|
|
4422
|
+
closePageTarget
|
|
4356
4423
|
};
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Activity — Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/activity-
|
|
8
|
+
<script type="module" crossorigin src="/assets/activity-BH65sm9Q.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-CltuBf4Z.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/triangle-alert-
|
|
13
|
-
<link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-UMg53kKF.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/AdminShell-7l3ubYFZ.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/triangle-alert-CjsLPsBD.js">
|
|
13
|
+
<link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-D8jXV7R5.css">
|
|
14
14
|
<link rel="stylesheet" href="/brand-defaults.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Agents — Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/agents-
|
|
8
|
+
<script type="module" crossorigin src="/assets/agents-CjhOWwl5.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-CltuBf4Z.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/useSubAccountSwitcher-UMg53kKF.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/AdminShell-7l3ubYFZ.js">
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/useSubAccountSwitcher-D8jXV7R5.css">
|
|
13
13
|
<link rel="stylesheet" href="/brand-defaults.css">
|
|
14
14
|
</head>
|
|
15
15
|
<body>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./chunk-CltuBf4Z.js";import{B as t,H as n,K as r,W as i,X as a,_ as o}from"./useSubAccountSwitcher-UMg53kKF.js";import{k as s}from"./useVoiceRecorder-tzfqfXni.js";import{D as c,O as l,k as u,m as d}from"./AdminShell-7l3ubYFZ.js";var f=e(a(),1);function p(e=`admin`){let[t,n]=(0,f.useState)(`loading`),[i,a]=(0,f.useState)(``),[o,c]=(0,f.useState)(``),[l,d]=(0,f.useState)(``),[p,m]=(0,f.useState)(!1),[h,g]=(0,f.useState)(!1),[_,v]=(0,f.useState)(!1),[y,b]=(0,f.useState)(!1),[x,S]=(0,f.useState)(!1),[C,w]=(0,f.useState)(null),[T,E]=(0,f.useState)(null),[D,O]=(0,f.useState)(void 0),[k,A]=(0,f.useState)(null),[j,M]=(0,f.useState)(void 0),[N,P]=(0,f.useState)(null),[F,I]=(0,f.useState)(null),[L,R]=(0,f.useState)(void 0),z=(0,f.useRef)(void 0),[B,V]=(0,f.useState)(!1),[H,U]=(0,f.useState)(!0);(0,f.useEffect)(()=>{typeof window>`u`||fetch(`/api/remote-auth/status`).then(e=>e.ok?e.json():null).then(e=>{e?.configured&&V(!0)}).catch(()=>{})},[]);let W=(0,f.useRef)(null),G=(0,f.useRef)(null);(0,f.useEffect)(()=>{async function e(){let e=null;try{e=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!e)return!1;try{let t=await fetch(`/api/admin/session?session_key=${encodeURIComponent(e)}`);if(t.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return!1}if(!t.ok)return!1;let r=await t.json();w(r.session_key),I(r.sessionId??null),O(r.businessName),A(r.role??null),M(r.userName===void 0?null:r.userName),P(r.avatar??null);let i=s(r.thinkingView);return z.current=i,R(i),n(`chat`),!0}catch(e){return console.error(`[admin] session restore failed:`,e),!1}}async function t(r=2){try{let i=await fetch(`/api/health`);if(!i.ok){if(r>0)return await new Promise(e=>setTimeout(e,1500)),t(r-1);console.error(`[admin] health check returned ${i.status} after retries`),n(`set-pin`);return}let a=await i.json();if(!a.pin_configured){n(`set-pin`);return}U(!!a.claude_authenticated);let o=!1;try{o=new URLSearchParams(window.location.search).get(`connect`)===`claude`}catch{}if(o){try{let e=new URL(window.location.href);e.searchParams.delete(`connect`),window.history.replaceState(null,``,e.pathname+e.search+e.hash)}catch{}if(!a.claude_authenticated){n(`connect-claude`);return}}if(await e())return;n(`enter-pin`)}catch(e){if(r>0)return await new Promise(e=>setTimeout(e,1500)),t(r-1);console.error(`[admin] health check failed:`,e),n(`set-pin`)}}t()},[]),(0,f.useEffect)(()=>{t===`chat`&&C&&fetch(`/api/admin/claude-info?session_key=${encodeURIComponent(C)}`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&E(e)}).catch(()=>{})},[t,C]);let K=(0,f.useRef)(null);(0,f.useEffect)(()=>{if(t!==`chat`)return;let e=setInterval(async()=>{try{let e=await fetch(`/api/health`);if(e.ok){let t=await e.json();U(t.auth_status!==`dead`&&t.auth_status!==`missing`)}}catch{}if(C)try{let e=await fetch(`/api/admin/session?session_key=${encodeURIComponent(C)}`);if(e.status!==401)return;let t=(await e.clone().json().catch(()=>null))?.code??`unknown-401`;if(t===`remote-auth-required`){r(`heartbeat`,`/api/admin/session`);return}console.warn(`[admin-auth] outcome=heartbeat-detected-expiry code=${t}`),K.current?.()}catch{}},300*1e3);return()=>clearInterval(e)},[t,C]),(0,f.useEffect)(()=>{t===`connect-claude`&&fetch(`/api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.claude_authenticated&&(U(!0),n(`enter-pin`))}).catch(()=>{})},[t]);async function q(e,t){g(!0);try{let i=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e,...t?{accountId:t}:{}})});if(!i.ok){let e=await i.json().catch(()=>({}));if(i.status===401&&e?.code===`remote-auth-required`){r(`enter-pin`,`/api/admin/session`);return}d(e.error||`Invalid PIN`);return}let o=await i.json();w(o.session_key),I(o.sessionId??null),O(o.businessName),A(o.role??null),M(o.userName===void 0?null:o.userName),P(o.avatar??null);let c=s(o.thinkingView);z.current=c,R(c);try{sessionStorage.setItem(`maxy-admin-session-key`,o.session_key)}catch{}a(``),n(`chat`)}catch(e){console.error(`[admin] connection error:`,e),d(`Could not connect.`)}finally{g(!1)}}let J=(0,f.useCallback)(async e=>{if(e.preventDefault(),h)return;d(``);let t=o.trim();if(!t){d(`Please enter your name.`);return}if(i.length<4){d(`PIN must be at least 4 characters.`);return}let s=i;g(!0);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:s,name:t})});if(!e.ok){let t=await e.json().catch(()=>({}));if(e.status===401&&t?.code===`remote-auth-required`){r(`set-pin`,`/api/onboarding/set-pin`);return}if(e.status===409){try{let e=await fetch(`/api/health`);if(e.ok){let r=await e.json();r.pin_configured&&r.claude_authenticated?n(`enter-pin`):r.pin_configured?n(`connect-claude`):d(t.error||`Failed to set PIN.`)}else n(`enter-pin`)}catch{n(`enter-pin`)}return}d(t.error||`Failed to set PIN.`);return}let i=await fetch(`/api/health`);if((i.ok?await i.json():null)?.claude_authenticated){await q(s);return}a(``),n(`connect-claude`)}catch(e){console.error(`[admin] connection error:`,e),d(`Could not connect.`)}finally{g(!1)}},[i,h,o]),Y=(0,f.useCallback)(async e=>{e.preventDefault(),d(``),await q(i)},[i]),X=(0,f.useCallback)(async()=>{S(!0);try{if(!await u())return console.warn(`[admin-ui] claude-disconnect not verified — credentials may persist; staying put`),!1;U(!1),w(null),A(null),M(void 0),P(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return n(`connect-claude`),!0}finally{S(!1)}},[]),Z=(0,f.useCallback)(()=>{w(null),A(null),M(void 0),P(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}a(``),d(``),n(`enter-pin`)},[]);return(0,f.useEffect)(()=>{K.current=Z},[Z]),{appState:t,setAppState:n,pin:i,setPin:a,operatorName:o,setOperatorName:c,pinError:l,setPinError:d,showPin:p,setShowPin:m,pinLoading:h,authPolling:_,setAuthPolling:v,authLoading:y,setAuthLoading:b,disconnecting:x,cacheKey:C,setCacheKey:w,claudeInfo:T,setClaudeInfo:E,businessName:D,role:k,userName:j,userAvatar:N,sessionId:F,setSessionId:I,expandAll:L,setExpandAll:R,expandAllDefaultRef:z,remoteAuthEnabled:B,claudeConnected:H,pinInputRef:W,setPinFormRef:G,handleSetPin:J,handleLogin:Y,handleDisconnect:X,handleLogout:Z}}var m=i();function h({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,f.useRef)([]);function s(e,r){r.key===`Backspace`?(r.preventDefault(),t[e]?n(t.slice(0,e)+t.slice(e+1)):e>0&&(n(t.slice(0,e-1)+t.slice(e)),o.current[e-1]?.focus())):r.key===`ArrowLeft`&&e>0?o.current[e-1]?.focus():r.key===`ArrowRight`&&e<5?o.current[e+1]?.focus():r.key===`Enter`&&(r.preventDefault(),r.currentTarget.form?.requestSubmit())}function c(e,i){let a=i.nativeEvent.data;if(!a||!/^\d$/.test(a))return;let s=t.split(``);for(s[e]=a;s.length<e;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);n(c),c.length===6?r?.(c):e<5&&o.current[e+1]?.focus()}function l(e){e.preventDefault();let t=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);t&&(n(t),t.length===6?r?.(t):o.current[t.length]?.focus())}return(0,m.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,m.jsx)(`input`,{ref:t=>{o.current[r]=t,r===0&&e&&(e.current=t)},type:`text`,inputMode:`numeric`,className:`pin-box${t[r]?` pin-box-filled`:``}`,value:t[r]?i?t[r]:`•`:``,onKeyDown:e=>s(r,e),onInput:e=>c(r,e),onPaste:l,onFocus:e=>e.target.select(),autoFocus:a&&r===0,autoComplete:`off`,maxLength:1,"aria-label":`PIN digit ${r+1}`},r))})}function g(e){let{pin:r,setPin:i,showPin:a,setShowPin:o,pinLoading:s,pinError:u,pinInputRef:d,setPinFormRef:f,onSubmit:p,operatorName:g,setOperatorName:_}=e;return(0,m.jsx)(`div`,{className:`connect-page`,children:(0,m.jsxs)(`div`,{className:`connect-content`,children:[(0,m.jsx)(`img`,{src:n,alt:t.productName,className:`connect-logo connect-logo--maxy`}),!t.logoContainsName&&(0,m.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,t.productName]}),(0,m.jsxs)(`p`,{className:`connect-subtitle`,children:[`Tell `,t.productName,` who you are, then choose a PIN.`]}),(0,m.jsxs)(`form`,{ref:f,onSubmit:p,className:`connect-pin-form`,children:[(0,m.jsxs)(`div`,{className:`pin-input-row`,children:[(0,m.jsx)(`input`,{type:`text`,className:`connect-name-input`,placeholder:`Your full name`,value:g,onChange:e=>_(e.target.value),autoComplete:`name`,autoFocus:!0,required:!0,"aria-label":`Your full name`}),(0,m.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,m.jsxs)(`div`,{className:`pin-input-row`,children:[(0,m.jsx)(h,{inputRef:d,value:r,onChange:i,onComplete:()=>{},showPin:a}),(0,m.jsx)(c,{variant:`send`,type:`submit`,disabled:!r||!g.trim(),loading:s,"aria-label":`Set PIN`,children:(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,m.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,m.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,m.jsx)(l,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})]}),u&&(0,m.jsx)(`p`,{className:`admin-pin-error`,children:u})]})})}function _(e){let{pin:r,setPin:i,showPin:a,setShowPin:o,pinLoading:s,pinError:u,pinInputRef:d,onSubmit:f,remoteAuthEnabled:p,onSignOutRemote:g}=e;return(0,m.jsxs)(`div`,{className:`connect-page`,children:[p&&g&&(0,m.jsx)(`button`,{type:`button`,className:`connect-signout`,onClick:g,children:`Sign out`}),(0,m.jsxs)(`div`,{className:`connect-content`,children:[(0,m.jsx)(`img`,{src:n,alt:t.productName,className:`connect-logo connect-logo--maxy`}),!t.logoContainsName&&(0,m.jsx)(`h1`,{className:`connect-title`,children:t.productName}),(0,m.jsxs)(`form`,{onSubmit:f,className:`connect-pin-form`,children:[(0,m.jsxs)(`div`,{className:`pin-input-row`,children:[(0,m.jsx)(h,{inputRef:d,value:r,onChange:i,onComplete:()=>{},showPin:a,autoFocus:!0}),(0,m.jsx)(c,{variant:`send`,type:`submit`,disabled:!r,loading:s,children:(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,m.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,m.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,m.jsx)(`div`,{className:`pin-options`,children:(0,m.jsx)(l,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})})]}),u&&(0,m.jsx)(`p`,{className:`admin-pin-error`,children:u})]})]})}function v(e){let{authPolling:r,setAuthPolling:i,authLoading:a,setAuthLoading:o,pinError:s,setPinError:l,setAppState:u}=e,[p,h]=(0,f.useState)(!1),[g,_]=(0,f.useState)(!1),[v,y]=(0,f.useState)(``),[b,x]=(0,f.useState)(``),[S,C]=(0,f.useState)(``),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(null),[O,k]=(0,f.useState)(!1);(0,f.useEffect)(()=>{try{D(sessionStorage.getItem(`maxy-admin-session-key`))}catch{}k(!0)},[]);async function A(){C(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`paste-code`,code:b})})).json();e.accepted?(C(`Code submitted. Finishing sign-in…`),x(``)):C(e.error||`Could not submit code.`)}catch(e){console.error(`[admin] paste-code error:`,e),C(`Could not submit code.`)}}async function j(){_(!0),l(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`launch-browser`})})).json();e.launched?h(!0):e.error&&l(e.error)}catch(e){console.error(`[admin] browser launch error:`,e),l(`Could not launch browser.`)}_(!1)}async function M(){o(!0),l(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`})).json();if(e.started){i(!0),h(!0),o(!1),y(e.transport||``);for(let e=0;e<120;e++){await new Promise(e=>setTimeout(e,2e3));let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`wait`})})).json();if(typeof e.authTargetId==`string`&&T(e.authTargetId),e.authenticated){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),u(`enter-pin`);return}}l(`Timed out waiting for sign-in. Try again.`),i(!1)}else e.error&&l(e.error)}catch(e){console.error(`[admin] auth flow error:`,e),l(`Could not start auth flow.`)}o(!1)}async function N(){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),i(!1),l(``)}return r||p?(0,m.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,m.jsxs)(`header`,{className:`chat-header`,style:{paddingBottom:`12px`,flexShrink:0,position:`relative`,maxWidth:`680px`,width:`100%`,margin:`0 auto`,padding:`24px 20px 12px`},children:[r?(0,m.jsx)(`button`,{onClick:N,style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Cancel`,children:`✕`}):(0,m.jsx)(`button`,{onClick:()=>h(!1),style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Close browser`,children:`✕`}),(0,m.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,m.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,m.jsx)(`p`,{className:`chat-intro`,children:r?`Sign in and authorize in the browser below.`:`Open your email or prepare your accounts, then sign in.`}),!r&&(0,m.jsx)(`div`,{style:{marginTop:`12px`},children:(0,m.jsx)(c,{variant:`primary`,onClick:M,disabled:a,children:a?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})}),r&&v===`native`&&(0,m.jsxs)(`div`,{style:{marginTop:`14px`,maxWidth:`420px`,margin:`14px auto 0`,display:`flex`,flexDirection:`column`,gap:`8px`},children:[(0,m.jsx)(`label`,{style:{fontSize:`12px`,color:`#999`,lineHeight:1.4},children:`If the browser didn't finish sign-in, paste the code or full redirect URL from Claude's page:`}),(0,m.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,m.jsx)(`input`,{type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:`Paste code or redirect URL`,style:{flex:1,padding:`8px 10px`,fontSize:`13px`,border:`1px solid #ccc`,borderRadius:`6px`}}),(0,m.jsx)(c,{variant:`primary`,onClick:A,disabled:!b.trim(),children:`Submit`})]}),S&&(0,m.jsx)(`p`,{style:{fontSize:`12px`,color:`#999`,margin:0},children:S})]})]}),(0,m.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:O&&(0,m.jsx)(d,{preferTargetId:w,cacheKey:E,chrome:!1})}),s&&(0,m.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:s})]}):(0,m.jsx)(`div`,{className:`connect-page`,children:(0,m.jsxs)(`div`,{className:`connect-content`,children:[(0,m.jsxs)(`div`,{className:`connect-logos`,children:[(0,m.jsx)(`div`,{className:`connect-logo-wrap`,children:(0,m.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`})}),(0,m.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,m.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,m.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,m.jsx)(`img`,{src:n,alt:t.productName,className:`connect-logo connect-logo--maxy`}),!t.logoContainsName&&(0,m.jsx)(`span`,{className:`connect-logo-label`,children:t.productName})]})]}),(0,m.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,t.productName]}),(0,m.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,m.jsx)(c,{variant:`primary`,onClick:M,disabled:a,children:a?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,m.jsx)(`p`,{style:{marginTop:`6px`,fontSize:`11px`,color:`#999`,maxWidth:`300px`,textAlign:`center`,lineHeight:`1.4`},children:`First time? You may need to sign into your email and Anthropic account in the browser before connecting.`}),(0,m.jsx)(`button`,{onClick:j,disabled:g,style:{marginTop:`12px`,background:`none`,border:`none`,color:`var(--color-primary, #666)`,fontSize:`13px`,cursor:`pointer`,textDecoration:`underline`,textUnderlineOffset:`3px`},children:g?`Launching…`:`Open browser first`}),s&&(0,m.jsx)(`p`,{className:`admin-pin-error`,children:s})]})})}function y({auth:e}){return e.appState===`loading`?(0,m.jsx)(o,{surface:`gate`}):e.appState===`set-pin`?(0,m.jsx)(g,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,setPinFormRef:e.setPinFormRef,onSubmit:e.handleSetPin,operatorName:e.operatorName,setOperatorName:e.setOperatorName}):e.appState===`connect-claude`?(0,m.jsx)(v,{authPolling:e.authPolling,setAuthPolling:e.setAuthPolling,authLoading:e.authLoading,setAuthLoading:e.setAuthLoading,pinError:e.pinError,setPinError:e.setPinError,setAppState:e.setAppState}):e.appState===`enter-pin`?(0,m.jsx)(_,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,onSubmit:e.handleLogin,remoteAuthEnabled:e.remoteAuthEnabled,onSignOutRemote:()=>{window.location.href=`/__remote-auth/logout`}}):null}export{p as n,y as t};
|
|
Binary file
|
|
Binary file
|