openclaw-multi-auto 1.6.2 → 1.6.5

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 (192) hide show
  1. package/dist/{audio-preflight-DoPfNXDz.js → audio-preflight-DpxQCpsA.js} +4 -4
  2. package/dist/{audio-transcription-runner-CzjuH3uL.js → audio-transcription-runner-28fcRNNi.js} +1 -1
  3. package/dist/build-info.json +3 -3
  4. package/dist/bundled/boot-md/handler.js +6 -6
  5. package/dist/bundled/session-memory/handler.js +6 -6
  6. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  7. package/dist/{chrome-DlhJHqj8.js → chrome-DwizpzOC.js} +8 -8
  8. package/dist/{deliver-CApVJA_l.js → deliver-D4o6VIur.js} +1 -1
  9. package/dist/{deliver-runtime-D1z-h5eg.js → deliver-runtime-P-G3bPjW.js} +3 -3
  10. package/dist/{deps-send-whatsapp.runtime-Dz_4fi2D.js → deps-send-whatsapp.runtime-CJkTHkah.js} +7 -7
  11. package/dist/{image-B3Mz7N5I.js → image-Bbn53mzj.js} +1 -1
  12. package/dist/{image-runtime-DWjhow2W.js → image-runtime-CVv2ra9J.js} +3 -3
  13. package/dist/llm-slug-generator.js +6 -6
  14. package/dist/{pi-embedded-bcjMe3wj.js → pi-embedded-BaGj07T0.js} +24 -24
  15. package/dist/{pi-embedded-helpers-D5yyGEvA.js → pi-embedded-helpers-wy0DZvx1.js} +3 -3
  16. package/dist/plugin-sdk/{accounts-DyFCXtHv.js → accounts-BslAlVYS.js} +2 -2
  17. package/dist/plugin-sdk/{accounts-BJAXxY46.js → accounts-C3m65--E.js} +2 -2
  18. package/dist/plugin-sdk/{accounts-C1j7HSL0.js → accounts-CNCCkdEF.js} +3 -3
  19. package/dist/plugin-sdk/{active-listener-B_sLJTXM.js → active-listener-CkPnMUkB.js} +2 -2
  20. package/dist/plugin-sdk/{api-key-rotation-8nyyt1kx.js → api-key-rotation-BXnNsojA.js} +2 -2
  21. package/dist/plugin-sdk/{audio-preflight-C_aSAPR1.js → audio-preflight-CtO4fFvp.js} +26 -26
  22. package/dist/plugin-sdk/{audio-transcription-runner-CB53F7_7.js → audio-transcription-runner-DnxvOS1-.js} +11 -11
  23. package/dist/plugin-sdk/{audit-membership-runtime-BXndI4LG.js → audit-membership-runtime-BpfoSk8M.js} +2 -2
  24. package/dist/plugin-sdk/{channel-activity-C5y8AgAV.js → channel-activity-WJYxcJ3S.js} +3 -3
  25. package/dist/plugin-sdk/{channel-web-DBTRO03V.js → channel-web-dO5k3ubM.js} +18 -18
  26. package/dist/plugin-sdk/{chrome-f00sZkDX.js → chrome-CjNTuJML.js} +6 -6
  27. package/dist/plugin-sdk/{commands-registry-BJ_NxG2F.js → commands-registry-CdYjoI0i.js} +4 -4
  28. package/dist/plugin-sdk/{common-Cf27Jwxu.js → common-oYc5vPFl.js} +2 -2
  29. package/dist/plugin-sdk/compat.js +50 -50
  30. package/dist/plugin-sdk/{config-CHQrpx-Q.js → config-B1z-UxQ3.js} +7 -7
  31. package/dist/plugin-sdk/{deliver-DNEuetST.js → deliver-D5_6T567.js} +10 -10
  32. package/dist/plugin-sdk/deliver-runtime-C5dgvvga.js +32 -0
  33. package/dist/plugin-sdk/deps-send-discord.runtime-Dg4N7PHJ.js +23 -0
  34. package/dist/plugin-sdk/deps-send-imessage.runtime-0OEwzMQm.js +22 -0
  35. package/dist/plugin-sdk/deps-send-signal.runtime-BM1jRt3G.js +21 -0
  36. package/dist/plugin-sdk/deps-send-slack.runtime-1E3BYRdF.js +19 -0
  37. package/dist/plugin-sdk/deps-send-telegram.runtime-DNCxIflA.js +24 -0
  38. package/dist/plugin-sdk/deps-send-whatsapp.runtime-OLwr-9c8.js +57 -0
  39. package/dist/plugin-sdk/{diagnostic-LYUUmjJ5.js → diagnostic-Bxxu0ig-.js} +2 -2
  40. package/dist/plugin-sdk/discord.js +6 -6
  41. package/dist/plugin-sdk/{errors-CtMWwS2Z.js → errors-B3cHyZZA.js} +1 -1
  42. package/dist/plugin-sdk/{fetch-guard-CxYB5Kg6.js → fetch-guard-Dcgod0tg.js} +2 -2
  43. package/dist/plugin-sdk/{fs-safe-DtfhxbrI.js → fs-safe-BaKqI3G4.js} +3 -3
  44. package/dist/plugin-sdk/{image-BwjYjRHx.js → image-B2mQW9Rb.js} +6 -6
  45. package/dist/plugin-sdk/{image-ops-BnZKcbd6.js → image-ops-Cbzr4U9l.js} +2 -2
  46. package/dist/plugin-sdk/image-runtime-BFm45j49.js +25 -0
  47. package/dist/plugin-sdk/{ir-Z4hX67TJ.js → ir-ZEmrTr4J.js} +7 -7
  48. package/dist/plugin-sdk/{local-roots-KhjQw04O.js → local-roots-CIPRxA-4.js} +4 -4
  49. package/dist/plugin-sdk/{logger-DHIIvMxj.js → logger-CvPFVOgT.js} +2 -2
  50. package/dist/plugin-sdk/{login-C31642Ld.js → login-CCTew9bt.js} +4 -4
  51. package/dist/plugin-sdk/{login-qr--y2SG_Ue.js → login-qr-BI3Vi_wJ.js} +5 -5
  52. package/dist/plugin-sdk/{manager-2UZBMCc7.js → manager-BEoYPn7R.js} +8 -8
  53. package/dist/plugin-sdk/manager-runtime-DxclHQ4U.js +15 -0
  54. package/dist/plugin-sdk/{outbound-Ba0QUI5h.js → outbound-ByOw1K6W.js} +5 -5
  55. package/dist/plugin-sdk/{outbound-attachment-B1Laso-8.js → outbound-attachment-BzVhxRRw.js} +2 -2
  56. package/dist/plugin-sdk/{path-alias-guards-C7Vm5DZ1.js → path-alias-guards-sWayacde.js} +1 -1
  57. package/dist/plugin-sdk/{paths-DopV9PQG.js → paths-Dpg3qxcl.js} +1 -1
  58. package/dist/plugin-sdk/{pi-embedded-helpers-DnA_OCzP.js → pi-embedded-helpers-DIxXkGJf.js} +16 -16
  59. package/dist/plugin-sdk/{pi-model-discovery-DdPqXk8f.js → pi-model-discovery-DM_2uFtj.js} +1 -1
  60. package/dist/plugin-sdk/pi-model-discovery-runtime-BuzvkvNR.js +8 -0
  61. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-DxFHiLUE.js → pi-tools.before-tool-call.runtime-w1dqL_ty.js} +4 -4
  62. package/dist/plugin-sdk/{plugins-CbCt4osF.js → plugins-C4USiH29.js} +4 -4
  63. package/dist/plugin-sdk/{proxy-env-C63mMdas.js → proxy-env-ET-rp8eg.js} +1 -1
  64. package/dist/plugin-sdk/{proxy-fetch-Ch95c_Y2.js → proxy-fetch-uDXGKG3Z.js} +1 -1
  65. package/dist/plugin-sdk/{pw-ai-DpJk62D4.js → pw-ai-CyOt3RDA.js} +9 -9
  66. package/dist/plugin-sdk/{qmd-manager-Ca-iSfEE.js → qmd-manager-BySdoVR7.js} +7 -7
  67. package/dist/plugin-sdk/{query-expansion-B_Xe41Ab.js → query-expansion-C6uS-7lj.js} +4 -4
  68. package/dist/plugin-sdk/{redact-hp9TOulW.js → redact-Bvxt1T_Q.js} +1 -1
  69. package/dist/plugin-sdk/{reply-CovBlFea.js → reply-CTCSeQqW.js} +73 -73
  70. package/dist/plugin-sdk/{resolve-outbound-target-BbrHgyUk.js → resolve-outbound-target-Bw8YNANu.js} +2 -2
  71. package/dist/plugin-sdk/{run-with-concurrency-BR1DXa8T.js → run-with-concurrency-C_KCHwvf.js} +1 -1
  72. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-BxgRDkhc.js +10 -0
  73. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-elOqrkfg.js +19 -0
  74. package/dist/plugin-sdk/{send-BvAtLLPl.js → send-BZ6nYFZr.js} +5 -5
  75. package/dist/plugin-sdk/{send-BTztm3D2.js → send-C0w6xP2x.js} +6 -6
  76. package/dist/plugin-sdk/{send-CWJUuG0i.js → send-CFf-1V89.js} +8 -8
  77. package/dist/plugin-sdk/{send-EcglC4cG.js → send-CY-Qfwia.js} +7 -7
  78. package/dist/plugin-sdk/{send-BXpXBwM_.js → send-qPyNGSe4.js} +13 -13
  79. package/dist/plugin-sdk/{session-k256LJZT.js → session-COrvpvUQ.js} +3 -3
  80. package/dist/plugin-sdk/{skill-commands-DoRqLzxm.js → skill-commands-DZqhtmiv.js} +4 -4
  81. package/dist/plugin-sdk/{skills-QudILG6e.js → skills-Cw_vXEJb.js} +6 -6
  82. package/dist/plugin-sdk/slack.js +2 -2
  83. package/dist/plugin-sdk/slash-commands.runtime-D67JLweo.js +13 -0
  84. package/dist/plugin-sdk/slash-dispatch.runtime-DvcpvCJ0.js +52 -0
  85. package/dist/plugin-sdk/slash-skill-commands.runtime-BM1x3azR.js +16 -0
  86. package/dist/plugin-sdk/{store-BbDQw3g6.js → store-CMHj6IIw.js} +2 -2
  87. package/dist/plugin-sdk/subagent-registry-runtime-1lbDyRzz.js +52 -0
  88. package/dist/plugin-sdk/{tables-BhvloMKN.js → tables-CSqrHsKL.js} +1 -1
  89. package/dist/plugin-sdk/{thinking-URzkT-3p.js → thinking-DOnsR_A8.js} +7 -7
  90. package/dist/plugin-sdk/{tokens-DgNRBwIg.js → tokens-BDr0Z9o3.js} +1 -1
  91. package/dist/plugin-sdk/{tool-images-Gk_-0y2N.js → tool-images-eEfOVkzf.js} +2 -2
  92. package/dist/plugin-sdk/web-BLyT64pW.js +56 -0
  93. package/dist/plugin-sdk/{whatsapp-actions-RcZ6vp61.js → whatsapp-actions-xcleMoMv.js} +17 -17
  94. package/dist/plugin-sdk/whatsapp.js +50 -50
  95. package/dist/{pw-ai-CDQDCfUa.js → pw-ai-Cl1Lc7RC.js} +1 -1
  96. package/dist/{slash-dispatch.runtime-CWbpp23S.js → slash-dispatch.runtime-DoBAQBU5.js} +6 -6
  97. package/dist/{subagent-registry-runtime-DEVpAaAP.js → subagent-registry-runtime-ppWS3tVu.js} +6 -6
  98. package/dist/{web-NWKn8ABz.js → web-CzWRVmFt.js} +6 -6
  99. package/package.json +1 -1
  100. package/scripts/create-instance.sh +11 -13
  101. package/dist/plugin-sdk/accounts-CJWOBzwB.js +0 -35
  102. package/dist/plugin-sdk/accounts-DP1-L-QS.js +0 -288
  103. package/dist/plugin-sdk/accounts-DZhWlEg3.js +0 -46
  104. package/dist/plugin-sdk/active-listener-CftX5jLD.js +0 -50
  105. package/dist/plugin-sdk/api-key-rotation-BRE4X2tf.js +0 -181
  106. package/dist/plugin-sdk/audio-preflight-DGEUDxxR.js +0 -69
  107. package/dist/plugin-sdk/audio-transcription-runner-DkoPNPYt.js +0 -2176
  108. package/dist/plugin-sdk/audit-membership-runtime-DSBHHw7o.js +0 -58
  109. package/dist/plugin-sdk/channel-activity-F3d0yUwy.js +0 -94
  110. package/dist/plugin-sdk/channel-web-QF7EpjeP.js +0 -2256
  111. package/dist/plugin-sdk/chrome-BXoCyCkY.js +0 -2415
  112. package/dist/plugin-sdk/commands-registry-t7cXBTfN.js +0 -1125
  113. package/dist/plugin-sdk/config-BkEnz2Po.js +0 -17913
  114. package/dist/plugin-sdk/deliver-B6AG_l67.js +0 -1694
  115. package/dist/plugin-sdk/deliver-runtime-BFdqklJM.js +0 -32
  116. package/dist/plugin-sdk/deliver-runtime-D585kJZc.js +0 -32
  117. package/dist/plugin-sdk/deps-send-discord.runtime-DuqpYwU0.js +0 -23
  118. package/dist/plugin-sdk/deps-send-discord.runtime-a_OKY2js.js +0 -23
  119. package/dist/plugin-sdk/deps-send-imessage.runtime-Baxy9TD4.js +0 -22
  120. package/dist/plugin-sdk/deps-send-imessage.runtime-CZ2rS8Lb.js +0 -22
  121. package/dist/plugin-sdk/deps-send-signal.runtime-BdqiWhIh.js +0 -21
  122. package/dist/plugin-sdk/deps-send-signal.runtime-BwXoCrFl.js +0 -21
  123. package/dist/plugin-sdk/deps-send-slack.runtime-04s36qiC.js +0 -19
  124. package/dist/plugin-sdk/deps-send-slack.runtime-CLmKjgso.js +0 -19
  125. package/dist/plugin-sdk/deps-send-telegram.runtime-BKfdBKnZ.js +0 -24
  126. package/dist/plugin-sdk/deps-send-telegram.runtime-LE5tkPvr.js +0 -24
  127. package/dist/plugin-sdk/deps-send-whatsapp.runtime-BOTwkbx_.js +0 -57
  128. package/dist/plugin-sdk/deps-send-whatsapp.runtime-Bz57lobC.js +0 -57
  129. package/dist/plugin-sdk/diagnostic-CsP-lEkI.js +0 -319
  130. package/dist/plugin-sdk/errors-DaiAM-yU.js +0 -54
  131. package/dist/plugin-sdk/fetch-guard-DETCcJzQ.js +0 -156
  132. package/dist/plugin-sdk/fs-safe-B8y811FR.js +0 -352
  133. package/dist/plugin-sdk/image-DjTEkYZE.js +0 -2310
  134. package/dist/plugin-sdk/image-ops-BSiMpAw4.js +0 -584
  135. package/dist/plugin-sdk/image-runtime-6xPp8m5a.js +0 -25
  136. package/dist/plugin-sdk/image-runtime-B8twoubs.js +0 -25
  137. package/dist/plugin-sdk/ir-DQ7_HbvK.js +0 -1296
  138. package/dist/plugin-sdk/local-roots-BUP4YBmR.js +0 -186
  139. package/dist/plugin-sdk/logger-CZY9KIoY.js +0 -1163
  140. package/dist/plugin-sdk/login-BxEKLlCo.js +0 -57
  141. package/dist/plugin-sdk/login-qr-BQIpMPr9.js +0 -320
  142. package/dist/plugin-sdk/manager-I6KbPihW.js +0 -3917
  143. package/dist/plugin-sdk/manager-runtime-CFfYYWIQ.js +0 -15
  144. package/dist/plugin-sdk/manager-runtime-CMeLwose.js +0 -15
  145. package/dist/plugin-sdk/outbound-NS6UHnB6.js +0 -212
  146. package/dist/plugin-sdk/outbound-attachment-Dy6fyf6H.js +0 -19
  147. package/dist/plugin-sdk/path-alias-guards-DBjLbIX_.js +0 -43
  148. package/dist/plugin-sdk/paths-vTM3Lh3X.js +0 -166
  149. package/dist/plugin-sdk/pi-embedded-helpers-1R1gu7eX.js +0 -9627
  150. package/dist/plugin-sdk/pi-model-discovery-runtime-D8CJhtJY.js +0 -8
  151. package/dist/plugin-sdk/pi-model-discovery-runtime-Do9o-dUd.js +0 -8
  152. package/dist/plugin-sdk/pi-model-discovery-v-XPUOOf.js +0 -134
  153. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-D4sFsIks.js +0 -354
  154. package/dist/plugin-sdk/plugins-DeBZB9l_.js +0 -864
  155. package/dist/plugin-sdk/proxy-fetch-ChxOhWF4.js +0 -38
  156. package/dist/plugin-sdk/pw-ai-DEOmCSSC.js +0 -1938
  157. package/dist/plugin-sdk/qmd-manager-HyYKoEch.js +0 -1448
  158. package/dist/plugin-sdk/query-expansion-CeyKUeDW.js +0 -1011
  159. package/dist/plugin-sdk/redact-DjVX-1N3.js +0 -319
  160. package/dist/plugin-sdk/reply-DAo_Jt8K.js +0 -97916
  161. package/dist/plugin-sdk/resolve-outbound-target-B42qgQS9.js +0 -40
  162. package/dist/plugin-sdk/run-with-concurrency-Bt_ks0Qa.js +0 -1994
  163. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-B6W989eF.js +0 -10
  164. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-SkO91TZH.js +0 -10
  165. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-B0VWK5hm.js +0 -19
  166. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-c_GDFy37.js +0 -19
  167. package/dist/plugin-sdk/send-CQpMudwO.js +0 -2587
  168. package/dist/plugin-sdk/send-DQHLzVyO.js +0 -414
  169. package/dist/plugin-sdk/send-DTB24bEF.js +0 -3135
  170. package/dist/plugin-sdk/send-DfHadjZ_.js +0 -503
  171. package/dist/plugin-sdk/send-XXlW2iny.js +0 -540
  172. package/dist/plugin-sdk/session-6TF6MyaC.js +0 -169
  173. package/dist/plugin-sdk/skill-commands-CkGeFUMl.js +0 -342
  174. package/dist/plugin-sdk/skills-CBkHBYPq.js +0 -1428
  175. package/dist/plugin-sdk/slash-commands.runtime-CxliuGaP.js +0 -13
  176. package/dist/plugin-sdk/slash-commands.runtime-DS6vCNSL.js +0 -13
  177. package/dist/plugin-sdk/slash-dispatch.runtime-BXrxb2wd.js +0 -52
  178. package/dist/plugin-sdk/slash-dispatch.runtime-DFaeYlJQ.js +0 -52
  179. package/dist/plugin-sdk/slash-skill-commands.runtime-0M0OLCxq.js +0 -16
  180. package/dist/plugin-sdk/slash-skill-commands.runtime-Bd6qQ2oT.js +0 -16
  181. package/dist/plugin-sdk/ssrf-cFtplYtS.js +0 -202
  182. package/dist/plugin-sdk/store-5nyxY3WU.js +0 -81
  183. package/dist/plugin-sdk/subagent-registry-runtime-1uwQbuXj.js +0 -52
  184. package/dist/plugin-sdk/subagent-registry-runtime-DCtmDwna.js +0 -52
  185. package/dist/plugin-sdk/tables-C47P4GTN.js +0 -55
  186. package/dist/plugin-sdk/target-errors-Blia4S69.js +0 -195
  187. package/dist/plugin-sdk/thinking-Bo2eosVa.js +0 -1206
  188. package/dist/plugin-sdk/tokens-B1PW5Ayy.js +0 -52
  189. package/dist/plugin-sdk/tool-images-xpqbP6RR.js +0 -274
  190. package/dist/plugin-sdk/web-B74yhL2N.js +0 -56
  191. package/dist/plugin-sdk/web-CVxZbXyH.js +0 -56
  192. package/dist/plugin-sdk/whatsapp-actions-Bw0H9g-n.js +0 -80
