monomind 1.18.9 → 1.18.11

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 (50) hide show
  1. package/package.json +1 -1
  2. package/packages/@monomind/cli/dist/src/agents/registry-builder.js +1 -1
  3. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +2 -3
  4. package/packages/@monomind/cli/dist/src/commands/hooks-coverage-commands.d.ts +1 -2
  5. package/packages/@monomind/cli/dist/src/commands/hooks-coverage-commands.js +1 -2
  6. package/packages/@monomind/cli/dist/src/commands/hooks-coverage-gaps.d.ts +1 -2
  7. package/packages/@monomind/cli/dist/src/commands/hooks-coverage-gaps.js +2 -117
  8. package/packages/@monomind/cli/dist/src/commands/hooks.js +1 -2
  9. package/packages/@monomind/cli/dist/src/commands/index.d.ts +0 -1
  10. package/packages/@monomind/cli/dist/src/commands/index.js +0 -1
  11. package/packages/@monomind/cli/dist/src/commands/security-misc.js +0 -1
  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/dist/src/mcp-tools/security-tools.js +0 -1
  20. package/packages/@monomind/cli/package.json +1 -1
  21. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +0 -134
  22. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +0 -340
  23. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.d.ts +0 -36
  24. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +0 -125
  25. package/packages/@monomind/cli/dist/src/commands/benchmark.d.ts +0 -10
  26. package/packages/@monomind/cli/dist/src/commands/benchmark.js +0 -586
  27. package/packages/@monomind/cli/dist/src/commands/migrate.d.ts +0 -8
  28. package/packages/@monomind/cli/dist/src/commands/migrate.js +0 -789
  29. package/packages/@monomind/cli/dist/src/commands/monovector/backup.d.ts +0 -11
  30. package/packages/@monomind/cli/dist/src/commands/monovector/backup.js +0 -752
  31. package/packages/@monomind/cli/dist/src/commands/monovector/benchmark.d.ts +0 -11
  32. package/packages/@monomind/cli/dist/src/commands/monovector/benchmark.js +0 -502
  33. package/packages/@monomind/cli/dist/src/commands/monovector/import.d.ts +0 -18
  34. package/packages/@monomind/cli/dist/src/commands/monovector/import.js +0 -374
  35. package/packages/@monomind/cli/dist/src/commands/monovector/index.d.ts +0 -29
  36. package/packages/@monomind/cli/dist/src/commands/monovector/index.js +0 -129
  37. package/packages/@monomind/cli/dist/src/commands/monovector/init.d.ts +0 -11
  38. package/packages/@monomind/cli/dist/src/commands/monovector/init.js +0 -481
  39. package/packages/@monomind/cli/dist/src/commands/monovector/migrate.d.ts +0 -11
  40. package/packages/@monomind/cli/dist/src/commands/monovector/migrate.js +0 -500
  41. package/packages/@monomind/cli/dist/src/commands/monovector/optimize.d.ts +0 -11
  42. package/packages/@monomind/cli/dist/src/commands/monovector/optimize.js +0 -515
  43. package/packages/@monomind/cli/dist/src/commands/monovector/setup.d.ts +0 -18
  44. package/packages/@monomind/cli/dist/src/commands/monovector/setup.js +0 -775
  45. package/packages/@monomind/cli/dist/src/commands/monovector/status.d.ts +0 -11
  46. package/packages/@monomind/cli/dist/src/commands/monovector/status.js +0 -491
  47. package/packages/@monomind/cli/dist/src/commands/progress.d.ts +0 -11
  48. package/packages/@monomind/cli/dist/src/commands/progress.js +0 -261
  49. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.d.ts +0 -14
  50. 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.9",
3
+ "version": "1.18.11",
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",
@@ -34,7 +34,7 @@ function collectMdFiles(root, base = root) {
34
34
  continue;
35
35
  results.push(...collectMdFiles(full, base));
36
36
  }
37
- else if (stat.isFile() && extname(entry) === '.md') {
37
+ else if (stat.isFile() && extname(entry) === '.md' && !entry.startsWith('._')) {
38
38
  results.push(full);
39
39
  }
40
40
  }
