@qqbrowser/openclaw-qbot 0.0.127 → 0.0.129

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 (1470) hide show
  1. package/dist/account-lookup-CW-_CL7y.js +1 -1
  2. package/dist/acp-cli-01SGjPGi.js +1 -1
  3. package/dist/acp-cli-uxN405XG.js +1 -1
  4. package/dist/active-listener-BZ6loNaF.js +1 -1
  5. package/dist/active-listener-D8VOdVx3.js +1 -1
  6. package/dist/active-listener-DB5mhDuO.js +1 -1
  7. package/dist/active-listener-DeKRt_UV.js +1 -1
  8. package/dist/agent-scope-DAWJwFfl.js +1 -1
  9. package/dist/agent-scope-DXZc3eNT.js +1 -1
  10. package/dist/agents-BMh3ZeoB.js +1 -1
  11. package/dist/agents.config-B-0lZSmb.js +1 -1
  12. package/dist/agents.config-BDEN2Eph.js +1 -1
  13. package/dist/allow-from-B6dI7oz8.js +1 -1
  14. package/dist/allow-from-DEeVIPKS.js +1 -1
  15. package/dist/api-BeG0ObSq.js +1 -1
  16. package/dist/api-Dx8x1KTs.js +1 -1
  17. package/dist/api-key-rotation-C_MG2y1D.js +1 -1
  18. package/dist/api-key-rotation-D8WsZ43x.js +1 -1
  19. package/dist/api-key-rotation-DYYvcqSG.js +1 -1
  20. package/dist/api-key-rotation-dNu0GxPN.js +1 -1
  21. package/dist/arg-split-BOqSMBuf.js +1 -1
  22. package/dist/arg-split-DE5RqDHq.js +1 -1
  23. package/dist/audio-preflight--K4-eUVY.js +1 -1
  24. package/dist/audio-preflight-BKIm58PG.js +1 -1
  25. package/dist/audio-preflight-CAfi10dl.js +1 -1
  26. package/dist/audio-preflight-Xm0NL5JA.js +1 -1
  27. package/dist/audio-transcription-runner-BJNP7vB8.js +1 -1
  28. package/dist/audio-transcription-runner-BUsb6cqv.js +1 -1
  29. package/dist/audio-transcription-runner-C_31Yoq0.js +1 -1
  30. package/dist/audio-transcription-runner-CjKLRVPo.js +1 -1
  31. package/dist/audit-7DFnKINd.js +1 -1
  32. package/dist/audit-B6LsW3Ai.js +1 -1
  33. package/dist/audit-membership-runtime-BpRsMj5-.js +1 -1
  34. package/dist/audit-membership-runtime-BsfLZNBj.js +1 -1
  35. package/dist/audit-membership-runtime-DRHirRmx.js +1 -1
  36. package/dist/audit-membership-runtime-g0dEWJTp.js +1 -1
  37. package/dist/audit-membership-runtime-kdyToskD.js +1 -1
  38. package/dist/auth-choice-BNd2SNjJ.js +1 -1
  39. package/dist/auth-choice-C3aUWXx9.js +1 -1
  40. package/dist/auth-choice-DViEjgMg.js +1 -1
  41. package/dist/auth-choice-edozMf7r.js +1 -1
  42. package/dist/auth-choice-options-B3WQyS7I.js +1 -1
  43. package/dist/auth-choice-options-Dw14noox.js +1 -1
  44. package/dist/auth-choice-prompt-uegl56cf.js +1 -1
  45. package/dist/auth-choice-prompt-xYj13czb.js +1 -1
  46. package/dist/auth-choice.apply-helpers-CNLYnRxx.js +1 -1
  47. package/dist/auth-choice.apply-helpers-DCe5nTyP.js +1 -1
  48. package/dist/auth-profiles-BhXA8Jy2.js +1 -1
  49. package/dist/auth-token-C75IOb_K.js +1 -1
  50. package/dist/auth-token-CzgZf-ta.js +1 -1
  51. package/dist/banner-mIDEloRy.js +1 -1
  52. package/dist/bonjour-discovery-CpvzLjyB.js +1 -1
  53. package/dist/bonjour-discovery-wsh3Si1Q.js +1 -1
  54. package/dist/boolean-Ch3DfXPy.js +1 -1
  55. package/dist/boolean-D15s2V33.js +1 -1
  56. package/dist/boolean-DypnRoRK.js +1 -1
  57. package/dist/brew-COcDl8CB.js +1 -1
  58. package/dist/brew-DDPm_HfE.js +1 -1
  59. package/dist/browser-cli-BjzNbvF9.js +1 -1
  60. package/dist/browser-cli-CgHkgtgV.js +1 -1
  61. package/dist/build-info.json +3 -3
  62. package/dist/bundled/boot-md/handler.js +1 -1
  63. package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
  64. package/dist/bundled/command-logger/handler.js +1 -1
  65. package/dist/bundled/session-memory/handler.js +1 -1
  66. package/dist/call-BA3O_Qpl.js +1 -1
  67. package/dist/call-BQT0zCgv.js +1 -1
  68. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  69. package/dist/channel-account-context-BMPAMZEv.js +1 -1
  70. package/dist/channel-account-context-DAcarnqW.js +1 -1
  71. package/dist/channel-activity-B04WbrrK.js +1 -1
  72. package/dist/channel-activity-BPRCQpI6.js +1 -1
  73. package/dist/channel-activity-D2VTmenR.js +1 -1
  74. package/dist/channel-activity-DHY5wAyl.js +1 -1
  75. package/dist/channel-activity-DYpm-0Cz.js +1 -1
  76. package/dist/channel-options-BYmHreMn.js +1 -1
  77. package/dist/channel-options-Cbv7VETu.js +1 -1
  78. package/dist/channel-selection-Ddyykqxv.js +1 -1
  79. package/dist/channel-selection-oRONo9z3.js +1 -1
  80. package/dist/channel-web-CK4RqVCH.js +1 -1
  81. package/dist/channel-web-Xw89Exy3.js +1 -1
  82. package/dist/channels/plugins/actions/discord.js +1 -1
  83. package/dist/channels/plugins/actions/signal.js +1 -1
  84. package/dist/channels/plugins/actions/telegram.js +1 -1
  85. package/dist/channels/plugins/agent-tools/whatsapp-login.js +1 -1
  86. package/dist/channels-cli-D2y5Xk5i.js +1 -1
  87. package/dist/channels-cli-cwFjBXcP.js +1 -1
  88. package/dist/channels-status-issues-8eFrGKyf.js +1 -1
  89. package/dist/channels-status-issues-PRgOT90w.js +1 -1
  90. package/dist/chat-envelope-Bznn2SoS.js +1 -1
  91. package/dist/chat-envelope-HVpKusFc.js +1 -1
  92. package/dist/clack-prompter-DBPdGdqp.js +1 -1
  93. package/dist/clack-prompter-Dq0aY6iM.js +1 -1
  94. package/dist/clawbot-cli-BwG1-8A9.js +1 -1
  95. package/dist/clawbot-cli-CaNu5A0G.js +1 -1
  96. package/dist/cleanup-utils-BWm70DoD.js +1 -1
  97. package/dist/cleanup-utils-D-RhEX6F.js +1 -1
  98. package/dist/cli-CQKA38bc.js +1 -1
  99. package/dist/cli-i7P4bYBg.js +1 -1
  100. package/dist/cli-utils-BY7dLMFy.js +1 -1
  101. package/dist/cli-utils-BleB1eys.js +1 -1
  102. package/dist/clipboard-Bk8cviBt.js +1 -1
  103. package/dist/clipboard-CKT_VIkG.js +1 -1
  104. package/dist/cmd-argv-BBT5l8AV.js +1 -1
  105. package/dist/cmd-argv-Bh-KpaZ0.js +1 -1
  106. package/dist/command-format-BbDT1tlm.js +1 -1
  107. package/dist/command-format-CLxIPuLR.js +1 -1
  108. package/dist/command-options-BpOUDl2S.js +1 -1
  109. package/dist/command-options-Bq5nQxz6.js +1 -1
  110. package/dist/command-poll-backoff-BZLHYB2k.js +1 -1
  111. package/dist/command-poll-backoff-Cww_r-24.js +1 -1
  112. package/dist/command-poll-backoff-Df6cOQrX.js +1 -1
  113. package/dist/command-poll-backoff-endAPdwn.js +1 -1
  114. package/dist/command-registry-BYk36N_R.js +1 -1
  115. package/dist/command-secret-targets-BBTiqQKa.js +1 -1
  116. package/dist/command-secret-targets-KM3OecbM.js +1 -1
  117. package/dist/commands-CGpM84iR.js +1 -1
  118. package/dist/commands-Dy7duWlt.js +1 -1
  119. package/dist/commands-registry-B3FI6TSl.js +1 -1
  120. package/dist/commands-registry-CxDVU5s9.js +1 -1
  121. package/dist/commands-registry-Dn2uuNuy.js +1 -1
  122. package/dist/commands-registry-Du79fdAL.js +1 -1
  123. package/dist/compact-CuBCVnVS.js +1 -1
  124. package/dist/completion-cli-CRNTbZlR.js +1 -1
  125. package/dist/completion-cli-DbGDCoiM.js +1 -1
  126. package/dist/config-BqW5S1xL.js +1 -1
  127. package/dist/config-DAQjvwZw.js +1 -1
  128. package/dist/config-cli-D_coAWd9.js +1 -1
  129. package/dist/config-cli-EKXoNzLf.js +1 -1
  130. package/dist/config-guard-U0wlYLUN.js +1 -1
  131. package/dist/config-guard-XayIkveC.js +1 -1
  132. package/dist/config-validation-B0nN9egx.js +1 -1
  133. package/dist/config-validation-CAHnpjrk.js +1 -1
  134. package/dist/configure-DNnQRKy8.js +1 -1
  135. package/dist/configure-NCNskZPe.js +1 -1
  136. package/dist/connection-auth-BcPbGyxw.js +1 -1
  137. package/dist/connection-auth-DZ-3Svr_.js +1 -1
  138. package/dist/context-window-guard-7crlatf9.js +1 -1
  139. package/dist/context-window-guard-CPChk363.js +1 -1
  140. package/dist/control-ui/apple-touch-icon.png +0 -0
  141. package/dist/control-ui/assets/de-DuUYLvt1.js +1 -0
  142. package/dist/control-ui/assets/es-DHtyqUQZ.js +1 -0
  143. package/dist/control-ui/assets/index-CYbiPp9k.js +8383 -0
  144. package/dist/control-ui/assets/index-C_GaJ8wS.css +1 -0
  145. package/dist/control-ui/assets/pt-BR-D2dJb9G8.js +1 -0
  146. package/dist/control-ui/assets/zh-CN-BgJ8_lE3.js +1 -0
  147. package/dist/control-ui/assets/zh-TW-cW5xB87I.js +1 -0
  148. package/dist/control-ui/favicon-32.png +0 -0
  149. package/dist/control-ui/favicon.ico +0 -0
  150. package/dist/control-ui/favicon.svg +22 -0
  151. package/dist/control-ui/index.html +17 -0
  152. package/dist/control-ui-assets-BIa0GGDg.js +1 -1
  153. package/dist/control-ui-assets-CTHGGgaX.js +1 -1
  154. package/dist/cron-cli-Cro66JtU.js +1 -1
  155. package/dist/cron-cli-DIeBukvk.js +1 -1
  156. package/dist/daemon-cli-Cw_fxNgE.js +1 -1
  157. package/dist/daemon-cli-DQsKS3pT.js +1 -1
  158. package/dist/daemon-cli.js +1 -1
  159. package/dist/daemon-install-C_DmJEkV.js +1 -1
  160. package/dist/daemon-install-D1DacLbM.js +1 -1
  161. package/dist/daemon-install-plan.shared-BSDdwWjB.js +1 -1
  162. package/dist/daemon-install-plan.shared-Dx3DBXCG.js +1 -1
  163. package/dist/daemon-runtime-DHiDbRuC.js +1 -1
  164. package/dist/daemon-runtime-VcpeBRJV.js +1 -1
  165. package/dist/dangerous-name-matching-BOmvAibz.js +1 -1
  166. package/dist/dangerous-name-matching-DtllRqBD.js +1 -1
  167. package/dist/dangerous-tools-CFRYQJ6V.js +1 -1
  168. package/dist/dangerous-tools-oYCu5wfC.js +1 -1
  169. package/dist/deliver-2c-EsQ_W.js +1 -1
  170. package/dist/deliver-BudDnEIb.js +1 -1
  171. package/dist/deliver-COKdxPmA.js +1 -1
  172. package/dist/deliver-DHP2vHKB.js +1 -1
  173. package/dist/delivery-queue-CKbauSFq.js +1 -1
  174. package/dist/delivery-queue-nkPJu0fY.js +1 -1
  175. package/dist/device-pairing-4eDo43Kk.js +1 -1
  176. package/dist/device-pairing-B7ZXiXp3.js +1 -1
  177. package/dist/devices-cli-BXUIb_UN.js +1 -1
  178. package/dist/devices-cli-D7PkbnHO.js +1 -1
  179. package/dist/diagnostic-Bzd5vlKH.js +1 -1
  180. package/dist/diagnostic-CFmHdXHP.js +1 -1
  181. package/dist/diagnostic-CW_Jv5UM.js +1 -1
  182. package/dist/diagnostic-Dza7-pMC.js +1 -1
  183. package/dist/diagnostics-BgbeL9KE.js +1 -1
  184. package/dist/diagnostics-Cdctg9K_.js +1 -1
  185. package/dist/directory-cli-CxeuNJcC.js +1 -1
  186. package/dist/directory-cli-DFlYCB5L.js +1 -1
  187. package/dist/dns-cli-BDbHznhi.js +1 -1
  188. package/dist/dns-cli-OuwliJ60.js +1 -1
  189. package/dist/docs-cli-Cdw9Iz9a.js +1 -1
  190. package/dist/docs-cli-ClD2UyX1.js +1 -1
  191. package/dist/doctor-completion-BSOX-LSq.js +1 -1
  192. package/dist/doctor-completion-DXqdpdlo.js +1 -1
  193. package/dist/doctor-config-flow-DHB8N7tT.js +1 -1
  194. package/dist/doctor-config-flow-MjfHBDlw.js +1 -1
  195. package/dist/enable-DVuqWT2a.js +1 -1
  196. package/dist/enable-DWaSH1HY.js +1 -1
  197. package/dist/entry-status-CCwwKO43.js +1 -1
  198. package/dist/entry-status-CoXkbJcX.js +1 -1
  199. package/dist/entry.js +1 -1
  200. package/dist/env-D7wNuBx1.js +1 -1
  201. package/dist/env-overrides-DHtB4kK3.js +1 -1
  202. package/dist/env-overrides-DXJbFrwI.js +1 -1
  203. package/dist/errors-6SQWM9dj.js +1 -1
  204. package/dist/errors-Bunti32V.js +1 -1
  205. package/dist/exec-B3eleY5O.js +1 -1
  206. package/dist/exec-DHqLtFYt.js +1 -1
  207. package/dist/exec-approvals-BXO9Cezj.js +1 -1
  208. package/dist/exec-approvals-BpBNEy6i.js +1 -1
  209. package/dist/exec-approvals-allowlist-BKFaHvA5.js +1 -1
  210. package/dist/exec-approvals-allowlist-DBh9Pm77.js +1 -1
  211. package/dist/exec-approvals-cli-0neCwpk-.js +1 -1
  212. package/dist/exec-approvals-cli-BuHSw09B.js +1 -1
  213. package/dist/exec-safe-bin-runtime-policy-Ck3GO5AB.js +1 -1
  214. package/dist/exec-safe-bin-runtime-policy-D2WexijZ.js +1 -1
  215. package/dist/fetch-BI3CnKE3.js +1 -1
  216. package/dist/fetch-BJT3BrkJ.js +1 -1
  217. package/dist/fetch-Bn0mWg6a.js +1 -1
  218. package/dist/fetch-CY5G3PDq.js +1 -1
  219. package/dist/fetch-Ce-scEU-.js +1 -1
  220. package/dist/fetch-D0rZDHKO.js +1 -1
  221. package/dist/fetch-DHo17YmK.js +1 -1
  222. package/dist/fetch-Dh-apy46.js +1 -1
  223. package/dist/fetch-Dikjvc5M.js +1 -1
  224. package/dist/fetch-DsjPfQlp.js +1 -1
  225. package/dist/fetch-_g8lZ8K8.js +1 -1
  226. package/dist/fetch-guard-BaRbr_V6.js +1 -1
  227. package/dist/fetch-guard-BmNIhXP-.js +1 -1
  228. package/dist/fetch-guard-ChVqc0HF.js +1 -1
  229. package/dist/fetch-guard-Cji70DJW.js +1 -1
  230. package/dist/fetch-hy0JKSsm.js +1 -1
  231. package/dist/fetch-timeout-CdYxWG9w.js +1 -1
  232. package/dist/fetch-timeout-Cj8_oAls.js +1 -1
  233. package/dist/fetch-timeout-DoOI_izT.js +1 -1
  234. package/dist/fetch-timeout-u8g99Ax0.js +1 -1
  235. package/dist/fetch-xT2jRpqs.js +1 -1
  236. package/dist/format-Bn1bwJKX.js +1 -1
  237. package/dist/format-Ce7I7s-k.js +1 -1
  238. package/dist/format-duration-C8AzNqKh.js +1 -1
  239. package/dist/format-duration-D5AMtmHa.js +1 -1
  240. package/dist/format-relative-B9pSIdGe.js +1 -1
  241. package/dist/format-relative-DkMjYy7z.js +1 -1
  242. package/dist/frontmatter-BkZkwkVO.js +1 -1
  243. package/dist/frontmatter-C7mzDNxd.js +1 -1
  244. package/dist/frontmatter-CzpfPBFl.js +1 -1
  245. package/dist/gateway-cli-Bj-BYgGN.js +1 -1
  246. package/dist/gateway-cli-DP65otLl.js +1 -1
  247. package/dist/gateway-install-token-BIqlEgy0.js +1 -1
  248. package/dist/gateway-install-token-CtUJl3A3.js +1 -1
  249. package/dist/gateway-rpc-DJHjmEZz.js +1 -1
  250. package/dist/gateway-rpc-XRAMeV67.js +1 -1
  251. package/dist/github-copilot-token-C79yeDKS.js +1 -1
  252. package/dist/github-copilot-token-DGYAlOmV.js +1 -1
  253. package/dist/github-copilot-token-DePP-lIf.js +1 -1
  254. package/dist/github-copilot-token-wm6mbypz.js +1 -1
  255. package/dist/gmail-setup-utils-CYOH3zzx.js +1 -1
  256. package/dist/gmail-setup-utils-S-MyEGuj.js +1 -1
  257. package/dist/group-access-BHKVOhrj.js +1 -1
  258. package/dist/group-access-D2DOYMfr.js +1 -1
  259. package/dist/health-Bedsiigi.js +1 -1
  260. package/dist/health-Cy_CvKbX.js +1 -1
  261. package/dist/health-format-B1nj3Wfn.js +1 -1
  262. package/dist/health-format-VBr6LEpt.js +1 -1
  263. package/dist/heartbeat-visibility-BQ_esv2m.js +1 -1
  264. package/dist/heartbeat-visibility-q74UdY8O.js +1 -1
  265. package/dist/help-format-B4aEI7V9.js +1 -1
  266. package/dist/help-format-BRbF_INg.js +1 -1
  267. package/dist/helpers-COz1ghcB.js +1 -1
  268. package/dist/helpers-Cp8gcO6u.js +1 -1
  269. package/dist/hooks-cli-DrnH2iDk.js +1 -1
  270. package/dist/hooks-cli-DvfZKyZl.js +1 -1
  271. package/dist/hooks-status-BHt-Xvh4.js +1 -1
  272. package/dist/hooks-status-CRJ4J0ZW.js +1 -1
  273. package/dist/image-BJC11A7e.js +1 -1
  274. package/dist/image-BKPxWO_2.js +1 -1
  275. package/dist/image-Ba-mOMMV.js +1 -1
  276. package/dist/image-D-R3N1it.js +1 -1
  277. package/dist/index.js +1 -1
  278. package/dist/inspect-BKV-I1UE.js +1 -1
  279. package/dist/inspect-z59cgmYc.js +1 -1
  280. package/dist/install-safe-path-C6kc_8NW.js +1 -1
  281. package/dist/install-safe-path-iesxijn2.js +1 -1
  282. package/dist/installs-BNeI_oML.js +1 -1
  283. package/dist/installs-C1xQLuby.js +1 -1
  284. package/dist/ipv4-BXZDlz5C.js +1 -1
  285. package/dist/ipv4-BnPLbv6y.js +1 -1
  286. package/dist/ir-BYCrFFZ9.js +1 -1
  287. package/dist/ir-CH7YvSi9.js +1 -1
  288. package/dist/ir-CSysIkNU.js +1 -1
  289. package/dist/ir-CZdZsdnI.js +1 -1
  290. package/dist/is-main-DG5ueqhF.js +1 -1
  291. package/dist/issue-format-CpTuk_rQ.js +1 -1
  292. package/dist/issue-format-kj7FXHhi.js +1 -1
  293. package/dist/kill-tree-DBJW8_Q-.js +1 -1
  294. package/dist/lifecycle-core-B72WHNHV.js +1 -1
  295. package/dist/lifecycle-core-dhkH_Nux.js +1 -1
  296. package/dist/line/accounts.js +1 -1
  297. package/dist/line/send.js +1 -1
  298. package/dist/line/template-messages.js +1 -1
  299. package/dist/links-CBnmRP9D.js +1 -1
  300. package/dist/links-CySwdMcF.js +1 -1
  301. package/dist/llm-slug-generator.js +1 -1
  302. package/dist/load-options-BsOW74dp.js +1 -1
  303. package/dist/load-options-C7dLuybp.js +1 -1
  304. package/dist/load-options-DV4j6Aqb.js +1 -1
  305. package/dist/load-options-Dwt0CeEg.js +1 -1
  306. package/dist/local-roots-Dxioh0C2.js +1 -1
  307. package/dist/logger-5W0OocJW.js +1 -1
  308. package/dist/logger-Bl8URnrW.js +1 -1
  309. package/dist/logger-DwWqfo66.js +1 -1
  310. package/dist/logger-kQAOe3qp.js +1 -1
  311. package/dist/logging-Dz4Qg6th.js +1 -1
  312. package/dist/logging-KiJmOmw4.js +1 -1
  313. package/dist/login-BMZxDYaU.js +1 -1
  314. package/dist/login-BdzP8F8J.js +1 -1
  315. package/dist/login-BzU0cMck.js +1 -1
  316. package/dist/login-Cb1A6qwM.js +1 -1
  317. package/dist/login-qr-BgsmAwKm.js +1 -1
  318. package/dist/login-qr-Bux8gWTO.js +1 -1
  319. package/dist/login-qr-COr_25Hx.js +1 -1
  320. package/dist/login-qr-CxBPOOAK.js +1 -1
  321. package/dist/login-qr-DnQm7bM4.js +1 -1
  322. package/dist/logs-cli-BM2XCmrH.js +1 -1
  323. package/dist/logs-cli-HKhyxaUs.js +1 -1
  324. package/dist/manager-B6zZuJEB.js +1 -1
  325. package/dist/manager-BwrZfep3.js +1 -1
  326. package/dist/manager-C5SBozw4.js +1 -1
  327. package/dist/manager-CjihRbGa.js +1 -1
  328. package/dist/memory-cli-CnruTL1h.js +1 -1
  329. package/dist/memory-cli-DHvscp7X.js +1 -1
  330. package/dist/model-catalog-BLdaFmIo.js +1 -1
  331. package/dist/model-catalog-vNCcsy4h.js +1 -1
  332. package/dist/model-param-b-B0r2cPDw.js +1 -1
  333. package/dist/model-param-b-BqIr5rY5.js +1 -1
  334. package/dist/model-picker-BaeW3tiV.js +1 -1
  335. package/dist/model-picker-DN0czUYS.js +1 -1
  336. package/dist/model-selection-C2QwHmXT.js +1 -1
  337. package/dist/model-selection-I1ctjFOB.js +1 -1
  338. package/dist/model-selection-qkByRv5A.js +1 -1
  339. package/dist/models-UTdl0vXO.js +1 -1
  340. package/dist/models-cli-QRONP7EL.js +1 -1
  341. package/dist/models-cli-vRoB_gfX.js +1 -1
  342. package/dist/models-config-CWIlroKT.js +1 -1
  343. package/dist/models-config-DN2Q51fC.js +1 -1
  344. package/dist/mutable-allowlist-detectors-C4rNVag8.js +1 -1
  345. package/dist/mutable-allowlist-detectors-CL0qe54J.js +1 -1
  346. package/dist/node-cli-2-E4-83G.js +1 -1
  347. package/dist/node-cli-DUI7Zctj.js +1 -1
  348. package/dist/node-command-policy-Bbmnc16l.js +1 -1
  349. package/dist/node-command-policy-DgkwfoCs.js +1 -1
  350. package/dist/node-commands-8GBOiktk.js +1 -1
  351. package/dist/node-commands-DdkziOTx.js +1 -1
  352. package/dist/node-resolve-B3BJbmQX.js +1 -1
  353. package/dist/node-resolve-DLZf3-1V.js +1 -1
  354. package/dist/node-service-BRfrNp8l.js +1 -1
  355. package/dist/node-service-C0bl7jcZ.js +1 -1
  356. package/dist/node-shell-dXp4vk-i.js +1 -1
  357. package/dist/nodes-cli-DU13-dCL.js +1 -1
  358. package/dist/nodes-cli-rPeIRj_f.js +1 -1
  359. package/dist/nodes-screen-C7-5RrbN.js +1 -1
  360. package/dist/note-D4GAwgha.js +1 -1
  361. package/dist/note-Dp-d_utk.js +1 -1
  362. package/dist/npm-pack-install-B23L-AtF.js +1 -1
  363. package/dist/npm-pack-install-C0te3Oap.js +1 -1
  364. package/dist/npm-resolution-BCXCw93f.js +1 -1
  365. package/dist/npm-resolution-Cmm82lui.js +1 -1
  366. package/dist/oauth-env-DAamJ1oz.js +1 -1
  367. package/dist/oauth-env-DSLBTWb1.js +1 -1
  368. package/dist/oauth-tls-preflight-BSBRDIfC.js +1 -1
  369. package/dist/oauth-tls-preflight-ByNjbUR5.js +1 -1
  370. package/dist/ollama-setup-CKt3tF-S.js +1 -1
  371. package/dist/ollama-setup-I8lghdX1.js +1 -1
  372. package/dist/onboard-B3WSjKCu.js +1 -1
  373. package/dist/onboard-C65vdb94.js +1 -1
  374. package/dist/onboard-channels-9CmG3Jgn.js +1 -1
  375. package/dist/onboard-channels-CV1AK9jY.js +1 -1
  376. package/dist/onboard-config-B7U20YRw.js +1 -1
  377. package/dist/onboard-config-DS9dUv8M.js +1 -1
  378. package/dist/onboard-custom-CwHYUB0T.js +1 -1
  379. package/dist/onboard-custom-uwufXtQf.js +1 -1
  380. package/dist/onboard-helpers-CGJLUoxR.js +1 -1
  381. package/dist/onboard-helpers-DbpWQoiB.js +1 -1
  382. package/dist/onboard-hooks-CERzXObm.js +1 -1
  383. package/dist/onboard-hooks-gQ3sxBNi.js +1 -1
  384. package/dist/onboard-provider-auth-flags-CqbipO7D.js +1 -1
  385. package/dist/onboard-provider-auth-flags-Dvwzdz37.js +1 -1
  386. package/dist/onboard-remote-BeDZ_gbH.js +1 -1
  387. package/dist/onboard-remote-KTUx-3G1.js +1 -1
  388. package/dist/onboard-search-f2tJD4hg.js +1 -1
  389. package/dist/onboard-search-fslKKhyg.js +1 -1
  390. package/dist/onboard-skills-BoS_oVdm.js +1 -1
  391. package/dist/onboard-skills-C4omGWoD.js +1 -1
  392. package/dist/onboarding-B8icigkk.js +1 -1
  393. package/dist/onboarding-BJRqNsZ8.js +1 -1
  394. package/dist/onboarding.finalize-D0qISqn-.js +1 -1
  395. package/dist/onboarding.finalize-Ds9NwPBL.js +1 -1
  396. package/dist/onboarding.gateway-config-F8n_QFUR.js +1 -1
  397. package/dist/onboarding.gateway-config-eno73eHw.js +1 -1
  398. package/dist/onboarding.secret-input-B6fzeucQ.js +1 -1
  399. package/dist/onboarding.secret-input-CBuD3c32.js +1 -1
  400. package/dist/openai-codex-model-default-Df2T3foI.js +1 -1
  401. package/dist/openai-codex-model-default-DtIeKJm0.js +1 -1
  402. package/dist/openai-model-default-DIE55yBt.js +1 -1
  403. package/dist/openai-model-default-sqvWk4kB.js +1 -1
  404. package/dist/openclaw-exec-env-BWbOu_YC.js +1 -1
  405. package/dist/openclaw-root-CnsBf6ZU.js +1 -1
  406. package/dist/openclaw-root-D_0Q6--h.js +1 -1
  407. package/dist/outbound-B88MLJN3.js +1 -1
  408. package/dist/outbound-C-4qToKv.js +1 -1
  409. package/dist/outbound-CSk4oF0g.js +1 -1
  410. package/dist/outbound-DKMI_4xm.js +1 -1
  411. package/dist/outbound-attachment-BOax42-M.js +1 -1
  412. package/dist/outbound-attachment-DBNxdLYh.js +1 -1
  413. package/dist/outbound-attachment-DVjJQ3V6.js +1 -1
  414. package/dist/outbound-attachment-aZWcoZ-N.js +1 -1
  415. package/dist/pairing-cli-Cby6Ww8F.js +1 -1
  416. package/dist/pairing-cli-DiJb_a0V.js +1 -1
  417. package/dist/pairing-labels-BP1h0iHy.js +1 -1
  418. package/dist/pairing-labels-ryOnuOFA.js +1 -1
  419. package/dist/pairing-store-Bv4KSELv.js +1 -1
  420. package/dist/pairing-store-CjTPxq0X.js +1 -1
  421. package/dist/pairing-token-CKX1ds78.js +1 -1
  422. package/dist/pairing-token-CX0SUJsB.js +1 -1
  423. package/dist/parse-duration-XTjMKl8s.js +1 -1
  424. package/dist/parse-finite-number-DqzUM-_s.js +1 -1
  425. package/dist/parse-finite-number-dBmDLLKL.js +1 -1
  426. package/dist/parse-log-line-CsYLg7Qu.js +1 -1
  427. package/dist/parse-log-line-NV-cipB_.js +1 -1
  428. package/dist/parse-port-Bv1Y9Wk5.js +1 -1
  429. package/dist/parse-port-JVwkxcZ8.js +1 -1
  430. package/dist/parse-timeout-DWSGfCkQ.js +1 -1
  431. package/dist/parse-timeout-Dx4QnVzo.js +1 -1
  432. package/dist/path-alias-guards-kY_ZbWs-.js +1 -1
  433. package/dist/path-alias-guards-mvyLCPlN.js +1 -1
  434. package/dist/path-env-BPd1Yd-i.js +1 -1
  435. package/dist/path-env-emdAQejM.js +1 -1
  436. package/dist/path-safety-BukYK8Kd.js +1 -1
  437. package/dist/path-safety-DaaMJFdt.js +1 -1
  438. package/dist/paths-B4IRk3wi.js +1 -1
  439. package/dist/paths-BfjJY2VL.js +1 -1
  440. package/dist/paths-BjD3T_xq.js +1 -1
  441. package/dist/paths-BpQOWYiT.js +1 -1
  442. package/dist/paths-CChBdtE8.js +1 -1
  443. package/dist/paths-CrCoPIVK.js +1 -1
  444. package/dist/paths-piJASC5k.js +1 -1
  445. package/dist/paths-yLEk_25I.js +1 -1
  446. package/dist/pi-embedded-ZEWNj7P5.js +1 -1
  447. package/dist/pi-embedded-bqE4EmdD.js +1 -1
  448. package/dist/pi-model-discovery-6myCPEJE.js +1 -1
  449. package/dist/pi-model-discovery-AiV9h8k6.js +1 -1
  450. package/dist/pi-model-discovery-BzqdozHB.js +1 -1
  451. package/dist/pi-model-discovery-C8YBu6D4.js +1 -1
  452. package/dist/pi-tools.before-tool-call.runtime-CPAJMO7J.js +1 -1
  453. package/dist/pi-tools.before-tool-call.runtime-CYmLHod0.js +1 -1
  454. package/dist/pi-tools.before-tool-call.runtime-CfVqI0Ng.js +1 -1
  455. package/dist/pi-tools.before-tool-call.runtime-D9FlPJ_v.js +1 -1
  456. package/dist/pi-tools.policy-CeSKHaKa.js +1 -1
  457. package/dist/plugin-auto-enable-Cp7L8ko8.js +1 -1
  458. package/dist/plugin-auto-enable-DCOxqfDQ.js +1 -1
  459. package/dist/plugin-install-plan-BobX0y9S.js +1 -1
  460. package/dist/plugin-install-plan-NvDGp0d8.js +1 -1
  461. package/dist/plugin-registry-Fg000e4I.js +1 -1
  462. package/dist/plugin-registry-fm5tDUbE.js +1 -1
  463. package/dist/plugin-sdk/account-id.cjs +1 -1
  464. package/dist/plugin-sdk/account-id.js +1 -1
  465. package/dist/plugin-sdk/acpx.cjs +1 -1
  466. package/dist/plugin-sdk/acpx.js +1 -1
  467. package/dist/plugin-sdk/active-listener-BFeaYGID.js +1 -1
  468. package/dist/plugin-sdk/active-listener-BszCM2Au.cjs +1 -1
  469. package/dist/plugin-sdk/active-listener-CIcleJgU.cjs +1 -1
  470. package/dist/plugin-sdk/active-listener-Cqgd7xVh.cjs +1 -1
  471. package/dist/plugin-sdk/active-listener-D578zEtk.cjs +1 -1
  472. package/dist/plugin-sdk/active-listener-D6gGPLq-.js +1 -1
  473. package/dist/plugin-sdk/active-listener-DKSZRn4x.cjs +1 -1
  474. package/dist/plugin-sdk/active-listener-DNO10F1L.js +1 -1
  475. package/dist/plugin-sdk/active-listener-DQq07Aar.js +1 -1
  476. package/dist/plugin-sdk/active-listener-Dle_kYqb.js +1 -1
  477. package/dist/plugin-sdk/active-listener-DmJcHkMC.js +1 -1
  478. package/dist/plugin-sdk/active-listener-UmFpcYFY.cjs +1 -1
  479. package/dist/plugin-sdk/api-key-rotation-39TRXDEA.cjs +1 -1
  480. package/dist/plugin-sdk/api-key-rotation-7qlqJ_ou.js +1 -1
  481. package/dist/plugin-sdk/api-key-rotation-BY7fLi9z.js +1 -1
  482. package/dist/plugin-sdk/api-key-rotation-CF9_CKS-.cjs +1 -1
  483. package/dist/plugin-sdk/api-key-rotation-CWylhFOt.cjs +1 -1
  484. package/dist/plugin-sdk/api-key-rotation-ClZmonv2.js +1 -1
  485. package/dist/plugin-sdk/api-key-rotation-CmesQWXP.cjs +1 -1
  486. package/dist/plugin-sdk/api-key-rotation-Cs6II2__.js +1 -1
  487. package/dist/plugin-sdk/api-key-rotation-CxaiMcI1.js +1 -1
  488. package/dist/plugin-sdk/api-key-rotation-D5cfmg7E.cjs +1 -1
  489. package/dist/plugin-sdk/api-key-rotation-DkP7KnSm.cjs +1 -1
  490. package/dist/plugin-sdk/api-key-rotation-mDqgBFMG.js +1 -1
  491. package/dist/plugin-sdk/audio-preflight-B-HrF5Oc.js +1 -1
  492. package/dist/plugin-sdk/audio-preflight-B2MGeSoT.js +1 -1
  493. package/dist/plugin-sdk/audio-preflight-BVjiz_Qk.cjs +1 -1
  494. package/dist/plugin-sdk/audio-preflight-Behqe7F3.cjs +1 -1
  495. package/dist/plugin-sdk/audio-preflight-C0ncOCbK.cjs +1 -1
  496. package/dist/plugin-sdk/audio-preflight-C1o1n-KK.js +1 -1
  497. package/dist/plugin-sdk/audio-preflight-CzLYTZ5P.cjs +1 -1
  498. package/dist/plugin-sdk/audio-preflight-DDiBwIB9.js +1 -1
  499. package/dist/plugin-sdk/audio-preflight-DQyh-XSn.cjs +1 -1
  500. package/dist/plugin-sdk/audio-preflight-WH9WDR81.cjs +1 -1
  501. package/dist/plugin-sdk/audio-preflight-ZPLO3G1S.js +1 -1
  502. package/dist/plugin-sdk/audio-preflight-s3BAID12.js +1 -1
  503. package/dist/plugin-sdk/audio-transcription-runner-2-ZQ5Md-.cjs +1 -1
  504. package/dist/plugin-sdk/audio-transcription-runner-BO7T_SzP.cjs +1 -1
  505. package/dist/plugin-sdk/audio-transcription-runner-CRYJlAeP.js +1 -1
  506. package/dist/plugin-sdk/audio-transcription-runner-CmW24oVR.js +1 -1
  507. package/dist/plugin-sdk/audio-transcription-runner-CmYuWS0_.cjs +1 -1
  508. package/dist/plugin-sdk/audio-transcription-runner-CslXJs5c.js +1 -1
  509. package/dist/plugin-sdk/audio-transcription-runner-DE1tKTQV.cjs +1 -1
  510. package/dist/plugin-sdk/audio-transcription-runner-DZR84B28.js +1 -1
  511. package/dist/plugin-sdk/audio-transcription-runner-DoR-NOcV.cjs +1 -1
  512. package/dist/plugin-sdk/audio-transcription-runner-IE4olXkd.cjs +1 -1
  513. package/dist/plugin-sdk/audio-transcription-runner-YiDQM_Rb.js +1 -1
  514. package/dist/plugin-sdk/audio-transcription-runner-kAVM4YFR.js +1 -1
  515. package/dist/plugin-sdk/audit-membership-runtime-7LqcvqFo.js +1 -1
  516. package/dist/plugin-sdk/audit-membership-runtime-BQFUzFc0.cjs +1 -1
  517. package/dist/plugin-sdk/audit-membership-runtime-BYtdDX9G.cjs +1 -1
  518. package/dist/plugin-sdk/audit-membership-runtime-BzEtBUX6.cjs +1 -1
  519. package/dist/plugin-sdk/audit-membership-runtime-CBUmGrl4.js +1 -1
  520. package/dist/plugin-sdk/audit-membership-runtime-ChlVgt2y.js +1 -1
  521. package/dist/plugin-sdk/audit-membership-runtime-DLRX7LR0.js +1 -1
  522. package/dist/plugin-sdk/audit-membership-runtime-DbJW5X3L.cjs +1 -1
  523. package/dist/plugin-sdk/audit-membership-runtime-Du9LAxDa.cjs +1 -1
  524. package/dist/plugin-sdk/audit-membership-runtime-DylNnj1m.js +1 -1
  525. package/dist/plugin-sdk/audit-membership-runtime-voi5sPwF.js +1 -1
  526. package/dist/plugin-sdk/audit-membership-runtime-yWYvSpgZ.cjs +1 -1
  527. package/dist/plugin-sdk/bluebubbles.cjs +1 -1
  528. package/dist/plugin-sdk/bluebubbles.js +1 -1
  529. package/dist/plugin-sdk/channel-activity-Bed876M5.js +1 -1
  530. package/dist/plugin-sdk/channel-activity-Bu8tAmGa.cjs +1 -1
  531. package/dist/plugin-sdk/channel-activity-C01Im_o1.js +1 -1
  532. package/dist/plugin-sdk/channel-activity-CIycjzUC.js +1 -1
  533. package/dist/plugin-sdk/channel-activity-Cdkn3O_i.js +1 -1
  534. package/dist/plugin-sdk/channel-activity-Cia2G3v5.js +1 -1
  535. package/dist/plugin-sdk/channel-activity-D6d2wU8H.cjs +1 -1
  536. package/dist/plugin-sdk/channel-activity-DNv7JLBx.cjs +1 -1
  537. package/dist/plugin-sdk/channel-activity-Df3DfYyZ.cjs +1 -1
  538. package/dist/plugin-sdk/channel-activity-Rut-HCfT.cjs +1 -1
  539. package/dist/plugin-sdk/channel-activity-mffNSQrX.cjs +1 -1
  540. package/dist/plugin-sdk/channel-activity-qjwFifkE.js +1 -1
  541. package/dist/plugin-sdk/channel-web-Ces_xx2T.js +1 -1
  542. package/dist/plugin-sdk/channel-web-CsmEnYD8.cjs +1 -1
  543. package/dist/plugin-sdk/channel-web-DtzNv49H.cjs +1 -1
  544. package/dist/plugin-sdk/channel-web-VEZVrMYU.js +1 -1
  545. package/dist/plugin-sdk/command-poll-backoff-4910Mpwp.js +1 -1
  546. package/dist/plugin-sdk/command-poll-backoff-BLJZzV5W.cjs +1 -1
  547. package/dist/plugin-sdk/command-poll-backoff-CUNcN0dv.cjs +1 -1
  548. package/dist/plugin-sdk/command-poll-backoff-Cww_r-24.js +1 -1
  549. package/dist/plugin-sdk/command-poll-backoff-D0lJhquZ.js +1 -1
  550. package/dist/plugin-sdk/command-poll-backoff-Glwt3wHa.cjs +1 -1
  551. package/dist/plugin-sdk/commands-registry-33H8WYTk.cjs +1 -1
  552. package/dist/plugin-sdk/commands-registry-BGdm1KdC.js +1 -1
  553. package/dist/plugin-sdk/commands-registry-BgV9i-bj.cjs +1 -1
  554. package/dist/plugin-sdk/commands-registry-BifdCfty.cjs +1 -1
  555. package/dist/plugin-sdk/commands-registry-CJLBIIIp.js +1 -1
  556. package/dist/plugin-sdk/commands-registry-CWK9ARbc.js +1 -1
  557. package/dist/plugin-sdk/commands-registry-CfVD1h8L.cjs +1 -1
  558. package/dist/plugin-sdk/commands-registry-CpG4pxrA.js +1 -1
  559. package/dist/plugin-sdk/commands-registry-D-AnIQWz.cjs +1 -1
  560. package/dist/plugin-sdk/commands-registry-DBI4cPqT.cjs +1 -1
  561. package/dist/plugin-sdk/commands-registry-DOBe9cWq.js +1 -1
  562. package/dist/plugin-sdk/commands-registry-DqemUyiv.js +1 -1
  563. package/dist/plugin-sdk/common-CEe87dmX.js +1 -1
  564. package/dist/plugin-sdk/common-CjMKHm2Z.cjs +1 -1
  565. package/dist/plugin-sdk/compat.cjs +1 -1
  566. package/dist/plugin-sdk/compat.js +1 -1
  567. package/dist/plugin-sdk/config-DT_csBcZ.cjs +1 -1
  568. package/dist/plugin-sdk/config-LR8GH3Ws.js +1 -1
  569. package/dist/plugin-sdk/copilot-proxy.cjs +1 -1
  570. package/dist/plugin-sdk/copilot-proxy.js +1 -1
  571. package/dist/plugin-sdk/core.cjs +1 -1
  572. package/dist/plugin-sdk/core.js +1 -1
  573. package/dist/plugin-sdk/deliver-AORlkcbD.cjs +1 -1
  574. package/dist/plugin-sdk/deliver-BiBFW5fm.cjs +1 -1
  575. package/dist/plugin-sdk/deliver-BpqEPwLO.cjs +1 -1
  576. package/dist/plugin-sdk/deliver-BvC6aUKM.js +1 -1
  577. package/dist/plugin-sdk/deliver-CT0AIuK1.cjs +1 -1
  578. package/dist/plugin-sdk/deliver-CmddcjtG.cjs +1 -1
  579. package/dist/plugin-sdk/deliver-DFz5N1Eh.js +1 -1
  580. package/dist/plugin-sdk/deliver-DcJWpoqf.cjs +1 -1
  581. package/dist/plugin-sdk/deliver-ILim6ANU.js +1 -1
  582. package/dist/plugin-sdk/deliver-QgxW9IxV.js +1 -1
  583. package/dist/plugin-sdk/deliver-cT-Q8v0h.js +1 -1
  584. package/dist/plugin-sdk/deliver-cu_NQTmb.js +1 -1
  585. package/dist/plugin-sdk/device-pair.cjs +1 -1
  586. package/dist/plugin-sdk/device-pair.js +1 -1
  587. package/dist/plugin-sdk/diagnostic-BCyE1aYH.cjs +1 -1
  588. package/dist/plugin-sdk/diagnostic-BFea3l_a.js +1 -1
  589. package/dist/plugin-sdk/diagnostic-BvR96WdC.js +1 -1
  590. package/dist/plugin-sdk/diagnostic-C0xDsk89.cjs +1 -1
  591. package/dist/plugin-sdk/diagnostic-CEPhLgsW.cjs +1 -1
  592. package/dist/plugin-sdk/diagnostic-CbLwUqTE.cjs +1 -1
  593. package/dist/plugin-sdk/diagnostic-CbfxoqI_.cjs +1 -1
  594. package/dist/plugin-sdk/diagnostic-DDwUPG1m.js +1 -1
  595. package/dist/plugin-sdk/diagnostic-DS_mKKOu.js +1 -1
  596. package/dist/plugin-sdk/diagnostic-DYpehqHU.cjs +1 -1
  597. package/dist/plugin-sdk/diagnostic-DkncnZ3G.js +1 -1
  598. package/dist/plugin-sdk/diagnostic-Dz8HPEDe.js +1 -1
  599. package/dist/plugin-sdk/diagnostics-otel.cjs +1 -1
  600. package/dist/plugin-sdk/diagnostics-otel.js +1 -1
  601. package/dist/plugin-sdk/diffs.cjs +1 -1
  602. package/dist/plugin-sdk/diffs.js +1 -1
  603. package/dist/plugin-sdk/discord.cjs +1 -1
  604. package/dist/plugin-sdk/discord.js +1 -1
  605. package/dist/plugin-sdk/dispatch-6m3206FH.js +1 -1
  606. package/dist/plugin-sdk/dispatch-BYZNaz0n.cjs +1 -1
  607. package/dist/plugin-sdk/dispatch-BahZCe-D.js +1 -1
  608. package/dist/plugin-sdk/dispatch-Bi3yeWxb.cjs +1 -1
  609. package/dist/plugin-sdk/dispatch-BjB_TqWy.cjs +1 -1
  610. package/dist/plugin-sdk/dispatch-CNR186B3.js +1 -1
  611. package/dist/plugin-sdk/dispatch-CStT30wi.cjs +1 -1
  612. package/dist/plugin-sdk/dispatch-CdZAW9dg.cjs +1 -1
  613. package/dist/plugin-sdk/dispatch-Ewg2Jgw9.js +1 -1
  614. package/dist/plugin-sdk/dispatch-HRTsdeCV.js +1 -1
  615. package/dist/plugin-sdk/feishu.cjs +1 -1
  616. package/dist/plugin-sdk/feishu.js +1 -1
  617. package/dist/plugin-sdk/fetch-7Iq9POda.js +1 -1
  618. package/dist/plugin-sdk/fetch-B1GR6-u4.js +1 -1
  619. package/dist/plugin-sdk/fetch-B27H-XCf.js +1 -1
  620. package/dist/plugin-sdk/fetch-BMYDLRWo.js +1 -1
  621. package/dist/plugin-sdk/fetch-BN9y3kTg.cjs +1 -1
  622. package/dist/plugin-sdk/fetch-BVEVk5YF.js +1 -1
  623. package/dist/plugin-sdk/fetch-BY6lVRlY.cjs +1 -1
  624. package/dist/plugin-sdk/fetch-Bi8krAaT.cjs +1 -1
  625. package/dist/plugin-sdk/fetch-BjXhwqrE.cjs +1 -1
  626. package/dist/plugin-sdk/fetch-BtZY623f.js +1 -1
  627. package/dist/plugin-sdk/fetch-C-HRWp5R.js +1 -1
  628. package/dist/plugin-sdk/fetch-C3LEMysf.js +1 -1
  629. package/dist/plugin-sdk/fetch-CCLWsYaQ.js +1 -1
  630. package/dist/plugin-sdk/fetch-CZewCAvu.cjs +1 -1
  631. package/dist/plugin-sdk/fetch-ClKErpni.cjs +1 -1
  632. package/dist/plugin-sdk/fetch-DBRI0sKI.js +1 -1
  633. package/dist/plugin-sdk/fetch-DQxuOB8o.cjs +1 -1
  634. package/dist/plugin-sdk/fetch-DUMEaqum.cjs +1 -1
  635. package/dist/plugin-sdk/fetch-DpwR_cJU.cjs +1 -1
  636. package/dist/plugin-sdk/fetch-J0IzopiJ.js +1 -1
  637. package/dist/plugin-sdk/fetch-guard-D8TdhTHU.js +1 -1
  638. package/dist/plugin-sdk/fetch-guard-DC_pFJEy.js +1 -1
  639. package/dist/plugin-sdk/fetch-guard-DDkd30BG.js +1 -1
  640. package/dist/plugin-sdk/fetch-guard-DELiFG5g.js +1 -1
  641. package/dist/plugin-sdk/fetch-guard-DIYjBRpq.cjs +1 -1
  642. package/dist/plugin-sdk/fetch-guard-DPVfELS7.js +1 -1
  643. package/dist/plugin-sdk/fetch-guard-Dpz6CnJY.cjs +1 -1
  644. package/dist/plugin-sdk/fetch-guard-DqNKwgHP.cjs +1 -1
  645. package/dist/plugin-sdk/fetch-guard-DqTxZ3G8.cjs +1 -1
  646. package/dist/plugin-sdk/fetch-guard-EoAitPe9.cjs +1 -1
  647. package/dist/plugin-sdk/fetch-guard-qfU6iTvp.js +1 -1
  648. package/dist/plugin-sdk/fetch-guard-u2Dt6P9i.cjs +1 -1
  649. package/dist/plugin-sdk/fetch-lw-aF17e.cjs +1 -1
  650. package/dist/plugin-sdk/fetch-timeout-6oZsqWxA.js +1 -1
  651. package/dist/plugin-sdk/fetch-timeout-BygUD0rd.cjs +1 -1
  652. package/dist/plugin-sdk/fetch-timeout-CLw1U7VS.js +1 -1
  653. package/dist/plugin-sdk/fetch-timeout-CX1w-9p4.cjs +1 -1
  654. package/dist/plugin-sdk/fetch-timeout-Coc9xyC3.cjs +1 -1
  655. package/dist/plugin-sdk/fetch-timeout-Cz6GuU_c.js +1 -1
  656. package/dist/plugin-sdk/fetch-timeout-DC8T2JCr.js +1 -1
  657. package/dist/plugin-sdk/fetch-timeout-DFDmks9T.cjs +1 -1
  658. package/dist/plugin-sdk/fetch-timeout-DkYpp08Q.js +1 -1
  659. package/dist/plugin-sdk/github-copilot-token-BHdMLLqf.cjs +1 -1
  660. package/dist/plugin-sdk/github-copilot-token-Bt4PduRB.js +1 -1
  661. package/dist/plugin-sdk/github-copilot-token-C1O2cBqk.cjs +1 -1
  662. package/dist/plugin-sdk/github-copilot-token-C1hiDugd.js +1 -1
  663. package/dist/plugin-sdk/github-copilot-token-C8j8_NjX.js +1 -1
  664. package/dist/plugin-sdk/github-copilot-token-CCrgp2py.cjs +1 -1
  665. package/dist/plugin-sdk/github-copilot-token-DoHgkI2r.cjs +1 -1
  666. package/dist/plugin-sdk/github-copilot-token-N8vnLZPw.js +1 -1
  667. package/dist/plugin-sdk/github-copilot-token-TMkfxxD2.cjs +1 -1
  668. package/dist/plugin-sdk/github-copilot-token-vKAKX6iE.js +1 -1
  669. package/dist/plugin-sdk/github-copilot-token-ylX_gawo.js +1 -1
  670. package/dist/plugin-sdk/github-copilot-token-zskwAEpd.cjs +1 -1
  671. package/dist/plugin-sdk/google-gemini-cli-auth.cjs +1 -1
  672. package/dist/plugin-sdk/google-gemini-cli-auth.js +1 -1
  673. package/dist/plugin-sdk/googlechat.cjs +1 -1
  674. package/dist/plugin-sdk/googlechat.js +1 -1
  675. package/dist/plugin-sdk/image-0OHO98b9.cjs +1 -1
  676. package/dist/plugin-sdk/image-B9SLKAOs.cjs +1 -1
  677. package/dist/plugin-sdk/image-BVnZq5Y4.js +1 -1
  678. package/dist/plugin-sdk/image-CKLAyhco.js +1 -1
  679. package/dist/plugin-sdk/image-DUHEJeBF.js +1 -1
  680. package/dist/plugin-sdk/image-DngxW2Nh.cjs +1 -1
  681. package/dist/plugin-sdk/image-DrPh2689.cjs +1 -1
  682. package/dist/plugin-sdk/image-ISWO0Dwt.js +1 -1
  683. package/dist/plugin-sdk/image-KfZYW6Lh.cjs +1 -1
  684. package/dist/plugin-sdk/image-YVlw68CK.js +1 -1
  685. package/dist/plugin-sdk/image-gehqJnV6.js +1 -1
  686. package/dist/plugin-sdk/image-jUYo-0eT.cjs +1 -1
  687. package/dist/plugin-sdk/imessage.cjs +1 -1
  688. package/dist/plugin-sdk/imessage.js +1 -1
  689. package/dist/plugin-sdk/index.cjs +1 -1
  690. package/dist/plugin-sdk/index.js +1 -1
  691. package/dist/plugin-sdk/ir-78toXVqC.cjs +1 -1
  692. package/dist/plugin-sdk/ir-A_TqKaXP.cjs +1 -1
  693. package/dist/plugin-sdk/ir-B0_rUT7m.js +1 -1
  694. package/dist/plugin-sdk/ir-B7agH4cQ.cjs +1 -1
  695. package/dist/plugin-sdk/ir-B9ap_YNW.cjs +1 -1
  696. package/dist/plugin-sdk/ir-BxKSHYao.cjs +1 -1
  697. package/dist/plugin-sdk/ir-BzZArF6l.js +1 -1
  698. package/dist/plugin-sdk/ir-CpkEWZD6.js +1 -1
  699. package/dist/plugin-sdk/ir-D4Dz-giw.cjs +1 -1
  700. package/dist/plugin-sdk/ir-DJ08DSkk.js +1 -1
  701. package/dist/plugin-sdk/ir-L2vhtuGx.js +1 -1
  702. package/dist/plugin-sdk/ir-ntSck5Kp.js +1 -1
  703. package/dist/plugin-sdk/irc.cjs +1 -1
  704. package/dist/plugin-sdk/irc.js +1 -1
  705. package/dist/plugin-sdk/keyed-async-queue.cjs +1 -1
  706. package/dist/plugin-sdk/keyed-async-queue.js +1 -1
  707. package/dist/plugin-sdk/line.cjs +1 -1
  708. package/dist/plugin-sdk/line.js +1 -1
  709. package/dist/plugin-sdk/llm-task.cjs +1 -1
  710. package/dist/plugin-sdk/llm-task.js +1 -1
  711. package/dist/plugin-sdk/load-options-B9Ss5YOO.js +1 -1
  712. package/dist/plugin-sdk/load-options-BOfn6Zgo.cjs +1 -1
  713. package/dist/plugin-sdk/load-options-BXvm8HVv.js +1 -1
  714. package/dist/plugin-sdk/load-options-Bb7u8yZz.cjs +1 -1
  715. package/dist/plugin-sdk/load-options-BcSg1ODN.js +1 -1
  716. package/dist/plugin-sdk/load-options-NqnXJ-Nh.cjs +1 -1
  717. package/dist/plugin-sdk/lobster.cjs +1 -1
  718. package/dist/plugin-sdk/lobster.js +1 -1
  719. package/dist/plugin-sdk/local-roots-B0zm186S.js +1 -1
  720. package/dist/plugin-sdk/local-roots-B4Uy4kG3.cjs +1 -1
  721. package/dist/plugin-sdk/local-roots-CM1R1Ncr.cjs +1 -1
  722. package/dist/plugin-sdk/local-roots-CW78ZeZV.js +1 -1
  723. package/dist/plugin-sdk/local-roots-CnsaE7a_.js +1 -1
  724. package/dist/plugin-sdk/local-roots-D1k-fAlE.cjs +1 -1
  725. package/dist/plugin-sdk/local-roots-DQ_vfJPK.js +1 -1
  726. package/dist/plugin-sdk/local-roots-DYlB1au6.cjs +1 -1
  727. package/dist/plugin-sdk/local-roots-H4-t0qG_.js +1 -1
  728. package/dist/plugin-sdk/local-roots-SCyeUfM3.cjs +1 -1
  729. package/dist/plugin-sdk/local-roots-l4PqCmiU.js +1 -1
  730. package/dist/plugin-sdk/local-roots-xHoEq1Fq.cjs +1 -1
  731. package/dist/plugin-sdk/logger-6O6OsYBL.cjs +1 -1
  732. package/dist/plugin-sdk/logger-BlddiV_d.cjs +1 -1
  733. package/dist/plugin-sdk/logger-Bm93ZKOk.cjs +1 -1
  734. package/dist/plugin-sdk/logger-BtrWb0dj.js +1 -1
  735. package/dist/plugin-sdk/logger-C210xuWx.js +1 -1
  736. package/dist/plugin-sdk/logger-DJGHvDbX.js +1 -1
  737. package/dist/plugin-sdk/logger-DPlqYkRm.cjs +1 -1
  738. package/dist/plugin-sdk/logger-DUYnS-W3.cjs +1 -1
  739. package/dist/plugin-sdk/logger-DwWqfo66.js +1 -1
  740. package/dist/plugin-sdk/logger-vBDTZWl3.js +1 -1
  741. package/dist/plugin-sdk/login-BN1TsFp4.cjs +1 -1
  742. package/dist/plugin-sdk/login-BXUtcSnB.cjs +1 -1
  743. package/dist/plugin-sdk/login-BoMH2iJT.js +1 -1
  744. package/dist/plugin-sdk/login-BtT7yRJO.js +1 -1
  745. package/dist/plugin-sdk/login-COzybMRK.js +1 -1
  746. package/dist/plugin-sdk/login-Cw1jFbel.cjs +1 -1
  747. package/dist/plugin-sdk/login-DEmpr5YK.js +1 -1
  748. package/dist/plugin-sdk/login-Dln00cFs.cjs +1 -1
  749. package/dist/plugin-sdk/login-S2Fe5n5K.cjs +1 -1
  750. package/dist/plugin-sdk/login-TieaF0ts.cjs +1 -1
  751. package/dist/plugin-sdk/login-ZQK4uJLw.js +1 -1
  752. package/dist/plugin-sdk/login-fKxJv0_F.js +1 -1
  753. package/dist/plugin-sdk/login-qr-1ilmySGx.js +1 -1
  754. package/dist/plugin-sdk/login-qr-B0ZSZaNI.js +1 -1
  755. package/dist/plugin-sdk/login-qr-B2P2Ky4j.js +1 -1
  756. package/dist/plugin-sdk/login-qr-B2U87iU8.js +1 -1
  757. package/dist/plugin-sdk/login-qr-B4x_eWI_.js +1 -1
  758. package/dist/plugin-sdk/login-qr-BIaJB24t.cjs +1 -1
  759. package/dist/plugin-sdk/login-qr-BMl5Beq2.cjs +1 -1
  760. package/dist/plugin-sdk/login-qr-Bkm3QorK.cjs +1 -1
  761. package/dist/plugin-sdk/login-qr-ClL8FMAJ.cjs +1 -1
  762. package/dist/plugin-sdk/login-qr-DFVK1lg-.js +1 -1
  763. package/dist/plugin-sdk/login-qr-DhieI9fL.cjs +1 -1
  764. package/dist/plugin-sdk/login-qr-DyQT1QnE.cjs +1 -1
  765. package/dist/plugin-sdk/manager-0tvX3Z_N.cjs +1 -1
  766. package/dist/plugin-sdk/manager-8uylP7PH.cjs +1 -1
  767. package/dist/plugin-sdk/manager-B6hWglXe.js +1 -1
  768. package/dist/plugin-sdk/manager-BGoKN9ur.js +1 -1
  769. package/dist/plugin-sdk/manager-BRP1lzb6.js +1 -1
  770. package/dist/plugin-sdk/manager-BeLNhsXC.cjs +1 -1
  771. package/dist/plugin-sdk/manager-BnytMgmq.js +1 -1
  772. package/dist/plugin-sdk/manager-BoMQeM1I.cjs +1 -1
  773. package/dist/plugin-sdk/manager-CYZY9vcM.js +1 -1
  774. package/dist/plugin-sdk/manager-DCDy2V1U.cjs +1 -1
  775. package/dist/plugin-sdk/manager-DE7sDip8.cjs +1 -1
  776. package/dist/plugin-sdk/manager-PwgQZNK1.js +1 -1
  777. package/dist/plugin-sdk/matrix.cjs +1 -1
  778. package/dist/plugin-sdk/matrix.js +1 -1
  779. package/dist/plugin-sdk/mattermost.cjs +1 -1
  780. package/dist/plugin-sdk/mattermost.js +1 -1
  781. package/dist/plugin-sdk/memory-core.cjs +1 -1
  782. package/dist/plugin-sdk/memory-core.js +1 -1
  783. package/dist/plugin-sdk/minimax-portal-auth.cjs +1 -1
  784. package/dist/plugin-sdk/minimax-portal-auth.js +1 -1
  785. package/dist/plugin-sdk/model-auth-BgS7ynQw.cjs +1 -1
  786. package/dist/plugin-sdk/model-auth-CKlA2xRB.cjs +1 -1
  787. package/dist/plugin-sdk/model-auth-CLnFIqcf.cjs +1 -1
  788. package/dist/plugin-sdk/model-auth-D7YupJDS.js +1 -1
  789. package/dist/plugin-sdk/model-auth-eNVBeC-B.js +1 -1
  790. package/dist/plugin-sdk/model-auth-fJrNIbke.cjs +1 -1
  791. package/dist/plugin-sdk/model-auth-g6eGgTwR.js +1 -1
  792. package/dist/plugin-sdk/model-auth-wcxJptQX.js +1 -1
  793. package/dist/plugin-sdk/model-selection-4ExiFkaW.js +1 -1
  794. package/dist/plugin-sdk/model-selection-CZY_x2-a.cjs +1 -1
  795. package/dist/plugin-sdk/msteams.cjs +1 -1
  796. package/dist/plugin-sdk/msteams.js +1 -1
  797. package/dist/plugin-sdk/nextcloud-talk.cjs +1 -1
  798. package/dist/plugin-sdk/nextcloud-talk.js +1 -1
  799. package/dist/plugin-sdk/nostr.cjs +1 -1
  800. package/dist/plugin-sdk/nostr.js +1 -1
  801. package/dist/plugin-sdk/outbound-2VVSR_d4.js +1 -1
  802. package/dist/plugin-sdk/outbound-B03BQa7T.cjs +1 -1
  803. package/dist/plugin-sdk/outbound-BE8CJ9c_.js +1 -1
  804. package/dist/plugin-sdk/outbound-BWtGs0dn.cjs +1 -1
  805. package/dist/plugin-sdk/outbound-BrD0UsX0.js +1 -1
  806. package/dist/plugin-sdk/outbound-Bvu4LbQx.js +1 -1
  807. package/dist/plugin-sdk/outbound-C5rNt-8z.cjs +1 -1
  808. package/dist/plugin-sdk/outbound-C6BJCoYf.cjs +1 -1
  809. package/dist/plugin-sdk/outbound-Cgc0JJtB.js +1 -1
  810. package/dist/plugin-sdk/outbound-DAHIkpiA.cjs +1 -1
  811. package/dist/plugin-sdk/outbound-DnO_udAm.cjs +1 -1
  812. package/dist/plugin-sdk/outbound-UAHsCNyW.js +1 -1
  813. package/dist/plugin-sdk/outbound-attachment-0QahtSQB.cjs +1 -1
  814. package/dist/plugin-sdk/outbound-attachment-8qvAj1MK.js +1 -1
  815. package/dist/plugin-sdk/outbound-attachment-B6SJy_CG.js +1 -1
  816. package/dist/plugin-sdk/outbound-attachment-BVdSGifg.js +1 -1
  817. package/dist/plugin-sdk/outbound-attachment-C-QqSQ79.cjs +1 -1
  818. package/dist/plugin-sdk/outbound-attachment-CYGrnygD.cjs +1 -1
  819. package/dist/plugin-sdk/outbound-attachment-CtA5eBgj.cjs +1 -1
  820. package/dist/plugin-sdk/outbound-attachment-D8Ng5uVX.cjs +1 -1
  821. package/dist/plugin-sdk/outbound-attachment-DS0S0NLK.js +1 -1
  822. package/dist/plugin-sdk/outbound-attachment-Ds2XsjQl.js +1 -1
  823. package/dist/plugin-sdk/outbound-attachment-acB4qID1.js +1 -1
  824. package/dist/plugin-sdk/outbound-attachment-x4Q2SVIA.cjs +1 -1
  825. package/dist/plugin-sdk/paths-BPlgbwrb.cjs +1 -1
  826. package/dist/plugin-sdk/paths-Bcdg3ma0.cjs +1 -1
  827. package/dist/plugin-sdk/paths-BpQOWYiT.js +1 -1
  828. package/dist/plugin-sdk/paths-BvlJvmRS.cjs +1 -1
  829. package/dist/plugin-sdk/paths-CIcxeNL-.cjs +1 -1
  830. package/dist/plugin-sdk/paths-CXgWvWAM.js +1 -1
  831. package/dist/plugin-sdk/paths-Chp3zwtq.cjs +1 -1
  832. package/dist/plugin-sdk/paths-CnHSNSeR.js +1 -1
  833. package/dist/plugin-sdk/paths-Cqca1YmF.cjs +1 -1
  834. package/dist/plugin-sdk/paths-CtrEseGU.js +1 -1
  835. package/dist/plugin-sdk/paths-D55o_j8-.js +1 -1
  836. package/dist/plugin-sdk/paths-D90l3h_o.cjs +1 -1
  837. package/dist/plugin-sdk/paths-DaRoqzBQ.js +1 -1
  838. package/dist/plugin-sdk/paths-Dd7r1qlB.cjs +1 -1
  839. package/dist/plugin-sdk/paths-DhSjTRMz.js +1 -1
  840. package/dist/plugin-sdk/paths-Do0djuaj.js +1 -1
  841. package/dist/plugin-sdk/paths-J4JUiRsa.js +1 -1
  842. package/dist/plugin-sdk/paths-cBAF6Bj0.js +1 -1
  843. package/dist/plugin-sdk/paths-piJASC5k.js +1 -1
  844. package/dist/plugin-sdk/paths-rO4ehkyU.js +1 -1
  845. package/dist/plugin-sdk/pi-model-discovery--UcCzdQg.js +1 -1
  846. package/dist/plugin-sdk/pi-model-discovery-Bi4dKtW0.cjs +1 -1
  847. package/dist/plugin-sdk/pi-model-discovery-CCK2Ppj9.js +1 -1
  848. package/dist/plugin-sdk/pi-model-discovery-CRSZ0OFi.js +1 -1
  849. package/dist/plugin-sdk/pi-model-discovery-Cx_r4FGY.js +1 -1
  850. package/dist/plugin-sdk/pi-model-discovery-D3JQMjAa.cjs +1 -1
  851. package/dist/plugin-sdk/pi-model-discovery-DN1RHetG.cjs +1 -1
  852. package/dist/plugin-sdk/pi-model-discovery-DVFSU0-f.cjs +1 -1
  853. package/dist/plugin-sdk/pi-model-discovery-DWMAAhA-.cjs +1 -1
  854. package/dist/plugin-sdk/pi-model-discovery-DYOHzCjs.js +1 -1
  855. package/dist/plugin-sdk/pi-model-discovery-DdSVvbQ5.cjs +1 -1
  856. package/dist/plugin-sdk/pi-model-discovery-DejkxBol.js +1 -1
  857. package/dist/plugin-sdk/pi-model-discovery-SmVAFMj_.cjs +1 -1
  858. package/dist/plugin-sdk/pi-model-discovery-ma8st1Ek.js +1 -1
  859. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-B2WodYBY.cjs +1 -1
  860. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BC114tUb.js +1 -1
  861. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BF6jP1nM.js +1 -1
  862. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Beg-U7Z-.cjs +1 -1
  863. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BkEYsSLL.js +1 -1
  864. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-C21sWtkh.js +1 -1
  865. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CKkgBGIj.cjs +1 -1
  866. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CNun__L-.js +1 -1
  867. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Clulhv2X.cjs +1 -1
  868. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DvwL5in9.cjs +1 -1
  869. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-FnzjmZqP.js +1 -1
  870. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Rq5y0QJ2.cjs +1 -1
  871. package/dist/plugin-sdk/polls-BuaJuIpV.cjs +1 -1
  872. package/dist/plugin-sdk/polls-CBAGZuJ6.js +1 -1
  873. package/dist/plugin-sdk/polls-CSKMbBIS.js +1 -1
  874. package/dist/plugin-sdk/polls-D0wY0FvT.cjs +1 -1
  875. package/dist/plugin-sdk/polls-PGxiE05J.js +1 -1
  876. package/dist/plugin-sdk/polls-yWqSCEP0.cjs +1 -1
  877. package/dist/plugin-sdk/proxy-env-B765haXA.js +1 -1
  878. package/dist/plugin-sdk/proxy-env-Bcl14j2_.cjs +1 -1
  879. package/dist/plugin-sdk/proxy-env-BlrHtJWH.js +1 -1
  880. package/dist/plugin-sdk/proxy-env-D48qBPAr.cjs +1 -1
  881. package/dist/plugin-sdk/proxy-env-DGzNnnJh.js +1 -1
  882. package/dist/plugin-sdk/proxy-env-DQoJjkWE.cjs +1 -1
  883. package/dist/plugin-sdk/proxy-env-DWw9TnOj.cjs +1 -1
  884. package/dist/plugin-sdk/proxy-env-MEjSyzTr.js +1 -1
  885. package/dist/plugin-sdk/proxy-env-a590sPAz.cjs +1 -1
  886. package/dist/plugin-sdk/proxy-env-k93igu7v.cjs +1 -1
  887. package/dist/plugin-sdk/proxy-env-m9eG3uZN.js +1 -1
  888. package/dist/plugin-sdk/proxy-env-t6hcaFqC.js +1 -1
  889. package/dist/plugin-sdk/proxy-fetch-B9aXJVe-.js +1 -1
  890. package/dist/plugin-sdk/proxy-fetch-BaA3JYgW.cjs +1 -1
  891. package/dist/plugin-sdk/proxy-fetch-BwXFVsHE.cjs +1 -1
  892. package/dist/plugin-sdk/proxy-fetch-BzcKzknk.cjs +1 -1
  893. package/dist/plugin-sdk/proxy-fetch-CYVChsKE.js +1 -1
  894. package/dist/plugin-sdk/proxy-fetch-ClOb2LUH.js +1 -1
  895. package/dist/plugin-sdk/proxy-fetch-DH7VIiBH.cjs +1 -1
  896. package/dist/plugin-sdk/proxy-fetch-DPOhfrou.cjs +1 -1
  897. package/dist/plugin-sdk/proxy-fetch-DXt2R_Z5.js +1 -1
  898. package/dist/plugin-sdk/proxy-fetch-Del551nu.js +1 -1
  899. package/dist/plugin-sdk/proxy-fetch-YCVHz7Rl.js +1 -1
  900. package/dist/plugin-sdk/proxy-fetch-qbrYAz8k.cjs +1 -1
  901. package/dist/plugin-sdk/pw-ai-3piACPqP.cjs +1 -1
  902. package/dist/plugin-sdk/pw-ai-8dajXBkZ.js +1 -1
  903. package/dist/plugin-sdk/pw-ai-B7mrBDW5.js +1 -1
  904. package/dist/plugin-sdk/pw-ai-BLD7x-3a.js +1 -1
  905. package/dist/plugin-sdk/pw-ai-BYmANcaC.cjs +1 -1
  906. package/dist/plugin-sdk/pw-ai-C1rVW06B.cjs +1 -1
  907. package/dist/plugin-sdk/pw-ai-CCDvaBUm.cjs +1 -1
  908. package/dist/plugin-sdk/pw-ai-CVYUOcKM.js +1 -1
  909. package/dist/plugin-sdk/pw-ai-DBg5CCXp.cjs +1 -1
  910. package/dist/plugin-sdk/pw-ai-DY11CCd3.cjs +1 -1
  911. package/dist/plugin-sdk/pw-ai-Kf2RyA25.js +1 -1
  912. package/dist/plugin-sdk/pw-ai-f5yF3n3t.js +1 -1
  913. package/dist/plugin-sdk/qmd-manager-B3xNbdye.cjs +1 -1
  914. package/dist/plugin-sdk/qmd-manager-BMyDNBPi.js +1 -1
  915. package/dist/plugin-sdk/qmd-manager-BZhiv_zq.cjs +1 -1
  916. package/dist/plugin-sdk/qmd-manager-C3uVDbhW.js +1 -1
  917. package/dist/plugin-sdk/qmd-manager-CW46NrS-.cjs +1 -1
  918. package/dist/plugin-sdk/qmd-manager-C_e04BNg.js +1 -1
  919. package/dist/plugin-sdk/qmd-manager-CczVoslK.cjs +1 -1
  920. package/dist/plugin-sdk/qmd-manager-CzLKqPmR.js +1 -1
  921. package/dist/plugin-sdk/qmd-manager-DFh8b5N-.cjs +1 -1
  922. package/dist/plugin-sdk/qmd-manager-DXLfZZMI.js +1 -1
  923. package/dist/plugin-sdk/qmd-manager-FL9fAfNo.cjs +1 -1
  924. package/dist/plugin-sdk/qmd-manager-fWxbGqzk.js +1 -1
  925. package/dist/plugin-sdk/query-expansion-0zYzKrrd.cjs +1 -1
  926. package/dist/plugin-sdk/query-expansion-BYSjmpkV.cjs +1 -1
  927. package/dist/plugin-sdk/query-expansion-CAboqtWr.js +1 -1
  928. package/dist/plugin-sdk/query-expansion-C_DnhmUy.js +1 -1
  929. package/dist/plugin-sdk/query-expansion-Cb2vnF6y.js +1 -1
  930. package/dist/plugin-sdk/query-expansion-DCeqywxh.cjs +1 -1
  931. package/dist/plugin-sdk/query-expansion-DF4LMxRQ.js +1 -1
  932. package/dist/plugin-sdk/query-expansion-DKJkqmNM.cjs +1 -1
  933. package/dist/plugin-sdk/query-expansion-DO2CFW4z.cjs +1 -1
  934. package/dist/plugin-sdk/query-expansion-DyCDaZbL.js +1 -1
  935. package/dist/plugin-sdk/query-expansion-cpXCyoDy.cjs +1 -1
  936. package/dist/plugin-sdk/query-expansion-r_iXkNzt.js +1 -1
  937. package/dist/plugin-sdk/qwen-portal-auth.cjs +1 -1
  938. package/dist/plugin-sdk/qwen-portal-auth.js +1 -1
  939. package/dist/plugin-sdk/render-6fCdtAr6.cjs +1 -1
  940. package/dist/plugin-sdk/render-CBsnn-2A.js +1 -1
  941. package/dist/plugin-sdk/render-CzHaQB0d.cjs +1 -1
  942. package/dist/plugin-sdk/render-DGmfCIRG.js +1 -1
  943. package/dist/plugin-sdk/render-DhTJXP1U.js +1 -1
  944. package/dist/plugin-sdk/render-Djx15dPh.js +1 -1
  945. package/dist/plugin-sdk/render-DxBO2Blp.cjs +1 -1
  946. package/dist/plugin-sdk/render-g5VlmgpF.cjs +1 -1
  947. package/dist/plugin-sdk/reply-BrHB7v5V.cjs +1 -1
  948. package/dist/plugin-sdk/reply-Clex4c2R.js +1 -1
  949. package/dist/plugin-sdk/resolve-outbound-target-BHLQMMp-.cjs +1 -1
  950. package/dist/plugin-sdk/resolve-outbound-target-Cvz2WXAk.cjs +1 -1
  951. package/dist/plugin-sdk/resolve-outbound-target-DDqGniMw.js +1 -1
  952. package/dist/plugin-sdk/resolve-outbound-target-DEpmpEep.js +1 -1
  953. package/dist/plugin-sdk/send--HeMLLzj.js +1 -1
  954. package/dist/plugin-sdk/send-2IhtEEzb.js +1 -1
  955. package/dist/plugin-sdk/send-9tPLnqkc.js +1 -1
  956. package/dist/plugin-sdk/send-B-exJfkg.js +1 -1
  957. package/dist/plugin-sdk/send-B4kzPtcN.js +1 -1
  958. package/dist/plugin-sdk/send-BCSkdYN6.cjs +1 -1
  959. package/dist/plugin-sdk/send-BEmZxBcF.js +1 -1
  960. package/dist/plugin-sdk/send-BHvZIrbJ.cjs +1 -1
  961. package/dist/plugin-sdk/send-BLbCBxeF.js +1 -1
  962. package/dist/plugin-sdk/send-BOkABdQu.cjs +1 -1
  963. package/dist/plugin-sdk/send-BPNd63Qs.js +1 -1
  964. package/dist/plugin-sdk/send-BVAm6Zbr.cjs +1 -1
  965. package/dist/plugin-sdk/send-B_619b3s.js +1 -1
  966. package/dist/plugin-sdk/send-BcuylzbX.js +1 -1
  967. package/dist/plugin-sdk/send-BdFvK9Wc2.js +1 -1
  968. package/dist/plugin-sdk/send-Bh-J7XWZ.cjs +1 -1
  969. package/dist/plugin-sdk/send-BkREPc90.cjs +1 -1
  970. package/dist/plugin-sdk/send-Bp4f-KJu.cjs +1 -1
  971. package/dist/plugin-sdk/send-BtF36kYb.js +1 -1
  972. package/dist/plugin-sdk/send-C6S8tkTA.cjs +1 -1
  973. package/dist/plugin-sdk/send-CDQF_izk.js +1 -1
  974. package/dist/plugin-sdk/send-CF3qas-K.js +1 -1
  975. package/dist/plugin-sdk/send-CFKQX2Wo.js +1 -1
  976. package/dist/plugin-sdk/send-CIP1u5a-.js +1 -1
  977. package/dist/plugin-sdk/send-CIxh7PV0.cjs +1 -1
  978. package/dist/plugin-sdk/send-CJJdcDHX.js +1 -1
  979. package/dist/plugin-sdk/send-COtvydDt.cjs +1 -1
  980. package/dist/plugin-sdk/send-CPwh7tRu.js +1 -1
  981. package/dist/plugin-sdk/send-CRnIqXN9.cjs +1 -1
  982. package/dist/plugin-sdk/send-CSqipUeV.cjs +1 -1
  983. package/dist/plugin-sdk/send-Chfe8tPY.js +1 -1
  984. package/dist/plugin-sdk/send-ClMvdjfg.js +1 -1
  985. package/dist/plugin-sdk/send-CmoJSYhT.js +1 -1
  986. package/dist/plugin-sdk/send-Cs5jSTw0.cjs +1 -1
  987. package/dist/plugin-sdk/send-D-6Et_9H.js +1 -1
  988. package/dist/plugin-sdk/send-D13uFnzH.cjs +1 -1
  989. package/dist/plugin-sdk/send-D3eT0F4N.cjs +1 -1
  990. package/dist/plugin-sdk/send-DAtg_VHa.js +1 -1
  991. package/dist/plugin-sdk/send-DCF59ijQ.cjs +1 -1
  992. package/dist/plugin-sdk/send-DN2xic3w.cjs +1 -1
  993. package/dist/plugin-sdk/send-DOjSTB6D.cjs +1 -1
  994. package/dist/plugin-sdk/send-DavwL7cF.js +1 -1
  995. package/dist/plugin-sdk/send-Dbmn1rgD.cjs +1 -1
  996. package/dist/plugin-sdk/send-DhfDqcwc.cjs +1 -1
  997. package/dist/plugin-sdk/send-DsDCrJWq.js +1 -1
  998. package/dist/plugin-sdk/send-DyR5Lpl-.js +1 -1
  999. package/dist/plugin-sdk/send-DyzuwDjE.js +1 -1
  1000. package/dist/plugin-sdk/send-GtphEa1b.cjs +1 -1
  1001. package/dist/plugin-sdk/send-HZNY_u3L.cjs +1 -1
  1002. package/dist/plugin-sdk/send-IM-76QZu.js +1 -1
  1003. package/dist/plugin-sdk/send-IqcgAO8b.cjs +1 -1
  1004. package/dist/plugin-sdk/send-OQcuL9tP.js +1 -1
  1005. package/dist/plugin-sdk/send-_92aOzWU.cjs +1 -1
  1006. package/dist/plugin-sdk/send-h_kE-cAK.js +1 -1
  1007. package/dist/plugin-sdk/send-jOMdGt0L.cjs +1 -1
  1008. package/dist/plugin-sdk/send-mZ_d-t_3.cjs +1 -1
  1009. package/dist/plugin-sdk/send-puyUta4_.cjs +1 -1
  1010. package/dist/plugin-sdk/send-t5U34FhY.cjs +1 -1
  1011. package/dist/plugin-sdk/send-tvw8j-Se.cjs +1 -1
  1012. package/dist/plugin-sdk/send-z1vaCgF3.cjs +1 -1
  1013. package/dist/plugin-sdk/session--K1m5v7m.js +1 -1
  1014. package/dist/plugin-sdk/session-B1DJ45om.js +1 -1
  1015. package/dist/plugin-sdk/session-B80NWO1m.js +1 -1
  1016. package/dist/plugin-sdk/session-BKPBr445.js +1 -1
  1017. package/dist/plugin-sdk/session-BQLjsBwL.cjs +1 -1
  1018. package/dist/plugin-sdk/session-BZHltxdM.js +1 -1
  1019. package/dist/plugin-sdk/session-Bt5yI-VW.cjs +1 -1
  1020. package/dist/plugin-sdk/session-CC1GqwiM.cjs +1 -1
  1021. package/dist/plugin-sdk/session-C_yqyp3P.cjs +1 -1
  1022. package/dist/plugin-sdk/session-ClISxvtJ.js +1 -1
  1023. package/dist/plugin-sdk/session-D4nn-nXX.cjs +1 -1
  1024. package/dist/plugin-sdk/session-DOA4CJgj.cjs +1 -1
  1025. package/dist/plugin-sdk/sessions-BwTjGneU.js +1 -1
  1026. package/dist/plugin-sdk/sessions-CJbvfO6m.cjs +1 -1
  1027. package/dist/plugin-sdk/signal.cjs +1 -1
  1028. package/dist/plugin-sdk/signal.js +1 -1
  1029. package/dist/plugin-sdk/skill-commands-5WGHyr3h.cjs +1 -1
  1030. package/dist/plugin-sdk/skill-commands-BZlF3g3o.js +1 -1
  1031. package/dist/plugin-sdk/skill-commands-BmBQSmNH.js +1 -1
  1032. package/dist/plugin-sdk/skill-commands-CD4GQXTR.cjs +1 -1
  1033. package/dist/plugin-sdk/skill-commands-CGOPOT-r.js +1 -1
  1034. package/dist/plugin-sdk/skill-commands-CM9ziCQY.cjs +1 -1
  1035. package/dist/plugin-sdk/skill-commands-CVsU5rEy.js +1 -1
  1036. package/dist/plugin-sdk/skill-commands-DNPxE-kc.cjs +1 -1
  1037. package/dist/plugin-sdk/skill-commands-DcgKCVDt.js +1 -1
  1038. package/dist/plugin-sdk/skill-commands-IAwkVeOe.js +1 -1
  1039. package/dist/plugin-sdk/skill-commands-ZyLkXbR_.cjs +1 -1
  1040. package/dist/plugin-sdk/skill-commands-xJWQthd5.cjs +1 -1
  1041. package/dist/plugin-sdk/slack.cjs +1 -1
  1042. package/dist/plugin-sdk/slack.js +1 -1
  1043. package/dist/plugin-sdk/synology-chat.cjs +1 -1
  1044. package/dist/plugin-sdk/synology-chat.js +1 -1
  1045. package/dist/plugin-sdk/tables-BZUVdTR-.cjs +1 -1
  1046. package/dist/plugin-sdk/tables-Bbodvj_s.cjs +1 -1
  1047. package/dist/plugin-sdk/tables-C5b2CtNw.cjs +1 -1
  1048. package/dist/plugin-sdk/tables-C6TX2QvW.js +1 -1
  1049. package/dist/plugin-sdk/tables-Cz5osenc.js +1 -1
  1050. package/dist/plugin-sdk/tables-DBSeZ07-.cjs +1 -1
  1051. package/dist/plugin-sdk/tables-DLSXY2-Q.js +1 -1
  1052. package/dist/plugin-sdk/tables-DQad-z2Z.cjs +1 -1
  1053. package/dist/plugin-sdk/tables-DYuLwL1d.js +1 -1
  1054. package/dist/plugin-sdk/tables-D_J655yN.js +1 -1
  1055. package/dist/plugin-sdk/tables-_vqK8P0T.js +1 -1
  1056. package/dist/plugin-sdk/tables-bSgb8OzP.cjs +1 -1
  1057. package/dist/plugin-sdk/target-errors-B-mJ4s4b.cjs +1 -1
  1058. package/dist/plugin-sdk/target-errors-BAHAHc8f.js +1 -1
  1059. package/dist/plugin-sdk/target-errors-BKruhz8r.js +1 -1
  1060. package/dist/plugin-sdk/target-errors-BbQBR5da.js +1 -1
  1061. package/dist/plugin-sdk/target-errors-BjgLCOTm.cjs +1 -1
  1062. package/dist/plugin-sdk/target-errors-CQbFkOae.js +1 -1
  1063. package/dist/plugin-sdk/target-errors-C_HYvghh.cjs +1 -1
  1064. package/dist/plugin-sdk/target-errors-CaaKhU6m.js +1 -1
  1065. package/dist/plugin-sdk/target-errors-QWTCk98R.cjs +1 -1
  1066. package/dist/plugin-sdk/target-errors-oh0u5K2w.cjs +1 -1
  1067. package/dist/plugin-sdk/targets-BSc11Uk8.cjs +1 -1
  1068. package/dist/plugin-sdk/targets-BSkiizml.js +1 -1
  1069. package/dist/plugin-sdk/targets-CBI0xqve.cjs +1 -1
  1070. package/dist/plugin-sdk/targets-CL5fYQi7.js +1 -1
  1071. package/dist/plugin-sdk/targets-CUZWrFrm.cjs +1 -1
  1072. package/dist/plugin-sdk/targets-CVEYTFPQ.js +1 -1
  1073. package/dist/plugin-sdk/targets-Co2R6K14.cjs +1 -1
  1074. package/dist/plugin-sdk/targets-CrkJkzil.js +1 -1
  1075. package/dist/plugin-sdk/targets-D-m7SV9x.cjs +1 -1
  1076. package/dist/plugin-sdk/targets-D8HTxbo4.js +1 -1
  1077. package/dist/plugin-sdk/targets-DcGNB9nk.cjs +1 -1
  1078. package/dist/plugin-sdk/targets-Dn9gDiEw.js +1 -1
  1079. package/dist/plugin-sdk/targets-X28mff4s.cjs +1 -1
  1080. package/dist/plugin-sdk/targets-uycXZ8vQ.js +1 -1
  1081. package/dist/plugin-sdk/telegram.cjs +1 -1
  1082. package/dist/plugin-sdk/telegram.js +1 -1
  1083. package/dist/plugin-sdk/test-utils.cjs +1 -1
  1084. package/dist/plugin-sdk/test-utils.js +1 -1
  1085. package/dist/plugin-sdk/tlon.cjs +1 -1
  1086. package/dist/plugin-sdk/tlon.js +1 -1
  1087. package/dist/plugin-sdk/tokens-AAdZjj0M.js +1 -1
  1088. package/dist/plugin-sdk/tokens-B20KNIDD.js +1 -1
  1089. package/dist/plugin-sdk/tokens-B8ys7Q2e.js +1 -1
  1090. package/dist/plugin-sdk/tokens-BPc1fcZ3.js +1 -1
  1091. package/dist/plugin-sdk/tokens-BqABmXSe.js +1 -1
  1092. package/dist/plugin-sdk/tokens-CXsPDJTr.cjs +1 -1
  1093. package/dist/plugin-sdk/tokens-CnB4dJmp.cjs +1 -1
  1094. package/dist/plugin-sdk/tokens-CytSl1X8.cjs +1 -1
  1095. package/dist/plugin-sdk/tokens-DgPZk2Uu.js +1 -1
  1096. package/dist/plugin-sdk/tokens-Dq2wDF3_.cjs +1 -1
  1097. package/dist/plugin-sdk/tokens-DtrljGtQ.cjs +1 -1
  1098. package/dist/plugin-sdk/tokens-g5KWvWhD.cjs +1 -1
  1099. package/dist/plugin-sdk/twitch.cjs +1 -1
  1100. package/dist/plugin-sdk/twitch.js +1 -1
  1101. package/dist/plugin-sdk/utils-BJtJR72k.js +1 -1
  1102. package/dist/plugin-sdk/utils-PPIvU9qw.cjs +1 -1
  1103. package/dist/plugin-sdk/voice-call.cjs +1 -1
  1104. package/dist/plugin-sdk/voice-call.js +1 -1
  1105. package/dist/plugin-sdk/web-B4A8zBP9.cjs +1 -1
  1106. package/dist/plugin-sdk/web-BKKx3jqf.cjs +1 -1
  1107. package/dist/plugin-sdk/web-BTBgpaEi.js +1 -1
  1108. package/dist/plugin-sdk/web-BfjArU7g.js +1 -1
  1109. package/dist/plugin-sdk/web-C7KhecaH.cjs +1 -1
  1110. package/dist/plugin-sdk/web-CFMrBQv7.js +1 -1
  1111. package/dist/plugin-sdk/web-CS0AvKLx.js +1 -1
  1112. package/dist/plugin-sdk/web-EfgEjg15.cjs +1 -1
  1113. package/dist/plugin-sdk/weixin.cjs +1 -1
  1114. package/dist/plugin-sdk/weixin.js +1 -1
  1115. package/dist/plugin-sdk/whatsapp-actions-6N2LIWVD.js +1 -1
  1116. package/dist/plugin-sdk/whatsapp-actions-BGEghean.js +1 -1
  1117. package/dist/plugin-sdk/whatsapp-actions-BP_fSzB9.cjs +1 -1
  1118. package/dist/plugin-sdk/whatsapp-actions-BSx6-Onq.cjs +1 -1
  1119. package/dist/plugin-sdk/whatsapp-actions-BZAMGDn8.cjs +1 -1
  1120. package/dist/plugin-sdk/whatsapp-actions-BvZMduqd.js +1 -1
  1121. package/dist/plugin-sdk/whatsapp-actions-CDUbwNdp.cjs +1 -1
  1122. package/dist/plugin-sdk/whatsapp-actions-DNVIKnqz.cjs +1 -1
  1123. package/dist/plugin-sdk/whatsapp-actions-DTVbVkOo.js +1 -1
  1124. package/dist/plugin-sdk/whatsapp-actions-DjMYqpSS.js +1 -1
  1125. package/dist/plugin-sdk/whatsapp-actions-P1DVqKhD.cjs +1 -1
  1126. package/dist/plugin-sdk/whatsapp-actions-shElOKKX.js +1 -1
  1127. package/dist/plugin-sdk/whatsapp.cjs +1 -1
  1128. package/dist/plugin-sdk/whatsapp.js +1 -1
  1129. package/dist/plugin-sdk/zalo.cjs +1 -1
  1130. package/dist/plugin-sdk/zalo.js +1 -1
  1131. package/dist/plugin-sdk/zalouser.cjs +1 -1
  1132. package/dist/plugin-sdk/zalouser.js +1 -1
  1133. package/dist/plugins-CYLrFT4h.js +1 -1
  1134. package/dist/plugins-DNlgeTTc.js +1 -1
  1135. package/dist/plugins-cli-BiV4FaGs.js +1 -1
  1136. package/dist/plugins-cli-C0PLRxT0.js +1 -1
  1137. package/dist/polls-BIVz6a4F.js +1 -1
  1138. package/dist/polls-Bh5wc9-6.js +1 -1
  1139. package/dist/polls-C_XSFz3d.js +1 -1
  1140. package/dist/polls-DKJOFSzJ.js +1 -1
  1141. package/dist/ports-Bjc9q__g.js +1 -1
  1142. package/dist/ports-Di2_MOUb.js +1 -1
  1143. package/dist/probe-auth-9RrZOStc.js +1 -1
  1144. package/dist/probe-auth-Cg6SAov9.js +1 -1
  1145. package/dist/profile-utils-CWmra1aY.js +1 -1
  1146. package/dist/program-CI--7377.js +1 -1
  1147. package/dist/program-context-CH9p6anW.js +1 -1
  1148. package/dist/program-context-Cu8fVR-O.js +1 -1
  1149. package/dist/progress-LNttnI-y.js +1 -1
  1150. package/dist/progress-d1m2sqR1.js +1 -1
  1151. package/dist/prompt-select-styled-CbTtKeIC.js +1 -1
  1152. package/dist/prompt-select-styled-sYEl0gMg.js +1 -1
  1153. package/dist/prompt-style-BThRSQJR.js +1 -1
  1154. package/dist/prompt-style-CXKekIBY.js +1 -1
  1155. package/dist/prompts-CMzglboN.js +1 -1
  1156. package/dist/prompts-wv-lfVrJ.js +1 -1
  1157. package/dist/provider-auth-helpers-C3OaF218.js +1 -1
  1158. package/dist/provider-auth-helpers-CZyb7LUg.js +1 -1
  1159. package/dist/provider-env-vars-D8p6Ohpj.js +1 -1
  1160. package/dist/provider-env-vars-Dt0Q29Su.js +1 -1
  1161. package/dist/proxy-env-BNhTHkd_.js +1 -1
  1162. package/dist/proxy-env-DcmW_urA.js +1 -1
  1163. package/dist/proxy-env-DrC3TIGh.js +1 -1
  1164. package/dist/proxy-env-FJr5nlvs.js +1 -1
  1165. package/dist/proxy-fetch-BADsUK4d.js +1 -1
  1166. package/dist/proxy-fetch-BZ9O8Dvj.js +1 -1
  1167. package/dist/proxy-fetch-DnjU1fEB.js +1 -1
  1168. package/dist/proxy-fetch-gWETR3cl.js +1 -1
  1169. package/dist/push-apns-kySzOiJr.js +1 -1
  1170. package/dist/push-apns-tM6G9LLm.js +1 -1
  1171. package/dist/pw-ai-B7YMA_4Q.js +1 -1
  1172. package/dist/pw-ai-C7peCONw.js +1 -1
  1173. package/dist/pw-ai-CojtT9WR.js +1 -1
  1174. package/dist/pw-ai-DWJWFzTA.js +1 -1
  1175. package/dist/qmd-manager-C_e04BNg.js +1 -1
  1176. package/dist/qmd-manager-DSQ_mDCl.js +1 -1
  1177. package/dist/qmd-manager-DcBYbt_V.js +1 -1
  1178. package/dist/qmd-manager-NLI0R6kp.js +1 -1
  1179. package/dist/qr-cli-DUR7oW0_.js +1 -1
  1180. package/dist/qr-cli-kb3ygh9I.js +1 -1
  1181. package/dist/query-expansion-0OxEb1Io.js +1 -1
  1182. package/dist/query-expansion-BUUx_oWg.js +1 -1
  1183. package/dist/query-expansion-r_iXkNzt.js +1 -1
  1184. package/dist/reaction-level-DVPHL14p.js +1 -1
  1185. package/dist/reaction-message-id-BEEe7X3D.js +1 -1
  1186. package/dist/read-only-account-inspect-DEnPVHTo.js +1 -1
  1187. package/dist/redact-3_CiXMY6.js +1 -1
  1188. package/dist/redact-CnRxK70G.js +1 -1
  1189. package/dist/register.agent-BwmE1VD-.js +1 -1
  1190. package/dist/register.agent-D1hQi_68.js +1 -1
  1191. package/dist/register.backup-8s5jgnHQ.js +1 -1
  1192. package/dist/register.backup-CAiwLaIW.js +1 -1
  1193. package/dist/register.configure-BsTw4XfK.js +1 -1
  1194. package/dist/register.configure-DxR84Ot6.js +1 -1
  1195. package/dist/register.maintenance-3nzWAo_a.js +1 -1
  1196. package/dist/register.maintenance-DxKGQ9Jo.js +1 -1
  1197. package/dist/register.message-Bk1pHVSK.js +1 -1
  1198. package/dist/register.message-PcFtBR0-.js +1 -1
  1199. package/dist/register.onboard-AWxbhU7j.js +1 -1
  1200. package/dist/register.onboard-BTOZN8ro.js +1 -1
  1201. package/dist/register.setup-B-e1qIbc.js +1 -1
  1202. package/dist/register.setup-CweJJdt8.js +1 -1
  1203. package/dist/register.status-health-sessions-B1R_nl6P.js +1 -1
  1204. package/dist/register.status-health-sessions-CWNLXpAn.js +1 -1
  1205. package/dist/register.subclis-C0VQ_HfZ.js +1 -1
  1206. package/dist/registry-BptzrW8D.js +1 -1
  1207. package/dist/registry-hFAtCSWG.js +1 -1
  1208. package/dist/render-BXEUPIHe.js +1 -1
  1209. package/dist/render-CBsnn-2A.js +1 -1
  1210. package/dist/render-D8OWO2hT.js +1 -1
  1211. package/dist/render-DrrPmnMI.js +1 -1
  1212. package/dist/reply-r9KtzgpM.js +1 -1
  1213. package/dist/restart-CTfuVGfA.js +1 -1
  1214. package/dist/rpc-BQXfCyCw.js +1 -1
  1215. package/dist/rpc-CcrILVsV.js +1 -1
  1216. package/dist/run-main-CuQQyoU3.js +1 -1
  1217. package/dist/runtime-BlsMYeaw.js +1 -1
  1218. package/dist/runtime-DLxfCs7F.js +1 -1
  1219. package/dist/runtime-guard-DFYBaYZS.js +1 -1
  1220. package/dist/runtime-guard-DX2Ie4ri.js +1 -1
  1221. package/dist/runtime-status-CqFBmdRd.js +1 -1
  1222. package/dist/runtime-status-DszMjvJK.js +1 -1
  1223. package/dist/runtime-web-tools-BWv0X5qp.js +1 -1
  1224. package/dist/runtime-web-tools-CCIXUISf.js +1 -1
  1225. package/dist/sandbox-cli-CxluKLFV.js +1 -1
  1226. package/dist/sandbox-cli-xCX6FV4Z.js +1 -1
  1227. package/dist/scan-paths-C13EseXp.js +1 -1
  1228. package/dist/scan-paths-CWtvWW40.js +1 -1
  1229. package/dist/search-manager-KMRzwyPH.js +1 -1
  1230. package/dist/secret-file-C7JffiM_.js +1 -1
  1231. package/dist/secret-file-D60EFEOe.js +1 -1
  1232. package/dist/secret-file-DuWm26jS.js +1 -1
  1233. package/dist/secrets-cli-Be6OBr6Q.js +1 -1
  1234. package/dist/secrets-cli-DmDZiX17.js +1 -1
  1235. package/dist/secure-random-D7JQgiK-.js +1 -1
  1236. package/dist/security-cli-CllLwpQ-.js +1 -1
  1237. package/dist/security-cli-DcA9keUK.js +1 -1
  1238. package/dist/send-8rJCpsDu.js +1 -1
  1239. package/dist/send-BJjoLBo3.js +1 -1
  1240. package/dist/send-BOxuQt9L.js +1 -1
  1241. package/dist/send-BPfl_1It.js +1 -1
  1242. package/dist/send-BdS6jUBa.js +1 -1
  1243. package/dist/send-BeZJ1zbp.js +1 -1
  1244. package/dist/send-BkZ8dWQV2.js +1 -1
  1245. package/dist/send-CDAeI9xB2.js +1 -1
  1246. package/dist/send-CgeRzkWS.js +1 -1
  1247. package/dist/send-CiTZ4p2t.js +1 -1
  1248. package/dist/send-D0y-r_hg2.js +1 -1
  1249. package/dist/send-DIw8ExHc.js +1 -1
  1250. package/dist/send-DRm6AFp-.js +1 -1
  1251. package/dist/send-DS5Quwb7.js +1 -1
  1252. package/dist/send-DVmPgxm7.js +1 -1
  1253. package/dist/send-Ds5sy22D.js +1 -1
  1254. package/dist/send-DvGzdoKK.js +1 -1
  1255. package/dist/send-OVet2uKx.js +1 -1
  1256. package/dist/send-YPQFx-fV.js +1 -1
  1257. package/dist/send-e2ppdA_R.js +1 -1
  1258. package/dist/server-Dzqb5Tau.js +1 -1
  1259. package/dist/server-node-events-B2irOUJ_.js +1 -1
  1260. package/dist/server-node-events-DSr6P0VG.js +1 -1
  1261. package/dist/server-w7sUBJEA.js +1 -1
  1262. package/dist/service-BtB9epJk.js +1 -1
  1263. package/dist/service-DZ9EbS15.js +1 -1
  1264. package/dist/session-BYYOduc1.js +1 -1
  1265. package/dist/session-B_qrXLsR.js +1 -1
  1266. package/dist/session-Be0RV2V1.js +1 -1
  1267. package/dist/session-bk3gFwO4.js +1 -1
  1268. package/dist/session-cost-usage-BgqKixv0.js +1 -1
  1269. package/dist/session-cost-usage-CHtVgnE8.js +1 -1
  1270. package/dist/session-key-C7F_iqYg.js +1 -1
  1271. package/dist/session-key-D3P0tf5P.js +1 -1
  1272. package/dist/session-utils-CrR0wD3W.js +1 -1
  1273. package/dist/sessions-BvTGb3rW.js +1 -1
  1274. package/dist/shared-9x5sqYRb.js +1 -1
  1275. package/dist/shared-BKWhOp64.js +1 -1
  1276. package/dist/shared-BV-hfJ3h.js +1 -1
  1277. package/dist/skill-commands-C59b8Yso.js +1 -1
  1278. package/dist/skill-commands-CqIEajsA.js +1 -1
  1279. package/dist/skill-commands-F5NFH0NR.js +1 -1
  1280. package/dist/skill-commands-O39uSj-k.js +1 -1
  1281. package/dist/skill-scanner-CUUF3Fvo.js +1 -1
  1282. package/dist/skill-scanner-CkxXNioD.js +1 -1
  1283. package/dist/skills-CKTicUKS.js +1 -1
  1284. package/dist/skills-DHbOKEGc.js +1 -1
  1285. package/dist/skills-cli-CZD1Ng18.js +1 -1
  1286. package/dist/skills-cli-nj0w4fe0.js +1 -1
  1287. package/dist/skills-install-D0I6c17J.js +1 -1
  1288. package/dist/skills-install-XHpqMBWl.js +1 -1
  1289. package/dist/skills-status-BWIugRCz.js +1 -1
  1290. package/dist/skills-status-DswSl5aD.js +1 -1
  1291. package/dist/sqlite-CILF3z9U.js +1 -1
  1292. package/dist/stagger-DmFYysrJ.js +1 -1
  1293. package/dist/stagger-DxzgG2jd.js +1 -1
  1294. package/dist/status-DKB9gdSp.js +1 -1
  1295. package/dist/status-DgRrUxyg.js +1 -1
  1296. package/dist/status-YZD9V9xi.js +1 -1
  1297. package/dist/status-isxcm8Xz.js +1 -1
  1298. package/dist/status.update-B_8Gumuc.js +1 -1
  1299. package/dist/status.update-Cf2e-l9d.js +1 -1
  1300. package/dist/string-normalization-BrUPaXaM.js +1 -1
  1301. package/dist/string-normalization-DJT5zuUF.js +1 -1
  1302. package/dist/subsystem-BLbY429l.js +1 -1
  1303. package/dist/subsystem-Bc2XrjUz.js +1 -1
  1304. package/dist/subsystem-C5XF2Fy5.js +1 -1
  1305. package/dist/system-cli-CRs3TOTw.js +1 -1
  1306. package/dist/system-cli-GyoLZQpj.js +1 -1
  1307. package/dist/system-run-command-DCzdgYyb.js +1 -1
  1308. package/dist/system-run-command-FCk9hSMO.js +1 -1
  1309. package/dist/systemd-D7odsu4K.js +1 -1
  1310. package/dist/systemd-DbevZh65.js +1 -1
  1311. package/dist/systemd-hints-lXpMy-kY.js +1 -1
  1312. package/dist/systemd-hints-x1lJAOxS.js +1 -1
  1313. package/dist/systemd-linger-C2MJD6KG.js +1 -1
  1314. package/dist/systemd-linger-cWKbFNpu.js +1 -1
  1315. package/dist/table-CR7TFMew.js +1 -1
  1316. package/dist/table-CY440fI1.js +1 -1
  1317. package/dist/tables-3Rjt6nwZ.js +1 -1
  1318. package/dist/tables-B9wFKQvT.js +1 -1
  1319. package/dist/tables-D1pcaye7.js +1 -1
  1320. package/dist/tables-h7y1Jhf4.js +1 -1
  1321. package/dist/target-errors-CUQcIty1.js +1 -1
  1322. package/dist/target-errors-D55sWZ4E.js +1 -1
  1323. package/dist/target-errors-DH0aw-m5.js +1 -1
  1324. package/dist/target-errors-LuLROpta.js +1 -1
  1325. package/dist/targets-4EaxWBal.js +1 -1
  1326. package/dist/targets-BJTo7bqu.js +1 -1
  1327. package/dist/targets-BYVMrXDf.js +1 -1
  1328. package/dist/targets-Bq6rS6-Z.js +1 -1
  1329. package/dist/targets-CL5fYQi7.js +1 -1
  1330. package/dist/targets-fozeWOOg.js +1 -1
  1331. package/dist/targets-m_41k_Mv.js +1 -1
  1332. package/dist/telegram/audit.js +1 -1
  1333. package/dist/text-format-CvrvBBre.js +1 -1
  1334. package/dist/text-format-DEWK6oCT.js +1 -1
  1335. package/dist/token-DnTmiyJu.js +1 -1
  1336. package/dist/tokens-B2fq-rL6.js +1 -1
  1337. package/dist/tokens-CL2fSjGl.js +1 -1
  1338. package/dist/tokens-DRM8vzJx.js +1 -1
  1339. package/dist/tokens-XGbQGn67.js +1 -1
  1340. package/dist/tool-display-DJDtttQg.js +1 -1
  1341. package/dist/tool-display-DjuSUUbH.js +1 -1
  1342. package/dist/tui-CqEb9hrT.js +1 -1
  1343. package/dist/tui-DdZ8SpNW.js +1 -1
  1344. package/dist/tui-cli-Bj0okLCf.js +1 -1
  1345. package/dist/tui-cli-CYvBshyB.js +1 -1
  1346. package/dist/types.secrets-C-5U96pc.js +1 -1
  1347. package/dist/types.secrets-D4tbc3Wq.js +1 -1
  1348. package/dist/update-BGrxUIyz.js +1 -1
  1349. package/dist/update-CwTy5DPl.js +1 -1
  1350. package/dist/update-cli-lciKU8_L.js +1 -1
  1351. package/dist/update-cli-xb0jHjE8.js +1 -1
  1352. package/dist/update-runner-8Hto6X-M.js +1 -1
  1353. package/dist/update-runner-LVJcy569.js +1 -1
  1354. package/dist/usage-format-BWD8FJFL.js +1 -1
  1355. package/dist/usage-format-yPwal8Iz.js +1 -1
  1356. package/dist/utils-CGdo13HV.js +1 -1
  1357. package/dist/utils-D3t-vPka.js +1 -1
  1358. package/dist/utils-R-mFyVJi.js +1 -1
  1359. package/dist/utils-UGOV_184.js +1 -1
  1360. package/dist/version-q3SkUw2K.js +1 -1
  1361. package/dist/warning-filter.js +1 -1
  1362. package/dist/web-Bfz_qlYe.js +1 -1
  1363. package/dist/web-ClbIohhf.js +1 -1
  1364. package/dist/webhooks-cli-DKfKihmJ.js +1 -1
  1365. package/dist/webhooks-cli-LU2ADRQp.js +1 -1
  1366. package/dist/whatsapp-actions-1TJ8dlv0.js +1 -1
  1367. package/dist/whatsapp-actions-CuDiuPGa.js +1 -1
  1368. package/dist/whatsapp-actions-DkLDOIk1.js +1 -1
  1369. package/dist/whatsapp-actions-EnduXWui.js +1 -1
  1370. package/dist/widearea-dns-BDx7vkV2.js +1 -1
  1371. package/dist/widearea-dns-BFjqKXu_.js +1 -1
  1372. package/dist/windows-spawn-7oINn5ao.js +1 -1
  1373. package/dist/windows-spawn-AB7ItGAE.js +1 -1
  1374. package/dist/with-timeout-WveKxvFV.js +1 -1
  1375. package/dist/with-timeout-c1CzdShT.js +1 -1
  1376. package/dist/workspace-B0ZQeHXg.js +1 -1
  1377. package/dist/workspace-C45T1Cxg.js +1 -1
  1378. package/dist/workspace-dirs-A8Vib9_B.js +1 -1
  1379. package/dist/workspace-dirs-BhF1Dzxt.js +1 -1
  1380. package/dist/workspace-xNEpaJvu.js +1 -1
  1381. package/dist/wsl-DHxB2Ew_.js +1 -1
  1382. package/dist/wsl-Ok7GaSJ6.js +1 -1
  1383. package/extensions/memory-core/index.js +1 -0
  1384. package/extensions/memory-core/package.json +1 -1
  1385. package/extensions/openclaw-telemetry-galileo-embedded/index.js +4 -0
  1386. package/extensions/openclaw-telemetry-galileo-embedded/package.json +2 -2
  1387. package/extensions/openclaw-telemetry-galileo-embedded/src/service.js +13 -0
  1388. package/extensions/openclaw-weixin/index.js +1 -0
  1389. package/extensions/openclaw-weixin/package.json +3 -3
  1390. package/extensions/openclaw-weixin/src/api/api.js +1 -0
  1391. package/extensions/openclaw-weixin/src/api/config-cache.js +1 -0
  1392. package/extensions/openclaw-weixin/src/api/session-guard.js +1 -0
  1393. package/extensions/openclaw-weixin/src/api/types.js +1 -0
  1394. package/extensions/openclaw-weixin/src/auth/accounts.js +1 -0
  1395. package/extensions/openclaw-weixin/src/auth/login-qr.js +11 -0
  1396. package/extensions/openclaw-weixin/src/auth/pairing.js +1 -0
  1397. package/extensions/openclaw-weixin/src/cdn/aes-ecb.js +1 -0
  1398. package/extensions/openclaw-weixin/src/cdn/cdn-upload.js +1 -0
  1399. package/extensions/openclaw-weixin/src/cdn/cdn-url.js +1 -0
  1400. package/extensions/openclaw-weixin/src/cdn/pic-decrypt.js +1 -0
  1401. package/extensions/openclaw-weixin/src/cdn/upload.js +1 -0
  1402. package/extensions/openclaw-weixin/src/channel.js +6 -0
  1403. package/extensions/openclaw-weixin/src/config/config-schema.js +1 -0
  1404. package/extensions/openclaw-weixin/src/log-upload.js +4 -0
  1405. package/extensions/openclaw-weixin/src/media/media-download.js +1 -0
  1406. package/extensions/openclaw-weixin/src/media/mime.js +1 -0
  1407. package/extensions/openclaw-weixin/src/media/silk-transcode.js +1 -0
  1408. package/extensions/openclaw-weixin/src/messaging/debug-mode.js +1 -0
  1409. package/extensions/openclaw-weixin/src/messaging/error-notice.js +1 -0
  1410. package/extensions/openclaw-weixin/src/messaging/inbound.js +2 -0
  1411. package/extensions/openclaw-weixin/src/messaging/process-message.js +3 -0
  1412. package/extensions/openclaw-weixin/src/messaging/send-media.js +1 -0
  1413. package/extensions/openclaw-weixin/src/messaging/send.js +1 -0
  1414. package/extensions/openclaw-weixin/src/messaging/slash-commands.js +2 -0
  1415. package/extensions/openclaw-weixin/src/monitor/monitor.js +1 -0
  1416. package/extensions/openclaw-weixin/src/runtime.js +1 -0
  1417. package/extensions/openclaw-weixin/src/storage/state-dir.js +1 -0
  1418. package/extensions/openclaw-weixin/src/storage/sync-buf.js +1 -0
  1419. package/extensions/openclaw-weixin/src/util/logger.js +2 -0
  1420. package/extensions/openclaw-weixin/src/util/random.js +1 -0
  1421. package/extensions/openclaw-weixin/src/util/redact.js +1 -0
  1422. package/extensions/qbagent-mcp-server-x5uselocal-node/index.js +1 -0
  1423. package/extensions/qbagent-mcp-server-x5uselocal-node/package.json +1 -1
  1424. package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.js +1 -0
  1425. package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.js +1 -0
  1426. package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.js +1 -0
  1427. package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.js +1 -0
  1428. package/package.json +1 -1
  1429. package/extensions/memory-core/index.ts +0 -38
  1430. package/extensions/openclaw-telemetry-galileo-embedded/index.ts +0 -663
  1431. package/extensions/openclaw-telemetry-galileo-embedded/src/service.ts +0 -1590
  1432. package/extensions/openclaw-weixin/index.ts +0 -26
  1433. package/extensions/openclaw-weixin/src/api/api.ts +0 -238
  1434. package/extensions/openclaw-weixin/src/api/config-cache.ts +0 -79
  1435. package/extensions/openclaw-weixin/src/api/session-guard.ts +0 -58
  1436. package/extensions/openclaw-weixin/src/api/types.ts +0 -222
  1437. package/extensions/openclaw-weixin/src/auth/accounts.ts +0 -363
  1438. package/extensions/openclaw-weixin/src/auth/login-qr.ts +0 -344
  1439. package/extensions/openclaw-weixin/src/auth/pairing.ts +0 -120
  1440. package/extensions/openclaw-weixin/src/cdn/aes-ecb.ts +0 -21
  1441. package/extensions/openclaw-weixin/src/cdn/cdn-upload.ts +0 -75
  1442. package/extensions/openclaw-weixin/src/cdn/cdn-url.ts +0 -17
  1443. package/extensions/openclaw-weixin/src/cdn/pic-decrypt.ts +0 -85
  1444. package/extensions/openclaw-weixin/src/cdn/upload.ts +0 -154
  1445. package/extensions/openclaw-weixin/src/channel.ts +0 -483
  1446. package/extensions/openclaw-weixin/src/config/config-schema.ts +0 -21
  1447. package/extensions/openclaw-weixin/src/log-upload.ts +0 -129
  1448. package/extensions/openclaw-weixin/src/media/media-download.ts +0 -138
  1449. package/extensions/openclaw-weixin/src/media/mime.ts +0 -76
  1450. package/extensions/openclaw-weixin/src/media/silk-transcode.ts +0 -74
  1451. package/extensions/openclaw-weixin/src/messaging/debug-mode.ts +0 -68
  1452. package/extensions/openclaw-weixin/src/messaging/error-notice.ts +0 -36
  1453. package/extensions/openclaw-weixin/src/messaging/inbound.ts +0 -283
  1454. package/extensions/openclaw-weixin/src/messaging/process-message.ts +0 -488
  1455. package/extensions/openclaw-weixin/src/messaging/send-media.ts +0 -76
  1456. package/extensions/openclaw-weixin/src/messaging/send.ts +0 -267
  1457. package/extensions/openclaw-weixin/src/messaging/slash-commands.ts +0 -105
  1458. package/extensions/openclaw-weixin/src/monitor/monitor.ts +0 -225
  1459. package/extensions/openclaw-weixin/src/runtime.ts +0 -67
  1460. package/extensions/openclaw-weixin/src/storage/state-dir.ts +0 -11
  1461. package/extensions/openclaw-weixin/src/storage/sync-buf.ts +0 -79
  1462. package/extensions/openclaw-weixin/src/util/logger.ts +0 -146
  1463. package/extensions/openclaw-weixin/src/util/random.ts +0 -17
  1464. package/extensions/openclaw-weixin/src/util/redact.ts +0 -57
  1465. package/extensions/openclaw-weixin/src/vendor.d.ts +0 -21
  1466. package/extensions/qbagent-mcp-server-x5uselocal-node/index.ts +0 -140
  1467. package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.ts +0 -157
  1468. package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.ts +0 -135
  1469. package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.ts +0 -205
  1470. package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.ts +0 -351
