@rubytech/create-maxy-code 0.1.545 → 0.1.547

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 (260) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/lib/mcp-spawn-tee/dist/index.js +11 -0
  3. package/payload/platform/lib/mcp-spawn-tee/dist/index.js.map +1 -1
  4. package/payload/platform/lib/mcp-spawn-tee/src/__tests__/spawn-tee.test.ts +39 -0
  5. package/payload/platform/lib/mcp-spawn-tee/src/index.ts +12 -0
  6. package/payload/platform/plugins/admin/lib/mcp-spawn-tee/index.js +11 -0
  7. package/payload/platform/plugins/admin/mcp/dist/index.js +32 -16
  8. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  9. package/payload/platform/plugins/admin/mcp/dist/tools/account-default-agent.d.ts +16 -0
  10. package/payload/platform/plugins/admin/mcp/dist/tools/account-default-agent.d.ts.map +1 -0
  11. package/payload/platform/plugins/admin/mcp/dist/tools/account-default-agent.js +21 -0
  12. package/payload/platform/plugins/admin/mcp/dist/tools/account-default-agent.js.map +1 -0
  13. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +38 -25
  14. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +9 -0
  15. package/payload/platform/plugins/aeo/lib/mcp-spawn-tee/index.js +11 -0
  16. package/payload/platform/plugins/browser/lib/mcp-spawn-tee/index.js +11 -0
  17. package/payload/platform/plugins/connector/lib/mcp-spawn-tee/index.js +11 -0
  18. package/payload/platform/plugins/contacts/lib/mcp-spawn-tee/index.js +11 -0
  19. package/payload/platform/plugins/docs/references/admin-ui.md +23 -0
  20. package/payload/platform/plugins/docs/references/channel-wake-and-prompt.md +14 -24
  21. package/payload/platform/plugins/email/lib/mcp-spawn-tee/index.js +11 -0
  22. package/payload/platform/plugins/filesystem/lib/mcp-spawn-tee/index.js +11 -0
  23. package/payload/platform/plugins/google/lib/mcp-spawn-tee/index.js +11 -0
  24. package/payload/platform/plugins/graph-viewer/lib/mcp-spawn-tee/index.js +11 -0
  25. package/payload/platform/plugins/ledger/lib/mcp-spawn-tee/index.js +11 -0
  26. package/payload/platform/plugins/memory/lib/mcp-spawn-tee/index.js +11 -0
  27. package/payload/platform/plugins/outlook/lib/mcp-spawn-tee/index.js +11 -0
  28. package/payload/platform/plugins/quickbooks/lib/mcp-spawn-tee/index.js +11 -0
  29. package/payload/platform/plugins/replicate/lib/mcp-spawn-tee/index.js +11 -0
  30. package/payload/platform/plugins/scheduling/lib/mcp-spawn-tee/index.js +11 -0
  31. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/routine-run.test.js +109 -1
  32. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/routine-run.test.js.map +1 -1
  33. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.d.ts +31 -0
  34. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.d.ts.map +1 -1
  35. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.js +116 -2
  36. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.js.map +1 -1
  37. package/payload/platform/plugins/scheduling/mcp/dist/scripts/reconcile-bookings.js +3 -2
  38. package/payload/platform/plugins/scheduling/mcp/dist/scripts/reconcile-bookings.js.map +1 -1
  39. package/payload/platform/plugins/storage-broker/lib/mcp-spawn-tee/index.js +11 -0
  40. package/payload/platform/plugins/telegram/lib/mcp-spawn-tee/index.js +11 -0
  41. package/payload/platform/plugins/url-get/lib/mcp-spawn-tee/index.js +11 -0
  42. package/payload/platform/plugins/voice-mirror/lib/mcp-spawn-tee/index.js +11 -0
  43. package/payload/platform/plugins/whatsapp/PLUGIN.md +0 -6
  44. package/payload/platform/plugins/whatsapp/lib/mcp-spawn-tee/index.js +11 -0
  45. package/payload/platform/plugins/whatsapp/mcp/dist/index.js +2 -34
  46. package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
  47. package/payload/platform/plugins/work/lib/mcp-spawn-tee/index.js +11 -0
  48. package/payload/platform/plugins/workflows/lib/mcp-spawn-tee/index.js +11 -0
  49. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  50. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +0 -1
  51. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  52. package/payload/platform/services/claude-session-manager/dist/channel-mcp.d.ts +5 -0
  53. package/payload/platform/services/claude-session-manager/dist/channel-mcp.d.ts.map +1 -1
  54. package/payload/platform/services/claude-session-manager/dist/channel-mcp.js +16 -2
  55. package/payload/platform/services/claude-session-manager/dist/channel-mcp.js.map +1 -1
  56. package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.d.ts +34 -0
  57. package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.d.ts.map +1 -0
  58. package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.js +41 -0
  59. package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.js.map +1 -0
  60. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  61. package/payload/platform/services/claude-session-manager/dist/http-server.js +26 -1
  62. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  63. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  64. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +11 -0
  65. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  66. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts +5 -0
  67. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts.map +1 -1
  68. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js +16 -2
  69. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js.map +1 -1
  70. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts +6 -0
  71. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts.map +1 -1
  72. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js +17 -2
  73. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js.map +1 -1
  74. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts +5 -0
  75. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts.map +1 -1
  76. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js +16 -2
  77. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js.map +1 -1
  78. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +45 -18
  79. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  80. package/payload/platform/services/whatsapp-channel/dist/notification.js +25 -20
  81. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  82. package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
  83. package/payload/platform/services/whatsapp-channel/dist/server.js +69 -13
  84. package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
  85. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts +15 -5
  86. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts.map +1 -1
  87. package/payload/platform/services/whatsapp-channel/dist/targets.js +9 -5
  88. package/payload/platform/services/whatsapp-channel/dist/targets.js.map +1 -1
  89. package/payload/server/{chunk-CVUSUNXM.js → chunk-MHNHG3GL.js} +2 -4
  90. package/payload/server/{chunk-X2RRMHVV.js → chunk-Q33KT7YJ.js} +1 -1
  91. package/payload/server/{chunk-DU7GPDJJ.js → chunk-WGMIUXXG.js} +4 -0
  92. package/payload/server/{manager-TI2YJQVZ.js → manager-W32LVPCT.js} +2 -2
  93. package/payload/server/maxy-edge.js +2 -2
  94. package/payload/server/public/activity.html +5 -5
  95. package/payload/server/public/agents.html +4 -4
  96. package/payload/server/public/assets/{AdminLoginScreens-BGKtDqAk.js → AdminLoginScreens-Bjcs9ta9.js} +1 -1
  97. package/payload/server/public/assets/AdminLoginScreens-Bjcs9ta9.js.br +0 -0
  98. package/payload/server/public/assets/AdminLoginScreens-Bjcs9ta9.js.gz +0 -0
  99. package/payload/server/public/assets/{AdminShell-DnfgsAQl.js → AdminShell-DVBAMUCy.js} +1 -1
  100. package/payload/server/public/assets/AdminShell-DVBAMUCy.js.br +0 -0
  101. package/payload/server/public/assets/{AdminShell-DnfgsAQl.js.gz → AdminShell-DVBAMUCy.js.gz} +0 -0
  102. package/payload/server/public/assets/{activity-ByJSut0Q.js → activity-C8E8-EwQ.js} +1 -1
  103. package/payload/server/public/assets/activity-C8E8-EwQ.js.br +0 -0
  104. package/payload/server/public/assets/activity-C8E8-EwQ.js.gz +0 -0
  105. package/payload/server/public/assets/{admin-CkeJO6kA.js → admin-CeWAlpRS.js} +1 -1
  106. package/payload/server/public/assets/admin-CeWAlpRS.js.br +0 -0
  107. package/payload/server/public/assets/admin-CeWAlpRS.js.gz +0 -0
  108. package/payload/server/public/assets/{agents-D8phtRX5.js → agents-DuN92iFb.js} +1 -1
  109. package/payload/server/public/assets/agents-DuN92iFb.js.br +0 -0
  110. package/payload/server/public/assets/agents-DuN92iFb.js.gz +0 -0
  111. package/payload/server/public/assets/{browser-DQSTjdom.js → browser-BxebdKbh.js} +1 -1
  112. package/payload/server/public/assets/browser-BxebdKbh.js.br +0 -0
  113. package/payload/server/public/assets/browser-BxebdKbh.js.gz +0 -0
  114. package/payload/server/public/assets/{calendar-DFJu1XjP.js → calendar-BtFZQ5Np.js} +1 -1
  115. package/payload/server/public/assets/calendar-BtFZQ5Np.js.br +0 -0
  116. package/payload/server/public/assets/calendar-BtFZQ5Np.js.gz +0 -0
  117. package/payload/server/public/assets/chat-CGIwynaH.js +1 -0
  118. package/payload/server/public/assets/chat-CGIwynaH.js.br +3 -0
  119. package/payload/server/public/assets/chat-CGIwynaH.js.gz +0 -0
  120. package/payload/server/public/assets/chevron-left-DaNP1zDb.js +1 -0
  121. package/payload/server/public/assets/chevron-left-DaNP1zDb.js.br +0 -0
  122. package/payload/server/public/assets/chevron-right-BbbuTUnt.js +1 -0
  123. package/payload/server/public/assets/chevron-right-BbbuTUnt.js.br +0 -0
  124. package/payload/server/public/assets/clock-CfDdatjp.js +1 -0
  125. package/payload/server/public/assets/clock-CfDdatjp.js.br +0 -0
  126. package/payload/server/public/assets/clock-CfDdatjp.js.gz +0 -0
  127. package/payload/server/public/assets/{copy-lFFhXRGk.js → copy-DCDHXq3O.js} +1 -1
  128. package/payload/server/public/assets/copy-DCDHXq3O.js.br +0 -0
  129. package/payload/server/public/assets/copy-DCDHXq3O.js.gz +0 -0
  130. package/payload/server/public/assets/data-BchSWOju.js +1 -0
  131. package/payload/server/public/assets/data-BchSWOju.js.br +1 -0
  132. package/payload/server/public/assets/data-BchSWOju.js.gz +0 -0
  133. package/payload/server/public/assets/{file-text-D2Y-bkNy.js → file-text-zQgEQWCF.js} +1 -1
  134. package/payload/server/public/assets/file-text-zQgEQWCF.js.br +0 -0
  135. package/payload/server/public/assets/file-text-zQgEQWCF.js.gz +0 -0
  136. package/payload/server/public/assets/{graph-C-3yN6JD.js → graph-CFCEh_YI.js} +1 -1
  137. package/payload/server/public/assets/graph-CFCEh_YI.js.br +0 -0
  138. package/payload/server/public/assets/graph-CFCEh_YI.js.gz +0 -0
  139. package/payload/server/public/assets/{graph-labels-DiaPLP27.js → graph-labels-CA1UcDuS.js} +1 -1
  140. package/payload/server/public/assets/graph-labels-CA1UcDuS.js.br +0 -0
  141. package/payload/server/public/assets/graph-labels-CA1UcDuS.js.gz +0 -0
  142. package/payload/server/public/assets/{operator-KuGPvSa9.js → operator-hFXPDc2X.js} +1 -1
  143. package/payload/server/public/assets/operator-hFXPDc2X.js.br +0 -0
  144. package/payload/server/public/assets/operator-hFXPDc2X.js.gz +0 -0
  145. package/payload/server/public/assets/{page-BhGeFXWA.js → page-C8jyPH_3.js} +1 -1
  146. package/payload/server/public/assets/page-C8jyPH_3.js.br +0 -0
  147. package/payload/server/public/assets/page-C8jyPH_3.js.gz +0 -0
  148. package/payload/server/public/assets/{page-EnbVC-yM.js → page-ne7I_r9L.js} +1 -1
  149. package/payload/server/public/assets/page-ne7I_r9L.js.br +0 -0
  150. package/payload/server/public/assets/page-ne7I_r9L.js.gz +0 -0
  151. package/payload/server/public/assets/play-Ep0SZTbr.js +1 -0
  152. package/payload/server/public/assets/play-Ep0SZTbr.js.br +0 -0
  153. package/payload/server/public/assets/play-Ep0SZTbr.js.gz +0 -0
  154. package/payload/server/public/assets/{public-CdSgMNC7.js → public-BgnqjAal.js} +1 -1
  155. package/payload/server/public/assets/public-BgnqjAal.js.br +0 -0
  156. package/payload/server/public/assets/public-BgnqjAal.js.gz +0 -0
  157. package/payload/server/public/assets/{rotate-ccw-rTRuTqei.js → rotate-ccw-DfJWjXAg.js} +1 -1
  158. package/payload/server/public/assets/rotate-ccw-DfJWjXAg.js.br +0 -0
  159. package/payload/server/public/assets/rotate-ccw-DfJWjXAg.js.gz +0 -0
  160. package/payload/server/public/assets/routines-Ds0yz7_C.js +2 -0
  161. package/payload/server/public/assets/routines-Ds0yz7_C.js.br +0 -0
  162. package/payload/server/public/assets/routines-Ds0yz7_C.js.gz +0 -0
  163. package/payload/server/public/assets/{skills-DFWtZNkW.js → skills-D-6EbgfP.js} +1 -1
  164. package/payload/server/public/assets/skills-D-6EbgfP.js.br +0 -0
  165. package/payload/server/public/assets/skills-D-6EbgfP.js.gz +0 -0
  166. package/payload/server/public/assets/{tasks-B94AuKSy.js → tasks-DnN5Fyds.js} +1 -1
  167. package/payload/server/public/assets/tasks-DnN5Fyds.js.br +0 -0
  168. package/payload/server/public/assets/tasks-DnN5Fyds.js.gz +0 -0
  169. package/payload/server/public/assets/{triangle-alert-DtWUg6jR.js → triangle-alert-eh9UOKDT.js} +1 -1
  170. package/payload/server/public/assets/triangle-alert-eh9UOKDT.js.br +0 -0
  171. package/payload/server/public/assets/triangle-alert-eh9UOKDT.js.gz +0 -0
  172. package/payload/server/public/assets/{useCopyFeedback-CjKYO-Qf.js → useCopyFeedback-Bz9OJHBb.js} +1 -1
  173. package/payload/server/public/assets/useCopyFeedback-Bz9OJHBb.js.br +0 -0
  174. package/payload/server/public/assets/useCopyFeedback-Bz9OJHBb.js.gz +0 -0
  175. package/payload/server/public/assets/{useMediaQuery-DlOWP56H.css → useMediaQuery-CNxsjKZp.css} +1 -1
  176. package/payload/server/public/assets/useMediaQuery-CNxsjKZp.css.br +0 -0
  177. package/payload/server/public/assets/{useMediaQuery-DlOWP56H.css.gz → useMediaQuery-CNxsjKZp.css.gz} +0 -0
  178. package/payload/server/public/assets/{useVoiceRecorder-BKFAYuzz.js → useVoiceRecorder-BaDpMYxX.js} +1 -1
  179. package/payload/server/public/assets/useVoiceRecorder-BaDpMYxX.js.br +0 -0
  180. package/payload/server/public/assets/useVoiceRecorder-BaDpMYxX.js.gz +0 -0
  181. package/payload/server/public/assets/{wrench-Ct4kf-uv.js → wrench-BO-l46rF.js} +1 -1
  182. package/payload/server/public/assets/wrench-BO-l46rF.js.br +0 -0
  183. package/payload/server/public/assets/wrench-BO-l46rF.js.gz +0 -0
  184. package/payload/server/public/browser.html +4 -4
  185. package/payload/server/public/calendar.html +8 -8
  186. package/payload/server/public/chat.html +13 -13
  187. package/payload/server/public/data.html +11 -11
  188. package/payload/server/public/graph.html +9 -9
  189. package/payload/server/public/index.html +14 -14
  190. package/payload/server/public/operator.html +14 -14
  191. package/payload/server/public/public.html +13 -13
  192. package/payload/server/public/routines.html +6 -6
  193. package/payload/server/public/skills.html +5 -5
  194. package/payload/server/public/tasks.html +6 -6
  195. package/payload/server/server.js +82 -355
  196. package/payload/server/public/assets/AdminLoginScreens-BGKtDqAk.js.br +0 -0
  197. package/payload/server/public/assets/AdminLoginScreens-BGKtDqAk.js.gz +0 -0
  198. package/payload/server/public/assets/AdminShell-DnfgsAQl.js.br +0 -0
  199. package/payload/server/public/assets/activity-ByJSut0Q.js.br +0 -0
  200. package/payload/server/public/assets/activity-ByJSut0Q.js.gz +0 -0
  201. package/payload/server/public/assets/admin-CkeJO6kA.js.br +0 -0
  202. package/payload/server/public/assets/admin-CkeJO6kA.js.gz +0 -0
  203. package/payload/server/public/assets/agents-D8phtRX5.js.br +0 -0
  204. package/payload/server/public/assets/agents-D8phtRX5.js.gz +0 -0
  205. package/payload/server/public/assets/browser-DQSTjdom.js.br +0 -0
  206. package/payload/server/public/assets/browser-DQSTjdom.js.gz +0 -0
  207. package/payload/server/public/assets/calendar-DFJu1XjP.js.br +0 -0
  208. package/payload/server/public/assets/calendar-DFJu1XjP.js.gz +0 -0
  209. package/payload/server/public/assets/chat-DUqtIsOt.js +0 -1
  210. package/payload/server/public/assets/chat-DUqtIsOt.js.br +0 -0
  211. package/payload/server/public/assets/chat-DUqtIsOt.js.gz +0 -0
  212. package/payload/server/public/assets/chevron-left-DFK18xVX.js +0 -1
  213. package/payload/server/public/assets/chevron-left-DFK18xVX.js.br +0 -0
  214. package/payload/server/public/assets/chevron-right-DJ4oaHoN.js +0 -1
  215. package/payload/server/public/assets/chevron-right-DJ4oaHoN.js.br +0 -0
  216. package/payload/server/public/assets/clock-wHIan2DW.js +0 -1
  217. package/payload/server/public/assets/clock-wHIan2DW.js.br +0 -0
  218. package/payload/server/public/assets/copy-lFFhXRGk.js.br +0 -0
  219. package/payload/server/public/assets/copy-lFFhXRGk.js.gz +0 -0
  220. package/payload/server/public/assets/data-Cxv97ARy.js +0 -1
  221. package/payload/server/public/assets/data-Cxv97ARy.js.br +0 -0
  222. package/payload/server/public/assets/data-Cxv97ARy.js.gz +0 -0
  223. package/payload/server/public/assets/file-text-D2Y-bkNy.js.br +0 -0
  224. package/payload/server/public/assets/file-text-D2Y-bkNy.js.gz +0 -0
  225. package/payload/server/public/assets/graph-C-3yN6JD.js.br +0 -0
  226. package/payload/server/public/assets/graph-C-3yN6JD.js.gz +0 -0
  227. package/payload/server/public/assets/graph-labels-DiaPLP27.js.br +0 -0
  228. package/payload/server/public/assets/graph-labels-DiaPLP27.js.gz +0 -0
  229. package/payload/server/public/assets/operator-KuGPvSa9.js.br +0 -0
  230. package/payload/server/public/assets/operator-KuGPvSa9.js.gz +0 -0
  231. package/payload/server/public/assets/page-BhGeFXWA.js.br +0 -0
  232. package/payload/server/public/assets/page-BhGeFXWA.js.gz +0 -0
  233. package/payload/server/public/assets/page-EnbVC-yM.js.br +0 -0
  234. package/payload/server/public/assets/page-EnbVC-yM.js.gz +0 -0
  235. package/payload/server/public/assets/play-jZFZAG-t.js +0 -1
  236. package/payload/server/public/assets/play-jZFZAG-t.js.br +0 -0
  237. package/payload/server/public/assets/play-jZFZAG-t.js.gz +0 -0
  238. package/payload/server/public/assets/public-CdSgMNC7.js.br +0 -0
  239. package/payload/server/public/assets/public-CdSgMNC7.js.gz +0 -0
  240. package/payload/server/public/assets/rotate-ccw-rTRuTqei.js.br +0 -0
  241. package/payload/server/public/assets/rotate-ccw-rTRuTqei.js.gz +0 -0
  242. package/payload/server/public/assets/routines-DNRxNRSQ.js +0 -2
  243. package/payload/server/public/assets/routines-DNRxNRSQ.js.br +0 -0
  244. package/payload/server/public/assets/routines-DNRxNRSQ.js.gz +0 -0
  245. package/payload/server/public/assets/skills-DFWtZNkW.js.br +0 -0
  246. package/payload/server/public/assets/skills-DFWtZNkW.js.gz +0 -0
  247. package/payload/server/public/assets/tasks-B94AuKSy.js.br +0 -0
  248. package/payload/server/public/assets/tasks-B94AuKSy.js.gz +0 -0
  249. package/payload/server/public/assets/triangle-alert-DtWUg6jR.js.br +0 -0
  250. package/payload/server/public/assets/triangle-alert-DtWUg6jR.js.gz +0 -0
  251. package/payload/server/public/assets/useCopyFeedback-CjKYO-Qf.js.br +0 -0
  252. package/payload/server/public/assets/useCopyFeedback-CjKYO-Qf.js.gz +0 -0
  253. package/payload/server/public/assets/useMediaQuery-DlOWP56H.css.br +0 -0
  254. package/payload/server/public/assets/useVoiceRecorder-BKFAYuzz.js.br +0 -0
  255. package/payload/server/public/assets/useVoiceRecorder-BKFAYuzz.js.gz +0 -0
  256. package/payload/server/public/assets/wrench-Ct4kf-uv.js.br +0 -0
  257. package/payload/server/public/assets/wrench-Ct4kf-uv.js.gz +0 -0
  258. /package/payload/server/public/assets/{useMediaQuery-BYIHo-xL.js → useMediaQuery-_mMln3Fu.js} +0 -0
  259. /package/payload/server/public/assets/{useMediaQuery-BYIHo-xL.js.br → useMediaQuery-_mMln3Fu.js.br} +0 -0
  260. /package/payload/server/public/assets/{useMediaQuery-BYIHo-xL.js.gz → useMediaQuery-_mMln3Fu.js.gz} +0 -0
