Skip to content

Commit 121c0f2

Browse files
committed
[agent] revert: remove anthropic-sdk adapter — Agent SDK path not viable, raw fetch is correct
- Remove @anthropic-ai/sdk dependency - Remove src/adapters/anthropic-sdk.ts - Remove executeStream from ProviderAdapter interface and server.ts - Restore original buildRequest → fetch → parseStream flow
1 parent 0c551d4 commit 121c0f2

5 files changed

Lines changed: 0 additions & 273 deletions

File tree

bun.lock

Lines changed: 0 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
"release:watch": "bun scripts/release.ts watch"
3030
},
3131
"dependencies": {
32-
"@anthropic-ai/sdk": "^0.105.0",
3332
"zod": "^4.0.0"
3433
},
3534
"devDependencies": {

src/adapters/anthropic-sdk.ts

Lines changed: 0 additions & 229 deletions
This file was deleted.

src/adapters/base.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,4 @@ export interface ProviderAdapter {
1717

1818
parseStream(response: Response): AsyncGenerator<AdapterEvent>;
1919
parseResponse?(response: Response): Promise<AdapterEvent[]>;
20-
21-
/** Optional: adapter handles its own fetch + streaming via a provider SDK. When present,
22-
* server.ts uses this instead of buildRequest → fetch → parseStream. */
23-
executeStream?(parsed: OcxParsedRequest, signal?: AbortSignal): AsyncGenerator<AdapterEvent>;
2420
}

src/server.ts

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { existsSync, readFileSync } from "node:fs";
22
import { extname, join } from "node:path";
33
import { createAnthropicAdapter } from "./adapters/anthropic";
4-
import { createAnthropicSdkAdapter } from "./adapters/anthropic-sdk";
54
import { createAzureAdapter } from "./adapters/azure";
65
import { createGoogleAdapter } from "./adapters/google";
76
import { createOpenAIChatAdapter } from "./adapters/openai-chat";
@@ -105,8 +104,6 @@ export function resolveAdapter(providerConfig: OcxProviderConfig) {
105104
return createOpenAIChatAdapter(providerConfig);
106105
case "anthropic":
107106
return createAnthropicAdapter(providerConfig);
108-
case "anthropic-sdk":
109-
return createAnthropicSdkAdapter(providerConfig);
110107
case "openai-responses":
111108
return createResponsesPassthroughAdapter(providerConfig);
112109
case "google":
@@ -224,27 +221,6 @@ async function handleResponses(
224221
const upstream = new AbortController();
225222
linkAbortSignal(upstream, options.abortSignal);
226223

227-
if (parsed.stream && adapter.executeStream) {
228-
const eventStream = adapter.executeStream(parsed, upstream.signal);
229-
const toolNsMap = new Map<string, { namespace: string; name: string }>();
230-
const freeformToolNames = new Set<string>();
231-
const toolSearchToolNames = new Set<string>();
232-
for (const t of parsed.context.tools ?? []) {
233-
if (t.namespace) toolNsMap.set(namespacedToolName(t.namespace, t.name), { namespace: t.namespace, name: t.name });
234-
if (t.freeform) freeformToolNames.add(t.name);
235-
if (t.toolSearch) toolSearchToolNames.add(t.name);
236-
}
237-
const sseStream = bridgeToResponsesSSE(
238-
eventStream, parsed.modelId, toolNsMap, freeformToolNames, toolSearchToolNames,
239-
() => upstream.abort(), 2_000,
240-
options.forceEmptyResponseId ? { responseId: "" } : undefined,
241-
);
242-
return new Response(sseStream, {
243-
headers: { "Content-Type": "text/event-stream", "Cache-Control": "no-cache", "Connection": "keep-alive", "X-Accel-Buffering": "no" },
244-
});
245-
}
246-
247-
// Fallback: buildRequest → fetch → parseStream (used by all non-SDK adapters and web-search sidecar)
248224
const request = adapter.buildRequest(parsed, { headers: req.headers });
249225
let upstreamResponse: Response;
250226
try {

0 commit comments

Comments
 (0)