@fased/fased 0.1.54 → 0.1.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/agents/authenticated-model-catalog.js +27 -0
  2. package/dist/agents/current-model-catalog.js +3 -10
  3. package/dist/agents/model-catalog-normalized.js +1 -0
  4. package/dist/agents/model-metadata.js +25 -4
  5. package/dist/agents/pi-embedded-runner/extra-params.js +25 -0
  6. package/dist/agents/pi-embedded-runner/utils.js +1 -1
  7. package/dist/brand.js +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  10. package/dist/cli/providers-cli.js +3 -2
  11. package/dist/commands/auth-choice.apply.api-providers.js +3 -8
  12. package/dist/commands/auth-choice.apply.openai.js +13 -7
  13. package/dist/commands/auth-choice.model-check.js +1 -2
  14. package/dist/commands/configure.gateway-auth.js +14 -16
  15. package/dist/commands/model-picker.js +25 -7
  16. package/dist/commands/models/list.registry.js +12 -17
  17. package/dist/commands/onboard-auth.config-core.js +1 -1
  18. package/dist/commands/onboard-auth.config-litellm.js +21 -21
  19. package/dist/commands/onboard-auth.credentials.js +0 -1
  20. package/dist/commands/onboard-auth.js +0 -1
  21. package/dist/commands/openai-codex-model-default.js +27 -5
  22. package/dist/config/zod-schema.agent-defaults.js +4 -2
  23. package/dist/config/zod-schema.agent-runtime.js +4 -2
  24. package/dist/config/zod-schema.core.js +4 -2
  25. package/dist/control-ui/assets/{app-BKlu6OKz.js → app-D2RaTXoV.js} +1475 -1474
  26. package/dist/control-ui/assets/chat-model-ref-BZFblCeY.js +2 -0
  27. package/dist/control-ui/assets/{index-nrFcGMv-.js → index-D2nC6I-9.js} +3 -3
  28. package/dist/control-ui/assets/{providers-BQFrRqym.js → providers-CyjiG5Jw.js} +4 -4
  29. package/dist/control-ui/index.html +1 -1
  30. package/dist/control-ui/version.json +1 -0
  31. package/dist/gateway/control-ui.js +2 -0
  32. package/dist/gateway/protocol/schema/agents-models-skills.js +5 -2
  33. package/dist/gateway/server-methods/models.js +7 -8
  34. package/dist/gateway/server-model-catalog.js +3 -0
  35. package/dist/infra/update-runner.js +31 -3
  36. package/dist/light-update-status.js +11 -11
  37. package/dist/memory/inventory.js +19 -2
  38. package/dist/plugin-sdk/{accounts-DW9OS5Ll.js → accounts-CeRNo5Ae.js} +1 -1
  39. package/dist/plugin-sdk/{actions-DQUXohRr.js → actions-OMRHtXPj.js} +2 -2
  40. package/dist/plugin-sdk/{active-listener-BZQWZPF7.js → active-listener-BlIkS3iR.js} +1 -1
  41. package/dist/plugin-sdk/{audio-preflight-t4mmHsI2.js → audio-preflight-B2n3a2Tj.js} +26 -26
  42. package/dist/plugin-sdk/{audit-BZk_6Buw.js → audit-Ppg6dR_b.js} +1 -1
  43. package/dist/plugin-sdk/{channel-access-CN5HiWdb.js → channel-access-af8dWWRv.js} +1 -1
  44. package/dist/plugin-sdk/{channel-access-configure-B7Kkvx9K.js → channel-access-configure-B6IAGlE0.js} +1 -1
  45. package/dist/plugin-sdk/channel-plugin-common.d.ts +3 -3
  46. package/dist/plugin-sdk/channel-plugin-common.js +4 -4
  47. package/dist/plugin-sdk/{chunk-B2ffJ-LR.js → chunk-CD76Byie.js} +1 -1
  48. package/dist/plugin-sdk/{chunk-items-jOdkyP53.js → chunk-items-Bu19zrYH.js} +1 -1
  49. package/dist/plugin-sdk/command-status.d.ts +2 -2
  50. package/dist/plugin-sdk/command-status.js +26 -26
  51. package/dist/plugin-sdk/{commands-registry-BWb4NcfW.js → commands-registry-DgS55tNj.js} +2 -2
  52. package/dist/plugin-sdk/{common-C4XrB73N.js → common-CWvfeiX0.js} +1 -1
  53. package/dist/plugin-sdk/{config-rySyVtKs.js → config-CYDETqcF.js} +83 -65
  54. package/dist/plugin-sdk/{config-schema-BaybPPrJ.js → config-schema-CQ4EVcQG.js} +128 -66
  55. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  56. package/dist/plugin-sdk/discord.d.ts +5 -5
  57. package/dist/plugin-sdk/discord.js +19 -19
  58. package/dist/plugin-sdk/{group-mentions-DLOOve8d.d.ts → group-mentions-BxDgHCgj.d.ts} +1 -1
  59. package/dist/plugin-sdk/{handle-action-CGF-Qnp0.js → handle-action-B75UVKxF.js} +13 -13
  60. package/dist/plugin-sdk/{helpers-DgRMfCnT.js → helpers-BuEwju6y.js} +1 -1
  61. package/dist/plugin-sdk/{image-ops-CcBfoMLW.js → image-ops-C66HPeAZ.js} +1 -1
  62. package/dist/plugin-sdk/index.d.ts +8 -8
  63. package/dist/plugin-sdk/index.js +28 -28
  64. package/dist/plugin-sdk/{login-DpDQyM7r.js → login-Amr2DpKU.js} +3 -3
  65. package/dist/plugin-sdk/{login-qr-COaSAPY5.js → login-qr-DMQNEi9m.js} +3 -3
  66. package/dist/plugin-sdk/{manager-Cqz30lA3.js → manager-Bvpq49BI.js} +2 -2
  67. package/dist/plugin-sdk/{markdown-tables-BOG5sSQQ.js → markdown-tables-DmQ7oXOm.js} +1 -1
  68. package/dist/plugin-sdk/{media-Bu-nJpPs.js → media-ByLQbEwJ.js} +2 -2
  69. package/dist/plugin-sdk/{monitor-II_NIq3G.js → monitor-K_u6daGa.js} +30 -30
  70. package/dist/plugin-sdk/{monitor-DL6oEVo8.js → monitor-S_7LrvSj.js} +31 -31
  71. package/dist/plugin-sdk/{openresponses-http-vkHBBpGY.js → openresponses-http-BrDJUZXR.js} +26 -26
  72. package/dist/plugin-sdk/{optional-runtime-dependency-DEojVNfv.js → optional-runtime-dependency-CbYjAC2b.js} +1 -1
  73. package/dist/plugin-sdk/{outbound-mf2y6KuY.js → outbound-BuDafBBI.js} +6 -6
  74. package/dist/plugin-sdk/{outbound-attachment-ivAHpWnn.js → outbound-attachment-DmZmUqFP.js} +2 -2
  75. package/dist/plugin-sdk/{pairing-message-CvJ6Qa1Q.d.ts → pairing-message-D0-UWGFJ.d.ts} +2 -2
  76. package/dist/plugin-sdk/{pairing-message-CqYG12t-.js → pairing-message-e4D4eBDA.js} +1 -1
  77. package/dist/plugin-sdk/{pairing-store-D-21Sphe.js → pairing-store-T3IGoGZg.js} +2 -2
  78. package/dist/plugin-sdk/{pi-model-discovery-B6gD1clF.js → pi-model-discovery-DvAG_Png.js} +1 -1
  79. package/dist/plugin-sdk/{pi-model-discovery-runtime-3yDxS3ro.js → pi-model-discovery-runtime-NjkUgjIf.js} +2 -2
  80. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
  81. package/dist/plugin-sdk/{pw-ai-CMplwiwf.js → pw-ai-D7eW43DL.js} +3 -3
  82. package/dist/plugin-sdk/{replies-wiI4veI7.js → replies-BMIPmEoP.js} +2 -2
  83. package/dist/plugin-sdk/{resolve-outbound-target-bm9RUK5q.js → resolve-outbound-target-CXCqUUPV.js} +1 -1
  84. package/dist/plugin-sdk/{resolve-route-ekGNc6os.js → resolve-route-DJN-SUSt.js} +1 -1
  85. package/dist/plugin-sdk/{retry-policy-BvlC2SPh.js → retry-policy-CY1qY6d7.js} +1 -1
  86. package/dist/plugin-sdk/{runtime-ClSakPxR.js → runtime-CgOkQe0w.js} +3 -3
  87. package/dist/plugin-sdk/{runtime-dependency-yAWxH4El.js → runtime-dependency-DvdRNMvs.js} +2 -2
  88. package/dist/plugin-sdk/sat-runtime.d.ts +3 -3
  89. package/dist/plugin-sdk/sat-runtime.js +5 -5
  90. package/dist/plugin-sdk/{send-CgyS75Av.js → send-2ITqny2W.js} +8 -8
  91. package/dist/plugin-sdk/{send-D264hFVb.js → send-BAz22RZr.js} +5 -5
  92. package/dist/plugin-sdk/{send-C7x6gzSl.js → send-BG3RWyil.js} +7 -7
  93. package/dist/plugin-sdk/{send-D58yEeH4.js → send-Cr-dj6S-.js} +6 -6
  94. package/dist/plugin-sdk/{send-DrAtUGLM.js → send-eTxqFFsw.js} +6 -6
  95. package/dist/plugin-sdk/{session-DyMtb5YQ.js → session-C8nJmmVE.js} +2 -2
  96. package/dist/plugin-sdk/{skill-commands-Q80wCyry.js → skill-commands-Rm5by9S8.js} +2 -2
  97. package/dist/plugin-sdk/{slack-actions-dGE_t_Un.js → slack-actions-BNIALJTA.js} +11 -11
  98. package/dist/plugin-sdk/{slack-C-I6q3NB.js → slack-xvIVvyEM.js} +38 -38
  99. package/dist/plugin-sdk/slack.d.ts +5 -5
  100. package/dist/plugin-sdk/slack.js +9 -9
  101. package/dist/plugin-sdk/{sticker-cache-DCrDTYIi.js → sticker-cache-D3oDiu2u.js} +3 -3
  102. package/dist/plugin-sdk/{tables-0mhUOh5v.js → tables-DS5L7lCA.js} +1 -1
  103. package/dist/plugin-sdk/{targets-znKHngSk.js → targets-D6lUomJc.js} +1 -1
  104. package/dist/plugin-sdk/{telegram-actions-GBYY8-x9.js → telegram-actions-MSFkDn0m.js} +29 -29
  105. package/dist/plugin-sdk/telegram.d.ts +5 -5
  106. package/dist/plugin-sdk/telegram.js +8 -8
  107. package/dist/plugin-sdk/{thread-bindings.lifecycle-ClzPBK70.js → thread-bindings.lifecycle-Ry6Vcgw3.js} +3 -3
  108. package/dist/plugin-sdk/{thread-bindings.state-Ha01nmrq.js → thread-bindings.state-C0stmvNk.js} +2 -2
  109. package/dist/plugin-sdk/{tmp-fased-dir-C_xfeEN9.d.ts → tmp-fased-dir-D91GExk4.d.ts} +2 -2
  110. package/dist/plugin-sdk/{types-CBCtqtMn.d.ts → types-BzadOItY.d.ts} +1 -1
  111. package/dist/plugin-sdk/{types-BI2njxWJ.d.ts → types-DKvBJHfH.d.ts} +14 -5
  112. package/dist/plugin-sdk/{types-DV5TNhMK.d.ts → types-DVTIpopt.d.ts} +2 -2
  113. package/dist/plugin-sdk/{types.plugin-CvUiB3Kh.d.ts → types.plugin-BiHPaDTF.d.ts} +2 -1
  114. package/dist/plugin-sdk/{wallet-status-CyovJojz.js → wallet-status-f0HagNeO.js} +8 -5
  115. package/dist/plugin-sdk/{web-CJMfhGFY.js → web-DRNJxHXA.js} +31 -31
  116. package/dist/plugin-sdk/{whatsapp-actions-0ZbGo5ZV.js → whatsapp-actions-BDXZF2R5.js} +13 -13
  117. package/dist/plugin-sdk/{whatsapp-heartbeat-DGTsuvQ8.js → whatsapp-heartbeat-CKgmwCGr.js} +2 -2
  118. package/dist/plugin-sdk/whatsapp.d.ts +5 -5
  119. package/dist/plugin-sdk/whatsapp.js +12 -12
  120. package/dist/plugin-sdk/{wsl-D5jDUlms.js → wsl-Biw7Mj39.js} +3 -3
  121. package/dist/providers/litellm-models.js +1 -1
  122. package/dist/providers/refresh.js +218 -56
  123. package/dist/providers/registry.js +15 -5
  124. package/dist/providers/runtime-model-catalog.js +181 -0
  125. package/dist/shared/model-thinking.js +41 -2
  126. package/dist/wizard/onboarding.js +24 -6
  127. package/extensions/acpx/package.json +1 -1
  128. package/extensions/bluebubbles/package.json +1 -1
  129. package/extensions/copilot-proxy/package.json +1 -1
  130. package/extensions/diagnostics-otel/package.json +1 -1
  131. package/extensions/fased-federation/package.json +1 -1
  132. package/extensions/google-gemini-cli-auth/package.json +1 -1
  133. package/extensions/imessage/package.json +1 -1
  134. package/extensions/irc/package.json +1 -1
  135. package/extensions/line/package.json +1 -1
  136. package/extensions/llm-task/package.json +1 -1
  137. package/extensions/lobster/package.json +1 -1
  138. package/extensions/matrix/CHANGELOG.md +6 -0
  139. package/extensions/matrix/package.json +1 -1
  140. package/extensions/mattermost/package.json +1 -1
  141. package/extensions/memory-core/package.json +2 -2
  142. package/extensions/memory-lancedb/package.json +1 -1
  143. package/extensions/minimax-portal-auth/package.json +1 -1
  144. package/extensions/msteams/CHANGELOG.md +6 -0
  145. package/extensions/msteams/package.json +1 -1
  146. package/extensions/nextcloud-talk/package.json +1 -1
  147. package/extensions/nostr/CHANGELOG.md +6 -0
  148. package/extensions/nostr/package.json +1 -1
  149. package/extensions/open-prose/package.json +1 -1
  150. package/extensions/sat-mining/package.json +1 -1
  151. package/extensions/signal/package.json +1 -1
  152. package/extensions/synology-chat/package.json +1 -1
  153. package/extensions/tlon/package.json +1 -1
  154. package/extensions/twitch/CHANGELOG.md +6 -0
  155. package/extensions/twitch/package.json +1 -1
  156. package/extensions/voice-call/CHANGELOG.md +6 -0
  157. package/extensions/voice-call/package.json +1 -1
  158. package/extensions/zalo/CHANGELOG.md +6 -0
  159. package/extensions/zalo/package.json +1 -1
  160. package/extensions/zalouser/CHANGELOG.md +6 -0
  161. package/extensions/zalouser/package.json +1 -1
  162. package/package.json +1 -1
  163. package/dist/control-ui/assets/chat-model-ref-B9sWop67.js +0 -2
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { $ as mergeSessionEntry, A as deliveryContextKey, An as GATEWAY_CLIENT_IDS, C as recordSessionMetaFromInbound, Cn as isGatewayMessageChannel, D as isCacheEnabled, Dn as normalizeMessageChannel, Dt as getChannelDock, E as updateSessionStoreEntry, En as listDeliverableMessageChannels, F as archiveSessionTranscripts, Fn as normalizeAnyChannelId, Ft as trimMessagingTarget, G as resolveSessionLockMaxHoldFromTimeout, Gn as getPluginCommandSpecs, H as hasInterSessionUserProvenance, Hn as resolveLeastPrivilegeOperatorScopesForMethod, I as capArrayByJsonBytes, In as normalizeChannelId$2, It as isWhatsAppGroupJid, J as resolveChannelResetConfig, Jn as createInternalHookEvent, K as resolveSessionKey$1, Kn as listPluginCommands, L as countToolResults, Ln as logMutatingAdminRpcAudit, Lt as normalizeWhatsAppTarget, M as normalizeDeliveryContext, Mn as GATEWAY_CLIENT_NAMES, N as normalizeSessionDeliveryFields, Nn as getChatChannelMeta, O as resolveCacheTtlMs$1, On as resolveGatewayMessageChannel, Ot as listChannelDocks, P as normalizeAccountId$1, Pn as listChatChannels, Pt as looksLikeHandleOrPhoneTarget, Q as DEFAULT_RESET_TRIGGERS, R as extractToolCallNames, Rn as consumeMutatingAdminRpcBudget, S as readSessionUpdatedAt, Sn as isDeliverableMessageChannel, T as updateSessionStore, Tn as isMarkdownCapableMessageChannel, U as normalizeInputProvenance, Un as clearPluginCommands, V as applyInputProvenanceToUserMessage, Vn as authorizeOperatorScopesForMethod, W as acquireSessionWriteLock, Wn as executePluginCommand, X as resolveSessionResetType, Xn as normalizePluginHttpPath, Y as resolveSessionResetPolicy, Yn as triggerInternalHook, Z as resolveThreadFlag, _ as appendAssistantMessageToSessionTranscript, _n as resolveChannelGroupRequireMention, a as createPluginRegistry, an as resolveTelegramToken, at as resolveMainSessionKey, b as resolveAndPersistSessionFile, bn as resolveGroupSessionKey, bt as parseSlackTarget, c as listAgentsForGateway, ct as listChannelPlugins, d as lookupContextTokens, dn as resolveDefaultSignalAccountId, en as createTelegramActionGate, et as resolveFreshSessionTotalTokens, f as resolveContextTokensForModel, fn as resolveSignalAccount, g as parseSessionThreadInfo, gn as resolveChannelGroupPolicy, h as extractDeliveryInfo, hn as resolveIMessageAccount, i as setActivePluginRegistry, in as resolveTelegramAccount, it as resolveExplicitAgentSessionKey, j as mergeDeliveryContext, jn as GATEWAY_CLIENT_MODES, k as deliveryContextFromSession, kn as resolveMessageChannel, l as loadCombinedSessionStoreForGateway, ln as listEnabledSignalAccounts, lt as normalizeChannelId$1, mn as resolveDefaultIMessageAccountId, n as getActivePluginRegistryKey, nn as listTelegramAccountIds, nt as canonicalizeMainSessionAlias, o as createRuntimeHelpers, on as buildChannelAccountBindings, ot as deriveSessionMetaPatch, p as ensureFasedAgentModelsJson, pn as listIMessageAccountIds, q as evaluateSessionFreshness, qn as matchPluginCommand, r as requireActivePluginRegistry, rt as resolveAgentMainSessionKey, s as classifySessionKey, st as getChannelPlugin, t as getActivePluginRegistry, tn as listEnabledTelegramAccounts, tt as setSessionRuntimeModel, u as resolveSessionModelRef, un as listSignalAccountIds, v as resolveMirroredTranscriptText, vn as resolveChannelGroupToolsPolicy, w as updateLastRoute, wn as isInternalMessageChannel, x as loadSessionStore, xn as INTERNAL_MESSAGE_CHANNEL, y as resolveSessionTranscriptFile, z as parseInlineDirectives$1, zn as ADMIN_SCOPE, zt as normalizeSignalMessagingTarget } from "./runtime-ClSakPxR.js";
2
+ import { $ as mergeSessionEntry, A as deliveryContextKey, An as GATEWAY_CLIENT_IDS, C as recordSessionMetaFromInbound, Cn as isGatewayMessageChannel, D as isCacheEnabled, Dn as normalizeMessageChannel, Dt as getChannelDock, E as updateSessionStoreEntry, En as listDeliverableMessageChannels, F as archiveSessionTranscripts, Fn as normalizeAnyChannelId, Ft as trimMessagingTarget, G as resolveSessionLockMaxHoldFromTimeout, Gn as getPluginCommandSpecs, H as hasInterSessionUserProvenance, Hn as resolveLeastPrivilegeOperatorScopesForMethod, I as capArrayByJsonBytes, In as normalizeChannelId$2, It as isWhatsAppGroupJid, J as resolveChannelResetConfig, Jn as createInternalHookEvent, K as resolveSessionKey$1, Kn as listPluginCommands, L as countToolResults, Ln as logMutatingAdminRpcAudit, Lt as normalizeWhatsAppTarget, M as normalizeDeliveryContext, Mn as GATEWAY_CLIENT_NAMES, N as normalizeSessionDeliveryFields, Nn as getChatChannelMeta, O as resolveCacheTtlMs$1, On as resolveGatewayMessageChannel, Ot as listChannelDocks, P as normalizeAccountId$1, Pn as listChatChannels, Pt as looksLikeHandleOrPhoneTarget, Q as DEFAULT_RESET_TRIGGERS, R as extractToolCallNames, Rn as consumeMutatingAdminRpcBudget, S as readSessionUpdatedAt, Sn as isDeliverableMessageChannel, T as updateSessionStore, Tn as isMarkdownCapableMessageChannel, U as normalizeInputProvenance, Un as clearPluginCommands, V as applyInputProvenanceToUserMessage, Vn as authorizeOperatorScopesForMethod, W as acquireSessionWriteLock, Wn as executePluginCommand, X as resolveSessionResetType, Xn as normalizePluginHttpPath, Y as resolveSessionResetPolicy, Yn as triggerInternalHook, Z as resolveThreadFlag, _ as appendAssistantMessageToSessionTranscript, _n as resolveChannelGroupRequireMention, a as createPluginRegistry, an as resolveTelegramToken, at as resolveMainSessionKey, b as resolveAndPersistSessionFile, bn as resolveGroupSessionKey, bt as parseSlackTarget, c as listAgentsForGateway, ct as listChannelPlugins, d as lookupContextTokens, dn as resolveDefaultSignalAccountId, en as createTelegramActionGate, et as resolveFreshSessionTotalTokens, f as resolveContextTokensForModel, fn as resolveSignalAccount, g as parseSessionThreadInfo, gn as resolveChannelGroupPolicy, h as extractDeliveryInfo, hn as resolveIMessageAccount, i as setActivePluginRegistry, in as resolveTelegramAccount, it as resolveExplicitAgentSessionKey, j as mergeDeliveryContext, jn as GATEWAY_CLIENT_MODES, k as deliveryContextFromSession, kn as resolveMessageChannel, l as loadCombinedSessionStoreForGateway, ln as listEnabledSignalAccounts, lt as normalizeChannelId$1, mn as resolveDefaultIMessageAccountId, n as getActivePluginRegistryKey, nn as listTelegramAccountIds, nt as canonicalizeMainSessionAlias, o as createRuntimeHelpers, on as buildChannelAccountBindings, ot as deriveSessionMetaPatch, p as ensureFasedAgentModelsJson, pn as listIMessageAccountIds, q as evaluateSessionFreshness, qn as matchPluginCommand, r as requireActivePluginRegistry, rt as resolveAgentMainSessionKey, s as classifySessionKey, st as getChannelPlugin, t as getActivePluginRegistry, tn as listEnabledTelegramAccounts, tt as setSessionRuntimeModel, u as resolveSessionModelRef, un as listSignalAccountIds, v as resolveMirroredTranscriptText, vn as resolveChannelGroupToolsPolicy, w as updateLastRoute, wn as isInternalMessageChannel, x as loadSessionStore, xn as INTERNAL_MESSAGE_CHANNEL, y as resolveSessionTranscriptFile, z as parseInlineDirectives$1, zn as ADMIN_SCOPE, zt as normalizeSignalMessagingTarget } from "./runtime-CgOkQe0w.js";
3
3
  import { a as clearActiveProgressLine, c as CHANNEL_IDS, f as normalizeChatChannelId, i as defaultRuntime, l as CHAT_CHANNEL_ORDER, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-DBPNbQDQ.js";
4
4
  import { S as normalizeLogLevel, d as isRich, f as theme, i as logVerbose, l as warn, o as setVerbose, p as getChildLogger, s as shouldLogVerbose, t as danger, u as colorize, w as resolvePreferredFasedAgentTmpDir } from "./globals-B_jjtAje.js";
5
5
  import { c as expandHomePrefix, i as resolveGatewayPort, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-BEmvSyOV.js";
6
6
  import { C as isPlainObject, S as truncateUtf16Safe, _ as shortenHomeInString, b as sliceUtf16Safe, c as isRecord$3, d as normalizeE164, h as resolveUserPath, o as escapeRegExp, r as clampInt, t as CONFIG_DIR, v as shortenHomePath, y as sleep } from "./utils-CYk9EKoq.js";
7
- import { $ as resetConfigOverrides, $t as resolveSubagentSpawnModelSelection, An as markAuthProfileGood, Ar as isTruthyEnvValue, At as isSafeExecutableValue, B as MODEL_APIS, Bn as normalizeProviderId$1, Bt as buildModelAliasIndex, C as resolveIMessageAttachmentRoots, Cn as markAuthProfileFailure, Cr as isDangerousHostEnvOverrideVarName, Ct as unwrapKnownDispatchWrapperInvocation, Dn as dedupeProfileIds, Dr as resolveOwnerDisplaySetting, Dt as normalizeSafeBinProfileFixtures, En as resolveApiKeyForProfile, Er as sanitizeHostExecEnv, Et as SAFE_BIN_PROFILES, Fr as resolveEffectiveEnableState, G as isAvatarDataUrl, Gn as resolveAuthProfileDisplayLabel, Gt as normalizeModelRef$1, H as parseDurationMs, Hn as discoverFasedAgentPlugins, In as withFileLock, Ir as resolveMemorySlotDecision, It as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, J as isSupportedLocalAvatarExtension, Jt as resolveConfiguredModelRef, K as isAvatarHttpUrl, Kn as isPrivateNetworkBaseUrl, Kt as normalizeProviderId, Mn as resolveAuthStorePathForDisplay, Mr as applyTestPluginDefaults, Nn as resolveFasedAgentAgentDir, On as listProfilesForProvider, Or as formatCliCommand, Ot as resolveSafeBinProfiles, Pr as normalizePluginsConfig, Q as getConfigOverrides, Qn as isOpenAISignInCatalogModel, Qt as resolveReasoningDefault, Rt as buildAllowedModelSet, S as mergeInboundPathRoots, Sn as isProfileInCooldown, Sr as resolveShellEnvFallbackTimeoutMs, St as isShellWrapperExecutable, T as normalizeScpRemoteHost, Tn as resolveProfilesUnavailableReason, Tr as isDangerousHostInheritedEnvVarName, Tt as splitShellArgs, Un as isPathInside, Ut as isCliProvider, V as getBlockedNetworkModeReason, Vn as loadPluginManifestRegistry, Vt as findNormalizedProviderValue, W as AVATAR_MAX_BYTES, Wn as safeStatSync, Wt as modelKey, Xn as splitTrailingAuthProfile, Yn as coerceSecretRef, Yt as resolveDefaultModelForAgent, Z as validateJsonSchemaValue, Zn as getProviderBrandManifestForRoute, Zt as resolveModelRefFromString, _n as normalizeModelCatalogProviderId, _r as formatErrorMessage, _t as matchAllowlist, a as readConfigFileSnapshotForWrite, an as getApiKeyForModel, at as unsetConfigValueAtPath, b as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, bn as resolveAuthProfileOrder, br as extractArchive, bt as extractShellWrapperInlineCommand, c as validateConfigObjectWithPlugins, cn as resolveApiKeyForProvider, cr as supportsXHighThinking, ct as isTrustedSafeBinPath, dn as CURRENT_MODEL_PROVIDER_CATALOG, dr as DEFAULT_PROVIDER, dt as validateSafeBinArgv, en as resolveThinkingDefault, er as isStandardProviderCatalogEntry, et as setConfigOverride, fr as VERSION, ft as analyzeShellCommand, gn as normalizeModelCatalogModelId, gr as extractErrorCode, gt as DEFAULT_SAFE_BINS, hn as mergeModelCatalogRowsByAuthority, ht as splitCommandChain, i as readConfigFileSnapshot, ir as formatXHighModelHint, it as setConfigValueAtPath, jn as ensureAuthProfileStore, jr as parseBooleanValue$1, kn as listProvidersWithStoredCredentials, kr as resolveCliName, kt as applyMergePatch, ln as resolveEnvApiKey, lr as DEFAULT_CONTEXT_TOKENS, lt as listWritableExplicitTrustedSafeBinDirs, mn as buildModelCatalogMergeKey, mr as getPackageManifestMetadata, mt as isWindowsPlatform, n as loadConfig, nr as lookupProviderManifestModelCapability, nt as getConfigValueAtPath, o as resolveConfigSnapshotHash, on as getCustomProviderApiKey, or as normalizeThinkLevel, ot as ensurePluginAllowlisted, pn as listCurrentModelCatalogRows, pt as buildEnforcedShellCommand, q as isPathWithinRoot, qn as normalizeSecretInput, r as parseConfigJson5, rr as formatThinkingLevels, rt as parseConfigPath, s as writeConfigFile, sn as requireApiKey, sr as resolveModelThinkingCapability, st as getTrustedSafeBinDirs, t as createConfigIO, tn as normalizeGoogleModelId, tr as listProviderBrandManifests, tt as unsetConfigOverride, un as resolveModelAuthMode, ur as DEFAULT_MODEL, ut as normalizeTrustedSafeBinDirs, vn as normalizeProviderCatalogRows, vt as resolveAllowlistCandidatePath, w as resolveIMessageRemoteAttachmentRoots, wn as markAuthProfileUsed, wt as unwrapKnownShellMultiplexerInvocation, x as isInboundPathAllowed, xn as getSoonestCooldownExpiry, xr as getShellPathFromLoginShell, xt as isDispatchWrapperExecutable, yt as resolveCommandResolutionFromArgv, zn as findNormalizedProviderValue$1, zt as buildConfiguredAllowlistKeys } from "./config-rySyVtKs.js";
7
+ import { $ as resetConfigOverrides, $t as resolveSubagentSpawnModelSelection, An as markAuthProfileGood, Ar as resolveCliName, At as isSafeExecutableValue, B as MODEL_APIS, Bn as normalizeProviderId$1, Bt as buildModelAliasIndex, C as resolveIMessageAttachmentRoots, Cn as markAuthProfileFailure, Cr as resolveShellEnvFallbackTimeoutMs, Ct as unwrapKnownDispatchWrapperInvocation, Dn as dedupeProfileIds, Dr as sanitizeHostExecEnv, Dt as normalizeSafeBinProfileFixtures, En as resolveApiKeyForProfile, Er as isDangerousHostInheritedEnvVarName, Et as SAFE_BIN_PROFILES, Fr as normalizePluginsConfig, G as isAvatarDataUrl, Gn as resolveAuthProfileDisplayLabel, Gt as normalizeModelRef$1, H as parseDurationMs, Hn as discoverFasedAgentPlugins, In as withFileLock, Ir as resolveEffectiveEnableState, It as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, J as isSupportedLocalAvatarExtension, Jt as resolveConfiguredModelRef, K as isAvatarHttpUrl, Kn as isPrivateNetworkBaseUrl, Kt as normalizeProviderId, Lr as resolveMemorySlotDecision, Mn as resolveAuthStorePathForDisplay, Mr as parseBooleanValue$1, Nn as resolveFasedAgentAgentDir, Nr as applyTestPluginDefaults, On as listProfilesForProvider, Or as resolveOwnerDisplaySetting, Ot as resolveSafeBinProfiles, Q as getConfigOverrides, Qn as isOpenAISignInCatalogModel, Qt as resolveReasoningDefault, Rt as buildAllowedModelSet, S as mergeInboundPathRoots, Sn as isProfileInCooldown, Sr as getShellPathFromLoginShell, St as isShellWrapperExecutable, T as normalizeScpRemoteHost, Tn as resolveProfilesUnavailableReason, Tt as splitShellArgs, Un as isPathInside, Ut as isCliProvider, V as getBlockedNetworkModeReason, Vn as loadPluginManifestRegistry, Vt as findNormalizedProviderValue, W as AVATAR_MAX_BYTES, Wn as safeStatSync, Wt as modelKey, Xn as splitTrailingAuthProfile, Yn as coerceSecretRef, Yt as resolveDefaultModelForAgent, Z as validateJsonSchemaValue, Zn as getProviderBrandManifestForRoute, Zt as resolveModelRefFromString, _n as normalizeModelCatalogProviderId, _r as extractErrorCode, _t as matchAllowlist, a as readConfigFileSnapshotForWrite, an as getApiKeyForModel, ar as formatXHighModelHint, at as unsetConfigValueAtPath, b as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, bn as resolveAuthProfileOrder, bt as extractShellWrapperInlineCommand, c as validateConfigObjectWithPlugins, cn as resolveApiKeyForProvider, cr as resolveModelThinkingCapability, ct as isTrustedSafeBinPath, dn as CURRENT_MODEL_PROVIDER_CATALOG, dr as DEFAULT_MODEL, dt as validateSafeBinArgv, en as resolveThinkingDefault, er as isStandardProviderCatalogEntry, et as setConfigOverride, fr as DEFAULT_PROVIDER, ft as analyzeShellCommand, gn as normalizeModelCatalogModelId, gt as DEFAULT_SAFE_BINS, hn as mergeModelCatalogRowsByAuthority, hr as getPackageManifestMetadata, ht as splitCommandChain, i as readConfigFileSnapshot, ir as formatThinkingLevels, it as setConfigValueAtPath, jn as ensureAuthProfileStore, jr as isTruthyEnvValue, kn as listProvidersWithStoredCredentials, kr as formatCliCommand, kt as applyMergePatch, ln as resolveEnvApiKey, lr as supportsXHighThinking, lt as listWritableExplicitTrustedSafeBinDirs, mn as buildModelCatalogMergeKey, mt as isWindowsPlatform, n as loadConfig, nr as lookupProviderManifestModelCapability, nt as getConfigValueAtPath, o as resolveConfigSnapshotHash, on as getCustomProviderApiKey, ot as ensurePluginAllowlisted, pn as listCurrentModelCatalogRows, pr as VERSION, pt as buildEnforcedShellCommand, q as isPathWithinRoot, qn as normalizeSecretInput, r as parseConfigJson5, rr as providerModelRecommendationRank, rt as parseConfigPath, s as writeConfigFile, sn as requireApiKey, sr as normalizeThinkLevel, st as getTrustedSafeBinDirs, t as createConfigIO, tn as normalizeGoogleModelId, tr as listProviderBrandManifests, tt as unsetConfigOverride, un as resolveModelAuthMode, ur as DEFAULT_CONTEXT_TOKENS, ut as normalizeTrustedSafeBinDirs, vn as normalizeProviderCatalogRows, vr as formatErrorMessage, vt as resolveAllowlistCandidatePath, w as resolveIMessageRemoteAttachmentRoots, wn as markAuthProfileUsed, wr as isDangerousHostEnvOverrideVarName, wt as unwrapKnownShellMultiplexerInvocation, x as isInboundPathAllowed, xn as getSoonestCooldownExpiry, xr as extractArchive, xt as isDispatchWrapperExecutable, yt as resolveCommandResolutionFromArgv, zn as findNormalizedProviderValue$1, zt as buildConfiguredAllowlistKeys } from "./config-CYDETqcF.js";
8
8
  import { A as openBoundaryFileSync, C as ensureAgentWorkspace, D as resolveFasedAgentPackageRootSync, E as resolveFasedAgentPackageRoot, G as normalizeHyphenSlug, H as resolveAgentModelPrimaryValue, K as normalizeStringEntries, P as resolvePathViaExistingAncestorSync, S as DEFAULT_USER_FILENAME, T as loadWorkspaceBootstrapFiles, U as toAgentModelListLike, V as resolveAgentModelFallbackValues, W as normalizeAtHashSlug, _ as DEFAULT_BOOTSTRAP_FILENAME, a as resolveAgentDir, b as DEFAULT_SOUL_FILENAME, c as resolveAgentSkillsFilter, d as resolveEffectiveModelFallbacks, f as resolveRunModelFallbacksOverride, g as DEFAULT_AGENT_WORKSPACE_DIR, h as DEFAULT_AGENTS_FILENAME, i as resolveAgentConfig, k as openBoundaryFile, l as resolveAgentWorkspaceDir, m as resolveSessionAgentIds, n as listAgentEntries, p as resolveSessionAgentId, q as normalizeStringEntriesLower, r as listAgentIds, s as resolveAgentModelFallbacksOverride, t as hasConfiguredModelFallbacks, u as resolveDefaultAgentId, v as DEFAULT_HEARTBEAT_FILENAME, w as filterBootstrapFilesForSession, x as DEFAULT_TOOLS_FILENAME, y as DEFAULT_IDENTITY_FILENAME } from "./agent-scope-BbgPlhtw.js";
9
9
  import { t as normalizeChatType } from "./chat-type-C0osVllE.js";
10
10
  import { n as resolveAccountEntry } from "./account-helpers-Bdfws46K.js";
@@ -13,7 +13,7 @@ import { a as resolveDiscordAccount, r as listEnabledDiscordAccounts, t as creat
13
13
  import { i as resolveSlackAccount } from "./accounts-CuqIKU8X.js";
14
14
  import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-BbFvCoKk.js";
15
15
  import { n as runExec, r as spawnWithFallback, t as runCommandWithTimeout } from "./exec-DQ8j4Fm3.js";
16
- import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs, t as hasAnyWhatsAppAuth } from "./accounts-DW9OS5Ll.js";
16
+ import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs, t as hasAnyWhatsAppAuth } from "./accounts-CeRNo5Ae.js";
17
17
  import { S as resolveChannelEntryMatchWithFallback, b as normalizeChannelSlug, y as buildChannelKeyCandidates } from "./allow-list-BYeKk0Sy.js";
18
18
  import { n as redactSensitiveText, r as redactToolDetail, t as getDefaultRedactPatterns } from "./redact-Bm8vu_ju.js";
19
19
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-CUK__1s1.js";
@@ -21,17 +21,17 @@ import { t as runTasksWithConcurrency } from "./run-with-concurrency-BsDJWzgM.js
21
21
  import { n as retryAsync } from "./retry-DstNBhDW.js";
22
22
  import { a as resolveSessionTranscriptPath, c as resolveSessionTranscriptsDirForAgent, i as resolveSessionFilePathOptions, l as resolveStorePath, n as resolveDefaultSessionStorePath, r as resolveSessionFilePath } from "./paths-CTZ2RS_E.js";
23
23
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-BJQWUdmU.js";
24
- import { l as resolveChannelDefaultAccountId } from "./pairing-message-CqYG12t-.js";
24
+ import { l as resolveChannelDefaultAccountId } from "./pairing-message-e4D4eBDA.js";
25
25
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-l_6RdoMw.js";
26
26
  import { t as normalizeRequestInitHeadersForFetch } from "./fetch-headers-my7hgV2G.js";
27
27
  import { a as isBlockedHostnameOrIp, t as SsrFBlockedError } from "./ssrf-BZG8Ztod.js";
28
28
  import { t as fetchWithSsrFGuard } from "./fetch-guard-BuYrl6q2.js";
29
29
  import { n as redactSensitiveUrlLikeString, t as redactSensitiveUrl } from "./redact-sensitive-url-dPvnFFsK.js";
30
- import { a as formatIMessageChatTarget, c as normalizeIMessageHandle, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, l as parseIMessageTarget, o as formatIMessageTargetForLog, r as createIMessageRpcClient, s as isAllowedIMessageSender, t as sendMessageIMessage } from "./send-D58yEeH4.js";
31
- import { A as resolveDefaultGroupPolicy, D as formatDocsLink, M as warnMissingProviderGroupPolicyFallbackOnce, b as setOnboardingChannelEnabled, c as parseOnboardingEntriesAllowingWildcard, f as promptParsedAllowFromForScopedChannel, h as resolveAccountIdForConfigure, j as resolveOpenProviderRuntimeGroupPolicy, k as resolveAllowlistProviderRuntimeGroupPolicy, l as patchChannelConfigForAccount, v as setChannelDmPolicyWithAllowFrom } from "./helpers-DgRMfCnT.js";
32
- import { A as resolveCronStorePath, D as formatLocationText, F as isSenderIdAllowed, I as mergeDmAllowFromSources, L as resolveGroupAllowFromSources, N as isVoiceCompatibleAudio, O as toLocationContext, P as firstDefined, c as buildTelegramGroupPeerId, j as saveCronStore, k as loadCronStore } from "./wsl-D5jDUlms.js";
33
- import { a as upsertChannelPairingRequest, c as getPairingAdapter, i as removeChannelAllowFromStoreEntry, l as listPairingChannels, n as readChannelAllowFromStore, o as readJsonFileWithFallback, s as writeJsonFileAtomically, t as addChannelAllowFromStoreEntry } from "./pairing-store-D-21Sphe.js";
34
- import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, o as chunkTextWithMode, p as chunkTextByBreakResolver, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-B2ffJ-LR.js";
30
+ import { a as formatIMessageChatTarget, c as normalizeIMessageHandle, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, l as parseIMessageTarget, o as formatIMessageTargetForLog, r as createIMessageRpcClient, s as isAllowedIMessageSender, t as sendMessageIMessage } from "./send-Cr-dj6S-.js";
31
+ import { A as resolveDefaultGroupPolicy, D as formatDocsLink, M as warnMissingProviderGroupPolicyFallbackOnce, b as setOnboardingChannelEnabled, c as parseOnboardingEntriesAllowingWildcard, f as promptParsedAllowFromForScopedChannel, h as resolveAccountIdForConfigure, j as resolveOpenProviderRuntimeGroupPolicy, k as resolveAllowlistProviderRuntimeGroupPolicy, l as patchChannelConfigForAccount, v as setChannelDmPolicyWithAllowFrom } from "./helpers-BuEwju6y.js";
32
+ import { A as resolveCronStorePath, D as formatLocationText, F as isSenderIdAllowed, I as mergeDmAllowFromSources, L as resolveGroupAllowFromSources, N as isVoiceCompatibleAudio, O as toLocationContext, P as firstDefined, c as buildTelegramGroupPeerId, j as saveCronStore, k as loadCronStore } from "./wsl-Biw7Mj39.js";
33
+ import { a as upsertChannelPairingRequest, c as getPairingAdapter, i as removeChannelAllowFromStoreEntry, l as listPairingChannels, n as readChannelAllowFromStore, o as readJsonFileWithFallback, s as writeJsonFileAtomically, t as addChannelAllowFromStoreEntry } from "./pairing-store-T3IGoGZg.js";
34
+ import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, o as chunkTextWithMode, p as chunkTextByBreakResolver, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-CD76Byie.js";
35
35
  import { c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-Bqzm6DC1.js";
36
36
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-BvtlOzVP.js";
37
37
  import { n as safeEqualSecret, o as createAsyncLock, s as readJsonFile$1 } from "./pairing-token-N_6Jbt1L.js";
@@ -40,39 +40,39 @@ import { a as logMessageProcessed, i as logLaneEnqueue, m as isDiagnosticsEnable
40
40
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-HO94DMou.js";
41
41
  import { t as redactIdentifier } from "./redact-identifier-Q3tkvxhm.js";
42
42
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-BDvvnlph.js";
43
- import { t as importOptionalRuntimeDependency } from "./optional-runtime-dependency-DEojVNfv.js";
44
- import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, u as getFileExtension, v as mediaKindFromMime } from "./image-ops-CcBfoMLW.js";
45
- import { $ as fetchSolanaRpc, A as enforceWalletDailyCap, At as resolveModel$3, B as resolveWalletUserRole, C as resolveFederationHandle, Ct as SESSION_LABEL_MAX_LENGTH, E as resolveScopedRpcUrlForWallet, H as assertValidSolanaAddress, I as upsertWalletPolicyConfig, J as resolveWalletRuntimeConfig, K as ensureWalletStateDir, L as validateWalletTxPolicy, N as resolveWalletRecurringTransferPolicy, P as resolveWalletRoleForId, Q as fetchSolanaNativeBalanceViaRpc, R as readWalletProviderRegistry, S as resolveFederationBaseUrl, St as errorShape, T as createWalletProviderAdapter, X as fetchSolanaFungibleMetadataViaRpc, Y as SOLANA_ASSET_CONSTANTS, Z as fetchSolanaMintInfoViaRpc, _ as validateSolanaSwapIntentPolicy, a as listTaskRecords, bt as validatePushTestParams, c as buildWalletProviderCapabilityMatrix, ct as callGateway, d as appendWalletAuditEntry, dt as randomIdempotencyKey, et as fetchSolanaTokenBalanceViaRpc, f as SOLANA_NATIVE_MINT, ft as resolveGatewayCredentialsFromConfig, g as validateSolanaSwapInputBalance, gt as publicKeyRawBase64UrlFromPem, h as inspectAndValidateSolanaSwapOrder, ht as loadOrCreateDeviceIdentity, i as createTaskRecord, it as findGitRoot, j as isWalletToolAllowed, jt as buildModelAliasLines, k as applyWalletPolicyConfig, l as providerSupportsChainOperation, lt as callGatewayLeastPrivilege, m as fetchJupiterSwapOrder, n as createOrExecuteWalletSend, nt as buildAttestation, o as markTaskTerminal, p as executeSolanaSwapApprovalPayload, pt as trimToUndefined$2, r as createWalletSendApprovalRequest, rt as resolveCommitHash, s as updateTaskRecord, tt as fetchSolanaWalletAssetsViaRpc, u as simulateWalletPolicy, ut as callGatewayScoped, v as inspectSerializedSolanaSwapTransaction, x as resolveAgentPublicOrigin, xt as ErrorCodes, yt as formatValidationErrors, z as resolveWalletSelection } from "./wallet-status-CyovJojz.js";
46
- import { i as discoverModels, r as discoverAuthStorage } from "./pi-model-discovery-B6gD1clF.js";
47
- import { A as fetchJson$1, B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as normalizeCdpWsUrl, D as assertBrowserNavigationResultAllowed, E as assertBrowserNavigationAllowed, F as stopChromeExtensionRelayServer, H as DEFAULT_FASED_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, O as withBrowserNavigationPolicy, P as ensureChromeExtensionRelayServer, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as InvalidBrowserNavigationUrlError, U as DEFAULT_FASED_BROWSER_PROFILE_NAME, V as DEFAULT_FASED_BROWSER_COLOR, _ as stopFasedAgentChrome, a as DEFAULT_TRACE_DIR, b as captureScreenshot, d as normalizeBrowserFormField, g as resolveFasedAgentUserDataDir, h as launchFasedAgentChrome, i as DEFAULT_DOWNLOAD_DIR, j as fetchOk, k as appendCdpPath, l as resolveWritablePathWithinRoot, m as isChromeReachable, o as DEFAULT_UPLOAD_DIR, p as isChromeCdpReady, r as loadReadability, s as resolveExistingPathsWithinRoot, t as loadLinkedom, v as resolveBrowserExecutableForPlatform, w as snapshotAria, x as createTargetViaCdp, y as resolveLsofCommandSync, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./runtime-dependency-yAWxH4El.js";
43
+ import { t as importOptionalRuntimeDependency } from "./optional-runtime-dependency-CbYjAC2b.js";
44
+ import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, u as getFileExtension, v as mediaKindFromMime } from "./image-ops-C66HPeAZ.js";
45
+ import { $ as fetchSolanaRpc, A as enforceWalletDailyCap, At as resolveModel$3, B as resolveWalletUserRole, C as resolveFederationHandle, Ct as SESSION_LABEL_MAX_LENGTH, E as resolveScopedRpcUrlForWallet, H as assertValidSolanaAddress, I as upsertWalletPolicyConfig, J as resolveWalletRuntimeConfig, K as ensureWalletStateDir, L as validateWalletTxPolicy, N as resolveWalletRecurringTransferPolicy, P as resolveWalletRoleForId, Q as fetchSolanaNativeBalanceViaRpc, R as readWalletProviderRegistry, S as resolveFederationBaseUrl, St as errorShape, T as createWalletProviderAdapter, X as fetchSolanaFungibleMetadataViaRpc, Y as SOLANA_ASSET_CONSTANTS, Z as fetchSolanaMintInfoViaRpc, _ as validateSolanaSwapIntentPolicy, a as listTaskRecords, bt as validatePushTestParams, c as buildWalletProviderCapabilityMatrix, ct as callGateway, d as appendWalletAuditEntry, dt as randomIdempotencyKey, et as fetchSolanaTokenBalanceViaRpc, f as SOLANA_NATIVE_MINT, ft as resolveGatewayCredentialsFromConfig, g as validateSolanaSwapInputBalance, gt as publicKeyRawBase64UrlFromPem, h as inspectAndValidateSolanaSwapOrder, ht as loadOrCreateDeviceIdentity, i as createTaskRecord, it as findGitRoot, j as isWalletToolAllowed, jt as buildModelAliasLines, k as applyWalletPolicyConfig, l as providerSupportsChainOperation, lt as callGatewayLeastPrivilege, m as fetchJupiterSwapOrder, n as createOrExecuteWalletSend, nt as buildAttestation, o as markTaskTerminal, p as executeSolanaSwapApprovalPayload, pt as trimToUndefined$2, r as createWalletSendApprovalRequest, rt as resolveCommitHash, s as updateTaskRecord, tt as fetchSolanaWalletAssetsViaRpc, u as simulateWalletPolicy, ut as callGatewayScoped, v as inspectSerializedSolanaSwapTransaction, x as resolveAgentPublicOrigin, xt as ErrorCodes, yt as formatValidationErrors, z as resolveWalletSelection } from "./wallet-status-f0HagNeO.js";
46
+ import { i as discoverModels, r as discoverAuthStorage } from "./pi-model-discovery-DvAG_Png.js";
47
+ import { A as fetchJson$1, B as DEFAULT_BROWSER_EVALUATE_ENABLED, C as normalizeCdpWsUrl, D as assertBrowserNavigationResultAllowed, E as assertBrowserNavigationAllowed, F as stopChromeExtensionRelayServer, H as DEFAULT_FASED_BROWSER_ENABLED, I as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, L as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, O as withBrowserNavigationPolicy, P as ensureChromeExtensionRelayServer, R as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as InvalidBrowserNavigationUrlError, U as DEFAULT_FASED_BROWSER_PROFILE_NAME, V as DEFAULT_FASED_BROWSER_COLOR, _ as stopFasedAgentChrome, a as DEFAULT_TRACE_DIR, b as captureScreenshot, d as normalizeBrowserFormField, g as resolveFasedAgentUserDataDir, h as launchFasedAgentChrome, i as DEFAULT_DOWNLOAD_DIR, j as fetchOk, k as appendCdpPath, l as resolveWritablePathWithinRoot, m as isChromeReachable, o as DEFAULT_UPLOAD_DIR, p as isChromeCdpReady, r as loadReadability, s as resolveExistingPathsWithinRoot, t as loadLinkedom, v as resolveBrowserExecutableForPlatform, w as snapshotAria, x as createTargetViaCdp, y as resolveLsofCommandSync, z as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME } from "./runtime-dependency-DvdRNMvs.js";
48
48
  import { a as isTrustedProxyAddress, n as isLoopbackAddress, o as resolveClientIp, r as isLoopbackHost, s as resolveForwardedClientIp } from "./ws-CocpWGhl.js";
49
49
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Dg3gU-MA.js";
50
50
  import { a as writeFileWithinRoot, n as openFileWithinRoot, r as readFileWithinRoot, t as SafeOpenError } from "./fs-safe-BG-VzVkL.js";
51
- import { n as resolveMarkdownTableMode } from "./markdown-tables-BOG5sSQQ.js";
52
- import { a as fetchRemoteMedia, d as getDefaultMediaLocalRoots, i as MediaFetchError, n as loadWebMedia, o as readResponseWithLimit, t as getDefaultLocalRoots, u as getAgentScopedMediaLocalRoots } from "./media-Bu-nJpPs.js";
53
- import { a as resolveSignalRpcContext, c as streamSignalEvents, l as markdownToSignalTextChunks, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DrAtUGLM.js";
54
- import { a as saveMediaBuffer, i as getMediaDir, n as ensureMediaDir } from "./outbound-attachment-ivAHpWnn.js";
51
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-DmQ7oXOm.js";
52
+ import { a as fetchRemoteMedia, d as getDefaultMediaLocalRoots, i as MediaFetchError, n as loadWebMedia, o as readResponseWithLimit, t as getDefaultLocalRoots, u as getAgentScopedMediaLocalRoots } from "./media-ByLQbEwJ.js";
53
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, l as markdownToSignalTextChunks, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-eTxqFFsw.js";
54
+ import { a as saveMediaBuffer, i as getMediaDir, n as ensureMediaDir } from "./outbound-attachment-DmZmUqFP.js";
55
55
  import { t as resolveFetch } from "./fetch-Cu-ahkie.js";
56
- import { B as isSessionBindingError, C as resolveThreadBindingMaxAgeMs$1, F as resolveThreadBindingIntroText, G as resolveSessionStorePathForAcp, I as resolveThreadBindingThreadName, K as upsertAcpSessionMeta, L as SYSTEM_MARK, N as formatThreadBindingDurationLabel, R as prefixSystemMessage, S as resolveThreadBindingMaxAgeExpiresAt, U as listAcpSessionEntries, W as readAcpSessionEntry, b as resolveThreadBindingIdleTimeoutMs$1, c as getThreadBindingManager, x as resolveThreadBindingInactivityExpiresAt, z as getSessionBindingService } from "./thread-bindings.state-Ha01nmrq.js";
56
+ import { B as isSessionBindingError, C as resolveThreadBindingMaxAgeMs$1, F as resolveThreadBindingIntroText, G as resolveSessionStorePathForAcp, I as resolveThreadBindingThreadName, K as upsertAcpSessionMeta, L as SYSTEM_MARK, N as formatThreadBindingDurationLabel, R as prefixSystemMessage, S as resolveThreadBindingMaxAgeExpiresAt, U as listAcpSessionEntries, W as readAcpSessionEntry, b as resolveThreadBindingIdleTimeoutMs$1, c as getThreadBindingManager, x as resolveThreadBindingInactivityExpiresAt, z as getSessionBindingService } from "./thread-bindings.state-C0stmvNk.js";
57
57
  import { t as resolveMemorySearchConfig } from "./memory-search-C3C0bD2H.js";
58
- import { i as executeWithApiKeyRotation, n as parseGeminiAuth, r as collectProviderApiKeysForExecution } from "./manager-Cqz30lA3.js";
58
+ import { i as executeWithApiKeyRotation, n as parseGeminiAuth, r as collectProviderApiKeysForExecution } from "./manager-Bvpq49BI.js";
59
59
  import { c as normalizeExtraMemoryPaths, s as listMemoryFiles } from "./internal-qo16nNU1.js";
60
60
  import { i as resolveQmdScopeDenial } from "./qmd-scope-D1sSG_Rx.js";
61
- import { _ as estimateBase64DecodedBytes, a as jsonResult, d as readStringParam, f as sanitizeContentBlocksImages, g as canonicalizeBase64, h as resolveImageSanitizationLimits, i as imageResultFromFile, l as readStringArrayParam, m as sanitizeToolResultImages, n as createActionGate, p as sanitizeImageBlocks, r as imageResult, s as readNumberParam, u as readStringOrNumberParam } from "./common-C4XrB73N.js";
62
- import { S as isCommandFlagEnabled, _ as normalizeElevatedLevel, a as listChatCommands, b as normalizeVerboseLevel, g as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as resolveNativeCommandName, o as listChatCommandsForConfig, u as normalizeCommandBody, v as normalizeReasoningLevel, w as isRestartEnabled, x as resolveResponseUsageMode, y as normalizeUsageDisplay } from "./commands-registry-BWb4NcfW.js";
63
- import { c as getSkillsSnapshotVersion, d as resolveSkillsPromptForRun, f as syncSkillsToWorkspace, h as sanitizeEnvVars, i as resolveSkillCommandInvocation, l as buildWorkspaceSkillSnapshot, m as applySkillEnvOverridesFromSnapshot, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as applySkillEnvOverrides, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as loadWorkspaceSkillEntries } from "./skill-commands-Q80wCyry.js";
61
+ import { _ as estimateBase64DecodedBytes, a as jsonResult, d as readStringParam, f as sanitizeContentBlocksImages, g as canonicalizeBase64, h as resolveImageSanitizationLimits, i as imageResultFromFile, l as readStringArrayParam, m as sanitizeToolResultImages, n as createActionGate, p as sanitizeImageBlocks, r as imageResult, s as readNumberParam, u as readStringOrNumberParam } from "./common-CWvfeiX0.js";
62
+ import { S as isCommandFlagEnabled, _ as normalizeElevatedLevel, a as listChatCommands, b as normalizeVerboseLevel, g as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as resolveNativeCommandName, o as listChatCommandsForConfig, u as normalizeCommandBody, v as normalizeReasoningLevel, w as isRestartEnabled, x as resolveResponseUsageMode, y as normalizeUsageDisplay } from "./commands-registry-DgS55tNj.js";
63
+ import { c as getSkillsSnapshotVersion, d as resolveSkillsPromptForRun, f as syncSkillsToWorkspace, h as sanitizeEnvVars, i as resolveSkillCommandInvocation, l as buildWorkspaceSkillSnapshot, m as applySkillEnvOverridesFromSnapshot, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as applySkillEnvOverrides, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as loadWorkspaceSkillEntries } from "./skill-commands-Rm5by9S8.js";
64
64
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BFnIdcqI.js";
65
- import { t as parseDiscordTarget } from "./targets-znKHngSk.js";
65
+ import { t as parseDiscordTarget } from "./targets-D6lUomJc.js";
66
66
  import { a as resolveSandboxedMediaSource, i as resolveSandboxPath, n as assertSandboxPath, r as resolveSandboxInputPath, t as assertMediaNotDataUrl } from "./sandbox-paths-lj7_EVuA.js";
67
67
  import { n as normalizePollInput } from "./polls-DQrR-qT3.js";
68
68
  import { n as missingTargetError, r as unknownTargetError, t as ambiguousTargetError } from "./target-errors-C_SVKoEv.js";
69
69
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-NAePk3eL.js";
70
70
  import { n as resolveUserTimeFormat, r as resolveUserTimezone, t as formatUserTime } from "./date-time-CE3Uer3C.js";
71
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-ekGNc6os.js";
72
- import { t as convertMarkdownTables } from "./tables-0mhUOh5v.js";
71
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DJN-SUSt.js";
72
+ import { t as convertMarkdownTables } from "./tables-DS5L7lCA.js";
73
73
  import { n as recordChannelActivity, t as getChannelActivity } from "./channel-activity-Cg1xRoc2.js";
74
74
  import { t as withTimeout$3 } from "./with-timeout-BYrRAYFV.js";
75
- import { t as getActiveWebListener } from "./active-listener-BZQWZPF7.js";
75
+ import { t as getActiveWebListener } from "./active-listener-BlIkS3iR.js";
76
76
  import { n as asString$4, r as collectIssuesForEnabledAccounts } from "./shared-clhhbWN3.js";
77
77
  import { createRequire } from "node:module";
78
78
  import * as path$1 from "node:path";
@@ -9642,27 +9642,27 @@ function createOutboundSendDepsFromCliSource(deps) {
9642
9642
  function createDefaultDeps() {
9643
9643
  return {
9644
9644
  sendMessageWhatsApp: async (...args) => {
9645
- const { sendMessageWhatsApp } = await import("./web-CJMfhGFY.js");
9645
+ const { sendMessageWhatsApp } = await import("./web-DRNJxHXA.js");
9646
9646
  return await sendMessageWhatsApp(...args);
9647
9647
  },
9648
9648
  sendMessageTelegram: async (...args) => {
9649
- const { sendMessageTelegram } = await import("./send-C7x6gzSl.js").then((n) => n.c);
9649
+ const { sendMessageTelegram } = await import("./send-BG3RWyil.js").then((n) => n.c);
9650
9650
  return await sendMessageTelegram(...args);
9651
9651
  },
9652
9652
  sendMessageDiscord: async (...args) => {
9653
- const { sendMessageDiscord } = await import("./send-CgyS75Av.js").then((n) => n.t);
9653
+ const { sendMessageDiscord } = await import("./send-2ITqny2W.js").then((n) => n.t);
9654
9654
  return await sendMessageDiscord(...args);
9655
9655
  },
9656
9656
  sendMessageSlack: async (...args) => {
9657
- const { sendMessageSlack } = await import("./send-D264hFVb.js").then((n) => n.n);
9657
+ const { sendMessageSlack } = await import("./send-BAz22RZr.js").then((n) => n.n);
9658
9658
  return await sendMessageSlack(...args);
9659
9659
  },
9660
9660
  sendMessageSignal: async (...args) => {
9661
- const { sendMessageSignal } = await import("./send-DrAtUGLM.js").then((n) => n.i);
9661
+ const { sendMessageSignal } = await import("./send-eTxqFFsw.js").then((n) => n.i);
9662
9662
  return await sendMessageSignal(...args);
9663
9663
  },
9664
9664
  sendMessageIMessage: async (...args) => {
9665
- const { sendMessageIMessage } = await import("./send-D58yEeH4.js").then((n) => n.n);
9665
+ const { sendMessageIMessage } = await import("./send-Cr-dj6S-.js").then((n) => n.n);
9666
9666
  return await sendMessageIMessage(...args);
9667
9667
  }
9668
9668
  };
@@ -11728,7 +11728,7 @@ async function getMemorySearchManager(params) {
11728
11728
  const wrapper = new FallbackMemoryManager({
11729
11729
  primary,
11730
11730
  fallbackFactory: async () => {
11731
- const { MemoryIndexManager } = await import("./manager-Cqz30lA3.js").then((n) => n.t);
11731
+ const { MemoryIndexManager } = await import("./manager-Bvpq49BI.js").then((n) => n.t);
11732
11732
  return await MemoryIndexManager.get(params);
11733
11733
  }
11734
11734
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -11741,7 +11741,7 @@ async function getMemorySearchManager(params) {
11741
11741
  }
11742
11742
  }
11743
11743
  try {
11744
- const { MemoryIndexManager } = await import("./manager-Cqz30lA3.js").then((n) => n.t);
11744
+ const { MemoryIndexManager } = await import("./manager-Bvpq49BI.js").then((n) => n.t);
11745
11745
  return { manager: await MemoryIndexManager.get(params) };
11746
11746
  } catch (err) {
11747
11747
  const message = err instanceof Error ? err.message : String(err);
@@ -43037,7 +43037,7 @@ function isModuleNotFoundError(err) {
43037
43037
  }
43038
43038
  async function loadPwAiModule(mode) {
43039
43039
  try {
43040
- return await import("./pw-ai-CMplwiwf.js");
43040
+ return await import("./pw-ai-D7eW43DL.js");
43041
43041
  } catch (err) {
43042
43042
  if (mode === "soft") return null;
43043
43043
  if (isModuleNotFoundError(err)) return null;
@@ -43431,11 +43431,11 @@ function createProfileContext(opts, profile) {
43431
43431
  const userDataDir = resolveFasedAgentUserDataDir(profile.name);
43432
43432
  const profileState = getProfileState();
43433
43433
  if (await isHttpReachable(300) && !profileState.running) try {
43434
- await (await import("./pw-ai-CMplwiwf.js")).closePlaywrightBrowserConnection();
43434
+ await (await import("./pw-ai-D7eW43DL.js")).closePlaywrightBrowserConnection();
43435
43435
  } catch {}
43436
43436
  if (profileState.running) await stopRunningBrowser();
43437
43437
  try {
43438
- await (await import("./pw-ai-CMplwiwf.js")).closePlaywrightBrowserConnection();
43438
+ await (await import("./pw-ai-D7eW43DL.js")).closePlaywrightBrowserConnection();
43439
43439
  } catch {}
43440
43440
  if (!fs.existsSync(userDataDir)) return {
43441
43441
  moved: false,
@@ -63626,7 +63626,7 @@ const handleSessionCommand = async (params, allowTextCommands) => {
63626
63626
  reply: { text: resolveSessionCommandUsage() }
63627
63627
  };
63628
63628
  }
63629
- const { setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey } = await import("./thread-bindings.lifecycle-ClzPBK70.js").then((n) => n.i);
63629
+ const { setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey } = await import("./thread-bindings.lifecycle-Ry6Vcgw3.js").then((n) => n.i);
63630
63630
  const updatedBindings = action === SESSION_ACTION_IDLE ? setThreadBindingIdleTimeoutBySessionKey({
63631
63631
  targetSessionKey: binding.targetSessionKey,
63632
63632
  accountId,
@@ -64852,7 +64852,7 @@ async function createModelSelectionState(params) {
64852
64852
  }
64853
64853
  }
64854
64854
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
64855
- const { ensureAuthProfileStore } = await import("./config-rySyVtKs.js").then((n) => n.yn);
64855
+ const { ensureAuthProfileStore } = await import("./config-CYDETqcF.js").then((n) => n.yn);
64856
64856
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
64857
64857
  const providerKey = normalizeProviderId(provider);
64858
64858
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -73795,7 +73795,7 @@ const discordMessageActions = {
73795
73795
  return null;
73796
73796
  },
73797
73797
  handleAction: async ({ action, params, cfg, accountId, requesterSenderId, toolContext, mediaLocalRoots }) => {
73798
- const { handleDiscordMessageAction } = await import("./handle-action-CGF-Qnp0.js");
73798
+ const { handleDiscordMessageAction } = await import("./handle-action-B75UVKxF.js");
73799
73799
  return await handleDiscordMessageAction({
73800
73800
  action,
73801
73801
  params,
@@ -74032,7 +74032,7 @@ const signalMessageActions = {
74032
74032
  //#region src/channels/plugins/actions/telegram.ts
74033
74033
  const providerId = "telegram";
74034
74034
  async function loadTelegramActionHandler() {
74035
- const { handleTelegramAction } = await import("./telegram-actions-GBYY8-x9.js");
74035
+ const { handleTelegramAction } = await import("./telegram-actions-MSFkDn0m.js");
74036
74036
  return handleTelegramAction;
74037
74037
  }
74038
74038
  function readTelegramSendParams(params) {
@@ -74202,7 +74202,7 @@ function createWhatsAppLoginTool() {
74202
74202
  force: Type.Optional(Type.Boolean())
74203
74203
  }),
74204
74204
  execute: async (_toolCallId, args) => {
74205
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-COaSAPY5.js");
74205
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DMQNEi9m.js");
74206
74206
  if ((args?.action ?? "start") === "wait") {
74207
74207
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
74208
74208
  return {
@@ -74301,6 +74301,10 @@ async function buildMemoryInventory(params) {
74301
74301
  const memoryDir = path.join(workspaceDir, "memory");
74302
74302
  const hookConfig = resolveHookConfig(cfg, "session-memory");
74303
74303
  const activePlugin = resolveActiveMemoryPlugin(cfg, providerStatus);
74304
+ const providerCustom = providerStatus?.custom;
74305
+ const searchMode = typeof providerCustom?.searchMode === "string" ? providerCustom.searchMode : void 0;
74306
+ const semanticReason = typeof providerCustom?.providerUnavailableReason === "string" ? providerCustom.providerUnavailableReason : providerStatus?.vector?.loadError;
74307
+ const semanticState = !providerStatus?.vector?.enabled ? "disabled" : providerStatus.vector.available === true ? "ready" : searchMode === "fts-only" && providerStatus.provider === "none" ? "not-configured" : "unavailable";
74304
74308
  const workspaceStatus = await summarizePath(workspaceDir, roots);
74305
74309
  const memoryRootSpecs = [
74306
74310
  {
@@ -74361,6 +74365,11 @@ async function buildMemoryInventory(params) {
74361
74365
  ...providerStatus?.fts ? { fts: providerStatus.fts } : {},
74362
74366
  ...providerStatus?.vector ? { vector: providerStatus.vector } : {},
74363
74367
  ...providerStatus?.fallback ? { fallback: providerStatus.fallback } : {},
74368
+ ...searchMode ? { searchMode } : {},
74369
+ ...providerStatus ? { semantic: {
74370
+ state: semanticState,
74371
+ ...semanticReason ? { reason: semanticReason } : {}
74372
+ } } : {},
74364
74373
  ...providerStatus?.dbPath ? { db: await summarizePath(providerStatus.dbPath, roots) } : {},
74365
74374
  ...providerStatus?.sources ? { sources: providerStatus.sources } : {},
74366
74375
  ...providerStatus?.sourceCounts ? { sourceCounts: providerStatus.sourceCounts } : {},
@@ -74422,11 +74431,17 @@ function validateMemoryInventory(inventory) {
74422
74431
  area: "backend",
74423
74432
  message: "The memory index is stale and needs a rebuild before recall is current."
74424
74433
  });
74425
- if (inventory.backend.vector?.enabled && inventory.backend.vector.available !== true) push({
74434
+ if (inventory.backend.semantic?.state === "unavailable") push({
74426
74435
  severity: "warn",
74427
74436
  code: "backend.semantic.unavailable",
74428
74437
  area: "backend",
74429
- message: inventory.backend.vector.loadError ?? "Semantic recall is configured but vector search is not available."
74438
+ message: inventory.backend.semantic.reason ?? "Semantic recall is configured but vector search is not available."
74439
+ });
74440
+ if (inventory.backend.semantic?.state === "not-configured") push({
74441
+ severity: "info",
74442
+ code: "backend.semantic.not-configured",
74443
+ area: "backend",
74444
+ message: "Keyword recall is available. Configure an embedding provider to add semantic recall."
74430
74445
  });
74431
74446
  if (inventory.backend.configured !== inventory.backend.active && inventory.backend.active) push({
74432
74447
  severity: "warn",
@@ -76513,7 +76528,7 @@ function buildPairingReply(params) {
76513
76528
 
76514
76529
  //#endregion
76515
76530
  //#region src/brand.ts
76516
- const FASED_PRODUCT_VERSION = "0.1.54";
76531
+ const FASED_PRODUCT_VERSION = "0.1.55";
76517
76532
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
76518
76533
 
76519
76534
  //#endregion
@@ -80392,7 +80407,7 @@ const handleWhatsAppActionLazy = async (...args) => {
80392
80407
  return handleWhatsAppAction(...args);
80393
80408
  };
80394
80409
  const auditDiscordChannelPermissionsLazy = async (...args) => {
80395
- const { auditDiscordChannelPermissions } = await import("./audit-BZk_6Buw.js").then((n) => n.t);
80410
+ const { auditDiscordChannelPermissions } = await import("./audit-Ppg6dR_b.js").then((n) => n.t);
80396
80411
  return auditDiscordChannelPermissions(...args);
80397
80412
  };
80398
80413
  const listDiscordDirectoryGroupsLiveLazy = async (...args) => {
@@ -80416,15 +80431,15 @@ const resolveDiscordUserAllowlistLazy = async (...args) => {
80416
80431
  return resolveDiscordUserAllowlist(...args);
80417
80432
  };
80418
80433
  const sendMessageDiscordLazy = async (...args) => {
80419
- const { sendMessageDiscord } = await import("./send-CgyS75Av.js").then((n) => n.t);
80434
+ const { sendMessageDiscord } = await import("./send-2ITqny2W.js").then((n) => n.t);
80420
80435
  return sendMessageDiscord(...args);
80421
80436
  };
80422
80437
  const sendPollDiscordLazy = async (...args) => {
80423
- const { sendPollDiscord } = await import("./send-CgyS75Av.js").then((n) => n.t);
80438
+ const { sendPollDiscord } = await import("./send-2ITqny2W.js").then((n) => n.t);
80424
80439
  return sendPollDiscord(...args);
80425
80440
  };
80426
80441
  const monitorDiscordProviderLazy = async (...args) => {
80427
- const { monitorDiscordProvider } = await import("./monitor-DL6oEVo8.js");
80442
+ const { monitorDiscordProvider } = await import("./monitor-S_7LrvSj.js");
80428
80443
  return monitorDiscordProvider(...args);
80429
80444
  };
80430
80445
  const listSlackDirectoryGroupsLiveLazy = async (...args) => {
@@ -80448,15 +80463,15 @@ const resolveSlackUserAllowlistLazy = async (...args) => {
80448
80463
  return resolveSlackUserAllowlist(...args);
80449
80464
  };
80450
80465
  const sendMessageSlackLazy = async (...args) => {
80451
- const { sendMessageSlack } = await import("./send-D264hFVb.js").then((n) => n.n);
80466
+ const { sendMessageSlack } = await import("./send-BAz22RZr.js").then((n) => n.n);
80452
80467
  return sendMessageSlack(...args);
80453
80468
  };
80454
80469
  const monitorSlackProviderLazy = async (...args) => {
80455
- const { monitorSlackProvider } = await import("./slack-C-I6q3NB.js");
80470
+ const { monitorSlackProvider } = await import("./slack-xvIVvyEM.js");
80456
80471
  return monitorSlackProvider(...args);
80457
80472
  };
80458
80473
  const handleSlackActionLazy = async (...args) => {
80459
- const { handleSlackAction } = await import("./slack-actions-dGE_t_Un.js");
80474
+ const { handleSlackAction } = await import("./slack-actions-BNIALJTA.js");
80460
80475
  return handleSlackAction(...args);
80461
80476
  };
80462
80477
  const probeTelegramLazy = async (...args) => {
@@ -80464,15 +80479,15 @@ const probeTelegramLazy = async (...args) => {
80464
80479
  return probeTelegram(...args);
80465
80480
  };
80466
80481
  const sendMessageTelegramLazy = async (...args) => {
80467
- const { sendMessageTelegram } = await import("./send-C7x6gzSl.js").then((n) => n.c);
80482
+ const { sendMessageTelegram } = await import("./send-BG3RWyil.js").then((n) => n.c);
80468
80483
  return sendMessageTelegram(...args);
80469
80484
  };
80470
80485
  const sendPollTelegramLazy = async (...args) => {
80471
- const { sendPollTelegram } = await import("./send-C7x6gzSl.js").then((n) => n.c);
80486
+ const { sendPollTelegram } = await import("./send-BG3RWyil.js").then((n) => n.c);
80472
80487
  return sendPollTelegram(...args);
80473
80488
  };
80474
80489
  const monitorTelegramProviderLazy = async (...args) => {
80475
- const { monitorTelegramProvider } = await import("./monitor-II_NIq3G.js");
80490
+ const { monitorTelegramProvider } = await import("./monitor-K_u6daGa.js");
80476
80491
  return monitorTelegramProvider(...args);
80477
80492
  };
80478
80493
  let webOutboundPromise = null;
@@ -80481,23 +80496,23 @@ let webLoginQrPromise = null;
80481
80496
  let webChannelPromise = null;
80482
80497
  let whatsappActionsPromise = null;
80483
80498
  function loadWebOutbound() {
80484
- webOutboundPromise ??= import("./outbound-mf2y6KuY.js").then((n) => n.t);
80499
+ webOutboundPromise ??= import("./outbound-BuDafBBI.js").then((n) => n.t);
80485
80500
  return webOutboundPromise;
80486
80501
  }
80487
80502
  function loadWebLogin() {
80488
- webLoginPromise ??= import("./login-DpDQyM7r.js").then((n) => n.n);
80503
+ webLoginPromise ??= import("./login-Amr2DpKU.js").then((n) => n.n);
80489
80504
  return webLoginPromise;
80490
80505
  }
80491
80506
  function loadWebLoginQr() {
80492
- webLoginQrPromise ??= import("./login-qr-COaSAPY5.js");
80507
+ webLoginQrPromise ??= import("./login-qr-DMQNEi9m.js");
80493
80508
  return webLoginQrPromise;
80494
80509
  }
80495
80510
  function loadWebChannel() {
80496
- webChannelPromise ??= import("./web-CJMfhGFY.js");
80511
+ webChannelPromise ??= import("./web-DRNJxHXA.js");
80497
80512
  return webChannelPromise;
80498
80513
  }
80499
80514
  function loadWhatsAppActions() {
80500
- whatsappActionsPromise ??= import("./whatsapp-actions-0ZbGo5ZV.js");
80515
+ whatsappActionsPromise ??= import("./whatsapp-actions-BDXZF2R5.js");
80501
80516
  return whatsappActionsPromise;
80502
80517
  }
80503
80518
  function createPluginRuntime(options = {}) {
@@ -83727,6 +83742,16 @@ function lookupRefreshedModelCapability(provider, model) {
83727
83742
 
83728
83743
  //#endregion
83729
83744
  //#region src/agents/model-metadata.ts
83745
+ function availabilitySourceForCatalogSource(source) {
83746
+ switch (source) {
83747
+ case "provider-api": return "provider-api";
83748
+ case "runtime": return "runtime-catalog";
83749
+ case "configured": return "configured";
83750
+ case "provider-index": return "provider-plugin";
83751
+ case "manifest": return "curated-recommendation";
83752
+ default: return "reviewed-catalog";
83753
+ }
83754
+ }
83730
83755
  const TOOL_CAPABLE_APIS = new Set([
83731
83756
  "anthropic-messages",
83732
83757
  "github-copilot",
@@ -83745,8 +83770,10 @@ const JSON_CAPABLE_APIS = new Set([
83745
83770
  const LOCAL_DYNAMIC_PROVIDERS = new Set([
83746
83771
  "ollama",
83747
83772
  "lmstudio",
83748
- "vllm"
83773
+ "vllm",
83774
+ "litellm"
83749
83775
  ]);
83776
+ const CURATED_CATALOG_REVIEWED_AT = "2026-07-12T00:00:00.000Z";
83750
83777
  function resolveProviderConfig$1(cfg, provider) {
83751
83778
  return cfg?.models?.providers?.[provider];
83752
83779
  }
@@ -83775,8 +83802,9 @@ function deriveModelMetadata(params) {
83775
83802
  ...manifestCapabilities,
83776
83803
  ...params.model.capabilities
83777
83804
  } : void 0;
83778
- const capabilityConfidence = capabilities || refreshed || manifestCapabilities ? "declared" : "unknown";
83779
- const shouldInferApiCapabilities = !(LOCAL_DYNAMIC_PROVIDERS.has(provider) && capabilityConfidence === "unknown");
83805
+ const capabilitySource = params.capabilitySource ?? (params.model.capabilities ? params.model.catalogSource === "configured" ? "configured" : "runtime" : refreshed ? refreshed.source === "catalog" || refreshed.source === "provider-api" ? "provider-api" : "official-docs" : manifestCapabilities ? "official-docs" : api && !LOCAL_DYNAMIC_PROVIDERS.has(provider) ? "inferred" : "unknown");
83806
+ const capabilityConfidence = capabilitySource === "provider-api" || capabilitySource === "official-docs" ? "verified" : capabilitySource === "runtime" || capabilitySource === "configured" ? "declared" : capabilitySource === "inferred" ? "inferred" : "unknown";
83807
+ const shouldInferApiCapabilities = !LOCAL_DYNAMIC_PROVIDERS.has(provider);
83780
83808
  const thinking = resolveModelThinkingCapability({
83781
83809
  provider,
83782
83810
  model: modelId,
@@ -83799,6 +83827,7 @@ function deriveModelMetadata(params) {
83799
83827
  label: params.model.name?.trim() || modelId,
83800
83828
  contextWindow: typeof refreshed?.contextWindow === "number" && refreshed.contextWindow > 0 ? refreshed.contextWindow : typeof params.model.contextWindow === "number" && params.model.contextWindow > 0 ? params.model.contextWindow : void 0,
83801
83829
  maxTokens: typeof refreshed?.maxTokens === "number" && refreshed.maxTokens > 0 ? refreshed.maxTokens : typeof params.model.maxTokens === "number" && params.model.maxTokens > 0 ? params.model.maxTokens : void 0,
83830
+ ...typeof api === "string" && api.trim() ? { apiRoute: api.trim() } : {},
83802
83831
  features,
83803
83832
  ...thinking ? {
83804
83833
  thinkingLevels: thinking.thinkingLevels,
@@ -83808,6 +83837,11 @@ function deriveModelMetadata(params) {
83808
83837
  } : {},
83809
83838
  streaming: capabilities?.streaming !== false,
83810
83839
  capabilityConfidence,
83840
+ capabilitySource,
83841
+ ...params.capabilityRetrievedAt ?? refreshed?.refreshedAt ?? (capabilitySource === "official-docs" ? CURATED_CATALOG_REVIEWED_AT : void 0) ? { capabilityRetrievedAt: params.capabilityRetrievedAt ?? refreshed?.refreshedAt ?? CURATED_CATALOG_REVIEWED_AT } : {},
83842
+ retrievedAt: refreshed?.refreshedAt ?? CURATED_CATALOG_REVIEWED_AT,
83843
+ availabilitySource: availabilitySourceForCatalogSource(params.model.catalogSource),
83844
+ authRoute: provider,
83811
83845
  authMode: resolveAuthMode({
83812
83846
  provider,
83813
83847
  providerConfig
@@ -83815,6 +83849,7 @@ function deriveModelMetadata(params) {
83815
83849
  privateNetwork,
83816
83850
  privateNetworkAllowed: privateNetwork ? providerConfig?.request?.allowPrivateNetwork === true : false,
83817
83851
  ...params.recommended ? { recommended: true } : {},
83852
+ ...providerModelRecommendationRank(provider, modelId) ? { recommendationRank: providerModelRecommendationRank(provider, modelId) } : {},
83818
83853
  ...params.default ? { default: true } : {}
83819
83854
  };
83820
83855
  }
@@ -84050,7 +84085,7 @@ const log$8 = createSubsystemLogger("model-catalog");
84050
84085
  let modelCatalogPromise = null;
84051
84086
  let hasLoggedModelCatalogError = false;
84052
84087
  let hasLoggedProviderCatalogError = false;
84053
- const defaultImportPiSdk = () => import("./pi-model-discovery-B6gD1clF.js").then((n) => n.a);
84088
+ const defaultImportPiSdk = () => import("./pi-model-discovery-DvAG_Png.js").then((n) => n.a);
84054
84089
  let importPiSdk = defaultImportPiSdk;
84055
84090
  const CODEX_PROVIDER = "openai-codex";
84056
84091
  const OPENAI_PROVIDER = "openai";
@@ -90862,7 +90897,7 @@ function dropThinkingBlocks(messages) {
90862
90897
  //#region src/agents/pi-embedded-runner/utils.ts
90863
90898
  function mapThinkingLevel(level) {
90864
90899
  if (!level) return "off";
90865
- return level;
90900
+ return level === "max" ? "xhigh" : level;
90866
90901
  }
90867
90902
  function describeUnknownError(error) {
90868
90903
  if (error instanceof Error) return error.message;
@@ -92204,6 +92239,28 @@ function createOpenAIResponsesContextManagementWrapper(baseStreamFn, extraParams
92204
92239
  });
92205
92240
  };
92206
92241
  }
92242
+ function createOpenAIReasoningEffortWrapper(baseStreamFn, reasoningEffort) {
92243
+ const underlying = baseStreamFn ?? streamSimple;
92244
+ return (model, context, options) => {
92245
+ const supportsReasoningEffort = model.api === "openai-codex-responses" || model.api === "openai-responses" && model.provider === "openai" && (model.baseUrl === void 0 || isDirectOpenAIBaseUrl(model.baseUrl));
92246
+ if (!reasoningEffort || !supportsReasoningEffort) return underlying(model, context, options);
92247
+ const originalOnPayload = options?.onPayload;
92248
+ return underlying(model, context, {
92249
+ ...options,
92250
+ onPayload: (payload) => {
92251
+ if (payload && typeof payload === "object") {
92252
+ const payloadObj = payload;
92253
+ const reasoning = payloadObj.reasoning;
92254
+ payloadObj.reasoning = {
92255
+ ...reasoning && typeof reasoning === "object" ? reasoning : {},
92256
+ effort: reasoningEffort === "off" ? "none" : reasoningEffort
92257
+ };
92258
+ }
92259
+ originalOnPayload?.(payload);
92260
+ }
92261
+ });
92262
+ };
92263
+ }
92207
92264
  function createCodexDefaultTransportWrapper(baseStreamFn) {
92208
92265
  const underlying = baseStreamFn ?? streamSimple;
92209
92266
  return (model, context, options) => underlying(model, context, {
@@ -92589,6 +92646,7 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
92589
92646
  }
92590
92647
  agent.streamFn = createGoogleThinkingPayloadWrapper(agent.streamFn, thinkingLevel);
92591
92648
  agent.streamFn = createOpenAIResponsesContextManagementWrapper(agent.streamFn, merged);
92649
+ agent.streamFn = createOpenAIReasoningEffortWrapper(agent.streamFn, thinkingLevel);
92592
92650
  }
92593
92651
 
92594
92652
  //#endregion
@@ -99660,6 +99718,10 @@ function formatUpdateOneLiner(update, opts = {}) {
99660
99718
  return `Update: ${parts.join(" · ")}`;
99661
99719
  }
99662
99720
 
99721
+ //#endregion
99722
+ //#region src/providers/runtime-model-catalog.ts
99723
+ const DISCOVERY_TTL_MS = 5 * 6e4;
99724
+
99663
99725
  //#endregion
99664
99726
  //#region src/gateway/server-model-catalog.ts
99665
99727
  function createGatewayModelCatalogCache() {
@@ -1,3 +1,3 @@
1
- import { _ as FasedAgentPluginApi } from "./types-DV5TNhMK.js";
1
+ import { _ as FasedAgentPluginApi } from "./types-DVTIpopt.js";
2
2
  import { a as listDevicePairing, i as approveDevicePairing, n as resolveTailnetHostWithRunner, r as resolveGatewayBindUrl, t as runPluginCommandWithTimeout } from "./run-command-i_W6EFb1.js";
3
3
  export { type FasedAgentPluginApi, approveDevicePairing, listDevicePairing, resolveGatewayBindUrl, resolveTailnetHostWithRunner, runPluginCommandWithTimeout };
@@ -1,9 +1,9 @@
1
1
  import { n as DEFAULT_ACCOUNT_ID, r as normalizeAccountId } from "./session-key--_1zVBRB.js";
2
- import { At as FasedAgentConfig, F as ChannelAccountSnapshot, J as ChannelMessageActionAdapter, an as DiscordAccountConfig, it as ChannelStatusIssue, n as ChannelPlugin, r as ChannelOnboardingAdapter, u as ChannelMessageActionName, ut as getChatChannelMeta } from "./types.plugin-CvUiB3Kh.js";
3
- import { Bt as resolveDefaultGroupPolicy, Cn as readStringParam, Gt as listSlackDirectoryGroupsFromConfig, Jt as listTelegramDirectoryPeersFromConfig, Kt as listSlackDirectoryPeersFromConfig, Ut as listDiscordDirectoryGroupsFromConfig, Vt as resolveOpenProviderRuntimeGroupPolicy, Wt as listDiscordDirectoryPeersFromConfig, Xt as listWhatsAppDirectoryPeersFromConfig, Yt as listWhatsAppDirectoryGroupsFromConfig, Zt as collectDiscordAuditChannelIds, _ as FasedAgentPluginApi, qt as listTelegramDirectoryGroupsFromConfig, t as PluginRuntime, yn as createActionGate, zt as resolveAllowlistProviderRuntimeGroupPolicy } from "./types-DV5TNhMK.js";
4
- import { D as normalizeE164 } from "./types-BI2njxWJ.js";
5
- import { a as buildChannelConfigSchema, c as emptyPluginConfigSchema, i as setAccountEnabledInConfigSection, n as formatPairingApproveHint, o as applyAccountNameToChannelSection, r as deleteAccountFromConfigSection, s as migrateBaseNameToDefaultAccount, t as PAIRING_APPROVED_MESSAGE } from "./pairing-message-CvJ6Qa1Q.js";
6
- import { _ as buildTokenChannelStatusSummary, i as resolveDiscordGroupToolPolicy, r as resolveDiscordGroupRequireMention } from "./group-mentions-DLOOve8d.js";
2
+ import { At as FasedAgentConfig, F as ChannelAccountSnapshot, J as ChannelMessageActionAdapter, an as DiscordAccountConfig, it as ChannelStatusIssue, n as ChannelPlugin, r as ChannelOnboardingAdapter, u as ChannelMessageActionName, ut as getChatChannelMeta } from "./types.plugin-BiHPaDTF.js";
3
+ import { Bt as resolveDefaultGroupPolicy, Cn as readStringParam, Gt as listSlackDirectoryGroupsFromConfig, Jt as listTelegramDirectoryPeersFromConfig, Kt as listSlackDirectoryPeersFromConfig, Ut as listDiscordDirectoryGroupsFromConfig, Vt as resolveOpenProviderRuntimeGroupPolicy, Wt as listDiscordDirectoryPeersFromConfig, Xt as listWhatsAppDirectoryPeersFromConfig, Yt as listWhatsAppDirectoryGroupsFromConfig, Zt as collectDiscordAuditChannelIds, _ as FasedAgentPluginApi, qt as listTelegramDirectoryGroupsFromConfig, t as PluginRuntime, yn as createActionGate, zt as resolveAllowlistProviderRuntimeGroupPolicy } from "./types-DVTIpopt.js";
4
+ import { D as normalizeE164 } from "./types-DKvBJHfH.js";
5
+ import { a as buildChannelConfigSchema, c as emptyPluginConfigSchema, i as setAccountEnabledInConfigSection, n as formatPairingApproveHint, o as applyAccountNameToChannelSection, r as deleteAccountFromConfigSection, s as migrateBaseNameToDefaultAccount, t as PAIRING_APPROVED_MESSAGE } from "./pairing-message-D0-UWGFJ.js";
6
+ import { _ as buildTokenChannelStatusSummary, i as resolveDiscordGroupToolPolicy, r as resolveDiscordGroupRequireMention } from "./group-mentions-BxDgHCgj.js";
7
7
  import { t as DiscordConfigSchema } from "./zod-schema.providers-core-CIzCjXH9.js";
8
8
 
9
9
  //#region src/discord/accounts.d.ts