claude-flow-novice 2.0.3 → 2.0.4
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/guidance.js +487 -668
- package/dist/src/cli/commands/index-validate.js +18 -29
- package/dist/src/cli/commands/mcp-troubleshoot.js +230 -282
- package/dist/src/cli/commands/neural-goal-init.js +92 -125
- package/dist/src/cli/commands/swarm-exec.js +317 -393
- package/dist/src/cli/commands/swarm.js +1 -1
- package/dist/src/cli/commands/validate-framework.js +983 -1100
- package/dist/src/cli/commands/validate.js +144 -223
- package/dist/src/cli/simple-commands/__tests__/agent.test.js +265 -277
- package/dist/src/cli/simple-commands/__tests__/memory.test.js +6 -7
- package/dist/src/cli/simple-commands/__tests__/swarm.test.js +373 -356
- package/dist/src/cli/simple-commands/__tests__/task.test.js +6 -7
- package/dist/src/cli/simple-commands/agent.js +157 -193
- package/dist/src/cli/simple-commands/analysis.js +336 -446
- package/dist/src/cli/simple-commands/automation-executor.js +1095 -1339
- package/dist/src/cli/simple-commands/automation.js +481 -469
- package/dist/src/cli/simple-commands/batch-manager.js +261 -313
- package/dist/src/cli/simple-commands/claude-telemetry.js +241 -267
- package/dist/src/cli/simple-commands/claude-track.js +68 -90
- package/dist/src/cli/simple-commands/concurrent-display.js +266 -320
- package/dist/src/cli/simple-commands/config.js +245 -290
- package/dist/src/cli/simple-commands/coordination.js +182 -234
- package/dist/src/cli/simple-commands/enhanced-ui-views.js +812 -615
- package/dist/src/cli/simple-commands/enhanced-webui-complete.js +922 -981
- package/dist/src/cli/simple-commands/fix-hook-variables.js +274 -294
- package/dist/src/cli/simple-commands/github/gh-coordinator.js +378 -457
- package/dist/src/cli/simple-commands/github/github-api.js +535 -574
- package/dist/src/cli/simple-commands/github/init.js +276 -303
- package/dist/src/cli/simple-commands/github.js +222 -247
- package/dist/src/cli/simple-commands/goal.js +51 -63
- package/dist/src/cli/simple-commands/hive-mind/auto-save-middleware.js +208 -278
- package/dist/src/cli/simple-commands/hive-mind/communication.js +601 -696
- package/dist/src/cli/simple-commands/hive-mind/core.js +907 -979
- package/dist/src/cli/simple-commands/hive-mind/db-optimizer.js +406 -655
- package/dist/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1125 -1245
- package/dist/src/cli/simple-commands/hive-mind/memory.js +854 -1090
- package/dist/src/cli/simple-commands/hive-mind/performance-optimizer.js +459 -574
- package/dist/src/cli/simple-commands/hive-mind/performance-test.js +263 -347
- package/dist/src/cli/simple-commands/hive-mind/queen.js +727 -768
- package/dist/src/cli/simple-commands/hive-mind/session-manager.js +745 -1049
- package/dist/src/cli/simple-commands/hive-mind-optimize.js +227 -283
- package/dist/src/cli/simple-commands/hive-mind-wizard.js +174 -217
- package/dist/src/cli/simple-commands/hive-mind.js +1842 -2283
- package/dist/src/cli/simple-commands/hive.js +90 -79
- package/dist/src/cli/simple-commands/hook-safety.js +431 -521
- package/dist/src/cli/simple-commands/hooks/session-start-soul.js +203 -254
- package/dist/src/cli/simple-commands/hooks.js +1064 -1204
- package/dist/src/cli/simple-commands/init/agent-copier.js +294 -319
- package/dist/src/cli/simple-commands/init/batch-init.js +496 -562
- package/dist/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +13 -19
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +13 -19
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +61 -88
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +125 -150
- package/dist/src/cli/simple-commands/init/claude-commands/slash-commands.js +42 -49
- package/dist/src/cli/simple-commands/init/claude-commands/sparc-commands.js +43 -61
- package/dist/src/cli/simple-commands/init/copy-revised-templates.js +141 -147
- package/dist/src/cli/simple-commands/init/executable-wrapper.js +31 -44
- package/dist/src/cli/simple-commands/init/gitignore-updater.js +64 -90
- package/dist/src/cli/simple-commands/init/help.js +104 -107
- package/dist/src/cli/simple-commands/init/hive-mind-init.js +509 -528
- package/dist/src/cli/simple-commands/init/index.js +1510 -1759
- package/dist/src/cli/simple-commands/init/performance-monitor.js +234 -317
- package/dist/src/cli/simple-commands/init/rollback/backup-manager.js +441 -504
- package/dist/src/cli/simple-commands/init/rollback/index.js +289 -364
- package/dist/src/cli/simple-commands/init/rollback/recovery-manager.js +652 -728
- package/dist/src/cli/simple-commands/init/rollback/rollback-executor.js +416 -481
- package/dist/src/cli/simple-commands/init/rollback/state-tracker.js +369 -448
- package/dist/src/cli/simple-commands/init/sparc/roo-readme.js +1 -2
- package/dist/src/cli/simple-commands/init/sparc/roomodes-config.js +122 -99
- package/dist/src/cli/simple-commands/init/sparc/workflows.js +32 -37
- package/dist/src/cli/simple-commands/init/sparc-structure.js +55 -62
- package/dist/src/cli/simple-commands/init/template-copier.js +421 -533
- package/dist/src/cli/simple-commands/init/templates/coordination-md.js +3 -6
- package/dist/src/cli/simple-commands/init/templates/enhanced-templates.js +344 -318
- package/dist/src/cli/simple-commands/init/templates/github-safe-enhanced.js +173 -218
- package/dist/src/cli/simple-commands/init/templates/github-safe.js +65 -75
- package/dist/src/cli/simple-commands/init/templates/memory-bank-md.js +3 -6
- package/dist/src/cli/simple-commands/init/templates/readme-files.js +2 -4
- package/dist/src/cli/simple-commands/init/templates/safe-hook-patterns.js +187 -230
- package/dist/src/cli/simple-commands/init/templates/sparc-modes.js +53 -80
- package/dist/src/cli/simple-commands/init/templates/verification-claude-md.js +101 -85
- package/dist/src/cli/simple-commands/init/validation/config-validator.js +283 -330
- package/dist/src/cli/simple-commands/init/validation/health-checker.js +495 -561
- package/dist/src/cli/simple-commands/init/validation/index.js +302 -358
- package/dist/src/cli/simple-commands/init/validation/mode-validator.js +308 -359
- package/dist/src/cli/simple-commands/init/validation/post-init-validator.js +389 -366
- package/dist/src/cli/simple-commands/init/validation/pre-init-validator.js +270 -268
- package/dist/src/cli/simple-commands/init/validation/test-runner.js +427 -447
- package/dist/src/cli/simple-commands/init.js +1 -2
- package/dist/src/cli/simple-commands/mcp-health.js +131 -158
- package/dist/src/cli/simple-commands/mcp-integration-layer.js +533 -634
- package/dist/src/cli/simple-commands/mcp.js +345 -400
- package/dist/src/cli/simple-commands/memory-consolidation.js +426 -537
- package/dist/src/cli/simple-commands/memory.js +247 -311
- package/dist/src/cli/simple-commands/migrate-hooks.js +39 -46
- package/dist/src/cli/simple-commands/monitor.js +294 -363
- package/dist/src/cli/simple-commands/neural.js +51 -65
- package/dist/src/cli/simple-commands/pair-autofix-only.js +538 -662
- package/dist/src/cli/simple-commands/pair-basic.js +528 -656
- package/dist/src/cli/simple-commands/pair-old.js +430 -543
- package/dist/src/cli/simple-commands/pair-working.js +615 -751
- package/dist/src/cli/simple-commands/pair.js +615 -751
- package/dist/src/cli/simple-commands/performance-hooks.js +83 -111
- package/dist/src/cli/simple-commands/performance-metrics.js +348 -433
- package/dist/src/cli/simple-commands/process-ui-enhanced.js +708 -787
- package/dist/src/cli/simple-commands/process-ui.js +230 -254
- package/dist/src/cli/simple-commands/realtime-update-system.js +525 -611
- package/dist/src/cli/simple-commands/sparc/architecture.js +1704 -1530
- package/dist/src/cli/simple-commands/sparc/commands.js +438 -516
- package/dist/src/cli/simple-commands/sparc/completion.js +1224 -1481
- package/dist/src/cli/simple-commands/sparc/coordinator.js +913 -978
- package/dist/src/cli/simple-commands/sparc/index.js +241 -298
- package/dist/src/cli/simple-commands/sparc/phase-base.js +314 -390
- package/dist/src/cli/simple-commands/sparc/pseudocode.js +965 -869
- package/dist/src/cli/simple-commands/sparc/refinement.js +980 -1273
- package/dist/src/cli/simple-commands/sparc/specification.js +559 -645
- package/dist/src/cli/simple-commands/sparc-modes/architect.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/ask.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/code.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/debug.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/devops.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/docs-writer.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/generic.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/index.js +47 -55
- package/dist/src/cli/simple-commands/sparc-modes/integration.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/mcp.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/monitoring.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/optimization.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/security-review.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/supabase-admin.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/swarm.js +101 -87
- package/dist/src/cli/simple-commands/sparc-modes/tdd.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/tutorial.js +1 -1
- package/dist/src/cli/simple-commands/sparc.js +465 -493
- package/dist/src/cli/simple-commands/start-ui.js +108 -132
- package/dist/src/cli/simple-commands/start-wrapper.js +240 -268
- package/dist/src/cli/simple-commands/start.js +1 -1
- package/dist/src/cli/simple-commands/status.js +254 -275
- package/dist/src/cli/simple-commands/stream-chain-clean.js +128 -171
- package/dist/src/cli/simple-commands/stream-chain-fixed.js +61 -82
- package/dist/src/cli/simple-commands/stream-chain-real.js +267 -331
- package/dist/src/cli/simple-commands/stream-chain-working.js +211 -263
- package/dist/src/cli/simple-commands/stream-chain.js +260 -318
- package/dist/src/cli/simple-commands/stream-processor.js +290 -315
- package/dist/src/cli/simple-commands/swarm-executor.js +189 -222
- package/dist/src/cli/simple-commands/swarm-metrics-integration.js +208 -300
- package/dist/src/cli/simple-commands/swarm-ui.js +623 -703
- package/dist/src/cli/simple-commands/swarm-webui-integration.js +258 -286
- package/dist/src/cli/simple-commands/swarm.js +887 -1082
- package/dist/src/cli/simple-commands/task.js +161 -206
- package/dist/src/cli/simple-commands/timestamp-fix.js +59 -89
- package/dist/src/cli/simple-commands/token-tracker.js +258 -316
- package/dist/src/cli/simple-commands/tool-execution-framework.js +433 -519
- package/dist/src/cli/simple-commands/train-and-stream.js +275 -331
- package/dist/src/cli/simple-commands/training-pipeline.js +619 -725
- package/dist/src/cli/simple-commands/training.js +170 -227
- package/dist/src/cli/simple-commands/verification-hooks.js +261 -284
- package/dist/src/cli/simple-commands/verification-integration.js +389 -417
- package/dist/src/cli/simple-commands/verification-training-integration.js +486 -606
- package/dist/src/cli/simple-commands/verification.js +493 -513
- package/dist/src/cli/simple-commands/web-server.js +766 -836
- package/dist/src/cli/simple-commands/webui-validator.js +106 -124
- package/dist/src/coordination/event-bus/demo-wasm-integration.js +212 -251
- package/dist/src/coordination/event-bus/qe-event-bus.js +608 -748
- package/dist/src/coordination/event-bus/qe-event-bus.test.js +379 -454
- package/dist/src/coordination/iteration-tracker.js +363 -454
- package/dist/src/enterprise/analytics-manager.js +1135 -0
- package/dist/src/enterprise/audit-manager.js +1115 -0
- package/dist/src/enterprise/cloud-manager.js +891 -0
- package/dist/src/enterprise/deployment-manager.js +966 -0
- package/dist/src/enterprise/index.js +6 -0
- package/dist/src/enterprise/project-manager.js +584 -0
- package/dist/src/enterprise/security-manager.js +991 -0
- package/dist/src/index.js +1 -1
- package/dist/src/mcp/DEPRECATED.js +46 -60
- package/dist/src/mcp/fixes/mcp-error-fixes.js +115 -134
- package/dist/src/mcp/implementations/agent-tracker.js +114 -128
- package/dist/src/mcp/implementations/daa-tools.js +292 -350
- package/dist/src/mcp/implementations/workflow-tools.js +329 -361
- package/dist/src/mcp/mcp-config-manager.js +1183 -1331
- package/dist/src/mcp/mcp-server-novice-simplified.js +11 -17
- package/dist/src/mcp/mcp-server-novice.js +11 -17
- package/dist/src/mcp/mcp-server-sdk.js +11 -17
- package/dist/src/mcp/mcp-server.js +1620 -1484
- package/dist/src/mcp/ruv-swarm-wrapper.js +209 -239
- package/dist/src/memory/advanced-serializer.js +609 -589
- package/dist/src/memory/enhanced-examples.js +220 -305
- package/dist/src/memory/enhanced-memory.js +295 -336
- package/dist/src/memory/enhanced-session-serializer.js +408 -492
- package/dist/src/memory/fallback-memory-system.js +900 -1021
- package/dist/src/memory/fallback-store.js +93 -131
- package/dist/src/memory/high-performance-serialization.js +592 -730
- package/dist/src/memory/in-memory-store.js +161 -213
- package/dist/src/memory/index.js +123 -157
- package/dist/src/memory/lock-free-structures.js +578 -764
- package/dist/src/memory/memory-mapped-persistence.js +585 -766
- package/dist/src/memory/memory-pressure-manager.js +569 -707
- package/dist/src/memory/migration.js +358 -445
- package/dist/src/memory/shared-memory.js +641 -768
- package/dist/src/memory/sqlite-store.js +245 -325
- package/dist/src/memory/sqlite-wrapper.js +122 -151
- package/dist/src/memory/swarm-memory.js +470 -603
- package/dist/src/memory/test-example.js +126 -134
- package/dist/src/memory/ultra-fast-memory-store.js +622 -821
- package/dist/src/memory/unified-memory-manager.js +356 -437
- package/dist/src/migration/index.js +92 -0
- package/dist/src/migration/logger.js +121 -0
- package/dist/src/migration/migration-analyzer.js +268 -0
- package/dist/src/migration/migration-runner.js +522 -0
- package/dist/src/migration/migration-validator.js +285 -0
- package/dist/src/migration/progress-reporter.js +150 -0
- package/dist/src/migration/rollback-manager.js +321 -0
- package/dist/src/migration/tests/migration-system.test.js +7 -0
- package/dist/src/migration/types.js +3 -0
- package/dist/src/swarm/CodeRefactoringSwarm.js +777 -952
- package/dist/src/swarm/__tests__/integration.test.js +227 -0
- package/dist/src/swarm/__tests__/prompt-copier.test.js +344 -0
- package/dist/src/swarm/advanced-orchestrator.js +1095 -0
- package/dist/src/swarm/claude-code-interface.js +961 -0
- package/dist/src/swarm/claude-flow-executor.js +229 -0
- package/dist/src/swarm/consensus-coordinator.js +475 -0
- package/dist/src/swarm/coordinator.js +2993 -0
- package/dist/src/swarm/direct-executor.js +1180 -0
- package/dist/src/swarm/error-recovery/advanced-error-detection.js +691 -0
- package/dist/src/swarm/error-recovery/automated-recovery-workflows.js +998 -0
- package/dist/src/swarm/error-recovery/error-recovery-coordinator.js +1197 -0
- package/dist/src/swarm/error-recovery/recovery-monitoring.js +772 -0
- package/dist/src/swarm/error-recovery/resilience-architecture.js +714 -0
- package/dist/src/swarm/error-recovery/self-healing-mechanisms.js +1319 -0
- package/dist/src/swarm/error-recovery/test-error-recovery-effectiveness.js +808 -0
- package/dist/src/swarm/executor-v2.js +322 -0
- package/dist/src/swarm/executor.js +815 -0
- package/dist/src/swarm/hive-mind-integration.js +703 -0
- package/dist/src/swarm/index.js +41 -0
- package/dist/src/swarm/json-output-aggregator.js +267 -0
- package/dist/src/swarm/large-scale-coordinator.js +542 -0
- package/dist/src/swarm/mcp-integration-wrapper.js +628 -0
- package/dist/src/swarm/memory.js +1117 -0
- package/dist/src/swarm/optimizations/__tests__/optimization.test.js +348 -0
- package/dist/src/swarm/optimizations/async-file-manager.js +285 -0
- package/dist/src/swarm/optimizations/circular-buffer.js +162 -0
- package/dist/src/swarm/optimizations/connection-pool.js +244 -0
- package/dist/src/swarm/optimizations/index.js +28 -0
- package/dist/src/swarm/optimizations/optimized-executor.js +320 -0
- package/dist/src/swarm/optimizations/ttl-map.js +234 -0
- package/dist/src/swarm/prompt-cli.js +200 -0
- package/dist/src/swarm/prompt-copier-enhanced.js +202 -0
- package/dist/src/swarm/prompt-copier.js +381 -0
- package/dist/src/swarm/prompt-manager.js +295 -0
- package/dist/src/swarm/prompt-utils.js +310 -0
- package/dist/src/swarm/result-aggregator.js +718 -0
- package/dist/src/swarm/sparc-executor.js +1568 -0
- package/dist/src/swarm/strategies/auto.js +758 -0
- package/dist/src/swarm/strategies/base.js +128 -0
- package/dist/src/swarm/strategies/research.js +914 -0
- package/dist/src/swarm/strategies/strategy-metrics-patch.js +2 -0
- package/dist/src/swarm/types.js +52 -0
- package/dist/src/swarm/workers/copy-worker.js +56 -0
- package/dist/src/utils/__tests__/github-cli-safety-wrapper.test.js +332 -400
- package/dist/src/utils/github-cli-safe.js +56 -64
- package/dist/src/utils/github-cli-safety-wrapper.js +451 -546
- package/dist/src/utils/npx-isolated-cache.js +104 -119
- package/dist/src/utils/preference-manager.js +622 -652
- package/dist/src/utils/timezone-utils.js +86 -105
- package/dist/src/validators/epic-config-schema.js +214 -0
- package/dist/src/validators/index.js +10 -0
- package/dist/src/validators/swarm-init-validator.js +259 -0
- package/dist/src/validators/todowrite-batching-validator.js +215 -0
- package/dist/src/validators/todowrite-integration.js +187 -0
- package/package.json +2 -2
|
@@ -1,338 +1,286 @@
|
|
|
1
1
|
// batch-manager.js - Batch configuration management utility
|
|
2
|
-
import { printSuccess, printError
|
|
3
|
-
import { promises as fs } from
|
|
4
|
-
import { PROJECT_TEMPLATES, ENVIRONMENT_CONFIGS } from
|
|
5
|
-
import { cwd, exit, existsSync } from '../node-compat.js';
|
|
6
|
-
|
|
2
|
+
import { printSuccess, printError } from "../utils.js";
|
|
3
|
+
import { promises as fs } from "fs";
|
|
4
|
+
import { PROJECT_TEMPLATES, ENVIRONMENT_CONFIGS } from "./init/batch-init.js";
|
|
7
5
|
export async function batchManagerCommand(subArgs, flags) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
6
|
+
const command = subArgs[0];
|
|
7
|
+
switch(command){
|
|
8
|
+
case 'create-config':
|
|
9
|
+
return await createBatchConfig(subArgs.slice(1), flags);
|
|
10
|
+
case 'validate-config':
|
|
11
|
+
return await validateBatchConfig(subArgs.slice(1), flags);
|
|
12
|
+
case 'list-templates':
|
|
13
|
+
return listTemplates();
|
|
14
|
+
case 'list-environments':
|
|
15
|
+
return listEnvironments();
|
|
16
|
+
case 'estimate':
|
|
17
|
+
return await estimateBatchOperation(subArgs.slice(1), flags);
|
|
18
|
+
case 'help':
|
|
19
|
+
default:
|
|
20
|
+
return showBatchManagerHelp();
|
|
21
|
+
}
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
async function createBatchConfig(args, flags) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
24
|
+
const outputFile = args[0] || 'batch-config.json';
|
|
25
|
+
const interactive = flags.interactive || flags.i;
|
|
26
|
+
if (interactive) {
|
|
27
|
+
return await createInteractiveConfig(outputFile);
|
|
28
|
+
}
|
|
29
|
+
// Create basic template
|
|
30
|
+
const config = {
|
|
31
|
+
projects: [
|
|
32
|
+
'project1',
|
|
33
|
+
'project2',
|
|
34
|
+
'project3'
|
|
35
|
+
],
|
|
36
|
+
baseOptions: {
|
|
37
|
+
sparc: true,
|
|
38
|
+
parallel: true,
|
|
39
|
+
maxConcurrency: 5,
|
|
40
|
+
template: 'web-api',
|
|
41
|
+
environments: [
|
|
42
|
+
'dev'
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
try {
|
|
47
|
+
await fs.writeFile(outputFile, JSON.stringify(config, null, 2, 'utf8'));
|
|
48
|
+
printSuccess(`Created batch configuration template: ${outputFile}`);
|
|
49
|
+
console.log('Edit the file to customize your batch initialization setup.');
|
|
50
|
+
} catch (error) {
|
|
51
|
+
printError(`Failed to create config file: ${error.message}`);
|
|
52
|
+
}
|
|
54
53
|
}
|
|
55
|
-
|
|
56
54
|
async function createInteractiveConfig(outputFile) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
minimal: false,
|
|
73
|
-
progressTracking: true,
|
|
74
|
-
},
|
|
75
|
-
|
|
76
|
-
projects: {
|
|
77
|
-
_simple_list: ['project1', 'project2', 'project3'],
|
|
78
|
-
_or_use_projectConfigs_below: 'for individual customization',
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
projectConfigs: {
|
|
82
|
-
'example-api': {
|
|
83
|
-
template: 'web-api',
|
|
84
|
-
environment: 'dev',
|
|
85
|
-
customConfig: {
|
|
86
|
-
database: 'postgresql',
|
|
87
|
-
auth: 'jwt',
|
|
55
|
+
console.log('🚀 Interactive Batch Configuration Creator');
|
|
56
|
+
console.log('==========================================\n');
|
|
57
|
+
// This would require a proper CLI prompt library in a real implementation
|
|
58
|
+
// For now, we'll create a comprehensive template with comments
|
|
59
|
+
const config = {
|
|
60
|
+
_comment: 'Batch initialization configuration',
|
|
61
|
+
_templates: Object.keys(PROJECT_TEMPLATES),
|
|
62
|
+
_environments: Object.keys(ENVIRONMENT_CONFIGS),
|
|
63
|
+
baseOptions: {
|
|
64
|
+
sparc: true,
|
|
65
|
+
parallel: true,
|
|
66
|
+
maxConcurrency: 5,
|
|
67
|
+
force: false,
|
|
68
|
+
minimal: false,
|
|
69
|
+
progressTracking: true
|
|
88
70
|
},
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
71
|
+
projects: {
|
|
72
|
+
_simple_list: [
|
|
73
|
+
'project1',
|
|
74
|
+
'project2',
|
|
75
|
+
'project3'
|
|
76
|
+
],
|
|
77
|
+
_or_use_projectConfigs_below: 'for individual customization'
|
|
96
78
|
},
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
79
|
+
projectConfigs: {
|
|
80
|
+
'example-api': {
|
|
81
|
+
template: 'web-api',
|
|
82
|
+
environment: 'dev',
|
|
83
|
+
customConfig: {
|
|
84
|
+
database: 'postgresql',
|
|
85
|
+
auth: 'jwt'
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
'example-frontend': {
|
|
89
|
+
template: 'react-app',
|
|
90
|
+
environment: 'dev',
|
|
91
|
+
customConfig: {
|
|
92
|
+
ui: 'material-ui',
|
|
93
|
+
state: 'redux'
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
try {
|
|
99
|
+
await fs.writeFile(outputFile, JSON.stringify(config, null, 2, 'utf8'));
|
|
100
|
+
printSuccess(`Created interactive batch configuration: ${outputFile}`);
|
|
101
|
+
console.log('\nNext steps:');
|
|
102
|
+
console.log('1. Edit the configuration file to match your needs');
|
|
103
|
+
console.log('2. Remove the "_comment" and example entries');
|
|
104
|
+
console.log('3. Use either "projects" array OR "projectConfigs" object');
|
|
105
|
+
console.log(`4. Run: claude-flow-novice init --config ${outputFile}`);
|
|
106
|
+
} catch (error) {
|
|
107
|
+
printError(`Failed to create interactive config: ${error.message}`);
|
|
108
|
+
}
|
|
112
109
|
}
|
|
113
|
-
|
|
114
110
|
async function validateBatchConfig(args, flags) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
try {
|
|
123
|
-
const content = await fs.readFile(configFile, 'utf8');
|
|
124
|
-
const config = JSON.parse(content);
|
|
125
|
-
|
|
126
|
-
console.log(`📋 Validating batch configuration: ${configFile}`);
|
|
127
|
-
console.log('================================================\n');
|
|
128
|
-
|
|
129
|
-
const issues = [];
|
|
130
|
-
const warnings = [];
|
|
131
|
-
|
|
132
|
-
// Validate structure
|
|
133
|
-
if (!config.projects && !config.projectConfigs) {
|
|
134
|
-
issues.push('Missing "projects" array or "projectConfigs" object');
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (config.projects && config.projectConfigs) {
|
|
138
|
-
warnings.push(
|
|
139
|
-
'Both "projects" and "projectConfigs" specified. "projectConfigs" will take precedence.',
|
|
140
|
-
);
|
|
111
|
+
const configFile = args[0];
|
|
112
|
+
if (!configFile) {
|
|
113
|
+
printError('Please specify a configuration file to validate');
|
|
114
|
+
return;
|
|
141
115
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
issues.push(
|
|
153
|
-
`Unknown template: ${template}. Available: ${Object.keys(PROJECT_TEMPLATES).join(', ')}`,
|
|
154
|
-
);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
if (environments) {
|
|
158
|
-
for (const env of environments) {
|
|
159
|
-
if (!ENVIRONMENT_CONFIGS[env]) {
|
|
160
|
-
issues.push(
|
|
161
|
-
`Unknown environment: ${env}. Available: ${Object.keys(ENVIRONMENT_CONFIGS).join(', ')}`,
|
|
162
|
-
);
|
|
163
|
-
}
|
|
116
|
+
try {
|
|
117
|
+
const content = await fs.readFile(configFile, 'utf8');
|
|
118
|
+
const config = JSON.parse(content);
|
|
119
|
+
console.log(`📋 Validating batch configuration: ${configFile}`);
|
|
120
|
+
console.log('================================================\n');
|
|
121
|
+
const issues = [];
|
|
122
|
+
const warnings = [];
|
|
123
|
+
// Validate structure
|
|
124
|
+
if (!config.projects && !config.projectConfigs) {
|
|
125
|
+
issues.push('Missing "projects" array or "projectConfigs" object');
|
|
164
126
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
// Validate project configs
|
|
169
|
-
if (config.projectConfigs) {
|
|
170
|
-
for (const [projectName, projectConfig] of Object.entries(config.projectConfigs)) {
|
|
171
|
-
if (projectConfig.template && !PROJECT_TEMPLATES[projectConfig.template]) {
|
|
172
|
-
issues.push(`Project ${projectName}: Unknown template ${projectConfig.template}`);
|
|
127
|
+
if (config.projects && config.projectConfigs) {
|
|
128
|
+
warnings.push('Both "projects" and "projectConfigs" specified. "projectConfigs" will take precedence.');
|
|
173
129
|
}
|
|
174
|
-
|
|
175
|
-
if (
|
|
176
|
-
|
|
130
|
+
// Validate base options
|
|
131
|
+
if (config.baseOptions) {
|
|
132
|
+
const { maxConcurrency, template, environments } = config.baseOptions;
|
|
133
|
+
if (maxConcurrency && (maxConcurrency < 1 || maxConcurrency > 20)) {
|
|
134
|
+
issues.push('maxConcurrency must be between 1 and 20');
|
|
135
|
+
}
|
|
136
|
+
if (template && !PROJECT_TEMPLATES[template]) {
|
|
137
|
+
issues.push(`Unknown template: ${template}. Available: ${Object.keys(PROJECT_TEMPLATES).join(', ')}`);
|
|
138
|
+
}
|
|
139
|
+
if (environments) {
|
|
140
|
+
for (const env of environments){
|
|
141
|
+
if (!ENVIRONMENT_CONFIGS[env]) {
|
|
142
|
+
issues.push(`Unknown environment: ${env}. Available: ${Object.keys(ENVIRONMENT_CONFIGS).join(', ')}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Validate project configs
|
|
148
|
+
if (config.projectConfigs) {
|
|
149
|
+
for (const [projectName, projectConfig] of Object.entries(config.projectConfigs)){
|
|
150
|
+
if (projectConfig.template && !PROJECT_TEMPLATES[projectConfig.template]) {
|
|
151
|
+
issues.push(`Project ${projectName}: Unknown template ${projectConfig.template}`);
|
|
152
|
+
}
|
|
153
|
+
if (projectConfig.environment && !ENVIRONMENT_CONFIGS[projectConfig.environment]) {
|
|
154
|
+
issues.push(`Project ${projectName}: Unknown environment ${projectConfig.environment}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Report results
|
|
159
|
+
if (issues.length === 0) {
|
|
160
|
+
printSuccess('✅ Configuration is valid!');
|
|
161
|
+
if (warnings.length > 0) {
|
|
162
|
+
console.log('\n⚠️ Warnings:');
|
|
163
|
+
warnings.forEach((warning)=>console.log(` - ${warning}`));
|
|
164
|
+
}
|
|
165
|
+
// Summary
|
|
166
|
+
console.log('\n📊 Configuration Summary:');
|
|
167
|
+
const projectCount = config.projects ? config.projects.length : config.projectConfigs ? Object.keys(config.projectConfigs).length : 0;
|
|
168
|
+
console.log(` Projects: ${projectCount}`);
|
|
169
|
+
if (config.baseOptions) {
|
|
170
|
+
console.log(` Parallel: ${config.baseOptions.parallel ? 'Yes' : 'No'}`);
|
|
171
|
+
console.log(` Max Concurrency: ${config.baseOptions.maxConcurrency || 5}`);
|
|
172
|
+
console.log(` SPARC: ${config.baseOptions.sparc ? 'Enabled' : 'Disabled'}`);
|
|
173
|
+
console.log(` Template: ${config.baseOptions.template || 'default'}`);
|
|
174
|
+
}
|
|
175
|
+
} else {
|
|
176
|
+
printError('❌ Configuration has issues:');
|
|
177
|
+
issues.forEach((issue)=>console.error(` - ${issue}`));
|
|
178
|
+
if (warnings.length > 0) {
|
|
179
|
+
console.log('\n⚠️ Warnings:');
|
|
180
|
+
warnings.forEach((warning)=>console.log(` - ${warning}`));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
} catch (error) {
|
|
184
|
+
if (error instanceof Deno.errors.NotFound) {
|
|
185
|
+
printError(`Configuration file not found: ${configFile}`);
|
|
186
|
+
} else if (error instanceof SyntaxError) {
|
|
187
|
+
printError(`Invalid JSON in configuration file: ${error.message}`);
|
|
188
|
+
} else {
|
|
189
|
+
printError(`Failed to validate configuration: ${error.message}`);
|
|
177
190
|
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// Report results
|
|
182
|
-
if (issues.length === 0) {
|
|
183
|
-
printSuccess('✅ Configuration is valid!');
|
|
184
|
-
|
|
185
|
-
if (warnings.length > 0) {
|
|
186
|
-
console.log('\n⚠️ Warnings:');
|
|
187
|
-
warnings.forEach((warning) => console.log(` - ${warning}`));
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// Summary
|
|
191
|
-
console.log('\n📊 Configuration Summary:');
|
|
192
|
-
const projectCount = config.projects
|
|
193
|
-
? config.projects.length
|
|
194
|
-
: config.projectConfigs
|
|
195
|
-
? Object.keys(config.projectConfigs).length
|
|
196
|
-
: 0;
|
|
197
|
-
console.log(` Projects: ${projectCount}`);
|
|
198
|
-
|
|
199
|
-
if (config.baseOptions) {
|
|
200
|
-
console.log(` Parallel: ${config.baseOptions.parallel ? 'Yes' : 'No'}`);
|
|
201
|
-
console.log(` Max Concurrency: ${config.baseOptions.maxConcurrency || 5}`);
|
|
202
|
-
console.log(` SPARC: ${config.baseOptions.sparc ? 'Enabled' : 'Disabled'}`);
|
|
203
|
-
console.log(` Template: ${config.baseOptions.template || 'default'}`);
|
|
204
|
-
}
|
|
205
|
-
} else {
|
|
206
|
-
printError('❌ Configuration has issues:');
|
|
207
|
-
issues.forEach((issue) => console.error(` - ${issue}`));
|
|
208
|
-
|
|
209
|
-
if (warnings.length > 0) {
|
|
210
|
-
console.log('\n⚠️ Warnings:');
|
|
211
|
-
warnings.forEach((warning) => console.log(` - ${warning}`));
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
} catch (error) {
|
|
215
|
-
if (error instanceof Deno.errors.NotFound) {
|
|
216
|
-
printError(`Configuration file not found: ${configFile}`);
|
|
217
|
-
} else if (error instanceof SyntaxError) {
|
|
218
|
-
printError(`Invalid JSON in configuration file: ${error.message}`);
|
|
219
|
-
} else {
|
|
220
|
-
printError(`Failed to validate configuration: ${error.message}`);
|
|
221
191
|
}
|
|
222
|
-
}
|
|
223
192
|
}
|
|
224
|
-
|
|
225
193
|
function listTemplates() {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
);
|
|
237
|
-
console.log();
|
|
238
|
-
}
|
|
194
|
+
console.log('📋 Available Project Templates');
|
|
195
|
+
console.log('==============================\n');
|
|
196
|
+
for (const [key, template] of Object.entries(PROJECT_TEMPLATES)){
|
|
197
|
+
console.log(`🏗️ ${key}`);
|
|
198
|
+
console.log(` Name: ${template.name}`);
|
|
199
|
+
console.log(` Description: ${template.description}`);
|
|
200
|
+
console.log(` Extra Directories: ${template.extraDirs ? template.extraDirs.length : 0}`);
|
|
201
|
+
console.log(` Extra Files: ${template.extraFiles ? Object.keys(template.extraFiles).length : 0}`);
|
|
202
|
+
console.log();
|
|
203
|
+
}
|
|
239
204
|
}
|
|
240
|
-
|
|
241
205
|
function listEnvironments() {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
}
|
|
206
|
+
console.log('🌍 Available Environment Configurations');
|
|
207
|
+
console.log('=======================================\n');
|
|
208
|
+
for (const [key, env] of Object.entries(ENVIRONMENT_CONFIGS)){
|
|
209
|
+
console.log(`⚙️ ${key}`);
|
|
210
|
+
console.log(` Name: ${env.name}`);
|
|
211
|
+
console.log(` Features: ${env.features.join(', ')}`);
|
|
212
|
+
console.log(` Config Variables: ${Object.keys(env.config).length}`);
|
|
213
|
+
console.log();
|
|
214
|
+
}
|
|
252
215
|
}
|
|
253
|
-
|
|
254
216
|
async function estimateBatchOperation(args, flags) {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
217
|
+
const configFile = args[0];
|
|
218
|
+
if (!configFile) {
|
|
219
|
+
printError('Please specify a configuration file to estimate');
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
try {
|
|
223
|
+
const content = await fs.readFile(configFile, 'utf8');
|
|
224
|
+
const config = JSON.parse(content);
|
|
225
|
+
console.log('⏱️ Batch Operation Estimation');
|
|
226
|
+
console.log('=============================\n');
|
|
227
|
+
let projectCount = 0;
|
|
228
|
+
let totalEnvironments = 0;
|
|
229
|
+
if (config.projects) {
|
|
230
|
+
projectCount = config.projects.length;
|
|
231
|
+
const environments = config.baseOptions?.environments || [
|
|
232
|
+
'dev'
|
|
233
|
+
];
|
|
234
|
+
totalEnvironments = projectCount * environments.length;
|
|
235
|
+
} else if (config.projectConfigs) {
|
|
236
|
+
projectCount = Object.keys(config.projectConfigs).length;
|
|
237
|
+
totalEnvironments = projectCount; // Each project has its own environment
|
|
238
|
+
}
|
|
239
|
+
const parallel = config.baseOptions?.parallel !== false;
|
|
240
|
+
const maxConcurrency = config.baseOptions?.maxConcurrency || 5;
|
|
241
|
+
const avgTimePerProject = 15; // seconds estimate
|
|
242
|
+
const sequentialTime = totalEnvironments * avgTimePerProject;
|
|
243
|
+
const parallelTime = parallel ? Math.ceil(totalEnvironments / maxConcurrency) * avgTimePerProject : sequentialTime;
|
|
244
|
+
console.log(`📊 Project Count: ${projectCount}`);
|
|
245
|
+
console.log(`🌍 Total Environments: ${totalEnvironments}`);
|
|
246
|
+
console.log(`⚡ Parallel Processing: ${parallel ? 'Enabled' : 'Disabled'}`);
|
|
247
|
+
console.log(`🔄 Max Concurrency: ${maxConcurrency}`);
|
|
248
|
+
console.log();
|
|
249
|
+
console.log(`⏱️ Estimated Time:`);
|
|
250
|
+
console.log(` Sequential: ~${Math.ceil(sequentialTime / 60)} minutes`);
|
|
251
|
+
console.log(` Parallel: ~${Math.ceil(parallelTime / 60)} minutes`);
|
|
252
|
+
console.log(` Time Savings: ${Math.ceil((sequentialTime - parallelTime) / 60)} minutes`);
|
|
253
|
+
console.log();
|
|
254
|
+
console.log(`💾 Estimated Disk Usage:`);
|
|
255
|
+
console.log(` Per Project: ~50-200 MB`);
|
|
256
|
+
console.log(` Total: ~${Math.ceil(totalEnvironments * 125 / 1024)} GB`);
|
|
257
|
+
} catch (error) {
|
|
258
|
+
printError(`Failed to estimate batch operation: ${error.message}`);
|
|
279
259
|
}
|
|
280
|
-
|
|
281
|
-
const parallel = config.baseOptions?.parallel !== false;
|
|
282
|
-
const maxConcurrency = config.baseOptions?.maxConcurrency || 5;
|
|
283
|
-
const avgTimePerProject = 15; // seconds estimate
|
|
284
|
-
|
|
285
|
-
const sequentialTime = totalEnvironments * avgTimePerProject;
|
|
286
|
-
const parallelTime = parallel
|
|
287
|
-
? Math.ceil(totalEnvironments / maxConcurrency) * avgTimePerProject
|
|
288
|
-
: sequentialTime;
|
|
289
|
-
|
|
290
|
-
console.log(`📊 Project Count: ${projectCount}`);
|
|
291
|
-
console.log(`🌍 Total Environments: ${totalEnvironments}`);
|
|
292
|
-
console.log(`⚡ Parallel Processing: ${parallel ? 'Enabled' : 'Disabled'}`);
|
|
293
|
-
console.log(`🔄 Max Concurrency: ${maxConcurrency}`);
|
|
294
|
-
console.log();
|
|
295
|
-
console.log(`⏱️ Estimated Time:`);
|
|
296
|
-
console.log(` Sequential: ~${Math.ceil(sequentialTime / 60)} minutes`);
|
|
297
|
-
console.log(` Parallel: ~${Math.ceil(parallelTime / 60)} minutes`);
|
|
298
|
-
console.log(` Time Savings: ${Math.ceil((sequentialTime - parallelTime) / 60)} minutes`);
|
|
299
|
-
console.log();
|
|
300
|
-
console.log(`💾 Estimated Disk Usage:`);
|
|
301
|
-
console.log(` Per Project: ~50-200 MB`);
|
|
302
|
-
console.log(` Total: ~${Math.ceil((totalEnvironments * 125) / 1024)} GB`);
|
|
303
|
-
} catch (error) {
|
|
304
|
-
printError(`Failed to estimate batch operation: ${error.message}`);
|
|
305
|
-
}
|
|
306
260
|
}
|
|
307
|
-
|
|
308
261
|
function showBatchManagerHelp() {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
console.log(' claude-flow-novice batch list-environments\n');
|
|
334
|
-
|
|
335
|
-
console.log('INTEGRATION:');
|
|
336
|
-
console.log(' Use created configs with: claude-flow-novice init --config <file>');
|
|
337
|
-
console.log(' Or batch init directly: claude-flow-novice init --batch-init project1,project2');
|
|
262
|
+
console.log('🛠️ Batch Manager - Configuration and Estimation Tools');
|
|
263
|
+
console.log('====================================================\n');
|
|
264
|
+
console.log('USAGE:');
|
|
265
|
+
console.log(' claude-flow-novice batch <command> [options]\n');
|
|
266
|
+
console.log('COMMANDS:');
|
|
267
|
+
console.log(' create-config [file] Create batch configuration template');
|
|
268
|
+
console.log(' validate-config <file> Validate batch configuration file');
|
|
269
|
+
console.log(' list-templates Show available project templates');
|
|
270
|
+
console.log(' list-environments Show available environment configs');
|
|
271
|
+
console.log(' estimate <config> Estimate time and resources for batch operation');
|
|
272
|
+
console.log(' help Show this help message\n');
|
|
273
|
+
console.log('OPTIONS:');
|
|
274
|
+
console.log(' --interactive, -i Create interactive configuration');
|
|
275
|
+
console.log(' --help, -h Show command help\n');
|
|
276
|
+
console.log('EXAMPLES:');
|
|
277
|
+
console.log(' claude-flow-novice batch create-config my-batch.json');
|
|
278
|
+
console.log(' claude-flow-novice batch create-config --interactive');
|
|
279
|
+
console.log(' claude-flow-novice batch validate-config my-batch.json');
|
|
280
|
+
console.log(' claude-flow-novice batch estimate my-batch.json');
|
|
281
|
+
console.log(' claude-flow-novice batch list-templates');
|
|
282
|
+
console.log(' claude-flow-novice batch list-environments\n');
|
|
283
|
+
console.log('INTEGRATION:');
|
|
284
|
+
console.log(' Use created configs with: claude-flow-novice init --config <file>');
|
|
285
|
+
console.log(' Or batch init directly: claude-flow-novice init --batch-init project1,project2');
|
|
338
286
|
}
|