@f5-sales-demo/pi-ai 20.4.3 → 20.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@f5-sales-demo/pi-ai",
4
- "version": "20.4.3",
4
+ "version": "20.4.5",
5
5
  "description": "Unified LLM API with automatic model discovery and provider configuration",
6
6
  "homepage": "https://github.com/f5-sales-demo/xcsh",
7
7
  "author": "Can Boluk",
@@ -46,7 +46,7 @@
46
46
  "@anthropic-ai/sdk": "^0.115",
47
47
  "@aws-sdk/client-bedrock-runtime": "^3",
48
48
  "@bufbuild/protobuf": "^2.11",
49
- "@f5-sales-demo/pi-utils": "20.4.3",
49
+ "@f5-sales-demo/pi-utils": "20.4.5",
50
50
  "@google/genai": "^2.15",
51
51
  "@sinclair/typebox": "^0.34",
52
52
  "@smithy/node-http-handler": "^4.4",
@@ -362,6 +362,13 @@ function applyAnthropicCatalogPolicy(model: ApiModel<Api>, parsedModel: Anthropi
362
362
  }
363
363
 
364
364
  function applyOpenAICatalogPolicy(model: ApiModel<Api>, parsedModel: OpenAIModel): void {
365
+ // LiteLLM's GPT-5.6 Sol route accepts image input, but upstream catalog
366
+ // metadata currently reports text only. Keep this correction exact so other
367
+ // providers and GPT-5.6 variants retain their advertised capabilities.
368
+ if (model.provider === "litellm" && model.id === "gpt-5.6-sol") {
369
+ model.input = ["text", "image"];
370
+ }
371
+
365
372
  // Codex models: 400K figure includes output budget; input window is 272K.
366
373
  if (parsedModel.variant.startsWith("codex") && parsedModel.variant !== "codex-spark") {
367
374
  model.contextWindow = 272000;
package/src/models.json CHANGED
@@ -16599,7 +16599,8 @@
16599
16599
  "baseUrl": "http://localhost:4000/v1",
16600
16600
  "reasoning": true,
16601
16601
  "input": [
16602
- "text"
16602
+ "text",
16603
+ "image"
16603
16604
  ],
16604
16605
  "cost": {
16605
16606
  "input": 0,
@@ -61,8 +61,11 @@ export interface GoogleGeminiCliOptions extends StreamOptions {
61
61
  const DEFAULT_ENDPOINT = "https://cloudcode-pa.googleapis.com";
62
62
  const ANTIGRAVITY_DAILY_ENDPOINT = "https://daily-cloudcode-pa.googleapis.com";
63
63
  const ANTIGRAVITY_SANDBOX_ENDPOINT = "https://daily-cloudcode-pa.sandbox.googleapis.com";
64
+ const ANTIGRAVITY_VERTEX_ENDPOINT = "https://aiplatform.googleapis.com";
64
65
  const ANTIGRAVITY_ENDPOINT_FALLBACKS = [ANTIGRAVITY_DAILY_ENDPOINT, ANTIGRAVITY_SANDBOX_ENDPOINT] as const;
65
66
  const ANTIGRAVITY_VERTEX_MODELS: Readonly<Record<string, string>> = Object.freeze({
67
+ "gemini-3.6-flash-high": "gemini-3.6-flash",
68
+ "gemini-3.1-pro-high": "gemini-3.1-pro-preview",
66
69
  "gemini-3.1-pro-high-vertex": "gemini-3.1-pro-preview",
67
70
  });
68
71
 
@@ -501,7 +504,13 @@ export const streamGoogleGeminiCli: StreamFunction<"google-gemini-cli"> = (
501
504
  const serviceName = vertexModelId ? "Vertex AI" : "Cloud Code Assist";
502
505
 
503
506
  const baseUrl = model.baseUrl?.trim();
504
- const endpoints = baseUrl ? [baseUrl] : isAntigravity ? ANTIGRAVITY_ENDPOINT_FALLBACKS : [DEFAULT_ENDPOINT];
507
+ const endpoints = vertexModelId
508
+ ? [ANTIGRAVITY_VERTEX_ENDPOINT]
509
+ : baseUrl
510
+ ? [baseUrl]
511
+ : isAntigravity
512
+ ? ANTIGRAVITY_ENDPOINT_FALLBACKS
513
+ : [DEFAULT_ENDPOINT];
505
514
 
506
515
  const cloudCodeRequest = buildRequest(model, context, projectId, options, isAntigravity);
507
516
  let requestBody: CloudCodeAssistRequest | CloudCodeAssistRequest["request"] = vertexModelId