@spacebar_ai/moldclaw-core 2026.3.43 → 2026.3.44

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-SqdHz2ZP.js +114 -0
  3. package/dist/acp-cli-E6bcNqiE.js +2093 -0
  4. package/dist/actions.runtime-BU_XMuLk.js +119 -0
  5. package/dist/actions.runtime-CY5h8lqH.js +133 -0
  6. package/dist/agent-scope-lZlwP1At.js +208 -0
  7. package/dist/agents-C4SkadR1.js +853 -0
  8. package/dist/agents-RfwqGCzE.js +222 -0
  9. package/dist/agents.config-CX9CPNfP.js +17 -0
  10. package/dist/agents.config-DF9Zwn9n.js +121 -0
  11. package/dist/allow-list-3WSjz1zl.js +81 -0
  12. package/dist/allowlist-DNbDjFjw.js +142 -0
  13. package/dist/api-BEOpJ7dR.js +117 -0
  14. package/dist/audit-CpJz_eu6.js +787 -0
  15. package/dist/audit-CpfSjvyo.js +54 -0
  16. package/dist/audit-channel.collect.runtime-BeGotloZ.js +605 -0
  17. package/dist/audit-channel.runtime-BJDZ7ETt.js +121 -0
  18. package/dist/audit-extra.async-C2G0mqmk.js +813 -0
  19. package/dist/audit-membership-runtime-B1FqJsPV.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-Dnlsn23e.js +118 -0
  23. package/dist/auth-Ch3Rchm4.js +101 -0
  24. package/dist/auth-choice-CEFSlnLT.js +122 -0
  25. package/dist/auth-choice-CVCef-eU.js +268 -0
  26. package/dist/auth-choice-Cez-pXrg.js +507 -0
  27. package/dist/auth-choice-options-DO78mvPe.js +123 -0
  28. package/dist/auth-choice-prompt-CUkC7Mmb.js +36 -0
  29. package/dist/auth-choice-prompt-DCuQRiVl.js +115 -0
  30. package/dist/auth-choice.apply-helpers-BhbNIV8X.js +66 -0
  31. package/dist/auth-choice.plugin-providers.runtime-4BhqvEw_.js +119 -0
  32. package/dist/auth-profiles-smABVXzp.js +128040 -0
  33. package/dist/auth-profiles.runtime-Cr-ojtTc.js +116 -0
  34. package/dist/banner-CojBHPWr.js +342 -0
  35. package/dist/bluebubbles-BnLsj2Fy.d.ts +6 -0
  36. package/dist/bluebubbles-CVk7M3Bl.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-B26pkce0.js +214 -0
  52. package/dist/channel-BJHp0AQC.js +352 -0
  53. package/dist/channel-BKFOv51P.js +4681 -0
  54. package/dist/channel-BNgpOY8v.js +538 -0
  55. package/dist/channel-BcQAAo2P.js +226 -0
  56. package/dist/channel-BvNdnhbx.js +1598 -0
  57. package/dist/channel-C1Rda3Jd.js +306 -0
  58. package/dist/channel-C87DG-F7.js +803 -0
  59. package/dist/channel-CIip0kvZ.js +619 -0
  60. package/dist/channel-CTPxoT_E2.js +316 -0
  61. package/dist/channel-CklaCzUG.js +562 -0
  62. package/dist/channel-CoJnAdLs.js +920 -0
  63. package/dist/channel-D3tafL1_.js +949 -0
  64. package/dist/channel-DFMrP2uu.js +542 -0
  65. package/dist/channel-DMd5cJQe.js +397 -0
  66. package/dist/channel-Dm34kxAJ.js +207 -0
  67. package/dist/channel-DmwF9udn.js +1321 -0
  68. package/dist/channel-account-context-Bjur9nlh.js +103 -0
  69. package/dist/channel-bGnST659.js +943 -0
  70. package/dist/channel-hIgbkTZf.js +575 -0
  71. package/dist/channel-m_TGrDKo.js +497 -0
  72. package/dist/channel-options-DoUPBMa8.js +50 -0
  73. package/dist/channel-plugin-ids-TZIY4hFs.js +26 -0
  74. package/dist/channel-summary-qD54bOBO.js +111 -0
  75. package/dist/channel.runtime-B0H04Dkk.js +199 -0
  76. package/dist/channel.runtime-BU1f3NkV.js +418 -0
  77. package/dist/channel.runtime-Bj1sfLep.js +4011 -0
  78. package/dist/channel.runtime-BtPAAJc3.js +870 -0
  79. package/dist/channel.runtime-Bx-10m_j.js +171 -0
  80. package/dist/channel.runtime-CI_TBywQ.js +179 -0
  81. package/dist/channel.runtime-CSLj14-Z.js +182 -0
  82. package/dist/channel.runtime-D-lTSYAd.js +404 -0
  83. package/dist/channel.runtime-DJqIOSji.js +127 -0
  84. package/dist/channel.runtime-Ec8aQ9V2.js +241 -0
  85. package/dist/channel.runtime-ax5a1jBm.js +218 -0
  86. package/dist/channel.setup-B-ncdYLT.js +9 -0
  87. package/dist/channel.setup-BY4bh5dm.js +9 -0
  88. package/dist/channel.setup-BovsdMnL.js +57 -0
  89. package/dist/channel.setup-CXzXA25h.js +6 -0
  90. package/dist/channel.setup-DcZUEufN.js +8 -0
  91. package/dist/channel.setup-E6zceRsE.js +8 -0
  92. package/dist/channel.setup-Pc7nGbdX.js +11 -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-CPtE5ND6.js +404 -0
  102. package/dist/channels-Cj8ZolHI.js +1118 -0
  103. package/dist/channels-cli-D2sKrntt.js +291 -0
  104. package/dist/channels-status-issues-CzIHODg2.js +16 -0
  105. package/dist/clawbot-cli-BcwEDmUn.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-BvGVPKnD.js +154 -0
  109. package/dist/command-registry-CADQzTAg.js +14 -0
  110. package/dist/command-registry-ktiJNAJd.js +242 -0
  111. package/dist/command-secret-gateway-CXp10RTM.js +111 -0
  112. package/dist/compact.runtime-DyKL-Iar.js +116 -0
  113. package/dist/completion-cli-Bz4STrpt.js +17 -0
  114. package/dist/completion-cli-pVda2OFb.js +445 -0
  115. package/dist/config-BbvDRSYp.js +31 -0
  116. package/dist/config-CwBv71QC.js +44 -0
  117. package/dist/config-cli-Y0uXHbOw.js +678 -0
  118. package/dist/config-guard-BpW5g7JE.js +118 -0
  119. package/dist/config-validation-B-vLIsbo.js +262 -0
  120. package/dist/config-value-DT3-5958.js +132 -0
  121. package/dist/configure-B9U-jCqP.js +1100 -0
  122. package/dist/configure-BJ3Wrs5b.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-DTDgfoMh.js +639 -0
  128. package/dist/daemon-cli-C-dkAXR1.js +339 -0
  129. package/dist/daemon-install-Oy0Q5pMF.js +180 -0
  130. package/dist/deliver-DNGnDqF9.js +111 -0
  131. package/dist/deliver-runtime-CCNZIhET.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-DTSY3Ktr.js +311 -0
  137. package/dist/directory-config-helpers-DpFcAbmo.d.ts +38 -0
  138. package/dist/directory.static-CBRAUwUW.js +44 -0
  139. package/dist/discord-CrgxhEWw.js +114 -0
  140. package/dist/discovery-DrG7wmAR.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-D3GeVcFP.js +90 -0
  145. package/dist/doctor-config-flow-B1cMjr8h.js +112 -0
  146. package/dist/doctor-config-flow-BUe7JpV3.js +2437 -0
  147. package/dist/enable-Bc8bCuVe.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-0c-8h93_.js +26437 -0
  336. package/dist/gateway-install-token-1PwJvrBY.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-BQr4xgoZ.js +307 -0
  342. package/dist/googlechat-BvwsCVKl.d.ts +12 -0
  343. package/dist/group-access-DpiQnd-G.d.ts +61 -0
  344. package/dist/health-6yZQGADY.js +113 -0
  345. package/dist/health-C9DYGyRe.js +570 -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-BegKzHZT.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-Bgok9kfl.js +31 -0
  355. package/dist/imessage-VIHePprL.js +115 -0
  356. package/dist/inbound-reply-dispatch-B53GAGWq.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-oz1pjfHH.js +574 -0
  360. package/dist/installs-CUFm5V8a.js +532 -0
  361. package/dist/io-BaBxjB1v.js +9739 -0
  362. package/dist/io-CgHb1Jld.js +29 -0
  363. package/dist/irc-CaRKzGvW.js +672 -0
  364. package/dist/library-C5SNBCMb.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-fePrrQOD.js +530 -0
  372. package/dist/llm-slug-generator-hKae3XDA.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-C1YWh4nE.js +233 -0
  378. package/dist/login-qr-WFluMDMb.js +112 -0
  379. package/dist/logs-cli-CNzOvZ2d.js +256 -0
  380. package/dist/manager-runtime-DgMhLTkR.js +111 -0
  381. package/dist/manager.runtime-hUWgpPt2.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-CCFxHfxa.js +1269 -0
  385. package/dist/matrix-DWs_qIkJ.js +1495 -0
  386. package/dist/mcp-cli-Ci2jvv3s.js +87 -0
  387. package/dist/media-understanding.runtime-Cdr6iTW6.js +116 -0
  388. package/dist/memory-cli-LZbyF0Iu.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-CTR5mo4v.js +112 -0
  394. package/dist/model-picker-DG4z_dBs.js +390 -0
  395. package/dist/model-picker.runtime-DMQ9Pj9_.js +125 -0
  396. package/dist/model-selection-bBBxfXdb.js +653 -0
  397. package/dist/model-suppression.runtime-BVG75tZ7.js +116 -0
  398. package/dist/models-BjkVLfgw.js +2514 -0
  399. package/dist/models-ZO01Q4cx.js +118 -0
  400. package/dist/models-cli-DemdF-bm.js +309 -0
  401. package/dist/models-config-B2Jja8ua.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-BP4idxJD.js +782 -0
  405. package/dist/monitor-B_eP8Eim.js +772 -0
  406. package/dist/monitor-CRHYNl5J.js +3468 -0
  407. package/dist/monitor-Ci1Xg4g3.js +113 -0
  408. package/dist/monitor-DEodDl3z.js +6823 -0
  409. package/dist/monitor-DJlNKuMz.js +115 -0
  410. package/dist/monitor-DvFwDS9w.js +3076 -0
  411. package/dist/monitor-shared--cEjSf8s.js +444 -0
  412. package/dist/msteams-CV2a8uE8.js +852 -0
  413. package/dist/node-cli-Of2g7DSd.js +2503 -0
  414. package/dist/node-resolve-BYC2FbO2.js +835 -0
  415. package/dist/nodes-cli-CPHM6Upj.js +1380 -0
  416. package/dist/nostr-BFKRoOlz.d.ts +7 -0
  417. package/dist/nostr-lHpcBzz4.js +8744 -0
  418. package/dist/npm-resolution-kqHN85wB.js +60 -0
  419. package/dist/oauth-env-CLG8KOrz.js +10 -0
  420. package/dist/onboard-BON0C360.js +48 -0
  421. package/dist/onboard-CRkIBgOI.js +589 -0
  422. package/dist/onboard-DsKI17iq.js +25 -0
  423. package/dist/onboard-channels-BY3IbBBf.js +1241 -0
  424. package/dist/onboard-channels-CLKdRxvW.js +205 -0
  425. package/dist/onboard-custom-BjPrMo_R.js +571 -0
  426. package/dist/onboard-custom-DqcPiZBN.js +114 -0
  427. package/dist/onboard-helpers-BkrOY5OE.js +113 -0
  428. package/dist/onboard-helpers-DiSRTpZC.js +335 -0
  429. package/dist/onboard-hooks-pzEPZAvl.js +72 -0
  430. package/dist/onboard-remote-ChyLC6Dk.js +181 -0
  431. package/dist/onboard-remote-DHmK9ntl.js +117 -0
  432. package/dist/onboard-search-BgA3jEMW.js +302 -0
  433. package/dist/onboard-skills-BMo_NvnW.js +133 -0
  434. package/dist/onboard-skills-Bba-Z2p8.js +117 -0
  435. package/dist/outbound-media-BHD4aJEX.d.ts +11 -0
  436. package/dist/outbound-media-DSno0N82.js +11 -0
  437. package/dist/pairing-access-CzHpaM0R.d.ts +21 -0
  438. package/dist/pairing-cli-CmklqK0q.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-BrK7tcaO.js +111 -0
  442. package/dist/pi-tools.before-tool-call.runtime-C5yLUogH.js +381 -0
  443. package/dist/plugin-install-C4AWJIFP.js +117 -0
  444. package/dist/plugin-install-CB3J1hfV.js +184 -0
  445. package/dist/plugin-install-plan-7itZiegi.js +49 -0
  446. package/dist/plugin-registry-DX_GFoiz.js +113 -0
  447. package/dist/plugin-registry-e3cxTtvb.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-DF5FaTO0.js +111 -0
  522. package/dist/plugins-cli-CvTJemqC.js +917 -0
  523. package/dist/policy-CNXISK_a.js +143 -0
  524. package/dist/preflight-audio.runtime-RP000oxo.js +116 -0
  525. package/dist/probe-BkM5pykD.js +21 -0
  526. package/dist/probe-DKbRTJv5.js +1793 -0
  527. package/dist/probe-DkrfRsjU.js +47 -0
  528. package/dist/probe-DpcJ0WeP.js +129 -0
  529. package/dist/probe-auth-BcNjX8hy.js +40 -0
  530. package/dist/probe-auth-DhuAb8ls.js +48 -0
  531. package/dist/probe-wciBj-aL.js +6329 -0
  532. package/dist/program-C8-p0mW5.js +253 -0
  533. package/dist/prompt-select-styled-DH0pVoc0.js +2673 -0
  534. package/dist/provider-api-key-auth.runtime-CAFeIQ1u.js +121 -0
  535. package/dist/provider-auth-choice-CB_HzdTl.js +126 -0
  536. package/dist/provider-auth-choice-helpers-hzDkh3f1.js +48 -0
  537. package/dist/provider-auth-choice-preference-BHCXvNSE.js +189 -0
  538. package/dist/provider-auth-choice.runtime-Dx4ms2C5.js +123 -0
  539. package/dist/provider-auth-choices-0KaDNPBQ.js +57 -0
  540. package/dist/provider-auth-guidance-BaAUiNr_.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-4xwmsl5L.js +111 -0
  549. package/dist/provider-self-hosted-setup-BHd24EDG.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-C11Q7UwS.js +111 -0
  553. package/dist/provider-usage-kxemdMp2.js +633 -0
  554. package/dist/provider-wizard-CanJoxNC.js +152 -0
  555. package/dist/push-apns-Dsajnm8C.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-Bu2jqTPY.js +113 -0
  559. package/dist/qr-cli-Bu9Z-X48.js +369 -0
  560. package/dist/reactions-Cpfum4iU.js +281 -0
  561. package/dist/read-only-account-inspect.discord.runtime-BK0LaMgC.js +116 -0
  562. package/dist/read-only-account-inspect.slack.runtime-DgKiC5wT.js +116 -0
  563. package/dist/read-only-account-inspect.telegram.runtime-mxfgFVOU.js +116 -0
  564. package/dist/redact-snapshot-DD8A4tdd.js +2663 -0
  565. package/dist/register.agent-DU4FtrU2.js +439 -0
  566. package/dist/register.backup-8nOYtJqg.js +625 -0
  567. package/dist/register.configure-DmtecqIH.js +252 -0
  568. package/dist/register.maintenance-Dir3ulKP.js +574 -0
  569. package/dist/register.message-Cfl-f3Ju.js +709 -0
  570. package/dist/register.onboard-Bv7WVzEi.js +192 -0
  571. package/dist/register.setup-BIyeI8RY.js +212 -0
  572. package/dist/register.status-health-sessions-C69WQcF4.js +498 -0
  573. package/dist/register.subclis-B_4KCgTd.js +315 -0
  574. package/dist/register.subclis-BeXsmgBL.js +13 -0
  575. package/dist/replies-DdcFUmki.js +110 -0
  576. package/dist/resolve-channels-DRZqPV5o.js +226 -0
  577. package/dist/resolve-channels-DxW1kqxA.js +262 -0
  578. package/dist/resolve-route-DdX-HBVt.js +538 -0
  579. package/dist/resolve-users-rgCQvkLs.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-D9ci5pn7.js +424 -0
  584. package/dist/runtime-Bitmi8Er.d.ts +26 -0
  585. package/dist/runtime-discord-ops.runtime-T4sf7aRB.js +9078 -0
  586. package/dist/runtime-slack-ops.runtime-BQpP48mC.js +4556 -0
  587. package/dist/runtime-telegram-ops.runtime-cVO5dqOp.js +133 -0
  588. package/dist/runtime-whatsapp-login.runtime-DtNx0dSY.js +114 -0
  589. package/dist/runtime-whatsapp-outbound.runtime-Bw47QbFK.js +117 -0
  590. package/dist/sandbox-cli-DsFwjbjC.js +535 -0
  591. package/dist/search-manager-BRAK8fEe.js +16 -0
  592. package/dist/search-manager-BS5Db0A6.js +386 -0
  593. package/dist/secrets-cli-D3J46TJp.js +2070 -0
  594. package/dist/security-cli-B866M9cB.js +575 -0
  595. package/dist/send-B1pX9_Oc.js +283 -0
  596. package/dist/send-B2RrLg83.js +100 -0
  597. package/dist/send-DFnV__Aq.js +1025 -0
  598. package/dist/send-DZIH6CJt.js +629 -0
  599. package/dist/send-sl9WnKbW.js +631 -0
  600. package/dist/server-node-events-BT6egg20.js +506 -0
  601. package/dist/server-zI_K-D05.js +107 -0
  602. package/dist/sessions-C8kiAcoJ.js +112 -0
  603. package/dist/sessions-DLBpp52_.js +218 -0
  604. package/dist/setup-C7eOzMiC.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-BnR486P-.js +143 -0
  609. package/dist/setup-core-CIswIiu5.js +166 -0
  610. package/dist/setup-core-CcbcrXXg.js +47 -0
  611. package/dist/setup-core-nZSw5BSv.js +205 -0
  612. package/dist/setup-surface-C5iSpT4M.js +490 -0
  613. package/dist/setup-wizard-helpers-r0J6l8ST.d.ts +203 -0
  614. package/dist/setup.finalize-adiRfo0U.js +522 -0
  615. package/dist/setup.gateway-config-BwFWKDfT.js +343 -0
  616. package/dist/shared-12TimyeF.js +182 -0
  617. package/dist/shared-9EWO34-k.js +298 -0
  618. package/dist/shared-B4vUbaRR.js +75 -0
  619. package/dist/shared-bNWpW3Dd.js +96 -0
  620. package/dist/shared-lU1y5dvS.js +102 -0
  621. package/dist/signal-DBlETRu9.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--rnorIoJ.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-C4T53Nc-.js +114 -0
  629. package/dist/slash-commands.runtime-B7fsD8Be.js +128 -0
  630. package/dist/slash-dispatch.runtime-t0PAX4vQ.js +141 -0
  631. package/dist/slash-skill-commands.runtime-DIhPnEfR.js +116 -0
  632. package/dist/src-DrDirlvw.js +1701 -0
  633. package/dist/status-Bld14WSA.js +131 -0
  634. package/dist/status-CgeO4RuH.js +43 -0
  635. package/dist/status-HlvixAOq.js +606 -0
  636. package/dist/status-Rom_Lf3c.js +1599 -0
  637. package/dist/status-TwbMH6Am.js +126 -0
  638. package/dist/status-json-DMW7cmuK.js +288 -0
  639. package/dist/status.link-channel-V4LkB6Gq.js +143 -0
  640. package/dist/status.scan.deps.runtime-BE3X-dcP.js +126 -0
  641. package/dist/status.scan.runtime-BxVY4mty.js +119 -0
  642. package/dist/status.summary-CzLM0vVr.js +592 -0
  643. package/dist/status.summary.runtime-BSBnHZ1Q.js +118 -0
  644. package/dist/status.update-BxblMS7P.js +77 -0
  645. package/dist/subagent-orphan-recovery-BpRPryEj.js +307 -0
  646. package/dist/subagent-registry-runtime-DYYU5p3X.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-3nwk-Nj0.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-RtKXoEsF.js +114 -0
  657. package/dist/text-chunking-BD5mQe2R.js +84 -0
  658. package/dist/text-chunking-DDUU_vAF.d.ts +79 -0
  659. package/dist/tlon-z-kYmJE-.js +433 -0
  660. package/dist/tui-cli-CzSK08Rh.js +137 -0
  661. package/dist/tui-wV7R1Tlc.js +3834 -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-BWVHreeR.js +31 -0
  666. package/dist/update-D1Wgh1Tj.js +1036 -0
  667. package/dist/update-cli-CZh99uyY.js +1503 -0
  668. package/dist/update-offset-store-D5xTdUr0.js +112 -0
  669. package/dist/update-runner-GbKfoCHs.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-CMczmL90.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-BSmFtesN.js +181 -0
  676. package/dist/webhook-targets-CjxuEE9C.d.ts +106 -0
  677. package/dist/webhooks-cli-Wl9y6AWW.js +350 -0
  678. package/dist/whatsapp-VzRW8MdR.js +114 -0
  679. package/dist/whatsapp-actions-Cg1Wxv8W.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-Db7s2boL.js +415 -0
  686. package/dist/zalouser-Jh5YTJX3.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