@@ -456,9 +456,8 @@ export async function checkMemoryProficiency() {
456
456
  if (stats.totalDecisions === 0) {
457
457
  return {
458
458
  name: 'Memory Proficiency',
459
- status: 'warn',
460
- message: 'No memory decisions recorded yet AutoMem LOG/PLAN not active',
461
- fix: 'Complete tasks with pre-task/post-task hooks enabled',
459
+ status: 'pass',
460
+ message: 'AutoMem active — no decisions recorded yet (builds up over sessions)',
462
461
  };
463
462
  }
464
463
  const successPct = Math.round(stats.successRate * 100);
@@ -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,
@@ -53,7 +53,6 @@ export declare function getCompletionsCommand(): Promise<Command | undefined>;
53
53
  export declare function getAnalyzeCommand(): Promise<Command | undefined>;
54
54
  export declare function getRouteCommand(): Promise<Command | undefined>;
55
55
  export declare function getIssuesCommand(): Promise<Command | undefined>;
56
- export declare function getMonovectorCommand(): Promise<Command | undefined>;
57
56
  export declare function getGuidanceCommand(): Promise<Command | undefined>;
58
57
  export declare function getCleanupCommand(): Promise<Command | undefined>;
59
58
  export declare function getAutopilotCommand(): Promise<Command | undefined>;
@@ -234,7 +234,6 @@ export async function getCompletionsCommand() { return loadCommand('completions'
234
234
  export async function getAnalyzeCommand() { return loadCommand('analyze'); }
235
235
  export async function getRouteCommand() { return loadCommand('route'); }
236
236
  export async function getIssuesCommand() { return loadCommand('issues'); }
237
- export async function getMonovectorCommand() { return loadCommand('monovector'); }
238
237
  export async function getGuidanceCommand() { return loadCommand('guidance'); }
239
238
  export async function getCleanupCommand() { return loadCommand('cleanup'); }
240
239
  export async function getAutopilotCommand() { return loadCommand('autopilot'); }
@@ -133,7 +133,6 @@ export const defendCommand = {
133
133
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
134
134
  let createMonoDefence;
135
135
  try {
136
- // @ts-expect-error — optional peer dep resolved at runtime
137
136
  const aidefence = await import('monofence-ai');
138
137
  createMonoDefence = aidefence.createMonoDefence;
139
138
  }
@@ -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';
@@ -15,7 +15,7 @@ export declare const TrackTrendsInputSchema: z.ZodObject<{
15
15
  includeProjections: z.ZodDefault<z.ZodBoolean>;
16
16
  compareBaseline: z.ZodOptional<z.ZodString>;
17
17
  }, "strip", z.ZodTypeAny, {
18
- metrics: ("function" | "line" | "overall" | "branch" | "statement")[];
18
+ metrics: ("function" | "line" | "branch" | "statement" | "overall")[];
19
19
  timeRange: "30d" | "7d" | "14d" | "90d" | "180d" | "365d";
20
20
  groupBy: "commit" | "day" | "week" | "month";
21
21
  detectRegressions: boolean;
@@ -24,7 +24,7 @@ export declare const TrackTrendsInputSchema: z.ZodObject<{
24
24
  targetPath?: string | undefined;
25
25
  compareBaseline?: string | undefined;
26
26
  }, {
27
- metrics?: ("function" | "line" | "overall" | "branch" | "statement")[] | undefined;
27
+ metrics?: ("function" | "line" | "branch" | "statement" | "overall")[] | undefined;
28
28
  timeRange?: "30d" | "7d" | "14d" | "90d" | "180d" | "365d" | undefined;
29
29
  targetPath?: string | undefined;
30
30
  groupBy?: "commit" | "day" | "week" | "month" | undefined;
@@ -141,7 +141,7 @@ export declare const toolDefinition: {
141
141
  includeProjections: z.ZodDefault<z.ZodBoolean>;
142
142
  compareBaseline: z.ZodOptional<z.ZodString>;
143
143
  }, "strip", z.ZodTypeAny, {
144
- metrics: ("function" | "line" | "overall" | "branch" | "statement")[];
144
+ metrics: ("function" | "line" | "branch" | "statement" | "overall")[];
145
145
  timeRange: "30d" | "7d" | "14d" | "90d" | "180d" | "365d";
146
146
  groupBy: "commit" | "day" | "week" | "month";
147
147
  detectRegressions: boolean;
@@ -150,7 +150,7 @@ export declare const toolDefinition: {
150
150
  targetPath?: string | undefined;
151
151
  compareBaseline?: string | undefined;
152
152
  }, {
153
- metrics?: ("function" | "line" | "overall" | "branch" | "statement")[] | undefined;
153
+ metrics?: ("function" | "line" | "branch" | "statement" | "overall")[] | undefined;
154
154
  timeRange?: "30d" | "7d" | "14d" | "90d" | "180d" | "365d" | undefined;
155
155
  targetPath?: string | undefined;
156
156
  groupBy?: "commit" | "day" | "week" | "month" | undefined;
@@ -16,7 +16,7 @@ export declare const SuggestTestsInputSchema: z.ZodObject<{
16
16
  }, "strip", z.ZodTypeAny, {
17
17
  framework: "vitest" | "jest" | "mocha" | "pytest" | "junit";
18
18
  targetPath: string;
19
- focusAreas: ("lines" | "branches" | "functions" | "edge-cases" | "error-handling" | "boundaries")[];
19
+ focusAreas: ("branches" | "lines" | "functions" | "edge-cases" | "error-handling" | "boundaries")[];
20
20
  maxSuggestions: number;
21
21
  priorityBy: "risk" | "complexity" | "coverage-impact" | "change-frequency";
22
22
  includeCode: boolean;
@@ -25,7 +25,7 @@ export declare const SuggestTestsInputSchema: z.ZodObject<{
25
25
  targetPath: string;
26
26
  framework?: "vitest" | "jest" | "mocha" | "pytest" | "junit" | undefined;
27
27
  coverageReport?: string | undefined;
28
- focusAreas?: ("lines" | "branches" | "functions" | "edge-cases" | "error-handling" | "boundaries")[] | undefined;
28
+ focusAreas?: ("branches" | "lines" | "functions" | "edge-cases" | "error-handling" | "boundaries")[] | undefined;
29
29
  maxSuggestions?: number | undefined;
30
30
  priorityBy?: "risk" | "complexity" | "coverage-impact" | "change-frequency" | undefined;
31
31
  includeCode?: boolean | undefined;
@@ -121,7 +121,7 @@ export declare const toolDefinition: {
121
121
  }, "strip", z.ZodTypeAny, {
122
122
  framework: "vitest" | "jest" | "mocha" | "pytest" | "junit";
123
123
  targetPath: string;
124
- focusAreas: ("lines" | "branches" | "functions" | "edge-cases" | "error-handling" | "boundaries")[];
124
+ focusAreas: ("branches" | "lines" | "functions" | "edge-cases" | "error-handling" | "boundaries")[];
125
125
  maxSuggestions: number;
126
126
  priorityBy: "risk" | "complexity" | "coverage-impact" | "change-frequency";
127
127
  includeCode: boolean;
@@ -130,7 +130,7 @@ export declare const toolDefinition: {
130
130
  targetPath: string;
131
131
  framework?: "vitest" | "jest" | "mocha" | "pytest" | "junit" | undefined;
132
132
  coverageReport?: string | undefined;
133
- focusAreas?: ("lines" | "branches" | "functions" | "edge-cases" | "error-handling" | "boundaries")[] | undefined;
133
+ focusAreas?: ("branches" | "lines" | "functions" | "edge-cases" | "error-handling" | "boundaries")[] | undefined;
134
134
  maxSuggestions?: number | undefined;
135
135
  priorityBy?: "risk" | "complexity" | "coverage-impact" | "change-frequency" | undefined;
136
136
  includeCode?: boolean | undefined;
@@ -393,7 +393,6 @@ const monofenceIsSafeTool = {
393
393
  }
394
394
  try {
395
395
  await getMonoFence(); // triggers auto-install if package is missing
396
- // @ts-expect-error — optional peer dep resolved at runtime
397
396
  const { isSafe } = await import('monofence-ai');
398
397
  const safe = isSafe(input);
399
398
  return {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monoes/monomindcli",
3
- "version": "1.18.9",
3
+ "version": "1.18.11",
4
4
  "type": "module",
5
5
  "description": "Monomind CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
6
6
  "main": "dist/src/index.js",