{"name":"SentinelRecon","description":"Passive external attack surface intelligence agent. Performs comprehensive reconnaissance across 7 modules — DNS, certificates, infrastructure, credential exposure, email OSINT, web surface, and social intelligence — scoring every finding for confidence and severity, with cryptographically attested reports via A2A-SE.","url":"https://recon.truthsetter.com","version":"1.0.0","documentationUrl":"https://recon.truthsetter.com/docs","authentication":{"required":false,"schemes":[]},"capabilities":{"streaming":false,"pushNotifications":false,"extensions":[{"uri":"https://a2a-settlement.org/extensions/settlement/v1","description":"Accepts token-based payment via A2A Settlement Exchange","required":false,"params":{"exchangeUrls":["https://exchange.a2a-settlement.org"],"preferredExchange":"https://exchange.a2a-settlement.org","accountIds":{"https://exchange.a2a-settlement.org":"bfd80d30-b113-4348-98d0-d772fd339af0"},"currency":"ATE","pricing":{"passive-recon":{"baseTokens":50,"model":"per-request","currency":"ATE","description":"Full 7-module passive recon sweep with attested report"}}}}]},"skills":[{"id":"passive-recon","name":"Passive Reconnaissance Sweep","description":"Full 7-module passive recon sweep for a given domain. Returns a confidence-scored, severity-graded, attested report.","taskUrl":"https://recon.truthsetter.com/scan","inputModes":["application/json"],"outputModes":["application/json"],"inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Target domain to scan (e.g. example.com)"},"escrow_id":{"type":"string","description":"Optional A2A-SE escrow ID; omit for direct/unauthenticated calls"},"claim_id":{"type":"string","description":"Optional SettleBridge claim ID; links the report to a bounty claim"}},"required":["domain"]},"estimatedDurationSeconds":{"min":30,"max":180},"workflow":"This skill is asynchronous. Step 1 — POST /scan with {\"domain\": \"...\"} → receives {\"job_id\": \"<uuid>\", \"status\": \"pending\"}. Step 2 — Poll GET /scan/{job_id} every 5 s until status == \"complete\" or \"failed\" (timeout after 180 s). Step 3 — Fetch GET /scan/{job_id}/report to retrieve the full attested ReconReport JSON.","outputSchema":{"type":"object","description":"Submission response (POST /scan). Use job_id to poll and fetch the final report.","properties":{"job_id":{"type":"string","format":"uuid","description":"Use to poll GET /scan/{job_id} and fetch GET /scan/{job_id}/report"},"status":{"type":"string","enum":["pending","running","complete","failed"]},"domain":{"type":"string"}},"required":["job_id","status","domain"],"x-final-report":{"description":"Schema of GET /scan/{job_id}/report once complete","type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"domain":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"executive_summary":{"type":"object","properties":{"exposure_grade":{"type":"string","enum":["A","B","C","D","F"],"description":"A = minimal exposure, F = critical/systemic risk"},"total_findings":{"type":"integer"},"by_severity":{"type":"object","properties":{"critical":{"type":"integer"},"high":{"type":"integer"},"medium":{"type":"integer"},"low":{"type":"integer"},"informational":{"type":"integer"}}},"top_actions":{"type":"array","items":{"type":"string"},"description":"Three prioritised remediation actions"}}},"attack_narrative":{"type":"string","description":"AI-generated attacker-perspective walkthrough"},"attestation":{"type":"object","properties":{"content_hash":{"type":"string","description":"sha256:<hex> — independently verifiable fingerprint"},"attested_at":{"type":"string","format":"date-time"},"attestation_level":{"type":"string"}}}},"required":["job_id","domain","executive_summary","attestation"]}},"examples":[{"input":{"domain":"example.com"},"description":"Scan example.com across all 7 modules"}],"tags":["security","osint","recon","attack-surface","passive"]}]}