@hanzo/bot 2026.3.11 → 2026.3.13

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 (169) hide show
  1. package/dist/{accounts-cApXM7Ij.js → accounts-BfUDrXkg.js} +17 -17
  2. package/dist/{accounts-7zwrtsCi.js → accounts-CU6IpCdO.js} +2 -2
  3. package/dist/{accounts-BEs2omoE.js → accounts-CvwEUGLi.js} +2 -2
  4. package/dist/{active-listener-DR8OFowd.js → active-listener-BrRv4Xwc.js} +2 -2
  5. package/dist/{api-key-rotation-RknBrUrn.js → api-key-rotation-GaH2pQmb.js} +2 -2
  6. package/dist/{audio-preflight-Chfaq_QP.js → audio-preflight-ClPkYtiy.js} +32 -32
  7. package/dist/{audio-preflight-D2ryNxLv.js → audio-preflight-hEJ-K1Ib.js} +4 -4
  8. package/dist/{audio-transcription-runner-BI-TLd1r.js → audio-transcription-runner-CqUAFMxM.js} +1 -1
  9. package/dist/{audio-transcription-runner-BvSPpIzU.js → audio-transcription-runner-DcmYYRTV.js} +12 -12
  10. package/dist/{audit-membership-runtime-CVVxrZ7j.js → audit-membership-runtime-BJ149bTU.js} +4 -4
  11. package/dist/build-info.json +3 -3
  12. package/dist/bundled/boot-md/handler.js +51 -51
  13. package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
  14. package/dist/bundled/command-logger/handler.js +2 -2
  15. package/dist/bundled/session-memory/handler.js +51 -51
  16. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  17. package/dist/{channel-activity-CALqzTg5.js → channel-activity-BtB_KYWB.js} +3 -3
  18. package/dist/{chrome-CFVzlBUF.js → chrome-CiH9yYg6.js} +18 -18
  19. package/dist/{chrome-DWoTm_BG.js → chrome-jdOx2dAl.js} +8 -8
  20. package/dist/{cloud-connect-bZKXaJWj.js → cloud-connect-yv8A2P84.js} +1 -1
  21. package/dist/{commands-registry-DD9ywdfc.js → commands-registry-CYzULUtG.js} +4 -4
  22. package/dist/{deliver-B2IvdEAO.js → deliver-CQ6QaVna.js} +21 -21
  23. package/dist/{deliver-BrVS3qD4.js → deliver-DpRQLcxS.js} +1 -1
  24. package/dist/{deliver-runtime-y426rL_k.js → deliver-runtime-9qy2zTFN.js} +3 -3
  25. package/dist/deliver-runtime-AIl3Ydhb.js +36 -0
  26. package/dist/deps-send-discord.runtime-BCKKTBVj.js +26 -0
  27. package/dist/deps-send-imessage.runtime-CrYNg1e_.js +25 -0
  28. package/dist/deps-send-signal.runtime-rttQOioa.js +24 -0
  29. package/dist/deps-send-slack.runtime-BsCUhMAR.js +22 -0
  30. package/dist/deps-send-telegram.runtime-sOFkXXMD.js +27 -0
  31. package/dist/deps-send-whatsapp.runtime-B4PrMybd.js +60 -0
  32. package/dist/{deps-send-whatsapp.runtime-CUDRJQI6.js → deps-send-whatsapp.runtime-CZEk5mx7.js} +7 -7
  33. package/dist/{diagnostic-pXxnbxER.js → diagnostic-Dt3OGXoB.js} +2 -2
  34. package/dist/entry.js +1 -1
  35. package/dist/{errors-CHd6Q-vF.js → errors-DDrhcWHi.js} +1 -1
  36. package/dist/extensionAPI.js +6 -6
  37. package/dist/{fetch-DZVswJ-3.js → fetch-C7bGdK_0.js} +5 -5
  38. package/dist/{fetch-guard-EqKIhwBB.js → fetch-guard-Danf_0St.js} +2 -2
  39. package/dist/{frontmatter-B6XNqDx2.js → frontmatter-BFHzrAY7.js} +3 -3
  40. package/dist/{fs-safe-ClYE3-y0.js → fs-safe-Cou1ijNV.js} +4 -4
  41. package/dist/{github-copilot-token-BDioPmd6.js → github-copilot-token-D13V9YBz.js} +7 -7
  42. package/dist/{image-BgWMM5C3.js → image-Cw0N8PLF.js} +6 -6
  43. package/dist/{image-D99xLnGA.js → image-YeyG7rr8.js} +1 -1
  44. package/dist/{image-ops-DGh7juCd.js → image-ops-C23SGeMe.js} +2 -2
  45. package/dist/image-runtime-BTWt5pDL.js +29 -0
  46. package/dist/{image-runtime-BHiX93k-.js → image-runtime-DZ9BSPkK.js} +3 -3
  47. package/dist/{ir-BUxTWPJl.js → ir-CeK8iZwE.js} +8 -8
  48. package/dist/{legacy-names-DZdACm3t.js → legacy-names-Bkl4tjN-.js} +1 -1
  49. package/dist/llm-slug-generator.js +51 -51
  50. package/dist/{local-launch-DO77bp0N.js → local-launch-CUwfR4xk.js} +29 -9
  51. package/dist/{logger-LCC1m_20.js → logger-D4RcXHR-.js} +7 -7
  52. package/dist/{login-BPpT7LmW.js → login-CHghmysG.js} +5 -5
  53. package/dist/{login-qr-ROsDrMTV.js → login-qr-CNFNhTf4.js} +10 -10
  54. package/dist/{manager-DcZ7mOtr.js → manager-DD6mzJNU.js} +13 -13
  55. package/dist/manager-runtime-Daqs8hiB.js +18 -0
  56. package/dist/{model-selection-DX7XfNlF.js → model-selection-CLGE3YIs.js} +43 -43
  57. package/dist/{outbound-attachment-CC04mCS8.js → outbound-attachment-gUN8NzLf.js} +2 -2
  58. package/dist/{outbound-CQ5XVDFO.js → outbound-qbvc4GA6.js} +6 -6
  59. package/dist/{path-alias-guards-IQC4IpGS.js → path-alias-guards-BzNEeFKJ.js} +1 -1
  60. package/dist/{paths-GZsDv0mI.js → paths-0WxUzzEz.js} +4 -4
  61. package/dist/{paths-Cvc9EM8Y.js → paths-C6TxBCvO.js} +5 -5
  62. package/dist/{pi-embedded-bHDdzvEW.js → pi-embedded-DF0t5HJD.js} +159 -159
  63. package/dist/{pi-embedded-DoF5GLjn.js → pi-embedded-bklbT-yp.js} +24 -24
  64. package/dist/{pi-embedded-helpers-CVj2Bw45.js → pi-embedded-helpers-BT9OkmaI.js} +52 -52
  65. package/dist/{pi-embedded-helpers-DkZKaPa4.js → pi-embedded-helpers-CSHUPpwW.js} +3 -3
  66. package/dist/pi-model-discovery-runtime-C9astVbX.js +11 -0
  67. package/dist/{pi-model-discovery-BYBYqQ0u.js → pi-model-discovery-vsJpfYA9.js} +7 -7
  68. package/dist/{pi-tools.before-tool-call.runtime-BiTed3Jt.js → pi-tools.before-tool-call.runtime-D-Vj4eZ7.js} +9 -9
  69. package/dist/plugin-sdk/discord.js +6 -6
  70. package/dist/plugin-sdk/mattermost.js +3 -3
  71. package/dist/{plugins-DB-tbkgl.js → plugins-BZY4UQdP.js} +13 -13
  72. package/dist/{proxy-env-CiOhiqru.js → proxy-env-BgSzvACM.js} +1 -1
  73. package/dist/{proxy-fetch-lxJGuoUa.js → proxy-fetch-ChfJDZwG.js} +1 -1
  74. package/dist/{pw-ai-Mq6HuD9y.js → pw-ai-C99W41P5.js} +1 -1
  75. package/dist/{pw-ai-WtE5uJRQ.js → pw-ai-CaeuHJYc.js} +14 -14
  76. package/dist/{qmd-manager-Bcw2cb8D.js → qmd-manager-IaHGjYlf.js} +10 -10
  77. package/dist/{query-expansion-D9bYNybh.js → query-expansion-CzkZbxDS.js} +6 -6
  78. package/dist/{redact-DqlKR0-n.js → redact-DGz6yigq.js} +1 -1
  79. package/dist/{run-main-BDJMRMI4.js → run-main-BmfZLBd9.js} +2 -2
  80. package/dist/{run-with-concurrency-B8f7bYi3.js → run-with-concurrency-Ccm0w34R.js} +4 -4
  81. package/dist/runtime-whatsapp-login.runtime-BQjNpkbA.js +13 -0
  82. package/dist/runtime-whatsapp-outbound.runtime-GVjcQLWE.js +22 -0
  83. package/dist/{send-CkPIBk6V.js → send-BRWGalFX.js} +8 -8
  84. package/dist/{send-BftnuVa7.js → send-CYoz4Xjy.js} +7 -7
  85. package/dist/{send-D9k6sRe5.js → send-Cpd5Q5mD.js} +6 -6
  86. package/dist/{send-yLSU7X_F.js → send-Dsz28eiu.js} +28 -28
  87. package/dist/{send-pIawmzTN.js → send-tBfK5Za7.js} +5 -5
  88. package/dist/{session-CgL23zvS.js → session-Dn8bzB0l.js} +8 -8
  89. package/dist/{skill-commands-Cnz3QjWm.js → skill-commands-LO2hG7Hm.js} +9 -9
  90. package/dist/{skills-BhLAW7lA.js → skills-mpCKgKof.js} +22 -22
  91. package/dist/slash-commands.runtime-Qho-6_Lc.js +16 -0
  92. package/dist/{slash-dispatch.runtime-BI4kyhSk.js → slash-dispatch.runtime-CLPlz-lX.js} +6 -6
  93. package/dist/slash-dispatch.runtime-CkR-TldC.js +56 -0
  94. package/dist/slash-skill-commands.runtime-DmrTozXn.js +20 -0
  95. package/dist/{store-EDjci9yP.js → store-DbpT7v8D.js} +2 -2
  96. package/dist/subagent-registry-runtime-DWAZpHqO.js +56 -0
  97. package/dist/{subagent-registry-runtime-nzkRCNeS.js → subagent-registry-runtime-TuyVULIb.js} +6 -6
  98. package/dist/{subsystem-CdFYjh2k.js → subsystem-W834z9Wa.js} +14 -14
  99. package/dist/{tables-tp9Zl0hI.js → tables-BpeU6RzS.js} +1 -1
  100. package/dist/{target-errors-3YX3buv4.js → target-errors-Dcsvl3HX.js} +2 -2
  101. package/dist/{thinking-BaTRgLOg.js → thinking-DzbkyD99.js} +7 -7
  102. package/dist/{tokens-mtgzW7UN.js → tokens-Cyi-NbsV.js} +1 -1
  103. package/dist/{tool-images-C3-c00jy.js → tool-images-DktJ_8C5.js} +2 -2
  104. package/dist/{web-BOPbMZux.js → web-BByXTa4p.js} +55 -55
  105. package/dist/{web-72kt7sM1.js → web-Ci3EFOGu.js} +6 -6
  106. package/dist/{whatsapp-actions-BQWT_h74.js → whatsapp-actions-BK9m2IVX.js} +21 -21
  107. package/dist/{workspace-DKhOowSl.js → workspace-BhNk7PBH.js} +20 -20
  108. package/extensions/acpx/package.json +1 -1
  109. package/extensions/bluebubbles/package.json +1 -1
  110. package/extensions/ci-fix-loop/package.json +1 -1
  111. package/extensions/continuous-learning/package.json +1 -1
  112. package/extensions/copilot-proxy/package.json +1 -1
  113. package/extensions/diagnostics-otel/package.json +1 -1
  114. package/extensions/diffs/package.json +1 -1
  115. package/extensions/discord/package.json +1 -1
  116. package/extensions/feishu/package.json +1 -1
  117. package/extensions/flow/package.json +1 -1
  118. package/extensions/google-antigravity-auth/package.json +1 -1
  119. package/extensions/google-gemini-cli-auth/package.json +1 -1
  120. package/extensions/googlechat/package.json +1 -1
  121. package/extensions/imessage/package.json +1 -1
  122. package/extensions/irc/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 +10 -0
  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-portal-auth/package.json +1 -1
  132. package/extensions/msteams/CHANGELOG.md +10 -0
  133. package/extensions/msteams/package.json +1 -1
  134. package/extensions/nextcloud-talk/package.json +1 -1
  135. package/extensions/nostr/CHANGELOG.md +10 -0
  136. package/extensions/nostr/package.json +1 -1
  137. package/extensions/open-prose/package.json +1 -1
  138. package/extensions/self-improvement/package.json +1 -1
  139. package/extensions/signal/package.json +1 -1
  140. package/extensions/slack/package.json +1 -1
  141. package/extensions/synology-chat/package.json +1 -1
  142. package/extensions/telegram/package.json +1 -1
  143. package/extensions/tlon/package.json +1 -1
  144. package/extensions/twitch/CHANGELOG.md +10 -0
  145. package/extensions/twitch/package.json +1 -1
  146. package/extensions/voice-call/CHANGELOG.md +10 -0
  147. package/extensions/voice-call/package.json +1 -1
  148. package/extensions/whatsapp/package.json +1 -1
  149. package/extensions/zalo/CHANGELOG.md +10 -0
  150. package/extensions/zalo/package.json +1 -1
  151. package/extensions/zalouser/CHANGELOG.md +10 -0
  152. package/extensions/zalouser/package.json +1 -1
  153. package/package.json +1 -1
  154. package/dist/deliver-runtime-DY7UPWdO.js +0 -36
  155. package/dist/deps-send-discord.runtime-B_MPWdLu.js +0 -26
  156. package/dist/deps-send-imessage.runtime-BqgAHmfA.js +0 -25
  157. package/dist/deps-send-signal.runtime-B4CYnceH.js +0 -24
  158. package/dist/deps-send-slack.runtime-dtkYbGcS.js +0 -22
  159. package/dist/deps-send-telegram.runtime-C5f1UIXW.js +0 -27
  160. package/dist/deps-send-whatsapp.runtime-D6XwcPPI.js +0 -60
  161. package/dist/image-runtime-v_h0aTZD.js +0 -29
  162. package/dist/manager-runtime-D_u9rPEs.js +0 -18
  163. package/dist/pi-model-discovery-runtime-ZDLroaI6.js +0 -11
  164. package/dist/runtime-whatsapp-login.runtime-A_4Z63o5.js +0 -13
  165. package/dist/runtime-whatsapp-outbound.runtime-QGzX864p.js +0 -22
  166. package/dist/slash-commands.runtime-BD-KtYmG.js +0 -16
  167. package/dist/slash-dispatch.runtime-Dzq3WGxH.js +0 -56
  168. package/dist/slash-skill-commands.runtime-EpYM7zik.js +0 -20
  169. package/dist/subagent-registry-runtime-DwTeW5f1.js +0 -56
