@rubytech/create-maxy-code 0.1.592 → 0.1.594

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 (339) hide show
  1. package/package.json +2 -2
  2. package/payload/platform/package.json +1 -0
  3. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +11 -5
  4. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +11 -0
  5. package/payload/platform/plugins/cloudflare/PLUGIN.md +2 -0
  6. package/payload/platform/plugins/docs/references/internals.md +5 -3
  7. package/payload/platform/plugins/docs/references/telegram-guide.md +5 -1
  8. package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
  9. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +15 -2
  10. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js.map +1 -1
  11. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -1
  12. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +7 -2
  13. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
  14. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js +125 -1
  15. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js.map +1 -1
  16. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.d.ts +28 -0
  17. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.d.ts.map +1 -1
  18. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js +72 -12
  19. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js.map +1 -1
  20. package/payload/platform/plugins/telegram/PLUGIN.md +12 -5
  21. package/payload/platform/plugins/telegram/mcp/dist/__tests__/ask-tool.test.js +31 -0
  22. package/payload/platform/plugins/telegram/mcp/dist/__tests__/ask-tool.test.js.map +1 -1
  23. package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-tool.test.js +30 -0
  24. package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-tool.test.js.map +1 -1
  25. package/payload/platform/plugins/telegram/mcp/dist/__tests__/media-fetch-tool.test.js +24 -0
  26. package/payload/platform/plugins/telegram/mcp/dist/__tests__/media-fetch-tool.test.js.map +1 -1
  27. package/payload/platform/plugins/telegram/mcp/dist/__tests__/media-send-tool.test.js +31 -0
  28. package/payload/platform/plugins/telegram/mcp/dist/__tests__/media-send-tool.test.js.map +1 -1
  29. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.d.ts +2 -0
  30. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.d.ts.map +1 -0
  31. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.js +55 -0
  32. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.js.map +1 -0
  33. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.d.ts +2 -0
  34. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.d.ts.map +1 -0
  35. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.js +89 -0
  36. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.js.map +1 -0
  37. package/payload/platform/plugins/telegram/mcp/dist/index.js +13 -42
  38. package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -1
  39. package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.d.ts +80 -0
  40. package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.d.ts.map +1 -0
  41. package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.js +96 -0
  42. package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.js.map +1 -0
  43. package/payload/platform/plugins/telegram/mcp/dist/tools/ask.d.ts +5 -0
  44. package/payload/platform/plugins/telegram/mcp/dist/tools/ask.d.ts.map +1 -1
  45. package/payload/platform/plugins/telegram/mcp/dist/tools/ask.js.map +1 -1
  46. package/payload/platform/plugins/telegram/mcp/dist/tools/card.d.ts +5 -0
  47. package/payload/platform/plugins/telegram/mcp/dist/tools/card.d.ts.map +1 -1
  48. package/payload/platform/plugins/telegram/mcp/dist/tools/card.js.map +1 -1
  49. package/payload/platform/plugins/telegram/mcp/dist/tools/media-fetch.d.ts +5 -0
  50. package/payload/platform/plugins/telegram/mcp/dist/tools/media-fetch.d.ts.map +1 -1
  51. package/payload/platform/plugins/telegram/mcp/dist/tools/media-fetch.js.map +1 -1
  52. package/payload/platform/plugins/telegram/mcp/dist/tools/media-send.d.ts +5 -0
  53. package/payload/platform/plugins/telegram/mcp/dist/tools/media-send.d.ts.map +1 -1
  54. package/payload/platform/plugins/telegram/mcp/dist/tools/media-send.js.map +1 -1
  55. package/payload/platform/plugins/telegram/mcp/dist/tools/thread.d.ts +5 -0
  56. package/payload/platform/plugins/telegram/mcp/dist/tools/thread.d.ts.map +1 -1
  57. package/payload/platform/plugins/telegram/mcp/dist/tools/thread.js.map +1 -1
  58. package/payload/platform/scripts/__tests__/agent-identity-reconcile.test.sh +110 -0
  59. package/payload/platform/scripts/__tests__/check-orphan-dist.test.sh +87 -0
  60. package/payload/platform/scripts/check-orphan-dist.mjs +143 -0
  61. package/payload/platform/scripts/lib/agent-identity-reconcile.sh +122 -0
  62. package/payload/platform/scripts/lib/provision-account-dir.sh +8 -26
  63. package/payload/platform/scripts/setup-account.sh +15 -0
  64. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +37 -0
  65. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  66. package/payload/platform/services/claude-session-manager/dist/http-server.js +178 -13
  67. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  68. package/payload/platform/services/claude-session-manager/dist/index.js +5 -0
  69. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  70. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts +5 -0
  71. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts.map +1 -1
  72. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js +42 -1
  73. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js.map +1 -1
  74. package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.d.ts +13 -5
  75. package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.d.ts.map +1 -1
  76. package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.js +23 -9
  77. package/payload/platform/services/claude-session-manager/dist/rc-public-lockdown.js.map +1 -1
  78. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts +7 -4
  79. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts.map +1 -1
  80. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js +5 -3
  81. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js.map +1 -1
  82. package/payload/platform/services/claude-session-manager/dist/telegram-channel-store.d.ts +15 -1
  83. package/payload/platform/services/claude-session-manager/dist/telegram-channel-store.d.ts.map +1 -1
  84. package/payload/platform/services/claude-session-manager/dist/telegram-channel-store.js +16 -7
  85. package/payload/platform/services/claude-session-manager/dist/telegram-channel-store.js.map +1 -1
  86. package/payload/platform/services/claude-session-manager/dist/telegram-plugin-mcp.d.ts +28 -0
  87. package/payload/platform/services/claude-session-manager/dist/telegram-plugin-mcp.d.ts.map +1 -0
  88. package/payload/platform/services/claude-session-manager/dist/telegram-plugin-mcp.js +53 -0
  89. package/payload/platform/services/claude-session-manager/dist/telegram-plugin-mcp.js.map +1 -0
  90. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts +9 -5
  91. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts.map +1 -1
  92. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js +12 -6
  93. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js.map +1 -1
  94. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts +7 -3
  95. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts.map +1 -1
  96. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js +5 -1
  97. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js.map +1 -1
  98. package/payload/platform/services/telegram-channel/dist/instructions.d.ts +14 -2
  99. package/payload/platform/services/telegram-channel/dist/instructions.d.ts.map +1 -1
  100. package/payload/platform/services/telegram-channel/dist/instructions.js +34 -3
  101. package/payload/platform/services/telegram-channel/dist/instructions.js.map +1 -1
  102. package/payload/platform/templates/agents/public/IDENTITY.md +3 -3
  103. package/payload/server/server.js +74 -9
  104. package/payload/platform/lib/anthropic-key/dist/index.d.ts +0 -22
  105. package/payload/platform/lib/anthropic-key/dist/index.d.ts.map +0 -1
  106. package/payload/platform/lib/anthropic-key/dist/index.js +0 -232
  107. package/payload/platform/lib/anthropic-key/dist/index.js.map +0 -1
  108. package/payload/platform/lib/graph-search/dist/query-expansion.d.ts +0 -37
  109. package/payload/platform/lib/graph-search/dist/query-expansion.d.ts.map +0 -1
  110. package/payload/platform/lib/graph-search/dist/query-expansion.js +0 -101
  111. package/payload/platform/lib/graph-search/dist/query-expansion.js.map +0 -1
  112. package/payload/platform/lib/oauth-llm/dist/index.d.ts +0 -116
  113. package/payload/platform/lib/oauth-llm/dist/index.d.ts.map +0 -1
  114. package/payload/platform/lib/oauth-llm/dist/index.js +0 -386
  115. package/payload/platform/lib/oauth-llm/dist/index.js.map +0 -1
  116. package/payload/platform/lib/screening-patterns/dist/index.d.ts +0 -29
  117. package/payload/platform/lib/screening-patterns/dist/index.d.ts.map +0 -1
  118. package/payload/platform/lib/screening-patterns/dist/index.js +0 -48
  119. package/payload/platform/lib/screening-patterns/dist/index.js.map +0 -1
  120. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.d.ts +0 -2
  121. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.d.ts.map +0 -1
  122. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.js +0 -34
  123. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.js.map +0 -1
  124. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts +0 -39
  125. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts.map +0 -1
  126. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js +0 -249
  127. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js.map +0 -1
  128. package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.d.ts +0 -6
  129. package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.d.ts.map +0 -1
  130. package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.js +0 -32
  131. package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.js.map +0 -1
  132. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts +0 -283
  133. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts.map +0 -1
  134. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js +0 -1155
  135. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js.map +0 -1
  136. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts +0 -90
  137. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts.map +0 -1
  138. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js +0 -551
  139. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js.map +0 -1
  140. package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.d.ts +0 -17
  141. package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.d.ts.map +0 -1
  142. package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.js +0 -186
  143. package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.js.map +0 -1
  144. package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts +0 -29
  145. package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts.map +0 -1
  146. package/payload/platform/plugins/email/mcp/dist/lib/screening.js +0 -105
  147. package/payload/platform/plugins/email/mcp/dist/lib/screening.js.map +0 -1
  148. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts +0 -38
  149. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts.map +0 -1
  150. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js +0 -817
  151. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js.map +0 -1
  152. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts +0 -30
  153. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts.map +0 -1
  154. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js +0 -215
  155. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js.map +0 -1
  156. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts +0 -19
  157. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts.map +0 -1
  158. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js +0 -151
  159. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js.map +0 -1
  160. package/payload/platform/plugins/email/mcp/dist/tools/email-classify.d.ts +0 -6
  161. package/payload/platform/plugins/email/mcp/dist/tools/email-classify.d.ts.map +0 -1
  162. package/payload/platform/plugins/email/mcp/dist/tools/email-classify.js +0 -89
  163. package/payload/platform/plugins/email/mcp/dist/tools/email-classify.js.map +0 -1
  164. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts +0 -2
  165. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts.map +0 -1
  166. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js +0 -90
  167. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js.map +0 -1
  168. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts +0 -2
  169. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts.map +0 -1
  170. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js +0 -226
  171. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js.map +0 -1
  172. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts +0 -60
  173. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts.map +0 -1
  174. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js +0 -169
  175. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js.map +0 -1
  176. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +0 -248
  177. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +0 -1
  178. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +0 -824
  179. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +0 -1
  180. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts +0 -63
  181. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts.map +0 -1
  182. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js +0 -210
  183. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js.map +0 -1
  184. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.d.ts +0 -35
  185. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.d.ts.map +0 -1
  186. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.js +0 -28
  187. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.js.map +0 -1
  188. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.d.ts +0 -2
  189. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.d.ts.map +0 -1
  190. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.js +0 -68
  191. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.js.map +0 -1
  192. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.d.ts +0 -2
  193. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.d.ts.map +0 -1
  194. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.js +0 -88
  195. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.js.map +0 -1
  196. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.d.ts +0 -2
  197. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.d.ts.map +0 -1
  198. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.js +0 -58
  199. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.js.map +0 -1
  200. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.d.ts +0 -2
  201. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.d.ts.map +0 -1
  202. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js +0 -64
  203. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js.map +0 -1
  204. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.d.ts +0 -2
  205. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.d.ts.map +0 -1
  206. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.js +0 -70
  207. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.js.map +0 -1
  208. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.d.ts +0 -2
  209. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.d.ts.map +0 -1
  210. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.js +0 -48
  211. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.js.map +0 -1
  212. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.d.ts +0 -2
  213. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.d.ts.map +0 -1
  214. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.js +0 -74
  215. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.js.map +0 -1
  216. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.d.ts +0 -2
  217. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.d.ts.map +0 -1
  218. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.js +0 -47
  219. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.js.map +0 -1
  220. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.d.ts +0 -2
  221. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.d.ts.map +0 -1
  222. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.js +0 -65
  223. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.js.map +0 -1
  224. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.d.ts +0 -2
  225. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.d.ts.map +0 -1
  226. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.js +0 -43
  227. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.js.map +0 -1
  228. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.d.ts +0 -2
  229. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.d.ts.map +0 -1
  230. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.js +0 -65
  231. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.js.map +0 -1
  232. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.d.ts +0 -2
  233. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.d.ts.map +0 -1
  234. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.js +0 -49
  235. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.js.map +0 -1
  236. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.d.ts +0 -2
  237. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.d.ts.map +0 -1
  238. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js +0 -79
  239. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js.map +0 -1
  240. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts +0 -2
  241. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts.map +0 -1
  242. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js +0 -329
  243. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js.map +0 -1
  244. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.d.ts +0 -2
  245. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.d.ts.map +0 -1
  246. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js +0 -81
  247. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js.map +0 -1
  248. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts +0 -34
  249. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts.map +0 -1
  250. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js +0 -62
  251. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js.map +0 -1
  252. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts +0 -61
  253. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts.map +0 -1
  254. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js +0 -102
  255. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js.map +0 -1
  256. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.d.ts +0 -35
  257. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.d.ts.map +0 -1
  258. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.js +0 -73
  259. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.js.map +0 -1
  260. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.d.ts +0 -29
  261. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.d.ts.map +0 -1
  262. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.js +0 -22
  263. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.js.map +0 -1
  264. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts +0 -30
  265. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts.map +0 -1
  266. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js +0 -130
  267. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js.map +0 -1
  268. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts +0 -65
  269. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts.map +0 -1
  270. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js +0 -262
  271. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js.map +0 -1
  272. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.d.ts +0 -2
  273. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.d.ts.map +0 -1
  274. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.js +0 -100
  275. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/normalise-start-date.test.js.map +0 -1
  276. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.d.ts +0 -2
  277. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.d.ts.map +0 -1
  278. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.js +0 -22
  279. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/scheduled-seat-id.test.js.map +0 -1
  280. package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.d.ts +0 -11
  281. package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.d.ts.map +0 -1
  282. package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.js +0 -19
  283. package/payload/platform/plugins/scheduling/mcp/dist/lib/scheduled-seat-id.js.map +0 -1
  284. package/payload/platform/plugins/telegram/mcp/dist/__tests__/invoice-tool.test.d.ts +0 -2
  285. package/payload/platform/plugins/telegram/mcp/dist/__tests__/invoice-tool.test.d.ts.map +0 -1
  286. package/payload/platform/plugins/telegram/mcp/dist/__tests__/invoice-tool.test.js +0 -196
  287. package/payload/platform/plugins/telegram/mcp/dist/__tests__/invoice-tool.test.js.map +0 -1
  288. package/payload/platform/plugins/telegram/mcp/dist/tools/invoice.d.ts +0 -70
  289. package/payload/platform/plugins/telegram/mcp/dist/tools/invoice.d.ts.map +0 -1
  290. package/payload/platform/plugins/telegram/mcp/dist/tools/invoice.js +0 -247
  291. package/payload/platform/plugins/telegram/mcp/dist/tools/invoice.js.map +0 -1
  292. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts +0 -21
  293. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts.map +0 -1
  294. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js +0 -40
  295. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js.map +0 -1
  296. package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.d.ts +0 -8
  297. package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.d.ts.map +0 -1
  298. package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.js +0 -83
  299. package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.js.map +0 -1
  300. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts +0 -151
  301. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts.map +0 -1
  302. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js +0 -299
  303. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js.map +0 -1
  304. package/payload/platform/services/claude-session-manager/dist/account-admin-census.d.ts +0 -39
  305. package/payload/platform/services/claude-session-manager/dist/account-admin-census.d.ts.map +0 -1
  306. package/payload/platform/services/claude-session-manager/dist/account-admin-census.js +0 -122
  307. package/payload/platform/services/claude-session-manager/dist/account-admin-census.js.map +0 -1
  308. package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.d.ts +0 -39
  309. package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.d.ts.map +0 -1
  310. package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.js +0 -133
  311. package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.js.map +0 -1
  312. package/payload/platform/services/claude-session-manager/dist/input-postcondition.d.ts +0 -22
  313. package/payload/platform/services/claude-session-manager/dist/input-postcondition.d.ts.map +0 -1
  314. package/payload/platform/services/claude-session-manager/dist/input-postcondition.js +0 -50
  315. package/payload/platform/services/claude-session-manager/dist/input-postcondition.js.map +0 -1
  316. package/payload/platform/services/claude-session-manager/dist/jsonl-observer.d.ts +0 -30
  317. package/payload/platform/services/claude-session-manager/dist/jsonl-observer.d.ts.map +0 -1
  318. package/payload/platform/services/claude-session-manager/dist/jsonl-observer.js +0 -204
  319. package/payload/platform/services/claude-session-manager/dist/jsonl-observer.js.map +0 -1
  320. package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.d.ts +0 -80
  321. package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.d.ts.map +0 -1
  322. package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.js +0 -306
  323. package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.js.map +0 -1
  324. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts +0 -49
  325. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts.map +0 -1
  326. package/payload/platform/services/claude-session-manager/dist/session-store.js +0 -52
  327. package/payload/platform/services/claude-session-manager/dist/session-store.js.map +0 -1
  328. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts +0 -83
  329. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts.map +0 -1
  330. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js +0 -345
  331. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js.map +0 -1
  332. package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts +0 -104
  333. package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts.map +0 -1
  334. package/payload/platform/services/telegram-channel/dist/turn-follow.js +0 -408
  335. package/payload/platform/services/telegram-channel/dist/turn-follow.js.map +0 -1
  336. package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts +0 -104
  337. package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts.map +0 -1
  338. package/payload/platform/services/whatsapp-channel/dist/turn-follow.js +0 -393
  339. package/payload/platform/services/whatsapp-channel/dist/turn-follow.js.map +0 -1
