Vulnerability scan
vulnerability_scanScan npm/pnpm/yarn/bun, Cargo, Python, and Go lockfiles for OSV.dev vulnerabilities in installed and transitive dependencies, showing fix versions and pin locations; target one package on demand.
Instructions
Scan this project's lockfiles (npm/pnpm/yarn/bun, Cargo, Python, Go) for OSV.dev vulnerabilities in installed versions, transitives included, with fix versions and where each is pinned; package for one dep. Call when asked about security or CVEs. To vet a version first: dependency_check.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| package | No | Only this package (any ecosystem, every installed copy, transitives included), with a `package_note` saying what the lockfiles hold for it. Use it to ask about one dependency instead of reading the whole report. | |
| include_dev | No | Include direct devDependencies (labelled `is_dev`, graded one level down). Default: true, as the 4DA app does; pass false for runtime dependencies only. Transitive dev/runtime scope may be unknown. | |
| project_path | No | Project directory to scan. Default: current working directory. | |
| force_refresh | No | Ignore the OSV advisory cache and fetch fresh advisory data from OSV.dev (dependency versions are re-read on every lockfile change regardless). Default: false. | |
| response_format | No | concise (default): one row per vulnerable package version (worst severity, the version that fixes all its advisories, advisory count and first ids, where it is pinned), the 40 most severe and 25 recommendations, with counts of anything left out. detailed: one row per advisory with references, plus platform-inactive advisories, maintenance notices, install drift and resolution provenance. | |
| severity_filter | No | Only show vulnerabilities whose presented severity is at or above this level. | |
| include_test_fixtures | No | Also scan lockfiles under test-fixture directories (tests/, test/, fixtures/, testdata/, __fixtures__/, conformance/ ...). Default: false; they are counted under coverage.not_scanned instead. |