← Home

@ottocode/sdk

AI agent SDK for building intelligent assistants - tree-shakable and comprehensive

34
Versions
MIT
License
No
Install Scripts
Missing
Provenance

Supply chain provenance

Status for the latest visible version.

No SLSA provenance npm registry signatures gitHead linked

Without SLSA provenance there is no cryptographic link between this tarball and the public source, so a manually published version cannot be tied back to a reviewed commit.

Maintainers

nitishxyz

Keywords

aisdkagentstoolsllmanthropicopenaidevelopmentassistanttree-shakabletypescript

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
semgrep semgrep:base64-decode AI (semgrep): Decodes JWT payload for OAuth account id, standard token parsing. ai
semgrep semgrep:env-bulk-read AI (semgrep): Template exec reads env for variable substitution, common config pattern. ai
semgrep semgrep:env-spread AI (semgrep): Spreads env into local MCP subprocess it spawns, not an external destination; recurring pattern for this package. ai

Versions (showing 34 of 34)

Version Deps Published
0.1.365 28 / 2
0.1.364 28 / 2
0.1.363 28 / 2
0.1.362 28 / 2
0.1.361 28 / 2
0.1.360 28 / 2
0.1.359 28 / 2
0.1.358 28 / 2
0.1.357 28 / 2
0.1.356 28 / 2
0.1.355 28 / 2
0.1.354 28 / 2
0.1.353 28 / 2
0.1.352 28 / 2
0.1.351 28 / 2
0.1.350 28 / 2
0.1.349 28 / 2
0.1.348 28 / 2
0.1.347 28 / 2
0.1.346 28 / 2
0.1.345 28 / 2
0.1.344 28 / 2
0.1.343 28 / 2
0.1.342 28 / 2
0.1.341 28 / 2
0.1.340 28 / 2
0.1.339 28 / 2
0.1.338 28 / 2
0.1.337 28 / 2
0.1.336 28 / 2
0.1.335 28 / 2
0.1.334 28 / 2
0.1.333 28 / 2
0.1.252 22 / 2

v0.1.365

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.364

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.363

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.362

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.361

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.360

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.359

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.358

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.357

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.356

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.355

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.354

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.353

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.352

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.351

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.350

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.349

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.348

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.347

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.346

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.345

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.344

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.343

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/65d9c69cc3f8d9984f46025c23341ee50ea6ca51/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/65d9c69cc3f8d9984f46025c23341ee50ea6ca51/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/65d9c69cc3f8d9984f46025c23341ee50ea6ca51/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/65d9c69cc3f8d9984f46025c23341ee50ea6ca51/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/65d9c69cc3f8d9984f46025c23341ee50ea6ca51/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/65d9c69cc3f8d9984f46025c23341ee50ea6ca51/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.1.342

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/ab006ea4957ab9664b97a85be1f53763afe80d7e/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/ab006ea4957ab9664b97a85be1f53763afe80d7e/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/ab006ea4957ab9664b97a85be1f53763afe80d7e/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/ab006ea4957ab9664b97a85be1f53763afe80d7e/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/ab006ea4957ab9664b97a85be1f53763afe80d7e/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/ab006ea4957ab9664b97a85be1f53763afe80d7e/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.341

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/40dc80dd71e141d68a419f036334c92f862f64d5/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/40dc80dd71e141d68a419f036334c92f862f64d5/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/40dc80dd71e141d68a419f036334c92f862f64d5/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/40dc80dd71e141d68a419f036334c92f862f64d5/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/40dc80dd71e141d68a419f036334c92f862f64d5/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/40dc80dd71e141d68a419f036334c92f862f64d5/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.340

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/23f3bd3567ee225c55ba050e8c7162a7114edda6/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/23f3bd3567ee225c55ba050e8c7162a7114edda6/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/23f3bd3567ee225c55ba050e8c7162a7114edda6/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/23f3bd3567ee225c55ba050e8c7162a7114edda6/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/23f3bd3567ee225c55ba050e8c7162a7114edda6/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/23f3bd3567ee225c55ba050e8c7162a7114edda6/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.339

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/41c4912aedd21cfda45f38a0a343438f41823c48/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/41c4912aedd21cfda45f38a0a343438f41823c48/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/41c4912aedd21cfda45f38a0a343438f41823c48/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/41c4912aedd21cfda45f38a0a343438f41823c48/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/41c4912aedd21cfda45f38a0a343438f41823c48/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/41c4912aedd21cfda45f38a0a343438f41823c48/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.338

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/3b5937a504285824bf892f9a9756841b1313f924/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/3b5937a504285824bf892f9a9756841b1313f924/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/3b5937a504285824bf892f9a9756841b1313f924/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/3b5937a504285824bf892f9a9756841b1313f924/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/3b5937a504285824bf892f9a9756841b1313f924/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/3b5937a504285824bf892f9a9756841b1313f924/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.337

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/338a0215de955b4fbd26f045e503a783b1d06f5d/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/338a0215de955b4fbd26f045e503a783b1d06f5d/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/338a0215de955b4fbd26f045e503a783b1d06f5d/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/338a0215de955b4fbd26f045e503a783b1d06f5d/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/338a0215de955b4fbd26f045e503a783b1d06f5d/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/338a0215de955b4fbd26f045e503a783b1d06f5d/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.336

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/33205b6e7f5bfe7cd3f739e7b688cc8d80839add/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/33205b6e7f5bfe7cd3f739e7b688cc8d80839add/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/33205b6e7f5bfe7cd3f739e7b688cc8d80839add/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/33205b6e7f5bfe7cd3f739e7b688cc8d80839add/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/33205b6e7f5bfe7cd3f739e7b688cc8d80839add/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/33205b6e7f5bfe7cd3f739e7b688cc8d80839add/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.335

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/a3771f6af9555f05ac5037efb24ca3e4448ec71f/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/a3771f6af9555f05ac5037efb24ca3e4448ec71f/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/a3771f6af9555f05ac5037efb24ca3e4448ec71f/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/a3771f6af9555f05ac5037efb24ca3e4448ec71f/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/a3771f6af9555f05ac5037efb24ca3e4448ec71f/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/a3771f6af9555f05ac5037efb24ca3e4448ec71f/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.334

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/f1108c17e67b4d1599b829ba56d7aaca0b7065cd/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/f1108c17e67b4d1599b829ba56d7aaca0b7065cd/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/f1108c17e67b4d1599b829ba56d7aaca0b7065cd/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/f1108c17e67b4d1599b829ba56d7aaca0b7065cd/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/f1108c17e67b4d1599b829ba56d7aaca0b7065cd/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/f1108c17e67b4d1599b829ba56d7aaca0b7065cd/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.333