@@ -1,68 +1,68 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { _ as toAgentModelListLike, a as resolveAgentDir, c as resolveAgentWorkspaceDir, d as resolveRunModelFallbacksOverride, f as resolveSessionAgentId, g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues, i as resolveAgentConfig, l as resolveDefaultAgentId, n as hasConfiguredModelFallbacks, p as resolveSessionAgentIds, r as listAgentIds, s as resolveAgentSkillsFilter, t as runTasksWithConcurrency, u as resolveEffectiveModelFallbacks } from "./run-with-concurrency-B8f7bYi3.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 normalizeLogLevel, E as consumeRootOptionToken, T as FLAG_TERMINATOR, _ as isRich, a as clearActiveProgressLine, c as danger, f as setVerbose, g as colorize, h as warn, i as defaultRuntime, o as registerActiveProgressLine, p as shouldLogVerbose, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger, u as logVerbose, v as theme, w as resolvePreferredOpenClawTmpDir, y as getChildLogger } from "./subsystem-CdFYjh2k.js";
5
- import { $ as parseAgentSessionKey, A as normalizeWindowsPathForComparison, B as resolveAgentIdFromSessionKey, G as normalizeAccountId$2, H as sanitizeAgentId, I as classifySessionKeyShape, J as deriveSessionChatType, K as normalizeOptionalAccountId, L as isValidAgentId, M as DEFAULT_MAIN_KEY, N as buildAgentMainSessionKey, P as buildAgentPeerSessionKey, Q as isSubagentSessionKey, R as normalizeAgentId, U as scopedHeartbeatWakeOptions, V as resolveThreadSessionKeys, W as DEFAULT_ACCOUNT_ID, X as isAcpSessionKey, Y as getSubagentDepth, Z as isCronSessionKey, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, b as openBoundaryFile, et as resolveThreadParentSessionKey, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, j as DEFAULT_AGENT_ID, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, q as isBlockedObjectKey, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as openBoundaryFileSync, z as normalizeMainKey } from "./workspace-DKhOowSl.js";
6
- import { C as sleep$1, D as isPlainObject, E as truncateUtf16Safe, S as shortenHomePath, a as CONFIG_DIR, d as formatTerminalLink, f as isRecord$1, h as normalizeE164, i as logWarn, l as ensureDir$3, n as logError, r as logInfo, s as clampInt, t as logDebug, u as escapeRegExp, w as sliceUtf16Safe, x as shortenHomeInString, y as resolveUserPath } from "./logger-LCC1m_20.js";
7
- import { $n as isDangerousHostEnvVarName, $t as setActivePluginRegistry, A as getCustomProviderApiKey, An as extractShellWrapperInlineCommand, At as isAvatarHttpUrl, B as markAuthProfileFailure, Bn as isSafeExecutableValue, Bt as resolveEffectiveEnableState, C as OLLAMA_NATIVE_BASE_URL, Cn as buildEnforcedShellCommand, Cr as DEFAULT_CONTEXT_TOKENS, D as buildStreamErrorAssistantMessage, Dn as matchAllowlist, E as buildAssistantMessageWithZeroUsage, En as DEFAULT_SAFE_BINS, Fn as splitShellArgs, Ft as discoverOpenClawPlugins, G as resolveSecretRefValues, Gt as listChatChannels, H as resolveProfilesUnavailableReason, Hn as resolveDiscordPreviewStreamMode, I as resolveAuthProfileOrder, In as SAFE_BIN_PROFILES, It as isPathInside, J as isRecord$2, Jn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Jt as normalizeChatChannelId, K as describeUnknownError$1, Kt as normalizeAnyChannelId, L as clearExpiredCooldowns, Ln as normalizeSafeBinProfileFixtures, Lt as safeStatSync, M as resolveApiKeyForProvider, Mn as isShellWrapperExecutable, Mt as isSupportedLocalAvatarExtension, N as resolveEnvApiKey, Nn as unwrapKnownDispatchWrapperInvocation, Nt as validateJsonSchemaValue, O as buildUsageWithNoCost, On as resolveAllowlistCandidatePath, Ot as AVATAR_MAX_BYTES, P as resolveModelAuthMode, Pn as unwrapKnownShellMultiplexerInvocation, Pt as loadPluginManifestRegistry, Q as readConfigFileSnapshot, Qn as resolveShellEnvFallbackTimeoutMs, Qt as requireActivePluginRegistry, R as getSoonestCooldownExpiry, Rn as resolveSafeBinProfiles, Rt as applyTestPluginDefaults, S as retryAsync, Sn as analyzeShellCommand, Sr as splitTrailingAuthProfile, T as buildAssistantMessage, Tn as splitCommandChain, Tr as DEFAULT_PROVIDER, U as resolveApiKeyForProfile, Un as resolveSlackNativeStreaming, Ut as CHAT_CHANNEL_ORDER, V as markAuthProfileUsed, Vn as mapStreamingModeToSlackLegacyDraftStreamMode, Vt as resolveMemorySlotDecision, W as resolveSecretRefValue, Wn as resolveSlackStreamingMode, Wt as getChatChannelMeta, Xn as VERSION, Xt as getActivePluginRegistryKey, Y as parseDotPath, Yn as resolveAgentMaxConcurrent, Yt as getActivePluginRegistry, Z as loadConfig, Zn as getShellPathFromLoginShell, _n as getTrustedSafeBinDirs, _r as coerceSecretRef, a as isCliProvider, an as listPluginCommands, ar as ensureAuthProfileStore, at as resolveTelegramCustomCommands, bn as normalizeTrustedSafeBinDirs, c as normalizeProviderId, cn as resolveContextEngine, cr as withFileLock, d as resolveDefaultModelForAgent, dn as setConfigOverride, dt as normalizeScpRemoteHost, en as createPluginRegistry, er as isTruthyEnvValue, et as resolveConfigSnapshotHash, f as resolveModelRefFromString, fn as unsetConfigOverride, fr as formatCliCommand, ft as parseNonNegativeByteSize, gn as unsetConfigValueAtPath, gr as normalizeSecretInput, h as resolveThinkingDefault, hn as setConfigValueAtPath, ht as parseDurationMs, i as findNormalizedProviderValue, in as getPluginCommandSpecs, ir as markAuthProfileGood, it as normalizeTelegramCommandName, j as requireApiKey, jn as isDispatchWrapperExecutable, jt as isPathWithinRoot, k as getApiKeyForModel, kn as resolveCommandResolutionFromArgv, kt as isAvatarDataUrl, ln as getConfigOverrides, lt as resolveIMessageAttachmentRoots, m as resolveSubagentSpawnModelSelection, mn as parseConfigPath, mr as resolveAuthProfileDisplayLabel, n as buildConfiguredAllowlistKeys, nn as clearPluginCommands, nr as dedupeProfileIds, nt as validateConfigObjectWithPlugins, o as modelKey, on as matchPluginCommand, or as resolveAuthStorePathForDisplay, p as resolveReasoningDefault, pn as getConfigValueAtPath, pr as resolveCliName, pt as secretRefKey, q as isNonEmptyString, qt as normalizeChannelId$1, r as buildModelAliasIndex, rn as executePluginCommand, rr as listProfilesForProvider, rt as TELEGRAM_COMMAND_NAME_PATTERN, s as normalizeModelRef$2, sn as registerContextEngine, sr as resolveOpenClawAgentDir, st as isInboundPathAllowed, t as buildAllowedModelSet, tn as normalizePluginHttpPath, tr as resolveOwnerDisplaySetting, tt as writeConfigFile, u as resolveConfiguredModelRef, un as resetConfigOverrides, ut as resolveIMessageRemoteAttachmentRoots, vn as isTrustedSafeBinPath, vr as hasConfiguredSecretInput, w as createOllamaStreamFn, wn as isWindowsPlatform, wr as DEFAULT_MODEL, x as resolveRetryConfig, xn as validateSafeBinArgv, xr as resolveSecretInputRef, yn as listWritableExplicitTrustedSafeBinDirs, yr as normalizeResolvedSecretInputString, z as isProfileInCooldown, zn as applyMergePatch, zt as normalizePluginsConfig } from "./model-selection-DX7XfNlF.js";
8
- import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BDioPmd6.js";
9
- import { c as parseBooleanValue$1, n as MANIFEST_KEY, r as createInternalHookEvent, s as triggerInternalHook } from "./legacy-names-DZdACm3t.js";
10
- import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-BaTRgLOg.js";
11
- import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-mtgzW7UN.js";
12
- import { a as logWebSelfId, g as resolveAccountEntry, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, t as hasAnyWhatsAppAuth, u as readWebSelfId } from "./accounts-cApXM7Ij.js";
13
- import { C as createDiscordActionGate, E as normalizeDiscordToken, S as inspectDiscordAccount, T as resolveDiscordAccount, _ as resolveSlackAccount, a as normalizeWhatsAppTarget, b as resolveSlackBotToken, c as listEnabledTelegramAccounts, d as resolveTelegramPollActionGateState, f as resolveTelegramToken, g as inspectSlackAccount, h as listAcpBindings, i as isWhatsAppGroupJid, l as listTelegramAccountIds, m as listBindings, n as listChannelPlugins, o as inspectTelegramAccount, p as buildChannelAccountBindings, r as normalizeChannelId$2, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveSlackReplyToMode, w as listEnabledDiscordAccounts, x as normalizeChatType, y as resolveSlackAppToken } from "./plugins-DB-tbkgl.js";
14
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-D9k6sRe5.js";
15
- import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, 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 buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-CkPIBk6V.js";
2
+ import { _ as toAgentModelListLike, a as resolveAgentDir, c as resolveAgentWorkspaceDir, d as resolveRunModelFallbacksOverride, f as resolveSessionAgentId, g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues, i as resolveAgentConfig, l as resolveDefaultAgentId, n as hasConfiguredModelFallbacks, p as resolveSessionAgentIds, r as listAgentIds, s as resolveAgentSkillsFilter, t as runTasksWithConcurrency, u as resolveEffectiveModelFallbacks } from "./run-with-concurrency-Ccm0w34R.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 normalizeLogLevel, E as consumeRootOptionToken, T as FLAG_TERMINATOR, _ as isRich, a as clearActiveProgressLine, c as danger, f as setVerbose, g as colorize, h as warn, i as defaultRuntime, o as registerActiveProgressLine, p as shouldLogVerbose, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger, u as logVerbose, v as theme, w as resolvePreferredOpenClawTmpDir, y as getChildLogger } from "./subsystem-W834z9Wa.js";
5
+ import { $ as parseAgentSessionKey, A as normalizeWindowsPathForComparison, B as resolveAgentIdFromSessionKey, G as normalizeAccountId$2, H as sanitizeAgentId, I as classifySessionKeyShape, J as deriveSessionChatType, K as normalizeOptionalAccountId, L as isValidAgentId, M as DEFAULT_MAIN_KEY, N as buildAgentMainSessionKey, P as buildAgentPeerSessionKey, Q as isSubagentSessionKey, R as normalizeAgentId, U as scopedHeartbeatWakeOptions, V as resolveThreadSessionKeys, W as DEFAULT_ACCOUNT_ID, X as isAcpSessionKey, Y as getSubagentDepth, Z as isCronSessionKey, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, b as openBoundaryFile, et as resolveThreadParentSessionKey, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, j as DEFAULT_AGENT_ID, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, q as isBlockedObjectKey, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as openBoundaryFileSync, z as normalizeMainKey } from "./workspace-BhNk7PBH.js";
6
+ import { C as sleep$1, D as isPlainObject, E as truncateUtf16Safe, S as shortenHomePath, a as CONFIG_DIR, d as formatTerminalLink, f as isRecord$1, h as normalizeE164, i as logWarn, l as ensureDir$3, n as logError, r as logInfo, s as clampInt, t as logDebug, u as escapeRegExp, w as sliceUtf16Safe, x as shortenHomeInString, y as resolveUserPath } from "./logger-D4RcXHR-.js";
7
+ import { $n as isDangerousHostEnvVarName, $t as setActivePluginRegistry, A as getCustomProviderApiKey, An as extractShellWrapperInlineCommand, At as isAvatarHttpUrl, B as markAuthProfileFailure, Bn as isSafeExecutableValue, Bt as resolveEffectiveEnableState, C as OLLAMA_NATIVE_BASE_URL, Cn as buildEnforcedShellCommand, Cr as DEFAULT_CONTEXT_TOKENS, D as buildStreamErrorAssistantMessage, Dn as matchAllowlist, E as buildAssistantMessageWithZeroUsage, En as DEFAULT_SAFE_BINS, Fn as splitShellArgs, Ft as discoverOpenClawPlugins, G as resolveSecretRefValues, Gt as listChatChannels, H as resolveProfilesUnavailableReason, Hn as resolveDiscordPreviewStreamMode, I as resolveAuthProfileOrder, In as SAFE_BIN_PROFILES, It as isPathInside, J as isRecord$2, Jn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Jt as normalizeChatChannelId, K as describeUnknownError$1, Kt as normalizeAnyChannelId, L as clearExpiredCooldowns, Ln as normalizeSafeBinProfileFixtures, Lt as safeStatSync, M as resolveApiKeyForProvider, Mn as isShellWrapperExecutable, Mt as isSupportedLocalAvatarExtension, N as resolveEnvApiKey, Nn as unwrapKnownDispatchWrapperInvocation, Nt as validateJsonSchemaValue, O as buildUsageWithNoCost, On as resolveAllowlistCandidatePath, Ot as AVATAR_MAX_BYTES, P as resolveModelAuthMode, Pn as unwrapKnownShellMultiplexerInvocation, Pt as loadPluginManifestRegistry, Q as readConfigFileSnapshot, Qn as resolveShellEnvFallbackTimeoutMs, Qt as requireActivePluginRegistry, R as getSoonestCooldownExpiry, Rn as resolveSafeBinProfiles, Rt as applyTestPluginDefaults, S as retryAsync, Sn as analyzeShellCommand, Sr as splitTrailingAuthProfile, T as buildAssistantMessage, Tn as splitCommandChain, Tr as DEFAULT_PROVIDER, U as resolveApiKeyForProfile, Un as resolveSlackNativeStreaming, Ut as CHAT_CHANNEL_ORDER, V as markAuthProfileUsed, Vn as mapStreamingModeToSlackLegacyDraftStreamMode, Vt as resolveMemorySlotDecision, W as resolveSecretRefValue, Wn as resolveSlackStreamingMode, Wt as getChatChannelMeta, Xn as VERSION, Xt as getActivePluginRegistryKey, Y as parseDotPath, Yn as resolveAgentMaxConcurrent, Yt as getActivePluginRegistry, Z as loadConfig, Zn as getShellPathFromLoginShell, _n as getTrustedSafeBinDirs, _r as coerceSecretRef, a as isCliProvider, an as listPluginCommands, ar as ensureAuthProfileStore, at as resolveTelegramCustomCommands, bn as normalizeTrustedSafeBinDirs, c as normalizeProviderId, cn as resolveContextEngine, cr as withFileLock, d as resolveDefaultModelForAgent, dn as setConfigOverride, dt as normalizeScpRemoteHost, en as createPluginRegistry, er as isTruthyEnvValue, et as resolveConfigSnapshotHash, f as resolveModelRefFromString, fn as unsetConfigOverride, fr as formatCliCommand, ft as parseNonNegativeByteSize, gn as unsetConfigValueAtPath, gr as normalizeSecretInput, h as resolveThinkingDefault, hn as setConfigValueAtPath, ht as parseDurationMs, i as findNormalizedProviderValue, in as getPluginCommandSpecs, ir as markAuthProfileGood, it as normalizeTelegramCommandName, j as requireApiKey, jn as isDispatchWrapperExecutable, jt as isPathWithinRoot, k as getApiKeyForModel, kn as resolveCommandResolutionFromArgv, kt as isAvatarDataUrl, ln as getConfigOverrides, lt as resolveIMessageAttachmentRoots, m as resolveSubagentSpawnModelSelection, mn as parseConfigPath, mr as resolveAuthProfileDisplayLabel, n as buildConfiguredAllowlistKeys, nn as clearPluginCommands, nr as dedupeProfileIds, nt as validateConfigObjectWithPlugins, o as modelKey, on as matchPluginCommand, or as resolveAuthStorePathForDisplay, p as resolveReasoningDefault, pn as getConfigValueAtPath, pr as resolveCliName, pt as secretRefKey, q as isNonEmptyString, qt as normalizeChannelId$1, r as buildModelAliasIndex, rn as executePluginCommand, rr as listProfilesForProvider, rt as TELEGRAM_COMMAND_NAME_PATTERN, s as normalizeModelRef$2, sn as registerContextEngine, sr as resolveOpenClawAgentDir, st as isInboundPathAllowed, t as buildAllowedModelSet, tn as normalizePluginHttpPath, tr as resolveOwnerDisplaySetting, tt as writeConfigFile, u as resolveConfiguredModelRef, un as resetConfigOverrides, ut as resolveIMessageRemoteAttachmentRoots, vn as isTrustedSafeBinPath, vr as hasConfiguredSecretInput, w as createOllamaStreamFn, wn as isWindowsPlatform, wr as DEFAULT_MODEL, x as resolveRetryConfig, xn as validateSafeBinArgv, xr as resolveSecretInputRef, yn as listWritableExplicitTrustedSafeBinDirs, yr as normalizeResolvedSecretInputString, z as isProfileInCooldown, zn as applyMergePatch, zt as normalizePluginsConfig } from "./model-selection-CLGE3YIs.js";
8
+ import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-D13V9YBz.js";
9
+ import { c as parseBooleanValue$1, n as MANIFEST_KEY, r as createInternalHookEvent, s as triggerInternalHook } from "./legacy-names-Bkl4tjN-.js";
10
+ import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-DzbkyD99.js";
11
+ import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-Cyi-NbsV.js";
12
+ import { a as logWebSelfId, g as resolveAccountEntry, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, t as hasAnyWhatsAppAuth, u as readWebSelfId } from "./accounts-BfUDrXkg.js";
13
+ import { C as createDiscordActionGate, E as normalizeDiscordToken, S as inspectDiscordAccount, T as resolveDiscordAccount, _ as resolveSlackAccount, a as normalizeWhatsAppTarget, b as resolveSlackBotToken, c as listEnabledTelegramAccounts, d as resolveTelegramPollActionGateState, f as resolveTelegramToken, g as inspectSlackAccount, h as listAcpBindings, i as isWhatsAppGroupJid, l as listTelegramAccountIds, m as listBindings, n as listChannelPlugins, o as inspectTelegramAccount, p as buildChannelAccountBindings, r as normalizeChannelId$2, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveSlackReplyToMode, w as listEnabledDiscordAccounts, x as normalizeChatType, y as resolveSlackAppToken } from "./plugins-BZY4UQdP.js";
14
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-Cpd5Q5mD.js";
15
+ import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, 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 buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-BRWGalFX.js";
16
16
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CXrBi7Jq.js";
17
- import { A as joinPresentTextSegments, C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-B2IvdEAO.js";
18
- import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as isDiagnosticsEnabled, i as logMessageProcessed, l as logWebhookProcessed, m as emitDiagnosticEvent, n as logLaneDequeue, o as logSessionStateChange, p as getDiagnosticSessionState, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-pXxnbxER.js";
19
- import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-7zwrtsCi.js";
17
+ import { A as joinPresentTextSegments, C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-CQ6QaVna.js";
18
+ import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as isDiagnosticsEnabled, i as logMessageProcessed, l as logWebhookProcessed, m as emitDiagnosticEvent, n as logLaneDequeue, o as logSessionStateChange, p as getDiagnosticSessionState, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-Dt3OGXoB.js";
19
+ import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CU6IpCdO.js";
20
20
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-BiE9e9-P.js";
21
- import { A as mediaKindFromMime, C as imageMimeFromFormat, E as kindFromMime, O as MAX_IMAGE_BYTES, T as isGifMedia, _ as GATEWAY_CLIENT_IDS, b as detectMime, c as INTERNAL_MESSAGE_CHANNEL, d as isInternalMessageChannel, f as isMarkdownCapableMessageChannel, g as resolveMessageChannel, h as resolveGatewayMessageChannel, i as getImageMetadata, l as isDeliverableMessageChannel, m as normalizeMessageChannel, p as listDeliverableMessageChannels, s as resizeToJpeg, u as isGatewayMessageChannel, v as GATEWAY_CLIENT_MODES, w as isAudioFileName, x as extensionForMime, y as GATEWAY_CLIENT_NAMES } from "./image-ops-DGh7juCd.js";
22
- import { $ as removeChannelAllowFromStoreEntry, A as expandTextLinks, B as resolveTelegramThreadSpec, C as buildSenderName, D as buildTelegramThreadParams, E as buildTelegramParentPeer, F as resolveTelegramForumThreadId, G as firstDefined$1, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as resolveGroupAllowFromSources, K as isSenderIdAllowed, L as resolveTelegramMediaPlaceholder, M as hasBotMention, N as normalizeForwardedContext, O as buildTypingThreadParams, P as resolveTelegramDirectPeerId, Q as readChannelAllowFromStore, R as resolveTelegramReplyId, S as buildSenderLabel, T as buildTelegramGroupPeerId, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch$1, X as toLocationContext, Y as formatLocationText, Z as addChannelAllowFromStoreEntry, _ as splitTelegramCaption, a as reactMessageTelegram, at as isVoiceCompatibleAudio, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, et as upsertChannelPairingRequest, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, it as listPairingChannels, j as extractTelegramLocation, k as describeReplyTarget, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, nt as writeJsonFileAtomically, o as sendMessageTelegram, p as markdownToTelegramHtml, q as mergeDmAllowFromSources, r as deleteMessageTelegram, rt as getPairingAdapter, s as sendPollTelegram, t as buildInlineKeyboard, tt as readJsonFileWithFallback, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildTelegramGroupFrom, x as buildGroupLabel, y as loadCronStore, z as resolveTelegramStreamMode } from "./send-yLSU7X_F.js";
23
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BYBYqQ0u.js";
24
- import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isRawApiErrorPayload, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCloudCodeAssistFormatError, Ct as setSessionRuntimeModel, D as isFailoverErrorMessage, Dt as resolveMainSessionKey, E as isFailoverAssistantError, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageDimensionError, Mt as resolveSessionLockMaxHoldFromTimeout, N as parseImageSizeError, Nt as createBrowserRouteContext, O as isLikelyContextOverflowError, Ot as deriveSessionMetaPatch, P as sanitizeUserFacingText, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isBillingAssistantError, St as resolveFreshSessionTotalTokens, T as isContextOverflowError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatAssistantErrorText, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as capArrayByJsonBytes, b as getApiErrorPayloadFingerprint, bt as DEFAULT_RESET_TRIGGERS, c as extractToolCallsFromAssistant, ct as parseInlineDirectives$1, d as downgradeOpenAIFunctionCallReasoningPairs, dt as hasInterSessionUserProvenance, en as buildBootstrapContextFiles, et as mergeDeliveryContext, f as downgradeOpenAIReasoningBlocks, ft as normalizeInputProvenance, g as classifyFailoverReasonFromHttpStatus, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as archiveSessionTranscripts, j as isTransientHttpError, jt as acquireSessionWriteLock, k as isRateLimitAssistantError, kt as resolveConversationLabel, l as extractToolResultId, lt as INPUT_PROVENANCE_KIND_VALUES, m as BILLING_ERROR_USER_MESSAGE, mt as resolveSessionKey, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeSessionDeliveryFields, o as normalizeTextForComparison, ot as countToolResults, p as isGoogleModelApi, pt as jsonUtf8Bytes, q as updateLastRoute, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeAccountId$3, s as sanitizeSessionMessagesImages, st as extractToolCallNames, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as normalizeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as applyInputProvenanceToUserMessage, v as formatBillingErrorMessage, vt as resolveSessionResetType, w as isCompactionFailureError, wt as canonicalizeMainSessionAlias, x as isAuthAssistantError, xt as mergeSessionEntry, y as formatRawAssistantErrorForUi, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-CVj2Bw45.js";
25
- import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-CFVzlBUF.js";
26
- 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-BhLAW7lA.js";
27
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-IQC4IpGS.js";
28
- import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-DqlKR0-n.js";
29
- import { i as formatUncaughtError, o as readErrorName, r as formatErrorMessage } from "./errors-CHd6Q-vF.js";
30
- import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-ClYE3-y0.js";
31
- import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-CiOhiqru.js";
32
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-EDjci9yP.js";
21
+ import { A as mediaKindFromMime, C as imageMimeFromFormat, E as kindFromMime, O as MAX_IMAGE_BYTES, T as isGifMedia, _ as GATEWAY_CLIENT_IDS, b as detectMime, c as INTERNAL_MESSAGE_CHANNEL, d as isInternalMessageChannel, f as isMarkdownCapableMessageChannel, g as resolveMessageChannel, h as resolveGatewayMessageChannel, i as getImageMetadata, l as isDeliverableMessageChannel, m as normalizeMessageChannel, p as listDeliverableMessageChannels, s as resizeToJpeg, u as isGatewayMessageChannel, v as GATEWAY_CLIENT_MODES, w as isAudioFileName, x as extensionForMime, y as GATEWAY_CLIENT_NAMES } from "./image-ops-C23SGeMe.js";
22
+ import { $ as removeChannelAllowFromStoreEntry, A as expandTextLinks, B as resolveTelegramThreadSpec, C as buildSenderName, D as buildTelegramThreadParams, E as buildTelegramParentPeer, F as resolveTelegramForumThreadId, G as firstDefined$1, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as resolveGroupAllowFromSources, K as isSenderIdAllowed, L as resolveTelegramMediaPlaceholder, M as hasBotMention, N as normalizeForwardedContext, O as buildTypingThreadParams, P as resolveTelegramDirectPeerId, Q as readChannelAllowFromStore, R as resolveTelegramReplyId, S as buildSenderLabel, T as buildTelegramGroupPeerId, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch$1, X as toLocationContext, Y as formatLocationText, Z as addChannelAllowFromStoreEntry, _ as splitTelegramCaption, a as reactMessageTelegram, at as isVoiceCompatibleAudio, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, et as upsertChannelPairingRequest, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, it as listPairingChannels, j as extractTelegramLocation, k as describeReplyTarget, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, nt as writeJsonFileAtomically, o as sendMessageTelegram, p as markdownToTelegramHtml, q as mergeDmAllowFromSources, r as deleteMessageTelegram, rt as getPairingAdapter, s as sendPollTelegram, t as buildInlineKeyboard, tt as readJsonFileWithFallback, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildTelegramGroupFrom, x as buildGroupLabel, y as loadCronStore, z as resolveTelegramStreamMode } from "./send-Dsz28eiu.js";
23
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-vsJpfYA9.js";
24
+ import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isRawApiErrorPayload, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCloudCodeAssistFormatError, Ct as setSessionRuntimeModel, D as isFailoverErrorMessage, Dt as resolveMainSessionKey, E as isFailoverAssistantError, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageDimensionError, Mt as resolveSessionLockMaxHoldFromTimeout, N as parseImageSizeError, Nt as createBrowserRouteContext, O as isLikelyContextOverflowError, Ot as deriveSessionMetaPatch, P as sanitizeUserFacingText, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isBillingAssistantError, St as resolveFreshSessionTotalTokens, T as isContextOverflowError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatAssistantErrorText, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as capArrayByJsonBytes, b as getApiErrorPayloadFingerprint, bt as DEFAULT_RESET_TRIGGERS, c as extractToolCallsFromAssistant, ct as parseInlineDirectives$1, d as downgradeOpenAIFunctionCallReasoningPairs, dt as hasInterSessionUserProvenance, en as buildBootstrapContextFiles, et as mergeDeliveryContext, f as downgradeOpenAIReasoningBlocks, ft as normalizeInputProvenance, g as classifyFailoverReasonFromHttpStatus, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as archiveSessionTranscripts, j as isTransientHttpError, jt as acquireSessionWriteLock, k as isRateLimitAssistantError, kt as resolveConversationLabel, l as extractToolResultId, lt as INPUT_PROVENANCE_KIND_VALUES, m as BILLING_ERROR_USER_MESSAGE, mt as resolveSessionKey, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeSessionDeliveryFields, o as normalizeTextForComparison, ot as countToolResults, p as isGoogleModelApi, pt as jsonUtf8Bytes, q as updateLastRoute, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeAccountId$3, s as sanitizeSessionMessagesImages, st as extractToolCallNames, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as normalizeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as applyInputProvenanceToUserMessage, v as formatBillingErrorMessage, vt as resolveSessionResetType, w as isCompactionFailureError, wt as canonicalizeMainSessionAlias, x as isAuthAssistantError, xt as mergeSessionEntry, y as formatRawAssistantErrorForUi, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-BT9OkmaI.js";
25
+ import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-CiH9yYg6.js";
26
+ 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-mpCKgKof.js";
27
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BzNEeFKJ.js";
28
+ import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-DGz6yigq.js";
29
+ import { i as formatUncaughtError, o as readErrorName, r as formatErrorMessage } from "./errors-DDrhcWHi.js";
30
+ import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-Cou1ijNV.js";
31
+ import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-BgSzvACM.js";
32
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-DbpT7v8D.js";
33
33
  import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-D7-rxoSr.js";
34
- import { t as resolveIMessageAccount } from "./accounts-BEs2omoE.js";
35
- import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-GZsDv0mI.js";
34
+ import { t as resolveIMessageAccount } from "./accounts-CvwEUGLi.js";
35
+ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-0WxUzzEz.js";
36
36
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-uYL2gEou.js";
37
- import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-C3-c00jy.js";
38
- import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-BgWMM5C3.js";
39
- import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, 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 findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-BvSPpIzU.js";
40
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-DZVswJ-3.js";
37
+ import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-DktJ_8C5.js";
38
+ import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-Cw0N8PLF.js";
39
+ import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, 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 findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-DcmYYRTV.js";
40
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-C7bGdK_0.js";
41
41
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Wgx3OXYj.js";
42
- import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-EqKIhwBB.js";
43
- import { t as makeProxyFetch } from "./proxy-fetch-lxJGuoUa.js";
44
- import { _ as isSafeFenceBreak, a as loadWebMedia, c as chunkByNewline, d as chunkMarkdownTextWithMode, f as chunkText, g as findFenceSpanAt, h as resolveTextChunkLimit, i as getDefaultLocalRoots, m as resolveChunkMode, o as loadWebMediaRaw, p as chunkTextWithMode, s as resolveMarkdownTableMode, u as chunkMarkdownText, v as parseFenceSpans } from "./ir-BUxTWPJl.js";
45
- import { a as ToolInputError, c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-3YX3buv4.js";
46
- import { _ as isRestartEnabled, a as listChatCommandsForConfig, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, g as isNativeCommandsExplicitlyDisabled, h as isCommandFlagEnabled, i as listChatCommands, l as normalizeCommandBody, m as shouldHandleTextCommands, n as findCommandByNativeName, o as listNativeCommandSpecs, p as serializeCommandArgs, r as isCommandEnabled, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs, v as resolveNativeCommandsEnabled, y as resolveNativeSkillsEnabled } from "./commands-registry-DD9ywdfc.js";
47
- import { a as getRemoteSkillEligibility, c as pruneExpiredPending, i as resolveSkillCommandInvocation, l as resolvePairingPaths, n as listSkillCommandsForAgents, o as ensureSkillsWatcher, r as listSkillCommandsForWorkspace, s as getSkillsSnapshotVersion, t as listReservedChatSlashCommandNames } from "./skill-commands-Cnz3QjWm.js";
42
+ import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-Danf_0St.js";
43
+ import { t as makeProxyFetch } from "./proxy-fetch-ChfJDZwG.js";
44
+ import { _ as isSafeFenceBreak, a as loadWebMedia, c as chunkByNewline, d as chunkMarkdownTextWithMode, f as chunkText, g as findFenceSpanAt, h as resolveTextChunkLimit, i as getDefaultLocalRoots, m as resolveChunkMode, o as loadWebMediaRaw, p as chunkTextWithMode, s as resolveMarkdownTableMode, u as chunkMarkdownText, v as parseFenceSpans } from "./ir-CeK8iZwE.js";
45
+ import { a as ToolInputError, c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-Dcsvl3HX.js";
46
+ import { _ as isRestartEnabled, a as listChatCommandsForConfig, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, g as isNativeCommandsExplicitlyDisabled, h as isCommandFlagEnabled, i as listChatCommands, l as normalizeCommandBody, m as shouldHandleTextCommands, n as findCommandByNativeName, o as listNativeCommandSpecs, p as serializeCommandArgs, r as isCommandEnabled, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs, v as resolveNativeCommandsEnabled, y as resolveNativeSkillsEnabled } from "./commands-registry-CYzULUtG.js";
47
+ import { a as getRemoteSkillEligibility, c as pruneExpiredPending, i as resolveSkillCommandInvocation, l as resolvePairingPaths, n as listSkillCommandsForAgents, o as ensureSkillsWatcher, r as listSkillCommandsForWorkspace, s as getSkillsSnapshotVersion, t as listReservedChatSlashCommandNames } from "./skill-commands-LO2hG7Hm.js";
48
48
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BfuG8uZ8.js";
49
49
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CmCpeg5n.js";
50
- import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-CALqzTg5.js";
50
+ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BtB_KYWB.js";
51
51
  import { t as buildOutboundMediaLoadOptions } from "./load-options-BFUunM8u.js";
52
52
  import { n as normalizePollInput, r as resolvePollMaxSelections } from "./polls-C_BruSkP.js";
53
- import { t as convertMarkdownTables } from "./tables-tp9Zl0hI.js";
54
- import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-pIawmzTN.js";
55
- import { a as isAllowedIMessageSender, i as formatIMessageChatTarget, n as createIMessageRpcClient, o as normalizeIMessageHandle, r as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, s as parseIMessageTarget, t as sendMessageIMessage } from "./send-BftnuVa7.js";
56
- import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-DR8OFowd.js";
57
- import { n as resolveMemorySearchConfig } from "./manager-DcZ7mOtr.js";
58
- import { m as normalizeExtraMemoryPaths, n as isQueryStopWordToken, p as listMemoryFiles, t as extractKeywords } from "./query-expansion-D9bYNybh.js";
53
+ import { t as convertMarkdownTables } from "./tables-BpeU6RzS.js";
54
+ import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-tBfK5Za7.js";
55
+ import { a as isAllowedIMessageSender, i as formatIMessageChatTarget, n as createIMessageRpcClient, o as normalizeIMessageHandle, r as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, s as parseIMessageTarget, t as sendMessageIMessage } from "./send-CYoz4Xjy.js";
56
+ import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-BrRv4Xwc.js";
57
+ import { n as resolveMemorySearchConfig } from "./manager-DD6mzJNU.js";
58
+ import { m as normalizeExtraMemoryPaths, n as isQueryStopWordToken, p as listMemoryFiles, t as extractKeywords } from "./query-expansion-CzkZbxDS.js";
59
59
  import { createRequire } from "node:module";
60
- import * as fs$2 from "node:fs/promises";
60
+ import * as fs$1 from "node:fs/promises";
61
61
  import fs, { appendFile, mkdir } from "node:fs/promises";
62
62
  import os, { homedir } from "node:os";
63
63
  import * as path$1 from "node:path";
64
64
  import path, { isAbsolute } from "node:path";
65
- import fs$1, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
65
+ import syncFs, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
66
66
  import JSON5 from "json5";
67
67
  import { inspect, isDeepStrictEqual, promisify } from "node:util";
68
68
  import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
@@ -3516,7 +3516,7 @@ async function resolveOpenClawDocsPath(params) {
3516
3516
  const workspaceDir = params.workspaceDir?.trim();
3517
3517
  if (workspaceDir) {
3518
3518
  const workspaceDocs = path.join(workspaceDir, "docs");
3519
- if (fs$1.existsSync(workspaceDocs)) return workspaceDocs;
3519
+ if (syncFs.existsSync(workspaceDocs)) return workspaceDocs;
3520
3520
  }
3521
3521
  const packageRoot = await resolveOpenClawPackageRoot({
3522
3522
  cwd: params.cwd,
@@ -3525,7 +3525,7 @@ async function resolveOpenClawDocsPath(params) {
3525
3525
  });
3526
3526
  if (!packageRoot) return null;
3527
3527
  const packageDocs = path.join(packageRoot, "docs");
3528
- return fs$1.existsSync(packageDocs) ? packageDocs : null;
3528
+ return syncFs.existsSync(packageDocs) ? packageDocs : null;
3529
3529
  }
3530
3530
 
3531
3531
  //#endregion
@@ -6682,7 +6682,7 @@ function resolveDefaultIdentityPath() {
6682
6682
  return path.join(resolveStateDir(), "identity", "device.json");
6683
6683
  }
6684
6684
  function ensureDir$2(filePath) {
6685
- fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
6685
+ syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
6686
6686
  }
6687
6687
  const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
6688
6688
  function base64UrlEncode(buf) {
@@ -6718,8 +6718,8 @@ function generateIdentity() {
6718
6718
  }
6719
6719
  function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
6720
6720
  try {
6721
- if (fs$1.existsSync(filePath)) {
6722
- const raw = fs$1.readFileSync(filePath, "utf8");
6721
+ if (syncFs.existsSync(filePath)) {
6722
+ const raw = syncFs.readFileSync(filePath, "utf8");
6723
6723
  const parsed = JSON.parse(raw);
6724
6724
  if (parsed?.version === 1 && typeof parsed.deviceId === "string" && typeof parsed.publicKeyPem === "string" && typeof parsed.privateKeyPem === "string") {
6725
6725
  const derivedId = fingerprintPublicKey(parsed.publicKeyPem);
@@ -6728,9 +6728,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
6728
6728
  ...parsed,
6729
6729
  deviceId: derivedId
6730
6730
  };
6731
- fs$1.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
6731
+ syncFs.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
6732
6732
  try {
6733
- fs$1.chmodSync(filePath, 384);
6733
+ syncFs.chmodSync(filePath, 384);
6734
6734
  } catch {}
6735
6735
  return {
6736
6736
  deviceId: derivedId,
@@ -6755,9 +6755,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
6755
6755
  privateKeyPem: identity.privateKeyPem,
6756
6756
  createdAtMs: Date.now()
6757
6757
  };
6758
- fs$1.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
6758
+ syncFs.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
6759
6759
  try {
6760
- fs$1.chmodSync(filePath, 384);
6760
+ syncFs.chmodSync(filePath, 384);
6761
6761
  } catch {}
6762
6762
  return identity;
6763
6763
  }
@@ -6949,8 +6949,8 @@ function resolveDeviceAuthPath(env = process.env) {
6949
6949
  }
6950
6950
  function readStore(filePath) {
6951
6951
  try {
6952
- if (!fs$1.existsSync(filePath)) return null;
6953
- const raw = fs$1.readFileSync(filePath, "utf8");
6952
+ if (!syncFs.existsSync(filePath)) return null;
6953
+ const raw = syncFs.readFileSync(filePath, "utf8");
6954
6954
  const parsed = JSON.parse(raw);
6955
6955
  if (parsed?.version !== 1 || typeof parsed.deviceId !== "string") return null;
6956
6956
  if (!parsed.tokens || typeof parsed.tokens !== "object") return null;
@@ -6960,10 +6960,10 @@ function readStore(filePath) {
6960
6960
  }
6961
6961
  }
6962
6962
  function writeStore(filePath, store) {
6963
- fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
6964
- fs$1.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
6963
+ syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
6964
+ syncFs.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
6965
6965
  try {
6966
- fs$1.chmodSync(filePath, 384);
6966
+ syncFs.chmodSync(filePath, 384);
6967
6967
  } catch {}
6968
6968
  }
6969
6969
  function loadDeviceAuthToken(params) {
@@ -10165,7 +10165,7 @@ function normalizeReplyPayload(payload, opts = {}) {
10165
10165
  //#region src/auto-reply/reply/route-reply.ts
10166
10166
  let deliverRuntimePromise$2 = null;
10167
10167
  function loadDeliverRuntime$2() {
10168
- deliverRuntimePromise$2 ??= import("./deliver-runtime-DY7UPWdO.js");
10168
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-AIl3Ydhb.js");
10169
10169
  return deliverRuntimePromise$2;
10170
10170
  }
10171
10171
  /**
@@ -10855,7 +10855,7 @@ function normalizeSessionKey$1(value) {
10855
10855
  }
10856
10856
  function readSessionStore(storePath) {
10857
10857
  try {
10858
- const raw = fs$1.readFileSync(storePath, "utf-8");
10858
+ const raw = syncFs.readFileSync(storePath, "utf-8");
10859
10859
  const parsed = JSON5.parse(raw);
10860
10860
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
10861
10861
  } catch {}
@@ -11454,7 +11454,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
11454
11454
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
11455
11455
  let subagentRegistryRuntimePromise = null;
11456
11456
  function loadSubagentRegistryRuntime() {
11457
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DwTeW5f1.js");
11457
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DWAZpHqO.js");
11458
11458
  return subagentRegistryRuntimePromise;
11459
11459
  }
11460
11460
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -14973,7 +14973,7 @@ async function runWithConcurrency(tasks, limit) {
14973
14973
  //#region src/media-understanding/echo-transcript.ts
14974
14974
  let deliverRuntimePromise$1 = null;
14975
14975
  function loadDeliverRuntime$1() {
14976
- deliverRuntimePromise$1 ??= import("./deliver-runtime-DY7UPWdO.js");
14976
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-AIl3Ydhb.js");
14977
14977
  return deliverRuntimePromise$1;
14978
14978
  }
14979
14979
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -19655,7 +19655,7 @@ function mergeLegacyAgent(current, legacy) {
19655
19655
  }
19656
19656
  function ensureDir$1(filePath) {
19657
19657
  const dir = path.dirname(filePath);
19658
- fs$1.mkdirSync(dir, { recursive: true });
19658
+ syncFs.mkdirSync(dir, { recursive: true });
19659
19659
  }
19660
19660
  function coerceAllowlistEntries(allowlist) {
19661
19661
  if (!Array.isArray(allowlist) || allowlist.length === 0) return Array.isArray(allowlist) ? allowlist : void 0;
@@ -19725,11 +19725,11 @@ function generateToken() {
19725
19725
  function loadExecApprovals() {
19726
19726
  const filePath = resolveExecApprovalsPath();
19727
19727
  try {
19728
- if (!fs$1.existsSync(filePath)) return normalizeExecApprovals({
19728
+ if (!syncFs.existsSync(filePath)) return normalizeExecApprovals({
19729
19729
  version: 1,
19730
19730
  agents: {}
19731
19731
  });
19732
- const raw = fs$1.readFileSync(filePath, "utf8");
19732
+ const raw = syncFs.readFileSync(filePath, "utf8");
19733
19733
  const parsed = JSON.parse(raw);
19734
19734
  if (parsed?.version !== 1) return normalizeExecApprovals({
19735
19735
  version: 1,
@@ -19746,9 +19746,9 @@ function loadExecApprovals() {
19746
19746
  function saveExecApprovals(file) {
19747
19747
  const filePath = resolveExecApprovalsPath();
19748
19748
  ensureDir$1(filePath);
19749
- fs$1.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
19749
+ syncFs.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
19750
19750
  try {
19751
- fs$1.chmodSync(filePath, 384);
19751
+ syncFs.chmodSync(filePath, 384);
19752
19752
  } catch {}
19753
19753
  }
19754
19754
  function ensureExecApprovals() {
@@ -20245,18 +20245,18 @@ function drainSystemEventEntries(sessionKey) {
20245
20245
  function resolvePowerShellPath() {
20246
20246
  const programFiles = process.env.ProgramFiles || process.env.PROGRAMFILES || "C:\\Program Files";
20247
20247
  const pwsh7 = path.join(programFiles, "PowerShell", "7", "pwsh.exe");
20248
- if (fs$1.existsSync(pwsh7)) return pwsh7;
20248
+ if (syncFs.existsSync(pwsh7)) return pwsh7;
20249
20249
  const programW6432 = process.env.ProgramW6432;
20250
20250
  if (programW6432 && programW6432 !== programFiles) {
20251
20251
  const pwsh7Alt = path.join(programW6432, "PowerShell", "7", "pwsh.exe");
20252
- if (fs$1.existsSync(pwsh7Alt)) return pwsh7Alt;
20252
+ if (syncFs.existsSync(pwsh7Alt)) return pwsh7Alt;
20253
20253
  }
20254
20254
  const pwshInPath = resolveShellFromPath("pwsh");
20255
20255
  if (pwshInPath) return pwshInPath;
20256
20256
  const systemRoot = process.env.SystemRoot || process.env.WINDIR;
20257
20257
  if (systemRoot) {
20258
20258
  const candidate = path.join(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
20259
- if (fs$1.existsSync(candidate)) return candidate;
20259
+ if (syncFs.existsSync(candidate)) return candidate;
20260
20260
  }
20261
20261
  return "powershell.exe";
20262
20262
  }
@@ -20294,7 +20294,7 @@ function resolveShellFromPath(name) {
20294
20294
  for (const entry of entries) {
20295
20295
  const candidate = path.join(entry, name);
20296
20296
  try {
20297
- fs$1.accessSync(candidate, fs$1.constants.X_OK);
20297
+ syncFs.accessSync(candidate, syncFs.constants.X_OK);
20298
20298
  return candidate;
20299
20299
  } catch {}
20300
20300
  }
@@ -23769,7 +23769,7 @@ function ensureContextWindowCacheLoaded() {
23769
23769
  await ensureOpenClawModelsJson(cfg);
23770
23770
  } catch {}
23771
23771
  try {
23772
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-BYBYqQ0u.js").then((n) => n.r);
23772
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-vsJpfYA9.js").then((n) => n.r);
23773
23773
  const agentDir = resolveOpenClawAgentDir();
23774
23774
  const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
23775
23775
  applyDiscoveredContextWindows({
@@ -23925,7 +23925,7 @@ function walkUpFrom(startDir, opts, resolveAtDir) {
23925
23925
  function hasGitMarker(repoRoot) {
23926
23926
  const gitPath = path.join(repoRoot, ".git");
23927
23927
  try {
23928
- const stat = fs$1.statSync(gitPath);
23928
+ const stat = syncFs.statSync(gitPath);
23929
23929
  return stat.isDirectory() || stat.isFile();
23930
23930
  } catch {
23931
23931
  return false;
@@ -23937,10 +23937,10 @@ function findGitRoot(startDir, opts = {}) {
23937
23937
  function resolveGitDirFromMarker(repoRoot) {
23938
23938
  const gitPath = path.join(repoRoot, ".git");
23939
23939
  try {
23940
- const stat = fs$1.statSync(gitPath);
23940
+ const stat = syncFs.statSync(gitPath);
23941
23941
  if (stat.isDirectory()) return gitPath;
23942
23942
  if (!stat.isFile()) return null;
23943
- const match = fs$1.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
23943
+ const match = syncFs.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
23944
23944
  if (!match?.[1]) return null;
23945
23945
  return path.resolve(repoRoot, match[1].trim());
23946
23946
  } catch {
@@ -24007,7 +24007,7 @@ const resolveCommitHash = (options = {}) => {
24007
24007
  cachedCommit = null;
24008
24008
  return cachedCommit;
24009
24009
  }
24010
- const head = fs$1.readFileSync(headPath, "utf-8").trim();
24010
+ const head = syncFs.readFileSync(headPath, "utf-8").trim();
24011
24011
  if (!head) {
24012
24012
  cachedCommit = null;
24013
24013
  return cachedCommit;
@@ -24015,7 +24015,7 @@ const resolveCommitHash = (options = {}) => {
24015
24015
  if (head.startsWith("ref:")) {
24016
24016
  const ref = head.replace(/^ref:\s*/i, "").trim();
24017
24017
  const refPath = path.resolve(path.dirname(headPath), ref);
24018
- cachedCommit = formatCommit(fs$1.readFileSync(refPath, "utf-8").trim());
24018
+ cachedCommit = formatCommit(syncFs.readFileSync(refPath, "utf-8").trim());
24019
24019
  return cachedCommit;
24020
24020
  }
24021
24021
  cachedCommit = formatCommit(head);
@@ -24275,17 +24275,17 @@ const readUsageFromSessionLog = (sessionId, sessionEntry, agentId, sessionKey, s
24275
24275
  } catch {
24276
24276
  return;
24277
24277
  }
24278
- if (!fs$1.existsSync(logPath)) return;
24278
+ if (!syncFs.existsSync(logPath)) return;
24279
24279
  try {
24280
24280
  const TAIL_BYTES = 8192;
24281
- const stat = fs$1.statSync(logPath);
24281
+ const stat = syncFs.statSync(logPath);
24282
24282
  const offset = Math.max(0, stat.size - TAIL_BYTES);
24283
24283
  const buf = Buffer.alloc(Math.min(TAIL_BYTES, stat.size));
24284
- const fd = fs$1.openSync(logPath, "r");
24284
+ const fd = syncFs.openSync(logPath, "r");
24285
24285
  try {
24286
- fs$1.readSync(fd, buf, 0, buf.length, offset);
24286
+ syncFs.readSync(fd, buf, 0, buf.length, offset);
24287
24287
  } finally {
24288
- fs$1.closeSync(fd);
24288
+ syncFs.closeSync(fd);
24289
24289
  }
24290
24290
  const tail = buf.toString("utf-8");
24291
24291
  const lines = (offset > 0 ? tail.slice(tail.indexOf("\n") + 1) : tail).split(/\n+/);
@@ -25917,7 +25917,7 @@ function resolveRepoRoot(params) {
25917
25917
  const configured = params.config?.agents?.defaults?.repoRoot?.trim();
25918
25918
  if (configured) try {
25919
25919
  const resolved = path.resolve(configured);
25920
- if (fs$1.statSync(resolved).isDirectory()) return resolved;
25920
+ if (syncFs.statSync(resolved).isDirectory()) return resolved;
25921
25921
  } catch {}
25922
25922
  const candidates = [params.workspaceDir, params.cwd].map((value) => value?.trim()).filter(Boolean);
25923
25923
  const seen = /* @__PURE__ */ new Set();
@@ -26715,7 +26715,7 @@ async function buildContextReply(params) {
26715
26715
  //#region src/auto-reply/reply/commands-export-session.ts
26716
26716
  const EXPORT_HTML_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "export-html");
26717
26717
  function loadTemplate(fileName) {
26718
- return fs$1.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
26718
+ return syncFs.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
26719
26719
  }
26720
26720
  function generateHtml(sessionData) {
26721
26721
  const template = loadTemplate("template.html");
@@ -26789,7 +26789,7 @@ async function buildExportSessionReply(params) {
26789
26789
  } catch (err) {
26790
26790
  return { text: `❌ Failed to resolve session file: ${err instanceof Error ? err.message : String(err)}` };
26791
26791
  }
26792
- if (!fs$1.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
26792
+ if (!syncFs.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
26793
26793
  const sessionManager = SessionManager.open(sessionFile);
26794
26794
  const entries = sessionManager.getEntries();
26795
26795
  const header = sessionManager.getHeader();
@@ -26810,8 +26810,8 @@ async function buildExportSessionReply(params) {
26810
26810
  const defaultFileName = `openclaw-session-${entry.sessionId.slice(0, 8)}-${timestamp}.html`;
26811
26811
  const outputPath = args.outputPath ? path.resolve(args.outputPath.startsWith("~") ? args.outputPath.replace("~", process.env.HOME ?? "") : args.outputPath) : path.join(params.workspaceDir, defaultFileName);
26812
26812
  const outputDir = path.dirname(outputPath);
26813
- if (!fs$1.existsSync(outputDir)) fs$1.mkdirSync(outputDir, { recursive: true });
26814
- fs$1.writeFileSync(outputPath, html, "utf-8");
26813
+ if (!syncFs.existsSync(outputDir)) syncFs.mkdirSync(outputDir, { recursive: true });
26814
+ syncFs.writeFileSync(outputPath, html, "utf-8");
26815
26815
  const relativePath = path.relative(params.workspaceDir, outputPath);
26816
26816
  return { text: [
26817
26817
  "✅ Session exported!",
@@ -26958,8 +26958,8 @@ function resolveZaiApiKey() {
26958
26958
  }
26959
26959
  try {
26960
26960
  const authPath = path.join(resolveRequiredHomeDir(process.env, os.homedir), ".pi", "agent", "auth.json");
26961
- if (!fs$1.existsSync(authPath)) return;
26962
- const data = JSON.parse(fs$1.readFileSync(authPath, "utf-8"));
26961
+ if (!syncFs.existsSync(authPath)) return;
26962
+ const data = JSON.parse(syncFs.readFileSync(authPath, "utf-8"));
26963
26963
  return data["z-ai"]?.access || data.zai?.access;
26964
26964
  } catch {
26965
26965
  return;
@@ -28751,7 +28751,7 @@ function shouldPersistAnyBindingState() {
28751
28751
  }
28752
28752
  function shouldPersistBindingMutations() {
28753
28753
  if (shouldPersistAnyBindingState()) return true;
28754
- return fs$1.existsSync(resolveThreadBindingsPath());
28754
+ return syncFs.existsSync(resolveThreadBindingsPath());
28755
28755
  }
28756
28756
  function saveBindingsToDisk(params = {}) {
28757
28757
  if (!params.force && !shouldPersistAnyBindingState()) return;
@@ -30219,7 +30219,7 @@ const applyCostTotal = (totals, costTotal) => {
30219
30219
  totals.totalCost += costTotal;
30220
30220
  };
30221
30221
  async function* readJsonlRecords(filePath) {
30222
- const fileStream = fs$1.createReadStream(filePath, { encoding: "utf-8" });
30222
+ const fileStream = syncFs.createReadStream(filePath, { encoding: "utf-8" });
30223
30223
  const rl = readline.createInterface({
30224
30224
  input: fileStream,
30225
30225
  crlfDelay: Infinity
@@ -30291,10 +30291,10 @@ async function loadCostUsageSummary(params) {
30291
30291
  const dailyMap = /* @__PURE__ */ new Map();
30292
30292
  const totals = emptyTotals();
30293
30293
  const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
30294
- const entries = await fs$1.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
30294
+ const entries = await syncFs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
30295
30295
  const files = (await Promise.all(entries.filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map(async (entry) => {
30296
30296
  const filePath = path.join(sessionsDir, entry.name);
30297
- const stats = await fs$1.promises.stat(filePath).catch(() => null);
30297
+ const stats = await syncFs.promises.stat(filePath).catch(() => null);
30298
30298
  if (!stats) return null;
30299
30299
  if (stats.mtimeMs < sinceTime) return null;
30300
30300
  return filePath;
@@ -30327,7 +30327,7 @@ async function loadCostUsageSummary(params) {
30327
30327
  }
30328
30328
  async function loadSessionCostSummary(params) {
30329
30329
  const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
30330
- if (!sessionFile || !fs$1.existsSync(sessionFile)) return null;
30330
+ if (!sessionFile || !syncFs.existsSync(sessionFile)) return null;
30331
30331
  const totals = emptyTotals();
30332
30332
  let firstActivity;
30333
30333
  let lastActivity;
@@ -30609,7 +30609,7 @@ function summarizeLifecycleForLog(record, defaults) {
30609
30609
  function loadBindingsFromDisk(accountId) {
30610
30610
  const filePath = resolveBindingsPath(accountId);
30611
30611
  try {
30612
- const raw = fs$1.readFileSync(filePath, "utf-8");
30612
+ const raw = syncFs.readFileSync(filePath, "utf-8");
30613
30613
  const parsed = JSON.parse(raw);
30614
30614
  if (parsed?.version !== STORE_VERSION$1 || !Array.isArray(parsed.bindings)) return [];
30615
30615
  const bindings = [];
@@ -33472,7 +33472,7 @@ async function createModelSelectionState(params) {
33472
33472
  }
33473
33473
  }
33474
33474
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
33475
- const { ensureAuthProfileStore } = await import("./model-selection-DX7XfNlF.js").then((n) => n.F);
33475
+ const { ensureAuthProfileStore } = await import("./model-selection-CLGE3YIs.js").then((n) => n.F);
33476
33476
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
33477
33477
  const providerKey = normalizeProviderId(provider);
33478
33478
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -37206,7 +37206,7 @@ function asBoolean(value) {
37206
37206
  }
37207
37207
  function resolveTempPathParts(opts) {
37208
37208
  const tmpDir = opts.tmpDir ?? resolvePreferredOpenClawTmpDir();
37209
- if (!opts.tmpDir) fs$1.mkdirSync(tmpDir, {
37209
+ if (!opts.tmpDir) syncFs.mkdirSync(tmpDir, {
37210
37210
  recursive: true,
37211
37211
  mode: 448
37212
37212
  });
@@ -37292,7 +37292,7 @@ async function writeUrlToFile(filePath, url, opts) {
37292
37292
  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}`);
37293
37293
  const body = res.body;
37294
37294
  if (!body) throw new Error(`failed to download ${url}: empty response body`);
37295
- const fileHandle = await fs$2.open(filePath, "w");
37295
+ const fileHandle = await fs$1.open(filePath, "w");
37296
37296
  let thrown;
37297
37297
  try {
37298
37298
  const reader = body.getReader();
@@ -37310,7 +37310,7 @@ async function writeUrlToFile(filePath, url, opts) {
37310
37310
  await fileHandle.close();
37311
37311
  }
37312
37312
  if (thrown) {
37313
- await fs$2.unlink(filePath).catch(() => {});
37313
+ await fs$1.unlink(filePath).catch(() => {});
37314
37314
  throw thrown;
37315
37315
  }
37316
37316
  } finally {
@@ -37323,7 +37323,7 @@ async function writeUrlToFile(filePath, url, opts) {
37323
37323
  }
37324
37324
  async function writeBase64ToFile(filePath, base64) {
37325
37325
  const buf = Buffer.from(base64, "base64");
37326
- await fs$2.writeFile(filePath, buf);
37326
+ await fs$1.writeFile(filePath, buf);
37327
37327
  return {
37328
37328
  path: filePath,
37329
37329
  bytes: buf.length
@@ -40427,9 +40427,9 @@ function loadExternalCatalogEntries(options) {
40427
40427
  const entries = [];
40428
40428
  for (const rawPath of paths) {
40429
40429
  const resolved = resolveUserPath(rawPath);
40430
- if (!fs$1.existsSync(resolved)) continue;
40430
+ if (!syncFs.existsSync(resolved)) continue;
40431
40431
  try {
40432
- const payload = JSON.parse(fs$1.readFileSync(resolved, "utf-8"));
40432
+ const payload = JSON.parse(syncFs.readFileSync(resolved, "utf-8"));
40433
40433
  entries.push(...parseCatalogEntries(payload));
40434
40434
  } catch {}
40435
40435
  }
@@ -44254,7 +44254,7 @@ function listExistingAgentIdsFromDisk() {
44254
44254
  const root = resolveStateDir();
44255
44255
  const agentsDir = path.join(root, "agents");
44256
44256
  try {
44257
- return fs$1.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
44257
+ return syncFs.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
44258
44258
  } catch {
44259
44259
  return [];
44260
44260
  }
@@ -50734,7 +50734,7 @@ async function runAgentTurnWithFallback(params) {
50734
50734
  if (corruptedSessionId) {
50735
50735
  const transcriptPath = resolveSessionTranscriptPath(corruptedSessionId);
50736
50736
  try {
50737
- fs$1.unlinkSync(transcriptPath);
50737
+ syncFs.unlinkSync(transcriptPath);
50738
50738
  } catch {}
50739
50739
  }
50740
50740
  delete params.activeSessionStore[sessionKey];
@@ -51555,7 +51555,7 @@ async function readSessionLogSnapshot(params) {
51555
51555
  if (!logPath) return {};
51556
51556
  const snapshot = {};
51557
51557
  if (params.includeByteSize) try {
51558
- const stat = await fs$1.promises.stat(logPath);
51558
+ const stat = await syncFs.promises.stat(logPath);
51559
51559
  const size = Math.floor(stat.size);
51560
51560
  snapshot.byteSize = Number.isFinite(size) && size >= 0 ? size : void 0;
51561
51561
  } catch {
@@ -51569,7 +51569,7 @@ async function readSessionLogSnapshot(params) {
51569
51569
  return snapshot;
51570
51570
  }
51571
51571
  async function readLastNonzeroUsageFromSessionLog(logPath) {
51572
- const handle = await fs$1.promises.open(logPath, "r");
51572
+ const handle = await syncFs.promises.open(logPath, "r");
51573
51573
  try {
51574
51574
  let position = (await handle.stat()).size;
51575
51575
  let leadingPartial = "";
@@ -52273,9 +52273,9 @@ async function readPostCompactionContext(workspaceDir, cfg, nowMs) {
52273
52273
  if (!opened.ok) return null;
52274
52274
  const content = (() => {
52275
52275
  try {
52276
- return fs$1.readFileSync(opened.fd, "utf-8");
52276
+ return syncFs.readFileSync(opened.fd, "utf-8");
52277
52277
  } finally {
52278
- fs$1.closeSync(opened.fd);
52278
+ syncFs.closeSync(opened.fd);
52279
52279
  }
52280
52280
  })();
52281
52281
  let sections = extractSections(content, ["Session Startup", "Red Lines"]);
@@ -52499,7 +52499,7 @@ async function runReplyAgent(params) {
52499
52499
  if (resolved) transcriptCandidates.add(resolved);
52500
52500
  transcriptCandidates.add(resolveSessionTranscriptPath(prevSessionId, agentId));
52501
52501
  for (const candidate of transcriptCandidates) try {
52502
- fs$1.unlinkSync(candidate);
52502
+ syncFs.unlinkSync(candidate);
52503
52503
  } catch {}
52504
52504
  }
52505
52505
  return true;
@@ -53447,7 +53447,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
53447
53447
  const log$10 = createSubsystemLogger("session-maintenance-warning");
53448
53448
  let deliverRuntimePromise = null;
53449
53449
  function loadDeliverRuntime() {
53450
- deliverRuntimePromise ??= import("./deliver-runtime-DY7UPWdO.js");
53450
+ deliverRuntimePromise ??= import("./deliver-runtime-AIl3Ydhb.js");
53451
53451
  return deliverRuntimePromise;
53452
53452
  }
53453
53453
  function shouldSendWarning() {
@@ -53633,7 +53633,7 @@ function forkSessionFromParent(params) {
53633
53633
  agentId: params.agentId,
53634
53634
  sessionsDir: params.sessionsDir
53635
53635
  });
53636
- if (!parentSessionFile || !fs$1.existsSync(parentSessionFile)) return null;
53636
+ if (!parentSessionFile || !syncFs.existsSync(parentSessionFile)) return null;
53637
53637
  try {
53638
53638
  const manager = SessionManager.open(parentSessionFile);
53639
53639
  const leafId = manager.getLeafId();
@@ -53657,7 +53657,7 @@ function forkSessionFromParent(params) {
53657
53657
  cwd: manager.getCwd(),
53658
53658
  parentSession: parentSessionFile
53659
53659
  };
53660
- fs$1.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
53660
+ syncFs.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
53661
53661
  return {
53662
53662
  sessionId,
53663
53663
  sessionFile
@@ -58544,7 +58544,7 @@ const VISION_PROVIDERS = [
58544
58544
  ];
58545
58545
  let imageRuntimePromise = null;
58546
58546
  function loadImageRuntime() {
58547
- imageRuntimePromise ??= import("./image-runtime-v_h0aTZD.js");
58547
+ imageRuntimePromise ??= import("./image-runtime-BTWt5pDL.js");
58548
58548
  return imageRuntimePromise;
58549
58549
  }
58550
58550
  /**
@@ -61386,7 +61386,7 @@ function identityHasValues(identity) {
61386
61386
  }
61387
61387
  function loadIdentityFromFile(identityPath) {
61388
61388
  try {
61389
- const parsed = parseIdentityMarkdown(fs$1.readFileSync(identityPath, "utf-8"));
61389
+ const parsed = parseIdentityMarkdown(syncFs.readFileSync(identityPath, "utf-8"));
61390
61390
  if (!identityHasValues(parsed)) return null;
61391
61391
  return parsed;
61392
61392
  } catch {
@@ -61410,7 +61410,7 @@ function resolveAvatarSource(cfg, agentId) {
61410
61410
  }
61411
61411
  function resolveExistingPath(value) {
61412
61412
  try {
61413
- return fs$1.realpathSync(value);
61413
+ return syncFs.realpathSync(value);
61414
61414
  } catch {
61415
61415
  return path.resolve(value);
61416
61416
  }
@@ -61428,7 +61428,7 @@ function resolveLocalAvatarPath(params) {
61428
61428
  reason: "unsupported_extension"
61429
61429
  };
61430
61430
  try {
61431
- const stat = fs$1.statSync(realPath);
61431
+ const stat = syncFs.statSync(realPath);
61432
61432
  if (!stat.isFile()) return {
61433
61433
  ok: false,
61434
61434
  reason: "missing"
@@ -62748,7 +62748,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
62748
62748
  hasTypedText
62749
62749
  };
62750
62750
  try {
62751
- const { transcribeFirstAudio } = await import("./audio-preflight-Chfaq_QP.js");
62751
+ const { transcribeFirstAudio } = await import("./audio-preflight-ClPkYtiy.js");
62752
62752
  if (params.abortSignal?.aborted) return {
62753
62753
  hasAudioAttachment,
62754
62754
  hasTypedText
@@ -68410,27 +68410,27 @@ let slackSenderRuntimePromise = null;
68410
68410
  let signalSenderRuntimePromise = null;
68411
68411
  let imessageSenderRuntimePromise = null;
68412
68412
  function loadWhatsAppSenderRuntime() {
68413
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-D6XwcPPI.js");
68413
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-B4PrMybd.js");
68414
68414
  return whatsappSenderRuntimePromise;
68415
68415
  }
68416
68416
  function loadTelegramSenderRuntime() {
68417
- telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-C5f1UIXW.js");
68417
+ telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-sOFkXXMD.js");
68418
68418
  return telegramSenderRuntimePromise;
68419
68419
  }
68420
68420
  function loadDiscordSenderRuntime() {
68421
- discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-B_MPWdLu.js");
68421
+ discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-BCKKTBVj.js");
68422
68422
  return discordSenderRuntimePromise;
68423
68423
  }
68424
68424
  function loadSlackSenderRuntime() {
68425
- slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-dtkYbGcS.js");
68425
+ slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-BsCUhMAR.js");
68426
68426
  return slackSenderRuntimePromise;
68427
68427
  }
68428
68428
  function loadSignalSenderRuntime() {
68429
- signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-B4CYnceH.js");
68429
+ signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-rttQOioa.js");
68430
68430
  return signalSenderRuntimePromise;
68431
68431
  }
68432
68432
  function loadIMessageSenderRuntime() {
68433
- imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-BqgAHmfA.js");
68433
+ imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-CrYNg1e_.js");
68434
68434
  return imessageSenderRuntimePromise;
68435
68435
  }
68436
68436
  function createDefaultDeps() {
@@ -74601,7 +74601,7 @@ async function monitorIMessageProvider(opts = {}) {
74601
74601
  function readFileIfExists(filePath) {
74602
74602
  if (!filePath) return;
74603
74603
  try {
74604
- return fs$1.readFileSync(filePath, "utf-8").trim();
74604
+ return syncFs.readFileSync(filePath, "utf-8").trim();
74605
74605
  } catch {
74606
74606
  return;
74607
74607
  }
@@ -75231,7 +75231,7 @@ async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 *
75231
75231
  prefix: "line-media",
75232
75232
  extension: getExtensionForContentType(contentType)
75233
75233
  });
75234
- await fs$1.promises.writeFile(filePath, buffer);
75234
+ await syncFs.promises.writeFile(filePath, buffer);
75235
75235
  logVerbose(`line: downloaded media ${messageId} to ${filePath} (${buffer.length} bytes)`);
75236
75236
  return {
75237
75237
  path: filePath,
@@ -81293,15 +81293,15 @@ let slashCommandsRuntimePromise = null;
81293
81293
  let slashDispatchRuntimePromise = null;
81294
81294
  let slashSkillCommandsRuntimePromise = null;
81295
81295
  function loadSlashCommandsRuntime() {
81296
- slashCommandsRuntimePromise ??= import("./slash-commands.runtime-BD-KtYmG.js");
81296
+ slashCommandsRuntimePromise ??= import("./slash-commands.runtime-Qho-6_Lc.js");
81297
81297
  return slashCommandsRuntimePromise;
81298
81298
  }
81299
81299
  function loadSlashDispatchRuntime() {
81300
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-Dzq3WGxH.js");
81300
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-CkR-TldC.js");
81301
81301
  return slashDispatchRuntimePromise;
81302
81302
  }
81303
81303
  function loadSlashSkillCommandsRuntime() {
81304
- slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-EpYM7zik.js");
81304
+ slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-DmrTozXn.js");
81305
81305
  return slashSkillCommandsRuntimePromise;
81306
81306
  }
81307
81307
  const slackExternalArgMenuStore = createSlackExternalArgMenuStore();
@@ -82291,7 +82291,7 @@ function collectTelegramUnmentionedGroupIds(groups) {
82291
82291
  }
82292
82292
  let auditMembershipRuntimePromise = null;
82293
82293
  function loadAuditMembershipRuntime() {
82294
- auditMembershipRuntimePromise ??= import("./audit-membership-runtime-CVVxrZ7j.js");
82294
+ auditMembershipRuntimePromise ??= import("./audit-membership-runtime-BJ149bTU.js");
82295
82295
  return auditMembershipRuntimePromise;
82296
82296
  }
82297
82297
  async function auditTelegramGroupMembership(params) {
@@ -84751,7 +84751,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
84751
84751
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
84752
84752
  let preflightTranscript;
84753
84753
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
84754
- const { transcribeFirstAudio } = await import("./audio-preflight-Chfaq_QP.js");
84754
+ const { transcribeFirstAudio } = await import("./audio-preflight-ClPkYtiy.js");
84755
84755
  preflightTranscript = await transcribeFirstAudio({
84756
84756
  ctx: {
84757
84757
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -87670,7 +87670,7 @@ function createWhatsAppLoginTool() {
87670
87670
  force: Type.Optional(Type.Boolean())
87671
87671
  }),
87672
87672
  execute: async (_toolCallId, args) => {
87673
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-ROsDrMTV.js");
87673
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CNFNhTf4.js");
87674
87674
  if ((args?.action ?? "start") === "wait") {
87675
87675
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
87676
87676
  return {
@@ -87745,23 +87745,23 @@ let webOutboundPromise = null;
87745
87745
  let webLoginPromise = null;
87746
87746
  let whatsappActionsPromise = null;
87747
87747
  function loadWebOutbound() {
87748
- webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-QGzX864p.js");
87748
+ webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-GVjcQLWE.js");
87749
87749
  return webOutboundPromise;
87750
87750
  }
87751
87751
  function loadWebLogin() {
87752
- webLoginPromise ??= import("./runtime-whatsapp-login.runtime-A_4Z63o5.js");
87752
+ webLoginPromise ??= import("./runtime-whatsapp-login.runtime-BQjNpkbA.js");
87753
87753
  return webLoginPromise;
87754
87754
  }
87755
87755
  function loadWebLoginQr() {
87756
- webLoginQrPromise ??= import("./login-qr-ROsDrMTV.js");
87756
+ webLoginQrPromise ??= import("./login-qr-CNFNhTf4.js");
87757
87757
  return webLoginQrPromise;
87758
87758
  }
87759
87759
  function loadWebChannel() {
87760
- webChannelPromise ??= import("./web-BOPbMZux.js");
87760
+ webChannelPromise ??= import("./web-BByXTa4p.js");
87761
87761
  return webChannelPromise;
87762
87762
  }
87763
87763
  function loadWhatsAppActions() {
87764
- whatsappActionsPromise ??= import("./whatsapp-actions-BQWT_h74.js");
87764
+ whatsappActionsPromise ??= import("./whatsapp-actions-BK9m2IVX.js");
87765
87765
  return whatsappActionsPromise;
87766
87766
  }
87767
87767
  function createRuntimeWhatsApp() {
@@ -88202,7 +88202,7 @@ const log$6 = createSubsystemLogger("memory");
88202
88202
  const QMD_MANAGER_CACHE = /* @__PURE__ */ new Map();
88203
88203
  let managerRuntimePromise = null;
88204
88204
  function loadManagerRuntime() {
88205
- managerRuntimePromise ??= import("./manager-runtime-D_u9rPEs.js");
88205
+ managerRuntimePromise ??= import("./manager-runtime-Daqs8hiB.js");
88206
88206
  return managerRuntimePromise;
88207
88207
  }
88208
88208
  async function getMemorySearchManager(params) {
@@ -88216,7 +88216,7 @@ async function getMemorySearchManager(params) {
88216
88216
  if (cached) return { manager: cached };
88217
88217
  }
88218
88218
  try {
88219
- const { QmdMemoryManager } = await import("./qmd-manager-Bcw2cb8D.js");
88219
+ const { QmdMemoryManager } = await import("./qmd-manager-IaHGjYlf.js");
88220
88220
  const primary = await QmdMemoryManager.create({
88221
88221
  cfg: params.cfg,
88222
88222
  agentId: params.agentId,
@@ -88790,7 +88790,7 @@ async function withMemoryManagerForAgent(params) {
88790
88790
  }
88791
88791
  async function checkReadableFile(pathname) {
88792
88792
  try {
88793
- await fs.access(pathname, fs$1.constants.R_OK);
88793
+ await fs.access(pathname, syncFs.constants.R_OK);
88794
88794
  return { exists: true };
88795
88795
  } catch (err) {
88796
88796
  const code = err.code;
@@ -88849,7 +88849,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
88849
88849
  }
88850
88850
  let dirReadable = null;
88851
88851
  try {
88852
- await fs.access(memoryDir, fs$1.constants.R_OK);
88852
+ await fs.access(memoryDir, syncFs.constants.R_OK);
88853
88853
  dirReadable = true;
88854
88854
  } catch (err) {
88855
88855
  const code = err.code;
@@ -89311,7 +89311,7 @@ const resolvePluginSdkAliasFile = (params) => {
89311
89311
  const srcCandidate = path.join(cursor, "src", "plugin-sdk", params.srcFile);
89312
89312
  const distCandidate = path.join(cursor, "dist", "plugin-sdk", params.distFile);
89313
89313
  const orderedCandidates = isDistRuntime ? [distCandidate, srcCandidate] : isTest ? [distCandidate, srcCandidate] : [distCandidate];
89314
- for (const candidate of orderedCandidates) if (fs$1.existsSync(candidate)) return candidate;
89314
+ for (const candidate of orderedCandidates) if (syncFs.existsSync(candidate)) return candidate;
89315
89315
  const parent = path.dirname(cursor);
89316
89316
  if (parent === cursor) break;
89317
89317
  cursor = parent;
@@ -89919,7 +89919,7 @@ function loadBotPlugins(options = {}) {
89919
89919
  continue;
89920
89920
  }
89921
89921
  const safeSource = opened.path;
89922
- fs$1.closeSync(opened.fd);
89922
+ syncFs.closeSync(opened.fd);
89923
89923
  let mod = null;
89924
89924
  try {
89925
89925
  mod = getJiti()(safeSource);
@@ -90038,7 +90038,7 @@ function loadBotPlugins(options = {}) {
90038
90038
  }
90039
90039
  function safeRealpathOrResolve(value) {
90040
90040
  try {
90041
- return fs$1.realpathSync(value);
90041
+ return syncFs.realpathSync(value);
90042
90042
  } catch {
90043
90043
  return path.resolve(value);
90044
90044
  }
@@ -90477,9 +90477,9 @@ function resolvePatchFileOps(options) {
90477
90477
  });
90478
90478
  assertBoundaryRead(opened, filePath);
90479
90479
  try {
90480
- return fs$1.readFileSync(opened.fd, "utf8");
90480
+ return syncFs.readFileSync(opened.fd, "utf8");
90481
90481
  } finally {
90482
- fs$1.closeSync(opened.fd);
90482
+ syncFs.closeSync(opened.fd);
90483
90483
  }
90484
90484
  },
90485
90485
  writeFile: async (filePath, content) => {
@@ -90758,7 +90758,7 @@ const LOOP_WARNING_BUCKET_SIZE = 10;
90758
90758
  const MAX_LOOP_WARNING_KEYS = 256;
90759
90759
  let beforeToolCallRuntimePromise = null;
90760
90760
  function loadBeforeToolCallRuntime() {
90761
- beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-BiTed3Jt.js");
90761
+ beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-D-Vj4eZ7.js");
90762
90762
  return beforeToolCallRuntimePromise;
90763
90763
  }
90764
90764
  function buildAdjustedParamsKey(params) {
@@ -93561,9 +93561,9 @@ async function readWorkspaceContextForSummary() {
93561
93561
  if (!opened.ok) return "";
93562
93562
  const content = (() => {
93563
93563
  try {
93564
- return fs$1.readFileSync(opened.fd, "utf-8");
93564
+ return syncFs.readFileSync(opened.fd, "utf-8");
93565
93565
  } finally {
93566
- fs$1.closeSync(opened.fd);
93566
+ syncFs.closeSync(opened.fd);
93567
93567
  }
93568
93568
  })();
93569
93569
  let sections = extractSections(content, ["Session Startup", "Red Lines"]);
@@ -94993,7 +94993,7 @@ async function compactEmbeddedPiSessionDirect(params) {
94993
94993
  if (!apiKeyInfo.apiKey) {
94994
94994
  if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
94995
94995
  } else if (model.provider === "github-copilot") {
94996
- const { resolveCopilotApiToken } = await import("./github-copilot-token-BDioPmd6.js").then((n) => n.n);
94996
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-D13V9YBz.js").then((n) => n.n);
94997
94997
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
94998
94998
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
94999
94999
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
@@ -97534,11 +97534,11 @@ function appendRawStream(payload) {
97534
97534
  if (!rawStreamReady) {
97535
97535
  rawStreamReady = true;
97536
97536
  try {
97537
- fs$1.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
97537
+ syncFs.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
97538
97538
  } catch {}
97539
97539
  }
97540
97540
  try {
97541
- fs$1.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
97541
+ syncFs.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
97542
97542
  } catch {}
97543
97543
  }
97544
97544
 
@@ -101255,7 +101255,7 @@ async function runEmbeddedPiAgent(params) {
101255
101255
  await copilotTokenState.refreshInFlight;
101256
101256
  return;
101257
101257
  }
101258
- const { resolveCopilotApiToken } = await import("./github-copilot-token-BDioPmd6.js").then((n) => n.n);
101258
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-D13V9YBz.js").then((n) => n.n);
101259
101259
  copilotTokenState.refreshInFlight = (async () => {
101260
101260
  const githubToken = copilotTokenState.githubToken.trim();
101261
101261
  if (!githubToken) throw new Error("Copilot refresh requires a GitHub token.");
@@ -101347,7 +101347,7 @@ async function runEmbeddedPiAgent(params) {
101347
101347
  return;
101348
101348
  }
101349
101349
  if (model.provider === "github-copilot") {
101350
- const { resolveCopilotApiToken } = await import("./github-copilot-token-BDioPmd6.js").then((n) => n.n);
101350
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-D13V9YBz.js").then((n) => n.n);
101351
101351
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
101352
101352
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
101353
101353
  if (copilotTokenState) {