@cleocode/adapters
Unified provider adapters for CLEO (Claude Code, OpenCode, Cursor)
Supply chain provenance
Status for the latest visible version.
Maintainers
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| semgrep | semgrep:env-spread | AI (semgrep): Intentional env-merge pattern in a spawn wrapper for CLI adapters; not credential exfiltration. | ai | |
| provenance | publisher-changed | AI (provenance): Publisher changed to GitHub Actions as part of a legitimate CI/CD migration; SLSA provenance attestation confirms integrity. Repo URL still points to original maintainer's org. | ai | |
| semgrep | semgrep:etc-passwd-access | AI (semgrep): All instances are in test files asserting /etc/passwd is DENIED by path allowlist logic — security tests, not credential harvesting. | ai | |
| semgrep | semgrep:silent-process-exec | AI (semgrep): Spawns the 'opencode' CLI tool, which is a documented provider target of this adapter package. Core functionality, not a reverse shell or miner. | ai | |
| semgrep | semgrep:silent-process-exec-var | AI (semgrep): Same spawn call as silent-process-exec — spawning 'opencode' CLI is the intended adapter functionality for this package. | ai |
Versions (showing 51 of 287)
| Version | Deps | Published |
|---|---|---|
| 2026.6.12 | 6 / 3 | |
| 2026.6.11 | 6 / 3 | |
| 2026.6.10 | 6 / 3 | |
| 2026.6.9 | 6 / 3 | |
| 2026.6.8 | 6 / 3 | |
| 2026.6.7 | 6 / 3 | |
| 2026.6.6 | 6 / 3 | |
| 2026.6.5 | 6 / 3 | |
| 2026.6.4 | 6 / 3 | |
| 2026.6.3 | 6 / 3 | |
| 2026.6.2 | 6 / 3 | |
| 2026.6.1 | 6 / 3 | |
| 2026.6.0 | 6 / 3 | |
| 2026.5.134 | 6 / 3 | |
| 2026.5.133 | 6 / 3 | |
| 2026.5.132 | 6 / 3 | |
| 2026.5.131 | 6 / 3 | |
| 2026.5.130 | 6 / 3 | |
| 2026.5.129 | 6 / 3 | |
| 2026.5.128 | 6 / 3 | |
| 2026.5.127 | 6 / 3 | |
| 2026.5.126 | 6 / 3 | |
| 2026.5.125 | 6 / 3 | |
| 2026.5.124 | 6 / 3 | |
| 2026.5.123 | 6 / 3 | |
| 2026.5.122 | 6 / 3 | |
| 2026.5.121 | 6 / 3 | |
| 2026.5.120 | 6 / 3 | |
| 2026.5.114 | 6 / 3 | |
| 2026.5.113 | 6 / 3 | |
| 2026.5.112 | 6 / 3 | |
| 2026.5.111 | 6 / 3 | |
| 2026.5.110 | 6 / 3 | |
| 2026.5.109 | 6 / 3 | |
| 2026.5.108 | 6 / 3 | |
| 2026.5.107 | 6 / 3 | |
| 2026.5.106 | 6 / 3 | |
| 2026.5.105 | 6 / 3 | |
| 2026.5.104 | 6 / 3 | |
| 2026.5.103 | 6 / 3 | |
| 2026.5.102 | 6 / 3 | |
| 2026.5.101 | 6 / 3 | |
| 2026.5.100 | 6 / 3 | |
| 2026.5.99 | 6 / 3 | |
| 2026.5.98 | 6 / 3 | |
| 2026.5.97 | 6 / 3 | |
| 2026.5.96 | 6 / 3 | |
| 2026.5.95 | 6 / 3 | |
| 2026.5.94 | 6 / 3 | |
| 2026.5.93 | 6 / 3 | |
| 2026.5.92 | 6 / 3 |
v2026.6.12
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.11
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.10
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.9
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.8
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.7
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.6
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.5
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.4
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.3
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.2
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.1
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.6.0
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.134
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.133
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.132
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.131
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.130
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.129
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.128
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.127
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.126
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.125
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.124
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.123
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.122
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.121
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.120
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.114
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.113
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.112
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.111
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.110
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.109
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.108
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.107
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.106
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.105
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.104
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.103
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.102
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.101
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.100
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.99
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.98
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.97
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.96
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.95
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.94
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.93
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v2026.5.92
2 findingsSpreading entire process.env into an object — may capture all secrets 124 | const optionsEnv = context.options?.env as Record<string, string> | undefined; 125 | if (optionsEnv !== undefined && Object.keys(optionsEnv).length > 0) { > 126 | spawnOpts.env = { ...process.env, ...optionsEnv }; 127 | } 128 |
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.