@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
@@ -0,0 +1,34 @@
1
+ export interface ChannelSpawnTeeParams {
2
+ /** Absolute path to the node binary. On darwin the launchd server PATH
3
+ * excludes an nvm node, so a bare `node` fails to spawn (Task 1402); callers
4
+ * pass the installer-resolved NODE_BIN, exactly as they did before the tee. */
5
+ nodeBin: string;
6
+ /** Platform install root. The shim lives at
7
+ * `<platformRoot>/lib/mcp-spawn-tee/dist/index.js`, the same anchor every
8
+ * PLUGIN.md `mcp:` block uses via ${PLATFORM_ROOT}. */
9
+ platformRoot: string;
10
+ /** Brand log dir; the shim writes `mcp-<serverName>-<sessionId>.log` here. */
11
+ logDir: string;
12
+ /** Loopback platform port, so the shim can mirror its three lifecycle lines
13
+ * into server.log through /api/admin/log-ingest. Without it the per-session
14
+ * file still works and only that mirror is lost. */
15
+ platformPort: string;
16
+ sessionId: string;
17
+ /** MCP server name; also the middle segment of the log filename. */
18
+ serverName: string;
19
+ /** Absolute path to the built channel server entrypoint (dist/server.js). */
20
+ serverPath: string;
21
+ }
22
+ export interface ChannelSpawnTeeAttach {
23
+ command: string;
24
+ args: string[];
25
+ /** The shim's own four keys. The caller merges its channel env alongside. */
26
+ env: Record<string, string>;
27
+ }
28
+ export declare function buildChannelSpawnTee(p: ChannelSpawnTeeParams): ChannelSpawnTeeAttach;
29
+ /** The manager unit stamps PLATFORM_PORT and `buildMcpPlaceholders` already
30
+ * throws without it on every single spawn (pty-spawner.ts, Task 142), so this
31
+ * adds no new failure mode — it keeps the read out of the pure builders while
32
+ * refusing to stamp an empty value the shim would silently ignore. */
33
+ export declare function requirePlatformPort(env?: NodeJS.ProcessEnv): string;
34
+ //# sourceMappingURL=channel-spawn-tee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-spawn-tee.d.ts","sourceRoot":"","sources":["../src/channel-spawn-tee.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,qBAAqB;IACpC;;oFAEgF;IAChF,OAAO,EAAE,MAAM,CAAA;IACf;;4DAEwD;IACxD,YAAY,EAAE,MAAM,CAAA;IACpB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAA;IACd;;yDAEqD;IACrD,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAA;IAClB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC5B;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,CAWpF;AAED;;;uEAGuE;AACvE,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAMhF"}
@@ -0,0 +1,41 @@
1
+ // Task 2356 — the seam that runs a channel server through `mcp-spawn-tee`.
2
+ //
3
+ // The four channel servers (whatsapp, webchat, telegram, and the unified
4
+ // multi-target one) are the only stdio MCP children the platform spawns that
5
+ // were never wired to the shim every plugin MCP rides. Their console.error
6
+ // output — the reframe decision, the Task 813 notification retries, a failed
7
+ // receipt ack — existed only in a pipe Claude Code owns, so a message that was
8
+ // acked and never became a turn left no trace anywhere on disk.
9
+ //
10
+ // The shim (platform/lib/mcp-spawn-tee) is run as `node <shim> <real-entry>`.
11
+ // It replaces process.stderr.write with a tee, imports the real entry into its
12
+ // OWN process (one node runtime, not two), and mirrors every stderr byte to
13
+ // `${LOG_DIR}/mcp-${MCP_SPAWN_TEE_NAME}-${SESSION_ID}.log`.
14
+ //
15
+ // Pure (no fs, no process.env) like the four builders that consume it: the
16
+ // caller supplies concrete values and writes the per-spawn mcp file.
17
+ import { join } from 'node:path';
18
+ export function buildChannelSpawnTee(p) {
19
+ return {
20
+ command: p.nodeBin,
21
+ args: [join(p.platformRoot, 'lib', 'mcp-spawn-tee', 'dist', 'index.js'), p.serverPath],
22
+ env: {
23
+ MCP_SPAWN_TEE_NAME: p.serverName,
24
+ LOG_DIR: p.logDir,
25
+ SESSION_ID: p.sessionId,
26
+ PLATFORM_PORT: p.platformPort,
27
+ },
28
+ };
29
+ }
30
+ /** The manager unit stamps PLATFORM_PORT and `buildMcpPlaceholders` already
31
+ * throws without it on every single spawn (pty-spawner.ts, Task 142), so this
32
+ * adds no new failure mode — it keeps the read out of the pure builders while
33
+ * refusing to stamp an empty value the shim would silently ignore. */
34
+ export function requirePlatformPort(env = process.env) {
35
+ const v = env.PLATFORM_PORT;
36
+ if (!v) {
37
+ throw new Error('[claude-session-manager] PLATFORM_PORT not set — manager unit must stamp it (Task 142)');
38
+ }
39
+ return v;
40
+ }
41
+ //# sourceMappingURL=channel-spawn-tee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-spawn-tee.js","sourceRoot":"","sources":["../src/channel-spawn-tee.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,gEAAgE;AAChE,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,4DAA4D;AAC5D,EAAE;AACF,2EAA2E;AAC3E,qEAAqE;AAErE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AA+BhC,MAAM,UAAU,oBAAoB,CAAC,CAAwB;IAC3D,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;QACtF,GAAG,EAAE;YACH,kBAAkB,EAAE,CAAC,CAAC,UAAU;YAChC,OAAO,EAAE,CAAC,CAAC,MAAM;YACjB,UAAU,EAAE,CAAC,CAAC,SAAS;YACvB,aAAa,EAAE,CAAC,CAAC,YAAY;SAC9B;KACF,CAAA;AACH,CAAC;AAED;;;uEAGuE;AACvE,MAAM,UAAU,mBAAmB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACtE,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAA;IAC3B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;IAC3G,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ import { stream } from 'hono/streaming';
23
23
  import { existsSync, statSync, createReadStream, watchFile, unwatchFile, rmSync, mkdirSync, renameSync, readFileSync, writeFileSync, appendFileSync, openSync, readSync, closeSync } from 'node:fs';
