@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.
Files changed (179) hide show
  1. package/bin/aiyoucli-mcp.js +7 -0
  2. package/bin/aiyoucli.js +29 -0
  3. package/dist/commands/index.d.ts +9 -0
  4. package/dist/commands/index.d.ts.map +1 -0
  5. package/dist/commands/index.js +968 -0
  6. package/dist/commands/index.js.map +1 -0
  7. package/dist/config.d.ts +6 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +99 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/index.d.ts +18 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +149 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/init/agentsmd-generator.d.ts +13 -0
  16. package/dist/init/agentsmd-generator.d.ts.map +1 -0
  17. package/dist/init/agentsmd-generator.js +138 -0
  18. package/dist/init/agentsmd-generator.js.map +1 -0
  19. package/dist/init/interactive.d.ts +6 -0
  20. package/dist/init/interactive.d.ts.map +1 -0
  21. package/dist/init/interactive.js +288 -0
  22. package/dist/init/interactive.js.map +1 -0
  23. package/dist/init/settings-generator.d.ts +17 -0
  24. package/dist/init/settings-generator.d.ts.map +1 -0
  25. package/dist/init/settings-generator.js +132 -0
  26. package/dist/init/settings-generator.js.map +1 -0
  27. package/dist/mcp/client.d.ts +27 -0
  28. package/dist/mcp/client.d.ts.map +1 -0
  29. package/dist/mcp/client.js +93 -0
  30. package/dist/mcp/client.js.map +1 -0
  31. package/dist/mcp/server.d.ts +8 -0
  32. package/dist/mcp/server.d.ts.map +1 -0
  33. package/dist/mcp/server.js +74 -0
  34. package/dist/mcp/server.js.map +1 -0
  35. package/dist/mcp/tools/agent-tools.d.ts +6 -0
  36. package/dist/mcp/tools/agent-tools.d.ts.map +1 -0
  37. package/dist/mcp/tools/agent-tools.js +196 -0
  38. package/dist/mcp/tools/agent-tools.js.map +1 -0
  39. package/dist/mcp/tools/analyze-tools.d.ts +6 -0
  40. package/dist/mcp/tools/analyze-tools.d.ts.map +1 -0
  41. package/dist/mcp/tools/analyze-tools.js +49 -0
  42. package/dist/mcp/tools/analyze-tools.js.map +1 -0
  43. package/dist/mcp/tools/config-tools.d.ts +6 -0
  44. package/dist/mcp/tools/config-tools.d.ts.map +1 -0
  45. package/dist/mcp/tools/config-tools.js +69 -0
  46. package/dist/mcp/tools/config-tools.js.map +1 -0
  47. package/dist/mcp/tools/coordination-tools.d.ts +6 -0
  48. package/dist/mcp/tools/coordination-tools.d.ts.map +1 -0
  49. package/dist/mcp/tools/coordination-tools.js +44 -0
  50. package/dist/mcp/tools/coordination-tools.js.map +1 -0
  51. package/dist/mcp/tools/distiller-tools.d.ts +7 -0
  52. package/dist/mcp/tools/distiller-tools.d.ts.map +1 -0
  53. package/dist/mcp/tools/distiller-tools.js +50 -0
  54. package/dist/mcp/tools/distiller-tools.js.map +1 -0
  55. package/dist/mcp/tools/gcc-tools.d.ts +6 -0
  56. package/dist/mcp/tools/gcc-tools.d.ts.map +1 -0
  57. package/dist/mcp/tools/gcc-tools.js +37 -0
  58. package/dist/mcp/tools/gcc-tools.js.map +1 -0
  59. package/dist/mcp/tools/hooks-tools.d.ts +7 -0
  60. package/dist/mcp/tools/hooks-tools.d.ts.map +1 -0
  61. package/dist/mcp/tools/hooks-tools.js +125 -0
  62. package/dist/mcp/tools/hooks-tools.js.map +1 -0
  63. package/dist/mcp/tools/index.d.ts +5 -0
  64. package/dist/mcp/tools/index.d.ts.map +1 -0
  65. package/dist/mcp/tools/index.js +43 -0
  66. package/dist/mcp/tools/index.js.map +1 -0
  67. package/dist/mcp/tools/memory-tools.d.ts +7 -0
  68. package/dist/mcp/tools/memory-tools.d.ts.map +1 -0
  69. package/dist/mcp/tools/memory-tools.js +153 -0
  70. package/dist/mcp/tools/memory-tools.js.map +1 -0
  71. package/dist/mcp/tools/metrics-tools.d.ts +6 -0
  72. package/dist/mcp/tools/metrics-tools.d.ts.map +1 -0
  73. package/dist/mcp/tools/metrics-tools.js +126 -0
  74. package/dist/mcp/tools/metrics-tools.js.map +1 -0
  75. package/dist/mcp/tools/neural-tools.d.ts +11 -0
  76. package/dist/mcp/tools/neural-tools.d.ts.map +1 -0
  77. package/dist/mcp/tools/neural-tools.js +68 -0
  78. package/dist/mcp/tools/neural-tools.js.map +1 -0
  79. package/dist/mcp/tools/performance-tools.d.ts +6 -0
  80. package/dist/mcp/tools/performance-tools.d.ts.map +1 -0
  81. package/dist/mcp/tools/performance-tools.js +54 -0
  82. package/dist/mcp/tools/performance-tools.js.map +1 -0
  83. package/dist/mcp/tools/security-tools.d.ts +6 -0
  84. package/dist/mcp/tools/security-tools.d.ts.map +1 -0
  85. package/dist/mcp/tools/security-tools.js +51 -0
  86. package/dist/mcp/tools/security-tools.js.map +1 -0
  87. package/dist/mcp/tools/session-tools.d.ts +6 -0
  88. package/dist/mcp/tools/session-tools.d.ts.map +1 -0
  89. package/dist/mcp/tools/session-tools.js +85 -0
  90. package/dist/mcp/tools/session-tools.js.map +1 -0
  91. package/dist/mcp/tools/skills-tools.d.ts +9 -0
  92. package/dist/mcp/tools/skills-tools.d.ts.map +1 -0
  93. package/dist/mcp/tools/skills-tools.js +167 -0
  94. package/dist/mcp/tools/skills-tools.js.map +1 -0
  95. package/dist/mcp/tools/statusline-tools.d.ts +6 -0
  96. package/dist/mcp/tools/statusline-tools.d.ts.map +1 -0
  97. package/dist/mcp/tools/statusline-tools.js +26 -0
  98. package/dist/mcp/tools/statusline-tools.js.map +1 -0
  99. package/dist/mcp/tools/swarm-tools.d.ts +6 -0
  100. package/dist/mcp/tools/swarm-tools.d.ts.map +1 -0
  101. package/dist/mcp/tools/swarm-tools.js +75 -0
  102. package/dist/mcp/tools/swarm-tools.js.map +1 -0
  103. package/dist/mcp/tools/system-tools.d.ts +6 -0
  104. package/dist/mcp/tools/system-tools.d.ts.map +1 -0
  105. package/dist/mcp/tools/system-tools.js +68 -0
  106. package/dist/mcp/tools/system-tools.js.map +1 -0
  107. package/dist/mcp/tools/task-tools.d.ts +6 -0
  108. package/dist/mcp/tools/task-tools.d.ts.map +1 -0
  109. package/dist/mcp/tools/task-tools.js +102 -0
  110. package/dist/mcp/tools/task-tools.js.map +1 -0
  111. package/dist/mcp/types.d.ts +19 -0
  112. package/dist/mcp/types.d.ts.map +1 -0
  113. package/dist/mcp/types.js +5 -0
  114. package/dist/mcp/types.js.map +1 -0
  115. package/dist/metrics/benchmark.d.ts +95 -0
  116. package/dist/metrics/benchmark.d.ts.map +1 -0
  117. package/dist/metrics/benchmark.js +195 -0
  118. package/dist/metrics/benchmark.js.map +1 -0
  119. package/dist/metrics/builtin-benchmarks.d.ts +9 -0
  120. package/dist/metrics/builtin-benchmarks.d.ts.map +1 -0
  121. package/dist/metrics/builtin-benchmarks.js +171 -0
  122. package/dist/metrics/builtin-benchmarks.js.map +1 -0
  123. package/dist/metrics/collector.d.ts +89 -0
  124. package/dist/metrics/collector.d.ts.map +1 -0
  125. package/dist/metrics/collector.js +181 -0
  126. package/dist/metrics/collector.js.map +1 -0
  127. package/dist/napi/index.d.ts +159 -0
  128. package/dist/napi/index.d.ts.map +1 -0
  129. package/dist/napi/index.js +111 -0
  130. package/dist/napi/index.js.map +1 -0
  131. package/dist/output.d.ts +44 -0
  132. package/dist/output.d.ts.map +1 -0
  133. package/dist/output.js +138 -0
  134. package/dist/output.js.map +1 -0
  135. package/dist/parser.d.ts +12 -0
  136. package/dist/parser.d.ts.map +1 -0
  137. package/dist/parser.js +135 -0
  138. package/dist/parser.js.map +1 -0
  139. package/dist/production/circuit-breaker.d.ts +31 -0
  140. package/dist/production/circuit-breaker.d.ts.map +1 -0
  141. package/dist/production/circuit-breaker.js +87 -0
  142. package/dist/production/circuit-breaker.js.map +1 -0
  143. package/dist/production/error-handler.d.ts +13 -0
  144. package/dist/production/error-handler.d.ts.map +1 -0
  145. package/dist/production/error-handler.js +52 -0
  146. package/dist/production/error-handler.js.map +1 -0
  147. package/dist/production/index.d.ts +9 -0
  148. package/dist/production/index.d.ts.map +1 -0
  149. package/dist/production/index.js +5 -0
  150. package/dist/production/index.js.map +1 -0
  151. package/dist/production/rate-limiter.d.ts +22 -0
  152. package/dist/production/rate-limiter.d.ts.map +1 -0
  153. package/dist/production/rate-limiter.js +44 -0
  154. package/dist/production/rate-limiter.js.map +1 -0
  155. package/dist/production/retry.d.ts +9 -0
  156. package/dist/production/retry.d.ts.map +1 -0
  157. package/dist/production/retry.js +32 -0
  158. package/dist/production/retry.js.map +1 -0
  159. package/dist/services/worker-daemon.d.ts +44 -0
  160. package/dist/services/worker-daemon.d.ts.map +1 -0
  161. package/dist/services/worker-daemon.js +99 -0
  162. package/dist/services/worker-daemon.js.map +1 -0
  163. package/dist/services/worker-queue.d.ts +38 -0
  164. package/dist/services/worker-queue.d.ts.map +1 -0
  165. package/dist/services/worker-queue.js +86 -0
  166. package/dist/services/worker-queue.js.map +1 -0
  167. package/dist/statusline/generator.d.ts +12 -0
  168. package/dist/statusline/generator.d.ts.map +1 -0
  169. package/dist/statusline/generator.js +361 -0
  170. package/dist/statusline/generator.js.map +1 -0
  171. package/dist/suggest.d.ts +5 -0
  172. package/dist/suggest.d.ts.map +1 -0
  173. package/dist/suggest.js +40 -0
  174. package/dist/suggest.js.map +1 -0
  175. package/dist/types.d.ts +112 -0
  176. package/dist/types.d.ts.map +1 -0
  177. package/dist/types.js +23 -0
  178. package/dist/types.js.map +1 -0
  179. package/package.json +64 -0
