@spacebar_ai/moldclaw-core 2026.3.14 → 2026.3.16

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 (1074) hide show
  1. package/README.md +108 -3
  2. package/dist/account-id-plS5L20e.d.ts +1 -0
  3. package/dist/accounts-BAYVGC2k.js +109 -0
  4. package/dist/accounts-DrjRgReV.d.ts +103 -0
  5. package/dist/acp-cli-at_UYEOS.js +2088 -0
  6. package/dist/acpx-Chy1GQ_k.d.ts +5 -0
  7. package/dist/actions.runtime-C0F7dMfO.js +114 -0
  8. package/dist/actions.runtime-caI2LG9o.js +128 -0
  9. package/dist/agent-media-payload-CkpAqaOh.d.ts +16 -0
  10. package/dist/agents-B98yPGc5.js +853 -0
  11. package/dist/agents-BrLr08L3.js +217 -0
  12. package/dist/allow-from-BIwT4dl7.d.ts +42 -0
  13. package/dist/allow-list-CHt7yvAf.js +81 -0
  14. package/dist/allowlist-CxQo2wQc.js +142 -0
  15. package/dist/allowlist-resolution-B7ib7gye.d.ts +17 -0
  16. package/dist/api-Co7TNHbL.js +6953 -0
  17. package/dist/api-cEQ_ql_8.js +112 -0
  18. package/dist/audit-AnKnnlaZ.js +787 -0
  19. package/dist/audit-channel.collect.runtime-CAk1DFQ3.js +600 -0
  20. package/dist/audit-channel.runtime-5phdZp_m.js +116 -0
  21. package/dist/audit-extra.async-B8ZXFxic.js +813 -0
  22. package/dist/audit-hdKa3D-u.js +54 -0
  23. package/dist/audit-membership-runtime-CJV5XvGU.js +157 -0
  24. package/dist/audit.deep.runtime-DNMcRQrp.js +24 -0
  25. package/dist/audit.nondeep.runtime-DhNDL6yM.js +831 -0
  26. package/dist/audit.runtime-Bx7uWEh8.js +113 -0
  27. package/dist/auth-choice-C37W9MA7.js +268 -0
  28. package/dist/auth-choice-CNppOY_V.js +117 -0
  29. package/dist/auth-choice-XYFnp6fI.js +502 -0
  30. package/dist/auth-choice-options-D6oZY4Xo.js +123 -0
  31. package/dist/auth-choice-prompt-BhRqchJx.js +110 -0
  32. package/dist/auth-choice-prompt-C1xv0N08.js +36 -0
  33. package/dist/auth-choice.plugin-providers.runtime-DhLEtbmR.js +114 -0
  34. package/dist/auth-profiles-9zZdaXJK.js +127756 -0
  35. package/dist/auth-profiles.runtime-HONFDgiu.js +111 -0
  36. package/dist/bluebubbles-BY8JhO4y.js +64 -0
  37. package/dist/bluebubbles-CQjEnzK_.d.ts +6 -0
  38. package/dist/bluebubbles-RmcKgkBa.d.ts +45 -0
  39. package/dist/boolean-param-F1sMwnPu.d.ts +5 -0
  40. package/dist/bot-BGh-ATV7.d.ts +478 -0
  41. package/dist/brave-CljenznH.js +24 -0
  42. package/dist/browser-cli-CX8i0wf0.js +1492 -0
  43. package/dist/build-info.json +3 -3
  44. package/dist/bundled/boot-md/handler.d.ts +6 -0
  45. package/dist/bundled/boot-md/handler.js +26 -26
  46. package/dist/bundled/bootstrap-extra-files/handler.d.ts +6 -0
  47. package/dist/bundled/command-logger/handler.d.ts +9 -0
  48. package/dist/bundled/session-memory/handler.d.ts +9 -0
  49. package/dist/bundled/session-memory/handler.js +27 -27
  50. package/dist/call-Bc257L16.js +37 -0
  51. package/dist/call-DYFR7oGy.js +639 -0
  52. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  53. package/dist/channel-Bd-igGEW.js +803 -0
  54. package/dist/channel-BgRMb6bZ.js +575 -0
  55. package/dist/channel-BtcLrU6J.js +1598 -0
  56. package/dist/channel-Bwf6m_hD.js +538 -0
  57. package/dist/channel-C7-kgDBd.js +562 -0
  58. package/dist/channel-CEXOAxIc.js +949 -0
  59. package/dist/channel-CpZ3p9MJ.js +226 -0
  60. package/dist/channel-CqBlN6A2.js +619 -0
  61. package/dist/channel-DKhfHW4U.js +352 -0
  62. package/dist/channel-DS3t_KdJ2.js +316 -0
  63. package/dist/channel-DY24FA1v.js +4681 -0
  64. package/dist/channel-DYFGmImJ.js +542 -0
  65. package/dist/channel-DcyIqX5p.js +207 -0
  66. package/dist/channel-J-2XcAli.js +214 -0
  67. package/dist/channel-N616f4gZ.js +306 -0
  68. package/dist/channel-NY7aU2Gj.js +397 -0
  69. package/dist/channel-PNI8BOmm.js +1321 -0
  70. package/dist/channel-UcXepDJs.js +943 -0
  71. package/dist/channel-account-context-CL3hEq1j.js +103 -0
  72. package/dist/channel-config-schema-Q2nzcCCR.d.ts +1 -0
  73. package/dist/channel-jA_jodJo.js +920 -0
  74. package/dist/channel-options-CtgU5qkG.js +50 -0
  75. package/dist/channel-policy-7wXDp6d3.d.ts +1 -0
  76. package/dist/channel-rGI8uig4.js +497 -0
  77. package/dist/channel-summary-DGJZXo0r.js +106 -0
  78. package/dist/channel.runtime--WZvlNJM.js +413 -0
  79. package/dist/channel.runtime-B0ct42DL.js +122 -0
  80. package/dist/channel.runtime-BEZUZrYB.js +177 -0
  81. package/dist/channel.runtime-BMuWmsIC.js +166 -0
  82. package/dist/channel.runtime-BtvHP0po.js +4006 -0
  83. package/dist/channel.runtime-Cwf993pX.js +194 -0
  84. package/dist/channel.runtime-Cy4lEpTX.js +174 -0
  85. package/dist/channel.runtime-DAz6axda.js +865 -0
  86. package/dist/channel.runtime-DdQ2mOVh.js +236 -0
  87. package/dist/channel.runtime-Dy3HPgOU.js +399 -0
  88. package/dist/channel.runtime-iqfC25k7.js +213 -0
  89. package/dist/channel.setup-B4VYMZlQ.js +9 -0
  90. package/dist/channel.setup-BohGbCbI.js +57 -0
  91. package/dist/channel.setup-Bq2AQqqc.js +6 -0
  92. package/dist/channel.setup-BxiSfLp1.js +8 -0
  93. package/dist/channel.setup-DOUS6fjO.js +8 -0
  94. package/dist/channel.setup-DXhdYU3g.js +9 -0
  95. package/dist/channel.setup-N51CgfNy.js +11 -0
  96. package/dist/channels/plugins/actions/discord.d.ts +3 -0
  97. package/dist/channels/plugins/actions/discord.js +26 -26
  98. package/dist/channels/plugins/actions/signal.d.ts +2 -0
  99. package/dist/channels/plugins/actions/signal.js +26 -26
  100. package/dist/channels/plugins/actions/telegram.d.ts +3 -0
  101. package/dist/channels/plugins/actions/telegram.js +26 -26
  102. package/dist/channels/plugins/agent-tools/whatsapp-login.d.ts +4 -0
  103. package/dist/channels/plugins/agent-tools/whatsapp-login.js +26 -26
  104. package/dist/channels-CueeFf0q.js +404 -0
  105. package/dist/channels-PheAd73E.js +1113 -0
  106. package/dist/channels-cli-CXzVF84v.js +286 -0
  107. package/dist/channels-status-issues-BjWBQHhU.js +16 -0
  108. package/dist/chat-type-BlSN0vo4.d.ts +5 -0
  109. package/dist/clawbot-cli-BBehDXW1.js +113 -0
  110. package/dist/cli/daemon-cli.d.ts +58 -0
  111. package/dist/cli/daemon-cli.js +1 -1
  112. package/dist/cli-CIm7d5Id.js +149 -0
  113. package/dist/command-format-pq3tS8t2.d.ts +4 -0
  114. package/dist/command-registry-CDkp__KH.js +13 -0
  115. package/dist/command-registry-DSEkUBW1.js +212 -0
  116. package/dist/command-secret-gateway-CqP_o0n8.js +106 -0
  117. package/dist/compact.runtime-Qm_csEtG.js +111 -0
  118. package/dist/completion-cli-Ch1sgSLQ.js +445 -0
  119. package/dist/completion-cli-vF067Tso.js +16 -0
  120. package/dist/config-B2W1zTP1.js +44 -0
  121. package/dist/config-CMhKplgO.js +938 -0
  122. package/dist/config-DchtRsvs.js +30 -0
  123. package/dist/config-cli-C41d88_c.js +428 -0
  124. package/dist/config-guard-B_vjkXCQ.js +117 -0
  125. package/dist/config-schema-pPBCF4hz.js +31 -0
  126. package/dist/config-validation-6om9cBUx.js +262 -0
  127. package/dist/config-value-Dl3XEpA6.js +132 -0
  128. package/dist/configure-BxzvDSzu.js +1100 -0
  129. package/dist/configure-CLMLoWAn.js +238 -0
  130. package/dist/control-ui-shared-E8Nz6uKZ.js +29 -0
  131. package/dist/core-Cd3fMFKq.d.ts +87 -0
  132. package/dist/credentials-yYt6VWCq.js +268 -0
  133. package/dist/cron-cli-CA3lV3kh.js +634 -0
  134. package/dist/daemon-cli-BtQuIXEk.js +339 -0
  135. package/dist/daemon-install-BWKGzgMm.js +175 -0
  136. package/dist/deliver-CgMNmfTy.js +106 -0
  137. package/dist/deliver-runtime-Bn1KWoiQ.js +106 -0
  138. package/dist/devices-cli-D601npiL.js +340 -0
  139. package/dist/diagnostic-CkiYEGqt.js +310 -0
  140. package/dist/diffs-B5tZ8Coj.d.ts +1 -0
  141. package/dist/directory-cli-skEV8MT7.js +306 -0
  142. package/dist/directory-config-helpers-B-tiBKIv.d.ts +38 -0
  143. package/dist/directory-runtime-BEJ2fCIR.d.ts +1 -0
  144. package/dist/directory.static-CnyzoWbV.js +44 -0
  145. package/dist/discord-B_gbzPti.js +109 -0
  146. package/dist/discovery-CqI-e_Mv.js +48 -0
  147. package/dist/dm-policy-shared-nybkS1uP.d.ts +95 -0
  148. package/dist/dns-cli-Cjes3Ruw.js +216 -0
  149. package/dist/docs-cli-C3g3Gi_d.js +173 -0
  150. package/dist/doctor-completion-TvgV4SZH.js +90 -0
  151. package/dist/doctor-config-flow-0w9Ux7V8.js +107 -0
  152. package/dist/doctor-config-flow-DLzr8W7Y.js +2437 -0
  153. package/dist/enable-VYzv8b2z.js +24 -0
  154. package/dist/entry.d.ts +7 -0
  155. package/dist/entry.js +1 -1
  156. package/dist/env-overrides-DYVIkuvN.js +434 -0
  157. package/dist/env-overrides.runtime-6kijpIuu.js +17 -0
  158. package/dist/exec-approvals-cli-D_lkTG-l.js +419 -0
  159. package/dist/exec-sVmouhA9.d.ts +39 -0
  160. package/dist/extensions/acpx/index.d.ts +11 -0
  161. package/dist/extensions/acpx/index.js +1 -1
  162. package/dist/extensions/amazon-bedrock/index.d.ts +11 -0
  163. package/dist/extensions/anthropic/index.d.ts +11 -0
  164. package/dist/extensions/anthropic/index.js +26 -26
  165. package/dist/extensions/bluebubbles/index.d.ts +11 -0
  166. package/dist/extensions/bluebubbles/index.js +30 -30
  167. package/dist/extensions/bluebubbles/setup-entry.d.ts +59 -0
  168. package/dist/extensions/bluebubbles/setup-entry.js +30 -30
  169. package/dist/extensions/brave/index.d.ts +11 -0
  170. package/dist/extensions/brave/index.js +2 -2
  171. package/dist/extensions/byteplus/index.d.ts +11 -0
  172. package/dist/extensions/byteplus/index.js +26 -26
  173. package/dist/extensions/cloudflare-ai-gateway/index.d.ts +11 -0
  174. package/dist/extensions/cloudflare-ai-gateway/index.js +27 -27
  175. package/dist/extensions/copilot-proxy/index.d.ts +11 -0
  176. package/dist/extensions/device-pair/index.d.ts +12 -0
  177. package/dist/extensions/diagnostics-otel/index.d.ts +11 -0
  178. package/dist/extensions/diffs/index.d.ts +11 -0
  179. package/dist/extensions/discord/index.d.ts +11 -0
  180. package/dist/extensions/discord/index.js +31 -31
  181. package/dist/extensions/discord/setup-entry.d.ts +7 -0
  182. package/dist/extensions/discord/setup-entry.js +29 -29
  183. package/dist/extensions/elevenlabs/index.d.ts +11 -0
  184. package/dist/extensions/elevenlabs/index.js +26 -26
  185. package/dist/extensions/feishu/index.d.ts +229 -0
  186. package/dist/extensions/feishu/index.js +31 -31
  187. package/dist/extensions/feishu/setup-entry.d.ts +9 -0
  188. package/dist/extensions/feishu/setup-entry.js +28 -28
  189. package/dist/extensions/firecrawl/index.d.ts +11 -0
  190. package/dist/extensions/firecrawl/index.js +26 -26
  191. package/dist/extensions/github-copilot/index.d.ts +11 -0
  192. package/dist/extensions/github-copilot/index.js +27 -27
  193. package/dist/extensions/google/index.d.ts +11 -0
  194. package/dist/extensions/google/index.js +26 -26
  195. package/dist/extensions/googlechat/index.d.ts +11 -0
  196. package/dist/extensions/googlechat/index.js +30 -30
  197. package/dist/extensions/googlechat/setup-entry.d.ts +19 -0
  198. package/dist/extensions/googlechat/setup-entry.js +30 -30
  199. package/dist/extensions/huggingface/index.d.ts +11 -0
  200. package/dist/extensions/huggingface/index.js +26 -26
  201. package/dist/extensions/imessage/index.d.ts +11 -0
  202. package/dist/extensions/imessage/index.js +30 -30
  203. package/dist/extensions/imessage/setup-entry.d.ts +7 -0
  204. package/dist/extensions/imessage/setup-entry.js +30 -30
  205. package/dist/extensions/irc/index.d.ts +11 -0
  206. package/dist/extensions/irc/index.js +29 -29
  207. package/dist/extensions/irc/setup-entry.d.ts +8 -0
  208. package/dist/extensions/irc/setup-entry.js +29 -29
  209. package/dist/extensions/kakao-talkchannel/index.d.ts +19 -0
  210. package/dist/extensions/kakao-talkchannel/index.js +1762 -0
  211. package/dist/extensions/kakao-talkchannel/moldclaw.plugin.json +111 -0
  212. package/dist/extensions/kakao-talkchannel/package.json +12 -0
  213. package/dist/extensions/kilocode/index.d.ts +11 -0
  214. package/dist/extensions/kilocode/index.js +26 -26
  215. package/dist/extensions/kimi-coding/index.d.ts +11 -0
  216. package/dist/extensions/kimi-coding/index.js +26 -26
  217. package/dist/extensions/line/index.d.ts +11 -0
  218. package/dist/extensions/line/index.js +28 -28
  219. package/dist/extensions/line/setup-entry.d.ts +7 -0
  220. package/dist/extensions/line/setup-entry.js +28 -28
  221. package/dist/extensions/llm-task/index.d.ts +11 -0
  222. package/dist/extensions/llm-task/index.js +28 -28
  223. package/dist/extensions/lobster/index.d.ts +11 -0
  224. package/dist/extensions/matrix/index.d.ts +11 -0
  225. package/dist/extensions/matrix/index.js +31 -31
  226. package/dist/extensions/matrix/setup-entry.d.ts +20 -0
  227. package/dist/extensions/matrix/setup-entry.js +31 -31
  228. package/dist/extensions/mattermost/index.d.ts +11 -0
  229. package/dist/extensions/mattermost/index.js +28 -28
  230. package/dist/extensions/mattermost/setup-entry.d.ts +88 -0
  231. package/dist/extensions/mattermost/setup-entry.js +28 -28
  232. package/dist/extensions/memory-core/index.d.ts +11 -0
  233. package/dist/extensions/memory-lancedb/index.d.ts +25 -0
  234. package/dist/extensions/microsoft/index.d.ts +11 -0
  235. package/dist/extensions/microsoft/index.js +26 -26
  236. package/dist/extensions/minimax/index.d.ts +11 -0
  237. package/dist/extensions/minimax/index.js +26 -26
  238. package/dist/extensions/mistral/index.d.ts +11 -0
  239. package/dist/extensions/mistral/index.js +26 -26
  240. package/dist/extensions/modelstudio/index.d.ts +11 -0
  241. package/dist/extensions/modelstudio/index.js +26 -26
  242. package/dist/extensions/moonshot/index.d.ts +11 -0
  243. package/dist/extensions/moonshot/index.js +26 -26
  244. package/dist/extensions/msteams/index.d.ts +11 -0
  245. package/dist/extensions/msteams/index.js +31 -31
  246. package/dist/extensions/msteams/setup-entry.d.ts +11 -0
  247. package/dist/extensions/msteams/setup-entry.js +31 -31
  248. package/dist/extensions/nextcloud-talk/index.d.ts +11 -0
  249. package/dist/extensions/nextcloud-talk/index.js +28 -28
  250. package/dist/extensions/nextcloud-talk/setup-entry.d.ts +60 -0
  251. package/dist/extensions/nextcloud-talk/setup-entry.js +28 -28
  252. package/dist/extensions/nostr/index.d.ts +11 -0
  253. package/dist/extensions/nostr/index.js +28 -28
  254. package/dist/extensions/nostr/setup-entry.d.ts +49 -0
  255. package/dist/extensions/nostr/setup-entry.js +28 -28
  256. package/dist/extensions/nvidia/index.d.ts +11 -0
  257. package/dist/extensions/ollama/index.d.ts +11 -0
  258. package/dist/extensions/open-prose/index.d.ts +11 -0
  259. package/dist/extensions/openai/index.d.ts +11 -0
  260. package/dist/extensions/openai/index.js +26 -26
  261. package/dist/extensions/opencode/index.d.ts +11 -0
  262. package/dist/extensions/opencode/index.js +26 -26
  263. package/dist/extensions/opencode-go/index.d.ts +11 -0
  264. package/dist/extensions/opencode-go/index.js +26 -26
  265. package/dist/extensions/openrouter/index.d.ts +11 -0
  266. package/dist/extensions/openrouter/index.js +26 -26
  267. package/dist/extensions/openshell/index.d.ts +11 -0
  268. package/dist/extensions/openshell/index.js +26 -26
  269. package/dist/extensions/perplexity/index.d.ts +11 -0
  270. package/dist/extensions/perplexity/index.js +2 -2
  271. package/dist/extensions/phone-control/index.d.ts +12 -0
  272. package/dist/extensions/qianfan/index.d.ts +11 -0
  273. package/dist/extensions/qianfan/index.js +26 -26
  274. package/dist/extensions/qwen-portal-auth/index.d.ts +12 -0
  275. package/dist/extensions/qwen-portal-auth/index.js +26 -26
  276. package/dist/extensions/sglang/index.d.ts +11 -0
  277. package/dist/extensions/sglang/index.js +26 -26
  278. package/dist/extensions/signal/index.d.ts +11 -0
  279. package/dist/extensions/signal/index.js +29 -29
  280. package/dist/extensions/signal/setup-entry.d.ts +7 -0
  281. package/dist/extensions/signal/setup-entry.js +29 -29
  282. package/dist/extensions/slack/index.d.ts +11 -0
  283. package/dist/extensions/slack/index.js +30 -30
  284. package/dist/extensions/slack/setup-entry.d.ts +7 -0
  285. package/dist/extensions/slack/setup-entry.js +29 -29
  286. package/dist/extensions/synology-chat/index.d.ts +11 -0
  287. package/dist/extensions/synology-chat/index.js +28 -28
  288. package/dist/extensions/synology-chat/setup-entry.d.ts +138 -0
  289. package/dist/extensions/synology-chat/setup-entry.js +28 -28
  290. package/dist/extensions/synthetic/index.d.ts +11 -0
  291. package/dist/extensions/synthetic/index.js +26 -26
  292. package/dist/extensions/talk-voice/index.d.ts +12 -0
  293. package/dist/extensions/talk-voice/index.js +26 -26
  294. package/dist/extensions/telegram/index.d.ts +11 -0
  295. package/dist/extensions/telegram/index.js +29 -29
  296. package/dist/extensions/telegram/setup-entry.d.ts +7 -0
  297. package/dist/extensions/telegram/setup-entry.js +28 -28
  298. package/dist/extensions/thread-ownership/index.d.ts +12 -0
  299. package/dist/extensions/tlon/index.d.ts +11 -0
  300. package/dist/extensions/tlon/index.js +28 -28
  301. package/dist/extensions/tlon/setup-entry.d.ts +7 -0
  302. package/dist/extensions/tlon/setup-entry.js +28 -28
  303. package/dist/extensions/together/index.d.ts +11 -0
  304. package/dist/extensions/together/index.js +26 -26
  305. package/dist/extensions/twitch/index.d.ts +39 -0
  306. package/dist/extensions/twitch/index.js +28 -28
  307. package/dist/extensions/venice/index.d.ts +11 -0
  308. package/dist/extensions/venice/index.js +26 -26
  309. package/dist/extensions/vercel-ai-gateway/index.d.ts +11 -0
  310. package/dist/extensions/vercel-ai-gateway/index.js +26 -26
  311. package/dist/extensions/vllm/index.d.ts +11 -0
  312. package/dist/extensions/vllm/index.js +26 -26
  313. package/dist/extensions/voice-call/index.d.ts +11 -0
  314. package/dist/extensions/voice-call/index.js +26 -26
  315. package/dist/extensions/volcengine/index.d.ts +11 -0
  316. package/dist/extensions/volcengine/index.js +26 -26
  317. package/dist/extensions/whatsapp/index.d.ts +11 -0
  318. package/dist/extensions/whatsapp/index.js +29 -29
  319. package/dist/extensions/whatsapp/setup-entry.d.ts +7 -0
  320. package/dist/extensions/whatsapp/setup-entry.js +29 -29
  321. package/dist/extensions/xai/index.d.ts +11 -0
  322. package/dist/extensions/xai/index.js +26 -26
  323. package/dist/extensions/xiaomi/index.d.ts +11 -0
  324. package/dist/extensions/xiaomi/index.js +26 -26
  325. package/dist/extensions/zai/index.d.ts +11 -0
  326. package/dist/extensions/zai/index.js +26 -26
  327. package/dist/extensions/zalo/index.d.ts +11 -0
  328. package/dist/extensions/zalo/index.js +30 -30
  329. package/dist/extensions/zalo/setup-entry.d.ts +34 -0
  330. package/dist/extensions/zalo/setup-entry.js +30 -30
  331. package/dist/extensions/zalouser/index.d.ts +11 -0
  332. package/dist/extensions/zalouser/index.js +31 -31
  333. package/dist/extensions/zalouser/setup-entry.d.ts +42 -0
  334. package/dist/extensions/zalouser/setup-entry.js +31 -31
  335. package/dist/feishu-DCKEC3ao.d.ts +36 -0
  336. package/dist/gateway-cli-DN1Ii6J-.js +26432 -0
  337. package/dist/gateway-install-token-CJYFJBaC.js +163 -0
  338. package/dist/gateway-rpc-CroQg9MB.js +26 -0
  339. package/dist/gateway-runtime-D9FRZqKP.js +69 -0
  340. package/dist/googlechat-CBCkerAy.js +307 -0
  341. package/dist/googlechat-CSUNieHX.d.ts +12 -0
  342. package/dist/group-access-rSvkIglb.d.ts +61 -0
  343. package/dist/health-B6WwLJp4.js +570 -0
  344. package/dist/health-CAlJydXv.js +108 -0
  345. package/dist/history-BwNxb0sJ.d.ts +75 -0
  346. package/dist/hooks-BYlfU3Nf.d.ts +6 -0
  347. package/dist/hooks-cli-DuKmdo_H.js +995 -0
  348. package/dist/http-registry-DX_LVtuK.d.ts +20 -0
  349. package/dist/image-generation-DKkdRpve.d.ts +9 -0
  350. package/dist/imessage-7abjbe2Q.js +31 -0
  351. package/dist/imessage-DOH1yaDE.js +110 -0
  352. package/dist/inbound-envelope-CmvweL6U.d.ts +78 -0
  353. package/dist/inbound-reply-dispatch-BvnKTOec.js +71 -0
  354. package/dist/inbound-reply-dispatch-C7LjHRZN.d.ts +72 -0
  355. package/dist/index-DTQqfqj9.d.ts +1 -0
  356. package/dist/index.d.ts +27 -0
  357. package/dist/index.js +2 -2
  358. package/dist/infra/warning-filter.d.ts +10 -0
  359. package/dist/install-target-tXRD7VkM.js +574 -0
  360. package/dist/installs-C8fz8sm3.js +532 -0
  361. package/dist/io-C6XifaT4.js +9737 -0
  362. package/dist/io-C8awRnSW.js +28 -0
  363. package/dist/ipv4-d88_Jn2p.js +82 -0
  364. package/dist/irc-DpR6FXjN.js +672 -0
  365. package/dist/json-store-Sr_kk-II.d.ts +14 -0
  366. package/dist/keyed-async-queue-BA3BKukE.d.ts +19 -0
  367. package/dist/library-DOwowAGN.js +107 -0
  368. package/dist/lifecycle-core-BHHBoRTY.js +382 -0
  369. package/dist/line/accounts.d.ts +3 -0
  370. package/dist/line/send.d.ts +2 -0
  371. package/dist/line/send.js +4 -4
  372. package/dist/line/template-messages.d.ts +2 -0
  373. package/dist/line-8rsNbJCP.js +530 -0
  374. package/dist/line-D_cvIf6B.d.ts +75 -0
  375. package/dist/links-BOnvOj1z.d.ts +7 -0
  376. package/dist/llm-slug-generator-D9HjWtJT.js +67 -0
  377. package/dist/llm-slug-generator.d.ts +12 -0
  378. package/dist/llm-slug-generator.js +27 -27
  379. package/dist/logging-BhqLWxTD.js +13 -0
  380. package/dist/logging-DfaiL4OX.js +29 -0
  381. package/dist/login-qr-COBYR52w.js +233 -0
  382. package/dist/login-qr-xK4QIpPc.js +107 -0
  383. package/dist/logs-cli-RSSTw8L_.js +254 -0
  384. package/dist/manager-runtime-DL6JoSj9.js +106 -0
  385. package/dist/manager.runtime-Cbyhg1vB.js +710 -0
  386. package/dist/markdown-to-line-BTlEkOls.d.ts +91 -0
  387. package/dist/matrix-DX-jaB88.js +1490 -0
  388. package/dist/matrix-H6Yyj1QZ.d.ts +68 -0
  389. package/dist/matrix-J8s45tRw.js +1269 -0
  390. package/dist/mattermost-D75n6bRI.d.ts +6 -0
  391. package/dist/mcp-cli-CLc3_yCO.js +86 -0
  392. package/dist/media-understanding.runtime-BI0Lljbl.js +111 -0
  393. package/dist/memory-cli-CTp2cYrf.js +106 -0
  394. package/dist/method-scopes-Du8ODGFW.js +2586 -0
  395. package/dist/model-auth-markers-DEDakSUW.d.ts +20 -0
  396. package/dist/model-picker-CDBs7LJF.js +390 -0
  397. package/dist/model-picker-CRix4Wwv.js +107 -0
  398. package/dist/model-picker.runtime-CITyy3Rn.js +120 -0
  399. package/dist/model-suppression.runtime-Ce7D6QUT.js +111 -0
  400. package/dist/models-BK1eanuP.js +113 -0
  401. package/dist/models-X4Czy3uE.js +2514 -0
  402. package/dist/models-cli-C79Ulviy.js +304 -0
  403. package/dist/models-config-DALlu3S9.js +106 -0
  404. package/dist/models-config.providers.discovery-CSJ1STM1.d.ts +18 -0
  405. package/dist/monitor-B45a_RpX.js +3468 -0
  406. package/dist/monitor-C8KbJ-i0.js +767 -0
  407. package/dist/monitor-CIhrvegZ.js +3076 -0
  408. package/dist/monitor-CQut7klP.js +6823 -0
  409. package/dist/monitor-DZb5IJle.js +777 -0
  410. package/dist/monitor-DaFkdD27.js +108 -0
  411. package/dist/monitor-Do9Tp2Ii.js +110 -0
  412. package/dist/monitor-shared-CMK9cDOb.js +444 -0
  413. package/dist/msteams-A6H_wv5F.js +852 -0
  414. package/dist/net-DpMJgN-o.d.ts +19 -0
  415. package/dist/nextcloud-talk-f1pZ5Bge.d.ts +1 -0
  416. package/dist/node-cli-BXnmsjzL.js +2498 -0
  417. package/dist/node-resolve-CupmrA0Y.js +835 -0
  418. package/dist/nodes-cli-DZVrah_8.js +1375 -0
  419. package/dist/nostr-DMV534Ks.d.ts +7 -0
  420. package/dist/nostr-SAk3tjtR.js +8744 -0
  421. package/dist/npm-resolution-Dr9wssCY.js +60 -0
  422. package/dist/oauth-utils-DnyXdWU9.d.ts +10 -0
  423. package/dist/onboard-BE5pmb1g.js +589 -0
  424. package/dist/onboard-channels-3hNVY0E7.js +1241 -0
  425. package/dist/onboard-channels-vaO3nWLL.js +200 -0
  426. package/dist/onboard-custom-CI5uFyWH.js +571 -0
  427. package/dist/onboard-custom-eIvRswgv.js +109 -0
  428. package/dist/onboard-helpers-ChMWfUnl.js +335 -0
  429. package/dist/onboard-helpers-DRFi9oaD.js +108 -0
  430. package/dist/onboard-remote-BTspTgA4.js +112 -0
  431. package/dist/onboard-remote-so38yXlX.js +181 -0
  432. package/dist/onboard-search-DS0tZS24.js +297 -0
  433. package/dist/onboard-skills-B9DxCCiU.js +133 -0
  434. package/dist/onboard-skills-so0a_BJV.js +112 -0
  435. package/dist/outbound-media-BiJscGlR.js +11 -0
  436. package/dist/outbound-media-DJF-TuJu.d.ts +11 -0
  437. package/dist/pairing-access-CuiJP9xN.d.ts +21 -0
  438. package/dist/pairing-cli-DN0u1Cez.js +212 -0
  439. package/dist/parse-finite-number-B3FJTjyQ.d.ts +5 -0
  440. package/dist/perplexity-Bw1u3CAF.js +24 -0
  441. package/dist/persistent-dedupe-DR5Ka6BX.d.ts +26 -0
  442. package/dist/pi-model-discovery-runtime-iwKNCaYu.js +106 -0
  443. package/dist/pi-tools.before-tool-call.runtime-BM_N-JZe.js +380 -0
  444. package/dist/plugin-install--KVul05Z.js +184 -0
  445. package/dist/plugin-install-DVpPsLkS.js +112 -0
  446. package/dist/plugin-install-plan-Dwc6-coz.js +49 -0
  447. package/dist/plugin-registry-XRswugE9.js +108 -0
  448. package/dist/plugin-registry-jozQafRo.js +49 -0
  449. package/dist/plugin-sdk/account-resolution.js +26 -26
  450. package/dist/plugin-sdk/acp-runtime.js +26 -26
  451. package/dist/plugin-sdk/acpx.js +1 -1
  452. package/dist/plugin-sdk/agent-runtime.js +26 -26
  453. package/dist/plugin-sdk/bluebubbles.js +29 -29
  454. package/dist/plugin-sdk/channel-config-helpers.js +26 -26
  455. package/dist/plugin-sdk/channel-config-schema.js +2 -2
  456. package/dist/plugin-sdk/channel-policy.js +26 -26
  457. package/dist/plugin-sdk/channel-runtime.js +26 -26
  458. package/dist/plugin-sdk/compat.js +27 -27
  459. package/dist/plugin-sdk/config-runtime.js +28 -28
  460. package/dist/plugin-sdk/conversation-runtime.js +26 -26
  461. package/dist/plugin-sdk/discord.js +26 -26
  462. package/dist/plugin-sdk/feishu.js +27 -27
  463. package/dist/plugin-sdk/gateway-runtime.js +8 -8
  464. package/dist/plugin-sdk/googlechat.js +29 -29
  465. package/dist/plugin-sdk/image-generation-runtime.js +26 -26
  466. package/dist/plugin-sdk/image-generation.js +26 -26
  467. package/dist/plugin-sdk/imessage.js +27 -27
  468. package/dist/plugin-sdk/index.js +26 -26
  469. package/dist/plugin-sdk/infra-runtime.js +26 -26
  470. package/dist/plugin-sdk/irc.js +29 -29
  471. package/dist/plugin-sdk/line.js +27 -27
  472. package/dist/plugin-sdk/llm-task.js +26 -26
  473. package/dist/plugin-sdk/matrix.js +29 -29
  474. package/dist/plugin-sdk/mattermost.js +28 -28
  475. package/dist/plugin-sdk/media-runtime.js +26 -26
  476. package/dist/plugin-sdk/media-understanding-runtime.js +26 -26
  477. package/dist/plugin-sdk/media-understanding.js +26 -26
  478. package/dist/plugin-sdk/msteams.js +30 -30
  479. package/dist/plugin-sdk/nextcloud-talk.js +28 -28
  480. package/dist/plugin-sdk/nostr.js +27 -27
  481. package/dist/plugin-sdk/plugin-runtime.js +26 -26
  482. package/dist/plugin-sdk/provider-auth.js +28 -28
  483. package/dist/plugin-sdk/provider-setup.js +27 -27
  484. package/dist/plugin-sdk/provider-web-search.js +1 -1
  485. package/dist/plugin-sdk/qwen-portal-auth.js +26 -26
  486. package/dist/plugin-sdk/reply-history.js +26 -26
  487. package/dist/plugin-sdk/reply-runtime.js +26 -26
  488. package/dist/plugin-sdk/sandbox.js +26 -26
  489. package/dist/plugin-sdk/security-runtime.js +26 -26
  490. package/dist/plugin-sdk/self-hosted-provider-setup.js +27 -27
  491. package/dist/plugin-sdk/setup.js +27 -27
  492. package/dist/plugin-sdk/signal.js +26 -26
  493. package/dist/plugin-sdk/slack.js +26 -26
  494. package/dist/plugin-sdk/speech-runtime.js +26 -26
  495. package/dist/plugin-sdk/speech.js +26 -26
  496. package/dist/plugin-sdk/src/channels/plugins/setup-wizard-helpers.d.ts +3 -0
  497. package/dist/plugin-sdk/src/config/config-lock.d.ts +38 -0
  498. package/dist/plugin-sdk/src/config/config.d.ts +1 -1
  499. package/dist/plugin-sdk/src/config/io.d.ts +39 -0
  500. package/dist/plugin-sdk/src/config/types.gateway.d.ts +12 -0
  501. package/dist/plugin-sdk/src/config/types.secrets.d.ts +10 -0
  502. package/dist/plugin-sdk/src/config/zod-schema.d.ts +2 -0
  503. package/dist/plugin-sdk/src/gateway/credential-planner.d.ts +3 -1
  504. package/dist/plugin-sdk/src/secrets/provider-env-vars.d.ts +61 -0
  505. package/dist/plugin-sdk/src/secrets/sec1-placeholder.d.ts +181 -0
  506. package/dist/plugin-sdk/src/secrets/sec1-utils.d.ts +57 -0
  507. package/dist/plugin-sdk/synology-chat.js +27 -27
  508. package/dist/plugin-sdk/telegram.js +26 -26
  509. package/dist/plugin-sdk/text-runtime.js +4 -4
  510. package/dist/plugin-sdk/tlon.js +27 -27
  511. package/dist/plugin-sdk/twitch.js +26 -26
  512. package/dist/plugin-sdk/voice-call.js +26 -26
  513. package/dist/plugin-sdk/whatsapp.js +26 -26
  514. package/dist/plugin-sdk/zalo.js +30 -30
  515. package/dist/plugin-sdk/zalouser.js +29 -29
  516. package/dist/plugins/runtime/index.d.ts +22 -0
  517. package/dist/plugins/runtime/index.js +26 -26
  518. package/dist/plugins-C4PiDdjc.js +106 -0
  519. package/dist/plugins-cli-zhmliYNU.js +912 -0
  520. package/dist/policy-CcSolumc.js +143 -0
  521. package/dist/preflight-audio.runtime-BAbfqqzW.js +111 -0
  522. package/dist/probe-Bgt5c-cr.js +129 -0
  523. package/dist/probe-CPk5iGcg.js +47 -0
  524. package/dist/probe-DR4KRKXz.js +19 -0
  525. package/dist/probe-DnoCyJ_m.js +1793 -0
  526. package/dist/probe-VsLtK3vQ.js +6328 -0
  527. package/dist/probe-auth-BnsKrQt7.js +38 -0
  528. package/dist/probe-auth-DYdUG8l1.js +48 -0
  529. package/dist/program-8enYYBsc.js +247 -0
  530. package/dist/prompt-select-styled-DxBcUasv.js +2673 -0
  531. package/dist/provider-api-key-auth.runtime-DsLZyt6h.js +116 -0
  532. package/dist/provider-auth-choice-30EvRxqc.js +126 -0
  533. package/dist/provider-auth-choice-preference-DMr1WmRg.js +189 -0
  534. package/dist/provider-auth-choice.runtime-CI98BgQF.js +118 -0
  535. package/dist/provider-auth-guidance-WKDIi_wk.js +34 -0
  536. package/dist/provider-auth-result-Cs8wguSI.d.ts +18 -0
  537. package/dist/provider-models-EOys_Nvi.d.ts +867 -0
  538. package/dist/provider-ollama-setup-D89zlm9C.d.ts +32 -0
  539. package/dist/provider-onboard-BzOpgCLu.d.ts +40 -0
  540. package/dist/provider-runtime.runtime-Cm4as2KG.js +106 -0
  541. package/dist/provider-self-hosted-setup-Bmv_AQmw.d.ts +61 -0
  542. package/dist/provider-self-hosted-setup-CJwFVVB4.js +182 -0
  543. package/dist/provider-usage-CVNyLLDb.js +106 -0
  544. package/dist/provider-usage.types-CdTymHNu.d.ts +16 -0
  545. package/dist/provider-web-search-BJhXD5dH.js +2392 -0
  546. package/dist/provider-wizard-DMMYXjlW.js +152 -0
  547. package/dist/push-apns-BnWTdTEk.js +1038 -0
  548. package/dist/pw-ai-CtK_7Cy2.js +1866 -0
  549. package/dist/qr-cli-CA-BF0--.js +108 -0
  550. package/dist/qr-cli-D18HiUkh.js +369 -0
  551. package/dist/reactions-Df7XG8Uh.js +281 -0
  552. package/dist/read-only-account-inspect.discord.runtime-B-FP0mwb.js +111 -0
  553. package/dist/read-only-account-inspect.slack.runtime-DkWZ2ccW.js +111 -0
  554. package/dist/read-only-account-inspect.telegram.runtime-BnlTkn_e.js +111 -0
  555. package/dist/redact-snapshot-DVdstBvO.js +2661 -0
  556. package/dist/ref-contract-RPkB754Q.js +53 -0
  557. package/dist/register.agent-DVAxXQKW.js +434 -0
  558. package/dist/register.backup-CUuL5KUZ.js +624 -0
  559. package/dist/register.configure-bC0UEwfU.js +247 -0
  560. package/dist/register.maintenance-iIqvl_eT.js +569 -0
  561. package/dist/register.message-CEDd4z07.js +704 -0
  562. package/dist/register.onboard-Cejfnysy.js +187 -0
  563. package/dist/register.setup-DU7uHdYt.js +207 -0
  564. package/dist/register.status-health-sessions-BWphMXNR.js +493 -0
  565. package/dist/register.subclis-DnIweTEG.js +315 -0
  566. package/dist/register.subclis-gJX_Pbub.js +12 -0
  567. package/dist/registry-Dgwc-7eS.js +1183 -0
  568. package/dist/replies-D9PEZ8yn.js +110 -0
  569. package/dist/reply-history-lHgoC4l3.d.ts +1 -0
  570. package/dist/reply-payload-Bd2HuR4g.d.ts +46 -0
  571. package/dist/request-url-BcSJaiiu.d.ts +5 -0
  572. package/dist/resolve-BbsCHGLY.js +660 -0
  573. package/dist/resolve-channels-BtrGC95o.js +262 -0
  574. package/dist/resolve-channels-C1SthO1N.js +226 -0
  575. package/dist/resolve-users-CgSxHrU0.js +143 -0
  576. package/dist/routes-BZtqNrBf.js +7097 -0
  577. package/dist/rpc-D3KMxG4J.js +67 -0
  578. package/dist/run-command-C8b3dCZV.d.ts +16 -0
  579. package/dist/run-main-BlWJVotF.js +423 -0
  580. package/dist/runtime-RWGbO5Qy.d.ts +26 -0
  581. package/dist/runtime-discord-ops.runtime-DUXIYvQr.js +9073 -0
  582. package/dist/runtime-slack-ops.runtime-n1yFfyp1.js +4551 -0
  583. package/dist/runtime-telegram-ops.runtime-PZUWchjT.js +128 -0
  584. package/dist/runtime-whatsapp-login.runtime-xsuNyvGz.js +109 -0
  585. package/dist/runtime-whatsapp-outbound.runtime-5EfEyCsO.js +112 -0
  586. package/dist/sandbox-cli-Dw1nWNmQ.js +530 -0
  587. package/dist/search-manager-BJoRxOaf.js +15 -0
  588. package/dist/search-manager-DxkQvUrW.js +386 -0
  589. package/dist/secret-input-schema-Cp_La9qv.d.ts +19 -0
  590. package/dist/secrets-cli-BPyV2gSq.js +2065 -0
  591. package/dist/security-cli-EK4sSRfG.js +570 -0
  592. package/dist/send-B01Gvh9m.js +629 -0
  593. package/dist/send-B4L4wRJO.js +100 -0
  594. package/dist/send-BDcGrXt0.js +1025 -0
  595. package/dist/send-BRRtHxyR.js +283 -0
  596. package/dist/send-DU6dmMXW.js +631 -0
  597. package/dist/server-CWw5GFEg.js +106 -0
  598. package/dist/server-node-events-92cDVswC.js +501 -0
  599. package/dist/session-key-DbkfhOjM.d.ts +46 -0
  600. package/dist/sessions-B052uHA3.js +218 -0
  601. package/dist/sessions-Cef4dZNP.js +107 -0
  602. package/dist/setup-BlQPyDPy.js +387 -0
  603. package/dist/setup-DcSZ_pTn.d.ts +37 -0
  604. package/dist/setup-core-B9mdZYnU.js +166 -0
  605. package/dist/setup-core-Cj0sLkpP.js +47 -0
  606. package/dist/setup-core-CkZbebOv.js +143 -0
  607. package/dist/setup-core-MRNjnrJl.js +205 -0
  608. package/dist/setup-surface-3ZY0JtWE.js +490 -0
  609. package/dist/setup-wizard-helpers-Dwzb9Dcz.d.ts +203 -0
  610. package/dist/setup.finalize-B5ETm3Ui.js +517 -0
  611. package/dist/setup.gateway-config-C8hdtlbw.js +338 -0
  612. package/dist/setup.secret-input-BZSIeiqy.js +25 -0
  613. package/dist/shared--9_eQ_lc.js +75 -0
  614. package/dist/shared-CxkH3H0U.js +102 -0
  615. package/dist/shared-DTNL0hA9.js +298 -0
  616. package/dist/shared-HSP1OV-Q.js +96 -0
  617. package/dist/shared-UIjWb_3B.js +182 -0
  618. package/dist/signal-CTI6bSmB.js +109 -0
  619. package/dist/skills-4-r1mfJM.js +853 -0
  620. package/dist/skills-RNm54CBO.js +19 -0
  621. package/dist/skills-cli-te7dSs5p.js +291 -0
  622. package/dist/skills-install-Del-Ogv8.js +763 -0
  623. package/dist/skills-status-BZpoMXrR.js +169 -0
  624. package/dist/skills-status-Dq61Sz8U.js +20 -0
  625. package/dist/slack-oc-viUtl.js +109 -0
  626. package/dist/slash-commands.runtime-NdkD2LZV.js +123 -0
  627. package/dist/slash-dispatch.runtime-DQgeaF3J.js +136 -0
  628. package/dist/slash-skill-commands.runtime-DmOl2DnL.js +111 -0
  629. package/dist/src-0wtt7seR.js +1696 -0
  630. package/dist/status-5oR_gqv_.js +121 -0
  631. package/dist/status-BO8LY0hC.js +1599 -0
  632. package/dist/status-D_oHA9yO.js +126 -0
  633. package/dist/status-IrMacJRj.js +606 -0
  634. package/dist/status-Prdeg53E.js +43 -0
  635. package/dist/status-json-Da0hR-1Z.js +286 -0
  636. package/dist/status.link-channel-BgUJEZAz.js +138 -0
  637. package/dist/status.scan.deps.runtime-D9vHTxOW.js +121 -0
  638. package/dist/status.scan.runtime-D-EdD5CW.js +114 -0
  639. package/dist/status.summary--i6xduWH.js +592 -0
  640. package/dist/status.summary.runtime-BqMXjaBc.js +113 -0
  641. package/dist/subagent-orphan-recovery-DiRJcFQc.js +302 -0
  642. package/dist/subagent-registry-runtime-B66EYEYm.js +106 -0
  643. package/dist/synology-chat-BemXqdzG.js +297 -0
  644. package/dist/system-cli-CSuiia4-.js +92 -0
  645. package/dist/telegram/audit.d.ts +2 -0
  646. package/dist/telegram/audit.js +1 -1
  647. package/dist/telegram/token.d.ts +2 -0
  648. package/dist/telegram/token.js +26 -26
  649. package/dist/telegram-DLFcRv5a.js +109 -0
  650. package/dist/testing-DZrulv-n.d.ts +1755 -0
  651. package/dist/text-chunking-BaYBIUoR.d.ts +79 -0
  652. package/dist/text-chunking-C8kmbNfa.js +84 -0
  653. package/dist/thinking-D8aqmr3o.d.ts +13 -0
  654. package/dist/tlon-Bpr4f3yF.js +433 -0
  655. package/dist/tool-send-BHKm5ztm.d.ts +9 -0
  656. package/dist/tui-BY3QRgC1.js +3834 -0
  657. package/dist/tui-cli-CCfZOlV0.js +132 -0
  658. package/dist/types-CKx5nDZB.d.ts +45 -0
  659. package/dist/types-DBhDdMQd.d.ts +22670 -0
  660. package/dist/types.base-B_TkkSS8.d.ts +188 -0
  661. package/dist/types.secrets-Bojc4omL.js +92 -0
  662. package/dist/ui-1UpZZyI3.js +31 -0
  663. package/dist/update-BR4JvFpV.js +1036 -0
  664. package/dist/update-cli-BZv44lFq.js +1498 -0
  665. package/dist/update-offset-store-DGdBotIW.js +107 -0
  666. package/dist/update-runner-D34sooPe.js +1496 -0
  667. package/dist/vllm-defaults-BCGSJ7K0.d.ts +13 -0
  668. package/dist/wait-BU9vJv22.d.ts +4 -0
  669. package/dist/web-CXpU2D41.js +107 -0
  670. package/dist/web-shared-B4sL45ah.d.ts +45 -0
  671. package/dist/webhook-memory-guards-B7oLVseG.d.ts +43 -0
  672. package/dist/webhook-request-guards-CqIH7equ.d.ts +76 -0
  673. package/dist/webhook-targets-CAAGATtk.js +181 -0
  674. package/dist/webhook-targets-oQ0jd4r0.d.ts +106 -0
  675. package/dist/webhooks-cli-B46t2VT5.js +349 -0
  676. package/dist/whatsapp-Dniwd4Rv.js +109 -0
  677. package/dist/whatsapp-actions-fL46PsNs.js +162 -0
  678. package/dist/windows-spawn-DGeE98SH.d.ts +43 -0
  679. package/dist/workspace-dirs-d3Ms_ryk.js +2002 -0
  680. package/dist/zalo-Csulx0XK.d.ts +9 -0
  681. package/dist/zalo-gh0yAWmS.js +415 -0
  682. package/dist/zalouser-CuxRvztM.js +30911 -0
  683. package/dist/zod-schema.agent-runtime-B4MkB-_3.d.ts +10 -0
  684. package/dist/zod-schema.core-D5reNip6.js +541 -0
  685. package/dist/zod-schema.core-DN3RhEUG.d.ts +173 -0
  686. package/docs/SEC1.md +523 -0
  687. package/docs/SEC1_IMPLEMENTATION/CHANNELS_REPORT.md +173 -0
  688. package/docs/SEC1_IMPLEMENTATION/CORE_UTIL_REPORT.md +139 -0
  689. package/docs/SEC1_IMPLEMENTATION/DOCS_REPORT.md +134 -0
  690. package/docs/SEC1_IMPLEMENTATION/ENV_MAP_DRAFT.md +148 -0
  691. package/docs/SEC1_IMPLEMENTATION/INTEGRATION_REPORT.md +170 -0
  692. package/docs/SEC1_IMPLEMENTATION/PROVIDERS_REPORT.md +291 -0
  693. package/docs/SEC1_IMPLEMENTATION/QA_REPORT.md +249 -0
  694. package/docs/SEC1_IMPLEMENTATION/RECURSIVE_QA/wave1-channels.md +317 -0
  695. package/docs/SEC1_IMPLEMENTATION/RECURSIVE_QA/wave1-docs.md +212 -0
  696. package/docs/SEC1_IMPLEMENTATION/RECURSIVE_QA/wave1-security.md +368 -0
  697. package/docs/SEC1_IMPLEMENTATION/RECURSIVE_QA/wave2-critic-consolidated.md +195 -0
  698. package/docs/SEC1_IMPLEMENTATION/RECURSIVE_QA/wave3-fix-report.md +105 -0
  699. package/docs/SEC1_IMPLEMENTATION/STRATEGY.md +451 -0
  700. package/docs/SEC1_IMPLEMENTATION/TEST_REPORT.md +156 -0
  701. package/docs/pipeline-sdk/CLI_SPEC.md +609 -0
  702. package/docs/pipeline-sdk/PIPELINE_SDK_DESIGN.md +1372 -0
  703. package/extensions/kakao-talkchannel/MIGRATION_ARCH_ANALYSIS.md +455 -0
  704. package/extensions/kakao-talkchannel/MIGRATION_CODE_ANALYSIS.md +383 -0
  705. package/extensions/kakao-talkchannel/MIGRATION_STRATEGY.md +115 -0
  706. package/extensions/kakao-talkchannel/README.md +50 -0
  707. package/extensions/kakao-talkchannel/index.ts +20 -0
  708. package/extensions/kakao-talkchannel/moldclaw.plugin.json +98 -0
  709. package/extensions/kakao-talkchannel/package.json +12 -0
  710. package/extensions/kakao-talkchannel/src/adapters/config.ts +132 -0
  711. package/extensions/kakao-talkchannel/src/adapters/gateway.ts +974 -0
  712. package/extensions/kakao-talkchannel/src/adapters/outbound.ts +52 -0
  713. package/extensions/kakao-talkchannel/src/adapters/pairing.ts +35 -0
  714. package/extensions/kakao-talkchannel/src/adapters/security.ts +57 -0
  715. package/extensions/kakao-talkchannel/src/adapters/setup.ts +105 -0
  716. package/extensions/kakao-talkchannel/src/adapters/status.ts +117 -0
  717. package/extensions/kakao-talkchannel/src/channel.ts +58 -0
  718. package/extensions/kakao-talkchannel/src/commands/card.ts +413 -0
  719. package/extensions/kakao-talkchannel/src/config/schema.ts +129 -0
  720. package/extensions/kakao-talkchannel/src/kakao/callback.ts +133 -0
  721. package/extensions/kakao-talkchannel/src/kakao/limits.ts +129 -0
  722. package/extensions/kakao-talkchannel/src/kakao/payload.ts +138 -0
  723. package/extensions/kakao-talkchannel/src/kakao/response.ts +373 -0
  724. package/extensions/kakao-talkchannel/src/relay/client.ts +146 -0
  725. package/extensions/kakao-talkchannel/src/relay/session.ts +137 -0
  726. package/extensions/kakao-talkchannel/src/relay/sse.ts +258 -0
  727. package/extensions/kakao-talkchannel/src/relay/stream.ts +149 -0
  728. package/extensions/kakao-talkchannel/src/runtime.ts +21 -0
  729. package/extensions/kakao-talkchannel/src/types.ts +447 -0
  730. package/extensions/kakao-talkchannel/src/version.ts +3 -0
  731. package/extensions/kakao-talkchannel/tsconfig.json +19 -0
  732. package/package.json +23 -8
  733. package/skills/meshy/SKILL.md +69 -0
  734. package/skills/meshy/scripts/__pycache__/check_status.cpython-312.pyc +0 -0
  735. package/skills/meshy/scripts/__pycache__/image_to_3d.cpython-312.pyc +0 -0
  736. package/skills/meshy/scripts/__pycache__/text_to_3d.cpython-312.pyc +0 -0
  737. package/skills/meshy/scripts/check_status.py +147 -0
  738. package/skills/meshy/scripts/image_to_3d.py +229 -0
  739. package/skills/meshy/scripts/text_to_3d.py +214 -0
  740. package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
  741. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -0
  742. package/skills/tavily-search/SKILL.md +61 -0
  743. package/skills/tavily-search/scripts/__pycache__/search.cpython-312.pyc +0 -0
  744. package/skills/tavily-search/scripts/search.py +238 -0
  745. package/skills/video-frames/scripts/frame.sh +0 -0
  746. package/LICENSE +0 -21
  747. package/dist/accounts-UcSvD34O.js +0 -109
  748. package/dist/acp-cli-BPb8PgHP.js +0 -2088
  749. package/dist/actions.runtime-BL5QRooG.js +0 -114
  750. package/dist/actions.runtime-DSdfSo40.js +0 -128
  751. package/dist/agents-CHeX_5-H.js +0 -217
  752. package/dist/agents-DQRL9XKP.js +0 -853
  753. package/dist/allow-list-Boi79v-U.js +0 -81
  754. package/dist/allowlist-B2eBBeMF.js +0 -142
  755. package/dist/api-CFAtRSYL.js +0 -6953
  756. package/dist/api-D5JNJj8n.js +0 -112
  757. package/dist/audit-BM0GsdzV.js +0 -787
  758. package/dist/audit-BqRK9OSj.js +0 -54
  759. package/dist/audit-channel.collect.runtime-BPvDB8aq.js +0 -600
  760. package/dist/audit-channel.runtime-D3fzHiAo.js +0 -116
  761. package/dist/audit-extra.async-NveNIzX0.js +0 -813
  762. package/dist/audit-membership-runtime-mu470WFO.js +0 -157
  763. package/dist/audit.deep.runtime-RdxvW8Tj.js +0 -24
  764. package/dist/audit.nondeep.runtime-DDu8vA9Z.js +0 -831
  765. package/dist/audit.runtime-Y8C9W7s9.js +0 -113
  766. package/dist/auth-choice-C1CIxRsi.js +0 -268
  767. package/dist/auth-choice-CTvqWiDI.js +0 -117
  768. package/dist/auth-choice-Ddzko1B8.js +0 -502
  769. package/dist/auth-choice-options-BIAmAiCe.js +0 -123
  770. package/dist/auth-choice-prompt-B815kArz.js +0 -110
  771. package/dist/auth-choice-prompt-CGhTNCJx.js +0 -36
  772. package/dist/auth-choice.plugin-providers.runtime-AvAZ6S5W.js +0 -114
  773. package/dist/auth-profiles-BJcHzwPy.js +0 -127650
  774. package/dist/auth-profiles.runtime-CieFilK5.js +0 -111
  775. package/dist/bluebubbles-F8FGE9cH.js +0 -64
  776. package/dist/brave-BG5Yopn8.js +0 -24
  777. package/dist/browser-cli-Co7PJGZF.js +0 -1492
  778. package/dist/call-CoaQYq7c.js +0 -639
  779. package/dist/call-D3eu5Jjh.js +0 -37
  780. package/dist/channel-BftWD6yu.js +0 -1321
  781. package/dist/channel-Bub9U5Xg.js +0 -214
  782. package/dist/channel-C0oDs7TO.js +0 -4681
  783. package/dist/channel-C8CnEdkZ.js +0 -352
  784. package/dist/channel-CI-RC-xf.js +0 -497
  785. package/dist/channel-CY-hZCOJ.js +0 -397
  786. package/dist/channel-CbtGJB2x.js +0 -943
  787. package/dist/channel-CcfK3wP8.js +0 -803
  788. package/dist/channel-DBoDIeVj.js +0 -619
  789. package/dist/channel-DEq6Ecs-.js +0 -920
  790. package/dist/channel-DH4dhW1n.js +0 -226
  791. package/dist/channel-DQ_wdKg_.js +0 -575
  792. package/dist/channel-DT6qD1Ic.js +0 -207
  793. package/dist/channel-DZNAyxwr.js +0 -542
  794. package/dist/channel-DtakwAEe.js +0 -538
  795. package/dist/channel-DuYgH6p1.js +0 -562
  796. package/dist/channel-Hn-AN-d52.js +0 -316
  797. package/dist/channel-_R4hbD5h.js +0 -1598
  798. package/dist/channel-account-context-DXq8dlvI.js +0 -103
  799. package/dist/channel-kQmEVn3I.js +0 -306
  800. package/dist/channel-options-DHfxaklg.js +0 -50
  801. package/dist/channel-summary-DUpnoYhI.js +0 -106
  802. package/dist/channel-t-JxCWk6.js +0 -949
  803. package/dist/channel.runtime--GYriaXU.js +0 -213
  804. package/dist/channel.runtime-BJtn3GOH.js +0 -174
  805. package/dist/channel.runtime-BV7t_oNz.js +0 -166
  806. package/dist/channel.runtime-Bi8a3n9S.js +0 -865
  807. package/dist/channel.runtime-BjsYF0NN.js +0 -122
  808. package/dist/channel.runtime-BnI6YtmI.js +0 -413
  809. package/dist/channel.runtime-CQOftcCd.js +0 -194
  810. package/dist/channel.runtime-CuIAcPjZ.js +0 -4006
  811. package/dist/channel.runtime-DH1Q1G4k.js +0 -399
  812. package/dist/channel.runtime-DYYUPKxr.js +0 -236
  813. package/dist/channel.runtime-U5Gszsr5.js +0 -177
  814. package/dist/channel.setup-BQFHmgki.js +0 -9
  815. package/dist/channel.setup-BVoDwklu.js +0 -8
  816. package/dist/channel.setup-Bf73HsXr.js +0 -57
  817. package/dist/channel.setup-CblD4flM.js +0 -11
  818. package/dist/channel.setup-DgxlrPgz.js +0 -6
  819. package/dist/channel.setup-GLIAEVKL.js +0 -8
  820. package/dist/channel.setup-YTy5R1sz.js +0 -9
  821. package/dist/channels-CTL8iR9J.js +0 -404
  822. package/dist/channels-DBGvnjHY.js +0 -1113
  823. package/dist/channels-cli-BmVO5-sq.js +0 -286
  824. package/dist/channels-status-issues-kDtsWzA-.js +0 -16
  825. package/dist/clawbot-cli-DtcMJHqX.js +0 -113
  826. package/dist/cli-BNGECGVY.js +0 -149
  827. package/dist/command-registry-1SDrWgER.js +0 -13
  828. package/dist/command-registry-DNorYU4w.js +0 -212
  829. package/dist/command-secret-gateway-DqDZparO.js +0 -106
  830. package/dist/compact.runtime-C1ZN8UGb.js +0 -111
  831. package/dist/completion-cli-Q_Jt5Foc.js +0 -16
  832. package/dist/completion-cli-QkTXhuJh.js +0 -445
  833. package/dist/config-BbxrRaLf.js +0 -938
  834. package/dist/config-CkD8DJ7L.js +0 -44
  835. package/dist/config-cli-BoPrlYTp.js +0 -428
  836. package/dist/config-guard-CEhCvr_u.js +0 -117
  837. package/dist/config-schema-GQ6uWjXe.js +0 -31
  838. package/dist/config-validation-woE2_LpC.js +0 -262
  839. package/dist/config-value-Dh8m-CFf.js +0 -132
  840. package/dist/config-y4i5g7s4.js +0 -30
  841. package/dist/configure-DGRzwdFN.js +0 -1100
  842. package/dist/configure-S4AHE3k_.js +0 -238
  843. package/dist/control-ui-shared-kLBp4YlS.js +0 -29
  844. package/dist/credentials-D5uBf_C5.js +0 -265
  845. package/dist/cron-cli-lGupeVCW.js +0 -634
  846. package/dist/daemon-cli-Cs_edi0I.js +0 -339
  847. package/dist/daemon-install-DIFpP_qv.js +0 -175
  848. package/dist/deliver-DYa_DFZU.js +0 -106
  849. package/dist/deliver-runtime-DCW_o2Ot.js +0 -106
  850. package/dist/devices-cli-YsGOW2-w.js +0 -340
  851. package/dist/diagnostic-vMghIesG.js +0 -310
  852. package/dist/directory-cli-DtjMQjU5.js +0 -306
  853. package/dist/directory.static-DBZGvsdF.js +0 -44
  854. package/dist/discord-DYCu19HT.js +0 -109
  855. package/dist/discovery-DZYAoDF_.js +0 -48
  856. package/dist/dns-cli-DqW4pNgW.js +0 -216
  857. package/dist/docs-cli-Bu9TBlDU.js +0 -173
  858. package/dist/doctor-completion-B5hcQD5c.js +0 -90
  859. package/dist/doctor-config-flow-BBB2ZKfT.js +0 -107
  860. package/dist/doctor-config-flow-DDBYUS9f.js +0 -2437
  861. package/dist/enable-Tmsp8QuB.js +0 -24
  862. package/dist/env-overrides-BHxqjYZG.js +0 -434
  863. package/dist/env-overrides.runtime-Cz98bf-l.js +0 -17
  864. package/dist/exec-approvals-cli-wO5cYfMa.js +0 -419
  865. package/dist/gateway-cli-CFvDGhB9.js +0 -26429
  866. package/dist/gateway-install-token-CskJfo_N.js +0 -163
  867. package/dist/gateway-rpc-srYfBID9.js +0 -26
  868. package/dist/gateway-runtime-C76hUmUV.js +0 -69
  869. package/dist/googlechat-Cha5utST.js +0 -307
  870. package/dist/health-DDQYYsJy.js +0 -108
  871. package/dist/health-DXZykGaX.js +0 -570
  872. package/dist/hooks-cli-DfkurPYP.js +0 -995
  873. package/dist/imessage-B26k39pl.js +0 -110
  874. package/dist/imessage-Bp1_6cws.js +0 -31
  875. package/dist/inbound-reply-dispatch-DoIJLztA.js +0 -71
  876. package/dist/install-target-BjOuS4I8.js +0 -574
  877. package/dist/installs-Cz4k0W1Y.js +0 -532
  878. package/dist/io-B0OKifLZ.js +0 -28
  879. package/dist/io-DcoxdH6t.js +0 -9570
  880. package/dist/ipv4-CTQQ4_IW.js +0 -82
  881. package/dist/irc-B8vBDigm.js +0 -672
  882. package/dist/library-VCM_cQY4.js +0 -107
  883. package/dist/lifecycle-core-Ctz36PdQ.js +0 -382
  884. package/dist/line-B_uTLrdI.js +0 -530
  885. package/dist/llm-slug-generator-YWg0g2pj.js +0 -67
  886. package/dist/logging-S-5LPdfQ.js +0 -13
  887. package/dist/logging-ueBMCGMR.js +0 -29
  888. package/dist/login-qr-pcACm2Ng.js +0 -107
  889. package/dist/login-qr-pv-kxMfF.js +0 -233
  890. package/dist/logs-cli-RgADgSMO.js +0 -254
  891. package/dist/manager-runtime-BhTkoKmb.js +0 -106
  892. package/dist/manager.runtime-BjHzikoK.js +0 -710
  893. package/dist/matrix-C4EEu2Qp.js +0 -1490
  894. package/dist/matrix-Dfzcc5nV.js +0 -1269
  895. package/dist/mcp-cli-CJmOm9Oj.js +0 -86
  896. package/dist/media-understanding.runtime-DCETFCw_.js +0 -111
  897. package/dist/memory-cli-DFqd6tYx.js +0 -106
  898. package/dist/method-scopes-D-Q9dvbj.js +0 -2586
  899. package/dist/model-picker-Z-CUcuMr.js +0 -390
  900. package/dist/model-picker-v5mUsZ4J.js +0 -107
  901. package/dist/model-picker.runtime-A_z0dHfS.js +0 -120
  902. package/dist/model-suppression.runtime-QVWVJRr-.js +0 -111
  903. package/dist/models-Bbj0xV4F.js +0 -2514
  904. package/dist/models-D-OIjZqU.js +0 -113
  905. package/dist/models-cli-Bpn-5i4h.js +0 -304
  906. package/dist/models-config-Cwa5cJbC.js +0 -106
  907. package/dist/monitor-BchfCAaU.js +0 -6823
  908. package/dist/monitor-BydV44SP.js +0 -3076
  909. package/dist/monitor-CT8axwfm.js +0 -767
  910. package/dist/monitor-CZGWNOvn.js +0 -777
  911. package/dist/monitor-DN62r69g.js +0 -3468
  912. package/dist/monitor-DZ0fzJku.js +0 -110
  913. package/dist/monitor-DvNjzWFu.js +0 -108
  914. package/dist/monitor-shared-B-DBSlkQ.js +0 -444
  915. package/dist/msteams-Bf-wk2Rp.js +0 -852
  916. package/dist/node-cli-kH16TQI7.js +0 -2498
  917. package/dist/node-resolve-DfOpQmxm.js +0 -835
  918. package/dist/nodes-cli-CkAMXW5u.js +0 -1375
  919. package/dist/nostr-B8UGHclZ.js +0 -8744
  920. package/dist/npm-resolution-DmjlifII.js +0 -60
  921. package/dist/onboard-C883nfyw.js +0 -589
  922. package/dist/onboard-channels-Dc-BxN7p.js +0 -200
  923. package/dist/onboard-channels-j5EENtum.js +0 -1241
  924. package/dist/onboard-custom-0atne0C5.js +0 -571
  925. package/dist/onboard-custom-CWMqwjJx.js +0 -109
  926. package/dist/onboard-helpers-D3wWfH8F.js +0 -335
  927. package/dist/onboard-helpers-DZmRCe8l.js +0 -108
  928. package/dist/onboard-remote-Cn6kW-p0.js +0 -112
  929. package/dist/onboard-remote-Cx4w5VAk.js +0 -181
  930. package/dist/onboard-search-Ck9HRh2M.js +0 -297
  931. package/dist/onboard-skills-BtqrGioT.js +0 -133
  932. package/dist/onboard-skills-Dnw19Os8.js +0 -112
  933. package/dist/outbound-media-C5Nv4o18.js +0 -11
  934. package/dist/pairing-cli-Cwy9QZ_4.js +0 -212
  935. package/dist/perplexity-Brhpb45X.js +0 -24
  936. package/dist/pi-model-discovery-runtime-DIOdo6D8.js +0 -106
  937. package/dist/pi-tools.before-tool-call.runtime-CFM4gsDF.js +0 -380
  938. package/dist/plugin-install-BOV00hia.js +0 -112
  939. package/dist/plugin-install-Bak8fUBv.js +0 -184
  940. package/dist/plugin-install-plan-bKkEefRf.js +0 -49
  941. package/dist/plugin-registry-DxAXQUlZ.js +0 -108
  942. package/dist/plugin-registry-n0p3phem.js +0 -49
  943. package/dist/plugins-Ca3RK8Fi.js +0 -106
  944. package/dist/plugins-cli-BnC51H2R.js +0 -912
  945. package/dist/policy-BJv97w9e.js +0 -143
  946. package/dist/preflight-audio.runtime-BrFcf-6_.js +0 -111
  947. package/dist/probe-063xvvZc.js +0 -19
  948. package/dist/probe-BJEb2wGv.js +0 -1793
  949. package/dist/probe-CJQlxgsl.js +0 -47
  950. package/dist/probe-Caa2HznF.js +0 -6328
  951. package/dist/probe-CfL4tnJ6.js +0 -129
  952. package/dist/probe-auth-DN2Ec83-.js +0 -38
  953. package/dist/probe-auth-D_UKzu4m.js +0 -48
  954. package/dist/program-BOMdC7MC.js +0 -247
  955. package/dist/prompt-select-styled-DDnCfM3j.js +0 -2673
  956. package/dist/provider-api-key-auth.runtime-DUns3fwX.js +0 -116
  957. package/dist/provider-auth-choice-B_j1ctT2.js +0 -126
  958. package/dist/provider-auth-choice-preference-BaOBZ_Xn.js +0 -189
  959. package/dist/provider-auth-choice.runtime-DOako_zV.js +0 -118
  960. package/dist/provider-auth-guidance-CrjxnoNZ.js +0 -34
  961. package/dist/provider-runtime.runtime-BkOkgmTw.js +0 -106
  962. package/dist/provider-self-hosted-setup-BFDU6dRa.js +0 -182
  963. package/dist/provider-usage-CaDE0mqq.js +0 -106
  964. package/dist/provider-web-search-BR7etTjJ.js +0 -2392
  965. package/dist/provider-wizard-DCPdKUvb.js +0 -152
  966. package/dist/push-apns-B_OZjm4v.js +0 -1038
  967. package/dist/pw-ai-dG60P0hQ.js +0 -1866
  968. package/dist/qr-cli-DWfiw79I.js +0 -369
  969. package/dist/qr-cli-DwuKtyZQ.js +0 -108
  970. package/dist/reactions-CIGAPBn8.js +0 -281
  971. package/dist/read-only-account-inspect.discord.runtime-D54mnq8l.js +0 -111
  972. package/dist/read-only-account-inspect.slack.runtime-Bxs9ObMC.js +0 -111
  973. package/dist/read-only-account-inspect.telegram.runtime-UoVuf_Yo.js +0 -111
  974. package/dist/redact-snapshot-DZ3Vq-SC.js +0 -2657
  975. package/dist/ref-contract-D96lSYLs.js +0 -53
  976. package/dist/register.agent-2KmeahEL.js +0 -434
  977. package/dist/register.backup-ECBnWVR7.js +0 -624
  978. package/dist/register.configure-Doz1daCp.js +0 -247
  979. package/dist/register.maintenance-C33cV-WM.js +0 -569
  980. package/dist/register.message-CnL0NiF6.js +0 -704
  981. package/dist/register.onboard-BrYGZeQA.js +0 -187
  982. package/dist/register.setup-Bx6gEg6X.js +0 -207
  983. package/dist/register.status-health-sessions-FLb0CUOO.js +0 -493
  984. package/dist/register.subclis-BuqgaeIf.js +0 -12
  985. package/dist/register.subclis-DwdgfdnT.js +0 -315
  986. package/dist/registry-xhgvU89y.js +0 -1107
  987. package/dist/replies-hB2aipLu.js +0 -110
  988. package/dist/resolve-3ErMOltL.js +0 -660
  989. package/dist/resolve-channels-BV8GXuPe.js +0 -226
  990. package/dist/resolve-channels-CTY_XRIP.js +0 -262
  991. package/dist/resolve-users-DQ4Ne4Zc.js +0 -143
  992. package/dist/routes-BNDsNO_e.js +0 -7097
  993. package/dist/rpc-BLGTBWXq.js +0 -67
  994. package/dist/run-main-COAE4GlI.js +0 -423
  995. package/dist/runtime-discord-ops.runtime-Dxg-nlgd.js +0 -9073
  996. package/dist/runtime-slack-ops.runtime-Di474LJr.js +0 -4551
  997. package/dist/runtime-telegram-ops.runtime-Da8vgf3O.js +0 -128
  998. package/dist/runtime-whatsapp-login.runtime-DcouP4iF.js +0 -109
  999. package/dist/runtime-whatsapp-outbound.runtime-CYamaEJX.js +0 -112
  1000. package/dist/sandbox-cli-U5ZTxhxL.js +0 -530
  1001. package/dist/search-manager-CfizyEMk.js +0 -386
  1002. package/dist/search-manager-DaF2QP4s.js +0 -15
  1003. package/dist/secrets-cli-C0gytFip.js +0 -2065
  1004. package/dist/security-cli-C74EuLUO.js +0 -570
  1005. package/dist/send-BTLVBf_E.js +0 -631
  1006. package/dist/send-BlWWCEZE.js +0 -1025
  1007. package/dist/send-CfypD1B_.js +0 -100
  1008. package/dist/send-Cm9v3uhF.js +0 -283
  1009. package/dist/send-g2odQuYI.js +0 -629
  1010. package/dist/server-C8b5QJ2s.js +0 -106
  1011. package/dist/server-node-events-xqQe5xiu.js +0 -501
  1012. package/dist/sessions-CSSzvgPQ.js +0 -107
  1013. package/dist/sessions-z0GIvdKa.js +0 -218
  1014. package/dist/setup-D9XTmlF8.js +0 -387
  1015. package/dist/setup-core-BDrLOwYO.js +0 -143
  1016. package/dist/setup-core-CM7cY7_i.js +0 -166
  1017. package/dist/setup-core-CnmgANY-.js +0 -205
  1018. package/dist/setup-core-DgcjCKmG.js +0 -47
  1019. package/dist/setup-surface-DzRrVKYj.js +0 -490
  1020. package/dist/setup.finalize-UaPu_adv.js +0 -517
  1021. package/dist/setup.gateway-config-Djc1ceEh.js +0 -338
  1022. package/dist/setup.secret-input-BkczghbR.js +0 -25
  1023. package/dist/shared-BHizGoNk.js +0 -298
  1024. package/dist/shared-CUfYhQkP.js +0 -96
  1025. package/dist/shared-DYYqr9EC.js +0 -75
  1026. package/dist/shared-DthOxMRQ.js +0 -182
  1027. package/dist/shared-On_A5_hW.js +0 -102
  1028. package/dist/signal-D6px9PGZ.js +0 -109
  1029. package/dist/skills-B4h1k-SP.js +0 -853
  1030. package/dist/skills-Bto10BGB.js +0 -19
  1031. package/dist/skills-cli-CXGR3Y5j.js +0 -291
  1032. package/dist/skills-install-B1AlkK8C.js +0 -763
  1033. package/dist/skills-status-BsmJ_iSg.js +0 -20
  1034. package/dist/skills-status-DGdxY3OI.js +0 -169
  1035. package/dist/slack-B7vWFmxP.js +0 -109
  1036. package/dist/slash-commands.runtime-DXdAT84n.js +0 -123
  1037. package/dist/slash-dispatch.runtime-CNf2-9Aj.js +0 -136
  1038. package/dist/slash-skill-commands.runtime-CBjffHRX.js +0 -111
  1039. package/dist/src-Cp7P7T08.js +0 -1696
  1040. package/dist/status-158fWh4A.js +0 -43
  1041. package/dist/status-BJIVLJnb.js +0 -1599
  1042. package/dist/status-BQiBI6N9.js +0 -126
  1043. package/dist/status-CZipXGUu.js +0 -121
  1044. package/dist/status-ZZIVFLI-.js +0 -606
  1045. package/dist/status-json-BNUy5Mem.js +0 -286
  1046. package/dist/status.link-channel-B694y1Xu.js +0 -138
  1047. package/dist/status.scan.deps.runtime-BcoKEzQD.js +0 -121
  1048. package/dist/status.scan.runtime-CqScDt-p.js +0 -114
  1049. package/dist/status.summary-AMek7qvI.js +0 -592
  1050. package/dist/status.summary.runtime-XgkcQ_kr.js +0 -113
  1051. package/dist/subagent-orphan-recovery-CrCYTmFC.js +0 -302
  1052. package/dist/subagent-registry-runtime-Cg-YvLx3.js +0 -106
  1053. package/dist/synology-chat-0G85jIqQ.js +0 -297
  1054. package/dist/system-cli-kZtSxKNm.js +0 -92
  1055. package/dist/telegram-DV0Wy89w.js +0 -109
  1056. package/dist/text-chunking-C2J2Oeul.js +0 -84
  1057. package/dist/tlon-DmK1NUVP.js +0 -433
  1058. package/dist/tui-D3bNPLG7.js +0 -3834
  1059. package/dist/tui-cli-DtMp9k_s.js +0 -132
  1060. package/dist/types.secrets-DuSPmmWB.js +0 -80
  1061. package/dist/ui-CeGztSEL.js +0 -31
  1062. package/dist/update-De7VudzP.js +0 -1036
  1063. package/dist/update-cli-BH8Pb-So.js +0 -1498
  1064. package/dist/update-offset-store-syELkdEW.js +0 -107
  1065. package/dist/update-runner-Cq-Q40T9.js +0 -1496
  1066. package/dist/web-CjMtvfSq.js +0 -107
  1067. package/dist/webhook-targets-_jTR0Bb_.js +0 -181
  1068. package/dist/webhooks-cli-DQ6u2Qau.js +0 -349
  1069. package/dist/whatsapp-CyLk16SZ.js +0 -109
  1070. package/dist/whatsapp-actions-Dzr2Wzqw.js +0 -162
  1071. package/dist/workspace-dirs-L1_QQ9mB.js +0 -2002
  1072. package/dist/zalo-CrehfXvK.js +0 -415
  1073. package/dist/zalouser-D1QD-O-I.js +0 -30911
  1074. package/dist/zod-schema.core-CWxzqcUs.js +0 -541
