wednesdayai 0.4.12-dev.708 → 0.4.12-dev.709

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 (161) hide show
  1. package/dist/{agent-scope-DxKPMu8w.js → agent-scope-cbxkoURo.js} +3 -3
  2. package/dist/{agent-turn-runner-Bo-14dCk.js → agent-turn-runner-BGEMB9i7.js} +5 -5
  3. package/dist/{api-key-rotation-MCks5z9E.js → api-key-rotation-Di-Xv7dE.js} +2 -2
  4. package/dist/{audio-preflight-D-jX_3PI.js → audio-preflight-B2oeH152.js} +27 -27
  5. package/dist/{audio-transcription-runner-z8iu9ZW_.js → audio-transcription-runner-D1gaKiYc.js} +11 -11
  6. package/dist/build-info.json +3 -3
  7. package/dist/bundled/boot-md/handler.js +58 -58
  8. package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
  9. package/dist/bundled/command-logger/handler.js +2 -2
  10. package/dist/bundled/session-journal/handler.js +58 -58
  11. package/dist/bundled/session-memory/handler.js +58 -58
  12. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  13. package/dist/{channel-activity-CSc4nhSd.js → channel-activity-rKX7OerG.js} +3 -3
  14. package/dist/{chrome-DsAfEH5c.js → chrome-DFRVroOs.js} +15 -15
  15. package/dist/{chunk-c1jvtxVA.js → chunk-B7KZoDXm.js} +3 -3
  16. package/dist/{command-queue-BkU8VL2o.js → command-queue-DZsc5M2W.js} +1 -1
  17. package/dist/{command-registry-b8VeqJpJ.js → command-registry-XVw7Umb-.js} +4 -4
  18. package/dist/{commands-registry-K0xWPmkW.js → commands-registry-CeUqKxlW.js} +2 -2
  19. package/dist/{completion-cli-eM5rgTAp.js → completion-cli-Cs6_r67M.js} +1 -1
  20. package/dist/{completion-cli-SMlq8SpJ.js → completion-cli-OG8408r3.js} +2 -2
  21. package/dist/{deliver-CKX3D5Qb.js → deliver-D9ZlDeeK.js} +24 -24
  22. package/dist/{diagnostic-CwxQVPgP.js → diagnostic-BQTUSnsG.js} +5 -5
  23. package/dist/{doctor-completion-CVSivX8q.js → doctor-completion-DHGYwnha.js} +1 -1
  24. package/dist/{doctor-completion-DSkCajIl.js → doctor-completion-DHzAQdU5.js} +1 -1
  25. package/dist/entry.js +2 -2
  26. package/dist/{fetch-D0fPm94V.js → fetch-BRLmqIUZ.js} +8 -8
  27. package/dist/{fetch-guard-DGkoJpgm.js → fetch-guard-DaQ-LaL5.js} +3 -3
  28. package/dist/{frontmatter-saAwiKEb.js → frontmatter-PMByWrfP.js} +5 -5
  29. package/dist/{fs-safe-LRpYbPaA.js → fs-safe-DwICJjkN.js} +4 -4
  30. package/dist/{gateway-cli-90-omfdt.js → gateway-cli-0mPia-yK.js} +18 -1
  31. package/dist/{gateway-cli-CilhVdIf.js → gateway-cli-DZZF_m3l.js} +18 -1
  32. package/dist/{github-copilot-token-zGOMIGSh.js → github-copilot-token-WSjo05vB.js} +7 -7
  33. package/dist/{image-ops-D_fm2PuR.js → image-ops-O8pHxo7i.js} +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/{ir-CM-jZPvD.js → ir-BdrsYTip.js} +5 -5
  36. package/dist/{legacy-names-vLJrYADD.js → legacy-names-CLlrMq8r.js} +1 -1
  37. package/dist/llm-slug-generator.js +58 -58
  38. package/dist/{logger-a0-zAY5a.js → logger-DNehzD_s.js} +1 -1
  39. package/dist/{manager-D8_WeA0B.js → manager-Dha79IeT.js} +12 -12
  40. package/dist/{markdown-tables-DDy0mHfA.js → markdown-tables-CPpxzad4.js} +2 -2
  41. package/dist/{model-selection-C8cuSPJ6.js → model-selection-CpVr-61V.js} +86 -86
  42. package/dist/{onboard-DSm2g3vN.js → onboard-8QmY5qtC.js} +1 -1
  43. package/dist/{onboard-DqwoTpU5.js → onboard-BwuGjbN2.js} +1 -1
  44. package/dist/{onboarding-CbkMsexm.js → onboarding-BeCgp92Z.js} +1 -1
  45. package/dist/{onboarding-BA0mgN0_.js → onboarding-BwJssndg.js} +1 -1
  46. package/dist/{onboarding.finalize-GSMxZGDr.js → onboarding.finalize-Dl0NbVZ8.js} +3 -3
  47. package/dist/{onboarding.finalize-DmqP9pws.js → onboarding.finalize-GThlsTQx.js} +4 -4
  48. package/dist/{outbound-attachment-BqwSHCKk.js → outbound-attachment-DrSw_Ksh.js} +2 -2
  49. package/dist/{outbound-message-hooks-B2Lq5cjw.js → outbound-message-hooks-BclU8TMt.js} +4 -4
  50. package/dist/{path-alias-guards-Zj-NwKjV.js → path-alias-guards-Cd5yHmTq.js} +1 -1
  51. package/dist/{paths-C6TxBCvO.js → paths-Cvc9EM8Y.js} +5 -5
  52. package/dist/{pi-embedded-BruS0ZnZ.js → pi-embedded-JPR-Maki.js} +169 -169
  53. package/dist/{pi-embedded-helpers-BYrpALPI.js → pi-embedded-helpers-C-hJQ8AQ.js} +24 -24
  54. package/dist/{pi-embedded-utils-B-HQafgJ.js → pi-embedded-utils-DPMX1Kdc.js} +3 -3
  55. package/dist/{pi-model-discovery-DoljOCVG.js → pi-model-discovery-ynxqOQma.js} +7 -7
  56. package/dist/{program-BR_-31Ib.js → program-DAwSVRFz.js} +2 -2
  57. package/dist/{program-context-DqNMfWhq.js → program-context-B3m_Vhb8.js} +6 -6
  58. package/dist/{prompt-select-styled-Cft7TSRk.js → prompt-select-styled-DGKn-Jnb.js} +1 -1
  59. package/dist/{prompt-select-styled-D0PhzQ3o.js → prompt-select-styled-DWcT6TS3.js} +1 -1
  60. package/dist/{provider-image-BGFyw5bc.js → provider-image-CjgTKy78.js} +5 -5
  61. package/dist/{proxy-fWL7CKDP.js → proxy-C9sq6M-h.js} +1 -1
  62. package/dist/{proxy-env-Bp4LRKl9.js → proxy-env-BL6Wl2NH.js} +2 -2
  63. package/dist/{proxy-fetch-DCI0KuH6.js → proxy-fetch-CK5AQAYw.js} +1 -1
  64. package/dist/{pw-ai-CYVcKfKX.js → pw-ai-DM-YIw_o.js} +14 -14
  65. package/dist/{qmd-manager-xNXMqudI.js → qmd-manager-fdxSsmnA.js} +10 -10
  66. package/dist/{query-expansion-DwSgrk0v.js → query-expansion-Dm2XbrYk.js} +5 -5
  67. package/dist/{recorder-DHFOr5-p.js → recorder--EPc-GsC.js} +4 -4
  68. package/dist/{redact-DZne_lu8.js → redact-BOHmCPP_.js} +1 -1
  69. package/dist/{register.maintenance-Dgcu5Nb-.js → register.maintenance-B0E0HWS3.js} +5 -5
  70. package/dist/{register.maintenance-BFoMS877.js → register.maintenance-Cde6wAYK.js} +4 -4
  71. package/dist/{register.onboard-9IafuGo3.js → register.onboard-BpTumYaA.js} +2 -2
  72. package/dist/{register.onboard-CWxGOIeC.js → register.onboard-BzLofY35.js} +2 -2
  73. package/dist/{register.setup-Bawf4MtR.js → register.setup-C9FYWtwC.js} +2 -2
  74. package/dist/{register.setup-CpH51l_z.js → register.setup-mxq7ayTY.js} +2 -2
  75. package/dist/{register.subclis-CHB5C1GR.js → register.subclis-DyqB2k1U.js} +3 -3
  76. package/dist/{replies-czd0p1_N.js → replies-zGU1jl6b.js} +4 -4
  77. package/dist/{reply-directives-v0ld56O3.js → reply-directives-BpvtuQ6W.js} +2 -2
  78. package/dist/{reply-prefix-DVkNDBNe.js → reply-prefix-C7WlN3qm.js} +1 -1
  79. package/dist/{resolve-route-Bx05SNin.js → resolve-route-BuurQ_RE.js} +5 -5
  80. package/dist/{run-main-BShsJ2ew.js → run-main-WS7QF27g.js} +3 -3
  81. package/dist/{run-with-concurrency-BXDCD4Tu.js → run-with-concurrency-4jh_yc-4.js} +4 -4
  82. package/dist/{runs-BIIlPzkU.js → runs-ysBHYx8g.js} +8 -8
  83. package/dist/{send-CDhxZ4gL.js → send-AlsHHAwq.js} +7 -7
  84. package/dist/{send-BHu4zHcK.js → send-B8TQjDLF.js} +6 -6
  85. package/dist/{send-DB64Q7ia.js → send-CdkJHvhd.js} +6 -6
  86. package/dist/{send-Bx7VMqkE.js → send-D5oa8eVL.js} +8 -8
  87. package/dist/{send-D1vxqVJJ.js → send-DDzPcUw9.js} +27 -27
  88. package/dist/{session-meta-D3RTAsqe.js → session-meta-BM6rSCmn.js} +2 -2
  89. package/dist/{skill-commands-D7C-ROwS.js → skill-commands-C_W-vMXu.js} +9 -9
  90. package/dist/{skills-Dz90ga_I.js → skills-Bn7terph.js} +21 -21
  91. package/dist/{store-gQ6FSjVk.js → store-xxN6qyAh.js} +2 -2
  92. package/dist/{subsystem-CPYnUTN4.js → subsystem-BCjklMkJ.js} +64 -64
  93. package/dist/{tables-DHp8qKo9.js → tables-CjRug-NJ.js} +1 -1
  94. package/dist/{tokens-9BPY4SaX.js → tokens-9Mla_HDp.js} +1 -1
  95. package/dist/{tool-loop-detection-C1fqyXXD.js → tool-loop-detection-8uvf8mSd.js} +2 -2
  96. package/dist/{update-cli-_yxN7Iuk.js → update-cli-BrR0aq-I.js} +4 -4
  97. package/dist/{update-cli-pxJZTMTe.js → update-cli-CjIUOznW.js} +5 -5
  98. package/dist/{user-run-recording-BCrEbuKq.js → user-run-recording-B6Tm0B7M.js} +2 -2
  99. package/dist/{workspace-B707AGIc.js → workspace-Dbn4gFdH.js} +9 -9
  100. package/extensions/acpx/package.json +1 -1
  101. package/extensions/anthropic/package.json +1 -1
  102. package/extensions/bifrost/package.json +1 -1
  103. package/extensions/bluebubbles/package.json +1 -1
  104. package/extensions/copilot-proxy/package.json +1 -1
  105. package/extensions/deepgram/package.json +1 -1
  106. package/extensions/deepinfra/package.json +1 -1
  107. package/extensions/diagnostics-otel/package.json +1 -1
  108. package/extensions/diffs/package.json +1 -1
  109. package/extensions/discord/package.json +1 -1
  110. package/extensions/dream-cycle/package.json +1 -1
  111. package/extensions/elevenlabs/package.json +1 -1
  112. package/extensions/feishu/package.json +1 -1
  113. package/extensions/gemini-search/package.json +1 -1
  114. package/extensions/google/package.json +1 -1
  115. package/extensions/google-gemini-cli-auth/package.json +1 -1
  116. package/extensions/googlechat/package.json +1 -1
  117. package/extensions/grok-search/package.json +1 -1
  118. package/extensions/groq/package.json +1 -1
  119. package/extensions/imessage/package.json +1 -1
  120. package/extensions/irc/package.json +1 -1
  121. package/extensions/kimi-search/package.json +1 -1
  122. package/extensions/learning-core/package.json +1 -1
  123. package/extensions/line/package.json +1 -1
  124. package/extensions/llm-task/package.json +1 -1
  125. package/extensions/lobster/package.json +1 -1
  126. package/extensions/matrix/CHANGELOG.md +1 -1
  127. package/extensions/matrix/package.json +1 -1
  128. package/extensions/mattermost/package.json +1 -1
  129. package/extensions/memory-core/package.json +1 -1
  130. package/extensions/memory-lancedb/package.json +1 -1
  131. package/extensions/minimax/package.json +1 -1
  132. package/extensions/minimax-portal-auth/package.json +1 -1
  133. package/extensions/mistral/package.json +1 -1
  134. package/extensions/moonshot/package.json +1 -1
  135. package/extensions/msteams/CHANGELOG.md +1 -1
  136. package/extensions/msteams/package.json +1 -1
  137. package/extensions/nextcloud-talk/package.json +1 -1
  138. package/extensions/nostr/CHANGELOG.md +1 -1
  139. package/extensions/nostr/package.json +1 -1
  140. package/extensions/open-prose/package.json +1 -1
  141. package/extensions/openai/package.json +1 -1
  142. package/extensions/openai-realtime/package.json +1 -1
  143. package/extensions/openrouter/package.json +1 -1
  144. package/extensions/perplexity-search/package.json +1 -1
  145. package/extensions/searxng-search/package.json +1 -1
  146. package/extensions/signal/package.json +1 -1
  147. package/extensions/slack/package.json +1 -1
  148. package/extensions/synology-chat/package.json +1 -1
  149. package/extensions/telegram/package.json +1 -1
  150. package/extensions/tlon/package.json +1 -1
  151. package/extensions/twitch/CHANGELOG.md +1 -1
  152. package/extensions/twitch/package.json +1 -1
  153. package/extensions/voice-call/CHANGELOG.md +1 -1
  154. package/extensions/voice-call/package.json +1 -1
  155. package/extensions/whatsapp/package.json +1 -1
  156. package/extensions/zai/package.json +1 -1
  157. package/extensions/zalo/CHANGELOG.md +1 -1
  158. package/extensions/zalo/package.json +1 -1
  159. package/extensions/zalouser/CHANGELOG.md +1 -1
  160. package/extensions/zalouser/package.json +1 -1
  161. package/package.json +1 -1
