observe
Scan a host's exposed stack and join it to the CVE corpus — the recon workhorse. Fingerprints the homepage + JS bundles (recovering the backend identity and API endpoints homepage detection misses on SPAs), then ranks against live KEV / SSVC-active / high-EPSS into a dig-order. Fetches only public pages — authorized targets only.
NON-BLOCKING: a scan takes ~1-4 min, so observe() never waits on it. A recent scan (<24h)
returns status="ready" instantly. A cache miss KICKS a background scan and returns
status="scanning" immediately — POLL by calling observe() again with the same host until it
returns status="ready". Returns:
- status="ready": host stack + endpoints + dig_order + top_across_stack (the scan result),
plus bounty_programs: public programs whose current scope lists this host.
- status="scanning": retry_after_seconds + last_scanned_at (call again after that delay).
- status="error": a guard/validation error.
Args:
host: hostname or URL in an authorized bounty scope, e.g. "auth.example.com".
fresh: force a re-scan (kicks a new background scan even if a recent one exists).
per_tech: top CVEs to surface per component (default 4).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | ||
| fresh | No | ||
| per_tech | No |