@ottocode/sdk
AI agent SDK for building intelligent assistants - tree-shakable and comprehensive
Supply chain provenance
Status for the latest visible version.
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
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| 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 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.364
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.363
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.362
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.361
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.360
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.359
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.358
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.357
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.356
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.355
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.354
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.353
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.352
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.351
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.350
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.349
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.348
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.347
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.346
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.345
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.344
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.343
7 findings[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.342
7 findings[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
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[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
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[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
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[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
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[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
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[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
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[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
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[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
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[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
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[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',
[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,
[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 ?? {}),
[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 | }
[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,
[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,
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.