@@ -1,79 +1,79 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { _ as toAgentModelListLike, c as resolveAgentWorkspaceDir, d as resolveRunModelFallbacksOverride, f as resolveSessionAgentId, g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, p as resolveSessionAgentIds, r as resolveAgentConfig, s as resolveAgentSkillsFilter, t as hasConfiguredModelFallbacks, u as resolveEffectiveModelFallbacks } from "./agent-scope-DxKPMu8w.js";
3
- import { a as resolveGatewayPort, c as resolveStateDir, d as resolveRequiredHomeDir, l as expandHomePrefix, n as STATE_DIR, r as resolveConfigPath } from "./paths-C6TxBCvO.js";
4
- import { C as appendFileLog, F as openBoundaryFileSync, K as isDangerousHostEnvVarName, O as INCLUDE_KEY, P as openBoundaryFile, Q as clampInt, T as normalizeLogLevel, W as normalizeWindowsPathForComparison, Z as CONFIG_DIR, _ as colorize, a as createNonExitingRuntime, b as getChildLogger, c as registerActiveProgressLine, dt as sleep$1, et as ensureDir$3, f as logVerbose, ft as sliceUtf16Safe, g as warn, h as shouldLogVerbose, it as normalizeE164, j as isBlockedObjectKey, l as unregisterActiveProgressLine, lt as shortenHomeInString, m as setVerbose, mt as resolvePreferredOpenClawTmpDir, nt as formatTerminalLink, o as defaultRuntime, pt as truncateUtf16Safe, rt as isRecord$1, s as clearActiveProgressLine, st as resolveUserPath, t as createSubsystemLogger, tt as escapeRegExp, u as danger, ut as shortenHomePath, v as isRich, y as theme } from "./subsystem-CPYnUTN4.js";
2
+ import { _ as toAgentModelListLike, c as resolveAgentWorkspaceDir, d as resolveRunModelFallbacksOverride, f as resolveSessionAgentId, g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, p as resolveSessionAgentIds, r as resolveAgentConfig, s as resolveAgentSkillsFilter, t as hasConfiguredModelFallbacks, u as resolveEffectiveModelFallbacks } from "./agent-scope-cbxkoURo.js";
3
+ import { a as resolveGatewayPort, c as resolveStateDir, d as resolveRequiredHomeDir, l as expandHomePrefix, n as STATE_DIR, r as resolveConfigPath } from "./paths-Cvc9EM8Y.js";
4
+ import { C as appendFileLog, F as openBoundaryFileSync, K as isDangerousHostEnvVarName, O as INCLUDE_KEY, P as openBoundaryFile, Q as clampInt, T as normalizeLogLevel, W as normalizeWindowsPathForComparison, Z as CONFIG_DIR, _ as colorize, a as createNonExitingRuntime, b as getChildLogger, c as registerActiveProgressLine, dt as sleep$1, et as ensureDir$3, f as logVerbose, ft as sliceUtf16Safe, g as warn, h as shouldLogVerbose, it as normalizeE164, j as isBlockedObjectKey, l as unregisterActiveProgressLine, lt as shortenHomeInString, m as setVerbose, mt as resolvePreferredOpenClawTmpDir, nt as formatTerminalLink, o as defaultRuntime, pt as truncateUtf16Safe, rt as isRecord$1, s as clearActiveProgressLine, st as resolveUserPath, t as createSubsystemLogger, tt as escapeRegExp, u as danger, ut as shortenHomePath, v as isRich, y as theme } from "./subsystem-BCjklMkJ.js";
5
5
  import { t as isPlainObject } from "./plain-object-CLm2c5Nu.js";
