@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.
- package/LICENSE +21 -0
- package/README.md +370 -0
- package/README.zh-CN.md +372 -0
- package/dist/audit/index.d.ts +9 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +9 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/logger.d.ts +211 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/logger.js +268 -0
- package/dist/audit/logger.js.map +1 -0
- package/dist/audit/query.d.ts +164 -0
- package/dist/audit/query.d.ts.map +1 -0
- package/dist/audit/query.js +250 -0
- package/dist/audit/query.js.map +1 -0
- package/dist/conversation/context-builder.d.ts +119 -0
- package/dist/conversation/context-builder.d.ts.map +1 -0
- package/dist/conversation/context-builder.js +252 -0
- package/dist/conversation/context-builder.js.map +1 -0
- package/dist/conversation/index.d.ts +10 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +10 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/message-store.d.ts +231 -0
- package/dist/conversation/message-store.d.ts.map +1 -0
- package/dist/conversation/message-store.js +404 -0
- package/dist/conversation/message-store.js.map +1 -0
- package/dist/conversation/session.d.ts +201 -0
- package/dist/conversation/session.d.ts.map +1 -0
- package/dist/conversation/session.js +285 -0
- package/dist/conversation/session.js.map +1 -0
- package/dist/core/agent.d.ts +277 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +674 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/agentic-loop.d.ts +98 -0
- package/dist/core/agentic-loop.d.ts.map +1 -0
- package/dist/core/agentic-loop.js +496 -0
- package/dist/core/agentic-loop.js.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +14 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/intent-parser.d.ts +101 -0
- package/dist/core/intent-parser.d.ts.map +1 -0
- package/dist/core/intent-parser.js +221 -0
- package/dist/core/intent-parser.js.map +1 -0
- package/dist/core/plan-generator.d.ts +133 -0
- package/dist/core/plan-generator.d.ts.map +1 -0
- package/dist/core/plan-generator.js +294 -0
- package/dist/core/plan-generator.js.map +1 -0
- package/dist/core/plugin-manager.d.ts +120 -0
- package/dist/core/plugin-manager.d.ts.map +1 -0
- package/dist/core/plugin-manager.js +369 -0
- package/dist/core/plugin-manager.js.map +1 -0
- package/dist/core/response-handler.d.ts +141 -0
- package/dist/core/response-handler.d.ts.map +1 -0
- package/dist/core/response-handler.js +384 -0
- package/dist/core/response-handler.js.map +1 -0
- package/dist/core/tool-executor.d.ts +143 -0
- package/dist/core/tool-executor.d.ts.map +1 -0
- package/dist/core/tool-executor.js +354 -0
- package/dist/core/tool-executor.js.map +1 -0
- package/dist/core/tool-registry.d.ts +133 -0
- package/dist/core/tool-registry.d.ts.map +1 -0
- package/dist/core/tool-registry.js +252 -0
- package/dist/core/tool-registry.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/chunker.d.ts +78 -0
- package/dist/knowledge/chunker.d.ts.map +1 -0
- package/dist/knowledge/chunker.js +233 -0
- package/dist/knowledge/chunker.js.map +1 -0
- package/dist/knowledge/embedder.d.ts +93 -0
- package/dist/knowledge/embedder.d.ts.map +1 -0
- package/dist/knowledge/embedder.js +205 -0
- package/dist/knowledge/embedder.js.map +1 -0
- package/dist/knowledge/index.d.ts +10 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +11 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/loaders/index.d.ts +10 -0
- package/dist/knowledge/loaders/index.d.ts.map +1 -0
- package/dist/knowledge/loaders/index.js +10 -0
- package/dist/knowledge/loaders/index.js.map +1 -0
- package/dist/knowledge/loaders/markdown.d.ts +88 -0
- package/dist/knowledge/loaders/markdown.d.ts.map +1 -0
- package/dist/knowledge/loaders/markdown.js +205 -0
- package/dist/knowledge/loaders/markdown.js.map +1 -0
- package/dist/knowledge/loaders/yaml.d.ts +112 -0
- package/dist/knowledge/loaders/yaml.d.ts.map +1 -0
- package/dist/knowledge/loaders/yaml.js +368 -0
- package/dist/knowledge/loaders/yaml.js.map +1 -0
- package/dist/knowledge/retriever.d.ts +144 -0
- package/dist/knowledge/retriever.d.ts.map +1 -0
- package/dist/knowledge/retriever.js +399 -0
- package/dist/knowledge/retriever.js.map +1 -0
- package/dist/knowledge/store.d.ts +146 -0
- package/dist/knowledge/store.d.ts.map +1 -0
- package/dist/knowledge/store.js +420 -0
- package/dist/knowledge/store.js.map +1 -0
- package/dist/llm/adapter.d.ts +194 -0
- package/dist/llm/adapter.d.ts.map +1 -0
- package/dist/llm/adapter.js +42 -0
- package/dist/llm/adapter.js.map +1 -0
- package/dist/llm/adapters/anyrouter.d.ts +84 -0
- package/dist/llm/adapters/anyrouter.d.ts.map +1 -0
- package/dist/llm/adapters/anyrouter.js +372 -0
- package/dist/llm/adapters/anyrouter.js.map +1 -0
- package/dist/llm/adapters/claude.d.ts +66 -0
- package/dist/llm/adapters/claude.d.ts.map +1 -0
- package/dist/llm/adapters/claude.js +323 -0
- package/dist/llm/adapters/claude.js.map +1 -0
- package/dist/llm/adapters/index.d.ts +12 -0
- package/dist/llm/adapters/index.d.ts.map +1 -0
- package/dist/llm/adapters/index.js +12 -0
- package/dist/llm/adapters/index.js.map +1 -0
- package/dist/llm/adapters/mimo.d.ts +85 -0
- package/dist/llm/adapters/mimo.d.ts.map +1 -0
- package/dist/llm/adapters/mimo.js +316 -0
- package/dist/llm/adapters/mimo.js.map +1 -0
- package/dist/llm/adapters/openai.d.ts +53 -0
- package/dist/llm/adapters/openai.d.ts.map +1 -0
- package/dist/llm/adapters/openai.js +293 -0
- package/dist/llm/adapters/openai.js.map +1 -0
- package/dist/llm/adapters/qwen.d.ts +53 -0
- package/dist/llm/adapters/qwen.d.ts.map +1 -0
- package/dist/llm/adapters/qwen.js +299 -0
- package/dist/llm/adapters/qwen.js.map +1 -0
- package/dist/llm/adapters/siliconflow.d.ts +69 -0
- package/dist/llm/adapters/siliconflow.d.ts.map +1 -0
- package/dist/llm/adapters/siliconflow.js +331 -0
- package/dist/llm/adapters/siliconflow.js.map +1 -0
- package/dist/llm/index.d.ts +9 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +12 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/manager.d.ts +97 -0
- package/dist/llm/manager.d.ts.map +1 -0
- package/dist/llm/manager.js +337 -0
- package/dist/llm/manager.js.map +1 -0
- package/dist/test-utils/arbitraries.d.ts +230 -0
- package/dist/test-utils/arbitraries.d.ts.map +1 -0
- package/dist/test-utils/arbitraries.js +280 -0
- package/dist/test-utils/arbitraries.js.map +1 -0
- package/dist/test-utils/cleanup.d.ts +184 -0
- package/dist/test-utils/cleanup.d.ts.map +1 -0
- package/dist/test-utils/cleanup.js +282 -0
- package/dist/test-utils/cleanup.js.map +1 -0
- package/dist/test-utils/config.d.ts +80 -0
- package/dist/test-utils/config.d.ts.map +1 -0
- package/dist/test-utils/config.js +94 -0
- package/dist/test-utils/config.js.map +1 -0
- package/dist/test-utils/index.d.ts +10 -0
- package/dist/test-utils/index.d.ts.map +1 -0
- package/dist/test-utils/index.js +36 -0
- package/dist/test-utils/index.js.map +1 -0
- package/dist/test-utils/mocks.d.ts +170 -0
- package/dist/test-utils/mocks.d.ts.map +1 -0
- package/dist/test-utils/mocks.js +281 -0
- package/dist/test-utils/mocks.js.map +1 -0
- package/dist/types/config.d.ts +170 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +120 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/knowledge.d.ts +95 -0
- package/dist/types/knowledge.d.ts.map +1 -0
- package/dist/types/knowledge.js +7 -0
- package/dist/types/knowledge.js.map +1 -0
- package/dist/types/loop.d.ts +148 -0
- package/dist/types/loop.d.ts.map +1 -0
- package/dist/types/loop.js +16 -0
- package/dist/types/loop.js.map +1 -0
- package/dist/types/plugin.d.ts +137 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +15 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/response.d.ts +186 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +99 -0
- package/dist/types/response.js.map +1 -0
- package/dist/types/streaming.d.ts +478 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/streaming.js +483 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/tool.d.ts +118 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +42 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/error.d.ts +22 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +36 -0
- package/dist/utils/error.js.map +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 测试清理工具
|
|
3
|
+
*
|
|
4
|
+
* 确保测试后资源被正确清理,避免测试间的状态污染
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 清理管理器
|
|
8
|
+
*
|
|
9
|
+
* 管理测试清理函数的注册和执行
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const cleanup = new CleanupManager();
|
|
14
|
+
*
|
|
15
|
+
* // 注册清理函数
|
|
16
|
+
* cleanup.register(() => store.clear());
|
|
17
|
+
* cleanup.register(() => connection.close());
|
|
18
|
+
*
|
|
19
|
+
* // 测试结束后执行清理
|
|
20
|
+
* await cleanup.cleanup();
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export class CleanupManager {
|
|
24
|
+
cleanupFns = [];
|
|
25
|
+
cleaned = false;
|
|
26
|
+
/**
|
|
27
|
+
* 注册清理函数
|
|
28
|
+
*
|
|
29
|
+
* @param fn - 清理函数
|
|
30
|
+
* @returns this(支持链式调用)
|
|
31
|
+
*/
|
|
32
|
+
register(fn) {
|
|
33
|
+
if (this.cleaned) {
|
|
34
|
+
throw new Error('Cannot register cleanup after cleanup has been called');
|
|
35
|
+
}
|
|
36
|
+
this.cleanupFns.push(fn);
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 执行所有清理函数
|
|
41
|
+
*
|
|
42
|
+
* 清理函数按注册的逆序执行(后注册的先清理)
|
|
43
|
+
* 即使某个清理函数失败,也会继续执行其他清理函数
|
|
44
|
+
*
|
|
45
|
+
* @throws AggregateError 如果有清理函数失败
|
|
46
|
+
*/
|
|
47
|
+
async cleanup() {
|
|
48
|
+
if (this.cleaned) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const errors = [];
|
|
52
|
+
// 逆序执行清理(后注册的先清理)
|
|
53
|
+
for (const fn of this.cleanupFns.reverse()) {
|
|
54
|
+
try {
|
|
55
|
+
await fn();
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
errors.push(error instanceof Error ? error : new Error(String(error)));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
this.cleanupFns = [];
|
|
62
|
+
this.cleaned = true;
|
|
63
|
+
if (errors.length > 0) {
|
|
64
|
+
throw new AggregateError(errors, `Cleanup failed with ${errors.length} error(s)`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 重置清理管理器
|
|
69
|
+
*
|
|
70
|
+
* 清除所有已注册的清理函数,允许重新使用
|
|
71
|
+
*/
|
|
72
|
+
reset() {
|
|
73
|
+
this.cleanupFns = [];
|
|
74
|
+
this.cleaned = false;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 获取已注册的清理函数数量
|
|
78
|
+
*/
|
|
79
|
+
get count() {
|
|
80
|
+
return this.cleanupFns.length;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 检查是否已执行清理
|
|
84
|
+
*/
|
|
85
|
+
get isCleaned() {
|
|
86
|
+
return this.cleaned;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* 创建带自动清理的测试上下文
|
|
91
|
+
*
|
|
92
|
+
* @param setup - 设置函数,接收 CleanupManager 并返回测试上下文
|
|
93
|
+
* @returns 异步函数,执行设置并在完成后自动清理
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const runTest = withCleanup(async (cleanup) => {
|
|
98
|
+
* const store = new KnowledgeStore();
|
|
99
|
+
* cleanup.register(() => store.clear());
|
|
100
|
+
* return store;
|
|
101
|
+
* });
|
|
102
|
+
*
|
|
103
|
+
* const store = await runTest();
|
|
104
|
+
* // 使用 store...
|
|
105
|
+
* // 函数返回后自动清理
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export function withCleanup(setup) {
|
|
109
|
+
return async () => {
|
|
110
|
+
const cleanupManager = new CleanupManager();
|
|
111
|
+
const result = await setup(cleanupManager);
|
|
112
|
+
return {
|
|
113
|
+
result,
|
|
114
|
+
cleanup: () => cleanupManager.cleanup(),
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 创建测试夹具
|
|
120
|
+
*
|
|
121
|
+
* 提供 setup 和 teardown 的便捷封装
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const fixture = createTestFixture(
|
|
126
|
+
* async () => {
|
|
127
|
+
* const store = new KnowledgeStore();
|
|
128
|
+
* await store.initialize();
|
|
129
|
+
* return store;
|
|
130
|
+
* },
|
|
131
|
+
* async (store) => {
|
|
132
|
+
* await store.clear();
|
|
133
|
+
* await store.close();
|
|
134
|
+
* }
|
|
135
|
+
* );
|
|
136
|
+
*
|
|
137
|
+
* // 在测试中使用
|
|
138
|
+
* const store = await fixture.setup();
|
|
139
|
+
* // ... 测试代码
|
|
140
|
+
* await fixture.teardown(store);
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
export function createTestFixture(setup, teardown) {
|
|
144
|
+
return {
|
|
145
|
+
setup: async () => setup(),
|
|
146
|
+
teardown: async (instance) => teardown(instance),
|
|
147
|
+
run: async (fn) => {
|
|
148
|
+
const instance = await setup();
|
|
149
|
+
try {
|
|
150
|
+
return await fn(instance);
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
await teardown(instance);
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 资源池
|
|
160
|
+
*
|
|
161
|
+
* 管理可重用的测试资源
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```typescript
|
|
165
|
+
* const connectionPool = new ResourcePool(
|
|
166
|
+
* () => createConnection(),
|
|
167
|
+
* (conn) => conn.close()
|
|
168
|
+
* );
|
|
169
|
+
*
|
|
170
|
+
* const conn = await connectionPool.acquire();
|
|
171
|
+
* // 使用连接...
|
|
172
|
+
* await connectionPool.release(conn);
|
|
173
|
+
*
|
|
174
|
+
* // 测试结束后清理所有资源
|
|
175
|
+
* await connectionPool.cleanup();
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
export class ResourcePool {
|
|
179
|
+
available = [];
|
|
180
|
+
inUse = new Set();
|
|
181
|
+
createFn;
|
|
182
|
+
destroyFn;
|
|
183
|
+
constructor(create, destroy) {
|
|
184
|
+
this.createFn = create;
|
|
185
|
+
this.destroyFn = destroy;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* 获取资源
|
|
189
|
+
*/
|
|
190
|
+
async acquire() {
|
|
191
|
+
let resource = this.available.pop();
|
|
192
|
+
if (!resource) {
|
|
193
|
+
resource = await this.createFn();
|
|
194
|
+
}
|
|
195
|
+
this.inUse.add(resource);
|
|
196
|
+
return resource;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* 释放资源
|
|
200
|
+
*/
|
|
201
|
+
release(resource) {
|
|
202
|
+
if (this.inUse.has(resource)) {
|
|
203
|
+
this.inUse.delete(resource);
|
|
204
|
+
this.available.push(resource);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* 清理所有资源
|
|
209
|
+
*/
|
|
210
|
+
async cleanup() {
|
|
211
|
+
const allResources = [...this.available, ...this.inUse];
|
|
212
|
+
this.available = [];
|
|
213
|
+
this.inUse.clear();
|
|
214
|
+
const errors = [];
|
|
215
|
+
for (const resource of allResources) {
|
|
216
|
+
try {
|
|
217
|
+
await this.destroyFn(resource);
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
errors.push(error instanceof Error ? error : new Error(String(error)));
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (errors.length > 0) {
|
|
224
|
+
throw new AggregateError(errors, 'Resource cleanup failed');
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* 获取池状态
|
|
229
|
+
*/
|
|
230
|
+
get stats() {
|
|
231
|
+
return {
|
|
232
|
+
available: this.available.length,
|
|
233
|
+
inUse: this.inUse.size,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* 延迟执行器
|
|
239
|
+
*
|
|
240
|
+
* 收集操作并在最后批量执行
|
|
241
|
+
*/
|
|
242
|
+
export class DeferredExecutor {
|
|
243
|
+
operations = [];
|
|
244
|
+
/**
|
|
245
|
+
* 添加延迟操作
|
|
246
|
+
*/
|
|
247
|
+
defer(operation) {
|
|
248
|
+
this.operations.push(operation);
|
|
249
|
+
return this;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* 执行所有延迟操作
|
|
253
|
+
*/
|
|
254
|
+
async execute() {
|
|
255
|
+
const errors = [];
|
|
256
|
+
for (const op of this.operations) {
|
|
257
|
+
try {
|
|
258
|
+
await op();
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
errors.push(error instanceof Error ? error : new Error(String(error)));
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
this.operations = [];
|
|
265
|
+
if (errors.length > 0) {
|
|
266
|
+
throw new AggregateError(errors, 'Deferred execution failed');
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* 清除所有待执行操作
|
|
271
|
+
*/
|
|
272
|
+
clear() {
|
|
273
|
+
this.operations = [];
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* 获取待执行操作数量
|
|
277
|
+
*/
|
|
278
|
+
get count() {
|
|
279
|
+
return this.operations.length;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/test-utils/cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 统一的测试配置常量
|
|
3
|
+
*
|
|
4
|
+
* 提供测试运行次数、超时时间等配置的统一管理
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 测试配置常量
|
|
8
|
+
*/
|
|
9
|
+
export declare const TEST_CONFIG: {
|
|
10
|
+
/**
|
|
11
|
+
* Property-based 测试运行次数
|
|
12
|
+
*/
|
|
13
|
+
readonly PROPERTY_RUNS: {
|
|
14
|
+
/** 快速验证 - 用于开发时快速反馈 */
|
|
15
|
+
readonly FAST: 30;
|
|
16
|
+
/** 常规测试 - 用于本地完整测试 */
|
|
17
|
+
readonly NORMAL: 100;
|
|
18
|
+
/** 深度测试 - 用于 CI 环境 */
|
|
19
|
+
readonly THOROUGH: 200;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* 超时配置(毫秒)
|
|
23
|
+
*/
|
|
24
|
+
readonly TIMEOUT: {
|
|
25
|
+
/** 单元测试 */
|
|
26
|
+
readonly UNIT: 5000;
|
|
27
|
+
/** Property 测试 */
|
|
28
|
+
readonly PROPERTY: 30000;
|
|
29
|
+
/** E2E 测试 */
|
|
30
|
+
readonly E2E: 60000;
|
|
31
|
+
/** 集成测试 */
|
|
32
|
+
readonly INTEGRATION: 30000;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* 重试配置
|
|
36
|
+
*/
|
|
37
|
+
readonly RETRY: {
|
|
38
|
+
/** CI 环境重试次数 */
|
|
39
|
+
readonly CI: 2;
|
|
40
|
+
/** 本地环境重试次数 */
|
|
41
|
+
readonly LOCAL: 0;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* 根据环境获取 property 测试运行次数
|
|
46
|
+
*
|
|
47
|
+
* @param level - 测试级别
|
|
48
|
+
* @returns 运行次数
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* fc.assert(fc.property(...), { numRuns: getPropertyRuns('NORMAL') });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare function getPropertyRuns(level?: keyof typeof TEST_CONFIG.PROPERTY_RUNS): number;
|
|
56
|
+
/**
|
|
57
|
+
* 获取测试超时时间
|
|
58
|
+
*
|
|
59
|
+
* @param type - 测试类型
|
|
60
|
+
* @returns 超时时间(毫秒)
|
|
61
|
+
*/
|
|
62
|
+
export declare function getTestTimeout(type?: keyof typeof TEST_CONFIG.TIMEOUT): number;
|
|
63
|
+
/**
|
|
64
|
+
* 获取重试次数
|
|
65
|
+
*
|
|
66
|
+
* @returns 重试次数
|
|
67
|
+
*/
|
|
68
|
+
export declare function getRetryCount(): number;
|
|
69
|
+
/**
|
|
70
|
+
* 检查是否应该跳过 E2E 测试
|
|
71
|
+
*
|
|
72
|
+
* @param envVar - 环境变量名
|
|
73
|
+
* @returns 是否跳过
|
|
74
|
+
*/
|
|
75
|
+
export declare function shouldSkipE2E(envVar?: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* 检查是否在 CI 环境中运行
|
|
78
|
+
*/
|
|
79
|
+
export declare function isCI(): boolean;
|
|
80
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/test-utils/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;;QAED,uBAAuB;;QAEvB,sBAAsB;;QAEtB,sBAAsB;;;IAIxB;;OAEG;;QAED,WAAW;;QAEX,kBAAkB;;QAElB,aAAa;;QAEb,WAAW;;;IAIb;;OAEG;;QAED,gBAAgB;;QAEhB,eAAe;;;CAGT,CAAC;AAEX;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,OAAO,WAAW,CAAC,aAAwB,GAAG,MAAM,CAMhG;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,MAAM,OAAO,WAAW,CAAC,OAAgB,GAAG,MAAM,CAEtF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAgB,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,OAAO,CAE9B"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 统一的测试配置常量
|
|
3
|
+
*
|
|
4
|
+
* 提供测试运行次数、超时时间等配置的统一管理
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 测试配置常量
|
|
8
|
+
*/
|
|
9
|
+
export const TEST_CONFIG = {
|
|
10
|
+
/**
|
|
11
|
+
* Property-based 测试运行次数
|
|
12
|
+
*/
|
|
13
|
+
PROPERTY_RUNS: {
|
|
14
|
+
/** 快速验证 - 用于开发时快速反馈 */
|
|
15
|
+
FAST: 30,
|
|
16
|
+
/** 常规测试 - 用于本地完整测试 */
|
|
17
|
+
NORMAL: 100,
|
|
18
|
+
/** 深度测试 - 用于 CI 环境 */
|
|
19
|
+
THOROUGH: 200,
|
|
20
|
+
},
|
|
21
|
+
/**
|
|
22
|
+
* 超时配置(毫秒)
|
|
23
|
+
*/
|
|
24
|
+
TIMEOUT: {
|
|
25
|
+
/** 单元测试 */
|
|
26
|
+
UNIT: 5000,
|
|
27
|
+
/** Property 测试 */
|
|
28
|
+
PROPERTY: 30000,
|
|
29
|
+
/** E2E 测试 */
|
|
30
|
+
E2E: 60000,
|
|
31
|
+
/** 集成测试 */
|
|
32
|
+
INTEGRATION: 30000,
|
|
33
|
+
},
|
|
34
|
+
/**
|
|
35
|
+
* 重试配置
|
|
36
|
+
*/
|
|
37
|
+
RETRY: {
|
|
38
|
+
/** CI 环境重试次数 */
|
|
39
|
+
CI: 2,
|
|
40
|
+
/** 本地环境重试次数 */
|
|
41
|
+
LOCAL: 0,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* 根据环境获取 property 测试运行次数
|
|
46
|
+
*
|
|
47
|
+
* @param level - 测试级别
|
|
48
|
+
* @returns 运行次数
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* fc.assert(fc.property(...), { numRuns: getPropertyRuns('NORMAL') });
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function getPropertyRuns(level = 'NORMAL') {
|
|
56
|
+
// CI 环境使用更多运行次数
|
|
57
|
+
if (process.env.CI) {
|
|
58
|
+
return TEST_CONFIG.PROPERTY_RUNS.THOROUGH;
|
|
59
|
+
}
|
|
60
|
+
return TEST_CONFIG.PROPERTY_RUNS[level];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 获取测试超时时间
|
|
64
|
+
*
|
|
65
|
+
* @param type - 测试类型
|
|
66
|
+
* @returns 超时时间(毫秒)
|
|
67
|
+
*/
|
|
68
|
+
export function getTestTimeout(type = 'UNIT') {
|
|
69
|
+
return TEST_CONFIG.TIMEOUT[type];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 获取重试次数
|
|
73
|
+
*
|
|
74
|
+
* @returns 重试次数
|
|
75
|
+
*/
|
|
76
|
+
export function getRetryCount() {
|
|
77
|
+
return process.env.CI ? TEST_CONFIG.RETRY.CI : TEST_CONFIG.RETRY.LOCAL;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 检查是否应该跳过 E2E 测试
|
|
81
|
+
*
|
|
82
|
+
* @param envVar - 环境变量名
|
|
83
|
+
* @returns 是否跳过
|
|
84
|
+
*/
|
|
85
|
+
export function shouldSkipE2E(envVar = 'E2E_API_KEY') {
|
|
86
|
+
return !process.env[envVar];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 检查是否在 CI 环境中运行
|
|
90
|
+
*/
|
|
91
|
+
export function isCI() {
|
|
92
|
+
return !!process.env.CI;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/test-utils/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;;OAEG;IACH,aAAa,EAAE;QACb,uBAAuB;QACvB,IAAI,EAAE,EAAE;QACR,sBAAsB;QACtB,MAAM,EAAE,GAAG;QACX,sBAAsB;QACtB,QAAQ,EAAE,GAAG;KACd;IAED;;OAEG;IACH,OAAO,EAAE;QACP,WAAW;QACX,IAAI,EAAE,IAAI;QACV,kBAAkB;QAClB,QAAQ,EAAE,KAAK;QACf,aAAa;QACb,GAAG,EAAE,KAAK;QACV,WAAW;QACX,WAAW,EAAE,KAAK;KACnB;IAED;;OAEG;IACH,KAAK,EAAE;QACL,gBAAgB;QAChB,EAAE,EAAE,CAAC;QACL,eAAe;QACf,KAAK,EAAE,CAAC;KACT;CACO,CAAC;AAEX;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgD,QAAQ;IACtF,gBAAgB;IAChB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;IAC5C,CAAC;IACD,OAAO,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAyC,MAAM;IAC5E,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAM,GAAG,aAAa;IAClD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 测试工具统一导出
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
export { TEST_CONFIG, getPropertyRuns, getTestTimeout, getRetryCount, shouldSkipE2E, isCI, } from './config.js';
|
|
7
|
+
export { type MockLLMResponse, type MockToolOptions, type MockPluginOptions, type MockLLMManagerType, createMockLLMManager, createResettableMockLLMManager, createMockTool, createMockToolWithParams, createMockPluginContext, createMockToolContext, createMockPlugin, createTestAgentConfig, createTestAgentConfigWithConfirmation, createToolCallResponses, createInfiniteToolCallResponses, } from './mocks.js';
|
|
8
|
+
export { arbIdentifier, arbPluginName, arbToolName, arbNamespace, arbCategory, arbSessionId, arbMessageId, arbMessageRole, arbResponseType, arbNonEmptyString, arbMessageContent, arbUserMessage, arbSafeString, arbJsonValue, arbMetadata, arbSimpleObject, arbToolArgs, arbErrorCode, arbToolResult, arbSuccessToolResult, arbFailureToolResult, arbPositiveInt, arbNonNegativeInt, arbDurationMs, arbTemperature, arbMaxTokens, arbMaxIterations, arbTimestamp, arbPastTimestamp, arbLLMProvider, arbLLMTask, arbLLMErrorCode, arbRiskLevel, type MessageOperation, arbMessageOperation, arbMessageOperations, arbToolCall, arbToolCalls, arbLLMResponse, arbUniqueId, arbIndexedId, arbEnum, arbOptional, } from './arbitraries.js';
|
|
9
|
+
export { type CleanupFn, CleanupManager, withCleanup, createTestFixture, ResourcePool, DeferredExecutor, } from './cleanup.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,EACb,aAAa,EACb,IAAI,GACL,MAAM,aAAa,CAAC;AAGrB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAEvB,oBAAoB,EACpB,8BAA8B,EAC9B,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,qCAAqC,EAErC,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,YAAY,CAAC;AAGpB,OAAO,EAEL,aAAa,EACb,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EAEX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EAEf,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,eAAe,EAEf,WAAW,EACX,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EAEpB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EAEhB,YAAY,EACZ,gBAAgB,EAEhB,cAAc,EACd,UAAU,EACV,eAAe,EACf,YAAY,EAEZ,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,cAAc,EAEd,WAAW,EACX,YAAY,EACZ,OAAO,EACP,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,KAAK,SAAS,EACd,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 测试工具统一导出
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
// 配置
|
|
7
|
+
export { TEST_CONFIG, getPropertyRuns, getTestTimeout, getRetryCount, shouldSkipE2E, isCI, } from './config.js';
|
|
8
|
+
// Mock 工厂
|
|
9
|
+
export {
|
|
10
|
+
// Factories
|
|
11
|
+
createMockLLMManager, createResettableMockLLMManager, createMockTool, createMockToolWithParams, createMockPluginContext, createMockToolContext, createMockPlugin, createTestAgentConfig, createTestAgentConfigWithConfirmation,
|
|
12
|
+
// Helpers
|
|
13
|
+
createToolCallResponses, createInfiniteToolCallResponses, } from './mocks.js';
|
|
14
|
+
// Arbitrary 生成器
|
|
15
|
+
export {
|
|
16
|
+
// 标识符
|
|
17
|
+
arbIdentifier, arbPluginName, arbToolName, arbNamespace, arbCategory,
|
|
18
|
+
// Session
|
|
19
|
+
arbSessionId, arbMessageId, arbMessageRole, arbResponseType,
|
|
20
|
+
// 字符串
|
|
21
|
+
arbNonEmptyString, arbMessageContent, arbUserMessage, arbSafeString,
|
|
22
|
+
// JSON
|
|
23
|
+
arbJsonValue, arbMetadata, arbSimpleObject,
|
|
24
|
+
// 工具
|
|
25
|
+
arbToolArgs, arbErrorCode, arbToolResult, arbSuccessToolResult, arbFailureToolResult,
|
|
26
|
+
// 数值
|
|
27
|
+
arbPositiveInt, arbNonNegativeInt, arbDurationMs, arbTemperature, arbMaxTokens, arbMaxIterations,
|
|
28
|
+
// 时间
|
|
29
|
+
arbTimestamp, arbPastTimestamp,
|
|
30
|
+
// LLM
|
|
31
|
+
arbLLMProvider, arbLLMTask, arbLLMErrorCode, arbRiskLevel, arbMessageOperation, arbMessageOperations, arbToolCall, arbToolCalls, arbLLMResponse,
|
|
32
|
+
// 辅助函数
|
|
33
|
+
arbUniqueId, arbIndexedId, arbEnum, arbOptional, } from './arbitraries.js';
|
|
34
|
+
// 清理工具
|
|
35
|
+
export { CleanupManager, withCleanup, createTestFixture, ResourcePool, DeferredExecutor, } from './cleanup.js';
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,KAAK;AACL,OAAO,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,EACb,aAAa,EACb,IAAI,GACL,MAAM,aAAa,CAAC;AAErB,UAAU;AACV,OAAO;AAML,YAAY;AACZ,oBAAoB,EACpB,8BAA8B,EAC9B,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,qCAAqC;AACrC,UAAU;AACV,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,OAAO;AACL,MAAM;AACN,aAAa,EACb,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW;AACX,UAAU;AACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe;AACf,MAAM;AACN,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,aAAa;AACb,OAAO;AACP,YAAY,EACZ,WAAW,EACX,eAAe;AACf,KAAK;AACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,oBAAoB;AACpB,KAAK;AACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB;AAChB,KAAK;AACL,YAAY,EACZ,gBAAgB;AAChB,MAAM;AACN,cAAc,EACd,UAAU,EACV,eAAe,EACf,YAAY,EAGZ,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,cAAc;AACd,OAAO;AACP,WAAW,EACX,YAAY,EACZ,OAAO,EACP,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO;AACP,OAAO,EAEL,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
|