@lawpath-tech/openclaw 2026.2.21-29 → 2026.2.21-30

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 (84) hide show
  1. package/dist/{accounts-CQT5u65w.js → accounts-CJEDkyd7.js} +1 -1
  2. package/dist/{accounts-DFrH9IVU.js → accounts-CaJg9v7D.js} +1 -1
  3. package/dist/{accounts-C8m4ADkw.js → accounts-DQo5uGA3.js} +14 -14
  4. package/dist/{active-listener-BKTctYlH.js → active-listener-Bhmh-BBe.js} +1 -1
  5. package/dist/{agent-scope-DSUeV7-g.js → agent-scope-DiO1KimT.js} +3 -3
  6. package/dist/{audio-preflight-CODznzqu.js → audio-preflight-Da7vejCH.js} +4 -4
  7. package/dist/{audio-preflight-CLqoZYgI.js → audio-preflight-z9oahneY.js} +29 -29
  8. package/dist/{bindings-BKEEBdsb.js → bindings-CEJk9Gww.js} +2 -2
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +53 -53
  11. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  12. package/dist/bundled/command-logger/handler.js +1 -1
  13. package/dist/bundled/session-memory/handler.js +53 -53
  14. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  15. package/dist/{channel-activity-BgsTqLau.js → channel-activity-pOw1s-fe.js} +1 -1
  16. package/dist/{chrome-Bqbv_ZSj.js → chrome-B3ZZfPkj.js} +13 -13
  17. package/dist/{chrome-lRUqqgSD.js → chrome-CZuniMYN.js} +7 -7
  18. package/dist/{chunk-fZrBDWYg.js → chunk-BkGjWi6P.js} +1 -1
  19. package/dist/{command-format-BOHIfoCX.js → command-format-CM0AxuCk.js} +1 -1
  20. package/dist/{commands-registry-BzlB3qtZ.js → commands-registry-C0QzohKU.js} +4 -4
  21. package/dist/{config-Du_-inxH.js → config-7ClJ9IDt.js} +12 -12
  22. package/dist/{deliver-B2d2N8OJ.js → deliver-0ThKlzQo.js} +1 -1
  23. package/dist/{deliver-CKH_FhS0.js → deliver-CrJoiqws.js} +20 -20
  24. package/dist/{diagnostic-DriDPU6M.js → diagnostic-DTfVTKJM.js} +1 -1
  25. package/dist/extensionAPI.js +6 -6
  26. package/dist/{frontmatter-CdkBcBAo.js → frontmatter-Dab6NVCF.js} +2 -2
  27. package/dist/{gemini-auth-A2JaRMHH.js → gemini-auth-CnEqRhSo.js} +1 -1
  28. package/dist/{github-copilot-token-Dgb9dAHW.js → github-copilot-token-DAycnoAs.js} +7 -7
  29. package/dist/{image-CxPjVob-.js → image-2bonNMVD.js} +4 -4
  30. package/dist/{image--DDZnw-F.js → image-88q3KE-C.js} +1 -1
  31. package/dist/{image-ops-BGmpOcey.js → image-ops-D-bh1BTN.js} +1 -1
  32. package/dist/{ir-DJPm0a4k.js → ir-j1Xb0PNv.js} +4 -4
  33. package/dist/llm-slug-generator.js +53 -53
  34. package/dist/{local-roots-JqlMsAYY.js → local-roots-Dx32AY60.js} +5 -5
  35. package/dist/{login-DXtAIVXy.js → login-CLQskGt7.js} +7 -7
  36. package/dist/{login-qr-D0A3WDBN.js → login-qr-CxZVehrh.js} +12 -12
  37. package/dist/{manager-D7SRrHxT.js → manager-C6KdjXEH.js} +13 -13
  38. package/dist/{manifest-registry-Dhk4A5vb.js → manifest-registry-D31TP66o.js} +19 -19
  39. package/dist/{markdown-tables-DpVJE0eA.js → markdown-tables-BOmw5zkp.js} +1 -1
  40. package/dist/{message-channel-CHYSjmbr.js → message-channel-BckS8bQ9.js} +1 -1
  41. package/dist/{model-auth-vtNH8C4P.js → model-auth-C-Vzzybi.js} +9 -9
  42. package/dist/{outbound-BWgFha97.js → outbound-Bk0PGZ1q.js} +7 -7
  43. package/dist/{outbound-attachment-B8WHzsCX.js → outbound-attachment-CHLSsIj_.js} +2 -2
  44. package/dist/{paths-CyR9Pa1R.js → paths-CkkDESQ2.js} +5 -5
  45. package/dist/{paths-BEAbheM8.js → paths-Cv2Q0cX2.js} +1 -1
  46. package/dist/{pi-auth-json-BiwfFswL.js → pi-auth-json-DzcwV2uo.js} +8 -8
  47. package/dist/{pi-embedded-Dz24QZz9.js → pi-embedded-BFPKtgT3.js} +158 -158
  48. package/dist/{pi-embedded-C_B8_quB.js → pi-embedded-ZvazjIyF.js} +16 -16
  49. package/dist/{pi-embedded-helpers-Cd0S0WfR.js → pi-embedded-helpers-B0Kht0I2.js} +4 -4
  50. package/dist/{pi-embedded-helpers-CSE0v99A.js → pi-embedded-helpers-eDaF2UhI.js} +52 -52
  51. package/dist/{plugins-DIrNa311.js → plugins-Bf_qBfZ7.js} +9 -9
  52. package/dist/{pw-ai-D-_aGzdQ.js → pw-ai-B3EislzC.js} +11 -11
  53. package/dist/{pw-ai-C-kqYO4L.js → pw-ai-S3cpSYOy.js} +1 -1
  54. package/dist/{qmd-manager-DePh-PT0.js → qmd-manager-DVrv2Huu.js} +7 -7
  55. package/dist/{registry-DpeZG5fo.js → registry-wimgwqAA.js} +18 -18
  56. package/dist/{replies-CSVWkVda.js → replies-DuQ9MtQM.js} +3 -3
  57. package/dist/{reply-prefix-DZrS3Kf7.js → reply-prefix-B_1VtLm5.js} +1 -1
  58. package/dist/{resolve-route-1ar2IrQt.js → resolve-route-CSE9DZsB.js} +4 -4
  59. package/dist/{retry-Bdu4_ZcT.js → retry-DwLEH9x4.js} +1 -1
  60. package/dist/{runner-D1eXJZ8T.js → runner-BeO6HoPY.js} +9 -9
  61. package/dist/{runner-Dq-qfrq7.js → runner-a43IsYad.js} +1 -1
  62. package/dist/{send-DPVf5tQ4.js → send-BCt1G0xY.js} +6 -6
  63. package/dist/{send-BeWYOs1x.js → send-CEP4RX_l.js} +7 -7
  64. package/dist/{send-Byt_wJDK.js → send-CMeyW_Bu.js} +6 -6
  65. package/dist/{send-CWtaJF1G.js → send-CdIaqNP6.js} +18 -18
  66. package/dist/{send-BEFzSOoD.js → send-DrfA4RxA.js} +10 -10
  67. package/dist/{session-Bnp7PC7f.js → session-CQ9JJgSo.js} +8 -8
  68. package/dist/{skill-commands-CqyVDpti.js → skill-commands-CwFNOYqC.js} +9 -9
  69. package/dist/{skills-DSZuhFx9.js → skills-C8xf0p1B.js} +21 -21
  70. package/dist/{sqlite-C3XxSzBN.js → sqlite-B6SD9PTM.js} +4 -4
  71. package/dist/{store-BrNiRjgB.js → store-VFVAfYgh.js} +2 -2
  72. package/dist/{subsystem-BF9jT_Nw.js → subsystem-BEdh_1O5.js} +1 -1
  73. package/dist/{tables-C3clT_iA.js → tables-QNO5uMcm.js} +1 -1
  74. package/dist/{target-errors-ChHV8dPI.js → target-errors-DD2466Y6.js} +2 -2
  75. package/dist/{thinking-Dg8vKjw_.js → thinking-BZFf1juV.js} +5 -5
  76. package/dist/{tokens-B-c56SkM.js → tokens-GCiqN5mi.js} +1 -1
  77. package/dist/{tool-images-C1rdDr34.js → tool-images-D0sBSASn.js} +2 -2
  78. package/dist/{tool-loop-detection-Bu3OGskw.js → tool-loop-detection-BPAeTbUj.js} +3 -3
  79. package/dist/{web-DiYh3u92.js → web-CVSol55V.js} +6 -6
  80. package/dist/{web-Y49Dumye.js → web-CfqjWSEf.js} +57 -57
  81. package/dist/{whatsapp-actions-DFZYzkBp.js → whatsapp-actions-kX73ghOz.js} +23 -23
  82. package/dist/{workspace-DYx5Dxtw.js → workspace-CH9k4Qgz.js} +6 -6
  83. package/extensions/voice-call/src/providers/realtime-session.ts +1 -32
  84. package/package.json +1 -1
