@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.
- package/dist/{accounts-CQT5u65w.js → accounts-CJEDkyd7.js} +1 -1
- package/dist/{accounts-DFrH9IVU.js → accounts-CaJg9v7D.js} +1 -1
- package/dist/{accounts-C8m4ADkw.js → accounts-DQo5uGA3.js} +14 -14
- package/dist/{active-listener-BKTctYlH.js → active-listener-Bhmh-BBe.js} +1 -1
- package/dist/{agent-scope-DSUeV7-g.js → agent-scope-DiO1KimT.js} +3 -3
- package/dist/{audio-preflight-CODznzqu.js → audio-preflight-Da7vejCH.js} +4 -4
- package/dist/{audio-preflight-CLqoZYgI.js → audio-preflight-z9oahneY.js} +29 -29
- package/dist/{bindings-BKEEBdsb.js → bindings-CEJk9Gww.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +53 -53
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +53 -53
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-BgsTqLau.js → channel-activity-pOw1s-fe.js} +1 -1
- package/dist/{chrome-Bqbv_ZSj.js → chrome-B3ZZfPkj.js} +13 -13
- package/dist/{chrome-lRUqqgSD.js → chrome-CZuniMYN.js} +7 -7
- package/dist/{chunk-fZrBDWYg.js → chunk-BkGjWi6P.js} +1 -1
- package/dist/{command-format-BOHIfoCX.js → command-format-CM0AxuCk.js} +1 -1
- package/dist/{commands-registry-BzlB3qtZ.js → commands-registry-C0QzohKU.js} +4 -4
- package/dist/{config-Du_-inxH.js → config-7ClJ9IDt.js} +12 -12
- package/dist/{deliver-B2d2N8OJ.js → deliver-0ThKlzQo.js} +1 -1
- package/dist/{deliver-CKH_FhS0.js → deliver-CrJoiqws.js} +20 -20
- package/dist/{diagnostic-DriDPU6M.js → diagnostic-DTfVTKJM.js} +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{frontmatter-CdkBcBAo.js → frontmatter-Dab6NVCF.js} +2 -2
- package/dist/{gemini-auth-A2JaRMHH.js → gemini-auth-CnEqRhSo.js} +1 -1
- package/dist/{github-copilot-token-Dgb9dAHW.js → github-copilot-token-DAycnoAs.js} +7 -7
- package/dist/{image-CxPjVob-.js → image-2bonNMVD.js} +4 -4
- package/dist/{image--DDZnw-F.js → image-88q3KE-C.js} +1 -1
- package/dist/{image-ops-BGmpOcey.js → image-ops-D-bh1BTN.js} +1 -1
- package/dist/{ir-DJPm0a4k.js → ir-j1Xb0PNv.js} +4 -4
- package/dist/llm-slug-generator.js +53 -53
- package/dist/{local-roots-JqlMsAYY.js → local-roots-Dx32AY60.js} +5 -5
- package/dist/{login-DXtAIVXy.js → login-CLQskGt7.js} +7 -7
- package/dist/{login-qr-D0A3WDBN.js → login-qr-CxZVehrh.js} +12 -12
- package/dist/{manager-D7SRrHxT.js → manager-C6KdjXEH.js} +13 -13
- package/dist/{manifest-registry-Dhk4A5vb.js → manifest-registry-D31TP66o.js} +19 -19
- package/dist/{markdown-tables-DpVJE0eA.js → markdown-tables-BOmw5zkp.js} +1 -1
- package/dist/{message-channel-CHYSjmbr.js → message-channel-BckS8bQ9.js} +1 -1
- package/dist/{model-auth-vtNH8C4P.js → model-auth-C-Vzzybi.js} +9 -9
- package/dist/{outbound-BWgFha97.js → outbound-Bk0PGZ1q.js} +7 -7
- package/dist/{outbound-attachment-B8WHzsCX.js → outbound-attachment-CHLSsIj_.js} +2 -2
- package/dist/{paths-CyR9Pa1R.js → paths-CkkDESQ2.js} +5 -5
- package/dist/{paths-BEAbheM8.js → paths-Cv2Q0cX2.js} +1 -1
- package/dist/{pi-auth-json-BiwfFswL.js → pi-auth-json-DzcwV2uo.js} +8 -8
- package/dist/{pi-embedded-Dz24QZz9.js → pi-embedded-BFPKtgT3.js} +158 -158
- package/dist/{pi-embedded-C_B8_quB.js → pi-embedded-ZvazjIyF.js} +16 -16
- package/dist/{pi-embedded-helpers-Cd0S0WfR.js → pi-embedded-helpers-B0Kht0I2.js} +4 -4
- package/dist/{pi-embedded-helpers-CSE0v99A.js → pi-embedded-helpers-eDaF2UhI.js} +52 -52
- package/dist/{plugins-DIrNa311.js → plugins-Bf_qBfZ7.js} +9 -9
- package/dist/{pw-ai-D-_aGzdQ.js → pw-ai-B3EislzC.js} +11 -11
- package/dist/{pw-ai-C-kqYO4L.js → pw-ai-S3cpSYOy.js} +1 -1
- package/dist/{qmd-manager-DePh-PT0.js → qmd-manager-DVrv2Huu.js} +7 -7
- package/dist/{registry-DpeZG5fo.js → registry-wimgwqAA.js} +18 -18
- package/dist/{replies-CSVWkVda.js → replies-DuQ9MtQM.js} +3 -3
- package/dist/{reply-prefix-DZrS3Kf7.js → reply-prefix-B_1VtLm5.js} +1 -1
- package/dist/{resolve-route-1ar2IrQt.js → resolve-route-CSE9DZsB.js} +4 -4
- package/dist/{retry-Bdu4_ZcT.js → retry-DwLEH9x4.js} +1 -1
- package/dist/{runner-D1eXJZ8T.js → runner-BeO6HoPY.js} +9 -9
- package/dist/{runner-Dq-qfrq7.js → runner-a43IsYad.js} +1 -1
- package/dist/{send-DPVf5tQ4.js → send-BCt1G0xY.js} +6 -6
- package/dist/{send-BeWYOs1x.js → send-CEP4RX_l.js} +7 -7
- package/dist/{send-Byt_wJDK.js → send-CMeyW_Bu.js} +6 -6
- package/dist/{send-CWtaJF1G.js → send-CdIaqNP6.js} +18 -18
- package/dist/{send-BEFzSOoD.js → send-DrfA4RxA.js} +10 -10
- package/dist/{session-Bnp7PC7f.js → session-CQ9JJgSo.js} +8 -8
- package/dist/{skill-commands-CqyVDpti.js → skill-commands-CwFNOYqC.js} +9 -9
- package/dist/{skills-DSZuhFx9.js → skills-C8xf0p1B.js} +21 -21
- package/dist/{sqlite-C3XxSzBN.js → sqlite-B6SD9PTM.js} +4 -4
- package/dist/{store-BrNiRjgB.js → store-VFVAfYgh.js} +2 -2
- package/dist/{subsystem-BF9jT_Nw.js → subsystem-BEdh_1O5.js} +1 -1
- package/dist/{tables-C3clT_iA.js → tables-QNO5uMcm.js} +1 -1
- package/dist/{target-errors-ChHV8dPI.js → target-errors-DD2466Y6.js} +2 -2
- package/dist/{thinking-Dg8vKjw_.js → thinking-BZFf1juV.js} +5 -5
- package/dist/{tokens-B-c56SkM.js → tokens-GCiqN5mi.js} +1 -1
- package/dist/{tool-images-C1rdDr34.js → tool-images-D0sBSASn.js} +2 -2
- package/dist/{tool-loop-detection-Bu3OGskw.js → tool-loop-detection-BPAeTbUj.js} +3 -3
- package/dist/{web-DiYh3u92.js → web-CVSol55V.js} +6 -6
- package/dist/{web-Y49Dumye.js → web-CfqjWSEf.js} +57 -57
- package/dist/{whatsapp-actions-DFZYzkBp.js → whatsapp-actions-kX73ghOz.js} +23 -23
- package/dist/{workspace-DYx5Dxtw.js → workspace-CH9k4Qgz.js} +6 -6
- package/extensions/voice-call/src/providers/realtime-session.ts +1 -32
- 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-
|
|
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-
|
|
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-
|
|
6
|
-
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-
|
|
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-
|
|
8
|
-
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-
|
|
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-
|
|
10
|
-
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
23
|
-
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
29
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
37
|
-
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-
|
|
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-
|
|
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-
|
|
41
|
-
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
42
|
-
import { n as resolveMemorySearchConfig } from "./manager-
|
|
43
|
-
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-
|
|
44
|
-
import { n as retryAsync } from "./retry-
|
|
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-
|
|
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-
|
|
47
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
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-
|
|
50
|
-
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
62
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
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-
|
|
65
|
-
import { t as getActiveWebListener } from "./active-listener-
|
|
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$
|
|
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
|
|
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 (
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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 (
|
|
4291
|
-
const raw =
|
|
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
|
-
|
|
4300
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
|
|
4301
4301
|
try {
|
|
4302
|
-
|
|
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
|
-
|
|
4327
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
|
|
4328
4328
|
try {
|
|
4329
|
-
|
|
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 (!
|
|
4480
|
-
const raw =
|
|
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
|
-
|
|
4491
|
-
|
|
4490
|
+
fsSync.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
4491
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
|
|
4492
4492
|
try {
|
|
4493
|
-
|
|
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-
|
|
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 =
|
|
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-
|
|
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 (!
|
|
15104
|
-
if (process.platform !== "win32")
|
|
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
|
|
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
|
-
|
|
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 (!
|
|
16444
|
+
if (!fsSync.existsSync(filePath)) return normalizeExecApprovals({
|
|
16445
16445
|
version: 1,
|
|
16446
16446
|
agents: {}
|
|
16447
16447
|
});
|
|
16448
|
-
const raw =
|
|
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
|
-
|
|
16465
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
|
|
16466
16466
|
try {
|
|
16467
|
-
|
|
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 (
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
19951
|
+
const stat = fsSync.statSync(gitPath);
|
|
19952
19952
|
if (stat.isDirectory()) return gitPath;
|
|
19953
19953
|
if (!stat.isFile()) return null;
|
|
19954
|
-
const match =
|
|
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 =
|
|
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(
|
|
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 (!
|
|
20233
|
+
if (!fsSync.existsSync(logPath)) return;
|
|
20234
20234
|
try {
|
|
20235
|
-
const lines =
|
|
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 (
|
|
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
|
|
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 (!
|
|
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 (!
|
|
22333
|
-
|
|
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 (!
|
|
22448
|
-
const data = JSON.parse(
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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 || !
|
|
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)
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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
|
-
|
|
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 (!
|
|
40514
|
+
if (!fsSync.existsSync(sessionFile)) return [];
|
|
40515
40515
|
try {
|
|
40516
|
-
const recentLines =
|
|
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 (!
|
|
40558
|
-
const sections = extractSections(await
|
|
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
|
-
|
|
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-
|
|
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 || !
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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,
|
|
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,
|
|
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-
|
|
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(
|
|
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
|
|
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 (!
|
|
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
|
|
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
|
|
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
|
|
49471
|
-
await
|
|
49472
|
-
await
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
62478
|
-
import("./chunk-
|
|
62479
|
-
import("./markdown-tables-
|
|
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-
|
|
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-
|
|
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-
|
|
66895
|
+
webOutboundPromise ??= import("./outbound-Bk0PGZ1q.js").then((n) => n.t);
|
|
66896
66896
|
return webOutboundPromise;
|
|
66897
66897
|
}
|
|
66898
66898
|
function loadWebLogin() {
|
|
66899
|
-
webLoginPromise ??= import("./login-
|
|
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-
|
|
66903
|
+
webLoginQrPromise ??= import("./login-qr-CxZVehrh.js");
|
|
66904
66904
|
return webLoginQrPromise;
|
|
66905
66905
|
}
|
|
66906
66906
|
function loadWebChannel() {
|
|
66907
|
-
webChannelPromise ??= import("./web-
|
|
66907
|
+
webChannelPromise ??= import("./web-CfqjWSEf.js");
|
|
66908
66908
|
return webChannelPromise;
|
|
66909
66909
|
}
|
|
66910
66910
|
function loadWhatsAppActions() {
|
|
66911
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
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 (
|
|
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-
|
|
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-
|
|
68215
|
-
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-
|
|
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 (!
|
|
70745
|
-
const sections = extractSections(await
|
|
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-
|
|
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
|
-
|
|
73302
|
+
fsSync.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
|
|
73303
73303
|
} catch {}
|
|
73304
73304
|
}
|
|
73305
73305
|
try {
|
|
73306
|
-
|
|
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-
|
|
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);
|