@jambonz/llm 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1558,11 +1558,22 @@ var vertexOpenAIManifest = {
1558
1558
  type: "select",
1559
1559
  required: true,
1560
1560
  default: "us-central1",
1561
+ // Same region set as vertex-gemini plus us-east5 (where Google
1562
+ // hosts Llama partner models). Partner-model availability varies
1563
+ // per region; Google's docs for each model are the source of truth.
1561
1564
  options: [
1562
1565
  { value: "us-central1", label: "us-central1" },
1566
+ { value: "us-east1", label: "us-east1" },
1563
1567
  { value: "us-east4", label: "us-east4" },
1568
+ { value: "us-east5", label: "us-east5" },
1569
+ { value: "us-west1", label: "us-west1" },
1570
+ { value: "us-west4", label: "us-west4" },
1564
1571
  { value: "europe-west1", label: "europe-west1" },
1572
+ { value: "europe-west2", label: "europe-west2" },
1573
+ { value: "europe-west3", label: "europe-west3" },
1565
1574
  { value: "europe-west4", label: "europe-west4" },
1575
+ { value: "asia-east1", label: "asia-east1" },
1576
+ { value: "asia-northeast1", label: "asia-northeast1" },
1566
1577
  { value: "asia-southeast1", label: "asia-southeast1" }
1567
1578
  ]
1568
1579
  }
@@ -1606,7 +1617,11 @@ var VertexOpenAIAdapter = class {
1606
1617
  const token = await googleClient.getAccessToken();
1607
1618
  const headers = new Headers(init2?.headers);
1608
1619
  headers.set("Authorization", `Bearer ${token.token ?? ""}`);
1609
- return fetch(input, { ...init2, headers });
1620
+ const response = await fetch(input, { ...init2, headers });
1621
+ if (!response.ok) {
1622
+ return surfaceErrorBody(response, input);
1623
+ }
1624
+ return response;
1610
1625
  };
1611
1626
  this.client = new OpenAI2({
1612
1627
  apiKey: "vertex-ai",
@@ -1652,6 +1667,28 @@ var VertexOpenAIAdapter = class {
1652
1667
  return this.client;
1653
1668
  }
1654
1669
  };
1670
+ async function surfaceErrorBody(response, input) {
1671
+ let body = "";
1672
+ try {
1673
+ body = await response.text();
1674
+ } catch {
1675
+ }
1676
+ const url = typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
1677
+ const hint = response.status === 404 && !body ? " (no body returned \u2014 most commonly means the requested model is not hosted in this region; check Google's partner-model availability matrix)" : "";
1678
+ if (typeof console !== "undefined" && console.warn) {
1679
+ console.warn(
1680
+ `[vertex-openai] ${response.status} ${response.statusText} from ${url}: ${body || "(empty body)"}${hint}`
1681
+ );
1682
+ }
1683
+ const headers = new Headers(response.headers);
1684
+ headers.delete("content-encoding");
1685
+ headers.delete("content-length");
1686
+ return new Response(body + hint, {
1687
+ status: response.status,
1688
+ statusText: response.statusText,
1689
+ headers
1690
+ });
1691
+ }
1655
1692
 
1656
1693
  // src/adapters/vertex-openai/factory.ts
1657
1694
  var vertexOpenAIFactory = {