@claude-flow/cli 3.32.2 → 3.32.3
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/.claude/helpers/helpers.manifest.json +3 -3
- package/.claude/helpers/statusline.cjs +38 -38
- package/catalog-manifest.json +2 -2
- package/package.json +2 -2
- package/plugins/ruflo-metaharness/scripts/smoke.sh +11 -11
- package/dist/src/agenticow/speculative-exploration.d.ts +0 -148
- package/dist/src/agenticow/speculative-exploration.js +0 -218
- package/dist/src/appliance/gguf-engine.d.ts +0 -91
- package/dist/src/appliance/gguf-engine.js +0 -425
- package/dist/src/appliance/ruvllm-bridge.d.ts +0 -102
- package/dist/src/appliance/ruvllm-bridge.js +0 -292
- package/dist/src/appliance/rvfa-builder.d.ts +0 -44
- package/dist/src/appliance/rvfa-builder.js +0 -329
- package/dist/src/appliance/rvfa-distribution.d.ts +0 -97
- package/dist/src/appliance/rvfa-distribution.js +0 -370
- package/dist/src/appliance/rvfa-format.d.ts +0 -111
- package/dist/src/appliance/rvfa-format.js +0 -393
- package/dist/src/appliance/rvfa-runner.d.ts +0 -69
- package/dist/src/appliance/rvfa-runner.js +0 -237
- package/dist/src/appliance/rvfa-signing.d.ts +0 -123
- package/dist/src/appliance/rvfa-signing.js +0 -347
- package/dist/src/autopilot-state.d.ts +0 -77
- package/dist/src/autopilot-state.js +0 -271
- package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +0 -18
- package/dist/src/benchmarks/gaia-agent-planning.smoke.js +0 -253
- package/dist/src/benchmarks/gaia-agent.d.ts +0 -198
- package/dist/src/benchmarks/gaia-agent.js +0 -651
- package/dist/src/benchmarks/gaia-causal-memory.d.ts +0 -133
- package/dist/src/benchmarks/gaia-causal-memory.js +0 -281
- package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +0 -22
- package/dist/src/benchmarks/gaia-causal-memory.smoke.js +0 -300
- package/dist/src/benchmarks/gaia-convergence.d.ts +0 -138
- package/dist/src/benchmarks/gaia-convergence.js +0 -260
- package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +0 -19
- package/dist/src/benchmarks/gaia-convergence.smoke.js +0 -246
- package/dist/src/benchmarks/gaia-critic.d.ts +0 -123
- package/dist/src/benchmarks/gaia-critic.js +0 -312
- package/dist/src/benchmarks/gaia-critic.smoke.d.ts +0 -21
- package/dist/src/benchmarks/gaia-critic.smoke.js +0 -327
- package/dist/src/benchmarks/gaia-decomposer.d.ts +0 -125
- package/dist/src/benchmarks/gaia-decomposer.js +0 -350
- package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +0 -21
- package/dist/src/benchmarks/gaia-decomposer.smoke.js +0 -228
- package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +0 -27
- package/dist/src/benchmarks/gaia-e2e-smoke.js +0 -136
- package/dist/src/benchmarks/gaia-extract.smoke.d.ts +0 -45
- package/dist/src/benchmarks/gaia-extract.smoke.js +0 -242
- package/dist/src/benchmarks/gaia-hardness/features.d.ts +0 -46
- package/dist/src/benchmarks/gaia-hardness/features.js +0 -170
- package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +0 -105
- package/dist/src/benchmarks/gaia-hardness/predictor.js +0 -260
- package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +0 -20
- package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +0 -235
- package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +0 -51
- package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +0 -179
- package/dist/src/benchmarks/gaia-judge.d.ts +0 -88
- package/dist/src/benchmarks/gaia-judge.js +0 -437
- package/dist/src/benchmarks/gaia-loader.d.ts +0 -87
- package/dist/src/benchmarks/gaia-loader.js +0 -326
- package/dist/src/benchmarks/gaia-tools/file_read.d.ts +0 -35
- package/dist/src/benchmarks/gaia-tools/file_read.js +0 -403
- package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +0 -126
- package/dist/src/benchmarks/gaia-tools/grounded_query.js +0 -225
- package/dist/src/benchmarks/gaia-tools/index.d.ts +0 -32
- package/dist/src/benchmarks/gaia-tools/index.js +0 -36
- package/dist/src/benchmarks/gaia-tools/types.d.ts +0 -62
- package/dist/src/benchmarks/gaia-tools/types.js +0 -12
- package/dist/src/benchmarks/gaia-tools/web_search.d.ts +0 -30
- package/dist/src/benchmarks/gaia-tools/web_search.js +0 -210
- package/dist/src/benchmarks/gaia-voting.d.ts +0 -88
- package/dist/src/benchmarks/gaia-voting.js +0 -297
- package/dist/src/benchmarks/gaia-voting.smoke.d.ts +0 -20
- package/dist/src/benchmarks/gaia-voting.smoke.js +0 -332
- package/dist/src/benchmarks/pretrain/index.d.ts +0 -58
- package/dist/src/benchmarks/pretrain/index.js +0 -404
- package/dist/src/business-pods/bbs-budget-tracker.d.ts +0 -139
- package/dist/src/business-pods/bbs-budget-tracker.js +0 -358
- package/dist/src/business-pods/domain-affinity-policy.d.ts +0 -47
- package/dist/src/business-pods/domain-affinity-policy.js +0 -65
- package/dist/src/business-pods/pod-schema.d.ts +0 -96
- package/dist/src/business-pods/pod-schema.js +0 -225
- package/dist/src/commands/advisor.d.ts +0 -15
- package/dist/src/commands/advisor.js +0 -94
- package/dist/src/commands/agent-wasm.d.ts +0 -14
- package/dist/src/commands/agent-wasm.js +0 -333
- package/dist/src/commands/agent.d.ts +0 -8
- package/dist/src/commands/agent.js +0 -927
- package/dist/src/commands/analyze.d.ts +0 -19
- package/dist/src/commands/analyze.js +0 -2047
- package/dist/src/commands/announcements.d.ts +0 -17
- package/dist/src/commands/announcements.js +0 -0
- package/dist/src/commands/appliance-advanced.d.ts +0 -9
- package/dist/src/commands/appliance-advanced.js +0 -215
- package/dist/src/commands/appliance.d.ts +0 -8
- package/dist/src/commands/appliance.js +0 -404
- package/dist/src/commands/autopilot.d.ts +0 -15
- package/dist/src/commands/autopilot.js +0 -407
- package/dist/src/commands/benchmark.d.ts +0 -10
- package/dist/src/commands/benchmark.js +0 -460
- package/dist/src/commands/claims.d.ts +0 -10
- package/dist/src/commands/claims.js +0 -620
- package/dist/src/commands/cleanup.d.ts +0 -13
- package/dist/src/commands/cleanup.js +0 -250
- package/dist/src/commands/completions.d.ts +0 -10
- package/dist/src/commands/completions.js +0 -539
- package/dist/src/commands/config.d.ts +0 -8
- package/dist/src/commands/config.js +0 -428
- package/dist/src/commands/daemon.d.ts +0 -59
- package/dist/src/commands/daemon.js +0 -1733
- package/dist/src/commands/deployment.d.ts +0 -10
- package/dist/src/commands/deployment.js +0 -672
- package/dist/src/commands/doctor.d.ts +0 -10
- package/dist/src/commands/doctor.js +0 -1695
- package/dist/src/commands/eject.d.ts +0 -33
- package/dist/src/commands/eject.js +0 -195
- package/dist/src/commands/embeddings.d.ts +0 -18
- package/dist/src/commands/embeddings.js +0 -1623
- package/dist/src/commands/funnel.d.ts +0 -18
- package/dist/src/commands/funnel.js +0 -302
- package/dist/src/commands/gaia-bench.d.ts +0 -40
- package/dist/src/commands/gaia-bench.js +0 -597
- package/dist/src/commands/guidance.d.ts +0 -8
- package/dist/src/commands/guidance.js +0 -556
- package/dist/src/commands/hive-mind.d.ts +0 -11
- package/dist/src/commands/hive-mind.js +0 -1319
- package/dist/src/commands/hooks.d.ts +0 -8
- package/dist/src/commands/hooks.js +0 -4606
- package/dist/src/commands/index.d.ts +0 -118
- package/dist/src/commands/index.js +0 -364
- package/dist/src/commands/init.d.ts +0 -13
- package/dist/src/commands/init.js +0 -1297
- package/dist/src/commands/issues.d.ts +0 -21
- package/dist/src/commands/issues.js +0 -567
- package/dist/src/commands/mcp.d.ts +0 -11
- package/dist/src/commands/mcp.js +0 -732
- package/dist/src/commands/memory-backup.d.ts +0 -11
- package/dist/src/commands/memory-backup.js +0 -46
- package/dist/src/commands/memory-distill.d.ts +0 -27
- package/dist/src/commands/memory-distill.js +0 -374
- package/dist/src/commands/memory.d.ts +0 -8
- package/dist/src/commands/memory.js +0 -1596
- package/dist/src/commands/metaharness.d.ts +0 -39
- package/dist/src/commands/metaharness.js +0 -215
- package/dist/src/commands/migrate.d.ts +0 -8
- package/dist/src/commands/migrate.js +0 -742
- package/dist/src/commands/neural.d.ts +0 -10
- package/dist/src/commands/neural.js +0 -4331
- package/dist/src/commands/performance.d.ts +0 -10
- package/dist/src/commands/performance.js +0 -583
- package/dist/src/commands/plugins.d.ts +0 -11
- package/dist/src/commands/plugins.js +0 -826
- package/dist/src/commands/process.d.ts +0 -10
- package/dist/src/commands/process.js +0 -694
- package/dist/src/commands/progress.d.ts +0 -11
- package/dist/src/commands/progress.js +0 -259
- package/dist/src/commands/providers.d.ts +0 -10
- package/dist/src/commands/providers.js +0 -502
- package/dist/src/commands/proxy.d.ts +0 -21
- package/dist/src/commands/proxy.js +0 -310
- package/dist/src/commands/route.d.ts +0 -16
- package/dist/src/commands/route.js +0 -822
- package/dist/src/commands/ruvector/backup.d.ts +0 -11
- package/dist/src/commands/ruvector/backup.js +0 -747
- package/dist/src/commands/ruvector/benchmark.d.ts +0 -11
- package/dist/src/commands/ruvector/benchmark.js +0 -490
- package/dist/src/commands/ruvector/import.d.ts +0 -18
- package/dist/src/commands/ruvector/import.js +0 -373
- package/dist/src/commands/ruvector/index.d.ts +0 -29
- package/dist/src/commands/ruvector/index.js +0 -129
- package/dist/src/commands/ruvector/init.d.ts +0 -11
- package/dist/src/commands/ruvector/init.js +0 -467
- package/dist/src/commands/ruvector/migrate.d.ts +0 -11
- package/dist/src/commands/ruvector/migrate.js +0 -498
- package/dist/src/commands/ruvector/optimize.d.ts +0 -11
- package/dist/src/commands/ruvector/optimize.js +0 -505
- package/dist/src/commands/ruvector/pg-utils.d.ts +0 -14
- package/dist/src/commands/ruvector/pg-utils.js +0 -41
- package/dist/src/commands/ruvector/setup.d.ts +0 -18
- package/dist/src/commands/ruvector/setup.js +0 -765
- package/dist/src/commands/ruvector/status.d.ts +0 -11
- package/dist/src/commands/ruvector/status.js +0 -479
- package/dist/src/commands/security.d.ts +0 -10
- package/dist/src/commands/security.js +0 -1012
- package/dist/src/commands/session.d.ts +0 -8
- package/dist/src/commands/session.js +0 -757
- package/dist/src/commands/settings.d.ts +0 -19
- package/dist/src/commands/settings.js +0 -180
- package/dist/src/commands/spinner.d.ts +0 -16
- package/dist/src/commands/spinner.js +0 -329
- package/dist/src/commands/start.d.ts +0 -8
- package/dist/src/commands/start.js +0 -418
- package/dist/src/commands/status.d.ts +0 -8
- package/dist/src/commands/status.js +0 -608
- package/dist/src/commands/swarm.d.ts +0 -8
- package/dist/src/commands/swarm.js +0 -891
- package/dist/src/commands/task.d.ts +0 -8
- package/dist/src/commands/task.js +0 -675
- package/dist/src/commands/transfer-store.d.ts +0 -13
- package/dist/src/commands/transfer-store.js +0 -428
- package/dist/src/commands/update.d.ts +0 -8
- package/dist/src/commands/update.js +0 -276
- package/dist/src/commands/verify.d.ts +0 -19
- package/dist/src/commands/verify.js +0 -261
- package/dist/src/commands/version.d.ts +0 -42
- package/dist/src/commands/version.js +0 -106
- package/dist/src/commands/workflow.d.ts +0 -8
- package/dist/src/commands/workflow.js +0 -617
- package/dist/src/config/harness-feedback-applier.d.ts +0 -50
- package/dist/src/config/harness-feedback-applier.js +0 -122
- package/dist/src/config/proven-config-refresh.d.ts +0 -39
- package/dist/src/config/proven-config-refresh.js +0 -154
- package/dist/src/config/proven-config-rvfa.d.ts +0 -23
- package/dist/src/config/proven-config-rvfa.js +0 -73
- package/dist/src/config/proven-config.d.ts +0 -86
- package/dist/src/config/proven-config.js +0 -176
- package/dist/src/config-adapter.d.ts +0 -15
- package/dist/src/config-adapter.js +0 -186
- package/dist/src/encryption/vault.d.ts +0 -94
- package/dist/src/encryption/vault.js +0 -172
- package/dist/src/fs-secure.d.ts +0 -86
- package/dist/src/fs-secure.js +0 -133
- package/dist/src/funnel/advisor-tip.d.ts +0 -58
- package/dist/src/funnel/advisor-tip.js +0 -92
- package/dist/src/funnel/attribution.d.ts +0 -37
- package/dist/src/funnel/attribution.js +0 -101
- package/dist/src/funnel/consent.d.ts +0 -22
- package/dist/src/funnel/consent.js +0 -58
- package/dist/src/funnel/credit-errors.d.ts +0 -31
- package/dist/src/funnel/credit-errors.js +0 -88
- package/dist/src/funnel/credit-notifier.d.ts +0 -44
- package/dist/src/funnel/credit-notifier.js +0 -74
- package/dist/src/funnel/disclosure.d.ts +0 -47
- package/dist/src/funnel/disclosure.js +0 -109
- package/dist/src/funnel/enrollment.d.ts +0 -36
- package/dist/src/funnel/enrollment.js +0 -64
- package/dist/src/funnel/environment.d.ts +0 -17
- package/dist/src/funnel/environment.js +0 -39
- package/dist/src/funnel/event-transport.d.ts +0 -51
- package/dist/src/funnel/event-transport.js +0 -199
- package/dist/src/funnel/events.d.ts +0 -42
- package/dist/src/funnel/events.js +0 -150
- package/dist/src/funnel/index.d.ts +0 -21
- package/dist/src/funnel/index.js +0 -21
- package/dist/src/funnel/insights.d.ts +0 -50
- package/dist/src/funnel/insights.js +0 -120
- package/dist/src/funnel/local-signals.d.ts +0 -20
- package/dist/src/funnel/local-signals.js +0 -77
- package/dist/src/funnel/message-transport.d.ts +0 -51
- package/dist/src/funnel/message-transport.js +0 -149
- package/dist/src/funnel/messages.d.ts +0 -55
- package/dist/src/funnel/messages.js +0 -160
- package/dist/src/funnel/payout.d.ts +0 -40
- package/dist/src/funnel/payout.js +0 -60
- package/dist/src/funnel/power-saver-notifier.d.ts +0 -44
- package/dist/src/funnel/power-saver-notifier.js +0 -92
- package/dist/src/funnel/precedence.d.ts +0 -16
- package/dist/src/funnel/precedence.js +0 -85
- package/dist/src/funnel/promo.d.ts +0 -41
- package/dist/src/funnel/promo.js +0 -144
- package/dist/src/funnel/rate-limit-notifier.d.ts +0 -55
- package/dist/src/funnel/rate-limit-notifier.js +0 -102
- package/dist/src/funnel/rotation.d.ts +0 -19
- package/dist/src/funnel/rotation.js +0 -70
- package/dist/src/funnel/state.d.ts +0 -13
- package/dist/src/funnel/state.js +0 -52
- package/dist/src/funnel/toggle-cooldown.d.ts +0 -17
- package/dist/src/funnel/toggle-cooldown.js +0 -32
- package/dist/src/funnel/types.d.ts +0 -98
- package/dist/src/funnel/types.js +0 -26
- package/dist/src/index.d.ts +0 -81
- package/dist/src/index.js +0 -609
- package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
- package/dist/src/infrastructure/in-memory-repositories.js +0 -264
- package/dist/src/init/claudemd-generator.d.ts +0 -16
- package/dist/src/init/claudemd-generator.js +0 -368
- package/dist/src/init/executor.d.ts +0 -41
- package/dist/src/init/executor.js +0 -2142
- package/dist/src/init/helper-refresh.d.ts +0 -79
- package/dist/src/init/helper-refresh.js +0 -347
- package/dist/src/init/helper-signing.d.ts +0 -37
- package/dist/src/init/helper-signing.js +0 -67
- package/dist/src/init/helpers-generator.d.ts +0 -87
- package/dist/src/init/helpers-generator.js +0 -1456
- package/dist/src/init/index.d.ts +0 -13
- package/dist/src/init/index.js +0 -15
- package/dist/src/init/mcp-generator.d.ts +0 -26
- package/dist/src/init/mcp-generator.js +0 -126
- package/dist/src/init/memory-package-resolver.d.ts +0 -53
- package/dist/src/init/memory-package-resolver.js +0 -118
- package/dist/src/init/settings-generator.d.ts +0 -14
- package/dist/src/init/settings-generator.js +0 -462
- package/dist/src/init/statusline-generator.d.ts +0 -28
- package/dist/src/init/statusline-generator.js +0 -177
- package/dist/src/init/types.d.ts +0 -331
- package/dist/src/init/types.js +0 -276
- package/dist/src/log-filters.d.ts +0 -46
- package/dist/src/log-filters.js +0 -107
- package/dist/src/mcp-client.d.ts +0 -92
- package/dist/src/mcp-client.js +0 -397
- package/dist/src/mcp-server.d.ts +0 -163
- package/dist/src/mcp-server.js +0 -751
- package/dist/src/mcp-tools/agent-execute-core.d.ts +0 -115
- package/dist/src/mcp-tools/agent-execute-core.js +0 -587
- package/dist/src/mcp-tools/agent-tools.d.ts +0 -9
- package/dist/src/mcp-tools/agent-tools.js +0 -837
- package/dist/src/mcp-tools/agentbbs-tools.d.ts +0 -28
- package/dist/src/mcp-tools/agentbbs-tools.js +0 -394
- package/dist/src/mcp-tools/agentdb-tools.d.ts +0 -35
- package/dist/src/mcp-tools/agentdb-tools.js +0 -1473
- package/dist/src/mcp-tools/agenticow-loader.d.ts +0 -59
- package/dist/src/mcp-tools/agenticow-loader.js +0 -105
- package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +0 -24
- package/dist/src/mcp-tools/agenticow-speculate-tools.js +0 -209
- package/dist/src/mcp-tools/agenticow-tools.d.ts +0 -36
- package/dist/src/mcp-tools/agenticow-tools.js +0 -360
- package/dist/src/mcp-tools/analyze-tools.d.ts +0 -38
- package/dist/src/mcp-tools/analyze-tools.js +0 -346
- package/dist/src/mcp-tools/auto-install.d.ts +0 -83
- package/dist/src/mcp-tools/auto-install.js +0 -131
- package/dist/src/mcp-tools/autopilot-tools.d.ts +0 -12
- package/dist/src/mcp-tools/autopilot-tools.js +0 -231
- package/dist/src/mcp-tools/browser-intent-tools.d.ts +0 -162
- package/dist/src/mcp-tools/browser-intent-tools.js +0 -548
- package/dist/src/mcp-tools/browser-session-tools.d.ts +0 -27
- package/dist/src/mcp-tools/browser-session-tools.js +0 -398
- package/dist/src/mcp-tools/browser-tools.d.ts +0 -21
- package/dist/src/mcp-tools/browser-tools.js +0 -760
- package/dist/src/mcp-tools/business-pod-tools.d.ts +0 -20
- package/dist/src/mcp-tools/business-pod-tools.js +0 -169
- package/dist/src/mcp-tools/claims-tools.d.ts +0 -12
- package/dist/src/mcp-tools/claims-tools.js +0 -863
- package/dist/src/mcp-tools/config-tools.d.ts +0 -8
- package/dist/src/mcp-tools/config-tools.js +0 -411
- package/dist/src/mcp-tools/coordination-tools.d.ts +0 -13
- package/dist/src/mcp-tools/coordination-tools.js +0 -729
- package/dist/src/mcp-tools/daa-tools.d.ts +0 -13
- package/dist/src/mcp-tools/daa-tools.js +0 -534
- package/dist/src/mcp-tools/embeddings-tools.d.ts +0 -9
- package/dist/src/mcp-tools/embeddings-tools.js +0 -904
- package/dist/src/mcp-tools/github-tools.d.ts +0 -9
- package/dist/src/mcp-tools/github-tools.js +0 -659
- package/dist/src/mcp-tools/guidance-tools.d.ts +0 -15
- package/dist/src/mcp-tools/guidance-tools.js +0 -639
- package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -8
- package/dist/src/mcp-tools/hive-mind-tools.js +0 -953
- package/dist/src/mcp-tools/hooks-tools.d.ts +0 -65
- package/dist/src/mcp-tools/hooks-tools.js +0 -4836
- package/dist/src/mcp-tools/http-fetch-tools.d.ts +0 -55
- package/dist/src/mcp-tools/http-fetch-tools.js +0 -329
- package/dist/src/mcp-tools/index.d.ts +0 -34
- package/dist/src/mcp-tools/index.js +0 -40
- package/dist/src/mcp-tools/managed-agent-tools.d.ts +0 -22
- package/dist/src/mcp-tools/managed-agent-tools.js +0 -357
- package/dist/src/mcp-tools/memory-tools.d.ts +0 -14
- package/dist/src/mcp-tools/memory-tools.js +0 -1330
- package/dist/src/mcp-tools/metaharness-tools.d.ts +0 -51
- package/dist/src/mcp-tools/metaharness-tools.js +0 -684
- package/dist/src/mcp-tools/neural-tools.d.ts +0 -54
- package/dist/src/mcp-tools/neural-tools.js +0 -1168
- package/dist/src/mcp-tools/performance-tools.d.ts +0 -16
- package/dist/src/mcp-tools/performance-tools.js +0 -675
- package/dist/src/mcp-tools/progress-tools.d.ts +0 -14
- package/dist/src/mcp-tools/progress-tools.js +0 -348
- package/dist/src/mcp-tools/request-tracker.d.ts +0 -17
- package/dist/src/mcp-tools/request-tracker.js +0 -27
- package/dist/src/mcp-tools/ruvllm-tools.d.ts +0 -9
- package/dist/src/mcp-tools/ruvllm-tools.js +0 -355
- package/dist/src/mcp-tools/security-tools.d.ts +0 -18
- package/dist/src/mcp-tools/security-tools.js +0 -556
- package/dist/src/mcp-tools/session-tools.d.ts +0 -8
- package/dist/src/mcp-tools/session-tools.js +0 -517
- package/dist/src/mcp-tools/swarm-tools.d.ts +0 -37
- package/dist/src/mcp-tools/swarm-tools.js +0 -390
- package/dist/src/mcp-tools/system-tools.d.ts +0 -13
- package/dist/src/mcp-tools/system-tools.js +0 -688
- package/dist/src/mcp-tools/task-tools.d.ts +0 -8
- package/dist/src/mcp-tools/task-tools.js +0 -487
- package/dist/src/mcp-tools/terminal-tools.d.ts +0 -8
- package/dist/src/mcp-tools/terminal-tools.js +0 -306
- package/dist/src/mcp-tools/testgen-tools.d.ts +0 -26
- package/dist/src/mcp-tools/testgen-tools.js +0 -168
- package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +0 -31
- package/dist/src/mcp-tools/tool-loop-guardrail.js +0 -71
- package/dist/src/mcp-tools/transfer-tools.d.ts +0 -14
- package/dist/src/mcp-tools/transfer-tools.js +0 -447
- package/dist/src/mcp-tools/types.d.ts +0 -8
- package/dist/src/mcp-tools/types.js +0 -8
- package/dist/src/mcp-tools/validate-input.d.ts +0 -9
- package/dist/src/mcp-tools/validate-input.js +0 -9
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -13
- package/dist/src/mcp-tools/wasm-agent-tools.js +0 -840
- package/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
- package/dist/src/mcp-tools/workflow-tools.js +0 -884
- package/dist/src/memory/bge-embedder.d.ts +0 -25
- package/dist/src/memory/bge-embedder.js +0 -121
- package/dist/src/memory/cross-encoder-rerank.d.ts +0 -33
- package/dist/src/memory/cross-encoder-rerank.js +0 -123
- package/dist/src/memory/embedding-policy.d.ts +0 -21
- package/dist/src/memory/embedding-policy.js +0 -30
- package/dist/src/memory/embedding-quantization.d.ts +0 -62
- package/dist/src/memory/embedding-quantization.js +0 -156
- package/dist/src/memory/ewc-consolidation.d.ts +0 -305
- package/dist/src/memory/ewc-consolidation.js +0 -611
- package/dist/src/memory/graph-edge-writer.d.ts +0 -95
- package/dist/src/memory/graph-edge-writer.js +0 -217
- package/dist/src/memory/hybrid-retrieval.d.ts +0 -77
- package/dist/src/memory/hybrid-retrieval.js +0 -192
- package/dist/src/memory/intelligence.d.ts +0 -405
- package/dist/src/memory/intelligence.js +0 -1316
- package/dist/src/memory/lucene-bm25.d.ts +0 -19
- package/dist/src/memory/lucene-bm25.js +0 -308
- package/dist/src/memory/memory-bridge.d.ts +0 -537
- package/dist/src/memory/memory-bridge.js +0 -2460
- package/dist/src/memory/memory-initializer.d.ts +0 -556
- package/dist/src/memory/memory-initializer.js +0 -3021
- package/dist/src/memory/neural-package-bridge.d.ts +0 -48
- package/dist/src/memory/neural-package-bridge.js +0 -87
- package/dist/src/memory/rabitq-index.d.ts +0 -60
- package/dist/src/memory/rabitq-index.js +0 -242
- package/dist/src/memory/sona-optimizer.d.ts +0 -267
- package/dist/src/memory/sona-optimizer.js +0 -779
- package/dist/src/memory/structured-distill.d.ts +0 -48
- package/dist/src/memory/structured-distill.js +0 -125
- package/dist/src/output.d.ts +0 -9
- package/dist/src/output.js +0 -9
- package/dist/src/parser.d.ts +0 -89
- package/dist/src/parser.js +0 -516
- package/dist/src/plugins/manager.d.ts +0 -133
- package/dist/src/plugins/manager.js +0 -415
- package/dist/src/plugins/store/discovery.d.ts +0 -99
- package/dist/src/plugins/store/discovery.js +0 -1224
- package/dist/src/plugins/store/index.d.ts +0 -76
- package/dist/src/plugins/store/index.js +0 -141
- package/dist/src/plugins/store/search.d.ts +0 -46
- package/dist/src/plugins/store/search.js +0 -230
- package/dist/src/plugins/store/types.d.ts +0 -279
- package/dist/src/plugins/store/types.js +0 -7
- package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
- package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
- package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
- package/dist/src/plugins/tests/standalone-test.js +0 -188
- package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
- package/dist/src/plugins/tests/test-plugin-store.js +0 -206
- package/dist/src/production/circuit-breaker.d.ts +0 -101
- package/dist/src/production/circuit-breaker.js +0 -241
- package/dist/src/production/error-handler.d.ts +0 -92
- package/dist/src/production/error-handler.js +0 -299
- package/dist/src/production/index.d.ts +0 -23
- package/dist/src/production/index.js +0 -18
- package/dist/src/production/monitoring.d.ts +0 -161
- package/dist/src/production/monitoring.js +0 -356
- package/dist/src/production/rate-limiter.d.ts +0 -80
- package/dist/src/production/rate-limiter.js +0 -201
- package/dist/src/production/retry.d.ts +0 -48
- package/dist/src/production/retry.js +0 -179
- package/dist/src/prompt.d.ts +0 -44
- package/dist/src/prompt.js +0 -501
- package/dist/src/runtime/headless.d.ts +0 -60
- package/dist/src/runtime/headless.js +0 -284
- package/dist/src/runtime/parent-death-watchdog.d.ts +0 -42
- package/dist/src/runtime/parent-death-watchdog.js +0 -70
- package/dist/src/ruvector/agent-wasm.d.ts +0 -228
- package/dist/src/ruvector/agent-wasm.js +0 -463
- package/dist/src/ruvector/ast-analyzer.d.ts +0 -67
- package/dist/src/ruvector/ast-analyzer.js +0 -277
- package/dist/src/ruvector/codemods/engine.d.ts +0 -45
- package/dist/src/ruvector/codemods/engine.js +0 -291
- package/dist/src/ruvector/codemods/scope-analysis.d.ts +0 -29
- package/dist/src/ruvector/codemods/scope-analysis.js +0 -162
- package/dist/src/ruvector/coverage-router.d.ts +0 -160
- package/dist/src/ruvector/coverage-router.js +0 -531
- package/dist/src/ruvector/coverage-tools.d.ts +0 -33
- package/dist/src/ruvector/coverage-tools.js +0 -157
- package/dist/src/ruvector/diff-classifier.d.ts +0 -175
- package/dist/src/ruvector/diff-classifier.js +0 -699
- package/dist/src/ruvector/diskann-backend.d.ts +0 -78
- package/dist/src/ruvector/diskann-backend.js +0 -310
- package/dist/src/ruvector/enhanced-model-router.d.ts +0 -172
- package/dist/src/ruvector/enhanced-model-router.js +0 -577
- package/dist/src/ruvector/graph-analyzer.d.ts +0 -187
- package/dist/src/ruvector/graph-analyzer.js +0 -929
- package/dist/src/ruvector/graph-backend.d.ts +0 -79
- package/dist/src/ruvector/graph-backend.js +0 -220
- package/dist/src/ruvector/index.d.ts +0 -38
- package/dist/src/ruvector/index.js +0 -86
- package/dist/src/ruvector/lora-adapter.d.ts +0 -292
- package/dist/src/ruvector/lora-adapter.js +0 -710
- package/dist/src/ruvector/model-prices.d.ts +0 -50
- package/dist/src/ruvector/model-prices.js +0 -72
- package/dist/src/ruvector/model-router.d.ts +0 -408
- package/dist/src/ruvector/model-router.js +0 -1162
- package/dist/src/ruvector/neural-router.d.ts +0 -182
- package/dist/src/ruvector/neural-router.js +0 -825
- package/dist/src/ruvector/output-verifier.d.ts +0 -83
- package/dist/src/ruvector/output-verifier.js +0 -277
- package/dist/src/ruvector/q-learning-router.d.ts +0 -227
- package/dist/src/ruvector/q-learning-router.js +0 -721
- package/dist/src/ruvector/router-calibrator.d.ts +0 -65
- package/dist/src/ruvector/router-calibrator.js +0 -120
- package/dist/src/ruvector/router-parallel-recorder.d.ts +0 -127
- package/dist/src/ruvector/router-parallel-recorder.js +0 -183
- package/dist/src/ruvector/router-trajectory.d.ts +0 -194
- package/dist/src/ruvector/router-trajectory.js +0 -281
- package/dist/src/ruvector/run-transcript-recorder.d.ts +0 -154
- package/dist/src/ruvector/run-transcript-recorder.js +0 -209
- package/dist/src/ruvector/ruvllm-wasm.d.ts +0 -179
- package/dist/src/ruvector/ruvllm-wasm.js +0 -379
- package/dist/src/ruvector/semantic-router.d.ts +0 -77
- package/dist/src/ruvector/semantic-router.js +0 -178
- package/dist/src/ruvector/task-embedder.d.ts +0 -56
- package/dist/src/ruvector/task-embedder.js +0 -237
- package/dist/src/ruvector/trajectory-tree.d.ts +0 -113
- package/dist/src/ruvector/trajectory-tree.js +0 -237
- package/dist/src/ruvector/vector-db.d.ts +0 -73
- package/dist/src/ruvector/vector-db.js +0 -301
- package/dist/src/ruvector/wasm-embedder.d.ts +0 -13
- package/dist/src/ruvector/wasm-embedder.js +0 -143
- package/dist/src/security/builtin-aidefence.d.ts +0 -34
- package/dist/src/security/builtin-aidefence.js +0 -86
- package/dist/src/services/agentic-flow-bridge.d.ts +0 -50
- package/dist/src/services/agentic-flow-bridge.js +0 -95
- package/dist/src/services/ai-job-dedup.d.ts +0 -61
- package/dist/src/services/ai-job-dedup.js +0 -136
- package/dist/src/services/checkpoint-gate.d.ts +0 -140
- package/dist/src/services/checkpoint-gate.js +0 -223
- package/dist/src/services/claim-service.d.ts +0 -204
- package/dist/src/services/claim-service.js +0 -818
- package/dist/src/services/config-file-manager.d.ts +0 -37
- package/dist/src/services/config-file-manager.js +0 -224
- package/dist/src/services/container-worker-pool.d.ts +0 -204
- package/dist/src/services/container-worker-pool.js +0 -589
- package/dist/src/services/daemon-autostart.d.ts +0 -17
- package/dist/src/services/daemon-autostart.js +0 -102
- package/dist/src/services/distill-oracle.d.ts +0 -190
- package/dist/src/services/distill-oracle.js +0 -349
- package/dist/src/services/distill-tuning.d.ts +0 -111
- package/dist/src/services/distill-tuning.js +0 -510
- package/dist/src/services/evolve-proof.d.ts +0 -253
- package/dist/src/services/evolve-proof.js +0 -343
- package/dist/src/services/fable-harness.d.ts +0 -208
- package/dist/src/services/fable-harness.js +0 -388
- package/dist/src/services/git-workspace-identity.d.ts +0 -42
- package/dist/src/services/git-workspace-identity.js +0 -99
- package/dist/src/services/global-ai-budget.d.ts +0 -135
- package/dist/src/services/global-ai-budget.js +0 -415
- package/dist/src/services/harness-benchmark.d.ts +0 -68
- package/dist/src/services/harness-benchmark.js +0 -94
- package/dist/src/services/harness-canary.d.ts +0 -60
- package/dist/src/services/harness-canary.js +0 -69
- package/dist/src/services/harness-corpus-harvester.d.ts +0 -51
- package/dist/src/services/harness-corpus-harvester.js +0 -74
- package/dist/src/services/harness-flywheel-generations.d.ts +0 -115
- package/dist/src/services/harness-flywheel-generations.js +0 -360
- package/dist/src/services/harness-flywheel-runtime.d.ts +0 -25
- package/dist/src/services/harness-flywheel-runtime.js +0 -92
- package/dist/src/services/harness-flywheel.d.ts +0 -48
- package/dist/src/services/harness-flywheel.js +0 -207
- package/dist/src/services/harness-frozen-eval.d.ts +0 -22
- package/dist/src/services/harness-frozen-eval.js +0 -66
- package/dist/src/services/harness-hosts.d.ts +0 -40
- package/dist/src/services/harness-hosts.js +0 -88
- package/dist/src/services/harness-improvement-ledger.d.ts +0 -63
- package/dist/src/services/harness-improvement-ledger.js +0 -101
- package/dist/src/services/harness-loop.d.ts +0 -53
- package/dist/src/services/harness-loop.js +0 -85
- package/dist/src/services/harness-qualification.d.ts +0 -66
- package/dist/src/services/harness-qualification.js +0 -143
- package/dist/src/services/harness-replay.d.ts +0 -37
- package/dist/src/services/harness-replay.js +0 -92
- package/dist/src/services/harness-verify.d.ts +0 -33
- package/dist/src/services/harness-verify.js +0 -26
- package/dist/src/services/harness-worker.d.ts +0 -23
- package/dist/src/services/harness-worker.js +0 -66
- package/dist/src/services/headless-worker-executor.d.ts +0 -358
- package/dist/src/services/headless-worker-executor.js +0 -1269
- package/dist/src/services/index.d.ts +0 -13
- package/dist/src/services/index.js +0 -11
- package/dist/src/services/memory-backup.d.ts +0 -53
- package/dist/src/services/memory-backup.js +0 -198
- package/dist/src/services/memory-distillation.d.ts +0 -41
- package/dist/src/services/memory-distillation.js +0 -277
- package/dist/src/services/native-training.d.ts +0 -68
- package/dist/src/services/native-training.js +0 -141
- package/dist/src/services/registry-api.d.ts +0 -58
- package/dist/src/services/registry-api.js +0 -146
- package/dist/src/services/repo-supervisor.d.ts +0 -70
- package/dist/src/services/repo-supervisor.js +0 -228
- package/dist/src/services/ruvector-training.d.ts +0 -222
- package/dist/src/services/ruvector-training.js +0 -693
- package/dist/src/services/swarm-memory-branches.d.ts +0 -135
- package/dist/src/services/swarm-memory-branches.js +0 -213
- package/dist/src/services/weight-eft.d.ts +0 -305
- package/dist/src/services/weight-eft.js +0 -296
- package/dist/src/services/worker-daemon.d.ts +0 -439
- package/dist/src/services/worker-daemon.js +0 -1865
- package/dist/src/services/worker-queue.d.ts +0 -194
- package/dist/src/services/worker-queue.js +0 -513
- package/dist/src/services/workspace-lease.d.ts +0 -55
- package/dist/src/services/workspace-lease.js +0 -191
- package/dist/src/suggest.d.ts +0 -53
- package/dist/src/suggest.js +0 -200
- package/dist/src/transfer/anonymization/index.d.ts +0 -25
- package/dist/src/transfer/anonymization/index.js +0 -175
- package/dist/src/transfer/deploy-seraphine.d.ts +0 -13
- package/dist/src/transfer/deploy-seraphine.js +0 -205
- package/dist/src/transfer/export.d.ts +0 -25
- package/dist/src/transfer/export.js +0 -113
- package/dist/src/transfer/index.d.ts +0 -12
- package/dist/src/transfer/index.js +0 -31
- package/dist/src/transfer/ipfs/client.d.ts +0 -109
- package/dist/src/transfer/ipfs/client.js +0 -307
- package/dist/src/transfer/ipfs/upload.d.ts +0 -95
- package/dist/src/transfer/ipfs/upload.js +0 -413
- package/dist/src/transfer/models/seraphine.d.ts +0 -72
- package/dist/src/transfer/models/seraphine.js +0 -373
- package/dist/src/transfer/serialization/cfp.d.ts +0 -49
- package/dist/src/transfer/serialization/cfp.js +0 -183
- package/dist/src/transfer/storage/gcs.d.ts +0 -82
- package/dist/src/transfer/storage/gcs.js +0 -272
- package/dist/src/transfer/storage/index.d.ts +0 -6
- package/dist/src/transfer/storage/index.js +0 -6
- package/dist/src/transfer/store/discovery.d.ts +0 -84
- package/dist/src/transfer/store/discovery.js +0 -382
- package/dist/src/transfer/store/download.d.ts +0 -70
- package/dist/src/transfer/store/download.js +0 -334
- package/dist/src/transfer/store/index.d.ts +0 -84
- package/dist/src/transfer/store/index.js +0 -153
- package/dist/src/transfer/store/publish.d.ts +0 -76
- package/dist/src/transfer/store/publish.js +0 -294
- package/dist/src/transfer/store/registry.d.ts +0 -58
- package/dist/src/transfer/store/registry.js +0 -285
- package/dist/src/transfer/store/search.d.ts +0 -54
- package/dist/src/transfer/store/search.js +0 -232
- package/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
- package/dist/src/transfer/store/tests/standalone-test.js +0 -190
- package/dist/src/transfer/store/types.d.ts +0 -193
- package/dist/src/transfer/store/types.js +0 -6
- package/dist/src/transfer/test-seraphine.d.ts +0 -6
- package/dist/src/transfer/test-seraphine.js +0 -105
- package/dist/src/transfer/tests/test-store.d.ts +0 -7
- package/dist/src/transfer/tests/test-store.js +0 -214
- package/dist/src/transfer/types.d.ts +0 -245
- package/dist/src/transfer/types.js +0 -6
- package/dist/src/types.d.ts +0 -13
- package/dist/src/types.js +0 -13
- package/dist/src/update/checker.d.ts +0 -34
- package/dist/src/update/checker.js +0 -191
- package/dist/src/update/executor.d.ts +0 -33
- package/dist/src/update/executor.js +0 -217
- package/dist/src/update/index.d.ts +0 -33
- package/dist/src/update/index.js +0 -64
- package/dist/src/update/rate-limiter.d.ts +0 -20
- package/dist/src/update/rate-limiter.js +0 -96
- package/dist/src/update/validator.d.ts +0 -17
- package/dist/src/update/validator.js +0 -123
|
@@ -1,688 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* System MCP Tools for CLI
|
|
3
|
-
*
|
|
4
|
-
* V2 Compatibility - System monitoring tools: status, metrics, health
|
|
5
|
-
*
|
|
6
|
-
* ✅ Uses REAL system metrics via Node.js APIs:
|
|
7
|
-
* - process.memoryUsage() for real memory stats
|
|
8
|
-
* - process.cpuUsage() for real CPU stats
|
|
9
|
-
* - os module for system information
|
|
10
|
-
*/
|
|
11
|
-
import { getProjectCwd } from './types.js';
|
|
12
|
-
import { validateIdentifier } from './validate-input.js';
|
|
13
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync, statfsSync } from 'node:fs';
|
|
14
|
-
import { join, dirname } from 'node:path';
|
|
15
|
-
import { fileURLToPath } from 'node:url';
|
|
16
|
-
import * as os from 'node:os';
|
|
17
|
-
import * as dns from 'node:dns';
|
|
18
|
-
// Read version dynamically from package.json
|
|
19
|
-
function getPackageVersion() {
|
|
20
|
-
try {
|
|
21
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
22
|
-
const __dirname = dirname(__filename);
|
|
23
|
-
for (const depth of ['../..', '../../..']) {
|
|
24
|
-
const pkgPath = join(__dirname, depth, 'package.json');
|
|
25
|
-
if (existsSync(pkgPath)) {
|
|
26
|
-
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
27
|
-
if (pkg.name?.includes('claude-flow') || pkg.name === 'ruflo') {
|
|
28
|
-
return pkg.version || '3.0.0';
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return '3.0.0';
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
return '3.0.0';
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
const PKG_VERSION = getPackageVersion();
|
|
39
|
-
// Storage paths
|
|
40
|
-
const STORAGE_DIR = '.claude-flow';
|
|
41
|
-
const SYSTEM_DIR = 'system';
|
|
42
|
-
const METRICS_FILE = 'metrics.json';
|
|
43
|
-
function getSystemDir() {
|
|
44
|
-
return join(getProjectCwd(), STORAGE_DIR, SYSTEM_DIR);
|
|
45
|
-
}
|
|
46
|
-
function getMetricsPath() {
|
|
47
|
-
return join(getSystemDir(), METRICS_FILE);
|
|
48
|
-
}
|
|
49
|
-
function ensureSystemDir() {
|
|
50
|
-
const dir = getSystemDir();
|
|
51
|
-
if (!existsSync(dir)) {
|
|
52
|
-
mkdirSync(dir, { recursive: true });
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
function loadMetrics() {
|
|
56
|
-
try {
|
|
57
|
-
const path = getMetricsPath();
|
|
58
|
-
if (existsSync(path)) {
|
|
59
|
-
return JSON.parse(readFileSync(path, 'utf-8'));
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
catch {
|
|
63
|
-
// Return default metrics
|
|
64
|
-
}
|
|
65
|
-
return {
|
|
66
|
-
startTime: new Date().toISOString(),
|
|
67
|
-
lastCheck: new Date().toISOString(),
|
|
68
|
-
uptime: 0,
|
|
69
|
-
health: 1.0,
|
|
70
|
-
cpu: os.loadavg()[0] * 100 / os.cpus().length,
|
|
71
|
-
memory: { used: Math.round((os.totalmem() - os.freemem()) / 1024 / 1024), total: Math.round(os.totalmem() / 1024 / 1024) },
|
|
72
|
-
agents: { active: 0, total: 0 },
|
|
73
|
-
tasks: { pending: 0, completed: 0, failed: 0 },
|
|
74
|
-
requests: { total: 0, success: 0, errors: 0 },
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
function saveMetrics(metrics) {
|
|
78
|
-
ensureSystemDir();
|
|
79
|
-
metrics.lastCheck = new Date().toISOString();
|
|
80
|
-
writeFileSync(getMetricsPath(), JSON.stringify(metrics, null, 2), 'utf-8');
|
|
81
|
-
}
|
|
82
|
-
export const systemTools = [
|
|
83
|
-
{
|
|
84
|
-
name: 'system_status',
|
|
85
|
-
description: 'Get overall system status Use when native Bash is wrong because you need Ruflo runtime metrics (HNSW index size, ReasoningBank state, swarm health, breaker status) — those are not in /proc, only in the running daemon. For OS-level info (uptime, disk, mem), native Bash + standard tools are fine.',
|
|
86
|
-
category: 'system',
|
|
87
|
-
inputSchema: {
|
|
88
|
-
type: 'object',
|
|
89
|
-
properties: {
|
|
90
|
-
verbose: { type: 'boolean', description: 'Include detailed information' },
|
|
91
|
-
components: { type: 'array', items: { type: 'string' }, description: 'Specific components to check' },
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
handler: async (input) => {
|
|
95
|
-
const metrics = loadMetrics();
|
|
96
|
-
// #2235(B) — live process uptime, not the persisted metrics.startTime
|
|
97
|
-
// (which is the file's creation timestamp and survived across restarts,
|
|
98
|
-
// making system_status report stale ~8.8-day uptime on a fresh server).
|
|
99
|
-
const uptime = Math.floor(process.uptime() * 1000);
|
|
100
|
-
const status = {
|
|
101
|
-
status: metrics.health >= 0.8 ? 'healthy' : metrics.health >= 0.5 ? 'degraded' : 'unhealthy',
|
|
102
|
-
uptime,
|
|
103
|
-
uptimeFormatted: `${Math.floor(uptime / 3600000)}h ${Math.floor((uptime % 3600000) / 60000)}m`,
|
|
104
|
-
version: PKG_VERSION,
|
|
105
|
-
components: {
|
|
106
|
-
swarm: { status: 'running', health: metrics.health },
|
|
107
|
-
memory: { status: 'unknown', _note: 'Health not measured — use system_health for real checks' },
|
|
108
|
-
neural: { status: 'unknown', _note: 'Health not measured — use system_health for real checks' },
|
|
109
|
-
mcp: { status: 'unknown', _note: 'Health not measured — use system_health for real checks' },
|
|
110
|
-
},
|
|
111
|
-
lastCheck: new Date().toISOString(),
|
|
112
|
-
};
|
|
113
|
-
if (input.verbose) {
|
|
114
|
-
return {
|
|
115
|
-
...status,
|
|
116
|
-
metrics: {
|
|
117
|
-
cpu: metrics.cpu,
|
|
118
|
-
memory: metrics.memory,
|
|
119
|
-
agents: metrics.agents,
|
|
120
|
-
tasks: metrics.tasks,
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
return status;
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
name: 'system_metrics',
|
|
129
|
-
description: 'Get system metrics and performance data Use when native Bash is wrong because you need Ruflo runtime metrics (HNSW index size, ReasoningBank state, swarm health, breaker status) — those are not in /proc, only in the running daemon. For OS-level info (uptime, disk, mem), native Bash + standard tools are fine.',
|
|
130
|
-
category: 'system',
|
|
131
|
-
inputSchema: {
|
|
132
|
-
type: 'object',
|
|
133
|
-
properties: {
|
|
134
|
-
category: { type: 'string', enum: ['all', 'cpu', 'memory', 'agents', 'tasks', 'requests'], description: 'Metrics category' },
|
|
135
|
-
timeRange: { type: 'string', description: 'Time range (e.g., 1h, 24h, 7d)' },
|
|
136
|
-
format: { type: 'string', enum: ['json', 'table', 'summary'], description: 'Output format' },
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
handler: async (input) => {
|
|
140
|
-
const store = loadMetrics();
|
|
141
|
-
const category = input.category || 'all';
|
|
142
|
-
// Get REAL system metrics via Node.js APIs
|
|
143
|
-
const memUsage = process.memoryUsage();
|
|
144
|
-
const loadAvg = os.loadavg();
|
|
145
|
-
const cpus = os.cpus();
|
|
146
|
-
const totalMem = os.totalmem();
|
|
147
|
-
const freeMem = os.freemem();
|
|
148
|
-
// Read real agent/task counts — try AgentDB first, fallback to JSON stores
|
|
149
|
-
let agentCounts = { active: 0, total: 0 };
|
|
150
|
-
let taskCounts = { pending: 0, completed: 0, failed: 0 };
|
|
151
|
-
let _metricsSource = 'none';
|
|
152
|
-
// Primary: AgentDB (sql.js + HNSW)
|
|
153
|
-
try {
|
|
154
|
-
const bridge = await import('../memory/memory-bridge.js');
|
|
155
|
-
const agentResults = await bridge.bridgeListEntries({ namespace: 'agents', limit: 10000 });
|
|
156
|
-
const agentEntries = agentResults?.entries;
|
|
157
|
-
if (agentEntries && agentEntries.length > 0) {
|
|
158
|
-
let active = 0;
|
|
159
|
-
for (const a of agentEntries) {
|
|
160
|
-
try {
|
|
161
|
-
const meta = a.metadata ? JSON.parse(a.metadata) : (a.value ? JSON.parse(a.value) : {});
|
|
162
|
-
if (meta.status === 'active' || meta.status === 'running')
|
|
163
|
-
active++;
|
|
164
|
-
}
|
|
165
|
-
catch { /* skip unparseable */ }
|
|
166
|
-
}
|
|
167
|
-
agentCounts = { total: agentEntries.length, active };
|
|
168
|
-
_metricsSource = 'agentdb';
|
|
169
|
-
}
|
|
170
|
-
const taskResults = await bridge.bridgeListEntries({ namespace: 'tasks', limit: 10000 });
|
|
171
|
-
const taskEntries = taskResults?.entries;
|
|
172
|
-
if (taskEntries && taskEntries.length > 0) {
|
|
173
|
-
let pending = 0, completed = 0, failed = 0;
|
|
174
|
-
for (const t of taskEntries) {
|
|
175
|
-
try {
|
|
176
|
-
const meta = t.metadata ? JSON.parse(t.metadata) : (t.value ? JSON.parse(t.value) : {});
|
|
177
|
-
if (meta.status === 'pending' || meta.status === 'assigned')
|
|
178
|
-
pending++;
|
|
179
|
-
else if (meta.status === 'completed')
|
|
180
|
-
completed++;
|
|
181
|
-
else if (meta.status === 'failed')
|
|
182
|
-
failed++;
|
|
183
|
-
}
|
|
184
|
-
catch { /* skip */ }
|
|
185
|
-
}
|
|
186
|
-
taskCounts = { pending, completed, failed };
|
|
187
|
-
_metricsSource = 'agentdb';
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
catch { /* AgentDB not available, try JSON fallback */ }
|
|
191
|
-
// Fallback: JSON store files (backward compatibility)
|
|
192
|
-
if (_metricsSource === 'none') {
|
|
193
|
-
try {
|
|
194
|
-
const agentStorePath = join(getProjectCwd(), STORAGE_DIR, 'agents', 'store.json');
|
|
195
|
-
if (existsSync(agentStorePath)) {
|
|
196
|
-
const agentStore = JSON.parse(readFileSync(agentStorePath, 'utf-8'));
|
|
197
|
-
const agents = Object.values(agentStore.agents || {});
|
|
198
|
-
agentCounts = {
|
|
199
|
-
total: agents.length,
|
|
200
|
-
active: agents.filter(a => a.status === 'active' || a.status === 'running').length,
|
|
201
|
-
};
|
|
202
|
-
_metricsSource = 'json-store';
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
catch { /* agent store not available */ }
|
|
206
|
-
try {
|
|
207
|
-
const taskStorePath = join(getProjectCwd(), STORAGE_DIR, 'tasks', 'store.json');
|
|
208
|
-
if (existsSync(taskStorePath)) {
|
|
209
|
-
const taskStore = JSON.parse(readFileSync(taskStorePath, 'utf-8'));
|
|
210
|
-
const tasks = Object.values(taskStore.tasks || {});
|
|
211
|
-
taskCounts = {
|
|
212
|
-
pending: tasks.filter(t => t.status === 'pending' || t.status === 'assigned').length,
|
|
213
|
-
completed: tasks.filter(t => t.status === 'completed').length,
|
|
214
|
-
failed: tasks.filter(t => t.status === 'failed').length,
|
|
215
|
-
};
|
|
216
|
-
_metricsSource = 'json-store';
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
catch { /* task store not available */ }
|
|
220
|
-
}
|
|
221
|
-
const currentMetrics = {
|
|
222
|
-
...store,
|
|
223
|
-
cpu: loadAvg[0] * 100 / cpus.length, // Real CPU load percentage
|
|
224
|
-
memory: {
|
|
225
|
-
used: Math.round((totalMem - freeMem) / 1024 / 1024), // Real MB used
|
|
226
|
-
total: Math.round(totalMem / 1024 / 1024), // Real total MB
|
|
227
|
-
},
|
|
228
|
-
agents: agentCounts,
|
|
229
|
-
tasks: taskCounts,
|
|
230
|
-
requests: await (async () => {
|
|
231
|
-
try {
|
|
232
|
-
const { getRequestCounts } = await import('./request-tracker.js');
|
|
233
|
-
const live = getRequestCounts();
|
|
234
|
-
if (live.total > 0) {
|
|
235
|
-
return { total: live.total, success: live.success, errors: live.errors };
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
catch { /* tracker not available — fall back to stored value */ }
|
|
239
|
-
return store.requests;
|
|
240
|
-
})(),
|
|
241
|
-
uptime: Math.floor(process.uptime() * 1000), // #2235(B) — live process uptime
|
|
242
|
-
lastCheck: new Date().toISOString(),
|
|
243
|
-
};
|
|
244
|
-
saveMetrics(currentMetrics);
|
|
245
|
-
if (category === 'all') {
|
|
246
|
-
return {
|
|
247
|
-
...currentMetrics,
|
|
248
|
-
_real: true,
|
|
249
|
-
_metricsSource,
|
|
250
|
-
heap: {
|
|
251
|
-
used: Math.round(memUsage.heapUsed / 1024 / 1024),
|
|
252
|
-
total: Math.round(memUsage.heapTotal / 1024 / 1024),
|
|
253
|
-
external: Math.round(memUsage.external / 1024 / 1024),
|
|
254
|
-
},
|
|
255
|
-
loadAverage: loadAvg,
|
|
256
|
-
cpuCores: cpus.length,
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
const categoryMap = {
|
|
260
|
-
cpu: {
|
|
261
|
-
usage: currentMetrics.cpu,
|
|
262
|
-
cores: cpus.length,
|
|
263
|
-
load: loadAvg,
|
|
264
|
-
model: cpus[0]?.model,
|
|
265
|
-
_real: true,
|
|
266
|
-
},
|
|
267
|
-
memory: {
|
|
268
|
-
...currentMetrics.memory,
|
|
269
|
-
heap: Math.round(memUsage.heapUsed / 1024 / 1024),
|
|
270
|
-
heapTotal: Math.round(memUsage.heapTotal / 1024 / 1024),
|
|
271
|
-
free: Math.round(freeMem / 1024 / 1024),
|
|
272
|
-
_real: true,
|
|
273
|
-
},
|
|
274
|
-
agents: currentMetrics.agents,
|
|
275
|
-
tasks: currentMetrics.tasks,
|
|
276
|
-
requests: currentMetrics.requests,
|
|
277
|
-
};
|
|
278
|
-
return categoryMap[category] || currentMetrics;
|
|
279
|
-
},
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
name: 'system_health',
|
|
283
|
-
description: 'Perform system health check Use when native Bash is wrong because you need Ruflo runtime metrics (HNSW index size, ReasoningBank state, swarm health, breaker status) — those are not in /proc, only in the running daemon. For OS-level info (uptime, disk, mem), native Bash + standard tools are fine.',
|
|
284
|
-
category: 'system',
|
|
285
|
-
inputSchema: {
|
|
286
|
-
type: 'object',
|
|
287
|
-
properties: {
|
|
288
|
-
deep: { type: 'boolean', description: 'Perform deep health check' },
|
|
289
|
-
components: { type: 'array', items: { type: 'string' }, description: 'Components to check' },
|
|
290
|
-
fix: { type: 'boolean', description: 'Attempt to fix issues' },
|
|
291
|
-
},
|
|
292
|
-
},
|
|
293
|
-
handler: async (input) => {
|
|
294
|
-
const metrics = loadMetrics();
|
|
295
|
-
const checks = [];
|
|
296
|
-
const projectCwd = getProjectCwd();
|
|
297
|
-
// Memory DB check — verify any supported store file exists.
|
|
298
|
-
// #1843: cover sql.js / HNSW / .swarm and root-level rvf/db paths,
|
|
299
|
-
// not just the legacy `.claude-flow/memory/*` triple.
|
|
300
|
-
{
|
|
301
|
-
const t0 = performance.now();
|
|
302
|
-
const memoryCandidates = [
|
|
303
|
-
join(projectCwd, '.claude-flow', 'memory', 'store.json'), // legacy
|
|
304
|
-
join(projectCwd, '.claude-flow', 'memory', 'agentdb.sqlite'),
|
|
305
|
-
join(projectCwd, '.claude-flow', 'memory', 'store.rvf'),
|
|
306
|
-
join(projectCwd, '.claude-flow', 'memory', 'claude-flow.db'), // sql.js
|
|
307
|
-
join(projectCwd, '.swarm', 'memory.db'), // swarm
|
|
308
|
-
join(projectCwd, 'ruvector.db'), // ruvector
|
|
309
|
-
join(projectCwd, 'agentdb.rvf'), // root rvf
|
|
310
|
-
];
|
|
311
|
-
const memoryExists = memoryCandidates.some(existsSync);
|
|
312
|
-
const elapsed = performance.now() - t0;
|
|
313
|
-
checks.push({
|
|
314
|
-
name: 'memory',
|
|
315
|
-
status: memoryExists ? 'healthy' : 'degraded',
|
|
316
|
-
latency: Math.round(elapsed * 100) / 100,
|
|
317
|
-
message: memoryExists ? undefined : 'Memory store not found — run memory init',
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
// Config check — verify config file exists.
|
|
321
|
-
// #1843: also accept YAML config (.claude-flow/config.yaml) which
|
|
322
|
-
// the rest of v3 treats as canonical; previous code only counted
|
|
323
|
-
// .json variants and reported `degraded` when YAML was used.
|
|
324
|
-
{
|
|
325
|
-
const t0 = performance.now();
|
|
326
|
-
const configCandidates = [
|
|
327
|
-
join(projectCwd, '.claude-flow', 'config.json'),
|
|
328
|
-
join(projectCwd, '.claude-flow', 'config.yaml'),
|
|
329
|
-
join(projectCwd, '.claude-flow', 'config.yml'),
|
|
330
|
-
join(projectCwd, 'claude-flow.config.json'),
|
|
331
|
-
join(projectCwd, 'claude-flow.config.yaml'),
|
|
332
|
-
join(projectCwd, 'claude-flow.config.yml'),
|
|
333
|
-
];
|
|
334
|
-
const configExists = configCandidates.some(existsSync);
|
|
335
|
-
const elapsed = performance.now() - t0;
|
|
336
|
-
checks.push({
|
|
337
|
-
name: 'config',
|
|
338
|
-
status: configExists ? 'healthy' : 'degraded',
|
|
339
|
-
latency: Math.round(elapsed * 100) / 100,
|
|
340
|
-
message: configExists ? undefined : 'Config file not found — run init',
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
|
-
// MCP check — this process is the MCP server if stdin is piped
|
|
344
|
-
{
|
|
345
|
-
const isStdio = !process.stdin.isTTY;
|
|
346
|
-
checks.push({
|
|
347
|
-
name: 'mcp',
|
|
348
|
-
status: isStdio ? 'healthy' : 'unknown',
|
|
349
|
-
message: isStdio ? 'MCP stdio server running (this process)' : 'Not running as MCP server',
|
|
350
|
-
});
|
|
351
|
-
}
|
|
352
|
-
// Swarm — cannot verify real connectivity, report unknown
|
|
353
|
-
checks.push({
|
|
354
|
-
name: 'swarm',
|
|
355
|
-
status: 'unknown',
|
|
356
|
-
message: 'Swarm connectivity not monitored — check coordination store manually',
|
|
357
|
-
});
|
|
358
|
-
// Neural — cannot verify, report unknown
|
|
359
|
-
checks.push({
|
|
360
|
-
name: 'neural',
|
|
361
|
-
status: 'unknown',
|
|
362
|
-
message: 'Neural network health not monitored',
|
|
363
|
-
});
|
|
364
|
-
if (input.deep) {
|
|
365
|
-
// Disk check — real free space via statfsSync (Node 18.15+)
|
|
366
|
-
{
|
|
367
|
-
const t0 = performance.now();
|
|
368
|
-
try {
|
|
369
|
-
const stats = statfsSync(projectCwd);
|
|
370
|
-
const totalBytes = stats.blocks * stats.bsize;
|
|
371
|
-
const freeBytes = stats.bfree * stats.bsize;
|
|
372
|
-
const totalGB = Math.round((totalBytes / (1024 ** 3)) * 10) / 10;
|
|
373
|
-
const freeGB = Math.round((freeBytes / (1024 ** 3)) * 10) / 10;
|
|
374
|
-
const freePercent = Math.round((freeBytes / totalBytes) * 100);
|
|
375
|
-
const elapsed = performance.now() - t0;
|
|
376
|
-
checks.push({
|
|
377
|
-
name: 'disk',
|
|
378
|
-
status: freePercent > 10 ? 'healthy' : 'warning',
|
|
379
|
-
latency: Math.round(elapsed * 100) / 100,
|
|
380
|
-
message: `${freeGB}GB free of ${totalGB}GB (${freePercent}%)`,
|
|
381
|
-
});
|
|
382
|
-
}
|
|
383
|
-
catch {
|
|
384
|
-
const elapsed = performance.now() - t0;
|
|
385
|
-
checks.push({
|
|
386
|
-
name: 'disk',
|
|
387
|
-
status: 'unknown',
|
|
388
|
-
latency: Math.round(elapsed * 100) / 100,
|
|
389
|
-
message: 'Disk space check failed — statfsSync unavailable',
|
|
390
|
-
});
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
// Network — DNS resolution check with timeout
|
|
394
|
-
{
|
|
395
|
-
const t0 = performance.now();
|
|
396
|
-
try {
|
|
397
|
-
await Promise.race([
|
|
398
|
-
dns.promises.lookup('registry.npmjs.org'),
|
|
399
|
-
new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 3000)),
|
|
400
|
-
]);
|
|
401
|
-
const elapsed = performance.now() - t0;
|
|
402
|
-
checks.push({
|
|
403
|
-
name: 'network',
|
|
404
|
-
status: 'healthy',
|
|
405
|
-
latency: Math.round(elapsed * 100) / 100,
|
|
406
|
-
message: 'DNS resolution working',
|
|
407
|
-
});
|
|
408
|
-
}
|
|
409
|
-
catch {
|
|
410
|
-
const elapsed = performance.now() - t0;
|
|
411
|
-
checks.push({
|
|
412
|
-
name: 'network',
|
|
413
|
-
status: 'warning',
|
|
414
|
-
latency: Math.round(elapsed * 100) / 100,
|
|
415
|
-
message: 'DNS resolution failed — check network',
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
// Database — check if coordination store exists
|
|
420
|
-
{
|
|
421
|
-
const t0 = performance.now();
|
|
422
|
-
const coordPath = join(projectCwd, '.claude-flow', 'coordination', 'store.json');
|
|
423
|
-
const dbExists = existsSync(coordPath);
|
|
424
|
-
const elapsed = performance.now() - t0;
|
|
425
|
-
checks.push({
|
|
426
|
-
name: 'database',
|
|
427
|
-
status: dbExists ? 'healthy' : 'unknown',
|
|
428
|
-
latency: Math.round(elapsed * 100) / 100,
|
|
429
|
-
message: dbExists ? undefined : 'Coordination store not found',
|
|
430
|
-
});
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
// #1843: exclude `unknown` checks from the health score denominator.
|
|
434
|
-
// Previously a check reporting `unknown` (e.g. swarm/neural which
|
|
435
|
-
// can't be probed in-process) was counted as a non-healthy hit and
|
|
436
|
-
// dragged the score below 100 even when every actionable check was
|
|
437
|
-
// green. Treat `unknown` as advisory and surface it separately.
|
|
438
|
-
const healthy = checks.filter(c => c.status === 'healthy').length;
|
|
439
|
-
const advisory = checks.filter(c => c.status === 'unknown').length;
|
|
440
|
-
const total = checks.length;
|
|
441
|
-
const scoreDenominator = total - advisory;
|
|
442
|
-
const overallHealth = scoreDenominator > 0 ? healthy / scoreDenominator : 1;
|
|
443
|
-
// Update metrics
|
|
444
|
-
metrics.health = overallHealth;
|
|
445
|
-
saveMetrics(metrics);
|
|
446
|
-
return {
|
|
447
|
-
overall: overallHealth >= 0.8 ? 'healthy' : overallHealth >= 0.5 ? 'degraded' : 'unhealthy',
|
|
448
|
-
score: Math.round(overallHealth * 100),
|
|
449
|
-
checks,
|
|
450
|
-
healthy,
|
|
451
|
-
advisory,
|
|
452
|
-
total,
|
|
453
|
-
timestamp: new Date().toISOString(),
|
|
454
|
-
issues: checks.filter(c => c.status !== 'healthy' && c.status !== 'unknown').map(c => ({
|
|
455
|
-
component: c.name,
|
|
456
|
-
status: c.status,
|
|
457
|
-
suggestion: `Check ${c.name} component configuration`,
|
|
458
|
-
})),
|
|
459
|
-
};
|
|
460
|
-
},
|
|
461
|
-
},
|
|
462
|
-
{
|
|
463
|
-
name: 'system_info',
|
|
464
|
-
description: 'Get system information Use when native Bash is wrong because you need Ruflo runtime metrics (HNSW index size, ReasoningBank state, swarm health, breaker status) — those are not in /proc, only in the running daemon. For OS-level info (uptime, disk, mem), native Bash + standard tools are fine.',
|
|
465
|
-
category: 'system',
|
|
466
|
-
inputSchema: {
|
|
467
|
-
type: 'object',
|
|
468
|
-
properties: {
|
|
469
|
-
include: { type: 'array', items: { type: 'string' }, description: 'Information to include' },
|
|
470
|
-
},
|
|
471
|
-
},
|
|
472
|
-
handler: async () => {
|
|
473
|
-
// #2215: flashAttention must reflect the runtime probe, not a stale literal.
|
|
474
|
-
// Same source-of-truth as hooks_intelligence / neural_status so the tools
|
|
475
|
-
// can never report contradictory state for the same daemon.
|
|
476
|
-
let flashAttentionAvailable = false;
|
|
477
|
-
try {
|
|
478
|
-
const { getFlashAttention } = await import('@claude-flow/neural');
|
|
479
|
-
flashAttentionAvailable = getFlashAttention() !== null;
|
|
480
|
-
}
|
|
481
|
-
catch {
|
|
482
|
-
flashAttentionAvailable = false;
|
|
483
|
-
}
|
|
484
|
-
return {
|
|
485
|
-
version: PKG_VERSION,
|
|
486
|
-
nodeVersion: process.version,
|
|
487
|
-
platform: process.platform,
|
|
488
|
-
arch: process.arch,
|
|
489
|
-
pid: process.pid,
|
|
490
|
-
cwd: getProjectCwd(),
|
|
491
|
-
env: process.env.NODE_ENV || 'development',
|
|
492
|
-
features: {
|
|
493
|
-
swarm: true,
|
|
494
|
-
memory: true,
|
|
495
|
-
neural: true,
|
|
496
|
-
hnsw: true,
|
|
497
|
-
quantization: true,
|
|
498
|
-
flashAttention: flashAttentionAvailable,
|
|
499
|
-
},
|
|
500
|
-
limits: {
|
|
501
|
-
maxAgents: 100,
|
|
502
|
-
maxTasks: 1000,
|
|
503
|
-
maxMemory: '4GB',
|
|
504
|
-
},
|
|
505
|
-
};
|
|
506
|
-
},
|
|
507
|
-
},
|
|
508
|
-
{
|
|
509
|
-
name: 'system_reset',
|
|
510
|
-
description: 'Reset system state Use when native Bash is wrong because you need Ruflo runtime metrics (HNSW index size, ReasoningBank state, swarm health, breaker status) — those are not in /proc, only in the running daemon. For OS-level info (uptime, disk, mem), native Bash + standard tools are fine.',
|
|
511
|
-
category: 'system',
|
|
512
|
-
inputSchema: {
|
|
513
|
-
type: 'object',
|
|
514
|
-
properties: {
|
|
515
|
-
component: { type: 'string', description: 'Component to reset (all, metrics, agents, tasks)' },
|
|
516
|
-
confirm: { type: 'boolean', description: 'Confirm reset' },
|
|
517
|
-
},
|
|
518
|
-
required: ['confirm'],
|
|
519
|
-
},
|
|
520
|
-
handler: async (input) => {
|
|
521
|
-
if (!input.confirm) {
|
|
522
|
-
return { success: false, error: 'Reset requires confirmation' };
|
|
523
|
-
}
|
|
524
|
-
if (input.component) {
|
|
525
|
-
const v = validateIdentifier(input.component, 'component');
|
|
526
|
-
if (!v.valid)
|
|
527
|
-
return { success: false, error: v.error };
|
|
528
|
-
}
|
|
529
|
-
const component = input.component || 'metrics';
|
|
530
|
-
// Reset metrics to defaults
|
|
531
|
-
const defaultMetrics = {
|
|
532
|
-
startTime: new Date().toISOString(),
|
|
533
|
-
lastCheck: new Date().toISOString(),
|
|
534
|
-
uptime: 0,
|
|
535
|
-
health: 1.0,
|
|
536
|
-
cpu: os.loadavg()[0] * 100 / os.cpus().length,
|
|
537
|
-
memory: { used: Math.round((os.totalmem() - os.freemem()) / 1024 / 1024), total: Math.round(os.totalmem() / 1024 / 1024) },
|
|
538
|
-
agents: { active: 0, total: 0 },
|
|
539
|
-
tasks: { pending: 0, completed: 0, failed: 0 },
|
|
540
|
-
requests: { total: 0, success: 0, errors: 0 },
|
|
541
|
-
};
|
|
542
|
-
saveMetrics(defaultMetrics);
|
|
543
|
-
return {
|
|
544
|
-
success: true,
|
|
545
|
-
component,
|
|
546
|
-
resetAt: new Date().toISOString(),
|
|
547
|
-
message: `System ${component} has been reset`,
|
|
548
|
-
};
|
|
549
|
-
},
|
|
550
|
-
},
|
|
551
|
-
{
|
|
552
|
-
name: 'mcp_status',
|
|
553
|
-
description: 'Get MCP server status, including stdio mode detection Use when native Claude Code MCP status is wrong because you need Ruflo-side server detail — tool counts per namespace, transport stats, MCP handshake errors. For just "is MCP up?", `claude mcp list` is fine.',
|
|
554
|
-
category: 'system',
|
|
555
|
-
inputSchema: {
|
|
556
|
-
type: 'object',
|
|
557
|
-
properties: {},
|
|
558
|
-
},
|
|
559
|
-
handler: async () => {
|
|
560
|
-
// Detect if we are running inside an MCP stdio session.
|
|
561
|
-
// When Claude Code launches us via `claude mcp add`, stdin is piped (not a TTY)
|
|
562
|
-
// and the process IS the MCP server, so it is running.
|
|
563
|
-
const isStdio = !process.stdin.isTTY;
|
|
564
|
-
const transport = process.env.CLAUDE_FLOW_MCP_TRANSPORT || (isStdio ? 'stdio' : 'http');
|
|
565
|
-
const port = parseInt(process.env.CLAUDE_FLOW_MCP_PORT || '3000', 10);
|
|
566
|
-
if (transport === 'stdio' || isStdio) {
|
|
567
|
-
// In stdio mode the MCP server is this process itself
|
|
568
|
-
return {
|
|
569
|
-
running: true,
|
|
570
|
-
pid: process.pid,
|
|
571
|
-
transport: 'stdio',
|
|
572
|
-
port: null,
|
|
573
|
-
host: null,
|
|
574
|
-
};
|
|
575
|
-
}
|
|
576
|
-
// For HTTP/WebSocket, try to check if the server is listening
|
|
577
|
-
const host = process.env.CLAUDE_FLOW_MCP_HOST || 'localhost';
|
|
578
|
-
try {
|
|
579
|
-
const { createConnection } = await import('node:net');
|
|
580
|
-
const connected = await new Promise((resolve) => {
|
|
581
|
-
const socket = createConnection({ host, port }, () => {
|
|
582
|
-
socket.destroy();
|
|
583
|
-
resolve(true);
|
|
584
|
-
});
|
|
585
|
-
socket.on('error', () => resolve(false));
|
|
586
|
-
socket.setTimeout(2000, () => {
|
|
587
|
-
socket.destroy();
|
|
588
|
-
resolve(false);
|
|
589
|
-
});
|
|
590
|
-
});
|
|
591
|
-
return {
|
|
592
|
-
running: connected,
|
|
593
|
-
transport,
|
|
594
|
-
port,
|
|
595
|
-
host,
|
|
596
|
-
};
|
|
597
|
-
}
|
|
598
|
-
catch {
|
|
599
|
-
return {
|
|
600
|
-
running: false,
|
|
601
|
-
transport,
|
|
602
|
-
port,
|
|
603
|
-
host,
|
|
604
|
-
};
|
|
605
|
-
}
|
|
606
|
-
},
|
|
607
|
-
},
|
|
608
|
-
{
|
|
609
|
-
name: 'task_summary',
|
|
610
|
-
description: 'Get a summary of all tasks by status Use when native TodoWrite is wrong because you need cross-session task persistence, agent assignment, dependency tracking, or completion analytics in the .swarm/memory.db. For in-session checklists native TodoWrite is simpler and faster.',
|
|
611
|
-
category: 'task',
|
|
612
|
-
inputSchema: {
|
|
613
|
-
type: 'object',
|
|
614
|
-
properties: {},
|
|
615
|
-
},
|
|
616
|
-
handler: async () => {
|
|
617
|
-
// Read from the task store file
|
|
618
|
-
const storePath = join(getProjectCwd(), '.claude-flow', 'tasks', 'store.json');
|
|
619
|
-
let tasks = [];
|
|
620
|
-
try {
|
|
621
|
-
if (existsSync(storePath)) {
|
|
622
|
-
const data = readFileSync(storePath, 'utf-8');
|
|
623
|
-
const store = JSON.parse(data);
|
|
624
|
-
tasks = Object.values(store.tasks || {});
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
catch {
|
|
628
|
-
// empty store
|
|
629
|
-
}
|
|
630
|
-
return {
|
|
631
|
-
total: tasks.length,
|
|
632
|
-
pending: tasks.filter(t => t.status === 'pending').length,
|
|
633
|
-
running: tasks.filter(t => t.status === 'in_progress').length,
|
|
634
|
-
completed: tasks.filter(t => t.status === 'completed').length,
|
|
635
|
-
failed: tasks.filter(t => t.status === 'failed').length,
|
|
636
|
-
};
|
|
637
|
-
},
|
|
638
|
-
},
|
|
639
|
-
{
|
|
640
|
-
// #1916: `ruflo start` referenced an unregistered `mcp_start` tool. MCP
|
|
641
|
-
// tools run *in-process* via the CLI's TOOL_REGISTRY — there is no
|
|
642
|
-
// separate server process to spawn from inside an MCP call. If this tool
|
|
643
|
-
// responds, MCP is already up. (`ruflo mcp start` runs a standalone
|
|
644
|
-
// stdio/HTTP server; that's a process command, not an MCP tool.)
|
|
645
|
-
name: 'mcp_start',
|
|
646
|
-
description: 'Report that the in-process MCP toolset is available (no-op "start" — if this tool responds, MCP is up). Use when native `claude mcp list` is wrong because you want Ruflo-side confirmation that the in-process registry loaded. For a standalone stdio/HTTP MCP server, run `ruflo mcp start` (a process command, not this tool). Pair with mcp_status for detail.',
|
|
647
|
-
category: 'system',
|
|
648
|
-
inputSchema: {
|
|
649
|
-
type: 'object',
|
|
650
|
-
properties: {
|
|
651
|
-
port: { type: 'number', description: 'Port (advisory — in-process MCP has no port)' },
|
|
652
|
-
transport: { type: 'string', description: 'Transport (advisory)' },
|
|
653
|
-
tools: { type: 'array', items: { type: 'string' }, description: 'Tool namespaces (advisory — all are loaded)' },
|
|
654
|
-
},
|
|
655
|
-
},
|
|
656
|
-
handler: async (input) => {
|
|
657
|
-
const isStdio = !process.stdin.isTTY;
|
|
658
|
-
return {
|
|
659
|
-
serverId: `in-process-${process.pid}`,
|
|
660
|
-
port: typeof input.port === 'number' ? input.port : (parseInt(process.env.CLAUDE_FLOW_MCP_PORT || '0', 10) || null),
|
|
661
|
-
transport: input.transport || process.env.CLAUDE_FLOW_MCP_TRANSPORT || (isStdio ? 'stdio' : 'in-process'),
|
|
662
|
-
startedAt: new Date().toISOString(),
|
|
663
|
-
note: 'MCP tools run in-process via the CLI; no separate server process was started. Use `ruflo mcp start` for a standalone server.',
|
|
664
|
-
};
|
|
665
|
-
},
|
|
666
|
-
},
|
|
667
|
-
{
|
|
668
|
-
// #1916: `ruflo stop` referenced an unregistered `mcp_stop` tool. Same
|
|
669
|
-
// story as mcp_start — nothing to stop for the in-process registry.
|
|
670
|
-
name: 'mcp_stop',
|
|
671
|
-
description: 'No-op "stop" for the in-process MCP toolset (there is no separate server process to stop from inside an MCP call). Use when native process-kill is wrong because you mistakenly think Ruflo runs a daemon — it does not, the tools live in the CLI process. To stop a standalone server run `ruflo mcp stop` or terminate that process. Pair with mcp_status.',
|
|
672
|
-
category: 'system',
|
|
673
|
-
inputSchema: {
|
|
674
|
-
type: 'object',
|
|
675
|
-
properties: {
|
|
676
|
-
graceful: { type: 'boolean', description: 'Advisory (no-op)' },
|
|
677
|
-
timeout: { type: 'number', description: 'Advisory (no-op)' },
|
|
678
|
-
},
|
|
679
|
-
},
|
|
680
|
-
handler: async () => {
|
|
681
|
-
return {
|
|
682
|
-
stopped: false,
|
|
683
|
-
note: 'no separate MCP server process; nothing to stop. The in-process toolset goes away when the CLI process exits. Use `ruflo mcp stop` for a standalone server.',
|
|
684
|
-
};
|
|
685
|
-
},
|
|
686
|
-
},
|
|
687
|
-
];
|
|
688
|
-
//# sourceMappingURL=system-tools.js.map
|