@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.
Files changed (199) hide show
  1. package/dist/__tests__/claude-ptys-slice.test.js +1 -1
  2. package/dist/__tests__/cloudflared-slice.test.js +1 -1
  3. package/dist/__tests__/macos-darwin-branch.test.js +4 -6
  4. package/package.json +1 -1
  5. package/payload/platform/lib/admin-access-password/__tests__/index.test.ts +28 -0
  6. package/payload/platform/lib/admin-access-password/dist/index.d.ts +9 -0
  7. package/payload/platform/lib/admin-access-password/dist/index.d.ts.map +1 -1
  8. package/payload/platform/lib/admin-access-password/dist/index.js +26 -0
  9. package/payload/platform/lib/admin-access-password/dist/index.js.map +1 -1
  10. package/payload/platform/lib/admin-access-password/src/index.ts +24 -0
  11. package/payload/platform/lib/models/dist/index.d.ts +7 -0
  12. package/payload/platform/lib/models/dist/index.d.ts.map +1 -1
  13. package/payload/platform/lib/models/dist/index.js +10 -0
  14. package/payload/platform/lib/models/dist/index.js.map +1 -1
  15. package/payload/platform/lib/models/src/index.ts +10 -0
  16. package/payload/platform/plugins/admin/mcp/dist/index.js +4 -1
  17. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  18. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +21 -1
  19. package/payload/platform/plugins/admin/skills/plugin-management/SKILL.md +1 -1
  20. package/payload/platform/plugins/admin/skills/specialist-management/SKILL.md +1 -1
  21. package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +1 -1
  22. package/payload/platform/plugins/docs/references/admin-ui.md +20 -0
  23. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +2 -0
  24. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  25. package/payload/platform/services/claude-session-manager/dist/http-server.js +50 -0
  26. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  27. package/payload/platform/services/webchat-channel/dist/instructions.d.ts +1 -0
  28. package/payload/platform/services/webchat-channel/dist/instructions.d.ts.map +1 -1
  29. package/payload/platform/services/webchat-channel/dist/instructions.js +31 -0
  30. package/payload/platform/services/webchat-channel/dist/instructions.js.map +1 -1
  31. package/payload/platform/services/webchat-channel/dist/notification.d.ts +8 -3
  32. package/payload/platform/services/webchat-channel/dist/notification.d.ts.map +1 -1
  33. package/payload/platform/services/webchat-channel/dist/notification.js +25 -9
  34. package/payload/platform/services/webchat-channel/dist/notification.js.map +1 -1
  35. package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
  36. package/payload/platform/services/webchat-channel/dist/server.js +5 -3
  37. package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
  38. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +8 -0
  39. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  40. package/payload/platform/services/whatsapp-channel/dist/notification.js +10 -0
  41. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  42. package/payload/server/{chunk-FBGIHWWM.js → chunk-J6WDAWFJ.js} +20 -0
  43. package/payload/server/maxy-edge.js +1 -1
  44. package/payload/server/public/assets/AccessGate-BOqUU-za.js +1 -0
  45. package/payload/server/public/assets/AdminLoginScreens-WvRuaNIg.js +1 -0
  46. package/payload/server/public/assets/AdminShell-DHv6_SZ4.js +1 -0
  47. package/payload/server/public/assets/{Checkbox-8elc7oXU.js → Checkbox-DjM6aYP_.js} +1 -1
  48. package/payload/server/public/assets/OperatorConversations-CDY0jUMb.js +1 -0
  49. package/payload/server/public/assets/admin-XbVTsU2q.js +1 -0
  50. package/payload/server/public/assets/admin-types-D2qTXuCg.js +1 -0
  51. package/payload/server/public/assets/{arc-DxSm8tli.js → arc-J2g2u5Xv.js} +1 -1
  52. package/payload/server/public/assets/architecture-YZFGNWBL-C6nkAxzW.js +1 -0
  53. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-7JSAh0vL.js → architectureDiagram-Q4EWVU46-CN0BXxpE.js} +1 -1
  54. package/payload/server/public/assets/audio-attachment-mime-CVxjPN8V.js +30 -0
  55. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DLoVmHKD.js → blockDiagram-DXYQGD6D-HX-8wF2p.js} +1 -1
  56. package/payload/server/public/assets/brand-N-Hi3IPA.css +1 -0
  57. package/payload/server/public/assets/{brand-Dh5UlVO2.js → brand-zL3tAdql.js} +1 -1
  58. package/payload/server/public/assets/browser-Ct5Kwlmk.js +1 -0
  59. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-Nv1G0o9P.js → c4Diagram-AHTNJAMY-wIuarKF5.js} +1 -1
  60. package/payload/server/public/assets/channel-Q39xIXyT.js +1 -0
  61. package/payload/server/public/assets/chat-CEde1CLX.js +1 -0
  62. package/payload/server/public/assets/{chunk-2KRD3SAO-BpqPMhoA.js → chunk-2KRD3SAO-Buz7egJZ.js} +1 -1
  63. package/payload/server/public/assets/{chunk-336JU56O-DgXHlVU_.js → chunk-336JU56O-_JcFXJqc.js} +2 -2
  64. package/payload/server/public/assets/chunk-426QAEUC-CCYjp9C2.js +1 -0
  65. package/payload/server/public/assets/{chunk-4BX2VUAB-nwyZSZH8.js → chunk-4BX2VUAB-DUR5Dg3M.js} +1 -1
  66. package/payload/server/public/assets/{chunk-4TB4RGXK-Tfxz9LHX.js → chunk-4TB4RGXK-BRIqQ9st.js} +1 -1
  67. package/payload/server/public/assets/{chunk-55IACEB6-6FMJQGXG.js → chunk-55IACEB6-CezTHWXL.js} +1 -1
  68. package/payload/server/public/assets/{chunk-5FUZZQ4R-g2FgZF3D.js → chunk-5FUZZQ4R-DHYUPzF1.js} +1 -1
  69. package/payload/server/public/assets/{chunk-5PVQY5BW-DtLwXsPH.js → chunk-5PVQY5BW-BVn4_fI5.js} +1 -1
  70. package/payload/server/public/assets/{chunk-67CJDMHE-K91CP5ZU.js → chunk-67CJDMHE-BBLA8Mbi.js} +1 -1
  71. package/payload/server/public/assets/{chunk-7N4EOEYR-BGpCQhqK.js → chunk-7N4EOEYR-CdWfEI5c.js} +1 -1
  72. package/payload/server/public/assets/{chunk-AA7GKIK3-jkDbInck.js → chunk-AA7GKIK3-tS11knCR.js} +1 -1
  73. package/payload/server/public/assets/{chunk-BSJP7CBP-mDosdzGs.js → chunk-BSJP7CBP-GEu1OOZ6.js} +1 -1
  74. package/payload/server/public/assets/{chunk-CIAEETIT-DhBxewpQ.js → chunk-CIAEETIT-DKrNbbp_.js} +1 -1
  75. package/payload/server/public/assets/{chunk-EDXVE4YY-B7c-9Emg.js → chunk-EDXVE4YY-B0InXNyr.js} +1 -1
  76. package/payload/server/public/assets/{chunk-ENJZ2VHE-Cqhhncox.js → chunk-ENJZ2VHE-CO7lkHdm.js} +1 -1
  77. package/payload/server/public/assets/{chunk-FMBD7UC4-BpDq6wj1.js → chunk-FMBD7UC4-CMj74lWo.js} +1 -1
  78. package/payload/server/public/assets/{chunk-FOC6F5B3-Ds02-ktu.js → chunk-FOC6F5B3-CLnKQoXw.js} +1 -1
  79. package/payload/server/public/assets/{chunk-ICPOFSXX-BTX5POFr.js → chunk-ICPOFSXX-CdiEKIaz.js} +2 -2
  80. package/payload/server/public/assets/{chunk-K5T4RW27-Du1PXXBU.js → chunk-K5T4RW27-B6LA3fiv.js} +1 -1
  81. package/payload/server/public/assets/{chunk-KGLVRYIC-siasOAf8.js → chunk-KGLVRYIC-DrhRrb8Q.js} +1 -1
  82. package/payload/server/public/assets/{chunk-LIHQZDEY-xf1rbZtf.js → chunk-LIHQZDEY-DVQukevB.js} +1 -1
  83. package/payload/server/public/assets/{chunk-ORNJ4GCN-DeTLQ_LD.js → chunk-ORNJ4GCN-ZMLkoDhP.js} +1 -1
  84. package/payload/server/public/assets/{chunk-OYMX7WX6-DQ7_oVJn.js → chunk-OYMX7WX6-C0dJkynG.js} +1 -1
  85. package/payload/server/public/assets/chunk-QZHKN3VN-BNBxnHZh.js +1 -0
  86. package/payload/server/public/assets/{chunk-U2HBQHQK-CXmFUKgn.js → chunk-U2HBQHQK-BQ9BPIFZ.js} +1 -1
  87. package/payload/server/public/assets/{chunk-X2U36JSP-Bj8-8Wkz.js → chunk-X2U36JSP-CAonGMOd.js} +1 -1
  88. package/payload/server/public/assets/{chunk-XPW4576I-Con3TXqt.js → chunk-XPW4576I-D5C_WNlk.js} +1 -1
  89. package/payload/server/public/assets/{chunk-YZCP3GAM-Dx8BHGWf.js → chunk-YZCP3GAM-Ecdvzekb.js} +1 -1
  90. package/payload/server/public/assets/{chunk-ZZ45TVLE-Dp4Q5Y-f.js → chunk-ZZ45TVLE-BsFZd1cN.js} +1 -1
  91. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BShusfby.js +1 -0
  92. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D4ivPLFF.js +1 -0
  93. package/payload/server/public/assets/clone-CjEM8LwB.js +1 -0
  94. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-pZiCv69E.js → cose-bilkent-S5V4N54A-DBWHaIwm.js} +1 -1
  95. package/payload/server/public/assets/{dagre-CLqhEgbL.js → dagre-Dr7ZJYeS.js} +1 -1
  96. package/payload/server/public/assets/{dagre-KV5264BT-BCxE8iyk.js → dagre-KV5264BT-oIJddk7m.js} +1 -1
  97. package/payload/server/public/assets/data-TZOmA1Qg.js +1 -0
  98. package/payload/server/public/assets/{diagram-5BDNPKRD-slUEdZzz.js → diagram-5BDNPKRD-CEVxqOZ4.js} +1 -1
  99. package/payload/server/public/assets/{diagram-G4DWMVQ6-DPcraMfu.js → diagram-G4DWMVQ6-BovF7Rjx.js} +1 -1
  100. package/payload/server/public/assets/{diagram-MMDJMWI5-DR6luhGK.js → diagram-MMDJMWI5-BhrF8zoF.js} +1 -1
  101. package/payload/server/public/assets/{diagram-TYMM5635-Jap1B4wA.js → diagram-TYMM5635-DCUYwxtR.js} +1 -1
  102. package/payload/server/public/assets/{dist-Dbh7HrZX.js → dist-DSsFp0Qd.js} +1 -1
  103. package/payload/server/public/assets/{erDiagram-SMLLAGMA-DJKUs2hO.js → erDiagram-SMLLAGMA-BS2-HdCg.js} +1 -1
  104. package/payload/server/public/assets/{flatten-Cl1Bc3dR.js → flatten-BZMXCpLh.js} +1 -1
  105. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-C8W-ZZ9W.js → flowDiagram-DWJPFMVM-BzSFLoea.js} +1 -1
  106. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DYCX4Xu2.js → ganttDiagram-T4ZO3ILL-1-3QU7mT.js} +1 -1
  107. package/payload/server/public/assets/gitGraph-7Q5UKJZL-Btp3PwZh.js +1 -0
  108. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-CZu_fpgS.js → gitGraphDiagram-UUTBAWPF-fTrJ35Wk.js} +1 -1
  109. package/payload/server/public/assets/{graph-DKSjcpmR.js → graph-DWT1rhy9.js} +2 -2
  110. package/payload/server/public/assets/{graph-labels-CVWPQgBV.js → graph-labels-OBadNo54.js} +1 -1
  111. package/payload/server/public/assets/{graphlib-Bdp7TA4y.js → graphlib-rlEzI2qD.js} +1 -1
  112. package/payload/server/public/assets/info-OMHHGYJF-CPt2y6_L.js +1 -0
  113. package/payload/server/public/assets/infoDiagram-42DDH7IO-CpXNTMgd.js +2 -0
  114. package/payload/server/public/assets/{isEmpty-D1pGOD1J.js → isEmpty-DaYIrHay.js} +1 -1
  115. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-B7KfIX6z.js → ishikawaDiagram-UXIWVN3A-0eU_UtlT.js} +1 -1
  116. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CSDwBfhF.js → journeyDiagram-VCZTEJTY-BKLeZohp.js} +1 -1
  117. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-CWzcEKTr.js → kanban-definition-6JOO6SKY-Dq72xyaN.js} +1 -1
  118. package/payload/server/public/assets/{line-BNQSlbYn.js → line-LQhmDT8k.js} +1 -1
  119. package/payload/server/public/assets/{linear-BN6kGN93.js → linear-BGotDbGs.js} +1 -1
  120. package/payload/server/public/assets/{mermaid-parser.core-CcFhkElq.js → mermaid-parser.core-DoLdho1V.js} +2 -2
  121. package/payload/server/public/assets/{mermaid.core-BsIeJ7Cc.js → mermaid.core-C1RRyHGm.js} +3 -3
  122. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CQVzj6D_.js → mindmap-definition-QFDTVHPH-vUVVVyV1.js} +1 -1
  123. package/payload/server/public/assets/operator-BpzQ9Ezb.js +1 -0
  124. package/payload/server/public/assets/{ordinal-CBZeH4Yp.js → ordinal-BqEhkPyh.js} +1 -1
  125. package/payload/server/public/assets/packet-4T2RLAQJ-Cwc-j_AI.js +1 -0
  126. package/payload/server/public/assets/page-Dts8u8MD.js +1 -0
  127. package/payload/server/public/assets/pie-ZZUOXDRM-BZ9fjD1_.js +1 -0
  128. package/payload/server/public/assets/{pieDiagram-DEJITSTG-DnrQ9fyn.js → pieDiagram-DEJITSTG-B9Pl6Qhc.js} +1 -1
  129. package/payload/server/public/assets/public-next-ClQwtyeC.js +1 -0
  130. package/payload/server/public/assets/public-owWW-MIA.js +6 -0
  131. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-BQWlCyWi.js → quadrantDiagram-34T5L4WZ-Drn9T81A.js} +1 -1
  132. package/payload/server/public/assets/radar-PYXPWWZC-BNz5Rt9V.js +1 -0
  133. package/payload/server/public/assets/{reduce-PuPlFPRX.js → reduce-T2IuntYP.js} +1 -1
  134. package/payload/server/public/assets/{requirementDiagram-MS252O5E-Du_vZhU1.js → requirementDiagram-MS252O5E-C0PAItJm.js} +1 -1
  135. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-Cf6Z8GPQ.js → sankeyDiagram-XADWPNL6-BR42Mtwd.js} +1 -1
  136. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-CS8GVol8.js → sequenceDiagram-FGHM5R23-c2lR9UOS.js} +1 -1
  137. package/payload/server/public/assets/{src-BoaldmnP.js → src-DXUM2BJo.js} +1 -1
  138. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-Bv1NW2F1.js → stateDiagram-FHFEXIEX-BcHhtqsZ.js} +1 -1
  139. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BUQ_F4eP.js +1 -0
  140. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-ClGYAsr0.js → timeline-definition-GMOUNBTQ-Ax32c10H.js} +1 -1
  141. package/payload/server/public/assets/treeView-SZITEDCU-DcVCQgp1.js +1 -0
  142. package/payload/server/public/assets/treemap-W4RFUUIX-Bm12mwGd.js +1 -0
  143. package/payload/server/public/assets/{useSelectionMode-FIodJKzS.js → useSelectionMode-BZsJuUm-.js} +1 -1
  144. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-C2wTcxQT.js → vennDiagram-DHZGUBPP-BxePewPq.js} +1 -1
  145. package/payload/server/public/assets/wardley-RL74JXVD-47Z3ymtK.js +1 -0
  146. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-D86-ivEx.js → wardleyDiagram-NUSXRM2D-DmJwZ2f5.js} +1 -1
  147. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-Ba5WAN8P.js → xychartDiagram-5P7HB3ND-YjHomudv.js} +1 -1
  148. package/payload/server/public/browser.html +8 -8
  149. package/payload/server/public/chat.html +12 -11
  150. package/payload/server/public/data.html +7 -7
  151. package/payload/server/public/graph.html +10 -10
  152. package/payload/server/public/index.html +11 -10
  153. package/payload/server/public/operator.html +14 -13
  154. package/payload/server/public/public-next.html +25 -0
  155. package/payload/server/public/public.html +9 -8
  156. package/payload/server/server.js +890 -641
  157. package/dist/__tests__/onboarding-state-readback.test.js +0 -61
  158. package/dist/__tests__/rss-sampler-installer.test.js +0 -27
  159. package/dist/onboarding-readback.js +0 -27
  160. package/payload/server/public/assets/AdminLoginScreens-BZIA9Z6o.js +0 -1
  161. package/payload/server/public/assets/AdminShell-iazLHsk7.js +0 -1
  162. package/payload/server/public/assets/admin-BEx6o3fa.js +0 -1
  163. package/payload/server/public/assets/architecture-YZFGNWBL-6g9jRVgc.js +0 -1
  164. package/payload/server/public/assets/audio-attachment-mime-DzbKNqbH.js +0 -30
  165. package/payload/server/public/assets/brand-CmMZe4RK.css +0 -1
  166. package/payload/server/public/assets/browser-D16sPVkI.js +0 -1
  167. package/payload/server/public/assets/channel-BgQLJanG.js +0 -1
  168. package/payload/server/public/assets/chat-x4PnXhkd.js +0 -1
  169. package/payload/server/public/assets/chunk-426QAEUC-Dr_XVuUq.js +0 -1
  170. package/payload/server/public/assets/chunk-QZHKN3VN-DF4o9HRJ.js +0 -1
  171. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DAbPKU6u.js +0 -1
  172. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BKuFQLcv.js +0 -1
  173. package/payload/server/public/assets/clone-DnNHGhNe.js +0 -1
  174. package/payload/server/public/assets/data-DqG45sq0.js +0 -1
  175. package/payload/server/public/assets/file-download-BvGS7Qmi.js +0 -1
  176. package/payload/server/public/assets/gitGraph-7Q5UKJZL-g7mvu6IY.js +0 -1
  177. package/payload/server/public/assets/info-OMHHGYJF-DZqJuIkB.js +0 -1
  178. package/payload/server/public/assets/infoDiagram-42DDH7IO-cGfGccHz.js +0 -2
  179. package/payload/server/public/assets/operator-Cnzbhdh2.js +0 -1
  180. package/payload/server/public/assets/packet-4T2RLAQJ-Hn8rlHpy.js +0 -1
  181. package/payload/server/public/assets/page-CH8JQkQN.js +0 -1
  182. package/payload/server/public/assets/pie-ZZUOXDRM-BPGWVqBm.js +0 -1
  183. package/payload/server/public/assets/public-CA90VhI9.js +0 -6
  184. package/payload/server/public/assets/radar-PYXPWWZC-DMdLrj3E.js +0 -1
  185. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BGUCxPmp.js +0 -1
  186. package/payload/server/public/assets/treeView-SZITEDCU-CWxofUbI.js +0 -1
  187. package/payload/server/public/assets/treemap-W4RFUUIX-Cfgb_ZG0.js +0 -1
  188. package/payload/server/public/assets/wardley-RL74JXVD-B45olYjj.js +0 -1
  189. /package/payload/server/public/assets/{file-download-qc_xy7Az.css → OperatorConversations-qc_xy7Az.css} +0 -0
  190. /package/payload/server/public/assets/{_baseFor-brRjpUOX.js → _baseFor-Y5mTRiRv.js} +0 -0
  191. /package/payload/server/public/assets/{array-BGFCBI0e.js → array-BwJyW1Dp.js} +0 -0
  192. /package/payload/server/public/assets/{chunk-Pqm5yXtL.js → chunk-CAM3fms7.js} +0 -0
  193. /package/payload/server/public/assets/{cytoscape.esm-TvRJ2tGX.js → cytoscape.esm-D95TtHqz.js} +0 -0
  194. /package/payload/server/public/assets/{defaultLocale-CRZydyG6.js → defaultLocale-kiwRz9Au.js} +0 -0
  195. /package/payload/server/public/assets/{init-B8gtcn7T.js → init-CKZirZ49.js} +0 -0
  196. /package/payload/server/public/assets/{katex-RxgSu_dy.js → katex-8mXVa4k3.js} +0 -0
  197. /package/payload/server/public/assets/{path-DZF-JdEe.js → path-B0d9ncVi.js} +0 -0
  198. /package/payload/server/public/assets/{preload-helper-CQ36nxok.js → preload-helper-C5gCWwwF.js} +0 -0
  199. /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:3dc18de6b756569b69f9991344abc2af34919802f4e632a815f2250b8a11f786
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,CA+lEpD"}
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.