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
|
@@ -2,94 +2,75 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Stream Chain Command - Connect multiple Claude instances via stream-json
|
|
4
4
|
* Clean implementation focused on real Claude CLI execution
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { exec, execSync } from 'child_process';
|
|
8
|
-
|
|
5
|
+
*/ import { exec, execSync } from "child_process";
|
|
9
6
|
/**
|
|
10
7
|
* Check if claude CLI is available
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
*/ function checkClaudeAvailable() {
|
|
9
|
+
try {
|
|
10
|
+
execSync('which claude', {
|
|
11
|
+
stdio: 'ignore'
|
|
12
|
+
});
|
|
13
|
+
return true;
|
|
14
|
+
} catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
19
17
|
}
|
|
20
|
-
|
|
21
18
|
/**
|
|
22
19
|
* Mock implementation for fallback
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
};
|
|
20
|
+
*/ function mockResponse(prompt) {
|
|
21
|
+
return {
|
|
22
|
+
success: true,
|
|
23
|
+
duration: 500,
|
|
24
|
+
output: `✅ Mock response for: ${prompt.slice(0, 50)}...`,
|
|
25
|
+
stream: null,
|
|
26
|
+
error: null
|
|
27
|
+
};
|
|
32
28
|
}
|
|
33
|
-
|
|
34
29
|
/**
|
|
35
30
|
* Execute a single Claude CLI command
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
args.push(prompt);
|
|
46
|
-
const command = `claude ${args.join(' ')}`;
|
|
47
|
-
|
|
48
|
-
console.log(`🔄 Executing: ${command}`);
|
|
49
|
-
|
|
50
|
-
const startTime = Date.now();
|
|
51
|
-
|
|
52
|
-
exec(
|
|
53
|
-
command,
|
|
54
|
-
{
|
|
55
|
-
timeout,
|
|
56
|
-
maxBuffer: 1024 * 1024 * 10, // 10MB buffer
|
|
57
|
-
},
|
|
58
|
-
(error, stdout, stderr) => {
|
|
59
|
-
const duration = Date.now() - startTime;
|
|
60
|
-
|
|
61
|
-
if (error && error.code === 'TIMEOUT') {
|
|
62
|
-
console.log('⚠️ Claude CLI timed out, using mock response...');
|
|
63
|
-
resolve(mockResponse(prompt));
|
|
64
|
-
return;
|
|
31
|
+
*/ async function executeClaudeCommand(prompt, timeout = 20000, useStreamJson = false) {
|
|
32
|
+
return new Promise((resolve)=>{
|
|
33
|
+
const args = [
|
|
34
|
+
'-p'
|
|
35
|
+
];
|
|
36
|
+
if (useStreamJson) {
|
|
37
|
+
args.push('--output-format', 'stream-json', '--verbose');
|
|
65
38
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
39
|
+
args.push(prompt);
|
|
40
|
+
const command = `claude ${args.join(' ')}`;
|
|
41
|
+
console.log(`🔄 Executing: ${command}`);
|
|
42
|
+
const startTime = Date.now();
|
|
43
|
+
exec(command, {
|
|
44
|
+
timeout,
|
|
45
|
+
maxBuffer: 1024 * 1024 * 10
|
|
46
|
+
}, (error, stdout, stderr)=>{
|
|
47
|
+
const duration = Date.now() - startTime;
|
|
48
|
+
if (error && error.code === 'TIMEOUT') {
|
|
49
|
+
console.log('⚠️ Claude CLI timed out, using mock response...');
|
|
50
|
+
resolve(mockResponse(prompt));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (error) {
|
|
54
|
+
console.error('Claude CLI error:', error.message);
|
|
55
|
+
resolve(mockResponse(prompt));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
resolve({
|
|
59
|
+
success: true,
|
|
60
|
+
duration,
|
|
61
|
+
output: stdout.trim(),
|
|
62
|
+
stream: useStreamJson ? stdout : null,
|
|
63
|
+
error: stderr ? stderr.trim() : null
|
|
64
|
+
});
|
|
79
65
|
});
|
|
80
|
-
|
|
81
|
-
);
|
|
82
|
-
});
|
|
66
|
+
});
|
|
83
67
|
}
|
|
84
|
-
|
|
85
68
|
/**
|
|
86
69
|
* Main stream chain command
|
|
87
|
-
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (subcommand === 'help') {
|
|
92
|
-
console.log(`
|
|
70
|
+
*/ export async function streamChainCommand(args, flags) {
|
|
71
|
+
const subcommand = args[0] || 'help';
|
|
72
|
+
if (subcommand === 'help') {
|
|
73
|
+
console.log(`
|
|
93
74
|
🔗 Stream Chain Command
|
|
94
75
|
|
|
95
76
|
USAGE:
|
|
@@ -110,112 +91,88 @@ EXAMPLES:
|
|
|
110
91
|
|
|
111
92
|
For real execution, Claude CLI must be installed and configured.
|
|
112
93
|
`);
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (subcommand === 'test') {
|
|
117
|
-
console.log('🧪 Testing Claude CLI...');
|
|
118
|
-
|
|
119
|
-
if (!checkClaudeAvailable()) {
|
|
120
|
-
console.log('❌ Claude CLI not found');
|
|
121
|
-
return;
|
|
94
|
+
return;
|
|
122
95
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
96
|
+
if (subcommand === 'test') {
|
|
97
|
+
console.log('🧪 Testing Claude CLI...');
|
|
98
|
+
if (!checkClaudeAvailable()) {
|
|
99
|
+
console.log('❌ Claude CLI not found');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const result = await executeClaudeCommand('Hello, test', 10000);
|
|
103
|
+
console.log('✅ Test result:', result.success ? 'PASSED' : 'FAILED');
|
|
104
|
+
if (result.output) {
|
|
105
|
+
console.log('📄 Output:', result.output.slice(0, 100) + '...');
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
128
108
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
'Design the data model',
|
|
139
|
-
'Create implementation plan',
|
|
140
|
-
];
|
|
141
|
-
|
|
142
|
-
return runChain(prompts, flags);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
if (subcommand === 'run') {
|
|
146
|
-
const prompts = args.slice(1);
|
|
147
|
-
|
|
148
|
-
if (prompts.length < 2) {
|
|
149
|
-
console.error('❌ Error: Need at least 2 prompts');
|
|
150
|
-
console.log('Usage: stream-chain run "prompt1" "prompt2" [...]');
|
|
151
|
-
return;
|
|
109
|
+
if (subcommand === 'demo') {
|
|
110
|
+
console.log('🎭 Running Stream Chain Demo');
|
|
111
|
+
console.log('━'.repeat(50));
|
|
112
|
+
const prompts = [
|
|
113
|
+
'Analyze requirements for a todo app',
|
|
114
|
+
'Design the data model',
|
|
115
|
+
'Create implementation plan'
|
|
116
|
+
];
|
|
117
|
+
return runChain(prompts, flags);
|
|
152
118
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
119
|
+
if (subcommand === 'run') {
|
|
120
|
+
const prompts = args.slice(1);
|
|
121
|
+
if (prompts.length < 2) {
|
|
122
|
+
console.error('❌ Error: Need at least 2 prompts');
|
|
123
|
+
console.log('Usage: stream-chain run "prompt1" "prompt2" [...]');
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
return runChain(prompts, flags);
|
|
127
|
+
}
|
|
128
|
+
console.error(`❌ Unknown subcommand: ${subcommand}`);
|
|
129
|
+
console.log('Use "stream-chain help" for usage information');
|
|
159
130
|
}
|
|
160
|
-
|
|
161
131
|
/**
|
|
162
132
|
* Execute a chain of prompts
|
|
163
|
-
*/
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const useMock = flags.mock || !checkClaudeAvailable();
|
|
167
|
-
|
|
168
|
-
if (useMock) {
|
|
169
|
-
console.log('ℹ️ Using mock mode (Claude CLI not available or --mock flag used)');
|
|
170
|
-
} else {
|
|
171
|
-
console.log('ℹ️ Using real Claude CLI execution');
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
console.log(`📝 Chain length: ${prompts.length} steps\n`);
|
|
175
|
-
|
|
176
|
-
const results = [];
|
|
177
|
-
|
|
178
|
-
for (let i = 0; i < prompts.length; i++) {
|
|
179
|
-
const prompt = prompts[i];
|
|
180
|
-
console.log(`🔄 Step ${i + 1}/${prompts.length}: ${prompt.slice(0, 50)}...`);
|
|
181
|
-
|
|
182
|
-
let result;
|
|
133
|
+
*/ async function runChain(prompts, flags) {
|
|
134
|
+
const timeout = (flags.timeout || 20) * 1000;
|
|
135
|
+
const useMock = flags.mock || !checkClaudeAvailable();
|
|
183
136
|
if (useMock) {
|
|
184
|
-
|
|
137
|
+
console.log('ℹ️ Using mock mode (Claude CLI not available or --mock flag used)');
|
|
185
138
|
} else {
|
|
186
|
-
|
|
139
|
+
console.log('ℹ️ Using real Claude CLI execution');
|
|
187
140
|
}
|
|
188
|
-
|
|
189
|
-
results
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
141
|
+
console.log(`📝 Chain length: ${prompts.length} steps\n`);
|
|
142
|
+
const results = [];
|
|
143
|
+
for(let i = 0; i < prompts.length; i++){
|
|
144
|
+
const prompt = prompts[i];
|
|
145
|
+
console.log(`🔄 Step ${i + 1}/${prompts.length}: ${prompt.slice(0, 50)}...`);
|
|
146
|
+
let result;
|
|
147
|
+
if (useMock) {
|
|
148
|
+
result = mockResponse(prompt);
|
|
149
|
+
} else {
|
|
150
|
+
result = await executeClaudeCommand(prompt, timeout, false);
|
|
151
|
+
}
|
|
152
|
+
results.push({
|
|
153
|
+
step: i + 1,
|
|
154
|
+
prompt: prompt.slice(0, 50),
|
|
155
|
+
success: result.success,
|
|
156
|
+
duration: result.duration
|
|
157
|
+
});
|
|
158
|
+
if (!result.success) {
|
|
159
|
+
console.error(`❌ Step ${i + 1} failed`);
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
console.log(`✅ Step ${i + 1} completed (${result.duration}ms)`);
|
|
163
|
+
if (flags.verbose && result.output) {
|
|
164
|
+
console.log(` Output: ${result.output.slice(0, 200)}...`);
|
|
165
|
+
}
|
|
199
166
|
}
|
|
200
|
-
|
|
201
|
-
console.log(
|
|
202
|
-
|
|
203
|
-
|
|
167
|
+
// Summary
|
|
168
|
+
console.log('\n' + '═'.repeat(50));
|
|
169
|
+
console.log('📊 Chain Summary');
|
|
170
|
+
console.log('═'.repeat(50));
|
|
171
|
+
for (const result of results){
|
|
172
|
+
const status = result.success ? '✅' : '❌';
|
|
173
|
+
console.log(`${status} Step ${result.step}: ${result.prompt}... (${result.duration}ms)`);
|
|
204
174
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
// Summary
|
|
208
|
-
console.log('\n' + '═'.repeat(50));
|
|
209
|
-
console.log('📊 Chain Summary');
|
|
210
|
-
console.log('═'.repeat(50));
|
|
211
|
-
|
|
212
|
-
for (const result of results) {
|
|
213
|
-
const status = result.success ? '✅' : '❌';
|
|
214
|
-
console.log(`${status} Step ${result.step}: ${result.prompt}... (${result.duration}ms)`);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
const totalTime = results.reduce((sum, r) => sum + r.duration, 0);
|
|
218
|
-
console.log(`\n⏱️ Total execution time: ${totalTime}ms`);
|
|
175
|
+
const totalTime = results.reduce((sum, r)=>sum + r.duration, 0);
|
|
176
|
+
console.log(`\n⏱️ Total execution time: ${totalTime}ms`);
|
|
219
177
|
}
|
|
220
|
-
|
|
221
178
|
export default streamChainCommand;
|
|
@@ -1,89 +1,68 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Execute a single step in the stream chain
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (useMock) {
|
|
20
|
-
// Mock implementation when claude CLI isn't available or mock flag is set
|
|
21
|
-
return mockStreamStep(prompt, inputStream, isLast, flags, safeResolve, startTime);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Set a reasonable timeout for real Claude CLI (15 seconds - more realistic)
|
|
25
|
-
const stepTimeout = flags.timeout ? parseInt(flags.timeout) * 1000 : 15000;
|
|
26
|
-
|
|
27
|
-
// Build command arguments
|
|
28
|
-
const args = ['-p'];
|
|
29
|
-
|
|
30
|
-
// For now, avoid stream-json input chaining due to format complexity
|
|
31
|
-
// Each step runs independently for better reliability
|
|
32
|
-
if (!isLast || flags.json) {
|
|
33
|
-
args.push('--output-format', 'stream-json');
|
|
34
|
-
// stream-json output requires --verbose
|
|
35
|
-
args.push('--verbose');
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Add the prompt
|
|
39
|
-
args.push(prompt);
|
|
40
|
-
|
|
41
|
-
if (flags.verbose) {
|
|
42
|
-
console.log(` Debug: Executing: claude ${args.join(' ')}`);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Use exec with built-in timeout for better reliability
|
|
46
|
-
const command = `claude ${args.join(' ')}`;
|
|
47
|
-
|
|
48
|
-
exec(
|
|
49
|
-
command,
|
|
50
|
-
{
|
|
51
|
-
timeout: stepTimeout,
|
|
52
|
-
maxBuffer: 1024 * 1024 * 10, // 10MB buffer
|
|
53
|
-
},
|
|
54
|
-
(error, stdout, stderr) => {
|
|
55
|
-
if (resolved) {
|
|
56
|
-
return; // Already resolved
|
|
3
|
+
*/ async function executeStreamStep(prompt, inputStream, isLast, flags = {}) {
|
|
4
|
+
return new Promise((resolve)=>{
|
|
5
|
+
const startTime = Date.now();
|
|
6
|
+
let resolved = false; // Prevent double resolution
|
|
7
|
+
const safeResolve = (result)=>{
|
|
8
|
+
if (!resolved) {
|
|
9
|
+
resolved = true;
|
|
10
|
+
resolve(result);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
// Check if we should use mock mode
|
|
14
|
+
const useMock = flags.mock || !checkClaudeAvailable();
|
|
15
|
+
if (useMock) {
|
|
16
|
+
// Mock implementation when claude CLI isn't available or mock flag is set
|
|
17
|
+
return mockStreamStep(prompt, inputStream, isLast, flags, safeResolve, startTime);
|
|
57
18
|
}
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Date.now(),
|
|
71
|
-
);
|
|
72
|
-
return;
|
|
19
|
+
// Set a reasonable timeout for real Claude CLI (15 seconds - more realistic)
|
|
20
|
+
const stepTimeout = flags.timeout ? parseInt(flags.timeout) * 1000 : 15000;
|
|
21
|
+
// Build command arguments
|
|
22
|
+
const args = [
|
|
23
|
+
'-p'
|
|
24
|
+
];
|
|
25
|
+
// For now, avoid stream-json input chaining due to format complexity
|
|
26
|
+
// Each step runs independently for better reliability
|
|
27
|
+
if (!isLast || flags.json) {
|
|
28
|
+
args.push('--output-format', 'stream-json');
|
|
29
|
+
// stream-json output requires --verbose
|
|
30
|
+
args.push('--verbose');
|
|
73
31
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
32
|
+
// Add the prompt
|
|
33
|
+
args.push(prompt);
|
|
34
|
+
if (flags.verbose) {
|
|
35
|
+
console.log(` Debug: Executing: claude ${args.join(' ')}`);
|
|
77
36
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
37
|
+
// Use exec with built-in timeout for better reliability
|
|
38
|
+
const command = `claude ${args.join(' ')}`;
|
|
39
|
+
exec(command, {
|
|
40
|
+
timeout: stepTimeout,
|
|
41
|
+
maxBuffer: 1024 * 1024 * 10
|
|
42
|
+
}, (error, stdout, stderr)=>{
|
|
43
|
+
if (resolved) {
|
|
44
|
+
return; // Already resolved
|
|
45
|
+
}
|
|
46
|
+
const duration = Date.now() - startTime;
|
|
47
|
+
if (error && error.code === 'TIMEOUT') {
|
|
48
|
+
// Handle timeout via exec
|
|
49
|
+
console.log('⚠️ Claude CLI timed out, falling back to mock mode...');
|
|
50
|
+
mockStreamStep(prompt, inputStream, isLast, {
|
|
51
|
+
...flags,
|
|
52
|
+
mock: true
|
|
53
|
+
}, safeResolve, Date.now());
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (flags.verbose && stderr) {
|
|
57
|
+
console.error('Error output:', stderr);
|
|
58
|
+
}
|
|
59
|
+
safeResolve({
|
|
60
|
+
success: !error || error.code === 0,
|
|
61
|
+
duration,
|
|
62
|
+
output: stdout || '',
|
|
63
|
+
stream: !isLast && stdout ? stdout : null,
|
|
64
|
+
error: stderr || (error ? error.message : null)
|
|
65
|
+
});
|
|
85
66
|
});
|
|
86
|
-
|
|
87
|
-
);
|
|
88
|
-
});
|
|
67
|
+
});
|
|
89
68
|
}
|