remoteclaw 0.1.0-next.cd6ddde → 0.1.0-next.cf9ccbe

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 (1054) hide show
  1. package/dist/accounts-79XhjwAj.js +32 -0
  2. package/dist/accounts-B1M3fOxL.js +272 -0
  3. package/dist/accounts-BwbvnKsW.js +205 -0
  4. package/dist/accounts-CIVjmTg9.js +270 -0
  5. package/dist/accounts-D1awQXKu.js +36 -0
  6. package/dist/accounts-DHkGVGUR.js +36 -0
  7. package/dist/accounts-P7cmIXUM.js +206 -0
  8. package/dist/accounts-XFgBY644.js +47 -0
  9. package/dist/accounts-_ZuNC5bz.js +47 -0
  10. package/dist/ack-reactions-BGJ9Vigf.js +621 -0
  11. package/dist/ack-reactions-Diu9O24z.js +621 -0
  12. package/dist/acp-cli-BwZ-va2P.js +1316 -0
  13. package/dist/acp-cli-eVKByz-j.js +1311 -0
  14. package/dist/active-listener--jrUO-8L.js +37 -0
  15. package/dist/active-listener-C7SyMcNY.js +37 -0
  16. package/dist/agent-BAxK2KQW.js +688 -0
  17. package/dist/agent-Dd5Yfhmq.js +687 -0
  18. package/dist/agent-helpers-5F0tdxud.js +400 -0
  19. package/dist/agent-scope-BA1HP4K6.js +114 -0
  20. package/dist/agent-scope-CAQLm3LP.js +116 -0
  21. package/dist/agents-2VlLHxv-.js +754 -0
  22. package/dist/agents.config-CmyzLYqW.js +116 -0
  23. package/dist/agents.config-DerBqRzk.js +116 -0
  24. package/dist/audio-ClIuKwkl.js +43 -0
  25. package/dist/audio-DqlIYYTb.js +43 -0
  26. package/dist/audit-Cn0cNCE4.js +3114 -0
  27. package/dist/audit-DXY4NHBC.js +3114 -0
  28. package/dist/auth-B-QK8JhI.js +315 -0
  29. package/dist/auth-C1zx1O24.js +314 -0
  30. package/dist/auth-DDmNYVMW.js +448 -0
  31. package/dist/auth-DH1wEw0w.js +448 -0
  32. package/dist/banner-CBWZhANO.js +294 -0
  33. package/dist/binaries-CYwLdubd.js +13 -0
  34. package/dist/bindings-DFAFatwT.js +69 -0
  35. package/dist/bindings-GUKIzFCp.js +69 -0
  36. package/dist/bonjour-discovery-AQMJqY4V.js +378 -0
  37. package/dist/bonjour-discovery-BLcPWHFJ.js +378 -0
  38. package/dist/boot/handler.js +28 -28
  39. package/dist/browser-cli-8Dv5ogFT.js +1690 -0
  40. package/dist/browser-cli-wNLo8SOy.js +1694 -0
  41. package/dist/build-info.json +3 -3
  42. package/dist/call-BTHzKFbN.js +518 -0
  43. package/dist/call-D_NchaCs.js +517 -0
  44. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  45. package/dist/catalog-DgpN5jxU.js +186 -0
  46. package/dist/catalog-k056Nh93.js +186 -0
  47. package/dist/channel-account-context-BHIy71Yh.js +133 -0
  48. package/dist/channel-account-context-DXU_-EkJ.js +133 -0
  49. package/dist/channel-activity-BatlvP_U.js +292 -0
  50. package/dist/channel-activity-BhT7NQ_v.js +94 -0
  51. package/dist/channel-activity-CvjEwpJz.js +94 -0
  52. package/dist/channel-options-BCccA2WC.js +32 -0
  53. package/dist/channel-options-VPR_pNyS.js +33 -0
  54. package/dist/channel-selection-AH6_y6RS.js +51 -0
  55. package/dist/channel-selection-ovohyJQZ.js +51 -0
  56. package/dist/channel-web-APDaQ_wp.js +2134 -0
  57. package/dist/channel-web-BW_YuNlT.js +2132 -0
  58. package/dist/channels-cli-BBkHQtBI.js +1440 -0
  59. package/dist/channels-cli-CKcOwL-Q.js +1436 -0
  60. package/dist/channels-status-issues-BbYNzwLp.js +18 -0
  61. package/dist/channels-status-issues-DRybAijg.js +18 -0
  62. package/dist/chat-envelope-AJFUAuBM.js +248 -0
  63. package/dist/chat-envelope-BrfcPlDM.js +248 -0
  64. package/dist/chrome-Bv2UtAMQ.js +1732 -0
  65. package/dist/chrome-C6Vc_7su.js +1733 -0
  66. package/dist/chunk-BzVoFUZL.js +341 -0
  67. package/dist/clack-prompter-C6mBTOzE.js +122 -0
  68. package/dist/clack-prompter-DKcYqv3o.js +121 -0
  69. package/dist/cleanup-utils-Cb-leJcy.js +94 -0
  70. package/dist/cli/daemon-cli.js +1 -1
  71. package/dist/cli-Cs1n6-eD.js +135 -0
  72. package/dist/cli-Di3p1tLN.js +131 -0
  73. package/dist/client-B6h7bgbF.js +2311 -0
  74. package/dist/client-CMtdm9Ii.js +2311 -0
  75. package/dist/clipboard-A06eV_5C.js +31 -0
  76. package/dist/clipboard-DQBl3coj.js +31 -0
  77. package/dist/command-format-BiiNHkWG.js +18 -0
  78. package/dist/command-format-Dntg_tnC.js +32 -0
  79. package/dist/command-logger/handler.js +1 -1
  80. package/dist/command-registry-BV2MH_iw.js +215 -0
  81. package/dist/commands-D93TXYhv.js +41 -0
  82. package/dist/commands-UD7V7QC9.js +41 -0
  83. package/dist/commands-registry-CCbTtSSK.js +891 -0
  84. package/dist/commands-registry-De8JhZLG.js +890 -0
  85. package/dist/common-D4fL3S2m.js +156 -0
  86. package/dist/common-DXNisGxw.js +156 -0
  87. package/dist/completion-cli-319xyosV.js +452 -0
  88. package/dist/completion-cli-B6Zimnek.js +452 -0
  89. package/dist/config-BTH7fB_v.js +3345 -0
  90. package/dist/config-DwuBnd6D.js +3347 -0
  91. package/dist/config-cli-c_Itt86J.js +247 -0
  92. package/dist/config-cli-rcMB3A3B.js +243 -0
  93. package/dist/config-guard-BcT7soTj.js +92 -0
  94. package/dist/config-guard-Bqak3bDc.js +75 -0
  95. package/dist/config-validation-CHEjSJ5K.js +18 -0
  96. package/dist/config-validation-CvgqLhyG.js +18 -0
  97. package/dist/configure-Cb3bbYnh.js +891 -0
  98. package/dist/configure-R2gWNv5y.js +889 -0
  99. package/dist/control-auth-DrGYtMJM.js +397 -0
  100. package/dist/control-auth-KY4Qdr2I.js +397 -0
  101. package/dist/control-ui-assets-DO1L6M0S.js +186 -0
  102. package/dist/control-ui-assets-S_TLo6Fs.js +186 -0
  103. package/dist/conversation-label-CMOfgCVl.js +36 -0
  104. package/dist/cron-cli-C7h_hLHu.js +495 -0
  105. package/dist/cron-cli-DTNg0Uvl.js +499 -0
  106. package/dist/daemon-cli-BlJS9zWM.js +737 -0
  107. package/dist/daemon-cli-Cfc1yszp.js +735 -0
  108. package/dist/daemon-cli.js +124 -1071
  109. package/dist/daemon-install-BbBLuLWg.js +60 -0
  110. package/dist/daemon-install-WEBvqVOj.js +56 -0
  111. package/dist/daemon-install-helpers-BVtPC2TK.js +504 -0
  112. package/dist/daemon-install-helpers-DVr51zvE.js +504 -0
  113. package/dist/deliver-EB272zWh.js +481 -0
  114. package/dist/deliver-iGD_woru.js +481 -0
  115. package/dist/delivery-queue-BDvalA10.js +244 -0
  116. package/dist/delivery-queue-BimvYz5E.js +244 -0
  117. package/dist/devices-cli-BXCOsNFc.js +323 -0
  118. package/dist/devices-cli-CHGdYfrz.js +319 -0
  119. package/dist/diagnostics-BzzhTQzK.js +35 -0
  120. package/dist/diagnostics-DILtxtcE.js +35 -0
  121. package/dist/directory-cli-COS40yI9.js +221 -0
  122. package/dist/directory-cli-Cb5j1JTC.js +225 -0
  123. package/dist/dispatcher-BUqxh_mA.js +174 -0
  124. package/dist/dispatcher-By-KZRWZ.js +173 -0
  125. package/dist/dm-policy-shared-BCp9_z3w.js +22 -0
  126. package/dist/dm-policy-shared-DgeKqjOu.js +22 -0
  127. package/dist/dns-cli-B8yyXB2N.js +203 -0
  128. package/dist/dns-cli-DAkTk-gM.js +199 -0
  129. package/dist/dock-B0bIIDS3.js +906 -0
  130. package/dist/dock-C3PzQ6CS.js +907 -0
  131. package/dist/doctor-completion-B_Zp4fZk.js +92 -0
  132. package/dist/doctor-completion-CZ1P5laQ.js +92 -0
  133. package/dist/doctor-config-flow-BDDsR2J1.js +978 -0
  134. package/dist/doctor-config-flow-CwFFRUic.js +979 -0
  135. package/dist/enable-C3I9dWel.js +59 -0
  136. package/dist/enable-DnwKeWnR.js +59 -0
  137. package/dist/entry.js +62 -6
  138. package/dist/env-DyyqmxSM.js +60 -0
  139. package/dist/errors-0dfGxeYQ.js +35 -0
  140. package/dist/errors-C1kDByVU.js +35 -0
  141. package/dist/exec-CAk1dxq_.js +164 -0
  142. package/dist/exec-epNpA1aU.js +164 -0
  143. package/dist/extensionAPI.js +263 -1088
  144. package/dist/fetch-BMQq41sB.js +281 -0
  145. package/dist/fetch-Cky99wYB.js +281 -0
  146. package/dist/fetch-D3tw4B4n.js +67 -0
  147. package/dist/fetch-Dgm9ZHFm.js +67 -0
  148. package/dist/file-lock-DWH0TfVu.js +107 -0
  149. package/dist/file-lock-DXW9h9ek.js +107 -0
  150. package/dist/fs-safe-BjSd07M4.js +115 -0
  151. package/dist/fs-safe-aWIhCWlb.js +125 -0
  152. package/dist/gateway-cli-BLeY_1DX.js +24154 -0
  153. package/dist/gateway-cli-Cu4vwhmi.js +24150 -0
  154. package/dist/gateway-rpc-B92CH0D3.js +28 -0
  155. package/dist/gateway-rpc-DZNlWapO.js +28 -0
  156. package/dist/gmail-setup-utils-CKyh29_R.js +422 -0
  157. package/dist/gmail-setup-utils-DquflkMR.js +423 -0
  158. package/dist/health-BYl7T-4m.js +1417 -0
  159. package/dist/health-DdviISKg.js +1414 -0
  160. package/dist/health-format-BE5TK5bs.js +28 -0
  161. package/dist/heartbeat-visibility-BO3iRpB6.js +125 -0
  162. package/dist/heartbeat-visibility-Cwp4TrTv.js +125 -0
  163. package/dist/help-format-D3JhWp1E.js +17 -0
  164. package/dist/hook-runner-global-C1thol1d.js +527 -0
  165. package/dist/hooks-cli-BKS9uZ0H.js +1221 -0
  166. package/dist/hooks-cli-FLWcCr9q.js +1217 -0
  167. package/dist/image-ops-CX41n0v5.js +354 -0
  168. package/dist/image-ops-DSL3eFfQ.js +354 -0
  169. package/dist/import-BSFgt760.js +604 -0
  170. package/dist/import-Da1CHJJg.js +606 -0
  171. package/dist/inbound-context-a5bzQvRt.js +68 -0
  172. package/dist/index.js +127 -101
  173. package/dist/inspect-BEpFbi0c.js +286 -0
  174. package/dist/inspect-BeNNpWna.js +286 -0
  175. package/dist/installs-CH7Qq_m_.js +319 -0
  176. package/dist/installs-CcM8H2YA.js +319 -0
  177. package/dist/ipv4-DNo9AFDu.js +46 -0
  178. package/dist/ipv4-VfoVR5uR.js +46 -0
  179. package/dist/ir-BPwP8hIc.js +972 -0
  180. package/dist/lifecycle-core-5Zxqwa6V.js +476 -0
  181. package/dist/lifecycle-core-C1bGeLby.js +474 -0
  182. package/dist/links-CtGBIrG8.js +15 -0
  183. package/dist/loader-BoP3JA-r.js +22411 -0
  184. package/dist/loader-DXbpue-L.js +22414 -0
  185. package/dist/logger-ASsO5Nz-.js +49 -0
  186. package/dist/logging-Cd9y2AdQ.js +20 -0
  187. package/dist/login-B2UXzgaB.js +61 -0
  188. package/dist/login-BEFL3xY9.js +62 -0
  189. package/dist/login-qr-C7wAz2fe.js +329 -0
  190. package/dist/login-qr-DWpUP1Ud.js +325 -0
  191. package/dist/logs-cli-CAcd-pXA.js +240 -0
  192. package/dist/logs-cli-D7Bzarht.js +236 -0
  193. package/dist/markdown-tables-BBNUZp4n.js +29 -0
  194. package/dist/markdown-tables-NgPcfXoF.js +29 -0
  195. package/dist/media-4-qOIjO-.js +971 -0
  196. package/dist/media-DTwJhAbE.js +9481 -0
  197. package/dist/message-action-names-BsNTjuBE.js +2520 -0
  198. package/dist/message-action-names-ocKcq8_3.js +2520 -0
  199. package/dist/message-channel-CtcVHawF.js +91 -0
  200. package/dist/mime-CAqaK3kp.js +146 -0
  201. package/dist/mime-ViuhRuMM.js +146 -0
  202. package/dist/net-DSkFMHJ8.js +225 -0
  203. package/dist/net-DTqfFYzt.js +225 -0
  204. package/dist/node-cli-BeXU67eQ.js +1458 -0
  205. package/dist/node-cli-i2aCtnmM.js +1462 -0
  206. package/dist/node-service-RyMlWp8N.js +67 -0
  207. package/dist/node-service-TL9b6Qfz.js +67 -0
  208. package/dist/nodes-cli-CtqnXBMD.js +1346 -0
  209. package/dist/nodes-cli-DgQU3LrG.js +1350 -0
  210. package/dist/nodes-screen-B7HJugJ0.js +250 -0
  211. package/dist/nodes-screen-nCRd71Mk.js +250 -0
  212. package/dist/note-B6142LyJ.js +92 -0
  213. package/dist/note-D-EI0czq.js +92 -0
  214. package/dist/npm-registry-spec-PPyRXSpx.js +786 -0
  215. package/dist/npm-registry-spec-uUmDWe6v.js +786 -0
  216. package/dist/npm-resolution-BC1LqCm2.js +86 -0
  217. package/dist/npm-resolution-DhlhUmRF.js +86 -0
  218. package/dist/onboard-CHowLVEG.js +647 -0
  219. package/dist/onboard-D_eCnKjt.js +649 -0
  220. package/dist/onboard-auth-cNtb3FTP.js +211 -0
  221. package/dist/onboard-auth-gwz-0mZ6.js +207 -0
  222. package/dist/onboard-channels-CFsUIDWq.js +2618 -0
  223. package/dist/onboard-channels-ZCML5CWb.js +2619 -0
  224. package/dist/onboard-helpers-8afRV_Tm.js +364 -0
  225. package/dist/onboard-helpers-DTRrJLj-.js +363 -0
  226. package/dist/onboard-remote-CFkvVAYg.js +127 -0
  227. package/dist/onboard-remote-JfBnmK70.js +127 -0
  228. package/dist/onboarding-DIxNghyi.js +586 -0
  229. package/dist/onboarding-Dhh0bjrb.js +588 -0
  230. package/dist/onboarding.finalize-5uipJuOl.js +403 -0
  231. package/dist/onboarding.finalize-De4etQul.js +405 -0
  232. package/dist/onboarding.gateway-config-DolBTXWT.js +196 -0
  233. package/dist/onboarding.gateway-config-rJkIamlG.js +202 -0
  234. package/dist/outbound-CPMaDtgC.js +220 -0
  235. package/dist/outbound-CYSuCMiW.js +221 -0
  236. package/dist/outbound-attachment-Ci02LXoq.js +18 -0
  237. package/dist/outbound-attachment-CqZ7Qc_o.js +18 -0
  238. package/dist/outbound-attachment-CuqWdsdV.js +18 -0
  239. package/dist/pairing-cli-B9JKvvST.js +126 -0
  240. package/dist/pairing-cli-C4HrfIHe.js +130 -0
  241. package/dist/pairing-labels-CBmGQ31P.js +9 -0
  242. package/dist/pairing-labels-D0xwC7Xb.js +9 -0
  243. package/dist/pairing-store-BoF0g-iN.js +459 -0
  244. package/dist/pairing-store-CseXj-5p.js +460 -0
  245. package/dist/path-env-CPZbb7me.js +89 -0
  246. package/dist/path-safety-BFE0XmGC.js +14 -0
  247. package/dist/path-safety-BJ8ge6Ho.js +14 -0
  248. package/dist/paths-DHuXVC00.js +229 -0
  249. package/dist/plugin-auto-enable-B_9J1XED.js +302 -0
  250. package/dist/plugin-auto-enable-DghjlFCL.js +301 -0
  251. package/dist/plugin-registry-68h2T8vi.js +33 -0
  252. package/dist/plugin-registry-BitdVPb4.js +33 -0
  253. package/dist/plugin-sdk/agents/subagent-registry.store.d.ts +0 -1
  254. package/dist/plugin-sdk/auto-reply/reply/agent-runner-utils.d.ts +0 -11
  255. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +1 -4
  256. package/dist/plugin-sdk/auto-reply/reply/commands-subagents/shared.d.ts +1 -1
  257. package/dist/plugin-sdk/auto-reply/reply/commands-types.d.ts +1 -10
  258. package/dist/plugin-sdk/auto-reply/reply/directive-handling.levels.d.ts +1 -4
  259. package/dist/plugin-sdk/auto-reply/reply/directive-handling.params.d.ts +1 -8
  260. package/dist/plugin-sdk/auto-reply/reply/directive-handling.parse.d.ts +1 -23
  261. package/dist/plugin-sdk/auto-reply/reply/directive-handling.persist.d.ts +0 -2
  262. package/dist/plugin-sdk/auto-reply/reply/directive-handling.shared.d.ts +0 -22
  263. package/dist/plugin-sdk/auto-reply/reply/directives.d.ts +2 -29
  264. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-apply.d.ts +0 -8
  265. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-utils.d.ts +0 -1
  266. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -15
  267. package/dist/plugin-sdk/auto-reply/reply/get-reply-inline-actions.d.ts +1 -8
  268. package/dist/plugin-sdk/auto-reply/reply/get-reply-run.d.ts +1 -11
  269. package/dist/plugin-sdk/auto-reply/reply/queue/types.d.ts +1 -13
  270. package/dist/plugin-sdk/auto-reply/reply.d.ts +1 -1
  271. package/dist/plugin-sdk/auto-reply/status.d.ts +1 -4
  272. package/dist/plugin-sdk/auto-reply/templating.d.ts +0 -4
  273. package/dist/plugin-sdk/auto-reply/thinking.d.ts +0 -4
  274. package/dist/plugin-sdk/channels/dock.d.ts +1 -2
  275. package/dist/plugin-sdk/channels/plugins/types.adapters.d.ts +0 -6
  276. package/dist/plugin-sdk/channels/plugins/types.d.ts +1 -1
  277. package/dist/plugin-sdk/channels/plugins/types.plugin.d.ts +1 -2
  278. package/dist/plugin-sdk/commands/onboard-helpers.d.ts +0 -1
  279. package/dist/plugin-sdk/commands/onboard-types.d.ts +0 -2
  280. package/dist/plugin-sdk/config/legacy.migrations.d.ts +2 -1
  281. package/dist/plugin-sdk/config/legacy.shared.d.ts +0 -9
  282. package/dist/plugin-sdk/config/sessions/types.d.ts +0 -7
  283. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +0 -8
  284. package/dist/plugin-sdk/config/types.base.d.ts +0 -1
  285. package/dist/plugin-sdk/config/types.messages.d.ts +0 -4
  286. package/dist/plugin-sdk/config/types.tools.d.ts +0 -73
  287. package/dist/plugin-sdk/config/types.tts.d.ts +2 -1
  288. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +0 -4
  289. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +7 -197
  290. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +2 -10
  291. package/dist/plugin-sdk/config/zod-schema.core.d.ts +6 -234
  292. package/dist/plugin-sdk/config/zod-schema.d.ts +98 -301
  293. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +148 -160
  294. package/dist/plugin-sdk/config/zod-schema.providers-whatsapp.d.ts +12 -12
  295. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +88 -96
  296. package/dist/plugin-sdk/config/zod-schema.session.d.ts +4 -10
  297. package/dist/plugin-sdk/gateway/protocol/index.d.ts +11 -16
  298. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +0 -5
  299. package/dist/plugin-sdk/gateway/session-utils.types.d.ts +0 -1
  300. package/dist/plugin-sdk/index.js +295 -1236
  301. package/dist/plugin-sdk/line/config-schema.d.ts +4 -4
  302. package/dist/plugin-sdk/logging/levels.d.ts +1 -1
  303. package/dist/plugin-sdk/middleware/cli-runtime-base.d.ts +6 -0
  304. package/dist/plugin-sdk/middleware/runtimes/claude.d.ts +6 -0
  305. package/dist/plugin-sdk/middleware/runtimes/codex.d.ts +2 -2
  306. package/dist/plugin-sdk/middleware/runtimes/gemini.d.ts +8 -1
  307. package/dist/plugin-sdk/plugin-sdk/index.d.ts +3 -1
  308. package/dist/plugin-sdk/plugins/manifest-registry.d.ts +2 -0
  309. package/dist/plugin-sdk/plugins/manifest.d.ts +4 -4
  310. package/dist/plugin-sdk/plugins/registry.d.ts +18 -0
  311. package/dist/plugin-sdk/plugins/types.d.ts +4 -0
  312. package/dist/plugin-sdk/slack/manifest.d.ts +17 -0
  313. package/dist/plugin-sdk/stt/preflight.d.ts +2 -4
  314. package/dist/plugin-sdk/stt/providers/index.d.ts +1 -1
  315. package/dist/plugin-sdk/stt/providers/shared.d.ts +20 -1
  316. package/dist/plugin-sdk/tts/providers/edge.d.ts +2 -0
  317. package/dist/plugin-sdk/tts/providers/elevenlabs.d.ts +2 -0
  318. package/dist/plugin-sdk/tts/providers/index.d.ts +4 -0
  319. package/dist/plugin-sdk/tts/providers/openai.d.ts +2 -0
  320. package/dist/plugin-sdk/tts/tts.d.ts +13 -5
  321. package/dist/plugin-sdk/tts/types.d.ts +21 -0
  322. package/dist/plugins-BviLFPLV.js +255 -0
  323. package/dist/plugins-CaudBUbl.js +254 -0
  324. package/dist/plugins-cli-CsLhphNr.js +803 -0
  325. package/dist/plugins-cli-CujSP9NS.js +807 -0
  326. package/dist/ports-BtuzUQHl.js +370 -0
  327. package/dist/ports-CMcHia07.js +96 -0
  328. package/dist/ports-gRBeuUtp.js +316 -0
  329. package/dist/preflight-Bq8rimP-.js +667 -0
  330. package/dist/preflight-DyYbEp9X.js +667 -0
  331. package/dist/program-G8cGMPuz.js +250 -0
  332. package/dist/program-context-B9BwrbSx.js +474 -0
  333. package/dist/progress-BcwxtM9Q.js +124 -0
  334. package/dist/prompt-DtWGd43j.js +21 -0
  335. package/dist/prompt-select-styled-CpOsmtZi.js +1672 -0
  336. package/dist/prompt-select-styled-D-qBqrEJ.js +1669 -0
  337. package/dist/prompt-style-BpUMhEHC.js +9 -0
  338. package/dist/provider-auth-B7QgxlKt.js +187 -0
  339. package/dist/provider-auth-j-EQvvIk.js +187 -0
  340. package/dist/provider-dispatcher-Bx6CaIoV.js +660 -0
  341. package/dist/provider-dispatcher-DhkvjhO5.js +659 -0
  342. package/dist/push-apns--nEiZmEN.js +711 -0
  343. package/dist/push-apns-BtS6B6lb.js +713 -0
  344. package/dist/pw-ai-BpCsXF-x.js +1908 -0
  345. package/dist/pw-ai-ud_Kbn5S.js +1911 -0
  346. package/dist/qr-cli-BCeVLGfz.js +353 -0
  347. package/dist/qr-cli-Crsqtw01.js +349 -0
  348. package/dist/redact-Ci96Gj0O.js +191 -0
  349. package/dist/redact-snapshot-B9nof-Pb.js +1952 -0
  350. package/dist/redact-snapshot-BKiS91Mj.js +1952 -0
  351. package/dist/register.agent-GnCbOS2U.js +1014 -0
  352. package/dist/register.agent-Mwu5hgjA.js +292 -0
  353. package/dist/register.configure-By-Re240.js +130 -0
  354. package/dist/register.configure-rB-Q0WKu.js +135 -0
  355. package/dist/register.import-B83Dn36B.js +29 -0
  356. package/dist/register.import-wIYU2cVW.js +31 -0
  357. package/dist/register.maintenance-D5KctP9K.js +503 -0
  358. package/dist/register.maintenance-Er88Oxcm.js +501 -0
  359. package/dist/register.message-BQhRoEQQ.js +687 -0
  360. package/dist/register.message-CvZKWeGb.js +691 -0
  361. package/dist/register.onboard-BG064oHg.js +94 -0
  362. package/dist/register.onboard-CAKyc1Fc.js +98 -0
  363. package/dist/register.setup-C9sZLS_P.js +114 -0
  364. package/dist/register.setup-CVsZdhkJ.js +118 -0
  365. package/dist/register.status-health-sessions-BZJ0wTSa.js +429 -0
  366. package/dist/register.status-health-sessions-CyrUwwtB.js +667 -0
  367. package/dist/register.subclis-CQ_Pjkyv.js +267 -0
  368. package/dist/replies-BIx-MbQ7.js +136 -0
  369. package/dist/replies-DVU655H4.js +136 -0
  370. package/dist/reply-CL5VMSKN.js +12372 -0
  371. package/dist/reply-XKyfU3rS.js +12375 -0
  372. package/dist/reply-directives-DQfJ001O.js +182 -0
  373. package/dist/reply-directives-DfUITt7C.js +182 -0
  374. package/dist/reply-payloads-ZHo6kfTS.js +527 -0
  375. package/dist/reply-prefix-BSf3PC0x.js +37 -0
  376. package/dist/reply-prefix-DBTlMHLK.js +37 -0
  377. package/dist/resolve-route-B-_IgETc.js +249 -0
  378. package/dist/resolve-route-C8ZsgWDQ.js +249 -0
  379. package/dist/response-prefix-template-3LeqJx2X.js +134 -0
  380. package/dist/response-prefix-template-DBrUVx5V.js +134 -0
  381. package/dist/retry-CDrH81GP.js +77 -0
  382. package/dist/retry-Dar_7pCv.js +77 -0
  383. package/dist/run-main-DBFpx1kt.js +308 -0
  384. package/dist/secure-random-CLWSvf8A.js +44 -0
  385. package/dist/security-cli-B8lXw9ke.js +488 -0
  386. package/dist/security-cli-CRkS3VAf.js +483 -0
  387. package/dist/send-6g8QKfWj.js +374 -0
  388. package/dist/send-B5Hz1PIn.js +29 -0
  389. package/dist/send-B8eIlA1u.js +349 -0
  390. package/dist/send-BFZPQE4j.js +492 -0
  391. package/dist/send-BpTDvE0D.js +1779 -0
  392. package/dist/send-BxOrO1Wv.js +1776 -0
  393. package/dist/send-C6gPJu-Z.js +11 -0
  394. package/dist/send-C7MoKtkN.js +426 -0
  395. package/dist/send-CXzq2LI6.js +2245 -0
  396. package/dist/send-CYOZoObr.js +547 -0
  397. package/dist/send-CfQyIvcC.js +332 -0
  398. package/dist/send-DUtuuwhw.js +492 -0
  399. package/dist/send-DbafVwxp.js +2245 -0
  400. package/dist/send-DeZg8K7y.js +349 -0
  401. package/dist/send-DwkjxJlv.js +547 -0
  402. package/dist/send-iX9xbxlU.js +1178 -0
  403. package/dist/server-BKfCzEzd.js +206 -0
  404. package/dist/server-fmO4eo7K.js +202 -0
  405. package/dist/server-lifecycle-CgPpP10P.js +2437 -0
  406. package/dist/server-lifecycle-Cn8yY5MW.js +2437 -0
  407. package/dist/server-node-events-C-ZzSBYh.js +391 -0
  408. package/dist/server-node-events-DYlyfDHM.js +395 -0
  409. package/dist/service-C2j81L86.js +670 -0
  410. package/dist/service-C8a0SXHD.js +670 -0
  411. package/dist/session-AulYhqOb.js +170 -0
  412. package/dist/session-C6VKWvx6.js +170 -0
  413. package/dist/session-cost-usage-0Vs4hgMe.js +627 -0
  414. package/dist/session-cost-usage-C-DsaOfN.js +627 -0
  415. package/dist/session-dirs-CO1f2ArM.js +318 -0
  416. package/dist/session-dirs-DoboH7Oy.js +318 -0
  417. package/dist/session-utils-CRK8ToKG.js +621 -0
  418. package/dist/session-utils-DWlkmCX8.js +621 -0
  419. package/dist/sessions-DtqrmUJS.js +2553 -0
  420. package/dist/sessions-gT-4fcX-.js +245 -0
  421. package/dist/shell-env-c3j5zcU9.js +163 -0
  422. package/dist/ssrf-8wNqPNzN.js +183 -0
  423. package/dist/ssrf-CJIdPXuS.js +183 -0
  424. package/dist/status-BI_-xpDt.js +1947 -0
  425. package/dist/status-PZVwjKjl.js +1943 -0
  426. package/dist/status.update-BmuDZ7E7.js +449 -0
  427. package/dist/status.update-Mf6HSRvU.js +449 -0
  428. package/dist/store-B7PGEdFf.js +2555 -0
  429. package/dist/store-CzhBjUCN.js +64 -0
  430. package/dist/store-YkSxKAey.js +53 -0
  431. package/dist/store-ZNeFv2Q7.js +64 -0
  432. package/dist/subagent-registry-R1DiAM4R.js +4839 -0
  433. package/dist/subagent-registry-xLRXC8Bg.js +4841 -0
  434. package/dist/subsystem-BAW_f3DI.js +1195 -0
  435. package/dist/subsystem-DGSHVL8I.js +1081 -0
  436. package/dist/system-cli-9SvRrT9D.js +77 -0
  437. package/dist/system-cli-yCa5Q1YM.js +73 -0
  438. package/dist/systemd-40Rij3QR.js +547 -0
  439. package/dist/systemd-5C97CSzd.js +547 -0
  440. package/dist/systemd-hints-3iQteJw-.js +278 -0
  441. package/dist/systemd-hints-CyQqHq1i.js +278 -0
  442. package/dist/systemd-linger-B2rPbnAi.js +75 -0
  443. package/dist/systemd-linger-DDvkfxH-.js +75 -0
  444. package/dist/table-DFx25vNb.js +279 -0
  445. package/dist/tables-C5fI0PmT.js +55 -0
  446. package/dist/tables-Cm9qvQ9D.js +55 -0
  447. package/dist/tables-fRe01eP1.js +55 -0
  448. package/dist/tailnet-Da-_9e8E.js +40 -0
  449. package/dist/tailnet-xt92Yaop.js +40 -0
  450. package/dist/tailscale-CnV0JWca.js +230 -0
  451. package/dist/tailscale-VkEC8dzj.js +230 -0
  452. package/dist/targets-C99szk_e.js +114 -0
  453. package/dist/targets-CPaTjbpp.js +2607 -0
  454. package/dist/targets-CmC5m7Ey.js +53 -0
  455. package/dist/targets-D-p4rJVS.js +650 -0
  456. package/dist/targets-D2OQt8-7.js +650 -0
  457. package/dist/targets-D94MtTiZ.js +2606 -0
  458. package/dist/targets-RajrXTl7.js +220 -0
  459. package/dist/targets-_UWmnyI9.js +53 -0
  460. package/dist/thinking-4nOZPunr.js +60 -0
  461. package/dist/thinking-ZfH2V9Os.js +60 -0
  462. package/dist/tokens-TtJJxzRr.js +21 -0
  463. package/dist/tool-display-Bxs_1jIn.js +785 -0
  464. package/dist/tool-display-D9p_Ttkq.js +785 -0
  465. package/dist/tool-images-9Ron321Q.js +263 -0
  466. package/dist/tool-images-BWhy6WRN.js +263 -0
  467. package/dist/trash-B5xyvBDf.js +125 -0
  468. package/dist/trash-BpB96kHe.js +125 -0
  469. package/dist/tui-Ba0uZDrg.js +3237 -0
  470. package/dist/tui-Biz0HqDj.js +3237 -0
  471. package/dist/tui-cli-C-UV6o2v.js +63 -0
  472. package/dist/tui-cli-Ds_bLT-h.js +67 -0
  473. package/dist/types.tools-BBb2rl3g.js +23 -0
  474. package/dist/types.tools-BDJw1yFx.js +23 -0
  475. package/dist/update-Barj5dsg.js +349 -0
  476. package/dist/update-D839Q8su.js +349 -0
  477. package/dist/update-cli-2I4hm0Gy.js +1150 -0
  478. package/dist/update-cli-CcwXmMKB.js +1148 -0
  479. package/dist/usage-BI9kergH.js +5465 -0
  480. package/dist/utils-DPoNpP7D.js +631 -0
  481. package/dist/voice-credentials-64XAMSJm.js +46 -0
  482. package/dist/voice-credentials-v-CQkTpD.js +46 -0
  483. package/dist/web-63IbbidQ.js +3051 -0
  484. package/dist/web-D9N764Da.js +80 -0
  485. package/dist/web-DUvNYLzr.js +75 -0
  486. package/dist/webhooks-cli-owhVNNkz.js +334 -0
  487. package/dist/webhooks-cli-zlvka6QD.js +330 -0
  488. package/dist/whatsapp-actions-8DejyRG5.js +126 -0
  489. package/dist/whatsapp-actions-DCzp5LKe.js +131 -0
  490. package/dist/widearea-dns-CQqZIeu8.js +127 -0
  491. package/dist/workspace-CB7pVojf.js +441 -0
  492. package/dist/workspace-DWEyzM0F.js +439 -0
  493. package/dist/zod-schema-CvFqwpNE.js +2719 -0
  494. package/dist/zod-schema-Y5SQgJLm.js +2719 -0
  495. package/package.json +1 -1
  496. package/dist/accounts-Aqbb2_Fn.js +0 -270
  497. package/dist/accounts-Bo2bX8jP.js +0 -272
  498. package/dist/accounts-CJUdvsIZ.js +0 -32
  499. package/dist/accounts-D3fAPVzU.js +0 -36
  500. package/dist/accounts-DZmv4bXS.js +0 -47
  501. package/dist/accounts-DmB4SVPK.js +0 -47
  502. package/dist/accounts-DtkyfvwR.js +0 -36
  503. package/dist/ack-reactions-BqcZUQJ3.js +0 -446
  504. package/dist/ack-reactions-DXHaDBH-.js +0 -446
  505. package/dist/acp-cli-DVXhDMc6.js +0 -1324
  506. package/dist/acp-cli-QBL4_qcW.js +0 -1319
  507. package/dist/active-listener-CwxZ24bZ.js +0 -37
  508. package/dist/active-listener-v2sItamh.js +0 -37
  509. package/dist/agent-C5PZDKE1.js +0 -687
  510. package/dist/agent-helpers-BSGqeJr-.js +0 -400
  511. package/dist/agent-qCBPcUcF.js +0 -688
  512. package/dist/agent-scope-CJW7vnF8.js +0 -114
  513. package/dist/agent-scope-_ND_-bJy.js +0 -116
  514. package/dist/agents-Byc39Y4A.js +0 -760
  515. package/dist/agents.config-BgDBcY4h.js +0 -116
  516. package/dist/agents.config-D8gLHPWo.js +0 -116
  517. package/dist/audio-BIvUsncf.js +0 -43
  518. package/dist/audio-CQ8TfmVN.js +0 -43
  519. package/dist/audit-C0x7Cm6K.js +0 -3150
  520. package/dist/audit-CAY-uzWP.js +0 -3150
  521. package/dist/auth-DGqCLaQq.js +0 -448
  522. package/dist/auth-DLTRySEi.js +0 -314
  523. package/dist/auth-Drf91ntw.js +0 -315
  524. package/dist/auth-ku2khJyQ.js +0 -448
  525. package/dist/banner-CGI3XOm4.js +0 -294
  526. package/dist/binaries-BTvHIrCr.js +0 -13
  527. package/dist/bindings-Dr0bGRst.js +0 -69
  528. package/dist/bindings-DsWJQVKh.js +0 -69
  529. package/dist/bonjour-discovery-BElR62fH.js +0 -378
  530. package/dist/bonjour-discovery-C8XyVsjb.js +0 -378
  531. package/dist/browser-cli-DxJew43l.js +0 -1694
  532. package/dist/browser-cli-p0nakrjO.js +0 -1690
  533. package/dist/call-BrTmlOx3.js +0 -518
  534. package/dist/call-ChdUdwb4.js +0 -517
  535. package/dist/catalog-DTlcfTT9.js +0 -185
  536. package/dist/catalog-PixZqhZK.js +0 -185
  537. package/dist/channel-account-context-BO245Tcn.js +0 -133
  538. package/dist/channel-account-context-BgK0hm-I.js +0 -133
  539. package/dist/channel-activity-B0qlUR5e.js +0 -292
  540. package/dist/channel-activity-C-L6rDrQ.js +0 -94
  541. package/dist/channel-activity-DdgLBZ7M.js +0 -94
  542. package/dist/channel-options-C1Q9SUhv.js +0 -33
  543. package/dist/channel-options-zANFhRx_.js +0 -32
  544. package/dist/channel-selection-DW21dXB1.js +0 -51
  545. package/dist/channel-selection-wK_6S2Ku.js +0 -51
  546. package/dist/channel-web-DCSjrtlh.js +0 -2136
  547. package/dist/channel-web-JCgegBgG.js +0 -2134
  548. package/dist/channels-cli-D48ytzLq.js +0 -1438
  549. package/dist/channels-cli-hZbUcB3G.js +0 -1434
  550. package/dist/channels-status-issues-B6I2l7Sm.js +0 -18
  551. package/dist/channels-status-issues-DhDH2fWp.js +0 -18
  552. package/dist/chat-envelope-BIujl9Cj.js +0 -248
  553. package/dist/chat-envelope-CrM0X4sl.js +0 -248
  554. package/dist/chrome-Dqtq7zCc.js +0 -1733
  555. package/dist/chrome-XeSY99Z_.js +0 -1732
  556. package/dist/chunk-LUabyS9k.js +0 -341
  557. package/dist/clack-prompter-fAgbvPW4.js +0 -122
  558. package/dist/clack-prompter-kf9qTN5p.js +0 -121
  559. package/dist/cleanup-utils-CNwlTKyR.js +0 -94
  560. package/dist/cli-BTLaY8q4.js +0 -133
  561. package/dist/cli-CZV23GbW.js +0 -129
  562. package/dist/client-B9u3JdT_.js +0 -2316
  563. package/dist/client-DEEOhx0w.js +0 -2316
  564. package/dist/clipboard-B2nstLx7.js +0 -31
  565. package/dist/clipboard-C8QI9fes.js +0 -31
  566. package/dist/command-format-D0vKipG9.js +0 -32
  567. package/dist/command-format-LFmgWzKJ.js +0 -18
  568. package/dist/command-registry-BPXqH4ST.js +0 -215
  569. package/dist/commands-BAYwlS3d.js +0 -41
  570. package/dist/commands-D842kCjj.js +0 -41
  571. package/dist/commands-registry-Cg2GTT2J.js +0 -892
  572. package/dist/commands-registry-Yz-uV5oG.js +0 -891
  573. package/dist/common-B67cBSew.js +0 -156
  574. package/dist/common-DEoiTqOr.js +0 -156
  575. package/dist/completion-cli-D5J3fPka.js +0 -452
  576. package/dist/completion-cli-Dd1g-p7S.js +0 -452
  577. package/dist/config-CAa0rZSx.js +0 -4225
  578. package/dist/config-W0w-gi2j.js +0 -4223
  579. package/dist/config-cli-Ddz-yCdQ.js +0 -247
  580. package/dist/config-cli-shgSFYig.js +0 -243
  581. package/dist/config-guard-BI85dxHR.js +0 -99
  582. package/dist/config-guard-DQqnigKh.js +0 -75
  583. package/dist/config-validation-D-h4LHyA.js +0 -18
  584. package/dist/config-validation-Df_kroIQ.js +0 -18
  585. package/dist/configure-BnFwpZ3l.js +0 -891
  586. package/dist/configure-Cj4mlKSH.js +0 -889
  587. package/dist/control-auth-BrBr2xb8.js +0 -397
  588. package/dist/control-auth-CehjYKnL.js +0 -397
  589. package/dist/control-ui-assets-D8F383Mo.js +0 -186
  590. package/dist/control-ui-assets-DYKtRIm0.js +0 -186
  591. package/dist/conversation-label-Bn5j3lUT.js +0 -36
  592. package/dist/cron-cli-DVzDHzAX.js +0 -494
  593. package/dist/cron-cli-gkH2qKM4.js +0 -498
  594. package/dist/daemon-cli-BTdNO1vH.js +0 -737
  595. package/dist/daemon-cli-DNNqI2LD.js +0 -735
  596. package/dist/daemon-install-CaEHG92p.js +0 -56
  597. package/dist/daemon-install-DbpDSDfW.js +0 -60
  598. package/dist/daemon-install-helpers-DjE_WnlY.js +0 -504
  599. package/dist/daemon-install-helpers-DocTUxqQ.js +0 -504
  600. package/dist/deliver-CDcL8ok6.js +0 -481
  601. package/dist/deliver-CS8JsevV.js +0 -481
  602. package/dist/delivery-queue-CTaYZQ_8.js +0 -244
  603. package/dist/delivery-queue-DMZ7mH8P.js +0 -244
  604. package/dist/devices-cli-BBJ4His-.js +0 -319
  605. package/dist/devices-cli-DHSJSFW1.js +0 -323
  606. package/dist/diagnostics-BSvCaLNs.js +0 -35
  607. package/dist/diagnostics-mWFAsFeo.js +0 -35
  608. package/dist/directory-cli-C-oHD_XE.js +0 -224
  609. package/dist/directory-cli-Cw99VGvr.js +0 -220
  610. package/dist/dispatcher-C8d1NNLZ.js +0 -174
  611. package/dist/dispatcher-DY6Ga60j.js +0 -173
  612. package/dist/dm-policy-shared-CRQ-Wr5g.js +0 -22
  613. package/dist/dm-policy-shared-CXXf2ltd.js +0 -22
  614. package/dist/dns-cli-BOqx9qo1.js +0 -199
  615. package/dist/dns-cli-WfqSC3JU.js +0 -203
  616. package/dist/dock-Big-J2VN.js +0 -929
  617. package/dist/dock-Cj4PKiUh.js +0 -928
  618. package/dist/doctor-completion-B9RsNJKh.js +0 -92
  619. package/dist/doctor-completion-DhNvADTs.js +0 -92
  620. package/dist/doctor-config-flow-BUuADMDa.js +0 -1935
  621. package/dist/doctor-config-flow-yOUpQC2B.js +0 -1934
  622. package/dist/enable-DC9V0nTO.js +0 -59
  623. package/dist/enable-DzXMQJ-o.js +0 -59
  624. package/dist/env-B3zr72vQ.js +0 -60
  625. package/dist/errors-CdmXrBic.js +0 -35
  626. package/dist/errors-Cr_NbOb4.js +0 -35
  627. package/dist/exec-D_s-zAtY.js +0 -164
  628. package/dist/exec-Zz6eJ6YU.js +0 -164
  629. package/dist/fetch-C8pdlo4-.js +0 -67
  630. package/dist/fetch-DRVdxxEj.js +0 -67
  631. package/dist/file-lock-6NXMPZTT.js +0 -107
  632. package/dist/file-lock-C_KRlR7M.js +0 -107
  633. package/dist/fs-safe-DZHpH7TI.js +0 -98
  634. package/dist/fs-safe-vm3JMUkq.js +0 -88
  635. package/dist/gateway-cli-CebjflhZ.js +0 -24337
  636. package/dist/gateway-cli-Y9U6rbPB.js +0 -24333
  637. package/dist/gateway-rpc-BCFkQPa2.js +0 -28
  638. package/dist/gateway-rpc-DOgYbsOG.js +0 -28
  639. package/dist/gmail-setup-utils-DMeA1UM1.js +0 -423
  640. package/dist/gmail-setup-utils-FHWSAur3.js +0 -422
  641. package/dist/health-CXWQZGNz.js +0 -1414
  642. package/dist/health-DCC6hoLO.js +0 -1417
  643. package/dist/health-format-CVgQD-z9.js +0 -28
  644. package/dist/heartbeat-visibility-Cv0ejWJ-.js +0 -125
  645. package/dist/heartbeat-visibility-Da3TDQp2.js +0 -125
  646. package/dist/help-format-DM6-OBt-.js +0 -17
  647. package/dist/hook-runner-global-C0DFQmQw.js +0 -527
  648. package/dist/hooks-cli-CB5rKhHe.js +0 -1221
  649. package/dist/hooks-cli-Dy7m9hzM.js +0 -1225
  650. package/dist/image-ops-B9ofmzSq.js +0 -354
  651. package/dist/image-ops-CMuvRsMY.js +0 -354
  652. package/dist/import-BH13F5mT.js +0 -606
  653. package/dist/import-D8HVcDqO.js +0 -604
  654. package/dist/inbound-context-CmmmT8IP.js +0 -68
  655. package/dist/inbound-path-policy-BdmTOUka.js +0 -90
  656. package/dist/inbound-path-policy-BurOAu44.js +0 -90
  657. package/dist/inspect-nW8LAukU.js +0 -286
  658. package/dist/inspect-xy2EHy8G.js +0 -286
  659. package/dist/installs-CpfHmKY1.js +0 -325
  660. package/dist/installs-DebiMrGj.js +0 -325
  661. package/dist/ipv4-ysiNGssl.js +0 -46
  662. package/dist/ipv4-zc_Hfvbp.js +0 -46
  663. package/dist/ir-CaxTklDC.js +0 -940
  664. package/dist/lifecycle-core-Z5SScMlU.js +0 -476
  665. package/dist/lifecycle-core-pPwYSt7m.js +0 -474
  666. package/dist/links-D5vtq30Q.js +0 -15
  667. package/dist/loader-BVHaRcP7.js +0 -22404
  668. package/dist/loader-CxSGgugQ.js +0 -22401
  669. package/dist/local-roots-CrJ_Jv_G.js +0 -314
  670. package/dist/local-roots-n_Y4iYwb.js +0 -313
  671. package/dist/logger-B8yHnzPl.js +0 -49
  672. package/dist/logging-FctZEleJ.js +0 -20
  673. package/dist/login-C99fsB0N.js +0 -61
  674. package/dist/login-cLvGPjeO.js +0 -62
  675. package/dist/login-qr-CGqRFwgl.js +0 -329
  676. package/dist/login-qr-dnY5DC2C.js +0 -325
  677. package/dist/logs-cli-Bda7xY4N.js +0 -236
  678. package/dist/logs-cli-HzR-vnpD.js +0 -240
  679. package/dist/markdown-tables-58Hq__7K.js +0 -29
  680. package/dist/markdown-tables-GFEX0OR6.js +0 -29
  681. package/dist/media-C1SIfGTn.js +0 -10452
  682. package/dist/media-CFsyXs3H.js +0 -940
  683. package/dist/message-action-names-BgsKGLDS.js +0 -2521
  684. package/dist/message-action-names-DkZwEFhU.js +0 -2521
  685. package/dist/message-channel-FMNRI5Ax.js +0 -91
  686. package/dist/mime-AuIDUZPG.js +0 -149
  687. package/dist/mime-Cqg1jjia.js +0 -149
  688. package/dist/net-BEFkF-nI.js +0 -225
  689. package/dist/net-CNsUGiSw.js +0 -225
  690. package/dist/node-cli-Bu-InsO9.js +0 -1462
  691. package/dist/node-cli-DE7Pm7Fr.js +0 -1458
  692. package/dist/node-service-CumFZc9L.js +0 -67
  693. package/dist/node-service-DY1gG06I.js +0 -67
  694. package/dist/nodes-cli-B5aAExN0.js +0 -1350
  695. package/dist/nodes-cli-eKRqlKuO.js +0 -1346
  696. package/dist/nodes-screen-B3Sij1uT.js +0 -250
  697. package/dist/nodes-screen-DEvpoFmH.js +0 -250
  698. package/dist/note-CPFJCWJJ.js +0 -92
  699. package/dist/note-DHUJACHE.js +0 -92
  700. package/dist/npm-registry-spec-BgMtTHvq.js +0 -786
  701. package/dist/npm-registry-spec-Dz3z1Zpd.js +0 -786
  702. package/dist/npm-resolution-BXiQH99t.js +0 -86
  703. package/dist/npm-resolution-CqE0nhxJ.js +0 -86
  704. package/dist/onboard-DK2z3w1P.js +0 -649
  705. package/dist/onboard-auth-C_wHkop1.js +0 -207
  706. package/dist/onboard-auth-CkCBLvTg.js +0 -211
  707. package/dist/onboard-channels-C8_OLbPk.js +0 -2547
  708. package/dist/onboard-channels-w_tnOhVu.js +0 -2548
  709. package/dist/onboard-helpers-Q7M6vdzh.js +0 -363
  710. package/dist/onboard-helpers-SCO3k5Y8.js +0 -364
  711. package/dist/onboard-remote-Co2hv1AD.js +0 -127
  712. package/dist/onboard-remote-Dl3BFSg2.js +0 -127
  713. package/dist/onboard-rioH3DW6.js +0 -647
  714. package/dist/onboarding-CsXVuzFP.js +0 -586
  715. package/dist/onboarding-r5RCkc-Z.js +0 -588
  716. package/dist/onboarding.finalize-BY8uN1nD.js +0 -402
  717. package/dist/onboarding.finalize-C-kfj-aR.js +0 -404
  718. package/dist/onboarding.gateway-config-BL0Q7Wpg.js +0 -201
  719. package/dist/onboarding.gateway-config-D2QsXMYO.js +0 -195
  720. package/dist/outbound-CcaPcetn.js +0 -220
  721. package/dist/outbound-CeiW8z3a.js +0 -221
  722. package/dist/outbound-attachment-BLSGI2dJ.js +0 -18
  723. package/dist/outbound-attachment-Bfm5-JYe.js +0 -18
  724. package/dist/outbound-attachment-CZ7zoYxB.js +0 -18
  725. package/dist/pairing-cli-CgX79ujL.js +0 -125
  726. package/dist/pairing-cli-DvbbXFgC.js +0 -129
  727. package/dist/pairing-labels-3wDxaApH.js +0 -9
  728. package/dist/pairing-labels-DCbWnbWk.js +0 -9
  729. package/dist/pairing-store-CdY7iRS0.js +0 -459
  730. package/dist/pairing-store-DykkYpQ7.js +0 -460
  731. package/dist/path-env-Cqo5LZmw.js +0 -89
  732. package/dist/path-guards-DOpzcMXz.js +0 -31
  733. package/dist/path-guards-DipYoPVw.js +0 -31
  734. package/dist/path-safety-CXKAVpMp.js +0 -14
  735. package/dist/path-safety-DGB91qBk.js +0 -14
  736. package/dist/paths-BTaH3rLn.js +0 -232
  737. package/dist/plugin-auto-enable-C6FPGg_-.js +0 -301
  738. package/dist/plugin-auto-enable-L8eOc8iC.js +0 -302
  739. package/dist/plugin-registry-BTycBIix.js +0 -33
  740. package/dist/plugin-registry-CFty9Gym.js +0 -33
  741. package/dist/plugin-sdk/auto-reply/reply/elevated-allowlist-matcher.d.ts +0 -20
  742. package/dist/plugin-sdk/auto-reply/reply/elevated-unavailable.d.ts +0 -8
  743. package/dist/plugin-sdk/auto-reply/reply/reply-elevated.d.ts +0 -16
  744. package/dist/plugin-sdk/compat/legacy-names.d.ts +0 -8
  745. package/dist/plugin-sdk/config/legacy.migrations.part-1.d.ts +0 -2
  746. package/dist/plugin-sdk/config/legacy.migrations.part-2.d.ts +0 -2
  747. package/dist/plugin-sdk/config/legacy.migrations.part-3.d.ts +0 -2
  748. package/dist/plugin-sdk/cron/legacy-delivery.d.ts +0 -3
  749. package/dist/plugin-sdk/cron/payload-migration.d.ts +0 -3
  750. package/dist/plugin-sdk/link-understanding/apply.d.ts +0 -10
  751. package/dist/plugin-sdk/link-understanding/defaults.d.ts +0 -2
  752. package/dist/plugin-sdk/link-understanding/detect.d.ts +0 -3
  753. package/dist/plugin-sdk/link-understanding/format.d.ts +0 -4
  754. package/dist/plugin-sdk/link-understanding/runner.d.ts +0 -11
  755. package/dist/plugin-sdk/media/input-files.d.ts +0 -95
  756. package/dist/plugin-sdk/media-understanding/apply.d.ts +0 -19
  757. package/dist/plugin-sdk/media-understanding/attachments.d.ts +0 -49
  758. package/dist/plugin-sdk/media-understanding/concurrency.d.ts +0 -1
  759. package/dist/plugin-sdk/media-understanding/defaults.d.ts +0 -11
  760. package/dist/plugin-sdk/media-understanding/errors.d.ts +0 -6
  761. package/dist/plugin-sdk/media-understanding/format.d.ts +0 -7
  762. package/dist/plugin-sdk/media-understanding/fs.d.ts +0 -1
  763. package/dist/plugin-sdk/media-understanding/output-extract.d.ts +0 -2
  764. package/dist/plugin-sdk/media-understanding/providers/anthropic/index.d.ts +0 -2
  765. package/dist/plugin-sdk/media-understanding/providers/deepgram/audio.d.ts +0 -1
  766. package/dist/plugin-sdk/media-understanding/providers/deepgram/index.d.ts +0 -2
  767. package/dist/plugin-sdk/media-understanding/providers/google/audio.d.ts +0 -1
  768. package/dist/plugin-sdk/media-understanding/providers/google/index.d.ts +0 -2
  769. package/dist/plugin-sdk/media-understanding/providers/google/video.d.ts +0 -3
  770. package/dist/plugin-sdk/media-understanding/providers/groq/index.d.ts +0 -2
  771. package/dist/plugin-sdk/media-understanding/providers/index.d.ts +0 -4
  772. package/dist/plugin-sdk/media-understanding/providers/minimax/index.d.ts +0 -2
  773. package/dist/plugin-sdk/media-understanding/providers/mistral/index.d.ts +0 -2
  774. package/dist/plugin-sdk/media-understanding/providers/moonshot/index.d.ts +0 -2
  775. package/dist/plugin-sdk/media-understanding/providers/moonshot/video.d.ts +0 -3
  776. package/dist/plugin-sdk/media-understanding/providers/openai/audio.d.ts +0 -1
  777. package/dist/plugin-sdk/media-understanding/providers/openai/index.d.ts +0 -2
  778. package/dist/plugin-sdk/media-understanding/providers/shared.d.ts +0 -20
  779. package/dist/plugin-sdk/media-understanding/providers/zai/index.d.ts +0 -2
  780. package/dist/plugin-sdk/media-understanding/resolve.d.ts +0 -44
  781. package/dist/plugin-sdk/media-understanding/runner.d.ts +0 -34
  782. package/dist/plugin-sdk/media-understanding/runner.entries.d.ts +0 -33
  783. package/dist/plugin-sdk/media-understanding/scope.d.ts +0 -9
  784. package/dist/plugin-sdk/media-understanding/types.d.ts +0 -59
  785. package/dist/plugin-sdk/media-understanding/video.d.ts +0 -2
  786. package/dist/plugin-sdk/utils/run-with-concurrency.d.ts +0 -11
  787. package/dist/plugins-7B167wIj.js +0 -453
  788. package/dist/plugins-BRHOfy1Z.js +0 -455
  789. package/dist/plugins-cli-CQGW40I-.js +0 -797
  790. package/dist/plugins-cli-D-ZfWRTw.js +0 -801
  791. package/dist/ports-CAqyeQYZ.js +0 -316
  792. package/dist/ports-CTUgXF2d.js +0 -96
  793. package/dist/ports-DqfnVnCw.js +0 -370
  794. package/dist/preflight-CJqKHCYa.js +0 -64
  795. package/dist/preflight-TR92sc61.js +0 -68
  796. package/dist/program-_SGrjcuG.js +0 -248
  797. package/dist/program-context-B6yIPfYd.js +0 -474
  798. package/dist/progress-BOdRbOHD.js +0 -124
  799. package/dist/prompt-WEkXwIMT.js +0 -21
  800. package/dist/prompt-select-styled-BiBnOTh8.js +0 -1669
  801. package/dist/prompt-select-styled-DQacku67.js +0 -1672
  802. package/dist/prompt-style-B4Cq4PyQ.js +0 -9
  803. package/dist/provider-dispatcher-BjsUFEpi.js +0 -659
  804. package/dist/provider-dispatcher-BxNDRVIT.js +0 -660
  805. package/dist/push-apns-Cj0Ryn18.js +0 -713
  806. package/dist/push-apns-fFfYCqda.js +0 -711
  807. package/dist/pw-ai-CnN2sITD.js +0 -1908
  808. package/dist/pw-ai-fnX3cecw.js +0 -1911
  809. package/dist/qr-cli-CriPg41m.js +0 -349
  810. package/dist/qr-cli-DSURqD0D.js +0 -353
  811. package/dist/redact-gXuh8MFk.js +0 -191
  812. package/dist/redact-snapshot-BecRL_h6.js +0 -2016
  813. package/dist/redact-snapshot-pTdzSrex.js +0 -2016
  814. package/dist/register.agent-Bpwvc5By.js +0 -1018
  815. package/dist/register.agent-DQFcnOVQ.js +0 -290
  816. package/dist/register.configure-C5CK8tgd.js +0 -133
  817. package/dist/register.configure-CEJ5Wrkl.js +0 -128
  818. package/dist/register.import-CPQqqdje.js +0 -31
  819. package/dist/register.import-D1UaH1QV.js +0 -29
  820. package/dist/register.maintenance-Bpz-NOhG.js +0 -499
  821. package/dist/register.maintenance-DDwlfAfw.js +0 -501
  822. package/dist/register.message-BoNswT8e.js +0 -685
  823. package/dist/register.message-pvz70g_-.js +0 -689
  824. package/dist/register.onboard-BvcVLNp3.js +0 -93
  825. package/dist/register.onboard-CZV7LvZI.js +0 -97
  826. package/dist/register.setup-Cgv2uSPG.js +0 -117
  827. package/dist/register.setup-yTqvTinY.js +0 -113
  828. package/dist/register.status-health-sessions-LK50hWDT.js +0 -428
  829. package/dist/register.status-health-sessions-kDGDihye.js +0 -668
  830. package/dist/register.subclis-DSr7AHAr.js +0 -267
  831. package/dist/replies-IpiCq1Ht.js +0 -136
  832. package/dist/replies-LSx_XhsP.js +0 -136
  833. package/dist/reply-B8It91bP.js +0 -13652
  834. package/dist/reply-CbgHVTv2.js +0 -13649
  835. package/dist/reply-directives-Cz7622Qx.js +0 -182
  836. package/dist/reply-directives-ssnaPNiU.js +0 -182
  837. package/dist/reply-payloads-CQMtrphw.js +0 -527
  838. package/dist/reply-prefix-CWcAZKhE.js +0 -37
  839. package/dist/reply-prefix-Drq7Pf3A.js +0 -37
  840. package/dist/resolve-route-B8uIc2H3.js +0 -249
  841. package/dist/resolve-route-C8ooNlI4.js +0 -249
  842. package/dist/response-prefix-template-D3ZcJP4E.js +0 -134
  843. package/dist/response-prefix-template-DPOggmPO.js +0 -134
  844. package/dist/retry-B19gMxS7.js +0 -77
  845. package/dist/retry-BdhJlZQI.js +0 -77
  846. package/dist/run-main-BP3UHEJa.js +0 -306
  847. package/dist/runner-CD3YycXx.js +0 -2365
  848. package/dist/runner-D74Wiza_.js +0 -2365
  849. package/dist/secure-random-CQa3H-OL.js +0 -44
  850. package/dist/security-cli-05blEYyC.js +0 -482
  851. package/dist/security-cli-DYbt8duB.js +0 -487
  852. package/dist/send-7O3-bRtl.js +0 -547
  853. package/dist/send-9Huf62k3.js +0 -2245
  854. package/dist/send-B0C42B2A.js +0 -426
  855. package/dist/send-B9mIJdUo.js +0 -547
  856. package/dist/send-BHm9dk6D.js +0 -1178
  857. package/dist/send-BetMntNc.js +0 -11
  858. package/dist/send-Bj0RXr-a.js +0 -492
  859. package/dist/send-COuVtZ4b.js +0 -374
  860. package/dist/send-CXNuhYA-.js +0 -332
  861. package/dist/send-Ce_BDa8P.js +0 -349
  862. package/dist/send-ChvasRSh.js +0 -1779
  863. package/dist/send-DNVRlTEF.js +0 -29
  864. package/dist/send-DWf7BCPe.js +0 -492
  865. package/dist/send-Dd2_MykI.js +0 -2245
  866. package/dist/send-IJaUAa8H.js +0 -1776
  867. package/dist/send-vvZXksNU.js +0 -349
  868. package/dist/server-BrzR9JmX.js +0 -206
  869. package/dist/server-_h27-uP_.js +0 -202
  870. package/dist/server-lifecycle-CUdA6Far.js +0 -2437
  871. package/dist/server-lifecycle-DQZWL8iP.js +0 -2437
  872. package/dist/server-node-events-DSefRBGC.js +0 -394
  873. package/dist/server-node-events-jDiG1-M2.js +0 -390
  874. package/dist/service-9le8AnC-.js +0 -670
  875. package/dist/service-Drb0kx6I.js +0 -670
  876. package/dist/session-BIAOl5QR.js +0 -170
  877. package/dist/session-Wu00pCn_.js +0 -170
  878. package/dist/session-cost-usage-7plmOKbs.js +0 -627
  879. package/dist/session-cost-usage-CPFxBFUg.js +0 -627
  880. package/dist/session-dirs-CfIrIJxG.js +0 -318
  881. package/dist/session-dirs-DlPpWt5Q.js +0 -318
  882. package/dist/session-utils-Sd9w4vc1.js +0 -622
  883. package/dist/session-utils-iL47hYmZ.js +0 -622
  884. package/dist/sessions-6pKQ3gN3.js +0 -247
  885. package/dist/sessions-ZRmCDdj1.js +0 -2569
  886. package/dist/shell-env-DYZq9PqC.js +0 -163
  887. package/dist/ssrf-B-rF_tZB.js +0 -183
  888. package/dist/ssrf-DJW14Wkh.js +0 -183
  889. package/dist/status-BGM-EJGk.js +0 -1983
  890. package/dist/status-CGkrO9om.js +0 -1979
  891. package/dist/status.update-DlBReI5-.js +0 -449
  892. package/dist/status.update-v7fEQ7R9.js +0 -449
  893. package/dist/store-B5989JkX.js +0 -64
  894. package/dist/store-BpXxa0Uf.js +0 -53
  895. package/dist/store-DCrrxHyS.js +0 -2571
  896. package/dist/store-Ql6vAcsg.js +0 -64
  897. package/dist/subagent-registry-BGknZEUI.js +0 -4856
  898. package/dist/subagent-registry-CWeRBjfn.js +0 -4854
  899. package/dist/subsystem-Ct6qOOqZ.js +0 -1079
  900. package/dist/subsystem-PQ64_nsu.js +0 -1136
  901. package/dist/system-cli-CmO-4Rju.js +0 -77
  902. package/dist/system-cli-VBsa18K6.js +0 -73
  903. package/dist/systemd-CqFpK30Y.js +0 -547
  904. package/dist/systemd-fK9AV5bP.js +0 -547
  905. package/dist/systemd-hints-D3rr0j14.js +0 -278
  906. package/dist/systemd-hints-DNOSRaqA.js +0 -278
  907. package/dist/systemd-linger-B907NVVy.js +0 -75
  908. package/dist/systemd-linger-wYksBbM7.js +0 -75
  909. package/dist/table-C-dba-5-.js +0 -279
  910. package/dist/tables-CO_kxD0e.js +0 -55
  911. package/dist/tables-Rd6ZUH0u.js +0 -55
  912. package/dist/tables-WZp8Vt9n.js +0 -55
  913. package/dist/tailnet-CfZhpSnt.js +0 -40
  914. package/dist/tailnet-D0NV0tRJ.js +0 -40
  915. package/dist/tailscale-B__xvMjA.js +0 -230
  916. package/dist/tailscale-q_ZrxUCc.js +0 -230
  917. package/dist/targets-B4rMyQFJ.js +0 -53
  918. package/dist/targets-BEBzTa22.js +0 -114
  919. package/dist/targets-BjWhDMJM.js +0 -650
  920. package/dist/targets-BlEVuFSt.js +0 -2474
  921. package/dist/targets-CHwGDIgO.js +0 -650
  922. package/dist/targets-CbbmgMRV.js +0 -2473
  923. package/dist/targets-SpN-MPBH.js +0 -220
  924. package/dist/targets-mqj9GNg1.js +0 -53
  925. package/dist/thinking-BqJmU6Zp.js +0 -88
  926. package/dist/thinking-l-rrvZwu.js +0 -88
  927. package/dist/tokens-DAFBx5qr.js +0 -21
  928. package/dist/tool-display-C0hpLmkw.js +0 -785
  929. package/dist/tool-display-CQTRHo3Z.js +0 -785
  930. package/dist/tool-images-BYY11Gw3.js +0 -263
  931. package/dist/tool-images-CnJ0R8Fo.js +0 -263
  932. package/dist/trash-C0mjnHuW.js +0 -125
  933. package/dist/trash-Cgwc9mLD.js +0 -125
  934. package/dist/tui-9cJnR1dN.js +0 -3282
  935. package/dist/tui-BR3egaFJ.js +0 -3282
  936. package/dist/tui-cli-BYpkhE6J.js +0 -66
  937. package/dist/tui-cli-DndeZyup.js +0 -62
  938. package/dist/update-BJVdkzk7.js +0 -349
  939. package/dist/update-DjI6KTA5.js +0 -349
  940. package/dist/update-cli-DR-zFdCm.js +0 -1146
  941. package/dist/update-cli-EuHV_AUf.js +0 -1148
  942. package/dist/usage-BQUMGgBj.js +0 -5350
  943. package/dist/utils-C5daYcFn.js +0 -631
  944. package/dist/voice-credentials-CXdoE4IF.js +0 -45
  945. package/dist/voice-credentials-Cu7htUQq.js +0 -45
  946. package/dist/web-6WVkqhtO.js +0 -3087
  947. package/dist/web-BfSXKISl.js +0 -74
  948. package/dist/web-Cngqu3vs.js +0 -79
  949. package/dist/webhooks-cli-0yQha2yj.js +0 -334
  950. package/dist/webhooks-cli-ula0bTX-.js +0 -330
  951. package/dist/whatsapp-actions-3NdzsNg1.js +0 -130
  952. package/dist/whatsapp-actions-y_1vjkYY.js +0 -125
  953. package/dist/widearea-dns-C-0P7TRi.js +0 -127
  954. package/dist/workspace-BT3X-qCZ.js +0 -449
  955. package/dist/workspace-D5hHXubL.js +0 -447
  956. package/dist/zod-schema-CbqZAIYy.js +0 -2696
  957. package/dist/zod-schema-YGQJEcnj.js +0 -2696
  958. /package/dist/{account-lookup-BOCzCnir.js → account-lookup-CIY_RKhi.js} +0 -0
  959. /package/dist/{agent-helpers-eEHy5uX2.js → agent-helpers-Bs2nBXeI.js} +0 -0
  960. /package/dist/{api-Cd_7aESj.js → api-BE4ZCWWB.js} +0 -0
  961. /package/dist/{api-DJ_oWYus.js → api-wsk9zRVi.js} +0 -0
  962. /package/dist/{chat-type-DyovJwCt.js → chat-type-BP9akbag.js} +0 -0
  963. /package/dist/{chunk-CWD_zrz_.js → chunk-BAMyFYtF.js} +0 -0
  964. /package/dist/{cleanup-utils-gNzIs9yk.js → cleanup-utils-ZC2zvntc.js} +0 -0
  965. /package/dist/{cli-name-3MdfbvIR.js → cli-name-BZsYSp9l.js} +0 -0
  966. /package/dist/{cli-name-CRLBidNP.js → cli-name-CRe5Ow_t.js} +0 -0
  967. /package/dist/{cli-utils-5ZIfXAfM.js → cli-utils-CGB3cBZm.js} +0 -0
  968. /package/dist/{client-D5m46AuY.js → client-9dK56xly.js} +0 -0
  969. /package/dist/{client-DFyI5I0n.js → client-D-R1YdRD.js} +0 -0
  970. /package/dist/{command-options-Cn2fc1Of.js → command-options-CnHA4TzR.js} +0 -0
  971. /package/dist/{config-eval-BCKpAS_K.js → config-eval-BQIR-wSg.js} +0 -0
  972. /package/dist/{config-eval-CU2G7a83.js → config-eval-Bh82JoXK.js} +0 -0
  973. /package/dist/{constants-CRGAZ2ow.js → constants-C7j1VA2S.js} +0 -0
  974. /package/dist/{constants-BAZuhSRm.js → constants-PMRtHBHU.js} +0 -0
  975. /package/dist/{credentials-DMAWNZdV.js → credentials-C_RoJFmK.js} +0 -0
  976. /package/dist/{credentials-Dmc3H-jd.js → credentials-DM_Dj0m8.js} +0 -0
  977. /package/dist/{daemon-runtime-aQhinwSL.js → daemon-runtime-9oDBR7YW.js} +0 -0
  978. /package/dist/{dangerous-name-matching-BCaPvXy_.js → dangerous-name-matching-CSq9sJDG.js} +0 -0
  979. /package/dist/{dangerous-tools-E1i3IoxZ.js → dangerous-tools-D4jtl72G.js} +0 -0
  980. /package/dist/{fetch-DTR2MlOk.js → fetch-DTsU2XnC.js} +0 -0
  981. /package/dist/{fetch-timeout-l_6RdoMw.js → fetch-timeout-CytN1wiO.js} +0 -0
  982. /package/dist/{file-identity-BnGA6wyc.js → file-identity-CeRK5CJC.js} +0 -0
  983. /package/dist/{format-relative-Cywx6ldk.js → format-relative-Czf5fUjn.js} +0 -0
  984. /package/dist/{format-relative-DcQZUAYl.js → format-relative-zwkkXJvs.js} +0 -0
  985. /package/dist/{health-format-CL2Xq92A.js → health-format-DF54wvUU.js} +0 -0
  986. /package/dist/{heartbeat-wake-DjsTDzF3.js → heartbeat-wake-CvHncCjP.js} +0 -0
  987. /package/dist/{helpers-D-r6yhnI.js → helpers-DAEoFkbn.js} +0 -0
  988. /package/dist/{helpers-DSMIGYx2.js → helpers-n2CtWpm9.js} +0 -0
  989. /package/dist/{helpers-CRrn7Err.js → helpers-ndPQWl6m.js} +0 -0
  990. /package/dist/{input-provenance-BgfeDgck.js → input-provenance-gIfDn1ki.js} +0 -0
  991. /package/dist/{input-provenance-xUsSMOsz.js → input-provenance-wkso1o5V.js} +0 -0
  992. /package/dist/{ip-BAhS4rY2.js → ip-D4VG5EJO.js} +0 -0
  993. /package/dist/{ip-BUhsZdJu.js → ip-MwCwRA7c.js} +0 -0
  994. /package/dist/{json-file-Dbg7nZg1.js → json-file-BW22hGtf.js} +0 -0
  995. /package/dist/{json-file-B5WEJJye.js → json-file-DwRAfAAy.js} +0 -0
  996. /package/dist/{json-files-CfhnuGaC.js → json-files-BI20PLIm.js} +0 -0
  997. /package/dist/{json-files-BFGbyEzL.js → json-files-Dy52honG.js} +0 -0
  998. /package/dist/{lanes-4FoQemog.js → lanes-1CBKdsiR.js} +0 -0
  999. /package/dist/{lanes-BhdzrAIa.js → lanes-DqVYfPRG.js} +0 -0
  1000. /package/dist/{logger-IA_Dr_BT.js → logger-B8BE0PyS.js} +0 -0
  1001. /package/dist/{logger-nEdVxm5D.js → logger-CPvz-aPM.js} +0 -0
  1002. /package/dist/{logger-O6JX52kK.js → logger-cL0D2DCr.js} +0 -0
  1003. /package/dist/{logging-BiuZwq5D.js → logging-DRwtiLIS.js} +0 -0
  1004. /package/dist/{logging-Bs1VqVFL.js → logging-DTEoeoa3.js} +0 -0
  1005. /package/dist/{logging-JZEg5nDp.js → logging-fywhKCmE.js} +0 -0
  1006. /package/dist/{mutable-allowlist-detectors-TCG6mnbz.js → mutable-allowlist-detectors-BXE7Hr7F.js} +0 -0
  1007. /package/dist/{onboard-config-BxfgUqk6.js → onboard-config-DOmXYEvJ.js} +0 -0
  1008. /package/dist/{onboard-config-DNzlo8Cg.js → onboard-config-JmR21VYa.js} +0 -0
  1009. /package/dist/{parse-log-line-CT0H1-oQ.js → parse-log-line-GisaZn5H.js} +0 -0
  1010. /package/dist/{parse-log-line-pij_xhtE.js → parse-log-line-ZsbwG_u7.js} +0 -0
  1011. /package/dist/{parse-timeout-CvODy9RC.js → parse-timeout-BpphuwYl.js} +0 -0
  1012. /package/dist/{parse-timeout-CxYHsZWc.js → parse-timeout-CE6BjmGU.js} +0 -0
  1013. /package/dist/plugin-sdk/{media-understanding → stt}/providers/google/inline-data.d.ts +0 -0
  1014. /package/dist/{plugins-allowlist-Bcqe9Gd8.js → plugins-allowlist-A38nxBRG.js} +0 -0
  1015. /package/dist/{plugins-allowlist-ptAp-oPY.js → plugins-allowlist-D2tS9tcu.js} +0 -0
  1016. /package/dist/{polls-DQrR-qT3.js → polls-BLyT08ZI.js} +0 -0
  1017. /package/dist/{polls-ybwcqkWt.js → polls-BmymsJEe.js} +0 -0
  1018. /package/dist/{ports-BS8kQkd9.js → ports-DALdfBQy.js} +0 -0
  1019. /package/dist/{process-scoped-map-BwUkYFQV.js → process-scoped-map-BCJR56ZB.js} +0 -0
  1020. /package/dist/{process-scoped-map-_zxf_kLz.js → process-scoped-map-Cb1EHPyN.js} +0 -0
  1021. /package/dist/{program-context-CG-t6Yp-.js → program-context-DlXnmuB7.js} +0 -0
  1022. /package/dist/{prompt-style-B1740PBl.js → prompt-style-CUuA6OCy.js} +0 -0
  1023. /package/dist/{proxy-BdjLhNln.js → proxy-D-qGA1vm.js} +0 -0
  1024. /package/dist/{pw-ai-state-DaISdsXY.js → pw-ai-state--TxTVwRW.js} +0 -0
  1025. /package/dist/{redact-CqWx9rpK.js → redact-BW8tobyp.js} +0 -0
  1026. /package/dist/{redact-identifier-DR54qsoT.js → redact-identifier-Bv5SUUw-.js} +0 -0
  1027. /package/dist/{remoteclaw-root-u8dAeHID.js → remoteclaw-root-BfPjgewe.js} +0 -0
  1028. /package/dist/{remoteclaw-root-CgNyrbxc.js → remoteclaw-root-E4-hmb4E.js} +0 -0
  1029. /package/dist/{render-CDCvpfhh.js → render-BhKzKdV0.js} +0 -0
  1030. /package/dist/{render-CJl4GK1B.js → render-e7fENCYH.js} +0 -0
  1031. /package/dist/{retry-cXXk2j6_.js → retry-BWv_fy4u.js} +0 -0
  1032. /package/dist/{runtime-guard-BS55uiSW.js → runtime-guard-Bhx-pb8_.js} +0 -0
  1033. /package/dist/{runtime-status-BhW7hP_U.js → runtime-status-CR9445g5.js} +0 -0
  1034. /package/dist/{secret-equal-CJzes24Z.js → secret-equal-D6AoXne1.js} +0 -0
  1035. /package/dist/{secret-equal-CQAmGfGc.js → secret-equal-DLnUuWM3.js} +0 -0
  1036. /package/dist/{secure-random-B3f7Ri2X.js → secure-random-CJtykx_p.js} +0 -0
  1037. /package/dist/{secure-random-BkZFG9cd.js → secure-random-CRVHgtmO.js} +0 -0
  1038. /package/dist/{stagger-B-_Wnofy.js → stagger--wvODnNe.js} +0 -0
  1039. /package/dist/{stagger-B2ORDHsP.js → stagger-BLmTO4cK.js} +0 -0
  1040. /package/dist/{status-C6YNwimj.js → status-1zVD-Clq.js} +0 -0
  1041. /package/dist/{status-yrDGXYZM.js → status-BtRY0nXQ.js} +0 -0
  1042. /package/dist/{strip-inbound-meta-0cvL6itU.js → strip-inbound-meta-zmUXypSS.js} +0 -0
  1043. /package/dist/{strip-inbound-meta-DjKcSFaW.js → strip-inbound-meta-zqtN9FTK.js} +0 -0
  1044. /package/dist/{table-ByMyHTh_.js → table-On3hkCqi.js} +0 -0
  1045. /package/dist/{targets-DOJXjN1U.js → targets-B46m7u5J.js} +0 -0
  1046. /package/dist/{targets-WSwPflb6.js → targets-D7PT_rdO.js} +0 -0
  1047. /package/dist/{text-format-mr5bZq0f.js → text-format-Ds92M9UT.js} +0 -0
  1048. /package/dist/{tokens-C8yGxAcR.js → tokens-Dw7ZdYwT.js} +0 -0
  1049. /package/dist/{usage-BXi79Rq6.js → usage-BIzKZ5dT.js} +0 -0
  1050. /package/dist/{usage-C1lHaofV.js → usage-BvZOzIC7.js} +0 -0
  1051. /package/dist/{usage-format-CD5jsZY1.js → usage-format-CmniSPCG.js} +0 -0
  1052. /package/dist/{usage-format-CRVpDVj1.js → usage-format-D_KQYQ-w.js} +0 -0
  1053. /package/dist/{widearea-dns-DFZMcfLf.js → widearea-dns-D01FFYZ8.js} +0 -0
  1054. /package/dist/{wsl-D28w2jQC.js → wsl-PDLKeX04.js} +0 -0
