moflo 4.10.22 → 4.10.24
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/guidance/shipped/moflo-skills-reference.md +1 -1
- package/.claude/helpers/gate.cjs +2 -2
- package/.claude/skills/distill/SKILL.md +10 -0
- package/README.md +1 -1
- package/bin/gate.cjs +2 -2
- package/dist/src/cli/commands/agent.js +14 -14
- package/dist/src/cli/commands/analyze.js +52 -52
- package/dist/src/cli/commands/benchmark.js +14 -14
- package/dist/src/cli/commands/claims.js +15 -15
- package/dist/src/cli/commands/completions.js +40 -40
- package/dist/src/cli/commands/config.js +8 -8
- package/dist/src/cli/commands/daemon.js +24 -24
- package/dist/src/cli/commands/deployment.js +15 -15
- package/dist/src/cli/commands/doctor-checks-config.js +6 -6
- package/dist/src/cli/commands/doctor.js +10 -10
- package/dist/src/cli/commands/embeddings.js +49 -49
- package/dist/src/cli/commands/guidance.js +22 -22
- package/dist/src/cli/commands/hive-mind.js +21 -21
- package/dist/src/cli/commands/hooks.js +95 -95
- package/dist/src/cli/commands/init.js +17 -17
- package/dist/src/cli/commands/issues.js +6 -6
- package/dist/src/cli/commands/mcp.js +10 -10
- package/dist/src/cli/commands/memory.js +56 -47
- package/dist/src/cli/commands/migrate.js +5 -5
- package/dist/src/cli/commands/neural.js +31 -31
- package/dist/src/cli/commands/performance.js +13 -13
- package/dist/src/cli/commands/plugins.js +26 -26
- package/dist/src/cli/commands/process.js +32 -32
- package/dist/src/cli/commands/progress.js +5 -5
- package/dist/src/cli/commands/providers.js +13 -13
- package/dist/src/cli/commands/route.js +26 -26
- package/dist/src/cli/commands/security.js +19 -19
- package/dist/src/cli/commands/session.js +13 -13
- package/dist/src/cli/commands/start.js +11 -11
- package/dist/src/cli/commands/status.js +8 -8
- package/dist/src/cli/commands/swarm.js +7 -7
- package/dist/src/cli/commands/task.js +9 -9
- package/dist/src/cli/commands/transfer-store.js +16 -16
- package/dist/src/cli/commands/update.js +2 -2
- package/dist/src/cli/hooks/statusline/index.js +3 -3
- package/dist/src/cli/init/executor.js +7 -6
- package/dist/src/cli/init/helpers-generator.js +6 -6
- package/dist/src/cli/mcp-tools/hooks-tools.js +1 -1
- package/dist/src/cli/memory/auto-memory-bridge.js +1 -1
- package/dist/src/cli/memory/memory-initializer.js +1 -1
- package/dist/src/cli/plugins/tests/demo-plugin-store.js +6 -6
- package/dist/src/cli/version.js +1 -1
- package/package.json +2 -2
|
@@ -30,8 +30,8 @@ const generateCommand = {
|
|
|
30
30
|
{ name: 'output', short: 'o', type: 'string', description: 'Output format: json, array, preview', default: 'preview' },
|
|
31
31
|
],
|
|
32
32
|
examples: [
|
|
33
|
-
{ command: '
|
|
34
|
-
{ command: '
|
|
33
|
+
{ command: 'flo embeddings generate -t "Hello world"', description: 'Generate embedding' },
|
|
34
|
+
{ command: 'flo embeddings generate -t "Test" -o json', description: 'Output as JSON' },
|
|
35
35
|
],
|
|
36
36
|
action: async (ctx) => {
|
|
37
37
|
const text = ctx.flags.text;
|
|
@@ -102,8 +102,8 @@ const searchCommand = {
|
|
|
102
102
|
{ name: 'db-path', type: 'string', description: 'Database path', default: DEFAULT_DB_PATH_FLAG },
|
|
103
103
|
],
|
|
104
104
|
examples: [
|
|
105
|
-
{ command: '
|
|
106
|
-
{ command: '
|
|
105
|
+
{ command: 'flo embeddings search -q "error handling"', description: 'Search for similar' },
|
|
106
|
+
{ command: 'flo embeddings search -q "test" -l 5', description: 'Limit results' },
|
|
107
107
|
],
|
|
108
108
|
action: async (ctx) => {
|
|
109
109
|
const query = ctx.flags.query;
|
|
@@ -128,7 +128,7 @@ const searchCommand = {
|
|
|
128
128
|
if (!fs.existsSync(fullDbPath)) {
|
|
129
129
|
spinner.fail('Database not found');
|
|
130
130
|
output.printWarning(`No database at ${fullDbPath}`);
|
|
131
|
-
output.printInfo('Run:
|
|
131
|
+
output.printInfo('Run: flo memory init');
|
|
132
132
|
return { success: false, exitCode: 1 };
|
|
133
133
|
}
|
|
134
134
|
// node:sqlite via the unified factory (Phase 5 / #1084).
|
|
@@ -207,7 +207,7 @@ const searchCommand = {
|
|
|
207
207
|
if (topResults.length === 0) {
|
|
208
208
|
output.writeln();
|
|
209
209
|
output.printWarning('No matches found');
|
|
210
|
-
output.printInfo(`Try:
|
|
210
|
+
output.printInfo(`Try: flo memory store -k "key" --value "your data"`);
|
|
211
211
|
return { success: true, data: [] };
|
|
212
212
|
}
|
|
213
213
|
output.writeln();
|
|
@@ -265,7 +265,7 @@ const compareCommand = {
|
|
|
265
265
|
{ name: 'metric', short: 'm', type: 'string', description: 'Metric: cosine, euclidean, dot', default: 'cosine' },
|
|
266
266
|
],
|
|
267
267
|
examples: [
|
|
268
|
-
{ command: '
|
|
268
|
+
{ command: 'flo embeddings compare --text1 "Hello" --text2 "Hi there"', description: 'Compare texts' },
|
|
269
269
|
],
|
|
270
270
|
action: async (ctx) => {
|
|
271
271
|
const text1 = ctx.flags.text1;
|
|
@@ -350,8 +350,8 @@ const collectionsCommand = {
|
|
|
350
350
|
{ name: 'db-path', type: 'string', description: 'Database path', default: DEFAULT_DB_PATH_FLAG },
|
|
351
351
|
],
|
|
352
352
|
examples: [
|
|
353
|
-
{ command: '
|
|
354
|
-
{ command: '
|
|
353
|
+
{ command: 'flo embeddings collections', description: 'List collections' },
|
|
354
|
+
{ command: 'flo embeddings collections -a stats', description: 'Show detailed stats' },
|
|
355
355
|
],
|
|
356
356
|
action: async (ctx) => {
|
|
357
357
|
const action = ctx.flags.action || 'list';
|
|
@@ -366,7 +366,7 @@ const collectionsCommand = {
|
|
|
366
366
|
// Check if database exists
|
|
367
367
|
if (!fs.existsSync(fullDbPath)) {
|
|
368
368
|
output.printWarning('No database found');
|
|
369
|
-
output.printInfo('Run:
|
|
369
|
+
output.printInfo('Run: flo memory init');
|
|
370
370
|
output.writeln();
|
|
371
371
|
output.writeln(output.dim('No collections yet - initialize memory first'));
|
|
372
372
|
return { success: true, data: [] };
|
|
@@ -407,7 +407,7 @@ const collectionsCommand = {
|
|
|
407
407
|
output.printWarning('No collections found');
|
|
408
408
|
output.writeln();
|
|
409
409
|
output.writeln(output.dim('Store some data first:'));
|
|
410
|
-
output.writeln(output.highlight('
|
|
410
|
+
output.writeln(output.highlight(' flo memory store -k "key" --value "data"'));
|
|
411
411
|
return { success: true, data: [] };
|
|
412
412
|
}
|
|
413
413
|
output.printTable({
|
|
@@ -451,9 +451,9 @@ const indexCommand = {
|
|
|
451
451
|
{ name: 'm', type: 'number', description: 'HNSW M parameter', default: '16' },
|
|
452
452
|
],
|
|
453
453
|
examples: [
|
|
454
|
-
{ command: '
|
|
455
|
-
{ command: '
|
|
456
|
-
{ command: '
|
|
454
|
+
{ command: 'flo embeddings index', description: 'Show index status' },
|
|
455
|
+
{ command: 'flo embeddings index -a build -c documents', description: 'Build index' },
|
|
456
|
+
{ command: 'flo embeddings index -a optimize -c patterns', description: 'Optimize index' },
|
|
457
457
|
],
|
|
458
458
|
action: async (ctx) => {
|
|
459
459
|
const action = ctx.flags.action || 'status';
|
|
@@ -512,7 +512,7 @@ const indexCommand = {
|
|
|
512
512
|
else {
|
|
513
513
|
output.writeln();
|
|
514
514
|
output.printInfo('Index is empty. Store some entries to populate it.');
|
|
515
|
-
output.printInfo('Run:
|
|
515
|
+
output.printInfo('Run: flo memory store -k "key" --value "text"');
|
|
516
516
|
}
|
|
517
517
|
return { success: true, data: status };
|
|
518
518
|
}
|
|
@@ -585,11 +585,11 @@ export const initCommand = {
|
|
|
585
585
|
{ name: 'force', short: 'f', type: 'boolean', description: 'Overwrite existing configuration', default: 'false' },
|
|
586
586
|
],
|
|
587
587
|
examples: [
|
|
588
|
-
{ command: '
|
|
589
|
-
{ command: '
|
|
590
|
-
{ command: '
|
|
591
|
-
{ command: '
|
|
592
|
-
{ command: '
|
|
588
|
+
{ command: 'flo embeddings init', description: 'Initialize with defaults' },
|
|
589
|
+
{ command: 'flo embeddings init --model all-mpnet-base-v2', description: 'Use higher quality model' },
|
|
590
|
+
{ command: 'flo embeddings init --no-hyperbolic', description: 'Euclidean only' },
|
|
591
|
+
{ command: 'flo embeddings init --curvature=-0.5', description: 'Custom curvature (use = for negative)' },
|
|
592
|
+
{ command: 'flo embeddings init --force', description: 'Overwrite existing config' },
|
|
593
593
|
],
|
|
594
594
|
action: async (ctx) => {
|
|
595
595
|
const model = ctx.flags.model || 'all-MiniLM-L6-v2';
|
|
@@ -703,7 +703,7 @@ const providersCommand = {
|
|
|
703
703
|
description: 'List available embedding providers',
|
|
704
704
|
options: [],
|
|
705
705
|
examples: [
|
|
706
|
-
{ command: '
|
|
706
|
+
{ command: 'flo embeddings providers', description: 'List providers' },
|
|
707
707
|
],
|
|
708
708
|
action: async () => {
|
|
709
709
|
output.writeln();
|
|
@@ -742,8 +742,8 @@ const chunkCommand = {
|
|
|
742
742
|
{ name: 'file', short: 'f', type: 'string', description: 'File to chunk (instead of text)' },
|
|
743
743
|
],
|
|
744
744
|
examples: [
|
|
745
|
-
{ command: '
|
|
746
|
-
{ command: '
|
|
745
|
+
{ command: 'flo embeddings chunk -t "Long text..." -s 256', description: 'Chunk with 256 char limit' },
|
|
746
|
+
{ command: 'flo embeddings chunk -f doc.txt --strategy paragraph', description: 'Chunk file by paragraph' },
|
|
747
747
|
],
|
|
748
748
|
action: async (ctx) => {
|
|
749
749
|
const text = ctx.flags.text || '';
|
|
@@ -784,8 +784,8 @@ const normalizeCommand = {
|
|
|
784
784
|
{ name: 'check', short: 'c', type: 'boolean', description: 'Check if already normalized' },
|
|
785
785
|
],
|
|
786
786
|
examples: [
|
|
787
|
-
{ command: '
|
|
788
|
-
{ command: '
|
|
787
|
+
{ command: 'flo embeddings normalize -i "[0.5, 0.3, 0.8]" -t l2', description: 'L2 normalize' },
|
|
788
|
+
{ command: 'flo embeddings normalize --check -i "[...]"', description: 'Check if normalized' },
|
|
789
789
|
],
|
|
790
790
|
action: async (ctx) => {
|
|
791
791
|
const type = ctx.flags.type || 'l2';
|
|
@@ -822,8 +822,8 @@ const hyperbolicCommand = {
|
|
|
822
822
|
{ name: 'input', short: 'i', type: 'string', description: 'Input embedding(s) JSON' },
|
|
823
823
|
],
|
|
824
824
|
examples: [
|
|
825
|
-
{ command: '
|
|
826
|
-
{ command: '
|
|
825
|
+
{ command: 'flo embeddings hyperbolic -a convert -i "[0.5, 0.3]"', description: 'Convert to Poincaré' },
|
|
826
|
+
{ command: 'flo embeddings hyperbolic -a distance', description: 'Compute hyperbolic distance' },
|
|
827
827
|
],
|
|
828
828
|
action: async (ctx) => {
|
|
829
829
|
const action = ctx.flags.action || 'convert';
|
|
@@ -923,11 +923,11 @@ const neuralCommand = {
|
|
|
923
923
|
{ name: 'consolidation-interval', type: 'string', description: 'Memory consolidation interval (ms)', default: '60000' },
|
|
924
924
|
],
|
|
925
925
|
examples: [
|
|
926
|
-
{ command: '
|
|
927
|
-
{ command: '
|
|
928
|
-
{ command: '
|
|
929
|
-
{ command: '
|
|
930
|
-
{ command: '
|
|
926
|
+
{ command: 'flo embeddings neural --init', description: 'Initialize MoVector substrate' },
|
|
927
|
+
{ command: 'flo embeddings neural -f drift', description: 'Semantic drift detection' },
|
|
928
|
+
{ command: 'flo embeddings neural -f memory', description: 'Memory physics (hippocampal)' },
|
|
929
|
+
{ command: 'flo embeddings neural -f coherence', description: 'Safety & alignment monitoring' },
|
|
930
|
+
{ command: 'flo embeddings neural --drift-threshold=0.2', description: 'Custom drift threshold' },
|
|
931
931
|
],
|
|
932
932
|
action: async (ctx) => {
|
|
933
933
|
const feature = ctx.flags.feature || 'all';
|
|
@@ -1070,8 +1070,8 @@ export const modelsCommand = {
|
|
|
1070
1070
|
{ name: 'list', short: 'l', type: 'boolean', description: 'List available models', default: 'true' },
|
|
1071
1071
|
],
|
|
1072
1072
|
examples: [
|
|
1073
|
-
{ command: '
|
|
1074
|
-
{ command: '
|
|
1073
|
+
{ command: 'flo embeddings models', description: 'List models' },
|
|
1074
|
+
{ command: 'flo embeddings models -d all-MiniLM-L6-v2', description: 'Download model' },
|
|
1075
1075
|
],
|
|
1076
1076
|
action: async (ctx) => {
|
|
1077
1077
|
const download = ctx.flags.download;
|
|
@@ -1122,8 +1122,8 @@ const cacheCommand = {
|
|
|
1122
1122
|
{ name: 'db-path', type: 'string', description: 'SQLite database path', default: '.cache/embeddings.db' },
|
|
1123
1123
|
],
|
|
1124
1124
|
examples: [
|
|
1125
|
-
{ command: '
|
|
1126
|
-
{ command: '
|
|
1125
|
+
{ command: 'flo embeddings cache', description: 'Show cache stats' },
|
|
1126
|
+
{ command: 'flo embeddings cache -a clear', description: 'Clear cache' },
|
|
1127
1127
|
],
|
|
1128
1128
|
action: async (ctx) => {
|
|
1129
1129
|
const action = ctx.flags.action || 'stats';
|
|
@@ -1253,8 +1253,8 @@ const warmupCommand = {
|
|
|
1253
1253
|
{ name: 'test', short: 't', type: 'boolean', description: 'Run test embedding after warmup', default: 'true' },
|
|
1254
1254
|
],
|
|
1255
1255
|
examples: [
|
|
1256
|
-
{ command: '
|
|
1257
|
-
{ command: '
|
|
1256
|
+
{ command: 'flo embeddings warmup', description: 'Preload model with test' },
|
|
1257
|
+
{ command: 'flo embeddings warmup -b', description: 'Background warmup' },
|
|
1258
1258
|
],
|
|
1259
1259
|
action: async (ctx) => {
|
|
1260
1260
|
const runTest = ctx.flags.test !== false;
|
|
@@ -1327,8 +1327,8 @@ const benchmarkCommand = {
|
|
|
1327
1327
|
{ name: 'full', short: 'f', type: 'boolean', description: 'Run full benchmark suite', default: 'false' },
|
|
1328
1328
|
],
|
|
1329
1329
|
examples: [
|
|
1330
|
-
{ command: '
|
|
1331
|
-
{ command: '
|
|
1330
|
+
{ command: 'flo embeddings benchmark', description: 'Quick benchmark' },
|
|
1331
|
+
{ command: 'flo embeddings benchmark -n 50 -f', description: 'Full benchmark' },
|
|
1332
1332
|
],
|
|
1333
1333
|
action: async (ctx) => {
|
|
1334
1334
|
const iterations = parseInt(ctx.flags.iterations || '10', 10);
|
|
@@ -1471,8 +1471,8 @@ const migrateCommand = {
|
|
|
1471
1471
|
{ name: 'verbose', short: 'v', type: 'boolean', description: 'Verbose output', default: 'false' },
|
|
1472
1472
|
],
|
|
1473
1473
|
examples: [
|
|
1474
|
-
{ command: '
|
|
1475
|
-
{ command: '
|
|
1474
|
+
{ command: 'flo embeddings migrate', description: `Migrate ${DEFAULT_DB_PATH_FLAG} to current version` },
|
|
1475
|
+
{ command: 'flo embeddings migrate -d .custom/mem.db', description: 'Migrate a custom DB' },
|
|
1476
1476
|
],
|
|
1477
1477
|
action: async (ctx) => {
|
|
1478
1478
|
const dbPath = ctx.flags.db || memoryDbPath(process.cwd());
|
|
@@ -1511,13 +1511,13 @@ export const embeddingsCommand = {
|
|
|
1511
1511
|
benchmarkCommand,
|
|
1512
1512
|
],
|
|
1513
1513
|
examples: [
|
|
1514
|
-
{ command: '
|
|
1515
|
-
{ command: '
|
|
1516
|
-
{ command: '
|
|
1517
|
-
{ command: '
|
|
1518
|
-
{ command: '
|
|
1519
|
-
{ command: '
|
|
1520
|
-
{ command: '
|
|
1514
|
+
{ command: 'flo embeddings init', description: 'Initialize ONNX embedding system' },
|
|
1515
|
+
{ command: 'flo embeddings init --model all-mpnet-base-v2', description: 'Init with larger model' },
|
|
1516
|
+
{ command: 'flo embeddings generate -t "Hello"', description: 'Generate embedding' },
|
|
1517
|
+
{ command: 'flo embeddings search -q "error handling"', description: 'Semantic search' },
|
|
1518
|
+
{ command: 'flo embeddings chunk -t "Long doc..."', description: 'Chunk document' },
|
|
1519
|
+
{ command: 'flo embeddings hyperbolic -a convert', description: 'Hyperbolic space' },
|
|
1520
|
+
{ command: 'flo embed neural -f drift', description: 'Neural substrate' },
|
|
1521
1521
|
],
|
|
1522
1522
|
action: async () => {
|
|
1523
1523
|
output.writeln();
|
|
@@ -15,9 +15,9 @@ const compileCommand = {
|
|
|
15
15
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
16
16
|
],
|
|
17
17
|
examples: [
|
|
18
|
-
{ command: '
|
|
19
|
-
{ command: '
|
|
20
|
-
{ command: '
|
|
18
|
+
{ command: 'flo guidance compile', description: 'Compile default CLAUDE.md' },
|
|
19
|
+
{ command: 'flo guidance compile -r ./CLAUDE.md -l ./CLAUDE.local.md', description: 'Compile with local overlay' },
|
|
20
|
+
{ command: 'flo guidance compile --json', description: 'Output compiled bundle as JSON' },
|
|
21
21
|
],
|
|
22
22
|
action: async (ctx) => {
|
|
23
23
|
const rootPath = ctx.flags.root || './CLAUDE.md';
|
|
@@ -89,8 +89,8 @@ const retrieveCommand = {
|
|
|
89
89
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
90
90
|
],
|
|
91
91
|
examples: [
|
|
92
|
-
{ command: '
|
|
93
|
-
{ command: '
|
|
92
|
+
{ command: 'flo guidance retrieve -t "Fix SQL injection in user search"', description: 'Retrieve guidance for a security task' },
|
|
93
|
+
{ command: 'flo guidance retrieve -t "Add unit tests" -n 3', description: 'Retrieve top 3 shards for testing' },
|
|
94
94
|
],
|
|
95
95
|
action: async (ctx) => {
|
|
96
96
|
const task = ctx.flags.task;
|
|
@@ -175,8 +175,8 @@ const gatesCommand = {
|
|
|
175
175
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
176
176
|
],
|
|
177
177
|
examples: [
|
|
178
|
-
{ command: '
|
|
179
|
-
{ command: '
|
|
178
|
+
{ command: 'flo guidance gates -c "rm -rf /tmp"', description: 'Check if a command is destructive' },
|
|
179
|
+
{ command: 'flo guidance gates --content "api_key=sk-abc123..."', description: 'Check content for secrets' },
|
|
180
180
|
],
|
|
181
181
|
action: async (ctx) => {
|
|
182
182
|
const command = ctx.flags.command;
|
|
@@ -316,10 +316,10 @@ const optimizeCommand = {
|
|
|
316
316
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
317
317
|
],
|
|
318
318
|
examples: [
|
|
319
|
-
{ command: '
|
|
320
|
-
{ command: '
|
|
321
|
-
{ command: '
|
|
322
|
-
{ command: '
|
|
319
|
+
{ command: 'flo guidance optimize', description: 'Analyze current CLAUDE.md and show suggestions' },
|
|
320
|
+
{ command: 'flo guidance optimize --apply', description: 'Apply optimizations to CLAUDE.md' },
|
|
321
|
+
{ command: 'flo guidance optimize -s compact --apply', description: 'Optimize for compact context window' },
|
|
322
|
+
{ command: 'flo guidance optimize --target-score 95', description: 'Optimize until score reaches 95' },
|
|
323
323
|
],
|
|
324
324
|
action: async (ctx) => {
|
|
325
325
|
const rootPath = ctx.flags.root || './CLAUDE.md';
|
|
@@ -419,10 +419,10 @@ const abTestCommand = {
|
|
|
419
419
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
420
420
|
],
|
|
421
421
|
examples: [
|
|
422
|
-
{ command: '
|
|
423
|
-
{ command: '
|
|
424
|
-
{ command: '
|
|
425
|
-
{ command: '
|
|
422
|
+
{ command: 'flo guidance ab-test', description: 'Run default A/B test (no guidance vs ./CLAUDE.md)' },
|
|
423
|
+
{ command: 'flo guidance ab-test -a old.md -b new.md', description: 'Compare two CLAUDE.md versions' },
|
|
424
|
+
{ command: 'flo guidance ab-test --tasks custom-tasks.json', description: 'Run with custom test tasks' },
|
|
425
|
+
{ command: 'flo guidance ab-test --json', description: 'Output full report as JSON' },
|
|
426
426
|
],
|
|
427
427
|
action: async (ctx) => {
|
|
428
428
|
const configAPath = ctx.flags.configA;
|
|
@@ -534,12 +534,12 @@ export const guidanceCommand = {
|
|
|
534
534
|
],
|
|
535
535
|
options: [],
|
|
536
536
|
examples: [
|
|
537
|
-
{ command: '
|
|
538
|
-
{ command: '
|
|
539
|
-
{ command: '
|
|
540
|
-
{ command: '
|
|
541
|
-
{ command: '
|
|
542
|
-
{ command: '
|
|
537
|
+
{ command: 'flo guidance compile', description: 'Compile CLAUDE.md into policy bundle' },
|
|
538
|
+
{ command: 'flo guidance retrieve -t "Fix auth bug"', description: 'Retrieve relevant guidance' },
|
|
539
|
+
{ command: 'flo guidance gates -c "rm -rf /"', description: 'Check enforcement gates' },
|
|
540
|
+
{ command: 'flo guidance status', description: 'Show control plane status' },
|
|
541
|
+
{ command: 'flo guidance optimize', description: 'Analyze and optimize CLAUDE.md' },
|
|
542
|
+
{ command: 'flo guidance ab-test', description: 'Run A/B behavioral comparison' },
|
|
543
543
|
],
|
|
544
544
|
action: async (ctx) => {
|
|
545
545
|
output.writeln();
|
|
@@ -554,7 +554,7 @@ export const guidanceCommand = {
|
|
|
554
554
|
output.writeln(` ${output.bold('optimize')} Analyze and optimize CLAUDE.md`);
|
|
555
555
|
output.writeln(` ${output.bold('ab-test')} Run A/B behavioral comparison`);
|
|
556
556
|
output.writeln();
|
|
557
|
-
output.writeln(output.dim('Use
|
|
557
|
+
output.writeln(output.dim('Use flo guidance <subcommand> --help for details'));
|
|
558
558
|
return { success: true };
|
|
559
559
|
},
|
|
560
560
|
};
|
|
@@ -182,7 +182,7 @@ async function spawnClaudeCodeInstance(swarmId, swarmName, objective, workers, f
|
|
|
182
182
|
`Worker Count: ${output.highlight(String(workers.length))}`,
|
|
183
183
|
`Worker Types: ${output.highlight(Object.keys(workerGroups).join(', '))}`,
|
|
184
184
|
`Consensus: ${output.highlight(flags.consensus || 'byzantine')}`,
|
|
185
|
-
`MCP Tools: ${output.success('Full
|
|
185
|
+
`MCP Tools: ${output.success('Full moflo integration enabled')}`
|
|
186
186
|
]);
|
|
187
187
|
// Ensure sessions directory exists
|
|
188
188
|
const sessionsDir = join('.hive-mind', 'sessions');
|
|
@@ -361,8 +361,8 @@ const initCommand = {
|
|
|
361
361
|
}
|
|
362
362
|
],
|
|
363
363
|
examples: [
|
|
364
|
-
{ command: '
|
|
365
|
-
{ command: '
|
|
364
|
+
{ command: 'flo hive-mind init -t hierarchical-mesh', description: 'Init hierarchical mesh' },
|
|
365
|
+
{ command: 'flo hive-mind init -c byzantine -m 20', description: 'Init with Byzantine consensus' }
|
|
366
366
|
],
|
|
367
367
|
action: async (ctx) => {
|
|
368
368
|
let topology = ctx.flags.topology;
|
|
@@ -411,8 +411,8 @@ const initCommand = {
|
|
|
411
411
|
].join('\n'), 'Hive Mind Configuration');
|
|
412
412
|
output.writeln();
|
|
413
413
|
output.printInfo('Queen agent is ready to coordinate worker agents');
|
|
414
|
-
output.writeln(output.dim(' Use "
|
|
415
|
-
output.writeln(output.dim(' Use "
|
|
414
|
+
output.writeln(output.dim(' Use "flo hive-mind spawn" to add workers'));
|
|
415
|
+
output.writeln(output.dim(' Use "flo hive-mind spawn --claude" to launch Claude Code'));
|
|
416
416
|
return { success: true, data: result };
|
|
417
417
|
}
|
|
418
418
|
catch (error) {
|
|
@@ -500,11 +500,11 @@ const spawnCommand = {
|
|
|
500
500
|
}
|
|
501
501
|
],
|
|
502
502
|
examples: [
|
|
503
|
-
{ command: '
|
|
504
|
-
{ command: '
|
|
505
|
-
{ command: '
|
|
506
|
-
{ command: '
|
|
507
|
-
{ command: '
|
|
503
|
+
{ command: 'flo hive-mind spawn -n 5', description: 'Spawn 5 workers' },
|
|
504
|
+
{ command: 'flo hive-mind spawn -n 3 -r specialist', description: 'Spawn 3 specialists' },
|
|
505
|
+
{ command: 'flo hive-mind spawn -t coder -p my-coder', description: 'Spawn coder with custom prefix' },
|
|
506
|
+
{ command: 'flo hive-mind spawn --claude -o "Build a REST API"', description: 'Launch Claude Code with objective' },
|
|
507
|
+
{ command: 'flo hive-mind spawn -n 5 --claude -o "Research AI patterns"', description: 'Spawn workers and launch Claude Code' }
|
|
508
508
|
],
|
|
509
509
|
action: async (ctx) => {
|
|
510
510
|
// Parse count with fallback to default
|
|
@@ -673,7 +673,7 @@ const statusCommand = {
|
|
|
673
673
|
output.writeln();
|
|
674
674
|
output.writeln(output.bold('Worker Agents'));
|
|
675
675
|
if (workerData.length === 0) {
|
|
676
|
-
output.printInfo('No workers in hive. Use "
|
|
676
|
+
output.printInfo('No workers in hive. Use "flo hive-mind spawn" to add workers.');
|
|
677
677
|
}
|
|
678
678
|
else {
|
|
679
679
|
output.printTable({
|
|
@@ -763,8 +763,8 @@ const taskCommand = {
|
|
|
763
763
|
}
|
|
764
764
|
],
|
|
765
765
|
examples: [
|
|
766
|
-
{ command: '
|
|
767
|
-
{ command: '
|
|
766
|
+
{ command: 'flo hive-mind task -d "Implement auth module"', description: 'Submit task' },
|
|
767
|
+
{ command: 'flo hive-mind task -d "Security review" -p critical -c', description: 'Critical task with consensus' }
|
|
768
768
|
],
|
|
769
769
|
action: async (ctx) => {
|
|
770
770
|
let description = ctx.flags.description || ctx.args.join(' ');
|
|
@@ -804,7 +804,7 @@ const taskCommand = {
|
|
|
804
804
|
].join('\n'), 'Task Submitted');
|
|
805
805
|
output.writeln();
|
|
806
806
|
output.printSuccess('Task submitted to hive');
|
|
807
|
-
output.writeln(output.dim(` Track with:
|
|
807
|
+
output.writeln(output.dim(` Track with: flo hive-mind task-status ${result.taskId}`));
|
|
808
808
|
return { success: true, data: result };
|
|
809
809
|
}
|
|
810
810
|
catch (error) {
|
|
@@ -1135,16 +1135,16 @@ export const hiveMindCommand = {
|
|
|
1135
1135
|
subcommands: [initCommand, spawnCommand, statusCommand, taskCommand, joinCommand, leaveCommand, consensusCommand, broadcastCommand, memorySubCommand, optimizeMemoryCommand, shutdownCommand],
|
|
1136
1136
|
options: [],
|
|
1137
1137
|
examples: [
|
|
1138
|
-
{ command: '
|
|
1139
|
-
{ command: '
|
|
1140
|
-
{ command: '
|
|
1141
|
-
{ command: '
|
|
1138
|
+
{ command: 'flo hive-mind init -t hierarchical-mesh', description: 'Initialize hive' },
|
|
1139
|
+
{ command: 'flo hive-mind spawn -n 5', description: 'Spawn workers' },
|
|
1140
|
+
{ command: 'flo hive-mind spawn --claude -o "Build a feature"', description: 'Launch Claude Code with hive mind' },
|
|
1141
|
+
{ command: 'flo hive-mind task -d "Build feature"', description: 'Submit task' }
|
|
1142
1142
|
],
|
|
1143
1143
|
action: async () => {
|
|
1144
1144
|
output.writeln();
|
|
1145
1145
|
output.writeln(output.bold('Hive Mind - Consensus-Based Multi-Agent Coordination'));
|
|
1146
1146
|
output.writeln();
|
|
1147
|
-
output.writeln('Usage:
|
|
1147
|
+
output.writeln('Usage: flo hive-mind <subcommand> [options]');
|
|
1148
1148
|
output.writeln();
|
|
1149
1149
|
output.writeln('Subcommands:');
|
|
1150
1150
|
output.printList([
|
|
@@ -1172,8 +1172,8 @@ export const hiveMindCommand = {
|
|
|
1172
1172
|
]);
|
|
1173
1173
|
output.writeln();
|
|
1174
1174
|
output.writeln('Quick Start with Claude Code:');
|
|
1175
|
-
output.writeln(output.dim('
|
|
1176
|
-
output.writeln(output.dim('
|
|
1175
|
+
output.writeln(output.dim(' flo hive-mind init'));
|
|
1176
|
+
output.writeln(output.dim(' flo hive-mind spawn -n 5 --claude -o "Your objective here"'));
|
|
1177
1177
|
return { success: true };
|
|
1178
1178
|
}
|
|
1179
1179
|
};
|