@rubytech/create-maxy-code 0.1.596 → 0.1.598

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 (230) hide show
  1. package/dist/__tests__/installer-settings-permissions.test.js +54 -0
  2. package/dist/__tests__/output-style-seed.test.js +23 -0
  3. package/dist/index.js +24 -0
  4. package/dist/permissions-seed.js +11 -2
  5. package/package.json +1 -1
  6. package/payload/platform/lib/routine-templates/dist/roster.d.ts +1 -1
  7. package/payload/platform/lib/routine-templates/dist/roster.d.ts.map +1 -1
  8. package/payload/platform/lib/routine-templates/dist/roster.js +22 -1
  9. package/payload/platform/lib/routine-templates/dist/roster.js.map +1 -1
  10. package/payload/platform/lib/routine-templates/src/__tests__/roster.test.ts +0 -0
  11. package/payload/platform/lib/routine-templates/src/__tests__/seed.test.ts +16 -0
  12. package/payload/platform/lib/routine-templates/src/roster.ts +24 -1
  13. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +11 -12
  14. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +11 -0
  15. package/payload/platform/plugins/docs/references/admin-ui.md +6 -5
  16. package/payload/platform/plugins/docs/references/settings.md +4 -6
  17. package/payload/platform/plugins/email/.claude-plugin/plugin.json +1 -1
  18. package/payload/platform/plugins/email/PLUGIN.md +2 -2
  19. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js +45 -1
  20. package/payload/platform/plugins/email/mcp/dist/__tests__/imap-drafts.test.js.map +1 -1
  21. package/payload/platform/plugins/email/mcp/dist/index.js +5 -4
  22. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  23. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +6 -4
  24. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -1
  25. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +42 -4
  26. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -1
  27. package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.d.ts +2 -1
  28. package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.d.ts.map +1 -1
  29. package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.js +1 -1
  30. package/payload/platform/plugins/email/mcp/dist/tools/email-fetch-body.js.map +1 -1
  31. package/payload/platform/plugins/email/references/email-reference.md +1 -1
  32. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +40 -12
  33. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js.map +1 -1
  34. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -1
  35. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +85 -63
  36. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
  37. package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-store.test.js +61 -3
  38. package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-store.test.js.map +1 -1
  39. package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-tool.test.js +122 -2
  40. package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-tool.test.js.map +1 -1
  41. package/payload/platform/plugins/telegram/mcp/dist/lib/card-store.d.ts +26 -0
  42. package/payload/platform/plugins/telegram/mcp/dist/lib/card-store.d.ts.map +1 -1
  43. package/payload/platform/plugins/telegram/mcp/dist/lib/card-store.js +73 -1
  44. package/payload/platform/plugins/telegram/mcp/dist/lib/card-store.js.map +1 -1
  45. package/payload/platform/plugins/telegram/mcp/dist/tools/card.d.ts +5 -0
  46. package/payload/platform/plugins/telegram/mcp/dist/tools/card.d.ts.map +1 -1
  47. package/payload/platform/plugins/telegram/mcp/dist/tools/card.js +101 -8
  48. package/payload/platform/plugins/telegram/mcp/dist/tools/card.js.map +1 -1
  49. package/payload/platform/services/claude-session-manager/dist/index.js +13 -0
  50. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  51. package/payload/platform/services/claude-session-manager/dist/output-style-audit.d.ts +42 -0
  52. package/payload/platform/services/claude-session-manager/dist/output-style-audit.d.ts.map +1 -0
  53. package/payload/platform/services/claude-session-manager/dist/output-style-audit.js +98 -0
  54. package/payload/platform/services/claude-session-manager/dist/output-style-audit.js.map +1 -0
  55. package/payload/platform/templates/output-styles/plain-assistant.md +50 -0
  56. package/payload/server/public/activity.html +6 -6
  57. package/payload/server/public/agents.html +5 -5
  58. package/payload/server/public/assets/{AdminLoginScreens-dBZJlMbp.js → AdminLoginScreens-B3W6J6Bl.js} +1 -1
  59. package/payload/server/public/assets/AdminLoginScreens-B3W6J6Bl.js.br +0 -0
  60. package/payload/server/public/assets/AdminLoginScreens-B3W6J6Bl.js.gz +0 -0
  61. package/payload/server/public/assets/{AdminShell-D94sgtsb.js → AdminShell-C3R-vMZ5.js} +1 -1
  62. package/payload/server/public/assets/AdminShell-C3R-vMZ5.js.br +0 -0
  63. package/payload/server/public/assets/AdminShell-C3R-vMZ5.js.gz +0 -0
  64. package/payload/server/public/assets/{activity-D6NEUvT7.js → activity-tzv68iBs.js} +1 -1
  65. package/payload/server/public/assets/activity-tzv68iBs.js.br +0 -0
  66. package/payload/server/public/assets/activity-tzv68iBs.js.gz +0 -0
  67. package/payload/server/public/assets/{admin-BluqXSKn.js → admin-CzW_9jm3.js} +1 -1
  68. package/payload/server/public/assets/admin-CzW_9jm3.js.br +0 -0
  69. package/payload/server/public/assets/admin-CzW_9jm3.js.gz +0 -0
  70. package/payload/server/public/assets/{agents-D_6V66dr.js → agents-DUZfeY3X.js} +1 -1
  71. package/payload/server/public/assets/agents-DUZfeY3X.js.br +0 -0
  72. package/payload/server/public/assets/agents-DUZfeY3X.js.gz +0 -0
  73. package/payload/server/public/assets/{browser-Bz9s6ztS.js → browser-DwLaXqjO.js} +1 -1
  74. package/payload/server/public/assets/browser-DwLaXqjO.js.br +0 -0
  75. package/payload/server/public/assets/browser-DwLaXqjO.js.gz +0 -0
  76. package/payload/server/public/assets/{calendar-D5OCrmwA.js → calendar-Cli8Qjl9.js} +1 -1
  77. package/payload/server/public/assets/calendar-Cli8Qjl9.js.br +0 -0
  78. package/payload/server/public/assets/calendar-Cli8Qjl9.js.gz +0 -0
  79. package/payload/server/public/assets/chat-ByAgBgm1.js +1 -0
  80. package/payload/server/public/assets/chat-ByAgBgm1.js.br +1 -0
  81. package/payload/server/public/assets/chat-ByAgBgm1.js.gz +0 -0
  82. package/payload/server/public/assets/chevron-left-BIYVnwvk.js +1 -0
  83. package/payload/server/public/assets/chevron-left-BIYVnwvk.js.br +0 -0
  84. package/payload/server/public/assets/clock-Dzy79hq3.js +1 -0
  85. package/payload/server/public/assets/clock-Dzy79hq3.js.br +0 -0
  86. package/payload/server/public/assets/clock-Dzy79hq3.js.gz +0 -0
  87. package/payload/server/public/assets/{copy-CXBu2lHL.js → copy-yhhwfEbQ.js} +1 -1
  88. package/payload/server/public/assets/copy-yhhwfEbQ.js.br +0 -0
  89. package/payload/server/public/assets/copy-yhhwfEbQ.js.gz +0 -0
  90. package/payload/server/public/assets/data-CsMMki2A.js +1 -0
  91. package/payload/server/public/assets/data-CsMMki2A.js.br +0 -0
  92. package/payload/server/public/assets/data-CsMMki2A.js.gz +0 -0
  93. package/payload/server/public/assets/{field-D4fXu_SP.js → field-jg0YQNDy.js} +1 -1
  94. package/payload/server/public/assets/field-jg0YQNDy.js.br +0 -0
  95. package/payload/server/public/assets/field-jg0YQNDy.js.gz +0 -0
  96. package/payload/server/public/assets/{file-text-BxZ1UMcQ.js → file-text-D0EdW7h4.js} +1 -1
  97. package/payload/server/public/assets/file-text-D0EdW7h4.js.br +0 -0
  98. package/payload/server/public/assets/file-text-D0EdW7h4.js.gz +0 -0
  99. package/payload/server/public/assets/{graph-DMleOCBZ.js → graph--AUr4uBc.js} +1 -1
  100. package/payload/server/public/assets/graph--AUr4uBc.js.br +0 -0
  101. package/payload/server/public/assets/graph--AUr4uBc.js.gz +0 -0
  102. package/payload/server/public/assets/{graph-labels-BHapdrTm.js → graph-labels-DM0CiAX1.js} +1 -1
  103. package/payload/server/public/assets/graph-labels-DM0CiAX1.js.br +0 -0
  104. package/payload/server/public/assets/graph-labels-DM0CiAX1.js.gz +0 -0
  105. package/payload/server/public/assets/{jsx-runtime-gqFnq1MC.css → jsx-runtime-lfcjzaWi.css} +1 -1
  106. package/payload/server/public/assets/jsx-runtime-lfcjzaWi.css.br +0 -0
  107. package/payload/server/public/assets/{jsx-runtime-gqFnq1MC.css.gz → jsx-runtime-lfcjzaWi.css.gz} +0 -0
  108. package/payload/server/public/assets/{operator-BpZTRiga.js → operator-CNYKStFX.js} +1 -1
  109. package/payload/server/public/assets/operator-CNYKStFX.js.br +0 -0
  110. package/payload/server/public/assets/operator-CNYKStFX.js.gz +0 -0
  111. package/payload/server/public/assets/{page-CsHWZZ0U.js → page-DSsEpl8J.js} +2 -2
  112. package/payload/server/public/assets/page-DSsEpl8J.js.br +0 -0
  113. package/payload/server/public/assets/page-DSsEpl8J.js.gz +0 -0
  114. package/payload/server/public/assets/{page-Dczx6CPP.js → page-DjhmwxnY.js} +1 -1
  115. package/payload/server/public/assets/page-DjhmwxnY.js.br +0 -0
  116. package/payload/server/public/assets/page-DjhmwxnY.js.gz +0 -0
  117. package/payload/server/public/assets/play-DhZlml5b.js +1 -0
  118. package/payload/server/public/assets/play-DhZlml5b.js.br +0 -0
  119. package/payload/server/public/assets/play-DhZlml5b.js.gz +0 -0
  120. package/payload/server/public/assets/{public-BzpELWaZ.js → public-7gXDqCog.js} +1 -1
  121. package/payload/server/public/assets/public-7gXDqCog.js.br +0 -0
  122. package/payload/server/public/assets/public-7gXDqCog.js.gz +0 -0
  123. package/payload/server/public/assets/{rotate-ccw-Bkpst1na.js → rotate-ccw-DhqNTPpo.js} +1 -1
  124. package/payload/server/public/assets/rotate-ccw-DhqNTPpo.js.br +0 -0
  125. package/payload/server/public/assets/rotate-ccw-DhqNTPpo.js.gz +0 -0
  126. package/payload/server/public/assets/{routines-Cmuf8pPP.js → routines-CWEuQ7Gl.js} +1 -1
  127. package/payload/server/public/assets/routines-CWEuQ7Gl.js.br +0 -0
  128. package/payload/server/public/assets/routines-CWEuQ7Gl.js.gz +0 -0
  129. package/payload/server/public/assets/{skills-Bfq3Pbw-.js → skills-pb_3BdOl.js} +1 -1
  130. package/payload/server/public/assets/skills-pb_3BdOl.js.br +0 -0
  131. package/payload/server/public/assets/skills-pb_3BdOl.js.gz +0 -0
  132. package/payload/server/public/assets/{tasks-nyWLrolq.js → tasks-BQm4boat.js} +1 -1
  133. package/payload/server/public/assets/tasks-BQm4boat.js.br +0 -0
  134. package/payload/server/public/assets/tasks-BQm4boat.js.gz +0 -0
  135. package/payload/server/public/assets/{triangle-alert-DkENIQJ6.js → triangle-alert-d7yjaIqv.js} +1 -1
  136. package/payload/server/public/assets/triangle-alert-d7yjaIqv.js.br +0 -0
  137. package/payload/server/public/assets/triangle-alert-d7yjaIqv.js.gz +0 -0
  138. package/payload/server/public/assets/{useCopyFeedback-DmNjbXe9.js → useCopyFeedback-CZ6Qhfkj.js} +1 -1
  139. package/payload/server/public/assets/useCopyFeedback-CZ6Qhfkj.js.br +0 -0
  140. package/payload/server/public/assets/useCopyFeedback-CZ6Qhfkj.js.gz +0 -0
  141. package/payload/server/public/assets/{useMediaQuery-DL-C1y_F.js → useMediaQuery-R1smYLx4.js} +1 -1
  142. package/payload/server/public/assets/useMediaQuery-R1smYLx4.js.br +0 -0
  143. package/payload/server/public/assets/useMediaQuery-R1smYLx4.js.gz +0 -0
  144. package/payload/server/public/assets/{useVoiceRecorder-DseLVULD.js → useVoiceRecorder-DM1v6sRa.js} +1 -1
  145. package/payload/server/public/assets/useVoiceRecorder-DM1v6sRa.js.br +0 -0
  146. package/payload/server/public/assets/useVoiceRecorder-DM1v6sRa.js.gz +0 -0
  147. package/payload/server/public/assets/{wrench-C7tdp6z9.js → wrench-DL1pbaCs.js} +1 -1
  148. package/payload/server/public/assets/wrench-DL1pbaCs.js.br +0 -0
  149. package/payload/server/public/assets/wrench-DL1pbaCs.js.gz +0 -0
  150. package/payload/server/public/browser.html +5 -5
  151. package/payload/server/public/calendar.html +8 -8
  152. package/payload/server/public/chat.html +14 -14
  153. package/payload/server/public/data.html +12 -12
  154. package/payload/server/public/field.html +3 -3
  155. package/payload/server/public/graph.html +10 -10
  156. package/payload/server/public/index.html +14 -14
  157. package/payload/server/public/operator.html +16 -16
  158. package/payload/server/public/public.html +14 -14
  159. package/payload/server/public/routines.html +8 -8
  160. package/payload/server/public/skills.html +6 -6
  161. package/payload/server/public/tasks.html +7 -7
  162. package/payload/server/server.js +140 -6
  163. package/payload/server/public/assets/AdminLoginScreens-dBZJlMbp.js.br +0 -0
  164. package/payload/server/public/assets/AdminLoginScreens-dBZJlMbp.js.gz +0 -0
  165. package/payload/server/public/assets/AdminShell-D94sgtsb.js.br +0 -0
  166. package/payload/server/public/assets/AdminShell-D94sgtsb.js.gz +0 -0
  167. package/payload/server/public/assets/activity-D6NEUvT7.js.br +0 -0
  168. package/payload/server/public/assets/activity-D6NEUvT7.js.gz +0 -0
  169. package/payload/server/public/assets/admin-BluqXSKn.js.br +0 -0
  170. package/payload/server/public/assets/admin-BluqXSKn.js.gz +0 -0
  171. package/payload/server/public/assets/agents-D_6V66dr.js.br +0 -0
  172. package/payload/server/public/assets/agents-D_6V66dr.js.gz +0 -0
  173. package/payload/server/public/assets/browser-Bz9s6ztS.js.br +0 -0
  174. package/payload/server/public/assets/browser-Bz9s6ztS.js.gz +0 -0
  175. package/payload/server/public/assets/calendar-D5OCrmwA.js.br +0 -0
  176. package/payload/server/public/assets/calendar-D5OCrmwA.js.gz +0 -0
  177. package/payload/server/public/assets/chat-CjlbEzZ-.js +0 -1
  178. package/payload/server/public/assets/chat-CjlbEzZ-.js.br +0 -1
  179. package/payload/server/public/assets/chat-CjlbEzZ-.js.gz +0 -0
  180. package/payload/server/public/assets/chevron-left-b_r2jNvg.js +0 -1
  181. package/payload/server/public/assets/chevron-left-b_r2jNvg.js.br +0 -0
  182. package/payload/server/public/assets/clock-D8tMbEZD.js +0 -1
  183. package/payload/server/public/assets/clock-D8tMbEZD.js.br +0 -0
  184. package/payload/server/public/assets/clock-D8tMbEZD.js.gz +0 -0
  185. package/payload/server/public/assets/copy-CXBu2lHL.js.br +0 -0
  186. package/payload/server/public/assets/copy-CXBu2lHL.js.gz +0 -0
  187. package/payload/server/public/assets/data-ChHg_Lq9.js +0 -1
  188. package/payload/server/public/assets/data-ChHg_Lq9.js.br +0 -0
  189. package/payload/server/public/assets/data-ChHg_Lq9.js.gz +0 -0
  190. package/payload/server/public/assets/field-D4fXu_SP.js.br +0 -0
  191. package/payload/server/public/assets/field-D4fXu_SP.js.gz +0 -0
  192. package/payload/server/public/assets/file-text-BxZ1UMcQ.js.br +0 -0
  193. package/payload/server/public/assets/file-text-BxZ1UMcQ.js.gz +0 -0
  194. package/payload/server/public/assets/graph-DMleOCBZ.js.br +0 -0
  195. package/payload/server/public/assets/graph-DMleOCBZ.js.gz +0 -0
  196. package/payload/server/public/assets/graph-labels-BHapdrTm.js.br +0 -0
  197. package/payload/server/public/assets/graph-labels-BHapdrTm.js.gz +0 -0
  198. package/payload/server/public/assets/jsx-runtime-gqFnq1MC.css.br +0 -0
  199. package/payload/server/public/assets/operator-BpZTRiga.js.br +0 -0
  200. package/payload/server/public/assets/operator-BpZTRiga.js.gz +0 -0
  201. package/payload/server/public/assets/page-CsHWZZ0U.js.br +0 -0
  202. package/payload/server/public/assets/page-CsHWZZ0U.js.gz +0 -0
  203. package/payload/server/public/assets/page-Dczx6CPP.js.br +0 -0
  204. package/payload/server/public/assets/page-Dczx6CPP.js.gz +0 -0
  205. package/payload/server/public/assets/play-D_xdb6gy.js +0 -1
  206. package/payload/server/public/assets/play-D_xdb6gy.js.br +0 -0
  207. package/payload/server/public/assets/play-D_xdb6gy.js.gz +0 -0
  208. package/payload/server/public/assets/public-BzpELWaZ.js.br +0 -0
  209. package/payload/server/public/assets/public-BzpELWaZ.js.gz +0 -0
  210. package/payload/server/public/assets/rotate-ccw-Bkpst1na.js.br +0 -0
  211. package/payload/server/public/assets/rotate-ccw-Bkpst1na.js.gz +0 -0
  212. package/payload/server/public/assets/routines-Cmuf8pPP.js.br +0 -0
  213. package/payload/server/public/assets/routines-Cmuf8pPP.js.gz +0 -0
  214. package/payload/server/public/assets/skills-Bfq3Pbw-.js.br +0 -0
  215. package/payload/server/public/assets/skills-Bfq3Pbw-.js.gz +0 -0
  216. package/payload/server/public/assets/tasks-nyWLrolq.js.br +0 -0
  217. package/payload/server/public/assets/tasks-nyWLrolq.js.gz +0 -0
  218. package/payload/server/public/assets/triangle-alert-DkENIQJ6.js.br +0 -0
  219. package/payload/server/public/assets/triangle-alert-DkENIQJ6.js.gz +0 -0
  220. package/payload/server/public/assets/useCopyFeedback-DmNjbXe9.js.br +0 -1
  221. package/payload/server/public/assets/useCopyFeedback-DmNjbXe9.js.gz +0 -0
  222. package/payload/server/public/assets/useMediaQuery-DL-C1y_F.js.br +0 -0
  223. package/payload/server/public/assets/useMediaQuery-DL-C1y_F.js.gz +0 -0
  224. package/payload/server/public/assets/useVoiceRecorder-DseLVULD.js.br +0 -0
  225. package/payload/server/public/assets/useVoiceRecorder-DseLVULD.js.gz +0 -0
  226. package/payload/server/public/assets/wrench-C7tdp6z9.js.br +0 -0
  227. package/payload/server/public/assets/wrench-C7tdp6z9.js.gz +0 -0
  228. /package/payload/server/public/assets/{jsx-runtime-BcrVQeV-.js → jsx-runtime-BtDK2X5t.js} +0 -0
  229. /package/payload/server/public/assets/{jsx-runtime-BcrVQeV-.js.br → jsx-runtime-BtDK2X5t.js.br} +0 -0
  230. /package/payload/server/public/assets/{jsx-runtime-BcrVQeV-.js.gz → jsx-runtime-BtDK2X5t.js.gz} +0 -0
