moflo 4.10.23 → 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/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 +6 -6
- package/dist/src/cli/init/helpers-generator.js +4 -4
- 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
|
@@ -50,8 +50,8 @@ const preEditCommand = {
|
|
|
50
50
|
}
|
|
51
51
|
],
|
|
52
52
|
examples: [
|
|
53
|
-
{ command: '
|
|
54
|
-
{ command: '
|
|
53
|
+
{ command: 'flo hooks pre-edit -f src/utils.ts', description: 'Get context before editing' },
|
|
54
|
+
{ command: 'flo hooks pre-edit -f src/api.ts -o refactor', description: 'Pre-edit with operation type' }
|
|
55
55
|
],
|
|
56
56
|
action: async (ctx) => {
|
|
57
57
|
// Default file to 'unknown' for backward compatibility (env var may be empty)
|
|
@@ -107,8 +107,8 @@ const postEditCommand = {
|
|
|
107
107
|
}
|
|
108
108
|
],
|
|
109
109
|
examples: [
|
|
110
|
-
{ command: '
|
|
111
|
-
{ command: '
|
|
110
|
+
{ command: 'flo hooks post-edit -f src/utils.ts', description: 'Record edit outcome' },
|
|
111
|
+
{ command: 'flo hooks post-edit --file src/api.ts -o refactor', description: 'Record refactor outcome' }
|
|
112
112
|
],
|
|
113
113
|
action: async (ctx) => {
|
|
114
114
|
const filePath = ctx.args[0] || ctx.flags.file || process.env.TOOL_INPUT_file_path || 'unknown';
|
|
@@ -151,8 +151,8 @@ const preCommandCommand = {
|
|
|
151
151
|
}
|
|
152
152
|
],
|
|
153
153
|
examples: [
|
|
154
|
-
{ command: '
|
|
155
|
-
{ command: '
|
|
154
|
+
{ command: 'flo hooks pre-command -c "rm -rf dist"', description: 'Assess command risk' },
|
|
155
|
+
{ command: 'flo hooks pre-command -c "npm install lodash"', description: 'Check package install' }
|
|
156
156
|
],
|
|
157
157
|
action: async (ctx) => {
|
|
158
158
|
const command = ctx.args[0] || ctx.flags.command;
|
|
@@ -260,8 +260,8 @@ const postCommandCommand = {
|
|
|
260
260
|
}
|
|
261
261
|
],
|
|
262
262
|
examples: [
|
|
263
|
-
{ command: '
|
|
264
|
-
{ command: '
|
|
263
|
+
{ command: 'flo hooks post-command -c "npm test" --success true', description: 'Record successful test run' },
|
|
264
|
+
{ command: 'flo hooks post-command -c "npm build" --success false -e 1', description: 'Record failed build' }
|
|
265
265
|
],
|
|
266
266
|
action: async (ctx) => {
|
|
267
267
|
const command = ctx.args[0] || ctx.flags.command;
|
|
@@ -332,8 +332,8 @@ const routeCommand = {
|
|
|
332
332
|
}
|
|
333
333
|
],
|
|
334
334
|
examples: [
|
|
335
|
-
{ command: '
|
|
336
|
-
{ command: '
|
|
335
|
+
{ command: 'flo hooks route -t "Fix authentication bug"', description: 'Route task to optimal agent' },
|
|
336
|
+
{ command: 'flo hooks route -t "Optimize database queries" -K 5', description: 'Get top 5 suggestions' }
|
|
337
337
|
],
|
|
338
338
|
action: async (ctx) => {
|
|
339
339
|
const task = ctx.args[0] || ctx.flags.task || process.env.CLAUDE_USER_PROMPT || '';
|
|
@@ -444,8 +444,8 @@ const explainCommand = {
|
|
|
444
444
|
}
|
|
445
445
|
],
|
|
446
446
|
examples: [
|
|
447
|
-
{ command: '
|
|
448
|
-
{ command: '
|
|
447
|
+
{ command: 'flo hooks explain -t "Fix authentication bug"', description: 'Explain routing decision' },
|
|
448
|
+
{ command: 'flo hooks explain -t "Optimize queries" -a coder --verbose', description: 'Verbose explanation for specific agent' }
|
|
449
449
|
],
|
|
450
450
|
action: async (ctx) => {
|
|
451
451
|
const task = ctx.args[0] || ctx.flags.task;
|
|
@@ -563,10 +563,10 @@ const pretrainCommand = {
|
|
|
563
563
|
}
|
|
564
564
|
],
|
|
565
565
|
examples: [
|
|
566
|
-
{ command: '
|
|
567
|
-
{ command: '
|
|
568
|
-
{ command: '
|
|
569
|
-
{ command: '
|
|
566
|
+
{ command: 'flo hooks pretrain', description: 'Pretrain with embeddings indexing' },
|
|
567
|
+
{ command: 'flo hooks pretrain -p ../my-project --depth deep', description: 'Deep analysis of specific project' },
|
|
568
|
+
{ command: 'flo hooks pretrain --no-with-embeddings', description: 'Skip embedding indexing' },
|
|
569
|
+
{ command: 'flo hooks pretrain --file-types ts,tsx,js', description: 'Index only TypeScript/JS files' }
|
|
570
570
|
],
|
|
571
571
|
action: async (ctx) => {
|
|
572
572
|
const repoPath = ctx.flags.path || '.';
|
|
@@ -635,7 +635,7 @@ const pretrainCommand = {
|
|
|
635
635
|
if (withEmbeddings) {
|
|
636
636
|
output.writeln(output.dim(' Semantic search enabled: Use "embeddings search -q <query>" to search'));
|
|
637
637
|
}
|
|
638
|
-
output.writeln(output.dim(' Next step: Run "
|
|
638
|
+
output.writeln(output.dim(' Next step: Run "flo hooks build-agents" to generate optimized configs'));
|
|
639
639
|
return { success: true, data: result };
|
|
640
640
|
}
|
|
641
641
|
catch (error) {
|
|
@@ -678,8 +678,8 @@ const buildAgentsCommand = {
|
|
|
678
678
|
}
|
|
679
679
|
],
|
|
680
680
|
examples: [
|
|
681
|
-
{ command: '
|
|
682
|
-
{ command: '
|
|
681
|
+
{ command: 'flo hooks build-agents', description: 'Build all agent configs' },
|
|
682
|
+
{ command: 'flo hooks build-agents --focus security -o ./config/agents', description: 'Build security-focused configs' }
|
|
683
683
|
],
|
|
684
684
|
action: async (ctx) => {
|
|
685
685
|
const output_dir = ctx.flags.output || './agents';
|
|
@@ -765,8 +765,8 @@ const metricsCommand = {
|
|
|
765
765
|
}
|
|
766
766
|
],
|
|
767
767
|
examples: [
|
|
768
|
-
{ command: '
|
|
769
|
-
{ command: '
|
|
768
|
+
{ command: 'flo hooks metrics', description: 'View 24h metrics' },
|
|
769
|
+
{ command: 'flo hooks metrics --period 7d --v3-dashboard', description: 'V3 metrics for 7 days' }
|
|
770
770
|
],
|
|
771
771
|
action: async (ctx) => {
|
|
772
772
|
const period = ctx.flags.period || '24h';
|
|
@@ -881,8 +881,8 @@ const transferFromProjectCommand = {
|
|
|
881
881
|
}
|
|
882
882
|
],
|
|
883
883
|
examples: [
|
|
884
|
-
{ command: '
|
|
885
|
-
{ command: '
|
|
884
|
+
{ command: 'flo hooks transfer from-project -s ../old-project', description: 'Transfer all patterns' },
|
|
885
|
+
{ command: 'flo hooks transfer from-project -s ../prod --filter security -m 0.9', description: 'Transfer high-confidence security patterns' }
|
|
886
886
|
],
|
|
887
887
|
action: async (ctx) => {
|
|
888
888
|
const sourcePath = ctx.args[0] || ctx.flags.source;
|
|
@@ -957,11 +957,11 @@ const transferCommand = {
|
|
|
957
957
|
description: 'Transfer patterns and plugins via IPFS-based decentralized registry',
|
|
958
958
|
subcommands: [storeCommand, transferFromProjectCommand],
|
|
959
959
|
examples: [
|
|
960
|
-
{ command: '
|
|
961
|
-
{ command: '
|
|
962
|
-
{ command: '
|
|
963
|
-
{ command: '
|
|
964
|
-
{ command: '
|
|
960
|
+
{ command: 'flo hooks transfer store list', description: 'List patterns from registry' },
|
|
961
|
+
{ command: 'flo hooks transfer store search -q routing', description: 'Search patterns' },
|
|
962
|
+
{ command: 'flo hooks transfer store download -p seraphine-genesis', description: 'Download pattern' },
|
|
963
|
+
{ command: 'flo hooks transfer store publish', description: 'Publish pattern to registry' },
|
|
964
|
+
{ command: 'flo hooks transfer from-project -s ../other-project', description: 'Transfer from project' },
|
|
965
965
|
],
|
|
966
966
|
action: async () => {
|
|
967
967
|
output.writeln();
|
|
@@ -983,7 +983,7 @@ const transferCommand = {
|
|
|
983
983
|
'Trust levels: unverified, community, verified, official',
|
|
984
984
|
]);
|
|
985
985
|
output.writeln();
|
|
986
|
-
output.writeln('Run "
|
|
986
|
+
output.writeln('Run "flo hooks transfer <subcommand> --help" for details');
|
|
987
987
|
return { success: true };
|
|
988
988
|
}
|
|
989
989
|
};
|
|
@@ -1079,8 +1079,8 @@ const preTaskCommand = {
|
|
|
1079
1079
|
}
|
|
1080
1080
|
],
|
|
1081
1081
|
examples: [
|
|
1082
|
-
{ command: '
|
|
1083
|
-
{ command: '
|
|
1082
|
+
{ command: 'flo hooks pre-task -i task-123 -d "Fix auth bug"', description: 'Record task start' },
|
|
1083
|
+
{ command: 'flo hooks pre-task -i task-456 -d "Implement feature" --auto-spawn', description: 'With auto-spawn' }
|
|
1084
1084
|
],
|
|
1085
1085
|
action: async (ctx) => {
|
|
1086
1086
|
const taskId = ctx.flags.taskId;
|
|
@@ -1223,8 +1223,8 @@ const postTaskCommand = {
|
|
|
1223
1223
|
}
|
|
1224
1224
|
],
|
|
1225
1225
|
examples: [
|
|
1226
|
-
{ command: '
|
|
1227
|
-
{ command: '
|
|
1226
|
+
{ command: 'flo hooks post-task -i task-123 --success true', description: 'Record successful completion' },
|
|
1227
|
+
{ command: 'flo hooks post-task -i task-456 --success false -q 0.3', description: 'Record failed task' }
|
|
1228
1228
|
],
|
|
1229
1229
|
action: async (ctx) => {
|
|
1230
1230
|
// Auto-generate task ID if not provided
|
|
@@ -1287,8 +1287,8 @@ const sessionEndCommand = {
|
|
|
1287
1287
|
}
|
|
1288
1288
|
],
|
|
1289
1289
|
examples: [
|
|
1290
|
-
{ command: '
|
|
1291
|
-
{ command: '
|
|
1290
|
+
{ command: 'flo hooks session-end', description: 'End and save session' },
|
|
1291
|
+
{ command: 'flo hooks session-end --save-state false', description: 'End without saving' }
|
|
1292
1292
|
],
|
|
1293
1293
|
action: async (ctx) => {
|
|
1294
1294
|
output.printInfo('Ending session...');
|
|
@@ -1374,8 +1374,8 @@ const sessionRestoreCommand = {
|
|
|
1374
1374
|
}
|
|
1375
1375
|
],
|
|
1376
1376
|
examples: [
|
|
1377
|
-
{ command: '
|
|
1378
|
-
{ command: '
|
|
1377
|
+
{ command: 'flo hooks session-restore', description: 'Restore latest session' },
|
|
1378
|
+
{ command: 'flo hooks session-restore -i session-12345', description: 'Restore specific session' }
|
|
1379
1379
|
],
|
|
1380
1380
|
action: async (ctx) => {
|
|
1381
1381
|
const sessionId = ctx.args[0] || ctx.flags.sessionId || 'latest';
|
|
@@ -1486,9 +1486,9 @@ const intelligenceCommand = {
|
|
|
1486
1486
|
}
|
|
1487
1487
|
],
|
|
1488
1488
|
examples: [
|
|
1489
|
-
{ command: '
|
|
1490
|
-
{ command: '
|
|
1491
|
-
{ command: '
|
|
1489
|
+
{ command: 'flo hooks intelligence --status', description: 'Show intelligence status' },
|
|
1490
|
+
{ command: 'flo hooks intelligence -m real-time', description: 'Enable real-time mode' },
|
|
1491
|
+
{ command: 'flo hooks intelligence --train', description: 'Force training cycle' }
|
|
1492
1492
|
],
|
|
1493
1493
|
action: async (ctx) => {
|
|
1494
1494
|
const mode = ctx.flags.mode || 'balanced';
|
|
@@ -1695,8 +1695,8 @@ const workerListCommand = {
|
|
|
1695
1695
|
{ name: 'active', short: 'a', type: 'boolean', description: 'Show active worker instances' },
|
|
1696
1696
|
],
|
|
1697
1697
|
examples: [
|
|
1698
|
-
{ command: '
|
|
1699
|
-
{ command: '
|
|
1698
|
+
{ command: 'flo hooks worker list', description: 'List all workers' },
|
|
1699
|
+
{ command: 'flo hooks worker list --active', description: 'Show active instances' },
|
|
1700
1700
|
],
|
|
1701
1701
|
action: async (ctx) => {
|
|
1702
1702
|
const spinner = output.createSpinner({ text: 'Loading workers...', spinner: 'dots' });
|
|
@@ -1772,9 +1772,9 @@ const workerDispatchCommand = {
|
|
|
1772
1772
|
{ name: 'sync', short: 's', type: 'boolean', description: 'Wait for completion (synchronous)' },
|
|
1773
1773
|
],
|
|
1774
1774
|
examples: [
|
|
1775
|
-
{ command: '
|
|
1776
|
-
{ command: '
|
|
1777
|
-
{ command: '
|
|
1775
|
+
{ command: 'flo hooks worker dispatch -t optimize -c src/', description: 'Dispatch optimize worker' },
|
|
1776
|
+
{ command: 'flo hooks worker dispatch -t deepdive -p high', description: 'Deep code analysis with high priority' },
|
|
1777
|
+
{ command: 'flo hooks worker dispatch -t testgaps --sync', description: 'Test coverage analysis (sync)' },
|
|
1778
1778
|
],
|
|
1779
1779
|
action: async (ctx) => {
|
|
1780
1780
|
const trigger = ctx.flags['trigger'];
|
|
@@ -1819,7 +1819,7 @@ const workerDispatchCommand = {
|
|
|
1819
1819
|
});
|
|
1820
1820
|
if (background) {
|
|
1821
1821
|
output.writeln();
|
|
1822
|
-
output.writeln(output.dim(`Check status:
|
|
1822
|
+
output.writeln(output.dim(`Check status: flo hooks worker status --id ${result.workerId}`));
|
|
1823
1823
|
}
|
|
1824
1824
|
return { success: true, data: result };
|
|
1825
1825
|
}
|
|
@@ -1840,9 +1840,9 @@ const workerStatusCommand = {
|
|
|
1840
1840
|
{ name: 'all', short: 'a', type: 'boolean', description: 'Include completed workers' },
|
|
1841
1841
|
],
|
|
1842
1842
|
examples: [
|
|
1843
|
-
{ command: '
|
|
1844
|
-
{ command: '
|
|
1845
|
-
{ command: '
|
|
1843
|
+
{ command: 'flo hooks worker status', description: 'Show running workers' },
|
|
1844
|
+
{ command: 'flo hooks worker status --id worker_audit_1', description: 'Check specific worker' },
|
|
1845
|
+
{ command: 'flo hooks worker status --all', description: 'Include completed workers' },
|
|
1846
1846
|
],
|
|
1847
1847
|
action: async (ctx) => {
|
|
1848
1848
|
const workerId = ctx.flags['id'];
|
|
@@ -1925,8 +1925,8 @@ const workerDetectCommand = {
|
|
|
1925
1925
|
{ name: 'min-confidence', short: 'm', type: 'string', description: 'Minimum confidence threshold (0-1)' },
|
|
1926
1926
|
],
|
|
1927
1927
|
examples: [
|
|
1928
|
-
{ command: '
|
|
1929
|
-
{ command: '
|
|
1928
|
+
{ command: 'flo hooks worker detect -p "optimize performance"', description: 'Detect triggers in prompt' },
|
|
1929
|
+
{ command: 'flo hooks worker detect -p "security audit" --auto-dispatch', description: 'Detect and dispatch' },
|
|
1930
1930
|
],
|
|
1931
1931
|
action: async (ctx) => {
|
|
1932
1932
|
const prompt = ctx.flags.prompt;
|
|
@@ -1994,7 +1994,7 @@ const workerCancelCommand = {
|
|
|
1994
1994
|
{ name: 'id', type: 'string', description: 'Worker ID to cancel', required: true },
|
|
1995
1995
|
],
|
|
1996
1996
|
examples: [
|
|
1997
|
-
{ command: '
|
|
1997
|
+
{ command: 'flo hooks worker cancel --id worker_audit_1', description: 'Cancel specific worker' },
|
|
1998
1998
|
],
|
|
1999
1999
|
action: async (ctx) => {
|
|
2000
2000
|
const workerId = ctx.flags['id'];
|
|
@@ -2051,8 +2051,8 @@ const coverageRouteCommand = {
|
|
|
2051
2051
|
}
|
|
2052
2052
|
],
|
|
2053
2053
|
examples: [
|
|
2054
|
-
{ command: '
|
|
2055
|
-
{ command: '
|
|
2054
|
+
{ command: 'flo hooks coverage-route -t "fix bug in auth"', description: 'Route with coverage awareness' },
|
|
2055
|
+
{ command: 'flo hooks coverage-route -t "add tests" --threshold 90', description: 'Route with custom threshold' }
|
|
2056
2056
|
],
|
|
2057
2057
|
action: async (ctx) => {
|
|
2058
2058
|
const task = ctx.args[0] || ctx.flags.task;
|
|
@@ -2154,8 +2154,8 @@ const coverageSuggestCommand = {
|
|
|
2154
2154
|
}
|
|
2155
2155
|
],
|
|
2156
2156
|
examples: [
|
|
2157
|
-
{ command: '
|
|
2158
|
-
{ command: '
|
|
2157
|
+
{ command: 'flo hooks coverage-suggest -p src/', description: 'Suggest improvements for src/' },
|
|
2158
|
+
{ command: 'flo hooks coverage-suggest -p src/services --threshold 90', description: 'Stricter threshold' }
|
|
2159
2159
|
],
|
|
2160
2160
|
action: async (ctx) => {
|
|
2161
2161
|
const path = ctx.args[0] || ctx.flags.path;
|
|
@@ -2251,9 +2251,9 @@ const coverageGapsCommand = {
|
|
|
2251
2251
|
}
|
|
2252
2252
|
],
|
|
2253
2253
|
examples: [
|
|
2254
|
-
{ command: '
|
|
2255
|
-
{ command: '
|
|
2256
|
-
{ command: '
|
|
2254
|
+
{ command: 'flo hooks coverage-gaps', description: 'List all coverage gaps' },
|
|
2255
|
+
{ command: 'flo hooks coverage-gaps --critical-only', description: 'Only critical gaps' },
|
|
2256
|
+
{ command: 'flo hooks coverage-gaps --threshold 90', description: 'Stricter threshold' }
|
|
2257
2257
|
],
|
|
2258
2258
|
action: async (ctx) => {
|
|
2259
2259
|
const threshold = ctx.flags.threshold || 80;
|
|
@@ -2366,10 +2366,10 @@ const progressHookCommand = {
|
|
|
2366
2366
|
}
|
|
2367
2367
|
],
|
|
2368
2368
|
examples: [
|
|
2369
|
-
{ command: '
|
|
2370
|
-
{ command: '
|
|
2371
|
-
{ command: '
|
|
2372
|
-
{ command: '
|
|
2369
|
+
{ command: 'flo hooks progress', description: 'Check current progress' },
|
|
2370
|
+
{ command: 'flo hooks progress -d', description: 'Detailed breakdown' },
|
|
2371
|
+
{ command: 'flo hooks progress --sync', description: 'Sync progress to file' },
|
|
2372
|
+
{ command: 'flo hooks progress --summary', description: 'Human-readable summary' }
|
|
2373
2373
|
],
|
|
2374
2374
|
action: async (ctx) => {
|
|
2375
2375
|
const detailed = ctx.flags.detailed;
|
|
@@ -2470,9 +2470,9 @@ const workerCommand = {
|
|
|
2470
2470
|
],
|
|
2471
2471
|
options: [],
|
|
2472
2472
|
examples: [
|
|
2473
|
-
{ command: '
|
|
2474
|
-
{ command: '
|
|
2475
|
-
{ command: '
|
|
2473
|
+
{ command: 'flo hooks worker list', description: 'List all workers' },
|
|
2474
|
+
{ command: 'flo hooks worker dispatch -t optimize', description: 'Dispatch optimizer' },
|
|
2475
|
+
{ command: 'flo hooks worker detect -p "test coverage"', description: 'Detect from prompt' },
|
|
2476
2476
|
],
|
|
2477
2477
|
action: async () => {
|
|
2478
2478
|
output.writeln();
|
|
@@ -2502,7 +2502,7 @@ const workerCommand = {
|
|
|
2502
2502
|
`${output.highlight('cancel')} - Cancel a running worker`,
|
|
2503
2503
|
]);
|
|
2504
2504
|
output.writeln();
|
|
2505
|
-
output.writeln('Run "
|
|
2505
|
+
output.writeln('Run "flo hooks worker <subcommand> --help" for details');
|
|
2506
2506
|
return { success: true };
|
|
2507
2507
|
}
|
|
2508
2508
|
};
|
|
@@ -2531,9 +2531,9 @@ const statuslineCommand = {
|
|
|
2531
2531
|
}
|
|
2532
2532
|
],
|
|
2533
2533
|
examples: [
|
|
2534
|
-
{ command: '
|
|
2535
|
-
{ command: '
|
|
2536
|
-
{ command: '
|
|
2534
|
+
{ command: 'flo hooks statusline', description: 'Display full statusline' },
|
|
2535
|
+
{ command: 'flo hooks statusline --json', description: 'JSON output for hooks' },
|
|
2536
|
+
{ command: 'flo hooks statusline --compact', description: 'Single-line status' }
|
|
2537
2537
|
],
|
|
2538
2538
|
action: async (ctx) => {
|
|
2539
2539
|
const fs = await import('fs');
|
|
@@ -2958,7 +2958,7 @@ const routeTaskCommand = {
|
|
|
2958
2958
|
description: '(DEPRECATED: Use "route" instead) Route task to optimal agent',
|
|
2959
2959
|
options: routeCommand.options,
|
|
2960
2960
|
examples: [
|
|
2961
|
-
{ command: '
|
|
2961
|
+
{ command: 'flo hooks route-task --auto-swarm true', description: 'Route with auto-swarm (v2 compat)' },
|
|
2962
2962
|
],
|
|
2963
2963
|
action: async (ctx) => {
|
|
2964
2964
|
// Silently handle v2-specific flags that don't exist in v3
|
|
@@ -2990,7 +2990,7 @@ const sessionStartCommand = {
|
|
|
2990
2990
|
}
|
|
2991
2991
|
],
|
|
2992
2992
|
examples: [
|
|
2993
|
-
{ command: '
|
|
2993
|
+
{ command: 'flo hooks session-start --auto-configure true', description: 'Start session (v2 compat)' },
|
|
2994
2994
|
],
|
|
2995
2995
|
action: async (ctx) => {
|
|
2996
2996
|
// Map to session-restore for backward compatibility
|
|
@@ -3027,8 +3027,8 @@ const tokenOptimizeCommand = {
|
|
|
3027
3027
|
{ name: 'stats', short: 's', type: 'boolean', description: 'Show token savings statistics' },
|
|
3028
3028
|
],
|
|
3029
3029
|
examples: [
|
|
3030
|
-
{ command: '
|
|
3031
|
-
{ command: '
|
|
3030
|
+
{ command: 'flo hooks token-optimize --stats', description: 'Show token savings stats' },
|
|
3031
|
+
{ command: 'flo hooks token-optimize -A 8 --report', description: 'Config for 8 agents + report' },
|
|
3032
3032
|
],
|
|
3033
3033
|
action: async (ctx) => {
|
|
3034
3034
|
const agentCount = parseInt(ctx.flags['agents'] || '6', 10);
|
|
@@ -3100,8 +3100,8 @@ const modelRouteCommand = {
|
|
|
3100
3100
|
{ name: 'prefer-quality', type: 'boolean', description: 'Prefer higher quality models' },
|
|
3101
3101
|
],
|
|
3102
3102
|
examples: [
|
|
3103
|
-
{ command: '
|
|
3104
|
-
{ command: '
|
|
3103
|
+
{ command: 'flo hooks model-route -t "fix typo"', description: 'Route simple task (likely haiku)' },
|
|
3104
|
+
{ command: 'flo hooks model-route -t "architect auth system"', description: 'Route complex task (likely opus)' },
|
|
3105
3105
|
],
|
|
3106
3106
|
action: async (ctx) => {
|
|
3107
3107
|
const task = ctx.args[0] || ctx.flags.task;
|
|
@@ -3175,8 +3175,8 @@ const modelOutcomeCommand = {
|
|
|
3175
3175
|
{ name: 'quality', short: 'q', type: 'number', description: 'Quality score 0-1' },
|
|
3176
3176
|
],
|
|
3177
3177
|
examples: [
|
|
3178
|
-
{ command: '
|
|
3179
|
-
{ command: '
|
|
3178
|
+
{ command: 'flo hooks model-outcome -t "fix typo" -m haiku -o success', description: 'Record successful haiku task' },
|
|
3179
|
+
{ command: 'flo hooks model-outcome -t "auth system" -m sonnet -o escalated', description: 'Record escalation to opus' },
|
|
3180
3180
|
],
|
|
3181
3181
|
action: async (ctx) => {
|
|
3182
3182
|
const task = ctx.flags.task;
|
|
@@ -3213,8 +3213,8 @@ const modelStatsCommand = {
|
|
|
3213
3213
|
{ name: 'detailed', short: 'd', type: 'boolean', description: 'Show detailed breakdown' },
|
|
3214
3214
|
],
|
|
3215
3215
|
examples: [
|
|
3216
|
-
{ command: '
|
|
3217
|
-
{ command: '
|
|
3216
|
+
{ command: 'flo hooks model-stats', description: 'View routing stats' },
|
|
3217
|
+
{ command: 'flo hooks model-stats --detailed', description: 'Show detailed breakdown' },
|
|
3218
3218
|
],
|
|
3219
3219
|
action: async (ctx) => {
|
|
3220
3220
|
try {
|
|
@@ -3309,8 +3309,8 @@ const teammateIdleCommand = {
|
|
|
3309
3309
|
}
|
|
3310
3310
|
],
|
|
3311
3311
|
examples: [
|
|
3312
|
-
{ command: '
|
|
3313
|
-
{ command: '
|
|
3312
|
+
{ command: 'flo hooks teammate-idle --auto-assign true', description: 'Auto-assign tasks to idle teammate' },
|
|
3313
|
+
{ command: 'flo hooks teammate-idle -t worker-1 --check-task-list', description: 'Check tasks for specific teammate' }
|
|
3314
3314
|
],
|
|
3315
3315
|
action: async (ctx) => {
|
|
3316
3316
|
const autoAssign = ctx.flags.autoAssign !== false;
|
|
@@ -3408,8 +3408,8 @@ const taskCompletedCommand = {
|
|
|
3408
3408
|
}
|
|
3409
3409
|
],
|
|
3410
3410
|
examples: [
|
|
3411
|
-
{ command: '
|
|
3412
|
-
{ command: '
|
|
3411
|
+
{ command: 'flo hooks task-completed -i task-123 --train-patterns', description: 'Complete task and train patterns' },
|
|
3412
|
+
{ command: 'flo hooks task-completed -i task-456 --notify-lead --quality 0.95', description: 'Complete with quality score' }
|
|
3413
3413
|
],
|
|
3414
3414
|
action: async (ctx) => {
|
|
3415
3415
|
const taskId = ctx.args[0] || ctx.flags.taskId;
|
|
@@ -3504,8 +3504,8 @@ const learnCommand = {
|
|
|
3504
3504
|
}
|
|
3505
3505
|
],
|
|
3506
3506
|
examples: [
|
|
3507
|
-
{ command: '
|
|
3508
|
-
{ command: '
|
|
3507
|
+
{ command: 'flo hooks learn -p "JWT auth requires refresh token rotation" -d security', description: 'Store a security pattern' },
|
|
3508
|
+
{ command: 'flo hooks learn -p "Use em.flush() after batch inserts" -d database -q 0.9', description: 'Store high-quality DB pattern' }
|
|
3509
3509
|
],
|
|
3510
3510
|
action: async (ctx) => {
|
|
3511
3511
|
const pattern = ctx.args[0] || ctx.flags.pattern;
|
|
@@ -3559,8 +3559,8 @@ const patternsCommand = {
|
|
|
3559
3559
|
}
|
|
3560
3560
|
],
|
|
3561
3561
|
examples: [
|
|
3562
|
-
{ command: '
|
|
3563
|
-
{ command: '
|
|
3562
|
+
{ command: 'flo hooks patterns', description: 'List all patterns' },
|
|
3563
|
+
{ command: 'flo hooks patterns -d security', description: 'List security patterns' }
|
|
3564
3564
|
],
|
|
3565
3565
|
action: async (ctx) => {
|
|
3566
3566
|
const domain = ctx.flags.domain;
|
|
@@ -3619,7 +3619,7 @@ const consolidateCommand = {
|
|
|
3619
3619
|
description: 'Run pattern consolidation (promote short-term, prune old, deduplicate)',
|
|
3620
3620
|
options: [],
|
|
3621
3621
|
examples: [
|
|
3622
|
-
{ command: '
|
|
3622
|
+
{ command: 'flo hooks consolidate', description: 'Run consolidation' }
|
|
3623
3623
|
],
|
|
3624
3624
|
action: async (ctx) => {
|
|
3625
3625
|
output.printInfo('Running pattern consolidation...');
|
|
@@ -3702,10 +3702,10 @@ export const hooksCommand = {
|
|
|
3702
3702
|
],
|
|
3703
3703
|
options: [],
|
|
3704
3704
|
examples: [
|
|
3705
|
-
{ command: '
|
|
3706
|
-
{ command: '
|
|
3707
|
-
{ command: '
|
|
3708
|
-
{ command: '
|
|
3705
|
+
{ command: 'flo hooks pre-edit -f src/utils.ts', description: 'Get context before editing' },
|
|
3706
|
+
{ command: 'flo hooks route -t "Fix authentication bug"', description: 'Route task to optimal agent' },
|
|
3707
|
+
{ command: 'flo hooks pretrain', description: 'Bootstrap intelligence from repository' },
|
|
3708
|
+
{ command: 'flo hooks metrics --v3-dashboard', description: 'View V3 performance metrics' }
|
|
3709
3709
|
],
|
|
3710
3710
|
action: async (ctx) => {
|
|
3711
3711
|
output.writeln();
|
|
@@ -3713,7 +3713,7 @@ export const hooksCommand = {
|
|
|
3713
3713
|
output.writeln();
|
|
3714
3714
|
output.writeln('Intelligent spell automation with pattern learning and adaptive routing');
|
|
3715
3715
|
output.writeln();
|
|
3716
|
-
output.writeln('Usage:
|
|
3716
|
+
output.writeln('Usage: flo hooks <subcommand> [options]');
|
|
3717
3717
|
output.writeln();
|
|
3718
3718
|
output.writeln('Subcommands:');
|
|
3719
3719
|
output.printList([
|
|
@@ -3753,7 +3753,7 @@ export const hooksCommand = {
|
|
|
3753
3753
|
`${output.highlight('task-completed')} - Handle task completion (train patterns)`
|
|
3754
3754
|
]);
|
|
3755
3755
|
output.writeln();
|
|
3756
|
-
output.writeln('Run "
|
|
3756
|
+
output.writeln('Run "flo hooks <subcommand> --help" for subcommand help');
|
|
3757
3757
|
output.writeln();
|
|
3758
3758
|
output.writeln(output.bold('V3 Features:'));
|
|
3759
3759
|
output.printList([
|
|
@@ -389,7 +389,7 @@ const wizardCommand = {
|
|
|
389
389
|
{ value: 'sessionStart', label: 'SessionStart', hint: 'Session initialization', selected: true },
|
|
390
390
|
{ value: 'stop', label: 'Stop', hint: 'Task completion evaluation', selected: true },
|
|
391
391
|
{ value: 'notification', label: 'Notification', hint: 'Swarm notifications', selected: true },
|
|
392
|
-
{ value: 'permissionRequest', label: 'PermissionRequest', hint: 'Auto-allow
|
|
392
|
+
{ value: 'permissionRequest', label: 'PermissionRequest', hint: 'Auto-allow flo tools', selected: true },
|
|
393
393
|
],
|
|
394
394
|
});
|
|
395
395
|
options.hooks.preToolUse = hooks.includes('preToolUse');
|
|
@@ -873,22 +873,22 @@ export const initCommand = {
|
|
|
873
873
|
},
|
|
874
874
|
],
|
|
875
875
|
examples: [
|
|
876
|
-
{ command: '
|
|
877
|
-
{ command: '
|
|
878
|
-
{ command: '
|
|
879
|
-
{ command: '
|
|
880
|
-
{ command: '
|
|
881
|
-
{ command: '
|
|
882
|
-
{ command: '
|
|
883
|
-
{ command: '
|
|
884
|
-
{ command: '
|
|
885
|
-
{ command: '
|
|
886
|
-
{ command: '
|
|
887
|
-
{ command: '
|
|
888
|
-
{ command: '
|
|
889
|
-
{ command: '
|
|
890
|
-
{ command: '
|
|
891
|
-
{ command: '
|
|
876
|
+
{ command: 'flo init', description: 'Initialize with default configuration' },
|
|
877
|
+
{ command: 'flo init --start-all', description: 'Initialize and start daemon, memory, swarm' },
|
|
878
|
+
{ command: 'flo init --start-daemon', description: 'Initialize and start daemon only' },
|
|
879
|
+
{ command: 'flo init --minimal', description: 'Initialize with minimal configuration' },
|
|
880
|
+
{ command: 'flo init --full', description: 'Initialize with all components' },
|
|
881
|
+
{ command: 'flo init --force', description: 'Reinitialize and overwrite existing config' },
|
|
882
|
+
{ command: 'flo init --only-claude', description: 'Only create Claude Code integration' },
|
|
883
|
+
{ command: 'flo init --skip-claude', description: 'Only create V3 runtime' },
|
|
884
|
+
{ command: 'flo init wizard', description: 'Interactive setup wizard' },
|
|
885
|
+
{ command: 'flo init --with-embeddings', description: 'Initialize with ONNX embeddings' },
|
|
886
|
+
{ command: 'flo init --with-embeddings --embedding-model all-mpnet-base-v2', description: 'Use larger embedding model' },
|
|
887
|
+
{ command: 'flo init skills --all', description: 'Install all available skills' },
|
|
888
|
+
{ command: 'flo init hooks --minimal', description: 'Create minimal hooks configuration' },
|
|
889
|
+
{ command: 'flo init upgrade', description: 'Update helpers while preserving data' },
|
|
890
|
+
{ command: 'flo init upgrade --settings', description: 'Update helpers and merge new settings (Agent Teams)' },
|
|
891
|
+
{ command: 'flo init upgrade --verbose', description: 'Show detailed upgrade info' },
|
|
892
892
|
],
|
|
893
893
|
action: initAction,
|
|
894
894
|
};
|
|
@@ -499,12 +499,12 @@ export const issuesCommand = {
|
|
|
499
499
|
boardCommand,
|
|
500
500
|
],
|
|
501
501
|
examples: [
|
|
502
|
-
{ command: '
|
|
503
|
-
{ command: '
|
|
504
|
-
{ command: '
|
|
505
|
-
{ command: '
|
|
506
|
-
{ command: '
|
|
507
|
-
{ command: '
|
|
502
|
+
{ command: 'flo issues list', description: 'List all claims' },
|
|
503
|
+
{ command: 'flo issues claim 123 --agent coder:coder-1', description: 'Claim as agent' },
|
|
504
|
+
{ command: 'flo issues handoff 123 --to agent:tester:tester-1', description: 'Handoff to tester' },
|
|
505
|
+
{ command: 'flo issues stealable', description: 'List stealable' },
|
|
506
|
+
{ command: 'flo issues steal 123 --agent coder:coder-2', description: 'Steal issue' },
|
|
507
|
+
{ command: 'flo issues board', description: 'Visual board' },
|
|
508
508
|
],
|
|
509
509
|
action: async () => {
|
|
510
510
|
output.writeln();
|
|
@@ -69,9 +69,9 @@ const startCommand = {
|
|
|
69
69
|
}
|
|
70
70
|
],
|
|
71
71
|
examples: [
|
|
72
|
-
{ command: '
|
|
73
|
-
{ command: '
|
|
74
|
-
{ command: '
|
|
72
|
+
{ command: 'flo mcp start', description: 'Start with defaults (stdio)' },
|
|
73
|
+
{ command: 'flo mcp start -d', description: 'Start as daemon' },
|
|
74
|
+
{ command: 'flo mcp start -f', description: 'Force restart (kill existing)' }
|
|
75
75
|
],
|
|
76
76
|
action: async (ctx) => {
|
|
77
77
|
const transport = ctx.flags.transport ?? 'stdio';
|
|
@@ -256,7 +256,7 @@ const statusCommand = {
|
|
|
256
256
|
]
|
|
257
257
|
});
|
|
258
258
|
output.writeln();
|
|
259
|
-
output.writeln(output.dim('Run "
|
|
259
|
+
output.writeln(output.dim('Run "flo mcp start" to start the server'));
|
|
260
260
|
return { success: true, data: status };
|
|
261
261
|
}
|
|
262
262
|
const displayData = [
|
|
@@ -459,7 +459,7 @@ const execCommand = {
|
|
|
459
459
|
}
|
|
460
460
|
],
|
|
461
461
|
examples: [
|
|
462
|
-
{ command: '
|
|
462
|
+
{ command: 'flo mcp exec -t swarm_init -p \'{"topology":"mesh"}\'', description: 'Execute tool' }
|
|
463
463
|
],
|
|
464
464
|
action: async (ctx) => {
|
|
465
465
|
const tool = ctx.flags.tool || ctx.args[0];
|
|
@@ -657,16 +657,16 @@ export const mcpCommand = {
|
|
|
657
657
|
],
|
|
658
658
|
options: [],
|
|
659
659
|
examples: [
|
|
660
|
-
{ command: '
|
|
661
|
-
{ command: '
|
|
662
|
-
{ command: '
|
|
663
|
-
{ command: '
|
|
660
|
+
{ command: 'flo mcp start', description: 'Start MCP server (stdio)' },
|
|
661
|
+
{ command: 'flo mcp status', description: 'Show server status' },
|
|
662
|
+
{ command: 'flo mcp tools', description: 'List tools' },
|
|
663
|
+
{ command: 'flo mcp stop', description: 'Stop the server' }
|
|
664
664
|
],
|
|
665
665
|
action: async (ctx) => {
|
|
666
666
|
output.writeln();
|
|
667
667
|
output.writeln(output.bold('MCP Server Management'));
|
|
668
668
|
output.writeln();
|
|
669
|
-
output.writeln('Usage:
|
|
669
|
+
output.writeln('Usage: flo mcp <subcommand> [options]');
|
|
670
670
|
output.writeln();
|
|
671
671
|
output.writeln('Subcommands:');
|
|
672
672
|
output.printList([
|