acp-port 0.1.3 → 0.2.0

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 (49) hide show
  1. package/CONTRIBUTING.md +6 -4
  2. package/README.md +8 -5
  3. package/dist/agent/agent.js +23 -9
  4. package/dist/agent/agent.js.map +1 -1
  5. package/dist/agent/diagnostics.d.ts +3 -0
  6. package/dist/agent/diagnostics.js +29 -0
  7. package/dist/agent/diagnostics.js.map +1 -0
  8. package/dist/agent/session.d.ts +1 -0
  9. package/dist/agent/session.js +17 -3
  10. package/dist/agent/session.js.map +1 -1
  11. package/dist/agent/turn.js +21 -5
  12. package/dist/agent/turn.js.map +1 -1
  13. package/dist/cli/arguments.d.ts +1 -1
  14. package/dist/cli/arguments.js +2 -9
  15. package/dist/cli/arguments.js.map +1 -1
  16. package/dist/config/modes.js +3 -3
  17. package/dist/config/modes.js.map +1 -1
  18. package/dist/config/schema.d.ts +0 -7
  19. package/dist/config/schema.js +0 -2
  20. package/dist/config/schema.js.map +1 -1
  21. package/dist/providers/adapters/anthropic-provider.d.ts +1 -1
  22. package/dist/providers/adapters/anthropic-provider.js +12 -10
  23. package/dist/providers/adapters/anthropic-provider.js.map +1 -1
  24. package/dist/providers/adapters/openai-provider.d.ts +1 -1
  25. package/dist/providers/adapters/openai-provider.js +9 -8
  26. package/dist/providers/adapters/openai-provider.js.map +1 -1
  27. package/dist/providers/provider-contract.d.ts +6 -0
  28. package/dist/providers/provider-contract.js +11 -1
  29. package/dist/providers/provider-contract.js.map +1 -1
  30. package/dist/providers/provider-registry.d.ts +2 -2
  31. package/dist/providers/provider-registry.js +11 -7
  32. package/dist/providers/provider-registry.js.map +1 -1
  33. package/dist/providers/support/request-handling.d.ts +3 -3
  34. package/dist/providers/support/request-handling.js +125 -21
  35. package/dist/providers/support/request-handling.js.map +1 -1
  36. package/dist/providers/support/sdk-clients.d.ts +1 -1
  37. package/dist/providers/support/sdk-clients.js +17 -5
  38. package/dist/providers/support/sdk-clients.js.map +1 -1
  39. package/dist/tools/runner.d.ts +1 -0
  40. package/dist/tools/runner.js +80 -15
  41. package/dist/tools/runner.js.map +1 -1
  42. package/docs/architecture.md +1 -1
  43. package/docs/capabilities.md +15 -11
  44. package/docs/configuration.md +20 -3
  45. package/docs/editor-integration.md +18 -16
  46. package/docs/providers.md +38 -1
  47. package/docs/releases.md +8 -6
  48. package/docs/troubleshooting.md +35 -4
  49. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../../src/providers/adapters/anthropic-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../../src/providers/adapters/anthropic-provider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ApiProviderConfig, GenerateRequest, Model, ModelEvent, Provider } from "../provider-contract.js";
1
+ import { type ApiProviderConfig, type GenerateRequest, type Model, type ModelEvent, type Provider } from "../provider-contract.js";
2
2
  /** Chat Completions transport for OpenAI, local models, and LLM proxies. */