@@ -5,13 +5,13 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Skills — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/skills-Bfq3Pbw-.js"></script>
8
+ <script type="module" crossorigin src="/assets/skills-pb_3BdOl.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-BycB0eMI.js">
10
- <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BcrVQeV-.js">
11
- <link rel="modulepreload" crossorigin href="/assets/useMediaQuery-DL-C1y_F.js">
12
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-D94sgtsb.js">
13
- <link rel="modulepreload" crossorigin href="/assets/file-text-BxZ1UMcQ.js">
14
- <link rel="stylesheet" crossorigin href="/assets/jsx-runtime-gqFnq1MC.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BtDK2X5t.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/useMediaQuery-R1smYLx4.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-C3R-vMZ5.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/file-text-D0EdW7h4.js">
14
+ <link rel="stylesheet" crossorigin href="/assets/jsx-runtime-lfcjzaWi.css">
15
15
  <link rel="stylesheet" crossorigin href="/assets/useMediaQuery-DXAuc8G-.css">
16
16
  <link rel="stylesheet" href="/brand-defaults.css">
17
17
  </head>
@@ -5,14 +5,14 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Tasks — Maxy</title>
7
7
  <link rel="icon" href="/favicon.ico">
8
- <script type="module" crossorigin src="/assets/tasks-nyWLrolq.js"></script>
8
+ <script type="module" crossorigin src="/assets/tasks-BQm4boat.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/chunk-BycB0eMI.js">
10
- <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BcrVQeV-.js">
11
- <link rel="modulepreload" crossorigin href="/assets/useMediaQuery-DL-C1y_F.js">
12
- <link rel="modulepreload" crossorigin href="/assets/AdminShell-D94sgtsb.js">
13
- <link rel="modulepreload" crossorigin href="/assets/play-D_xdb6gy.js">
14
- <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-Bkpst1na.js">
15
- <link rel="stylesheet" crossorigin href="/assets/jsx-runtime-gqFnq1MC.css">
10
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BtDK2X5t.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/useMediaQuery-R1smYLx4.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/AdminShell-C3R-vMZ5.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/play-DhZlml5b.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-DhqNTPpo.js">
15
+ <link rel="stylesheet" crossorigin href="/assets/jsx-runtime-lfcjzaWi.css">
16
16
  <link rel="stylesheet" crossorigin href="/assets/useMediaQuery-DXAuc8G-.css">