@@ -0,0 +1,1321 @@
1
+ import { Ah as createScopedPairingAccess, FT as buildOpenGroupPolicyWarning, GC as buildBaseChannelStatusSummary, IT as collectAllowlistProviderGroupPolicyWarnings, Oh as issuePairingChallenge, Pd as resolveEffectiveAllowFromLists, UT as deleteAccountFromConfigSection, Ug as logInboundDrop, Uw as resolveControlCommandGate, WC as buildBaseAccountStatusSnapshot, WT as setAccountEnabledInConfigSection, dT as createScopedAccountConfigAccessors, kT as buildAccountScopedDmSecurityPolicy, kd as readStoreAllowFromForDmPolicy, tC as isDangerousNameMatchingEnabled, ww as PAIRING_APPROVED_MESSAGE } from "./auth-profiles-smABVXzp.js";
2
+ import { t as DEFAULT_ACCOUNT_ID } from "./account-id-BuyZMNja.js";
3
+ import { X as ToolPolicySchema } from "./io-BaBxjB1v.js";
4
+ import { r as getChatChannelMeta } from "./registry-C1pRrsQl.js";
5
+ import { F as requireOpenAllowFrom, a as DmPolicySchema, c as GroupPolicySchema, m as MarkdownConfigSchema, y as ReplyRuntimeConfigSchemaShape } from "./zod-schema.core-DvwgNmpd.js";
6
+ import { c as resolveAllowlistProviderRuntimeGroupPolicy, f as warnMissingProviderGroupPolicyFallbackOnce, l as resolveDefaultGroupPolicy, o as GROUP_POLICY_BLOCKED_LABEL } from "./group-access-UAqUyJod.js";
7
+ import { r as buildChannelConfigSchema } from "./config-schema-BNU4GQh_.js";
8
+ import { n as formatNormalizedAllowFromEntries } from "./allow-from-Brz0jyla.js";
9
+ import { t as createPluginRuntimeStore } from "./runtime-store-DTqHvPYo.js";
10
+ import { t as createAccountStatusSink } from "./channel-lifecycle-DA5pCpey.js";
11
+ import { i as resolveOutboundMediaUrls, n as formatTextWithAttachmentLinks } from "./reply-payload-BD0_s60z.js";
12
+ import { t as dispatchInboundReplyWithBase } from "./inbound-reply-dispatch-B53GAGWq.js";
13
+ import { a as normalizeIrcAllowEntry, c as resolveIrcAllowlistMatch, d as listIrcAccountIds, f as resolveDefaultIrcAccountId, i as looksLikeIrcTargetId, l as hasIrcControlChars, n as ircSetupAdapter, o as normalizeIrcAllowlist, p as resolveIrcAccount, r as isChannelTarget, s as normalizeIrcMessagingTarget, t as ircSetupWizard, u as stripIrcControlChars } from "./irc-CaRKzGvW.js";
14
+ import { n as runStoppablePassiveMonitor, t as resolveLoggerBackedRuntime } from "./runtime-CS-itw_w.js";
15
+ import { t as requireChannelOpenAllowFrom } from "./config-schema-helpers-D4ZGZ7dA.js";
16
+ import { randomUUID } from "node:crypto";
17
+ import { z } from "zod";
18
+ import net from "node:net";
19
+ import tls from "node:tls";
20
+ //#region extensions/irc/src/config-schema.ts
21
+ const IrcGroupSchema = z.object({
22
+ requireMention: z.boolean().optional(),
23
+ tools: ToolPolicySchema,
24
+ toolsBySender: z.record(z.string(), ToolPolicySchema).optional(),
25
+ skills: z.array(z.string()).optional(),
26
+ enabled: z.boolean().optional(),
27
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
28
+ systemPrompt: z.string().optional()
29
+ }).strict();
30
+ const IrcNickServSchema = z.object({
31
+ enabled: z.boolean().optional(),
32
+ service: z.string().optional(),
33
+ password: z.string().optional(),
34
+ passwordFile: z.string().optional(),
35
+ register: z.boolean().optional(),
36
+ registerEmail: z.string().optional()
37
+ }).strict().superRefine((value, ctx) => {
38
+ if (value.register && !value.registerEmail?.trim()) ctx.addIssue({
39
+ code: z.ZodIssueCode.custom,
40
+ path: ["registerEmail"],
41
+ message: "channels.irc.nickserv.register=true requires channels.irc.nickserv.registerEmail"
42
+ });
43
+ });
44
+ const IrcAccountSchemaBase = z.object({
45
+ name: z.string().optional(),
46
+ enabled: z.boolean().optional(),
47
+ dangerouslyAllowNameMatching: z.boolean().optional(),
48
+ host: z.string().optional(),
49
+ port: z.number().int().min(1).max(65535).optional(),
50
+ tls: z.boolean().optional(),
51
+ nick: z.string().optional(),
52
+ username: z.string().optional(),
53
+ realname: z.string().optional(),
54
+ password: z.string().optional(),
55
+ passwordFile: z.string().optional(),
56
+ nickserv: IrcNickServSchema.optional(),
57
+ dmPolicy: DmPolicySchema.optional().default("pairing"),
58
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
59
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
60
+ groupAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
61
+ groups: z.record(z.string(), IrcGroupSchema.optional()).optional(),
62
+ channels: z.array(z.string()).optional(),
63
+ mentionPatterns: z.array(z.string()).optional(),
64
+ markdown: MarkdownConfigSchema,
65
+ ...ReplyRuntimeConfigSchemaShape
66
+ }).strict();
67
+ const IrcAccountSchema = IrcAccountSchemaBase.superRefine((value, ctx) => {
68
+ requireChannelOpenAllowFrom({
69
+ channel: "irc",
70
+ policy: value.dmPolicy,
71
+ allowFrom: value.allowFrom,
72
+ ctx,
73
+ requireOpenAllowFrom
74
+ });
75
+ });
76
+ const IrcConfigSchema = IrcAccountSchemaBase.extend({
77
+ accounts: z.record(z.string(), IrcAccountSchema.optional()).optional(),
78
+ defaultAccount: z.string().optional()
79
+ }).superRefine((value, ctx) => {
80
+ requireChannelOpenAllowFrom({
81
+ channel: "irc",
82
+ policy: value.dmPolicy,
83
+ allowFrom: value.allowFrom,
84
+ ctx,
85
+ requireOpenAllowFrom
86
+ });
87
+ });
88
+ //#endregion
89
+ //#region extensions/irc/src/protocol.ts
90
+ const IRC_TARGET_PATTERN = /^[^\s:]+$/u;
91
+ function parseIrcLine(line) {
92
+ const raw = line.replace(/[\r\n]+/g, "").trim();
93
+ if (!raw) return null;
94
+ let cursor = raw;
95
+ let prefix;
96
+ if (cursor.startsWith(":")) {
97
+ const idx = cursor.indexOf(" ");
98
+ if (idx <= 1) return null;
99
+ prefix = cursor.slice(1, idx);
100
+ cursor = cursor.slice(idx + 1).trimStart();
101
+ }
102
+ if (!cursor) return null;
103
+ const firstSpace = cursor.indexOf(" ");
104
+ const command = (firstSpace === -1 ? cursor : cursor.slice(0, firstSpace)).trim();
105
+ if (!command) return null;
106
+ cursor = firstSpace === -1 ? "" : cursor.slice(firstSpace + 1);
107
+ const params = [];
108
+ let trailing;
109
+ while (cursor.length > 0) {
110
+ cursor = cursor.trimStart();
111
+ if (!cursor) break;
112
+ if (cursor.startsWith(":")) {
113
+ trailing = cursor.slice(1);
114
+ break;
115
+ }
116
+ const spaceIdx = cursor.indexOf(" ");
117
+ if (spaceIdx === -1) {
118
+ params.push(cursor);
119
+ break;
120
+ }
121
+ params.push(cursor.slice(0, spaceIdx));
122
+ cursor = cursor.slice(spaceIdx + 1);
123
+ }
124
+ return {
125
+ raw,
126
+ prefix,
127
+ command: command.toUpperCase(),
128
+ params,
129
+ trailing
130
+ };
131
+ }
132
+ function parseIrcPrefix(prefix) {
133
+ if (!prefix) return {};
134
+ const nickPart = prefix.match(/^([^!@]+)!([^@]+)@(.+)$/);
135
+ if (nickPart) return {
136
+ nick: nickPart[1],
137
+ user: nickPart[2],
138
+ host: nickPart[3]
139
+ };
140
+ const nickHostPart = prefix.match(/^([^@]+)@(.+)$/);
141
+ if (nickHostPart) return {
142
+ nick: nickHostPart[1],
143
+ host: nickHostPart[2]
144
+ };
145
+ if (prefix.includes("!")) {
146
+ const [nick, user] = prefix.split("!", 2);
147
+ return {
148
+ nick,
149
+ user
150
+ };
151
+ }
152
+ if (prefix.includes(".")) return { server: prefix };
153
+ return { nick: prefix };
154
+ }
155
+ function decodeLiteralEscapes(input) {
156
+ return input.replace(/\\r/g, "\r").replace(/\\n/g, "\n").replace(/\\t/g, " ").replace(/\\0/g, "\0").replace(/\\x([0-9a-fA-F]{2})/g, (_, hex) => String.fromCharCode(Number.parseInt(hex, 16))).replace(/\\u([0-9a-fA-F]{4})/g, (_, hex) => String.fromCharCode(Number.parseInt(hex, 16)));
157
+ }
158
+ function sanitizeIrcOutboundText(text) {
159
+ return stripIrcControlChars(decodeLiteralEscapes(text).replace(/\r?\n/g, " ")).trim();
160
+ }
161
+ function sanitizeIrcTarget(raw) {
162
+ const decoded = decodeLiteralEscapes(raw);
163
+ if (!decoded) throw new Error("IRC target is required");
164
+ if (decoded !== decoded.trim()) throw new Error(`Invalid IRC target: ${raw}`);
165
+ if (hasIrcControlChars(decoded)) throw new Error(`Invalid IRC target: ${raw}`);
166
+ if (!IRC_TARGET_PATTERN.test(decoded)) throw new Error(`Invalid IRC target: ${raw}`);
167
+ return decoded;
168
+ }
169
+ function makeIrcMessageId() {
170
+ return randomUUID();
171
+ }
172
+ //#endregion
173
+ //#region extensions/irc/src/client.ts
174
+ const IRC_ERROR_CODES = new Set([
175
+ "432",
176
+ "464",
177
+ "465"
178
+ ]);
179
+ const IRC_NICK_COLLISION_CODES = new Set(["433", "436"]);
180
+ function toError(err) {
181
+ if (err instanceof Error) return err;
182
+ return new Error(typeof err === "string" ? err : JSON.stringify(err));
183
+ }
184
+ function withTimeout(promise, timeoutMs, label) {
185
+ return new Promise((resolve, reject) => {
186
+ const timer = setTimeout(() => reject(/* @__PURE__ */ new Error(`${label} timed out after ${timeoutMs}ms`)), timeoutMs);
187
+ promise.then((result) => {
188
+ clearTimeout(timer);
189
+ resolve(result);
190
+ }).catch((error) => {
191
+ clearTimeout(timer);
192
+ reject(error);
193
+ });
194
+ });
195
+ }
196
+ function buildFallbackNick(nick) {
197
+ const base = nick.replace(/\s+/g, "").replace(/[^A-Za-z0-9_\-\[\]\\`^{}|]/g, "") || "moldclaw";
198
+ const suffix = "_";
199
+ const maxNickLen = 30;
200
+ if (base.length >= maxNickLen) return `${base.slice(0, maxNickLen - 1)}${suffix}`;
201
+ return `${base}${suffix}`;
202
+ }
203
+ function buildIrcNickServCommands(options) {
204
+ if (!options || options.enabled === false) return [];
205
+ const password = sanitizeIrcOutboundText(options.password ?? "");
206
+ if (!password) return [];
207
+ const service = sanitizeIrcTarget(options.service?.trim() || "NickServ");
208
+ const commands = [`PRIVMSG ${service} :IDENTIFY ${password}`];
209
+ if (options.register) {
210
+ const registerEmail = sanitizeIrcOutboundText(options.registerEmail ?? "");
211
+ if (!registerEmail) throw new Error("IRC NickServ register requires registerEmail");
212
+ commands.push(`PRIVMSG ${service} :REGISTER ${password} ${registerEmail}`);
213
+ }
214
+ return commands;
215
+ }
216
+ async function connectIrcClient(options) {
217
+ const timeoutMs = options.connectTimeoutMs != null ? options.connectTimeoutMs : 15e3;
218
+ const messageChunkMaxChars = options.messageChunkMaxChars != null ? options.messageChunkMaxChars : 350;
219
+ if (!options.host.trim()) throw new Error("IRC host is required");
220
+ if (!options.nick.trim()) throw new Error("IRC nick is required");
221
+ const desiredNick = options.nick.trim();
222
+ let currentNick = desiredNick;
223
+ let ready = false;
224
+ let closed = false;
225
+ let nickServRecoverAttempted = false;
226
+ let fallbackNickAttempted = false;
227
+ const socket = options.tls ? tls.connect({
228
+ host: options.host,
229
+ port: options.port,
230
+ servername: options.host
231
+ }) : net.connect({
232
+ host: options.host,
233
+ port: options.port
234
+ });
235
+ socket.setEncoding("utf8");
236
+ let resolveReady = null;
237
+ let rejectReady = null;
238
+ const readyPromise = new Promise((resolve, reject) => {
239
+ resolveReady = resolve;
240
+ rejectReady = reject;
241
+ });
242
+ const fail = (err) => {
243
+ const error = toError(err);
244
+ if (options.onError) options.onError(error);
245
+ if (!ready && rejectReady) {
246
+ rejectReady(error);
247
+ rejectReady = null;
248
+ resolveReady = null;
249
+ }
250
+ };
251
+ const sendRaw = (line) => {
252
+ const cleaned = line.replace(/[\r\n]+/g, "").trim();
253
+ if (!cleaned) throw new Error("IRC command cannot be empty");
254
+ socket.write(`${cleaned}\r\n`);
255
+ };
256
+ const tryRecoverNickCollision = () => {
257
+ const nickServEnabled = options.nickserv?.enabled !== false;
258
+ const nickservPassword = sanitizeIrcOutboundText(options.nickserv?.password ?? "");
259
+ if (nickServEnabled && !nickServRecoverAttempted && nickservPassword) {
260
+ nickServRecoverAttempted = true;
261
+ try {
262
+ sendRaw(`PRIVMSG ${sanitizeIrcTarget(options.nickserv?.service?.trim() || "NickServ")} :GHOST ${desiredNick} ${nickservPassword}`);
263
+ sendRaw(`NICK ${desiredNick}`);
264
+ return true;
265
+ } catch (err) {
266
+ fail(err);
267
+ }
268
+ }
269
+ if (!fallbackNickAttempted) {
270
+ fallbackNickAttempted = true;
271
+ const fallbackNick = buildFallbackNick(desiredNick);
272
+ if (fallbackNick.toLowerCase() !== currentNick.toLowerCase()) try {
273
+ sendRaw(`NICK ${fallbackNick}`);
274
+ currentNick = fallbackNick;
275
+ return true;
276
+ } catch (err) {
277
+ fail(err);
278
+ }
279
+ }
280
+ return false;
281
+ };
282
+ const join = (channel) => {
283
+ const target = sanitizeIrcTarget(channel);
284
+ if (!target.startsWith("#") && !target.startsWith("&")) throw new Error(`IRC JOIN target must be a channel: ${channel}`);
285
+ sendRaw(`JOIN ${target}`);
286
+ };
287
+ const sendPrivmsg = (target, text) => {
288
+ const normalizedTarget = sanitizeIrcTarget(target);
289
+ const cleaned = sanitizeIrcOutboundText(text);
290
+ if (!cleaned) return;
291
+ let remaining = cleaned;
292
+ while (remaining.length > 0) {
293
+ let chunk = remaining;
294
+ if (chunk.length > messageChunkMaxChars) {
295
+ let splitAt = chunk.lastIndexOf(" ", messageChunkMaxChars);
296
+ if (splitAt < Math.floor(messageChunkMaxChars / 2)) splitAt = messageChunkMaxChars;
297
+ chunk = chunk.slice(0, splitAt).trim();
298
+ }
299
+ if (!chunk) break;
300
+ sendRaw(`PRIVMSG ${normalizedTarget} :${chunk}`);
301
+ remaining = remaining.slice(chunk.length).trimStart();
302
+ }
303
+ };
304
+ const quit = (reason) => {
305
+ if (closed) return;
306
+ closed = true;
307
+ const safeReason = sanitizeIrcOutboundText(reason != null ? reason : "bye");
308
+ try {
309
+ if (safeReason) sendRaw(`QUIT :${safeReason}`);
310
+ else sendRaw("QUIT");
311
+ } catch {}
312
+ socket.end();
313
+ };
314
+ const close = () => {
315
+ if (closed) return;
316
+ closed = true;
317
+ socket.destroy();
318
+ };
319
+ let buffer = "";
320
+ socket.on("data", (chunk) => {
321
+ buffer += chunk;
322
+ let idx = buffer.indexOf("\n");
323
+ while (idx !== -1) {
324
+ const rawLine = buffer.slice(0, idx).replace(/\r$/, "");
325
+ buffer = buffer.slice(idx + 1);
326
+ idx = buffer.indexOf("\n");
327
+ if (!rawLine) continue;
328
+ if (options.onLine) options.onLine(rawLine);
329
+ const line = parseIrcLine(rawLine);
330
+ if (!line) continue;
331
+ if (line.command === "PING") {
332
+ sendRaw(`PONG :${line.trailing != null ? line.trailing : line.params[0] != null ? line.params[0] : ""}`);
333
+ continue;
334
+ }
335
+ if (line.command === "NICK") {
336
+ const prefix = parseIrcPrefix(line.prefix);
337
+ if (prefix.nick && prefix.nick.toLowerCase() === currentNick.toLowerCase()) {
338
+ const next = line.trailing != null ? line.trailing : line.params[0] != null ? line.params[0] : currentNick;
339
+ currentNick = String(next).trim();
340
+ }
341
+ continue;
342
+ }
343
+ if (!ready && IRC_NICK_COLLISION_CODES.has(line.command)) {
344
+ if (tryRecoverNickCollision()) continue;
345
+ const detail = line.trailing != null ? line.trailing : line.params.join(" ") || "nickname in use";
346
+ fail(/* @__PURE__ */ new Error(`IRC login failed (${line.command}): ${detail}`));
347
+ close();
348
+ return;
349
+ }
350
+ if (!ready && IRC_ERROR_CODES.has(line.command)) {
351
+ const detail = line.trailing != null ? line.trailing : line.params.join(" ") || "login rejected";
352
+ fail(/* @__PURE__ */ new Error(`IRC login failed (${line.command}): ${detail}`));
353
+ close();
354
+ return;
355
+ }
356
+ if (line.command === "001") {
357
+ ready = true;
358
+ const nickParam = line.params[0];
359
+ if (nickParam && nickParam.trim()) currentNick = nickParam.trim();
360
+ try {
361
+ const nickServCommands = buildIrcNickServCommands(options.nickserv);
362
+ for (const command of nickServCommands) sendRaw(command);
363
+ } catch (err) {
364
+ fail(err);
365
+ }
366
+ for (const channel of options.channels || []) {
367
+ const trimmed = channel.trim();
368
+ if (!trimmed) continue;
369
+ try {
370
+ join(trimmed);
371
+ } catch (err) {
372
+ fail(err);
373
+ }
374
+ }
375
+ if (resolveReady) resolveReady();
376
+ resolveReady = null;
377
+ rejectReady = null;
378
+ continue;
379
+ }
380
+ if (line.command === "NOTICE") {
381
+ if (options.onNotice) options.onNotice(line.trailing != null ? line.trailing : "", line.params[0]);
382
+ continue;
383
+ }
384
+ if (line.command === "PRIVMSG") {
385
+ const targetParam = line.params[0];
386
+ const target = targetParam ? targetParam.trim() : "";
387
+ const text = line.trailing != null ? line.trailing : "";
388
+ const prefix = parseIrcPrefix(line.prefix);
389
+ const senderNick = prefix.nick ? prefix.nick.trim() : "";
390
+ if (!target || !senderNick || !text.trim()) continue;
391
+ if (options.onPrivmsg) Promise.resolve(options.onPrivmsg({
392
+ senderNick,
393
+ senderUser: prefix.user ? prefix.user.trim() : void 0,
394
+ senderHost: prefix.host ? prefix.host.trim() : void 0,
395
+ target,
396
+ text,
397
+ rawLine
398
+ })).catch((error) => {
399
+ fail(error);
400
+ });
401
+ }
402
+ }
403
+ });
404
+ socket.once("connect", () => {
405
+ try {
406
+ if (options.password && options.password.trim()) sendRaw(`PASS ${options.password.trim()}`);
407
+ sendRaw(`NICK ${options.nick.trim()}`);
408
+ sendRaw(`USER ${options.username.trim()} 0 * :${sanitizeIrcOutboundText(options.realname)}`);
409
+ } catch (err) {
410
+ fail(err);
411
+ close();
412
+ }
413
+ });
414
+ socket.once("error", (err) => {
415
+ fail(err);
416
+ });
417
+ socket.once("close", () => {
418
+ if (!closed) {
419
+ closed = true;
420
+ if (!ready) fail(/* @__PURE__ */ new Error("IRC connection closed before ready"));
421
+ }
422
+ });
423
+ if (options.abortSignal) {
424
+ const abort = () => {
425
+ quit("shutdown");
426
+ };
427
+ if (options.abortSignal.aborted) abort();
428
+ else options.abortSignal.addEventListener("abort", abort, { once: true });
429
+ }
430
+ await withTimeout(readyPromise, timeoutMs, "IRC connect");
431
+ return {
432
+ get nick() {
433
+ return currentNick;
434
+ },
435
+ isReady: () => ready && !closed,
436
+ sendRaw,
437
+ join,
438
+ sendPrivmsg,
439
+ quit,
440
+ close
441
+ };
442
+ }
443
+ //#endregion
444
+ //#region extensions/irc/src/connect-options.ts
445
+ function buildIrcConnectOptions(account, overrides = {}) {
446
+ return {
447
+ host: account.host,
448
+ port: account.port,
449
+ tls: account.tls,
450
+ nick: account.nick,
451
+ username: account.username,
452
+ realname: account.realname,
453
+ password: account.password,
454
+ nickserv: {
455
+ enabled: account.config.nickserv?.enabled,
456
+ service: account.config.nickserv?.service,
457
+ password: account.config.nickserv?.password,
458
+ register: account.config.nickserv?.register,
459
+ registerEmail: account.config.nickserv?.registerEmail
460
+ },
461
+ ...overrides
462
+ };
463
+ }
464
+ //#endregion
465
+ //#region extensions/irc/src/policy.ts
466
+ function resolveIrcGroupMatch(params) {
467
+ const groups = params.groups ?? {};
468
+ const hasConfiguredGroups = Object.keys(groups).length > 0;
469
+ const direct = groups[params.target];
470
+ if (direct) return {
471
+ allowed: true,
472
+ groupConfig: direct,
473
+ wildcardConfig: groups["*"],
474
+ hasConfiguredGroups
475
+ };
476
+ const targetLower = params.target.toLowerCase();
477
+ const directKey = Object.keys(groups).find((key) => key.toLowerCase() === targetLower);
478
+ if (directKey) {
479
+ const matched = groups[directKey];
480
+ if (matched) return {
481
+ allowed: true,
482
+ groupConfig: matched,
483
+ wildcardConfig: groups["*"],
484
+ hasConfiguredGroups
485
+ };
486
+ }
487
+ const wildcard = groups["*"];
488
+ if (wildcard) return {
489
+ allowed: true,
490
+ wildcardConfig: wildcard,
491
+ hasConfiguredGroups
492
+ };
493
+ return {
494
+ allowed: false,
495
+ hasConfiguredGroups
496
+ };
497
+ }
498
+ function resolveIrcGroupAccessGate(params) {
499
+ const policy = params.groupPolicy ?? "allowlist";
500
+ if (policy === "disabled") return {
501
+ allowed: false,
502
+ reason: "groupPolicy=disabled"
503
+ };
504
+ if (policy === "allowlist") {
505
+ if (!params.groupMatch.hasConfiguredGroups) return {
506
+ allowed: false,
507
+ reason: "groupPolicy=allowlist and no groups configured"
508
+ };
509
+ if (!params.groupMatch.allowed) return {
510
+ allowed: false,
511
+ reason: "not allowlisted"
512
+ };
513
+ }
514
+ if (params.groupMatch.groupConfig?.enabled === false || params.groupMatch.wildcardConfig?.enabled === false) return {
515
+ allowed: false,
516
+ reason: "disabled"
517
+ };
518
+ return {
519
+ allowed: true,
520
+ reason: policy === "open" ? "open" : "allowlisted"
521
+ };
522
+ }
523
+ function resolveIrcRequireMention(params) {
524
+ if (params.groupConfig?.requireMention !== void 0) return params.groupConfig.requireMention;
525
+ if (params.wildcardConfig?.requireMention !== void 0) return params.wildcardConfig.requireMention;
526
+ return true;
527
+ }
528
+ function resolveIrcMentionGate(params) {
529
+ if (!params.isGroup) return {
530
+ shouldSkip: false,
531
+ reason: "direct"
532
+ };
533
+ if (!params.requireMention) return {
534
+ shouldSkip: false,
535
+ reason: "mention-not-required"
536
+ };
537
+ if (params.wasMentioned) return {
538
+ shouldSkip: false,
539
+ reason: "mentioned"
540
+ };
541
+ if (params.hasControlCommand && params.allowTextCommands && params.commandAuthorized) return {
542
+ shouldSkip: false,
543
+ reason: "authorized-command"
544
+ };
545
+ return {
546
+ shouldSkip: true,
547
+ reason: "missing-mention"
548
+ };
549
+ }
550
+ function resolveIrcGroupSenderAllowed(params) {
551
+ const policy = params.groupPolicy ?? "allowlist";
552
+ const inner = normalizeIrcAllowlist(params.innerAllowFrom);
553
+ const outer = normalizeIrcAllowlist(params.outerAllowFrom);
554
+ if (inner.length > 0) return resolveIrcAllowlistMatch({
555
+ allowFrom: inner,
556
+ message: params.message,
557
+ allowNameMatching: params.allowNameMatching
558
+ }).allowed;
559
+ if (outer.length > 0) return resolveIrcAllowlistMatch({
560
+ allowFrom: outer,
561
+ message: params.message,
562
+ allowNameMatching: params.allowNameMatching
563
+ }).allowed;
564
+ return policy === "open";
565
+ }
566
+ //#endregion
567
+ //#region extensions/irc/src/runtime.ts
568
+ const { setRuntime: setIrcRuntime, getRuntime: getIrcRuntime } = createPluginRuntimeStore("IRC runtime not initialized");
569
+ //#endregion
570
+ //#region extensions/irc/src/send.ts
571
+ function resolveTarget(to, opts) {
572
+ const fromArg = normalizeIrcMessagingTarget(to);
573
+ if (fromArg) return fromArg;
574
+ const fromOpt = normalizeIrcMessagingTarget(opts?.target ?? "");
575
+ if (fromOpt) return fromOpt;
576
+ throw new Error(`Invalid IRC target: ${to}`);
577
+ }
578
+ async function sendMessageIrc(to, text, opts = {}) {
579
+ const runtime = getIrcRuntime();
580
+ const cfg = opts.cfg ?? runtime.config.loadConfig();
581
+ const account = resolveIrcAccount({
582
+ cfg,
583
+ accountId: opts.accountId
584
+ });
585
+ if (!account.configured) throw new Error(`IRC is not configured for account "${account.accountId}" (need host and nick in channels.irc).`);
586
+ const target = resolveTarget(to, opts);
587
+ const tableMode = runtime.channel.text.resolveMarkdownTableMode({
588
+ cfg,
589
+ channel: "irc",
590
+ accountId: account.accountId
591
+ });
592
+ const prepared = runtime.channel.text.convertMarkdownTables(text.trim(), tableMode);
593
+ const payload = opts.replyTo ? `${prepared}\n\n[reply:${opts.replyTo}]` : prepared;
594
+ if (!payload.trim()) throw new Error("Message must be non-empty for IRC sends");
595
+ const client = opts.client;
596
+ if (client?.isReady()) client.sendPrivmsg(target, payload);
597
+ else {
598
+ const transient = await connectIrcClient(buildIrcConnectOptions(account, { connectTimeoutMs: 12e3 }));
599
+ transient.sendPrivmsg(target, payload);
600
+ transient.quit("sent");
601
+ }
602
+ runtime.channel.activity.record({
603
+ channel: "irc",
604
+ accountId: account.accountId,
605
+ direction: "outbound"
606
+ });
607
+ return {
608
+ messageId: makeIrcMessageId(),
609
+ target
610
+ };
611
+ }
612
+ //#endregion
613
+ //#region extensions/irc/src/inbound.ts
614
+ const CHANNEL_ID = "irc";
615
+ const escapeIrcRegexLiteral = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
616
+ function resolveIrcEffectiveAllowlists(params) {
617
+ const { effectiveAllowFrom, effectiveGroupAllowFrom } = resolveEffectiveAllowFromLists({
618
+ allowFrom: params.configAllowFrom,
619
+ groupAllowFrom: params.configGroupAllowFrom,
620
+ storeAllowFrom: params.storeAllowList,
621
+ dmPolicy: params.dmPolicy,
622
+ groupAllowFromFallbackToAllowFrom: false
623
+ });
624
+ return {
625
+ effectiveAllowFrom,
626
+ effectiveGroupAllowFrom
627
+ };
628
+ }
629
+ async function deliverIrcReply(params) {
630
+ const combined = formatTextWithAttachmentLinks(params.payload.text, resolveOutboundMediaUrls(params.payload));
631
+ if (!combined) return;
632
+ if (params.sendReply) await params.sendReply(params.target, combined, params.payload.replyToId);
633
+ else await sendMessageIrc(params.target, combined, {
634
+ accountId: params.accountId,
635
+ replyTo: params.payload.replyToId
636
+ });
637
+ params.statusSink?.({ lastOutboundAt: Date.now() });
638
+ }
639
+ async function handleIrcInbound(params) {
640
+ const { message, account, config, runtime, connectedNick, statusSink } = params;
641
+ const core = getIrcRuntime();
642
+ const pairing = createScopedPairingAccess({
643
+ core,
644
+ channel: CHANNEL_ID,
645
+ accountId: account.accountId
646
+ });
647
+ const rawBody = message.text?.trim() ?? "";
648
+ if (!rawBody) return;
649
+ statusSink?.({ lastInboundAt: message.timestamp });
650
+ const senderDisplay = message.senderHost ? `${message.senderNick}!${message.senderUser ?? "?"}@${message.senderHost}` : message.senderNick;
651
+ const allowNameMatching = isDangerousNameMatchingEnabled(account.config);
652
+ const dmPolicy = account.config.dmPolicy ?? "pairing";
653
+ const defaultGroupPolicy = resolveDefaultGroupPolicy(config);
654
+ const { groupPolicy, providerMissingFallbackApplied } = resolveAllowlistProviderRuntimeGroupPolicy({
655
+ providerConfigPresent: config.channels?.irc !== void 0,
656
+ groupPolicy: account.config.groupPolicy,
657
+ defaultGroupPolicy
658
+ });
659
+ warnMissingProviderGroupPolicyFallbackOnce({
660
+ providerMissingFallbackApplied,
661
+ providerKey: "irc",
662
+ accountId: account.accountId,
663
+ blockedLabel: GROUP_POLICY_BLOCKED_LABEL.channel,
664
+ log: (message) => runtime.log?.(message)
665
+ });
666
+ const configAllowFrom = normalizeIrcAllowlist(account.config.allowFrom);
667
+ const configGroupAllowFrom = normalizeIrcAllowlist(account.config.groupAllowFrom);
668
+ const storeAllowList = normalizeIrcAllowlist(await readStoreAllowFromForDmPolicy({
669
+ provider: CHANNEL_ID,
670
+ accountId: account.accountId,
671
+ dmPolicy,
672
+ readStore: pairing.readStoreForDmPolicy
673
+ }));
674
+ const groupMatch = resolveIrcGroupMatch({
675
+ groups: account.config.groups,
676
+ target: message.target
677
+ });
678
+ if (message.isGroup) {
679
+ const groupAccess = resolveIrcGroupAccessGate({
680
+ groupPolicy,
681
+ groupMatch
682
+ });
683
+ if (!groupAccess.allowed) {
684
+ runtime.log?.(`irc: drop channel ${message.target} (${groupAccess.reason})`);
685
+ return;
686
+ }
687
+ }
688
+ const directGroupAllowFrom = normalizeIrcAllowlist(groupMatch.groupConfig?.allowFrom);
689
+ const wildcardGroupAllowFrom = normalizeIrcAllowlist(groupMatch.wildcardConfig?.allowFrom);
690
+ const groupAllowFrom = directGroupAllowFrom.length > 0 ? directGroupAllowFrom : wildcardGroupAllowFrom;
691
+ const { effectiveAllowFrom, effectiveGroupAllowFrom } = resolveIrcEffectiveAllowlists({
692
+ configAllowFrom,
693
+ configGroupAllowFrom,
694
+ storeAllowList,
695
+ dmPolicy
696
+ });
697
+ const allowTextCommands = core.channel.commands.shouldHandleTextCommands({
698
+ cfg: config,
699
+ surface: CHANNEL_ID
700
+ });
701
+ const useAccessGroups = config.commands?.useAccessGroups !== false;
702
+ const senderAllowedForCommands = resolveIrcAllowlistMatch({
703
+ allowFrom: message.isGroup ? effectiveGroupAllowFrom : effectiveAllowFrom,
704
+ message,
705
+ allowNameMatching
706
+ }).allowed;
707
+ const hasControlCommand = core.channel.text.hasControlCommand(rawBody, config);
708
+ const commandGate = resolveControlCommandGate({
709
+ useAccessGroups,
710
+ authorizers: [{
711
+ configured: (message.isGroup ? effectiveGroupAllowFrom : effectiveAllowFrom).length > 0,
712
+ allowed: senderAllowedForCommands
713
+ }],
714
+ allowTextCommands,
715
+ hasControlCommand
716
+ });
717
+ const commandAuthorized = commandGate.commandAuthorized;
718
+ if (message.isGroup) {
719
+ if (!resolveIrcGroupSenderAllowed({
720
+ groupPolicy,
721
+ message,
722
+ outerAllowFrom: effectiveGroupAllowFrom,
723
+ innerAllowFrom: groupAllowFrom,
724
+ allowNameMatching
725
+ })) {
726
+ runtime.log?.(`irc: drop group sender ${senderDisplay} (policy=${groupPolicy})`);
727
+ return;
728
+ }
729
+ } else {
730
+ if (dmPolicy === "disabled") {
731
+ runtime.log?.(`irc: drop DM sender=${senderDisplay} (dmPolicy=disabled)`);
732
+ return;
733
+ }
734
+ if (dmPolicy !== "open") {
735
+ if (!resolveIrcAllowlistMatch({
736
+ allowFrom: effectiveAllowFrom,
737
+ message,
738
+ allowNameMatching
739
+ }).allowed) {
740
+ if (dmPolicy === "pairing") await issuePairingChallenge({
741
+ channel: CHANNEL_ID,
742
+ senderId: senderDisplay.toLowerCase(),
743
+ senderIdLine: `Your IRC id: ${senderDisplay}`,
744
+ meta: { name: message.senderNick || void 0 },
745
+ upsertPairingRequest: pairing.upsertPairingRequest,
746
+ sendPairingReply: async (text) => {
747
+ await deliverIrcReply({
748
+ payload: { text },
749
+ target: message.senderNick,
750
+ accountId: account.accountId,
751
+ sendReply: params.sendReply,
752
+ statusSink
753
+ });
754
+ },
755
+ onReplyError: (err) => {
756
+ runtime.error?.(`irc: pairing reply failed for ${senderDisplay}: ${String(err)}`);
757
+ }
758
+ });
759
+ runtime.log?.(`irc: drop DM sender ${senderDisplay} (dmPolicy=${dmPolicy})`);
760
+ return;
761
+ }
762
+ }
763
+ }
764
+ if (message.isGroup && commandGate.shouldBlock) {
765
+ logInboundDrop({
766
+ log: (line) => runtime.log?.(line),
767
+ channel: CHANNEL_ID,
768
+ reason: "control command (unauthorized)",
769
+ target: senderDisplay
770
+ });
771
+ return;
772
+ }
773
+ const mentionRegexes = core.channel.mentions.buildMentionRegexes(config);
774
+ const mentionNick = connectedNick?.trim() || account.nick;
775
+ const explicitMentionRegex = mentionNick ? new RegExp(`\\b${escapeIrcRegexLiteral(mentionNick)}\\b[:,]?`, "i") : null;
776
+ const wasMentioned = core.channel.mentions.matchesMentionPatterns(rawBody, mentionRegexes) || (explicitMentionRegex ? explicitMentionRegex.test(rawBody) : false);
777
+ const requireMention = message.isGroup ? resolveIrcRequireMention({
778
+ groupConfig: groupMatch.groupConfig,
779
+ wildcardConfig: groupMatch.wildcardConfig
780
+ }) : false;
781
+ const mentionGate = resolveIrcMentionGate({
782
+ isGroup: message.isGroup,
783
+ requireMention,
784
+ wasMentioned,
785
+ hasControlCommand,
786
+ allowTextCommands,
787
+ commandAuthorized
788
+ });
789
+ if (mentionGate.shouldSkip) {
790
+ runtime.log?.(`irc: drop channel ${message.target} (${mentionGate.reason})`);
791
+ return;
792
+ }
793
+ const peerId = message.isGroup ? message.target : message.senderNick;
794
+ const route = core.channel.routing.resolveAgentRoute({
795
+ cfg: config,
796
+ channel: CHANNEL_ID,
797
+ accountId: account.accountId,
798
+ peer: {
799
+ kind: message.isGroup ? "group" : "direct",
800
+ id: peerId
801
+ }
802
+ });
803
+ const fromLabel = message.isGroup ? message.target : senderDisplay;
804
+ const storePath = core.channel.session.resolveStorePath(config.session?.store, { agentId: route.agentId });
805
+ const envelopeOptions = core.channel.reply.resolveEnvelopeFormatOptions(config);
806
+ const previousTimestamp = core.channel.session.readSessionUpdatedAt({
807
+ storePath,
808
+ sessionKey: route.sessionKey
809
+ });
810
+ const body = core.channel.reply.formatAgentEnvelope({
811
+ channel: "IRC",
812
+ from: fromLabel,
813
+ timestamp: message.timestamp,
814
+ previousTimestamp,
815
+ envelope: envelopeOptions,
816
+ body: rawBody
817
+ });
818
+ const groupSystemPrompt = groupMatch.groupConfig?.systemPrompt?.trim() || void 0;
819
+ const ctxPayload = core.channel.reply.finalizeInboundContext({
820
+ Body: body,
821
+ RawBody: rawBody,
822
+ CommandBody: rawBody,
823
+ From: message.isGroup ? `irc:channel:${message.target}` : `irc:${senderDisplay}`,
824
+ To: `irc:${peerId}`,
825
+ SessionKey: route.sessionKey,
826
+ AccountId: route.accountId,
827
+ ChatType: message.isGroup ? "group" : "direct",
828
+ ConversationLabel: fromLabel,
829
+ SenderName: message.senderNick || void 0,
830
+ SenderId: senderDisplay,
831
+ GroupSubject: message.isGroup ? message.target : void 0,
832
+ GroupSystemPrompt: message.isGroup ? groupSystemPrompt : void 0,
833
+ Provider: CHANNEL_ID,
834
+ Surface: CHANNEL_ID,
835
+ WasMentioned: message.isGroup ? wasMentioned : void 0,
836
+ MessageSid: message.messageId,
837
+ Timestamp: message.timestamp,
838
+ OriginatingChannel: CHANNEL_ID,
839
+ OriginatingTo: `irc:${peerId}`,
840
+ CommandAuthorized: commandAuthorized
841
+ });
842
+ await dispatchInboundReplyWithBase({
843
+ cfg: config,
844
+ channel: CHANNEL_ID,
845
+ accountId: account.accountId,
846
+ route,
847
+ storePath,
848
+ ctxPayload,
849
+ core,
850
+ deliver: async (payload) => {
851
+ await deliverIrcReply({
852
+ payload,
853
+ target: peerId,
854
+ accountId: account.accountId,
855
+ sendReply: params.sendReply,
856
+ statusSink
857
+ });
858
+ },
859
+ onRecordError: (err) => {
860
+ runtime.error?.(`irc: failed updating session meta: ${String(err)}`);
861
+ },
862
+ onDispatchError: (err, info) => {
863
+ runtime.error?.(`irc ${info.kind} reply failed: ${String(err)}`);
864
+ },
865
+ replyOptions: {
866
+ skillFilter: groupMatch.groupConfig?.skills,
867
+ disableBlockStreaming: typeof account.config.blockStreaming === "boolean" ? !account.config.blockStreaming : void 0
868
+ }
869
+ });
870
+ }
871
+ //#endregion
872
+ //#region extensions/irc/src/monitor.ts
873
+ function resolveIrcInboundTarget(params) {
874
+ const rawTarget = params.target;
875
+ if (isChannelTarget(rawTarget)) return {
876
+ isGroup: true,
877
+ target: rawTarget,
878
+ rawTarget
879
+ };
880
+ return {
881
+ isGroup: false,
882
+ target: params.senderNick.trim() || rawTarget,
883
+ rawTarget
884
+ };
885
+ }
886
+ async function monitorIrcProvider(opts) {
887
+ const core = getIrcRuntime();
888
+ const cfg = opts.config ?? core.config.loadConfig();
889
+ const account = resolveIrcAccount({
890
+ cfg,
891
+ accountId: opts.accountId
892
+ });
893
+ const runtime = resolveLoggerBackedRuntime(opts.runtime, core.logging.getChildLogger());
894
+ if (!account.configured) throw new Error(`IRC is not configured for account "${account.accountId}" (need host and nick in channels.irc).`);
895
+ const logger = core.logging.getChildLogger({
896
+ channel: "irc",
897
+ accountId: account.accountId
898
+ });
899
+ let client = null;
900
+ client = await connectIrcClient(buildIrcConnectOptions(account, {
901
+ channels: account.config.channels,
902
+ abortSignal: opts.abortSignal,
903
+ onLine: (line) => {
904
+ if (core.logging.shouldLogVerbose()) logger.debug?.(`[${account.accountId}] << ${line}`);
905
+ },
906
+ onNotice: (text, target) => {
907
+ if (core.logging.shouldLogVerbose()) logger.debug?.(`[${account.accountId}] notice ${target ?? ""}: ${text}`);
908
+ },
909
+ onError: (error) => {
910
+ logger.error(`[${account.accountId}] IRC error: ${error.message}`);
911
+ },
912
+ onPrivmsg: async (event) => {
913
+ if (!client) return;
914
+ if (event.senderNick.toLowerCase() === client.nick.toLowerCase()) return;
915
+ const inboundTarget = resolveIrcInboundTarget({
916
+ target: event.target,
917
+ senderNick: event.senderNick
918
+ });
919
+ const message = {
920
+ messageId: makeIrcMessageId(),
921
+ target: inboundTarget.target,
922
+ rawTarget: inboundTarget.rawTarget,
923
+ senderNick: event.senderNick,
924
+ senderUser: event.senderUser,
925
+ senderHost: event.senderHost,
926
+ text: event.text,
927
+ timestamp: Date.now(),
928
+ isGroup: inboundTarget.isGroup
929
+ };
930
+ core.channel.activity.record({
931
+ channel: "irc",
932
+ accountId: account.accountId,
933
+ direction: "inbound",
934
+ at: message.timestamp
935
+ });
936
+ if (opts.onMessage) {
937
+ await opts.onMessage(message, client);
938
+ return;
939
+ }
940
+ await handleIrcInbound({
941
+ message,
942
+ account,
943
+ config: cfg,
944
+ runtime,
945
+ connectedNick: client.nick,
946
+ sendReply: async (target, text) => {
947
+ client?.sendPrivmsg(target, text);
948
+ opts.statusSink?.({ lastOutboundAt: Date.now() });
949
+ core.channel.activity.record({
950
+ channel: "irc",
951
+ accountId: account.accountId,
952
+ direction: "outbound"
953
+ });
954
+ },
955
+ statusSink: opts.statusSink
956
+ });
957
+ }
958
+ }));
959
+ logger.info(`[${account.accountId}] connected to ${account.host}:${account.port}${account.tls ? " (tls)" : ""} as ${client.nick}`);
960
+ return { stop: () => {
961
+ client?.quit("shutdown");
962
+ client = null;
963
+ } };
964
+ }
965
+ //#endregion
966
+ //#region extensions/irc/src/probe.ts
967
+ function formatError(err) {
968
+ if (err instanceof Error) return err.message;
969
+ return typeof err === "string" ? err : JSON.stringify(err);
970
+ }
971
+ async function probeIrc(cfg, opts) {
972
+ const account = resolveIrcAccount({
973
+ cfg,
974
+ accountId: opts?.accountId
975
+ });
976
+ const base = {
977
+ ok: false,
978
+ host: account.host,
979
+ port: account.port,
980
+ tls: account.tls,
981
+ nick: account.nick
982
+ };
983
+ if (!account.configured) return {
984
+ ...base,
985
+ error: "missing host or nick"
986
+ };
987
+ const started = Date.now();
988
+ try {
989
+ const client = await connectIrcClient(buildIrcConnectOptions(account, { connectTimeoutMs: opts?.timeoutMs ?? 8e3 }));
990
+ const elapsed = Date.now() - started;
991
+ client.quit("probe");
992
+ return {
993
+ ...base,
994
+ ok: true,
995
+ latencyMs: elapsed
996
+ };
997
+ } catch (err) {
998
+ return {
999
+ ...base,
1000
+ error: formatError(err)
1001
+ };
1002
+ }
1003
+ }
1004
+ //#endregion
1005
+ //#region extensions/irc/src/channel.ts
1006
+ const meta = getChatChannelMeta("irc");
1007
+ function normalizePairingTarget(raw) {
1008
+ const normalized = normalizeIrcAllowEntry(raw);
1009
+ if (!normalized) return "";
1010
+ return normalized.split(/[!@]/, 1)[0]?.trim() ?? "";
1011
+ }
1012
+ const ircConfigAccessors = createScopedAccountConfigAccessors({
1013
+ resolveAccount: ({ cfg, accountId }) => resolveIrcAccount({
1014
+ cfg,
1015
+ accountId
1016
+ }),
1017
+ resolveAllowFrom: (account) => account.config.allowFrom,
1018
+ formatAllowFrom: (allowFrom) => formatNormalizedAllowFromEntries({
1019
+ allowFrom,
1020
+ normalizeEntry: normalizeIrcAllowEntry
1021
+ }),
1022
+ resolveDefaultTo: (account) => account.config.defaultTo
1023
+ });
1024
+ const ircPlugin = {
1025
+ id: "irc",
1026
+ meta: {
1027
+ ...meta,
1028
+ quickstartAllowFrom: true
1029
+ },
1030
+ setup: ircSetupAdapter,
1031
+ setupWizard: ircSetupWizard,
1032
+ pairing: {
1033
+ idLabel: "ircUser",
1034
+ normalizeAllowEntry: (entry) => normalizeIrcAllowEntry(entry),
1035
+ notifyApproval: async ({ id }) => {
1036
+ const target = normalizePairingTarget(id);
1037
+ if (!target) throw new Error(`invalid IRC pairing id: ${id}`);
1038
+ await sendMessageIrc(target, PAIRING_APPROVED_MESSAGE);
1039
+ }
1040
+ },
1041
+ capabilities: {
1042
+ chatTypes: ["direct", "group"],
1043
+ media: true,
1044
+ blockStreaming: true
1045
+ },
1046
+ reload: { configPrefixes: ["channels.irc"] },
1047
+ configSchema: buildChannelConfigSchema(IrcConfigSchema),
1048
+ config: {
1049
+ listAccountIds: (cfg) => listIrcAccountIds(cfg),
1050
+ resolveAccount: (cfg, accountId) => resolveIrcAccount({
1051
+ cfg,
1052
+ accountId
1053
+ }),
1054
+ defaultAccountId: (cfg) => resolveDefaultIrcAccountId(cfg),
1055
+ setAccountEnabled: ({ cfg, accountId, enabled }) => setAccountEnabledInConfigSection({
1056
+ cfg,
1057
+ sectionKey: "irc",
1058
+ accountId,
1059
+ enabled,
1060
+ allowTopLevel: true
1061
+ }),
1062
+ deleteAccount: ({ cfg, accountId }) => deleteAccountFromConfigSection({
1063
+ cfg,
1064
+ sectionKey: "irc",
1065
+ accountId,
1066
+ clearBaseFields: [
1067
+ "name",
1068
+ "host",
1069
+ "port",
1070
+ "tls",
1071
+ "nick",
1072
+ "username",
1073
+ "realname",
1074
+ "password",
1075
+ "passwordFile",
1076
+ "channels"
1077
+ ]
1078
+ }),
1079
+ isConfigured: (account) => account.configured,
1080
+ describeAccount: (account) => ({
1081
+ accountId: account.accountId,
1082
+ name: account.name,
1083
+ enabled: account.enabled,
1084
+ configured: account.configured,
1085
+ host: account.host,
1086
+ port: account.port,
1087
+ tls: account.tls,
1088
+ nick: account.nick,
1089
+ passwordSource: account.passwordSource
1090
+ }),
1091
+ ...ircConfigAccessors
1092
+ },
1093
+ security: {
1094
+ resolveDmPolicy: ({ cfg, accountId, account }) => {
1095
+ return buildAccountScopedDmSecurityPolicy({
1096
+ cfg,
1097
+ channelKey: "irc",
1098
+ accountId,
1099
+ fallbackAccountId: account.accountId ?? "default",
1100
+ policy: account.config.dmPolicy,
1101
+ allowFrom: account.config.allowFrom ?? [],
1102
+ policyPathSuffix: "dmPolicy",
1103
+ normalizeEntry: (raw) => normalizeIrcAllowEntry(raw)
1104
+ });
1105
+ },
1106
+ collectWarnings: ({ account, cfg }) => {
1107
+ const warnings = collectAllowlistProviderGroupPolicyWarnings({
1108
+ cfg,
1109
+ providerConfigPresent: cfg.channels?.irc !== void 0,
1110
+ configuredGroupPolicy: account.config.groupPolicy,
1111
+ collect: (groupPolicy) => groupPolicy === "open" ? [buildOpenGroupPolicyWarning({
1112
+ surface: "IRC channels",
1113
+ openBehavior: "allows all channels and senders (mention-gated)",
1114
+ remediation: "Prefer channels.irc.groupPolicy=\"allowlist\" with channels.irc.groups"
1115
+ })] : []
1116
+ });
1117
+ if (!account.config.tls) warnings.push("- IRC TLS is disabled (channels.irc.tls=false); traffic and credentials are plaintext.");
1118
+ if (account.config.nickserv?.register) {
1119
+ warnings.push("- IRC NickServ registration is enabled (channels.irc.nickserv.register=true); this sends \"REGISTER\" on every connect. Disable after first successful registration.");
1120
+ if (!account.config.nickserv.password?.trim()) warnings.push("- IRC NickServ registration is enabled but no NickServ password is resolved; set channels.irc.nickserv.password, channels.irc.nickserv.passwordFile, or IRC_NICKSERV_PASSWORD.");
1121
+ }
1122
+ return warnings;
1123
+ }
1124
+ },
1125
+ groups: {
1126
+ resolveRequireMention: ({ cfg, accountId, groupId }) => {
1127
+ const account = resolveIrcAccount({
1128
+ cfg,
1129
+ accountId
1130
+ });
1131
+ if (!groupId) return true;
1132
+ const match = resolveIrcGroupMatch({
1133
+ groups: account.config.groups,
1134
+ target: groupId
1135
+ });
1136
+ return resolveIrcRequireMention({
1137
+ groupConfig: match.groupConfig,
1138
+ wildcardConfig: match.wildcardConfig
1139
+ });
1140
+ },
1141
+ resolveToolPolicy: ({ cfg, accountId, groupId }) => {
1142
+ const account = resolveIrcAccount({
1143
+ cfg,
1144
+ accountId
1145
+ });
1146
+ if (!groupId) return;
1147
+ const match = resolveIrcGroupMatch({
1148
+ groups: account.config.groups,
1149
+ target: groupId
1150
+ });
1151
+ return match.groupConfig?.tools ?? match.wildcardConfig?.tools;
1152
+ }
1153
+ },
1154
+ messaging: {
1155
+ normalizeTarget: normalizeIrcMessagingTarget,
1156
+ targetResolver: {
1157
+ looksLikeId: looksLikeIrcTargetId,
1158
+ hint: "<#channel|nick>"
1159
+ }
1160
+ },
1161
+ resolver: { resolveTargets: async ({ inputs, kind }) => {
1162
+ return inputs.map((input) => {
1163
+ const normalized = normalizeIrcMessagingTarget(input);
1164
+ if (!normalized) return {
1165
+ input,
1166
+ resolved: false,
1167
+ note: "invalid IRC target"
1168
+ };
1169
+ if (kind === "group") {
1170
+ const groupId = isChannelTarget(normalized) ? normalized : `#${normalized}`;
1171
+ return {
1172
+ input,
1173
+ resolved: true,
1174
+ id: groupId,
1175
+ name: groupId
1176
+ };
1177
+ }
1178
+ if (isChannelTarget(normalized)) return {
1179
+ input,
1180
+ resolved: false,
1181
+ note: "expected user target"
1182
+ };
1183
+ return {
1184
+ input,
1185
+ resolved: true,
1186
+ id: normalized,
1187
+ name: normalized
1188
+ };
1189
+ });
1190
+ } },
1191
+ directory: {
1192
+ self: async () => null,
1193
+ listPeers: async ({ cfg, accountId, query, limit }) => {
1194
+ const account = resolveIrcAccount({
1195
+ cfg,
1196
+ accountId
1197
+ });
1198
+ const q = query?.trim().toLowerCase() ?? "";
1199
+ const ids = /* @__PURE__ */ new Set();
1200
+ for (const entry of account.config.allowFrom ?? []) {
1201
+ const normalized = normalizePairingTarget(String(entry));
1202
+ if (normalized && normalized !== "*") ids.add(normalized);
1203
+ }
1204
+ for (const entry of account.config.groupAllowFrom ?? []) {
1205
+ const normalized = normalizePairingTarget(String(entry));
1206
+ if (normalized && normalized !== "*") ids.add(normalized);
1207
+ }
1208
+ for (const group of Object.values(account.config.groups ?? {})) for (const entry of group.allowFrom ?? []) {
1209
+ const normalized = normalizePairingTarget(String(entry));
1210
+ if (normalized && normalized !== "*") ids.add(normalized);
1211
+ }
1212
+ return Array.from(ids).filter((id) => q ? id.includes(q) : true).slice(0, limit && limit > 0 ? limit : void 0).map((id) => ({
1213
+ kind: "user",
1214
+ id
1215
+ }));
1216
+ },
1217
+ listGroups: async ({ cfg, accountId, query, limit }) => {
1218
+ const account = resolveIrcAccount({
1219
+ cfg,
1220
+ accountId
1221
+ });
1222
+ const q = query?.trim().toLowerCase() ?? "";
1223
+ const groupIds = /* @__PURE__ */ new Set();
1224
+ for (const channel of account.config.channels ?? []) {
1225
+ const normalized = normalizeIrcMessagingTarget(channel);
1226
+ if (normalized && isChannelTarget(normalized)) groupIds.add(normalized);
1227
+ }
1228
+ for (const group of Object.keys(account.config.groups ?? {})) {
1229
+ if (group === "*") continue;
1230
+ const normalized = normalizeIrcMessagingTarget(group);
1231
+ if (normalized && isChannelTarget(normalized)) groupIds.add(normalized);
1232
+ }
1233
+ return Array.from(groupIds).filter((id) => q ? id.toLowerCase().includes(q) : true).slice(0, limit && limit > 0 ? limit : void 0).map((id) => ({
1234
+ kind: "group",
1235
+ id,
1236
+ name: id
1237
+ }));
1238
+ }
1239
+ },
1240
+ outbound: {
1241
+ deliveryMode: "direct",
1242
+ chunker: (text, limit) => getIrcRuntime().channel.text.chunkMarkdownText(text, limit),
1243
+ chunkerMode: "markdown",
1244
+ textChunkLimit: 350,
1245
+ sendText: async ({ cfg, to, text, accountId, replyToId }) => {
1246
+ return {
1247
+ channel: "irc",
1248
+ ...await sendMessageIrc(to, text, {
1249
+ cfg,
1250
+ accountId: accountId ?? void 0,
1251
+ replyTo: replyToId ?? void 0
1252
+ })
1253
+ };
1254
+ },
1255
+ sendMedia: async ({ cfg, to, text, mediaUrl, accountId, replyToId }) => {
1256
+ return {
1257
+ channel: "irc",
1258
+ ...await sendMessageIrc(to, mediaUrl ? `${text}\n\nAttachment: ${mediaUrl}` : text, {
1259
+ cfg,
1260
+ accountId: accountId ?? void 0,
1261
+ replyTo: replyToId ?? void 0
1262
+ })
1263
+ };
1264
+ }
1265
+ },
1266
+ status: {
1267
+ defaultRuntime: {
1268
+ accountId: DEFAULT_ACCOUNT_ID,
1269
+ running: false,
1270
+ lastStartAt: null,
1271
+ lastStopAt: null,
1272
+ lastError: null
1273
+ },
1274
+ buildChannelSummary: ({ account, snapshot }) => ({
1275
+ ...buildBaseChannelStatusSummary(snapshot),
1276
+ host: account.host,
1277
+ port: snapshot.port,
1278
+ tls: account.tls,
1279
+ nick: account.nick,
1280
+ probe: snapshot.probe,
1281
+ lastProbeAt: snapshot.lastProbeAt ?? null
1282
+ }),
1283
+ probeAccount: async ({ cfg, account, timeoutMs }) => probeIrc(cfg, {
1284
+ accountId: account.accountId,
1285
+ timeoutMs
1286
+ }),
1287
+ buildAccountSnapshot: ({ account, runtime, probe }) => ({
1288
+ ...buildBaseAccountStatusSnapshot({
1289
+ account,
1290
+ runtime,
1291
+ probe
1292
+ }),
1293
+ host: account.host,
1294
+ port: account.port,
1295
+ tls: account.tls,
1296
+ nick: account.nick,
1297
+ passwordSource: account.passwordSource
1298
+ })
1299
+ },
1300
+ gateway: { startAccount: async (ctx) => {
1301
+ const account = ctx.account;
1302
+ const statusSink = createAccountStatusSink({
1303
+ accountId: ctx.accountId,
1304
+ setStatus: ctx.setStatus
1305
+ });
1306
+ if (!account.configured) throw new Error(`IRC is not configured for account "${account.accountId}" (need host and nick in channels.irc).`);
1307
+ ctx.log?.info(`[${account.accountId}] starting IRC provider (${account.host}:${account.port}${account.tls ? " tls" : ""})`);
1308
+ await runStoppablePassiveMonitor({
1309
+ abortSignal: ctx.abortSignal,
1310
+ start: async () => await monitorIrcProvider({
1311
+ accountId: account.accountId,
1312
+ config: ctx.cfg,
1313
+ runtime: ctx.runtime,
1314
+ abortSignal: ctx.abortSignal,
1315
+ statusSink
1316
+ })
1317
+ });
1318
+ } }
1319
+ };
1320
+ //#endregion
1321
+ export { setIrcRuntime as n, ircPlugin as t };