@@ -0,0 +1,171 @@
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
+ import { inMemoryVectorDB, createSonaEngine, createAttentionRouter, createKnowledgeGraph, createRoutingEngine, createAnalysisEngine, } from "../napi/index.js";
9
+ export function createAiyoucliSuite() {
10
+ const suite = new BenchmarkSuite("aiyoucli", "0.1.0");
11
+ // ── Vector operations ──────────────────────────────────
12
+ suite.add("vector_insert_3d", "vector", () => {
13
+ const db = inMemoryVectorDB(3);
14
+ for (let i = 0; i < 100; i++) {
15
+ db.insert([Math.random(), Math.random(), Math.random()]);
16
+ }
17
+ }, { iterations: 50, warmup: 5 });
18
+ suite.add("vector_insert_128d", "vector", () => {
19
+ const db = inMemoryVectorDB(128);
20
+ for (let i = 0; i < 100; i++) {
21
+ db.insert(Array.from({ length: 128 }, () => Math.random()));
22
+ }
23
+ }, { iterations: 50, warmup: 5 });
24
+ suite.add("vector_search_100vecs", "vector", () => {
25
+ const db = inMemoryVectorDB(128);
26
+ for (let i = 0; i < 100; i++) {
27
+ db.insert(Array.from({ length: 128 }, () => Math.random()));
28
+ }
29
+ const query = Array.from({ length: 128 }, () => Math.random());
30
+ for (let i = 0; i < 10; i++) {
31
+ db.search(query, 5);
32
+ }
33
+ }, { iterations: 30, warmup: 3 });
34
+ suite.add("vector_search_1000vecs", "vector", () => {
35
+ const db = inMemoryVectorDB(128);
36
+ for (let i = 0; i < 1000; i++) {
37
+ db.insert(Array.from({ length: 128 }, () => Math.random()));
38
+ }
39
+ const query = Array.from({ length: 128 }, () => Math.random());
40
+ for (let i = 0; i < 10; i++) {
41
+ db.search(query, 10);
42
+ }
43
+ }, { iterations: 10, warmup: 2 });
44
+ // ── SONA learning ──────────────────────────────────────
45
+ suite.add("sona_observe", "intelligence", () => {
46
+ const sona = createSonaEngine();
47
+ for (let i = 0; i < 50; i++) {
48
+ const emb = Array.from({ length: 128 }, () => Math.random());
49
+ sona.submitObservation(emb, Math.random(), "commit");
50
+ }
51
+ }, { iterations: 50, warmup: 5 });
52
+ suite.add("sona_transform", "intelligence", () => {
53
+ const sona = createSonaEngine();
54
+ const input = Array.from({ length: 128 }, () => 1.0);
55
+ for (let i = 0; i < 100; i++) {
56
+ sona.transformEmbedding(input);
57
+ }
58
+ }, { iterations: 50, warmup: 5 });
59
+ suite.add("sona_learn_cycle", "intelligence", () => {
60
+ const sona = createSonaEngine();
61
+ for (let i = 0; i < 20; i++) {
62
+ const emb = Array.from({ length: 128 }, () => Math.random());
63
+ sona.submitObservation(emb, Math.random());
64
+ }
65
+ sona.forceLearn();
66
+ }, { iterations: 30, warmup: 3 });
67
+ // ── Attention ──────────────────────────────────────────
68
+ suite.add("attention_compute_4d", "intelligence", () => {
69
+ const attn = createAttentionRouter(4);
70
+ const q = [1, 0, 0, 0];
71
+ const k = Array.from({ length: 40 }, () => Math.random()); // 10 keys
72
+ const v = Array.from({ length: 40 }, () => Math.random());
73
+ for (let i = 0; i < 100; i++) {
74
+ attn.compute(q, k, v, "auto");
75
+ }
76
+ }, { iterations: 50, warmup: 5 });
77
+ // ── Knowledge Graph ────────────────────────────────────
78
+ suite.add("graph_build_100nodes", "graph", () => {
79
+ const g = createKnowledgeGraph();
80
+ const ids = [];
81
+ for (let i = 0; i < 100; i++) {
82
+ ids.push(g.addNode("concept", `node-${i}`));
83
+ }
84
+ for (let i = 0; i < 99; i++) {
85
+ g.addEdge(ids[i], ids[i + 1], "next", 1.0);
86
+ }
87
+ }, { iterations: 30, warmup: 3 });
88
+ suite.add("graph_khop_100nodes", "graph", () => {
89
+ const g = createKnowledgeGraph();
90
+ const ids = [];
91
+ for (let i = 0; i < 100; i++) {
92
+ ids.push(g.addNode("concept", `node-${i}`));
93
+ }
94
+ for (let i = 0; i < 99; i++) {
95
+ g.addEdge(ids[i], ids[i + 1], "next", 1.0);
96
+ }
97
+ for (let i = 0; i < 10; i++) {
98
+ g.kHop(ids[0], 3);
99
+ }
100
+ }, { iterations: 20, warmup: 2 });
101
+ // ── Routing ────────────────────────────────────────────
102
+ suite.add("routing_route", "routing", () => {
103
+ const r = createRoutingEngine();
104
+ const tasks = [
105
+ "implement login page",
106
+ "write unit tests for auth",
107
+ "audit security vulnerabilities",
108
+ "design microservice architecture",
109
+ "fix null pointer bug in parser",
110
+ "update API documentation",
111
+ "refactor database layer",
112
+ "deploy to production",
113
+ ];
114
+ for (const task of tasks) {
115
+ r.route(task);
116
+ }
117
+ }, { iterations: 100, warmup: 10 });
118
+ suite.add("routing_model_tier", "routing", () => {
119
+ const r = createRoutingEngine();
120
+ const tasks = [
121
+ "fix typo",
122
+ "implement user auth",
123
+ "architect distributed system with security audit",
124
+ ];
125
+ for (const task of tasks) {
126
+ r.selectModelTier(task);
127
+ }
128
+ }, { iterations: 100, warmup: 10 });
129
+ suite.add("routing_learn_cycle", "routing", () => {
130
+ const r = createRoutingEngine();
131
+ for (let i = 0; i < 50; i++) {
132
+ const result = r.route("implement feature");
133
+ r.recordReward("implement feature", result.route, Math.random());
134
+ }
135
+ }, { iterations: 30, warmup: 3 });
136
+ // ── Analysis ───────────────────────────────────────────
137
+ suite.add("analysis_complexity", "analysis", () => {
138
+ const a = createAnalysisEngine();
139
+ const code = `
140
+ function processOrder(order) {
141
+ if (order.items.length === 0) throw new Error("empty");
142
+ for (const item of order.items) {
143
+ if (item.quantity > 0) {
144
+ if (item.price > 100) {
145
+ if (order.user.isPremium) {
146
+ item.discount = calc(item);
147
+ }
148
+ }
149
+ }
150
+ }
151
+ return order;
152
+ }`;
153
+ for (let i = 0; i < 100; i++) {
154
+ a.complexityScore(code);
155
+ }
156
+ }, { iterations: 50, warmup: 5 });
157
+ suite.add("analysis_classify_commit", "analysis", () => {
158
+ const a = createAnalysisEngine();
159
+ const msgs = [
160
+ "fix: null pointer", "feat: new page", "refactor: cleanup",
161
+ "docs: readme", "test: auth tests", "chore: deps update",
162
+ "style: formatting", "perf: optimize query",
163
+ ];
164
+ for (let i = 0; i < 100; i++) {
165
+ for (const m of msgs)
166
+ a.classifyCommit(m);
167
+ }
168
+ }, { iterations: 50, warmup: 5 });
169
+ return suite;
170
+ }
171
+ //# sourceMappingURL=builtin-benchmarks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-benchmarks.js","sourceRoot":"","sources":["../../src/metrics/builtin-benchmarks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Metrics collector — tracks token usage, cost, latency, memory, and tool calls.
3
+ *
4
+ * Singleton that accumulates metrics in-memory per session.
5
+ * Can be persisted to .aiyoucli/metrics/ for cross-session analysis.
6
+ */
7
+ export interface TokenUsage {
8
+ inputTokens: number;
9
+ outputTokens: number;
10
+ cacheReadTokens: number;
11
+ cacheWriteTokens: number;
12
+ }
13
+ export interface ToolCallMetric {
14
+ toolName: string;
15
+ startedAt: number;
16
+ durationMs: number;
17
+ success: boolean;
18
+ errorCode?: string;
19
+ }
20
+ export interface SessionMetrics {
21
+ sessionId: string;
22
+ startedAt: number;
23
+ modelId: string;
24
+ tokens: TokenUsage;
25
+ cost: CostBreakdown;
26
+ toolCalls: ToolCallSummary;
27
+ memory: MemoryMetrics;
28
+ latency: LatencyMetrics;
29
+ }
30
+ export interface CostBreakdown {
31
+ inputCost: number;
32
+ outputCost: number;
33
+ totalCost: number;
34
+ currency: "USD";
35
+ }
36
+ export interface ToolCallSummary {
37
+ total: number;
38
+ succeeded: number;
39
+ failed: number;
40
+ avgDurationMs: number;
41
+ p95DurationMs: number;
42
+ byTool: Record<string, {
43
+ count: number;
44
+ avgMs: number;
45
+ errors: number;
46
+ }>;
47
+ }
48
+ export interface MemoryMetrics {
49
+ heapUsedMB: number;
50
+ heapTotalMB: number;
51
+ rssMB: number;
52
+ externalMB: number;
53
+ }
54
+ export interface LatencyMetrics {
55
+ avgToolCallMs: number;
56
+ p50Ms: number;
57
+ p95Ms: number;
58
+ p99Ms: number;
59
+ maxMs: number;
60
+ }
61
+ declare class MetricsCollector {
62
+ private sessionId;
63
+ private startedAt;
64
+ private modelId;
65
+ private tokens;
66
+ private toolCalls;
67
+ private projectRoot;
68
+ constructor();
69
+ setModel(modelId: string): void;
70
+ setProjectRoot(root: string): void;
71
+ setSessionId(id: string): void;
72
+ recordTokens(usage: Partial<TokenUsage>): void;
73
+ getTokens(): TokenUsage;
74
+ startToolCall(toolName: string): (success?: boolean, errorCode?: string) => void;
75
+ recordToolCall(metric: ToolCallMetric): void;
76
+ calculateCost(modelTier?: string): CostBreakdown;
77
+ getMemoryMetrics(): MemoryMetrics;
78
+ getLatencyMetrics(): LatencyMetrics;
79
+ getToolCallSummary(): ToolCallSummary;
80
+ snapshot(modelTier?: string): SessionMetrics;
81
+ save(): Promise<string>;
82
+ static load(filepath: string): Promise<SessionMetrics>;
83
+ reset(): void;
84
+ private inferTier;
85
+ }
86
+ /** Singleton metrics collector */
87
+ export declare const metrics: MetricsCollector;
88
+ export {};
89
+ //# sourceMappingURL=collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/metrics/collector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Metrics collector — tracks token usage, cost, latency, memory, and tool calls.
3
+ *
4
+ * Singleton that accumulates metrics in-memory per session.
5
+ * Can be persisted to .aiyoucli/metrics/ for cross-session analysis.
6
+ */
7
+ import { writeFile, readFile, mkdir } from "node:fs/promises";
8
+ import { join } from "node:path";
9
+ // ── Pricing (USD per 1M tokens, as of 2025) ─────────────────
10
+ const MODEL_PRICING = {
11
+ "opus": { input: 15.0, output: 75.0 },
12
+ "sonnet": { input: 3.0, output: 15.0 },
13
+ "haiku": { input: 0.25, output: 1.25 },
14
+ };
15
+ // ── Collector ────────────────────────────────────────────────
16
+ class MetricsCollector {
17
+ sessionId;
18
+ startedAt;
19
+ modelId = "unknown";
20
+ tokens = {
21
+ inputTokens: 0,
22
+ outputTokens: 0,
23
+ cacheReadTokens: 0,
24
+ cacheWriteTokens: 0,
25
+ };
26
+ toolCalls = [];
27
+ projectRoot = process.cwd();
28
+ constructor() {
29
+ this.sessionId = `metrics-${Date.now()}`;
30
+ this.startedAt = Date.now();
31
+ }
32
+ setModel(modelId) {
33
+ this.modelId = modelId;
34
+ }
35
+ setProjectRoot(root) {
36
+ this.projectRoot = root;
37
+ }
38
+ setSessionId(id) {
39
+ this.sessionId = id;
40
+ }
41
+ // ── Token tracking ──────────────────────────────────────
42
+ recordTokens(usage) {
43
+ if (usage.inputTokens)
44
+ this.tokens.inputTokens += usage.inputTokens;
45
+ if (usage.outputTokens)
46
+ this.tokens.outputTokens += usage.outputTokens;
47
+ if (usage.cacheReadTokens)
48
+ this.tokens.cacheReadTokens += usage.cacheReadTokens;
49
+ if (usage.cacheWriteTokens)
50
+ this.tokens.cacheWriteTokens += usage.cacheWriteTokens;
51
+ }
52
+ getTokens() {
53
+ return { ...this.tokens };
54
+ }
55
+ // ── Tool call tracking ──────────────────────────────────
56
+ startToolCall(toolName) {
57
+ const startedAt = performance.now();
58
+ return (success = true, errorCode) => {
59
+ this.toolCalls.push({
60
+ toolName,
61
+ startedAt,
62
+ durationMs: performance.now() - startedAt,
63
+ success,
64
+ errorCode,
65
+ });
66
+ };
67
+ }
68
+ recordToolCall(metric) {
69
+ this.toolCalls.push(metric);
70
+ }
71
+ // ── Cost calculation ────────────────────────────────────
72
+ calculateCost(modelTier) {
73
+ const tier = modelTier ?? this.inferTier();
74
+ const pricing = MODEL_PRICING[tier] ?? MODEL_PRICING["sonnet"];
75
+ const inputCost = (this.tokens.inputTokens / 1_000_000) * pricing.input;
76
+ const outputCost = (this.tokens.outputTokens / 1_000_000) * pricing.output;
77
+ return {
78
+ inputCost: round6(inputCost),
79
+ outputCost: round6(outputCost),
80
+ totalCost: round6(inputCost + outputCost),
81
+ currency: "USD",
82
+ };
83
+ }
84
+ // ── Memory snapshot ─────────────────────────────────────
85
+ getMemoryMetrics() {
86
+ const mem = process.memoryUsage();
87
+ return {
88
+ heapUsedMB: round2(mem.heapUsed / 1024 / 1024),
89
+ heapTotalMB: round2(mem.heapTotal / 1024 / 1024),
90
+ rssMB: round2(mem.rss / 1024 / 1024),
91
+ externalMB: round2(mem.external / 1024 / 1024),
92
+ };
93
+ }
94
+ // ── Latency stats ───────────────────────────────────────
95
+ getLatencyMetrics() {
96
+ if (this.toolCalls.length === 0) {
97
+ return { avgToolCallMs: 0, p50Ms: 0, p95Ms: 0, p99Ms: 0, maxMs: 0 };
98
+ }
99
+ const durations = this.toolCalls.map((c) => c.durationMs).sort((a, b) => a - b);
100
+ const len = durations.length;
101
+ return {
102
+ avgToolCallMs: round2(durations.reduce((s, d) => s + d, 0) / len),
103
+ p50Ms: round2(durations[Math.floor(len * 0.5)]),
104
+ p95Ms: round2(durations[Math.floor(len * 0.95)]),
105
+ p99Ms: round2(durations[Math.floor(len * 0.99)]),
106
+ maxMs: round2(durations[len - 1]),
107
+ };
108
+ }
109
+ // ── Tool call summary ───────────────────────────────────
110
+ getToolCallSummary() {
111
+ const total = this.toolCalls.length;
112
+ const succeeded = this.toolCalls.filter((c) => c.success).length;
113
+ const failed = total - succeeded;
114
+ const byTool = {};
115
+ for (const call of this.toolCalls) {
116
+ const entry = byTool[call.toolName] ??= { count: 0, avgMs: 0, errors: 0 };
117
+ entry.count++;
118
+ entry.avgMs += call.durationMs;
119
+ if (!call.success)
120
+ entry.errors++;
121
+ }
122
+ for (const entry of Object.values(byTool)) {
123
+ entry.avgMs = round2(entry.avgMs / entry.count);
124
+ }
125
+ const durations = this.toolCalls.map((c) => c.durationMs).sort((a, b) => a - b);
126
+ const avgDurationMs = total > 0 ? round2(durations.reduce((s, d) => s + d, 0) / total) : 0;
127
+ const p95DurationMs = total > 0 ? round2(durations[Math.floor(total * 0.95)]) : 0;
128
+ return { total, succeeded, failed, avgDurationMs, p95DurationMs, byTool };
129
+ }
130
+ // ── Full snapshot ───────────────────────────────────────
131
+ snapshot(modelTier) {
132
+ return {
133
+ sessionId: this.sessionId,
134
+ startedAt: this.startedAt,
135
+ modelId: this.modelId,
136
+ tokens: this.getTokens(),
137
+ cost: this.calculateCost(modelTier),
138
+ toolCalls: this.getToolCallSummary(),
139
+ memory: this.getMemoryMetrics(),
140
+ latency: this.getLatencyMetrics(),
141
+ };
142
+ }
143
+ // ── Persistence ─────────────────────────────────────────
144
+ async save() {
145
+ const dir = join(this.projectRoot, ".aiyoucli", "metrics");
146
+ await mkdir(dir, { recursive: true });
147
+ const filename = `${this.sessionId}.json`;
148
+ const filepath = join(dir, filename);
149
+ await writeFile(filepath, JSON.stringify(this.snapshot(), null, 2));
150
+ return filepath;
151
+ }
152
+ static async load(filepath) {
153
+ const data = await readFile(filepath, "utf-8");
154
+ return JSON.parse(data);
155
+ }
156
+ // ── Reset ───────────────────────────────────────────────
157
+ reset() {
158
+ this.tokens = { inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0 };
159
+ this.toolCalls = [];
160
+ this.startedAt = Date.now();
161
+ this.sessionId = `metrics-${Date.now()}`;
162
+ }
163
+ // ── Internals ───────────────────────────────────────────
164
+ inferTier() {
165
+ const id = this.modelId.toLowerCase();
166
+ if (id.includes("opus"))
167
+ return "opus";
168
+ if (id.includes("haiku"))
169
+ return "haiku";
170
+ return "sonnet";
171
+ }
172
+ }
173
+ function round2(n) {
174
+ return Math.round(n * 100) / 100;
175
+ }
176
+ function round6(n) {
177
+ return Math.round(n * 1_000_000) / 1_000_000;
178
+ }
179
+ /** Singleton metrics collector */
180
+ export const metrics = new MetricsCollector();
181
+ //# sourceMappingURL=collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/metrics/collector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * NAPI binary loader for aiyoucli-napi Rust crate.
3
+ *
4
+ * Loads the platform-specific .node binary and re-exports
5
+ * the Rust-backed VectorHandle class + any future bindings.
6
+ */
7
+ export interface DetectResult {
8
+ detected: Array<{
9
+ id: string;
10
+ name: string;
11
+ category: string;
12
+ skills: string[];
13
+ }>;
14
+ categories: string[];
15
+ skills: string[];
16
+ total_technologies: number;
17
+ total_skills: number;
18
+ }
19
+ export interface VectorHandle {
20
+ insert(vector: number[], id?: string, metadata?: unknown): string;
21
+ search(vector: number[], k?: number): SearchResult[];
22
+ delete(id: string): boolean;
23
+ count(): number;
24
+ stats(): DbStats;
25
+ }
26
+ export interface SearchResult {
27
+ id: string;
28
+ score: number;
29
+ vector?: number[];
30
+ metadata?: Record<string, unknown>;
31
+ }
32
+ export interface DbStats {
33
+ total_vectors: number;
34
+ dimensions: number;
35
+ metric: string;
36
+ index_type: string;
37
+ storage_bytes: number;
38
+ }
39
+ /**
40
+ * Open a persistent vector database at the given path.
41
+ */
42
+ export declare function openVectorDB(path: string, dimensions?: number): VectorHandle;
43
+ /**
44
+ * Create an in-memory vector database (no persistence).
45
+ */
46
+ export declare function inMemoryVectorDB(dimensions?: number, enableHnsw?: boolean): VectorHandle;
47
+ export interface SonaHandle {
48
+ submitObservation(embedding: number[], qualityScore: number, kind?: string): void;
49
+ transformEmbedding(input: number[]): number[];
50
+ forceLearn(): number;
51
+ stats(): {
52
+ signals_processed: number;
53
+ trajectories_buffered: number;
54
+ enabled: boolean;
55
+ };
56
+ setEnabled(enabled: boolean): void;
57
+ }
58
+ export declare function createSonaEngine(): SonaHandle;
59
+ export interface AttentionHandle {
60
+ compute(query: number[], keysFlat: number[], valuesFlat: number[], hint?: string): number[];
61
+ }
62
+ export declare function createAttentionRouter(dim: number): AttentionHandle;
63
+ export interface GraphHandle {
64
+ addNode(kind: string, name: string): number;
65
+ addEdge(from: number, to: number, kind: string, weight: number): number;
66
+ getNode(id: number): {
67
+ id: number;
68
+ name: string;
69
+ kind: string;
70
+ } | null;
71
+ neighbors(id: number, direction?: string): Array<{
72
+ node_id: number;
73
+ node_name: string;
74
+ node_kind: string;
75
+ edge_kind: string;
76
+ weight: number;
77
+ }>;
78
+ kHop(start: number, k: number): number[];
79
+ removeNode(id: number): boolean;
80
+ stats(): {
81
+ nodes: number;
82
+ edges: number;
83
+ };
84
+ }
85
+ export declare function createKnowledgeGraph(): GraphHandle;
86
+ export interface RoutingEngine {
87
+ route(taskDescription: string): {
88
+ route: string;
89
+ confidence: number;
90
+ model_tier: string;
91
+ explored: boolean;
92
+ method: string;
93
+ alternatives: Array<{
94
+ route: string;
95
+ score: number;
96
+ }>;
97
+ };
98
+ semanticRoute(taskDescription: string): {
99
+ route: string;
100
+ similarity: number;
101
+ scores: Array<{
102
+ route: string;
103
+ score: number;
104
+ }>;
105
+ };
106
+ embed(text: string): number[];
107
+ recordReward(taskDescription: string, chosenRoute: string, reward: number): void;
108
+ selectModelTier(taskDescription: string): string;
109
+ stats(): {
110
+ states_learned: number;
111
+ total_steps: number;
112
+ num_actions: number;
113
+ replay_buffer_size: number;
114
+ replay_buffer_full: boolean;
115
+ embedding_dimensions: number;
116
+ };
117
+ exportQTable(): string;
118
+ importQTable(jsonStr: string): void;
119
+ }
120
+ export declare function createRoutingEngine(): RoutingEngine;
121
+ export interface AnalysisEngine {
122
+ classifyDiff(diffContent: string): {
123
+ files: Array<{
124
+ path: string;
125
+ additions: number;
126
+ deletions: number;
127
+ classification: string;
128
+ impact: string;
129
+ }>;
130
+ overall: {
131
+ classification: string;
132
+ impact: string;
133
+ confidence: number;
134
+ };
135
+ stats: {
136
+ total_additions: number;
137
+ total_deletions: number;
138
+ files_changed: number;
139
+ };
140
+ risk_factors: string[];
141
+ };
142
+ classifyCommit(message: string): string;
143
+ complexityScore(source: string): number;
144
+ }
145
+ export declare function createAnalysisEngine(): AnalysisEngine;
146
+ /**
147
+ * Distill Markdown into TOON format (Dense Structured Instructions).
148
+ * ~52% fewer tokens for the same semantic content.
149
+ */
150
+ export declare function distillMarkdown(markdown: string): string;
151
+ /**
152
+ * Distill a Markdown file into TOON format. Reads file and returns TOON string.
153
+ */
154
+ export declare function distillFile(path: string): string;
155
+ /**
156
+ * Detect technologies in a project directory.
157
+ */
158
+ export declare function detectTechnologies(projectDir: string): DetectResult;
159
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/napi/index.ts"],"names":[],"mappings":"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"}