17
17
  <link rel="stylesheet" href="/brand-defaults.css">
18
18
  </head>
@@ -4248,6 +4248,26 @@ var CHANNEL_REPLY_DOCUMENT_TOOL = "mcp__channel__reply-document";
4248
4248
  var WA_SEND_PARTY_TOOL = "mcp__whatsapp-channel__send-to-party";
4249
4249
  var CHANNEL_SEND_PARTY_TOOL = "mcp__channel__send-to-party";
4250
4250
  var SEND_USER_FILE_TOOL = "SendUserFile";
4251
+ var TELEGRAM_CARD_TOOLS = /* @__PURE__ */ new Set([
4252
+ "mcp__telegram__telegram-card",
4253
+ "mcp__plugin_telegram_telegram__telegram-card"
4254
+ ]);
4255
+ function parseCardButtonsFromInput(input) {
4256
+ const rows = input?.buttons;
4257
+ if (!Array.isArray(rows)) return [];
4258
+ const out = [];
4259
+ for (const row of rows) {
4260
+ if (!Array.isArray(row)) continue;
4261
+ for (const b of row) {
4262
+ if (!b || typeof b !== "object") continue;
4263
+ const text = b.text;
4264
+ if (typeof text !== "string") continue;
4265
+ const data = b.callbackData;
4266
+ out.push({ text, data: typeof data === "string" ? data : null });
4267
+ }
4268
+ }
4269
+ return out;
4270
+ }
4251
4271
  var CLI_MARKER_PREFIXES = ["<local-command-", "<command-name>", "<command-message>"];
