@huyooo/ai-chat-core 0.2.45 → 0.3.3
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/dist/adapter/index.d.ts +11 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/model-adapter.d.ts +25 -0
- package/dist/adapter/model-adapter.d.ts.map +1 -0
- package/dist/adapter/model-options.d.ts +53 -0
- package/dist/adapter/model-options.d.ts.map +1 -0
- package/dist/adapter/types.d.ts +28 -0
- package/dist/adapter/types.d.ts.map +1 -0
- package/dist/chat-runtime.d.ts +96 -0
- package/dist/chat-runtime.d.ts.map +1 -0
- package/dist/constants.d.ts +12 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/events.d.ts +605 -1
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +1 -1
- package/dist/extension/index.d.ts +9 -0
- package/dist/extension/index.d.ts.map +1 -0
- package/dist/extension/types.d.ts +46 -0
- package/dist/extension/types.d.ts.map +1 -0
- package/dist/families/index.d.ts +11 -0
- package/dist/families/index.d.ts.map +1 -0
- package/dist/families/presets.d.ts +31 -0
- package/dist/families/presets.d.ts.map +1 -0
- package/dist/families/resolver.d.ts +11 -0
- package/dist/families/resolver.d.ts.map +1 -0
- package/dist/families/types.d.ts +29 -0
- package/dist/families/types.d.ts.map +1 -0
- package/dist/governance/command-safety.d.ts +34 -0
- package/dist/governance/command-safety.d.ts.map +1 -0
- package/dist/governance/governance.d.ts +19 -0
- package/dist/governance/governance.d.ts.map +1 -0
- package/dist/governance/index.d.ts +12 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/types.d.ts +29 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/index.d.ts +72 -804
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -1
- package/dist/internal/management-args.d.ts +13 -0
- package/dist/internal/management-args.d.ts.map +1 -0
- package/dist/internal/management-results.d.ts +21 -0
- package/dist/internal/management-results.d.ts.map +1 -0
- package/dist/llm-config.d.ts +108 -0
- package/dist/llm-config.d.ts.map +1 -0
- package/dist/logger/core.d.ts +31 -0
- package/dist/logger/core.d.ts.map +1 -0
- package/dist/logger/index.d.ts +9 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/orchestrator/compression-handler.d.ts +29 -0
- package/dist/orchestrator/compression-handler.d.ts.map +1 -0
- package/dist/orchestrator/context-compressor.d.ts +51 -0
- package/dist/orchestrator/context-compressor.d.ts.map +1 -0
- package/dist/orchestrator/context-summarizer.d.ts +41 -0
- package/dist/orchestrator/context-summarizer.d.ts.map +1 -0
- package/dist/orchestrator/index.d.ts +12 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator.d.ts +46 -0
- package/dist/orchestrator/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/types.d.ts +58 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/parts/index.d.ts +13 -0
- package/dist/parts/index.d.ts.map +1 -0
- package/dist/parts/registry.d.ts +11 -0
- package/dist/parts/registry.d.ts.map +1 -0
- package/dist/parts/summaries.d.ts +9 -0
- package/dist/parts/summaries.d.ts.map +1 -0
- package/dist/parts/types.d.ts +61 -0
- package/dist/parts/types.d.ts.map +1 -0
- package/dist/platform.d.ts +17 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +1 -0
- package/dist/protocols/anthropic.d.ts +20 -0
- package/dist/protocols/anthropic.d.ts.map +1 -0
- package/dist/protocols/ark.d.ts +36 -0
- package/dist/protocols/ark.d.ts.map +1 -0
- package/dist/protocols/deepseek.d.ts +24 -0
- package/dist/protocols/deepseek.d.ts.map +1 -0
- package/dist/protocols/error-utils.d.ts +14 -0
- package/dist/protocols/error-utils.d.ts.map +1 -0
- package/dist/protocols/gemini.d.ts +24 -0
- package/dist/protocols/gemini.d.ts.map +1 -0
- package/dist/protocols/glm.d.ts +20 -0
- package/dist/protocols/glm.d.ts.map +1 -0
- package/dist/protocols/grok.d.ts +20 -0
- package/dist/protocols/grok.d.ts.map +1 -0
- package/dist/protocols/index.d.ts +31 -0
- package/dist/protocols/index.d.ts.map +1 -0
- package/dist/protocols/minimax.d.ts +38 -0
- package/dist/protocols/minimax.d.ts.map +1 -0
- package/dist/protocols/moonshot.d.ts +20 -0
- package/dist/protocols/moonshot.d.ts.map +1 -0
- package/dist/protocols/openai-sse.d.ts +33 -0
- package/dist/protocols/openai-sse.d.ts.map +1 -0
- package/dist/protocols/openai.d.ts +19 -0
- package/dist/protocols/openai.d.ts.map +1 -0
- package/dist/protocols/qwen.d.ts +26 -0
- package/dist/protocols/qwen.d.ts.map +1 -0
- package/dist/protocols/responses-sse.d.ts +30 -0
- package/dist/protocols/responses-sse.d.ts.map +1 -0
- package/dist/protocols/sse-reader.d.ts +23 -0
- package/dist/protocols/sse-reader.d.ts.map +1 -0
- package/dist/protocols/tool-arguments.d.ts +8 -0
- package/dist/protocols/tool-arguments.d.ts.map +1 -0
- package/dist/protocols/types.d.ts +148 -0
- package/dist/protocols/types.d.ts.map +1 -0
- package/dist/protocols/vercel-gateway.d.ts +15 -0
- package/dist/protocols/vercel-gateway.d.ts.map +1 -0
- package/dist/runtime.d.ts +151 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +1 -0
- package/dist/skills/index.d.ts +14 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/management/admin.d.ts +10 -0
- package/dist/skills/management/admin.d.ts.map +1 -0
- package/dist/skills/management/index.d.ts +11 -0
- package/dist/skills/management/index.d.ts.map +1 -0
- package/dist/skills/management/inputs.d.ts +44 -0
- package/dist/skills/management/inputs.d.ts.map +1 -0
- package/dist/skills/management/operations.d.ts +78 -0
- package/dist/skills/management/operations.d.ts.map +1 -0
- package/dist/skills/management/types.d.ts +70 -0
- package/dist/skills/management/types.d.ts.map +1 -0
- package/dist/skills/registry.d.ts +37 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/summaries.d.ts +9 -0
- package/dist/skills/summaries.d.ts.map +1 -0
- package/dist/skills/types.d.ts +61 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/test-utils/mock-sse.d.ts +13 -0
- package/dist/test-utils/mock-sse.d.ts.map +1 -0
- package/dist/tool-manager/define-tool.d.ts +35 -0
- package/dist/tool-manager/define-tool.d.ts.map +1 -0
- package/dist/tool-manager/formats.d.ts +46 -0
- package/dist/tool-manager/formats.d.ts.map +1 -0
- package/dist/tool-manager/identity.d.ts +18 -0
- package/dist/tool-manager/identity.d.ts.map +1 -0
- package/dist/tool-manager/in-process-provider.d.ts +15 -0
- package/dist/tool-manager/in-process-provider.d.ts.map +1 -0
- package/dist/tool-manager/index.d.ts +18 -0
- package/dist/tool-manager/index.d.ts.map +1 -0
- package/dist/tool-manager/manager.d.ts +18 -0
- package/dist/tool-manager/manager.d.ts.map +1 -0
- package/dist/tool-manager/mcp-provider.d.ts +21 -0
- package/dist/tool-manager/mcp-provider.d.ts.map +1 -0
- package/dist/tool-manager/summaries.d.ts +39 -0
- package/dist/tool-manager/summaries.d.ts.map +1 -0
- package/dist/tool-manager/types.d.ts +314 -0
- package/dist/tool-manager/types.d.ts.map +1 -0
- package/dist/types.d.ts +663 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +26 -15
- package/src/adapter/index.ts +25 -0
- package/src/adapter/model-adapter.ts +196 -0
- package/src/adapter/model-options.ts +143 -0
- package/src/adapter/types.ts +41 -0
- package/src/chat-runtime.ts +515 -0
- package/src/constants.ts +9 -102
- package/src/events.ts +364 -150
- package/src/extension/index.ts +24 -0
- package/src/extension/types.ts +49 -0
- package/src/families/index.ts +28 -0
- package/src/families/presets.ts +124 -0
- package/src/families/resolver.ts +22 -0
- package/src/families/types.ts +55 -0
- package/src/governance/command-safety.ts +224 -0
- package/src/governance/governance.ts +125 -0
- package/src/governance/index.ts +38 -0
- package/src/governance/types.ts +44 -0
- package/src/index.ts +250 -145
- package/src/internal/management-args.ts +39 -0
- package/src/internal/management-results.ts +60 -0
- package/src/llm-config.ts +137 -0
- package/src/logger/core.ts +96 -0
- package/src/logger/index.ts +8 -0
- package/src/orchestrator/compression-handler.ts +137 -0
- package/src/{providers → orchestrator}/context-compressor.ts +79 -47
- package/src/orchestrator/context-summarizer.ts +123 -0
- package/src/orchestrator/index.ts +20 -0
- package/src/orchestrator/orchestrator.ts +1002 -0
- package/src/orchestrator/types.ts +70 -0
- package/src/parts/index.ts +20 -0
- package/src/parts/registry.ts +95 -0
- package/src/parts/summaries.ts +40 -0
- package/src/parts/types.ts +63 -0
- package/src/platform.ts +73 -0
- package/src/protocols/anthropic.ts +377 -0
- package/src/protocols/ark.ts +300 -0
- package/src/protocols/deepseek.ts +192 -0
- package/src/{providers/protocols → protocols}/error-utils.ts +17 -20
- package/src/protocols/gemini.ts +352 -0
- package/src/protocols/glm.ts +212 -0
- package/src/protocols/grok.ts +98 -0
- package/src/protocols/index.ts +48 -0
- package/src/protocols/minimax.ts +308 -0
- package/src/protocols/moonshot.ts +186 -0
- package/src/protocols/openai-sse.ts +156 -0
- package/src/protocols/openai.ts +97 -0
- package/src/protocols/qwen.ts +358 -0
- package/src/protocols/responses-sse.ts +224 -0
- package/src/protocols/sse-reader.ts +54 -0
- package/src/protocols/tool-arguments.ts +32 -0
- package/src/{providers/protocols → protocols}/types.ts +46 -37
- package/src/protocols/vercel-gateway.ts +391 -0
- package/src/runtime.ts +167 -0
- package/src/skills/index.ts +29 -0
- package/src/skills/management/admin.ts +170 -0
- package/src/skills/management/index.ts +27 -0
- package/src/skills/management/inputs.ts +79 -0
- package/src/skills/management/operations.ts +256 -0
- package/src/skills/management/types.ts +57 -0
- package/src/skills/registry.ts +120 -0
- package/src/skills/summaries.ts +48 -0
- package/src/skills/types.ts +65 -0
- package/src/test-utils/mock-sse.ts +3 -3
- package/src/tool-manager/define-tool.ts +201 -0
- package/src/tool-manager/formats.ts +146 -0
- package/src/tool-manager/identity.ts +80 -0
- package/src/tool-manager/in-process-provider.ts +164 -0
- package/src/tool-manager/index.ts +63 -0
- package/src/tool-manager/manager.ts +562 -0
- package/src/tool-manager/mcp-provider.ts +509 -0
- package/src/tool-manager/summaries.ts +136 -0
- package/src/tool-manager/types.ts +389 -0
- package/src/types.ts +750 -191
- package/dist/events-CU5D5ray.d.ts +0 -1128
- package/src/agent.ts +0 -409
- package/src/internal/update-plan.ts +0 -2
- package/src/internal/web-search.ts +0 -77
- package/src/mcp/client-manager.ts +0 -302
- package/src/mcp/index.ts +0 -2
- package/src/mcp/types.ts +0 -43
- package/src/providers/context-summarizer.ts +0 -70
- package/src/providers/index.ts +0 -125
- package/src/providers/model-registry.ts +0 -466
- package/src/providers/orchestrator.ts +0 -839
- package/src/providers/protocols/anthropic.ts +0 -406
- package/src/providers/protocols/ark.ts +0 -362
- package/src/providers/protocols/deepseek.ts +0 -344
- package/src/providers/protocols/gemini.ts +0 -350
- package/src/providers/protocols/index.ts +0 -36
- package/src/providers/protocols/openai.ts +0 -420
- package/src/providers/protocols/qwen.ts +0 -315
- package/src/providers/types.ts +0 -264
- package/src/providers/unified-adapter.ts +0 -367
- package/src/router.ts +0 -72
- package/src/tools.ts +0 -162
- package/src/utils.ts +0 -86
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ark.d.ts","sourceRoot":"","sources":["../../src/protocols/ark.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EAGT,MAAM,SAAS,CAAC;AAQjB;;GAEG;AACH,qBAAa,WAAY,YAAW,QAAQ;IAC1C,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAKlC;;OAEG;IACI,MAAM,CACX,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,QAAQ,CAAC;IAsC3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsCxB;;OAEG;IACH,OAAO,CAAC,eAAe;YAiER,QAAQ;CAiGxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,CAErE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeepSeek Protocol(原生 Chat Completions API)
|
|
3
|
+
*
|
|
4
|
+
* 基于 OpenAI 兼容格式:
|
|
5
|
+
* - 端点:https://api.deepseek.com/chat/completions
|
|
6
|
+
* - thinking:{ type: "enabled" }
|
|
7
|
+
* - SSE delta:reasoning_content(思考)+ content(正文)
|
|
8
|
+
* - 工具调用循环内需回传 reasoning_content
|
|
9
|
+
* - finish_reason 额外值:content_filter / insufficient_system_resource
|
|
10
|
+
*
|
|
11
|
+
* 文档:https://api-docs.deepseek.com/zh-cn/api/create-chat-completion
|
|
12
|
+
*/
|
|
13
|
+
import type { Protocol, ProtocolConfig, ProtocolMessage, ProtocolToolDefinition, ProtocolRequestOptions, RawEvent } from './types';
|
|
14
|
+
export declare class DeepSeekProtocol implements Protocol {
|
|
15
|
+
readonly name = "deepseek";
|
|
16
|
+
private apiKey;
|
|
17
|
+
private apiUrl;
|
|
18
|
+
constructor(config: ProtocolConfig);
|
|
19
|
+
stream(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: ProtocolRequestOptions): AsyncGenerator<RawEvent>;
|
|
20
|
+
private buildRequestBody;
|
|
21
|
+
private convertMessages;
|
|
22
|
+
}
|
|
23
|
+
export declare function createDeepSeekProtocol(config: ProtocolConfig): DeepSeekProtocol;
|
|
24
|
+
//# sourceMappingURL=deepseek.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepseek.d.ts","sourceRoot":"","sources":["../../src/protocols/deepseek.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EACT,MAAM,SAAS,CAAC;AAwBjB,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,IAAI,cAAc;IAE3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAK3B,MAAM,CACX,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,QAAQ,CAAC;IAqC3B,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,eAAe;CAyDxB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAE/E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Protocol 错误处理工具
|
|
3
|
+
*
|
|
4
|
+
* 将各种 API 错误(HTTP status + JSON body / SDK 异常)转换为用户友好的消息。
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 从 HTTP 响应中提取用户友好的错误消息
|
|
8
|
+
*
|
|
9
|
+
* @param status HTTP 状态码
|
|
10
|
+
* @param body 原始响应体字符串
|
|
11
|
+
* @param providerName 供应商名称(如 "Gemini"、"OpenAI")
|
|
12
|
+
*/
|
|
13
|
+
export declare function friendlyHttpError(status: number, body: string, providerName: string): string;
|
|
14
|
+
//# sourceMappingURL=error-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-utils.d.ts","sourceRoot":"","sources":["../../src/protocols/error-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAc5F"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Protocol(Google 原生 API)
|
|
3
|
+
*
|
|
4
|
+
* 支持两种部署模式:
|
|
5
|
+
* - 直连 Google API:apiUrl 含 googleapis.com,Key 通过 URL 参数传递
|
|
6
|
+
* - CF Worker 代理:apiUrl 指向代理地址(如 https://proxy/google-ai-studio/v1beta),
|
|
7
|
+
* Key 通过 Authorization 头传递,代理负责注入厂商 Key
|
|
8
|
+
*/
|
|
9
|
+
import type { Protocol, ProtocolConfig, ProtocolMessage, ProtocolToolDefinition, ProtocolRequestOptions, RawEvent } from './types';
|
|
10
|
+
export declare class GeminiProtocol implements Protocol {
|
|
11
|
+
readonly name = "gemini";
|
|
12
|
+
private apiKey;
|
|
13
|
+
private apiUrl;
|
|
14
|
+
constructor(config: ProtocolConfig);
|
|
15
|
+
stream(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: ProtocolRequestOptions): AsyncGenerator<RawEvent>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 递归剥离 $ref/$defs——Gemini parametersJsonSchema 唯一不支持的 JSON Schema 特性。
|
|
19
|
+
* 其它所有标准 JSON Schema 关键字(const、oneOf、allOf、additionalProperties、
|
|
20
|
+
* prefixItems 等)均直接透传,无需转换。
|
|
21
|
+
*/
|
|
22
|
+
export declare function stripUnsupportedRefs(schema: unknown): unknown;
|
|
23
|
+
export declare function createGeminiProtocol(config: ProtocolConfig): GeminiProtocol;
|
|
24
|
+
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/protocols/gemini.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EAGT,MAAM,SAAS,CAAC;AAgBjB,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,YAAY;IAEzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAK3B,MAAM,CACX,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,QAAQ,CAAC;CA2C5B;AAkED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAa7D;AA6KD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAE3E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GLM Protocol(GLM OpenAI 兼容模式 API)
|
|
3
|
+
*
|
|
4
|
+
* API 格式与 Qwen 几乎一致(OpenAI Chat Completions),
|
|
5
|
+
* 主要区别:
|
|
6
|
+
* - thinking 参数:`"thinking": {"type": "enabled"}` (Qwen 用 `"enable_thinking": true`)
|
|
7
|
+
* - 默认 URL:https://open.bigmodel.cn/api/paas/v4
|
|
8
|
+
*/
|
|
9
|
+
import type { Protocol, ProtocolConfig, ProtocolMessage, ProtocolToolDefinition, ProtocolRequestOptions, RawEvent } from './types';
|
|
10
|
+
export declare class GlmProtocol implements Protocol {
|
|
11
|
+
readonly name = "glm";
|
|
12
|
+
private apiKey;
|
|
13
|
+
private apiUrl;
|
|
14
|
+
constructor(config: ProtocolConfig);
|
|
15
|
+
stream(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: ProtocolRequestOptions): AsyncGenerator<RawEvent>;
|
|
16
|
+
private buildRequestBody;
|
|
17
|
+
private convertMessages;
|
|
18
|
+
}
|
|
19
|
+
export declare function createGlmProtocol(config: ProtocolConfig): GlmProtocol;
|
|
20
|
+
//# sourceMappingURL=glm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glm.d.ts","sourceRoot":"","sources":["../../src/protocols/glm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EACT,MAAM,SAAS,CAAC;AAuBjB,qBAAa,WAAY,YAAW,QAAQ;IAC1C,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAK3B,MAAM,CACX,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,QAAQ,CAAC;IA0D3B,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,eAAe;CAwDxB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,CAErE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grok Protocol(xAI Responses API)
|
|
3
|
+
*
|
|
4
|
+
* xAI 与 OpenAI 使用相同的 Responses API 格式(/v1/responses),
|
|
5
|
+
* 共享消息转换和 SSE 解析逻辑,仅保留 Grok 特有的入口和参数差异。
|
|
6
|
+
*
|
|
7
|
+
* 支持直连 api.x.ai 或代理(如 llm.huyooo.com/grok)。
|
|
8
|
+
*
|
|
9
|
+
* 文档:https://docs.x.ai/developers/rest-api-reference/inference/chat
|
|
10
|
+
*/
|
|
11
|
+
import type { Protocol, ProtocolConfig, ProtocolMessage, ProtocolToolDefinition, ProtocolRequestOptions, RawEvent } from './types';
|
|
12
|
+
export declare class GrokProtocol implements Protocol {
|
|
13
|
+
readonly name = "grok";
|
|
14
|
+
private apiKey;
|
|
15
|
+
private apiUrl;
|
|
16
|
+
constructor(config: ProtocolConfig);
|
|
17
|
+
stream(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: ProtocolRequestOptions): AsyncGenerator<RawEvent>;
|
|
18
|
+
}
|
|
19
|
+
export declare function createGrokProtocol(config: ProtocolConfig): GrokProtocol;
|
|
20
|
+
//# sourceMappingURL=grok.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../src/protocols/grok.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EACT,MAAM,SAAS,CAAC;AASjB,qBAAa,YAAa,YAAW,QAAQ;IAC3C,QAAQ,CAAC,IAAI,UAAU;IAEvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAK3B,MAAM,CACX,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,QAAQ,CAAC;CAmD5B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAEvE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Protocol Layer 导出
|
|
3
|
+
*
|
|
4
|
+
* Protocol 只负责 HTTP/SSE 通信,不处理业务逻辑
|
|
5
|
+
*
|
|
6
|
+
* 每个 Protocol 对应一种 API 协议:
|
|
7
|
+
* - ArkProtocol: 火山引擎 Responses API(Doubao)
|
|
8
|
+
* - DeepSeekProtocol: DeepSeek 原生 Chat Completions API
|
|
9
|
+
* - QwenProtocol: Qwen DashScope API
|
|
10
|
+
* - GlmProtocol: GLM API
|
|
11
|
+
* - MoonshotProtocol: Kimi API
|
|
12
|
+
* - MiniMaxProtocol: MiniMax Anthropic 兼容 API
|
|
13
|
+
* - VercelGateway: GPT + Gemini + Claude(通过 Vercel AI Gateway V3 协议)
|
|
14
|
+
* - GeminiProtocol: Google Gemini 原生 API(直连 / 代理透传)
|
|
15
|
+
* - OpenAIProtocol: OpenAI Responses API(直连 / 代理透传,统一支持 GPT / Codex / o-series)
|
|
16
|
+
* - GrokProtocol: xAI Grok(独立实现,reasoning_content 思考格式)
|
|
17
|
+
*/
|
|
18
|
+
export type { ProtocolId, RawEventType, RawEvent, RawOutputPart, RawToolCall, RawTokenUsage, ProtocolMessage, ProtocolToolDefinition, ProtocolRequestOptions, Protocol, ProtocolConfig, ProtocolAttachment, ProtocolFactory, } from './types';
|
|
19
|
+
export { getBaseProtocol } from './types';
|
|
20
|
+
export { ArkProtocol, createArkProtocol } from './ark';
|
|
21
|
+
export { DeepSeekProtocol, createDeepSeekProtocol } from './deepseek';
|
|
22
|
+
export { QwenProtocol, createQwenProtocol } from './qwen';
|
|
23
|
+
export { GlmProtocol, createGlmProtocol } from './glm';
|
|
24
|
+
export { MoonshotProtocol, createMoonshotProtocol } from './moonshot';
|
|
25
|
+
export { MiniMaxProtocol, createMiniMaxProtocol } from './minimax';
|
|
26
|
+
export { createVercelGatewayProtocol } from './vercel-gateway';
|
|
27
|
+
export { AnthropicProtocol, createAnthropicProtocol } from './anthropic';
|
|
28
|
+
export { GeminiProtocol, createGeminiProtocol } from './gemini';
|
|
29
|
+
export { OpenAIProtocol, createOpenAIProtocol } from './openai';
|
|
30
|
+
export { GrokProtocol, createGrokProtocol } from './grok';
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocols/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,YAAY,EACV,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MiniMax Protocol(Anthropic Messages API 兼容)
|
|
3
|
+
*
|
|
4
|
+
* 官方推荐使用 Anthropic 格式接入 MiniMax-M2.5。
|
|
5
|
+
* 主要区别于 OpenAI 兼容协议:
|
|
6
|
+
* - SSE 使用 Anthropic 命名事件(content_block_start/delta/stop)
|
|
7
|
+
* - Thinking 始终开启,通过 thinking_delta 事件输出
|
|
8
|
+
* - 工具调用使用 tool_use/tool_result 格式
|
|
9
|
+
* - system 是顶层参数(不在 messages 内)
|
|
10
|
+
*
|
|
11
|
+
* @see https://platform.minimaxi.com/docs/api-reference/text-anthropic-api
|
|
12
|
+
*/
|
|
13
|
+
import type { Protocol, ProtocolConfig, ProtocolMessage, ProtocolToolDefinition, ProtocolRequestOptions, RawEvent } from './types';
|
|
14
|
+
export declare class MiniMaxProtocol implements Protocol {
|
|
15
|
+
readonly name = "minimax";
|
|
16
|
+
private apiKey;
|
|
17
|
+
private apiUrl;
|
|
18
|
+
constructor(config: ProtocolConfig);
|
|
19
|
+
stream(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: ProtocolRequestOptions): AsyncGenerator<RawEvent>;
|
|
20
|
+
private buildRequestBody;
|
|
21
|
+
/**
|
|
22
|
+
* 转换消息格式(ProtocolMessage → Anthropic Messages 格式)
|
|
23
|
+
*
|
|
24
|
+
* Anthropic 格式要求:
|
|
25
|
+
* - system 是顶层参数,不在 messages 里
|
|
26
|
+
* - messages 必须 user/assistant 交替
|
|
27
|
+
* - 工具结果用 tool_result 块放在 user 消息里
|
|
28
|
+
*/
|
|
29
|
+
private convertMessages;
|
|
30
|
+
/**
|
|
31
|
+
* Anthropic SSE 解析(MiniMax 兼容)
|
|
32
|
+
*
|
|
33
|
+
* Layer 1 负责 bytes → JSON,此处通过 json.type 做语义映射。
|
|
34
|
+
*/
|
|
35
|
+
private parseAnthropicSSE;
|
|
36
|
+
}
|
|
37
|
+
export declare function createMiniMaxProtocol(config: ProtocolConfig): MiniMaxProtocol;
|
|
38
|
+
//# sourceMappingURL=minimax.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimax.d.ts","sourceRoot":"","sources":["../../src/protocols/minimax.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EAET,MAAM,SAAS,CAAC;AAUjB,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,QAAQ,CAAC,IAAI,aAAa;IAE1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAK3B,MAAM,CACX,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,QAAQ,CAAC;IAsC3B,OAAO,CAAC,gBAAgB;IA6BxB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAiEvB;;;;OAIG;YACY,iBAAiB;CAgHjC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAE7E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Moonshot Protocol(Kimi K2.5 OpenAI 兼容 API)
|
|
3
|
+
*
|
|
4
|
+
* 完全兼容 OpenAI Chat Completions 格式,主要区别:
|
|
5
|
+
* - thinking 参数:`"reasoning": {"enabled": true}` + `temperature: 1.0`
|
|
6
|
+
* - 默认 URL:https://api.moonshot.cn/v1
|
|
7
|
+
* - 流式 thinking 输出:delta.reasoning_content(与 DeepSeek/GLM 一致)
|
|
8
|
+
*/
|
|
9
|
+
import type { Protocol, ProtocolConfig, ProtocolMessage, ProtocolToolDefinition, ProtocolRequestOptions, RawEvent } from './types';
|
|
10
|
+
export declare class MoonshotProtocol implements Protocol {
|
|
11
|
+
readonly name = "moonshot";
|
|
12
|
+
private apiKey;
|
|
13
|
+
private apiUrl;
|
|
14
|
+
constructor(config: ProtocolConfig);
|
|
15
|
+
stream(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: ProtocolRequestOptions): AsyncGenerator<RawEvent>;
|
|
16
|
+
private buildRequestBody;
|
|
17
|
+
private convertMessages;
|
|
18
|
+
}
|
|
19
|
+
export declare function createMoonshotProtocol(config: ProtocolConfig): MoonshotProtocol;
|
|
20
|
+
//# sourceMappingURL=moonshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moonshot.d.ts","sourceRoot":"","sources":["../../src/protocols/moonshot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EACT,MAAM,SAAS,CAAC;AAuBjB,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,IAAI,cAAc;IAE3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAK3B,MAAM,CACX,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,QAAQ,CAAC;IAqC3B,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,eAAe;CAwDxB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAE/E"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer 2: OpenAI 兼容 SSE 语义映射器
|
|
3
|
+
*
|
|
4
|
+
* 消费 Layer 1 的 JSON 流,映射为 RawEvent。
|
|
5
|
+
* 通过 config 注入协议差异,零 if/else 分支。
|
|
6
|
+
*
|
|
7
|
+
* 共享逻辑:
|
|
8
|
+
* - choices[0].delta.content → text_delta
|
|
9
|
+
* - delta.tool_calls → tool_call_start / tool_call_done
|
|
10
|
+
* - thinking 状态机(首段 text 自动关闭 thinking)
|
|
11
|
+
* - [流结束] tool_call_done 发射 + done 事件
|
|
12
|
+
*
|
|
13
|
+
* 使用方:deepseek, glm, moonshot, grok, openai
|
|
14
|
+
*/
|
|
15
|
+
import type { RawEvent, RawTokenUsage } from './types';
|
|
16
|
+
export interface OpenAIStreamConfig {
|
|
17
|
+
/** 从 delta 提取 thinking 内容(不提供 = 不支持 thinking) */
|
|
18
|
+
thinkingField?: (delta: Record<string, unknown>) => string | undefined;
|
|
19
|
+
/** 厂商特有的 finish_reason → error 映射(列出视为 error 的 reason) */
|
|
20
|
+
errorFinishReasons?: string[];
|
|
21
|
+
/** 协议名(用于错误消息) */
|
|
22
|
+
protocolName?: string;
|
|
23
|
+
/** 自定义 usage 提取(不提供则用默认 OpenAI 格式) */
|
|
24
|
+
parseUsage?: (usage: Record<string, unknown>) => RawTokenUsage;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 将 OpenAI 兼容的 JSON 流映射为 RawEvent 流
|
|
28
|
+
*
|
|
29
|
+
* @param jsonStream - Layer 1 的 readSSEJsonStream 输出
|
|
30
|
+
* @param config - 协议差异配置(可选,不传则为标准 OpenAI 行为)
|
|
31
|
+
*/
|
|
32
|
+
export declare function mapOpenAIStream(jsonStream: AsyncGenerator<Record<string, unknown>>, config?: OpenAIStreamConfig): AsyncGenerator<RawEvent>;
|
|
33
|
+
//# sourceMappingURL=openai-sse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-sse.d.ts","sourceRoot":"","sources":["../../src/protocols/openai-sse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAe,aAAa,EAAE,MAAM,SAAS,CAAC;AAOpE,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACvE,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,aAAa,CAAC;CAChE;AA8BD;;;;;GAKG;AACH,wBAAuB,eAAe,CACpC,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACnD,MAAM,CAAC,EAAE,kBAAkB,GAC1B,cAAc,CAAC,QAAQ,CAAC,CAqF1B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Protocol(Responses API)
|
|
3
|
+
*
|
|
4
|
+
* 使用 /v1/responses 端点,统一支持所有 OpenAI 模型(GPT、Codex、o-series)。
|
|
5
|
+
*
|
|
6
|
+
* 支持直连或代理(如 llm.huyooo.com):
|
|
7
|
+
* - 直连:apiUrl = https://api.openai.com/v1,Key 走 Authorization
|
|
8
|
+
* - 代理:apiUrl = https://llm.huyooo.com/openai,Key 为代理认证
|
|
9
|
+
*/
|
|
10
|
+
import type { Protocol, ProtocolConfig, ProtocolMessage, ProtocolToolDefinition, ProtocolRequestOptions, RawEvent } from './types';
|
|
11
|
+
export declare class OpenAIProtocol implements Protocol {
|
|
12
|
+
readonly name = "openai";
|
|
13
|
+
private apiKey;
|
|
14
|
+
private apiUrl;
|
|
15
|
+
constructor(config: ProtocolConfig);
|
|
16
|
+
stream(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: ProtocolRequestOptions): AsyncGenerator<RawEvent>;
|
|
17
|
+
}
|
|
18
|
+
export declare function createOpenAIProtocol(config: ProtocolConfig): OpenAIProtocol;
|
|
19
|
+
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/protocols/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EACT,MAAM,SAAS,CAAC;AASjB,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,YAAY;IAEzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAK3B,MAAM,CACX,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,QAAQ,CAAC;CAmD5B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAE3E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qwen Protocol(DashScope 原生 API)
|
|
3
|
+
*
|
|
4
|
+
* 使用 DashScope 原生端点,不依赖 OpenAI 兼容模式。
|
|
5
|
+
* - text-only 模型: /api/v1/services/aigc/text-generation/generation
|
|
6
|
+
* - multimodal 模型: /api/v1/services/aigc/multimodal-generation/generation
|
|
7
|
+
*
|
|
8
|
+
* qwen3.5-* 和 *-vl-* 系列归为 multimodal,其余走 text-only 端点。
|
|
9
|
+
*/
|
|
10
|
+
import type { Protocol, ProtocolConfig, ProtocolMessage, ProtocolToolDefinition, ProtocolRequestOptions, RawEvent } from './types';
|
|
11
|
+
export declare function extractIncrementalText(nextText: string, previousText: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Qwen Protocol 实现(DashScope 原生 API)
|
|
14
|
+
*/
|
|
15
|
+
export declare class QwenProtocol implements Protocol {
|
|
16
|
+
readonly name = "qwen";
|
|
17
|
+
private apiKey;
|
|
18
|
+
private apiUrl;
|
|
19
|
+
constructor(config: ProtocolConfig);
|
|
20
|
+
stream(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: ProtocolRequestOptions): AsyncGenerator<RawEvent>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 创建 Qwen Protocol
|
|
24
|
+
*/
|
|
25
|
+
export declare function createQwenProtocol(config: ProtocolConfig): QwenProtocol;
|
|
26
|
+
//# sourceMappingURL=qwen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qwen.d.ts","sourceRoot":"","sources":["../../src/protocols/qwen.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EAET,MAAM,SAAS,CAAC;AAmCjB,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAQrF;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,QAAQ;IAC3C,QAAQ,CAAC,IAAI,UAAU;IAEvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,cAAc;IAK3B,MAAM,CACX,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAAC,QAAQ,CAAC;CAwC5B;AAuOD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAEvE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Responses API 共享逻辑
|
|
3
|
+
*
|
|
4
|
+
* OpenAI 和 xAI (Grok) 均使用相同的 Responses API 格式,
|
|
5
|
+
* 此模块提取共享的消息转换和 SSE 事件解析逻辑。
|
|
6
|
+
*
|
|
7
|
+
* 使用方:openai.ts, grok.ts
|
|
8
|
+
*/
|
|
9
|
+
import type { ProtocolMessage, ProtocolToolDefinition, RawEvent } from './types';
|
|
10
|
+
/** 将 ProtocolMessage[] 转换为 Responses API 的 input 格式 */
|
|
11
|
+
export declare function convertToResponsesInput(messages: ProtocolMessage[]): unknown[];
|
|
12
|
+
/** 将 ProtocolToolDefinition[] 转换为 Responses API 的 tools 格式 */
|
|
13
|
+
export declare function convertToResponsesTools(tools: ProtocolToolDefinition[]): unknown[];
|
|
14
|
+
export interface ResponsesStreamConfig {
|
|
15
|
+
/** 协议名(用于错误消息,如 "OpenAI"、"Grok") */
|
|
16
|
+
protocolName: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 解析 Responses API 的 SSE 事件流,映射为 RawEvent
|
|
20
|
+
*
|
|
21
|
+
* 处理的事件:
|
|
22
|
+
* - response.output_item.added (message / function_call / reasoning)
|
|
23
|
+
* - response.output_text.delta → text_delta
|
|
24
|
+
* - response.function_call_arguments.delta → tool_call_delta
|
|
25
|
+
* - response.reasoning_summary_text.delta → thinking_delta
|
|
26
|
+
* - response.completed → usage
|
|
27
|
+
* - response.failed → error
|
|
28
|
+
*/
|
|
29
|
+
export declare function mapResponsesStream(reader: ReadableStreamDefaultReader<Uint8Array>, config: ResponsesStreamConfig): AsyncGenerator<RawEvent>;
|
|
30
|
+
//# sourceMappingURL=responses-sse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses-sse.d.ts","sourceRoot":"","sources":["../../src/protocols/responses-sse.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,QAAQ,EAGT,MAAM,SAAS,CAAC;AAKjB,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CAyD9E;AAID,8DAA8D;AAC9D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,EAAE,GAAG,OAAO,EAAE,CAOlF;AAID,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAuB,kBAAkB,CACvC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,EAC/C,MAAM,EAAE,qBAAqB,GAC5B,cAAc,CAAC,QAAQ,CAAC,CA8G1B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer 1: 通用 SSE 字节流读取器
|
|
3
|
+
*
|
|
4
|
+
* 纯机械逻辑:bytes → lines → JSON objects
|
|
5
|
+
* 不含任何协议语义,所有协议通用。
|
|
6
|
+
*
|
|
7
|
+
* 处理:
|
|
8
|
+
* - 字节解码 + 缓冲区拼接
|
|
9
|
+
* - 行分割
|
|
10
|
+
* - data: 前缀提取
|
|
11
|
+
* - [DONE] 信号跳过
|
|
12
|
+
* - JSON.parse
|
|
13
|
+
*
|
|
14
|
+
* 忽略:event:、id:、:HTTP_STATUS 等非 data 行
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* 将 ReadableStream 转换为 JSON 对象流
|
|
18
|
+
*
|
|
19
|
+
* 所有协议共用此函数,消除重复的 buffer/decode/split/parse 逻辑。
|
|
20
|
+
* 消费方根据 JSON 结构自行做语义映射。
|
|
21
|
+
*/
|
|
22
|
+
export declare function readSSEJsonStream(reader: ReadableStreamDefaultReader<Uint8Array>): AsyncGenerator<Record<string, unknown>>;
|
|
23
|
+
//# sourceMappingURL=sse-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse-reader.d.ts","sourceRoot":"","sources":["../../src/protocols/sse-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;;;GAKG;AACH,wBAAuB,iBAAiB,CACtC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAC9C,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyBzC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface ParseProtocolToolArgumentsOptions {
|
|
2
|
+
protocol: string;
|
|
3
|
+
toolCallId: string;
|
|
4
|
+
toolName: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function parseProtocolToolArguments(argumentsJson: string, options: ParseProtocolToolArgumentsOptions): Record<string, unknown>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=tool-arguments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-arguments.d.ts","sourceRoot":"","sources":["../../src/protocols/tool-arguments.ts"],"names":[],"mappings":"AAAA,UAAU,iCAAiC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,iCAAiC,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Protocol Layer 类型定义
|
|
3
|
+
*
|
|
4
|
+
* Protocol 只负责:
|
|
5
|
+
* 1. HTTP 请求发送
|
|
6
|
+
* 2. SSE 流解析
|
|
7
|
+
* 3. 认证处理
|
|
8
|
+
*
|
|
9
|
+
* 不负责:
|
|
10
|
+
* - thinking 格式转换(由 Family 处理)
|
|
11
|
+
* - 搜索行为差异(由 Family 处理)
|
|
12
|
+
* - 工具调用格式差异(由 Family 处理)
|
|
13
|
+
*/
|
|
14
|
+
import type { ModelFamilyConfig } from '../families';
|
|
15
|
+
/**
|
|
16
|
+
* 内置协议类型标识
|
|
17
|
+
*
|
|
18
|
+
* 默认带版本 _v1,当上游 API 有 breaking change 时新增 _v2、_v3 等。
|
|
19
|
+
*/
|
|
20
|
+
export type ProtocolId = 'ark_v1' | 'deepseek_v1' | 'qwen_v1' | 'glm_v1' | 'moonshot_v1' | 'minimax_v1' | 'vercel_gateway_v1' | 'anthropic_v1' | 'gemini_v1' | 'openai_v1' | 'grok_v1';
|
|
21
|
+
/** 从 ProtocolId 提取 base 协议(如 anthropic_v1 → anthropic) */
|
|
22
|
+
export declare function getBaseProtocol(protocol: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Protocol 原始事件类型
|
|
25
|
+
*
|
|
26
|
+
* Protocol 层产出的事件,Orchestrator 直接消费
|
|
27
|
+
*/
|
|
28
|
+
export type RawEventType = 'text_delta' | 'thinking_delta' | 'thinking_done' | 'tool_call_start' | 'tool_call_delta' | 'tool_call_done' | 'done' | 'error';
|
|
29
|
+
/** 工具调用 */
|
|
30
|
+
export interface RawToolCall {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
arguments: string;
|
|
34
|
+
/** Gemini 需要的 thoughtSignature(用于工具调用循环) */
|
|
35
|
+
thoughtSignature?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Protocol 原始事件
|
|
39
|
+
*/
|
|
40
|
+
/** Token 使用统计(Protocol 层) */
|
|
41
|
+
export interface RawTokenUsage {
|
|
42
|
+
promptTokens?: number;
|
|
43
|
+
completionTokens?: number;
|
|
44
|
+
totalTokens?: number;
|
|
45
|
+
reasoningTokens?: number;
|
|
46
|
+
cachedTokens?: number;
|
|
47
|
+
}
|
|
48
|
+
/** 输出内容片段(用于图片生成、多模态结果等非纯文本产物) */
|
|
49
|
+
export type RawOutputPart = {
|
|
50
|
+
type: 'text';
|
|
51
|
+
text: string;
|
|
52
|
+
} | {
|
|
53
|
+
type: 'inline_data';
|
|
54
|
+
mimeType: string;
|
|
55
|
+
data: string;
|
|
56
|
+
};
|
|
57
|
+
export interface RawEvent {
|
|
58
|
+
type: RawEventType;
|
|
59
|
+
delta?: string;
|
|
60
|
+
thinkingSignature?: string;
|
|
61
|
+
toolCall?: Partial<RawToolCall>;
|
|
62
|
+
finishReason?: 'stop' | 'tool_calls' | 'length' | 'error';
|
|
63
|
+
/** Token 使用统计(done 事件携带) */
|
|
64
|
+
usage?: RawTokenUsage;
|
|
65
|
+
/** 完整输出片段(done 事件携带;用于图片生成等场景) */
|
|
66
|
+
outputParts?: RawOutputPart[];
|
|
67
|
+
error?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Protocol 请求消息(标准化格式)
|
|
71
|
+
*/
|
|
72
|
+
export interface ProtocolMessage {
|
|
73
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
74
|
+
content: string;
|
|
75
|
+
/** 图片列表(base64 或 URL) */
|
|
76
|
+
images?: string[];
|
|
77
|
+
/** 多模态文件附件。Gemini 使用 fileData 引用 Files API URI。 */
|
|
78
|
+
attachments?: ProtocolAttachment[];
|
|
79
|
+
/** 思考内容(assistant 消息,工具调用循环需回传给 API) */
|
|
80
|
+
thinkingContent?: string;
|
|
81
|
+
/** 思考签名(Anthropic extended thinking 的 signature,工具调用循环需回传) */
|
|
82
|
+
thinkingSignature?: string;
|
|
83
|
+
/** 工具调用(assistant 消息) */
|
|
84
|
+
toolCalls?: RawToolCall[];
|
|
85
|
+
/** 工具调用 ID(tool 消息) */
|
|
86
|
+
toolCallId?: string;
|
|
87
|
+
/** 工具名称(tool 消息,Gemini 需要) */
|
|
88
|
+
toolName?: string;
|
|
89
|
+
}
|
|
90
|
+
export type ProtocolAttachment = {
|
|
91
|
+
type: 'file_data';
|
|
92
|
+
mimeType: string;
|
|
93
|
+
fileUri: string;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Protocol 工具定义(简化格式)
|
|
97
|
+
*/
|
|
98
|
+
import type { JsonSchemaObject } from '../types';
|
|
99
|
+
export interface ProtocolToolDefinition {
|
|
100
|
+
name: string;
|
|
101
|
+
description: string;
|
|
102
|
+
parameters: JsonSchemaObject;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Protocol 请求选项
|
|
106
|
+
*/
|
|
107
|
+
export interface ProtocolRequestOptions {
|
|
108
|
+
/** 模型 ID */
|
|
109
|
+
model: string;
|
|
110
|
+
/** 模型家族配置 */
|
|
111
|
+
familyConfig: ModelFamilyConfig;
|
|
112
|
+
/** 最大输出 token(从 ModelConfig.maxOutputTokens 直传) */
|
|
113
|
+
maxOutputTokens: number;
|
|
114
|
+
/** 是否启用 thinking */
|
|
115
|
+
enableThinking: boolean;
|
|
116
|
+
/** 中断信号 */
|
|
117
|
+
signal: AbortSignal;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Protocol 配置
|
|
121
|
+
*/
|
|
122
|
+
export interface ProtocolConfig {
|
|
123
|
+
apiKey: string;
|
|
124
|
+
apiUrl?: string;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Protocol 接口
|
|
128
|
+
*
|
|
129
|
+
* 只负责 HTTP/SSE 通信,不处理任何业务逻辑
|
|
130
|
+
*/
|
|
131
|
+
export interface Protocol {
|
|
132
|
+
/** 协议名称 */
|
|
133
|
+
readonly name: string;
|
|
134
|
+
/**
|
|
135
|
+
* 发送请求并返回原始事件流
|
|
136
|
+
*
|
|
137
|
+
* @param messages 消息列表
|
|
138
|
+
* @param tools 工具定义
|
|
139
|
+
* @param options 请求选项
|
|
140
|
+
* @returns 原始事件流
|
|
141
|
+
*/
|
|
142
|
+
stream(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: ProtocolRequestOptions): AsyncGenerator<RawEvent>;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Protocol 工厂函数类型
|
|
146
|
+
*/
|
|
147
|
+
export type ProtocolFactory = (config: ProtocolConfig) => Protocol;
|
|
148
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/protocols/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vercel AI Gateway Protocol(LanguageModelV3)
|
|
3
|
+
*
|
|
4
|
+
* 调用 Vercel AI Gateway 内部协议端点 /v3/ai/language-model,
|
|
5
|
+
* 使用 LanguageModelV3 格式,完整保留各厂商原生能力:
|
|
6
|
+
* - Gemini: thinking + thoughtSignature(tool call 循环必需)
|
|
7
|
+
* - GPT: reasoning summary
|
|
8
|
+
* - Claude: reasoning
|
|
9
|
+
*
|
|
10
|
+
* 所有厂商返回统一的事件格式(reasoning-delta / text-delta / tool-call 等),
|
|
11
|
+
* 厂商特有字段通过 providerMetadata 透传。
|
|
12
|
+
*/
|
|
13
|
+
import type { Protocol, ProtocolConfig } from './types';
|
|
14
|
+
export declare function createVercelGatewayProtocol(config: ProtocolConfig): Protocol;
|
|
15
|
+
//# sourceMappingURL=vercel-gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercel-gateway.d.ts","sourceRoot":"","sources":["../../src/protocols/vercel-gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EAMf,MAAM,SAAS,CAAC;AA+WjB,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAE5E"}
|