@spacebar_ai/moldclaw-core 2026.3.43 → 2026.3.45

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 (1131) hide show
  1. package/dist/accounts-5qY-dKca.d.ts +103 -0
  2. package/dist/accounts-CxV5zzzp.js +114 -0
  3. package/dist/acp-cli-2JoKJ0xt.js +2093 -0
  4. package/dist/actions.runtime-BJPd9nat.js +119 -0
  5. package/dist/actions.runtime-DVs4a2cB.js +133 -0
  6. package/dist/agent-scope-lZlwP1At.js +208 -0
  7. package/dist/agents-CmT3Jwvj.js +222 -0
  8. package/dist/agents-D7Pebhph.js +853 -0
  9. package/dist/agents.config-CX9CPNfP.js +17 -0
  10. package/dist/agents.config-DF9Zwn9n.js +121 -0
  11. package/dist/allow-list-B3f4EqAM.js +81 -0
  12. package/dist/allowlist-_YpK0-4h.js +142 -0
  13. package/dist/api-B44giplI.js +117 -0
  14. package/dist/audit-C3InXm7H.js +787 -0
  15. package/dist/audit-ChWS6RiF.js +54 -0
  16. package/dist/audit-channel.collect.runtime-DZzrS6v2.js +605 -0
  17. package/dist/audit-channel.runtime-B2XTOsSF.js +121 -0
  18. package/dist/audit-extra.async-C2G0mqmk.js +813 -0
  19. package/dist/audit-membership-runtime-DOv5-eHo.js +162 -0
  20. package/dist/audit.deep.runtime-DyL9O_sU.js +25 -0
  21. package/dist/audit.nondeep.runtime-C6jFgJfH.js +832 -0
  22. package/dist/audit.runtime-Cvh2wmWM.js +118 -0
  23. package/dist/auth-Ch3Rchm4.js +101 -0
  24. package/dist/auth-choice-Beq0dWPS.js +268 -0
  25. package/dist/auth-choice-DZYg94gS.js +122 -0
  26. package/dist/auth-choice-TVG_8lJj.js +507 -0
  27. package/dist/auth-choice-options-B_qxsjdj.js +123 -0
  28. package/dist/auth-choice-prompt-BayzDobT.js +115 -0
  29. package/dist/auth-choice-prompt-_UES859x.js +36 -0
  30. package/dist/auth-choice.apply-helpers-BhbNIV8X.js +66 -0
  31. package/dist/auth-choice.plugin-providers.runtime-CVC4Jzhp.js +119 -0
  32. package/dist/auth-profiles-C-Ul-Qkn.js +128139 -0
  33. package/dist/auth-profiles.runtime-Clyka_jV.js +116 -0
  34. package/dist/banner-CojBHPWr.js +342 -0
  35. package/dist/bluebubbles-BnLsj2Fy.d.ts +6 -0
  36. package/dist/bluebubbles-irYTGbfn.js +64 -0
  37. package/dist/bot-DdyrB2z9.d.ts +478 -0
  38. package/dist/brave-w4Fo8WZ3.js +24 -0
  39. package/dist/browser-cli-DWFs3P_i.js +1494 -0
  40. package/dist/build-info.json +3 -3
  41. package/dist/bundled/boot-md/handler.d.ts +1 -1
  42. package/dist/bundled/boot-md/handler.js +35 -35
  43. package/dist/bundled/bootstrap-extra-files/handler.d.ts +1 -1
  44. package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
  45. package/dist/bundled/command-logger/handler.d.ts +1 -1
  46. package/dist/bundled/session-memory/handler.d.ts +1 -1
  47. package/dist/bundled/session-memory/handler.js +36 -36
  48. package/dist/call-Do7wTSr7.js +39 -0
  49. package/dist/call-gdDAt07d.js +640 -0
  50. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  51. package/dist/channel-34O87pvK.js +949 -0
  52. package/dist/channel-B3Xo_4d8.js +1598 -0
  53. package/dist/channel-BEqDvL49.js +397 -0
  54. package/dist/channel-BLOk9WRE.js +214 -0
  55. package/dist/channel-BY5H2cdy.js +803 -0
  56. package/dist/channel-BeOtzXIH.js +4681 -0
  57. package/dist/channel-Bt8x_5Kj.js +306 -0
  58. package/dist/channel-C3E8XWLF.js +1321 -0
  59. package/dist/channel-C6ngVfGr.js +943 -0
  60. package/dist/channel-CVDBca2b.js +226 -0
  61. package/dist/channel-Cctli72q.js +562 -0
  62. package/dist/channel-DEAbU9Dj2.js +316 -0
  63. package/dist/channel-DIULkrBN.js +575 -0
  64. package/dist/channel-DXb4gsSd.js +619 -0
  65. package/dist/channel-Dap9LY-9.js +352 -0
  66. package/dist/channel-DcJdUnab.js +538 -0
  67. package/dist/channel-ZYCQj3hP.js +207 -0
  68. package/dist/channel-account-context-Baszl3_B.js +103 -0
  69. package/dist/channel-hlzhFHDl.js +497 -0
  70. package/dist/channel-options-PwBzYYtq.js +50 -0
  71. package/dist/channel-plugin-ids-TZIY4hFs.js +26 -0
  72. package/dist/channel-summary-CCEAV13o.js +111 -0
  73. package/dist/channel-tY2Hg5ac.js +542 -0
  74. package/dist/channel-vMWcWq1U.js +920 -0
  75. package/dist/channel.runtime-8qWgkCxX.js +404 -0
  76. package/dist/channel.runtime-C4jtgrbI.js +179 -0
  77. package/dist/channel.runtime-CJ4ug6Mp.js +127 -0
  78. package/dist/channel.runtime-ChKRJAZ8.js +4011 -0
  79. package/dist/channel.runtime-Cj54LYU-.js +418 -0
  80. package/dist/channel.runtime-KH06-bu1.js +870 -0
  81. package/dist/channel.runtime-_GYnBh2X.js +199 -0
  82. package/dist/channel.runtime-go7Pzt6N.js +241 -0
  83. package/dist/channel.runtime-iypIZ0EU.js +171 -0
  84. package/dist/channel.runtime-mukTWpon.js +182 -0
  85. package/dist/channel.runtime-oNtF1sc3.js +218 -0
  86. package/dist/channel.setup-BZfok6kX.js +11 -0
  87. package/dist/channel.setup-CbXfZ2dq.js +9 -0
  88. package/dist/channel.setup-CfyM55np.js +8 -0
  89. package/dist/channel.setup-CoG-gJ6n.js +9 -0
  90. package/dist/channel.setup-Cp4PH_rc.js +57 -0
  91. package/dist/channel.setup-V2w9Jk9j.js +6 -0
  92. package/dist/channel.setup-t7F5WZE7.js +8 -0
  93. package/dist/channels/plugins/actions/discord.d.ts +2 -2
  94. package/dist/channels/plugins/actions/discord.js +35 -35
  95. package/dist/channels/plugins/actions/signal.d.ts +1 -1
  96. package/dist/channels/plugins/actions/signal.js +35 -35
  97. package/dist/channels/plugins/actions/telegram.d.ts +2 -2
  98. package/dist/channels/plugins/actions/telegram.js +35 -35
  99. package/dist/channels/plugins/agent-tools/whatsapp-login.d.ts +3 -3
  100. package/dist/channels/plugins/agent-tools/whatsapp-login.js +35 -35
  101. package/dist/channels-H5ThmyG8.js +1118 -0
  102. package/dist/channels-cQ-6NFCQ.js +404 -0
  103. package/dist/channels-cli-TmchKLFS.js +291 -0
  104. package/dist/channels-status-issues-DXnkXEeJ.js +16 -0
  105. package/dist/clawbot-cli-Cpbxu8dD.js +118 -0
  106. package/dist/cleanup-utils-D0L17RsX.js +96 -0
  107. package/dist/cli/daemon-cli.js +1 -1
  108. package/dist/cli--2bGSKdX.js +154 -0
  109. package/dist/command-registry-BaVPDmwn.js +242 -0
  110. package/dist/command-registry-DhLyeSbO.js +14 -0
  111. package/dist/command-secret-gateway-C5D_-jb0.js +111 -0
  112. package/dist/compact.runtime-C9a0kRAg.js +116 -0
  113. package/dist/completion-cli-Bg95upyk.js +17 -0
  114. package/dist/completion-cli-CrPdlnCH.js +445 -0
  115. package/dist/config-BbvDRSYp.js +31 -0
  116. package/dist/config-CwBv71QC.js +44 -0
  117. package/dist/config-cli-jsZsYhAl.js +678 -0
  118. package/dist/config-guard-DTaXXqly.js +118 -0
  119. package/dist/config-validation-Q6U1sP84.js +262 -0
  120. package/dist/config-value-DT3-5958.js +132 -0
  121. package/dist/configure-BJfMiVej.js +1100 -0
  122. package/dist/configure-Cist3Iza.js +243 -0
  123. package/dist/control-ui-assets-C1YDYi82.js +232 -0
  124. package/dist/control-ui-shared-Dm5Dh0Lo.js +29 -0
  125. package/dist/core-BwKq3krw.js +150 -0
  126. package/dist/core-hjBwfDsW.d.ts +87 -0
  127. package/dist/cron-cli-Bktbk7iP.js +639 -0
  128. package/dist/daemon-cli-BXyH8DBL.js +339 -0
  129. package/dist/daemon-install-mxcGYsRJ.js +180 -0
  130. package/dist/deliver-BPYUKaSp.js +111 -0
  131. package/dist/deliver-runtime-CwnLQZTN.js +111 -0
  132. package/dist/device-id-cli-XvwZbIyC.js +52 -0
  133. package/dist/device-identity-IG5DngWM.js +365 -0
  134. package/dist/devices-cli-DIsxj4xp.js +342 -0
  135. package/dist/diagnostic-DTPopFvh.js +310 -0
  136. package/dist/directory-cli-D253m0er.js +311 -0
  137. package/dist/directory-config-helpers-DpFcAbmo.d.ts +38 -0
  138. package/dist/directory.static-BXv9MXqm.js +44 -0
  139. package/dist/discord-DwFf1qp7.js +114 -0
  140. package/dist/discovery-DzRM1wzK.js +48 -0
  141. package/dist/dm-policy-shared-DKoGdUpY.d.ts +95 -0
  142. package/dist/dns-cli-BJiz6CLK.js +217 -0
  143. package/dist/docs-cli-Dq2Yi5qO.js +174 -0
  144. package/dist/doctor-completion-BPl6HiiZ.js +90 -0
  145. package/dist/doctor-config-flow-BHR1Ayyh.js +2437 -0
  146. package/dist/doctor-config-flow-PXVtrfkE.js +112 -0
  147. package/dist/enable-Cyagpq3b.js +24 -0
  148. package/dist/entry.js +4 -4
  149. package/dist/exec-approvals-cli-kLAev6bP.js +421 -0
  150. package/dist/extensions/acpx/index.d.ts +1 -1
  151. package/dist/extensions/amazon-bedrock/index.d.ts +1 -1
  152. package/dist/extensions/amazon-bedrock/index.js +4 -4
  153. package/dist/extensions/anthropic/index.d.ts +1 -1
  154. package/dist/extensions/anthropic/index.js +35 -35
  155. package/dist/extensions/bluebubbles/index.d.ts +1 -1
  156. package/dist/extensions/bluebubbles/index.js +39 -39
  157. package/dist/extensions/bluebubbles/setup-entry.d.ts +2 -2
  158. package/dist/extensions/bluebubbles/setup-entry.js +39 -39
  159. package/dist/extensions/brave/index.d.ts +1 -1
  160. package/dist/extensions/brave/index.js +5 -5
  161. package/dist/extensions/byteplus/index.d.ts +1 -1
  162. package/dist/extensions/byteplus/index.js +35 -35
  163. package/dist/extensions/cloudflare-ai-gateway/index.d.ts +1 -1
  164. package/dist/extensions/cloudflare-ai-gateway/index.js +36 -36
  165. package/dist/extensions/copilot-proxy/index.d.ts +1 -1
  166. package/dist/extensions/copilot-proxy/index.js +4 -4
  167. package/dist/extensions/device-pair/index.d.ts +1 -1
  168. package/dist/extensions/device-pair/index.js +4 -4
  169. package/dist/extensions/diagnostics-otel/index.d.ts +1 -1
  170. package/dist/extensions/diagnostics-otel/index.js +4 -4
  171. package/dist/extensions/diffs/index.d.ts +1 -1
  172. package/dist/extensions/discord/index.d.ts +1 -1
  173. package/dist/extensions/discord/index.js +40 -40
  174. package/dist/extensions/discord/setup-entry.d.ts +1 -1
  175. package/dist/extensions/discord/setup-entry.js +38 -38
  176. package/dist/extensions/elevenlabs/index.d.ts +1 -1
  177. package/dist/extensions/elevenlabs/index.js +35 -35
  178. package/dist/extensions/feishu/index.d.ts +2 -2
  179. package/dist/extensions/feishu/index.js +40 -40
  180. package/dist/extensions/feishu/setup-entry.d.ts +2 -2
  181. package/dist/extensions/feishu/setup-entry.js +37 -37
  182. package/dist/extensions/firecrawl/index.d.ts +1 -1
  183. package/dist/extensions/firecrawl/index.js +35 -35
  184. package/dist/extensions/github-copilot/index.d.ts +1 -1
  185. package/dist/extensions/github-copilot/index.js +35 -35
  186. package/dist/extensions/google/index.d.ts +1 -1
  187. package/dist/extensions/google/index.js +35 -35
  188. package/dist/extensions/googlechat/index.d.ts +1 -1
  189. package/dist/extensions/googlechat/index.js +38 -38
  190. package/dist/extensions/googlechat/setup-entry.d.ts +1 -1
  191. package/dist/extensions/googlechat/setup-entry.js +38 -38
  192. package/dist/extensions/huggingface/index.d.ts +1 -1
  193. package/dist/extensions/huggingface/index.js +35 -35
  194. package/dist/extensions/imessage/index.d.ts +1 -1
  195. package/dist/extensions/imessage/index.js +39 -39
  196. package/dist/extensions/imessage/setup-entry.d.ts +1 -1
  197. package/dist/extensions/imessage/setup-entry.js +39 -39
  198. package/dist/extensions/irc/index.d.ts +1 -1
  199. package/dist/extensions/irc/index.js +38 -38
  200. package/dist/extensions/irc/setup-entry.d.ts +2 -2
  201. package/dist/extensions/irc/setup-entry.js +38 -38
  202. package/dist/extensions/kakao-talkchannel/index.d.ts +1 -1
  203. package/dist/extensions/kakao-talkchannel/index.js +4 -4
  204. package/dist/extensions/kilocode/index.d.ts +1 -1
  205. package/dist/extensions/kilocode/index.js +35 -35
  206. package/dist/extensions/kimi-coding/index.d.ts +1 -1
  207. package/dist/extensions/kimi-coding/index.js +35 -35
  208. package/dist/extensions/line/index.d.ts +1 -1
  209. package/dist/extensions/line/index.js +37 -37
  210. package/dist/extensions/line/setup-entry.d.ts +1 -1
  211. package/dist/extensions/line/setup-entry.js +37 -37
  212. package/dist/extensions/llm-task/index.d.ts +1 -1
  213. package/dist/extensions/llm-task/index.js +35 -35
  214. package/dist/extensions/lobster/index.d.ts +1 -1
  215. package/dist/extensions/lobster/index.js +4 -4
  216. package/dist/extensions/matrix/index.d.ts +1 -1
  217. package/dist/extensions/matrix/index.js +40 -40
  218. package/dist/extensions/matrix/setup-entry.d.ts +2 -2
  219. package/dist/extensions/matrix/setup-entry.js +40 -40
  220. package/dist/extensions/mattermost/index.d.ts +1 -1
  221. package/dist/extensions/mattermost/index.js +37 -37
  222. package/dist/extensions/mattermost/setup-entry.d.ts +2 -2
  223. package/dist/extensions/mattermost/setup-entry.js +37 -37
  224. package/dist/extensions/memory-core/index.d.ts +1 -1
  225. package/dist/extensions/memory-core/index.js +4 -4
  226. package/dist/extensions/memory-lancedb/index.d.ts +1 -1
  227. package/dist/extensions/memory-lancedb/index.js +4 -4
  228. package/dist/extensions/microsoft/index.d.ts +1 -1
  229. package/dist/extensions/microsoft/index.js +35 -35
  230. package/dist/extensions/minimax/index.d.ts +1 -1
  231. package/dist/extensions/minimax/index.js +35 -35
  232. package/dist/extensions/mistral/index.d.ts +1 -1
  233. package/dist/extensions/mistral/index.js +35 -35
  234. package/dist/extensions/modelstudio/index.d.ts +1 -1
  235. package/dist/extensions/modelstudio/index.js +35 -35
  236. package/dist/extensions/moonshot/index.d.ts +1 -1
  237. package/dist/extensions/moonshot/index.js +35 -35
  238. package/dist/extensions/msteams/index.d.ts +1 -1
  239. package/dist/extensions/msteams/index.js +40 -40
  240. package/dist/extensions/msteams/setup-entry.d.ts +1 -1
  241. package/dist/extensions/msteams/setup-entry.js +40 -40
  242. package/dist/extensions/nextcloud-talk/index.d.ts +1 -1
  243. package/dist/extensions/nextcloud-talk/index.js +37 -37
  244. package/dist/extensions/nextcloud-talk/setup-entry.d.ts +2 -2
  245. package/dist/extensions/nextcloud-talk/setup-entry.js +37 -37
  246. package/dist/extensions/nostr/index.d.ts +1 -1
  247. package/dist/extensions/nostr/index.js +37 -37
  248. package/dist/extensions/nostr/setup-entry.d.ts +1 -1
  249. package/dist/extensions/nostr/setup-entry.js +37 -37
  250. package/dist/extensions/nvidia/index.d.ts +1 -1
  251. package/dist/extensions/nvidia/index.js +4 -4
  252. package/dist/extensions/ollama/index.d.ts +1 -1
  253. package/dist/extensions/ollama/index.js +7 -7
  254. package/dist/extensions/open-prose/index.d.ts +1 -1
  255. package/dist/extensions/open-prose/index.js +4 -4
  256. package/dist/extensions/openai/index.d.ts +1 -1
  257. package/dist/extensions/openai/index.js +35 -35
  258. package/dist/extensions/opencode/index.d.ts +1 -1
  259. package/dist/extensions/opencode/index.js +35 -35
  260. package/dist/extensions/opencode-go/index.d.ts +1 -1
  261. package/dist/extensions/opencode-go/index.js +35 -35
  262. package/dist/extensions/openrouter/index.d.ts +1 -1
  263. package/dist/extensions/openrouter/index.js +35 -35
  264. package/dist/extensions/openshell/index.d.ts +1 -1
  265. package/dist/extensions/openshell/index.js +35 -35
  266. package/dist/extensions/perplexity/index.d.ts +1 -1
  267. package/dist/extensions/perplexity/index.js +5 -5
  268. package/dist/extensions/phone-control/index.d.ts +1 -1
  269. package/dist/extensions/phone-control/index.js +4 -4
  270. package/dist/extensions/qianfan/index.d.ts +1 -1
  271. package/dist/extensions/qianfan/index.js +35 -35
  272. package/dist/extensions/qwen-portal-auth/index.d.ts +1 -1
  273. package/dist/extensions/qwen-portal-auth/index.js +35 -35
  274. package/dist/extensions/sglang/index.d.ts +1 -1
  275. package/dist/extensions/sglang/index.js +35 -35
  276. package/dist/extensions/signal/index.d.ts +1 -1
  277. package/dist/extensions/signal/index.js +38 -38
  278. package/dist/extensions/signal/setup-entry.d.ts +1 -1
  279. package/dist/extensions/signal/setup-entry.js +38 -38
  280. package/dist/extensions/slack/index.d.ts +1 -1
  281. package/dist/extensions/slack/index.js +39 -39
  282. package/dist/extensions/slack/setup-entry.d.ts +1 -1
  283. package/dist/extensions/slack/setup-entry.js +38 -38
  284. package/dist/extensions/synology-chat/index.d.ts +1 -1
  285. package/dist/extensions/synology-chat/index.js +37 -37
  286. package/dist/extensions/synology-chat/setup-entry.d.ts +1 -1
  287. package/dist/extensions/synology-chat/setup-entry.js +37 -37
  288. package/dist/extensions/synthetic/index.d.ts +1 -1
  289. package/dist/extensions/synthetic/index.js +35 -35
  290. package/dist/extensions/talk-voice/index.d.ts +1 -1
  291. package/dist/extensions/talk-voice/index.js +35 -35
  292. package/dist/extensions/telegram/index.d.ts +1 -1
  293. package/dist/extensions/telegram/index.js +38 -38
  294. package/dist/extensions/telegram/setup-entry.d.ts +1 -1
  295. package/dist/extensions/telegram/setup-entry.js +37 -37
  296. package/dist/extensions/thread-ownership/index.d.ts +1 -1
  297. package/dist/extensions/thread-ownership/index.js +4 -4
  298. package/dist/extensions/tlon/index.d.ts +1 -1
  299. package/dist/extensions/tlon/index.js +37 -37
  300. package/dist/extensions/tlon/setup-entry.d.ts +1 -1
  301. package/dist/extensions/tlon/setup-entry.js +37 -37
  302. package/dist/extensions/together/index.d.ts +1 -1
  303. package/dist/extensions/together/index.js +35 -35
  304. package/dist/extensions/twitch/index.d.ts +2 -2
  305. package/dist/extensions/twitch/index.js +37 -37
  306. package/dist/extensions/venice/index.d.ts +1 -1
  307. package/dist/extensions/venice/index.js +35 -35
  308. package/dist/extensions/vercel-ai-gateway/index.d.ts +1 -1
  309. package/dist/extensions/vercel-ai-gateway/index.js +36 -36
  310. package/dist/extensions/vllm/index.d.ts +1 -1
  311. package/dist/extensions/vllm/index.js +35 -35
  312. package/dist/extensions/voice-call/index.d.ts +1 -1
  313. package/dist/extensions/voice-call/index.js +35 -35
  314. package/dist/extensions/volcengine/index.d.ts +1 -1
  315. package/dist/extensions/volcengine/index.js +35 -35
  316. package/dist/extensions/whatsapp/index.d.ts +1 -1
  317. package/dist/extensions/whatsapp/index.js +38 -38
  318. package/dist/extensions/whatsapp/setup-entry.d.ts +1 -1
  319. package/dist/extensions/whatsapp/setup-entry.js +38 -38
  320. package/dist/extensions/xai/index.d.ts +1 -1
  321. package/dist/extensions/xai/index.js +35 -35
  322. package/dist/extensions/xiaomi/index.d.ts +1 -1
  323. package/dist/extensions/xiaomi/index.js +35 -35
  324. package/dist/extensions/zai/index.d.ts +1 -1
  325. package/dist/extensions/zai/index.js +35 -35
  326. package/dist/extensions/zalo/index.d.ts +1 -1
  327. package/dist/extensions/zalo/index.js +39 -39
  328. package/dist/extensions/zalo/setup-entry.d.ts +1 -1
  329. package/dist/extensions/zalo/setup-entry.js +39 -39
  330. package/dist/extensions/zalouser/index.d.ts +1 -1
  331. package/dist/extensions/zalouser/index.js +40 -40
  332. package/dist/extensions/zalouser/setup-entry.d.ts +1 -1
  333. package/dist/extensions/zalouser/setup-entry.js +40 -40
  334. package/dist/feishu-fIcnHDTd.d.ts +36 -0
  335. package/dist/gateway-cli-DofujQf3.js +26437 -0
  336. package/dist/gateway-install-token-vvtOvufH.js +163 -0
  337. package/dist/gateway-rpc-C0Vk51W7.js +26 -0
  338. package/dist/gateway-runtime-CBm3CCoA.js +69 -0
  339. package/dist/git-commit-BTWXFY41.js +177 -0
  340. package/dist/git-commit-D6GTN5Yt.js +2 -0
  341. package/dist/googlechat-BvwsCVKl.d.ts +12 -0
  342. package/dist/googlechat-DzoFLiDG.js +307 -0
  343. package/dist/group-access-DpiQnd-G.d.ts +61 -0
  344. package/dist/health-CqUU_ecm.js +570 -0
  345. package/dist/health-Dzn8BT5I.js +113 -0
  346. package/dist/heartbeat-summary-Dct2lqJj.js +57 -0
  347. package/dist/help-CtwSApfq.js +81 -0
  348. package/dist/hooks-9gokOxZ5.d.ts +6 -0
  349. package/dist/hooks-cli-DtBvd1lb.js +1000 -0
  350. package/dist/hooks-status-Bm_pGORf.js +78 -0
  351. package/dist/http-registry-D-S6a1Na.d.ts +20 -0
  352. package/dist/identity-file-Diub2a0t.js +60 -0
  353. package/dist/image-generation-CbIVzmAR.d.ts +9 -0
  354. package/dist/imessage-C7Z59nbV.js +31 -0
  355. package/dist/imessage-scXvYYHX.js +115 -0
  356. package/dist/inbound-reply-dispatch-gzPJFtkc.js +71 -0
  357. package/dist/inbound-reply-dispatch-n7U3qg15.d.ts +72 -0
  358. package/dist/index.js +2 -2
  359. package/dist/install-target-B4n74f_B.js +574 -0
  360. package/dist/installs-e1WEcS2x.js +532 -0
  361. package/dist/io-BaBxjB1v.js +9739 -0
  362. package/dist/io-CgHb1Jld.js +29 -0
  363. package/dist/irc-DxJ7uOKl.js +672 -0
  364. package/dist/library-DjjiKiBC.js +112 -0
  365. package/dist/lifecycle-core-Dn8PK6nk.js +382 -0
  366. package/dist/line/accounts.d.ts +2 -2
  367. package/dist/line/send.d.ts +1 -1
  368. package/dist/line/send.js +7 -7
  369. package/dist/line/template-messages.d.ts +1 -1
  370. package/dist/line-B5QFpgN_.d.ts +75 -0
  371. package/dist/line-BBiBiGgL.js +530 -0
  372. package/dist/llm-slug-generator-BQ09Fz6D.js +67 -0
  373. package/dist/llm-slug-generator.d.ts +1 -1
  374. package/dist/llm-slug-generator.js +36 -36
  375. package/dist/logging-CdisccbY.js +13 -0
  376. package/dist/logging-LKQSgX1d.js +30 -0
  377. package/dist/login-qr-B2ElPfmb.js +112 -0
  378. package/dist/login-qr-Di3uPIK1.js +233 -0
  379. package/dist/logs-cli-CNzOvZ2d.js +256 -0
  380. package/dist/manager-runtime-2RwW64dE.js +111 -0
  381. package/dist/manager.runtime-BacHmSFL.js +715 -0
  382. package/dist/manifest-registry-CS_p1OBQ.js +1329 -0
  383. package/dist/matrix-43_RGLZN.d.ts +68 -0
  384. package/dist/matrix-6-xpfQHf.js +1269 -0
  385. package/dist/matrix-DKYdZvGK.js +1495 -0
  386. package/dist/mcp-cli-Ci2jvv3s.js +87 -0
  387. package/dist/media-understanding.runtime-0668UZMb.js +116 -0
  388. package/dist/memory-cli-BGfRJOPh.js +111 -0
  389. package/dist/memory-search-BHhETk6u.js +17 -0
  390. package/dist/memory-search-tTD5o_rU.js +204 -0
  391. package/dist/method-scopes-B2ZKSsxQ.js +2452 -0
  392. package/dist/model-auth-markers-LqZ4qhrZ.d.ts +20 -0
  393. package/dist/model-picker-D9Gmg9vM.js +390 -0
  394. package/dist/model-picker-VOam6Dfa.js +112 -0
  395. package/dist/model-picker.runtime-B8h4yaGk.js +125 -0
  396. package/dist/model-selection-bBBxfXdb.js +653 -0
  397. package/dist/model-suppression.runtime-IpdzuuaW.js +116 -0
  398. package/dist/models-CEr8OkSA.js +118 -0
  399. package/dist/models-FgjlnyvT.js +2514 -0
  400. package/dist/models-cli-CdXULEZe.js +309 -0
  401. package/dist/models-config-UQxq76ac.js +111 -0
  402. package/dist/models-config.providers.discovery-puxTsH39.d.ts +18 -0
  403. package/dist/moldclaw-root-Cb6HRlUO.js +92 -0
  404. package/dist/monitor-BGAB5pZp.js +772 -0
  405. package/dist/monitor-C_1qA4q5.js +6823 -0
  406. package/dist/monitor-D8WcCUuA.js +782 -0
  407. package/dist/monitor-DesGoihT.js +113 -0
  408. package/dist/monitor-DhrUY3U6.js +3468 -0
  409. package/dist/monitor-DsDCIG87.js +3076 -0
  410. package/dist/monitor-dBB-luY7.js +115 -0
  411. package/dist/monitor-shared-CkicpwVc.js +444 -0
  412. package/dist/msteams-qmY7xMCK.js +852 -0
  413. package/dist/node-cli-B_2nTm80.js +2503 -0
  414. package/dist/node-resolve-BYC2FbO2.js +835 -0
  415. package/dist/nodes-cli-CBX71Wd_.js +1380 -0
  416. package/dist/nostr-BFKRoOlz.d.ts +7 -0
  417. package/dist/nostr-OB78XVlq.js +8744 -0
  418. package/dist/npm-resolution-DZJB3Hgh.js +60 -0
  419. package/dist/oauth-env-CLG8KOrz.js +10 -0
  420. package/dist/onboard-BON0C360.js +48 -0
  421. package/dist/onboard-DsKI17iq.js +25 -0
  422. package/dist/onboard-DyBwXVGT.js +589 -0
  423. package/dist/onboard-channels-BaVA02kK.js +1241 -0
  424. package/dist/onboard-channels-JJVMXpKl.js +205 -0
  425. package/dist/onboard-custom-D6YDrk9n.js +571 -0
  426. package/dist/onboard-custom-DqsNalL1.js +114 -0
  427. package/dist/onboard-helpers-DiSRTpZC.js +335 -0
  428. package/dist/onboard-helpers-DqZsjdb8.js +113 -0
  429. package/dist/onboard-hooks-pzEPZAvl.js +72 -0
  430. package/dist/onboard-remote-DFMLELsg.js +181 -0
  431. package/dist/onboard-remote-DmMYxY80.js +117 -0
  432. package/dist/onboard-search-B7FsNd7m.js +302 -0
  433. package/dist/onboard-skills-BJRdI-K3.js +133 -0
  434. package/dist/onboard-skills-Cg1YQAZa.js +117 -0
  435. package/dist/outbound-media-BHD4aJEX.d.ts +11 -0
  436. package/dist/outbound-media-CrraEXXv.js +11 -0
  437. package/dist/pairing-access-CzHpaM0R.d.ts +21 -0
  438. package/dist/pairing-cli-DSQTYgc0.js +217 -0
  439. package/dist/perplexity-CXwMDD3u.js +24 -0
  440. package/dist/persistent-dedupe-B9vrAf8t.d.ts +26 -0
  441. package/dist/pi-model-discovery-runtime-vSSbBDFG.js +111 -0
  442. package/dist/pi-tools.before-tool-call.runtime-C5yLUogH.js +381 -0
  443. package/dist/plugin-install-B1RfdrdV.js +117 -0
  444. package/dist/plugin-install-C9aaL42Y.js +184 -0
  445. package/dist/plugin-install-plan-BlfDt117.js +49 -0
  446. package/dist/plugin-registry-D2P9SYJ9.js +113 -0
  447. package/dist/plugin-registry-QtjVXmj3.js +49 -0
  448. package/dist/plugin-sdk/account-resolution.js +35 -35
  449. package/dist/plugin-sdk/acp-runtime.js +35 -35
  450. package/dist/plugin-sdk/agent-runtime.js +35 -35
  451. package/dist/plugin-sdk/bluebubbles.js +37 -37
  452. package/dist/plugin-sdk/channel-config-helpers.js +35 -35
  453. package/dist/plugin-sdk/channel-policy.js +35 -35
  454. package/dist/plugin-sdk/channel-runtime.js +35 -35
  455. package/dist/plugin-sdk/compat.js +36 -36
  456. package/dist/plugin-sdk/config-runtime.js +35 -35
  457. package/dist/plugin-sdk/conversation-runtime.js +35 -35
  458. package/dist/plugin-sdk/copilot-proxy.js +4 -4
  459. package/dist/plugin-sdk/core.js +4 -4
  460. package/dist/plugin-sdk/device-pair.js +4 -4
  461. package/dist/plugin-sdk/discord.js +35 -35
  462. package/dist/plugin-sdk/feishu.js +35 -35
  463. package/dist/plugin-sdk/gateway-runtime.js +10 -10
  464. package/dist/plugin-sdk/googlechat.js +37 -37
  465. package/dist/plugin-sdk/image-generation-runtime.js +35 -35
  466. package/dist/plugin-sdk/image-generation.js +35 -35
  467. package/dist/plugin-sdk/imessage.js +36 -36
  468. package/dist/plugin-sdk/index.js +35 -35
  469. package/dist/plugin-sdk/infra-runtime.js +35 -35
  470. package/dist/plugin-sdk/irc.js +37 -37
  471. package/dist/plugin-sdk/line.js +36 -36
  472. package/dist/plugin-sdk/llm-task.js +35 -35
  473. package/dist/plugin-sdk/lobster.js +4 -4
  474. package/dist/plugin-sdk/matrix.js +37 -37
  475. package/dist/plugin-sdk/mattermost.js +36 -36
  476. package/dist/plugin-sdk/media-runtime.js +35 -35
  477. package/dist/plugin-sdk/media-understanding-runtime.js +35 -35
  478. package/dist/plugin-sdk/media-understanding.js +35 -35
  479. package/dist/plugin-sdk/memory-lancedb.js +4 -4
  480. package/dist/plugin-sdk/minimax-portal-auth.js +4 -4
  481. package/dist/plugin-sdk/msteams.js +38 -38
  482. package/dist/plugin-sdk/nextcloud-talk.js +36 -36
  483. package/dist/plugin-sdk/nostr.js +36 -36
  484. package/dist/plugin-sdk/ollama-setup.js +9 -9
  485. package/dist/plugin-sdk/open-prose.js +4 -4
  486. package/dist/plugin-sdk/phone-control.js +4 -4
  487. package/dist/plugin-sdk/plugin-runtime.js +35 -35
  488. package/dist/plugin-sdk/provider-auth.js +35 -35
  489. package/dist/plugin-sdk/provider-models.js +5 -5
  490. package/dist/plugin-sdk/provider-onboard.js +4 -4
  491. package/dist/plugin-sdk/provider-setup.js +39 -39
  492. package/dist/plugin-sdk/provider-stream.js +4 -4
  493. package/dist/plugin-sdk/provider-usage.js +4 -4
  494. package/dist/plugin-sdk/qwen-portal-auth.js +35 -35
  495. package/dist/plugin-sdk/reply-history.js +35 -35
  496. package/dist/plugin-sdk/reply-runtime.js +35 -35
  497. package/dist/plugin-sdk/routing.js +3 -3
  498. package/dist/plugin-sdk/sandbox.js +35 -35
  499. package/dist/plugin-sdk/security-runtime.js +35 -35
  500. package/dist/plugin-sdk/self-hosted-provider-setup.js +37 -37
  501. package/dist/plugin-sdk/setup.js +35 -35
  502. package/dist/plugin-sdk/signal.js +35 -35
  503. package/dist/plugin-sdk/slack.js +35 -35
  504. package/dist/plugin-sdk/speech-runtime.js +35 -35
  505. package/dist/plugin-sdk/speech.js +35 -35
  506. package/dist/plugin-sdk/src/secrets/secure-file-store.d.ts +26 -0
  507. package/dist/plugin-sdk/src/subscription/provider.d.ts +5 -3
  508. package/dist/plugin-sdk/synology-chat.js +36 -36
  509. package/dist/plugin-sdk/talk-voice.js +4 -4
  510. package/dist/plugin-sdk/telegram.js +35 -35
  511. package/dist/plugin-sdk/text-runtime.js +7 -7
  512. package/dist/plugin-sdk/thread-ownership.js +4 -4
  513. package/dist/plugin-sdk/tlon.js +36 -36
  514. package/dist/plugin-sdk/twitch.js +35 -35
  515. package/dist/plugin-sdk/voice-call.js +35 -35
  516. package/dist/plugin-sdk/whatsapp.js +35 -35
  517. package/dist/plugin-sdk/zalo.js +38 -38
  518. package/dist/plugin-sdk/zalouser.js +38 -38
  519. package/dist/plugins/runtime/index.d.ts +1 -1
  520. package/dist/plugins/runtime/index.js +35 -35
  521. package/dist/plugins-CAULK-lt.js +111 -0
  522. package/dist/plugins-cli-BGAgYy3Z.js +917 -0
  523. package/dist/policy-WKZJ8cPK.js +143 -0
  524. package/dist/preflight-audio.runtime-Bc6Hv-u4.js +116 -0
  525. package/dist/probe-B7a_VBCB.js +47 -0
  526. package/dist/probe-BLioBOhT.js +6329 -0
  527. package/dist/probe-BkM5pykD.js +21 -0
  528. package/dist/probe-DOEaWez2.js +1793 -0
  529. package/dist/probe-DpcJ0WeP.js +129 -0
  530. package/dist/probe-auth-BcNjX8hy.js +40 -0
  531. package/dist/probe-auth-DhuAb8ls.js +48 -0
  532. package/dist/program-zG0CuBsn.js +253 -0
  533. package/dist/prompt-select-styled-B-D6NQFO.js +2673 -0
  534. package/dist/provider-api-key-auth.runtime-DgGM_pHf.js +121 -0
  535. package/dist/provider-auth-choice-BOQA0idb.js +126 -0
  536. package/dist/provider-auth-choice-helpers-hzDkh3f1.js +48 -0
  537. package/dist/provider-auth-choice-preference-BPcuoO9b.js +189 -0
  538. package/dist/provider-auth-choice.runtime-B4E0A4J8.js +123 -0
  539. package/dist/provider-auth-choices-0KaDNPBQ.js +57 -0
  540. package/dist/provider-auth-guidance-BxxMxMEt.js +34 -0
  541. package/dist/provider-auth-result-Bto1bYtS.d.ts +18 -0
  542. package/dist/provider-models-DxOmeToO.d.ts +867 -0
  543. package/dist/provider-models-xnyxy6mO.js +2113 -0
  544. package/dist/provider-ollama-setup-DBYK__ov.d.ts +32 -0
  545. package/dist/provider-ollama-setup-QzgCxj44.js +314 -0
  546. package/dist/provider-onboard-B9ionepI.js +139 -0
  547. package/dist/provider-onboard-CURxJ_UX.d.ts +40 -0
  548. package/dist/provider-runtime.runtime-DFAIaPZT.js +111 -0
  549. package/dist/provider-self-hosted-setup-CclMg3QB.js +182 -0
  550. package/dist/provider-self-hosted-setup-qeY8BYSy.d.ts +61 -0
  551. package/dist/provider-stream-Chz_EFw3.js +512 -0
  552. package/dist/provider-usage-Cn_OrdMP.js +111 -0
  553. package/dist/provider-usage-kxemdMp2.js +633 -0
  554. package/dist/provider-wizard-BMc1Dzks.js +152 -0
  555. package/dist/push-apns-CuIs_G0k.js +1038 -0
  556. package/dist/pw-ai-DUe4BbH2.js +1867 -0
  557. package/dist/qmd-manager-CAAFp7qK.js +1570 -0
  558. package/dist/qr-cli-9H9go9JE.js +113 -0
  559. package/dist/qr-cli-Bxxttvx3.js +369 -0
  560. package/dist/reactions-Dx2ypGlm.js +281 -0
  561. package/dist/read-only-account-inspect.discord.runtime-D_RVd1-r.js +116 -0
  562. package/dist/read-only-account-inspect.slack.runtime-Ckl92Rhy.js +116 -0
  563. package/dist/read-only-account-inspect.telegram.runtime-D97ssjQk.js +116 -0
  564. package/dist/redact-snapshot-ojhTflxp.js +2663 -0
  565. package/dist/register.agent-DlBmy_RL.js +439 -0
  566. package/dist/register.backup-8nOYtJqg.js +625 -0
  567. package/dist/register.configure-BV_GUQ5w.js +252 -0
  568. package/dist/register.maintenance-BafAHBum.js +574 -0
  569. package/dist/register.message-CHhfcEq2.js +709 -0
  570. package/dist/register.onboard-DjPNnlnr.js +192 -0
  571. package/dist/register.setup-BMGXI9PG.js +212 -0
  572. package/dist/register.status-health-sessions-BJMsh2AL.js +498 -0
  573. package/dist/register.subclis-B7nrik3-.js +315 -0
  574. package/dist/register.subclis-BCoAVyGn.js +13 -0
  575. package/dist/replies-BU4AvOyD.js +110 -0
  576. package/dist/resolve-channels-CDfj5NGq.js +226 -0
  577. package/dist/resolve-channels-Cz120Lvf.js +262 -0
  578. package/dist/resolve-route-DdX-HBVt.js +538 -0
  579. package/dist/resolve-users-Bc6nRqpb.js +143 -0
  580. package/dist/root-help-QAkoA7GD.js +32 -0
  581. package/dist/routes-CcJNnwTF.js +7097 -0
  582. package/dist/rpc-DDUAlBbH.js +67 -0
  583. package/dist/run-main-Cf8vXm6i.js +424 -0
  584. package/dist/runtime-Bitmi8Er.d.ts +26 -0
  585. package/dist/runtime-discord-ops.runtime-DWBnG-Hf.js +9078 -0
  586. package/dist/runtime-slack-ops.runtime-oYfbYvX4.js +4556 -0
  587. package/dist/runtime-telegram-ops.runtime-EPGDYN1f.js +133 -0
  588. package/dist/runtime-whatsapp-login.runtime-BGJoKM2h.js +114 -0
  589. package/dist/runtime-whatsapp-outbound.runtime-D3Sag6Bv.js +117 -0
  590. package/dist/sandbox-cli-waaYyhsC.js +535 -0
  591. package/dist/search-manager-BjDsOXzB.js +16 -0
  592. package/dist/search-manager-D-G9UaXe.js +386 -0
  593. package/dist/secrets-cli-BmeEhlzt.js +2070 -0
  594. package/dist/security-cli-CSsLnFuN.js +575 -0
  595. package/dist/send-6o7piqfv.js +100 -0
  596. package/dist/send-99FyFLgk.js +629 -0
  597. package/dist/send-B1pX9_Oc.js +283 -0
  598. package/dist/send-Dg5-AjXW.js +1025 -0
  599. package/dist/send-LdV9TRoN.js +631 -0
  600. package/dist/server-node-events-BAUUKNFW.js +506 -0
  601. package/dist/server-zI_K-D05.js +107 -0
  602. package/dist/sessions-DJGywtY2.js +112 -0
  603. package/dist/sessions-WR0GKdGl.js +218 -0
  604. package/dist/setup-2LvBON2J.js +387 -0
  605. package/dist/setup-CFIMq-Pz.d.ts +37 -0
  606. package/dist/setup-binary-CcAv8NXz.js +406 -0
  607. package/dist/setup-browser-C4eRV3h6.js +70 -0
  608. package/dist/setup-core-ByqF8Nvc.js +166 -0
  609. package/dist/setup-core-COkq8Zop.js +205 -0
  610. package/dist/setup-core-C_o77DVV.js +143 -0
  611. package/dist/setup-core-tAdHbqi9.js +47 -0
  612. package/dist/setup-surface-DMHtZByF.js +490 -0
  613. package/dist/setup-wizard-helpers-r0J6l8ST.d.ts +203 -0
  614. package/dist/setup.finalize-pTkXn8pV.js +522 -0
  615. package/dist/setup.gateway-config-D1wiUQe6.js +343 -0
  616. package/dist/shared-BaM_tMxk.js +102 -0
  617. package/dist/shared-BgUgXsM9.js +75 -0
  618. package/dist/shared-CezRuVfl.js +96 -0
  619. package/dist/shared-DQgf3R0B.js +298 -0
  620. package/dist/shared-RA6kxQfu.js +182 -0
  621. package/dist/signal-xxP4dGx7.js +114 -0
  622. package/dist/skills-Bio8GwTE.js +20 -0
  623. package/dist/skills-DE_MXFSN.js +853 -0
  624. package/dist/skills-cli-BGuW-tKw.js +292 -0
  625. package/dist/skills-install-BIlG41ei.js +763 -0
  626. package/dist/skills-status-B08PtBc_.js +21 -0
  627. package/dist/skills-status-CzM008aB.js +169 -0
  628. package/dist/slack-Bzt3M7d8.js +114 -0
  629. package/dist/slash-commands.runtime-EYqj8SbV.js +128 -0
  630. package/dist/slash-dispatch.runtime-vWH92PUY.js +141 -0
  631. package/dist/slash-skill-commands.runtime-sUTjM3J0.js +116 -0
  632. package/dist/src-Iso9-DPo.js +1701 -0
  633. package/dist/status-8S882KRO.js +43 -0
  634. package/dist/status-BF7h_jTB.js +126 -0
  635. package/dist/status-DxOIyRm9.js +131 -0
  636. package/dist/status-HlvixAOq.js +606 -0
  637. package/dist/status-json-CShBo8A6.js +288 -0
  638. package/dist/status-qhtgsJFd.js +1599 -0
  639. package/dist/status.link-channel-D3dLYZiH.js +143 -0
  640. package/dist/status.scan.deps.runtime-mCmOLzpG.js +126 -0
  641. package/dist/status.scan.runtime-CYuUlDeg.js +119 -0
  642. package/dist/status.summary-BjB1aTjV.js +592 -0
  643. package/dist/status.summary.runtime-DW4MOt1Z.js +118 -0
  644. package/dist/status.update-BxblMS7P.js +77 -0
  645. package/dist/subagent-orphan-recovery-CCVopsdP.js +307 -0
  646. package/dist/subagent-registry-runtime-oG47Fzvg.js +111 -0
  647. package/dist/subscription-CpFdxuFS.js +33 -0
  648. package/dist/subscription-DaA1urx-.js +102 -0
  649. package/dist/subscription-cli-Bvto9EmO.js +134 -0
  650. package/dist/synology-chat-CVy1tJGY.js +297 -0
  651. package/dist/system-cli-BvNps8sl.js +94 -0
  652. package/dist/telegram/audit.d.ts +1 -1
  653. package/dist/telegram/audit.js +1 -1
  654. package/dist/telegram/token.d.ts +1 -1
  655. package/dist/telegram/token.js +35 -35
  656. package/dist/telegram-Dug8pd82.js +114 -0
  657. package/dist/text-chunking-CQ6ttpWs.js +84 -0
  658. package/dist/text-chunking-DDUU_vAF.d.ts +79 -0
  659. package/dist/tlon-BnckVr_7.js +433 -0
  660. package/dist/tui-DXTge9Ac.js +3834 -0
  661. package/dist/tui-cli-BRUfLUTd.js +137 -0
  662. package/dist/types-2H_e7eWT.d.ts +45 -0
  663. package/dist/types-ZKnGUchG.d.ts +22692 -0
  664. package/dist/types.base-BFiQZ4J9.d.ts +188 -0
  665. package/dist/ui--iP08xRA.js +31 -0
  666. package/dist/update-CtxBD-Cf.js +1036 -0
  667. package/dist/update-cli-DPE3GCHJ.js +1503 -0
  668. package/dist/update-offset-store-BlBY7dWj.js +112 -0
  669. package/dist/update-runner-Cfcrhf2j.js +1496 -0
  670. package/dist/upsert-with-lock-BZU7Le8n.js +33 -0
  671. package/dist/usage-Czgwvg0h.js +115 -0
  672. package/dist/web-BGDXhunB.js +112 -0
  673. package/dist/web-shared-B5Q0mIJq.d.ts +45 -0
  674. package/dist/webhook-request-guards-CsKDhZJr.d.ts +76 -0
  675. package/dist/webhook-targets-CjxuEE9C.d.ts +106 -0
  676. package/dist/webhook-targets-Dtt6rH4N.js +181 -0
  677. package/dist/webhooks-cli-Wl9y6AWW.js +350 -0
  678. package/dist/whatsapp-D64cBQ_9.js +114 -0
  679. package/dist/whatsapp-actions-CVoTcagb.js +167 -0
  680. package/dist/workspace-DJ_S272u.js +484 -0
  681. package/dist/workspace-DbZSqjw0.js +289 -0
  682. package/dist/workspace-cli-D93DLmAh.js +154 -0
  683. package/dist/workspace-dirs-CGeIPpGN.js +2003 -0
  684. package/dist/zalo-CK2dlGmu.d.ts +9 -0
  685. package/dist/zalo-DxoY8M22.js +415 -0
  686. package/dist/zalouser-DTHIrPvs.js +30911 -0
  687. package/extensions/discord/src/monitor/allow-list.ts +8 -1
  688. package/extensions/discord/src/monitor/message-handler.preflight.ts +4 -1
  689. package/package.json +1 -1
  690. package/dist/accounts-CS8U4v8C.js +0 -114
  691. package/dist/accounts-gLr-Udmt.d.ts +0 -103
  692. package/dist/acp-cli-BGT0jXcC.js +0 -2093
  693. package/dist/actions.runtime-BfckTw6c.js +0 -119
  694. package/dist/actions.runtime-Cl9mBfqH.js +0 -133
  695. package/dist/agent-scope-C-YmLnnb.js +0 -208
  696. package/dist/agents-CydD54p8.js +0 -222
  697. package/dist/agents-DpQsZO6O.js +0 -853
  698. package/dist/agents.config-XU7IsYE-.js +0 -121
  699. package/dist/agents.config-ssoQXuvF.js +0 -17
  700. package/dist/allow-list-Cfn6lmMK.js +0 -81
  701. package/dist/allowlist-CCYXVpM9.js +0 -142
  702. package/dist/api-BoXoFKxy.js +0 -117
  703. package/dist/audit-Bv05N5o9.js +0 -787
  704. package/dist/audit-CIWW1Aqm.js +0 -54
  705. package/dist/audit-channel.collect.runtime-Bi7yrdcO.js +0 -605
  706. package/dist/audit-channel.runtime-C_NDweiW.js +0 -121
  707. package/dist/audit-extra.async-Dp7OKSXg.js +0 -813
  708. package/dist/audit-membership-runtime-B8FQ6VtN.js +0 -162
  709. package/dist/audit.deep.runtime-CXhobL6b.js +0 -25
  710. package/dist/audit.nondeep.runtime-CrEm3T16.js +0 -832
  711. package/dist/audit.runtime-CJPKj1Zg.js +0 -118
  712. package/dist/auth-Byfp0flq.js +0 -101
  713. package/dist/auth-choice-BgOjdeXN.js +0 -507
  714. package/dist/auth-choice-CD1Heq0M.js +0 -122
  715. package/dist/auth-choice-ePNfg0iQ.js +0 -268
  716. package/dist/auth-choice-options-BlewQWI0.js +0 -123
  717. package/dist/auth-choice-prompt-BP2b6aXz.js +0 -36
  718. package/dist/auth-choice-prompt-Cmwl4n97.js +0 -115
  719. package/dist/auth-choice.apply-helpers-Dq-nxuuX.js +0 -66
  720. package/dist/auth-choice.plugin-providers.runtime-B23kOUzQ.js +0 -119
  721. package/dist/auth-profiles-1kPLbBwI.js +0 -127823
  722. package/dist/auth-profiles.runtime-DAfSjku1.js +0 -116
  723. package/dist/banner-DeOsobLO.js +0 -342
  724. package/dist/bluebubbles-BsLGedBM.js +0 -64
  725. package/dist/bluebubbles-U2sAfO4_.d.ts +0 -6
  726. package/dist/bot-DW12K3bO.d.ts +0 -478
  727. package/dist/brave-BoWimrLe.js +0 -24
  728. package/dist/browser-cli-D_S3wEYE.js +0 -1494
  729. package/dist/call-ByEzDJ1_.js +0 -640
  730. package/dist/call-CHCWVg-O.js +0 -39
  731. package/dist/channel-3VC0oOMu.js +0 -214
  732. package/dist/channel-B9fCBPiS.js +0 -207
  733. package/dist/channel-B9q775cM.js +0 -562
  734. package/dist/channel-BG3UK54j.js +0 -803
  735. package/dist/channel-BRQAdMML.js +0 -352
  736. package/dist/channel-BmlLp933.js +0 -1321
  737. package/dist/channel-By6KvdTG.js +0 -920
  738. package/dist/channel-C8rRsdf6.js +0 -226
  739. package/dist/channel-CLEDBbXE.js +0 -943
  740. package/dist/channel-CMvBAG7o.js +0 -306
  741. package/dist/channel-CmlxxjHY.js +0 -1598
  742. package/dist/channel-CqG6_xN0.js +0 -949
  743. package/dist/channel-DNueHKs92.js +0 -316
  744. package/dist/channel-DUtyN7BX.js +0 -4681
  745. package/dist/channel-DWD6GrfZ.js +0 -538
  746. package/dist/channel-DaRYMYzj.js +0 -619
  747. package/dist/channel-Dj6BgLp8.js +0 -575
  748. package/dist/channel-account-context-Ba3u5D21.js +0 -103
  749. package/dist/channel-crabk6Em.js +0 -542
  750. package/dist/channel-i8uqQaK2.js +0 -497
  751. package/dist/channel-options-xljvwHS2.js +0 -50
  752. package/dist/channel-plugin-ids-DAgknSG4.js +0 -26
  753. package/dist/channel-summary-dHTMCG75.js +0 -111
  754. package/dist/channel-xVWQ96Ni.js +0 -397
  755. package/dist/channel.runtime-B6PoZ4BV.js +0 -182
  756. package/dist/channel.runtime-BPZmo57e.js +0 -404
  757. package/dist/channel.runtime-B_1uGR-U.js +0 -199
  758. package/dist/channel.runtime-BiXnPU0d.js +0 -218
  759. package/dist/channel.runtime-BpvDc9sv.js +0 -870
  760. package/dist/channel.runtime-CUua3W80.js +0 -418
  761. package/dist/channel.runtime-CaCBTd0A.js +0 -179
  762. package/dist/channel.runtime-D0FfYvUj.js +0 -4011
  763. package/dist/channel.runtime-DhoJtpvJ.js +0 -241
  764. package/dist/channel.runtime-Kj9EXNE0.js +0 -127
  765. package/dist/channel.runtime-r4tPuPyh.js +0 -171
  766. package/dist/channel.setup-B7d_grfe.js +0 -6
  767. package/dist/channel.setup-C0vu1fhi.js +0 -9
  768. package/dist/channel.setup-CAI0FNHj.js +0 -11
  769. package/dist/channel.setup-CkDVwv5R.js +0 -57
  770. package/dist/channel.setup-Cpd00YqQ.js +0 -8
  771. package/dist/channel.setup-DbBz1-WT.js +0 -9
  772. package/dist/channel.setup-GZnAvD9g.js +0 -8
  773. package/dist/channels-5H484RSw.js +0 -1118
  774. package/dist/channels-BnPudfyx.js +0 -404
  775. package/dist/channels-cli-WIC-QeH_.js +0 -291
  776. package/dist/channels-status-issues-RDmzovJU.js +0 -16
  777. package/dist/clawbot-cli-BgutNwf8.js +0 -118
  778. package/dist/cleanup-utils-DBl1Aij1.js +0 -96
  779. package/dist/cli-1P7u6zqu.js +0 -154
  780. package/dist/command-registry-B8jovrws.js +0 -232
  781. package/dist/command-registry-DtDl1FVm.js +0 -14
  782. package/dist/command-secret-gateway-BgUo3FxJ.js +0 -111
  783. package/dist/compact.runtime-CXbXM0AU.js +0 -116
  784. package/dist/completion-cli-Cik_owAE.js +0 -17
  785. package/dist/completion-cli-RU3P2RSl.js +0 -445
  786. package/dist/config-5HUpB1L1.js +0 -31
  787. package/dist/config-cli-QHaUHoZI.js +0 -433
  788. package/dist/config-guard-C9Sn3pE-.js +0 -118
  789. package/dist/config-sW57gztj.js +0 -44
  790. package/dist/config-validation-5LkjIKNt.js +0 -262
  791. package/dist/config-value-CtTWALxG.js +0 -132
  792. package/dist/configure-BmR2TPLf.js +0 -243
  793. package/dist/configure-DaLN-5xM.js +0 -1100
  794. package/dist/control-ui-assets-CH3MYmAo.js +0 -232
  795. package/dist/control-ui-shared-CA77PTml.js +0 -29
  796. package/dist/core-CvDzLs7B.js +0 -150
  797. package/dist/core-dPA4nFkn.d.ts +0 -87
  798. package/dist/cron-cli-tguLpzyq.js +0 -639
  799. package/dist/daemon-cli-ptosOkL8.js +0 -339
  800. package/dist/daemon-install-DzU4EnVa.js +0 -180
  801. package/dist/deliver-DwxFoHM3.js +0 -111
  802. package/dist/deliver-runtime-DOdDyaPI.js +0 -111
  803. package/dist/device-id-cli-GopvlxxZ.js +0 -52
  804. package/dist/device-identity-CRfhC3_s.js +0 -365
  805. package/dist/devices-cli-ain7ESqU.js +0 -342
  806. package/dist/diagnostic-D96Xaqrj.js +0 -310
  807. package/dist/directory-cli-fh1UxGgY.js +0 -311
  808. package/dist/directory-config-helpers-CpU1oflo.d.ts +0 -38
  809. package/dist/directory.static-CKjJUNGl.js +0 -44
  810. package/dist/discord-CflhwDEM.js +0 -114
  811. package/dist/discovery-x0ZqY4AB.js +0 -48
  812. package/dist/dm-policy-shared-73A52W6E.d.ts +0 -95
  813. package/dist/dns-cli-DCHyKjGf.js +0 -217
  814. package/dist/docs-cli-D3OoqYSP.js +0 -174
  815. package/dist/doctor-completion-Bq2eP87s.js +0 -90
  816. package/dist/doctor-config-flow-D8XRG9Ku.js +0 -2437
  817. package/dist/doctor-config-flow-DGiF1HGc.js +0 -112
  818. package/dist/enable-0QSF4YGH.js +0 -24
  819. package/dist/exec-approvals-cli-Bncym0Gd.js +0 -421
  820. package/dist/feishu-B5JDcyF9.d.ts +0 -36
  821. package/dist/gateway-cli-DYscsmA-.js +0 -26437
  822. package/dist/gateway-install-token-CNv17ac9.js +0 -163
  823. package/dist/gateway-rpc-BGC1Rxvg.js +0 -26
  824. package/dist/gateway-runtime-D89mSQPB.js +0 -69
  825. package/dist/git-commit-CeLH5Ozm.js +0 -2
  826. package/dist/git-commit-DUKRiCP-.js +0 -177
  827. package/dist/googlechat-BgXeXjd1.js +0 -307
  828. package/dist/googlechat-De-T7C31.d.ts +0 -12
  829. package/dist/group-access-Deh1tVNr.d.ts +0 -61
  830. package/dist/health-BEjzWwaB.js +0 -570
  831. package/dist/health-FjqrWQL6.js +0 -113
  832. package/dist/heartbeat-summary-CfdSA9M1.js +0 -57
  833. package/dist/help-BZeVprq1.js +0 -81
  834. package/dist/hooks-B5pYs_d7.d.ts +0 -6
  835. package/dist/hooks-cli-B7uGJs2O.js +0 -1000
  836. package/dist/hooks-status-CfceaUSg.js +0 -78
  837. package/dist/http-registry-C-KXqwnj.d.ts +0 -20
  838. package/dist/identity-file-sshkKKIr.js +0 -60
  839. package/dist/image-generation-CafM5hZh.d.ts +0 -9
  840. package/dist/imessage-BcV3WGx_.js +0 -31
  841. package/dist/imessage-Dhje7Ty-.js +0 -115
  842. package/dist/inbound-reply-dispatch-C73_7SOl.js +0 -71
  843. package/dist/inbound-reply-dispatch-DmL0KWLe.d.ts +0 -72
  844. package/dist/install-target-D7NRhfzc.js +0 -574
  845. package/dist/installs-Bj6jblqc.js +0 -532
  846. package/dist/io-CMfWWPXQ.js +0 -9738
  847. package/dist/io-CV844hAM.js +0 -29
  848. package/dist/irc-DKi1fDYI.js +0 -672
  849. package/dist/library-rygTG3oA.js +0 -112
  850. package/dist/lifecycle-core-BPlvShWY.js +0 -382
  851. package/dist/line-CGsemKWJ.js +0 -530
  852. package/dist/line-CKU3ER-n.d.ts +0 -75
  853. package/dist/llm-slug-generator-DlhVyMqT.js +0 -67
  854. package/dist/logging-5wu9k6w4.js +0 -30
  855. package/dist/logging-CxP9suT8.js +0 -13
  856. package/dist/login-qr-BcDsiwHs.js +0 -233
  857. package/dist/login-qr-Y8pJ5yV4.js +0 -112
  858. package/dist/logs-cli-XI9oVXpH.js +0 -256
  859. package/dist/manager-runtime-DkIlXBhD.js +0 -111
  860. package/dist/manager.runtime-Q0q2rJCC.js +0 -715
  861. package/dist/manifest-registry-DAd0SRAP.js +0 -1329
  862. package/dist/matrix-BI0DBBrG.js +0 -1495
  863. package/dist/matrix-DiABGjJR.js +0 -1269
  864. package/dist/matrix-fC6NrFM5.d.ts +0 -68
  865. package/dist/mcp-cli-BOyn_DLL.js +0 -87
  866. package/dist/media-understanding.runtime-DjUa7Dka.js +0 -116
  867. package/dist/memory-cli-CJd_vl-Y.js +0 -111
  868. package/dist/memory-search-CEEItIFR.js +0 -17
  869. package/dist/memory-search-Cv1SBrn7.js +0 -204
  870. package/dist/method-scopes-CQE7-bZ-.js +0 -2452
  871. package/dist/model-auth-markers-B1bbs9Qd.d.ts +0 -20
  872. package/dist/model-picker-D6_89XHg.js +0 -112
  873. package/dist/model-picker-Svaw-APs.js +0 -390
  874. package/dist/model-picker.runtime-Chi9nV7A.js +0 -125
  875. package/dist/model-selection-hL8i1Jbs.js +0 -653
  876. package/dist/model-suppression.runtime-DjWJZ0X-.js +0 -116
  877. package/dist/models-7qj1dG_W.js +0 -118
  878. package/dist/models-BPOB_xJF.js +0 -2514
  879. package/dist/models-cli-DdlOVUjS.js +0 -309
  880. package/dist/models-config-CBqUS-jX.js +0 -111
  881. package/dist/models-config.providers.discovery-BKB5JH9M.d.ts +0 -18
  882. package/dist/moldclaw-root-D6PbhbZk.js +0 -88
  883. package/dist/monitor-BPYhkEqF.js +0 -782
  884. package/dist/monitor-BuTcQ24j.js +0 -3468
  885. package/dist/monitor-CuXvNhFh.js +0 -113
  886. package/dist/monitor-D-TqSIHF.js +0 -6823
  887. package/dist/monitor-DRSgo9u2.js +0 -3076
  888. package/dist/monitor-DcHch39z.js +0 -772
  889. package/dist/monitor-DsHBMrXp.js +0 -115
  890. package/dist/monitor-shared-CL8T4gt1.js +0 -444
  891. package/dist/msteams-7FMwTvQG.js +0 -852
  892. package/dist/node-cli-BCjaSCZM.js +0 -2503
  893. package/dist/node-resolve-D5Hvcgyx.js +0 -835
  894. package/dist/nodes-cli-Dd_SNbkt.js +0 -1380
  895. package/dist/nostr-D8scBiYq.d.ts +0 -7
  896. package/dist/nostr-DBTFTxKs.js +0 -8744
  897. package/dist/npm-resolution-CYfb3MHG.js +0 -60
  898. package/dist/oauth-env-zPt5RywA.js +0 -10
  899. package/dist/onboard-BEFQQeig.js +0 -25
  900. package/dist/onboard-CJHNyxJh.js +0 -48
  901. package/dist/onboard-D_3UeLEN.js +0 -589
  902. package/dist/onboard-channels-B_JL0Djc.js +0 -1241
  903. package/dist/onboard-channels-CqZzHt2C.js +0 -205
  904. package/dist/onboard-custom-CER3Ggbq.js +0 -571
  905. package/dist/onboard-custom-bNRdGECb.js +0 -114
  906. package/dist/onboard-helpers-BK0Hsb7Y.js +0 -335
  907. package/dist/onboard-helpers-CXZ5RPoR.js +0 -113
  908. package/dist/onboard-hooks-1NsxEDjH.js +0 -72
  909. package/dist/onboard-remote-DuKhC_7W.js +0 -117
  910. package/dist/onboard-remote-OwRcDuB3.js +0 -181
  911. package/dist/onboard-search-Cy8dOq2W.js +0 -302
  912. package/dist/onboard-skills-D5phRa6r.js +0 -117
  913. package/dist/onboard-skills-c9qWCNe9.js +0 -133
  914. package/dist/outbound-media-CgNYEQWb.d.ts +0 -11
  915. package/dist/outbound-media-DYRO2vTD.js +0 -11
  916. package/dist/pairing-access-Dsiu5Mvl.d.ts +0 -21
  917. package/dist/pairing-cli-BOnv0TYn.js +0 -217
  918. package/dist/perplexity-EZwC3y2b.js +0 -24
  919. package/dist/persistent-dedupe-DMLOqJ23.d.ts +0 -26
  920. package/dist/pi-model-discovery-runtime-BToY3A6K.js +0 -111
  921. package/dist/pi-tools.before-tool-call.runtime-D_acPtld.js +0 -381
  922. package/dist/plugin-install-CgJpSjYd.js +0 -184
  923. package/dist/plugin-install-Cl1A4EF6.js +0 -117
  924. package/dist/plugin-install-plan-Dc2Z4DeU.js +0 -49
  925. package/dist/plugin-registry-B1UaWrQD.js +0 -49
  926. package/dist/plugin-registry-Cy8biwnn.js +0 -113
  927. package/dist/plugins-CXwvg50F.js +0 -111
  928. package/dist/plugins-cli-Uvzp2aYV.js +0 -917
  929. package/dist/policy-DsMBbEe7.js +0 -143
  930. package/dist/preflight-audio.runtime-hWsZIYvc.js +0 -116
  931. package/dist/probe-CNsSf1Uf.js +0 -6329
  932. package/dist/probe-CqOIrPhb.js +0 -47
  933. package/dist/probe-DH6gDw-h.js +0 -129
  934. package/dist/probe-DM16PLf4.js +0 -21
  935. package/dist/probe-DvAEEWYr.js +0 -1793
  936. package/dist/probe-auth-COfgCble.js +0 -48
  937. package/dist/probe-auth-I_5TX1Eh.js +0 -40
  938. package/dist/program-Dz80sgTU.js +0 -253
  939. package/dist/prompt-select-styled-wQehwFxK.js +0 -2673
  940. package/dist/provider-api-key-auth.runtime-BR9GU4ya.js +0 -121
  941. package/dist/provider-auth-choice-CdhA84kr.js +0 -126
  942. package/dist/provider-auth-choice-helpers-kabp_0zA.js +0 -48
  943. package/dist/provider-auth-choice-preference-se3zAM_2.js +0 -189
  944. package/dist/provider-auth-choice.runtime-BMc8-xNQ.js +0 -123
  945. package/dist/provider-auth-choices-CYsCViGi.js +0 -57
  946. package/dist/provider-auth-guidance-CMjUWlNf.js +0 -34
  947. package/dist/provider-auth-result-Cw6qIhO-.d.ts +0 -18
  948. package/dist/provider-models-BCId_Lfu.js +0 -2113
  949. package/dist/provider-models-Ok-DrSiY.d.ts +0 -867
  950. package/dist/provider-ollama-setup-B6XJZ0So.js +0 -314
  951. package/dist/provider-ollama-setup-lGDdTl0b.d.ts +0 -32
  952. package/dist/provider-onboard-CSPi7jOK.d.ts +0 -40
  953. package/dist/provider-onboard-Ca0TaNud.js +0 -139
  954. package/dist/provider-runtime.runtime-DwwkHw_7.js +0 -111
  955. package/dist/provider-self-hosted-setup-BEKLVGpj.js +0 -182
  956. package/dist/provider-self-hosted-setup-Df91By-J.d.ts +0 -61
  957. package/dist/provider-stream-DrUD69ai.js +0 -512
  958. package/dist/provider-usage-BgKHCnjr.js +0 -111
  959. package/dist/provider-usage-D8EZpFz9.js +0 -633
  960. package/dist/provider-wizard-DMdb-zj_.js +0 -152
  961. package/dist/push-apns-BPH6d4VV.js +0 -1038
  962. package/dist/pw-ai-DttfldtL.js +0 -1867
  963. package/dist/qmd-manager-CybcDUfk.js +0 -1570
  964. package/dist/qr-cli-8NcmJ8Ft.js +0 -369
  965. package/dist/qr-cli-DWe0Our3.js +0 -113
  966. package/dist/reactions-D6N0LR16.js +0 -281
  967. package/dist/read-only-account-inspect.discord.runtime-CqUWTRfl.js +0 -116
  968. package/dist/read-only-account-inspect.slack.runtime-9-jpln3q.js +0 -116
  969. package/dist/read-only-account-inspect.telegram.runtime-EKPI1D7n.js +0 -116
  970. package/dist/redact-snapshot-DwJEIVk9.js +0 -2663
  971. package/dist/register.agent-D3YdDirP.js +0 -439
  972. package/dist/register.backup-dR27qCuo.js +0 -625
  973. package/dist/register.configure-BjFhkkka.js +0 -252
  974. package/dist/register.maintenance-DiMQJIOa.js +0 -574
  975. package/dist/register.message-CdZsKYH1.js +0 -709
  976. package/dist/register.onboard-B0rV1eaO.js +0 -192
  977. package/dist/register.setup-wKMvohzo.js +0 -212
  978. package/dist/register.status-health-sessions-BJ68m6pt.js +0 -498
  979. package/dist/register.subclis-CnnrWt2a.js +0 -315
  980. package/dist/register.subclis-lSvTkC6z.js +0 -13
  981. package/dist/replies-BABt9b48.js +0 -110
  982. package/dist/resolve-channels-BqZFl2Ux.js +0 -262
  983. package/dist/resolve-channels-DjQLXb7B.js +0 -226
  984. package/dist/resolve-route-CSHDsa_m.js +0 -538
  985. package/dist/resolve-users-BG6HaSR5.js +0 -143
  986. package/dist/root-help-ohmaCyC_.js +0 -32
  987. package/dist/routes-4k2kpvoT.js +0 -7097
  988. package/dist/rpc-Cnwn4Q6L.js +0 -67
  989. package/dist/run-main-VYlacKA0.js +0 -424
  990. package/dist/runtime-D61jzMiI.d.ts +0 -26
  991. package/dist/runtime-discord-ops.runtime-DafrU-rI.js +0 -9078
  992. package/dist/runtime-slack-ops.runtime-CdXBKXwd.js +0 -4556
  993. package/dist/runtime-telegram-ops.runtime-B12sF7gE.js +0 -133
  994. package/dist/runtime-whatsapp-login.runtime-CqEudH37.js +0 -114
  995. package/dist/runtime-whatsapp-outbound.runtime-D5m2qyn-.js +0 -117
  996. package/dist/sandbox-cli-CHJiEWXB.js +0 -535
  997. package/dist/search-manager-BtNC3-i_.js +0 -16
  998. package/dist/search-manager-C7J7B3_a.js +0 -386
  999. package/dist/secrets-cli-C6yIWBbN.js +0 -2070
  1000. package/dist/security-cli-BVu9BkjD.js +0 -575
  1001. package/dist/send-BSreC7rr.js +0 -631
  1002. package/dist/send-BsLHQG_B.js +0 -1025
  1003. package/dist/send-BuNhp8PH.js +0 -283
  1004. package/dist/send-DOCswVar.js +0 -100
  1005. package/dist/send-Dl0LLErk.js +0 -629
  1006. package/dist/server-node-events-Bq2067EG.js +0 -506
  1007. package/dist/server-y38L7N5H.js +0 -107
  1008. package/dist/sessions-BV8gXURR.js +0 -112
  1009. package/dist/sessions-dl1Kc-Ci.js +0 -218
  1010. package/dist/setup-BSPXdMuK.d.ts +0 -37
  1011. package/dist/setup-DGszQH0_.js +0 -387
  1012. package/dist/setup-binary-C17YnmA8.js +0 -406
  1013. package/dist/setup-browser-CPx-nEsr.js +0 -70
  1014. package/dist/setup-core-BByHN1ME.js +0 -143
  1015. package/dist/setup-core-C0KPlBmL.js +0 -47
  1016. package/dist/setup-core-Cq37G6of.js +0 -166
  1017. package/dist/setup-core-uO84_Y75.js +0 -205
  1018. package/dist/setup-surface-BEMi7Rmb.js +0 -490
  1019. package/dist/setup-wizard-helpers-Ck9wDR0b.d.ts +0 -203
  1020. package/dist/setup.finalize-BzPBa8zW.js +0 -522
  1021. package/dist/setup.gateway-config-DdwkF-8e.js +0 -343
  1022. package/dist/shared-BCw4SKjB.js +0 -96
  1023. package/dist/shared-CjNzsULP.js +0 -75
  1024. package/dist/shared-Cu1BE7ZE.js +0 -298
  1025. package/dist/shared-DSClmyUn.js +0 -182
  1026. package/dist/shared-DyJdGH6y.js +0 -102
  1027. package/dist/signal-Dyv4NZsB.js +0 -114
  1028. package/dist/skills-CbB5b27M.js +0 -853
  1029. package/dist/skills-CnfI7Szw.js +0 -20
  1030. package/dist/skills-cli-CavB1f_3.js +0 -292
  1031. package/dist/skills-install-B1OBdgd0.js +0 -763
  1032. package/dist/skills-status-B3gAmIbW.js +0 -169
  1033. package/dist/skills-status-DrHhFgU9.js +0 -21
  1034. package/dist/slack-BRzqnoAz.js +0 -114
  1035. package/dist/slash-commands.runtime-BK88kgds.js +0 -128
  1036. package/dist/slash-dispatch.runtime-COGywwJE.js +0 -141
  1037. package/dist/slash-skill-commands.runtime-Ti4brxgh.js +0 -116
  1038. package/dist/src-DUR6OQxI.js +0 -1701
  1039. package/dist/status-C6dgQY9a.js +0 -131
  1040. package/dist/status-CNK0Q7QH.js +0 -606
  1041. package/dist/status-DBcX0DSC.js +0 -43
  1042. package/dist/status-DKgFgbwv.js +0 -1599
  1043. package/dist/status-Wn5lhNAc.js +0 -126
  1044. package/dist/status-json-D2EkWqAl.js +0 -288
  1045. package/dist/status.link-channel-D3ULIdEa.js +0 -143
  1046. package/dist/status.scan.deps.runtime-BsjWTAm4.js +0 -126
  1047. package/dist/status.scan.runtime-D4HbzROD.js +0 -119
  1048. package/dist/status.summary-C3YxPrDK.js +0 -592
  1049. package/dist/status.summary.runtime-DAkXPSaK.js +0 -118
  1050. package/dist/status.update-B4NnN9P1.js +0 -77
  1051. package/dist/subagent-orphan-recovery-QiQEBv36.js +0 -307
  1052. package/dist/subagent-registry-runtime-BJatPQFK.js +0 -111
  1053. package/dist/subscription-BhZORXN9.js +0 -100
  1054. package/dist/subscription-QEUjQRMv.js +0 -33
  1055. package/dist/subscription-cli-HrULlAgc.js +0 -134
  1056. package/dist/synology-chat-DB76GWMN.js +0 -297
  1057. package/dist/system-cli-D8jDwWuL.js +0 -94
  1058. package/dist/telegram-BHiiqKkQ.js +0 -114
  1059. package/dist/text-chunking-Baonm9Lu.js +0 -84
  1060. package/dist/text-chunking-DzB11ONk.d.ts +0 -79
  1061. package/dist/tlon-DLESxNgD.js +0 -433
  1062. package/dist/tui-C75zi2Cl.js +0 -3834
  1063. package/dist/tui-cli-DFwx5e6i.js +0 -137
  1064. package/dist/types-BKldC9YN.d.ts +0 -22692
  1065. package/dist/types-MeyueBE0.d.ts +0 -45
  1066. package/dist/types.base-Cw0-zIvE.d.ts +0 -188
  1067. package/dist/ui-B55NOIB6.js +0 -31
  1068. package/dist/update--ojavYQ4.js +0 -1036
  1069. package/dist/update-cli-Cvj5aWYM.js +0 -1503
  1070. package/dist/update-offset-store-upatuWwX.js +0 -112
  1071. package/dist/update-runner-DHkY_-76.js +0 -1496
  1072. package/dist/upsert-with-lock-C171GLaR.js +0 -33
  1073. package/dist/usage-N3bxnbmt.js +0 -115
  1074. package/dist/web-RdvT7gKa.js +0 -112
  1075. package/dist/web-shared-C2qHVxw1.d.ts +0 -45
  1076. package/dist/webhook-request-guards-CosLyl01.d.ts +0 -76
  1077. package/dist/webhook-targets-Bfnag-du.js +0 -181
  1078. package/dist/webhook-targets-DP_EkQa4.d.ts +0 -106
  1079. package/dist/webhooks-cli-ZpnXrq7G.js +0 -350
  1080. package/dist/whatsapp-DNTAyZHt.js +0 -114
  1081. package/dist/whatsapp-actions-o1zKQzKZ.js +0 -167
  1082. package/dist/workspace-CpWi5wPr.js +0 -479
  1083. package/dist/workspace-Ii7aRS7c.js +0 -289
  1084. package/dist/workspace-dirs-x10McA9t.js +0 -2003
  1085. package/dist/zalo-C9OQRYRw.d.ts +0 -9
  1086. package/dist/zalo-zm_bYCKg.js +0 -415
  1087. package/dist/zalouser-CvVEUvc5.js +0 -30911
  1088. /package/dist/{account-id-B3YSn4hl.d.ts → account-id-B8ce6G_4.d.ts} +0 -0
  1089. /package/dist/{acpx-CnNv70m2.d.ts → acpx-Ci50I9T2.d.ts} +0 -0
  1090. /package/dist/{agent-media-payload-DE2pEcsz.d.ts → agent-media-payload-en-gS5p6.d.ts} +0 -0
  1091. /package/dist/{allow-from-DPpHnT2A.d.ts → allow-from-cMeQ47Ot.d.ts} +0 -0
  1092. /package/dist/{allowlist-resolution-CLFiZ6nE.d.ts → allowlist-resolution-DoAWbfXV.d.ts} +0 -0
  1093. /package/dist/{bluebubbles-Duhu-Jer.d.ts → bluebubbles-C6yYmUl0.d.ts} +0 -0
  1094. /package/dist/{boolean-param-BhFjB3gp.d.ts → boolean-param-CdO2TFTk.d.ts} +0 -0
  1095. /package/dist/{channel-config-schema-DnnVMdjR.d.ts → channel-config-schema-Chp38wel.d.ts} +0 -0
  1096. /package/dist/{channel-policy-Baq-Z06b.d.ts → channel-policy-g2h6AbYQ.d.ts} +0 -0
  1097. /package/dist/{chat-type-DpiBgwuG.d.ts → chat-type-BLt59pPT.d.ts} +0 -0
  1098. /package/dist/{command-format-vi4xq8e8.d.ts → command-format-BDJC05Jp.d.ts} +0 -0
  1099. /package/dist/{diffs-DK7fVSDo.d.ts → diffs-D_iNKCyn.d.ts} +0 -0
  1100. /package/dist/{directory-runtime-BTLPaysA.d.ts → directory-runtime-DhMex6HY.d.ts} +0 -0
  1101. /package/dist/{exec-C01wtBHu.d.ts → exec-pjfUY4KM.d.ts} +0 -0
  1102. /package/dist/{gaxios-fetch-compat-wZ38b3w3.js → gaxios-fetch-compat-B_vtINdV.js} +0 -0
  1103. /package/dist/{history-CwXuP2TW.d.ts → history-aqSS5VGQ.d.ts} +0 -0
  1104. /package/dist/{inbound-envelope-SggrBs9m.d.ts → inbound-envelope-C5hWuZod.d.ts} +0 -0
  1105. /package/dist/{index-apAZHsDo.d.ts → index-DXVQFYGX.d.ts} +0 -0
  1106. /package/dist/{json-store-r75IZGk9.d.ts → json-store-UnqQ5aV3.d.ts} +0 -0
  1107. /package/dist/{keyed-async-queue-DHIr7yNe.d.ts → keyed-async-queue-guucpLw3.d.ts} +0 -0
  1108. /package/dist/{links-HeQ3r_L0.d.ts → links-Bar0meEK.d.ts} +0 -0
  1109. /package/dist/{markdown-to-line-CDb4Jy3V.d.ts → markdown-to-line-D8uH_KOj.d.ts} +0 -0
  1110. /package/dist/{mattermost-DtCsxpgg.d.ts → mattermost-xl7jAFJL.d.ts} +0 -0
  1111. /package/dist/{net-BATPDwdQ.d.ts → net-rGOKGds6.d.ts} +0 -0
  1112. /package/dist/{nextcloud-talk-Bb2wHOwp.d.ts → nextcloud-talk-De2CZ9dV.d.ts} +0 -0
  1113. /package/dist/{oauth-utils-u567CLT0.d.ts → oauth-utils-DzN1AlEH.d.ts} +0 -0
  1114. /package/dist/{parse-finite-number-l3tNlrZh.d.ts → parse-finite-number-odgyqhi0.d.ts} +0 -0
  1115. /package/dist/{provider-usage.types-C6061OVN.d.ts → provider-usage.types-EDE9o-H_.d.ts} +0 -0
  1116. /package/dist/{reply-history-BDsFnZFl.d.ts → reply-history-CVuU31xe.d.ts} +0 -0
  1117. /package/dist/{reply-payload-CCvM4W9u.d.ts → reply-payload-CHkpBYwL.d.ts} +0 -0
  1118. /package/dist/{request-url-C54l4-xC.d.ts → request-url-DHisbiHY.d.ts} +0 -0
  1119. /package/dist/{run-command-D3RqWcHu.d.ts → run-command-y0Cndsb1.d.ts} +0 -0
  1120. /package/dist/{secret-input-schema-BLBt-NAP.d.ts → secret-input-schema-b1vpYDQN.d.ts} +0 -0
  1121. /package/dist/{session-key-BQ2-bR-9.d.ts → session-key-DTHQl57f.d.ts} +0 -0
  1122. /package/dist/{ssh-config-C4mcH9Ly.js → ssh-config-hEHBfU2_.js} +0 -0
  1123. /package/dist/{testing-DLkhGsoz.d.ts → testing-DszuZXgK.d.ts} +0 -0
  1124. /package/dist/{thinking-DRkjX18p.d.ts → thinking-IwXTGSeT.d.ts} +0 -0
  1125. /package/dist/{tool-send-CMMD1uDu.d.ts → tool-send-DWHRmKpz.d.ts} +0 -0
  1126. /package/dist/{vllm-defaults-CcGuf4hL.d.ts → vllm-defaults-CrxZgE6-.d.ts} +0 -0
  1127. /package/dist/{wait-Daog8bxM.d.ts → wait-wDWw_MTI.d.ts} +0 -0
  1128. /package/dist/{webhook-memory-guards-C5MrExwT.d.ts → webhook-memory-guards-DreORuJy.d.ts} +0 -0
  1129. /package/dist/{windows-spawn-j2l-dqu8.d.ts → windows-spawn-BIzH92x2.d.ts} +0 -0
  1130. /package/dist/{zod-schema.agent-runtime-krMrBnIn.d.ts → zod-schema.agent-runtime-CP2rmis3.d.ts} +0 -0
  1131. /package/dist/{zod-schema.core-BNDieZDZ.d.ts → zod-schema.core-Foi1tYwi.d.ts} +0 -0
