@opencode/ai 0.0.0-dev-19465 → 0.0.0-dev-19467

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.
@@ -5,7 +5,7 @@ import { AuthOptions } from "../route/auth-options.js";
5
5
  import { Route } from "../route/client.js";
6
6
  import { Endpoint } from "../route/endpoint.js";
7
7
  import { Framing } from "../route/framing.js";
8
- import { ProviderID, ToolDefinition } from "../schema/index.js";
8
+ import { ProviderConfigurationError, ProviderID, ToolDefinition } from "../schema/index.js";
9
9
  export const id = ProviderID.make("alibaba");
10
10
  const hosts = new Map([
11
11
  ["ap-southeast-1", "dashscope-intl.aliyuncs.com"],
@@ -48,9 +48,12 @@ export const configure = (input) => {
48
48
  : `${workspaceID}.${region}.maas.aliyuncs.com`;
49
49
  if (baseURL === undefined) {
50
50
  if (region === undefined)
51
- throw new Error("Alibaba requires region or baseURL");
51
+ throw new ProviderConfigurationError({ provider: id, message: "Alibaba requires region or baseURL" });
52
52
  if (host === undefined)
53
- throw new Error(`Alibaba region ${region} requires workspaceID or baseURL`);
53
+ throw new ProviderConfigurationError({
54
+ provider: id,
55
+ message: `Alibaba region ${region} requires workspaceID or baseURL`,
56
+ });
54
57
  }
55
58
  const opts = { ...rest, auth: AuthOptions.bearer(input, ["DASHSCOPE_API_KEY", "ALIBABA_API_KEY"]) };
56
59
  const common = { ...opts, endpoint: { baseURL: baseURL ?? `https://${host}/compatible-mode/v1` } };
@@ -3,7 +3,7 @@ import { Endpoint } from "../route/endpoint.js";
3
3
  import { OpenAIChat } from "../protocols/openai-chat.js";
4
4
  import { OpenResponses } from "../protocols/open-responses.js";
5
5
  import { BedrockAuth } from "../protocols/utils/bedrock-auth.js";
6
- import { ProviderID } from "../schema/index.js";
6
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
7
7
  import { withOpenAIOptions } from "./openai-options.js";
8
8
  export const id = ProviderID.make("amazon-bedrock");
9
9
  const responsesRoute = Route.make({
@@ -38,9 +38,12 @@ const defaults = (input) => {
38
38
  };
39
39
  export const configure = (input = {}) => {
40
40
  if (input.auth === "bearer" && input.apiKey === undefined && process.env.AWS_BEARER_TOKEN_BEDROCK === undefined)
41
- throw new Error("Amazon Bedrock Mantle bearer auth requires apiKey");
41
+ throw new ProviderConfigurationError({ provider: id, message: "Amazon Bedrock Mantle bearer auth requires apiKey" });
42
42
  if (input.auth === "sigv4" && input.apiKey !== undefined)
43
- throw new Error("Amazon Bedrock Mantle SigV4 auth does not accept apiKey");
43
+ throw new ProviderConfigurationError({
44
+ provider: id,
45
+ message: "Amazon Bedrock Mantle SigV4 auth does not accept apiKey",
46
+ });
44
47
  const configuredResponsesRoute = configuredRoute(responsesRoute, input);
45
48
  const configuredChatRoute = configuredRoute(chatRoute, input);
46
49
  const modelDefaults = defaults(input);
@@ -1,4 +1,4 @@
1
- import { ProviderID } from "../schema/index.js";
1
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
2
2
  import * as BedrockConverse from "../protocols/bedrock-converse.js";
3
3
  import { BedrockAuth } from "../protocols/utils/bedrock-auth.js";
4
4
  export const id = ProviderID.make("amazon-bedrock");
@@ -7,9 +7,9 @@ const bedrockBaseURL = (region) => `https://bedrock-runtime.${region}.amazonaws.
7
7
  const configuredRoute = (input) => {
8
8
  const { apiKey, auth, credentials, profile, region, baseURL, ...rest } = input;
9
9
  if (auth === "bearer" && apiKey === undefined && process.env.AWS_BEARER_TOKEN_BEDROCK === undefined)
10
- throw new Error("Amazon Bedrock bearer auth requires apiKey");
10
+ throw new ProviderConfigurationError({ provider: id, message: "Amazon Bedrock bearer auth requires apiKey" });
11
11
  if (auth === "sigv4" && apiKey !== undefined)
12
- throw new Error("Amazon Bedrock SigV4 auth does not accept apiKey");
12
+ throw new ProviderConfigurationError({ provider: id, message: "Amazon Bedrock SigV4 auth does not accept apiKey" });
13
13
  const resolvedRegion = BedrockAuth.resolveRegion(input);
14
14
  return BedrockConverse.route.with({
15
15
  ...rest,
@@ -1,6 +1,6 @@
1
1
  import { AnthropicMessages } from "../protocols/anthropic-messages.js";
2
2
  import { Auth } from "../route/auth.js";
3
- import { ProviderID } from "../schema/index.js";
3
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
4
4
  export const id = ProviderID.make("anthropic-compatible");
5
5
  export const routes = [AnthropicMessages.route];
6
6
  const auth = (input) => {
@@ -9,9 +9,12 @@ const auth = (input) => {
9
9
  return Auth.optional("apiKey" in input ? input.apiKey : undefined, "apiKey").pipe(Auth.header("x-api-key"));
10
10
  };
11
11
  export const configure = (input) => {
12
- if (!input.baseURL)
13
- throw new Error("Anthropic-compatible providers require a baseURL");
14
12
  const provider = input.provider ?? "anthropic-compatible";
13
+ if (!input.baseURL)
14
+ throw new ProviderConfigurationError({
15
+ provider: ProviderID.make(provider),
16
+ message: "Anthropic-compatible providers require a baseURL",
17
+ });
15
18
  const { provider: _, baseURL, apiKey: _apiKey, auth: _auth, ...rest } = input;
16
19
  const route = AnthropicMessages.route.with({
17
20
  ...rest,
@@ -30,8 +33,13 @@ export const provider = {
30
33
  configure,
31
34
  };
32
35
  export const model = (modelID, settings) => {
36
+ // Read before the exclusivity check narrows a conflicting settings object to `never`.
37
+ const provider = ProviderID.make(settings.provider ?? id);
33
38
  if (settings.apiKey !== undefined && settings.authToken !== undefined)
34
- throw new Error("Anthropic-compatible apiKey cannot be combined with authToken");
39
+ throw new ProviderConfigurationError({
40
+ provider,
41
+ message: "Anthropic-compatible apiKey cannot be combined with authToken",
42
+ });
35
43
  return configure({
36
44
  ...(settings.authToken === undefined ? { apiKey: settings.apiKey } : { auth: Auth.bearer(settings.authToken) }),
37
45
  baseURL: settings.baseURL,
@@ -1,5 +1,5 @@
1
1
  import { Auth } from "../route/auth.js";
2
- import { ProviderID } from "../schema/index.js";
2
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
3
3
  import { AnthropicMessages } from "../protocols/anthropic-messages.js";
4
4
  import { AnthropicCompatible } from "./anthropic-compatible.js";
5
5
  export const id = ProviderID.make("anthropic");
@@ -28,7 +28,10 @@ export const configure = (input = {}) => {
28
28
  export const provider = configure();
29
29
  export const model = (modelID, settings) => {
30
30
  if (settings.apiKey !== undefined && settings.authToken !== undefined)
31
- throw new Error("Anthropic apiKey cannot be combined with authToken");
31
+ throw new ProviderConfigurationError({
32
+ provider: id,
33
+ message: "Anthropic apiKey cannot be combined with authToken",
34
+ });
32
35
  return configure({
33
36
  ...(settings.authToken === undefined ? { apiKey: settings.apiKey } : { auth: Auth.bearer(settings.authToken) }),
34
37
  baseURL: settings.baseURL,
@@ -1,7 +1,7 @@
1
1
  import { Headers } from "effect/unstable/http";
2
2
  import { Auth } from "../route/auth.js";
3
3
  import {} from "../route/auth-options.js";
4
- import { ProviderID } from "../schema/index.js";
4
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
5
5
  import * as OpenAIChat from "../protocols/openai-chat.js";
6
6
  import * as OpenAIResponses from "../protocols/openai-responses.js";
7
7
  import { ProviderShared } from "../protocols/shared.js";
@@ -108,7 +108,7 @@ const config = (settings) => {
108
108
  return { ...common, baseURL: settings.baseURL };
109
109
  if (settings.resourceName !== undefined)
110
110
  return { ...common, resourceName: settings.resourceName };
111
- throw new Error("Azure requires resourceName or baseURL");
111
+ throw new ProviderConfigurationError({ provider: id, message: "Azure requires resourceName or baseURL" });
112
112
  };
113
113
  export const responsesModel = (modelID, settings) => configure(config(settings)).responses(modelID);
114
114
  export const chatModel = (modelID, settings) => configure(config(settings)).chat(modelID);
@@ -2,14 +2,17 @@ import { OpenAIChat } from "../protocols/openai-chat.js";
2
2
  import { Auth } from "../route/auth.js";
3
3
  import { Route } from "../route/client.js";
4
4
  import { Endpoint } from "../route/endpoint.js";
5
- import { ProviderID } from "../schema/index.js";
5
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
6
6
  export const id = ProviderID.make("cloudflare-ai-gateway");
7
7
  export const authEnvVars = ["CLOUDFLARE_API_TOKEN", "CF_AIG_TOKEN"];
8
8
  export const baseURL = (input) => {
9
9
  if (input.baseURL)
10
10
  return input.baseURL;
11
11
  if (!input.accountId)
12
- throw new Error("CloudflareAIGateway.configure requires accountId unless baseURL is supplied");
12
+ throw new ProviderConfigurationError({
13
+ provider: id,
14
+ message: "CloudflareAIGateway.configure requires accountId unless baseURL is supplied",
15
+ });
13
16
  return `https://gateway.ai.cloudflare.com/v1/${encodeURIComponent(input.accountId)}/${encodeURIComponent(input.gatewayId?.trim() || "default")}/compat`;
14
17
  };
15
18
  const auth = (input) => {
@@ -2,14 +2,17 @@ import { OpenAIChat } from "../protocols/openai-chat.js";
2
2
  import { AuthOptions } from "../route/auth-options.js";
3
3
  import { Route } from "../route/client.js";
4
4
  import { Endpoint } from "../route/endpoint.js";
5
- import { ProviderID } from "../schema/index.js";
5
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
6
6
  export const id = ProviderID.make("cloudflare-workers-ai");
7
7
  export const authEnvVars = ["CLOUDFLARE_API_KEY", "CLOUDFLARE_WORKERS_AI_TOKEN"];
8
8
  export const baseURL = (input) => {
9
9
  if (input.baseURL)
10
10
  return input.baseURL;
11
11
  if (!input.accountId)
12
- throw new Error("CloudflareWorkersAI.configure requires accountId unless baseURL is supplied");
12
+ throw new ProviderConfigurationError({
13
+ provider: id,
14
+ message: "CloudflareWorkersAI.configure requires accountId unless baseURL is supplied",
15
+ });
13
16
  return `https://api.cloudflare.com/client/v4/accounts/${encodeURIComponent(input.accountId)}/ai/v1`;
14
17
  };
15
18
  export const route = Route.make({
@@ -1,7 +1,7 @@
1
1
  import { OpenAIChat } from "../protocols/openai-chat.js";
2
2
  import { Route } from "../route/client.js";
3
3
  import { Endpoint } from "../route/endpoint.js";
4
- import { ProviderID } from "../schema/index.js";
4
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
5
5
  import { GoogleVertexShared } from "./google-vertex-shared.js";
6
6
  export const id = ProviderID.make("google-vertex");
7
7
  const route = Route.make({
@@ -15,7 +15,7 @@ const route = Route.make({
15
15
  export const routes = [route];
16
16
  const configuredRoute = (input) => {
17
17
  if ("apiKey" in input && input.apiKey !== undefined)
18
- throw new Error("Google Vertex Chat does not support API keys");
18
+ throw new ProviderConfigurationError({ provider: id, message: "Google Vertex Chat does not support API keys" });
19
19
  const { accessToken: _accessToken, auth: _auth, baseURL, location: inputLocation, project: inputProject, ...rest } = input;
20
20
  const location = GoogleVertexShared.location(inputLocation, "global");
21
21
  const project = GoogleVertexShared.project(inputProject);
@@ -42,7 +42,7 @@ export const provider = {
42
42
  };
43
43
  export const model = (modelID, settings) => {
44
44
  if (settings.apiKey !== undefined)
45
- throw new Error("Google Vertex Chat does not support API keys");
45
+ throw new ProviderConfigurationError({ provider: id, message: "Google Vertex Chat does not support API keys" });
46
46
  return configure({
47
47
  accessToken: settings.accessToken,
48
48
  baseURL: settings.baseURL,
@@ -4,7 +4,7 @@ import { Auth } from "../route/auth.js";
4
4
  import { Route } from "../route/client.js";
5
5
  import { Endpoint } from "../route/endpoint.js";
6
6
  import { Protocol } from "../route/protocol.js";
7
- import { ProviderID } from "../schema/index.js";
7
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
8
8
  import { GoogleVertexShared } from "./google-vertex-shared.js";
9
9
  const VERSION = "vertex-2023-10-16";
10
10
  const HEADER_VERSION = "2023-06-01";
@@ -35,7 +35,7 @@ const route = Route.make({
35
35
  export const routes = [route];
36
36
  const configuredRoute = (input) => {
37
37
  if ("apiKey" in input && input.apiKey !== undefined)
38
- throw new Error("Google Vertex Messages does not support API keys");
38
+ throw new ProviderConfigurationError({ provider: id, message: "Google Vertex Messages does not support API keys" });
39
39
  const { accessToken: _accessToken, auth: _auth, baseURL, location: inputLocation, project: inputProject, ...rest } = input;
40
40
  const location = GoogleVertexShared.location(inputLocation, "global");
41
41
  const project = GoogleVertexShared.project(inputProject);
@@ -62,7 +62,7 @@ export const provider = {
62
62
  };
63
63
  export const model = (modelID, settings) => {
64
64
  if (settings.apiKey !== undefined)
65
- throw new Error("Google Vertex Messages does not support API keys");
65
+ throw new ProviderConfigurationError({ provider: id, message: "Google Vertex Messages does not support API keys" });
66
66
  return configure({
67
67
  accessToken: settings.accessToken,
68
68
  baseURL: settings.baseURL,
@@ -1,7 +1,7 @@
1
1
  import { OpenResponses } from "../protocols/open-responses.js";
2
2
  import { Route } from "../route/client.js";
3
3
  import { Endpoint } from "../route/endpoint.js";
4
- import { ProviderID } from "../schema/index.js";
4
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
5
5
  import { GoogleVertexShared } from "./google-vertex-shared.js";
6
6
  export const id = ProviderID.make("google-vertex");
7
7
  const route = Route.make({
@@ -16,7 +16,7 @@ const route = Route.make({
16
16
  export const routes = [route];
17
17
  const configuredRoute = (input) => {
18
18
  if ("apiKey" in input && input.apiKey !== undefined)
19
- throw new Error("Google Vertex Responses does not support API keys");
19
+ throw new ProviderConfigurationError({ provider: id, message: "Google Vertex Responses does not support API keys" });
20
20
  const { accessToken: _accessToken, auth: _auth, baseURL, location: inputLocation, project: inputProject, ...rest } = input;
21
21
  const location = GoogleVertexShared.location(inputLocation, "global");
22
22
  const project = GoogleVertexShared.project(inputProject);
@@ -43,7 +43,7 @@ export const provider = {
43
43
  };
44
44
  export const model = (modelID, settings) => {
45
45
  if (settings.apiKey !== undefined)
46
- throw new Error("Google Vertex Responses does not support API keys");
46
+ throw new ProviderConfigurationError({ provider: id, message: "Google Vertex Responses does not support API keys" });
47
47
  return configure({
48
48
  accessToken: settings.accessToken,
49
49
  baseURL: settings.baseURL,
@@ -1,6 +1,8 @@
1
1
  import { Effect, Redacted } from "effect";
2
2
  import { Auth, MissingCredentialError } from "../route/auth.js";
3
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
3
4
  const SCOPE = "https://www.googleapis.com/auth/cloud-platform";
5
+ const id = ProviderID.make("google-vertex");
4
6
  export const project = (value) => value ??
5
7
  process.env.GOOGLE_VERTEX_PROJECT ??
6
8
  process.env.GOOGLE_CLOUD_PROJECT ??
@@ -22,11 +24,17 @@ export const host = (location) => {
22
24
  export const requireProject = (value) => {
23
25
  if (value)
24
26
  return value;
25
- throw new Error("Google Vertex requires a project when baseURL is not configured");
27
+ throw new ProviderConfigurationError({
28
+ provider: id,
29
+ message: "Google Vertex requires a project when baseURL is not configured",
30
+ });
26
31
  };
27
32
  export const apiKey = (input) => {
28
33
  if (input.apiKey !== undefined && (input.accessToken !== undefined || input.auth !== undefined))
29
- throw new Error("Google Vertex apiKey cannot be combined with accessToken or auth");
34
+ throw new ProviderConfigurationError({
35
+ provider: id,
36
+ message: "Google Vertex apiKey cannot be combined with accessToken or auth",
37
+ });
30
38
  if (input.accessToken !== undefined || input.auth !== undefined)
31
39
  return undefined;
32
40
  return input.apiKey ?? process.env.GOOGLE_VERTEX_API_KEY;
@@ -51,7 +59,10 @@ const adc = (project) => {
51
59
  };
52
60
  export const oauth = (input, project) => {
53
61
  if (input.accessToken !== undefined && input.auth !== undefined)
54
- throw new Error("Google Vertex accessToken cannot be combined with auth");
62
+ throw new ProviderConfigurationError({
63
+ provider: id,
64
+ message: "Google Vertex accessToken cannot be combined with auth",
65
+ });
55
66
  if (input.auth)
56
67
  return input.auth;
57
68
  if (input.accessToken !== undefined)
@@ -5,7 +5,7 @@ import { Auth } from "../route/auth.js";
5
5
  import { Route } from "../route/client.js";
6
6
  import { Endpoint } from "../route/endpoint.js";
7
7
  import { Framing } from "../route/framing.js";
8
- import { ProviderID } from "../schema/index.js";
8
+ import { ProviderConfigurationError, ProviderID } from "../schema/index.js";
9
9
  import { GoogleVertexShared } from "./google-vertex-shared.js";
10
10
  export const id = ProviderID.make("google-vertex");
11
11
  const fromRequest = Effect.fn("GoogleVertex.fromRequest")(function* (request) {
@@ -53,7 +53,10 @@ const configuredRoute = (input, modelID) => {
53
53
  const apiKey = GoogleVertexShared.apiKey(input);
54
54
  const endpointModel = String(modelID).startsWith("endpoints/");
55
55
  if (apiKey !== undefined && endpointModel)
56
- throw new Error("Google Vertex tuned models do not support Express Mode API keys");
56
+ throw new ProviderConfigurationError({
57
+ provider: id,
58
+ message: "Google Vertex tuned models do not support Express Mode API keys",
59
+ });
57
60
  const location = GoogleVertexShared.location(inputLocation, "us-central1");
58
61
  const project = GoogleVertexShared.project(inputProject);
59
62
  const endpoint = baseURL ??
@@ -79,7 +82,10 @@ export const provider = {
79
82
  };
80
83
  export const model = (modelID, settings) => {
81
84
  if (settings.apiKey !== undefined && settings.accessToken !== undefined)
82
- throw new Error("Google Vertex apiKey cannot be combined with accessToken or auth");
85
+ throw new ProviderConfigurationError({
86
+ provider: id,
87
+ message: "Google Vertex apiKey cannot be combined with accessToken or auth",
88
+ });
83
89
  return configure({
84
90
  ...(settings.apiKey === undefined ? { accessToken: settings.accessToken } : { apiKey: settings.apiKey }),
85
91
  baseURL: settings.baseURL,
@@ -8,13 +8,16 @@ import { applyCachePolicy } from "../cache-policy.js";
8
8
  import { normalizeToolHistory } from "../tool-history.js";
9
9
  import { sanitizeSurrogates } from "../utils/sanitize.js";
10
10
  import * as ProviderShared from "../protocols/shared.js";
11
- import { AIError, CompactionResponse, CompactionCheckpointResponse, AIErrorReason, GenerationOptions, HttpOptions, LLMRequest, LLMResponse, LanguageModel, LLMEvent, InvalidProviderOutputError, ProviderID, mergeGenerationOptions, mergeHttpOptions, mergeProviderOptions, } from "../schema/index.js";
11
+ import { AIError, CompactionResponse, CompactionCheckpointResponse, AIErrorReason, GenerationOptions, HttpOptions, LLMRequest, LLMResponse, LanguageModel, LLMEvent, InvalidProviderOutputError, ProviderConfigurationError, ProviderID, mergeGenerationOptions, mergeHttpOptions, mergeProviderOptions, } from "../schema/index.js";
12
12
  const makeRouteLanguageModel = (route, mapped) => {
13
13
  const provider = route.provider ?? ("provider" in mapped ? mapped.provider : undefined);
14
14
  if (!provider)
15
15
  throw new Error(`Route.model(${route.id}) requires a provider`);
16
16
  if (!endpointBaseURL(route.endpoint))
17
- throw new Error(`Route.model(${route.id}) requires an endpoint baseURL — configure it on the route first`);
17
+ throw new ProviderConfigurationError({
18
+ provider: ProviderID.make(provider),
19
+ message: `Route.model(${route.id}) requires an endpoint baseURL — configure it on the route first`,
20
+ });
18
21
  return LanguageModel.make({
19
22
  ...mapped,
20
23
  provider,
@@ -44,6 +44,18 @@ declare const UnsupportedOperationError_base: Schema.Class<UnsupportedOperationE
44
44
  */
45
45
  export declare class UnsupportedOperationError extends UnsupportedOperationError_base {
46
46
  }
47
+ declare const ProviderConfigurationError_base: Schema.Class<ProviderConfigurationError, Schema.TaggedStruct<"ProviderConfiguration", {
48
+ readonly provider: Schema.brand<Schema.String, "AI.ProviderID">;
49
+ readonly message: Schema.String;
50
+ }>, import("effect/Cause").YieldableError>;
51
+ /**
52
+ * Provider settings that are missing, conflicting, or unsupported, such as
53
+ * Azure without `resourceName` or `baseURL`. Thrown synchronously while a
54
+ * provider facade or package entrypoint configures a model, before any
55
+ * request exists, so it is not an `AIError` reason.
56
+ */
57
+ export declare class ProviderConfigurationError extends ProviderConfigurationError_base {
58
+ }
47
59
  declare const NoRouteError_base: Schema.Class<NoRouteError, Schema.TaggedStruct<"NoRoute", {
48
60
  readonly route: Schema.String;
49
61
  readonly provider: Schema.brand<Schema.String, "AI.ProviderID">;
@@ -41,6 +41,17 @@ export class UnsupportedOperationError extends Schema.TaggedError("AI.Error.Unsu
41
41
  route: Schema.optional(RouteID),
42
42
  }) {
43
43
  }
44
+ /**
45
+ * Provider settings that are missing, conflicting, or unsupported, such as
46
+ * Azure without `resourceName` or `baseURL`. Thrown synchronously while a
47
+ * provider facade or package entrypoint configures a model, before any
48
+ * request exists, so it is not an `AIError` reason.
49
+ */
50
+ export class ProviderConfigurationError extends Schema.TaggedError("AI.Error.ProviderConfiguration")("ProviderConfiguration", {
51
+ provider: ProviderID,
52
+ message: Schema.String,
53
+ }) {
54
+ }
44
55
  export class NoRouteError extends Schema.TaggedError("AI.Error.NoRoute")("NoRoute", {
45
56
  ...ReasonFields,
46
57
  route: RouteID,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
- "version": "0.0.0-dev-19465",
3
+ "version": "0.0.0-dev-19467",
4
4
  "name": "@opencode/ai",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -30,7 +30,7 @@
30
30
  "devDependencies": {
31
31
  "@clack/prompts": "1.0.0-alpha.1",
32
32
  "@effect/platform-node": "4.0.0-rc.112",
33
- "@opencode/http-recorder": "0.0.0-dev-19465",
33
+ "@opencode/http-recorder": "0.0.0-dev-19467",
34
34
  "@tsconfig/bun": "1.0.9",
35
35
  "@types/bun": "1.4.0",
36
36
  "@typescript/native-preview": "7.0.0-dev.20251207.1",
@@ -40,7 +40,7 @@
40
40
  "@aws-sdk/credential-providers": "3.1057.0",
41
41
  "@smithy/eventstream-codec": "4.2.14",
42
42
  "@smithy/util-utf8": "4.2.2",
43
- "@opencode/schema": "0.0.0-dev-19465",
43
+ "@opencode/schema": "0.0.0-dev-19467",
44
44
  "aws4fetch": "1.0.20",
45
45
  "effect": "4.0.0-rc.112",
46
46
  "google-auth-library": "10.5.0"