@fased/fased 0.1.48 → 0.1.51

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 (157) hide show
  1. package/dist/agents/auth-health.js +11 -5
  2. package/dist/agents/current-model-catalog.js +45 -0
  3. package/dist/agents/model-catalog-source.js +28 -3
  4. package/dist/agents/provider-id.js +1 -1
  5. package/dist/brand.js +1 -1
  6. package/dist/build-info.json +3 -3
  7. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  8. package/dist/cli/lightweight/gateway-runtime-probe.js +50 -0
  9. package/dist/cli/update-cli/update-command.js +120 -0
  10. package/dist/commands/doctor-state-integrity.js +25 -2
  11. package/dist/config/sessions/transcript.js +30 -16
  12. package/dist/config/sessions.js +2 -2
  13. package/dist/control-ui/assets/{app-CHqTx3P_.js → app-wJm5kuje.js} +1274 -1259
  14. package/dist/control-ui/assets/{chat-model-ref-BbrdMKjQ.js → chat-model-ref-Cs2TTOtF.js} +2 -2
  15. package/dist/control-ui/assets/{config-FFZLTSLS.js → config-CU5Zi8Dh.js} +2 -2
  16. package/dist/control-ui/assets/{index-CFHfNlLv.js → index-vTDTf5Zv.js} +3 -3
  17. package/dist/control-ui/assets/{mining-D_VAMFMY.js → mining-BdhMn18r.js} +3 -3
  18. package/dist/control-ui/assets/{providers-DqFL6WrJ.js → providers-C0DEXi8e.js} +14 -3
  19. package/dist/control-ui/index.html +1 -1
  20. package/dist/gateway/probe-payload.js +14 -0
  21. package/dist/gateway/probe.js +8 -4
  22. package/dist/gateway/protocol/schema/agents-models-skills.js +1 -0
  23. package/dist/gateway/protocol/schema/frames.js +5 -0
  24. package/dist/gateway/protocol/schema/snapshot.js +1 -0
  25. package/dist/gateway/server/ws-connection/message-handler.js +2 -1
  26. package/dist/gateway/server-http-lazy.js +2 -4
  27. package/dist/gateway/server-http.js +3 -4
  28. package/dist/gateway/server-methods/chat.js +4 -29
  29. package/dist/gateway/server-methods/models.js +3 -2
  30. package/dist/infra/system-presence.js +4 -2
  31. package/dist/light-update-precheck.js +1 -1
  32. package/dist/light-update-status.js +1 -1
  33. package/dist/memory/inventory.js +19 -0
  34. package/dist/plugin-sdk/{accounts-DI5226U8.js → accounts-BfdIB9Ud.js} +1 -1
  35. package/dist/plugin-sdk/{actions-CEj4gOU2.js → actions-DHN_x97P.js} +2 -2
  36. package/dist/plugin-sdk/{active-listener-Ss4UKXZb.js → active-listener-CIP_Ht8d.js} +1 -1
  37. package/dist/plugin-sdk/{audio-preflight-Cu4alGjb.js → audio-preflight-CKGhXtyV.js} +26 -26
  38. package/dist/plugin-sdk/{audit-BTskqjJ_.js → audit-Cmg38KPG.js} +1 -1
  39. package/dist/plugin-sdk/{channel-access-B1KciKmw.js → channel-access-JHDguu4T.js} +1 -1
  40. package/dist/plugin-sdk/{channel-access-configure-Y91FLOJc.js → channel-access-configure-B8mwKp-Z.js} +1 -1
  41. package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
  42. package/dist/plugin-sdk/channel-plugin-common.js +4 -4
  43. package/dist/plugin-sdk/{chunk-items-Q8HhMuSe.js → chunk-items-iKdlZyWZ.js} +1 -1
  44. package/dist/plugin-sdk/{chunk-CSUjIQSx.js → chunk-oJRyTNTL.js} +1 -1
  45. package/dist/plugin-sdk/command-status.js +26 -26
  46. package/dist/plugin-sdk/{commands-registry-DJ0pfCcY.js → commands-registry-Cjo7OjIf.js} +2 -2
  47. package/dist/plugin-sdk/{common-Cjm8psuW.js → common-Dx4sUa9f.js} +1 -1
  48. package/dist/plugin-sdk/{config-DutIeFge.js → config-DdS0zHiU.js} +80 -4
  49. package/dist/plugin-sdk/{config-schema-Cg6PYSHR.js → config-schema-BJQEjMPz.js} +2090 -523
  50. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  51. package/dist/plugin-sdk/discord.d.ts +4 -4
  52. package/dist/plugin-sdk/discord.js +19 -19
  53. package/dist/plugin-sdk/{handle-action-Dp2741iu.js → handle-action-wR0x9b0c.js} +13 -13
  54. package/dist/plugin-sdk/{helpers-BCZ9d3fl.js → helpers-DkauqZNP.js} +1 -1
  55. package/dist/plugin-sdk/{image-ops-B-QR_M9Z.js → image-ops-DmSjpAeh.js} +1 -1
  56. package/dist/plugin-sdk/index.d.ts +17 -17
  57. package/dist/plugin-sdk/index.js +28 -28
  58. package/dist/plugin-sdk/{login-BFvQxf9o.js → login-DB9LIbi8.js} +3 -3
  59. package/dist/plugin-sdk/{login-qr-CERTe_nD.js → login-qr-CDhMa-c7.js} +3 -3
  60. package/dist/plugin-sdk/{manager-Dhq3SXpO.js → manager-DGZsMQWR.js} +2 -2
  61. package/dist/plugin-sdk/{markdown-tables-B1Tx7c77.js → markdown-tables-BX7JXDUV.js} +1 -1
  62. package/dist/plugin-sdk/{media-BwsqooWC.js → media-DyzsScOp.js} +2 -2
  63. package/dist/plugin-sdk/{monitor-BYzN5Qr4.js → monitor-B91PZ2mD.js} +31 -31
  64. package/dist/plugin-sdk/{monitor-CJiacqtR.js → monitor-BH9rTJFq.js} +30 -30
  65. package/dist/plugin-sdk/{openresponses-http-VLSSqCZZ.js → openresponses-http-CmBLZ9bH.js} +26 -26
  66. package/dist/plugin-sdk/{optional-runtime-dependency-BEBP4VFJ.js → optional-runtime-dependency-DaMkPVe_.js} +1 -1
  67. package/dist/plugin-sdk/{outbound-BqWgaC5M.js → outbound-X-m2mBZn.js} +6 -6
  68. package/dist/plugin-sdk/{outbound-attachment-L1q40kiu.js → outbound-attachment-M0NCUSG-.js} +2 -2
  69. package/dist/plugin-sdk/{pairing-message-DWXHX-jt.d.ts → pairing-message-BaQiXKLE.d.ts} +1 -1
  70. package/dist/plugin-sdk/{pairing-message-CZBahREg.js → pairing-message-hnmpJlW2.js} +1 -1
  71. package/dist/plugin-sdk/{pairing-store-D7I1Qmiw.js → pairing-store-DyghUm9G.js} +2 -2
  72. package/dist/plugin-sdk/{pi-model-discovery-C5klknQZ.js → pi-model-discovery-ReorOh7W.js} +1 -1
  73. package/dist/plugin-sdk/{pi-model-discovery-runtime-DIEMhCZ5.js → pi-model-discovery-runtime-C-CHZo03.js} +2 -2
  74. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +1 -1
  75. package/dist/plugin-sdk/{pw-ai-Bv-q25gY.js → pw-ai-D_gli3_r.js} +3 -3
  76. package/dist/plugin-sdk/{replies-Bd9ktEkq.js → replies-Djyehmcu.js} +2 -2
  77. package/dist/plugin-sdk/{resolve-outbound-target-CCIyBb5H.js → resolve-outbound-target-Chznq8rS.js} +1 -1
  78. package/dist/plugin-sdk/{resolve-route-B7vZ3nKp.js → resolve-route-Ce08Fx-G.js} +1 -1
  79. package/dist/plugin-sdk/{retry-policy-ChC3G4lv.js → retry-policy-eS25atAo.js} +1 -1
  80. package/dist/plugin-sdk/{runtime-BLknHFGz.js → runtime-Cv3gX3Wc.js} +31 -18
  81. package/dist/plugin-sdk/{runtime-dependency-C5rJfC0u.js → runtime-dependency-p_iKbESf.js} +2 -2
  82. package/dist/plugin-sdk/sat-runtime.d.ts +2 -2
  83. package/dist/plugin-sdk/sat-runtime.js +5 -5
  84. package/dist/plugin-sdk/{send-Bd3Z-jAd.js → send-B3RAELvw.js} +6 -6
  85. package/dist/plugin-sdk/{send-Bmtz9ICm.js → send-BuPGxx3-.js} +8 -8
  86. package/dist/plugin-sdk/{send-mkyZzhCO.js → send-C-jaxZJG.js} +5 -5
  87. package/dist/plugin-sdk/{send-CUGEhiUa.js → send-CSob7dn9.js} +6 -6
  88. package/dist/plugin-sdk/{send-CMoWt-EX.js → send-CsLJsIvv.js} +7 -7
  89. package/dist/plugin-sdk/{session-D2zmelOL.js → session-DKJGakm1.js} +2 -2
  90. package/dist/plugin-sdk/{skill-commands-BybEjJ1_.js → skill-commands-BqpZG5nW.js} +2 -2
  91. package/dist/plugin-sdk/{slack-DogXvGG3.js → slack-CQqN9uBH.js} +38 -38
  92. package/dist/plugin-sdk/{slack-actions-uXb55QWW.js → slack-actions-DlbVH5SS.js} +11 -11
  93. package/dist/plugin-sdk/slack.d.ts +4 -4
  94. package/dist/plugin-sdk/slack.js +9 -9
  95. package/dist/plugin-sdk/{sticker-cache-BuPw7fTf.js → sticker-cache-CDyt2ZMh.js} +3 -3
  96. package/dist/plugin-sdk/{tables-CVDOT5dX.js → tables-Cij4iAXw.js} +1 -1
  97. package/dist/plugin-sdk/{targets-DskkhJAp.js → targets-VrYeAmeT.js} +1 -1
  98. package/dist/plugin-sdk/{telegram-actions-_KQPbjpI.js → telegram-actions-ZwUBOkwa.js} +29 -29
  99. package/dist/plugin-sdk/telegram.d.ts +4 -4
  100. package/dist/plugin-sdk/telegram.js +8 -8
  101. package/dist/plugin-sdk/{thread-bindings.lifecycle-CrhQXYEU.js → thread-bindings.lifecycle-BWIzwpPM.js} +3 -3
  102. package/dist/plugin-sdk/{thread-bindings.state-ssxdG7xV.js → thread-bindings.state-CpAQrGco.js} +2 -2
  103. package/dist/plugin-sdk/{tmp-fased-dir-Be1wBhVz.d.ts → tmp-fased-dir-DLba1ePP.d.ts} +1 -1
  104. package/dist/plugin-sdk/{types-CXLEOrJX.d.ts → types-CKR2Lvsa.d.ts} +1 -1
  105. package/dist/plugin-sdk/{types-CJGVZX6j.d.ts → types-NR-f-rw-.d.ts} +3 -3
  106. package/dist/plugin-sdk/{wallet-status-CQI89c_6.js → wallet-status-ClmXigGN.js} +10 -3
  107. package/dist/plugin-sdk/{web-C8DwA0eO.js → web-BK2j9z6c.js} +31 -31
  108. package/dist/plugin-sdk/{whatsapp-actions-DfvM-mlZ.js → whatsapp-actions-CaenMy79.js} +13 -13
  109. package/dist/plugin-sdk/{whatsapp-heartbeat-DyJasLDB.js → whatsapp-heartbeat-Cr9K5Sil.js} +2 -2
  110. package/dist/plugin-sdk/whatsapp.d.ts +11 -11
  111. package/dist/plugin-sdk/whatsapp.js +12 -12
  112. package/dist/plugin-sdk/{wsl-JwmI6Zu8.js → wsl-D_I-iL4U.js} +3 -3
  113. package/dist/plugin-sdk/{zod-schema.providers-core-BE_5DNhj.d.ts → zod-schema.providers-core-CIzCjXH9.d.ts} +71 -71
  114. package/dist/plugins/status-cache.js +1 -1
  115. package/dist/providers/refresh.js +1 -1
  116. package/dist/providers/refreshed-model-capabilities.js +1935 -406
  117. package/dist/providers/registry.js +14 -3
  118. package/dist/version.js +11 -1
  119. package/extensions/acpx/package.json +1 -1
  120. package/extensions/bluebubbles/package.json +1 -1
  121. package/extensions/copilot-proxy/package.json +1 -1
  122. package/extensions/diagnostics-otel/package.json +1 -1
  123. package/extensions/fased-federation/package.json +1 -1
  124. package/extensions/google-gemini-cli-auth/package.json +1 -1
  125. package/extensions/imessage/package.json +1 -1
  126. package/extensions/irc/package.json +1 -1
  127. package/extensions/line/package.json +1 -1
  128. package/extensions/llm-task/package.json +1 -1
  129. package/extensions/lobster/package.json +1 -1
  130. package/extensions/matrix/CHANGELOG.md +18 -0
  131. package/extensions/matrix/package.json +1 -1
  132. package/extensions/mattermost/package.json +1 -1
  133. package/extensions/memory-core/package.json +2 -2
  134. package/extensions/memory-lancedb/package.json +1 -1
  135. package/extensions/minimax-portal-auth/package.json +1 -1
  136. package/extensions/msteams/CHANGELOG.md +18 -0
  137. package/extensions/msteams/package.json +1 -1
  138. package/extensions/nextcloud-talk/package.json +1 -1
  139. package/extensions/nostr/CHANGELOG.md +18 -0
  140. package/extensions/nostr/package.json +1 -1
  141. package/extensions/open-prose/package.json +1 -1
  142. package/extensions/sat-mining/index.ts +121 -12
  143. package/extensions/sat-mining/package.json +1 -1
  144. package/extensions/sat-mining/src/runtime.ts +9 -3
  145. package/extensions/signal/package.json +1 -1
  146. package/extensions/synology-chat/package.json +1 -1
  147. package/extensions/tlon/package.json +1 -1
  148. package/extensions/twitch/CHANGELOG.md +18 -0
  149. package/extensions/twitch/package.json +1 -1
  150. package/extensions/voice-call/CHANGELOG.md +18 -0
  151. package/extensions/voice-call/package.json +1 -1
  152. package/extensions/zalo/CHANGELOG.md +18 -0
  153. package/extensions/zalo/package.json +1 -1
  154. package/extensions/zalouser/CHANGELOG.md +18 -0
  155. package/extensions/zalouser/package.json +1 -1
  156. package/package.json +1 -1
  157. package/scripts/start-managed.sh +35 -1