@@ -1,1590 +0,0 @@
1
- /**
2
- * openclaw-telemetry-galileo-embedded service
3
- *
4
- * 负责非全局 OTLP TracerProvider / MeterProvider 的生命周期管理(start / stop)。
5
- * Tracer / Meter 实例通过模块级变量暴露给 index.ts 中注册的 hook handler。
6
- *
7
- * 不使用 NodeSDK(它会全局注册 provider),避免与 diagnostics-otel 等其他插件冲突。
8
- * 同时支持按伽利略协议上报 trace 和 metrics。
9
- *
10
- * 与 openclaw-telemetry-galileo(用户版)的区别:
11
- * - 配置从同级 galileo.config.json 文件读取,而非 pluginConfig / configSchema
12
- * - 适用于开发者封装场景,配置写死在仓库里
13
- */
14
-
15
- import fs from "node:fs";
16
- import os from "node:os";
17
- import path from "node:path";
18
- import { fileURLToPath } from "node:url";
19
- import {
20
- context,
21
- trace,
22
- SpanStatusCode,
23
- ROOT_CONTEXT,
24
- type Tracer,
25
- type Span,
26
- type Context,
27
- SpanKind,
28
- } from "@opentelemetry/api";
29
- import type { Meter, Counter, Histogram } from "@opentelemetry/api";
30
- import type { SeverityNumber } from "@opentelemetry/api-logs";
31
- import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-proto";
32
- import { AggregationTemporalityPreference } from "@opentelemetry/exporter-metrics-otlp-http";
33
- import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-proto";
34
- import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
35
- import { resourceFromAttributes } from "@opentelemetry/resources";
36
- import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
37
- import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
38
- import { BatchSpanProcessor, AlwaysOnSampler } from "@opentelemetry/sdk-trace-base";
39
- import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
40
- import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
41
- import type { OpenClawPluginService } from "openclaw/plugin-sdk/diagnostics-otel";
42
-
43
- // ============================================================================
44
- // 常量
45
- // ============================================================================
46
-
47
- const DEFAULT_SERVICE_NAME = "openclaw";
48
- const TRACER_NAME = "openclaw.telemetry-galileo-embedded";
49
- const METER_NAME_CHAT = "LLMClient";
50
- const METER_NAME_TOOL = "GenAIExecuteTool";
51
- const METER_NAME_AGENT = "GenAIInvokeAgent";
52
-
53
- const DEFAULT_ENDPOINT = "http://otlp.j.woa.com:80";
54
-
55
- /**
56
- * 去掉 target 中第一个 "." 之前的部分。
57
- * 例如 "RPC.galileo.apiserver" → "galileo.apiserver"
58
- */
59
- function trimPlatformPrefix(target: string): string {
60
- const dotIdx = target.indexOf(".");
61
- if (dotIdx < 0) {
62
- return target;
63
- }
64
- return target.slice(dotIdx + 1);
65
- }
66
-
67
- /**
68
- * 获取本机主 IPv4 地址(非 loopback),用于伽利略 resource.instance 字段。
69
- * 优先选择 en0 / eth0 等常见网卡,找不到则返回 os.hostname()。
70
- */
71
- function getLocalIPv4(): string {
72
- const nets = os.networkInterfaces();
73
- const preferredNames = ["en0", "eth0"];
74
- for (const name of preferredNames) {
75
- const list: os.NetworkInterfaceInfo[] | undefined = nets[name];
76
- if (!list) continue;
77
- const entry = list.find((n) => n.family === "IPv4" && !n.internal);
78
- if (entry?.address) {
79
- return entry.address;
80
- }
81
- }
82
- return os.hostname();
83
- }
84
-
85
- // ============================================================================
86
- // 伽利略配置(从配置文件读取)
87
- // ============================================================================
88
-
89
- /** 伽利略通用维度(Resource Attributes) */
90
- export interface GalileoResourceConfig {
91
- target: string;
92
- namespace: string;
93
- env: string;
94
- server: string;
95
- containerName: string;
96
- operator: string;
97
- setName: string;
98
- }
99
-
100
- /** 伽利略 gen_ai 配置 */
101
- export interface GalileoGenAiConfig {
102
- system: string;
103
- appName: string;
104
- agentName: string;
105
- agentId: string;
106
- }
107
-
108
- /** 伽利略完整配置 */
109
- export interface GalileoConfig {
110
- enabled: boolean;
111
- endpoint: string;
112
- resource: GalileoResourceConfig;
113
- genAi: GalileoGenAiConfig;
114
- trace: {
115
- enabled: boolean;
116
- };
117
- metrics: {
118
- enabled: boolean;
119
- };
120
- logs: {
121
- enabled: boolean;
122
- /** 日志文件路径,支持 {date} 占位符(替换为 YYYY-MM-DD)。
123
- * 默认为 /tmp/openclaw/openclaw-{date}.log */
124
- filePath: string;
125
- /** 最低日志级别(仅上报该级别及以上的日志)。
126
- * 可选值:TRACE | DEBUG | INFO | WARN | ERROR | FATAL
127
- * 默认为 "INFO" */
128
- level: string;
129
- };
130
- /** 用户 ID,会写入 trace 和 metrics 的 gen_ai.user.id 属性。
131
- * 可通过配置文件预设,也可运行时通过 setUserId() 动态覆盖。 */
132
- userId: string;
133
- /** 自定义属性,会写入 trace span 的 attributes 中。
134
- * key-value 形式,value 支持 string / number / boolean。
135
- * 可通过配置文件预设,也可运行时通过 setCustomAttributes() 动态合并。 */
136
- customAttributes: Record<string, string | number | boolean>;
137
- }
138
-
139
- /**
140
- * 从同级 galileo.config.json 文件加载配置。
141
- * 文件路径相对于当前模块所在目录的上级(即插件根目录)。
142
- */
143
- function loadGalileoConfigFromFile(): GalileoConfig {
144
- const defaults: GalileoConfig = {
145
- enabled: true,
146
- endpoint: process.env.TRACE_LOGGER_ENDPOINT || DEFAULT_ENDPOINT,
147
- resource: {
148
- target: "",
149
- namespace: "Development",
150
- env: "test",
151
- server: "",
152
- containerName: "",
153
- operator: "",
154
- setName: "",
155
- },
156
- genAi: {
157
- system: "openclaw",
158
- appName: "openclaw",
159
- agentName: "openclaw-agent",
160
- agentId: "openclaw-agent-001",
161
- },
162
- trace: { enabled: true },
163
- metrics: { enabled: true },
164
- logs: { enabled: true, filePath: "", level: "INFO" },
165
- userId: "",
166
- customAttributes: {},
167
- };
168
-
169
- try {
170
- // 定位到插件根目录下的 galileo.config.json
171
- const __filename = fileURLToPath(import.meta.url);
172
- const __dirname = path.dirname(__filename);
173
- const configPath = path.resolve(__dirname, "..", "galileo.config.json");
174
-
175
- if (!fs.existsSync(configPath)) {
176
- console.warn(
177
- "[openclaw-telemetry-galileo-embedded] galileo.config.json 未找到,使用默认配置",
178
- );
179
- return defaults;
180
- }
181
-
182
- const raw = JSON.parse(fs.readFileSync(configPath, "utf-8"));
183
-
184
- // 支持 { galileo: { ... } } 和直接 { enabled, endpoint, ... } 两种格式
185
- const cfg = raw.galileo ?? raw;
186
- const resource = cfg.resource ?? {};
187
- const genAi = cfg.genAi ?? {};
188
- const traceCfg = cfg.trace ?? {};
189
- const metricsCfg = cfg.metrics ?? {};
190
- const logsCfg = cfg.logs ?? {};
191
-
192
- return {
193
- enabled: cfg.enabled !== false,
194
- endpoint: cfg.endpoint || process.env.TRACE_LOGGER_ENDPOINT || DEFAULT_ENDPOINT,
195
- resource: {
196
- target: resource.target || "",
197
- namespace: resource.namespace || "Development",
198
- env: resource.env || "test",
199
- server: resource.server || "",
200
- containerName: resource.containerName || "",
201
- operator: resource.operator || "",
202
- setName: resource.setName || "",
203
- },
204
- genAi: {
205
- system: genAi.system || "openclaw",
206
- appName: genAi.appName || "openclaw",
207
- agentName: genAi.agentName || "openclaw-agent",
208
- agentId: genAi.agentId || "openclaw-agent-001",
209
- },
210
- trace: {
211
- enabled: traceCfg.enabled !== false,
212
- },
213
- metrics: {
214
- enabled: metricsCfg.enabled !== false,
215
- },
216
- logs: {
217
- enabled: logsCfg.enabled !== false,
218
- filePath: logsCfg.filePath || "",
219
- level: logsCfg.level || "INFO",
220
- },
221
- userId: cfg.userId || "",
222
- customAttributes:
223
- cfg.customAttributes && typeof cfg.customAttributes === "object"
224
- ? ({ ...cfg.customAttributes } as Record<string, string | number | boolean>)
225
- : {},
226
- };
227
- } catch (err) {
228
- console.error("[openclaw-telemetry-galileo-embedded] 读取 galileo.config.json 失败:", err);
229
- return defaults;
230
- }
231
- }
232
-
233
- let _galileoConfig: GalileoConfig | null = null;
234
-
235
- // 缓冲区:在 _galileoConfig 初始化前暂存 setUserId / setCustomAttributes 的调用,
236
- // 等 service.start() 完成配置加载后再 replay。
237
- let _pendingUserId: string | null = null;
238
- let _pendingCustomAttributes: Record<string, string | number | boolean> | null = null;
239
-
240
- /** 获取伽利略配置 */
241
- export function getGalileoConfig(): GalileoConfig | null {
242
- return _galileoConfig;
243
- }
244
-
245
- /**
246
- * 运行时动态设置用户 ID。
247
- * 设置后会覆盖配置文件中的 userId,后续创建的 trace span 和 metrics 上报都会使用该值。
248
- * 如果 service 尚未 start(_galileoConfig 为 null),会暂存到缓冲区,待 start 后自动 replay。
249
- */
250
- export function setUserId(userId: string): void {
251
- if (!_galileoConfig) {
252
- _pendingUserId = userId;
253
- return;
254
- }
255
- _galileoConfig.userId = userId;
256
- }
257
-
258
- /** 获取当前用户 ID(优先返回已生效的值,fallback 到缓冲区中的值) */
259
- export function getUserId(): string {
260
- return _galileoConfig?.userId || _pendingUserId || "";
261
- }
262
-
263
- /**
264
- * 运行时动态设置自定义属性。
265
- * 新属性会与已有的 customAttributes 合并(同名 key 会被覆盖)。
266
- * 设置后,后续创建的 trace span 都会携带这些属性。
267
- * 如果 service 尚未 start(_galileoConfig 为 null),会暂存到缓冲区,待 start 后自动 replay。
268
- */
269
- export function setCustomAttributes(attrs: Record<string, string | number | boolean>): void {
270
- if (!_galileoConfig) {
271
- _pendingCustomAttributes = { ...(_pendingCustomAttributes ?? {}), ...attrs };
272
- return;
273
- }
274
- Object.assign(_galileoConfig.customAttributes, attrs);
275
- }
276
-
277
- /** 获取当前自定义属性(优先返回已生效的值,fallback 到缓冲区中的值) */
278
- export function getCustomAttributes(): Record<string, string | number | boolean> {
279
- if (_galileoConfig) {
280
- return _galileoConfig.customAttributes;
281
- }
282
- return _pendingCustomAttributes ?? {};
283
- }
284
-
285
- // ============================================================================
286
- // 模块级状态 — 供 hook handler 使用
287
- // ============================================================================
288
-
289
- let _tracerProvider: NodeTracerProvider | null = null;
290
- let _meterProvider: MeterProvider | null = null;
291
- let _logProvider: LoggerProvider | null = null;
292
- let _stopFileWatcher: (() => void) | null = null;
293
- let _tracer: Tracer | null = null;
294
-
295
- // ============================================================================
296
- // 日志级别映射(OpenClaw 日志级别 → OTel SeverityNumber)
297
- // ============================================================================
298
-
299
- const LOG_SEVERITY_MAP: Record<string, SeverityNumber> = {
300
- TRACE: 1 as SeverityNumber,
301
- DEBUG: 5 as SeverityNumber,
302
- INFO: 9 as SeverityNumber,
303
- WARN: 13 as SeverityNumber,
304
- ERROR: 17 as SeverityNumber,
305
- FATAL: 21 as SeverityNumber,
306
- };
307
-
308
- /**
309
- * 日志级别优先级映射(数值越大优先级越高)。
310
- * 用于 minLevel 过滤:只有 >= minLevel 优先级的日志才会被上报。
311
- */
312
- const LOG_LEVEL_PRIORITY: Record<string, number> = {
313
- TRACE: 0,
314
- DEBUG: 1,
315
- INFO: 2,
316
- WARN: 3,
317
- ERROR: 4,
318
- FATAL: 5,
319
- };
320
-
321
- // --- Chat Metrics 指标实例 (LLMClient 监控项) ---
322
- let _chatRequestCntCounter: Counter | null = null;
323
- let _chatInputTokensHistogram: Histogram | null = null;
324
- let _chatOutputTokensHistogram: Histogram | null = null;
325
- let _chatFirstTokenLatencyHistogram: Histogram | null = null;
326
- let _chatOperationDurationHistogram: Histogram | null = null;
327
- let _chatTimePerOutputTokenHistogram: Histogram | null = null;
328
- let _chatOutTokensPerSecondHistogram: Histogram | null = null;
329
-
330
- // --- Tool Metrics 指标实例 (GenAIExecuteTool 监控项) ---
331
- let _toolRequestCntCounter: Counter | null = null;
332
- let _toolOperationDurationHistogram: Histogram | null = null;
333
-
334
- // --- Agent Metrics 指标实例 (GenAIInvokeAgent 监控项) ---
335
- let _agentRequestCntCounter: Counter | null = null;
336
- let _agentInputTokensHistogram: Histogram | null = null;
337
- let _agentOutputTokensHistogram: Histogram | null = null;
338
- let _agentFirstTokenLatencyHistogram: Histogram | null = null;
339
- let _agentOperationDurationHistogram: Histogram | null = null;
340
-
341
- /** 获取当前 tracer(Provider 未启动时返回 null) */
342
- export function getTracer(): Tracer | null {
343
- return _tracer;
344
- }
345
-
346
- // ============================================================================
347
- // Metrics 上报接口
348
- // ============================================================================
349
-
350
- /** Chat 类型指标数据 */
351
- export interface ChatMetricsData {
352
- provider: string;
353
- requestModel: string;
354
- responseModel: string;
355
- isStream: boolean;
356
- userId: string;
357
- agentName: string;
358
- agentId: string;
359
- appName: string;
360
- promptTokens: number;
361
- completionTokens: number;
362
- firstTokenLatency: number;
363
- operationDuration: number;
364
- codeType?: string;
365
- code?: string;
366
- errorType?: string;
367
- firstCode?: string;
368
- lastCode?: string;
369
- userExt1?: string;
370
- userExt2?: string;
371
- userExt3?: string;
372
- }
373
-
374
- /** Tool 类型指标数据 */
375
- export interface ToolMetricsData {
376
- provider: string;
377
- toolName: string;
378
- userId: string;
379
- agentName: string;
380
- agentId: string;
381
- appName: string;
382
- operationDuration: number;
383
- codeType?: string;
384
- code?: string;
385
- errorType?: string;
386
- userExt1?: string;
387
- userExt2?: string;
388
- userExt3?: string;
389
- }
390
-
391
- /** Agent 类型指标数据 */
392
- export interface AgentMetricsData {
393
- provider: string;
394
- userId: string;
395
- agentName: string;
396
- agentId: string;
397
- appName: string;
398
- isStream: boolean;
399
- promptTokens: number;
400
- completionTokens: number;
401
- firstTokenLatency: number;
402
- operationDuration: number;
403
- errorType?: string;
404
- }
405
-
406
- /**
407
- * 上报 Chat 类型 metrics 到伽利略
408
- */
409
- export function reportChatMetrics(data: ChatMetricsData): void {
410
- if (!_chatRequestCntCounter || !_galileoConfig?.metrics.enabled) {
411
- return;
412
- }
413
-
414
- const cfg = _galileoConfig.genAi;
415
-
416
- const dimensions: Record<string, string | boolean> = {
417
- "gen_ai.operation.name": "chat",
418
- "gen_ai.system": data.provider || cfg.system,
419
- "gen_ai.app.name": data.appName || cfg.appName,
420
- "gen_ai.user.id": data.userId || "",
421
- "gen_ai.agent.name": data.agentName || cfg.agentName,
422
- "gen_ai.agent.id": data.agentId || cfg.agentId,
423
- "gen_ai.request.model": data.requestModel || "",
424
- "gen_ai.response.model": data.responseModel || data.requestModel || "",
425
- "gen_ai.is_stream": data.isStream,
426
- user_ext1: data.userExt1 || "",
427
- user_ext2: data.userExt2 || "",
428
- user_ext3: data.userExt3 || "",
429
- };
430
-
431
- if (data.errorType) {
432
- dimensions["error.type"] = data.errorType;
433
- }
434
-
435
- _chatRequestCntCounter.add(1, dimensions);
436
-
437
- if (data.promptTokens > 0) {
438
- _chatInputTokensHistogram?.record(data.promptTokens, dimensions);
439
- }
440
- if (data.completionTokens > 0) {
441
- _chatOutputTokensHistogram?.record(data.completionTokens, dimensions);
442
- }
443
- if (data.firstTokenLatency > 0) {
444
- _chatFirstTokenLatencyHistogram?.record(data.firstTokenLatency, dimensions);
445
- }
446
- if (data.operationDuration > 0) {
447
- _chatOperationDurationHistogram?.record(data.operationDuration, dimensions);
448
- }
449
-
450
- const tps = calcTokensPerSecond(data);
451
- if (tps > 0) {
452
- _chatOutTokensPerSecondHistogram?.record(tps, dimensions);
453
- _chatTimePerOutputTokenHistogram?.record(1 / tps, dimensions);
454
- }
455
- }
456
-
457
- /**
458
- * 上报 Tool 类型 metrics 到伽利略
459
- */
460
- export function reportToolMetrics(data: ToolMetricsData): void {
461
- if (!_toolRequestCntCounter || !_galileoConfig?.metrics.enabled) {
462
- return;
463
- }
464
-
465
- const cfg = _galileoConfig.genAi;
466
-
467
- const dimensions: Record<string, string> = {
468
- "gen_ai.system": data.provider || cfg.system,
469
- "gen_ai.app.name": data.appName || cfg.appName,
470
- "gen_ai.user.id": data.userId || "",
471
- "gen_ai.tool.name": data.toolName || "",
472
- "gen_ai.agent.name": data.agentName || cfg.agentName,
473
- "gen_ai.agent.id": data.agentId || cfg.agentId,
474
- code_type: data.codeType || "success",
475
- code: data.code || "",
476
- user_ext1: data.userExt1 || "",
477
- user_ext2: data.userExt2 || "",
478
- user_ext3: data.userExt3 || "",
479
- };
480
-
481
- if (data.errorType) {
482
- dimensions["error.type"] = data.errorType;
483
- }
484
-
485
- _toolRequestCntCounter.add(1, dimensions);
486
-
487
- if (data.operationDuration > 0) {
488
- _toolOperationDurationHistogram?.record(data.operationDuration, dimensions);
489
- }
490
- }
491
-
492
- /**
493
- * 上报 Agent 类型 metrics 到伽利略
494
- */
495
- export function reportAgentMetrics(data: AgentMetricsData): void {
496
- if (!_agentRequestCntCounter || !_galileoConfig?.metrics.enabled) {
497
- return;
498
- }
499
-
500
- const cfg = _galileoConfig.genAi;
501
-
502
- const dimensions: Record<string, string | boolean> = {
503
- "gen_ai.system": data.provider || cfg.system,
504
- "gen_ai.app.name": data.appName || cfg.appName,
505
- "gen_ai.user.id": data.userId || "",
506
- "gen_ai.agent.name": data.agentName || cfg.agentName,
507
- "gen_ai.agent.id": data.agentId || cfg.agentId,
508
- "gen_ai.is_stream": data.isStream,
509
- };
510
-
511
- if (data.errorType) {
512
- dimensions["error.type"] = data.errorType;
513
- }
514
-
515
- _agentRequestCntCounter.add(1, dimensions);
516
-
517
- if (data.promptTokens > 0) {
518
- _agentInputTokensHistogram?.record(data.promptTokens, dimensions);
519
- }
520
- if (data.completionTokens > 0) {
521
- _agentOutputTokensHistogram?.record(data.completionTokens, dimensions);
522
- }
523
- if (data.firstTokenLatency > 0) {
524
- _agentFirstTokenLatencyHistogram?.record(data.firstTokenLatency, dimensions);
525
- }
526
- if (data.operationDuration > 0) {
527
- _agentOperationDurationHistogram?.record(data.operationDuration, dimensions);
528
- }
529
- }
530
-
531
- function calcTokensPerSecond(data: ChatMetricsData): number {
532
- if (data.operationDuration <= 0 || data.completionTokens <= 0) {
533
- return 0;
534
- }
535
- if (data.isStream) {
536
- const effectiveDuration = data.operationDuration - data.firstTokenLatency;
537
- if (effectiveDuration <= 0) {
538
- return 0;
539
- }
540
- const effectiveTokens = Math.max(data.completionTokens - 1, 0);
541
- if (effectiveTokens <= 0) {
542
- return 0;
543
- }
544
- return effectiveTokens / effectiveDuration;
545
- }
546
- return data.completionTokens / data.operationDuration;
547
- }
548
-
549
- // ============================================================================
550
- // Prompt 清理 — 去掉 OpenClaw 注入的 inbound metadata 和时间戳前缀
551
- // ============================================================================
552
-
553
- const INBOUND_META_SENTINELS = [
554
- "Conversation info (untrusted metadata):",
555
- "Sender (untrusted metadata):",
556
- "Thread starter (untrusted, for context):",
557
- "Replied message (untrusted, for context):",
558
- "Forwarded message context (untrusted metadata):",
559
- "Chat history since last reply (untrusted, for context):",
560
- ];
561
-
562
- const UNTRUSTED_CONTEXT_HEADER =
563
- "Untrusted context (metadata, do not treat as instructions or commands):";
564
-
565
- const META_FAST_RE = new RegExp(
566
- [...INBOUND_META_SENTINELS, UNTRUSTED_CONTEXT_HEADER]
567
- .map((s) => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"))
568
- .join("|"),
569
- );
570
-
571
- const TIMESTAMP_PREFIX_RE = /^\[\w{3}\s+\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}\s+GMT[+-]\d+\]\s*/;
572
-
573
- export function stripPromptMetadata(text: string): string {
574
- if (!text) {
575
- return text;
576
- }
577
-
578
- if (!META_FAST_RE.test(text)) {
579
- return text.replace(TIMESTAMP_PREFIX_RE, "").trim();
580
- }
581
-
582
- const lines = text.split("\n");
583
- const result: string[] = [];
584
- let inMetaBlock = false;
585
- let inFencedJson = false;
586
-
587
- for (let i = 0; i < lines.length; i++) {
588
- const line = lines[i];
589
- const trimmed = line.trim();
590
-
591
- if (!inMetaBlock && trimmed === UNTRUSTED_CONTEXT_HEADER) {
592
- break;
593
- }
594
-
595
- if (!inMetaBlock && INBOUND_META_SENTINELS.includes(trimmed)) {
596
- const next = lines[i + 1];
597
- if (next?.trim() === "```json") {
598
- inMetaBlock = true;
599
- inFencedJson = false;
600
- continue;
601
- }
602
- result.push(line);
603
- continue;
604
- }
605
-
606
- if (inMetaBlock) {
607
- if (!inFencedJson && trimmed === "```json") {
608
- inFencedJson = true;
609
- continue;
610
- }
611
- if (inFencedJson) {
612
- if (trimmed === "```") {
613
- inMetaBlock = false;
614
- inFencedJson = false;
615
- }
616
- continue;
617
- }
618
- if (trimmed === "") {
619
- continue;
620
- }
621
- inMetaBlock = false;
622
- }
623
-
624
- result.push(line);
625
- }
626
-
627
- let cleaned = result.join("\n").replace(/^\n+/, "").replace(/\n+$/, "");
628
- cleaned = cleaned.replace(TIMESTAMP_PREFIX_RE, "");
629
- return cleaned.trim();
630
- }
631
-
632
- // ============================================================================
633
- // Span 上下文管理
634
- // ============================================================================
635
-
636
- /** activeSpan 条目,附带创建时间用于 TTL 清理 */
637
- interface ActiveSpanEntry {
638
- span: Span;
639
- ctx: Context;
640
- createdAt: number;
641
- }
642
-
643
- const activeSpans = new Map<string, ActiveSpanEntry>();
644
- const llmSeqByRun = new Map<string, number>();
645
-
646
- /** 孤儿 span 最大存活时间(10 分钟),超时后自动结束并清理 */
647
- const SPAN_TTL_MS = 10 * 60 * 1000;
648
-
649
- /** 定期清理超时的孤儿 span,防止 activeSpans 无限增长导致内存泄漏 */
650
- let _spanCleanupTimer: ReturnType<typeof setInterval> | null = null;
651
-
652
- function startSpanCleanupTimer(): void {
653
- if (_spanCleanupTimer) return;
654
- _spanCleanupTimer = setInterval(() => {
655
- const now = Date.now();
656
- const keysToDelete: string[] = [];
657
- activeSpans.forEach((entry, key) => {
658
- if (now - entry.createdAt > SPAN_TTL_MS) {
659
- keysToDelete.push(key);
660
- }
661
- });
662
- for (const key of keysToDelete) {
663
- const entry = activeSpans.get(key);
664
- if (entry) {
665
- entry.span.setStatus({
666
- code: SpanStatusCode.ERROR,
667
- message: "span TTL expired (orphaned)",
668
- });
669
- entry.span.end();
670
- activeSpans.delete(key);
671
- }
672
- }
673
- }, 60_000);
674
- // 不阻止进程退出
675
- if (_spanCleanupTimer && typeof (_spanCleanupTimer as any).unref === "function") {
676
- (_spanCleanupTimer as any).unref();
677
- }
678
- }
679
-
680
- function stopSpanCleanupTimer(): void {
681
- if (_spanCleanupTimer) {
682
- clearInterval(_spanCleanupTimer);
683
- _spanCleanupTimer = null;
684
- }
685
- }
686
-
687
- export function spanKey(...parts: (string | undefined)[]): string {
688
- return parts.filter(Boolean).join(":");
689
- }
690
-
691
- export function setActiveSpan(key: string, span: Span, parentCtx: Context): void {
692
- activeSpans.set(key, { span, ctx: trace.setSpan(parentCtx, span), createdAt: Date.now() });
693
- }
694
-
695
- export function getActiveSpanEntry(key: string): { span: Span; ctx: Context } | undefined {
696
- return activeSpans.get(key);
697
- }
698
-
699
- export function removeActiveSpan(key: string): { span: Span; ctx: Context } | undefined {
700
- const entry = activeSpans.get(key);
701
- activeSpans.delete(key);
702
- return entry;
703
- }
704
-
705
- export function findActiveSpanByAgentId(agentId: string): { span: Span; ctx: Context } | undefined {
706
- if (!agentId) return undefined;
707
- const needle = `:agent:${agentId}:`;
708
- for (const [key, entry] of activeSpans) {
709
- if (key.startsWith("agent:") && key.includes(needle)) {
710
- return entry;
711
- }
712
- }
713
- return undefined;
714
- }
715
-
716
- /**
717
- * 根据日志 bindings 中的上下文信息(sessionKey / sessionId / runId)
718
- * 在 activeSpans 中精确查找关联的 span。
719
- *
720
- * 查找优先级:
721
- * 1. sessionKey → agent:{sessionKey}(最精确,直接匹配 agent span)
722
- * 2. sessionId → 遍历 activeSpans 查找包含该 sessionId 的 agent span
723
- * 3. runId → 遍历 activeSpans 查找 llm:{runId}:* 或 tool:{runId}:* 的 span
724
- * 4. 均未命中时返回 undefined(不做 fallback,避免错误关联)
725
- */
726
- function findSpanFromLogBindings(
727
- bindings: Record<string, unknown> | undefined,
728
- ): { span: Span; ctx: Context } | undefined {
729
- if (!bindings) return undefined;
730
-
731
- // 优先使用 sessionKey 精确匹配 agent span
732
- const sessionKey = typeof bindings.sessionKey === "string" ? bindings.sessionKey : undefined;
733
- if (sessionKey) {
734
- const entry = activeSpans.get(spanKey("agent", sessionKey));
735
- if (entry) return entry;
736
- // 也可能是 subagent span
737
- const subEntry = activeSpans.get(spanKey("subagent", sessionKey));
738
- if (subEntry) return subEntry;
739
- }
740
-
741
- // 其次用 sessionId 模糊匹配(遍历 agent:* 类型的 span)
742
- const sessionId = typeof bindings.sessionId === "string" ? bindings.sessionId : undefined;
743
- if (sessionId) {
744
- for (const [key, entry] of activeSpans) {
745
- if (key.startsWith("agent:") && key.includes(sessionId)) {
746
- return entry;
747
- }
748
- }
749
- }
750
-
751
- // 最后用 runId 匹配 llm / tool span
752
- const runId = typeof bindings.runId === "string" ? bindings.runId : undefined;
753
- if (runId) {
754
- // 优先匹配 llm span(较常见)
755
- const llmPrefix = `llm:${runId}:`;
756
- const toolPrefix = `tool:${runId}:`;
757
- for (const [key, entry] of activeSpans) {
758
- if (key.startsWith(llmPrefix) || key.startsWith(toolPrefix)) {
759
- return entry;
760
- }
761
- }
762
- }
763
-
764
- return undefined;
765
- }
766
-
767
- export function nextLlmSeq(runId: string): number {
768
- const seq = (llmSeqByRun.get(runId) ?? 0) + 1;
769
- llmSeqByRun.set(runId, seq);
770
- return seq;
771
- }
772
-
773
- /** 获取指定 runId 当前的 LLM seq 值(不递增),未找到返回 0 */
774
- export function getLlmSeq(runId: string): number {
775
- return llmSeqByRun.get(runId) ?? 0;
776
- }
777
-
778
- export function clearLlmSeq(runId: string): void {
779
- llmSeqByRun.delete(runId);
780
- }
781
-
782
- export function cleanupOrphanedLlmSeqs(): void {
783
- // 先收集需要删除的 key,避免在 forEach 中直接修改当前 Map
784
- const orphanedRunIds: string[] = [];
785
- for (const [runId] of llmSeqByRun) {
786
- const prefix = `llm:${runId}:`;
787
- let hasActive = false;
788
- for (const key of activeSpans.keys()) {
789
- if (key.startsWith(prefix)) {
790
- hasActive = true;
791
- break;
792
- }
793
- }
794
- if (!hasActive) {
795
- orphanedRunIds.push(runId);
796
- }
797
- }
798
- for (const runId of orphanedRunIds) {
799
- llmSeqByRun.delete(runId);
800
- }
801
- }
802
-
803
- /** 数字键正则(提取 tslog 的 "0", "1", "2" ... 位置参数) */
804
- const NUMERIC_KEY_RE = /^\d+$/;
805
-
806
- /** 安全地将值序列化为字符串,用于 OTel 属性 */
807
- function safeStringify(value: unknown): string {
808
- try {
809
- return JSON.stringify(value);
810
- } catch {
811
- return String(value);
812
- }
813
- }
814
-
815
- export function safeAttr(value: unknown, maxLen = 64_000): string {
816
- if (value === undefined || value === null) {
817
- return "";
818
- }
819
- if (typeof value === "string") {
820
- return value.length > maxLen ? value.slice(0, maxLen) + "...(truncated)" : value;
821
- }
822
- try {
823
- const s = JSON.stringify(value);
824
- return s.length > maxLen ? s.slice(0, maxLen) + "...(truncated)" : s;
825
- } catch {
826
- return String(value);
827
- }
828
- }
829
-
830
- // ============================================================================
831
- // 方案C:日志文件轮询 + 同步读取
832
- // ============================================================================
833
-
834
- /** 日志文件路径中的 {date} 占位符默认值 */
835
- const DEFAULT_LOG_FILE_PATTERN = "/tmp/openclaw/openclaw-{date}.log";
836
-
837
- /** offset 持久化文件的后缀名 */
838
- const OFFSET_FILE_SUFFIX = ".galileo-offset";
839
-
840
- /**
841
- * 将路径中的 {date} 占位符替换为当前日期(YYYY-MM-DD 格式)
842
- */
843
- function resolveLogFilePath(pattern: string): string {
844
- const now = new Date();
845
- const year = now.getFullYear();
846
- const month = String(now.getMonth() + 1).padStart(2, "0");
847
- const day = String(now.getDate()).padStart(2, "0");
848
- const dateStr = `${year}-${month}-${day}`;
849
- return pattern.replace(/\{date\}/g, dateStr);
850
- }
851
-
852
- /**
853
- * 根据日志文件路径生成对应的 offset 持久化文件路径。
854
- * 例如 /tmp/openclaw/openclaw-2026-03-25.log → /tmp/openclaw/openclaw-2026-03-25.log.galileo-offset
855
- */
856
- function getOffsetFilePath(logFilePath: string): string {
857
- return logFilePath + OFFSET_FILE_SUFFIX;
858
- }
859
-
860
- /**
861
- * 从 offset 文件中加载上次保存的偏移量。
862
- * 如果文件不存在、格式异常或偏移量超过当前日志文件大小,则返回 fallback 值。
863
- *
864
- * @param logFilePath 当前日志文件路径
865
- * @param fallback 无法恢复时的回退值(通常为当前文件大小或 0)
866
- */
867
- function loadPersistedOffset(logFilePath: string, fallback: number): number {
868
- const offsetPath = getOffsetFilePath(logFilePath);
869
- try {
870
- const content = fs.readFileSync(offsetPath, "utf-8").trim();
871
- const offset = Number(content);
872
- if (!Number.isFinite(offset) || offset < 0) {
873
- return fallback;
874
- }
875
- // 校验:偏移量不能超过当前文件大小(文件可能被截断或重建)
876
- try {
877
- const stat = fs.statSync(logFilePath);
878
- if (offset > stat.size) {
879
- process.stdout.write(
880
- `[galileo-file-watch] 持久化偏移(${offset})超过文件大小(${stat.size}),重置为文件末尾\n`,
881
- );
882
- return stat.size;
883
- }
884
- } catch {
885
- // 日志文件不存在,从 0 开始
886
- return 0;
887
- }
888
- return offset;
889
- } catch {
890
- // offset 文件不存在或读取失败,使用 fallback
891
- return fallback;
892
- }
893
- }
894
-
895
- /**
896
- * 将当前偏移量持久化到 offset 文件。
897
- * 使用 writeFileSync 确保写入完成(内容很小,性能影响忽略不计)。
898
- */
899
- function savePersistedOffset(logFilePath: string, offset: number): void {
900
- const offsetPath = getOffsetFilePath(logFilePath);
901
- try {
902
- fs.writeFileSync(offsetPath, String(offset), "utf-8");
903
- } catch {
904
- // offset 文件写入失败不阻塞主流程,仅影响下次重启时的偏移量恢复
905
- }
906
- }
907
-
908
- /**
909
- * 方案C 核心实现:轮询 + readline 流式读取日志文件新增行。
910
- *
911
- * 工作原理:
912
- * 1. 打开日志文件,从持久化的偏移量(或文件末尾)开始处理新增内容
913
- * 2. 使用定时轮询(默认 500ms)检测文件大小变化
914
- * 3. 发现新增内容时,同步读取新增部分并逐行解析为 JSON
915
- * 4. 每次处理完新行后,将当前偏移量持久化到 .galileo-offset 文件
916
- * 5. 支持日志文件日期滚动:检测 {date} 路径变化时自动切换
917
- *
918
- * 选择轮询而非 fs.watch 的原因:
919
- * - fs.watch 在 macOS kqueue 下对追加写入的可靠性依赖具体文件系统实现
920
- * - fs.watch persistent=false 在嵌入式插件环境下可能导致 watcher 被 GC
921
- * - 轮询方案简单可靠,500ms 间隔对日志采集场景完全够用
922
- *
923
- * @returns 停止函数,调用后清理所有 timer
924
- */
925
- function startLogFileWatcher(
926
- filePathPattern: string,
927
- emitLog: (record: Record<string, unknown>) => void,
928
- ): () => void {
929
- let currentFilePath = resolveLogFilePath(filePathPattern);
930
- let fileOffset = 0;
931
- let stopped = false;
932
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- DOM lib 与 @types/node 对 setInterval 返回值类型冲突
933
- let pollTimer: any = null;
934
- let lineCount = 0;
935
-
936
- /**
937
- * 同步读取文件中从 fileOffset 到当前末尾的新增内容,逐行解析
938
- */
939
- function processNewLines(): void {
940
- if (stopped) return;
941
-
942
- try {
943
- // 获取当前文件大小
944
- let stat: fs.Stats;
945
- try {
946
- stat = fs.statSync(currentFilePath);
947
- } catch {
948
- // 文件可能不存在(还未创建),稍后重试
949
- return;
950
- }
951
-
952
- const currentSize = stat.size;
953
- if (currentSize <= fileOffset) {
954
- if (currentSize < fileOffset) {
955
- // 文件被截断(例如日志轮转),重置偏移
956
- process.stdout.write(`[galileo-file-watch] 文件被截断,重置偏移: ${fileOffset} → 0\n`);
957
- fileOffset = 0;
958
- }
959
- return;
960
- }
961
-
962
- // 同步读取新增部分(避免 stream 异步回调的复杂性和竞态问题)
963
- // 限制单次最大读取量为 2MB,防止日志堆积时一次性分配巨大 Buffer 导致 OOM
964
- const MAX_READ_BYTES = 2 * 1024 * 1024;
965
- const bytesToRead = Math.min(currentSize - fileOffset, MAX_READ_BYTES);
966
- const fd = fs.openSync(currentFilePath, "r");
967
- try {
968
- const buf = Buffer.alloc(bytesToRead);
969
- fs.readSync(fd, buf, 0, bytesToRead, fileOffset);
970
- const chunk = buf.toString("utf-8");
971
-
972
- // 找到最后一个换行符的位置,判断是否存在不完整的尾行。
973
- // 如果 chunk 以 \n 结尾,说明所有行都是完整的;
974
- // 否则最后一段内容可能是正在写入的半截 JSON,需要保留到下次轮询重新读取。
975
- const lastNewline = chunk.lastIndexOf("\n");
976
-
977
- let completePart: string;
978
- if (lastNewline === -1) {
979
- // 整个 chunk 里没有换行符 → 全部都是不完整行,不消费任何内容
980
- // fileOffset 保持不变,等下次轮询时文件写入更多内容后再读
981
- return;
982
- } else {
983
- // 只处理到最后一个换行符为止的完整行
984
- completePart = chunk.slice(0, lastNewline + 1);
985
- // 更新偏移量:只推进已确认完整行的字节数
986
- fileOffset += Buffer.byteLength(completePart, "utf-8");
987
- }
988
-
989
- // 持久化偏移量(每次处理完完整行后保存,确保重启时不丢失进度)
990
- savePersistedOffset(currentFilePath, fileOffset);
991
-
992
- // 逐行解析
993
- const lines = completePart.split("\n");
994
- for (const line of lines) {
995
- const trimmed = line.trim();
996
- if (!trimmed) continue;
997
-
998
- try {
999
- const record = JSON.parse(trimmed) as Record<string, unknown>;
1000
- emitLog(record);
1001
- lineCount++;
1002
- } catch {
1003
- // 非 JSON 行跳过(格式异常的行,非不完整写入导致)
1004
- }
1005
- }
1006
- } finally {
1007
- fs.closeSync(fd);
1008
- }
1009
- } catch (err) {
1010
- // 读取失败不阻塞,下次轮询重试
1011
- process.stdout.write(`[galileo-file-watch] processNewLines error: ${err}\n`);
1012
- }
1013
- }
1014
-
1015
- /**
1016
- * 初始化:定位文件末尾,开始轮询
1017
- */
1018
- function startPolling(): void {
1019
- if (stopped) return;
1020
-
1021
- // 确保目录存在
1022
- const dir = path.dirname(currentFilePath);
1023
- try {
1024
- fs.mkdirSync(dir, { recursive: true });
1025
- } catch {
1026
- // 目录可能已存在
1027
- }
1028
-
1029
- // 尝试从持久化文件恢复偏移量;首次启动时 fallback 到文件末尾(只处理新增内容)
1030
- try {
1031
- const stat = fs.statSync(currentFilePath);
1032
- const fallbackOffset = stat.size;
1033
- fileOffset = loadPersistedOffset(currentFilePath, fallbackOffset);
1034
- if (fileOffset < fallbackOffset) {
1035
- process.stdout.write(
1036
- `[galileo-file-watch] 从持久化偏移恢复: ${currentFilePath}, 偏移: ${fileOffset} (文件大小: ${fallbackOffset},将补采 ${fallbackOffset - fileOffset} 字节)\n`,
1037
- );
1038
- } else {
1039
- process.stdout.write(
1040
- `[galileo-file-watch] 开始监听: ${currentFilePath}, 初始偏移: ${fileOffset}\n`,
1041
- );
1042
- }
1043
- } catch {
1044
- fileOffset = 0;
1045
- process.stdout.write(`[galileo-file-watch] 文件暂不存在,等待创建: ${currentFilePath}\n`);
1046
- }
1047
-
1048
- // 每 1000ms 轮询一次文件大小变化
1049
- pollTimer = setInterval(() => {
1050
- if (stopped) return;
1051
-
1052
- // 检查日期滚动
1053
- if (filePathPattern.includes("{date}")) {
1054
- const newPath = resolveLogFilePath(filePathPattern);
1055
- if (newPath !== currentFilePath) {
1056
- process.stdout.write(
1057
- `[galileo-file-watch] 日志文件日期滚动: ${currentFilePath} → ${newPath}\n`,
1058
- );
1059
- currentFilePath = newPath;
1060
- // 日期滚动后,尝试从新文件的持久化偏移恢复(通常为 0)
1061
- fileOffset = loadPersistedOffset(newPath, 0);
1062
- }
1063
- }
1064
-
1065
- processNewLines();
1066
- }, 1000);
1067
-
1068
- // 确保 timer 不阻止进程退出(Node.js 环境下 setInterval 返回 Timeout 对象)
1069
- if (pollTimer && typeof pollTimer.unref === "function") {
1070
- pollTimer.unref();
1071
- }
1072
- }
1073
-
1074
- // 启动轮询
1075
- startPolling();
1076
-
1077
- // 返回停止函数
1078
- return () => {
1079
- stopped = true;
1080
- if (pollTimer) {
1081
- clearInterval(pollTimer);
1082
- pollTimer = null;
1083
- }
1084
- // 停止前保存最终偏移量,确保下次重启时能从正确位置继续
1085
- savePersistedOffset(currentFilePath, fileOffset);
1086
- if (lineCount > 0) {
1087
- process.stdout.write(
1088
- `[galileo-file-watch] 已停止,共处理 ${lineCount} 行日志,最终偏移: ${fileOffset}\n`,
1089
- );
1090
- }
1091
- };
1092
- }
1093
-
1094
- // ============================================================================
1095
- // Service 定义
1096
- // ============================================================================
1097
-
1098
- export function createTraceLoggerService(): OpenClawPluginService {
1099
- return {
1100
- id: "openclaw-telemetry-galileo-embedded",
1101
-
1102
- async start(ctx) {
1103
- // 从配置文件读取伽利略配置
1104
- _galileoConfig = loadGalileoConfigFromFile();
1105
-
1106
- // replay 缓冲区:将 service.start() 之前暂存的 setUserId / setCustomAttributes 调用应用到配置中
1107
- if (_pendingUserId) {
1108
- _galileoConfig.userId = _pendingUserId;
1109
- _pendingUserId = null;
1110
- }
1111
- if (_pendingCustomAttributes) {
1112
- Object.assign(_galileoConfig.customAttributes, _pendingCustomAttributes);
1113
- _pendingCustomAttributes = null;
1114
- }
1115
-
1116
- if (!_galileoConfig.enabled) {
1117
- ctx.logger.info("openclaw-telemetry-galileo-embedded: 已禁用(enabled=false)");
1118
- return;
1119
- }
1120
-
1121
- const endpoint = _galileoConfig.endpoint;
1122
-
1123
- // 构建 resource attributes
1124
- const serviceName = _galileoConfig.resource.target
1125
- ? trimPlatformPrefix(_galileoConfig.resource.target)
1126
- : DEFAULT_SERVICE_NAME;
1127
-
1128
- // 获取本机 IP 作为 instance(伽利略协议必须字段)
1129
- const localIp = getLocalIPv4();
1130
-
1131
- const resourceAttrs: Record<string, string> = {
1132
- [ATTR_SERVICE_NAME]: serviceName,
1133
- };
1134
-
1135
- if (_galileoConfig.resource.target) {
1136
- const res = _galileoConfig.resource;
1137
- resourceAttrs["target"] = res.target || serviceName;
1138
- resourceAttrs["namespace"] = res.namespace || "Development";
1139
- resourceAttrs["env"] = res.env || "test";
1140
- resourceAttrs["instance"] = localIp;
1141
- resourceAttrs["server"] =
1142
- res.server || `${res.target.split(".").pop() || "openclaw"}.agent`;
1143
- if (res.containerName) {
1144
- resourceAttrs["containerName"] = res.containerName;
1145
- }
1146
- if (res.operator) {
1147
- resourceAttrs["operator"] = res.operator;
1148
- }
1149
- if (res.setName) {
1150
- resourceAttrs["setName"] = res.setName;
1151
- }
1152
- }
1153
-
1154
- const resource = resourceFromAttributes(resourceAttrs);
1155
-
1156
- // ========== 创建非全局的 TracerProvider ==========
1157
- if (_galileoConfig.trace.enabled) {
1158
- const traceExporter = new OTLPTraceExporter({
1159
- url: `${endpoint.replace(/\/+$/, "")}/v1/traces`,
1160
- });
1161
-
1162
- _tracerProvider = new NodeTracerProvider({
1163
- resource,
1164
- sampler: new AlwaysOnSampler(),
1165
- spanProcessors: [new BatchSpanProcessor(traceExporter)],
1166
- });
1167
-
1168
- _tracer = _tracerProvider.getTracer(TRACER_NAME);
1169
-
1170
- // 启动孤儿 span TTL 清理定时器
1171
- startSpanCleanupTimer();
1172
- }
1173
-
1174
- // ========== 创建非全局的 MeterProvider ==========
1175
- if (_galileoConfig.metrics.enabled) {
1176
- const metricExporter = new OTLPMetricExporter({
1177
- url: `${endpoint.replace(/\/+$/, "")}/v1/metrics`,
1178
- temporalityPreference: AggregationTemporalityPreference.DELTA,
1179
- });
1180
-
1181
- const metricReader = new PeriodicExportingMetricReader({
1182
- exporter: metricExporter,
1183
- exportIntervalMillis: 60_000,
1184
- });
1185
-
1186
- _meterProvider = new MeterProvider({
1187
- resource,
1188
- readers: [metricReader],
1189
- });
1190
-
1191
- // 初始化 Chat 类型指标(LLMClient 监控项)
1192
- const chatMeter = _meterProvider.getMeter(METER_NAME_CHAT);
1193
- _chatRequestCntCounter = chatMeter.createCounter("gen_ai.request_cnt", {
1194
- unit: "1",
1195
- description: "请求量",
1196
- });
1197
- _chatInputTokensHistogram = chatMeter.createHistogram("gen_ai.usage.input_tokens", {
1198
- unit: "1",
1199
- description: "输入 tokens",
1200
- });
1201
- _chatOutputTokensHistogram = chatMeter.createHistogram("gen_ai.usage.output_tokens", {
1202
- unit: "1",
1203
- description: "输出 tokens",
1204
- });
1205
- _chatFirstTokenLatencyHistogram = chatMeter.createHistogram(
1206
- "gen_ai.server.time_to_first_token",
1207
- {
1208
- unit: "s",
1209
- description: "首 token 耗时",
1210
- },
1211
- );
1212
- _chatOperationDurationHistogram = chatMeter.createHistogram(
1213
- "gen_ai.client.operation.duration",
1214
- {
1215
- unit: "s",
1216
- description: "请求耗时",
1217
- },
1218
- );
1219
- _chatTimePerOutputTokenHistogram = chatMeter.createHistogram(
1220
- "gen_ai.server.time_per_output_token",
1221
- { unit: "s", description: "非首 token 平均耗时" },
1222
- );
1223
- _chatOutTokensPerSecondHistogram = chatMeter.createHistogram(
1224
- "gen_ai.server.out_tokens_per_second",
1225
- { unit: "1", description: "排除首 token 后每秒 token 数" },
1226
- );
1227
-
1228
- // 初始化 Tool 类型指标(GenAIExecuteTool 监控项)
1229
- const toolMeter = _meterProvider.getMeter(METER_NAME_TOOL);
1230
- _toolRequestCntCounter = toolMeter.createCounter("gen_ai.request_cnt", {
1231
- unit: "1",
1232
- description: "工具请求量",
1233
- });
1234
- _toolOperationDurationHistogram = toolMeter.createHistogram(
1235
- "gen_ai.client.operation.duration",
1236
- { unit: "s", description: "工具请求耗时" },
1237
- );
1238
-
1239
- // 初始化 Agent 类型指标(GenAIInvokeAgent 监控项)
1240
- const agentMeter = _meterProvider.getMeter(METER_NAME_AGENT);
1241
- _agentRequestCntCounter = agentMeter.createCounter("gen_ai.request_cnt", {
1242
- unit: "1",
1243
- description: "Agent 请求量",
1244
- });
1245
- _agentInputTokensHistogram = agentMeter.createHistogram("gen_ai.usage.input_tokens", {
1246
- unit: "1",
1247
- description: "Agent 输入 tokens",
1248
- });
1249
- _agentOutputTokensHistogram = agentMeter.createHistogram("gen_ai.usage.output_tokens", {
1250
- unit: "1",
1251
- description: "Agent 输出 tokens",
1252
- });
1253
- _agentFirstTokenLatencyHistogram = agentMeter.createHistogram(
1254
- "gen_ai.server.time_to_first_token",
1255
- { unit: "s", description: "Agent 首 token 耗时" },
1256
- );
1257
- _agentOperationDurationHistogram = agentMeter.createHistogram(
1258
- "gen_ai.client.operation.duration",
1259
- { unit: "s", description: "Agent 请求耗时" },
1260
- );
1261
- }
1262
-
1263
- // ========== 创建非全局的 LoggerProvider ==========
1264
- if (_galileoConfig.logs.enabled) {
1265
- const logExporter = new OTLPLogExporter({
1266
- url: `${endpoint.replace(/\/+$/, "")}/v1/logs`,
1267
- });
1268
-
1269
- const logProcessor = new BatchLogRecordProcessor(logExporter);
1270
-
1271
- _logProvider = new LoggerProvider({
1272
- resource,
1273
- processors: [logProcessor],
1274
- });
1275
-
1276
- const otelLogger = _logProvider.getLogger("openclaw");
1277
- /**
1278
- * 将解析后的日志记录发送到 OTel LoggerProvider。
1279
- */
1280
- // 获取最低日志级别配置
1281
- const minLevelPriority =
1282
- LOG_LEVEL_PRIORITY[_galileoConfig.logs.level?.toUpperCase() ?? "INFO"] ??
1283
- LOG_LEVEL_PRIORITY.INFO;
1284
-
1285
- const emitOtelLogFromTransport = (logObj: Record<string, unknown>): void => {
1286
- try {
1287
- const logRecord = logObj;
1288
-
1289
- // 解析 tslog 的 _meta 元数据
1290
- const meta = logRecord._meta as
1291
- | {
1292
- runtime?: string;
1293
- runtimeVersion?: string;
1294
- hostname?: string;
1295
- logLevelId?: number;
1296
- logLevelName?: string;
1297
- date?: Date;
1298
- name?: string;
1299
- parentNames?: string[];
1300
- path?: {
1301
- fullFilePath?: string;
1302
- fileName?: string;
1303
- fileNameWithLine?: string;
1304
- filePath?: string;
1305
- fileLine?: string;
1306
- fileColumn?: string;
1307
- filePathWithLine?: string;
1308
- method?: string;
1309
- };
1310
- }
1311
- | undefined;
1312
-
1313
- const resolvedLogLevel = meta?.logLevelName ?? "INFO";
1314
-
1315
- // 日志级别过滤:低于 minLevel 的日志直接丢弃
1316
- const currentPriority = LOG_LEVEL_PRIORITY[resolvedLogLevel] ?? LOG_LEVEL_PRIORITY.INFO;
1317
- if (currentPriority < minLevelPriority) {
1318
- return;
1319
- }
1320
-
1321
- const severityNumber = LOG_SEVERITY_MAP[resolvedLogLevel] ?? (9 as SeverityNumber);
1322
-
1323
- // 提取数字键位置参数(tslog 将日志参数存储为 "0", "1", "2" ...)
1324
- const numericArgs: unknown[] = Object.entries(logRecord)
1325
- .filter(([key]: [string, unknown]) => NUMERIC_KEY_RE.test(key))
1326
- .sort((a: [string, unknown], b: [string, unknown]) => Number(a[0]) - Number(b[0]))
1327
- .map(([, value]: [string, unknown]) => value);
1328
-
1329
- // 尝试解析首个参数作为 bindings(subsystem 等结构化上下文)
1330
- // tslog 的 "0" 通常是 JSON 序列化的 bindings 对象(如 {"subsystem":"gateway"})
1331
- let bindings: Record<string, unknown> | undefined;
1332
- if (typeof numericArgs[0] === "string" && numericArgs[0].trim().startsWith("{")) {
1333
- try {
1334
- const parsed = JSON.parse(String(numericArgs[0]));
1335
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
1336
- bindings = parsed as Record<string, unknown>;
1337
- numericArgs.shift();
1338
- }
1339
- } catch {
1340
- // 忽略非 JSON bindings
1341
- }
1342
- }
1343
-
1344
- // 提取日志消息体
1345
- // tslog 日志参数格式:"0"=bindings(JSON), "1"=message, "2"...=extra args
1346
- // 移除 bindings 后,剩余的 numericArgs 全部拼接为消息体
1347
- const messageParts: string[] = [];
1348
- for (const arg of numericArgs) {
1349
- if (typeof arg === "string") {
1350
- messageParts.push(arg);
1351
- } else if (arg !== undefined && arg !== null) {
1352
- messageParts.push(safeStringify(arg));
1353
- }
1354
- }
1355
- let message = messageParts.join(" ");
1356
-
1357
- // 如果 numericArgs 中没有有效消息,尝试从 _meta.name 中提取 subsystem 信息作为补充
1358
- if (!message) {
1359
- // 有些日志只有 bindings 没有消息体,使用 subsystem 名称作为 fallback
1360
- const subsystem = bindings?.subsystem;
1361
- if (typeof subsystem === "string") {
1362
- message = `[${subsystem}]`;
1363
- } else {
1364
- message = "log";
1365
- }
1366
- }
1367
-
1368
- // 构建 OTel Log attributes
1369
- const attributes: Record<string, string | number | boolean> = {
1370
- "openclaw.log.level": resolvedLogLevel,
1371
- };
1372
-
1373
- // 运行时环境信息
1374
- if (meta?.runtime) {
1375
- attributes["openclaw.runtime"] = meta.runtime;
1376
- }
1377
- if (meta?.runtimeVersion) {
1378
- attributes["openclaw.runtime.version"] = meta.runtimeVersion;
1379
- }
1380
- if (meta?.hostname) {
1381
- attributes["host.name"] = meta.hostname;
1382
- }
1383
- if (meta?.logLevelId !== undefined) {
1384
- attributes["openclaw.log.level_id"] = meta.logLevelId;
1385
- }
1386
-
1387
- // logger 名称信息
1388
- if (meta?.name) {
1389
- attributes["openclaw.logger"] = meta.name;
1390
- }
1391
- if (meta?.parentNames?.length) {
1392
- attributes["openclaw.logger.parents"] = meta.parentNames.join(".");
1393
- }
1394
-
1395
- // 将 bindings 展开为 openclaw.* 属性
1396
- if (bindings) {
1397
- for (const [key, value] of Object.entries(bindings)) {
1398
- if (
1399
- typeof value === "string" ||
1400
- typeof value === "number" ||
1401
- typeof value === "boolean"
1402
- ) {
1403
- attributes[`openclaw.${key}`] = value;
1404
- } else if (value != null) {
1405
- attributes[`openclaw.${key}`] = safeStringify(value);
1406
- }
1407
- }
1408
- }
1409
-
1410
- // 原始时间戳(日志文件中的 time 字段,本地时区格式)
1411
- const timeField = logRecord.time;
1412
- if (typeof timeField === "string") {
1413
- attributes["openclaw.time"] = timeField;
1414
- }
1415
-
1416
- // 源码位置信息
1417
- if (meta?.path?.filePath) {
1418
- attributes["code.filepath"] = meta.path.filePath;
1419
- }
1420
- if (meta?.path?.fileLine) {
1421
- attributes["code.lineno"] = Number(meta.path.fileLine);
1422
- }
1423
- if (meta?.path?.fileColumn) {
1424
- attributes["code.column"] = Number(meta.path.fileColumn);
1425
- }
1426
- if (meta?.path?.method) {
1427
- attributes["code.function"] = meta.path.method;
1428
- }
1429
- if (meta?.path?.filePathWithLine) {
1430
- attributes["openclaw.code.location"] = meta.path.filePathWithLine;
1431
- }
1432
- if (meta?.path?.fullFilePath) {
1433
- attributes["openclaw.code.full_path"] = meta.path.fullFilePath;
1434
- }
1435
- if (meta?.path?.fileName) {
1436
- attributes["code.filename"] = meta.path.fileName;
1437
- }
1438
-
1439
- // 伽利略协议必须字段:line(日志行号,格式为 filePath:lineNumber)
1440
- const line = meta?.path?.filePathWithLine || meta?.path?.filePath || "";
1441
- if (line) {
1442
- attributes["line"] = line;
1443
- }
1444
-
1445
- // 用户 ID:从配置或运行时 setUserId() 获取
1446
- const currentUserId = _galileoConfig?.userId;
1447
- if (currentUserId) {
1448
- attributes["gen_ai.user.id"] = currentUserId;
1449
- }
1450
-
1451
- // 自定义属性:从配置或运行时 setCustomAttributes() 获取
1452
- const currentCustomAttrs = _galileoConfig?.customAttributes;
1453
- if (currentCustomAttrs) {
1454
- for (const [key, value] of Object.entries(currentCustomAttrs)) {
1455
- if (value !== undefined && value !== null) {
1456
- attributes[key] = value;
1457
- }
1458
- }
1459
- }
1460
-
1461
- // 关联 trace:从日志 bindings 中提取 sessionKey / sessionId / runId,
1462
- // 在插件自维护的 activeSpans 中精确查找对应的 span,
1463
- // 将 span_id 和 trace_id 注入日志(伽利略协议可选字段,用于日志与 trace 关联)
1464
- let traceId: string | undefined;
1465
- let spanId: string | undefined;
1466
-
1467
- const matchedEntry = findSpanFromLogBindings(bindings);
1468
- if (matchedEntry) {
1469
- const sc = matchedEntry.span.spanContext();
1470
- traceId = sc.traceId;
1471
- spanId = sc.spanId;
1472
- }
1473
-
1474
- // 回退:尝试全局 context(其他插件可能设置了全局 provider)
1475
- if (!traceId) {
1476
- const globalActiveSpan = trace.getActiveSpan();
1477
- if (globalActiveSpan) {
1478
- const sc = globalActiveSpan.spanContext();
1479
- traceId = sc.traceId;
1480
- spanId = sc.spanId;
1481
- }
1482
- }
1483
-
1484
- // meta.date 可能是 Date 对象(transport 模式)或 ISO 字符串(file-watch 模式,JSON.parse 不会还原 Date)
1485
- // OTel emit 要求 timestamp 必须是 Date 对象,因此需要统一转换
1486
- let resolvedTimestamp: Date;
1487
- if (meta?.date instanceof Date) {
1488
- resolvedTimestamp = meta.date;
1489
- } else if (typeof meta?.date === "string") {
1490
- resolvedTimestamp = new Date(meta.date);
1491
- } else {
1492
- resolvedTimestamp = new Date();
1493
- }
1494
-
1495
- otelLogger.emit({
1496
- body: message,
1497
- severityText: resolvedLogLevel,
1498
- severityNumber,
1499
- attributes,
1500
- timestamp: resolvedTimestamp,
1501
- ...(traceId ? { traceId } : {}),
1502
- ...(spanId ? { spanId } : {}),
1503
- });
1504
- } catch {
1505
- // 日志发送异常静默处理,不阻塞业务
1506
- }
1507
- };
1508
-
1509
- // 文件轮询方式读取日志
1510
- const filePathPattern = _galileoConfig.logs.filePath || DEFAULT_LOG_FILE_PATTERN;
1511
- _stopFileWatcher = startLogFileWatcher(filePathPattern, emitOtelLogFromTransport);
1512
- }
1513
-
1514
- const logModeLabel = _galileoConfig.logs.enabled
1515
- ? `logs=${_galileoConfig.logs.enabled}(file-watch)`
1516
- : `logs=${_galileoConfig.logs.enabled}`;
1517
- ctx.logger.info(
1518
- `openclaw-telemetry-galileo-embedded: OTLP exporter 已启动,endpoint=${endpoint}` +
1519
- ` trace=${_galileoConfig.trace.enabled}` +
1520
- ` metrics=${_galileoConfig.metrics.enabled}` +
1521
- ` ${logModeLabel}`,
1522
- );
1523
- },
1524
-
1525
- async stop() {
1526
- _cleanupCallbacks.forEach((cb) => {
1527
- try {
1528
- cb();
1529
- } catch {
1530
- // ignore
1531
- }
1532
- });
1533
- _cleanupCallbacks = [];
1534
-
1535
- activeSpans.forEach((entry) => {
1536
- entry.span.end();
1537
- });
1538
- activeSpans.clear();
1539
- llmSeqByRun.clear();
1540
- stopSpanCleanupTimer();
1541
-
1542
- _tracer = null;
1543
- _chatRequestCntCounter = null;
1544
- _chatInputTokensHistogram = null;
1545
- _chatOutputTokensHistogram = null;
1546
- _chatFirstTokenLatencyHistogram = null;
1547
- _chatOperationDurationHistogram = null;
1548
- _chatTimePerOutputTokenHistogram = null;
1549
- _chatOutTokensPerSecondHistogram = null;
1550
- _toolRequestCntCounter = null;
1551
- _toolOperationDurationHistogram = null;
1552
- _agentRequestCntCounter = null;
1553
- _agentInputTokensHistogram = null;
1554
- _agentOutputTokensHistogram = null;
1555
- _agentFirstTokenLatencyHistogram = null;
1556
- _agentOperationDurationHistogram = null;
1557
-
1558
- // 先注销日志文件监听,避免 shutdown 过程中的日志再次进入
1559
- if (_stopFileWatcher) {
1560
- _stopFileWatcher();
1561
- _stopFileWatcher = null;
1562
- }
1563
-
1564
- if (_tracerProvider) {
1565
- await _tracerProvider.shutdown().catch(() => undefined);
1566
- _tracerProvider = null;
1567
- }
1568
- if (_meterProvider) {
1569
- await _meterProvider.shutdown().catch(() => undefined);
1570
- _meterProvider = null;
1571
- }
1572
- if (_logProvider) {
1573
- await _logProvider.shutdown().catch(() => undefined);
1574
- _logProvider = null;
1575
- }
1576
-
1577
- _galileoConfig = null;
1578
- _pendingUserId = null;
1579
- _pendingCustomAttributes = null;
1580
- },
1581
- };
1582
- }
1583
-
1584
- let _cleanupCallbacks: Array<() => void> = [];
1585
-
1586
- export function registerCleanupCallback(cb: () => void): void {
1587
- _cleanupCallbacks.push(cb);
1588
- }
1589
-
1590
- export { ROOT_CONTEXT, trace, context, SpanStatusCode, SpanKind };