@symerian/symi 3.0.1 → 3.0.2
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/{agents-D4F5bhNg.js → agents-DEYqmFEH.js} +4 -4
- package/dist/{agents.config-DS9Gbqqg.js → agents.config-ClI9Q05l.js} +1 -1
- package/dist/{agents.config-Czr0DbSr.js → agents.config-TArPtTFt.js} +1 -1
- package/dist/{audio-preflight-Cje-A0Fs.js → audio-preflight-BrKBM7JM.js} +4 -4
- package/dist/{auth-choice-BU6XwruP.js → auth-choice-bOht3his.js} +1 -1
- package/dist/{auth-choice-DU5o68ia.js → auth-choice-kJVkaHx6.js} +1 -1
- package/dist/{banner-qaKrETF8.js → banner--HSjGLhi.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-Bkfyg4nZ.js → channel-options-C68HZtw7.js} +1 -1
- package/dist/{channel-options-DW3nWxkv.js → channel-options-Cj2ZMHvy.js} +1 -1
- package/dist/{channel-web-DoDJqXyN.js → channel-web-BGZxsb8l.js} +1 -1
- package/dist/{channels-cli-B9tesYLD.js → channels-cli-C775zJjx.js} +6 -6
- package/dist/{channels-cli-V7ii1g6k.js → channels-cli-CLkq2ISd.js} +6 -6
- package/dist/{chrome-DaduLVA1.js → chrome-WfENE6tB.js} +7 -7
- package/dist/{cli-0GHBNwqe.js → cli-8ibydSgl.js} +3 -3
- package/dist/{cli-CAhOnKQ3.js → cli-B2FVKvPQ.js} +3 -3
- package/dist/{command-registry-Phoz_hat.js → command-registry-C-c2RS-n.js} +10 -10
- package/dist/{completion-cli-BAebbT-g.js → completion-cli-BLO_wsYD.js} +2 -2
- package/dist/{completion-cli-FR_B0tX1.js → completion-cli-IKI4BpqL.js} +1 -1
- package/dist/{config-cli-BXus9Npr.js → config-cli-Bh8aPiiL.js} +1 -1
- package/dist/{config-cli-DLSg0aaH.js → config-cli-d4RU82ov.js} +1 -1
- package/dist/{configure-BsrDBB87.js → configure-DKmHXbug.js} +3 -3
- package/dist/{configure-CPweqV68.js → configure-jxJfT5_B.js} +3 -3
- package/dist/daemon-cli.js +6 -6
- package/dist/{deliver-B6vfVmif.js → deliver-DShQE_sq.js} +1 -1
- package/dist/{doctor-completion-D5BKaeyT.js → doctor-completion-C7SuoBlz.js} +1 -1
- package/dist/{doctor-completion-DBs809iZ.js → doctor-completion-VAGhCLD5.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +7 -7
- package/dist/{gateway-cli-DDxIyaeu.js → gateway-cli-BELyZGAU.js} +12 -12
- package/dist/{gateway-cli-D7ppw9MR.js → gateway-cli-D_SJFv7K.js} +12 -12
- package/dist/{glass-ui-ws-DSCEyW9z.js → glass-ui-ws-0agRdhZD.js} +10 -10
- package/dist/{glass-ui-ws-BK6Ca98g.js → glass-ui-ws-qPJDDUD9.js} +10 -10
- package/dist/{health-ByAPhIlQ.js → health-BnGM6Yux.js} +69 -5
- package/dist/{health-VfVqsLcU.js → health-CCKCR4oM.js} +69 -5
- package/dist/{heartbeat-visibility-BdqXBLOd.js → heartbeat-visibility-C4Sg0QOd.js} +1 -1
- package/dist/{heartbeat-visibility-ol7hy6FB.js → heartbeat-visibility-CG080wT5.js} +1 -1
- package/dist/{hooks-cli-CA2ikPts.js → hooks-cli-B2WVvhgH.js} +4 -4
- package/dist/{hooks-cli-D8u-iqwZ.js → hooks-cli-CtuiPrKW.js} +4 -4
- package/dist/{image-C12-WOMI.js → image-DfzwGNoa.js} +1 -1
- package/dist/index.js +9 -9
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{manager-DfZDS6-4.js → manager-B6EhIj3H.js} +1 -1
- package/dist/{manager-DPxj_q1-.js → manager-DKUOUCmo.js} +1 -1
- package/dist/{manager-C9NXB77i.js → manager-Mm_GQxOU.js} +1 -1
- package/dist/{manager-DxihqoWd.js → manager-zwcQLMln.js} +1 -1
- package/dist/{memory-cli-Bjj5cTuq.js → memory-cli-BEZM7jn9.js} +3 -3
- package/dist/{memory-cli-D_O5bN6m.js → memory-cli-D4lLSeA1.js} +3 -3
- package/dist/{models-CD7SOI3V.js → models-ElQijvpq.js} +2 -2
- package/dist/{models-cli-Wjh_xd50.js → models-cli-14U59ejI.js} +5 -5
- package/dist/{models-cli-Dj5BnQIi.js → models-cli-Dtf5Zpgd.js} +4 -4
- package/dist/{onboard-Bgl-nPXW.js → onboard-CaYQVQYI.js} +2 -2
- package/dist/{onboard-CCfkebWZ.js → onboard-DN2xgEv1.js} +2 -2
- package/dist/{onboard-channels-DKFmls3m.js → onboard-channels-B1fWI5k5.js} +1 -1
- package/dist/{onboard-channels-CHJjmcTz.js → onboard-channels-C5sKGabO.js} +1 -1
- package/dist/{onboarding-CtCbkyNo.js → onboarding-BngFnwT6.js} +3 -3
- package/dist/{onboarding-GXSRt2Z4.js → onboarding-DNIz481s.js} +3 -3
- package/dist/{onboarding.finalize-CTqy_Unj.js → onboarding.finalize-B-x_trN9.js} +8 -8
- package/dist/{onboarding.finalize-Cyo7tKOt.js → onboarding.finalize-BA8-Tnhc.js} +9 -9
- package/dist/{pi-embedded-gBOzgRYn.js → pi-embedded-DUJ9Ytfn.js} +67 -24
- package/dist/{pi-embedded-helpers-pMH6u36v.js → pi-embedded-helpers-B1k1RWqM.js} +4 -4
- package/dist/{plugin-registry-BMavDLfZ.js → plugin-registry-C1xFJkog.js} +1 -1
- package/dist/{plugin-registry-CO6iA1TE.js → plugin-registry-CZS8ioCg.js} +1 -1
- package/dist/plugin-sdk/agents/system-prompt.d.ts +8 -0
- package/dist/plugin-sdk/{channel-web--Ru_sFHM.js → channel-web-B_XlrV_E.js} +1 -1
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/infra/active-heartbeat-runs.d.ts +34 -0
- package/dist/plugin-sdk/{manager-CDV3YWoX.js → manager-CJd0vK4S.js} +1 -1
- package/dist/plugin-sdk/{synthesis-Bojs0PJL.js → synthesis-Cre_3fLT.js} +2 -2
- package/dist/plugin-sdk/{unified-runner-D7m-WeUt.js → unified-runner-BNQKFoGX.js} +53 -10
- package/dist/plugin-sdk/{web-BoYy2HSO.js → web-CE-OsTKq.js} +3 -3
- package/dist/{plugins-cli-2A8lifj4.js → plugins-cli-BGccb2gT.js} +4 -4
- package/dist/{plugins-cli-DhQzD98q.js → plugins-cli-f_Ncophh.js} +4 -4
- package/dist/{program-DEaYsa-L.js → program-5Hto31sk.js} +9 -9
- package/dist/{program-context-rJ500lzQ.js → program-context-Baw4Oc1H.js} +18 -18
- package/dist/{prompt-select-styled-3tYztnc1.js → prompt-select-styled-Cm6mr7mH.js} +6 -6
- package/dist/{prompt-select-styled-BcJXLROq.js → prompt-select-styled-DHSySGF2.js} +6 -6
- package/dist/{provider-auth-helpers-COKxBW7N.js → provider-auth-helpers-FdlXX50k.js} +1 -1
- package/dist/{provider-auth-helpers-eQzmopYc.js → provider-auth-helpers-_aPYnJCR.js} +1 -1
- package/dist/{push-apns-CBPUnPja.js → push-apns-DnMyTqrU.js} +1 -1
- package/dist/{push-apns-kuIc4QSa.js → push-apns-Dusza10V.js} +1 -1
- package/dist/{pw-ai-D0CMQA23.js → pw-ai-Dd_QrTWR.js} +1 -1
- package/dist/{register.agent-CNpLOx-Y.js → register.agent-DibuuULq.js} +7 -7
- package/dist/{register.agent-Bj4dYxX1.js → register.agent-TI-lzUMT.js} +8 -8
- package/dist/{register.configure-BsXY0hbE.js → register.configure-BbBU2vzP.js} +9 -9
- package/dist/{register.configure-CM4isxt8.js → register.configure-CE6z4EEp.js} +9 -9
- package/dist/{register.maintenance-Dphm3utW.js → register.maintenance-D_cRwoi6.js} +11 -11
- package/dist/{register.maintenance-Bvt-fYOe.js → register.maintenance-Dsw96Q5M.js} +10 -10
- package/dist/{register.message-C4WU4qwG.js → register.message-7JdfRDPR.js} +4 -4
- package/dist/{register.message-CuJ6kd3Y.js → register.message-BqRfLqBs.js} +4 -4
- package/dist/{register.onboard-D_HBo-CG.js → register.onboard-7iv0kkQk.js} +7 -7
- package/dist/{register.onboard-4GJ7224e.js → register.onboard-Ca5HGO6E.js} +7 -7
- package/dist/{register.setup-Blb61XAC.js → register.setup-Cy3cIayc.js} +7 -7
- package/dist/{register.setup-BJ9kJazQ.js → register.setup-D7AKohSt.js} +7 -7
- package/dist/{register.status-health-sessions-CRAYzQLg.js → register.status-health-sessions-BW51mzBs.js} +6 -6
- package/dist/{register.status-health-sessions-B4hENuHX.js → register.status-health-sessions-DOkSVuJk.js} +6 -6
- package/dist/{register.subclis-CmDRn7Z2.js → register.subclis-p-z6ekaE.js} +9 -9
- package/dist/{run-main-CPcu8T5o.js → run-main-BhEacTM9.js} +17 -17
- package/dist/{runner-7XhJhCc0.js → runner-CaXOtv_D.js} +1 -1
- package/dist/{server-methods-DDbTMvnA.js → server-methods-Bcwa782q.js} +10 -9
- package/dist/{server-methods-CX3ldLPd.js → server-methods-C8ff27p5.js} +10 -9
- package/dist/{server-node-events-Bzoq_nfx.js → server-node-events-B85y_7eX.js} +4 -4
- package/dist/{server-node-events-Ccoeyw6p.js → server-node-events-h8Af4ZTV.js} +4 -4
- package/dist/{status-CyHHusPc.js → status-DFBG2hcx.js} +1 -1
- package/dist/{status-BEAngZOJ.js → status-DUGaRGN0.js} +3 -3
- package/dist/{status-OAdlubd0.js → status-DsaLdb09.js} +3 -3
- package/dist/{status-BdKI8eQ7.js → status-JL0CD-E1.js} +1 -1
- package/dist/{subagent-registry-UkXCmOLK.js → subagent-registry-DXCGIrYv.js} +53 -10
- package/dist/{synthesis-DnRaxWS6.js → synthesis-BUbH-4DA.js} +2 -2
- package/dist/{synthesis-BkOyAKJV.js → synthesis-BxwFFuqZ.js} +7 -7
- package/dist/{synthesis-DGBPTml_.js → synthesis-CLt-6Pzu.js} +3 -3
- package/dist/{synthesis-D_fSgB6z.js → synthesis-ekn511D_.js} +3 -3
- package/dist/{unified-runner-BNTy0IvK.js → unified-runner-CdBxbcO2.js} +53 -10
- package/dist/{unified-runner-BlsArDPO.js → unified-runner-DtJxJ016.js} +53 -10
- package/dist/{update-cli-DuALcXLb.js → update-cli-4OzLcQIF.js} +10 -10
- package/dist/{update-cli-Cwi3bnhh.js → update-cli-CQbvni-d.js} +11 -11
- package/dist/{update-runner-C3OhMuSJ.js → update-runner-CiYhkA5I.js} +1 -1
- package/dist/{update-runner-DkNNsx67.js → update-runner-DLCzD7sp.js} +1 -1
- package/dist/{web-arCxqOL_.js → web-COnC7jb4.js} +7 -7
- package/dist/{web-PndcPkY5.js → web-CSDi520u.js} +2 -2
- package/dist/{web-Cp_dpAof.js → web-DMFKXi8s.js} +5 -5
- package/dist/{web-DtgGgNSl.js → web-DiqLVzt7.js} +4 -4
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +6 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExis
|
|
|
14
14
|
import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
15
15
|
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-DMhDlUGJ.js";
|
|
16
16
|
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-ByAzOT7G.js";
|
|
17
|
-
import { a as normalizeOutboundPayloadsForJson, c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, i as normalizeOutboundPayloads, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, r as formatOutboundPayloadLog, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-
|
|
17
|
+
import { a as normalizeOutboundPayloadsForJson, c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, i as normalizeOutboundPayloads, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, r as formatOutboundPayloadLog, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-DShQE_sq.js";
|
|
18
18
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, o as logMessageQueued, p as isDiagnosticsEnabled, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-BVsSwe-J.js";
|
|
19
19
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
|
|
20
20
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
|
|
@@ -22,10 +22,10 @@ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normali
|
|
|
22
22
|
import { d as detectMime, f as extensionForMime, g as isGifMedia, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-BKUwjozo.js";
|
|
23
23
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
|
|
24
24
|
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-BQINJQIT.js";
|
|
25
|
-
import { $ as normalizeDeliveryContext, A as parseImageDimensionError, At as resolveExistingPathsWithinRoot, B as resolveAndPersistSessionFile, Bt as normalizeToolName, C as isFailoverAssistantError, Ct as acquireSessionWriteLock, D as isRawApiErrorPayload, Dt as resolveBrowserConfig, E as isRateLimitAssistantError, Et as registerBrowserRoutes, F as resolveSandboxRuntimeStatus, Ft as buildPluginToolGroups, G as updateLastRoute, Gt as buildBootstrapContextFiles, H as readSessionUpdatedAt, Ht as stripPluginOnlyAllowlist, I as extractDeliveryInfo, It as collectExplicitAllowlist, J as isCacheEnabled, Jt as resolveBootstrapTotalMaxChars, K as updateSessionStore, Kt as ensureSessionHeader, L as parseSessionThreadInfo, Lt as expandPolicyWithPluginGroups, M as sanitizeUserFacingText, Mt as ensureBrowserControlAuth, N as ensureSandboxWorkspaceForSession, Nt as resolveBrowserControlAuth, O as isTimeoutErrorMessage, Ot as resolveProfile, P as resolveSandboxContext, Pt as applyOwnerOnlyToolPolicy, Q as mergeDeliveryContext, R as appendAssistantMessageToSessionTranscript, Rt as expandToolGroups, S as isContextOverflowError, St as resolveGroupSessionKey, T as isLikelyContextOverflowError, Tt as createBrowserRouteContext, U as recordSessionMetaFromInbound, Ut as compileGlobPatterns, V as loadSessionStore, Vt as resolveToolProfilePolicy, Wt as matchesAnyGlobPattern, X as deliveryContextFromSession, Y as resolveCacheTtlMs$1, Yt as sanitizeGoogleTurnOrdering, Z as deliveryContextKey, _ as getApiErrorPayloadFingerprint, _t as resolveFreshSessionTotalTokens, a as normalizeTextForComparison, at as extractToolCallNames, b as isCloudCodeAssistFormatError, bt as resolveMainSessionKey, c as extractToolResultId, ct as hasInterSessionUserProvenance, d as isGoogleModelApi, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as BILLING_ERROR_USER_MESSAGE, ft as resolveChannelResetConfig, g as formatRawAssistantErrorForUi, gt as DEFAULT_RESET_TRIGGERS, h as formatBillingErrorMessage, ht as resolveThreadFlag, i as isMessagingToolDuplicateNormalized, it as countToolResults, j as parseImageSizeError, jt as getBridgeAuthForPort, k as isTransientHttpError, kt as DEFAULT_UPLOAD_DIR, l as downgradeOpenAIReasoningBlocks, lt as normalizeInputProvenance, m as formatAssistantErrorText, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as sanitizeSessionMessagesImages, ot as INPUT_PROVENANCE_KIND_VALUES, p as classifyFailoverReason, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as resolveBootstrapMaxChars, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as extractToolCallsFromAssistant, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as isAntigravityClaude, ut as resolveSessionKey, v as isAuthAssistantError, vt as canonicalizeMainSessionAlias, w as isFailoverErrorMessage, wt as resolveSessionLockMaxHoldFromTimeout, x as isCompactionFailureError, xt as deriveSessionMetaPatch, y as isBillingAssistantError, yt as resolveExplicitAgentSessionKey, zt as mergeAlsoAllowPolicy } from "./pi-embedded-helpers-
|
|
25
|
+
import { $ as normalizeDeliveryContext, A as parseImageDimensionError, At as resolveExistingPathsWithinRoot, B as resolveAndPersistSessionFile, Bt as normalizeToolName, C as isFailoverAssistantError, Ct as acquireSessionWriteLock, D as isRawApiErrorPayload, Dt as resolveBrowserConfig, E as isRateLimitAssistantError, Et as registerBrowserRoutes, F as resolveSandboxRuntimeStatus, Ft as buildPluginToolGroups, G as updateLastRoute, Gt as buildBootstrapContextFiles, H as readSessionUpdatedAt, Ht as stripPluginOnlyAllowlist, I as extractDeliveryInfo, It as collectExplicitAllowlist, J as isCacheEnabled, Jt as resolveBootstrapTotalMaxChars, K as updateSessionStore, Kt as ensureSessionHeader, L as parseSessionThreadInfo, Lt as expandPolicyWithPluginGroups, M as sanitizeUserFacingText, Mt as ensureBrowserControlAuth, N as ensureSandboxWorkspaceForSession, Nt as resolveBrowserControlAuth, O as isTimeoutErrorMessage, Ot as resolveProfile, P as resolveSandboxContext, Pt as applyOwnerOnlyToolPolicy, Q as mergeDeliveryContext, R as appendAssistantMessageToSessionTranscript, Rt as expandToolGroups, S as isContextOverflowError, St as resolveGroupSessionKey, T as isLikelyContextOverflowError, Tt as createBrowserRouteContext, U as recordSessionMetaFromInbound, Ut as compileGlobPatterns, V as loadSessionStore, Vt as resolveToolProfilePolicy, Wt as matchesAnyGlobPattern, X as deliveryContextFromSession, Y as resolveCacheTtlMs$1, Yt as sanitizeGoogleTurnOrdering, Z as deliveryContextKey, _ as getApiErrorPayloadFingerprint, _t as resolveFreshSessionTotalTokens, a as normalizeTextForComparison, at as extractToolCallNames, b as isCloudCodeAssistFormatError, bt as resolveMainSessionKey, c as extractToolResultId, ct as hasInterSessionUserProvenance, d as isGoogleModelApi, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as BILLING_ERROR_USER_MESSAGE, ft as resolveChannelResetConfig, g as formatRawAssistantErrorForUi, gt as DEFAULT_RESET_TRIGGERS, h as formatBillingErrorMessage, ht as resolveThreadFlag, i as isMessagingToolDuplicateNormalized, it as countToolResults, j as parseImageSizeError, jt as getBridgeAuthForPort, k as isTransientHttpError, kt as DEFAULT_UPLOAD_DIR, l as downgradeOpenAIReasoningBlocks, lt as normalizeInputProvenance, m as formatAssistantErrorText, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as sanitizeSessionMessagesImages, ot as INPUT_PROVENANCE_KIND_VALUES, p as classifyFailoverReason, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as resolveBootstrapMaxChars, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as extractToolCallsFromAssistant, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as isAntigravityClaude, ut as resolveSessionKey, v as isAuthAssistantError, vt as canonicalizeMainSessionAlias, w as isFailoverErrorMessage, wt as resolveSessionLockMaxHoldFromTimeout, x as isCompactionFailureError, xt as deriveSessionMetaPatch, y as isBillingAssistantError, yt as resolveExplicitAgentSessionKey, zt as mergeAlsoAllowPolicy } from "./pi-embedded-helpers-B1k1RWqM.js";
|
|
26
26
|
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-BOuq5KZE.js";
|
|
27
27
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-DWdYdchb.js";
|
|
28
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
28
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-WfENE6tB.js";
|
|
29
29
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-amp3F-om.js";
|
|
30
30
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
|
|
31
31
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
|
|
@@ -36,8 +36,8 @@ import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
|
|
|
36
36
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
|
|
37
37
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
|
|
38
38
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-CdTyeTEN.js";
|
|
39
|
-
import { S as ensureSymiModelsJson, _ 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-
|
|
40
|
-
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-
|
|
39
|
+
import { S as ensureSymiModelsJson, _ 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-DfzwGNoa.js";
|
|
40
|
+
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-Mm_GQxOU.js";
|
|
41
41
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
|
|
42
42
|
import { n as retryAsync } from "./retry-QGp0jvVi.js";
|
|
43
43
|
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-43lkDH_r.js";
|
|
@@ -49,7 +49,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-CDdlA9_f.js";
|
|
|
49
49
|
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-iF38r_Xp.js";
|
|
50
50
|
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-c5Lly1_3.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CgGv6nTy.js";
|
|
52
|
-
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-
|
|
52
|
+
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-CaXOtv_D.js";
|
|
53
53
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-WLZaC77l.js";
|
|
54
54
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BaoETsQI.js";
|
|
55
55
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-C-6tM-GK.js";
|
|
@@ -80,7 +80,7 @@ import { EdgeTTS } from "node-edge-tts";
|
|
|
80
80
|
import AjvPkg from "ajv";
|
|
81
81
|
import { createServer } from "node:http";
|
|
82
82
|
import { ProxyAgent, fetch as fetch$1 } from "undici";
|
|
83
|
-
import WebSocket
|
|
83
|
+
import WebSocket, { WebSocket as WebSocket$1 } from "ws";
|
|
84
84
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
85
85
|
import { createJiti } from "jiti";
|
|
86
86
|
import { Type } from "@sinclair/typebox";
|
|
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
|
|
|
3473
3473
|
const wrapper = new FallbackMemoryManager({
|
|
3474
3474
|
primary,
|
|
3475
3475
|
fallbackFactory: async () => {
|
|
3476
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3476
|
+
const { MemoryIndexManager } = await import("./manager-Mm_GQxOU.js").then((n) => n.t);
|
|
3477
3477
|
return await MemoryIndexManager.get(params);
|
|
3478
3478
|
}
|
|
3479
3479
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
|
|
|
3486
3486
|
}
|
|
3487
3487
|
}
|
|
3488
3488
|
try {
|
|
3489
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3489
|
+
const { MemoryIndexManager } = await import("./manager-Mm_GQxOU.js").then((n) => n.t);
|
|
3490
3490
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3491
3491
|
} catch (err) {
|
|
3492
3492
|
return {
|
|
@@ -5879,7 +5879,7 @@ var GatewayClient = class {
|
|
|
5879
5879
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
5880
5880
|
});
|
|
5881
5881
|
}
|
|
5882
|
-
this.ws = new WebSocket(url, wsOptions);
|
|
5882
|
+
this.ws = new WebSocket$1(url, wsOptions);
|
|
5883
5883
|
this.ws.on("open", () => {
|
|
5884
5884
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
5885
5885
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -6098,7 +6098,7 @@ var GatewayClient = class {
|
|
|
6098
6098
|
return null;
|
|
6099
6099
|
}
|
|
6100
6100
|
async request(method, params, opts) {
|
|
6101
|
-
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
6101
|
+
if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
|
|
6102
6102
|
const id = randomUUID();
|
|
6103
6103
|
const frame = {
|
|
6104
6104
|
type: "req",
|
|
@@ -7339,7 +7339,7 @@ async function routeReply(params) {
|
|
|
7339
7339
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7340
7340
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7341
7341
|
try {
|
|
7342
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7342
|
+
const { deliverOutboundPayloads } = await import("./deliver-DShQE_sq.js").then((n) => n.n);
|
|
7343
7343
|
return {
|
|
7344
7344
|
ok: true,
|
|
7345
7345
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -22085,6 +22085,40 @@ function sanitizeForPromptLiteral(value) {
|
|
|
22085
22085
|
|
|
22086
22086
|
//#endregion
|
|
22087
22087
|
//#region src/agents/system-prompt.ts
|
|
22088
|
+
/**
|
|
22089
|
+
* Read up to `limit` markdown filenames from `<workspaceDir>/memory/`,
|
|
22090
|
+
* sorted by mtime descending. Returns relative names (e.g. "2026-04-30.md")
|
|
22091
|
+
* for inlining into the system prompt — gives the agent the actual file
|
|
22092
|
+
* surface so it doesn't speculate names like "memory/2026-04-30.md" from
|
|
22093
|
+
* training-data priors. Resilient: missing dir → [], unreadable → [].
|
|
22094
|
+
*/
|
|
22095
|
+
function listWorkspaceMemoryFiles(workspaceDir, limit = 10) {
|
|
22096
|
+
if (!workspaceDir) return [];
|
|
22097
|
+
const memoryDir = path.join(workspaceDir, "memory");
|
|
22098
|
+
let entries;
|
|
22099
|
+
try {
|
|
22100
|
+
entries = fs.readdirSync(memoryDir, { withFileTypes: true });
|
|
22101
|
+
} catch {
|
|
22102
|
+
return [];
|
|
22103
|
+
}
|
|
22104
|
+
const files = [];
|
|
22105
|
+
for (const entry of entries) {
|
|
22106
|
+
if (!entry.isFile()) continue;
|
|
22107
|
+
if (!entry.name.toLowerCase().endsWith(".md")) continue;
|
|
22108
|
+
let mtimeMs = 0;
|
|
22109
|
+
try {
|
|
22110
|
+
mtimeMs = fs.statSync(path.join(memoryDir, entry.name)).mtimeMs;
|
|
22111
|
+
} catch {
|
|
22112
|
+
mtimeMs = 0;
|
|
22113
|
+
}
|
|
22114
|
+
files.push({
|
|
22115
|
+
name: entry.name,
|
|
22116
|
+
mtimeMs
|
|
22117
|
+
});
|
|
22118
|
+
}
|
|
22119
|
+
files.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
22120
|
+
return files.slice(0, limit).map((f) => f.name);
|
|
22121
|
+
}
|
|
22088
22122
|
function buildSkillsSection(params) {
|
|
22089
22123
|
if (params.isMinimal) return [];
|
|
22090
22124
|
if (params.dropCatalog) return [];
|
|
@@ -22108,13 +22142,21 @@ function buildMemorySection(params) {
|
|
|
22108
22142
|
"## Memory Recall",
|
|
22109
22143
|
"Before answering anything about prior work, decisions, dates, people, preferences, or todos: run memory_search on MEMORY.md + memory/*.md; then use memory_get to pull only the needed lines. If low confidence after search, say you checked.",
|
|
22110
22144
|
"",
|
|
22145
|
+
"**Never speculate memory file paths.** Use memory_search to find content; do not construct paths like `memory/<date>.md` from training-data priors and call read on them — that produces ENOENT spam and trips the consecutive-tool-error breaker.",
|
|
22146
|
+
"",
|
|
22111
22147
|
"Memory is split into two layers you will see as files:",
|
|
22112
22148
|
"- `MEMORY.md` — user-authored short-term memory. Hand-edited by the user; treat as ground truth they wrote themselves. Never rewrite it yourself.",
|
|
22113
|
-
"- `memory/symi-core.md` + `memory/symi-beliefs.md` — long-term memory automatically consolidated from repeated observations (your evolving self). Do NOT hand-edit these files: they are regenerated each consolidation cycle. When the files disagree with a fresh user statement, trust the fresh statement and write a new observation
|
|
22114
|
-
"- `memory
|
|
22115
|
-
"",
|
|
22116
|
-
"When the user explicitly asks to *remember* or *always remember* something, after writing the observation also call `memory_pin` with a distinctive query so the fact survives pruning. Call `memory_unpin` when the user says to forget it."
|
|
22149
|
+
"- `memory/symi-core.md` + `memory/symi-beliefs.md` — long-term memory automatically consolidated from repeated observations (your evolving self). Do NOT hand-edit these files: they are regenerated each consolidation cycle. When the files disagree with a fresh user statement, trust the fresh statement and write a new observation. The cycle will reconcile them.",
|
|
22150
|
+
"- New observations go in dated daily files (e.g. `memory/<today>.md`); use `memory_search` to discover what already exists rather than guessing filenames."
|
|
22117
22151
|
];
|
|
22152
|
+
const memoryFiles = (params.workspaceMemoryFiles ?? []).filter(Boolean);
|
|
22153
|
+
if (memoryFiles.length > 0) {
|
|
22154
|
+
lines.push("");
|
|
22155
|
+
lines.push("Existing memory files in this workspace (most-recently-modified first):");
|
|
22156
|
+
for (const name of memoryFiles) lines.push(`- \`memory/${name}\``);
|
|
22157
|
+
}
|
|
22158
|
+
lines.push("");
|
|
22159
|
+
lines.push("When the user explicitly asks to *remember* or *always remember* something, after writing the observation also call `memory_pin` with a distinctive query so the fact survives pruning. Call `memory_unpin` when the user says to forget it.");
|
|
22118
22160
|
if (params.citationsMode === "off") lines.push("Citations are disabled: do not mention file paths or line numbers in replies unless the user explicitly asks.");
|
|
22119
22161
|
else lines.push("Citations: include Source: <path#line> when it helps the user verify memory snippets.");
|
|
22120
22162
|
lines.push("");
|
|
@@ -22403,7 +22445,8 @@ function buildAgentSystemPrompt(params) {
|
|
|
22403
22445
|
const memorySection = buildMemorySection({
|
|
22404
22446
|
isMinimal,
|
|
22405
22447
|
availableTools,
|
|
22406
|
-
citationsMode: params.memoryCitationsMode
|
|
22448
|
+
citationsMode: params.memoryCitationsMode,
|
|
22449
|
+
workspaceMemoryFiles: listWorkspaceMemoryFiles(params.workspaceDir)
|
|
22407
22450
|
});
|
|
22408
22451
|
const docsSection = buildDocsSection({
|
|
22409
22452
|
docsPath: params.docsPath,
|
|
@@ -39428,7 +39471,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
39428
39471
|
return;
|
|
39429
39472
|
}
|
|
39430
39473
|
try {
|
|
39431
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
39474
|
+
const { deliverOutboundPayloads } = await import("./deliver-DShQE_sq.js").then((n) => n.n);
|
|
39432
39475
|
await deliverOutboundPayloads({
|
|
39433
39476
|
cfg: params.cfg,
|
|
39434
39477
|
channel,
|
|
@@ -53612,7 +53655,7 @@ async function describeStickerImage(params) {
|
|
|
53612
53655
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
53613
53656
|
try {
|
|
53614
53657
|
const buffer = await fs$1.readFile(imagePath);
|
|
53615
|
-
const { describeImageWithModel } = await import("./image-
|
|
53658
|
+
const { describeImageWithModel } = await import("./image-DfzwGNoa.js").then((n) => n.n);
|
|
53616
53659
|
return (await describeImageWithModel({
|
|
53617
53660
|
buffer,
|
|
53618
53661
|
fileName: "sticker.webp",
|
|
@@ -56361,7 +56404,7 @@ async function preflightDiscordMessage(params) {
|
|
|
56361
56404
|
let preflightTranscript;
|
|
56362
56405
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
56363
56406
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
56364
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
56407
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BrKBM7JM.js");
|
|
56365
56408
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
56366
56409
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
56367
56410
|
ctx: {
|
|
@@ -60884,7 +60927,7 @@ function setCliSessionId(entry, provider, sessionId) {
|
|
|
60884
60927
|
function createDefaultDeps() {
|
|
60885
60928
|
return {
|
|
60886
60929
|
sendMessageWhatsApp: async (...args) => {
|
|
60887
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
60930
|
+
const { sendMessageWhatsApp } = await import("./web-COnC7jb4.js");
|
|
60888
60931
|
return await sendMessageWhatsApp(...args);
|
|
60889
60932
|
},
|
|
60890
60933
|
sendMessageTelegram: async (...args) => {
|
|
@@ -63789,7 +63832,7 @@ function createDiscordGatewayPlugin(params) {
|
|
|
63789
63832
|
super(options);
|
|
63790
63833
|
}
|
|
63791
63834
|
createWebSocket(url) {
|
|
63792
|
-
return new WebSocket
|
|
63835
|
+
return new WebSocket(url, { agent });
|
|
63793
63836
|
}
|
|
63794
63837
|
}
|
|
63795
63838
|
return new ProxyGatewayPlugin();
|
|
@@ -74007,7 +74050,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
74007
74050
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
74008
74051
|
let preflightTranscript;
|
|
74009
74052
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
74010
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
74053
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BrKBM7JM.js");
|
|
74011
74054
|
preflightTranscript = await transcribeFirstAudio({
|
|
74012
74055
|
ctx: {
|
|
74013
74056
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -76164,7 +76207,7 @@ function loadWebLoginQr() {
|
|
|
76164
76207
|
return webLoginQrPromise;
|
|
76165
76208
|
}
|
|
76166
76209
|
function loadWebChannel() {
|
|
76167
|
-
webChannelPromise ??= import("./web-
|
|
76210
|
+
webChannelPromise ??= import("./web-COnC7jb4.js");
|
|
76168
76211
|
return webChannelPromise;
|
|
76169
76212
|
}
|
|
76170
76213
|
function loadWhatsAppActions() {
|
|
@@ -10,7 +10,7 @@ import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
|
10
10
|
import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-BKUwjozo.js";
|
|
11
11
|
import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-BQINJQIT.js";
|
|
12
12
|
import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BOuq5KZE.js";
|
|
13
|
-
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
13
|
+
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-WfENE6tB.js";
|
|
14
14
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-amp3F-om.js";
|
|
15
15
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-CPfngF0S.js";
|
|
16
16
|
import { t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
|
|
@@ -938,7 +938,7 @@ function isModuleNotFoundError(err) {
|
|
|
938
938
|
}
|
|
939
939
|
async function loadPwAiModule(mode) {
|
|
940
940
|
try {
|
|
941
|
-
return await import("./pw-ai-
|
|
941
|
+
return await import("./pw-ai-Dd_QrTWR.js");
|
|
942
942
|
} catch (err) {
|
|
943
943
|
if (mode === "soft") return null;
|
|
944
944
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3478,11 +3478,11 @@ function createProfileContext(opts, profile) {
|
|
|
3478
3478
|
const userDataDir = resolveSymiUserDataDir(profile.name);
|
|
3479
3479
|
const profileState = getProfileState();
|
|
3480
3480
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3481
|
-
await (await import("./pw-ai-
|
|
3481
|
+
await (await import("./pw-ai-Dd_QrTWR.js")).closePlaywrightBrowserConnection();
|
|
3482
3482
|
} catch {}
|
|
3483
3483
|
if (profileState.running) await stopRunningBrowser();
|
|
3484
3484
|
try {
|
|
3485
|
-
await (await import("./pw-ai-
|
|
3485
|
+
await (await import("./pw-ai-Dd_QrTWR.js")).closePlaywrightBrowserConnection();
|
|
3486
3486
|
} catch {}
|
|
3487
3487
|
if (!fs.existsSync(userDataDir)) return {
|
|
3488
3488
|
moved: false,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { s as loadSymiPlugins } from "./unified-runner-
|
|
2
|
+
import { s as loadSymiPlugins } from "./unified-runner-CdBxbcO2.js";
|
|
3
3
|
import { d as getActivePluginRegistry } from "./registry-ClO_zVv-.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-zqierDLj.js";
|
|
5
5
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-BajBuriF.js";
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
|
|
3
3
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-xM36I1Em.js";
|
|
4
4
|
import { i as loadConfig } from "./config-BaxT9cN4.js";
|
|
5
|
-
import { m as loadSymiPlugins } from "./subagent-registry-
|
|
5
|
+
import { m as loadSymiPlugins } from "./subagent-registry-DXCGIrYv.js";
|
|
6
6
|
|
|
7
7
|
//#region src/cli/plugin-registry.ts
|
|
8
8
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -2,6 +2,14 @@ import type { ReasoningLevel, ThinkLevel } from "../auto-reply/thinking.js";
|
|
|
2
2
|
import type { MemoryCitationsMode } from "../config/types.memory.js";
|
|
3
3
|
import type { ResolvedTimeFormat } from "./date-time.js";
|
|
4
4
|
import type { EmbeddedContextFile } from "./pi-embedded-helpers.js";
|
|
5
|
+
/**
|
|
6
|
+
* Read up to `limit` markdown filenames from `<workspaceDir>/memory/`,
|
|
7
|
+
* sorted by mtime descending. Returns relative names (e.g. "2026-04-30.md")
|
|
8
|
+
* for inlining into the system prompt — gives the agent the actual file
|
|
9
|
+
* surface so it doesn't speculate names like "memory/2026-04-30.md" from
|
|
10
|
+
* training-data priors. Resilient: missing dir → [], unreadable → [].
|
|
11
|
+
*/
|
|
12
|
+
export declare function listWorkspaceMemoryFiles(workspaceDir: string, limit?: number): string[];
|
|
5
13
|
/**
|
|
6
14
|
* Controls which hardcoded sections are included in the system prompt.
|
|
7
15
|
* - "full": All sections (default, for main agent)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
|
|
2
2
|
import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-D9zGZU5t.js";
|
|
3
|
-
import { G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as buildPairingReply, d as formatDurationPrecise, f as enqueueSystemEvent, g as resolveInboundDebounceMs, h as createInboundDebouncer, ht as createDedupeCache, l as dispatchReplyWithBufferedBlockDispatcher, m as parseActivationCommand, nt as buildMentionRegexes, o as computeBackoff, p as normalizeGroupActivation, rt as normalizeMentionText, s as sleepWithAbort, tt as recordPendingHistoryEntryIfEnabled, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./unified-runner-
|
|
3
|
+
import { G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as buildPairingReply, d as formatDurationPrecise, f as enqueueSystemEvent, g as resolveInboundDebounceMs, h as createInboundDebouncer, ht as createDedupeCache, l as dispatchReplyWithBufferedBlockDispatcher, m as parseActivationCommand, nt as buildMentionRegexes, o as computeBackoff, p as normalizeGroupActivation, rt as normalizeMentionText, s as sleepWithAbort, tt as recordPendingHistoryEntryIfEnabled, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./unified-runner-BNQKFoGX.js";
|
|
4
4
|
import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry--_pGht6S.js";
|
|
5
5
|
import { n as loadConfig } from "./config-BBBu18xQ.js";
|
|
6
6
|
import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
|
|
2
2
|
import { _ as createAccountListHelpers, i as resolveWhatsAppAuthDir, n as resolveDefaultWhatsAppAccountId, r as resolveWhatsAppAccount, t as listWhatsAppAccountIds } from "./accounts-D9zGZU5t.js";
|
|
3
|
-
import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as processLineMessage, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, E as attachFooterText, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as hasMarkdownToConvert, St as listThreadBindingsBySessionKey, T as createReceiptCard, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as resolveLineAccount, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as resolveDefaultLineAccountId, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, n as listLineAccountIds, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, r as normalizeAccountId$1, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as stripMarkdown, wt as formatAllowlistMatchMeta, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./unified-runner-
|
|
3
|
+
import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as processLineMessage, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, E as attachFooterText, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as hasMarkdownToConvert, St as listThreadBindingsBySessionKey, T as createReceiptCard, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as resolveLineAccount, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as resolveDefaultLineAccountId, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, n as listLineAccountIds, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, r as normalizeAccountId$1, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as stripMarkdown, wt as formatAllowlistMatchMeta, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./unified-runner-BNQKFoGX.js";
|
|
4
4
|
import "./paths-DR2yt_mP.js";
|
|
5
5
|
import "./github-copilot-token-D9X2phUj.js";
|
|
6
6
|
import { D as resolveSlackAccount, E as resolveDefaultSlackAccountId, F as resolveDiscordAccount, M as listDiscordAccountIds, O as resolveSlackReplyToMode, P as resolveDefaultDiscordAccountId, S as resolveTelegramAccount, T as listSlackAccountIds, _ as normalizeWhatsAppTarget, a as listDiscordDirectoryPeersFromConfig, b as listTelegramAccountIds, c as listTelegramDirectoryGroupsFromConfig, d as listWhatsAppDirectoryPeersFromConfig, f as looksLikeSlackTargetId, g as isWhatsAppGroupJid, i as listDiscordDirectoryGroupsFromConfig, l as listTelegramDirectoryPeersFromConfig, o as listSlackDirectoryGroupsFromConfig, p as normalizeSlackMessagingTarget, s as listSlackDirectoryPeersFromConfig, u as listWhatsAppDirectoryGroupsFromConfig, w as listEnabledSlackAccounts, x as resolveDefaultTelegramAccountId } from "./plugins-muf5lfx-.js";
|
|
@@ -47,12 +47,12 @@ import "./paths-A0xdf3yk.js";
|
|
|
47
47
|
import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-fnIb_o_V.js";
|
|
48
48
|
import { n as extractOriginalFilename } from "./store-uf7TpQm3.js";
|
|
49
49
|
import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BkHNUpdB.js";
|
|
50
|
-
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web
|
|
50
|
+
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-B_XlrV_E.js";
|
|
51
51
|
import "./diagnostic-session-state-DnkpMfCl.js";
|
|
52
52
|
import "./image-B7fj8HDX.js";
|
|
53
53
|
import "./pi-auth-json-BOqOPkC8.js";
|
|
54
54
|
import "./pi-model-discovery-Cdz3tuFk.js";
|
|
55
|
-
import "./manager-
|
|
55
|
+
import "./manager-CJd0vK4S.js";
|
|
56
56
|
import "./gemini-auth-lC1AI-WK.js";
|
|
57
57
|
import "./sqlite-BflKfcLD.js";
|
|
58
58
|
import "./commands-registry-L_7UhT9Y.js";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register an AbortController as the controller for an in-flight
|
|
3
|
+
* heartbeat run on `sessionKey`. If a previous controller exists for
|
|
4
|
+
* the same key (shouldn't happen — heartbeats are serialized per
|
|
5
|
+
* session — but be defensive), abort it before replacing.
|
|
6
|
+
*/
|
|
7
|
+
export declare function registerHeartbeatRun(sessionKey: string, controller: AbortController): void;
|
|
8
|
+
/**
|
|
9
|
+
* Drop the controller for `sessionKey` from the registry. Called from
|
|
10
|
+
* the heartbeat runner's finally block once the run has completed
|
|
11
|
+
* (successfully, with an error, or via abort).
|
|
12
|
+
*/
|
|
13
|
+
export declare function clearHeartbeatRun(sessionKey: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Abort the active heartbeat (if any) for `sessionKey`. Returns true
|
|
16
|
+
* when an abort was issued, false when no heartbeat was in flight.
|
|
17
|
+
*
|
|
18
|
+
* Called from the chat.send handler before it enqueues the user turn,
|
|
19
|
+
* so the user's message doesn't sit behind a heartbeat that may take
|
|
20
|
+
* 30s+ to finish. The aborted heartbeat will fire again on the next
|
|
21
|
+
* pulse interval — no state to recover.
|
|
22
|
+
*/
|
|
23
|
+
export declare function abortHeartbeatRunForSession(sessionKey: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Snapshot of currently-tracked heartbeat session keys. Test-only;
|
|
26
|
+
* production code should not rely on enumeration since the set is
|
|
27
|
+
* fundamentally racy.
|
|
28
|
+
*/
|
|
29
|
+
export declare function listActiveHeartbeatSessionsForTest(): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Drop every controller from the registry without aborting them.
|
|
32
|
+
* Test-only — used by suite setup/teardown to keep state isolated.
|
|
33
|
+
*/
|
|
34
|
+
export declare function resetActiveHeartbeatRunsForTest(): void;
|
|
@@ -3970,7 +3970,7 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
|
|
|
3970
3970
|
* to bypass the min-interval guard (CLI use).
|
|
3971
3971
|
*/
|
|
3972
3972
|
async runL3CycleIfDue(params) {
|
|
3973
|
-
const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-BieO-_k_.js"), import("./synthesis-
|
|
3973
|
+
const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-BieO-_k_.js"), import("./synthesis-Cre_3fLT.js")]);
|
|
3974
3974
|
const synthesize = createSynthesizer({
|
|
3975
3975
|
cfg: this.cfg,
|
|
3976
3976
|
agentId: this.agentId,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./accounts-D9zGZU5t.js";
|
|
2
|
-
import { t as runAgentTurn } from "./unified-runner-
|
|
2
|
+
import { t as runAgentTurn } from "./unified-runner-BNQKFoGX.js";
|
|
3
3
|
import "./paths-DR2yt_mP.js";
|
|
4
4
|
import "./github-copilot-token-D9X2phUj.js";
|
|
5
5
|
import "./plugins-muf5lfx-.js";
|
|
@@ -49,7 +49,7 @@ import "./diagnostic-session-state-DnkpMfCl.js";
|
|
|
49
49
|
import "./image-B7fj8HDX.js";
|
|
50
50
|
import "./pi-auth-json-BOqOPkC8.js";
|
|
51
51
|
import "./pi-model-discovery-Cdz3tuFk.js";
|
|
52
|
-
import "./manager-
|
|
52
|
+
import "./manager-CJd0vK4S.js";
|
|
53
53
|
import "./gemini-auth-lC1AI-WK.js";
|
|
54
54
|
import "./sqlite-BflKfcLD.js";
|
|
55
55
|
import "./commands-registry-L_7UhT9Y.js";
|
|
@@ -52,7 +52,7 @@ import { r as getDiagnosticSessionState } from "./diagnostic-session-state-DnkpM
|
|
|
52
52
|
import { S as ensureSymiModelsJson, _ 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-B7fj8HDX.js";
|
|
53
53
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-BOqOPkC8.js";
|
|
54
54
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Cdz3tuFk.js";
|
|
55
|
-
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-
|
|
55
|
+
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-CJd0vK4S.js";
|
|
56
56
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-BpFmQTvo.js";
|
|
57
57
|
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-L_7UhT9Y.js";
|
|
58
58
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-5H7RKVif.js";
|
|
@@ -9625,7 +9625,7 @@ async function getMemorySearchManager(params) {
|
|
|
9625
9625
|
const wrapper = new FallbackMemoryManager({
|
|
9626
9626
|
primary,
|
|
9627
9627
|
fallbackFactory: async () => {
|
|
9628
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
9628
|
+
const { MemoryIndexManager } = await import("./manager-CJd0vK4S.js").then((n) => n.t);
|
|
9629
9629
|
return await MemoryIndexManager.get(params);
|
|
9630
9630
|
}
|
|
9631
9631
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -9638,7 +9638,7 @@ async function getMemorySearchManager(params) {
|
|
|
9638
9638
|
}
|
|
9639
9639
|
}
|
|
9640
9640
|
try {
|
|
9641
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
9641
|
+
const { MemoryIndexManager } = await import("./manager-CJd0vK4S.js").then((n) => n.t);
|
|
9642
9642
|
return { manager: await MemoryIndexManager.get(params) };
|
|
9643
9643
|
} catch (err) {
|
|
9644
9644
|
return {
|
|
@@ -12104,6 +12104,40 @@ function buildSkillsJitBlocks(opts) {
|
|
|
12104
12104
|
|
|
12105
12105
|
//#endregion
|
|
12106
12106
|
//#region src/agents/system-prompt.ts
|
|
12107
|
+
/**
|
|
12108
|
+
* Read up to `limit` markdown filenames from `<workspaceDir>/memory/`,
|
|
12109
|
+
* sorted by mtime descending. Returns relative names (e.g. "2026-04-30.md")
|
|
12110
|
+
* for inlining into the system prompt — gives the agent the actual file
|
|
12111
|
+
* surface so it doesn't speculate names like "memory/2026-04-30.md" from
|
|
12112
|
+
* training-data priors. Resilient: missing dir → [], unreadable → [].
|
|
12113
|
+
*/
|
|
12114
|
+
function listWorkspaceMemoryFiles(workspaceDir, limit = 10) {
|
|
12115
|
+
if (!workspaceDir) return [];
|
|
12116
|
+
const memoryDir = path.join(workspaceDir, "memory");
|
|
12117
|
+
let entries;
|
|
12118
|
+
try {
|
|
12119
|
+
entries = fs.readdirSync(memoryDir, { withFileTypes: true });
|
|
12120
|
+
} catch {
|
|
12121
|
+
return [];
|
|
12122
|
+
}
|
|
12123
|
+
const files = [];
|
|
12124
|
+
for (const entry of entries) {
|
|
12125
|
+
if (!entry.isFile()) continue;
|
|
12126
|
+
if (!entry.name.toLowerCase().endsWith(".md")) continue;
|
|
12127
|
+
let mtimeMs = 0;
|
|
12128
|
+
try {
|
|
12129
|
+
mtimeMs = fs.statSync(path.join(memoryDir, entry.name)).mtimeMs;
|
|
12130
|
+
} catch {
|
|
12131
|
+
mtimeMs = 0;
|
|
12132
|
+
}
|
|
12133
|
+
files.push({
|
|
12134
|
+
name: entry.name,
|
|
12135
|
+
mtimeMs
|
|
12136
|
+
});
|
|
12137
|
+
}
|
|
12138
|
+
files.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
12139
|
+
return files.slice(0, limit).map((f) => f.name);
|
|
12140
|
+
}
|
|
12107
12141
|
function buildSkillsSection(params) {
|
|
12108
12142
|
if (params.isMinimal) return [];
|
|
12109
12143
|
if (params.dropCatalog) return [];
|
|
@@ -12127,13 +12161,21 @@ function buildMemorySection(params) {
|
|
|
12127
12161
|
"## Memory Recall",
|
|
12128
12162
|
"Before answering anything about prior work, decisions, dates, people, preferences, or todos: run memory_search on MEMORY.md + memory/*.md; then use memory_get to pull only the needed lines. If low confidence after search, say you checked.",
|
|
12129
12163
|
"",
|
|
12164
|
+
"**Never speculate memory file paths.** Use memory_search to find content; do not construct paths like `memory/<date>.md` from training-data priors and call read on them — that produces ENOENT spam and trips the consecutive-tool-error breaker.",
|
|
12165
|
+
"",
|
|
12130
12166
|
"Memory is split into two layers you will see as files:",
|
|
12131
12167
|
"- `MEMORY.md` — user-authored short-term memory. Hand-edited by the user; treat as ground truth they wrote themselves. Never rewrite it yourself.",
|
|
12132
|
-
"- `memory/symi-core.md` + `memory/symi-beliefs.md` — long-term memory automatically consolidated from repeated observations (your evolving self). Do NOT hand-edit these files: they are regenerated each consolidation cycle. When the files disagree with a fresh user statement, trust the fresh statement and write a new observation
|
|
12133
|
-
"- `memory
|
|
12134
|
-
"",
|
|
12135
|
-
"When the user explicitly asks to *remember* or *always remember* something, after writing the observation also call `memory_pin` with a distinctive query so the fact survives pruning. Call `memory_unpin` when the user says to forget it."
|
|
12168
|
+
"- `memory/symi-core.md` + `memory/symi-beliefs.md` — long-term memory automatically consolidated from repeated observations (your evolving self). Do NOT hand-edit these files: they are regenerated each consolidation cycle. When the files disagree with a fresh user statement, trust the fresh statement and write a new observation. The cycle will reconcile them.",
|
|
12169
|
+
"- New observations go in dated daily files (e.g. `memory/<today>.md`); use `memory_search` to discover what already exists rather than guessing filenames."
|
|
12136
12170
|
];
|
|
12171
|
+
const memoryFiles = (params.workspaceMemoryFiles ?? []).filter(Boolean);
|
|
12172
|
+
if (memoryFiles.length > 0) {
|
|
12173
|
+
lines.push("");
|
|
12174
|
+
lines.push("Existing memory files in this workspace (most-recently-modified first):");
|
|
12175
|
+
for (const name of memoryFiles) lines.push(`- \`memory/${name}\``);
|
|
12176
|
+
}
|
|
12177
|
+
lines.push("");
|
|
12178
|
+
lines.push("When the user explicitly asks to *remember* or *always remember* something, after writing the observation also call `memory_pin` with a distinctive query so the fact survives pruning. Call `memory_unpin` when the user says to forget it.");
|
|
12137
12179
|
if (params.citationsMode === "off") lines.push("Citations are disabled: do not mention file paths or line numbers in replies unless the user explicitly asks.");
|
|
12138
12180
|
else lines.push("Citations: include Source: <path#line> when it helps the user verify memory snippets.");
|
|
12139
12181
|
lines.push("");
|
|
@@ -12422,7 +12464,8 @@ function buildAgentSystemPrompt(params) {
|
|
|
12422
12464
|
const memorySection = buildMemorySection({
|
|
12423
12465
|
isMinimal,
|
|
12424
12466
|
availableTools,
|
|
12425
|
-
citationsMode: params.memoryCitationsMode
|
|
12467
|
+
citationsMode: params.memoryCitationsMode,
|
|
12468
|
+
workspaceMemoryFiles: listWorkspaceMemoryFiles(params.workspaceDir)
|
|
12426
12469
|
});
|
|
12427
12470
|
const docsSection = buildDocsSection({
|
|
12428
12471
|
docsPath: params.docsPath,
|
|
@@ -54566,7 +54609,7 @@ function setCliSessionId(entry, provider, sessionId) {
|
|
|
54566
54609
|
function createDefaultDeps() {
|
|
54567
54610
|
return {
|
|
54568
54611
|
sendMessageWhatsApp: async (...args) => {
|
|
54569
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
54612
|
+
const { sendMessageWhatsApp } = await import("./web-CE-OsTKq.js");
|
|
54570
54613
|
return await sendMessageWhatsApp(...args);
|
|
54571
54614
|
},
|
|
54572
54615
|
sendMessageTelegram: async (...args) => {
|
|
@@ -69237,7 +69280,7 @@ function loadWebLoginQr() {
|
|
|
69237
69280
|
return webLoginQrPromise;
|
|
69238
69281
|
}
|
|
69239
69282
|
function loadWebChannel() {
|
|
69240
|
-
webChannelPromise ??= import("./web-
|
|
69283
|
+
webChannelPromise ??= import("./web-CE-OsTKq.js");
|
|
69241
69284
|
return webChannelPromise;
|
|
69242
69285
|
}
|
|
69243
69286
|
function loadWhatsAppActions() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
|
|
2
|
-
import "./unified-runner-
|
|
2
|
+
import "./unified-runner-BNQKFoGX.js";
|
|
3
3
|
import "./paths-DR2yt_mP.js";
|
|
4
4
|
import "./github-copilot-token-D9X2phUj.js";
|
|
5
5
|
import "./plugins-muf5lfx-.js";
|
|
@@ -45,12 +45,12 @@ import "./pi-embedded-helpers-YqYJ6xU1.js";
|
|
|
45
45
|
import "./paths-A0xdf3yk.js";
|
|
46
46
|
import "./diagnostic-fnIb_o_V.js";
|
|
47
47
|
import "./store-uf7TpQm3.js";
|
|
48
|
-
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web
|
|
48
|
+
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-B_XlrV_E.js";
|
|
49
49
|
import "./diagnostic-session-state-DnkpMfCl.js";
|
|
50
50
|
import "./image-B7fj8HDX.js";
|
|
51
51
|
import "./pi-auth-json-BOqOPkC8.js";
|
|
52
52
|
import "./pi-model-discovery-Cdz3tuFk.js";
|
|
53
|
-
import "./manager-
|
|
53
|
+
import "./manager-CJd0vK4S.js";
|
|
54
54
|
import "./gemini-auth-lC1AI-WK.js";
|
|
55
55
|
import "./sqlite-BflKfcLD.js";
|
|
56
56
|
import "./commands-registry-L_7UhT9Y.js";
|
|
@@ -14,7 +14,7 @@ import "./client-CJIMV1WD.js";
|
|
|
14
14
|
import "./call-e869fla2.js";
|
|
15
15
|
import "./message-channel-C9dERklz.js";
|
|
16
16
|
import "./pairing-token-Byh6drgn.js";
|
|
17
|
-
import "./subagent-registry-
|
|
17
|
+
import "./subagent-registry-DXCGIrYv.js";
|
|
18
18
|
import "./sessions-CBlCXpU2.js";
|
|
19
19
|
import "./tokens-BEvOiQ65.js";
|
|
20
20
|
import "./plugins-DTKQE9kt.js";
|
|
@@ -52,8 +52,8 @@ import "./tool-images-CVLISeRT.js";
|
|
|
52
52
|
import "./thinking-8sKPnzpp.js";
|
|
53
53
|
import "./models-config-BjWk_WQa.js";
|
|
54
54
|
import "./reply-prefix-Pz-5t5RS.js";
|
|
55
|
-
import "./memory-cli-
|
|
56
|
-
import "./manager-
|
|
55
|
+
import "./memory-cli-D4lLSeA1.js";
|
|
56
|
+
import "./manager-B6EhIj3H.js";
|
|
57
57
|
import "./gemini-auth-CdtQ-GuM.js";
|
|
58
58
|
import "./retry-C4Q_VPOo.js";
|
|
59
59
|
import "./sqlite-BP8tiuca.js";
|
|
@@ -103,7 +103,7 @@ import "./npm-registry-spec-PuS2I1Em.js";
|
|
|
103
103
|
import "./skill-scanner-BV3QHmsf.js";
|
|
104
104
|
import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-B4sNNRaW.js";
|
|
105
105
|
import { t as renderTable } from "./table-Bka4fasy.js";
|
|
106
|
-
import { t as buildPluginStatusReport } from "./status-
|
|
106
|
+
import { t as buildPluginStatusReport } from "./status-JL0CD-E1.js";
|
|
107
107
|
import { n as updateNpmInstalledPlugins } from "./update-DticqU4-.js";
|
|
108
108
|
import os from "node:os";
|
|
109
109
|
import path from "node:path";
|