@aiyou-dev/cli 0.1.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/bin/aiyoucli-mcp.js +7 -0
- package/bin/aiyoucli.js +29 -0
- package/dist/commands/index.d.ts +9 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +968 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +99 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +149 -0
- package/dist/index.js.map +1 -0
- package/dist/init/agentsmd-generator.d.ts +13 -0
- package/dist/init/agentsmd-generator.d.ts.map +1 -0
- package/dist/init/agentsmd-generator.js +138 -0
- package/dist/init/agentsmd-generator.js.map +1 -0
- package/dist/init/interactive.d.ts +6 -0
- package/dist/init/interactive.d.ts.map +1 -0
- package/dist/init/interactive.js +288 -0
- package/dist/init/interactive.js.map +1 -0
- package/dist/init/settings-generator.d.ts +17 -0
- package/dist/init/settings-generator.d.ts.map +1 -0
- package/dist/init/settings-generator.js +132 -0
- package/dist/init/settings-generator.js.map +1 -0
- package/dist/mcp/client.d.ts +27 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +93 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +74 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/agent-tools.d.ts +6 -0
- package/dist/mcp/tools/agent-tools.d.ts.map +1 -0
- package/dist/mcp/tools/agent-tools.js +196 -0
- package/dist/mcp/tools/agent-tools.js.map +1 -0
- package/dist/mcp/tools/analyze-tools.d.ts +6 -0
- package/dist/mcp/tools/analyze-tools.d.ts.map +1 -0
- package/dist/mcp/tools/analyze-tools.js +49 -0
- package/dist/mcp/tools/analyze-tools.js.map +1 -0
- package/dist/mcp/tools/config-tools.d.ts +6 -0
- package/dist/mcp/tools/config-tools.d.ts.map +1 -0
- package/dist/mcp/tools/config-tools.js +69 -0
- package/dist/mcp/tools/config-tools.js.map +1 -0
- package/dist/mcp/tools/coordination-tools.d.ts +6 -0
- package/dist/mcp/tools/coordination-tools.d.ts.map +1 -0
- package/dist/mcp/tools/coordination-tools.js +44 -0
- package/dist/mcp/tools/coordination-tools.js.map +1 -0
- package/dist/mcp/tools/distiller-tools.d.ts +7 -0
- package/dist/mcp/tools/distiller-tools.d.ts.map +1 -0
- package/dist/mcp/tools/distiller-tools.js +50 -0
- package/dist/mcp/tools/distiller-tools.js.map +1 -0
- package/dist/mcp/tools/gcc-tools.d.ts +6 -0
- package/dist/mcp/tools/gcc-tools.d.ts.map +1 -0
- package/dist/mcp/tools/gcc-tools.js +37 -0
- package/dist/mcp/tools/gcc-tools.js.map +1 -0
- package/dist/mcp/tools/hooks-tools.d.ts +7 -0
- package/dist/mcp/tools/hooks-tools.d.ts.map +1 -0
- package/dist/mcp/tools/hooks-tools.js +125 -0
- package/dist/mcp/tools/hooks-tools.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +5 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +43 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/memory-tools.d.ts +7 -0
- package/dist/mcp/tools/memory-tools.d.ts.map +1 -0
- package/dist/mcp/tools/memory-tools.js +153 -0
- package/dist/mcp/tools/memory-tools.js.map +1 -0
- package/dist/mcp/tools/metrics-tools.d.ts +6 -0
- package/dist/mcp/tools/metrics-tools.d.ts.map +1 -0
- package/dist/mcp/tools/metrics-tools.js +126 -0
- package/dist/mcp/tools/metrics-tools.js.map +1 -0
- package/dist/mcp/tools/neural-tools.d.ts +11 -0
- package/dist/mcp/tools/neural-tools.d.ts.map +1 -0
- package/dist/mcp/tools/neural-tools.js +68 -0
- package/dist/mcp/tools/neural-tools.js.map +1 -0
- package/dist/mcp/tools/performance-tools.d.ts +6 -0
- package/dist/mcp/tools/performance-tools.d.ts.map +1 -0
- package/dist/mcp/tools/performance-tools.js +54 -0
- package/dist/mcp/tools/performance-tools.js.map +1 -0
- package/dist/mcp/tools/security-tools.d.ts +6 -0
- package/dist/mcp/tools/security-tools.d.ts.map +1 -0
- package/dist/mcp/tools/security-tools.js +51 -0
- package/dist/mcp/tools/security-tools.js.map +1 -0
- package/dist/mcp/tools/session-tools.d.ts +6 -0
- package/dist/mcp/tools/session-tools.d.ts.map +1 -0
- package/dist/mcp/tools/session-tools.js +85 -0
- package/dist/mcp/tools/session-tools.js.map +1 -0
- package/dist/mcp/tools/skills-tools.d.ts +9 -0
- package/dist/mcp/tools/skills-tools.d.ts.map +1 -0
- package/dist/mcp/tools/skills-tools.js +167 -0
- package/dist/mcp/tools/skills-tools.js.map +1 -0
- package/dist/mcp/tools/statusline-tools.d.ts +6 -0
- package/dist/mcp/tools/statusline-tools.d.ts.map +1 -0
- package/dist/mcp/tools/statusline-tools.js +26 -0
- package/dist/mcp/tools/statusline-tools.js.map +1 -0
- package/dist/mcp/tools/swarm-tools.d.ts +6 -0
- package/dist/mcp/tools/swarm-tools.d.ts.map +1 -0
- package/dist/mcp/tools/swarm-tools.js +75 -0
- package/dist/mcp/tools/swarm-tools.js.map +1 -0
- package/dist/mcp/tools/system-tools.d.ts +6 -0
- package/dist/mcp/tools/system-tools.d.ts.map +1 -0
- package/dist/mcp/tools/system-tools.js +68 -0
- package/dist/mcp/tools/system-tools.js.map +1 -0
- package/dist/mcp/tools/task-tools.d.ts +6 -0
- package/dist/mcp/tools/task-tools.d.ts.map +1 -0
- package/dist/mcp/tools/task-tools.js +102 -0
- package/dist/mcp/tools/task-tools.js.map +1 -0
- package/dist/mcp/types.d.ts +19 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +5 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/metrics/benchmark.d.ts +95 -0
- package/dist/metrics/benchmark.d.ts.map +1 -0
- package/dist/metrics/benchmark.js +195 -0
- package/dist/metrics/benchmark.js.map +1 -0
- package/dist/metrics/builtin-benchmarks.d.ts +9 -0
- package/dist/metrics/builtin-benchmarks.d.ts.map +1 -0
- package/dist/metrics/builtin-benchmarks.js +171 -0
- package/dist/metrics/builtin-benchmarks.js.map +1 -0
- package/dist/metrics/collector.d.ts +89 -0
- package/dist/metrics/collector.d.ts.map +1 -0
- package/dist/metrics/collector.js +181 -0
- package/dist/metrics/collector.js.map +1 -0
- package/dist/napi/index.d.ts +159 -0
- package/dist/napi/index.d.ts.map +1 -0
- package/dist/napi/index.js +111 -0
- package/dist/napi/index.js.map +1 -0
- package/dist/output.d.ts +44 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +138 -0
- package/dist/output.js.map +1 -0
- package/dist/parser.d.ts +12 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +135 -0
- package/dist/parser.js.map +1 -0
- package/dist/production/circuit-breaker.d.ts +31 -0
- package/dist/production/circuit-breaker.d.ts.map +1 -0
- package/dist/production/circuit-breaker.js +87 -0
- package/dist/production/circuit-breaker.js.map +1 -0
- package/dist/production/error-handler.d.ts +13 -0
- package/dist/production/error-handler.d.ts.map +1 -0
- package/dist/production/error-handler.js +52 -0
- package/dist/production/error-handler.js.map +1 -0
- package/dist/production/index.d.ts +9 -0
- package/dist/production/index.d.ts.map +1 -0
- package/dist/production/index.js +5 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/rate-limiter.d.ts +22 -0
- package/dist/production/rate-limiter.d.ts.map +1 -0
- package/dist/production/rate-limiter.js +44 -0
- package/dist/production/rate-limiter.js.map +1 -0
- package/dist/production/retry.d.ts +9 -0
- package/dist/production/retry.d.ts.map +1 -0
- package/dist/production/retry.js +32 -0
- package/dist/production/retry.js.map +1 -0
- package/dist/services/worker-daemon.d.ts +44 -0
- package/dist/services/worker-daemon.d.ts.map +1 -0
- package/dist/services/worker-daemon.js +99 -0
- package/dist/services/worker-daemon.js.map +1 -0
- package/dist/services/worker-queue.d.ts +38 -0
- package/dist/services/worker-queue.d.ts.map +1 -0
- package/dist/services/worker-queue.js +86 -0
- package/dist/services/worker-queue.js.map +1 -0
- package/dist/statusline/generator.d.ts +12 -0
- package/dist/statusline/generator.d.ts.map +1 -0
- package/dist/statusline/generator.js +361 -0
- package/dist/statusline/generator.js.map +1 -0
- package/dist/suggest.d.ts +5 -0
- package/dist/suggest.d.ts.map +1 -0
- package/dist/suggest.js +40 -0
- package/dist/suggest.js.map +1 -0
- package/dist/types.d.ts +112 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +23 -0
- package/dist/types.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System tools — status, health diagnostics.
|
|
3
|
+
*/
|
|
4
|
+
import { existsSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
function text(t) { return { content: [{ type: "text", text: t }] }; }
|
|
7
|
+
function json(d) { return { content: [{ type: "text", text: JSON.stringify(d, null, 2) }] }; }
|
|
8
|
+
export const systemTools = [
|
|
9
|
+
{
|
|
10
|
+
name: "system_status",
|
|
11
|
+
description: "Get system status overview",
|
|
12
|
+
inputSchema: { type: "object", properties: {} },
|
|
13
|
+
handler: async () => {
|
|
14
|
+
const cwd = process.cwd();
|
|
15
|
+
const hasConfig = existsSync(join(cwd, ".aiyoucli", "config.json"));
|
|
16
|
+
const hasAgents = existsSync(join(cwd, ".aiyoucli", "agents", "store.json"));
|
|
17
|
+
const hasSwarm = existsSync(join(cwd, ".aiyoucli", "swarm", "state.json"));
|
|
18
|
+
return json({
|
|
19
|
+
version: "0.1.0",
|
|
20
|
+
cwd,
|
|
21
|
+
node: process.version,
|
|
22
|
+
platform: process.platform,
|
|
23
|
+
arch: process.arch,
|
|
24
|
+
initialized: hasConfig,
|
|
25
|
+
agents: hasAgents,
|
|
26
|
+
swarm: hasSwarm,
|
|
27
|
+
uptime: Math.round(process.uptime()),
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: "system_doctor",
|
|
33
|
+
description: "Run health diagnostics",
|
|
34
|
+
inputSchema: { type: "object", properties: {} },
|
|
35
|
+
handler: async () => {
|
|
36
|
+
const checks = [];
|
|
37
|
+
// Node version
|
|
38
|
+
const nodeVersion = parseInt(process.version.slice(1));
|
|
39
|
+
checks.push({
|
|
40
|
+
name: "Node.js",
|
|
41
|
+
status: nodeVersion >= 20 ? "ok" : "fail",
|
|
42
|
+
detail: process.version,
|
|
43
|
+
});
|
|
44
|
+
// NAPI binding
|
|
45
|
+
try {
|
|
46
|
+
const { inMemoryVectorDB } = await import("../../napi/index.js");
|
|
47
|
+
const db = inMemoryVectorDB(3);
|
|
48
|
+
db.insert([1, 0, 0]);
|
|
49
|
+
checks.push({ name: "NAPI binding", status: "ok", detail: "aiyouvector-core loaded" });
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
checks.push({ name: "NAPI binding", status: "fail", detail: String(e) });
|
|
53
|
+
}
|
|
54
|
+
// Git
|
|
55
|
+
try {
|
|
56
|
+
const { execSync } = await import("node:child_process");
|
|
57
|
+
const gitVersion = execSync("git --version", { encoding: "utf-8" }).trim();
|
|
58
|
+
checks.push({ name: "git", status: "ok", detail: gitVersion });
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
checks.push({ name: "git", status: "fail" });
|
|
62
|
+
}
|
|
63
|
+
const allOk = checks.every((c) => c.status === "ok");
|
|
64
|
+
return json({ healthy: allOk, checks });
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
//# sourceMappingURL=system-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/system-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AA8B7D,eAAO,MAAM,SAAS,EAAE,OAAO,EA2E9B,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task tools — task lifecycle management.
|
|
3
|
+
*/
|
|
4
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
const STORE_DIR = join(process.cwd(), ".aiyoucli", "tasks");
|
|
7
|
+
const STORE_FILE = join(STORE_DIR, "store.json");
|
|
8
|
+
function loadTasks() {
|
|
9
|
+
if (!existsSync(STORE_FILE))
|
|
10
|
+
return [];
|
|
11
|
+
try {
|
|
12
|
+
return JSON.parse(readFileSync(STORE_FILE, "utf-8"));
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function saveTasks(tasks) {
|
|
19
|
+
mkdirSync(STORE_DIR, { recursive: true });
|
|
20
|
+
writeFileSync(STORE_FILE, JSON.stringify(tasks, null, 2));
|
|
21
|
+
}
|
|
22
|
+
function text(t) { return { content: [{ type: "text", text: t }] }; }
|
|
23
|
+
function json(d) { return { content: [{ type: "text", text: JSON.stringify(d, null, 2) }] }; }
|
|
24
|
+
export const taskTools = [
|
|
25
|
+
{
|
|
26
|
+
name: "task_create",
|
|
27
|
+
description: "Create a new task",
|
|
28
|
+
inputSchema: {
|
|
29
|
+
type: "object",
|
|
30
|
+
properties: {
|
|
31
|
+
description: { type: "string", description: "Task description" },
|
|
32
|
+
priority: { type: "string", description: "low, normal, high, critical" },
|
|
33
|
+
assignTo: { type: "string", description: "Agent ID to assign" },
|
|
34
|
+
},
|
|
35
|
+
required: ["description"],
|
|
36
|
+
},
|
|
37
|
+
handler: async (input) => {
|
|
38
|
+
const id = `task-${Date.now().toString(36)}`;
|
|
39
|
+
const task = {
|
|
40
|
+
id,
|
|
41
|
+
description: input.description,
|
|
42
|
+
status: "pending",
|
|
43
|
+
assignedTo: input.assignTo,
|
|
44
|
+
priority: input.priority || "normal",
|
|
45
|
+
createdAt: Date.now(),
|
|
46
|
+
};
|
|
47
|
+
const tasks = loadTasks();
|
|
48
|
+
tasks.push(task);
|
|
49
|
+
saveTasks(tasks);
|
|
50
|
+
return json({ id, status: "pending" });
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "task_list",
|
|
55
|
+
description: "List all tasks",
|
|
56
|
+
inputSchema: {
|
|
57
|
+
type: "object",
|
|
58
|
+
properties: {
|
|
59
|
+
status: { type: "string", description: "Filter by status" },
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
handler: async (input) => {
|
|
63
|
+
let tasks = loadTasks();
|
|
64
|
+
if (input.status)
|
|
65
|
+
tasks = tasks.filter((t) => t.status === input.status);
|
|
66
|
+
return json(tasks);
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: "task_status",
|
|
71
|
+
description: "Get task status by ID",
|
|
72
|
+
inputSchema: {
|
|
73
|
+
type: "object",
|
|
74
|
+
properties: { id: { type: "string" } },
|
|
75
|
+
required: ["id"],
|
|
76
|
+
},
|
|
77
|
+
handler: async (input) => {
|
|
78
|
+
const task = loadTasks().find((t) => t.id === input.id);
|
|
79
|
+
return task ? json(task) : text(`Task not found: ${input.id}`);
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "task_complete",
|
|
84
|
+
description: "Mark a task as completed",
|
|
85
|
+
inputSchema: {
|
|
86
|
+
type: "object",
|
|
87
|
+
properties: { id: { type: "string" } },
|
|
88
|
+
required: ["id"],
|
|
89
|
+
},
|
|
90
|
+
handler: async (input) => {
|
|
91
|
+
const tasks = loadTasks();
|
|
92
|
+
const task = tasks.find((t) => t.id === input.id);
|
|
93
|
+
if (!task)
|
|
94
|
+
return text(`Task not found: ${input.id}`);
|
|
95
|
+
task.status = "completed";
|
|
96
|
+
task.completedAt = Date.now();
|
|
97
|
+
saveTasks(tasks);
|
|
98
|
+
return text(`Task completed: ${task.id}`);
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
];
|
|
102
|
+
//# sourceMappingURL=task-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/task-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAYjD,SAAS,SAAS;IAChB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACpF,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,IAAI,CAAC,CAAS,IAAmB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,SAAS,IAAI,CAAC,CAAU,IAAmB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtH,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBACxE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;aAChE;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAS;gBACjB,EAAE;gBACF,WAAW,EAAE,KAAK,CAAC,WAAqB;gBACxC,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,KAAK,CAAC,QAA8B;gBAChD,QAAQ,EAAG,KAAK,CAAC,QAAmB,IAAI,QAAQ;gBAChD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,SAAS,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACzC,CAAC;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;aAC5D;SACF;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,MAAM;gBAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;YACzE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACtC,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,0BAA0B;QACvC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACtC,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC,mBAAmB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,SAAS,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP protocol message types (JSON-RPC 2.0).
|
|
3
|
+
*/
|
|
4
|
+
export interface JsonRpcRequest {
|
|
5
|
+
jsonrpc: "2.0";
|
|
6
|
+
id?: string | number;
|
|
7
|
+
method: string;
|
|
8
|
+
params?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export interface JsonRpcResponse {
|
|
11
|
+
jsonrpc: "2.0";
|
|
12
|
+
id: string | number | null;
|
|
13
|
+
result?: unknown;
|
|
14
|
+
error?: {
|
|
15
|
+
code: number;
|
|
16
|
+
message: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmark framework — measures and compares CLI performance.
|
|
3
|
+
*
|
|
4
|
+
* Runs standardized benchmarks for:
|
|
5
|
+
* - Startup latency
|
|
6
|
+
* - MCP tool call latency
|
|
7
|
+
* - Vector operations throughput
|
|
8
|
+
* - Routing accuracy
|
|
9
|
+
* - Memory footprint
|
|
10
|
+
*
|
|
11
|
+
* Outputs JSON reports for comparison (aiyoucli vs claude-flow vs others).
|
|
12
|
+
*/
|
|
13
|
+
export interface BenchmarkResult {
|
|
14
|
+
name: string;
|
|
15
|
+
category: string;
|
|
16
|
+
iterations: number;
|
|
17
|
+
warmupIterations: number;
|
|
18
|
+
timings: TimingStats;
|
|
19
|
+
memory: MemoryDelta;
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export interface TimingStats {
|
|
23
|
+
totalMs: number;
|
|
24
|
+
avgMs: number;
|
|
25
|
+
minMs: number;
|
|
26
|
+
maxMs: number;
|
|
27
|
+
p50Ms: number;
|
|
28
|
+
p95Ms: number;
|
|
29
|
+
p99Ms: number;
|
|
30
|
+
stdDevMs: number;
|
|
31
|
+
opsPerSec: number;
|
|
32
|
+
}
|
|
33
|
+
export interface MemoryDelta {
|
|
34
|
+
heapBefore: number;
|
|
35
|
+
heapAfter: number;
|
|
36
|
+
heapDeltaMB: number;
|
|
37
|
+
rssBefore: number;
|
|
38
|
+
rssAfter: number;
|
|
39
|
+
rssDeltaMB: number;
|
|
40
|
+
}
|
|
41
|
+
export interface BenchmarkReport {
|
|
42
|
+
system: string;
|
|
43
|
+
version: string;
|
|
44
|
+
timestamp: string;
|
|
45
|
+
platform: string;
|
|
46
|
+
nodeVersion: string;
|
|
47
|
+
results: BenchmarkResult[];
|
|
48
|
+
summary: BenchmarkSummary;
|
|
49
|
+
}
|
|
50
|
+
export interface BenchmarkSummary {
|
|
51
|
+
totalBenchmarks: number;
|
|
52
|
+
totalDurationMs: number;
|
|
53
|
+
categories: Record<string, {
|
|
54
|
+
count: number;
|
|
55
|
+
avgMs: number;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
export interface ComparisonReport {
|
|
59
|
+
timestamp: string;
|
|
60
|
+
systems: string[];
|
|
61
|
+
comparisons: ComparisonEntry[];
|
|
62
|
+
}
|
|
63
|
+
export interface ComparisonEntry {
|
|
64
|
+
benchmark: string;
|
|
65
|
+
category: string;
|
|
66
|
+
results: Record<string, {
|
|
67
|
+
avgMs: number;
|
|
68
|
+
p95Ms: number;
|
|
69
|
+
opsPerSec: number;
|
|
70
|
+
}>;
|
|
71
|
+
winner: string;
|
|
72
|
+
speedup: string;
|
|
73
|
+
}
|
|
74
|
+
export interface BenchmarkOptions {
|
|
75
|
+
iterations?: number;
|
|
76
|
+
warmup?: number;
|
|
77
|
+
gcBetween?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export declare function runBenchmark(name: string, category: string, fn: () => void | Promise<void>, options?: BenchmarkOptions): Promise<BenchmarkResult>;
|
|
80
|
+
export declare class BenchmarkSuite {
|
|
81
|
+
private benchmarks;
|
|
82
|
+
private system;
|
|
83
|
+
private version;
|
|
84
|
+
constructor(system: string, version: string);
|
|
85
|
+
add(name: string, category: string, fn: () => void | Promise<void>, options?: BenchmarkOptions): void;
|
|
86
|
+
run(): Promise<BenchmarkReport>;
|
|
87
|
+
runAndSave(projectRoot: string): Promise<{
|
|
88
|
+
report: BenchmarkReport;
|
|
89
|
+
filepath: string;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
export declare function compareReports(reports: BenchmarkReport[]): ComparisonReport;
|
|
93
|
+
export declare function formatReport(report: BenchmarkReport): string;
|
|
94
|
+
export declare function formatComparison(comparison: ComparisonReport): string;
|
|
95
|
+
//# sourceMappingURL=benchmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/metrics/benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmark framework — measures and compares CLI performance.
|
|
3
|
+
*
|
|
4
|
+
* Runs standardized benchmarks for:
|
|
5
|
+
* - Startup latency
|
|
6
|
+
* - MCP tool call latency
|
|
7
|
+
* - Vector operations throughput
|
|
8
|
+
* - Routing accuracy
|
|
9
|
+
* - Memory footprint
|
|
10
|
+
*
|
|
11
|
+
* Outputs JSON reports for comparison (aiyoucli vs claude-flow vs others).
|
|
12
|
+
*/
|
|
13
|
+
import { writeFile, mkdir } from "node:fs/promises";
|
|
14
|
+
import { join } from "node:path";
|
|
15
|
+
const DEFAULTS = {
|
|
16
|
+
iterations: 100,
|
|
17
|
+
warmup: 10,
|
|
18
|
+
gcBetween: false,
|
|
19
|
+
};
|
|
20
|
+
export async function runBenchmark(name, category, fn, options) {
|
|
21
|
+
const opts = { ...DEFAULTS, ...options };
|
|
22
|
+
// Warmup
|
|
23
|
+
for (let i = 0; i < opts.warmup; i++) {
|
|
24
|
+
await fn();
|
|
25
|
+
}
|
|
26
|
+
if (opts.gcBetween && global.gc)
|
|
27
|
+
global.gc();
|
|
28
|
+
const memBefore = process.memoryUsage();
|
|
29
|
+
const durations = [];
|
|
30
|
+
for (let i = 0; i < opts.iterations; i++) {
|
|
31
|
+
const start = performance.now();
|
|
32
|
+
await fn();
|
|
33
|
+
durations.push(performance.now() - start);
|
|
34
|
+
}
|
|
35
|
+
const memAfter = process.memoryUsage();
|
|
36
|
+
return {
|
|
37
|
+
name,
|
|
38
|
+
category,
|
|
39
|
+
iterations: opts.iterations,
|
|
40
|
+
warmupIterations: opts.warmup,
|
|
41
|
+
timings: computeTimingStats(durations),
|
|
42
|
+
memory: {
|
|
43
|
+
heapBefore: round2(memBefore.heapUsed / 1024 / 1024),
|
|
44
|
+
heapAfter: round2(memAfter.heapUsed / 1024 / 1024),
|
|
45
|
+
heapDeltaMB: round2((memAfter.heapUsed - memBefore.heapUsed) / 1024 / 1024),
|
|
46
|
+
rssBefore: round2(memBefore.rss / 1024 / 1024),
|
|
47
|
+
rssAfter: round2(memAfter.rss / 1024 / 1024),
|
|
48
|
+
rssDeltaMB: round2((memAfter.rss - memBefore.rss) / 1024 / 1024),
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// ── Benchmark suite ──────────────────────────────────────────
|
|
53
|
+
export class BenchmarkSuite {
|
|
54
|
+
benchmarks = [];
|
|
55
|
+
system;
|
|
56
|
+
version;
|
|
57
|
+
constructor(system, version) {
|
|
58
|
+
this.system = system;
|
|
59
|
+
this.version = version;
|
|
60
|
+
}
|
|
61
|
+
add(name, category, fn, options) {
|
|
62
|
+
this.benchmarks.push({ name, category, fn, options });
|
|
63
|
+
}
|
|
64
|
+
async run() {
|
|
65
|
+
const startTime = performance.now();
|
|
66
|
+
const results = [];
|
|
67
|
+
for (const bench of this.benchmarks) {
|
|
68
|
+
results.push(await runBenchmark(bench.name, bench.category, bench.fn, bench.options));
|
|
69
|
+
}
|
|
70
|
+
const totalDurationMs = round2(performance.now() - startTime);
|
|
71
|
+
const categories = {};
|
|
72
|
+
for (const r of results) {
|
|
73
|
+
const cat = categories[r.category] ??= { count: 0, avgMs: 0 };
|
|
74
|
+
cat.count++;
|
|
75
|
+
cat.avgMs += r.timings.avgMs;
|
|
76
|
+
}
|
|
77
|
+
for (const cat of Object.values(categories)) {
|
|
78
|
+
cat.avgMs = round2(cat.avgMs / cat.count);
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
system: this.system,
|
|
82
|
+
version: this.version,
|
|
83
|
+
timestamp: new Date().toISOString(),
|
|
84
|
+
platform: `${process.platform}-${process.arch}`,
|
|
85
|
+
nodeVersion: process.version,
|
|
86
|
+
results,
|
|
87
|
+
summary: {
|
|
88
|
+
totalBenchmarks: results.length,
|
|
89
|
+
totalDurationMs,
|
|
90
|
+
categories,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
async runAndSave(projectRoot) {
|
|
95
|
+
const report = await this.run();
|
|
96
|
+
const dir = join(projectRoot, ".aiyoucli", "benchmarks");
|
|
97
|
+
await mkdir(dir, { recursive: true });
|
|
98
|
+
const filename = `${this.system}-${Date.now()}.json`;
|
|
99
|
+
const filepath = join(dir, filename);
|
|
100
|
+
await writeFile(filepath, JSON.stringify(report, null, 2));
|
|
101
|
+
return { report, filepath };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// ── Comparison ───────────────────────────────────────────────
|
|
105
|
+
export function compareReports(reports) {
|
|
106
|
+
const systems = reports.map((r) => r.system);
|
|
107
|
+
// Group benchmarks by name across systems
|
|
108
|
+
const benchmarkNames = new Set(reports.flatMap((r) => r.results.map((b) => b.name)));
|
|
109
|
+
const comparisons = [];
|
|
110
|
+
for (const benchName of benchmarkNames) {
|
|
111
|
+
const results = {};
|
|
112
|
+
let category = "";
|
|
113
|
+
for (const report of reports) {
|
|
114
|
+
const bench = report.results.find((b) => b.name === benchName);
|
|
115
|
+
if (bench) {
|
|
116
|
+
category = bench.category;
|
|
117
|
+
results[report.system] = {
|
|
118
|
+
avgMs: bench.timings.avgMs,
|
|
119
|
+
p95Ms: bench.timings.p95Ms,
|
|
120
|
+
opsPerSec: bench.timings.opsPerSec,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const entries = Object.entries(results);
|
|
125
|
+
if (entries.length < 2) {
|
|
126
|
+
comparisons.push({ benchmark: benchName, category, results, winner: entries[0]?.[0] ?? "N/A", speedup: "N/A" });
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
// Winner = lowest avgMs
|
|
130
|
+
entries.sort((a, b) => a[1].avgMs - b[1].avgMs);
|
|
131
|
+
const winner = entries[0][0];
|
|
132
|
+
const loser = entries[entries.length - 1];
|
|
133
|
+
const speedup = loser[1].avgMs > 0
|
|
134
|
+
? `${round2(loser[1].avgMs / entries[0][1].avgMs)}x`
|
|
135
|
+
: "N/A";
|
|
136
|
+
comparisons.push({ benchmark: benchName, category, results, winner, speedup });
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
timestamp: new Date().toISOString(),
|
|
140
|
+
systems,
|
|
141
|
+
comparisons,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
// ── Format ───────────────────────────────────────────────────
|
|
145
|
+
export function formatReport(report) {
|
|
146
|
+
const lines = [
|
|
147
|
+
`Benchmark Report: ${report.system} v${report.version}`,
|
|
148
|
+
`Platform: ${report.platform} | Node: ${report.nodeVersion}`,
|
|
149
|
+
`Date: ${report.timestamp}`,
|
|
150
|
+
"",
|
|
151
|
+
"| Benchmark | Category | Avg (ms) | P95 (ms) | Ops/s | Heap Δ (MB) |",
|
|
152
|
+
"|-----------|----------|----------|----------|-------|-------------|",
|
|
153
|
+
];
|
|
154
|
+
for (const r of report.results) {
|
|
155
|
+
lines.push(`| ${r.name} | ${r.category} | ${r.timings.avgMs} | ${r.timings.p95Ms} | ${r.timings.opsPerSec} | ${r.memory.heapDeltaMB} |`);
|
|
156
|
+
}
|
|
157
|
+
lines.push("");
|
|
158
|
+
lines.push(`Total: ${report.summary.totalBenchmarks} benchmarks in ${report.summary.totalDurationMs}ms`);
|
|
159
|
+
return lines.join("\n");
|
|
160
|
+
}
|
|
161
|
+
export function formatComparison(comparison) {
|
|
162
|
+
const lines = [
|
|
163
|
+
`Comparison: ${comparison.systems.join(" vs ")}`,
|
|
164
|
+
`Date: ${comparison.timestamp}`,
|
|
165
|
+
"",
|
|
166
|
+
`| Benchmark | Category | ${comparison.systems.map((s) => `${s} (ms)`).join(" | ")} | Winner | Speedup |`,
|
|
167
|
+
`|-----------|----------|${comparison.systems.map(() => "----------|").join(" ")} --------|---------|`,
|
|
168
|
+
];
|
|
169
|
+
for (const c of comparison.comparisons) {
|
|
170
|
+
const vals = comparison.systems.map((s) => c.results[s]?.avgMs.toString() ?? "N/A");
|
|
171
|
+
lines.push(`| ${c.benchmark} | ${c.category} | ${vals.join(" | ")} | ${c.winner} | ${c.speedup} |`);
|
|
172
|
+
}
|
|
173
|
+
return lines.join("\n");
|
|
174
|
+
}
|
|
175
|
+
// ── Helpers ──────────────────────────────────────────────────
|
|
176
|
+
function computeTimingStats(durations) {
|
|
177
|
+
const sorted = [...durations].sort((a, b) => a - b);
|
|
178
|
+
const len = sorted.length;
|
|
179
|
+
const totalMs = round2(sorted.reduce((s, d) => s + d, 0));
|
|
180
|
+
const avgMs = round2(totalMs / len);
|
|
181
|
+
const minMs = round2(sorted[0]);
|
|
182
|
+
const maxMs = round2(sorted[len - 1]);
|
|
183
|
+
const p50Ms = round2(sorted[Math.floor(len * 0.5)]);
|
|
184
|
+
const p95Ms = round2(sorted[Math.floor(len * 0.95)]);
|
|
185
|
+
const p99Ms = round2(sorted[Math.floor(len * 0.99)]);
|
|
186
|
+
const variance = sorted.reduce((s, d) => s + (d - avgMs) ** 2, 0) / len;
|
|
187
|
+
const stdDevMs = round2(Math.sqrt(variance));
|
|
188
|
+
const rawAvg = totalMs / len;
|
|
189
|
+
const opsPerSec = rawAvg > 0 ? Math.round(1000 / rawAvg) : Infinity;
|
|
190
|
+
return { totalMs, avgMs, minMs, maxMs, p50Ms, p95Ms, p99Ms, stdDevMs, opsPerSec };
|
|
191
|
+
}
|
|
192
|
+
function round2(n) {
|
|
193
|
+
return Math.round(n * 100) / 100;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=benchmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/metrics/benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAyEjC,MAAM,QAAQ,GAA+B;IAC3C,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,QAAgB,EAChB,EAA8B,EAC9B,OAA0B;IAE1B,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;IAEzC,SAAS;IACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IAE7C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,EAAE,EAAE,CAAC;QACX,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEvC,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,gBAAgB,EAAE,IAAI,CAAC,MAAM;QAC7B,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC;QACtC,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;YACpD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;YAClD,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YAC3E,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;YAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;YAC5C,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;SACjE;KACF,CAAC;AACJ,CAAC;AAED,gEAAgE;AAEhE,MAAM,OAAO,cAAc;IACjB,UAAU,GAKb,EAAE,CAAC;IACA,MAAM,CAAS;IACf,OAAO,CAAS;IAExB,YAAY,MAAc,EAAE,OAAe;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CACD,IAAY,EACZ,QAAgB,EAChB,EAA8B,EAC9B,OAA0B;QAE1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,OAAO,GAAsB,EAAE,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QAE9D,MAAM,UAAU,GAAmC,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/B,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;YAC/C,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,OAAO;YACP,OAAO,EAAE;gBACP,eAAe,EAAE,OAAO,CAAC,MAAM;gBAC/B,eAAe;gBACf,UAAU;aACX;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrC,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF;AAED,gEAAgE;AAEhE,MAAM,UAAU,cAAc,CAC5B,OAA0B;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAE7C,0CAA0C;IAC1C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAErF,MAAM,WAAW,GAAsB,EAAE,CAAC;IAE1C,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACvC,MAAM,OAAO,GAA+B,EAAE,CAAC;QAC/C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAC/D,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;oBACvB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;oBAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;oBAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;iBACnC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAChH,SAAS;QACX,CAAC;QAED,wBAAwB;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;YAChC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;YACpD,CAAC,CAAC,KAAK,CAAC;QAEV,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;QACP,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,gEAAgE;AAEhE,MAAM,UAAU,YAAY,CAAC,MAAuB;IAClD,MAAM,KAAK,GAAa;QACtB,qBAAqB,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;QACvD,aAAa,MAAM,CAAC,QAAQ,YAAY,MAAM,CAAC,WAAW,EAAE;QAC5D,SAAS,MAAM,CAAC,SAAS,EAAE;QAC3B,EAAE;QACF,sEAAsE;QACtE,sEAAsE;KACvE,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,CAC7H,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,OAAO,CAAC,eAAe,kBAAkB,MAAM,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC;IACzG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAA4B;IAC3D,MAAM,KAAK,GAAa;QACtB,eAAe,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAChD,SAAS,UAAU,CAAC,SAAS,EAAE;QAC/B,EAAE;QACF,4BAA4B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB;QACzG,2BAA2B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB;KACvG,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,CAC/C,CAAC;QACF,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,OAAO,IAAI,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,gEAAgE;AAEhE,SAAS,kBAAkB,CAAC,SAAmB;IAC7C,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC;IAC7B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEpE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACpF,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in benchmark definitions for aiyoucli.
|
|
3
|
+
*
|
|
4
|
+
* These benchmarks can be run via `aiyoucli performance benchmark`
|
|
5
|
+
* and compared against other systems (claude-flow, etc).
|
|
6
|
+
*/
|
|
7
|
+
import { BenchmarkSuite } from "./benchmark.js";
|
|
8
|
+
export declare function createAiyoucliSuite(): BenchmarkSuite;
|
|
9
|
+
//# sourceMappingURL=builtin-benchmarks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin-benchmarks.d.ts","sourceRoot":"","sources":["../../src/metrics/builtin-benchmarks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAUhD,wBAAgB,mBAAmB,IAAI,cAAc,CAsLpD"}
|