@propio-ai/providers 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/LICENSE +21 -0
- package/README.md +85 -0
- package/dist/config.d.ts +91 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/configFile.d.ts +22 -0
- package/dist/configFile.d.ts.map +1 -0
- package/dist/configFile.js +33 -0
- package/dist/configFile.js.map +1 -0
- package/dist/configValidation.d.ts +34 -0
- package/dist/configValidation.d.ts.map +1 -0
- package/dist/configValidation.js +185 -0
- package/dist/configValidation.js.map +1 -0
- package/dist/diagnostics.d.ts +29 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +9 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/factory.d.ts +56 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +162 -0
- package/dist/factory.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/interface.d.ts +36 -0
- package/dist/interface.d.ts.map +1 -0
- package/dist/interface.js +2 -0
- package/dist/interface.js.map +1 -0
- package/dist/internal/baseProvider.d.ts +20 -0
- package/dist/internal/baseProvider.d.ts.map +1 -0
- package/dist/internal/baseProvider.js +13 -0
- package/dist/internal/baseProvider.js.map +1 -0
- package/dist/internal/capabilities.d.ts +4 -0
- package/dist/internal/capabilities.d.ts.map +1 -0
- package/dist/internal/capabilities.js +12 -0
- package/dist/internal/capabilities.js.map +1 -0
- package/dist/internal/jsonFile.d.ts +11 -0
- package/dist/internal/jsonFile.d.ts.map +1 -0
- package/dist/internal/jsonFile.js +78 -0
- package/dist/internal/jsonFile.js.map +1 -0
- package/dist/internal/openAiCompatibleProvider.d.ts +44 -0
- package/dist/internal/openAiCompatibleProvider.d.ts.map +1 -0
- package/dist/internal/openAiCompatibleProvider.js +93 -0
- package/dist/internal/openAiCompatibleProvider.js.map +1 -0
- package/dist/internal/openAiStream.d.ts +13 -0
- package/dist/internal/openAiStream.d.ts.map +1 -0
- package/dist/internal/openAiStream.js +85 -0
- package/dist/internal/openAiStream.js.map +1 -0
- package/dist/internal/shared.d.ts +79 -0
- package/dist/internal/shared.d.ts.map +1 -0
- package/dist/internal/shared.js +250 -0
- package/dist/internal/shared.js.map +1 -0
- package/dist/internal/withRetry.d.ts +25 -0
- package/dist/internal/withRetry.d.ts.map +1 -0
- package/dist/internal/withRetry.js +46 -0
- package/dist/internal/withRetry.js.map +1 -0
- package/dist/providers/anthropic.d.ts +32 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +435 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/bedrock.d.ts +67 -0
- package/dist/providers/bedrock.d.ts.map +1 -0
- package/dist/providers/bedrock.js +442 -0
- package/dist/providers/bedrock.js.map +1 -0
- package/dist/providers/cloudflare.d.ts +40 -0
- package/dist/providers/cloudflare.d.ts.map +1 -0
- package/dist/providers/cloudflare.js +115 -0
- package/dist/providers/cloudflare.js.map +1 -0
- package/dist/providers/gemini.d.ts +57 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +359 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/ollama.d.ts +67 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +241 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openrouter.d.ts +76 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +571 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/xai.d.ts +45 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +371 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/types.d.ts +166 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +60 -0
- package/dist/types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { withRetry } from "./withRetry.js";
|
|
2
|
+
import { accumulateOpenAIStreamToolCall, buildOpenAIStreamToolCalls, parseJsonMaybe, parseOpenAIStreamToolCallArguments, readSseDataLines, } from "./shared.js";
|
|
3
|
+
function mapStandardOpenAiFinishReason(finishReason) {
|
|
4
|
+
const finishReasonMap = {
|
|
5
|
+
length: "max_tokens",
|
|
6
|
+
stop: "end_turn",
|
|
7
|
+
tool_calls: "tool_use",
|
|
8
|
+
};
|
|
9
|
+
return finishReasonMap[finishReason] ?? "end_turn";
|
|
10
|
+
}
|
|
11
|
+
function parseOpenAiChatCompletionsStreamChoice(data) {
|
|
12
|
+
return parseJsonMaybe(data)
|
|
13
|
+
?.choices?.[0];
|
|
14
|
+
}
|
|
15
|
+
function buildToolCallsEventFromFinishReason(finishReason, toolCallsByIndex) {
|
|
16
|
+
if (finishReason !== "tool_calls") {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const toolCalls = buildOpenAIStreamToolCalls(toolCallsByIndex, (acc) => ({
|
|
20
|
+
id: acc.id,
|
|
21
|
+
function: {
|
|
22
|
+
name: acc.name || "",
|
|
23
|
+
arguments: parseOpenAIStreamToolCallArguments(acc.argsString),
|
|
24
|
+
},
|
|
25
|
+
}));
|
|
26
|
+
return toolCalls.length > 0 ? { type: "tool_calls", toolCalls } : null;
|
|
27
|
+
}
|
|
28
|
+
function accumulateOpenAiChatCompletionsToolCalls(toolCalls, toolCallsByIndex) {
|
|
29
|
+
if (!toolCalls || !Array.isArray(toolCalls)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
for (const toolCall of toolCalls) {
|
|
33
|
+
accumulateOpenAIStreamToolCall(toolCall, toolCallsByIndex, () => ({
|
|
34
|
+
name: "",
|
|
35
|
+
argsString: "",
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function parseOpenAiChatCompletionsStreamLine(data, toolCallsByIndex) {
|
|
40
|
+
if (data === "[DONE]") {
|
|
41
|
+
return { events: [] };
|
|
42
|
+
}
|
|
43
|
+
const choice = parseOpenAiChatCompletionsStreamChoice(data);
|
|
44
|
+
if (!choice?.delta) {
|
|
45
|
+
return { events: [] };
|
|
46
|
+
}
|
|
47
|
+
const events = [];
|
|
48
|
+
const content = choice.delta.content;
|
|
49
|
+
if (content != null && content !== "") {
|
|
50
|
+
events.push({ type: "assistant_text", delta: content });
|
|
51
|
+
}
|
|
52
|
+
accumulateOpenAiChatCompletionsToolCalls(choice.delta.tool_calls, toolCallsByIndex);
|
|
53
|
+
const toolCallsEvent = buildToolCallsEventFromFinishReason(choice.finish_reason, toolCallsByIndex);
|
|
54
|
+
if (toolCallsEvent) {
|
|
55
|
+
events.push(toolCallsEvent);
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
events,
|
|
59
|
+
stopReason: choice.finish_reason
|
|
60
|
+
? mapStandardOpenAiFinishReason(choice.finish_reason)
|
|
61
|
+
: undefined,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export async function* consumeOpenAiChatCompletionsStream(reader, toolCallsByIndex) {
|
|
65
|
+
let stopReason = "end_turn";
|
|
66
|
+
for await (const data of readSseDataLines(reader)) {
|
|
67
|
+
const result = parseOpenAiChatCompletionsStreamLine(data, toolCallsByIndex);
|
|
68
|
+
if (result.stopReason) {
|
|
69
|
+
stopReason = result.stopReason;
|
|
70
|
+
}
|
|
71
|
+
for (const event of result.events) {
|
|
72
|
+
yield event;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
yield { type: "terminal", stopReason };
|
|
76
|
+
}
|
|
77
|
+
export async function fetchOpenAiCompatibleStreamReader(options) {
|
|
78
|
+
const response = await withRetry(() => options.fetchStream(options.body, options.signal), options.retryOptions);
|
|
79
|
+
const reader = response.body?.getReader();
|
|
80
|
+
if (!reader) {
|
|
81
|
+
throw options.translateError(new Error("No response body"));
|
|
82
|
+
}
|
|
83
|
+
return reader;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=openAiStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openAiStream.js","sourceRoot":"","sources":["../../src/internal/openAiStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { ProviderDiagnosticListener } from "../diagnostics.js";
|
|
2
|
+
import type { ChatMessage, ChatRequest, ChatTool, ChatToolCall, ToolResult } from "../types.js";
|
|
3
|
+
import type { WithRetryOptions } from "./withRetry.js";
|
|
4
|
+
export interface OpenAIToolDefinition {
|
|
5
|
+
readonly type: "function";
|
|
6
|
+
readonly function: {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly description: string;
|
|
9
|
+
readonly parameters: object;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface OpenAIMessageCore {
|
|
13
|
+
readonly role: "user" | "assistant" | "system" | "tool";
|
|
14
|
+
content: unknown;
|
|
15
|
+
reasoning_content?: string;
|
|
16
|
+
tool_calls?: ReturnType<typeof createOpenAIToolCall>[];
|
|
17
|
+
tool_call_id?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface OpenAIMessageContentPart {
|
|
20
|
+
type: "text" | "image_url";
|
|
21
|
+
text?: string;
|
|
22
|
+
image_url?: {
|
|
23
|
+
url: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface OpenAIStreamToolCallAccumulator {
|
|
27
|
+
id?: string;
|
|
28
|
+
name: string;
|
|
29
|
+
argsString: string;
|
|
30
|
+
}
|
|
31
|
+
export declare function expandToolResultMessages(messages: ChatMessage[], toolCallIdForResult?: (toolResult: ToolResult) => string): ChatMessage[];
|
|
32
|
+
export declare function buildOpenAIChatCompletionRequestBody<TMessage, TTool>(options: {
|
|
33
|
+
request: ChatRequest;
|
|
34
|
+
model: string;
|
|
35
|
+
mapMessage: (message: ChatMessage) => TMessage;
|
|
36
|
+
mapTool?: (tool: ChatTool) => TTool;
|
|
37
|
+
includeTools?: boolean;
|
|
38
|
+
extra?: (body: Record<string, unknown>) => void;
|
|
39
|
+
}): Record<string, unknown>;
|
|
40
|
+
export declare function createProviderRetryOptions(options: {
|
|
41
|
+
request: ChatRequest;
|
|
42
|
+
model: string;
|
|
43
|
+
provider: string;
|
|
44
|
+
retryConfig?: {
|
|
45
|
+
maxRetries: number;
|
|
46
|
+
consecutive529Limit: number;
|
|
47
|
+
baseDelayMs?: number;
|
|
48
|
+
};
|
|
49
|
+
isRetryable: (err: unknown) => boolean;
|
|
50
|
+
onDiagnosticEvent?: ProviderDiagnosticListener;
|
|
51
|
+
}): WithRetryOptions;
|
|
52
|
+
export declare function accumulateOpenAIStreamToolCall<T extends OpenAIStreamToolCallAccumulator>(toolCall: {
|
|
53
|
+
index?: number;
|
|
54
|
+
id?: string;
|
|
55
|
+
function?: {
|
|
56
|
+
name?: string;
|
|
57
|
+
arguments?: string;
|
|
58
|
+
};
|
|
59
|
+
}, toolCallsByIndex: Map<number, T>, createAccumulator: () => T): void;
|
|
60
|
+
export declare function parseOpenAIStreamToolCallArguments(argsString: string): Record<string, unknown>;
|
|
61
|
+
export declare function buildOpenAIStreamToolCalls<T extends OpenAIStreamToolCallAccumulator, U>(toolCallsByIndex: Map<number, T>, mapToolCall: (toolCall: T) => U): U[];
|
|
62
|
+
export declare function readSseDataLines(reader: ReadableStreamDefaultReader<Uint8Array>): AsyncIterable<string>;
|
|
63
|
+
export declare function parseJsonMaybe<T>(value: string): T | null;
|
|
64
|
+
export declare function createOpenAIToolCall(toolCall: ChatToolCall, extra?: Record<string, unknown>): {
|
|
65
|
+
readonly id: string;
|
|
66
|
+
readonly type: "function";
|
|
67
|
+
readonly function: {
|
|
68
|
+
readonly name: string;
|
|
69
|
+
readonly arguments: string;
|
|
70
|
+
};
|
|
71
|
+
} & Record<string, unknown>;
|
|
72
|
+
export declare function createOpenAIToolDefinition(tool: ChatTool): OpenAIToolDefinition;
|
|
73
|
+
export declare function applyOpenAIMessageCore<T extends OpenAIMessageCore>(out: T, msg: ChatMessage): T;
|
|
74
|
+
export declare function createOpenAIMessageWithImages<T extends OpenAIMessageCore>(msg: ChatMessage): T;
|
|
75
|
+
export declare function normalizeErrorMessage(message: string): string;
|
|
76
|
+
export declare function isContextLengthError(message: string): boolean;
|
|
77
|
+
export declare function isAbortOrTransportError(message: string): boolean;
|
|
78
|
+
export declare function parseRetryAfterSeconds(retryAfter: string | null | undefined): number | undefined;
|
|
79
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/internal/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { ProviderCapacityError } from "../types.js";
|
|
2
|
+
export function expandToolResultMessages(messages, toolCallIdForResult = (toolResult) => toolResult.toolCallId) {
|
|
3
|
+
const expanded = [];
|
|
4
|
+
for (const msg of messages) {
|
|
5
|
+
if (msg.role === "tool" && msg.toolResults && msg.toolResults.length > 0) {
|
|
6
|
+
for (const toolResult of msg.toolResults) {
|
|
7
|
+
expanded.push({
|
|
8
|
+
role: "tool",
|
|
9
|
+
content: toolResult.content,
|
|
10
|
+
toolCallId: toolCallIdForResult(toolResult),
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
expanded.push(msg);
|
|
16
|
+
}
|
|
17
|
+
return expanded;
|
|
18
|
+
}
|
|
19
|
+
export function buildOpenAIChatCompletionRequestBody(options) {
|
|
20
|
+
const messages = expandToolResultMessages(options.request.messages).map(options.mapMessage);
|
|
21
|
+
const body = {
|
|
22
|
+
model: options.request.model || options.model,
|
|
23
|
+
messages,
|
|
24
|
+
stream: true,
|
|
25
|
+
};
|
|
26
|
+
if (options.includeTools !== false &&
|
|
27
|
+
options.mapTool &&
|
|
28
|
+
options.request.tools &&
|
|
29
|
+
options.request.tools.length > 0) {
|
|
30
|
+
body.tools = options.request.tools.map(options.mapTool);
|
|
31
|
+
}
|
|
32
|
+
options.extra?.(body);
|
|
33
|
+
return body;
|
|
34
|
+
}
|
|
35
|
+
export function createProviderRetryOptions(options) {
|
|
36
|
+
const retryOptions = {
|
|
37
|
+
maxRetries: options.retryConfig?.maxRetries ?? 3,
|
|
38
|
+
isRetryable: options.isRetryable,
|
|
39
|
+
is529: (err) => err instanceof ProviderCapacityError,
|
|
40
|
+
consecutive529Limit: options.retryConfig?.consecutive529Limit ?? 3,
|
|
41
|
+
onRetry: (ctx) => options.onDiagnosticEvent?.({
|
|
42
|
+
type: "provider_retry",
|
|
43
|
+
provider: options.provider,
|
|
44
|
+
model: options.request.model || options.model,
|
|
45
|
+
iteration: options.request.iteration ?? 0,
|
|
46
|
+
reason: ctx.err instanceof Error ? ctx.err.message : String(ctx.err),
|
|
47
|
+
attemptNumber: ctx.attempt + 1,
|
|
48
|
+
delayMs: ctx.delayMs,
|
|
49
|
+
}),
|
|
50
|
+
};
|
|
51
|
+
if (options.retryConfig?.baseDelayMs !== undefined) {
|
|
52
|
+
retryOptions.baseDelayMs = options.retryConfig.baseDelayMs;
|
|
53
|
+
}
|
|
54
|
+
return retryOptions;
|
|
55
|
+
}
|
|
56
|
+
function serializeToolArguments(args) {
|
|
57
|
+
return typeof args === "string" ? args : JSON.stringify(args ?? {});
|
|
58
|
+
}
|
|
59
|
+
export function accumulateOpenAIStreamToolCall(toolCall, toolCallsByIndex, createAccumulator) {
|
|
60
|
+
const idx = toolCall.index ?? 0;
|
|
61
|
+
let acc = toolCallsByIndex.get(idx);
|
|
62
|
+
if (!acc) {
|
|
63
|
+
acc = createAccumulator();
|
|
64
|
+
toolCallsByIndex.set(idx, acc);
|
|
65
|
+
}
|
|
66
|
+
if (toolCall.id)
|
|
67
|
+
acc.id = toolCall.id;
|
|
68
|
+
if (toolCall.function?.name)
|
|
69
|
+
acc.name += toolCall.function.name;
|
|
70
|
+
if (toolCall.function?.arguments != null) {
|
|
71
|
+
acc.argsString += toolCall.function.arguments;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export function parseOpenAIStreamToolCallArguments(argsString) {
|
|
75
|
+
if (!argsString) {
|
|
76
|
+
return {};
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
return JSON.parse(argsString);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return { raw: argsString };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export function buildOpenAIStreamToolCalls(toolCallsByIndex, mapToolCall) {
|
|
86
|
+
const toolCalls = [];
|
|
87
|
+
const indices = [...toolCallsByIndex.keys()].sort((a, b) => a - b);
|
|
88
|
+
for (const index of indices) {
|
|
89
|
+
const acc = toolCallsByIndex.get(index);
|
|
90
|
+
if (!acc) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
toolCalls.push(mapToolCall(acc));
|
|
94
|
+
}
|
|
95
|
+
return toolCalls;
|
|
96
|
+
}
|
|
97
|
+
export async function* readSseDataLines(reader) {
|
|
98
|
+
const decoder = new TextDecoder();
|
|
99
|
+
let buffer = "";
|
|
100
|
+
while (true) {
|
|
101
|
+
const { done, value } = await reader.read();
|
|
102
|
+
if (done) {
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
buffer += decoder.decode(value, { stream: true });
|
|
106
|
+
const lines = buffer.split("\n");
|
|
107
|
+
buffer = lines.pop() ?? "";
|
|
108
|
+
for (const line of lines) {
|
|
109
|
+
if (line.startsWith("data: ")) {
|
|
110
|
+
yield line.slice(6).trim();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export function parseJsonMaybe(value) {
|
|
116
|
+
try {
|
|
117
|
+
return JSON.parse(value);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
export function createOpenAIToolCall(toolCall, extra) {
|
|
124
|
+
return {
|
|
125
|
+
id: toolCall.id ?? `call_${toolCall.function.name}_${Date.now()}`,
|
|
126
|
+
type: "function",
|
|
127
|
+
function: {
|
|
128
|
+
name: toolCall.function.name,
|
|
129
|
+
arguments: serializeToolArguments(toolCall.function.arguments),
|
|
130
|
+
},
|
|
131
|
+
...(extra ?? {}),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
export function createOpenAIToolDefinition(tool) {
|
|
135
|
+
return {
|
|
136
|
+
type: "function",
|
|
137
|
+
function: {
|
|
138
|
+
name: tool.function.name,
|
|
139
|
+
description: tool.function.description,
|
|
140
|
+
parameters: (tool.function.parameters ?? {
|
|
141
|
+
type: "object",
|
|
142
|
+
properties: {},
|
|
143
|
+
}),
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
export function applyOpenAIMessageCore(out, msg) {
|
|
148
|
+
if (msg.reasoningContent !== undefined) {
|
|
149
|
+
out.reasoning_content = msg.reasoningContent;
|
|
150
|
+
}
|
|
151
|
+
if (msg.toolCalls && msg.toolCalls.length > 0) {
|
|
152
|
+
out.tool_calls = msg.toolCalls.map((toolCall) => createOpenAIToolCall(toolCall));
|
|
153
|
+
}
|
|
154
|
+
if (msg.role === "tool" && msg.toolCallId) {
|
|
155
|
+
out.tool_call_id = msg.toolCallId;
|
|
156
|
+
}
|
|
157
|
+
return out;
|
|
158
|
+
}
|
|
159
|
+
export function createOpenAIMessageWithImages(msg) {
|
|
160
|
+
const role = msg.role;
|
|
161
|
+
const out = {
|
|
162
|
+
role,
|
|
163
|
+
content: msg.content ?? "",
|
|
164
|
+
};
|
|
165
|
+
if (msg.role === "user" && msg.images && msg.images.length > 0) {
|
|
166
|
+
out.content = buildOpenAIImageContentParts(msg.content, msg.images);
|
|
167
|
+
}
|
|
168
|
+
return out;
|
|
169
|
+
}
|
|
170
|
+
function imageToOpenAIUrl(image) {
|
|
171
|
+
if (typeof image === "string") {
|
|
172
|
+
if (image.startsWith("data:")) {
|
|
173
|
+
return image;
|
|
174
|
+
}
|
|
175
|
+
if (/^https?:\/\//i.test(image)) {
|
|
176
|
+
return image;
|
|
177
|
+
}
|
|
178
|
+
return `data:image/png;base64,${image}`;
|
|
179
|
+
}
|
|
180
|
+
return `data:image/png;base64,${Buffer.from(image).toString("base64")}`;
|
|
181
|
+
}
|
|
182
|
+
function buildOpenAIImageContentParts(content, images) {
|
|
183
|
+
const parts = [];
|
|
184
|
+
if (content) {
|
|
185
|
+
parts.push({ type: "text", text: content });
|
|
186
|
+
}
|
|
187
|
+
for (const image of images) {
|
|
188
|
+
parts.push({
|
|
189
|
+
type: "image_url",
|
|
190
|
+
image_url: {
|
|
191
|
+
url: imageToOpenAIUrl(image),
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return parts;
|
|
196
|
+
}
|
|
197
|
+
export function normalizeErrorMessage(message) {
|
|
198
|
+
const trimmed = message.trim();
|
|
199
|
+
if (!trimmed) {
|
|
200
|
+
return "";
|
|
201
|
+
}
|
|
202
|
+
try {
|
|
203
|
+
const parsed = JSON.parse(trimmed);
|
|
204
|
+
if (typeof parsed.error?.message === "string") {
|
|
205
|
+
return parsed.error.message;
|
|
206
|
+
}
|
|
207
|
+
if (Array.isArray(parsed.errors) && parsed.errors.length > 0) {
|
|
208
|
+
const errorMessages = parsed.errors
|
|
209
|
+
.map((entry) => entry.message)
|
|
210
|
+
.filter((entry) => typeof entry === "string");
|
|
211
|
+
if (errorMessages.length > 0) {
|
|
212
|
+
return errorMessages.join("; ");
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (typeof parsed.message === "string") {
|
|
216
|
+
return parsed.message;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
// Fall through to the raw response body when it is not JSON.
|
|
221
|
+
}
|
|
222
|
+
return trimmed.replace(/\s+/g, " ");
|
|
223
|
+
}
|
|
224
|
+
export function isContextLengthError(message) {
|
|
225
|
+
const lower = message.toLowerCase();
|
|
226
|
+
return (lower.includes("context length") ||
|
|
227
|
+
lower.includes("context window") ||
|
|
228
|
+
lower.includes("maximum context") ||
|
|
229
|
+
lower.includes("token limit") ||
|
|
230
|
+
lower.includes("too many tokens") ||
|
|
231
|
+
lower.includes("input is too long") ||
|
|
232
|
+
lower.includes("prompt is too long") ||
|
|
233
|
+
lower.includes("exceeds the model") ||
|
|
234
|
+
lower.includes("reduce your prompt"));
|
|
235
|
+
}
|
|
236
|
+
export function isAbortOrTransportError(message) {
|
|
237
|
+
return (message.includes("AbortError") ||
|
|
238
|
+
message.includes("aborted") ||
|
|
239
|
+
message.includes("ECONNREFUSED") ||
|
|
240
|
+
message.includes("ETIMEDOUT") ||
|
|
241
|
+
message.includes("fetch failed"));
|
|
242
|
+
}
|
|
243
|
+
export function parseRetryAfterSeconds(retryAfter) {
|
|
244
|
+
if (!retryAfter) {
|
|
245
|
+
return undefined;
|
|
246
|
+
}
|
|
247
|
+
const parsed = Number.parseInt(retryAfter, 10);
|
|
248
|
+
return Number.isNaN(parsed) ? undefined : parsed;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/internal/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic retry helper with exponential backoff, full jitter, and stream-position awareness.
|
|
3
|
+
*
|
|
4
|
+
* This helper wraps pre-stream operations (HTTP connection establishment) and retries
|
|
5
|
+
* transient failures. Once streaming starts, failures bubble — no auto-retry.
|
|
6
|
+
*/
|
|
7
|
+
export interface RetryContext {
|
|
8
|
+
attempt: number;
|
|
9
|
+
maxRetries: number;
|
|
10
|
+
delayMs: number;
|
|
11
|
+
err: unknown;
|
|
12
|
+
}
|
|
13
|
+
export interface WithRetryOptions {
|
|
14
|
+
maxRetries: number;
|
|
15
|
+
baseDelayMs?: number;
|
|
16
|
+
maxDelayMs?: number;
|
|
17
|
+
isRetryable: (err: unknown) => boolean;
|
|
18
|
+
is529?: (err: unknown) => boolean;
|
|
19
|
+
consecutive529Limit?: number;
|
|
20
|
+
on529Fallback?: () => void;
|
|
21
|
+
onFinalRetry?: () => void;
|
|
22
|
+
onRetry?: (ctx: RetryContext) => void;
|
|
23
|
+
}
|
|
24
|
+
export declare function withRetry<T>(fn: () => Promise<T>, opts: WithRetryOptions): Promise<T>;
|
|
25
|
+
//# sourceMappingURL=withRetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withRetry.d.ts","sourceRoot":"","sources":["../../src/internal/withRetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;IACvC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACvC;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,CAAC,CAAC,CAwDZ"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic retry helper with exponential backoff, full jitter, and stream-position awareness.
|
|
3
|
+
*
|
|
4
|
+
* This helper wraps pre-stream operations (HTTP connection establishment) and retries
|
|
5
|
+
* transient failures. Once streaming starts, failures bubble — no auto-retry.
|
|
6
|
+
*/
|
|
7
|
+
export async function withRetry(fn, opts) {
|
|
8
|
+
const { maxRetries, baseDelayMs = 500, maxDelayMs = 32000, isRetryable, is529, consecutive529Limit = 3, on529Fallback, onFinalRetry, onRetry, } = opts;
|
|
9
|
+
let consecutive529s = 0;
|
|
10
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
11
|
+
try {
|
|
12
|
+
// Call onFinalRetry before the last attempt (it may mutate closure state used by fn)
|
|
13
|
+
if (attempt === maxRetries && onFinalRetry) {
|
|
14
|
+
onFinalRetry();
|
|
15
|
+
}
|
|
16
|
+
return await fn();
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
// Track consecutive 529s (capacity exhaustion errors)
|
|
20
|
+
if (is529?.(err)) {
|
|
21
|
+
consecutive529s++;
|
|
22
|
+
if (consecutive529s >= consecutive529Limit) {
|
|
23
|
+
on529Fallback?.();
|
|
24
|
+
throw err;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
consecutive529s = 0;
|
|
29
|
+
}
|
|
30
|
+
// Don't retry if error is not retryable or we've exhausted budget
|
|
31
|
+
if (!isRetryable(err) || attempt >= maxRetries) {
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
// Compute delay: exponential backoff with full jitter
|
|
35
|
+
const exponent = Math.min(attempt, 10); // Cap at 2^10 to prevent overflow
|
|
36
|
+
const cap = Math.min(baseDelayMs * Math.pow(2, exponent), maxDelayMs);
|
|
37
|
+
const delayMs = Math.floor(Math.random() * cap);
|
|
38
|
+
onRetry?.({ attempt, maxRetries, delayMs, err });
|
|
39
|
+
// Sleep before retrying
|
|
40
|
+
await new Promise((resolve) => setTimeout(resolve, delayMs));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Should never reach here; the loop exhausts all attempts and throws
|
|
44
|
+
throw new Error("withRetry: exhausted all attempts without success or final throw");
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=withRetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withRetry.js","sourceRoot":"","sources":["../../src/internal/withRetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,IAAsB;IAEtB,MAAM,EACJ,UAAU,EACV,WAAW,GAAG,GAAG,EACjB,UAAU,GAAG,KAAM,EACnB,WAAW,EACX,KAAK,EACL,mBAAmB,GAAG,CAAC,EACvB,aAAa,EACb,YAAY,EACZ,OAAO,GACR,GAAG,IAAI,CAAC;IAET,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,qFAAqF;YACrF,IAAI,OAAO,KAAK,UAAU,IAAI,YAAY,EAAE,CAAC;gBAC3C,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sDAAsD;YACtD,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,eAAe,EAAE,CAAC;gBAClB,IAAI,eAAe,IAAI,mBAAmB,EAAE,CAAC;oBAC3C,aAAa,EAAE,EAAE,CAAC;oBAClB,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,CAAC,CAAC;YACtB,CAAC;YAED,kEAAkE;YAClE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBAC/C,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,sDAAsD;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,kCAAkC;YAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;YAEhD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAEjD,wBAAwB;YACxB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BaseProvider, BaseProviderOptions } from "../internal/baseProvider.js";
|
|
2
|
+
import { ChatRequest, ChatStreamEvent } from "../types.js";
|
|
3
|
+
export declare class AnthropicProvider extends BaseProvider {
|
|
4
|
+
readonly name = "anthropic";
|
|
5
|
+
private client;
|
|
6
|
+
constructor(options: BaseProviderOptions & {
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
});
|
|
9
|
+
streamChat(request: ChatRequest): AsyncIterable<ChatStreamEvent>;
|
|
10
|
+
private handleContentBlockStart;
|
|
11
|
+
private handleContentBlockDelta;
|
|
12
|
+
private handleContentBlockStop;
|
|
13
|
+
private parseToolInputArguments;
|
|
14
|
+
private asToolInputObject;
|
|
15
|
+
private mapStopReason;
|
|
16
|
+
private chatMessageToAnthropicMessage;
|
|
17
|
+
private appendThinkingBlocks;
|
|
18
|
+
private appendRedactedThinkingBlock;
|
|
19
|
+
private appendThinkingReplayBlock;
|
|
20
|
+
private appendTextBlock;
|
|
21
|
+
private appendToolUseBlocks;
|
|
22
|
+
private appendImageBlocks;
|
|
23
|
+
private appendToolResultBlocks;
|
|
24
|
+
private resolveImageData;
|
|
25
|
+
private sniffImageMediaType;
|
|
26
|
+
private chatToolToAnthropicTool;
|
|
27
|
+
private static readonly RETRYABLE_STATUSES;
|
|
28
|
+
private createRetryOptions;
|
|
29
|
+
private isRetryableError;
|
|
30
|
+
private translateError;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAEL,WAAW,EACX,eAAe,EAShB,MAAM,aAAa,CAAC;AA0CrB,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,MAAM,CAAY;gBAEd,OAAO,EAAE,mBAAmB,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAYvD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,eAAe,CAAC;IAuHvE,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,uBAAuB;IAsB/B,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,6BAA6B;IAwBrC,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,gBAAgB;IA8CxB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAEvC;IAEH,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,cAAc;CA4DvB"}
|