@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,337 @@
1
+ /**
2
+ * LLM Manager
3
+ *
4
+ * Manages multiple LLM adapters and routes tasks to the appropriate LLM.
5
+ * Supports single LLM mode (all tasks use one LLM) and multi-LLM mode
6
+ * (different LLMs for different task types).
7
+ */
8
+ import { LLMError } from './adapter.js';
9
+ import { getLLMConfigForTask } from '../types/config.js';
10
+ import { OpenAIAdapter } from './adapters/openai.js';
11
+ import { ClaudeAdapter } from './adapters/claude.js';
12
+ import { QwenAdapter } from './adapters/qwen.js';
13
+ import { SiliconFlowAdapter } from './adapters/siliconflow.js';
14
+ import { MiMoAdapter } from './adapters/mimo.js';
15
+ import { AnyRouterAdapter } from './adapters/anyrouter.js';
16
+ const DEFAULT_RETRY_CONFIG = {
17
+ maxRetries: 3,
18
+ initialDelayMs: 1000,
19
+ maxDelayMs: 10000,
20
+ };
21
+ /**
22
+ * LLM Manager
23
+ *
24
+ * Provides a unified interface for working with multiple LLM providers.
25
+ */
26
+ export class LLMManager {
27
+ config;
28
+ adapters = new Map();
29
+ retryConfig;
30
+ constructor(config) {
31
+ this.config = config;
32
+ this.retryConfig = config.retry ?? DEFAULT_RETRY_CONFIG;
33
+ // Pre-create adapters for configured LLMs
34
+ this.initializeAdapters();
35
+ }
36
+ /**
37
+ * Get the LLM adapter for a specific task
38
+ */
39
+ getLLMForTask(task) {
40
+ const providerConfig = getLLMConfigForTask(this.config, task);
41
+ return this.getOrCreateAdapter(providerConfig);
42
+ }
43
+ /**
44
+ * Generate text for a specific task
45
+ */
46
+ async generate(task, prompt, options) {
47
+ return this.executeWithRetry(task, async (adapter) => adapter.generate(prompt, options), options?.abortSignal);
48
+ }
49
+ /**
50
+ * Generate text with tool calling for a specific task
51
+ */
52
+ async generateWithTools(task, prompt, tools, options) {
53
+ return this.executeWithRetry(task, async (adapter) => adapter.generateWithTools(prompt, tools, options), options?.abortSignal);
54
+ }
55
+ /**
56
+ * Generate text with tool calling for a specific task (streaming)
57
+ *
58
+ * Note: Streaming does not support automatic retry since we can't replay the stream.
59
+ * If you need retry behavior, use the non-streaming version.
60
+ */
61
+ async generateWithToolsStream(task, prompt, tools, onChunk, options) {
62
+ // Check if already aborted before starting
63
+ if (options?.abortSignal?.aborted) {
64
+ const adapter = this.getLLMForTask(task);
65
+ throw new LLMError('Operation cancelled', 'CANCELLED', adapter.provider);
66
+ }
67
+ const adapter = this.getLLMForTask(task);
68
+ // Check if adapter supports streaming
69
+ if (!adapter.supportsStreaming()) {
70
+ // Fall back to non-streaming and send a single chunk at the end
71
+ const response = await adapter.generateWithTools(prompt, tools, options);
72
+ if (response.content) {
73
+ onChunk({ type: 'content', content: response.content });
74
+ }
75
+ onChunk({ type: 'done', response });
76
+ return response;
77
+ }
78
+ return adapter.generateWithToolsStream(prompt, tools, onChunk, options);
79
+ }
80
+ /**
81
+ * Check if the adapter for a task supports streaming
82
+ */
83
+ supportsStreaming(task) {
84
+ const adapter = this.getLLMForTask(task);
85
+ return adapter.supportsStreaming();
86
+ }
87
+ /**
88
+ * Generate embedding using the knowledge retrieval LLM
89
+ */
90
+ async embed(text) {
91
+ // Use knowledge_retrieval task for embeddings
92
+ const adapter = this.getLLMForTask('knowledge_retrieval');
93
+ if (!adapter.supportsEmbeddings()) {
94
+ // Try fallback if available
95
+ if (this.config.fallback) {
96
+ const fallbackAdapter = this.getOrCreateAdapter(this.config.fallback);
97
+ if (fallbackAdapter.supportsEmbeddings()) {
98
+ return fallbackAdapter.embed(text);
99
+ }
100
+ }
101
+ // Try default adapter
102
+ const defaultAdapter = this.getOrCreateAdapter(this.config.default);
103
+ if (defaultAdapter.supportsEmbeddings()) {
104
+ return defaultAdapter.embed(text);
105
+ }
106
+ throw new LLMError('No adapter supports embeddings', 'INVALID_REQUEST', adapter.provider);
107
+ }
108
+ return adapter.embed(text);
109
+ }
110
+ /**
111
+ * Check if any configured adapter supports embeddings
112
+ */
113
+ supportsEmbeddings() {
114
+ for (const adapter of this.adapters.values()) {
115
+ if (adapter.supportsEmbeddings()) {
116
+ return true;
117
+ }
118
+ }
119
+ return false;
120
+ }
121
+ /**
122
+ * Check if the adapter for a task supports tool calling
123
+ */
124
+ supportsToolCalling(task) {
125
+ const adapter = this.getLLMForTask(task);
126
+ return adapter.supportsToolCalling();
127
+ }
128
+ /**
129
+ * Get all initialized adapters
130
+ */
131
+ getAdapters() {
132
+ return new Map(this.adapters);
133
+ }
134
+ /**
135
+ * Get the current configuration
136
+ */
137
+ getConfig() {
138
+ return { ...this.config };
139
+ }
140
+ /**
141
+ * Initialize adapters for all configured LLMs
142
+ */
143
+ initializeAdapters() {
144
+ // Initialize default adapter
145
+ this.getOrCreateAdapter(this.config.default);
146
+ // Initialize fallback adapter if configured
147
+ if (this.config.fallback) {
148
+ this.getOrCreateAdapter(this.config.fallback);
149
+ }
150
+ // Initialize task-specific adapters in multi-LLM mode
151
+ if (this.config.mode === 'multi' && this.config.taskAssignment) {
152
+ const { intentParsing, knowledgeRetrieval, toolCalling, responseGeneration } = this.config.taskAssignment;
153
+ if (intentParsing)
154
+ this.getOrCreateAdapter(intentParsing);
155
+ if (knowledgeRetrieval)
156
+ this.getOrCreateAdapter(knowledgeRetrieval);
157
+ if (toolCalling)
158
+ this.getOrCreateAdapter(toolCalling);
159
+ if (responseGeneration)
160
+ this.getOrCreateAdapter(responseGeneration);
161
+ }
162
+ }
163
+ /**
164
+ * Get or create an adapter for a provider configuration
165
+ */
166
+ getOrCreateAdapter(config) {
167
+ const key = this.getAdapterKey(config);
168
+ let adapter = this.adapters.get(key);
169
+ if (!adapter) {
170
+ adapter = this.createAdapter(config);
171
+ this.adapters.set(key, adapter);
172
+ }
173
+ return adapter;
174
+ }
175
+ /**
176
+ * Create a unique key for an adapter configuration
177
+ */
178
+ getAdapterKey(config) {
179
+ return `${config.provider}:${config.model}:${config.baseUrl ?? 'default'}`;
180
+ }
181
+ /**
182
+ * Create an adapter based on provider configuration
183
+ */
184
+ createAdapter(config) {
185
+ switch (config.provider) {
186
+ case 'openai':
187
+ return new OpenAIAdapter({
188
+ apiKey: config.apiKey,
189
+ model: config.model,
190
+ baseUrl: config.baseUrl,
191
+ temperature: config.temperature,
192
+ maxTokens: config.maxTokens,
193
+ });
194
+ case 'claude':
195
+ return new ClaudeAdapter({
196
+ apiKey: config.apiKey,
197
+ model: config.model,
198
+ baseUrl: config.baseUrl,
199
+ temperature: config.temperature,
200
+ maxTokens: config.maxTokens,
201
+ });
202
+ case 'qwen':
203
+ return new QwenAdapter({
204
+ apiKey: config.apiKey,
205
+ model: config.model,
206
+ baseUrl: config.baseUrl,
207
+ temperature: config.temperature,
208
+ maxTokens: config.maxTokens,
209
+ });
210
+ case 'siliconflow':
211
+ return new SiliconFlowAdapter({
212
+ apiKey: config.apiKey,
213
+ model: config.model,
214
+ baseUrl: config.baseUrl,
215
+ temperature: config.temperature,
216
+ maxTokens: config.maxTokens,
217
+ });
218
+ case 'mimo':
219
+ return new MiMoAdapter({
220
+ apiKey: config.apiKey,
221
+ model: config.model,
222
+ baseUrl: config.baseUrl,
223
+ temperature: config.temperature,
224
+ maxTokens: config.maxTokens,
225
+ });
226
+ case 'anyrouter':
227
+ return new AnyRouterAdapter({
228
+ apiKey: config.apiKey,
229
+ model: config.model,
230
+ baseUrl: config.baseUrl,
231
+ temperature: config.temperature,
232
+ maxTokens: config.maxTokens,
233
+ });
234
+ case 'custom':
235
+ // Custom providers use OpenAI-compatible API
236
+ return new OpenAIAdapter({
237
+ apiKey: config.apiKey,
238
+ model: config.model,
239
+ baseUrl: config.baseUrl,
240
+ temperature: config.temperature,
241
+ maxTokens: config.maxTokens,
242
+ });
243
+ default:
244
+ throw new LLMError(`Unknown provider: ${config.provider}`, 'INVALID_REQUEST', config.provider);
245
+ }
246
+ }
247
+ /**
248
+ * Execute an LLM operation with retry and fallback
249
+ */
250
+ async executeWithRetry(task, operation, abortSignal) {
251
+ // Check if already aborted before starting
252
+ if (abortSignal?.aborted) {
253
+ const adapter = this.getLLMForTask(task);
254
+ throw new LLMError('Operation cancelled', 'CANCELLED', adapter.provider);
255
+ }
256
+ const adapter = this.getLLMForTask(task);
257
+ let lastError;
258
+ let delay = this.retryConfig.initialDelayMs;
259
+ for (let attempt = 0; attempt <= this.retryConfig.maxRetries; attempt++) {
260
+ // Check if aborted before each retry attempt
261
+ if (abortSignal?.aborted) {
262
+ throw new LLMError('Operation cancelled', 'CANCELLED', adapter.provider);
263
+ }
264
+ try {
265
+ return await operation(adapter);
266
+ }
267
+ catch (error) {
268
+ lastError = error instanceof Error ? error : new Error(String(error));
269
+ // Don't retry if cancelled
270
+ if (error instanceof LLMError && error.code === 'CANCELLED') {
271
+ throw error;
272
+ }
273
+ // Check if we should retry
274
+ if (!this.shouldRetry(error, attempt)) {
275
+ break;
276
+ }
277
+ // Wait before retrying
278
+ await this.sleep(delay);
279
+ delay = Math.min(delay * 2, this.retryConfig.maxDelayMs);
280
+ }
281
+ }
282
+ // Try fallback if available
283
+ if (this.config.fallback) {
284
+ // Check if aborted before fallback
285
+ if (abortSignal?.aborted) {
286
+ throw new LLMError('Operation cancelled', 'CANCELLED', adapter.provider);
287
+ }
288
+ try {
289
+ const fallbackAdapter = this.getOrCreateAdapter(this.config.fallback);
290
+ return await operation(fallbackAdapter);
291
+ }
292
+ catch (fallbackError) {
293
+ // Don't swallow cancelled errors from fallback
294
+ if (fallbackError instanceof LLMError && fallbackError.code === 'CANCELLED') {
295
+ throw fallbackError;
296
+ }
297
+ // Fallback also failed, throw original error
298
+ }
299
+ }
300
+ throw (lastError ??
301
+ new LLMError('Unknown error during LLM operation', 'UNKNOWN_ERROR', adapter.provider));
302
+ }
303
+ /**
304
+ * Determine if an error should trigger a retry
305
+ */
306
+ shouldRetry(error, attempt) {
307
+ if (attempt >= this.retryConfig.maxRetries) {
308
+ return false;
309
+ }
310
+ if (error instanceof LLMError) {
311
+ // Retry on rate limits and network errors
312
+ return error.code === 'RATE_LIMIT_ERROR' || error.code === 'NETWORK_ERROR';
313
+ }
314
+ return false;
315
+ }
316
+ /**
317
+ * Sleep for a specified duration
318
+ */
319
+ sleep(ms) {
320
+ return new Promise((resolve) => setTimeout(resolve, ms));
321
+ }
322
+ }
323
+ /**
324
+ * Create an LLMManager with a simple single-LLM configuration
325
+ */
326
+ export function createSimpleLLMManager(provider, apiKey, model, options) {
327
+ return new LLMManager({
328
+ mode: 'single',
329
+ default: {
330
+ provider,
331
+ apiKey,
332
+ model,
333
+ ...options,
334
+ },
335
+ });
336
+ }
337
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/llm/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,230 @@
1
+ /**
2
+ * 共享的 Arbitrary 生成器
3
+ *
4
+ * 为 Property-based 测试提供统一的数据生成器
5
+ */
6
+ import * as fc from 'fast-check';
7
+ /**
8
+ * 有效的标识符(用于工具名、变量名等)
9
+ * 规则:以字母开头,只包含字母、数字、下划线
10
+ */
11
+ export declare const arbIdentifier: fc.Arbitrary<string>;
12
+ /**
13
+ * 有效的插件名(允许连字符)
14
+ */
15
+ export declare const arbPluginName: fc.Arbitrary<string>;
16
+ /**
17
+ * 有效的工具名(不允许连字符)
18
+ */
19
+ export declare const arbToolName: fc.Arbitrary<string>;
20
+ /**
21
+ * 有效的命名空间(小写字母开头)
22
+ */
23
+ export declare const arbNamespace: fc.Arbitrary<string>;
24
+ /**
25
+ * 有效的分类名
26
+ */
27
+ export declare const arbCategory: fc.Arbitrary<string>;
28
+ /**
29
+ * Session ID(UUID 格式)
30
+ */
31
+ export declare const arbSessionId: fc.Arbitrary<string>;
32
+ /**
33
+ * Message ID
34
+ */
35
+ export declare const arbMessageId: fc.Arbitrary<string>;
36
+ /**
37
+ * 消息角色
38
+ */
39
+ export declare const arbMessageRole: fc.Arbitrary<string>;
40
+ /**
41
+ * 响应类型
42
+ */
43
+ export declare const arbResponseType: fc.Arbitrary<string>;
44
+ /**
45
+ * 非空字符串
46
+ *
47
+ * @param maxLength - 最大长度
48
+ */
49
+ export declare const arbNonEmptyString: (maxLength?: number) => fc.Arbitrary<string>;
50
+ /**
51
+ * 消息内容
52
+ */
53
+ export declare const arbMessageContent: fc.Arbitrary<string>;
54
+ /**
55
+ * 用户消息
56
+ */
57
+ export declare const arbUserMessage: fc.Arbitrary<string>;
58
+ /**
59
+ * 安全的字符串(只包含常见字符)
60
+ */
61
+ export declare const arbSafeString: (maxLength?: number) => fc.Arbitrary<string>;
62
+ /**
63
+ * 有效的 JSON 值(排除 undefined)
64
+ */
65
+ export declare const arbJsonValue: fc.Arbitrary<fc.JsonValue>;
66
+ /**
67
+ * 元数据对象
68
+ */
69
+ export declare const arbMetadata: fc.Arbitrary<any>;
70
+ /**
71
+ * 简单的键值对对象
72
+ */
73
+ export declare const arbSimpleObject: fc.Arbitrary<Record<string, any>>;
74
+ /**
75
+ * 工具参数
76
+ */
77
+ export declare const arbToolArgs: fc.Arbitrary<Record<string, any>>;
78
+ /**
79
+ * 错误代码
80
+ */
81
+ export declare const arbErrorCode: fc.Arbitrary<string>;
82
+ /**
83
+ * 工具执行结果
84
+ */
85
+ export declare const arbToolResult: fc.Arbitrary<{
86
+ success: boolean;
87
+ content: string;
88
+ data: any;
89
+ error: any;
90
+ }>;
91
+ /**
92
+ * 成功的工具结果
93
+ */
94
+ export declare const arbSuccessToolResult: fc.Arbitrary<{
95
+ success: boolean;
96
+ content: string;
97
+ data: any;
98
+ }>;
99
+ /**
100
+ * 失败的工具结果
101
+ */
102
+ export declare const arbFailureToolResult: fc.Arbitrary<{
103
+ success: boolean;
104
+ content: string;
105
+ error: {
106
+ code: string;
107
+ message: string;
108
+ };
109
+ }>;
110
+ /**
111
+ * 正整数
112
+ *
113
+ * @param max - 最大值
114
+ */
115
+ export declare const arbPositiveInt: (max?: number) => fc.Arbitrary<number>;
116
+ /**
117
+ * 非负整数
118
+ *
119
+ * @param max - 最大值
120
+ */
121
+ export declare const arbNonNegativeInt: (max?: number) => fc.Arbitrary<number>;
122
+ /**
123
+ * 持续时间(毫秒)
124
+ */
125
+ export declare const arbDurationMs: fc.Arbitrary<number>;
126
+ /**
127
+ * 温度参数(0-2)
128
+ */
129
+ export declare const arbTemperature: fc.Arbitrary<number>;
130
+ /**
131
+ * maxTokens 参数
132
+ */
133
+ export declare const arbMaxTokens: fc.Arbitrary<number>;
134
+ /**
135
+ * maxIterations 参数
136
+ */
137
+ export declare const arbMaxIterations: fc.Arbitrary<number>;
138
+ /**
139
+ * 合理范围内的时间戳
140
+ */
141
+ export declare const arbTimestamp: fc.Arbitrary<Date>;
142
+ /**
143
+ * 过去的时间戳
144
+ */
145
+ export declare const arbPastTimestamp: fc.Arbitrary<Date>;
146
+ /**
147
+ * LLM 提供商
148
+ */
149
+ export declare const arbLLMProvider: fc.Arbitrary<string>;
150
+ /**
151
+ * LLM 任务类型
152
+ */
153
+ export declare const arbLLMTask: fc.Arbitrary<string>;
154
+ /**
155
+ * LLM 错误代码
156
+ */
157
+ export declare const arbLLMErrorCode: fc.Arbitrary<string>;
158
+ /**
159
+ * 风险级别
160
+ */
161
+ export declare const arbRiskLevel: fc.Arbitrary<string>;
162
+ /**
163
+ * 消息操作
164
+ */
165
+ export interface MessageOperation {
166
+ type: 'user' | 'assistant' | 'system';
167
+ content: string;
168
+ }
169
+ /**
170
+ * 消息操作生成器
171
+ */
172
+ export declare const arbMessageOperation: fc.Arbitrary<MessageOperation>;
173
+ /**
174
+ * 消息操作序列
175
+ */
176
+ export declare const arbMessageOperations: fc.Arbitrary<MessageOperation[]>;
177
+ /**
178
+ * 工具调用
179
+ */
180
+ export declare const arbToolCall: fc.Arbitrary<{
181
+ id: string;
182
+ type: "function";
183
+ function: {
184
+ name: string;
185
+ arguments: string;
186
+ };
187
+ }>;
188
+ /**
189
+ * 工具调用数组
190
+ */
191
+ export declare const arbToolCalls: fc.Arbitrary<{
192
+ id: string;
193
+ type: "function";
194
+ function: {
195
+ name: string;
196
+ arguments: string;
197
+ };
198
+ }[]>;
199
+ /**
200
+ * LLM 响应
201
+ */
202
+ export declare const arbLLMResponse: fc.Arbitrary<{
203
+ content: string;
204
+ toolCalls: any;
205
+ }>;
206
+ /**
207
+ * 创建唯一标识符生成器
208
+ *
209
+ * @param prefix - 前缀
210
+ */
211
+ export declare function arbUniqueId(prefix: string): fc.Arbitrary<string>;
212
+ /**
213
+ * 创建带索引的唯一标识符生成器
214
+ *
215
+ * @param prefix - 前缀
216
+ */
217
+ export declare function arbIndexedId(prefix: string): fc.Arbitrary<string>;
218
+ /**
219
+ * 创建枚举生成器
220
+ *
221
+ * @param values - 枚举值数组
222
+ */
223
+ export declare function arbEnum<T extends string>(...values: T[]): fc.Arbitrary<T>;
224
+ /**
225
+ * 创建可选值生成器
226
+ *
227
+ * @param arb - 基础生成器
228
+ */
229
+ export declare function arbOptional<T>(arb: fc.Arbitrary<T>): fc.Arbitrary<T | undefined>;
230
+ //# sourceMappingURL=arbitraries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arbitraries.d.ts","sourceRoot":"","sources":["../../src/test-utils/arbitraries.ts"],"names":[],"mappings":"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"}