openclaw-multi-auto 1.2.5 → 1.2.6

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 (188) hide show
  1. package/dist/{audio-preflight-DDBLZBdb.js → audio-preflight-5FEeDooz.js} +4 -4
  2. package/dist/{audio-transcription-runner-DZbSWT9E.js → audio-transcription-runner-B-UvoDjZ.js} +1 -1
  3. package/dist/build-info.json +3 -3
  4. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  5. package/dist/{chrome-CMU2WVFh.js → chrome-D45SyhQL.js} +8 -8
  6. package/dist/{deliver-BXVcFIHL.js → deliver-B9cys0EZ.js} +1 -1
  7. package/dist/{deliver-runtime-DTaIS-1i.js → deliver-runtime-DhaQJ0pI.js} +3 -3
  8. package/dist/{deps-send-whatsapp.runtime-CIZqFAqb.js → deps-send-whatsapp.runtime-DvTL2tzN.js} +7 -7
  9. package/dist/extensionAPI.js +6 -6
  10. package/dist/{image-BCVLo0qw.js → image-DAOPwVXi.js} +1 -1
  11. package/dist/{image-runtime-DtCKpMPZ.js → image-runtime-wlCLVvVv.js} +3 -3
  12. package/dist/{pi-embedded-CgQ_W6Xs.js → pi-embedded-DYU79yGe.js} +24 -24
  13. package/dist/{pi-embedded-helpers-CwuBTKza.js → pi-embedded-helpers-uTRAmQ4n.js} +3 -3
  14. package/dist/plugin-sdk/{accounts-C3m65--E.js → accounts-BJAXxY46.js} +2 -2
  15. package/dist/plugin-sdk/{accounts-CNCCkdEF.js → accounts-C1j7HSL0.js} +3 -3
  16. package/dist/plugin-sdk/{accounts-BslAlVYS.js → accounts-DyFCXtHv.js} +2 -2
  17. package/dist/plugin-sdk/{active-listener-CkPnMUkB.js → active-listener-CftX5jLD.js} +2 -2
  18. package/dist/plugin-sdk/{api-key-rotation-BRE4X2tf.js → api-key-rotation-8nyyt1kx.js} +2 -2
  19. package/dist/plugin-sdk/{audio-preflight-CtO4fFvp.js → audio-preflight-C_aSAPR1.js} +26 -26
  20. package/dist/plugin-sdk/{audio-transcription-runner-DnxvOS1-.js → audio-transcription-runner-CB53F7_7.js} +11 -11
  21. package/dist/plugin-sdk/{audit-membership-runtime-BpfoSk8M.js → audit-membership-runtime-BXndI4LG.js} +2 -2
  22. package/dist/plugin-sdk/{channel-activity-WJYxcJ3S.js → channel-activity-C5y8AgAV.js} +3 -3
  23. package/dist/plugin-sdk/{channel-web-dO5k3ubM.js → channel-web-DBTRO03V.js} +18 -18
  24. package/dist/plugin-sdk/{chrome-CjNTuJML.js → chrome-f00sZkDX.js} +6 -6
  25. package/dist/plugin-sdk/{commands-registry-CdYjoI0i.js → commands-registry-BJ_NxG2F.js} +4 -4
  26. package/dist/plugin-sdk/{common-oYc5vPFl.js → common-Cf27Jwxu.js} +2 -2
  27. package/dist/plugin-sdk/{config-B1z-UxQ3.js → config-CHQrpx-Q.js} +7 -7
  28. package/dist/plugin-sdk/{deliver-D5_6T567.js → deliver-DNEuetST.js} +10 -10
  29. package/dist/plugin-sdk/deliver-runtime-BFdqklJM.js +32 -0
  30. package/dist/plugin-sdk/deps-send-discord.runtime-DuqpYwU0.js +23 -0
  31. package/dist/plugin-sdk/deps-send-imessage.runtime-CZ2rS8Lb.js +22 -0
  32. package/dist/plugin-sdk/deps-send-signal.runtime-BdqiWhIh.js +21 -0
  33. package/dist/plugin-sdk/deps-send-slack.runtime-04s36qiC.js +19 -0
  34. package/dist/plugin-sdk/deps-send-telegram.runtime-LE5tkPvr.js +24 -0
  35. package/dist/plugin-sdk/deps-send-whatsapp.runtime-Bz57lobC.js +57 -0
  36. package/dist/plugin-sdk/{diagnostic-Bxxu0ig-.js → diagnostic-LYUUmjJ5.js} +2 -2
  37. package/dist/plugin-sdk/{errors-B3cHyZZA.js → errors-CtMWwS2Z.js} +1 -1
  38. package/dist/plugin-sdk/{fetch-guard-Dcgod0tg.js → fetch-guard-CxYB5Kg6.js} +2 -2
  39. package/dist/plugin-sdk/{fs-safe-BaKqI3G4.js → fs-safe-DtfhxbrI.js} +3 -3
  40. package/dist/plugin-sdk/{image-B2mQW9Rb.js → image-BwjYjRHx.js} +6 -6
  41. package/dist/plugin-sdk/{image-ops-Cbzr4U9l.js → image-ops-BnZKcbd6.js} +2 -2
  42. package/dist/plugin-sdk/image-runtime-B8twoubs.js +25 -0
  43. package/dist/plugin-sdk/index.js +50 -50
  44. package/dist/plugin-sdk/{ir-ZEmrTr4J.js → ir-Z4hX67TJ.js} +7 -7
  45. package/dist/plugin-sdk/{local-roots-CIPRxA-4.js → local-roots-KhjQw04O.js} +4 -4
  46. package/dist/plugin-sdk/{logger-CvPFVOgT.js → logger-DHIIvMxj.js} +2 -2
  47. package/dist/plugin-sdk/{login-CCTew9bt.js → login-C31642Ld.js} +4 -4
  48. package/dist/plugin-sdk/{login-qr-BI3Vi_wJ.js → login-qr--y2SG_Ue.js} +5 -5
  49. package/dist/plugin-sdk/{manager-BEoYPn7R.js → manager-2UZBMCc7.js} +8 -8
  50. package/dist/plugin-sdk/manager-runtime-CMeLwose.js +15 -0
  51. package/dist/plugin-sdk/{outbound-ByOw1K6W.js → outbound-Ba0QUI5h.js} +5 -5
  52. package/dist/plugin-sdk/{outbound-attachment-BzVhxRRw.js → outbound-attachment-B1Laso-8.js} +2 -2
  53. package/dist/plugin-sdk/{path-alias-guards-DBjLbIX_.js → path-alias-guards-C7Vm5DZ1.js} +1 -1
  54. package/dist/plugin-sdk/{paths-Dpg3qxcl.js → paths-DopV9PQG.js} +1 -1
  55. package/dist/plugin-sdk/{pi-embedded-helpers-DIxXkGJf.js → pi-embedded-helpers-DnA_OCzP.js} +16 -16
  56. package/dist/plugin-sdk/{pi-model-discovery-DM_2uFtj.js → pi-model-discovery-DdPqXk8f.js} +1 -1
  57. package/dist/plugin-sdk/pi-model-discovery-runtime-D8CJhtJY.js +8 -0
  58. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-w1dqL_ty.js → pi-tools.before-tool-call.runtime-DxFHiLUE.js} +4 -4
  59. package/dist/plugin-sdk/{plugins-C4USiH29.js → plugins-CbCt4osF.js} +4 -4
  60. package/dist/plugin-sdk/{proxy-env-ET-rp8eg.js → proxy-env-C63mMdas.js} +1 -1
  61. package/dist/plugin-sdk/{proxy-fetch-ChxOhWF4.js → proxy-fetch-Ch95c_Y2.js} +1 -1
  62. package/dist/plugin-sdk/{pw-ai-CyOt3RDA.js → pw-ai-DpJk62D4.js} +9 -9
  63. package/dist/plugin-sdk/{qmd-manager-BySdoVR7.js → qmd-manager-Ca-iSfEE.js} +7 -7
  64. package/dist/plugin-sdk/{query-expansion-C6uS-7lj.js → query-expansion-B_Xe41Ab.js} +4 -4
  65. package/dist/plugin-sdk/{redact-DjVX-1N3.js → redact-hp9TOulW.js} +1 -1
  66. package/dist/plugin-sdk/{reply-CTCSeQqW.js → reply-CovBlFea.js} +73 -73
  67. package/dist/plugin-sdk/{resolve-outbound-target-Bw8YNANu.js → resolve-outbound-target-BbrHgyUk.js} +2 -2
  68. package/dist/plugin-sdk/{run-with-concurrency-C_KCHwvf.js → run-with-concurrency-BR1DXa8T.js} +1 -1
  69. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-SkO91TZH.js +10 -0
  70. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-B0VWK5hm.js +19 -0
  71. package/dist/plugin-sdk/{send-C0w6xP2x.js → send-BTztm3D2.js} +6 -6
  72. package/dist/plugin-sdk/{send-qPyNGSe4.js → send-BXpXBwM_.js} +13 -13
  73. package/dist/plugin-sdk/{send-BZ6nYFZr.js → send-BvAtLLPl.js} +5 -5
  74. package/dist/plugin-sdk/{send-CFf-1V89.js → send-CWJUuG0i.js} +8 -8
  75. package/dist/plugin-sdk/{send-CY-Qfwia.js → send-EcglC4cG.js} +7 -7
  76. package/dist/plugin-sdk/{session-COrvpvUQ.js → session-k256LJZT.js} +3 -3
  77. package/dist/plugin-sdk/{skill-commands-DZqhtmiv.js → skill-commands-DoRqLzxm.js} +4 -4
  78. package/dist/plugin-sdk/{skills-Cw_vXEJb.js → skills-QudILG6e.js} +6 -6
  79. package/dist/plugin-sdk/slash-commands.runtime-DS6vCNSL.js +13 -0
  80. package/dist/plugin-sdk/slash-dispatch.runtime-BXrxb2wd.js +52 -0
  81. package/dist/plugin-sdk/slash-skill-commands.runtime-Bd6qQ2oT.js +16 -0
  82. package/dist/plugin-sdk/{store-CMHj6IIw.js → store-BbDQw3g6.js} +2 -2
  83. package/dist/plugin-sdk/subagent-registry-runtime-1uwQbuXj.js +52 -0
  84. package/dist/plugin-sdk/{tables-CSqrHsKL.js → tables-BhvloMKN.js} +1 -1
  85. package/dist/plugin-sdk/{thinking-DOnsR_A8.js → thinking-URzkT-3p.js} +7 -7
  86. package/dist/plugin-sdk/{tokens-DgNRBwIg.js → tokens-B1PW5Ayy.js} +1 -1
  87. package/dist/plugin-sdk/{tool-images-Gk_-0y2N.js → tool-images-xpqbP6RR.js} +2 -2
  88. package/dist/plugin-sdk/web-B74yhL2N.js +56 -0
  89. package/dist/plugin-sdk/{whatsapp-actions-xcleMoMv.js → whatsapp-actions-RcZ6vp61.js} +17 -17
  90. package/dist/plugin-sdk/whatsapp.js +50 -50
  91. package/dist/{pw-ai-CmphSzHx.js → pw-ai-GcYO6HPE.js} +1 -1
  92. package/dist/{slash-dispatch.runtime-131yup2e.js → slash-dispatch.runtime-Dh053pQK.js} +6 -6
  93. package/dist/{subagent-registry-runtime-DbSf_Je6.js → subagent-registry-runtime-DSi5mnCQ.js} +6 -6
  94. package/dist/{web-MR9d7KyB.js → web-1hWJDzNA.js} +6 -6
  95. package/package.json +1 -1
  96. package/scripts/create-instance.sh +104 -71
  97. package/dist/plugin-sdk/accounts-CJWOBzwB.js +0 -35
  98. package/dist/plugin-sdk/accounts-DP1-L-QS.js +0 -288
  99. package/dist/plugin-sdk/accounts-DZhWlEg3.js +0 -46
  100. package/dist/plugin-sdk/active-listener-B_sLJTXM.js +0 -50
  101. package/dist/plugin-sdk/api-key-rotation-BXnNsojA.js +0 -181
  102. package/dist/plugin-sdk/audio-preflight-DGEUDxxR.js +0 -69
  103. package/dist/plugin-sdk/audio-transcription-runner-DkoPNPYt.js +0 -2176
  104. package/dist/plugin-sdk/audit-membership-runtime-DSBHHw7o.js +0 -58
  105. package/dist/plugin-sdk/channel-activity-F3d0yUwy.js +0 -94
  106. package/dist/plugin-sdk/channel-web-QF7EpjeP.js +0 -2256
  107. package/dist/plugin-sdk/chrome-BXoCyCkY.js +0 -2415
  108. package/dist/plugin-sdk/commands-registry-t7cXBTfN.js +0 -1125
  109. package/dist/plugin-sdk/config-BkEnz2Po.js +0 -17913
  110. package/dist/plugin-sdk/deliver-B6AG_l67.js +0 -1694
  111. package/dist/plugin-sdk/deliver-runtime-C5dgvvga.js +0 -32
  112. package/dist/plugin-sdk/deliver-runtime-D585kJZc.js +0 -32
  113. package/dist/plugin-sdk/deps-send-discord.runtime-Dg4N7PHJ.js +0 -23
  114. package/dist/plugin-sdk/deps-send-discord.runtime-a_OKY2js.js +0 -23
  115. package/dist/plugin-sdk/deps-send-imessage.runtime-0OEwzMQm.js +0 -22
  116. package/dist/plugin-sdk/deps-send-imessage.runtime-Baxy9TD4.js +0 -22
  117. package/dist/plugin-sdk/deps-send-signal.runtime-BM1jRt3G.js +0 -21
  118. package/dist/plugin-sdk/deps-send-signal.runtime-BwXoCrFl.js +0 -21
  119. package/dist/plugin-sdk/deps-send-slack.runtime-1E3BYRdF.js +0 -19
  120. package/dist/plugin-sdk/deps-send-slack.runtime-CLmKjgso.js +0 -19
  121. package/dist/plugin-sdk/deps-send-telegram.runtime-BKfdBKnZ.js +0 -24
  122. package/dist/plugin-sdk/deps-send-telegram.runtime-DNCxIflA.js +0 -24
  123. package/dist/plugin-sdk/deps-send-whatsapp.runtime-BOTwkbx_.js +0 -57
  124. package/dist/plugin-sdk/deps-send-whatsapp.runtime-OLwr-9c8.js +0 -57
  125. package/dist/plugin-sdk/diagnostic-CsP-lEkI.js +0 -319
  126. package/dist/plugin-sdk/errors-DaiAM-yU.js +0 -54
  127. package/dist/plugin-sdk/fetch-guard-DETCcJzQ.js +0 -156
  128. package/dist/plugin-sdk/fs-safe-B8y811FR.js +0 -352
  129. package/dist/plugin-sdk/image-DjTEkYZE.js +0 -2310
  130. package/dist/plugin-sdk/image-ops-BSiMpAw4.js +0 -584
  131. package/dist/plugin-sdk/image-runtime-6xPp8m5a.js +0 -25
  132. package/dist/plugin-sdk/image-runtime-BFm45j49.js +0 -25
  133. package/dist/plugin-sdk/ir-DQ7_HbvK.js +0 -1296
  134. package/dist/plugin-sdk/local-roots-BUP4YBmR.js +0 -186
  135. package/dist/plugin-sdk/logger-CZY9KIoY.js +0 -1163
  136. package/dist/plugin-sdk/login-BxEKLlCo.js +0 -57
  137. package/dist/plugin-sdk/login-qr-BQIpMPr9.js +0 -320
  138. package/dist/plugin-sdk/manager-I6KbPihW.js +0 -3917
  139. package/dist/plugin-sdk/manager-runtime-CFfYYWIQ.js +0 -15
  140. package/dist/plugin-sdk/manager-runtime-DxclHQ4U.js +0 -15
  141. package/dist/plugin-sdk/outbound-NS6UHnB6.js +0 -212
  142. package/dist/plugin-sdk/outbound-attachment-Dy6fyf6H.js +0 -19
  143. package/dist/plugin-sdk/path-alias-guards-sWayacde.js +0 -43
  144. package/dist/plugin-sdk/paths-vTM3Lh3X.js +0 -166
  145. package/dist/plugin-sdk/pi-embedded-helpers-1R1gu7eX.js +0 -9627
  146. package/dist/plugin-sdk/pi-model-discovery-runtime-BuzvkvNR.js +0 -8
  147. package/dist/plugin-sdk/pi-model-discovery-runtime-Do9o-dUd.js +0 -8
  148. package/dist/plugin-sdk/pi-model-discovery-v-XPUOOf.js +0 -134
  149. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-D4sFsIks.js +0 -354
  150. package/dist/plugin-sdk/plugins-DeBZB9l_.js +0 -864
  151. package/dist/plugin-sdk/proxy-fetch-uDXGKG3Z.js +0 -38
  152. package/dist/plugin-sdk/pw-ai-DEOmCSSC.js +0 -1938
  153. package/dist/plugin-sdk/qmd-manager-HyYKoEch.js +0 -1448
  154. package/dist/plugin-sdk/query-expansion-CeyKUeDW.js +0 -1011
  155. package/dist/plugin-sdk/redact-Bvxt1T_Q.js +0 -319
  156. package/dist/plugin-sdk/reply-DAo_Jt8K.js +0 -97916
  157. package/dist/plugin-sdk/resolve-outbound-target-B42qgQS9.js +0 -40
  158. package/dist/plugin-sdk/run-with-concurrency-Bt_ks0Qa.js +0 -1994
  159. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-B6W989eF.js +0 -10
  160. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-BxgRDkhc.js +0 -10
  161. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-c_GDFy37.js +0 -19
  162. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-elOqrkfg.js +0 -19
  163. package/dist/plugin-sdk/send-CQpMudwO.js +0 -2587
  164. package/dist/plugin-sdk/send-DQHLzVyO.js +0 -414
  165. package/dist/plugin-sdk/send-DTB24bEF.js +0 -3135
  166. package/dist/plugin-sdk/send-DfHadjZ_.js +0 -503
  167. package/dist/plugin-sdk/send-XXlW2iny.js +0 -540
  168. package/dist/plugin-sdk/session-6TF6MyaC.js +0 -169
  169. package/dist/plugin-sdk/skill-commands-CkGeFUMl.js +0 -342
  170. package/dist/plugin-sdk/skills-CBkHBYPq.js +0 -1428
  171. package/dist/plugin-sdk/slash-commands.runtime-CxliuGaP.js +0 -13
  172. package/dist/plugin-sdk/slash-commands.runtime-D67JLweo.js +0 -13
  173. package/dist/plugin-sdk/slash-dispatch.runtime-DFaeYlJQ.js +0 -52
  174. package/dist/plugin-sdk/slash-dispatch.runtime-DvcpvCJ0.js +0 -52
  175. package/dist/plugin-sdk/slash-skill-commands.runtime-0M0OLCxq.js +0 -16
  176. package/dist/plugin-sdk/slash-skill-commands.runtime-BM1x3azR.js +0 -16
  177. package/dist/plugin-sdk/ssrf-cFtplYtS.js +0 -202
  178. package/dist/plugin-sdk/store-5nyxY3WU.js +0 -81
  179. package/dist/plugin-sdk/subagent-registry-runtime-1lbDyRzz.js +0 -52
  180. package/dist/plugin-sdk/subagent-registry-runtime-DCtmDwna.js +0 -52
  181. package/dist/plugin-sdk/tables-C47P4GTN.js +0 -55
  182. package/dist/plugin-sdk/target-errors-Blia4S69.js +0 -195
  183. package/dist/plugin-sdk/thinking-Bo2eosVa.js +0 -1206
  184. package/dist/plugin-sdk/tokens-BDr0Z9o3.js +0 -52
  185. package/dist/plugin-sdk/tool-images-eEfOVkzf.js +0 -274
  186. package/dist/plugin-sdk/web-BLyT64pW.js +0 -56
  187. package/dist/plugin-sdk/web-CVxZbXyH.js +0 -56
  188. 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 };