@@ -1,4 +1,4 @@
1
- import type { MediaInbound, ScheduleProvenance, ReplyContext, InboundPayload, AckMeta } from './notification.js';
1
+ import type { MediaInbound, ScheduleProvenance, ReplyContext, InboundPayload, AckMeta, ObservedOutcome } from './notification.js';
2
2
  export type ChannelKind = 'whatsapp' | 'webchat';
3
3
  interface WhatsAppTarget {
4
4
  kind: 'whatsapp';
@@ -107,7 +107,7 @@ export interface DoorInbound {
107
107
  text: string;
108
108
  messageId: string;
109
109
  media: MediaInbound[];
110
- source?: 'user' | 'schedule' | 'public-relay';
110
+ source?: 'user' | 'schedule';
111
111
  standingRules?: string;
112
112
  /** Task 2321 — the account's own `## Instruction` body. Carried here for the
113
113
  * same reason as the fields around it: the single-target loop JSON-parses the
@@ -116,9 +116,9 @@ export interface DoorInbound {
116
116
  * file before delivery, and a frame without it is refused downstream. */
117
117
  turnInstruction?: string;
118
118
  /** Task 2353 — the turn's provenance as the WhatsApp gateway resolved it.
119
- * Absent on a webchat frame: that gateway raises no relay turn, so
120
- * {@link doorInboundPayload} stamps 'platform' for that door rather than
121
- * reading it off the frame. */
119
+ * Absent on a webchat frame: that door wakes no public visitor's turn, so
120
+ * {@link doorInboundPayload} stamps 'platform' for it rather than reading it
121
+ * off the frame. */
122
122
  instructionKind?: 'account' | 'platform';
123
123
  scheduleProvenance?: ScheduleProvenance;
124
124
  /** Task 1897 — the message a WhatsApp reply points at. Carried here for the
@@ -162,6 +162,16 @@ export interface ChannelDoor {
162
162
  * fields, so sending them there would be writing to a reader that ignores
163
163
  * them. */
164
164
  receivedBody: (messageId: string, meta: AckMeta) => Record<string, string | boolean>;
165
+ /** Task 2356 — where this door reports what the Task 813 watch cycle observed
166
+ * for one inbound. Present on the WhatsApp door only, for the same reason the
167
+ * watch itself is whatsapp-only: the webchat gateway has no such route, and a
168
+ * door that never watched has no outcome to report. Absent means the loop
169
+ * posts nothing, which is not a silent failure — it is a door with nothing to
170
+ * say. */
171
+ turnObserved?: {
172
+ url: string;
173
+ body: (messageId: string, observed: ObservedOutcome) => Record<string, string>;
174
+ };
165
175
  /** Parse one SSE data frame; null = malformed or not this door's recipient. */
166
176
  parseFrame: (data: string) => DoorInbound | null;
167
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}
@@ -127,11 +127,9 @@ function cryptoRandomId() {
127
127
  * parseScheduleProvenance), so a shape guard is all that is needed here. */
128
128
  function injectedContext(p) {
129
129
  return {
130
- // Task 2277'public-relay' is admitted alongside the other two. Narrowing
131
- // it away would drop a platform-authored turn to undefined, which the
132
- // downstream label reads as 'user': a synthetic relay turn would present as
133
- // a message the named manager wrote.
134
- source: p.source === 'user' || p.source === 'schedule' || p.source === 'public-relay' ? p.source : undefined,
130
+ // Task 2358two values. A frame carrying anything else narrows to
131
+ // undefined, which the downstream label reads as 'user'.
132
+ source: p.source === 'user' || p.source === 'schedule' ? p.source : undefined,
135
133
  standingRules: typeof p.standingRules === 'string' ? p.standingRules : undefined,
136
134
  // Task 2321 — same shape guard as its neighbours. A frame that omits it
137
135
  // leaves this undefined, which the composer treats as a refusal rather than
@@ -201,6 +199,12 @@ export function channelDoors(set) {
201
199
  provenance: meta.provenance,
202
200
  source: meta.source,
203
201
  }),
202
+ // Task 2356 — same fixed sender and account as the ack above, never
203
+ // frame-controlled.
204
+ turnObserved: {
205
+ url: `${base}/wa-channel/turn-observed`,
206
+ body: (messageId, observed) => ({ senderId, waMessageId: messageId, accountId, observed }),
207
+ },
204
208
  parseFrame: (data) => {
205
209
  const p = tryJson(data);
206
210
  if (!p || p.senderId !== senderId || typeof p.text !== 'string' || typeof p.waMessageId !== 'string')
@@ -1 +1 @@
1
- {"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import {
8
8
  getUserTimezone,
9
9
  isValidAccountId,
10
10
  registerLoop
11
- } from "./chunk-DU7GPDJJ.js";
11
+ } from "./chunk-WGMIUXXG.js";
12
12
  import {
13
13
  __commonJS,
14
14
  __require,
@@ -84,8 +84,7 @@ var WhatsAppAccountSchema = z.object({
84
84
  }).strict().optional().describe("React to incoming messages with an emoji to acknowledge receipt before the agent responds."),
85
85
  debounceMs: z.number().int().nonnegative().optional().default(2e3).describe("Wait this many milliseconds after the last message before processing, to batch rapid multi-message input into a single agent turn. Default 2000ms catches most multi-message bursts. 0 means process each message immediately."),
86
86
  publicAgent: z.string().optional().describe("Slug of the public agent that handles WhatsApp inbound from non-admin phones for this account. Overrides the top-level publicAgent when set."),
87
- publicAgentEnabled: z.boolean().optional().describe("When true, WhatsApp inbound from non-admin phones for this account is answered by the resolved public agent. When false (the default), a public inbound notifies the account managers and spawns nothing \u2014 the visitor receives no reply. Overrides the top-level publicAgentEnabled when set."),
88
- managerNotifyEnabled: z.boolean().optional().describe("When true (the default), every WhatsApp message from a public sender to this account is forwarded verbatim to its registered account managers. When false, that raw copy is not sent; the admin relay the same inbound raises, and the translated reply that relay produces, are unaffected. Overrides the top-level managerNotifyEnabled when set. Set with set-manager-notify-enabled."),
87
+ publicAgentEnabled: z.boolean().optional().describe("When true, WhatsApp inbound from non-admin phones for this account is answered by the resolved public agent. When false (the default), a public inbound is stored and labelled but spawns nothing, so the visitor receives no reply. Overrides the top-level publicAgentEnabled when set."),
89
88
  afterHoursMessage: z.string().optional().describe("Auto-reply text sent to public senders when the business is closed (outside opening hours). If not set, messages received outside business hours are silently skipped with no reply."),
90
89
  dispatchInbound: z.boolean().optional().describe("When false, this account's WhatsApp socket only observes: inbound is stored and readable but never dispatched to an agent. Default true. Set with set-dispatch-inbound.")
91
90
  }).strict().superRefine((value, ctx) => {
@@ -145,7 +144,6 @@ var WhatsAppConfigSchema = z.object({
145
144
  debounceMs: z.number().int().nonnegative().optional().default(2e3).describe("Wait this many milliseconds after the last message before processing, to batch rapid multi-message input into a single agent turn. Default 2000ms catches most multi-message bursts. 0 means process each message immediately."),
146
145
  publicAgent: z.string().optional().describe("Slug of the public agent that handles WhatsApp inbound from non-admin phones. Per-account overrides take precedence."),
147
146
  publicAgentEnabled: z.boolean().optional().describe("Default for whether WhatsApp inbound from non-admin phones is answered by the resolved public agent. False by default. Per-account overrides take precedence."),
148
- managerNotifyEnabled: z.boolean().optional().describe("The HOUSE's own value for whether a public sender's message is forwarded verbatim to its registered account managers. True by default. A sub-account never inherits this; it reads its own slice or the default."),
149
147
  afterHoursMessage: z.string().optional().describe("Default auto-reply text sent to public senders when the business is closed (outside opening hours). Per-account overrides take precedence. If not set, messages received outside business hours are silently skipped.")
150
148
  }).strict().superRefine((value, ctx) => {
151
149
  if (value.dmPolicy !== "open") return;
@@ -12,7 +12,7 @@ import {
12
12
  getConversationOwner,
13
13
  isValidAccountId,
14
14
  registerLoop
15
- } from "./chunk-DU7GPDJJ.js";
15
+ } from "./chunk-WGMIUXXG.js";
16
16
 
17
17
  // node_modules/hono/dist/compose.js
18
18
  var compose = (middleware, onError, onNotFound) => {
@@ -266,6 +266,10 @@ function resolveAccount() {
266
266
  return fallback;
267
267
  }
268
268
  function readAgentFile(accountDir, agentName, filename) {
269
+ if (!AGENT_SLUG_PATTERN.test(agentName)) {
270
+ console.error(`[agent-slug] op=reject slug=${agentName} reason=shape`);
271
+ return null;
272
+ }
269
273
  const filePath = resolve2(accountDir, "agents", agentName, filename);
270
274
  if (!existsSync3(filePath)) return null;
271
275
  const raw = readFileSync3(filePath, "utf-8");
@@ -30,8 +30,8 @@ import {
30
30
  startConnection,
31
31
  stopConnection,
32
32
  storeMessage
33
- } from "./chunk-CVUSUNXM.js";
34
- import "./chunk-DU7GPDJJ.js";
33
+ } from "./chunk-MHNHG3GL.js";
34
+ import "./chunk-WGMIUXXG.js";
35
35
  import "./chunk-HYQNUVGO.js";
36
36
  export {
37
37
  buildNotifyPending,
@@ -19,12 +19,12 @@ import {
19
19
  screencastLog,
20
20
  vncLog,
21
21
  websockifyLog
22
- } from "./chunk-X2RRMHVV.js";
22
+ } from "./chunk-Q33KT7YJ.js";
23
23
  import {
24
24
  CDP_PORT,
25
25
  LOG_DIR,
26
26
  WEBSOCKIFY_PORT
27
- } from "./chunk-DU7GPDJJ.js";
27
+ } from "./chunk-WGMIUXXG.js";
28
28
  import "./chunk-HYQNUVGO.js";
29
29
 
30
30
  // server/edge.ts
@@ -5,12 +5,12 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Activity — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/activity-ByJSut0Q.js"></script>
8
+ <script type="module" crossorigin src="/assets/activity-C8E8-EwQ.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CltuBf4Z.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useMediaQuery-BYIHo-xL.js">
11
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-DnfgsAQl.js">
12
- <link rel="modulepreload" crossorigin href="/assets/triangle-alert-DtWUg6jR.js">
13
- <link rel="stylesheet" crossorigin href="/assets/useMediaQuery-DlOWP56H.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/useMediaQuery-_mMln3Fu.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DVBAMUCy.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/triangle-alert-eh9UOKDT.js">
13
+ <link rel="stylesheet" crossorigin href="/assets/useMediaQuery-CNxsjKZp.css">
14
14
  <link rel="stylesheet" href="/brand-defaults.css">
15
15
  </head>
16
16
  <body>
@@ -5,11 +5,11 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Agents — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/agents-D8phtRX5.js"></script>
8
+ <script type="module" crossorigin src="/assets/agents-DuN92iFb.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-CltuBf4Z.js">
10
- <link rel="modulepreload" crossorigin href="/assets/useMediaQuery-BYIHo-xL.js">
11
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-DnfgsAQl.js">
12
- <link rel="stylesheet" crossorigin href="/assets/useMediaQuery-DlOWP56H.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/useMediaQuery-_mMln3Fu.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-DVBAMUCy.js">
12
+ <link rel="stylesheet" crossorigin href="/assets/useMediaQuery-CNxsjKZp.css">
13
13
  <link rel="stylesheet" href="/brand-defaults.css">
14
14
  </head>
15
15
  <body>
@@ -1 +1 @@
1
- import{o as e}from"./chunk-CltuBf4Z.js";import{O as t,Q as n,ct as r,et as i,it as a,nt as o}from"./useMediaQuery-BYIHo-xL.js";import{A as s}from"./useVoiceRecorder-BKFAYuzz.js";import{D as c,O as l,k as u,p as d}from"./AdminShell-DnfgsAQl.js";var f=e(r(),1);function p(e=`admin`){let[t,n]=(0,f.useState)(`loading`),[r,i]=(0,f.useState)(``),[o,c]=(0,f.useState)(``),[l,d]=(0,f.useState)(``),[p,m]=(0,f.useState)(!1),[h,g]=(0,f.useState)(!1),[_,v]=(0,f.useState)(!1),[y,b]=(0,f.useState)(!1),[x,S]=(0,f.useState)(!1),[C,w]=(0,f.useState)(null),[T,E]=(0,f.useState)(null),[D,O]=(0,f.useState)(void 0),[k,A]=(0,f.useState)(null),[j,M]=(0,f.useState)(void 0),[N,P]=(0,f.useState)(null),[F,I]=(0,f.useState)(null),[L,R]=(0,f.useState)(void 0),z=(0,f.useRef)(void 0),[B,V]=(0,f.useState)(!1),[H,U]=(0,f.useState)(!0);(0,f.useEffect)(()=>{typeof window>`u`||fetch(`/api/remote-auth/status`).then(e=>e.ok?e.json():null).then(e=>{e?.configured&&V(!0)}).catch(()=>{})},[]);let W=(0,f.useRef)(null),G=(0,f.useRef)(null);(0,f.useEffect)(()=>{async function e(){let e=null;try{e=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!e)return!1;try{let t=await fetch(`/api/admin/session?session_key=${encodeURIComponent(e)}`);if(t.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return!1}if(!t.ok)return!1;let r=await t.json();w(r.session_key),I(r.sessionId??null),O(r.businessName),A(r.role??null),M(r.userName===void 0?null:r.userName),P(r.avatar??null);let i=s(r.thinkingView);return z.current=i,R(i),n(`chat`),!0}catch(e){return console.error(`[admin] session restore failed:`,e),!1}}async function t(r=2){try{let i=await fetch(`/api/health`);if(!i.ok){if(r>0)return await new Promise(e=>setTimeout(e,1500)),t(r-1);console.error(`[admin] health check returned ${i.status} after retries`),n(`set-pin`);return}let a=await i.json();if(!a.pin_configured){n(`set-pin`);return}U(!!a.claude_authenticated);let o=!1;try{o=new URLSearchParams(window.location.search).get(`connect`)===`claude`}catch{}if(o){try{let e=new URL(window.location.href);e.searchParams.delete(`connect`),window.history.replaceState(null,``,e.pathname+e.search+e.hash)}catch{}if(!a.claude_authenticated){n(`connect-claude`);return}}if(await e())return;n(`enter-pin`)}catch(e){if(r>0)return await new Promise(e=>setTimeout(e,1500)),t(r-1);console.error(`[admin] health check failed:`,e),n(`set-pin`)}}t()},[]),(0,f.useEffect)(()=>{t===`chat`&&C&&fetch(`/api/admin/claude-info?session_key=${encodeURIComponent(C)}`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&E(e)}).catch(()=>{})},[t,C]);let K=(0,f.useRef)(null);(0,f.useEffect)(()=>{if(t!==`chat`)return;let e=setInterval(async()=>{try{let e=await fetch(`/api/health`);if(e.ok){let t=await e.json();U(t.auth_status!==`dead`&&t.auth_status!==`missing`)}}catch{}if(C)try{let e=await fetch(`/api/admin/session?session_key=${encodeURIComponent(C)}`);if(e.status!==401)return;let t=(await e.clone().json().catch(()=>null))?.code??`unknown-401`;if(t===`remote-auth-required`){a(`heartbeat`,`/api/admin/session`);return}console.warn(`[admin-auth] outcome=heartbeat-detected-expiry code=${t}`),K.current?.()}catch{}},300*1e3);return()=>clearInterval(e)},[t,C]),(0,f.useEffect)(()=>{t===`connect-claude`&&fetch(`/api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.claude_authenticated&&(U(!0),n(`enter-pin`))}).catch(()=>{})},[t]);async function q(e,t){g(!0);try{let r=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e,...t?{accountId:t}:{}})});if(!r.ok){let e=await r.json().catch(()=>({}));if(r.status===401&&e?.code===`remote-auth-required`){a(`enter-pin`,`/api/admin/session`);return}d(e.error||`Invalid PIN`);return}let o=await r.json();w(o.session_key),I(o.sessionId??null),O(o.businessName),A(o.role??null),M(o.userName===void 0?null:o.userName),P(o.avatar??null);let c=s(o.thinkingView);z.current=c,R(c);try{sessionStorage.setItem(`maxy-admin-session-key`,o.session_key)}catch{}i(``),n(`chat`)}catch(e){console.error(`[admin] connection error:`,e),d(`Could not connect.`)}finally{g(!1)}}let J=(0,f.useCallback)(async e=>{if(e.preventDefault(),h)return;d(``);let t=o.trim();if(!t){d(`Please enter your name.`);return}if(r.length<4){d(`PIN must be at least 4 characters.`);return}let s=r;g(!0);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:s,name:t})});if(!e.ok){let t=await e.json().catch(()=>({}));if(e.status===401&&t?.code===`remote-auth-required`){a(`set-pin`,`/api/onboarding/set-pin`);return}if(e.status===409){try{let e=await fetch(`/api/health`);if(e.ok){let r=await e.json();r.pin_configured&&r.claude_authenticated?n(`enter-pin`):r.pin_configured?n(`connect-claude`):d(t.error||`Failed to set PIN.`)}else n(`enter-pin`)}catch{n(`enter-pin`)}return}d(t.error||`Failed to set PIN.`);return}let r=await fetch(`/api/health`);if((r.ok?await r.json():null)?.claude_authenticated){await q(s);return}i(``),n(`connect-claude`)}catch(e){console.error(`[admin] connection error:`,e),d(`Could not connect.`)}finally{g(!1)}},[r,h,o]),Y=(0,f.useCallback)(async e=>{e.preventDefault(),d(``),await q(r)},[r]),X=(0,f.useCallback)(async()=>{S(!0);try{if(!await u())return console.warn(`[admin-ui] claude-disconnect not verified — credentials may persist; staying put`),!1;U(!1),w(null),A(null),M(void 0),P(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return n(`connect-claude`),!0}finally{S(!1)}},[]),Z=(0,f.useCallback)(()=>{w(null),A(null),M(void 0),P(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}i(``),d(``),n(`enter-pin`)},[]);return(0,f.useEffect)(()=>{K.current=Z},[Z]),{appState:t,setAppState:n,pin:r,setPin:i,operatorName:o,setOperatorName:c,pinError:l,setPinError:d,showPin:p,setShowPin:m,pinLoading:h,authPolling:_,setAuthPolling:v,authLoading:y,setAuthLoading:b,disconnecting:x,cacheKey:C,setCacheKey:w,claudeInfo:T,setClaudeInfo:E,businessName:D,role:k,userName:j,userAvatar:N,sessionId:F,setSessionId:I,expandAll:L,setExpandAll:R,expandAllDefaultRef:z,remoteAuthEnabled:B,claudeConnected:H,pinInputRef:W,setPinFormRef:G,handleSetPin:J,handleLogin:Y,handleDisconnect:X,handleLogout:Z}}var m=o();function h({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,f.useRef)([]);function s(e,r){r.key===`Backspace`?(r.preventDefault(),t[e]?n(t.slice(0,e)+t.slice(e+1)):e>0&&(n(t.slice(0,e-1)+t.slice(e)),o.current[e-1]?.focus())):r.key===`ArrowLeft`&&e>0?o.current[e-1]?.focus():r.key===`ArrowRight`&&e<5?o.current[e+1]?.focus():r.key===`Enter`&&(r.preventDefault(),r.currentTarget.form?.requestSubmit())}function c(e,i){let a=i.nativeEvent.data;if(!a||!/^\d$/.test(a))return;let s=t.split(``);for(s[e]=a;s.length<e;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);n(c),c.length===6?r?.(c):e<5&&o.current[e+1]?.focus()}function l(e){e.preventDefault();let t=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);t&&(n(t),t.length===6?r?.(t):o.current[t.length]?.focus())}return(0,m.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,m.jsx)(`input`,{ref:t=>{o.current[r]=t,r===0&&e&&(e.current=t)},type:`text`,inputMode:`numeric`,className:`pin-box${t[r]?` pin-box-filled`:``}`,value:t[r]?i?t[r]:`•`:``,onKeyDown:e=>s(r,e),onInput:e=>c(r,e),onPaste:l,onFocus:e=>e.target.select(),autoFocus:a&&r===0,autoComplete:`off`,maxLength:1,"aria-label":`PIN digit ${r+1}`},r))})}function g(e){let{pin:t,setPin:r,showPin:a,setShowPin:o,pinLoading:s,pinError:u,pinInputRef:d,setPinFormRef:f,onSubmit:p,operatorName:g,setOperatorName:_}=e;return(0,m.jsx)(`div`,{className:`connect-page`,children:(0,m.jsxs)(`div`,{className:`connect-content`,children:[(0,m.jsx)(`img`,{src:i,alt:n.productName,className:`connect-logo connect-logo--maxy`}),!n.logoContainsName&&(0,m.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,n.productName]}),(0,m.jsxs)(`p`,{className:`connect-subtitle`,children:[`Tell `,n.productName,` who you are, then choose a PIN.`]}),(0,m.jsxs)(`form`,{ref:f,onSubmit:p,className:`connect-pin-form`,children:[(0,m.jsxs)(`div`,{className:`pin-input-row`,children:[(0,m.jsx)(`input`,{type:`text`,className:`connect-name-input`,placeholder:`Your full name`,value:g,onChange:e=>_(e.target.value),autoComplete:`name`,autoFocus:!0,required:!0,"aria-label":`Your full name`}),(0,m.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,m.jsxs)(`div`,{className:`pin-input-row`,children:[(0,m.jsx)(h,{inputRef:d,value:t,onChange:r,onComplete:()=>{},showPin:a}),(0,m.jsx)(c,{variant:`send`,type:`submit`,disabled:!t||!g.trim(),loading:s,"aria-label":`Set PIN`,children:(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,m.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,m.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,m.jsx)(l,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})]}),u&&(0,m.jsx)(`p`,{className:`admin-pin-error`,children:u})]})})}function _(e){let{pin:t,setPin:r,showPin:a,setShowPin:o,pinLoading:s,pinError:u,pinInputRef:d,onSubmit:f,remoteAuthEnabled:p,onSignOutRemote:g}=e;return(0,m.jsxs)(`div`,{className:`connect-page`,children:[p&&g&&(0,m.jsx)(`button`,{type:`button`,className:`connect-signout`,onClick:g,children:`Sign out`}),(0,m.jsxs)(`div`,{className:`connect-content`,children:[(0,m.jsx)(`img`,{src:i,alt:n.productName,className:`connect-logo connect-logo--maxy`}),!n.logoContainsName&&(0,m.jsx)(`h1`,{className:`connect-title`,children:n.productName}),(0,m.jsxs)(`form`,{onSubmit:f,className:`connect-pin-form`,children:[(0,m.jsxs)(`div`,{className:`pin-input-row`,children:[(0,m.jsx)(h,{inputRef:d,value:t,onChange:r,onComplete:()=>{},showPin:a,autoFocus:!0}),(0,m.jsx)(c,{variant:`send`,type:`submit`,disabled:!t,loading:s,children:(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,m.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,m.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,m.jsx)(`div`,{className:`pin-options`,children:(0,m.jsx)(l,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})})]}),u&&(0,m.jsx)(`p`,{className:`admin-pin-error`,children:u})]})]})}function v(e){let{authPolling:t,setAuthPolling:r,authLoading:a,setAuthLoading:o,pinError:s,setPinError:l,setAppState:u}=e,[p,h]=(0,f.useState)(!1),[g,_]=(0,f.useState)(!1),[v,y]=(0,f.useState)(``),[b,x]=(0,f.useState)(``),[S,C]=(0,f.useState)(``),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(null),[O,k]=(0,f.useState)(!1);(0,f.useEffect)(()=>{try{D(sessionStorage.getItem(`maxy-admin-session-key`))}catch{}k(!0)},[]);async function A(){C(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`paste-code`,code:b})})).json();e.accepted?(C(`Code submitted. Finishing sign-in…`),x(``)):C(e.error||`Could not submit code.`)}catch(e){console.error(`[admin] paste-code error:`,e),C(`Could not submit code.`)}}async function j(){_(!0),l(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`launch-browser`})})).json();e.launched?h(!0):e.error&&l(e.error)}catch(e){console.error(`[admin] browser launch error:`,e),l(`Could not launch browser.`)}_(!1)}async function M(){o(!0),l(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`})).json();if(e.started){r(!0),h(!0),o(!1),y(e.transport||``);for(let e=0;e<120;e++){await new Promise(e=>setTimeout(e,2e3));let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`wait`})})).json();if(typeof e.authTargetId==`string`&&T(e.authTargetId),e.authenticated){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),u(`enter-pin`);return}}l(`Timed out waiting for sign-in. Try again.`),r(!1)}else e.error&&l(e.error)}catch(e){console.error(`[admin] auth flow error:`,e),l(`Could not start auth flow.`)}o(!1)}async function N(){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),r(!1),l(``)}return t||p?(0,m.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,m.jsxs)(`header`,{className:`chat-header`,style:{paddingBottom:`12px`,flexShrink:0,position:`relative`,maxWidth:`680px`,width:`100%`,margin:`0 auto`,padding:`24px 20px 12px`},children:[t?(0,m.jsx)(`button`,{onClick:N,style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Cancel`,children:`✕`}):(0,m.jsx)(`button`,{onClick:()=>h(!1),style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Close browser`,children:`✕`}),(0,m.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,m.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,m.jsx)(`p`,{className:`chat-intro`,children:t?`Sign in and authorize in the browser below.`:`Open your email or prepare your accounts, then sign in.`}),!t&&(0,m.jsx)(`div`,{style:{marginTop:`12px`},children:(0,m.jsx)(c,{variant:`primary`,onClick:M,disabled:a,children:a?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})}),t&&v===`native`&&(0,m.jsxs)(`div`,{style:{marginTop:`14px`,maxWidth:`420px`,margin:`14px auto 0`,display:`flex`,flexDirection:`column`,gap:`8px`},children:[(0,m.jsx)(`label`,{style:{fontSize:`12px`,color:`#999`,lineHeight:1.4},children:`If the browser didn't finish sign-in, paste the code or full redirect URL from Claude's page:`}),(0,m.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,m.jsx)(`input`,{type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:`Paste code or redirect URL`,style:{flex:1,padding:`8px 10px`,fontSize:`13px`,border:`1px solid #ccc`,borderRadius:`6px`}}),(0,m.jsx)(c,{variant:`primary`,onClick:A,disabled:!b.trim(),children:`Submit`})]}),S&&(0,m.jsx)(`p`,{style:{fontSize:`12px`,color:`#999`,margin:0},children:S})]})]}),(0,m.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:O&&(0,m.jsx)(d,{preferTargetId:w,cacheKey:E,chrome:!1})}),s&&(0,m.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:s})]}):(0,m.jsx)(`div`,{className:`connect-page`,children:(0,m.jsxs)(`div`,{className:`connect-content`,children:[(0,m.jsxs)(`div`,{className:`connect-logos`,children:[(0,m.jsx)(`div`,{className:`connect-logo-wrap`,children:(0,m.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`})}),(0,m.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,m.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,m.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,m.jsx)(`img`,{src:i,alt:n.productName,className:`connect-logo connect-logo--maxy`}),!n.logoContainsName&&(0,m.jsx)(`span`,{className:`connect-logo-label`,children:n.productName})]})]}),(0,m.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,n.productName]}),(0,m.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,m.jsx)(c,{variant:`primary`,onClick:M,disabled:a,children:a?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,m.jsx)(`p`,{style:{marginTop:`6px`,fontSize:`11px`,color:`#999`,maxWidth:`300px`,textAlign:`center`,lineHeight:`1.4`},children:`First time? You may need to sign into your email and Anthropic account in the browser before connecting.`}),(0,m.jsx)(`button`,{onClick:j,disabled:g,style:{marginTop:`12px`,background:`none`,border:`none`,color:`var(--color-primary, #666)`,fontSize:`13px`,cursor:`pointer`,textDecoration:`underline`,textUnderlineOffset:`3px`},children:g?`Launching…`:`Open browser first`}),s&&(0,m.jsx)(`p`,{className:`admin-pin-error`,children:s})]})})}function y({auth:e}){return e.appState===`loading`?(0,m.jsx)(t,{surface:`gate`}):e.appState===`set-pin`?(0,m.jsx)(g,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,setPinFormRef:e.setPinFormRef,onSubmit:e.handleSetPin,operatorName:e.operatorName,setOperatorName:e.setOperatorName}):e.appState===`connect-claude`?(0,m.jsx)(v,{authPolling:e.authPolling,setAuthPolling:e.setAuthPolling,authLoading:e.authLoading,setAuthLoading:e.setAuthLoading,pinError:e.pinError,setPinError:e.setPinError,setAppState:e.setAppState}):e.appState===`enter-pin`?(0,m.jsx)(_,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,onSubmit:e.handleLogin,remoteAuthEnabled:e.remoteAuthEnabled,onSignOutRemote:()=>{window.location.href=`/__remote-auth/logout`}}):null}export{p as n,y as t};
1
+ import{o as e}from"./chunk-CltuBf4Z.js";import{O as t,Q as n,ct as r,et as i,it as a,nt as o}from"./useMediaQuery-_mMln3Fu.js";import{A as s}from"./useVoiceRecorder-BaDpMYxX.js";import{D as c,O as l,k as u,p as d}from"./AdminShell-DVBAMUCy.js";var f=e(r(),1);function p(e=`admin`){let[t,n]=(0,f.useState)(`loading`),[r,i]=(0,f.useState)(``),[o,c]=(0,f.useState)(``),[l,d]=(0,f.useState)(``),[p,m]=(0,f.useState)(!1),[h,g]=(0,f.useState)(!1),[_,v]=(0,f.useState)(!1),[y,b]=(0,f.useState)(!1),[x,S]=(0,f.useState)(!1),[C,w]=(0,f.useState)(null),[T,E]=(0,f.useState)(null),[D,O]=(0,f.useState)(void 0),[k,A]=(0,f.useState)(null),[j,M]=(0,f.useState)(void 0),[N,P]=(0,f.useState)(null),[F,I]=(0,f.useState)(null),[L,R]=(0,f.useState)(void 0),z=(0,f.useRef)(void 0),[B,V]=(0,f.useState)(!1),[H,U]=(0,f.useState)(!0);(0,f.useEffect)(()=>{typeof window>`u`||fetch(`/api/remote-auth/status`).then(e=>e.ok?e.json():null).then(e=>{e?.configured&&V(!0)}).catch(()=>{})},[]);let W=(0,f.useRef)(null),G=(0,f.useRef)(null);(0,f.useEffect)(()=>{async function e(){let e=null;try{e=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!e)return!1;try{let t=await fetch(`/api/admin/session?session_key=${encodeURIComponent(e)}`);if(t.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return!1}if(!t.ok)return!1;let r=await t.json();w(r.session_key),I(r.sessionId??null),O(r.businessName),A(r.role??null),M(r.userName===void 0?null:r.userName),P(r.avatar??null);let i=s(r.thinkingView);return z.current=i,R(i),n(`chat`),!0}catch(e){return console.error(`[admin] session restore failed:`,e),!1}}async function t(r=2){try{let i=await fetch(`/api/health`);if(!i.ok){if(r>0)return await new Promise(e=>setTimeout(e,1500)),t(r-1);console.error(`[admin] health check returned ${i.status} after retries`),n(`set-pin`);return}let a=await i.json();if(!a.pin_configured){n(`set-pin`);return}U(!!a.claude_authenticated);let o=!1;try{o=new URLSearchParams(window.location.search).get(`connect`)===`claude`}catch{}if(o){try{let e=new URL(window.location.href);e.searchParams.delete(`connect`),window.history.replaceState(null,``,e.pathname+e.search+e.hash)}catch{}if(!a.claude_authenticated){n(`connect-claude`);return}}if(await e())return;n(`enter-pin`)}catch(e){if(r>0)return await new Promise(e=>setTimeout(e,1500)),t(r-1);console.error(`[admin] health check failed:`,e),n(`set-pin`)}}t()},[]),(0,f.useEffect)(()=>{t===`chat`&&C&&fetch(`/api/admin/claude-info?session_key=${encodeURIComponent(C)}`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&E(e)}).catch(()=>{})},[t,C]);let K=(0,f.useRef)(null);(0,f.useEffect)(()=>{if(t!==`chat`)return;let e=setInterval(async()=>{try{let e=await fetch(`/api/health`);if(e.ok){let t=await e.json();U(t.auth_status!==`dead`&&t.auth_status!==`missing`)}}catch{}if(C)try{let e=await fetch(`/api/admin/session?session_key=${encodeURIComponent(C)}`);if(e.status!==401)return;let t=(await e.clone().json().catch(()=>null))?.code??`unknown-401`;if(t===`remote-auth-required`){a(`heartbeat`,`/api/admin/session`);return}console.warn(`[admin-auth] outcome=heartbeat-detected-expiry code=${t}`),K.current?.()}catch{}},300*1e3);return()=>clearInterval(e)},[t,C]),(0,f.useEffect)(()=>{t===`connect-claude`&&fetch(`/api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.claude_authenticated&&(U(!0),n(`enter-pin`))}).catch(()=>{})},[t]);async function q(e,t){g(!0);try{let r=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e,...t?{accountId:t}:{}})});if(!r.ok){let e=await r.json().catch(()=>({}));if(r.status===401&&e?.code===`remote-auth-required`){a(`enter-pin`,`/api/admin/session`);return}d(e.error||`Invalid PIN`);return}let o=await r.json();w(o.session_key),I(o.sessionId??null),O(o.businessName),A(o.role??null),M(o.userName===void 0?null:o.userName),P(o.avatar??null);let c=s(o.thinkingView);z.current=c,R(c);try{sessionStorage.setItem(`maxy-admin-session-key`,o.session_key)}catch{}i(``),n(`chat`)}catch(e){console.error(`[admin] connection error:`,e),d(`Could not connect.`)}finally{g(!1)}}let J=(0,f.useCallback)(async e=>{if(e.preventDefault(),h)return;d(``);let t=o.trim();if(!t){d(`Please enter your name.`);return}if(r.length<4){d(`PIN must be at least 4 characters.`);return}let s=r;g(!0);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:s,name:t})});if(!e.ok){let t=await e.json().catch(()=>({}));if(e.status===401&&t?.code===`remote-auth-required`){a(`set-pin`,`/api/onboarding/set-pin`);return}if(e.status===409){try{let e=await fetch(`/api/health`);if(e.ok){let r=await e.json();r.pin_configured&&r.claude_authenticated?n(`enter-pin`):r.pin_configured?n(`connect-claude`):d(t.error||`Failed to set PIN.`)}else n(`enter-pin`)}catch{n(`enter-pin`)}return}d(t.error||`Failed to set PIN.`);return}let r=await fetch(`/api/health`);if((r.ok?await r.json():null)?.claude_authenticated){await q(s);return}i(``),n(`connect-claude`)}catch(e){console.error(`[admin] connection error:`,e),d(`Could not connect.`)}finally{g(!1)}},[r,h,o]),Y=(0,f.useCallback)(async e=>{e.preventDefault(),d(``),await q(r)},[r]),X=(0,f.useCallback)(async()=>{S(!0);try{if(!await u())return console.warn(`[admin-ui] claude-disconnect not verified — credentials may persist; staying put`),!1;U(!1),w(null),A(null),M(void 0),P(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return n(`connect-claude`),!0}finally{S(!1)}},[]),Z=(0,f.useCallback)(()=>{w(null),A(null),M(void 0),P(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}i(``),d(``),n(`enter-pin`)},[]);return(0,f.useEffect)(()=>{K.current=Z},[Z]),{appState:t,setAppState:n,pin:r,setPin:i,operatorName:o,setOperatorName:c,pinError:l,setPinError:d,showPin:p,setShowPin:m,pinLoading:h,authPolling:_,setAuthPolling:v,authLoading:y,setAuthLoading:b,disconnecting:x,cacheKey:C,setCacheKey:w,claudeInfo:T,setClaudeInfo:E,businessName:D,role:k,userName:j,userAvatar:N,sessionId:F,setSessionId:I,expandAll:L,setExpandAll:R,expandAllDefaultRef:z,remoteAuthEnabled:B,claudeConnected:H,pinInputRef:W,setPinFormRef:G,handleSetPin:J,handleLogin:Y,handleDisconnect:X,handleLogout:Z}}var m=o();function h({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,f.useRef)([]);function s(e,r){r.key===`Backspace`?(r.preventDefault(),t[e]?n(t.slice(0,e)+t.slice(e+1)):e>0&&(n(t.slice(0,e-1)+t.slice(e)),o.current[e-1]?.focus())):r.key===`ArrowLeft`&&e>0?o.current[e-1]?.focus():r.key===`ArrowRight`&&e<5?o.current[e+1]?.focus():r.key===`Enter`&&(r.preventDefault(),r.currentTarget.form?.requestSubmit())}function c(e,i){let a=i.nativeEvent.data;if(!a||!/^\d$/.test(a))return;let s=t.split(``);for(s[e]=a;s.length<e;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);n(c),c.length===6?r?.(c):e<5&&o.current[e+1]?.focus()}function l(e){e.preventDefault();let t=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);t&&(n(t),t.length===6?r?.(t):o.current[t.length]?.focus())}return(0,m.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,m.jsx)(`input`,{ref:t=>{o.current[r]=t,r===0&&e&&(e.current=t)},type:`text`,inputMode:`numeric`,className:`pin-box${t[r]?` pin-box-filled`:``}`,value:t[r]?i?t[r]:`•`:``,onKeyDown:e=>s(r,e),onInput:e=>c(r,e),onPaste:l,onFocus:e=>e.target.select(),autoFocus:a&&r===0,autoComplete:`off`,maxLength:1,"aria-label":`PIN digit ${r+1}`},r))})}function g(e){let{pin:t,setPin:r,showPin:a,setShowPin:o,pinLoading:s,pinError:u,pinInputRef:d,setPinFormRef:f,onSubmit:p,operatorName:g,setOperatorName:_}=e;return(0,m.jsx)(`div`,{className:`connect-page`,children:(0,m.jsxs)(`div`,{className:`connect-content`,children:[(0,m.jsx)(`img`,{src:i,alt:n.productName,className:`connect-logo connect-logo--maxy`}),!n.logoContainsName&&(0,m.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,n.productName]}),(0,m.jsxs)(`p`,{className:`connect-subtitle`,children:[`Tell `,n.productName,` who you are, then choose a PIN.`]}),(0,m.jsxs)(`form`,{ref:f,onSubmit:p,className:`connect-pin-form`,children:[(0,m.jsxs)(`div`,{className:`pin-input-row`,children:[(0,m.jsx)(`input`,{type:`text`,className:`connect-name-input`,placeholder:`Your full name`,value:g,onChange:e=>_(e.target.value),autoComplete:`name`,autoFocus:!0,required:!0,"aria-label":`Your full name`}),(0,m.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,m.jsxs)(`div`,{className:`pin-input-row`,children:[(0,m.jsx)(h,{inputRef:d,value:t,onChange:r,onComplete:()=>{},showPin:a}),(0,m.jsx)(c,{variant:`send`,type:`submit`,disabled:!t||!g.trim(),loading:s,"aria-label":`Set PIN`,children:(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,m.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,m.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,m.jsx)(l,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})]}),u&&(0,m.jsx)(`p`,{className:`admin-pin-error`,children:u})]})})}function _(e){let{pin:t,setPin:r,showPin:a,setShowPin:o,pinLoading:s,pinError:u,pinInputRef:d,onSubmit:f,remoteAuthEnabled:p,onSignOutRemote:g}=e;return(0,m.jsxs)(`div`,{className:`connect-page`,children:[p&&g&&(0,m.jsx)(`button`,{type:`button`,className:`connect-signout`,onClick:g,children:`Sign out`}),(0,m.jsxs)(`div`,{className:`connect-content`,children:[(0,m.jsx)(`img`,{src:i,alt:n.productName,className:`connect-logo connect-logo--maxy`}),!n.logoContainsName&&(0,m.jsx)(`h1`,{className:`connect-title`,children:n.productName}),(0,m.jsxs)(`form`,{onSubmit:f,className:`connect-pin-form`,children:[(0,m.jsxs)(`div`,{className:`pin-input-row`,children:[(0,m.jsx)(h,{inputRef:d,value:t,onChange:r,onComplete:()=>{},showPin:a,autoFocus:!0}),(0,m.jsx)(c,{variant:`send`,type:`submit`,disabled:!t,loading:s,children:(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,m.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,m.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,m.jsx)(`div`,{className:`pin-options`,children:(0,m.jsx)(l,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})})]}),u&&(0,m.jsx)(`p`,{className:`admin-pin-error`,children:u})]})]})}function v(e){let{authPolling:t,setAuthPolling:r,authLoading:a,setAuthLoading:o,pinError:s,setPinError:l,setAppState:u}=e,[p,h]=(0,f.useState)(!1),[g,_]=(0,f.useState)(!1),[v,y]=(0,f.useState)(``),[b,x]=(0,f.useState)(``),[S,C]=(0,f.useState)(``),[w,T]=(0,f.useState)(null),[E,D]=(0,f.useState)(null),[O,k]=(0,f.useState)(!1);(0,f.useEffect)(()=>{try{D(sessionStorage.getItem(`maxy-admin-session-key`))}catch{}k(!0)},[]);async function A(){C(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`paste-code`,code:b})})).json();e.accepted?(C(`Code submitted. Finishing sign-in…`),x(``)):C(e.error||`Could not submit code.`)}catch(e){console.error(`[admin] paste-code error:`,e),C(`Could not submit code.`)}}async function j(){_(!0),l(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`launch-browser`})})).json();e.launched?h(!0):e.error&&l(e.error)}catch(e){console.error(`[admin] browser launch error:`,e),l(`Could not launch browser.`)}_(!1)}async function M(){o(!0),l(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`})).json();if(e.started){r(!0),h(!0),o(!1),y(e.transport||``);for(let e=0;e<120;e++){await new Promise(e=>setTimeout(e,2e3));let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`wait`})})).json();if(typeof e.authTargetId==`string`&&T(e.authTargetId),e.authenticated){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),u(`enter-pin`);return}}l(`Timed out waiting for sign-in. Try again.`),r(!1)}else e.error&&l(e.error)}catch(e){console.error(`[admin] auth flow error:`,e),l(`Could not start auth flow.`)}o(!1)}async function N(){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),r(!1),l(``)}return t||p?(0,m.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,m.jsxs)(`header`,{className:`chat-header`,style:{paddingBottom:`12px`,flexShrink:0,position:`relative`,maxWidth:`680px`,width:`100%`,margin:`0 auto`,padding:`24px 20px 12px`},children:[t?(0,m.jsx)(`button`,{onClick:N,style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Cancel`,children:`✕`}):(0,m.jsx)(`button`,{onClick:()=>h(!1),style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Close browser`,children:`✕`}),(0,m.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,m.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,m.jsx)(`p`,{className:`chat-intro`,children:t?`Sign in and authorize in the browser below.`:`Open your email or prepare your accounts, then sign in.`}),!t&&(0,m.jsx)(`div`,{style:{marginTop:`12px`},children:(0,m.jsx)(c,{variant:`primary`,onClick:M,disabled:a,children:a?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})}),t&&v===`native`&&(0,m.jsxs)(`div`,{style:{marginTop:`14px`,maxWidth:`420px`,margin:`14px auto 0`,display:`flex`,flexDirection:`column`,gap:`8px`},children:[(0,m.jsx)(`label`,{style:{fontSize:`12px`,color:`#999`,lineHeight:1.4},children:`If the browser didn't finish sign-in, paste the code or full redirect URL from Claude's page:`}),(0,m.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,m.jsx)(`input`,{type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:`Paste code or redirect URL`,style:{flex:1,padding:`8px 10px`,fontSize:`13px`,border:`1px solid #ccc`,borderRadius:`6px`}}),(0,m.jsx)(c,{variant:`primary`,onClick:A,disabled:!b.trim(),children:`Submit`})]}),S&&(0,m.jsx)(`p`,{style:{fontSize:`12px`,color:`#999`,margin:0},children:S})]})]}),(0,m.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:O&&(0,m.jsx)(d,{preferTargetId:w,cacheKey:E,chrome:!1})}),s&&(0,m.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:s})]}):(0,m.jsx)(`div`,{className:`connect-page`,children:(0,m.jsxs)(`div`,{className:`connect-content`,children:[(0,m.jsxs)(`div`,{className:`connect-logos`,children:[(0,m.jsx)(`div`,{className:`connect-logo-wrap`,children:(0,m.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`})}),(0,m.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,m.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,m.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,m.jsx)(`img`,{src:i,alt:n.productName,className:`connect-logo connect-logo--maxy`}),!n.logoContainsName&&(0,m.jsx)(`span`,{className:`connect-logo-label`,children:n.productName})]})]}),(0,m.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,n.productName]}),(0,m.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,m.jsx)(c,{variant:`primary`,onClick:M,disabled:a,children:a?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,m.jsx)(`p`,{style:{marginTop:`6px`,fontSize:`11px`,color:`#999`,maxWidth:`300px`,textAlign:`center`,lineHeight:`1.4`},children:`First time? You may need to sign into your email and Anthropic account in the browser before connecting.`}),(0,m.jsx)(`button`,{onClick:j,disabled:g,style:{marginTop:`12px`,background:`none`,border:`none`,color:`var(--color-primary, #666)`,fontSize:`13px`,cursor:`pointer`,textDecoration:`underline`,textUnderlineOffset:`3px`},children:g?`Launching…`:`Open browser first`}),s&&(0,m.jsx)(`p`,{className:`admin-pin-error`,children:s})]})})}function y({auth:e}){return e.appState===`loading`?(0,m.jsx)(t,{surface:`gate`}):e.appState===`set-pin`?(0,m.jsx)(g,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,setPinFormRef:e.setPinFormRef,onSubmit:e.handleSetPin,operatorName:e.operatorName,setOperatorName:e.setOperatorName}):e.appState===`connect-claude`?(0,m.jsx)(v,{authPolling:e.authPolling,setAuthPolling:e.setAuthPolling,authLoading:e.authLoading,setAuthLoading:e.setAuthLoading,pinError:e.pinError,setPinError:e.setPinError,setAppState:e.setAppState}):e.appState===`enter-pin`?(0,m.jsx)(_,{pin:e.pin,setPin:e.setPin,showPin:e.showPin,setShowPin:e.setShowPin,pinLoading:e.pinLoading,pinError:e.pinError,pinInputRef:e.pinInputRef,onSubmit:e.handleLogin,remoteAuthEnabled:e.remoteAuthEnabled,onSignOutRemote:()=>{window.location.href=`/__remote-auth/logout`}}):null}export{p as n,y as t};