wednesdayai 0.6.1-dev.27 → 0.6.1-dev.28

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/{agent-CQhgyAis.js → agent-BDuI5Zvc.js} +26 -26
  2. package/dist/{agent-Y_2aRBZH.js → agent-BW-Yan08.js} +11 -11
  3. package/dist/{agent-turn-runner-faZvyYiv.js → agent-turn-runner-BfXiXNe2.js} +6 -6
  4. package/dist/{agent-turn-runner-ClBJoKQQ.js → agent-turn-runner-CHm-I95T.js} +5 -5
  5. package/dist/build-info.json +3 -3
  6. package/dist/bundled/boot-md/handler.js +32 -32
  7. package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
  8. package/dist/bundled/command-logger/handler.js +2 -2
  9. package/dist/bundled/session-journal/handler.js +31 -31
  10. package/dist/bundled/session-memory/handler.js +31 -31
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{chrome-B3nEcesV.js → chrome-CKy31bWh.js} +32 -32
  13. package/dist/{chrome-DLbFTDQE.js → chrome-Ct9vb6SC.js} +12 -12
  14. package/dist/{command-queue-BSbitNdP.js → command-queue-AIWqKnVD.js} +1 -1
  15. package/dist/{command-queue-BijpV9rd.js → command-queue-CNStMA4Y.js} +1 -1
  16. package/dist/control-ui-v2/assets/{AgentsView-DVvw6PTU.js → AgentsView-3Qsr3xnf.js} +1 -1
  17. package/dist/control-ui-v2/assets/{AutomationsView-CxjmPRdI.js → AutomationsView-DkBzPKKQ.js} +1 -1
  18. package/dist/control-ui-v2/assets/Badge-CB5TWfdz.js +1 -0
  19. package/dist/control-ui-v2/assets/{Button-DL76WqX4.js → Button-CGdLofSY.js} +1 -1
  20. package/dist/control-ui-v2/assets/{ChannelsView-BDcVzQIM.js → ChannelsView-BRb8eYyh.js} +1 -1
  21. package/dist/control-ui-v2/assets/{ConfigForm-CbvOdyOA.js → ConfigForm-D8_bqW8x.js} +1 -1
  22. package/dist/control-ui-v2/assets/{ConfirmDialog-DGHQXUr5.js → ConfirmDialog-B7aotBjN.js} +1 -1
  23. package/dist/control-ui-v2/assets/{DataTable-lEkd1R85.js → DataTable-CSi930kO.js} +1 -1
  24. package/dist/control-ui-v2/assets/{DebugView-CHHmLv3x.js → DebugView-8cZqh6FQ.js} +1 -1
  25. package/dist/control-ui-v2/assets/{Dialog-rIrrCPSu.js → Dialog-CQE8Pvh6.js} +1 -1
  26. package/dist/control-ui-v2/assets/{DreamsView-uQSpm1S4.js → DreamsView-B0KzP2OM.js} +1 -1
  27. package/dist/control-ui-v2/assets/{EntityLink-AEBgCNQX.js → EntityLink-BO2oG3y8.js} +1 -1
  28. package/dist/control-ui-v2/assets/{FilterPills-HxAXXDO8.js → FilterPills-9pNaAyrL.js} +1 -1
  29. package/dist/control-ui-v2/assets/{InstancesView-Svk7C7AX.js → InstancesView-BbunCxYg.js} +1 -1
  30. package/dist/control-ui-v2/assets/{LearningView-CWqWycCM.js → LearningView-CEqD48Ll.js} +1 -1
  31. package/dist/control-ui-v2/assets/{LogsView-D7kaR6es.js → LogsView-fcI0vxkz.js} +1 -1
  32. package/dist/control-ui-v2/assets/{NodesView-CqKA1XAX.js → NodesView-BONHE7EP.js} +1 -1
  33. package/dist/control-ui-v2/assets/{OverviewView-Dz3YnxWP.js → OverviewView-BpynJnjy.js} +1 -1
  34. package/dist/control-ui-v2/assets/{Panel-CyfpswdJ.js → Panel-9wOynsWc.js} +1 -1
  35. package/dist/control-ui-v2/assets/{PluginMount-C1HeSpS9.js → PluginMount-6N20-nhI.js} +1 -1
  36. package/dist/control-ui-v2/assets/{PluginPageView-Dap5OwAt.js → PluginPageView-DZ3bh805.js} +1 -1
  37. package/dist/control-ui-v2/assets/{PluginPanels-DdDZQ_Dn.js → PluginPanels-DulRlgcm.js} +1 -1
  38. package/dist/control-ui-v2/assets/{RunsView-CQXkKsIZ.js → RunsView-dcBTwtFX.js} +1 -1
  39. package/dist/control-ui-v2/assets/{SessionsView-Bs9UqOQr.js → SessionsView-CZuTvckb.js} +1 -1
  40. package/dist/control-ui-v2/assets/{SettingsView-BhorzAw5.js → SettingsView-BTcubWvr.js} +1 -1
  41. package/dist/control-ui-v2/assets/{SkillsView-ClzUjPU-.js → SkillsView-Bj7lvW23.js} +1 -1
  42. package/dist/control-ui-v2/assets/{Stat-BruDi6qc.js → Stat-BZwg1PGE.js} +1 -1
  43. package/dist/control-ui-v2/assets/{StatusDot-Cij-6nH8.js → StatusDot-DHhJ1VpB.js} +1 -1
  44. package/dist/control-ui-v2/assets/{StorageView-BYgvfNcg.js → StorageView-B5cF1lld.js} +1 -1
  45. package/dist/control-ui-v2/assets/{UpdatedAgo-DWSnE4WG.js → UpdatedAgo-Dw3kxb2x.js} +1 -1
  46. package/dist/control-ui-v2/assets/{UsageView-C_ezU9jy.js → UsageView-DBZ1WkEI.js} +1 -1
  47. package/dist/control-ui-v2/assets/{config-store-27hOx1yp.js → config-store-XvvVJ8Fq.js} +1 -1
  48. package/dist/control-ui-v2/assets/{format-dlOOV12I.js → format-CGs6a1G6.js} +1 -1
  49. package/dist/control-ui-v2/assets/gateway-features-BZH74_Oc.js +1 -0
  50. package/dist/control-ui-v2/assets/{index-OijNknZs.js → index-BvXiY83i.js} +1 -1
  51. package/dist/control-ui-v2/assets/{links-C1sAzVEH.js → links-DlVrQOFC.js} +2 -2
  52. package/dist/control-ui-v2/assets/{run-rows-BYCIH1Sn.js → run-rows-Au2UUkD7.js} +1 -1
  53. package/dist/control-ui-v2/assets/{runs-store-DLIlHRM6.js → runs-store-DXgNPFWM.js} +1 -1
  54. package/dist/control-ui-v2/assets/{use-gateway-query-CF94JYnM.js → use-gateway-query-D25QZANO.js} +1 -1
  55. package/dist/control-ui-v2/index.html +7 -7
  56. package/dist/{deliver-CY4Fs4RX.js → deliver-DsuMPE0S.js} +28 -28
  57. package/dist/{deliver-xfGDp6XD.js → deliver-DxVojbH7.js} +6 -6
  58. package/dist/{diagnostic-S8OX1Eq2.js → diagnostic-C4pLNG6a.js} +1 -1
  59. package/dist/{diagnostic-BZYYYnMx.js → diagnostic-DJ11ZJIJ.js} +3 -3
  60. package/dist/{errors-BRYMqzPb.js → errors-0-at0aYV.js} +1 -1
  61. package/dist/extensionAPI.js +24 -24
  62. package/dist/{fences-Dtk43Q2a.js → fences-Z8d1dj8p.js} +16 -16
  63. package/dist/{fences-DbKcVN_n.js → fences-j5vzXLXf.js} +1 -1
  64. package/dist/{fetch-guard-UCuiKQ5E.js → fetch-guard-BQ-NMG7L.js} +2 -2
  65. package/dist/{fetch-guard-DuBGo4VE.js → fetch-guard-BaBd9ZVm.js} +2 -2
  66. package/dist/{frontmatter-DHBTRDiB.js → frontmatter-CzhUc9Ri.js} +5 -5
  67. package/dist/{fs-safe-Bk4Thq7a.js → fs-safe-Bd1xxVwv.js} +1 -1
  68. package/dist/{fs-safe-CyG0wflg.js → fs-safe-DMWtsz4J.js} +26 -26
  69. package/dist/{legacy-names-6uH6aLhq.js → legacy-names-chsmo2vs.js} +26 -26
  70. package/dist/llm-slug-generator.js +31 -31
  71. package/dist/{manager-BvLLls5L.js → manager-B4xc1xN6.js} +16 -16
  72. package/dist/{manager-Cf3W8LKj.js → manager-CD-sBxdS.js} +3 -3
  73. package/dist/{model-selection-Ca4WCV4n.js → model-selection-CYS--Nqz.js} +1 -1
  74. package/dist/{model-selection-CbMZx9fR.js → model-selection-Ds5bEVQ2.js} +82 -82
  75. package/dist/{nudge-DelcKR7z.js → nudge-CKFTN2YI.js} +9 -9
  76. package/dist/{nudge-Dd9wU1K5.js → nudge-DZuNGDE_.js} +32 -32
  77. package/dist/{outbound-attachment-CKATrxgO.js → outbound-attachment-BsEApkFu.js} +9 -9
  78. package/dist/{outbound-attachment-Btl5f-Lu.js → outbound-attachment-DHLTkCuI.js} +4 -4
  79. package/dist/{pi-embedded-ApthdT0k.js → pi-embedded-C8SqFziv.js} +40 -40
  80. package/dist/{pi-embedded-D-4wht-f.js → pi-embedded-yXKiYEGf.js} +229 -229
  81. package/dist/{pi-model-discovery-Dgbp4zjx.js → pi-model-discovery-CtfGh_up.js} +7 -7
  82. package/dist/{pi-model-discovery-D-D_mngz.js → pi-model-discovery-De5Z6lro.js} +1 -1
  83. package/dist/{proxy-env-v_oj7Urd.js → proxy-env-D4WYaw6X.js} +1 -1
  84. package/dist/{proxy-env-BRG1LWK1.js → proxy-env-DPCNy_X3.js} +1 -1
  85. package/dist/{pw-ai-BH-MmrGa.js → pw-ai-BmuDO1HM.js} +5 -5
  86. package/dist/{pw-ai-DK4N7_nV.js → pw-ai-ohfJZ9jX.js} +11 -11
  87. package/dist/{qmd-manager-Cdz2xlNp.js → qmd-manager-2dro3Ccn.js} +9 -9
  88. package/dist/{qmd-manager-NT_CKYQG.js → qmd-manager-CgZ9ng9u.js} +4 -4
  89. package/dist/{qmd-scope-CyWbQgiS.js → qmd-scope-DMUA3Vq9.js} +1 -1
  90. package/dist/{qmd-scope-hzI66flw.js → qmd-scope-RFd-g5Qi.js} +1 -1
  91. package/dist/{query-expansion-CPkdZdty.js → query-expansion-DQ8zm-TE.js} +1 -1
  92. package/dist/{query-expansion-feTsk3WF.js → query-expansion-GZKwviqQ.js} +13 -13
  93. package/dist/{recorder-DCGoPaKG.js → recorder-DA5NY6nl.js} +1 -1
  94. package/dist/{recorder-C3f7IlHZ.js → recorder-dKE74HOC.js} +2 -2
  95. package/dist/{redact-C4XKILzo.js → redact-LOuk7TRy.js} +1 -1
  96. package/dist/{reply-directives-BjV2MFIq.js → reply-directives-8FtYI79u.js} +9 -9
  97. package/dist/{reply-directives-ToqsETSh.js → reply-directives-CE9WoRyW.js} +49 -49
  98. package/dist/{runs-CPjMwHXQ.js → runs-BIabbRe5.js} +8 -8
  99. package/dist/{runs-D7qs08K3.js → runs-Dw8BeXyu.js} +5 -5
  100. package/dist/{send-BnVk7V-5.js → send-BQzswQlt.js} +5 -5
  101. package/dist/{send-DDBl5H1k.js → send-BTp_lz-m.js} +4 -4
  102. package/dist/{send-B9huC0Lk.js → send-CWcFiq7U.js} +3 -3
  103. package/dist/{send-Cj5zKV3M.js → send-DW_8PsC0.js} +4 -4
  104. package/dist/{sessions-zel35iDK.js → sessions-Bz8mUwgo.js} +5 -5
  105. package/dist/{sessions-CXuFR_IY.js → sessions-DKv9bCbi.js} +1 -1
  106. package/dist/{subsystem-DoQFckDJ.js → subsystem-cFv2jJm-.js} +71 -71
  107. package/dist/{tool-loop-detection-CtOkwPJY.js → tool-loop-detection-9fAxiikd.js} +2 -2
  108. package/dist/{user-run-recording-BVpLQDqe.js → user-run-recording-C1LRU5Lb.js} +2 -2
  109. package/dist/{user-run-recording-C10wwXyW.js → user-run-recording-CWRiZJsh.js} +1 -1
  110. package/dist/web-client/assets/{hast-util-from-dom-CvePVP6E.js → hast-util-from-dom-BoP9fB2c.js} +1 -1
  111. package/dist/web-client/assets/{hast-util-to-mdast-CwugKdbc.js → hast-util-to-mdast-Bo07nYTv.js} +1 -1
  112. package/dist/web-client/assets/{index-CFHLAWrp.js → index-CwqOe0fG.js} +2 -2
  113. package/dist/web-client/index.html +1 -1
  114. package/dist/{ws-2U5gNvRt.js → ws-Do6yaRWR.js} +1 -1
  115. package/dist/{ws-DrXm3NWZ.js → ws-Dt2EocLN.js} +1 -1
  116. package/extensions/a2a/package.json +1 -1
  117. package/extensions/acpx/package.json +1 -1
  118. package/extensions/anthropic/package.json +1 -1
  119. package/extensions/bifrost/package.json +1 -1
  120. package/extensions/bluebubbles/package.json +1 -1
  121. package/extensions/copilot-proxy/package.json +1 -1
  122. package/extensions/deepgram/package.json +1 -1
  123. package/extensions/deepinfra/package.json +1 -1
  124. package/extensions/diagnostics-otel/package.json +1 -1
  125. package/extensions/diffs/package.json +1 -1
  126. package/extensions/discord/package.json +1 -1
  127. package/extensions/dream-cycle/package.json +1 -1
  128. package/extensions/elevenlabs/package.json +1 -1
  129. package/extensions/feishu/package.json +1 -1
  130. package/extensions/gemini-search/package.json +1 -1
  131. package/extensions/google/package.json +1 -1
  132. package/extensions/google-gemini-cli-auth/package.json +1 -1
  133. package/extensions/googlechat/package.json +1 -1
  134. package/extensions/grok-search/package.json +1 -1
  135. package/extensions/groq/package.json +1 -1
  136. package/extensions/identity-oidc/package.json +1 -1
  137. package/extensions/imessage/package.json +1 -1
  138. package/extensions/irc/package.json +1 -1
  139. package/extensions/kimi-search/package.json +1 -1
  140. package/extensions/kokoro/package.json +1 -1
  141. package/extensions/learning-core/package.json +1 -1
  142. package/extensions/line/package.json +1 -1
  143. package/extensions/llm-task/package.json +1 -1
  144. package/extensions/lobster/package.json +1 -1
  145. package/extensions/matrix/CHANGELOG.md +1 -1
  146. package/extensions/matrix/package.json +1 -1
  147. package/extensions/mattermost/package.json +1 -1
  148. package/extensions/memory-core/package.json +1 -1
  149. package/extensions/memory-lancedb/package.json +1 -1
  150. package/extensions/minimax/package.json +1 -1
  151. package/extensions/minimax-portal-auth/package.json +1 -1
  152. package/extensions/mistral/package.json +1 -1
  153. package/extensions/moonshot/package.json +1 -1
  154. package/extensions/msteams/CHANGELOG.md +1 -1
  155. package/extensions/msteams/package.json +1 -1
  156. package/extensions/nextcloud-talk/package.json +1 -1
  157. package/extensions/nostr/CHANGELOG.md +1 -1
  158. package/extensions/nostr/package.json +1 -1
  159. package/extensions/open-prose/package.json +1 -1
  160. package/extensions/openai/package.json +1 -1
  161. package/extensions/openai-realtime/package.json +1 -1
  162. package/extensions/openrouter/package.json +1 -1
  163. package/extensions/perplexity-search/package.json +1 -1
  164. package/extensions/searxng-search/package.json +1 -1
  165. package/extensions/signal/package.json +1 -1
  166. package/extensions/slack/package.json +1 -1
  167. package/extensions/synology-chat/package.json +1 -1
  168. package/extensions/telegram/package.json +1 -1
  169. package/extensions/tlon/package.json +1 -1
  170. package/extensions/twitch/CHANGELOG.md +1 -1
  171. package/extensions/twitch/package.json +1 -1
  172. package/extensions/ui-surfaces/package.json +1 -1
  173. package/extensions/voice-call/CHANGELOG.md +1 -1
  174. package/extensions/voice-call/package.json +1 -1
  175. package/extensions/whatsapp/package.json +1 -1
  176. package/extensions/zai/package.json +1 -1
  177. package/extensions/zalo/CHANGELOG.md +1 -1
  178. package/extensions/zalo/package.json +1 -1
  179. package/extensions/zalouser/CHANGELOG.md +1 -1
  180. package/extensions/zalouser/package.json +1 -1
  181. package/package.json +1 -1
  182. package/dist/control-ui-v2/assets/Badge-4n2tRQ02.js +0 -1
  183. package/dist/control-ui-v2/assets/gateway-features-BIj6-KTX.js +0 -1
  184. package/dist/github-copilot-token-Bm6yG6tw.js +0 -106
  185. package/dist/paths-BIDPYPVC.js +0 -233