3
3
  export declare class OpenAIProvider implements Provider {
4
4
  private readonly config;
@@ -1,3 +1,4 @@
1
+ import { ProviderError, } from "../provider-contract.js";
1
2
  import { createProviderRequestSignal, listOpenAIModels, sanitizeProviderError, validateToolCalls, } from "../support/request-handling.js";
2
3
  import { ConfiguredOpenAIClient } from "../support/sdk-clients.js";
3
4
  /** Chat Completions transport for OpenAI, local models, and LLM proxies. */
@@ -12,15 +13,15 @@ export class OpenAIProvider {
12
13
  return listOpenAIModels(this.client, this.config, signal);
13
14
  }
14
15
  async *generate(request) {
16
+ const signal = createProviderRequestSignal(this.config, request.signal);
15
17
  try {
16
- yield* this.generateStream(request);
18
+ yield* this.generateStream(request, signal);
17
19
  }
18
20
  catch (error) {
19
- throw sanitizeProviderError(error);
21
+ throw sanitizeProviderError(error, this.config, signal);
20
22
  }
21
23
  }
22
- async *generateStream(request) {
23
- const signal = createProviderRequestSignal(this.config, request.signal);
24
+ async *generateStream(request, signal) {
24
25
  const stream = await this.client.chat.completions.create({
25
26
  model: request.model,
26
27
  messages: [
@@ -69,7 +70,7 @@ export class OpenAIProvider {
69
70
  else {
70
71
  const singleCallIndex = calls.keys().next().value;
71
72
  if (calls.size !== 1 || singleCallIndex === undefined) {
72
- throw new Error("The model returned an ambiguous tool-call fragment without an index or ID.");
73
+ throw new ProviderError("The model returned an ambiguous tool-call fragment without an index or ID.", "protocol");
73
74
  }
74
75
  index = singleCallIndex;
75
76
  }
@@ -80,7 +81,7 @@ export class OpenAIProvider {
80
81
  arguments: "",
81
82
  };
82
83
  if (call.id && delta.id && call.id !== delta.id) {
83
- throw new Error("The model changed a tool-call ID while streaming.");
84
+ throw new ProviderError("The model changed a tool-call ID while streaming.", "protocol");
84
85
  }
85
86
  if (delta.id) {
86
87
  call.id = delta.id;
@@ -110,7 +111,7 @@ export class OpenAIProvider {
110
111
  }
111
112
  signal.throwIfAborted();
112
113
  if (!finishReason) {
113
- throw new Error("The model stream ended without a finish reason; retry the prompt.");
114
+ throw new ProviderError("The model stream ended without a finish reason; retry the prompt.", "protocol");
114
115
  }
115
116
  if (finishReason === "length") {
116
117
  yield { type: "stop", reason: "max_tokens" };
@@ -121,7 +122,7 @@ export class OpenAIProvider {
121
122
  return;
122
123
  }
123
124
  if (finishReason !== "stop" && finishReason !== "tool_calls") {
124
- throw new Error(`Unsupported model finish reason: ${finishReason}`);
125
+ throw new ProviderError("The model returned an unsupported finish reason. Check the server's Chat Completions compatibility.", "protocol");
125
126
  }
126
127
  const completeCalls = [...calls.entries()]
127
128
  .sort(([a], [b]) => a - b)
@@ -1 +1 @@
1
- {"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../../src/providers/adapters/openai-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../../src/providers/adapters/openai-provider.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,12 @@ export interface Provider {
49
49
  listModels(signal?: AbortSignal): Promise<Model[]>;
50
50
  generate(request: GenerateRequest): AsyncIterable<ModelEvent>;
51
51
  }
52
+ /** Only locally authored, safe diagnostics may be displayed in the editor. */
53
+ export declare class ProviderError extends Error {
54
+ readonly kind: "configuration" | "http" | "connection" | "timeout" | "cancelled" | "protocol" | "unknown";
55
+ readonly status?: number | undefined;
56
+ constructor(message: string, kind?: "configuration" | "http" | "connection" | "timeout" | "cancelled" | "protocol" | "unknown", status?: number | undefined);
57
+ }
52
58
  export interface ApiProviderConfig {
53
59
  type: "openai" | "anthropic" | "gemini";
54
60
  name?: string;
@@ -1,2 +1,12 @@
1
- export {};
1
+ /** Only locally authored, safe diagnostics may be displayed in the editor. */
2
+ export class ProviderError extends Error {
3
+ kind;
4
+ status;
5
+ constructor(message, kind = "unknown", status) {
6
+ super(message);
7
+ this.kind = kind;
8
+ this.status = status;
9
+ this.name = "ProviderError";
10
+ }
11
+ }
2
12
  //# sourceMappingURL=provider-contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-contract.js","sourceRoot":"","sources":["../../src/providers/provider-contract.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"provider-contract.js","sourceRoot":"","sources":["../../src/providers/provider-contract.ts"],"names":[],"mappings":"AA2CA,8EAA8E;AAC9E,MAAM,OAAO,aAAc,SAAQ,KAAK;IAG3B,IAAI;IAQJ,MAAM;IAVjB,YACE,OAAe,EACN,IAAI,GAOG,SAAS,EAChB,MAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;oBAVN,IAAI;sBAQJ,MAAM;QAGf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { ApiProviderConfig, Model, Provider, ProviderFactory } from "./provider-contract.js";
1
+ import type { ApiProviderConfig, Model, Provider, ProviderError, ProviderFactory } from "./provider-contract.js";
2
2
  export interface RegisteredModel extends Model {
3
3
  providerId: string;
4
4
  modelId: string;
@@ -11,5 +11,5 @@ export declare class ProviderRegistry {
11
11
  private readonly instances;
12
12
  constructor(configs: Record<string, ApiProviderConfig>, factory: ProviderFactory, warn?: (message: string) => void);
13
13
  get(providerId: string): Provider;
14
- discover(providerId?: string, signal?: AbortSignal): Promise<RegisteredModel[]>;
14
+ discover(providerId?: string, signal?: AbortSignal, onFailure?: (providerId: string, error: ProviderError) => void): Promise<RegisteredModel[]>;
15
15
  }
@@ -1,3 +1,4 @@
1
+ import { sanitizeProviderError } from "./support/request-handling.js";
1
2
  /** A URL registration is an independent provider instance, even when types match. */
2
3
  export class ProviderRegistry {
3
4
  configs;
@@ -23,7 +24,7 @@ export class ProviderRegistry {
23
24
  }
24
25
  return provider;
25
26
  }
26
- async discover(providerId, signal) {
27
+ async discover(providerId, signal, onFailure) {
27
28
  if (providerId && !Object.hasOwn(this.configs, providerId)) {
28
29
  throw new Error(`Unknown provider: ${providerId}`);
29
30
  }
@@ -31,15 +32,18 @@ export class ProviderRegistry {
31
32
  const catalogs = await Promise.all(entries.map(async ([id, config]) => {
32
33
  let discovered = [];
33
34
  if (config.discoverModels) {
35
+ const discoverySignal = AbortSignal.any([
36
+ AbortSignal.timeout(Math.min(config.timeoutMs, 10_000)),
37
+ ...(signal ? [signal] : []),
38
+ ]);
34
39
  try {
35
- discovered = await this.get(id).listModels(AbortSignal.any([
36
- AbortSignal.timeout(Math.min(config.timeoutMs, 10_000)),
37
- ...(signal ? [signal] : []),
38
- ]));
40
+ discovered = await this.get(id).listModels(discoverySignal);
39
41
  }
40
- catch {
42
+ catch (error) {
41
43
  signal?.throwIfAborted();
42
- this.warn(`${id}: model discovery failed; check URL, server, and ${config.apiKeyEnv ?? "API_KEY"}. Using configured models if present.`);
44
+ const failure = sanitizeProviderError(error, config, discoverySignal);
45
+ this.warn(`${id}: model discovery failed. ${failure.message} Using configured models if present.`);
46
+ onFailure?.(id, failure);
43
47
  }
44
48
  }
45
49
  const models = new Map([...discovered, ...(config.models ?? [])].map((model) => [
@@ -1 +1 @@
1
- {"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/providers/provider-registry.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import type { ApiProviderConfig, Model, ToolCall } from "../provider-contract.js";
1
+ import { type ApiProviderConfig, type Model, ProviderError, type ToolCall } from "../provider-contract.js";
2
2
  import type { ConfiguredOpenAIClient } from "./sdk-clients.js";
3
3
  /** Covers the entire streamed body, not only connection establishment. */
4
4
  export declare function createProviderRequestSignal(config: ApiProviderConfig, signal?: AbortSignal): AbortSignal;
5
5
  /** Validate all calls before emitting any, so a malformed batch cannot partially execute. */
6
6
  export declare function validateToolCalls(calls: ToolCall[], toolsEnabled?: boolean): void;
7
- /** SDK error messages can contain response bodies; never surface those to the editor. */
8
- export declare function sanitizeProviderError(error: unknown): Error;
7
+ /** Classify known failures without copying response bodies, credentials, or prompts. */
8
+ export declare function sanitizeProviderError(error: unknown, config?: ApiProviderConfig, signal?: AbortSignal): ProviderError;
9
9
  /** Discover models through the OpenAI model-list endpoint. */
10
10
  export declare function listOpenAIModels(client: ConfiguredOpenAIClient, config: ApiProviderConfig, signal?: AbortSignal): Promise<Model[]>;
@@ -1,5 +1,6 @@
1
1
  import Anthropic from "@anthropic-ai/sdk";
2
2
  import OpenAI from "openai";
3
+ import { ProviderError, } from "../provider-contract.js";
3
4
  /** Covers the entire streamed body, not only connection establishment. */
4
5
  export function createProviderRequestSignal(config, signal) {
5
6
  const deadline = AbortSignal.timeout(config.timeoutMs);
@@ -8,12 +9,12 @@ export function createProviderRequestSignal(config, signal) {
8
9
  /** Validate all calls before emitting any, so a malformed batch cannot partially execute. */
9
10
  export function validateToolCalls(calls, toolsEnabled = true) {
10
11
  if (calls.length && !toolsEnabled) {
11
- throw new Error("The provider returned tool calls while tools are disabled.");
12
+ throw new ProviderError("The provider returned tool calls while tools are disabled.", "protocol");
12
13
  }
13
14
  const ids = new Set();
14
15
  for (const call of calls) {
15
16
  if (!call.id || !call.name || ids.has(call.id)) {
16
- throw new Error("The model returned an invalid or duplicate tool call.");
17
+ throw new ProviderError("The model returned an invalid or duplicate tool call.", "protocol");
17
18
  }
18
19
  ids.add(call.id);
19
20
  let argumentsValue;
@@ -21,42 +22,145 @@ export function validateToolCalls(calls, toolsEnabled = true) {
21
22
  argumentsValue = JSON.parse(call.arguments);
22
23
  }
23
24
  catch {
24
- throw new Error(`The model returned incomplete or invalid JSON for tool ${call.name}.`);
25
+ throw new ProviderError("The model returned incomplete or invalid JSON for a tool call. Retry the prompt or select a model with tool support.", "protocol");
25
26
  }
26
27
  if (argumentsValue === null ||
27
28
  typeof argumentsValue !== "object" ||
28
29
  Array.isArray(argumentsValue)) {
29
- throw new Error(`The model returned non-object arguments for tool ${call.name}.`);
30
+ throw new ProviderError("The model returned non-object arguments for a tool call. Retry the prompt or select a model with tool support.", "protocol");
30
31
  }
31
32
  }
32
33
  }
33
- /** SDK error messages can contain response bodies; never surface those to the editor. */
34
- export function sanitizeProviderError(error) {
34
+ /** Classify known failures without copying response bodies, credentials, or prompts. */
35
+ export function sanitizeProviderError(error, config, signal) {
36
+ if (error instanceof ProviderError) {
37
+ return error;
38
+ }
39
+ if ((signal?.aborted && signal.reason?.name === "TimeoutError") ||
40
+ (error instanceof Error && error.name === "TimeoutError") ||
41
+ error instanceof OpenAI.APIConnectionTimeoutError ||
42
+ error instanceof Anthropic.APIConnectionTimeoutError) {
43
+ return new ProviderError("Provider request timed out. Check that the model is loaded, shorten the prompt, or retry with a faster model.", "timeout");
44
+ }
45
+ if (signal?.aborted ||
46
+ error instanceof OpenAI.APIUserAbortError ||
47
+ error instanceof Anthropic.APIUserAbortError) {
48
+ return new ProviderError("Provider request aborted.", "cancelled");
49
+ }
35
50
  if (error instanceof OpenAI.APIError || error instanceof Anthropic.APIError) {
36
- if (error instanceof OpenAI.APIUserAbortError ||
37
- error instanceof Anthropic.APIUserAbortError) {
38
- return new Error("Provider request aborted.");
51
+ const status = error.status;
52
+ const prefix = status
53
+ ? `Provider request failed (HTTP ${status}).`
54
+ : "Provider stream failed.";
55
+ const diagnostic = knownResponseDiagnostic(error.error);
56
+ if (diagnostic) {
57
+ return new ProviderError(`${prefix} ${diagnostic}`, status ? "http" : "protocol", status);
58
+ }
59
+ if (status) {
60
+ let hint;
61
+ switch (status) {
62
+ case 401:
63
+ hint = `Authentication failed. Check ${config?.apiKeyEnv ?? "API_KEY"} in the editor's agent environment.`;
64
+ break;
65
+ case 403:
66
+ hint =
67
+ "Access was denied. Check the API key's permissions for this endpoint and model.";
68
+ break;
69
+ case 404:
70
+ hint =
71
+ "The endpoint or model was not found. Check --base-url and the selected model; llama.cpp's OpenAI API base URL normally ends in /v1.";
72
+ break;
73
+ case 400:
74
+ case 422:
75
+ hint =
76
+ "The server rejected the request. Check the model and its chat template/tool support. For llama.cpp, enable --jinja for tools or use --no-tools for text-only chat.";
77
+ break;
78
+ case 408:
79
+ case 504:
80
+ hint =
81
+ "The server timed out. Check that the model is loaded and retry.";
82
+ break;
83
+ case 413:
84
+ hint =
85
+ "The request is too large. Start a new session or shorten the prompt.";
86
+ break;
87
+ case 429:
88
+ hint =
89
+ "The provider is rate limited or out of quota. Wait and retry, or check the account's limits.";
90
+ break;
91
+ case 503:
92
+ hint =
93
+ "The server is unavailable or the model is still loading. Wait for it to become ready and retry.";
94
+ break;
95
+ default:
96
+ hint =
97
+ status >= 500
98
+ ? "The server could not complete the request. Check its logs and loaded model, then retry."
99
+ : "Check the endpoint configuration and server logs.";
100
+ }
101
+ return new ProviderError(`${prefix} ${hint}`, "http", status);
39
102
  }
40
- if (error instanceof OpenAI.APIConnectionTimeoutError ||
41
- error instanceof Anthropic.APIConnectionTimeoutError) {
42
- return new Error("Provider request timed out.");
103
+ if (error instanceof OpenAI.APIConnectionError ||
104
+ error instanceof Anthropic.APIConnectionError) {
105
+ return new ProviderError("Could not connect to the provider. Check --base-url, the server's host/port, and network access from the process running the editor's agent.", "connection");
43
106
  }
44
- return new Error(error.status
45
- ? `Provider request failed (HTTP ${error.status}).`
46
- : "Provider connection or stream failed.");
107
+ return new ProviderError("The provider stream failed. Check the server logs and its API compatibility, then retry.", "protocol");
47
108
  }
48
- return error instanceof Error ? error : new Error("Provider request failed.");
109
+ if (error instanceof SyntaxError) {
110
+ return new ProviderError("The provider returned invalid JSON. Check that --base-url points to the API and that the server supports the selected provider protocol.", "protocol");
111
+ }
112
+ return new ProviderError("Provider request failed. Check the endpoint configuration and server logs, then retry.");
113
+ }
114
+ /** Match known error categories, never include the matched server text in output. */
115
+ function knownResponseDiagnostic(body) {
116
+ if (!body || typeof body !== "object") {
117
+ return undefined;
118
+ }
119
+ const value = body;
120
+ // Anthropic errors may retain the outer error envelope.
121
+ const nested = value.error;
122
+ if (nested && typeof nested === "object") {
123
+ return knownResponseDiagnostic(nested);
124
+ }
125
+ const message = typeof value.message === "string" ? value.message.toLowerCase() : "";
126
+ const code = typeof value.code === "string" ? value.code : value.type;
127
+ if (/tools?(_choice)? param requires --jinja flag/.test(message)) {
128
+ return "llama.cpp requires --jinja for tool calling. Restart llama-server with --jinja and a tool-compatible model/template, or use --no-tools for text-only chat.";
129
+ }
130
+ if (message.includes("jinja") || /chat[_ ]template/.test(message)) {
131
+ return "The server could not apply the model's chat template. Check that the template supports the conversation and tools; for llama.cpp use --jinja with a tool-compatible template, or --no-tools for text-only chat.";
132
+ }
133
+ if (code === "context_length_exceeded" ||
134
+ code === "exceed_context_size_error" ||
135
+ /(?:exceeds|larger than).{0,80}context (?:size|length|window)/.test(message)) {
136
+ return "The conversation exceeds the model's context size. Start a new session, shorten the prompt, or increase the server's context size.";
137
+ }
138
+ if (code === "model_not_found") {
139
+ return "The selected model was not found. Load it on the server and select the model ID reported by the server.";
140
+ }
141
+ return undefined;
49
142
  }
50
143
  /** Discover models through the OpenAI model-list endpoint. */
51
144
  export async function listOpenAIModels(client, config, signal) {
145
+ const requestSignal = createProviderRequestSignal(config, signal);
52
146
  try {
53
- const page = await client.models.list({
54
- signal: createProviderRequestSignal(config, signal),
55
- });
56
- return page.data.map((model) => ({ id: model.id, name: model.id }));
147
+ // SDK pagination turns a missing data field (including an HTML UI response)
148
+ // into an empty catalog. Validate the actual payload before that fallback.
149
+ const response = await client.models
150
+ .list({ signal: requestSignal })
151
+ .asResponse();
152
+ const body = await response.json();
153
+ const data = body && typeof body === "object" && "data" in body
154
+ ? body.data
155
+ : undefined;
156
+ if (!Array.isArray(data) ||
157
+ data.some((model) => !model || typeof model.id !== "string" || !model.id)) {
158
+ throw new ProviderError("The provider returned an invalid model list. Check that --base-url points to the OpenAI-compatible API; for llama.cpp it normally ends in /v1.", "protocol");
159
+ }
160
+ return data.map((model) => ({ id: model.id, name: model.id }));
57
161
  }
58
162
  catch (error) {
59
- throw sanitizeProviderError(error);
163
+ throw sanitizeProviderError(error, config, requestSignal);
60
164
  }
61
165
  }
62
166
  //# sourceMappingURL=request-handling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-handling.js","sourceRoot":"","sources":["../../../src/providers/support/request-handling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-handling.js","sourceRoot":"","sources":["../../../src/providers/support/request-handling.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import Anthropic from "@anthropic-ai/sdk";
2
2
  import OpenAI from "openai";
3
- import type { ApiProviderConfig } from "../provider-contract.js";
3
+ import { type ApiProviderConfig } from "../provider-contract.js";
4
4
  /** Explicit configuration prevents SDK environment defaults leaking to another endpoint. */
5
5
  export declare class ConfiguredOpenAIClient extends OpenAI {
6
6
  constructor(config: ApiProviderConfig);
@@ -1,5 +1,6 @@
1
1
  import Anthropic from "@anthropic-ai/sdk";
2
2
  import OpenAI from "openai";
3
+ import { ProviderError } from "../provider-contract.js";
3
4
  function readApiKey(config) {
4
5
  const variable = config.apiKeyEnv ?? "API_KEY";
5
6
  const value = process.env[variable];
@@ -7,10 +8,22 @@ function readApiKey(config) {
7
8
  if (!config.apiKeyEnv) {
8
9
  return undefined;
9
10
  }
10
- throw new Error(`Set the ${variable} environment variable for this provider.`);
11
+ throw new ProviderError(`Set the ${variable} environment variable for this provider.`, "configuration");
11
12
  }
12
13
  return value;
13
14
  }
15
+ /** Both SDKs merge ambient custom headers; discard them before any request. */
16
+ function isolateDefaultHeaders(client, headers) {
17
+ // Anthropic 0.135 hides this bag from its public types. Guard the runtime
18
+ // shape so a future SDK change fails closed instead of forwarding headers.
19
+ const options = Reflect.get(client, "_options");
20
+ if (!options ||
21
+ typeof options !== "object" ||
22
+ !Object.hasOwn(options, "defaultHeaders") ||
23
+ !Reflect.set(options, "defaultHeaders", headers)) {
24
+ throw new ProviderError("Unable to isolate provider headers. Check the installed SDK's compatibility.", "configuration");
25
+ }
26
+ }
14
27
  /** Explicit configuration prevents SDK environment defaults leaking to another endpoint. */
15
28
  export class ConfiguredOpenAIClient extends OpenAI {
16
29
  constructor(config) {
@@ -32,8 +45,7 @@ export class ConfiguredOpenAIClient extends OpenAI {
32
45
  maxRetries: 0,
33
46
  logLevel: "off",
34
47
  });
35
- // SDK 7 also merges OPENAI_CUSTOM_HEADERS. Discard that ambient configuration.
36
- this._options.defaultHeaders = defaultHeaders;
48
+ isolateDefaultHeaders(this, defaultHeaders);
37
49
  }
38
50
  }
39
51
  export class ConfiguredAnthropicClient extends Anthropic {
@@ -51,9 +63,9 @@ export class ConfiguredAnthropicClient extends Anthropic {
51
63
  timeout: config.timeoutMs,
52
64
  maxRetries: 0,
53
65
  logLevel: "off",
66
+ openTelemetry: false,
54
67
  });
55
- // Like OpenAI, this SDK merges ambient custom headers in its constructor.
56
- this._options.defaultHeaders = defaultHeaders;
68
+ isolateDefaultHeaders(this, defaultHeaders);
57
69
  }
58
70
  }
59
71
  //# sourceMappingURL=sdk-clients.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-clients.js","sourceRoot":"","sources":["../../../src/providers/support/sdk-clients.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,SAAS,UAAU,CAAC,MAAyB;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,WAAW,QAAQ,0CAA0C,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4FAA4F;AAC5F,MAAM,OAAO,sBAAuB,SAAQ,MAAM;IAChD,YAAY,MAAyB;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG;YACrB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YAC1C,GAAG,MAAM,CAAC,OAAO;SAClB,CAAC;QACF,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,0EAA0E;YAC1E,uEAAuE;YACvE,MAAM,EAAE,MAAM,IAAI,qBAAqB;YACvC,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,cAAc;YACd,OAAO,EAAE,MAAM,CAAC,SAAS;YACzB,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,+EAA+E;QAC/E,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,SAAS;IACtD,YAAY,MAAyB;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG;YACrB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACxC,GAAG,MAAM,CAAC,OAAO;SAClB,CAAC;QACF,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,IAAI,qBAAqB;YACvC,SAAS,EAAE,IAAI;YACf,cAAc;YACd,OAAO,EAAE,MAAM,CAAC,SAAS;YACzB,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,0EAA0E;QAC1E,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;IAChD,CAAC;CACF"}
1
+ {"version":3,"file":"sdk-clients.js","sourceRoot":"","sources":["../../../src/providers/support/sdk-clients.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAA0B,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEhF,SAAS,UAAU,CAAC,MAAyB;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,WAAW,QAAQ,0CAA0C,EAC7D,eAAe,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,SAAS,qBAAqB,CAC5B,MAAc,EACd,OAAsC;IAEtC,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,OAAO,GAAY,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzD,IACE,CAAC,OAAO;QACR,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACzC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAChD,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,8EAA8E,EAC9E,eAAe,CAChB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,OAAO,sBAAuB,SAAQ,MAAM;IAChD,YAAY,MAAyB;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG;YACrB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YAC1C,GAAG,MAAM,CAAC,OAAO;SAClB,CAAC;QACF,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,0EAA0E;YAC1E,uEAAuE;YACvE,MAAM,EAAE,MAAM,IAAI,qBAAqB;YACvC,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,cAAc;YACd,OAAO,EAAE,MAAM,CAAC,SAAS;YACzB,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,SAAS;IACtD,YAAY,MAAyB;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG;YACrB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACxC,GAAG,MAAM,CAAC,OAAO;SAClB,CAAC;QACF,KAAK,CAAC;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,IAAI,qBAAqB;YACvC,SAAS,EAAE,IAAI;YACf,cAAc;YACd,OAAO,EAAE,MAAM,CAAC,SAAS;YACzB,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;CACF"}
@@ -29,6 +29,7 @@ export declare class ToolRunner {
29
29
  private writeFile;
30
30
  private runCommand;
31
31
  private requestPermission;
32
+ private permissionToolCall;
32
33
  private markToolInProgress;
33
34
  private notifyToolUpdate;
34
35
  private releaseTerminal;