odd-flow 1.0.1 → 1.2.0
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/bin/cli.js +2 -2
- package/package.json +12 -12
- package/v3/{@claude-flow → @odd-flow}/cli/README.md +118 -4
- package/v3/{@claude-flow → @odd-flow}/cli/bin/cli.js +4 -4
- package/v3/{@claude-flow → @odd-flow}/cli/bin/mcp-server.js +2 -2
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/gguf-engine.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/gguf-engine.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/ruvllm-bridge.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/ruvllm-bridge.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-runner.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-runner.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-signing.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-signing.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/autopilot-state.d.ts +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/autopilot-state.js +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/agent-wasm.js +7 -7
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/agent.js +15 -15
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/analyze.js +52 -52
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/appliance.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/autopilot.js +4 -4
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/benchmark.js +16 -16
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/claims.js +21 -21
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/cleanup.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/cleanup.js +9 -9
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/completions.js +41 -41
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/config.js +9 -9
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/daemon.js +27 -27
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/deployment.js +20 -20
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/doctor.js +24 -24
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/embeddings.js +58 -58
- package/v3/@odd-flow/cli/dist/src/commands/escalation.d.ts +7 -0
- package/v3/@odd-flow/cli/dist/src/commands/escalation.js +115 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/guidance.js +30 -30
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/hive-mind.js +20 -20
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/hooks.js +103 -103
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/index.d.ts +3 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/index.js +20 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/init.js +49 -48
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/issues.js +6 -6
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/mcp.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/mcp.js +14 -14
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/memory.js +33 -33
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/migrate.js +28 -28
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/neural.js +35 -35
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/performance.js +13 -13
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/plugins.js +33 -33
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/process.js +36 -36
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/progress.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/progress.js +7 -7
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/providers.js +13 -13
- package/v3/@odd-flow/cli/dist/src/commands/refinery.d.ts +7 -0
- package/v3/@odd-flow/cli/dist/src/commands/refinery.js +64 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/route.js +26 -26
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/backup.js +9 -9
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/benchmark.js +4 -4
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/import.d.ts +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/import.js +11 -11
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/index.js +9 -9
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/init.js +7 -7
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/migrate.js +5 -5
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/optimize.js +7 -7
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/setup.d.ts +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/setup.js +14 -14
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/status.js +4 -4
- package/v3/@odd-flow/cli/dist/src/commands/scheduler.d.ts +7 -0
- package/v3/@odd-flow/cli/dist/src/commands/scheduler.js +86 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/security.js +22 -22
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/session.js +13 -13
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/start.js +16 -16
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/status.js +9 -9
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/swarm.js +10 -10
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/task.js +9 -9
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/transfer-store.js +17 -17
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/update.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/update.js +8 -8
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/workflow.js +13 -13
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/config-adapter.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/config-adapter.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/index.js +2 -2
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/infrastructure/in-memory-repositories.d.ts +4 -4
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/claudemd-generator.js +31 -31
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/executor.js +63 -63
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/helpers-generator.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/helpers-generator.js +19 -19
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/mcp-generator.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/settings-generator.js +6 -6
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/statusline-generator.js +16 -16
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/types.d.ts +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-server.d.ts +2 -2
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-server.js +15 -15
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/agent-tools.js +36 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/agentdb-tools.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/claims-tools.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/claims-tools.js +2 -2
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/config-tools.js +12 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/coordination-tools.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/embeddings-tools.js +1 -1
- package/v3/@odd-flow/cli/dist/src/mcp-tools/escalation-tools.d.ts +15 -0
- package/v3/@odd-flow/cli/dist/src/mcp-tools/escalation-tools.js +153 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/hive-mind-tools.js +4 -4
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/hooks-tools.js +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/index.d.ts +3 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/index.js +4 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/memory-tools.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/neural-tools.d.ts +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/neural-tools.js +8 -8
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/performance-tools.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/progress-tools.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/progress-tools.js +8 -8
- package/v3/@odd-flow/cli/dist/src/mcp-tools/refinery-tools.d.ts +16 -0
- package/v3/@odd-flow/cli/dist/src/mcp-tools/refinery-tools.js +223 -0
- package/v3/@odd-flow/cli/dist/src/mcp-tools/scheduler-tools.d.ts +16 -0
- package/v3/@odd-flow/cli/dist/src/mcp-tools/scheduler-tools.js +72 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/security-tools.js +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/session-tools.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/swarm-tools.js +123 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/system-tools.js +2 -2
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/task-tools.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/workflow-tools.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/intelligence.js +5 -5
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/memory-bridge.js +2 -2
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/memory-initializer.js +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/manager.js +10 -10
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/discovery.js +99 -99
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/demo-plugin-store.js +6 -6
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/standalone-test.js +6 -6
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/test-plugin-store.js +2 -2
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/circuit-breaker.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/circuit-breaker.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/error-handler.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/error-handler.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/index.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/index.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/monitoring.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/monitoring.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/rate-limiter.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/rate-limiter.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/retry.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/production/retry.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/runtime/headless.d.ts +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/runtime/headless.js +3 -3
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/agent-wasm.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/agent-wasm.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/graph-analyzer.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/graph-analyzer.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/index.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/index.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/ruvllm-wasm.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/ruvllm-wasm.js +1 -1
- package/v3/@odd-flow/cli/dist/src/services/checkpoint-manager.d.ts +46 -0
- package/v3/@odd-flow/cli/dist/src/services/checkpoint-manager.js +114 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/claim-service.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/config-file-manager.js +2 -2
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/container-worker-pool.js +6 -6
- package/v3/@odd-flow/cli/dist/src/services/escalation-router.d.ts +46 -0
- package/v3/@odd-flow/cli/dist/src/services/escalation-router.js +138 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/headless-worker-executor.js +2 -2
- package/v3/@odd-flow/cli/dist/src/services/refinery.d.ts +66 -0
- package/v3/@odd-flow/cli/dist/src/services/refinery.js +165 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/registry-api.js +1 -1
- package/v3/@odd-flow/cli/dist/src/services/scheduler.d.ts +66 -0
- package/v3/@odd-flow/cli/dist/src/services/scheduler.js +228 -0
- package/v3/@odd-flow/cli/dist/src/services/watchdog-deacon.d.ts +20 -0
- package/v3/@odd-flow/cli/dist/src/services/watchdog-deacon.js +52 -0
- package/v3/@odd-flow/cli/dist/src/services/watchdog-dogs.d.ts +42 -0
- package/v3/@odd-flow/cli/dist/src/services/watchdog-dogs.js +81 -0
- package/v3/@odd-flow/cli/dist/src/services/watchdog-witness.d.ts +38 -0
- package/v3/@odd-flow/cli/dist/src/services/watchdog-witness.js +57 -0
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/worker-daemon.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/worker-daemon.js +18 -18
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/worker-queue.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/suggest.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/ipfs/upload.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/ipfs/upload.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/models/seraphine.js +2 -2
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/serialization/cfp.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/storage/gcs.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/storage/gcs.js +4 -4
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/discovery.js +7 -7
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/registry.js +4 -4
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/tests/standalone-test.js +4 -4
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/test-seraphine.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/checker.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/checker.js +11 -11
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/executor.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/index.d.ts +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/index.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/rate-limiter.js +1 -1
- package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/validator.js +11 -11
- package/v3/{@claude-flow → @odd-flow}/cli/package.json +5 -5
- package/v3/{@claude-flow → @odd-flow}/shared/README.md +35 -35
- package/v3/{@claude-flow → @odd-flow}/shared/package.json +1 -1
- package/v3/README.md +55 -55
- /package/v3/{@claude-flow → @odd-flow}/cli/bin/preinstall.cjs +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-builder.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-builder.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-distribution.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-distribution.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-format.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/appliance/rvfa-format.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/benchmarks/pretrain/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/benchmarks/pretrain/index.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/agent-wasm.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/agent.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/analyze.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/appliance-advanced.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/appliance-advanced.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/appliance.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/autopilot.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/benchmark.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/claims.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/completions.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/config.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/daemon.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/deployment.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/doctor.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/embeddings.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/guidance.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/hive-mind.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/hooks.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/init.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/issues.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/memory.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/migrate.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/neural.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/performance.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/plugins.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/process.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/providers.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/route.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/backup.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/benchmark.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/init.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/migrate.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/optimize.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/ruvector/status.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/security.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/session.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/start.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/status.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/swarm.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/task.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/transfer-store.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/commands/workflow.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/infrastructure/in-memory-repositories.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/claudemd-generator.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/executor.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/index.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/mcp-generator.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/settings-generator.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/statusline-generator.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/init/types.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-client.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-client.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/agent-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/agentdb-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/analyze-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/analyze-tools.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/config-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/coordination-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/embeddings-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/hooks-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/memory-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/performance-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/security-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/session-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/swarm-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/system-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/task-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/types.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/types.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/mcp-tools/workflow-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/ewc-consolidation.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/ewc-consolidation.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/intelligence.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/memory-bridge.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/memory-initializer.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/sona-optimizer.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/memory/sona-optimizer.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/output.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/output.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/parser.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/parser.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/manager.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/discovery.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/index.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/search.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/search.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/types.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/store/types.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/standalone-test.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/plugins/tests/test-plugin-store.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/prompt.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/prompt.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/ast-analyzer.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/ast-analyzer.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/coverage-router.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/coverage-router.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/coverage-tools.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/coverage-tools.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/diff-classifier.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/diff-classifier.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/enhanced-model-router.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/enhanced-model-router.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/flash-attention.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/flash-attention.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/lora-adapter.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/lora-adapter.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/model-router.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/model-router.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/moe-router.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/moe-router.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/q-learning-router.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/q-learning-router.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/semantic-router.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/semantic-router.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/vector-db.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/ruvector/vector-db.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/agentic-flow-bridge.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/agentic-flow-bridge.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/claim-service.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/config-file-manager.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/container-worker-pool.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/headless-worker-executor.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/index.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/registry-api.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/ruvector-training.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/ruvector-training.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/services/worker-queue.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/suggest.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/anonymization/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/anonymization/index.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/deploy-seraphine.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/deploy-seraphine.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/export.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/export.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/index.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/ipfs/client.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/ipfs/client.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/models/seraphine.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/serialization/cfp.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/storage/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/storage/index.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/discovery.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/download.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/download.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/index.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/index.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/publish.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/publish.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/registry.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/search.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/search.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/tests/standalone-test.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/types.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/store/types.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/test-seraphine.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/tests/test-store.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/tests/test-store.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/types.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/transfer/types.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/types.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/types.js +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/executor.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/rate-limiter.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/update/validator.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/utils/path-validation.d.ts +0 -0
- /package/v3/{@claude-flow → @odd-flow}/cli/dist/src/utils/path-validation.js +0 -0
|
@@ -69,7 +69,7 @@ const SKILLS_MAP = {
|
|
|
69
69
|
* Commands to copy based on configuration
|
|
70
70
|
*/
|
|
71
71
|
const COMMANDS_MAP = {
|
|
72
|
-
core: ['
|
|
72
|
+
core: ['odd-flow-help.md', 'odd-flow-swarm.md', 'odd-flow-memory.md'],
|
|
73
73
|
analysis: ['analysis'],
|
|
74
74
|
automation: ['automation'],
|
|
75
75
|
github: ['github'],
|
|
@@ -121,13 +121,13 @@ const DIRECTORIES = {
|
|
|
121
121
|
'.claude/helpers',
|
|
122
122
|
],
|
|
123
123
|
runtime: [
|
|
124
|
-
'.
|
|
125
|
-
'.
|
|
126
|
-
'.
|
|
127
|
-
'.
|
|
128
|
-
'.
|
|
129
|
-
'.
|
|
130
|
-
'.
|
|
124
|
+
'.odd-flow',
|
|
125
|
+
'.odd-flow/data',
|
|
126
|
+
'.odd-flow/logs',
|
|
127
|
+
'.odd-flow/sessions',
|
|
128
|
+
'.odd-flow/hooks',
|
|
129
|
+
'.odd-flow/agents',
|
|
130
|
+
'.odd-flow/workflows',
|
|
131
131
|
],
|
|
132
132
|
};
|
|
133
133
|
/**
|
|
@@ -343,9 +343,9 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
|
|
|
343
343
|
// Ensure required directories exist
|
|
344
344
|
const dirs = [
|
|
345
345
|
'.claude/helpers',
|
|
346
|
-
'.
|
|
347
|
-
'.
|
|
348
|
-
'.
|
|
346
|
+
'.odd-flow/metrics',
|
|
347
|
+
'.odd-flow/security',
|
|
348
|
+
'.odd-flow/learning',
|
|
349
349
|
];
|
|
350
350
|
for (const dir of dirs) {
|
|
351
351
|
const fullPath = path.join(targetDir, dir);
|
|
@@ -418,8 +418,8 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
|
|
|
418
418
|
}
|
|
419
419
|
fs.writeFileSync(statuslinePath, statuslineContent, 'utf-8');
|
|
420
420
|
// 2. Create MISSING metrics files only (preserve existing data)
|
|
421
|
-
const metricsDir = path.join(targetDir, '.
|
|
422
|
-
const securityDir = path.join(targetDir, '.
|
|
421
|
+
const metricsDir = path.join(targetDir, '.odd-flow', 'metrics');
|
|
422
|
+
const securityDir = path.join(targetDir, '.odd-flow', 'security');
|
|
423
423
|
// v3-progress.json
|
|
424
424
|
const progressPath = path.join(metricsDir, 'v3-progress.json');
|
|
425
425
|
if (!fs.existsSync(progressPath)) {
|
|
@@ -433,10 +433,10 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
|
|
|
433
433
|
_note: 'Metrics will update as you use Odd Flow'
|
|
434
434
|
};
|
|
435
435
|
fs.writeFileSync(progressPath, JSON.stringify(progress, null, 2), 'utf-8');
|
|
436
|
-
result.created.push('.
|
|
436
|
+
result.created.push('.odd-flow/metrics/v3-progress.json');
|
|
437
437
|
}
|
|
438
438
|
else {
|
|
439
|
-
result.preserved.push('.
|
|
439
|
+
result.preserved.push('.odd-flow/metrics/v3-progress.json');
|
|
440
440
|
}
|
|
441
441
|
// swarm-activity.json
|
|
442
442
|
const activityPath = path.join(metricsDir, 'swarm-activity.json');
|
|
@@ -449,10 +449,10 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
|
|
|
449
449
|
_initialized: true
|
|
450
450
|
};
|
|
451
451
|
fs.writeFileSync(activityPath, JSON.stringify(activity, null, 2), 'utf-8');
|
|
452
|
-
result.created.push('.
|
|
452
|
+
result.created.push('.odd-flow/metrics/swarm-activity.json');
|
|
453
453
|
}
|
|
454
454
|
else {
|
|
455
|
-
result.preserved.push('.
|
|
455
|
+
result.preserved.push('.odd-flow/metrics/swarm-activity.json');
|
|
456
456
|
}
|
|
457
457
|
// learning.json
|
|
458
458
|
const learningPath = path.join(metricsDir, 'learning.json');
|
|
@@ -465,10 +465,10 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
|
|
|
465
465
|
_note: 'Intelligence grows as you use Odd Flow'
|
|
466
466
|
};
|
|
467
467
|
fs.writeFileSync(learningPath, JSON.stringify(learning, null, 2), 'utf-8');
|
|
468
|
-
result.created.push('.
|
|
468
|
+
result.created.push('.odd-flow/metrics/learning.json');
|
|
469
469
|
}
|
|
470
470
|
else {
|
|
471
|
-
result.preserved.push('.
|
|
471
|
+
result.preserved.push('.odd-flow/metrics/learning.json');
|
|
472
472
|
}
|
|
473
473
|
// audit-status.json
|
|
474
474
|
const auditPath = path.join(securityDir, 'audit-status.json');
|
|
@@ -479,13 +479,13 @@ export async function executeUpgrade(targetDir, upgradeSettings = false) {
|
|
|
479
479
|
cvesFixed: 0,
|
|
480
480
|
totalCves: 3,
|
|
481
481
|
lastScan: null,
|
|
482
|
-
_note: 'Run: npx @
|
|
482
|
+
_note: 'Run: npx @odd-flow/cli@latest security scan'
|
|
483
483
|
};
|
|
484
484
|
fs.writeFileSync(auditPath, JSON.stringify(audit, null, 2), 'utf-8');
|
|
485
|
-
result.created.push('.
|
|
485
|
+
result.created.push('.odd-flow/security/audit-status.json');
|
|
486
486
|
}
|
|
487
487
|
else {
|
|
488
|
-
result.preserved.push('.
|
|
488
|
+
result.preserved.push('.odd-flow/security/audit-status.json');
|
|
489
489
|
}
|
|
490
490
|
// 3. Merge settings if requested
|
|
491
491
|
if (upgradeSettings) {
|
|
@@ -881,7 +881,7 @@ function findSourceHelpersDir(sourceBaseDir) {
|
|
|
881
881
|
// Strategy 1: require.resolve to find package root (most reliable for npx)
|
|
882
882
|
try {
|
|
883
883
|
const esmRequire = createRequire(import.meta.url);
|
|
884
|
-
const pkgJsonPath = esmRequire.resolve('@
|
|
884
|
+
const pkgJsonPath = esmRequire.resolve('@odd-flow/cli/package.json');
|
|
885
885
|
const pkgRoot = path.dirname(pkgJsonPath);
|
|
886
886
|
possiblePaths.push(path.join(pkgRoot, '.claude', 'helpers'));
|
|
887
887
|
}
|
|
@@ -1052,12 +1052,12 @@ async function writeStatusline(targetDir, options, result) {
|
|
|
1052
1052
|
result.created.files.push('.claude/helpers/statusline.cjs');
|
|
1053
1053
|
}
|
|
1054
1054
|
/**
|
|
1055
|
-
* Write runtime configuration (.
|
|
1055
|
+
* Write runtime configuration (.odd-flow/)
|
|
1056
1056
|
*/
|
|
1057
1057
|
async function writeRuntimeConfig(targetDir, options, result) {
|
|
1058
|
-
const configPath = path.join(targetDir, '.
|
|
1058
|
+
const configPath = path.join(targetDir, '.odd-flow', 'config.yaml');
|
|
1059
1059
|
if (fs.existsSync(configPath) && !options.force) {
|
|
1060
|
-
result.skipped.push('.
|
|
1060
|
+
result.skipped.push('.odd-flow/config.yaml');
|
|
1061
1061
|
return;
|
|
1062
1062
|
}
|
|
1063
1063
|
const config = `# Odd Flow Runtime Configuration
|
|
@@ -1074,7 +1074,7 @@ swarm:
|
|
|
1074
1074
|
memory:
|
|
1075
1075
|
backend: ${options.runtime.memoryBackend}
|
|
1076
1076
|
enableHNSW: ${options.runtime.enableHNSW}
|
|
1077
|
-
persistPath: .
|
|
1077
|
+
persistPath: .odd-flow/data
|
|
1078
1078
|
cacheSize: 100
|
|
1079
1079
|
# ADR-049: Self-Learning Memory
|
|
1080
1080
|
learningBridge:
|
|
@@ -1094,7 +1094,7 @@ memory:
|
|
|
1094
1094
|
|
|
1095
1095
|
neural:
|
|
1096
1096
|
enabled: ${options.runtime.enableNeural}
|
|
1097
|
-
modelPath: .
|
|
1097
|
+
modelPath: .odd-flow/neural
|
|
1098
1098
|
|
|
1099
1099
|
hooks:
|
|
1100
1100
|
enabled: true
|
|
@@ -1105,9 +1105,9 @@ mcp:
|
|
|
1105
1105
|
port: ${options.mcp.port}
|
|
1106
1106
|
`;
|
|
1107
1107
|
fs.writeFileSync(configPath, config, 'utf-8');
|
|
1108
|
-
result.created.files.push('.
|
|
1108
|
+
result.created.files.push('.odd-flow/config.yaml');
|
|
1109
1109
|
// Write .gitignore
|
|
1110
|
-
const gitignorePath = path.join(targetDir, '.
|
|
1110
|
+
const gitignorePath = path.join(targetDir, '.odd-flow', '.gitignore');
|
|
1111
1111
|
const gitignore = `# Claude Flow runtime files
|
|
1112
1112
|
data/
|
|
1113
1113
|
logs/
|
|
@@ -1118,7 +1118,7 @@ neural/
|
|
|
1118
1118
|
`;
|
|
1119
1119
|
if (!fs.existsSync(gitignorePath) || options.force) {
|
|
1120
1120
|
fs.writeFileSync(gitignorePath, gitignore, 'utf-8');
|
|
1121
|
-
result.created.files.push('.
|
|
1121
|
+
result.created.files.push('.odd-flow/.gitignore');
|
|
1122
1122
|
}
|
|
1123
1123
|
// Write CAPABILITIES.md with full system overview
|
|
1124
1124
|
await writeCapabilitiesDoc(targetDir, options, result);
|
|
@@ -1128,9 +1128,9 @@ neural/
|
|
|
1128
1128
|
* Creates baseline data so statusline shows meaningful state instead of all zeros
|
|
1129
1129
|
*/
|
|
1130
1130
|
async function writeInitialMetrics(targetDir, options, result) {
|
|
1131
|
-
const metricsDir = path.join(targetDir, '.
|
|
1132
|
-
const learningDir = path.join(targetDir, '.
|
|
1133
|
-
const securityDir = path.join(targetDir, '.
|
|
1131
|
+
const metricsDir = path.join(targetDir, '.odd-flow', 'metrics');
|
|
1132
|
+
const learningDir = path.join(targetDir, '.odd-flow', 'learning');
|
|
1133
|
+
const securityDir = path.join(targetDir, '.odd-flow', 'security');
|
|
1134
1134
|
// Ensure directories exist
|
|
1135
1135
|
for (const dir of [metricsDir, learningDir, securityDir]) {
|
|
1136
1136
|
if (!fs.existsSync(dir)) {
|
|
@@ -1167,7 +1167,7 @@ async function writeInitialMetrics(targetDir, options, result) {
|
|
|
1167
1167
|
_note: 'Metrics will update as you use Odd Flow. Run: npx odd-flow@latest daemon start'
|
|
1168
1168
|
};
|
|
1169
1169
|
fs.writeFileSync(progressPath, JSON.stringify(progress, null, 2), 'utf-8');
|
|
1170
|
-
result.created.files.push('.
|
|
1170
|
+
result.created.files.push('.odd-flow/metrics/v3-progress.json');
|
|
1171
1171
|
}
|
|
1172
1172
|
// Create initial swarm-activity.json
|
|
1173
1173
|
const activityPath = path.join(metricsDir, 'swarm-activity.json');
|
|
@@ -1191,7 +1191,7 @@ async function writeInitialMetrics(targetDir, options, result) {
|
|
|
1191
1191
|
_initialized: true
|
|
1192
1192
|
};
|
|
1193
1193
|
fs.writeFileSync(activityPath, JSON.stringify(activity, null, 2), 'utf-8');
|
|
1194
|
-
result.created.files.push('.
|
|
1194
|
+
result.created.files.push('.odd-flow/metrics/swarm-activity.json');
|
|
1195
1195
|
}
|
|
1196
1196
|
// Create initial learning.json
|
|
1197
1197
|
const learningPath = path.join(metricsDir, 'learning.json');
|
|
@@ -1214,7 +1214,7 @@ async function writeInitialMetrics(targetDir, options, result) {
|
|
|
1214
1214
|
_note: 'Intelligence grows as you use Odd Flow'
|
|
1215
1215
|
};
|
|
1216
1216
|
fs.writeFileSync(learningPath, JSON.stringify(learning, null, 2), 'utf-8');
|
|
1217
|
-
result.created.files.push('.
|
|
1217
|
+
result.created.files.push('.odd-flow/metrics/learning.json');
|
|
1218
1218
|
}
|
|
1219
1219
|
// Create initial audit-status.json
|
|
1220
1220
|
const auditPath = path.join(securityDir, 'audit-status.json');
|
|
@@ -1225,24 +1225,24 @@ async function writeInitialMetrics(targetDir, options, result) {
|
|
|
1225
1225
|
cvesFixed: 0,
|
|
1226
1226
|
totalCves: 3,
|
|
1227
1227
|
lastScan: null,
|
|
1228
|
-
_note: 'Run: npx @
|
|
1228
|
+
_note: 'Run: npx @odd-flow/cli@latest security scan'
|
|
1229
1229
|
};
|
|
1230
1230
|
fs.writeFileSync(auditPath, JSON.stringify(audit, null, 2), 'utf-8');
|
|
1231
|
-
result.created.files.push('.
|
|
1231
|
+
result.created.files.push('.odd-flow/security/audit-status.json');
|
|
1232
1232
|
}
|
|
1233
1233
|
}
|
|
1234
1234
|
/**
|
|
1235
1235
|
* Write CAPABILITIES.md - comprehensive overview of all Odd Flow features
|
|
1236
1236
|
*/
|
|
1237
1237
|
async function writeCapabilitiesDoc(targetDir, options, result) {
|
|
1238
|
-
const capabilitiesPath = path.join(targetDir, '.
|
|
1238
|
+
const capabilitiesPath = path.join(targetDir, '.odd-flow', 'CAPABILITIES.md');
|
|
1239
1239
|
if (fs.existsSync(capabilitiesPath) && !options.force) {
|
|
1240
|
-
result.skipped.push('.
|
|
1240
|
+
result.skipped.push('.odd-flow/CAPABILITIES.md');
|
|
1241
1241
|
return;
|
|
1242
1242
|
}
|
|
1243
1243
|
const capabilities = `# Odd Flow - Complete Capabilities Reference
|
|
1244
1244
|
> Generated: ${new Date().toISOString()}
|
|
1245
|
-
> Full documentation: https://github.com/ruvnet/
|
|
1245
|
+
> Full documentation: https://github.com/ruvnet/odd-flow
|
|
1246
1246
|
|
|
1247
1247
|
## 📋 Table of Contents
|
|
1248
1248
|
|
|
@@ -1302,13 +1302,13 @@ Odd Flow is a domain-driven design architecture for multi-agent AI coordination
|
|
|
1302
1302
|
### Quick Commands
|
|
1303
1303
|
\`\`\`bash
|
|
1304
1304
|
# Initialize swarm
|
|
1305
|
-
npx @
|
|
1305
|
+
npx @odd-flow/cli@latest swarm init --topology hierarchical --max-agents 8 --strategy specialized
|
|
1306
1306
|
|
|
1307
1307
|
# Check status
|
|
1308
|
-
npx @
|
|
1308
|
+
npx @odd-flow/cli@latest swarm status
|
|
1309
1309
|
|
|
1310
1310
|
# Monitor activity
|
|
1311
|
-
npx @
|
|
1311
|
+
npx @odd-flow/cli@latest swarm monitor
|
|
1312
1312
|
\`\`\`
|
|
1313
1313
|
|
|
1314
1314
|
---
|
|
@@ -1392,17 +1392,17 @@ npx @claude-flow/cli@latest swarm monitor
|
|
|
1392
1392
|
### Example Commands
|
|
1393
1393
|
\`\`\`bash
|
|
1394
1394
|
# Initialize
|
|
1395
|
-
npx @
|
|
1395
|
+
npx @odd-flow/cli@latest init --wizard
|
|
1396
1396
|
|
|
1397
1397
|
# Spawn agent
|
|
1398
|
-
npx @
|
|
1398
|
+
npx @odd-flow/cli@latest agent spawn -t coder --name my-coder
|
|
1399
1399
|
|
|
1400
1400
|
# Memory operations
|
|
1401
|
-
npx @
|
|
1402
|
-
npx @
|
|
1401
|
+
npx @odd-flow/cli@latest memory store --key "pattern" --value "data" --namespace patterns
|
|
1402
|
+
npx @odd-flow/cli@latest memory search --query "authentication"
|
|
1403
1403
|
|
|
1404
1404
|
# Diagnostics
|
|
1405
|
-
npx @
|
|
1405
|
+
npx @odd-flow/cli@latest doctor --fix
|
|
1406
1406
|
\`\`\`
|
|
1407
1407
|
|
|
1408
1408
|
---
|
|
@@ -1501,16 +1501,16 @@ High-confidence insights (>0.8) can transfer between agents.
|
|
|
1501
1501
|
### Memory Commands
|
|
1502
1502
|
\`\`\`bash
|
|
1503
1503
|
# Store pattern
|
|
1504
|
-
npx @
|
|
1504
|
+
npx @odd-flow/cli@latest memory store --key "name" --value "data" --namespace patterns
|
|
1505
1505
|
|
|
1506
1506
|
# Semantic search
|
|
1507
|
-
npx @
|
|
1507
|
+
npx @odd-flow/cli@latest memory search --query "authentication"
|
|
1508
1508
|
|
|
1509
1509
|
# List entries
|
|
1510
|
-
npx @
|
|
1510
|
+
npx @odd-flow/cli@latest memory list --namespace patterns
|
|
1511
1511
|
|
|
1512
1512
|
# Initialize database
|
|
1513
|
-
npx @
|
|
1513
|
+
npx @odd-flow/cli@latest memory init --force
|
|
1514
1514
|
\`\`\`
|
|
1515
1515
|
|
|
1516
1516
|
---
|
|
@@ -1539,16 +1539,16 @@ npx @claude-flow/cli@latest memory init --force
|
|
|
1539
1539
|
### Hive-Mind Commands
|
|
1540
1540
|
\`\`\`bash
|
|
1541
1541
|
# Initialize
|
|
1542
|
-
npx @
|
|
1542
|
+
npx @odd-flow/cli@latest hive-mind init --queen-type strategic
|
|
1543
1543
|
|
|
1544
1544
|
# Status
|
|
1545
|
-
npx @
|
|
1545
|
+
npx @odd-flow/cli@latest hive-mind status
|
|
1546
1546
|
|
|
1547
1547
|
# Spawn workers
|
|
1548
|
-
npx @
|
|
1548
|
+
npx @odd-flow/cli@latest hive-mind spawn --count 5 --type worker
|
|
1549
1549
|
|
|
1550
1550
|
# Consensus
|
|
1551
|
-
npx @
|
|
1551
|
+
npx @odd-flow/cli@latest hive-mind consensus --propose "task"
|
|
1552
1552
|
\`\`\`
|
|
1553
1553
|
|
|
1554
1554
|
---
|
|
@@ -1628,7 +1628,7 @@ npx odd-flow@latest hooks worker dispatch --trigger optimize
|
|
|
1628
1628
|
|
|
1629
1629
|
### File Structure
|
|
1630
1630
|
\`\`\`
|
|
1631
|
-
.
|
|
1631
|
+
.odd-flow/
|
|
1632
1632
|
├── config.yaml # Runtime configuration
|
|
1633
1633
|
├── CAPABILITIES.md # This file
|
|
1634
1634
|
├── data/ # Memory storage
|
|
@@ -1641,11 +1641,11 @@ npx odd-flow@latest hooks worker dispatch --trigger optimize
|
|
|
1641
1641
|
|
|
1642
1642
|
---
|
|
1643
1643
|
|
|
1644
|
-
**Full Documentation**: https://github.com/ruvnet/
|
|
1645
|
-
**Issues**: https://github.com/ruvnet/
|
|
1644
|
+
**Full Documentation**: https://github.com/ruvnet/odd-flow
|
|
1645
|
+
**Issues**: https://github.com/ruvnet/odd-flow/issues
|
|
1646
1646
|
`;
|
|
1647
1647
|
fs.writeFileSync(capabilitiesPath, capabilities, 'utf-8');
|
|
1648
|
-
result.created.files.push('.
|
|
1648
|
+
result.created.files.push('.odd-flow/CAPABILITIES.md');
|
|
1649
1649
|
}
|
|
1650
1650
|
/**
|
|
1651
1651
|
* Write CLAUDE.md with swarm guidance
|
|
@@ -1677,7 +1677,7 @@ function findSourceDir(type, sourceBaseDir) {
|
|
|
1677
1677
|
}
|
|
1678
1678
|
// IMPORTANT: Check the package's own .claude directory first
|
|
1679
1679
|
// This is the primary path when running as an npm package
|
|
1680
|
-
// __dirname is typically /path/to/node_modules/@
|
|
1680
|
+
// __dirname is typically /path/to/node_modules/@odd-flow/cli/dist/src/init
|
|
1681
1681
|
// We need to go up 3 levels to reach the package root (dist/src/init -> dist/src -> dist -> root)
|
|
1682
1682
|
const packageRoot = path.resolve(__dirname, '..', '..', '..');
|
|
1683
1683
|
const packageDotClaude = path.join(packageRoot, '.claude', type);
|
|
@@ -38,7 +38,7 @@ export declare function generateIntelligenceStub(): string;
|
|
|
38
38
|
/**
|
|
39
39
|
* Generate a minimal auto-memory-hook.mjs fallback for fresh installs.
|
|
40
40
|
* This ESM script handles import/sync/status commands gracefully when
|
|
41
|
-
* @
|
|
41
|
+
* @odd-flow/memory is not installed. Gets overwritten when source copy succeeds.
|
|
42
42
|
*/
|
|
43
43
|
export declare function generateAutoMemoryHook(): string;
|
|
44
44
|
/**
|
|
@@ -22,7 +22,7 @@ STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)
|
|
|
22
22
|
for FILE in $STAGED_FILES; do
|
|
23
23
|
if [[ "$FILE" =~ \\.(ts|js|tsx|jsx)$ ]]; then
|
|
24
24
|
echo " Validating: $FILE"
|
|
25
|
-
npx @
|
|
25
|
+
npx @odd-flow/cli hooks pre-edit --file "$FILE" --validate-syntax 2>/dev/null || true
|
|
26
26
|
fi
|
|
27
27
|
done
|
|
28
28
|
|
|
@@ -70,7 +70,7 @@ export function generateSessionManager() {
|
|
|
70
70
|
const fs = require('fs');
|
|
71
71
|
const path = require('path');
|
|
72
72
|
|
|
73
|
-
const SESSION_DIR = path.join(process.cwd(), '.
|
|
73
|
+
const SESSION_DIR = path.join(process.cwd(), '.odd-flow', 'sessions');
|
|
74
74
|
const SESSION_FILE = path.join(SESSION_DIR, 'current.json');
|
|
75
75
|
|
|
76
76
|
const commands = {
|
|
@@ -275,7 +275,7 @@ export function generateMemoryHelper() {
|
|
|
275
275
|
const fs = require('fs');
|
|
276
276
|
const path = require('path');
|
|
277
277
|
|
|
278
|
-
const MEMORY_DIR = path.join(process.cwd(), '.
|
|
278
|
+
const MEMORY_DIR = path.join(process.cwd(), '.odd-flow', 'data');
|
|
279
279
|
const MEMORY_FILE = path.join(MEMORY_DIR, 'memory.json');
|
|
280
280
|
|
|
281
281
|
function loadMemory() {
|
|
@@ -604,11 +604,11 @@ export function generateIntelligenceStub() {
|
|
|
604
604
|
"const path = require('path');",
|
|
605
605
|
"const os = require('os');",
|
|
606
606
|
'',
|
|
607
|
-
"const DATA_DIR = path.join(process.cwd(), '.
|
|
607
|
+
"const DATA_DIR = path.join(process.cwd(), '.odd-flow', 'data');",
|
|
608
608
|
"const STORE_PATH = path.join(DATA_DIR, 'auto-memory-store.json');",
|
|
609
609
|
"const RANKED_PATH = path.join(DATA_DIR, 'ranked-context.json');",
|
|
610
610
|
"const PENDING_PATH = path.join(DATA_DIR, 'pending-insights.jsonl');",
|
|
611
|
-
"const SESSION_DIR = path.join(process.cwd(), '.
|
|
611
|
+
"const SESSION_DIR = path.join(process.cwd(), '.odd-flow', 'sessions');",
|
|
612
612
|
"const SESSION_FILE = path.join(SESSION_DIR, 'current.json');",
|
|
613
613
|
'',
|
|
614
614
|
'function ensureDir(dir) {',
|
|
@@ -652,7 +652,7 @@ export function generateIntelligenceStub() {
|
|
|
652
652
|
' var entries = [];',
|
|
653
653
|
' var candidates = [',
|
|
654
654
|
' path.join(os.homedir(), ".claude", "projects"),',
|
|
655
|
-
' path.join(process.cwd(), ".
|
|
655
|
+
' path.join(process.cwd(), ".odd-flow", "memory"),',
|
|
656
656
|
' path.join(process.cwd(), ".claude", "memory"),',
|
|
657
657
|
' ];',
|
|
658
658
|
' for (var i = 0; i < candidates.length; i++) {',
|
|
@@ -805,7 +805,7 @@ export function generateIntelligenceStub() {
|
|
|
805
805
|
/**
|
|
806
806
|
* Generate a minimal auto-memory-hook.mjs fallback for fresh installs.
|
|
807
807
|
* This ESM script handles import/sync/status commands gracefully when
|
|
808
|
-
* @
|
|
808
|
+
* @odd-flow/memory is not installed. Gets overwritten when source copy succeeds.
|
|
809
809
|
*/
|
|
810
810
|
export function generateAutoMemoryHook() {
|
|
811
811
|
return `#!/usr/bin/env node
|
|
@@ -826,7 +826,7 @@ import { fileURLToPath } from 'url';
|
|
|
826
826
|
const __filename = fileURLToPath(import.meta.url);
|
|
827
827
|
const __dirname = dirname(__filename);
|
|
828
828
|
const PROJECT_ROOT = join(__dirname, '../..');
|
|
829
|
-
const DATA_DIR = join(PROJECT_ROOT, '.
|
|
829
|
+
const DATA_DIR = join(PROJECT_ROOT, '.odd-flow', 'data');
|
|
830
830
|
const STORE_PATH = join(DATA_DIR, 'auto-memory-store.json');
|
|
831
831
|
|
|
832
832
|
const DIM = '\\x1b[2m';
|
|
@@ -838,21 +838,21 @@ if (!existsSync(DATA_DIR)) mkdirSync(DATA_DIR, { recursive: true });
|
|
|
838
838
|
|
|
839
839
|
async function loadMemoryPackage() {
|
|
840
840
|
// Strategy 1: Use createRequire for CJS-style resolution (handles nested node_modules
|
|
841
|
-
// when installed as a transitive dependency via npx odd-flow / npx
|
|
841
|
+
// when installed as a transitive dependency via npx odd-flow / npx odd-flow)
|
|
842
842
|
try {
|
|
843
843
|
const { createRequire } = await import('module');
|
|
844
844
|
const require = createRequire(join(PROJECT_ROOT, 'package.json'));
|
|
845
|
-
return require('@
|
|
845
|
+
return require('@odd-flow/memory');
|
|
846
846
|
} catch { /* fall through */ }
|
|
847
847
|
|
|
848
|
-
// Strategy 2: ESM import (works when @
|
|
849
|
-
try { return await import('@
|
|
848
|
+
// Strategy 2: ESM import (works when @odd-flow/memory is a direct dependency)
|
|
849
|
+
try { return await import('@odd-flow/memory'); } catch { /* fall through */ }
|
|
850
850
|
|
|
851
851
|
// Strategy 3: Walk up from PROJECT_ROOT looking for the package in any node_modules
|
|
852
852
|
let searchDir = PROJECT_ROOT;
|
|
853
853
|
const { parse } = await import('path');
|
|
854
854
|
while (searchDir !== parse(searchDir).root) {
|
|
855
|
-
const candidate = join(searchDir, 'node_modules', '@
|
|
855
|
+
const candidate = join(searchDir, 'node_modules', '@odd-flow', 'memory', 'dist', 'index.js');
|
|
856
856
|
if (existsSync(candidate)) {
|
|
857
857
|
try { return await import(\`file://\${candidate}\`); } catch { /* fall through */ }
|
|
858
858
|
}
|
|
@@ -933,7 +933,7 @@ param(
|
|
|
933
933
|
)
|
|
934
934
|
|
|
935
935
|
$ErrorActionPreference = 'SilentlyContinue'
|
|
936
|
-
$ClaudeFlowDir = Join-Path $PWD '.
|
|
936
|
+
$ClaudeFlowDir = Join-Path $PWD '.odd-flow'
|
|
937
937
|
$PidDir = Join-Path $ClaudeFlowDir 'pids'
|
|
938
938
|
|
|
939
939
|
# Ensure directories exist
|
|
@@ -966,7 +966,7 @@ function Start-SwarmMonitor {
|
|
|
966
966
|
Write-Host "Starting swarm monitor..." -ForegroundColor Cyan
|
|
967
967
|
$process = Start-Process -FilePath 'node' -ArgumentList @(
|
|
968
968
|
'-e',
|
|
969
|
-
'setInterval(() => { require("fs").writeFileSync(".
|
|
969
|
+
'setInterval(() => { require("fs").writeFileSync(".odd-flow/metrics/swarm-activity.json", JSON.stringify({swarm:{active:true,agent_count:0},timestamp:Date.now()})) }, 5000)'
|
|
970
970
|
) -PassThru -WindowStyle Hidden
|
|
971
971
|
|
|
972
972
|
$process.Id | Out-File $pidFile
|
|
@@ -1055,18 +1055,18 @@ const homeDir = os.homedir();
|
|
|
1055
1055
|
|
|
1056
1056
|
// Get data directory based on platform
|
|
1057
1057
|
function getDataDir() {
|
|
1058
|
-
const localDir = path.join(process.cwd(), '.
|
|
1058
|
+
const localDir = path.join(process.cwd(), '.odd-flow', 'sessions');
|
|
1059
1059
|
if (fs.existsSync(path.dirname(localDir))) {
|
|
1060
1060
|
return localDir;
|
|
1061
1061
|
}
|
|
1062
1062
|
|
|
1063
1063
|
switch (platform) {
|
|
1064
1064
|
case 'win32':
|
|
1065
|
-
return path.join(process.env.APPDATA || homeDir, '
|
|
1065
|
+
return path.join(process.env.APPDATA || homeDir, 'odd-flow', 'sessions');
|
|
1066
1066
|
case 'darwin':
|
|
1067
|
-
return path.join(homeDir, 'Library', 'Application Support', '
|
|
1067
|
+
return path.join(homeDir, 'Library', 'Application Support', 'odd-flow', 'sessions');
|
|
1068
1068
|
default:
|
|
1069
|
-
return path.join(homeDir, '.
|
|
1069
|
+
return path.join(homeDir, '.odd-flow', 'sessions');
|
|
1070
1070
|
}
|
|
1071
1071
|
}
|
|
1072
1072
|
|
|
@@ -42,7 +42,7 @@ export function generateMCPConfig(options) {
|
|
|
42
42
|
};
|
|
43
43
|
// Claude Flow MCP server (core)
|
|
44
44
|
if (config.claudeFlow) {
|
|
45
|
-
mcpServers['
|
|
45
|
+
mcpServers['odd-flow'] = createMCPServerEntry(['@odd-flow/cli@latest', 'mcp', 'start'], {
|
|
46
46
|
...npmEnv,
|
|
47
47
|
CLAUDE_FLOW_MODE: 'v3',
|
|
48
48
|
CLAUDE_FLOW_HOOKS_ENABLED: 'true',
|
|
@@ -19,20 +19,20 @@ export function generateSettings(options) {
|
|
|
19
19
|
// Add permissions
|
|
20
20
|
settings.permissions = {
|
|
21
21
|
allow: [
|
|
22
|
-
'Bash(npx @
|
|
23
|
-
'Bash(npx
|
|
22
|
+
'Bash(npx @odd-flow*)',
|
|
23
|
+
'Bash(npx odd-flow*)',
|
|
24
24
|
'Bash(node .claude/*)',
|
|
25
|
-
'
|
|
25
|
+
'mcp__odd-flow__:*',
|
|
26
26
|
],
|
|
27
27
|
deny: [
|
|
28
28
|
'Read(./.env)',
|
|
29
29
|
'Read(./.env.*)',
|
|
30
30
|
],
|
|
31
31
|
};
|
|
32
|
-
// Add
|
|
32
|
+
// Add odd-flow attribution for git commits and PRs
|
|
33
33
|
settings.attribution = {
|
|
34
|
-
commit: 'Co-Authored-By:
|
|
35
|
-
pr: '🤖 Generated with [
|
|
34
|
+
commit: 'Co-Authored-By: odd-flow <ruv@ruv.net>',
|
|
35
|
+
pr: '🤖 Generated with [odd-flow](https://github.com/ruvnet/odd-flow)',
|
|
36
36
|
};
|
|
37
37
|
// Note: Claude Code expects 'model' to be a string, not an object
|
|
38
38
|
// Model preferences are stored in claudeFlow settings instead
|