@@ -1,551 +0,0 @@
1
- /**
2
- * Cloudflare tunnel setup — deterministic orchestrator.
3
- *
4
- * the tunnel setup flow (login → create → enable → verify) has a
5
- * deterministic shape. Every branch is driven by a structured signal —
6
- * either `tunnel-status`'s `unhealthyReason` enum, or the operator's
7
- * literal input (domain name, subdomain names, "done").
8
- * the flow was driven by the LLM reading SKILL.md prose and picking the
9
- * next `tunnel-*` tool; that allowed a dozen+ recurrences where the LLM
10
- * forked, dispatched Playwright to the Cloudflare dashboard, or fabricated
11
- * a `cp cert.pem` workaround. None of those deviations are reachable here
12
- * because the LLM no longer chooses — this module does.
13
- *
14
- * Contract:
15
- * - `runOrchestrator(input)` is the single entry point. One call advances
16
- * one deterministic step. The LLM's only job is to pass the operator's
17
- * literal input through (domain, "done", etc.) and relay the structured
18
- * result verbatim.
19
- * - Every transition emits a `[cloudflare:setup-run:phase-transition]` log
20
- * line. Every internal sub-tool call emits
21
- * `[cloudflare:setup-run:subtool-call]`. Every terminal state emits
22
- * `[cloudflare:setup-run:terminal]`. These give a single grep path
23
- * (`[cloudflare:setup-run:`) to the full transition chain post-hoc.
24
- * - State is persisted at `~/{configDir}/cloudflared/setup.state.json`
25
- * alongside `tunnel.state` and `login.state`. On corruption or absence
26
- * the orchestrator reconciles from live `tunnel-status` + operator
27
- * input (no "state file not found" crash).
28
- * - The tool-surface gate in `platform/ui/app/lib/tool-surface-filter.ts`
29
- * reads this state file every turn and removes the raw `tunnel-*`,
30
- * Playwright, Bash, Write, Edit tools from the LLM's menu whenever
31
- * `phase !== 'idle' && phase !== 'healthy'`. No LLM regression can
32
- * re-enter the loop because the tools that enabled it are literally
33
- * absent from the menu.
34
- */
35
- import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync, } from "node:fs";
36
- import { join } from "node:path";
37
- import { homedir } from "node:os";
38
- import * as cloudflared from "./cloudflared.js";
39
- import { deviceUrlBlock } from "../../../../../lib/device-url/dist/index.js";
40
- import { requirePortEnv } from "../../../../../lib/require-port-env/dist/index.js";
41
- import { hostname as osHostname } from "node:os";
42
- function initialState() {
43
- return {
44
- phase: "idle",
45
- domain: null,
46
- adminSubdomain: null,
47
- publicSubdomain: null,
48
- tunnelId: null,
49
- phaseEnteredAt: new Date().toISOString(),
50
- unhealthyReason: null,
51
- };
52
- }
53
- // ---------------------------------------------------------------------------
54
- // State file I/O
55
- // ---------------------------------------------------------------------------
56
- /**
57
- * The orchestrator state file path. Consumers OUTSIDE this module (e.g. the
58
- * tool-surface filter in `platform/ui/app/lib/tool-surface-filter.ts`) also
59
- * need this path to read the phase. Exported so the two sides cannot drift.
60
- *
61
- * Brand-aware via loadBrand(); falls back to `.maxy` when PLATFORM_ROOT is
62
- * unset. The fallback matters only for the tool-surface filter running
63
- * outside the cloudflare MCP server's process — the MCP server always has
64
- * PLATFORM_ROOT set by the claude-agent spawn.
65
- */
66
- export function setupStatePath(configDirOverride) {
67
- const configDir = configDirOverride ?? (() => {
68
- try {
69
- return cloudflared.loadBrand().configDir;
70
- }
71
- catch {
72
- return ".maxy";
73
- }
74
- })();
75
- return join(homedir(), configDir, "cloudflared", "setup.state.json");
76
- }
77
- function readState() {
78
- const path = setupStatePath();
79
- if (!existsSync(path))
80
- return initialState();
81
- try {
82
- const parsed = JSON.parse(readFileSync(path, "utf-8"));
83
- // Loose validation — if the file is malformed, treat as idle and rely
84
- // on `tunnel-status` reconciliation to map back to the right phase.
85
- // A "state file not found" crash would be a silent failure mode the
86
- // operator cannot recover from; mapping to idle is loud-failure (log)
87
- // but non-fatal.
88
- if (typeof parsed?.phase !== "string") {
89
- console.error(`[cloudflare:setup-run:state-malformed] path=${path} — resetting to idle`);
90
- return initialState();
91
- }
92
- return {
93
- phase: parsed.phase,
94
- domain: parsed.domain ?? null,
95
- adminSubdomain: parsed.adminSubdomain ?? null,
96
- publicSubdomain: parsed.publicSubdomain ?? null,
97
- tunnelId: parsed.tunnelId ?? null,
98
- phaseEnteredAt: parsed.phaseEnteredAt ?? new Date().toISOString(),
99
- unhealthyReason: parsed.unhealthyReason ?? null,
100
- };
101
- }
102
- catch (err) {
103
- console.error(`[cloudflare:setup-run:state-read-error] path=${path} err=${err instanceof Error ? err.message : String(err)}`);
104
- return initialState();
105
- }
106
- }
107
- function writeState(state) {
108
- const path = setupStatePath();
109
- mkdirSync(join(homedir(), cloudflared.loadBrand().configDir, "cloudflared"), { recursive: true });
110
- writeFileSync(path, JSON.stringify(state, null, 2), { mode: 0o600 });
111
- }
112
- function deleteState() {
113
- const path = setupStatePath();
114
- try {
115
- unlinkSync(path);
116
- }
117
- catch (err) {
118
- const code = err.code;
119
- if (code !== "ENOENT") {
120
- console.error(`[cloudflare:setup-run:state-delete-error] path=${path} err=${err}`);
121
- }
122
- }
123
- }
124
- function transition(state, next, reason) {
125
- if (state.phase !== next) {
126
- console.error(`[cloudflare:setup-run:phase-transition] from=${state.phase} to=${next} reason=${reason}`);
127
- }
128
- const updated = {
129
- ...state,
130
- phase: next,
131
- phaseEnteredAt: new Date().toISOString(),
132
- };
133
- writeState(updated);
134
- return updated;
135
- }
136
- // ---------------------------------------------------------------------------
137
- // Read-only status
138
- //
139
- // Exposed so the tool-surface filter (outside this MCP server) can read
140
- // orchestrator phase without advancing it, and so the companion
141
- // `cloudflare-setup-status` tool can surface it to the admin agent.
142
- // ---------------------------------------------------------------------------
143
- export function readOrchestratorState() {
144
- return readState();
145
- }
146
- /**
147
- * Whether the tool-surface filter should treat this device as "setup in
148
- * progress". Matches the gate condition named in the task file: the filter
149
- * lifts whenever phase is idle or terminal (healthy / unhealthy).
150
- */
151
- export function isSetupActive(state) {
152
- return state.phase !== "idle" && state.phase !== "healthy" && state.phase !== "unhealthy";
153
- }
154
- function subtoolLog(name, phase) {
155
- console.error(`[cloudflare:setup-run:subtool-call] subtool=${name} phase=${phase}`);
156
- }
157
- function terminalLog(outcome, reason) {
158
- console.error(`[cloudflare:setup-run:terminal] outcome=${outcome} reason=${reason}`);
159
- }
160
- function operatorInputLog(phase, repr) {
161
- console.error(`[cloudflare:setup-run:operator-input] phase=${phase} input=${repr}`);
162
- }
163
- // ---------------------------------------------------------------------------
164
- // Subdomain validation
165
- //
166
- // The operator types subdomain labels directly. Reject anything that would
167
- // break `cloudflared tunnel route dns` before shelling out. Labels: letters,
168
- // digits, hyphens; 1-63 chars; no leading/trailing hyphen.
169
- // ---------------------------------------------------------------------------
170
- const SUBDOMAIN_PATTERN = /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i;
171
- function validateSubdomain(label, name) {
172
- if (label.length === 0)
173
- return `${name} is empty`;
174
- if (label.includes("."))
175
- return `${name} must be a single label (got "${label}"). Use just the prefix, e.g. "admin" — not "admin.example.com".`;
176
- if (!SUBDOMAIN_PATTERN.test(label))
177
- return `${name} "${label}" has invalid characters. Use letters, digits, and hyphens only.`;
178
- return null;
179
- }
180
- // ---------------------------------------------------------------------------
181
- // Card builder — the `maxy-device-url` block wrapped in intent prose
182
- // ---------------------------------------------------------------------------
183
- function signInCard(authUrl, accountHint) {
184
- const block = deviceUrlBlock({
185
- url: authUrl,
186
- intent: "Sign in to Cloudflare",
187
- hostname: osHostname(),
188
- });
189
- return (`Cloudflare sign-in started on this device.\n\n` +
190
- `${block}\n\n` +
191
- `Click the button to open the sign-in page on this device's browser. ` +
192
- `Pick the account that owns ${accountHint} — the account name is in the ` +
193
- `top-left of the Cloudflare page, next to the little orange cloud — then ` +
194
- `click Authorize. Tell me when you have finished.`);
195
- }
196
- function accountSwitchCard(hostname) {
197
- return (`That Cloudflare account does not own ${hostname}.\n\n` +
198
- `Open Cloudflare in your browser. Look at the name in the top-left. ` +
199
- `If it is not the account that owns ${hostname}, switch to the correct ` +
200
- `account using the top-left dropdown. Once the correct account is showing, ` +
201
- `tell me and I will start the sign-in again.`);
202
- }
203
- // ---------------------------------------------------------------------------
204
- // The orchestrator entry point
205
- //
206
- // Every call:
207
- // (1) Reads persisted state.
208
- // (2) Probes live tunnel-status.
209
- // (3) Reconciles — if status shows we're further along than persisted,
210
- // advance persisted to match.
211
- // (4) Handles current phase.
212
- //
213
- // Step (3) is what makes re-entry and cold-start correct. An operator who
214
- // deletes the state file mid-flow gets reconciled to the right phase on
215
- // the next call because tunnel-status is the ground truth. Fresh-install
216
- // with no state and no cert starts at `idle` → `awaiting-domain`. Fresh-
217
- // install with no state but cert already bound (migration from a prior
218
- // setup) maps to `awaiting-hostnames`.
219
- // ---------------------------------------------------------------------------
220
- export async function runOrchestrator(input) {
221
- let state = readState();
222
- console.error(`[cloudflare:setup-run:enter] phase=${state.phase} domain=${state.domain ?? "none"}`);
223
- // Log operator input once, terse — helpful post-hoc when diagnosing how
224
- // the state transitioned. Never log secrets; domain is public by design.
225
- const inputRepr = JSON.stringify({
226
- domain: input.domain ?? null,
227
- adminSubdomain: input.adminSubdomain ?? null,
228
- publicSubdomain: input.publicSubdomain ?? null,
229
- confirmed: input.confirmed ?? false,
230
- });
231
- operatorInputLog(state.phase, inputRepr);
232
- // ---------------------------------------------------------------------
233
- // Reconcile persisted phase against live tunnel-status.
234
- //
235
- // The reconciliation rule: tunnel-status is always right. If status
236
- // says we're healthy, we are healthy (regardless of persisted phase).
237
- // If status says we have a cert but persisted says we still need one,
238
- // we skip ahead to `awaiting-hostnames`. If persisted domain is null
239
- // but input provides one, adopt it.
240
- // ---------------------------------------------------------------------
241
- if (input.domain) {
242
- const domainTrimmed = input.domain.trim().replace(/^https?:\/\//, "").replace(/\/.*$/, "");
243
- if (domainTrimmed.length === 0) {
244
- return { text: "Invalid domain — please give me the bare domain, e.g. maxy.bot.", phase: state.phase, healthy: false };
245
- }
246
- if (state.domain !== domainTrimmed) {
247
- state = { ...state, domain: domainTrimmed };
248
- writeState(state);
249
- }
250
- }
251
- if (!state.domain && state.phase === "idle") {
252
- state = transition(state, "awaiting-domain", "initial-entry-no-domain");
253
- return {
254
- text: "What domain do you want to use for the tunnel? For example: maxy.bot.",
255
- phase: state.phase,
256
- healthy: false,
257
- };
258
- }
259
- // Probe live tunnel-status. When `state.domain` is null we pass undefined
260
- // and let cloudflared use persisted state.
261
- subtoolLog("tunnel-status", state.phase);
262
- const status = await cloudflared.getStatus(state.domain ?? undefined);
263
- // Terminal healthy short-circuit — same answer from any phase.
264
- if (status.healthy) {
265
- // A second call after initial healthy convergence is a no-op. Log once
266
- // as terminal to mark the flow closed.
267
- if (state.phase !== "healthy") {
268
- state = transition(state, "healthy", "status-healthy");
269
- terminalLog("healthy", "all-probes-ok");
270
- }
271
- else {
272
- console.error(`[cloudflare:setup-run:no-op] reason=already-healthy`);
273
- }
274
- const urls = status.probes.map((p) => ` https://${p.hostname}`).join("\n");
275
- return {
276
- text: `Tunnel is healthy.\n\n${urls}`,
277
- phase: state.phase,
278
- healthy: true,
279
- };
280
- }
281
- // --- From here: phase-specific advance logic -------------------------
282
- // If we have a cert and it matches the binding, we are past the login
283
- // phase. Don't re-spawn login.
284
- const authedAndReady = status.hasCert && status.bound;
285
- // Determine next action from (persisted phase, status, input).
286
- switch (state.phase) {
287
- case "awaiting-domain": {
288
- // We have a domain now (input.domain was applied above). Advance.
289
- if (authedAndReady) {
290
- state = transition(state, "awaiting-hostnames", "cert-already-bound");
291
- }
292
- else {
293
- state = transition(state, "awaiting-signin", "no-cert-spawning-login");
294
- }
295
- return continueFromPhase(state, input, status);
296
- }
297
- case "idle": {
298
- // Cold start with domain already supplied (rare — the check above
299
- // only transitions to awaiting-domain when there's no domain).
300
- if (authedAndReady) {
301
- state = transition(state, "awaiting-hostnames", "cert-already-bound");
302
- }
303
- else {
304
- state = transition(state, "awaiting-signin", "cold-start-needs-login");
305
- }
306
- return continueFromPhase(state, input, status);
307
- }
308
- case "awaiting-signin": {
309
- if (authedAndReady) {
310
- state = transition(state, "awaiting-hostnames", "sign-in-complete");
311
- return continueFromPhase(state, input, status);
312
- }
313
- return continueFromPhase(state, input, status);
314
- }
315
- case "awaiting-account-switch": {
316
- // Operator confirms they have switched accounts. Re-login with force.
317
- if (input.confirmed) {
318
- subtoolLog("tunnel-login-force", state.phase);
319
- cloudflared.resetAuth();
320
- const res = await cloudflared.tunnelLogin();
321
- state = transition(state, "awaiting-signin", "account-switch-relogin");
322
- return {
323
- text: signInCard(res.authUrl, state.domain ?? "your domain"),
324
- phase: state.phase,
325
- healthy: false,
326
- };
327
- }
328
- return {
329
- text: accountSwitchCard(state.domain ?? "your domain"),
330
- phase: state.phase,
331
- healthy: false,
332
- };
333
- }
334
- case "awaiting-hostnames": {
335
- return continueFromPhase(state, input, status);
336
- }
337
- case "enabling": {
338
- // Re-entry after crash in the middle of create/enable. Probe told
339
- // us we're not healthy; fall through to re-run enable.
340
- return continueFromPhase(state, input, status);
341
- }
342
- case "healthy": {
343
- // Unreachable — the healthy short-circuit above returns before here.
344
- // Keep for exhaustiveness.
345
- return { text: "Tunnel is healthy.", phase: state.phase, healthy: true };
346
- }
347
- case "unhealthy": {
348
- // Re-invoking after an unhealthy terminal re-probes and either
349
- // converges (returns healthy above) or re-emits the same reason.
350
- const reason = status.unhealthyReason ?? "unknown";
351
- return {
352
- text: `Tunnel is not healthy. Reason: ${reason}. Re-running setup from the current state — ask me again in a minute.`,
353
- phase: state.phase,
354
- healthy: false,
355
- };
356
- }
357
- }
358
- }
359
- /**
360
- * Handle a phase when it is the natural next step (or a fall-through from
361
- * a reconciliation). Kept separate from `runOrchestrator`'s switch so the
362
- * reconciliation cases above can transition and then delegate here without
363
- * nested switching.
364
- */
365
- async function continueFromPhase(state, input, status) {
366
- switch (state.phase) {
367
- case "awaiting-signin": {
368
- subtoolLog("tunnel-login", state.phase);
369
- const res = await cloudflared.tunnelLogin();
370
- return {
371
- text: signInCard(res.authUrl, state.domain ?? "your domain"),
372
- phase: state.phase,
373
- healthy: false,
374
- };
375
- }
376
- case "awaiting-hostnames": {
377
- // Need admin subdomain from the operator.
378
- if (!input.adminSubdomain) {
379
- return {
380
- text: `What subdomain should the admin interface use? ` +
381
- `For example "admin" → admin.${state.domain}. ` +
382
- `Optionally, what subdomain for the public chat? ` +
383
- `For example "public" → public.${state.domain}. ` +
384
- `Leave blank to skip the public chat.`,
385
- phase: state.phase,
386
- healthy: false,
387
- };
388
- }
389
- const adminErr = validateSubdomain(input.adminSubdomain, "admin subdomain");
390
- if (adminErr)
391
- return { text: adminErr, phase: state.phase, healthy: false };
392
- let publicSubdomain = null;
393
- if (input.publicSubdomain) {
394
- const pubErr = validateSubdomain(input.publicSubdomain, "public subdomain");
395
- if (pubErr)
396
- return { text: pubErr, phase: state.phase, healthy: false };
397
- publicSubdomain = input.publicSubdomain;
398
- }
399
- if (publicSubdomain && publicSubdomain === input.adminSubdomain) {
400
- return {
401
- text: `Admin and public subdomains must differ — both given as "${publicSubdomain}".`,
402
- phase: state.phase,
403
- healthy: false,
404
- };
405
- }
406
- // Persist the choices so re-entry survives mid-call crashes.
407
- state = { ...state, adminSubdomain: input.adminSubdomain, publicSubdomain };
408
- writeState(state);
409
- // Transition to enabling and run create + enable + verify.
410
- state = transition(state, "enabling", "hostnames-received");
411
- try {
412
- // tunnel-create
413
- subtoolLog("tunnel-create", state.phase);
414
- const tunnelName = (state.domain ?? "tunnel").replace(/\./g, "-");
415
- const tunnel = cloudflared.createTunnelCli(tunnelName);
416
- const adminHostname = `${input.adminSubdomain}.${state.domain}`;
417
- const publicHostname = publicSubdomain ? `${publicSubdomain}.${state.domain}` : null;
418
- const hostnames = publicHostname ? [adminHostname, publicHostname] : [adminHostname];
419
- const platformPort = requirePortEnv("PLATFORM_PORT", { tag: "cloudflare:tunnel-create" });
420
- const configPath = cloudflared.writeLocalConfig(tunnel.tunnelId, tunnel.credentialsPath, hostnames, platformPort);
421
- cloudflared.saveTunnelIdentity({
422
- tunnelId: tunnel.tunnelId,
423
- tunnelName: tunnel.tunnelName,
424
- domain: state.domain ?? "",
425
- configPath,
426
- credentialsPath: tunnel.credentialsPath,
427
- adminHostname,
428
- publicHostname,
429
- });
430
- state = { ...state, tunnelId: tunnel.tunnelId };
431
- writeState(state);
432
- // Route DNS for each hostname.
433
- subtoolLog("tunnel-route-dns", state.phase);
434
- for (const h of hostnames) {
435
- await cloudflared.routeDnsCli(tunnel.tunnelId, h);
436
- }
437
- // tunnel-enable
438
- subtoolLog("tunnel-enable", state.phase);
439
- cloudflared.startTunnel({
440
- tunnelId: tunnel.tunnelId,
441
- tunnelName: tunnel.tunnelName,
442
- domain: state.domain ?? "",
443
- configPath,
444
- credentialsPath: tunnel.credentialsPath,
445
- });
446
- // Poll `tunnel-status` until healthy or a hard reason surfaces.
447
- // Same retry budget as the standalone tunnel-enable tool's verify
448
- // loop: 6 attempts × 5s = 30s.
449
- for (let attempt = 0; attempt < 6; attempt++) {
450
- if (attempt > 0)
451
- await new Promise((r) => setTimeout(r, 5000));
452
- const probe = await cloudflared.getStatus(state.domain ?? undefined);
453
- if (probe.healthy) {
454
- state = transition(state, "healthy", "create-enable-verified");
455
- terminalLog("healthy", "create-enable-verified");
456
- const urls = probe.probes.map((p) => ` https://${p.hostname}`).join("\n");
457
- return { text: `Tunnel is healthy.\n\n${urls}`, phase: state.phase, healthy: true };
458
- }
459
- if (probe.unhealthyReason === "bound-account-does-not-own-hostname") {
460
- state = transition(state, "awaiting-account-switch", "post-enable-wrong-account");
461
- return {
462
- text: accountSwitchCard(state.domain ?? "your domain"),
463
- phase: state.phase,
464
- healthy: false,
465
- };
466
- }
467
- }
468
- // Couldn't verify within retry budget — emit a diagnostic unhealthy
469
- // terminal. Operator can re-invoke cloudflare-setup-run later; if
470
- // the edge caught up by then it will converge to healthy.
471
- const final = await cloudflared.getStatus(state.domain ?? undefined);
472
- const reason = final.unhealthyReason ?? "edge-not-yet-reachable";
473
- state = { ...state, unhealthyReason: reason };
474
- state = transition(state, "unhealthy", `verify-failed-${reason}`);
475
- terminalLog("unhealthy", reason);
476
- return {
477
- text: `Tunnel created and started but the end-to-end probe has not converged yet ` +
478
- `(reason: ${reason}). DNS propagation can take 1-5 minutes. Ask me to set up ` +
479
- `the tunnel again in a minute to re-probe.`,
480
- phase: state.phase,
481
- healthy: false,
482
- };
483
- }
484
- catch (err) {
485
- // tunnel-create shelled refusal — detect the wrong-account class
486
- // and route to awaiting-account-switch. Other errors bubble up as
487
- // unhealthy with the message.
488
- if (err instanceof cloudflared.CloudflareRefusalError) {
489
- const reason = err.refusal.reason;
490
- if (reason === "post-flight-fqdn-mismatch" ||
491
- reason === "hostname-zone-not-routable" ||
492
- reason === "account-drift" ||
493
- reason === "unbound-device") {
494
- state = transition(state, "awaiting-account-switch", `refusal-${reason}`);
495
- return {
496
- text: accountSwitchCard(state.domain ?? "your domain"),
497
- phase: state.phase,
498
- healthy: false,
499
- };
500
- }
501
- }
502
- const msg = err instanceof Error ? err.message : String(err);
503
- state = { ...state, unhealthyReason: "create-or-enable-failed" };
504
- state = transition(state, "unhealthy", "create-or-enable-threw");
505
- terminalLog("unhealthy", "create-or-enable-threw");
506
- return {
507
- text: `Tunnel setup failed: ${msg}`,
508
- phase: state.phase,
509
- healthy: false,
510
- };
511
- }
512
- }
513
- case "enabling": {
514
- // Re-enter mid-enable after a crash. Delegate back to
515
- // awaiting-hostnames with the persisted subdomains as "input" so
516
- // the create/enable/verify block runs again. Idempotent: tunnel
517
- // create reuses an existing tunnel by name; DNS route is overwritten.
518
- if (state.adminSubdomain) {
519
- const recoveredInput = {
520
- adminSubdomain: state.adminSubdomain,
521
- publicSubdomain: state.publicSubdomain ?? undefined,
522
- };
523
- const recoveredState = transition(state, "awaiting-hostnames", "re-entry-after-enabling-crash");
524
- return continueFromPhase(recoveredState, recoveredInput, status);
525
- }
526
- // Somehow hit enabling without a stored adminSubdomain — reset to
527
- // awaiting-hostnames and ask again.
528
- state = transition(state, "awaiting-hostnames", "re-entry-missing-subdomains");
529
- return continueFromPhase(state, input, status);
530
- }
531
- case "idle":
532
- case "awaiting-domain":
533
- case "awaiting-account-switch":
534
- case "healthy":
535
- case "unhealthy":
536
- // Unreachable in this helper — the top-level switch handles these.
537
- return {
538
- text: `Unexpected phase: ${state.phase}. Ask me again.`,
539
- phase: state.phase,
540
- healthy: false,
541
- };
542
- }
543
- }
544
- // ---------------------------------------------------------------------------
545
- // Reset — exposed for tests and for the hypothetical "start over" admin flow
546
- // ---------------------------------------------------------------------------
547
- export function resetOrchestrator() {
548
- console.error(`[cloudflare:setup-run:reset]`);
549
- deleteState();
550
- }
551
- //# sourceMappingURL=setup-orchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-orchestrator.js","sourceRoot":"","sources":["../../src/lib/setup-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export interface DispatchInput {
2
- accountId: string;
3
- senderEmail: string;
4
- text: string;
5
- timeoutMs: number;
6
- }
7
- export type DispatchResult = {
8
- turnText: string;
9
- } | {
10
- error: string;
11
- };
12
- /** Send an email body to the per-sender claude PTY session, await the
13
- * next assistant end_turn, return the response text. Reuses the session
14
- * across cron invocations via the manager's senderId index. */
15
- export declare function dispatchEmailToClaude(input: DispatchInput): Promise<DispatchResult>;
16
- export declare function emailTurnTimeoutMs(): number;
17
- //# sourceMappingURL=claude-bridge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-bridge.d.ts","sourceRoot":"","sources":["../../src/lib/claude-bridge.ts"],"names":[],"mappings":"AAqDA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AA8HtE;;gEAEgE;AAChE,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAqCzF;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}