4252
4272
  var HARNESS_LIFECYCLE_PREFIXES = ["<task-notification>"];
4253
4273
  var CC_IMAGE_VISION_HINT = /^\[Image:[^\]]*Multiply coordinates by [\d.]+ to map to original image\.\]$/;
@@ -4410,6 +4430,14 @@ function assistantTurns(content, ts, promoteFinal = false, erroredIds = /* @__PU
4410
4430
  } else {
4411
4431
  out.push({ kind: "agent-file", files, caption, ts });
4412
4432
  }
4433
+ } else if (b.type === "tool_use" && typeof b.name === "string" && TELEGRAM_CARD_TOOLS.has(b.name)) {
4434
+ const input = b.input ?? {};
4435
+ out.push({
4436
+ kind: "telegram-card",
4437
+ text: typeof input.text === "string" ? input.text : "",
4438
+ buttons: parseCardButtonsFromInput(b.input),
4439
+ ts
4440
+ });
4413
4441
  } else if (b.type === "tool_use" && typeof b.name === "string") {
4414
4442
  out.push({ kind: "tool-call", name: b.name, input: b.input ?? null, ts });
4415
4443
  }
@@ -15025,6 +15053,7 @@ function foldPatches(rows, uploadsBase) {
15025
15053
  if (metas.length > 0) patch.attachments = [...patch.attachments ?? [], ...metas];
15026
15054
  }
15027
15055
  if (row.body !== void 0) patch.text = row.body;
15056
+ if (row.buttons) patch.buttons = row.buttons;
15028
15057
  if (row.deleted === true) patch.deleted = true;
15029
15058
  out.set(row.targetMessageId, patch);
15030
15059
  }
@@ -15041,6 +15070,9 @@ function toTurn(r, patch) {
15041
15070
  origin: r.origin,
15042
15071
  messageId: r.messageId,
15043
15072
  ...patch?.attachments ? { attachments: patch.attachments } : {},
15073
+ // Task 2677 — the card's button labels: the edit patch wins, else the row's
15074
+ // own. Spread, so an ordinary message row carries no key.
15075
+ ...patch?.buttons ?? r.buttons ? { buttons: patch?.buttons ?? r.buttons } : {},
15044
15076
  // Task 2615 — spread, so a turn nobody deleted carries no key at all and
15045
15077
  // every pre-2615 frame stays byte-identical. The BODY is kept: Telegram
15046
15078
  // sends none on a deletion, so the stored body is the only account anywhere
@@ -40111,7 +40143,11 @@ function startEmitter(opts) {
40111
40143
  if (pre && Array.isArray(pre.content)) {
40112
40144
  for (const block of pre.content) {
40113
40145
  if (block?.type === "tool_use" && typeof block.name === "string") {
40114
- opts.onToolUse(block.name);
40146
+ opts.onToolUse({
40147
+ name: block.name,
40148
+ input: block.input,
40149
+ id: typeof block.id === "string" ? block.id : ""
40150
+ });
40115
40151
  }
40116
40152
  }
40117
40153
  }
@@ -40146,6 +40182,19 @@ function startEmitter(opts) {
40146
40182
  }
40147
40183
  }
40148
40184
  }
40185
+ if (opts.onToolResult && !suppressing) {
40186
+ const umsg = event.message;
40187
+ if (umsg && Array.isArray(umsg.content)) {
40188
+ for (const block of umsg.content) {
40189
+ if (block?.type !== "tool_result" || typeof block.tool_use_id !== "string") continue;
40190
+ opts.onToolResult({
40191
+ toolUseId: block.tool_use_id,
40192
+ text: toolResultText(block.content),
40193
+ isError: block.is_error === true
40194
+ });
40195
+ }
40196
+ }
40197
+ }
40149
40198
  if (!suppressing) opts.onTurnStart?.(classifyTurnStart(event));
40150
40199
  firedFileTools = [];
40151
40200
  continue;
@@ -41667,7 +41716,7 @@ var sessions3 = /* @__PURE__ */ new Map();
41667
41716
  function entry2(sessionId) {
41668
41717
  let e = sessions3.get(sessionId);
41669
41718
  if (!e) {
41670
- e = { armed: 0, suppressed: 0, delivered: 0 };
41719
+ e = { armed: 0, suppressed: 0, delivered: 0, persisted: 0 };
41671
41720
  sessions3.set(sessionId, e);
41672
41721
  }
41673
41722
  return e;
@@ -41682,23 +41731,50 @@ function noteCardDelivered(sessionId) {
41682
41731
  const e = sessions3.get(sessionId);
41683
41732
  if (e && e.armed > 0) e.delivered += 1;
41684
41733
  }
41734
+ function noteCardPersisted(sessionId) {
41735
+ const e = sessions3.get(sessionId);
41736
+ if (e && e.armed > 0) e.persisted += 1;
41737
+ }
41685
41738
  function cardCensusLines() {
41686
41739
  let armed2 = 0;
41687
41740
  let suppressed = 0;
41688
41741
  let delivered = 0;
41742
+ let persisted = 0;
41689
41743
  for (const e of sessions3.values()) {
41690
41744
  armed2 += e.armed;
41691
41745
  suppressed += e.suppressed;
41692
41746
  delivered += e.delivered;
41747
+ persisted += e.persisted;
41693
41748
  }
41694
41749
  const silent = Math.max(0, armed2 - suppressed - delivered);
41695
41750
  return [
41696
- `[telegram-card-suppression-census] sessions=${sessions3.size} armed=${armed2} suppressed=${suppressed} silent-turns=${silent}`
41751
+ `[telegram-card-suppression-census] sessions=${sessions3.size} armed=${armed2} suppressed=${suppressed} silent-turns=${silent} persisted=${persisted}`
41697
41752
  ];
41698
41753
  }
41699
41754
 
41700
41755
  // app/lib/telegram/gateway/native-file-follower.ts
41701
41756
  var TELEGRAM_CARD_TOOL = "mcp__telegram__telegram-card";
41757
+ var CARD_TOOL_NAMES = /* @__PURE__ */ new Set([
41758
+ "mcp__telegram__telegram-card",
41759
+ "mcp__plugin_telegram_telegram__telegram-card"
41760
+ ]);
41761
+ var CARD_RESULT_RE = /card-result: outcome=(sent|edited|unchanged|none) messageId=(\d+|none)/;
41762
+ function parseCardButtons(input) {
41763
+ const rows = input?.buttons;
41764
+ if (!Array.isArray(rows)) return [];
41765
+ const out = [];
41766
+ for (const row of rows) {
41767
+ if (!Array.isArray(row)) continue;
41768
+ for (const b of row) {
41769
+ if (!b || typeof b !== "object") continue;
41770
+ const text = b.text;
41771
+ if (typeof text !== "string") continue;
41772
+ const data = b.callbackData;
41773
+ out.push({ text, data: typeof data === "string" ? data : null });
41774
+ }
41775
+ }
41776
+ return out;
41777
+ }
41702
41778
  var CHAT_ACTION_REFRESH_MS = 4e3;
41703
41779
  function startTelegramNativeFileFollower(input) {
41704
41780
  const entry3 = {
@@ -41719,6 +41795,9 @@ function startTelegramNativeFileFollower(input) {
41719
41795
  // The chat id the document is addressed to (set per spawn from the inbound).
41720
41796
  replyTarget: input.chatId
41721
41797
  };
41798
+ const pendingCards = /* @__PURE__ */ new Map();
41799
+ const channelKey = input.senderId;
41800
+ const numericSenderId = parseTelegramChannelKey(channelKey)?.senderId ?? input.chatId;
41722
41801
  let lastChatActionAt = Number.NEGATIVE_INFINITY;
41723
41802
  let turnOpen = false;
41724
41803
  let cardSentThisTurn = false;
@@ -41797,12 +41876,67 @@ function startTelegramNativeFileFollower(input) {
41797
41876
  // CARD_SHAPE and card.ts always issues sendMessage or editMessageText
41798
41877
  // before it reaches the optional answerCallbackQuery, so there is no card
41799
41878
  // call that posts nothing and no bare acknowledgement to keep the text for.
41800
- onToolUse: (name) => {
41801
- if (name !== TELEGRAM_CARD_TOOL) return;
41879
+ onToolUse: (tool) => {
41880
+ if (CARD_TOOL_NAMES.has(tool.name) && tool.id) {
41881
+ const text = tool.input?.text;
41882
+ pendingCards.set(tool.id, {
41883
+ text: typeof text === "string" ? text : "",
41884
+ buttons: parseCardButtons(tool.input)
41885
+ });
41886
+ }
41887
+ if (tool.name !== TELEGRAM_CARD_TOOL) return;
41802
41888
  cardSentThisTurn = true;
41803
41889
  noteCardArmed(input.sessionId);
41804
41890
  console.error(
41805
- `[telegram-public] op=card-armed sessionId=${input.sessionId.slice(0, 8)} tool=${name}`
41891
+ `[telegram-public] op=card-armed sessionId=${input.sessionId.slice(0, 8)} tool=${tool.name}`
41892
+ );
41893
+ },
41894
+ // Task 2677 — the card's send outcome and message id arrive here, parsed out
41895
+ // of the result text card.ts encoded them into. On a confirmed send write one
41896
+ // outbound store row keyed by the card message id; on an edit patch that same
41897
+ // row (Telegram reuses the id for an edit); unchanged/none write nothing.
41898
+ onToolResult: ({ toolUseId, text }) => {
41899
+ const pending = pendingCards.get(toolUseId);
41900
+ if (!pending) return;
41901
+ pendingCards.delete(toolUseId);
41902
+ const m = CARD_RESULT_RE.exec(text);
41903
+ if (!m) return;
41904
+ const outcome = m[1];
41905
+ const messageId = m[2];
41906
+ if (outcome !== "sent" && outcome !== "edited" || messageId === "none") return;
41907
+ const at = (/* @__PURE__ */ new Date()).toISOString();
41908
+ const rowId = `telegram:${input.accountId}:${channelKey}:card:${messageId}`;
41909
+ if (outcome === "sent") {
41910
+ appendMessage2(input.accountId, {
41911
+ messageId: rowId,
41912
+ sessionId: input.sessionId,
41913
+ dateSent: at,
41914
+ body: pending.text,
41915
+ fromMe: true,
41916
+ senderId: numericSenderId,
41917
+ senderName: null,
41918
+ chatId: input.chatId,
41919
+ channelKey,
41920
+ // Telegram row scope is not consumed for rendering or routing (only
41921
+ // WhatsApp rows feed the operator-conversations scope counter); 'admin'
41922
+ // matches the operator-surface intent of the card row.
41923
+ scope: "admin",
41924
+ origin: "agent",
41925
+ ...pending.buttons.length > 0 ? { buttons: pending.buttons } : {},
41926
+ createdAt: at
41927
+ });
41928
+ } else {
41929
+ appendUpdate(input.accountId, channelKey, {
41930
+ kind: "update",
41931
+ targetMessageId: rowId,
41932
+ body: pending.text,
41933
+ ...pending.buttons.length > 0 ? { buttons: pending.buttons } : {},
41934
+ createdAt: at
41935
+ });
41936
+ }
41937
+ noteCardPersisted(input.sessionId);
41938
+ console.error(
41939
+ `[telegram-adaptor] op=card-persisted sessionId=${input.sessionId.slice(0, 8)} messageId=${messageId} outcome=${outcome} buttons=${pending.buttons.length}`
41806
41940
  );
41807
41941
  },
41808
41942
  // Task 2521 — the answer reaches every bound door through the one fan-out.
@@ -1 +0,0 @@
1
- import{n as e,t}from"./jsx-runtime-BcrVQeV-.js";import"./useMediaQuery-DL-C1y_F.js";import"./useVoiceRecorder-DseLVULD.js";import"./AdminShell-D94sgtsb.js";import{n}from"./page-CsHWZZ0U.js";import"./useCopyFeedback-DmNjbXe9.js";var r=e(),i=t();(0,r.createRoot)(document.getElementById(`root`)).render((0,i.jsx)(n,{}));
@@ -1 +0,0 @@
1
- =`��i�ez��1����Ʋ hۏ�(ɻ8N1��2+f}��x�t��ɝ�|��&| ��������_������T���(D`���Z�_
@@ -1 +0,0 @@
1
- import{Z as e}from"./useMediaQuery-DL-C1y_F.js";var t=e(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]);export{t};
@@ -1 +0,0 @@
1
- import{Z as e}from"./useMediaQuery-DL-C1y_F.js";var t=e(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]);export{t};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./jsx-runtime-BcrVQeV-.js";import"./useMediaQuery-DL-C1y_F.js";import"./useVoiceRecorder-DseLVULD.js";import{t as n}from"./page-Dczx6CPP.js";import"./graph-labels-BHapdrTm.js";var r=e(),i=t();(0,r.createRoot)(document.getElementById(`root`)).render((0,i.jsx)(n,{}));
@@ -1 +0,0 @@
1
- import{Z as e}from"./useMediaQuery-DL-C1y_F.js";var t=e(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]);export{t};
@@ -1 +0,0 @@
1
- `d����