6
- import { A as resolveCanonicalIdentity, B as deriveSessionChatType, C as classifySessionKeyShape, D as normalizeAgentId, E as isValidAgentId, F as toAgentStoreSessionKey, G as parseAgentSessionKey, H as isAcpSessionKey, I as DEFAULT_ACCOUNT_ID, K as resolveThreadParentSessionKey, L as normalizeAccountId$3, M as resolveLinkedPeerIdForChannel, N as resolveThreadSessionKeys, O as normalizeMainKey, P as sanitizeAgentId, R as normalizeOptionalAccountId, T as isKnownAgentMainSessionKey, U as isCronSessionKey, V as getSubagentDepth, W as isSubagentSessionKey, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, i as DEFAULT_HEARTBEAT_FILENAME, j as resolveConfiguredCanonicalIdentity, k as resolveAgentIdFromSessionKey, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as buildAgentMainSessionKey, y as DEFAULT_AGENT_ID, z as WAKE_GATE_SESSION_KEY_SEGMENT } from "./workspace-B707AGIc.js";
7
- import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-a0-zAY5a.js";
8
- import { $ as TELEGRAM_COMMAND_NAME_PATTERN, $i as replaceBufferedPluginTaskPasses, $n as createPrimaryWriteInterceptor, $r as resolveTelegramToken, A as requireApiKey, Aa as resolveSafeBinProfiles, Ai as normalizeMessageChannel, An as normalizeSessionDeliveryFields, Ar as resolveChannelResetConfig, At as isSupportedLocalAvatarExtension, B as resolveProfilesUnavailableReason, Ba as VERSION, Bi as acquireSessionWriteLock, Bn as normalizeInputProvenance, Br as resolveExplicitAgentSessionKey, Bt as isPathInside, C as createOllamaStreamFn, Ca as isDispatchWrapperExecutable, Ci as resolveGroupSessionKey, Cn as updateSessionStoreEntry, Cr as hasNonzeroUsage, D as buildUsageWithNoCost, Da as splitShellArgs, Di as isInternalMessageChannel, Dn as deliveryContextKey, Dr as SESSION_RUN_STATUSES, Dt as isAvatarDataUrl, E as buildStreamErrorAssistantMessage, Ea as unwrapKnownShellMultiplexerInvocation, Ei as isGatewayMessageChannel, En as deliveryContextFromSession, Et as AVATAR_MAX_BYTES, F as resolveAuthProfileOrder, Fa as resolveSlackNativeStreaming, Fi as GATEWAY_CLIENT_NAMES, Fn as extractToolCallNames, Fr as mergeSessionEntry, Ft as isBundledChannelEnabledByChannelConfig, G as isRecord$2, Ga as dedupeProfileIds, Gi as optionalStringEnum, Gn as parseDurationMs, Gr as normalizeChannelId$1, Gt as listChatChannels, H as resolveSecretRefValues, Ha as resolveShellEnvFallbackTimeoutMs, Hi as readTaskWorkStates, Hn as createAsyncLock, Hr as deriveSessionMetaPatch, I as getSoonestCooldownExpiry, Ia as resolveSlackStreamingMode, Ii as normalizeAtHashSlug, In as parseInlineDirectives$1, Ir as resolveFreshSessionTotalTokens, It as normalizePluginsConfig, J as loadConfig, Ja as ensureAuthProfileStore, Ji as actionHasTarget, Jn as appendAssistantMessageToSessionTranscript, Jr as normalizeSignalMessagingTarget, Jt as normalizeChatChannelId, K as parseDotPath, Ka as listProfilesForProvider, Ki as stringEnum, Kn as extractDeliveryInfo, Kr as getChannelDock, Kt as normalizeAnyChannelId, L as isProfileInCooldown, Li as normalizeHyphenSlug, Ln as INPUT_PROVENANCE_KIND_VALUES, Lr as setSessionRuntimeModel, Lt as resolveEffectiveEnableState, M as resolveEnvApiKey, Ma as isSafeExecutableValue, Mi as resolveMessageChannel, Mn as archiveSessionTranscripts, Mr as resolveSessionResetType, Mt as loadPluginManifestRegistry, N as resolveModelAuthMode, Na as mapStreamingModeToSlackLegacyDraftStreamMode, Ni as GATEWAY_CLIENT_IDS, Nn as capArrayByJsonBytes, Nr as resolveThreadFlag, Nt as BUNDLED_ENABLED_BY_DEFAULT, O as getApiKeyForModel, Oa as SAFE_BIN_PROFILES, Oi as isMarkdownCapableMessageChannel, On as mergeDeliveryContext, Or as resolveSessionKey, Ot as isAvatarHttpUrl, Pa as resolveDiscordPreviewStreamMode, Pi as GATEWAY_CLIENT_MODES, Pn as countToolResults, Pr as DEFAULT_RESET_TRIGGERS, Pt as applyTestPluginDefaults, Q as validateConfigObjectWithPlugins, Qa as resolveAuthProfileDisplayLabel, Qi as listBufferedPluginTaskPasses, Qn as isJsonlSessionBackend, Qr as resolveTelegramAccount, Qt as getActivePluginRegistryKey, R as markAuthProfileFailure, Ra as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Ri as normalizeStringEntries, Rn as applyInputProvenanceToUserMessage, Rr as canonicalizeMainSessionAlias, Rt as resolveMemorySlotDecision, S as OLLAMA_NATIVE_BASE_URL, Sa as extractShellWrapperInlineCommand, Si as resolveAccountEntry, Sn as updateSessionStore, Sr as deriveSessionTotalTokens, T as buildAssistantMessageWithZeroUsage, Ta as unwrapKnownDispatchWrapperInvocation, Ti as isDeliverableMessageChannel, Tn as resolveCacheTtlMs$1, Tr as normalizeUsage, U as describeUnknownError$1, Ua as isTruthyEnvValue, Ui as channelTargetSchema, Un as readJsonFile, Ur as getChannelPlugin, Ut as CHAT_CHANNEL_ORDER, V as resolveApiKeyForProfile, Va as getShellPathFromLoginShell, Vi as resolveSessionLockMaxHoldFromTimeout, Vn as jsonUtf8Bytes, Vr as resolveMainSessionKey, Vt as safeStatSync, W as isNonEmptyString, Wa as resolveOwnerDisplaySetting, Wi as channelTargetsSchema, Wn as writeJsonAtomic, Wr as listChannelPlugins, Wt as getChatChannelMeta, Xa as resolveOpenClawAgentDir, Xn as resolveAndPersistSessionFile, Xr as listEnabledTelegramAccounts, Xt as getActiveGatewayPluginRegistry, Y as readConfigFileSnapshot, Ya as resolveAuthStorePathForDisplay, Yi as actionRequiresTarget, Yr as createTelegramActionGate, Yt as resolveChannelConfigId, Z as writeConfigFile, Za as withFileLock, Zi as discardBufferedPluginTaskPasses, Zn as withPreservationWriterPermit, Zr as listTelegramAccountIds, Zt as getActivePluginRegistry, _a as splitCommandChain, _i as resolveDiscordAccount, _n as loadSessionStore, _r as resolveTimezone, a as isCliProvider, aa as getConfigValueAtPath, ai as resolveSlackBotToken, an as normalizePluginHttpPath, ao as splitTrailingAuthProfile, ar as TASK_RUN_MODES, at as resolveIMessageAttachmentRoots, ba as resolveAllowlistCandidatePath, bi as resolveChannelGroupRequireMention, bn as syncConfiguredSessionTranscriptToRuntime, br as isDiagnosticsEnabled, c as normalizeProviderId, ca as unsetConfigValueAtPath, ci as isWhatsAppGroupJid, cn as executePluginCommand, co as DEFAULT_PROVIDER, cr as sanitizeJsonb, ct as parseNonNegativeByteSize, d as resolveDefaultModelForAgent, da as listWritableExplicitTrustedSafeBinDirs, di as resolveWhatsAppAccount, dn as matchPluginCommand, dr as mergePromptContributions, dt as resolveExecPolicyPreset, ea as RecoveryAdmissionError, ei as buildChannelAccountBindings, en as requireActivePluginRegistry, eo as normalizeSecretInput, er as drainPendingPrimaryWrites, et as normalizeTelegramCommandName, f as resolveModelRefFromString, fa as normalizeTrustedSafeBinDirs, fi as formatCliCommand, fn as registerPluginCommand, fr as toJsonValue$1, ga as isWindowsPlatform, gi as listEnabledDiscordAccounts, gn as isPreservationArmed, gr as formatZonedTimestamp, h as resolveThinkingDefault, ha as buildEnforcedShellCommand, hi as createDiscordActionGate, hn as getConfiguredSessionStorageRuntime, hr as formatUtcTimestamp, i as findNormalizedProviderValue, ia as unsetConfigOverride, ii as resolveSlackAppToken, in as createPluginRegistry, io as resolveSecretInputRef, ir as onSessionTranscriptUpdate, j as resolveApiKeyForProvider, ja as applyMergePatch, ji as resolveGatewayMessageChannel, jn as normalizeAccountId$4, jr as resolveSessionResetPolicy, jt as validateJsonSchemaValue, k as getCustomProviderApiKey, ka as normalizeSafeBinProfileFixtures, ki as listDeliverableMessageChannels, kn as normalizeDeliveryContext, kr as evaluateSessionFreshness, kt as isPathWithinRoot, l as parseModelRef, la as getTrustedSafeBinDirs, li as normalizeWhatsAppTarget, ln as getPluginCommandSpecs, lr as sha256, lt as ASSISTANT_IDENTITY_COLORS, m as resolveSubagentSpawnModelSelection, ma as analyzeShellCommand, mi as resolveIMessageAccount, mn as getActivePreservationLease, mr as buildInboundUserContextPrefix, n as buildConfiguredAllowlistKeys, na as resetConfigOverrides, ni as resolveSlackAccount, nn as addRegisteredPluginApi, no as hasConfiguredSecretInput, nr as hydrateSessionManagerFromDb, o as modelKey, oa as parseConfigPath, oi as listEnabledSignalAccounts, on as buildPluginHealthReport, oo as DEFAULT_CONTEXT_TOKENS, or as TASK_RUN_STATUSES, ot as resolveIMessageRemoteAttachmentRoots, p as resolveReasoningDefault, pa as validateSafeBinArgv, pi as resolveCliName, pr as buildInboundMetaSystemPrompt, qa as markAuthProfileGood, qi as applyTargetToParams, qn as parseSessionThreadInfo, qr as listChannelDocks, qt as normalizeChannelId$2, r as buildModelAliasIndex, ra as setConfigOverride, ri as resolveSlackReplyToMode, rn as clearRegisteredPluginApis, ro as normalizeResolvedSecretInputString, rr as emitSessionTranscriptUpdate, rt as isInboundPathAllowed, s as normalizeModelRef$2, sa as setConfigValueAtPath, si as resolveSignalAccount, sn as clearPluginCommands, so as DEFAULT_MODEL, st as normalizeScpRemoteHost, t as buildAllowedModelSet, ta as getConfigOverrides, tn as setActivePluginRegistry, to as coerceSecretRef, tr as DB_SESSION_HYDRATION_LIMIT, tt as resolveTelegramCustomCommands, u as resolveConfiguredModelRef, ua as isTrustedSafeBinPath, ui as hasAnyWhatsAppAuth, un as listPluginCommands, ur as createCurrentUserPromptEnvelope, ut as secretRefKey, va as DEFAULT_SAFE_BINS, vi as normalizeDiscordToken, vn as readSessionUpdatedAt, vr as resolveSenderLabel, w as buildAssistantMessage, wa as isShellWrapperExecutable, wi as INTERNAL_MESSAGE_CHANNEL, wn as isCacheEnabled, wr as makeZeroUsageSnapshot, x as retryAsync, xa as resolveCommandResolutionFromArgv, xi as resolveChannelGroupToolsPolicy, xn as updateLastRoute, xr as derivePromptTokens, ya as matchAllowlist, yi as resolveChannelGroupPolicy, yn as recordSessionMetaFromInbound, yr as emitDiagnosticEvent, z as markAuthProfileUsed, za as resolveAgentMaxConcurrent, zi as normalizeStringEntriesLower, zn as hasInterSessionUserProvenance, zr as resolveAgentMainSessionKey, zt as discoverOpenClawPlugins } from "./model-selection-C8cuSPJ6.js";
9
- import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken } from "./github-copilot-token-zGOMIGSh.js";
10
- import { n as createInternalHookEvent, o as triggerInternalHook, s as parseBooleanValue$1, t as readManifestNamespace } from "./legacy-names-vLJrYADD.js";
11
- import { c as resolveSessionFilePath, f as resolveSessionTranscriptsDirForAgent, l as resolveSessionFilePathOptions, p as resolveStorePath, r as isPrimarySessionTranscriptFileName, s as resolveDefaultSessionStorePath, t as runTasksWithConcurrency, u as resolveSessionTranscriptPath } from "./run-with-concurrency-BXDCD4Tu.js";
6
+ import { A as resolveCanonicalIdentity, B as deriveSessionChatType, C as classifySessionKeyShape, D as normalizeAgentId, E as isValidAgentId, F as toAgentStoreSessionKey, G as parseAgentSessionKey, H as isAcpSessionKey, I as DEFAULT_ACCOUNT_ID, K as resolveThreadParentSessionKey, L as normalizeAccountId$3, M as resolveLinkedPeerIdForChannel, N as resolveThreadSessionKeys, O as normalizeMainKey, P as sanitizeAgentId, R as normalizeOptionalAccountId, T as isKnownAgentMainSessionKey, U as isCronSessionKey, V as getSubagentDepth, W as isSubagentSessionKey, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, i as DEFAULT_HEARTBEAT_FILENAME, j as resolveConfiguredCanonicalIdentity, k as resolveAgentIdFromSessionKey, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as buildAgentMainSessionKey, y as DEFAULT_AGENT_ID, z as WAKE_GATE_SESSION_KEY_SEGMENT } from "./workspace-Dbn4gFdH.js";
7
+ import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-DNehzD_s.js";
8
+ import { $ as TELEGRAM_COMMAND_NAME_PATTERN, $i as replaceBufferedPluginTaskPasses, $n as createPrimaryWriteInterceptor, $r as resolveTelegramToken, A as requireApiKey, Aa as resolveSafeBinProfiles, Ai as normalizeMessageChannel, An as normalizeSessionDeliveryFields, Ar as resolveChannelResetConfig, At as isSupportedLocalAvatarExtension, B as resolveProfilesUnavailableReason, Ba as VERSION, Bi as acquireSessionWriteLock, Bn as normalizeInputProvenance, Br as resolveExplicitAgentSessionKey, Bt as isPathInside, C as createOllamaStreamFn, Ca as isDispatchWrapperExecutable, Ci as resolveGroupSessionKey, Cn as updateSessionStoreEntry, Cr as hasNonzeroUsage, D as buildUsageWithNoCost, Da as splitShellArgs, Di as isInternalMessageChannel, Dn as deliveryContextKey, Dr as SESSION_RUN_STATUSES, Dt as isAvatarDataUrl, E as buildStreamErrorAssistantMessage, Ea as unwrapKnownShellMultiplexerInvocation, Ei as isGatewayMessageChannel, En as deliveryContextFromSession, Et as AVATAR_MAX_BYTES, F as resolveAuthProfileOrder, Fa as resolveSlackNativeStreaming, Fi as GATEWAY_CLIENT_NAMES, Fn as extractToolCallNames, Fr as mergeSessionEntry, Ft as isBundledChannelEnabledByChannelConfig, G as isRecord$2, Ga as dedupeProfileIds, Gi as optionalStringEnum, Gn as parseDurationMs, Gr as normalizeChannelId$1, Gt as listChatChannels, H as resolveSecretRefValues, Ha as resolveShellEnvFallbackTimeoutMs, Hi as readTaskWorkStates, Hn as createAsyncLock, Hr as deriveSessionMetaPatch, I as getSoonestCooldownExpiry, Ia as resolveSlackStreamingMode, Ii as normalizeAtHashSlug, In as parseInlineDirectives$1, Ir as resolveFreshSessionTotalTokens, It as normalizePluginsConfig, J as loadConfig, Ja as ensureAuthProfileStore, Ji as actionHasTarget, Jn as appendAssistantMessageToSessionTranscript, Jr as normalizeSignalMessagingTarget, Jt as normalizeChatChannelId, K as parseDotPath, Ka as listProfilesForProvider, Ki as stringEnum, Kn as extractDeliveryInfo, Kr as getChannelDock, Kt as normalizeAnyChannelId, L as isProfileInCooldown, Li as normalizeHyphenSlug, Ln as INPUT_PROVENANCE_KIND_VALUES, Lr as setSessionRuntimeModel, Lt as resolveEffectiveEnableState, M as resolveEnvApiKey, Ma as isSafeExecutableValue, Mi as resolveMessageChannel, Mn as archiveSessionTranscripts, Mr as resolveSessionResetType, Mt as loadPluginManifestRegistry, N as resolveModelAuthMode, Na as mapStreamingModeToSlackLegacyDraftStreamMode, Ni as GATEWAY_CLIENT_IDS, Nn as capArrayByJsonBytes, Nr as resolveThreadFlag, Nt as BUNDLED_ENABLED_BY_DEFAULT, O as getApiKeyForModel, Oa as SAFE_BIN_PROFILES, Oi as isMarkdownCapableMessageChannel, On as mergeDeliveryContext, Or as resolveSessionKey, Ot as isAvatarHttpUrl, Pa as resolveDiscordPreviewStreamMode, Pi as GATEWAY_CLIENT_MODES, Pn as countToolResults, Pr as DEFAULT_RESET_TRIGGERS, Pt as applyTestPluginDefaults, Q as validateConfigObjectWithPlugins, Qa as resolveAuthProfileDisplayLabel, Qi as listBufferedPluginTaskPasses, Qn as isJsonlSessionBackend, Qr as resolveTelegramAccount, Qt as getActivePluginRegistryKey, R as markAuthProfileFailure, Ra as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Ri as normalizeStringEntries, Rn as applyInputProvenanceToUserMessage, Rr as canonicalizeMainSessionAlias, Rt as resolveMemorySlotDecision, S as OLLAMA_NATIVE_BASE_URL, Sa as extractShellWrapperInlineCommand, Si as resolveAccountEntry, Sn as updateSessionStore, Sr as deriveSessionTotalTokens, T as buildAssistantMessageWithZeroUsage, Ta as unwrapKnownDispatchWrapperInvocation, Ti as isDeliverableMessageChannel, Tn as resolveCacheTtlMs$1, Tr as normalizeUsage, U as describeUnknownError$1, Ua as isTruthyEnvValue, Ui as channelTargetSchema, Un as readJsonFile, Ur as getChannelPlugin, Ut as CHAT_CHANNEL_ORDER, V as resolveApiKeyForProfile, Va as getShellPathFromLoginShell, Vi as resolveSessionLockMaxHoldFromTimeout, Vn as jsonUtf8Bytes, Vr as resolveMainSessionKey, Vt as safeStatSync, W as isNonEmptyString, Wa as resolveOwnerDisplaySetting, Wi as channelTargetsSchema, Wn as writeJsonAtomic, Wr as listChannelPlugins, Wt as getChatChannelMeta, Xa as resolveOpenClawAgentDir, Xn as resolveAndPersistSessionFile, Xr as listEnabledTelegramAccounts, Xt as getActiveGatewayPluginRegistry, Y as readConfigFileSnapshot, Ya as resolveAuthStorePathForDisplay, Yi as actionRequiresTarget, Yr as createTelegramActionGate, Yt as resolveChannelConfigId, Z as writeConfigFile, Za as withFileLock, Zi as discardBufferedPluginTaskPasses, Zn as withPreservationWriterPermit, Zr as listTelegramAccountIds, Zt as getActivePluginRegistry, _a as splitCommandChain, _i as resolveDiscordAccount, _n as loadSessionStore, _r as resolveTimezone, a as isCliProvider, aa as getConfigValueAtPath, ai as resolveSlackBotToken, an as normalizePluginHttpPath, ao as splitTrailingAuthProfile, ar as TASK_RUN_MODES, at as resolveIMessageAttachmentRoots, ba as resolveAllowlistCandidatePath, bi as resolveChannelGroupRequireMention, bn as syncConfiguredSessionTranscriptToRuntime, br as isDiagnosticsEnabled, c as normalizeProviderId, ca as unsetConfigValueAtPath, ci as isWhatsAppGroupJid, cn as executePluginCommand, co as DEFAULT_PROVIDER, cr as sanitizeJsonb, ct as parseNonNegativeByteSize, d as resolveDefaultModelForAgent, da as listWritableExplicitTrustedSafeBinDirs, di as resolveWhatsAppAccount, dn as matchPluginCommand, dr as mergePromptContributions, dt as resolveExecPolicyPreset, ea as RecoveryAdmissionError, ei as buildChannelAccountBindings, en as requireActivePluginRegistry, eo as normalizeSecretInput, er as drainPendingPrimaryWrites, et as normalizeTelegramCommandName, f as resolveModelRefFromString, fa as normalizeTrustedSafeBinDirs, fi as formatCliCommand, fn as registerPluginCommand, fr as toJsonValue$1, ga as isWindowsPlatform, gi as listEnabledDiscordAccounts, gn as isPreservationArmed, gr as formatZonedTimestamp, h as resolveThinkingDefault, ha as buildEnforcedShellCommand, hi as createDiscordActionGate, hn as getConfiguredSessionStorageRuntime, hr as formatUtcTimestamp, i as findNormalizedProviderValue, ia as unsetConfigOverride, ii as resolveSlackAppToken, in as createPluginRegistry, io as resolveSecretInputRef, ir as onSessionTranscriptUpdate, j as resolveApiKeyForProvider, ja as applyMergePatch, ji as resolveGatewayMessageChannel, jn as normalizeAccountId$4, jr as resolveSessionResetPolicy, jt as validateJsonSchemaValue, k as getCustomProviderApiKey, ka as normalizeSafeBinProfileFixtures, ki as listDeliverableMessageChannels, kn as normalizeDeliveryContext, kr as evaluateSessionFreshness, kt as isPathWithinRoot, l as parseModelRef, la as getTrustedSafeBinDirs, li as normalizeWhatsAppTarget, ln as getPluginCommandSpecs, lr as sha256, lt as ASSISTANT_IDENTITY_COLORS, m as resolveSubagentSpawnModelSelection, ma as analyzeShellCommand, mi as resolveIMessageAccount, mn as getActivePreservationLease, mr as buildInboundUserContextPrefix, n as buildConfiguredAllowlistKeys, na as resetConfigOverrides, ni as resolveSlackAccount, nn as addRegisteredPluginApi, no as hasConfiguredSecretInput, nr as hydrateSessionManagerFromDb, o as modelKey, oa as parseConfigPath, oi as listEnabledSignalAccounts, on as buildPluginHealthReport, oo as DEFAULT_CONTEXT_TOKENS, or as TASK_RUN_STATUSES, ot as resolveIMessageRemoteAttachmentRoots, p as resolveReasoningDefault, pa as validateSafeBinArgv, pi as resolveCliName, pr as buildInboundMetaSystemPrompt, qa as markAuthProfileGood, qi as applyTargetToParams, qn as parseSessionThreadInfo, qr as listChannelDocks, qt as normalizeChannelId$2, r as buildModelAliasIndex, ra as setConfigOverride, ri as resolveSlackReplyToMode, rn as clearRegisteredPluginApis, ro as normalizeResolvedSecretInputString, rr as emitSessionTranscriptUpdate, rt as isInboundPathAllowed, s as normalizeModelRef$2, sa as setConfigValueAtPath, si as resolveSignalAccount, sn as clearPluginCommands, so as DEFAULT_MODEL, st as normalizeScpRemoteHost, t as buildAllowedModelSet, ta as getConfigOverrides, tn as setActivePluginRegistry, to as coerceSecretRef, tr as DB_SESSION_HYDRATION_LIMIT, tt as resolveTelegramCustomCommands, u as resolveConfiguredModelRef, ua as isTrustedSafeBinPath, ui as hasAnyWhatsAppAuth, un as listPluginCommands, ur as createCurrentUserPromptEnvelope, ut as secretRefKey, va as DEFAULT_SAFE_BINS, vi as normalizeDiscordToken, vn as readSessionUpdatedAt, vr as resolveSenderLabel, w as buildAssistantMessage, wa as isShellWrapperExecutable, wi as INTERNAL_MESSAGE_CHANNEL, wn as isCacheEnabled, wr as makeZeroUsageSnapshot, x as retryAsync, xa as resolveCommandResolutionFromArgv, xi as resolveChannelGroupToolsPolicy, xn as updateLastRoute, xr as derivePromptTokens, ya as matchAllowlist, yi as resolveChannelGroupPolicy, yn as recordSessionMetaFromInbound, yr as emitDiagnosticEvent, z as markAuthProfileUsed, za as resolveAgentMaxConcurrent, zi as normalizeStringEntriesLower, zn as hasInterSessionUserProvenance, zr as resolveAgentMainSessionKey, zt as discoverOpenClawPlugins } from "./model-selection-CpVr-61V.js";
9
+ import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken } from "./github-copilot-token-WSjo05vB.js";
10
+ import { n as createInternalHookEvent, o as triggerInternalHook, s as parseBooleanValue$1, t as readManifestNamespace } from "./legacy-names-CLlrMq8r.js";
11
+ import { c as resolveSessionFilePath, f as resolveSessionTranscriptsDirForAgent, l as resolveSessionFilePathOptions, p as resolveStorePath, r as isPrimarySessionTranscriptFileName, s as resolveDefaultSessionStorePath, t as runTasksWithConcurrency, u as resolveSessionTranscriptPath } from "./run-with-concurrency-4jh_yc-4.js";
12
12
  import { n as resolveConversationLabel, r as normalizeChatType } from "./conversation-label-BnH5Yy9T.js";
