@rubytech/create-maxy-code 0.1.357 → 0.1.358
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/dist/__tests__/claude-ptys-slice.test.js +36 -1
- package/dist/port-resolution.js +18 -1
- package/package.json +1 -1
- package/payload/platform/package-lock.json +237 -0
- package/payload/platform/plugins/admin/mcp/dist/__tests__/capabilities-here.test.js +79 -1
- package/payload/platform/plugins/admin/mcp/dist/__tests__/capabilities-here.test.js.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js +17 -3
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.d.ts +16 -0
- package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.d.ts.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.js +52 -0
- package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.js.map +1 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +59 -1
- package/payload/platform/plugins/cloudflare/PLUGIN.md +7 -1
- package/payload/platform/plugins/cloudflare/bin/__tests__/cf-token.test.sh +195 -0
- package/payload/platform/plugins/cloudflare/bin/cf-token.sh +157 -0
- package/payload/platform/plugins/cloudflare/references/api.md +2 -0
- package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +14 -0
- package/payload/platform/plugins/cloudflare/skills/site-deploy/SKILL.md +10 -1
- package/payload/platform/plugins/docs/PLUGIN.md +2 -0
- package/payload/platform/plugins/docs/references/claudeai-connectors.md +45 -0
- package/payload/platform/plugins/docs/references/cloudflare.md +6 -0
- package/payload/platform/plugins/docs/references/troubleshooting.md +2 -0
- package/payload/platform/plugins/email/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/email/PLUGIN.md +7 -3
- package/payload/platform/plugins/email/mcp/dist/__tests__/body-extract.test.d.ts +2 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/body-extract.test.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/body-extract.test.js +99 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/body-extract.test.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/compose-draft-id.test.d.ts +2 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/compose-draft-id.test.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/compose-draft-id.test.js +32 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/compose-draft-id.test.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-edit.test.js +64 -6
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft-edit.test.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft.test.js +12 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/email-draft.test.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js +94 -9
- package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/__tests__/mail-options.test.js +4 -0
- package/payload/platform/plugins/email/mcp/dist/__tests__/mail-options.test.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/index.js +39 -2
- package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/compose.d.ts +5 -0
- package/payload/platform/plugins/email/mcp/dist/lib/compose.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/compose.js +8 -1
- package/payload/platform/plugins/email/mcp/dist/lib/compose.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +68 -33
- package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/imap.js +253 -97
- package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts +6 -0
- package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/smtp.js +4 -0
- package/payload/platform/plugins/email/mcp/dist/lib/smtp.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-draft-edit.d.ts +8 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-draft-edit.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-draft-edit.js +10 -6
- package/payload/platform/plugins/email/mcp/dist/tools/email-draft-edit.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-draft.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-draft.js +4 -2
- package/payload/platform/plugins/email/mcp/dist/tools/email-draft.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.d.ts +15 -0
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.js +29 -0
- package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.js.map +1 -0
- package/payload/platform/plugins/email/mcp/package.json +2 -0
- package/payload/platform/plugins/email/references/email-reference.md +21 -1
- package/payload/platform/scripts/rss-sampler.sh +21 -0
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +1 -0
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/connector-auth.d.ts +31 -0
- package/payload/platform/services/claude-session-manager/dist/connector-auth.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/connector-auth.js +49 -0
- package/payload/platform/services/claude-session-manager/dist/connector-auth.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +24 -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 +214 -17
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts +2 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +24 -4
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/instructions.d.ts +1 -0
- package/payload/platform/services/webchat-channel/dist/instructions.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/instructions.js +28 -0
- package/payload/platform/services/webchat-channel/dist/instructions.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.js +75 -5
- package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
- package/payload/platform/templates/specialists/agents/personal-assistant.md +1 -1
- package/payload/server/public/assets/{AdminLoginScreens-BW1UgfoI.js → AdminLoginScreens-Ro_RUTDh.js} +1 -1
- package/payload/server/public/assets/{AdminShell-CDQDkT1R.js → AdminShell-CmqhpAPU.js} +1 -1
- package/payload/server/public/assets/{Checkbox-O1qvMk_u.js → Checkbox-dYLaMEdh.js} +1 -1
- package/payload/server/public/assets/OperatorConversations-2zJh7qnO.css +1 -0
- package/payload/server/public/assets/OperatorConversations-Cei12sSK.js +9 -0
- package/payload/server/public/assets/{admin-BkYc54bi.js → admin-BldZQrJF.js} +1 -1
- package/payload/server/public/assets/{arc-DpkSQNto.js → arc-Crkz45LN.js} +1 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-Dma4Bgha.js +1 -0
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-Bw7Yq8O9.js → architectureDiagram-Q4EWVU46-C9JThHgP.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-BBtJQFSz.js → blockDiagram-DXYQGD6D-DpsV_HXT.js} +1 -1
- package/payload/server/public/assets/{browser-CySvj140.js → browser-DrXZ4wpy.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-JAMgxzOr.js → c4Diagram-AHTNJAMY-CTm_6aKi.js} +1 -1
- package/payload/server/public/assets/{calendar-DgP7lal2.js → calendar-CQ4TCbO7.js} +1 -1
- package/payload/server/public/assets/channel-B_-5bau1.js +1 -0
- package/payload/server/public/assets/chat-D7w6_NE1.js +1 -0
- package/payload/server/public/assets/{chunk-2KRD3SAO-eDugsc2L.js → chunk-2KRD3SAO-1KSJW1q6.js} +1 -1
- package/payload/server/public/assets/{chunk-336JU56O-BXfECwdC.js → chunk-336JU56O-C3t08Ip-.js} +2 -2
- package/payload/server/public/assets/chunk-426QAEUC-Dirxdwjh.js +1 -0
- package/payload/server/public/assets/{chunk-4BX2VUAB-CByVeKCY.js → chunk-4BX2VUAB-kl1ze33n.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-CpY0DcUB.js → chunk-4TB4RGXK-DxpoDoHg.js} +1 -1
- package/payload/server/public/assets/{chunk-55IACEB6-C3YxgyIb.js → chunk-55IACEB6-WM9VJzha.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-Bc0d7j8A.js → chunk-5FUZZQ4R-CLH63ZH3.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-CTUGMRIa.js → chunk-5PVQY5BW-DCTb8IAT.js} +1 -1
- package/payload/server/public/assets/{chunk-67CJDMHE-CbdPnpLd.js → chunk-67CJDMHE-BSYzyaoH.js} +1 -1
- package/payload/server/public/assets/{chunk-7N4EOEYR-Cjl2kevz.js → chunk-7N4EOEYR-CarJ7O2P.js} +1 -1
- package/payload/server/public/assets/{chunk-AA7GKIK3-BgozIh5p.js → chunk-AA7GKIK3-DTNLyBpH.js} +1 -1
- package/payload/server/public/assets/{chunk-BSJP7CBP-6Ufq45NW.js → chunk-BSJP7CBP-BFmHflHY.js} +1 -1
- package/payload/server/public/assets/{chunk-CIAEETIT-BhhYuMnA.js → chunk-CIAEETIT-BpjG0IzU.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-BfaJ3yDD.js → chunk-EDXVE4YY-2fSowhlW.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-C7-hIGVC.js → chunk-ENJZ2VHE-ClcranGV.js} +1 -1
- package/payload/server/public/assets/{chunk-FMBD7UC4-BQvvyocF.js → chunk-FMBD7UC4-DLq4BItQ.js} +1 -1
- package/payload/server/public/assets/{chunk-FOC6F5B3-C6rBDOxH.js → chunk-FOC6F5B3-B9QI3Guz.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-BjOJvkVa.js → chunk-ICPOFSXX-BAr-Mv1Z.js} +2 -2
- package/payload/server/public/assets/{chunk-K5T4RW27-kKowRHhn.js → chunk-K5T4RW27-8PvAHasY.js} +1 -1
- package/payload/server/public/assets/{chunk-KGLVRYIC-bAEV_5eH.js → chunk-KGLVRYIC--aGaDRH5.js} +1 -1
- package/payload/server/public/assets/{chunk-LIHQZDEY-BLvsQAfg.js → chunk-LIHQZDEY-BrWj7mw2.js} +1 -1
- package/payload/server/public/assets/{chunk-ORNJ4GCN-BzYZfPZ7.js → chunk-ORNJ4GCN-kYQmkMTi.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-CL7WRw42.js → chunk-OYMX7WX6-CIsryCWH.js} +1 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-Duipo1kI.js +1 -0
- package/payload/server/public/assets/{chunk-U2HBQHQK-BdcVGjau.js → chunk-U2HBQHQK-68X653e3.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-C0CL_Jin.js → chunk-X2U36JSP-v3v9soX3.js} +1 -1
- package/payload/server/public/assets/{chunk-XPW4576I-CsV7CUxH.js → chunk-XPW4576I-CW5DPpop.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-Cj0_fLkR.js → chunk-YZCP3GAM-B1VP7Rl2.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-DLuquyoY.js → chunk-ZZ45TVLE-DiJrujNY.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-B3kX5SuB.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D761c7Lr.js +1 -0
- package/payload/server/public/assets/clone-BrhFv6Tb.js +1 -0
- package/payload/server/public/assets/{cose-bilkent-S5V4N54A-BU3EOLXX.js → cose-bilkent-S5V4N54A-BscXxLMc.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-CoCAYhFc.js → dagre-KV5264BT-DVgGlTQ1.js} +1 -1
- package/payload/server/public/assets/{dagre-BRq8C9NU.js → dagre-MBv6WlCS.js} +1 -1
- package/payload/server/public/assets/data-Dc5XNWgF.js +1 -0
- package/payload/server/public/assets/{diagram-5BDNPKRD-DBy5GNaQ.js → diagram-5BDNPKRD-BmhCaO0a.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-l93MsBLv.js → diagram-G4DWMVQ6-ChU9L8vz.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-BIfXkVlL.js → diagram-MMDJMWI5-Oy409Zc_.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-BuTJLBny.js → diagram-TYMM5635-Cn1YByqk.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-BwPxWDbP.js → erDiagram-SMLLAGMA-e17yfLvr.js} +1 -1
- package/payload/server/public/assets/{flatten-DtM0XAMt.js → flatten-Cl1Bc3dR.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-BhPtHXMR.js → flowDiagram-DWJPFMVM-Dqt7sCVZ.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-BlXjprdD.js → ganttDiagram-T4ZO3ILL-B4IhwS2r.js} +1 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-BCQAqtLy.js +1 -0
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-BW36BDiu.js → gitGraphDiagram-UUTBAWPF-BDw-PKcI.js} +1 -1
- package/payload/server/public/assets/{graph-uFhGyOZR.js → graph-l_3_j3I9.js} +3 -3
- package/payload/server/public/assets/{graph-labels-BNnhRQqM.js → graph-labels-CJj55nHk.js} +1 -1
- package/payload/server/public/assets/{graphlib-Bjg3Tq-k.js → graphlib-DPIYk_sg.js} +1 -1
- package/payload/server/public/assets/info-OMHHGYJF-qU7hK50T.js +1 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-KGdcJeTs.js +2 -0
- package/payload/server/public/assets/{isEmpty-D__iH1WQ.js → isEmpty-D1pGOD1J.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CmB-bA_O.js → ishikawaDiagram-UXIWVN3A-BRIHsB3G.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-Bt1fJKmc.js → journeyDiagram-VCZTEJTY-aKNgmoHd.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-DVbksz_J.js → kanban-definition-6JOO6SKY-cwBwT-nm.js} +1 -1
- package/payload/server/public/assets/{line-BX2Ugx3B.js → line-DVtVRzUA.js} +1 -1
- package/payload/server/public/assets/{linear-Bdc-QJWI.js → linear-DtoOFPO2.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-qv1e-J5x.js → mermaid-parser.core-G7YD_zO3.js} +2 -2
- package/payload/server/public/assets/{mermaid.core-C_d9YQX_.js → mermaid.core-DpFyndHm.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-DwKGvF14.js → mindmap-definition-QFDTVHPH-CYXK_Pvz.js} +1 -1
- package/payload/server/public/assets/{operator-DeCk_qYw.js → operator-CKmOgXNa.js} +1 -1
- package/payload/server/public/assets/{ordinal-BRQ5CzZY.js → ordinal-CBZeH4Yp.js} +1 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-DiU2yS9m.js +1 -0
- package/payload/server/public/assets/page-hG7xTrcO.js +32 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-zHUKKlVv.js +1 -0
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-dUvQC_4S.js → pieDiagram-DEJITSTG-DFo4N6WH.js} +1 -1
- package/payload/server/public/assets/{public-DgltXhnD.js → public-smrhkkxD.js} +1 -1
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-CebX_oPa.js → quadrantDiagram-34T5L4WZ-BlH5iIhl.js} +1 -1
- package/payload/server/public/assets/radar-PYXPWWZC-BUnVoaPg.js +1 -0
- package/payload/server/public/assets/{reduce-CkcXOmmJ.js → reduce-PuPlFPRX.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-h2euIqGj.js → requirementDiagram-MS252O5E-D5WLty8A.js} +1 -1
- package/payload/server/public/assets/rotate-ccw-Dd8aAvU7.js +1 -0
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-DCii3fkF.js → sankeyDiagram-XADWPNL6-vB85IxHG.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-CQSGYmlq.js → sequenceDiagram-FGHM5R23-Cxraa0Ee.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CVtU0iXH.js → stateDiagram-FHFEXIEX-BBPssYBx.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BWmmUwDt.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-ChvsBltI.js → timeline-definition-GMOUNBTQ-Bgk6PT62.js} +1 -1
- package/payload/server/public/assets/treeView-SZITEDCU-C3Y-Q52h.js +1 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-Dk0qZpAg.js +1 -0
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-e-EZiiba.js → vennDiagram-DHZGUBPP-B-APTs3L.js} +1 -1
- package/payload/server/public/assets/wardley-RL74JXVD-BAWI02OA.js +1 -0
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-4JaRn1s5.js → wardleyDiagram-NUSXRM2D-CkXJSs_i.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-kxwmCNuM.js → xychartDiagram-5P7HB3ND-BkyshPMV.js} +1 -1
- package/payload/server/public/browser.html +4 -4
- package/payload/server/public/calendar.html +4 -4
- package/payload/server/public/chat.html +7 -6
- package/payload/server/public/data.html +4 -4
- package/payload/server/public/graph.html +7 -6
- package/payload/server/public/index.html +6 -6
- package/payload/server/public/operator.html +9 -8
- package/payload/server/public/public.html +7 -6
- package/payload/server/server.js +244 -24
- package/payload/server/public/assets/OperatorConversations-CVH-FoJo.css +0 -1
- package/payload/server/public/assets/OperatorConversations-jqaPCHwB.js +0 -9
- package/payload/server/public/assets/architecture-YZFGNWBL-Csj53u5T.js +0 -1
- package/payload/server/public/assets/channel-BUQUAUts.js +0 -1
- package/payload/server/public/assets/chat-gls5aV50.js +0 -1
- package/payload/server/public/assets/chunk-426QAEUC-CdknReB2.js +0 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-8tHoEDE9.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BEGZ3DLg.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DsLxnm5U.js +0 -1
- package/payload/server/public/assets/clone-uiXbH_kh.js +0 -1
- package/payload/server/public/assets/data-CbI8-CX3.js +0 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-D_2KrZoP.js +0 -1
- package/payload/server/public/assets/info-OMHHGYJF-BP2TNwQ4.js +0 -1
- package/payload/server/public/assets/infoDiagram-42DDH7IO-D1kDtBOY.js +0 -2
- package/payload/server/public/assets/packet-4T2RLAQJ-BDg8fde8.js +0 -1
- package/payload/server/public/assets/page-jGwq-DpW.js +0 -32
- package/payload/server/public/assets/pie-ZZUOXDRM-CXDyYMkZ.js +0 -1
- package/payload/server/public/assets/radar-PYXPWWZC-xen_zv8F.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BywcXjtb.js +0 -1
- package/payload/server/public/assets/treeView-SZITEDCU-2FBf_1It.js +0 -1
- package/payload/server/public/assets/treemap-W4RFUUIX-BDdb30P-.js +0 -1
- package/payload/server/public/assets/wardley-RL74JXVD-BLq5MxjR.js +0 -1
- /package/payload/server/public/assets/{_baseFor-SRtUHe7G.js → _baseFor-brRjpUOX.js} +0 -0
- /package/payload/server/public/assets/{array-BpsnM-Py.js → array-BGFCBI0e.js} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-D4Rl1H5h.js → cytoscape.esm-TvRJ2tGX.js} +0 -0
- /package/payload/server/public/assets/{defaultLocale-C7sQPl-O.js → defaultLocale-CRZydyG6.js} +0 -0
- /package/payload/server/public/assets/{dist-CtUNt3w8.js → dist-B0CkUodR.js} +0 -0
- /package/payload/server/public/assets/{init-BydxaDEV.js → init-B8gtcn7T.js} +0 -0
- /package/payload/server/public/assets/{katex-B0fVeDx4.js → katex-RxgSu_dy.js} +0 -0
- /package/payload/server/public/assets/{path-jlWYQ2i9.js → path-DZF-JdEe.js} +0 -0
- /package/payload/server/public/assets/{preload-helper-uTix4PVD.js → preload-helper-CQ36nxok.js} +0 -0
- /package/payload/server/public/assets/{rough.esm-c4PR5shF.js → rough.esm-6CnTHTkH.js} +0 -0
- /package/payload/server/public/assets/{src-48kCpScq.js → src-CR_MU8uy.js} +0 -0
|
@@ -6,7 +6,13 @@
|
|
|
6
6
|
// slice un-enabled after install).
|
|
7
7
|
import test from "node:test";
|
|
8
8
|
import assert from "node:assert/strict";
|
|
9
|
-
import { buildClaudePtysSliceUnitFile } from "../port-resolution.js";
|
|
9
|
+
import { buildClaudePtysSliceUnitFile, resolveClaudePtysSliceMemoryHigh } from "../port-resolution.js";
|
|
10
|
+
const GiB = 1024 ** 3;
|
|
11
|
+
const memHighMiB = (unit) => {
|
|
12
|
+
const m = unit.match(/^MemoryHigh=(\d+)M$/m);
|
|
13
|
+
assert.ok(m, "unit must carry a MemoryHigh=<n>M line");
|
|
14
|
+
return Number(m[1]);
|
|
15
|
+
};
|
|
10
16
|
test("buildClaudePtysSliceUnitFile emits a valid systemd slice unit", () => {
|
|
11
17
|
const unit = buildClaudePtysSliceUnitFile();
|
|
12
18
|
assert.match(unit, /^\[Unit\]$/m);
|
|
@@ -23,3 +29,32 @@ test("buildClaudePtysSliceUnitFile output has no per-brand or per-install templa
|
|
|
23
29
|
assert.doesNotMatch(unit, /\$\{/);
|
|
24
30
|
assert.doesNotMatch(unit, /__[A-Z_]+__/);
|
|
25
31
|
});
|
|
32
|
+
// Task 1176 — the slice carries a soft MemoryHigh sized to the host so the
|
|
33
|
+
// session cohort absorbs reclaim pressure (throttle/swap within the slice)
|
|
34
|
+
// before the box exhausts RAM and the kernel kills the brand server. The
|
|
35
|
+
// value is total RAM minus a ~2.7GB fixed floor (neo4j + server +
|
|
36
|
+
// edge/manager/chrome), clamped to a 2GiB minimum. MemoryHigh (soft), never
|
|
37
|
+
// MemoryMax (hard — would just relocate the OOM kill inside the slice).
|
|
38
|
+
test("resolveClaudePtysSliceMemoryHigh scales with host RAM and clamps tiny hosts", () => {
|
|
39
|
+
const low = resolveClaudePtysSliceMemoryHigh(8 * GiB);
|
|
40
|
+
const high = resolveClaudePtysSliceMemoryHigh(16 * GiB);
|
|
41
|
+
assert.match(low, /^\d+M$/);
|
|
42
|
+
assert.match(high, /^\d+M$/);
|
|
43
|
+
// 8GB host: total minus 2.7GB floor lands in the 4-6 GiB band.
|
|
44
|
+
const lowMiB = Number(low.replace("M", ""));
|
|
45
|
+
assert.ok(lowMiB > 4000 && lowMiB < 6000, `8GB MemoryHigh out of band: ${low}`);
|
|
46
|
+
// A 16GB host gets a strictly larger ceiling than an 8GB host.
|
|
47
|
+
assert.ok(Number(high.replace("M", "")) > lowMiB);
|
|
48
|
+
// Tiny host clamps to the 2GiB floor rather than emitting a near-zero or
|
|
49
|
+
// negative MemoryHigh.
|
|
50
|
+
assert.equal(resolveClaudePtysSliceMemoryHigh(1 * GiB), "2048M");
|
|
51
|
+
});
|
|
52
|
+
test("buildClaudePtysSliceUnitFile carries a MemoryHigh line under [Slice] that scales with RAM", () => {
|
|
53
|
+
const low = buildClaudePtysSliceUnitFile(8 * GiB);
|
|
54
|
+
const high = buildClaudePtysSliceUnitFile(16 * GiB);
|
|
55
|
+
// MemoryHigh appears, and after the [Slice] header.
|
|
56
|
+
assert.match(low, /^MemoryHigh=\d+M$/m);
|
|
57
|
+
assert.ok(low.indexOf("[Slice]") < low.indexOf("MemoryHigh="), "MemoryHigh must be inside [Slice]");
|
|
58
|
+
// The 16GB unit's ceiling exceeds the 8GB unit's.
|
|
59
|
+
assert.ok(memHighMiB(high) > memHighMiB(low));
|
|
60
|
+
});
|
package/dist/port-resolution.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
+
import os from "node:os";
|
|
3
4
|
const PORT_RE = /^PORT=(\d+)/m;
|
|
4
5
|
const ENV_PORT_RE = /^Environment=PORT=(\d+)/m;
|
|
5
6
|
const ENV_EDGE_PORT_RE = /^Environment=EDGE_PORT=(\d+)/m;
|
|
@@ -174,13 +175,29 @@ WantedBy=default.target
|
|
|
174
175
|
// `~/.config/systemd/user/claude-ptys.slice` and runs
|
|
175
176
|
// `systemctl --user daemon-reload` so the new unit is picked up.
|
|
176
177
|
// ---------------------------------------------------------------------------
|
|
177
|
-
|
|
178
|
+
// Task 1176 — the slice carries a soft MemoryHigh so the session cohort
|
|
179
|
+
// absorbs reclaim pressure (throttle/swap within the slice) before the box
|
|
180
|
+
// exhausts RAM and the kernel kills the brand server. The value is total
|
|
181
|
+
// RAM minus a fixed ~2.7GB floor (neo4j + brand server + edge/manager/chrome
|
|
182
|
+
// must stay resident), clamped to a 2GiB minimum so a small host still emits
|
|
183
|
+
// a valid, non-trivial ceiling. MemoryHigh is a SOFT reclaim threshold —
|
|
184
|
+
// never MemoryMax, which would hard-kill within the slice and just relocate
|
|
185
|
+
// the failure.
|
|
186
|
+
const SLICE_FLOOR_BYTES = Math.round(2.7 * 1024 ** 3);
|
|
187
|
+
const SLICE_MIN_HIGH_BYTES = 2 * 1024 ** 3;
|
|
188
|
+
export function resolveClaudePtysSliceMemoryHigh(totalMemBytes) {
|
|
189
|
+
const high = Math.max(totalMemBytes - SLICE_FLOOR_BYTES, SLICE_MIN_HIGH_BYTES);
|
|
190
|
+
return `${Math.round(high / 1024 ** 2)}M`;
|
|
191
|
+
}
|
|
192
|
+
export function buildClaudePtysSliceUnitFile(totalMemBytes = os.totalmem()) {
|
|
193
|
+
const memoryHigh = resolveClaudePtysSliceMemoryHigh(totalMemBytes);
|
|
178
194
|
return `[Unit]
|
|
179
195
|
Description=Claude Code PTY sessions (Task 250)
|
|
180
196
|
Documentation=https://github.com/rubytech/maxy-code/blob/main/.tasks/archive/250-claude-ptys-survive-manager-restart-via-systemd-scope-per-pty.md
|
|
181
197
|
Before=shutdown.target
|
|
182
198
|
|
|
183
199
|
[Slice]
|
|
200
|
+
MemoryHigh=${memoryHigh}
|
|
184
201
|
|
|
185
202
|
[Install]
|
|
186
203
|
WantedBy=default.target
|
package/package.json
CHANGED
|
@@ -780,6 +780,22 @@
|
|
|
780
780
|
"dev": true,
|
|
781
781
|
"license": "MIT"
|
|
782
782
|
},
|
|
783
|
+
"node_modules/@selderee/plugin-htmlparser2": {
|
|
784
|
+
"version": "0.12.0",
|
|
785
|
+
"resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.12.0.tgz",
|
|
786
|
+
"integrity": "sha512-oELmoyA6ML9jDRMV3kgcMQFKxUfBU0yFVn6yTctVaLT5ygXnxH52I3TZEgV9EhXJC68/uFvE5Daj1/25c0Xa/A==",
|
|
787
|
+
"license": "MIT",
|
|
788
|
+
"dependencies": {
|
|
789
|
+
"domelementtype": "~2.3.0",
|
|
790
|
+
"domhandler": "~5.0.3"
|
|
791
|
+
},
|
|
792
|
+
"funding": {
|
|
793
|
+
"url": "https://github.com/sponsors/KillyMXI"
|
|
794
|
+
},
|
|
795
|
+
"peerDependencies": {
|
|
796
|
+
"selderee": "~0.12.0"
|
|
797
|
+
}
|
|
798
|
+
},
|
|
783
799
|
"node_modules/@standard-schema/spec": {
|
|
784
800
|
"version": "1.1.0",
|
|
785
801
|
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
|
|
@@ -830,6 +846,30 @@
|
|
|
830
846
|
"dev": true,
|
|
831
847
|
"license": "MIT"
|
|
832
848
|
},
|
|
849
|
+
"node_modules/@types/mailparser": {
|
|
850
|
+
"version": "3.4.6",
|
|
851
|
+
"resolved": "https://registry.npmjs.org/@types/mailparser/-/mailparser-3.4.6.tgz",
|
|
852
|
+
"integrity": "sha512-wVV3cnIKzxTffaPH8iRnddX1zahbYB1ZEoAxyhoBo3TBCBuK6nZ8M8JYO/RhsCuuBVOw/DEN/t/ENbruwlxn6Q==",
|
|
853
|
+
"dev": true,
|
|
854
|
+
"license": "MIT",
|
|
855
|
+
"dependencies": {
|
|
856
|
+
"@types/node": "*",
|
|
857
|
+
"iconv-lite": "^0.6.3"
|
|
858
|
+
}
|
|
859
|
+
},
|
|
860
|
+
"node_modules/@types/mailparser/node_modules/iconv-lite": {
|
|
861
|
+
"version": "0.6.3",
|
|
862
|
+
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
|
863
|
+
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
|
|
864
|
+
"dev": true,
|
|
865
|
+
"license": "MIT",
|
|
866
|
+
"dependencies": {
|
|
867
|
+
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
|
868
|
+
},
|
|
869
|
+
"engines": {
|
|
870
|
+
"node": ">=0.10.0"
|
|
871
|
+
}
|
|
872
|
+
},
|
|
833
873
|
"node_modules/@types/node": {
|
|
834
874
|
"version": "22.19.19",
|
|
835
875
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz",
|
|
@@ -1431,6 +1471,15 @@
|
|
|
1431
1471
|
"node": ">=0.10.0"
|
|
1432
1472
|
}
|
|
1433
1473
|
},
|
|
1474
|
+
"node_modules/deepmerge-ts": {
|
|
1475
|
+
"version": "7.1.5",
|
|
1476
|
+
"resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz",
|
|
1477
|
+
"integrity": "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==",
|
|
1478
|
+
"license": "BSD-3-Clause",
|
|
1479
|
+
"engines": {
|
|
1480
|
+
"node": ">=16.0.0"
|
|
1481
|
+
}
|
|
1482
|
+
},
|
|
1434
1483
|
"node_modules/depd": {
|
|
1435
1484
|
"version": "2.0.0",
|
|
1436
1485
|
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
|
|
@@ -1957,6 +2006,56 @@
|
|
|
1957
2006
|
"node": ">=16.9.0"
|
|
1958
2007
|
}
|
|
1959
2008
|
},
|
|
2009
|
+
"node_modules/html-to-text": {
|
|
2010
|
+
"version": "10.0.0",
|
|
2011
|
+
"resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-10.0.0.tgz",
|
|
2012
|
+
"integrity": "sha512-2OH59Gtprdczel+7Rxgpz9hGVJREaf8Lt1H4kZwWHpEn70VQKRuMNGsb2eDbwaTzrYzb0hheiOG1P7Dim0B4dQ==",
|
|
2013
|
+
"license": "MIT",
|
|
2014
|
+
"dependencies": {
|
|
2015
|
+
"@selderee/plugin-htmlparser2": "~0.12.0",
|
|
2016
|
+
"deepmerge-ts": "^7.1.5",
|
|
2017
|
+
"dom-serializer": "^2.0.0",
|
|
2018
|
+
"htmlparser2": "^10.1.0",
|
|
2019
|
+
"selderee": "~0.12.0"
|
|
2020
|
+
},
|
|
2021
|
+
"engines": {
|
|
2022
|
+
"node": ">=20.19.0"
|
|
2023
|
+
},
|
|
2024
|
+
"funding": {
|
|
2025
|
+
"url": "https://github.com/sponsors/KillyMXI"
|
|
2026
|
+
}
|
|
2027
|
+
},
|
|
2028
|
+
"node_modules/htmlparser2": {
|
|
2029
|
+
"version": "10.1.0",
|
|
2030
|
+
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz",
|
|
2031
|
+
"integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==",
|
|
2032
|
+
"funding": [
|
|
2033
|
+
"https://github.com/fb55/htmlparser2?sponsor=1",
|
|
2034
|
+
{
|
|
2035
|
+
"type": "github",
|
|
2036
|
+
"url": "https://github.com/sponsors/fb55"
|
|
2037
|
+
}
|
|
2038
|
+
],
|
|
2039
|
+
"license": "MIT",
|
|
2040
|
+
"dependencies": {
|
|
2041
|
+
"domelementtype": "^2.3.0",
|
|
2042
|
+
"domhandler": "^5.0.3",
|
|
2043
|
+
"domutils": "^3.2.2",
|
|
2044
|
+
"entities": "^7.0.1"
|
|
2045
|
+
}
|
|
2046
|
+
},
|
|
2047
|
+
"node_modules/htmlparser2/node_modules/entities": {
|
|
2048
|
+
"version": "7.0.1",
|
|
2049
|
+
"resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
|
|
2050
|
+
"integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
|
|
2051
|
+
"license": "BSD-2-Clause",
|
|
2052
|
+
"engines": {
|
|
2053
|
+
"node": ">=0.12"
|
|
2054
|
+
},
|
|
2055
|
+
"funding": {
|
|
2056
|
+
"url": "https://github.com/fb55/entities?sponsor=1"
|
|
2057
|
+
}
|
|
2058
|
+
},
|
|
1960
2059
|
"node_modules/http-errors": {
|
|
1961
2060
|
"version": "2.0.1",
|
|
1962
2061
|
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
|
|
@@ -2105,6 +2204,15 @@
|
|
|
2105
2204
|
"integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==",
|
|
2106
2205
|
"license": "BSD-2-Clause"
|
|
2107
2206
|
},
|
|
2207
|
+
"node_modules/leac": {
|
|
2208
|
+
"version": "0.7.0",
|
|
2209
|
+
"resolved": "https://registry.npmjs.org/leac/-/leac-0.7.0.tgz",
|
|
2210
|
+
"integrity": "sha512-qMrZeyEekgdRQ9o6a4NAB2EQZrv827GJdn1vnapwSJ90hWRB4TzUSunvacPkxQ2TnNqHNI1/zSt0hlo0crG8Jw==",
|
|
2211
|
+
"license": "MIT",
|
|
2212
|
+
"funding": {
|
|
2213
|
+
"url": "https://github.com/sponsors/KillyMXI"
|
|
2214
|
+
}
|
|
2215
|
+
},
|
|
2108
2216
|
"node_modules/libbase64": {
|
|
2109
2217
|
"version": "1.3.0",
|
|
2110
2218
|
"resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.3.0.tgz",
|
|
@@ -2390,6 +2498,25 @@
|
|
|
2390
2498
|
"url": "https://opencollective.com/parcel"
|
|
2391
2499
|
}
|
|
2392
2500
|
},
|
|
2501
|
+
"node_modules/linkify-it": {
|
|
2502
|
+
"version": "5.0.1",
|
|
2503
|
+
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.1.tgz",
|
|
2504
|
+
"integrity": "sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==",
|
|
2505
|
+
"funding": [
|
|
2506
|
+
{
|
|
2507
|
+
"type": "github",
|
|
2508
|
+
"url": "https://github.com/sponsors/puzrin"
|
|
2509
|
+
},
|
|
2510
|
+
{
|
|
2511
|
+
"type": "github",
|
|
2512
|
+
"url": "https://github.com/sponsors/markdown-it"
|
|
2513
|
+
}
|
|
2514
|
+
],
|
|
2515
|
+
"license": "MIT",
|
|
2516
|
+
"dependencies": {
|
|
2517
|
+
"uc.micro": "^2.0.0"
|
|
2518
|
+
}
|
|
2519
|
+
},
|
|
2393
2520
|
"node_modules/locate-path": {
|
|
2394
2521
|
"version": "5.0.0",
|
|
2395
2522
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
|
@@ -2421,6 +2548,56 @@
|
|
|
2421
2548
|
"@jridgewell/sourcemap-codec": "^1.5.5"
|
|
2422
2549
|
}
|
|
2423
2550
|
},
|
|
2551
|
+
"node_modules/mailparser": {
|
|
2552
|
+
"version": "3.9.12",
|
|
2553
|
+
"resolved": "https://registry.npmjs.org/mailparser/-/mailparser-3.9.12.tgz",
|
|
2554
|
+
"integrity": "sha512-kbT4xtkKEddonhDTjjWWVFJlI5axm0S9QuIAHs1ue3IEw+fNd9o4ytPKaG7p1LOE2aKifrWLjx/omOGLHz/9RQ==",
|
|
2555
|
+
"license": "MIT",
|
|
2556
|
+
"dependencies": {
|
|
2557
|
+
"@zone-eu/mailsplit": "5.4.13",
|
|
2558
|
+
"encoding-japanese": "2.2.0",
|
|
2559
|
+
"he": "1.2.0",
|
|
2560
|
+
"html-to-text": "10.0.0",
|
|
2561
|
+
"iconv-lite": "0.7.2",
|
|
2562
|
+
"libmime": "5.4.0",
|
|
2563
|
+
"linkify-it": "5.0.1",
|
|
2564
|
+
"nodemailer": "9.0.1",
|
|
2565
|
+
"punycode.js": "2.3.1",
|
|
2566
|
+
"tlds": "1.261.0"
|
|
2567
|
+
}
|
|
2568
|
+
},
|
|
2569
|
+
"node_modules/mailparser/node_modules/@zone-eu/mailsplit": {
|
|
2570
|
+
"version": "5.4.13",
|
|
2571
|
+
"resolved": "https://registry.npmjs.org/@zone-eu/mailsplit/-/mailsplit-5.4.13.tgz",
|
|
2572
|
+
"integrity": "sha512-j40NeNlSAivqnKEjzZYsGP/bKWr2zwuyb8XOYsC3i0ZlfM5UnTYTa7aCRkE8rYQvVzE1dRjVYdvZ1Epi6x+h6w==",
|
|
2573
|
+
"license": "(MIT OR EUPL-1.1+)",
|
|
2574
|
+
"dependencies": {
|
|
2575
|
+
"libbase64": "1.3.0",
|
|
2576
|
+
"libmime": "5.4.0",
|
|
2577
|
+
"libqp": "2.1.1"
|
|
2578
|
+
}
|
|
2579
|
+
},
|
|
2580
|
+
"node_modules/mailparser/node_modules/libmime": {
|
|
2581
|
+
"version": "5.4.0",
|
|
2582
|
+
"resolved": "https://registry.npmjs.org/libmime/-/libmime-5.4.0.tgz",
|
|
2583
|
+
"integrity": "sha512-MAWyU2qYtCsrZ6GClgukz2jx73NQrzA6ASo9qzThuTG+A7+H3lWQuBsjoy9lls+v6q/epAeBdEMJ3T0f4b+uRw==",
|
|
2584
|
+
"license": "MIT",
|
|
2585
|
+
"dependencies": {
|
|
2586
|
+
"encoding-japanese": "2.2.0",
|
|
2587
|
+
"iconv-lite": "0.7.2",
|
|
2588
|
+
"libbase64": "1.3.0",
|
|
2589
|
+
"libqp": "2.1.1"
|
|
2590
|
+
}
|
|
2591
|
+
},
|
|
2592
|
+
"node_modules/mailparser/node_modules/nodemailer": {
|
|
2593
|
+
"version": "9.0.1",
|
|
2594
|
+
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-9.0.1.tgz",
|
|
2595
|
+
"integrity": "sha512-Gwv8SQewT616ZM/URn0H54b8PWo/Wum7md3EW2aWy1lO27+WZCX+Xyak3J+NlmHUjDh5ME+uesJUDRbR3Ye8Bw==",
|
|
2596
|
+
"license": "MIT-0",
|
|
2597
|
+
"engines": {
|
|
2598
|
+
"node": ">=6.0.0"
|
|
2599
|
+
}
|
|
2600
|
+
},
|
|
2424
2601
|
"node_modules/math-intrinsics": {
|
|
2425
2602
|
"version": "1.1.0",
|
|
2426
2603
|
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
|
@@ -2694,6 +2871,19 @@
|
|
|
2694
2871
|
"node": ">=6"
|
|
2695
2872
|
}
|
|
2696
2873
|
},
|
|
2874
|
+
"node_modules/parseley": {
|
|
2875
|
+
"version": "0.13.1",
|
|
2876
|
+
"resolved": "https://registry.npmjs.org/parseley/-/parseley-0.13.1.tgz",
|
|
2877
|
+
"integrity": "sha512-uNBJZzmb60l6p6VWLTmevizNAGnE0xoSf1n0B4q3ntegDNzcS68NRCcBDZTcyXHxt2XhBChsCuqj4M+nChvE/A==",
|
|
2878
|
+
"license": "MIT",
|
|
2879
|
+
"dependencies": {
|
|
2880
|
+
"leac": "^0.7.0",
|
|
2881
|
+
"peberminta": "^0.10.0"
|
|
2882
|
+
},
|
|
2883
|
+
"funding": {
|
|
2884
|
+
"url": "https://github.com/sponsors/KillyMXI"
|
|
2885
|
+
}
|
|
2886
|
+
},
|
|
2697
2887
|
"node_modules/parseurl": {
|
|
2698
2888
|
"version": "1.3.3",
|
|
2699
2889
|
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
|
@@ -2738,6 +2928,15 @@
|
|
|
2738
2928
|
"dev": true,
|
|
2739
2929
|
"license": "MIT"
|
|
2740
2930
|
},
|
|
2931
|
+
"node_modules/peberminta": {
|
|
2932
|
+
"version": "0.10.0",
|
|
2933
|
+
"resolved": "https://registry.npmjs.org/peberminta/-/peberminta-0.10.0.tgz",
|
|
2934
|
+
"integrity": "sha512-80B2AsU+I4Qdb0ZAPSfe9UwvGzwkM37IKIFEvdS3D/3Ndgv2bsuJ0bfG1+iEYO+l7Gfd4EUJmuRyq7efLgRMzQ==",
|
|
2935
|
+
"license": "MIT",
|
|
2936
|
+
"funding": {
|
|
2937
|
+
"url": "https://github.com/sponsors/KillyMXI"
|
|
2938
|
+
}
|
|
2939
|
+
},
|
|
2741
2940
|
"node_modules/picocolors": {
|
|
2742
2941
|
"version": "1.1.1",
|
|
2743
2942
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
|
@@ -2900,6 +3099,15 @@
|
|
|
2900
3099
|
"node": ">= 0.10"
|
|
2901
3100
|
}
|
|
2902
3101
|
},
|
|
3102
|
+
"node_modules/punycode.js": {
|
|
3103
|
+
"version": "2.3.1",
|
|
3104
|
+
"resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
|
|
3105
|
+
"integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
|
|
3106
|
+
"license": "MIT",
|
|
3107
|
+
"engines": {
|
|
3108
|
+
"node": ">=6"
|
|
3109
|
+
}
|
|
3110
|
+
},
|
|
2903
3111
|
"node_modules/qrcode": {
|
|
2904
3112
|
"version": "1.5.4",
|
|
2905
3113
|
"resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz",
|
|
@@ -3121,6 +3329,18 @@
|
|
|
3121
3329
|
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
|
3122
3330
|
"license": "MIT"
|
|
3123
3331
|
},
|
|
3332
|
+
"node_modules/selderee": {
|
|
3333
|
+
"version": "0.12.0",
|
|
3334
|
+
"resolved": "https://registry.npmjs.org/selderee/-/selderee-0.12.0.tgz",
|
|
3335
|
+
"integrity": "sha512-b1YMh3+DHZp59DLna3qVwQ5iOla/nrI6mLBNW02XxU77M3046Df6VLkoaJyFz20VsGIG5kkp+FK0kg4K4HnUFw==",
|
|
3336
|
+
"license": "MIT",
|
|
3337
|
+
"dependencies": {
|
|
3338
|
+
"parseley": "~0.13.1"
|
|
3339
|
+
},
|
|
3340
|
+
"funding": {
|
|
3341
|
+
"url": "https://github.com/sponsors/KillyMXI"
|
|
3342
|
+
}
|
|
3343
|
+
},
|
|
3124
3344
|
"node_modules/send": {
|
|
3125
3345
|
"version": "1.2.1",
|
|
3126
3346
|
"resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
|
|
@@ -3450,6 +3670,15 @@
|
|
|
3450
3670
|
"node": ">=14.0.0"
|
|
3451
3671
|
}
|
|
3452
3672
|
},
|
|
3673
|
+
"node_modules/tlds": {
|
|
3674
|
+
"version": "1.261.0",
|
|
3675
|
+
"resolved": "https://registry.npmjs.org/tlds/-/tlds-1.261.0.tgz",
|
|
3676
|
+
"integrity": "sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==",
|
|
3677
|
+
"license": "MIT",
|
|
3678
|
+
"bin": {
|
|
3679
|
+
"tlds": "bin.js"
|
|
3680
|
+
}
|
|
3681
|
+
},
|
|
3453
3682
|
"node_modules/toidentifier": {
|
|
3454
3683
|
"version": "1.0.1",
|
|
3455
3684
|
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
|
|
@@ -3510,6 +3739,12 @@
|
|
|
3510
3739
|
"node": ">=14.17"
|
|
3511
3740
|
}
|
|
3512
3741
|
},
|
|
3742
|
+
"node_modules/uc.micro": {
|
|
3743
|
+
"version": "2.1.0",
|
|
3744
|
+
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
|
|
3745
|
+
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
|
|
3746
|
+
"license": "MIT"
|
|
3747
|
+
},
|
|
3513
3748
|
"node_modules/undici": {
|
|
3514
3749
|
"version": "6.27.0",
|
|
3515
3750
|
"resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz",
|
|
@@ -3913,10 +4148,12 @@
|
|
|
3913
4148
|
"dependencies": {
|
|
3914
4149
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
3915
4150
|
"imapflow": "^1.0.171",
|
|
4151
|
+
"mailparser": "^3.9.12",
|
|
3916
4152
|
"neo4j-driver": "^5.28.1",
|
|
3917
4153
|
"nodemailer": "^6.10.1"
|
|
3918
4154
|
},
|
|
3919
4155
|
"devDependencies": {
|
|
4156
|
+
"@types/mailparser": "^3.4.6",
|
|
3920
4157
|
"@types/node": "^22.0.0",
|
|
3921
4158
|
"@types/nodemailer": "^6.4.17",
|
|
3922
4159
|
"typescript": "^5.7.0",
|
|
@@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
|
2
2
|
import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { tmpdir } from "node:os";
|
|
4
4
|
import { join } from "node:path";
|
|
5
|
-
import { resolveCapabilitiesHere } from "../tools/capabilities-here.js";
|
|
5
|
+
import { resolveCapabilitiesHere, parseClaudeAiConnectors } from "../tools/capabilities-here.js";
|
|
6
6
|
function writeFile(path, body) {
|
|
7
7
|
mkdirSync(join(path, ".."), { recursive: true });
|
|
8
8
|
writeFileSync(path, body);
|
|
@@ -52,6 +52,42 @@ function seedTree(root, spec) {
|
|
|
52
52
|
},
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
|
+
describe("parseClaudeAiConnectors", () => {
|
|
56
|
+
it("keeps only claude.ai rows, retains the full display name, and maps status words", () => {
|
|
57
|
+
const raw = [
|
|
58
|
+
"claude.ai Google Calendar: https://calendarmcp.googleapis.com/mcp/v1 - ! Needs authentication",
|
|
59
|
+
"claude.ai Notion: https://mcp.notion.com/mcp - ✓ Connected",
|
|
60
|
+
"claude.ai Zoom for Claude: https://zoom.example/mcp - ✔ Connected",
|
|
61
|
+
"plugin:playwright:playwright: npx @playwright/mcp@latest - ✓ Connected",
|
|
62
|
+
"memory: npx -y @modelcontextprotocol/server-memory - ✓ Connected",
|
|
63
|
+
].join("\n");
|
|
64
|
+
expect(parseClaudeAiConnectors(raw)).toEqual([
|
|
65
|
+
{ name: "claude.ai Google Calendar", state: "needs-auth" },
|
|
66
|
+
{ name: "claude.ai Notion", state: "connected" },
|
|
67
|
+
{ name: "claude.ai Zoom for Claude", state: "connected" },
|
|
68
|
+
]);
|
|
69
|
+
});
|
|
70
|
+
it("maps a Failed-to-connect connector to unreachable (the word 'connect' is not 'Connected')", () => {
|
|
71
|
+
const raw = "claude.ai Cloudflare: https://cf.example/mcp - ✗ Failed to connect";
|
|
72
|
+
expect(parseClaudeAiConnectors(raw)).toEqual([
|
|
73
|
+
{ name: "claude.ai Cloudflare", state: "unreachable" },
|
|
74
|
+
]);
|
|
75
|
+
});
|
|
76
|
+
it("does not read 'Disconnected' as connected (whole-word match)", () => {
|
|
77
|
+
const raw = "claude.ai Widget: https://widget.example/mcp - ✗ Disconnected";
|
|
78
|
+
expect(parseClaudeAiConnectors(raw)).toEqual([
|
|
79
|
+
{ name: "claude.ai Widget", state: "unreachable" },
|
|
80
|
+
]);
|
|
81
|
+
});
|
|
82
|
+
it("skips a malformed row whose name is only the bare claude.ai prefix", () => {
|
|
83
|
+
const raw = "claude.ai : https://example.com/mcp - ✓ Connected";
|
|
84
|
+
expect(parseClaudeAiConnectors(raw)).toEqual([]);
|
|
85
|
+
});
|
|
86
|
+
it("returns an empty array for empty or connector-free output", () => {
|
|
87
|
+
expect(parseClaudeAiConnectors("")).toEqual([]);
|
|
88
|
+
expect(parseClaudeAiConnectors("Checking MCP server health…\n\nmemory: npx - ✓ Connected")).toEqual([]);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
55
91
|
describe("resolveCapabilitiesHere", () => {
|
|
56
92
|
let root;
|
|
57
93
|
beforeEach(() => { root = mkdtempSync(join(tmpdir(), "cap-here-")); });
|
|
@@ -162,6 +198,48 @@ describe("resolveCapabilitiesHere", () => {
|
|
|
162
198
|
{ bundle: "real-agent", name: "valuer" },
|
|
163
199
|
]);
|
|
164
200
|
});
|
|
201
|
+
it("enumerates claude.ai connectors with auth state when a provider is supplied", async () => {
|
|
202
|
+
const { input } = seedTree(root, {
|
|
203
|
+
accountId: "acct-maxy",
|
|
204
|
+
productName: "Maxy",
|
|
205
|
+
platformSpecialists: ["personal-assistant"],
|
|
206
|
+
});
|
|
207
|
+
// Real `claude mcp list` line shapes: a ✔/✓ glyph for Connected, a ! glyph
|
|
208
|
+
// for Needs authentication, non-claude.ai rows mixed in, and a Failed row.
|
|
209
|
+
const raw = [
|
|
210
|
+
"Checking MCP server health…",
|
|
211
|
+
"",
|
|
212
|
+
"claude.ai Zoom for Claude: https://zoom.example/mcp - ✔ Connected",
|
|
213
|
+
"claude.ai Dropbox: https://dropbox.example/mcp - ! Needs authentication",
|
|
214
|
+
"claude.ai Microsoft 365: https://m365.example/mcp - ✗ Failed to connect",
|
|
215
|
+
"memory: npx -y @modelcontextprotocol/server-memory - ✓ Connected",
|
|
216
|
+
"notion: https://mcp.notion.com/mcp (HTTP) - ! Needs authentication",
|
|
217
|
+
].join("\n");
|
|
218
|
+
const result = await resolveCapabilitiesHere({ ...input, listConnectorsRaw: async () => raw }, "2026-06-25T07:00:00Z");
|
|
219
|
+
expect(result.claudeAiConnectors).toEqual([
|
|
220
|
+
{ name: "claude.ai Dropbox", state: "needs-auth" },
|
|
221
|
+
{ name: "claude.ai Microsoft 365", state: "unreachable" },
|
|
222
|
+
{ name: "claude.ai Zoom for Claude", state: "connected" },
|
|
223
|
+
]);
|
|
224
|
+
});
|
|
225
|
+
it("yields no connectors and spawns nothing when no provider is supplied", async () => {
|
|
226
|
+
const { input } = seedTree(root, {
|
|
227
|
+
accountId: "acct-maxy",
|
|
228
|
+
productName: "Maxy",
|
|
229
|
+
platformSpecialists: ["personal-assistant"],
|
|
230
|
+
});
|
|
231
|
+
const result = await resolveCapabilitiesHere(input, "2026-06-25T07:00:00Z");
|
|
232
|
+
expect(result.claudeAiConnectors).toEqual([]);
|
|
233
|
+
});
|
|
234
|
+
it("degrades to an empty connector list when the provider fails", async () => {
|
|
235
|
+
const { input } = seedTree(root, {
|
|
236
|
+
accountId: "acct-maxy",
|
|
237
|
+
productName: "Maxy",
|
|
238
|
+
platformSpecialists: ["personal-assistant"],
|
|
239
|
+
});
|
|
240
|
+
const result = await resolveCapabilitiesHere({ ...input, listConnectorsRaw: async () => { throw new Error("claude not found"); } }, "2026-06-25T07:00:00Z");
|
|
241
|
+
expect(result.claudeAiConnectors).toEqual([]);
|
|
242
|
+
});
|
|
165
243
|
it("handles missing fields and missing directories gracefully", async () => {
|
|
166
244
|
const accountConfigPath = join(root, "account.json");
|
|
167
245
|
const brandConfigPath = join(root, "brand.json");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities-here.test.js","sourceRoot":"","sources":["../../src/__tests__/capabilities-here.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capabilities-here.test.js","sourceRoot":"","sources":["../../src/__tests__/capabilities-here.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { readFile, writeFile } from "node:fs/promises";
|
|
8
8
|
import { resolve, join } from "node:path";
|
|
9
|
-
import { execFileSync } from "node:child_process";
|
|
9
|
+
import { execFile, execFileSync } from "node:child_process";
|
|
10
10
|
import { appendFileSync, cpSync, existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
11
11
|
import { writeAdminEntry, removeAdminFromAccount, logUsersAudit, formatAuditRowIds } from "../../../../lib/admins-write/dist/index.js";
|
|
12
12
|
import { setAccessPassword as setAccessPasswordHash, clearAccessPassword as clearAccessPasswordHash, accessPasswordCollides } from "../../../../lib/admin-access-password/dist/index.js";
|
|
@@ -684,7 +684,7 @@ eagerTool(server, "account-manage", "Read the account configuration (tier, domai
|
|
|
684
684
|
};
|
|
685
685
|
}
|
|
686
686
|
});
|
|
687
|
-
eagerTool(server, "capabilities-here", "Returns the live install set on the current account as a single JSON object: enabledPlugins (account config), tier, adminModel, publicModel, installedPlatformSpecialists (disk), installedPremiumSpecialists (disk, gated by brand.shipsPremiumBundles), registeredAgentTypes (Claude Code agent registry under $CLAUDE_CONFIG_DIR/agents/), and the brand block. Call this whenever you are about to make a claim about what this account can do, what is enabled, or what specialists are dispatchable. Do not infer install state from the platform-architecture skill — that skill is the catalogue of what the platform can ship, not what is enabled here.", {}, async () => {
|
|
687
|
+
eagerTool(server, "capabilities-here", "Returns the live install set on the current account as a single JSON object: enabledPlugins (account config), tier, adminModel, publicModel, installedPlatformSpecialists (disk), installedPremiumSpecialists (disk, gated by brand.shipsPremiumBundles), registeredAgentTypes (Claude Code agent registry under $CLAUDE_CONFIG_DIR/agents/), claudeAiConnectors (the claude.ai account connectors loaded for this client, each with an auth state of connected, needs-auth, or unreachable), and the brand block. Call this whenever you are about to make a claim about what this account can do, what is enabled, or what specialists are dispatchable. A connector listed here exists and is usable: do not deny a connector-backed request (Zoom, Dropbox, Microsoft 365, Cloudflare, Google) just because there is no skill or plugin for it — reach the connector tool, and authenticate it if its state is needs-auth. Do not infer install state from the platform-architecture skill — that skill is the catalogue of what the platform can ship, not what is enabled here.", {}, async () => {
|
|
688
688
|
if (!ACCOUNT_ID)
|
|
689
689
|
return refuseNoAccount("capabilities-here");
|
|
690
690
|
const requestId = randomUUID();
|
|
@@ -702,9 +702,23 @@ eagerTool(server, "capabilities-here", "Returns the live install set on the curr
|
|
|
702
702
|
platformRoot: PLATFORM_ROOT,
|
|
703
703
|
premiumPluginsRoot,
|
|
704
704
|
claudeConfigDir,
|
|
705
|
+
// Task 1160 — enumerate the brand client's claude.ai connectors via
|
|
706
|
+
// `claude mcp list`. Never rejects: resolves with whatever output the CLI
|
|
707
|
+
// produced (empty on a missing binary, non-zero exit, or the 12s timeout
|
|
708
|
+
// the health check can hit), so a connector probe never fails the tool.
|
|
709
|
+
listConnectorsRaw: () => new Promise((resolveOut) => {
|
|
710
|
+
execFile("claude", ["mcp", "list"], { env: { ...process.env, CLAUDE_CONFIG_DIR: claudeConfigDir }, timeout: 12_000, encoding: "utf8" }, (_err, stdout, stderr) => resolveOut(`${stdout ?? ""}\n${stderr ?? ""}`));
|
|
711
|
+
}),
|
|
705
712
|
}, new Date().toISOString());
|
|
706
713
|
const elapsed = Date.now() - t0;
|
|
707
|
-
process.stderr.write(`[capabilities-here] op=resolve requestId=${requestId} enabledPlugins=${result.enabledPlugins.length} platformSpecialists=${result.installedPlatformSpecialists.length} premiumSpecialists=${result.installedPremiumSpecialists.length} agentTypes=${result.registeredAgentTypes.length} elapsedMs=${elapsed}\n`);
|
|
714
|
+
process.stderr.write(`[capabilities-here] op=resolve requestId=${requestId} enabledPlugins=${result.enabledPlugins.length} platformSpecialists=${result.installedPlatformSpecialists.length} premiumSpecialists=${result.installedPremiumSpecialists.length} agentTypes=${result.registeredAgentTypes.length} connectors=${result.claudeAiConnectors.length} elapsedMs=${elapsed}\n`);
|
|
715
|
+
// Task 1160 — record each claude.ai connector surfaced to the agent. This is
|
|
716
|
+
// the deterministic point where the connector check runs and feeds the
|
|
717
|
+
// capability decision, so a later false denial (a connector existed but was
|
|
718
|
+
// missed) is detectable against this log rather than silent.
|
|
719
|
+
for (const c of result.claudeAiConnectors) {
|
|
720
|
+
process.stderr.write(`[capabilities-here] op=connector-surfaced requestId=${requestId} name=${JSON.stringify(c.name)} state=${c.state}\n`);
|
|
721
|
+
}
|
|
708
722
|
const body = JSON.stringify(result, null, 2);
|
|
709
723
|
process.stderr.write(`[capabilities-here] op=return requestId=${requestId} bytesOut=${body.length}\n`);
|
|
710
724
|
return { content: [{ type: "text", text: body }] };
|