@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,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hooks tools — lifecycle hooks for pre/post task, routing, workers.
|
|
3
|
+
* Q-table persisted to .aiyoucli/q-table.json between sessions.
|
|
4
|
+
*/
|
|
5
|
+
import type { MCPTool } from "../../types.js";
|
|
6
|
+
export declare const hooksTools: MCPTool[];
|
|
7
|
+
//# sourceMappingURL=hooks-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/hooks-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAsC7D,eAAO,MAAM,UAAU,EAAE,OAAO,EAsF/B,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hooks tools — lifecycle hooks for pre/post task, routing, workers.
|
|
3
|
+
* Q-table persisted to .aiyoucli/q-table.json between sessions.
|
|
4
|
+
*/
|
|
5
|
+
import { readFile, writeFile, mkdir } from "node:fs/promises";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
import { existsSync } from "node:fs";
|
|
8
|
+
import { createRoutingEngine } from "../../napi/index.js";
|
|
9
|
+
const Q_TABLE_DIR = join(process.cwd(), ".aiyoucli");
|
|
10
|
+
const Q_TABLE_PATH = join(Q_TABLE_DIR, "q-table.json");
|
|
11
|
+
let router = null;
|
|
12
|
+
async function getRouter() {
|
|
13
|
+
if (!router) {
|
|
14
|
+
router = createRoutingEngine();
|
|
15
|
+
// Load persisted Q-table if it exists
|
|
16
|
+
if (existsSync(Q_TABLE_PATH)) {
|
|
17
|
+
try {
|
|
18
|
+
const data = await readFile(Q_TABLE_PATH, "utf-8");
|
|
19
|
+
router.importQTable(data);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Corrupted file — start fresh
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return router;
|
|
27
|
+
}
|
|
28
|
+
async function persistQTable() {
|
|
29
|
+
if (!router)
|
|
30
|
+
return;
|
|
31
|
+
try {
|
|
32
|
+
await mkdir(Q_TABLE_DIR, { recursive: true });
|
|
33
|
+
const data = router.exportQTable();
|
|
34
|
+
await writeFile(Q_TABLE_PATH, data);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// Non-critical — best effort persistence
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function text(t) { return { content: [{ type: "text", text: t }] }; }
|
|
41
|
+
function json(d) { return { content: [{ type: "text", text: JSON.stringify(d, null, 2) }] }; }
|
|
42
|
+
export const hooksTools = [
|
|
43
|
+
{
|
|
44
|
+
name: "hooks_pre_task",
|
|
45
|
+
description: "Pre-task hook — get routing recommendation before starting work",
|
|
46
|
+
inputSchema: {
|
|
47
|
+
type: "object",
|
|
48
|
+
properties: {
|
|
49
|
+
description: { type: "string", description: "Task description" },
|
|
50
|
+
},
|
|
51
|
+
required: ["description"],
|
|
52
|
+
},
|
|
53
|
+
handler: async (input) => {
|
|
54
|
+
const r = await getRouter();
|
|
55
|
+
const result = r.route(input.description);
|
|
56
|
+
return json({
|
|
57
|
+
recommended_agent: result.route,
|
|
58
|
+
model_tier: result.model_tier,
|
|
59
|
+
confidence: result.confidence,
|
|
60
|
+
alternatives: result.alternatives,
|
|
61
|
+
});
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: "hooks_post_task",
|
|
66
|
+
description: "Post-task hook — record outcome for learning, persists Q-table to disk",
|
|
67
|
+
inputSchema: {
|
|
68
|
+
type: "object",
|
|
69
|
+
properties: {
|
|
70
|
+
description: { type: "string", description: "Task description" },
|
|
71
|
+
agent: { type: "string", description: "Agent type that was used" },
|
|
72
|
+
success: { type: "boolean", description: "Whether the task succeeded" },
|
|
73
|
+
},
|
|
74
|
+
required: ["description", "agent", "success"],
|
|
75
|
+
},
|
|
76
|
+
handler: async (input) => {
|
|
77
|
+
const r = await getRouter();
|
|
78
|
+
const reward = input.success ? 1.0 : -0.5;
|
|
79
|
+
r.recordReward(input.description, input.agent, reward);
|
|
80
|
+
await persistQTable();
|
|
81
|
+
return text(`Recorded ${input.success ? "success" : "failure"} for ${input.agent} (Q-table saved)`);
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: "hooks_route",
|
|
86
|
+
description: "Route a task to the optimal agent type",
|
|
87
|
+
inputSchema: {
|
|
88
|
+
type: "object",
|
|
89
|
+
properties: {
|
|
90
|
+
task: { type: "string", description: "Task description" },
|
|
91
|
+
},
|
|
92
|
+
required: ["task"],
|
|
93
|
+
},
|
|
94
|
+
handler: async (input) => {
|
|
95
|
+
const r = await getRouter();
|
|
96
|
+
return json(r.route(input.task));
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: "hooks_model_route",
|
|
101
|
+
description: "Select optimal model tier (haiku/sonnet/opus) for a task",
|
|
102
|
+
inputSchema: {
|
|
103
|
+
type: "object",
|
|
104
|
+
properties: {
|
|
105
|
+
task: { type: "string", description: "Task description" },
|
|
106
|
+
},
|
|
107
|
+
required: ["task"],
|
|
108
|
+
},
|
|
109
|
+
handler: async (input) => {
|
|
110
|
+
const r = await getRouter();
|
|
111
|
+
const tier = r.selectModelTier(input.task);
|
|
112
|
+
return json({ model: tier });
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
name: "hooks_stats",
|
|
117
|
+
description: "Get routing engine statistics",
|
|
118
|
+
inputSchema: { type: "object", properties: {} },
|
|
119
|
+
handler: async () => {
|
|
120
|
+
const r = await getRouter();
|
|
121
|
+
return json(r.stats());
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
//# sourceMappingURL=hooks-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/hooks-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,wBAAgB,gBAAgB,IAAI,IAAI,CAmBvC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool module aggregator — registers all 14 tool modules.
|
|
3
|
+
*/
|
|
4
|
+
import { registry } from "../client.js";
|
|
5
|
+
import { memoryTools } from "./memory-tools.js";
|
|
6
|
+
import { agentTools } from "./agent-tools.js";
|
|
7
|
+
import { swarmTools } from "./swarm-tools.js";
|
|
8
|
+
import { taskTools } from "./task-tools.js";
|
|
9
|
+
import { sessionTools } from "./session-tools.js";
|
|
10
|
+
import { hooksTools } from "./hooks-tools.js";
|
|
11
|
+
import { configTools } from "./config-tools.js";
|
|
12
|
+
import { systemTools } from "./system-tools.js";
|
|
13
|
+
import { analyzeTools } from "./analyze-tools.js";
|
|
14
|
+
import { neuralTools } from "./neural-tools.js";
|
|
15
|
+
import { gccTools } from "./gcc-tools.js";
|
|
16
|
+
import { securityTools } from "./security-tools.js";
|
|
17
|
+
import { performanceTools } from "./performance-tools.js";
|
|
18
|
+
import { coordinationTools } from "./coordination-tools.js";
|
|
19
|
+
import { statuslineTools } from "./statusline-tools.js";
|
|
20
|
+
import { metricsTools } from "./metrics-tools.js";
|
|
21
|
+
import { distillerTools } from "./distiller-tools.js";
|
|
22
|
+
import { skillsTools } from "./skills-tools.js";
|
|
23
|
+
export function registerAllTools() {
|
|
24
|
+
registry.registerAll(memoryTools);
|
|
25
|
+
registry.registerAll(agentTools);
|
|
26
|
+
registry.registerAll(swarmTools);
|
|
27
|
+
registry.registerAll(taskTools);
|
|
28
|
+
registry.registerAll(sessionTools);
|
|
29
|
+
registry.registerAll(hooksTools);
|
|
30
|
+
registry.registerAll(configTools);
|
|
31
|
+
registry.registerAll(systemTools);
|
|
32
|
+
registry.registerAll(analyzeTools);
|
|
33
|
+
registry.registerAll(neuralTools);
|
|
34
|
+
registry.registerAll(gccTools);
|
|
35
|
+
registry.registerAll(securityTools);
|
|
36
|
+
registry.registerAll(performanceTools);
|
|
37
|
+
registry.registerAll(coordinationTools);
|
|
38
|
+
registry.registerAll(statuslineTools);
|
|
39
|
+
registry.registerAll(metricsTools);
|
|
40
|
+
registry.registerAll(distillerTools);
|
|
41
|
+
registry.registerAll(skillsTools);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,gBAAgB;IAC9B,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory tools — vector store/search/list via NAPI (aiyouvector-core).
|
|
3
|
+
* Persistent by default: stores vectors at .aiyoucli/vectors/ and config at .aiyoucli/memory-config.json.
|
|
4
|
+
*/
|
|
5
|
+
import type { MCPTool } from "../../types.js";
|
|
6
|
+
export declare const memoryTools: MCPTool[];
|
|
7
|
+
//# sourceMappingURL=memory-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/memory-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAoD7D,eAAO,MAAM,WAAW,EAAE,OAAO,EAuHhC,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory tools — vector store/search/list via NAPI (aiyouvector-core).
|
|
3
|
+
* Persistent by default: stores vectors at .aiyoucli/vectors/ and config at .aiyoucli/memory-config.json.
|
|
4
|
+
*/
|
|
5
|
+
import { inMemoryVectorDB, openVectorDB } from "../../napi/index.js";
|
|
6
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from "node:fs";
|
|
7
|
+
import { join, resolve } from "node:path";
|
|
8
|
+
const AIYOUCLI_DIR = join(process.cwd(), ".aiyoucli");
|
|
9
|
+
const CONFIG_PATH = join(AIYOUCLI_DIR, "memory-config.json");
|
|
10
|
+
const DEFAULT_VECTORS_PATH = join(AIYOUCLI_DIR, "vectors.redb");
|
|
11
|
+
function loadConfig() {
|
|
12
|
+
if (existsSync(CONFIG_PATH)) {
|
|
13
|
+
try {
|
|
14
|
+
return JSON.parse(readFileSync(CONFIG_PATH, "utf-8"));
|
|
15
|
+
}
|
|
16
|
+
catch { /* fall through */ }
|
|
17
|
+
}
|
|
18
|
+
return { path: DEFAULT_VECTORS_PATH, dimensions: 384, hnsw: true };
|
|
19
|
+
}
|
|
20
|
+
function saveConfig(config) {
|
|
21
|
+
mkdirSync(AIYOUCLI_DIR, { recursive: true });
|
|
22
|
+
writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2));
|
|
23
|
+
}
|
|
24
|
+
let db = null;
|
|
25
|
+
function getDB() {
|
|
26
|
+
if (!db) {
|
|
27
|
+
const config = loadConfig();
|
|
28
|
+
if (config.path) {
|
|
29
|
+
mkdirSync(AIYOUCLI_DIR, { recursive: true });
|
|
30
|
+
db = openVectorDB(config.path, config.dimensions);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
db = inMemoryVectorDB(config.dimensions, config.hnsw);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return db;
|
|
37
|
+
}
|
|
38
|
+
function textResult(text) {
|
|
39
|
+
return { content: [{ type: "text", text }] };
|
|
40
|
+
}
|
|
41
|
+
function jsonResult(data) {
|
|
42
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
43
|
+
}
|
|
44
|
+
export const memoryTools = [
|
|
45
|
+
{
|
|
46
|
+
name: "memory_init",
|
|
47
|
+
description: "Initialize the vector memory database. Persistent by default (stored in .aiyoucli/vectors/).",
|
|
48
|
+
inputSchema: {
|
|
49
|
+
type: "object",
|
|
50
|
+
properties: {
|
|
51
|
+
path: { type: "string", description: "Storage path (default: .aiyoucli/vectors/). Use 'memory' for in-memory only." },
|
|
52
|
+
dimensions: { type: "number", description: "Vector dimensions (default: 384)" },
|
|
53
|
+
enable_hnsw: { type: "boolean", description: "Enable HNSW index (default: true)" },
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
handler: async (input) => {
|
|
57
|
+
const rawPath = input.path;
|
|
58
|
+
const dims = input.dimensions ?? 384;
|
|
59
|
+
const hnsw = input.enable_hnsw ?? true;
|
|
60
|
+
const isMemoryOnly = rawPath === "memory";
|
|
61
|
+
if (rawPath && !isMemoryOnly) {
|
|
62
|
+
const resolved = resolve(rawPath);
|
|
63
|
+
const allowedDir = resolve(AIYOUCLI_DIR);
|
|
64
|
+
if (!resolved.startsWith(allowedDir + "/") && resolved !== allowedDir) {
|
|
65
|
+
throw new Error(`Storage path must be within .aiyoucli/: ${resolved}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const storagePath = isMemoryOnly ? null : (rawPath ?? DEFAULT_VECTORS_PATH);
|
|
69
|
+
const config = { path: storagePath, dimensions: dims, hnsw };
|
|
70
|
+
saveConfig(config);
|
|
71
|
+
// Reset singleton so next getDB() picks up new config
|
|
72
|
+
db = null;
|
|
73
|
+
const indexType = hnsw ? "HNSW" : "flat";
|
|
74
|
+
const location = isMemoryOnly ? "in-memory" : storagePath;
|
|
75
|
+
return textResult(`Memory initialized (${location}, ${dims}d, ${indexType})`);
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "memory_store",
|
|
80
|
+
description: "Store a vector with optional ID and metadata",
|
|
81
|
+
inputSchema: {
|
|
82
|
+
type: "object",
|
|
83
|
+
properties: {
|
|
84
|
+
vector: { type: "array", items: { type: "number" }, description: "Vector to store" },
|
|
85
|
+
id: { type: "string", description: "Optional ID" },
|
|
86
|
+
metadata: { type: "object", description: "Optional metadata" },
|
|
87
|
+
},
|
|
88
|
+
required: ["vector"],
|
|
89
|
+
},
|
|
90
|
+
handler: async (input) => {
|
|
91
|
+
const vector = input.vector;
|
|
92
|
+
const id = input.id;
|
|
93
|
+
const metadata = input.metadata;
|
|
94
|
+
const config = loadConfig();
|
|
95
|
+
if (vector.length !== config.dimensions) {
|
|
96
|
+
throw new Error(`Vector has ${vector.length} dimensions, expected ${config.dimensions}`);
|
|
97
|
+
}
|
|
98
|
+
const resultId = getDB().insert(vector, id, metadata ? JSON.parse(JSON.stringify(metadata)) : undefined);
|
|
99
|
+
return textResult(`Stored vector: ${resultId}`);
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "memory_search",
|
|
104
|
+
description: "Search for similar vectors using HNSW index",
|
|
105
|
+
inputSchema: {
|
|
106
|
+
type: "object",
|
|
107
|
+
properties: {
|
|
108
|
+
vector: { type: "array", items: { type: "number" }, description: "Query vector" },
|
|
109
|
+
k: { type: "number", description: "Number of results (default: 5)" },
|
|
110
|
+
},
|
|
111
|
+
required: ["vector"],
|
|
112
|
+
},
|
|
113
|
+
handler: async (input) => {
|
|
114
|
+
const vector = input.vector;
|
|
115
|
+
const k = Math.min(Math.max(input.k ?? 5, 1), 1000);
|
|
116
|
+
const results = getDB().search(vector, k);
|
|
117
|
+
return jsonResult(results);
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: "memory_count",
|
|
122
|
+
description: "Get the number of vectors in memory",
|
|
123
|
+
inputSchema: { type: "object", properties: {} },
|
|
124
|
+
handler: async () => {
|
|
125
|
+
return textResult(`Vectors: ${getDB().count()}`);
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: "memory_stats",
|
|
130
|
+
description: "Get memory database statistics",
|
|
131
|
+
inputSchema: { type: "object", properties: {} },
|
|
132
|
+
handler: async () => {
|
|
133
|
+
return jsonResult(getDB().stats());
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: "memory_delete",
|
|
138
|
+
description: "Delete a vector by ID",
|
|
139
|
+
inputSchema: {
|
|
140
|
+
type: "object",
|
|
141
|
+
properties: {
|
|
142
|
+
id: { type: "string", description: "Vector ID to delete" },
|
|
143
|
+
},
|
|
144
|
+
required: ["id"],
|
|
145
|
+
},
|
|
146
|
+
handler: async (input) => {
|
|
147
|
+
const id = input.id;
|
|
148
|
+
const deleted = getDB().delete(id);
|
|
149
|
+
return textResult(deleted ? `Deleted: ${id}` : `Not found: ${id}`);
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
];
|
|
153
|
+
//# sourceMappingURL=memory-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/metrics-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,YAAY,EAAE,OAAO,EA4HjC,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tools for metrics — token usage, cost, latency, memory.
|
|
3
|
+
*/
|
|
4
|
+
import { metrics } from "../../metrics/collector.js";
|
|
5
|
+
export const metricsTools = [
|
|
6
|
+
{
|
|
7
|
+
name: "metrics_snapshot",
|
|
8
|
+
description: "Get a full metrics snapshot: tokens, cost, tool call stats, memory usage, latency percentiles.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {
|
|
12
|
+
model_tier: {
|
|
13
|
+
type: "string",
|
|
14
|
+
description: 'Model tier for cost calculation (opus/sonnet/haiku). Auto-detected if omitted.',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
handler: async (input) => {
|
|
19
|
+
const tier = input.model_tier;
|
|
20
|
+
const snap = metrics.snapshot(tier);
|
|
21
|
+
return {
|
|
22
|
+
content: [{ type: "text", text: JSON.stringify(snap, null, 2) }],
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "metrics_record_tokens",
|
|
28
|
+
description: "Record token usage from an LLM response.",
|
|
29
|
+
inputSchema: {
|
|
30
|
+
type: "object",
|
|
31
|
+
properties: {
|
|
32
|
+
input_tokens: { type: "number", description: "Input tokens consumed" },
|
|
33
|
+
output_tokens: { type: "number", description: "Output tokens generated" },
|
|
34
|
+
cache_read_tokens: { type: "number", description: "Tokens read from cache" },
|
|
35
|
+
cache_write_tokens: { type: "number", description: "Tokens written to cache" },
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
handler: async (input) => {
|
|
39
|
+
metrics.recordTokens({
|
|
40
|
+
inputTokens: input.input_tokens ?? 0,
|
|
41
|
+
outputTokens: input.output_tokens ?? 0,
|
|
42
|
+
cacheReadTokens: input.cache_read_tokens ?? 0,
|
|
43
|
+
cacheWriteTokens: input.cache_write_tokens ?? 0,
|
|
44
|
+
});
|
|
45
|
+
return {
|
|
46
|
+
content: [{ type: "text", text: JSON.stringify(metrics.getTokens()) }],
|
|
47
|
+
};
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "metrics_cost",
|
|
52
|
+
description: "Calculate estimated cost based on recorded token usage. Returns input/output/total in USD.",
|
|
53
|
+
inputSchema: {
|
|
54
|
+
type: "object",
|
|
55
|
+
properties: {
|
|
56
|
+
model_tier: {
|
|
57
|
+
type: "string",
|
|
58
|
+
description: "Model tier (opus/sonnet/haiku). Auto-detected if omitted.",
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
handler: async (input) => {
|
|
63
|
+
const tier = input.model_tier;
|
|
64
|
+
const cost = metrics.calculateCost(tier);
|
|
65
|
+
return {
|
|
66
|
+
content: [{ type: "text", text: JSON.stringify(cost, null, 2) }],
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "metrics_memory",
|
|
72
|
+
description: "Get current process memory usage (heap, RSS, external).",
|
|
73
|
+
inputSchema: { type: "object", properties: {} },
|
|
74
|
+
handler: async () => {
|
|
75
|
+
const mem = metrics.getMemoryMetrics();
|
|
76
|
+
return {
|
|
77
|
+
content: [{ type: "text", text: JSON.stringify(mem, null, 2) }],
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "metrics_latency",
|
|
83
|
+
description: "Get tool call latency stats (avg, p50, p95, p99, max).",
|
|
84
|
+
inputSchema: { type: "object", properties: {} },
|
|
85
|
+
handler: async () => {
|
|
86
|
+
const lat = metrics.getLatencyMetrics();
|
|
87
|
+
return {
|
|
88
|
+
content: [{ type: "text", text: JSON.stringify(lat, null, 2) }],
|
|
89
|
+
};
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: "metrics_tools_summary",
|
|
94
|
+
description: "Get per-tool call statistics: count, avg latency, error rate.",
|
|
95
|
+
inputSchema: { type: "object", properties: {} },
|
|
96
|
+
handler: async () => {
|
|
97
|
+
const summary = metrics.getToolCallSummary();
|
|
98
|
+
return {
|
|
99
|
+
content: [{ type: "text", text: JSON.stringify(summary, null, 2) }],
|
|
100
|
+
};
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: "metrics_save",
|
|
105
|
+
description: "Persist current session metrics to .aiyoucli/metrics/.",
|
|
106
|
+
inputSchema: { type: "object", properties: {} },
|
|
107
|
+
handler: async () => {
|
|
108
|
+
const filepath = await metrics.save();
|
|
109
|
+
return {
|
|
110
|
+
content: [{ type: "text", text: `Metrics saved to ${filepath}` }],
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: "metrics_reset",
|
|
116
|
+
description: "Reset all accumulated metrics for a fresh session.",
|
|
117
|
+
inputSchema: { type: "object", properties: {} },
|
|
118
|
+
handler: async () => {
|
|
119
|
+
metrics.reset();
|
|
120
|
+
return {
|
|
121
|
+
content: [{ type: "text", text: "Metrics reset" }],
|
|
122
|
+
};
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
];
|
|
126
|
+
//# sourceMappingURL=metrics-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/metrics-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neural tools — SONA learning engine via NAPI.
|
|
3
|
+
*
|
|
4
|
+
* Note: SONA state is in-memory only — it accumulates within a single process.
|
|
5
|
+
* In MCP mode (persistent server), observations build up across tool calls.
|
|
6
|
+
* In CLI mode (one process per command), each invocation starts fresh.
|
|
7
|
+
* Use `neural observe` + `neural learn` in the same MCP session for full learning cycles.
|
|
8
|
+
*/
|
|
9
|
+
import type { MCPTool } from "../../types.js";
|
|
10
|
+
export declare const neuralTools: MCPTool[];
|
|
11
|
+
//# sourceMappingURL=neural-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neural-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/neural-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAY7D,eAAO,MAAM,WAAW,EAAE,OAAO,EAqDhC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neural tools — SONA learning engine via NAPI.
|
|
3
|
+
*
|
|
4
|
+
* Note: SONA state is in-memory only — it accumulates within a single process.
|
|
5
|
+
* In MCP mode (persistent server), observations build up across tool calls.
|
|
6
|
+
* In CLI mode (one process per command), each invocation starts fresh.
|
|
7
|
+
* Use `neural observe` + `neural learn` in the same MCP session for full learning cycles.
|
|
8
|
+
*/
|
|
9
|
+
import { createSonaEngine } from "../../napi/index.js";
|
|
10
|
+
let sona = null;
|
|
11
|
+
function getSona() {
|
|
12
|
+
if (!sona)
|
|
13
|
+
sona = createSonaEngine();
|
|
14
|
+
return sona;
|
|
15
|
+
}
|
|
16
|
+
function text(t) { return { content: [{ type: "text", text: t }] }; }
|
|
17
|
+
function json(d) { return { content: [{ type: "text", text: JSON.stringify(d, null, 2) }] }; }
|
|
18
|
+
export const neuralTools = [
|
|
19
|
+
{
|
|
20
|
+
name: "neural_observe",
|
|
21
|
+
description: "Submit an observation to the SONA learning engine (accumulates in MCP session, resets per CLI invocation)",
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {
|
|
25
|
+
embedding: { type: "array", items: { type: "number" }, description: "Observation embedding vector" },
|
|
26
|
+
quality: { type: "number", description: "Quality score 0.0-1.0" },
|
|
27
|
+
kind: { type: "string", description: "Observation kind: commit, test, edit" },
|
|
28
|
+
},
|
|
29
|
+
required: ["embedding", "quality"],
|
|
30
|
+
},
|
|
31
|
+
handler: async (input) => {
|
|
32
|
+
getSona().submitObservation(input.embedding, input.quality, input.kind);
|
|
33
|
+
const stats = getSona().stats();
|
|
34
|
+
return text(`Observation recorded (buffered: ${stats.trajectories_buffered}, total: ${stats.signals_processed})`);
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: "neural_transform",
|
|
39
|
+
description: "Transform an embedding through learned LoRA weights",
|
|
40
|
+
inputSchema: {
|
|
41
|
+
type: "object",
|
|
42
|
+
properties: {
|
|
43
|
+
embedding: { type: "array", items: { type: "number" }, description: "Input embedding" },
|
|
44
|
+
},
|
|
45
|
+
required: ["embedding"],
|
|
46
|
+
},
|
|
47
|
+
handler: async (input) => {
|
|
48
|
+
const result = getSona().transformEmbedding(input.embedding);
|
|
49
|
+
return json(result);
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "neural_learn",
|
|
54
|
+
description: "Force background learning (Loop B) on buffered observations",
|
|
55
|
+
inputSchema: { type: "object", properties: {} },
|
|
56
|
+
handler: async () => {
|
|
57
|
+
const processed = getSona().forceLearn();
|
|
58
|
+
return text(`Processed ${processed} trajectories`);
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "neural_stats",
|
|
63
|
+
description: "Get SONA engine statistics (resets per CLI invocation, accumulates in MCP session)",
|
|
64
|
+
inputSchema: { type: "object", properties: {} },
|
|
65
|
+
handler: async () => json(getSona().stats()),
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
//# sourceMappingURL=neural-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neural-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/neural-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/performance-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAK7D,eAAO,MAAM,gBAAgB,EAAE,OAAO,EAmDrC,CAAC"}
|