@ngandu/sunshine
Coding agent CLI with read, bash, edit, write tools and session management
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| phantom-deps | phantom-dep:marked | AI (phantom-deps): marked is referenced in config files; legitimate workspace pattern. | ai | |
| phantom-deps | phantom-dep:@ngandu/sunshine-ai | AI (phantom-deps): Same-org workspace dependency; stable pattern for this monorepo. | ai | |
| phantom-deps | phantom-dep:@ngandu/sunshine-tui | AI (phantom-deps): Same-org workspace dependency; stable pattern for this monorepo. | ai | |
| phantom-deps | phantom-dep:@ngandu/sunshine-agent-core | AI (phantom-deps): Same-org workspace dependency; stable pattern for this monorepo. | ai | |
| semgrep | semgrep:steganography-image-eval | AI (semgrep): WAD file read in examples/extensions/doom-overlay demo; not steganography. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): Desktop notification helper in examples/extensions/notify.ts. | ai | |
| semgrep | semgrep:base64-decode | AI (semgrep): Writing generated image data in examples/extensions; benign pattern. | ai | |
| semgrep | semgrep:shady-links-raw-ip | AI (semgrep): 127.0.0.1 localhost OAuth redirect URI in example extension. | ai | |
| semgrep | semgrep:new-function-constructor | AI (semgrep): Loading compiled Doom JS module in example extension; not runtime core. | ai |
v0.0.3
2 findingsData read from image file then executed — steganography attack pattern Source: https://github.com/ngandugilbert/sunshine/blob/c03dd3ccd65446d94f916e61130804c888f9b8c0/examples/extensions/doom-overlay/doom-engine.ts#L58 56 | 57 | // Read WAD file > 58 | const wadData = readFileSync(this.wadPath); 59 | const wadArray = Array.from(new Uint8Array(wadData)); 60 |
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.