@simulacra-ai/anthropic 0.0.3 → 0.0.4

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.
@@ -1,415 +0,0 @@
1
- /**
2
- * Model provider implementation for Anthropic's Claude models.
3
- *
4
- * This provider wraps the Anthropic SDK to provide streaming completions with support
5
- * for tool use, extended thinking, and prompt caching. It handles message formatting,
6
- * content streaming, and usage tracking according to the ModelProvider interface.
7
- */
8
- export class AnthropicProvider {
9
- #sdk;
10
- #config;
11
- context_transformers;
12
- /**
13
- * Creates a new Anthropic provider instance.
14
- *
15
- * @param sdk - The initialized Anthropic SDK client.
16
- * @param config - Configuration options for the provider.
17
- * @param context_transformers - Provider-level context transformers.
18
- */
19
- constructor(sdk, config, context_transformers = []) {
20
- this.#sdk = sdk;
21
- this.#config = config;
22
- this.context_transformers = context_transformers;
23
- }
24
- /**
25
- * Executes a model request and streams the response through the provided receiver.
26
- *
27
- * @param request - The request containing messages, tools, and system prompt.
28
- * @param receiver - The receiver that handles streaming events.
29
- * @param cancellation - Token to signal cancellation of the request.
30
- * @returns A promise that resolves when the request completes.
31
- */
32
- async execute_request(request, receiver, cancellation) {
33
- const { model, max_tokens, thinking, prompt_caching, ...api_extras } = this.#config;
34
- const cache_system = prompt_caching?.system_prompt !== false;
35
- const cache_tools = prompt_caching?.toolkit !== false;
36
- const tools = request.tools.map((t) => to_anthropic_tool(t));
37
- if (cache_tools && tools.length > 0) {
38
- const last = tools.length - 1;
39
- tools[last].cache_control = { type: "ephemeral" };
40
- }
41
- const system = cache_system && request.system
42
- ? [{ type: "text", text: request.system, cache_control: { type: "ephemeral" } }]
43
- : request.system;
44
- const params = {
45
- ...api_extras,
46
- model,
47
- stream: true,
48
- system,
49
- max_tokens: max_tokens ?? 8_192,
50
- thinking: thinking?.enable && thinking?.budget_tokens
51
- ? {
52
- type: "enabled",
53
- budget_tokens: thinking.budget_tokens,
54
- }
55
- : {
56
- type: "disabled",
57
- },
58
- tools,
59
- messages: request.messages.map((m) => to_anthropic_message(m)),
60
- };
61
- receiver.before_request({ params });
62
- receiver.request_raw(params);
63
- const response = await this.#sdk.messages.create(params);
64
- // Intentionally not awaited. Streaming is event-driven through the receiver.
65
- // The policy wraps only connection establishment; chunk processing flows
66
- // asynchronously via StreamListener events back to the conversation.
67
- this.#stream_response(response, receiver, cancellation);
68
- }
69
- /**
70
- * Creates a clone of this provider with the same configuration.
71
- *
72
- * @returns A new provider instance with identical configuration.
73
- */
74
- clone() {
75
- return new AnthropicProvider(this.#sdk, this.#config, this.context_transformers);
76
- }
77
- async #stream_response(stream, receiver, cancellation) {
78
- try {
79
- let usage = {};
80
- let message = {
81
- content: [],
82
- };
83
- const json = [];
84
- for await (const chunk of stream) {
85
- if (cancellation.is_cancellation_requested) {
86
- receiver.cancel();
87
- return;
88
- }
89
- receiver.stream_raw(chunk);
90
- switch (chunk.type) {
91
- case "message_start": {
92
- usage = Object.fromEntries(Object.entries(chunk.message.usage).filter(([, v]) => typeof v === "number"));
93
- message = chunk.message;
94
- receiver.start_message({
95
- usage,
96
- message: from_anthropic_message(message),
97
- });
98
- break;
99
- }
100
- case "message_delta": {
101
- usage = {
102
- ...usage,
103
- ...Object.fromEntries(Object.entries(chunk.usage).filter(([, v]) => typeof v === "number")),
104
- };
105
- message = { ...message, ...chunk.delta };
106
- receiver.update_message({
107
- usage,
108
- message: from_anthropic_message(message),
109
- });
110
- break;
111
- }
112
- case "message_stop": {
113
- const raw_stop = message.stop_reason ?? "end_turn";
114
- const stop_reason = (["tool_use", "stop_sequence", "end_turn", "max_tokens", "error"].includes(raw_stop)
115
- ? raw_stop
116
- : "other");
117
- receiver.complete_message({
118
- usage,
119
- stop_reason,
120
- message: from_anthropic_message(message),
121
- });
122
- break;
123
- }
124
- case "content_block_start": {
125
- message.content[chunk.index] = chunk.content_block;
126
- receiver.start_content({
127
- usage,
128
- message: from_anthropic_message(message),
129
- content: from_anthropic_content(chunk.content_block),
130
- });
131
- receiver.update_message({
132
- usage,
133
- message: from_anthropic_message(message),
134
- });
135
- break;
136
- }
137
- case "content_block_delta": {
138
- switch (chunk.delta.type) {
139
- case "text_delta": {
140
- const content = message.content[chunk.index];
141
- content.text += chunk.delta.text;
142
- break;
143
- }
144
- case "citations_delta": {
145
- const content = message.content[chunk.index];
146
- content.citations = [...(content.citations ?? []), chunk.delta.citation];
147
- break;
148
- }
149
- case "thinking_delta": {
150
- const content = message.content[chunk.index];
151
- content.thinking += chunk.delta.thinking;
152
- break;
153
- }
154
- case "input_json_delta": {
155
- if (!json[chunk.index]) {
156
- json[chunk.index] = "";
157
- }
158
- json[chunk.index] += chunk.delta.partial_json;
159
- break;
160
- }
161
- case "signature_delta": {
162
- const content = message.content[chunk.index];
163
- content.signature = (content.signature ?? "") + chunk.delta.signature;
164
- break;
165
- }
166
- }
167
- receiver.update_content({
168
- usage,
169
- message: from_anthropic_message(message),
170
- content: from_anthropic_content(message.content[chunk.index]),
171
- });
172
- break;
173
- }
174
- case "content_block_stop": {
175
- const content_block = message.content[chunk.index];
176
- if (content_block.type === "tool_use" && json[chunk.index]) {
177
- content_block.input = {
178
- ...(content_block.input ?? {}),
179
- ...JSON.parse(json[chunk.index]),
180
- };
181
- }
182
- receiver.complete_content({
183
- usage,
184
- message: from_anthropic_message(message),
185
- content: from_anthropic_content(content_block),
186
- });
187
- break;
188
- }
189
- }
190
- }
191
- receiver.response_raw(message);
192
- }
193
- catch (error) {
194
- receiver.error(error);
195
- }
196
- }
197
- }
198
- function parameter_to_json_schema(param) {
199
- switch (param.type) {
200
- case "object": {
201
- const properties = {};
202
- const required = [];
203
- for (const [key, child] of Object.entries(param.properties)) {
204
- properties[key] = parameter_to_json_schema(child);
205
- if (child.required) {
206
- required.push(key);
207
- }
208
- }
209
- return {
210
- type: "object",
211
- ...(param.description ? { description: param.description } : {}),
212
- ...(Object.keys(properties).length ? { properties } : {}),
213
- ...(required.length ? { required } : {}),
214
- };
215
- }
216
- case "array":
217
- return {
218
- type: "array",
219
- ...(param.description ? { description: param.description } : {}),
220
- items: parameter_to_json_schema(param.items),
221
- };
222
- case "number":
223
- return {
224
- type: "number",
225
- ...(param.description ? { description: param.description } : {}),
226
- };
227
- case "boolean":
228
- return {
229
- type: "boolean",
230
- ...(param.description ? { description: param.description } : {}),
231
- };
232
- case "string":
233
- return "enum" in param && param.enum
234
- ? {
235
- type: "string",
236
- enum: param.enum,
237
- ...(param.description ? { description: param.description } : {}),
238
- }
239
- : { type: "string", ...(param.description ? { description: param.description } : {}) };
240
- }
241
- }
242
- function to_anthropic_tool(tool) {
243
- const properties = {};
244
- const required = [];
245
- for (const param of tool.parameters) {
246
- const schema = parameter_to_json_schema(param);
247
- if (param.description) {
248
- schema.description = param.description;
249
- }
250
- properties[param.name] = schema;
251
- if (param.required) {
252
- required.push(param.name);
253
- }
254
- }
255
- return {
256
- name: tool.name,
257
- description: tool.description,
258
- input_schema: {
259
- type: "object",
260
- ...(Object.keys(properties).length ? { properties } : {}),
261
- ...(required.length ? { required } : {}),
262
- },
263
- };
264
- }
265
- function from_anthropic_message(message) {
266
- if (typeof message.content === "string") {
267
- return {
268
- role: message.role,
269
- content: [
270
- {
271
- type: "text",
272
- text: message.content,
273
- },
274
- ],
275
- };
276
- }
277
- return {
278
- role: message.role,
279
- content: (message.content ?? []).map((c) => from_anthropic_content(c, Array.isArray(message.content) ? message.content : undefined)),
280
- };
281
- }
282
- function from_anthropic_content(content, allContent) {
283
- switch (content.type) {
284
- case "text": {
285
- const { type: _, text, ...extended } = content;
286
- return {
287
- type: "text",
288
- text,
289
- extended,
290
- };
291
- }
292
- case "tool_use": {
293
- const { type: _, id, name, input, ...extended } = content;
294
- return {
295
- type: "tool",
296
- tool_request_id: id,
297
- tool: name,
298
- params: input,
299
- extended,
300
- };
301
- }
302
- case "tool_result": {
303
- const { type: _, tool_use_id, content: tool_content, ...extended } = content;
304
- let tool_name = "";
305
- if (allContent) {
306
- const matching = allContent.find((c) => c.type === "tool_use" && "id" in c && c.id === tool_use_id);
307
- if (matching) {
308
- tool_name = matching.name ?? "";
309
- }
310
- }
311
- return {
312
- type: "tool_result",
313
- tool_request_id: tool_use_id,
314
- tool: tool_name,
315
- result: typeof tool_content === "string"
316
- ? (() => {
317
- try {
318
- return JSON.parse(tool_content);
319
- }
320
- catch {
321
- return { text: tool_content };
322
- }
323
- })()
324
- : tool_content,
325
- extended,
326
- };
327
- }
328
- case "thinking": {
329
- const { type: _, thinking, ...extended } = content;
330
- return {
331
- type: "thinking",
332
- thought: thinking,
333
- extended,
334
- };
335
- }
336
- case "redacted_thinking": {
337
- const { type: _, ...extended } = content;
338
- return {
339
- type: "thinking",
340
- thought: extended.data,
341
- extended,
342
- };
343
- }
344
- default:
345
- return {
346
- type: "raw",
347
- model_kind: "anthropic",
348
- data: JSON.stringify(content),
349
- };
350
- }
351
- }
352
- function to_anthropic_message(message) {
353
- return {
354
- role: message.role,
355
- content: message.content.length === 1 && message.content[0].type === "text"
356
- ? message.content[0].text
357
- : message.content.map((c) => to_anthropic_content(c)),
358
- };
359
- }
360
- function to_anthropic_content(content) {
361
- switch (content.type) {
362
- case "text":
363
- return {
364
- type: "text",
365
- text: content.text,
366
- citations: Array.isArray(content.extended?.citations) ? content.extended.citations : [],
367
- };
368
- case "tool":
369
- return {
370
- type: "tool_use",
371
- id: content.tool_request_id,
372
- name: content.tool,
373
- input: content.params,
374
- };
375
- case "raw":
376
- if (content.model_kind !== "anthropic") {
377
- return {
378
- type: "text",
379
- text: content.data,
380
- };
381
- }
382
- try {
383
- return {
384
- ...JSON.parse(content.data),
385
- };
386
- }
387
- catch {
388
- return {
389
- data: content.data,
390
- };
391
- }
392
- case "tool_result":
393
- return {
394
- type: "tool_result",
395
- tool_use_id: content.tool_request_id,
396
- is_error: content.result.result === false ? true : undefined,
397
- content: JSON.stringify(content.result),
398
- };
399
- case "thinking":
400
- if (!content.extended?.signature) {
401
- return {
402
- type: "text",
403
- text: content.thought,
404
- };
405
- }
406
- return {
407
- type: "thinking",
408
- thinking: content.thought,
409
- signature: content.extended?.signature,
410
- };
411
- default:
412
- throw new Error("unexpected content type");
413
- }
414
- }
415
- //# sourceMappingURL=anthropic-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../src/anthropic-provider.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}