@@ -1,1113 +0,0 @@
1
- import "./redact-fatrROh9.js";
2
- import "./errors-DOJWZqNo.js";
3
- import "./unhandled-rejections-CTvNvnT0.js";
4
- import { o as getResolvedLoggerSettings } from "./logger-BFfIIIKH.js";
5
- import "./paths-D6AgsMTU.js";
6
- import "./tmp-moldclaw-dir-DWF-d8qD.js";
7
- import { r as theme } from "./theme-BSXzMzAA.js";
8
- import { t as danger } from "./globals-DESrFYmC.js";
9
- import { m as defaultRuntime } from "./subsystem-S4LNMNHd.js";
10
- import "./ansi-BPhP6LBZ.js";
11
- import "./boolean-D8Ha5nYV.js";
12
- import "./env-Dgex_t9p.js";
13
- import "./warning-filter-gJuwHM7C.js";
14
- import "./utils-rjVNXUns.js";
15
- import { t as formatDocsLink } from "./links-C5I443Xb.js";
16
- import "./setup-binary-Fw3cCSWL.js";
17
- import { $C as hasResolvedCredentialValue, Aw as moveSingleAccountChannelSectionToDefaultAccount, E as normalizeChannelId, Fw as listChannelPluginCatalogEntries, MT as resolveChannelDefaultAccountId, Ol as loadProviderUsageSummary, QC as hasConfiguredUnavailableCredentialStatus, T as listChannelPlugins, TE as loadAuthProfileStore, hu as resolveMessageChannelSelection, jT as parseOptionalDelimitedEntries, kl as formatUsageReportLines, w as getChannelPlugin, yu as resolveCommandSecretRefsViaGateway } from "./auth-profiles-BJcHzwPy.js";
18
- import "./model-selection-DfA4esOK.js";
19
- import { m as resolveDefaultAgentId, p as resolveAgentWorkspaceDir } from "./agent-scope-DA7O8MVG.js";
20
- import { n as normalizeAccountId } from "./account-id-O4Og6DrK.js";
21
- import "./boundary-file-read-Y1cMjPlu.js";
22
- import "./logger-wrbK9-ju.js";
23
- import "./exec-CoBTyh8B.js";
24
- import "./workspace-CxNKYS0V.js";
25
- import { d as readConfigFileSnapshot, g as writeConfigFile, s as loadConfig } from "./io-DcoxdH6t.js";
26
- import "./host-env-security-xy11yVnm.js";
27
- import "./safe-text-BcUvBreN.js";
28
- import "./version-rW_3ob2o.js";
29
- import "./env-substitution-C9xZMTDL.js";
30
- import "./config-state-D1JkXt39.js";
31
- import "./network-mode-CE-ihBf6.js";
32
- import "./registry-DcDGl2X7.js";
33
- import "./manifest-registry-_0xclaVY.js";
34
- import "./ip-w605xvSx.js";
35
- import "./zod-schema.core-CWxzqcUs.js";
36
- import "./config-CkD8DJ7L.js";
37
- import "./audit-fs-SjcfoPO7.js";
38
- import "./resolve-3ErMOltL.js";
39
- import "./provider-web-search-BR7etTjJ.js";
40
- import "./text-runtime-CgEQ9Y9_.js";
41
- import "./workspace-dirs-L1_QQ9mB.js";
42
- import "./config-BbxrRaLf.js";
43
- import { t as formatCliCommand } from "./command-format-DIDjlImI.js";
44
- import "./tailnet-KyAU6tj_.js";
45
- import "./net-B_Iq_SVP.js";
46
- import "./credentials-D5uBf_C5.js";
47
- import "./routes-BNDsNO_e.js";
48
- import "./frontmatter-BTDAgsA3.js";
49
- import "./env-overrides-BHxqjYZG.js";
50
- import "./path-alias-guards-B3ZKrId1.js";
51
- import "./skills-B4h1k-SP.js";
52
- import "./ports-BVwQuCIR.js";
53
- import "./ports-lsof-DiY6GaAf.js";
54
- import "./ssh-tunnel-BaHTFPzH.js";
55
- import "./image-ops-Uw4rEShL.js";
56
- import "./fs-safe-Da4H0IOU.js";
57
- import "./mime-_IkgFMS2.js";
58
- import "./server-middleware-BPq4bu3A.js";
59
- import "./message-channel-CKeDAoOT.js";
60
- import "./resolve-route-IkBfMjBz.js";
61
- import "./internal-hooks-0x1JiQ5f.js";
62
- import "./lazy-runtime-DdzFA4b9.js";
63
- import "./config-schema-GQ6uWjXe.js";
64
- import "./method-scopes-D-Q9dvbj.js";
65
- import "./session-cost-usage-B-57mlS8.js";
66
- import "./paths-CDWV-9nX.js";
67
- import "./routing-3o2D0ix4.js";
68
- import "./send-Cm9v3uhF.js";
69
- import "./node-resolve-DfOpQmxm.js";
70
- import "./provider-stream-gVymYPmd.js";
71
- import "./identity-file-DM4N5_7H.js";
72
- import "./provider-models-BA3hqqPq.js";
73
- import "./secret-file-Bjh19aoH.js";
74
- import "./logging-BdFqMomc.js";
75
- import "./runtime-env-CT-voxYE.js";
76
- import "./registry-xhgvU89y.js";
77
- import "./provider-onboard-CBC3kdk_.js";
78
- import "./model-definitions-DwehIMlw.js";
79
- import "./diagnostic-vMghIesG.js";
80
- import "./message-hook-mappers-DORrSLHM.js";
81
- import "./json-store-DlpyvQXN.js";
82
- import { n as callGateway } from "./call-CoaQYq7c.js";
83
- import "./multimodal-BWF8MRkz.js";
84
- import "./memory-search-BBG2BKIh.js";
85
- import "./query-expansion-8R79qExs.js";
86
- import "./search-manager-CfizyEMk.js";
87
- import "./core-EKuk2FxR.js";
88
- import "./issue-format-i6sEuV4a.js";
89
- import "./logging-S-5LPdfQ.js";
90
- import "./note-z78_JyNp.js";
91
- import "./state-paths-C7dX__ql.js";
92
- import "./config-value-Dh8m-CFf.js";
93
- import { n as getChannelsCommandSecretTargetIds } from "./command-secret-targets-CO_lZ_ZZ.js";
94
- import "./brave-BG5Yopn8.js";
95
- import "./provider-usage-DzuzbNBv.js";
96
- import "./perplexity-Brhpb45X.js";
97
- import "./restart-stale-pids-CN9ElYwR.js";
98
- import "./delivery-queue-DLjFP-0C.js";
99
- import { n as formatTimeAgo } from "./format-relative-B7AB_aDW.js";
100
- import "./pairing-token-ANLRyJSu.js";
101
- import "./accounts-BCaV8MsT.js";
102
- import "./process-runtime-CicRKAFe.js";
103
- import "./audit-BqRK9OSj.js";
104
- import "./cli-runtime-DtIDS2w7.js";
105
- import "./cli-utils-FHeUZLsT.js";
106
- import "./help-format-1yV2Xzq7.js";
107
- import { n as withProgress } from "./progress-BQSTKUhd.js";
108
- import "./gateway-runtime-C76hUmUV.js";
109
- import { n as buildReadOnlySourceChannelAccountSnapshot, t as buildChannelAccountSnapshot } from "./status-158fWh4A.js";
110
- import { t as collectChannelStatusIssues } from "./channels-status-issues-kDtsWzA-.js";
111
- import { t as parseLogLine } from "./parse-log-line-Gxa8nU7i.js";
112
- import { t as createClackPrompter } from "./clack-prompter-yEr9tpqc.js";
113
- import { i as describeBinding, n as applyAgentBindings, t as requireValidConfigSnapshot } from "./config-validation-woE2_LpC.js";
114
- import { t as isCatalogChannelInstalled } from "./discovery-DZYAoDF_.js";
115
- import fs from "node:fs/promises";
116
- //#region src/commands/channels/add-mutators.ts
117
- function applyAccountName(params) {
118
- const accountId = normalizeAccountId(params.accountId);
119
- const apply = (params.plugin ?? getChannelPlugin(params.channel))?.setup?.applyAccountName;
120
- return apply ? apply({
121
- cfg: params.cfg,
122
- accountId,
123
- name: params.name
124
- }) : params.cfg;
125
- }
126
- function applyChannelAccountConfig(params) {
127
- const accountId = normalizeAccountId(params.accountId);
128
- const apply = (params.plugin ?? getChannelPlugin(params.channel))?.setup?.applyAccountConfig;
129
- if (!apply) return params.cfg;
130
- return apply({
131
- cfg: params.cfg,
132
- accountId,
133
- input: params.input
134
- });
135
- }
136
- //#endregion
137
- //#region src/commands/channels/shared.ts
138
- async function requireValidConfig(runtime = defaultRuntime, secretResolution) {
139
- const cfg = await requireValidConfigSnapshot(runtime);
140
- if (!cfg) return null;
141
- const { resolvedConfig, diagnostics } = await resolveCommandSecretRefsViaGateway({
142
- config: cfg,
143
- commandName: secretResolution?.commandName ?? "channels",
144
- targetIds: getChannelsCommandSecretTargetIds(),
145
- mode: secretResolution?.mode
146
- });
147
- for (const entry of diagnostics) runtime.log(`[secrets] ${entry}`);
148
- return resolvedConfig;
149
- }
150
- function formatAccountLabel(params) {
151
- const base = params.accountId || "default";
152
- if (params.name?.trim()) return `${base} (${params.name.trim()})`;
153
- return base;
154
- }
155
- const channelLabel = (channel) => {
156
- return getChannelPlugin(channel)?.meta.label ?? channel;
157
- };
158
- function formatChannelAccountLabel(params) {
159
- const channelText = channelLabel(params.channel);
160
- const accountText = formatAccountLabel({
161
- accountId: params.accountId,
162
- name: params.name
163
- });
164
- return `${params.channelStyle ? params.channelStyle(channelText) : channelText} ${params.accountStyle ? params.accountStyle(accountText) : accountText}`;
165
- }
166
- function shouldUseWizard(params) {
167
- return params?.hasFlags === false;
168
- }
169
- //#endregion
170
- //#region src/commands/channels/add.ts
171
- function resolveCatalogChannelEntry(raw, cfg) {
172
- const trimmed = raw.trim().toLowerCase();
173
- if (!trimmed) return;
174
- return listChannelPluginCatalogEntries({ workspaceDir: cfg ? resolveAgentWorkspaceDir(cfg, resolveDefaultAgentId(cfg)) : void 0 }).find((entry) => {
175
- if (entry.id.toLowerCase() === trimmed) return true;
176
- return (entry.meta.aliases ?? []).some((alias) => alias.trim().toLowerCase() === trimmed);
177
- });
178
- }
179
- async function channelsAddCommand(opts, runtime = defaultRuntime, params) {
180
- const cfg = await requireValidConfig(runtime);
181
- if (!cfg) return;
182
- let nextConfig = cfg;
183
- if (shouldUseWizard(params)) {
184
- const [{ buildAgentSummaries }, { setupChannels }] = await Promise.all([import("./agents.config-EuzO94Yh.js"), import("./onboard-channels-Dc-BxN7p.js")]);
185
- const prompter = createClackPrompter();
186
- let selection = [];
187
- const accountIds = {};
188
- const resolvedPlugins = /* @__PURE__ */ new Map();
189
- await prompter.intro("Channel setup");
190
- let nextConfig = await setupChannels(cfg, runtime, prompter, {
191
- allowDisable: false,
192
- allowSignalInstall: true,
193
- promptAccountIds: true,
194
- onSelection: (value) => {
195
- selection = value;
196
- },
197
- onAccountId: (channel, accountId) => {
198
- accountIds[channel] = accountId;
199
- },
200
- onResolvedPlugin: (channel, plugin) => {
201
- resolvedPlugins.set(channel, plugin);
202
- }
203
- });
204
- if (selection.length === 0) {
205
- await prompter.outro("No channels selected.");
206
- return;
207
- }
208
- if (await prompter.confirm({
209
- message: "Add display names for these accounts? (optional)",
210
- initialValue: false
211
- })) for (const channel of selection) {
212
- const accountId = accountIds[channel] ?? "default";
213
- const plugin = resolvedPlugins.get(channel) ?? getChannelPlugin(channel);
214
- const account = plugin?.config.resolveAccount(nextConfig, accountId);
215
- const existingName = (plugin?.config.describeAccount?.(account, nextConfig))?.name ?? account?.name;
216
- const name = await prompter.text({
217
- message: `${channel} account name (${accountId})`,
218
- initialValue: existingName
219
- });
220
- if (name?.trim()) nextConfig = applyAccountName({
221
- cfg: nextConfig,
222
- channel,
223
- accountId,
224
- name,
225
- plugin
226
- });
227
- }
228
- const bindTargets = selection.map((channel) => ({
229
- channel,
230
- accountId: accountIds[channel]?.trim()
231
- })).filter((value) => Boolean(value.accountId));
232
- if (bindTargets.length > 0) {
233
- if (await prompter.confirm({
234
- message: "Bind configured channel accounts to agents now?",
235
- initialValue: true
236
- })) {
237
- const agentSummaries = buildAgentSummaries(nextConfig);
238
- const defaultAgentId = resolveDefaultAgentId(nextConfig);
239
- for (const target of bindTargets) {
240
- const targetAgentId = await prompter.select({
241
- message: `Route ${target.channel} account "${target.accountId}" to agent`,
242
- options: agentSummaries.map((agent) => ({
243
- value: agent.id,
244
- label: agent.isDefault ? `${agent.id} (default)` : agent.id
245
- })),
246
- initialValue: defaultAgentId
247
- });
248
- const bindingResult = applyAgentBindings(nextConfig, [{
249
- agentId: targetAgentId,
250
- match: {
251
- channel: target.channel,
252
- accountId: target.accountId
253
- }
254
- }]);
255
- nextConfig = bindingResult.config;
256
- if (bindingResult.added.length > 0 || bindingResult.updated.length > 0) await prompter.note([...bindingResult.added.map((binding) => `Added: ${describeBinding(binding)}`), ...bindingResult.updated.map((binding) => `Updated: ${describeBinding(binding)}`)].join("\n"), "Routing bindings");
257
- if (bindingResult.conflicts.length > 0) await prompter.note(["Skipped bindings already claimed by another agent:", ...bindingResult.conflicts.map((conflict) => `- ${describeBinding(conflict.binding)} (agent=${conflict.existingAgentId})`)].join("\n"), "Routing bindings");
258
- }
259
- }
260
- }
261
- await writeConfigFile(nextConfig);
262
- await prompter.outro("Channels updated.");
263
- return;
264
- }
265
- const rawChannel = String(opts.channel ?? "");
266
- let channel = normalizeChannelId(rawChannel);
267
- let catalogEntry = channel ? void 0 : resolveCatalogChannelEntry(rawChannel, nextConfig);
268
- const resolveWorkspaceDir = () => resolveAgentWorkspaceDir(nextConfig, resolveDefaultAgentId(nextConfig));
269
- const loadScopedPlugin = async (channelId, pluginId) => {
270
- const existing = getChannelPlugin(channelId);
271
- if (existing) return existing;
272
- const { loadChannelSetupPluginRegistrySnapshotForChannel } = await import("./plugin-install-BOV00hia.js");
273
- const snapshot = loadChannelSetupPluginRegistrySnapshotForChannel({
274
- cfg: nextConfig,
275
- runtime,
276
- channel: channelId,
277
- ...pluginId ? { pluginId } : {},
278
- workspaceDir: resolveWorkspaceDir()
279
- });
280
- return snapshot.channels.find((entry) => entry.plugin.id === channelId)?.plugin ?? snapshot.channelSetups.find((entry) => entry.plugin.id === channelId)?.plugin;
281
- };
282
- if (!channel && catalogEntry) {
283
- const workspaceDir = resolveWorkspaceDir();
284
- if (!isCatalogChannelInstalled({
285
- cfg: nextConfig,
286
- entry: catalogEntry,
287
- workspaceDir
288
- })) {
289
- const { ensureChannelSetupPluginInstalled } = await import("./plugin-install-BOV00hia.js");
290
- const prompter = createClackPrompter();
291
- const result = await ensureChannelSetupPluginInstalled({
292
- cfg: nextConfig,
293
- entry: catalogEntry,
294
- prompter,
295
- runtime,
296
- workspaceDir
297
- });
298
- nextConfig = result.cfg;
299
- if (!result.installed) return;
300
- catalogEntry = {
301
- ...catalogEntry,
302
- ...result.pluginId ? { pluginId: result.pluginId } : {}
303
- };
304
- }
305
- channel = normalizeChannelId(catalogEntry.id) ?? catalogEntry.id;
306
- }
307
- if (!channel) {
308
- const hint = catalogEntry ? `Plugin ${catalogEntry.meta.label} could not be loaded after install.` : `Unknown channel: ${String(opts.channel ?? "")}`;
309
- runtime.error(hint);
310
- runtime.exit(1);
311
- return;
312
- }
313
- const plugin = await loadScopedPlugin(channel, catalogEntry?.pluginId);
314
- if (!plugin?.setup?.applyAccountConfig) {
315
- runtime.error(`Channel ${channel} does not support add.`);
316
- runtime.exit(1);
317
- return;
318
- }
319
- const useEnv = opts.useEnv === true;
320
- const initialSyncLimit = typeof opts.initialSyncLimit === "number" ? opts.initialSyncLimit : typeof opts.initialSyncLimit === "string" && opts.initialSyncLimit.trim() ? Number.parseInt(opts.initialSyncLimit, 10) : void 0;
321
- const groupChannels = parseOptionalDelimitedEntries(opts.groupChannels);
322
- const dmAllowlist = parseOptionalDelimitedEntries(opts.dmAllowlist);
323
- const input = {
324
- name: opts.name,
325
- token: opts.token,
326
- privateKey: opts.privateKey,
327
- tokenFile: opts.tokenFile,
328
- botToken: opts.botToken,
329
- appToken: opts.appToken,
330
- signalNumber: opts.signalNumber,
331
- cliPath: opts.cliPath,
332
- dbPath: opts.dbPath,
333
- service: opts.service,
334
- region: opts.region,
335
- authDir: opts.authDir,
336
- httpUrl: opts.httpUrl,
337
- httpHost: opts.httpHost,
338
- httpPort: opts.httpPort,
339
- webhookPath: opts.webhookPath,
340
- webhookUrl: opts.webhookUrl,
341
- audienceType: opts.audienceType,
342
- audience: opts.audience,
343
- homeserver: opts.homeserver,
344
- userId: opts.userId,
345
- accessToken: opts.accessToken,
346
- password: opts.password,
347
- deviceName: opts.deviceName,
348
- initialSyncLimit,
349
- useEnv,
350
- ship: opts.ship,
351
- url: opts.url,
352
- relayUrls: opts.relayUrls,
353
- code: opts.code,
354
- groupChannels,
355
- dmAllowlist,
356
- autoDiscoverChannels: opts.autoDiscoverChannels
357
- };
358
- const accountId = plugin.setup.resolveAccountId?.({
359
- cfg: nextConfig,
360
- accountId: opts.account,
361
- input
362
- }) ?? normalizeAccountId(opts.account);
363
- const validationError = plugin.setup.validateInput?.({
364
- cfg: nextConfig,
365
- accountId,
366
- input
367
- });
368
- if (validationError) {
369
- runtime.error(validationError);
370
- runtime.exit(1);
371
- return;
372
- }
373
- const prevConfig = nextConfig;
374
- if (accountId !== "default") nextConfig = moveSingleAccountChannelSectionToDefaultAccount({
375
- cfg: nextConfig,
376
- channelKey: channel
377
- });
378
- nextConfig = applyChannelAccountConfig({
379
- cfg: nextConfig,
380
- channel,
381
- accountId,
382
- input,
383
- plugin
384
- });
385
- await plugin.lifecycle?.onAccountConfigChanged?.({
386
- prevCfg: prevConfig,
387
- nextCfg: nextConfig,
388
- accountId,
389
- runtime
390
- });
391
- await writeConfigFile(nextConfig);
392
- runtime.log(`Added ${channelLabel(channel)} account "${accountId}".`);
393
- }
394
- //#endregion
395
- //#region src/commands/channels/capabilities.ts
396
- function normalizeTimeout(raw, fallback = 1e4) {
397
- const value = typeof raw === "string" ? Number(raw) : Number(raw);
398
- if (!Number.isFinite(value) || value <= 0) return fallback;
399
- return value;
400
- }
401
- function formatSupport(capabilities) {
402
- if (!capabilities) return "unknown";
403
- const bits = [];
404
- if (capabilities.chatTypes?.length) bits.push(`chatTypes=${capabilities.chatTypes.join(",")}`);
405
- if (capabilities.polls) bits.push("polls");
406
- if (capabilities.reactions) bits.push("reactions");
407
- if (capabilities.edit) bits.push("edit");
408
- if (capabilities.unsend) bits.push("unsend");
409
- if (capabilities.reply) bits.push("reply");
410
- if (capabilities.effects) bits.push("effects");
411
- if (capabilities.groupManagement) bits.push("groupManagement");
412
- if (capabilities.threads) bits.push("threads");
413
- if (capabilities.media) bits.push("media");
414
- if (capabilities.nativeCommands) bits.push("nativeCommands");
415
- if (capabilities.blockStreaming) bits.push("blockStreaming");
416
- return bits.length ? bits.join(" ") : "none";
417
- }
418
- function formatGenericProbeLines(probe) {
419
- if (!probe || typeof probe !== "object") return [];
420
- const probeObj = probe;
421
- const ok = typeof probeObj.ok === "boolean" ? probeObj.ok : void 0;
422
- if (ok === true) return [{ text: "Probe: ok" }];
423
- if (ok === false) return [{
424
- text: `Probe: failed${typeof probeObj.error === "string" && probeObj.error ? ` (${probeObj.error})` : ""}`,
425
- tone: "error"
426
- }];
427
- return [];
428
- }
429
- function renderDisplayLine(line) {
430
- switch (line.tone) {
431
- case "muted": return theme.muted(line.text);
432
- case "success": return theme.success(line.text);
433
- case "warn": return theme.warn(line.text);
434
- case "error": return theme.error(line.text);
435
- default: return line.text;
436
- }
437
- }
438
- async function resolveChannelReports(params) {
439
- const { plugin, cfg, timeoutMs } = params;
440
- const accountIds = params.accountOverride ? [params.accountOverride] : (() => {
441
- const ids = plugin.config.listAccountIds(cfg);
442
- return ids.length > 0 ? ids : [resolveChannelDefaultAccountId({
443
- plugin,
444
- cfg,
445
- accountIds: ids
446
- })];
447
- })();
448
- const reports = [];
449
- const listedActions = plugin.actions?.listActions?.({ cfg }) ?? [];
450
- const actions = Array.from(new Set([
451
- "send",
452
- "broadcast",
453
- ...listedActions.map((action) => String(action))
454
- ]));
455
- for (const accountId of accountIds) {
456
- const resolvedAccount = plugin.config.resolveAccount(cfg, accountId);
457
- const configured = plugin.config.isConfigured ? await plugin.config.isConfigured(resolvedAccount, cfg) : Boolean(resolvedAccount);
458
- const enabled = plugin.config.isEnabled ? plugin.config.isEnabled(resolvedAccount, cfg) : resolvedAccount.enabled !== false;
459
- let probe;
460
- if (configured && enabled && plugin.status?.probeAccount) try {
461
- probe = await plugin.status.probeAccount({
462
- account: resolvedAccount,
463
- timeoutMs,
464
- cfg
465
- });
466
- } catch (err) {
467
- probe = {
468
- ok: false,
469
- error: err instanceof Error ? err.message : String(err)
470
- };
471
- }
472
- const diagnostics = configured && enabled ? await plugin.status?.buildCapabilitiesDiagnostics?.({
473
- account: resolvedAccount,
474
- timeoutMs,
475
- cfg,
476
- probe,
477
- target: params.target
478
- }) : void 0;
479
- reports.push({
480
- channel: plugin.id,
481
- accountId,
482
- accountName: typeof resolvedAccount.name === "string" ? resolvedAccount.name?.trim() || void 0 : void 0,
483
- configured,
484
- enabled,
485
- support: plugin.capabilities,
486
- probe,
487
- actions,
488
- diagnostics
489
- });
490
- }
491
- return reports;
492
- }
493
- async function channelsCapabilitiesCommand(opts, runtime = defaultRuntime) {
494
- const cfg = await requireValidConfig(runtime);
495
- if (!cfg) return;
496
- const timeoutMs = normalizeTimeout(opts.timeout, 1e4);
497
- const rawChannel = typeof opts.channel === "string" ? opts.channel.trim().toLowerCase() : "";
498
- const rawTarget = typeof opts.target === "string" ? opts.target.trim() : "";
499
- if (opts.account && (!rawChannel || rawChannel === "all")) {
500
- runtime.error(danger("--account requires a specific --channel."));
501
- runtime.exit(1);
502
- return;
503
- }
504
- if (rawTarget && (!rawChannel || rawChannel === "all")) {
505
- runtime.error(danger("--target requires a specific --channel."));
506
- runtime.exit(1);
507
- return;
508
- }
509
- const plugins = listChannelPlugins();
510
- const selected = !rawChannel || rawChannel === "all" ? plugins : (() => {
511
- const plugin = getChannelPlugin(rawChannel);
512
- if (!plugin) return null;
513
- return [plugin];
514
- })();
515
- if (!selected || selected.length === 0) {
516
- runtime.error(danger(`Unknown channel "${rawChannel}".`));
517
- runtime.exit(1);
518
- return;
519
- }
520
- const reports = [];
521
- for (const plugin of selected) {
522
- const accountOverride = opts.account?.trim() || void 0;
523
- reports.push(...await resolveChannelReports({
524
- plugin,
525
- cfg,
526
- timeoutMs,
527
- accountOverride,
528
- target: rawTarget || void 0
529
- }));
530
- }
531
- if (opts.json) {
532
- runtime.log(JSON.stringify({ channels: reports }, null, 2));
533
- return;
534
- }
535
- const lines = [];
536
- for (const report of reports) {
537
- const label = formatChannelAccountLabel({
538
- channel: report.channel,
539
- accountId: report.accountId,
540
- name: report.accountName,
541
- channelStyle: theme.accent,
542
- accountStyle: theme.heading
543
- });
544
- lines.push(theme.heading(label));
545
- lines.push(`Support: ${formatSupport(report.support)}`);
546
- if (report.actions && report.actions.length > 0) lines.push(`Actions: ${report.actions.join(", ")}`);
547
- if (report.configured === false || report.enabled === false) {
548
- const configuredLabel = report.configured === false ? "not configured" : "configured";
549
- const enabledLabel = report.enabled === false ? "disabled" : "enabled";
550
- lines.push(`Status: ${configuredLabel}, ${enabledLabel}`);
551
- }
552
- const probeLines = getChannelPlugin(report.channel)?.status?.formatCapabilitiesProbe?.({ probe: report.probe }) ?? formatGenericProbeLines(report.probe);
553
- if (probeLines.length > 0) lines.push(...probeLines.map(renderDisplayLine));
554
- else if (report.configured && report.enabled) lines.push(theme.muted("Probe: unavailable"));
555
- if (report.diagnostics?.lines?.length) lines.push(...report.diagnostics.lines.map(renderDisplayLine));
556
- lines.push("");
557
- }
558
- runtime.log(lines.join("\n").trimEnd());
559
- }
560
- //#endregion
561
- //#region src/commands/channels/list.ts
562
- const colorValue = (value) => {
563
- if (value === "none") return theme.error(value);
564
- if (value === "env") return theme.accent(value);
565
- return theme.success(value);
566
- };
567
- function formatEnabled(value) {
568
- return value === false ? theme.error("disabled") : theme.success("enabled");
569
- }
570
- function formatConfigured(value) {
571
- return value ? theme.success("configured") : theme.warn("not configured");
572
- }
573
- function formatTokenSource(source) {
574
- return `token=${colorValue(source || "none")}`;
575
- }
576
- function formatSource(label, source) {
577
- return `${label}=${colorValue(source || "none")}`;
578
- }
579
- function formatLinked(value) {
580
- return value ? theme.success("linked") : theme.warn("not linked");
581
- }
582
- function shouldShowConfigured(channel) {
583
- return channel.meta.showConfigured !== false;
584
- }
585
- function formatAccountLine(params) {
586
- const { channel, snapshot } = params;
587
- const label = formatChannelAccountLabel({
588
- channel: channel.id,
589
- accountId: snapshot.accountId,
590
- name: snapshot.name,
591
- channelStyle: theme.accent,
592
- accountStyle: theme.heading
593
- });
594
- const bits = [];
595
- if (snapshot.linked !== void 0) bits.push(formatLinked(snapshot.linked));
596
- if (shouldShowConfigured(channel) && typeof snapshot.configured === "boolean") bits.push(formatConfigured(snapshot.configured));
597
- if (snapshot.tokenSource) bits.push(formatTokenSource(snapshot.tokenSource));
598
- if (snapshot.botTokenSource) bits.push(formatSource("bot", snapshot.botTokenSource));
599
- if (snapshot.appTokenSource) bits.push(formatSource("app", snapshot.appTokenSource));
600
- if (snapshot.baseUrl) bits.push(`base=${theme.muted(snapshot.baseUrl)}`);
601
- if (typeof snapshot.enabled === "boolean") bits.push(formatEnabled(snapshot.enabled));
602
- return `- ${label}: ${bits.join(", ")}`;
603
- }
604
- async function loadUsageWithProgress(runtime) {
605
- try {
606
- return await withProgress({
607
- label: "Fetching usage snapshot…",
608
- indeterminate: true,
609
- enabled: true
610
- }, async () => await loadProviderUsageSummary());
611
- } catch (err) {
612
- runtime.error(String(err));
613
- return null;
614
- }
615
- }
616
- async function channelsListCommand(opts, runtime = defaultRuntime) {
617
- const cfg = await requireValidConfig(runtime);
618
- if (!cfg) return;
619
- const includeUsage = opts.usage !== false;
620
- const plugins = listChannelPlugins();
621
- const authStore = loadAuthProfileStore();
622
- const authProfiles = Object.entries(authStore.profiles).map(([profileId, profile]) => ({
623
- id: profileId,
624
- provider: profile.provider,
625
- type: profile.type,
626
- isExternal: false
627
- }));
628
- if (opts.json) {
629
- const usage = includeUsage ? await loadProviderUsageSummary() : void 0;
630
- const chat = {};
631
- for (const plugin of plugins) chat[plugin.id] = plugin.config.listAccountIds(cfg);
632
- const payload = {
633
- chat,
634
- auth: authProfiles,
635
- ...usage ? { usage } : {}
636
- };
637
- runtime.log(JSON.stringify(payload, null, 2));
638
- return;
639
- }
640
- const lines = [];
641
- lines.push(theme.heading("Chat channels:"));
642
- for (const plugin of plugins) {
643
- const accounts = plugin.config.listAccountIds(cfg);
644
- if (!accounts || accounts.length === 0) continue;
645
- for (const accountId of accounts) {
646
- const snapshot = await buildChannelAccountSnapshot({
647
- plugin,
648
- cfg,
649
- accountId
650
- });
651
- lines.push(formatAccountLine({
652
- channel: plugin,
653
- snapshot
654
- }));
655
- }
656
- }
657
- lines.push("");
658
- lines.push(theme.heading("Auth providers (OAuth + API keys):"));
659
- if (authProfiles.length === 0) lines.push(theme.muted("- none"));
660
- else for (const profile of authProfiles) {
661
- const external = profile.isExternal ? theme.muted(" (synced)") : "";
662
- lines.push(`- ${theme.accent(profile.id)} (${theme.success(profile.type)}${external})`);
663
- }
664
- runtime.log(lines.join("\n"));
665
- if (includeUsage) {
666
- runtime.log("");
667
- const usage = await loadUsageWithProgress(runtime);
668
- if (usage) {
669
- const usageLines = formatUsageReportLines(usage);
670
- if (usageLines.length > 0) {
671
- usageLines[0] = theme.accent(usageLines[0]);
672
- runtime.log(usageLines.join("\n"));
673
- }
674
- }
675
- }
676
- runtime.log("");
677
- runtime.log(`Docs: ${formatDocsLink("/gateway/configuration", "gateway/configuration")}`);
678
- }
679
- //#endregion
680
- //#region src/commands/channels/logs.ts
681
- const DEFAULT_LIMIT = 200;
682
- const MAX_BYTES = 1e6;
683
- const getChannelSet = () => new Set([...listChannelPlugins().map((plugin) => plugin.id), "all"]);
684
- function parseChannelFilter(raw) {
685
- const trimmed = raw?.trim().toLowerCase();
686
- if (!trimmed) return "all";
687
- return getChannelSet().has(trimmed) ? trimmed : "all";
688
- }
689
- function matchesChannel(line, channel) {
690
- if (channel === "all") return true;
691
- const needle = `gateway/channels/${channel}`;
692
- if (line.subsystem?.includes(needle)) return true;
693
- if (line.module?.includes(channel)) return true;
694
- return false;
695
- }
696
- async function readTailLines(file, limit) {
697
- const stat = await fs.stat(file).catch(() => null);
698
- if (!stat) return [];
699
- const size = stat.size;
700
- const start = Math.max(0, size - MAX_BYTES);
701
- const handle = await fs.open(file, "r");
702
- try {
703
- const length = Math.max(0, size - start);
704
- if (length === 0) return [];
705
- const buffer = Buffer.alloc(length);
706
- const readResult = await handle.read(buffer, 0, length, start);
707
- let lines = buffer.toString("utf8", 0, readResult.bytesRead).split("\n");
708
- if (start > 0) lines = lines.slice(1);
709
- if (lines.length && lines[lines.length - 1] === "") lines = lines.slice(0, -1);
710
- if (lines.length > limit) lines = lines.slice(lines.length - limit);
711
- return lines;
712
- } finally {
713
- await handle.close();
714
- }
715
- }
716
- async function channelsLogsCommand(opts, runtime = defaultRuntime) {
717
- const channel = parseChannelFilter(opts.channel);
718
- const limitRaw = typeof opts.lines === "string" ? Number(opts.lines) : opts.lines;
719
- const limit = typeof limitRaw === "number" && Number.isFinite(limitRaw) && limitRaw > 0 ? Math.floor(limitRaw) : DEFAULT_LIMIT;
720
- const file = getResolvedLoggerSettings().file;
721
- const filtered = (await readTailLines(file, limit * 4)).map(parseLogLine).filter((line) => Boolean(line)).filter((line) => matchesChannel(line, channel));
722
- const lines = filtered.slice(Math.max(0, filtered.length - limit));
723
- if (opts.json) {
724
- runtime.log(JSON.stringify({
725
- file,
726
- channel,
727
- lines
728
- }, null, 2));
729
- return;
730
- }
731
- runtime.log(theme.info(`Log file: ${file}`));
732
- if (channel !== "all") runtime.log(theme.info(`Channel: ${channel}`));
733
- if (lines.length === 0) {
734
- runtime.log(theme.muted("No matching log lines."));
735
- return;
736
- }
737
- for (const line of lines) {
738
- const ts = line.time ? `${line.time} ` : "";
739
- const level = line.level ? `${line.level.toLowerCase()} ` : "";
740
- runtime.log(`${ts}${level}${line.message}`.trim());
741
- }
742
- }
743
- //#endregion
744
- //#region src/commands/channels/remove.ts
745
- function listAccountIds(cfg, channel) {
746
- const plugin = getChannelPlugin(channel);
747
- if (!plugin) return [];
748
- return plugin.config.listAccountIds(cfg);
749
- }
750
- async function channelsRemoveCommand(opts, runtime = defaultRuntime, params) {
751
- const cfg = await requireValidConfig(runtime);
752
- if (!cfg) return;
753
- const useWizard = shouldUseWizard(params);
754
- const prompter = useWizard ? createClackPrompter() : null;
755
- let channel = normalizeChannelId(opts.channel);
756
- let accountId = normalizeAccountId(opts.account);
757
- const deleteConfig = Boolean(opts.delete);
758
- if (useWizard && prompter) {
759
- await prompter.intro("Remove channel account");
760
- const selectedChannel = await prompter.select({
761
- message: "Channel",
762
- options: listChannelPlugins().map((plugin) => ({
763
- value: plugin.id,
764
- label: plugin.meta.label
765
- }))
766
- });
767
- channel = selectedChannel;
768
- accountId = await (async () => {
769
- const ids = listAccountIds(cfg, selectedChannel);
770
- return normalizeAccountId(await prompter.select({
771
- message: "Account",
772
- options: ids.map((id) => ({
773
- value: id,
774
- label: id === "default" ? "default (primary)" : id
775
- })),
776
- initialValue: ids[0] ?? "default"
777
- }));
778
- })();
779
- if (!await prompter.confirm({
780
- message: `Disable ${channelLabel(selectedChannel)} account "${accountId}"? (keeps config)`,
781
- initialValue: true
782
- })) {
783
- await prompter.outro("Cancelled.");
784
- return;
785
- }
786
- } else {
787
- if (!channel) {
788
- runtime.error("Channel is required. Use --channel <name>.");
789
- runtime.exit(1);
790
- return;
791
- }
792
- if (!deleteConfig) {
793
- if (!await createClackPrompter().confirm({
794
- message: `Disable ${channelLabel(channel)} account "${accountId}"? (keeps config)`,
795
- initialValue: true
796
- })) return;
797
- }
798
- }
799
- const plugin = getChannelPlugin(channel);
800
- if (!plugin) {
801
- runtime.error(`Unknown channel: ${channel}`);
802
- runtime.exit(1);
803
- return;
804
- }
805
- const resolvedAccountId = normalizeAccountId(accountId) ?? resolveChannelDefaultAccountId({
806
- plugin,
807
- cfg
808
- });
809
- const accountKey = resolvedAccountId || "default";
810
- let next = { ...cfg };
811
- const prevCfg = cfg;
812
- if (deleteConfig) {
813
- if (!plugin.config.deleteAccount) {
814
- runtime.error(`Channel ${channel} does not support delete.`);
815
- runtime.exit(1);
816
- return;
817
- }
818
- next = plugin.config.deleteAccount({
819
- cfg: next,
820
- accountId: resolvedAccountId
821
- });
822
- await plugin.lifecycle?.onAccountRemoved?.({
823
- prevCfg,
824
- accountId: resolvedAccountId,
825
- runtime
826
- });
827
- } else {
828
- if (!plugin.config.setAccountEnabled) {
829
- runtime.error(`Channel ${channel} does not support disable.`);
830
- runtime.exit(1);
831
- return;
832
- }
833
- next = plugin.config.setAccountEnabled({
834
- cfg: next,
835
- accountId: resolvedAccountId,
836
- enabled: false
837
- });
838
- await plugin.lifecycle?.onAccountConfigChanged?.({
839
- prevCfg,
840
- nextCfg: next,
841
- accountId: resolvedAccountId,
842
- runtime
843
- });
844
- }
845
- await writeConfigFile(next);
846
- if (useWizard && prompter) await prompter.outro(deleteConfig ? `Deleted ${channelLabel(channel)} account "${accountKey}".` : `Disabled ${channelLabel(channel)} account "${accountKey}".`);
847
- else runtime.log(deleteConfig ? `Deleted ${channelLabel(channel)} account "${accountKey}".` : `Disabled ${channelLabel(channel)} account "${accountKey}".`);
848
- }
849
- //#endregion
850
- //#region src/commands/channels/resolve.ts
851
- function resolvePreferredKind(kind) {
852
- if (!kind || kind === "auto") return;
853
- if (kind === "user") return "user";
854
- return "group";
855
- }
856
- function detectAutoKind(input) {
857
- const trimmed = input.trim();
858
- if (!trimmed) return "group";
859
- if (trimmed.startsWith("@")) return "user";
860
- if (/^<@!?/.test(trimmed)) return "user";
861
- if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(trimmed)) return "user";
862
- if (/^(user|discord|slack|matrix|msteams|teams|zalo|zalouser|googlechat|google-chat|gchat):/i.test(trimmed)) return "user";
863
- return "group";
864
- }
865
- function formatResolveResult(result) {
866
- if (!result.resolved || !result.id) return `${result.input} -> unresolved`;
867
- const name = result.name ? ` (${result.name})` : "";
868
- const note = result.note ? ` [${result.note}]` : "";
869
- return `${result.input} -> ${result.id}${name}${note}`;
870
- }
871
- async function channelsResolveCommand(opts, runtime) {
872
- const { resolvedConfig: cfg, diagnostics } = await resolveCommandSecretRefsViaGateway({
873
- config: loadConfig(),
874
- commandName: "channels resolve",
875
- targetIds: getChannelsCommandSecretTargetIds(),
876
- mode: "read_only_operational"
877
- });
878
- for (const entry of diagnostics) runtime.log(`[secrets] ${entry}`);
879
- const entries = (opts.entries ?? []).map((entry) => entry.trim()).filter(Boolean);
880
- if (entries.length === 0) throw new Error("At least one entry is required.");
881
- const selection = await resolveMessageChannelSelection({
882
- cfg,
883
- channel: opts.channel ?? null
884
- });
885
- const plugin = getChannelPlugin(selection.channel);
886
- if (!plugin?.resolver?.resolveTargets) throw new Error(`Channel ${selection.channel} does not support resolve.`);
887
- const preferredKind = resolvePreferredKind(opts.kind);
888
- let results = [];
889
- if (preferredKind) results = (await plugin.resolver.resolveTargets({
890
- cfg,
891
- accountId: opts.account ?? null,
892
- inputs: entries,
893
- kind: preferredKind,
894
- runtime
895
- })).map((entry) => ({
896
- input: entry.input,
897
- resolved: entry.resolved,
898
- id: entry.id,
899
- name: entry.name,
900
- note: entry.note
901
- }));
902
- else {
903
- const byKind = /* @__PURE__ */ new Map();
904
- for (const entry of entries) {
905
- const kind = detectAutoKind(entry);
906
- byKind.set(kind, [...byKind.get(kind) ?? [], entry]);
907
- }
908
- const resolved = [];
909
- for (const [kind, inputs] of byKind.entries()) {
910
- const batch = await plugin.resolver.resolveTargets({
911
- cfg,
912
- accountId: opts.account ?? null,
913
- inputs,
914
- kind,
915
- runtime
916
- });
917
- resolved.push(...batch);
918
- }
919
- const byInput = new Map(resolved.map((entry) => [entry.input, entry]));
920
- results = entries.map((input) => {
921
- const entry = byInput.get(input);
922
- return {
923
- input,
924
- resolved: entry?.resolved ?? false,
925
- id: entry?.id,
926
- name: entry?.name,
927
- note: entry?.note
928
- };
929
- });
930
- }
931
- if (opts.json) {
932
- runtime.log(JSON.stringify(results, null, 2));
933
- return;
934
- }
935
- for (const result of results) if (result.resolved && result.id) runtime.log(formatResolveResult(result));
936
- else runtime.error(danger(`${result.input} -> unresolved${result.error ? ` (${result.error})` : result.note ? ` (${result.note})` : ""}`));
937
- }
938
- //#endregion
939
- //#region src/commands/channels/status.ts
940
- function appendEnabledConfiguredLinkedBits(bits, account) {
941
- if (typeof account.enabled === "boolean") bits.push(account.enabled ? "enabled" : "disabled");
942
- if (typeof account.configured === "boolean") if (account.configured) {
943
- bits.push("configured");
944
- if (hasConfiguredUnavailableCredentialStatus(account)) bits.push("secret unavailable in this command path");
945
- } else bits.push("not configured");
946
- if (typeof account.linked === "boolean") bits.push(account.linked ? "linked" : "not linked");
947
- }
948
- function appendModeBit(bits, account) {
949
- if (typeof account.mode === "string" && account.mode.length > 0) bits.push(`mode:${account.mode}`);
950
- }
951
- function appendTokenSourceBits(bits, account) {
952
- const appendSourceBit = (label, sourceKey, statusKey) => {
953
- const source = account[sourceKey];
954
- if (typeof source !== "string" || !source || source === "none") return;
955
- const unavailable = account[statusKey] === "configured_unavailable" ? " (unavailable)" : "";
956
- bits.push(`${label}:${source}${unavailable}`);
957
- };
958
- appendSourceBit("token", "tokenSource", "tokenStatus");
959
- appendSourceBit("bot", "botTokenSource", "botTokenStatus");
960
- appendSourceBit("app", "appTokenSource", "appTokenStatus");
961
- appendSourceBit("signing", "signingSecretSource", "signingSecretStatus");
962
- }
963
- function appendBaseUrlBit(bits, account) {
964
- if (typeof account.baseUrl === "string" && account.baseUrl) bits.push(`url:${account.baseUrl}`);
965
- }
966
- function buildChannelAccountLine(provider, account, bits) {
967
- return `- ${formatChannelAccountLabel({
968
- channel: provider,
969
- accountId: typeof account.accountId === "string" ? account.accountId : "default",
970
- name: (typeof account.name === "string" ? account.name.trim() : "") || void 0
971
- })}: ${bits.join(", ")}`;
972
- }
973
- function formatGatewayChannelsStatusLines(payload) {
974
- const lines = [];
975
- lines.push(theme.success("Gateway reachable."));
976
- const accountLines = (provider, accounts) => accounts.map((account) => {
977
- const bits = [];
978
- appendEnabledConfiguredLinkedBits(bits, account);
979
- if (typeof account.running === "boolean") bits.push(account.running ? "running" : "stopped");
980
- if (typeof account.connected === "boolean") bits.push(account.connected ? "connected" : "disconnected");
981
- const inboundAt = typeof account.lastInboundAt === "number" && Number.isFinite(account.lastInboundAt) ? account.lastInboundAt : null;
982
- const outboundAt = typeof account.lastOutboundAt === "number" && Number.isFinite(account.lastOutboundAt) ? account.lastOutboundAt : null;
983
- if (inboundAt) bits.push(`in:${formatTimeAgo(Date.now() - inboundAt)}`);
984
- if (outboundAt) bits.push(`out:${formatTimeAgo(Date.now() - outboundAt)}`);
985
- appendModeBit(bits, account);
986
- const botUsername = (() => {
987
- const bot = account.bot;
988
- const probeBot = account.probe?.bot;
989
- const raw = bot?.username ?? probeBot?.username ?? "";
990
- if (typeof raw !== "string") return "";
991
- const trimmed = raw.trim();
992
- if (!trimmed) return "";
993
- return trimmed.startsWith("@") ? trimmed : `@${trimmed}`;
994
- })();
995
- if (botUsername) bits.push(`bot:${botUsername}`);
996
- if (typeof account.dmPolicy === "string" && account.dmPolicy.length > 0) bits.push(`dm:${account.dmPolicy}`);
997
- if (Array.isArray(account.allowFrom) && account.allowFrom.length > 0) bits.push(`allow:${account.allowFrom.slice(0, 2).join(",")}`);
998
- appendTokenSourceBits(bits, account);
999
- const messageContent = account.application?.intents?.messageContent;
1000
- if (typeof messageContent === "string" && messageContent.length > 0 && messageContent !== "enabled") bits.push(`intents:content=${messageContent}`);
1001
- if (account.allowUnmentionedGroups === true) bits.push("groups:unmentioned");
1002
- appendBaseUrlBit(bits, account);
1003
- const probe = account.probe;
1004
- if (probe && typeof probe.ok === "boolean") bits.push(probe.ok ? "works" : "probe failed");
1005
- const audit = account.audit;
1006
- if (audit && typeof audit.ok === "boolean") bits.push(audit.ok ? "audit ok" : "audit failed");
1007
- if (typeof account.lastError === "string" && account.lastError) bits.push(`error:${account.lastError}`);
1008
- return buildChannelAccountLine(provider, account, bits);
1009
- });
1010
- const plugins = listChannelPlugins();
1011
- const accountsByChannel = payload.channelAccounts;
1012
- const accountPayloads = {};
1013
- for (const plugin of plugins) {
1014
- const raw = accountsByChannel?.[plugin.id];
1015
- if (Array.isArray(raw)) accountPayloads[plugin.id] = raw;
1016
- }
1017
- for (const plugin of plugins) {
1018
- const accounts = accountPayloads[plugin.id];
1019
- if (accounts && accounts.length > 0) lines.push(...accountLines(plugin.id, accounts));
1020
- }
1021
- lines.push("");
1022
- const issues = collectChannelStatusIssues(payload);
1023
- if (issues.length > 0) {
1024
- lines.push(theme.warn("Warnings:"));
1025
- for (const issue of issues) lines.push(`- ${issue.channel} ${issue.accountId}: ${issue.message}${issue.fix ? ` (${issue.fix})` : ""}`);
1026
- lines.push(`- Run: ${formatCliCommand("moldclaw doctor")}`);
1027
- lines.push("");
1028
- }
1029
- lines.push(`Tip: ${formatDocsLink("/cli#status", "status --deep")} adds gateway health probes to status output (requires a reachable gateway).`);
1030
- return lines;
1031
- }
1032
- async function formatConfigChannelsStatusLines(cfg, meta, opts) {
1033
- const lines = [];
1034
- lines.push(theme.warn("Gateway not reachable; showing config-only status."));
1035
- if (meta.path) lines.push(`Config: ${meta.path}`);
1036
- if (meta.mode) lines.push(`Mode: ${meta.mode}`);
1037
- if (meta.path || meta.mode) lines.push("");
1038
- const accountLines = (provider, accounts) => accounts.map((account) => {
1039
- const bits = [];
1040
- appendEnabledConfiguredLinkedBits(bits, account);
1041
- appendModeBit(bits, account);
1042
- appendTokenSourceBits(bits, account);
1043
- appendBaseUrlBit(bits, account);
1044
- return buildChannelAccountLine(provider, account, bits);
1045
- });
1046
- const plugins = listChannelPlugins();
1047
- const sourceConfig = opts?.sourceConfig ?? cfg;
1048
- for (const plugin of plugins) {
1049
- const accountIds = plugin.config.listAccountIds(cfg);
1050
- if (!accountIds.length) continue;
1051
- const snapshots = [];
1052
- for (const accountId of accountIds) {
1053
- const sourceSnapshot = await buildReadOnlySourceChannelAccountSnapshot({
1054
- plugin,
1055
- cfg: sourceConfig,
1056
- accountId
1057
- });
1058
- const resolvedSnapshot = await buildChannelAccountSnapshot({
1059
- plugin,
1060
- cfg,
1061
- accountId
1062
- });
1063
- snapshots.push(sourceSnapshot && hasConfiguredUnavailableCredentialStatus(sourceSnapshot) && (!hasResolvedCredentialValue(resolvedSnapshot) || sourceSnapshot.configured === true && resolvedSnapshot.configured === false) ? sourceSnapshot : resolvedSnapshot);
1064
- }
1065
- if (snapshots.length > 0) lines.push(...accountLines(plugin.id, snapshots));
1066
- }
1067
- lines.push("");
1068
- lines.push(`Tip: ${formatDocsLink("/cli#status", "status --deep")} adds gateway health probes to status output (requires a reachable gateway).`);
1069
- return lines;
1070
- }
1071
- async function channelsStatusCommand(opts, runtime = defaultRuntime) {
1072
- const timeoutMs = Number(opts.timeout ?? 1e4);
1073
- const statusLabel = opts.probe ? "Checking channel status (probe)…" : "Checking channel status…";
1074
- if (opts.json !== true && !process.stderr.isTTY) runtime.log(statusLabel);
1075
- try {
1076
- const payload = await withProgress({
1077
- label: statusLabel,
1078
- indeterminate: true,
1079
- enabled: opts.json !== true
1080
- }, async () => await callGateway({
1081
- method: "channels.status",
1082
- params: {
1083
- probe: Boolean(opts.probe),
1084
- timeoutMs
1085
- },
1086
- timeoutMs
1087
- }));
1088
- if (opts.json) {
1089
- runtime.log(JSON.stringify(payload, null, 2));
1090
- return;
1091
- }
1092
- runtime.log(formatGatewayChannelsStatusLines(payload).join("\n"));
1093
- } catch (err) {
1094
- runtime.error(`Gateway not reachable: ${String(err)}`);
1095
- const cfg = await requireValidConfigSnapshot(runtime);
1096
- if (!cfg) return;
1097
- const { resolvedConfig, diagnostics } = await resolveCommandSecretRefsViaGateway({
1098
- config: cfg,
1099
- commandName: "channels status",
1100
- targetIds: getChannelsCommandSecretTargetIds(),
1101
- mode: "read_only_status"
1102
- });
1103
- for (const entry of diagnostics) runtime.log(`[secrets] ${entry}`);
1104
- const snapshot = await readConfigFileSnapshot();
1105
- const mode = cfg.gateway?.mode === "remote" ? "remote" : "local";
1106
- runtime.log((await formatConfigChannelsStatusLines(resolvedConfig, {
1107
- path: snapshot.path,
1108
- mode
1109
- }, { sourceConfig: cfg })).join("\n"));
1110
- }
1111
- }
1112
- //#endregion
1113
- export { channelsAddCommand, channelsCapabilitiesCommand, channelsListCommand, channelsLogsCommand, channelsRemoveCommand, channelsResolveCommand, channelsStatusCommand };