@@ -637,6 +637,8 @@ function createEmptyPluginRegistry() {
637
637
  typedHooks: [],
638
638
  channels: [],
639
639
  providers: [],
640
+ sttProviders: [],
641
+ ttsProviders: [],
640
642
  gatewayHandlers: {},
641
643
  httpHandlers: [],
642
644
  httpRoutes: [],
@@ -2631,962 +2633,9 @@ function resolveConfigIncludes(obj, configPath, resolver = defaultResolver) {
2631
2633
  return new IncludeProcessor(configPath, resolver).process(obj);
2632
2634
  }
2633
2635
 
2634
- //#endregion
2635
- //#region src/config/discord-preview-streaming.ts
2636
- function normalizeStreamingMode(value) {
2637
- if (typeof value !== "string") return null;
2638
- return value.trim().toLowerCase() || null;
2639
- }
2640
- function parseStreamingMode(value) {
2641
- const normalized = normalizeStreamingMode(value);
2642
- if (normalized === "off" || normalized === "partial" || normalized === "block" || normalized === "progress") return normalized;
2643
- return null;
2644
- }
2645
- function parseDiscordPreviewStreamMode(value) {
2646
- const parsed = parseStreamingMode(value);
2647
- if (!parsed) return null;
2648
- return parsed === "progress" ? "partial" : parsed;
2649
- }
2650
- function parseSlackLegacyDraftStreamMode(value) {
2651
- const normalized = normalizeStreamingMode(value);
2652
- if (normalized === "replace" || normalized === "status_final" || normalized === "append") return normalized;
2653
- return null;
2654
- }
2655
- function mapSlackLegacyDraftStreamModeToStreaming(mode) {
2656
- if (mode === "append") return "block";
2657
- if (mode === "status_final") return "progress";
2658
- return "partial";
2659
- }
2660
- function resolveTelegramPreviewStreamMode(params = {}) {
2661
- const parsedStreaming = parseStreamingMode(params.streaming);
2662
- if (parsedStreaming) {
2663
- if (parsedStreaming === "progress") return "partial";
2664
- return parsedStreaming;
2665
- }
2666
- const legacy = parseDiscordPreviewStreamMode(params.streamMode);
2667
- if (legacy) return legacy;
2668
- if (typeof params.streaming === "boolean") return params.streaming ? "partial" : "off";
2669
- return "off";
2670
- }
2671
- function resolveDiscordPreviewStreamMode(params = {}) {
2672
- const parsedStreaming = parseDiscordPreviewStreamMode(params.streaming);
2673
- if (parsedStreaming) return parsedStreaming;
2674
- const legacy = parseDiscordPreviewStreamMode(params.streamMode);
2675
- if (legacy) return legacy;
2676
- if (typeof params.streaming === "boolean") return params.streaming ? "partial" : "off";
2677
- return "off";
2678
- }
2679
- function resolveSlackStreamingMode(params = {}) {
2680
- const parsedStreaming = parseStreamingMode(params.streaming);
2681
- if (parsedStreaming) return parsedStreaming;
2682
- const legacyStreamMode = parseSlackLegacyDraftStreamMode(params.streamMode);
2683
- if (legacyStreamMode) return mapSlackLegacyDraftStreamModeToStreaming(legacyStreamMode);
2684
- if (typeof params.streaming === "boolean") return "partial";
2685
- return "partial";
2686
- }
2687
- function resolveSlackNativeStreaming(params = {}) {
2688
- if (typeof params.nativeStreaming === "boolean") return params.nativeStreaming;
2689
- if (typeof params.streaming === "boolean") return params.streaming;
2690
- return true;
2691
- }
2692
-
2693
- //#endregion
2694
- //#region src/infra/safe-executable-value.ts
2695
- const SHELL_METACHARS = /[;&|`$<>]/;
2696
- const CONTROL_CHARS = /[\r\n]/;
2697
- const QUOTE_CHARS = /["']/;
2698
- const BARE_NAME_PATTERN = /^[A-Za-z0-9._+-]+$/;
2699
- function isLikelyPath(value) {
2700
- if (value.startsWith(".") || value.startsWith("~")) return true;
2701
- if (value.includes("/") || value.includes("\\")) return true;
2702
- return /^[A-Za-z]:[\\/]/.test(value);
2703
- }
2704
- function isSafeExecutableValue(value) {
2705
- if (!value) return false;
2706
- const trimmed = value.trim();
2707
- if (!trimmed) return false;
2708
- if (trimmed.includes("\0")) return false;
2709
- if (CONTROL_CHARS.test(trimmed)) return false;
2710
- if (SHELL_METACHARS.test(trimmed)) return false;
2711
- if (QUOTE_CHARS.test(trimmed)) return false;
2712
- if (isLikelyPath(trimmed)) return true;
2713
- if (trimmed.startsWith("-")) return false;
2714
- return BARE_NAME_PATTERN.test(trimmed);
2715
- }
2716
-
2717
- //#endregion
2718
- //#region src/config/legacy.shared.ts
2719
- const getRecord = (value) => isRecord(value) ? value : null;
2720
- const ensureRecord = (root, key) => {
2721
- const existing = root[key];
2722
- if (isRecord(existing)) return existing;
2723
- const next = {};
2724
- root[key] = next;
2725
- return next;
2726
- };
2727
- const mergeMissing = (target, source) => {
2728
- for (const [key, value] of Object.entries(source)) {
2729
- if (value === void 0 || isBlockedObjectKey(key)) continue;
2730
- const existing = target[key];
2731
- if (existing === void 0) {
2732
- target[key] = value;
2733
- continue;
2734
- }
2735
- if (isRecord(existing) && isRecord(value)) mergeMissing(existing, value);
2736
- }
2737
- };
2738
- const mapLegacyAudioTranscription = (value) => {
2739
- const transcriber = getRecord(value);
2740
- const command = Array.isArray(transcriber?.command) ? transcriber?.command : null;
2741
- if (!command || command.length === 0) return null;
2742
- if (typeof command[0] !== "string") return null;
2743
- if (!command.every((part) => typeof part === "string")) return null;
2744
- const rawExecutable = command[0].trim();
2745
- if (!rawExecutable) return null;
2746
- if (!isSafeExecutableValue(rawExecutable)) return null;
2747
- const args = command.slice(1);
2748
- const timeoutSeconds = typeof transcriber?.timeoutSeconds === "number" ? transcriber?.timeoutSeconds : void 0;
2749
- const result = {
2750
- command: rawExecutable,
2751
- type: "cli"
2752
- };
2753
- if (args.length > 0) result.args = args;
2754
- if (timeoutSeconds !== void 0) result.timeoutSeconds = timeoutSeconds;
2755
- return result;
2756
- };
2757
- const getAgentsList = (agents) => {
2758
- const list = agents?.list;
2759
- return Array.isArray(list) ? list : [];
2760
- };
2761
- const resolveDefaultAgentIdFromRaw = (raw) => {
2762
- const list = getAgentsList(getRecord(raw.agents));
2763
- const defaultEntry = list.find((entry) => isRecord(entry) && entry.default === true && typeof entry.id === "string" && entry.id.trim() !== "");
2764
- if (defaultEntry) return defaultEntry.id.trim();
2765
- const routing = getRecord(raw.routing);
2766
- const routingDefault = typeof routing?.defaultAgentId === "string" ? routing.defaultAgentId.trim() : "";
2767
- if (routingDefault) return routingDefault;
2768
- const firstEntry = list.find((entry) => isRecord(entry) && typeof entry.id === "string" && entry.id.trim() !== "");
2769
- if (firstEntry) return firstEntry.id.trim();
2770
- return "main";
2771
- };
2772
- const ensureAgentEntry = (list, id) => {
2773
- const normalized = id.trim();
2774
- const existing = list.find((entry) => isRecord(entry) && typeof entry.id === "string" && entry.id.trim() === normalized);
2775
- if (existing) return existing;
2776
- const created = { id: normalized };
2777
- list.push(created);
2778
- return created;
2779
- };
2780
-
2781
- //#endregion
2782
- //#region src/config/legacy.migrations.part-1.ts
2783
- function migrateBindings(raw, changes, changeNote, mutator) {
2784
- const bindings = Array.isArray(raw.bindings) ? raw.bindings : null;
2785
- if (!bindings) return;
2786
- let touched = false;
2787
- for (const entry of bindings) {
2788
- if (!isRecord(entry)) continue;
2789
- const match = getRecord(entry.match);
2790
- if (!match) continue;
2791
- if (!mutator(match)) continue;
2792
- entry.match = match;
2793
- touched = true;
2794
- }
2795
- if (touched) {
2796
- raw.bindings = bindings;
2797
- changes.push(changeNote);
2798
- }
2799
- }
2800
- function ensureDefaultGroupEntry(section) {
2801
- const groups = isRecord(section.groups) ? section.groups : {};
2802
- const defaultKey = "*";
2803
- return {
2804
- groups,
2805
- entry: isRecord(groups[defaultKey]) ? groups[defaultKey] : {}
2806
- };
2807
- }
2808
- const LEGACY_CONFIG_MIGRATIONS_PART_1 = [
2809
- {
2810
- id: "bindings.match.provider->bindings.match.channel",
2811
- describe: "Move bindings[].match.provider to bindings[].match.channel",
2812
- apply: (raw, changes) => {
2813
- migrateBindings(raw, changes, "Moved bindings[].match.provider → bindings[].match.channel.", (match) => {
2814
- if (typeof match.channel === "string" && match.channel.trim()) return false;
2815
- const provider = typeof match.provider === "string" ? match.provider.trim() : "";
2816
- if (!provider) return false;
2817
- match.channel = provider;
2818
- delete match.provider;
2819
- return true;
2820
- });
2821
- }
2822
- },
2823
- {
2824
- id: "bindings.match.accountID->bindings.match.accountId",
2825
- describe: "Move bindings[].match.accountID to bindings[].match.accountId",
2826
- apply: (raw, changes) => {
2827
- migrateBindings(raw, changes, "Moved bindings[].match.accountID → bindings[].match.accountId.", (match) => {
2828
- if (match.accountId !== void 0) return false;
2829
- const accountID = typeof match.accountID === "string" ? match.accountID.trim() : match.accountID;
2830
- if (!accountID) return false;
2831
- match.accountId = accountID;
2832
- delete match.accountID;
2833
- return true;
2834
- });
2835
- }
2836
- },
2837
- {
2838
- id: "session.sendPolicy.rules.match.provider->match.channel",
2839
- describe: "Move session.sendPolicy.rules[].match.provider to match.channel",
2840
- apply: (raw, changes) => {
2841
- const session = getRecord(raw.session);
2842
- if (!session) return;
2843
- const sendPolicy = getRecord(session.sendPolicy);
2844
- if (!sendPolicy) return;
2845
- const rules = Array.isArray(sendPolicy.rules) ? sendPolicy.rules : null;
2846
- if (!rules) return;
2847
- let touched = false;
2848
- for (const rule of rules) {
2849
- if (!isRecord(rule)) continue;
2850
- const match = getRecord(rule.match);
2851
- if (!match) continue;
2852
- if (typeof match.channel === "string" && match.channel.trim()) continue;
2853
- const provider = typeof match.provider === "string" ? match.provider.trim() : "";
2854
- if (!provider) continue;
2855
- match.channel = provider;
2856
- delete match.provider;
2857
- rule.match = match;
2858
- touched = true;
2859
- }
2860
- if (touched) {
2861
- sendPolicy.rules = rules;
2862
- session.sendPolicy = sendPolicy;
2863
- raw.session = session;
2864
- changes.push("Moved session.sendPolicy.rules[].match.provider → match.channel.");
2865
- }
2866
- }
2867
- },
2868
- {
2869
- id: "messages.queue.byProvider->byChannel",
2870
- describe: "Move messages.queue.byProvider to messages.queue.byChannel",
2871
- apply: (raw, changes) => {
2872
- const messages = getRecord(raw.messages);
2873
- if (!messages) return;
2874
- const queue = getRecord(messages.queue);
2875
- if (!queue) return;
2876
- if (queue.byProvider === void 0) return;
2877
- if (queue.byChannel === void 0) {
2878
- queue.byChannel = queue.byProvider;
2879
- changes.push("Moved messages.queue.byProvider → messages.queue.byChannel.");
2880
- } else changes.push("Removed messages.queue.byProvider (messages.queue.byChannel already set).");
2881
- delete queue.byProvider;
2882
- messages.queue = queue;
2883
- raw.messages = messages;
2884
- }
2885
- },
2886
- {
2887
- id: "providers->channels",
2888
- describe: "Move provider config sections to channels.*",
2889
- apply: (raw, changes) => {
2890
- const legacyEntries = [
2891
- "whatsapp",
2892
- "telegram",
2893
- "discord",
2894
- "slack",
2895
- "signal",
2896
- "imessage",
2897
- "msteams"
2898
- ].filter((key) => isRecord(raw[key]));
2899
- if (legacyEntries.length === 0) return;
2900
- const channels = ensureRecord(raw, "channels");
2901
- for (const key of legacyEntries) {
2902
- const legacy = getRecord(raw[key]);
2903
- if (!legacy) continue;
2904
- const channelEntry = ensureRecord(channels, key);
2905
- const hadEntries = Object.keys(channelEntry).length > 0;
2906
- mergeMissing(channelEntry, legacy);
2907
- channels[key] = channelEntry;
2908
- delete raw[key];
2909
- changes.push(hadEntries ? `Merged ${key} → channels.${key}.` : `Moved ${key} → channels.${key}.`);
2910
- }
2911
- raw.channels = channels;
2912
- }
2913
- },
2914
- {
2915
- id: "channels.streaming-keys->channels.streaming",
2916
- describe: "Normalize legacy streaming keys to channels.<provider>.streaming (Telegram/Discord/Slack)",
2917
- apply: (raw, changes) => {
2918
- const channels = getRecord(raw.channels);
2919
- if (!channels) return;
2920
- const migrateProviderEntry = (params) => {
2921
- const migrateCommonStreamingMode = (resolveMode) => {
2922
- const hasLegacyStreamMode = params.entry.streamMode !== void 0;
2923
- const legacyStreaming = params.entry.streaming;
2924
- if (!hasLegacyStreamMode && typeof legacyStreaming !== "boolean") return false;
2925
- const resolved = resolveMode(params.entry);
2926
- params.entry.streaming = resolved;
2927
- if (hasLegacyStreamMode) {
2928
- delete params.entry.streamMode;
2929
- changes.push(`Moved ${params.pathPrefix}.streamMode → ${params.pathPrefix}.streaming (${resolved}).`);
2930
- }
2931
- if (typeof legacyStreaming === "boolean") changes.push(`Normalized ${params.pathPrefix}.streaming boolean → enum (${resolved}).`);
2932
- return true;
2933
- };
2934
- const hasLegacyStreamMode = params.entry.streamMode !== void 0;
2935
- const legacyStreaming = params.entry.streaming;
2936
- const legacyNativeStreaming = params.entry.nativeStreaming;
2937
- if (params.provider === "telegram") {
2938
- migrateCommonStreamingMode(resolveTelegramPreviewStreamMode);
2939
- return;
2940
- }
2941
- if (params.provider === "discord") {
2942
- migrateCommonStreamingMode(resolveDiscordPreviewStreamMode);
2943
- return;
2944
- }
2945
- if (!hasLegacyStreamMode && typeof legacyStreaming !== "boolean") return;
2946
- const resolvedStreaming = resolveSlackStreamingMode(params.entry);
2947
- const resolvedNativeStreaming = resolveSlackNativeStreaming(params.entry);
2948
- params.entry.streaming = resolvedStreaming;
2949
- params.entry.nativeStreaming = resolvedNativeStreaming;
2950
- if (hasLegacyStreamMode) {
2951
- delete params.entry.streamMode;
2952
- changes.push(`Moved ${params.pathPrefix}.streamMode → ${params.pathPrefix}.streaming (${resolvedStreaming}).`);
2953
- }
2954
- if (typeof legacyStreaming === "boolean") changes.push(`Moved ${params.pathPrefix}.streaming (boolean) → ${params.pathPrefix}.nativeStreaming (${resolvedNativeStreaming}).`);
2955
- else if (typeof legacyNativeStreaming !== "boolean" && hasLegacyStreamMode) changes.push(`Set ${params.pathPrefix}.nativeStreaming → ${resolvedNativeStreaming}.`);
2956
- };
2957
- const migrateProvider = (provider) => {
2958
- const providerEntry = getRecord(channels[provider]);
2959
- if (!providerEntry) return;
2960
- migrateProviderEntry({
2961
- provider,
2962
- entry: providerEntry,
2963
- pathPrefix: `channels.${provider}`
2964
- });
2965
- const accounts = getRecord(providerEntry.accounts);
2966
- if (!accounts) return;
2967
- for (const [accountId, accountValue] of Object.entries(accounts)) {
2968
- const account = getRecord(accountValue);
2969
- if (!account) continue;
2970
- migrateProviderEntry({
2971
- provider,
2972
- entry: account,
2973
- pathPrefix: `channels.${provider}.accounts.${accountId}`
2974
- });
2975
- }
2976
- };
2977
- migrateProvider("telegram");
2978
- migrateProvider("discord");
2979
- migrateProvider("slack");
2980
- }
2981
- },
2982
- {
2983
- id: "routing.allowFrom->channels.whatsapp.allowFrom",
2984
- describe: "Move routing.allowFrom to channels.whatsapp.allowFrom",
2985
- apply: (raw, changes) => {
2986
- const routing = raw.routing;
2987
- if (!routing || typeof routing !== "object") return;
2988
- const allowFrom = routing.allowFrom;
2989
- if (allowFrom === void 0) return;
2990
- const channels = getRecord(raw.channels);
2991
- const whatsapp = channels ? getRecord(channels.whatsapp) : null;
2992
- if (!whatsapp) {
2993
- delete routing.allowFrom;
2994
- if (Object.keys(routing).length === 0) delete raw.routing;
2995
- changes.push("Removed routing.allowFrom (channels.whatsapp not configured).");
2996
- return;
2997
- }
2998
- if (whatsapp.allowFrom === void 0) {
2999
- whatsapp.allowFrom = allowFrom;
3000
- changes.push("Moved routing.allowFrom → channels.whatsapp.allowFrom.");
3001
- } else changes.push("Removed routing.allowFrom (channels.whatsapp.allowFrom already set).");
3002
- delete routing.allowFrom;
3003
- if (Object.keys(routing).length === 0) delete raw.routing;
3004
- channels.whatsapp = whatsapp;
3005
- raw.channels = channels;
3006
- }
3007
- },
3008
- {
3009
- id: "routing.groupChat.requireMention->groups.*.requireMention",
3010
- describe: "Move routing.groupChat.requireMention to channels.whatsapp/telegram/imessage groups",
3011
- apply: (raw, changes) => {
3012
- const routing = raw.routing;
3013
- if (!routing || typeof routing !== "object") return;
3014
- const groupChat = routing.groupChat && typeof routing.groupChat === "object" ? routing.groupChat : null;
3015
- if (!groupChat) return;
3016
- const requireMention = groupChat.requireMention;
3017
- if (requireMention === void 0) return;
3018
- const channels = ensureRecord(raw, "channels");
3019
- const applyTo = (key, options) => {
3020
- if (options?.requireExisting && !isRecord(channels[key])) return;
3021
- const section = channels[key] && typeof channels[key] === "object" ? channels[key] : {};
3022
- const { groups, entry } = ensureDefaultGroupEntry(section);
3023
- const defaultKey = "*";
3024
- if (entry.requireMention === void 0) {
3025
- entry.requireMention = requireMention;
3026
- groups[defaultKey] = entry;
3027
- section.groups = groups;
3028
- channels[key] = section;
3029
- changes.push(`Moved routing.groupChat.requireMention → channels.${key}.groups."*".requireMention.`);
3030
- } else changes.push(`Removed routing.groupChat.requireMention (channels.${key}.groups."*" already set).`);
3031
- };
3032
- applyTo("whatsapp", { requireExisting: true });
3033
- applyTo("telegram");
3034
- applyTo("imessage");
3035
- delete groupChat.requireMention;
3036
- if (Object.keys(groupChat).length === 0) delete routing.groupChat;
3037
- if (Object.keys(routing).length === 0) delete raw.routing;
3038
- raw.channels = channels;
3039
- }
3040
- },
3041
- {
3042
- id: "gateway.token->gateway.auth.token",
3043
- describe: "Move gateway.token to gateway.auth.token",
3044
- apply: (raw, changes) => {
3045
- const gateway = raw.gateway;
3046
- if (!gateway || typeof gateway !== "object") return;
3047
- const token = gateway.token;
3048
- if (token === void 0) return;
3049
- const gatewayObj = gateway;
3050
- const auth = gatewayObj.auth && typeof gatewayObj.auth === "object" ? gatewayObj.auth : {};
3051
- if (auth.token === void 0) {
3052
- auth.token = token;
3053
- if (!auth.mode) auth.mode = "token";
3054
- changes.push("Moved gateway.token → gateway.auth.token.");
3055
- } else changes.push("Removed gateway.token (gateway.auth.token already set).");
3056
- delete gatewayObj.token;
3057
- if (Object.keys(auth).length > 0) gatewayObj.auth = auth;
3058
- raw.gateway = gatewayObj;
3059
- }
3060
- },
3061
- {
3062
- id: "telegram.requireMention->channels.telegram.groups.*.requireMention",
3063
- describe: "Move telegram.requireMention to channels.telegram.groups.*.requireMention",
3064
- apply: (raw, changes) => {
3065
- const channels = ensureRecord(raw, "channels");
3066
- const telegram = channels.telegram;
3067
- if (!telegram || typeof telegram !== "object") return;
3068
- const requireMention = telegram.requireMention;
3069
- if (requireMention === void 0) return;
3070
- const { groups, entry } = ensureDefaultGroupEntry(telegram);
3071
- const defaultKey = "*";
3072
- if (entry.requireMention === void 0) {
3073
- entry.requireMention = requireMention;
3074
- groups[defaultKey] = entry;
3075
- telegram.groups = groups;
3076
- changes.push("Moved telegram.requireMention → channels.telegram.groups.\"*\".requireMention.");
3077
- } else changes.push("Removed telegram.requireMention (channels.telegram.groups.\"*\" already set).");
3078
- delete telegram.requireMention;
3079
- channels.telegram = telegram;
3080
- raw.channels = channels;
3081
- }
3082
- }
3083
- ];
3084
-
3085
- //#endregion
3086
- //#region src/config/legacy.migrations.part-2.ts
3087
- function applyLegacyAudioTranscriptionModel(params) {
3088
- const mapped = mapLegacyAudioTranscription(params.source);
3089
- if (!mapped) {
3090
- params.changes.push(params.invalidMessage);
3091
- return;
3092
- }
3093
- const mediaAudio = ensureRecord(ensureRecord(ensureRecord(params.raw, "tools"), "media"), "audio");
3094
- if ((Array.isArray(mediaAudio.models) ? mediaAudio.models : []).length === 0) {
3095
- mediaAudio.enabled = true;
3096
- mediaAudio.models = [mapped];
3097
- params.changes.push(params.movedMessage);
3098
- return;
3099
- }
3100
- params.changes.push(params.alreadySetMessage);
3101
- }
3102
- const LEGACY_CONFIG_MIGRATIONS_PART_2 = [
3103
- {
3104
- id: "agent.model-config-v2",
3105
- describe: "Migrate legacy agent.model/allowedModels/modelAliases/modelFallbacks/imageModelFallbacks to agent.models + model lists",
3106
- apply: (raw, changes) => {
3107
- const agentRoot = getRecord(raw.agent);
3108
- const defaults = getRecord(getRecord(raw.agents)?.defaults);
3109
- const agent = agentRoot ?? defaults;
3110
- if (!agent) return;
3111
- const label = agentRoot ? "agent" : "agents.defaults";
3112
- const legacyModel = typeof agent.model === "string" ? String(agent.model) : void 0;
3113
- const legacyImageModel = typeof agent.imageModel === "string" ? String(agent.imageModel) : void 0;
3114
- const legacyAllowed = Array.isArray(agent.allowedModels) ? agent.allowedModels.map(String) : [];
3115
- const legacyModelFallbacks = Array.isArray(agent.modelFallbacks) ? agent.modelFallbacks.map(String) : [];
3116
- const legacyImageModelFallbacks = Array.isArray(agent.imageModelFallbacks) ? agent.imageModelFallbacks.map(String) : [];
3117
- const legacyAliases = agent.modelAliases && typeof agent.modelAliases === "object" ? agent.modelAliases : {};
3118
- if (!(legacyModel || legacyImageModel || legacyAllowed.length > 0 || legacyModelFallbacks.length > 0 || legacyImageModelFallbacks.length > 0 || Object.keys(legacyAliases).length > 0)) return;
3119
- const models = agent.models && typeof agent.models === "object" ? agent.models : {};
3120
- const ensureModel = (rawKey) => {
3121
- if (typeof rawKey !== "string") return;
3122
- const key = rawKey.trim();
3123
- if (!key) return;
3124
- if (!models[key]) models[key] = {};
3125
- };
3126
- ensureModel(legacyModel);
3127
- ensureModel(legacyImageModel);
3128
- for (const key of legacyAllowed) ensureModel(key);
3129
- for (const key of legacyModelFallbacks) ensureModel(key);
3130
- for (const key of legacyImageModelFallbacks) ensureModel(key);
3131
- for (const target of Object.values(legacyAliases)) {
3132
- if (typeof target !== "string") continue;
3133
- ensureModel(target);
3134
- }
3135
- for (const [alias, targetRaw] of Object.entries(legacyAliases)) {
3136
- if (typeof targetRaw !== "string") continue;
3137
- const target = targetRaw.trim();
3138
- if (!target) continue;
3139
- const entry = models[target] && typeof models[target] === "object" ? models[target] : {};
3140
- if (!("alias" in entry)) {
3141
- entry.alias = alias;
3142
- models[target] = entry;
3143
- }
3144
- }
3145
- const currentModel = agent.model && typeof agent.model === "object" ? agent.model : null;
3146
- if (currentModel) {
3147
- if (!currentModel.primary && legacyModel) currentModel.primary = legacyModel;
3148
- if (legacyModelFallbacks.length > 0 && (!Array.isArray(currentModel.fallbacks) || currentModel.fallbacks.length === 0)) currentModel.fallbacks = legacyModelFallbacks;
3149
- agent.model = currentModel;
3150
- } else if (legacyModel || legacyModelFallbacks.length > 0) agent.model = {
3151
- primary: legacyModel,
3152
- fallbacks: legacyModelFallbacks.length ? legacyModelFallbacks : []
3153
- };
3154
- const currentImageModel = agent.imageModel && typeof agent.imageModel === "object" ? agent.imageModel : null;
3155
- if (currentImageModel) {
3156
- if (!currentImageModel.primary && legacyImageModel) currentImageModel.primary = legacyImageModel;
3157
- if (legacyImageModelFallbacks.length > 0 && (!Array.isArray(currentImageModel.fallbacks) || currentImageModel.fallbacks.length === 0)) currentImageModel.fallbacks = legacyImageModelFallbacks;
3158
- agent.imageModel = currentImageModel;
3159
- } else if (legacyImageModel || legacyImageModelFallbacks.length > 0) agent.imageModel = {
3160
- primary: legacyImageModel,
3161
- fallbacks: legacyImageModelFallbacks.length ? legacyImageModelFallbacks : []
3162
- };
3163
- agent.models = models;
3164
- if (legacyModel !== void 0) changes.push(`Migrated ${label}.model string → ${label}.model.primary.`);
3165
- if (legacyModelFallbacks.length > 0) changes.push(`Migrated ${label}.modelFallbacks → ${label}.model.fallbacks.`);
3166
- if (legacyImageModel !== void 0) changes.push(`Migrated ${label}.imageModel string → ${label}.imageModel.primary.`);
3167
- if (legacyImageModelFallbacks.length > 0) changes.push(`Migrated ${label}.imageModelFallbacks → ${label}.imageModel.fallbacks.`);
3168
- if (legacyAllowed.length > 0) changes.push(`Migrated ${label}.allowedModels → ${label}.models.`);
3169
- if (Object.keys(legacyAliases).length > 0) changes.push(`Migrated ${label}.modelAliases → ${label}.models.*.alias.`);
3170
- delete agent.allowedModels;
3171
- delete agent.modelAliases;
3172
- delete agent.modelFallbacks;
3173
- delete agent.imageModelFallbacks;
3174
- }
3175
- },
3176
- {
3177
- id: "routing.agents-v2",
3178
- describe: "Move routing.agents/defaultAgentId to agents.list",
3179
- apply: (raw, changes) => {
3180
- const routing = getRecord(raw.routing);
3181
- if (!routing) return;
3182
- const routingAgents = getRecord(routing.agents);
3183
- const agents = ensureRecord(raw, "agents");
3184
- const list = getAgentsList(agents);
3185
- if (routingAgents) {
3186
- for (const [rawId, entryRaw] of Object.entries(routingAgents)) {
3187
- const agentId = String(rawId ?? "").trim();
3188
- const entry = getRecord(entryRaw);
3189
- if (!agentId || !entry) continue;
3190
- const target = ensureAgentEntry(list, agentId);
3191
- const entryCopy = { ...entry };
3192
- if ("mentionPatterns" in entryCopy) {
3193
- const mentionPatterns = entryCopy.mentionPatterns;
3194
- const groupChat = ensureRecord(target, "groupChat");
3195
- if (groupChat.mentionPatterns === void 0) {
3196
- groupChat.mentionPatterns = mentionPatterns;
3197
- changes.push(`Moved routing.agents.${agentId}.mentionPatterns → agents.list (id "${agentId}").groupChat.mentionPatterns.`);
3198
- } else changes.push(`Removed routing.agents.${agentId}.mentionPatterns (agents.list groupChat mentionPatterns already set).`);
3199
- delete entryCopy.mentionPatterns;
3200
- }
3201
- const legacyGroupChat = getRecord(entryCopy.groupChat);
3202
- if (legacyGroupChat) {
3203
- mergeMissing(ensureRecord(target, "groupChat"), legacyGroupChat);
3204
- delete entryCopy.groupChat;
3205
- }
3206
- const legacySandbox = getRecord(entryCopy.sandbox);
3207
- if (legacySandbox) {
3208
- const sandboxTools = getRecord(legacySandbox.tools);
3209
- if (sandboxTools) {
3210
- mergeMissing(ensureRecord(ensureRecord(ensureRecord(target, "tools"), "sandbox"), "tools"), sandboxTools);
3211
- delete legacySandbox.tools;
3212
- changes.push(`Moved routing.agents.${agentId}.sandbox.tools → agents.list (id "${agentId}").tools.sandbox.tools.`);
3213
- }
3214
- entryCopy.sandbox = legacySandbox;
3215
- }
3216
- mergeMissing(target, entryCopy);
3217
- }
3218
- delete routing.agents;
3219
- changes.push("Moved routing.agents → agents.list.");
3220
- }
3221
- const defaultAgentId = typeof routing.defaultAgentId === "string" ? routing.defaultAgentId.trim() : "";
3222
- if (defaultAgentId) {
3223
- if (!list.some((entry) => isRecord(entry) && entry.default === true)) {
3224
- const entry = ensureAgentEntry(list, defaultAgentId);
3225
- entry.default = true;
3226
- changes.push(`Moved routing.defaultAgentId → agents.list (id "${defaultAgentId}").default.`);
3227
- } else changes.push("Removed routing.defaultAgentId (agents.list default already set).");
3228
- delete routing.defaultAgentId;
3229
- }
3230
- if (list.length > 0) agents.list = list;
3231
- if (Object.keys(routing).length === 0) delete raw.routing;
3232
- }
3233
- },
3234
- {
3235
- id: "routing.config-v2",
3236
- describe: "Move routing bindings/groupChat/queue/agentToAgent/transcribeAudio",
3237
- apply: (raw, changes) => {
3238
- const routing = getRecord(raw.routing);
3239
- if (!routing) return;
3240
- if (routing.bindings !== void 0) {
3241
- if (raw.bindings === void 0) {
3242
- raw.bindings = routing.bindings;
3243
- changes.push("Moved routing.bindings → bindings.");
3244
- } else changes.push("Removed routing.bindings (bindings already set).");
3245
- delete routing.bindings;
3246
- }
3247
- if (routing.agentToAgent !== void 0) {
3248
- const tools = ensureRecord(raw, "tools");
3249
- if (tools.agentToAgent === void 0) {
3250
- tools.agentToAgent = routing.agentToAgent;
3251
- changes.push("Moved routing.agentToAgent → tools.agentToAgent.");
3252
- } else changes.push("Removed routing.agentToAgent (tools.agentToAgent already set).");
3253
- delete routing.agentToAgent;
3254
- }
3255
- if (routing.queue !== void 0) {
3256
- const messages = ensureRecord(raw, "messages");
3257
- if (messages.queue === void 0) {
3258
- messages.queue = routing.queue;
3259
- changes.push("Moved routing.queue → messages.queue.");
3260
- } else changes.push("Removed routing.queue (messages.queue already set).");
3261
- delete routing.queue;
3262
- }
3263
- const groupChat = getRecord(routing.groupChat);
3264
- if (groupChat) {
3265
- const historyLimit = groupChat.historyLimit;
3266
- if (historyLimit !== void 0) {
3267
- const messagesGroup = ensureRecord(ensureRecord(raw, "messages"), "groupChat");
3268
- if (messagesGroup.historyLimit === void 0) {
3269
- messagesGroup.historyLimit = historyLimit;
3270
- changes.push("Moved routing.groupChat.historyLimit → messages.groupChat.historyLimit.");
3271
- } else changes.push("Removed routing.groupChat.historyLimit (messages.groupChat.historyLimit already set).");
3272
- delete groupChat.historyLimit;
3273
- }
3274
- const mentionPatterns = groupChat.mentionPatterns;
3275
- if (mentionPatterns !== void 0) {
3276
- const messagesGroup = ensureRecord(ensureRecord(raw, "messages"), "groupChat");
3277
- if (messagesGroup.mentionPatterns === void 0) {
3278
- messagesGroup.mentionPatterns = mentionPatterns;
3279
- changes.push("Moved routing.groupChat.mentionPatterns → messages.groupChat.mentionPatterns.");
3280
- } else changes.push("Removed routing.groupChat.mentionPatterns (messages.groupChat.mentionPatterns already set).");
3281
- delete groupChat.mentionPatterns;
3282
- }
3283
- if (Object.keys(groupChat).length === 0) delete routing.groupChat;
3284
- else routing.groupChat = groupChat;
3285
- }
3286
- if (routing.transcribeAudio !== void 0) {
3287
- applyLegacyAudioTranscriptionModel({
3288
- raw,
3289
- source: routing.transcribeAudio,
3290
- changes,
3291
- movedMessage: "Moved routing.transcribeAudio → tools.media.audio.models.",
3292
- alreadySetMessage: "Removed routing.transcribeAudio (tools.media.audio.models already set).",
3293
- invalidMessage: "Removed routing.transcribeAudio (invalid or empty command)."
3294
- });
3295
- delete routing.transcribeAudio;
3296
- }
3297
- if (Object.keys(routing).length === 0) delete raw.routing;
3298
- }
3299
- },
3300
- {
3301
- id: "audio.transcription-v2",
3302
- describe: "Move audio.transcription to tools.media.audio.models",
3303
- apply: (raw, changes) => {
3304
- const audio = getRecord(raw.audio);
3305
- if (audio?.transcription === void 0) return;
3306
- applyLegacyAudioTranscriptionModel({
3307
- raw,
3308
- source: audio.transcription,
3309
- changes,
3310
- movedMessage: "Moved audio.transcription → tools.media.audio.models.",
3311
- alreadySetMessage: "Removed audio.transcription (tools.media.audio.models already set).",
3312
- invalidMessage: "Removed audio.transcription (invalid or empty command)."
3313
- });
3314
- delete audio.transcription;
3315
- if (Object.keys(audio).length === 0) delete raw.audio;
3316
- else raw.audio = audio;
3317
- }
3318
- }
3319
- ];
3320
-
3321
- //#endregion
3322
- //#region src/config/legacy.migrations.part-3.ts
3323
- const LEGACY_CONFIG_MIGRATIONS_PART_3 = [
3324
- {
3325
- id: "auth.anthropic-claude-cli-mode-oauth",
3326
- describe: "Switch anthropic:claude-cli auth profile mode to oauth",
3327
- apply: (raw, changes) => {
3328
- const profiles = getRecord(getRecord(raw.auth)?.profiles);
3329
- if (!profiles) return;
3330
- const claudeCli = getRecord(profiles["anthropic:claude-cli"]);
3331
- if (!claudeCli) return;
3332
- if (claudeCli.mode !== "token") return;
3333
- claudeCli.mode = "oauth";
3334
- changes.push("Updated auth.profiles[\"anthropic:claude-cli\"].mode → \"oauth\".");
3335
- }
3336
- },
3337
- {
3338
- id: "tools.bash->tools.exec",
3339
- describe: "Move tools.bash to tools.exec",
3340
- apply: (raw, changes) => {
3341
- const tools = ensureRecord(raw, "tools");
3342
- const bash = getRecord(tools.bash);
3343
- if (!bash) return;
3344
- if (tools.exec === void 0) {
3345
- tools.exec = bash;
3346
- changes.push("Moved tools.bash → tools.exec.");
3347
- } else changes.push("Removed tools.bash (tools.exec already set).");
3348
- delete tools.bash;
3349
- }
3350
- },
3351
- {
3352
- id: "messages.tts.enabled->auto",
3353
- describe: "Move messages.tts.enabled to messages.tts.auto",
3354
- apply: (raw, changes) => {
3355
- const tts = getRecord(getRecord(raw.messages)?.tts);
3356
- if (!tts) return;
3357
- if (tts.auto !== void 0) {
3358
- if ("enabled" in tts) {
3359
- delete tts.enabled;
3360
- changes.push("Removed messages.tts.enabled (messages.tts.auto already set).");
3361
- }
3362
- return;
3363
- }
3364
- if (typeof tts.enabled !== "boolean") return;
3365
- tts.auto = tts.enabled ? "always" : "off";
3366
- delete tts.enabled;
3367
- changes.push(`Moved messages.tts.enabled → messages.tts.auto (${String(tts.auto)}).`);
3368
- }
3369
- },
3370
- {
3371
- id: "agent.defaults-v2",
3372
- describe: "Move agent config to agents.defaults and tools",
3373
- apply: (raw, changes) => {
3374
- const agent = getRecord(raw.agent);
3375
- if (!agent) return;
3376
- const agents = ensureRecord(raw, "agents");
3377
- const defaults = getRecord(agents.defaults) ?? {};
3378
- const tools = ensureRecord(raw, "tools");
3379
- const agentTools = getRecord(agent.tools);
3380
- if (agentTools) {
3381
- if (tools.allow === void 0 && agentTools.allow !== void 0) {
3382
- tools.allow = agentTools.allow;
3383
- changes.push("Moved agent.tools.allow → tools.allow.");
3384
- }
3385
- if (tools.deny === void 0 && agentTools.deny !== void 0) {
3386
- tools.deny = agentTools.deny;
3387
- changes.push("Moved agent.tools.deny → tools.deny.");
3388
- }
3389
- }
3390
- const elevated = getRecord(agent.elevated);
3391
- if (elevated) if (tools.elevated === void 0) {
3392
- tools.elevated = elevated;
3393
- changes.push("Moved agent.elevated → tools.elevated.");
3394
- } else changes.push("Removed agent.elevated (tools.elevated already set).");
3395
- const bash = getRecord(agent.bash);
3396
- if (bash) if (tools.exec === void 0) {
3397
- tools.exec = bash;
3398
- changes.push("Moved agent.bash → tools.exec.");
3399
- } else changes.push("Removed agent.bash (tools.exec already set).");
3400
- const sandbox = getRecord(agent.sandbox);
3401
- if (sandbox) {
3402
- const sandboxTools = getRecord(sandbox.tools);
3403
- if (sandboxTools) {
3404
- mergeMissing(ensureRecord(ensureRecord(tools, "sandbox"), "tools"), sandboxTools);
3405
- delete sandbox.tools;
3406
- changes.push("Moved agent.sandbox.tools → tools.sandbox.tools.");
3407
- }
3408
- }
3409
- const subagents = getRecord(agent.subagents);
3410
- if (subagents) {
3411
- const subagentTools = getRecord(subagents.tools);
3412
- if (subagentTools) {
3413
- mergeMissing(ensureRecord(ensureRecord(tools, "subagents"), "tools"), subagentTools);
3414
- delete subagents.tools;
3415
- changes.push("Moved agent.subagents.tools → tools.subagents.tools.");
3416
- }
3417
- }
3418
- const agentCopy = structuredClone(agent);
3419
- delete agentCopy.tools;
3420
- delete agentCopy.elevated;
3421
- delete agentCopy.bash;
3422
- if (isRecord(agentCopy.sandbox)) delete agentCopy.sandbox.tools;
3423
- if (isRecord(agentCopy.subagents)) delete agentCopy.subagents.tools;
3424
- mergeMissing(defaults, agentCopy);
3425
- agents.defaults = defaults;
3426
- raw.agents = agents;
3427
- delete raw.agent;
3428
- changes.push("Moved agent → agents.defaults.");
3429
- }
3430
- },
3431
- {
3432
- id: "identity->agents.list",
3433
- describe: "Move identity to agents.list[].identity",
3434
- apply: (raw, changes) => {
3435
- const identity = getRecord(raw.identity);
3436
- if (!identity) return;
3437
- const agents = ensureRecord(raw, "agents");
3438
- const list = getAgentsList(agents);
3439
- const defaultId = resolveDefaultAgentIdFromRaw(raw);
3440
- const entry = ensureAgentEntry(list, defaultId);
3441
- if (entry.identity === void 0) {
3442
- entry.identity = identity;
3443
- changes.push(`Moved identity → agents.list (id "${defaultId}").identity.`);
3444
- } else changes.push("Removed identity (agents.list identity already set).");
3445
- agents.list = list;
3446
- raw.agents = agents;
3447
- delete raw.identity;
3448
- }
3449
- }
3450
- ];
3451
-
3452
- //#endregion
3453
- //#region src/config/legacy.migrations.ts
3454
- const LEGACY_CONFIG_MIGRATIONS = [
3455
- ...LEGACY_CONFIG_MIGRATIONS_PART_1,
3456
- ...LEGACY_CONFIG_MIGRATIONS_PART_2,
3457
- ...LEGACY_CONFIG_MIGRATIONS_PART_3
3458
- ];
3459
-
3460
2636
  //#endregion
3461
2637
  //#region src/config/legacy.rules.ts
3462
- const LEGACY_CONFIG_RULES = [
3463
- {
3464
- path: ["whatsapp"],
3465
- message: "whatsapp config moved to channels.whatsapp (auto-migrated on load)."
3466
- },
3467
- {
3468
- path: ["telegram"],
3469
- message: "telegram config moved to channels.telegram (auto-migrated on load)."
3470
- },
3471
- {
3472
- path: ["discord"],
3473
- message: "discord config moved to channels.discord (auto-migrated on load)."
3474
- },
3475
- {
3476
- path: ["slack"],
3477
- message: "slack config moved to channels.slack (auto-migrated on load)."
3478
- },
3479
- {
3480
- path: ["signal"],
3481
- message: "signal config moved to channels.signal (auto-migrated on load)."
3482
- },
3483
- {
3484
- path: ["imessage"],
3485
- message: "imessage config moved to channels.imessage (auto-migrated on load)."
3486
- },
3487
- {
3488
- path: ["msteams"],
3489
- message: "msteams config moved to channels.msteams (auto-migrated on load)."
3490
- },
3491
- {
3492
- path: ["routing", "allowFrom"],
3493
- message: "routing.allowFrom was removed; use channels.whatsapp.allowFrom instead (auto-migrated on load)."
3494
- },
3495
- {
3496
- path: ["routing", "bindings"],
3497
- message: "routing.bindings was moved; use top-level bindings instead (auto-migrated on load)."
3498
- },
3499
- {
3500
- path: ["routing", "agents"],
3501
- message: "routing.agents was moved; use agents.list instead (auto-migrated on load)."
3502
- },
3503
- {
3504
- path: ["routing", "defaultAgentId"],
3505
- message: "routing.defaultAgentId was moved; use agents.list[].default instead (auto-migrated on load)."
3506
- },
3507
- {
3508
- path: ["routing", "agentToAgent"],
3509
- message: "routing.agentToAgent was moved; use tools.agentToAgent instead (auto-migrated on load)."
3510
- },
3511
- {
3512
- path: [
3513
- "routing",
3514
- "groupChat",
3515
- "requireMention"
3516
- ],
3517
- message: "routing.groupChat.requireMention was removed; use channels.whatsapp/telegram/imessage groups defaults (e.g. channels.whatsapp.groups.\"*\".requireMention) instead (auto-migrated on load)."
3518
- },
3519
- {
3520
- path: [
3521
- "routing",
3522
- "groupChat",
3523
- "mentionPatterns"
3524
- ],
3525
- message: "routing.groupChat.mentionPatterns was moved; use agents.list[].groupChat.mentionPatterns or messages.groupChat.mentionPatterns instead (auto-migrated on load)."
3526
- },
3527
- {
3528
- path: ["routing", "queue"],
3529
- message: "routing.queue was moved; use messages.queue instead (auto-migrated on load)."
3530
- },
3531
- {
3532
- path: ["routing", "transcribeAudio"],
3533
- message: "routing.transcribeAudio was moved; use tools.media.audio.models instead (auto-migrated on load)."
3534
- },
3535
- {
3536
- path: ["telegram", "requireMention"],
3537
- message: "telegram.requireMention was removed; use channels.telegram.groups.\"*\".requireMention instead (auto-migrated on load)."
3538
- },
3539
- {
3540
- path: ["identity"],
3541
- message: "identity was moved; use agents.list[].identity instead (auto-migrated on load)."
3542
- },
3543
- {
3544
- path: ["agent"],
3545
- message: "agent.* was moved; use agents.defaults (and tools.* for tool/elevated/exec settings) instead (auto-migrated on load)."
3546
- },
3547
- {
3548
- path: ["tools", "bash"],
3549
- message: "tools.bash was removed; use tools.exec instead (auto-migrated on load)."
3550
- },
3551
- {
3552
- path: ["agent", "model"],
3553
- message: "agent.model string was replaced by agents.defaults.model.primary/fallbacks and agents.defaults.models (auto-migrated on load).",
3554
- match: (value) => typeof value === "string"
3555
- },
3556
- {
3557
- path: ["agent", "imageModel"],
3558
- message: "agent.imageModel string was replaced by agents.defaults.imageModel.primary/fallbacks (auto-migrated on load).",
3559
- match: (value) => typeof value === "string"
3560
- },
3561
- {
3562
- path: ["agent", "allowedModels"],
3563
- message: "agent.allowedModels was replaced by agents.defaults.models (auto-migrated on load)."
3564
- },
3565
- {
3566
- path: ["agent", "modelAliases"],
3567
- message: "agent.modelAliases was replaced by agents.defaults.models.*.alias (auto-migrated on load)."
3568
- },
3569
- {
3570
- path: ["agent", "modelFallbacks"],
3571
- message: "agent.modelFallbacks was replaced by agents.defaults.model.fallbacks (auto-migrated on load)."
3572
- },
3573
- {
3574
- path: ["agent", "imageModelFallbacks"],
3575
- message: "agent.imageModelFallbacks was replaced by agents.defaults.imageModel.fallbacks (auto-migrated on load)."
3576
- },
3577
- {
3578
- path: [
3579
- "messages",
3580
- "tts",
3581
- "enabled"
3582
- ],
3583
- message: "messages.tts.enabled was replaced by messages.tts.auto (auto-migrated on load)."
3584
- },
3585
- {
3586
- path: ["gateway", "token"],
3587
- message: "gateway.token is ignored; use gateway.auth.token instead (auto-migrated on load)."
3588
- }
3589
- ];
2638
+ const LEGACY_CONFIG_RULES = [];
3590
2639
 
3591
2640
  //#endregion
3592
2641
  //#region src/config/legacy.ts
@@ -3832,27 +2881,15 @@ function resolveBundledPluginsDir() {
3832
2881
  } catch {}
3833
2882
  }
3834
2883
 
3835
- //#endregion
3836
- //#region src/compat/legacy-names.ts
3837
- const PROJECT_NAME = "remoteclaw";
3838
- const LEGACY_PROJECT_NAMES = [];
3839
- const MANIFEST_KEY = PROJECT_NAME;
3840
- const LEGACY_MANIFEST_KEYS = LEGACY_PROJECT_NAMES;
3841
- const LEGACY_PLUGIN_MANIFEST_FILENAMES = [];
3842
-
3843
2884
  //#endregion
3844
2885
  //#region src/plugins/manifest.ts
2886
+ const MANIFEST_KEY = "remoteclaw";
3845
2887
  const PLUGIN_MANIFEST_FILENAME = "remoteclaw.plugin.json";
3846
- const PLUGIN_MANIFEST_FILENAMES = [PLUGIN_MANIFEST_FILENAME, ...LEGACY_PLUGIN_MANIFEST_FILENAMES];
3847
2888
  function normalizeStringList(value) {
3848
2889
  if (!Array.isArray(value)) return [];
3849
2890
  return value.map((entry) => typeof entry === "string" ? entry.trim() : "").filter(Boolean);
3850
2891
  }
3851
2892
  function resolvePluginManifestPath(rootDir) {
3852
- for (const filename of PLUGIN_MANIFEST_FILENAMES) {
3853
- const candidate = path.join(rootDir, filename);
3854
- if (fs.existsSync(candidate)) return candidate;
3855
- }
3856
2893
  return path.join(rootDir, PLUGIN_MANIFEST_FILENAME);
3857
2894
  }
3858
2895
  function loadPluginManifest(rootDir) {
@@ -3896,6 +2933,8 @@ function loadPluginManifest(rootDir) {
3896
2933
  const channels = normalizeStringList(raw.channels);
3897
2934
  const providers = normalizeStringList(raw.providers);
3898
2935
  const skills = normalizeStringList(raw.skills);
2936
+ const stt = normalizeStringList(raw.stt);
2937
+ const tts = normalizeStringList(raw.tts);
3899
2938
  let uiHints;
3900
2939
  if (isRecord(raw.uiHints)) uiHints = raw.uiHints;
3901
2940
  return {
@@ -3907,6 +2946,8 @@ function loadPluginManifest(rootDir) {
3907
2946
  channels,
3908
2947
  providers,
3909
2948
  skills,
2949
+ stt,
2950
+ tts,
3910
2951
  name,
3911
2952
  description,
3912
2953
  version,
@@ -3917,12 +2958,7 @@ function loadPluginManifest(rootDir) {
3917
2958
  }
3918
2959
  function getPackageManifestMetadata(manifest) {
3919
2960
  if (!manifest) return;
3920
- const current = manifest[MANIFEST_KEY];
3921
- if (current) return current;
3922
- for (const key of LEGACY_MANIFEST_KEYS) {
3923
- const legacy = manifest[key];
3924
- if (legacy) return legacy;
3925
- }
2961
+ return manifest[MANIFEST_KEY];
3926
2962
  }
3927
2963
 
3928
2964
  //#endregion
@@ -4412,6 +3448,8 @@ function buildRecord(params) {
4412
3448
  channels: params.manifest.channels ?? [],
4413
3449
  providers: params.manifest.providers ?? [],
4414
3450
  skills: params.manifest.skills ?? [],
3451
+ stt: params.manifest.stt ?? [],
3452
+ tts: params.manifest.tts ?? [],
4415
3453
  origin: params.candidate.origin,
4416
3454
  workspaceDir: params.candidate.workspaceDir,
4417
3455
  rootDir: params.candidate.rootDir,
@@ -4642,27 +3680,27 @@ function parseDurationMs(raw, opts) {
4642
3680
  }
4643
3681
 
4644
3682
  //#endregion
4645
- //#region src/config/zod-schema.allowdeny.ts
4646
- const AllowDenyActionSchema = z.union([z.literal("allow"), z.literal("deny")]);
4647
- const AllowDenyChatTypeSchema = z.union([
4648
- z.literal("direct"),
4649
- z.literal("group"),
4650
- z.literal("channel"),
4651
- z.literal("dm")
4652
- ]).optional();
4653
- function createAllowDenyChannelRulesSchema() {
4654
- return z.object({
4655
- default: AllowDenyActionSchema.optional(),
4656
- rules: z.array(z.object({
4657
- action: AllowDenyActionSchema,
4658
- match: z.object({
4659
- channel: z.string().optional(),
4660
- chatType: AllowDenyChatTypeSchema,
4661
- keyPrefix: z.string().optional(),
4662
- rawKeyPrefix: z.string().optional()
4663
- }).strict().optional()
4664
- }).strict()).optional()
4665
- }).strict().optional();
3683
+ //#region src/infra/safe-executable-value.ts
3684
+ const SHELL_METACHARS = /[;&|`$<>]/;
3685
+ const CONTROL_CHARS = /[\r\n]/;
3686
+ const QUOTE_CHARS = /["']/;
3687
+ const BARE_NAME_PATTERN = /^[A-Za-z0-9._+-]+$/;
3688
+ function isLikelyPath(value) {
3689
+ if (value.startsWith(".") || value.startsWith("~")) return true;
3690
+ if (value.includes("/") || value.includes("\\")) return true;
3691
+ return /^[A-Za-z]:[\\/]/.test(value);
3692
+ }
3693
+ function isSafeExecutableValue(value) {
3694
+ if (!value) return false;
3695
+ const trimmed = value.trim();
3696
+ if (!trimmed) return false;
3697
+ if (trimmed.includes("\0")) return false;
3698
+ if (CONTROL_CHARS.test(trimmed)) return false;
3699
+ if (SHELL_METACHARS.test(trimmed)) return false;
3700
+ if (QUOTE_CHARS.test(trimmed)) return false;
3701
+ if (isLikelyPath(trimmed)) return true;
3702
+ if (trimmed.startsWith("-")) return false;
3703
+ return BARE_NAME_PATTERN.test(trimmed);
4666
3704
  }
4667
3705
 
4668
3706
  //#endregion
@@ -4749,11 +3787,7 @@ const MarkdownTableModeSchema = z.enum([
4749
3787
  "code"
4750
3788
  ]);
4751
3789
  const MarkdownConfigSchema = z.object({ tables: MarkdownTableModeSchema.optional() }).strict().optional();
4752
- const TtsProviderSchema = z.enum([
4753
- "elevenlabs",
4754
- "openai",
4755
- "edge"
4756
- ]);
3790
+ const TtsProviderSchema = z.string().min(1);
4757
3791
  const TtsModeSchema = z.enum(["final", "all"]);
4758
3792
  const TtsAutoSchema = z.enum([
4759
3793
  "off",
@@ -4931,22 +3965,6 @@ const TranscribeAudioSchema = z.object({
4931
3965
  }).strict().optional();
4932
3966
  const HexColorSchema = z.string().regex(/^#?[0-9a-fA-F]{6}$/, "expected hex color (RRGGBB)");
4933
3967
  const ExecutableTokenSchema = z.string().refine(isSafeExecutableValue, "expected safe executable name or path");
4934
- const MediaUnderstandingScopeSchema = createAllowDenyChannelRulesSchema();
4935
- const MediaUnderstandingCapabilitiesSchema = z.array(z.union([
4936
- z.literal("image"),
4937
- z.literal("audio"),
4938
- z.literal("video")
4939
- ])).optional();
4940
- const MediaUnderstandingAttachmentsSchema = z.object({
4941
- mode: z.union([z.literal("first"), z.literal("all")]).optional(),
4942
- maxAttachments: z.number().int().positive().optional(),
4943
- prefer: z.union([
4944
- z.literal("first"),
4945
- z.literal("last"),
4946
- z.literal("path"),
4947
- z.literal("url")
4948
- ]).optional()
4949
- }).strict().optional();
4950
3968
  const DeepgramAudioSchema = z.object({
4951
3969
  detectLanguage: z.boolean().optional(),
4952
3970
  punctuate: z.boolean().optional(),
@@ -4970,7 +3988,6 @@ const MediaUnderstandingRuntimeFields = {
4970
3988
  const MediaUnderstandingModelSchema = z.object({
4971
3989
  provider: z.string().optional(),
4972
3990
  model: z.string().optional(),
4973
- capabilities: MediaUnderstandingCapabilitiesSchema,
4974
3991
  type: z.union([z.literal("provider"), z.literal("cli")]).optional(),
4975
3992
  command: z.string().optional(),
4976
3993
  args: z.array(z.string()).optional(),
@@ -4982,33 +3999,12 @@ const MediaUnderstandingModelSchema = z.object({
4982
3999
  }).strict().optional();
4983
4000
  const ToolsMediaUnderstandingSchema = z.object({
4984
4001
  enabled: z.boolean().optional(),
4985
- scope: MediaUnderstandingScopeSchema,
4986
4002
  maxBytes: z.number().int().positive().optional(),
4987
4003
  maxChars: z.number().int().positive().optional(),
4988
4004
  ...MediaUnderstandingRuntimeFields,
4989
- attachments: MediaUnderstandingAttachmentsSchema,
4990
4005
  models: z.array(MediaUnderstandingModelSchema).optional()
4991
4006
  }).strict().optional();
4992
- const ToolsMediaSchema = z.object({
4993
- models: z.array(MediaUnderstandingModelSchema).optional(),
4994
- concurrency: z.number().int().positive().optional(),
4995
- image: ToolsMediaUnderstandingSchema.optional(),
4996
- audio: ToolsMediaUnderstandingSchema.optional(),
4997
- video: ToolsMediaUnderstandingSchema.optional()
4998
- }).strict().optional();
4999
- const LinkModelSchema = z.object({
5000
- type: z.literal("cli").optional(),
5001
- command: z.string().min(1),
5002
- args: z.array(z.string()).optional(),
5003
- timeoutSeconds: z.number().int().positive().optional()
5004
- }).strict();
5005
- const ToolsLinksSchema = z.object({
5006
- enabled: z.boolean().optional(),
5007
- scope: MediaUnderstandingScopeSchema,
5008
- maxLinks: z.number().int().positive().optional(),
5009
- timeoutSeconds: z.number().int().positive().optional(),
5010
- models: z.array(LinkModelSchema).optional()
5011
- }).strict().optional();
4007
+ const ToolsMediaSchema = z.object({ audio: ToolsMediaUnderstandingSchema.optional() }).strict().optional();
5012
4008
  const NativeCommandsSettingSchema = z.union([z.boolean(), z.literal("auto")]);
5013
4009
  const ProviderCommandsSchema = z.object({ native: NativeCommandsSettingSchema.optional() }).strict().optional();
5014
4010
 
@@ -5113,7 +4109,6 @@ const ToolPolicyWithProfileSchema = z.object({
5113
4109
  }).strict().superRefine((value, ctx) => {
5114
4110
  addAllowAlsoAllowConflictIssue(value, ctx, "tools.byProvider policy cannot set both allow and alsoAllow in the same scope (merge alsoAllow into allow, or remove allow and use profile + alsoAllow)");
5115
4111
  });
5116
- const ElevatedAllowFromSchema = z.record(z.string(), z.array(z.union([z.string(), z.number()]))).optional();
5117
4112
  const ToolExecSafeBinProfileSchema = z.object({
5118
4113
  minPositional: z.number().int().nonnegative().optional(),
5119
4114
  maxPositional: z.number().int().nonnegative().optional(),
@@ -5162,10 +4157,6 @@ const CommonToolPolicyFields = {
5162
4157
  };
5163
4158
  const AgentToolsSchema = z.object({
5164
4159
  ...CommonToolPolicyFields,
5165
- elevated: z.object({
5166
- enabled: z.boolean().optional(),
5167
- allowFrom: ElevatedAllowFromSchema
5168
- }).strict().optional(),
5169
4160
  exec: AgentToolExecSchema,
5170
4161
  fs: ToolFsSchema
5171
4162
  }).strict().superRefine((value, ctx) => {
@@ -5195,7 +4186,6 @@ const AgentEntrySchema = z.object({
5195
4186
  const ToolsSchema = z.object({
5196
4187
  ...CommonToolPolicyFields,
5197
4188
  media: ToolsMediaSchema,
5198
- links: ToolsLinksSchema,
5199
4189
  sessions: z.object({ visibility: z.enum([
5200
4190
  "self",
5201
4191
  "tree",
@@ -5219,10 +4209,6 @@ const ToolsSchema = z.object({
5219
4209
  enabled: z.boolean().optional(),
5220
4210
  allow: z.array(z.string()).optional()
5221
4211
  }).strict().optional(),
5222
- elevated: z.object({
5223
- enabled: z.boolean().optional(),
5224
- allowFrom: ElevatedAllowFromSchema
5225
- }).strict().optional(),
5226
4212
  exec: ToolExecSchema,
5227
4213
  fs: ToolFsSchema,
5228
4214
  subagents: z.object({ tools: ToolPolicySchema }).strict().optional()
@@ -5238,9 +4224,6 @@ const AgentDefaultsSchema = z.object({
5238
4224
  models: z.unknown().optional(),
5239
4225
  workspace: z.string().optional(),
5240
4226
  repoRoot: z.string().optional(),
5241
- skipBootstrap: z.boolean().optional(),
5242
- bootstrapMaxChars: z.number().int().positive().optional(),
5243
- bootstrapTotalMaxChars: z.number().int().positive().optional(),
5244
4227
  userTimezone: z.string().optional(),
5245
4228
  timeFormat: z.union([
5246
4229
  z.literal("auto"),
@@ -5278,12 +4261,6 @@ const AgentDefaultsSchema = z.object({
5278
4261
  z.literal("on"),
5279
4262
  z.literal("full")
5280
4263
  ]).optional(),
5281
- elevatedDefault: z.union([
5282
- z.literal("off"),
5283
- z.literal("on"),
5284
- z.literal("ask"),
5285
- z.literal("full")
5286
- ]).optional(),
5287
4264
  blockStreamingDefault: z.union([z.literal("off"), z.literal("on")]).optional(),
5288
4265
  blockStreamingBreak: z.union([z.literal("text_end"), z.literal("message_end")]).optional(),
5289
4266
  blockStreamingChunk: BlockStreamingChunkSchema.optional(),
@@ -5564,6 +4541,65 @@ function isValidInboundPathRootPattern(value) {
5564
4541
  return segments.every((segment) => segment === WILDCARD_SEGMENT || !segment.includes("*"));
5565
4542
  }
5566
4543
 
4544
+ //#endregion
4545
+ //#region src/config/discord-preview-streaming.ts
4546
+ function normalizeStreamingMode(value) {
4547
+ if (typeof value !== "string") return null;
4548
+ return value.trim().toLowerCase() || null;
4549
+ }
4550
+ function parseStreamingMode(value) {
4551
+ const normalized = normalizeStreamingMode(value);
4552
+ if (normalized === "off" || normalized === "partial" || normalized === "block" || normalized === "progress") return normalized;
4553
+ return null;
4554
+ }
4555
+ function parseDiscordPreviewStreamMode(value) {
4556
+ const parsed = parseStreamingMode(value);
4557
+ if (!parsed) return null;
4558
+ return parsed === "progress" ? "partial" : parsed;
4559
+ }
4560
+ function parseSlackLegacyDraftStreamMode(value) {
4561
+ const normalized = normalizeStreamingMode(value);
4562
+ if (normalized === "replace" || normalized === "status_final" || normalized === "append") return normalized;
4563
+ return null;
4564
+ }
4565
+ function mapSlackLegacyDraftStreamModeToStreaming(mode) {
4566
+ if (mode === "append") return "block";
4567
+ if (mode === "status_final") return "progress";
4568
+ return "partial";
4569
+ }
4570
+ function resolveTelegramPreviewStreamMode(params = {}) {
4571
+ const parsedStreaming = parseStreamingMode(params.streaming);
4572
+ if (parsedStreaming) {
4573
+ if (parsedStreaming === "progress") return "partial";
4574
+ return parsedStreaming;
4575
+ }
4576
+ const legacy = parseDiscordPreviewStreamMode(params.streamMode);
4577
+ if (legacy) return legacy;
4578
+ if (typeof params.streaming === "boolean") return params.streaming ? "partial" : "off";
4579
+ return "off";
4580
+ }
4581
+ function resolveDiscordPreviewStreamMode(params = {}) {
4582
+ const parsedStreaming = parseDiscordPreviewStreamMode(params.streaming);
4583
+ if (parsedStreaming) return parsedStreaming;
4584
+ const legacy = parseDiscordPreviewStreamMode(params.streamMode);
4585
+ if (legacy) return legacy;
4586
+ if (typeof params.streaming === "boolean") return params.streaming ? "partial" : "off";
4587
+ return "off";
4588
+ }
4589
+ function resolveSlackStreamingMode(params = {}) {
4590
+ const parsedStreaming = parseStreamingMode(params.streaming);
4591
+ if (parsedStreaming) return parsedStreaming;
4592
+ const legacyStreamMode = parseSlackLegacyDraftStreamMode(params.streamMode);
4593
+ if (legacyStreamMode) return mapSlackLegacyDraftStreamModeToStreaming(legacyStreamMode);
4594
+ if (typeof params.streaming === "boolean") return "partial";
4595
+ return "partial";
4596
+ }
4597
+ function resolveSlackNativeStreaming(params = {}) {
4598
+ if (typeof params.nativeStreaming === "boolean") return params.nativeStreaming;
4599
+ if (typeof params.streaming === "boolean") return params.streaming;
4600
+ return true;
4601
+ }
4602
+
5567
4603
  //#endregion
5568
4604
  //#region src/config/telegram-custom-commands.ts
5569
4605
  const TELEGRAM_COMMAND_NAME_PATTERN = /^[a-z0-9_]{1,32}$/;
@@ -6632,6 +5668,30 @@ const ChannelsSchema = z.object({
6632
5668
  msteams: MSTeamsConfigSchema.optional()
6633
5669
  }).passthrough().optional();
6634
5670
 
5671
+ //#endregion
5672
+ //#region src/config/zod-schema.allowdeny.ts
5673
+ const AllowDenyActionSchema = z.union([z.literal("allow"), z.literal("deny")]);
5674
+ const AllowDenyChatTypeSchema = z.union([
5675
+ z.literal("direct"),
5676
+ z.literal("group"),
5677
+ z.literal("channel"),
5678
+ z.literal("dm")
5679
+ ]).optional();
5680
+ function createAllowDenyChannelRulesSchema() {
5681
+ return z.object({
5682
+ default: AllowDenyActionSchema.optional(),
5683
+ rules: z.array(z.object({
5684
+ action: AllowDenyActionSchema,
5685
+ match: z.object({
5686
+ channel: z.string().optional(),
5687
+ chatType: AllowDenyChatTypeSchema,
5688
+ keyPrefix: z.string().optional(),
5689
+ rawKeyPrefix: z.string().optional()
5690
+ }).strict().optional()
5691
+ }).strict()).optional()
5692
+ }).strict().optional();
5693
+ }
5694
+
6635
5695
  //#endregion
6636
5696
  //#region src/config/zod-schema.session.ts
6637
5697
  const SessionResetConfigSchema = z.object({
@@ -6770,8 +5830,6 @@ const MessagesSchema = z.object({
6770
5830
  const CommandsSchema = z.object({
6771
5831
  native: NativeCommandsSettingSchema.optional().default("auto"),
6772
5832
  text: z.boolean().optional(),
6773
- bash: z.boolean().optional(),
6774
- bashForegroundMs: z.number().int().min(0).max(3e4).optional(),
6775
5833
  config: z.boolean().optional(),
6776
5834
  debug: z.boolean().optional(),
6777
5835
  restart: z.boolean().optional().default(true),
@@ -6779,7 +5837,7 @@ const CommandsSchema = z.object({
6779
5837
  ownerAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
6780
5838
  ownerDisplay: z.enum(["raw", "hash"]).optional().default("raw"),
6781
5839
  ownerDisplaySecret: z.string().optional().register(sensitive),
6782
- allowFrom: ElevatedAllowFromSchema.optional()
5840
+ allowFrom: z.record(z.string(), z.array(z.union([z.string(), z.number()]))).optional()
6783
5841
  }).strict().optional().default(() => ({
6784
5842
  native: "auto",
6785
5843
  restart: true,
@@ -9327,22 +8385,6 @@ function loadSessionStore(storePath, opts = {}) {
9327
8385
  continue;
9328
8386
  }
9329
8387
  }
9330
- for (const entry of Object.values(store)) {
9331
- if (!entry || typeof entry !== "object") continue;
9332
- const rec = entry;
9333
- if (typeof rec.channel !== "string" && typeof rec.provider === "string") {
9334
- rec.channel = rec.provider;
9335
- delete rec.provider;
9336
- }
9337
- if (typeof rec.lastChannel !== "string" && typeof rec.lastProvider === "string") {
9338
- rec.lastChannel = rec.lastProvider;
9339
- delete rec.lastProvider;
9340
- }
9341
- if (typeof rec.groupChannel !== "string" && typeof rec.room === "string") {
9342
- rec.groupChannel = rec.room;
9343
- delete rec.room;
9344
- } else if ("room" in rec) delete rec.room;
9345
- }
9346
8388
  if (!opts.skipCache && isSessionStoreCacheEnabled()) SESSION_STORE_CACHE.set(storePath, {
9347
8389
  store: structuredClone(store),
9348
8390
  loadedAt: Date.now(),
@@ -10702,7 +9744,7 @@ async function detectMimeImpl(opts) {
10702
9744
  if (sniffed) return sniffed;
10703
9745
  if (headerMime) return headerMime;
10704
9746
  }
10705
- function extensionForMime(mime) {
9747
+ function extensionForMime$1(mime) {
10706
9748
  const normalized = normalizeMimeType(mime);
10707
9749
  if (!normalized) return;
10708
9750
  return EXT_BY_MIME[normalized];
@@ -10842,7 +9884,7 @@ async function fetchRemoteMedia(options) {
10842
9884
  filePath: filePathForMime
10843
9885
  });
10844
9886
  if (fileName && !path.extname(fileName) && contentType) {
10845
- const ext = extensionForMime(contentType);
9887
+ const ext = extensionForMime$1(contentType);
10846
9888
  if (ext) fileName = `${fileName}${ext}`;
10847
9889
  }
10848
9890
  return {
@@ -10892,7 +9934,7 @@ async function downloadRemote(url, tempDir, index) {
10892
9934
  maxBytes: MAX_INBOUND_MEDIA_BYTES
10893
9935
  });
10894
9936
  const mimeType = fetched.contentType ?? "application/octet-stream";
10895
- const fileName = `inbound-media-${index}${extensionForMime(mimeType) ?? ""}`;
9937
+ const fileName = `inbound-media-${index}${extensionForMime$1(mimeType) ?? ""}`;
10896
9938
  const filePath = join(tempDir, fileName);
10897
9939
  await writeFile(filePath, fetched.buffer);
10898
9940
  return {
@@ -10925,6 +9967,12 @@ var CLIRuntimeBase = class CLIRuntimeBase {
10925
9967
  this.command = command;
10926
9968
  this.timeoutMs = timeoutMs;
10927
9969
  }
9970
+ /**
9971
+ * Construct a custom stdin payload for the subprocess.
9972
+ * When this returns a string, it is written to stdin instead of
9973
+ * the default large-prompt fallback. Subclasses may override.
9974
+ */
9975
+ buildStdinPayload(_params) {}
10928
9976
  /** Whether this CLI accepts prompts via stdin. Subclasses may override. */
10929
9977
  get supportsStdinPrompt() {
10930
9978
  return true;
@@ -11026,7 +10074,11 @@ var CLIRuntimeBase = class CLIRuntimeBase {
11026
10074
  });
11027
10075
  });
11028
10076
  });
11029
- if (this.supportsStdinPrompt && params.prompt.length > CLIRuntimeBase.STDIN_PROMPT_THRESHOLD && child.stdin) {
10077
+ const customStdin = this.buildStdinPayload(params);
10078
+ if (customStdin !== void 0 && child.stdin) {
10079
+ logDebug(`[agent-runtime] pid=${child.pid}: delivering custom stdin payload (${customStdin.length} chars)`);
10080
+ child.stdin.write(customStdin);
10081
+ } else if (this.supportsStdinPrompt && params.prompt.length > CLIRuntimeBase.STDIN_PROMPT_THRESHOLD && child.stdin) {
11030
10082
  logDebug(`[agent-runtime] pid=${child.pid}: delivering prompt via stdin (${params.prompt.length} chars)`);
11031
10083
  child.stdin.write(params.prompt);
11032
10084
  }
@@ -11108,7 +10160,8 @@ var ClaudeCliRuntime = class extends CLIRuntimeBase {
11108
10160
  }
11109
10161
  async *execute(params) {
11110
10162
  this.resetState();
11111
- for await (const event of super.execute(params)) {
10163
+ const prepared = await this.prepareMedia(params);
10164
+ for await (const event of super.execute(prepared)) {
11112
10165
  if (event.type === "done") this.enrichDoneEvent(event);
11113
10166
  yield event;
11114
10167
  }
@@ -11122,9 +10175,34 @@ var ClaudeCliRuntime = class extends CLIRuntimeBase {
11122
10175
  ];
11123
10176
  if (params.sessionId) args.push("--resume", params.sessionId);
11124
10177
  if (params.mcpServers && Object.keys(params.mcpServers).length > 0) args.push("--mcp-config", JSON.stringify({ mcpServers: params.mcpServers }));
11125
- args.push("--print", params.prompt);
10178
+ if (params.media?.some((m) => m.mimeType.startsWith("image/") && m.base64)) args.push("-p", "--input-format", "stream-json");
10179
+ else args.push("--print", params.prompt);
11126
10180
  return args;
11127
10181
  }
10182
+ buildStdinPayload(params) {
10183
+ const images = params.media?.filter((m) => m.mimeType.startsWith("image/") && m.base64);
10184
+ if (!images?.length) return;
10185
+ const content = images.map((img) => ({
10186
+ type: "image",
10187
+ source: {
10188
+ type: "base64",
10189
+ media_type: img.mimeType,
10190
+ data: img.base64
10191
+ }
10192
+ }));
10193
+ content.push({
10194
+ type: "text",
10195
+ text: params.prompt
10196
+ });
10197
+ const envelope = {
10198
+ type: "user",
10199
+ message: {
10200
+ role: "user",
10201
+ content
10202
+ }
10203
+ };
10204
+ return JSON.stringify(envelope) + "\n";
10205
+ }
11128
10206
  extractEvent(line) {
11129
10207
  const parsed = JSON.parse(line);
11130
10208
  if (!isObject$3(parsed)) return null;
@@ -11236,6 +10314,37 @@ var ClaudeCliRuntime = class extends CLIRuntimeBase {
11236
10314
  if (this.resultData?.durationApiMs !== void 0) result.apiDurationMs = this.resultData.durationApiMs;
11237
10315
  if (this.resultData?.numTurns !== void 0) result.numTurns = this.resultData.numTurns;
11238
10316
  }
10317
+ /**
10318
+ * Read image files referenced by media attachments and populate their base64 field.
10319
+ * Non-image media types are filtered out (audio/video are not supported natively).
10320
+ */
10321
+ async prepareMedia(params) {
10322
+ if (!params.media?.length) return params;
10323
+ const prepared = [];
10324
+ for (const attachment of params.media) {
10325
+ if (!attachment.mimeType.startsWith("image/")) continue;
10326
+ if (attachment.base64) {
10327
+ prepared.push(attachment);
10328
+ continue;
10329
+ }
10330
+ if (attachment.filePath) {
10331
+ try {
10332
+ const buffer = await readFile(attachment.filePath);
10333
+ prepared.push({
10334
+ ...attachment,
10335
+ base64: buffer.toString("base64")
10336
+ });
10337
+ } catch {
10338
+ logDebug(`[claude-runtime] failed to read media file: ${attachment.filePath}`);
10339
+ }
10340
+ continue;
10341
+ }
10342
+ }
10343
+ return {
10344
+ ...params,
10345
+ media: prepared.length > 0 ? prepared : void 0
10346
+ };
10347
+ }
11239
10348
  resetState() {
11240
10349
  this.currentSessionId = void 0;
11241
10350
  this.accumulatedText = "";
@@ -11273,7 +10382,7 @@ var CodexCliRuntime = class extends CLIRuntimeBase {
11273
10382
  constructor() {
11274
10383
  super("codex");
11275
10384
  this.mediaCapabilities = {
11276
- acceptsInbound: [],
10385
+ acceptsInbound: ["image/"],
11277
10386
  emitsOutbound: false
11278
10387
  };
11279
10388
  this.accumulatedText = "";
@@ -11304,13 +10413,17 @@ var CodexCliRuntime = class extends CLIRuntimeBase {
11304
10413
  params.sessionId,
11305
10414
  params.prompt
11306
10415
  ];
11307
- return [
10416
+ const args = [
11308
10417
  "exec",
11309
10418
  "--json",
11310
10419
  "--color",
11311
- "never",
11312
- params.prompt
10420
+ "never"
11313
10421
  ];
10422
+ if (params.media) {
10423
+ for (const attachment of params.media) if (attachment.mimeType.startsWith("image/") && attachment.filePath) args.push("--image", attachment.filePath);
10424
+ }
10425
+ args.push(params.prompt);
10426
+ return args;
11314
10427
  }
11315
10428
  extractEvent(line) {
11316
10429
  const parsed = JSON.parse(line);
@@ -11630,7 +10743,8 @@ var GeminiCliRuntime = class extends CLIRuntimeBase {
11630
10743
  acceptsInbound: [
11631
10744
  "image/",
11632
10745
  "audio/",
11633
- "video/"
10746
+ "video/",
10747
+ "application/pdf"
11634
10748
  ],
11635
10749
  emitsOutbound: false
11636
10750
  };
@@ -11644,12 +10758,14 @@ var GeminiCliRuntime = class extends CLIRuntimeBase {
11644
10758
  const mcpConfigManager = params.mcpServers && Object.keys(params.mcpServers).length > 0 ? new GeminiMcpConfigManager(params.workingDirectory, params.mcpServers) : null;
11645
10759
  try {
11646
10760
  await mcpConfigManager?.setup();
11647
- for await (const event of super.execute(params)) {
10761
+ const prepared = await this.prepareMedia(params);
10762
+ for await (const event of super.execute(prepared)) {
11648
10763
  if (event.type === "done") this.enrichDoneEvent(event);
11649
10764
  yield event;
11650
10765
  }
11651
10766
  } finally {
11652
10767
  await mcpConfigManager?.teardown();
10768
+ await this.cleanupMediaTempDir();
11653
10769
  }
11654
10770
  }
11655
10771
  buildArgs(params) {
@@ -11739,10 +10855,52 @@ var GeminiCliRuntime = class extends CLIRuntimeBase {
11739
10855
  if (this.resultStats.toolCalls !== void 0) result.numTurns = this.resultStats.toolCalls;
11740
10856
  }
11741
10857
  }
10858
+ /**
10859
+ * Save media attachments to temp files and inject `@path` references into
10860
+ * the prompt. Gemini CLI resolves `@path` inline references natively.
10861
+ */
10862
+ async prepareMedia(params) {
10863
+ if (!params.media?.length) return params;
10864
+ const tempDir = join(tmpdir(), `remoteclaw-gemini-media-${randomUUID()}`);
10865
+ await mkdir(tempDir, { recursive: true });
10866
+ this.mediaTempDir = tempDir;
10867
+ const mediaRefs = [];
10868
+ for (const attachment of params.media) {
10869
+ const ext = extensionForMime(attachment.mimeType);
10870
+ const filePath = join(tempDir, `media-${mediaRefs.length}${ext}`);
10871
+ if (attachment.base64) {
10872
+ await writeFile(filePath, Buffer.from(attachment.base64, "base64"));
10873
+ mediaRefs.push(filePath);
10874
+ } else if (attachment.filePath) try {
10875
+ await writeFile(filePath, await readFile(attachment.filePath));
10876
+ mediaRefs.push(filePath);
10877
+ } catch {
10878
+ logDebug(`[gemini-runtime] failed to read media file: ${attachment.filePath}`);
10879
+ }
10880
+ }
10881
+ if (mediaRefs.length === 0) return params;
10882
+ const mediaPrefix = mediaRefs.map((ref) => `@${ref}`).join(" ");
10883
+ return {
10884
+ ...params,
10885
+ prompt: `${mediaPrefix} ${params.prompt}`
10886
+ };
10887
+ }
10888
+ async cleanupMediaTempDir() {
10889
+ if (this.mediaTempDir) {
10890
+ try {
10891
+ await rm(this.mediaTempDir, {
10892
+ recursive: true,
10893
+ force: true
10894
+ });
10895
+ } catch {}
10896
+ this.mediaTempDir = void 0;
10897
+ }
10898
+ }
11742
10899
  resetState() {
11743
10900
  this.currentSessionId = void 0;
11744
10901
  this.accumulatedText = "";
11745
10902
  this.resultStats = void 0;
10903
+ this.mediaTempDir = void 0;
11746
10904
  }
11747
10905
  };
11748
10906
  /**
@@ -11804,6 +10962,23 @@ var GeminiMcpConfigManager = class {
11804
10962
  function isObject$1(value) {
11805
10963
  return typeof value === "object" && value !== null && !Array.isArray(value);
11806
10964
  }
10965
+ /** Map common MIME types to file extensions for Gemini CLI `@path` references. */
10966
+ function extensionForMime(mimeType) {
10967
+ return {
10968
+ "image/jpeg": ".jpg",
10969
+ "image/png": ".png",
10970
+ "image/gif": ".gif",
10971
+ "image/webp": ".webp",
10972
+ "audio/ogg": ".ogg",
10973
+ "audio/mpeg": ".mp3",
10974
+ "audio/wav": ".wav",
10975
+ "audio/webm": ".weba",
10976
+ "video/mp4": ".mp4",
10977
+ "video/webm": ".webm",
10978
+ "video/quicktime": ".mov",
10979
+ "application/pdf": ".pdf"
10980
+ }[mimeType] ?? "";
10981
+ }
11807
10982
 
11808
10983
  //#endregion
11809
10984
  //#region src/middleware/runtimes/opencode.ts