@@ -1,23 +1,23 @@
1
- import { Ai as resolveSecretRefValues, Da as resolveSessionAgentId, Et as loadPluginManifestRegistry, Fi as secretRefKey, G as createConfigIO, Kn as acquireSessionWriteLock, Mt as normalizePluginsConfig, Nt as resolveEffectiveEnableState, Pt as resolveMemorySlotDecision, Rt as CHANNEL_IDS, V as loadConfig, W as writeConfigFile, gr as formatCliCommand, ka as normalizeSkillFilter, oa as normalizeResolvedSecretInputString, sa as resolveSecretInputRef, ut as getBlockedNetworkModeReason, va as resolveAgentConfig } from "./model-selection-CbMZx9fR.js";
2
- import { n as STATE_DIR, o as resolveGatewayPort } from "./paths-BIDPYPVC.js";
3
- import { H as isPathInside, K as isDangerousHostEnvVarName, N as isPathInsideWithRealpath, P as openBoundaryFile, Z as CONFIG_DIR, mt as resolvePreferredOpenClawTmpDir, o as defaultRuntime, pt as truncateUtf16Safe, st as resolveUserPath, t as createSubsystemLogger, tt as escapeRegExp, z as resolvePathViaExistingAncestorSync } from "./subsystem-DoQFckDJ.js";
1
+ import { Ai as resolveSecretRefValues, Da as resolveSessionAgentId, Et as loadPluginManifestRegistry, Fi as secretRefKey, G as createConfigIO, Kn as acquireSessionWriteLock, Mt as normalizePluginsConfig, Nt as resolveEffectiveEnableState, Pt as resolveMemorySlotDecision, Rt as CHANNEL_IDS, V as loadConfig, W as writeConfigFile, gr as formatCliCommand, ka as normalizeSkillFilter, oa as normalizeResolvedSecretInputString, sa as resolveSecretInputRef, ut as getBlockedNetworkModeReason, va as resolveAgentConfig } from "./model-selection-Ds5bEVQ2.js";
2
+ import { n as STATE_DIR, o as resolveGatewayPort } from "./paths-B_gs59ga.js";
3
+ import { H as isPathInside, K as isDangerousHostEnvVarName, N as isPathInsideWithRealpath, P as openBoundaryFile, Z as CONFIG_DIR, mt as resolvePreferredOpenClawTmpDir, o as defaultRuntime, pt as truncateUtf16Safe, st as resolveUserPath, t as createSubsystemLogger, tt as escapeRegExp, z as resolvePathViaExistingAncestorSync } from "./subsystem-cFv2jJm-.js";
4
4
  import { n as resolveProcessScopedMap } from "./plain-object-Doc_YkH1.js";
