@claude-flow/cli
Ruflo CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| install-scripts | install-script:postinstall | AI (install-scripts): Postinstall only copies agentdb dist subdirectory to fix path mismatch; no network access or arbitrary code execution. | ai | |
| typosquat | typosquat.levenshtein:joi | AI (typosquat): Scoped package @claude-flow/cli; levenshtein match to 'joi' is a false positive with no impersonation intent. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require in hook-handler.cjs is a module-loader helper; consistent with CLI plugin/hook architecture. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): child_process in statusline.cjs is expected for a CLI tool displaying system status information. | ai |
v3.6.10
2 findingsScript: node -e "const{existsSync,cpSync,readdirSync}=require('fs');const{join,dirname}=require('path');try{const r=require.resolve('agentdb');const base=r.includes('dist/src')?join(dirname(r),'..','..'):(r.includes('dist')?join(dirname(r),'..'):dirname(r));const s=join(base,'dist','src','controllers');const t=join(base,'dist','controllers');if(existsSync(s)&&!existsSync(t)){cpSync(s,t,{recursive:true});}}catch{}"
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.5.50
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.