@@ -1,75 +1,75 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-CyR9Pa1R.js";
2
+ import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-CkkDESQ2.js";
3
3
  import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normalizeMainKey, d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, g as isAcpSessionKey, h as getSubagentDepth, l as resolveAgentIdFromSessionKey, o as classifySessionKeyShape, p as normalizeAccountId$2, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BCzIW1Y2.js";
4
- import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredOpenClawTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-DpeZG5fo.js";
5
- import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-DSUeV7-g.js";
6
- import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BF9jT_Nw.js";
7
- import { S as logWarn, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-DYx5Dxtw.js";
8
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-B-c56SkM.js";
9
- import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-DIrNa311.js";
10
- import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-C8m4ADkw.js";
4
+ import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredOpenClawTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-wimgwqAA.js";
5
+ import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-DiO1KimT.js";
6
+ import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BEdh_1O5.js";
7
+ import { S as logWarn, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-CH9k4Qgz.js";
8
+ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-GCiqN5mi.js";
9
+ import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-Bf_qBfZ7.js";
10
+ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-DQo5uGA3.js";
11
11
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
12
12
  import { t as parseBooleanValue$1 } from "./boolean-B8-BqKGQ.js";
13
- import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-BOHIfoCX.js";
14
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-Byt_wJDK.js";
15
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BEFzSOoD.js";
16
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CKH_FhS0.js";
17
- import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-DriDPU6M.js";
13
+ import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-CM0AxuCk.js";
14
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CMeyW_Bu.js";
15
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DrfA4RxA.js";
16
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CrJoiqws.js";
17
+ import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-DTfVTKJM.js";
18
18
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bxo4UHOL.js";
19
- import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CQT5u65w.js";
20
- import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-CWtaJF1G.js";
21
- import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-BGmpOcey.js";
22
- import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveOpenClawAgentDir } from "./model-auth-vtNH8C4P.js";
23
- import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-Dgb9dAHW.js";
19
+ import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CJEDkyd7.js";
20
+ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-CdIaqNP6.js";
21
+ import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-D-bh1BTN.js";
22
+ import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveOpenClawAgentDir } from "./model-auth-C-Vzzybi.js";
23
+ import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DAycnoAs.js";
24
24
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
25
- import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-CHYSjmbr.js";
26
- import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-CSE0v99A.js";
27
- import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-Du_-inxH.js";
28
- import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverOpenClawPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-Dhk4A5vb.js";
29
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-Bqbv_ZSj.js";
30
- import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-DSZuhFx9.js";
25
+ import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BckS8bQ9.js";
26
+ import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-eDaF2UhI.js";
27
+ import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-7ClJ9IDt.js";
28
+ import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverOpenClawPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-D31TP66o.js";
29
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B3ZZfPkj.js";
30
+ import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-C8xf0p1B.js";
31
31
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BoQgnc8X.js";
32
32
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
33
- import { n as getMediaDir, r as saveMediaBuffer } from "./store-BrNiRjgB.js";
34
- 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-Dg8vKjw_.js";
33
+ import { n as getMediaDir, r as saveMediaBuffer } from "./store-VFVAfYgh.js";
34
+ 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-BZFf1juV.js";
35
35
  import { n as resolveConversationLabel } from "./conversation-label-DXUkoKcB.js";
36
- import { t as resolveIMessageAccount } from "./accounts-DFrH9IVU.js";
37
- import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BEAbheM8.js";
36
+ import { t as resolveIMessageAccount } from "./accounts-CaJg9v7D.js";
37
+ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-Cv2Q0cX2.js";
38
38
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
39
- import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-C1rdDr34.js";
40
- import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-CxPjVob-.js";
41
- import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DZrS3Kf7.js";
42
- import { n as resolveMemorySearchConfig } from "./manager-D7SRrHxT.js";
43
- import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-C3XxSzBN.js";
44
- import { n as retryAsync } from "./retry-Bdu4_ZcT.js";
45
- import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-ChHV8dPI.js";
46
- import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-fZrBDWYg.js";
47
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DpVJE0eA.js";
39
+ import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D0sBSASn.js";
40
+ import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-2bonNMVD.js";
41
+ import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-B_1VtLm5.js";
42
+ import { n as resolveMemorySearchConfig } from "./manager-C6KdjXEH.js";
43
+ import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-B6SD9PTM.js";
44
+ import { n as retryAsync } from "./retry-DwLEH9x4.js";
45
+ import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-DD2466Y6.js";
46
+ import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-BkGjWi6P.js";
47
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BOmw5zkp.js";
48
48
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DL3f_O53.js";
49
- import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-JqlMsAYY.js";
50
- import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DJPm0a4k.js";
51
- import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BzlB3qtZ.js";
52
- import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-CqyVDpti.js";
49
+ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-Dx32AY60.js";
50
+ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-j1Xb0PNv.js";
51
+ import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-C0QzohKU.js";
52
+ import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-CwFNOYqC.js";
53
53
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
54
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-D1eXJZ8T.js";
54
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-BeO6HoPY.js";
55
55
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DtI0mtzx.js";
56
56
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
57
- import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BgsTqLau.js";
57
+ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-pOw1s-fe.js";
58
58
  import { n as normalizePollInput } from "./polls-CCuCaqgv.js";
59
- import { t as convertMarkdownTables } from "./tables-C3clT_iA.js";
60
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DPVf5tQ4.js";
61
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-BeWYOs1x.js";
62
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-1ar2IrQt.js";
59
+ import { t as convertMarkdownTables } from "./tables-QNO5uMcm.js";
60
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-BCt1G0xY.js";
61
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-CEP4RX_l.js";
62
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CSE9DZsB.js";
63
63
  import { t as makeProxyFetch } from "./proxy-CBJ1upuz.js";
64
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CSVWkVda.js";
65
- import { t as getActiveWebListener } from "./active-listener-BKTctYlH.js";
64
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-DuQ9MtQM.js";
65
+ import { t as getActiveWebListener } from "./active-listener-Bhmh-BBe.js";
66
66
  import { createRequire } from "node:module";
