@agenticc/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +370 -0
  3. package/README.zh-CN.md +372 -0
  4. package/dist/audit/index.d.ts +9 -0
  5. package/dist/audit/index.d.ts.map +1 -0
  6. package/dist/audit/index.js +9 -0
  7. package/dist/audit/index.js.map +1 -0
  8. package/dist/audit/logger.d.ts +211 -0
  9. package/dist/audit/logger.d.ts.map +1 -0
  10. package/dist/audit/logger.js +268 -0
  11. package/dist/audit/logger.js.map +1 -0
  12. package/dist/audit/query.d.ts +164 -0
  13. package/dist/audit/query.d.ts.map +1 -0
  14. package/dist/audit/query.js +250 -0
  15. package/dist/audit/query.js.map +1 -0
  16. package/dist/conversation/context-builder.d.ts +119 -0
  17. package/dist/conversation/context-builder.d.ts.map +1 -0
  18. package/dist/conversation/context-builder.js +252 -0
  19. package/dist/conversation/context-builder.js.map +1 -0
  20. package/dist/conversation/index.d.ts +10 -0
  21. package/dist/conversation/index.d.ts.map +1 -0
  22. package/dist/conversation/index.js +10 -0
  23. package/dist/conversation/index.js.map +1 -0
  24. package/dist/conversation/message-store.d.ts +231 -0
  25. package/dist/conversation/message-store.d.ts.map +1 -0
  26. package/dist/conversation/message-store.js +404 -0
  27. package/dist/conversation/message-store.js.map +1 -0
  28. package/dist/conversation/session.d.ts +201 -0
  29. package/dist/conversation/session.d.ts.map +1 -0
  30. package/dist/conversation/session.js +285 -0
  31. package/dist/conversation/session.js.map +1 -0
  32. package/dist/core/agent.d.ts +277 -0
  33. package/dist/core/agent.d.ts.map +1 -0
  34. package/dist/core/agent.js +674 -0
  35. package/dist/core/agent.js.map +1 -0
  36. package/dist/core/agentic-loop.d.ts +98 -0
  37. package/dist/core/agentic-loop.d.ts.map +1 -0
  38. package/dist/core/agentic-loop.js +496 -0
  39. package/dist/core/agentic-loop.js.map +1 -0
  40. package/dist/core/index.d.ts +14 -0
  41. package/dist/core/index.d.ts.map +1 -0
  42. package/dist/core/index.js +14 -0
  43. package/dist/core/index.js.map +1 -0
  44. package/dist/core/intent-parser.d.ts +101 -0
  45. package/dist/core/intent-parser.d.ts.map +1 -0
  46. package/dist/core/intent-parser.js +221 -0
  47. package/dist/core/intent-parser.js.map +1 -0
  48. package/dist/core/plan-generator.d.ts +133 -0
  49. package/dist/core/plan-generator.d.ts.map +1 -0
  50. package/dist/core/plan-generator.js +294 -0
  51. package/dist/core/plan-generator.js.map +1 -0
  52. package/dist/core/plugin-manager.d.ts +120 -0
  53. package/dist/core/plugin-manager.d.ts.map +1 -0
  54. package/dist/core/plugin-manager.js +369 -0
  55. package/dist/core/plugin-manager.js.map +1 -0
  56. package/dist/core/response-handler.d.ts +141 -0
  57. package/dist/core/response-handler.d.ts.map +1 -0
  58. package/dist/core/response-handler.js +384 -0
  59. package/dist/core/response-handler.js.map +1 -0
  60. package/dist/core/tool-executor.d.ts +143 -0
  61. package/dist/core/tool-executor.d.ts.map +1 -0
  62. package/dist/core/tool-executor.js +354 -0
  63. package/dist/core/tool-executor.js.map +1 -0
  64. package/dist/core/tool-registry.d.ts +133 -0
  65. package/dist/core/tool-registry.d.ts.map +1 -0
  66. package/dist/core/tool-registry.js +252 -0
  67. package/dist/core/tool-registry.js.map +1 -0
  68. package/dist/index.d.ts +44 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +47 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/knowledge/chunker.d.ts +78 -0
  73. package/dist/knowledge/chunker.d.ts.map +1 -0
  74. package/dist/knowledge/chunker.js +233 -0
  75. package/dist/knowledge/chunker.js.map +1 -0
  76. package/dist/knowledge/embedder.d.ts +93 -0
  77. package/dist/knowledge/embedder.d.ts.map +1 -0
  78. package/dist/knowledge/embedder.js +205 -0
  79. package/dist/knowledge/embedder.js.map +1 -0
  80. package/dist/knowledge/index.d.ts +10 -0
  81. package/dist/knowledge/index.d.ts.map +1 -0
  82. package/dist/knowledge/index.js +11 -0
  83. package/dist/knowledge/index.js.map +1 -0
  84. package/dist/knowledge/loaders/index.d.ts +10 -0
  85. package/dist/knowledge/loaders/index.d.ts.map +1 -0
  86. package/dist/knowledge/loaders/index.js +10 -0
  87. package/dist/knowledge/loaders/index.js.map +1 -0
  88. package/dist/knowledge/loaders/markdown.d.ts +88 -0
  89. package/dist/knowledge/loaders/markdown.d.ts.map +1 -0
  90. package/dist/knowledge/loaders/markdown.js +205 -0
  91. package/dist/knowledge/loaders/markdown.js.map +1 -0
  92. package/dist/knowledge/loaders/yaml.d.ts +112 -0
  93. package/dist/knowledge/loaders/yaml.d.ts.map +1 -0
  94. package/dist/knowledge/loaders/yaml.js +368 -0
  95. package/dist/knowledge/loaders/yaml.js.map +1 -0
  96. package/dist/knowledge/retriever.d.ts +144 -0
  97. package/dist/knowledge/retriever.d.ts.map +1 -0
  98. package/dist/knowledge/retriever.js +399 -0
  99. package/dist/knowledge/retriever.js.map +1 -0
  100. package/dist/knowledge/store.d.ts +146 -0
  101. package/dist/knowledge/store.d.ts.map +1 -0
  102. package/dist/knowledge/store.js +420 -0
  103. package/dist/knowledge/store.js.map +1 -0
  104. package/dist/llm/adapter.d.ts +194 -0
  105. package/dist/llm/adapter.d.ts.map +1 -0
  106. package/dist/llm/adapter.js +42 -0
  107. package/dist/llm/adapter.js.map +1 -0
  108. package/dist/llm/adapters/anyrouter.d.ts +84 -0
  109. package/dist/llm/adapters/anyrouter.d.ts.map +1 -0
  110. package/dist/llm/adapters/anyrouter.js +372 -0
  111. package/dist/llm/adapters/anyrouter.js.map +1 -0
  112. package/dist/llm/adapters/claude.d.ts +66 -0
  113. package/dist/llm/adapters/claude.d.ts.map +1 -0
  114. package/dist/llm/adapters/claude.js +323 -0
  115. package/dist/llm/adapters/claude.js.map +1 -0
  116. package/dist/llm/adapters/index.d.ts +12 -0
  117. package/dist/llm/adapters/index.d.ts.map +1 -0
  118. package/dist/llm/adapters/index.js +12 -0
  119. package/dist/llm/adapters/index.js.map +1 -0
  120. package/dist/llm/adapters/mimo.d.ts +85 -0
  121. package/dist/llm/adapters/mimo.d.ts.map +1 -0
  122. package/dist/llm/adapters/mimo.js +316 -0
  123. package/dist/llm/adapters/mimo.js.map +1 -0
  124. package/dist/llm/adapters/openai.d.ts +53 -0
  125. package/dist/llm/adapters/openai.d.ts.map +1 -0
  126. package/dist/llm/adapters/openai.js +293 -0
  127. package/dist/llm/adapters/openai.js.map +1 -0
  128. package/dist/llm/adapters/qwen.d.ts +53 -0
  129. package/dist/llm/adapters/qwen.d.ts.map +1 -0
  130. package/dist/llm/adapters/qwen.js +299 -0
  131. package/dist/llm/adapters/qwen.js.map +1 -0
  132. package/dist/llm/adapters/siliconflow.d.ts +69 -0
  133. package/dist/llm/adapters/siliconflow.d.ts.map +1 -0
  134. package/dist/llm/adapters/siliconflow.js +331 -0
  135. package/dist/llm/adapters/siliconflow.js.map +1 -0
  136. package/dist/llm/index.d.ts +9 -0
  137. package/dist/llm/index.d.ts.map +1 -0
  138. package/dist/llm/index.js +12 -0
  139. package/dist/llm/index.js.map +1 -0
  140. package/dist/llm/manager.d.ts +97 -0
  141. package/dist/llm/manager.d.ts.map +1 -0
  142. package/dist/llm/manager.js +337 -0
  143. package/dist/llm/manager.js.map +1 -0
  144. package/dist/test-utils/arbitraries.d.ts +230 -0
  145. package/dist/test-utils/arbitraries.d.ts.map +1 -0
  146. package/dist/test-utils/arbitraries.js +280 -0
  147. package/dist/test-utils/arbitraries.js.map +1 -0
  148. package/dist/test-utils/cleanup.d.ts +184 -0
  149. package/dist/test-utils/cleanup.d.ts.map +1 -0
  150. package/dist/test-utils/cleanup.js +282 -0
  151. package/dist/test-utils/cleanup.js.map +1 -0
  152. package/dist/test-utils/config.d.ts +80 -0
  153. package/dist/test-utils/config.d.ts.map +1 -0
  154. package/dist/test-utils/config.js +94 -0
  155. package/dist/test-utils/config.js.map +1 -0
  156. package/dist/test-utils/index.d.ts +10 -0
  157. package/dist/test-utils/index.d.ts.map +1 -0
  158. package/dist/test-utils/index.js +36 -0
  159. package/dist/test-utils/index.js.map +1 -0
  160. package/dist/test-utils/mocks.d.ts +170 -0
  161. package/dist/test-utils/mocks.d.ts.map +1 -0
  162. package/dist/test-utils/mocks.js +281 -0
  163. package/dist/test-utils/mocks.js.map +1 -0
  164. package/dist/types/config.d.ts +170 -0
  165. package/dist/types/config.d.ts.map +1 -0
  166. package/dist/types/config.js +120 -0
  167. package/dist/types/config.js.map +1 -0
  168. package/dist/types/knowledge.d.ts +95 -0
  169. package/dist/types/knowledge.d.ts.map +1 -0
  170. package/dist/types/knowledge.js +7 -0
  171. package/dist/types/knowledge.js.map +1 -0
  172. package/dist/types/loop.d.ts +148 -0
  173. package/dist/types/loop.d.ts.map +1 -0
  174. package/dist/types/loop.js +16 -0
  175. package/dist/types/loop.js.map +1 -0
  176. package/dist/types/plugin.d.ts +137 -0
  177. package/dist/types/plugin.d.ts.map +1 -0
  178. package/dist/types/plugin.js +15 -0
  179. package/dist/types/plugin.js.map +1 -0
  180. package/dist/types/response.d.ts +186 -0
  181. package/dist/types/response.d.ts.map +1 -0
  182. package/dist/types/response.js +99 -0
  183. package/dist/types/response.js.map +1 -0
  184. package/dist/types/streaming.d.ts +478 -0
  185. package/dist/types/streaming.d.ts.map +1 -0
  186. package/dist/types/streaming.js +483 -0
  187. package/dist/types/streaming.js.map +1 -0
  188. package/dist/types/tool.d.ts +118 -0
  189. package/dist/types/tool.d.ts.map +1 -0
  190. package/dist/types/tool.js +42 -0
  191. package/dist/types/tool.js.map +1 -0
  192. package/dist/utils/error.d.ts +22 -0
  193. package/dist/utils/error.d.ts.map +1 -0
  194. package/dist/utils/error.js +36 -0
  195. package/dist/utils/error.js.map +1 -0
  196. package/package.json +102 -0
