xx-ai-cli 0.1.8 → 0.1.10

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.
@@ -0,0 +1,480 @@
1
+ import chalk from 'chalk';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import os from 'os';
5
+ import { config, PROVIDER_LABELS } from '../core/config.js';
6
+ import { chat } from '../core/stream.js';
7
+ import { clearToolCache, executeTool } from '../core/tools.js';
8
+ import { theme } from '../ui/renderer.js';
9
+ // ─── 测试用例素材 ─────────────────────────────────────────────
10
+ function makeSampleTs() {
11
+ return `// benchmark_sample.ts - TypeScript 工具函数示例
12
+ import { EventEmitter } from 'events';
13
+
14
+ // 定义用户接口
15
+ interface User {
16
+ id: number;
17
+ name: string;
18
+ email: string;
19
+ createdAt: Date;
20
+ }
21
+
22
+ // Line 10: 格式化用户显示名称 - 取 name 的第一个空格前的部分作为昵称
23
+ function formatDisplayName(user: User): string {
24
+ return user.name.split(' ')[0];
25
+ }
26
+
27
+ function calculateAge(birthYear: number): number {
28
+ return new Date().getFullYear() - birthYear;
29
+ }
30
+
31
+ function formatEmail(email: string): string {
32
+ const [local, domain] = email.split('@');
33
+ return \`\${local[0]}***@\${domain}\`;
34
+ }
35
+
36
+ class UserManager extends EventEmitter {
37
+ private users: Map<number, User> = new Map();
38
+
39
+ addUser(user: User): void {
40
+ this.users.set(user.id, user);
41
+ this.emit('userAdded', user);
42
+ }
43
+
44
+ getUser(id: number): User | undefined {
45
+ return this.users.get(id);
46
+ }
47
+
48
+ getAllUsers(): User[] {
49
+ return Array.from(this.users.values());
50
+ }
51
+
52
+ removeUser(id: number): boolean {
53
+ return this.users.delete(id);
54
+ }
55
+ }
56
+
57
+ export { User, UserManager, formatDisplayName, calculateAge, formatEmail };
58
+ `;
59
+ }
60
+ function makeBuggyTs() {
61
+ return `// benchmark_buggy.ts - 包含一个已知 off-by-one bug
62
+ function calculateTotal(items: { price: number; quantity: number }[]): number {
63
+ let total = 0;
64
+ // BUG: 循环条件应为 i < items.length,使用 <= 会导致越界访问 undefined
65
+ for (let i = 0; i <= items.length; i++) {
66
+ total += items[i].price * items[i].quantity;
67
+ }
68
+ return total;
69
+ }
70
+
71
+ function formatPrice(amount: number): string {
72
+ return \`¥\${amount.toFixed(2)}\`;
73
+ }
74
+
75
+ export { calculateTotal, formatPrice };
76
+ `;
77
+ }
78
+ function makeProjectFiles(tmpDir) {
79
+ fs.writeFileSync(path.join(tmpDir, 'benchmark_readme.md'), '# Mini Project\n\n这是一个基准测试用的小项目。\n\n## 功能列表\n\n- 功能一:数据处理\n- 功能二:格式化输出\n');
80
+ fs.writeFileSync(path.join(tmpDir, 'benchmark_index.ts'), 'export const VERSION = "1.0.0";\nexport { calculateTotal } from "./benchmark_calc";\n');
81
+ fs.writeFileSync(path.join(tmpDir, 'benchmark_calc.ts'), 'export function calculateTotal(a: number, b: number): number { return a + b; }\n');
82
+ }
83
+ // ─── 5 个标准测试用例 ─────────────────────────────────────────
84
+ function getBenchmarkCases() {
85
+ return [
86
+ {
87
+ id: 1,
88
+ name: '纯对话基线',
89
+ category: 'zero-tool',
90
+ description: '无工具调用,测量工具自身固定税(System Prompt + 工具定义)',
91
+ input: '用一句话解释什么是 TypeScript 的泛型,尽量简洁。',
92
+ useTools: false,
93
+ },
94
+ {
95
+ id: 2,
96
+ name: '单文件读取',
97
+ category: 'file-read',
98
+ description: '读取一个 40 行的 TS 文件,回答关于第 10 行的问题',
99
+ input: '当前目录下有 benchmark_sample.ts,直接用 read_file 读取它(路径就是 benchmark_sample.ts),只用一句话告诉我第 10 行的函数做了什么。',
100
+ setup: (tmpDir) => {
101
+ fs.writeFileSync(path.join(tmpDir, 'benchmark_sample.ts'), makeSampleTs());
102
+ },
103
+ useTools: true,
104
+ maxSteps: 3,
105
+ },
106
+ {
107
+ id: 3,
108
+ name: 'Bug 修复(单步编辑)',
109
+ category: 'file-edit',
110
+ description: '读取含 bug 的文件,找出并修复越界访问问题',
111
+ input: '当前目录下有 benchmark_buggy.ts,直接用 read_file 读取它(路径就是 benchmark_buggy.ts),找出循环条件 bug,用 replace_in_file 修复(只改这一处)。',
112
+ setup: (tmpDir) => {
113
+ fs.writeFileSync(path.join(tmpDir, 'benchmark_buggy.ts'), makeBuggyTs());
114
+ },
115
+ useTools: true,
116
+ maxSteps: 4,
117
+ },
118
+ {
119
+ id: 4,
120
+ name: '多步骤项目任务',
121
+ category: 'multi-step',
122
+ description: '浏览 3 个项目文件后修改 README,测试历史消息增长曲线',
123
+ input: '当前目录(用 "." 表示)有 benchmark_readme.md、benchmark_index.ts、benchmark_calc.ts,依次执行:1) project_tree 路径用 ".";2) read_file 读取 benchmark_readme.md;3) replace_in_file 在末尾追加 "## 贡献指南"。',
124
+ setup: (tmpDir) => {
125
+ makeProjectFiles(tmpDir);
126
+ },
127
+ useTools: true,
128
+ maxSteps: 5,
129
+ },
130
+ {
131
+ id: 5,
132
+ name: '搜索 + 总结',
133
+ category: 'search',
134
+ description: '调用必应搜索(无需 Key),整合结果输出摘要',
135
+ input: '只调用一次 web_search 搜索 "DeepSeek API 接入方法",拿到结果后直接用三句话总结,禁止重复搜索。',
136
+ useTools: true,
137
+ maxSteps: 3,
138
+ },
139
+ ];
140
+ }
141
+ // ─── Agent 轻量运行器(Benchmark 专用,自动确认)────────────
142
+ async function runAgentForBenchmark(input, systemPrompt, modelConfig, useTools, maxSteps, workdir) {
143
+ // benchmark 模式强制自动确认
144
+ config.set('agentAutoConfirm', true);
145
+ // 切换工作目录到临时目录,让工具能找到测试文件
146
+ const originalCwd = process.cwd();
147
+ process.chdir(workdir);
148
+ const messages = [
149
+ { role: 'system', content: systemPrompt },
150
+ { role: 'user', content: input },
151
+ ];
152
+ const stepBreakdown = [];
153
+ let step = 0;
154
+ let errorMsg;
155
+ // 根据原始用户输入动态选择工具集(与 agent.ts 保持一致)
156
+ const { selectTools } = await import('../core/tools.js');
157
+ const activeTools = useTools ? selectTools(input) : undefined;
158
+ try {
159
+ while (step < maxSteps) {
160
+ step++;
161
+ // 关键优化:如果上一步已经有工具结果(tool 角色消息),
162
+ // 说明当前步是「消化结果」步,不需要再提供工具(只需输出文本)
163
+ const lastMsg = messages[messages.length - 1];
164
+ const isAfterToolResult = lastMsg?.role === 'tool';
165
+ const tools = isAfterToolResult ? undefined : activeTools;
166
+ const response = await chat(modelConfig, messages, {
167
+ stream: false,
168
+ tools,
169
+ });
170
+ if (response.usage) {
171
+ stepBreakdown.push({
172
+ step,
173
+ promptTokens: response.usage.promptTokens,
174
+ completionTokens: response.usage.completionTokens,
175
+ totalTokens: response.usage.totalTokens,
176
+ });
177
+ }
178
+ // 有工具调用则继续
179
+ if (response.toolCalls && response.toolCalls.length > 0) {
180
+ messages.push({
181
+ role: 'assistant',
182
+ content: response.content ?? '',
183
+ tool_calls: response.toolCalls,
184
+ });
185
+ for (const toolCall of response.toolCalls) {
186
+ const result = await executeTool(toolCall);
187
+ messages.push({
188
+ role: 'tool',
189
+ content: result.content,
190
+ tool_call_id: result.tool_call_id,
191
+ });
192
+ }
193
+ continue;
194
+ }
195
+ // 纯文字回复:任务完成
196
+ messages.push({ role: 'assistant', content: response.content ?? '' });
197
+ break;
198
+ }
199
+ }
200
+ catch (err) {
201
+ errorMsg = err.message;
202
+ }
203
+ finally {
204
+ process.chdir(originalCwd);
205
+ config.set('agentAutoConfirm', false);
206
+ }
207
+ // apiCalls = stepBreakdown 的长度,即实际成功收到响应的次数
208
+ return { steps: step, apiCalls: stepBreakdown.length, stepBreakdown, error: errorMsg };
209
+ }
210
+ // ─── 费用估算 ─────────────────────────────────────────────────
211
+ function estimateCostYuan(totalTokens) {
212
+ const yuan = (totalTokens / 1_000_000) * 1.5;
213
+ if (yuan < 0.0001)
214
+ return '< ¥0.0001';
215
+ return `¥${yuan.toFixed(4)}`;
216
+ }
217
+ // ─── 固定税分解(Case 1 专用)────────────────────────────────
218
+ function analyzeFixedTax(stepBreakdown, systemPrompt, userInput) {
219
+ if (!stepBreakdown.length)
220
+ return undefined;
221
+ // token 估算:1 token ≈ 4 字符(中英文混合取均值)
222
+ const systemTokens = Math.ceil(systemPrompt.length / 3.5);
223
+ const userTokens = Math.ceil(userInput.length / 3.5);
224
+ const toolTokens = stepBreakdown[0].promptTokens - systemTokens - userTokens;
225
+ return {
226
+ systemPrompt: systemTokens,
227
+ toolDefinitions: Math.max(toolTokens, 0),
228
+ userMessage: userTokens,
229
+ };
230
+ }
231
+ // ─── 渲染结果表格 ─────────────────────────────────────────────
232
+ function renderTable(results, model) {
233
+ const cols = { id: 4, name: 16, cat: 11, input: 8, output: 7, total: 8, api: 4, steps: 5, cost: 10 };
234
+ const line = '─'.repeat(83);
235
+ console.log('\n');
236
+ console.log(chalk.bold(' XX-AI-CLI Token Benchmark'));
237
+ console.log(chalk.dim(` 模型: ${model} | 时间: ${new Date().toLocaleString('zh-CN')}`));
238
+ console.log(' ' + line);
239
+ const header = [
240
+ 'Case'.padEnd(cols.id),
241
+ '测试项目'.padEnd(cols.name),
242
+ '类型'.padEnd(cols.cat),
243
+ '上下文'.padStart(cols.input),
244
+ '输出'.padStart(cols.output),
245
+ '计费合计'.padStart(cols.total),
246
+ 'API'.padStart(cols.api),
247
+ '步数'.padStart(cols.steps),
248
+ '估算费用'.padStart(cols.cost),
249
+ ].join(' ');
250
+ console.log(' ' + chalk.bold(header));
251
+ console.log(' ' + line);
252
+ let totalPrompt = 0, totalCompletion = 0, totalAll = 0, totalApiCalls = 0;
253
+ for (const r of results) {
254
+ if (r.status === 'skip') {
255
+ console.log(' ' + [
256
+ String(r.id).padEnd(cols.id),
257
+ chalk.dim(r.name.slice(0, 14).padEnd(cols.name)),
258
+ chalk.dim(r.category.slice(0, 9).padEnd(cols.cat)),
259
+ chalk.dim(' — skip — —'.padStart(cols.input + cols.output + cols.total + cols.steps + cols.cost + 8)),
260
+ ].join(' '));
261
+ continue;
262
+ }
263
+ if (r.status === 'error') {
264
+ console.log(' ' + [
265
+ String(r.id).padEnd(cols.id),
266
+ chalk.red(r.name.slice(0, 14).padEnd(cols.name)),
267
+ r.category.slice(0, 9).padEnd(cols.cat),
268
+ chalk.red('ERROR').padStart(cols.input + cols.output + cols.total + cols.steps + cols.cost + 8),
269
+ ].join(' '));
270
+ continue;
271
+ }
272
+ totalPrompt += r.promptTokens;
273
+ totalCompletion += r.completionTokens;
274
+ totalAll += r.billedTokens;
275
+ totalApiCalls += r.apiCalls;
276
+ const row = [
277
+ chalk.cyan(String(r.id).padEnd(cols.id)),
278
+ r.name.slice(0, 14).padEnd(cols.name),
279
+ chalk.dim(r.category.slice(0, 9).padEnd(cols.cat)),
280
+ chalk.cyan(String(r.promptTokens).padStart(cols.input)),
281
+ String(r.completionTokens).padStart(cols.output),
282
+ chalk.bold(String(r.billedTokens).padStart(cols.total)),
283
+ chalk.magenta(String(r.apiCalls).padStart(cols.api)),
284
+ String(r.steps).padStart(cols.steps),
285
+ chalk.yellow(r.estimatedCost.padStart(cols.cost)),
286
+ ].join(' ');
287
+ console.log(' ' + row);
288
+ }
289
+ console.log(' ' + line);
290
+ console.log(' ' + [
291
+ chalk.bold('合计'.padEnd(cols.id + cols.name + cols.cat + 4)),
292
+ chalk.bold(String(totalPrompt).padStart(cols.input)),
293
+ chalk.bold(String(totalCompletion).padStart(cols.output)),
294
+ chalk.bold(String(totalAll).padStart(cols.total)),
295
+ chalk.bold.magenta(String(totalApiCalls).padStart(cols.api)),
296
+ ''.padStart(cols.steps),
297
+ chalk.bold.yellow(estimateCostYuan(totalAll).padStart(cols.cost)),
298
+ ].join(' '));
299
+ console.log(' ' + line);
300
+ }
301
+ // ─── 固定税分解展示(Case 1)─────────────────────────────────
302
+ function renderFixedTax(result) {
303
+ if (!result.fixedTaxBreakdown || result.status !== 'ok')
304
+ return;
305
+ const { systemPrompt, toolDefinitions, userMessage } = result.fixedTaxBreakdown;
306
+ const total = systemPrompt + toolDefinitions + userMessage;
307
+ console.log('\n' + chalk.bold(' 📊 Case 1 固定税分解(每次调用的最低开销)'));
308
+ console.log(chalk.dim(' ─────────────────────────────────────────'));
309
+ console.log(` 系统提示词 (System Prompt): ${chalk.cyan(String(systemPrompt).padStart(5))} tokens`);
310
+ console.log(` 工具定义 (Tool Schema): ${chalk.cyan(String(toolDefinitions).padStart(5))} tokens`);
311
+ console.log(` 用户消息 (User Message): ${chalk.cyan(String(userMessage).padStart(5))} tokens`);
312
+ console.log(chalk.dim(' ─────────────────────────────────────────'));
313
+ console.log(` 固定税合计: ${chalk.bold.cyan(String(total).padStart(5))} tokens / 每次调用`);
314
+ // 与 Claude Code 的架构对比
315
+ console.log('\n' + chalk.bold(' 🔍 架构对比参考(固定税部分)'));
316
+ console.log(chalk.dim(' 来源:社区逆向分析 / 开源项目源码,仅供参考'));
317
+ console.log(chalk.dim(' ─────────────────────────────────────────'));
318
+ const rows = [
319
+ ['XX-AI-CLI(本工具)', systemPrompt + toolDefinitions, '实测', true],
320
+ ['Aider(开源对标)', 2500, '源码统计', false],
321
+ ['Claude Code', 9000, '社区分析估算', false],
322
+ ['Cursor Agent', 6000, '泄露 prompt 估算', false],
323
+ ];
324
+ for (const [name, tokens, source, isUs] of rows) {
325
+ const bar = '█'.repeat(Math.min(Math.round(tokens / 200), 40));
326
+ const label = isUs ? chalk.green(name.padEnd(22)) : name.padEnd(22);
327
+ console.log(` ${label} ${chalk.dim(String(tokens).padStart(6))} tokens ${chalk.blue(bar)} ${chalk.dim(source)}`);
328
+ }
329
+ console.log(chalk.dim('\n 注:Claude Code 有 Prompt Caching(重复调用大幅减费),国内模型暂不支持此特性'));
330
+ }
331
+ // ─── 每步 token 增长曲线(Case 4)────────────────────────────
332
+ function renderGrowthCurve(result) {
333
+ if (result.category !== 'multi-step' || result.status !== 'ok')
334
+ return;
335
+ if (!result.stepBreakdown.length)
336
+ return;
337
+ console.log('\n' + chalk.bold(' 📈 Case 4 各步输入 token 增长(历史消息累积效应)'));
338
+ console.log(chalk.dim(' ─────────────────────────────────────────────'));
339
+ for (const s of result.stepBreakdown) {
340
+ const bar = '▓'.repeat(Math.min(Math.round(s.promptTokens / 80), 40));
341
+ console.log(` Step ${s.step} 输入 ${chalk.cyan(String(s.promptTokens).padStart(5))} tokens ${chalk.blue(bar)}`);
342
+ }
343
+ if (result.stepBreakdown.length >= 2) {
344
+ const first = result.stepBreakdown[0].promptTokens;
345
+ const last = result.stepBreakdown[result.stepBreakdown.length - 1].promptTokens;
346
+ const growth = ((last - first) / first * 100).toFixed(0);
347
+ console.log(chalk.dim(`\n 首步 → 末步输入增长 ${growth}%(滑动窗口限制在 20 条消息内)`));
348
+ }
349
+ }
350
+ // ─── 导出 JSON ────────────────────────────────────────────────
351
+ function exportResults(results, model) {
352
+ const outPath = path.join(process.cwd(), 'benchmark-result.json');
353
+ const payload = {
354
+ tool: 'xx-ai-cli',
355
+ version: 'latest',
356
+ model,
357
+ date: new Date().toISOString(),
358
+ cases: results,
359
+ summary: {
360
+ totalTokens: results.filter(r => r.status === 'ok').reduce((s, r) => s + r.billedTokens, 0),
361
+ totalCost: estimateCostYuan(results.filter(r => r.status === 'ok').reduce((s, r) => s + r.billedTokens, 0)),
362
+ },
363
+ };
364
+ fs.writeFileSync(outPath, JSON.stringify(payload, null, 2));
365
+ console.log('\n' + theme.success(`✔ 结果已导出: ${outPath}`));
366
+ console.log(chalk.dim(' 可发送给社区用于横向对比,或提交到 GitHub Issues'));
367
+ }
368
+ // ─── 主入口 ───────────────────────────────────────────────────
369
+ export async function benchmarkCommand(options = {}) {
370
+ const provider = options.model ?? config.get('defaultProvider');
371
+ const modelConfig = config.getProvider(provider);
372
+ const providerLabel = PROVIDER_LABELS[provider];
373
+ if (!modelConfig) {
374
+ console.log(theme.error(`未配置 ${providerLabel} 的 API Key,请先运行 xxcli init`));
375
+ process.exit(1);
376
+ }
377
+ const allCases = getBenchmarkCases();
378
+ const casesToRun = options.case
379
+ ? allCases.filter(c => c.id === options.case)
380
+ : allCases;
381
+ if (!casesToRun.length) {
382
+ console.log(theme.error(`找不到 Case ${options.case}`));
383
+ process.exit(1);
384
+ }
385
+ // System Prompt(与 agent.ts 保持一致)
386
+ const systemPrompt = `你是 XX-AI Agent,运行在命令行终端。工作目录:${process.cwd()}
387
+
388
+ 规则:
389
+ - 安装工具直接用 run_command: "xxcli install <工具名>",禁止先搜索
390
+ - 修改文件优先用 replace_in_file(比 write_file 省 token)
391
+ - 用中文简洁回复,不要重复已知信息
392
+ - 每步只做一件事,完成后再继续`;
393
+ console.log('\n' + chalk.bold('🧪 XX-AI-CLI Token Benchmark'));
394
+ console.log(chalk.dim(` 模型: ${providerLabel} | 共 ${casesToRun.length} 个测试用例\n`));
395
+ const results = [];
396
+ // 创建统一临时目录
397
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'xxcli-bench-'));
398
+ try {
399
+ for (const c of casesToRun) {
400
+ process.stdout.write(chalk.dim(` [${c.id}/${casesToRun.length}] ${c.name} ... `));
401
+ // 跳过需要搜索但未配置的 case
402
+ if (c.requiresSearch && !config.get('search')?.apiKey) {
403
+ process.stdout.write(chalk.yellow('skip(未配置搜索 Key)\n'));
404
+ results.push({
405
+ id: c.id, name: c.name, category: c.category,
406
+ promptTokens: 0, completionTokens: 0, billedTokens: 0,
407
+ apiCalls: 0,
408
+ steps: 0, stepBreakdown: [], durationMs: 0,
409
+ estimatedCost: '—', status: 'skip',
410
+ });
411
+ continue;
412
+ }
413
+ // 准备测试文件
414
+ if (c.setup)
415
+ c.setup(tmpDir);
416
+ clearToolCache();
417
+ const start = Date.now();
418
+ const { steps, apiCalls, stepBreakdown, error } = await runAgentForBenchmark(c.input, systemPrompt, modelConfig, c.useTools ?? false, c.maxSteps ?? 1, tmpDir);
419
+ const durationMs = Date.now() - start;
420
+ if (error && !stepBreakdown.length) {
421
+ process.stdout.write(chalk.red(`错误: ${error}\n`));
422
+ results.push({
423
+ id: c.id, name: c.name, category: c.category,
424
+ promptTokens: 0, completionTokens: 0, billedTokens: 0,
425
+ apiCalls: 0,
426
+ steps, stepBreakdown: [], durationMs,
427
+ estimatedCost: '—', status: 'error', error,
428
+ });
429
+ continue;
430
+ }
431
+ // 最终上下文大小 = 最后一步的 prompt tokens(与其他工具口径一致,不重复累加)
432
+ const lastPrompt = stepBreakdown[stepBreakdown.length - 1]?.promptTokens ?? 0;
433
+ // 实际产生的输出 tokens = 所有步骤 completion 之和
434
+ const totalCompletion = stepBreakdown.reduce((s, x) => s + x.completionTokens, 0);
435
+ // 计费总量 = 所有步骤 prompt+completion 之和(真实 API 费用)
436
+ const billedTokens = stepBreakdown.reduce((s, x) => s + x.totalTokens, 0);
437
+ process.stdout.write(chalk.green(`完成 (ctx:${lastPrompt} / billed:${billedTokens} tokens / api:${apiCalls}次, ${(durationMs / 1000).toFixed(1)}s)\n`));
438
+ const result = {
439
+ id: c.id, name: c.name, category: c.category,
440
+ promptTokens: lastPrompt,
441
+ completionTokens: totalCompletion,
442
+ billedTokens,
443
+ apiCalls,
444
+ steps,
445
+ stepBreakdown,
446
+ durationMs,
447
+ estimatedCost: estimateCostYuan(billedTokens),
448
+ status: 'ok',
449
+ };
450
+ // Case 1:分析固定税
451
+ if (c.id === 1) {
452
+ result.fixedTaxBreakdown = analyzeFixedTax(stepBreakdown, systemPrompt, c.input);
453
+ }
454
+ results.push(result);
455
+ }
456
+ }
457
+ finally {
458
+ // 清理临时文件
459
+ try {
460
+ fs.rmSync(tmpDir, { recursive: true });
461
+ }
462
+ catch { /* ignore */ }
463
+ }
464
+ // 渲染结果
465
+ renderTable(results, providerLabel);
466
+ // 固定税分解(Case 1)
467
+ const case1 = results.find(r => r.id === 1);
468
+ if (case1)
469
+ renderFixedTax(case1);
470
+ // 增长曲线(Case 4)
471
+ const case4 = results.find(r => r.id === 4);
472
+ if (case4)
473
+ renderGrowthCurve(case4);
474
+ // 导出
475
+ if (options.export)
476
+ exportResults(results, providerLabel);
477
+ console.log('\n' + chalk.dim(' 提示: 用 --export 导出 JSON,可与社区共享横向对比结果'));
478
+ console.log(chalk.dim(' 与其他工具对比请参考: https://github.com/xxyj/xx-ai-cli#benchmark\n'));
479
+ }
480
+ //# sourceMappingURL=benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/commands/benchmark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAoB,cAAc,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAsD1C,2DAA2D;AAE3D,SAAS,YAAY;IACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CR,CAAC;AACF,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;;;;;;;;;;;;;;;CAeR,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACxC,0EAA0E,CAC3E,CAAC;IACF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACvC,uFAAuF,CACxF,CAAC;IACF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACtC,kFAAkF,CACnF,CAAC;AACJ,CAAC;AAED,0DAA0D;AAC1D,SAAS,iBAAiB;IACxB,OAAO;QACL;YACE,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,uCAAuC;YACpD,KAAK,EAAE,gCAAgC;YACvC,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,gCAAgC;YAC7C,KAAK,EAAE,+FAA+F;YACtG,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;gBAChB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC;SACZ;QACD;YACE,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,yBAAyB;YACtC,KAAK,EAAE,8GAA8G;YACrH,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;gBAChB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC;SACZ;QACD;YACE,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,YAAY;YACtB,WAAW,EAAE,iCAAiC;YAC9C,KAAK,EAAE,+KAA+K;YACtL,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;gBAChB,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;YACD,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC;SACZ;QACD;YACE,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,yBAAyB;YACtC,KAAK,EAAE,+DAA+D;YACtE,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC;SACZ;KACF,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,KAAK,UAAU,oBAAoB,CACjC,KAAa,EACb,YAAoB,EACpB,WAA+D,EAC/D,QAAiB,EACjB,QAAgB,EAChB,OAAe;IAEf,qBAAqB;IACrB,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAErC,yBAAyB;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEvB,MAAM,QAAQ,GAAc;QAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;QACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;KACjC,CAAC;IAEF,MAAM,aAAa,GAAgB,EAAE,CAAC;IACtC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,QAA4B,CAAC;IAEjC,mCAAmC;IACnC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9D,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,QAAQ,EAAE,CAAC;YACvB,IAAI,EAAE,CAAC;YAEP,gCAAgC;YAChC,iCAAiC;YACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9C,MAAM,iBAAiB,GAAG,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC;YACnD,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;YAE1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE;gBACjD,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI;oBACJ,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;oBACzC,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,gBAAgB;oBACjD,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW;iBACxC,CAAC,CAAC;YACL,CAAC;YAED,WAAW;YACX,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;oBAC/B,UAAU,EAAE,QAAQ,CAAC,SAAS;iBACpB,CAAC,CAAC;gBAEd,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAuB,EAAE,CAAC;oBACxD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;oBAC3C,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;qBACvB,CAAC,CAAC;gBAChB,CAAC;gBACD,SAAS;YACX,CAAC;YAED,aAAa;YACb,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;YACtE,MAAM;QACR,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,GAAI,GAAa,CAAC,OAAO,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,4CAA4C;IAC5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACzF,CAAC;AAED,6DAA6D;AAC7D,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,IAAI,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC;IAC7C,IAAI,IAAI,GAAG,MAAM;QAAE,OAAO,WAAW,CAAC;IACtC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED,uDAAuD;AACvD,SAAS,eAAe,CACtB,aAA0B,EAC1B,YAAoB,EACpB,SAAiB;IAEjB,IAAI,CAAC,aAAa,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC5C,oCAAoC;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;IAC7E,OAAO;QACL,YAAY,EAAE,YAAY;QAC1B,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACxC,WAAW,EAAE,UAAU;KACxB,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,SAAS,WAAW,CAAC,OAAqB,EAAE,KAAa;IACvD,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACrG,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,YAAY,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG;QACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACrB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAEzB,IAAI,WAAW,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC;IAE1E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CACT,IAAI,GAAG;gBACL,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClD,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;aACzG,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CACT,IAAI,GAAG;gBACL,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBACvC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;aAChG,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;YACF,SAAS;QACX,CAAC;QAED,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC;QAC9B,eAAe,IAAI,CAAC,CAAC,gBAAgB,CAAC;QACtC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC;QAE3B,aAAa,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC5B,MAAM,GAAG,GAAG;YACV,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YACpC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CACT,IAAI,GAAG;QACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,uDAAuD;AACvD,SAAS,cAAc,CAAC,MAAkB;IACxC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO;IAChE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAChF,MAAM,KAAK,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAErG,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG;QACX,CAAC,gBAAgB,EAAE,YAAY,GAAG,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC;QAC9D,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;QACpC,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC;QACtC,CAAC,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC;KACP,CAAC;IAEzC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,wDAAwD;AACxD,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO;IACvE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;QAAE,OAAO;IAEzC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAE1E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QAChF,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,oBAAoB,CAAC,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,SAAS,aAAa,CAAC,OAAqB,EAAE,KAAa;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,QAAQ;QACjB,KAAK;QACL,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,KAAK,EAAE,OAAO;QACd,OAAO,EAAE;YACP,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;YAC3F,SAAS,EAAE,gBAAgB,CACzB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAC/E;SACF;KACF,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAA4B,EAAE;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,aAAa,4BAA4B,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI;QAC7B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,QAAQ,CAAC;IAEb,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iCAAiC;IACjC,MAAM,YAAY,GAAG,gCAAgC,OAAO,CAAC,GAAG,EAAE;;;;;;iBAMnD,CAAC;IAEhB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,aAAa,UAAU,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC;IAErF,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,WAAW;IACX,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAEtE,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;YAEnF,mBAAmB;YACnB,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;gBACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBAC5C,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;oBACrD,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;oBAC1C,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;iBACnC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,SAAS;YACT,IAAI,CAAC,CAAC,KAAK;gBAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,cAAc,EAAE,CAAC;YAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAC1E,CAAC,CAAC,KAAK,EACP,YAAY,EACZ,WAAW,EACX,CAAC,CAAC,QAAQ,IAAI,KAAK,EACnB,CAAC,CAAC,QAAQ,IAAI,CAAC,EACf,MAAM,CACP,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAEtC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBAC5C,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;oBACrD,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU;oBACpC,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;iBAC3C,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,iDAAiD;YACjD,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC;YAC9E,sCAAsC;YACtC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;YAClF,8CAA8C;YAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAE1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,UAAU,aAAa,YAAY,iBAAiB,QAAQ,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAErJ,MAAM,MAAM,GAAe;gBACzB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBAC5C,YAAY,EAAE,UAAU;gBACxB,gBAAgB,EAAE,eAAe;gBACjC,YAAY;gBACZ,QAAQ;gBACR,KAAK;gBACL,aAAa;gBACb,UAAU;gBACV,aAAa,EAAE,gBAAgB,CAAC,YAAY,CAAC;gBAC7C,MAAM,EAAE,IAAI;aACb,CAAC;YAEF,eAAe;YACf,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,iBAAiB,GAAG,eAAe,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACnF,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,SAAS;QACT,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;IACP,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAEpC,gBAAgB;IAChB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5C,IAAI,KAAK;QAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAEjC,eAAe;IACf,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5C,IAAI,KAAK;QAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEpC,KAAK;IACL,IAAI,OAAO,CAAC,MAAM;QAAE,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;AACxF,CAAC"}
@@ -10,5 +10,9 @@ export interface SearchResponse {
10
10
  }
