openclaw-multi-auto 1.5.2 → 1.5.4

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 (185) hide show
  1. package/dist/{audio-preflight-5FEeDooz.js → audio-preflight-DDBLZBdb.js} +4 -4
  2. package/dist/{audio-transcription-runner-B-UvoDjZ.js → audio-transcription-runner-DZbSWT9E.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-D45SyhQL.js → chrome-CMU2WVFh.js} +8 -8
  6. package/dist/{deliver-B9cys0EZ.js → deliver-BXVcFIHL.js} +1 -1
  7. package/dist/{deliver-runtime-DhaQJ0pI.js → deliver-runtime-DTaIS-1i.js} +3 -3
  8. package/dist/{deps-send-whatsapp.runtime-DvTL2tzN.js → deps-send-whatsapp.runtime-CIZqFAqb.js} +7 -7
  9. package/dist/extensionAPI.js +6 -6
  10. package/dist/{image-DAOPwVXi.js → image-BCVLo0qw.js} +1 -1
  11. package/dist/{image-runtime-wlCLVvVv.js → image-runtime-DtCKpMPZ.js} +3 -3
  12. package/dist/{pi-embedded-DYU79yGe.js → pi-embedded-CgQ_W6Xs.js} +24 -24
  13. package/dist/{pi-embedded-helpers-uTRAmQ4n.js → pi-embedded-helpers-CwuBTKza.js} +3 -3
  14. package/dist/plugin-sdk/accounts-CJWOBzwB.js +35 -0
  15. package/dist/plugin-sdk/accounts-DP1-L-QS.js +288 -0
  16. package/dist/plugin-sdk/accounts-DZhWlEg3.js +46 -0
  17. package/dist/plugin-sdk/active-listener-B_sLJTXM.js +50 -0
  18. package/dist/plugin-sdk/api-key-rotation-BRE4X2tf.js +181 -0
  19. package/dist/plugin-sdk/audio-preflight-DGEUDxxR.js +69 -0
  20. package/dist/plugin-sdk/audio-transcription-runner-DkoPNPYt.js +2176 -0
  21. package/dist/plugin-sdk/audit-membership-runtime-DSBHHw7o.js +58 -0
  22. package/dist/plugin-sdk/bluebubbles.js +2 -2
  23. package/dist/plugin-sdk/channel-activity-F3d0yUwy.js +94 -0
  24. package/dist/plugin-sdk/channel-web-QF7EpjeP.js +2256 -0
  25. package/dist/plugin-sdk/chrome-BXoCyCkY.js +2415 -0
  26. package/dist/plugin-sdk/commands-registry-t7cXBTfN.js +1125 -0
  27. package/dist/plugin-sdk/config-BkEnz2Po.js +17913 -0
  28. package/dist/plugin-sdk/deliver-B6AG_l67.js +1694 -0
  29. package/dist/plugin-sdk/deliver-runtime-D585kJZc.js +32 -0
  30. package/dist/plugin-sdk/deps-send-discord.runtime-a_OKY2js.js +23 -0
  31. package/dist/plugin-sdk/deps-send-imessage.runtime-Baxy9TD4.js +22 -0
  32. package/dist/plugin-sdk/deps-send-signal.runtime-BwXoCrFl.js +21 -0
  33. package/dist/plugin-sdk/deps-send-slack.runtime-CLmKjgso.js +19 -0
  34. package/dist/plugin-sdk/deps-send-telegram.runtime-BKfdBKnZ.js +24 -0
  35. package/dist/plugin-sdk/deps-send-whatsapp.runtime-BOTwkbx_.js +57 -0
  36. package/dist/plugin-sdk/diagnostic-CsP-lEkI.js +319 -0
  37. package/dist/plugin-sdk/errors-DaiAM-yU.js +54 -0
  38. package/dist/plugin-sdk/fetch-guard-DETCcJzQ.js +156 -0
  39. package/dist/plugin-sdk/fs-safe-B8y811FR.js +352 -0
  40. package/dist/plugin-sdk/image-DjTEkYZE.js +2310 -0
  41. package/dist/plugin-sdk/image-ops-BSiMpAw4.js +584 -0
  42. package/dist/plugin-sdk/image-runtime-6xPp8m5a.js +25 -0
  43. package/dist/plugin-sdk/index.js +50 -50
  44. package/dist/plugin-sdk/ir-DQ7_HbvK.js +1296 -0
  45. package/dist/plugin-sdk/irc.js +2 -2
  46. package/dist/plugin-sdk/local-roots-BUP4YBmR.js +186 -0
  47. package/dist/plugin-sdk/logger-CZY9KIoY.js +1163 -0
  48. package/dist/plugin-sdk/login-BxEKLlCo.js +57 -0
  49. package/dist/plugin-sdk/login-qr-BQIpMPr9.js +320 -0
  50. package/dist/plugin-sdk/manager-I6KbPihW.js +3917 -0
  51. package/dist/plugin-sdk/manager-runtime-CFfYYWIQ.js +15 -0
  52. package/dist/plugin-sdk/outbound-NS6UHnB6.js +212 -0
  53. package/dist/plugin-sdk/outbound-attachment-Dy6fyf6H.js +19 -0
  54. package/dist/plugin-sdk/path-alias-guards-DBjLbIX_.js +43 -0
  55. package/dist/plugin-sdk/paths-vTM3Lh3X.js +166 -0
  56. package/dist/plugin-sdk/pi-embedded-helpers-1R1gu7eX.js +9627 -0
  57. package/dist/plugin-sdk/pi-model-discovery-runtime-Do9o-dUd.js +8 -0
  58. package/dist/plugin-sdk/pi-model-discovery-v-XPUOOf.js +134 -0
  59. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-D4sFsIks.js +354 -0
  60. package/dist/plugin-sdk/plugins-DeBZB9l_.js +864 -0
  61. package/dist/plugin-sdk/proxy-fetch-ChxOhWF4.js +38 -0
  62. package/dist/plugin-sdk/pw-ai-DEOmCSSC.js +1938 -0
  63. package/dist/plugin-sdk/qmd-manager-HyYKoEch.js +1448 -0
  64. package/dist/plugin-sdk/query-expansion-CeyKUeDW.js +1011 -0
  65. package/dist/plugin-sdk/redact-DjVX-1N3.js +319 -0
  66. package/dist/plugin-sdk/reply-DAo_Jt8K.js +97916 -0
  67. package/dist/plugin-sdk/resolve-outbound-target-B42qgQS9.js +40 -0
  68. package/dist/plugin-sdk/run-with-concurrency-Bt_ks0Qa.js +1994 -0
  69. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-B6W989eF.js +10 -0
  70. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-c_GDFy37.js +19 -0
  71. package/dist/plugin-sdk/send-CQpMudwO.js +2587 -0
  72. package/dist/plugin-sdk/send-DQHLzVyO.js +414 -0
  73. package/dist/plugin-sdk/send-DTB24bEF.js +3135 -0
  74. package/dist/plugin-sdk/send-DfHadjZ_.js +503 -0
  75. package/dist/plugin-sdk/send-XXlW2iny.js +540 -0
  76. package/dist/plugin-sdk/session-6TF6MyaC.js +169 -0
  77. package/dist/plugin-sdk/skill-commands-CkGeFUMl.js +342 -0
  78. package/dist/plugin-sdk/skills-CBkHBYPq.js +1428 -0
  79. package/dist/plugin-sdk/slash-commands.runtime-CxliuGaP.js +13 -0
  80. package/dist/plugin-sdk/slash-dispatch.runtime-DFaeYlJQ.js +52 -0
  81. package/dist/plugin-sdk/slash-skill-commands.runtime-0M0OLCxq.js +16 -0
  82. package/dist/plugin-sdk/ssrf-cFtplYtS.js +202 -0
  83. package/dist/plugin-sdk/store-5nyxY3WU.js +81 -0
  84. package/dist/plugin-sdk/subagent-registry-runtime-DCtmDwna.js +52 -0
  85. package/dist/plugin-sdk/tables-C47P4GTN.js +55 -0
  86. package/dist/plugin-sdk/target-errors-Blia4S69.js +195 -0
  87. package/dist/plugin-sdk/thinking-Bo2eosVa.js +1206 -0
  88. package/dist/plugin-sdk/tokens-DgNRBwIg.js +52 -0
  89. package/dist/plugin-sdk/tool-images-Gk_-0y2N.js +274 -0
  90. package/dist/plugin-sdk/web-CVxZbXyH.js +56 -0
  91. package/dist/plugin-sdk/whatsapp-actions-Bw0H9g-n.js +80 -0
  92. package/dist/{pw-ai-GcYO6HPE.js → pw-ai-CmphSzHx.js} +1 -1
  93. package/dist/{slash-dispatch.runtime-Dh053pQK.js → slash-dispatch.runtime-131yup2e.js} +6 -6
  94. package/dist/{subagent-registry-runtime-DSi5mnCQ.js → subagent-registry-runtime-DbSf_Je6.js} +6 -6
  95. package/dist/{web-1hWJDzNA.js → web-MR9d7KyB.js} +6 -6
  96. package/package.json +1 -1
  97. package/scripts/create-instance.sh +1 -37
  98. package/scripts/npm_publish.sh +0 -65
  99. package/scripts/npm_publish_backup.sh +185 -0
  100. package/extensions/page-action-cache/dist/actions-executor.d.ts +0 -62
  101. package/extensions/page-action-cache/dist/actions-executor.d.ts.map +0 -1
  102. package/extensions/page-action-cache/dist/actions-executor.js +0 -339
  103. package/extensions/page-action-cache/dist/actions-executor.js.map +0 -1
  104. package/extensions/page-action-cache/dist/cache-invalidator.d.ts +0 -70
  105. package/extensions/page-action-cache/dist/cache-invalidator.d.ts.map +0 -1
  106. package/extensions/page-action-cache/dist/cache-invalidator.js +0 -212
  107. package/extensions/page-action-cache/dist/cache-invalidator.js.map +0 -1
  108. package/extensions/page-action-cache/dist/cache-store.d.ts +0 -80
  109. package/extensions/page-action-cache/dist/cache-store.d.ts.map +0 -1
  110. package/extensions/page-action-cache/dist/cache-store.js +0 -361
  111. package/extensions/page-action-cache/dist/cache-store.js.map +0 -1
  112. package/extensions/page-action-cache/dist/cache-strategy.d.ts +0 -65
  113. package/extensions/page-action-cache/dist/cache-strategy.d.ts.map +0 -1
  114. package/extensions/page-action-cache/dist/cache-strategy.js +0 -237
  115. package/extensions/page-action-cache/dist/cache-strategy.js.map +0 -1
  116. package/extensions/page-action-cache/dist/hooks-entry.d.ts +0 -29
  117. package/extensions/page-action-cache/dist/hooks-entry.d.ts.map +0 -1
  118. package/extensions/page-action-cache/dist/hooks-entry.js +0 -83
  119. package/extensions/page-action-cache/dist/hooks-entry.js.map +0 -1
  120. package/extensions/page-action-cache/dist/hooks.d.ts +0 -10
  121. package/extensions/page-action-cache/dist/hooks.d.ts.map +0 -1
  122. package/extensions/page-action-cache/dist/hooks.js +0 -277
  123. package/extensions/page-action-cache/dist/hooks.js.map +0 -1
  124. package/extensions/page-action-cache/dist/index.d.ts +0 -24
  125. package/extensions/page-action-cache/dist/index.d.ts.map +0 -1
  126. package/extensions/page-action-cache/dist/index.js +0 -34
  127. package/extensions/page-action-cache/dist/index.js.map +0 -1
  128. package/extensions/page-action-cache/dist/scenario-recognizer.d.ts +0 -45
  129. package/extensions/page-action-cache/dist/scenario-recognizer.d.ts.map +0 -1
  130. package/extensions/page-action-cache/dist/scenario-recognizer.js +0 -213
  131. package/extensions/page-action-cache/dist/scenario-recognizer.js.map +0 -1
  132. package/extensions/page-action-cache/dist/security-policy.d.ts +0 -62
  133. package/extensions/page-action-cache/dist/security-policy.d.ts.map +0 -1
  134. package/extensions/page-action-cache/dist/security-policy.js +0 -219
  135. package/extensions/page-action-cache/dist/security-policy.js.map +0 -1
  136. package/extensions/page-action-cache/dist/tools.d.ts +0 -209
  137. package/extensions/page-action-cache/dist/tools.d.ts.map +0 -1
  138. package/extensions/page-action-cache/dist/tools.js +0 -383
  139. package/extensions/page-action-cache/dist/tools.js.map +0 -1
  140. package/extensions/page-action-cache/dist/types.d.ts +0 -336
  141. package/extensions/page-action-cache/dist/types.d.ts.map +0 -1
  142. package/extensions/page-action-cache/dist/types.js +0 -8
  143. package/extensions/page-action-cache/dist/types.js.map +0 -1
  144. package/extensions/page-action-cache/dist/ux-enhancer.d.ts +0 -60
  145. package/extensions/page-action-cache/dist/ux-enhancer.d.ts.map +0 -1
  146. package/extensions/page-action-cache/dist/ux-enhancer.js +0 -218
  147. package/extensions/page-action-cache/dist/ux-enhancer.js.map +0 -1
  148. package/extensions/page-action-cache/dist/variable-resolver.d.ts +0 -28
  149. package/extensions/page-action-cache/dist/variable-resolver.d.ts.map +0 -1
  150. package/extensions/page-action-cache/dist/variable-resolver.js +0 -201
  151. package/extensions/page-action-cache/dist/variable-resolver.js.map +0 -1
  152. package/extensions/page-action-cache/docs/API.md +0 -555
  153. package/extensions/page-action-cache/docs/IMPLEMENTATION.md +0 -1792
  154. package/extensions/page-action-cache/docs/INTEGRATION.md +0 -387
  155. package/extensions/page-action-cache/docs/README.md +0 -183
  156. package/extensions/page-action-cache/index.ts +0 -118
  157. package/extensions/page-action-cache/node_modules/.bin/nlc +0 -21
  158. package/extensions/page-action-cache/node_modules/.bin/node-llama-cpp +0 -21
  159. package/extensions/page-action-cache/node_modules/.bin/openclaw +0 -21
  160. package/extensions/page-action-cache/node_modules/.bin/tsc +0 -21
  161. package/extensions/page-action-cache/node_modules/.bin/tsserver +0 -21
  162. package/extensions/page-action-cache/node_modules/.bin/vitest +0 -21
  163. package/extensions/page-action-cache/openclaw.plugin.json +0 -208
  164. package/extensions/page-action-cache/package.json +0 -74
  165. package/extensions/page-action-cache/scripts/npm_publish.sh +0 -80
  166. package/extensions/page-action-cache/skills/page-action-cache/SKILL.md +0 -216
  167. package/extensions/page-action-cache/src/actions-executor.ts +0 -441
  168. package/extensions/page-action-cache/src/cache-invalidator.ts +0 -271
  169. package/extensions/page-action-cache/src/cache-store.ts +0 -457
  170. package/extensions/page-action-cache/src/cache-strategy.ts +0 -327
  171. package/extensions/page-action-cache/src/hooks-entry.ts +0 -114
  172. package/extensions/page-action-cache/src/hooks.ts +0 -332
  173. package/extensions/page-action-cache/src/index.ts +0 -89
  174. package/extensions/page-action-cache/src/scenario-recognizer.ts +0 -259
  175. package/extensions/page-action-cache/src/security-policy.ts +0 -268
  176. package/extensions/page-action-cache/src/tools.ts +0 -437
  177. package/extensions/page-action-cache/src/types.ts +0 -482
  178. package/extensions/page-action-cache/src/ux-enhancer.ts +0 -266
  179. package/extensions/page-action-cache/src/variable-resolver.ts +0 -258
  180. package/extensions/page-action-cache/tests/actions-executor.test.ts +0 -424
  181. package/extensions/page-action-cache/tests/cache-store.test.ts +0 -267
  182. package/extensions/page-action-cache/tests/integration-test.ts +0 -62
  183. package/extensions/page-action-cache/tests/scenario-recognizer.test.ts +0 -140
  184. package/extensions/page-action-cache/tests/variable-resolver.test.ts +0 -187
  185. package/extensions/page-action-cache/tsconfig.json +0 -39