67
- import * as fs$2 from "node:fs/promises";
67
+ import * as fs$1 from "node:fs/promises";
68
68
  import fs from "node:fs/promises";
69
69
  import os, { homedir } from "node:os";
70
70
  import * as path$1 from "node:path";
71
71
  import path from "node:path";
72
- import fs$1, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
72
+ import fsSync, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
73
73
  import JSON5 from "json5";
74
74
  import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
75
75
  import { inspect, promisify } from "node:util";
@@ -3220,7 +3220,7 @@ async function resolveOpenClawDocsPath(params) {
3220
3220
  const workspaceDir = params.workspaceDir?.trim();
3221
3221
  if (workspaceDir) {
3222
3222
  const workspaceDocs = path.join(workspaceDir, "docs");
3223
- if (fs$1.existsSync(workspaceDocs)) return workspaceDocs;
3223
+ if (fsSync.existsSync(workspaceDocs)) return workspaceDocs;
3224
3224
  }
3225
3225
  const packageRoot = await resolveOpenClawPackageRoot({
3226
3226
  cwd: params.cwd,
@@ -3229,7 +3229,7 @@ async function resolveOpenClawDocsPath(params) {
3229
3229
  });
3230
3230
  if (!packageRoot) return null;
3231
3231
  const packageDocs = path.join(packageRoot, "docs");
3232
- return fs$1.existsSync(packageDocs) ? packageDocs : null;
3232
+ return fsSync.existsSync(packageDocs) ? packageDocs : null;
3233
3233
  }
3234
3234
 
3235
3235
  //#endregion
@@ -3538,7 +3538,7 @@ async function getMemorySearchManager(params) {
3538
3538
  if (cached) return { manager: cached };
3539
3539
  }
3540
3540
  try {
3541
- const { QmdMemoryManager } = await import("./qmd-manager-DePh-PT0.js");
3541
+ const { QmdMemoryManager } = await import("./qmd-manager-DVrv2Huu.js");
3542
3542
  const primary = await QmdMemoryManager.create({
3543
3543
  cfg: params.cfg,
3544
3544
  agentId: params.agentId,
@@ -3550,7 +3550,7 @@ async function getMemorySearchManager(params) {
3550
3550
  const wrapper = new FallbackMemoryManager({
3551
3551
  primary,
3552
3552
  fallbackFactory: async () => {
3553
- const { MemoryIndexManager } = await import("./manager-D7SRrHxT.js").then((n) => n.t);
3553
+ const { MemoryIndexManager } = await import("./manager-C6KdjXEH.js").then((n) => n.t);
3554
3554
  return await MemoryIndexManager.get(params);
3555
3555
  }
3556
3556
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3563,7 +3563,7 @@ async function getMemorySearchManager(params) {
3563
3563
  }
3564
3564
  }
3565
3565
  try {
3566
- const { MemoryIndexManager } = await import("./manager-D7SRrHxT.js").then((n) => n.t);
3566
+ const { MemoryIndexManager } = await import("./manager-C6KdjXEH.js").then((n) => n.t);
3567
3567
  return { manager: await MemoryIndexManager.get(params) };
3568
3568
  } catch (err) {
3569
3569
  return {
@@ -4251,7 +4251,7 @@ function resolveDefaultIdentityPath() {
4251
4251
  return path.join(resolveStateDir(), "identity", "device.json");
4252
4252
  }
4253
4253
  function ensureDir$2(filePath) {
4254
- fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
4254
+ fsSync.mkdirSync(path.dirname(filePath), { recursive: true });
4255
4255
  }
4256
4256
  const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
4257
4257
  function base64UrlEncode(buf) {
@@ -4287,8 +4287,8 @@ function generateIdentity() {
4287
4287
  }
4288
4288
  function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
4289
4289
  try {
4290
- if (fs$1.existsSync(filePath)) {
4291
- const raw = fs$1.readFileSync(filePath, "utf8");
4290
+ if (fsSync.existsSync(filePath)) {
4291
+ const raw = fsSync.readFileSync(filePath, "utf8");
4292
4292
  const parsed = JSON.parse(raw);
4293
4293
  if (parsed?.version === 1 && typeof parsed.deviceId === "string" && typeof parsed.publicKeyPem === "string" && typeof parsed.privateKeyPem === "string") {
4294
4294
  const derivedId = fingerprintPublicKey(parsed.publicKeyPem);
@@ -4297,9 +4297,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
4297
4297
  ...parsed,
4298
4298
  deviceId: derivedId
4299
4299
  };
4300
- fs$1.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
4300
+ fsSync.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
4301
4301
  try {
4302
- fs$1.chmodSync(filePath, 384);
4302
+ fsSync.chmodSync(filePath, 384);
4303
4303
  } catch {}
4304
4304
  return {
4305
4305
  deviceId: derivedId,
@@ -4324,9 +4324,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
4324
4324
  privateKeyPem: identity.privateKeyPem,
4325
4325
  createdAtMs: Date.now()
4326
4326
  };
4327
- fs$1.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
4327
+ fsSync.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
4328
4328
  try {
4329
- fs$1.chmodSync(filePath, 384);
4329
+ fsSync.chmodSync(filePath, 384);
4330
4330
  } catch {}
4331
4331
  return identity;
4332
4332
  }
@@ -4476,8 +4476,8 @@ function resolveDeviceAuthPath(env = process.env) {
4476
4476
  }
4477
4477
  function readStore(filePath) {
4478
4478
  try {
4479
- if (!fs$1.existsSync(filePath)) return null;
4480
- const raw = fs$1.readFileSync(filePath, "utf8");
4479
+ if (!fsSync.existsSync(filePath)) return null;
4480
+ const raw = fsSync.readFileSync(filePath, "utf8");
4481
4481
  const parsed = JSON.parse(raw);
4482
4482
  if (parsed?.version !== 1 || typeof parsed.deviceId !== "string") return null;
4483
4483
  if (!parsed.tokens || typeof parsed.tokens !== "object") return null;
@@ -4487,10 +4487,10 @@ function readStore(filePath) {
4487
4487
  }
4488
4488
  }
4489
4489
  function writeStore(filePath, store) {
4490
- fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
4491
- fs$1.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
4490
+ fsSync.mkdirSync(path.dirname(filePath), { recursive: true });
4491
+ fsSync.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
4492
4492
  try {
4493
- fs$1.chmodSync(filePath, 384);
4493
+ fsSync.chmodSync(filePath, 384);
4494
4494
  } catch {}
4495
4495
  }
4496
4496
  function loadDeviceAuthToken(params) {
@@ -7274,7 +7274,7 @@ async function routeReply(params) {
7274
7274
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7275
7275
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7276
7276
  try {
7277
- const { deliverOutboundPayloads } = await import("./deliver-CKH_FhS0.js").then((n) => n.n);
7277
+ const { deliverOutboundPayloads } = await import("./deliver-CrJoiqws.js").then((n) => n.n);
7278
7278
  return {
7279
7279
  ok: true,
7280
7280
  messageId: (await deliverOutboundPayloads({
@@ -7670,7 +7670,7 @@ function normalizeSessionKey(value) {
7670
7670
  }
7671
7671
  function readSessionStore(storePath) {
7672
7672
  try {
7673
- const raw = fs$1.readFileSync(storePath, "utf-8");
7673
+ const raw = fsSync.readFileSync(storePath, "utf-8");
7674
7674
  const parsed = JSON5.parse(raw);
7675
7675
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
7676
7676
  } catch {}
@@ -12727,7 +12727,7 @@ async function createModelSelectionState(params) {
12727
12727
  }
12728
12728
  }
12729
12729
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
12730
- const { ensureAuthProfileStore } = await import("./model-auth-vtNH8C4P.js").then((n) => n.s);
12730
+ const { ensureAuthProfileStore } = await import("./model-auth-C-Vzzybi.js").then((n) => n.s);
12731
12731
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
12732
12732
  const providerKey = normalizeProviderId(provider);
12733
12733
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -15100,8 +15100,8 @@ const DEFAULT_SAFE_BINS = [
15100
15100
  ];
15101
15101
  function isExecutableFile(filePath) {
15102
15102
  try {
15103
- if (!fs$1.statSync(filePath).isFile()) return false;
15104
- if (process.platform !== "win32") fs$1.accessSync(filePath, fs$1.constants.X_OK);
15103
+ if (!fsSync.statSync(filePath).isFile()) return false;
15104
+ if (process.platform !== "win32") fsSync.accessSync(filePath, fsSync.constants.X_OK);
15105
15105
  return true;
15106
15106
  } catch {
15107
15107
  return false;
@@ -15139,7 +15139,7 @@ function normalizeMatchTarget(value) {
15139
15139
  }
15140
15140
  function tryRealpath(value) {
15141
15141
  try {
15142
- return fs$1.realpathSync(value);
15142
+ return fsSync.realpathSync(value);
15143
15143
  } catch {
15144
15144
  return null;
15145
15145
  }
@@ -16371,7 +16371,7 @@ function mergeLegacyAgent(current, legacy) {
16371
16371
  }
16372
16372
  function ensureDir$1(filePath) {
16373
16373
  const dir = path.dirname(filePath);
16374
- fs$1.mkdirSync(dir, { recursive: true });
16374
+ fsSync.mkdirSync(dir, { recursive: true });
16375
16375
  }
16376
16376
  function coerceAllowlistEntries(allowlist) {
16377
16377
  if (!Array.isArray(allowlist) || allowlist.length === 0) return Array.isArray(allowlist) ? allowlist : void 0;
@@ -16441,11 +16441,11 @@ function generateToken() {
16441
16441
  function loadExecApprovals() {
16442
16442
  const filePath = resolveExecApprovalsPath();
16443
16443
  try {
16444
- if (!fs$1.existsSync(filePath)) return normalizeExecApprovals({
16444
+ if (!fsSync.existsSync(filePath)) return normalizeExecApprovals({
16445
16445
  version: 1,
16446
16446
  agents: {}
16447
16447
  });
16448
- const raw = fs$1.readFileSync(filePath, "utf8");
16448
+ const raw = fsSync.readFileSync(filePath, "utf8");
16449
16449
  const parsed = JSON.parse(raw);
16450
16450
  if (parsed?.version !== 1) return normalizeExecApprovals({
16451
16451
  version: 1,
@@ -16462,9 +16462,9 @@ function loadExecApprovals() {
16462
16462
  function saveExecApprovals(file) {
16463
16463
  const filePath = resolveExecApprovalsPath();
16464
16464
  ensureDir$1(filePath);
16465
- fs$1.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
16465
+ fsSync.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
16466
16466
  try {
16467
- fs$1.chmodSync(filePath, 384);
16467
+ fsSync.chmodSync(filePath, 384);
16468
16468
  } catch {}
16469
16469
  }
16470
16470
  function ensureExecApprovals() {
@@ -16785,7 +16785,7 @@ function resolvePowerShellPath() {
16785
16785
  const systemRoot = process.env.SystemRoot || process.env.WINDIR;
16786
16786
  if (systemRoot) {
16787
16787
  const candidate = path.join(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
16788
- if (fs$1.existsSync(candidate)) return candidate;
16788
+ if (fsSync.existsSync(candidate)) return candidate;
16789
16789
  }
16790
16790
  return "powershell.exe";
16791
16791
  }
@@ -16823,7 +16823,7 @@ function resolveShellFromPath(name) {
16823
16823
  for (const entry of entries) {
16824
16824
  const candidate = path.join(entry, name);
16825
16825
  try {
16826
- fs$1.accessSync(candidate, fs$1.constants.X_OK);
16826
+ fsSync.accessSync(candidate, fsSync.constants.X_OK);
16827
16827
  return candidate;
16828
16828
  } catch {}
16829
16829
  }
@@ -19936,7 +19936,7 @@ function walkUpFrom(startDir, opts, resolveAtDir) {
19936
19936
  function hasGitMarker(repoRoot) {
19937
19937
  const gitPath = path.join(repoRoot, ".git");
19938
19938
  try {
19939
- const stat = fs$1.statSync(gitPath);
19939
+ const stat = fsSync.statSync(gitPath);
19940
19940
  return stat.isDirectory() || stat.isFile();
19941
19941
  } catch {
19942
19942
  return false;
@@ -19948,10 +19948,10 @@ function findGitRoot(startDir, opts = {}) {
19948
19948
  function resolveGitDirFromMarker(repoRoot) {
19949
19949
  const gitPath = path.join(repoRoot, ".git");
19950
19950
  try {
19951
- const stat = fs$1.statSync(gitPath);
19951
+ const stat = fsSync.statSync(gitPath);
19952
19952
  if (stat.isDirectory()) return gitPath;
19953
19953
  if (!stat.isFile()) return null;
19954
- const match = fs$1.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
19954
+ const match = fsSync.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
19955
19955
  if (!match?.[1]) return null;
19956
19956
  return path.resolve(repoRoot, match[1].trim());
19957
19957
  } catch {
@@ -20018,7 +20018,7 @@ const resolveCommitHash = (options = {}) => {
20018
20018
  cachedCommit = null;
20019
20019
  return cachedCommit;
20020
20020
  }
20021
- const head = fs$1.readFileSync(headPath, "utf-8").trim();
20021
+ const head = fsSync.readFileSync(headPath, "utf-8").trim();
20022
20022
  if (!head) {
20023
20023
  cachedCommit = null;
20024
20024
  return cachedCommit;
@@ -20026,7 +20026,7 @@ const resolveCommitHash = (options = {}) => {
20026
20026
  if (head.startsWith("ref:")) {
20027
20027
  const ref = head.replace(/^ref:\s*/i, "").trim();
20028
20028
  const refPath = path.resolve(path.dirname(headPath), ref);
20029
- cachedCommit = formatCommit(fs$1.readFileSync(refPath, "utf-8").trim());
20029
+ cachedCommit = formatCommit(fsSync.readFileSync(refPath, "utf-8").trim());
20030
20030
  return cachedCommit;
20031
20031
  }
20032
20032
  cachedCommit = formatCommit(head);
@@ -20230,9 +20230,9 @@ const readUsageFromSessionLog = (sessionId, sessionEntry, agentId, sessionKey, s
20230
20230
  } catch {
20231
20231
  return;
20232
20232
  }
20233
- if (!fs$1.existsSync(logPath)) return;
20233
+ if (!fsSync.existsSync(logPath)) return;
20234
20234
  try {
20235
- const lines = fs$1.readFileSync(logPath, "utf-8").split(/\n+/);
20235
+ const lines = fsSync.readFileSync(logPath, "utf-8").split(/\n+/);
20236
20236
  let input = 0;
20237
20237
  let output = 0;
20238
20238
  let promptTokens = 0;
@@ -21472,7 +21472,7 @@ function resolveRepoRoot(params) {
21472
21472
  const configured = params.config?.agents?.defaults?.repoRoot?.trim();
21473
21473
  if (configured) try {
21474
21474
  const resolved = path.resolve(configured);
21475
- if (fs$1.statSync(resolved).isDirectory()) return resolved;
21475
+ if (fsSync.statSync(resolved).isDirectory()) return resolved;
21476
21476
  } catch {}
21477
21477
  const candidates = [params.workspaceDir, params.cwd].map((value) => value?.trim()).filter(Boolean);
21478
21478
  const seen = /* @__PURE__ */ new Set();
@@ -22234,7 +22234,7 @@ async function buildContextReply(params) {
22234
22234
  //#region src/auto-reply/reply/commands-export-session.ts
22235
22235
  const EXPORT_HTML_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "export-html");
22236
22236
  function loadTemplate(fileName) {
22237
- return fs$1.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
22237
+ return fsSync.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
22238
22238
  }
22239
22239
  function generateHtml(sessionData) {
22240
22240
  const template = loadTemplate("template.html");
@@ -22308,7 +22308,7 @@ async function buildExportSessionReply(params) {
22308
22308
  } catch (err) {
22309
22309
  return { text: `❌ Failed to resolve session file: ${err instanceof Error ? err.message : String(err)}` };
22310
22310
  }
22311
- if (!fs$1.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
22311
+ if (!fsSync.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
22312
22312
  const sessionManager = SessionManager.open(sessionFile);
22313
22313
  const entries = sessionManager.getEntries();
22314
22314
  const header = sessionManager.getHeader();
@@ -22329,8 +22329,8 @@ async function buildExportSessionReply(params) {
22329
22329
  const defaultFileName = `openclaw-session-${entry.sessionId.slice(0, 8)}-${timestamp}.html`;
22330
22330
  const outputPath = args.outputPath ? path.resolve(args.outputPath.startsWith("~") ? args.outputPath.replace("~", process.env.HOME ?? "") : args.outputPath) : path.join(params.workspaceDir, defaultFileName);
22331
22331
  const outputDir = path.dirname(outputPath);
22332
- if (!fs$1.existsSync(outputDir)) fs$1.mkdirSync(outputDir, { recursive: true });
22333
- fs$1.writeFileSync(outputPath, html, "utf-8");
22332
+ if (!fsSync.existsSync(outputDir)) fsSync.mkdirSync(outputDir, { recursive: true });
22333
+ fsSync.writeFileSync(outputPath, html, "utf-8");
22334
22334
  const relativePath = path.relative(params.workspaceDir, outputPath);
22335
22335
  return { text: [
22336
22336
  "✅ Session exported!",
@@ -22444,8 +22444,8 @@ function resolveZaiApiKey() {
22444
22444
  }
22445
22445
  try {
22446
22446
  const authPath = path.join(os.homedir(), ".pi", "agent", "auth.json");
22447
- if (!fs$1.existsSync(authPath)) return;
22448
- const data = JSON.parse(fs$1.readFileSync(authPath, "utf-8"));
22447
+ if (!fsSync.existsSync(authPath)) return;
22448
+ const data = JSON.parse(fsSync.readFileSync(authPath, "utf-8"));
22449
22449
  return data["z-ai"]?.access || data.zai?.access;
22450
22450
  } catch {
22451
22451
  return;
@@ -24010,7 +24010,7 @@ function shouldPersistAnyBindingState() {
24010
24010
  }
24011
24011
  function shouldPersistBindingMutations() {
24012
24012
  if (shouldPersistAnyBindingState()) return true;
24013
- return fs$1.existsSync(resolveThreadBindingsPath());
24013
+ return fsSync.existsSync(resolveThreadBindingsPath());
24014
24014
  }
24015
24015
  function saveBindingsToDisk(params = {}) {
24016
24016
  if (!params.force && !shouldPersistAnyBindingState()) return;
@@ -24998,7 +24998,7 @@ const applyCostTotal = (totals, costTotal) => {
24998
24998
  totals.totalCost += costTotal;
24999
24999
  };
25000
25000
  async function* readJsonlRecords(filePath) {
25001
- const fileStream = fs$1.createReadStream(filePath, { encoding: "utf-8" });
25001
+ const fileStream = fsSync.createReadStream(filePath, { encoding: "utf-8" });
25002
25002
  const rl = readline.createInterface({
25003
25003
  input: fileStream,
25004
25004
  crlfDelay: Infinity
@@ -25070,10 +25070,10 @@ async function loadCostUsageSummary(params) {
25070
25070
  const dailyMap = /* @__PURE__ */ new Map();
25071
25071
  const totals = emptyTotals();
25072
25072
  const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
25073
- const entries = await fs$1.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
25073
+ const entries = await fsSync.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
25074
25074
  const files = (await Promise.all(entries.filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map(async (entry) => {
25075
25075
  const filePath = path.join(sessionsDir, entry.name);
25076
- const stats = await fs$1.promises.stat(filePath).catch(() => null);
25076
+ const stats = await fsSync.promises.stat(filePath).catch(() => null);
25077
25077
  if (!stats) return null;
25078
25078
  if (stats.mtimeMs < sinceTime) return null;
25079
25079
  return filePath;
@@ -25106,7 +25106,7 @@ async function loadCostUsageSummary(params) {
25106
25106
  }
25107
25107
  async function loadSessionCostSummary(params) {
25108
25108
  const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
25109
- if (!sessionFile || !fs$1.existsSync(sessionFile)) return null;
25109
+ if (!sessionFile || !fsSync.existsSync(sessionFile)) return null;
25110
25110
  const totals = emptyTotals();
25111
25111
  let firstActivity;
25112
25112
  let lastActivity;
@@ -29312,7 +29312,7 @@ function asBoolean(value) {
29312
29312
  }
29313
29313
  function resolveTempPathParts(opts) {
29314
29314
  const tmpDir = opts.tmpDir ?? resolvePreferredOpenClawTmpDir();
29315
- if (!opts.tmpDir) fs$1.mkdirSync(tmpDir, {
29315
+ if (!opts.tmpDir) fsSync.mkdirSync(tmpDir, {
29316
29316
  recursive: true,
29317
29317
  mode: 448
29318
29318
  });
@@ -29378,7 +29378,7 @@ async function writeUrlToFile(filePath, url) {
29378
29378
  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}`);
29379
29379
  const body = res.body;
29380
29380
  if (!body) throw new Error(`failed to download ${url}: empty response body`);
29381
- const fileHandle = await fs$2.open(filePath, "w");
29381
+ const fileHandle = await fs$1.open(filePath, "w");
29382
29382
  let bytes = 0;
29383
29383
  let thrown;
29384
29384
  try {
@@ -29397,7 +29397,7 @@ async function writeUrlToFile(filePath, url) {
29397
29397
  await fileHandle.close();
29398
29398
  }
29399
29399
  if (thrown) {
29400
- await fs$2.unlink(filePath).catch(() => {});
29400
+ await fs$1.unlink(filePath).catch(() => {});
29401
29401
  throw thrown;
29402
29402
  }
29403
29403
  return {
@@ -29407,7 +29407,7 @@ async function writeUrlToFile(filePath, url) {
29407
29407
  }
29408
29408
  async function writeBase64ToFile(filePath, base64) {
29409
29409
  const buf = Buffer.from(base64, "base64");
29410
- await fs$2.writeFile(filePath, buf);
29410
+ await fs$1.writeFile(filePath, buf);
29411
29411
  return {
29412
29412
  path: filePath,
29413
29413
  bytes: buf.length
@@ -34771,7 +34771,7 @@ function listExistingAgentIdsFromDisk() {
34771
34771
  const root = resolveStateDir();
34772
34772
  const agentsDir = path.join(root, "agents");
34773
34773
  try {
34774
- return fs$1.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
34774
+ return fsSync.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
34775
34775
  } catch {
34776
34776
  return [];
34777
34777
  }
@@ -39806,7 +39806,7 @@ async function runAgentTurnWithFallback(params) {
39806
39806
  if (corruptedSessionId) {
39807
39807
  const transcriptPath = resolveSessionTranscriptPath(corruptedSessionId);
39808
39808
  try {
39809
- fs$1.unlinkSync(transcriptPath);
39809
+ fsSync.unlinkSync(transcriptPath);
39810
39810
  } catch {}
39811
39811
  }
39812
39812
  delete params.activeSessionStore[sessionKey];
@@ -40511,9 +40511,9 @@ function auditPostCompactionReads(readFilePaths, workspaceDir, requiredReads = D
40511
40511
  * Returns messages from the last N lines (default 100).
40512
40512
  */
40513
40513
  function readSessionMessages(sessionFile, maxLines = 100) {
40514
- if (!fs$1.existsSync(sessionFile)) return [];
40514
+ if (!fsSync.existsSync(sessionFile)) return [];
40515
40515
  try {
40516
- const recentLines = fs$1.readFileSync(sessionFile, "utf-8").trim().split("\n").slice(-maxLines);
40516
+ const recentLines = fsSync.readFileSync(sessionFile, "utf-8").trim().split("\n").slice(-maxLines);
40517
40517
  const messages = [];
40518
40518
  for (const line of recentLines) try {
40519
40519
  const entry = JSON.parse(line);
@@ -40554,8 +40554,8 @@ const MAX_CONTEXT_CHARS = 3e3;
40554
40554
  async function readPostCompactionContext(workspaceDir) {
40555
40555
  const agentsPath = path.join(workspaceDir, "AGENTS.md");
40556
40556
  try {
40557
- if (!fs$1.existsSync(agentsPath)) return null;
40558
- const sections = extractSections(await fs$1.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
40557
+ if (!fsSync.existsSync(agentsPath)) return null;
40558
+ const sections = extractSections(await fsSync.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
40559
40559
  if (sections.length === 0) return null;
40560
40560
  const combined = sections.join("\n\n");
40561
40561
  return "[Post-compaction context refresh]\n\nSession was just compacted. The conversation summary above is a hint, NOT a substitute for your startup sequence. Execute your Session Startup sequence now — read the required files before responding to the user.\n\nCritical rules from AGENTS.md:\n\n" + (combined.length > MAX_CONTEXT_CHARS ? combined.slice(0, MAX_CONTEXT_CHARS) + "\n...[truncated]..." : combined);
@@ -40759,7 +40759,7 @@ async function runReplyAgent(params) {
40759
40759
  if (resolved) transcriptCandidates.add(resolved);
40760
40760
  transcriptCandidates.add(resolveSessionTranscriptPath(prevSessionId, agentId));
40761
40761
  for (const candidate of transcriptCandidates) try {
40762
- fs$1.unlinkSync(candidate);
40762
+ fsSync.unlinkSync(candidate);
40763
40763
  } catch {}
40764
40764
  }
40765
40765
  return true;
@@ -41647,7 +41647,7 @@ async function deliverSessionMaintenanceWarning(params) {
41647
41647
  return;
41648
41648
  }
41649
41649
  try {
41650
- const { deliverOutboundPayloads } = await import("./deliver-CKH_FhS0.js").then((n) => n.n);
41650
+ const { deliverOutboundPayloads } = await import("./deliver-CrJoiqws.js").then((n) => n.n);
41651
41651
  await deliverOutboundPayloads({
41652
41652
  cfg: params.cfg,
41653
41653
  channel,
@@ -41673,7 +41673,7 @@ function forkSessionFromParent(params) {
41673
41673
  agentId: params.agentId,
41674
41674
  sessionsDir: params.sessionsDir
41675
41675
  });
41676
- if (!parentSessionFile || !fs$1.existsSync(parentSessionFile)) return null;
41676
+ if (!parentSessionFile || !fsSync.existsSync(parentSessionFile)) return null;
41677
41677
  try {
41678
41678
  const manager = SessionManager.open(parentSessionFile);
41679
41679
  const leafId = manager.getLeafId();
@@ -41697,7 +41697,7 @@ function forkSessionFromParent(params) {
41697
41697
  cwd: manager.getCwd(),
41698
41698
  parentSession: parentSessionFile
41699
41699
  };
41700
- fs$1.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
41700
+ fsSync.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
41701
41701
  return {
41702
41702
  sessionId,
41703
41703
  sessionFile
@@ -45094,7 +45094,7 @@ async function describeStickerImage(params) {
45094
45094
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
45095
45095
  try {
45096
45096
  const buffer = await fs.readFile(imagePath);
45097
- const { describeImageWithModel } = await import("./image-CxPjVob-.js").then((n) => n.n);
45097
+ const { describeImageWithModel } = await import("./image-2bonNMVD.js").then((n) => n.n);
45098
45098
  return (await describeImageWithModel({
45099
45099
  buffer,
45100
45100
  fileName: "sticker.webp",
@@ -45517,7 +45517,7 @@ function createWhatsAppLoginTool() {
45517
45517
  force: Type.Optional(Type.Boolean())
45518
45518
  }),
45519
45519
  execute: async (_toolCallId, args) => {
45520
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-D0A3WDBN.js");
45520
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CxZVehrh.js");
45521
45521
  if ((args?.action ?? "start") === "wait") {
45522
45522
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
45523
45523
  return {
@@ -45799,7 +45799,7 @@ async function withMemoryManagerForAgent(params) {
45799
45799
  }
45800
45800
  async function checkReadableFile(pathname) {
45801
45801
  try {
45802
- await fs.access(pathname, fs$1.constants.R_OK);
45802
+ await fs.access(pathname, fsSync.constants.R_OK);
45803
45803
  return { exists: true };
45804
45804
  } catch (err) {
45805
45805
  const code = err.code;
@@ -45858,7 +45858,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
45858
45858
  }
45859
45859
  let dirReadable = null;
45860
45860
  try {
45861
- await fs.access(memoryDir, fs$1.constants.R_OK);
45861
+ await fs.access(memoryDir, fsSync.constants.R_OK);
45862
45862
  dirReadable = true;
45863
45863
  } catch (err) {
45864
45864
  const code = err.code;
@@ -47555,7 +47555,7 @@ async function preflightDiscordMessage(params) {
47555
47555
  let preflightTranscript;
47556
47556
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
47557
47557
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
47558
- const { transcribeFirstAudio } = await import("./audio-preflight-CLqoZYgI.js");
47558
+ const { transcribeFirstAudio } = await import("./audio-preflight-z9oahneY.js");
47559
47559
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
47560
47560
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
47561
47561
  ctx: {
@@ -48518,7 +48518,7 @@ function identityHasValues(identity) {
48518
48518
  }
48519
48519
  function loadIdentityFromFile(identityPath) {
48520
48520
  try {
48521
- const parsed = parseIdentityMarkdown(fs$1.readFileSync(identityPath, "utf-8"));
48521
+ const parsed = parseIdentityMarkdown(fsSync.readFileSync(identityPath, "utf-8"));
48522
48522
  if (!identityHasValues(parsed)) return null;
48523
48523
  return parsed;
48524
48524
  } catch {
@@ -48557,7 +48557,7 @@ function isDataAvatar(value) {
48557
48557
  }
48558
48558
  function resolveExistingPath(value) {
48559
48559
  try {
48560
- return fs$1.realpathSync(value);
48560
+ return fsSync.realpathSync(value);
48561
48561
  } catch {
48562
48562
  return path.resolve(value);
48563
48563
  }
@@ -48581,7 +48581,7 @@ function resolveLocalAvatarPath(params) {
48581
48581
  reason: "unsupported_extension"
48582
48582
  };
48583
48583
  try {
48584
- if (!fs$1.statSync(realPath).isFile()) return {
48584
+ if (!fsSync.statSync(realPath).isFile()) return {
48585
48585
  ok: false,
48586
48586
  reason: "missing"
48587
48587
  };
@@ -49444,7 +49444,7 @@ function sanitizeRecentModels(models, limit) {
49444
49444
  }
49445
49445
  async function readJsonFileWithFallback(filePath, fallback) {
49446
49446
  try {
49447
- const raw = await fs$1.promises.readFile(filePath, "utf-8");
49447
+ const raw = await fsSync.promises.readFile(filePath, "utf-8");
49448
49448
  return {
49449
49449
  value: JSON.parse(raw),
49450
49450
  exists: true
@@ -49462,14 +49462,14 @@ async function readJsonFileWithFallback(filePath, fallback) {
49462
49462
  }
49463
49463
  async function writeJsonFileAtomically(filePath, value) {
49464
49464
  const dir = path.dirname(filePath);
49465
- await fs$1.promises.mkdir(dir, {
49465
+ await fsSync.promises.mkdir(dir, {
49466
49466
  recursive: true,
49467
49467
  mode: 448
49468
49468
  });
49469
49469
  const tmp = path.join(dir, `${path.basename(filePath)}.${crypto.randomUUID()}.tmp`);
49470
- await fs$1.promises.writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, "utf-8");
49471
- await fs$1.promises.chmod(tmp, 384);
49472
- await fs$1.promises.rename(tmp, filePath);
49470
+ await fsSync.promises.writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, "utf-8");
49471
+ await fsSync.promises.chmod(tmp, 384);
49472
+ await fsSync.promises.rename(tmp, filePath);
49473
49473
  }
49474
49474
  async function readPreferencesStore(filePath) {
49475
49475
  const { value } = await readJsonFileWithFallback(filePath, {
@@ -51561,27 +51561,27 @@ function isVoiceChannelType(type) {
51561
51561
  function createDefaultDeps() {
51562
51562
  return {
51563
51563
  sendMessageWhatsApp: async (...args) => {
51564
- const { sendMessageWhatsApp } = await import("./web-Y49Dumye.js");
51564
+ const { sendMessageWhatsApp } = await import("./web-CfqjWSEf.js");
51565
51565
  return await sendMessageWhatsApp(...args);
51566
51566
  },
51567
51567
  sendMessageTelegram: async (...args) => {
51568
- const { sendMessageTelegram } = await import("./send-CWtaJF1G.js").then((n) => n.l);
51568
+ const { sendMessageTelegram } = await import("./send-CdIaqNP6.js").then((n) => n.l);
51569
51569
  return await sendMessageTelegram(...args);
51570
51570
  },
51571
51571
  sendMessageDiscord: async (...args) => {
51572
- const { sendMessageDiscord } = await import("./send-BEFzSOoD.js").then((n) => n.t);
51572
+ const { sendMessageDiscord } = await import("./send-DrfA4RxA.js").then((n) => n.t);
51573
51573
  return await sendMessageDiscord(...args);
51574
51574
  },
51575
51575
  sendMessageSlack: async (...args) => {
51576
- const { sendMessageSlack } = await import("./send-Byt_wJDK.js").then((n) => n.n);
51576
+ const { sendMessageSlack } = await import("./send-CMeyW_Bu.js").then((n) => n.n);
51577
51577
  return await sendMessageSlack(...args);
51578
51578
  },
51579
51579
  sendMessageSignal: async (...args) => {
51580
- const { sendMessageSignal } = await import("./send-DPVf5tQ4.js").then((n) => n.i);
51580
+ const { sendMessageSignal } = await import("./send-BCt1G0xY.js").then((n) => n.i);
51581
51581
  return await sendMessageSignal(...args);
51582
51582
  },
51583
51583
  sendMessageIMessage: async (...args) => {
51584
- const { sendMessageIMessage } = await import("./send-BeWYOs1x.js").then((n) => n.n);
51584
+ const { sendMessageIMessage } = await import("./send-CEP4RX_l.js").then((n) => n.n);
51585
51585
  return await sendMessageIMessage(...args);
51586
51586
  }
51587
51587
  };
@@ -56468,7 +56468,7 @@ async function monitorIMessageProvider(opts = {}) {
56468
56468
  function readFileIfExists(filePath) {
56469
56469
  if (!filePath) return;
56470
56470
  try {
56471
- return fs$1.readFileSync(filePath, "utf-8").trim();
56471
+ return fsSync.readFileSync(filePath, "utf-8").trim();
56472
56472
  } catch {
56473
56473
  return;
56474
56474
  }
@@ -57029,7 +57029,7 @@ async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 *
57029
57029
  prefix: "line-media",
57030
57030
  extension: getExtensionForContentType(contentType)
57031
57031
  });
57032
- await fs$1.promises.writeFile(filePath, buffer);
57032
+ await fsSync.promises.writeFile(filePath, buffer);
57033
57033
  logVerbose(`line: downloaded media ${messageId} to ${filePath} (${buffer.length} bytes)`);
57034
57034
  return {
57035
57035
  path: filePath,
@@ -62071,7 +62071,7 @@ function readSlackExternalArgMenuToken(raw) {
62071
62071
  }
62072
62072
  let commandsRegistry;
62073
62073
  async function getCommandsRegistry() {
62074
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BzlB3qtZ.js").then((n) => n.n);
62074
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-C0QzohKU.js").then((n) => n.n);
62075
62075
  return commandsRegistry;
62076
62076
  }
62077
62077
  function encodeSlackCommandArgValue(parts) {
@@ -62413,11 +62413,11 @@ async function registerSlackMonitorSlashCommands(params) {
62413
62413
  const channelName = channelInfo?.name;
62414
62414
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
62415
62415
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
62416
- import("./resolve-route-1ar2IrQt.js").then((n) => n.r),
62416
+ import("./resolve-route-CSE9DZsB.js").then((n) => n.r),
62417
62417
  import("./inbound-context-BlHX0H3E.js").then((n) => n.n),
62418
62418
  Promise.resolve().then(() => provider_dispatcher_exports)
62419
62419
  ]);
62420
- const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-DXUkoKcB.js").then((n) => n.t), import("./reply-prefix-DZrS3Kf7.js").then((n) => n.n)]);
62420
+ const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-DXUkoKcB.js").then((n) => n.t), import("./reply-prefix-B_1VtLm5.js").then((n) => n.n)]);
62421
62421
  const route = resolveAgentRoute({
62422
62422
  cfg,
62423
62423
  channel: "slack",
@@ -62474,9 +62474,9 @@ async function registerSlackMonitorSlashCommands(params) {
62474
62474
  });
62475
62475
  const deliverSlashPayloads = async (replies) => {
62476
62476
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
62477
- import("./replies-CSVWkVda.js").then((n) => n.r),
62478
- import("./chunk-fZrBDWYg.js").then((n) => n.s),
62479
- import("./markdown-tables-DpVJE0eA.js").then((n) => n.t)
62477
+ import("./replies-DuQ9MtQM.js").then((n) => n.r),
62478
+ import("./chunk-BkGjWi6P.js").then((n) => n.s),
62479
+ import("./markdown-tables-BOmw5zkp.js").then((n) => n.t)
62480
62480
  ]);
62481
62481
  await deliverSlackSlashReplies({
62482
62482
  replies,
@@ -62529,7 +62529,7 @@ async function registerSlackMonitorSlashCommands(params) {
62529
62529
  let nativeCommands = [];
62530
62530
  if (nativeEnabled) {
62531
62531
  reg = await getCommandsRegistry();
62532
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CqyVDpti.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
62532
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CwFNOYqC.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
62533
62533
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
62534
62534
  skillCommands,
62535
62535
  provider: "slack"
@@ -64747,7 +64747,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
64747
64747
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
64748
64748
  let preflightTranscript;
64749
64749
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
64750
- const { transcribeFirstAudio } = await import("./audio-preflight-CLqoZYgI.js");
64750
+ const { transcribeFirstAudio } = await import("./audio-preflight-z9oahneY.js");
64751
64751
  preflightTranscript = await transcribeFirstAudio({
64752
64752
  ctx: {
64753
64753
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -66892,23 +66892,23 @@ let webLoginQrPromise = null;
66892
66892
  let webChannelPromise = null;
66893
66893
  let whatsappActionsPromise = null;
66894
66894
  function loadWebOutbound() {
66895
- webOutboundPromise ??= import("./outbound-BWgFha97.js").then((n) => n.t);
66895
+ webOutboundPromise ??= import("./outbound-Bk0PGZ1q.js").then((n) => n.t);
66896
66896
  return webOutboundPromise;
66897
66897
  }
66898
66898
  function loadWebLogin() {
66899
- webLoginPromise ??= import("./login-DXtAIVXy.js").then((n) => n.n);
66899
+ webLoginPromise ??= import("./login-CLQskGt7.js").then((n) => n.n);
66900
66900
  return webLoginPromise;
66901
66901
  }
66902
66902
  function loadWebLoginQr() {
66903
- webLoginQrPromise ??= import("./login-qr-D0A3WDBN.js");
66903
+ webLoginQrPromise ??= import("./login-qr-CxZVehrh.js");
66904
66904
  return webLoginQrPromise;
66905
66905
  }
66906
66906
  function loadWebChannel() {
66907
- webChannelPromise ??= import("./web-Y49Dumye.js");
66907
+ webChannelPromise ??= import("./web-CfqjWSEf.js");
66908
66908
  return webChannelPromise;
66909
66909
  }
66910
66910
  function loadWhatsAppActions() {
66911
- whatsappActionsPromise ??= import("./whatsapp-actions-DFZYzkBp.js");
66911
+ whatsappActionsPromise ??= import("./whatsapp-actions-kX73ghOz.js");
66912
66912
  return whatsappActionsPromise;
66913
66913
  }
66914
66914
  function createPluginRuntime() {
@@ -67132,7 +67132,7 @@ const resolvePluginSdkAliasFile = (params) => {
67132
67132
  const srcCandidate = path.join(cursor, "src", "plugin-sdk", params.srcFile);
67133
67133
  const distCandidate = path.join(cursor, "dist", "plugin-sdk", params.distFile);
67134
67134
  const orderedCandidates = isTest ? [distCandidate, srcCandidate] : [distCandidate];
67135
- for (const candidate of orderedCandidates) if (fs$1.existsSync(candidate)) return candidate;
67135
+ for (const candidate of orderedCandidates) if (fsSync.existsSync(candidate)) return candidate;
67136
67136
  const parent = path.dirname(cursor);
67137
67137
  if (parent === cursor) break;
67138
67138
  cursor = parent;
@@ -68190,7 +68190,7 @@ async function recordLoopOutcome(args) {
68190
68190
  if (!args.ctx?.sessionKey) return;
68191
68191
  try {
68192
68192
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bxo4UHOL.js").then((n) => n.n);
68193
- const { recordToolCallOutcome } = await import("./tool-loop-detection-Bu3OGskw.js");
68193
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-BPAeTbUj.js");
68194
68194
  recordToolCallOutcome(getDiagnosticSessionState({
68195
68195
  sessionKey: args.ctx.sessionKey,
68196
68196
  sessionId: args.ctx?.agentId
@@ -68211,8 +68211,8 @@ async function runBeforeToolCallHook(args) {
68211
68211
  const params = args.params;
68212
68212
  if (args.ctx?.sessionKey) {
68213
68213
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bxo4UHOL.js").then((n) => n.n);
68214
- const { logToolLoopAction } = await import("./diagnostic-DriDPU6M.js").then((n) => n.n);
68215
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-Bu3OGskw.js");
68214
+ const { logToolLoopAction } = await import("./diagnostic-DTfVTKJM.js").then((n) => n.n);
68215
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-BPAeTbUj.js");
68216
68216
  const sessionState = getDiagnosticSessionState({
68217
68217
  sessionKey: args.ctx.sessionKey,
68218
68218
  sessionId: args.ctx?.agentId
@@ -70741,8 +70741,8 @@ async function readWorkspaceContextForSummary() {
70741
70741
  const workspaceDir = process.cwd();
70742
70742
  const agentsPath = path.join(workspaceDir, "AGENTS.md");
70743
70743
  try {
70744
- if (!fs$1.existsSync(agentsPath)) return "";
70745
- const sections = extractSections(await fs$1.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
70744
+ if (!fsSync.existsSync(agentsPath)) return "";
70745
+ const sections = extractSections(await fsSync.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
70746
70746
  if (sections.length === 0) return "";
70747
70747
  const combined = sections.join("\n\n");
70748
70748
  return `\n\n<workspace-critical-rules>\n${combined.length > MAX_SUMMARY_CONTEXT_CHARS ? combined.slice(0, MAX_SUMMARY_CONTEXT_CHARS) + "\n...[truncated]..." : combined}\n</workspace-critical-rules>`;
@@ -72079,7 +72079,7 @@ async function compactEmbeddedPiSessionDirect(params) {
72079
72079
  if (!apiKeyInfo.apiKey) {
72080
72080
  if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
72081
72081
  } else if (model.provider === "github-copilot") {
72082
- const { resolveCopilotApiToken } = await import("./github-copilot-token-Dgb9dAHW.js").then((n) => n.n);
72082
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-DAycnoAs.js").then((n) => n.n);
72083
72083
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
72084
72084
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
72085
72085
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
@@ -73299,11 +73299,11 @@ function appendRawStream(payload) {
73299
73299
  if (!rawStreamReady) {
73300
73300
  rawStreamReady = true;
73301
73301
  try {
73302
- fs$1.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
73302
+ fsSync.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
73303
73303
  } catch {}
73304
73304
  }
73305
73305
  try {
73306
- fs$1.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
73306
+ fsSync.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
73307
73307
  } catch {}
73308
73308
  }
73309
73309
 
@@ -76523,7 +76523,7 @@ async function runEmbeddedPiAgent(params) {
76523
76523
  return;
76524
76524
  }
76525
76525
  if (model.provider === "github-copilot") {
76526
- const { resolveCopilotApiToken } = await import("./github-copilot-token-Dgb9dAHW.js").then((n) => n.n);
76526
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-DAycnoAs.js").then((n) => n.n);
76527
76527
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
76528
76528
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
76529
76529
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);