mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 11:49:28 +00:00
Tasks 1.2, 2.1-2.5 and 6.2 (pair-side filters). - pairs.py: coverage with a source counts as detection and as leak; function-scoped matching by line-range containment from the vulnerable side's parse (unresolvable labels are counted loss, never silent misses); exact or alias sink matching; weak CWE-only labels never match; side-by-side inventory/overlay/hunter scorers; per_profile, per_mechanism, achievable, known_limit and loss payload; loader rejects unknown mechanism/provenance/split and reserved or missing function labels on harvested slices; candidate rulesets thread through for the improve loop. - overlay.py: OverlayRecord.function (additive) filled from the shared naming helper in one parse; benchmark.py: ExpectedFinding.mechanism. - cli pairs: --slice over every slice, --profile, --split, --hunter, --hunter-model. - catalogs migrated to the new schema (provenance, split, function, mechanism, known_limit for owasp-java-hash); baseline recorded in the spec notes. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01T7XD7x5KonMdmGRkp63EQG
13 lines
562 B
Bash
13 lines
562 B
Bash
# Copy to .env and fill in. .env is gitignored.
|
|
OPENROUTER_API_KEY=
|
|
|
|
# Prove-budget and `ousast index` embeddings via OpenRouter /embeddings.
|
|
OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small
|
|
|
|
# Any OpenAI-compatible chat endpoint works for the hunter: set the key above to that
|
|
# provider's key and override the base URL. Example for DeepSeek:
|
|
# OPENROUTER_API_KEY=sk-deepseek-...
|
|
# OPENROUTER_BASE_URL=https://api.deepseek.com/v1
|
|
# Then set [models].hunter in openultrasast.toml (or --hunter-model) to that provider's model id.
|
|
OPENROUTER_BASE_URL=
|