@rubytech/create-maxy-code 0.1.305 → 0.1.307

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 (179) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/lib/models/dist/index.d.ts +0 -1
  3. package/payload/platform/lib/models/dist/index.d.ts.map +1 -1
  4. package/payload/platform/lib/models/dist/index.js +2 -5
  5. package/payload/platform/lib/models/dist/index.js.map +1 -1
  6. package/payload/platform/lib/models/src/index.ts +1 -4
  7. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +46 -12
  8. package/payload/platform/plugins/docs/references/admin-ui.md +32 -11
  9. package/payload/platform/plugins/docs/references/getting-started.md +13 -0
  10. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  11. package/payload/platform/services/claude-session-manager/dist/http-server.js +14 -0
  12. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  13. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  14. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +8 -0
  15. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  16. package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts +13 -0
  17. package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts.map +1 -1
  18. package/payload/platform/services/claude-session-manager/dist/session-sidecar.js +18 -0
  19. package/payload/platform/services/claude-session-manager/dist/session-sidecar.js.map +1 -1
  20. package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
  21. package/payload/platform/services/whatsapp-channel/dist/server.js +34 -10
  22. package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
  23. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts +9 -0
  24. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts.map +1 -1
  25. package/payload/platform/services/whatsapp-channel/dist/targets.js +13 -0
  26. package/payload/platform/services/whatsapp-channel/dist/targets.js.map +1 -1
  27. package/payload/platform/templates/account.json +1 -1
  28. package/payload/server/{chunk-TUY3RB5G.js → chunk-4QFPGAUZ.js} +27 -0
  29. package/payload/server/maxy-edge.js +1 -1
  30. package/payload/server/public/assets/AdminLoginScreens-BsC-EwAn.js +1 -0
  31. package/payload/server/public/assets/AdminShell-CiKKN22G.js +1 -0
  32. package/payload/server/public/assets/Checkbox-DoPOlZTV.js +1 -0
  33. package/payload/server/public/assets/admin-DSwmdCKp.js +1 -0
  34. package/payload/server/public/assets/{arc-BrTRjBIM.js → arc-DxSm8tli.js} +1 -1
  35. package/payload/server/public/assets/architecture-YZFGNWBL-6g9jRVgc.js +1 -0
  36. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-DJ9on7sZ.js → architectureDiagram-Q4EWVU46-7JSAh0vL.js} +1 -1
  37. package/payload/server/public/assets/{audio-attachment-mime-j2VvxEtx.js → audio-attachment-mime-BA10IzqQ.js} +4 -4
  38. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-CIcyQn0q.js → blockDiagram-DXYQGD6D-DLoVmHKD.js} +1 -1
  39. package/payload/server/public/assets/brand-BaRMO3mZ.js +9 -0
  40. package/payload/server/public/assets/{jsx-runtime-DZkld3Wk.css → brand-C001cin3.css} +1 -1
  41. package/payload/server/public/assets/browser-BKR1eJJb.js +1 -0
  42. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-Dt5dh_GR.js → c4Diagram-AHTNJAMY-Nv1G0o9P.js} +1 -1
  43. package/payload/server/public/assets/channel-BgQLJanG.js +1 -0
  44. package/payload/server/public/assets/chat-DZXNRiy-.js +1 -0
  45. package/payload/server/public/assets/{chunk-2KRD3SAO-BUq3MqUy.js → chunk-2KRD3SAO-BpqPMhoA.js} +1 -1
  46. package/payload/server/public/assets/{chunk-336JU56O-CUzJH5Qt.js → chunk-336JU56O-DgXHlVU_.js} +2 -2
  47. package/payload/server/public/assets/chunk-426QAEUC-Dr_XVuUq.js +1 -0
  48. package/payload/server/public/assets/{chunk-4BX2VUAB-B4JUc3UA.js → chunk-4BX2VUAB-nwyZSZH8.js} +1 -1
  49. package/payload/server/public/assets/{chunk-4TB4RGXK-HRO9fIIs.js → chunk-4TB4RGXK-Tfxz9LHX.js} +1 -1
  50. package/payload/server/public/assets/{chunk-55IACEB6-MZdrLBuw.js → chunk-55IACEB6-6FMJQGXG.js} +1 -1
  51. package/payload/server/public/assets/{chunk-5FUZZQ4R-XcAN5zlM.js → chunk-5FUZZQ4R-g2FgZF3D.js} +1 -1
  52. package/payload/server/public/assets/{chunk-5PVQY5BW-PQ1GEsxo.js → chunk-5PVQY5BW-DtLwXsPH.js} +1 -1
  53. package/payload/server/public/assets/{chunk-67CJDMHE-BVvCaqGd.js → chunk-67CJDMHE-K91CP5ZU.js} +1 -1
  54. package/payload/server/public/assets/{chunk-7N4EOEYR-BlBbZdpM.js → chunk-7N4EOEYR-BGpCQhqK.js} +1 -1
  55. package/payload/server/public/assets/{chunk-AA7GKIK3-Ct-PgkGa.js → chunk-AA7GKIK3-jkDbInck.js} +1 -1
  56. package/payload/server/public/assets/{chunk-BSJP7CBP-DZRRfCSz.js → chunk-BSJP7CBP-mDosdzGs.js} +1 -1
  57. package/payload/server/public/assets/{chunk-CIAEETIT-BoGEJiXe.js → chunk-CIAEETIT-DhBxewpQ.js} +1 -1
  58. package/payload/server/public/assets/{chunk-EDXVE4YY-DiSmN31f.js → chunk-EDXVE4YY-B7c-9Emg.js} +1 -1
  59. package/payload/server/public/assets/{chunk-ENJZ2VHE-uhhokIvs.js → chunk-ENJZ2VHE-Cqhhncox.js} +1 -1
  60. package/payload/server/public/assets/{chunk-FMBD7UC4-CfCx5WI7.js → chunk-FMBD7UC4-BpDq6wj1.js} +1 -1
  61. package/payload/server/public/assets/{chunk-FOC6F5B3-Dj9E9gTu.js → chunk-FOC6F5B3-Ds02-ktu.js} +1 -1
  62. package/payload/server/public/assets/{chunk-ICPOFSXX-DcBs_FNy.js → chunk-ICPOFSXX-BTX5POFr.js} +2 -2
  63. package/payload/server/public/assets/{chunk-K5T4RW27-7-VefyJD.js → chunk-K5T4RW27-Du1PXXBU.js} +1 -1
  64. package/payload/server/public/assets/{chunk-KGLVRYIC-CqgTEVxm.js → chunk-KGLVRYIC-siasOAf8.js} +1 -1
  65. package/payload/server/public/assets/{chunk-LIHQZDEY-C0gzDXha.js → chunk-LIHQZDEY-xf1rbZtf.js} +1 -1
  66. package/payload/server/public/assets/{chunk-ORNJ4GCN-JXz23R1H.js → chunk-ORNJ4GCN-DeTLQ_LD.js} +1 -1
  67. package/payload/server/public/assets/{chunk-OYMX7WX6-C2snCNq9.js → chunk-OYMX7WX6-DQ7_oVJn.js} +1 -1
  68. package/payload/server/public/assets/chunk-QZHKN3VN-DF4o9HRJ.js +1 -0
  69. package/payload/server/public/assets/{chunk-U2HBQHQK-CXCU7M-M.js → chunk-U2HBQHQK-CXmFUKgn.js} +1 -1
  70. package/payload/server/public/assets/{chunk-X2U36JSP-CEdcSb28.js → chunk-X2U36JSP-Bj8-8Wkz.js} +1 -1
  71. package/payload/server/public/assets/{chunk-XPW4576I-Cckc75YS.js → chunk-XPW4576I-Con3TXqt.js} +1 -1
  72. package/payload/server/public/assets/{chunk-YZCP3GAM-4nN8AO7H.js → chunk-YZCP3GAM-Dx8BHGWf.js} +1 -1
  73. package/payload/server/public/assets/{chunk-ZZ45TVLE-DcoBc8-7.js → chunk-ZZ45TVLE-Dp4Q5Y-f.js} +1 -1
  74. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DAbPKU6u.js +1 -0
  75. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BKuFQLcv.js +1 -0
  76. package/payload/server/public/assets/clone-DnNHGhNe.js +1 -0
  77. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-BFFro_t9.js → cose-bilkent-S5V4N54A-pZiCv69E.js} +1 -1
  78. package/payload/server/public/assets/{dagre-CN5to_JM.js → dagre-CLqhEgbL.js} +1 -1
  79. package/payload/server/public/assets/{dagre-KV5264BT-WYrPwDg0.js → dagre-KV5264BT-BCxE8iyk.js} +1 -1
  80. package/payload/server/public/assets/data-CuVmW1WN.js +1 -0
  81. package/payload/server/public/assets/{diagram-5BDNPKRD-Dz2CiboN.js → diagram-5BDNPKRD-slUEdZzz.js} +1 -1
  82. package/payload/server/public/assets/{diagram-G4DWMVQ6-r8h3Ip9O.js → diagram-G4DWMVQ6-DPcraMfu.js} +1 -1
  83. package/payload/server/public/assets/{diagram-MMDJMWI5-CECcpGtr.js → diagram-MMDJMWI5-DR6luhGK.js} +1 -1
  84. package/payload/server/public/assets/{diagram-TYMM5635-CHOcAyIP.js → diagram-TYMM5635-Jap1B4wA.js} +1 -1
  85. package/payload/server/public/assets/{erDiagram-SMLLAGMA-YIqKdPbS.js → erDiagram-SMLLAGMA-DJKUs2hO.js} +1 -1
  86. package/payload/server/public/assets/file-download-4_hQmMwU.js +1 -0
  87. package/payload/server/public/assets/{flatten-DhYYI_lo.js → flatten-Cl1Bc3dR.js} +1 -1
  88. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-DaEvQWpj.js → flowDiagram-DWJPFMVM-C8W-ZZ9W.js} +1 -1
  89. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-x1hClEOB.js → ganttDiagram-T4ZO3ILL-DYCX4Xu2.js} +1 -1
  90. package/payload/server/public/assets/gitGraph-7Q5UKJZL-g7mvu6IY.js +1 -0
  91. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-C-sZsh6Z.js → gitGraphDiagram-UUTBAWPF-CZu_fpgS.js} +1 -1
  92. package/payload/server/public/assets/{graph-Uaa5heM5.js → graph-D29p1FJH.js} +3 -3
  93. package/payload/server/public/assets/graph-labels-DF3QVHkH.js +1 -0
  94. package/payload/server/public/assets/{graphlib-CNkAqm2w.js → graphlib-Bdp7TA4y.js} +1 -1
  95. package/payload/server/public/assets/info-OMHHGYJF-DZqJuIkB.js +1 -0
  96. package/payload/server/public/assets/infoDiagram-42DDH7IO-cGfGccHz.js +2 -0
  97. package/payload/server/public/assets/{isEmpty-DGhq_DBP.js → isEmpty-D1pGOD1J.js} +1 -1
  98. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-wHE-RwzZ.js → ishikawaDiagram-UXIWVN3A-B7KfIX6z.js} +1 -1
  99. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-DQB6iThz.js → journeyDiagram-VCZTEJTY-CSDwBfhF.js} +1 -1
  100. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Ck08vXSA.js → kanban-definition-6JOO6SKY-CWzcEKTr.js} +1 -1
  101. package/payload/server/public/assets/{line-Cdc2FBEU.js → line-BNQSlbYn.js} +1 -1
  102. package/payload/server/public/assets/{linear-DhtUm5H7.js → linear-BN6kGN93.js} +1 -1
  103. package/payload/server/public/assets/{mermaid-parser.core-CSYulPIL.js → mermaid-parser.core-CcFhkElq.js} +2 -2
  104. package/payload/server/public/assets/{mermaid.core-CP-hOmMh.js → mermaid.core-BsIeJ7Cc.js} +3 -3
  105. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-GxlkvV1Z.js → mindmap-definition-QFDTVHPH-CQVzj6D_.js} +1 -1
  106. package/payload/server/public/assets/operator-CQRaBNN7.js +1 -0
  107. package/payload/server/public/assets/{ordinal-CibZU3PM.js → ordinal-CBZeH4Yp.js} +1 -1
  108. package/payload/server/public/assets/packet-4T2RLAQJ-Hn8rlHpy.js +1 -0
  109. package/payload/server/public/assets/page-Dz2F3QtB.js +1 -0
  110. package/payload/server/public/assets/pie-ZZUOXDRM-BPGWVqBm.js +1 -0
  111. package/payload/server/public/assets/{pieDiagram-DEJITSTG-Di6kWh9c.js → pieDiagram-DEJITSTG-DnrQ9fyn.js} +1 -1
  112. package/payload/server/public/assets/{public-DBXfM02B.js → public-B7BQwWpP.js} +3 -3
  113. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-iNHC5bkO.js → quadrantDiagram-34T5L4WZ-BQWlCyWi.js} +1 -1
  114. package/payload/server/public/assets/radar-PYXPWWZC-DMdLrj3E.js +1 -0
  115. package/payload/server/public/assets/{reduce-Da0RBva0.js → reduce-PuPlFPRX.js} +1 -1
  116. package/payload/server/public/assets/{requirementDiagram-MS252O5E-BBlLREXo.js → requirementDiagram-MS252O5E-Du_vZhU1.js} +1 -1
  117. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-qyDkP-Ca.js → sankeyDiagram-XADWPNL6-Cf6Z8GPQ.js} +1 -1
  118. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-C0MJuS0m.js → sequenceDiagram-FGHM5R23-CS8GVol8.js} +1 -1
  119. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-aHTrlosa.js → stateDiagram-FHFEXIEX-Bv1NW2F1.js} +1 -1
  120. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BGUCxPmp.js +1 -0
  121. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-BlRZIxEp.js → timeline-definition-GMOUNBTQ-ClGYAsr0.js} +1 -1
  122. package/payload/server/public/assets/treeView-SZITEDCU-CWxofUbI.js +1 -0
  123. package/payload/server/public/assets/treemap-W4RFUUIX-Cfgb_ZG0.js +1 -0
  124. package/payload/server/public/assets/useSelectionMode-ghXuZicl.js +5 -0
  125. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-s76adysx.js → vennDiagram-DHZGUBPP-C2wTcxQT.js} +1 -1
  126. package/payload/server/public/assets/wardley-RL74JXVD-B45olYjj.js +1 -0
  127. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-xC8t2QGW.js → wardleyDiagram-NUSXRM2D-D86-ivEx.js} +1 -1
  128. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-DRcHg-Wj.js → xychartDiagram-5P7HB3ND-Ba5WAN8P.js} +1 -1
  129. package/payload/server/public/browser.html +6 -6
  130. package/payload/server/public/chat.html +9 -10
  131. package/payload/server/public/data.html +5 -5
  132. package/payload/server/public/graph.html +8 -8
  133. package/payload/server/public/index.html +8 -9
  134. package/payload/server/public/operator.html +11 -12
  135. package/payload/server/public/public.html +7 -7
  136. package/payload/server/public/sw.js +24 -0
  137. package/payload/server/server.js +637 -226
  138. package/payload/server/public/assets/AdminLoginScreens-Cw882rmm.js +0 -1
  139. package/payload/server/public/assets/AdminShell-DpWl1uoY.js +0 -1
  140. package/payload/server/public/assets/Checkbox-DAWZItdK.js +0 -1
  141. package/payload/server/public/assets/Transcript-DbK2YA3K.js +0 -1
  142. package/payload/server/public/assets/admin-nQRdn79w.js +0 -1
  143. package/payload/server/public/assets/architecture-YZFGNWBL-DqQB3T6j.js +0 -1
  144. package/payload/server/public/assets/browser-CHWZDCXt.js +0 -1
  145. package/payload/server/public/assets/channel-NZeJdLVK.js +0 -1
  146. package/payload/server/public/assets/chat-BBK6ulFy.js +0 -1
  147. package/payload/server/public/assets/chunk-426QAEUC-DFKX5l0L.js +0 -1
  148. package/payload/server/public/assets/chunk-QZHKN3VN-BWCCN0AM.js +0 -1
  149. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DPlCQCX2.js +0 -1
  150. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CqkQq74h.js +0 -1
  151. package/payload/server/public/assets/clone-CSykdD1A.js +0 -1
  152. package/payload/server/public/assets/data-33mdnHv8.js +0 -1
  153. package/payload/server/public/assets/file-download-P_qlMCg5.js +0 -1
  154. package/payload/server/public/assets/gitGraph-7Q5UKJZL-V7Tx7_eY.js +0 -1
  155. package/payload/server/public/assets/graph-labels-rG63rHvl.js +0 -1
  156. package/payload/server/public/assets/info-OMHHGYJF-D3DqVPGn.js +0 -1
  157. package/payload/server/public/assets/infoDiagram-42DDH7IO-B_O-R0vN.js +0 -2
  158. package/payload/server/public/assets/jsx-runtime-sFVKdwlP.js +0 -9
  159. package/payload/server/public/assets/operator-CiDwt5I9.js +0 -1
  160. package/payload/server/public/assets/packet-4T2RLAQJ-BY7mgCTQ.js +0 -1
  161. package/payload/server/public/assets/page-BvkaS_tu.js +0 -1
  162. package/payload/server/public/assets/pie-ZZUOXDRM-B9f6jN54.js +0 -1
  163. package/payload/server/public/assets/radar-PYXPWWZC-BKS8JOUe.js +0 -1
  164. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-V2vo4BjY.js +0 -1
  165. package/payload/server/public/assets/treeView-SZITEDCU-bIKzyIdw.js +0 -1
  166. package/payload/server/public/assets/treemap-W4RFUUIX-CQycQ4H9.js +0 -1
  167. package/payload/server/public/assets/useSelectionMode-Dky-Stnf.js +0 -5
  168. package/payload/server/public/assets/wardley-RL74JXVD-COr9o-nG.js +0 -1
  169. /package/payload/server/public/assets/{_baseFor-BFYpZGkN.js → _baseFor-brRjpUOX.js} +0 -0
  170. /package/payload/server/public/assets/{array-CYkMkqnU.js → array-BGFCBI0e.js} +0 -0
  171. /package/payload/server/public/assets/{cytoscape.esm-DqlHsaog.js → cytoscape.esm-TvRJ2tGX.js} +0 -0
  172. /package/payload/server/public/assets/{defaultLocale-Beh6XjaL.js → defaultLocale-CRZydyG6.js} +0 -0
  173. /package/payload/server/public/assets/{dist-t9p-NJH2.js → dist-Dbh7HrZX.js} +0 -0
  174. /package/payload/server/public/assets/{init-Rr1s_RiX.js → init-B8gtcn7T.js} +0 -0
  175. /package/payload/server/public/assets/{katex-pVJiI_rc.js → katex-RxgSu_dy.js} +0 -0
  176. /package/payload/server/public/assets/{path-BAQ3hXlG.js → path-DZF-JdEe.js} +0 -0
  177. /package/payload/server/public/assets/{preload-helper-B_l5jfgx.js → preload-helper-CQ36nxok.js} +0 -0
  178. /package/payload/server/public/assets/{rough.esm-nHaDi0Kw.js → rough.esm-6CnTHTkH.js} +0 -0
  179. /package/payload/server/public/assets/{src-DuPQVw-H.js → src-BoaldmnP.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.305",
3
+ "version": "0.1.307",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -1,4 +1,3 @@
1
- export declare const FABLE_MODEL = "claude-fable-5[1m]";
2
1
  export declare const OPUS_MODEL = "claude-opus-4-8[1m]";
3
2
  export declare const SONNET_MODEL = "claude-sonnet-4-6";
4
3
  export declare const HAIKU_MODEL = "claude-haiku-4-5";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAChD,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKvD,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;qEAEqE;AACrE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKtD,CAAC;AAEF;+DAC+D;AAC/D,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAChD,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIvD,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;qEAEqE;AACrE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAItD,CAAC;AAEF;+DAC+D;AAC/D,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -3,18 +3,16 @@
3
3
  // Templates, docs, and skills reference these values as strings;
4
4
  // all TypeScript consumers import from here.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MODEL_DISPLAY_NAMES = exports.MODEL_CONTEXT_WINDOW = exports.HAIKU_MODEL = exports.SONNET_MODEL = exports.OPUS_MODEL = exports.FABLE_MODEL = void 0;
6
+ exports.MODEL_DISPLAY_NAMES = exports.MODEL_CONTEXT_WINDOW = exports.HAIKU_MODEL = exports.SONNET_MODEL = exports.OPUS_MODEL = void 0;
7
7
  exports.contextWindow = contextWindow;
8
8
  exports.modelDisplayName = modelDisplayName;
9
- // Fable and Opus default to the 1M-context variant ([1m] is Claude Code's
9
+ // Opus defaults to the 1M-context variant ([1m] is Claude Code's
10
10
  // context-extension suffix, valid in settings.json "model" and agent
11
11
  // frontmatter); Sonnet/Haiku stay on the standard 200k window.
12
- exports.FABLE_MODEL = "claude-fable-5[1m]";
13
12
  exports.OPUS_MODEL = "claude-opus-4-8[1m]";
14
13
  exports.SONNET_MODEL = "claude-sonnet-4-6";
15
14
  exports.HAIKU_MODEL = "claude-haiku-4-5";
16
15
  exports.MODEL_CONTEXT_WINDOW = {
17
- [exports.FABLE_MODEL]: 1_000_000,
18
16
  [exports.OPUS_MODEL]: 1_000_000,
19
17
  [exports.SONNET_MODEL]: 200_000,
20
18
  [exports.HAIKU_MODEL]: 200_000,
@@ -27,7 +25,6 @@ function contextWindow(model) {
27
25
  * native-CC model dropdown (Task 820). A lever id outside this map renders
28
26
  * with its raw id as the label (the composer's append-fallback). */
29
27
  exports.MODEL_DISPLAY_NAMES = {
30
- [exports.FABLE_MODEL]: "Fable 5 (1M context)",
31
28
  [exports.OPUS_MODEL]: "Opus 4.8 (1M context)",
32
29
  [exports.SONNET_MODEL]: "Sonnet 4.6",
33
30
  [exports.HAIKU_MODEL]: "Haiku 4.5",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,iEAAiE;AACjE,6CAA6C;;;AAkB7C,sCAEC;AAcD,4CAEC;AAlCD,0EAA0E;AAC1E,qEAAqE;AACrE,+DAA+D;AAClD,QAAA,WAAW,GAAG,oBAAoB,CAAC;AACnC,QAAA,UAAU,GAAG,qBAAqB,CAAC;AACnC,QAAA,YAAY,GAAG,mBAAmB,CAAC;AACnC,QAAA,WAAW,GAAG,kBAAkB,CAAC;AAEjC,QAAA,oBAAoB,GAA2B;IAC1D,CAAC,mBAAW,CAAC,EAAE,SAAS;IACxB,CAAC,kBAAU,CAAC,EAAE,SAAS;IACvB,CAAC,oBAAY,CAAC,EAAE,OAAO;IACvB,CAAC,mBAAW,CAAC,EAAE,OAAO;CACvB,CAAC;AAEF,wEAAwE;AACxE,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,4BAAoB,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;AAChD,CAAC;AAED;;qEAEqE;AACxD,QAAA,mBAAmB,GAA2B;IACzD,CAAC,mBAAW,CAAC,EAAE,sBAAsB;IACrC,CAAC,kBAAU,CAAC,EAAE,uBAAuB;IACrC,CAAC,oBAAY,CAAC,EAAE,YAAY;IAC5B,CAAC,mBAAW,CAAC,EAAE,WAAW;CAC3B,CAAC;AAEF;+DAC+D;AAC/D,SAAgB,gBAAgB,CAAC,EAAU;IACzC,OAAO,2BAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,iEAAiE;AACjE,6CAA6C;;;AAgB7C,sCAEC;AAaD,4CAEC;AA/BD,iEAAiE;AACjE,qEAAqE;AACrE,+DAA+D;AAClD,QAAA,UAAU,GAAG,qBAAqB,CAAC;AACnC,QAAA,YAAY,GAAG,mBAAmB,CAAC;AACnC,QAAA,WAAW,GAAG,kBAAkB,CAAC;AAEjC,QAAA,oBAAoB,GAA2B;IAC1D,CAAC,kBAAU,CAAC,EAAE,SAAS;IACvB,CAAC,oBAAY,CAAC,EAAE,OAAO;IACvB,CAAC,mBAAW,CAAC,EAAE,OAAO;CACvB,CAAC;AAEF,wEAAwE;AACxE,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,4BAAoB,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;AAChD,CAAC;AAED;;qEAEqE;AACxD,QAAA,mBAAmB,GAA2B;IACzD,CAAC,kBAAU,CAAC,EAAE,uBAAuB;IACrC,CAAC,oBAAY,CAAC,EAAE,YAAY;IAC5B,CAAC,mBAAW,CAAC,EAAE,WAAW;CAC3B,CAAC;AAEF;+DAC+D;AAC/D,SAAgB,gBAAgB,CAAC,EAAU;IACzC,OAAO,2BAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC"}
@@ -2,16 +2,14 @@
2
2
  // Templates, docs, and skills reference these values as strings;
3
3
  // all TypeScript consumers import from here.
4
4
 
5
- // Fable and Opus default to the 1M-context variant ([1m] is Claude Code's
5
+ // Opus defaults to the 1M-context variant ([1m] is Claude Code's
6
6
  // context-extension suffix, valid in settings.json "model" and agent
7
7
  // frontmatter); Sonnet/Haiku stay on the standard 200k window.
8
- export const FABLE_MODEL = "claude-fable-5[1m]";
9
8
  export const OPUS_MODEL = "claude-opus-4-8[1m]";
10
9
  export const SONNET_MODEL = "claude-sonnet-4-6";
11
10
  export const HAIKU_MODEL = "claude-haiku-4-5";
12
11
 
13
12
  export const MODEL_CONTEXT_WINDOW: Record<string, number> = {
14
- [FABLE_MODEL]: 1_000_000,
15
13
  [OPUS_MODEL]: 1_000_000,
16
14
  [SONNET_MODEL]: 200_000,
17
15
  [HAIKU_MODEL]: 200_000,
@@ -26,7 +24,6 @@ export function contextWindow(model: string): number {
26
24
  * native-CC model dropdown (Task 820). A lever id outside this map renders
27
25
  * with its raw id as the label (the composer's append-fallback). */
28
26
  export const MODEL_DISPLAY_NAMES: Record<string, string> = {
29
- [FABLE_MODEL]: "Fable 5 (1M context)",
30
27
  [OPUS_MODEL]: "Opus 4.8 (1M context)",
31
28
  [SONNET_MODEL]: "Sonnet 4.6",
32
29
  [HAIKU_MODEL]: "Haiku 4.5",
@@ -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:1029bfc516fc6bed4265dcaffd6068d7ac72674d4e066c15c64e8c19df744b5e
4
+ content-hash: sha256:24fdd4305e1a509669173cd92e915199878082f69b436987e0a8e89f0cf793c9
5
5
  brand: maxy-code
6
6
  product-name: Maxy
7
7
  ---
@@ -41,6 +41,19 @@ Because Maxy runs locally, your data stays in your home. It never passes through
41
41
 
42
42
  **Public (visitors)** — anyone who reaches your public URL gets the public agent. It handles product enquiries, collects prospect details, and answers questions about your business. It cannot read or write your private data.
43
43
 
44
+ ## Install the Dashboard as an App
45
+
46
+ The admin dashboard and the chat dashboard can be installed as standalone apps, so they open in their own window with their own icon instead of a browser tab. Installing changes nothing about how Maxy works — it is the same dashboard, just launched like any other app.
47
+
48
+ **On a phone or tablet:**
49
+
50
+ - **iPhone or iPad (Safari):** open the dashboard, tap the Share button, then **Add to Home Screen**. A Maxy icon appears on your home screen; tapping it opens the dashboard full-screen.
51
+ - **Android (Chrome):** open the dashboard, then either tap the **Install** prompt Chrome offers, or open the browser menu and choose **Install app** / **Add to Home screen**.
52
+
53
+ **On a computer (Chrome or Edge):** open the dashboard, then click the **Install** icon at the right of the address bar (or open the browser menu and choose **Install**). The dashboard opens in its own window from then on.
54
+
55
+ The admin dashboard and the chat dashboard install as two separate apps, so you can keep both on your home screen or dock. Each one opens straight to its own screen.
56
+
44
57
  ## First Power-On (New Device)
45
58
 
46
59
  If your device has no WiFi configured and no ethernet cable connected, it creates a temporary WiFi network for setup:
@@ -2317,12 +2330,30 @@ a web/transient doc with no persisted file is `not-downloadable reason=no-persis
2317
2330
  **`/data` File panel — refresh and reload-survival.** The panel listing is a
2318
2331
  snapshot from its last fetch, so a file an agent writes (or an upload/delete
2319
2332
  elsewhere) leaves stale rows and timestamps until something re-fetches. A
2320
- **Refresh** button beside Upload re-fetches the current folder in place (fresh
2321
- `mtime`s, no browser reload). The current directory is mirrored into the URL
2322
- hash (`/data#path=<rel>`), so a browser reload restores that folder instead of
2323
- snapping back to the data root; the hash never reaches the server and `/data`
2324
- has no client router, so the channel is isolated. `path=` is cleared at the
2325
- root for a clean URL.
2333
+ **Refresh** icon inside the search bar (beside Upload) re-fetches the current
2334
+ folder in place (fresh `mtime`s, no browser reload). The current directory is
2335
+ mirrored into the URL hash (`/data#path=<rel>`), so a browser reload restores
2336
+ that folder instead of snapping back to the data root; the hash never reaches
2337
+ the server and `/data` has no client router, so the channel is isolated.
2338
+ `path=` is cleared at the root for a clean URL.
2339
+
2340
+ **`/data` operator surface.** `/data` mounts the operator
2341
+ `HeaderMenu` (logo-left / name-centre / burger-right; flyout = Chat / Data /
2342
+ Log out) above the toolbar — the burger's Chat item returns to `/`, replacing
2343
+ the former standalone Home button. The search bar spans the full toolbar width
2344
+ with Refresh and Upload as inline icons at every width (the prior `≤600px`
2345
+ ResizeObserver collapse is removed). File rows are two stacked full-width lines
2346
+ (name, then `size · modified`) with no file-type icon, no hover download icon,
2347
+ and no per-row delete button; a folder row keeps its glyph and navigates on tap,
2348
+ a file row downloads on tap. **Long-press** a file row to enter multi-select:
2349
+ every file row shows a selection indicator, the search bar becomes a Cancel
2350
+ control, and a fixed bottom bar offers **Share / Download / Delete** over the
2351
+ selection. Delete removes the non-protected files and keeps protected ones
2352
+ (`N protected file(s) kept`); the listing carries a per-entry `protected` flag
2353
+ from `isProtectedFromDeletion` so the UI never re-derives the rule. Share uses
2354
+ the Web Share API and is disabled where unavailable. Signals:
2355
+ `[data-ui] op=mount header=operator home=absent`, `op=select-enter`,
2356
+ `op=select-exit reason=<cancel|action>`, `op=share supported=<bool> count=<n>`.
2326
2357
 
2327
2358
  **`/data` search — locate-in-files link and clear button.** Every
2328
2359
  search hit is a `:FileArtifact` backed by a physical file, so each result card
@@ -2449,11 +2480,14 @@ authoritative. This section names the surfaces and what backs each.
2449
2480
 
2450
2481
  > **Admin variant only.** Every surface below belongs to the `admin` shell
2451
2482
  > variant. The **operator** variant (`operator.<host>`) mounts no sidebar at
2452
- > all: its dashboard collapsed to two surfaces the persistent admin webchat
2453
- > at `/` and the data browser at `/data` with a three-item header (Chat,
2454
- > Data, Log out) and a single-column `.platform.platform-operator` grid. The
2455
- > operator never sees the sessions list, the WhatsApp reader, or the nav rows.
2456
- > The operator surface is documented in full in the internal doc
2483
+ > all: its dashboard is the persistent admin webchat at `/` and the data
2484
+ > browser at `/data`, plus a read-only **Conversations** reader reached from a
2485
+ > dynamic burger item header order Chat Conversations → Data → Log out, in
2486
+ > a single-column `.platform.platform-operator` grid. The operator never sees
2487
+ > the sessions list or the nav rows; the Conversations reader lists the agent's
2488
+ > inbound channel conversations (WhatsApp, Telegram, public webchat) read-only
2489
+ > via the same admin-gated reader routes, never the operator's own session. The
2490
+ > operator surface is documented in full in the internal doc
2457
2491
  > `maxy-code/.docs/operator-dashboard.md`.
2458
2492
 
2459
2493
  | Surface | What it does | Backed by |
@@ -99,12 +99,30 @@ a web/transient doc with no persisted file is `not-downloadable reason=no-persis
99
99
  **`/data` File panel — refresh and reload-survival.** The panel listing is a
100
100
  snapshot from its last fetch, so a file an agent writes (or an upload/delete
101
101
  elsewhere) leaves stale rows and timestamps until something re-fetches. A
102
- **Refresh** button beside Upload re-fetches the current folder in place (fresh
103
- `mtime`s, no browser reload). The current directory is mirrored into the URL
104
- hash (`/data#path=<rel>`), so a browser reload restores that folder instead of
105
- snapping back to the data root; the hash never reaches the server and `/data`
106
- has no client router, so the channel is isolated. `path=` is cleared at the
107
- root for a clean URL.
102
+ **Refresh** icon inside the search bar (beside Upload) re-fetches the current
103
+ folder in place (fresh `mtime`s, no browser reload). The current directory is
104
+ mirrored into the URL hash (`/data#path=<rel>`), so a browser reload restores
105
+ that folder instead of snapping back to the data root; the hash never reaches
106
+ the server and `/data` has no client router, so the channel is isolated.
107
+ `path=` is cleared at the root for a clean URL.
108
+
109
+ **`/data` operator surface.** `/data` mounts the operator
110
+ `HeaderMenu` (logo-left / name-centre / burger-right; flyout = Chat / Data /
111
+ Log out) above the toolbar — the burger's Chat item returns to `/`, replacing
112
+ the former standalone Home button. The search bar spans the full toolbar width
113
+ with Refresh and Upload as inline icons at every width (the prior `≤600px`
114
+ ResizeObserver collapse is removed). File rows are two stacked full-width lines
115
+ (name, then `size · modified`) with no file-type icon, no hover download icon,
116
+ and no per-row delete button; a folder row keeps its glyph and navigates on tap,
117
+ a file row downloads on tap. **Long-press** a file row to enter multi-select:
118
+ every file row shows a selection indicator, the search bar becomes a Cancel
119
+ control, and a fixed bottom bar offers **Share / Download / Delete** over the
120
+ selection. Delete removes the non-protected files and keeps protected ones
121
+ (`N protected file(s) kept`); the listing carries a per-entry `protected` flag
122
+ from `isProtectedFromDeletion` so the UI never re-derives the rule. Share uses
123
+ the Web Share API and is disabled where unavailable. Signals:
124
+ `[data-ui] op=mount header=operator home=absent`, `op=select-enter`,
125
+ `op=select-exit reason=<cancel|action>`, `op=share supported=<bool> count=<n>`.
108
126
 
109
127
  **`/data` search — locate-in-files link and clear button.** Every
110
128
  search hit is a `:FileArtifact` backed by a physical file, so each result card
@@ -231,11 +249,14 @@ authoritative. This section names the surfaces and what backs each.
231
249
 
232
250
  > **Admin variant only.** Every surface below belongs to the `admin` shell
233
251
  > variant. The **operator** variant (`operator.<host>`) mounts no sidebar at
234
- > all: its dashboard collapsed to two surfaces the persistent admin webchat
235
- > at `/` and the data browser at `/data` with a three-item header (Chat,
236
- > Data, Log out) and a single-column `.platform.platform-operator` grid. The
237
- > operator never sees the sessions list, the WhatsApp reader, or the nav rows.
238
- > The operator surface is documented in full in the internal doc
252
+ > all: its dashboard is the persistent admin webchat at `/` and the data
253
+ > browser at `/data`, plus a read-only **Conversations** reader reached from a
254
+ > dynamic burger item header order Chat Conversations → Data → Log out, in
255
+ > a single-column `.platform.platform-operator` grid. The operator never sees
256
+ > the sessions list or the nav rows; the Conversations reader lists the agent's
257
+ > inbound channel conversations (WhatsApp, Telegram, public webchat) read-only
258
+ > via the same admin-gated reader routes, never the operator's own session. The
259
+ > operator surface is documented in full in the internal doc
239
260
  > `maxy-code/.docs/operator-dashboard.md`.
240
261
 
241
262
  | Surface | What it does | Backed by |
@@ -14,6 +14,19 @@ Because {{productName}} runs locally, your data stays in your home. It never pas
14
14
 
15
15
  **Public (visitors)** — anyone who reaches your public URL gets the public agent. It handles product enquiries, collects prospect details, and answers questions about your business. It cannot read or write your private data.
16
16
 
17
+ ## Install the Dashboard as an App
18
+
19
+ The admin dashboard and the chat dashboard can be installed as standalone apps, so they open in their own window with their own icon instead of a browser tab. Installing changes nothing about how {{productName}} works — it is the same dashboard, just launched like any other app.
20
+
21
+ **On a phone or tablet:**
22
+
23
+ - **iPhone or iPad (Safari):** open the dashboard, tap the Share button, then **Add to Home Screen**. A {{productName}} icon appears on your home screen; tapping it opens the dashboard full-screen.
24
+ - **Android (Chrome):** open the dashboard, then either tap the **Install** prompt Chrome offers, or open the browser menu and choose **Install app** / **Add to Home screen**.
25
+
26
+ **On a computer (Chrome or Edge):** open the dashboard, then click the **Install** icon at the right of the address bar (or open the browser menu and choose **Install**). The dashboard opens in its own window from then on.
27
+
28
+ The admin dashboard and the chat dashboard install as two separate apps, so you can keep both on your home screen or dock. Each one opens straight to its own screen.
29
+
17
30
  ## First Power-On (New Device)
18
31
 
19
32
  If your device has no WiFi configured and no ethernet cable connected, it creates a temporary WiFi network for setup:
@@ -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;AAoND;;;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,CA6/DpD"}
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;AAoND;;;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,CA4gEpD"}
@@ -1625,6 +1625,14 @@ export function buildHttpApp(deps) {
1625
1625
  const personId = typeof body.personId === 'string' && body.personId.length > 0 && body.personId.length <= 128
1626
1626
  ? body.personId
1627
1627
  : undefined;
1628
+ // Task 865 — the authenticated admin's AdminUser.userId, threaded by the UI
1629
+ // from the validated PIN session (never message content). Shape-validated
1630
+ // the same way as personId; written into the classification sidecar so the
1631
+ // Sessions panel resolves the admin's display name. Absent on every
1632
+ // non-admin-webchat spawn.
1633
+ const adminUserId = typeof body.adminUserId === 'string' && body.adminUserId.length > 0 && body.adminUserId.length <= 128
1634
+ ? body.adminUserId
1635
+ : undefined;
1628
1636
  // Task 682 — per-session userId override. Server-resolved by the UI from the
1629
1637
  // authoritative users.json/account.json (never message content) and shape-
1630
1638
  // validated here the same way as personId. Absent for owner self-phone and
@@ -1996,6 +2004,12 @@ export function buildHttpApp(deps) {
1996
2004
  specialist: null,
1997
2005
  scopeUnitToken: unitToken,
1998
2006
  bridgeIds: [],
2007
+ // Task 863 — visitor identity from the rc-spawn body (public
2008
+ // path); null for channel-admin sessions, which carry none.
2009
+ personId: personId ?? null,
2010
+ // Task 865 — admin-webchat author identity from the rc-spawn body;
2011
+ // null for public and one-shot sessions, which carry none.
2012
+ adminUserId: adminUserId ?? null,
1999
2013
  }, deps.logger);
2000
2014
  deps.watcher.refreshSidecar?.(sessionId);
2001
2015
  }