@rubytech/create-maxy-code 0.1.308 → 0.1.310
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/claude-ptys-slice.test.js +1 -1
- package/dist/__tests__/cloudflared-slice.test.js +1 -1
- package/dist/__tests__/macos-darwin-branch.test.js +4 -6
- package/package.json +1 -1
- package/payload/platform/lib/admin-access-password/__tests__/index.test.ts +28 -0
- package/payload/platform/lib/admin-access-password/dist/index.d.ts +9 -0
- package/payload/platform/lib/admin-access-password/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/admin-access-password/dist/index.js +26 -0
- package/payload/platform/lib/admin-access-password/dist/index.js.map +1 -1
- package/payload/platform/lib/admin-access-password/src/index.ts +24 -0
- package/payload/platform/lib/models/dist/index.d.ts +7 -0
- package/payload/platform/lib/models/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/models/dist/index.js +10 -0
- package/payload/platform/lib/models/dist/index.js.map +1 -1
- package/payload/platform/lib/models/src/index.ts +10 -0
- package/payload/platform/plugins/admin/mcp/dist/index.js +4 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +21 -1
- package/payload/platform/plugins/admin/skills/plugin-management/SKILL.md +1 -1
- package/payload/platform/plugins/admin/skills/specialist-management/SKILL.md +1 -1
- package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +1 -1
- package/payload/platform/plugins/docs/references/admin-ui.md +20 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +2 -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 +50 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/instructions.d.ts +1 -0
- package/payload/platform/services/webchat-channel/dist/instructions.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/instructions.js +31 -0
- package/payload/platform/services/webchat-channel/dist/instructions.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/notification.d.ts +8 -3
- package/payload/platform/services/webchat-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/notification.js +25 -9
- package/payload/platform/services/webchat-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.js +5 -3
- package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +8 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js +10 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
- package/payload/server/{chunk-FBGIHWWM.js → chunk-J6WDAWFJ.js} +20 -0
- package/payload/server/maxy-edge.js +1 -1
- package/payload/server/public/assets/AccessGate-BOqUU-za.js +1 -0
- package/payload/server/public/assets/AdminLoginScreens-WvRuaNIg.js +1 -0
- package/payload/server/public/assets/AdminShell-DHv6_SZ4.js +1 -0
- package/payload/server/public/assets/{Checkbox-8elc7oXU.js → Checkbox-DjM6aYP_.js} +1 -1
- package/payload/server/public/assets/OperatorConversations-CDY0jUMb.js +1 -0
- package/payload/server/public/assets/admin-XbVTsU2q.js +1 -0
- package/payload/server/public/assets/admin-types-D2qTXuCg.js +1 -0
- package/payload/server/public/assets/{arc-DxSm8tli.js → arc-J2g2u5Xv.js} +1 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-C6nkAxzW.js +1 -0
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-7JSAh0vL.js → architectureDiagram-Q4EWVU46-CN0BXxpE.js} +1 -1
- package/payload/server/public/assets/audio-attachment-mime-CVxjPN8V.js +30 -0
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DLoVmHKD.js → blockDiagram-DXYQGD6D-HX-8wF2p.js} +1 -1
- package/payload/server/public/assets/brand-N-Hi3IPA.css +1 -0
- package/payload/server/public/assets/{brand-Dh5UlVO2.js → brand-zL3tAdql.js} +1 -1
- package/payload/server/public/assets/browser-Ct5Kwlmk.js +1 -0
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-Nv1G0o9P.js → c4Diagram-AHTNJAMY-wIuarKF5.js} +1 -1
- package/payload/server/public/assets/channel-Q39xIXyT.js +1 -0
- package/payload/server/public/assets/chat-CEde1CLX.js +1 -0
- package/payload/server/public/assets/{chunk-2KRD3SAO-BpqPMhoA.js → chunk-2KRD3SAO-Buz7egJZ.js} +1 -1
- package/payload/server/public/assets/{chunk-336JU56O-DgXHlVU_.js → chunk-336JU56O-_JcFXJqc.js} +2 -2
- package/payload/server/public/assets/chunk-426QAEUC-CCYjp9C2.js +1 -0
- package/payload/server/public/assets/{chunk-4BX2VUAB-nwyZSZH8.js → chunk-4BX2VUAB-DUR5Dg3M.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-Tfxz9LHX.js → chunk-4TB4RGXK-BRIqQ9st.js} +1 -1
- package/payload/server/public/assets/{chunk-55IACEB6-6FMJQGXG.js → chunk-55IACEB6-CezTHWXL.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-g2FgZF3D.js → chunk-5FUZZQ4R-DHYUPzF1.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-DtLwXsPH.js → chunk-5PVQY5BW-BVn4_fI5.js} +1 -1
- package/payload/server/public/assets/{chunk-67CJDMHE-K91CP5ZU.js → chunk-67CJDMHE-BBLA8Mbi.js} +1 -1
- package/payload/server/public/assets/{chunk-7N4EOEYR-BGpCQhqK.js → chunk-7N4EOEYR-CdWfEI5c.js} +1 -1
- package/payload/server/public/assets/{chunk-AA7GKIK3-jkDbInck.js → chunk-AA7GKIK3-tS11knCR.js} +1 -1
- package/payload/server/public/assets/{chunk-BSJP7CBP-mDosdzGs.js → chunk-BSJP7CBP-GEu1OOZ6.js} +1 -1
- package/payload/server/public/assets/{chunk-CIAEETIT-DhBxewpQ.js → chunk-CIAEETIT-DKrNbbp_.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-B7c-9Emg.js → chunk-EDXVE4YY-B0InXNyr.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-Cqhhncox.js → chunk-ENJZ2VHE-CO7lkHdm.js} +1 -1
- package/payload/server/public/assets/{chunk-FMBD7UC4-BpDq6wj1.js → chunk-FMBD7UC4-CMj74lWo.js} +1 -1
- package/payload/server/public/assets/{chunk-FOC6F5B3-Ds02-ktu.js → chunk-FOC6F5B3-CLnKQoXw.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-BTX5POFr.js → chunk-ICPOFSXX-CdiEKIaz.js} +2 -2
- package/payload/server/public/assets/{chunk-K5T4RW27-Du1PXXBU.js → chunk-K5T4RW27-B6LA3fiv.js} +1 -1
- package/payload/server/public/assets/{chunk-KGLVRYIC-siasOAf8.js → chunk-KGLVRYIC-DrhRrb8Q.js} +1 -1
- package/payload/server/public/assets/{chunk-LIHQZDEY-xf1rbZtf.js → chunk-LIHQZDEY-DVQukevB.js} +1 -1
- package/payload/server/public/assets/{chunk-ORNJ4GCN-DeTLQ_LD.js → chunk-ORNJ4GCN-ZMLkoDhP.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-DQ7_oVJn.js → chunk-OYMX7WX6-C0dJkynG.js} +1 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-BNBxnHZh.js +1 -0
- package/payload/server/public/assets/{chunk-U2HBQHQK-CXmFUKgn.js → chunk-U2HBQHQK-BQ9BPIFZ.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-Bj8-8Wkz.js → chunk-X2U36JSP-CAonGMOd.js} +1 -1
- package/payload/server/public/assets/{chunk-XPW4576I-Con3TXqt.js → chunk-XPW4576I-D5C_WNlk.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-Dx8BHGWf.js → chunk-YZCP3GAM-Ecdvzekb.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-Dp4Q5Y-f.js → chunk-ZZ45TVLE-BsFZd1cN.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BShusfby.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D4ivPLFF.js +1 -0
- package/payload/server/public/assets/clone-CjEM8LwB.js +1 -0
- package/payload/server/public/assets/{cose-bilkent-S5V4N54A-pZiCv69E.js → cose-bilkent-S5V4N54A-DBWHaIwm.js} +1 -1
- package/payload/server/public/assets/{dagre-CLqhEgbL.js → dagre-Dr7ZJYeS.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-BCxE8iyk.js → dagre-KV5264BT-oIJddk7m.js} +1 -1
- package/payload/server/public/assets/data-TZOmA1Qg.js +1 -0
- package/payload/server/public/assets/{diagram-5BDNPKRD-slUEdZzz.js → diagram-5BDNPKRD-CEVxqOZ4.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-DPcraMfu.js → diagram-G4DWMVQ6-BovF7Rjx.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-DR6luhGK.js → diagram-MMDJMWI5-BhrF8zoF.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-Jap1B4wA.js → diagram-TYMM5635-DCUYwxtR.js} +1 -1
- package/payload/server/public/assets/{dist-Dbh7HrZX.js → dist-DSsFp0Qd.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-DJKUs2hO.js → erDiagram-SMLLAGMA-BS2-HdCg.js} +1 -1
- package/payload/server/public/assets/{flatten-Cl1Bc3dR.js → flatten-BZMXCpLh.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-C8W-ZZ9W.js → flowDiagram-DWJPFMVM-BzSFLoea.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DYCX4Xu2.js → ganttDiagram-T4ZO3ILL-1-3QU7mT.js} +1 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-Btp3PwZh.js +1 -0
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-CZu_fpgS.js → gitGraphDiagram-UUTBAWPF-fTrJ35Wk.js} +1 -1
- package/payload/server/public/assets/{graph-DKSjcpmR.js → graph-DWT1rhy9.js} +2 -2
- package/payload/server/public/assets/{graph-labels-CVWPQgBV.js → graph-labels-OBadNo54.js} +1 -1
- package/payload/server/public/assets/{graphlib-Bdp7TA4y.js → graphlib-rlEzI2qD.js} +1 -1
- package/payload/server/public/assets/info-OMHHGYJF-CPt2y6_L.js +1 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-CpXNTMgd.js +2 -0
- package/payload/server/public/assets/{isEmpty-D1pGOD1J.js → isEmpty-DaYIrHay.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-B7KfIX6z.js → ishikawaDiagram-UXIWVN3A-0eU_UtlT.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CSDwBfhF.js → journeyDiagram-VCZTEJTY-BKLeZohp.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-CWzcEKTr.js → kanban-definition-6JOO6SKY-Dq72xyaN.js} +1 -1
- package/payload/server/public/assets/{line-BNQSlbYn.js → line-LQhmDT8k.js} +1 -1
- package/payload/server/public/assets/{linear-BN6kGN93.js → linear-BGotDbGs.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-CcFhkElq.js → mermaid-parser.core-DoLdho1V.js} +2 -2
- package/payload/server/public/assets/{mermaid.core-BsIeJ7Cc.js → mermaid.core-C1RRyHGm.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CQVzj6D_.js → mindmap-definition-QFDTVHPH-vUVVVyV1.js} +1 -1
- package/payload/server/public/assets/operator-BpzQ9Ezb.js +1 -0
- package/payload/server/public/assets/{ordinal-CBZeH4Yp.js → ordinal-BqEhkPyh.js} +1 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-Cwc-j_AI.js +1 -0
- package/payload/server/public/assets/page-Dts8u8MD.js +1 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-BZ9fjD1_.js +1 -0
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-DnrQ9fyn.js → pieDiagram-DEJITSTG-B9Pl6Qhc.js} +1 -1
- package/payload/server/public/assets/public-next-ClQwtyeC.js +1 -0
- package/payload/server/public/assets/public-owWW-MIA.js +6 -0
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-BQWlCyWi.js → quadrantDiagram-34T5L4WZ-Drn9T81A.js} +1 -1
- package/payload/server/public/assets/radar-PYXPWWZC-BNz5Rt9V.js +1 -0
- package/payload/server/public/assets/{reduce-PuPlFPRX.js → reduce-T2IuntYP.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-Du_vZhU1.js → requirementDiagram-MS252O5E-C0PAItJm.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-Cf6Z8GPQ.js → sankeyDiagram-XADWPNL6-BR42Mtwd.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-CS8GVol8.js → sequenceDiagram-FGHM5R23-c2lR9UOS.js} +1 -1
- package/payload/server/public/assets/{src-BoaldmnP.js → src-DXUM2BJo.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-Bv1NW2F1.js → stateDiagram-FHFEXIEX-BcHhtqsZ.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BUQ_F4eP.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-ClGYAsr0.js → timeline-definition-GMOUNBTQ-Ax32c10H.js} +1 -1
- package/payload/server/public/assets/treeView-SZITEDCU-DcVCQgp1.js +1 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-Bm12mwGd.js +1 -0
- package/payload/server/public/assets/{useSelectionMode-FIodJKzS.js → useSelectionMode-BZsJuUm-.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-C2wTcxQT.js → vennDiagram-DHZGUBPP-BxePewPq.js} +1 -1
- package/payload/server/public/assets/wardley-RL74JXVD-47Z3ymtK.js +1 -0
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-D86-ivEx.js → wardleyDiagram-NUSXRM2D-DmJwZ2f5.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-Ba5WAN8P.js → xychartDiagram-5P7HB3ND-YjHomudv.js} +1 -1
- package/payload/server/public/browser.html +8 -8
- package/payload/server/public/chat.html +12 -11
- package/payload/server/public/data.html +7 -7
- package/payload/server/public/graph.html +10 -10
- package/payload/server/public/index.html +11 -10
- package/payload/server/public/operator.html +14 -13
- package/payload/server/public/public-next.html +25 -0
- package/payload/server/public/public.html +9 -8
- package/payload/server/server.js +890 -641
- package/dist/__tests__/onboarding-state-readback.test.js +0 -61
- package/dist/__tests__/rss-sampler-installer.test.js +0 -27
- package/dist/onboarding-readback.js +0 -27
- package/payload/server/public/assets/AdminLoginScreens-BZIA9Z6o.js +0 -1
- package/payload/server/public/assets/AdminShell-iazLHsk7.js +0 -1
- package/payload/server/public/assets/admin-BEx6o3fa.js +0 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-6g9jRVgc.js +0 -1
- package/payload/server/public/assets/audio-attachment-mime-DzbKNqbH.js +0 -30
- package/payload/server/public/assets/brand-CmMZe4RK.css +0 -1
- package/payload/server/public/assets/browser-D16sPVkI.js +0 -1
- package/payload/server/public/assets/channel-BgQLJanG.js +0 -1
- package/payload/server/public/assets/chat-x4PnXhkd.js +0 -1
- package/payload/server/public/assets/chunk-426QAEUC-Dr_XVuUq.js +0 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-DF4o9HRJ.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-DAbPKU6u.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BKuFQLcv.js +0 -1
- package/payload/server/public/assets/clone-DnNHGhNe.js +0 -1
- package/payload/server/public/assets/data-DqG45sq0.js +0 -1
- package/payload/server/public/assets/file-download-BvGS7Qmi.js +0 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-g7mvu6IY.js +0 -1
- package/payload/server/public/assets/info-OMHHGYJF-DZqJuIkB.js +0 -1
- package/payload/server/public/assets/infoDiagram-42DDH7IO-cGfGccHz.js +0 -2
- package/payload/server/public/assets/operator-Cnzbhdh2.js +0 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-Hn8rlHpy.js +0 -1
- package/payload/server/public/assets/page-CH8JQkQN.js +0 -1
- package/payload/server/public/assets/pie-ZZUOXDRM-BPGWVqBm.js +0 -1
- package/payload/server/public/assets/public-CA90VhI9.js +0 -6
- package/payload/server/public/assets/radar-PYXPWWZC-DMdLrj3E.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BGUCxPmp.js +0 -1
- package/payload/server/public/assets/treeView-SZITEDCU-CWxofUbI.js +0 -1
- package/payload/server/public/assets/treemap-W4RFUUIX-Cfgb_ZG0.js +0 -1
- package/payload/server/public/assets/wardley-RL74JXVD-B45olYjj.js +0 -1
- /package/payload/server/public/assets/{file-download-qc_xy7Az.css → OperatorConversations-qc_xy7Az.css} +0 -0
- /package/payload/server/public/assets/{_baseFor-brRjpUOX.js → _baseFor-Y5mTRiRv.js} +0 -0
- /package/payload/server/public/assets/{array-BGFCBI0e.js → array-BwJyW1Dp.js} +0 -0
- /package/payload/server/public/assets/{chunk-Pqm5yXtL.js → chunk-CAM3fms7.js} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-TvRJ2tGX.js → cytoscape.esm-D95TtHqz.js} +0 -0
- /package/payload/server/public/assets/{defaultLocale-CRZydyG6.js → defaultLocale-kiwRz9Au.js} +0 -0
- /package/payload/server/public/assets/{init-B8gtcn7T.js → init-CKZirZ49.js} +0 -0
- /package/payload/server/public/assets/{katex-RxgSu_dy.js → katex-8mXVa4k3.js} +0 -0
- /package/payload/server/public/assets/{path-DZF-JdEe.js → path-B0d9ncVi.js} +0 -0
- /package/payload/server/public/assets/{preload-helper-CQ36nxok.js → preload-helper-C5gCWwwF.js} +0 -0
- /package/payload/server/public/assets/{rough.esm-6CnTHTkH.js → rough.esm-BWqoIFNR.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: platform-architecture
|
|
3
3
|
description: Use when grounding any documented-surface claim about what Maxy ships — plugins, skills, specialists, install/deploy flows, internals. This is the install catalogue, not evidence of what is enabled on the current account. For install state on this account, call `capabilities-here`; for documented surface, cite the `Source:` URL inline.
|
|
4
|
-
content-hash: sha256:
|
|
4
|
+
content-hash: sha256:8fd7006bd54f69d5932bc831cf46f9ced8e01318f5fac0963f4285bc1e4b21a0
|
|
5
5
|
brand: maxy-code
|
|
6
6
|
product-name: Maxy
|
|
7
7
|
---
|
|
@@ -2489,6 +2489,26 @@ authoritative. This section names the surfaces and what backs each.
|
|
|
2489
2489
|
> via the same admin-gated reader routes, never the operator's own session. The
|
|
2490
2490
|
> operator surface is documented in full in the internal doc
|
|
2491
2491
|
> `maxy-code/.docs/operator-dashboard.md`.
|
|
2492
|
+
>
|
|
2493
|
+
> **Width.** The operator header, the operator chat column, and the `/data`
|
|
2494
|
+
> header+toolbar+body all render in one centred column bounded to
|
|
2495
|
+
> `--chat-measure` (48rem). That token is a `:root` design token (beside
|
|
2496
|
+
> `--measure`/`--gutter`); the operator-header clamp
|
|
2497
|
+
> (`.admin-shell-root:has(> .platform-operator) > .admin-header`), the chat-column
|
|
2498
|
+
> clamp (`.platform-operator > .webchat-page`), and the `/data` clamp
|
|
2499
|
+
> (`.data-main`) all read it, so logo and burger align to the panel edges on both
|
|
2500
|
+
> surfaces. The admin shell carries no `--chat-measure` consumer and stays
|
|
2501
|
+
> edge-to-edge; the public webchat (`.public-surface`) inherits the same value.
|
|
2502
|
+
>
|
|
2503
|
+
> **Conversations item.** The dynamic Conversations burger item appears on
|
|
2504
|
+
> **both** the operator chat surface and `/data` whenever ≥1 reviewable
|
|
2505
|
+
> conversation exists (the count/channels are fetched per surface from
|
|
2506
|
+
> `/whatsapp-reader/conversations` with the operator's session key). On `/data`
|
|
2507
|
+
> selecting it renders the same read-only reader in place (the file browser is
|
|
2508
|
+
> swapped for it; Back returns). The flyout-open signal
|
|
2509
|
+
> `[operator-ui] op=conversations-menu present=<bool> channels=[…] count=<n>`
|
|
2510
|
+
> fires on `/data` too — `present=false` there while the chat surface shows the
|
|
2511
|
+
> item is the props-not-wired signature.
|
|
2492
2512
|
|
|
2493
2513
|
| Surface | What it does | Backed by |
|
|
2494
2514
|
|---|---|---|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plugin-management
|
|
3
|
-
description: "Install, remove, enable, and configure plugins and account settings via conversation."
|
|
3
|
+
description: "Install, remove, enable, and configure plugins and account settings via conversation. This is how an operator turns the assistant's capabilities and integrations on and off — \"turn on email\", \"enable WhatsApp\", \"add a Telegram integration\", \"connect a new integration\", \"what can you connect to\", \"what plugins are available\", \"set up an integration\", \"disable X\", or changing an account setting. Each plugin is an integration or capability the assistant can gain; this skill is the surface for adding, removing, or reconfiguring them."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Plugin Management
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: specialist-management
|
|
3
|
-
description: "Install, remove, and manage specialist subagents and premium plugin agents."
|
|
3
|
+
description: "Install, remove, and manage specialist subagents and premium plugin agents — the dedicated helpers the assistant can hand work to. This is how an operator adds a new helper or worker agent: \"add a content writer\", \"set up a research agent\", \"give me a helper that writes documents\", \"add an agent that does X\", \"hire an assistant for Y\", \"what specialists can I add\", or removing one. Each specialist is a focused agent the assistant delegates a domain to (writing, research, and the like)."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Specialist Management
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cloudflare
|
|
3
|
-
description: Cloudflare operations for the install — tunnel setup/diagnosis/reset, DNS edits, Pages hosting, and D1 data capture. The agent drives `cloudflared` and `wrangler` directly via Bash and reads the matching reference before each operation class; success is always a live behavioural signal (external HTTP 200, a deployed URL, a D1 round-trip), never an exit code.
|
|
3
|
+
description: Cloudflare operations for the install — tunnel setup/diagnosis/reset, DNS edits, Pages hosting, and D1 data capture. This is the skill behind operator-facing goals like "set up the operator dashboard", "set up the operator host", "give me (or a colleague) a remote dashboard to run the assistant", "let me access the assistant from anywhere", "put my dashboard or site online", "point a custom domain at this", and "why is my site or hostname returning a 404 / 502". It provisions the operator-dashboard host — the trimmed remote control panel (sessions, chat, data; no graph, no browser) — by adding the tunnel ingress and the operator-domains.json classification, stands up admin / public / operator hostnames over the Cloudflare tunnel so the install is reachable on the internet, hosts static sites on Pages, and captures form submissions to D1. The agent drives `cloudflared` and `wrangler` directly via Bash and reads the matching reference before each operation class; success is always a live behavioural signal (external HTTP 200, a deployed URL, a D1 round-trip), never an exit code.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Cloudflare operations
|
|
@@ -258,6 +258,26 @@ authoritative. This section names the surfaces and what backs each.
|
|
|
258
258
|
> via the same admin-gated reader routes, never the operator's own session. The
|
|
259
259
|
> operator surface is documented in full in the internal doc
|
|
260
260
|
> `maxy-code/.docs/operator-dashboard.md`.
|
|
261
|
+
>
|
|
262
|
+
> **Width.** The operator header, the operator chat column, and the `/data`
|
|
263
|
+
> header+toolbar+body all render in one centred column bounded to
|
|
264
|
+
> `--chat-measure` (48rem). That token is a `:root` design token (beside
|
|
265
|
+
> `--measure`/`--gutter`); the operator-header clamp
|
|
266
|
+
> (`.admin-shell-root:has(> .platform-operator) > .admin-header`), the chat-column
|
|
267
|
+
> clamp (`.platform-operator > .webchat-page`), and the `/data` clamp
|
|
268
|
+
> (`.data-main`) all read it, so logo and burger align to the panel edges on both
|
|
269
|
+
> surfaces. The admin shell carries no `--chat-measure` consumer and stays
|
|
270
|
+
> edge-to-edge; the public webchat (`.public-surface`) inherits the same value.
|
|
271
|
+
>
|
|
272
|
+
> **Conversations item.** The dynamic Conversations burger item appears on
|
|
273
|
+
> **both** the operator chat surface and `/data` whenever ≥1 reviewable
|
|
274
|
+
> conversation exists (the count/channels are fetched per surface from
|
|
275
|
+
> `/whatsapp-reader/conversations` with the operator's session key). On `/data`
|
|
276
|
+
> selecting it renders the same read-only reader in place (the file browser is
|
|
277
|
+
> swapped for it; Back returns). The flyout-open signal
|
|
278
|
+
> `[operator-ui] op=conversations-menu present=<bool> channels=[…] count=<n>`
|
|
279
|
+
> fires on `/data` too — `present=false` there while the chat surface shows the
|
|
280
|
+
> item is the props-not-wired signature.
|
|
261
281
|
|
|
262
282
|
| Surface | What it does | Backed by |
|
|
263
283
|
|---|---|---|
|
|
@@ -36,6 +36,8 @@ export interface HttpDeps extends Omit<SpawnDeps, 'onSessionReady' | 'watcher'>
|
|
|
36
36
|
rcSpawnUrlWaitMs?: number;
|
|
37
37
|
}
|
|
38
38
|
export declare function forkArgvSegment(fromSessionId: string, newSessionId: string, model: string): string[];
|
|
39
|
+
export declare function reseatIdentityPrompt(model: string): string;
|
|
40
|
+
export declare function authenticatedIdentityPrompt(name: string | null): string;
|
|
39
41
|
export declare function formatReseatLine(fromModel: string | null, toModel: string, oldSessionId: string, newSessionId: string, observed: string | null): string;
|
|
40
42
|
export declare function firstPostArmAssistantModel(lines: string[], armTimeMs: number): string | null;
|
|
41
43
|
/** Task 189 — Hono instance with the test-only fan-out trigger attached.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAY3B,OAAO,EAgBL,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAqBzB,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAA;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAgFhE,eAAO,MAAM,kBAAkB,QAA2B,CAAA;AAS1D,eAAO,MAAM,4BAA4B,QAAS,CAAA;AAIlD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7E;;qEAEiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,SAAS,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,WAAW,CAAA;IAC/B,eAAe,EAAE,aAAa,CAAA;IAC9B;kFAC8E;IAC9E,cAAc,EAAE,cAAc,CAAA;IAC9B;;gFAE4E;IAC5E,cAAc,EAAE,cAAc,CAAA;IAC9B;;;6BAGyB;IACzB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC;;gFAE4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAwGD,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpG;AAMD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAER;AAkCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5F;AAwJD;;;kEAGkE;AAClE,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;;+CAG2C;IAC3C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD,CAAA;AAmBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAY3B,OAAO,EAgBL,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAqBzB,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAA;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAgFhE,eAAO,MAAM,kBAAkB,QAA2B,CAAA;AAS1D,eAAO,MAAM,4BAA4B,QAAS,CAAA;AAIlD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7E;;qEAEiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,SAAS,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,WAAW,CAAA;IAC/B,eAAe,EAAE,aAAa,CAAA;IAC9B;kFAC8E;IAC9E,cAAc,EAAE,cAAc,CAAA;IAC9B;;gFAE4E;IAC5E,cAAc,EAAE,cAAc,CAAA;IAC9B;;;6BAGyB;IACzB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC;;gFAE4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAwGD,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpG;AAQD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAUD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMvE;AAMD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAER;AAkCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5F;AAwJD;;;kEAGkE;AAClE,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;;+CAG2C;IAC3C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD,CAAA;AAmBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CA4nEpD"}
|
|
@@ -190,6 +190,30 @@ const AUTO_ARCHIVE_SPECIALIST = 'database-operator';
|
|
|
190
190
|
export function forkArgvSegment(fromSessionId, newSessionId, model) {
|
|
191
191
|
return ['--resume', fromSessionId, '--fork-session', '--session-id', newSessionId, '--model', model];
|
|
192
192
|
}
|
|
193
|
+
// Task 879 — the re-seated fork inherits the source's history, including the
|
|
194
|
+
// source's earlier self-identification on the OLD model. The rc-spawn path does
|
|
195
|
+
// not compose --append-system-prompt (only fresh spawnSession does), so the
|
|
196
|
+
// fork alone gets an authoritative current-model line on its argv: the agent
|
|
197
|
+
// answers the live model on the first ask, without being challenged. General
|
|
198
|
+
// self-ID accuracy (absent a re-seat) is out of scope — only the fork gets it.
|
|
199
|
+
export function reseatIdentityPrompt(model) {
|
|
200
|
+
return `This conversation now runs on the model ${model}. Earlier messages may show you identifying as a different model; that is stale context from before a model change — disregard it and state ${model} as your current model if asked.`;
|
|
201
|
+
}
|
|
202
|
+
// Task 889 — the authenticated-admin identity line for a webchat-bound admin
|
|
203
|
+
// rc session. The rc-spawn path composes no fresh-spawn system prompt, so this
|
|
204
|
+
// --append-system-prompt segment is the agent's only signal of who it is
|
|
205
|
+
// talking to. Re-passed on every spawn (fresh and resume) because the append
|
|
206
|
+
// fact is not persisted in the JSONL; without it the agent guesses the
|
|
207
|
+
// Anthropic account email visible in its context. `name` is the resolved
|
|
208
|
+
// `AdminUser` display name, or null/empty when the identity could not be
|
|
209
|
+
// resolved — the not-resolvable line is still injected to suppress the guess.
|
|
210
|
+
export function authenticatedIdentityPrompt(name) {
|
|
211
|
+
const trimmed = name?.trim() ?? '';
|
|
212
|
+
if (trimmed.length > 0) {
|
|
213
|
+
return `This admin webchat session is authenticated as ${trimmed}. If you are asked who you are talking to or who this session is authenticated as, answer ${trimmed}; never infer the operator's identity from an email address or account label visible in your context.`;
|
|
214
|
+
}
|
|
215
|
+
return `This admin webchat session's authenticated identity could not be resolved. If you are asked who you are talking to or who this session is authenticated as, say the identity is not resolvable; never infer it from an email address or account label visible in your context.`;
|
|
216
|
+
}
|
|
193
217
|
// Task 876 — the re-seat post-condition line. Emitted ONLY after a real
|
|
194
218
|
// assistant turn on the fork is read (intention is not logged, per the
|
|
195
219
|
// observability contract): a re-seat that silently lands on the wrong model
|
|
@@ -1758,6 +1782,13 @@ export function buildHttpApp(deps) {
|
|
|
1758
1782
|
const adminUserId = typeof body.adminUserId === 'string' && body.adminUserId.length > 0 && body.adminUserId.length <= 128
|
|
1759
1783
|
? body.adminUserId
|
|
1760
1784
|
: undefined;
|
|
1785
|
+
// Task 889 — the resolved authenticated-admin display name, resolved by the
|
|
1786
|
+
// UI from USER_ID -> AdminUser (the manager holds no Neo4j driver) and
|
|
1787
|
+
// shape-bounded here. Absent => the identity line renders its not-resolvable
|
|
1788
|
+
// form. Only consumed for webchat-bound admin spawns.
|
|
1789
|
+
const authenticatedName = typeof body.authenticatedName === 'string' && body.authenticatedName.length > 0 && body.authenticatedName.length <= 256
|
|
1790
|
+
? body.authenticatedName
|
|
1791
|
+
: undefined;
|
|
1761
1792
|
// Task 682 — per-session userId override. Server-resolved by the UI from the
|
|
1762
1793
|
// authoritative users.json/account.json (never message content) and shape-
|
|
1763
1794
|
// validated here the same way as personId. Absent for owner self-phone and
|
|
@@ -1874,10 +1905,16 @@ export function buildHttpApp(deps) {
|
|
|
1874
1905
|
const argv = ['--remote-control'];
|
|
1875
1906
|
if (name)
|
|
1876
1907
|
argv.push(name);
|
|
1908
|
+
// Task 889 — append-system-prompt segments are accumulated and pushed once
|
|
1909
|
+
// (below, after channel resolution) so the re-seat model line and the
|
|
1910
|
+
// authenticated-identity line share a single flag.
|
|
1911
|
+
const appendSegments = [];
|
|
1877
1912
|
// Task 876 — a re-seat forks the source onto the pre-minted target id; the
|
|
1878
1913
|
// ordinary fresh/resume single-id push is replaced by the fork segment.
|
|
1879
1914
|
if (forkFromSessionId !== null && reseatModel !== null && sessionId) {
|
|
1880
1915
|
argv.push(...forkArgvSegment(forkFromSessionId, sessionId, reseatModel));
|
|
1916
|
+
// Task 879 — authoritative current-model signal for the fork only.
|
|
1917
|
+
appendSegments.push(reseatIdentityPrompt(reseatModel));
|
|
1881
1918
|
}
|
|
1882
1919
|
else if (sessionId) {
|
|
1883
1920
|
argv.push(mode === 'resume' ? '--resume' : '--session-id', sessionId);
|
|
@@ -1999,6 +2036,19 @@ export function buildHttpApp(deps) {
|
|
|
1999
2036
|
}
|
|
2000
2037
|
}
|
|
2001
2038
|
}
|
|
2039
|
+
// Task 889 — a webchat-bound admin rc session is the /chat admin surface.
|
|
2040
|
+
// Inject the authenticated-identity line (resolved name, or the explicit
|
|
2041
|
+
// not-resolvable form) so the agent states who it is talking to instead of
|
|
2042
|
+
// guessing the account email. Gated on the webchat binding + admin role so
|
|
2043
|
+
// public visitor spawns and the one-shot admin jobs are untouched. The
|
|
2044
|
+
// breadcrumb makes a silent resolution regression visible without a chat.
|
|
2045
|
+
if (effectiveWebchatChannel && rcRole === 'admin') {
|
|
2046
|
+
appendSegments.push(authenticatedIdentityPrompt(authenticatedName ?? null));
|
|
2047
|
+
deps.logger(`[rc-spawn] op=identity-injected userId=${adminUserId ? adminUserId.slice(0, 8) : 'none'} resolved=${authenticatedName ? 1 : 0}`);
|
|
2048
|
+
}
|
|
2049
|
+
if (appendSegments.length > 0) {
|
|
2050
|
+
argv.push('--append-system-prompt', appendSegments.join('\n\n'));
|
|
2051
|
+
}
|
|
2002
2052
|
// Task 626 — the initial message is the trailing positional, processed as
|
|
2003
2053
|
// the session's first user turn at PTY startup. One-shot jobs omit `name`
|
|
2004
2054
|
// so the prompt is the sole positional.
|