7 findings
HIGH env-spread: src/core/src/mcp/client.ts:84 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/470555a5b529323608e4b405695b973c5074ef1a/src/core/src/mcp/client.ts#L84 82 | command: this.config.command, 83 | args: this.config.args, > 84 | env: { ...process.env, ...env } as Record<string, string>, 85 | cwd: this.config.cwd, 86 | stderr: 'pipe',

HIGH env-spread: src/core/src/terminals/manager.ts:38 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/470555a5b529323608e4b405695b973c5074ef1a/src/core/src/terminals/manager.ts#L38 36 | rows: 30, 37 | cwd: options.cwd, > 38 | env: { 39 | ...process.env, 40 | ...options.env,

HIGH env-spread: src/core/src/tools/bin-manager.ts:105 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/470555a5b529323608e4b405695b973c5074ef1a/src/core/src/tools/bin-manager.ts#L105 103 | const loginEnv = 104 | envMode === 'minimal' ? null : getLoginShellEnv(envMode === 'login-fresh'); > 105 | const env = { 106 | ...process.env, 107 | ...(loginEnv ?? {}),

HIGH env-spread: src/core/src/tools/bin-manager.ts:143 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/470555a5b529323608e4b405695b973c5074ef1a/src/core/src/tools/bin-manager.ts#L143 141 | 142 | if (process.platform === 'win32') { > 143 | cachedLoginEnv = { key: cacheKey, env: { ...process.env } }; 144 | return cachedLoginEnv.env; 145 | }

HIGH env-spread: src/core/src/tools/bin-manager.ts:156 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/470555a5b529323608e4b405695b973c5074ef1a/src/core/src/tools/bin-manager.ts#L156 154 | timeout: 10000, 155 | stdio: ['ignore', 'pipe', 'ignore'], > 156 | env: { 157 | ...process.env, 158 | HOME: home,

HIGH env-spread: src/core/src/tools/bin-manager.ts:204 semgrep

[Reject — re-review on republish] (prior reject: AI (semgrep): Wholesale spreading of process.env into subprocess environments is a persistent pattern in this package that risks leaking all host secrets to child processes.) Spreading entire process.env into an object — may capture all secrets Source: https://github.com/nitishxyz/otto/blob/470555a5b529323608e4b405695b973c5074ef1a/src/core/src/tools/bin-manager.ts#L204 202 | timeout: 1500, 203 | stdio: ['ignore', 'pipe', 'ignore'], > 204 | env: { 205 | ...process.env, 206 | HOME: home,

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.