@@ -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-BLknHFGz.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-Cv3gX3Wc.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, $n as formatXHighModelHint, $t as resolveSubagentSpawnModelSelection, An as ensureAuthProfileStore, Ar as resolveEffectiveEnableState, At as isSafeExecutableValue, B as MODEL_APIS, Bn as loadPluginManifestRegistry, Bt as buildModelAliasIndex, C as resolveIMessageAttachmentRoots, Cn as markAuthProfileUsed, Cr as formatCliCommand, Ct as unwrapKnownDispatchWrapperInvocation, Dn as listProfilesForProvider, Dr as applyTestPluginDefaults, Dt as normalizeSafeBinProfileFixtures, En as dedupeProfileIds, Er as parseBooleanValue$1, Et as SAFE_BIN_PROFILES, Fn as withFileLock, G as isAvatarDataUrl, Gn as isPrivateNetworkBaseUrl, Gt as normalizeModelRef$1, H as parseDurationMs, Hn as isPathInside, It as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, J as isSupportedLocalAvatarExtension, Jn as coerceSecretRef, Jt as resolveConfiguredModelRef, K as isAvatarHttpUrl, Kn as normalizeSecretInput, Kt as normalizeProviderId, Mn as resolveFasedAgentAgentDir, On as listProvidersWithStoredCredentials, Ot as resolveSafeBinProfiles, Q as getConfigOverrides, Qn as formatThinkingLevels, Qt as resolveReasoningDefault, Rn as findNormalizedProviderValue$1, Rt as buildAllowedModelSet, S as mergeInboundPathRoots, Sn as markAuthProfileFailure, Sr as resolveOwnerDisplaySetting, St as isShellWrapperExecutable, T as normalizeScpRemoteHost, Tn as resolveApiKeyForProfile, Tr as isTruthyEnvValue, Tt as splitShellArgs, Un as safeStatSync, Ut as isCliProvider, V as getBlockedNetworkModeReason, Vn as discoverFasedAgentPlugins, Vt as findNormalizedProviderValue, W as AVATAR_MAX_BYTES, Wn as resolveAuthProfileDisplayLabel, Wt as modelKey, Xn as isOpenAISignInRuntimeModelSupported, Yn as splitTrailingAuthProfile, Yt as resolveDefaultModelForAgent, Z as validateJsonSchemaValue, Zn as lookupProviderManifestModelCapability, Zt as resolveModelRefFromString, _n as normalizeProviderCatalogRows, _r as resolveShellEnvFallbackTimeoutMs, _t as matchAllowlist, a as readConfigFileSnapshotForWrite, an as getApiKeyForModel, ar as DEFAULT_MODEL, at as unsetConfigValueAtPath, b as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, bn as getSoonestCooldownExpiry, br as isDangerousHostInheritedEnvVarName, bt as extractShellWrapperInlineCommand, c as validateConfigObjectWithPlugins, cn as resolveApiKeyForProvider, ct as isTrustedSafeBinPath, dn as CURRENT_MODEL_PROVIDER_CATALOG, dr as extractErrorCode, dt as validateSafeBinArgv, en as resolveThinkingDefault, et as setConfigOverride, fn as listCurrentModelCatalogRows, fr as formatErrorMessage, ft as analyzeShellCommand, gn as normalizeModelCatalogProviderId, gr as getShellPathFromLoginShell, gt as DEFAULT_SAFE_BINS, hn as normalizeModelCatalogModelId, hr as extractArchive, ht as splitCommandChain, i as readConfigFileSnapshot, ir as DEFAULT_CONTEXT_TOKENS, it as setConfigValueAtPath, jn as resolveAuthStorePathForDisplay, jr as resolveMemorySlotDecision, kn as markAuthProfileGood, kr as normalizePluginsConfig, kt as applyMergePatch, ln as resolveEnvApiKey, lr as getPackageManifestMetadata, lt as listWritableExplicitTrustedSafeBinDirs, mn as mergeModelCatalogRowsByAuthority, mt as isWindowsPlatform, n as loadConfig, nr as resolveModelThinkingCapability, nt as getConfigValueAtPath, o as resolveConfigSnapshotHash, on as getCustomProviderApiKey, or as DEFAULT_PROVIDER, ot as ensurePluginAllowlisted, pn as buildModelCatalogMergeKey, pt as buildEnforcedShellCommand, q as isPathWithinRoot, r as parseConfigJson5, rr as supportsXHighThinking, rt as parseConfigPath, s as writeConfigFile, sn as requireApiKey, sr as VERSION, st as getTrustedSafeBinDirs, t as createConfigIO, tn as normalizeGoogleModelId, tr as normalizeThinkLevel, tt as unsetConfigOverride, un as resolveModelAuthMode, ut as normalizeTrustedSafeBinDirs, vr as isDangerousHostEnvOverrideVarName, vt as resolveAllowlistCandidatePath, w as resolveIMessageRemoteAttachmentRoots, wn as resolveProfilesUnavailableReason, wr as resolveCliName, wt as unwrapKnownShellMultiplexerInvocation, x as isInboundPathAllowed, xn as isProfileInCooldown, xr as sanitizeHostExecEnv, xt as isDispatchWrapperExecutable, yn as resolveAuthProfileOrder, yt as resolveCommandResolutionFromArgv, zn as normalizeProviderId$1, zt as buildConfiguredAllowlistKeys } from "./config-DutIeFge.js";
7
+ import { $ as resetConfigOverrides, $n as lookupProviderManifestModelCapability, $t as resolveSubagentSpawnModelSelection, An as ensureAuthProfileStore, At as isSafeExecutableValue, B as MODEL_APIS, Bn as loadPluginManifestRegistry, Bt as buildModelAliasIndex, C as resolveIMessageAttachmentRoots, Cn as markAuthProfileUsed, Cr as sanitizeHostExecEnv, Ct as unwrapKnownDispatchWrapperInvocation, Dn as listProfilesForProvider, Dr as isTruthyEnvValue, Dt as normalizeSafeBinProfileFixtures, En as dedupeProfileIds, Er as resolveCliName, Et as SAFE_BIN_PROFILES, Fn as withFileLock, G as isAvatarDataUrl, Gn as isPrivateNetworkBaseUrl, Gt as normalizeModelRef$1, H as parseDurationMs, Hn as isPathInside, It as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, J as isSupportedLocalAvatarExtension, Jn as coerceSecretRef, Jt as resolveConfiguredModelRef, K as isAvatarHttpUrl, Kn as normalizeSecretInput, Kt as normalizeProviderId, Mn as resolveFasedAgentAgentDir, Mr as resolveEffectiveEnableState, Nr as resolveMemorySlotDecision, On as listProvidersWithStoredCredentials, Or as parseBooleanValue$1, Ot as resolveSafeBinProfiles, Q as getConfigOverrides, Qn as listProviderBrandManifests, Qt as resolveReasoningDefault, Rn as findNormalizedProviderValue$1, Rt as buildAllowedModelSet, S as mergeInboundPathRoots, Sn as markAuthProfileFailure, Sr as isDangerousHostInheritedEnvVarName, St as isShellWrapperExecutable, T as normalizeScpRemoteHost, Tn as resolveApiKeyForProfile, Tr as formatCliCommand, Tt as splitShellArgs, Un as safeStatSync, Ut as isCliProvider, V as getBlockedNetworkModeReason, Vn as discoverFasedAgentPlugins, Vt as findNormalizedProviderValue, W as AVATAR_MAX_BYTES, Wn as resolveAuthProfileDisplayLabel, Wt as modelKey, Xn as isOpenAISignInRuntimeModelSupported, Yn as splitTrailingAuthProfile, Yt as resolveDefaultModelForAgent, Z as validateJsonSchemaValue, Zn as isStandardProviderCatalogEntry, Zt as resolveModelRefFromString, _n as normalizeProviderCatalogRows, _r as extractArchive, _t as matchAllowlist, a as readConfigFileSnapshotForWrite, an as getApiKeyForModel, ar as supportsXHighThinking, at as unsetConfigValueAtPath, b as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, bn as getSoonestCooldownExpiry, br as isDangerousHostEnvOverrideVarName, bt as extractShellWrapperInlineCommand, c as validateConfigObjectWithPlugins, cn as resolveApiKeyForProvider, cr as DEFAULT_PROVIDER, ct as isTrustedSafeBinPath, dn as CURRENT_MODEL_PROVIDER_CATALOG, dr as getPackageManifestMetadata, dt as validateSafeBinArgv, en as resolveThinkingDefault, er as formatThinkingLevels, et as setConfigOverride, fn as listCurrentModelCatalogRows, ft as analyzeShellCommand, gn as normalizeModelCatalogProviderId, gt as DEFAULT_SAFE_BINS, hn as normalizeModelCatalogModelId, ht as splitCommandChain, i as readConfigFileSnapshot, ir as resolveModelThinkingCapability, it as setConfigValueAtPath, jn as resolveAuthStorePathForDisplay, jr as normalizePluginsConfig, kn as markAuthProfileGood, kr as applyTestPluginDefaults, kt as applyMergePatch, ln as resolveEnvApiKey, lr as VERSION, lt as listWritableExplicitTrustedSafeBinDirs, mn as mergeModelCatalogRowsByAuthority, mr as formatErrorMessage, mt as isWindowsPlatform, n as loadConfig, nt as getConfigValueAtPath, o as resolveConfigSnapshotHash, on as getCustomProviderApiKey, or as DEFAULT_CONTEXT_TOKENS, ot as ensurePluginAllowlisted, pn as buildModelCatalogMergeKey, pr as extractErrorCode, pt as buildEnforcedShellCommand, q as isPathWithinRoot, r as parseConfigJson5, rr as normalizeThinkLevel, rt as parseConfigPath, s as writeConfigFile, sn as requireApiKey, sr as DEFAULT_MODEL, st as getTrustedSafeBinDirs, t as createConfigIO, tn as normalizeGoogleModelId, tr as formatXHighModelHint, tt as unsetConfigOverride, un as resolveModelAuthMode, ut as normalizeTrustedSafeBinDirs, vr as getShellPathFromLoginShell, vt as resolveAllowlistCandidatePath, w as resolveIMessageRemoteAttachmentRoots, wn as resolveProfilesUnavailableReason, wr as resolveOwnerDisplaySetting, wt as unwrapKnownShellMultiplexerInvocation, x as isInboundPathAllowed, xn as isProfileInCooldown, xt as isDispatchWrapperExecutable, yn as resolveAuthProfileOrder, yr as resolveShellEnvFallbackTimeoutMs, yt as resolveCommandResolutionFromArgv, zn as normalizeProviderId$1, zt as buildConfiguredAllowlistKeys } from "./config-DdS0zHiU.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-DI5226U8.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-BfdIB9Ud.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-CZBahREg.js";
24
+ import { l as resolveChannelDefaultAccountId } from "./pairing-message-hnmpJlW2.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-CUGEhiUa.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-BCZ9d3fl.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-JwmI6Zu8.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-D7I1Qmiw.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-CSUjIQSx.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-CSob7dn9.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-DkauqZNP.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-D_I-iL4U.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-DyghUm9G.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-oJRyTNTL.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-BEBP4VFJ.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-B-QR_M9Z.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-CQI89c_6.js";
46
- import { i as discoverModels, r as discoverAuthStorage } from "./pi-model-discovery-C5klknQZ.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-C5rJfC0u.js";
43
+ import { t as importOptionalRuntimeDependency } from "./optional-runtime-dependency-DaMkPVe_.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-DmSjpAeh.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-ClmXigGN.js";
46
+ import { i as discoverModels, r as discoverAuthStorage } from "./pi-model-discovery-ReorOh7W.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-p_iKbESf.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-B1Tx7c77.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-BwsqooWC.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-Bd3Z-jAd.js";
54
- import { a as saveMediaBuffer, i as getMediaDir, n as ensureMediaDir } from "./outbound-attachment-L1q40kiu.js";
51
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BX7JXDUV.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-DyzsScOp.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-B3RAELvw.js";
54
+ import { a as saveMediaBuffer, i as getMediaDir, n as ensureMediaDir } from "./outbound-attachment-M0NCUSG-.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-ssxdG7xV.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-CpAQrGco.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-Dhq3SXpO.js";
58
+ import { i as executeWithApiKeyRotation, n as parseGeminiAuth, r as collectProviderApiKeysForExecution } from "./manager-DGZsMQWR.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-Cjm8psuW.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-DJ0pfCcY.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-BybEjJ1_.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-Dx4sUa9f.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-Cjo7OjIf.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-BqpZG5nW.js";
64
64
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BFnIdcqI.js";
65
- import { t as parseDiscordTarget } from "./targets-DskkhJAp.js";
65
+ import { t as parseDiscordTarget } from "./targets-VrYeAmeT.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-B7vZ3nKp.js";
72
- import { t as convertMarkdownTables } from "./tables-CVDOT5dX.js";
71
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Ce08Fx-G.js";
72
+ import { t as convertMarkdownTables } from "./tables-Cij4iAXw.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-Ss4UKXZb.js";
75
+ import { t as getActiveWebListener } from "./active-listener-CIP_Ht8d.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-C8DwA0eO.js");
9645
+ const { sendMessageWhatsApp } = await import("./web-BK2j9z6c.js");
9646
9646
  return await sendMessageWhatsApp(...args);
9647
9647
  },
9648
9648
  sendMessageTelegram: async (...args) => {
9649
- const { sendMessageTelegram } = await import("./send-CMoWt-EX.js").then((n) => n.c);
9649
+ const { sendMessageTelegram } = await import("./send-CsLJsIvv.js").then((n) => n.c);
9650
9650
  return await sendMessageTelegram(...args);
9651
9651
  },
9652
9652
  sendMessageDiscord: async (...args) => {
9653
- const { sendMessageDiscord } = await import("./send-Bmtz9ICm.js").then((n) => n.t);
9653
+ const { sendMessageDiscord } = await import("./send-BuPGxx3-.js").then((n) => n.t);
9654
9654
  return await sendMessageDiscord(...args);
9655
9655
  },
9656
9656
  sendMessageSlack: async (...args) => {
9657
- const { sendMessageSlack } = await import("./send-mkyZzhCO.js").then((n) => n.n);
9657
+ const { sendMessageSlack } = await import("./send-C-jaxZJG.js").then((n) => n.n);
9658
9658
  return await sendMessageSlack(...args);
9659
9659
  },
9660
9660
  sendMessageSignal: async (...args) => {
9661
- const { sendMessageSignal } = await import("./send-Bd3Z-jAd.js").then((n) => n.i);
9661
+ const { sendMessageSignal } = await import("./send-B3RAELvw.js").then((n) => n.i);
9662
9662
  return await sendMessageSignal(...args);
9663
9663
  },
