@claude-flow/cli 3.32.3 → 3.32.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/helpers/helpers.manifest.json +2 -2
- package/catalog-manifest.json +2 -2
- package/dist/src/agenticow/speculative-exploration.d.ts +148 -0
- package/dist/src/agenticow/speculative-exploration.js +218 -0
- package/dist/src/appliance/gguf-engine.d.ts +91 -0
- package/dist/src/appliance/gguf-engine.js +425 -0
- package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
- package/dist/src/appliance/ruvllm-bridge.js +292 -0
- package/dist/src/appliance/rvfa-builder.d.ts +44 -0
- package/dist/src/appliance/rvfa-builder.js +329 -0
- package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
- package/dist/src/appliance/rvfa-distribution.js +370 -0
- package/dist/src/appliance/rvfa-format.d.ts +111 -0
- package/dist/src/appliance/rvfa-format.js +393 -0
- package/dist/src/appliance/rvfa-runner.d.ts +69 -0
- package/dist/src/appliance/rvfa-runner.js +237 -0
- package/dist/src/appliance/rvfa-signing.d.ts +123 -0
- package/dist/src/appliance/rvfa-signing.js +347 -0
- package/dist/src/auth/client.d.ts +89 -0
- package/dist/src/auth/client.js +242 -0
- package/dist/src/auth/constants.d.ts +7 -0
- package/dist/src/auth/constants.js +7 -0
- package/dist/src/auth/scopes.d.ts +14 -0
- package/dist/src/auth/scopes.js +21 -0
- package/dist/src/auth/security-bridge.d.ts +36 -0
- package/dist/src/auth/security-bridge.js +42 -0
- package/dist/src/auth/session.d.ts +20 -0
- package/dist/src/auth/session.js +32 -0
- package/dist/src/auth/state.d.ts +19 -0
- package/dist/src/auth/state.js +53 -0
- package/dist/src/auth/types.d.ts +27 -0
- package/dist/src/auth/types.js +11 -0
- package/dist/src/autopilot-state.d.ts +77 -0
- package/dist/src/autopilot-state.js +271 -0
- package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +18 -0
- package/dist/src/benchmarks/gaia-agent-planning.smoke.js +253 -0
- package/dist/src/benchmarks/gaia-agent.d.ts +198 -0
- package/dist/src/benchmarks/gaia-agent.js +651 -0
- package/dist/src/benchmarks/gaia-causal-memory.d.ts +133 -0
- package/dist/src/benchmarks/gaia-causal-memory.js +281 -0
- package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +22 -0
- package/dist/src/benchmarks/gaia-causal-memory.smoke.js +300 -0
- package/dist/src/benchmarks/gaia-convergence.d.ts +138 -0
- package/dist/src/benchmarks/gaia-convergence.js +260 -0
- package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +19 -0
- package/dist/src/benchmarks/gaia-convergence.smoke.js +246 -0
- package/dist/src/benchmarks/gaia-critic.d.ts +123 -0
- package/dist/src/benchmarks/gaia-critic.js +312 -0
- package/dist/src/benchmarks/gaia-critic.smoke.d.ts +21 -0
- package/dist/src/benchmarks/gaia-critic.smoke.js +327 -0
- package/dist/src/benchmarks/gaia-decomposer.d.ts +125 -0
- package/dist/src/benchmarks/gaia-decomposer.js +350 -0
- package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +21 -0
- package/dist/src/benchmarks/gaia-decomposer.smoke.js +228 -0
- package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +27 -0
- package/dist/src/benchmarks/gaia-e2e-smoke.js +136 -0
- package/dist/src/benchmarks/gaia-extract.smoke.d.ts +45 -0
- package/dist/src/benchmarks/gaia-extract.smoke.js +242 -0
- package/dist/src/benchmarks/gaia-hardness/features.d.ts +46 -0
- package/dist/src/benchmarks/gaia-hardness/features.js +170 -0
- package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +105 -0
- package/dist/src/benchmarks/gaia-hardness/predictor.js +260 -0
- package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +20 -0
- package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +235 -0
- package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +51 -0
- package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +179 -0
- package/dist/src/benchmarks/gaia-judge.d.ts +88 -0
- package/dist/src/benchmarks/gaia-judge.js +437 -0
- package/dist/src/benchmarks/gaia-loader.d.ts +87 -0
- package/dist/src/benchmarks/gaia-loader.js +326 -0
- package/dist/src/benchmarks/gaia-tools/file_read.d.ts +35 -0
- package/dist/src/benchmarks/gaia-tools/file_read.js +403 -0
- package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +126 -0
- package/dist/src/benchmarks/gaia-tools/grounded_query.js +225 -0
- package/dist/src/benchmarks/gaia-tools/index.d.ts +32 -0
- package/dist/src/benchmarks/gaia-tools/index.js +36 -0
- package/dist/src/benchmarks/gaia-tools/types.d.ts +62 -0
- package/dist/src/benchmarks/gaia-tools/types.js +12 -0
- package/dist/src/benchmarks/gaia-tools/web_search.d.ts +30 -0
- package/dist/src/benchmarks/gaia-tools/web_search.js +210 -0
- package/dist/src/benchmarks/gaia-voting.d.ts +88 -0
- package/dist/src/benchmarks/gaia-voting.js +297 -0
- package/dist/src/benchmarks/gaia-voting.smoke.d.ts +20 -0
- package/dist/src/benchmarks/gaia-voting.smoke.js +332 -0
- package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
- package/dist/src/benchmarks/pretrain/index.js +404 -0
- package/dist/src/business-pods/bbs-budget-tracker.d.ts +139 -0
- package/dist/src/business-pods/bbs-budget-tracker.js +358 -0
- package/dist/src/business-pods/domain-affinity-policy.d.ts +47 -0
- package/dist/src/business-pods/domain-affinity-policy.js +65 -0
- package/dist/src/business-pods/pod-schema.d.ts +96 -0
- package/dist/src/business-pods/pod-schema.js +225 -0
- package/dist/src/commands/advisor.d.ts +15 -0
- package/dist/src/commands/advisor.js +94 -0
- package/dist/src/commands/agent-wasm.d.ts +14 -0
- package/dist/src/commands/agent-wasm.js +333 -0
- package/dist/src/commands/agent.d.ts +8 -0
- package/dist/src/commands/agent.js +927 -0
- package/dist/src/commands/analyze.d.ts +19 -0
- package/dist/src/commands/analyze.js +2047 -0
- package/dist/src/commands/announcements.d.ts +17 -0
- package/dist/src/commands/announcements.js +0 -0
- package/dist/src/commands/appliance-advanced.d.ts +9 -0
- package/dist/src/commands/appliance-advanced.js +215 -0
- package/dist/src/commands/appliance.d.ts +8 -0
- package/dist/src/commands/appliance.js +404 -0
- package/dist/src/commands/auth.d.ts +15 -0
- package/dist/src/commands/auth.js +244 -0
- package/dist/src/commands/autopilot.d.ts +15 -0
- package/dist/src/commands/autopilot.js +407 -0
- package/dist/src/commands/benchmark.d.ts +10 -0
- package/dist/src/commands/benchmark.js +460 -0
- package/dist/src/commands/claims.d.ts +10 -0
- package/dist/src/commands/claims.js +620 -0
- package/dist/src/commands/cleanup.d.ts +13 -0
- package/dist/src/commands/cleanup.js +250 -0
- package/dist/src/commands/completions.d.ts +10 -0
- package/dist/src/commands/completions.js +539 -0
- package/dist/src/commands/config.d.ts +8 -0
- package/dist/src/commands/config.js +428 -0
- package/dist/src/commands/daemon.d.ts +59 -0
- package/dist/src/commands/daemon.js +1733 -0
- package/dist/src/commands/deployment.d.ts +10 -0
- package/dist/src/commands/deployment.js +672 -0
- package/dist/src/commands/doctor.d.ts +10 -0
- package/dist/src/commands/doctor.js +1902 -0
- package/dist/src/commands/eject.d.ts +33 -0
- package/dist/src/commands/eject.js +195 -0
- package/dist/src/commands/embeddings.d.ts +18 -0
- package/dist/src/commands/embeddings.js +1623 -0
- package/dist/src/commands/funnel.d.ts +18 -0
- package/dist/src/commands/funnel.js +302 -0
- package/dist/src/commands/gaia-bench.d.ts +40 -0
- package/dist/src/commands/gaia-bench.js +597 -0
- package/dist/src/commands/guidance.d.ts +8 -0
- package/dist/src/commands/guidance.js +556 -0
- package/dist/src/commands/hive-mind.d.ts +11 -0
- package/dist/src/commands/hive-mind.js +1319 -0
- package/dist/src/commands/hooks.d.ts +8 -0
- package/dist/src/commands/hooks.js +4606 -0
- package/dist/src/commands/index.d.ts +118 -0
- package/dist/src/commands/index.js +366 -0
- package/dist/src/commands/init.d.ts +13 -0
- package/dist/src/commands/init.js +1297 -0
- package/dist/src/commands/issues.d.ts +21 -0
- package/dist/src/commands/issues.js +567 -0
- package/dist/src/commands/mcp.d.ts +11 -0
- package/dist/src/commands/mcp.js +732 -0
- package/dist/src/commands/memory-backup.d.ts +11 -0
- package/dist/src/commands/memory-backup.js +46 -0
- package/dist/src/commands/memory-distill.d.ts +27 -0
- package/dist/src/commands/memory-distill.js +374 -0
- package/dist/src/commands/memory.d.ts +8 -0
- package/dist/src/commands/memory.js +1596 -0
- package/dist/src/commands/metaharness.d.ts +39 -0
- package/dist/src/commands/metaharness.js +215 -0
- package/dist/src/commands/migrate.d.ts +8 -0
- package/dist/src/commands/migrate.js +742 -0
- package/dist/src/commands/neural.d.ts +10 -0
- package/dist/src/commands/neural.js +4331 -0
- package/dist/src/commands/performance.d.ts +10 -0
- package/dist/src/commands/performance.js +583 -0
- package/dist/src/commands/plugins.d.ts +11 -0
- package/dist/src/commands/plugins.js +826 -0
- package/dist/src/commands/process.d.ts +10 -0
- package/dist/src/commands/process.js +694 -0
- package/dist/src/commands/progress.d.ts +11 -0
- package/dist/src/commands/progress.js +259 -0
- package/dist/src/commands/providers.d.ts +10 -0
- package/dist/src/commands/providers.js +502 -0
- package/dist/src/commands/proxy-lifecycle.d.ts +12 -0
- package/dist/src/commands/proxy-lifecycle.js +232 -0
- package/dist/src/commands/proxy.d.ts +21 -0
- package/dist/src/commands/proxy.js +398 -0
- package/dist/src/commands/route.d.ts +16 -0
- package/dist/src/commands/route.js +822 -0
- package/dist/src/commands/ruvector/backup.d.ts +11 -0
- package/dist/src/commands/ruvector/backup.js +747 -0
- package/dist/src/commands/ruvector/benchmark.d.ts +11 -0
- package/dist/src/commands/ruvector/benchmark.js +490 -0
- package/dist/src/commands/ruvector/import.d.ts +18 -0
- package/dist/src/commands/ruvector/import.js +373 -0
- package/dist/src/commands/ruvector/index.d.ts +29 -0
- package/dist/src/commands/ruvector/index.js +129 -0
- package/dist/src/commands/ruvector/init.d.ts +11 -0
- package/dist/src/commands/ruvector/init.js +467 -0
- package/dist/src/commands/ruvector/migrate.d.ts +11 -0
- package/dist/src/commands/ruvector/migrate.js +498 -0
- package/dist/src/commands/ruvector/optimize.d.ts +11 -0
- package/dist/src/commands/ruvector/optimize.js +505 -0
- package/dist/src/commands/ruvector/pg-utils.d.ts +14 -0
- package/dist/src/commands/ruvector/pg-utils.js +41 -0
- package/dist/src/commands/ruvector/setup.d.ts +18 -0
- package/dist/src/commands/ruvector/setup.js +765 -0
- package/dist/src/commands/ruvector/status.d.ts +11 -0
- package/dist/src/commands/ruvector/status.js +479 -0
- package/dist/src/commands/security.d.ts +10 -0
- package/dist/src/commands/security.js +1012 -0
- package/dist/src/commands/session.d.ts +8 -0
- package/dist/src/commands/session.js +757 -0
- package/dist/src/commands/settings.d.ts +19 -0
- package/dist/src/commands/settings.js +180 -0
- package/dist/src/commands/spinner.d.ts +16 -0
- package/dist/src/commands/spinner.js +329 -0
- package/dist/src/commands/start.d.ts +8 -0
- package/dist/src/commands/start.js +418 -0
- package/dist/src/commands/status.d.ts +8 -0
- package/dist/src/commands/status.js +608 -0
- package/dist/src/commands/swarm.d.ts +8 -0
- package/dist/src/commands/swarm.js +891 -0
- package/dist/src/commands/task.d.ts +8 -0
- package/dist/src/commands/task.js +675 -0
- package/dist/src/commands/transfer-store.d.ts +13 -0
- package/dist/src/commands/transfer-store.js +428 -0
- package/dist/src/commands/update.d.ts +8 -0
- package/dist/src/commands/update.js +276 -0
- package/dist/src/commands/verify.d.ts +19 -0
- package/dist/src/commands/verify.js +261 -0
- package/dist/src/commands/version.d.ts +42 -0
- package/dist/src/commands/version.js +106 -0
- package/dist/src/commands/workflow.d.ts +8 -0
- package/dist/src/commands/workflow.js +617 -0
- package/dist/src/config/harness-feedback-applier.d.ts +50 -0
- package/dist/src/config/harness-feedback-applier.js +122 -0
- package/dist/src/config/proven-config-refresh.d.ts +39 -0
- package/dist/src/config/proven-config-refresh.js +154 -0
- package/dist/src/config/proven-config-rvfa.d.ts +23 -0
- package/dist/src/config/proven-config-rvfa.js +73 -0
- package/dist/src/config/proven-config.d.ts +86 -0
- package/dist/src/config/proven-config.js +176 -0
- package/dist/src/config-adapter.d.ts +15 -0
- package/dist/src/config-adapter.js +186 -0
- package/dist/src/encryption/vault.d.ts +94 -0
- package/dist/src/encryption/vault.js +172 -0
- package/dist/src/fs-secure.d.ts +86 -0
- package/dist/src/fs-secure.js +133 -0
- package/dist/src/funnel/advisor-tip.d.ts +58 -0
- package/dist/src/funnel/advisor-tip.js +92 -0
- package/dist/src/funnel/attribution.d.ts +37 -0
- package/dist/src/funnel/attribution.js +101 -0
- package/dist/src/funnel/consent.d.ts +22 -0
- package/dist/src/funnel/consent.js +58 -0
- package/dist/src/funnel/credit-errors.d.ts +31 -0
- package/dist/src/funnel/credit-errors.js +88 -0
- package/dist/src/funnel/credit-notifier.d.ts +44 -0
- package/dist/src/funnel/credit-notifier.js +74 -0
- package/dist/src/funnel/disclosure.d.ts +47 -0
- package/dist/src/funnel/disclosure.js +109 -0
- package/dist/src/funnel/enrollment.d.ts +36 -0
- package/dist/src/funnel/enrollment.js +64 -0
- package/dist/src/funnel/environment.d.ts +17 -0
- package/dist/src/funnel/environment.js +39 -0
- package/dist/src/funnel/event-transport.d.ts +51 -0
- package/dist/src/funnel/event-transport.js +199 -0
- package/dist/src/funnel/events.d.ts +42 -0
- package/dist/src/funnel/events.js +150 -0
- package/dist/src/funnel/index.d.ts +21 -0
- package/dist/src/funnel/index.js +21 -0
- package/dist/src/funnel/insights.d.ts +50 -0
- package/dist/src/funnel/insights.js +120 -0
- package/dist/src/funnel/local-signals.d.ts +20 -0
- package/dist/src/funnel/local-signals.js +77 -0
- package/dist/src/funnel/message-transport.d.ts +51 -0
- package/dist/src/funnel/message-transport.js +149 -0
- package/dist/src/funnel/messages.d.ts +55 -0
- package/dist/src/funnel/messages.js +160 -0
- package/dist/src/funnel/payout.d.ts +40 -0
- package/dist/src/funnel/payout.js +60 -0
- package/dist/src/funnel/power-saver-notifier.d.ts +44 -0
- package/dist/src/funnel/power-saver-notifier.js +92 -0
- package/dist/src/funnel/precedence.d.ts +16 -0
- package/dist/src/funnel/precedence.js +85 -0
- package/dist/src/funnel/promo.d.ts +41 -0
- package/dist/src/funnel/promo.js +144 -0
- package/dist/src/funnel/rate-limit-notifier.d.ts +55 -0
- package/dist/src/funnel/rate-limit-notifier.js +102 -0
- package/dist/src/funnel/rotation.d.ts +19 -0
- package/dist/src/funnel/rotation.js +70 -0
- package/dist/src/funnel/state.d.ts +13 -0
- package/dist/src/funnel/state.js +52 -0
- package/dist/src/funnel/toggle-cooldown.d.ts +17 -0
- package/dist/src/funnel/toggle-cooldown.js +32 -0
- package/dist/src/funnel/types.d.ts +98 -0
- package/dist/src/funnel/types.js +26 -0
- package/dist/src/index.d.ts +81 -0
- package/dist/src/index.js +609 -0
- package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
- package/dist/src/infrastructure/in-memory-repositories.js +264 -0
- package/dist/src/init/claudemd-generator.d.ts +16 -0
- package/dist/src/init/claudemd-generator.js +368 -0
- package/dist/src/init/executor.d.ts +41 -0
- package/dist/src/init/executor.js +2142 -0
- package/dist/src/init/helper-refresh.d.ts +79 -0
- package/dist/src/init/helper-refresh.js +347 -0
- package/dist/src/init/helper-signing.d.ts +37 -0
- package/dist/src/init/helper-signing.js +67 -0
- package/dist/src/init/helpers-generator.d.ts +87 -0
- package/dist/src/init/helpers-generator.js +1456 -0
- package/dist/src/init/index.d.ts +13 -0
- package/dist/src/init/index.js +15 -0
- package/dist/src/init/mcp-generator.d.ts +26 -0
- package/dist/src/init/mcp-generator.js +126 -0
- package/dist/src/init/memory-package-resolver.d.ts +53 -0
- package/dist/src/init/memory-package-resolver.js +118 -0
- package/dist/src/init/settings-generator.d.ts +14 -0
- package/dist/src/init/settings-generator.js +462 -0
- package/dist/src/init/statusline-generator.d.ts +28 -0
- package/dist/src/init/statusline-generator.js +177 -0
- package/dist/src/init/types.d.ts +331 -0
- package/dist/src/init/types.js +276 -0
- package/dist/src/log-filters.d.ts +46 -0
- package/dist/src/log-filters.js +107 -0
- package/dist/src/mcp-client.d.ts +92 -0
- package/dist/src/mcp-client.js +397 -0
- package/dist/src/mcp-server.d.ts +163 -0
- package/dist/src/mcp-server.js +751 -0
- package/dist/src/mcp-tools/agent-execute-core.d.ts +115 -0
- package/dist/src/mcp-tools/agent-execute-core.js +587 -0
- package/dist/src/mcp-tools/agent-tools.d.ts +9 -0
- package/dist/src/mcp-tools/agent-tools.js +837 -0
- package/dist/src/mcp-tools/agentbbs-tools.d.ts +28 -0
- package/dist/src/mcp-tools/agentbbs-tools.js +394 -0
- package/dist/src/mcp-tools/agentdb-tools.d.ts +35 -0
- package/dist/src/mcp-tools/agentdb-tools.js +1473 -0
- package/dist/src/mcp-tools/agenticow-loader.d.ts +59 -0
- package/dist/src/mcp-tools/agenticow-loader.js +105 -0
- package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +24 -0
- package/dist/src/mcp-tools/agenticow-speculate-tools.js +209 -0
- package/dist/src/mcp-tools/agenticow-tools.d.ts +36 -0
- package/dist/src/mcp-tools/agenticow-tools.js +360 -0
- package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
- package/dist/src/mcp-tools/analyze-tools.js +346 -0
- package/dist/src/mcp-tools/auto-install.d.ts +83 -0
- package/dist/src/mcp-tools/auto-install.js +131 -0
- package/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
- package/dist/src/mcp-tools/autopilot-tools.js +231 -0
- package/dist/src/mcp-tools/browser-intent-tools.d.ts +162 -0
- package/dist/src/mcp-tools/browser-intent-tools.js +548 -0
- package/dist/src/mcp-tools/browser-session-tools.d.ts +27 -0
- package/dist/src/mcp-tools/browser-session-tools.js +398 -0
- package/dist/src/mcp-tools/browser-tools.d.ts +21 -0
- package/dist/src/mcp-tools/browser-tools.js +760 -0
- package/dist/src/mcp-tools/business-pod-tools.d.ts +20 -0
- package/dist/src/mcp-tools/business-pod-tools.js +169 -0
- package/dist/src/mcp-tools/claims-tools.d.ts +12 -0
- package/dist/src/mcp-tools/claims-tools.js +863 -0
- package/dist/src/mcp-tools/config-tools.d.ts +8 -0
- package/dist/src/mcp-tools/config-tools.js +411 -0
- package/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
- package/dist/src/mcp-tools/coordination-tools.js +729 -0
- package/dist/src/mcp-tools/daa-tools.d.ts +13 -0
- package/dist/src/mcp-tools/daa-tools.js +534 -0
- package/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
- package/dist/src/mcp-tools/embeddings-tools.js +904 -0
- package/dist/src/mcp-tools/github-tools.d.ts +9 -0
- package/dist/src/mcp-tools/github-tools.js +659 -0
- package/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
- package/dist/src/mcp-tools/guidance-tools.js +639 -0
- package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
- package/dist/src/mcp-tools/hive-mind-tools.js +953 -0
- package/dist/src/mcp-tools/hooks-tools.d.ts +65 -0
- package/dist/src/mcp-tools/hooks-tools.js +4836 -0
- package/dist/src/mcp-tools/http-fetch-tools.d.ts +55 -0
- package/dist/src/mcp-tools/http-fetch-tools.js +329 -0
- package/dist/src/mcp-tools/index.d.ts +34 -0
- package/dist/src/mcp-tools/index.js +40 -0
- package/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
- package/dist/src/mcp-tools/managed-agent-tools.js +357 -0
- package/dist/src/mcp-tools/memory-tools.d.ts +14 -0
- package/dist/src/mcp-tools/memory-tools.js +1330 -0
- package/dist/src/mcp-tools/metaharness-tools.d.ts +51 -0
- package/dist/src/mcp-tools/metaharness-tools.js +684 -0
- package/dist/src/mcp-tools/neural-tools.d.ts +54 -0
- package/dist/src/mcp-tools/neural-tools.js +1168 -0
- package/dist/src/mcp-tools/performance-tools.d.ts +16 -0
- package/dist/src/mcp-tools/performance-tools.js +675 -0
- package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
- package/dist/src/mcp-tools/progress-tools.js +348 -0
- package/dist/src/mcp-tools/request-tracker.d.ts +17 -0
- package/dist/src/mcp-tools/request-tracker.js +27 -0
- package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
- package/dist/src/mcp-tools/ruvllm-tools.js +355 -0
- package/dist/src/mcp-tools/security-tools.d.ts +18 -0
- package/dist/src/mcp-tools/security-tools.js +556 -0
- package/dist/src/mcp-tools/session-tools.d.ts +8 -0
- package/dist/src/mcp-tools/session-tools.js +517 -0
- package/dist/src/mcp-tools/swarm-tools.d.ts +37 -0
- package/dist/src/mcp-tools/swarm-tools.js +390 -0
- package/dist/src/mcp-tools/system-tools.d.ts +13 -0
- package/dist/src/mcp-tools/system-tools.js +688 -0
- package/dist/src/mcp-tools/task-tools.d.ts +8 -0
- package/dist/src/mcp-tools/task-tools.js +487 -0
- package/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
- package/dist/src/mcp-tools/terminal-tools.js +306 -0
- package/dist/src/mcp-tools/testgen-tools.d.ts +26 -0
- package/dist/src/mcp-tools/testgen-tools.js +168 -0
- package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +31 -0
- package/dist/src/mcp-tools/tool-loop-guardrail.js +71 -0
- package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
- package/dist/src/mcp-tools/transfer-tools.js +447 -0
- package/dist/src/mcp-tools/types.d.ts +8 -0
- package/dist/src/mcp-tools/types.js +8 -0
- package/dist/src/mcp-tools/validate-input.d.ts +9 -0
- package/dist/src/mcp-tools/validate-input.js +9 -0
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts +13 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js +840 -0
- package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
- package/dist/src/mcp-tools/workflow-tools.js +884 -0
- package/dist/src/memory/bge-embedder.d.ts +25 -0
- package/dist/src/memory/bge-embedder.js +121 -0
- package/dist/src/memory/cross-encoder-rerank.d.ts +33 -0
- package/dist/src/memory/cross-encoder-rerank.js +123 -0
- package/dist/src/memory/embedding-policy.d.ts +21 -0
- package/dist/src/memory/embedding-policy.js +30 -0
- package/dist/src/memory/embedding-quantization.d.ts +62 -0
- package/dist/src/memory/embedding-quantization.js +156 -0
- package/dist/src/memory/ewc-consolidation.d.ts +305 -0
- package/dist/src/memory/ewc-consolidation.js +611 -0
- package/dist/src/memory/graph-edge-writer.d.ts +95 -0
- package/dist/src/memory/graph-edge-writer.js +217 -0
- package/dist/src/memory/hybrid-retrieval.d.ts +77 -0
- package/dist/src/memory/hybrid-retrieval.js +192 -0
- package/dist/src/memory/intelligence.d.ts +405 -0
- package/dist/src/memory/intelligence.js +1316 -0
- package/dist/src/memory/lucene-bm25.d.ts +19 -0
- package/dist/src/memory/lucene-bm25.js +308 -0
- package/dist/src/memory/memory-bridge.d.ts +537 -0
- package/dist/src/memory/memory-bridge.js +2460 -0
- package/dist/src/memory/memory-initializer.d.ts +556 -0
- package/dist/src/memory/memory-initializer.js +3021 -0
- package/dist/src/memory/neural-package-bridge.d.ts +48 -0
- package/dist/src/memory/neural-package-bridge.js +87 -0
- package/dist/src/memory/rabitq-index.d.ts +60 -0
- package/dist/src/memory/rabitq-index.js +242 -0
- package/dist/src/memory/sona-optimizer.d.ts +267 -0
- package/dist/src/memory/sona-optimizer.js +779 -0
- package/dist/src/memory/structured-distill.d.ts +48 -0
- package/dist/src/memory/structured-distill.js +125 -0
- package/dist/src/output.d.ts +9 -0
- package/dist/src/output.js +9 -0
- package/dist/src/parser.d.ts +89 -0
- package/dist/src/parser.js +516 -0
- package/dist/src/plugins/manager.d.ts +133 -0
- package/dist/src/plugins/manager.js +415 -0
- package/dist/src/plugins/store/discovery.d.ts +99 -0
- package/dist/src/plugins/store/discovery.js +1224 -0
- package/dist/src/plugins/store/index.d.ts +76 -0
- package/dist/src/plugins/store/index.js +141 -0
- package/dist/src/plugins/store/search.d.ts +46 -0
- package/dist/src/plugins/store/search.js +230 -0
- package/dist/src/plugins/store/types.d.ts +279 -0
- package/dist/src/plugins/store/types.js +7 -0
- package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
- package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
- package/dist/src/plugins/tests/standalone-test.js +188 -0
- package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/test-plugin-store.js +206 -0
- package/dist/src/production/circuit-breaker.d.ts +101 -0
- package/dist/src/production/circuit-breaker.js +241 -0
- package/dist/src/production/error-handler.d.ts +92 -0
- package/dist/src/production/error-handler.js +299 -0
- package/dist/src/production/index.d.ts +23 -0
- package/dist/src/production/index.js +18 -0
- package/dist/src/production/monitoring.d.ts +161 -0
- package/dist/src/production/monitoring.js +356 -0
- package/dist/src/production/rate-limiter.d.ts +80 -0
- package/dist/src/production/rate-limiter.js +201 -0
- package/dist/src/production/retry.d.ts +48 -0
- package/dist/src/production/retry.js +179 -0
- package/dist/src/prompt.d.ts +44 -0
- package/dist/src/prompt.js +501 -0
- package/dist/src/proxy/install.d.ts +29 -0
- package/dist/src/proxy/install.js +135 -0
- package/dist/src/proxy/lifecycle.d.ts +61 -0
- package/dist/src/proxy/lifecycle.js +249 -0
- package/dist/src/proxy/paths.d.ts +34 -0
- package/dist/src/proxy/paths.js +70 -0
- package/dist/src/proxy/release.d.ts +47 -0
- package/dist/src/proxy/release.js +138 -0
- package/dist/src/proxy/token-bridge.d.ts +5 -0
- package/dist/src/proxy/token-bridge.js +61 -0
- package/dist/src/proxy/verify.d.ts +44 -0
- package/dist/src/proxy/verify.js +68 -0
- package/dist/src/runtime/headless.d.ts +60 -0
- package/dist/src/runtime/headless.js +284 -0
- package/dist/src/runtime/parent-death-watchdog.d.ts +42 -0
- package/dist/src/runtime/parent-death-watchdog.js +70 -0
- package/dist/src/ruvector/agent-wasm.d.ts +228 -0
- package/dist/src/ruvector/agent-wasm.js +463 -0
- package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
- package/dist/src/ruvector/ast-analyzer.js +277 -0
- package/dist/src/ruvector/codemods/engine.d.ts +45 -0
- package/dist/src/ruvector/codemods/engine.js +291 -0
- package/dist/src/ruvector/codemods/scope-analysis.d.ts +29 -0
- package/dist/src/ruvector/codemods/scope-analysis.js +162 -0
- package/dist/src/ruvector/coverage-router.d.ts +160 -0
- package/dist/src/ruvector/coverage-router.js +531 -0
- package/dist/src/ruvector/coverage-tools.d.ts +33 -0
- package/dist/src/ruvector/coverage-tools.js +157 -0
- package/dist/src/ruvector/diff-classifier.d.ts +175 -0
- package/dist/src/ruvector/diff-classifier.js +699 -0
- package/dist/src/ruvector/diskann-backend.d.ts +78 -0
- package/dist/src/ruvector/diskann-backend.js +310 -0
- package/dist/src/ruvector/enhanced-model-router.d.ts +172 -0
- package/dist/src/ruvector/enhanced-model-router.js +577 -0
- package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
- package/dist/src/ruvector/graph-analyzer.js +929 -0
- package/dist/src/ruvector/graph-backend.d.ts +79 -0
- package/dist/src/ruvector/graph-backend.js +220 -0
- package/dist/src/ruvector/index.d.ts +38 -0
- package/dist/src/ruvector/index.js +86 -0
- package/dist/src/ruvector/lora-adapter.d.ts +292 -0
- package/dist/src/ruvector/lora-adapter.js +710 -0
- package/dist/src/ruvector/model-prices.d.ts +50 -0
- package/dist/src/ruvector/model-prices.js +72 -0
- package/dist/src/ruvector/model-router.d.ts +408 -0
- package/dist/src/ruvector/model-router.js +1162 -0
- package/dist/src/ruvector/neural-router.d.ts +182 -0
- package/dist/src/ruvector/neural-router.js +825 -0
- package/dist/src/ruvector/output-verifier.d.ts +83 -0
- package/dist/src/ruvector/output-verifier.js +277 -0
- package/dist/src/ruvector/q-learning-router.d.ts +227 -0
- package/dist/src/ruvector/q-learning-router.js +721 -0
- package/dist/src/ruvector/router-calibrator.d.ts +65 -0
- package/dist/src/ruvector/router-calibrator.js +120 -0
- package/dist/src/ruvector/router-parallel-recorder.d.ts +127 -0
- package/dist/src/ruvector/router-parallel-recorder.js +183 -0
- package/dist/src/ruvector/router-trajectory.d.ts +194 -0
- package/dist/src/ruvector/router-trajectory.js +281 -0
- package/dist/src/ruvector/run-transcript-recorder.d.ts +154 -0
- package/dist/src/ruvector/run-transcript-recorder.js +209 -0
- package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
- package/dist/src/ruvector/ruvllm-wasm.js +379 -0
- package/dist/src/ruvector/semantic-router.d.ts +77 -0
- package/dist/src/ruvector/semantic-router.js +178 -0
- package/dist/src/ruvector/task-embedder.d.ts +56 -0
- package/dist/src/ruvector/task-embedder.js +237 -0
- package/dist/src/ruvector/trajectory-tree.d.ts +113 -0
- package/dist/src/ruvector/trajectory-tree.js +237 -0
- package/dist/src/ruvector/vector-db.d.ts +73 -0
- package/dist/src/ruvector/vector-db.js +301 -0
- package/dist/src/ruvector/wasm-embedder.d.ts +13 -0
- package/dist/src/ruvector/wasm-embedder.js +143 -0
- package/dist/src/security/builtin-aidefence.d.ts +34 -0
- package/dist/src/security/builtin-aidefence.js +86 -0
- package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
- package/dist/src/services/agentic-flow-bridge.js +95 -0
- package/dist/src/services/ai-job-dedup.d.ts +61 -0
- package/dist/src/services/ai-job-dedup.js +136 -0
- package/dist/src/services/checkpoint-gate.d.ts +140 -0
- package/dist/src/services/checkpoint-gate.js +223 -0
- package/dist/src/services/claim-service.d.ts +204 -0
- package/dist/src/services/claim-service.js +818 -0
- package/dist/src/services/config-file-manager.d.ts +37 -0
- package/dist/src/services/config-file-manager.js +224 -0
- package/dist/src/services/container-worker-pool.d.ts +204 -0
- package/dist/src/services/container-worker-pool.js +589 -0
- package/dist/src/services/daemon-autostart.d.ts +17 -0
- package/dist/src/services/daemon-autostart.js +102 -0
- package/dist/src/services/distill-oracle.d.ts +190 -0
- package/dist/src/services/distill-oracle.js +349 -0
- package/dist/src/services/distill-tuning.d.ts +111 -0
- package/dist/src/services/distill-tuning.js +510 -0
- package/dist/src/services/evolve-proof.d.ts +253 -0
- package/dist/src/services/evolve-proof.js +343 -0
- package/dist/src/services/fable-harness.d.ts +208 -0
- package/dist/src/services/fable-harness.js +388 -0
- package/dist/src/services/git-workspace-identity.d.ts +42 -0
- package/dist/src/services/git-workspace-identity.js +99 -0
- package/dist/src/services/global-ai-budget.d.ts +135 -0
- package/dist/src/services/global-ai-budget.js +415 -0
- package/dist/src/services/harness-benchmark.d.ts +68 -0
- package/dist/src/services/harness-benchmark.js +94 -0
- package/dist/src/services/harness-canary.d.ts +60 -0
- package/dist/src/services/harness-canary.js +69 -0
- package/dist/src/services/harness-corpus-harvester.d.ts +51 -0
- package/dist/src/services/harness-corpus-harvester.js +74 -0
- package/dist/src/services/harness-flywheel-generations.d.ts +115 -0
- package/dist/src/services/harness-flywheel-generations.js +360 -0
- package/dist/src/services/harness-flywheel-runtime.d.ts +25 -0
- package/dist/src/services/harness-flywheel-runtime.js +92 -0
- package/dist/src/services/harness-flywheel.d.ts +48 -0
- package/dist/src/services/harness-flywheel.js +207 -0
- package/dist/src/services/harness-frozen-eval.d.ts +22 -0
- package/dist/src/services/harness-frozen-eval.js +66 -0
- package/dist/src/services/harness-hosts.d.ts +40 -0
- package/dist/src/services/harness-hosts.js +88 -0
- package/dist/src/services/harness-improvement-ledger.d.ts +63 -0
- package/dist/src/services/harness-improvement-ledger.js +101 -0
- package/dist/src/services/harness-loop.d.ts +53 -0
- package/dist/src/services/harness-loop.js +85 -0
- package/dist/src/services/harness-qualification.d.ts +66 -0
- package/dist/src/services/harness-qualification.js +143 -0
- package/dist/src/services/harness-replay.d.ts +37 -0
- package/dist/src/services/harness-replay.js +92 -0
- package/dist/src/services/harness-verify.d.ts +33 -0
- package/dist/src/services/harness-verify.js +26 -0
- package/dist/src/services/harness-worker.d.ts +23 -0
- package/dist/src/services/harness-worker.js +66 -0
- package/dist/src/services/headless-worker-executor.d.ts +358 -0
- package/dist/src/services/headless-worker-executor.js +1269 -0
- package/dist/src/services/index.d.ts +13 -0
- package/dist/src/services/index.js +11 -0
- package/dist/src/services/memory-backup.d.ts +53 -0
- package/dist/src/services/memory-backup.js +198 -0
- package/dist/src/services/memory-distillation.d.ts +41 -0
- package/dist/src/services/memory-distillation.js +277 -0
- package/dist/src/services/native-training.d.ts +68 -0
- package/dist/src/services/native-training.js +141 -0
- package/dist/src/services/registry-api.d.ts +58 -0
- package/dist/src/services/registry-api.js +146 -0
- package/dist/src/services/repo-supervisor.d.ts +70 -0
- package/dist/src/services/repo-supervisor.js +228 -0
- package/dist/src/services/ruvector-training.d.ts +222 -0
- package/dist/src/services/ruvector-training.js +693 -0
- package/dist/src/services/swarm-memory-branches.d.ts +135 -0
- package/dist/src/services/swarm-memory-branches.js +213 -0
- package/dist/src/services/weight-eft.d.ts +305 -0
- package/dist/src/services/weight-eft.js +296 -0
- package/dist/src/services/worker-daemon.d.ts +439 -0
- package/dist/src/services/worker-daemon.js +1865 -0
- package/dist/src/services/worker-queue.d.ts +194 -0
- package/dist/src/services/worker-queue.js +513 -0
- package/dist/src/services/workspace-lease.d.ts +55 -0
- package/dist/src/services/workspace-lease.js +191 -0
- package/dist/src/suggest.d.ts +53 -0
- package/dist/src/suggest.js +200 -0
- package/dist/src/transfer/anonymization/index.d.ts +25 -0
- package/dist/src/transfer/anonymization/index.js +175 -0
- package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
- package/dist/src/transfer/deploy-seraphine.js +205 -0
- package/dist/src/transfer/export.d.ts +25 -0
- package/dist/src/transfer/export.js +113 -0
- package/dist/src/transfer/index.d.ts +12 -0
- package/dist/src/transfer/index.js +31 -0
- package/dist/src/transfer/ipfs/client.d.ts +109 -0
- package/dist/src/transfer/ipfs/client.js +307 -0
- package/dist/src/transfer/ipfs/upload.d.ts +95 -0
- package/dist/src/transfer/ipfs/upload.js +413 -0
- package/dist/src/transfer/models/seraphine.d.ts +72 -0
- package/dist/src/transfer/models/seraphine.js +373 -0
- package/dist/src/transfer/serialization/cfp.d.ts +49 -0
- package/dist/src/transfer/serialization/cfp.js +183 -0
- package/dist/src/transfer/storage/gcs.d.ts +82 -0
- package/dist/src/transfer/storage/gcs.js +272 -0
- package/dist/src/transfer/storage/index.d.ts +6 -0
- package/dist/src/transfer/storage/index.js +6 -0
- package/dist/src/transfer/store/discovery.d.ts +84 -0
- package/dist/src/transfer/store/discovery.js +382 -0
- package/dist/src/transfer/store/download.d.ts +70 -0
- package/dist/src/transfer/store/download.js +334 -0
- package/dist/src/transfer/store/index.d.ts +84 -0
- package/dist/src/transfer/store/index.js +153 -0
- package/dist/src/transfer/store/publish.d.ts +76 -0
- package/dist/src/transfer/store/publish.js +294 -0
- package/dist/src/transfer/store/registry.d.ts +58 -0
- package/dist/src/transfer/store/registry.js +285 -0
- package/dist/src/transfer/store/search.d.ts +54 -0
- package/dist/src/transfer/store/search.js +232 -0
- package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
- package/dist/src/transfer/store/tests/standalone-test.js +190 -0
- package/dist/src/transfer/store/types.d.ts +193 -0
- package/dist/src/transfer/store/types.js +6 -0
- package/dist/src/transfer/test-seraphine.d.ts +6 -0
- package/dist/src/transfer/test-seraphine.js +105 -0
- package/dist/src/transfer/tests/test-store.d.ts +7 -0
- package/dist/src/transfer/tests/test-store.js +214 -0
- package/dist/src/transfer/types.d.ts +245 -0
- package/dist/src/transfer/types.js +6 -0
- package/dist/src/types.d.ts +13 -0
- package/dist/src/types.js +13 -0
- package/dist/src/update/checker.d.ts +34 -0
- package/dist/src/update/checker.js +191 -0
- package/dist/src/update/executor.d.ts +33 -0
- package/dist/src/update/executor.js +217 -0
- package/dist/src/update/index.d.ts +33 -0
- package/dist/src/update/index.js +64 -0
- package/dist/src/update/rate-limiter.d.ts +20 -0
- package/dist/src/update/rate-limiter.js +96 -0
- package/dist/src/update/validator.d.ts +17 -0
- package/dist/src/update/validator.js +123 -0
- package/package.json +1 -1
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security MCP Tools - AIDefence Integration
|
|
3
|
+
*
|
|
4
|
+
* Provides MCP tools for AI manipulation defense:
|
|
5
|
+
* - aidefence_scan: Scan input for threats
|
|
6
|
+
* - aidefence_analyze: Deep analysis of threats
|
|
7
|
+
* - aidefence_stats: Get detection statistics
|
|
8
|
+
* - aidefence_learn: Learn from detection feedback
|
|
9
|
+
*
|
|
10
|
+
* Created with ❤️ by ruv.io
|
|
11
|
+
*/
|
|
12
|
+
import { validateText, validateIdentifier } from './validate-input.js';
|
|
13
|
+
import { autoInstallPackage } from './auto-install.js';
|
|
14
|
+
import { createRequire } from 'module';
|
|
15
|
+
// Create require for resolving module paths
|
|
16
|
+
const require = createRequire(import.meta.url);
|
|
17
|
+
// Lazy-loaded AIDefence instance
|
|
18
|
+
let aidefenceInstance = null;
|
|
19
|
+
// Track if we've attempted install this session
|
|
20
|
+
let installAttempted = false;
|
|
21
|
+
// ADR-093 follow-up: wrapper-level counters for the lightweight aidefence
|
|
22
|
+
// tools (has_pii, is_safe, scan-quick) that bypass the package's own
|
|
23
|
+
// stats tracking. The audit flagged that aidefence_stats stayed at zero
|
|
24
|
+
// regardless of detections from these paths. Stats now combine the
|
|
25
|
+
// underlying defender.getStats() with our wrapper counters so the user
|
|
26
|
+
// sees a true reflection of how often each tool category fired.
|
|
27
|
+
const wrapperStats = {
|
|
28
|
+
hasPiiCalls: 0,
|
|
29
|
+
hasPiiHits: 0,
|
|
30
|
+
isSafeCalls: 0,
|
|
31
|
+
isSafeUnsafeVerdicts: 0,
|
|
32
|
+
quickScanCalls: 0,
|
|
33
|
+
quickScanThreats: 0,
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Get or create AIDefence instance (throws if unavailable)
|
|
37
|
+
*/
|
|
38
|
+
async function getAIDefence() {
|
|
39
|
+
if (aidefenceInstance) {
|
|
40
|
+
return aidefenceInstance;
|
|
41
|
+
}
|
|
42
|
+
const packageName = '@claude-flow/aidefence';
|
|
43
|
+
// First attempt - try to load via dynamic import (ESM)
|
|
44
|
+
try {
|
|
45
|
+
const aidefence = await import(packageName);
|
|
46
|
+
const instance = aidefence.createAIDefence({ enableLearning: true });
|
|
47
|
+
if (!instance) {
|
|
48
|
+
throw new Error('createAIDefence returned null');
|
|
49
|
+
}
|
|
50
|
+
aidefenceInstance = instance;
|
|
51
|
+
return instance;
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
// Package not found or failed to load
|
|
55
|
+
const error = e;
|
|
56
|
+
if (!error.message?.includes('Cannot find package') && !error.message?.includes('ERR_MODULE_NOT_FOUND')) {
|
|
57
|
+
// Different error - might be a real issue
|
|
58
|
+
throw new Error(`AIDefence failed to load: ${error.message}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Don't attempt install more than once per session
|
|
62
|
+
if (installAttempted) {
|
|
63
|
+
throw new Error('AIDefence package not available. Install with: npm install @claude-flow/aidefence');
|
|
64
|
+
}
|
|
65
|
+
installAttempted = true;
|
|
66
|
+
// Second attempt - auto-install and retry
|
|
67
|
+
console.error(`[claude-flow] ${packageName} not found, attempting auto-install...`);
|
|
68
|
+
const installed = await autoInstallPackage(packageName);
|
|
69
|
+
if (!installed) {
|
|
70
|
+
throw new Error('AIDefence package not available. Install with: npm install @claude-flow/aidefence');
|
|
71
|
+
}
|
|
72
|
+
// #1807 — auto-install lands the package somewhere Node's standard
|
|
73
|
+
// resolver couldn't find on the FIRST attempt (npm-global installs are
|
|
74
|
+
// a common offender). Try Node's resolver again first (it may have
|
|
75
|
+
// picked up the new node_modules directory), then fall back to the
|
|
76
|
+
// file:// + cache-bust import dance, then surface a clearly actionable
|
|
77
|
+
// error if everything still fails.
|
|
78
|
+
// Plain re-import (covers project-local installs that landed where Node
|
|
79
|
+
// looks). This often succeeds where the first attempt failed because
|
|
80
|
+
// the module cache is stable across the await boundary.
|
|
81
|
+
try {
|
|
82
|
+
const aidefence = await import(packageName);
|
|
83
|
+
const instance = aidefence.createAIDefence({ enableLearning: true });
|
|
84
|
+
if (instance) {
|
|
85
|
+
aidefenceInstance = instance;
|
|
86
|
+
console.error(`[claude-flow] ${packageName} loaded after install (resolver path)`);
|
|
87
|
+
return instance;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch { /* fall through to file:// attempt */ }
|
|
91
|
+
// file:// + cache-bust attempt (covers globally-installed packages whose
|
|
92
|
+
// path the standard resolver missed but require.resolve can locate).
|
|
93
|
+
try {
|
|
94
|
+
const modulePath = require.resolve(packageName);
|
|
95
|
+
const cacheBust = `?t=${Date.now()}`;
|
|
96
|
+
const aidefence = await import(`file://${modulePath}${cacheBust}`);
|
|
97
|
+
const instance = aidefence.createAIDefence({ enableLearning: true });
|
|
98
|
+
if (!instance) {
|
|
99
|
+
throw new Error('createAIDefence returned null after install');
|
|
100
|
+
}
|
|
101
|
+
aidefenceInstance = instance;
|
|
102
|
+
console.error(`[claude-flow] ${packageName} loaded after install (file:// path)`);
|
|
103
|
+
return instance;
|
|
104
|
+
}
|
|
105
|
+
catch (retryError) {
|
|
106
|
+
throw new Error(`AIDefence installed but failed to load: ${retryError}.\n` +
|
|
107
|
+
`This usually means npm installed the package somewhere Node's module resolver doesn't search ` +
|
|
108
|
+
`(common with global installs of \`claude-flow\`). Recovery options:\n` +
|
|
109
|
+
` 1. Run \`npm install --save @claude-flow/aidefence\` in your project's working directory.\n` +
|
|
110
|
+
` 2. Or run \`npx ruflo@latest mcp start\` from a directory whose node_modules contains the package.\n` +
|
|
111
|
+
` 3. Or restart the MCP server after the install completes.`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Scan input for AI manipulation threats
|
|
116
|
+
*/
|
|
117
|
+
const aidefenceScanTool = {
|
|
118
|
+
name: 'aidefence_scan',
|
|
119
|
+
description: 'Scan input text for AI manipulation threats (prompt injection, jailbreaks, PII). Returns threat assessment with <10ms latency. Use when nothing native exists — Claude Code does not have a PII / prompt-injection / adversarial-text scanner. Pair with any tool that ingests untrusted input (browser scrape, federation envelope, memory_import_claude).',
|
|
120
|
+
inputSchema: {
|
|
121
|
+
type: 'object',
|
|
122
|
+
properties: {
|
|
123
|
+
input: {
|
|
124
|
+
type: 'string',
|
|
125
|
+
description: 'Text to scan for threats',
|
|
126
|
+
},
|
|
127
|
+
quick: {
|
|
128
|
+
type: 'boolean',
|
|
129
|
+
description: 'Quick scan mode (faster, less detailed)',
|
|
130
|
+
default: false,
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
required: ['input'],
|
|
134
|
+
},
|
|
135
|
+
handler: async (args) => {
|
|
136
|
+
{
|
|
137
|
+
const v = validateText(args.input, 'input');
|
|
138
|
+
if (!v.valid)
|
|
139
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: v.error }) }], isError: true };
|
|
140
|
+
}
|
|
141
|
+
const input = args.input;
|
|
142
|
+
const quick = args.quick;
|
|
143
|
+
try {
|
|
144
|
+
const defender = await getAIDefence();
|
|
145
|
+
if (quick) {
|
|
146
|
+
const result = defender.quickScan(input);
|
|
147
|
+
// Audit-flagged: quickScan focuses on prompt-injection/jailbreak
|
|
148
|
+
// patterns and missed obvious PII (email + API key). Layer a fast
|
|
149
|
+
// PII check so quick mode catches both threat classes.
|
|
150
|
+
let piiPresent = false;
|
|
151
|
+
try {
|
|
152
|
+
piiPresent = !!defender.hasPII(input);
|
|
153
|
+
}
|
|
154
|
+
catch { /* hasPII unavailable */ }
|
|
155
|
+
const threatDetected = result.threat || piiPresent;
|
|
156
|
+
wrapperStats.quickScanCalls++;
|
|
157
|
+
if (threatDetected)
|
|
158
|
+
wrapperStats.quickScanThreats++;
|
|
159
|
+
return {
|
|
160
|
+
content: [{
|
|
161
|
+
type: 'text',
|
|
162
|
+
text: JSON.stringify({
|
|
163
|
+
safe: !threatDetected,
|
|
164
|
+
threatDetected,
|
|
165
|
+
confidence: result.confidence,
|
|
166
|
+
piiDetected: piiPresent,
|
|
167
|
+
promptInjectionDetected: result.threat,
|
|
168
|
+
mode: 'quick',
|
|
169
|
+
}, null, 2),
|
|
170
|
+
}],
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
const result = await defender.detect(input);
|
|
174
|
+
return {
|
|
175
|
+
content: [{
|
|
176
|
+
type: 'text',
|
|
177
|
+
text: JSON.stringify({
|
|
178
|
+
safe: result.safe,
|
|
179
|
+
threats: result.threats.map(t => ({
|
|
180
|
+
type: t.type,
|
|
181
|
+
severity: t.severity,
|
|
182
|
+
confidence: t.confidence,
|
|
183
|
+
description: t.description,
|
|
184
|
+
})),
|
|
185
|
+
piiFound: result.piiFound,
|
|
186
|
+
detectionTimeMs: result.detectionTimeMs,
|
|
187
|
+
}, null, 2),
|
|
188
|
+
}],
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
return {
|
|
193
|
+
content: [{
|
|
194
|
+
type: 'text',
|
|
195
|
+
text: JSON.stringify({ error: String(error) }),
|
|
196
|
+
}],
|
|
197
|
+
isError: true,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Deep analysis of specific threat
|
|
204
|
+
*/
|
|
205
|
+
const aidefenceAnalyzeTool = {
|
|
206
|
+
name: 'aidefence_analyze',
|
|
207
|
+
description: 'Deep analysis of input for specific threat types with similar pattern search and mitigation recommendations. Use when nothing native exists — Claude Code does not have a PII / prompt-injection / adversarial-text scanner. Pair with any tool that ingests untrusted input (browser scrape, federation envelope, memory_import_claude).',
|
|
208
|
+
inputSchema: {
|
|
209
|
+
type: 'object',
|
|
210
|
+
properties: {
|
|
211
|
+
input: {
|
|
212
|
+
type: 'string',
|
|
213
|
+
description: 'Text to analyze',
|
|
214
|
+
},
|
|
215
|
+
searchSimilar: {
|
|
216
|
+
type: 'boolean',
|
|
217
|
+
description: 'Search for similar known threats',
|
|
218
|
+
default: true,
|
|
219
|
+
},
|
|
220
|
+
k: {
|
|
221
|
+
type: 'number',
|
|
222
|
+
description: 'Number of similar patterns to retrieve',
|
|
223
|
+
default: 5,
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
required: ['input'],
|
|
227
|
+
},
|
|
228
|
+
handler: async (args) => {
|
|
229
|
+
{
|
|
230
|
+
const v = validateText(args.input, 'input');
|
|
231
|
+
if (!v.valid)
|
|
232
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: v.error }) }], isError: true };
|
|
233
|
+
}
|
|
234
|
+
const input = args.input;
|
|
235
|
+
const searchSimilar = args.searchSimilar !== false;
|
|
236
|
+
const k = args.k || 5;
|
|
237
|
+
try {
|
|
238
|
+
const defender = await getAIDefence();
|
|
239
|
+
const result = await defender.detect(input);
|
|
240
|
+
const analysis = {
|
|
241
|
+
detection: {
|
|
242
|
+
safe: result.safe,
|
|
243
|
+
threats: result.threats,
|
|
244
|
+
piiFound: result.piiFound,
|
|
245
|
+
},
|
|
246
|
+
mitigations: [],
|
|
247
|
+
similarPatterns: [],
|
|
248
|
+
};
|
|
249
|
+
// Get mitigations for detected threats
|
|
250
|
+
for (const threat of result.threats) {
|
|
251
|
+
const mitigation = await defender.getBestMitigation(threat.type);
|
|
252
|
+
if (mitigation) {
|
|
253
|
+
analysis.mitigations.push({
|
|
254
|
+
threatType: threat.type,
|
|
255
|
+
strategy: mitigation.strategy,
|
|
256
|
+
effectiveness: mitigation.effectiveness,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// Search similar patterns
|
|
261
|
+
if (searchSimilar) {
|
|
262
|
+
const similar = await defender.searchSimilarThreats(input, { k });
|
|
263
|
+
analysis.similarPatterns = similar.map(p => ({
|
|
264
|
+
pattern: p.pattern,
|
|
265
|
+
type: p.type,
|
|
266
|
+
effectiveness: p.effectiveness,
|
|
267
|
+
}));
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
content: [{
|
|
271
|
+
type: 'text',
|
|
272
|
+
text: JSON.stringify(analysis, null, 2),
|
|
273
|
+
}],
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
return {
|
|
278
|
+
content: [{
|
|
279
|
+
type: 'text',
|
|
280
|
+
text: JSON.stringify({ error: String(error) }),
|
|
281
|
+
}],
|
|
282
|
+
isError: true,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Get detection statistics
|
|
289
|
+
*/
|
|
290
|
+
const aidefenceStatsTool = {
|
|
291
|
+
name: 'aidefence_stats',
|
|
292
|
+
description: 'Get AIDefence detection and learning statistics. Use when nothing native exists — Claude Code does not have a PII / prompt-injection / adversarial-text scanner. Pair with any tool that ingests untrusted input (browser scrape, federation envelope, memory_import_claude).',
|
|
293
|
+
inputSchema: {
|
|
294
|
+
type: 'object',
|
|
295
|
+
properties: {},
|
|
296
|
+
},
|
|
297
|
+
handler: async () => {
|
|
298
|
+
try {
|
|
299
|
+
const defender = await getAIDefence();
|
|
300
|
+
const stats = await defender.getStats();
|
|
301
|
+
return {
|
|
302
|
+
content: [{
|
|
303
|
+
type: 'text',
|
|
304
|
+
text: JSON.stringify({
|
|
305
|
+
// Underlying defender stats (from full detect() calls via aidefence_scan/aidefence_analyze)
|
|
306
|
+
detectionCount: stats.detectionCount,
|
|
307
|
+
avgDetectionTimeMs: stats.avgDetectionTimeMs,
|
|
308
|
+
learnedPatterns: stats.learnedPatterns,
|
|
309
|
+
mitigationStrategies: stats.mitigationStrategies,
|
|
310
|
+
avgMitigationEffectiveness: stats.avgMitigationEffectiveness,
|
|
311
|
+
// ADR-093 follow-up: wrapper-level stats for the lightweight
|
|
312
|
+
// tools that bypass the defender's own counters. Audit found
|
|
313
|
+
// these stayed at 0 even after has_pii/is_safe/scan-quick
|
|
314
|
+
// calls — these counters surface real activity.
|
|
315
|
+
wrapper: {
|
|
316
|
+
hasPiiCalls: wrapperStats.hasPiiCalls,
|
|
317
|
+
hasPiiHits: wrapperStats.hasPiiHits,
|
|
318
|
+
isSafeCalls: wrapperStats.isSafeCalls,
|
|
319
|
+
isSafeUnsafeVerdicts: wrapperStats.isSafeUnsafeVerdicts,
|
|
320
|
+
quickScanCalls: wrapperStats.quickScanCalls,
|
|
321
|
+
quickScanThreats: wrapperStats.quickScanThreats,
|
|
322
|
+
},
|
|
323
|
+
}, null, 2),
|
|
324
|
+
}],
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
return {
|
|
329
|
+
content: [{
|
|
330
|
+
type: 'text',
|
|
331
|
+
text: JSON.stringify({ error: String(error) }),
|
|
332
|
+
}],
|
|
333
|
+
isError: true,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
};
|
|
338
|
+
/**
|
|
339
|
+
* Record detection feedback for learning
|
|
340
|
+
*/
|
|
341
|
+
const aidefenceLearnTool = {
|
|
342
|
+
name: 'aidefence_learn',
|
|
343
|
+
description: 'Record detection feedback for pattern learning. Improves future detection accuracy. Use when nothing native exists — Claude Code does not have a PII / prompt-injection / adversarial-text scanner. Pair with any tool that ingests untrusted input (browser scrape, federation envelope, memory_import_claude).',
|
|
344
|
+
inputSchema: {
|
|
345
|
+
type: 'object',
|
|
346
|
+
properties: {
|
|
347
|
+
input: {
|
|
348
|
+
type: 'string',
|
|
349
|
+
description: 'Original input that was scanned',
|
|
350
|
+
},
|
|
351
|
+
wasAccurate: {
|
|
352
|
+
type: 'boolean',
|
|
353
|
+
description: 'Whether the detection was accurate',
|
|
354
|
+
},
|
|
355
|
+
verdict: {
|
|
356
|
+
type: 'string',
|
|
357
|
+
description: 'User verdict or correction',
|
|
358
|
+
},
|
|
359
|
+
threatType: {
|
|
360
|
+
type: 'string',
|
|
361
|
+
description: 'Threat type for mitigation recording',
|
|
362
|
+
},
|
|
363
|
+
mitigationStrategy: {
|
|
364
|
+
type: 'string',
|
|
365
|
+
description: 'Mitigation strategy used',
|
|
366
|
+
enum: ['block', 'sanitize', 'warn', 'log', 'escalate', 'transform', 'redirect'],
|
|
367
|
+
},
|
|
368
|
+
mitigationSuccess: {
|
|
369
|
+
type: 'boolean',
|
|
370
|
+
description: 'Whether the mitigation was successful',
|
|
371
|
+
},
|
|
372
|
+
},
|
|
373
|
+
required: ['input', 'wasAccurate'],
|
|
374
|
+
},
|
|
375
|
+
handler: async (args) => {
|
|
376
|
+
{
|
|
377
|
+
const v = validateText(args.input, 'input');
|
|
378
|
+
if (!v.valid)
|
|
379
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: v.error }) }], isError: true };
|
|
380
|
+
}
|
|
381
|
+
if (args.verdict) {
|
|
382
|
+
const v = validateText(args.verdict, 'verdict');
|
|
383
|
+
if (!v.valid)
|
|
384
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: v.error }) }], isError: true };
|
|
385
|
+
}
|
|
386
|
+
if (args.threatType) {
|
|
387
|
+
const v = validateIdentifier(args.threatType, 'threatType');
|
|
388
|
+
if (!v.valid)
|
|
389
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: v.error }) }], isError: true };
|
|
390
|
+
}
|
|
391
|
+
const input = args.input;
|
|
392
|
+
const wasAccurate = args.wasAccurate;
|
|
393
|
+
const verdict = args.verdict;
|
|
394
|
+
const threatType = args.threatType;
|
|
395
|
+
const mitigationStrategy = args.mitigationStrategy;
|
|
396
|
+
const mitigationSuccess = args.mitigationSuccess;
|
|
397
|
+
try {
|
|
398
|
+
const defender = await getAIDefence();
|
|
399
|
+
// Re-detect to get result for learning
|
|
400
|
+
const result = await defender.detect(input);
|
|
401
|
+
// Learn from detection
|
|
402
|
+
await defender.learnFromDetection(input, result, {
|
|
403
|
+
wasAccurate,
|
|
404
|
+
userVerdict: verdict,
|
|
405
|
+
});
|
|
406
|
+
// Record mitigation if provided
|
|
407
|
+
if (threatType && mitigationStrategy && mitigationSuccess !== undefined) {
|
|
408
|
+
await defender.recordMitigation(threatType, mitigationStrategy, mitigationSuccess);
|
|
409
|
+
}
|
|
410
|
+
return {
|
|
411
|
+
content: [{
|
|
412
|
+
type: 'text',
|
|
413
|
+
text: JSON.stringify({
|
|
414
|
+
success: true,
|
|
415
|
+
message: 'Feedback recorded for pattern learning',
|
|
416
|
+
learnedFrom: {
|
|
417
|
+
input: input.slice(0, 50) + (input.length > 50 ? '...' : ''),
|
|
418
|
+
wasAccurate,
|
|
419
|
+
threatCount: result.threats.length,
|
|
420
|
+
},
|
|
421
|
+
}, null, 2),
|
|
422
|
+
}],
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
return {
|
|
427
|
+
content: [{
|
|
428
|
+
type: 'text',
|
|
429
|
+
text: JSON.stringify({ error: String(error) }),
|
|
430
|
+
}],
|
|
431
|
+
isError: true,
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
};
|
|
436
|
+
/**
|
|
437
|
+
* Check if input is safe (simple boolean check)
|
|
438
|
+
*/
|
|
439
|
+
const aidefenceIsSafeTool = {
|
|
440
|
+
name: 'aidefence_is_safe',
|
|
441
|
+
description: 'Quick boolean check if input is safe. Fastest option for simple validation. Use when nothing native exists — Claude Code does not have a PII / prompt-injection / adversarial-text scanner. Pair with any tool that ingests untrusted input (browser scrape, federation envelope, memory_import_claude).',
|
|
442
|
+
inputSchema: {
|
|
443
|
+
type: 'object',
|
|
444
|
+
properties: {
|
|
445
|
+
input: {
|
|
446
|
+
type: 'string',
|
|
447
|
+
description: 'Text to check',
|
|
448
|
+
},
|
|
449
|
+
},
|
|
450
|
+
required: ['input'],
|
|
451
|
+
},
|
|
452
|
+
handler: async (args) => {
|
|
453
|
+
{
|
|
454
|
+
const v = validateText(args.input, 'input');
|
|
455
|
+
if (!v.valid)
|
|
456
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: v.error }) }], isError: true };
|
|
457
|
+
}
|
|
458
|
+
const input = args.input;
|
|
459
|
+
try {
|
|
460
|
+
// Route through the singleton so wrapper stats track this call,
|
|
461
|
+
// and so a single defender controls both the prompt-injection model
|
|
462
|
+
// and the PII detector.
|
|
463
|
+
const defender = await getAIDefence();
|
|
464
|
+
const { isSafe } = await import('@claude-flow/aidefence');
|
|
465
|
+
const promptSafe = isSafe(input);
|
|
466
|
+
let piiPresent = false;
|
|
467
|
+
try {
|
|
468
|
+
piiPresent = !!defender.hasPII(input);
|
|
469
|
+
}
|
|
470
|
+
catch { /* hasPII unavailable */ }
|
|
471
|
+
const safe = promptSafe && !piiPresent;
|
|
472
|
+
wrapperStats.isSafeCalls++;
|
|
473
|
+
if (!safe)
|
|
474
|
+
wrapperStats.isSafeUnsafeVerdicts++;
|
|
475
|
+
return {
|
|
476
|
+
content: [{
|
|
477
|
+
type: 'text',
|
|
478
|
+
text: JSON.stringify({
|
|
479
|
+
safe,
|
|
480
|
+
promptSafe,
|
|
481
|
+
piiPresent,
|
|
482
|
+
}, null, 2),
|
|
483
|
+
}],
|
|
484
|
+
};
|
|
485
|
+
}
|
|
486
|
+
catch (error) {
|
|
487
|
+
return {
|
|
488
|
+
content: [{
|
|
489
|
+
type: 'text',
|
|
490
|
+
text: JSON.stringify({ error: String(error) }),
|
|
491
|
+
}],
|
|
492
|
+
isError: true,
|
|
493
|
+
};
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
};
|
|
497
|
+
/**
|
|
498
|
+
* Check for PII in input
|
|
499
|
+
*/
|
|
500
|
+
const aidefenceHasPIITool = {
|
|
501
|
+
name: 'aidefence_has_pii',
|
|
502
|
+
description: 'Check if input contains PII (emails, SSNs, API keys, passwords, etc.). Use when nothing native exists — Claude Code does not have a PII / prompt-injection / adversarial-text scanner. Pair with any tool that ingests untrusted input (browser scrape, federation envelope, memory_import_claude).',
|
|
503
|
+
inputSchema: {
|
|
504
|
+
type: 'object',
|
|
505
|
+
properties: {
|
|
506
|
+
input: {
|
|
507
|
+
type: 'string',
|
|
508
|
+
description: 'Text to check for PII',
|
|
509
|
+
},
|
|
510
|
+
},
|
|
511
|
+
required: ['input'],
|
|
512
|
+
},
|
|
513
|
+
handler: async (args) => {
|
|
514
|
+
{
|
|
515
|
+
const v = validateText(args.input, 'input');
|
|
516
|
+
if (!v.valid)
|
|
517
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: v.error }) }], isError: true };
|
|
518
|
+
}
|
|
519
|
+
const input = args.input;
|
|
520
|
+
try {
|
|
521
|
+
const defender = await getAIDefence();
|
|
522
|
+
const hasPII = defender.hasPII(input);
|
|
523
|
+
wrapperStats.hasPiiCalls++;
|
|
524
|
+
if (hasPII)
|
|
525
|
+
wrapperStats.hasPiiHits++;
|
|
526
|
+
return {
|
|
527
|
+
content: [{
|
|
528
|
+
type: 'text',
|
|
529
|
+
text: JSON.stringify({ hasPII }, null, 2),
|
|
530
|
+
}],
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
catch (error) {
|
|
534
|
+
return {
|
|
535
|
+
content: [{
|
|
536
|
+
type: 'text',
|
|
537
|
+
text: JSON.stringify({ error: String(error) }),
|
|
538
|
+
}],
|
|
539
|
+
isError: true,
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
};
|
|
544
|
+
/**
|
|
545
|
+
* Export all security tools
|
|
546
|
+
*/
|
|
547
|
+
export const securityTools = [
|
|
548
|
+
aidefenceScanTool,
|
|
549
|
+
aidefenceAnalyzeTool,
|
|
550
|
+
aidefenceStatsTool,
|
|
551
|
+
aidefenceLearnTool,
|
|
552
|
+
aidefenceIsSafeTool,
|
|
553
|
+
aidefenceHasPIITool,
|
|
554
|
+
];
|
|
555
|
+
export default securityTools;
|
|
556
|
+
//# sourceMappingURL=security-tools.js.map
|