@rudderjs/ai 1.17.3 → 1.18.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.
- package/README.md +19 -1274
- package/dist/budget-orm/index.d.ts +1 -95
- package/dist/budget-orm/index.d.ts.map +1 -1
- package/dist/budget-orm/index.js +4 -176
- package/dist/budget-orm/index.js.map +1 -1
- package/dist/chat-mentions.d.ts +1 -58
- package/dist/chat-mentions.d.ts.map +1 -1
- package/dist/chat-mentions.js +4 -80
- package/dist/chat-mentions.js.map +1 -1
- package/dist/commands/ai-eval.d.ts +1 -92
- package/dist/commands/ai-eval.d.ts.map +1 -1
- package/dist/commands/ai-eval.js +4 -377
- package/dist/commands/ai-eval.js.map +1 -1
- package/dist/commands/make-agent.d.ts +1 -2
- package/dist/commands/make-agent.d.ts.map +1 -1
- package/dist/commands/make-agent.js +4 -22
- package/dist/commands/make-agent.js.map +1 -1
- package/dist/computer-use/index.d.ts +1 -52
- package/dist/computer-use/index.d.ts.map +1 -1
- package/dist/computer-use/index.js +4 -50
- package/dist/computer-use/index.js.map +1 -1
- package/dist/conversation-orm/index.d.ts +1 -108
- package/dist/conversation-orm/index.d.ts.map +1 -1
- package/dist/conversation-orm/index.js +4 -214
- package/dist/conversation-orm/index.js.map +1 -1
- package/dist/doctor.d.ts +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +4 -65
- package/dist/doctor.js.map +1 -1
- package/dist/eval/index.d.ts +1 -270
- package/dist/eval/index.d.ts.map +1 -1
- package/dist/eval/index.js +4 -509
- package/dist/eval/index.js.map +1 -1
- package/dist/gateway/index.d.ts +1 -10
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +4 -10
- package/dist/gateway/index.js.map +1 -1
- package/dist/index.d.ts +1 -66
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -78
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts +1 -15
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +4 -14
- package/dist/mcp/index.js.map +1 -1
- package/dist/memory-embedding/index.d.ts +1 -120
- package/dist/memory-embedding/index.d.ts.map +1 -1
- package/dist/memory-embedding/index.js +4 -228
- package/dist/memory-embedding/index.js.map +1 -1
- package/dist/memory-orm/index.d.ts +1 -117
- package/dist/memory-orm/index.d.ts.map +1 -1
- package/dist/memory-orm/index.js +4 -186
- package/dist/memory-orm/index.js.map +1 -1
- package/dist/node/index.d.ts +1 -2
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +4 -2
- package/dist/node/index.js.map +1 -1
- package/dist/observers.d.ts +1 -129
- package/dist/observers.d.ts.map +1 -1
- package/dist/observers.js +4 -39
- package/dist/observers.js.map +1 -1
- package/dist/react/index.d.ts +1 -15
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +4 -15
- package/dist/react/index.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +4 -1
- package/dist/server/index.js.map +1 -1
- package/package.json +9 -13
- package/boost/guidelines.md +0 -260
- package/boost/skills/ai-agents/SKILL.md +0 -240
- package/boost/skills/ai-tools/SKILL.md +0 -260
- package/dist/agent-run-store.d.ts +0 -161
- package/dist/agent-run-store.d.ts.map +0 -1
- package/dist/agent-run-store.js +0 -98
- package/dist/agent-run-store.js.map +0 -1
- package/dist/agent-sse.d.ts +0 -153
- package/dist/agent-sse.d.ts.map +0 -1
- package/dist/agent-sse.js +0 -282
- package/dist/agent-sse.js.map +0 -1
- package/dist/agent.d.ts +0 -508
- package/dist/agent.d.ts.map +0 -1
- package/dist/agent.js +0 -1538
- package/dist/agent.js.map +0 -1
- package/dist/attachment.d.ts +0 -31
- package/dist/attachment.d.ts.map +0 -1
- package/dist/attachment.js +0 -89
- package/dist/attachment.js.map +0 -1
- package/dist/audio.d.ts +0 -45
- package/dist/audio.d.ts.map +0 -1
- package/dist/audio.js +0 -93
- package/dist/audio.js.map +0 -1
- package/dist/base64.d.ts +0 -7
- package/dist/base64.d.ts.map +0 -1
- package/dist/base64.js +0 -39
- package/dist/base64.js.map +0 -1
- package/dist/budget/pricing.d.ts +0 -124
- package/dist/budget/pricing.d.ts.map +0 -1
- package/dist/budget/pricing.js +0 -175
- package/dist/budget/pricing.js.map +0 -1
- package/dist/budget/storage.d.ts +0 -104
- package/dist/budget/storage.d.ts.map +0 -1
- package/dist/budget/storage.js +0 -0
- package/dist/budget/storage.js.map +0 -1
- package/dist/budget/with-budget.d.ts +0 -119
- package/dist/budget/with-budget.d.ts.map +0 -1
- package/dist/budget/with-budget.js +0 -175
- package/dist/budget/with-budget.js.map +0 -1
- package/dist/cached-embedding.d.ts +0 -14
- package/dist/cached-embedding.d.ts.map +0 -1
- package/dist/cached-embedding.js +0 -44
- package/dist/cached-embedding.js.map +0 -1
- package/dist/computer-use/actions.d.ts +0 -214
- package/dist/computer-use/actions.d.ts.map +0 -1
- package/dist/computer-use/actions.js +0 -48
- package/dist/computer-use/actions.js.map +0 -1
- package/dist/computer-use/errors.d.ts +0 -57
- package/dist/computer-use/errors.d.ts.map +0 -1
- package/dist/computer-use/errors.js +0 -76
- package/dist/computer-use/errors.js.map +0 -1
- package/dist/computer-use/playwright.d.ts +0 -76
- package/dist/computer-use/playwright.d.ts.map +0 -1
- package/dist/computer-use/playwright.js +0 -270
- package/dist/computer-use/playwright.js.map +0 -1
- package/dist/computer-use/tool.d.ts +0 -154
- package/dist/computer-use/tool.d.ts.map +0 -1
- package/dist/computer-use/tool.js +0 -210
- package/dist/computer-use/tool.js.map +0 -1
- package/dist/continuation-validation.d.ts +0 -85
- package/dist/continuation-validation.d.ts.map +0 -1
- package/dist/continuation-validation.js +0 -166
- package/dist/continuation-validation.js.map +0 -1
- package/dist/conversation-persistence.d.ts +0 -46
- package/dist/conversation-persistence.d.ts.map +0 -1
- package/dist/conversation-persistence.js +0 -176
- package/dist/conversation-persistence.js.map +0 -1
- package/dist/conversation.d.ts +0 -11
- package/dist/conversation.d.ts.map +0 -1
- package/dist/conversation.js +0 -55
- package/dist/conversation.js.map +0 -1
- package/dist/eval/fixtures.d.ts +0 -65
- package/dist/eval/fixtures.d.ts.map +0 -1
- package/dist/eval/fixtures.js +0 -110
- package/dist/eval/fixtures.js.map +0 -1
- package/dist/eval/html-reporter.d.ts +0 -25
- package/dist/eval/html-reporter.d.ts.map +0 -1
- package/dist/eval/html-reporter.js +0 -209
- package/dist/eval/html-reporter.js.map +0 -1
- package/dist/eval/json-reporter.d.ts +0 -43
- package/dist/eval/json-reporter.d.ts.map +0 -1
- package/dist/eval/json-reporter.js +0 -40
- package/dist/eval/json-reporter.js.map +0 -1
- package/dist/facade.d.ts +0 -96
- package/dist/facade.d.ts.map +0 -1
- package/dist/facade.js +0 -146
- package/dist/facade.js.map +0 -1
- package/dist/fake.d.ts +0 -201
- package/dist/fake.d.ts.map +0 -1
- package/dist/fake.js +0 -428
- package/dist/fake.js.map +0 -1
- package/dist/file-search.d.ts +0 -168
- package/dist/file-search.d.ts.map +0 -1
- package/dist/file-search.js +0 -158
- package/dist/file-search.js.map +0 -1
- package/dist/files.d.ts +0 -27
- package/dist/files.d.ts.map +0 -1
- package/dist/files.js +0 -44
- package/dist/files.js.map +0 -1
- package/dist/gateway/http-gateway-adapter.d.ts +0 -94
- package/dist/gateway/http-gateway-adapter.d.ts.map +0 -1
- package/dist/gateway/http-gateway-adapter.js +0 -106
- package/dist/gateway/http-gateway-adapter.js.map +0 -1
- package/dist/gateway/sse.d.ts +0 -28
- package/dist/gateway/sse.d.ts.map +0 -1
- package/dist/gateway/sse.js +0 -78
- package/dist/gateway/sse.js.map +0 -1
- package/dist/handoff.d.ts +0 -95
- package/dist/handoff.d.ts.map +0 -1
- package/dist/handoff.js +0 -78
- package/dist/handoff.js.map +0 -1
- package/dist/handoffs-driver.d.ts +0 -58
- package/dist/handoffs-driver.d.ts.map +0 -1
- package/dist/handoffs-driver.js +0 -103
- package/dist/handoffs-driver.js.map +0 -1
- package/dist/image.d.ts +0 -40
- package/dist/image.d.ts.map +0 -1
- package/dist/image.js +0 -109
- package/dist/image.js.map +0 -1
- package/dist/mcp/client-tools.d.ts +0 -39
- package/dist/mcp/client-tools.d.ts.map +0 -1
- package/dist/mcp/client-tools.js +0 -147
- package/dist/mcp/client-tools.js.map +0 -1
- package/dist/mcp/server-from-agent.d.ts +0 -24
- package/dist/mcp/server-from-agent.d.ts.map +0 -1
- package/dist/mcp/server-from-agent.js +0 -113
- package/dist/mcp/server-from-agent.js.map +0 -1
- package/dist/mcp/types.d.ts +0 -64
- package/dist/mcp/types.d.ts.map +0 -1
- package/dist/mcp/types.js +0 -6
- package/dist/mcp/types.js.map +0 -1
- package/dist/memory-extract.d.ts +0 -60
- package/dist/memory-extract.d.ts.map +0 -1
- package/dist/memory-extract.js +0 -163
- package/dist/memory-extract.js.map +0 -1
- package/dist/memory-inject.d.ts +0 -39
- package/dist/memory-inject.d.ts.map +0 -1
- package/dist/memory-inject.js +0 -135
- package/dist/memory-inject.js.map +0 -1
- package/dist/memory.d.ts +0 -55
- package/dist/memory.d.ts.map +0 -1
- package/dist/memory.js +0 -132
- package/dist/memory.js.map +0 -1
- package/dist/middleware.d.ts +0 -18
- package/dist/middleware.d.ts.map +0 -1
- package/dist/middleware.js +0 -72
- package/dist/middleware.js.map +0 -1
- package/dist/node/attachment.d.ts +0 -6
- package/dist/node/attachment.d.ts.map +0 -1
- package/dist/node/attachment.js +0 -35
- package/dist/node/attachment.js.map +0 -1
- package/dist/node/transcription.d.ts +0 -4
- package/dist/node/transcription.d.ts.map +0 -1
- package/dist/node/transcription.js +0 -8
- package/dist/node/transcription.js.map +0 -1
- package/dist/output.d.ts +0 -22
- package/dist/output.d.ts.map +0 -1
- package/dist/output.js +0 -60
- package/dist/output.js.map +0 -1
- package/dist/provider-tools.d.ts +0 -87
- package/dist/provider-tools.d.ts.map +0 -1
- package/dist/provider-tools.js +0 -189
- package/dist/provider-tools.js.map +0 -1
- package/dist/providers/anthropic.d.ts +0 -24
- package/dist/providers/anthropic.d.ts.map +0 -1
- package/dist/providers/anthropic.js +0 -405
- package/dist/providers/anthropic.js.map +0 -1
- package/dist/providers/azure.d.ts +0 -13
- package/dist/providers/azure.d.ts.map +0 -1
- package/dist/providers/azure.js +0 -15
- package/dist/providers/azure.js.map +0 -1
- package/dist/providers/bedrock.d.ts +0 -75
- package/dist/providers/bedrock.d.ts.map +0 -1
- package/dist/providers/bedrock.js +0 -181
- package/dist/providers/bedrock.js.map +0 -1
- package/dist/providers/cohere.d.ts +0 -13
- package/dist/providers/cohere.d.ts.map +0 -1
- package/dist/providers/cohere.js +0 -87
- package/dist/providers/cohere.js.map +0 -1
- package/dist/providers/deepseek.d.ts +0 -12
- package/dist/providers/deepseek.d.ts.map +0 -1
- package/dist/providers/deepseek.js +0 -15
- package/dist/providers/deepseek.js.map +0 -1
- package/dist/providers/elevenlabs.d.ts +0 -98
- package/dist/providers/elevenlabs.d.ts.map +0 -1
- package/dist/providers/elevenlabs.js +0 -229
- package/dist/providers/elevenlabs.js.map +0 -1
- package/dist/providers/google-cache-registry.d.ts +0 -132
- package/dist/providers/google-cache-registry.d.ts.map +0 -1
- package/dist/providers/google-cache-registry.js +0 -209
- package/dist/providers/google-cache-registry.js.map +0 -1
- package/dist/providers/google.d.ts +0 -38
- package/dist/providers/google.d.ts.map +0 -1
- package/dist/providers/google.js +0 -903
- package/dist/providers/google.js.map +0 -1
- package/dist/providers/groq.d.ts +0 -12
- package/dist/providers/groq.d.ts.map +0 -1
- package/dist/providers/groq.js +0 -15
- package/dist/providers/groq.js.map +0 -1
- package/dist/providers/jina.d.ts +0 -13
- package/dist/providers/jina.d.ts.map +0 -1
- package/dist/providers/jina.js +0 -90
- package/dist/providers/jina.js.map +0 -1
- package/dist/providers/mistral.d.ts +0 -13
- package/dist/providers/mistral.d.ts.map +0 -1
- package/dist/providers/mistral.js +0 -46
- package/dist/providers/mistral.js.map +0 -1
- package/dist/providers/ollama.d.ts +0 -11
- package/dist/providers/ollama.d.ts.map +0 -1
- package/dist/providers/ollama.js +0 -15
- package/dist/providers/ollama.js.map +0 -1
- package/dist/providers/openai.d.ts +0 -79
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/providers/openai.js +0 -792
- package/dist/providers/openai.js.map +0 -1
- package/dist/providers/openrouter.d.ts +0 -43
- package/dist/providers/openrouter.d.ts.map +0 -1
- package/dist/providers/openrouter.js +0 -21
- package/dist/providers/openrouter.js.map +0 -1
- package/dist/providers/voyage.d.ts +0 -91
- package/dist/providers/voyage.d.ts.map +0 -1
- package/dist/providers/voyage.js +0 -166
- package/dist/providers/voyage.js.map +0 -1
- package/dist/providers/xai.d.ts +0 -12
- package/dist/providers/xai.d.ts.map +0 -1
- package/dist/providers/xai.js +0 -15
- package/dist/providers/xai.js.map +0 -1
- package/dist/queue-job.d.ts +0 -100
- package/dist/queue-job.d.ts.map +0 -1
- package/dist/queue-job.js +0 -185
- package/dist/queue-job.js.map +0 -1
- package/dist/react/agent-run.d.ts +0 -111
- package/dist/react/agent-run.d.ts.map +0 -1
- package/dist/react/agent-run.js +0 -107
- package/dist/react/agent-run.js.map +0 -1
- package/dist/react/useAgentRun.d.ts +0 -68
- package/dist/react/useAgentRun.d.ts.map +0 -1
- package/dist/react/useAgentRun.js +0 -125
- package/dist/react/useAgentRun.js.map +0 -1
- package/dist/registry.d.ts +0 -45
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -131
- package/dist/registry.js.map +0 -1
- package/dist/rerank.d.ts +0 -20
- package/dist/rerank.d.ts.map +0 -1
- package/dist/rerank.js +0 -40
- package/dist/rerank.js.map +0 -1
- package/dist/resume-approval.d.ts +0 -30
- package/dist/resume-approval.d.ts.map +0 -1
- package/dist/resume-approval.js +0 -147
- package/dist/resume-approval.js.map +0 -1
- package/dist/sanitize-conversation.d.ts +0 -43
- package/dist/sanitize-conversation.d.ts.map +0 -1
- package/dist/sanitize-conversation.js +0 -85
- package/dist/sanitize-conversation.js.map +0 -1
- package/dist/scoped-tool.d.ts +0 -98
- package/dist/scoped-tool.d.ts.map +0 -1
- package/dist/scoped-tool.js +0 -174
- package/dist/scoped-tool.js.map +0 -1
- package/dist/server/provider.d.ts +0 -22
- package/dist/server/provider.d.ts.map +0 -1
- package/dist/server/provider.js +0 -194
- package/dist/server/provider.js.map +0 -1
- package/dist/similarity-search.d.ts +0 -163
- package/dist/similarity-search.d.ts.map +0 -1
- package/dist/similarity-search.js +0 -147
- package/dist/similarity-search.js.map +0 -1
- package/dist/sub-agent-run-store.d.ts +0 -157
- package/dist/sub-agent-run-store.d.ts.map +0 -1
- package/dist/sub-agent-run-store.js +0 -87
- package/dist/sub-agent-run-store.js.map +0 -1
- package/dist/tool-execution.d.ts +0 -16
- package/dist/tool-execution.d.ts.map +0 -1
- package/dist/tool-execution.js +0 -498
- package/dist/tool-execution.js.map +0 -1
- package/dist/tool-helpers.d.ts +0 -77
- package/dist/tool-helpers.d.ts.map +0 -1
- package/dist/tool-helpers.js +0 -117
- package/dist/tool-helpers.js.map +0 -1
- package/dist/tool.d.ts +0 -216
- package/dist/tool.d.ts.map +0 -1
- package/dist/tool.js +0 -175
- package/dist/tool.js.map +0 -1
- package/dist/transcription.d.ts +0 -42
- package/dist/transcription.d.ts.map +0 -1
- package/dist/transcription.js +0 -77
- package/dist/transcription.js.map +0 -1
- package/dist/types.d.ts +0 -1020
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/util/hash.d.ts +0 -11
- package/dist/util/hash.d.ts.map +0 -1
- package/dist/util/hash.js +0 -23
- package/dist/util/hash.js.map +0 -1
- package/dist/vector-stores/index.d.ts +0 -96
- package/dist/vector-stores/index.d.ts.map +0 -1
- package/dist/vector-stores/index.js +0 -153
- package/dist/vector-stores/index.js.map +0 -1
- package/dist/vercel-protocol.d.ts +0 -18
- package/dist/vercel-protocol.d.ts.map +0 -1
- package/dist/vercel-protocol.js +0 -75
- package/dist/vercel-protocol.js.map +0 -1
- package/dist/zod-to-json-schema.d.ts +0 -16
- package/dist/zod-to-json-schema.d.ts.map +0 -1
- package/dist/zod-to-json-schema.js +0 -17
- package/dist/zod-to-json-schema.js.map +0 -1
|
@@ -1,405 +0,0 @@
|
|
|
1
|
-
import { base64ToUtf8 } from '../base64.js';
|
|
2
|
-
export class AnthropicProvider {
|
|
3
|
-
name = 'anthropic';
|
|
4
|
-
config;
|
|
5
|
-
constructor(config) {
|
|
6
|
-
this.config = config;
|
|
7
|
-
}
|
|
8
|
-
create(model) {
|
|
9
|
-
return new AnthropicAdapter(this.config, model);
|
|
10
|
-
}
|
|
11
|
-
createFiles() {
|
|
12
|
-
return new AnthropicFileAdapter(this.config);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
// ─── Adapter ──────────────────────────────────────────────
|
|
16
|
-
class AnthropicAdapter {
|
|
17
|
-
config;
|
|
18
|
-
model;
|
|
19
|
-
client = null;
|
|
20
|
-
constructor(config, model) {
|
|
21
|
-
this.config = config;
|
|
22
|
-
this.model = model;
|
|
23
|
-
}
|
|
24
|
-
async getClient() {
|
|
25
|
-
if (this.client)
|
|
26
|
-
return this.client;
|
|
27
|
-
const sdk = await import(/* @vite-ignore */ '@anthropic-ai/sdk');
|
|
28
|
-
const Anthropic = sdk.default ?? sdk.Anthropic;
|
|
29
|
-
this.client = new Anthropic({
|
|
30
|
-
apiKey: this.config.apiKey,
|
|
31
|
-
...(this.config.baseUrl ? { baseURL: this.config.baseUrl } : {}),
|
|
32
|
-
});
|
|
33
|
-
return this.client;
|
|
34
|
-
}
|
|
35
|
-
async generate(options) {
|
|
36
|
-
const client = await this.getClient();
|
|
37
|
-
const { system, messages } = splitSystemMessages(options.messages);
|
|
38
|
-
const cache = options.cache;
|
|
39
|
-
const params = {
|
|
40
|
-
model: this.model,
|
|
41
|
-
messages: applyCacheToMessages(toAnthropicMessages(messages), cache?.messages),
|
|
42
|
-
max_tokens: options.maxTokens ?? 4096,
|
|
43
|
-
};
|
|
44
|
-
const sys = applyCacheToSystem(system, cache?.instructions === true);
|
|
45
|
-
if (sys !== undefined)
|
|
46
|
-
params['system'] = sys;
|
|
47
|
-
if (options.temperature !== undefined)
|
|
48
|
-
params['temperature'] = options.temperature;
|
|
49
|
-
if (options.topP !== undefined)
|
|
50
|
-
params['top_p'] = options.topP;
|
|
51
|
-
if (options.stop)
|
|
52
|
-
params['stop_sequences'] = options.stop;
|
|
53
|
-
if (options.tools?.length) {
|
|
54
|
-
params['tools'] = applyCacheToTools(toAnthropicTools(options.tools), cache?.tools === true);
|
|
55
|
-
}
|
|
56
|
-
if (options.toolChoice)
|
|
57
|
-
params['tool_choice'] = toAnthropicToolChoice(options.toolChoice);
|
|
58
|
-
const response = await client.messages.create(params, options.signal ? { signal: options.signal } : undefined);
|
|
59
|
-
return fromAnthropicResponse(response);
|
|
60
|
-
}
|
|
61
|
-
async *stream(options) {
|
|
62
|
-
const client = await this.getClient();
|
|
63
|
-
const { system, messages } = splitSystemMessages(options.messages);
|
|
64
|
-
const cache = options.cache;
|
|
65
|
-
const params = {
|
|
66
|
-
model: this.model,
|
|
67
|
-
messages: applyCacheToMessages(toAnthropicMessages(messages), cache?.messages),
|
|
68
|
-
max_tokens: options.maxTokens ?? 4096,
|
|
69
|
-
stream: true,
|
|
70
|
-
};
|
|
71
|
-
const sys = applyCacheToSystem(system, cache?.instructions === true);
|
|
72
|
-
if (sys !== undefined)
|
|
73
|
-
params['system'] = sys;
|
|
74
|
-
if (options.temperature !== undefined)
|
|
75
|
-
params['temperature'] = options.temperature;
|
|
76
|
-
if (options.topP !== undefined)
|
|
77
|
-
params['top_p'] = options.topP;
|
|
78
|
-
if (options.stop)
|
|
79
|
-
params['stop_sequences'] = options.stop;
|
|
80
|
-
if (options.tools?.length) {
|
|
81
|
-
params['tools'] = applyCacheToTools(toAnthropicTools(options.tools), cache?.tools === true);
|
|
82
|
-
}
|
|
83
|
-
if (options.toolChoice)
|
|
84
|
-
params['tool_choice'] = toAnthropicToolChoice(options.toolChoice);
|
|
85
|
-
const stream = await client.messages.stream(params, options.signal ? { signal: options.signal } : undefined);
|
|
86
|
-
// Anthropic's stream protocol splits usage across two events:
|
|
87
|
-
// - `message_start.message.usage.input_tokens` carries the prompt count
|
|
88
|
-
// - `message_delta.usage.output_tokens` carries the completion count
|
|
89
|
-
// Track the prompt count from message_start so we can emit a complete
|
|
90
|
-
// `finish` usage object — without this the finish chunk reports
|
|
91
|
-
// `promptTokens: 0`, the agent loop's last-wins aggregation overwrites
|
|
92
|
-
// the correct earlier value, and consumers (billing, withBudget) silently
|
|
93
|
-
// undercharge for streamed calls.
|
|
94
|
-
let lastPromptTokens = 0;
|
|
95
|
-
for await (const event of stream) {
|
|
96
|
-
if (event.type === 'content_block_delta') {
|
|
97
|
-
if (event.delta.type === 'text_delta') {
|
|
98
|
-
yield { type: 'text-delta', text: event.delta.text };
|
|
99
|
-
}
|
|
100
|
-
else if (event.delta.type === 'input_json_delta') {
|
|
101
|
-
yield { type: 'tool-call-delta', text: event.delta.partial_json };
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else if (event.type === 'content_block_start' && event.content_block.type === 'tool_use') {
|
|
105
|
-
yield {
|
|
106
|
-
type: 'tool-call-delta',
|
|
107
|
-
toolCall: { id: event.content_block.id, name: event.content_block.name },
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
else if (event.type === 'message_delta') {
|
|
111
|
-
const completionTokens = event.usage?.output_tokens ?? 0;
|
|
112
|
-
yield {
|
|
113
|
-
type: 'finish',
|
|
114
|
-
finishReason: event.delta.stop_reason === 'tool_use' ? 'tool_calls' : 'stop',
|
|
115
|
-
usage: {
|
|
116
|
-
promptTokens: lastPromptTokens,
|
|
117
|
-
completionTokens,
|
|
118
|
-
totalTokens: lastPromptTokens + completionTokens,
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
else if (event.type === 'message_start' && event.message?.usage) {
|
|
123
|
-
lastPromptTokens = event.message.usage.input_tokens ?? 0;
|
|
124
|
-
// output_tokens at message_start is the SDK's initial counter (~0/1),
|
|
125
|
-
// not the final completion total — don't claim a totalTokens here.
|
|
126
|
-
// The `finish` chunk above carries the authoritative final usage.
|
|
127
|
-
yield {
|
|
128
|
-
type: 'usage',
|
|
129
|
-
usage: {
|
|
130
|
-
promptTokens: lastPromptTokens,
|
|
131
|
-
completionTokens: 0,
|
|
132
|
-
totalTokens: lastPromptTokens,
|
|
133
|
-
},
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
// ─── Conversion Helpers ──────────────────────────────────
|
|
140
|
-
export function splitSystemMessages(messages) {
|
|
141
|
-
const systemMsgs = messages.filter(m => m.role === 'system');
|
|
142
|
-
const rest = messages.filter(m => m.role !== 'system');
|
|
143
|
-
const system = systemMsgs.length > 0
|
|
144
|
-
? systemMsgs.map(m => m.content).join('\n\n')
|
|
145
|
-
: undefined;
|
|
146
|
-
return { system, messages: rest };
|
|
147
|
-
}
|
|
148
|
-
function contentToString(content) {
|
|
149
|
-
if (typeof content === 'string')
|
|
150
|
-
return content;
|
|
151
|
-
return content.filter(p => p.type === 'text').map(p => p.text).join('');
|
|
152
|
-
}
|
|
153
|
-
function contentToAnthropicParts(content) {
|
|
154
|
-
if (typeof content === 'string')
|
|
155
|
-
return content;
|
|
156
|
-
return content.map(p => {
|
|
157
|
-
if (p.type === 'text')
|
|
158
|
-
return { type: 'text', text: p.text };
|
|
159
|
-
if (p.type === 'image')
|
|
160
|
-
return { type: 'image', source: { type: 'base64', media_type: p.mimeType, data: p.data } };
|
|
161
|
-
// document — use Anthropic's document block for PDFs, else base64
|
|
162
|
-
if (p.mimeType === 'application/pdf') {
|
|
163
|
-
return { type: 'document', source: { type: 'base64', media_type: p.mimeType, data: p.data } };
|
|
164
|
-
}
|
|
165
|
-
// For text-based documents, decode and send as text
|
|
166
|
-
return { type: 'text', text: base64ToUtf8(p.data) };
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
export function toAnthropicMessages(messages) {
|
|
170
|
-
return messages.map(m => {
|
|
171
|
-
if (m.role === 'assistant' && m.toolCalls?.length) {
|
|
172
|
-
const text = contentToString(m.content);
|
|
173
|
-
return {
|
|
174
|
-
role: 'assistant',
|
|
175
|
-
content: [
|
|
176
|
-
...(text ? [{ type: 'text', text }] : []),
|
|
177
|
-
...m.toolCalls.map(tc => ({
|
|
178
|
-
type: 'tool_use',
|
|
179
|
-
id: tc.id,
|
|
180
|
-
name: tc.name,
|
|
181
|
-
input: tc.arguments,
|
|
182
|
-
})),
|
|
183
|
-
],
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
if (m.role === 'tool') {
|
|
187
|
-
// Tool results come in three shapes today:
|
|
188
|
-
// - string — standard scalar return (most tools)
|
|
189
|
-
// - ContentPart[] — rich content (e.g. computer-use's screenshot
|
|
190
|
-
// returns an image block; the adapter emits it
|
|
191
|
-
// as Anthropic's `content: [{ type: 'image', source: {...} }]`)
|
|
192
|
-
// - any other value — JSON-stringify fallback (legacy)
|
|
193
|
-
let content;
|
|
194
|
-
if (typeof m.content === 'string') {
|
|
195
|
-
content = m.content;
|
|
196
|
-
}
|
|
197
|
-
else if (Array.isArray(m.content)) {
|
|
198
|
-
content = contentToAnthropicParts(m.content);
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
content = JSON.stringify(m.content);
|
|
202
|
-
}
|
|
203
|
-
return {
|
|
204
|
-
role: 'user',
|
|
205
|
-
content: [{
|
|
206
|
-
type: 'tool_result',
|
|
207
|
-
tool_use_id: m.toolCallId,
|
|
208
|
-
content,
|
|
209
|
-
}],
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
// User messages with attachments → content array
|
|
213
|
-
if (Array.isArray(m.content)) {
|
|
214
|
-
return { role: m.role, content: contentToAnthropicParts(m.content) };
|
|
215
|
-
}
|
|
216
|
-
return { role: m.role, content: m.content };
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
export function toAnthropicTools(tools) {
|
|
220
|
-
return tools.map(t => {
|
|
221
|
-
// Provider-native tool blocks: when a tool carries a recognized
|
|
222
|
-
// `providerHint`, emit Anthropic's native shape instead of the
|
|
223
|
-
// standard function-call schema. Currently:
|
|
224
|
-
// - 'computer-use' → computer_20250124 (or whatever `tool` field
|
|
225
|
-
// declares; defaults to computer_20250124).
|
|
226
|
-
// The model is fine-tuned on the native block;
|
|
227
|
-
// quality is dramatically better than wrapping
|
|
228
|
-
// it as a function-call.
|
|
229
|
-
if (t.providerHint?.type === 'computer-use') {
|
|
230
|
-
const variant = t.providerHint['tool'] ?? 'computer_20250124';
|
|
231
|
-
const width = t.providerHint['display_width_px'] ?? 1280;
|
|
232
|
-
const height = t.providerHint['display_height_px'] ?? 800;
|
|
233
|
-
return {
|
|
234
|
-
type: variant,
|
|
235
|
-
name: t.name,
|
|
236
|
-
display_width_px: width,
|
|
237
|
-
display_height_px: height,
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
// - 'web-search' → web_search_20250305 (or whatever `tool` field
|
|
241
|
-
// declares; defaults to web_search_20250305).
|
|
242
|
-
// Server-side; the model emits a `tool_use` block,
|
|
243
|
-
// Anthropic runs the search, results stream back as
|
|
244
|
-
// a `tool_result` block — no agent-loop round-trip.
|
|
245
|
-
if (t.providerHint?.type === 'web-search') {
|
|
246
|
-
const variant = t.providerHint['tool'] ?? 'web_search_20250305';
|
|
247
|
-
const block = { type: variant, name: t.name };
|
|
248
|
-
if (t.providerHint['max_uses'] !== undefined)
|
|
249
|
-
block['max_uses'] = t.providerHint['max_uses'];
|
|
250
|
-
if (t.providerHint['allowed_domains'] !== undefined)
|
|
251
|
-
block['allowed_domains'] = t.providerHint['allowed_domains'];
|
|
252
|
-
if (t.providerHint['blocked_domains'] !== undefined)
|
|
253
|
-
block['blocked_domains'] = t.providerHint['blocked_domains'];
|
|
254
|
-
if (t.providerHint['user_location'] !== undefined)
|
|
255
|
-
block['user_location'] = t.providerHint['user_location'];
|
|
256
|
-
return block;
|
|
257
|
-
}
|
|
258
|
-
return {
|
|
259
|
-
name: t.name,
|
|
260
|
-
description: t.description,
|
|
261
|
-
input_schema: t.parameters,
|
|
262
|
-
};
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
// ─── Prompt-cache markers ────────────────────────────────
|
|
266
|
-
//
|
|
267
|
-
// Anthropic exposes ephemeral prompt caching via `cache_control` on
|
|
268
|
-
// individual content blocks. The marker goes on the *last* block of each
|
|
269
|
-
// region you want to cache; everything up to (and including) that block is
|
|
270
|
-
// cached. Up to 4 cache breakpoints per request — we currently emit at
|
|
271
|
-
// most 3 (system, tools, messages[N]) so we stay well under the limit.
|
|
272
|
-
//
|
|
273
|
-
// Spec: https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching
|
|
274
|
-
const CACHE_CONTROL = { cache_control: { type: 'ephemeral' } };
|
|
275
|
-
export function applyCacheToSystem(system, enabled) {
|
|
276
|
-
if (!system)
|
|
277
|
-
return undefined;
|
|
278
|
-
if (!enabled)
|
|
279
|
-
return system;
|
|
280
|
-
// String-form system can't carry cache_control; convert to a single text block.
|
|
281
|
-
return [{ type: 'text', text: system, ...CACHE_CONTROL }];
|
|
282
|
-
}
|
|
283
|
-
export function applyCacheToTools(tools, enabled) {
|
|
284
|
-
if (!enabled || tools.length === 0)
|
|
285
|
-
return tools;
|
|
286
|
-
return tools.map((t, i) => i === tools.length - 1 ? { ...t, ...CACHE_CONTROL } : t);
|
|
287
|
-
}
|
|
288
|
-
export function applyCacheToMessages(messages, cacheCount) {
|
|
289
|
-
if (!cacheCount || cacheCount <= 0 || messages.length === 0)
|
|
290
|
-
return messages;
|
|
291
|
-
// Cache the first N messages — mark cache_control on the last content block
|
|
292
|
-
// of message at index N-1 (or the last actual message if N exceeds length).
|
|
293
|
-
const idx = Math.min(cacheCount - 1, messages.length - 1);
|
|
294
|
-
return messages.map((m, i) => {
|
|
295
|
-
if (i !== idx)
|
|
296
|
-
return m;
|
|
297
|
-
const msg = m;
|
|
298
|
-
if (typeof msg.content === 'string') {
|
|
299
|
-
// Convert string content to a single text block so we can attach cache_control.
|
|
300
|
-
return { ...msg, content: [{ type: 'text', text: msg.content, ...CACHE_CONTROL }] };
|
|
301
|
-
}
|
|
302
|
-
if (Array.isArray(msg.content) && msg.content.length > 0) {
|
|
303
|
-
const blocks = msg.content;
|
|
304
|
-
const newBlocks = blocks.map((b, j) => j === blocks.length - 1 ? { ...b, ...CACHE_CONTROL } : b);
|
|
305
|
-
return { ...msg, content: newBlocks };
|
|
306
|
-
}
|
|
307
|
-
return m;
|
|
308
|
-
});
|
|
309
|
-
}
|
|
310
|
-
export function toAnthropicToolChoice(choice) {
|
|
311
|
-
if (choice === 'auto')
|
|
312
|
-
return { type: 'auto' };
|
|
313
|
-
if (choice === 'required')
|
|
314
|
-
return { type: 'any' };
|
|
315
|
-
if (choice === 'none')
|
|
316
|
-
return undefined;
|
|
317
|
-
if (typeof choice === 'object' && 'name' in choice)
|
|
318
|
-
return { type: 'tool', name: choice.name };
|
|
319
|
-
return { type: 'auto' };
|
|
320
|
-
}
|
|
321
|
-
export function fromAnthropicResponse(response) {
|
|
322
|
-
const toolCalls = [];
|
|
323
|
-
let text = '';
|
|
324
|
-
for (const block of response.content ?? []) {
|
|
325
|
-
if (block.type === 'text')
|
|
326
|
-
text += block.text;
|
|
327
|
-
if (block.type === 'tool_use') {
|
|
328
|
-
toolCalls.push({ id: block.id, name: block.name, arguments: block.input });
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
return {
|
|
332
|
-
message: {
|
|
333
|
-
role: 'assistant',
|
|
334
|
-
content: text,
|
|
335
|
-
...(toolCalls.length > 0 ? { toolCalls } : {}),
|
|
336
|
-
},
|
|
337
|
-
usage: {
|
|
338
|
-
promptTokens: response.usage?.input_tokens ?? 0,
|
|
339
|
-
completionTokens: response.usage?.output_tokens ?? 0,
|
|
340
|
-
totalTokens: (response.usage?.input_tokens ?? 0) + (response.usage?.output_tokens ?? 0),
|
|
341
|
-
},
|
|
342
|
-
finishReason: response.stop_reason === 'tool_use' ? 'tool_calls' : 'stop',
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
// ─── Files ──────────────────────────────────────────────
|
|
346
|
-
class AnthropicFileAdapter {
|
|
347
|
-
config;
|
|
348
|
-
client = null;
|
|
349
|
-
constructor(config) {
|
|
350
|
-
this.config = config;
|
|
351
|
-
}
|
|
352
|
-
async getClient() {
|
|
353
|
-
if (this.client)
|
|
354
|
-
return this.client;
|
|
355
|
-
const sdk = await import(/* @vite-ignore */ '@anthropic-ai/sdk');
|
|
356
|
-
const Anthropic = sdk.default ?? sdk.Anthropic;
|
|
357
|
-
this.client = new Anthropic({
|
|
358
|
-
apiKey: this.config.apiKey,
|
|
359
|
-
...(this.config.baseUrl ? { baseURL: this.config.baseUrl } : {}),
|
|
360
|
-
});
|
|
361
|
-
return this.client;
|
|
362
|
-
}
|
|
363
|
-
async upload(options) {
|
|
364
|
-
const client = await this.getClient();
|
|
365
|
-
const { readFile } = await import(/* @vite-ignore */ 'node:fs/promises');
|
|
366
|
-
const { basename } = await import(/* @vite-ignore */ 'node:path');
|
|
367
|
-
const data = await readFile(options.filePath);
|
|
368
|
-
const filename = basename(options.filePath);
|
|
369
|
-
const response = await client.files.upload({
|
|
370
|
-
file: new Blob([data]),
|
|
371
|
-
purpose: options.purpose ?? 'assistants',
|
|
372
|
-
});
|
|
373
|
-
return {
|
|
374
|
-
id: response.id,
|
|
375
|
-
filename,
|
|
376
|
-
bytes: data.byteLength,
|
|
377
|
-
purpose: options.purpose,
|
|
378
|
-
};
|
|
379
|
-
}
|
|
380
|
-
async list() {
|
|
381
|
-
const client = await this.getClient();
|
|
382
|
-
const response = await client.files.list();
|
|
383
|
-
const files = [];
|
|
384
|
-
for await (const f of response) {
|
|
385
|
-
files.push({
|
|
386
|
-
id: f.id,
|
|
387
|
-
filename: f.filename ?? f.id,
|
|
388
|
-
bytes: f.size ?? 0,
|
|
389
|
-
purpose: f.purpose,
|
|
390
|
-
});
|
|
391
|
-
}
|
|
392
|
-
return { files };
|
|
393
|
-
}
|
|
394
|
-
async delete(fileId) {
|
|
395
|
-
const client = await this.getClient();
|
|
396
|
-
await client.files.delete(fileId);
|
|
397
|
-
}
|
|
398
|
-
async retrieve(fileId) {
|
|
399
|
-
const client = await this.getClient();
|
|
400
|
-
const response = await client.files.content(fileId);
|
|
401
|
-
const buffer = Buffer.from(await response.arrayBuffer());
|
|
402
|
-
return { data: buffer, mimeType: 'application/octet-stream' };
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
//# sourceMappingURL=anthropic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ProviderFactory, ProviderAdapter } from '../types.js';
|
|
2
|
-
export interface AzureOpenAIConfig {
|
|
3
|
-
apiKey: string;
|
|
4
|
-
/** Azure endpoint, e.g. https://my-resource.openai.azure.com/openai/deployments/my-deployment */
|
|
5
|
-
baseUrl: string;
|
|
6
|
-
}
|
|
7
|
-
export declare class AzureOpenAIProvider implements ProviderFactory {
|
|
8
|
-
readonly name = "azure";
|
|
9
|
-
private readonly config;
|
|
10
|
-
constructor(config: AzureOpenAIConfig);
|
|
11
|
-
create(model: string): ProviderAdapter;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=azure.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"azure.d.ts","sourceRoot":"","sources":["../../src/providers/azure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEnE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,iGAAiG;IACjG,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACzD,QAAQ,CAAC,IAAI,WAAU;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;gBAE9B,MAAM,EAAE,iBAAiB;IAIrC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;CASvC"}
|
package/dist/providers/azure.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { OpenAIAdapter } from './openai.js';
|
|
2
|
-
export class AzureOpenAIProvider {
|
|
3
|
-
name = 'azure';
|
|
4
|
-
config;
|
|
5
|
-
constructor(config) {
|
|
6
|
-
this.config = config;
|
|
7
|
-
}
|
|
8
|
-
create(model) {
|
|
9
|
-
return new OpenAIAdapter({
|
|
10
|
-
apiKey: this.config.apiKey,
|
|
11
|
-
baseUrl: this.config.baseUrl,
|
|
12
|
-
}, model);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=azure.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"azure.js","sourceRoot":"","sources":["../../src/providers/azure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAS3C,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,OAAO,CAAA;IACN,MAAM,CAAmB;IAE1C,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,aAAa,CACtB;YACE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SAC7B,EACD,KAAK,CACN,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import type { ProviderFactory, ProviderAdapter, StreamChunk } from '../types.js';
|
|
2
|
-
/**
|
|
3
|
-
* AWS Bedrock — managed access to foundation models on AWS infrastructure.
|
|
4
|
-
*
|
|
5
|
-
* v1 supports **Anthropic Claude models on Bedrock** (the dominant case for
|
|
6
|
-
* Rudder users on AWS). Other model families on Bedrock (Llama, Nova, etc.)
|
|
7
|
-
* surface a clear error pointing at the supported set — they can be added in
|
|
8
|
-
* follow-up PRs as demand justifies.
|
|
9
|
-
*
|
|
10
|
-
* Auth uses the standard AWS credential chain: env vars (`AWS_ACCESS_KEY_ID`,
|
|
11
|
-
* `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN`), IAM roles on EC2/ECS/Lambda,
|
|
12
|
-
* `~/.aws/credentials`, etc. We don't accept credentials in `BedrockConfig` —
|
|
13
|
-
* use environment-aware credentials so the same code works in dev and prod.
|
|
14
|
-
*
|
|
15
|
-
* Model strings:
|
|
16
|
-
* `bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0`
|
|
17
|
-
* `bedrock/anthropic.claude-3-5-haiku-20241022-v1:0`
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```ts
|
|
21
|
-
* // config/ai.ts
|
|
22
|
-
* providers: {
|
|
23
|
-
* bedrock: {
|
|
24
|
-
* region: env('AWS_REGION', 'us-east-1'),
|
|
25
|
-
* },
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export interface BedrockConfig {
|
|
30
|
-
region: string;
|
|
31
|
-
/**
|
|
32
|
-
* Optional explicit credentials. Prefer the AWS credential chain (env vars,
|
|
33
|
-
* IAM roles); only set this for niche cases (multi-account explicit creds).
|
|
34
|
-
*/
|
|
35
|
-
credentials?: {
|
|
36
|
-
accessKeyId: string;
|
|
37
|
-
secretAccessKey: string;
|
|
38
|
-
sessionToken?: string;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export declare class BedrockProvider implements ProviderFactory {
|
|
42
|
-
readonly name = "bedrock";
|
|
43
|
-
private readonly config;
|
|
44
|
-
constructor(config: BedrockConfig);
|
|
45
|
-
create(model: string): ProviderAdapter;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Bedrock model ids for Anthropic look like `anthropic.claude-3-5-sonnet-20241022-v2:0`.
|
|
49
|
-
* Any other prefix (`meta.`, `amazon.`, `cohere.`, `mistral.`, `ai21.`) is a
|
|
50
|
-
* different model family that needs its own conversion path.
|
|
51
|
-
*/
|
|
52
|
-
export declare function isAnthropicOnBedrock(model: string): boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Cross-event state for Bedrock-Anthropic streaming. The Anthropic stream
|
|
55
|
-
* protocol splits prompt + completion token counts across two distinct
|
|
56
|
-
* events; we track the prompt count from `message_start` so the later
|
|
57
|
-
* `message_delta` → `finish` chunk can emit a complete usage object.
|
|
58
|
-
*/
|
|
59
|
-
export interface BedrockStreamState {
|
|
60
|
-
lastPromptTokens: number;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Map a single decoded Bedrock-Anthropic stream event to zero-or-more
|
|
64
|
-
* `StreamChunk`s. Bedrock wraps Anthropic's native streaming events 1:1 in
|
|
65
|
-
* `chunk.bytes`, so the body shape matches `anthropic.ts`'s loop — but we
|
|
66
|
-
* keep the mapping here so a future model family can be added cleanly.
|
|
67
|
-
*
|
|
68
|
-
* `state` is mutated across calls: `message_start` captures `lastPromptTokens`,
|
|
69
|
-
* the subsequent `message_delta` reads it back. Without this, the `finish`
|
|
70
|
-
* chunk reports `promptTokens: 0`, the agent loop's last-wins aggregation
|
|
71
|
-
* overwrites the correct earlier value, and consumers (billing, withBudget)
|
|
72
|
-
* silently undercharge for streamed calls.
|
|
73
|
-
*/
|
|
74
|
-
export declare function mapBedrockAnthropicEvent(event: Record<string, any>, state: BedrockStreamState): Generator<StreamChunk>;
|
|
75
|
-
//# sourceMappingURL=bedrock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/providers/bedrock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAGf,WAAW,EACZ,MAAM,aAAa,CAAA;AAYpB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,aAAY;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,EAAE,aAAa;IAIjC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;CAGvC;AAmHD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAiB,wBAAwB,CACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,kBAAkB,GACxB,SAAS,CAAC,WAAW,CAAC,CAsCxB"}
|