13
- import { a as createSlackWebClient, c as validateSlackBlocksArray, d as resolveSlackChannelId, i as normalizeSlackOutboundText, l as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack, u as parseSlackTarget } from "./send-CDhxZ4gL.js";
14
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as isDiscordGroupAllowedByPolicy, d as parseDiscordModalCustomId, dt as resolveDiscordAllowListMatch, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordChannelConfigWithFallback, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordOwnerAccess, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as normalizeDiscordAllowList, m as resolveDiscordComponentEntry, mt as resolveDiscordMemberAccessState, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordGuildEntry, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordSlug, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-Bx7VMqkE.js";
15
- import { a as clearDelayedReleaseHold, c as mergeDelayedAgentTurn, d as KeyedAsyncQueue, i as agentTurnIdempotencyKey, l as peekDelayedAgentTurn, n as getAgentTurnRuntime, o as enqueueAgentTurn, r as tryGetAgentTurnRuntime, s as isClaimableAgentTurnWorkId, u as setDelayedReleaseHold } from "./agent-turn-runner-Bo-14dCk.js";
16
- import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-9BPY4SaX.js";
13
+ import { a as createSlackWebClient, c as validateSlackBlocksArray, d as resolveSlackChannelId, i as normalizeSlackOutboundText, l as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack, u as parseSlackTarget } from "./send-AlsHHAwq.js";
14
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as isDiscordGroupAllowedByPolicy, d as parseDiscordModalCustomId, dt as resolveDiscordAllowListMatch, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordChannelConfigWithFallback, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordOwnerAccess, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as normalizeDiscordAllowList, m as resolveDiscordComponentEntry, mt as resolveDiscordMemberAccessState, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordGuildEntry, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordSlug, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-D5oa8eVL.js";
15
+ import { a as clearDelayedReleaseHold, c as mergeDelayedAgentTurn, d as KeyedAsyncQueue, i as agentTurnIdempotencyKey, l as peekDelayedAgentTurn, n as getAgentTurnRuntime, o as enqueueAgentTurn, r as tryGetAgentTurnRuntime, s as isClaimableAgentTurnWorkId, u as setDelayedReleaseHold } from "./agent-turn-runner-BGEMB9i7.js";
16
+ import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-9Mla_HDp.js";
17
17
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-BDA1WAvZ.js";
18
- import { _ as resolveProviderPromptCacheKey, a as toInternalMessageReceivedContext, c as toPluginMessageReceivedEvent, d as resolveOutboundSessionId, f as getGlobalHookRunner, g as buildPluginTurnIdentity, h as buildPluginRuntimeIdentity, i as toInternalMessagePreprocessedContext, l as fireAndForgetHook, m as promptBuildResultToContribution, n as createMessageSentEmitter, o as toInternalMessageTranscribedContext, p as initializeGlobalHookRunner, r as deriveInboundMessageHookContext, s as toPluginMessageContext, t as applyMessageSendingHook, u as buildOutboundSessionContext, v as resolveProviderRuntimeIdentity } from "./outbound-message-hooks-B2Lq5cjw.js";
19
- import { A as boundDiagnosticContent, C as logWebhookError, D as refreshRunProgress, E as recordSystemPromptHashComparison, M as resetCommandPollCount, O as startDiagnosticHeartbeat, S as logToolExecutionStarted, T as logWebhookReceived, b as logToolExecutionBlocked, d as logRunCompleted, f as logRunStarted, j as recordCommandPoll, k as stopDiagnosticHeartbeat, l as logModelCallError, o as logMessageProcessed, p as logSessionStateChange, s as logMessageQueued, w as logWebhookProcessed, x as logToolExecutionCompleted } from "./diagnostic-CwxQVPgP.js";
18
+ import { _ as resolveProviderPromptCacheKey, a as toInternalMessageReceivedContext, c as toPluginMessageReceivedEvent, d as resolveOutboundSessionId, f as getGlobalHookRunner, g as buildPluginTurnIdentity, h as buildPluginRuntimeIdentity, i as toInternalMessagePreprocessedContext, l as fireAndForgetHook, m as promptBuildResultToContribution, n as createMessageSentEmitter, o as toInternalMessageTranscribedContext, p as initializeGlobalHookRunner, r as deriveInboundMessageHookContext, s as toPluginMessageContext, t as applyMessageSendingHook, u as buildOutboundSessionContext, v as resolveProviderRuntimeIdentity } from "./outbound-message-hooks-BclU8TMt.js";
19
+ import { A as boundDiagnosticContent, C as logWebhookError, D as refreshRunProgress, E as recordSystemPromptHashComparison, M as resetCommandPollCount, O as startDiagnosticHeartbeat, S as logToolExecutionStarted, T as logWebhookReceived, b as logToolExecutionBlocked, d as logRunCompleted, f as logRunStarted, j as recordCommandPoll, k as stopDiagnosticHeartbeat, l as logModelCallError, o as logMessageProcessed, p as logSessionStateChange, s as logMessageQueued, w as logWebhookProcessed, x as logToolExecutionCompleted } from "./diagnostic-BQTUSnsG.js";
20
20
  import { r as getDiagnosticSessionState, s as redactChannelCorrelation } from "./diagnostic-session-state-Bnyx-w0F.js";
21
21
  import { t as redactIdentifier } from "./redact-identifier-WYElxwAZ.js";
22
- import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-DZne_lu8.js";
22
+ import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-BOHmCPP_.js";
23
23
  import { t as CommandLane } from "./lanes-DTaUAkeG.js";
24
- import { a as getCommandLaneSnapshots, i as enqueueCommandInLane, n as clearCommandLane, o as getQueueSize, t as CommandLaneAbortedError } from "./command-queue-BkU8VL2o.js";
25
- import { $ as resolveTelegramStreamMode, A as resolveTelegramFetch, B as buildTelegramParentPeer, C as getTelegramFleetSupervisor, D as recordWebhook, E as recordUpdate, F as buildGroupLabel, G as extractTelegramLocation, H as buildTypingThreadParams, I as buildSenderLabel, J as resolveTelegramDirectPeerId, K as hasBotMention, L as buildSenderName, M as withTelegramApiErrorLogging, N as loadCronStore, O as registerAccount, P as resolveCronStorePath, Q as resolveTelegramReplyId, R as buildTelegramGroupFrom, S as fingerprintTelegramToken, T as recordState, U as describeReplyTarget, V as buildTelegramThreadParams, W as expandTextLinks, X as resolveTelegramGroupAllowFromContext, Y as resolveTelegramForumThreadId, Z as resolveTelegramMediaPlaceholder, _ as isTelegramEditMayHaveLandedError, _t as getPairingAdapter, a as reactMessageTelegram, at as firstDefined$1, b as renderTelegramHtmlText, bt as parseTelegramTarget, c as sendStickerTelegram, ct as resolveGroupAllowFromSources, d as wasSentByBot, dt as addChannelAllowFromStoreEntry, et as resolveTelegramThreadSpec, f as extractTelegramErrorText, ft as readChannelAllowFromStore, g as isTelegramClientRejection, gt as writeJsonFileAtomically, h as isSafeToRetrySendError, ht as readJsonFileWithFallback, i as editMessageTelegram, it as resolveSenderAllowMatch$1, j as splitTelegramCaption, k as releaseAccountOwner, lt as formatLocationText, m as isRecoverableTelegramNetworkError, mt as upsertChannelPairingRequest, n as createForumTopicTelegram, nt as normalizeAllowFrom$2, o as sendMessageTelegram, ot as isSenderIdAllowed, p as isDefiniteTelegramRequestNonDeliveryError, pt as removeChannelAllowFromStoreEntry, q as normalizeForwardedContext, r as deleteMessageTelegram, rt as normalizeDmAllowFromWithStore$1, s as sendPollTelegram, st as mergeDmAllowFromSources, t as buildInlineKeyboard, tt as isSenderAllowed$1, u as resolveTelegramVoiceSend, ut as toLocationContext, v as markdownToTelegramChunks, vt as listPairingChannels, w as recordApiRequest, x as wrapFileReferencesInHtml, xt as resolveTelegramTargetChatType, y as markdownToTelegramHtml, yt as isVoiceCompatibleAudio, z as buildTelegramGroupPeerId } from "./send-D1vxqVJJ.js";
26
- import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-D_fm2PuR.js";
27
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DoljOCVG.js";
28
- import { $ as resolveSandboxConfigForAgent, A as isFailoverAssistantError, B as isTimeoutErrorMessage, C as formatRawAssistantErrorForUi, D as isCloudCodeAssistFormatError, E as isBillingAssistantError, F as isTransientHttpError, G as registerBrowserRoutes, H as resolveSandboxContext, I as parseImageDimensionError, J as getBridgeAuthForPort, K as resolveBrowserConfig, L as parseImageSizeError, M as isLikelyContextOverflowError, N as isRateLimitAssistantError, O as isCompactionFailureError, P as isRawApiErrorPayload, Q as trimToUndefined$1, R as sanitizeUserFacingText, S as formatBillingErrorMessage, T as isAuthAssistantError, U as resolveSandboxRuntimeStatus, V as ensureSandboxWorkspaceForSession, W as createBrowserRouteContext, X as resolveBrowserControlAuth, Y as ensureBrowserControlAuth, Z as resolveGatewayCredentialsFromConfig, _ as downgradeOpenAIReasoningBlocks, a as isMessagingToolDuplicateNormalized, at as stripPluginOnlyAllowlist, b as classifyFailoverReason, c as sanitizeImageBlocks, ct as resolveToolProfilePolicy, d as canonicalizeBase64, dt as buildBootstrapContextFiles, et as applyOwnerOnlyToolPolicy, f as estimateBase64DecodedBytes, ft as ensureSessionHeader, g as downgradeOpenAIFunctionCallReasoningPairs, h as sanitizeToolCallIdsForCloudCodeAssist, ht as sanitizeGoogleTurnOrdering, it as mergeAlsoAllowPolicy, j as isFailoverErrorMessage, k as isContextOverflowError, l as sanitizeToolResultImages, lt as compileGlobPatterns, m as extractToolResultId, mt as resolveBootstrapTotalMaxChars, n as validateGeminiTurns, nt as collectExplicitAllowlist, o as normalizeTextForComparison, ot as expandToolGroups, p as extractToolCallsFromAssistant, pt as resolveBootstrapMaxChars, q as resolveProfile, r as pickFallbackThinkingLevel, rt as expandPolicyWithPluginGroups, s as sanitizeSessionMessagesImages, st as normalizeToolName, t as validateAnthropicTurns, tt as buildPluginToolGroups, u as resolveImageSanitizationLimits, ut as matchesAnyGlobPattern, v as isGoogleModelApi, w as getApiErrorPayloadFingerprint, x as formatAssistantErrorText, y as BILLING_ERROR_USER_MESSAGE, z as isAuthPermanentErrorMessage } from "./pi-embedded-helpers-BYrpALPI.js";
29
- import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, V as resolveClientIp, W as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-DsAfEH5c.js";
30
- import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Dz90ga_I.js";
31
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Zj-NwKjV.js";
32
- import { _ as readErrorName, a as isBlockedHostnameOrIp, f as formatErrorChainMessage, h as hasErrnoCode, l as normalizeHostname, m as formatUncaughtError, n as SsrFBlockedError, p as formatErrorMessage, u as collectErrorGraphCandidates } from "./proxy-env-Bp4LRKl9.js";
33
- import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-LRpYbPaA.js";
34
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-gQ6FSjVk.js";
24
+ import { a as getCommandLaneSnapshots, i as enqueueCommandInLane, n as clearCommandLane, o as getQueueSize, t as CommandLaneAbortedError } from "./command-queue-DZsc5M2W.js";
25
+ import { $ as resolveTelegramStreamMode, A as resolveTelegramFetch, B as buildTelegramParentPeer, C as getTelegramFleetSupervisor, D as recordWebhook, E as recordUpdate, F as buildGroupLabel, G as extractTelegramLocation, H as buildTypingThreadParams, I as buildSenderLabel, J as resolveTelegramDirectPeerId, K as hasBotMention, L as buildSenderName, M as withTelegramApiErrorLogging, N as loadCronStore, O as registerAccount, P as resolveCronStorePath, Q as resolveTelegramReplyId, R as buildTelegramGroupFrom, S as fingerprintTelegramToken, T as recordState, U as describeReplyTarget, V as buildTelegramThreadParams, W as expandTextLinks, X as resolveTelegramGroupAllowFromContext, Y as resolveTelegramForumThreadId, Z as resolveTelegramMediaPlaceholder, _ as isTelegramEditMayHaveLandedError, _t as getPairingAdapter, a as reactMessageTelegram, at as firstDefined$1, b as renderTelegramHtmlText, bt as parseTelegramTarget, c as sendStickerTelegram, ct as resolveGroupAllowFromSources, d as wasSentByBot, dt as addChannelAllowFromStoreEntry, et as resolveTelegramThreadSpec, f as extractTelegramErrorText, ft as readChannelAllowFromStore, g as isTelegramClientRejection, gt as writeJsonFileAtomically, h as isSafeToRetrySendError, ht as readJsonFileWithFallback, i as editMessageTelegram, it as resolveSenderAllowMatch$1, j as splitTelegramCaption, k as releaseAccountOwner, lt as formatLocationText, m as isRecoverableTelegramNetworkError, mt as upsertChannelPairingRequest, n as createForumTopicTelegram, nt as normalizeAllowFrom$2, o as sendMessageTelegram, ot as isSenderIdAllowed, p as isDefiniteTelegramRequestNonDeliveryError, pt as removeChannelAllowFromStoreEntry, q as normalizeForwardedContext, r as deleteMessageTelegram, rt as normalizeDmAllowFromWithStore$1, s as sendPollTelegram, st as mergeDmAllowFromSources, t as buildInlineKeyboard, tt as isSenderAllowed$1, u as resolveTelegramVoiceSend, ut as toLocationContext, v as markdownToTelegramChunks, vt as listPairingChannels, w as recordApiRequest, x as wrapFileReferencesInHtml, xt as resolveTelegramTargetChatType, y as markdownToTelegramHtml, yt as isVoiceCompatibleAudio, z as buildTelegramGroupPeerId } from "./send-DDzPcUw9.js";
26
+ import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-O8pHxo7i.js";
27
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-ynxqOQma.js";
28
+ import { $ as resolveSandboxConfigForAgent, A as isFailoverAssistantError, B as isTimeoutErrorMessage, C as formatRawAssistantErrorForUi, D as isCloudCodeAssistFormatError, E as isBillingAssistantError, F as isTransientHttpError, G as registerBrowserRoutes, H as resolveSandboxContext, I as parseImageDimensionError, J as getBridgeAuthForPort, K as resolveBrowserConfig, L as parseImageSizeError, M as isLikelyContextOverflowError, N as isRateLimitAssistantError, O as isCompactionFailureError, P as isRawApiErrorPayload, Q as trimToUndefined$1, R as sanitizeUserFacingText, S as formatBillingErrorMessage, T as isAuthAssistantError, U as resolveSandboxRuntimeStatus, V as ensureSandboxWorkspaceForSession, W as createBrowserRouteContext, X as resolveBrowserControlAuth, Y as ensureBrowserControlAuth, Z as resolveGatewayCredentialsFromConfig, _ as downgradeOpenAIReasoningBlocks, a as isMessagingToolDuplicateNormalized, at as stripPluginOnlyAllowlist, b as classifyFailoverReason, c as sanitizeImageBlocks, ct as resolveToolProfilePolicy, d as canonicalizeBase64, dt as buildBootstrapContextFiles, et as applyOwnerOnlyToolPolicy, f as estimateBase64DecodedBytes, ft as ensureSessionHeader, g as downgradeOpenAIFunctionCallReasoningPairs, h as sanitizeToolCallIdsForCloudCodeAssist, ht as sanitizeGoogleTurnOrdering, it as mergeAlsoAllowPolicy, j as isFailoverErrorMessage, k as isContextOverflowError, l as sanitizeToolResultImages, lt as compileGlobPatterns, m as extractToolResultId, mt as resolveBootstrapTotalMaxChars, n as validateGeminiTurns, nt as collectExplicitAllowlist, o as normalizeTextForComparison, ot as expandToolGroups, p as extractToolCallsFromAssistant, pt as resolveBootstrapMaxChars, q as resolveProfile, r as pickFallbackThinkingLevel, rt as expandPolicyWithPluginGroups, s as sanitizeSessionMessagesImages, st as normalizeToolName, t as validateAnthropicTurns, tt as buildPluginToolGroups, u as resolveImageSanitizationLimits, ut as matchesAnyGlobPattern, v as isGoogleModelApi, w as getApiErrorPayloadFingerprint, x as formatAssistantErrorText, y as BILLING_ERROR_USER_MESSAGE, z as isAuthPermanentErrorMessage } from "./pi-embedded-helpers-C-hJQ8AQ.js";
29
+ import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, V as resolveClientIp, W as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-DFRVroOs.js";
30
+ import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Bn7terph.js";
31
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Cd5yHmTq.js";
32
+ import { _ as readErrorName, a as isBlockedHostnameOrIp, f as formatErrorChainMessage, h as hasErrnoCode, l as normalizeHostname, m as formatUncaughtError, n as SsrFBlockedError, p as formatErrorMessage, u as collectErrorGraphCandidates } from "./proxy-env-BL6Wl2NH.js";
33
+ import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-DwICJjkN.js";
34
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-xxN6qyAh.js";
35
35
  import { t as resolveNetworkSsrFPolicy } from "./ssrf-config-CNiEVKpL.js";
