claude-flow-novice 2.0.4 ā 2.0.5
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 +668 -487
- package/dist/src/cli/commands/index-validate.js +29 -18
- package/dist/src/cli/commands/mcp-troubleshoot.js +282 -230
- package/dist/src/cli/commands/neural-goal-init.js +125 -92
- package/dist/src/cli/commands/swarm-exec.js +393 -317
- package/dist/src/cli/commands/validate-framework.js +1100 -983
- package/dist/src/cli/commands/validate.js +223 -144
- package/dist/src/cli/main.js +1 -1
- package/dist/src/cli/simple-commands/__tests__/agent.test.js +277 -265
- package/dist/src/cli/simple-commands/__tests__/memory.test.js +7 -6
- package/dist/src/cli/simple-commands/__tests__/swarm.test.js +356 -373
- package/dist/src/cli/simple-commands/__tests__/task.test.js +7 -6
- package/dist/src/cli/simple-commands/agent.js +193 -157
- package/dist/src/cli/simple-commands/analysis.js +446 -336
- package/dist/src/cli/simple-commands/automation-executor.js +1339 -1095
- package/dist/src/cli/simple-commands/automation.js +469 -481
- package/dist/src/cli/simple-commands/batch-manager.js +313 -261
- package/dist/src/cli/simple-commands/claude-telemetry.js +267 -241
- package/dist/src/cli/simple-commands/claude-track.js +90 -68
- package/dist/src/cli/simple-commands/concurrent-display.js +320 -266
- package/dist/src/cli/simple-commands/config.js +290 -245
- package/dist/src/cli/simple-commands/coordination.js +234 -182
- package/dist/src/cli/simple-commands/enhanced-ui-views.js +615 -812
- package/dist/src/cli/simple-commands/enhanced-webui-complete.js +981 -922
- package/dist/src/cli/simple-commands/fix-hook-variables.js +294 -274
- package/dist/src/cli/simple-commands/github/gh-coordinator.js +457 -378
- package/dist/src/cli/simple-commands/github/github-api.js +574 -535
- package/dist/src/cli/simple-commands/github/init.js +303 -276
- package/dist/src/cli/simple-commands/github.js +247 -222
- package/dist/src/cli/simple-commands/goal.js +63 -51
- package/dist/src/cli/simple-commands/hive-mind/auto-save-middleware.js +278 -208
- package/dist/src/cli/simple-commands/hive-mind/communication.js +696 -601
- package/dist/src/cli/simple-commands/hive-mind/core.js +979 -907
- package/dist/src/cli/simple-commands/hive-mind/db-optimizer.js +655 -406
- package/dist/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1245 -1125
- package/dist/src/cli/simple-commands/hive-mind/memory.js +1090 -854
- package/dist/src/cli/simple-commands/hive-mind/performance-optimizer.js +574 -459
- package/dist/src/cli/simple-commands/hive-mind/performance-test.js +347 -263
- package/dist/src/cli/simple-commands/hive-mind/queen.js +768 -727
- package/dist/src/cli/simple-commands/hive-mind/session-manager.js +1049 -745
- package/dist/src/cli/simple-commands/hive-mind-optimize.js +283 -227
- package/dist/src/cli/simple-commands/hive-mind-wizard.js +217 -174
- package/dist/src/cli/simple-commands/hive-mind.js +2282 -1841
- package/dist/src/cli/simple-commands/hive.js +79 -90
- package/dist/src/cli/simple-commands/hook-safety.js +521 -431
- package/dist/src/cli/simple-commands/hooks/session-start-soul.js +254 -203
- package/dist/src/cli/simple-commands/hooks.js +1204 -1064
- package/dist/src/cli/simple-commands/init/agent-copier.js +319 -294
- package/dist/src/cli/simple-commands/init/batch-init.js +562 -496
- package/dist/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +19 -13
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +19 -13
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +88 -61
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +150 -125
- package/dist/src/cli/simple-commands/init/claude-commands/slash-commands.js +49 -42
- package/dist/src/cli/simple-commands/init/claude-commands/sparc-commands.js +61 -43
- package/dist/src/cli/simple-commands/init/copy-revised-templates.js +147 -141
- package/dist/src/cli/simple-commands/init/executable-wrapper.js +44 -31
- package/dist/src/cli/simple-commands/init/gitignore-updater.js +90 -64
- package/dist/src/cli/simple-commands/init/help.js +107 -104
- package/dist/src/cli/simple-commands/init/hive-mind-init.js +528 -509
- package/dist/src/cli/simple-commands/init/index.js +1759 -1510
- package/dist/src/cli/simple-commands/init/performance-monitor.js +317 -234
- package/dist/src/cli/simple-commands/init/rollback/backup-manager.js +504 -441
- package/dist/src/cli/simple-commands/init/rollback/index.js +364 -289
- package/dist/src/cli/simple-commands/init/rollback/recovery-manager.js +728 -652
- package/dist/src/cli/simple-commands/init/rollback/rollback-executor.js +481 -416
- package/dist/src/cli/simple-commands/init/rollback/state-tracker.js +448 -369
- package/dist/src/cli/simple-commands/init/sparc/roo-readme.js +2 -1
- package/dist/src/cli/simple-commands/init/sparc/roomodes-config.js +99 -122
- package/dist/src/cli/simple-commands/init/sparc/workflows.js +37 -32
- package/dist/src/cli/simple-commands/init/sparc-structure.js +62 -55
- package/dist/src/cli/simple-commands/init/template-copier.js +533 -421
- package/dist/src/cli/simple-commands/init/templates/coordination-md.js +6 -3
- package/dist/src/cli/simple-commands/init/templates/enhanced-templates.js +318 -344
- package/dist/src/cli/simple-commands/init/templates/github-safe-enhanced.js +218 -173
- package/dist/src/cli/simple-commands/init/templates/github-safe.js +75 -65
- package/dist/src/cli/simple-commands/init/templates/memory-bank-md.js +6 -3
- package/dist/src/cli/simple-commands/init/templates/readme-files.js +4 -2
- package/dist/src/cli/simple-commands/init/templates/safe-hook-patterns.js +230 -187
- package/dist/src/cli/simple-commands/init/templates/sparc-modes.js +80 -53
- package/dist/src/cli/simple-commands/init/templates/verification-claude-md.js +85 -101
- package/dist/src/cli/simple-commands/init/validation/config-validator.js +330 -283
- package/dist/src/cli/simple-commands/init/validation/health-checker.js +561 -495
- package/dist/src/cli/simple-commands/init/validation/index.js +358 -302
- package/dist/src/cli/simple-commands/init/validation/mode-validator.js +359 -308
- package/dist/src/cli/simple-commands/init/validation/post-init-validator.js +366 -389
- package/dist/src/cli/simple-commands/init/validation/pre-init-validator.js +268 -270
- package/dist/src/cli/simple-commands/init/validation/test-runner.js +447 -427
- package/dist/src/cli/simple-commands/init.js +2 -1
- package/dist/src/cli/simple-commands/mcp-health.js +158 -131
- package/dist/src/cli/simple-commands/mcp-integration-layer.js +634 -533
- package/dist/src/cli/simple-commands/mcp.js +400 -345
- package/dist/src/cli/simple-commands/memory-consolidation.js +537 -426
- package/dist/src/cli/simple-commands/memory.js +311 -247
- package/dist/src/cli/simple-commands/migrate-hooks.js +46 -39
- package/dist/src/cli/simple-commands/monitor.js +363 -294
- package/dist/src/cli/simple-commands/neural.js +65 -51
- package/dist/src/cli/simple-commands/pair-autofix-only.js +662 -538
- package/dist/src/cli/simple-commands/pair-basic.js +656 -528
- package/dist/src/cli/simple-commands/pair-old.js +543 -430
- package/dist/src/cli/simple-commands/pair-working.js +751 -615
- package/dist/src/cli/simple-commands/pair.js +751 -615
- package/dist/src/cli/simple-commands/performance-hooks.js +111 -83
- package/dist/src/cli/simple-commands/performance-metrics.js +433 -348
- package/dist/src/cli/simple-commands/process-ui-enhanced.js +787 -708
- package/dist/src/cli/simple-commands/process-ui.js +254 -230
- package/dist/src/cli/simple-commands/realtime-update-system.js +611 -525
- package/dist/src/cli/simple-commands/sparc/architecture.js +1530 -1704
- package/dist/src/cli/simple-commands/sparc/commands.js +516 -438
- package/dist/src/cli/simple-commands/sparc/completion.js +1481 -1224
- package/dist/src/cli/simple-commands/sparc/coordinator.js +978 -913
- package/dist/src/cli/simple-commands/sparc/index.js +298 -241
- package/dist/src/cli/simple-commands/sparc/phase-base.js +390 -314
- package/dist/src/cli/simple-commands/sparc/pseudocode.js +869 -965
- package/dist/src/cli/simple-commands/sparc/refinement.js +1273 -980
- package/dist/src/cli/simple-commands/sparc/specification.js +645 -559
- 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 +55 -47
- 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 +87 -101
- 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 +493 -465
- package/dist/src/cli/simple-commands/start-ui.js +132 -108
- package/dist/src/cli/simple-commands/start-wrapper.js +268 -240
- package/dist/src/cli/simple-commands/start.js +1 -1
- package/dist/src/cli/simple-commands/status.js +275 -254
- package/dist/src/cli/simple-commands/stream-chain-clean.js +171 -128
- package/dist/src/cli/simple-commands/stream-chain-fixed.js +82 -61
- package/dist/src/cli/simple-commands/stream-chain-real.js +331 -267
- package/dist/src/cli/simple-commands/stream-chain-working.js +263 -211
- package/dist/src/cli/simple-commands/stream-chain.js +318 -260
- package/dist/src/cli/simple-commands/stream-processor.js +315 -290
- package/dist/src/cli/simple-commands/swarm-executor.js +222 -189
- package/dist/src/cli/simple-commands/swarm-metrics-integration.js +300 -208
- package/dist/src/cli/simple-commands/swarm-ui.js +703 -623
- package/dist/src/cli/simple-commands/swarm-webui-integration.js +286 -258
- package/dist/src/cli/simple-commands/swarm.js +1082 -887
- package/dist/src/cli/simple-commands/task.js +206 -161
- package/dist/src/cli/simple-commands/timestamp-fix.js +89 -59
- package/dist/src/cli/simple-commands/token-tracker.js +316 -258
- package/dist/src/cli/simple-commands/tool-execution-framework.js +519 -433
- package/dist/src/cli/simple-commands/train-and-stream.js +331 -275
- package/dist/src/cli/simple-commands/training-pipeline.js +725 -619
- package/dist/src/cli/simple-commands/training.js +227 -170
- package/dist/src/cli/simple-commands/verification-hooks.js +284 -261
- package/dist/src/cli/simple-commands/verification-integration.js +417 -389
- package/dist/src/cli/simple-commands/verification-training-integration.js +606 -486
- package/dist/src/cli/simple-commands/verification.js +513 -493
- package/dist/src/cli/simple-commands/web-server.js +836 -766
- package/dist/src/cli/simple-commands/webui-validator.js +124 -106
- package/dist/src/coordination/byzantine-memory-channels.js +25 -1
- package/dist/src/coordination/event-bus/demo-wasm-integration.js +251 -212
- package/dist/src/coordination/event-bus/qe-event-bus.js +748 -608
- package/dist/src/coordination/event-bus/qe-event-bus.test.js +454 -379
- package/dist/src/coordination/iteration-tracker.js +454 -363
- package/dist/src/index.js +384 -35
- package/dist/src/mcp/DEPRECATED.js +60 -46
- package/dist/src/mcp/fixes/mcp-error-fixes.js +134 -115
- package/dist/src/mcp/implementations/agent-tracker.js +128 -114
- package/dist/src/mcp/implementations/daa-tools.js +350 -292
- package/dist/src/mcp/implementations/workflow-tools.js +361 -329
- package/dist/src/mcp/mcp-config-manager.js +1331 -1183
- package/dist/src/mcp/mcp-server-novice-simplified.js +17 -11
- package/dist/src/mcp/mcp-server-novice.js +17 -11
- package/dist/src/mcp/mcp-server-sdk.js +17 -11
- package/dist/src/mcp/mcp-server.js +1484 -1620
- package/dist/src/mcp/ruv-swarm-wrapper.js +239 -209
- package/dist/src/memory/advanced-serializer.js +589 -609
- package/dist/src/memory/enhanced-examples.js +305 -220
- package/dist/src/memory/enhanced-memory.js +336 -295
- package/dist/src/memory/enhanced-session-serializer.js +492 -408
- package/dist/src/memory/fallback-memory-system.js +1021 -900
- package/dist/src/memory/fallback-store.js +131 -93
- package/dist/src/memory/high-performance-serialization.js +730 -592
- package/dist/src/memory/in-memory-store.js +213 -161
- package/dist/src/memory/index.js +157 -123
- package/dist/src/memory/lock-free-structures.js +764 -578
- package/dist/src/memory/memory-mapped-persistence.js +766 -585
- package/dist/src/memory/memory-pressure-manager.js +707 -569
- package/dist/src/memory/migration.js +445 -358
- package/dist/src/memory/shared-memory.js +768 -641
- package/dist/src/memory/sqlite-store.js +325 -245
- package/dist/src/memory/sqlite-wrapper.js +151 -122
- package/dist/src/memory/swarm-memory.js +603 -470
- package/dist/src/memory/test-example.js +134 -126
- package/dist/src/memory/ultra-fast-memory-store.js +821 -622
- package/dist/src/memory/unified-memory-manager.js +437 -356
- package/dist/src/swarm/CodeRefactoringSwarm.js +952 -777
- package/dist/src/utils/__tests__/github-cli-safety-wrapper.test.js +400 -332
- package/dist/src/utils/error-handler.js +2 -36
- package/dist/src/utils/github-cli-safe.js +64 -56
- package/dist/src/utils/github-cli-safety-wrapper.js +546 -451
- package/dist/src/utils/npx-isolated-cache.js +119 -104
- package/dist/src/utils/preference-manager.js +652 -622
- package/dist/src/utils/timezone-utils.js +105 -86
- package/dist/src/web/api/apm-routes.js +353 -0
- package/dist/src/web/api/config/api-config.js +184 -0
- package/dist/src/web/api/middleware/auth.js +203 -0
- package/dist/src/web/api/middleware/cache.js +273 -0
- package/dist/src/web/api/middleware/error-handler.js +257 -0
- package/dist/src/web/api/middleware/request-logger.js +215 -0
- package/dist/src/web/api/middleware/validation.js +323 -0
- package/dist/src/web/api/routes/events.js +463 -0
- package/dist/src/web/api/routes/hierarchy.js +300 -0
- package/dist/src/web/api/routes/index.js +12 -0
- package/dist/src/web/api/routes/metrics.js +559 -0
- package/dist/src/web/api/routes/parallel-status.js +359 -0
- package/dist/src/web/api/routes/status.js +448 -0
- package/dist/src/web/api/server.js +462 -0
- package/dist/src/web/dashboard/hooks/useWebSocket.js +383 -0
- package/dist/src/web/dashboard/index.js +85 -0
- package/dist/src/web/dashboard/realtime/CustomSyncManager.js +439 -0
- package/dist/src/web/dashboard/realtime/NativeWebSocketManager.js +323 -0
- package/dist/src/web/dashboard/realtime/PerformanceBenchmark.js +527 -0
- package/dist/src/web/dashboard/realtime/RealtimeCommunicationManager.js +474 -0
- package/dist/src/web/dashboard/realtime/RealtimeServer.js +666 -0
- package/dist/src/web/dashboard/realtime/SSEManager.js +426 -0
- package/dist/src/web/dashboard/types.js +4 -0
- package/dist/src/web/messaging/agent-status-tracker.js +453 -0
- package/dist/src/web/messaging/human-intervention-system.js +305 -0
- package/dist/src/web/messaging/message-filter.js +302 -0
- package/dist/src/web/messaging/swarm-message-router.js +324 -0
- package/dist/src/web/messaging/transparency-logger.js +421 -0
- package/dist/src/web/portal-server.js +460 -0
- package/dist/src/web/server.js +322 -0
- package/dist/src/web/websocket/apm-websocket-handler.js +453 -0
- package/dist/src/web/websocket/websocket-manager.js +780 -0
- package/package.json +5 -3
- package/dist/src/cli/minimal-main.js +0 -22
- package/dist/src/enterprise/analytics-manager.js +0 -1135
- package/dist/src/enterprise/audit-manager.js +0 -1115
- package/dist/src/enterprise/cloud-manager.js +0 -891
- package/dist/src/enterprise/deployment-manager.js +0 -966
- package/dist/src/enterprise/index.js +0 -6
- package/dist/src/enterprise/project-manager.js +0 -584
- package/dist/src/enterprise/security-manager.js +0 -991
- package/dist/src/migration/index.js +0 -92
- package/dist/src/migration/logger.js +0 -121
- package/dist/src/migration/migration-analyzer.js +0 -268
- package/dist/src/migration/migration-runner.js +0 -522
- package/dist/src/migration/migration-validator.js +0 -285
- package/dist/src/migration/progress-reporter.js +0 -150
- package/dist/src/migration/rollback-manager.js +0 -321
- package/dist/src/migration/tests/migration-system.test.js +0 -7
- package/dist/src/migration/types.js +0 -3
- package/dist/src/swarm/__tests__/integration.test.js +0 -227
- package/dist/src/swarm/__tests__/prompt-copier.test.js +0 -344
- package/dist/src/swarm/advanced-orchestrator.js +0 -1095
- package/dist/src/swarm/claude-code-interface.js +0 -961
- package/dist/src/swarm/claude-flow-executor.js +0 -229
- package/dist/src/swarm/consensus-coordinator.js +0 -475
- package/dist/src/swarm/coordinator.js +0 -2993
- package/dist/src/swarm/direct-executor.js +0 -1180
- package/dist/src/swarm/error-recovery/advanced-error-detection.js +0 -691
- package/dist/src/swarm/error-recovery/automated-recovery-workflows.js +0 -998
- package/dist/src/swarm/error-recovery/error-recovery-coordinator.js +0 -1197
- package/dist/src/swarm/error-recovery/recovery-monitoring.js +0 -772
- package/dist/src/swarm/error-recovery/resilience-architecture.js +0 -714
- package/dist/src/swarm/error-recovery/self-healing-mechanisms.js +0 -1319
- package/dist/src/swarm/error-recovery/test-error-recovery-effectiveness.js +0 -808
- package/dist/src/swarm/executor-v2.js +0 -322
- package/dist/src/swarm/executor.js +0 -815
- package/dist/src/swarm/hive-mind-integration.js +0 -703
- package/dist/src/swarm/index.js +0 -41
- package/dist/src/swarm/json-output-aggregator.js +0 -267
- package/dist/src/swarm/large-scale-coordinator.js +0 -542
- package/dist/src/swarm/mcp-integration-wrapper.js +0 -628
- package/dist/src/swarm/memory.js +0 -1117
- package/dist/src/swarm/optimizations/__tests__/optimization.test.js +0 -348
- package/dist/src/swarm/optimizations/async-file-manager.js +0 -285
- package/dist/src/swarm/optimizations/circular-buffer.js +0 -162
- package/dist/src/swarm/optimizations/connection-pool.js +0 -244
- package/dist/src/swarm/optimizations/index.js +0 -28
- package/dist/src/swarm/optimizations/optimized-executor.js +0 -320
- package/dist/src/swarm/optimizations/ttl-map.js +0 -234
- package/dist/src/swarm/prompt-cli.js +0 -200
- package/dist/src/swarm/prompt-copier-enhanced.js +0 -202
- package/dist/src/swarm/prompt-copier.js +0 -381
- package/dist/src/swarm/prompt-manager.js +0 -295
- package/dist/src/swarm/prompt-utils.js +0 -310
- package/dist/src/swarm/result-aggregator.js +0 -718
- package/dist/src/swarm/sparc-executor.js +0 -1568
- package/dist/src/swarm/strategies/auto.js +0 -758
- package/dist/src/swarm/strategies/base.js +0 -128
- package/dist/src/swarm/strategies/research.js +0 -914
- package/dist/src/swarm/strategies/strategy-metrics-patch.js +0 -2
- package/dist/src/swarm/types.js +0 -52
- package/dist/src/swarm/workers/copy-worker.js +0 -56
- package/dist/src/validators/epic-config-schema.js +0 -214
- package/dist/src/validators/index.js +0 -10
- package/dist/src/validators/swarm-init-validator.js +0 -259
- package/dist/src/validators/todowrite-batching-validator.js +0 -215
- package/dist/src/validators/todowrite-integration.js +0 -187
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/documentSymbols/browser/documentSymbols.js +0 -23
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +0 -57
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +0 -401
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +0 -181
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js +0 -44
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +0 -157
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/edit.js +0 -71
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/editorState/browser/editorState.js +0 -112
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findController.js +0 -990
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findDecorations.js +0 -296
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findModel.js +0 -488
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findOptionsWidget.js +0 -138
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findState.js +0 -243
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findWidget.js +0 -1177
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/folding.js +0 -1093
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +0 -133
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingModel.js +0 -538
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingRanges.js +0 -351
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +0 -49
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/format.js +0 -360
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formatActions.js +0 -263
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formattingEdit.js +0 -54
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +0 -149
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/hover/browser/contentHover.js +0 -874
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commandIds.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commands.js +0 -199
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/linesOperations/browser/copyLinesCommand.js +0 -70
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js +0 -26
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +0 -153
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +0 -33
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +0 -354
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/smartSelect/browser/bracketSelections.js +0 -146
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/suggest/browser/completionModel.js +0 -224
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +0 -119
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/edcore.main.js +0 -14
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.all.js +0 -63
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.api.js +0 -55
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.main.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.worker.js +0 -25
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/standalone/browser/colorizer.js +0 -118
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/css.worker.js +0 -36869
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/cssMode.js +0 -2035
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/browser/accessibilityService.js +0 -88
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/common/accessibility.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/action.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/actionCommonCategories.js +0 -13
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionList.js +0 -276
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionWidget.js +0 -248
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/common/actionWidget.js +0 -5
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actions/common/actions.js +0 -409
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/audioCues/browser/audioCueService.js +0 -176
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/browser/clipboardService.js +0 -141
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/common/clipboardService.js +0 -6
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/commands/common/commands.js +0 -80
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configuration.js +0 -86
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationModels.js +0 -554
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationRegistry.js +0 -317
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurations.js +0 -41
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/browser/contextKeyService.js +0 -432
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkey.js +0 -1547
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkeys.js +0 -18
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuHandler.js +0 -124
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuService.js +0 -101
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextView.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextViewService.js +0 -72
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dialogs/common/dialogs.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dnd/browser/dnd.js +0 -36
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/editor/common/editor.js +0 -17
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/environment/common/environment.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/extensions/common/extensions.js +0 -47
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/files/common/files.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +0 -105
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/descriptors.js +0 -11
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/extensions.js +0 -15
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/abstractKeybindingService.js +0 -277
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -53
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -354
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/browser/defaultStyles.js +0 -162
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/common/colorRegistry.js +0 -482
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/abap/abap.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/apex/apex.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/azcli/azcli.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bat/bat.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bicep/bicep.js +0 -11
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cameligo/cameligo.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/clojure/clojure.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/coffee/coffee.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cpp/cpp.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csharp/csharp.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csp/csp.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/css/css.js +0 -12
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cypher/cypher.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dart/dart.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dockerfile/dockerfile.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/ecl/ecl.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/elixir/elixir.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/flow9/flow9.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.js +0 -745
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.de.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.es.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.fr.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.it.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ja.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ko.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ru.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-cn.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-tw.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssMode.js +0 -13
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssWorker.js +0 -81
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/cli.js +0 -64
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/example.js +0 -36
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/index.js +0 -205
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/test.js +0 -260
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.browser.js +0 -34
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.js +0 -35
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.native.js +0 -26
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.browser.js +0 -34
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.js +0 -45
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/nanoid.js +0 -1
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/non-secure/index.js +0 -21
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/url-alphabet/index.js +0 -3
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/bin/nodemon.js +0 -16
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/index.js +0 -49
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/parse.js +0 -230
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/command.js +0 -43
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/defaults.js +0 -34
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/exec.js +0 -234
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/index.js +0 -93
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/load.js +0 -225
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/help/index.js +0 -27
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/index.js +0 -1
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/index.js +0 -4
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/match.js +0 -287
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/run.js +0 -562
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/signals.js +0 -34
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/watch.js +0 -244
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/nodemon.js +0 -317
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/add.js +0 -89
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/index.js +0 -53
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/parse.js +0 -43
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/spawn.js +0 -74
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/bus.js +0 -44
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/clone.js +0 -40
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/colour.js +0 -26
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/index.js +0 -103
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/log.js +0 -82
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/merge.js +0 -47
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/version.js +0 -100
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/brace-expansion/index.js +0 -201
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/has-flag/index.js +0 -8
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/minimatch/minimatch.js +0 -947
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/browser.js +0 -5
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/index.js +0 -131
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/bin/pidtree.js +0 -128
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/index.js +0 -49
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/bin.js +0 -61
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/get.js +0 -45
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/pidtree.js +0 -104
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/ps.js +0 -47
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/wmic.js +0 -49
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/doc.js +0 -1270
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/acorn.js +0 -15
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/angular.js +0 -2
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/babel.js +0 -15
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/estree.js +0 -36
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/flow.js +0 -19
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/glimmer.js +0 -29
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/graphql.js +0 -29
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/html.js +0 -22
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/markdown.js +0 -63
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/meriyah.js +0 -4
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/postcss.js +0 -54
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/typescript.js +0 -20
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/yaml.js +0 -160
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/standalone.js +0 -34
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/bin/react-scripts.js +0 -58
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/env.js +0 -112
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/getHttpsConfig.js +0 -74
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/babelTransform.js +0 -37
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/cssTransform.js +0 -22
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/fileTransform.js +0 -40
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/modules.js +0 -142
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/paths.js +0 -153
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack/persistentCache/createEnvironmentHash.js +0 -9
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack.config.js +0 -796
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpackDevServer.config.js +0 -135
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/build.js +0 -225
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/eject.js +0 -340
|
@@ -1,502 +1,530 @@
|
|
|
1
1
|
// sparc.js - SPARC development mode commands
|
|
2
|
-
import { printSuccess, printError, printWarning } from
|
|
3
|
-
import { promises as fs } from
|
|
4
|
-
import { spawn } from
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
2
|
+
import { printSuccess, printError, printWarning } from '../utils.js';
|
|
3
|
+
import { promises as fs } from 'fs';
|
|
4
|
+
import { spawn } from 'child_process';
|
|
5
|
+
import { promisify } from 'util';
|
|
6
|
+
import { createSparcPrompt } from './sparc-modes/index.js';
|
|
7
|
+
import { cwd, exit, existsSync } from '../node-compat.js';
|
|
8
|
+
import process from 'process';
|
|
9
|
+
|
|
8
10
|
export async function sparcCommand(subArgs, flags) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
'run',
|
|
43
|
-
'tdd'
|
|
44
|
-
];
|
|
45
|
-
if (!knownSubcommands.includes(sparcCmd)) {
|
|
46
|
-
// If not a known subcommand, treat it as a task description for sparc orchestrator
|
|
47
|
-
// Insert 'run' and 'sparc' to make it: ['run', 'sparc', ...rest of args]
|
|
48
|
-
mergedArgs.unshift('run', 'sparc');
|
|
49
|
-
}
|
|
50
|
-
// Now process the command
|
|
51
|
-
const actualCmd = mergedArgs[0];
|
|
52
|
-
switch(actualCmd){
|
|
53
|
-
case 'modes':
|
|
54
|
-
await listSparcModes(mergedArgs);
|
|
55
|
-
break;
|
|
56
|
-
case 'info':
|
|
57
|
-
await showModeInfo(mergedArgs);
|
|
58
|
-
break;
|
|
59
|
-
case 'run':
|
|
60
|
-
await runSparcMode(mergedArgs, flags);
|
|
61
|
-
break;
|
|
62
|
-
case 'tdd':
|
|
63
|
-
await runTddWorkflow(mergedArgs);
|
|
64
|
-
break;
|
|
65
|
-
default:
|
|
66
|
-
showSparcHelp();
|
|
11
|
+
const sparcCmd = subArgs[0];
|
|
12
|
+
|
|
13
|
+
// Show help if requested or no args
|
|
14
|
+
if (
|
|
15
|
+
flags.help ||
|
|
16
|
+
flags.h ||
|
|
17
|
+
sparcCmd === '--help' ||
|
|
18
|
+
sparcCmd === '-h' ||
|
|
19
|
+
(!sparcCmd && Object.keys(flags).length === 0)
|
|
20
|
+
) {
|
|
21
|
+
showSparcHelp();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Merge flags back into subArgs for backward compatibility
|
|
26
|
+
const mergedArgs = [...subArgs];
|
|
27
|
+
for (const [key, value] of Object.entries(flags)) {
|
|
28
|
+
if (key === 'non-interactive' || key === 'n') {
|
|
29
|
+
mergedArgs.push('--non-interactive');
|
|
30
|
+
} else if (key === 'dry-run' || key === 'd') {
|
|
31
|
+
mergedArgs.push('--dry-run');
|
|
32
|
+
} else if (key === 'verbose' || key === 'v') {
|
|
33
|
+
mergedArgs.push('--verbose');
|
|
34
|
+
} else if (key === 'no-permissions') {
|
|
35
|
+
mergedArgs.push('--no-permissions');
|
|
36
|
+
} else if (key === 'enable-permissions') {
|
|
37
|
+
mergedArgs.push('--enable-permissions');
|
|
38
|
+
} else if (key === 'namespace') {
|
|
39
|
+
mergedArgs.push('--namespace', value);
|
|
40
|
+
} else if (key === 'config') {
|
|
41
|
+
mergedArgs.push('--config', value);
|
|
42
|
+
} else if (key === 'interactive' || key === 'i') {
|
|
43
|
+
mergedArgs.push('--interactive');
|
|
67
44
|
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Check if first arg is a known subcommand
|
|
48
|
+
const knownSubcommands = ['modes', 'info', 'run', 'tdd'];
|
|
49
|
+
|
|
50
|
+
if (!knownSubcommands.includes(sparcCmd)) {
|
|
51
|
+
// If not a known subcommand, treat it as a task description for sparc orchestrator
|
|
52
|
+
// Insert 'run' and 'sparc' to make it: ['run', 'sparc', ...rest of args]
|
|
53
|
+
mergedArgs.unshift('run', 'sparc');
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Now process the command
|
|
57
|
+
const actualCmd = mergedArgs[0];
|
|
58
|
+
|
|
59
|
+
switch (actualCmd) {
|
|
60
|
+
case 'modes':
|
|
61
|
+
await listSparcModes(mergedArgs);
|
|
62
|
+
break;
|
|
63
|
+
|
|
64
|
+
case 'info':
|
|
65
|
+
await showModeInfo(mergedArgs);
|
|
66
|
+
break;
|
|
67
|
+
|
|
68
|
+
case 'run':
|
|
69
|
+
await runSparcMode(mergedArgs, flags);
|
|
70
|
+
break;
|
|
71
|
+
|
|
72
|
+
case 'tdd':
|
|
73
|
+
await runTddWorkflow(mergedArgs);
|
|
74
|
+
break;
|
|
75
|
+
|
|
76
|
+
default:
|
|
77
|
+
showSparcHelp();
|
|
78
|
+
}
|
|
68
79
|
}
|
|
80
|
+
|
|
69
81
|
async function listSparcModes(subArgs) {
|
|
82
|
+
try {
|
|
83
|
+
// Get the actual working directory where the command was run from
|
|
84
|
+
const workingDir = process.env.PWD || cwd();
|
|
85
|
+
const configPath = `${workingDir}/.roomodes`;
|
|
86
|
+
let configContent;
|
|
70
87
|
try {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
configContent = await fs.readFile(configPath, 'utf8');
|
|
89
|
+
} catch (error) {
|
|
90
|
+
printError('SPARC configuration file (.roomodes) not found');
|
|
91
|
+
console.log(`Please ensure .roomodes file exists in: ${workingDir}`);
|
|
92
|
+
console.log();
|
|
93
|
+
console.log('To enable SPARC development modes, run:');
|
|
94
|
+
console.log(' npx claude-flow@latest init --sparc');
|
|
95
|
+
console.log();
|
|
96
|
+
console.log('This will create:');
|
|
97
|
+
console.log(' ⢠.roomodes file with 17+ SPARC development modes');
|
|
98
|
+
console.log(' ⢠.roo/ directory with templates and workflows');
|
|
99
|
+
console.log(' ⢠SPARC-enhanced CLAUDE.md configuration');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const config = JSON.parse(configContent);
|
|
104
|
+
const verbose = subArgs.includes('--verbose') || subArgs.includes('-v');
|
|
105
|
+
|
|
106
|
+
printSuccess('Available SPARC Modes:');
|
|
107
|
+
console.log();
|
|
108
|
+
|
|
109
|
+
for (const mode of config.customModes) {
|
|
110
|
+
console.log(`⢠${mode.name} (${mode.slug})`);
|
|
111
|
+
if (verbose) {
|
|
112
|
+
console.log(` ${mode.roleDefinition}`);
|
|
113
|
+
console.log(` Tools: ${mode.groups.join(', ')}`);
|
|
93
114
|
console.log();
|
|
94
|
-
|
|
95
|
-
console.log(`⢠${mode.name} (${mode.slug})`);
|
|
96
|
-
if (verbose) {
|
|
97
|
-
console.log(` ${mode.roleDefinition}`);
|
|
98
|
-
console.log(` Tools: ${mode.groups.join(', ')}`);
|
|
99
|
-
console.log();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (!verbose) {
|
|
103
|
-
console.log();
|
|
104
|
-
console.log('Use --verbose for detailed descriptions');
|
|
105
|
-
}
|
|
106
|
-
} catch (err) {
|
|
107
|
-
printError(`Failed to list SPARC modes: ${err.message}`);
|
|
115
|
+
}
|
|
108
116
|
}
|
|
117
|
+
|
|
118
|
+
if (!verbose) {
|
|
119
|
+
console.log();
|
|
120
|
+
console.log('Use --verbose for detailed descriptions');
|
|
121
|
+
}
|
|
122
|
+
} catch (err) {
|
|
123
|
+
printError(`Failed to list SPARC modes: ${err.message}`);
|
|
124
|
+
}
|
|
109
125
|
}
|
|
126
|
+
|
|
110
127
|
async function showModeInfo(subArgs) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
128
|
+
const modeSlug = subArgs[1];
|
|
129
|
+
if (!modeSlug) {
|
|
130
|
+
printError('Usage: sparc info <mode-slug>');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
try {
|
|
135
|
+
// Get the actual working directory where the command was run from
|
|
136
|
+
const workingDir = process.env.PWD || cwd();
|
|
137
|
+
const configPath = `${workingDir}/.roomodes`;
|
|
138
|
+
let configContent;
|
|
116
139
|
try {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
console.log(`Please ensure .roomodes file exists in: ${workingDir}`);
|
|
126
|
-
console.log();
|
|
127
|
-
console.log('To enable SPARC development modes, run:');
|
|
128
|
-
console.log(' npx claude-flow@latest init --sparc');
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
const config = JSON.parse(configContent);
|
|
132
|
-
const mode = config.customModes.find((m)=>m.slug === modeSlug);
|
|
133
|
-
if (!mode) {
|
|
134
|
-
printError(`Mode not found: ${modeSlug}`);
|
|
135
|
-
console.log('Available modes:');
|
|
136
|
-
for (const m of config.customModes){
|
|
137
|
-
console.log(` ${m.slug} - ${m.name}`);
|
|
138
|
-
}
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
printSuccess(`SPARC Mode: ${mode.name}`);
|
|
142
|
-
console.log();
|
|
143
|
-
console.log('Role Definition:');
|
|
144
|
-
console.log(mode.roleDefinition);
|
|
145
|
-
console.log();
|
|
146
|
-
console.log('Custom Instructions:');
|
|
147
|
-
console.log(mode.customInstructions);
|
|
148
|
-
console.log();
|
|
149
|
-
console.log('Tool Groups:');
|
|
150
|
-
console.log(mode.groups.join(', '));
|
|
151
|
-
console.log();
|
|
152
|
-
console.log('Source:');
|
|
153
|
-
console.log(mode.source);
|
|
154
|
-
} catch (err) {
|
|
155
|
-
printError(`Failed to show mode info: ${err.message}`);
|
|
140
|
+
configContent = await fs.readFile(configPath, 'utf8');
|
|
141
|
+
} catch (error) {
|
|
142
|
+
printError('SPARC configuration file (.roomodes) not found');
|
|
143
|
+
console.log(`Please ensure .roomodes file exists in: ${workingDir}`);
|
|
144
|
+
console.log();
|
|
145
|
+
console.log('To enable SPARC development modes, run:');
|
|
146
|
+
console.log(' npx claude-flow@latest init --sparc');
|
|
147
|
+
return;
|
|
156
148
|
}
|
|
149
|
+
const config = JSON.parse(configContent);
|
|
150
|
+
const mode = config.customModes.find((m) => m.slug === modeSlug);
|
|
151
|
+
|
|
152
|
+
if (!mode) {
|
|
153
|
+
printError(`Mode not found: ${modeSlug}`);
|
|
154
|
+
console.log('Available modes:');
|
|
155
|
+
for (const m of config.customModes) {
|
|
156
|
+
console.log(` ${m.slug} - ${m.name}`);
|
|
157
|
+
}
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
printSuccess(`SPARC Mode: ${mode.name}`);
|
|
162
|
+
console.log();
|
|
163
|
+
console.log('Role Definition:');
|
|
164
|
+
console.log(mode.roleDefinition);
|
|
165
|
+
console.log();
|
|
166
|
+
console.log('Custom Instructions:');
|
|
167
|
+
console.log(mode.customInstructions);
|
|
168
|
+
console.log();
|
|
169
|
+
console.log('Tool Groups:');
|
|
170
|
+
console.log(mode.groups.join(', '));
|
|
171
|
+
console.log();
|
|
172
|
+
console.log('Source:');
|
|
173
|
+
console.log(mode.source);
|
|
174
|
+
} catch (err) {
|
|
175
|
+
printError(`Failed to show mode info: ${err.message}`);
|
|
176
|
+
}
|
|
157
177
|
}
|
|
178
|
+
|
|
158
179
|
async function runSparcMode(subArgs, flags) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
180
|
+
const runModeSlug = subArgs[1];
|
|
181
|
+
const taskDescription = subArgs
|
|
182
|
+
.slice(2)
|
|
183
|
+
.filter((arg) => !arg.startsWith('--'))
|
|
184
|
+
.join(' ');
|
|
185
|
+
|
|
186
|
+
if (!runModeSlug || !taskDescription) {
|
|
187
|
+
printError('Usage: sparc run <mode-slug> <task-description>');
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
try {
|
|
192
|
+
// Get the actual working directory where the command was run from
|
|
193
|
+
const workingDir = process.env.PWD || cwd();
|
|
194
|
+
const configPath = `${workingDir}/.roomodes`;
|
|
195
|
+
let configContent;
|
|
165
196
|
try {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
console.log(`Please ensure .roomodes file exists in: ${workingDir}`);
|
|
175
|
-
console.log();
|
|
176
|
-
console.log('To enable SPARC development modes, run:');
|
|
177
|
-
console.log(' npx claude-flow@latest init --sparc');
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
const config = JSON.parse(configContent);
|
|
181
|
-
const mode = config.customModes.find((m)=>m.slug === runModeSlug);
|
|
182
|
-
if (!mode) {
|
|
183
|
-
printError(`Mode not found: ${runModeSlug}`);
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
// Build enhanced SPARC prompt
|
|
187
|
-
const memoryNamespace = subArgs.includes('--namespace') ? subArgs[subArgs.indexOf('--namespace') + 1] : mode.slug;
|
|
188
|
-
const enhancedTask = createSparcPrompt(mode, taskDescription, memoryNamespace);
|
|
189
|
-
// Build tools based on mode groups
|
|
190
|
-
const tools = buildToolsFromGroups(mode.groups);
|
|
191
|
-
const toolsList = Array.from(tools).join(',');
|
|
192
|
-
const instanceId = `sparc-${runModeSlug}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
193
|
-
if (subArgs.includes('--dry-run') || subArgs.includes('-d')) {
|
|
194
|
-
printWarning('DRY RUN - SPARC Mode Configuration:');
|
|
195
|
-
console.log(`Mode: ${mode.name} (${mode.slug})`);
|
|
196
|
-
console.log(`Instance ID: ${instanceId}`);
|
|
197
|
-
const enablePermissions = subArgs.includes('--enable-permissions');
|
|
198
|
-
if (!enablePermissions) {
|
|
199
|
-
console.log(`Tools: ALL (via --dangerously-skip-permissions)`);
|
|
200
|
-
console.log(`Permissions: Will be auto-skipped`);
|
|
201
|
-
} else {
|
|
202
|
-
console.log(`Tools: ${toolsList}`);
|
|
203
|
-
console.log(`Permissions: Will prompt for actions`);
|
|
204
|
-
}
|
|
205
|
-
console.log(`Task: ${taskDescription}`);
|
|
206
|
-
console.log();
|
|
207
|
-
console.log('Enhanced prompt preview:');
|
|
208
|
-
console.log(enhancedTask.substring(0, 300) + '...');
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
printSuccess(`Starting SPARC mode: ${mode.name}`);
|
|
212
|
-
console.log(`š Instance ID: ${instanceId}`);
|
|
213
|
-
console.log(`šÆ Mode: ${mode.slug}`);
|
|
214
|
-
const isNonInteractive = subArgs.includes('--non-interactive') || subArgs.includes('-n');
|
|
215
|
-
const enablePermissions = subArgs.includes('--enable-permissions');
|
|
216
|
-
if (!enablePermissions) {
|
|
217
|
-
console.log(`š§ Tools: ALL (including MCP and WebSearch via --dangerously-skip-permissions)`);
|
|
218
|
-
console.log(`ā” Permissions: Auto-skipped (--dangerously-skip-permissions)`);
|
|
219
|
-
} else {
|
|
220
|
-
console.log(`š§ Tools: ${toolsList}`);
|
|
221
|
-
console.log(`ā
Permissions: Enabled (will prompt for actions)`);
|
|
222
|
-
}
|
|
223
|
-
console.log(`š Task: ${taskDescription}`);
|
|
224
|
-
if (isNonInteractive) {
|
|
225
|
-
console.log(`š Running in non-interactive mode with stream-json output`);
|
|
226
|
-
console.log();
|
|
227
|
-
// Show debug info immediately for non-interactive mode
|
|
228
|
-
console.log('š Debug: Preparing claude command...');
|
|
229
|
-
console.log(`Enhanced prompt length: ${enhancedTask.length} characters`);
|
|
230
|
-
console.log(`First 200 chars of prompt: ${enhancedTask.substring(0, 200)}...`);
|
|
231
|
-
}
|
|
232
|
-
console.log();
|
|
233
|
-
// Execute Claude with SPARC configuration
|
|
234
|
-
await executeClaude(enhancedTask, toolsList, instanceId, memoryNamespace, subArgs);
|
|
235
|
-
} catch (err) {
|
|
236
|
-
printError(`Failed to run SPARC mode: ${err.message}`);
|
|
197
|
+
configContent = await fs.readFile(configPath, 'utf8');
|
|
198
|
+
} catch (error) {
|
|
199
|
+
printError('SPARC configuration file (.roomodes) not found');
|
|
200
|
+
console.log(`Please ensure .roomodes file exists in: ${workingDir}`);
|
|
201
|
+
console.log();
|
|
202
|
+
console.log('To enable SPARC development modes, run:');
|
|
203
|
+
console.log(' npx claude-flow@latest init --sparc');
|
|
204
|
+
return;
|
|
237
205
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
if (!
|
|
242
|
-
|
|
243
|
-
|
|
206
|
+
const config = JSON.parse(configContent);
|
|
207
|
+
const mode = config.customModes.find((m) => m.slug === runModeSlug);
|
|
208
|
+
|
|
209
|
+
if (!mode) {
|
|
210
|
+
printError(`Mode not found: ${runModeSlug}`);
|
|
211
|
+
return;
|
|
244
212
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
213
|
+
|
|
214
|
+
// Build enhanced SPARC prompt
|
|
215
|
+
const memoryNamespace = subArgs.includes('--namespace')
|
|
216
|
+
? subArgs[subArgs.indexOf('--namespace') + 1]
|
|
217
|
+
: mode.slug;
|
|
218
|
+
|
|
219
|
+
const enhancedTask = createSparcPrompt(mode, taskDescription, memoryNamespace);
|
|
220
|
+
|
|
221
|
+
// Build tools based on mode groups
|
|
222
|
+
const tools = buildToolsFromGroups(mode.groups);
|
|
223
|
+
const toolsList = Array.from(tools).join(',');
|
|
224
|
+
const instanceId = `sparc-${runModeSlug}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
225
|
+
|
|
226
|
+
if (subArgs.includes('--dry-run') || subArgs.includes('-d')) {
|
|
227
|
+
printWarning('DRY RUN - SPARC Mode Configuration:');
|
|
228
|
+
console.log(`Mode: ${mode.name} (${mode.slug})`);
|
|
229
|
+
console.log(`Instance ID: ${instanceId}`);
|
|
230
|
+
|
|
231
|
+
const enablePermissions = subArgs.includes('--enable-permissions');
|
|
232
|
+
if (!enablePermissions) {
|
|
233
|
+
console.log(`Tools: ALL (via --dangerously-skip-permissions)`);
|
|
234
|
+
console.log(`Permissions: Will be auto-skipped`);
|
|
235
|
+
} else {
|
|
236
|
+
console.log(`Tools: ${toolsList}`);
|
|
237
|
+
console.log(`Permissions: Will prompt for actions`);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
console.log(`Task: ${taskDescription}`);
|
|
241
|
+
console.log();
|
|
242
|
+
console.log('Enhanced prompt preview:');
|
|
243
|
+
console.log(enhancedTask.substring(0, 300) + '...');
|
|
244
|
+
return;
|
|
268
245
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
246
|
+
|
|
247
|
+
printSuccess(`Starting SPARC mode: ${mode.name}`);
|
|
248
|
+
console.log(`š Instance ID: ${instanceId}`);
|
|
249
|
+
console.log(`šÆ Mode: ${mode.slug}`);
|
|
250
|
+
|
|
251
|
+
const isNonInteractive = subArgs.includes('--non-interactive') || subArgs.includes('-n');
|
|
252
|
+
const enablePermissions = subArgs.includes('--enable-permissions');
|
|
253
|
+
|
|
254
|
+
if (!enablePermissions) {
|
|
255
|
+
console.log(`š§ Tools: ALL (including MCP and WebSearch via --dangerously-skip-permissions)`);
|
|
256
|
+
console.log(`ā” Permissions: Auto-skipped (--dangerously-skip-permissions)`);
|
|
274
257
|
} else {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
console.log('Use --interactive for step-by-step control');
|
|
258
|
+
console.log(`š§ Tools: ${toolsList}`);
|
|
259
|
+
console.log(`ā
Permissions: Enabled (will prompt for actions)`);
|
|
278
260
|
}
|
|
261
|
+
console.log(`š Task: ${taskDescription}`);
|
|
262
|
+
|
|
263
|
+
if (isNonInteractive) {
|
|
264
|
+
console.log(`š Running in non-interactive mode with stream-json output`);
|
|
265
|
+
console.log();
|
|
266
|
+
|
|
267
|
+
// Show debug info immediately for non-interactive mode
|
|
268
|
+
console.log('š Debug: Preparing claude command...');
|
|
269
|
+
console.log(`Enhanced prompt length: ${enhancedTask.length} characters`);
|
|
270
|
+
console.log(`First 200 chars of prompt: ${enhancedTask.substring(0, 200)}...`);
|
|
271
|
+
}
|
|
272
|
+
console.log();
|
|
273
|
+
|
|
274
|
+
// Execute Claude with SPARC configuration
|
|
275
|
+
await executeClaude(enhancedTask, toolsList, instanceId, memoryNamespace, subArgs);
|
|
276
|
+
} catch (err) {
|
|
277
|
+
printError(`Failed to run SPARC mode: ${err.message}`);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
async function runTddWorkflow(subArgs) {
|
|
282
|
+
const tddTaskDescription = subArgs.slice(1).join(' ');
|
|
283
|
+
|
|
284
|
+
if (!tddTaskDescription) {
|
|
285
|
+
printError('Usage: sparc tdd <task-description>');
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
printSuccess('Starting SPARC TDD Workflow');
|
|
290
|
+
console.log('Following Test-Driven Development with SPARC methodology');
|
|
291
|
+
console.log();
|
|
292
|
+
|
|
293
|
+
const phases = [
|
|
294
|
+
{ name: 'Red', description: 'Write failing tests', mode: 'tdd' },
|
|
295
|
+
{ name: 'Green', description: 'Minimal implementation', mode: 'code' },
|
|
296
|
+
{ name: 'Refactor', description: 'Optimize and clean', mode: 'tdd' },
|
|
297
|
+
];
|
|
298
|
+
|
|
299
|
+
console.log('TDD Phases:');
|
|
300
|
+
for (const phase of phases) {
|
|
301
|
+
console.log(` ${phase.name}: ${phase.description} (${phase.mode} mode)`);
|
|
302
|
+
}
|
|
303
|
+
console.log();
|
|
304
|
+
|
|
305
|
+
if (subArgs.includes('--interactive') || subArgs.includes('-i')) {
|
|
306
|
+
printSuccess('Starting interactive TDD workflow');
|
|
307
|
+
console.log('This would walk through each phase interactively');
|
|
308
|
+
console.log('Run each phase with: sparc run <mode> "Phase: <task>"');
|
|
309
|
+
} else {
|
|
310
|
+
printSuccess('Starting full TDD workflow');
|
|
311
|
+
console.log('This would execute all phases automatically');
|
|
312
|
+
console.log('Use --interactive for step-by-step control');
|
|
313
|
+
}
|
|
279
314
|
}
|
|
315
|
+
|
|
280
316
|
// Remove the createSparcPrompt function from here as it's now imported from sparc-modes/index.js
|
|
317
|
+
|
|
281
318
|
function buildToolsFromGroups(groups) {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
],
|
|
301
|
-
command: [
|
|
302
|
-
'Bash',
|
|
303
|
-
'Terminal'
|
|
304
|
-
]
|
|
305
|
-
};
|
|
306
|
-
const tools = new Set([
|
|
307
|
-
'View',
|
|
308
|
-
'Edit',
|
|
309
|
-
'Bash'
|
|
310
|
-
]); // Always include basic tools
|
|
311
|
-
for (const group of groups){
|
|
312
|
-
if (Array.isArray(group)) {
|
|
313
|
-
const groupName = group[0];
|
|
314
|
-
if (toolMappings[groupName]) {
|
|
315
|
-
toolMappings[groupName].forEach((tool)=>tools.add(tool));
|
|
316
|
-
}
|
|
317
|
-
} else if (toolMappings[group]) {
|
|
318
|
-
toolMappings[group].forEach((tool)=>tools.add(tool));
|
|
319
|
-
}
|
|
319
|
+
const toolMappings = {
|
|
320
|
+
read: ['View', 'LS', 'GlobTool', 'GrepTool'],
|
|
321
|
+
edit: ['Edit', 'Replace', 'MultiEdit', 'Write'],
|
|
322
|
+
browser: ['WebFetch'],
|
|
323
|
+
mcp: ['mcp_tools'],
|
|
324
|
+
command: ['Bash', 'Terminal'],
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
const tools = new Set(['View', 'Edit', 'Bash']); // Always include basic tools
|
|
328
|
+
|
|
329
|
+
for (const group of groups) {
|
|
330
|
+
if (Array.isArray(group)) {
|
|
331
|
+
const groupName = group[0];
|
|
332
|
+
if (toolMappings[groupName]) {
|
|
333
|
+
toolMappings[groupName].forEach((tool) => tools.add(tool));
|
|
334
|
+
}
|
|
335
|
+
} else if (toolMappings[group]) {
|
|
336
|
+
toolMappings[group].forEach((tool) => tools.add(tool));
|
|
320
337
|
}
|
|
321
|
-
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
return tools;
|
|
322
341
|
}
|
|
342
|
+
|
|
323
343
|
async function executeClaude(enhancedTask, toolsList, instanceId, memoryNamespace, subArgs) {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
344
|
+
// Check for non-interactive mode
|
|
345
|
+
const isNonInteractive = subArgs.includes('--non-interactive') || subArgs.includes('-n');
|
|
346
|
+
const enablePermissions = subArgs.includes('--enable-permissions');
|
|
347
|
+
|
|
348
|
+
// Build arguments array correctly
|
|
349
|
+
const claudeArgs = [];
|
|
350
|
+
claudeArgs.push(enhancedTask);
|
|
351
|
+
|
|
352
|
+
// Add --dangerously-skip-permissions by default unless --enable-permissions is set
|
|
353
|
+
if (!enablePermissions) {
|
|
354
|
+
claudeArgs.push('--dangerously-skip-permissions');
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
if (isNonInteractive) {
|
|
358
|
+
// Non-interactive mode: add additional flags
|
|
359
|
+
claudeArgs.push('-p'); // Use short form for print
|
|
360
|
+
claudeArgs.push('--output-format', 'stream-json');
|
|
361
|
+
claudeArgs.push('--verbose');
|
|
362
|
+
} else {
|
|
363
|
+
// Interactive mode - check for verbose flag
|
|
364
|
+
if (subArgs.includes('--verbose') || subArgs.includes('-v')) {
|
|
365
|
+
claudeArgs.push('--verbose');
|
|
333
366
|
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
// When using --dangerously-skip-permissions, we don't need to specify individual tools
|
|
370
|
+
// as it enables ALL tools including mcp and websearch
|
|
371
|
+
// Only add --allowedTools if permissions are enabled
|
|
372
|
+
if (enablePermissions) {
|
|
373
|
+
claudeArgs.push('--allowedTools', toolsList);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
if (subArgs.includes('--config')) {
|
|
377
|
+
const configIndex = subArgs.indexOf('--config');
|
|
378
|
+
claudeArgs.push('--mcp-config', subArgs[configIndex + 1]);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
// Show debug info for non-interactive mode or when verbose
|
|
382
|
+
if (isNonInteractive || subArgs.includes('--verbose') || subArgs.includes('-v')) {
|
|
383
|
+
console.log('\nš Debug: Executing claude with:');
|
|
384
|
+
console.log('Command: claude');
|
|
385
|
+
console.log(
|
|
386
|
+
'Permissions:',
|
|
387
|
+
enablePermissions
|
|
388
|
+
? 'ā
Enabled (will prompt)'
|
|
389
|
+
: 'ā” Skipped (--dangerously-skip-permissions)',
|
|
390
|
+
);
|
|
391
|
+
console.log(
|
|
392
|
+
'Tools:',
|
|
393
|
+
enablePermissions ? `Specified: ${toolsList}` : 'ALL tools enabled (MCP, WebSearch, etc.)',
|
|
394
|
+
);
|
|
395
|
+
console.log('Mode:', isNonInteractive ? 'š¤ Non-interactive' : 'š¬ Interactive');
|
|
396
|
+
console.log('Args array length:', claudeArgs.length);
|
|
397
|
+
console.log('First arg (prompt) length:', claudeArgs[0].length, 'characters');
|
|
398
|
+
|
|
334
399
|
if (isNonInteractive) {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
claudeArgs.push('--verbose');
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
// When using --dangerously-skip-permissions, we don't need to specify individual tools
|
|
346
|
-
// as it enables ALL tools including mcp and websearch
|
|
347
|
-
// Only add --allowedTools if permissions are enabled
|
|
348
|
-
if (enablePermissions) {
|
|
349
|
-
claudeArgs.push('--allowedTools', toolsList);
|
|
350
|
-
}
|
|
351
|
-
if (subArgs.includes('--config')) {
|
|
352
|
-
const configIndex = subArgs.indexOf('--config');
|
|
353
|
-
claudeArgs.push('--mcp-config', subArgs[configIndex + 1]);
|
|
354
|
-
}
|
|
355
|
-
// Show debug info for non-interactive mode or when verbose
|
|
356
|
-
if (isNonInteractive || subArgs.includes('--verbose') || subArgs.includes('-v')) {
|
|
357
|
-
console.log('\nš Debug: Executing claude with:');
|
|
358
|
-
console.log('Command: claude');
|
|
359
|
-
console.log('Permissions:', enablePermissions ? 'ā
Enabled (will prompt)' : 'ā” Skipped (--dangerously-skip-permissions)');
|
|
360
|
-
console.log('Tools:', enablePermissions ? `Specified: ${toolsList}` : 'ALL tools enabled (MCP, WebSearch, etc.)');
|
|
361
|
-
console.log('Mode:', isNonInteractive ? 'š¤ Non-interactive' : 'š¬ Interactive');
|
|
362
|
-
console.log('Args array length:', claudeArgs.length);
|
|
363
|
-
console.log('First arg (prompt) length:', claudeArgs[0].length, 'characters');
|
|
364
|
-
if (isNonInteractive) {
|
|
365
|
-
console.log('First 200 chars of prompt:', claudeArgs[0].substring(0, 200) + '...');
|
|
366
|
-
console.log('\nAll arguments:');
|
|
367
|
-
claudeArgs.forEach((arg, i)=>{
|
|
368
|
-
if (i === 0) {
|
|
369
|
-
console.log(` [0] <SPARC prompt with ${arg.length} characters>`);
|
|
370
|
-
} else {
|
|
371
|
-
console.log(` [${i}] ${arg}`);
|
|
372
|
-
}
|
|
373
|
-
});
|
|
374
|
-
console.log('\nFull command structure:');
|
|
375
|
-
console.log('claude "<SPARC prompt>" ' + claudeArgs.slice(1).join(' '));
|
|
400
|
+
console.log('First 200 chars of prompt:', claudeArgs[0].substring(0, 200) + '...');
|
|
401
|
+
console.log('\nAll arguments:');
|
|
402
|
+
claudeArgs.forEach((arg, i) => {
|
|
403
|
+
if (i === 0) {
|
|
404
|
+
console.log(` [0] <SPARC prompt with ${arg.length} characters>`);
|
|
405
|
+
} else {
|
|
406
|
+
console.log(` [${i}] ${arg}`);
|
|
376
407
|
}
|
|
377
|
-
|
|
408
|
+
});
|
|
409
|
+
console.log('\nFull command structure:');
|
|
410
|
+
console.log('claude "<SPARC prompt>" ' + claudeArgs.slice(1).join(' '));
|
|
378
411
|
}
|
|
412
|
+
console.log();
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
try {
|
|
416
|
+
// Log the actual command being executed
|
|
417
|
+
console.log('\nš Executing command:');
|
|
418
|
+
console.log(`Command: claude`);
|
|
419
|
+
console.log(`Working Directory: ${cwd()}`);
|
|
420
|
+
console.log(`Number of args: ${claudeArgs.length}`);
|
|
421
|
+
|
|
422
|
+
// Check if claude command exists
|
|
379
423
|
try {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
console.log(`Working Directory: ${cwd()}`);
|
|
384
|
-
console.log(`Number of args: ${claudeArgs.length}`);
|
|
385
|
-
// Check if claude command exists
|
|
386
|
-
try {
|
|
387
|
-
const checkResult = await new Promise((resolve)=>{
|
|
388
|
-
const child = spawn('which', [
|
|
389
|
-
'claude'
|
|
390
|
-
], {
|
|
391
|
-
stdio: [
|
|
392
|
-
'pipe',
|
|
393
|
-
'pipe',
|
|
394
|
-
'pipe'
|
|
395
|
-
]
|
|
396
|
-
});
|
|
397
|
-
let stdout = '';
|
|
398
|
-
child.stdout?.on('data', (data)=>{
|
|
399
|
-
stdout += data;
|
|
400
|
-
});
|
|
401
|
-
child.on('close', (code)=>{
|
|
402
|
-
resolve({
|
|
403
|
-
success: code === 0,
|
|
404
|
-
stdout: Buffer.from(stdout)
|
|
405
|
-
});
|
|
406
|
-
});
|
|
407
|
-
});
|
|
408
|
-
if (!checkResult.success) {
|
|
409
|
-
console.error('ā Error: claude command not found in PATH');
|
|
410
|
-
console.error('Please ensure claude CLI is installed and in your PATH');
|
|
411
|
-
return;
|
|
412
|
-
}
|
|
413
|
-
const claudePath = new TextDecoder().decode(checkResult.stdout).trim();
|
|
414
|
-
console.log(`Claude path: ${claudePath}`);
|
|
415
|
-
} catch (e) {
|
|
416
|
-
console.warn('ā ļø Could not verify claude command location');
|
|
417
|
-
}
|
|
418
|
-
// Use spawn for claude command
|
|
419
|
-
const env = {
|
|
420
|
-
...process.env,
|
|
421
|
-
CLAUDE_INSTANCE_ID: instanceId
|
|
422
|
-
};
|
|
423
|
-
console.log('\nš” Spawning claude process...\n');
|
|
424
|
-
const child = spawn('claude', claudeArgs, {
|
|
425
|
-
cwd: cwd(),
|
|
426
|
-
env: env,
|
|
427
|
-
stdio: 'inherit'
|
|
424
|
+
const checkResult = await new Promise((resolve) => {
|
|
425
|
+
const child = spawn('which', ['claude'], {
|
|
426
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
428
427
|
});
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
code,
|
|
433
|
-
success: code === 0
|
|
434
|
-
});
|
|
435
|
-
});
|
|
428
|
+
let stdout = '';
|
|
429
|
+
child.stdout?.on('data', (data) => {
|
|
430
|
+
stdout += data;
|
|
436
431
|
});
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
432
|
+
child.on('close', (code) => {
|
|
433
|
+
resolve({ success: code === 0, stdout: Buffer.from(stdout) });
|
|
434
|
+
});
|
|
435
|
+
});
|
|
436
|
+
if (!checkResult.success) {
|
|
437
|
+
console.error('ā Error: claude command not found in PATH');
|
|
438
|
+
console.error('Please ensure claude CLI is installed and in your PATH');
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
const claudePath = new TextDecoder().decode(checkResult.stdout).trim();
|
|
442
|
+
console.log(`Claude path: ${claudePath}`);
|
|
443
|
+
} catch (e) {
|
|
444
|
+
console.warn('ā ļø Could not verify claude command location');
|
|
445
445
|
}
|
|
446
|
+
|
|
447
|
+
// Use spawn for claude command
|
|
448
|
+
const env = { ...process.env, CLAUDE_INSTANCE_ID: instanceId };
|
|
449
|
+
|
|
450
|
+
console.log('\nš” Spawning claude process...\n');
|
|
451
|
+
const child = spawn('claude', claudeArgs, {
|
|
452
|
+
cwd: cwd(),
|
|
453
|
+
env: env,
|
|
454
|
+
stdio: 'inherit',
|
|
455
|
+
});
|
|
456
|
+
const status = await new Promise((resolve) => {
|
|
457
|
+
child.on('close', (code) => {
|
|
458
|
+
resolve({ code, success: code === 0 });
|
|
459
|
+
});
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
if (status.success) {
|
|
463
|
+
printSuccess(`SPARC instance ${instanceId} completed successfully`);
|
|
464
|
+
} else {
|
|
465
|
+
printError(`SPARC instance ${instanceId} exited with code ${status.code}`);
|
|
466
|
+
}
|
|
467
|
+
} catch (err) {
|
|
468
|
+
printError(`Failed to execute Claude: ${err.message}`);
|
|
469
|
+
console.error('Stack trace:', err.stack);
|
|
470
|
+
}
|
|
446
471
|
}
|
|
472
|
+
|
|
447
473
|
function showSparcHelp() {
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
474
|
+
console.log('SPARC commands:');
|
|
475
|
+
console.log(' <task> Run SPARC orchestrator (default mode)');
|
|
476
|
+
console.log(' modes List available SPARC development modes');
|
|
477
|
+
console.log(' info <mode> Show detailed information about a mode');
|
|
478
|
+
console.log(' run <mode> <task> Execute a task in specified SPARC mode');
|
|
479
|
+
console.log(' tdd <task> Run Test-Driven Development workflow');
|
|
480
|
+
console.log();
|
|
481
|
+
console.log('Examples:');
|
|
482
|
+
console.log(' claude-flow-novice sparc "orchestrate app development" # Uses sparc orchestrator');
|
|
483
|
+
console.log(' claude-flow-novice sparc modes --verbose');
|
|
484
|
+
console.log(' claude-flow-novice sparc info architect');
|
|
485
|
+
console.log(' claude-flow-novice sparc run code "implement user authentication"');
|
|
486
|
+
console.log(' claude-flow-novice sparc run code "add login feature" --non-interactive');
|
|
487
|
+
console.log(' claude-flow-novice sparc run tdd "create test suite" --namespace tests');
|
|
488
|
+
console.log(' claude-flow-novice sparc tdd "payment processing system" --interactive');
|
|
489
|
+
console.log();
|
|
490
|
+
console.log('Parallel Execution with BatchTool:');
|
|
491
|
+
console.log(' # Run multiple SPARC modes concurrently');
|
|
492
|
+
console.log(' batchtool run --parallel \\');
|
|
493
|
+
console.log(' "npx claude-flow-novice sparc run code \'user service\' --non-interactive" \\');
|
|
494
|
+
console.log(' "npx claude-flow-novice sparc run code \'auth service\' --non-interactive" \\');
|
|
495
|
+
console.log(' "npx claude-flow-novice sparc run tdd \'test suite\' --non-interactive"');
|
|
496
|
+
console.log();
|
|
497
|
+
console.log(' # Boomerang orchestration pattern');
|
|
498
|
+
console.log(' batchtool orchestrate --boomerang \\');
|
|
499
|
+
console.log(
|
|
500
|
+
' --research "npx claude-flow-novice sparc run ask \'requirements\' --non-interactive" \\',
|
|
501
|
+
);
|
|
502
|
+
console.log(' --design "npx claude-flow-novice sparc run architect \'system\' --non-interactive" \\');
|
|
503
|
+
console.log(' --implement "npx claude-flow-novice sparc run code \'features\' --non-interactive" \\');
|
|
504
|
+
console.log(' --test "npx claude-flow-novice sparc run tdd \'validation\' --non-interactive"');
|
|
505
|
+
console.log();
|
|
506
|
+
console.log('Flags:');
|
|
507
|
+
console.log(' --dry-run, -d Show configuration without executing');
|
|
508
|
+
console.log(' --verbose, -v Show detailed output');
|
|
509
|
+
console.log(' --interactive, -i Run TDD workflow interactively');
|
|
510
|
+
console.log(' --non-interactive, -n Run in non-interactive mode with stream-json output');
|
|
511
|
+
console.log(' --enable-permissions Enable permission prompts (default: skip permissions)');
|
|
512
|
+
console.log(' --namespace <ns> Use custom memory namespace (default: mode slug)');
|
|
513
|
+
console.log(' --config <path> Use custom MCP configuration file');
|
|
514
|
+
console.log();
|
|
515
|
+
console.log('Permission Behavior:');
|
|
516
|
+
console.log(' By default, SPARC runs with --dangerously-skip-permissions for efficiency');
|
|
517
|
+
console.log(' Use --enable-permissions to restore permission prompts if needed');
|
|
518
|
+
console.log();
|
|
519
|
+
console.log('Non-Interactive Mode:');
|
|
520
|
+
console.log(' When using --non-interactive, claude will be executed with:');
|
|
521
|
+
console.log(' - --dangerously-skip-permissions (unless --enable-permissions is set)');
|
|
522
|
+
console.log(' - -p (print mode for streaming output)');
|
|
523
|
+
console.log(' - --output-format stream-json (structured output format)');
|
|
524
|
+
console.log(' - --verbose (detailed execution logs)');
|
|
525
|
+
console.log();
|
|
526
|
+
console.log('Boomerang Pattern:');
|
|
527
|
+
console.log(' A cyclical orchestration where outputs from one phase feed into the next:');
|
|
528
|
+
console.log(' Research ā Design ā Implement ā Test ā Optimize ā Loop back');
|
|
529
|
+
console.log(' Perfect for iterative development with continuous refinement');
|
|
502
530
|
}
|