claude-flow-novice 2.0.3 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cli/commands/guidance.js +487 -668
- package/dist/src/cli/commands/index-validate.js +18 -29
- package/dist/src/cli/commands/mcp-troubleshoot.js +230 -282
- package/dist/src/cli/commands/neural-goal-init.js +92 -125
- package/dist/src/cli/commands/swarm-exec.js +317 -393
- package/dist/src/cli/commands/swarm.js +1 -1
- package/dist/src/cli/commands/validate-framework.js +983 -1100
- package/dist/src/cli/commands/validate.js +144 -223
- package/dist/src/cli/simple-commands/__tests__/agent.test.js +265 -277
- package/dist/src/cli/simple-commands/__tests__/memory.test.js +6 -7
- package/dist/src/cli/simple-commands/__tests__/swarm.test.js +373 -356
- package/dist/src/cli/simple-commands/__tests__/task.test.js +6 -7
- package/dist/src/cli/simple-commands/agent.js +157 -193
- package/dist/src/cli/simple-commands/analysis.js +336 -446
- package/dist/src/cli/simple-commands/automation-executor.js +1095 -1339
- package/dist/src/cli/simple-commands/automation.js +481 -469
- package/dist/src/cli/simple-commands/batch-manager.js +261 -313
- package/dist/src/cli/simple-commands/claude-telemetry.js +241 -267
- package/dist/src/cli/simple-commands/claude-track.js +68 -90
- package/dist/src/cli/simple-commands/concurrent-display.js +266 -320
- package/dist/src/cli/simple-commands/config.js +245 -290
- package/dist/src/cli/simple-commands/coordination.js +182 -234
- package/dist/src/cli/simple-commands/enhanced-ui-views.js +812 -615
- package/dist/src/cli/simple-commands/enhanced-webui-complete.js +922 -981
- package/dist/src/cli/simple-commands/fix-hook-variables.js +274 -294
- package/dist/src/cli/simple-commands/github/gh-coordinator.js +378 -457
- package/dist/src/cli/simple-commands/github/github-api.js +535 -574
- package/dist/src/cli/simple-commands/github/init.js +276 -303
- package/dist/src/cli/simple-commands/github.js +222 -247
- package/dist/src/cli/simple-commands/goal.js +51 -63
- package/dist/src/cli/simple-commands/hive-mind/auto-save-middleware.js +208 -278
- package/dist/src/cli/simple-commands/hive-mind/communication.js +601 -696
- package/dist/src/cli/simple-commands/hive-mind/core.js +907 -979
- package/dist/src/cli/simple-commands/hive-mind/db-optimizer.js +406 -655
- package/dist/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1125 -1245
- package/dist/src/cli/simple-commands/hive-mind/memory.js +854 -1090
- package/dist/src/cli/simple-commands/hive-mind/performance-optimizer.js +459 -574
- package/dist/src/cli/simple-commands/hive-mind/performance-test.js +263 -347
- package/dist/src/cli/simple-commands/hive-mind/queen.js +727 -768
- package/dist/src/cli/simple-commands/hive-mind/session-manager.js +745 -1049
- package/dist/src/cli/simple-commands/hive-mind-optimize.js +227 -283
- package/dist/src/cli/simple-commands/hive-mind-wizard.js +174 -217
- package/dist/src/cli/simple-commands/hive-mind.js +1842 -2283
- package/dist/src/cli/simple-commands/hive.js +90 -79
- package/dist/src/cli/simple-commands/hook-safety.js +431 -521
- package/dist/src/cli/simple-commands/hooks/session-start-soul.js +203 -254
- package/dist/src/cli/simple-commands/hooks.js +1064 -1204
- package/dist/src/cli/simple-commands/init/agent-copier.js +294 -319
- package/dist/src/cli/simple-commands/init/batch-init.js +496 -562
- package/dist/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +13 -19
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +13 -19
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +61 -88
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +125 -150
- package/dist/src/cli/simple-commands/init/claude-commands/slash-commands.js +42 -49
- package/dist/src/cli/simple-commands/init/claude-commands/sparc-commands.js +43 -61
- package/dist/src/cli/simple-commands/init/copy-revised-templates.js +141 -147
- package/dist/src/cli/simple-commands/init/executable-wrapper.js +31 -44
- package/dist/src/cli/simple-commands/init/gitignore-updater.js +64 -90
- package/dist/src/cli/simple-commands/init/help.js +104 -107
- package/dist/src/cli/simple-commands/init/hive-mind-init.js +509 -528
- package/dist/src/cli/simple-commands/init/index.js +1510 -1759
- package/dist/src/cli/simple-commands/init/performance-monitor.js +234 -317
- package/dist/src/cli/simple-commands/init/rollback/backup-manager.js +441 -504
- package/dist/src/cli/simple-commands/init/rollback/index.js +289 -364
- package/dist/src/cli/simple-commands/init/rollback/recovery-manager.js +652 -728
- package/dist/src/cli/simple-commands/init/rollback/rollback-executor.js +416 -481
- package/dist/src/cli/simple-commands/init/rollback/state-tracker.js +369 -448
- package/dist/src/cli/simple-commands/init/sparc/roo-readme.js +1 -2
- package/dist/src/cli/simple-commands/init/sparc/roomodes-config.js +122 -99
- package/dist/src/cli/simple-commands/init/sparc/workflows.js +32 -37
- package/dist/src/cli/simple-commands/init/sparc-structure.js +55 -62
- package/dist/src/cli/simple-commands/init/template-copier.js +421 -533
- package/dist/src/cli/simple-commands/init/templates/coordination-md.js +3 -6
- package/dist/src/cli/simple-commands/init/templates/enhanced-templates.js +344 -318
- package/dist/src/cli/simple-commands/init/templates/github-safe-enhanced.js +173 -218
- package/dist/src/cli/simple-commands/init/templates/github-safe.js +65 -75
- package/dist/src/cli/simple-commands/init/templates/memory-bank-md.js +3 -6
- package/dist/src/cli/simple-commands/init/templates/readme-files.js +2 -4
- package/dist/src/cli/simple-commands/init/templates/safe-hook-patterns.js +187 -230
- package/dist/src/cli/simple-commands/init/templates/sparc-modes.js +53 -80
- package/dist/src/cli/simple-commands/init/templates/verification-claude-md.js +101 -85
- package/dist/src/cli/simple-commands/init/validation/config-validator.js +283 -330
- package/dist/src/cli/simple-commands/init/validation/health-checker.js +495 -561
- package/dist/src/cli/simple-commands/init/validation/index.js +302 -358
- package/dist/src/cli/simple-commands/init/validation/mode-validator.js +308 -359
- package/dist/src/cli/simple-commands/init/validation/post-init-validator.js +389 -366
- package/dist/src/cli/simple-commands/init/validation/pre-init-validator.js +270 -268
- package/dist/src/cli/simple-commands/init/validation/test-runner.js +427 -447
- package/dist/src/cli/simple-commands/init.js +1 -2
- package/dist/src/cli/simple-commands/mcp-health.js +131 -158
- package/dist/src/cli/simple-commands/mcp-integration-layer.js +533 -634
- package/dist/src/cli/simple-commands/mcp.js +345 -400
- package/dist/src/cli/simple-commands/memory-consolidation.js +426 -537
- package/dist/src/cli/simple-commands/memory.js +247 -311
- package/dist/src/cli/simple-commands/migrate-hooks.js +39 -46
- package/dist/src/cli/simple-commands/monitor.js +294 -363
- package/dist/src/cli/simple-commands/neural.js +51 -65
- package/dist/src/cli/simple-commands/pair-autofix-only.js +538 -662
- package/dist/src/cli/simple-commands/pair-basic.js +528 -656
- package/dist/src/cli/simple-commands/pair-old.js +430 -543
- package/dist/src/cli/simple-commands/pair-working.js +615 -751
- package/dist/src/cli/simple-commands/pair.js +615 -751
- package/dist/src/cli/simple-commands/performance-hooks.js +83 -111
- package/dist/src/cli/simple-commands/performance-metrics.js +348 -433
- package/dist/src/cli/simple-commands/process-ui-enhanced.js +708 -787
- package/dist/src/cli/simple-commands/process-ui.js +230 -254
- package/dist/src/cli/simple-commands/realtime-update-system.js +525 -611
- package/dist/src/cli/simple-commands/sparc/architecture.js +1704 -1530
- package/dist/src/cli/simple-commands/sparc/commands.js +438 -516
- package/dist/src/cli/simple-commands/sparc/completion.js +1224 -1481
- package/dist/src/cli/simple-commands/sparc/coordinator.js +913 -978
- package/dist/src/cli/simple-commands/sparc/index.js +241 -298
- package/dist/src/cli/simple-commands/sparc/phase-base.js +314 -390
- package/dist/src/cli/simple-commands/sparc/pseudocode.js +965 -869
- package/dist/src/cli/simple-commands/sparc/refinement.js +980 -1273
- package/dist/src/cli/simple-commands/sparc/specification.js +559 -645
- package/dist/src/cli/simple-commands/sparc-modes/architect.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/ask.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/code.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/debug.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/devops.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/docs-writer.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/generic.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/index.js +47 -55
- package/dist/src/cli/simple-commands/sparc-modes/integration.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/mcp.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/monitoring.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/optimization.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/security-review.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/supabase-admin.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/swarm.js +101 -87
- package/dist/src/cli/simple-commands/sparc-modes/tdd.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/tutorial.js +1 -1
- package/dist/src/cli/simple-commands/sparc.js +465 -493
- package/dist/src/cli/simple-commands/start-ui.js +108 -132
- package/dist/src/cli/simple-commands/start-wrapper.js +240 -268
- package/dist/src/cli/simple-commands/start.js +1 -1
- package/dist/src/cli/simple-commands/status.js +254 -275
- package/dist/src/cli/simple-commands/stream-chain-clean.js +128 -171
- package/dist/src/cli/simple-commands/stream-chain-fixed.js +61 -82
- package/dist/src/cli/simple-commands/stream-chain-real.js +267 -331
- package/dist/src/cli/simple-commands/stream-chain-working.js +211 -263
- package/dist/src/cli/simple-commands/stream-chain.js +260 -318
- package/dist/src/cli/simple-commands/stream-processor.js +290 -315
- package/dist/src/cli/simple-commands/swarm-executor.js +189 -222
- package/dist/src/cli/simple-commands/swarm-metrics-integration.js +208 -300
- package/dist/src/cli/simple-commands/swarm-ui.js +623 -703
- package/dist/src/cli/simple-commands/swarm-webui-integration.js +258 -286
- package/dist/src/cli/simple-commands/swarm.js +887 -1082
- package/dist/src/cli/simple-commands/task.js +161 -206
- package/dist/src/cli/simple-commands/timestamp-fix.js +59 -89
- package/dist/src/cli/simple-commands/token-tracker.js +258 -316
- package/dist/src/cli/simple-commands/tool-execution-framework.js +433 -519
- package/dist/src/cli/simple-commands/train-and-stream.js +275 -331
- package/dist/src/cli/simple-commands/training-pipeline.js +619 -725
- package/dist/src/cli/simple-commands/training.js +170 -227
- package/dist/src/cli/simple-commands/verification-hooks.js +261 -284
- package/dist/src/cli/simple-commands/verification-integration.js +389 -417
- package/dist/src/cli/simple-commands/verification-training-integration.js +486 -606
- package/dist/src/cli/simple-commands/verification.js +493 -513
- package/dist/src/cli/simple-commands/web-server.js +766 -836
- package/dist/src/cli/simple-commands/webui-validator.js +106 -124
- package/dist/src/coordination/event-bus/demo-wasm-integration.js +212 -251
- package/dist/src/coordination/event-bus/qe-event-bus.js +608 -748
- package/dist/src/coordination/event-bus/qe-event-bus.test.js +379 -454
- package/dist/src/coordination/iteration-tracker.js +363 -454
- package/dist/src/enterprise/analytics-manager.js +1135 -0
- package/dist/src/enterprise/audit-manager.js +1115 -0
- package/dist/src/enterprise/cloud-manager.js +891 -0
- package/dist/src/enterprise/deployment-manager.js +966 -0
- package/dist/src/enterprise/index.js +6 -0
- package/dist/src/enterprise/project-manager.js +584 -0
- package/dist/src/enterprise/security-manager.js +991 -0
- package/dist/src/index.js +1 -1
- package/dist/src/mcp/DEPRECATED.js +46 -60
- package/dist/src/mcp/fixes/mcp-error-fixes.js +115 -134
- package/dist/src/mcp/implementations/agent-tracker.js +114 -128
- package/dist/src/mcp/implementations/daa-tools.js +292 -350
- package/dist/src/mcp/implementations/workflow-tools.js +329 -361
- package/dist/src/mcp/mcp-config-manager.js +1183 -1331
- package/dist/src/mcp/mcp-server-novice-simplified.js +11 -17
- package/dist/src/mcp/mcp-server-novice.js +11 -17
- package/dist/src/mcp/mcp-server-sdk.js +11 -17
- package/dist/src/mcp/mcp-server.js +1620 -1484
- package/dist/src/mcp/ruv-swarm-wrapper.js +209 -239
- package/dist/src/memory/advanced-serializer.js +609 -589
- package/dist/src/memory/enhanced-examples.js +220 -305
- package/dist/src/memory/enhanced-memory.js +295 -336
- package/dist/src/memory/enhanced-session-serializer.js +408 -492
- package/dist/src/memory/fallback-memory-system.js +900 -1021
- package/dist/src/memory/fallback-store.js +93 -131
- package/dist/src/memory/high-performance-serialization.js +592 -730
- package/dist/src/memory/in-memory-store.js +161 -213
- package/dist/src/memory/index.js +123 -157
- package/dist/src/memory/lock-free-structures.js +578 -764
- package/dist/src/memory/memory-mapped-persistence.js +585 -766
- package/dist/src/memory/memory-pressure-manager.js +569 -707
- package/dist/src/memory/migration.js +358 -445
- package/dist/src/memory/shared-memory.js +641 -768
- package/dist/src/memory/sqlite-store.js +245 -325
- package/dist/src/memory/sqlite-wrapper.js +122 -151
- package/dist/src/memory/swarm-memory.js +470 -603
- package/dist/src/memory/test-example.js +126 -134
- package/dist/src/memory/ultra-fast-memory-store.js +622 -821
- package/dist/src/memory/unified-memory-manager.js +356 -437
- package/dist/src/migration/index.js +92 -0
- package/dist/src/migration/logger.js +121 -0
- package/dist/src/migration/migration-analyzer.js +268 -0
- package/dist/src/migration/migration-runner.js +522 -0
- package/dist/src/migration/migration-validator.js +285 -0
- package/dist/src/migration/progress-reporter.js +150 -0
- package/dist/src/migration/rollback-manager.js +321 -0
- package/dist/src/migration/tests/migration-system.test.js +7 -0
- package/dist/src/migration/types.js +3 -0
- package/dist/src/swarm/CodeRefactoringSwarm.js +777 -952
- package/dist/src/swarm/__tests__/integration.test.js +227 -0
- package/dist/src/swarm/__tests__/prompt-copier.test.js +344 -0
- package/dist/src/swarm/advanced-orchestrator.js +1095 -0
- package/dist/src/swarm/claude-code-interface.js +961 -0
- package/dist/src/swarm/claude-flow-executor.js +229 -0
- package/dist/src/swarm/consensus-coordinator.js +475 -0
- package/dist/src/swarm/coordinator.js +2993 -0
- package/dist/src/swarm/direct-executor.js +1180 -0
- package/dist/src/swarm/error-recovery/advanced-error-detection.js +691 -0
- package/dist/src/swarm/error-recovery/automated-recovery-workflows.js +998 -0
- package/dist/src/swarm/error-recovery/error-recovery-coordinator.js +1197 -0
- package/dist/src/swarm/error-recovery/recovery-monitoring.js +772 -0
- package/dist/src/swarm/error-recovery/resilience-architecture.js +714 -0
- package/dist/src/swarm/error-recovery/self-healing-mechanisms.js +1319 -0
- package/dist/src/swarm/error-recovery/test-error-recovery-effectiveness.js +808 -0
- package/dist/src/swarm/executor-v2.js +322 -0
- package/dist/src/swarm/executor.js +815 -0
- package/dist/src/swarm/hive-mind-integration.js +703 -0
- package/dist/src/swarm/index.js +41 -0
- package/dist/src/swarm/json-output-aggregator.js +267 -0
- package/dist/src/swarm/large-scale-coordinator.js +542 -0
- package/dist/src/swarm/mcp-integration-wrapper.js +628 -0
- package/dist/src/swarm/memory.js +1117 -0
- package/dist/src/swarm/optimizations/__tests__/optimization.test.js +348 -0
- package/dist/src/swarm/optimizations/async-file-manager.js +285 -0
- package/dist/src/swarm/optimizations/circular-buffer.js +162 -0
- package/dist/src/swarm/optimizations/connection-pool.js +244 -0
- package/dist/src/swarm/optimizations/index.js +28 -0
- package/dist/src/swarm/optimizations/optimized-executor.js +320 -0
- package/dist/src/swarm/optimizations/ttl-map.js +234 -0
- package/dist/src/swarm/prompt-cli.js +200 -0
- package/dist/src/swarm/prompt-copier-enhanced.js +202 -0
- package/dist/src/swarm/prompt-copier.js +381 -0
- package/dist/src/swarm/prompt-manager.js +295 -0
- package/dist/src/swarm/prompt-utils.js +310 -0
- package/dist/src/swarm/result-aggregator.js +718 -0
- package/dist/src/swarm/sparc-executor.js +1568 -0
- package/dist/src/swarm/strategies/auto.js +758 -0
- package/dist/src/swarm/strategies/base.js +128 -0
- package/dist/src/swarm/strategies/research.js +914 -0
- package/dist/src/swarm/strategies/strategy-metrics-patch.js +2 -0
- package/dist/src/swarm/types.js +52 -0
- package/dist/src/swarm/workers/copy-worker.js +56 -0
- package/dist/src/utils/__tests__/github-cli-safety-wrapper.test.js +332 -400
- package/dist/src/utils/github-cli-safe.js +56 -64
- package/dist/src/utils/github-cli-safety-wrapper.js +451 -546
- package/dist/src/utils/npx-isolated-cache.js +104 -119
- package/dist/src/utils/preference-manager.js +622 -652
- package/dist/src/utils/timezone-utils.js +86 -105
- package/dist/src/validators/epic-config-schema.js +214 -0
- package/dist/src/validators/index.js +10 -0
- package/dist/src/validators/swarm-init-validator.js +259 -0
- package/dist/src/validators/todowrite-batching-validator.js +215 -0
- package/dist/src/validators/todowrite-integration.js +187 -0
- package/package.json +2 -2
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
2
|
/**
|
|
4
3
|
* Enhanced Safe GitHub CLI Helper - Production Ready
|
|
5
4
|
* Uses the comprehensive GitHubCliSafe wrapper for secure command execution
|
|
@@ -16,23 +15,13 @@
|
|
|
16
15
|
* ./github-safe-enhanced.js pr create --title "Title" --body "Complex body with special chars"
|
|
17
16
|
* ./github-safe-enhanced.js issue create --title "Bug Report" --body "Long description..." --labels "bug,urgent"
|
|
18
17
|
* ./github-safe-enhanced.js release create v1.0.0 --title "Release v1.0.0" --body "Release notes..."
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
// Import the production-ready GitHub CLI safety wrapper
|
|
22
|
-
import {
|
|
23
|
-
githubCli,
|
|
24
|
-
GitHubCliError,
|
|
25
|
-
GitHubCliTimeoutError,
|
|
26
|
-
GitHubCliValidationError,
|
|
27
|
-
} from '../../../utils/github-cli-safety-wrapper.js';
|
|
28
|
-
|
|
18
|
+
*/ // Import the production-ready GitHub CLI safety wrapper
|
|
19
|
+
import { githubCli, GitHubCliTimeoutError, GitHubCliValidationError } from "../../../utils/github-cli-safety-wrapper.js";
|
|
29
20
|
const args = process.argv.slice(2);
|
|
30
|
-
|
|
31
21
|
/**
|
|
32
22
|
* Show help message
|
|
33
|
-
*/
|
|
34
|
-
|
|
35
|
-
console.log(`
|
|
23
|
+
*/ function showHelp() {
|
|
24
|
+
console.log(`
|
|
36
25
|
🛡️ Enhanced Safe GitHub CLI Helper
|
|
37
26
|
|
|
38
27
|
FEATURES:
|
|
@@ -94,238 +83,204 @@ SECURITY FEATURES:
|
|
|
94
83
|
🔒 Implements proper process cleanup and timeout handling
|
|
95
84
|
`);
|
|
96
85
|
}
|
|
97
|
-
|
|
98
86
|
/**
|
|
99
87
|
* Parse command line arguments into structured format
|
|
100
|
-
*/
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
process.exit(0);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const [command, subcommand, ...restArgs] = args;
|
|
108
|
-
const options = {};
|
|
109
|
-
const positionalArgs = [];
|
|
110
|
-
|
|
111
|
-
// Parse flags and options
|
|
112
|
-
for (let i = 0; i < restArgs.length; i++) {
|
|
113
|
-
const arg = restArgs[i];
|
|
114
|
-
|
|
115
|
-
if (arg.startsWith('--')) {
|
|
116
|
-
const flagName = arg.substring(2);
|
|
117
|
-
const nextArg = restArgs[i + 1];
|
|
118
|
-
|
|
119
|
-
if (nextArg && !nextArg.startsWith('--')) {
|
|
120
|
-
options[flagName] = nextArg;
|
|
121
|
-
i++; // Skip the next argument
|
|
122
|
-
} else {
|
|
123
|
-
options[flagName] = true;
|
|
124
|
-
}
|
|
125
|
-
} else {
|
|
126
|
-
positionalArgs.push(arg);
|
|
88
|
+
*/ function parseArguments(args) {
|
|
89
|
+
if (args.length === 0 || args.includes('--help')) {
|
|
90
|
+
showHelp();
|
|
91
|
+
process.exit(0);
|
|
127
92
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
93
|
+
const [command, subcommand, ...restArgs] = args;
|
|
94
|
+
const options = {};
|
|
95
|
+
const positionalArgs = [];
|
|
96
|
+
// Parse flags and options
|
|
97
|
+
for(let i = 0; i < restArgs.length; i++){
|
|
98
|
+
const arg = restArgs[i];
|
|
99
|
+
if (arg.startsWith('--')) {
|
|
100
|
+
const flagName = arg.substring(2);
|
|
101
|
+
const nextArg = restArgs[i + 1];
|
|
102
|
+
if (nextArg && !nextArg.startsWith('--')) {
|
|
103
|
+
options[flagName] = nextArg;
|
|
104
|
+
i++; // Skip the next argument
|
|
105
|
+
} else {
|
|
106
|
+
options[flagName] = true;
|
|
107
|
+
}
|
|
108
|
+
} else {
|
|
109
|
+
positionalArgs.push(arg);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
command,
|
|
114
|
+
subcommand,
|
|
115
|
+
positionalArgs,
|
|
116
|
+
options
|
|
117
|
+
};
|
|
131
118
|
}
|
|
132
|
-
|
|
133
119
|
/**
|
|
134
120
|
* Execute GitHub CLI command safely
|
|
135
|
-
*/
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
console.error('💡 Input validation failed. Check for dangerous characters or patterns.');
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
if (options.verbose && error.details) {
|
|
181
|
-
console.error('Details:', error.details);
|
|
121
|
+
*/ async function executeCommand(command, subcommand, positionalArgs, options) {
|
|
122
|
+
try {
|
|
123
|
+
// Handle dry-run mode
|
|
124
|
+
if (options['dry-run']) {
|
|
125
|
+
console.log('🔍 DRY RUN MODE - Would execute:');
|
|
126
|
+
console.log(`Command: ${command} ${subcommand}`);
|
|
127
|
+
console.log(`Arguments:`, positionalArgs);
|
|
128
|
+
console.log(`Options:`, options);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
// Configure GitHub CLI wrapper
|
|
132
|
+
const cliOptions = {
|
|
133
|
+
timeout: parseInt(options.timeout) || 30000,
|
|
134
|
+
enableLogging: options.verbose || false
|
|
135
|
+
};
|
|
136
|
+
let result;
|
|
137
|
+
// Route to appropriate method based on command
|
|
138
|
+
if (command === 'issue') {
|
|
139
|
+
result = await handleIssueCommand(subcommand, positionalArgs, options, cliOptions);
|
|
140
|
+
} else if (command === 'pr') {
|
|
141
|
+
result = await handlePRCommand(subcommand, positionalArgs, options, cliOptions);
|
|
142
|
+
} else if (command === 'release') {
|
|
143
|
+
result = await handleReleaseCommand(subcommand, positionalArgs, options, cliOptions);
|
|
144
|
+
} else {
|
|
145
|
+
throw new Error(`Unsupported command: ${command}`);
|
|
146
|
+
}
|
|
147
|
+
// Output result
|
|
148
|
+
console.log('✅ Command executed successfully');
|
|
149
|
+
if (options.verbose && result.stdout) {
|
|
150
|
+
console.log('Output:', result.stdout);
|
|
151
|
+
}
|
|
152
|
+
} catch (error) {
|
|
153
|
+
console.error('❌ Command failed:', error.message);
|
|
154
|
+
if (error instanceof GitHubCliTimeoutError) {
|
|
155
|
+
console.error('💡 Try increasing timeout with --timeout <ms>');
|
|
156
|
+
} else if (error instanceof GitHubCliValidationError) {
|
|
157
|
+
console.error('💡 Input validation failed. Check for dangerous characters or patterns.');
|
|
158
|
+
}
|
|
159
|
+
if (options.verbose && error.details) {
|
|
160
|
+
console.error('Details:', error.details);
|
|
161
|
+
}
|
|
162
|
+
process.exit(1);
|
|
182
163
|
}
|
|
183
|
-
|
|
184
|
-
process.exit(1);
|
|
185
|
-
}
|
|
186
164
|
}
|
|
187
|
-
|
|
188
165
|
/**
|
|
189
166
|
* Handle issue commands
|
|
190
|
-
*/
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
167
|
+
*/ async function handleIssueCommand(subcommand, positionalArgs, options, cliOptions) {
|
|
168
|
+
if (subcommand === 'create') {
|
|
169
|
+
if (!options.title || !options.body) {
|
|
170
|
+
throw new Error('Issue creation requires --title and --body options');
|
|
171
|
+
}
|
|
172
|
+
return await githubCli.createIssue({
|
|
173
|
+
title: options.title,
|
|
174
|
+
body: options.body,
|
|
175
|
+
labels: options.labels ? options.labels.split(',') : [],
|
|
176
|
+
assignees: options.assignees ? options.assignees.split(',') : [],
|
|
177
|
+
...cliOptions
|
|
178
|
+
});
|
|
179
|
+
} else if (subcommand === 'comment') {
|
|
180
|
+
const [issueNumber] = positionalArgs;
|
|
181
|
+
const body = positionalArgs[1] || options.body;
|
|
182
|
+
if (!issueNumber || !body) {
|
|
183
|
+
throw new Error('Issue comment requires issue number and body');
|
|
184
|
+
}
|
|
185
|
+
return await githubCli.addIssueComment(parseInt(issueNumber), body, cliOptions);
|
|
186
|
+
} else {
|
|
187
|
+
throw new Error(`Unsupported issue subcommand: ${subcommand}`);
|
|
210
188
|
}
|
|
211
|
-
|
|
212
|
-
return await githubCli.addIssueComment(parseInt(issueNumber), body, cliOptions);
|
|
213
|
-
} else {
|
|
214
|
-
throw new Error(`Unsupported issue subcommand: ${subcommand}`);
|
|
215
|
-
}
|
|
216
189
|
}
|
|
217
|
-
|
|
218
190
|
/**
|
|
219
191
|
* Handle PR commands
|
|
220
|
-
*/
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
192
|
+
*/ async function handlePRCommand(subcommand, positionalArgs, options, cliOptions) {
|
|
193
|
+
if (subcommand === 'create') {
|
|
194
|
+
if (!options.title || !options.body) {
|
|
195
|
+
throw new Error('PR creation requires --title and --body options');
|
|
196
|
+
}
|
|
197
|
+
return await githubCli.createPR({
|
|
198
|
+
title: options.title,
|
|
199
|
+
body: options.body,
|
|
200
|
+
base: options.base || 'main',
|
|
201
|
+
head: options.head,
|
|
202
|
+
draft: options.draft || false,
|
|
203
|
+
...cliOptions
|
|
204
|
+
});
|
|
205
|
+
} else if (subcommand === 'comment') {
|
|
206
|
+
const [prNumber] = positionalArgs;
|
|
207
|
+
const body = positionalArgs[1] || options.body;
|
|
208
|
+
if (!prNumber || !body) {
|
|
209
|
+
throw new Error('PR comment requires PR number and body');
|
|
210
|
+
}
|
|
211
|
+
return await githubCli.addPRComment(parseInt(prNumber), body, cliOptions);
|
|
212
|
+
} else {
|
|
213
|
+
throw new Error(`Unsupported PR subcommand: ${subcommand}`);
|
|
241
214
|
}
|
|
242
|
-
|
|
243
|
-
return await githubCli.addPRComment(parseInt(prNumber), body, cliOptions);
|
|
244
|
-
} else {
|
|
245
|
-
throw new Error(`Unsupported PR subcommand: ${subcommand}`);
|
|
246
|
-
}
|
|
247
215
|
}
|
|
248
|
-
|
|
249
216
|
/**
|
|
250
217
|
* Handle release commands
|
|
251
|
-
*/
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
218
|
+
*/ async function handleReleaseCommand(subcommand, positionalArgs, options, cliOptions) {
|
|
219
|
+
if (subcommand === 'create') {
|
|
220
|
+
const [tag] = positionalArgs;
|
|
221
|
+
if (!tag || !options.title || !options.body) {
|
|
222
|
+
throw new Error('Release creation requires tag, --title, and --body');
|
|
223
|
+
}
|
|
224
|
+
return await githubCli.createRelease({
|
|
225
|
+
tag,
|
|
226
|
+
title: options.title,
|
|
227
|
+
body: options.body,
|
|
228
|
+
prerelease: options.prerelease || false,
|
|
229
|
+
draft: options.draft || false,
|
|
230
|
+
...cliOptions
|
|
231
|
+
});
|
|
232
|
+
} else {
|
|
233
|
+
throw new Error(`Unsupported release subcommand: ${subcommand}`);
|
|
258
234
|
}
|
|
259
|
-
|
|
260
|
-
return await githubCli.createRelease({
|
|
261
|
-
tag,
|
|
262
|
-
title: options.title,
|
|
263
|
-
body: options.body,
|
|
264
|
-
prerelease: options.prerelease || false,
|
|
265
|
-
draft: options.draft || false,
|
|
266
|
-
...cliOptions,
|
|
267
|
-
});
|
|
268
|
-
} else {
|
|
269
|
-
throw new Error(`Unsupported release subcommand: ${subcommand}`);
|
|
270
|
-
}
|
|
271
235
|
}
|
|
272
|
-
|
|
273
236
|
/**
|
|
274
237
|
* Main execution
|
|
275
|
-
*/
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
238
|
+
*/ async function main() {
|
|
239
|
+
try {
|
|
240
|
+
// Parse arguments
|
|
241
|
+
const { command, subcommand, positionalArgs, options } = parseArguments(args);
|
|
242
|
+
// Check GitHub CLI availability
|
|
243
|
+
const isAvailable = await githubCli.checkGitHubCli();
|
|
244
|
+
if (!isAvailable) {
|
|
245
|
+
console.error('❌ GitHub CLI is not installed or not in PATH');
|
|
246
|
+
console.error('💡 Install from: https://cli.github.com/');
|
|
247
|
+
process.exit(1);
|
|
248
|
+
}
|
|
249
|
+
// Check authentication (unless dry-run)
|
|
250
|
+
if (!options['dry-run']) {
|
|
251
|
+
const isAuthenticated = await githubCli.checkAuthentication();
|
|
252
|
+
if (!isAuthenticated) {
|
|
253
|
+
console.error('❌ GitHub CLI is not authenticated');
|
|
254
|
+
console.error('💡 Run: gh auth login');
|
|
255
|
+
process.exit(1);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// Execute command
|
|
259
|
+
await executeCommand(command, subcommand, positionalArgs, options);
|
|
260
|
+
} catch (error) {
|
|
261
|
+
console.error('❌ Unexpected error:', error.message);
|
|
262
|
+
if (args.includes('--verbose')) {
|
|
263
|
+
console.error('Stack trace:', error.stack);
|
|
264
|
+
}
|
|
295
265
|
process.exit(1);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
// Execute command
|
|
300
|
-
await executeCommand(command, subcommand, positionalArgs, options);
|
|
301
|
-
} catch (error) {
|
|
302
|
-
console.error('❌ Unexpected error:', error.message);
|
|
303
|
-
if (args.includes('--verbose')) {
|
|
304
|
-
console.error('Stack trace:', error.stack);
|
|
305
266
|
}
|
|
306
|
-
process.exit(1);
|
|
307
|
-
}
|
|
308
267
|
}
|
|
309
|
-
|
|
310
268
|
// Handle process cleanup
|
|
311
|
-
process.on('SIGINT', async ()
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
269
|
+
process.on('SIGINT', async ()=>{
|
|
270
|
+
console.log('\n🛑 Received interrupt signal, cleaning up...');
|
|
271
|
+
await githubCli.cleanup();
|
|
272
|
+
process.exit(0);
|
|
315
273
|
});
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
process.exit(0);
|
|
274
|
+
process.on('SIGTERM', async ()=>{
|
|
275
|
+
console.log('\n🛑 Received termination signal, cleaning up...');
|
|
276
|
+
await githubCli.cleanup();
|
|
277
|
+
process.exit(0);
|
|
321
278
|
});
|
|
322
|
-
|
|
323
279
|
// Run if called directly
|
|
324
280
|
if (import.meta.main || process.argv[1].endsWith('github-safe-enhanced.js')) {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
281
|
+
main().catch((error)=>{
|
|
282
|
+
console.error('💥 Fatal error:', error.message);
|
|
283
|
+
process.exit(1);
|
|
284
|
+
});
|
|
329
285
|
}
|
|
330
|
-
|
|
331
286
|
export { executeCommand, handleIssueCommand, handlePRCommand, handleReleaseCommand };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
2
|
/**
|
|
4
3
|
* Safe GitHub CLI Helper
|
|
5
4
|
* Prevents timeout issues when using gh commands with special characters
|
|
@@ -7,18 +6,14 @@
|
|
|
7
6
|
* Usage:
|
|
8
7
|
* ./github-safe.js issue comment 123 "Message with `backticks`"
|
|
9
8
|
* ./github-safe.js pr create --title "Title" --body "Complex body"
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { join } from 'path';
|
|
16
|
-
import { randomBytes } from 'crypto';
|
|
17
|
-
|
|
9
|
+
*/ import { execSync } from "child_process";
|
|
10
|
+
import { writeFileSync, unlinkSync } from "fs";
|
|
11
|
+
import { tmpdir } from "os";
|
|
12
|
+
import { join } from "path";
|
|
13
|
+
import { randomBytes } from "crypto";
|
|
18
14
|
const args = process.argv.slice(2);
|
|
19
|
-
|
|
20
15
|
if (args.length < 2) {
|
|
21
|
-
|
|
16
|
+
console.log(`
|
|
22
17
|
Safe GitHub CLI Helper
|
|
23
18
|
|
|
24
19
|
Usage:
|
|
@@ -33,74 +28,69 @@ This helper prevents timeout issues with special characters like:
|
|
|
33
28
|
- Directory paths
|
|
34
29
|
- Special shell characters
|
|
35
30
|
`);
|
|
36
|
-
|
|
31
|
+
process.exit(1);
|
|
37
32
|
}
|
|
38
|
-
|
|
39
33
|
const [command, subcommand, ...restArgs] = args;
|
|
40
|
-
|
|
41
34
|
// Handle commands that need body content
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
bodyIndex = restArgs.indexOf('--body');
|
|
56
|
-
if (bodyIndex !== -1 && bodyIndex < restArgs.length - 1) {
|
|
57
|
-
body = restArgs[bodyIndex + 1];
|
|
35
|
+
if ((command === 'issue' || command === 'pr') && (subcommand === 'comment' || subcommand === 'create')) {
|
|
36
|
+
let bodyIndex = -1;
|
|
37
|
+
let body = '';
|
|
38
|
+
if (subcommand === 'comment' && restArgs.length >= 2) {
|
|
39
|
+
// Simple format: github-safe.js issue comment 123 "body"
|
|
40
|
+
body = restArgs[1];
|
|
41
|
+
bodyIndex = 1;
|
|
42
|
+
} else {
|
|
43
|
+
// Flag format: --body "content"
|
|
44
|
+
bodyIndex = restArgs.indexOf('--body');
|
|
45
|
+
if (bodyIndex !== -1 && bodyIndex < restArgs.length - 1) {
|
|
46
|
+
body = restArgs[bodyIndex + 1];
|
|
47
|
+
}
|
|
58
48
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
//
|
|
97
|
-
|
|
49
|
+
if (body) {
|
|
50
|
+
// Use temporary file for body content
|
|
51
|
+
const tmpFile = join(tmpdir(), `gh-body-${randomBytes(8).toString('hex')}.tmp`);
|
|
52
|
+
try {
|
|
53
|
+
writeFileSync(tmpFile, body, 'utf8');
|
|
54
|
+
// Build new command with --body-file
|
|
55
|
+
const newArgs = [
|
|
56
|
+
...restArgs
|
|
57
|
+
];
|
|
58
|
+
if (subcommand === 'comment' && bodyIndex === 1) {
|
|
59
|
+
// Replace body with --body-file
|
|
60
|
+
newArgs[1] = '--body-file';
|
|
61
|
+
newArgs.push(tmpFile);
|
|
62
|
+
} else if (bodyIndex !== -1) {
|
|
63
|
+
// Replace --body with --body-file
|
|
64
|
+
newArgs[bodyIndex] = '--body-file';
|
|
65
|
+
newArgs[bodyIndex + 1] = tmpFile;
|
|
66
|
+
}
|
|
67
|
+
// Execute safely
|
|
68
|
+
const ghCommand = `gh ${command} ${subcommand} ${newArgs.join(' ')}`;
|
|
69
|
+
console.log(`Executing: ${ghCommand}`);
|
|
70
|
+
const result = execSync(ghCommand, {
|
|
71
|
+
stdio: 'inherit',
|
|
72
|
+
timeout: 30000
|
|
73
|
+
});
|
|
74
|
+
} catch (error) {
|
|
75
|
+
console.error('Error:', error.message);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
} finally{
|
|
78
|
+
// Clean up
|
|
79
|
+
try {
|
|
80
|
+
unlinkSync(tmpFile);
|
|
81
|
+
} catch (e) {
|
|
82
|
+
// Ignore cleanup errors
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
} else {
|
|
86
|
+
// No body content, execute normally
|
|
87
|
+
execSync(`gh ${args.join(' ')}`, {
|
|
88
|
+
stdio: 'inherit'
|
|
89
|
+
});
|
|
98
90
|
}
|
|
99
|
-
} else {
|
|
100
|
-
// No body content, execute normally
|
|
101
|
-
execSync(`gh ${args.join(' ')}`, { stdio: 'inherit' });
|
|
102
|
-
}
|
|
103
91
|
} else {
|
|
104
|
-
|
|
105
|
-
|
|
92
|
+
// Other commands, execute normally
|
|
93
|
+
execSync(`gh ${args.join(' ')}`, {
|
|
94
|
+
stdio: 'inherit'
|
|
95
|
+
});
|
|
106
96
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// memory-bank-md.js - Memory Bank templates
|
|
2
|
-
|
|
3
2
|
export function createMinimalMemoryBankMd() {
|
|
4
|
-
|
|
3
|
+
return `# Memory Bank
|
|
5
4
|
|
|
6
5
|
## Quick Reference
|
|
7
6
|
- Project uses SQLite for memory persistence
|
|
@@ -13,9 +12,8 @@ export function createMinimalMemoryBankMd() {
|
|
|
13
12
|
- Sessions: \`./memory/sessions/\`
|
|
14
13
|
`;
|
|
15
14
|
}
|
|
16
|
-
|
|
17
15
|
export function createFullMemoryBankMd() {
|
|
18
|
-
|
|
16
|
+
return `# Memory Bank Configuration
|
|
19
17
|
|
|
20
18
|
## Overview
|
|
21
19
|
The Claude-Flow memory system provides persistent storage and intelligent retrieval of information across agent sessions. It uses a hybrid approach combining SQL databases with semantic search capabilities.
|
|
@@ -75,10 +73,9 @@ Memory settings are configured in \`claude-flow.config.json\`:
|
|
|
75
73
|
- No data is sent to external services without explicit commands
|
|
76
74
|
`;
|
|
77
75
|
}
|
|
78
|
-
|
|
79
76
|
// Create optimized Memory Bank with batchtools support
|
|
80
77
|
export async function createOptimizedMemoryBankMd() {
|
|
81
|
-
|
|
78
|
+
return `# Memory Bank Configuration (Batchtools Optimized)
|
|
82
79
|
|
|
83
80
|
## Overview
|
|
84
81
|
The Claude-Flow memory system provides persistent storage and intelligent retrieval of information across agent sessions. It uses a hybrid approach combining SQL databases with semantic search capabilities.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// readme-files.js - README templates for various directories
|
|
2
|
-
|
|
3
2
|
export function createAgentsReadme() {
|
|
4
|
-
|
|
3
|
+
return `# Agent Memory Storage
|
|
5
4
|
|
|
6
5
|
## Purpose
|
|
7
6
|
This directory stores agent-specific memory data, configurations, and persistent state information for individual Claude agents in the orchestration system.
|
|
@@ -34,9 +33,8 @@ memory/agents/
|
|
|
34
33
|
${new Date().toISOString()}
|
|
35
34
|
`;
|
|
36
35
|
}
|
|
37
|
-
|
|
38
36
|
export function createSessionsReadme() {
|
|
39
|
-
|
|
37
|
+
return `# Session Memory Storage
|
|
40
38
|
|
|
41
39
|
## Purpose
|
|
42
40
|
This directory stores session-based memory data, conversation history, and contextual information for development sessions using the Claude-Flow orchestration system.
|