@gguf/claw 2026.2.9 → 2026.2.13

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 (715) hide show
  1. package/CHANGELOG.md +159 -0
  2. package/LICENSE +1 -1
  3. package/dist/{accounts-MyAvfCVH.js → accounts-54zZMYCo.js} +5 -2
  4. package/dist/{accounts-DbzMEfKN.js → accounts-Bvh0DFxS.js} +5 -2
  5. package/dist/{acp-cli-MZ3h1E1n.js → acp-cli-BslcOPdx.js} +146 -25
  6. package/dist/{acp-cli-DKJRTfwB.js → acp-cli-D6rk5cOh.js} +145 -24
  7. package/dist/{agent-whSJT2Lk.js → agent-C0yL70cy.js} +26 -20
  8. package/dist/{agent-c1QNeDmV.js → agent-DjZxytiC.js} +26 -20
  9. package/dist/{agent-scope-D3me2AZa.js → agent-scope-Bkr9fZtl.js} +31 -14
  10. package/dist/{agent-scope-Dp8sREli.js → agent-scope-DASgjz2_.js} +199 -14
  11. package/dist/{agent-scope-DnyDZ5RH.js → agent-scope-GYIs5dyU.js} +30 -13
  12. package/dist/{agent-scope-Dpav7C-i.js → agent-scope-okUOVjE5.js} +32 -11
  13. package/dist/audio-preflight-B0kLz-Ma.js +60 -0
  14. package/dist/audio-preflight-BCs_J33s.js +60 -0
  15. package/dist/audio-preflight-CTl2RCyF.js +71 -0
  16. package/dist/audio-preflight-MhF6YlAY.js +74 -0
  17. package/dist/{audit-BFYy1qSw.js → audit-BYfhZ7LA.js} +454 -31
  18. package/dist/{audit-Dn2cBl2x.js → audit-CfPZ_5Id.js} +452 -29
  19. package/dist/auth-9nTeB2Je.js +602 -0
  20. package/dist/auth-CLhyWwAU.js +593 -0
  21. package/dist/{auth-health-Cx5exPMV.js → auth-health-CWiLyzSr.js} +1 -1
  22. package/dist/{auth-health-DjT4fUpw.js → auth-health-qD4RND47.js} +1 -1
  23. package/dist/{auth-profiles-FJ3VY25a.js → auth-profiles-Cp9MtUdM.js} +353 -33
  24. package/dist/build-info.json +2 -2
  25. package/dist/bundled/boot-md/handler.js +33 -25
  26. package/dist/bundled/session-memory/handler.js +33 -22
  27. package/dist/{call-CD2IZCHT.js → call-CjEdFGAf.js} +7 -7
  28. package/dist/{call-CM25qgxz.js → call-DAfkvtVq.js} +6 -6
  29. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  30. package/dist/canvas-host/a2ui/a2ui.bundle.js +7 -1
  31. package/dist/{channel-options-CremuJyh.js → channel-options-B8dPzlyO.js} +4 -4
  32. package/dist/{channel-options-D-JnJ4Ft.js → channel-options-Bq5IC5Tv.js} +12 -7
  33. package/dist/{channel-selection-DAHCVAX4.js → channel-selection-BaW1xXEa.js} +2 -2
  34. package/dist/{channel-selection-DPV9hvY8.js → channel-selection-dR0jCgTn.js} +2 -2
  35. package/dist/{channels-cli-6deHFr9t.js → channels-cli-hPo28hWS.js} +61 -56
  36. package/dist/{channels-cli-D3tKmhlt.js → channels-cli-zi3rO0jq.js} +62 -57
  37. package/dist/{channels-status-issues-BN1ICfdy.js → channels-status-issues-kb-M2Fi0.js} +1 -1
  38. package/dist/{channels-status-issues-DFhI_u0p.js → channels-status-issues-ketdwZun.js} +1 -1
  39. package/dist/{chrome-B2UjqY-9.js → chrome--Fe8F5Kf.js} +24 -12
  40. package/dist/{chrome-COabMr6f.js → chrome-BWeMtFGf.js} +24 -12
  41. package/dist/{chrome-CQd_MVOA.js → chrome-Bx24uq7B.js} +27 -15
  42. package/dist/{chrome-CxRJz4ZD.js → chrome-n_3rtK2c.js} +22 -11
  43. package/dist/{clack-prompter-BkNZ4Xdw.js → clack-prompter-B-tJmODa.js} +5 -5
  44. package/dist/{clack-prompter-DuBVnTKy.js → clack-prompter-DpuKn_Uy.js} +5 -5
  45. package/dist/cli/daemon-cli.js +8 -1
  46. package/dist/cli-9lwO6Ttx.js +94 -0
  47. package/dist/cli-CNNdyxPO.js +91 -0
  48. package/dist/{client-DMloFP_O.js → client-BhZjzrH2.js} +73 -9
  49. package/dist/{client-C0gQ7hrj.js → client-DyAxKXKY.js} +73 -9
  50. package/dist/{command-format-ayFsmwwz.js → command-format-Bxe0mWee.js} +1 -1
  51. package/dist/{command-options-BQdH6qnK.js → command-options-BDV7Xgs-.js} +9 -4
  52. package/dist/{commands-BWHYcc83.js → commands-gOiRcfoU.js} +4 -4
  53. package/dist/{tui-formatters-BDP_71Xt.js → commands-registry-6NUFrejL.js} +6 -114
  54. package/dist/{tui-formatters-CIx4sCQO.js → commands-registry-DGgkLQ7A.js} +6 -114
  55. package/dist/{completion-cli-DEJia0V1.js → completion-cli-B1kHKJZX.js} +30 -30
  56. package/dist/{completion-cli-D_0fx2O6.js → completion-cli-Drks7xRK.js} +3 -3
  57. package/dist/{config-CQt4vGxI.js → config-7NCznPmF.js} +336 -97
  58. package/dist/{config-fCnPoWjU.js → config-B8v0zg48.js} +295 -99
  59. package/dist/{config-Bj2eDa02.js → config-CeWMHOiQ.js} +295 -99
  60. package/dist/{config-ethqi73X.js → config-D8pgDSNo.js} +358 -99
  61. package/dist/{config-guard-BJuqQvng.js → config-guard-RbHxYc9j.js} +212 -63
  62. package/dist/{configure-skrLiSwW.js → configure-DLp2Xz7L.js} +59 -40
  63. package/dist/{configure-C-pYuYg_.js → configure-Su1S0gi-.js} +58 -39
  64. package/dist/control-auth-BlWU-jBl.js +54 -0
  65. package/dist/control-auth-C8rIqEdA.js +54 -0
  66. package/dist/{control-service-BDgF-FZ0.js → control-service-BNDthc1N.js} +11 -5
  67. package/dist/{control-service-Djd_WI3_.js → control-service-COF59GQe.js} +10 -4
  68. package/dist/control-ui/assets/{index-CnB9IO4a.js → index-BECn2L1T.js} +369 -368
  69. package/dist/control-ui/assets/index-BECn2L1T.js.map +1 -0
  70. package/dist/control-ui/assets/index-DRPcd1Z4.css +1 -0
  71. package/dist/control-ui/index.html +2 -2
  72. package/dist/{cron-cli-CB6CufAb.js → cron-cli-CSy4-JGS.js} +20 -20
  73. package/dist/{cron-cli-Db6fardJ.js → cron-cli-Db3uCDIT.js} +21 -21
  74. package/dist/{daemon-cli-Xe22v7lZ.js → daemon-cli-BLbzcTuD.js} +61 -22
  75. package/dist/{daemon-cli-BlHK0ly2.js → daemon-cli-DR0D35MO.js} +60 -21
  76. package/dist/{daemon-runtime-CMqH8BUE.js → daemon-runtime-ZWXvLDxx.js} +3 -3
  77. package/dist/{daemon-runtime-DwQFvDXZ.js → daemon-runtime-pVcZ2KDE.js} +3 -3
  78. package/dist/{deliver-CD7-BhYD.js → deliver-BHNoC9Yk.js} +396 -290
  79. package/dist/{deliver-BdGjIcTC.js → deliver-C_5eGQrX.js} +392 -286
  80. package/dist/{deliver-nTKaXF--.js → deliver-DPHZlWgr.js} +392 -287
  81. package/dist/{deliver-CDMGxRoW.js → deliver-geVWJ52I.js} +394 -288
  82. package/dist/{deps-BDQ_K8zf.js → deps-CP0dcOgD.js} +2 -2
  83. package/dist/{deps-D60FbgTP.js → deps-DW5r2IEk.js} +2 -2
  84. package/dist/{devices-cli-N559801X.js → devices-cli-BViqX5pl.js} +15 -15
  85. package/dist/{devices-cli-IxmPLIk8.js → devices-cli-DpYaY-iM.js} +14 -14
  86. package/dist/{directory-cli-Caq-OYk8.js → directory-cli-BWD1DdKf.js} +16 -16
  87. package/dist/{directory-cli-ClrdmQL-.js → directory-cli-BcvZfkfo.js} +17 -17
  88. package/dist/{dispatcher-BfXtm4Dl.js → dispatcher-4Qn951N3.js} +5 -3
  89. package/dist/{dns-cli-DgVO0Pkw.js → dns-cli-_Ych2tu9.js} +12 -12
  90. package/dist/{dns-cli-BTNZkWHs.js → dns-cli-gQCxUXgU.js} +13 -13
  91. package/dist/{docs-cli-9Xan7C6D.js → docs-cli-Bseiau7J.js} +7 -7
  92. package/dist/{docs-cli-DZULc91f.js → docs-cli-DzBTlWQE.js} +8 -8
  93. package/dist/{doctor-D39rZvNH.js → doctor-BNkYYahD.js} +37 -36
  94. package/dist/{doctor-Dq1YeYdH.js → doctor-DzIgdPx1.js} +37 -36
  95. package/dist/entry.js +77 -21
  96. package/dist/{env-B5YXooWp.js → env-BUuSkE19.js} +1 -1
  97. package/dist/{exec-DFOtZbI0.js → exec-BPQSKwGa.js} +5 -3
  98. package/dist/{exec-B8JKbXKW.js → exec-DqZFMawz.js} +5 -3
  99. package/dist/{exec-Bas1hoSJ.js → exec-EKUaAU91.js} +57 -18
  100. package/dist/{exec-CiH_vkWn.js → exec-_PSUrMP8.js} +528 -19
  101. package/dist/{exec-approvals-DGPTjO0N.js → exec-approvals-Bqk-tIxY.js} +134 -51
  102. package/dist/{exec-approvals-C9InMoAB.js → exec-approvals-C67V-ljH.js} +134 -51
  103. package/dist/{exec-approvals-cli-EASbqFd-.js → exec-approvals-cli-D6vfSqQu.js} +22 -22
  104. package/dist/{exec-approvals-cli-DPHItoxG.js → exec-approvals-cli-DAdoki_R.js} +21 -21
  105. package/dist/extensionAPI.js +8518 -9140
  106. package/dist/fetch-Bz1WxfzV.js +285 -0
  107. package/dist/fetch-D2O8s8I1.js +285 -0
  108. package/dist/fetch-Dm-nCwa_.js +285 -0
  109. package/dist/fetch-wuOZDzdT.js +285 -0
  110. package/dist/{gateway-cli-BFqUIif8.js → gateway-cli-C-k7JPlr.js} +1868 -1072
  111. package/dist/{gateway-cli-v4kSPsLE.js → gateway-cli-DIIJ9Z0Y.js} +1870 -1074
  112. package/dist/{gateway-rpc-D6LrkcSA.js → gateway-rpc-D6jLh81b.js} +3 -3
  113. package/dist/{gateway-rpc-dHFK02Kk.js → gateway-rpc-aqysUyf5.js} +3 -3
  114. package/dist/{github-copilot-auth-CQIWc0hC.js → github-copilot-auth-BUqfX7hG.js} +316 -52
  115. package/dist/{github-copilot-auth-D2jfnapd.js → github-copilot-auth-By-nyRb6.js} +316 -52
  116. package/dist/{github-copilot-token-SLWintYd.js → github-copilot-token-C9W4SY9o.js} +7 -4
  117. package/dist/{github-copilot-token-BW-SEg7E.js → github-copilot-token-CiF5Iyi2.js} +6 -3
  118. package/dist/{github-copilot-token-C9IJh2Pn.js → github-copilot-token-DatTe1w-.js} +6 -3
  119. package/dist/{github-copilot-token-wCk9Fg_E.js → github-copilot-token-c9Igt3ZH.js} +6 -3
  120. package/dist/{gmail-setup-utils-CVNgLkXL.js → gmail-setup-utils-HvKMdooP.js} +4 -4
  121. package/dist/{gmail-setup-utils-CAM1vbUS.js → gmail-setup-utils-c-iF00aL.js} +3 -3
  122. package/dist/{health-format-C77hrjEQ.js → health-format-BORnJOeS.js} +106 -44
  123. package/dist/{health-format-DDYtlkB9.js → health-format-Nd0jcoqM.js} +105 -43
  124. package/dist/{help-format-CUnac_bT.js → help-format-Cd5PLwXe.js} +1 -1
  125. package/dist/{help-format-aiW76js8.js → help-format-DYBEvMOX.js} +1 -1
  126. package/dist/{hooks-cli-DsflBRxX.js → hooks-cli-3KdsbdRi.js} +53 -47
  127. package/dist/{hooks-cli-C7kctMuZ.js → hooks-cli-BThja6wK.js} +53 -47
  128. package/dist/{hooks-status-DRAVHSPg.js → hooks-status-BbIz0zmm.js} +6 -5
  129. package/dist/{hooks-status-lHWrY64E.js → hooks-status-DPJORMB6.js} +6 -5
  130. package/dist/{image--gbzucyh.js → image-BaJKrmCs.js} +12 -8
  131. package/dist/{image-ORs4LLwg.js → image-D-5pUELC.js} +13 -9
  132. package/dist/{image-DMnjYGdA.js → image-TvL5YI_W.js} +13 -9
  133. package/dist/{image-BVNytEIn.js → image-bodq5cUH.js} +13 -9
  134. package/dist/index.js +261 -109
  135. package/dist/{installs-CXGV291R.js → installs-BrOMqREO.js} +7 -6
  136. package/dist/{installs-89zeUsVn.js → installs-z69au9Te.js} +7 -6
  137. package/dist/{links-Dg90NTyF.js → links-AVB88xxH.js} +1 -1
  138. package/dist/{links-7M-j83As.js → links-DpxpaKe1.js} +1 -1
  139. package/dist/llm-slug-generator.js +18 -19
  140. package/dist/{loader-BnzQyT31.js → loader-CS-5lMQa.js} +3694 -4531
  141. package/dist/{logging-DuK6YXuK.js → logging-B3KnAryz.js} +2 -2
  142. package/dist/{logging-CNq0UUgf.js → logging-DEPo2hji.js} +1 -1
  143. package/dist/{login-qr-CJ__cE3-.js → login-qr--28WL1TN.js} +11 -5
  144. package/dist/{login-qr-BVeOFfNW.js → login-qr-4o2aC2UE.js} +9 -4
  145. package/dist/{login-qr-BJChByHH.js → login-qr-BUdeu1Sl.js} +8 -2
  146. package/dist/{login-qr-KUOtNJaQ.js → login-qr-BsYM2E1y.js} +12 -6
  147. package/dist/{logs-cli-Cm7AiarR.js → logs-cli-DDMD5w5_.js} +38 -22
  148. package/dist/{logs-cli-BWmtAsjp.js → logs-cli-DvPoVKCN.js} +38 -22
  149. package/dist/{manager-C-jXr9ks.js → manager-CXo1uqmO.js} +102 -86
  150. package/dist/{manager-CMFBuvVd.js → manager-ChW0jk7T.js} +101 -85
  151. package/dist/{manager-D2Ndphg3.js → manager-DUOe7ud6.js} +100 -85
  152. package/dist/{manager-BsdlwsL5.js → manager-PoxUqdN_.js} +98 -82
  153. package/dist/{manifest-registry-D5SiA3xq.js → manifest-registry-CVsqjgX0.js} +40 -2
  154. package/dist/{manifest-registry-DyMRD3rY.js → manifest-registry-jeAPx6AW.js} +40 -2
  155. package/dist/{message-channel-CHRYQtAM.js → message-channel-CTtrEkmW.js} +1 -1
  156. package/dist/{message-channel-BlgPSDAh.js → message-channel-DWcu72r7.js} +1 -1
  157. package/dist/{model-auth-BqjMkNFs.js → model-auth-BvODRbV0.js} +362 -35
  158. package/dist/{model-selection-DbsbOAoh.js → model-selection-B53OvWCf.js} +353 -33
  159. package/dist/{model-selection-DlV6wnTr.js → model-selection-vC82fEiP.js} +331 -30
  160. package/dist/{models-cli-DIFBrK4W.js → models-cli-DqsKsOgd.js} +66 -55
  161. package/dist/{models-cli-0XhQQbMW.js → models-cli-NV0bnh8l.js} +66 -55
  162. package/dist/{node-cli-BMUfVCSq.js → node-cli-C7YleuBk.js} +54 -44
  163. package/dist/{node-cli-DY4lzhDA.js → node-cli-CxwoHnZ6.js} +54 -44
  164. package/dist/{node-service-DQ-tiSie.js → node-service-C7f_uvx9.js} +2 -2
  165. package/dist/{node-service-u8g85nD3.js → node-service-De_WkxJe.js} +2 -2
  166. package/dist/{nodes-cli-BX6oWnLC.js → nodes-cli-BxrMVI9V.js} +25 -23
  167. package/dist/{nodes-cli-CVHzcQo2.js → nodes-cli-Clb0ocwB.js} +24 -22
  168. package/dist/{nodes-screen-DGlNPbk4.js → nodes-screen-CVL9363A.js} +48 -6
  169. package/dist/{nodes-screen-lykd2cny.js → nodes-screen-DsHJIN2I.js} +47 -5
  170. package/dist/{note-Ci08TSbV.js → note-Duiadw1g.js} +1 -1
  171. package/dist/{note-DVO1KLaW.js → note-uC6iDp4y.js} +2 -2
  172. package/dist/{onboard-channels-DTkFFbzS.js → onboard-channels-C5Iaafwb.js} +10 -10
  173. package/dist/{onboard-channels-CtDnwaF5.js → onboard-channels-C5uL3i8d.js} +11 -11
  174. package/dist/{onboard-skills-BnAcpzfX.js → onboard-skills-BFxdI1Y1.js} +1143 -112
  175. package/dist/{onboard-skills-DuoDzEmI.js → onboard-skills-DUG8Y0se.js} +1142 -111
  176. package/dist/{onboarding-DvhiiHh0.js → onboarding-ClzElK4D.js} +56 -48
  177. package/dist/{openclaw-root-93W6UrUK.js → openclaw-root-BKsZvO6K.js} +6 -2
  178. package/dist/{openclaw-root-9ILYSmJ9.js → openclaw-root-CEnmuBUN.js} +6 -2
  179. package/dist/{pairing-cli-BKJHBxwT.js → pairing-cli-BWWFZF7Q.js} +16 -16
  180. package/dist/{pairing-cli-DJHjPBwu.js → pairing-cli-BrFLxnug.js} +16 -16
  181. package/dist/{pairing-labels-xImhiJax.js → pairing-labels-C8KULWNH.js} +1 -1
  182. package/dist/{pairing-labels-CHxlh3tT.js → pairing-labels-Dt2vXyI7.js} +1 -1
  183. package/dist/{pairing-store-CO6umWFP.js → pairing-store-Dz-ArTQS.js} +3 -3
  184. package/dist/{pairing-store-BpPUNzmB.js → pairing-store-gQdv7Ruh.js} +2 -2
  185. package/dist/{path-env-Nq83EHH9.js → path-env-BRKerjt1.js} +2 -2
  186. package/dist/{path-env-CXWUFfFv.js → path-env-OJAyUeWW.js} +1 -1
  187. package/dist/paths-BZK4Ct0I.js +81 -0
  188. package/dist/paths-DWYi0R_2.js +78 -0
  189. package/dist/{paths-Bkhd_qY8.js → paths-DdKf4lHp.js} +35 -5
  190. package/dist/paths-SFzVNGbc.js +78 -0
  191. package/dist/pi-auth-json-D7hGObyW.js +12 -0
  192. package/dist/pi-auth-json-DgvHjfJy.js +8 -0
  193. package/dist/pi-auth-json-la6lnAzY.js +79 -0
  194. package/dist/pi-auth-json-p3vsMR7W.js +79 -0
  195. package/dist/{pi-embedded-C1qKCgDT.js → pi-embedded-De6SeAPs.js} +9518 -9968
  196. package/dist/{pi-embedded-helpers-DtPn5RC8.js → pi-embedded-helpers-BrUBxrE2.js} +70 -10
  197. package/dist/{pi-embedded-helpers-DhEkdWB1.js → pi-embedded-helpers-D0mqOwwq.js} +821 -128
  198. package/dist/{pi-embedded-helpers-7AjuNiiJ.js → pi-embedded-helpers-DpJb0kUk.js} +69 -9
  199. package/dist/{pi-embedded-helpers-BTkXgwJ7.js → pi-embedded-helpers-ZI1UCSRM.js} +927 -136
  200. package/dist/{pi-tools.policy-gG96mWwA.js → pi-tools.policy-z5Wd_2WN.js} +4 -4
  201. package/dist/{plugin-auto-enable-D5ye7QnB.js → plugin-auto-enable-B8mX3rX3.js} +14 -5
  202. package/dist/{plugin-auto-enable-BROgMZcf.js → plugin-auto-enable-OO0eDINB.js} +14 -5
  203. package/dist/plugin-sdk/agents/apply-patch-update.d.ts +3 -1
  204. package/dist/plugin-sdk/agents/apply-patch.d.ts +11 -3
  205. package/dist/plugin-sdk/agents/auth-profiles/profiles.d.ts +5 -0
  206. package/dist/plugin-sdk/agents/auth-profiles.d.ts +1 -1
  207. package/dist/plugin-sdk/agents/bash-process-registry.d.ts +1 -0
  208. package/dist/plugin-sdk/agents/bash-tools.exec.d.ts +26 -0
  209. package/dist/plugin-sdk/agents/current-time.d.ts +17 -0
  210. package/dist/plugin-sdk/agents/huggingface-models.d.ts +17 -0
  211. package/dist/plugin-sdk/agents/models-config.providers.d.ts +10 -0
  212. package/dist/plugin-sdk/agents/openclaw-tools.d.ts +2 -0
  213. package/dist/plugin-sdk/agents/pi-auth-json.d.ts +14 -0
  214. package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +5 -1
  215. package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +1 -1
  216. package/dist/plugin-sdk/agents/pi-embedded-runner/google.d.ts +1 -0
  217. package/dist/plugin-sdk/agents/pi-embedded-runner/run/images.d.ts +9 -4
  218. package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +2 -0
  219. package/dist/plugin-sdk/agents/pi-embedded-runner/run/payloads.d.ts +1 -0
  220. package/dist/plugin-sdk/agents/pi-embedded-runner/run/types.d.ts +2 -0
  221. package/dist/plugin-sdk/agents/pi-embedded-runner/types.d.ts +15 -0
  222. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.tools.d.ts +1 -1
  223. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.types.d.ts +2 -0
  224. package/dist/plugin-sdk/agents/pi-embedded-subscribe.types.d.ts +2 -0
  225. package/dist/plugin-sdk/agents/pi-tools.read.d.ts +8 -3
  226. package/dist/plugin-sdk/agents/sandbox/constants.d.ts +1 -1
  227. package/dist/plugin-sdk/agents/sandbox/docker.d.ts +14 -3
  228. package/dist/plugin-sdk/agents/sandbox/fs-bridge.d.ts +56 -0
  229. package/dist/plugin-sdk/agents/sandbox/types.d.ts +2 -0
  230. package/dist/plugin-sdk/agents/session-tool-result-guard-wrapper.d.ts +2 -0
  231. package/dist/plugin-sdk/agents/session-tool-result-guard.d.ts +4 -0
  232. package/dist/plugin-sdk/agents/subagent-registry.d.ts +3 -1
  233. package/dist/plugin-sdk/agents/tools/agent-step.d.ts +3 -0
  234. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +2 -2
  235. package/dist/plugin-sdk/agents/tools/common.d.ts +4 -0
  236. package/dist/plugin-sdk/agents/tools/image-tool.d.ts +9 -1
  237. package/dist/plugin-sdk/agents/tools/web-search.d.ts +10 -1
  238. package/dist/plugin-sdk/agents/usage.d.ts +1 -0
  239. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +1 -0
  240. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -0
  241. package/dist/plugin-sdk/auto-reply/reply/memory-flush.d.ts +2 -2
  242. package/dist/plugin-sdk/auto-reply/reply/mentions.d.ts +1 -0
  243. package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +3 -0
  244. package/dist/plugin-sdk/auto-reply/reply/reply-reference.d.ts +1 -1
  245. package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +11 -0
  246. package/dist/plugin-sdk/auto-reply/reply/session-usage.d.ts +8 -0
  247. package/dist/plugin-sdk/auto-reply/status.d.ts +2 -0
  248. package/dist/plugin-sdk/auto-reply/templating.d.ts +3 -0
  249. package/dist/plugin-sdk/auto-reply/thinking.d.ts +1 -1
  250. package/dist/plugin-sdk/auto-reply/types.d.ts +2 -0
  251. package/dist/plugin-sdk/browser/cdp.helpers.d.ts +2 -1
  252. package/dist/plugin-sdk/browser/client-actions-core.d.ts +1 -0
  253. package/dist/plugin-sdk/browser/control-auth.d.ts +13 -0
  254. package/dist/plugin-sdk/browser/pw-ai.d.ts +1 -1
  255. package/dist/plugin-sdk/browser/pw-session.d.ts +25 -0
  256. package/dist/plugin-sdk/browser/pw-tools-core.interactions.d.ts +2 -0
  257. package/dist/plugin-sdk/browser/routes/dispatcher.d.ts +1 -0
  258. package/dist/plugin-sdk/browser/routes/types.d.ts +5 -0
  259. package/dist/plugin-sdk/channels/plugins/onboarding/signal.d.ts +1 -0
  260. package/dist/plugin-sdk/channels/registry.d.ts +2 -2
  261. package/dist/plugin-sdk/cli/nodes-camera.d.ts +8 -2
  262. package/dist/plugin-sdk/cli/prompt.d.ts +1 -0
  263. package/dist/plugin-sdk/commands/agent/types.d.ts +2 -0
  264. package/dist/plugin-sdk/commands/onboard-helpers.d.ts +1 -0
  265. package/dist/plugin-sdk/commands/onboard-types.d.ts +9 -1
  266. package/dist/plugin-sdk/commands/signal-install.d.ts +20 -0
  267. package/dist/plugin-sdk/config/config.d.ts +1 -1
  268. package/dist/plugin-sdk/config/group-policy.d.ts +3 -0
  269. package/dist/plugin-sdk/config/merge-patch.d.ts +1 -0
  270. package/dist/plugin-sdk/config/sessions/paths.d.ts +14 -4
  271. package/dist/plugin-sdk/config/sessions/store.d.ts +8 -0
  272. package/dist/plugin-sdk/config/sessions/types.d.ts +8 -0
  273. package/dist/plugin-sdk/config/types.agents.d.ts +2 -0
  274. package/dist/plugin-sdk/config/types.channels.d.ts +2 -0
  275. package/dist/plugin-sdk/config/types.d.ts +1 -0
  276. package/dist/plugin-sdk/config/types.discord.d.ts +5 -0
  277. package/dist/plugin-sdk/config/types.gateway.d.ts +35 -0
  278. package/dist/plugin-sdk/config/types.hooks.d.ts +23 -1
  279. package/dist/plugin-sdk/config/types.irc.d.ts +96 -0
  280. package/dist/plugin-sdk/config/types.memory.d.ts +2 -0
  281. package/dist/plugin-sdk/config/types.openclaw.d.ts +6 -0
  282. package/dist/plugin-sdk/config/types.queue.d.ts +1 -0
  283. package/dist/plugin-sdk/config/types.slack.d.ts +2 -0
  284. package/dist/plugin-sdk/config/types.telegram.d.ts +2 -0
  285. package/dist/plugin-sdk/config/validation.d.ts +20 -0
  286. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +1 -0
  287. package/dist/plugin-sdk/config/zod-schema.core.d.ts +2 -0
  288. package/dist/plugin-sdk/config/zod-schema.d.ts +193 -2
  289. package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +3 -2
  290. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +378 -0
  291. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +176 -0
  292. package/dist/plugin-sdk/config/zod-schema.sensitive.d.ts +2 -0
  293. package/dist/plugin-sdk/config/zod-schema.session.d.ts +1 -0
  294. package/dist/plugin-sdk/cron/service/jobs.d.ts +8 -0
  295. package/dist/plugin-sdk/cron/service/state.d.ts +1 -0
  296. package/dist/plugin-sdk/cron/types.d.ts +2 -0
  297. package/dist/plugin-sdk/discord/monitor/allow-list.d.ts +15 -0
  298. package/dist/plugin-sdk/discord/send.types.d.ts +5 -0
  299. package/dist/plugin-sdk/gateway/auth-rate-limit.d.ts +59 -0
  300. package/dist/plugin-sdk/gateway/auth.d.ts +47 -0
  301. package/dist/plugin-sdk/gateway/net.d.ts +5 -0
  302. package/dist/plugin-sdk/gateway/protocol/index.d.ts +7 -7
  303. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +7 -1
  304. package/dist/plugin-sdk/gateway/protocol/schema/channels.d.ts +21 -0
  305. package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +3 -1
  306. package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +3 -1
  307. package/dist/plugin-sdk/gateway/session-utils.types.d.ts +1 -0
  308. package/dist/plugin-sdk/imessage/send.d.ts +12 -0
  309. package/dist/plugin-sdk/index.js +2147 -900
  310. package/dist/plugin-sdk/infra/binaries.d.ts +3 -0
  311. package/dist/plugin-sdk/infra/brew.d.ts +8 -0
  312. package/dist/plugin-sdk/infra/heartbeat-active-hours.d.ts +5 -0
  313. package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +1 -0
  314. package/dist/plugin-sdk/infra/heartbeat-wake.d.ts +8 -1
  315. package/dist/plugin-sdk/infra/net/fetch-guard.d.ts +1 -0
  316. package/dist/plugin-sdk/infra/net/ssrf.d.ts +1 -0
  317. package/dist/plugin-sdk/infra/outbound/message.d.ts +2 -0
  318. package/dist/plugin-sdk/infra/outbound/outbound-send-service.d.ts +2 -0
  319. package/dist/plugin-sdk/infra/session-cost-usage.d.ts +3 -0
  320. package/dist/plugin-sdk/infra/tailscale.d.ts +34 -0
  321. package/dist/plugin-sdk/infra/tmp-openclaw-dir.d.ts +10 -0
  322. package/dist/plugin-sdk/logging/console.d.ts +4 -0
  323. package/dist/plugin-sdk/logging/logger.d.ts +1 -1
  324. package/dist/plugin-sdk/logging/state.d.ts +1 -0
  325. package/dist/plugin-sdk/logging.d.ts +2 -2
  326. package/dist/plugin-sdk/markdown/ir.d.ts +1 -1
  327. package/dist/plugin-sdk/markdown/whatsapp.d.ts +14 -0
  328. package/dist/plugin-sdk/media/input-files.d.ts +5 -0
  329. package/dist/plugin-sdk/media/store.d.ts +10 -0
  330. package/dist/plugin-sdk/media-understanding/audio-preflight.d.ts +16 -0
  331. package/dist/plugin-sdk/media-understanding/types.d.ts +1 -0
  332. package/dist/plugin-sdk/memory/backend-config.d.ts +2 -1
  333. package/dist/plugin-sdk/memory/embedding-chunk-limits.d.ts +3 -0
  334. package/dist/plugin-sdk/memory/embedding-input-limits.d.ts +2 -0
  335. package/dist/plugin-sdk/memory/embedding-model-limits.d.ts +2 -0
  336. package/dist/plugin-sdk/memory/embeddings.d.ts +1 -0
  337. package/dist/plugin-sdk/memory/internal.d.ts +11 -0
  338. package/dist/plugin-sdk/memory/manager.d.ts +0 -6
  339. package/dist/plugin-sdk/memory/qmd-manager.d.ts +2 -0
  340. package/dist/plugin-sdk/memory/qmd-query-parser.d.ts +8 -0
  341. package/dist/plugin-sdk/memory/session-files.d.ts +2 -0
  342. package/dist/plugin-sdk/process/command-queue.d.ts +16 -0
  343. package/dist/plugin-sdk/providers/github-copilot-token.d.ts +3 -0
  344. package/dist/plugin-sdk/routing/resolve-route.d.ts +3 -1
  345. package/dist/plugin-sdk/security/external-content.d.ts +1 -1
  346. package/dist/plugin-sdk/security/secret-equal.d.ts +1 -0
  347. package/dist/plugin-sdk/sessions/input-provenance.d.ts +16 -0
  348. package/dist/plugin-sdk/signal/monitor/event-handler.types.d.ts +8 -0
  349. package/dist/plugin-sdk/signal/monitor/mentions.d.ts +2 -0
  350. package/dist/plugin-sdk/slack/monitor/commands.d.ts +5 -0
  351. package/dist/plugin-sdk/slack/monitor/media.d.ts +21 -0
  352. package/dist/plugin-sdk/slack/types.d.ts +1 -0
  353. package/dist/plugin-sdk/telegram/bot-message-context.d.ts +2 -1
  354. package/dist/plugin-sdk/telegram/fetch.d.ts +1 -0
  355. package/dist/plugin-sdk/telegram/monitor.d.ts +1 -0
  356. package/dist/plugin-sdk/telegram/send.d.ts +3 -0
  357. package/dist/plugin-sdk/tts/tts.d.ts +2 -2
  358. package/dist/plugin-sdk/utils/fetch-timeout.d.ts +2 -0
  359. package/dist/plugin-sdk/web/media.d.ts +12 -2
  360. package/dist/{plugins-CQw3z3Nw.js → plugins-CTjLu-z-.js} +4 -4
  361. package/dist/{plugins-B7F0Ly9G.js → plugins-CxrdL_IZ.js} +3 -3
  362. package/dist/{plugins-cli-CJ74eHvr.js → plugins-cli-CbX97Kvt.js} +259 -49
  363. package/dist/{plugins-cli-ubDwUAzK.js → plugins-cli-Dn9OeO53.js} +257 -47
  364. package/dist/{ports-kYsTYQdA.js → ports-C8YYHVlc.js} +2 -2
  365. package/dist/{program-1bQ15ivo.js → program-D-mNC0It.js} +86 -83
  366. package/dist/{progress-Da1ehW-x.js → progress-COHv-uNT.js} +1 -1
  367. package/dist/{progress-COzt9PNY.js → progress-DZb6yPcJ.js} +1 -1
  368. package/dist/{prompt-style-Dc0C5HC9.js → prompt-style-Cf1r1L6k.js} +1 -1
  369. package/dist/{prompt-style-DjZDxcFg.js → prompt-style-lSlXMhsd.js} +1 -1
  370. package/dist/{pw-ai-CQ4-gUNR.js → pw-ai-6GzTgK5g.js} +205 -32
  371. package/dist/{pw-ai-1NN0FrJb.js → pw-ai-C8YhJRaI.js} +207 -32
  372. package/dist/{pw-ai-qEMUq5Mt.js → pw-ai-CKGenizV.js} +203 -29
  373. package/dist/{pw-ai-IOqEXO1O.js → pw-ai-D7devT89.js} +206 -32
  374. package/dist/{qmd-manager-CEwp3el1.js → qmd-manager-CQzWovq-.js} +71 -90
  375. package/dist/{qmd-manager-D6N3qvQ5.js → qmd-manager-Cs8RJVQp.js} +73 -90
  376. package/dist/{qmd-manager-C48QzrRe.js → qmd-manager-DdgrQ2kc.js} +71 -88
  377. package/dist/{qmd-manager-DaUqCKB_.js → qmd-manager-dyIoOvKl.js} +73 -90
  378. package/dist/{register.subclis-Cm-VJ5nP.js → register.subclis-ifHtmF3e.js} +29 -29
  379. package/dist/{reply-CBs4e9Rm.js → reply-VIHqsQ-k.js} +7906 -8743
  380. package/dist/{routes-9ygR0GOk.js → routes-CaCvio4Q.js} +36 -15
  381. package/dist/{routes-BrWrBk2R.js → routes-Cpfxk96k.js} +36 -14
  382. package/dist/{rpc-Cjuz2Gv1.js → rpc-BhB01Bhj.js} +3 -3
  383. package/dist/{rpc-DhkLVY5H.js → rpc-C5WsS_Ne.js} +3 -3
  384. package/dist/{run-main-BlZ5l-X9.js → run-main-DVy6KJTe.js} +88 -85
  385. package/dist/runner-B7CKBC80.js +1800 -0
  386. package/dist/runner-BEy5ZGFv.js +1901 -0
  387. package/dist/runner-Bv0BmJPF.js +1800 -0
  388. package/dist/runner-ChqVEgPx.js +1901 -0
  389. package/dist/{sandbox-qt49csTr.js → sandbox-BAChxjC5.js} +627 -157
  390. package/dist/{sandbox-CPZiaKcS.js → sandbox-DNHDwHw8.js} +628 -158
  391. package/dist/{sandbox-cli-C6_iNuqO.js → sandbox-cli-9oq67QEg.js} +22 -22
  392. package/dist/{sandbox-cli-C_wK-KAE.js → sandbox-cli-BiNq9yUe.js} +22 -22
  393. package/dist/{security-cli-CTTD1vms.js → security-cli-CRg03hvq.js} +28 -28
  394. package/dist/{security-cli-DRpGF2Yc.js → security-cli-LmBBHnmh.js} +28 -28
  395. package/dist/{server-context-lyNcqJYD.js → server-context-FwqBRH3K.js} +10 -10
  396. package/dist/{server-context-39mkstUs.js → server-context-RY7lRaxl.js} +9 -9
  397. package/dist/{server-node-events-V_G9BRRw.js → server-node-events-BbHOZX3O.js} +48 -43
  398. package/dist/{server-node-events-o9G18PaE.js → server-node-events-CngNLVL-.js} +50 -45
  399. package/dist/{service-DOlJdIqe.js → service-BnqdBTAK.js} +8 -4
  400. package/dist/{service-DDPRbf8a.js → service-DZN7KRok.js} +8 -4
  401. package/dist/{service-audit-VDRrWefh.js → service-audit-0Eil3ISN.js} +4 -4
  402. package/dist/{service-audit-CVy00Ze_.js → service-audit-B8KIOe8A.js} +4 -4
  403. package/dist/{session-cost-usage-CcCEQNuc.js → session-cost-usage-B-tyjp76.js} +14 -14
  404. package/dist/{session-cost-usage-PvyVZz-g.js → session-cost-usage-BYUb7fov.js} +14 -14
  405. package/dist/{shared-BnpC3wMU.js → shared-BCdNboU1.js} +3 -3
  406. package/dist/{shared-CagUDdmp.js → shared-CsAwU6-q.js} +3 -3
  407. package/dist/{shared-BDk_zC9p.js → shared-Csn6DLBA.js} +5 -5
  408. package/dist/{shared-C92wo-6f.js → shared-DEanAgja.js} +4 -4
  409. package/dist/{skill-scanner-C_fQzVDu.js → skill-scanner-BrGkh5K7.js} +1 -1
  410. package/dist/{skill-scanner-DrVEHfC6.js → skill-scanner-CucvxYhu.js} +1 -1
  411. package/dist/{skills-Ccsv3IQq.js → skills-CE7by2IF.js} +151 -8
  412. package/dist/{skills-_eKGrw9z.js → skills-Dz15dAM4.js} +152 -9
  413. package/dist/{skills-cli-DqvLjooh.js → skills-cli-B5b75pDK.js} +13 -13
  414. package/dist/{skills-cli-DUncybht.js → skills-cli-CbCDrYwp.js} +13 -13
  415. package/dist/{skills-status-Cp2ZFhIx.js → skills-status-B99Us6yS.js} +2 -2
  416. package/dist/{skills-status-Ck0CCFZG.js → skills-status-ChM7JE47.js} +3 -3
  417. package/dist/{sqlite-DODNHWJb.js → sqlite-2UsPaJz5.js} +97 -2
  418. package/dist/{sqlite-cSdsHVEw.js → sqlite-CASnHrgX.js} +97 -1
  419. package/dist/{sqlite-Bwo2rASR.js → sqlite-CVWiMkGu.js} +97 -1
  420. package/dist/{sqlite-CpqIbY4-.js → sqlite-CcIWkGaM.js} +97 -1
  421. package/dist/{status-Bmx9_1C7.js → status-CKuX1-zb.js} +3 -3
  422. package/dist/{status-CBGgwlTW.js → status-Cm4q6o-I.js} +57 -49
  423. package/dist/{status-DkJgtvSz.js → status-DD2iqGc9.js} +4 -4
  424. package/dist/{subsystem-DPnkvS73.js → subsystem-DHfJG4gk.js} +73 -20
  425. package/dist/{system-cli-9fQ1uLiz.js → system-cli-BVJDR474.js} +87 -15
  426. package/dist/{system-cli-Gq8OWHFg.js → system-cli-C3Y_9VpI.js} +88 -16
  427. package/dist/{systemd-Pa7LURHB.js → systemd-DxddcFsa.js} +3 -3
  428. package/dist/{systemd-hints-zi4ohCOY.js → systemd-hints-BVLopJ9O.js} +1 -1
  429. package/dist/{systemd-linger-CDo2UbHM.js → systemd-linger-BThjV1Sr.js} +2 -2
  430. package/dist/{systemd-linger-6_naJcJp.js → systemd-linger-D3Va1Cv7.js} +2 -2
  431. package/dist/{systemd-BEWwfwn0.js → systemd-s3S2HVog.js} +3 -3
  432. package/dist/{table-Bb9gAVIp.js → table-BIk8Aan_.js} +2 -2
  433. package/dist/{table-cCoGqLsk.js → table-Bvka_vkc.js} +1 -1
  434. package/dist/{tool-display-DUVhO36P.js → tool-display-DbdMQFZx.js} +2 -2
  435. package/dist/{tool-display-DNOVCI6J.js → tool-display-kpW5Hg2z.js} +2 -2
  436. package/dist/{tui-DDVqLwqT.js → tui-B40Z2jMa.js} +120 -14
  437. package/dist/{tui-cli-CurbazQf.js → tui-cli-Bwa6K7xR.js} +28 -28
  438. package/dist/{tui-cli-BeN2K38I.js → tui-cli-DD6g7uZb.js} +27 -27
  439. package/dist/{tui-B9zLJxf6.js → tui-lFMZUnx6.js} +121 -13
  440. package/dist/{update-Ct9sqJC_.js → update-Bos8PPCG.js} +3 -3
  441. package/dist/{update--i077azM.js → update-Cg8MtrEr.js} +3 -3
  442. package/dist/{update-cli-CT5W0kpw.js → update-cli-CC-wTeje.js} +92 -73
  443. package/dist/{update-cli-C87lNK1S.js → update-cli-CULnXFL_.js} +91 -72
  444. package/dist/{update-runner-BIttRDyV.js → update-runner-BaLsla0c.js} +11 -11
  445. package/dist/{update-runner-xbeVkAD9.js → update-runner-Dbsdl5AU.js} +10 -10
  446. package/dist/{utils-Dk86IbEs.js → utils-BLJAc3ZV.js} +1 -1
  447. package/dist/{utils-BTaR--Ln.js → utils-BtIMES3N.js} +1 -1
  448. package/dist/{webhooks-cli-Db3zyJaw.js → webhooks-cli-ClHLUu_j.js} +21 -13
  449. package/dist/{webhooks-cli-DUUa8gVY.js → webhooks-cli-DVXr2uyN.js} +21 -13
  450. package/dist/{widearea-dns-BgYasW6m.js → widearea-dns-C4RnIR9O.js} +3 -3
  451. package/dist/{widearea-dns-CMIG6-74.js → widearea-dns-Ypwgjpsr.js} +3 -3
  452. package/dist/{ws-C0k_dhCP.js → ws-BcJt4pcg.js} +24 -2
  453. package/dist/{ws-DtDKpbLR.js → ws-MC-rTJLe.js} +24 -2
  454. package/dist/{ws-log-cMNgAyLy.js → ws-log-WrJ4QYu7.js} +1 -1
  455. package/dist/{ws-log-C6vm_XMA.js → ws-log-lip4ETlm.js} +2 -2
  456. package/dist/{wsl-rfIr_Sde.js → wsl-BvTIzy-8.js} +5 -3
  457. package/docs/assets/install-script.svg +1 -0
  458. package/docs/automation/hooks.md +1 -38
  459. package/docs/automation/webhook.md +52 -2
  460. package/docs/channels/discord.md +389 -381
  461. package/docs/channels/grammy.md +1 -1
  462. package/docs/channels/imessage.md +229 -218
  463. package/docs/channels/index.md +1 -0
  464. package/docs/channels/irc.md +234 -0
  465. package/docs/channels/msteams.md +2 -0
  466. package/docs/channels/pairing.md +1 -1
  467. package/docs/channels/slack.md +295 -415
  468. package/docs/channels/telegram.md +397 -460
  469. package/docs/channels/whatsapp.md +338 -310
  470. package/docs/ci.md +0 -12
  471. package/docs/cli/hooks.md +1 -14
  472. package/docs/cli/index.md +6 -1
  473. package/docs/cli/logs.md +4 -0
  474. package/docs/cli/onboard.md +33 -0
  475. package/docs/cli/plugins.md +20 -1
  476. package/docs/cli/security.md +2 -0
  477. package/docs/concepts/architecture.md +0 -16
  478. package/docs/concepts/memory.md +7 -4
  479. package/docs/concepts/model-providers.md +27 -0
  480. package/docs/concepts/session-tool.md +1 -0
  481. package/docs/concepts/system-prompt.md +13 -0
  482. package/docs/docs.json +18 -12
  483. package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +229 -0
  484. package/docs/gateway/configuration-examples.md +9 -2
  485. package/docs/gateway/configuration-reference.md +2345 -0
  486. package/docs/gateway/configuration.md +338 -3297
  487. package/docs/gateway/index.md +162 -238
  488. package/docs/gateway/openai-http-api.md +1 -0
  489. package/docs/gateway/openresponses-http-api.md +16 -0
  490. package/docs/gateway/remote-gateway-readme.md +0 -16
  491. package/docs/gateway/security/index.md +4 -16
  492. package/docs/gateway/tools-invoke-http-api.md +26 -1
  493. package/docs/help/faq.md +9 -0
  494. package/docs/help/testing.md +11 -0
  495. package/docs/install/docker.md +18 -0
  496. package/docs/install/hetzner.md +21 -0
  497. package/docs/install/installer.md +20 -0
  498. package/docs/nodes/audio.md +19 -0
  499. package/docs/platforms/mac/release.md +7 -7
  500. package/docs/providers/glm.md +3 -3
  501. package/docs/providers/huggingface.md +209 -0
  502. package/docs/providers/index.md +3 -0
  503. package/docs/providers/litellm.md +153 -0
  504. package/docs/providers/together.md +2 -2
  505. package/docs/providers/vllm.md +92 -0
  506. package/docs/providers/zai.md +2 -2
  507. package/docs/reference/credits.md +4 -28
  508. package/docs/reference/test.md +2 -1
  509. package/docs/reference/token-use.md +1 -1
  510. package/docs/reference/transcript-hygiene.md +18 -0
  511. package/docs/start/getting-started.md +5 -0
  512. package/docs/start/onboarding-overview.md +51 -0
  513. package/docs/start/onboarding.md +1 -0
  514. package/docs/start/openclaw.md +0 -16
  515. package/docs/start/wizard-cli-automation.md +17 -0
  516. package/docs/start/wizard-cli-reference.md +12 -0
  517. package/docs/start/wizard.md +3 -1
  518. package/docs/tools/browser.md +6 -0
  519. package/docs/zh-CN/automation/hooks.md +1 -38
  520. package/docs/zh-CN/cli/hooks.md +1 -14
  521. package/extensions/bluebubbles/package.json +1 -1
  522. package/extensions/bluebubbles/src/monitor.test.ts +40 -28
  523. package/extensions/bluebubbles/src/monitor.ts +0 -4
  524. package/extensions/copilot-proxy/package.json +1 -1
  525. package/extensions/diagnostics-otel/package.json +10 -10
  526. package/extensions/discord/package.json +1 -1
  527. package/extensions/feishu/package.json +2 -5
  528. package/extensions/feishu/src/bot.checkBotMentioned.test.ts +64 -0
  529. package/extensions/feishu/src/bot.test.ts +265 -0
  530. package/extensions/feishu/src/bot.ts +73 -18
  531. package/extensions/feishu/src/channel.test.ts +48 -0
  532. package/extensions/feishu/src/channel.ts +1 -3
  533. package/extensions/feishu/src/config-schema.ts +6 -0
  534. package/extensions/feishu/src/docx.ts +14 -4
  535. package/extensions/feishu/src/media.test.ts +151 -0
  536. package/extensions/feishu/src/media.ts +27 -13
  537. package/extensions/feishu/src/reply-dispatcher.test.ts +116 -0
  538. package/extensions/feishu/src/reply-dispatcher.ts +124 -67
  539. package/extensions/feishu/src/streaming-card.ts +223 -0
  540. package/extensions/feishu/src/targets.test.ts +16 -0
  541. package/extensions/feishu/src/targets.ts +1 -1
  542. package/extensions/google-antigravity-auth/package.json +1 -1
  543. package/extensions/google-gemini-cli-auth/oauth.test.ts +4 -1
  544. package/extensions/google-gemini-cli-auth/package.json +1 -1
  545. package/extensions/googlechat/package.json +1 -1
  546. package/extensions/googlechat/src/channel.ts +3 -20
  547. package/extensions/googlechat/src/resolve-target.test.ts +138 -0
  548. package/extensions/imessage/package.json +1 -1
  549. package/extensions/irc/index.ts +17 -0
  550. package/extensions/irc/openclaw.plugin.json +9 -0
  551. package/extensions/irc/package.json +14 -0
  552. package/extensions/irc/src/accounts.ts +268 -0
  553. package/extensions/irc/src/channel.ts +367 -0
  554. package/extensions/irc/src/client.test.ts +43 -0
  555. package/extensions/irc/src/client.ts +439 -0
  556. package/extensions/irc/src/config-schema.test.ts +27 -0
  557. package/extensions/irc/src/config-schema.ts +97 -0
  558. package/extensions/irc/src/control-chars.ts +22 -0
  559. package/extensions/irc/src/inbound.ts +334 -0
  560. package/extensions/irc/src/monitor.test.ts +43 -0
  561. package/extensions/irc/src/monitor.ts +158 -0
  562. package/extensions/irc/src/normalize.test.ts +46 -0
  563. package/extensions/irc/src/normalize.ts +117 -0
  564. package/extensions/irc/src/onboarding.test.ts +118 -0
  565. package/extensions/irc/src/onboarding.ts +479 -0
  566. package/extensions/irc/src/policy.test.ts +132 -0
  567. package/extensions/irc/src/policy.ts +157 -0
  568. package/extensions/irc/src/probe.ts +64 -0
  569. package/extensions/irc/src/protocol.test.ts +44 -0
  570. package/extensions/irc/src/protocol.ts +169 -0
  571. package/extensions/irc/src/runtime.ts +14 -0
  572. package/extensions/irc/src/send.ts +99 -0
  573. package/extensions/irc/src/types.ts +94 -0
  574. package/extensions/line/package.json +1 -1
  575. package/extensions/llm-task/package.json +1 -1
  576. package/extensions/lobster/package.json +1 -1
  577. package/extensions/matrix/CHANGELOG.md +6 -0
  578. package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
  579. package/extensions/matrix/node_modules/.bin/markdown-it.CMD +2 -2
  580. package/extensions/matrix/node_modules/.bin/markdown-it.ps1 +2 -2
  581. package/extensions/matrix/package.json +2 -2
  582. package/extensions/matrix/src/matrix/monitor/media.ts +4 -2
  583. package/extensions/mattermost/package.json +1 -1
  584. package/extensions/memory-core/package.json +1 -1
  585. package/extensions/memory-lancedb/index.ts +6 -2
  586. package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
  587. package/extensions/memory-lancedb/node_modules/.bin/openai.CMD +2 -2
  588. package/extensions/memory-lancedb/node_modules/.bin/openai.ps1 +2 -2
  589. package/extensions/memory-lancedb/package.json +2 -2
  590. package/extensions/minimax-portal-auth/index.ts +7 -5
  591. package/extensions/minimax-portal-auth/package.json +1 -1
  592. package/extensions/msteams/CHANGELOG.md +6 -0
  593. package/extensions/msteams/package.json +1 -1
  594. package/extensions/msteams/src/media-helpers.test.ts +9 -0
  595. package/extensions/msteams/src/media-helpers.ts +15 -1
  596. package/extensions/msteams/src/mentions.test.ts +235 -0
  597. package/extensions/msteams/src/mentions.ts +114 -0
  598. package/extensions/msteams/src/messenger.test.ts +81 -1
  599. package/extensions/msteams/src/messenger.ts +11 -2
  600. package/extensions/nextcloud-talk/package.json +1 -1
  601. package/extensions/nostr/CHANGELOG.md +6 -0
  602. package/extensions/nostr/package.json +2 -2
  603. package/extensions/open-prose/package.json +1 -1
  604. package/extensions/signal/package.json +1 -1
  605. package/extensions/slack/package.json +1 -1
  606. package/extensions/telegram/package.json +1 -1
  607. package/extensions/telegram/src/channel.ts +1 -0
  608. package/extensions/tlon/package.json +1 -1
  609. package/extensions/twitch/CHANGELOG.md +6 -0
  610. package/extensions/twitch/package.json +1 -1
  611. package/extensions/twitch/src/onboarding.test.ts +5 -0
  612. package/extensions/twitch/src/outbound.test.ts +17 -6
  613. package/extensions/twitch/src/outbound.ts +12 -10
  614. package/extensions/voice-call/CHANGELOG.md +6 -0
  615. package/extensions/voice-call/package.json +1 -1
  616. package/extensions/voice-call/src/media-stream.ts +7 -1
  617. package/extensions/voice-call/src/providers/twilio.test.ts +5 -3
  618. package/extensions/voice-call/src/providers/twilio.ts +12 -1
  619. package/extensions/whatsapp/package.json +1 -1
  620. package/extensions/whatsapp/src/channel.ts +6 -16
  621. package/extensions/whatsapp/src/resolve-target.test.ts +154 -0
  622. package/extensions/zalo/CHANGELOG.md +6 -0
  623. package/extensions/zalo/package.json +1 -1
  624. package/extensions/zalouser/CHANGELOG.md +6 -0
  625. package/extensions/zalouser/package.json +1 -1
  626. package/package.json +26 -22
  627. package/dist/auth-BcNHFK-i.js +0 -184
  628. package/dist/auth-DkjJ3pm-.js +0 -184
  629. package/dist/boolean-M-esQJt6.js +0 -30
  630. package/dist/bundled/soul-evil/HOOK.md +0 -71
  631. package/dist/bundled/soul-evil/handler.js +0 -194
  632. package/dist/cli-B631__JU.js +0 -89
  633. package/dist/cli-DVhCVZZ6.js +0 -86
  634. package/dist/config-CI7EpvlP.js +0 -15
  635. package/dist/constants-DuoCkWRh.js +0 -65
  636. package/dist/control-ui/assets/index-CnB9IO4a.js.map +0 -1
  637. package/dist/control-ui/assets/index-DWhx-9JL.css +0 -1
  638. package/dist/date-time-c6HTX6IW.js +0 -187
  639. package/dist/frontmatter-xwTm0734.js +0 -105
  640. package/dist/parse-DqAvJRIf.js +0 -23
  641. package/dist/parse-duration-De_tAQSe.js +0 -24
  642. package/dist/parse-timeout-DV8NQQWk.js +0 -16
  643. package/dist/paths-IivnSNkP.js +0 -51
  644. package/dist/paths-MnZaxqPw.js +0 -48
  645. package/dist/paths-uoGO2aiO.js +0 -48
  646. package/dist/pi-model-discovery-DzFOAbQt.js +0 -20
  647. package/dist/plugin-sdk/tui/tui-formatters.d.ts +0 -31
  648. package/dist/session-key-nXYQSv-a.js +0 -167
  649. package/dist/tailscale-DU6DgqVy.js +0 -225
  650. package/dist/tailscale-DzJUWmKf.js +0 -252
  651. package/dist/utils-dp_OM900.js +0 -476
  652. package/docs/hooks/soul-evil.md +0 -69
  653. package/docs/zh-CN/hooks/soul-evil.md +0 -72
  654. package/skills/local-places/SERVER_README.md +0 -101
  655. package/skills/local-places/SKILL.md +0 -102
  656. package/skills/local-places/pyproject.toml +0 -21
  657. package/skills/local-places/src/local_places/__init__.py +0 -2
  658. package/skills/local-places/src/local_places/google_places.py +0 -314
  659. package/skills/local-places/src/local_places/main.py +0 -65
  660. package/skills/local-places/src/local_places/schemas.py +0 -107
  661. /package/dist/{archive-CXhvR9nU.js → archive-aSMUcOc6.js} +0 -0
  662. /package/dist/{archive-D0z3LZDK.js → archive-beaSfAzA.js} +0 -0
  663. /package/dist/{brew-BIrWdDps.js → brew-DlQQMJ3n.js} +0 -0
  664. /package/dist/{brew-B7YK4ZoL.js → brew-ROHf0-Xp.js} +0 -0
  665. /package/dist/{cli-utils-PlLcDZlM.js → cli-utils-CRhVAaLV.js} +0 -0
  666. /package/dist/{cli-utils-R-ECs5cY.js → cli-utils-CodyYLHe.js} +0 -0
  667. /package/dist/{command-format-BUxhT1xL.js → command-format-qUVxzqYm.js} +0 -0
  668. /package/dist/{constants-CNTiY-ZN.js → constants-BvQ6S8j5.js} +0 -0
  669. /package/dist/{errors-D3tYRJWG.js → errors-B91HIDPD.js} +0 -0
  670. /package/dist/{errors-B0eT3jVv.js → errors-Bv81hF2P.js} +0 -0
  671. /package/dist/{errors-x4NYs-1P.js → errors-Cojm0Kl7.js} +0 -0
  672. /package/dist/{format-CaxeRcue.js → format-CL8VOhxX.js} +0 -0
  673. /package/dist/{format-DLOJPZmo.js → format-DcfK-dwd.js} +0 -0
  674. /package/dist/{format-duration-CEmFWLyX.js → format-duration--hQihAvf.js} +0 -0
  675. /package/dist/{format-duration-DCXJx2ba.js → format-duration-84n6_DgO.js} +0 -0
  676. /package/dist/{format-relative-79_Y1n2Y.js → format-relative-Cywx6ldk.js} +0 -0
  677. /package/dist/{format-relative-Db7eqEu8.js → format-relative-cegC_FF5.js} +0 -0
  678. /package/dist/{helpers-CQI-5xS9.js → helpers-8O7IVGO-.js} +0 -0
  679. /package/dist/{helpers-DdwqKAAS.js → helpers-ByYj2Aq5.js} +0 -0
  680. /package/dist/{helpers-CRzoyyXS.js → helpers-CUVSCDJV.js} +0 -0
  681. /package/dist/{helpers-C89IG08W.js → helpers-HyeZXsnu.js} +0 -0
  682. /package/dist/{is-main-qJ675wPV.js → is-main-B9A8S9YC.js} +0 -0
  683. /package/dist/{is-main-WWuz28Ip.js → is-main-BWoXGz7p.js} +0 -0
  684. /package/dist/{logging-BzvBIA3Y.js → logging-D-Jq2wIo.js} +0 -0
  685. /package/dist/{logging-CfEk_PnX.js → logging-fywhKCmE.js} +0 -0
  686. /package/dist/{parse-Cjiudy6x.js → parse-Bw0oH-rT.js} +0 -0
  687. /package/dist/{parse-log-line-CUrpqe1w.js → parse-log-line-BuRiE-Ij.js} +0 -0
  688. /package/dist/{parse-log-line-D2UGw0wR.js → parse-log-line-CfVgwy6x.js} +0 -0
  689. /package/dist/{parse-timeout-DFSPLxpY.js → parse-timeout-D1XX_zN_.js} +0 -0
  690. /package/dist/{pi-model-discovery-CV2V1HHz.js → pi-model-discovery-DqgqUyAv.js} +0 -0
  691. /package/dist/{pi-model-discovery-DzEIEgHL.js → pi-model-discovery-EwKVHlZB.js} +0 -0
  692. /package/dist/{prompts--d-6l5Ln.js → prompts-Bg96reub.js} +0 -0
  693. /package/dist/{prompts-CXLLIBwP.js → prompts-Dszjy1n_.js} +0 -0
  694. /package/dist/{redact-BRmQPYDR.js → redact-BIMJ3ntQ.js} +0 -0
  695. /package/dist/{redact-BHmk44DI.js → redact-BRsnXqwD.js} +0 -0
  696. /package/dist/{redact-DAKeu7PA.js → redact-UvkXqguc.js} +0 -0
  697. /package/dist/{status-Cv36yYdi.js → status-C_dMhoE0.js} +0 -0
  698. /package/dist/{status-Drziap9H.js → status-DCkF_L3U.js} +0 -0
  699. /package/dist/{systemd-hints-CH4pbCFD.js → systemd-hints-CXNtLw9Q.js} +0 -0
  700. /package/dist/{tailnet-CL5GtL7t.js → tailnet-DATIFSsY.js} +0 -0
  701. /package/dist/{tailnet-DGRSvYuQ.js → tailnet-uoFvUSsw.js} +0 -0
  702. /package/dist/{transcript-events-BlIONGVn.js → transcript-events-BHS7QoRl.js} +0 -0
  703. /package/dist/{transcript-events-C1hdue6u.js → transcript-events-Bp7fGnwv.js} +0 -0
  704. /package/dist/{transcript-events-CZ8CG4ht.js → transcript-events-Ch7wLX-j.js} +0 -0
  705. /package/dist/{usage-format-6Uar63S0.js → usage-format-Bhl_WCWP.js} +0 -0
  706. /package/dist/{usage-format-hd37en6b.js → usage-format-CpORtVCG.js} +0 -0
  707. /package/extensions/{feishu → irc}/node_modules/.bin/claw +0 -0
  708. /package/extensions/{feishu → irc}/node_modules/.bin/claw.CMD +0 -0
  709. /package/extensions/{feishu → irc}/node_modules/.bin/claw.ps1 +0 -0
  710. /package/extensions/{feishu → irc}/node_modules/.bin/moltbot +0 -0
  711. /package/extensions/{feishu → irc}/node_modules/.bin/moltbot.CMD +0 -0
  712. /package/extensions/{feishu → irc}/node_modules/.bin/moltbot.ps1 +0 -0
  713. /package/extensions/{feishu → irc}/node_modules/.bin/pigbot +0 -0
  714. /package/extensions/{feishu → irc}/node_modules/.bin/pigbot.CMD +0 -0
  715. /package/extensions/{feishu → irc}/node_modules/.bin/pigbot.ps1 +0 -0