9664
9664
  sendMessageIMessage: async (...args) => {
9665
- const { sendMessageIMessage } = await import("./send-CUGEhiUa.js").then((n) => n.n);
9665
+ const { sendMessageIMessage } = await import("./send-CSob7dn9.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-Dhq3SXpO.js").then((n) => n.t);
11731
+ const { MemoryIndexManager } = await import("./manager-DGZsMQWR.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-Dhq3SXpO.js").then((n) => n.t);
11744
+ const { MemoryIndexManager } = await import("./manager-DGZsMQWR.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);
@@ -43029,7 +43029,7 @@ function isModuleNotFoundError(err) {
43029
43029
  }
43030
43030
  async function loadPwAiModule(mode) {
43031
43031
  try {
43032
- return await import("./pw-ai-Bv-q25gY.js");
43032
+ return await import("./pw-ai-D_gli3_r.js");
43033
43033
  } catch (err) {
43034
43034
  if (mode === "soft") return null;
43035
43035
  if (isModuleNotFoundError(err)) return null;
@@ -43423,11 +43423,11 @@ function createProfileContext(opts, profile) {
43423
43423
  const userDataDir = resolveFasedAgentUserDataDir(profile.name);
43424
43424
  const profileState = getProfileState();
43425
43425
  if (await isHttpReachable(300) && !profileState.running) try {
43426
- await (await import("./pw-ai-Bv-q25gY.js")).closePlaywrightBrowserConnection();
43426
+ await (await import("./pw-ai-D_gli3_r.js")).closePlaywrightBrowserConnection();
43427
43427
  } catch {}
43428
43428
  if (profileState.running) await stopRunningBrowser();
43429
43429
  try {
43430
- await (await import("./pw-ai-Bv-q25gY.js")).closePlaywrightBrowserConnection();
43430
+ await (await import("./pw-ai-D_gli3_r.js")).closePlaywrightBrowserConnection();
43431
43431
  } catch {}
43432
43432
  if (!fs.existsSync(userDataDir)) return {
43433
43433
  moved: false,
@@ -63618,7 +63618,7 @@ const handleSessionCommand = async (params, allowTextCommands) => {
63618
63618
  reply: { text: resolveSessionCommandUsage() }
63619
63619
  };
63620
63620
  }
63621
- const { setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey } = await import("./thread-bindings.lifecycle-CrhQXYEU.js").then((n) => n.i);
63621
+ const { setThreadBindingIdleTimeoutBySessionKey, setThreadBindingMaxAgeBySessionKey } = await import("./thread-bindings.lifecycle-BWIzwpPM.js").then((n) => n.i);
63622
63622
  const updatedBindings = action === SESSION_ACTION_IDLE ? setThreadBindingIdleTimeoutBySessionKey({
63623
63623
  targetSessionKey: binding.targetSessionKey,
63624
63624
  accountId,
@@ -64844,7 +64844,7 @@ async function createModelSelectionState(params) {
64844
64844
  }
64845
64845
  }
64846
64846
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
64847
- const { ensureAuthProfileStore } = await import("./config-DutIeFge.js").then((n) => n.vn);
64847
+ const { ensureAuthProfileStore } = await import("./config-DdS0zHiU.js").then((n) => n.vn);
64848
64848
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
64849
64849
  const providerKey = normalizeProviderId(provider);
64850
64850
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -73787,7 +73787,7 @@ const discordMessageActions = {
73787
73787
  return null;
73788
73788
  },
73789
73789
  handleAction: async ({ action, params, cfg, accountId, requesterSenderId, toolContext, mediaLocalRoots }) => {
73790
- const { handleDiscordMessageAction } = await import("./handle-action-Dp2741iu.js");
73790
+ const { handleDiscordMessageAction } = await import("./handle-action-wR0x9b0c.js");
73791
73791
  return await handleDiscordMessageAction({
73792
73792
  action,
73793
73793
  params,
@@ -74024,7 +74024,7 @@ const signalMessageActions = {
74024
74024
  //#region src/channels/plugins/actions/telegram.ts
74025
74025
  const providerId = "telegram";
74026
74026
  async function loadTelegramActionHandler() {
74027
- const { handleTelegramAction } = await import("./telegram-actions-_KQPbjpI.js");
74027
+ const { handleTelegramAction } = await import("./telegram-actions-ZwUBOkwa.js");
74028
74028
  return handleTelegramAction;
74029
74029
  }
74030
74030
  function readTelegramSendParams(params) {
@@ -74194,7 +74194,7 @@ function createWhatsAppLoginTool() {
74194
74194
  force: Type.Optional(Type.Boolean())
74195
74195
  }),
74196
74196
  execute: async (_toolCallId, args) => {
74197
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CERTe_nD.js");
74197
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CDhMa-c7.js");
74198
74198
  if ((args?.action ?? "start") === "wait") {
74199
74199
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
74200
74200
  return {
@@ -74350,6 +74350,9 @@ async function buildMemoryInventory(params) {
74350
74350
  ...typeof providerStatus?.files === "number" ? { files: providerStatus.files } : {},
74351
74351
  ...typeof providerStatus?.chunks === "number" ? { chunks: providerStatus.chunks } : {},
74352
74352
  ...typeof providerStatus?.dirty === "boolean" ? { dirty: providerStatus.dirty } : {},
74353
+ ...providerStatus?.fts ? { fts: providerStatus.fts } : {},
74354
+ ...providerStatus?.vector ? { vector: providerStatus.vector } : {},
74355
+ ...providerStatus?.fallback ? { fallback: providerStatus.fallback } : {},
74353
74356
  ...providerStatus?.dbPath ? { db: await summarizePath(providerStatus.dbPath, roots) } : {},
74354
74357
  ...providerStatus?.sources ? { sources: providerStatus.sources } : {},
74355
74358
  ...providerStatus?.sourceCounts ? { sourceCounts: providerStatus.sourceCounts } : {},
@@ -74405,6 +74408,18 @@ function validateMemoryInventory(inventory) {
74405
74408
  area: "backend",
74406
74409
  message: inventory.backend.error
74407
74410
  });
74411
+ if (inventory.backend.dirty) push({
74412
+ severity: "warn",
74413
+ code: "backend.index.dirty",
74414
+ area: "backend",
74415
+ message: "The memory index is stale and needs a rebuild before recall is current."
74416
+ });
74417
+ if (inventory.backend.vector?.enabled && inventory.backend.vector.available !== true) push({
74418
+ severity: "warn",
74419
+ code: "backend.semantic.unavailable",
74420
+ area: "backend",
74421
+ message: inventory.backend.vector.loadError ?? "Semantic recall is configured but vector search is not available."
74422
+ });
74408
74423
  if (inventory.backend.configured !== inventory.backend.active && inventory.backend.active) push({
74409
74424
  severity: "warn",
74410
74425
  code: "backend.active.differs",
@@ -76490,7 +76505,7 @@ function buildPairingReply(params) {
76490
76505
 
76491
76506
  //#endregion
76492
76507
  //#region src/brand.ts
76493
- const FASED_PRODUCT_VERSION = "0.1.48";
76508
+ const FASED_PRODUCT_VERSION = "0.1.51";
76494
76509
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
76495
76510
 
76496
76511
  //#endregion
@@ -80369,7 +80384,7 @@ const handleWhatsAppActionLazy = async (...args) => {
80369
80384
  return handleWhatsAppAction(...args);
80370
80385
  };
80371
80386
  const auditDiscordChannelPermissionsLazy = async (...args) => {
80372
- const { auditDiscordChannelPermissions } = await import("./audit-BTskqjJ_.js").then((n) => n.t);
80387
+ const { auditDiscordChannelPermissions } = await import("./audit-Cmg38KPG.js").then((n) => n.t);
80373
80388
  return auditDiscordChannelPermissions(...args);
80374
80389
  };
80375
80390
  const listDiscordDirectoryGroupsLiveLazy = async (...args) => {
@@ -80393,15 +80408,15 @@ const resolveDiscordUserAllowlistLazy = async (...args) => {
80393
80408
  return resolveDiscordUserAllowlist(...args);
80394
80409
  };
80395
80410
  const sendMessageDiscordLazy = async (...args) => {
80396
- const { sendMessageDiscord } = await import("./send-Bmtz9ICm.js").then((n) => n.t);
80411
+ const { sendMessageDiscord } = await import("./send-BuPGxx3-.js").then((n) => n.t);
80397
80412
  return sendMessageDiscord(...args);
80398
80413
  };
80399
80414
  const sendPollDiscordLazy = async (...args) => {
80400
- const { sendPollDiscord } = await import("./send-Bmtz9ICm.js").then((n) => n.t);
80415
+ const { sendPollDiscord } = await import("./send-BuPGxx3-.js").then((n) => n.t);
80401
80416
  return sendPollDiscord(...args);
80402
80417
  };
80403
80418
  const monitorDiscordProviderLazy = async (...args) => {
80404
- const { monitorDiscordProvider } = await import("./monitor-BYzN5Qr4.js");
80419
+ const { monitorDiscordProvider } = await import("./monitor-B91PZ2mD.js");
80405
80420
  return monitorDiscordProvider(...args);
80406
80421
  };
80407
80422
  const listSlackDirectoryGroupsLiveLazy = async (...args) => {
@@ -80425,15 +80440,15 @@ const resolveSlackUserAllowlistLazy = async (...args) => {
80425
80440
  return resolveSlackUserAllowlist(...args);
80426
80441
  };
80427
80442
  const sendMessageSlackLazy = async (...args) => {
80428
- const { sendMessageSlack } = await import("./send-mkyZzhCO.js").then((n) => n.n);
80443
+ const { sendMessageSlack } = await import("./send-C-jaxZJG.js").then((n) => n.n);
80429
80444
  return sendMessageSlack(...args);
80430
80445
  };
80431
80446
  const monitorSlackProviderLazy = async (...args) => {
80432
- const { monitorSlackProvider } = await import("./slack-DogXvGG3.js");
80447
+ const { monitorSlackProvider } = await import("./slack-CQqN9uBH.js");
80433
80448
  return monitorSlackProvider(...args);
80434
80449
  };
80435
80450
  const handleSlackActionLazy = async (...args) => {
80436
- const { handleSlackAction } = await import("./slack-actions-uXb55QWW.js");
80451
+ const { handleSlackAction } = await import("./slack-actions-DlbVH5SS.js");
80437
80452
  return handleSlackAction(...args);
80438
80453
  };
80439
80454
  const probeTelegramLazy = async (...args) => {
@@ -80441,15 +80456,15 @@ const probeTelegramLazy = async (...args) => {
80441
80456
  return probeTelegram(...args);
80442
80457
  };
80443
80458
  const sendMessageTelegramLazy = async (...args) => {
80444
- const { sendMessageTelegram } = await import("./send-CMoWt-EX.js").then((n) => n.c);
80459
+ const { sendMessageTelegram } = await import("./send-CsLJsIvv.js").then((n) => n.c);
80445
80460
  return sendMessageTelegram(...args);
80446
80461
  };
80447
80462
  const sendPollTelegramLazy = async (...args) => {
80448
- const { sendPollTelegram } = await import("./send-CMoWt-EX.js").then((n) => n.c);
80463
+ const { sendPollTelegram } = await import("./send-CsLJsIvv.js").then((n) => n.c);
80449
80464
  return sendPollTelegram(...args);
80450
80465
  };
80451
80466
  const monitorTelegramProviderLazy = async (...args) => {
80452
- const { monitorTelegramProvider } = await import("./monitor-CJiacqtR.js");
80467
+ const { monitorTelegramProvider } = await import("./monitor-BH9rTJFq.js");
80453
80468
  return monitorTelegramProvider(...args);
80454
80469
  };
80455
80470
  let webOutboundPromise = null;
@@ -80458,23 +80473,23 @@ let webLoginQrPromise = null;
80458
80473
  let webChannelPromise = null;
80459
80474
  let whatsappActionsPromise = null;
80460
80475
  function loadWebOutbound() {
80461
- webOutboundPromise ??= import("./outbound-BqWgaC5M.js").then((n) => n.t);
80476
+ webOutboundPromise ??= import("./outbound-X-m2mBZn.js").then((n) => n.t);
80462
80477
  return webOutboundPromise;
80463
80478
  }
80464
80479
  function loadWebLogin() {
80465
- webLoginPromise ??= import("./login-BFvQxf9o.js").then((n) => n.n);
80480
+ webLoginPromise ??= import("./login-DB9LIbi8.js").then((n) => n.n);
80466
80481
  return webLoginPromise;
80467
80482
  }
80468
80483
  function loadWebLoginQr() {
80469
- webLoginQrPromise ??= import("./login-qr-CERTe_nD.js");
80484
+ webLoginQrPromise ??= import("./login-qr-CDhMa-c7.js");
80470
80485
  return webLoginQrPromise;
80471
80486
  }
80472
80487
  function loadWebChannel() {
80473
- webChannelPromise ??= import("./web-C8DwA0eO.js");
80488
+ webChannelPromise ??= import("./web-BK2j9z6c.js");
80474
80489
  return webChannelPromise;
80475
80490
  }
80476
80491
  function loadWhatsAppActions() {
80477
- whatsappActionsPromise ??= import("./whatsapp-actions-DfvM-mlZ.js");
80492
+ whatsappActionsPromise ??= import("./whatsapp-actions-CaenMy79.js");
80478
80493
  return whatsappActionsPromise;
80479
80494
  }
80480
80495
  function createPluginRuntime(options = {}) {
@@ -81390,785 +81405,2316 @@ async function augmentModelCatalogWithProviderPlugins(params) {
81390
81405
  //#endregion
81391
81406
  //#region src/providers/refreshed-model-capabilities.ts
81392
81407
  const REFRESHED_MODEL_CAPABILITIES = {
81393
- "huggingface/deepseek-ai/deepseek-r1": {
81394
- input: ["text"],
81395
- source: "catalog",
81396
- refreshedAt: "2026-05-11T01:59:12.464Z"
81397
- },
81398
- "huggingface/openai/gpt-oss-120b": {
81399
- input: ["text"],
81400
- source: "catalog",
81401
- refreshedAt: "2026-05-11T01:59:12.464Z"
81402
- },
81403
- "huggingface/qwen/qwen2.5-coder-32b-instruct": {
81404
- input: ["text"],
81405
- source: "catalog",
81406
- refreshedAt: "2026-05-11T01:59:12.464Z"
81407
- },
81408
- "huggingface/qwen/qwen3-coder-480b-a35b-instruct": {
81409
- input: ["text"],
81410
- source: "catalog",
81411
- refreshedAt: "2026-05-11T01:59:12.464Z"
81412
- },
81413
- "huggingface/zai-org/glm-4.5": {
81408
+ "chutes/deepseek-ai/deepseek-v3.2-tee": {
81414
81409
  input: ["text"],
81415
- source: "catalog",
81416
- refreshedAt: "2026-05-11T01:59:12.464Z"
81417
- },
81418
- "huggingface/zai-org/glm-4.5v": {
81419
- input: ["text", "image"],
81420
- source: "catalog",
81421
- refreshedAt: "2026-05-11T01:59:12.464Z"
81422
- },
81423
- "opencode/claude-haiku-4-5": {
81424
- input: ["text", "image"],
81425
- reasoning: true,
81426
- tools: true,
81427
- json: true,
81428
- contextWindow: 2e5,
81429
- maxTokens: 64e3,
81430
- source: "catalog",
81431
- refreshedAt: "2026-05-11T01:59:12.464Z"
81432
- },
81433
- "opencode/claude-opus-4-5": {
81434
- input: ["text", "image"],
81435
81410
  reasoning: true,
81436
- tools: true,
81437
- json: true,
81438
- contextWindow: 2e5,
81439
- maxTokens: 64e3,
81411
+ capabilities: {
81412
+ tools: true,
81413
+ json: true,
81414
+ thinkingLevels: [
81415
+ "off",
81416
+ "minimal",
81417
+ "low",
81418
+ "medium",
81419
+ "high"
81420
+ ],
81421
+ defaultThinkingLevel: "low",
81422
+ thinkingMode: "generic-reasoning",
81423
+ reasoningBudgetSupported: false
81424
+ },
81425
+ contextWindow: 131072,
81426
+ maxTokens: 65536,
81440
81427
  source: "catalog",
81441
- refreshedAt: "2026-05-11T01:59:12.464Z"
81428
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81442
81429
  },
81443
- "opencode/claude-opus-4-7": {
81430
+ "chutes/google/gemma-4-31b-turbo-tee": {
81444
81431
  input: ["text", "image"],
81445
81432
  reasoning: true,
81446
- tools: true,
81447
- json: true,
81448
- contextWindow: 1e6,
81449
- maxTokens: 128e3,
81433
+ capabilities: {
81434
+ tools: true,
81435
+ json: true,
81436
+ thinkingLevels: [
81437
+ "off",
81438
+ "minimal",
81439
+ "low",
81440
+ "medium",
81441
+ "high"
81442
+ ],
81443
+ defaultThinkingLevel: "low",
81444
+ thinkingMode: "google-thinking-budget",
81445
+ reasoningBudgetSupported: true
81446
+ },
81447
+ contextWindow: 131072,
81448
+ maxTokens: 65536,
81450
81449
  source: "catalog",
81451
- refreshedAt: "2026-05-11T01:59:12.464Z"
81450
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81452
81451
  },
81453
- "opencode/claude-opus-4-6": {
81452
+ "chutes/moonshotai/kimi-k2.6-tee": {
81454
81453
  input: ["text", "image"],
81455
81454
  reasoning: true,
81456
- tools: true,
81457
- json: true,
81458
- contextWindow: 1e6,
81459
- maxTokens: 128e3,
81455
+ capabilities: {
81456
+ tools: true,
81457
+ json: true,
81458
+ video: true,
81459
+ thinkingLevels: [
81460
+ "off",
81461
+ "minimal",
81462
+ "low",
81463
+ "medium",
81464
+ "high"
81465
+ ],
81466
+ defaultThinkingLevel: "low",
81467
+ thinkingMode: "moonshot-thinking",
81468
+ reasoningBudgetSupported: false
81469
+ },
81470
+ contextWindow: 262144,
81471
+ maxTokens: 65535,
81460
81472
  source: "catalog",
81461
- refreshedAt: "2026-05-11T01:59:12.464Z"
81473
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81462
81474
  },
81463
- "opencode/claude-sonnet-4-6": {
81464
- input: ["text", "image"],
81475
+ "chutes/qwen/qwen3-235b-a22b-thinking-2507-tee": {
81476
+ input: ["text"],
81465
81477
  reasoning: true,
81466
- tools: true,
81467
- json: true,
81468
- contextWindow: 1e6,
81469
- maxTokens: 128e3,
81478
+ capabilities: {
81479
+ tools: true,
81480
+ json: true,
81481
+ thinkingLevels: [
81482
+ "off",
81483
+ "minimal",
81484
+ "low",
81485
+ "medium",
81486
+ "high"
81487
+ ],
81488
+ defaultThinkingLevel: "low",
81489
+ thinkingMode: "qwen-thinking",
81490
+ reasoningBudgetSupported: true
81491
+ },
81492
+ contextWindow: 262144,
81493
+ maxTokens: 262144,
81470
81494
  source: "catalog",
81471
- refreshedAt: "2026-05-11T01:59:12.464Z"
81495
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81472
81496
  },
81473
- "opencode/claude-sonnet-4-5": {
81474
- input: ["text", "image"],
81497
+ "chutes/qwen/qwen3-32b-tee": {
81498
+ input: ["text"],
81475
81499
  reasoning: true,
81476
- tools: true,
81477
- json: true,
81478
- contextWindow: 1e6,
81479
- maxTokens: 64e3,
81500
+ capabilities: {
81501
+ tools: true,
81502
+ json: true,
81503
+ thinkingLevels: [
81504
+ "off",
81505
+ "minimal",
81506
+ "low",
81507
+ "medium",
81508
+ "high"
81509
+ ],
81510
+ defaultThinkingLevel: "low",
81511
+ thinkingMode: "qwen-thinking",
81512
+ reasoningBudgetSupported: true
81513
+ },
81514
+ contextWindow: 40960,
81515
+ maxTokens: 40960,
81480
81516
  source: "catalog",
81481
- refreshedAt: "2026-05-11T01:59:12.464Z"
81517
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81482
81518
  },
81483
- "opencode/gemini-3-flash": {
81519
+ "chutes/qwen/qwen3.5-397b-a17b-tee": {
81484
81520
  input: ["text", "image"],
81485
81521
  reasoning: true,
81486
- tools: true,
81487
- json: true,
81488
- contextWindow: 1048576,
81522
+ capabilities: {
81523
+ tools: true,
81524
+ json: true,
81525
+ thinkingLevels: [
81526
+ "off",
81527
+ "minimal",
81528
+ "low",
81529
+ "medium",
81530
+ "high"
81531
+ ],
81532
+ defaultThinkingLevel: "low",
81533
+ thinkingMode: "qwen-thinking",
81534
+ reasoningBudgetSupported: true
81535
+ },
81536
+ contextWindow: 262144,
81489
81537
  maxTokens: 65536,
81490
81538
  source: "catalog",
81491
- refreshedAt: "2026-05-11T01:59:12.464Z"
81539
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81492
81540
  },
81493
- "opencode/gemini-3.1-pro": {
81541
+ "chutes/qwen/qwen3.6-27b-tee": {
81494
81542
  input: ["text", "image"],
81495
81543
  reasoning: true,
81496
- tools: true,
81497
- json: true,
81498
- contextWindow: 1048576,
81544
+ capabilities: {
81545
+ tools: true,
81546
+ json: true,
81547
+ thinkingLevels: [
81548
+ "off",
81549
+ "minimal",
81550
+ "low",
81551
+ "medium",
81552
+ "high"
81553
+ ],
81554
+ defaultThinkingLevel: "low",
81555
+ thinkingMode: "qwen-thinking",
81556
+ reasoningBudgetSupported: true
81557
+ },
81558
+ contextWindow: 262144,
81499
81559
  maxTokens: 65536,
81500
81560
  source: "catalog",
81501
- refreshedAt: "2026-05-11T01:59:12.464Z"
81561
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81502
81562
  },
81503
- "opencode/glm-5.1": {
81563
+ "chutes/zai-org/glm-5-tee": {
81504
81564
  input: ["text"],
81505
81565
  reasoning: true,
81506
- tools: true,
81507
- json: true,
81508
- contextWindow: 204800,
81509
- maxTokens: 131072,
81510
- source: "catalog",
81511
- refreshedAt: "2026-05-11T01:59:12.464Z"
81512
- },
81513
- "opencode/gpt-5.2": {
81514
- input: ["text", "image"],
81515
- reasoning: true,
81516
- tools: true,
81517
- json: true,
81518
- contextWindow: 4e5,
81519
- maxTokens: 128e3,
81520
- source: "catalog",
81521
- refreshedAt: "2026-05-11T01:59:12.464Z"
81522
- },
81523
- "opencode/gpt-5.2-codex": {
81524
- input: ["text", "image"],
81525
- reasoning: true,
81526
- tools: true,
81527
- json: true,
81528
- contextWindow: 4e5,
81529
- maxTokens: 128e3,
81530
- source: "catalog",
81531
- refreshedAt: "2026-05-11T01:59:12.464Z"
81532
- },
81533
- "opencode/gpt-5.3-codex": {
81534
- input: ["text", "image"],
81535
- reasoning: true,
81536
- tools: true,
81537
- json: true,
81538
- contextWindow: 4e5,
81539
- maxTokens: 128e3,
81540
- source: "catalog",
81541
- refreshedAt: "2026-05-11T01:59:12.464Z"
81542
- },
81543
- "opencode/gpt-5.3-codex-spark": {
81544
- input: ["text", "image"],
81545
- reasoning: true,
81546
- tools: true,
81547
- json: true,
81548
- contextWindow: 4e5,
81549
- maxTokens: 128e3,
81550
- source: "catalog",
81551
- refreshedAt: "2026-05-11T01:59:12.464Z"
81552
- },
81553
- "opencode/gpt-5.4": {
81554
- input: ["text", "image"],
81555
- reasoning: true,
81556
- tools: true,
81557
- json: true,
81558
- contextWindow: 4e5,
81559
- maxTokens: 128e3,
81560
- source: "catalog",
81561
- refreshedAt: "2026-05-11T01:59:12.464Z"
81562
- },
81563
- "opencode/gpt-5.4-mini": {
81564
- input: ["text", "image"],
81565
- reasoning: true,
81566
- tools: true,
81567
- json: true,
81568
- contextWindow: 4e5,
81569
- maxTokens: 128e3,
81570
- source: "catalog",
81571
- refreshedAt: "2026-05-11T01:59:12.464Z"
81572
- },
81573
- "opencode/gpt-5.4-nano": {
81574
- input: ["text", "image"],
81575
- reasoning: true,
81576
- tools: true,
81577
- json: true,
81578
- contextWindow: 4e5,
81579
- maxTokens: 128e3,
81580
- source: "catalog",
81581
- refreshedAt: "2026-05-11T01:59:12.464Z"
81582
- },
81583
- "opencode/gpt-5.4-pro": {
81584
- input: ["text", "image"],
81585
- reasoning: true,
81586
- tools: true,
81587
- json: true,
81588
- contextWindow: 4e5,
81589
- maxTokens: 128e3,
81566
+ capabilities: {
81567
+ tools: true,
81568
+ json: true,
81569
+ thinkingLevels: ["off", "low"],
81570
+ defaultThinkingLevel: "low",
81571
+ thinkingMode: "zai-binary",
81572
+ reasoningBudgetSupported: false
81573
+ },
81574
+ contextWindow: 202752,
81575
+ maxTokens: 65535,
81590
81576
  source: "catalog",
81591
- refreshedAt: "2026-05-11T01:59:12.464Z"
81577
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81592
81578
  },
81593
- "opencode/gpt-5.5": {
81594
- input: ["text", "image"],
81579
+ "chutes/zai-org/glm-5.1-tee": {
81580
+ input: ["text"],
81595
81581
  reasoning: true,
81596
- tools: true,
81597
- json: true,
81598
- contextWindow: 4e5,
81599
- maxTokens: 128e3,
81582
+ capabilities: {
81583
+ tools: true,
81584
+ json: true,
81585
+ thinkingLevels: ["off", "low"],
81586
+ defaultThinkingLevel: "low",
81587
+ thinkingMode: "zai-binary",
81588
+ reasoningBudgetSupported: false
81589
+ },
81590
+ contextWindow: 202752,
81591
+ maxTokens: 65535,
81600
81592
  source: "catalog",
81601
- refreshedAt: "2026-05-11T01:59:12.464Z"
81593
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81602
81594
  },
81603
- "opencode/gpt-5.5-pro": {
81604
- input: ["text", "image"],
81595
+ "chutes/zai-org/glm-5.2-tee": {
81596
+ input: ["text"],
81605
81597
  reasoning: true,
81606
- tools: true,
81607
- json: true,
81608
- contextWindow: 4e5,
81609
- maxTokens: 128e3,
81598
+ capabilities: {
81599
+ tools: true,
81600
+ json: true,
81601
+ thinkingLevels: ["off", "low"],
81602
+ defaultThinkingLevel: "low",
81603
+ thinkingMode: "zai-binary",
81604
+ reasoningBudgetSupported: false
81605
+ },
81606
+ contextWindow: 1048576,
81607
+ maxTokens: 65535,
81610
81608
  source: "catalog",
81611
- refreshedAt: "2026-05-11T01:59:12.464Z"
81609
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81612
81610
  },
81613
- "opencode/kimi-k2.6": {
81614
- input: ["text", "image"],
81615
- reasoning: true,
81616
- tools: true,
81617
- json: true,
81618
- contextWindow: 262144,
81619
- maxTokens: 65536,
81611
+ "huggingface/deepseek-ai/deepseek-r1": {
81612
+ input: ["text"],
81613
+ capabilities: {
81614
+ tools: true,
81615
+ json: true
81616
+ },
81617
+ contextWindow: 64e3,
81620
81618
  source: "catalog",
81621
- refreshedAt: "2026-05-11T01:59:12.464Z"
81619
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81622
81620
  },
81623
- "opencode/minimax-m2.7": {
81621
+ "huggingface/deepseek-ai/deepseek-v3.2": {
81624
81622
  input: ["text"],
81625
- reasoning: true,
81626
- tools: true,
81627
- json: true,
81628
- contextWindow: 262144,
81629
- maxTokens: 65536,
81623
+ capabilities: {
81624
+ tools: true,
81625
+ json: true
81626
+ },
81627
+ contextWindow: 163840,
81630
81628
  source: "catalog",
81631
- refreshedAt: "2026-05-11T01:59:12.464Z"
81629
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81632
81630
  },
81633
- "opencode/qwen3.6-plus": {
81634
- input: ["text", "image"],
81635
- reasoning: true,
81636
- tools: true,
81637
- json: true,
81638
- contextWindow: 262144,
81639
- maxTokens: 65536,
81631
+ "huggingface/deepseek-ai/deepseek-v4-flash": {
81632
+ input: ["text"],
81633
+ capabilities: {
81634
+ tools: true,
81635
+ json: true
81636
+ },
81637
+ contextWindow: 1048576,
81640
81638
  source: "catalog",
81641
- refreshedAt: "2026-05-11T01:59:12.464Z"
81639
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81642
81640
  },
81643
- "openrouter/anthropic/claude-haiku-4.5": {
81644
- input: ["text", "image"],
81645
- reasoning: true,
81641
+ "huggingface/deepseek-ai/deepseek-v4-pro": {
81642
+ input: ["text"],
81646
81643
  capabilities: {
81647
81644
  tools: true,
81648
81645
  json: true
81649
81646
  },
81650
- contextWindow: 2e5,
81651
- maxTokens: 64e3,
81647
+ contextWindow: 1048576,
81652
81648
  source: "catalog",
81653
- refreshedAt: "2026-05-11T01:59:12.464Z"
81649
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81654
81650
  },
81655
- "openrouter/anthropic/claude-opus-4.7": {
81651
+ "huggingface/google/gemma-3n-e4b-it": {
81656
81652
  input: ["text", "image"],
81657
- reasoning: true,
81658
81653
  capabilities: {
81659
- tools: true,
81654
+ tools: false,
81660
81655
  json: true
81661
81656
  },
81662
- contextWindow: 1e6,
81663
- maxTokens: 128e3,
81657
+ contextWindow: 32768,
81664
81658
  source: "catalog",
81665
- refreshedAt: "2026-05-11T01:59:12.464Z"
81659
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81666
81660
  },
81667
- "openrouter/anthropic/claude-sonnet-4.6": {
81661
+ "huggingface/google/gemma-4-26b-a4b-it": {
81668
81662
  input: ["text", "image"],
81669
- reasoning: true,
81670
81663
  capabilities: {
81671
81664
  tools: true,
81672
81665
  json: true
81673
81666
  },
81674
- contextWindow: 1e6,
81675
- maxTokens: 128e3,
81667
+ contextWindow: 262144,
81676
81668
  source: "catalog",
81677
- refreshedAt: "2026-05-11T01:59:12.464Z"
81669
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81678
81670
  },
81679
- "openrouter/google/gemini-3.1-flash-lite": {
81671
+ "huggingface/google/gemma-4-31b-it": {
81680
81672
  input: ["text", "image"],
81681
- reasoning: true,
81682
81673
  capabilities: {
81683
81674
  tools: true,
81684
81675
  json: true
81685
81676
  },
81686
- contextWindow: 1048576,
81687
- maxTokens: 65536,
81677
+ contextWindow: 262144,
81688
81678
  source: "catalog",
81689
- refreshedAt: "2026-05-11T01:59:12.464Z"
81679
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81690
81680
  },
81691
- "openrouter/google/gemini-3.1-pro-preview": {
81692
- input: ["text", "image"],
81693
- reasoning: true,
81681
+ "huggingface/inclusionai/ling-2.6-1t": {
81682
+ input: ["text"],
81694
81683
  capabilities: {
81695
81684
  tools: true,
81696
81685
  json: true
81697
81686
  },
81698
- contextWindow: 1048576,
81699
- maxTokens: 65536,
81687
+ contextWindow: 262144,
81700
81688
  source: "catalog",
81701
- refreshedAt: "2026-05-11T01:59:12.464Z"
81689
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81702
81690
  },
81703
- "openrouter/minimax/minimax-m2.7": {
81691
+ "huggingface/meta-llama/llama-3.3-70b-instruct": {
81704
81692
  input: ["text"],
81705
- reasoning: true,
81706
81693
  capabilities: {
81707
81694
  tools: true,
81708
81695
  json: true
81709
81696
  },
81710
- contextWindow: 196608,
81711
- maxTokens: 131072,
81697
+ contextWindow: 131072,
81712
81698
  source: "catalog",
81713
- refreshedAt: "2026-05-11T01:59:12.464Z"
81699
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81714
81700
  },
81715
- "openrouter/mistralai/mistral-medium-3-5": {
81716
- input: ["text", "image"],
81717
- reasoning: true,
81701
+ "huggingface/minimaxai/minimax-m2.7": {
81702
+ input: ["text"],
81718
81703
  capabilities: {
81719
81704
  tools: true,
81720
81705
  json: true
81721
81706
  },
81722
- contextWindow: 262144,
81707
+ contextWindow: 204800,
81723
81708
  source: "catalog",
81724
- refreshedAt: "2026-05-11T01:59:12.464Z"
81709
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81725
81710
  },
81726
- "openrouter/moonshotai/kimi-k2.6": {
81711
+ "huggingface/moonshotai/kimi-k2.6": {
81727
81712
  input: ["text", "image"],
81728
- reasoning: true,
81729
81713
  capabilities: {
81730
81714
  tools: true,
81731
81715
  json: true
81732
81716
  },
81733
81717
  contextWindow: 262144,
81734
- maxTokens: 16384,
81735
81718
  source: "catalog",
81736
- refreshedAt: "2026-05-11T01:59:12.464Z"
81719
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81737
81720
  },
81738
- "openrouter/openai/gpt-5-codex": {
81739
- input: ["text", "image"],
81740
- reasoning: true,
81721
+ "huggingface/openai/gpt-oss-120b": {
81722
+ input: ["text"],
81741
81723
  capabilities: {
81742
81724
  tools: true,
81743
81725
  json: true
81744
81726
  },
81745
- contextWindow: 4e5,
81746
- maxTokens: 128e3,
81727
+ contextWindow: 131072,
81747
81728
  source: "catalog",
81748
- refreshedAt: "2026-05-11T01:59:12.464Z"
81729
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81749
81730
  },
81750
- "openrouter/openai/gpt-5.4": {
81751
- input: ["text", "image"],
81752
- reasoning: true,
81731
+ "huggingface/openai/gpt-oss-20b": {
81732
+ input: ["text"],
81753
81733
  capabilities: {
81754
81734
  tools: true,
81755
81735
  json: true
81756
81736
  },
81757
- contextWindow: 105e4,
81758
- maxTokens: 128e3,
81737
+ contextWindow: 131072,
81759
81738
  source: "catalog",
81760
- refreshedAt: "2026-05-11T01:59:12.464Z"
81739
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81761
81740
  },
81762
- "openrouter/openai/gpt-5.4-mini": {
81763
- input: ["text", "image"],
81764
- reasoning: true,
81741
+ "huggingface/qwen/qwen3-235b-a22b-instruct-2507": {
81742
+ input: ["text"],
81765
81743
  capabilities: {
81766
81744
  tools: true,
81767
81745
  json: true
81768
81746
  },
81769
- contextWindow: 4e5,
81770
- maxTokens: 128e3,
81747
+ contextWindow: 262144,
81771
81748
  source: "catalog",
81772
- refreshedAt: "2026-05-11T01:59:12.464Z"
81749
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81773
81750
  },
81774
- "openrouter/openai/gpt-5.4-nano": {
81775
- input: ["text", "image"],
81776
- reasoning: true,
81751
+ "huggingface/qwen/qwen3-coder-480b-a35b-instruct": {
81752
+ input: ["text"],
81777
81753
  capabilities: {
81778
81754
  tools: true,
81779
- json: true
81755
+ json: true,
81756
+ thinkingLevels: [
81757
+ "off",
81758
+ "minimal",
81759
+ "low",
81760
+ "medium",
81761
+ "high"
81762
+ ],
81763
+ defaultThinkingLevel: "low",
81764
+ thinkingMode: "qwen-thinking",
81765
+ reasoningBudgetSupported: true
81780
81766
  },
81781
- contextWindow: 4e5,
81782
- maxTokens: 128e3,
81767
+ contextWindow: 262144,
81783
81768
  source: "catalog",
81784
- refreshedAt: "2026-05-11T01:59:12.464Z"
81769
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81785
81770
  },
81786
- "openrouter/openai/gpt-5.4-pro": {
81787
- input: ["text", "image"],
81788
- reasoning: true,
81771
+ "huggingface/qwen/qwen3-coder-next": {
81772
+ input: ["text"],
81789
81773
  capabilities: {
81790
81774
  tools: true,
81791
- json: true
81775
+ json: false,
81776
+ thinkingLevels: [
81777
+ "off",
81778
+ "minimal",
81779
+ "low",
81780
+ "medium",
81781
+ "high"
81782
+ ],
81783
+ defaultThinkingLevel: "low",
81784
+ thinkingMode: "qwen-thinking",
81785
+ reasoningBudgetSupported: true
81792
81786
  },
81793
- contextWindow: 105e4,
81794
- maxTokens: 128e3,
81787
+ contextWindow: 262144,
81795
81788
  source: "catalog",
81796
- refreshedAt: "2026-05-11T01:59:12.464Z"
81789
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81797
81790
  },
81798
- "openrouter/openai/gpt-5.5": {
81791
+ "huggingface/qwen/qwen3-vl-235b-a22b-instruct": {
81799
81792
  input: ["text", "image"],
81800
- reasoning: true,
81801
81793
  capabilities: {
81802
81794
  tools: true,
81803
- json: true
81795
+ json: true,
81796
+ thinkingLevels: [
81797
+ "off",
81798
+ "minimal",
81799
+ "low",
81800
+ "medium",
81801
+ "high"
81802
+ ],
81803
+ defaultThinkingLevel: "low",
81804
+ thinkingMode: "qwen-thinking",
81805
+ reasoningBudgetSupported: true
81804
81806
  },
81805
- contextWindow: 105e4,
81806
- maxTokens: 128e3,
81807
+ contextWindow: 131072,
81807
81808
  source: "catalog",
81808
- refreshedAt: "2026-05-11T01:59:12.464Z"
81809
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81809
81810
  },
81810
- "openrouter/openai/gpt-5.5-pro": {
81811
+ "huggingface/qwen/qwen3.5-397b-a17b": {
81811
81812
  input: ["text", "image"],
81812
- reasoning: true,
81813
81813
  capabilities: {
81814
81814
  tools: true,
81815
81815
  json: true
81816
81816
  },
81817
- contextWindow: 105e4,
81818
- maxTokens: 128e3,
81817
+ contextWindow: 262144,
81819
81818
  source: "catalog",
81820
- refreshedAt: "2026-05-11T01:59:12.464Z"
81819
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81821
81820
  },
81822
- "openrouter/x-ai/grok-4.3": {
81821
+ "huggingface/qwen/qwen3.6-35b-a3b": {
81823
81822
  input: ["text", "image"],
81824
- reasoning: true,
81825
81823
  capabilities: {
81826
81824
  tools: true,
81827
81825
  json: true
81828
81826
  },
81829
- contextWindow: 1e6,
81827
+ contextWindow: 262144,
81830
81828
  source: "catalog",
81831
- refreshedAt: "2026-05-11T01:59:12.464Z"
81829
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81832
81830
  },
81833
- "venice/claude-opus-4-7": {
81831
+ "huggingface/zai-org/glm-5.1": {
81834
81832
  input: ["text"],
81835
- contextWindow: 1e6,
81833
+ capabilities: {
81834
+ tools: true,
81835
+ json: true
81836
+ },
81837
+ contextWindow: 202752,
81836
81838
  source: "catalog",
81837
- refreshedAt: "2026-05-11T01:59:12.464Z"
81839
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81838
81840
  },
81839
- "venice/claude-sonnet-4-6": {
81840
- input: ["text"],
81841
- contextWindow: 1e6,
81842
- source: "catalog",
81843
- refreshedAt: "2026-05-11T01:59:12.464Z"
81841
+ "openai/gpt-5.4": {
81842
+ capabilities: {
81843
+ thinkingLevels: [
81844
+ "off",
81845
+ "minimal",
81846
+ "low",
81847
+ "medium",
81848
+ "high",
81849
+ "xhigh"
81850
+ ],
81851
+ defaultThinkingLevel: "low",
81852
+ thinkingMode: "openai-reasoning-effort",
81853
+ reasoningBudgetSupported: false
81854
+ },
81855
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81844
81856
  },
81845
- "venice/deepseek-v4-pro": {
81857
+ "openai/gpt-5.4-mini": {
81858
+ capabilities: {
81859
+ thinkingLevels: [
81860
+ "off",
81861
+ "minimal",
81862
+ "low",
81863
+ "medium",
81864
+ "high",
81865
+ "xhigh"
81866
+ ],
81867
+ defaultThinkingLevel: "low",
81868
+ thinkingMode: "openai-reasoning-effort",
81869
+ reasoningBudgetSupported: false
81870
+ },
81871
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81872
+ },
81873
+ "openai/gpt-5.4-nano": {
81874
+ capabilities: {
81875
+ thinkingLevels: [
81876
+ "off",
81877
+ "minimal",
81878
+ "low",
81879
+ "medium",
81880
+ "high",
81881
+ "xhigh"
81882
+ ],
81883
+ defaultThinkingLevel: "low",
81884
+ thinkingMode: "openai-reasoning-effort",
81885
+ reasoningBudgetSupported: false
81886
+ },
81887
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81888
+ },
81889
+ "openai/gpt-5.5": {
81890
+ capabilities: {
81891
+ thinkingLevels: [
81892
+ "off",
81893
+ "minimal",
81894
+ "low",
81895
+ "medium",
81896
+ "high",
81897
+ "xhigh"
81898
+ ],
81899
+ defaultThinkingLevel: "low",
81900
+ thinkingMode: "openai-reasoning-effort",
81901
+ reasoningBudgetSupported: false
81902
+ },
81903
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81904
+ },
81905
+ "openai/gpt-5.6": {
81906
+ capabilities: {
81907
+ thinkingLevels: [
81908
+ "off",
81909
+ "minimal",
81910
+ "low",
81911
+ "medium",
81912
+ "high",
81913
+ "xhigh"
81914
+ ],
81915
+ defaultThinkingLevel: "low",
81916
+ thinkingMode: "openai-reasoning-effort",
81917
+ reasoningBudgetSupported: false
81918
+ },
81919
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81920
+ },
81921
+ "openai/gpt-5.6-luna": {
81922
+ capabilities: {
81923
+ thinkingLevels: [
81924
+ "off",
81925
+ "minimal",
81926
+ "low",
81927
+ "medium",
81928
+ "high",
81929
+ "xhigh"
81930
+ ],
81931
+ defaultThinkingLevel: "low",
81932
+ thinkingMode: "openai-reasoning-effort",
81933
+ reasoningBudgetSupported: false
81934
+ },
81935
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81936
+ },
81937
+ "openai/gpt-5.6-terra": {
81938
+ capabilities: {
81939
+ thinkingLevels: [
81940
+ "off",
81941
+ "minimal",
81942
+ "low",
81943
+ "medium",
81944
+ "high",
81945
+ "xhigh"
81946
+ ],
81947
+ defaultThinkingLevel: "low",
81948
+ thinkingMode: "openai-reasoning-effort",
81949
+ reasoningBudgetSupported: false
81950
+ },
81951
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81952
+ },
81953
+ "opencode/claude-fable-5": {
81846
81954
  input: ["text"],
81847
- contextWindow: 1e6,
81955
+ capabilities: {
81956
+ tools: true,
81957
+ json: true,
81958
+ thinkingLevels: [
81959
+ "off",
81960
+ "minimal",
81961
+ "low",
81962
+ "medium",
81963
+ "high"
81964
+ ],
81965
+ defaultThinkingLevel: "low",
81966
+ thinkingMode: "anthropic-adaptive",
81967
+ reasoningBudgetSupported: false
81968
+ },
81848
81969
  source: "catalog",
81849
- refreshedAt: "2026-05-11T01:59:12.464Z"
81970
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81850
81971
  },
81851
- "venice/gemini-3-1-pro-preview": {
81972
+ "opencode/claude-haiku-4-5": {
81852
81973
  input: ["text"],
81853
- contextWindow: 1e6,
81974
+ capabilities: {
81975
+ tools: true,
81976
+ json: true,
81977
+ thinkingLevels: [
81978
+ "off",
81979
+ "minimal",
81980
+ "low",
81981
+ "medium",
81982
+ "high"
81983
+ ],
81984
+ defaultThinkingLevel: "low",
81985
+ thinkingMode: "anthropic-thinking-budget",
81986
+ reasoningBudgetSupported: true
81987
+ },
81854
81988
  source: "catalog",
81855
- refreshedAt: "2026-05-11T01:59:12.464Z"
81989
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81856
81990
  },
81857
- "venice/grok-4-3": {
81991
+ "opencode/claude-opus-4-8": {
81858
81992
  input: ["text"],
81859
- contextWindow: 1e6,
81993
+ capabilities: {
81994
+ tools: true,
81995
+ json: true,
81996
+ thinkingLevels: [
81997
+ "off",
81998
+ "minimal",
81999
+ "low",
82000
+ "medium",
82001
+ "high"
82002
+ ],
82003
+ defaultThinkingLevel: "low",
82004
+ thinkingMode: "anthropic-adaptive",
82005
+ reasoningBudgetSupported: false
82006
+ },
81860
82007
  source: "catalog",
81861
- refreshedAt: "2026-05-11T01:59:12.464Z"
82008
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81862
82009
  },
81863
- "venice/kimi-k2-6": {
82010
+ "opencode/claude-sonnet-5": {
81864
82011
  input: ["text"],
81865
- contextWindow: 256e3,
82012
+ capabilities: {
82013
+ tools: true,
82014
+ json: true,
82015
+ thinkingLevels: [
82016
+ "off",
82017
+ "minimal",
82018
+ "low",
82019
+ "medium",
82020
+ "high"
82021
+ ],
82022
+ defaultThinkingLevel: "low",
82023
+ thinkingMode: "anthropic-adaptive",
82024
+ reasoningBudgetSupported: false
82025
+ },
81866
82026
  source: "catalog",
81867
- refreshedAt: "2026-05-11T01:59:12.464Z"
82027
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81868
82028
  },
81869
- "venice/minimax-m27": {
82029
+ "opencode/gemini-3-flash": {
81870
82030
  input: ["text"],
81871
- contextWindow: 198e3,
82031
+ capabilities: {
82032
+ tools: true,
82033
+ json: true,
82034
+ thinkingLevels: [
82035
+ "off",
82036
+ "minimal",
82037
+ "low",
82038
+ "medium",
82039
+ "high"
82040
+ ],
82041
+ defaultThinkingLevel: "low",
82042
+ thinkingMode: "google-thinking-budget",
82043
+ reasoningBudgetSupported: true
82044
+ },
81872
82045
  source: "catalog",
81873
- refreshedAt: "2026-05-11T01:59:12.464Z"
82046
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81874
82047
  },
81875
- "venice/openai-gpt-54": {
82048
+ "opencode/gemini-3.1-pro": {
81876
82049
  input: ["text"],
81877
- contextWindow: 1e6,
82050
+ capabilities: {
82051
+ tools: true,
82052
+ json: true,
82053
+ thinkingLevels: [
82054
+ "off",
82055
+ "minimal",
82056
+ "low",
82057
+ "medium",
82058
+ "high"
82059
+ ],
82060
+ defaultThinkingLevel: "low",
82061
+ thinkingMode: "google-thinking-budget",
82062
+ reasoningBudgetSupported: true
82063
+ },
81878
82064
  source: "catalog",
81879
- refreshedAt: "2026-05-11T01:59:12.464Z"
82065
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81880
82066
  },
81881
- "venice/openai-gpt-55": {
82067
+ "opencode/gemini-3.5-flash": {
81882
82068
  input: ["text"],
81883
- contextWindow: 1e6,
82069
+ capabilities: {
82070
+ tools: true,
82071
+ json: true,
82072
+ thinkingLevels: [
82073
+ "off",
82074
+ "minimal",
82075
+ "low",
82076
+ "medium",
82077
+ "high"
82078
+ ],
82079
+ defaultThinkingLevel: "low",
82080
+ thinkingMode: "google-thinking-budget",
82081
+ reasoningBudgetSupported: true
82082
+ },
81884
82083
  source: "catalog",
81885
- refreshedAt: "2026-05-11T01:59:12.464Z"
82084
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81886
82085
  },
81887
- "venice/openai-gpt-oss-120b": {
82086
+ "opencode/glm-5.2": {
81888
82087
  input: ["text"],
81889
- contextWindow: 128e3,
82088
+ capabilities: {
82089
+ tools: true,
82090
+ json: true,
82091
+ thinkingLevels: ["off", "low"],
82092
+ defaultThinkingLevel: "low",
82093
+ thinkingMode: "zai-binary",
82094
+ reasoningBudgetSupported: false
82095
+ },
81890
82096
  source: "catalog",
81891
- refreshedAt: "2026-05-11T01:59:12.464Z"
82097
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81892
82098
  },
81893
- "venice/qwen-3-6-plus": {
82099
+ "opencode/gpt-5.3-codex-spark": {
81894
82100
  input: ["text"],
81895
- contextWindow: 1e6,
82101
+ capabilities: {
82102
+ tools: true,
82103
+ json: true,
82104
+ thinkingLevels: [
82105
+ "off",
82106
+ "minimal",
82107
+ "low",
82108
+ "medium",
82109
+ "high"
82110
+ ],
82111
+ defaultThinkingLevel: "low",
82112
+ thinkingMode: "openai-reasoning-effort",
82113
+ reasoningBudgetSupported: false
82114
+ },
81896
82115
  source: "catalog",
81897
- refreshedAt: "2026-05-11T01:59:12.464Z"
82116
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81898
82117
  },
81899
- "venice/qwen3-5-397b-a17b": {
82118
+ "opencode/gpt-5.4": {
81900
82119
  input: ["text"],
81901
- contextWindow: 128e3,
82120
+ capabilities: {
82121
+ tools: true,
82122
+ json: true,
82123
+ thinkingLevels: [
82124
+ "off",
82125
+ "minimal",
82126
+ "low",
82127
+ "medium",
82128
+ "high",
82129
+ "xhigh"
82130
+ ],
82131
+ defaultThinkingLevel: "low",
82132
+ thinkingMode: "openai-reasoning-effort",
82133
+ reasoningBudgetSupported: false
82134
+ },
81902
82135
  source: "catalog",
81903
- refreshedAt: "2026-05-11T01:59:12.464Z"
82136
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81904
82137
  },
81905
- "venice/qwen3-coder-480b-a35b-instruct-turbo": {
82138
+ "opencode/gpt-5.4-mini": {
81906
82139
  input: ["text"],
81907
- contextWindow: 256e3,
82140
+ capabilities: {
82141
+ tools: true,
82142
+ json: true,
82143
+ thinkingLevels: [
82144
+ "off",
82145
+ "minimal",
82146
+ "low",
82147
+ "medium",
82148
+ "high",
82149
+ "xhigh"
82150
+ ],
82151
+ defaultThinkingLevel: "low",
82152
+ thinkingMode: "openai-reasoning-effort",
82153
+ reasoningBudgetSupported: false
82154
+ },
81908
82155
  source: "catalog",
81909
- refreshedAt: "2026-05-11T01:59:12.464Z"
82156
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81910
82157
  },
81911
- "venice/qwen3-vl-235b-a22b": {
82158
+ "opencode/gpt-5.4-nano": {
81912
82159
  input: ["text"],
81913
- contextWindow: 256e3,
82160
+ capabilities: {
82161
+ tools: true,
82162
+ json: true,
82163
+ thinkingLevels: [
82164
+ "off",
82165
+ "minimal",
82166
+ "low",
82167
+ "medium",
82168
+ "high",
82169
+ "xhigh"
82170
+ ],
82171
+ defaultThinkingLevel: "low",
82172
+ thinkingMode: "openai-reasoning-effort",
82173
+ reasoningBudgetSupported: false
82174
+ },
81914
82175
  source: "catalog",
81915
- refreshedAt: "2026-05-11T01:59:12.464Z"
82176
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81916
82177
  },
81917
- "venice/venice-uncensored-1-2": {
82178
+ "opencode/gpt-5.5": {
81918
82179
  input: ["text"],
81919
- contextWindow: 128e3,
82180
+ capabilities: {
82181
+ tools: true,
82182
+ json: true,
82183
+ thinkingLevels: [
82184
+ "off",
82185
+ "minimal",
82186
+ "low",
82187
+ "medium",
82188
+ "high",
82189
+ "xhigh"
82190
+ ],
82191
+ defaultThinkingLevel: "low",
82192
+ thinkingMode: "openai-reasoning-effort",
82193
+ reasoningBudgetSupported: false
82194
+ },
81920
82195
  source: "catalog",
81921
- refreshedAt: "2026-05-11T01:59:12.464Z"
82196
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81922
82197
  },
81923
- "venice/zai-org-glm-5-1": {
82198
+ "opencode/kimi-k2.6": {
81924
82199
  input: ["text"],
81925
- contextWindow: 2e5,
82200
+ capabilities: {
82201
+ tools: true,
82202
+ json: true,
82203
+ thinkingLevels: [
82204
+ "off",
82205
+ "minimal",
82206
+ "low",
82207
+ "medium",
82208
+ "high"
82209
+ ],
82210
+ defaultThinkingLevel: "low",
82211
+ thinkingMode: "moonshot-thinking",
82212
+ reasoningBudgetSupported: false
82213
+ },
81926
82214
  source: "catalog",
81927
- refreshedAt: "2026-05-11T01:59:12.464Z"
82215
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81928
82216
  },
81929
- "vercel-ai-gateway/anthropic/claude-haiku-4.5": {
81930
- input: ["text", "image"],
81931
- reasoning: true,
81932
- tools: true,
81933
- contextWindow: 2e5,
81934
- maxTokens: 64e3,
82217
+ "opencode/minimax-m2.7": {
82218
+ input: ["text"],
82219
+ capabilities: {
82220
+ tools: true,
82221
+ json: true,
82222
+ thinkingLevels: [
82223
+ "off",
82224
+ "minimal",
82225
+ "low",
82226
+ "medium",
82227
+ "high"
82228
+ ],
82229
+ defaultThinkingLevel: "low",
82230
+ thinkingMode: "generic-reasoning",
82231
+ reasoningBudgetSupported: false
82232
+ },
81935
82233
  source: "catalog",
81936
- refreshedAt: "2026-05-11T01:59:12.464Z"
82234
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81937
82235
  },
81938
- "vercel-ai-gateway/anthropic/claude-opus-4.7": {
82236
+ "openrouter/anthropic/claude-fable-5": {
81939
82237
  input: ["text", "image"],
81940
82238
  reasoning: true,
81941
- tools: true,
82239
+ capabilities: {
82240
+ tools: true,
82241
+ json: true,
82242
+ thinkingLevels: [
82243
+ "off",
82244
+ "minimal",
82245
+ "low",
82246
+ "medium",
82247
+ "high"
82248
+ ],
82249
+ defaultThinkingLevel: "low",
82250
+ thinkingMode: "anthropic-adaptive",
82251
+ reasoningBudgetSupported: false
82252
+ },
81942
82253
  contextWindow: 1e6,
81943
82254
  maxTokens: 128e3,
81944
82255
  source: "catalog",
81945
- refreshedAt: "2026-05-11T01:59:12.464Z"
82256
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81946
82257
  },
81947
- "vercel-ai-gateway/anthropic/claude-opus-4.6": {
82258
+ "openrouter/anthropic/claude-haiku-4.5": {
81948
82259
  input: ["text", "image"],
81949
82260
  reasoning: true,
81950
- tools: true,
81951
- contextWindow: 1e6,
81952
- maxTokens: 128e3,
81953
- source: "catalog",
81954
- refreshedAt: "2026-05-11T01:59:12.464Z"
81955
- },
81956
- "vercel-ai-gateway/anthropic/claude-sonnet-4.6": {
82261
+ capabilities: {
82262
+ tools: true,
82263
+ json: true,
82264
+ thinkingLevels: [
82265
+ "off",
82266
+ "minimal",
82267
+ "low",
82268
+ "medium",
82269
+ "high"
82270
+ ],
82271
+ defaultThinkingLevel: "low",
82272
+ thinkingMode: "anthropic-thinking-budget",
82273
+ reasoningBudgetSupported: true
82274
+ },
82275
+ contextWindow: 2e5,
82276
+ maxTokens: 64e3,
82277
+ source: "catalog",
82278
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82279
+ },
82280
+ "openrouter/anthropic/claude-opus-4.8": {
81957
82281
  input: ["text", "image"],
81958
82282
  reasoning: true,
81959
- tools: true,
82283
+ capabilities: {
82284
+ tools: true,
82285
+ json: true,
82286
+ thinkingLevels: [
82287
+ "off",
82288
+ "minimal",
82289
+ "low",
82290
+ "medium",
82291
+ "high"
82292
+ ],
82293
+ defaultThinkingLevel: "low",
82294
+ thinkingMode: "anthropic-adaptive",
82295
+ reasoningBudgetSupported: false
82296
+ },
81960
82297
  contextWindow: 1e6,
81961
82298
  maxTokens: 128e3,
81962
82299
  source: "catalog",
81963
- refreshedAt: "2026-05-11T01:59:12.464Z"
82300
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81964
82301
  },
81965
- "vercel-ai-gateway/anthropic/claude-sonnet-4.5": {
82302
+ "openrouter/anthropic/claude-sonnet-5": {
81966
82303
  input: ["text", "image"],
81967
82304
  reasoning: true,
81968
- tools: true,
82305
+ capabilities: {
82306
+ tools: true,
82307
+ json: true,
82308
+ thinkingLevels: [
82309
+ "off",
82310
+ "minimal",
82311
+ "low",
82312
+ "medium",
82313
+ "high"
82314
+ ],
82315
+ defaultThinkingLevel: "low",
82316
+ thinkingMode: "anthropic-adaptive",
82317
+ reasoningBudgetSupported: false
82318
+ },
81969
82319
  contextWindow: 1e6,
81970
- maxTokens: 64e3,
82320
+ maxTokens: 128e3,
82321
+ source: "catalog",
82322
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82323
+ },
82324
+ "openrouter/deepseek/deepseek-v4-flash": {
82325
+ input: ["text"],
82326
+ reasoning: true,
82327
+ capabilities: {
82328
+ tools: true,
82329
+ json: true,
82330
+ thinkingLevels: [
82331
+ "off",
82332
+ "minimal",
82333
+ "low",
82334
+ "medium",
82335
+ "high"
82336
+ ],
82337
+ defaultThinkingLevel: "low",
82338
+ thinkingMode: "generic-reasoning",
82339
+ reasoningBudgetSupported: false
82340
+ },
82341
+ contextWindow: 1048576,
82342
+ maxTokens: 384e3,
82343
+ source: "catalog",
82344
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82345
+ },
82346
+ "openrouter/deepseek/deepseek-v4-pro": {
82347
+ input: ["text"],
82348
+ reasoning: true,
82349
+ capabilities: {
82350
+ tools: true,
82351
+ json: true,
82352
+ thinkingLevels: [
82353
+ "off",
82354
+ "minimal",
82355
+ "low",
82356
+ "medium",
82357
+ "high"
82358
+ ],
82359
+ defaultThinkingLevel: "low",
82360
+ thinkingMode: "generic-reasoning",
82361
+ reasoningBudgetSupported: false
82362
+ },
82363
+ contextWindow: 1048576,
82364
+ maxTokens: 384e3,
81971
82365
  source: "catalog",
81972
- refreshedAt: "2026-05-11T01:59:12.464Z"
82366
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81973
82367
  },
81974
- "vercel-ai-gateway/google/gemini-2.5-flash": {
82368
+ "openrouter/google/gemini-3-flash-preview": {
81975
82369
  input: ["text", "image"],
81976
82370
  reasoning: true,
81977
- tools: true,
81978
- contextWindow: 1e6,
82371
+ capabilities: {
82372
+ tools: true,
82373
+ json: true,
82374
+ audio: true,
82375
+ video: true,
82376
+ thinkingLevels: [
82377
+ "off",
82378
+ "minimal",
82379
+ "low",
82380
+ "medium",
82381
+ "high"
82382
+ ],
82383
+ defaultThinkingLevel: "low",
82384
+ thinkingMode: "google-thinking-budget",
82385
+ reasoningBudgetSupported: true
82386
+ },
82387
+ contextWindow: 1048576,
82388
+ maxTokens: 65535,
82389
+ source: "catalog",
82390
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82391
+ },
82392
+ "openrouter/google/gemini-3.1-flash-lite": {
82393
+ input: ["text", "image"],
82394
+ reasoning: true,
82395
+ capabilities: {
82396
+ tools: true,
82397
+ json: true,
82398
+ audio: true,
82399
+ video: true,
82400
+ thinkingLevels: [
82401
+ "off",
82402
+ "minimal",
82403
+ "low",
82404
+ "medium",
82405
+ "high"
82406
+ ],
82407
+ defaultThinkingLevel: "low",
82408
+ thinkingMode: "google-thinking-budget",
82409
+ reasoningBudgetSupported: true
82410
+ },
82411
+ contextWindow: 1048576,
81979
82412
  maxTokens: 65536,
81980
82413
  source: "catalog",
81981
- refreshedAt: "2026-05-11T01:59:12.464Z"
82414
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81982
82415
  },
81983
- "vercel-ai-gateway/google/gemini-2.5-pro": {
82416
+ "openrouter/google/gemini-3.1-pro-preview": {
81984
82417
  input: ["text", "image"],
81985
82418
  reasoning: true,
81986
- tools: true,
82419
+ capabilities: {
82420
+ tools: true,
82421
+ json: true,
82422
+ audio: true,
82423
+ video: true,
82424
+ thinkingLevels: [
82425
+ "off",
82426
+ "minimal",
82427
+ "low",
82428
+ "medium",
82429
+ "high"
82430
+ ],
82431
+ defaultThinkingLevel: "low",
82432
+ thinkingMode: "google-thinking-budget",
82433
+ reasoningBudgetSupported: true
82434
+ },
82435
+ contextWindow: 1048576,
82436
+ maxTokens: 65536,
82437
+ source: "catalog",
82438
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82439
+ },
82440
+ "openrouter/google/gemini-3.5-flash": {
82441
+ input: ["text", "image"],
82442
+ reasoning: true,
82443
+ capabilities: {
82444
+ tools: true,
82445
+ json: true,
82446
+ audio: true,
82447
+ video: true,
82448
+ thinkingLevels: [
82449
+ "off",
82450
+ "minimal",
82451
+ "low",
82452
+ "medium",
82453
+ "high"
82454
+ ],
82455
+ defaultThinkingLevel: "low",
82456
+ thinkingMode: "google-thinking-budget",
82457
+ reasoningBudgetSupported: true
82458
+ },
81987
82459
  contextWindow: 1048576,
81988
82460
  maxTokens: 65536,
81989
82461
  source: "catalog",
81990
- refreshedAt: "2026-05-11T01:59:12.464Z"
82462
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82463
+ },
82464
+ "openrouter/minimax/minimax-m2.7": {
82465
+ input: ["text"],
82466
+ reasoning: true,
82467
+ capabilities: {
82468
+ tools: true,
82469
+ json: true,
82470
+ thinkingLevels: [
82471
+ "off",
82472
+ "minimal",
82473
+ "low",
82474
+ "medium",
82475
+ "high"
82476
+ ],
82477
+ defaultThinkingLevel: "off",
82478
+ thinkingMode: "anthropic-thinking-budget",
82479
+ reasoningBudgetSupported: false
82480
+ },
82481
+ contextWindow: 204800,
82482
+ maxTokens: 196608,
82483
+ source: "catalog",
82484
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82485
+ },
82486
+ "openrouter/mistralai/devstral-2512": {
82487
+ input: ["text"],
82488
+ capabilities: {
82489
+ tools: true,
82490
+ json: true
82491
+ },
82492
+ contextWindow: 262144,
82493
+ source: "catalog",
82494
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82495
+ },
82496
+ "openrouter/mistralai/mistral-large-2512": {
82497
+ input: ["text", "image"],
82498
+ capabilities: {
82499
+ tools: true,
82500
+ json: true
82501
+ },
82502
+ contextWindow: 262144,
82503
+ source: "catalog",
82504
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82505
+ },
82506
+ "openrouter/mistralai/mistral-medium-3-5": {
82507
+ input: ["text", "image"],
82508
+ reasoning: true,
82509
+ capabilities: {
82510
+ tools: true,
82511
+ json: true,
82512
+ thinkingLevels: ["off", "high"],
82513
+ defaultThinkingLevel: "high",
82514
+ thinkingMode: "mistral-reasoning-effort",
82515
+ reasoningBudgetSupported: false
82516
+ },
82517
+ contextWindow: 262144,
82518
+ source: "catalog",
82519
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82520
+ },
82521
+ "openrouter/mistralai/mistral-small-2603": {
82522
+ input: ["text", "image"],
82523
+ reasoning: true,
82524
+ capabilities: {
82525
+ tools: true,
82526
+ json: true,
82527
+ thinkingLevels: ["off", "high"],
82528
+ defaultThinkingLevel: "high",
82529
+ thinkingMode: "mistral-reasoning-effort",
82530
+ reasoningBudgetSupported: false
82531
+ },
82532
+ contextWindow: 262144,
82533
+ source: "catalog",
82534
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82535
+ },
82536
+ "openrouter/moonshotai/kimi-k2.6": {
82537
+ input: ["text", "image"],
82538
+ reasoning: true,
82539
+ capabilities: {
82540
+ tools: true,
82541
+ json: true,
82542
+ thinkingLevels: [
82543
+ "off",
82544
+ "minimal",
82545
+ "low",
82546
+ "medium",
82547
+ "high"
82548
+ ],
82549
+ defaultThinkingLevel: "low",
82550
+ thinkingMode: "moonshot-thinking",
82551
+ reasoningBudgetSupported: false
82552
+ },
82553
+ contextWindow: 262144,
82554
+ maxTokens: 262144,
82555
+ source: "catalog",
82556
+ refreshedAt: "2026-07-12T05:03:49.877Z"
81991
82557
  },
81992
- "vercel-ai-gateway/google/gemini-3-flash": {
82558
+ "openrouter/openai/gpt-5.4": {
81993
82559
  input: ["text", "image"],
81994
82560
  reasoning: true,
81995
- tools: true,
82561
+ capabilities: {
82562
+ tools: true,
82563
+ json: true,
82564
+ thinkingLevels: [
82565
+ "off",
82566
+ "minimal",
82567
+ "low",
82568
+ "medium",
82569
+ "high",
82570
+ "xhigh"
82571
+ ],
82572
+ defaultThinkingLevel: "low",
82573
+ thinkingMode: "openai-reasoning-effort",
82574
+ reasoningBudgetSupported: false
82575
+ },
82576
+ contextWindow: 105e4,
82577
+ maxTokens: 128e3,
82578
+ source: "catalog",
82579
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82580
+ },
82581
+ "openrouter/openai/gpt-5.4-mini": {
82582
+ input: ["text", "image"],
82583
+ reasoning: true,
82584
+ capabilities: {
82585
+ tools: true,
82586
+ json: true,
82587
+ thinkingLevels: [
82588
+ "off",
82589
+ "minimal",
82590
+ "low",
82591
+ "medium",
82592
+ "high",
82593
+ "xhigh"
82594
+ ],
82595
+ defaultThinkingLevel: "low",
82596
+ thinkingMode: "openai-reasoning-effort",
82597
+ reasoningBudgetSupported: false
82598
+ },
82599
+ contextWindow: 4e5,
82600
+ maxTokens: 128e3,
82601
+ source: "catalog",
82602
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82603
+ },
82604
+ "openrouter/openai/gpt-5.4-nano": {
82605
+ input: ["text", "image"],
82606
+ reasoning: true,
82607
+ capabilities: {
82608
+ tools: true,
82609
+ json: true,
82610
+ thinkingLevels: [
82611
+ "off",
82612
+ "minimal",
82613
+ "low",
82614
+ "medium",
82615
+ "high",
82616
+ "xhigh"
82617
+ ],
82618
+ defaultThinkingLevel: "low",
82619
+ thinkingMode: "openai-reasoning-effort",
82620
+ reasoningBudgetSupported: false
82621
+ },
82622
+ contextWindow: 4e5,
82623
+ maxTokens: 128e3,
82624
+ source: "catalog",
82625
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82626
+ },
82627
+ "openrouter/openai/gpt-5.5": {
82628
+ input: ["text", "image"],
82629
+ reasoning: true,
82630
+ capabilities: {
82631
+ tools: true,
82632
+ json: true,
82633
+ thinkingLevels: [
82634
+ "off",
82635
+ "minimal",
82636
+ "low",
82637
+ "medium",
82638
+ "high",
82639
+ "xhigh"
82640
+ ],
82641
+ defaultThinkingLevel: "low",
82642
+ thinkingMode: "openai-reasoning-effort",
82643
+ reasoningBudgetSupported: false
82644
+ },
82645
+ contextWindow: 105e4,
82646
+ maxTokens: 128e3,
82647
+ source: "catalog",
82648
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82649
+ },
82650
+ "openrouter/openai/gpt-5.6-luna": {
82651
+ input: ["text", "image"],
82652
+ reasoning: true,
82653
+ capabilities: {
82654
+ tools: true,
82655
+ json: true,
82656
+ thinkingLevels: [
82657
+ "off",
82658
+ "minimal",
82659
+ "low",
82660
+ "medium",
82661
+ "high",
82662
+ "xhigh"
82663
+ ],
82664
+ defaultThinkingLevel: "low",
82665
+ thinkingMode: "openai-reasoning-effort",
82666
+ reasoningBudgetSupported: false
82667
+ },
82668
+ contextWindow: 105e4,
82669
+ maxTokens: 128e3,
82670
+ source: "catalog",
82671
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82672
+ },
82673
+ "openrouter/openai/gpt-5.6-sol": {
82674
+ input: ["text", "image"],
82675
+ reasoning: true,
82676
+ capabilities: {
82677
+ tools: true,
82678
+ json: true,
82679
+ thinkingLevels: [
82680
+ "off",
82681
+ "minimal",
82682
+ "low",
82683
+ "medium",
82684
+ "high",
82685
+ "xhigh"
82686
+ ],
82687
+ defaultThinkingLevel: "low",
82688
+ thinkingMode: "openai-reasoning-effort",
82689
+ reasoningBudgetSupported: false
82690
+ },
82691
+ contextWindow: 105e4,
82692
+ maxTokens: 128e3,
82693
+ source: "catalog",
82694
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82695
+ },
82696
+ "openrouter/openai/gpt-5.6-terra": {
82697
+ input: ["text", "image"],
82698
+ reasoning: true,
82699
+ capabilities: {
82700
+ tools: true,
82701
+ json: true,
82702
+ thinkingLevels: [
82703
+ "off",
82704
+ "minimal",
82705
+ "low",
82706
+ "medium",
82707
+ "high",
82708
+ "xhigh"
82709
+ ],
82710
+ defaultThinkingLevel: "low",
82711
+ thinkingMode: "openai-reasoning-effort",
82712
+ reasoningBudgetSupported: false
82713
+ },
82714
+ contextWindow: 105e4,
82715
+ maxTokens: 128e3,
82716
+ source: "catalog",
82717
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82718
+ },
82719
+ "openrouter/qwen/qwen3.6-flash": {
82720
+ input: ["text", "image"],
82721
+ reasoning: true,
82722
+ capabilities: {
82723
+ tools: true,
82724
+ json: true,
82725
+ video: true,
82726
+ thinkingLevels: [
82727
+ "off",
82728
+ "minimal",
82729
+ "low",
82730
+ "medium",
82731
+ "high"
82732
+ ],
82733
+ defaultThinkingLevel: "low",
82734
+ thinkingMode: "qwen-thinking",
82735
+ reasoningBudgetSupported: true
82736
+ },
81996
82737
  contextWindow: 1e6,
81997
- maxTokens: 65e3,
82738
+ maxTokens: 65536,
81998
82739
  source: "catalog",
81999
- refreshedAt: "2026-05-11T01:59:12.464Z"
82740
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82000
82741
  },
82001
- "vercel-ai-gateway/google/gemini-3.1-flash-lite": {
82742
+ "openrouter/qwen/qwen3.7-max": {
82743
+ input: ["text"],
82744
+ reasoning: true,
82745
+ capabilities: {
82746
+ tools: true,
82747
+ json: true,
82748
+ video: true,
82749
+ thinkingLevels: [
82750
+ "off",
82751
+ "minimal",
82752
+ "low",
82753
+ "medium",
82754
+ "high"
82755
+ ],
82756
+ defaultThinkingLevel: "low",
82757
+ thinkingMode: "qwen-thinking",
82758
+ reasoningBudgetSupported: true
82759
+ },
82760
+ contextWindow: 1e6,
82761
+ maxTokens: 65536,
82762
+ source: "catalog",
82763
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82764
+ },
82765
+ "openrouter/qwen/qwen3.7-plus": {
82002
82766
  input: ["text", "image"],
82003
82767
  reasoning: true,
82004
- tools: true,
82768
+ capabilities: {
82769
+ tools: true,
82770
+ json: true,
82771
+ video: true,
82772
+ thinkingLevels: [
82773
+ "off",
82774
+ "minimal",
82775
+ "low",
82776
+ "medium",
82777
+ "high"
82778
+ ],
82779
+ defaultThinkingLevel: "low",
82780
+ thinkingMode: "qwen-thinking",
82781
+ reasoningBudgetSupported: true
82782
+ },
82005
82783
  contextWindow: 1e6,
82006
- maxTokens: 65e3,
82784
+ maxTokens: 65536,
82007
82785
  source: "catalog",
82008
- refreshedAt: "2026-05-11T01:59:12.464Z"
82786
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82009
82787
  },
82010
- "vercel-ai-gateway/google/gemini-3.1-pro-preview": {
82788
+ "openrouter/x-ai/grok-4.3": {
82011
82789
  input: ["text", "image"],
82012
82790
  reasoning: true,
82013
- tools: true,
82791
+ capabilities: {
82792
+ tools: true,
82793
+ json: true,
82794
+ thinkingLevels: [
82795
+ "off",
82796
+ "low",
82797
+ "medium",
82798
+ "high"
82799
+ ],
82800
+ defaultThinkingLevel: "low",
82801
+ thinkingMode: "xai-reasoning-effort",
82802
+ reasoningBudgetSupported: false
82803
+ },
82014
82804
  contextWindow: 1e6,
82015
- maxTokens: 64e3,
82016
82805
  source: "catalog",
82017
- refreshedAt: "2026-05-11T01:59:12.464Z"
82806
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82018
82807
  },
82019
- "vercel-ai-gateway/minimax/minimax-m2.7": {
82808
+ "openrouter/x-ai/grok-4.5": {
82020
82809
  input: ["text", "image"],
82021
82810
  reasoning: true,
82022
- tools: true,
82023
- contextWindow: 204800,
82024
- maxTokens: 131e3,
82811
+ capabilities: {
82812
+ tools: true,
82813
+ json: true,
82814
+ thinkingLevels: [
82815
+ "off",
82816
+ "low",
82817
+ "medium",
82818
+ "high"
82819
+ ],
82820
+ defaultThinkingLevel: "low",
82821
+ thinkingMode: "xai-reasoning-effort",
82822
+ reasoningBudgetSupported: false
82823
+ },
82824
+ contextWindow: 5e5,
82025
82825
  source: "catalog",
82026
- refreshedAt: "2026-05-11T01:59:12.464Z"
82826
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82027
82827
  },
82028
- "vercel-ai-gateway/minimax/minimax-m2.7-highspeed": {
82828
+ "openrouter/x-ai/grok-build-0.1": {
82029
82829
  input: ["text", "image"],
82030
82830
  reasoning: true,
82031
- tools: true,
82032
- contextWindow: 204800,
82033
- maxTokens: 131100,
82831
+ capabilities: {
82832
+ tools: true,
82833
+ json: true,
82834
+ thinkingLevels: [
82835
+ "off",
82836
+ "minimal",
82837
+ "low",
82838
+ "medium",
82839
+ "high"
82840
+ ],
82841
+ defaultThinkingLevel: "low",
82842
+ thinkingMode: "generic-reasoning",
82843
+ reasoningBudgetSupported: false
82844
+ },
82845
+ contextWindow: 256e3,
82034
82846
  source: "catalog",
82035
- refreshedAt: "2026-05-11T01:59:12.464Z"
82847
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82036
82848
  },
82037
- "vercel-ai-gateway/mistral/devstral-2": {
82849
+ "openrouter/z-ai/glm-5.2": {
82038
82850
  input: ["text"],
82039
- tools: true,
82040
- contextWindow: 256e3,
82041
- maxTokens: 256e3,
82851
+ reasoning: true,
82852
+ capabilities: {
82853
+ tools: true,
82854
+ json: true,
82855
+ thinkingLevels: ["off", "low"],
82856
+ defaultThinkingLevel: "low",
82857
+ thinkingMode: "zai-binary",
82858
+ reasoningBudgetSupported: false
82859
+ },
82860
+ contextWindow: 1048576,
82861
+ maxTokens: 131072,
82042
82862
  source: "catalog",
82043
- refreshedAt: "2026-05-11T01:59:12.464Z"
82863
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82044
82864
  },
82045
- "vercel-ai-gateway/mistral/mistral-large-3": {
82865
+ "synthetic/hf:nvidia/nvidia-nemotron-3-super-120b-a12b-nvfp4": {
82866
+ input: ["text"],
82867
+ reasoning: true,
82868
+ capabilities: {
82869
+ tools: true,
82870
+ json: true,
82871
+ thinkingLevels: [
82872
+ "off",
82873
+ "minimal",
82874
+ "low",
82875
+ "medium",
82876
+ "high"
82877
+ ],
82878
+ defaultThinkingLevel: "low",
82879
+ thinkingMode: "generic-reasoning",
82880
+ reasoningBudgetSupported: false
82881
+ },
82882
+ contextWindow: 262144,
82883
+ maxTokens: 65536,
82884
+ source: "catalog",
82885
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82886
+ },
82887
+ "synthetic/hf:openai/gpt-oss-120b": {
82888
+ input: ["text"],
82889
+ reasoning: true,
82890
+ capabilities: {
82891
+ tools: true,
82892
+ json: true,
82893
+ thinkingLevels: [
82894
+ "off",
82895
+ "minimal",
82896
+ "low",
82897
+ "medium",
82898
+ "high"
82899
+ ],
82900
+ defaultThinkingLevel: "low",
82901
+ thinkingMode: "generic-reasoning",
82902
+ reasoningBudgetSupported: false
82903
+ },
82904
+ contextWindow: 131072,
82905
+ maxTokens: 65536,
82906
+ source: "catalog",
82907
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82908
+ },
82909
+ "synthetic/hf:zai-org/glm-4.7-flash": {
82910
+ input: ["text"],
82911
+ reasoning: true,
82912
+ capabilities: {
82913
+ tools: true,
82914
+ json: true,
82915
+ thinkingLevels: ["off", "low"],
82916
+ defaultThinkingLevel: "low",
82917
+ thinkingMode: "zai-binary",
82918
+ reasoningBudgetSupported: false
82919
+ },
82920
+ contextWindow: 196608,
82921
+ maxTokens: 65536,
82922
+ source: "catalog",
82923
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82924
+ },
82925
+ "venice/claude-opus-4-7": {
82046
82926
  input: ["text", "image"],
82047
- tools: false,
82048
- contextWindow: 256e3,
82049
- maxTokens: 256e3,
82927
+ reasoning: true,
82928
+ capabilities: {
82929
+ tools: true,
82930
+ json: true,
82931
+ audio: false,
82932
+ video: false,
82933
+ reasoningBudgetSupported: false
82934
+ },
82935
+ contextWindow: 1e6,
82936
+ maxTokens: 128e3,
82050
82937
  source: "catalog",
82051
- refreshedAt: "2026-05-11T01:59:12.464Z"
82938
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82052
82939
  },
82053
- "vercel-ai-gateway/mistral/mistral-medium": {
82940
+ "venice/claude-sonnet-4-6": {
82054
82941
  input: ["text", "image"],
82055
- tools: true,
82056
- contextWindow: 128e3,
82942
+ reasoning: true,
82943
+ capabilities: {
82944
+ tools: true,
82945
+ json: true,
82946
+ audio: false,
82947
+ video: false,
82948
+ reasoningBudgetSupported: false
82949
+ },
82950
+ contextWindow: 1e6,
82057
82951
  maxTokens: 64e3,
82058
82952
  source: "catalog",
82059
- refreshedAt: "2026-05-11T01:59:12.464Z"
82953
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82060
82954
  },
82061
- "vercel-ai-gateway/moonshotai/kimi-k2.6": {
82955
+ "venice/deepseek-v4-flash": {
82956
+ input: ["text"],
82957
+ reasoning: true,
82958
+ capabilities: {
82959
+ tools: true,
82960
+ json: true,
82961
+ audio: false,
82962
+ video: false,
82963
+ reasoningBudgetSupported: false
82964
+ },
82965
+ contextWindow: 1e6,
82966
+ maxTokens: 32768,
82967
+ source: "catalog",
82968
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82969
+ },
82970
+ "venice/deepseek-v4-pro": {
82971
+ input: ["text"],
82972
+ reasoning: true,
82973
+ capabilities: {
82974
+ tools: true,
82975
+ json: true,
82976
+ audio: false,
82977
+ video: false,
82978
+ reasoningBudgetSupported: false
82979
+ },
82980
+ contextWindow: 1e6,
82981
+ maxTokens: 32768,
82982
+ source: "catalog",
82983
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82984
+ },
82985
+ "venice/gemini-3-1-pro-preview": {
82062
82986
  input: ["text", "image"],
82063
82987
  reasoning: true,
82064
- tools: true,
82065
- contextWindow: 262e3,
82066
- maxTokens: 262e3,
82988
+ capabilities: {
82989
+ tools: true,
82990
+ json: true,
82991
+ audio: true,
82992
+ video: true,
82993
+ thinkingLevels: [
82994
+ "low",
82995
+ "medium",
82996
+ "high"
82997
+ ],
82998
+ defaultThinkingLevel: "low",
82999
+ thinkingMode: "generic-reasoning",
83000
+ reasoningBudgetSupported: false
83001
+ },
83002
+ contextWindow: 1e6,
83003
+ maxTokens: 32768,
82067
83004
  source: "catalog",
82068
- refreshedAt: "2026-05-11T01:59:12.464Z"
83005
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82069
83006
  },
82070
- "vercel-ai-gateway/openai/gpt-5-codex": {
83007
+ "venice/google-gemma-4-31b-it": {
83008
+ input: ["text", "image"],
83009
+ reasoning: true,
83010
+ capabilities: {
83011
+ tools: true,
83012
+ json: true,
83013
+ audio: false,
83014
+ video: true,
83015
+ thinkingLevels: [
83016
+ "off",
83017
+ "low",
83018
+ "medium",
83019
+ "high"
83020
+ ],
83021
+ defaultThinkingLevel: "low",
83022
+ thinkingMode: "generic-reasoning",
83023
+ reasoningBudgetSupported: false
83024
+ },
83025
+ contextWindow: 256e3,
83026
+ maxTokens: 8192,
83027
+ source: "catalog",
83028
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83029
+ },
83030
+ "venice/grok-4-20": {
83031
+ input: ["text", "image"],
83032
+ reasoning: true,
83033
+ capabilities: {
83034
+ tools: true,
83035
+ json: true,
83036
+ audio: false,
83037
+ video: false,
83038
+ reasoningBudgetSupported: false
83039
+ },
83040
+ contextWindow: 2e6,
83041
+ maxTokens: 128e3,
83042
+ source: "catalog",
83043
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83044
+ },
83045
+ "venice/kimi-k2-6": {
83046
+ input: ["text", "image"],
83047
+ reasoning: true,
83048
+ capabilities: {
83049
+ tools: true,
83050
+ json: true,
83051
+ audio: false,
83052
+ video: false,
83053
+ thinkingLevels: [
83054
+ "off",
83055
+ "low",
83056
+ "medium",
83057
+ "high"
83058
+ ],
83059
+ defaultThinkingLevel: "high",
83060
+ thinkingMode: "generic-reasoning",
83061
+ reasoningBudgetSupported: false
83062
+ },
83063
+ contextWindow: 256e3,
83064
+ maxTokens: 65536,
83065
+ source: "catalog",
83066
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83067
+ },
83068
+ "venice/minimax-m27": {
82071
83069
  input: ["text"],
82072
83070
  reasoning: true,
82073
- tools: true,
83071
+ capabilities: {
83072
+ tools: true,
83073
+ json: false,
83074
+ audio: false,
83075
+ video: false,
83076
+ thinkingLevels: [
83077
+ "off",
83078
+ "low",
83079
+ "medium",
83080
+ "high"
83081
+ ],
83082
+ defaultThinkingLevel: "low",
83083
+ thinkingMode: "generic-reasoning",
83084
+ reasoningBudgetSupported: false
83085
+ },
83086
+ contextWindow: 198e3,
83087
+ maxTokens: 32768,
83088
+ source: "catalog",
83089
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83090
+ },
83091
+ "venice/mistral-small-2603": {
83092
+ input: ["text", "image"],
83093
+ reasoning: true,
83094
+ capabilities: {
83095
+ tools: true,
83096
+ json: true,
83097
+ audio: false,
83098
+ video: false,
83099
+ thinkingLevels: ["off", "high"],
83100
+ defaultThinkingLevel: "high",
83101
+ thinkingMode: "generic-reasoning",
83102
+ reasoningBudgetSupported: false
83103
+ },
83104
+ contextWindow: 256e3,
83105
+ maxTokens: 65536,
83106
+ source: "catalog",
83107
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83108
+ },
83109
+ "venice/openai-gpt-54": {
83110
+ input: ["text", "image"],
83111
+ reasoning: true,
83112
+ capabilities: {
83113
+ tools: true,
83114
+ json: true,
83115
+ audio: false,
83116
+ video: false,
83117
+ thinkingLevels: [
83118
+ "off",
83119
+ "minimal",
83120
+ "low",
83121
+ "medium",
83122
+ "high"
83123
+ ],
83124
+ defaultThinkingLevel: "high",
83125
+ thinkingMode: "generic-reasoning",
83126
+ reasoningBudgetSupported: false
83127
+ },
83128
+ contextWindow: 1e6,
83129
+ maxTokens: 131072,
83130
+ source: "catalog",
83131
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83132
+ },
83133
+ "venice/openai-gpt-54-mini": {
83134
+ input: ["text", "image"],
83135
+ reasoning: true,
83136
+ capabilities: {
83137
+ tools: true,
83138
+ json: true,
83139
+ audio: false,
83140
+ video: false,
83141
+ thinkingLevels: [
83142
+ "off",
83143
+ "minimal",
83144
+ "low",
83145
+ "medium",
83146
+ "high"
83147
+ ],
83148
+ defaultThinkingLevel: "high",
83149
+ thinkingMode: "generic-reasoning",
83150
+ reasoningBudgetSupported: false
83151
+ },
82074
83152
  contextWindow: 4e5,
82075
83153
  maxTokens: 128e3,
82076
83154
  source: "catalog",
82077
- refreshedAt: "2026-05-11T01:59:12.464Z"
83155
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82078
83156
  },
82079
- "vercel-ai-gateway/openai/gpt-5.3-codex": {
83157
+ "venice/openai-gpt-55": {
82080
83158
  input: ["text", "image"],
82081
83159
  reasoning: true,
82082
- tools: true,
82083
- contextWindow: 4e5,
83160
+ capabilities: {
83161
+ tools: true,
83162
+ json: true,
83163
+ audio: false,
83164
+ video: false,
83165
+ thinkingLevels: [
83166
+ "off",
83167
+ "low",
83168
+ "medium",
83169
+ "high",
83170
+ "xhigh"
83171
+ ],
83172
+ defaultThinkingLevel: "high",
83173
+ thinkingMode: "generic-reasoning",
83174
+ reasoningBudgetSupported: false
83175
+ },
83176
+ contextWindow: 1e6,
83177
+ maxTokens: 131072,
83178
+ source: "catalog",
83179
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83180
+ },
83181
+ "venice/openai-gpt-55-pro": {
83182
+ input: ["text", "image"],
83183
+ reasoning: true,
83184
+ capabilities: {
83185
+ tools: true,
83186
+ json: true,
83187
+ audio: false,
83188
+ video: false,
83189
+ thinkingLevels: [
83190
+ "medium",
83191
+ "high",
83192
+ "xhigh"
83193
+ ],
83194
+ defaultThinkingLevel: "medium",
83195
+ thinkingMode: "generic-reasoning",
83196
+ reasoningBudgetSupported: false
83197
+ },
83198
+ contextWindow: 1e6,
82084
83199
  maxTokens: 128e3,
82085
83200
  source: "catalog",
82086
- refreshedAt: "2026-05-11T01:59:12.464Z"
83201
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82087
83202
  },
82088
- "vercel-ai-gateway/openai/gpt-5.4": {
83203
+ "venice/openai-gpt-oss-120b": {
83204
+ input: ["text"],
83205
+ reasoning: true,
83206
+ capabilities: {
83207
+ tools: true,
83208
+ json: false,
83209
+ audio: false,
83210
+ video: false,
83211
+ thinkingLevels: [
83212
+ "off",
83213
+ "low",
83214
+ "medium",
83215
+ "high"
83216
+ ],
83217
+ defaultThinkingLevel: "low",
83218
+ thinkingMode: "generic-reasoning",
83219
+ reasoningBudgetSupported: false
83220
+ },
83221
+ contextWindow: 128e3,
83222
+ maxTokens: 16384,
83223
+ source: "catalog",
83224
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83225
+ },
83226
+ "venice/qwen-3-6-plus": {
82089
83227
  input: ["text", "image"],
82090
83228
  reasoning: true,
82091
- tools: true,
82092
- contextWindow: 105e4,
83229
+ capabilities: {
83230
+ tools: true,
83231
+ json: true,
83232
+ audio: false,
83233
+ video: true,
83234
+ reasoningBudgetSupported: false
83235
+ },
83236
+ contextWindow: 1e6,
83237
+ maxTokens: 65536,
83238
+ source: "catalog",
83239
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83240
+ },
83241
+ "venice/qwen3-235b-a22b-thinking-2507": {
83242
+ input: ["text"],
83243
+ reasoning: true,
83244
+ capabilities: {
83245
+ tools: true,
83246
+ json: true,
83247
+ audio: false,
83248
+ video: false,
83249
+ thinkingLevels: [
83250
+ "low",
83251
+ "medium",
83252
+ "high"
83253
+ ],
83254
+ defaultThinkingLevel: "low",
83255
+ thinkingMode: "generic-reasoning",
83256
+ reasoningBudgetSupported: false
83257
+ },
83258
+ contextWindow: 128e3,
83259
+ maxTokens: 16384,
83260
+ source: "catalog",
83261
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83262
+ },
83263
+ "venice/qwen3-5-397b-a17b": {
83264
+ input: ["text", "image"],
83265
+ reasoning: true,
83266
+ capabilities: {
83267
+ tools: true,
83268
+ json: true,
83269
+ audio: false,
83270
+ video: true,
83271
+ thinkingLevels: [
83272
+ "off",
83273
+ "low",
83274
+ "medium",
83275
+ "high"
83276
+ ],
83277
+ defaultThinkingLevel: "low",
83278
+ thinkingMode: "generic-reasoning",
83279
+ reasoningBudgetSupported: false
83280
+ },
83281
+ contextWindow: 128e3,
83282
+ maxTokens: 32768,
83283
+ source: "catalog",
83284
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83285
+ },
83286
+ "venice/qwen3-coder-480b-a35b-instruct-turbo": {
83287
+ input: ["text"],
83288
+ reasoning: false,
83289
+ capabilities: {
83290
+ tools: true,
83291
+ json: true,
83292
+ audio: false,
83293
+ video: false,
83294
+ reasoningBudgetSupported: false
83295
+ },
83296
+ contextWindow: 256e3,
83297
+ maxTokens: 65536,
83298
+ source: "catalog",
83299
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83300
+ },
83301
+ "venice/qwen3-vl-235b-a22b": {
83302
+ input: ["text", "image"],
83303
+ reasoning: false,
83304
+ capabilities: {
83305
+ tools: true,
83306
+ json: true,
83307
+ audio: false,
83308
+ video: false,
83309
+ reasoningBudgetSupported: false
83310
+ },
83311
+ contextWindow: 128e3,
83312
+ maxTokens: 16384,
83313
+ source: "catalog",
83314
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83315
+ },
83316
+ "venice/venice-uncensored-1-2": {
83317
+ input: ["text", "image"],
83318
+ reasoning: false,
83319
+ capabilities: {
83320
+ tools: true,
83321
+ json: true,
83322
+ audio: false,
83323
+ video: false,
83324
+ reasoningBudgetSupported: false
83325
+ },
83326
+ contextWindow: 128e3,
83327
+ maxTokens: 8192,
83328
+ source: "catalog",
83329
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83330
+ },
83331
+ "venice/zai-org-glm-5-1": {
83332
+ input: ["text"],
83333
+ reasoning: true,
83334
+ capabilities: {
83335
+ tools: true,
83336
+ json: true,
83337
+ audio: false,
83338
+ video: false,
83339
+ thinkingLevels: [
83340
+ "off",
83341
+ "low",
83342
+ "medium",
83343
+ "high"
83344
+ ],
83345
+ defaultThinkingLevel: "low",
83346
+ thinkingMode: "generic-reasoning",
83347
+ reasoningBudgetSupported: false
83348
+ },
83349
+ contextWindow: 2e5,
83350
+ maxTokens: 8e4,
83351
+ source: "catalog",
83352
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83353
+ },
83354
+ "vercel-ai-gateway/anthropic/claude-fable-5": {
83355
+ input: ["text", "image"],
83356
+ reasoning: true,
83357
+ capabilities: {
83358
+ tools: true,
83359
+ thinkingLevels: [
83360
+ "off",
83361
+ "minimal",
83362
+ "low",
83363
+ "medium",
83364
+ "high"
83365
+ ],
83366
+ defaultThinkingLevel: "low",
83367
+ thinkingMode: "anthropic-adaptive",
83368
+ reasoningBudgetSupported: false
83369
+ },
83370
+ contextWindow: 1e6,
82093
83371
  maxTokens: 128e3,
82094
83372
  source: "catalog",
82095
- refreshedAt: "2026-05-11T01:59:12.464Z"
83373
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82096
83374
  },
82097
- "vercel-ai-gateway/openai/gpt-5.4-mini": {
83375
+ "vercel-ai-gateway/anthropic/claude-haiku-4.5": {
82098
83376
  input: ["text", "image"],
82099
83377
  reasoning: true,
82100
- tools: true,
82101
- contextWindow: 4e5,
83378
+ capabilities: {
83379
+ tools: true,
83380
+ thinkingLevels: [
83381
+ "off",
83382
+ "minimal",
83383
+ "low",
83384
+ "medium",
83385
+ "high"
83386
+ ],
83387
+ defaultThinkingLevel: "low",
83388
+ thinkingMode: "anthropic-thinking-budget",
83389
+ reasoningBudgetSupported: true
83390
+ },
83391
+ contextWindow: 2e5,
83392
+ maxTokens: 64e3,
83393
+ source: "catalog",
83394
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83395
+ },
83396
+ "vercel-ai-gateway/anthropic/claude-opus-4.8": {
83397
+ input: ["text", "image"],
83398
+ reasoning: true,
83399
+ capabilities: {
83400
+ tools: true,
83401
+ thinkingLevels: [
83402
+ "off",
83403
+ "minimal",
83404
+ "low",
83405
+ "medium",
83406
+ "high"
83407
+ ],
83408
+ defaultThinkingLevel: "low",
83409
+ thinkingMode: "anthropic-adaptive",
83410
+ reasoningBudgetSupported: false
83411
+ },
83412
+ contextWindow: 1e6,
82102
83413
  maxTokens: 128e3,
82103
83414
  source: "catalog",
82104
- refreshedAt: "2026-05-11T01:59:12.464Z"
83415
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82105
83416
  },
82106
- "vercel-ai-gateway/openai/gpt-5.4-nano": {
83417
+ "vercel-ai-gateway/anthropic/claude-sonnet-5": {
82107
83418
  input: ["text", "image"],
82108
83419
  reasoning: true,
82109
- tools: true,
82110
- contextWindow: 4e5,
83420
+ capabilities: {
83421
+ tools: true,
83422
+ thinkingLevels: [
83423
+ "off",
83424
+ "minimal",
83425
+ "low",
83426
+ "medium",
83427
+ "high"
83428
+ ],
83429
+ defaultThinkingLevel: "low",
83430
+ thinkingMode: "anthropic-adaptive",
83431
+ reasoningBudgetSupported: false
83432
+ },
83433
+ contextWindow: 1e6,
82111
83434
  maxTokens: 128e3,
82112
83435
  source: "catalog",
82113
- refreshedAt: "2026-05-11T01:59:12.464Z"
83436
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83437
+ },
83438
+ "vercel-ai-gateway/google/gemini-3.1-flash-lite": {
83439
+ input: ["text", "image"],
83440
+ reasoning: true,
83441
+ capabilities: {
83442
+ tools: true,
83443
+ thinkingLevels: [
83444
+ "off",
83445
+ "minimal",
83446
+ "low",
83447
+ "medium",
83448
+ "high"
83449
+ ],
83450
+ defaultThinkingLevel: "low",
83451
+ thinkingMode: "google-thinking-budget",
83452
+ reasoningBudgetSupported: true
83453
+ },
83454
+ contextWindow: 1e6,
83455
+ maxTokens: 65e3,
83456
+ source: "catalog",
83457
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82114
83458
  },
82115
- "vercel-ai-gateway/openai/gpt-5.4-pro": {
83459
+ "vercel-ai-gateway/google/gemini-3.1-pro-preview": {
82116
83460
  input: ["text", "image"],
82117
83461
  reasoning: true,
82118
- tools: true,
83462
+ capabilities: {
83463
+ tools: true,
83464
+ thinkingLevels: [
83465
+ "off",
83466
+ "minimal",
83467
+ "low",
83468
+ "medium",
83469
+ "high"
83470
+ ],
83471
+ defaultThinkingLevel: "low",
83472
+ thinkingMode: "google-thinking-budget",
83473
+ reasoningBudgetSupported: true
83474
+ },
83475
+ contextWindow: 1e6,
83476
+ maxTokens: 64e3,
83477
+ source: "catalog",
83478
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83479
+ },
83480
+ "vercel-ai-gateway/google/gemini-3.5-flash": {
83481
+ input: ["text", "image"],
83482
+ reasoning: true,
83483
+ capabilities: {
83484
+ tools: true,
83485
+ thinkingLevels: [
83486
+ "off",
83487
+ "minimal",
83488
+ "low",
83489
+ "medium",
83490
+ "high"
83491
+ ],
83492
+ defaultThinkingLevel: "low",
83493
+ thinkingMode: "google-thinking-budget",
83494
+ reasoningBudgetSupported: true
83495
+ },
83496
+ contextWindow: 1e6,
83497
+ maxTokens: 64e3,
83498
+ source: "catalog",
83499
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83500
+ },
83501
+ "vercel-ai-gateway/minimax/minimax-m2.7": {
83502
+ input: ["text"],
83503
+ reasoning: true,
83504
+ capabilities: {
83505
+ tools: true,
83506
+ thinkingLevels: [
83507
+ "off",
83508
+ "minimal",
83509
+ "low",
83510
+ "medium",
83511
+ "high"
83512
+ ],
83513
+ defaultThinkingLevel: "low",
83514
+ thinkingMode: "generic-reasoning",
83515
+ reasoningBudgetSupported: false
83516
+ },
83517
+ contextWindow: 204800,
83518
+ maxTokens: 131e3,
83519
+ source: "catalog",
83520
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83521
+ },
83522
+ "vercel-ai-gateway/minimax/minimax-m2.7-highspeed": {
83523
+ input: ["text"],
83524
+ reasoning: true,
83525
+ capabilities: {
83526
+ tools: true,
83527
+ thinkingLevels: [
83528
+ "off",
83529
+ "minimal",
83530
+ "low",
83531
+ "medium",
83532
+ "high"
83533
+ ],
83534
+ defaultThinkingLevel: "low",
83535
+ thinkingMode: "generic-reasoning",
83536
+ reasoningBudgetSupported: false
83537
+ },
83538
+ contextWindow: 204800,
83539
+ maxTokens: 131100,
83540
+ source: "catalog",
83541
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83542
+ },
83543
+ "vercel-ai-gateway/mistral/mistral-medium-3.5": {
83544
+ input: ["text", "image"],
83545
+ reasoning: true,
83546
+ capabilities: {
83547
+ tools: true,
83548
+ thinkingLevels: [
83549
+ "off",
83550
+ "minimal",
83551
+ "low",
83552
+ "medium",
83553
+ "high"
83554
+ ],
83555
+ defaultThinkingLevel: "low",
83556
+ thinkingMode: "generic-reasoning",
83557
+ reasoningBudgetSupported: false
83558
+ },
83559
+ contextWindow: 256e3,
83560
+ maxTokens: 256e3,
83561
+ source: "catalog",
83562
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83563
+ },
83564
+ "vercel-ai-gateway/moonshotai/kimi-k2.6": {
83565
+ input: ["text", "image"],
83566
+ reasoning: true,
83567
+ capabilities: {
83568
+ tools: true,
83569
+ thinkingLevels: [
83570
+ "off",
83571
+ "minimal",
83572
+ "low",
83573
+ "medium",
83574
+ "high"
83575
+ ],
83576
+ defaultThinkingLevel: "low",
83577
+ thinkingMode: "moonshot-thinking",
83578
+ reasoningBudgetSupported: false
83579
+ },
83580
+ contextWindow: 262e3,
83581
+ maxTokens: 262e3,
83582
+ source: "catalog",
83583
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83584
+ },
83585
+ "vercel-ai-gateway/openai/gpt-5.4": {
83586
+ input: ["text", "image"],
83587
+ reasoning: true,
83588
+ capabilities: {
83589
+ tools: true,
83590
+ thinkingLevels: [
83591
+ "off",
83592
+ "minimal",
83593
+ "low",
83594
+ "medium",
83595
+ "high",
83596
+ "xhigh"
83597
+ ],
83598
+ defaultThinkingLevel: "low",
83599
+ thinkingMode: "openai-reasoning-effort",
83600
+ reasoningBudgetSupported: false
83601
+ },
82119
83602
  contextWindow: 105e4,
82120
83603
  maxTokens: 128e3,
82121
83604
  source: "catalog",
82122
- refreshedAt: "2026-05-11T01:59:12.464Z"
83605
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82123
83606
  },
82124
- "vercel-ai-gateway/openai/gpt-5.5": {
83607
+ "vercel-ai-gateway/openai/gpt-5.4-mini": {
82125
83608
  input: ["text", "image"],
82126
83609
  reasoning: true,
82127
- tools: true,
82128
- contextWindow: 1e6,
83610
+ capabilities: {
83611
+ tools: true,
83612
+ thinkingLevels: [
83613
+ "off",
83614
+ "minimal",
83615
+ "low",
83616
+ "medium",
83617
+ "high",
83618
+ "xhigh"
83619
+ ],
83620
+ defaultThinkingLevel: "low",
83621
+ thinkingMode: "openai-reasoning-effort",
83622
+ reasoningBudgetSupported: false
83623
+ },
83624
+ contextWindow: 4e5,
83625
+ maxTokens: 128e3,
83626
+ source: "catalog",
83627
+ refreshedAt: "2026-07-12T05:03:49.877Z"
83628
+ },
83629
+ "vercel-ai-gateway/openai/gpt-5.4-nano": {
83630
+ input: ["text", "image"],
83631
+ reasoning: true,
83632
+ capabilities: {
83633
+ tools: true,
83634
+ thinkingLevels: [
83635
+ "off",
83636
+ "minimal",
83637
+ "low",
83638
+ "medium",
83639
+ "high",
83640
+ "xhigh"
83641
+ ],
83642
+ defaultThinkingLevel: "low",
83643
+ thinkingMode: "openai-reasoning-effort",
83644
+ reasoningBudgetSupported: false
83645
+ },
83646
+ contextWindow: 4e5,
82129
83647
  maxTokens: 128e3,
82130
83648
  source: "catalog",
82131
- refreshedAt: "2026-05-11T01:59:12.464Z"
83649
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82132
83650
  },
82133
- "vercel-ai-gateway/openai/gpt-5.5-pro": {
83651
+ "vercel-ai-gateway/openai/gpt-5.5": {
82134
83652
  input: ["text", "image"],
82135
83653
  reasoning: true,
82136
- tools: true,
83654
+ capabilities: {
83655
+ tools: true,
83656
+ thinkingLevels: [
83657
+ "off",
83658
+ "minimal",
83659
+ "low",
83660
+ "medium",
83661
+ "high",
83662
+ "xhigh"
83663
+ ],
83664
+ defaultThinkingLevel: "low",
83665
+ thinkingMode: "openai-reasoning-effort",
83666
+ reasoningBudgetSupported: false
83667
+ },
82137
83668
  contextWindow: 1e6,
82138
83669
  maxTokens: 128e3,
82139
83670
  source: "catalog",
82140
- refreshedAt: "2026-05-11T01:59:12.464Z"
83671
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82141
83672
  },
82142
83673
  "vercel-ai-gateway/xai/grok-4.3": {
82143
83674
  input: ["text", "image"],
82144
83675
  reasoning: true,
82145
- tools: true,
83676
+ capabilities: {
83677
+ tools: true,
83678
+ thinkingLevels: [
83679
+ "off",
83680
+ "minimal",
83681
+ "low",
83682
+ "medium",
83683
+ "high"
83684
+ ],
83685
+ defaultThinkingLevel: "low",
83686
+ thinkingMode: "generic-reasoning",
83687
+ reasoningBudgetSupported: false
83688
+ },
82146
83689
  contextWindow: 1e6,
82147
83690
  maxTokens: 1e6,
82148
83691
  source: "catalog",
82149
- refreshedAt: "2026-05-11T01:59:12.464Z"
83692
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82150
83693
  },
82151
- "vercel-ai-gateway/xai/grok-code-fast-1": {
82152
- input: ["text"],
83694
+ "vercel-ai-gateway/xai/grok-build-0.1": {
83695
+ input: ["text", "image"],
82153
83696
  reasoning: true,
82154
- tools: true,
83697
+ capabilities: {
83698
+ tools: true,
83699
+ thinkingLevels: [
83700
+ "off",
83701
+ "minimal",
83702
+ "low",
83703
+ "medium",
83704
+ "high"
83705
+ ],
83706
+ defaultThinkingLevel: "low",
83707
+ thinkingMode: "generic-reasoning",
83708
+ reasoningBudgetSupported: false
83709
+ },
82155
83710
  contextWindow: 256e3,
82156
83711
  maxTokens: 256e3,
82157
83712
  source: "catalog",
82158
- refreshedAt: "2026-05-11T01:59:12.464Z"
83713
+ refreshedAt: "2026-07-12T05:03:49.877Z"
82159
83714
  }
82160
83715
  };
82161
83716
  function lookupRefreshedModelCapability(provider, model) {
82162
- const refreshed = REFRESHED_MODEL_CAPABILITIES[`${provider.trim()}/${model.trim()}`.toLowerCase()];
82163
- if (!refreshed || refreshed.tools === void 0 && refreshed.json === void 0) return refreshed;
82164
- return {
82165
- ...refreshed,
82166
- capabilities: {
82167
- ...refreshed.capabilities,
82168
- ...refreshed.tools === void 0 ? {} : { tools: refreshed.tools },
82169
- ...refreshed.json === void 0 ? {} : { json: refreshed.json }
82170
- }
82171
- };
83717
+ return REFRESHED_MODEL_CAPABILITIES[`${provider.trim()}/${model.trim()}`.toLowerCase()];
82172
83718
  }
82173
83719
 
82174
83720
  //#endregion
@@ -82330,11 +83876,29 @@ function runtimeCatalogRows(params) {
82330
83876
  }
82331
83877
  return rows;
82332
83878
  }
83879
+ function manifestCatalogRows() {
83880
+ return listProviderBrandManifests().flatMap((manifest) => manifest.models.recommended.flatMap((ref) => {
83881
+ const slash = ref.indexOf("/");
83882
+ if (slash <= 0 || slash === ref.length - 1) return [];
83883
+ const provider = normalizeModelCatalogProviderId(ref.slice(0, slash));
83884
+ const id = normalizeModelCatalogModelId(ref.slice(slash + 1));
83885
+ if (!provider || !id) return [];
83886
+ return [{
83887
+ id,
83888
+ name: id,
83889
+ provider,
83890
+ mergeKey: buildModelCatalogMergeKey(provider, id),
83891
+ source: "manifest",
83892
+ status: "stable",
83893
+ input: ["text"]
83894
+ }];
83895
+ }));
83896
+ }
82333
83897
  function providerConfigForRow(cfg, row) {
82334
83898
  return cfg.models?.providers?.[row.provider] ?? CURRENT_MODEL_PROVIDER_CATALOG[row.provider];
82335
83899
  }
82336
83900
  function buildFasedModelCatalogRows(params) {
82337
- return mergeModelCatalogRowsByAuthority([
83901
+ const discoveredRows = mergeModelCatalogRowsByAuthority([
82338
83902
  ...listCurrentModelCatalogRows(),
82339
83903
  ...providerPluginCatalogRows(params.providerPluginProviders),
82340
83904
  ...runtimeCatalogRows({
@@ -82343,6 +83907,9 @@ function buildFasedModelCatalogRows(params) {
82343
83907
  }),
82344
83908
  ...configuredProviderCatalogRows(params.config)
82345
83909
  ]);
83910
+ const discoveredKeys = new Set(discoveredRows.map((row) => row.mergeKey));
83911
+ const missingManifestRows = manifestCatalogRows().filter((row) => !discoveredKeys.has(row.mergeKey));
83912
+ return mergeModelCatalogRowsByAuthority([...discoveredRows, ...missingManifestRows]);
82346
83913
  }
82347
83914
  function buildFasedModelCatalogEntries(params) {
82348
83915
  return buildFasedModelCatalogRows({
@@ -82370,7 +83937,7 @@ function buildFasedModelCatalogEntries(params) {
82370
83937
  model,
82371
83938
  cfg: params.config,
82372
83939
  providerConfig,
82373
- recommended: row.source === "current-preview"
83940
+ recommended: isStandardProviderCatalogEntry(row)
82374
83941
  }) } : {}
82375
83942
  };
82376
83943
  });
@@ -82472,7 +84039,7 @@ const log$8 = createSubsystemLogger("model-catalog");
82472
84039
  let modelCatalogPromise = null;
82473
84040
  let hasLoggedModelCatalogError = false;
82474
84041
  let hasLoggedProviderCatalogError = false;
82475
- const defaultImportPiSdk = () => import("./pi-model-discovery-C5klknQZ.js").then((n) => n.a);
84042
+ const defaultImportPiSdk = () => import("./pi-model-discovery-ReorOh7W.js").then((n) => n.a);
82476
84043
  let importPiSdk = defaultImportPiSdk;
82477
84044
  const CODEX_PROVIDER = "openai-codex";
82478
84045
  const OPENAI_PROVIDER = "openai";