@fased/fased 0.1.54 → 0.1.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/agents/authenticated-model-catalog.js +27 -0
  2. package/dist/agents/current-model-catalog.js +3 -10
  3. package/dist/agents/model-catalog-normalized.js +1 -0
  4. package/dist/agents/model-metadata.js +25 -4
  5. package/dist/agents/pi-embedded-runner/extra-params.js +25 -0
  6. package/dist/agents/pi-embedded-runner/utils.js +1 -1
  7. package/dist/brand.js +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  10. package/dist/cli/providers-cli.js +3 -2
  11. package/dist/commands/auth-choice.apply.api-providers.js +3 -8
  12. package/dist/commands/auth-choice.apply.openai.js +13 -7
  13. package/dist/commands/auth-choice.model-check.js +1 -2
  14. package/dist/commands/configure.gateway-auth.js +14 -16
  15. package/dist/commands/model-picker.js +25 -7
  16. package/dist/commands/models/list.registry.js +12 -17
  17. package/dist/commands/onboard-auth.config-core.js +1 -1
  18. package/dist/commands/onboard-auth.config-litellm.js +21 -21
  19. package/dist/commands/onboard-auth.credentials.js +0 -1
  20. package/dist/commands/onboard-auth.js +0 -1
  21. package/dist/commands/openai-codex-model-default.js +27 -5
  22. package/dist/config/zod-schema.agent-defaults.js +4 -2
  23. package/dist/config/zod-schema.agent-runtime.js +4 -2
  24. package/dist/config/zod-schema.core.js +4 -2
  25. package/dist/control-ui/assets/{app-BKlu6OKz.js → app-D2RaTXoV.js} +1475 -1474
  26. package/dist/control-ui/assets/chat-model-ref-BZFblCeY.js +2 -0
  27. package/dist/control-ui/assets/{index-nrFcGMv-.js → index-D2nC6I-9.js} +3 -3
  28. package/dist/control-ui/assets/{providers-BQFrRqym.js → providers-CyjiG5Jw.js} +4 -4
  29. package/dist/control-ui/index.html +1 -1
  30. package/dist/control-ui/version.json +1 -0
  31. package/dist/gateway/control-ui.js +2 -0
  32. package/dist/gateway/protocol/schema/agents-models-skills.js +5 -2
  33. package/dist/gateway/server-methods/models.js +7 -8
  34. package/dist/gateway/server-model-catalog.js +3 -0
  35. package/dist/infra/update-runner.js +31 -3
  36. package/dist/light-update-status.js +11 -11
  37. package/dist/memory/inventory.js +19 -2
  38. package/dist/plugin-sdk/{accounts-DW9OS5Ll.js → accounts-CeRNo5Ae.js} +1 -1
  39. package/dist/plugin-sdk/{actions-DQUXohRr.js → actions-OMRHtXPj.js} +2 -2
  40. package/dist/plugin-sdk/{active-listener-BZQWZPF7.js → active-listener-BlIkS3iR.js} +1 -1
  41. package/dist/plugin-sdk/{audio-preflight-t4mmHsI2.js → audio-preflight-B2n3a2Tj.js} +26 -26
  42. package/dist/plugin-sdk/{audit-BZk_6Buw.js → audit-Ppg6dR_b.js} +1 -1
  43. package/dist/plugin-sdk/{channel-access-CN5HiWdb.js → channel-access-af8dWWRv.js} +1 -1
  44. package/dist/plugin-sdk/{channel-access-configure-B7Kkvx9K.js → channel-access-configure-B6IAGlE0.js} +1 -1
  45. package/dist/plugin-sdk/channel-plugin-common.d.ts +3 -3
  46. package/dist/plugin-sdk/channel-plugin-common.js +4 -4
  47. package/dist/plugin-sdk/{chunk-B2ffJ-LR.js → chunk-CD76Byie.js} +1 -1
  48. package/dist/plugin-sdk/{chunk-items-jOdkyP53.js → chunk-items-Bu19zrYH.js} +1 -1
  49. package/dist/plugin-sdk/command-status.d.ts +2 -2
  50. package/dist/plugin-sdk/command-status.js +26 -26
  51. package/dist/plugin-sdk/{commands-registry-BWb4NcfW.js → commands-registry-DgS55tNj.js} +2 -2
  52. package/dist/plugin-sdk/{common-C4XrB73N.js → common-CWvfeiX0.js} +1 -1
  53. package/dist/plugin-sdk/{config-rySyVtKs.js → config-CYDETqcF.js} +83 -65
  54. package/dist/plugin-sdk/{config-schema-BaybPPrJ.js → config-schema-CQ4EVcQG.js} +128 -66
  55. package/dist/plugin-sdk/device-pair.d.ts +1 -1
  56. package/dist/plugin-sdk/discord.d.ts +5 -5
  57. package/dist/plugin-sdk/discord.js +19 -19
  58. package/dist/plugin-sdk/{group-mentions-DLOOve8d.d.ts → group-mentions-BxDgHCgj.d.ts} +1 -1
  59. package/dist/plugin-sdk/{handle-action-CGF-Qnp0.js → handle-action-B75UVKxF.js} +13 -13
  60. package/dist/plugin-sdk/{helpers-DgRMfCnT.js → helpers-BuEwju6y.js} +1 -1
  61. package/dist/plugin-sdk/{image-ops-CcBfoMLW.js → image-ops-C66HPeAZ.js} +1 -1
  62. package/dist/plugin-sdk/index.d.ts +8 -8
  63. package/dist/plugin-sdk/index.js +28 -28
  64. package/dist/plugin-sdk/{login-DpDQyM7r.js → login-Amr2DpKU.js} +3 -3
  65. package/dist/plugin-sdk/{login-qr-COaSAPY5.js → login-qr-DMQNEi9m.js} +3 -3
  66. package/dist/plugin-sdk/{manager-Cqz30lA3.js → manager-Bvpq49BI.js} +2 -2
  67. package/dist/plugin-sdk/{markdown-tables-BOG5sSQQ.js → markdown-tables-DmQ7oXOm.js} +1 -1
  68. package/dist/plugin-sdk/{media-Bu-nJpPs.js → media-ByLQbEwJ.js} +2 -2
  69. package/dist/plugin-sdk/{monitor-II_NIq3G.js → monitor-K_u6daGa.js} +30 -30
  70. package/dist/plugin-sdk/{monitor-DL6oEVo8.js → monitor-S_7LrvSj.js} +31 -31
  71. package/dist/plugin-sdk/{openresponses-http-vkHBBpGY.js → openresponses-http-BrDJUZXR.js} +26 -26
  72. package/dist/plugin-sdk/{optional-runtime-dependency-DEojVNfv.js → optional-runtime-dependency-CbYjAC2b.js} +1 -1
  73. package/dist/plugin-sdk/{outbound-mf2y6KuY.js → outbound-BuDafBBI.js} +6 -6
  74. package/dist/plugin-sdk/{outbound-attachment-ivAHpWnn.js → outbound-attachment-DmZmUqFP.js} +2 -2
  75. package/dist/plugin-sdk/{pairing-message-CvJ6Qa1Q.d.ts → pairing-message-D0-UWGFJ.d.ts} +2 -2
  76. package/dist/plugin-sdk/{pairing-message-CqYG12t-.js → pairing-message-e4D4eBDA.js} +1 -1
  77. package/dist/plugin-sdk/{pairing-store-D-21Sphe.js → pairing-store-T3IGoGZg.js} +2 -2
  78. package/dist/plugin-sdk/{pi-model-discovery-B6gD1clF.js → pi-model-discovery-DvAG_Png.js} +1 -1
  79. package/dist/plugin-sdk/{pi-model-discovery-runtime-3yDxS3ro.js → pi-model-discovery-runtime-NjkUgjIf.js} +2 -2
  80. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
  81. package/dist/plugin-sdk/{pw-ai-CMplwiwf.js → pw-ai-D7eW43DL.js} +3 -3
  82. package/dist/plugin-sdk/{replies-wiI4veI7.js → replies-BMIPmEoP.js} +2 -2
  83. package/dist/plugin-sdk/{resolve-outbound-target-bm9RUK5q.js → resolve-outbound-target-CXCqUUPV.js} +1 -1
  84. package/dist/plugin-sdk/{resolve-route-ekGNc6os.js → resolve-route-DJN-SUSt.js} +1 -1
  85. package/dist/plugin-sdk/{retry-policy-BvlC2SPh.js → retry-policy-CY1qY6d7.js} +1 -1
  86. package/dist/plugin-sdk/{runtime-ClSakPxR.js → runtime-CgOkQe0w.js} +3 -3
  87. package/dist/plugin-sdk/{runtime-dependency-yAWxH4El.js → runtime-dependency-DvdRNMvs.js} +2 -2
  88. package/dist/plugin-sdk/sat-runtime.d.ts +3 -3
  89. package/dist/plugin-sdk/sat-runtime.js +5 -5
  90. package/dist/plugin-sdk/{send-CgyS75Av.js → send-2ITqny2W.js} +8 -8
  91. package/dist/plugin-sdk/{send-D264hFVb.js → send-BAz22RZr.js} +5 -5
  92. package/dist/plugin-sdk/{send-C7x6gzSl.js → send-BG3RWyil.js} +7 -7
  93. package/dist/plugin-sdk/{send-D58yEeH4.js → send-Cr-dj6S-.js} +6 -6
  94. package/dist/plugin-sdk/{send-DrAtUGLM.js → send-eTxqFFsw.js} +6 -6
  95. package/dist/plugin-sdk/{session-DyMtb5YQ.js → session-C8nJmmVE.js} +2 -2
  96. package/dist/plugin-sdk/{skill-commands-Q80wCyry.js → skill-commands-Rm5by9S8.js} +2 -2
  97. package/dist/plugin-sdk/{slack-actions-dGE_t_Un.js → slack-actions-BNIALJTA.js} +11 -11
  98. package/dist/plugin-sdk/{slack-C-I6q3NB.js → slack-xvIVvyEM.js} +38 -38
  99. package/dist/plugin-sdk/slack.d.ts +5 -5
  100. package/dist/plugin-sdk/slack.js +9 -9
  101. package/dist/plugin-sdk/{sticker-cache-DCrDTYIi.js → sticker-cache-D3oDiu2u.js} +3 -3
  102. package/dist/plugin-sdk/{tables-0mhUOh5v.js → tables-DS5L7lCA.js} +1 -1
  103. package/dist/plugin-sdk/{targets-znKHngSk.js → targets-D6lUomJc.js} +1 -1
  104. package/dist/plugin-sdk/{telegram-actions-GBYY8-x9.js → telegram-actions-MSFkDn0m.js} +29 -29
  105. package/dist/plugin-sdk/telegram.d.ts +5 -5
  106. package/dist/plugin-sdk/telegram.js +8 -8
  107. package/dist/plugin-sdk/{thread-bindings.lifecycle-ClzPBK70.js → thread-bindings.lifecycle-Ry6Vcgw3.js} +3 -3
  108. package/dist/plugin-sdk/{thread-bindings.state-Ha01nmrq.js → thread-bindings.state-C0stmvNk.js} +2 -2
  109. package/dist/plugin-sdk/{tmp-fased-dir-C_xfeEN9.d.ts → tmp-fased-dir-D91GExk4.d.ts} +2 -2
  110. package/dist/plugin-sdk/{types-CBCtqtMn.d.ts → types-BzadOItY.d.ts} +1 -1
  111. package/dist/plugin-sdk/{types-BI2njxWJ.d.ts → types-DKvBJHfH.d.ts} +14 -5
  112. package/dist/plugin-sdk/{types-DV5TNhMK.d.ts → types-DVTIpopt.d.ts} +2 -2
  113. package/dist/plugin-sdk/{types.plugin-CvUiB3Kh.d.ts → types.plugin-BiHPaDTF.d.ts} +2 -1
  114. package/dist/plugin-sdk/{wallet-status-CyovJojz.js → wallet-status-f0HagNeO.js} +8 -5
  115. package/dist/plugin-sdk/{web-CJMfhGFY.js → web-DRNJxHXA.js} +31 -31
  116. package/dist/plugin-sdk/{whatsapp-actions-0ZbGo5ZV.js → whatsapp-actions-BDXZF2R5.js} +13 -13
  117. package/dist/plugin-sdk/{whatsapp-heartbeat-DGTsuvQ8.js → whatsapp-heartbeat-CKgmwCGr.js} +2 -2
  118. package/dist/plugin-sdk/whatsapp.d.ts +5 -5
  119. package/dist/plugin-sdk/whatsapp.js +12 -12
  120. package/dist/plugin-sdk/{wsl-D5jDUlms.js → wsl-Biw7Mj39.js} +3 -3
  121. package/dist/providers/litellm-models.js +1 -1
  122. package/dist/providers/refresh.js +218 -56
  123. package/dist/providers/registry.js +15 -5
  124. package/dist/providers/runtime-model-catalog.js +181 -0
  125. package/dist/shared/model-thinking.js +41 -2
  126. package/dist/wizard/onboarding.js +24 -6
  127. package/extensions/acpx/package.json +1 -1
  128. package/extensions/bluebubbles/package.json +1 -1
  129. package/extensions/copilot-proxy/package.json +1 -1
  130. package/extensions/diagnostics-otel/package.json +1 -1
  131. package/extensions/fased-federation/package.json +1 -1
  132. package/extensions/google-gemini-cli-auth/package.json +1 -1
  133. package/extensions/imessage/package.json +1 -1
  134. package/extensions/irc/package.json +1 -1
  135. package/extensions/line/package.json +1 -1
  136. package/extensions/llm-task/package.json +1 -1
  137. package/extensions/lobster/package.json +1 -1
  138. package/extensions/matrix/CHANGELOG.md +6 -0
  139. package/extensions/matrix/package.json +1 -1
  140. package/extensions/mattermost/package.json +1 -1
  141. package/extensions/memory-core/package.json +2 -2
  142. package/extensions/memory-lancedb/package.json +1 -1
  143. package/extensions/minimax-portal-auth/package.json +1 -1
  144. package/extensions/msteams/CHANGELOG.md +6 -0
  145. package/extensions/msteams/package.json +1 -1
  146. package/extensions/nextcloud-talk/package.json +1 -1
  147. package/extensions/nostr/CHANGELOG.md +6 -0
  148. package/extensions/nostr/package.json +1 -1
  149. package/extensions/open-prose/package.json +1 -1
  150. package/extensions/sat-mining/package.json +1 -1
  151. package/extensions/signal/package.json +1 -1
  152. package/extensions/synology-chat/package.json +1 -1
  153. package/extensions/tlon/package.json +1 -1
  154. package/extensions/twitch/CHANGELOG.md +6 -0
  155. package/extensions/twitch/package.json +1 -1
  156. package/extensions/voice-call/CHANGELOG.md +6 -0
  157. package/extensions/voice-call/package.json +1 -1
  158. package/extensions/zalo/CHANGELOG.md +6 -0
  159. package/extensions/zalo/package.json +1 -1
  160. package/extensions/zalouser/CHANGELOG.md +6 -0
  161. package/extensions/zalouser/package.json +1 -1
  162. package/package.json +1 -1
  163. package/dist/control-ui/assets/chat-model-ref-B9sWop67.js +0 -2