24
24
  import { tmpdir } from 'node:os';
25
25
  import { buildWaChannelMcpServers, buildWaChannelArgv, waChannelMcpConfigPath, isDevChannelPrompt, WA_CHANNEL_SERVER_NAME } from './wa-channel-mcp.js';
26
+ import { requirePlatformPort } from './channel-spawn-tee.js';
26
27
  import { parseWaChannelBody, sessionIdFieldsFor } from './public-spawn-session.js';
27
28
  import { buildWebchatChannelMcpServers, buildWebchatChannelArgv, webchatChannelMcpConfigPath, WEBCHAT_CHANNEL_SERVER_NAME } from './webchat-channel-mcp.js';
28
29
  import { buildTelegramChannelMcpServers, buildTelegramChannelArgv, telegramChannelMcpConfigPath, TELEGRAM_CHANNEL_SERVER_NAME } from './telegram-channel-mcp.js';
@@ -3225,7 +3226,16 @@ export function buildHttpApp(deps) {
3225
3226
  // whose server is absent from this spawn.
3226
3227
  let channelServerName = null;
3227
3228
  if (sessionId && isMultiTarget(targetSet)) {
3228
- const unifiedServers = buildChannelMcpServers({ sessionId, targets: targetSet, nodeBin: deps.nodeBin });
3229
+ // Task 2356 the spawn-tee inputs, so this server's stderr lands in
3230
+ // logs/mcp-channel-<sessionId>.log.
3231
+ const unifiedServers = buildChannelMcpServers({
3232
+ sessionId,
3233
+ targets: targetSet,
3234
+ nodeBin: deps.nodeBin,
3235
+ platformRoot: deps.platformRoot,
3236
+ logDir: deps.logDir,
3237
+ platformPort: requirePlatformPort(),
3238
+ });
3229
3239
  const unifiedPath = channelMcpConfigPath(sessionId, tmpdir());
3230
3240
  try {
3231
3241
  writeFileSync(unifiedPath, JSON.stringify({ mcpServers: unifiedServers }, null, 2), 'utf8');
@@ -3250,6 +3260,11 @@ export function buildHttpApp(deps) {
3250
3260
  nodeBin: deps.nodeBin,
3251
3261
  // Task 2290 — the account the gateway keys this session's hub entry on.
3252
3262
  accountId: effectiveAccountId,
3263
+ // Task 2356 — the spawn-tee inputs, so this server's stderr lands in
3264
+ // logs/mcp-whatsapp-channel-<sessionId>.log.
3265
+ platformRoot: deps.platformRoot,
3266
+ logDir: deps.logDir,
3267
+ platformPort: requirePlatformPort(),
3253
3268
  });
3254
3269
  waPath = waChannelMcpConfigPath(sessionId, tmpdir());
3255
3270
  try {
@@ -3271,6 +3286,11 @@ export function buildHttpApp(deps) {
3271
3286
  gatewayUrl: effectiveWebchatChannel.gatewayUrl,
3272
3287
  serverPath: effectiveWebchatChannel.serverPath,
3273
3288
  nodeBin: deps.nodeBin,
3289
+ // Task 2356 — the spawn-tee inputs, so this server's stderr lands in
3290
+ // logs/mcp-webchat-channel-<sessionId>.log.
3291
+ platformRoot: deps.platformRoot,
3292
+ logDir: deps.logDir,
3293
+ platformPort: requirePlatformPort(),
3274
3294
  });
3275
3295
  webchatPath = webchatChannelMcpConfigPath(sessionId, tmpdir());
3276
3296
  try {
@@ -3299,6 +3319,11 @@ export function buildHttpApp(deps) {
3299
3319
  // Task 2325 — the body role, unchanged in meaning; `?? undefined`
3300
3320
  // only bridges null to the optional parameter this builder declares.
3301
3321
  role: rcRole ?? undefined,
3322
+ // Task 2356 — the spawn-tee inputs, so this server's stderr lands in
3323
+ // logs/mcp-telegram-channel-<sessionId>.log.
3324
+ platformRoot: deps.platformRoot,
3325
+ logDir: deps.logDir,
3326
+ platformPort: requirePlatformPort(),
3302
3327
  });
3303
3328
  telegramPath = telegramChannelMcpConfigPath(sessionId, tmpdir());
3304
3329
  try {