36
36
  import { a as normalizeReasoningLevel, c as normalizeVerboseLevel, i as normalizeElevatedLevel, l as resolveResponseUsageMode, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-CwmtMy_H.js";
37
- import { a as decodeDataUrl, c as ensureOpenClawModelsJson, i as coerceImageModelConfig, o as resolveProviderVisionModelFromConfig, r as coerceImageAssistantText, s as minimaxUnderstandImage } from "./provider-image-BGFyw5bc.js";
38
- import { C as loadModelCatalog, S as findModelInCatalog, _ as stripCarriedTranscriptFromBody, a as resolveAutoImageModel, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, i as normalizeMediaAttachments, l as resolveConcurrency, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as buildRandomTempFilePath, w as modelSupportsVision, x as resolveAttachmentKind, y as registerUnhandledRejectionHandler } from "./audio-transcription-runner-z8iu9ZW_.js";
39
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-D0fPm94V.js";
37
+ import { a as decodeDataUrl, c as ensureOpenClawModelsJson, i as coerceImageModelConfig, o as resolveProviderVisionModelFromConfig, r as coerceImageAssistantText, s as minimaxUnderstandImage } from "./provider-image-CjgTKy78.js";
38
+ import { C as loadModelCatalog, S as findModelInCatalog, _ as stripCarriedTranscriptFromBody, a as resolveAutoImageModel, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, i as normalizeMediaAttachments, l as resolveConcurrency, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as buildRandomTempFilePath, w as modelSupportsVision, x as resolveAttachmentKind, y as registerUnhandledRejectionHandler } from "./audio-transcription-runner-D1gaKiYc.js";
39
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-BRLmqIUZ.js";
40
40
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-BfPtlUW6.js";
41
- import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-DGkoJpgm.js";
42
- import { r as makeProxyFetch } from "./proxy-fetch-DCI0KuH6.js";
43
- import { _ as extractTextFromChatContent, a as formatReasoningMessage, d as stripThinkingTagsFromText, f as formatToolSummary, g as isInsideCode, h as findCodeRegions, l as stripDowngradedToolCallText, m as stripReasoningTagsFromText, n as extractAssistantThinking, o as inferToolMetaFromArgs, p as resolveToolDisplay, s as isAssistantMessage, t as extractAssistantText$1, u as stripMinimaxToolCallXml } from "./pi-embedded-utils-B-HQafgJ.js";
44
- import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DVkNDBNe.js";
41
+ import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-DaQ-LaL5.js";
42
+ import { r as makeProxyFetch } from "./proxy-fetch-CK5AQAYw.js";
43
+ import { _ as extractTextFromChatContent, a as formatReasoningMessage, d as stripThinkingTagsFromText, f as formatToolSummary, g as isInsideCode, h as findCodeRegions, l as stripDowngradedToolCallText, m as stripReasoningTagsFromText, n as extractAssistantThinking, o as inferToolMetaFromArgs, p as resolveToolDisplay, s as isAssistantMessage, t as extractAssistantText$1, u as stripMinimaxToolCallXml } from "./pi-embedded-utils-DPMX1Kdc.js";
44
+ import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-C7WlN3qm.js";
45
45
  import { n as isSafeFenceBreak, r as parseFenceSpans, t as findFenceSpanAt } from "./fences-DHXKaTRv.js";
46
- import { a as chunkText, c as resolveChunkDelivery, d as resolveTextChunkLimit, i as chunkMarkdownTextWithMode, l as resolveChunkMode, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as resolveChunkNewlinePacking } from "./chunk-c1jvtxVA.js";
47
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DDy0mHfA.js";
48
- import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-CM-jZPvD.js";
49
- import { _ as isNativeCommandsExplicitlyDisabled, a as listChatCommands, b as resolveNativeSkillsEnabled, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, g as isCommandFlagEnabled, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody, v as isRestartEnabled, y as resolveNativeCommandsEnabled } from "./commands-registry-K0xWPmkW.js";
50
- import { c as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-D7C-ROwS.js";
51
- import { _ as emitAgentEvent, a as queueEmbeddedPiMessage, c as waitForEmbeddedPiRunEnd, d as handleMessageUpdate, f as emitEmbeddedAgentEvent, g as clearAgentRunContext, h as endModelCall, i as isEmbeddedPiRunStreaming, l as handleMessageEnd, m as createInlineCodeState, n as clearActiveEmbeddedRun, p as buildCodeSpanIndex, r as isEmbeddedPiRunActive, s as setActiveEmbeddedRun, t as abortEmbeddedPiRun, u as handleMessageStart, v as onAgentEvent, y as registerAgentRunContext } from "./runs-BIIlPzkU.js";
52
- import { _ as resolveReplyToMode, a as normalizeOutboundPayloadsForJson, b as normalizeTargetForProvider, c as loadChannelOutboundAdapter, d as filterMessagingToolDuplicates, f as filterMessagingToolMediaDuplicates, g as createReplyToModeFilterForChannel, h as shouldSuppressReasoningPayload, i as normalizeOutboundPayloads, l as applyReplyTagsToPayload, m as shouldSuppressMessagingToolReplies, o as normalizeReplyPayloadsForDelivery, p as isRenderablePayload, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyThreading, v as buildTargetResolverSignature, y as normalizeChannelTargetInput } from "./deliver-CKX3D5Qb.js";
53
- import { a as resolveSessionRunStore, r as inferSessionRunKind, t as createSessionRunRecorder } from "./recorder-DHFOr5-p.js";
46
+ import { a as chunkText, c as resolveChunkDelivery, d as resolveTextChunkLimit, i as chunkMarkdownTextWithMode, l as resolveChunkMode, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as resolveChunkNewlinePacking } from "./chunk-B7KZoDXm.js";
47
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-CPpxzad4.js";
48
+ import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-BdrsYTip.js";
49
+ import { _ as isNativeCommandsExplicitlyDisabled, a as listChatCommands, b as resolveNativeSkillsEnabled, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, g as isCommandFlagEnabled, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody, v as isRestartEnabled, y as resolveNativeCommandsEnabled } from "./commands-registry-CeUqKxlW.js";
50
+ import { c as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-C_W-vMXu.js";
51
+ import { _ as emitAgentEvent, a as queueEmbeddedPiMessage, c as waitForEmbeddedPiRunEnd, d as handleMessageUpdate, f as emitEmbeddedAgentEvent, g as clearAgentRunContext, h as endModelCall, i as isEmbeddedPiRunStreaming, l as handleMessageEnd, m as createInlineCodeState, n as clearActiveEmbeddedRun, p as buildCodeSpanIndex, r as isEmbeddedPiRunActive, s as setActiveEmbeddedRun, t as abortEmbeddedPiRun, u as handleMessageStart, v as onAgentEvent, y as registerAgentRunContext } from "./runs-ysBHYx8g.js";
52
+ import { _ as resolveReplyToMode, a as normalizeOutboundPayloadsForJson, b as normalizeTargetForProvider, c as loadChannelOutboundAdapter, d as filterMessagingToolDuplicates, f as filterMessagingToolMediaDuplicates, g as createReplyToModeFilterForChannel, h as shouldSuppressReasoningPayload, i as normalizeOutboundPayloads, l as applyReplyTagsToPayload, m as shouldSuppressMessagingToolReplies, o as normalizeReplyPayloadsForDelivery, p as isRenderablePayload, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyThreading, v as buildTargetResolverSignature, y as normalizeChannelTargetInput } from "./deliver-D9ZlDeeK.js";
53
+ import { a as resolveSessionRunStore, r as inferSessionRunKind, t as createSessionRunRecorder } from "./recorder--EPc-GsC.js";
54
54
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BXGkQwOQ.js";
55
55
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-D61IHNsz.js";
56
- import { a as createDiscordRetryRunner, i as normalizePollInput, n as recordChannelActivity, t as getChannelActivity } from "./channel-activity-CSc4nhSd.js";
56
+ import { a as createDiscordRetryRunner, i as normalizePollInput, n as recordChannelActivity, t as getChannelActivity } from "./channel-activity-rKX7OerG.js";
57
57
  import { t as buildOutboundMediaLoadOptions } from "./load-options-DzQsLh91.js";
58
- import { t as convertMarkdownTables } from "./tables-DHp8qKo9.js";
59
- import { i as AGENT_LANE_SUBAGENT, r as AGENT_LANE_NESTED, t as startUserSessionRun } from "./user-run-recording-BCrEbuKq.js";
60
- import { n as splitMediaFromOutput, t as parseReplyDirectives } from "./reply-directives-v0ld56O3.js";
61
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DB64Q7ia.js";
62
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-BHu4zHcK.js";
63
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Bx05SNin.js";
64
- import { t as createTelegramPollingTransport } from "./proxy-fWL7CKDP.js";
65
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-czd0p1_N.js";
66
- import { t as recordInboundSessionMetaSafe } from "./session-meta-D3RTAsqe.js";
67
- import { n as resolveMemorySearchConfig } from "./manager-D8_WeA0B.js";
68
- import { f as listMemoryFiles, p as normalizeExtraMemoryPaths } from "./query-expansion-DwSgrk0v.js";
58
+ import { t as convertMarkdownTables } from "./tables-CjRug-NJ.js";
59
+ import { i as AGENT_LANE_SUBAGENT, r as AGENT_LANE_NESTED, t as startUserSessionRun } from "./user-run-recording-B6Tm0B7M.js";
60
+ import { n as splitMediaFromOutput, t as parseReplyDirectives } from "./reply-directives-BpvtuQ6W.js";
61
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-CdkJHvhd.js";
62
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-B8TQjDLF.js";
63
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BuurQ_RE.js";
64
+ import { t as createTelegramPollingTransport } from "./proxy-C9sq6M-h.js";
65
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-zGU1jl6b.js";
66
+ import { t as recordInboundSessionMetaSafe } from "./session-meta-BM6rSCmn.js";
67
+ import { n as resolveMemorySearchConfig } from "./manager-Dha79IeT.js";
68
+ import { f as listMemoryFiles, p as normalizeExtraMemoryPaths } from "./query-expansion-Dm2XbrYk.js";
69
69
  import { createRequire } from "node:module";
70
- import * as fs$1 from "node:fs/promises";
70
+ import * as fs$2 from "node:fs/promises";
71
71
  import fs, { mkdir, readFile, writeFile } from "node:fs/promises";
72
72
  import os, { homedir } from "node:os";
73
73
  import * as path$1 from "node:path";
74
74
  import path, { basename, isAbsolute, join } from "node:path";
75
- import syncFs, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
76
- import json5 from "json5";
75
+ import fs$1, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
76
+ import JSON5 from "json5";
77
77
  import { inspect, isDeepStrictEqual, promisify } from "node:util";
78
78
  import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
79
79
  import { fileURLToPath } from "node:url";
@@ -3100,7 +3100,7 @@ function setPromptSourceCacheEntry(key, entry) {
3100
3100
  }
3101
3101
  function readOpenFileUtf8(fd) {
3102
3102
  return new Promise((resolve, reject) => {
3103
- syncFs.readFile(fd, "utf-8", (error, data) => {
3103
+ fs$1.readFile(fd, "utf-8", (error, data) => {
3104
3104
  if (error) {
3105
3105
  reject(error);
3106
3106
  return;
@@ -3111,7 +3111,7 @@ function readOpenFileUtf8(fd) {
3111
3111
  }
3112
3112
  function closeOpenFile(fd) {
3113
3113
  return new Promise((resolve, reject) => {
3114
- syncFs.close(fd, (error) => {
3114
+ fs$1.close(fd, (error) => {
3115
3115
  if (error) {
3116
3116
  reject(error);
3117
3117
  return;
@@ -3550,9 +3550,9 @@ async function copyIfMissing(params) {
3550
3550
  if (!opened.ok) return opened.reason === "path" ? "missing-source" : "invalid";
3551
3551
  let content;
3552
3552
  try {
3553
- content = syncFs.readFileSync(opened.fd);
3553
+ content = fs$1.readFileSync(opened.fd);
3554
3554
  } finally {
3555
- syncFs.closeSync(opened.fd);
3555
+ fs$1.closeSync(opened.fd);
3556
3556
  }
3557
3557
  try {
3558
3558
  await writeFileWithinRoot({
@@ -3915,7 +3915,7 @@ async function resolveOpenClawDocsPath(params) {
3915
3915
  const workspaceDir = params.workspaceDir?.trim();
3916
3916
  if (workspaceDir) {
3917
3917
  const workspaceDocs = path.join(workspaceDir, "docs");
3918
- if (syncFs.existsSync(workspaceDocs)) return workspaceDocs;
3918
+ if (fs$1.existsSync(workspaceDocs)) return workspaceDocs;
3919
3919
  }
3920
3920
  const packageRoot = await resolveOpenClawPackageRoot({
3921
3921
  cwd: params.cwd,
@@ -3924,7 +3924,7 @@ async function resolveOpenClawDocsPath(params) {
3924
3924
  });
3925
3925
  if (packageRoot) {
3926
3926
  const packageDocs = path.join(packageRoot, "docs");
3927
- if (syncFs.existsSync(path.join(packageDocs, "docs.json"))) return packageDocs;
3927
+ if (fs$1.existsSync(path.join(packageDocs, "docs.json"))) return packageDocs;
3928
3928
  }
3929
3929
  return DOCS_SITE_URL;
3930
3930
  }
@@ -8338,7 +8338,7 @@ function resolveDefaultIdentityPath() {
8338
8338
  return path.join(resolveStateDir(), "identity", "device.json");
8339
8339
  }
8340
8340
  function ensureDir$2(filePath) {
8341
- syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
8341
+ fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
8342
8342
  }
8343
8343
  const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
8344
8344
  function base64UrlEncode(buf) {
@@ -8374,8 +8374,8 @@ function generateIdentity() {
8374
8374
  }
8375
8375
  function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
8376
8376
  try {
8377
- if (syncFs.existsSync(filePath)) {
8378
- const raw = syncFs.readFileSync(filePath, "utf8");
8377
+ if (fs$1.existsSync(filePath)) {
8378
+ const raw = fs$1.readFileSync(filePath, "utf8");
8379
8379
  const parsed = JSON.parse(raw);
8380
8380
  if (parsed?.version === 1 && typeof parsed.deviceId === "string" && typeof parsed.publicKeyPem === "string" && typeof parsed.privateKeyPem === "string") {
8381
8381
  const derivedId = fingerprintPublicKey(parsed.publicKeyPem);
@@ -8384,9 +8384,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
8384
8384
  ...parsed,
8385
8385
  deviceId: derivedId
8386
8386
  };
8387
- syncFs.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
8387
+ fs$1.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
8388
8388
  try {
8389
- syncFs.chmodSync(filePath, 384);
8389
+ fs$1.chmodSync(filePath, 384);
8390
8390
  } catch {}
8391
8391
  return {
8392
8392
  deviceId: derivedId,
@@ -8411,9 +8411,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
8411
8411
  privateKeyPem: identity.privateKeyPem,
8412
8412
  createdAtMs: Date.now()
8413
8413
  };
8414
- syncFs.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
8414
+ fs$1.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
8415
8415
  try {
8416
- syncFs.chmodSync(filePath, 384);
8416
+ fs$1.chmodSync(filePath, 384);
8417
8417
  } catch {}
8418
8418
  return identity;
8419
8419
  }
@@ -8605,8 +8605,8 @@ function resolveDeviceAuthPath(env = process.env) {
8605
8605
  }
8606
8606
  function readStore(filePath) {
8607
8607
  try {
8608
- if (!syncFs.existsSync(filePath)) return null;
8609
- const raw = syncFs.readFileSync(filePath, "utf8");
8608
+ if (!fs$1.existsSync(filePath)) return null;
8609
+ const raw = fs$1.readFileSync(filePath, "utf8");
8610
8610
  const parsed = JSON.parse(raw);
8611
8611
  if (parsed?.version !== 1 || typeof parsed.deviceId !== "string") return null;
8612
8612
  if (!parsed.tokens || typeof parsed.tokens !== "object") return null;
@@ -8616,10 +8616,10 @@ function readStore(filePath) {
8616
8616
  }
8617
8617
  }
8618
8618
  function writeStore(filePath, store) {
8619
- syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
8620
- syncFs.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
8619
+ fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
8620
+ fs$1.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
8621
8621
  try {
8622
- syncFs.chmodSync(filePath, 384);
8622
+ fs$1.chmodSync(filePath, 384);
8623
8623
  } catch {}
8624
8624
  }
8625
8625
  function loadDeviceAuthToken(params) {
@@ -12310,7 +12310,7 @@ async function routeReply(params) {
12310
12310
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
12311
12311
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
12312
12312
  try {
12313
- const { deliverOutboundPayloads } = await import("./deliver-CKX3D5Qb.js").then((n) => n.n);
12313
+ const { deliverOutboundPayloads } = await import("./deliver-D9ZlDeeK.js").then((n) => n.n);
12314
12314
  const outboundSession = buildOutboundSessionContext({
12315
12315
  cfg,
12316
12316
  agentId: resolvedAgentId,
@@ -13875,7 +13875,7 @@ async function sendTranscriptEcho(params) {
13875
13875
  }
13876
13876
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
13877
13877
  try {
13878
- const { deliverOutboundPayloads } = await import("./deliver-CKX3D5Qb.js").then((n) => n.n);
13878
+ const { deliverOutboundPayloads } = await import("./deliver-D9ZlDeeK.js").then((n) => n.n);
13879
13879
  await deliverOutboundPayloads({
13880
13880
  cfg,
13881
13881
  channel: normalizedChannel,
@@ -18157,7 +18157,7 @@ function mergeLegacyAgent(current, legacy) {
18157
18157
  }
18158
18158
  function ensureDir$1(filePath) {
18159
18159
  const dir = path.dirname(filePath);
18160
- syncFs.mkdirSync(dir, { recursive: true });
18160
+ fs$1.mkdirSync(dir, { recursive: true });
18161
18161
  }
18162
18162
  function coerceAllowlistEntries(allowlist) {
18163
18163
  if (!Array.isArray(allowlist) || allowlist.length === 0) return Array.isArray(allowlist) ? allowlist : void 0;
@@ -18227,11 +18227,11 @@ function generateToken() {
18227
18227
  function loadExecApprovals() {
18228
18228
  const filePath = resolveExecApprovalsPath();
18229
18229
  try {
18230
- if (!syncFs.existsSync(filePath)) return normalizeExecApprovals({
18230
+ if (!fs$1.existsSync(filePath)) return normalizeExecApprovals({
18231
18231
  version: 1,
18232
18232
  agents: {}
18233
18233
  });
18234
- const raw = syncFs.readFileSync(filePath, "utf8");
18234
+ const raw = fs$1.readFileSync(filePath, "utf8");
18235
18235
  const parsed = JSON.parse(raw);
18236
18236
  if (parsed?.version !== 1) return normalizeExecApprovals({
18237
18237
  version: 1,
@@ -18248,9 +18248,9 @@ function loadExecApprovals() {
18248
18248
  function saveExecApprovals(file) {
18249
18249
  const filePath = resolveExecApprovalsPath();
18250
18250
  ensureDir$1(filePath);
18251
- syncFs.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
18251
+ fs$1.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
18252
18252
  try {
18253
- syncFs.chmodSync(filePath, 384);
18253
+ fs$1.chmodSync(filePath, 384);
18254
18254
  } catch {}
18255
18255
  }
18256
18256
  function ensureExecApprovals() {
@@ -18816,18 +18816,18 @@ function peekSystemEventEntries(sessionKey) {
18816
18816
  function resolvePowerShellPath() {
18817
18817
  const programFiles = process.env.ProgramFiles || process.env.PROGRAMFILES || "C:\\Program Files";
18818
18818
  const pwsh7 = path.join(programFiles, "PowerShell", "7", "pwsh.exe");
18819
- if (syncFs.existsSync(pwsh7)) return pwsh7;
18819
+ if (fs$1.existsSync(pwsh7)) return pwsh7;
18820
18820
  const programW6432 = process.env.ProgramW6432;
18821
18821
  if (programW6432 && programW6432 !== programFiles) {
18822
18822
  const pwsh7Alt = path.join(programW6432, "PowerShell", "7", "pwsh.exe");
18823
- if (syncFs.existsSync(pwsh7Alt)) return pwsh7Alt;
18823
+ if (fs$1.existsSync(pwsh7Alt)) return pwsh7Alt;
18824
18824
  }
18825
18825
  const pwshInPath = resolveShellFromPath("pwsh");
18826
18826
  if (pwshInPath) return pwshInPath;
18827
18827
  const systemRoot = process.env.SystemRoot || process.env.WINDIR;
18828
18828
  if (systemRoot) {
18829
18829
  const candidate = path.join(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
18830
- if (syncFs.existsSync(candidate)) return candidate;
18830
+ if (fs$1.existsSync(candidate)) return candidate;
18831
18831
  }
18832
18832
  return "powershell.exe";
18833
18833
  }
@@ -18865,7 +18865,7 @@ function resolveShellFromPath(name) {
18865
18865
  for (const entry of entries) {
18866
18866
  const candidate = path.join(entry, name);
18867
18867
  try {
18868
- syncFs.accessSync(candidate, syncFs.constants.X_OK);
18868
+ fs$1.accessSync(candidate, fs$1.constants.X_OK);
18869
18869
  return candidate;
18870
18870
  } catch {}
18871
18871
  }
@@ -22466,7 +22466,7 @@ function ensureContextWindowCacheLoaded() {
22466
22466
  await ensureOpenClawModelsJson(cfg);
22467
22467
  } catch {}
22468
22468
  try {
22469
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-DoljOCVG.js").then((n) => n.r);
22469
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-ynxqOQma.js").then((n) => n.r);
22470
22470
  const agentDir = resolveOpenClawAgentDir();
22471
22471
  const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
22472
22472
  applyDiscoveredContextWindows({
@@ -22549,7 +22549,7 @@ function walkUpFrom(startDir, opts, resolveAtDir) {
22549
22549
  function hasGitMarker(repoRoot) {
22550
22550
  const gitPath = path.join(repoRoot, ".git");
22551
22551
  try {
22552
- const stat = syncFs.statSync(gitPath);
22552
+ const stat = fs$1.statSync(gitPath);
22553
22553
  return stat.isDirectory() || stat.isFile();
22554
22554
  } catch {
22555
22555
  return false;
@@ -22561,10 +22561,10 @@ function findGitRoot(startDir, opts = {}) {
22561
22561
  function resolveGitDirFromMarker(repoRoot) {
22562
22562
  const gitPath = path.join(repoRoot, ".git");
22563
22563
  try {
22564
- const stat = syncFs.statSync(gitPath);
22564
+ const stat = fs$1.statSync(gitPath);
22565
22565
  if (stat.isDirectory()) return gitPath;
22566
22566
  if (!stat.isFile()) return null;
22567
- const match = syncFs.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
22567
+ const match = fs$1.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
22568
22568
  if (!match?.[1]) return null;
22569
22569
  return path.resolve(repoRoot, match[1].trim());
22570
22570
  } catch {
@@ -22631,7 +22631,7 @@ const resolveCommitHash = (options = {}) => {
22631
22631
  cachedCommit = null;
22632
22632
  return cachedCommit;
22633
22633
  }
22634
- const head = syncFs.readFileSync(headPath, "utf-8").trim();
22634
+ const head = fs$1.readFileSync(headPath, "utf-8").trim();
22635
22635
  if (!head) {
22636
22636
  cachedCommit = null;
22637
22637
  return cachedCommit;
@@ -22639,7 +22639,7 @@ const resolveCommitHash = (options = {}) => {
22639
22639
  if (head.startsWith("ref:")) {
22640
22640
  const ref = head.replace(/^ref:\s*/i, "").trim();
22641
22641
  const refPath = path.resolve(path.dirname(headPath), ref);
22642
- cachedCommit = formatCommit(syncFs.readFileSync(refPath, "utf-8").trim());
22642
+ cachedCommit = formatCommit(fs$1.readFileSync(refPath, "utf-8").trim());
22643
22643
  return cachedCommit;
22644
22644
  }
22645
22645
  cachedCommit = formatCommit(head);
@@ -22864,17 +22864,17 @@ const readUsageFromSessionLog = (sessionId, sessionEntry, agentId, sessionKey, s
22864
22864
  } catch {
22865
22865
  return;
22866
22866
  }
22867
- if (!syncFs.existsSync(logPath)) return;
22867
+ if (!fs$1.existsSync(logPath)) return;
22868
22868
  try {
22869
22869
  const TAIL_BYTES = 8192;
22870
- const stat = syncFs.statSync(logPath);
22870
+ const stat = fs$1.statSync(logPath);
22871
22871
  const offset = Math.max(0, stat.size - TAIL_BYTES);
22872
22872
  const buf = Buffer.alloc(Math.min(TAIL_BYTES, stat.size));
22873
- const fd = syncFs.openSync(logPath, "r");
22873
+ const fd = fs$1.openSync(logPath, "r");
22874
22874
  try {
22875
- syncFs.readSync(fd, buf, 0, buf.length, offset);
22875
+ fs$1.readSync(fd, buf, 0, buf.length, offset);
22876
22876
  } finally {
22877
- syncFs.closeSync(fd);
22877
+ fs$1.closeSync(fd);
22878
22878
  }
22879
22879
  const tail = buf.toString("utf-8");
22880
22880
  const lines = (offset > 0 ? tail.slice(tail.indexOf("\n") + 1) : tail).split(/\n+/);
@@ -27283,7 +27283,7 @@ function resolveRepoRoot(params) {
27283
27283
  const configured = params.config?.agents?.defaults?.repoRoot?.trim();
27284
27284
  if (configured) try {
27285
27285
  const resolved = path.resolve(configured);
27286
- if (syncFs.statSync(resolved).isDirectory()) return resolved;
27286
+ if (fs$1.statSync(resolved).isDirectory()) return resolved;
27287
27287
  } catch {}
27288
27288
  const candidates = [params.workspaceDir, params.cwd].map((value) => value?.trim()).filter(Boolean);
27289
27289
  const seen = /* @__PURE__ */ new Set();
@@ -27680,7 +27680,7 @@ async function buildContextReply(params) {
27680
27680
  //#region src/auto-reply/reply/commands-export-session.ts
27681
27681
  const EXPORT_HTML_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "export-html");
27682
27682
  function loadTemplate(fileName) {
27683
- return syncFs.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
27683
+ return fs$1.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
27684
27684
  }
27685
27685
  function generateHtml(sessionData) {
27686
27686
  const template = loadTemplate("template.html");
@@ -27754,7 +27754,7 @@ async function buildExportSessionReply(params) {
27754
27754
  } catch (err) {
27755
27755
  return { text: `❌ Failed to resolve session file: ${err instanceof Error ? err.message : String(err)}` };
27756
27756
  }
27757
- if (!syncFs.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
27757
+ if (!fs$1.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
27758
27758
  const sessionManager = SessionManager.open(sessionFile);
27759
27759
  const entries = sessionManager.getEntries();
27760
27760
  const header = sessionManager.getHeader();
@@ -27775,8 +27775,8 @@ async function buildExportSessionReply(params) {
27775
27775
  const defaultFileName = `openclaw-session-${entry.sessionId.slice(0, 8)}-${timestamp}.html`;
27776
27776
  const outputPath = args.outputPath ? path.resolve(args.outputPath.startsWith("~") ? args.outputPath.replace("~", process.env.HOME ?? "") : args.outputPath) : path.join(params.workspaceDir, defaultFileName);
27777
27777
  const outputDir = path.dirname(outputPath);
27778
- if (!syncFs.existsSync(outputDir)) syncFs.mkdirSync(outputDir, { recursive: true });
27779
- syncFs.writeFileSync(outputPath, html, "utf-8");
27778
+ if (!fs$1.existsSync(outputDir)) fs$1.mkdirSync(outputDir, { recursive: true });
27779
+ fs$1.writeFileSync(outputPath, html, "utf-8");
27780
27780
  const relativePath = path.relative(params.workspaceDir, outputPath);
27781
27781
  return { text: [
27782
27782
  "✅ Session exported!",
@@ -27951,8 +27951,8 @@ function resolveZaiApiKey() {
27951
27951
  }
27952
27952
  try {
27953
27953
  const authPath = path.join(resolveRequiredHomeDir(process.env, os.homedir), ".pi", "agent", "auth.json");
27954
- if (!syncFs.existsSync(authPath)) return;
27955
- const data = JSON.parse(syncFs.readFileSync(authPath, "utf-8"));
27954
+ if (!fs$1.existsSync(authPath)) return;
27955
+ const data = JSON.parse(fs$1.readFileSync(authPath, "utf-8"));
27956
27956
  return data["z-ai"]?.access || data.zai?.access;
27957
27957
  } catch {
27958
27958
  return;
@@ -29771,7 +29771,7 @@ function shouldPersistAnyBindingState() {
29771
29771
  }
29772
29772
  function shouldPersistBindingMutations() {
29773
29773
  if (shouldPersistAnyBindingState()) return true;
29774
- return syncFs.existsSync(resolveThreadBindingsPath());
29774
+ return fs$1.existsSync(resolveThreadBindingsPath());
29775
29775
  }
29776
29776
  function saveBindingsToDisk(params = {}) {
29777
29777
  if (!params.force && !shouldPersistAnyBindingState()) return;
@@ -31035,7 +31035,7 @@ const applyCostTotal = (totals, costTotal) => {
31035
31035
  totals.totalCost += costTotal;
31036
31036
  };
31037
31037
  async function* readJsonlRecords(filePath) {
31038
- const fileStream = syncFs.createReadStream(filePath, { encoding: "utf-8" });
31038
+ const fileStream = fs$1.createReadStream(filePath, { encoding: "utf-8" });
31039
31039
  const rl = readline.createInterface({
31040
31040
  input: fileStream,
31041
31041
  crlfDelay: Infinity
@@ -31107,10 +31107,10 @@ async function loadCostUsageSummary(params) {
31107
31107
  const dailyMap = /* @__PURE__ */ new Map();
31108
31108
  const totals = emptyTotals();
31109
31109
  const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
31110
- const entries = await syncFs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
31110
+ const entries = await fs$1.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
31111
31111
  const files = (await Promise.all(entries.filter((entry) => entry.isFile() && isPrimarySessionTranscriptFileName(entry.name)).map(async (entry) => {
31112
31112
  const filePath = path.join(sessionsDir, entry.name);
31113
- const stats = await syncFs.promises.stat(filePath).catch(() => null);
31113
+ const stats = await fs$1.promises.stat(filePath).catch(() => null);
31114
31114
  if (!stats) return null;
31115
31115
  if (stats.mtimeMs < sinceTime) return null;
31116
31116
  return filePath;
@@ -31143,7 +31143,7 @@ async function loadCostUsageSummary(params) {
31143
31143
  }
31144
31144
  async function loadSessionCostSummary(params) {
31145
31145
  const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
31146
- if (!sessionFile || !syncFs.existsSync(sessionFile)) return null;
31146
+ if (!sessionFile || !fs$1.existsSync(sessionFile)) return null;
31147
31147
  const totals = emptyTotals();
31148
31148
  let firstActivity;
31149
31149
  let lastActivity;
@@ -32322,8 +32322,8 @@ function normalizeSessionKey(value) {
32322
32322
  }
32323
32323
  function readSessionStore(storePath) {
32324
32324
  try {
32325
- const raw = syncFs.readFileSync(storePath, "utf-8");
32326
- const parsed = json5.parse(raw);
32325
+ const raw = fs$1.readFileSync(storePath, "utf-8");
32326
+ const parsed = JSON5.parse(raw);
32327
32327
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
32328
32328
  } catch {}
32329
32329
  return {};
@@ -33984,7 +33984,7 @@ async function createModelSelectionState(params) {
33984
33984
  }
33985
33985
  }
33986
33986
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
33987
- const { ensureAuthProfileStore } = await import("./model-selection-C8cuSPJ6.js").then((n) => n.P);
33987
+ const { ensureAuthProfileStore } = await import("./model-selection-CpVr-61V.js").then((n) => n.P);
33988
33988
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
33989
33989
  const providerKey = normalizeProviderId(provider);
33990
33990
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -37498,7 +37498,7 @@ function asBoolean(value) {
37498
37498
  }
37499
37499
  function resolveTempPathParts(opts) {
37500
37500
  const tmpDir = opts.tmpDir ?? resolvePreferredOpenClawTmpDir();
37501
- if (!opts.tmpDir) syncFs.mkdirSync(tmpDir, {
37501
+ if (!opts.tmpDir) fs$1.mkdirSync(tmpDir, {
37502
37502
  recursive: true,
37503
37503
  mode: 448
37504
37504
  });
@@ -37584,7 +37584,7 @@ async function writeUrlToFile(filePath, url, opts) {
37584
37584
  if (typeof contentLength === "number" && Number.isFinite(contentLength) && contentLength > MAX_CAMERA_URL_DOWNLOAD_BYTES) throw new Error(`writeUrlToFile: content-length ${contentLength} exceeds max ${MAX_CAMERA_URL_DOWNLOAD_BYTES}`);
37585
37585
  const body = res.body;
37586
37586
  if (!body) throw new Error(`failed to download ${url}: empty response body`);
37587
- const fileHandle = await fs$1.open(filePath, "w");
37587
+ const fileHandle = await fs$2.open(filePath, "w");
37588
37588
  let thrown;
37589
37589
  try {
37590
37590
  const reader = body.getReader();
@@ -37602,7 +37602,7 @@ async function writeUrlToFile(filePath, url, opts) {
37602
37602
  await fileHandle.close();
37603
37603
  }
37604
37604
  if (thrown) {
37605
- await fs$1.unlink(filePath).catch(() => {});
37605
+ await fs$2.unlink(filePath).catch(() => {});
37606
37606
  throw thrown;
37607
37607
  }
37608
37608
  } finally {
@@ -37615,7 +37615,7 @@ async function writeUrlToFile(filePath, url, opts) {
37615
37615
  }
37616
37616
  async function writeBase64ToFile(filePath, base64) {
37617
37617
  const buf = Buffer.from(base64, "base64");
37618
- await fs$1.writeFile(filePath, buf);
37618
+ await fs$2.writeFile(filePath, buf);
37619
37619
  return {
37620
37620
  path: filePath,
37621
37621
  bytes: buf.length
@@ -41054,9 +41054,9 @@ function loadExternalCatalogEntries(options) {
41054
41054
  const entries = [];
41055
41055
  for (const rawPath of paths) {
41056
41056
  const resolved = resolveUserPath(rawPath);
41057
- if (!syncFs.existsSync(resolved)) continue;
41057
+ if (!fs$1.existsSync(resolved)) continue;
41058
41058
  try {
41059
- const payload = JSON.parse(syncFs.readFileSync(resolved, "utf-8"));
41059
+ const payload = JSON.parse(fs$1.readFileSync(resolved, "utf-8"));
41060
41060
  entries.push(...parseCatalogEntries(payload));
41061
41061
  } catch {}
41062
41062
  }
@@ -44976,7 +44976,7 @@ function listExistingAgentIdsFromDisk() {
44976
44976
  const root = resolveStateDir();
44977
44977
  const agentsDir = path.join(root, "agents");
44978
44978
  try {
44979
- return syncFs.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
44979
+ return fs$1.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
44980
44980
  } catch {
44981
44981
  return [];
44982
44982
  }
@@ -51246,7 +51246,7 @@ async function runAgentTurnWithFallback(params) {
51246
51246
  if (corruptedSessionId) {
51247
51247
  const transcriptPath = resolveSessionTranscriptPath(corruptedSessionId);
51248
51248
  try {
51249
- syncFs.unlinkSync(transcriptPath);
51249
+ fs$1.unlinkSync(transcriptPath);
51250
51250
  } catch {}
51251
51251
  }
51252
51252
  delete params.activeSessionStore[sessionKey];
@@ -52042,7 +52042,7 @@ async function readSessionLogSnapshot(params) {
52042
52042
  if (!logPath) return {};
52043
52043
  const snapshot = {};
52044
52044
  if (params.includeByteSize) try {
52045
- const stat = await syncFs.promises.stat(logPath);
52045
+ const stat = await fs$1.promises.stat(logPath);
52046
52046
  const size = Math.floor(stat.size);
52047
52047
  snapshot.byteSize = Number.isFinite(size) && size >= 0 ? size : void 0;
52048
52048
  } catch {
@@ -52056,7 +52056,7 @@ async function readSessionLogSnapshot(params) {
52056
52056
  return snapshot;
52057
52057
  }
52058
52058
  async function readLastNonzeroUsageFromSessionLog(logPath) {
52059
- const handle = await syncFs.promises.open(logPath, "r");
52059
+ const handle = await fs$1.promises.open(logPath, "r");
52060
52060
  try {
52061
52061
  let position = (await handle.stat()).size;
52062
52062
  let leadingPartial = "";
@@ -52809,9 +52809,9 @@ async function readPostCompactionContext(workspaceDir) {
52809
52809
  if (!opened.ok) return null;
52810
52810
  const sections = extractSections((() => {
52811
52811
  try {
52812
- return syncFs.readFileSync(opened.fd, "utf-8");
52812
+ return fs$1.readFileSync(opened.fd, "utf-8");
52813
52813
  } finally {
52814
- syncFs.closeSync(opened.fd);
52814
+ fs$1.closeSync(opened.fd);
52815
52815
  }
52816
52816
  })(), ["Session Startup", "Red Lines"]);
52817
52817
  if (sections.length === 0) return null;
@@ -53054,7 +53054,7 @@ async function runReplyAgent(params) {
53054
53054
  if (resolved) transcriptCandidates.add(resolved);
53055
53055
  transcriptCandidates.add(resolveSessionTranscriptPath(prevSessionId, agentId));
53056
53056
  for (const candidate of transcriptCandidates) try {
53057
- syncFs.unlinkSync(candidate);
53057
+ fs$1.unlinkSync(candidate);
53058
53058
  } catch {}
53059
53059
  }
53060
53060
  return true;
@@ -54158,7 +54158,7 @@ async function deliverSessionMaintenanceWarning(params) {
54158
54158
  return;
54159
54159
  }
54160
54160
  try {
54161
- const { deliverOutboundPayloads } = await import("./deliver-CKX3D5Qb.js").then((n) => n.n);
54161
+ const { deliverOutboundPayloads } = await import("./deliver-D9ZlDeeK.js").then((n) => n.n);
54162
54162
  const outboundSession = buildOutboundSessionContext({
54163
54163
  cfg: params.cfg,
54164
54164
  sessionKey: params.sessionKey
@@ -54264,7 +54264,7 @@ async function forkSessionFromParent(params) {
54264
54264
  agentId: params.agentId,
54265
54265
  sessionsDir: params.sessionsDir
54266
54266
  });
54267
- if (!parentSessionFile || !syncFs.existsSync(parentSessionFile)) return null;
54267
+ if (!parentSessionFile || !fs$1.existsSync(parentSessionFile)) return null;
54268
54268
  try {
54269
54269
  const manager = SessionManager.open(parentSessionFile);
54270
54270
  const leafId = manager.getLeafId();
@@ -54288,7 +54288,7 @@ async function forkSessionFromParent(params) {
54288
54288
  cwd: manager.getCwd(),
54289
54289
  parentSession: parentSessionFile
54290
54290
  };
54291
- syncFs.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
54291
+ fs$1.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
54292
54292
  return {
54293
54293
  sessionId,
54294
54294
  sessionFile
@@ -63343,7 +63343,7 @@ async function describeStickerImage(params) {
63343
63343
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
63344
63344
  try {
63345
63345
  const buffer = await fs.readFile(imagePath);
63346
- const { describeImageWithModel } = await import("./provider-image-BGFyw5bc.js").then((n) => n.n);
63346
+ const { describeImageWithModel } = await import("./provider-image-CjgTKy78.js").then((n) => n.n);
63347
63347
  return (await describeImageWithModel({
63348
63348
  buffer,
63349
63349
  fileName: "sticker.webp",
@@ -65056,7 +65056,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
65056
65056
  let transcript;
65057
65057
  let carry;
65058
65058
  if (needsPreflightTranscription) try {
65059
- const { transcribeFirstAudio } = await import("./audio-preflight-D-jX_3PI.js");
65059
+ const { transcribeFirstAudio } = await import("./audio-preflight-B2oeH152.js");
65060
65060
  const uploadable = audioAttachments.filter((att) => typeof att.url === "string" && att.url.length > 0);
65061
65061
  if (uploadable.length > 0) {
65062
65062
  const preflight = await transcribeFirstAudio({
@@ -66517,7 +66517,7 @@ function identityHasValues(identity) {
66517
66517
  }
66518
66518
  function loadIdentityFromFile(identityPath) {
66519
66519
  try {
66520
- const parsed = parseIdentityMarkdown(syncFs.readFileSync(identityPath, "utf-8"));
66520
+ const parsed = parseIdentityMarkdown(fs$1.readFileSync(identityPath, "utf-8"));
66521
66521
  if (!identityHasValues(parsed)) return null;
66522
66522
  return parsed;
66523
66523
  } catch {
@@ -66541,7 +66541,7 @@ function resolveAvatarSource(cfg, agentId) {
66541
66541
  }
66542
66542
  function resolveExistingPath(value) {
66543
66543
  try {
66544
- return syncFs.realpathSync(value);
66544
+ return fs$1.realpathSync(value);
66545
66545
  } catch {
66546
66546
  return path.resolve(value);
66547
66547
  }
@@ -66559,7 +66559,7 @@ function resolveLocalAvatarPath(params) {
66559
66559
  reason: "unsupported_extension"
66560
66560
  };
66561
66561
  try {
66562
- const stat = syncFs.statSync(realPath);
66562
+ const stat = fs$1.statSync(realPath);
66563
66563
  if (!stat.isFile()) return {
66564
66564
  ok: false,
66565
66565
  reason: "missing"
@@ -72223,23 +72223,23 @@ function createDefaultDeps() {
72223
72223
  };
72224
72224
  },
72225
72225
  sendMessageTelegram: async (...args) => {
72226
- const { sendMessageTelegram } = await import("./send-D1vxqVJJ.js").then((n) => n.l);
72226
+ const { sendMessageTelegram } = await import("./send-DDzPcUw9.js").then((n) => n.l);
72227
72227
  return await sendMessageTelegram(...args);
72228
72228
  },
72229
72229
  sendMessageDiscord: async (...args) => {
72230
- const { sendMessageDiscord } = await import("./send-Bx7VMqkE.js").then((n) => n.t);
72230
+ const { sendMessageDiscord } = await import("./send-D5oa8eVL.js").then((n) => n.t);
72231
72231
  return await sendMessageDiscord(...args);
72232
72232
  },
72233
72233
  sendMessageSlack: async (...args) => {
72234
- const { sendMessageSlack } = await import("./send-CDhxZ4gL.js").then((n) => n.n);
72234
+ const { sendMessageSlack } = await import("./send-AlsHHAwq.js").then((n) => n.n);
72235
72235
  return await sendMessageSlack(...args);
72236
72236
  },
72237
72237
  sendMessageSignal: async (...args) => {
72238
- const { sendMessageSignal } = await import("./send-DB64Q7ia.js").then((n) => n.i);
72238
+ const { sendMessageSignal } = await import("./send-CdkJHvhd.js").then((n) => n.i);
72239
72239
  return await sendMessageSignal(...args);
72240
72240
  },
72241
72241
  sendMessageIMessage: async (...args) => {
72242
- const { sendMessageIMessage } = await import("./send-BHu4zHcK.js").then((n) => n.n);
72242
+ const { sendMessageIMessage } = await import("./send-B8TQjDLF.js").then((n) => n.n);
72243
72243
  return await sendMessageIMessage(...args);
72244
72244
  }
72245
72245
  };
@@ -78139,7 +78139,7 @@ async function monitorIMessageProvider(opts = {}) {
78139
78139
  function readFileIfExists(filePath) {
78140
78140
  if (!filePath) return;
78141
78141
  try {
78142
- return syncFs.readFileSync(filePath, "utf-8").trim();
78142
+ return fs$1.readFileSync(filePath, "utf-8").trim();
78143
78143
  } catch {
78144
78144
  return;
78145
78145
  }
@@ -78760,7 +78760,7 @@ async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 *
78760
78760
  prefix: "line-media",
78761
78761
  extension: getExtensionForContentType(contentType)
78762
78762
  });
78763
- await syncFs.promises.writeFile(filePath, buffer);
78763
+ await fs$1.promises.writeFile(filePath, buffer);
78764
78764
  logVerbose(`line: downloaded media ${messageId} to ${filePath} (${buffer.length} bytes)`);
78765
78765
  return {
78766
78766
  path: filePath,
@@ -84556,7 +84556,7 @@ function readSlackExternalArgMenuToken(raw) {
84556
84556
  }
84557
84557
  let commandsRegistry;
84558
84558
  async function getCommandsRegistry() {
84559
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-K0xWPmkW.js").then((n) => n.n);
84559
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CeUqKxlW.js").then((n) => n.n);
84560
84560
  return commandsRegistry;
84561
84561
  }
84562
84562
  function encodeSlackCommandArgValue(parts) {
@@ -84886,14 +84886,14 @@ async function registerSlackMonitorSlashCommands(params) {
84886
84886
  const channelName = channelInfo?.name;
84887
84887
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
84888
84888
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
84889
- import("./resolve-route-Bx05SNin.js").then((n) => n.r),
84889
+ import("./resolve-route-BuurQ_RE.js").then((n) => n.r),
84890
84890
  import("./inbound-context-BXGkQwOQ.js").then((n) => n.n),
84891
84891
  Promise.resolve().then(() => provider_dispatcher_exports)
84892
84892
  ]);
84893
84893
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordInboundSessionMetaSafe }] = await Promise.all([
84894
84894
  import("./conversation-label-BnH5Yy9T.js").then((n) => n.t),
84895
- import("./reply-prefix-DVkNDBNe.js").then((n) => n.n),
84896
- import("./session-meta-D3RTAsqe.js").then((n) => n.n)
84895
+ import("./reply-prefix-C7WlN3qm.js").then((n) => n.n),
84896
+ import("./session-meta-BM6rSCmn.js").then((n) => n.n)
84897
84897
  ]);
84898
84898
  const route = resolveAgentRoute({
84899
84899
  cfg,
@@ -84958,9 +84958,9 @@ async function registerSlackMonitorSlashCommands(params) {
84958
84958
  });
84959
84959
  const deliverSlashPayloads = async (replies) => {
84960
84960
  const [{ deliverSlackSlashReplies }, { resolveChunkMode, resolveChunkNewlinePacking }, { resolveMarkdownTableMode }] = await Promise.all([
84961
- import("./replies-czd0p1_N.js").then((n) => n.r),
84962
- import("./chunk-c1jvtxVA.js").then((n) => n.s),
84963
- import("./markdown-tables-DDy0mHfA.js").then((n) => n.t)
84961
+ import("./replies-zGU1jl6b.js").then((n) => n.r),
84962
+ import("./chunk-B7KZoDXm.js").then((n) => n.s),
84963
+ import("./markdown-tables-CPpxzad4.js").then((n) => n.t)
84964
84964
  ]);
84965
84965
  await deliverSlackSlashReplies({
84966
84966
  replies,
@@ -85014,7 +85014,7 @@ async function registerSlackMonitorSlashCommands(params) {
85014
85014
  let nativeCommands = [];
85015
85015
  if (nativeEnabled) {
85016
85016
  reg = await getCommandsRegistry();
85017
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-D7C-ROwS.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
85017
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-C_W-vMXu.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
85018
85018
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
85019
85019
  skillCommands,
85020
85020
  provider: "slack"
@@ -85533,7 +85533,7 @@ async function auditTelegramGroupMembership(params) {
85533
85533
  groups: [],
85534
85534
  elapsedMs: Date.now() - started
85535
85535
  };
85536
- const fetcher = params.proxyUrl ? (await import("./proxy-fWL7CKDP.js").then((n) => n.n)).makeProxyFetch(params.proxyUrl) : fetch;
85536
+ const fetcher = params.proxyUrl ? (await import("./proxy-C9sq6M-h.js").then((n) => n.n)).makeProxyFetch(params.proxyUrl) : fetch;
85537
85537
  const { fetchWithTimeout } = await import("./fetch-timeout-BfPtlUW6.js").then((n) => n.r);
85538
85538
  const base = `${TELEGRAM_API_BASE$1}/bot${token}`;
85539
85539
  const groups = [];
@@ -88067,7 +88067,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
88067
88067
  let audioPreflightCarry;
88068
88068
  const audioConfigEnabled = cfg.tools?.media?.audio && cfg.tools.media.audio.enabled !== false;
88069
88069
  if (hasAudio && !hasUserText && !disableAudioPreflight && (isGroup && requireMention && mentionRegexes.length > 0 || audioConfigEnabled === true)) try {
88070
- const { transcribeFirstAudio } = await import("./audio-preflight-D-jX_3PI.js");
88070
+ const { transcribeFirstAudio } = await import("./audio-preflight-B2oeH152.js");
88071
88071
  const preflight = await transcribeFirstAudio({
88072
88072
  ctx: {
88073
88073
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -92477,7 +92477,7 @@ async function getMemorySearchManager(params) {
92477
92477
  if (cached) return { manager: cached };
92478
92478
  }
92479
92479
  try {
92480
- const { QmdMemoryManager } = await import("./qmd-manager-xNXMqudI.js");
92480
+ const { QmdMemoryManager } = await import("./qmd-manager-fdxSsmnA.js");
92481
92481
  const primary = await QmdMemoryManager.create({
92482
92482
  cfg: params.cfg,
92483
92483
  agentId: params.agentId,
@@ -92489,7 +92489,7 @@ async function getMemorySearchManager(params) {
92489
92489
  const wrapper = new FallbackMemoryManager({
92490
92490
  primary,
92491
92491
  fallbackFactory: async () => {
92492
- const { MemoryIndexManager } = await import("./manager-D8_WeA0B.js").then((n) => n.t);
92492
+ const { MemoryIndexManager } = await import("./manager-Dha79IeT.js").then((n) => n.t);
92493
92493
  return await MemoryIndexManager.get(params);
92494
92494
  }
92495
92495
  }, () => {
@@ -92504,7 +92504,7 @@ async function getMemorySearchManager(params) {
92504
92504
  }
92505
92505
  }
92506
92506
  try {
92507
- const { MemoryIndexManager } = await import("./manager-D8_WeA0B.js").then((n) => n.t);
92507
+ const { MemoryIndexManager } = await import("./manager-Dha79IeT.js").then((n) => n.t);
92508
92508
  return { manager: await MemoryIndexManager.get(params) };
92509
92509
  } catch (err) {
92510
92510
  return {
@@ -93056,7 +93056,7 @@ async function withMemoryManagerForAgent(params) {
93056
93056
  }
93057
93057
  async function checkReadableFile(pathname) {
93058
93058
  try {
93059
- await fs.access(pathname, syncFs.constants.R_OK);
93059
+ await fs.access(pathname, fs$1.constants.R_OK);
93060
93060
  return { exists: true };
93061
93061
  } catch (err) {
93062
93062
  const code = err.code;
@@ -93115,7 +93115,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
93115
93115
  }
93116
93116
  let dirReadable = null;
93117
93117
  try {
93118
- await fs.access(memoryDir, syncFs.constants.R_OK);
93118
+ await fs.access(memoryDir, fs$1.constants.R_OK);
93119
93119
  dirReadable = true;
93120
93120
  } catch (err) {
93121
93121
  const code = err.code;
@@ -93562,7 +93562,7 @@ function createPluginRuntime(options = {}) {
93562
93562
  workStates: readTaskWorkStates
93563
93563
  },
93564
93564
  resolveLearningWorkspaceDir: (agentId) => resolveLearningWorkspaceDir(loadConfig(), agentId),
93565
- sessions: { startUserRun: async (params) => (await import("./user-run-recording-BCrEbuKq.js").then((n) => n.n)).startUserSessionRun(params) }
93565
+ sessions: { startUserRun: async (params) => (await import("./user-run-recording-B6Tm0B7M.js").then((n) => n.n)).startUserSessionRun(params) }
93566
93566
  };
93567
93567
  Object.defineProperty(runtime, "analysis", {
93568
93568
  enumerable: true,
@@ -93605,7 +93605,7 @@ const resolvePluginSdkAliasFile = (params) => {
93605
93605
  const srcCandidate = path.join(cursor, "src", "plugin-sdk", params.srcFile);
93606
93606
  const distCandidate = path.join(cursor, "dist", "plugin-sdk", params.distFile);
93607
93607
  const orderedCandidates = isDistRuntime ? [distCandidate, srcCandidate] : isTest ? [distCandidate, srcCandidate] : [distCandidate];
93608
- for (const candidate of orderedCandidates) if (syncFs.existsSync(candidate)) return candidate;
93608
+ for (const candidate of orderedCandidates) if (fs$1.existsSync(candidate)) return candidate;
93609
93609
  const parent = path.dirname(cursor);
93610
93610
  if (parent === cursor) break;
93611
93611
  cursor = parent;
@@ -94148,7 +94148,7 @@ function loadOpenClawPlugins(options = {}) {
94148
94148
  continue;
94149
94149
  }
94150
94150
  const safeSource = opened.path;
94151
- syncFs.closeSync(opened.fd);
94151
+ fs$1.closeSync(opened.fd);
94152
94152
  let mod = null;
94153
94153
  try {
94154
94154
  mod = getJiti()(safeSource);
@@ -94308,7 +94308,7 @@ function loadOpenClawPlugins(options = {}) {
94308
94308
  }
94309
94309
  function safeRealpathOrResolve(value) {
94310
94310
  try {
94311
- return syncFs.realpathSync(value);
94311
+ return fs$1.realpathSync(value);
94312
94312
  } catch {
94313
94313
  return path.resolve(value);
94314
94314
  }
@@ -94770,9 +94770,9 @@ function resolvePatchFileOps(options) {
94770
94770
  });
94771
94771
  assertBoundaryRead(opened, filePath);
94772
94772
  try {
94773
- return syncFs.readFileSync(opened.fd, "utf8");
94773
+ return fs$1.readFileSync(opened.fd, "utf8");
94774
94774
  } finally {
94775
- syncFs.closeSync(opened.fd);
94775
+ fs$1.closeSync(opened.fd);
94776
94776
  }
94777
94777
  },
94778
94778
  writeFile: async (filePath, content) => {
@@ -95068,7 +95068,7 @@ async function recordLoopOutcome(args) {
95068
95068
  if (!args.ctx?.sessionKey) return;
95069
95069
  try {
95070
95070
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bnyx-w0F.js").then((n) => n.n);
95071
- const { recordToolCallOutcome } = await import("./tool-loop-detection-C1fqyXXD.js");
95071
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-8uvf8mSd.js");
95072
95072
  recordToolCallOutcome(getDiagnosticSessionState({
95073
95073
  sessionKey: args.ctx.sessionKey,
95074
95074
  sessionId: args.ctx?.agentId
@@ -95095,8 +95095,8 @@ async function runBeforeToolCallHook(args) {
95095
95095
  const params = args.params;
95096
95096
  if (args.ctx?.sessionKey) {
95097
95097
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bnyx-w0F.js").then((n) => n.n);
95098
- const { logToolLoopAction } = await import("./diagnostic-CwxQVPgP.js").then((n) => n.n);
95099
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-C1fqyXXD.js");
95098
+ const { logToolLoopAction } = await import("./diagnostic-BQTUSnsG.js").then((n) => n.n);
95099
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-8uvf8mSd.js");
95100
95100
  const sessionState = getDiagnosticSessionState({
95101
95101
  sessionKey: args.ctx.sessionKey,
95102
95102
  sessionId: args.ctx?.agentId
@@ -97511,9 +97511,9 @@ async function readWorkspaceContextForSummary() {
97511
97511
  if (!opened.ok) return "";
97512
97512
  const sections = extractSections((() => {
97513
97513
  try {
97514
- return syncFs.readFileSync(opened.fd, "utf-8");
97514
+ return fs$1.readFileSync(opened.fd, "utf-8");
97515
97515
  } finally {
97516
- syncFs.closeSync(opened.fd);
97516
+ fs$1.closeSync(opened.fd);
97517
97517
  }
97518
97518
  })(), ["Session Startup", "Red Lines"]);
97519
97519
  if (sections.length === 0) return "";
@@ -99346,7 +99346,7 @@ async function compactEmbeddedPiSessionDirect(params) {
99346
99346
  if (!apiKeyInfo.apiKey) {
99347
99347
  if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
99348
99348
  } else if (model.provider === "github-copilot") {
99349
- const { resolveCopilotApiToken } = await import("./github-copilot-token-zGOMIGSh.js").then((n) => n.n);
99349
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-WSjo05vB.js").then((n) => n.n);
99350
99350
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
99351
99351
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
99352
99352
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
@@ -106259,7 +106259,7 @@ async function runEmbeddedPiAgent(params) {
106259
106259
  await copilotTokenState.refreshInFlight;
106260
106260
  return;
106261
106261
  }
106262
- const { resolveCopilotApiToken } = await import("./github-copilot-token-zGOMIGSh.js").then((n) => n.n);
106262
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-WSjo05vB.js").then((n) => n.n);
106263
106263
  copilotTokenState.refreshInFlight = (async () => {
106264
106264
  const githubToken = copilotTokenState.githubToken.trim();
106265
106265
  if (!githubToken) throw new Error("Copilot refresh requires a GitHub token.");
@@ -106351,7 +106351,7 @@ async function runEmbeddedPiAgent(params) {
106351
106351
  return;
106352
106352
  }
106353
106353
  if (model.provider === "github-copilot") {
106354
- const { resolveCopilotApiToken } = await import("./github-copilot-token-zGOMIGSh.js").then((n) => n.n);
106354
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-WSjo05vB.js").then((n) => n.n);
106355
106355
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
106356
106356
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
106357
106357
  if (copilotTokenState) {