5
- import { G as resolveAgentIdFromSessionKey, H as normalizeAgentId, S as resolveOpenClawPackageRootSync, c as DEFAULT_AGENTS_FILENAME, d as DEFAULT_HEARTBEAT_FILENAME, f as DEFAULT_IDENTITY_FILENAME, g as ensureAgentWorkspace, h as DEFAULT_USER_FILENAME, l as DEFAULT_AGENT_WORKSPACE_DIR, m as DEFAULT_TOOLS_FILENAME, p as DEFAULT_SOUL_FILENAME, s as parseBooleanValue, u as DEFAULT_BOOTSTRAP_FILENAME, w as runExec } from "./legacy-names-6uH6aLhq.js";
6
- import { F as resolveAgentMainSessionKey, Ft as sanitizeToolCallIdsForCloudCodeAssist, H as writeJsonAtomic, P as canonicalizeMainSessionAlias, W as resolveGatewayCredentialsFromValues, o as parseInlineDirectives } from "./sessions-zel35iDK.js";
5
+ import { G as resolveAgentIdFromSessionKey, H as normalizeAgentId, S as resolveOpenClawPackageRootSync, c as DEFAULT_AGENTS_FILENAME, d as DEFAULT_HEARTBEAT_FILENAME, f as DEFAULT_IDENTITY_FILENAME, g as ensureAgentWorkspace, h as DEFAULT_USER_FILENAME, l as DEFAULT_AGENT_WORKSPACE_DIR, m as DEFAULT_TOOLS_FILENAME, p as DEFAULT_SOUL_FILENAME, s as parseBooleanValue, u as DEFAULT_BOOTSTRAP_FILENAME, w as runExec } from "./legacy-names-chsmo2vs.js";
6
+ import { F as resolveAgentMainSessionKey, Ft as sanitizeToolCallIdsForCloudCodeAssist, H as writeJsonAtomic, P as canonicalizeMainSessionAlias, W as resolveGatewayCredentialsFromValues, o as parseInlineDirectives } from "./sessions-Bz8mUwgo.js";
7
7
  import { t as generateSecureToken } from "./secure-random-CSsVRTTy.js";