@@ -2028,6 +2028,14 @@ const BASE_THINKING_LEVELS = [
2028
2028
  "high"
2029
2029
  ];
2030
2030
  const XHIGH_THINKING_LEVELS = [...BASE_THINKING_LEVELS, "xhigh"];
2031
+ const MAX_THINKING_LEVELS = [
2032
+ "off",
2033
+ "low",
2034
+ "medium",
2035
+ "high",
2036
+ "xhigh",
2037
+ "max"
2038
+ ];
2031
2039
  const XHIGH_MODEL_REFS = [
2032
2040
  "openai/gpt-5.6",
2033
2041
  "openai/gpt-5.6-terra",
@@ -2050,6 +2058,21 @@ const XHIGH_MODEL_REFS = [
2050
2058
  ];
2051
2059
  const XHIGH_MODEL_SET = new Set(XHIGH_MODEL_REFS.map((entry) => entry.toLowerCase()));
2052
2060
  const XHIGH_MODEL_IDS = new Set(XHIGH_MODEL_REFS.map((entry) => entry.split("/")[1]?.toLowerCase()).filter((entry) => Boolean(entry)));
2061
+ const MAX_MODEL_REFS = new Set([
2062
+ "openai/gpt-5.6",
2063
+ "openai/gpt-5.6-sol",
2064
+ "openai/gpt-5.6-terra",
2065
+ "openai/gpt-5.6-luna",
2066
+ "openai-codex/gpt-5.6-sol",
2067
+ "openai-codex/gpt-5.6-terra",
2068
+ "openai-codex/gpt-5.6-luna"
2069
+ ].map((entry) => entry.toLowerCase()));
2070
+ const MAX_MODEL_IDS = new Set([
2071
+ "gpt-5.6",
2072
+ "gpt-5.6-sol",
2073
+ "gpt-5.6-terra",
2074
+ "gpt-5.6-luna"
2075
+ ]);
2053
2076
  function normalizeProviderId$2(provider) {
2054
2077
  if (!provider) return "";
2055
2078
  const normalized = provider.trim().toLowerCase();
@@ -2064,6 +2087,7 @@ function normalizeThinkLevel(raw) {
2064
2087
  const key = raw.trim().toLowerCase();
2065
2088
  const collapsed = key.replace(/[\s_-]+/g, "");
2066
2089
  if (collapsed === "xhigh" || collapsed === "extrahigh") return "xhigh";
2090
+ if (key === "max") return "max";
2067
2091
  if (key === "off") return "off";
2068
2092
  if ([
2069
2093
  "on",
@@ -2091,11 +2115,17 @@ function normalizeThinkLevel(raw) {
2091
2115
  "ultrathink",
2092
2116
  "think-hard",
2093
2117
  "thinkhardest",
2094
- "highest",
2095
- "max"
2118
+ "highest"
2096
2119
  ].includes(key)) return "high";
2097
2120
  if (key === "think") return "minimal";
2098
2121
  }
2122
+ function supportsMaxThinking(provider, model) {
2123
+ const modelKey = model?.trim().toLowerCase();
2124
+ if (!modelKey) return false;
2125
+ const providerKey = provider?.trim().toLowerCase();
2126
+ if (providerKey) return MAX_MODEL_REFS.has(`${providerKey}/${modelKey}`);
2127
+ return MAX_MODEL_IDS.has(modelKey);
2128
+ }
2099
2129
  function supportsXHighThinking(provider, model) {
2100
2130
  const modelKey = model?.trim().toLowerCase();
2101
2131
  if (!modelKey) return false;
@@ -2115,6 +2145,7 @@ function normalizeThinkingLevels(values) {
2115
2145
  return levels;
2116
2146
  }
2117
2147
  function listGenericThinkingLevels(provider, model) {
2148
+ if (supportsMaxThinking(provider, model)) return [...MAX_THINKING_LEVELS];
2118
2149
  return supportsXHighThinking(provider, model) ? [...XHIGH_THINKING_LEVELS] : [...BASE_THINKING_LEVELS];
2119
2150
  }
2120
2151
  function isAnthropicAdaptiveModel(model) {
@@ -2657,50 +2688,6 @@ function buildHuggingfaceModelCapabilityOverrides(routeId = "huggingface") {
2657
2688
  return Object.fromEntries(HUGGINGFACE_MODEL_CATALOG.map((model) => [`${routeId}/${model.id}`.toLowerCase(), capabilityForModel(model)]));
2658
2689
  }
2659
2690
 
2660
- //#endregion
2661
- //#region src/providers/litellm-models.ts
2662
- const LITELLM_BASE_URL = "http://localhost:4000/v1";
2663
- const LITELLM_DEFAULT_MODEL_ID = "default";
2664
- const LITELLM_DEFAULT_MODEL_REF = `litellm/${LITELLM_DEFAULT_MODEL_ID}`;
2665
- const LITELLM_DEFAULT_COST = {
2666
- input: 0,
2667
- output: 0,
2668
- cacheRead: 0,
2669
- cacheWrite: 0
2670
- };
2671
- const LITELLM_MODEL_CATALOG = [{
2672
- id: LITELLM_DEFAULT_MODEL_ID,
2673
- name: "LiteLLM proxy default",
2674
- reasoning: false,
2675
- input: ["text"],
2676
- contextWindow: 128e3,
2677
- maxTokens: 8192,
2678
- cost: LITELLM_DEFAULT_COST,
2679
- capabilities: {}
2680
- }];
2681
- const LITELLM_MODEL_IDS = LITELLM_MODEL_CATALOG.map((model) => model.id);
2682
- const LITELLM_MODEL_REFS = LITELLM_MODEL_IDS.map((id) => `litellm/${id}`);
2683
- function buildLitellmModelDefinition(model) {
2684
- return {
2685
- id: model.id,
2686
- name: model.name,
2687
- api: "openai-completions",
2688
- reasoning: model.reasoning,
2689
- input: [...model.input],
2690
- cost: { ...model.cost },
2691
- contextWindow: model.contextWindow,
2692
- maxTokens: model.maxTokens,
2693
- compat: {
2694
- supportsUsageInStreaming: false,
2695
- supportsReasoningEffort: false
2696
- },
2697
- capabilities: model.capabilities ? { ...model.capabilities } : void 0
2698
- };
2699
- }
2700
- function buildLitellmModelCapabilityOverrides(routeId = "litellm") {
2701
- return Object.fromEntries(LITELLM_MODEL_CATALOG.map((model) => [`${routeId}/${model.id}`.toLowerCase(), model.capabilities ? { ...model.capabilities } : {}]));
2702
- }
2703
-
2704
2691
  //#endregion
2705
2692
  //#region src/providers/opencode-zen-shared.ts
2706
2693
  const OPENCODE_ZEN_MODEL_IDS = [
@@ -4255,6 +4242,29 @@ function buildXiaomiModelCapabilityOverrides(routeId = "xiaomi") {
4255
4242
  return Object.fromEntries(XIAOMI_MODEL_CATALOG$1.map((model) => [`${routeId}/${model.id}`, model.capabilities ? { ...model.capabilities } : {}]));
4256
4243
  }
4257
4244
 
4245
+ //#endregion
4246
+ //#region src/providers/litellm-models.ts
4247
+ const LITELLM_DEFAULT_MODEL_ID = "default";
4248
+ const LITELLM_DEFAULT_MODEL_REF = `litellm/${LITELLM_DEFAULT_MODEL_ID}`;
4249
+ const LITELLM_DEFAULT_COST = {
4250
+ input: 0,
4251
+ output: 0,
4252
+ cacheRead: 0,
4253
+ cacheWrite: 0
4254
+ };
4255
+ const LITELLM_MODEL_CATALOG = [{
4256
+ id: LITELLM_DEFAULT_MODEL_ID,
4257
+ name: "LiteLLM proxy default",
4258
+ reasoning: false,
4259
+ input: ["text"],
4260
+ contextWindow: 128e3,
4261
+ maxTokens: 8192,
4262
+ cost: LITELLM_DEFAULT_COST,
4263
+ capabilities: {}
4264
+ }];
4265
+ const LITELLM_MODEL_IDS = LITELLM_MODEL_CATALOG.map((model) => model.id);
4266
+ const LITELLM_MODEL_REFS = LITELLM_MODEL_IDS.map((id) => `litellm/${id}`);
4267
+
4258
4268
  //#endregion
4259
4269
  //#region src/providers/registry.ts
4260
4270
  const PROVIDER_BRAND_ORDER = [
@@ -4668,7 +4678,6 @@ const SYNTHETIC_MODEL_CAPABILITY_OVERRIDES = buildSyntheticModelCapabilityOverri
4668
4678
  const TOGETHER_MODEL_CAPABILITY_OVERRIDES = buildTogetherModelCapabilityOverrides(TOGETHER_ROUTE_ID);
4669
4679
  const HUGGINGFACE_MODEL_CAPABILITY_OVERRIDES = buildHuggingfaceModelCapabilityOverrides(HUGGINGFACE_ROUTE_ID);
4670
4680
  const VENICE_MODEL_CAPABILITY_OVERRIDES = buildVeniceModelCapabilityOverrides(VENICE_ROUTE_ID);
4671
- const LITELLM_MODEL_CAPABILITY_OVERRIDES = buildLitellmModelCapabilityOverrides(LITELLM_ROUTE_ID);
4672
4681
  const CLOUDFLARE_AI_GATEWAY_MODEL_CAPABILITY_OVERRIDES = buildCloudflareAiGatewayModelCapabilityOverrides(CLOUDFLARE_AI_GATEWAY_ROUTE_ID);
4673
4682
  const CUSTOM_PROVIDER_MODEL_REFS = [];
4674
4683
  function parseModelRef$1(ref) {
@@ -5673,12 +5682,12 @@ const LITELLM_PROVIDER_MANIFEST = {
5673
5682
  hint: "LiteLLM Proxy virtual key or master key plus /v1 base URL"
5674
5683
  }],
5675
5684
  models: {
5676
- recommended: [...LITELLM_MODEL_REFS],
5685
+ recommended: [],
5677
5686
  dynamic: true,
5678
5687
  operatorCatalog: true,
5679
5688
  routeRules: { [LITELLM_ROUTE_ID]: [`${LITELLM_ROUTE_ID}/*`] }
5680
5689
  },
5681
- modelCapabilities: LITELLM_MODEL_CAPABILITY_OVERRIDES
5690
+ modelCapabilities: {}
5682
5691
  };
5683
5692
  const CLOUDFLARE_AI_GATEWAY_PROVIDER_MANIFEST = {
5684
5693
  id: CLOUDFLARE_AI_GATEWAY_PROVIDER_BRAND_ID,
@@ -5792,6 +5801,14 @@ function isStandardProviderModelRef(ref) {
5792
5801
  if (manifest.models.operatorCatalog) return true;
5793
5802
  return STANDARD_PROVIDER_MODEL_REFS.has(value.toLowerCase());
5794
5803
  }
5804
+ function providerModelRecommendationRank(provider, model) {
5805
+ const manifest = getProviderBrandManifestForRoute(provider);
5806
+ if (!manifest) return;
5807
+ const normalizedProvider = provider.trim().toLowerCase();
5808
+ const normalizedRef = `${normalizedProvider}/${model.trim().toLowerCase()}`;
5809
+ const index = manifest.models.recommended.filter((ref) => ref.trim().toLowerCase().startsWith(`${normalizedProvider}/`)).findIndex((ref) => ref.trim().toLowerCase() === normalizedRef);
5810
+ return index >= 0 ? index + 1 : void 0;
5811
+ }
5795
5812
  function isStandardProviderCatalogEntry(entry) {
5796
5813
  const provider = entry.provider.trim();
5797
5814
  const id = entry.id.trim();
@@ -10353,6 +10370,7 @@ async function discoverHuggingfaceModels(apiKey) {
10353
10370
  //#region src/agents/model-catalog-normalized.ts
10354
10371
  const SOURCE_AUTHORITY = {
10355
10372
  configured: 500,
10373
+ "provider-api": 450,
10356
10374
  runtime: 400,
10357
10375
  manifest: 300,
10358
10376
  "provider-index": 200,
@@ -11819,22 +11837,16 @@ const CURRENT_MODEL_PROVIDER_CATALOG = {
11819
11837
  models: CLOUDFLARE_AI_GATEWAY_MODEL_CATALOG.map((entry) => buildCloudflareAiGatewayModelDefinition({ id: entry.id }))
11820
11838
  },
11821
11839
  litellm: {
11822
- baseUrl: LITELLM_BASE_URL,
11840
+ baseUrl: "http://localhost:4000/v1",
11823
11841
  api: "openai-completions",
11824
11842
  request: { allowPrivateNetwork: true },
11825
- models: LITELLM_MODEL_CATALOG.map(buildLitellmModelDefinition)
11843
+ models: []
11826
11844
  },
11827
11845
  vllm: {
11828
11846
  baseUrl: "http://127.0.0.1:8000/v1",
11829
11847
  api: "openai-completions",
11830
11848
  request: { allowPrivateNetwork: true },
11831
- models: [model({
11832
- id: "local",
11833
- name: "Local model",
11834
- input: ["text", "image"],
11835
- contextWindow: 128e3,
11836
- maxTokens: 8192
11837
- })]
11849
+ models: []
11838
11850
  },
11839
11851
  "github-copilot": {
11840
11852
  baseUrl: "https://api.individual.githubcopilot.com",
@@ -18082,7 +18094,8 @@ const ModelCapabilitySchema = z.object({
18082
18094
  z.literal("low"),
18083
18095
  z.literal("medium"),
18084
18096
  z.literal("high"),
18085
- z.literal("xhigh")
18097
+ z.literal("xhigh"),
18098
+ z.literal("max")
18086
18099
  ])).optional(),
18087
18100
  defaultThinkingLevel: z.union([
18088
18101
  z.literal("off"),
@@ -18090,7 +18103,8 @@ const ModelCapabilitySchema = z.object({
18090
18103
  z.literal("low"),
18091
18104
  z.literal("medium"),
18092
18105
  z.literal("high"),
18093
- z.literal("xhigh")
18106
+ z.literal("xhigh"),
18107
+ z.literal("max")
18094
18108
  ]).optional(),
18095
18109
  thinkingMode: z.union([
18096
18110
  z.literal("openai-reasoning-effort"),
@@ -19005,7 +19019,8 @@ const AgentEntrySchema = z.object({
19005
19019
  z.literal("low"),
19006
19020
  z.literal("medium"),
19007
19021
  z.literal("high"),
19008
- z.literal("xhigh")
19022
+ z.literal("xhigh"),
19023
+ z.literal("max")
19009
19024
  ]).optional(),
19010
19025
  reasoningDefault: z.union([
19011
19026
  z.literal("off"),
@@ -19013,7 +19028,8 @@ const AgentEntrySchema = z.object({
19013
19028
  z.literal("low"),
19014
19029
  z.literal("medium"),
19015
19030
  z.literal("high"),
19016
- z.literal("xhigh")
19031
+ z.literal("xhigh"),
19032
+ z.literal("max")
19017
19033
  ]).optional(),
19018
19034
  fastModeDefault: z.boolean().optional(),
19019
19035
  skills: z.array(z.string()).optional(),
@@ -19163,7 +19179,8 @@ const AgentDefaultsSchema = z.object({
19163
19179
  z.literal("low"),
19164
19180
  z.literal("medium"),
19165
19181
  z.literal("high"),
19166
- z.literal("xhigh")
19182
+ z.literal("xhigh"),
19183
+ z.literal("max")
19167
19184
  ]).optional(),
19168
19185
  reasoningDefault: z.union([
19169
19186
  z.literal("off"),
@@ -19171,7 +19188,8 @@ const AgentDefaultsSchema = z.object({
19171
19188
  z.literal("low"),
19172
19189
  z.literal("medium"),
19173
19190
  z.literal("high"),
19174
- z.literal("xhigh")
19191
+ z.literal("xhigh"),
19192
+ z.literal("max")
19175
19193
  ]).optional(),
19176
19194
  fastModeDefault: z.boolean().optional(),
19177
19195
  verboseDefault: z.union([
@@ -23387,4 +23405,4 @@ async function writeConfigFile(cfg, options = {}) {
23387
23405
  }
23388
23406
 
23389
23407
  //#endregion
23390
- export { resetConfigOverrides as $, isOpenAISignInRuntimeModelSupported as $n, resolveSubagentSpawnModelSelection as $t, GroupPolicySchema as A, markAuthProfileGood as An, isTruthyEnvValue as Ar, isSafeExecutableValue as At, MODEL_APIS as B, normalizeProviderId$1 as Bn, buildModelAliasIndex as Bt, resolveIMessageAttachmentRoots as C, markAuthProfileFailure as Cn, isDangerousHostEnvOverrideVarName as Cr, unwrapKnownDispatchWrapperInvocation as Ct, BlockStreamingCoalesceSchema as D, dedupeProfileIds as Dn, resolveOwnerDisplaySetting as Dr, normalizeSafeBinProfileFixtures as Dt, ToolPolicySchema as E, resolveApiKeyForProfile as En, sanitizeHostExecEnv as Er, SAFE_BIN_PROFILES as Et, TtsConfigSchema as F, acquireFileLock as Fn, resolveEffectiveEnableState as Fr, resolveTelegramPreviewStreamMode as Ft, isAvatarDataUrl as G, resolveAuthProfileDisplayLabel as Gn, normalizeModelRef as Gt, parseDurationMs as H, discoverFasedAgentPlugins as Hn, inferUniqueProviderFromConfiguredModels as Ht, TtsModeSchema as I, withFileLock as In, resolveMemorySlotDecision as Ir, DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH as It, isSupportedLocalAvatarExtension as J, assertSecretInputResolved as Jn, resolveConfiguredModelRef as Jt, isAvatarHttpUrl as K, isPrivateNetworkBaseUrl as Kn, normalizeProviderId as Kt, TtsProviderSchema as L, resolveProcessScopedMap as Ln, resolvePluginAdminRpcActionGrant as Lr, resolveAgentMaxConcurrent as Lt, MarkdownTableModeSchema as M, resolveAuthStorePathForDisplay as Mn, applyTestPluginDefaults as Mr, resolveDiscordPreviewStreamMode as Mt, ReplyRuntimeConfigSchemaShape as N, resolveFasedAgentAgentDir as Nn, isPluginRuntimeSessionReadAllowed as Nr, resolveSlackNativeStreaming as Nt, DmConfigSchema as O, listProfilesForProvider as On, formatCliCommand as Or, resolveSafeBinProfiles as Ot, TtsAutoSchema as P, resolveFasedAgentDir as Pn, normalizePluginsConfig as Pr, resolveSlackStreamingMode as Pt, getConfigOverrides as Q, isOpenAISignInCatalogModel as Qn, resolveReasoningDefault as Qt, normalizeAllowFrom as R, isPidAlive as Rn, buildAllowedModelSet as Rt, mergeInboundPathRoots as S, isProfileInCooldown as Sn, resolveShellEnvFallbackTimeoutMs as Sr, isShellWrapperExecutable as St, normalizeScpRemoteHost as T, resolveProfilesUnavailableReason as Tn, isDangerousHostInheritedEnvVarName as Tr, splitShellArgs as Tt, parseByteSize as U, isPathInside as Un, isCliProvider as Ut, getBlockedNetworkModeReason as V, loadPluginManifestRegistry as Vn, findNormalizedProviderValue as Vt, AVATAR_MAX_BYTES as W, safeStatSync as Wn, modelKey as Wt, resolveAvatarMime as X, splitTrailingAuthProfile as Xn, resolveExplicitConfiguredModelRef as Xt, isWorkspaceRelativeAvatarPath as Y, coerceSecretRef as Yn, resolveDefaultModelForAgent as Yt, validateJsonSchemaValue as Z, getProviderBrandManifestForRoute as Zn, resolveModelRefFromString as Zt, TELEGRAM_COMMAND_NAME_PATTERN as _, normalizeModelCatalogProviderId as _n, formatErrorMessage as _r, matchAllowlist as _t, readConfigFileSnapshotForWrite as a, getApiKeyForModel as an, listThinkingLevels as ar, unsetConfigValueAtPath as at, DEFAULT_IMESSAGE_ATTACHMENT_ROOTS as b, resolveAuthProfileOrder as bn, extractArchive as br, extractShellWrapperInlineCommand as bt, validateConfigObjectWithPlugins as c, resolveApiKeyForProvider as cn, supportsXHighThinking as cr, isTrustedSafeBinPath as ct, GoogleChatConfigSchema as d, CURRENT_MODEL_PROVIDER_CATALOG as dn, DEFAULT_PROVIDER as dr, validateSafeBinArgv as dt, resolveThinkingDefault as en, isStandardProviderCatalogEntry as er, setConfigOverride as et, IMessageConfigSchema as f, cloneCurrentModelProvider as fn, VERSION as fr, analyzeShellCommand as ft, TelegramConfigSchema as g, normalizeModelCatalogModelId as gn, extractErrorCode as gr, DEFAULT_SAFE_BINS as gt, SlackConfigSchema as h, mergeModelCatalogRowsByAuthority as hn, MANIFEST_KEY as hr, splitCommandChain as ht, readConfigFileSnapshot as i, resolveImplicitProviders as in, formatXHighModelHint as ir, setConfigValueAtPath as it, MarkdownConfigSchema as j, ensureAuthProfileStore as jn, parseBooleanValue as jr, mapStreamingModeToSlackLegacyDraftStreamMode as jt, DmPolicySchema as k, listProvidersWithStoredCredentials as kn, resolveCliName as kr, applyMergePatch as kt, WhatsAppConfigSchema as l, resolveEnvApiKey as ln, DEFAULT_CONTEXT_TOKENS as lr, listWritableExplicitTrustedSafeBinDirs as lt, SignalConfigSchema as m, buildModelCatalogMergeKey as mn, getPackageManifestMetadata as mr, isWindowsPlatform as mt, loadConfig as n, normalizeProviders as nn, lookupProviderManifestModelCapability as nr, getConfigValueAtPath as nt, resolveConfigSnapshotHash as o, getCustomProviderApiKey as on, normalizeThinkLevel as or, ensurePluginAllowlisted as ot, MSTeamsConfigSchema as p, listCurrentModelCatalogRows as pn, resolvePluginInstallDir as pr, buildEnforcedShellCommand as pt, isPathWithinRoot as q, normalizeSecretInput as qn, parseModelRef as qt, parseConfigJson5 as r, resolveImplicitCopilotProvider as rn, formatThinkingLevels as rr, parseConfigPath as rt, writeConfigFile as s, requireApiKey as sn, resolveModelThinkingCapability as sr, getTrustedSafeBinDirs as st, createConfigIO as t, normalizeGoogleModelId as tn, listProviderBrandManifests as tr, unsetConfigOverride as tt, DiscordConfigSchema as u, resolveModelAuthMode as un, DEFAULT_MODEL as ur, normalizeTrustedSafeBinDirs as ut, normalizeTelegramCommandName as v, normalizeProviderCatalogRows as vn, formatUncaughtError as vr, resolveAllowlistCandidatePath as vt, resolveIMessageRemoteAttachmentRoots as w, markAuthProfileUsed as wn, isDangerousHostEnvVarName as wr, unwrapKnownShellMultiplexerInvocation as wt, isInboundPathAllowed as x, getSoonestCooldownExpiry as xn, getShellPathFromLoginShell as xr, isDispatchWrapperExecutable as xt, resolveTelegramCustomCommands as y, auth_profiles_exports as yn, isErrno as yr, resolveCommandResolutionFromArgv as yt, requireOpenAllowFrom as z, findNormalizedProviderValue$1 as zn, buildConfiguredAllowlistKeys as zt };
23408
+ export { resetConfigOverrides as $, isOpenAISignInRuntimeModelSupported as $n, resolveSubagentSpawnModelSelection as $t, GroupPolicySchema as A, markAuthProfileGood as An, resolveCliName as Ar, isSafeExecutableValue as At, MODEL_APIS as B, normalizeProviderId$1 as Bn, buildModelAliasIndex as Bt, resolveIMessageAttachmentRoots as C, markAuthProfileFailure as Cn, resolveShellEnvFallbackTimeoutMs as Cr, unwrapKnownDispatchWrapperInvocation as Ct, BlockStreamingCoalesceSchema as D, dedupeProfileIds as Dn, sanitizeHostExecEnv as Dr, normalizeSafeBinProfileFixtures as Dt, ToolPolicySchema as E, resolveApiKeyForProfile as En, isDangerousHostInheritedEnvVarName as Er, SAFE_BIN_PROFILES as Et, TtsConfigSchema as F, acquireFileLock as Fn, normalizePluginsConfig as Fr, resolveTelegramPreviewStreamMode as Ft, isAvatarDataUrl as G, resolveAuthProfileDisplayLabel as Gn, normalizeModelRef as Gt, parseDurationMs as H, discoverFasedAgentPlugins as Hn, inferUniqueProviderFromConfiguredModels as Ht, TtsModeSchema as I, withFileLock as In, resolveEffectiveEnableState as Ir, DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH as It, isSupportedLocalAvatarExtension as J, assertSecretInputResolved as Jn, resolveConfiguredModelRef as Jt, isAvatarHttpUrl as K, isPrivateNetworkBaseUrl as Kn, normalizeProviderId as Kt, TtsProviderSchema as L, resolveProcessScopedMap as Ln, resolveMemorySlotDecision as Lr, resolveAgentMaxConcurrent as Lt, MarkdownTableModeSchema as M, resolveAuthStorePathForDisplay as Mn, parseBooleanValue as Mr, resolveDiscordPreviewStreamMode as Mt, ReplyRuntimeConfigSchemaShape as N, resolveFasedAgentAgentDir as Nn, applyTestPluginDefaults as Nr, resolveSlackNativeStreaming as Nt, DmConfigSchema as O, listProfilesForProvider as On, resolveOwnerDisplaySetting as Or, resolveSafeBinProfiles as Ot, TtsAutoSchema as P, resolveFasedAgentDir as Pn, isPluginRuntimeSessionReadAllowed as Pr, resolveSlackStreamingMode as Pt, getConfigOverrides as Q, isOpenAISignInCatalogModel as Qn, resolveReasoningDefault as Qt, normalizeAllowFrom as R, isPidAlive as Rn, resolvePluginAdminRpcActionGrant as Rr, buildAllowedModelSet as Rt, mergeInboundPathRoots as S, isProfileInCooldown as Sn, getShellPathFromLoginShell as Sr, isShellWrapperExecutable as St, normalizeScpRemoteHost as T, resolveProfilesUnavailableReason as Tn, isDangerousHostEnvVarName as Tr, splitShellArgs as Tt, parseByteSize as U, isPathInside as Un, isCliProvider as Ut, getBlockedNetworkModeReason as V, loadPluginManifestRegistry as Vn, findNormalizedProviderValue as Vt, AVATAR_MAX_BYTES as W, safeStatSync as Wn, modelKey as Wt, resolveAvatarMime as X, splitTrailingAuthProfile as Xn, resolveExplicitConfiguredModelRef as Xt, isWorkspaceRelativeAvatarPath as Y, coerceSecretRef as Yn, resolveDefaultModelForAgent as Yt, validateJsonSchemaValue as Z, getProviderBrandManifestForRoute as Zn, resolveModelRefFromString as Zt, TELEGRAM_COMMAND_NAME_PATTERN as _, normalizeModelCatalogProviderId as _n, extractErrorCode as _r, matchAllowlist as _t, readConfigFileSnapshotForWrite as a, getApiKeyForModel as an, formatXHighModelHint as ar, unsetConfigValueAtPath as at, DEFAULT_IMESSAGE_ATTACHMENT_ROOTS as b, resolveAuthProfileOrder as bn, isErrno as br, extractShellWrapperInlineCommand as bt, validateConfigObjectWithPlugins as c, resolveApiKeyForProvider as cn, resolveModelThinkingCapability as cr, isTrustedSafeBinPath as ct, GoogleChatConfigSchema as d, CURRENT_MODEL_PROVIDER_CATALOG as dn, DEFAULT_MODEL as dr, validateSafeBinArgv as dt, resolveThinkingDefault as en, isStandardProviderCatalogEntry as er, setConfigOverride as et, IMessageConfigSchema as f, cloneCurrentModelProvider as fn, DEFAULT_PROVIDER as fr, analyzeShellCommand as ft, TelegramConfigSchema as g, normalizeModelCatalogModelId as gn, MANIFEST_KEY as gr, DEFAULT_SAFE_BINS as gt, SlackConfigSchema as h, mergeModelCatalogRowsByAuthority as hn, getPackageManifestMetadata as hr, splitCommandChain as ht, readConfigFileSnapshot as i, resolveImplicitProviders as in, formatThinkingLevels as ir, setConfigValueAtPath as it, MarkdownConfigSchema as j, ensureAuthProfileStore as jn, isTruthyEnvValue as jr, mapStreamingModeToSlackLegacyDraftStreamMode as jt, DmPolicySchema as k, listProvidersWithStoredCredentials as kn, formatCliCommand as kr, applyMergePatch as kt, WhatsAppConfigSchema as l, resolveEnvApiKey as ln, supportsXHighThinking as lr, listWritableExplicitTrustedSafeBinDirs as lt, SignalConfigSchema as m, buildModelCatalogMergeKey as mn, resolvePluginInstallDir as mr, isWindowsPlatform as mt, loadConfig as n, normalizeProviders as nn, lookupProviderManifestModelCapability as nr, getConfigValueAtPath as nt, resolveConfigSnapshotHash as o, getCustomProviderApiKey as on, listThinkingLevels as or, ensurePluginAllowlisted as ot, MSTeamsConfigSchema as p, listCurrentModelCatalogRows as pn, VERSION as pr, buildEnforcedShellCommand as pt, isPathWithinRoot as q, normalizeSecretInput as qn, parseModelRef as qt, parseConfigJson5 as r, resolveImplicitCopilotProvider as rn, providerModelRecommendationRank as rr, parseConfigPath as rt, writeConfigFile as s, requireApiKey as sn, normalizeThinkLevel as sr, getTrustedSafeBinDirs as st, createConfigIO as t, normalizeGoogleModelId as tn, listProviderBrandManifests as tr, unsetConfigOverride as tt, DiscordConfigSchema as u, resolveModelAuthMode as un, DEFAULT_CONTEXT_TOKENS as ur, normalizeTrustedSafeBinDirs as ut, normalizeTelegramCommandName as v, normalizeProviderCatalogRows as vn, formatErrorMessage as vr, resolveAllowlistCandidatePath as vt, resolveIMessageRemoteAttachmentRoots as w, markAuthProfileUsed as wn, isDangerousHostEnvOverrideVarName as wr, unwrapKnownShellMultiplexerInvocation as wt, isInboundPathAllowed as x, getSoonestCooldownExpiry as xn, extractArchive as xr, isDispatchWrapperExecutable as xt, resolveTelegramCustomCommands as y, auth_profiles_exports as yn, formatUncaughtError as yr, resolveCommandResolutionFromArgv as yt, requireOpenAllowFrom as z, findNormalizedProviderValue$1 as zn, buildConfiguredAllowlistKeys as zt };