@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,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter 模块导出(barrel)
|
|
3
|
+
*
|
|
4
|
+
* - ModelAdapter:按 LLMConfig 路由协议、流式消费 RawEvent
|
|
5
|
+
* - model-options:从前端 LLMConfig 构建模型列表与上下文展示配置
|
|
6
|
+
*/
|
|
7
|
+
export { ModelAdapter } from './model-adapter';
|
|
8
|
+
export { buildModelOptions, getModelContextConfigFromLLM, formatContextWindow, formatPricing, } from './model-options';
|
|
9
|
+
export type { ModelOption, ModelContextConfig, } from './model-options';
|
|
10
|
+
export type { ProviderAdapter, AdapterConfig, StreamOnceOptions, } from './types';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapter/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,WAAW,EACX,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModelAdapter - 模型适配器(Model 中心)
|
|
3
|
+
*
|
|
4
|
+
* 直接使用 LLMConfig.models 的 ModelRoute 链,按顺序尝试,支持降级。
|
|
5
|
+
*/
|
|
6
|
+
import type { ProtocolMessage, ProtocolToolDefinition, RawEvent } from '../protocols/types';
|
|
7
|
+
import { type ModelFamilyConfig } from '../families';
|
|
8
|
+
import type { ProviderAdapter, StreamOnceOptions } from './types';
|
|
9
|
+
import type { LLMConfig } from '../llm-config';
|
|
10
|
+
export declare class ModelAdapter implements ProviderAdapter {
|
|
11
|
+
readonly name = "model";
|
|
12
|
+
private llmConfig;
|
|
13
|
+
/** 合并内置 + 自定义协议工厂 */
|
|
14
|
+
private protocolFactories;
|
|
15
|
+
constructor(config: LLMConfig);
|
|
16
|
+
/** 启动时校验:所有模型的 family 必须可解析,失败立即 throw */
|
|
17
|
+
private validateModels;
|
|
18
|
+
private createProtocolForRoute;
|
|
19
|
+
get supportedModels(): string[];
|
|
20
|
+
supportsModel(model: string): boolean;
|
|
21
|
+
getModelFamilyConfig(model: string): ModelFamilyConfig | undefined;
|
|
22
|
+
streamOnce(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: StreamOnceOptions): AsyncGenerator<RawEvent>;
|
|
23
|
+
private streamWithFallback;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=model-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/model-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAGV,eAAe,EACf,sBAAsB,EACtB,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAY5B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,eAAe,CAAC;AAqB3D,qBAAa,YAAa,YAAW,eAAe;IAClD,QAAQ,CAAC,IAAI,WAAW;IACxB,OAAO,CAAC,SAAS,CAAY;IAC7B,qBAAqB;IACrB,OAAO,CAAC,iBAAiB,CAAuD;gBAEpE,MAAM,EAAE,SAAS;IAQ7B,0CAA0C;IAC1C,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,sBAAsB;IAQ9B,IAAI,eAAe,IAAI,MAAM,EAAE,CAE9B;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIrC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAM3D,UAAU,CACf,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,iBAAiB,GACzB,cAAc,CAAC,QAAQ,CAAC;YAOZ,kBAAkB;CAqElC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 模型选项与上下文展示配置
|
|
3
|
+
*
|
|
4
|
+
* - 从 LLMConfig 推导前端下拉模型列表(capabilities、定价文案、上下文窗口)
|
|
5
|
+
* - formatPricing / formatContextWindow:人类可读展示
|
|
6
|
+
*/
|
|
7
|
+
import type { LLMConfig, ModelPricing } from '../llm-config';
|
|
8
|
+
/** 将 ModelPricing 格式化为展示用字符串数组:["¥2/M 输入", "¥3/M 输出"] */
|
|
9
|
+
export declare function formatPricing(pricing: ModelPricing): string[];
|
|
10
|
+
/** 将 token 数自动推导为人类可读格式:"256K" / "1M" / "10M" */
|
|
11
|
+
export declare function formatContextWindow(tokens: number): string;
|
|
12
|
+
export interface ModelOption {
|
|
13
|
+
modelId: string;
|
|
14
|
+
displayName: string;
|
|
15
|
+
supportsThinking: boolean;
|
|
16
|
+
thinkingAlwaysOn?: boolean;
|
|
17
|
+
supportsVision: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* 模型上下文窗口(token)。
|
|
20
|
+
* 前端据此为 @ 资源区块、历史消息等分配 token 预算,避免拍脑袋硬编码。
|
|
21
|
+
* 与 {@link ModelContextConfig.contextWindowTokens} 来自同一 ModelConfig 字段。
|
|
22
|
+
*/
|
|
23
|
+
contextWindowTokens: number;
|
|
24
|
+
/**
|
|
25
|
+
* 单次生成允许的最大输出 token。
|
|
26
|
+
* 前端在估算可用 prompt 预算时需要从 context window 中扣除这部分。
|
|
27
|
+
*/
|
|
28
|
+
maxOutputTokens: number;
|
|
29
|
+
tooltip?: {
|
|
30
|
+
features?: string[];
|
|
31
|
+
cost?: string[];
|
|
32
|
+
description?: string;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 从 LLMConfig 动态构建前端模型列表
|
|
37
|
+
*
|
|
38
|
+
* 只返回 visible !== false 的模型。
|
|
39
|
+
* 所有元数据只从 ModelConfig + familyConfig 取,不查预设库。
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildModelOptions(config: LLMConfig): ModelOption[];
|
|
42
|
+
export interface ModelContextConfig {
|
|
43
|
+
contextWindowTokens: number;
|
|
44
|
+
maxOutputTokens: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 获取模型的 context 配置(从 LLMConfig 感知)
|
|
48
|
+
*
|
|
49
|
+
* 只从 ModelConfig 取,不做注册表 fallback。
|
|
50
|
+
* contextWindowTokens 和 maxOutputTokens 均为必填字段。
|
|
51
|
+
*/
|
|
52
|
+
export declare function getModelContextConfigFromLLM(modelId: string, config: LLMConfig): ModelContextConfig | undefined;
|
|
53
|
+
//# sourceMappingURL=model-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-options.d.ts","sourceRoot":"","sources":["../../src/adapter/model-options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,YAAY,EAAE,MAAM,eAAe,CAAC;AAK1E,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAkB7D;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAU1D;AAID,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,EAAE,CAsClE;AAID,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,GAChB,kBAAkB,GAAG,SAAS,CAQhC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter 层类型定义
|
|
3
|
+
*
|
|
4
|
+
* 仅包含适配器接口和配置,不含编排器类型。
|
|
5
|
+
* 编排器类型定义在 orchestrator/types.ts
|
|
6
|
+
*/
|
|
7
|
+
import type { RawEvent, ProtocolMessage, ProtocolToolDefinition } from '../protocols/types';
|
|
8
|
+
export interface AdapterConfig {
|
|
9
|
+
apiKey: string;
|
|
10
|
+
apiUrl?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface StreamOnceOptions {
|
|
13
|
+
model: string;
|
|
14
|
+
enableThinking?: boolean;
|
|
15
|
+
signal: AbortSignal;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Provider Adapter 接口
|
|
19
|
+
*
|
|
20
|
+
* 职责:协议路由 + 消息格式转换 + 返回 RawEvent 流
|
|
21
|
+
*/
|
|
22
|
+
export interface ProviderAdapter {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
readonly supportedModels: string[];
|
|
25
|
+
streamOnce(messages: ProtocolMessage[], tools: ProtocolToolDefinition[], options: StreamOnceOptions): AsyncGenerator<RawEvent>;
|
|
26
|
+
supportsModel(model: string): boolean;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IAEnC,UAAU,CACR,QAAQ,EAAE,eAAe,EAAE,EAC3B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,OAAO,EAAE,iBAAiB,GACzB,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE5B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACvC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChatRuntime - 聊天运行时
|
|
3
|
+
*
|
|
4
|
+
* 新架构(ToolRuntimeManager 工具运行时管理):
|
|
5
|
+
* - Core Runtime:`tools` 配置注入的内核 in-process 能力
|
|
6
|
+
* - Local Assets:由 asset 管理链创建并扫描的 `tools/parts/skills/mcp-servers`
|
|
7
|
+
* - External Providers:外部 MCP 接入层
|
|
8
|
+
* - ModelAdapter / ChatOrchestrator / ToolRuntimeManager 负责把三层能力收口到运行时
|
|
9
|
+
*/
|
|
10
|
+
import type { AgentConfig, ToolExecutor, ChatOptions, DataEngineContext, ToolExecutionAuditHooks } from './types';
|
|
11
|
+
import type { ChatEvent } from './events';
|
|
12
|
+
import type { ModelFamilyConfig } from './families';
|
|
13
|
+
import type { ModelOption } from './adapter';
|
|
14
|
+
import type { McpConnectionInfo, ToolRuntimeManager } from './tool-manager';
|
|
15
|
+
import type { LLMConfig } from './llm-config';
|
|
16
|
+
import type { ToolExecutionHooks } from './orchestrator/types';
|
|
17
|
+
/** 运行时配置 */
|
|
18
|
+
export interface RuntimeConfig {
|
|
19
|
+
llmConfig: LLMConfig;
|
|
20
|
+
cwd: string;
|
|
21
|
+
maxIterations?: number;
|
|
22
|
+
maxDurationMs?: number;
|
|
23
|
+
maxToolCalls?: number;
|
|
24
|
+
maxTotalTokens?: number;
|
|
25
|
+
dataEngine?: DataEngineContext;
|
|
26
|
+
audit?: ToolExecutionAuditHooks;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 聊天运行时
|
|
30
|
+
*
|
|
31
|
+
* 职责:
|
|
32
|
+
* 1. 管理 ModelAdapter(模型适配器)
|
|
33
|
+
* 2. 使用 ChatOrchestrator 统一处理工具调用
|
|
34
|
+
* 3. 通过 ToolRuntimeManager 统一管理所有工具
|
|
35
|
+
*/
|
|
36
|
+
export declare class ChatRuntime {
|
|
37
|
+
private config;
|
|
38
|
+
private adapter;
|
|
39
|
+
private orchestrator;
|
|
40
|
+
private toolExecutor;
|
|
41
|
+
private abortController;
|
|
42
|
+
private toolRuntimeManager;
|
|
43
|
+
private toolConfig;
|
|
44
|
+
private mcpConfigs;
|
|
45
|
+
private initialized;
|
|
46
|
+
constructor(config: AgentConfig, toolExecutor: ToolExecutor);
|
|
47
|
+
/** 异步初始化工具(懒加载,允许桥接层显式触发) */
|
|
48
|
+
private asyncInit;
|
|
49
|
+
getModelFamilyConfig(model: string): ModelFamilyConfig | undefined;
|
|
50
|
+
getModelRouteInfo(model: string): {
|
|
51
|
+
available: boolean;
|
|
52
|
+
familyConfig?: ModelFamilyConfig;
|
|
53
|
+
};
|
|
54
|
+
private buildSystemPrompt;
|
|
55
|
+
private createToolContext;
|
|
56
|
+
executeTool(name: string, args: Record<string, unknown>, signal?: AbortSignal, hooks?: ToolExecutionHooks): Promise<import('./types').ToolExecuteResult>;
|
|
57
|
+
private getToolDefinitions;
|
|
58
|
+
/** 查找第一个搜索工具(通过 ui.name 以 _search 结尾标识) */
|
|
59
|
+
private findSearchTool;
|
|
60
|
+
/** 获取所有搜索工具名(enableWebSearch 开启时 forceInclude 用) */
|
|
61
|
+
private getSearchToolNames;
|
|
62
|
+
getAllTools(): Array<{
|
|
63
|
+
name: string;
|
|
64
|
+
description: string;
|
|
65
|
+
displayName: string;
|
|
66
|
+
assetId: string;
|
|
67
|
+
source: import('./governance').AssetSource;
|
|
68
|
+
category: string;
|
|
69
|
+
parameters?: import('./types').JsonSchemaObject;
|
|
70
|
+
outputSchema?: import('./types').JsonSchemaObject;
|
|
71
|
+
resolvedOutputSchema?: import('./types').JsonSchemaObject;
|
|
72
|
+
errorSchema?: import('./types').JsonSchemaObject;
|
|
73
|
+
approvalPolicy?: import('./governance').AssetApprovalPolicy;
|
|
74
|
+
sideEffectLevel?: import('./governance').AssetSideEffectLevel;
|
|
75
|
+
hostDependency?: import('./governance').AssetHostDependency;
|
|
76
|
+
}>;
|
|
77
|
+
/** 显式确保工具完成初始化,供 bridge / 宿主在聊天前读取工具列表使用 */
|
|
78
|
+
ensureInitialized(): Promise<void>;
|
|
79
|
+
/** 获取 ToolRuntimeManager(供外部 assetManager 等集成使用) */
|
|
80
|
+
getToolRuntimeManager(): ToolRuntimeManager;
|
|
81
|
+
/**
|
|
82
|
+
* 聊天入口
|
|
83
|
+
*/
|
|
84
|
+
chat(message: string, options?: ChatOptions, images?: string[]): AsyncGenerator<ChatEvent>;
|
|
85
|
+
abort(): void;
|
|
86
|
+
setCwd(dir: string): void;
|
|
87
|
+
getConfig(): RuntimeConfig;
|
|
88
|
+
getSupportedModels(): ModelOption[];
|
|
89
|
+
getMcpConnections(): McpConnectionInfo[];
|
|
90
|
+
/**
|
|
91
|
+
* 创建内置 summarize 实现
|
|
92
|
+
*/
|
|
93
|
+
private createDefaultSummarize;
|
|
94
|
+
destroy(): Promise<void>;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=chat-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-runtime.d.ts","sourceRoot":"","sources":["../src/chat-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 常量定义
|
|
3
|
+
*
|
|
4
|
+
* 非模型相关的常量。模型数据唯一来源为 LLMConfig。
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_ARK_URL = "https://ark.cn-beijing.volces.com/api/v3";
|
|
7
|
+
export declare const DEFAULT_AIMLAPI_URL = "https://api.aimlapi.com/v1";
|
|
8
|
+
/** 默认模型 ID(仅用于应用层未指定时的 fallback,不是唯一真相源) */
|
|
9
|
+
export declare const DEFAULT_MODEL = "doubao-seed-2-0-pro-260215";
|
|
10
|
+
/** agent 模式提示词(核心库通用,不引用具体工具名) */
|
|
11
|
+
export declare const AGENT_MODE_PROMPT = "\u4F60\u662F\u4E00\u4E2A\u4E13\u4E1A\u7684 AI \u52A9\u624B\uFF0C\u5177\u5907\u81EA\u4E3B\u6267\u884C\u590D\u6742\u4EFB\u52A1\u7684\u80FD\u529B\u3002\n\n## \u5DE5\u4F5C\u65B9\u5F0F\n1. **\u5206\u6790\u4EFB\u52A1**\uFF1A\u7406\u89E3\u7528\u6237\u9700\u6C42\uFF0C\u62C6\u89E3\u4E3A\u53EF\u6267\u884C\u7684\u6B65\u9AA4\n2. **\u9010\u6B65\u6267\u884C**\uFF1A\u6309\u6B65\u9AA4\u4F9D\u6B21\u8C03\u7528\u5DE5\u5177\uFF0C\u68C0\u67E5\u6BCF\u6B65\u7ED3\u679C\n3. **\u81EA\u6211\u9A8C\u8BC1**\uFF1A\u5DE5\u5177\u6267\u884C\u540E\u68C0\u67E5\u7ED3\u679C\u662F\u5426\u7B26\u5408\u9884\u671F\n4. **\u81EA\u52A8\u7EA0\u6B63**\uFF1A\u53D1\u73B0\u95EE\u9898\u65F6\u5C1D\u8BD5\u66FF\u4EE3\u65B9\u6848\uFF0C\u4E0D\u8981\u505C\u4E0B\u6765\u95EE\u7528\u6237\n5. **\u603B\u7ED3\u6C47\u62A5**\uFF1A\u6240\u6709\u6B65\u9AA4\u5B8C\u6210\u540E\uFF0C\u7ED9\u51FA\u7B80\u6D01\u7684\u7ED3\u679C\u603B\u7ED3\n\n## \u8F93\u51FA\u89C4\u8303\n- \u4E0D\u4F7F\u7528\u8868\u60C5\u7B26\u53F7\uFF08emoji\uFF09\uFF0C\u9664\u975E\u7528\u6237\u8981\u6C42\n- \u4F7F\u7528 Markdown \u683C\u5F0F\u7EC4\u7EC7\u5185\u5BB9\n- \u4EE3\u7801\u5757\u4F7F\u7528\u6B63\u786E\u7684\u8BED\u8A00\u6807\u8BC6";
|
|
12
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,eAAO,MAAM,eAAe,6CAA6C,CAAC;AAC1E,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAIhE,4CAA4C;AAC5C,eAAO,MAAM,aAAa,+BAA+B,CAAC;AAI1D,kCAAkC;AAClC,eAAO,MAAM,iBAAiB,qoCAYf,CAAC"}
|