@@ -0,0 +1,3 @@
1
+ import { runExec } from "../process/exec.js";
2
+ import { type RuntimeEnv } from "../runtime.js";
3
+ export declare function ensureBinary(name: string, exec?: typeof runExec, runtime?: RuntimeEnv): Promise<void>;
@@ -0,0 +1,8 @@
1
+ export declare function resolveBrewPathDirs(opts?: {
2
+ homeDir?: string;
3
+ env?: NodeJS.ProcessEnv;
4
+ }): string[];
5
+ export declare function resolveBrewExecutable(opts?: {
6
+ homeDir?: string;
7
+ env?: NodeJS.ProcessEnv;
8
+ }): string | undefined;
@@ -0,0 +1,5 @@
1
+ import type { OpenClawConfig } from "../config/config.js";
2
+ import type { AgentDefaultsConfig } from "../config/types.agent-defaults.js";
3
+ type HeartbeatConfig = AgentDefaultsConfig["heartbeat"];
4
+ export declare function isWithinActiveHours(cfg: OpenClawConfig, heartbeat?: HeartbeatConfig, nowMs?: number): boolean;
5
+ export {};
@@ -20,6 +20,7 @@ export type HeartbeatSummary = {
20
20
  model?: string;
21
21
  ackMaxChars: number;
22
22
  };