@@ -1,1025 +0,0 @@
1
- import { Hh as resolveFeishuAccount, Ih as createFeishuClient, Iy as withTempDownloadPath } from "./auth-profiles-1kPLbBwI.js";
2
- import { m as mediaKindFromMime } from "./mime-DGFQe4XX.js";
3
- import { a as resolveReceiveIdType, i as normalizeFeishuTarget, t as getFeishuRuntime } from "./runtime-BKcd1buT.js";
4
- import path from "path";
5
- import fs from "fs";
6
- //#region extensions/feishu/src/external-keys.ts
7
- const CONTROL_CHARS_RE = /[\u0000-\u001f\u007f]/;
8
- const MAX_EXTERNAL_KEY_LENGTH = 512;
9
- function normalizeFeishuExternalKey(value) {
10
- if (typeof value !== "string") return;
11
- const normalized = value.trim();
12
- if (!normalized || normalized.length > MAX_EXTERNAL_KEY_LENGTH) return;
13
- if (CONTROL_CHARS_RE.test(normalized)) return;
14
- if (normalized.includes("/") || normalized.includes("\\") || normalized.includes("..")) return;
15
- return normalized;
16
- }
17
- //#endregion
18
- //#region extensions/feishu/src/send-result.ts
19
- function assertFeishuMessageApiSuccess(response, errorPrefix) {
20
- if (response.code !== 0) throw new Error(`${errorPrefix}: ${response.msg || `code ${response.code}`}`);
21
- }
22
- function toFeishuSendResult(response, chatId) {
23
- return {
24
- messageId: response.data?.message_id ?? "unknown",
25
- chatId
26
- };
27
- }
28
- //#endregion
29
- //#region extensions/feishu/src/send-target.ts
30
- function resolveFeishuSendTarget(params) {
31
- const target = params.to.trim();
32
- const account = resolveFeishuAccount({
33
- cfg: params.cfg,
34
- accountId: params.accountId
35
- });
36
- if (!account.configured) throw new Error(`Feishu account "${account.accountId}" not configured`);
37
- const client = createFeishuClient(account);
38
- const receiveId = normalizeFeishuTarget(target);
39
- if (!receiveId) throw new Error(`Invalid Feishu target: ${params.to}`);
40
- return {
41
- client,
42
- receiveId,
43
- receiveIdType: resolveReceiveIdType(target.replace(/^(feishu|lark):/i, ""))
44
- };
45
- }
46
- //#endregion
47
- //#region extensions/feishu/src/media.ts
48
- const FEISHU_MEDIA_HTTP_TIMEOUT_MS = 12e4;
49
- function createConfiguredFeishuMediaClient(params) {
50
- const account = resolveFeishuAccount({
51
- cfg: params.cfg,
52
- accountId: params.accountId
53
- });
54
- if (!account.configured) throw new Error(`Feishu account "${account.accountId}" not configured`);
55
- return {
56
- account,
57
- client: createFeishuClient({
58
- ...account,
59
- httpTimeoutMs: FEISHU_MEDIA_HTTP_TIMEOUT_MS
60
- })
61
- };
62
- }
63
- function extractFeishuUploadKey(response, params) {
64
- const responseAny = response;
65
- if (responseAny.code !== void 0 && responseAny.code !== 0) throw new Error(`${params.errorPrefix}: ${responseAny.msg || `code ${responseAny.code}`}`);
66
- const key = responseAny[params.key] ?? responseAny.data?.[params.key];
67
- if (!key) throw new Error(`${params.errorPrefix}: no ${params.key} returned`);
68
- return key;
69
- }
70
- function readHeaderValue(headers, name) {
71
- if (!headers) return;
72
- const target = name.toLowerCase();
73
- for (const [key, value] of Object.entries(headers)) {
74
- if (key.toLowerCase() !== target) continue;
75
- if (typeof value === "string" && value.trim()) return value.trim();
76
- if (Array.isArray(value)) {
77
- const first = value.find((entry) => typeof entry === "string" && entry.trim());
78
- if (typeof first === "string") return first.trim();
79
- }
80
- }
81
- }
82
- function decodeDispositionFileName(value) {
83
- const utf8Match = value.match(/filename\*=UTF-8''([^;]+)/i);
84
- if (utf8Match?.[1]) try {
85
- return decodeURIComponent(utf8Match[1].trim().replace(/^"(.*)"$/, "$1"));
86
- } catch {
87
- return utf8Match[1].trim().replace(/^"(.*)"$/, "$1");
88
- }
89
- return value.match(/filename="?([^";]+)"?/i)?.[1]?.trim();
90
- }
91
- function extractFeishuDownloadMetadata(response) {
92
- const responseAny = response;
93
- const headers = responseAny.headers ?? responseAny.header;
94
- const contentType = readHeaderValue(headers, "content-type") ?? (typeof responseAny.contentType === "string" ? responseAny.contentType : void 0) ?? (typeof responseAny.mime_type === "string" ? responseAny.mime_type : void 0) ?? (typeof responseAny.data?.contentType === "string" ? responseAny.data.contentType : void 0) ?? (typeof responseAny.data?.mime_type === "string" ? responseAny.data.mime_type : void 0);
95
- const disposition = readHeaderValue(headers, "content-disposition");
96
- return {
97
- contentType,
98
- fileName: (disposition ? decodeDispositionFileName(disposition) : void 0) ?? (typeof responseAny.file_name === "string" ? responseAny.file_name : void 0) ?? (typeof responseAny.fileName === "string" ? responseAny.fileName : void 0) ?? (typeof responseAny.data?.file_name === "string" ? responseAny.data.file_name : void 0) ?? (typeof responseAny.data?.fileName === "string" ? responseAny.data.fileName : void 0)
99
- };
100
- }
101
- async function readFeishuResponseBuffer(params) {
102
- const { response } = params;
103
- const responseAny = response;
104
- if (responseAny.code !== void 0 && responseAny.code !== 0) throw new Error(`${params.errorPrefix}: ${responseAny.msg || `code ${responseAny.code}`}`);
105
- if (Buffer.isBuffer(response)) return response;
106
- if (response instanceof ArrayBuffer) return Buffer.from(response);
107
- if (responseAny.data && Buffer.isBuffer(responseAny.data)) return responseAny.data;
108
- if (responseAny.data instanceof ArrayBuffer) return Buffer.from(responseAny.data);
109
- if (typeof responseAny.getReadableStream === "function") {
110
- const stream = responseAny.getReadableStream();
111
- const chunks = [];
112
- for await (const chunk of stream) chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
113
- return Buffer.concat(chunks);
114
- }
115
- if (typeof responseAny.writeFile === "function") return await withTempDownloadPath({ prefix: params.tmpDirPrefix }, async (tmpPath) => {
116
- await responseAny.writeFile(tmpPath);
117
- return await fs.promises.readFile(tmpPath);
118
- });
119
- if (typeof responseAny[Symbol.asyncIterator] === "function") {
120
- const chunks = [];
121
- for await (const chunk of responseAny) chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
122
- return Buffer.concat(chunks);
123
- }
124
- if (typeof responseAny.read === "function") {
125
- const chunks = [];
126
- for await (const chunk of responseAny) chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
127
- return Buffer.concat(chunks);
128
- }
129
- const types = Object.keys(responseAny).map((k) => `${k}: ${typeof responseAny[k]}`).join(", ");
130
- throw new Error(`${params.errorPrefix}: unexpected response format. Keys: [${types}]`);
131
- }
132
- /**
133
- * Download a message resource (file/image/audio/video) from Feishu.
134
- * Used for downloading files, audio, and video from messages.
135
- */
136
- async function downloadMessageResourceFeishu(params) {
137
- const { cfg, messageId, fileKey, type, accountId } = params;
138
- const normalizedFileKey = normalizeFeishuExternalKey(fileKey);
139
- if (!normalizedFileKey) throw new Error("Feishu message resource download failed: invalid file_key");
140
- const { client } = createConfiguredFeishuMediaClient({
141
- cfg,
142
- accountId
143
- });
144
- const response = await client.im.messageResource.get({
145
- path: {
146
- message_id: messageId,
147
- file_key: normalizedFileKey
148
- },
149
- params: { type }
150
- });
151
- return {
152
- buffer: await readFeishuResponseBuffer({
153
- response,
154
- tmpDirPrefix: "moldclaw-feishu-resource-",
155
- errorPrefix: "Feishu message resource download failed"
156
- }),
157
- ...extractFeishuDownloadMetadata(response)
158
- };
159
- }
160
- /**
161
- * Upload an image to Feishu and get an image_key for sending.
162
- * Supports: JPEG, PNG, WEBP, GIF, TIFF, BMP, ICO
163
- */
164
- async function uploadImageFeishu(params) {
165
- const { cfg, image, imageType = "message", accountId } = params;
166
- const { client } = createConfiguredFeishuMediaClient({
167
- cfg,
168
- accountId
169
- });
170
- const imageData = typeof image === "string" ? fs.createReadStream(image) : image;
171
- return { imageKey: extractFeishuUploadKey(await client.im.image.create({ data: {
172
- image_type: imageType,
173
- image: imageData
174
- } }), {
175
- key: "image_key",
176
- errorPrefix: "Feishu image upload failed"
177
- }) };
178
- }
179
- /**
180
- * Sanitize a filename for safe use in Feishu multipart/form-data uploads.
181
- * Strips control characters and multipart-injection vectors (CWE-93) while
182
- * preserving the original UTF-8 display name (Chinese, emoji, etc.).
183
- *
184
- * Previous versions percent-encoded non-ASCII characters, but the Feishu
185
- * `im.file.create` API uses `file_name` as a literal display name — it does
186
- * NOT decode percent-encoding — so encoded filenames appeared as garbled text
187
- * in chat (regression in v2026.3.2).
188
- */
189
- function sanitizeFileNameForUpload(fileName) {
190
- return fileName.replace(/[\x00-\x1F\x7F\r\n"\\]/g, "_");
191
- }
192
- /**
193
- * Upload a file to Feishu and get a file_key for sending.
194
- * Max file size: 30MB
195
- */
196
- async function uploadFileFeishu(params) {
197
- const { cfg, file, fileName, fileType, duration, accountId } = params;
198
- const { client } = createConfiguredFeishuMediaClient({
199
- cfg,
200
- accountId
201
- });
202
- const fileData = typeof file === "string" ? fs.createReadStream(file) : file;
203
- const safeFileName = sanitizeFileNameForUpload(fileName);
204
- return { fileKey: extractFeishuUploadKey(await client.im.file.create({ data: {
205
- file_type: fileType,
206
- file_name: safeFileName,
207
- file: fileData,
208
- ...duration !== void 0 && { duration }
209
- } }), {
210
- key: "file_key",
211
- errorPrefix: "Feishu file upload failed"
212
- }) };
213
- }
214
- /**
215
- * Send an image message using an image_key
216
- */
217
- async function sendImageFeishu(params) {
218
- const { cfg, to, imageKey, replyToMessageId, replyInThread, accountId } = params;
219
- const { client, receiveId, receiveIdType } = resolveFeishuSendTarget({
220
- cfg,
221
- to,
222
- accountId
223
- });
224
- const content = JSON.stringify({ image_key: imageKey });
225
- if (replyToMessageId) {
226
- const response = await client.im.message.reply({
227
- path: { message_id: replyToMessageId },
228
- data: {
229
- content,
230
- msg_type: "image",
231
- ...replyInThread ? { reply_in_thread: true } : {}
232
- }
233
- });
234
- assertFeishuMessageApiSuccess(response, "Feishu image reply failed");
235
- return toFeishuSendResult(response, receiveId);
236
- }
237
- const response = await client.im.message.create({
238
- params: { receive_id_type: receiveIdType },
239
- data: {
240
- receive_id: receiveId,
241
- content,
242
- msg_type: "image"
243
- }
244
- });
245
- assertFeishuMessageApiSuccess(response, "Feishu image send failed");
246
- return toFeishuSendResult(response, receiveId);
247
- }
248
- /**
249
- * Send a file message using a file_key
250
- */
251
- async function sendFileFeishu(params) {
252
- const { cfg, to, fileKey, replyToMessageId, replyInThread, accountId } = params;
253
- const msgType = params.msgType ?? "file";
254
- const { client, receiveId, receiveIdType } = resolveFeishuSendTarget({
255
- cfg,
256
- to,
257
- accountId
258
- });
259
- const content = JSON.stringify({ file_key: fileKey });
260
- if (replyToMessageId) {
261
- const response = await client.im.message.reply({
262
- path: { message_id: replyToMessageId },
263
- data: {
264
- content,
265
- msg_type: msgType,
266
- ...replyInThread ? { reply_in_thread: true } : {}
267
- }
268
- });
269
- assertFeishuMessageApiSuccess(response, "Feishu file reply failed");
270
- return toFeishuSendResult(response, receiveId);
271
- }
272
- const response = await client.im.message.create({
273
- params: { receive_id_type: receiveIdType },
274
- data: {
275
- receive_id: receiveId,
276
- content,
277
- msg_type: msgType
278
- }
279
- });
280
- assertFeishuMessageApiSuccess(response, "Feishu file send failed");
281
- return toFeishuSendResult(response, receiveId);
282
- }
283
- /**
284
- * Helper to detect file type from extension
285
- */
286
- function detectFileType(fileName) {
287
- switch (path.extname(fileName).toLowerCase()) {
288
- case ".opus":
289
- case ".ogg": return "opus";
290
- case ".mp4":
291
- case ".mov":
292
- case ".avi": return "mp4";
293
- case ".pdf": return "pdf";
294
- case ".doc":
295
- case ".docx": return "doc";
296
- case ".xls":
297
- case ".xlsx": return "xls";
298
- case ".ppt":
299
- case ".pptx": return "ppt";
300
- default: return "stream";
301
- }
302
- }
303
- function resolveFeishuOutboundMediaKind(params) {
304
- const { fileName, contentType } = params;
305
- const ext = path.extname(fileName).toLowerCase();
306
- const mimeKind = mediaKindFromMime(contentType);
307
- if ([
308
- ".jpg",
309
- ".jpeg",
310
- ".png",
311
- ".gif",
312
- ".webp",
313
- ".bmp",
314
- ".ico",
315
- ".tiff"
316
- ].includes(ext) || mimeKind === "image") return { msgType: "image" };
317
- if (ext === ".opus" || ext === ".ogg" || contentType === "audio/ogg" || contentType === "audio/opus") return {
318
- fileType: "opus",
319
- msgType: "audio"
320
- };
321
- if ([
322
- ".mp4",
323
- ".mov",
324
- ".avi"
325
- ].includes(ext) || contentType === "video/mp4" || contentType === "video/quicktime" || contentType === "video/x-msvideo") return {
326
- fileType: "mp4",
327
- msgType: "media"
328
- };
329
- const fileType = detectFileType(fileName);
330
- return {
331
- fileType,
332
- msgType: fileType === "stream" ? "file" : fileType === "opus" ? "audio" : fileType === "mp4" ? "media" : "file"
333
- };
334
- }
335
- /**
336
- * Upload and send media (image or file) from URL, local path, or buffer.
337
- * When mediaUrl is a local path, mediaLocalRoots (from core outbound context)
338
- * must be passed so loadWebMedia allows the path (post CVE-2026-26321).
339
- */
340
- async function sendMediaFeishu(params) {
341
- const { cfg, to, mediaUrl, mediaBuffer, fileName, replyToMessageId, replyInThread, accountId, mediaLocalRoots } = params;
342
- const account = resolveFeishuAccount({
343
- cfg,
344
- accountId
345
- });
346
- if (!account.configured) throw new Error(`Feishu account "${account.accountId}" not configured`);
347
- const mediaMaxBytes = (account.config?.mediaMaxMb ?? 30) * 1024 * 1024;
348
- let buffer;
349
- let name;
350
- let contentType;
351
- if (mediaBuffer) {
352
- buffer = mediaBuffer;
353
- name = fileName ?? "file";
354
- } else if (mediaUrl) {
355
- const loaded = await getFeishuRuntime().media.loadWebMedia(mediaUrl, {
356
- maxBytes: mediaMaxBytes,
357
- optimizeImages: false,
358
- localRoots: mediaLocalRoots?.length ? mediaLocalRoots : void 0
359
- });
360
- buffer = loaded.buffer;
361
- name = fileName ?? loaded.fileName ?? "file";
362
- contentType = loaded.contentType;
363
- } else throw new Error("Either mediaUrl or mediaBuffer must be provided");
364
- const routing = resolveFeishuOutboundMediaKind({
365
- fileName: name,
366
- contentType
367
- });
368
- if (routing.msgType === "image") {
369
- const { imageKey } = await uploadImageFeishu({
370
- cfg,
371
- image: buffer,
372
- accountId
373
- });
374
- return sendImageFeishu({
375
- cfg,
376
- to,
377
- imageKey,
378
- replyToMessageId,
379
- replyInThread,
380
- accountId
381
- });
382
- } else {
383
- const { fileKey } = await uploadFileFeishu({
384
- cfg,
385
- file: buffer,
386
- fileName: name,
387
- fileType: routing.fileType ?? "stream",
388
- accountId
389
- });
390
- return sendFileFeishu({
391
- cfg,
392
- to,
393
- fileKey,
394
- msgType: routing.msgType,
395
- replyToMessageId,
396
- replyInThread,
397
- accountId
398
- });
399
- }
400
- }
401
- //#endregion
402
- //#region extensions/feishu/src/mention.ts
403
- /**
404
- * Escape regex metacharacters so user-controlled mention fields are treated literally.
405
- */
406
- function escapeRegExp(input) {
407
- return input.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
408
- }
409
- /**
410
- * Extract mention targets from message event (excluding the bot itself)
411
- */
412
- function extractMentionTargets(event, botOpenId) {
413
- return (event.message.mentions ?? []).filter((m) => {
414
- if (botOpenId && m.id.open_id === botOpenId) return false;
415
- return !!m.id.open_id;
416
- }).map((m) => ({
417
- openId: m.id.open_id,
418
- name: m.name,
419
- key: m.key
420
- }));
421
- }
422
- /**
423
- * Check if message is a mention forward request
424
- * Rules:
425
- * - Group: message mentions bot + at least one other user
426
- * - DM: message mentions any user (no need to mention bot)
427
- */
428
- function isMentionForwardRequest(event, botOpenId) {
429
- const mentions = event.message.mentions ?? [];
430
- if (mentions.length === 0) return false;
431
- const isDirectMessage = event.message.chat_type !== "group";
432
- const hasOtherMention = mentions.some((m) => m.id.open_id !== botOpenId);
433
- if (isDirectMessage) return hasOtherMention;
434
- else return mentions.some((m) => m.id.open_id === botOpenId) && hasOtherMention;
435
- }
436
- /**
437
- * Extract message body from text (remove @ placeholders)
438
- */
439
- function extractMessageBody(text, allMentionKeys) {
440
- let result = text;
441
- for (const key of allMentionKeys) result = result.replace(new RegExp(escapeRegExp(key), "g"), "");
442
- return result.replace(/\s+/g, " ").trim();
443
- }
444
- /**
445
- * Format @mention for text message
446
- */
447
- function formatMentionForText(target) {
448
- return `<at user_id="${target.openId}">${target.name}</at>`;
449
- }
450
- /**
451
- * Format @everyone for text message
452
- */
453
- function formatMentionAllForText() {
454
- return `<at user_id="all">Everyone</at>`;
455
- }
456
- /**
457
- * Format @mention for card message (lark_md)
458
- */
459
- function formatMentionForCard(target) {
460
- return `<at id=${target.openId}></at>`;
461
- }
462
- /**
463
- * Format @everyone for card message
464
- */
465
- function formatMentionAllForCard() {
466
- return `<at id=all></at>`;
467
- }
468
- /**
469
- * Build complete message with @mentions (text format)
470
- */
471
- function buildMentionedMessage(targets, message) {
472
- if (targets.length === 0) return message;
473
- return `${targets.map((t) => formatMentionForText(t)).join(" ")} ${message}`;
474
- }
475
- /**
476
- * Build card content with @mentions (Markdown format)
477
- */
478
- function buildMentionedCardContent(targets, message) {
479
- if (targets.length === 0) return message;
480
- return `${targets.map((t) => formatMentionForCard(t)).join(" ")} ${message}`;
481
- }
482
- //#endregion
483
- //#region extensions/feishu/src/post.ts
484
- const FALLBACK_POST_TEXT = "[Rich text message]";
485
- const MARKDOWN_SPECIAL_CHARS = /([\\`*_{}\[\]()#+\-!|>~])/g;
486
- function isRecord(value) {
487
- return typeof value === "object" && value !== null;
488
- }
489
- function toStringOrEmpty(value) {
490
- return typeof value === "string" ? value : "";
491
- }
492
- function escapeMarkdownText(text) {
493
- return text.replace(MARKDOWN_SPECIAL_CHARS, "\\$1");
494
- }
495
- function toBoolean(value) {
496
- return value === true || value === 1 || value === "true";
497
- }
498
- function isStyleEnabled(style, key) {
499
- if (!style) return false;
500
- return toBoolean(style[key]);
501
- }
502
- function wrapInlineCode(text) {
503
- const maxRun = Math.max(0, ...(text.match(/`+/g) ?? []).map((run) => run.length));
504
- const fence = "`".repeat(maxRun + 1);
505
- return `${fence}${text.startsWith("`") || text.endsWith("`") ? ` ${text} ` : text}${fence}`;
506
- }
507
- function sanitizeFenceLanguage(language) {
508
- return language.trim().replace(/[^A-Za-z0-9_+#.-]/g, "");
509
- }
510
- function renderTextElement(element) {
511
- const text = toStringOrEmpty(element.text);
512
- const style = isRecord(element.style) ? element.style : void 0;
513
- if (isStyleEnabled(style, "code")) return wrapInlineCode(text);
514
- let rendered = escapeMarkdownText(text);
515
- if (!rendered) return "";
516
- if (isStyleEnabled(style, "bold")) rendered = `**${rendered}**`;
517
- if (isStyleEnabled(style, "italic")) rendered = `*${rendered}*`;
518
- if (isStyleEnabled(style, "underline")) rendered = `<u>${rendered}</u>`;
519
- if (isStyleEnabled(style, "strikethrough") || isStyleEnabled(style, "line_through") || isStyleEnabled(style, "lineThrough")) rendered = `~~${rendered}~~`;
520
- return rendered;
521
- }
522
- function renderLinkElement(element) {
523
- const href = toStringOrEmpty(element.href).trim();
524
- const text = toStringOrEmpty(element.text) || href;
525
- if (!text) return "";
526
- if (!href) return escapeMarkdownText(text);
527
- return `[${escapeMarkdownText(text)}](${href})`;
528
- }
529
- function renderMentionElement(element) {
530
- const mention = toStringOrEmpty(element.user_name) || toStringOrEmpty(element.user_id) || toStringOrEmpty(element.open_id);
531
- if (!mention) return "";
532
- return `@${escapeMarkdownText(mention)}`;
533
- }
534
- function renderEmotionElement(element) {
535
- return escapeMarkdownText(toStringOrEmpty(element.emoji) || toStringOrEmpty(element.text) || toStringOrEmpty(element.emoji_type));
536
- }
537
- function renderCodeBlockElement(element) {
538
- const language = sanitizeFenceLanguage(toStringOrEmpty(element.language) || toStringOrEmpty(element.lang));
539
- const code = (toStringOrEmpty(element.text) || toStringOrEmpty(element.content)).replace(/\r\n/g, "\n");
540
- return `\`\`\`${language}\n${code}${code.endsWith("\n") ? "" : "\n"}\`\`\``;
541
- }
542
- function renderElement(element, imageKeys, mediaKeys, mentionedOpenIds) {
543
- if (!isRecord(element)) return escapeMarkdownText(toStringOrEmpty(element));
544
- switch (toStringOrEmpty(element.tag).toLowerCase()) {
545
- case "text": return renderTextElement(element);
546
- case "a": return renderLinkElement(element);
547
- case "at":
548
- {
549
- const normalizedMention = normalizeFeishuExternalKey(toStringOrEmpty(element.open_id) || toStringOrEmpty(element.user_id));
550
- if (normalizedMention) mentionedOpenIds.push(normalizedMention);
551
- }
552
- return renderMentionElement(element);
553
- case "img": {
554
- const imageKey = normalizeFeishuExternalKey(toStringOrEmpty(element.image_key));
555
- if (imageKey) imageKeys.push(imageKey);
556
- return "![image]";
557
- }
558
- case "media": {
559
- const fileKey = normalizeFeishuExternalKey(toStringOrEmpty(element.file_key));
560
- if (fileKey) {
561
- const fileName = toStringOrEmpty(element.file_name) || void 0;
562
- mediaKeys.push({
563
- fileKey,
564
- fileName
565
- });
566
- }
567
- return "[media]";
568
- }
569
- case "emotion": return renderEmotionElement(element);
570
- case "br": return "\n";
571
- case "hr": return "\n\n---\n\n";
572
- case "code": {
573
- const code = toStringOrEmpty(element.text) || toStringOrEmpty(element.content);
574
- return code ? wrapInlineCode(code) : "";
575
- }
576
- case "code_block":
577
- case "pre": return renderCodeBlockElement(element);
578
- default: return escapeMarkdownText(toStringOrEmpty(element.text));
579
- }
580
- }
581
- function toPostPayload(candidate) {
582
- if (!isRecord(candidate) || !Array.isArray(candidate.content)) return null;
583
- return {
584
- title: toStringOrEmpty(candidate.title),
585
- content: candidate.content
586
- };
587
- }
588
- function resolveLocalePayload(candidate) {
589
- const direct = toPostPayload(candidate);
590
- if (direct) return direct;
591
- if (!isRecord(candidate)) return null;
592
- for (const value of Object.values(candidate)) {
593
- const localePayload = toPostPayload(value);
594
- if (localePayload) return localePayload;
595
- }
596
- return null;
597
- }
598
- function resolvePostPayload(parsed) {
599
- const direct = toPostPayload(parsed);
600
- if (direct) return direct;
601
- if (!isRecord(parsed)) return null;
602
- const wrappedPost = resolveLocalePayload(parsed.post);
603
- if (wrappedPost) return wrappedPost;
604
- return resolveLocalePayload(parsed);
605
- }
606
- function parsePostContent(content) {
607
- try {
608
- const payload = resolvePostPayload(JSON.parse(content));
609
- if (!payload) return {
610
- textContent: FALLBACK_POST_TEXT,
611
- imageKeys: [],
612
- mediaKeys: [],
613
- mentionedOpenIds: []
614
- };
615
- const imageKeys = [];
616
- const mediaKeys = [];
617
- const mentionedOpenIds = [];
618
- const paragraphs = [];
619
- for (const paragraph of payload.content) {
620
- if (!Array.isArray(paragraph)) continue;
621
- let renderedParagraph = "";
622
- for (const element of paragraph) renderedParagraph += renderElement(element, imageKeys, mediaKeys, mentionedOpenIds);
623
- paragraphs.push(renderedParagraph);
624
- }
625
- return {
626
- textContent: [escapeMarkdownText(payload.title.trim()), paragraphs.join("\n").trim()].filter(Boolean).join("\n\n").trim() || FALLBACK_POST_TEXT,
627
- imageKeys,
628
- mediaKeys,
629
- mentionedOpenIds
630
- };
631
- } catch {
632
- return {
633
- textContent: FALLBACK_POST_TEXT,
634
- imageKeys: [],
635
- mediaKeys: [],
636
- mentionedOpenIds: []
637
- };
638
- }
639
- }
640
- //#endregion
641
- //#region extensions/feishu/src/send.ts
642
- const WITHDRAWN_REPLY_ERROR_CODES = new Set([230011, 231003]);
643
- const FEISHU_CARD_TEMPLATES = new Set([
644
- "blue",
645
- "green",
646
- "red",
647
- "orange",
648
- "purple",
649
- "indigo",
650
- "wathet",
651
- "turquoise",
652
- "yellow",
653
- "grey",
654
- "carmine",
655
- "violet",
656
- "lime"
657
- ]);
658
- function shouldFallbackFromReplyTarget(response) {
659
- if (response.code !== void 0 && WITHDRAWN_REPLY_ERROR_CODES.has(response.code)) return true;
660
- const msg = response.msg?.toLowerCase() ?? "";
661
- return msg.includes("withdrawn") || msg.includes("not found");
662
- }
663
- /** Check whether a thrown error indicates a withdrawn/not-found reply target. */
664
- function isWithdrawnReplyError(err) {
665
- if (typeof err !== "object" || err === null) return false;
666
- const code = err.code;
667
- if (typeof code === "number" && WITHDRAWN_REPLY_ERROR_CODES.has(code)) return true;
668
- const response = err.response;
669
- if (typeof response?.data?.code === "number" && WITHDRAWN_REPLY_ERROR_CODES.has(response.data.code)) return true;
670
- return false;
671
- }
672
- /** Send a direct message as a fallback when a reply target is unavailable. */
673
- async function sendFallbackDirect(client, params, errorPrefix) {
674
- const response = await client.im.message.create({
675
- params: { receive_id_type: params.receiveIdType },
676
- data: {
677
- receive_id: params.receiveId,
678
- content: params.content,
679
- msg_type: params.msgType
680
- }
681
- });
682
- assertFeishuMessageApiSuccess(response, errorPrefix);
683
- return toFeishuSendResult(response, params.receiveId);
684
- }
685
- async function sendReplyOrFallbackDirect(client, params) {
686
- if (!params.replyToMessageId) return sendFallbackDirect(client, params.directParams, params.directErrorPrefix);
687
- const threadReplyFallbackError = params.replyInThread ? /* @__PURE__ */ new Error("Feishu thread reply failed: reply target is unavailable and cannot safely fall back to a top-level send.") : null;
688
- let response;
689
- try {
690
- response = await client.im.message.reply({
691
- path: { message_id: params.replyToMessageId },
692
- data: {
693
- content: params.content,
694
- msg_type: params.msgType,
695
- ...params.replyInThread ? { reply_in_thread: true } : {}
696
- }
697
- });
698
- } catch (err) {
699
- if (!isWithdrawnReplyError(err)) throw err;
700
- if (threadReplyFallbackError) throw threadReplyFallbackError;
701
- return sendFallbackDirect(client, params.directParams, params.directErrorPrefix);
702
- }
703
- if (shouldFallbackFromReplyTarget(response)) {
704
- if (threadReplyFallbackError) throw threadReplyFallbackError;
705
- return sendFallbackDirect(client, params.directParams, params.directErrorPrefix);
706
- }
707
- assertFeishuMessageApiSuccess(response, params.replyErrorPrefix);
708
- return toFeishuSendResult(response, params.directParams.receiveId);
709
- }
710
- function parseInteractiveCardContent(parsed) {
711
- if (!parsed || typeof parsed !== "object") return "[Interactive Card]";
712
- const candidate = parsed;
713
- const elements = Array.isArray(candidate.elements) ? candidate.elements : Array.isArray(candidate.body?.elements) ? candidate.body.elements : null;
714
- if (!elements) return "[Interactive Card]";
715
- const texts = [];
716
- for (const element of elements) {
717
- if (!element || typeof element !== "object") continue;
718
- const item = element;
719
- if (item.tag === "div" && typeof item.text?.content === "string") {
720
- texts.push(item.text.content);
721
- continue;
722
- }
723
- if (item.tag === "markdown" && typeof item.content === "string") texts.push(item.content);
724
- }
725
- return texts.join("\n").trim() || "[Interactive Card]";
726
- }
727
- function parseFeishuMessageContent(rawContent, msgType) {
728
- if (!rawContent) return "";
729
- let parsed;
730
- try {
731
- parsed = JSON.parse(rawContent);
732
- } catch {
733
- return rawContent;
734
- }
735
- if (msgType === "text") {
736
- const text = parsed?.text;
737
- return typeof text === "string" ? text : "[Text message]";
738
- }
739
- if (msgType === "post") return parsePostContent(rawContent).textContent;
740
- if (msgType === "interactive") return parseInteractiveCardContent(parsed);
741
- if (typeof parsed === "string") return parsed;
742
- const genericText = parsed?.text;
743
- if (typeof genericText === "string" && genericText.trim()) return genericText;
744
- const genericTitle = parsed?.title;
745
- if (typeof genericTitle === "string" && genericTitle.trim()) return genericTitle;
746
- return `[${msgType || "unknown"} message]`;
747
- }
748
- function parseFeishuMessageItem(item, fallbackMessageId) {
749
- const msgType = item.msg_type ?? "text";
750
- const rawContent = item.body?.content ?? "";
751
- return {
752
- messageId: item.message_id ?? fallbackMessageId ?? "",
753
- chatId: item.chat_id ?? "",
754
- chatType: item.chat_type === "group" || item.chat_type === "private" || item.chat_type === "p2p" ? item.chat_type : void 0,
755
- senderId: item.sender?.id,
756
- senderOpenId: item.sender?.id_type === "open_id" ? item.sender?.id : void 0,
757
- senderType: item.sender?.sender_type,
758
- content: parseFeishuMessageContent(rawContent, msgType),
759
- contentType: msgType,
760
- createTime: item.create_time ? parseInt(String(item.create_time), 10) : void 0,
761
- threadId: item.thread_id || void 0
762
- };
763
- }
764
- /**
765
- * Get a message by its ID.
766
- * Useful for fetching quoted/replied message content.
767
- */
768
- async function getMessageFeishu(params) {
769
- const { cfg, messageId, accountId } = params;
770
- const account = resolveFeishuAccount({
771
- cfg,
772
- accountId
773
- });
774
- if (!account.configured) throw new Error(`Feishu account "${account.accountId}" not configured`);
775
- const client = createFeishuClient(account);
776
- try {
777
- const response = await client.im.message.get({ path: { message_id: messageId } });
778
- if (response.code !== 0) return null;
779
- const rawItem = response.data?.items?.[0] ?? response.data;
780
- const item = rawItem && (rawItem.body !== void 0 || rawItem.message_id !== void 0) ? rawItem : null;
781
- if (!item) return null;
782
- return parseFeishuMessageItem(item, messageId);
783
- } catch {
784
- return null;
785
- }
786
- }
787
- /**
788
- * List messages in a Feishu thread (topic).
789
- * Uses container_id_type=thread to directly query thread messages,
790
- * which includes both the root message and all replies (including bot replies).
791
- */
792
- async function listFeishuThreadMessages(params) {
793
- const { cfg, threadId, currentMessageId, rootMessageId, limit = 20, accountId } = params;
794
- const account = resolveFeishuAccount({
795
- cfg,
796
- accountId
797
- });
798
- if (!account.configured) throw new Error(`Feishu account "${account.accountId}" not configured`);
799
- const response = await createFeishuClient(account).im.message.list({ params: {
800
- container_id_type: "thread",
801
- container_id: threadId,
802
- sort_type: "ByCreateTimeDesc",
803
- page_size: Math.min(limit + 1, 50)
804
- } });
805
- if (response.code !== 0) throw new Error(`Feishu thread list failed: code=${response.code} msg=${response.msg ?? "unknown"}`);
806
- const items = response.data?.items ?? [];
807
- const results = [];
808
- for (const item of items) {
809
- if (currentMessageId && item.message_id === currentMessageId) continue;
810
- if (rootMessageId && item.message_id === rootMessageId) continue;
811
- const parsed = parseFeishuMessageItem(item);
812
- results.push({
813
- messageId: parsed.messageId,
814
- senderId: parsed.senderId,
815
- senderType: parsed.senderType,
816
- content: parsed.content,
817
- contentType: parsed.contentType,
818
- createTime: parsed.createTime
819
- });
820
- if (results.length >= limit) break;
821
- }
822
- results.reverse();
823
- return results;
824
- }
825
- function buildFeishuPostMessagePayload(params) {
826
- const { messageText } = params;
827
- return {
828
- content: JSON.stringify({ zh_cn: { content: [[{
829
- tag: "md",
830
- text: messageText
831
- }]] } }),
832
- msgType: "post"
833
- };
834
- }
835
- async function sendMessageFeishu(params) {
836
- const { cfg, to, text, replyToMessageId, replyInThread, mentions, accountId } = params;
837
- const { client, receiveId, receiveIdType } = resolveFeishuSendTarget({
838
- cfg,
839
- to,
840
- accountId
841
- });
842
- const tableMode = getFeishuRuntime().channel.text.resolveMarkdownTableMode({
843
- cfg,
844
- channel: "feishu"
845
- });
846
- let rawText = text ?? "";
847
- if (mentions && mentions.length > 0) rawText = buildMentionedMessage(mentions, rawText);
848
- const { content, msgType } = buildFeishuPostMessagePayload({ messageText: getFeishuRuntime().channel.text.convertMarkdownTables(rawText, tableMode) });
849
- return sendReplyOrFallbackDirect(client, {
850
- replyToMessageId,
851
- replyInThread,
852
- content,
853
- msgType,
854
- directParams: {
855
- receiveId,
856
- receiveIdType,
857
- content,
858
- msgType
859
- },
860
- directErrorPrefix: "Feishu send failed",
861
- replyErrorPrefix: "Feishu reply failed"
862
- });
863
- }
864
- async function sendCardFeishu(params) {
865
- const { cfg, to, card, replyToMessageId, replyInThread, accountId } = params;
866
- const { client, receiveId, receiveIdType } = resolveFeishuSendTarget({
867
- cfg,
868
- to,
869
- accountId
870
- });
871
- const content = JSON.stringify(card);
872
- return sendReplyOrFallbackDirect(client, {
873
- replyToMessageId,
874
- replyInThread,
875
- content,
876
- msgType: "interactive",
877
- directParams: {
878
- receiveId,
879
- receiveIdType,
880
- content,
881
- msgType: "interactive"
882
- },
883
- directErrorPrefix: "Feishu card send failed",
884
- replyErrorPrefix: "Feishu card reply failed"
885
- });
886
- }
887
- async function editMessageFeishu(params) {
888
- const { cfg, messageId, text, card, accountId } = params;
889
- const account = resolveFeishuAccount({
890
- cfg,
891
- accountId
892
- });
893
- if (!account.configured) throw new Error(`Feishu account "${account.accountId}" not configured`);
894
- if ((typeof text === "string" && text.trim().length > 0) === Boolean(card)) throw new Error("Feishu edit requires exactly one of text or card.");
895
- const client = createFeishuClient(account);
896
- if (card) {
897
- const content = JSON.stringify(card);
898
- const response = await client.im.message.patch({
899
- path: { message_id: messageId },
900
- data: { content }
901
- });
902
- if (response.code !== 0) throw new Error(`Feishu message edit failed: ${response.msg || `code ${response.code}`}`);
903
- return {
904
- messageId,
905
- contentType: "interactive"
906
- };
907
- }
908
- const tableMode = getFeishuRuntime().channel.text.resolveMarkdownTableMode({
909
- cfg,
910
- channel: "feishu"
911
- });
912
- const payload = buildFeishuPostMessagePayload({ messageText: getFeishuRuntime().channel.text.convertMarkdownTables(text, tableMode) });
913
- const response = await client.im.message.patch({
914
- path: { message_id: messageId },
915
- data: { content: payload.content }
916
- });
917
- if (response.code !== 0) throw new Error(`Feishu message edit failed: ${response.msg || `code ${response.code}`}`);
918
- return {
919
- messageId,
920
- contentType: "post"
921
- };
922
- }
923
- async function updateCardFeishu(params) {
924
- const { cfg, messageId, card, accountId } = params;
925
- const account = resolveFeishuAccount({
926
- cfg,
927
- accountId
928
- });
929
- if (!account.configured) throw new Error(`Feishu account "${account.accountId}" not configured`);
930
- const client = createFeishuClient(account);
931
- const content = JSON.stringify(card);
932
- const response = await client.im.message.patch({
933
- path: { message_id: messageId },
934
- data: { content }
935
- });
936
- if (response.code !== 0) throw new Error(`Feishu card update failed: ${response.msg || `code ${response.code}`}`);
937
- }
938
- /**
939
- * Build a Feishu interactive card with markdown content.
940
- * Cards render markdown properly (code blocks, tables, links, etc.)
941
- * Uses schema 2.0 format for proper markdown rendering.
942
- */
943
- function buildMarkdownCard(text) {
944
- return {
945
- schema: "2.0",
946
- config: { wide_screen_mode: true },
947
- body: { elements: [{
948
- tag: "markdown",
949
- content: text
950
- }] }
951
- };
952
- }
953
- function resolveFeishuCardTemplate(template) {
954
- const normalized = template?.trim().toLowerCase();
955
- if (!normalized || !FEISHU_CARD_TEMPLATES.has(normalized)) return;
956
- return normalized;
957
- }
958
- /**
959
- * Build a Feishu interactive card with optional header and note footer.
960
- * When header/note are omitted, behaves identically to buildMarkdownCard.
961
- */
962
- function buildStructuredCard(text, options) {
963
- const elements = [{
964
- tag: "markdown",
965
- content: text
966
- }];
967
- if (options?.note) {
968
- elements.push({ tag: "hr" });
969
- elements.push({
970
- tag: "markdown",
971
- content: `<font color='grey'>${options.note}</font>`
972
- });
973
- }
974
- const card = {
975
- schema: "2.0",
976
- config: { wide_screen_mode: true },
977
- body: { elements }
978
- };
979
- if (options?.header) card.header = {
980
- title: {
981
- tag: "plain_text",
982
- content: options.header.title
983
- },
984
- template: resolveFeishuCardTemplate(options.header.template) ?? "blue"
985
- };
986
- return card;
987
- }
988
- /**
989
- * Send a message as a structured card with optional header and note.
990
- */
991
- async function sendStructuredCardFeishu(params) {
992
- const { cfg, to, text, replyToMessageId, replyInThread, mentions, accountId, header, note } = params;
993
- let cardText = text;
994
- if (mentions && mentions.length > 0) cardText = buildMentionedCardContent(mentions, text);
995
- return sendCardFeishu({
996
- cfg,
997
- to,
998
- card: buildStructuredCard(cardText, {
999
- header,
1000
- note
1001
- }),
1002
- replyToMessageId,
1003
- replyInThread,
1004
- accountId
1005
- });
1006
- }
1007
- /**
1008
- * Send a message as a markdown card (interactive message).
1009
- * This renders markdown properly in Feishu (code blocks, tables, bold/italic, etc.)
1010
- */
1011
- async function sendMarkdownCardFeishu(params) {
1012
- const { cfg, to, text, replyToMessageId, replyInThread, mentions, accountId } = params;
1013
- let cardText = text;
1014
- if (mentions && mentions.length > 0) cardText = buildMentionedCardContent(mentions, text);
1015
- return sendCardFeishu({
1016
- cfg,
1017
- to,
1018
- card: buildMarkdownCard(cardText),
1019
- replyToMessageId,
1020
- replyInThread,
1021
- accountId
1022
- });
1023
- }
1024
- //#endregion
1025
- export { sendMediaFeishu as C, normalizeFeishuExternalKey as E, sendImageFeishu as S, uploadImageFeishu as T, formatMentionForCard as _, sendCardFeishu as a, downloadMessageResourceFeishu as b, sendStructuredCardFeishu as c, buildMentionedCardContent as d, buildMentionedMessage as f, formatMentionAllForText as g, formatMentionAllForCard as h, resolveFeishuCardTemplate as i, updateCardFeishu as l, extractMessageBody as m, getMessageFeishu as n, sendMarkdownCardFeishu as o, extractMentionTargets as p, listFeishuThreadMessages as r, sendMessageFeishu as s, editMessageFeishu as t, parsePostContent as u, formatMentionForText as v, uploadFileFeishu as w, sendFileFeishu as x, isMentionForwardRequest as y };