← Home

@fancyrobot/fred

Fred AI agent framework - core package

5
Versions
MIT
License
No
Install Scripts
Missing
Provenance

Supply chain provenance

Status for the latest visible version.

No SLSA provenance npm registry signatures No source commit

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

sincspecv

Keywords

aiagentsframeworkeffecttypescript

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
semgrep semgrep:env-spread AI (semgrep): env-spread is used to pass environment to a spawned subprocess in stdio transport — standard and intentional pattern. ai
semgrep semgrep:etc-passwd-access AI (semgrep): Hit is inside a code comment explaining path traversal prevention, not actual /etc/passwd access. ai
semgrep semgrep:base64-decode AI (semgrep): Legitimate deserialization of Uint8Array in a storage serialization module, not payload hiding. ai
semgrep semgrep:api-obfuscation-reflect AI (semgrep): Standard Proxy trap pattern using Reflect.get for symbol properties; not obfuscation. ai

Versions (showing 5 of 5)

Version Deps Published
1.0.0 4 / 4
0.2.2 3 / 4
0.2.1 3 / 4
0.2.0 3 / 4
0.1.0 3 / 4

v0.2.2

2 findings
HIGH env-spread: src/mcp/stdio-transport.ts:45 semgrep

Spreading entire process.env into an object — may capture all secrets 43 | return new Promise((resolve, reject) => { 44 | // Merge environment variables > 45 | const processEnv = { ...process.env, ...this.env }; 46 | 47 | this.process = spawn(this.command, this.args, {

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.2.1

2 findings
HIGH env-spread: src/mcp/stdio-transport.ts:45 semgrep

Spreading entire process.env into an object — may capture all secrets 43 | return new Promise((resolve, reject) => { 44 | // Merge environment variables > 45 | const processEnv = { ...process.env, ...this.env }; 46 | 47 | this.process = spawn(this.command, this.args, {

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.2.0

2 findings
HIGH env-spread: src/mcp/stdio-transport.ts:45 semgrep

Spreading entire process.env into an object — may capture all secrets 43 | return new Promise((resolve, reject) => { 44 | // Merge environment variables > 45 | const processEnv = { ...process.env, ...this.env }; 46 | 47 | this.process = spawn(this.command, this.args, {

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.1.0

2 findings
HIGH env-spread: src/mcp/stdio-transport.ts:45 semgrep

Spreading entire process.env into an object — may capture all secrets 43 | return new Promise((resolve, reject) => { 44 | // Merge environment variables > 45 | const processEnv = { ...process.env, ...this.env }; 46 | 47 | this.process = spawn(this.command, this.args, {

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.