@huyooo/ai-chat-core 0.2.44 → 0.3.2

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.
Files changed (247) hide show
  1. package/dist/adapter/index.d.ts +11 -0
  2. package/dist/adapter/index.d.ts.map +1 -0
  3. package/dist/adapter/model-adapter.d.ts +25 -0
  4. package/dist/adapter/model-adapter.d.ts.map +1 -0
  5. package/dist/adapter/model-options.d.ts +53 -0
  6. package/dist/adapter/model-options.d.ts.map +1 -0
  7. package/dist/adapter/types.d.ts +28 -0
  8. package/dist/adapter/types.d.ts.map +1 -0
  9. package/dist/chat-runtime.d.ts +96 -0
  10. package/dist/chat-runtime.d.ts.map +1 -0
  11. package/dist/constants.d.ts +12 -0
  12. package/dist/constants.d.ts.map +1 -0
  13. package/dist/events.d.ts +605 -1
  14. package/dist/events.d.ts.map +1 -0
  15. package/dist/events.js +1 -1
  16. package/dist/extension/index.d.ts +9 -0
  17. package/dist/extension/index.d.ts.map +1 -0
  18. package/dist/extension/types.d.ts +46 -0
  19. package/dist/extension/types.d.ts.map +1 -0
  20. package/dist/families/index.d.ts +11 -0
  21. package/dist/families/index.d.ts.map +1 -0
  22. package/dist/families/presets.d.ts +31 -0
  23. package/dist/families/presets.d.ts.map +1 -0
  24. package/dist/families/resolver.d.ts +11 -0
  25. package/dist/families/resolver.d.ts.map +1 -0
  26. package/dist/families/types.d.ts +29 -0
  27. package/dist/families/types.d.ts.map +1 -0
  28. package/dist/governance/command-safety.d.ts +34 -0
  29. package/dist/governance/command-safety.d.ts.map +1 -0
  30. package/dist/governance/governance.d.ts +19 -0
  31. package/dist/governance/governance.d.ts.map +1 -0
  32. package/dist/governance/index.d.ts +12 -0
  33. package/dist/governance/index.d.ts.map +1 -0
  34. package/dist/governance/types.d.ts +29 -0
  35. package/dist/governance/types.d.ts.map +1 -0
  36. package/dist/index.d.ts +72 -804
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +51 -1
  39. package/dist/internal/management-args.d.ts +13 -0
  40. package/dist/internal/management-args.d.ts.map +1 -0
  41. package/dist/internal/management-results.d.ts +21 -0
  42. package/dist/internal/management-results.d.ts.map +1 -0
  43. package/dist/llm-config.d.ts +108 -0
  44. package/dist/llm-config.d.ts.map +1 -0
  45. package/dist/logger/core.d.ts +31 -0
  46. package/dist/logger/core.d.ts.map +1 -0
  47. package/dist/logger/index.d.ts +9 -0
  48. package/dist/logger/index.d.ts.map +1 -0
  49. package/dist/orchestrator/compression-handler.d.ts +29 -0
  50. package/dist/orchestrator/compression-handler.d.ts.map +1 -0
  51. package/dist/orchestrator/context-compressor.d.ts +51 -0
  52. package/dist/orchestrator/context-compressor.d.ts.map +1 -0
  53. package/dist/orchestrator/context-summarizer.d.ts +41 -0
  54. package/dist/orchestrator/context-summarizer.d.ts.map +1 -0
  55. package/dist/orchestrator/index.d.ts +12 -0
  56. package/dist/orchestrator/index.d.ts.map +1 -0
  57. package/dist/orchestrator/orchestrator.d.ts +46 -0
  58. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  59. package/dist/orchestrator/types.d.ts +58 -0
  60. package/dist/orchestrator/types.d.ts.map +1 -0
  61. package/dist/parts/index.d.ts +13 -0
  62. package/dist/parts/index.d.ts.map +1 -0
  63. package/dist/parts/registry.d.ts +11 -0
  64. package/dist/parts/registry.d.ts.map +1 -0
  65. package/dist/parts/summaries.d.ts +9 -0
  66. package/dist/parts/summaries.d.ts.map +1 -0
  67. package/dist/parts/types.d.ts +61 -0
  68. package/dist/parts/types.d.ts.map +1 -0
  69. package/dist/platform.d.ts +17 -0
  70. package/dist/platform.d.ts.map +1 -0
  71. package/dist/platform.js +1 -0
  72. package/dist/protocols/anthropic.d.ts +20 -0
  73. package/dist/protocols/anthropic.d.ts.map +1 -0
  74. package/dist/protocols/ark.d.ts +36 -0
  75. package/dist/protocols/ark.d.ts.map +1 -0
  76. package/dist/protocols/deepseek.d.ts +24 -0
  77. package/dist/protocols/deepseek.d.ts.map +1 -0
  78. package/dist/protocols/error-utils.d.ts +14 -0
  79. package/dist/protocols/error-utils.d.ts.map +1 -0
  80. package/dist/protocols/gemini.d.ts +24 -0
  81. package/dist/protocols/gemini.d.ts.map +1 -0
  82. package/dist/protocols/glm.d.ts +20 -0
  83. package/dist/protocols/glm.d.ts.map +1 -0
  84. package/dist/protocols/grok.d.ts +20 -0
  85. package/dist/protocols/grok.d.ts.map +1 -0
  86. package/dist/protocols/index.d.ts +31 -0
  87. package/dist/protocols/index.d.ts.map +1 -0
  88. package/dist/protocols/minimax.d.ts +38 -0
  89. package/dist/protocols/minimax.d.ts.map +1 -0
  90. package/dist/protocols/moonshot.d.ts +20 -0
  91. package/dist/protocols/moonshot.d.ts.map +1 -0
  92. package/dist/protocols/openai-sse.d.ts +33 -0
  93. package/dist/protocols/openai-sse.d.ts.map +1 -0
  94. package/dist/protocols/openai.d.ts +19 -0
  95. package/dist/protocols/openai.d.ts.map +1 -0
  96. package/dist/protocols/qwen.d.ts +26 -0
  97. package/dist/protocols/qwen.d.ts.map +1 -0
  98. package/dist/protocols/responses-sse.d.ts +30 -0
  99. package/dist/protocols/responses-sse.d.ts.map +1 -0
  100. package/dist/protocols/sse-reader.d.ts +23 -0
  101. package/dist/protocols/sse-reader.d.ts.map +1 -0
  102. package/dist/protocols/tool-arguments.d.ts +8 -0
  103. package/dist/protocols/tool-arguments.d.ts.map +1 -0
  104. package/dist/protocols/types.d.ts +148 -0
  105. package/dist/protocols/types.d.ts.map +1 -0
  106. package/dist/protocols/vercel-gateway.d.ts +15 -0
  107. package/dist/protocols/vercel-gateway.d.ts.map +1 -0
  108. package/dist/runtime.d.ts +151 -0
  109. package/dist/runtime.d.ts.map +1 -0
  110. package/dist/runtime.js +1 -0
  111. package/dist/skills/index.d.ts +14 -0
  112. package/dist/skills/index.d.ts.map +1 -0
  113. package/dist/skills/management/admin.d.ts +10 -0
  114. package/dist/skills/management/admin.d.ts.map +1 -0
  115. package/dist/skills/management/index.d.ts +11 -0
  116. package/dist/skills/management/index.d.ts.map +1 -0
  117. package/dist/skills/management/inputs.d.ts +44 -0
  118. package/dist/skills/management/inputs.d.ts.map +1 -0
  119. package/dist/skills/management/operations.d.ts +78 -0
  120. package/dist/skills/management/operations.d.ts.map +1 -0
  121. package/dist/skills/management/types.d.ts +70 -0
  122. package/dist/skills/management/types.d.ts.map +1 -0
  123. package/dist/skills/registry.d.ts +37 -0
  124. package/dist/skills/registry.d.ts.map +1 -0
  125. package/dist/skills/summaries.d.ts +9 -0
  126. package/dist/skills/summaries.d.ts.map +1 -0
  127. package/dist/skills/types.d.ts +61 -0
  128. package/dist/skills/types.d.ts.map +1 -0
  129. package/dist/test-utils/mock-sse.d.ts +13 -0
  130. package/dist/test-utils/mock-sse.d.ts.map +1 -0
  131. package/dist/tool-manager/define-tool.d.ts +35 -0
  132. package/dist/tool-manager/define-tool.d.ts.map +1 -0
  133. package/dist/tool-manager/formats.d.ts +46 -0
  134. package/dist/tool-manager/formats.d.ts.map +1 -0
  135. package/dist/tool-manager/identity.d.ts +18 -0
  136. package/dist/tool-manager/identity.d.ts.map +1 -0
  137. package/dist/tool-manager/in-process-provider.d.ts +15 -0
  138. package/dist/tool-manager/in-process-provider.d.ts.map +1 -0
  139. package/dist/tool-manager/index.d.ts +18 -0
  140. package/dist/tool-manager/index.d.ts.map +1 -0
  141. package/dist/tool-manager/manager.d.ts +18 -0
  142. package/dist/tool-manager/manager.d.ts.map +1 -0
  143. package/dist/tool-manager/mcp-provider.d.ts +21 -0
  144. package/dist/tool-manager/mcp-provider.d.ts.map +1 -0
  145. package/dist/tool-manager/summaries.d.ts +39 -0
  146. package/dist/tool-manager/summaries.d.ts.map +1 -0
  147. package/dist/tool-manager/types.d.ts +314 -0
  148. package/dist/tool-manager/types.d.ts.map +1 -0
  149. package/dist/types.d.ts +663 -0
  150. package/dist/types.d.ts.map +1 -0
  151. package/package.json +26 -15
  152. package/src/adapter/index.ts +25 -0
  153. package/src/adapter/model-adapter.ts +196 -0
  154. package/src/adapter/model-options.ts +143 -0
  155. package/src/adapter/types.ts +41 -0
  156. package/src/chat-runtime.ts +515 -0
  157. package/src/constants.ts +9 -102
  158. package/src/events.ts +364 -150
  159. package/src/extension/index.ts +24 -0
  160. package/src/extension/types.ts +49 -0
  161. package/src/families/index.ts +28 -0
  162. package/src/families/presets.ts +124 -0
  163. package/src/families/resolver.ts +22 -0
  164. package/src/families/types.ts +55 -0
  165. package/src/governance/command-safety.ts +224 -0
  166. package/src/governance/governance.ts +125 -0
  167. package/src/governance/index.ts +38 -0
  168. package/src/governance/types.ts +44 -0
  169. package/src/index.ts +250 -145
  170. package/src/internal/management-args.ts +39 -0
  171. package/src/internal/management-results.ts +60 -0
  172. package/src/llm-config.ts +137 -0
  173. package/src/logger/core.ts +96 -0
  174. package/src/logger/index.ts +8 -0
  175. package/src/orchestrator/compression-handler.ts +137 -0
  176. package/src/{providers → orchestrator}/context-compressor.ts +79 -47
  177. package/src/orchestrator/context-summarizer.ts +123 -0
  178. package/src/orchestrator/index.ts +20 -0
  179. package/src/orchestrator/orchestrator.ts +1002 -0
  180. package/src/orchestrator/types.ts +70 -0
  181. package/src/parts/index.ts +20 -0
  182. package/src/parts/registry.ts +95 -0
  183. package/src/parts/summaries.ts +40 -0
  184. package/src/parts/types.ts +63 -0
  185. package/src/platform.ts +73 -0
  186. package/src/protocols/anthropic.ts +377 -0
  187. package/src/protocols/ark.ts +300 -0
  188. package/src/protocols/deepseek.ts +192 -0
  189. package/src/{providers/protocols → protocols}/error-utils.ts +17 -20
  190. package/src/protocols/gemini.ts +352 -0
  191. package/src/protocols/glm.ts +212 -0
  192. package/src/protocols/grok.ts +98 -0
  193. package/src/protocols/index.ts +48 -0
  194. package/src/protocols/minimax.ts +308 -0
  195. package/src/protocols/moonshot.ts +186 -0
  196. package/src/protocols/openai-sse.ts +156 -0
  197. package/src/protocols/openai.ts +97 -0
  198. package/src/protocols/qwen.ts +358 -0
  199. package/src/protocols/responses-sse.ts +224 -0
  200. package/src/protocols/sse-reader.ts +54 -0
  201. package/src/protocols/tool-arguments.ts +32 -0
  202. package/src/{providers/protocols → protocols}/types.ts +46 -37
  203. package/src/protocols/vercel-gateway.ts +391 -0
  204. package/src/runtime.ts +167 -0
  205. package/src/skills/index.ts +29 -0
  206. package/src/skills/management/admin.ts +170 -0
  207. package/src/skills/management/index.ts +27 -0
  208. package/src/skills/management/inputs.ts +79 -0
  209. package/src/skills/management/operations.ts +256 -0
  210. package/src/skills/management/types.ts +57 -0
  211. package/src/skills/registry.ts +120 -0
  212. package/src/skills/summaries.ts +48 -0
  213. package/src/skills/types.ts +65 -0
  214. package/src/test-utils/mock-sse.ts +3 -3
  215. package/src/tool-manager/define-tool.ts +201 -0
  216. package/src/tool-manager/formats.ts +146 -0
  217. package/src/tool-manager/identity.ts +80 -0
  218. package/src/tool-manager/in-process-provider.ts +164 -0
  219. package/src/tool-manager/index.ts +63 -0
  220. package/src/tool-manager/manager.ts +562 -0
  221. package/src/tool-manager/mcp-provider.ts +509 -0
  222. package/src/tool-manager/summaries.ts +136 -0
  223. package/src/tool-manager/types.ts +389 -0
  224. package/src/types.ts +750 -191
  225. package/dist/events-CU5D5ray.d.ts +0 -1128
  226. package/src/agent.ts +0 -409
  227. package/src/internal/update-plan.ts +0 -2
  228. package/src/internal/web-search.ts +0 -77
  229. package/src/mcp/client-manager.ts +0 -302
  230. package/src/mcp/index.ts +0 -2
  231. package/src/mcp/types.ts +0 -43
  232. package/src/providers/context-summarizer.ts +0 -70
  233. package/src/providers/index.ts +0 -125
  234. package/src/providers/model-registry.ts +0 -466
  235. package/src/providers/orchestrator.ts +0 -839
  236. package/src/providers/protocols/anthropic.ts +0 -406
  237. package/src/providers/protocols/ark.ts +0 -362
  238. package/src/providers/protocols/deepseek.ts +0 -344
  239. package/src/providers/protocols/gemini.ts +0 -350
  240. package/src/providers/protocols/index.ts +0 -36
  241. package/src/providers/protocols/openai.ts +0 -420
  242. package/src/providers/protocols/qwen.ts +0 -315
  243. package/src/providers/types.ts +0 -264
  244. package/src/providers/unified-adapter.ts +0 -367
  245. package/src/router.ts +0 -72
  246. package/src/tools.ts +0 -162
  247. 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"}