@captra-ai/anthropic 0.0.0-stage → 0.1.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 CHANGED
@@ -1,3 +1,14 @@
1
- # Temporary Holding Version
1
+ # @captra-ai/anthropic
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Official Anthropic Messages API adapter for Captra. It supports text generation, token streaming, strict tools, native JSON Schema output, usage accounting, cancellation, retries, and portable provider errors.
4
+
5
+ ```ts
6
+ import { createAnthropic } from '@captra-ai/anthropic'
7
+
8
+ const model=createAnthropic({
9
+ model:process.env.ANTHROPIC_MODEL ?? 'claude-sonnet-4-6',
10
+ apiKey:process.env.ANTHROPIC_API_KEY,
11
+ })
12
+ ```
13
+
14
+ The adapter is server-only. Never expose `ANTHROPIC_API_KEY` to browser code.
@@ -0,0 +1,13 @@
1
+ import { type ModelAdapter } from '@captra-ai/core';
2
+ export type AnthropicOptions = {
3
+ model: string;
4
+ apiKey?: string;
5
+ baseUrl?: string;
6
+ fetch?: typeof fetch;
7
+ headers?: HeadersInit;
8
+ maxRetries?: number;
9
+ maxOutputTokens?: number;
10
+ version?: string;
11
+ };
12
+ export declare function createAnthropic(options: AnthropicOptions): ModelAdapter;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAA4E,MAAM,iBAAiB,CAAA;AAEhJ,MAAM,MAAM,gBAAgB,GAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,MAAM,CAAC,EAAC,MAAM,CAAC;IAAA,OAAO,CAAC,EAAC,MAAM,CAAC;IAAA,KAAK,CAAC,EAAC,OAAO,KAAK,CAAC;IAAA,OAAO,CAAC,EAAC,WAAW,CAAC;IAAA,UAAU,CAAC,EAAC,MAAM,CAAC;IAAA,eAAe,CAAC,EAAC,MAAM,CAAC;IAAA,OAAO,CAAC,EAAC,MAAM,CAAA;CAAC,CAAA;AAI9K,wBAAgB,eAAe,CAAC,OAAO,EAAC,gBAAgB,GAAE,YAAY,CAWrE"}
package/dist/index.js ADDED
@@ -0,0 +1,99 @@
1
+ import { ModelProviderError } from '@captra-ai/core';
2
+ export function createAnthropic(options) {
3
+ const request = options.fetch ?? globalThis.fetch, baseUrl = (options.baseUrl ?? 'https://api.anthropic.com/v1').replace(/\/$/, ''), apiKey = options.apiKey ?? env('ANTHROPIC_API_KEY');
4
+ if (!apiKey)
5
+ throw new Error('Anthropic API key is required');
6
+ const headers = { 'content-type': 'application/json', 'x-api-key': apiKey, 'anthropic-version': options.version ?? '2023-06-01', ...options.headers };
7
+ const bodyFor = (input, stream = false) => { const system = input.messages.filter(message => message.role === 'system').map(message => message.content).join('\n\n'); return { model: options.model, max_tokens: input.maxOutputTokens ?? options.maxOutputTokens ?? 4096, messages: toMessages(input.messages), ...(system ? { system } : {}), ...(input.tools?.length ? { tools: input.tools.map(tool => ({ name: tool.name, description: tool.description, input_schema: tool.inputSchema, strict: tool.strict ?? false })) } : {}), ...(input.output ? { output_config: { format: { type: 'json_schema', schema: input.output.schema } } } : {}), ...(input.temperature === undefined ? {} : { temperature: input.temperature }), ...(stream ? { stream: true } : {}) }; };
8
+ const send = async (body, signal) => { for (let attempt = 0;; attempt++) {
9
+ const response = await request(`${baseUrl}/messages`, { method: 'POST', headers, body: JSON.stringify(body), signal });
10
+ if (!retryable(response.status) || attempt >= (options.maxRetries ?? 2))
11
+ return response;
12
+ await wait(response, attempt, signal);
13
+ } };
14
+ return {
15
+ async generate(input) { const response = await send(bodyFor(input), input.signal), data = await response.json(); if (!response.ok)
16
+ throw providerError(response.status, data.error); return { ...fromResponse(data), provider: 'anthropic' }; },
17
+ async *stream(input) {
18
+ const response = await send(bodyFor(input, true), input.signal);
19
+ if (!response.ok || !response.body) {
20
+ const data = await safeJson(response);
21
+ throw providerError(response.status, data?.error, await safeText(response));
22
+ }
23
+ const blocks = new Map();
24
+ let model, inputTokens, outputTokens, cachedInputTokens;
25
+ for await (const event of sse(response.body)) {
26
+ if (event.type === 'error')
27
+ throw providerError(529, event.error);
28
+ if (event.type === 'message_start') {
29
+ model = event.message?.model;
30
+ inputTokens = event.message?.usage?.input_tokens;
31
+ cachedInputTokens = event.message?.usage?.cache_read_input_tokens;
32
+ }
33
+ else if (event.type === 'content_block_start') {
34
+ const block = event.content_block ?? {};
35
+ blocks.set(event.index, { type: block.type, text: block.text ?? '', id: block.id, name: block.name, json: block.type === 'tool_use' ? '' : block.input ? JSON.stringify(block.input) : '' });
36
+ }
37
+ else if (event.type === 'content_block_delta') {
38
+ const block = blocks.get(event.index);
39
+ if (!block)
40
+ continue;
41
+ if (event.delta?.type === 'text_delta' && event.delta.text) {
42
+ block.text += event.delta.text;
43
+ yield { type: 'text-delta', delta: event.delta.text };
44
+ }
45
+ else if (event.delta?.type === 'input_json_delta')
46
+ block.json += event.delta.partial_json ?? '';
47
+ }
48
+ else if (event.type === 'message_delta')
49
+ outputTokens = event.usage?.output_tokens;
50
+ }
51
+ const content = [...blocks.values()], text = content.filter(block => block.type === 'text').map(block => block.text).join(''), toolCalls = content.filter(block => block.type === 'tool_use').map(block => ({ id: block.id ?? crypto.randomUUID(), name: block.name ?? '', input: parseJson(block.json) }));
52
+ yield { type: 'finish', response: { text, toolCalls: toolCalls.length ? toolCalls : undefined, model, provider: 'anthropic', usage: { inputTokens, outputTokens, cachedInputTokens } } };
53
+ }
54
+ };
55
+ }
56
+ function toMessages(messages) { return messages.filter(message => message.role !== 'system').map(message => { if (message.role === 'tool')
57
+ return { role: 'user', content: [{ type: 'tool_result', tool_use_id: message.toolCallId, content: message.content }] }; if (message.toolCalls?.length)
58
+ return { role: 'assistant', content: [...(message.content ? [{ type: 'text', text: message.content }] : []), ...message.toolCalls.map(call => ({ type: 'tool_use', id: call.id, name: call.name, input: call.input }))] }; return { role: message.role, content: message.content }; }); }
59
+ function fromResponse(data) { const content = data.content ?? [], text = content.filter(block => block.type === 'text').map(block => block.text ?? '').join(''), toolCalls = content.filter(block => block.type === 'tool_use').map(block => ({ id: block.id ?? crypto.randomUUID(), name: block.name ?? '', input: block.input ?? {} })); return { text, toolCalls: toolCalls.length ? toolCalls : undefined, model: data.model, usage: { inputTokens: data.usage?.input_tokens, outputTokens: data.usage?.output_tokens, cachedInputTokens: data.usage?.cache_read_input_tokens } }; }
60
+ function providerError(status, error, fallback) { return new ModelProviderError(error?.message ?? fallback ?? `Anthropic request failed: ${status}`, { provider: 'anthropic', status, code: error?.type ?? `anthropic_http_${status}`, retryable: retryable(status) }); }
61
+ function retryable(status) { return status === 408 || status === 429 || status >= 500; }
62
+ function parseJson(value) { try {
63
+ return JSON.parse(value || '{}');
64
+ }
65
+ catch {
66
+ throw new ModelProviderError('Anthropic returned invalid tool arguments', { provider: 'anthropic', code: 'anthropic_invalid_tool_arguments', retryable: false });
67
+ } }
68
+ function env(name) { return globalThis.process?.env?.[name]; }
69
+ async function wait(response, attempt, signal) { const value = Number(response.headers.get('retry-after')); await delay(Number.isFinite(value) ? value * 1000 : 250 * 2 ** attempt, signal); }
70
+ function delay(ms, signal) { return new Promise((resolve, reject) => { const done = () => { signal?.removeEventListener('abort', abort); resolve(); }, timer = setTimeout(done, ms), abort = () => { clearTimeout(timer); reject(signal?.reason ?? new DOMException('Aborted', 'AbortError')); }; if (signal?.aborted)
71
+ abort();
72
+ else
73
+ signal?.addEventListener('abort', abort, { once: true }); }); }
74
+ async function* sse(body) { const reader = body.pipeThrough(new TextDecoderStream()).getReader(); let buffer = ''; for (;;) {
75
+ const { done, value } = await reader.read();
76
+ buffer += value ?? '';
77
+ const frames = buffer.split('\n\n');
78
+ buffer = frames.pop() ?? '';
79
+ for (const frame of frames) {
80
+ const raw = frame.split('\n').filter(line => line.startsWith('data:')).map(line => line.slice(5).trim()).join('');
81
+ if (raw)
82
+ yield JSON.parse(raw);
83
+ }
84
+ if (done)
85
+ break;
86
+ } }
87
+ async function safeJson(response) { try {
88
+ return await response.clone().json();
89
+ }
90
+ catch {
91
+ return undefined;
92
+ } }
93
+ async function safeText(response) { try {
94
+ return await response.text();
95
+ }
96
+ catch {
97
+ return undefined;
98
+ } }
99
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,16 @@
1
1
  {
2
2
  "name": "@captra-ai/anthropic",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "Anthropic Messages API model adapter for Captra.",
5
+ "license": "MIT",
6
+ "repository": { "type": "git", "url": "git+https://github.com/VaibhavBansal26/captra.git", "directory": "packages/anthropic" },
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": { ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" } },
11
+ "files": ["dist"],
12
+ "publishConfig": { "access": "public" },
13
+ "peerDependencies": { "@captra-ai/core": ">=0.21.0 <1" },
14
+ "devDependencies": { "vitest": "^4.1.12" },
15
+ "scripts": { "build": "tsc -p tsconfig.json", "test": "vitest run" }
16
+ }