8
- import { a as buildImageResizeSideGrid, f as ensureMediaDir, i as IMAGE_REDUCE_QUALITY_STEPS, m as saveMediaBuffer, r as parseFenceSpans, s as getImageMetadata, u as resizeToJpeg } from "./fences-Dtk43Q2a.js";
9
- import { A as DEFAULT_DOWNLOAD_DIR, B as DEFAULT_AI_SNAPSHOT_MAX_CHARS, C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, F as resolveWritablePathWithinRoot, G as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, H as DEFAULT_BROWSER_EVALUATE_ENABLED, L as normalizeBrowserFormField, M as DEFAULT_UPLOAD_DIR, N as resolveExistingPathsWithinRoot, O as resolveCdpReachabilityTimeouts, R as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_OPENCLAW_BROWSER_COLOR, V as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, W as DEFAULT_OPENCLAW_BROWSER_ENABLED, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_TRACE_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS } from "./chrome-B3nEcesV.js";
10
- import { r as isLoopbackHost } from "./ws-DrXm3NWZ.js";
11
- import { a as resolveOpenClawManifestBlock, c as resolveOpenClawManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseOpenClawManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList$1, o as resolveOpenClawManifestInstall, r as parseFrontmatterBool, s as resolveOpenClawManifestOs, t as getFrontmatterString, u as evaluateRuntimeEligibility } from "./frontmatter-DHBTRDiB.js";
12
- import { l as PATH_ALIAS_POLICIES, u as assertNoPathAliasEscape } from "./fs-safe-CyG0wflg.js";
13
- import { r as formatErrorMessage, t as extractErrorCode } from "./errors-BRYMqzPb.js";
14
- import { n as SsrFBlockedError } from "./proxy-env-v_oj7Urd.js";
8
+ import { a as buildImageResizeSideGrid, f as ensureMediaDir, i as IMAGE_REDUCE_QUALITY_STEPS, m as saveMediaBuffer, r as parseFenceSpans, s as getImageMetadata, u as resizeToJpeg } from "./fences-Z8d1dj8p.js";
9
+ import { A as DEFAULT_DOWNLOAD_DIR, B as DEFAULT_AI_SNAPSHOT_MAX_CHARS, C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, F as resolveWritablePathWithinRoot, G as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, H as DEFAULT_BROWSER_EVALUATE_ENABLED, L as normalizeBrowserFormField, M as DEFAULT_UPLOAD_DIR, N as resolveExistingPathsWithinRoot, O as resolveCdpReachabilityTimeouts, R as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_OPENCLAW_BROWSER_COLOR, V as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, W as DEFAULT_OPENCLAW_BROWSER_ENABLED, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_TRACE_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS } from "./chrome-CKy31bWh.js";
10
+ import { r as isLoopbackHost } from "./ws-Do6yaRWR.js";
11
+ import { a as resolveOpenClawManifestBlock, c as resolveOpenClawManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseOpenClawManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList$1, o as resolveOpenClawManifestInstall, r as parseFrontmatterBool, s as resolveOpenClawManifestOs, t as getFrontmatterString, u as evaluateRuntimeEligibility } from "./frontmatter-CzhUc9Ri.js";
12
+ import { l as PATH_ALIAS_POLICIES, u as assertNoPathAliasEscape } from "./fs-safe-DMWtsz4J.js";
13
+ import { r as formatErrorMessage, t as extractErrorCode } from "./errors-0-at0aYV.js";
14
+ import { n as SsrFBlockedError } from "./proxy-env-D4WYaw6X.js";
15
15
  import { t as resolveNetworkSsrFPolicy } from "./ssrf-config-CIKAlvUL.js";
16
16
  import { n as resolveWindowsSpawnProgram, t as materializeWindowsSpawnProgram } from "./windows-spawn-C5N_9RQ9.js";
17
17
  import path, { posix } from "node:path";
18
- import fs, { existsSync } from "node:fs";
18
+ import syncFs, { existsSync } from "node:fs";
19
19
  import os from "node:os";
20
- import fs$1 from "node:fs/promises";
20
+ import fs from "node:fs/promises";
21
21
  import { spawn } from "node:child_process";
22
22
  import { URL as URL$1, fileURLToPath } from "node:url";
23
23
  import crypto, { createHash, timingSafeEqual } from "node:crypto";
