monomind 1.10.57 → 1.11.1
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/.claude/agents/core/coordinator.md +71 -0
- package/.claude/agents/generated/case-analyst.md +50 -0
- package/.claude/agents/generated/copy-editor.md +45 -0
- package/.claude/agents/generated/court-reporter.md +50 -0
- package/.claude/agents/generated/defender.md +51 -0
- package/.claude/agents/generated/editor-in-chief.md +45 -0
- package/.claude/agents/generated/fact-checker.md +45 -0
- package/.claude/agents/generated/judge.md +51 -0
- package/.claude/agents/generated/prosecutor.md +51 -0
- package/.claude/agents/generated/reporter.md +45 -0
- package/.claude/commands/hooks/README.md +1 -1
- package/.claude/commands/hooks/overview.md +1 -1
- package/.claude/commands/mastermind/_repeat.md +1 -1
- package/.claude/commands/mastermind/do.md +3 -1
- package/.claude/commands/mastermind/help.md +2 -2
- package/.claude/commands/mastermind/master.md +39 -6
- package/.claude/commands/mastermind/memory.md +1 -1
- package/.claude/commands/memory/memory-search.md +2 -2
- package/.claude/commands/monitoring/status.md +1 -1
- package/.claude/commands/{browse.md → monobrowse.md} +2 -2
- package/.claude/commands/sparc.md +1 -1
- package/.claude/helpers/handlers/graph-status-handler.cjs +1 -1
- package/.claude/helpers/loop-tracker.cjs +1 -1
- package/.claude/scheduled_tasks.lock +1 -1
- package/.claude/skills/agent-browser-testing/SKILL.md +1 -1
- package/.claude/skills/hooks-automation/SKILL.md +0 -3
- package/.claude/skills/mastermind/build.md +1 -1
- package/.claude/skills/mastermind/code-quality-reviewer-prompt.md +60 -0
- package/.claude/skills/mastermind/content.md +1 -1
- package/.claude/skills/mastermind/createorg.md +79 -2
- package/.claude/skills/mastermind/design.md +3 -1
- package/.claude/skills/mastermind/finance.md +1 -1
- package/.claude/skills/mastermind/implementer-prompt.md +109 -0
- package/.claude/skills/mastermind/marketing.md +1 -1
- package/.claude/skills/mastermind/ops.md +1 -1
- package/.claude/skills/mastermind/plan.md +20 -2
- package/.claude/skills/mastermind/release.md +1 -1
- package/.claude/skills/mastermind/research.md +1 -1
- package/.claude/skills/mastermind/review.md +1 -1
- package/.claude/skills/mastermind/sales.md +1 -1
- package/.claude/skills/mastermind/spec-reviewer-prompt.md +63 -0
- package/.claude/skills/sparc-methodology/SKILL.md +3 -3
- package/.claude/skills/swarm-advanced/SKILL.md +1 -4
- package/.claude-plugin/README.md +1 -2
- package/.claude-plugin/docs/PLUGIN_SUMMARY.md +0 -1
- package/README.md +18 -32
- package/package.json +2 -2
- package/packages/@monomind/cli/README.md +18 -32
- package/packages/@monomind/cli/dist/src/agents/registry-builder.d.ts +1 -7
- package/packages/@monomind/cli/dist/src/agents/registry-builder.js +10 -6
- package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +59 -12
- package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +67 -13
- package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.d.ts +0 -13
- package/packages/@monomind/cli/dist/src/commands/agent-wasm.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/commands/agent-wasm.js +5 -5
- package/packages/@monomind/cli/dist/src/commands/agent.js +1 -6
- package/packages/@monomind/cli/dist/src/commands/analyze.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/commands/analyze.js +8 -18
- package/packages/@monomind/cli/dist/src/commands/doctor.js +53 -3
- package/packages/@monomind/cli/dist/src/commands/embeddings.js +9 -33
- package/packages/@monomind/cli/dist/src/commands/hooks.js +31 -74
- package/packages/@monomind/cli/dist/src/commands/index.d.ts +4 -6
- package/packages/@monomind/cli/dist/src/commands/index.js +8 -15
- package/packages/@monomind/cli/dist/src/commands/init.js +2 -2
- package/packages/@monomind/cli/dist/src/commands/issues.js +16 -11
- package/packages/@monomind/cli/dist/src/commands/memory.js +6 -6
- package/packages/@monomind/cli/dist/src/commands/migrate.js +1 -2
- package/packages/@monomind/cli/dist/src/commands/monograph.js +18 -11
- package/packages/@monomind/cli/dist/src/commands/monovector/backup.d.ts +11 -0
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/backup.js +25 -25
- package/packages/@monomind/cli/dist/src/commands/monovector/benchmark.d.ts +11 -0
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/benchmark.js +14 -14
- package/packages/@monomind/cli/dist/src/commands/monovector/import.d.ts +18 -0
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/import.js +21 -21
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/index.d.ts +6 -6
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/index.js +22 -22
- package/packages/@monomind/cli/dist/src/commands/monovector/init.d.ts +11 -0
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/init.js +36 -36
- package/packages/@monomind/cli/dist/src/commands/monovector/migrate.d.ts +11 -0
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/migrate.js +16 -16
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/optimize.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/optimize.js +10 -10
- package/packages/@monomind/cli/dist/src/commands/monovector/setup.d.ts +18 -0
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/setup.js +77 -77
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/status.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/commands/{ruvector → monovector}/status.js +34 -34
- package/packages/@monomind/cli/dist/src/commands/neural.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/commands/neural.js +31 -608
- package/packages/@monomind/cli/dist/src/commands/performance.js +7 -10
- package/packages/@monomind/cli/dist/src/commands/plugins.js +3 -4
- package/packages/@monomind/cli/dist/src/commands/process.js +5 -12
- package/packages/@monomind/cli/dist/src/commands/progress.js +16 -16
- package/packages/@monomind/cli/dist/src/commands/route.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/commands/route.js +23 -23
- package/packages/@monomind/cli/dist/src/commands/status.js +0 -3
- package/packages/@monomind/cli/dist/src/commands/swarm.js +2 -3
- package/packages/@monomind/cli/dist/src/config-adapter.js +27 -0
- package/packages/@monomind/cli/dist/src/consensus/audit-writer.d.ts +44 -17
- package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/index.js +5 -5
- package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +57 -37
- package/packages/@monomind/cli/dist/src/init/executor.js +17 -27
- package/packages/@monomind/cli/dist/src/init/helpers-generator.js +2 -2
- package/packages/@monomind/cli/dist/src/init/types.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/mcp-client.js +1 -7
- package/packages/@monomind/cli/dist/src/mcp-server.js +9 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +1 -52
- package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.js +5 -5
- package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.js +6 -5
- package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +51 -54
- package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +10 -10
- package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +0 -24
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +189 -480
- package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/monograph-compat.d.ts +334 -0
- package/packages/@monomind/cli/dist/src/mcp-tools/monograph-compat.js +1126 -0
- package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +76 -34
- package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +2 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.js +3 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.js +29 -19
- package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.js +2 -2
- package/packages/@monomind/cli/dist/src/memory/intelligence.js +14 -8
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +17 -2
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +76 -23
- package/packages/@monomind/cli/dist/src/memory/memory-initializer.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +37 -39
- package/packages/@monomind/cli/dist/src/monovector/capabilities.d.ts +34 -0
- package/packages/@monomind/cli/dist/src/monovector/capabilities.js +37 -0
- package/packages/@monomind/cli/dist/src/monovector/command-outcomes.d.ts +37 -0
- package/packages/@monomind/cli/dist/src/monovector/command-outcomes.js +87 -0
- package/packages/@monomind/cli/dist/src/monovector/coverage-router.d.ts +103 -0
- package/packages/@monomind/cli/dist/src/monovector/coverage-router.js +337 -0
- package/packages/@monomind/cli/dist/src/monovector/coverage-tools.d.ts +14 -0
- package/packages/@monomind/cli/dist/src/monovector/coverage-tools.js +112 -0
- package/packages/@monomind/cli/dist/src/{ruvector → monovector}/diff-classifier.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/monovector/index.d.ts +61 -0
- package/packages/@monomind/cli/dist/src/monovector/index.js +67 -0
- package/packages/@monomind/cli/dist/src/monovector/init-state.d.ts +35 -0
- package/packages/@monomind/cli/dist/src/monovector/init-state.js +36 -0
- package/packages/@monomind/cli/dist/src/monovector/route-outcomes.d.ts +55 -0
- package/packages/@monomind/cli/dist/src/monovector/route-outcomes.js +137 -0
- package/packages/@monomind/cli/dist/src/parser.js +3 -3
- package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +0 -31
- package/packages/@monomind/cli/dist/src/production/circuit-breaker.d.ts +26 -6
- package/packages/@monomind/cli/dist/src/production/error-handler.d.ts +55 -30
- package/packages/@monomind/cli/dist/src/production/index.d.ts +3 -20
- package/packages/@monomind/cli/dist/src/production/index.js +3 -15
- package/packages/@monomind/cli/dist/src/production/monitoring.d.ts +54 -34
- package/packages/@monomind/cli/dist/src/production/monitoring.js +12 -14
- package/packages/@monomind/cli/dist/src/production/rate-limiter.d.ts +64 -19
- package/packages/@monomind/cli/dist/src/production/rate-limiter.js +5 -5
- package/packages/@monomind/cli/dist/src/production/retry.js +4 -2
- package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +50 -59
- package/packages/@monomind/cli/dist/src/services/claim-service.js +83 -50
- package/packages/@monomind/cli/dist/src/services/config-file-manager.js +8 -1
- package/packages/@monomind/cli/dist/src/services/worker-daemon.js +4 -0
- package/packages/@monomind/cli/dist/src/types.d.ts +13 -0
- package/packages/@monomind/cli/package.json +14 -14
- package/packages/@monomind/guidance/dist/index.d.ts +1 -1
- package/packages/@monomind/guidance/dist/index.js +1 -1
- package/packages/@monomind/guidance/package.json +1 -2
- package/scripts/build-monovector.sh +10 -0
- package/scripts/publish-monovector.sh +20 -0
- package/.claude/commands/monomind/adr.md +0 -11
- package/.claude/commands/monomind/budget.md +0 -7
- package/.claude/commands/monomind/createtask.md +0 -277
- package/.claude/commands/monomind/do.md +0 -498
- package/.claude/commands/monomind/graph-status.md +0 -7
- package/.claude/commands/monomind/help.md +0 -118
- package/.claude/commands/monomind/idea.md +0 -273
- package/.claude/commands/monomind/improve.md +0 -352
- package/.claude/commands/monomind/loops.md +0 -7
- package/.claude/commands/monomind/memory.md +0 -230
- package/.claude/commands/monomind/repeat.md +0 -257
- package/.claude/commands/monomind/review.md +0 -317
- package/.claude/commands/monomind/specialagents.md +0 -125
- package/.claude/commands/monomind/swarm.md +0 -161
- package/.claude/commands/monomind/understand.md +0 -139
- package/.claude/commands/training/README.md +0 -39
- package/.claude/commands/training/neural-patterns.md +0 -73
- package/.claude/commands/training/neural-train.md +0 -79
- package/packages/@monomind/cli/dist/src/commands/appliance-advanced.d.ts +0 -9
- package/packages/@monomind/cli/dist/src/commands/appliance-advanced.js +0 -238
- package/packages/@monomind/cli/dist/src/commands/appliance.d.ts +0 -8
- package/packages/@monomind/cli/dist/src/commands/appliance.js +0 -406
- package/packages/@monomind/cli/dist/src/commands/ruvector/backup.d.ts +0 -11
- package/packages/@monomind/cli/dist/src/commands/ruvector/benchmark.d.ts +0 -11
- package/packages/@monomind/cli/dist/src/commands/ruvector/import.d.ts +0 -18
- package/packages/@monomind/cli/dist/src/commands/ruvector/init.d.ts +0 -11
- package/packages/@monomind/cli/dist/src/commands/ruvector/migrate.d.ts +0 -11
- package/packages/@monomind/cli/dist/src/commands/ruvector/setup.d.ts +0 -18
- package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.d.ts +0 -182
- package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.js +0 -316
- package/packages/@monomind/cli/dist/src/ruvector/ast-analyzer.d.ts +0 -67
- package/packages/@monomind/cli/dist/src/ruvector/ast-analyzer.js +0 -277
- package/packages/@monomind/cli/dist/src/ruvector/coverage-router.d.ts +0 -160
- package/packages/@monomind/cli/dist/src/ruvector/coverage-router.js +0 -539
- package/packages/@monomind/cli/dist/src/ruvector/coverage-tools.d.ts +0 -33
- package/packages/@monomind/cli/dist/src/ruvector/coverage-tools.js +0 -157
- package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.d.ts +0 -146
- package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.js +0 -551
- package/packages/@monomind/cli/dist/src/ruvector/flash-attention.d.ts +0 -195
- package/packages/@monomind/cli/dist/src/ruvector/flash-attention.js +0 -643
- package/packages/@monomind/cli/dist/src/ruvector/graph-analyzer.d.ts +0 -187
- package/packages/@monomind/cli/dist/src/ruvector/graph-analyzer.js +0 -929
- package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +0 -67
- package/packages/@monomind/cli/dist/src/ruvector/index.js +0 -88
- package/packages/@monomind/cli/dist/src/ruvector/lora-adapter.d.ts +0 -218
- package/packages/@monomind/cli/dist/src/ruvector/lora-adapter.js +0 -455
- package/packages/@monomind/cli/dist/src/ruvector/model-router.d.ts +0 -222
- package/packages/@monomind/cli/dist/src/ruvector/model-router.js +0 -512
- package/packages/@monomind/cli/dist/src/ruvector/moe-router.d.ts +0 -213
- package/packages/@monomind/cli/dist/src/ruvector/moe-router.js +0 -649
- package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.d.ts +0 -217
- package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.js +0 -712
- package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.d.ts +0 -179
- package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.js +0 -363
- package/packages/@monomind/cli/dist/src/ruvector/semantic-router.d.ts +0 -77
- package/packages/@monomind/cli/dist/src/ruvector/semantic-router.js +0 -178
- package/packages/@monomind/cli/dist/src/ruvector/vector-db.d.ts +0 -69
- package/packages/@monomind/cli/dist/src/ruvector/vector-db.js +0 -243
- package/packages/@monomind/cli/dist/src/services/ruvector-training.d.ts +0 -222
- package/packages/@monomind/cli/dist/src/services/ruvector-training.js +0 -696
- /package/packages/@monomind/cli/dist/src/{ruvector → monovector}/diff-classifier.js +0 -0
|
@@ -149,9 +149,17 @@ const pursuitTask = {
|
|
|
149
149
|
stepBudget: 10,
|
|
150
150
|
evaluate(agentOutputs) {
|
|
151
151
|
const target = 'TARGET_FOUND';
|
|
152
|
-
const hits = agentOutputs.filter(o => o.includes(target)).length;
|
|
152
|
+
const hits = agentOutputs.filter((o) => o.includes(target)).length;
|
|
153
153
|
const score = agentOutputs.length > 0 ? hits / agentOutputs.length : 0;
|
|
154
|
-
return {
|
|
154
|
+
return {
|
|
155
|
+
taskId: this.id,
|
|
156
|
+
type: this.type,
|
|
157
|
+
passed: score >= 0.75,
|
|
158
|
+
score,
|
|
159
|
+
stepsTaken: 1,
|
|
160
|
+
agentCount: agentOutputs.length,
|
|
161
|
+
details: `${hits}/${agentOutputs.length} agents converged`,
|
|
162
|
+
};
|
|
155
163
|
},
|
|
156
164
|
};
|
|
157
165
|
/** Synchronization — all agents must emit the same token at the same logical step. */
|
|
@@ -163,7 +171,15 @@ const synchronizationTask = {
|
|
|
163
171
|
stepBudget: 5,
|
|
164
172
|
evaluate(agentOutputs) {
|
|
165
173
|
if (agentOutputs.length === 0)
|
|
166
|
-
return {
|
|
174
|
+
return {
|
|
175
|
+
taskId: this.id,
|
|
176
|
+
type: this.type,
|
|
177
|
+
passed: false,
|
|
178
|
+
score: 0,
|
|
179
|
+
stepsTaken: 0,
|
|
180
|
+
agentCount: 0,
|
|
181
|
+
details: 'no outputs',
|
|
182
|
+
};
|
|
167
183
|
const counts = new Map();
|
|
168
184
|
for (const o of agentOutputs) {
|
|
169
185
|
const tok = o.trim().split(/\s+/)[0] ?? '';
|
|
@@ -171,7 +187,15 @@ const synchronizationTask = {
|
|
|
171
187
|
}
|
|
172
188
|
const maxAgree = Math.max(...counts.values());
|
|
173
189
|
const score = maxAgree / agentOutputs.length;
|
|
174
|
-
return {
|
|
190
|
+
return {
|
|
191
|
+
taskId: this.id,
|
|
192
|
+
type: this.type,
|
|
193
|
+
passed: score >= 0.8,
|
|
194
|
+
score,
|
|
195
|
+
stepsTaken: 1,
|
|
196
|
+
agentCount: agentOutputs.length,
|
|
197
|
+
details: `majority agreement: ${(score * 100).toFixed(0)}%`,
|
|
198
|
+
};
|
|
175
199
|
},
|
|
176
200
|
};
|
|
177
201
|
/** Foraging — agents must collectively mention ≥ N distinct resources. */
|
|
@@ -190,7 +214,15 @@ const foragingTask = {
|
|
|
190
214
|
}
|
|
191
215
|
const goal = 4;
|
|
192
216
|
const score = Math.min(1, found.size / goal);
|
|
193
|
-
return {
|
|
217
|
+
return {
|
|
218
|
+
taskId: this.id,
|
|
219
|
+
type: this.type,
|
|
220
|
+
passed: found.size >= goal,
|
|
221
|
+
score,
|
|
222
|
+
stepsTaken: 1,
|
|
223
|
+
agentCount: agentOutputs.length,
|
|
224
|
+
details: `${found.size}/${goal} resources found: ${[...found].join(', ')}`,
|
|
225
|
+
};
|
|
194
226
|
},
|
|
195
227
|
};
|
|
196
228
|
/** Flocking — each agent must maintain formation by referencing its neighbour. */
|
|
@@ -202,9 +234,17 @@ const flockingTask = {
|
|
|
202
234
|
stepBudget: 20,
|
|
203
235
|
evaluate(agentOutputs) {
|
|
204
236
|
const cohesionKeyword = 'NEIGHBOUR_OK';
|
|
205
|
-
const aligned = agentOutputs.filter(o => o.includes(cohesionKeyword)).length;
|
|
237
|
+
const aligned = agentOutputs.filter((o) => o.includes(cohesionKeyword)).length;
|
|
206
238
|
const score = agentOutputs.length > 0 ? aligned / agentOutputs.length : 0;
|
|
207
|
-
return {
|
|
239
|
+
return {
|
|
240
|
+
taskId: this.id,
|
|
241
|
+
type: this.type,
|
|
242
|
+
passed: score >= 0.7,
|
|
243
|
+
score,
|
|
244
|
+
stepsTaken: 1,
|
|
245
|
+
agentCount: agentOutputs.length,
|
|
246
|
+
details: `${aligned}/${agentOutputs.length} in formation`,
|
|
247
|
+
};
|
|
208
248
|
},
|
|
209
249
|
};
|
|
210
250
|
/** Transport — item must appear in successive agent outputs showing relay progress. */
|
|
@@ -217,9 +257,19 @@ const transportTask = {
|
|
|
217
257
|
evaluate(agentOutputs) {
|
|
218
258
|
const payload = 'PAYLOAD_DELIVERED';
|
|
219
259
|
const lastAgentDelivered = agentOutputs.length > 0 && agentOutputs[agentOutputs.length - 1].includes(payload);
|
|
220
|
-
const relayCount = agentOutputs.filter(o => o.includes('RELAY')).length;
|
|
260
|
+
const relayCount = agentOutputs.filter((o) => o.includes('RELAY')).length;
|
|
221
261
|
const score = lastAgentDelivered ? 1 : relayCount / Math.max(agentOutputs.length, 1);
|
|
222
|
-
return {
|
|
262
|
+
return {
|
|
263
|
+
taskId: this.id,
|
|
264
|
+
type: this.type,
|
|
265
|
+
passed: lastAgentDelivered,
|
|
266
|
+
score,
|
|
267
|
+
stepsTaken: agentOutputs.length,
|
|
268
|
+
agentCount: agentOutputs.length,
|
|
269
|
+
details: lastAgentDelivered
|
|
270
|
+
? 'payload delivered'
|
|
271
|
+
: `relay progress: ${relayCount}/${agentOutputs.length}`,
|
|
272
|
+
};
|
|
223
273
|
},
|
|
224
274
|
};
|
|
225
275
|
export const SWARM_BENCH_TASKS = [
|
|
@@ -229,6 +279,10 @@ export const SWARM_BENCH_TASKS = [
|
|
|
229
279
|
flockingTask,
|
|
230
280
|
transportTask,
|
|
231
281
|
];
|
|
282
|
+
/**
|
|
283
|
+
* Alias for {@link SWARM_BENCH_TASKS}. Kept for ergonomic imports.
|
|
284
|
+
*/
|
|
285
|
+
export const SWARM = SWARM_BENCH_TASKS;
|
|
232
286
|
/**
|
|
233
287
|
* SwarmBenchRunner — runs the 5 SwarmBench coordination task types.
|
|
234
288
|
* Wraps BenchmarkRunner for regression baseline tracking.
|
|
@@ -240,14 +294,14 @@ export class SwarmBenchRunner {
|
|
|
240
294
|
baselines = new Map();
|
|
241
295
|
/** Run all (or a subset of) SwarmBench tasks against simulated agent outputs. */
|
|
242
296
|
runAll(agentOutputsByTask) {
|
|
243
|
-
return SWARM_BENCH_TASKS.map(task => {
|
|
297
|
+
return SWARM_BENCH_TASKS.map((task) => {
|
|
244
298
|
const outputs = agentOutputsByTask.get(task.id) ?? [];
|
|
245
299
|
return task.evaluate(outputs);
|
|
246
300
|
});
|
|
247
301
|
}
|
|
248
302
|
/** Run a single task type by id. */
|
|
249
303
|
runTask(taskId, agentOutputs) {
|
|
250
|
-
const task = SWARM_BENCH_TASKS.find(t => t.id === taskId);
|
|
304
|
+
const task = SWARM_BENCH_TASKS.find((t) => t.id === taskId);
|
|
251
305
|
return task?.evaluate(agentOutputs);
|
|
252
306
|
}
|
|
253
307
|
/** Pin current results as the regression baseline. */
|
|
@@ -259,11 +313,11 @@ export class SwarmBenchRunner {
|
|
|
259
313
|
/** Detect regression: returns task IDs whose score dropped below baseline. */
|
|
260
314
|
detectRegressions(current) {
|
|
261
315
|
return current
|
|
262
|
-
.filter(r => {
|
|
316
|
+
.filter((r) => {
|
|
263
317
|
const baseline = this.baselines.get(r.taskId);
|
|
264
318
|
return baseline !== undefined && r.score < baseline.score;
|
|
265
319
|
})
|
|
266
|
-
.map(r => r.taskId);
|
|
320
|
+
.map((r) => r.taskId);
|
|
267
321
|
}
|
|
268
322
|
/** Expose underlying BenchmarkRunner for general benchmarks. */
|
|
269
323
|
get benchmarkRunner() {
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Self-Learning Pre-Training Benchmark Suite
|
|
3
|
-
* Comprehensive benchmarks for SONA, EWC++, MoE, pattern learning
|
|
4
|
-
*
|
|
5
|
-
* Metrics measured:
|
|
6
|
-
* - SONA adaptation latency (<0.05ms target)
|
|
7
|
-
* - Pattern learning throughput
|
|
8
|
-
* - EWC++ consolidation effectiveness
|
|
9
|
-
* - Memory retrieval accuracy
|
|
10
|
-
* - Pre-training convergence speed
|
|
11
|
-
*
|
|
12
|
-
* @module v1/cli/benchmarks/pretrain
|
|
13
|
-
*/
|
|
14
1
|
export interface BenchmarkResult {
|
|
15
2
|
name: string;
|
|
16
3
|
iterations: number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WASM Agent CLI Subcommands
|
|
3
3
|
*
|
|
4
|
-
* Exposes @
|
|
5
|
-
* Wraps functions from
|
|
4
|
+
* Exposes @monoes/rvagent-wasm operations via the `agent` CLI command.
|
|
5
|
+
* Wraps functions from monovector/agent-wasm.ts for CLI usage.
|
|
6
6
|
*/
|
|
7
7
|
import type { Command } from '../types.js';
|
|
8
8
|
export declare const wasmStatusCommand: Command;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WASM Agent CLI Subcommands
|
|
3
3
|
*
|
|
4
|
-
* Exposes @
|
|
5
|
-
* Wraps functions from
|
|
4
|
+
* Exposes @monoes/rvagent-wasm operations via the `agent` CLI command.
|
|
5
|
+
* Wraps functions from monovector/agent-wasm.ts for CLI usage.
|
|
6
6
|
*/
|
|
7
7
|
import { output } from '../output.js';
|
|
8
|
-
const WASM_NOT_AVAILABLE_MSG = '@
|
|
9
|
-
'Install it with: npm install @
|
|
8
|
+
const WASM_NOT_AVAILABLE_MSG = '@monoes/rvagent-wasm is not installed.\n' +
|
|
9
|
+
'Install it with: npm install @monoes/rvagent-wasm';
|
|
10
10
|
async function loadWasm() {
|
|
11
|
-
const mod = await import('../
|
|
11
|
+
const mod = await import('../monovector/agent-wasm.js');
|
|
12
12
|
return mod;
|
|
13
13
|
}
|
|
14
14
|
// agent wasm-status
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
import { output } from '../output.js';
|
|
6
6
|
import { select, confirm, input } from '../prompt.js';
|
|
7
7
|
import { callMCPTool, MCPClientError } from '../mcp-client.js';
|
|
8
|
-
import { wasmSubcommands } from './agent-wasm.js';
|
|
9
8
|
import * as fs from 'fs';
|
|
10
9
|
import * as path from 'path';
|
|
11
10
|
/**
|
|
@@ -874,7 +873,7 @@ function formatLogLevel(level) {
|
|
|
874
873
|
export const agentCommand = {
|
|
875
874
|
name: 'agent',
|
|
876
875
|
description: 'Agent management commands',
|
|
877
|
-
subcommands: [spawnCommand, listCommand, statusCommand, stopCommand, metricsCommand, poolCommand, healthCommand, logsCommand
|
|
876
|
+
subcommands: [spawnCommand, listCommand, statusCommand, stopCommand, metricsCommand, poolCommand, healthCommand, logsCommand],
|
|
878
877
|
options: [],
|
|
879
878
|
examples: [
|
|
880
879
|
{ command: 'monomind agent spawn -t coder', description: 'Spawn a coder agent' },
|
|
@@ -898,10 +897,6 @@ export const agentCommand = {
|
|
|
898
897
|
`${output.highlight('pool')} - Manage agent pool`,
|
|
899
898
|
`${output.highlight('health')} - Show agent health`,
|
|
900
899
|
`${output.highlight('logs')} - Show agent logs`,
|
|
901
|
-
`${output.highlight('wasm-status')} - Check WASM runtime availability`,
|
|
902
|
-
`${output.highlight('wasm-create')} - Create a WASM-sandboxed agent`,
|
|
903
|
-
`${output.highlight('wasm-prompt')} - Send a prompt to a WASM agent`,
|
|
904
|
-
`${output.highlight('wasm-gallery')} - List WASM agent gallery templates`,
|
|
905
900
|
]);
|
|
906
901
|
output.writeln();
|
|
907
902
|
output.writeln('Run "monomind agent <subcommand> --help" for subcommand help');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Code analysis, diff classification, AST analysis, and change risk assessment
|
|
4
4
|
*
|
|
5
5
|
* Features:
|
|
6
|
-
* - AST analysis using
|
|
6
|
+
* - AST analysis using monovector (tree-sitter) with graceful fallback
|
|
7
7
|
* - Symbol extraction (functions, classes, variables, types)
|
|
8
8
|
* - Cyclomatic complexity scoring
|
|
9
9
|
* - Diff classification and risk assessment
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Code analysis, diff classification, AST analysis, and change risk assessment
|
|
4
4
|
*
|
|
5
5
|
* Features:
|
|
6
|
-
* - AST analysis using
|
|
6
|
+
* - AST analysis using monovector (tree-sitter) with graceful fallback
|
|
7
7
|
* - Symbol extraction (functions, classes, variables, types)
|
|
8
8
|
* - Cyclomatic complexity scoring
|
|
9
9
|
* - Diff classification and risk assessment
|
|
@@ -20,23 +20,13 @@ import * as fs from 'fs/promises';
|
|
|
20
20
|
import { writeFile } from 'fs/promises';
|
|
21
21
|
import { resolve } from 'path';
|
|
22
22
|
import { execSync } from 'child_process';
|
|
23
|
-
//
|
|
23
|
+
// AST analyzer module was never shipped — always falls back to the regex path.
|
|
24
24
|
async function getASTAnalyzer() {
|
|
25
|
-
|
|
26
|
-
return await import('../ruvector/ast-analyzer.js');
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
25
|
+
return null;
|
|
31
26
|
}
|
|
32
|
-
//
|
|
27
|
+
// Graph analyzer module was never shipped — callers handle the null path.
|
|
33
28
|
async function getGraphAnalyzer() {
|
|
34
|
-
|
|
35
|
-
return await import('../ruvector/graph-analyzer.js');
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
29
|
+
return null;
|
|
40
30
|
}
|
|
41
31
|
// Diff subcommand
|
|
42
32
|
const diffCommand = {
|
|
@@ -395,7 +385,7 @@ const codeCommand = {
|
|
|
395
385
|
},
|
|
396
386
|
};
|
|
397
387
|
// ============================================================================
|
|
398
|
-
// AST Analysis Subcommands (using
|
|
388
|
+
// AST Analysis Subcommands (using monovector tree-sitter with fallback)
|
|
399
389
|
// ============================================================================
|
|
400
390
|
/**
|
|
401
391
|
* Helper: Truncate file path for display
|
|
@@ -445,7 +435,7 @@ function getComplexityRatingAst(value) {
|
|
|
445
435
|
*/
|
|
446
436
|
const astCommand = {
|
|
447
437
|
name: 'ast',
|
|
448
|
-
description: 'Analyze code using AST parsing (tree-sitter via
|
|
438
|
+
description: 'Analyze code using AST parsing (tree-sitter via monovector)',
|
|
449
439
|
options: [
|
|
450
440
|
{
|
|
451
441
|
name: 'complexity',
|
|
@@ -1142,7 +1132,7 @@ async function scanSourceFiles(dir, maxDepth = 10) {
|
|
|
1142
1132
|
return files;
|
|
1143
1133
|
}
|
|
1144
1134
|
/**
|
|
1145
|
-
* Fallback analysis when
|
|
1135
|
+
* Fallback analysis when monovector is not available
|
|
1146
1136
|
*/
|
|
1147
1137
|
function fallbackAnalyze(code, filePath) {
|
|
1148
1138
|
const lines = code.split('\n');
|
|
@@ -531,6 +531,54 @@ async function checkAgenticFlow() {
|
|
|
531
531
|
return { name: 'agentic-flow', status: 'warn', message: 'Check failed' };
|
|
532
532
|
}
|
|
533
533
|
}
|
|
534
|
+
// Check @monoes native acceleration integration (sona/router/attention/learning-wasm)
|
|
535
|
+
// Format a 0..1 accuracy as a whole-percent string, or 'n/a' when null.
|
|
536
|
+
function fmtPct(v) {
|
|
537
|
+
return v === null ? 'n/a' : `${Math.round(v * 100)}%`;
|
|
538
|
+
}
|
|
539
|
+
// Render the windowed routing-accuracy metric (C1) as a one-line summary.
|
|
540
|
+
// Tells an operator whether routing learning is actually helping.
|
|
541
|
+
async function routingAccuracyLine() {
|
|
542
|
+
try {
|
|
543
|
+
const { computeRoutingAccuracy, computeAdherence } = await import('../monovector/route-outcomes.js');
|
|
544
|
+
const baseDir = join(process.cwd(), '.monomind');
|
|
545
|
+
const acc = await computeRoutingAccuracy(baseDir, 100);
|
|
546
|
+
const adh = await computeAdherence(baseDir);
|
|
547
|
+
const adhStr = ` | adherence ${fmtPct(adh.adherence)} (n=${adh.sample})`;
|
|
548
|
+
if (acc.accuracy === null) {
|
|
549
|
+
return `routing accuracy (last 100): no outcome data yet${adhStr}`;
|
|
550
|
+
}
|
|
551
|
+
const trend = acc.recentVsPrior === null
|
|
552
|
+
? ''
|
|
553
|
+
: ` trend ${acc.recentVsPrior >= 0 ? '+' : ''}${Math.round(acc.recentVsPrior * 100)}%`;
|
|
554
|
+
return `routing accuracy (last ${acc.window}): ${fmtPct(acc.accuracy)} ` +
|
|
555
|
+
`[native ${fmtPct(acc.byMode.native)} / js ${fmtPct(acc.byMode.js)}]${trend}${adhStr}`;
|
|
556
|
+
}
|
|
557
|
+
catch {
|
|
558
|
+
return 'routing accuracy (last 100): no outcome data yet';
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
// Lean teardown: the native @monoes acceleration matrix (sona/router/attention/
|
|
562
|
+
// learning-wasm) has been removed. This check now reports only the honest routing
|
|
563
|
+
// learning metric — the windowed recommendation→outcome accuracy and adherence,
|
|
564
|
+
// which is the lean system's measurable signal.
|
|
565
|
+
async function checkMonoesIntegration() {
|
|
566
|
+
try {
|
|
567
|
+
const accLine = await routingAccuracyLine();
|
|
568
|
+
return {
|
|
569
|
+
name: 'Routing Learning',
|
|
570
|
+
status: 'pass',
|
|
571
|
+
message: accLine,
|
|
572
|
+
};
|
|
573
|
+
}
|
|
574
|
+
catch (err) {
|
|
575
|
+
return {
|
|
576
|
+
name: 'Routing Learning',
|
|
577
|
+
status: 'warn',
|
|
578
|
+
message: `Could not compute routing accuracy: ${err instanceof Error ? err.message : String(err)}`,
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
}
|
|
534
582
|
// Format health check result
|
|
535
583
|
function formatCheck(check) {
|
|
536
584
|
const icon = check.status === 'pass' ? output.success('✓') :
|
|
@@ -560,7 +608,7 @@ export const doctorCommand = {
|
|
|
560
608
|
{
|
|
561
609
|
name: 'component',
|
|
562
610
|
short: 'c',
|
|
563
|
-
description: 'Check specific component (version, node, npm, config, daemon, memory, api, git, mcp, claude, disk, typescript, monograph)',
|
|
611
|
+
description: 'Check specific component (version, node, npm, config, daemon, memory, api, git, mcp, claude, disk, typescript, monograph, monoes)',
|
|
564
612
|
type: 'string'
|
|
565
613
|
},
|
|
566
614
|
{
|
|
@@ -604,7 +652,8 @@ export const doctorCommand = {
|
|
|
604
652
|
checkBuildTools,
|
|
605
653
|
checkMonograph,
|
|
606
654
|
checkHelpersFresh,
|
|
607
|
-
checkAgenticFlow
|
|
655
|
+
checkAgenticFlow,
|
|
656
|
+
checkMonoesIntegration
|
|
608
657
|
];
|
|
609
658
|
const componentMap = {
|
|
610
659
|
'version': checkVersionFreshness,
|
|
@@ -622,7 +671,8 @@ export const doctorCommand = {
|
|
|
622
671
|
'typescript': checkBuildTools,
|
|
623
672
|
'monograph': checkMonograph,
|
|
624
673
|
'helpers': checkHelpersFresh,
|
|
625
|
-
'agentic-flow': checkAgenticFlow
|
|
674
|
+
'agentic-flow': checkAgenticFlow,
|
|
675
|
+
'monoes': checkMonoesIntegration
|
|
626
676
|
};
|
|
627
677
|
let checksToRun = allChecks;
|
|
628
678
|
if (component && componentMap[component]) {
|
|
@@ -524,7 +524,7 @@ const indexCommand = {
|
|
|
524
524
|
{ key: 'value', header: 'Value', width: 30 },
|
|
525
525
|
],
|
|
526
526
|
data: [
|
|
527
|
-
{ metric: 'HNSW Available', value: status.available ? output.success('Yes (
|
|
527
|
+
{ metric: 'HNSW Available', value: status.available ? output.success('Yes (pure-JS)') : output.warning('No') },
|
|
528
528
|
{ metric: 'Index Initialized', value: status.initialized ? output.success('Yes') : output.dim('No') },
|
|
529
529
|
{ metric: 'Vector Count', value: status.entryCount.toLocaleString() },
|
|
530
530
|
{ metric: 'Dimensions', value: String(status.dimensions) },
|
|
@@ -555,8 +555,7 @@ const indexCommand = {
|
|
|
555
555
|
}
|
|
556
556
|
else if (!status.available) {
|
|
557
557
|
output.writeln();
|
|
558
|
-
output.printWarning('
|
|
559
|
-
output.printInfo('Install: npm install @ruvector/core');
|
|
558
|
+
output.printWarning('HNSW index not available');
|
|
560
559
|
}
|
|
561
560
|
else {
|
|
562
561
|
output.writeln();
|
|
@@ -576,8 +575,7 @@ const indexCommand = {
|
|
|
576
575
|
// Force rebuild if requested
|
|
577
576
|
const index = await getHNSWIndex({ forceRebuild: action === 'rebuild' });
|
|
578
577
|
if (!index) {
|
|
579
|
-
spinner.fail('
|
|
580
|
-
output.printInfo('Install: npm install @ruvector/core');
|
|
578
|
+
spinner.fail('HNSW index not available');
|
|
581
579
|
return { success: false, exitCode: 1 };
|
|
582
580
|
}
|
|
583
581
|
spinner.succeed(`Index ${action} complete`);
|
|
@@ -996,16 +994,16 @@ const hyperbolicCommand = {
|
|
|
996
994
|
// Neural subcommand
|
|
997
995
|
const neuralCommand = {
|
|
998
996
|
name: 'neural',
|
|
999
|
-
description: '
|
|
997
|
+
description: 'Embedding substrate features (drift, memory physics, coherence)',
|
|
1000
998
|
options: [
|
|
1001
999
|
{ name: 'feature', short: 'f', type: 'string', description: 'Feature: drift, memory, swarm, coherence, all', default: 'all' },
|
|
1002
|
-
{ name: 'init', type: 'boolean', description: 'Initialize
|
|
1000
|
+
{ name: 'init', type: 'boolean', description: 'Initialize embedding substrate' },
|
|
1003
1001
|
{ name: 'drift-threshold', type: 'string', description: 'Semantic drift detection threshold', default: '0.3' },
|
|
1004
1002
|
{ name: 'decay-rate', type: 'string', description: 'Memory decay rate (hippocampal dynamics)', default: '0.01' },
|
|
1005
1003
|
{ name: 'consolidation-interval', type: 'string', description: 'Memory consolidation interval (ms)', default: '60000' },
|
|
1006
1004
|
],
|
|
1007
1005
|
examples: [
|
|
1008
|
-
{ command: 'monomind embeddings neural --init', description: 'Initialize
|
|
1006
|
+
{ command: 'monomind embeddings neural --init', description: 'Initialize embedding substrate' },
|
|
1009
1007
|
{ command: 'monomind embeddings neural -f drift', description: 'Semantic drift detection' },
|
|
1010
1008
|
{ command: 'monomind embeddings neural -f memory', description: 'Memory physics (hippocampal)' },
|
|
1011
1009
|
{ command: 'monomind embeddings neural -f coherence', description: 'Safety & alignment monitoring' },
|
|
@@ -1018,7 +1016,7 @@ const neuralCommand = {
|
|
|
1018
1016
|
const decayRate = parseFloat((ctx.flags['decay-rate'] || ctx.flags.decayRate || '0.01'));
|
|
1019
1017
|
const consolidationInterval = parseInt((ctx.flags['consolidation-interval'] || ctx.flags.consolidationInterval || '60000'), 10);
|
|
1020
1018
|
output.writeln();
|
|
1021
|
-
output.writeln(output.bold('Neural Embedding Substrate
|
|
1019
|
+
output.writeln(output.bold('Neural Embedding Substrate'));
|
|
1022
1020
|
output.writeln(output.dim('Treating embeddings as a synthetic nervous system'));
|
|
1023
1021
|
output.writeln(output.dim('─'.repeat(60)));
|
|
1024
1022
|
// Check if embeddings config exists
|
|
@@ -1045,12 +1043,6 @@ const neuralCommand = {
|
|
|
1045
1043
|
driftThreshold,
|
|
1046
1044
|
decayRate,
|
|
1047
1045
|
consolidationInterval,
|
|
1048
|
-
ruvector: {
|
|
1049
|
-
enabled: true,
|
|
1050
|
-
sona: true, // Self-Optimizing Neural Architecture
|
|
1051
|
-
flashAttention: true,
|
|
1052
|
-
ewcPlusPlus: true, // Elastic Weight Consolidation
|
|
1053
|
-
},
|
|
1054
1046
|
features: {
|
|
1055
1047
|
semanticDrift: true,
|
|
1056
1048
|
memoryPhysics: true,
|
|
@@ -1073,7 +1065,6 @@ const neuralCommand = {
|
|
|
1073
1065
|
}
|
|
1074
1066
|
const neuralConfig = (config.neural || {});
|
|
1075
1067
|
const features = (neuralConfig.features || {});
|
|
1076
|
-
const ruvector = (neuralConfig.ruvector || {});
|
|
1077
1068
|
output.printTable({
|
|
1078
1069
|
columns: [
|
|
1079
1070
|
{ key: 'feature', header: 'Feature', width: 24 },
|
|
@@ -1109,7 +1100,7 @@ const neuralCommand = {
|
|
|
1109
1100
|
],
|
|
1110
1101
|
});
|
|
1111
1102
|
output.writeln();
|
|
1112
|
-
output.writeln(output.bold('
|
|
1103
|
+
output.writeln(output.bold('Embedding Geometry'));
|
|
1113
1104
|
output.printTable({
|
|
1114
1105
|
columns: [
|
|
1115
1106
|
{ key: 'component', header: 'Component', width: 24 },
|
|
@@ -1117,21 +1108,6 @@ const neuralCommand = {
|
|
|
1117
1108
|
{ key: 'status', header: 'Status', width: 12 },
|
|
1118
1109
|
],
|
|
1119
1110
|
data: [
|
|
1120
|
-
{
|
|
1121
|
-
component: 'SONA',
|
|
1122
|
-
description: 'Self-Optimizing Neural Architecture (<0.05ms)',
|
|
1123
|
-
status: ruvector.sona ? output.success('Enabled') : output.dim('Disabled')
|
|
1124
|
-
},
|
|
1125
|
-
{
|
|
1126
|
-
component: 'Flash Attention',
|
|
1127
|
-
description: '2.49x-7.47x attention speedup',
|
|
1128
|
-
status: ruvector.flashAttention ? output.success('Enabled') : output.dim('Disabled')
|
|
1129
|
-
},
|
|
1130
|
-
{
|
|
1131
|
-
component: 'EWC++',
|
|
1132
|
-
description: 'Elastic Weight Consolidation (anti-forgetting)',
|
|
1133
|
-
status: ruvector.ewcPlusPlus ? output.success('Enabled') : output.dim('Disabled')
|
|
1134
|
-
},
|
|
1135
1111
|
{
|
|
1136
1112
|
component: 'Hyperbolic Space',
|
|
1137
1113
|
description: 'Poincaré ball for hierarchy preservation',
|
|
@@ -1638,7 +1614,7 @@ export const embeddingsCommand = {
|
|
|
1638
1614
|
output.writeln();
|
|
1639
1615
|
output.writeln('Performance:');
|
|
1640
1616
|
output.printList([
|
|
1641
|
-
'HNSW indexing:
|
|
1617
|
+
'HNSW indexing: O(log n) pure-JS vector search',
|
|
1642
1618
|
'Agentic Flow: 75x faster than Transformers.js (~3ms)',
|
|
1643
1619
|
'Persistent cache: SQLite-backed, survives restarts',
|
|
1644
1620
|
'Hyperbolic: Better hierarchical representation',
|