@@ -1,195 +0,0 @@
1
- import { c as detectMime } from "./image-ops-BSiMpAw4.js";
2
- import { r as sanitizeToolResultImages } from "./tool-images-Gk_-0y2N.js";
3
- import fs from "node:fs/promises";
4
-
5
- //#region src/agents/tools/common.ts
6
- var ToolInputError = class extends Error {
7
- constructor(message) {
8
- super(message);
9
- this.status = 400;
10
- this.name = "ToolInputError";
11
- }
12
- };
13
- var ToolAuthorizationError = class extends ToolInputError {
14
- constructor(message) {
15
- super(message);
16
- this.status = 403;
17
- this.name = "ToolAuthorizationError";
18
- }
19
- };
20
- function createActionGate(actions) {
21
- return (key, defaultValue = true) => {
22
- const value = actions?.[key];
23
- if (value === void 0) return defaultValue;
24
- return value !== false;
25
- };
26
- }
27
- function toSnakeCaseKey(key) {
28
- return key.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z0-9])([A-Z])/g, "$1_$2").toLowerCase();
29
- }
30
- function readParamRaw(params, key) {
31
- if (Object.hasOwn(params, key)) return params[key];
32
- const snakeKey = toSnakeCaseKey(key);
33
- if (snakeKey !== key && Object.hasOwn(params, snakeKey)) return params[snakeKey];
34
- }
35
- function readStringParam(params, key, options = {}) {
36
- const { required = false, trim = true, label = key, allowEmpty = false } = options;
37
- const raw = readParamRaw(params, key);
38
- if (typeof raw !== "string") {
39
- if (required) throw new ToolInputError(`${label} required`);
40
- return;
41
- }
42
- const value = trim ? raw.trim() : raw;
43
- if (!value && !allowEmpty) {
44
- if (required) throw new ToolInputError(`${label} required`);
45
- return;
46
- }
47
- return value;
48
- }
49
- function readStringOrNumberParam(params, key, options = {}) {
50
- const { required = false, label = key } = options;
51
- const raw = readParamRaw(params, key);
52
- if (typeof raw === "number" && Number.isFinite(raw)) return String(raw);
53
- if (typeof raw === "string") {
54
- const value = raw.trim();
55
- if (value) return value;
56
- }
57
- if (required) throw new ToolInputError(`${label} required`);
58
- }
59
- function readNumberParam(params, key, options = {}) {
60
- const { required = false, label = key, integer = false } = options;
61
- const raw = readParamRaw(params, key);
62
- let value;
63
- if (typeof raw === "number" && Number.isFinite(raw)) value = raw;
64
- else if (typeof raw === "string") {
65
- const trimmed = raw.trim();
66
- if (trimmed) {
67
- const parsed = Number.parseFloat(trimmed);
68
- if (Number.isFinite(parsed)) value = parsed;
69
- }
70
- }
71
- if (value === void 0) {
72
- if (required) throw new ToolInputError(`${label} required`);
73
- return;
74
- }
75
- return integer ? Math.trunc(value) : value;
76
- }
77
- function readStringArrayParam(params, key, options = {}) {
78
- const { required = false, label = key } = options;
79
- const raw = readParamRaw(params, key);
80
- if (Array.isArray(raw)) {
81
- const values = raw.filter((entry) => typeof entry === "string").map((entry) => entry.trim()).filter(Boolean);
82
- if (values.length === 0) {
83
- if (required) throw new ToolInputError(`${label} required`);
84
- return;
85
- }
86
- return values;
87
- }
88
- if (typeof raw === "string") {
89
- const value = raw.trim();
90
- if (!value) {
91
- if (required) throw new ToolInputError(`${label} required`);
92
- return;
93
- }
94
- return [value];
95
- }
96
- if (required) throw new ToolInputError(`${label} required`);
97
- }
98
- function readReactionParams(params, options) {
99
- const emojiKey = options.emojiKey ?? "emoji";
100
- const removeKey = options.removeKey ?? "remove";
101
- const remove = typeof params[removeKey] === "boolean" ? params[removeKey] : false;
102
- const emoji = readStringParam(params, emojiKey, {
103
- required: true,
104
- allowEmpty: true
105
- });
106
- if (remove && !emoji) throw new ToolInputError(options.removeErrorMessage);
107
- return {
108
- emoji,
109
- remove,
110
- isEmpty: !emoji
111
- };
112
- }
113
- function jsonResult(payload) {
114
- return {
115
- content: [{
116
- type: "text",
117
- text: JSON.stringify(payload, null, 2)
118
- }],
119
- details: payload
120
- };
121
- }
122
- async function imageResult(params) {
123
- return await sanitizeToolResultImages({
124
- content: [{
125
- type: "text",
126
- text: params.extraText ?? `MEDIA:${params.path}`
127
- }, {
128
- type: "image",
129
- data: params.base64,
130
- mimeType: params.mimeType
131
- }],
132
- details: {
133
- path: params.path,
134
- ...params.details
135
- }
136
- }, params.label, params.imageSanitization);
137
- }
138
- async function imageResultFromFile(params) {
139
- const buf = await fs.readFile(params.path);
140
- const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
141
- return await imageResult({
142
- label: params.label,
143
- path: params.path,
144
- base64: buf.toString("base64"),
145
- mimeType,
146
- extraText: params.extraText,
147
- details: params.details,
148
- imageSanitization: params.imageSanitization
149
- });
150
- }
151
- /**
152
- * Validate and parse an `availableTags` parameter from untrusted input.
153
- * Returns `undefined` when the value is missing or not an array.
154
- * Entries that lack a string `name` are silently dropped.
155
- */
156
- function parseAvailableTags(raw) {
157
- if (raw === void 0 || raw === null) return;
158
- if (!Array.isArray(raw)) return;
159
- const result = raw.filter((t) => typeof t === "object" && t !== null && typeof t.name === "string").map((t) => ({
160
- ...t.id !== void 0 && typeof t.id === "string" ? { id: t.id } : {},
161
- name: t.name,
162
- ...typeof t.moderated === "boolean" ? { moderated: t.moderated } : {},
163
- ...t.emoji_id === null || typeof t.emoji_id === "string" ? { emoji_id: t.emoji_id } : {},
164
- ...t.emoji_name === null || typeof t.emoji_name === "string" ? { emoji_name: t.emoji_name } : {}
165
- }));
166
- return result.length ? result : void 0;
167
- }
168
-
169
- //#endregion
170
- //#region src/infra/outbound/target-errors.ts
171
- function missingTargetMessage(provider, hint) {
172
- return `Delivering to ${provider} requires target${formatTargetHint(hint)}`;
173
- }
174
- function missingTargetError(provider, hint) {
175
- return new Error(missingTargetMessage(provider, hint));
176
- }
177
- function ambiguousTargetMessage(provider, raw, hint) {
178
- return `Ambiguous target "${raw}" for ${provider}. Provide a unique name or an explicit id.${formatTargetHint(hint, true)}`;
179
- }
180
- function ambiguousTargetError(provider, raw, hint) {
181
- return new Error(ambiguousTargetMessage(provider, raw, hint));
182
- }
183
- function unknownTargetMessage(provider, raw, hint) {
184
- return `Unknown target "${raw}" for ${provider}.${formatTargetHint(hint, true)}`;
185
- }
186
- function unknownTargetError(provider, raw, hint) {
187
- return new Error(unknownTargetMessage(provider, raw, hint));
188
- }
189
- function formatTargetHint(hint, withLabel = false) {
190
- if (!hint) return "";
191
- return withLabel ? ` Hint: ${hint}` : ` ${hint}`;
192
- }
193
-
194
- //#endregion
195
- export { ToolInputError as a, imageResultFromFile as c, readNumberParam as d, readReactionParams as f, readStringParam as h, ToolAuthorizationError as i, jsonResult as l, readStringOrNumberParam as m, missingTargetError as n, createActionGate as o, readStringArrayParam as p, unknownTargetError as r, imageResult as s, ambiguousTargetError as t, parseAvailableTags as u };