monomind 1.18.8 → 1.18.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/package.json +1 -1
  2. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.d.ts +1 -0
  3. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +17 -1
  4. package/packages/@monomind/cli/dist/src/commands/doctor.js +15 -1
  5. package/packages/@monomind/cli/dist/src/commands/hooks-coverage-commands.d.ts +1 -2
  6. package/packages/@monomind/cli/dist/src/commands/hooks-coverage-commands.js +1 -2
  7. package/packages/@monomind/cli/dist/src/commands/hooks-coverage-gaps.d.ts +1 -2
  8. package/packages/@monomind/cli/dist/src/commands/hooks-coverage-gaps.js +2 -117
  9. package/packages/@monomind/cli/dist/src/commands/hooks.js +1 -2
  10. package/packages/@monomind/cli/dist/src/commands/index.d.ts +0 -4
  11. package/packages/@monomind/cli/dist/src/commands/index.js +0 -22
  12. package/packages/@monomind/cli/dist/src/init/executor.d.ts +3 -0
  13. package/packages/@monomind/cli/dist/src/init/executor.js +20 -111
  14. package/packages/@monomind/cli/dist/src/mcp-client.js +0 -2
  15. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -1
  16. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -1
  17. package/packages/@monomind/cli/dist/src/mcp-tools/quality/coverage-analysis/track-trends.d.ts +4 -4
  18. package/packages/@monomind/cli/dist/src/mcp-tools/quality/test-generation/suggest-tests.d.ts +4 -4
  19. package/packages/@monomind/cli/package.json +1 -1
  20. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +0 -134
  21. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +0 -340
  22. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.d.ts +0 -36
  23. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +0 -125
  24. package/packages/@monomind/cli/dist/src/commands/benchmark.d.ts +0 -10
  25. package/packages/@monomind/cli/dist/src/commands/benchmark.js +0 -586
  26. package/packages/@monomind/cli/dist/src/commands/migrate.d.ts +0 -8
  27. package/packages/@monomind/cli/dist/src/commands/migrate.js +0 -789
  28. package/packages/@monomind/cli/dist/src/commands/monovector/backup.d.ts +0 -11
  29. package/packages/@monomind/cli/dist/src/commands/monovector/backup.js +0 -752
  30. package/packages/@monomind/cli/dist/src/commands/monovector/benchmark.d.ts +0 -11
  31. package/packages/@monomind/cli/dist/src/commands/monovector/benchmark.js +0 -502
  32. package/packages/@monomind/cli/dist/src/commands/monovector/import.d.ts +0 -18
  33. package/packages/@monomind/cli/dist/src/commands/monovector/import.js +0 -374
  34. package/packages/@monomind/cli/dist/src/commands/monovector/index.d.ts +0 -29
  35. package/packages/@monomind/cli/dist/src/commands/monovector/index.js +0 -129
  36. package/packages/@monomind/cli/dist/src/commands/monovector/init.d.ts +0 -11
  37. package/packages/@monomind/cli/dist/src/commands/monovector/init.js +0 -481
  38. package/packages/@monomind/cli/dist/src/commands/monovector/migrate.d.ts +0 -11
  39. package/packages/@monomind/cli/dist/src/commands/monovector/migrate.js +0 -500
  40. package/packages/@monomind/cli/dist/src/commands/monovector/optimize.d.ts +0 -11
  41. package/packages/@monomind/cli/dist/src/commands/monovector/optimize.js +0 -515
  42. package/packages/@monomind/cli/dist/src/commands/monovector/setup.d.ts +0 -18
  43. package/packages/@monomind/cli/dist/src/commands/monovector/setup.js +0 -775
  44. package/packages/@monomind/cli/dist/src/commands/monovector/status.d.ts +0 -11
  45. package/packages/@monomind/cli/dist/src/commands/monovector/status.js +0 -491
  46. package/packages/@monomind/cli/dist/src/commands/progress.d.ts +0 -11
  47. package/packages/@monomind/cli/dist/src/commands/progress.js +0 -261
  48. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.d.ts +0 -14
  49. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +0 -353
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monomind",
3
- "version": "1.18.8",
3
+ "version": "1.18.10",
4
4
  "description": "Monomind - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -12,6 +12,7 @@ export declare function checkMcpServers(): Promise<HealthCheck>;
12
12
  export declare function checkMonograph(): Promise<HealthCheck>;
13
13
  export declare function checkMonographFreshness(): Promise<HealthCheck>;
14
14
  export declare function checkMonoesMemory(): Promise<HealthCheck>;
15
+ export declare function fixStaleHelpers(): Promise<boolean>;
15
16
  export declare function checkHelpersFresh(): Promise<HealthCheck>;