11
11
  export declare function webSearch(query: string, maxResults?: number): Promise<SearchResponse>;
12
12
  /** 将搜索结果格式化为供 AI 读取的文本 */
13
- export declare function formatSearchResults(resp: SearchResponse): string;
13
+ /**
14
+ * 格式化搜索结果供模型阅读
15
+ * @param forModel 是否为模型输入优化(去掉 URL、压缩 snippet),默认 true
16
+ */
17
+ export declare function formatSearchResults(resp: SearchResponse, forModel?: boolean): string;
14
18
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8MD,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAoC3F;AAED,0BAA0B;AAC1B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAMhE"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8MD,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAoC3F;AAED,0BAA0B;AAC1B;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,UAAO,GAAG,MAAM,CAcjF"}
@@ -209,9 +209,20 @@ export async function webSearch(query, maxResults) {
209
209
  return { query, results, provider };
210
210
  }
211
211
  /** 将搜索结果格式化为供 AI 读取的文本 */
212
- export function formatSearchResults(resp) {
212
+ /**
213
+ * 格式化搜索结果供模型阅读
214
+ * @param forModel 是否为模型输入优化(去掉 URL、压缩 snippet),默认 true
215
+ */
216
+ export function formatSearchResults(resp, forModel = true) {
213
217
  if (!resp.results.length)
214
218
  return `搜索 "${resp.query}" 无结果`;
219
+ if (forModel) {
220
+ // 模型输入模式:去掉 URL(节省 ~100 tokens/条),snippet 缩到 150 字符
221
+ return resp.results
222
+ .map((r, i) => `[${i + 1}] ${r.title}\n${r.snippet.slice(0, 150)}`)
223
+ .join('\n---\n');
224
+ }
225
+ // 用户展示模式:完整信息
215
226
  return resp.results
216
227
  .map((r, i) => `[${i + 1}] ${r.title}\n${r.url ? `URL: ${r.url}\n` : ''}${r.snippet}`)
217
228
  .join('\n\n');
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"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"}