23
+ export declare function isCronSystemEvent(evt: string): boolean;
23
24
  export type HeartbeatRunner = {
24
25
  stop: () => void;
25
26
  updateConfig: (cfg: OpenClawConfig) => void;
@@ -11,10 +11,17 @@ export type HeartbeatRunResult = {
11
11
  export type HeartbeatWakeHandler = (opts: {
12
12
  reason?: string;
13
13
  }) => Promise<HeartbeatRunResult>;
14
- export declare function setHeartbeatWakeHandler(next: HeartbeatWakeHandler | null): void;
14
+ /**
15
+ * Register (or clear) the heartbeat wake handler.
16
+ * Returns a disposer function that clears this specific registration.
17
+ * Stale disposers (from previous registrations) are no-ops, preventing
18
+ * a race where an old runner's cleanup clears a newer runner's handler.
19
+ */
20
+ export declare function setHeartbeatWakeHandler(next: HeartbeatWakeHandler | null): () => void;
15
21
  export declare function requestHeartbeatNow(opts?: {
16
22
  reason?: string;
17
23
  coalesceMs?: number;
18
24
  }): void;
19
25
  export declare function hasHeartbeatWakeHandler(): boolean;
20
26
  export declare function hasPendingHeartbeatWake(): boolean;
27
+ export declare function resetHeartbeatWakeStateForTests(): void;
@@ -10,6 +10,7 @@ export type GuardedFetchOptions = {
10
10
  policy?: SsrFPolicy;
11
11
  lookupFn?: LookupFn;
12
12
  pinDns?: boolean;
13
+ auditContext?: string;
13
14
  };
14
15
  export type GuardedFetchResult = {
15
16
  response: Response;
@@ -8,6 +8,7 @@ export type LookupFn = typeof dnsLookup;
8
8
  export type SsrFPolicy = {
9
9
  allowPrivateNetwork?: boolean;
10
10
  allowedHostnames?: string[];
11
+ hostnameAllowlist?: string[];
11
12
  };
12
13
  export declare function isPrivateIpAddress(address: string): boolean;
13
14
  export declare function isBlockedHostname(hostname: string): boolean;
@@ -17,6 +17,8 @@ type MessageSendParams = {
17
17
  mediaUrls?: string[];
18
18
  gifPlayback?: boolean;
19
19
  accountId?: string;
20
+ replyToId?: string;
21
+ threadId?: string | number;
20
22
  dryRun?: boolean;
21
23
  bestEffort?: boolean;
22
24
  deps?: OutboundSendDeps;
@@ -37,6 +37,8 @@ export declare function executeSendAction(params: {
37
37
  mediaUrls?: string[];
38
38
  gifPlayback?: boolean;
39
39
  bestEffort?: boolean;
40
+ replyToId?: string;
41
+ threadId?: string | number;
40
42
  }): Promise<{
41
43
  handledBy: "plugin" | "core";
42
44
  payload: unknown;
@@ -119,6 +119,7 @@ export declare function loadSessionCostSummary(params: {
119
119
  sessionEntry?: SessionEntry;
120
120
  sessionFile?: string;
121
121
  config?: OpenClawConfig;
122
+ agentId?: string;
122
123
  startMs?: number;
123
124
  endMs?: number;
124
125
  }): Promise<SessionCostSummary | null>;
@@ -142,6 +143,7 @@ export declare function loadSessionUsageTimeSeries(params: {
142
143
  sessionEntry?: SessionEntry;
143
144
  sessionFile?: string;
144
145
  config?: OpenClawConfig;
146
+ agentId?: string;
145
147
  maxPoints?: number;
146
148
  }): Promise<SessionUsageTimeSeries | null>;
147
149
  export type SessionLogEntry = {
@@ -156,5 +158,6 @@ export declare function loadSessionLogs(params: {
156
158
  sessionEntry?: SessionEntry;
157
159
  sessionFile?: string;
158
160
  config?: OpenClawConfig;
161
+ agentId?: string;
159
162
  limit?: number;
160
163
  }): Promise<SessionLogEntry[] | null>;
@@ -0,0 +1,34 @@
1
+ import { promptYesNo } from "../cli/prompt.js";
2
+ import { runExec } from "../process/exec.js";
3
+ import { type RuntimeEnv } from "../runtime.js";
4
+ /**
5
+ * Locate Tailscale binary using multiple strategies:
6
+ * 1. PATH lookup (via which command)
7
+ * 2. Known macOS app path
8
+ * 3. find /Applications for Tailscale.app
9
+ * 4. locate database (if available)
10
+ *
11
+ * @returns Path to Tailscale binary or null if not found
12
+ */
13
+ export declare function findTailscaleBinary(): Promise<string | null>;
14
+ export declare function getTailnetHostname(exec?: typeof runExec, detectedBinary?: string): Promise<string>;
15
+ export declare function getTailscaleBinary(): Promise<string>;
16
+ export declare function readTailscaleStatusJson(exec?: typeof runExec, opts?: {
17
+ timeoutMs?: number;
18
+ }): Promise<Record<string, unknown>>;
19
+ export declare function ensureGoInstalled(exec?: typeof runExec, prompt?: typeof promptYesNo, runtime?: RuntimeEnv): Promise<void>;
20
+ export declare function ensureTailscaledInstalled(exec?: typeof runExec, prompt?: typeof promptYesNo, runtime?: RuntimeEnv): Promise<void>;
21
+ export type TailscaleWhoisIdentity = {
22
+ login: string;
23
+ name?: string;
24
+ };
25
+ export declare function ensureFunnel(port: number, exec?: typeof runExec, runtime?: RuntimeEnv, prompt?: typeof promptYesNo): Promise<void>;
26
+ export declare function enableTailscaleServe(port: number, exec?: typeof runExec): Promise<void>;
27
+ export declare function disableTailscaleServe(exec?: typeof runExec): Promise<void>;
28
+ export declare function enableTailscaleFunnel(port: number, exec?: typeof runExec): Promise<void>;
29
+ export declare function disableTailscaleFunnel(exec?: typeof runExec): Promise<void>;
30
+ export declare function readTailscaleWhoisIdentity(ip: string, exec?: typeof runExec, opts?: {
31
+ timeoutMs?: number;
32
+ cacheTtlMs?: number;
33
+ errorTtlMs?: number;
34
+ }): Promise<TailscaleWhoisIdentity | null>;
@@ -0,0 +1,10 @@
1
+ export declare const POSIX_OPENCLAW_TMP_DIR = "/tmp/openclaw";
2
+ type ResolvePreferredOpenClawTmpDirOptions = {
3
+ accessSync?: (path: string, mode?: number) => void;
4
+ statSync?: (path: string) => {
5
+ isDirectory(): boolean;
6
+ };
7
+ tmpdir?: () => string;
8
+ };
9
+ export declare function resolvePreferredOpenClawTmpDir(options?: ResolvePreferredOpenClawTmpDirOptions): string;
10
+ export {};
@@ -1,3 +1,4 @@
1
+ import type { OpenClawConfig } from "../config/types.js";
1
2
  import { type LogLevel } from "./levels.js";
2
3
  export type ConsoleStyle = "pretty" | "compact" | "json";
3
4
  type ConsoleSettings = {
@@ -5,12 +6,15 @@ type ConsoleSettings = {
5
6
  style: ConsoleStyle;
6
7
  };
7
8
  export type ConsoleLoggerSettings = ConsoleSettings;
9
+ type ConsoleConfigLoader = () => OpenClawConfig["logging"] | undefined;
10
+ export declare function setConsoleConfigLoaderForTests(loader?: ConsoleConfigLoader): void;
8
11
  export declare function getConsoleSettings(): ConsoleLoggerSettings;
9
12
  export declare function getResolvedConsoleSettings(): ConsoleLoggerSettings;
10
13
  export declare function routeLogsToStderr(): void;
11
14
  export declare function setConsoleSubsystemFilter(filters?: string[] | null): void;
12
15
  export declare function setConsoleTimestampPrefix(enabled: boolean): void;
13
16
  export declare function shouldLogSubsystemToConsole(subsystem: string): boolean;
17
+ export declare function formatConsoleTimestamp(style: ConsoleStyle): string;
14
18
  /**
15
19
  * Route console.* calls through file logging while still emitting to stdout/stderr.
16
20
  * This keeps user-facing output unchanged but guarantees every console call is captured in log files.
@@ -1,7 +1,7 @@
1
1
  import { Logger as TsLogger } from "tslog";
2
2
  import type { ConsoleStyle } from "./console.js";
3
3
  import { type LogLevel } from "./levels.js";
4
- export declare const DEFAULT_LOG_DIR = "/tmp/openclaw";
4
+ export declare const DEFAULT_LOG_DIR: string;
5
5
  export declare const DEFAULT_LOG_FILE: string;
6
6
  export type LoggerSettings = {
7
7
  level?: LogLevel;
@@ -8,6 +8,7 @@ export declare const loggingState: {
8
8
  consoleTimestampPrefix: boolean;
9
9
  consoleSubsystemFilter: string[] | null;
10
10
  resolvingConsoleSettings: boolean;
11
+ streamErrorHandlersInstalled: boolean;
11
12
  rawConsole: {
12
13
  log: typeof console.log;
13
14
  info: typeof console.info;
@@ -2,9 +2,9 @@ import type { ConsoleLoggerSettings, ConsoleStyle } from "./logging/console.js";
2
2
  import type { LogLevel } from "./logging/levels.js";
3
3
  import type { LoggerResolvedSettings, LoggerSettings, PinoLikeLogger } from "./logging/logger.js";
4
4
  import type { SubsystemLogger } from "./logging/subsystem.js";
5
- import { enableConsoleCapture, getConsoleSettings, getResolvedConsoleSettings, routeLogsToStderr, setConsoleSubsystemFilter, setConsoleTimestampPrefix, shouldLogSubsystemToConsole } from "./logging/console.js";
5
+ import { enableConsoleCapture, getConsoleSettings, getResolvedConsoleSettings, routeLogsToStderr, setConsoleSubsystemFilter, setConsoleConfigLoaderForTests, setConsoleTimestampPrefix, shouldLogSubsystemToConsole } from "./logging/console.js";
6
6
  import { ALLOWED_LOG_LEVELS, levelToMinLevel, normalizeLogLevel } from "./logging/levels.js";
7
7
  import { DEFAULT_LOG_DIR, DEFAULT_LOG_FILE, getChildLogger, getLogger, getResolvedLoggerSettings, isFileLogLevelEnabled, resetLogger, setLoggerOverride, toPinoLikeLogger } from "./logging/logger.js";
8
8
  import { createSubsystemLogger, createSubsystemRuntime, runtimeForLogger, stripRedundantSubsystemPrefixForConsole } from "./logging/subsystem.js";
9
- export { enableConsoleCapture, getConsoleSettings, getResolvedConsoleSettings, routeLogsToStderr, setConsoleSubsystemFilter, setConsoleTimestampPrefix, shouldLogSubsystemToConsole, ALLOWED_LOG_LEVELS, levelToMinLevel, normalizeLogLevel, DEFAULT_LOG_DIR, DEFAULT_LOG_FILE, getChildLogger, getLogger, getResolvedLoggerSettings, isFileLogLevelEnabled, resetLogger, setLoggerOverride, toPinoLikeLogger, createSubsystemLogger, createSubsystemRuntime, runtimeForLogger, stripRedundantSubsystemPrefixForConsole, };
9
+ export { enableConsoleCapture, getConsoleSettings, getResolvedConsoleSettings, routeLogsToStderr, setConsoleSubsystemFilter, setConsoleConfigLoaderForTests, setConsoleTimestampPrefix, shouldLogSubsystemToConsole, ALLOWED_LOG_LEVELS, levelToMinLevel, normalizeLogLevel, DEFAULT_LOG_DIR, DEFAULT_LOG_FILE, getChildLogger, getLogger, getResolvedLoggerSettings, isFileLogLevelEnabled, resetLogger, setLoggerOverride, toPinoLikeLogger, createSubsystemLogger, createSubsystemRuntime, runtimeForLogger, stripRedundantSubsystemPrefixForConsole, };
10
10
  export type { ConsoleLoggerSettings, ConsoleStyle, LogLevel, LoggerResolvedSettings, LoggerSettings, PinoLikeLogger, SubsystemLogger, };
@@ -1,5 +1,5 @@
1
1
  import type { MarkdownTableMode } from "../config/types.base.js";
2
- export type MarkdownStyle = "bold" | "italic" | "strikethrough" | "code" | "code_block" | "spoiler";
2
+ export type MarkdownStyle = "bold" | "italic" | "strikethrough" | "code" | "code_block" | "spoiler" | "blockquote";
3
3
  export type MarkdownStyleSpan = {
4
4
  start: number;
5
5
  end: number;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Convert standard Markdown bold/italic/strikethrough to WhatsApp formatting.
3
+ *
4
+ * Order of operations matters:
5
+ * 1. Protect fenced code blocks (```...```) — already WhatsApp-compatible
6
+ * 2. Protect inline code (`...`) — leave as-is
7
+ * 3. Convert **bold** → *bold* and __bold__ → *bold*
8
+ * 4. Convert ~~strike~~ → ~strike~
9
+ * 5. Restore protected spans
10
+ *
11
+ * Italic *text* and _text_ are left alone since WhatsApp uses _text_ for italic
12
+ * and single * is already WhatsApp bold — no conversion needed for single markers.
13
+ */
14
+ export declare function markdownToWhatsApp(text: string): string;
@@ -1,3 +1,4 @@
1
+ import type { SsrFPolicy } from "../infra/net/ssrf.js";
1
2
  export type InputImageContent = {
2
3
  type: "image";
3
4
  data: string;
@@ -15,6 +16,7 @@ export type InputPdfLimits = {
15
16
  };
16
17
  export type InputFileLimits = {
17
18
  allowUrl: boolean;
19
+ urlAllowlist?: string[];
18
20
  allowedMimes: Set<string>;
19
21
  maxBytes: number;
20
22
  maxChars: number;
@@ -24,6 +26,7 @@ export type InputFileLimits = {
24
26
  };
25
27
  export type InputImageLimits = {
26
28
  allowUrl: boolean;
29
+ urlAllowlist?: string[];
27
30
  allowedMimes: Set<string>;
28
31
  maxBytes: number;
29
32
  maxRedirects: number;
@@ -68,6 +71,8 @@ export declare function fetchWithGuard(params: {
68
71
  maxBytes: number;
69
72
  timeoutMs: number;
70
73
  maxRedirects: number;
74
+ policy?: SsrFPolicy;
75
+ auditContext?: string;
71
76
  }): Promise<InputFetchResult>;
72
77
  export declare function extractImageContentFromSource(source: InputImageSource, limits: InputImageLimits): Promise<InputImageContent>;
73
78
  export declare function extractFileContentFromSource(params: {
@@ -1,4 +1,13 @@
1
+ import { request as httpRequest } from "node:http";
2
+ import { resolvePinnedHostname } from "../infra/net/ssrf.js";
1
3
  export declare const MEDIA_MAX_BYTES: number;
4
+ type RequestImpl = typeof httpRequest;
5
+ type ResolvePinnedHostnameImpl = typeof resolvePinnedHostname;
6
+ export declare function setMediaStoreNetworkDepsForTest(deps?: {
7
+ httpRequest?: RequestImpl;
8
+ httpsRequest?: RequestImpl;
9
+ resolvePinnedHostname?: ResolvePinnedHostnameImpl;
10
+ }): void;
2
11
  /**
3
12
  * Extract original filename from path if it matches the embedded format.
4
13
  * Pattern: {original}---{uuid}.{ext} → returns "{original}.{ext}"
@@ -16,3 +25,4 @@ export type SavedMedia = {
16
25
  };
17
26
  export declare function saveMediaSource(source: string, headers?: Record<string, string>, subdir?: string): Promise<SavedMedia>;
18
27
  export declare function saveMediaBuffer(buffer: Buffer, contentType?: string, subdir?: string, maxBytes?: number, originalFilename?: string): Promise<SavedMedia>;
28
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { MsgContext } from "../auto-reply/templating.js";
2
+ import type { OpenClawConfig } from "../config/config.js";
3
+ import type { MediaUnderstandingProvider } from "./types.js";
4
+ import { type ActiveMediaModel } from "./runner.js";
5
+ /**
6
+ * Transcribes the first audio attachment BEFORE mention checking.
7
+ * This allows voice notes to be processed in group chats with requireMention: true.
8
+ * Returns the transcript or undefined if transcription fails or no audio is found.
9
+ */
10
+ export declare function transcribeFirstAudio(params: {
11
+ ctx: MsgContext;
12
+ cfg: OpenClawConfig;
13
+ agentDir?: string;
14
+ providers?: Record<string, MediaUnderstandingProvider>;
15
+ activeModel?: ActiveMediaModel;
16
+ }): Promise<string | undefined>;
@@ -5,6 +5,7 @@ export type MediaAttachment = {
5
5
  url?: string;
6
6
  mime?: string;
7
7
  index: number;
8
+ alreadyTranscribed?: boolean;
8
9
  };
9
10
  export type MediaUnderstandingOutput = {
10
11
  kind: MediaUnderstandingKind;
@@ -1,6 +1,6 @@
1
1
  import type { OpenClawConfig } from "../config/config.js";
2
2
  import type { SessionSendPolicyConfig } from "../config/types.base.js";
3
- import type { MemoryBackend, MemoryCitationsMode } from "../config/types.memory.js";
3
+ import type { MemoryBackend, MemoryCitationsMode, MemoryQmdSearchMode } from "../config/types.memory.js";
4
4
  export type ResolvedMemoryBackendConfig = {
5
5
  backend: MemoryBackend;
6
6
  citations: MemoryCitationsMode;
@@ -35,6 +35,7 @@ export type ResolvedQmdSessionConfig = {
35
35
  };
36
36
  export type ResolvedQmdConfig = {
37
37
  command: string;
38
+ searchMode: MemoryQmdSearchMode;
38
39
  collections: ResolvedQmdCollection[];
39
40
  sessions: ResolvedQmdSessionConfig;
40
41
  update: ResolvedQmdUpdateConfig;
@@ -0,0 +1,3 @@
1
+ import type { EmbeddingProvider } from "./embeddings.js";
2
+ import { type MemoryChunk } from "./internal.js";
3
+ export declare function enforceEmbeddingMaxInputTokens(provider: EmbeddingProvider, chunks: MemoryChunk[]): MemoryChunk[];
@@ -0,0 +1,2 @@
1
+ export declare function estimateUtf8Bytes(text: string): number;
2
+ export declare function splitTextToUtf8ByteLimit(text: string, maxUtf8Bytes: number): string[];
@@ -0,0 +1,2 @@
1
+ import type { EmbeddingProvider } from "./embeddings.js";
2
+ export declare function resolveEmbeddingMaxInputTokens(provider: EmbeddingProvider): number;
@@ -8,6 +8,7 @@ export type { VoyageEmbeddingClient } from "./embeddings-voyage.js";
8
8
  export type EmbeddingProvider = {
9
9
  id: string;
10
10
  model: string;
11
+ maxInputTokens?: number;
11
12
  embedQuery: (text: string) => Promise<number[]>;
12
13
  embedBatch: (texts: string[]) => Promise<number[][]>;
13
14
  };
@@ -22,6 +22,17 @@ export declare function chunkMarkdown(content: string, chunking: {
22
22
  tokens: number;
23
23
  overlap: number;
24
24
  }): MemoryChunk[];
25
+ /**
26
+ * Remap chunk startLine/endLine from content-relative positions to original
27
+ * source file positions using a lineMap. Each entry in lineMap gives the
28
+ * 1-indexed source line for the corresponding 0-indexed content line.
29
+ *
30
+ * This is used for session JSONL files where buildSessionEntry() flattens
31
+ * messages into a plain-text string before chunking. Without remapping the
32
+ * stored line numbers would reference positions in the flattened text rather
33
+ * than the original JSONL file.
34
+ */
35
+ export declare function remapChunkLines(chunks: MemoryChunk[], lineMap: number[] | undefined): void;
25
36
  export declare function parseEmbedding(raw: string): number[];
26
37
  export declare function cosineSimilarity(a: number[], b: number[]): number;
27
38
  export declare function runWithConcurrency<T>(tasks: Array<() => Promise<T>>, limit: number): Promise<T[]>;
@@ -104,12 +104,6 @@ export declare class MemoryIndexManager implements MemorySearchManager {
104
104
  private resetIndex;
105
105
  private readMeta;
106
106
  private writeMeta;
107
- private listSessionFiles;
108
- private sessionPathForFile;
109
- private normalizeSessionText;
110
- private extractSessionText;
111
- private buildSessionEntry;
112
- private estimateEmbeddingTokens;
113
107
  private buildEmbeddingBatches;
114
108
  private loadEmbeddingCache;
115
109
  private upsertEmbeddingCache;
@@ -89,7 +89,9 @@ export declare class QmdMemoryManager implements MemorySearchManager {
89
89
  private clampResultsByInjectedChars;
90
90
  private shouldSkipUpdate;
91
91
  private isSqliteBusyError;
92
+ private isUnsupportedQmdOptionError;
92
93
  private createQmdBusyError;
93
94
  private waitForPendingUpdateBeforeSearch;
94
95
  private buildCollectionFilterArgs;
96
+ private buildSearchArgs;
95
97
  }
@@ -0,0 +1,8 @@
1
+ export type QmdQueryResult = {
2
+ docid?: string;
3
+ score?: number;
4
+ file?: string;
5
+ snippet?: string;
6
+ body?: string;
7
+ };
8
+ export declare function parseQmdQueryJson(stdout: string, stderr: string): QmdQueryResult[];
@@ -5,6 +5,8 @@ export type SessionFileEntry = {
5
5
  size: number;
6
6
  hash: string;
7
7
  content: string;
8
+ /** Maps each content line (0-indexed) to its 1-indexed JSONL source line. */
9
+ lineMap: number[];
8
10
  };
9
11
  export declare function listSessionFilesForAgent(agentId: string): Promise<string[]>;
10
12
  export declare function sessionPathForFile(absPath: string): string;
@@ -10,3 +10,19 @@ export declare function enqueueCommand<T>(task: () => Promise<T>, opts?: {
10
10
  export declare function getQueueSize(lane?: string): number;
11
11
  export declare function getTotalQueueSize(): number;
12
12
  export declare function clearCommandLane(lane?: string): number;
13
+ /**
14
+ * Returns the total number of actively executing tasks across all lanes
15
+ * (excludes queued-but-not-started entries).
16
+ */
17
+ export declare function getActiveTaskCount(): number;
18
+ /**
19
+ * Wait for all currently active tasks across all lanes to finish.
20
+ * Polls at a short interval; resolves when no tasks are active or
21
+ * when `timeoutMs` elapses (whichever comes first).
22
+ *
23
+ * New tasks enqueued after this call are ignored — only tasks that are
24
+ * already executing are waited on.
25
+ */
26
+ export declare function waitForActiveTasks(timeoutMs: number): Promise<{
27
+ drained: boolean;
28
+ }>;
@@ -11,6 +11,9 @@ export declare function resolveCopilotApiToken(params: {
11
11
  githubToken: string;
12
12
  env?: NodeJS.ProcessEnv;
13
13
  fetchImpl?: typeof fetch;
14
+ cachePath?: string;
15
+ loadJsonFileImpl?: (path: string) => unknown;
16
+ saveJsonFileImpl?: (path: string, value: CachedCopilotToken) => void;
14
17
  }): Promise<{
15
18
  token: string;
16
19
  expiresAt: number;
@@ -15,6 +15,8 @@ export type ResolveAgentRouteInput = {
15
15
  parentPeer?: RoutePeer | null;
16
16
  guildId?: string | null;
17
17
  teamId?: string | null;
18
+ /** Discord member role IDs — used for role-based agent routing. */
19
+ memberRoleIds?: string[];
18
20
  };
19
21
  export type ResolvedAgentRoute = {
20
22
  agentId: string;
@@ -25,7 +27,7 @@ export type ResolvedAgentRoute = {
25
27
  /** Convenience alias for direct-chat collapse. */
26
28
  mainSessionKey: string;
27
29
  /** Match description for debugging/logging. */
28
- matchedBy: "binding.peer" | "binding.peer.parent" | "binding.guild" | "binding.team" | "binding.account" | "binding.channel" | "default";
30
+ matchedBy: "binding.peer" | "binding.peer.parent" | "binding.guild+roles" | "binding.guild" | "binding.team" | "binding.account" | "binding.channel" | "default";
29
31
  };
30
32
  export { DEFAULT_ACCOUNT_ID, DEFAULT_AGENT_ID } from "./session-key.js";
31
33
  export declare function buildAgentSessionKey(params: {
@@ -11,7 +11,7 @@
11
11
  * Check if content contains suspicious patterns that may indicate injection.
12
12
  */
13
13
  export declare function detectSuspiciousPatterns(content: string): string[];
14
- export type ExternalContentSource = "email" | "webhook" | "api" | "channel_metadata" | "web_search" | "web_fetch" | "unknown";
14
+ export type ExternalContentSource = "email" | "webhook" | "api" | "browser" | "channel_metadata" | "web_search" | "web_fetch" | "unknown";
15
15
  export type WrapExternalContentOptions = {
16
16
  /** Source of the external content */
17
17
  source: ExternalContentSource;
@@ -0,0 +1 @@
1
+ export declare function safeEqualSecret(provided: string | undefined | null, expected: string | undefined | null): boolean;
@@ -0,0 +1,16 @@
1
+ import type { AgentMessage } from "@mariozechner/pi-agent-core";
2
+ export declare const INPUT_PROVENANCE_KIND_VALUES: readonly ["external_user", "inter_session", "internal_system"];
3
+ export type InputProvenanceKind = (typeof INPUT_PROVENANCE_KIND_VALUES)[number];
4
+ export type InputProvenance = {
5
+ kind: InputProvenanceKind;
6
+ sourceSessionKey?: string;
7
+ sourceChannel?: string;
8
+ sourceTool?: string;
9
+ };
10
+ export declare function normalizeInputProvenance(value: unknown): InputProvenance | undefined;
11
+ export declare function applyInputProvenanceToUserMessage(message: AgentMessage, inputProvenance: InputProvenance | undefined): AgentMessage;
12
+ export declare function isInterSessionInputProvenance(value: unknown): boolean;
13
+ export declare function hasInterSessionUserProvenance(message: {
14
+ role?: unknown;
15
+ provenance?: unknown;
16
+ } | undefined): boolean;
@@ -16,10 +16,18 @@ export type SignalEnvelope = {
16
16
  syncMessage?: unknown;
17
17
  reactionMessage?: SignalReactionMessage | null;
18
18
  };
19
+ export type SignalMention = {
20
+ name?: string | null;
21
+ number?: string | null;
22
+ uuid?: string | null;
23
+ start?: number | null;
24
+ length?: number | null;
25
+ };
19
26
  export type SignalDataMessage = {
20
27
  timestamp?: number;
21
28
  message?: string | null;
22
29
  attachments?: Array<SignalAttachment>;
30
+ mentions?: Array<SignalMention> | null;
23
31
  groupInfo?: {
24
32
  groupId?: string | null;
25
33
  groupName?: string | null;
@@ -0,0 +1,2 @@
1
+ import type { SignalMention } from "./event-handler.types.js";
2
+ export declare function renderSignalMentions(message: string, mentions?: SignalMention[] | null): string;
@@ -1,4 +1,9 @@
1
1
  import type { SlackSlashCommandConfig } from "../../config/config.js";
2
+ /**
3
+ * Strip Slack mentions (<@U123>, <@U123|name>) so command detection works on
4
+ * normalized text. Use in both prepare and debounce gate for consistency.
5
+ */
6
+ export declare function stripSlackMentionsForCommandDetection(text: string): string;
2
7
  export declare function normalizeSlackSlashCommandName(raw: string): string;
3
8
  export declare function resolveSlackSlashCommandConfig(raw?: SlackSlashCommandConfig): Required<SlackSlashCommandConfig>;
4
9
  export declare function buildSlackSlashCommandMatcher(name: string): RegExp;
@@ -27,3 +27,24 @@ export declare function resolveSlackThreadStarter(params: {
27
27
  threadTs: string;
28
28
  client: SlackWebClient;
29
29
  }): Promise<SlackThreadStarter | null>;
30
+ export type SlackThreadMessage = {
31
+ text: string;
32
+ userId?: string;
33
+ ts?: string;
34
+ botId?: string;
35
+ files?: SlackFile[];
36
+ };
37
+ /**
38
+ * Fetches the most recent messages in a Slack thread (excluding the current message).
39
+ * Used to populate thread context when a new thread session starts.
40
+ *
41
+ * Uses cursor pagination and keeps only the latest N retained messages so long threads
42
+ * still produce up-to-date context without unbounded memory growth.
43
+ */
44
+ export declare function resolveSlackThreadHistory(params: {
45
+ channelId: string;
46
+ threadTs: string;
47
+ client: SlackWebClient;
48
+ currentMessageTs?: string;
49
+ limit?: number;
50
+ }): Promise<SlackThreadMessage[]>;
@@ -2,6 +2,7 @@ export type SlackFile = {
2
2
  id?: string;
3
3
  name?: string;
4
4
  mimetype?: string;
5
+ subtype?: string;
5
6
  size?: number;
6
7
  url_private?: string;
7
8
  url_private_download?: string;
@@ -1,4 +1,5 @@
1
1
  import type { Bot } from "grammy";
2
+ import type { MsgContext } from "../auto-reply/templating.js";
2
3
  import type { OpenClawConfig } from "../config/config.js";
3
4
  import type { DmPolicy, TelegramGroupConfig, TelegramTopicConfig } from "../config/types.js";
4
5
  import type { StickerMetadata, TelegramContext } from "./bot/types.js";
@@ -106,7 +107,7 @@ export declare const buildTelegramMessageContext: ({ primaryCtx, allMedia, store
106
107
  MediaUrls: string[] | undefined;
107
108
  MediaTypes: string[] | undefined;
108
109
  Sticker: StickerMetadata | undefined;
109
- } & Omit<import("../auto-reply/templating.ts").MsgContext, "CommandAuthorized"> & {
110
+ } & Omit<MsgContext, "CommandAuthorized"> & {
110
111
  CommandAuthorized: boolean;
111
112
  };
112
113
  primaryCtx: TelegramContext;
@@ -2,3 +2,4 @@ import type { TelegramNetworkConfig } from "../config/types.telegram.js";
2
2
  export declare function resolveTelegramFetch(proxyFetch?: typeof fetch, options?: {
3
3
  network?: TelegramNetworkConfig;
4
4
  }): typeof fetch | undefined;
5
+ export declare function resetTelegramFetchStateForTests(): void;
@@ -11,6 +11,7 @@ export type MonitorTelegramOpts = {
11
11
  webhookPath?: string;
12
12
  webhookPort?: number;
13
13
  webhookSecret?: string;
14
+ webhookHost?: string;
14
15
  proxyFetch?: typeof fetch;
15
16
  webhookUrl?: string;
16
17
  };
@@ -46,6 +46,9 @@ export declare function buildInlineKeyboard(buttons?: TelegramSendOpts["buttons"
46
46
  export declare function sendMessageTelegram(to: string, text: string, opts?: TelegramSendOpts): Promise<TelegramSendResult>;
47
47
  export declare function reactMessageTelegram(chatIdInput: string | number, messageIdInput: string | number, emoji: string, opts?: TelegramReactionOpts): Promise<{
48
48
  ok: true;
49
+ } | {
50
+ ok: false;
51
+ warning: string;
49
52
  }>;
50
53
  type TelegramDeleteOpts = {
51
54
  token?: string;
@@ -146,7 +146,7 @@ export declare function isTtsProviderConfigured(config: ResolvedTtsConfig, provi
146
146
  declare function isValidVoiceId(voiceId: string): boolean;
147
147
  declare function parseTtsDirectives(text: string, policy: ResolvedTtsModelOverrides): TtsDirectiveParseResult;
148
148
  export declare const OPENAI_TTS_MODELS: readonly ["gpt-4o-mini-tts", "tts-1", "tts-1-hd"];
149
- export declare const OPENAI_TTS_VOICES: readonly ["alloy", "ash", "coral", "echo", "fable", "onyx", "nova", "sage", "shimmer"];
149
+ export declare const OPENAI_TTS_VOICES: readonly ["alloy", "ash", "ballad", "cedar", "coral", "echo", "fable", "juniper", "marin", "onyx", "nova", "sage", "shimmer", "verse"];
150
150
  type OpenAiTtsVoice = (typeof OPENAI_TTS_VOICES)[number];
151
151
  declare function isValidOpenAIModel(model: string): boolean;
152
152
  declare function isValidOpenAIVoice(voice: string): voice is OpenAiTtsVoice;
@@ -188,7 +188,7 @@ export declare const _test: {
188
188
  isValidOpenAIVoice: typeof isValidOpenAIVoice;
189
189
  isValidOpenAIModel: typeof isValidOpenAIModel;
190
190
  OPENAI_TTS_MODELS: readonly ["gpt-4o-mini-tts", "tts-1", "tts-1-hd"];
191
- OPENAI_TTS_VOICES: readonly ["alloy", "ash", "coral", "echo", "fable", "onyx", "nova", "sage", "shimmer"];
191
+ OPENAI_TTS_VOICES: readonly ["alloy", "ash", "ballad", "cedar", "coral", "echo", "fable", "juniper", "marin", "onyx", "nova", "sage", "shimmer", "verse"];
192
192
  parseTtsDirectives: typeof parseTtsDirectives;
193
193
  resolveModelOverridePolicy: typeof resolveModelOverridePolicy;
194
194
  summarizeText: typeof summarizeText;