@@ -1702,13 +1702,13 @@ function shortPath(value) {
1702
1702
  //#region src/agents/skills/bundled-dir.ts
1703
1703
  function looksLikeSkillsDir(dir) {
1704
1704
  try {
1705
- const entries = fs.readdirSync(dir, { withFileTypes: true });
1705
+ const entries = syncFs.readdirSync(dir, { withFileTypes: true });
1706
1706
  for (const entry of entries) {
1707
1707
  if (entry.name.startsWith(".")) continue;
1708
1708
  const fullPath = path.join(dir, entry.name);
1709
1709
  if (entry.isFile() && entry.name.endsWith(".md")) return true;
1710
1710
  if (entry.isDirectory()) {
1711
- if (fs.existsSync(path.join(fullPath, "SKILL.md"))) return true;
1711
+ if (syncFs.existsSync(path.join(fullPath, "SKILL.md"))) return true;
1712
1712
  }
1713
1713
  }
1714
1714
  } catch {
@@ -1723,7 +1723,7 @@ function resolveBundledSkillsDir(opts = {}) {
1723
1723
  const execPath = opts.execPath ?? process.execPath;
1724
1724
  const execDir = path.dirname(execPath);
1725
1725
  const sibling = path.join(execDir, "skills");
1726
- if (fs.existsSync(sibling)) return sibling;
1726
+ if (syncFs.existsSync(sibling)) return sibling;
1727
1727
  } catch {}
1728
1728
  try {
1729
1729
  const moduleUrl = opts.moduleUrl ?? import.meta.url;
@@ -1786,7 +1786,7 @@ function resolvePluginSkillDirs(params) {
1786
1786
  const trimmed = raw.trim();
1787
1787
  if (!trimmed) continue;
1788
1788
  const candidate = path.resolve(record.rootDir, trimmed);
1789
- if (!fs.existsSync(candidate)) {
1789
+ if (!syncFs.existsSync(candidate)) {
1790
1790
  log$4.warn(`plugin skill path not found (${record.id}): ${candidate}`);
1791
1791
  continue;
1792
1792
  }
@@ -1817,7 +1817,7 @@ async function serializeByKey(key, task) {
1817
1817
 
1818
1818
  //#endregion
1819
1819
  //#region src/agents/skills/workspace.ts
1820
- const fsp = fs.promises;
1820
+ const fsp = syncFs.promises;
1821
1821
  const skillsLogger = createSubsystemLogger("skills");
1822
1822
  const skillCommandDebugOnceState = resolveProcessScopedMap(Symbol.for("openclaw.agents.skills.workspace.skillCommandDebugOnce"));
1823
1823
  const skillCommandDebugOnce = skillCommandDebugOnceState.get("value") ?? /* @__PURE__ */ new Set();
@@ -1896,7 +1896,7 @@ function resolveSkillsLimits(config) {
1896
1896
  }
1897
1897
  function listChildDirectories(dir) {
1898
1898
  try {
1899
- const entries = fs.readdirSync(dir, { withFileTypes: true });
1899
+ const entries = syncFs.readdirSync(dir, { withFileTypes: true });
1900
1900
  const dirs = [];
1901
1901
  for (const entry of entries) {
1902
1902
  if (entry.name.startsWith(".")) continue;
@@ -1907,7 +1907,7 @@ function listChildDirectories(dir) {
1907
1907
  continue;
1908
1908
  }
1909
1909
  if (entry.isSymbolicLink()) try {
1910
- if (fs.statSync(fullPath).isDirectory()) dirs.push(entry.name);
1910
+ if (syncFs.statSync(fullPath).isDirectory()) dirs.push(entry.name);
1911
1911
  } catch {}
1912
1912
  }
1913
1913
  return dirs;
@@ -1918,7 +1918,7 @@ function listChildDirectories(dir) {
1918
1918
  function resolveNestedSkillsRoot(dir, opts) {
1919
1919
  const nested = path.join(dir, "skills");
1920
1920
  try {
1921
- if (!fs.existsSync(nested) || !fs.statSync(nested).isDirectory()) return { baseDir: dir };
1921
+ if (!syncFs.existsSync(nested) || !syncFs.statSync(nested).isDirectory()) return { baseDir: dir };
1922
1922
  } catch {
1923
1923
  return { baseDir: dir };
1924
1924
  }
@@ -1927,7 +1927,7 @@ function resolveNestedSkillsRoot(dir, opts) {
1927
1927
  const toScan = scanLimit === 0 ? [] : nestedDirs.slice(0, Math.min(nestedDirs.length, scanLimit));
1928
1928
  for (const name of toScan) {
1929
1929
  const skillMd = path.join(nested, name, "SKILL.md");
1930
- if (fs.existsSync(skillMd)) return {
1930
+ if (syncFs.existsSync(skillMd)) return {
1931
1931
  baseDir: nested,
1932
1932
  note: `Detected nested skills root at ${nested}`
1933
1933
  };
@@ -1947,9 +1947,9 @@ function loadSkillEntries(workspaceDir, opts) {
1947
1947
  const loadSkills = (params) => {
1948
1948
  const baseDir = resolveNestedSkillsRoot(params.dir, { maxEntriesToScan: limits.maxCandidatesPerRoot }).baseDir;
1949
1949
  const rootSkillMd = path.join(baseDir, "SKILL.md");
1950
- if (fs.existsSync(rootSkillMd)) {
1950
+ if (syncFs.existsSync(rootSkillMd)) {
1951
1951
  try {
1952
- const size = fs.statSync(rootSkillMd).size;
1952
+ const size = syncFs.statSync(rootSkillMd).size;
1953
1953
  if (size > limits.maxSkillFileBytes) {
1954
1954
  skillsLogger.warn("Skipping skills root due to oversized SKILL.md.", {
1955
1955
  dir: baseDir,
@@ -1988,9 +1988,9 @@ function loadSkillEntries(workspaceDir, opts) {
1988
1988
  for (const name of limitedChildren) {
1989
1989
  const skillDir = path.join(baseDir, name);
1990
1990
  const skillMd = path.join(skillDir, "SKILL.md");
1991
- if (!fs.existsSync(skillMd)) continue;
1991
+ if (!syncFs.existsSync(skillMd)) continue;
1992
1992
  try {
1993
- const size = fs.statSync(skillMd).size;
1993
+ const size = syncFs.statSync(skillMd).size;
1994
1994
  if (size > limits.maxSkillFileBytes) {
1995
1995
  skillsLogger.warn("Skipping skill due to oversized SKILL.md.", {
1996
1996
  skill: name,
@@ -2058,7 +2058,7 @@ function loadSkillEntries(workspaceDir, opts) {
2058
2058
  return Array.from(merged.values()).map((skill) => {
2059
2059
  let frontmatter = {};
2060
2060
  try {
2061
- frontmatter = parseFrontmatter(fs.readFileSync(skill.filePath, "utf-8"));
2061
+ frontmatter = parseFrontmatter(syncFs.readFileSync(skill.filePath, "utf-8"));
2062
2062
  } catch {}
2063
2063
  return {
2064
2064
  skill,
@@ -2324,7 +2324,7 @@ function isModuleNotFoundError(err) {
2324
2324
  }
2325
2325
  async function loadPwAiModule(mode) {
2326
2326
  try {
2327
- return await import("./pw-ai-DK4N7_nV.js");
2327
+ return await import("./pw-ai-ohfJZ9jX.js");
2328
2328
  } catch (err) {
2329
2329
  if (mode === "soft") return null;
2330
2330
  if (isModuleNotFoundError(err)) return null;
@@ -2482,7 +2482,7 @@ async function withPlaywrightRouteContext(params) {
2482
2482
  //#endregion
2483
2483
  //#region src/browser/routes/output-paths.ts
2484
2484
  async function ensureOutputRootDir(rootDir) {
2485
- await fs$1.mkdir(rootDir, { recursive: true });
2485
+ await fs.mkdir(rootDir, { recursive: true });
2486
2486
  }
2487
2487
  async function resolveWritableOutputPathOrRespond(params) {
2488
2488
  if (params.ensureRootDir) await ensureOutputRootDir(params.rootDir);
@@ -4100,11 +4100,11 @@ async function movePathToTrash(targetPath) {
4100
4100
  return targetPath;
4101
4101
  } catch {
4102
4102
  const trashDir = path.join(os.homedir(), ".Trash");
4103
- fs.mkdirSync(trashDir, { recursive: true });
4103
+ syncFs.mkdirSync(trashDir, { recursive: true });
4104
4104
  const base = path.basename(targetPath);
4105
4105
  let dest = path.join(trashDir, `${base}-${Date.now()}`);
4106
- if (fs.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
4107
- fs.renameSync(targetPath, dest);
4106
+ if (syncFs.existsSync(dest)) dest = path.join(trashDir, `${base}-${Date.now()}-${generateSecureToken(6)}`);
4107
+ syncFs.renameSync(targetPath, dest);
4108
4108
  return dest;
4109
4109
  }
4110
4110
  }
@@ -4191,7 +4191,7 @@ function createBrowserProfilesService(ctx) {
4191
4191
  } catch {}
4192
4192
  const userDataDir = resolveOpenClawUserDataDir(name);
4193
4193
  const profileDir = path.dirname(userDataDir);
4194
- if (fs.existsSync(profileDir)) {
4194
+ if (syncFs.existsSync(profileDir)) {
4195
4195
  await movePathToTrash(profileDir);
4196
4196
  deleted = true;
4197
4197
  }
@@ -4689,7 +4689,7 @@ function createProfileAvailability({ opts, profile, state, getProfileState, setP
4689
4689
  //#region src/browser/server-context.reset.ts
4690
4690
  async function closePlaywrightBrowserConnection() {
4691
4691
  try {
4692
- await (await import("./pw-ai-DK4N7_nV.js")).closePlaywrightBrowserConnection();
4692
+ await (await import("./pw-ai-ohfJZ9jX.js")).closePlaywrightBrowserConnection();
4693
4693
  } catch {}
4694
4694
  }
4695
4695
  function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, isHttpReachable, resolveOpenClawUserDataDir }) {
@@ -4707,7 +4707,7 @@ function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, i
4707
4707
  if (await isHttpReachable(300) && !profileState.running) await closePlaywrightBrowserConnection();
4708
4708
  if (profileState.running) await stopRunningBrowser();
4709
4709
  await closePlaywrightBrowserConnection();
4710
- if (!fs.existsSync(userDataDir)) return {
4710
+ if (!syncFs.existsSync(userDataDir)) return {
4711
4711
  moved: false,
4712
4712
  from: userDataDir
4713
4713
  };
@@ -5399,7 +5399,7 @@ async function withRegistryLock(registryPath, fn) {
5399
5399
  }
5400
5400
  async function readRegistryFromFile(registryPath, mode) {
5401
5401
  try {
5402
- const raw = await fs$1.readFile(registryPath, "utf-8");
5402
+ const raw = await fs.readFile(registryPath, "utf-8");
5403
5403
  const parsed = JSON.parse(raw);
5404
5404
  if (isRegistryFile(parsed)) return parsed;
5405
5405
  if (mode === "fallback") return { entries: [] };
@@ -6783,7 +6783,7 @@ var SandboxFsBridgeImpl = class {
6783
6783
  if (guarded.reason !== "path") {
6784
6784
  if (!(options.allowedType === "directory" && this.pathIsExistingDirectory(effectiveHostPath))) throw guarded.error instanceof Error ? guarded.error : /* @__PURE__ */ new Error(`Sandbox boundary checks failed; cannot ${options.action}: ${target.containerPath}`);
6785
6785
  }
6786
- } else fs.closeSync(guarded.fd);
6786
+ } else syncFs.closeSync(guarded.fd);
6787
6787
  }
6788
6788
  const canonicalContainerPath = await this.resolveCanonicalContainerPath({
6789
6789
  containerPath: target.containerPath,
@@ -6801,14 +6801,14 @@ var SandboxFsBridgeImpl = class {
6801
6801
  }
6802
6802
  pathIsExistingDirectory(hostPath) {
6803
6803
  try {
6804
- return fs.statSync(hostPath).isDirectory();
6804
+ return syncFs.statSync(hostPath).isDirectory();
6805
6805
  } catch {
6806
6806
  return false;
6807
6807
  }
6808
6808
  }
6809
6809
  pathIsSymlink(hostPath) {
6810
6810
  try {
6811
- return fs.lstatSync(hostPath).isSymbolicLink();
6811
+ return syncFs.lstatSync(hostPath).isSymbolicLink();
6812
6812
  } catch {
6813
6813
  return false;
6814
6814
  }
@@ -6822,7 +6822,7 @@ var SandboxFsBridgeImpl = class {
6822
6822
  allowedType: "directory"
6823
6823
  });
6824
6824
  if (guarded.ok) {
6825
- fs.closeSync(guarded.fd);
6825
+ syncFs.closeSync(guarded.fd);
6826
6826
  return;
6827
6827
  }
6828
6828
  if (guarded.reason === "io" && this.pathIsExistingRealDirectory(parentPath)) return;
@@ -6830,7 +6830,7 @@ var SandboxFsBridgeImpl = class {
6830
6830
  }
6831
6831
  pathIsExistingRealDirectory(hostPath) {
6832
6832
  try {
6833
- return fs.lstatSync(hostPath).isDirectory();
6833
+ return syncFs.lstatSync(hostPath).isDirectory();
6834
6834
  } catch {
6835
6835
  return false;
6836
6836
  }
@@ -7076,7 +7076,7 @@ function formatSandboxToolPolicyBlockedMessage(params) {
7076
7076
  //#endregion
7077
7077
  //#region src/agents/sandbox/workspace.ts
7078
7078
  async function ensureSandboxWorkspace(workspaceDir, seedFrom, skipBootstrap) {
7079
- await fs$1.mkdir(workspaceDir, { recursive: true });
7079
+ await fs.mkdir(workspaceDir, { recursive: true });
7080
7080
  if (seedFrom) {
7081
7081
  const seed = resolveUserPath(seedFrom);
7082
7082
  const files = [
@@ -7092,7 +7092,7 @@ async function ensureSandboxWorkspace(workspaceDir, seedFrom, skipBootstrap) {
7092
7092
  const src = path.join(seed, name);
7093
7093
  const dest = path.join(workspaceDir, name);
7094
7094
  try {
7095
- await fs$1.access(dest);
7095
+ await fs.access(dest);
7096
7096
  } catch {
7097
7097
  try {
7098
7098
  const opened = await openBoundaryFile({
@@ -7102,13 +7102,13 @@ async function ensureSandboxWorkspace(workspaceDir, seedFrom, skipBootstrap) {
7102
7102
  });
7103
7103
  if (!opened.ok) continue;
7104
7104
  try {
7105
- const content = fs.readFileSync(opened.fd, "utf-8");
7106
- await fs$1.writeFile(dest, content, {
7105
+ const content = syncFs.readFileSync(opened.fd, "utf-8");
7106
+ await fs.writeFile(dest, content, {
7107
7107
  encoding: "utf-8",
7108
7108
  flag: "wx"
7109
7109
  });
7110
7110
  } finally {
7111
- fs.closeSync(opened.fd);
7111
+ syncFs.closeSync(opened.fd);
7112
7112
  }
7113
7113
  } catch {}
7114
7114
  }
@@ -7142,7 +7142,7 @@ async function ensureSandboxWorkspaceLayout(params) {
7142
7142
  const message = error instanceof Error ? error.message : JSON.stringify(error);
7143
7143
  defaultRuntime.error?.(`Sandbox skill sync failed: ${message}`);
7144
7144
  }
7145
- } else await fs$1.mkdir(workspaceDir, { recursive: true });
7145
+ } else await fs.mkdir(workspaceDir, { recursive: true });
7146
7146
  return {
7147
7147
  agentWorkspaceDir,
7148
7148
  scopeKey,
@@ -7152,7 +7152,7 @@ async function ensureSandboxWorkspaceLayout(params) {
7152
7152
  }
7153
7153
  async function resolveSandboxDockerUser(params) {
7154
7154
  if (params.docker.user?.trim()) return params.docker;
7155
- const stat = params.stat ?? ((workspaceDir) => fs$1.stat(workspaceDir));
7155
+ const stat = params.stat ?? ((workspaceDir) => fs.stat(workspaceDir));
7156
7156
  try {
7157
7157
  const workspaceStat = await stat(params.workspaceDir);
7158
7158
  const uid = Number.isInteger(workspaceStat.uid) ? workspaceStat.uid : null;
@@ -1,14 +1,14 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Vi as isTruthyEnvValue } from "./model-selection-CbMZx9fR.js";
3
- import { l as resolveStateDir } from "./paths-BIDPYPVC.js";
4
- import { C as appendFileLog, lt as shortenHomeInString } from "./subsystem-DoQFckDJ.js";
2
+ import { Vi as isTruthyEnvValue } from "./model-selection-Ds5bEVQ2.js";
3
+ import { l as resolveStateDir } from "./paths-B_gs59ga.js";
4
+ import { C as appendFileLog, lt as shortenHomeInString } from "./subsystem-cFv2jJm-.js";
5
5
  import { n as resolveProcessScopedMap } from "./plain-object-Doc_YkH1.js";
6
- import { J as sanitizeUserFacingText, Lt as SILENT_REPLY_TOKEN, r as extractTextFromChatContent, t as parseReplyDirectives, v as isMessagingToolDuplicateNormalized, y as normalizeTextForComparison } from "./reply-directives-ToqsETSh.js";
7
- import { x as normalizeUsage } from "./sessions-zel35iDK.js";
8
- import { c as logModelCallCompleted, p as logSessionStateChange, s as logMessageQueued, t as diag, u as logModelCallStarted, v as refreshRunProgress } from "./diagnostic-BZYYYnMx.js";
6
+ import { J as sanitizeUserFacingText, Lt as SILENT_REPLY_TOKEN, r as extractTextFromChatContent, t as parseReplyDirectives, v as isMessagingToolDuplicateNormalized, y as normalizeTextForComparison } from "./reply-directives-CE9WoRyW.js";
7
+ import { x as normalizeUsage } from "./sessions-Bz8mUwgo.js";
8
+ import { c as logModelCallCompleted, p as logSessionStateChange, s as logMessageQueued, t as diag, u as logModelCallStarted, v as refreshRunProgress } from "./diagnostic-DJ11ZJIJ.js";
9
9
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Di8oqY0E.js";
10
- import { n as redactToolDetail } from "./redact-C4XKILzo.js";
11
- import { r as parseFenceSpans } from "./fences-Dtk43Q2a.js";
10
+ import { n as redactToolDetail } from "./redact-LOuk7TRy.js";
11
+ import { r as parseFenceSpans } from "./fences-Z8d1dj8p.js";
12
12
  import path from "node:path";
13
13
  import { randomUUID } from "node:crypto";
14
14
 
@@ -1,14 +1,14 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Gi as isTruthyEnvValue } from "./model-selection-Ca4WCV4n.js";
2
+ import { Gi as isTruthyEnvValue } from "./model-selection-CYS--Nqz.js";
3
3
  import { l as resolveStateDir } from "./paths-B_gs59ga.js";
4
4
  import { C as appendFileLog, lt as shortenHomeInString } from "./subsystem-DynBFcQj.js";
5
5
  import { n as resolveProcessScopedMap } from "./plain-object-Doc_YkH1.js";
6
- import { J as sanitizeUserFacingText, Lt as SILENT_REPLY_TOKEN, r as extractTextFromChatContent, t as parseReplyDirectives, v as isMessagingToolDuplicateNormalized, y as normalizeTextForComparison } from "./reply-directives-BjV2MFIq.js";
7
- import { x as normalizeUsage } from "./sessions-CXuFR_IY.js";
8
- import { c as logModelCallCompleted, p as logSessionStateChange, s as logMessageQueued, t as diag, u as logModelCallStarted, v as refreshRunProgress } from "./diagnostic-S8OX1Eq2.js";
6
+ import { J as sanitizeUserFacingText, Lt as SILENT_REPLY_TOKEN, r as extractTextFromChatContent, t as parseReplyDirectives, v as isMessagingToolDuplicateNormalized, y as normalizeTextForComparison } from "./reply-directives-8FtYI79u.js";
7
+ import { x as normalizeUsage } from "./sessions-DKv9bCbi.js";
8
+ import { c as logModelCallCompleted, p as logSessionStateChange, s as logMessageQueued, t as diag, u as logModelCallStarted, v as refreshRunProgress } from "./diagnostic-C4pLNG6a.js";
9
9
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-jW46P4IL.js";
10
10
  import { n as redactToolDetail } from "./redact-CEFvBGJg.js";
11
- import { r as parseFenceSpans } from "./fences-DbKcVN_n.js";
11
+ import { r as parseFenceSpans } from "./fences-j5vzXLXf.js";
12
12
  import path from "node:path";
13
13
  import { randomUUID } from "node:crypto";
14
14
 
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { V as loadConfig, dr as resolveSignalAccount } from "./model-selection-CbMZx9fR.js";
3
- import { r as avoidTrailingHighSurrogateBreak } from "./subsystem-DoQFckDJ.js";
2
+ import { V as loadConfig, dr as resolveSignalAccount } from "./model-selection-Ds5bEVQ2.js";
3
+ import { r as avoidTrailingHighSurrogateBreak } from "./subsystem-cFv2jJm-.js";
4
4
  import { n as generateSecureUuid } from "./secure-random-CSsVRTTy.js";
5
- import { b as kindFromMime } from "./fences-Dtk43Q2a.js";
6
- import { a as resolveMarkdownTableMode, n as chunkMarkdownIR, r as markdownToIR, t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-CKATrxgO.js";
7
- import { a as bindAbortRelay, o as fetchWithTimeout } from "./fetch-guard-DuBGo4VE.js";
5
+ import { b as kindFromMime } from "./fences-Z8d1dj8p.js";
6
+ import { a as resolveMarkdownTableMode, n as chunkMarkdownIR, r as markdownToIR, t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-BsEApkFu.js";
7
+ import { a as bindAbortRelay, o as fetchWithTimeout } from "./fetch-guard-BaBd9ZVm.js";
8
8
 
9
9
  //#region src/infra/fetch.ts
10
10
  const wrapFetchWithAbortSignalMarker = Symbol.for("openclaw.fetch.abort-signal-wrapped");
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { V as loadConfig, vr as resolveIMessageAccount } from "./model-selection-CbMZx9fR.js";
3
- import { it as normalizeE164, st as resolveUserPath } from "./subsystem-DoQFckDJ.js";
4
- import { b as kindFromMime } from "./fences-Dtk43Q2a.js";
5
- import { a as resolveMarkdownTableMode, i as markdownToIRWithMeta, t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-CKATrxgO.js";
2
+ import { V as loadConfig, vr as resolveIMessageAccount } from "./model-selection-Ds5bEVQ2.js";
3
+ import { it as normalizeE164, st as resolveUserPath } from "./subsystem-cFv2jJm-.js";
4
+ import { b as kindFromMime } from "./fences-Z8d1dj8p.js";
5
+ import { a as resolveMarkdownTableMode, i as markdownToIRWithMeta, t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-BsEApkFu.js";
6
6
  import { spawn } from "node:child_process";
7
7
  import { createInterface } from "node:readline";
8
8
 
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Sr as resolveIMessageAccount, V as loadConfig } from "./model-selection-Ca4WCV4n.js";
2
+ import { Sr as resolveIMessageAccount, V as loadConfig } from "./model-selection-CYS--Nqz.js";
3
3
  import { it as normalizeE164, st as resolveUserPath } from "./subsystem-DynBFcQj.js";
4
- import { b as kindFromMime } from "./fences-DbKcVN_n.js";
5
- import { a as resolveMarkdownTableMode, i as markdownToIRWithMeta, t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-Btl5f-Lu.js";
4
+ import { b as kindFromMime } from "./fences-j5vzXLXf.js";
5
+ import { a as resolveMarkdownTableMode, i as markdownToIRWithMeta, t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-DHLTkCuI.js";
6
6
  import { spawn } from "node:child_process";
7
7
  import { createInterface } from "node:readline";
8
8
 
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { V as loadConfig, hr as resolveSignalAccount } from "./model-selection-Ca4WCV4n.js";
2
+ import { V as loadConfig, hr as resolveSignalAccount } from "./model-selection-CYS--Nqz.js";
3
3
  import { r as avoidTrailingHighSurrogateBreak } from "./subsystem-DynBFcQj.js";
4
4
  import { n as generateSecureUuid } from "./secure-random-gljjQeWv.js";
5
- import { b as kindFromMime } from "./fences-DbKcVN_n.js";
6
- import { a as resolveMarkdownTableMode, n as chunkMarkdownIR, r as markdownToIR, t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-Btl5f-Lu.js";
7
- import { a as bindAbortRelay, o as fetchWithTimeout } from "./fetch-guard-UCuiKQ5E.js";
5
+ import { b as kindFromMime } from "./fences-j5vzXLXf.js";
6
+ import { a as resolveMarkdownTableMode, n as chunkMarkdownIR, r as markdownToIR, t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-DHLTkCuI.js";
7
+ import { a as bindAbortRelay, o as fetchWithTimeout } from "./fetch-guard-BQ-NMG7L.js";
8
8
 
9
9
  //#region src/infra/fetch.ts
10
10
  const wrapFetchWithAbortSignalMarker = Symbol.for("openclaw.fetch.abort-signal-wrapped");
@@ -1,11 +1,11 @@
1
- import { Bn as resolveDefaultSessionStorePath, Fn as serializeSessionIndexRecordKey, Gn as resolveStorePath, Gr as computeNextAvailableAtMs, Ir as normalizeMessageChannel, Jn as DEFAULT_IDLE_MINUTES, Jr as serializeRetryPolicy, Kr as isRetryExhausted, Ln as resolveUpdatedAfterPageSize, Mn as getConfiguredSessionStorageRuntime, On as loadSessionStore, Ur as CtxProjectionCorruptionError, V as loadConfig, Vn as resolveSessionFilePath, er as resolveGroupSessionKey, gn as getConversationReadQuery, qr as parseRetryPolicy, sa as resolveSecretInputRef, vn as requireSessionStorageRuntime, wr as normalizeChatType, xn as updateSessionStore, zn as SESSION_RUN_STORE_FILE_NAME } from "./model-selection-CbMZx9fR.js";
2
- import { l as resolveStateDir } from "./paths-BIDPYPVC.js";
3
- import { ft as sliceUtf16Safe, it as normalizeE164, pt as truncateUtf16Safe, t as createSubsystemLogger } from "./subsystem-DoQFckDJ.js";
1
+ import { Bn as resolveDefaultSessionStorePath, Fn as serializeSessionIndexRecordKey, Gn as resolveStorePath, Gr as computeNextAvailableAtMs, Ir as normalizeMessageChannel, Jn as DEFAULT_IDLE_MINUTES, Jr as serializeRetryPolicy, Kr as isRetryExhausted, Ln as resolveUpdatedAfterPageSize, Mn as getConfiguredSessionStorageRuntime, On as loadSessionStore, Ur as CtxProjectionCorruptionError, V as loadConfig, Vn as resolveSessionFilePath, er as resolveGroupSessionKey, gn as getConversationReadQuery, qr as parseRetryPolicy, sa as resolveSecretInputRef, vn as requireSessionStorageRuntime, wr as normalizeChatType, xn as updateSessionStore, zn as SESSION_RUN_STORE_FILE_NAME } from "./model-selection-Ds5bEVQ2.js";
2
+ import { l as resolveStateDir } from "./paths-B_gs59ga.js";
3
+ import { ft as sliceUtf16Safe, it as normalizeE164, pt as truncateUtf16Safe, t as createSubsystemLogger } from "./subsystem-cFv2jJm-.js";
4
4
  import { n as resolveProcessScopedMap } from "./plain-object-Doc_YkH1.js";
5
- import { A as DEFAULT_AGENT_ID, H as normalizeAgentId, K as resolveCanonicalIdentity, L as computeIdentityLinkMatchKeys, N as RAW_PEER_KEY_PREFIX, P as buildAgentMainSessionKey, R as computeIdentityLinkScopedMatchKey, U as normalizeMainKey, lt as parseAgentSessionKey, nt as HEARTBEAT_SESSION_KEY_SEGMENT, q as resolveConfiguredCanonicalIdentity, rt as WAKE_GATE_SESSION_KEY_SEGMENT, st as isCronTriggerSessionKey, tt as BACKGROUND_SESSION_KEY_SEGMENT } from "./legacy-names-6uH6aLhq.js";
5
+ import { A as DEFAULT_AGENT_ID, H as normalizeAgentId, K as resolveCanonicalIdentity, L as computeIdentityLinkMatchKeys, N as RAW_PEER_KEY_PREFIX, P as buildAgentMainSessionKey, R as computeIdentityLinkScopedMatchKey, U as normalizeMainKey, lt as parseAgentSessionKey, nt as HEARTBEAT_SESSION_KEY_SEGMENT, q as resolveConfiguredCanonicalIdentity, rt as WAKE_GATE_SESSION_KEY_SEGMENT, st as isCronTriggerSessionKey, tt as BACKGROUND_SESSION_KEY_SEGMENT } from "./legacy-names-chsmo2vs.js";
6
6
  import { t as emitDiagnosticEvent } from "./diagnostic-events-RfJYFlJM.js";
7
7
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-k21fdARq.js";
8
- import { n as formatErrorChainMessage } from "./errors-BRYMqzPb.js";
8
+ import { n as formatErrorChainMessage } from "./errors-0-at0aYV.js";
9
9
  import { a as guardVerificationStoreInputs, i as clientResumeRecordArtifactId, n as VERIFICATION_STORE_ERROR_CODES, r as VerificationStoreError, t as CLIENT_RESUME_RECORD_KIND } from "./verification-store-DriJQYAH.js";
10
10
  import { createRequire } from "node:module";
11
11
  import path, { join } from "node:path";
@@ -1,4 +1,4 @@
1
- import { $a as DEFAULT_AGENT_ID, Br as normalizeMessageChannel, Co as BACKGROUND_SESSION_KEY_SEGMENT, Gn as resolveSessionFilePath, In as getConfiguredSessionStorageRuntime, Mn as loadSessionStore, Or as normalizeChatType, Qn as DEFAULT_IDLE_MINUTES, Qr as serializeRetryPolicy, Tn as updateSessionStore, To as WAKE_GATE_SESSION_KEY_SEGMENT, Un as SESSION_RUN_STORE_FILE_NAME, V as loadConfig, Vn as resolveUpdatedAfterPageSize, Wn as resolveDefaultSessionStorePath, Xr as isRetryExhausted, Yn as resolveStorePath, Yr as computeNextAvailableAtMs, Zr as parseRetryPolicy, do as normalizeMainKey, fa as resolveSecretInputRef, ho as resolveConfiguredCanonicalIdentity, ir as resolveGroupSessionKey, jo as parseAgentSessionKey, ko as isCronTriggerSessionKey, mo as resolveCanonicalIdentity, no as RAW_PEER_KEY_PREFIX, oo as computeIdentityLinkMatchKeys, qr as CtxProjectionCorruptionError, ro as buildAgentMainSessionKey, so as computeIdentityLinkScopedMatchKey, uo as normalizeAgentId, wo as HEARTBEAT_SESSION_KEY_SEGMENT, xn as requireSessionStorageRuntime, yn as getConversationReadQuery, zn as serializeSessionIndexRecordKey } from "./model-selection-Ca4WCV4n.js";
1
+ import { $a as DEFAULT_AGENT_ID, Br as normalizeMessageChannel, Co as BACKGROUND_SESSION_KEY_SEGMENT, Gn as resolveSessionFilePath, In as getConfiguredSessionStorageRuntime, Mn as loadSessionStore, Or as normalizeChatType, Qn as DEFAULT_IDLE_MINUTES, Qr as serializeRetryPolicy, Tn as updateSessionStore, To as WAKE_GATE_SESSION_KEY_SEGMENT, Un as SESSION_RUN_STORE_FILE_NAME, V as loadConfig, Vn as resolveUpdatedAfterPageSize, Wn as resolveDefaultSessionStorePath, Xr as isRetryExhausted, Yn as resolveStorePath, Yr as computeNextAvailableAtMs, Zr as parseRetryPolicy, do as normalizeMainKey, fa as resolveSecretInputRef, ho as resolveConfiguredCanonicalIdentity, ir as resolveGroupSessionKey, jo as parseAgentSessionKey, ko as isCronTriggerSessionKey, mo as resolveCanonicalIdentity, no as RAW_PEER_KEY_PREFIX, oo as computeIdentityLinkMatchKeys, qr as CtxProjectionCorruptionError, ro as buildAgentMainSessionKey, so as computeIdentityLinkScopedMatchKey, uo as normalizeAgentId, wo as HEARTBEAT_SESSION_KEY_SEGMENT, xn as requireSessionStorageRuntime, yn as getConversationReadQuery, zn as serializeSessionIndexRecordKey } from "./model-selection-CYS--Nqz.js";
2
2
  import { l as resolveStateDir } from "./paths-B_gs59ga.js";
3
3
  import { ft as sliceUtf16Safe, it as normalizeE164, pt as truncateUtf16Safe, t as createSubsystemLogger } from "./subsystem-DynBFcQj.js";
4
4
  import { n as resolveProcessScopedMap } from "./plain-object-Doc_YkH1.js";