@@ -0,0 +1,170 @@
1
+ /**
2
+ * 类型安全的 Mock 工厂函数
3
+ *
4
+ * 提供统一的 Mock 创建方法,确保类型安全和一致性
5
+ */
6
+ import type { LLMManager } from '../llm/manager.js';
7
+ import type { Tool, ToolResult, ToolContext, ToolParameterType } from '../types/tool.js';
8
+ import type { PluginContext, AgentPlugin } from '../types/plugin.js';
9
+ import type { AgentConfig } from '../types/config.js';
10
+ /**
11
+ * LLM 响应类型
12
+ */
13
+ export interface MockLLMResponse {
14
+ content: string;
15
+ toolCalls?: Array<{
16
+ id: string;
17
+ name: string;
18
+ arguments: Record<string, unknown>;
19
+ }>;
20
+ finishReason?: 'stop' | 'tool_calls' | 'length' | 'content_filter';
21
+ }
22
+ /**
23
+ * Mock Tool 选项
24
+ */
25
+ export interface MockToolOptions {
26
+ /** 工具执行结果 */
27
+ result?: ToolResult;
28
+ /** 是否需要确认 */
29
+ requiresConfirmation?: boolean;
30
+ /** 风险级别 */
31
+ riskLevel?: 'low' | 'medium' | 'high';
32
+ /** 工具分类 */
33
+ category?: string;
34
+ /** 执行时抛出的错误 */
35
+ shouldThrow?: Error;
36
+ /** 工具参数定义 */
37
+ parameters?: Array<{
38
+ name: string;
39
+ type: ToolParameterType;
40
+ description: string;
41
+ required: boolean;
42
+ }>;
43
+ }
44
+ /**
45
+ * Mock Plugin 选项
46
+ */
47
+ export interface MockPluginOptions {
48
+ /** 命名空间 */
49
+ namespace?: string;
50
+ /** 版本号 */
51
+ version?: string;
52
+ /** 加载钩子 */
53
+ onLoad?: () => Promise<void>;
54
+ /** 卸载钩子 */
55
+ onUnload?: () => Promise<void>;
56
+ /** 健康检查 */
57
+ healthCheck?: () => Promise<boolean>;
58
+ }
59
+ /**
60
+ * LLM Manager Mock 类型(部分接口)
61
+ */
62
+ export type MockLLMManagerType = Pick<LLMManager, 'generateWithTools' | 'generate' | 'supportsEmbeddings' | 'getLLMForTask' | 'embed'>;
63
+ /**
64
+ * 创建类型安全的 LLM Manager Mock
65
+ *
66
+ * @param responses - 预定义的响应序列
67
+ * @returns Mock LLM Manager
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const llm = createMockLLMManager([
72
+ * { content: 'First response' },
73
+ * { content: 'Second response', toolCalls: [...] },
74
+ * ]);
75
+ * ```
76
+ */
77
+ export declare function createMockLLMManager(responses: MockLLMResponse[]): MockLLMManagerType;
78
+ /**
79
+ * 创建可重置的 LLM Manager Mock
80
+ *
81
+ * @param responses - 预定义的响应序列
82
+ * @returns 带 reset 方法的 Mock LLM Manager
83
+ */
84
+ export declare function createResettableMockLLMManager(responses: MockLLMResponse[]): MockLLMManagerType & {
85
+ reset: () => void;
86
+ getCallCount: () => number;
87
+ };
88
+ /**
89
+ * 创建 Mock Tool
90
+ *
91
+ * @param name - 工具名称
92
+ * @param options - 工具选项
93
+ * @returns Mock Tool
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * const tool = createMockTool('my_tool', {
98
+ * requiresConfirmation: true,
99
+ * riskLevel: 'high',
100
+ * });
101
+ * ```
102
+ */
103
+ export declare function createMockTool(name: string, options?: MockToolOptions): Tool;
104
+ /**
105
+ * 创建带参数的 Mock Tool
106
+ *
107
+ * @param name - 工具名称
108
+ * @param params - 参数名列表
109
+ * @param options - 其他选项
110
+ * @returns Mock Tool
111
+ */
112
+ export declare function createMockToolWithParams(name: string, params: string[], options?: Omit<MockToolOptions, 'parameters'>): Tool;
113
+ /**
114
+ * 创建 Mock Plugin Context
115
+ *
116
+ * @param overrides - 覆盖的属性
117
+ * @returns Mock Plugin Context
118
+ */
119
+ export declare function createMockPluginContext(overrides?: Partial<PluginContext>): PluginContext;
120
+ /**
121
+ * 创建 Mock Tool Context
122
+ *
123
+ * @param overrides - 覆盖的属性
124
+ * @returns Mock Tool Context
125
+ */
126
+ export declare function createMockToolContext(overrides?: Partial<ToolContext>): ToolContext;
127
+ /**
128
+ * 创建 Mock Plugin
129
+ *
130
+ * @param name - 插件名称
131
+ * @param tools - 工具列表
132
+ * @param options - 插件选项
133
+ * @returns Mock Plugin
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const plugin = createMockPlugin('my-plugin', [tool1, tool2], {
138
+ * namespace: 'myns',
139
+ * });
140
+ * ```
141
+ */
142
+ export declare function createMockPlugin(name: string, tools: Tool[], options?: MockPluginOptions): AgentPlugin;
143
+ /**
144
+ * 创建测试用 Agent 配置
145
+ *
146
+ * @param overrides - 覆盖的配置
147
+ * @returns Agent 配置
148
+ */
149
+ export declare function createTestAgentConfig(overrides?: Partial<AgentConfig>): AgentConfig;
150
+ /**
151
+ * 创建带确认机制的测试配置
152
+ */
153
+ export declare function createTestAgentConfigWithConfirmation(): AgentConfig;
154
+ /**
155
+ * 创建一系列工具调用响应
156
+ *
157
+ * @param toolName - 工具名称
158
+ * @param count - 调用次数
159
+ * @returns 响应数组
160
+ */
161
+ export declare function createToolCallResponses(toolName: string, count: number): MockLLMResponse[];
162
+ /**
163
+ * 创建无限工具调用响应(用于测试 maxIterations)
164
+ *
165
+ * @param toolName - 工具名称
166
+ * @param maxResponses - 最大响应数
167
+ * @returns 响应数组
168
+ */
169
+ export declare function createInfiniteToolCallResponses(toolName: string, maxResponses?: number): MockLLMResponse[];
170
+ //# sourceMappingURL=mocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/test-utils/mocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * 类型安全的 Mock 工厂函数
3
+ *
4
+ * 提供统一的 Mock 创建方法,确保类型安全和一致性
5
+ */
6
+ import { vi } from 'vitest';
7
+ // ============================================================================
8
+ // Mock Factories
9
+ // ============================================================================
10
+ /**
11
+ * 创建类型安全的 LLM Manager Mock
12
+ *
13
+ * @param responses - 预定义的响应序列
14
+ * @returns Mock LLM Manager
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const llm = createMockLLMManager([
19
+ * { content: 'First response' },
20
+ * { content: 'Second response', toolCalls: [...] },
21
+ * ]);
22
+ * ```
23
+ */
24
+ export function createMockLLMManager(responses) {
25
+ let callIndex = 0;
26
+ const getNextResponse = () => {
27
+ const response = responses[callIndex] || responses[responses.length - 1];
28
+ callIndex++;
29
+ return {
30
+ ...response,
31
+ finishReason: response.finishReason ?? (response.toolCalls ? 'tool_calls' : 'stop'),
32
+ };
33
+ };
34
+ return {
35
+ generateWithTools: vi.fn(async () => getNextResponse()),
36
+ generate: vi.fn(async () => getNextResponse().content),
37
+ supportsEmbeddings: vi.fn().mockReturnValue(false),
38
+ getLLMForTask: vi.fn(),
39
+ embed: vi.fn(async (text) => ({
40
+ embedding: new Array(1536).fill(0).map(() => Math.random()),
41
+ tokenCount: text.split(/\s+/).length,
42
+ })),
43
+ };
44
+ }
45
+ /**
46
+ * 创建可重置的 LLM Manager Mock
47
+ *
48
+ * @param responses - 预定义的响应序列
49
+ * @returns 带 reset 方法的 Mock LLM Manager
50
+ */
51
+ export function createResettableMockLLMManager(responses) {
52
+ let callIndex = 0;
53
+ const getNextResponse = () => {
54
+ const response = responses[callIndex] || responses[responses.length - 1];
55
+ callIndex++;
56
+ return {
57
+ ...response,
58
+ finishReason: response.finishReason ?? (response.toolCalls ? 'tool_calls' : 'stop'),
59
+ };
60
+ };
61
+ const mock = {
62
+ generateWithTools: vi.fn(async () => getNextResponse()),
63
+ generate: vi.fn(async () => getNextResponse().content),
64
+ supportsEmbeddings: vi.fn().mockReturnValue(false),
65
+ getLLMForTask: vi.fn(),
66
+ embed: vi.fn(async (text) => ({
67
+ embedding: new Array(1536).fill(0).map(() => Math.random()),
68
+ tokenCount: text.split(/\s+/).length,
69
+ })),
70
+ reset: () => {
71
+ callIndex = 0;
72
+ vi.clearAllMocks();
73
+ },
74
+ getCallCount: () => callIndex,
75
+ };
76
+ return mock;
77
+ }
78
+ /**
79
+ * 创建 Mock Tool
80
+ *
81
+ * @param name - 工具名称
82
+ * @param options - 工具选项
83
+ * @returns Mock Tool
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * const tool = createMockTool('my_tool', {
88
+ * requiresConfirmation: true,
89
+ * riskLevel: 'high',
90
+ * });
91
+ * ```
92
+ */
93
+ export function createMockTool(name, options = {}) {
94
+ const defaultResult = { success: true, content: 'Done' };
95
+ return {
96
+ name,
97
+ description: `Mock tool: ${name}`,
98
+ parameters: options.parameters ?? [],
99
+ category: options.category,
100
+ requiresConfirmation: options.requiresConfirmation,
101
+ riskLevel: options.riskLevel,
102
+ execute: vi.fn(async () => {
103
+ if (options.shouldThrow) {
104
+ throw options.shouldThrow;
105
+ }
106
+ return options.result ?? defaultResult;
107
+ }),
108
+ };
109
+ }
110
+ /**
111
+ * 创建带参数的 Mock Tool
112
+ *
113
+ * @param name - 工具名称
114
+ * @param params - 参数名列表
115
+ * @param options - 其他选项
116
+ * @returns Mock Tool
117
+ */
118
+ export function createMockToolWithParams(name, params, options = {}) {
119
+ return createMockTool(name, {
120
+ ...options,
121
+ parameters: params.map((p) => ({
122
+ name: p,
123
+ type: 'string',
124
+ description: `Parameter: ${p}`,
125
+ required: true,
126
+ })),
127
+ });
128
+ }
129
+ /**
130
+ * 创建 Mock Plugin Context
131
+ *
132
+ * @param overrides - 覆盖的属性
133
+ * @returns Mock Plugin Context
134
+ */
135
+ export function createMockPluginContext(overrides) {
136
+ return {
137
+ logger: {
138
+ info: vi.fn(),
139
+ warn: vi.fn(),
140
+ error: vi.fn(),
141
+ debug: vi.fn(),
142
+ },
143
+ knowledgeBase: {},
144
+ config: { env: 'test', debug: false },
145
+ services: {},
146
+ ...overrides,
147
+ };
148
+ }
149
+ /**
150
+ * 创建 Mock Tool Context
151
+ *
152
+ * @param overrides - 覆盖的属性
153
+ * @returns Mock Tool Context
154
+ */
155
+ export function createMockToolContext(overrides) {
156
+ return {
157
+ knowledgeBase: {},
158
+ sessionId: `test-session-${Date.now()}`,
159
+ logger: {
160
+ info: vi.fn(),
161
+ warn: vi.fn(),
162
+ error: vi.fn(),
163
+ debug: vi.fn(),
164
+ },
165
+ ...overrides,
166
+ };
167
+ }
168
+ /**
169
+ * 创建 Mock Plugin
170
+ *
171
+ * @param name - 插件名称
172
+ * @param tools - 工具列表
173
+ * @param options - 插件选项
174
+ * @returns Mock Plugin
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * const plugin = createMockPlugin('my-plugin', [tool1, tool2], {
179
+ * namespace: 'myns',
180
+ * });
181
+ * ```
182
+ */
183
+ export function createMockPlugin(name, tools, options = {}) {
184
+ return {
185
+ name,
186
+ version: options.version ?? '1.0.0',
187
+ description: `Mock plugin: ${name}`,
188
+ namespace: options.namespace,
189
+ tools,
190
+ onLoad: options.onLoad,
191
+ onUnload: options.onUnload,
192
+ healthCheck: options.healthCheck,
193
+ };
194
+ }
195
+ /**
196
+ * 创建测试用 Agent 配置
197
+ *
198
+ * @param overrides - 覆盖的配置
199
+ * @returns Agent 配置
200
+ */
201
+ export function createTestAgentConfig(overrides) {
202
+ return {
203
+ llm: {
204
+ mode: 'single',
205
+ default: {
206
+ provider: 'openai',
207
+ apiKey: 'test-key',
208
+ model: 'gpt-4',
209
+ },
210
+ },
211
+ database: {
212
+ url: 'memory://',
213
+ },
214
+ behavior: {
215
+ requireConfirmation: false,
216
+ maxIterations: 5,
217
+ timeoutMs: 5000,
218
+ },
219
+ ...overrides,
220
+ };
221
+ }
222
+ /**
223
+ * 创建带确认机制的测试配置
224
+ */
225
+ export function createTestAgentConfigWithConfirmation() {
226
+ return createTestAgentConfig({
227
+ behavior: {
228
+ requireConfirmation: true,
229
+ maxIterations: 5,
230
+ timeoutMs: 5000,
231
+ },
232
+ });
233
+ }
234
+ // ============================================================================
235
+ // Mock Helpers
236
+ // ============================================================================
237
+ /**
238
+ * 创建一系列工具调用响应
239
+ *
240
+ * @param toolName - 工具名称
241
+ * @param count - 调用次数
242
+ * @returns 响应数组
243
+ */
244
+ export function createToolCallResponses(toolName, count) {
245
+ const responses = [];
246
+ for (let i = 0; i < count; i++) {
247
+ responses.push({
248
+ content: `Calling ${toolName} (${i + 1}/${count})`,
249
+ toolCalls: [
250
+ {
251
+ id: `call_${i}`,
252
+ name: toolName,
253
+ arguments: {},
254
+ },
255
+ ],
256
+ });
257
+ }
258
+ // 最后一个响应不包含工具调用
259
+ responses.push({ content: 'Done!' });
260
+ return responses;
261
+ }
262
+ /**
263
+ * 创建无限工具调用响应(用于测试 maxIterations)
264
+ *
265
+ * @param toolName - 工具名称
266
+ * @param maxResponses - 最大响应数
267
+ * @returns 响应数组
268
+ */
269
+ export function createInfiniteToolCallResponses(toolName, maxResponses = 100) {
270
+ return Array(maxResponses).fill({
271
+ content: 'Need more work.',
272
+ toolCalls: [
273
+ {
274
+ id: 'call_x',
275
+ name: toolName,
276
+ arguments: {},
277
+ },
278
+ ],
279
+ });
280
+ }
281
+ //# sourceMappingURL=mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../src/test-utils/mocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Configuration Type Definitions
3
+ *
4
+ * Defines the configuration interfaces for the Agent, LLM providers,
5
+ * and other system components.
6
+ */
7
+ /**
8
+ * Supported LLM providers
9
+ */
10
+ export type LLMProvider = 'openai' | 'claude' | 'qwen' | 'siliconflow' | 'mimo' | 'anyrouter' | 'custom';
11
+ /**
12
+ * LLM task types for multi-LLM routing
13
+ */
14
+ export type LLMTask = 'intent_parsing' | 'knowledge_retrieval' | 'tool_calling' | 'response_generation';
15
+ /**
16
+ * All LLM task types as a constant array
17
+ */
18
+ export declare const LLM_TASKS: LLMTask[];
19
+ /**
20
+ * Configuration for a single LLM provider
21
+ */
22
+ export interface LLMProviderConfig {
23
+ /** LLM provider type */
24
+ provider: LLMProvider;
25
+ /** API key for authentication */
26
+ apiKey: string;
27
+ /** Model identifier (e.g., 'gpt-4', 'claude-3-opus') */
28
+ model: string;
29
+ /** Custom API endpoint (for custom providers or proxies) */
30
+ baseUrl?: string;
31
+ /** Temperature for response generation (0-2) */
32
+ temperature?: number;
33
+ /** Maximum tokens in response */
34
+ maxTokens?: number;
35
+ /** Additional provider-specific options */
36
+ options?: Record<string, unknown>;
37
+ }
38
+ /**
39
+ * LLM configuration supporting single or multi-LLM modes
40
+ */
41
+ export interface LLMConfig {
42
+ /** Operating mode: single LLM for all tasks or multiple specialized LLMs */
43
+ mode: 'single' | 'multi';
44
+ /** Default LLM configuration (used for all tasks in single mode) */
45
+ default: LLMProviderConfig;
46
+ /** Task-specific LLM assignments (only used in multi mode) */
47
+ taskAssignment?: {
48
+ /** LLM for parsing user intent */
49
+ intentParsing?: LLMProviderConfig;
50
+ /** LLM for knowledge retrieval and embedding */
51
+ knowledgeRetrieval?: LLMProviderConfig;
52
+ /** LLM for tool calling decisions */
53
+ toolCalling?: LLMProviderConfig;
54
+ /** LLM for generating final responses */
55
+ responseGeneration?: LLMProviderConfig;
56
+ };
57
+ /** Fallback LLM if primary fails */
58
+ fallback?: LLMProviderConfig;
59
+ /** Retry configuration */
60
+ retry?: {
61
+ /** Maximum number of retries */
62
+ maxRetries: number;
63
+ /** Initial delay in milliseconds */
64
+ initialDelayMs: number;
65
+ /** Maximum delay in milliseconds */
66
+ maxDelayMs: number;
67
+ };
68
+ }
69
+ /**
70
+ * Database configuration (deprecated - storage is now external)
71
+ * @deprecated Storage is managed externally. Use @ai-agent/storage-memory or other storage packages.
72
+ */
73
+ export interface DatabaseConfig {
74
+ /** Database connection URL */
75
+ url: string;
76
+ /** Connection pool size */
77
+ poolSize?: number;
78
+ }
79
+ /**
80
+ * Knowledge system configuration
81
+ */
82
+ export interface KnowledgeConfig {
83
+ /** Embedding model configuration */
84
+ embedding?: {
85
+ /** Model to use for embeddings */
86
+ model: string;
87
+ /** Embedding dimension (e.g., 1536 for OpenAI ada-002) */
88
+ dimension: number;
89
+ };
90
+ /** Search configuration */
91
+ search?: {
92
+ /** Default number of results to return */
93
+ defaultTopK: number;
94
+ /** Minimum similarity score threshold */
95
+ minScore: number;
96
+ /** Default search method */
97
+ defaultMethod: 'keyword' | 'semantic' | 'hybrid';
98
+ };
99
+ }
100
+ /**
101
+ * Logging configuration
102
+ */
103
+ export interface LoggingConfig {
104
+ /** Log level */
105
+ level?: 'debug' | 'info' | 'warn' | 'error';
106
+ /** Custom logger implementation */
107
+ logger?: Logger;
108
+ /** Enable performance metrics collection */
109
+ enableMetrics?: boolean;
110
+ }
111
+ /**
112
+ * Logger interface for custom logging implementations
113
+ */
114
+ export interface Logger {
115
+ debug(message: string, data?: Record<string, unknown>): void;
116
+ info(message: string, data?: Record<string, unknown>): void;
117
+ warn(message: string, data?: Record<string, unknown>): void;
118
+ error(message: string, data?: Record<string, unknown>): void;
119
+ }
120
+ /**
121
+ * Agent behavior configuration
122
+ */
123
+ export interface BehaviorConfig {
124
+ /** Maximum processing time in milliseconds */
125
+ timeoutMs?: number;
126
+ /** Maximum number of tool call iterations */
127
+ maxIterations?: number;
128
+ /** Whether to require confirmation for high-risk operations */
129
+ requireConfirmation?: boolean;
130
+ /** Confidence threshold for automatic execution */
131
+ confidenceThreshold?: number;
132
+ /** System prompt customization */
133
+ systemPrompt?: string;
134
+ }
135
+ /**
136
+ * Complete Agent configuration
137
+ */
138
+ export interface AgentConfig {
139
+ /** LLM configuration */
140
+ llm: LLMConfig;
141
+ /** Database configuration (deprecated - use external storage) */
142
+ database?: DatabaseConfig;
143
+ /** Knowledge system configuration */
144
+ knowledge?: KnowledgeConfig;
145
+ /** Agent behavior configuration */
146
+ behavior?: BehaviorConfig;
147
+ /** Logging configuration */
148
+ logging?: LoggingConfig;
149
+ }
150
+ /**
151
+ * Default configuration values
152
+ */
153
+ export declare const DEFAULT_CONFIG: Partial<AgentConfig>;
154
+ /**
155
+ * Validates an LLMProviderConfig
156
+ */
157
+ export declare function validateLLMProviderConfig(config: LLMProviderConfig): string[];
158
+ /**
159
+ * Validates an LLMConfig
160
+ */
161
+ export declare function validateLLMConfig(config: LLMConfig): string[];
162
+ /**
163
+ * Validates a complete AgentConfig
164
+ */
165
+ export declare function validateAgentConfig(config: AgentConfig): string[];
166
+ /**
167
+ * Gets the LLM configuration for a specific task
168
+ */
169
+ export declare function getLLMConfigForTask(config: LLMConfig, task: LLMTask): LLMProviderConfig;
170
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}