@@ -6,7 +6,7 @@ import fs from "node:fs";
6
6
  import os from "node:os";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import { Logger } from "tslog";
9
- import JSON5 from "json5";
9
+ import json5 from "json5";
10
10
  import { format, promisify } from "node:util";
11
11
  import { fileURLToPath } from "node:url";
12
12
  import "@aws-sdk/client-bedrock";
@@ -612,7 +612,7 @@ function readLoggingConfig() {
612
612
  try {
613
613
  if (!fs.existsSync(configPath)) return;
614
614
  const raw = fs.readFileSync(configPath, "utf-8");
615
- const logging = JSON5.parse(raw)?.logging;
615
+ const logging = json5.parse(raw)?.logging;
616
616
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
617
617
  return logging;
618
618
  } catch {
@@ -0,0 +1,186 @@
1
+ import { c as resolveAgentWorkspaceDir } from "./run-with-concurrency-Bt_ks0Qa.js";
2
+ import { c as resolveStateDir } from "./paths-MKyEVmEb.js";
3
+ import { X as resolvePreferredOpenClawTmpDir } from "./logger-CZY9KIoY.js";
4
+ import { c as detectMime, l as extensionForMime } from "./image-ops-BSiMpAw4.js";
5
+ import { n as withStrictGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-DETCcJzQ.js";
6
+ import path from "node:path";
7
+
8
+ //#region src/media/read-response-with-limit.ts
9
+ async function readResponseWithLimit(res, maxBytes, opts) {
10
+ const onOverflow = opts?.onOverflow ?? ((params) => /* @__PURE__ */ new Error(`Content too large: ${params.size} bytes (limit: ${params.maxBytes} bytes)`));
11
+ const body = res.body;
12
+ if (!body || typeof body.getReader !== "function") {
13
+ const fallback = Buffer.from(await res.arrayBuffer());
14
+ if (fallback.length > maxBytes) throw onOverflow({
15
+ size: fallback.length,
16
+ maxBytes,
17
+ res
18
+ });
19
+ return fallback;
20
+ }
21
+ const reader = body.getReader();
22
+ const chunks = [];
23
+ let total = 0;
24
+ try {
25
+ while (true) {
26
+ const { done, value } = await reader.read();
27
+ if (done) break;
28
+ if (value?.length) {
29
+ total += value.length;
30
+ if (total > maxBytes) {
31
+ try {
32
+ await reader.cancel();
33
+ } catch {}
34
+ throw onOverflow({
35
+ size: total,
36
+ maxBytes,
37
+ res
38
+ });
39
+ }
40
+ chunks.push(value);
41
+ }
42
+ }
43
+ } finally {
44
+ try {
45
+ reader.releaseLock();
46
+ } catch {}
47
+ }
48
+ return Buffer.concat(chunks.map((chunk) => Buffer.from(chunk)), total);
49
+ }
50
+
51
+ //#endregion
52
+ //#region src/media/fetch.ts
53
+ var MediaFetchError = class extends Error {
54
+ constructor(code, message) {
55
+ super(message);
56
+ this.code = code;
57
+ this.name = "MediaFetchError";
58
+ }
59
+ };
60
+ function stripQuotes(value) {
61
+ return value.replace(/^["']|["']$/g, "");
62
+ }
63
+ function parseContentDispositionFileName(header) {
64
+ if (!header) return;
65
+ const starMatch = /filename\*\s*=\s*([^;]+)/i.exec(header);
66
+ if (starMatch?.[1]) {
67
+ const cleaned = stripQuotes(starMatch[1].trim());
68
+ const encoded = cleaned.split("''").slice(1).join("''") || cleaned;
69
+ try {
70
+ return path.basename(decodeURIComponent(encoded));
71
+ } catch {
72
+ return path.basename(encoded);
73
+ }
74
+ }
75
+ const match = /filename\s*=\s*([^;]+)/i.exec(header);
76
+ if (match?.[1]) return path.basename(stripQuotes(match[1].trim()));
77
+ }
78
+ async function readErrorBodySnippet(res, maxChars = 200) {
79
+ try {
80
+ const text = await res.text();
81
+ if (!text) return;
82
+ const collapsed = text.replace(/\s+/g, " ").trim();
83
+ if (!collapsed) return;
84
+ if (collapsed.length <= maxChars) return collapsed;
85
+ return `${collapsed.slice(0, maxChars)}…`;
86
+ } catch {
87
+ return;
88
+ }
89
+ }
90
+ async function fetchRemoteMedia(options) {
91
+ const { url, fetchImpl, requestInit, filePathHint, maxBytes, maxRedirects, ssrfPolicy, lookupFn } = options;
92
+ let res;
93
+ let finalUrl = url;
94
+ let release = null;
95
+ try {
96
+ const result = await fetchWithSsrFGuard(withStrictGuardedFetchMode({
97
+ url,
98
+ fetchImpl,
99
+ init: requestInit,
100
+ maxRedirects,
101
+ policy: ssrfPolicy,
102
+ lookupFn
103
+ }));
104
+ res = result.response;
105
+ finalUrl = result.finalUrl;
106
+ release = result.release;
107
+ } catch (err) {
108
+ throw new MediaFetchError("fetch_failed", `Failed to fetch media from ${url}: ${String(err)}`);
109
+ }
110
+ try {
111
+ if (!res.ok) {
112
+ const statusText = res.statusText ? ` ${res.statusText}` : "";
113
+ const redirected = finalUrl !== url ? ` (redirected to ${finalUrl})` : "";
114
+ let detail = `HTTP ${res.status}${statusText}`;
115
+ if (!res.body) detail = `HTTP ${res.status}${statusText}; empty response body`;
116
+ else {
117
+ const snippet = await readErrorBodySnippet(res);
118
+ if (snippet) detail += `; body: ${snippet}`;
119
+ }
120
+ throw new MediaFetchError("http_error", `Failed to fetch media from ${url}${redirected}: ${detail}`);
121
+ }
122
+ const contentLength = res.headers.get("content-length");
123
+ if (maxBytes && contentLength) {
124
+ const length = Number(contentLength);
125
+ if (Number.isFinite(length) && length > maxBytes) throw new MediaFetchError("max_bytes", `Failed to fetch media from ${url}: content length ${length} exceeds maxBytes ${maxBytes}`);
126
+ }
127
+ const buffer = maxBytes ? await readResponseWithLimit(res, maxBytes, { onOverflow: ({ maxBytes, res }) => new MediaFetchError("max_bytes", `Failed to fetch media from ${res.url || url}: payload exceeds maxBytes ${maxBytes}`) }) : Buffer.from(await res.arrayBuffer());
128
+ let fileNameFromUrl;
129
+ try {
130
+ const parsed = new URL(finalUrl);
131
+ fileNameFromUrl = path.basename(parsed.pathname) || void 0;
132
+ } catch {}
133
+ const headerFileName = parseContentDispositionFileName(res.headers.get("content-disposition"));
134
+ let fileName = headerFileName || fileNameFromUrl || (filePathHint ? path.basename(filePathHint) : void 0);
135
+ const filePathForMime = headerFileName && path.extname(headerFileName) ? headerFileName : filePathHint ?? finalUrl;
136
+ const contentType = await detectMime({
137
+ buffer,
138
+ headerMime: res.headers.get("content-type"),
139
+ filePath: filePathForMime
140
+ });
141
+ if (fileName && !path.extname(fileName) && contentType) {
142
+ const ext = extensionForMime(contentType);
143
+ if (ext) fileName = `${fileName}${ext}`;
144
+ }
145
+ return {
146
+ buffer,
147
+ contentType: contentType ?? void 0,
148
+ fileName
149
+ };
150
+ } finally {
151
+ if (release) await release();
152
+ }
153
+ }
154
+
155
+ //#endregion
156
+ //#region src/media/local-roots.ts
157
+ let cachedPreferredTmpDir;
158
+ function resolveCachedPreferredTmpDir() {
159
+ if (!cachedPreferredTmpDir) cachedPreferredTmpDir = resolvePreferredOpenClawTmpDir();
160
+ return cachedPreferredTmpDir;
161
+ }
162
+ function buildMediaLocalRoots(stateDir, options = {}) {
163
+ const resolvedStateDir = path.resolve(stateDir);
164
+ return [
165
+ options.preferredTmpDir ?? resolveCachedPreferredTmpDir(),
166
+ path.join(resolvedStateDir, "media"),
167
+ path.join(resolvedStateDir, "agents"),
168
+ path.join(resolvedStateDir, "workspace"),
169
+ path.join(resolvedStateDir, "sandboxes")
170
+ ];
171
+ }
172
+ function getDefaultMediaLocalRoots() {
173
+ return buildMediaLocalRoots(resolveStateDir());
174
+ }
175
+ function getAgentScopedMediaLocalRoots(cfg, agentId) {
176
+ const roots = buildMediaLocalRoots(resolveStateDir());
177
+ if (!agentId?.trim()) return roots;
178
+ const workspaceDir = resolveAgentWorkspaceDir(cfg, agentId);
179
+ if (!workspaceDir) return roots;
180
+ const normalizedWorkspaceDir = path.resolve(workspaceDir);
181
+ if (!roots.includes(normalizedWorkspaceDir)) roots.push(normalizedWorkspaceDir);
182
+ return roots;
183
+ }
184
+
185
+ //#endregion
186
+ export { readResponseWithLimit as a, fetchRemoteMedia as i, getDefaultMediaLocalRoots as n, MediaFetchError as r, getAgentScopedMediaLocalRoots as t };