@agenticc/core 1.0.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 +370 -0
- package/README.zh-CN.md +372 -0
- package/dist/audit/index.d.ts +9 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +9 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/logger.d.ts +211 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/logger.js +268 -0
- package/dist/audit/logger.js.map +1 -0
- package/dist/audit/query.d.ts +164 -0
- package/dist/audit/query.d.ts.map +1 -0
- package/dist/audit/query.js +250 -0
- package/dist/audit/query.js.map +1 -0
- package/dist/conversation/context-builder.d.ts +119 -0
- package/dist/conversation/context-builder.d.ts.map +1 -0
- package/dist/conversation/context-builder.js +252 -0
- package/dist/conversation/context-builder.js.map +1 -0
- package/dist/conversation/index.d.ts +10 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +10 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/message-store.d.ts +231 -0
- package/dist/conversation/message-store.d.ts.map +1 -0
- package/dist/conversation/message-store.js +404 -0
- package/dist/conversation/message-store.js.map +1 -0
- package/dist/conversation/session.d.ts +201 -0
- package/dist/conversation/session.d.ts.map +1 -0
- package/dist/conversation/session.js +285 -0
- package/dist/conversation/session.js.map +1 -0
- package/dist/core/agent.d.ts +277 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +674 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/agentic-loop.d.ts +98 -0
- package/dist/core/agentic-loop.d.ts.map +1 -0
- package/dist/core/agentic-loop.js +496 -0
- package/dist/core/agentic-loop.js.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +14 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/intent-parser.d.ts +101 -0
- package/dist/core/intent-parser.d.ts.map +1 -0
- package/dist/core/intent-parser.js +221 -0
- package/dist/core/intent-parser.js.map +1 -0
- package/dist/core/plan-generator.d.ts +133 -0
- package/dist/core/plan-generator.d.ts.map +1 -0
- package/dist/core/plan-generator.js +294 -0
- package/dist/core/plan-generator.js.map +1 -0
- package/dist/core/plugin-manager.d.ts +120 -0
- package/dist/core/plugin-manager.d.ts.map +1 -0
- package/dist/core/plugin-manager.js +369 -0
- package/dist/core/plugin-manager.js.map +1 -0
- package/dist/core/response-handler.d.ts +141 -0
- package/dist/core/response-handler.d.ts.map +1 -0
- package/dist/core/response-handler.js +384 -0
- package/dist/core/response-handler.js.map +1 -0
- package/dist/core/tool-executor.d.ts +143 -0
- package/dist/core/tool-executor.d.ts.map +1 -0
- package/dist/core/tool-executor.js +354 -0
- package/dist/core/tool-executor.js.map +1 -0
- package/dist/core/tool-registry.d.ts +133 -0
- package/dist/core/tool-registry.d.ts.map +1 -0
- package/dist/core/tool-registry.js +252 -0
- package/dist/core/tool-registry.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/chunker.d.ts +78 -0
- package/dist/knowledge/chunker.d.ts.map +1 -0
- package/dist/knowledge/chunker.js +233 -0
- package/dist/knowledge/chunker.js.map +1 -0
- package/dist/knowledge/embedder.d.ts +93 -0
- package/dist/knowledge/embedder.d.ts.map +1 -0
- package/dist/knowledge/embedder.js +205 -0
- package/dist/knowledge/embedder.js.map +1 -0
- package/dist/knowledge/index.d.ts +10 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +11 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/loaders/index.d.ts +10 -0
- package/dist/knowledge/loaders/index.d.ts.map +1 -0
- package/dist/knowledge/loaders/index.js +10 -0
- package/dist/knowledge/loaders/index.js.map +1 -0
- package/dist/knowledge/loaders/markdown.d.ts +88 -0
- package/dist/knowledge/loaders/markdown.d.ts.map +1 -0
- package/dist/knowledge/loaders/markdown.js +205 -0
- package/dist/knowledge/loaders/markdown.js.map +1 -0
- package/dist/knowledge/loaders/yaml.d.ts +112 -0
- package/dist/knowledge/loaders/yaml.d.ts.map +1 -0
- package/dist/knowledge/loaders/yaml.js +368 -0
- package/dist/knowledge/loaders/yaml.js.map +1 -0
- package/dist/knowledge/retriever.d.ts +144 -0
- package/dist/knowledge/retriever.d.ts.map +1 -0
- package/dist/knowledge/retriever.js +399 -0
- package/dist/knowledge/retriever.js.map +1 -0
- package/dist/knowledge/store.d.ts +146 -0
- package/dist/knowledge/store.d.ts.map +1 -0
- package/dist/knowledge/store.js +420 -0
- package/dist/knowledge/store.js.map +1 -0
- package/dist/llm/adapter.d.ts +194 -0
- package/dist/llm/adapter.d.ts.map +1 -0
- package/dist/llm/adapter.js +42 -0
- package/dist/llm/adapter.js.map +1 -0
- package/dist/llm/adapters/anyrouter.d.ts +84 -0
- package/dist/llm/adapters/anyrouter.d.ts.map +1 -0
- package/dist/llm/adapters/anyrouter.js +372 -0
- package/dist/llm/adapters/anyrouter.js.map +1 -0
- package/dist/llm/adapters/claude.d.ts +66 -0
- package/dist/llm/adapters/claude.d.ts.map +1 -0
- package/dist/llm/adapters/claude.js +323 -0
- package/dist/llm/adapters/claude.js.map +1 -0
- package/dist/llm/adapters/index.d.ts +12 -0
- package/dist/llm/adapters/index.d.ts.map +1 -0
- package/dist/llm/adapters/index.js +12 -0
- package/dist/llm/adapters/index.js.map +1 -0
- package/dist/llm/adapters/mimo.d.ts +85 -0
- package/dist/llm/adapters/mimo.d.ts.map +1 -0
- package/dist/llm/adapters/mimo.js +316 -0
- package/dist/llm/adapters/mimo.js.map +1 -0
- package/dist/llm/adapters/openai.d.ts +53 -0
- package/dist/llm/adapters/openai.d.ts.map +1 -0
- package/dist/llm/adapters/openai.js +293 -0
- package/dist/llm/adapters/openai.js.map +1 -0
- package/dist/llm/adapters/qwen.d.ts +53 -0
- package/dist/llm/adapters/qwen.d.ts.map +1 -0
- package/dist/llm/adapters/qwen.js +299 -0
- package/dist/llm/adapters/qwen.js.map +1 -0
- package/dist/llm/adapters/siliconflow.d.ts +69 -0
- package/dist/llm/adapters/siliconflow.d.ts.map +1 -0
- package/dist/llm/adapters/siliconflow.js +331 -0
- package/dist/llm/adapters/siliconflow.js.map +1 -0
- package/dist/llm/index.d.ts +9 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +12 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/manager.d.ts +97 -0
- package/dist/llm/manager.d.ts.map +1 -0
- package/dist/llm/manager.js +337 -0
- package/dist/llm/manager.js.map +1 -0
- package/dist/test-utils/arbitraries.d.ts +230 -0
- package/dist/test-utils/arbitraries.d.ts.map +1 -0
- package/dist/test-utils/arbitraries.js +280 -0
- package/dist/test-utils/arbitraries.js.map +1 -0
- package/dist/test-utils/cleanup.d.ts +184 -0
- package/dist/test-utils/cleanup.d.ts.map +1 -0
- package/dist/test-utils/cleanup.js +282 -0
- package/dist/test-utils/cleanup.js.map +1 -0
- package/dist/test-utils/config.d.ts +80 -0
- package/dist/test-utils/config.d.ts.map +1 -0
- package/dist/test-utils/config.js +94 -0
- package/dist/test-utils/config.js.map +1 -0
- package/dist/test-utils/index.d.ts +10 -0
- package/dist/test-utils/index.d.ts.map +1 -0
- package/dist/test-utils/index.js +36 -0
- package/dist/test-utils/index.js.map +1 -0
- package/dist/test-utils/mocks.d.ts +170 -0
- package/dist/test-utils/mocks.d.ts.map +1 -0
- package/dist/test-utils/mocks.js +281 -0
- package/dist/test-utils/mocks.js.map +1 -0
- package/dist/types/config.d.ts +170 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +120 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/knowledge.d.ts +95 -0
- package/dist/types/knowledge.d.ts.map +1 -0
- package/dist/types/knowledge.js +7 -0
- package/dist/types/knowledge.js.map +1 -0
- package/dist/types/loop.d.ts +148 -0
- package/dist/types/loop.d.ts.map +1 -0
- package/dist/types/loop.js +16 -0
- package/dist/types/loop.js.map +1 -0
- package/dist/types/plugin.d.ts +137 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +15 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/response.d.ts +186 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +99 -0
- package/dist/types/response.js.map +1 -0
- package/dist/types/streaming.d.ts +478 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/streaming.js +483 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/tool.d.ts +118 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +42 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/error.d.ts +22 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +36 -0
- package/dist/utils/error.js.map +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude (Anthropic) LLM Adapter
|
|
3
|
+
*
|
|
4
|
+
* Implements the LLMAdapter interface for Anthropic's Claude API.
|
|
5
|
+
* Supports messages API and tool use.
|
|
6
|
+
*/
|
|
7
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
8
|
+
import { LLMError, promptToMessages } from '../adapter.js';
|
|
9
|
+
/**
|
|
10
|
+
* Claude LLM Adapter implementation
|
|
11
|
+
*/
|
|
12
|
+
export class ClaudeAdapter {
|
|
13
|
+
provider = 'claude';
|
|
14
|
+
model;
|
|
15
|
+
client;
|
|
16
|
+
defaultTemperature;
|
|
17
|
+
defaultMaxTokens;
|
|
18
|
+
constructor(config) {
|
|
19
|
+
this.model = config.model;
|
|
20
|
+
this.defaultTemperature = config.temperature ?? 0.7;
|
|
21
|
+
this.defaultMaxTokens = config.maxTokens ?? 2048;
|
|
22
|
+
this.client = new Anthropic({
|
|
23
|
+
apiKey: config.apiKey,
|
|
24
|
+
baseURL: config.baseUrl,
|
|
25
|
+
timeout: config.timeoutMs ?? 30000,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async generate(prompt, options) {
|
|
29
|
+
const messages = typeof prompt === 'string' ? promptToMessages(prompt, options?.systemPrompt) : prompt;
|
|
30
|
+
const { systemPrompt, userMessages } = this.extractSystemPrompt(messages, options?.systemPrompt);
|
|
31
|
+
try {
|
|
32
|
+
const response = await this.client.messages.create({
|
|
33
|
+
model: this.model,
|
|
34
|
+
max_tokens: options?.maxTokens ?? this.defaultMaxTokens,
|
|
35
|
+
system: systemPrompt,
|
|
36
|
+
messages: this.convertMessages(userMessages),
|
|
37
|
+
temperature: options?.temperature ?? this.defaultTemperature,
|
|
38
|
+
stop_sequences: options?.stopSequences,
|
|
39
|
+
}, { signal: options?.abortSignal });
|
|
40
|
+
return this.extractTextContent(response.content);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
throw this.handleError(error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async generateWithTools(prompt, tools, options) {
|
|
47
|
+
const messages = typeof prompt === 'string' ? promptToMessages(prompt, options?.systemPrompt) : prompt;
|
|
48
|
+
const { systemPrompt, userMessages } = this.extractSystemPrompt(messages, options?.systemPrompt);
|
|
49
|
+
try {
|
|
50
|
+
const response = await this.client.messages.create({
|
|
51
|
+
model: this.model,
|
|
52
|
+
max_tokens: options?.maxTokens ?? this.defaultMaxTokens,
|
|
53
|
+
system: systemPrompt,
|
|
54
|
+
messages: this.convertMessages(userMessages),
|
|
55
|
+
tools: this.convertTools(tools),
|
|
56
|
+
temperature: options?.temperature ?? this.defaultTemperature,
|
|
57
|
+
stop_sequences: options?.stopSequences,
|
|
58
|
+
}, { signal: options?.abortSignal });
|
|
59
|
+
const toolCalls = this.extractToolCalls(response.content);
|
|
60
|
+
const textContent = this.extractTextContent(response.content);
|
|
61
|
+
return {
|
|
62
|
+
content: textContent,
|
|
63
|
+
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
64
|
+
finishReason: this.mapStopReason(response.stop_reason),
|
|
65
|
+
usage: {
|
|
66
|
+
promptTokens: response.usage.input_tokens,
|
|
67
|
+
completionTokens: response.usage.output_tokens,
|
|
68
|
+
totalTokens: response.usage.input_tokens + response.usage.output_tokens,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw this.handleError(error);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async embed(_text) {
|
|
77
|
+
// Claude doesn't have a native embedding API
|
|
78
|
+
// Users should use a different provider for embeddings
|
|
79
|
+
throw new LLMError('Claude does not support embeddings. Use OpenAI or another provider for embeddings.', 'INVALID_REQUEST', this.provider);
|
|
80
|
+
}
|
|
81
|
+
supportsEmbeddings() {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
supportsToolCalling() {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
supportsStreaming() {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
async generateWithToolsStream(prompt, tools, onChunk, options) {
|
|
91
|
+
const messages = typeof prompt === 'string' ? promptToMessages(prompt, options?.systemPrompt) : prompt;
|
|
92
|
+
const { systemPrompt, userMessages } = this.extractSystemPrompt(messages, options?.systemPrompt);
|
|
93
|
+
try {
|
|
94
|
+
const stream = this.client.messages.stream({
|
|
95
|
+
model: this.model,
|
|
96
|
+
max_tokens: options?.maxTokens ?? this.defaultMaxTokens,
|
|
97
|
+
system: systemPrompt,
|
|
98
|
+
messages: this.convertMessages(userMessages),
|
|
99
|
+
tools: this.convertTools(tools),
|
|
100
|
+
temperature: options?.temperature ?? this.defaultTemperature,
|
|
101
|
+
stop_sequences: options?.stopSequences,
|
|
102
|
+
}, { signal: options?.abortSignal });
|
|
103
|
+
// Accumulate the response
|
|
104
|
+
let accumulatedContent = '';
|
|
105
|
+
const toolCallsMap = new Map();
|
|
106
|
+
let finishReason = 'stop';
|
|
107
|
+
let toolCallIndex = 0;
|
|
108
|
+
// Process stream events
|
|
109
|
+
for await (const event of stream) {
|
|
110
|
+
if (event.type === 'content_block_delta') {
|
|
111
|
+
const delta = event.delta;
|
|
112
|
+
// Handle text delta
|
|
113
|
+
if (delta.type === 'text_delta') {
|
|
114
|
+
accumulatedContent += delta.text;
|
|
115
|
+
const streamChunk = {
|
|
116
|
+
type: 'content',
|
|
117
|
+
content: delta.text,
|
|
118
|
+
};
|
|
119
|
+
onChunk(streamChunk);
|
|
120
|
+
}
|
|
121
|
+
// Handle tool use input delta
|
|
122
|
+
if (delta.type === 'input_json_delta') {
|
|
123
|
+
const currentIndex = toolCallIndex - 1;
|
|
124
|
+
const toolCallEntry = toolCallsMap.get(currentIndex);
|
|
125
|
+
if (toolCallEntry) {
|
|
126
|
+
toolCallEntry.arguments += delta.partial_json;
|
|
127
|
+
const streamChunk = {
|
|
128
|
+
type: 'tool_call',
|
|
129
|
+
toolCall: {
|
|
130
|
+
index: currentIndex,
|
|
131
|
+
arguments: delta.partial_json,
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
onChunk(streamChunk);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Handle content block start (for tool use)
|
|
139
|
+
if (event.type === 'content_block_start') {
|
|
140
|
+
const block = event.content_block;
|
|
141
|
+
if (block.type === 'tool_use') {
|
|
142
|
+
const index = toolCallIndex++;
|
|
143
|
+
toolCallsMap.set(index, {
|
|
144
|
+
id: block.id,
|
|
145
|
+
name: block.name,
|
|
146
|
+
arguments: '',
|
|
147
|
+
});
|
|
148
|
+
const streamChunk = {
|
|
149
|
+
type: 'tool_call',
|
|
150
|
+
toolCall: {
|
|
151
|
+
index,
|
|
152
|
+
id: block.id,
|
|
153
|
+
name: block.name,
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
onChunk(streamChunk);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Handle message stop
|
|
160
|
+
if (event.type === 'message_delta') {
|
|
161
|
+
finishReason = this.mapStopReason(event.delta.stop_reason);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Build final tool calls array
|
|
165
|
+
const toolCalls = toolCallsMap.size > 0
|
|
166
|
+
? Array.from(toolCallsMap.entries())
|
|
167
|
+
.sort(([a], [b]) => a - b)
|
|
168
|
+
.map(([, tc]) => ({
|
|
169
|
+
id: tc.id,
|
|
170
|
+
name: tc.name,
|
|
171
|
+
arguments: JSON.parse(tc.arguments || '{}'),
|
|
172
|
+
}))
|
|
173
|
+
: undefined;
|
|
174
|
+
// Build final response
|
|
175
|
+
const response = {
|
|
176
|
+
content: accumulatedContent,
|
|
177
|
+
toolCalls,
|
|
178
|
+
finishReason,
|
|
179
|
+
};
|
|
180
|
+
// Send done chunk
|
|
181
|
+
onChunk({ type: 'done', response });
|
|
182
|
+
return response;
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
throw this.handleError(error);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Extract system prompt from messages
|
|
190
|
+
*/
|
|
191
|
+
extractSystemPrompt(messages, defaultSystem) {
|
|
192
|
+
const systemMessages = messages.filter((m) => m.role === 'system');
|
|
193
|
+
const userMessages = messages.filter((m) => m.role !== 'system');
|
|
194
|
+
const systemPrompt = systemMessages.length > 0
|
|
195
|
+
? systemMessages.map((m) => m.content).join('\n')
|
|
196
|
+
: defaultSystem;
|
|
197
|
+
return { systemPrompt, userMessages };
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Convert internal message format to Claude format
|
|
201
|
+
*/
|
|
202
|
+
convertMessages(messages) {
|
|
203
|
+
return messages.map((msg) => {
|
|
204
|
+
if (msg.role === 'tool') {
|
|
205
|
+
return {
|
|
206
|
+
role: 'user',
|
|
207
|
+
content: [
|
|
208
|
+
{
|
|
209
|
+
type: 'tool_result',
|
|
210
|
+
tool_use_id: msg.toolCallId ?? '',
|
|
211
|
+
content: msg.content,
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
if (msg.role === 'assistant' && msg.toolCalls && msg.toolCalls.length > 0) {
|
|
217
|
+
// Assistant message with tool calls - Claude uses tool_use blocks
|
|
218
|
+
const content = [];
|
|
219
|
+
if (msg.content) {
|
|
220
|
+
content.push({ type: 'text', text: msg.content });
|
|
221
|
+
}
|
|
222
|
+
for (const tc of msg.toolCalls) {
|
|
223
|
+
content.push({
|
|
224
|
+
type: 'tool_use',
|
|
225
|
+
id: tc.id,
|
|
226
|
+
name: tc.name,
|
|
227
|
+
input: tc.arguments,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
return {
|
|
231
|
+
role: 'assistant',
|
|
232
|
+
content,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
return {
|
|
236
|
+
role: msg.role === 'assistant' ? 'assistant' : 'user',
|
|
237
|
+
content: msg.content,
|
|
238
|
+
};
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Convert tool definitions to Claude format
|
|
243
|
+
*/
|
|
244
|
+
convertTools(tools) {
|
|
245
|
+
return tools.map((tool) => ({
|
|
246
|
+
name: tool.function.name,
|
|
247
|
+
description: tool.function.description,
|
|
248
|
+
input_schema: tool.function.parameters,
|
|
249
|
+
}));
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Extract text content from Claude response
|
|
253
|
+
*/
|
|
254
|
+
extractTextContent(content) {
|
|
255
|
+
return content
|
|
256
|
+
.filter((block) => block.type === 'text')
|
|
257
|
+
.map((block) => block.text)
|
|
258
|
+
.join('');
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Extract tool calls from Claude response
|
|
262
|
+
*/
|
|
263
|
+
extractToolCalls(content) {
|
|
264
|
+
return content
|
|
265
|
+
.filter((block) => block.type === 'tool_use')
|
|
266
|
+
.map((block) => ({
|
|
267
|
+
id: block.id,
|
|
268
|
+
name: block.name,
|
|
269
|
+
arguments: block.input,
|
|
270
|
+
}));
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Map Claude stop reason to internal format
|
|
274
|
+
*/
|
|
275
|
+
mapStopReason(reason) {
|
|
276
|
+
switch (reason) {
|
|
277
|
+
case 'end_turn':
|
|
278
|
+
return 'stop';
|
|
279
|
+
case 'tool_use':
|
|
280
|
+
return 'tool_calls';
|
|
281
|
+
case 'max_tokens':
|
|
282
|
+
return 'length';
|
|
283
|
+
default:
|
|
284
|
+
return 'stop';
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Handle Claude API errors
|
|
289
|
+
*/
|
|
290
|
+
handleError(error) {
|
|
291
|
+
// Check for abort error first
|
|
292
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
293
|
+
return new LLMError('Operation cancelled', 'CANCELLED', this.provider, error);
|
|
294
|
+
}
|
|
295
|
+
// Preserve existing LLMError instances
|
|
296
|
+
if (error instanceof LLMError) {
|
|
297
|
+
return error;
|
|
298
|
+
}
|
|
299
|
+
if (error instanceof Anthropic.APIError) {
|
|
300
|
+
const code = this.mapErrorCode(error.status);
|
|
301
|
+
return new LLMError(error.message, code, this.provider, error);
|
|
302
|
+
}
|
|
303
|
+
if (error instanceof Error) {
|
|
304
|
+
return new LLMError(error.message, 'UNKNOWN_ERROR', this.provider, error);
|
|
305
|
+
}
|
|
306
|
+
return new LLMError('Unknown error occurred', 'UNKNOWN_ERROR', this.provider);
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Map Claude error codes to internal error codes
|
|
310
|
+
*/
|
|
311
|
+
mapErrorCode(status) {
|
|
312
|
+
if (status === 401)
|
|
313
|
+
return 'AUTHENTICATION_ERROR';
|
|
314
|
+
if (status === 429)
|
|
315
|
+
return 'RATE_LIMIT_ERROR';
|
|
316
|
+
if (status === 400)
|
|
317
|
+
return 'INVALID_REQUEST';
|
|
318
|
+
if (status === 404)
|
|
319
|
+
return 'MODEL_NOT_FOUND';
|
|
320
|
+
return 'UNKNOWN_ERROR';
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/llm/adapters/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Adapters Index
|
|
3
|
+
*
|
|
4
|
+
* Exports all available LLM adapters.
|
|
5
|
+
*/
|
|
6
|
+
export { OpenAIAdapter, type OpenAIAdapterConfig } from './openai.js';
|
|
7
|
+
export { ClaudeAdapter, type ClaudeAdapterConfig } from './claude.js';
|
|
8
|
+
export { QwenAdapter, type QwenAdapterConfig } from './qwen.js';
|
|
9
|
+
export { SiliconFlowAdapter, type SiliconFlowAdapterConfig, SILICONFLOW_MODELS, } from './siliconflow.js';
|
|
10
|
+
export { MiMoAdapter, type MiMoAdapterConfig, type MiMoGenerateOptions, type MiMoLLMResponse, type ThinkingMode, MIMO_MODELS, } from './mimo.js';
|
|
11
|
+
export { AnyRouterAdapter, type AnyRouterAdapterConfig, ANYROUTER_ENDPOINTS, ANYROUTER_MODELS, } from './anyrouter.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Adapters Index
|
|
3
|
+
*
|
|
4
|
+
* Exports all available LLM adapters.
|
|
5
|
+
*/
|
|
6
|
+
export { OpenAIAdapter } from './openai.js';
|
|
7
|
+
export { ClaudeAdapter } from './claude.js';
|
|
8
|
+
export { QwenAdapter } from './qwen.js';
|
|
9
|
+
export { SiliconFlowAdapter, SILICONFLOW_MODELS, } from './siliconflow.js';
|
|
10
|
+
export { MiMoAdapter, MIMO_MODELS, } from './mimo.js';
|
|
11
|
+
export { AnyRouterAdapter, ANYROUTER_ENDPOINTS, ANYROUTER_MODELS, } from './anyrouter.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/llm/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,WAAW,EAA0B,MAAM,WAAW,CAAC;AAChE,OAAO,EACL,kBAAkB,EAElB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EAKX,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAEhB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Xiaomi MiMo LLM Adapter
|
|
3
|
+
*
|
|
4
|
+
* Implements the LLMAdapter interface for Xiaomi MiMo API.
|
|
5
|
+
* MiMo provides OpenAI-compatible API with additional features like
|
|
6
|
+
* deep thinking mode (reasoning_content).
|
|
7
|
+
*
|
|
8
|
+
* @see https://platform.xiaomimimo.com/#/docs/api/text-generation/openai-api
|
|
9
|
+
*/
|
|
10
|
+
import type { LLMAdapter, LLMAdapterConfig, GenerateOptions, ChatMessage, LLMResponse, EmbeddingResult, StreamCallback } from '../adapter.js';
|
|
11
|
+
import type { ToolDefinition } from '../../types/tool.js';
|
|
12
|
+
/**
|
|
13
|
+
* Available MiMo models
|
|
14
|
+
*/
|
|
15
|
+
export declare const MIMO_MODELS: {
|
|
16
|
+
readonly V2_FLASH: "mimo-v2-flash";
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Thinking mode configuration
|
|
20
|
+
*/
|
|
21
|
+
export type ThinkingMode = 'enabled' | 'disabled';
|
|
22
|
+
/**
|
|
23
|
+
* MiMo-specific configuration
|
|
24
|
+
*/
|
|
25
|
+
export interface MiMoAdapterConfig extends LLMAdapterConfig {
|
|
26
|
+
/** Enable deep thinking mode (default: disabled) */
|
|
27
|
+
thinkingMode?: ThinkingMode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Extended generate options for MiMo
|
|
31
|
+
*/
|
|
32
|
+
export interface MiMoGenerateOptions extends GenerateOptions {
|
|
33
|
+
/** Override thinking mode for this request */
|
|
34
|
+
thinkingMode?: ThinkingMode;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Extended LLM response with reasoning content
|
|
38
|
+
*/
|
|
39
|
+
export interface MiMoLLMResponse extends LLMResponse {
|
|
40
|
+
/** Reasoning content from deep thinking mode */
|
|
41
|
+
reasoningContent?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Xiaomi MiMo LLM Adapter implementation
|
|
45
|
+
*
|
|
46
|
+
* Provides access to MiMo models with support for:
|
|
47
|
+
* - OpenAI-compatible chat completions
|
|
48
|
+
* - Function/tool calling
|
|
49
|
+
* - Deep thinking mode (reasoning_content)
|
|
50
|
+
* - Streaming responses
|
|
51
|
+
*/
|
|
52
|
+
export declare class MiMoAdapter implements LLMAdapter {
|
|
53
|
+
readonly provider = "mimo";
|
|
54
|
+
readonly model: string;
|
|
55
|
+
private client;
|
|
56
|
+
private defaultTemperature;
|
|
57
|
+
private defaultMaxTokens;
|
|
58
|
+
private defaultThinkingMode;
|
|
59
|
+
constructor(config: MiMoAdapterConfig);
|
|
60
|
+
generate(prompt: string | ChatMessage[], options?: MiMoGenerateOptions): Promise<string>;
|
|
61
|
+
generateWithTools(prompt: string | ChatMessage[], tools: ToolDefinition[], options?: MiMoGenerateOptions): Promise<MiMoLLMResponse>;
|
|
62
|
+
embed(_text: string): Promise<EmbeddingResult>;
|
|
63
|
+
supportsEmbeddings(): boolean;
|
|
64
|
+
supportsToolCalling(): boolean;
|
|
65
|
+
supportsStreaming(): boolean;
|
|
66
|
+
generateWithToolsStream(prompt: string | ChatMessage[], tools: ToolDefinition[], onChunk: StreamCallback, options?: MiMoGenerateOptions): Promise<MiMoLLMResponse>;
|
|
67
|
+
/**
|
|
68
|
+
* Convert internal message format to OpenAI format
|
|
69
|
+
* Preserves reasoning_content for multi-turn tool calling
|
|
70
|
+
*/
|
|
71
|
+
private convertMessages;
|
|
72
|
+
/**
|
|
73
|
+
* Map finish reason to internal format
|
|
74
|
+
*/
|
|
75
|
+
private mapFinishReason;
|
|
76
|
+
/**
|
|
77
|
+
* Handle API errors
|
|
78
|
+
*/
|
|
79
|
+
private handleError;
|
|
80
|
+
/**
|
|
81
|
+
* Map error codes to internal error codes
|
|
82
|
+
*/
|
|
83
|
+
private mapErrorCode;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=mimo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mimo.d.ts","sourceRoot":"","sources":["../../../src/llm/adapters/mimo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,WAAW,EAEX,eAAe,EACf,cAAc,EAEf,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAO1D;;GAEG;AACH,eAAO,MAAM,WAAW;;CAGd,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,oDAAoD;IACpD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,8CAA8C;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAY,YAAW,UAAU;IAC5C,QAAQ,CAAC,QAAQ,UAAU;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,mBAAmB,CAAe;gBAE9B,MAAM,EAAE,iBAAiB;IAa/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBxF,iBAAiB,CACrB,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,EAC9B,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,eAAe,CAAC;IAsDrB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IASpD,kBAAkB,IAAI,OAAO;IAI7B,mBAAmB,IAAI,OAAO;IAI9B,iBAAiB,IAAI,OAAO;IAItB,uBAAuB,CAC3B,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,EAC9B,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,eAAe,CAAC;IAuH3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,WAAW;IAuBnB;;OAEG;IACH,OAAO,CAAC,YAAY;CASrB"}
|