16
17
  export declare function checkMonoesIntegration(): Promise<HealthCheck>;
17
18
  export declare function checkGitignoreCoverage(): Promise<HealthCheck>;
@@ -2,7 +2,7 @@
2
2
  * Doctor — project/monomind health checks
3
3
  * Config, daemon, memory, API keys, MCP, monograph, helpers, routing, gates, gitignore
4
4
  */
5
- import { existsSync, readFileSync, statSync, mkdirSync } from 'fs';
5
+ import { existsSync, readFileSync, statSync, mkdirSync, copyFileSync } from 'fs';
6
6
  import { join, dirname } from 'path';
7
7
  import { fileURLToPath } from 'url';
8
8
  import { execSync } from 'child_process';
@@ -279,6 +279,22 @@ async function _detectStaleHelpers() {
279
279
  }
280
280
  return { stale, missing };
281
281
  }
282
+ export async function fixStaleHelpers() {
283
+ const { stale } = await _detectStaleHelpers();
284
+ let fixed = 0;
285
+ for (const name of stale) {
286
+ const local = join(process.cwd(), '.claude', 'helpers', name);
287
+ const bundled = _resolveBundledHelper(join('.claude', 'helpers', name));
288
+ if (bundled) {
289
+ try {
290
+ copyFileSync(bundled, local);
291
+ fixed++;
292
+ }
293
+ catch { /* skip */ }
294
+ }
295
+ }
296
+ return fixed > 0;
297
+ }
282
298
  export async function checkHelpersFresh() {
283
299
  try {
284
300
  const { stale, missing } = await _detectStaleHelpers();
@@ -7,7 +7,7 @@
7
7
  import * as path from 'path';
8
8
  import { output } from '../output.js';
9
9
  import { checkNodeVersion, checkNpmVersion, checkGit, checkGitRepo, checkDiskSpace, checkBuildTools, checkVersionFreshness, checkClaudeCode, installClaudeCode, } from './doctor-env-checks.js';
10
- import { checkConfigFile, checkDaemonStatus, checkMemoryDatabase, checkApiKeys, checkMcpServers, checkMonograph, checkMonographFreshness, checkMonoesMemory, checkHelpersFresh, checkMonoesIntegration, checkGuidanceGates, checkGitignoreCoverage, checkAgentRegistry, checkMemoryProficiency, } from './doctor-project-checks.js';
10
+ import { checkConfigFile, checkDaemonStatus, checkMemoryDatabase, checkApiKeys, checkMcpServers, checkMonograph, checkMonographFreshness, checkMonoesMemory, checkHelpersFresh, fixStaleHelpers, checkMonoesIntegration, checkGuidanceGates, checkGitignoreCoverage, checkAgentRegistry, checkMemoryProficiency, } from './doctor-project-checks.js';
11
11
  import { checkMonoesTools, fixMonoesTools } from './doctor-monoes-checks.js';
12
12
  function formatCheck(check) {
13
13
  const icon = check.status === 'pass' ? output.success('✓') :
@@ -145,6 +145,20 @@ export const doctorCommand = {
145
145
  output.writeln(formatCheck(newCheck));
146
146
  }
147
147
  }
148
+ const helpersResult = results.find(r => r.name === 'Helper Files');
149
+ if (helpersResult && helpersResult.status !== 'pass') {
150
+ if (await fixStaleHelpers()) {
151
+ const newCheck = await checkHelpersFresh();
152
+ const idx = results.findIndex(r => r.name === 'Helper Files');
153
+ if (idx !== -1) {
154
+ results[idx] = newCheck;
155
+ const fixIdx = fixes.findIndex(f => f.startsWith('Helper Files:'));
156
+ if (fixIdx !== -1 && newCheck.status === 'pass')
157
+ fixes.splice(fixIdx, 1);
158
+ }
159
+ output.writeln(formatCheck(newCheck));
160
+ }
161
+ }
148
162
  }
149
163
  const passed = results.filter(r => r.status === 'pass').length;
150
164
  const warnings = results.filter(r => r.status === 'warn').length;
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * Hooks Coverage Commands
3
- * Coverage-aware routing, progress tracking, and statusline generation.
3
+ * Coverage-aware routing and statusline generation.
4
4
  * Extracted from hooks.ts to reduce file size.
5
5
  */
6
6
  import type { Command } from '../types.js';
7
7
  export { coverageRouteCommand } from './hooks-coverage-routing.js';
8
8
  export { coverageSuggestCommand } from './hooks-coverage-routing.js';
9
9
  export { coverageGapsCommand } from './hooks-coverage-gaps.js';
10
- export { progressHookCommand } from './hooks-coverage-gaps.js';
11
10
  export declare const statuslineCommand: Command;
12
11
  //# sourceMappingURL=hooks-coverage-commands.d.ts.map
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Hooks Coverage Commands
3
- * Coverage-aware routing, progress tracking, and statusline generation.
3
+ * Coverage-aware routing and statusline generation.
4
4
  * Extracted from hooks.ts to reduce file size.
5
5
  */
6
6
  import { output } from '../output.js';
@@ -8,7 +8,6 @@ import { output } from '../output.js';
8
8
  export { coverageRouteCommand } from './hooks-coverage-routing.js';
9
9
  export { coverageSuggestCommand } from './hooks-coverage-routing.js';
10
10
  export { coverageGapsCommand } from './hooks-coverage-gaps.js';
11
- export { progressHookCommand } from './hooks-coverage-gaps.js';
12
11
  // Statusline subcommand - generates dynamic status display
13
12
  export const statuslineCommand = {
14
13
  name: 'statusline',
@@ -1,7 +1,6 @@
1
1
  /**
2
- * Coverage gaps and progress hook commands
2
+ * Coverage gaps hook commands
3
3
  */
4
4
  import type { Command } from '../types.js';
5
5
  export declare const coverageGapsCommand: Command;
6
- export declare const progressHookCommand: Command;
7
6
  //# sourceMappingURL=hooks-coverage-gaps.d.ts.map
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Coverage gaps and progress hook commands
2
+ * Coverage gaps hook commands
3
3
  */
4
4
  import { output } from '../output.js';
5
- import { callMCPTool, MCPClientError } from '../mcp-client.js';
5
+ import { callMCPTool } from '../mcp-client.js';
6
6
  import { readCoverageFromDisk, classifyCoverageGap, suggestAgentsForFile, } from './hooks-coverage-utils.js';
7
7
  export const coverageGapsCommand = {
8
8
  name: 'coverage-gaps',
@@ -216,119 +216,4 @@ export const coverageGapsCommand = {
216
216
  }
217
217
  }
218
218
  };
219
- export const progressHookCommand = {
220
- name: 'progress',
221
- description: 'Check implementation progress via hooks',
222
- options: [
223
- {
224
- name: 'detailed',
225
- short: 'd',
226
- description: 'Show detailed breakdown by category',
227
- type: 'boolean',
228
- default: false
229
- },
230
- {
231
- name: 'sync',
232
- short: 's',
233
- description: 'Sync and persist progress to file',
234
- type: 'boolean',
235
- default: false
236
- },
237
- {
238
- name: 'summary',
239
- description: 'Show human-readable summary',
240
- type: 'boolean',
241
- default: false
242
- }
243
- ],
244
- examples: [
245
- { command: 'monomind hooks progress', description: 'Check current progress' },
246
- { command: 'monomind hooks progress -d', description: 'Detailed breakdown' },
247
- { command: 'monomind hooks progress --sync', description: 'Sync progress to file' },
248
- { command: 'monomind hooks progress --summary', description: 'Human-readable summary' }
249
- ],
250
- action: async (ctx) => {
251
- const detailed = ctx.flags.detailed;
252
- const sync = ctx.flags.sync;
253
- const summary = ctx.flags.summary;
254
- try {
255
- if (summary) {
256
- const spinner = output.createSpinner({ text: 'Getting progress summary...' });
257
- spinner.start();
258
- const result = await callMCPTool('progress_summary', {});
259
- spinner.stop();
260
- if (ctx.flags.format === 'json') {
261
- output.printJson(result);
262
- return { success: true, data: result };
263
- }
264
- output.writeln();
265
- output.writeln(result.summary);
266
- return { success: true, data: result };
267
- }
268
- if (sync) {
269
- const spinner = output.createSpinner({ text: 'Syncing progress...' });
270
- spinner.start();
271
- const result = await callMCPTool('progress_sync', {});
272
- spinner.stop();
273
- if (ctx.flags.format === 'json') {
274
- output.printJson(result);
275
- return { success: true, data: result };
276
- }
277
- output.writeln();
278
- output.printSuccess(`Progress synced: ${result.progress}%`);
279
- output.writeln(output.dim(` Persisted to .monomind/metrics/v1-progress.json`));
280
- output.writeln(output.dim(` Last updated: ${result.lastUpdated}`));
281
- return { success: true, data: result };
282
- }
283
- const spinner = output.createSpinner({ text: 'Checking v1 progress...' });
284
- spinner.start();
285
- const result = await callMCPTool('progress_check', { detailed });
286
- spinner.stop();
287
- if (ctx.flags.format === 'json') {
288
- output.printJson(result);
289
- return { success: true, data: result };
290
- }
291
- output.writeln();
292
- const progressValue = result.overall ?? result.progress ?? 0;
293
- const barWidth = 30;
294
- const filled = Math.round((progressValue / 100) * barWidth);
295
- const empty = barWidth - filled;
296
- const bar = output.success('█'.repeat(filled)) + output.dim('░'.repeat(empty));
297
- output.writeln(output.bold('v1 Implementation Progress'));
298
- output.writeln();
299
- output.writeln(`[${bar}] ${progressValue}%`);
300
- output.writeln();
301
- if (detailed && result.cli) {
302
- output.writeln(output.highlight('CLI Commands:') + ` ${result.cli.progress}% (${result.cli.commands}/${result.cli.target})`);
303
- output.writeln(output.highlight('MCP Tools:') + ` ${result.mcp?.progress ?? 0}% (${result.mcp?.tools ?? 0}/${result.mcp?.target ?? 0})`);
304
- output.writeln(output.highlight('Hooks:') + ` ${result.hooks?.progress ?? 0}% (${result.hooks?.subcommands ?? 0}/${result.hooks?.target ?? 0})`);
305
- output.writeln(output.highlight('Packages:') + ` ${result.packages?.progress ?? 0}% (${result.packages?.total ?? 0}/${result.packages?.target ?? 0})`);
306
- output.writeln(output.highlight('DDD Structure:') + ` ${result.ddd?.progress ?? 0}% (${result.packages?.withDDD ?? 0}/${result.packages?.total ?? 0})`);
307
- output.writeln();
308
- if (result.codebase) {
309
- output.writeln(output.dim(`Codebase: ${result.codebase.totalFiles} files, ${result.codebase.totalLines.toLocaleString()} lines`));
310
- }
311
- }
312
- else if (result.breakdown) {
313
- output.writeln('Breakdown:');
314
- for (const [category, value] of Object.entries(result.breakdown)) {
315
- output.writeln(` ${output.highlight(category)}: ${value}`);
316
- }
317
- }
318
- if (result.lastUpdated) {
319
- output.writeln(output.dim(`Last updated: ${result.lastUpdated}`));
320
- }
321
- return { success: true, data: result };
322
- }
323
- catch (error) {
324
- if (error instanceof MCPClientError) {
325
- output.printError(`Progress check failed: ${error.message}`);
326
- }
327
- else {
328
- output.printError(`Progress check failed: ${String(error)}`);
329
- }
330
- return { success: false, exitCode: 1 };
331
- }
332
- }
333
- };
334
219
  //# sourceMappingURL=hooks-coverage-gaps.js.map
@@ -13,7 +13,7 @@
13
13
  import { output } from '../output.js';
14
14
  import { callMCPTool, MCPClientError } from '../mcp-client.js';
15
15
  import { intelligenceCommand, workerCommand } from './hooks-workers.js';
16
- import { coverageRouteCommand, coverageSuggestCommand, coverageGapsCommand, progressHookCommand, statuslineCommand, } from './hooks-coverage-commands.js';
16
+ import { coverageRouteCommand, coverageSuggestCommand, coverageGapsCommand, statuslineCommand, } from './hooks-coverage-commands.js';
17
17
  import { tokenOptimizeCommand, modelRouteCommand, modelOutcomeCommand, modelStatsCommand, teammateIdleCommand, taskCompletedCommand, notifyCommand, } from './hooks-extended-commands.js';
18
18
  import { preEditCommand, postEditCommand, preCommandCommand, postCommandCommand, } from './hooks-core-commands.js';
19
19
  import { routeCommand, explainCommand, pretrainCommand, buildAgentsCommand, metricsCommand, transferCommand, listCommand, } from './hooks-routing-commands.js';
@@ -423,7 +423,6 @@ export const hooksCommand = {
423
423
  intelligenceCommand,
424
424
  notifyCommand,
425
425
  workerCommand,
426
- progressHookCommand,
427
426
  statuslineCommand,
428
427
  // Coverage-aware routing commands
429
428
  coverageRouteCommand,
@@ -24,7 +24,6 @@ export { doctorCommand } from './doctor.js';
24
24
  export { neuralCommand } from './neural.js';
25
25
  export { performanceCommand } from './performance.js';
26
26
  export { securityCommand } from './security.js';
27
- export { monovectorCommand } from './monovector/index.js';
28
27
  export { hiveMindCommand } from './hive-mind.js';
29
28
  export { guidanceCommand } from './guidance.js';
30
29
  export { cleanupCommand } from './cleanup.js';
@@ -39,7 +38,6 @@ export { reportCrashCommand } from './report-crash.js';
39
38
  export { crashReportingCommand } from './crash-reporting.js';
40
39
  export { docCommand } from './doc.js';
41
40
  export declare function getConfigCommand(): Promise<Command | undefined>;
42
- export declare function getMigrateCommand(): Promise<Command | undefined>;
43
41
  export declare function getWorkflowCommand(): Promise<Command | undefined>;
44
42
  export declare function getHiveMindCommand(): Promise<Command | undefined>;
45
43
  export declare function getProcessCommand(): Promise<Command | undefined>;
@@ -54,9 +52,7 @@ export declare function getClaimsCommand(): Promise<Command | undefined>;
54
52
  export declare function getCompletionsCommand(): Promise<Command | undefined>;
55
53
  export declare function getAnalyzeCommand(): Promise<Command | undefined>;
56
54
  export declare function getRouteCommand(): Promise<Command | undefined>;
57
- export declare function getProgressCommand(): Promise<Command | undefined>;
58
55
  export declare function getIssuesCommand(): Promise<Command | undefined>;
59
- export declare function getMonovectorCommand(): Promise<Command | undefined>;
60
56
  export declare function getGuidanceCommand(): Promise<Command | undefined>;
61
57
  export declare function getCleanupCommand(): Promise<Command | undefined>;
62
58
  export declare function getAutopilotCommand(): Promise<Command | undefined>;
@@ -25,7 +25,6 @@ const commandLoaders = {
25
25
  memory: () => import('./memory.js'),
26
26
  mcp: () => import('./mcp.js'),
27
27
  config: () => import('./config.js'),
28
- migrate: () => import('./migrate.js'),
29
28
  hooks: () => import('./hooks.js'),
30
29
  workflow: () => import('./workflow.js'),
31
30
  'hive-mind': () => import('./hive-mind.js'),
@@ -45,16 +44,10 @@ const commandLoaders = {
45
44
  analyze: () => import('./analyze.js'),
46
45
  // Q-Learning Routing Commands
47
46
  route: () => import('./route.js'),
48
- // Progress Commands
49
- progress: () => import('./progress.js'),
50
47
  // Issue Claims Commands (ADR-016)
51
48
  issues: () => import('./issues.js'),
52
49
  // Auto-update System (ADR-025)
53
50
  update: () => import('./update.js'),
54
- // MonoVector PostgreSQL Bridge
55
- monovector: () => import('./monovector/index.js'),
56
- // Benchmark Suite (Pre-training, Neural, Memory)
57
- benchmark: () => import('./benchmark.js'),
58
51
  // Guidance Control Plane
59
52
  guidance: () => import('./guidance.js'),
60
53
  'transfer-store': () => import('./transfer-store.js'),
@@ -130,17 +123,14 @@ import { doctorCommand } from './doctor.js';
130
123
  import { neuralCommand } from './neural.js';
131
124
  import { performanceCommand } from './performance.js';
132
125
  import { securityCommand } from './security.js';
133
- import { monovectorCommand } from './monovector/index.js';
134
126
  import { hiveMindCommand } from './hive-mind.js';
135
127
  import browseCommand from './browse.js';
136
128
  // Additional commands for categorized help display
137
129
  import { configCommand } from './config.js';
138
130
  import { completionsCommand } from './completions.js';
139
- import { migrateCommand } from './migrate.js';
140
131
  import { workflowCommand } from './workflow.js';
141
132
  import { analyzeCommand } from './analyze.js';
142
133
  import { routeCommand } from './route.js';
143
- import { progressCommand } from './progress.js';
144
134
  import { providersCommand } from './providers.js';
145
135
  import { deploymentCommand } from './deployment.js';
146
136
  import { claimsCommand } from './claims.js';
@@ -152,7 +142,6 @@ import { cleanupCommand } from './cleanup.js';
152
142
  import { autopilotCommand } from './autopilot.js';
153
143
  import { monographCommand } from './monograph.js';
154
144
  import replayCommand from './replay.js';
155
- import { benchmarkCommand } from './benchmark.js';
156
145
  import storeCommand from './transfer-store.js';
157
146
  import tokensCommand from './tokens.js';
158
147
  import { platformsCommand } from './platforms.js';
@@ -179,14 +168,12 @@ loadedCommands.set('doctor', doctorCommand);
179
168
  loadedCommands.set('neural', neuralCommand);
180
169
  loadedCommands.set('performance', performanceCommand);
181
170
  loadedCommands.set('security', securityCommand);
182
- loadedCommands.set('monovector', monovectorCommand);
183
171
  loadedCommands.set('hive-mind', hiveMindCommand);
184
172
  loadedCommands.set('guidance', guidanceCommand);
185
173
  loadedCommands.set('cleanup', cleanupCommand);
186
174
  loadedCommands.set('autopilot', autopilotCommand);
187
175
  loadedCommands.set('monograph', monographCommand);
188
176
  loadedCommands.set('replay', replayCommand);
189
- loadedCommands.set('benchmark', benchmarkCommand);
190
177
  loadedCommands.set('transfer-store', storeCommand);
191
178
  loadedCommands.set('tokens', tokensCommand);
192
179
  loadedCommands.set('platforms', platformsCommand);
@@ -217,7 +204,6 @@ export { doctorCommand } from './doctor.js';
217
204
  export { neuralCommand } from './neural.js';
218
205
  export { performanceCommand } from './performance.js';
219
206
  export { securityCommand } from './security.js';
220
- export { monovectorCommand } from './monovector/index.js';
221
207
  export { hiveMindCommand } from './hive-mind.js';
222
208
  export { guidanceCommand } from './guidance.js';
223
209
  export { cleanupCommand } from './cleanup.js';
@@ -233,7 +219,6 @@ export { crashReportingCommand } from './crash-reporting.js';
233
219
  export { docCommand } from './doc.js';
234
220
  // Lazy-loaded command re-exports (for backwards compatibility, but async-only)
235
221
  export async function getConfigCommand() { return loadCommand('config'); }
236
- export async function getMigrateCommand() { return loadCommand('migrate'); }
237
222
  export async function getWorkflowCommand() { return loadCommand('workflow'); }
238
223
  export async function getHiveMindCommand() { return loadCommand('hive-mind'); }
239
224
  export async function getProcessCommand() { return loadCommand('process'); }
@@ -248,9 +233,7 @@ export async function getClaimsCommand() { return loadCommand('claims'); }
248
233
  export async function getCompletionsCommand() { return loadCommand('completions'); }
249
234
  export async function getAnalyzeCommand() { return loadCommand('analyze'); }
250
235
  export async function getRouteCommand() { return loadCommand('route'); }
251
- export async function getProgressCommand() { return loadCommand('progress'); }
252
236
  export async function getIssuesCommand() { return loadCommand('issues'); }
253
- export async function getMonovectorCommand() { return loadCommand('monovector'); }
254
237
  export async function getGuidanceCommand() { return loadCommand('guidance'); }
255
238
  export async function getCleanupCommand() { return loadCommand('cleanup'); }
256
239
  export async function getAutopilotCommand() { return loadCommand('autopilot'); }
@@ -276,7 +259,6 @@ export const commands = [
276
259
  neuralCommand,
277
260
  performanceCommand,
278
261
  securityCommand,
279
- monovectorCommand,
280
262
  hiveMindCommand,
281
263
  guidanceCommand,
282
264
  cleanupCommand,
@@ -312,23 +294,19 @@ export const commandsByCategory = {
312
294
  securityCommand,
313
295
  performanceCommand,
314
296
  hiveMindCommand,
315
- monovectorCommand,
316
297
  guidanceCommand,
317
298
  autopilotCommand,
318
- benchmarkCommand,
319
299
  ],
320
300
  utility: [
321
301
  configCommand,
322
302
  doctorCommand,
323
303
  daemonCommand,
324
304
  completionsCommand,
325
- migrateCommand,
326
305
  workflowCommand,
327
306
  ],
328
307
  analysis: [
329
308
  analyzeCommand,
330
309
  routeCommand,
331
- progressCommand,
332
310
  monographCommand,
333
311
  replayCommand,
334
312
  tokensCommand,
@@ -3,6 +3,9 @@
3
3
  * Main execution logic for V1 initialization
4
4
  */
5
5
  import type { InitOptions, InitResult } from './types.js';
6
+ /**
7
+ * Execute initialization
8
+ */
6
9
  export declare function executeInit(options: InitOptions): Promise<InitResult>;
7
10
  /**
8
11
  * Upgrade result interface
@@ -186,88 +186,6 @@ const DIRECTORIES = {
186
186
  /**
187
187
  * Execute initialization
188
188
  */
189
- /**
190
- * Remove legacy ruv-swarm configuration from existing project files.
191
- * Safe to call even if no legacy config exists.
192
- */
193
- function cleanupLegacyTools(targetDir) {
194
- const cleaned = [];
195
- // Helper to fix MCP server args: replace @monomind/cli@latest with monomind@latest
196
- function fixMcpArgs(servers) {
197
- let changed = false;
198
- for (const name of Object.keys(servers)) {
199
- const srv = servers[name];
200
- if (Array.isArray(srv.args)) {
201
- srv.args = srv.args.map((a) => {
202
- if (typeof a === 'string' && a.includes('@monomind/cli@')) {
203
- changed = true;
204
- return a.replace(/@monomind\/cli@[^\s]*/g, 'monomind@latest');
205
- }
206
- return a;
207
- });
208
- }
209
- }
210
- return changed;
211
- }
212
- // Clean ruv-swarm from .mcp.json and fix old MCP package name
213
- const mcpJsonPath = path.join(targetDir, '.mcp.json');
214
- if (fs.existsSync(mcpJsonPath) && fs.statSync(mcpJsonPath).size <= MAX_EXEC_FILE_BYTES) {
215
- try {
216
- const mcp = JSON.parse(fs.readFileSync(mcpJsonPath, 'utf-8'));
217
- let mcpChanged = false;
218
- if (mcp.mcpServers && mcp.mcpServers['ruv-swarm']) {
219
- delete mcp.mcpServers['ruv-swarm'];
220
- mcpChanged = true;
221
- cleaned.push('.mcp.json: removed ruv-swarm entry');
222
- }
223
- if (mcp.mcpServers && fixMcpArgs(mcp.mcpServers)) {
224
- mcpChanged = true;
225
- cleaned.push('.mcp.json: updated MCP package name to monomind@latest');
226
- }
227
- if (mcpChanged) {
228
- atomicWriteFile(mcpJsonPath, JSON.stringify(mcp, null, 2));
229
- }
230
- }
231
- catch { /* non-fatal */ }
232
- }
233
- // Clean ruv-swarm from .claude/settings.json hooks and fix MCP package name
234
- const settingsPath = path.join(targetDir, '.claude', 'settings.json');
235
- if (fs.existsSync(settingsPath) && fs.statSync(settingsPath).size <= MAX_EXEC_FILE_BYTES) {
236
- try {
237
- const raw = fs.readFileSync(settingsPath, 'utf-8');
238
- const settings = JSON.parse(raw);
239
- let settingsChanged = false;
240
- if (raw.includes('ruv-swarm')) {
241
- // Remove legacy ruv-swarm hook entries from all hook arrays
242
- const hookKeys = ['PreToolUse', 'PostToolUse', 'UserPromptSubmit', 'SessionStart', 'SessionEnd', 'Stop', 'SubagentStart', 'SubagentStop', 'PreCompact'];
243
- for (const key of hookKeys) {
244
- if (Array.isArray(settings.hooks?.[key])) {
245
- const before = settings.hooks[key].length;
246
- settings.hooks[key] = settings.hooks[key].filter((entry) => {
247
- const str = JSON.stringify(entry);
248
- return !str.includes('ruv-swarm');
249
- });
250
- if (settings.hooks[key].length !== before)
251
- settingsChanged = true;
252
- }
253
- }
254
- if (settingsChanged) {
255
- cleaned.push('.claude/settings.json: removed ruv-swarm hooks');
256
- }
257
- }
258
- // Fix wrong MCP package name in mcpServers
259
- if (settings.mcpServers && fixMcpArgs(settings.mcpServers)) {
260
- settingsChanged = true;
261
- cleaned.push('.claude/settings.json: updated MCP package name to monomind@latest');
262
- }
263
- if (settingsChanged) {
264
- atomicWriteFile(settingsPath, JSON.stringify(settings, null, 2));
265
- }
266
- }
267
- catch { /* non-fatal */ }
268
- }
269
- return cleaned;
270
- }
271
189
  export async function executeInit(options) {
272
190
  // Detect platform
273
191
  const platform = detectPlatform();
@@ -290,11 +208,6 @@ export async function executeInit(options) {
290
208
  };
291
209
  const targetDir = options.targetDir;
292
210
  try {
293
- // Remove legacy ruv-swarm configs before writing new ones
294
- const legacyCleaned = cleanupLegacyTools(targetDir);
295
- for (const msg of legacyCleaned) {
296
- result.created.files.push(`[cleaned] ${msg}`);
297
- }
298
211
  // Create directory structure
299
212
  await createDirectories(targetDir, options, result);
300
213
  // Scan directory and save fingerprint (non-fatal if failed)
@@ -678,11 +591,6 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
678
591
  settingsUpdated: [],
679
592
  };
680
593
  try {
681
- // Fix legacy ruv-swarm configs and old MCP package names
682
- const legacyCleaned = cleanupLegacyTools(targetDir);
683
- for (const msg of legacyCleaned) {
684
- result.updated.push(`[cleaned] ${msg}`);
685
- }
686
594
  // Ensure required directories exist
687
595
  const dirs = [
688
596
  '.claude/helpers',
@@ -701,7 +609,7 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
701
609
  if (sourceHelpersForUpgrade) {
702
610
  const destHelpersDir = path.join(targetDir, '.claude', 'helpers');
703
611
  // Copy top-level critical files atomically
704
- const criticalHelpers = ['auto-memory-hook.mjs', 'hook-handler.cjs', 'intelligence.cjs'];
612
+ const criticalHelpers = ['auto-memory-hook.mjs', 'hook-handler.cjs', 'intelligence.cjs', 'statusline.cjs', 'graphify-freshen.cjs'];
705
613
  for (const helperName of criticalHelpers) {
706
614
  const targetPath = path.join(destHelpersDir, helperName);
707
615
  const sourcePath = path.join(sourceHelpersForUpgrade, helperName);
@@ -760,26 +668,27 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
760
668
  fs.renameSync(tmp, targetPath);
761
669
  }
762
670
  }
763
- // 1. ALWAYS update statusline helper (force overwrite)
671
+ // 1. Statusline fallback only generate if source copy above didn't cover it
764
672
  const statuslinePath = path.join(targetDir, '.claude', 'helpers', 'statusline.cjs');
765
- // Use default options with statusline config
766
- const upgradeOptions = {
767
- ...DEFAULT_INIT_OPTIONS,
768
- targetDir,
769
- force: true,
770
- statusline: {
771
- ...DEFAULT_INIT_OPTIONS.statusline,
772
- refreshInterval: 5000,
773
- },
774
- };
775
- const statuslineContent = generateStatuslineScript(upgradeOptions);
776
- if (fs.existsSync(statuslinePath)) {
777
- result.updated.push('.claude/helpers/statusline.cjs');
778
- }
779
- else {
780
- result.created.push('.claude/helpers/statusline.cjs');
673
+ if (!sourceHelpersForUpgrade || !fs.existsSync(path.join(sourceHelpersForUpgrade, 'statusline.cjs'))) {
674
+ const upgradeOptions = {
675
+ ...DEFAULT_INIT_OPTIONS,
676
+ targetDir,
677
+ force: true,
678
+ statusline: {
679
+ ...DEFAULT_INIT_OPTIONS.statusline,
680
+ refreshInterval: 5000,
681
+ },
682
+ };
683
+ const statuslineContent = generateStatuslineScript(upgradeOptions);
684
+ if (fs.existsSync(statuslinePath)) {
685
+ result.updated.push('.claude/helpers/statusline.cjs');
686
+ }
687
+ else {
688
+ result.created.push('.claude/helpers/statusline.cjs');
689
+ }
690
+ atomicWriteFile(statuslinePath, statuslineContent);
781
691
  }
782
- atomicWriteFile(statuslinePath, statuslineContent);
783
692
  // 2. Create MISSING metrics files only (preserve existing data)
784
693
  const metricsDir = path.join(targetDir, '.monomind', 'metrics');
785
694
  const securityDir = path.join(targetDir, '.monomind', 'security');
@@ -18,7 +18,6 @@ import { sessionTools } from './mcp-tools/session-tools.js';
18
18
  import { hiveMindTools } from './mcp-tools/hive-mind-tools.js';
19
19
  import { workflowTools } from './mcp-tools/workflow-tools.js';
20
20
  import { analyzeTools } from './mcp-tools/analyze-tools.js';
21
- import { progressTools } from './mcp-tools/progress-tools.js';
22
21
  import { embeddingsTools } from './mcp-tools/embeddings-tools.js';
23
22
  import { claimsTools } from './mcp-tools/claims-tools.js';
24
23
  import { securityTools } from './mcp-tools/security-tools.js';
@@ -72,7 +71,6 @@ registerTools([
72
71
  ...hiveMindTools,
73
72
  ...workflowTools,
74
73
  ...analyzeTools,
75
- ...progressTools,
76
74
  ...embeddingsTools,
77
75
  ...claimsTools,
78
76
  ...securityTools,
@@ -18,7 +18,6 @@ export { sessionTools } from './session-tools.js';
18
18
  export { hiveMindTools } from './hive-mind-tools.js';
19
19
  export { workflowTools } from './workflow-tools.js';
20
20
  export { analyzeTools } from './analyze-tools.js';
21
- export { progressTools } from './progress-tools.js';
22
21
  export { transferTools } from './transfer-tools.js';
23
22
  export { securityTools } from './security-tools.js';
24
23
  export { embeddingsTools } from './embeddings-tools.js';
@@ -18,7 +18,6 @@ export { sessionTools } from './session-tools.js';
18
18
  export { hiveMindTools } from './hive-mind-tools.js';
19
19
  export { workflowTools } from './workflow-tools.js';
20
20
  export { analyzeTools } from './analyze-tools.js';
21
- export { progressTools } from './progress-tools.js';
22
21
  export { transferTools } from './transfer-tools.js';
23
22
  export { securityTools } from './security-tools.js';
24
23
  export { embeddingsTools } from './embeddings-tools.js';