@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,40 +0,0 @@
1
- import { sendMessage, buildInlineKeyboard, } from "../lib/telegram.js";
2
- import { resolveBotToken, listRegisteredBots } from "../lib/account-token.js";
3
- export async function message(params) {
4
- const platformRoot = process.env.PLATFORM_ROOT;
5
- const accountId = process.env.ACCOUNT_ID;
6
- const botToken = platformRoot && accountId ? resolveBotToken(platformRoot, accountId, params.botId) : null;
7
- if (!botToken) {
8
- // Task 2368 — an account holds N bots and nothing else surfaces their ids to
9
- // an agent, so the refusal enumerates them rather than failing opaquely. A
10
- // caller that named the wrong bot, or guessed, gets the right answer here and
11
- // succeeds on its next call. It never picks one: which bot a message goes out
12
- // on is the caller's decision, and choosing would put a stranger's message on
13
- // the operator's own bot.
14
- const registered = platformRoot && accountId ? listRegisteredBots(platformRoot, accountId) : [];
15
- const known = registered.length === 0
16
- ? "This account has no Telegram bot registered — run telegram:configure first."
17
- : `This account's registered bots: ${registered.map((b) => `${b.id} (${b.role}${b.agent ? `, ${b.agent}` : ""})`).join("; ")}.`;
18
- return {
19
- sent: false,
20
- channel: params.channel,
21
- error: `No Telegram bot "${params.botId}" is registered on this account. ${known}`,
22
- };
23
- }
24
- const replyMarkup = params.inlineKeyboard
25
- ? buildInlineKeyboard(params.inlineKeyboard)
26
- : undefined;
27
- const result = await sendMessage(botToken, {
28
- chatId: params.chatId,
29
- text: params.text,
30
- parseMode: params.parseMode,
31
- replyMarkup,
32
- });
33
- return {
34
- sent: result.ok,
35
- channel: "telegram",
36
- messageId: result.messageId,
37
- error: result.error,
38
- };
39
- }
40
- //# sourceMappingURL=message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/tools/message.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,GAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAqB9E,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAqB;IACjD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACzC,MAAM,QAAQ,GACZ,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,6EAA6E;QAC7E,2EAA2E;QAC3E,8EAA8E;QAC9E,8EAA8E;QAC9E,8EAA8E;QAC9E,0BAA0B;QAC1B,MAAM,UAAU,GAAG,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC;YACnC,CAAC,CAAC,6EAA6E;YAC/E,CAAC,CAAC,mCAAmC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAClI,OAAO;YACL,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,oBAAoB,MAAM,CAAC,KAAK,oCAAoC,KAAK,EAAE;SACnF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAuC,MAAM,CAAC,cAAc;QAC3E,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE;QACzC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW;KACZ,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,EAAE;QACf,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- import { spawn as realSpawn } from "node:child_process";
2
- type SpawnFn = typeof realSpawn;
3
- /** Run the summary. Throws on every failure mode (the caller decides whether a
4
- * summary failure should degrade gracefully — the verbatim file is already on
5
- * disk by the time this runs). */
6
- export declare function summarise(url: string, text: string, _spawn?: SpawnFn): Promise<string>;
7
- export {};
8
- //# sourceMappingURL=summarise.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"summarise.d.ts","sourceRoot":"","sources":["../../src/lib/summarise.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAQxD,KAAK,OAAO,GAAG,OAAO,SAAS,CAAC;AAchC;;mCAEmC;AACnC,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAmB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAkDjB"}
@@ -1,83 +0,0 @@
1
- // Transformative summary of fetched page text via a Claude Code subprocess.
2
- //
3
- // VALIDATE TEXT ──▶ SPAWN claude --print --model <haiku> --max-turns 1 ──▶ STDOUT
4
- // │ │ │
5
- // ├─ empty → throw ├─ ENOENT (claude not in PATH) → throw │
6
- // │ ├─ non-zero exit → throw (stderr + stdout) │
7
- // │ ├─ timeout → SIGTERM → throw │
8
- // │ └─ empty stdout → throw │
9
- // └───────────────────────────────────────────────────────────▶ return text
10
- //
11
- // Claude Code handles its own OAuth internally — no API key, no SDK. This is
12
- // the same mechanism the workflows plugin uses for LLM steps. The summary is
13
- // transformative, so it does not trip WebFetch's copyright refusal; the
14
- // verbatim path keeps the model out entirely.
15
- import { spawn as realSpawn } from "node:child_process";
16
- /** Haiku is the right tier for a one-shot summary (cheap, fast). Overridable
17
- * via env for forward-compat with model id changes. */
18
- const SUMMARY_MODEL = process.env.URL_GET_SUMMARY_MODEL ?? "claude-haiku-4-5";
19
- const SUMMARY_TIMEOUT_MS = 60_000;
20
- const MAX_STDERR_BYTES = 4096;
21
- /** Builds the summarisation prompt. A single principled instruction, not a
22
- * checklist of conditions — per the project's LLM-classification doctrine,
23
- * a prescriptive rule list turns the model into a brittle pattern matcher. */
24
- function buildPrompt(url, text) {
25
- return (`Summarise the page below for a reader deciding whether to open the full text. ` +
26
- `Capture what the page is, its main claims, and anything that would matter to ` +
27
- `someone searching for it later. Write only the summary — no preamble.\n\n` +
28
- `Source: ${url}\n\n---\n${text}`);
29
- }
30
- /** Run the summary. Throws on every failure mode (the caller decides whether a
31
- * summary failure should degrade gracefully — the verbatim file is already on
32
- * disk by the time this runs). */
33
- export async function summarise(url, text, _spawn = realSpawn) {
34
- if (!text.trim()) {
35
- throw new Error("nothing to summarise — cleaned text is empty");
36
- }
37
- const prompt = buildPrompt(url, text);
38
- const args = [
39
- "--print",
40
- "--model",
41
- SUMMARY_MODEL,
42
- "--max-turns",
43
- "1",
44
- "--permission-mode",
45
- "dontAsk",
46
- prompt,
47
- ];
48
- return new Promise((resolve, reject) => {
49
- const proc = _spawn("claude", args, { stdio: ["ignore", "pipe", "pipe"] });
50
- let stdout = "";
51
- let stderr = "";
52
- proc.stdout?.on("data", (chunk) => {
53
- stdout += chunk.toString("utf-8");
54
- });
55
- proc.stderr?.on("data", (chunk) => {
56
- if (stderr.length < MAX_STDERR_BYTES) {
57
- stderr += chunk.toString("utf-8").slice(0, MAX_STDERR_BYTES - stderr.length);
58
- }
59
- });
60
- const timer = setTimeout(() => {
61
- proc.kill("SIGTERM");
62
- reject(new Error(`summary timed out after ${SUMMARY_TIMEOUT_MS}ms`));
63
- }, SUMMARY_TIMEOUT_MS);
64
- proc.on("close", (code) => {
65
- clearTimeout(timer);
66
- if (code !== 0) {
67
- const tail = stderr.trim() ? ` stderr: ${stderr.trim()}` : "";
68
- reject(new Error(`claude exited ${code}${tail}`));
69
- return;
70
- }
71
- if (!stdout.trim()) {
72
- reject(new Error("claude returned an empty summary"));
73
- return;
74
- }
75
- resolve(stdout.trim());
76
- });
77
- proc.on("error", (err) => {
78
- clearTimeout(timer);
79
- reject(new Error(`failed to spawn claude: ${err.message}`));
80
- });
81
- });
82
- }
83
- //# sourceMappingURL=summarise.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"summarise.js","sourceRoot":"","sources":["../../src/lib/summarise.ts"],"names":[],"mappings":"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"}
@@ -1,151 +0,0 @@
1
- /**
2
- * LLM calls for workflow steps via Claude Code subprocess.
3
- *
4
- * Spawns `claude --print` as a child process with the resolved prompt.
5
- * Claude Code handles its own OAuth authentication internally — no
6
- * credential reading, token refresh, or API endpoint logic needed here.
7
- * This is the same mechanism the admin chat uses (claude-agent.ts).
8
- *
9
- * Two spawn modes:
10
- *
11
- * ONE-SHOT (no mcpServers)
12
- * ────────────────────────
13
- * VALIDATE PROMPT
14
- * │
15
- * ├─ empty → throw (no silent fallback)
16
- * │
17
- * v
18
- * SPAWN claude --print --model <model> --max-turns 1
19
- * │
20
- * ├─ ENOENT (not in PATH) → throw
21
- * ├─ non-zero exit → throw with stderr + stdout
22
- * ├─ timeout → SIGTERM → throw
23
- * ├─ empty stdout → throw
24
- * └─ stdout text → return
25
- *
26
- * AGENTIC (mcpServers declared)
27
- * ─────────────────────────────
28
- * VALIDATE PROMPT
29
- * │
30
- * v
31
- * WRITE TEMP MCP CONFIG (mkdtemp + writeFile)
32
- * │
33
- * ├─ disk error → throw (cleanup skipped — nothing to clean)
34
- * │
35
- * v
36
- * SPAWN claude --print --model <model> --max-turns <N>
37
- * --mcp-config <tmp/mcp.json> --strict-mcp-config
38
- * --permission-mode dontAsk
39
- * │
40
- * ├─ same error paths as one-shot
41
- * │
42
- * v
43
- * CLEANUP TEMP CONFIG (finally — always runs)
44
- * │
45
- * ├─ ENOENT → swallow (already cleaned or never written)
46
- * └─ other error → log, don't throw (cleanup must not mask spawn error)
47
- *
48
- * probeLlmHealth() shares the same spawn path with a trivial "pong"
49
- * prompt and a shorter timeout. Used as the pre-flight check before
50
- * executing workflow LLM steps (Task 74 — graceful degradation).
51
- */
52
- import type { McpServerConfig } from "./step-resolver.js";
53
- interface SpawnedChildLike {
54
- stdout: {
55
- on(event: "data", cb: (chunk: Buffer) => void): void;
56
- };
57
- stderr: {
58
- on(event: "data", cb: (chunk: Buffer) => void): void;
59
- };
60
- on(event: "close", cb: (code: number | null) => void): void;
61
- on(event: "error", cb: (err: Error) => void): void;
62
- kill(signal?: string): void;
63
- }
64
- type SpawnFn = (cmd: string, args: string[], opts: unknown) => SpawnedChildLike;
65
- export interface LlmCallParams {
66
- prompt: string;
67
- model: string;
68
- maxTokens?: number;
69
- timeoutMs: number;
70
- /** MCP server bindings for agentic steps. */
71
- mcpServers?: Record<string, McpServerConfig>;
72
- /** Max agent turns (default 1, or 10 when mcpServers present). */
73
- maxTurns?: number;
74
- /**
75
- * Optional spawn function override — used only by tests to inject a
76
- * fake child process. Production callers must omit this.
77
- */
78
- _spawn?: SpawnFn;
79
- }
80
- export interface ProbeLlmHealthParams {
81
- model: string;
82
- /** Probe timeout — defaults to 10 seconds. */
83
- timeoutMs?: number;
84
- /** Test-only spawn injection. */
85
- _spawn?: SpawnFn;
86
- }
87
- export interface ProbeResult {
88
- ok: boolean;
89
- latencyMs: number;
90
- /** Set when ok is false. One-line error summary suitable for logs and
91
- * substitution into fallback template `{{_error}}`. */
92
- error?: string;
93
- }
94
- /**
95
- * Why readAdminModel returns a tuple instead of string | null:
96
- * the caller persists the result into WorkflowRun.error, which the admin
97
- * agent reads. A silent null collapsed six distinct failure modes (ENOENT,
98
- * EACCES, parse error, missing field, wrong type, empty string) into a
99
- * single error string asserting "adminModel both unset" — which was often
100
- * a lie (the file existed and was correct; something else had failed).
101
- * The tuple surfaces the exact reason so the persisted error and the
102
- * stderr log agree, and the admin agent knows whether to inspect the
103
- * file, the permissions, the path, or a concurrent-write race.
104
- */
105
- export type AdminModelReason = "ok" | "enoent" | "eacces" | "fs_error" | "parse_error" | "field_missing" | "field_wrong_type" | "field_empty";
106
- export interface AdminModelResolution {
107
- /** Model ID when reason is "ok"; null for every failure mode. */
108
- model: string | null;
109
- reason: AdminModelReason;
110
- /** Absolute path attempted — included in failure logs so the operator
111
- * can inspect the exact file that was read. */
112
- path: string;
113
- /** Underlying error message for fs_error and parse_error. */
114
- error?: string;
115
- }
116
- /**
117
- * Read the account's adminModel from account.json.
118
- * Returns {model, reason, path, error?} — callers branch on .model (null
119
- * means fail) and may surface .reason/.path into user-visible errors.
120
- */
121
- export declare function readAdminModel(platformRoot: string, accountId: string): AdminModelResolution;
122
- /**
123
- * Execute an LLM call by spawning Claude Code.
124
- *
125
- * When mcpServers is provided, spawns in agentic mode: writes a temp
126
- * config file, adds --mcp-config and --strict-mcp-config flags, and
127
- * uses the step's maxTurns (or default 10) instead of 1.
128
- *
129
- * Returns the model's text response. The caller is responsible for
130
- * parsing the response (JSON or raw text) via parseStepOutput().
131
- */
132
- export declare function executeLlmCall(params: LlmCallParams): Promise<string>;
133
- /**
134
- * Lightweight pre-flight probe for LLM availability.
135
- *
136
- * Spawns `claude --print` with a trivial prompt ("pong") and a short
137
- * timeout. Any failure mode that would cause a real LLM step to fail
138
- * (missing binary, dead OAuth token, Anthropic outage, network partition)
139
- * also fails this probe — it is the strongest available signal short
140
- * of running the real workflow.
141
- *
142
- * Called at most once per workflow run, only when the workflow contains
143
- * at least one LLM step. Per-step spawn failures mid-run are handled
144
- * separately by the workflow-execute convergence arm.
145
- *
146
- * SUCCESS → { ok: true, latencyMs }
147
- * FAILURE → { ok: false, latencyMs, error: one-line summary }
148
- */
149
- export declare function probeLlmHealth(params: ProbeLlmHealthParams): Promise<ProbeResult>;
150
- export {};
151
- //# sourceMappingURL=llm-call.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-call.d.ts","sourceRoot":"","sources":["../../src/lib/llm-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,UAAU,gBAAgB;IACxB,MAAM,EAAE;QAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC;IACjE,MAAM,EAAE;QAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC;IACjE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,KAAK,gBAAgB,CAAC;AAMhF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB;4DACwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GACxB,IAAI,GACJ,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,aAAa,GACb,eAAe,GACf,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB;oDACgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,oBAAoB,CAgD5F;AAsED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA6F3E;AAQD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAyBtB"}
@@ -1,299 +0,0 @@
1
- /**
2
- * LLM calls for workflow steps via Claude Code subprocess.
3
- *
4
- * Spawns `claude --print` as a child process with the resolved prompt.
5
- * Claude Code handles its own OAuth authentication internally — no
6
- * credential reading, token refresh, or API endpoint logic needed here.
7
- * This is the same mechanism the admin chat uses (claude-agent.ts).
8
- *
9
- * Two spawn modes:
10
- *
11
- * ONE-SHOT (no mcpServers)
12
- * ────────────────────────
13
- * VALIDATE PROMPT
14
- * │
15
- * ├─ empty → throw (no silent fallback)
16
- * │
17
- * v
18
- * SPAWN claude --print --model <model> --max-turns 1
19
- * │
20
- * ├─ ENOENT (not in PATH) → throw
21
- * ├─ non-zero exit → throw with stderr + stdout
22
- * ├─ timeout → SIGTERM → throw
23
- * ├─ empty stdout → throw
24
- * └─ stdout text → return
25
- *
26
- * AGENTIC (mcpServers declared)
27
- * ─────────────────────────────
28
- * VALIDATE PROMPT
29
- * │
30
- * v
31
- * WRITE TEMP MCP CONFIG (mkdtemp + writeFile)
32
- * │
33
- * ├─ disk error → throw (cleanup skipped — nothing to clean)
34
- * │
35
- * v
36
- * SPAWN claude --print --model <model> --max-turns <N>
37
- * --mcp-config <tmp/mcp.json> --strict-mcp-config
38
- * --permission-mode dontAsk
39
- * │
40
- * ├─ same error paths as one-shot
41
- * │
42
- * v
43
- * CLEANUP TEMP CONFIG (finally — always runs)
44
- * │
45
- * ├─ ENOENT → swallow (already cleaned or never written)
46
- * └─ other error → log, don't throw (cleanup must not mask spawn error)
47
- *
48
- * probeLlmHealth() shares the same spawn path with a trivial "pong"
49
- * prompt and a shorter timeout. Used as the pre-flight check before
50
- * executing workflow LLM steps (Task 74 — graceful degradation).
51
- */
52
- import { spawn as realSpawn } from "node:child_process";
53
- import { readFileSync, writeFileSync, rmSync, mkdtempSync } from "node:fs";
54
- import { resolve, join } from "node:path";
55
- import { tmpdir } from "node:os";
56
- /**
57
- * Read the account's adminModel from account.json.
58
- * Returns {model, reason, path, error?} — callers branch on .model (null
59
- * means fail) and may surface .reason/.path into user-visible errors.
60
- */
61
- export function readAdminModel(platformRoot, accountId) {
62
- // Validate accountId — block path traversal
63
- if (accountId.includes("..") || accountId.includes("/") || accountId.includes("\\")) {
64
- throw new Error(`Invalid accountId: "${accountId}" — path traversal blocked`);
65
- }
66
- const configPath = resolve(platformRoot, "..", "data", "accounts", accountId, "account.json");
67
- let raw;
68
- try {
69
- raw = readFileSync(configPath, "utf-8");
70
- }
71
- catch (err) {
72
- const code = err instanceof Error && "code" in err
73
- ? err.code
74
- : undefined;
75
- const message = err instanceof Error ? err.message : String(err);
76
- const reason = code === "ENOENT" ? "enoent" :
77
- code === "EACCES" ? "eacces" :
78
- "fs_error";
79
- logResolutionFailure(reason, configPath, message);
80
- return { model: null, reason, path: configPath, error: message };
81
- }
82
- let config;
83
- try {
84
- config = JSON.parse(raw);
85
- }
86
- catch (err) {
87
- const message = err instanceof Error ? err.message : String(err);
88
- logResolutionFailure("parse_error", configPath, message);
89
- return { model: null, reason: "parse_error", path: configPath, error: message };
90
- }
91
- const adminModel = config.adminModel;
92
- if (adminModel === undefined) {
93
- logResolutionFailure("field_missing", configPath);
94
- return { model: null, reason: "field_missing", path: configPath };
95
- }
96
- if (typeof adminModel !== "string") {
97
- logResolutionFailure("field_wrong_type", configPath, `adminModel is typeof ${typeof adminModel}`);
98
- return { model: null, reason: "field_wrong_type", path: configPath };
99
- }
100
- if (adminModel === "") {
101
- logResolutionFailure("field_empty", configPath);
102
- return { model: null, reason: "field_empty", path: configPath };
103
- }
104
- return { model: adminModel, reason: "ok", path: configPath };
105
- }
106
- function logResolutionFailure(reason, path, error) {
107
- const errSegment = error ? ` error=${error}` : "";
108
- console.error(`[llm-call] adminModel resolution FAILED: reason=${reason} path=${path}${errSegment}`);
109
- }
110
- // ─────────────────────────────────────────────────────────────
111
- // Temp MCP config management
112
- // ─────────────────────────────────────────────────────────────
113
- /**
114
- * Write a temporary MCP config file for agentic steps.
115
- * Returns the path to the config file.
116
- *
117
- * The file is written to a unique temp directory (mkdtempSync)
118
- * to avoid collisions between concurrent workflow executions.
119
- * Format matches Claude Code's --mcp-config JSON input:
120
- * { "mcpServers": { "name": { "command": ..., "args": ..., "env": ... } } }
121
- */
122
- function writeTempMcpConfig(mcpServers) {
123
- const dir = mkdtempSync(join(tmpdir(), "maxy-mcp-"));
124
- const configPath = join(dir, "mcp.json");
125
- const config = { mcpServers };
126
- try {
127
- writeFileSync(configPath, JSON.stringify(config), "utf-8");
128
- console.error(`[llm-call] agentic: wrote MCP config to ${configPath}`);
129
- return configPath;
130
- }
131
- catch (err) {
132
- // Clean up the empty temp dir on write failure
133
- try {
134
- rmSync(dir, { recursive: true });
135
- }
136
- catch { /* best-effort */ }
137
- throw new Error(`Failed to write MCP config for agentic step: ${err instanceof Error ? err.message : String(err)}`);
138
- }
139
- }
140
- /**
141
- * Clean up a temporary MCP config file and its parent directory.
142
- * Never throws — cleanup failures are logged but must not mask
143
- * the spawn result (success or error).
144
- */
145
- function cleanupTempMcpConfig(configPath) {
146
- try {
147
- // configPath is <tmpdir>/maxy-mcp-XXXXXX/mcp.json — remove the parent dir
148
- const dir = resolve(configPath, "..");
149
- rmSync(dir, { recursive: true });
150
- console.error(`[llm-call] agentic: cleanup MCP config ${configPath}`);
151
- }
152
- catch (err) {
153
- // ENOENT is fine (already cleaned or never fully written)
154
- if (err instanceof Error && "code" in err && err.code === "ENOENT") {
155
- return;
156
- }
157
- console.error(`[llm-call] agentic: cleanup failed for ${configPath}: ${err instanceof Error ? err.message : String(err)}`);
158
- }
159
- }
160
- // ─────────────────────────────────────────────────────────────
161
- // LLM call via Claude Code subprocess
162
- // ─────────────────────────────────────────────────────────────
163
- /** Max stderr to capture — enough for diagnostics, bounded to prevent OOM. */
164
- const MAX_STDERR_BYTES = 4096;
165
- /** Default maxTurns when mcpServers is declared but maxTurns is omitted. */
166
- const DEFAULT_AGENTIC_MAX_TURNS = 10;
167
- /**
168
- * Execute an LLM call by spawning Claude Code.
169
- *
170
- * When mcpServers is provided, spawns in agentic mode: writes a temp
171
- * config file, adds --mcp-config and --strict-mcp-config flags, and
172
- * uses the step's maxTurns (or default 10) instead of 1.
173
- *
174
- * Returns the model's text response. The caller is responsible for
175
- * parsing the response (JSON or raw text) via parseStepOutput().
176
- */
177
- export async function executeLlmCall(params) {
178
- const { prompt, model, timeoutMs, mcpServers, maxTurns } = params;
179
- const spawn = params._spawn ?? realSpawn;
180
- if (!prompt.trim()) {
181
- throw new Error("LLM step has an empty prompt — nothing to send to the model.");
182
- }
183
- const isAgentic = mcpServers !== undefined && Object.keys(mcpServers).length > 0;
184
- const effectiveMaxTurns = isAgentic
185
- ? (maxTurns ?? DEFAULT_AGENTIC_MAX_TURNS)
186
- : (maxTurns ?? 1);
187
- const serverNames = isAgentic ? Object.keys(mcpServers) : [];
188
- console.error(`[llm-call] spawning Claude Code: model=${model} maxTurns=${effectiveMaxTurns}` +
189
- (isAgentic ? ` mcpServers=[${serverNames.join(",")}]` : ""));
190
- // Write temp MCP config for agentic steps (before building args)
191
- let tempConfigPath;
192
- if (isAgentic) {
193
- tempConfigPath = writeTempMcpConfig(mcpServers);
194
- }
195
- const args = [
196
- "--print",
197
- "--model", model,
198
- "--max-turns", String(effectiveMaxTurns),
199
- "--permission-mode", "dontAsk",
200
- ];
201
- if (tempConfigPath) {
202
- args.push("--mcp-config", tempConfigPath, "--strict-mcp-config");
203
- }
204
- // Prompt is the last positional argument
205
- args.push(prompt);
206
- try {
207
- return await new Promise((promiseResolve, reject) => {
208
- const proc = spawn("claude", args, {
209
- stdio: ["ignore", "pipe", "pipe"],
210
- });
211
- let stdout = "";
212
- let stderr = "";
213
- proc.stdout.on("data", (chunk) => {
214
- stdout += chunk.toString("utf-8");
215
- });
216
- proc.stderr.on("data", (chunk) => {
217
- if (stderr.length < MAX_STDERR_BYTES) {
218
- stderr += chunk.toString("utf-8").slice(0, MAX_STDERR_BYTES - stderr.length);
219
- }
220
- });
221
- const timer = setTimeout(() => {
222
- proc.kill("SIGTERM");
223
- reject(new Error(`LLM call timed out after ${timeoutMs}ms`));
224
- }, timeoutMs);
225
- proc.on("close", (code) => {
226
- clearTimeout(timer);
227
- if (code !== 0) {
228
- const stderrSnippet = stderr ? `\nstderr: ${stderr.trim()}` : "";
229
- const stdoutSnippet = stdout
230
- ? `\nstdout: ${stdout.slice(0, MAX_STDERR_BYTES).trim()}`
231
- : "";
232
- reject(new Error(`Claude Code exited with code ${code}${stderrSnippet}${stdoutSnippet}`));
233
- return;
234
- }
235
- if (!stdout.trim()) {
236
- reject(new Error("Claude Code returned an empty response."));
237
- return;
238
- }
239
- console.error(`[llm-call] response: ${stdout.length} chars`);
240
- promiseResolve(stdout);
241
- });
242
- proc.on("error", (err) => {
243
- clearTimeout(timer);
244
- reject(new Error(`Failed to spawn Claude Code: ${err.message}`));
245
- });
246
- });
247
- }
248
- finally {
249
- if (tempConfigPath) {
250
- cleanupTempMcpConfig(tempConfigPath);
251
- }
252
- }
253
- }
254
- // ─────────────────────────────────────────────────────────────
255
- // Health probe — pre-flight check before running LLM workflow steps
256
- // ─────────────────────────────────────────────────────────────
257
- const DEFAULT_PROBE_TIMEOUT_MS = 10_000;
258
- /**
259
- * Lightweight pre-flight probe for LLM availability.
260
- *
261
- * Spawns `claude --print` with a trivial prompt ("pong") and a short
262
- * timeout. Any failure mode that would cause a real LLM step to fail
263
- * (missing binary, dead OAuth token, Anthropic outage, network partition)
264
- * also fails this probe — it is the strongest available signal short
265
- * of running the real workflow.
266
- *
267
- * Called at most once per workflow run, only when the workflow contains
268
- * at least one LLM step. Per-step spawn failures mid-run are handled
269
- * separately by the workflow-execute convergence arm.
270
- *
271
- * SUCCESS → { ok: true, latencyMs }
272
- * FAILURE → { ok: false, latencyMs, error: one-line summary }
273
- */
274
- export async function probeLlmHealth(params) {
275
- const { model, timeoutMs = DEFAULT_PROBE_TIMEOUT_MS, _spawn } = params;
276
- const start = Date.now();
277
- console.error(`[llm-probe] probing: model=${model}`);
278
- try {
279
- await executeLlmCall({
280
- prompt: "pong",
281
- model,
282
- maxTokens: 8,
283
- timeoutMs,
284
- _spawn,
285
- });
286
- const latencyMs = Date.now() - start;
287
- console.error(`[llm-probe] ok: latencyMs=${latencyMs}`);
288
- return { ok: true, latencyMs };
289
- }
290
- catch (err) {
291
- const latencyMs = Date.now() - start;
292
- const error = err instanceof Error ? err.message : String(err);
293
- // Collapse multi-line errors to a one-liner for log + template substitution
294
- const oneLine = error.replace(/\s*\n\s*/g, " — ");
295
- console.error(`[llm-probe] FAILED: ${oneLine} latencyMs=${latencyMs}`);
296
- return { ok: false, latencyMs, error: oneLine };
297
- }
298
- }
299
- //# sourceMappingURL=llm-call.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-call.js","sourceRoot":"","sources":["../../src/lib/llm-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAwFjC;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,YAAoB,EAAE,SAAiB;IACpE,4CAA4C;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,4BAA4B,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAE9F,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG;YAChD,CAAC,CAAE,GAA6B,CAAC,IAAI;YACrC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,MAAM,GACV,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9B,UAAU,CAAC;QACb,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAClF,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,oBAAoB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,oBAAoB,CAAC,kBAAkB,EAAE,UAAU,EAAE,wBAAwB,OAAO,UAAU,EAAE,CAAC,CAAC;QAClG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACtB,oBAAoB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAwB,EAAE,IAAY,EAAE,KAAc;IAClF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,OAAO,CAAC,KAAK,CAAC,mDAAmD,MAAM,SAAS,IAAI,GAAG,UAAU,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,gEAAgE;AAChE,6BAA6B;AAC7B,gEAAgE;AAEhE;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,UAA2C;IACrE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,CAAC;IAE9B,IAAI,CAAC;QACH,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,2CAA2C,UAAU,EAAE,CAAC,CAAC;QACvE,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,+CAA+C;QAC/C,IAAI,CAAC;YAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACrE,MAAM,IAAI,KAAK,CACb,gDAAgD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACnG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,IAAI,CAAC;QACH,0EAA0E;QAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,0CAA0C,UAAU,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0DAA0D;QAC1D,IAAI,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9F,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CACX,0CAA0C,UAAU,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,sCAAsC;AACtC,gEAAgE;AAEhE,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,4EAA4E;AAC5E,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAqB;IACxD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAK,SAAgC,CAAC;IAEjE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACjF,MAAM,iBAAiB,GAAG,SAAS;QACjC,CAAC,CAAC,CAAC,QAAQ,IAAI,yBAAyB,CAAC;QACzC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAEpB,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,OAAO,CAAC,KAAK,CACX,0CAA0C,KAAK,aAAa,iBAAiB,EAAE;QAC/E,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5D,CAAC;IAEF,iEAAiE;IACjE,IAAI,cAAkC,CAAC;IACvC,IAAI,SAAS,EAAE,CAAC;QACd,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,GAAG;QACX,SAAS;QACT,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACxC,mBAAmB,EAAE,SAAS;KAC/B,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC;IACnE,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAElB,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,OAAO,CAAS,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;YAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE;gBACjC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACvC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACvC,IAAI,MAAM,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,SAAS,IAAI,CAAC,CAAC,CAAC;YAC/D,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjE,MAAM,aAAa,GAAG,MAAM;wBAC1B,CAAC,CAAC,aAAa,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE;wBACzD,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CACd,gCAAgC,IAAI,GAAG,aAAa,GAAG,aAAa,EAAE,CACvE,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;oBAC7D,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;gBAC7D,cAAc,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,cAAc,EAAE,CAAC;YACnB,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,oEAAoE;AACpE,gEAAgE;AAEhE,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA4B;IAE5B,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,wBAAwB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,OAAO,CAAC,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,cAAc,CAAC;YACnB,MAAM,EAAE,MAAM;YACd,KAAK;YACL,SAAS,EAAE,CAAC;YACZ,SAAS;YACT,MAAM;SACP,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;QACxD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACrC,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,4EAA4E;QAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,cAAc,SAAS,EAAE,CAAC,CAAC;QACvE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAClD,CAAC;AACH,CAAC"}
@@ -1,39 +0,0 @@
1
- export interface ClientAdminRow {
2
- accountId: string;
3
- /** Empty/undefined ⇒ absent. Set-but-not-live ⇒ dangling. */
4
- managingAdminUserId?: string;
5
- }
6
- export interface AccountAdminCensus {
7
- total: number;
8
- assigned: number;
9
- absent: number;
10
- dangling: number;
11
- absentIds: string[];
12
- danglingIds: string[];
13
- }
14
- /** Pure reconcile: classify each client account against the live house admin
15
- * set. A row with no managingAdminUserId is `absent`; a row whose id is not in
16
- * `liveHouseAdminUserIds` is `dangling`; otherwise `assigned`. Deterministic
17
- * and IO-free so the boundaries are unit-testable. */
18
- export declare function reconcileAccountAdminCensus(clients: ClientAdminRow[], liveHouseAdminUserIds: string[]): AccountAdminCensus;
19
- /** The census line. Offender ids are logged in full (not truncated) so each
20
- * correlates directly with an account dir; `-` marks an empty list so every
21
- * field is present and greppable. Healthy: `absent=0 dangling=0`. */
22
- export declare function formatCensusLine(c: AccountAdminCensus): string;
23
- export interface AccountAdminCensusDeps {
24
- accountsRoot: string;
25
- logger: (line: string) => void;
26
- }
27
- /** Run one census pass and log a single line. Filesystem-only and best-effort:
28
- * an unreadable accounts root yields `total=0` rather than throwing. */
29
- export declare function emitAccountAdminCensus(deps: AccountAdminCensusDeps): void;
30
- export interface AccountAdminCensusAudit {
31
- start(): void;
32
- stop(): void;
33
- }
34
- /** Standing periodic census. Unref'd interval so it never holds the process
35
- * open; each tick re-emits best-effort. */
36
- export declare function createAccountAdminCensus(deps: AccountAdminCensusDeps & {
37
- intervalMs: number;
38
- }): AccountAdminCensusAudit;
39
- //# sourceMappingURL=account-admin-census.d.ts.map