odd-flow 1.0.0 → 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/README.md +126 -7475
- 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
|
@@ -14,7 +14,7 @@ import { output } from '../output.js';
|
|
|
14
14
|
// Dynamic imports for embeddings package
|
|
15
15
|
async function getEmbeddings() {
|
|
16
16
|
try {
|
|
17
|
-
return await import('@
|
|
17
|
+
return await import('@odd-flow/embeddings');
|
|
18
18
|
}
|
|
19
19
|
catch {
|
|
20
20
|
return null;
|
|
@@ -31,8 +31,8 @@ const generateCommand = {
|
|
|
31
31
|
{ name: 'output', short: 'o', type: 'string', description: 'Output format: json, array, preview', default: 'preview' },
|
|
32
32
|
],
|
|
33
33
|
examples: [
|
|
34
|
-
{ command: '
|
|
35
|
-
{ command: '
|
|
34
|
+
{ command: 'odd-flow embeddings generate -t "Hello world"', description: 'Generate embedding' },
|
|
35
|
+
{ command: 'odd-flow embeddings generate -t "Test" -o json', description: 'Output as JSON' },
|
|
36
36
|
],
|
|
37
37
|
action: async (ctx) => {
|
|
38
38
|
const text = ctx.flags.text;
|
|
@@ -103,8 +103,8 @@ const searchCommand = {
|
|
|
103
103
|
{ name: 'db-path', type: 'string', description: 'Database path', default: '.swarm/memory.db' },
|
|
104
104
|
],
|
|
105
105
|
examples: [
|
|
106
|
-
{ command: '
|
|
107
|
-
{ command: '
|
|
106
|
+
{ command: 'odd-flow embeddings search -q "error handling"', description: 'Search for similar' },
|
|
107
|
+
{ command: 'odd-flow embeddings search -q "test" -l 5', description: 'Limit results' },
|
|
108
108
|
],
|
|
109
109
|
action: async (ctx) => {
|
|
110
110
|
const query = ctx.flags.query;
|
|
@@ -129,7 +129,7 @@ const searchCommand = {
|
|
|
129
129
|
if (!fs.existsSync(fullDbPath)) {
|
|
130
130
|
spinner.fail('Database not found');
|
|
131
131
|
output.printWarning(`No database at ${fullDbPath}`);
|
|
132
|
-
output.printInfo('Run:
|
|
132
|
+
output.printInfo('Run: odd-flow memory init');
|
|
133
133
|
return { success: false, exitCode: 1 };
|
|
134
134
|
}
|
|
135
135
|
// Load sql.js
|
|
@@ -211,7 +211,7 @@ const searchCommand = {
|
|
|
211
211
|
if (topResults.length === 0) {
|
|
212
212
|
output.writeln();
|
|
213
213
|
output.printWarning('No matches found');
|
|
214
|
-
output.printInfo(`Try:
|
|
214
|
+
output.printInfo(`Try: odd-flow memory store -k "key" --value "your data"`);
|
|
215
215
|
return { success: true, data: [] };
|
|
216
216
|
}
|
|
217
217
|
output.writeln();
|
|
@@ -269,7 +269,7 @@ const compareCommand = {
|
|
|
269
269
|
{ name: 'metric', short: 'm', type: 'string', description: 'Metric: cosine, euclidean, dot', default: 'cosine' },
|
|
270
270
|
],
|
|
271
271
|
examples: [
|
|
272
|
-
{ command: '
|
|
272
|
+
{ command: 'odd-flow embeddings compare --text1 "Hello" --text2 "Hi there"', description: 'Compare texts' },
|
|
273
273
|
],
|
|
274
274
|
action: async (ctx) => {
|
|
275
275
|
const text1 = ctx.flags.text1;
|
|
@@ -354,8 +354,8 @@ const collectionsCommand = {
|
|
|
354
354
|
{ name: 'db-path', type: 'string', description: 'Database path', default: '.swarm/memory.db' },
|
|
355
355
|
],
|
|
356
356
|
examples: [
|
|
357
|
-
{ command: '
|
|
358
|
-
{ command: '
|
|
357
|
+
{ command: 'odd-flow embeddings collections', description: 'List collections' },
|
|
358
|
+
{ command: 'odd-flow embeddings collections -a stats', description: 'Show detailed stats' },
|
|
359
359
|
],
|
|
360
360
|
action: async (ctx) => {
|
|
361
361
|
const action = ctx.flags.action || 'list';
|
|
@@ -370,7 +370,7 @@ const collectionsCommand = {
|
|
|
370
370
|
// Check if database exists
|
|
371
371
|
if (!fs.existsSync(fullDbPath)) {
|
|
372
372
|
output.printWarning('No database found');
|
|
373
|
-
output.printInfo('Run:
|
|
373
|
+
output.printInfo('Run: odd-flow memory init');
|
|
374
374
|
output.writeln();
|
|
375
375
|
output.writeln(output.dim('No collections yet - initialize memory first'));
|
|
376
376
|
return { success: true, data: [] };
|
|
@@ -414,7 +414,7 @@ const collectionsCommand = {
|
|
|
414
414
|
output.printWarning('No collections found');
|
|
415
415
|
output.writeln();
|
|
416
416
|
output.writeln(output.dim('Store some data first:'));
|
|
417
|
-
output.writeln(output.highlight('
|
|
417
|
+
output.writeln(output.highlight(' odd-flow memory store -k "key" --value "data"'));
|
|
418
418
|
return { success: true, data: [] };
|
|
419
419
|
}
|
|
420
420
|
output.printTable({
|
|
@@ -458,9 +458,9 @@ const indexCommand = {
|
|
|
458
458
|
{ name: 'm', type: 'number', description: 'HNSW M parameter', default: '16' },
|
|
459
459
|
],
|
|
460
460
|
examples: [
|
|
461
|
-
{ command: '
|
|
462
|
-
{ command: '
|
|
463
|
-
{ command: '
|
|
461
|
+
{ command: 'odd-flow embeddings index', description: 'Show index status' },
|
|
462
|
+
{ command: 'odd-flow embeddings index -a build -c documents', description: 'Build index' },
|
|
463
|
+
{ command: 'odd-flow embeddings index -a optimize -c patterns', description: 'Optimize index' },
|
|
464
464
|
],
|
|
465
465
|
action: async (ctx) => {
|
|
466
466
|
const action = ctx.flags.action || 'status';
|
|
@@ -519,7 +519,7 @@ const indexCommand = {
|
|
|
519
519
|
else {
|
|
520
520
|
output.writeln();
|
|
521
521
|
output.printInfo('Index is empty. Store some entries to populate it.');
|
|
522
|
-
output.printInfo('Run:
|
|
522
|
+
output.printInfo('Run: odd-flow memory store -k "key" --value "text"');
|
|
523
523
|
}
|
|
524
524
|
return { success: true, data: status };
|
|
525
525
|
}
|
|
@@ -579,11 +579,11 @@ const initCommand = {
|
|
|
579
579
|
{ name: 'force', short: 'f', type: 'boolean', description: 'Overwrite existing configuration', default: 'false' },
|
|
580
580
|
],
|
|
581
581
|
examples: [
|
|
582
|
-
{ command: '
|
|
583
|
-
{ command: '
|
|
584
|
-
{ command: '
|
|
585
|
-
{ command: '
|
|
586
|
-
{ command: '
|
|
582
|
+
{ command: 'odd-flow embeddings init', description: 'Initialize with defaults' },
|
|
583
|
+
{ command: 'odd-flow embeddings init --model all-mpnet-base-v2', description: 'Use higher quality model' },
|
|
584
|
+
{ command: 'odd-flow embeddings init --no-hyperbolic', description: 'Euclidean only' },
|
|
585
|
+
{ command: 'odd-flow embeddings init --curvature=-0.5', description: 'Custom curvature (use = for negative)' },
|
|
586
|
+
{ command: 'odd-flow embeddings init --force', description: 'Overwrite existing config' },
|
|
587
587
|
],
|
|
588
588
|
action: async (ctx) => {
|
|
589
589
|
const model = ctx.flags.model || 'all-MiniLM-L6-v2';
|
|
@@ -603,7 +603,7 @@ const initCommand = {
|
|
|
603
603
|
const fs = await import('fs');
|
|
604
604
|
const path = await import('path');
|
|
605
605
|
// Create directories
|
|
606
|
-
const configDir = path.join(process.cwd(), '.
|
|
606
|
+
const configDir = path.join(process.cwd(), '.odd-flow');
|
|
607
607
|
const modelDir = path.join(configDir, 'models');
|
|
608
608
|
const configPath = path.join(configDir, 'embeddings.json');
|
|
609
609
|
// Check for existing config
|
|
@@ -634,7 +634,7 @@ const initCommand = {
|
|
|
634
634
|
else {
|
|
635
635
|
// Simulate download for when embeddings package not available
|
|
636
636
|
await new Promise(r => setTimeout(r, 500));
|
|
637
|
-
output.writeln(output.dim(' (Simulated - @
|
|
637
|
+
output.writeln(output.dim(' (Simulated - @odd-flow/embeddings not installed)'));
|
|
638
638
|
}
|
|
639
639
|
}
|
|
640
640
|
// Write embeddings config
|
|
@@ -708,7 +708,7 @@ const providersCommand = {
|
|
|
708
708
|
description: 'List available embedding providers',
|
|
709
709
|
options: [],
|
|
710
710
|
examples: [
|
|
711
|
-
{ command: '
|
|
711
|
+
{ command: 'odd-flow embeddings providers', description: 'List providers' },
|
|
712
712
|
],
|
|
713
713
|
action: async () => {
|
|
714
714
|
output.writeln();
|
|
@@ -747,8 +747,8 @@ const chunkCommand = {
|
|
|
747
747
|
{ name: 'file', short: 'f', type: 'string', description: 'File to chunk (instead of text)' },
|
|
748
748
|
],
|
|
749
749
|
examples: [
|
|
750
|
-
{ command: '
|
|
751
|
-
{ command: '
|
|
750
|
+
{ command: 'odd-flow embeddings chunk -t "Long text..." -s 256', description: 'Chunk with 256 char limit' },
|
|
751
|
+
{ command: 'odd-flow embeddings chunk -f doc.txt --strategy paragraph', description: 'Chunk file by paragraph' },
|
|
752
752
|
],
|
|
753
753
|
action: async (ctx) => {
|
|
754
754
|
const embeddings = await getEmbeddings();
|
|
@@ -760,7 +760,7 @@ const chunkCommand = {
|
|
|
760
760
|
output.writeln(output.bold('Document Chunking'));
|
|
761
761
|
output.writeln(output.dim('─'.repeat(50)));
|
|
762
762
|
if (!embeddings) {
|
|
763
|
-
output.printWarning('@
|
|
763
|
+
output.printWarning('@odd-flow/embeddings not installed, showing preview');
|
|
764
764
|
output.writeln();
|
|
765
765
|
output.printBox([
|
|
766
766
|
`Strategy: ${strategy}`,
|
|
@@ -802,8 +802,8 @@ const normalizeCommand = {
|
|
|
802
802
|
{ name: 'check', short: 'c', type: 'boolean', description: 'Check if already normalized' },
|
|
803
803
|
],
|
|
804
804
|
examples: [
|
|
805
|
-
{ command: '
|
|
806
|
-
{ command: '
|
|
805
|
+
{ command: 'odd-flow embeddings normalize -i "[0.5, 0.3, 0.8]" -t l2', description: 'L2 normalize' },
|
|
806
|
+
{ command: 'odd-flow embeddings normalize --check -i "[...]"', description: 'Check if normalized' },
|
|
807
807
|
],
|
|
808
808
|
action: async (ctx) => {
|
|
809
809
|
const type = ctx.flags.type || 'l2';
|
|
@@ -840,8 +840,8 @@ const hyperbolicCommand = {
|
|
|
840
840
|
{ name: 'input', short: 'i', type: 'string', description: 'Input embedding(s) JSON' },
|
|
841
841
|
],
|
|
842
842
|
examples: [
|
|
843
|
-
{ command: '
|
|
844
|
-
{ command: '
|
|
843
|
+
{ command: 'odd-flow embeddings hyperbolic -a convert -i "[0.5, 0.3]"', description: 'Convert to Poincaré' },
|
|
844
|
+
{ command: 'odd-flow embeddings hyperbolic -a distance', description: 'Compute hyperbolic distance' },
|
|
845
845
|
],
|
|
846
846
|
action: async (ctx) => {
|
|
847
847
|
const action = ctx.flags.action || 'convert';
|
|
@@ -853,10 +853,10 @@ const hyperbolicCommand = {
|
|
|
853
853
|
output.writeln(output.dim('─'.repeat(50)));
|
|
854
854
|
// Try to import hyperbolic functions from embeddings package
|
|
855
855
|
try {
|
|
856
|
-
const hyperbolic = await import('@
|
|
856
|
+
const hyperbolic = await import('@odd-flow/embeddings').then(m => m).catch(() => null);
|
|
857
857
|
if (!hyperbolic || !hyperbolic.euclideanToPoincare) {
|
|
858
|
-
output.printWarning('@
|
|
859
|
-
output.printInfo('Install with: npm install @
|
|
858
|
+
output.printWarning('@odd-flow/embeddings hyperbolic module not available');
|
|
859
|
+
output.printInfo('Install with: npm install @odd-flow/embeddings');
|
|
860
860
|
return { success: false, exitCode: 1 };
|
|
861
861
|
}
|
|
862
862
|
if (!inputJson) {
|
|
@@ -892,7 +892,7 @@ const hyperbolicCommand = {
|
|
|
892
892
|
output.writeln(output.success('Euclidean → Poincaré conversion:'));
|
|
893
893
|
output.writeln();
|
|
894
894
|
output.writeln(`Input (Euclidean): [${vec.slice(0, 6).map(v => v.toFixed(4)).join(', ')}${vec.length > 6 ? ', ...' : ''}]`);
|
|
895
|
-
output.writeln(`Output (Poincaré): [${result.slice(0, 6).map(v => v.toFixed(4)).join(', ')}${result.length > 6 ? ', ...' : ''}]`);
|
|
895
|
+
output.writeln(`Output (Poincaré): [${result.slice(0, 6).map((v) => v.toFixed(4)).join(', ')}${result.length > 6 ? ', ...' : ''}]`);
|
|
896
896
|
output.writeln(`Curvature: ${curvature}`);
|
|
897
897
|
output.writeln(`Norm: ${Math.sqrt(result.reduce((s, v) => s + v * v, 0)).toFixed(6)} (must be < 1)`);
|
|
898
898
|
return { success: true, data: { result } };
|
|
@@ -922,7 +922,7 @@ const hyperbolicCommand = {
|
|
|
922
922
|
output.writeln(output.success('Hyperbolic centroid (Fréchet mean):'));
|
|
923
923
|
output.writeln();
|
|
924
924
|
output.writeln(`Input vectors: ${vectors.length}`);
|
|
925
|
-
output.writeln(`Centroid: [${centroid.slice(0, 6).map(v => v.toFixed(4)).join(', ')}${centroid.length > 6 ? ', ...' : ''}]`);
|
|
925
|
+
output.writeln(`Centroid: [${centroid.slice(0, 6).map((v) => v.toFixed(4)).join(', ')}${centroid.length > 6 ? ', ...' : ''}]`);
|
|
926
926
|
return { success: true, data: { centroid } };
|
|
927
927
|
}
|
|
928
928
|
default:
|
|
@@ -948,11 +948,11 @@ const neuralCommand = {
|
|
|
948
948
|
{ name: 'consolidation-interval', type: 'string', description: 'Memory consolidation interval (ms)', default: '60000' },
|
|
949
949
|
],
|
|
950
950
|
examples: [
|
|
951
|
-
{ command: '
|
|
952
|
-
{ command: '
|
|
953
|
-
{ command: '
|
|
954
|
-
{ command: '
|
|
955
|
-
{ command: '
|
|
951
|
+
{ command: 'odd-flow embeddings neural --init', description: 'Initialize RuVector substrate' },
|
|
952
|
+
{ command: 'odd-flow embeddings neural -f drift', description: 'Semantic drift detection' },
|
|
953
|
+
{ command: 'odd-flow embeddings neural -f memory', description: 'Memory physics (hippocampal)' },
|
|
954
|
+
{ command: 'odd-flow embeddings neural -f coherence', description: 'Safety & alignment monitoring' },
|
|
955
|
+
{ command: 'odd-flow embeddings neural --drift-threshold=0.2', description: 'Custom drift threshold' },
|
|
956
956
|
],
|
|
957
957
|
action: async (ctx) => {
|
|
958
958
|
const feature = ctx.flags.feature || 'all';
|
|
@@ -967,7 +967,7 @@ const neuralCommand = {
|
|
|
967
967
|
// Check if embeddings config exists
|
|
968
968
|
const fs = await import('fs');
|
|
969
969
|
const path = await import('path');
|
|
970
|
-
const configPath = path.join(process.cwd(), '.
|
|
970
|
+
const configPath = path.join(process.cwd(), '.odd-flow', 'embeddings.json');
|
|
971
971
|
if (!fs.existsSync(configPath)) {
|
|
972
972
|
output.printWarning('Embeddings not initialized');
|
|
973
973
|
output.printInfo('Run "embeddings init" first to configure ONNX model');
|
|
@@ -1080,7 +1080,7 @@ const neuralCommand = {
|
|
|
1080
1080
|
output.printInfo('Run with --init to enable neural substrate');
|
|
1081
1081
|
}
|
|
1082
1082
|
else {
|
|
1083
|
-
output.writeln(output.dim('Configuration: .
|
|
1083
|
+
output.writeln(output.dim('Configuration: .odd-flow/embeddings.json'));
|
|
1084
1084
|
output.writeln(output.dim('Next: Use "hooks pretrain" to train patterns'));
|
|
1085
1085
|
}
|
|
1086
1086
|
return { success: true, data: { config: neuralConfig, feature } };
|
|
@@ -1095,8 +1095,8 @@ const modelsCommand = {
|
|
|
1095
1095
|
{ name: 'list', short: 'l', type: 'boolean', description: 'List available models', default: 'true' },
|
|
1096
1096
|
],
|
|
1097
1097
|
examples: [
|
|
1098
|
-
{ command: '
|
|
1099
|
-
{ command: '
|
|
1098
|
+
{ command: 'odd-flow embeddings models', description: 'List models' },
|
|
1099
|
+
{ command: 'odd-flow embeddings models -d all-MiniLM-L6-v2', description: 'Download model' },
|
|
1100
1100
|
],
|
|
1101
1101
|
action: async (ctx) => {
|
|
1102
1102
|
const download = ctx.flags.download;
|
|
@@ -1165,8 +1165,8 @@ const cacheCommand = {
|
|
|
1165
1165
|
{ name: 'db-path', type: 'string', description: 'SQLite database path', default: '.cache/embeddings.db' },
|
|
1166
1166
|
],
|
|
1167
1167
|
examples: [
|
|
1168
|
-
{ command: '
|
|
1169
|
-
{ command: '
|
|
1168
|
+
{ command: 'odd-flow embeddings cache', description: 'Show cache stats' },
|
|
1169
|
+
{ command: 'odd-flow embeddings cache -a clear', description: 'Clear cache' },
|
|
1170
1170
|
],
|
|
1171
1171
|
action: async (ctx) => {
|
|
1172
1172
|
const action = ctx.flags.action || 'stats';
|
|
@@ -1295,8 +1295,8 @@ const warmupCommand = {
|
|
|
1295
1295
|
{ name: 'test', short: 't', type: 'boolean', description: 'Run test embedding after warmup', default: 'true' },
|
|
1296
1296
|
],
|
|
1297
1297
|
examples: [
|
|
1298
|
-
{ command: '
|
|
1299
|
-
{ command: '
|
|
1298
|
+
{ command: 'odd-flow embeddings warmup', description: 'Preload model with test' },
|
|
1299
|
+
{ command: 'odd-flow embeddings warmup -b', description: 'Background warmup' },
|
|
1300
1300
|
],
|
|
1301
1301
|
action: async (ctx) => {
|
|
1302
1302
|
const runTest = ctx.flags.test !== false;
|
|
@@ -1369,8 +1369,8 @@ const benchmarkCommand = {
|
|
|
1369
1369
|
{ name: 'full', short: 'f', type: 'boolean', description: 'Run full benchmark suite', default: 'false' },
|
|
1370
1370
|
],
|
|
1371
1371
|
examples: [
|
|
1372
|
-
{ command: '
|
|
1373
|
-
{ command: '
|
|
1372
|
+
{ command: 'odd-flow embeddings benchmark', description: 'Quick benchmark' },
|
|
1373
|
+
{ command: 'odd-flow embeddings benchmark -n 50 -f', description: 'Full benchmark' },
|
|
1374
1374
|
],
|
|
1375
1375
|
action: async (ctx) => {
|
|
1376
1376
|
const iterations = parseInt(ctx.flags.iterations || '10', 10);
|
|
@@ -1524,13 +1524,13 @@ export const embeddingsCommand = {
|
|
|
1524
1524
|
benchmarkCommand,
|
|
1525
1525
|
],
|
|
1526
1526
|
examples: [
|
|
1527
|
-
{ command: '
|
|
1528
|
-
{ command: '
|
|
1529
|
-
{ command: '
|
|
1530
|
-
{ command: '
|
|
1531
|
-
{ command: '
|
|
1532
|
-
{ command: '
|
|
1533
|
-
{ command: '
|
|
1527
|
+
{ command: 'odd-flow embeddings init', description: 'Initialize ONNX embedding system' },
|
|
1528
|
+
{ command: 'odd-flow embeddings init --model all-mpnet-base-v2', description: 'Init with larger model' },
|
|
1529
|
+
{ command: 'odd-flow embeddings generate -t "Hello"', description: 'Generate embedding' },
|
|
1530
|
+
{ command: 'odd-flow embeddings search -q "error handling"', description: 'Semantic search' },
|
|
1531
|
+
{ command: 'odd-flow embeddings chunk -t "Long doc..."', description: 'Chunk document' },
|
|
1532
|
+
{ command: 'odd-flow embeddings hyperbolic -a convert', description: 'Hyperbolic space' },
|
|
1533
|
+
{ command: 'odd-flow embed neural -f drift', description: 'Neural substrate' },
|
|
1534
1534
|
],
|
|
1535
1535
|
action: async () => {
|
|
1536
1536
|
output.writeln();
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 CLI Escalation Command
|
|
3
|
+
* Severity-based problem routing (P0/P1/P2)
|
|
4
|
+
*/
|
|
5
|
+
import { output } from '../output.js';
|
|
6
|
+
import { callMCPTool } from '../mcp-client.js';
|
|
7
|
+
const statusSubcommand = {
|
|
8
|
+
name: 'status',
|
|
9
|
+
description: 'Show current escalation state',
|
|
10
|
+
options: [
|
|
11
|
+
{ name: 'severity', short: 's', type: 'string', description: 'Filter by severity (p0, p1, p2)' },
|
|
12
|
+
],
|
|
13
|
+
action: async (ctx) => {
|
|
14
|
+
try {
|
|
15
|
+
const result = await callMCPTool('escalation_status', {
|
|
16
|
+
severity: ctx.flags?.severity,
|
|
17
|
+
});
|
|
18
|
+
output.writeln(output.bold('Escalation Status'));
|
|
19
|
+
output.writeln(JSON.stringify(result, null, 2));
|
|
20
|
+
return { success: true };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
output.error(`Failed to get escalation status: ${error}`);
|
|
24
|
+
return { success: false };
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
const logSubcommand = {
|
|
29
|
+
name: 'log',
|
|
30
|
+
description: 'Show full escalation history',
|
|
31
|
+
options: [],
|
|
32
|
+
action: async (_ctx) => {
|
|
33
|
+
try {
|
|
34
|
+
const result = await callMCPTool('escalation_status', {});
|
|
35
|
+
output.writeln(output.bold('Escalation Log'));
|
|
36
|
+
output.writeln(JSON.stringify(result, null, 2));
|
|
37
|
+
return { success: true };
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
output.error(`Failed to get escalation log: ${error}`);
|
|
41
|
+
return { success: false };
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
const summarySubcommand = {
|
|
46
|
+
name: 'summary',
|
|
47
|
+
description: 'Show batched P2 summary grouped by category',
|
|
48
|
+
options: [],
|
|
49
|
+
action: async (_ctx) => {
|
|
50
|
+
try {
|
|
51
|
+
const result = await callMCPTool('escalation_status', {});
|
|
52
|
+
output.writeln(output.bold('Escalation Summary'));
|
|
53
|
+
output.writeln(JSON.stringify(result, null, 2));
|
|
54
|
+
return { success: true };
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
output.error(`Failed to get escalation summary: ${error}`);
|
|
58
|
+
return { success: false };
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
const reclassifySubcommand = {
|
|
63
|
+
name: 'reclassify',
|
|
64
|
+
description: 'Reclassify an escalation event to a different severity',
|
|
65
|
+
options: [
|
|
66
|
+
{ name: 'severity', short: 's', type: 'string', description: 'New severity (p0, p1, p2)', required: true },
|
|
67
|
+
],
|
|
68
|
+
action: async (ctx) => {
|
|
69
|
+
const eventId = ctx.args?.[0];
|
|
70
|
+
const severity = ctx.flags?.severity;
|
|
71
|
+
if (!eventId || !severity) {
|
|
72
|
+
output.error('Usage: odd-flow escalation reclassify <eventId> --severity <p0|p1|p2>');
|
|
73
|
+
return { success: false };
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
const result = await callMCPTool('escalation_resolve', {
|
|
77
|
+
eventId,
|
|
78
|
+
reclassifyTo: severity,
|
|
79
|
+
});
|
|
80
|
+
output.writeln(JSON.stringify(result, null, 2));
|
|
81
|
+
return { success: true };
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
output.error(`Failed to reclassify: ${error}`);
|
|
85
|
+
return { success: false };
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
export const escalationCommand = {
|
|
90
|
+
name: 'escalation',
|
|
91
|
+
description: 'Severity-based problem routing (P0/P1/P2)',
|
|
92
|
+
subcommands: [statusSubcommand, logSubcommand, summarySubcommand, reclassifySubcommand],
|
|
93
|
+
options: [],
|
|
94
|
+
examples: [
|
|
95
|
+
{ command: 'odd-flow escalation status', description: 'Show open escalations' },
|
|
96
|
+
{ command: 'odd-flow escalation summary', description: 'Show P2 summary' },
|
|
97
|
+
{ command: 'odd-flow escalation reclassify evt-123 --severity p2', description: 'Downgrade to P2' },
|
|
98
|
+
],
|
|
99
|
+
action: async (_ctx) => {
|
|
100
|
+
output.writeln();
|
|
101
|
+
output.writeln(output.bold('Escalation — Problem Routing'));
|
|
102
|
+
output.writeln();
|
|
103
|
+
output.writeln('Usage: odd-flow escalation <subcommand>');
|
|
104
|
+
output.writeln();
|
|
105
|
+
output.writeln('Subcommands:');
|
|
106
|
+
output.printList([
|
|
107
|
+
`${output.highlight('status')} - Show current escalation state`,
|
|
108
|
+
`${output.highlight('log')} - Show full escalation history`,
|
|
109
|
+
`${output.highlight('summary')} - Show batched P2 summary`,
|
|
110
|
+
`${output.highlight('reclassify')} - Reclassify event severity`,
|
|
111
|
+
]);
|
|
112
|
+
return { success: true };
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=escalation.js.map
|
|
@@ -14,9 +14,9 @@ const compileCommand = {
|
|
|
14
14
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
15
15
|
],
|
|
16
16
|
examples: [
|
|
17
|
-
{ command: '
|
|
18
|
-
{ command: '
|
|
19
|
-
{ command: '
|
|
17
|
+
{ command: 'odd-flow guidance compile', description: 'Compile default CLAUDE.md' },
|
|
18
|
+
{ command: 'odd-flow guidance compile -r ./CLAUDE.md -l ./CLAUDE.local.md', description: 'Compile with local overlay' },
|
|
19
|
+
{ command: 'odd-flow guidance compile --json', description: 'Output compiled bundle as JSON' },
|
|
20
20
|
],
|
|
21
21
|
action: async (ctx) => {
|
|
22
22
|
const rootPath = ctx.flags.root || './CLAUDE.md';
|
|
@@ -37,7 +37,7 @@ const compileCommand = {
|
|
|
37
37
|
if (localPath && existsSync(localPath)) {
|
|
38
38
|
localContent = await readFile(localPath, 'utf-8');
|
|
39
39
|
}
|
|
40
|
-
const { GuidanceCompiler } = await import('@
|
|
40
|
+
const { GuidanceCompiler } = await import('@odd-flow/guidance/compiler');
|
|
41
41
|
const compiler = new GuidanceCompiler();
|
|
42
42
|
const bundle = compiler.compile(rootContent, localContent);
|
|
43
43
|
if (jsonOutput) {
|
|
@@ -88,8 +88,8 @@ const retrieveCommand = {
|
|
|
88
88
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
89
89
|
],
|
|
90
90
|
examples: [
|
|
91
|
-
{ command: '
|
|
92
|
-
{ command: '
|
|
91
|
+
{ command: 'odd-flow guidance retrieve -t "Fix SQL injection in user search"', description: 'Retrieve guidance for a security task' },
|
|
92
|
+
{ command: 'odd-flow guidance retrieve -t "Add unit tests" -n 3', description: 'Retrieve top 3 shards for testing' },
|
|
93
93
|
],
|
|
94
94
|
action: async (ctx) => {
|
|
95
95
|
const task = ctx.flags.task;
|
|
@@ -108,8 +108,8 @@ const retrieveCommand = {
|
|
|
108
108
|
try {
|
|
109
109
|
const { readFile } = await import('node:fs/promises');
|
|
110
110
|
const { existsSync } = await import('node:fs');
|
|
111
|
-
const { GuidanceCompiler } = await import('@
|
|
112
|
-
const { ShardRetriever, HashEmbeddingProvider } = await import('@
|
|
111
|
+
const { GuidanceCompiler } = await import('@odd-flow/guidance/compiler');
|
|
112
|
+
const { ShardRetriever, HashEmbeddingProvider } = await import('@odd-flow/guidance/retriever');
|
|
113
113
|
if (!existsSync(rootPath)) {
|
|
114
114
|
output.writeln(output.error(`Root guidance file not found: ${rootPath}`));
|
|
115
115
|
return { success: false, message: `File not found: ${rootPath}` };
|
|
@@ -173,8 +173,8 @@ const gatesCommand = {
|
|
|
173
173
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
174
174
|
],
|
|
175
175
|
examples: [
|
|
176
|
-
{ command: '
|
|
177
|
-
{ command: '
|
|
176
|
+
{ command: 'odd-flow guidance gates -c "rm -rf /tmp"', description: 'Check if a command is destructive' },
|
|
177
|
+
{ command: 'odd-flow guidance gates --content "api_key=sk-abc123..."', description: 'Check content for secrets' },
|
|
178
178
|
],
|
|
179
179
|
action: async (ctx) => {
|
|
180
180
|
const command = ctx.flags.command;
|
|
@@ -185,7 +185,7 @@ const gatesCommand = {
|
|
|
185
185
|
output.writeln(output.bold('Enforcement Gates'));
|
|
186
186
|
output.writeln(output.dim('─'.repeat(50)));
|
|
187
187
|
try {
|
|
188
|
-
const { EnforcementGates } = await import('@
|
|
188
|
+
const { EnforcementGates } = await import('@odd-flow/guidance/gates');
|
|
189
189
|
const gates = new EnforcementGates();
|
|
190
190
|
const results = [];
|
|
191
191
|
if (command) {
|
|
@@ -268,7 +268,7 @@ const statusCommand = {
|
|
|
268
268
|
const statusData = {
|
|
269
269
|
rootGuidance: rootExists ? 'found' : 'not found',
|
|
270
270
|
localOverlay: localExists ? 'found' : 'not configured',
|
|
271
|
-
dataDir: existsSync('./.
|
|
271
|
+
dataDir: existsSync('./.odd-flow/guidance') ? 'exists' : 'not created',
|
|
272
272
|
};
|
|
273
273
|
if (jsonOutput) {
|
|
274
274
|
output.writeln(JSON.stringify(statusData, null, 2));
|
|
@@ -279,7 +279,7 @@ const statusCommand = {
|
|
|
279
279
|
output.writeln(` Data directory: ${statusData.dataDir === 'exists' ? output.success('exists') : output.dim('not created')}`);
|
|
280
280
|
if (rootExists) {
|
|
281
281
|
const { readFile } = await import('node:fs/promises');
|
|
282
|
-
const { GuidanceCompiler } = await import('@
|
|
282
|
+
const { GuidanceCompiler } = await import('@odd-flow/guidance/compiler');
|
|
283
283
|
const rootContent = await readFile('./CLAUDE.md', 'utf-8');
|
|
284
284
|
const compiler = new GuidanceCompiler();
|
|
285
285
|
const bundle = compiler.compile(rootContent);
|
|
@@ -314,10 +314,10 @@ const optimizeCommand = {
|
|
|
314
314
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
315
315
|
],
|
|
316
316
|
examples: [
|
|
317
|
-
{ command: '
|
|
318
|
-
{ command: '
|
|
319
|
-
{ command: '
|
|
320
|
-
{ command: '
|
|
317
|
+
{ command: 'odd-flow guidance optimize', description: 'Analyze current CLAUDE.md and show suggestions' },
|
|
318
|
+
{ command: 'odd-flow guidance optimize --apply', description: 'Apply optimizations to CLAUDE.md' },
|
|
319
|
+
{ command: 'odd-flow guidance optimize -s compact --apply', description: 'Optimize for compact context window' },
|
|
320
|
+
{ command: 'odd-flow guidance optimize --target-score 95', description: 'Optimize until score reaches 95' },
|
|
321
321
|
],
|
|
322
322
|
action: async (ctx) => {
|
|
323
323
|
const rootPath = ctx.flags.root || './CLAUDE.md';
|
|
@@ -343,7 +343,7 @@ const optimizeCommand = {
|
|
|
343
343
|
localContent = await readFile(localPath, 'utf-8');
|
|
344
344
|
}
|
|
345
345
|
// Step 1: Analyze current state
|
|
346
|
-
const { analyze, formatReport, optimizeForSize, formatBenchmark } = await import('@
|
|
346
|
+
const { analyze, formatReport, optimizeForSize, formatBenchmark } = await import('@odd-flow/guidance/analyzer');
|
|
347
347
|
const analysis = analyze(rootContent, localContent);
|
|
348
348
|
if (jsonOutput && !applyChanges) {
|
|
349
349
|
output.writeln(JSON.stringify(analysis, null, 2));
|
|
@@ -417,10 +417,10 @@ const abTestCommand = {
|
|
|
417
417
|
{ name: 'json', type: 'boolean', description: 'Output as JSON', default: 'false' },
|
|
418
418
|
],
|
|
419
419
|
examples: [
|
|
420
|
-
{ command: '
|
|
421
|
-
{ command: '
|
|
422
|
-
{ command: '
|
|
423
|
-
{ command: '
|
|
420
|
+
{ command: 'odd-flow guidance ab-test', description: 'Run default A/B test (no guidance vs ./CLAUDE.md)' },
|
|
421
|
+
{ command: 'odd-flow guidance ab-test -a old.md -b new.md', description: 'Compare two CLAUDE.md versions' },
|
|
422
|
+
{ command: 'odd-flow guidance ab-test --tasks custom-tasks.json', description: 'Run with custom test tasks' },
|
|
423
|
+
{ command: 'odd-flow guidance ab-test --json', description: 'Output full report as JSON' },
|
|
424
424
|
],
|
|
425
425
|
action: async (ctx) => {
|
|
426
426
|
const configAPath = ctx.flags['config-a'];
|
|
@@ -434,7 +434,7 @@ const abTestCommand = {
|
|
|
434
434
|
try {
|
|
435
435
|
const { readFile } = await import('node:fs/promises');
|
|
436
436
|
const { existsSync } = await import('node:fs');
|
|
437
|
-
const { abBenchmark, getDefaultABTasks } = await import('@
|
|
437
|
+
const { abBenchmark, getDefaultABTasks } = await import('@odd-flow/guidance/analyzer');
|
|
438
438
|
// Load Config B (candidate) content
|
|
439
439
|
if (!existsSync(configBPath)) {
|
|
440
440
|
output.writeln(output.error(`Config B file not found: ${configBPath}`));
|
|
@@ -532,12 +532,12 @@ export const guidanceCommand = {
|
|
|
532
532
|
],
|
|
533
533
|
options: [],
|
|
534
534
|
examples: [
|
|
535
|
-
{ command: '
|
|
536
|
-
{ command: '
|
|
537
|
-
{ command: '
|
|
538
|
-
{ command: '
|
|
539
|
-
{ command: '
|
|
540
|
-
{ command: '
|
|
535
|
+
{ command: 'odd-flow guidance compile', description: 'Compile CLAUDE.md into policy bundle' },
|
|
536
|
+
{ command: 'odd-flow guidance retrieve -t "Fix auth bug"', description: 'Retrieve relevant guidance' },
|
|
537
|
+
{ command: 'odd-flow guidance gates -c "rm -rf /"', description: 'Check enforcement gates' },
|
|
538
|
+
{ command: 'odd-flow guidance status', description: 'Show control plane status' },
|
|
539
|
+
{ command: 'odd-flow guidance optimize', description: 'Analyze and optimize CLAUDE.md' },
|
|
540
|
+
{ command: 'odd-flow guidance ab-test', description: 'Run A/B behavioral comparison' },
|
|
541
541
|
],
|
|
542
542
|
action: async (ctx) => {
|
|
543
543
|
output.writeln();
|
|
@@ -552,7 +552,7 @@ export const guidanceCommand = {
|
|
|
552
552
|
output.writeln(` ${output.bold('optimize')} Analyze and optimize CLAUDE.md`);
|
|
553
553
|
output.writeln(` ${output.bold('ab-test')} Run A/B behavioral comparison`);
|
|
554
554
|
output.writeln();
|
|
555
|
-
output.writeln(output.dim('Use
|
|
555
|
+
output.writeln(output.dim('Use odd-flow guidance <subcommand> --help for details'));
|
|
556
556
|
return { success: true };
|
|
557
557
|
},
|
|
558
558
|
};
|