@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,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AnyRouter LLM Adapter
|
|
3
|
+
*
|
|
4
|
+
* Implements the LLMAdapter interface for AnyRouter API.
|
|
5
|
+
* AnyRouter is a Claude Code API proxy service that provides
|
|
6
|
+
* OpenAI-compatible API access to Claude models.
|
|
7
|
+
*
|
|
8
|
+
* @see https://docs.anyrouter.top
|
|
9
|
+
*/
|
|
10
|
+
import type { LLMAdapter, LLMAdapterConfig, GenerateOptions, ChatMessage, LLMResponse, EmbeddingResult, StreamCallback } from '../adapter.js';
|
|
11
|
+
import type { ToolDefinition } from '../../types/tool.js';
|
|
12
|
+
/**
|
|
13
|
+
* AnyRouter API endpoints
|
|
14
|
+
*/
|
|
15
|
+
export declare const ANYROUTER_ENDPOINTS: {
|
|
16
|
+
/** Main site - direct connection */
|
|
17
|
+
readonly MAIN: "https://anyrouter.top";
|
|
18
|
+
/** China mainland optimized endpoint 1 */
|
|
19
|
+
readonly CN_OPTIMIZED_1: "https://pmpjfbhq.cn-nb1.rainapp.top";
|
|
20
|
+
/** China mainland optimized endpoint 2 */
|
|
21
|
+
readonly CN_OPTIMIZED_2: "https://a-ocnfniawgw.cn-shanghai.fcapp.run";
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Available Claude models via AnyRouter
|
|
25
|
+
*/
|
|
26
|
+
export declare const ANYROUTER_MODELS: {
|
|
27
|
+
readonly CLAUDE_OPUS_4_5: "claude-opus-4-5";
|
|
28
|
+
readonly CLAUDE_SONNET_4_5: "claude-sonnet-4-5";
|
|
29
|
+
readonly CLAUDE_3_5_SONNET: "claude-3-5-sonnet-20241022";
|
|
30
|
+
readonly CLAUDE_3_5_HAIKU: "claude-3-5-haiku-20241022";
|
|
31
|
+
readonly CLAUDE_3_OPUS: "claude-3-opus-20240229";
|
|
32
|
+
readonly GEMINI_2_5_PRO: "gemini-2.5-pro";
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* AnyRouter-specific configuration
|
|
36
|
+
*/
|
|
37
|
+
export interface AnyRouterAdapterConfig extends LLMAdapterConfig {
|
|
38
|
+
/** Use China mainland optimized endpoint (default: false) */
|
|
39
|
+
useChinaEndpoint?: boolean;
|
|
40
|
+
/** Specific endpoint URL override */
|
|
41
|
+
endpoint?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* AnyRouter LLM Adapter implementation
|
|
45
|
+
*
|
|
46
|
+
* Provides access to Claude models via AnyRouter proxy with support for:
|
|
47
|
+
* - OpenAI-compatible chat completions
|
|
48
|
+
* - Function/tool calling
|
|
49
|
+
* - Streaming responses
|
|
50
|
+
* - China mainland optimized endpoints
|
|
51
|
+
*/
|
|
52
|
+
export declare class AnyRouterAdapter implements LLMAdapter {
|
|
53
|
+
readonly provider = "anyrouter";
|
|
54
|
+
readonly model: string;
|
|
55
|
+
private client;
|
|
56
|
+
private defaultTemperature;
|
|
57
|
+
private defaultMaxTokens;
|
|
58
|
+
private baseURL;
|
|
59
|
+
constructor(config: AnyRouterAdapterConfig);
|
|
60
|
+
generate(prompt: string | ChatMessage[], options?: GenerateOptions): Promise<string>;
|
|
61
|
+
generateWithTools(prompt: string | ChatMessage[], tools: ToolDefinition[], options?: GenerateOptions): Promise<LLMResponse>;
|
|
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?: GenerateOptions): Promise<LLMResponse>;
|
|
67
|
+
/**
|
|
68
|
+
* Convert internal message format to OpenAI format
|
|
69
|
+
*/
|
|
70
|
+
private convertMessages;
|
|
71
|
+
/**
|
|
72
|
+
* Map finish reason to internal format
|
|
73
|
+
*/
|
|
74
|
+
private mapFinishReason;
|
|
75
|
+
/**
|
|
76
|
+
* Handle API errors
|
|
77
|
+
*/
|
|
78
|
+
private handleError;
|
|
79
|
+
/**
|
|
80
|
+
* Map error codes to internal error codes
|
|
81
|
+
*/
|
|
82
|
+
private mapErrorCode;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=anyrouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anyrouter.d.ts","sourceRoot":"","sources":["../../../src/llm/adapters/anyrouter.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;AAE1D;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,oCAAoC;;IAEpC,0CAA0C;;IAE1C,0CAA0C;;CAElC,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;CAUnB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IACjD,QAAQ,CAAC,QAAQ,eAAe;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,sBAAsB;IAyBpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAiCpF,iBAAiB,CACrB,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,EAC9B,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,WAAW,CAAC;IAqEjB,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,eAAe,GACxB,OAAO,CAAC,WAAW,CAAC;IAwIvB;;OAEG;IACH,OAAO,CAAC,eAAe;IA8BvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,WAAW;IAuBnB;;OAEG;IACH,OAAO,CAAC,YAAY;CASrB"}
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AnyRouter LLM Adapter
|
|
3
|
+
*
|
|
4
|
+
* Implements the LLMAdapter interface for AnyRouter API.
|
|
5
|
+
* AnyRouter is a Claude Code API proxy service that provides
|
|
6
|
+
* OpenAI-compatible API access to Claude models.
|
|
7
|
+
*
|
|
8
|
+
* @see https://docs.anyrouter.top
|
|
9
|
+
*/
|
|
10
|
+
import OpenAI from 'openai';
|
|
11
|
+
import { LLMError, promptToMessages } from '../adapter.js';
|
|
12
|
+
/**
|
|
13
|
+
* AnyRouter API endpoints
|
|
14
|
+
*/
|
|
15
|
+
export const ANYROUTER_ENDPOINTS = {
|
|
16
|
+
/** Main site - direct connection */
|
|
17
|
+
MAIN: 'https://anyrouter.top',
|
|
18
|
+
/** China mainland optimized endpoint 1 */
|
|
19
|
+
CN_OPTIMIZED_1: 'https://pmpjfbhq.cn-nb1.rainapp.top',
|
|
20
|
+
/** China mainland optimized endpoint 2 */
|
|
21
|
+
CN_OPTIMIZED_2: 'https://a-ocnfniawgw.cn-shanghai.fcapp.run',
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Available Claude models via AnyRouter
|
|
25
|
+
*/
|
|
26
|
+
export const ANYROUTER_MODELS = {
|
|
27
|
+
// Claude 4.x models
|
|
28
|
+
CLAUDE_OPUS_4_5: 'claude-opus-4-5',
|
|
29
|
+
CLAUDE_SONNET_4_5: 'claude-sonnet-4-5',
|
|
30
|
+
// Claude 3.x models
|
|
31
|
+
CLAUDE_3_5_SONNET: 'claude-3-5-sonnet-20241022',
|
|
32
|
+
CLAUDE_3_5_HAIKU: 'claude-3-5-haiku-20241022',
|
|
33
|
+
CLAUDE_3_OPUS: 'claude-3-opus-20240229',
|
|
34
|
+
// Gemini models
|
|
35
|
+
GEMINI_2_5_PRO: 'gemini-2.5-pro',
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* AnyRouter LLM Adapter implementation
|
|
39
|
+
*
|
|
40
|
+
* Provides access to Claude models via AnyRouter proxy with support for:
|
|
41
|
+
* - OpenAI-compatible chat completions
|
|
42
|
+
* - Function/tool calling
|
|
43
|
+
* - Streaming responses
|
|
44
|
+
* - China mainland optimized endpoints
|
|
45
|
+
*/
|
|
46
|
+
export class AnyRouterAdapter {
|
|
47
|
+
provider = 'anyrouter';
|
|
48
|
+
model;
|
|
49
|
+
client;
|
|
50
|
+
defaultTemperature;
|
|
51
|
+
defaultMaxTokens;
|
|
52
|
+
baseURL;
|
|
53
|
+
constructor(config) {
|
|
54
|
+
this.model = config.model;
|
|
55
|
+
this.defaultTemperature = config.temperature ?? 0.7;
|
|
56
|
+
this.defaultMaxTokens = config.maxTokens ?? 8192;
|
|
57
|
+
// Determine base URL
|
|
58
|
+
this.baseURL = config.endpoint ?? config.baseUrl ?? '';
|
|
59
|
+
if (!this.baseURL) {
|
|
60
|
+
this.baseURL = config.useChinaEndpoint
|
|
61
|
+
? ANYROUTER_ENDPOINTS.CN_OPTIMIZED_1
|
|
62
|
+
: ANYROUTER_ENDPOINTS.MAIN;
|
|
63
|
+
}
|
|
64
|
+
console.log(`[AnyRouter] Initializing adapter:`);
|
|
65
|
+
console.log(`[AnyRouter] - Base URL: ${this.baseURL}`);
|
|
66
|
+
console.log(`[AnyRouter] - Model: ${this.model}`);
|
|
67
|
+
console.log(`[AnyRouter] - API Key: ${config.apiKey?.substring(0, 10)}...`);
|
|
68
|
+
this.client = new OpenAI({
|
|
69
|
+
apiKey: config.apiKey,
|
|
70
|
+
baseURL: this.baseURL,
|
|
71
|
+
timeout: config.timeoutMs ?? 120000, // Claude responses can be slow
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
async generate(prompt, options) {
|
|
75
|
+
const messages = typeof prompt === 'string' ? promptToMessages(prompt, options?.systemPrompt) : prompt;
|
|
76
|
+
console.log(`[AnyRouter] generate() called`);
|
|
77
|
+
console.log(`[AnyRouter] - Messages count: ${messages.length}`);
|
|
78
|
+
console.log(`[AnyRouter] - Model: ${this.model}`);
|
|
79
|
+
console.log(`[AnyRouter] - Base URL: ${this.baseURL}`);
|
|
80
|
+
try {
|
|
81
|
+
const requestBody = {
|
|
82
|
+
model: this.model,
|
|
83
|
+
messages: this.convertMessages(messages),
|
|
84
|
+
temperature: options?.temperature ?? this.defaultTemperature,
|
|
85
|
+
max_tokens: options?.maxTokens ?? this.defaultMaxTokens,
|
|
86
|
+
stop: options?.stopSequences,
|
|
87
|
+
};
|
|
88
|
+
console.log(`[AnyRouter] Request body:`, JSON.stringify(requestBody, null, 2));
|
|
89
|
+
const response = await this.client.chat.completions.create(requestBody, {
|
|
90
|
+
signal: options?.abortSignal,
|
|
91
|
+
});
|
|
92
|
+
console.log(`[AnyRouter] Response received:`, JSON.stringify(response, null, 2));
|
|
93
|
+
return response.choices[0]?.message?.content ?? '';
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.error(`[AnyRouter] Error in generate():`, error);
|
|
97
|
+
throw this.handleError(error);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
async generateWithTools(prompt, tools, options) {
|
|
101
|
+
const messages = typeof prompt === 'string' ? promptToMessages(prompt, options?.systemPrompt) : prompt;
|
|
102
|
+
console.log(`[AnyRouter] generateWithTools() called`);
|
|
103
|
+
console.log(`[AnyRouter] - Messages count: ${messages.length}`);
|
|
104
|
+
console.log(`[AnyRouter] - Tools count: ${tools.length}`);
|
|
105
|
+
console.log(`[AnyRouter] - Model: ${this.model}`);
|
|
106
|
+
console.log(`[AnyRouter] - Base URL: ${this.baseURL}`);
|
|
107
|
+
try {
|
|
108
|
+
const requestBody = {
|
|
109
|
+
model: this.model,
|
|
110
|
+
messages: this.convertMessages(messages),
|
|
111
|
+
tools: tools.map((t) => ({
|
|
112
|
+
type: 'function',
|
|
113
|
+
function: t.function,
|
|
114
|
+
})),
|
|
115
|
+
temperature: options?.temperature ?? this.defaultTemperature,
|
|
116
|
+
max_tokens: options?.maxTokens ?? this.defaultMaxTokens,
|
|
117
|
+
stop: options?.stopSequences,
|
|
118
|
+
};
|
|
119
|
+
console.log(`[AnyRouter] Request body (truncated):`, JSON.stringify({
|
|
120
|
+
model: requestBody.model,
|
|
121
|
+
messagesCount: requestBody.messages.length,
|
|
122
|
+
toolsCount: requestBody.tools.length,
|
|
123
|
+
temperature: requestBody.temperature,
|
|
124
|
+
max_tokens: requestBody.max_tokens,
|
|
125
|
+
}));
|
|
126
|
+
const response = await this.client.chat.completions.create(requestBody, {
|
|
127
|
+
signal: options?.abortSignal,
|
|
128
|
+
});
|
|
129
|
+
console.log(`[AnyRouter] Response received, choices: ${response.choices?.length}`);
|
|
130
|
+
const choice = response.choices[0];
|
|
131
|
+
const message = choice?.message;
|
|
132
|
+
const toolCalls = message?.tool_calls?.map((tc) => ({
|
|
133
|
+
id: tc.id,
|
|
134
|
+
name: tc.function.name,
|
|
135
|
+
arguments: JSON.parse(tc.function.arguments),
|
|
136
|
+
}));
|
|
137
|
+
return {
|
|
138
|
+
content: message?.content ?? '',
|
|
139
|
+
toolCalls,
|
|
140
|
+
finishReason: this.mapFinishReason(choice?.finish_reason),
|
|
141
|
+
usage: response.usage
|
|
142
|
+
? {
|
|
143
|
+
promptTokens: response.usage.prompt_tokens,
|
|
144
|
+
completionTokens: response.usage.completion_tokens,
|
|
145
|
+
totalTokens: response.usage.total_tokens,
|
|
146
|
+
}
|
|
147
|
+
: undefined,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
console.error(`[AnyRouter] Error in generateWithTools():`, error);
|
|
152
|
+
throw this.handleError(error);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async embed(_text) {
|
|
156
|
+
// AnyRouter focuses on Claude Code, embeddings not supported
|
|
157
|
+
throw new LLMError('AnyRouter does not support embeddings. Use SiliconFlow or OpenAI for embeddings.', 'INVALID_REQUEST', this.provider);
|
|
158
|
+
}
|
|
159
|
+
supportsEmbeddings() {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
supportsToolCalling() {
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
supportsStreaming() {
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
async generateWithToolsStream(prompt, tools, onChunk, options) {
|
|
169
|
+
const messages = typeof prompt === 'string' ? promptToMessages(prompt, options?.systemPrompt) : prompt;
|
|
170
|
+
console.log(`[AnyRouter] generateWithToolsStream() called`);
|
|
171
|
+
console.log(`[AnyRouter] - Messages count: ${messages.length}`);
|
|
172
|
+
console.log(`[AnyRouter] - Tools count: ${tools.length}`);
|
|
173
|
+
console.log(`[AnyRouter] - Model: ${this.model}`);
|
|
174
|
+
console.log(`[AnyRouter] - Base URL: ${this.baseURL}`);
|
|
175
|
+
try {
|
|
176
|
+
const requestBody = {
|
|
177
|
+
model: this.model,
|
|
178
|
+
messages: this.convertMessages(messages),
|
|
179
|
+
tools: tools.map((t) => ({
|
|
180
|
+
type: 'function',
|
|
181
|
+
function: t.function,
|
|
182
|
+
})),
|
|
183
|
+
temperature: options?.temperature ?? this.defaultTemperature,
|
|
184
|
+
max_tokens: options?.maxTokens ?? this.defaultMaxTokens,
|
|
185
|
+
stop: options?.stopSequences,
|
|
186
|
+
stream: true,
|
|
187
|
+
};
|
|
188
|
+
console.log(`[AnyRouter] Stream request body (truncated):`, JSON.stringify({
|
|
189
|
+
model: requestBody.model,
|
|
190
|
+
messagesCount: requestBody.messages.length,
|
|
191
|
+
toolsCount: requestBody.tools.length,
|
|
192
|
+
temperature: requestBody.temperature,
|
|
193
|
+
max_tokens: requestBody.max_tokens,
|
|
194
|
+
stream: requestBody.stream,
|
|
195
|
+
}));
|
|
196
|
+
const stream = await this.client.chat.completions.create(requestBody, {
|
|
197
|
+
signal: options?.abortSignal,
|
|
198
|
+
});
|
|
199
|
+
console.log(`[AnyRouter] Stream created, starting iteration...`);
|
|
200
|
+
// Accumulate the response
|
|
201
|
+
let accumulatedContent = '';
|
|
202
|
+
const toolCallsMap = new Map();
|
|
203
|
+
let finishReason = 'stop';
|
|
204
|
+
let chunkCount = 0;
|
|
205
|
+
for await (const chunk of stream) {
|
|
206
|
+
chunkCount++;
|
|
207
|
+
const delta = chunk.choices[0]?.delta;
|
|
208
|
+
const chunkFinishReason = chunk.choices[0]?.finish_reason;
|
|
209
|
+
if (chunkCount <= 3 || chunkCount % 10 === 0) {
|
|
210
|
+
console.log(`[AnyRouter] Chunk ${chunkCount}:`, JSON.stringify(chunk));
|
|
211
|
+
}
|
|
212
|
+
// Handle content chunks
|
|
213
|
+
if (delta?.content) {
|
|
214
|
+
accumulatedContent += delta.content;
|
|
215
|
+
const streamChunk = {
|
|
216
|
+
type: 'content',
|
|
217
|
+
content: delta.content,
|
|
218
|
+
};
|
|
219
|
+
onChunk(streamChunk);
|
|
220
|
+
}
|
|
221
|
+
// Handle tool call chunks
|
|
222
|
+
if (delta?.tool_calls) {
|
|
223
|
+
for (const tc of delta.tool_calls) {
|
|
224
|
+
const index = tc.index;
|
|
225
|
+
// Get or create tool call entry
|
|
226
|
+
let toolCallEntry = toolCallsMap.get(index);
|
|
227
|
+
if (!toolCallEntry) {
|
|
228
|
+
toolCallEntry = { id: '', name: '', arguments: '' };
|
|
229
|
+
toolCallsMap.set(index, toolCallEntry);
|
|
230
|
+
}
|
|
231
|
+
// Accumulate tool call data
|
|
232
|
+
if (tc.id)
|
|
233
|
+
toolCallEntry.id = tc.id;
|
|
234
|
+
if (tc.function?.name)
|
|
235
|
+
toolCallEntry.name = tc.function.name;
|
|
236
|
+
if (tc.function?.arguments)
|
|
237
|
+
toolCallEntry.arguments += tc.function.arguments;
|
|
238
|
+
// Send tool call chunk
|
|
239
|
+
const streamChunk = {
|
|
240
|
+
type: 'tool_call',
|
|
241
|
+
toolCall: {
|
|
242
|
+
index,
|
|
243
|
+
id: tc.id,
|
|
244
|
+
name: tc.function?.name,
|
|
245
|
+
arguments: tc.function?.arguments,
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
onChunk(streamChunk);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
// Update finish reason
|
|
252
|
+
if (chunkFinishReason) {
|
|
253
|
+
finishReason = this.mapFinishReason(chunkFinishReason);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
console.log(`[AnyRouter] Stream completed, total chunks: ${chunkCount}`);
|
|
257
|
+
console.log(`[AnyRouter] Accumulated content length: ${accumulatedContent.length}`);
|
|
258
|
+
// Build final tool calls array
|
|
259
|
+
const toolCalls = toolCallsMap.size > 0
|
|
260
|
+
? Array.from(toolCallsMap.entries())
|
|
261
|
+
.sort(([a], [b]) => a - b)
|
|
262
|
+
.map(([, tc]) => ({
|
|
263
|
+
id: tc.id,
|
|
264
|
+
name: tc.name,
|
|
265
|
+
arguments: JSON.parse(tc.arguments || '{}'),
|
|
266
|
+
}))
|
|
267
|
+
: undefined;
|
|
268
|
+
// Build final response
|
|
269
|
+
const response = {
|
|
270
|
+
content: accumulatedContent,
|
|
271
|
+
toolCalls,
|
|
272
|
+
finishReason,
|
|
273
|
+
};
|
|
274
|
+
// Send done chunk
|
|
275
|
+
onChunk({ type: 'done', response });
|
|
276
|
+
return response;
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
console.error(`[AnyRouter] Error in generateWithToolsStream():`, error);
|
|
280
|
+
throw this.handleError(error);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Convert internal message format to OpenAI format
|
|
285
|
+
*/
|
|
286
|
+
convertMessages(messages) {
|
|
287
|
+
return messages.map((msg) => {
|
|
288
|
+
if (msg.role === 'tool') {
|
|
289
|
+
return {
|
|
290
|
+
role: 'tool',
|
|
291
|
+
content: msg.content,
|
|
292
|
+
tool_call_id: msg.toolCallId ?? '',
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
if (msg.role === 'assistant' && msg.toolCalls && msg.toolCalls.length > 0) {
|
|
296
|
+
return {
|
|
297
|
+
role: 'assistant',
|
|
298
|
+
content: msg.content || null,
|
|
299
|
+
tool_calls: msg.toolCalls.map((tc) => ({
|
|
300
|
+
id: tc.id,
|
|
301
|
+
type: 'function',
|
|
302
|
+
function: {
|
|
303
|
+
name: tc.name,
|
|
304
|
+
arguments: JSON.stringify(tc.arguments),
|
|
305
|
+
},
|
|
306
|
+
})),
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
return {
|
|
310
|
+
role: msg.role,
|
|
311
|
+
content: msg.content,
|
|
312
|
+
};
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Map finish reason to internal format
|
|
317
|
+
*/
|
|
318
|
+
mapFinishReason(reason) {
|
|
319
|
+
switch (reason) {
|
|
320
|
+
case 'stop':
|
|
321
|
+
return 'stop';
|
|
322
|
+
case 'tool_calls':
|
|
323
|
+
return 'tool_calls';
|
|
324
|
+
case 'length':
|
|
325
|
+
return 'length';
|
|
326
|
+
case 'content_filter':
|
|
327
|
+
return 'content_filter';
|
|
328
|
+
default:
|
|
329
|
+
return 'stop';
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Handle API errors
|
|
334
|
+
*/
|
|
335
|
+
handleError(error) {
|
|
336
|
+
// Check for abort error first
|
|
337
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
338
|
+
return new LLMError('Operation cancelled', 'CANCELLED', this.provider, error);
|
|
339
|
+
}
|
|
340
|
+
// Preserve existing LLMError instances
|
|
341
|
+
if (error instanceof LLMError) {
|
|
342
|
+
return error;
|
|
343
|
+
}
|
|
344
|
+
if (error instanceof OpenAI.APIError) {
|
|
345
|
+
const code = this.mapErrorCode(error.status, error.code);
|
|
346
|
+
return new LLMError(error.message, code, this.provider, error);
|
|
347
|
+
}
|
|
348
|
+
if (error instanceof Error) {
|
|
349
|
+
return new LLMError(error.message, 'UNKNOWN_ERROR', this.provider, error);
|
|
350
|
+
}
|
|
351
|
+
return new LLMError('Unknown error occurred', 'UNKNOWN_ERROR', this.provider);
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Map error codes to internal error codes
|
|
355
|
+
*/
|
|
356
|
+
mapErrorCode(status, code) {
|
|
357
|
+
if (status === 401)
|
|
358
|
+
return 'AUTHENTICATION_ERROR';
|
|
359
|
+
if (status === 429)
|
|
360
|
+
return 'RATE_LIMIT_ERROR';
|
|
361
|
+
if (status === 400)
|
|
362
|
+
return 'INVALID_REQUEST';
|
|
363
|
+
if (status === 404)
|
|
364
|
+
return 'MODEL_NOT_FOUND';
|
|
365
|
+
if (code === 'context_length_exceeded')
|
|
366
|
+
return 'CONTEXT_LENGTH_EXCEEDED';
|
|
367
|
+
if (code === 'content_filter')
|
|
368
|
+
return 'CONTENT_FILTER';
|
|
369
|
+
return 'UNKNOWN_ERROR';
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=anyrouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anyrouter.js","sourceRoot":"","sources":["../../../src/llm/adapters/anyrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
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 type { LLMAdapter, LLMAdapterConfig, GenerateOptions, ChatMessage, LLMResponse, EmbeddingResult, StreamCallback } from '../adapter.js';
|
|
8
|
+
import type { ToolDefinition } from '../../types/tool.js';
|
|
9
|
+
/**
|
|
10
|
+
* Claude-specific configuration
|
|
11
|
+
*/
|
|
12
|
+
export interface ClaudeAdapterConfig extends LLMAdapterConfig {
|
|
13
|
+
/** Anthropic API version header */
|
|
14
|
+
apiVersion?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Claude LLM Adapter implementation
|
|
18
|
+
*/
|
|
19
|
+
export declare class ClaudeAdapter implements LLMAdapter {
|
|
20
|
+
readonly provider = "claude";
|
|
21
|
+
readonly model: string;
|
|
22
|
+
private client;
|
|
23
|
+
private defaultTemperature;
|
|
24
|
+
private defaultMaxTokens;
|
|
25
|
+
constructor(config: ClaudeAdapterConfig);
|
|
26
|
+
generate(prompt: string | ChatMessage[], options?: GenerateOptions): Promise<string>;
|
|
27
|
+
generateWithTools(prompt: string | ChatMessage[], tools: ToolDefinition[], options?: GenerateOptions): Promise<LLMResponse>;
|
|
28
|
+
embed(_text: string): Promise<EmbeddingResult>;
|
|
29
|
+
supportsEmbeddings(): boolean;
|
|
30
|
+
supportsToolCalling(): boolean;
|
|
31
|
+
supportsStreaming(): boolean;
|
|
32
|
+
generateWithToolsStream(prompt: string | ChatMessage[], tools: ToolDefinition[], onChunk: StreamCallback, options?: GenerateOptions): Promise<LLMResponse>;
|
|
33
|
+
/**
|
|
34
|
+
* Extract system prompt from messages
|
|
35
|
+
*/
|
|
36
|
+
private extractSystemPrompt;
|
|
37
|
+
/**
|
|
38
|
+
* Convert internal message format to Claude format
|
|
39
|
+
*/
|
|
40
|
+
private convertMessages;
|
|
41
|
+
/**
|
|
42
|
+
* Convert tool definitions to Claude format
|
|
43
|
+
*/
|
|
44
|
+
private convertTools;
|
|
45
|
+
/**
|
|
46
|
+
* Extract text content from Claude response
|
|
47
|
+
*/
|
|
48
|
+
private extractTextContent;
|
|
49
|
+
/**
|
|
50
|
+
* Extract tool calls from Claude response
|
|
51
|
+
*/
|
|
52
|
+
private extractToolCalls;
|
|
53
|
+
/**
|
|
54
|
+
* Map Claude stop reason to internal format
|
|
55
|
+
*/
|
|
56
|
+
private mapStopReason;
|
|
57
|
+
/**
|
|
58
|
+
* Handle Claude API errors
|
|
59
|
+
*/
|
|
60
|
+
private handleError;
|
|
61
|
+
/**
|
|
62
|
+
* Map Claude error codes to internal error codes
|
|
63
|
+
*/
|
|
64
|
+
private mapErrorCode;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/llm/adapters/claude.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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;AAE1D;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,QAAQ,CAAC,QAAQ,YAAY;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,mBAAmB;IAYjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BpF,iBAAiB,CACrB,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,EAC9B,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,WAAW,CAAC;IAyCjB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAUpD,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,eAAe,GACxB,OAAO,CAAC,WAAW,CAAC;IAsHvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,eAAe;IA2CvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,WAAW;IAuBnB;;OAEG;IACH,OAAO,CAAC,YAAY;CAOrB"}
|