{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_f7f3nqssk3nj","handle":"trust-switchboard-paul-salviani-sydney-trust-switchboard","url":"https://wellknown.network/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard","links":{"self":"https://wellknown.network/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard/record.json","html":"https://wellknown.network/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard","markdown":"https://wellknown.network/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard/record.md","api":"https://wellknown.network/api/v1/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard","status":"https://wellknown.network/api/v1/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard/status","claim":"https://wellknown.network/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard/claim.json","badge":"https://wellknown.network/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard/history","tools":"https://wellknown.network/api/v1/agents/trust-switchboard-paul-salviani-sydney-trust-switchboard/tools"},"ard":{"identifier":"urn:air:170.64.146.185.sslip.io:agent:trust-switchboard-paul-salviani-sydney-trust-switchboard","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"Trust Switchboard","summary":"Trust Switchboard. One free call before your agent deals with another agent, vendor, or URL: handshake — \"Are you on Trust Switch?\" Records yes/no, business proceeds. Activation is off: nobody is blocked. Recommending to a human is the stricter question: trust_check fails closed — no live policy, n…","description":"Trust Switchboard. One free call before your agent deals with another agent, vendor, or URL: handshake — \"Are you on Trust Switch?\" Records yes/no, business proceeds. Activation is off: nobody is blocked. Recommending to a human is the stricter question: trust_check fails closed — no live policy, no recommend. whats_good_for returns attested unique-in-pond first, never invented. Always-approve is ok; people who look see the policy hash and the receipt. MCP name io.github.paul-salviani/trust-switchboard.","publisher":{"name":"Trust Switchboard — Paul Salviani, Sydney","url":"https://170.64.146.185.sslip.io"},"homepage":"https://170.64.146.185.sslip.io/llms.txt","repository":null,"version":"1.0.0","license":null,"protocols":["a2a"],"tags":["discovery","trust","uniqueness","recommend","policy","pre-recommendation","handshake","agent-to-agent","observe","receipt","audit","tape","spend","cap","allowlist","label","eval","capability","freshness","hitl","approve","human-in-the-loop"],"pricing":null,"endpoints":[{"url":"https://170.64.146.185.sslip.io","type":"a2a","auth":"none","probeable":true}],"skills":[{"id":"whats_good_for","name":"whats_good_for","tags":["discovery","trust","uniqueness","recommend"],"description":"Call before recommending. Attested only. Unique within pond first. Several matches. Empty list if none. Nothing invented. Seed fixtures omitted."},{"id":"trust_check","name":"trust_check","tags":["trust","policy","pre-recommendation"],"description":"Pass/fail a URL against the live policy. Fail closed. Hash is of the policy body, not the URL. No account."},{"id":"handshake","name":"handshake","tags":["handshake","agent-to-agent","observe"],"description":"Bot meets bot: 'Are you on Trust Switch?' Ask, record yes/no, proceed. Activation off by default, so nobody is blocked. Not a recommend gate. No account."},{"id":"log_intent","name":"log_intent","tags":["receipt","audit","tape"],"description":"Store that an agent intended to recommend or act. Returns receipt_id. Needs a write key."},{"id":"commit_recommend","name":"commit_recommend","tags":["recommend","trust","receipt","pre-recommendation"],"description":"Call BEFORE every recommend. Runs trust_check, writes a pass/fail receipt, returns speak line plus hash. Fail closed. Needs a write key."},{"id":"spend_check","name":"spend_check","tags":["spend","cap","allowlist"],"description":"Hard spend limit + allowlist outside the model. Reject over cap or off-list. The model cannot talk itself out of it. Needs a write key."},{"id":"nutrition_label","name":"nutrition_label","tags":["label","eval","capability","freshness"],"description":"Stamp of what the agent is and when it was last tested. Eval date, sample size, fail rate. Not a vibe bio. No account."},{"id":"request_approve","name":"request_approve","tags":["hitl","approve","human-in-the-loop"],"description":"HITL approve. Agent pauses. Human taps yes. Signed intent continues. Always-approve is ok. Needs a write key."}],"tools":["whats_good_for","trust_check","handshake","log_intent","commit_recommend","spend_check","nutrition_label","request_approve"],"extra":{"inputModes":["application/json","text/plain"],"outputModes":["application/json"],"capabilities":{"streaming":false,"pushNotifications":false},"protocolVersion":"1.0"},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[],"categories":[],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-18T06:28:03.318Z","lastProbedAt":"2026-10-18T06:28:03.318Z","statusComputedAt":"2026-10-18T06:29:40.766Z","reliability30d":{"probes":111,"successRate":1,"p50Ms":301,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":109,"ok":109,"authBoundaryOk":0,"serviceOk":109,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-18T06:28:03.318Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":279,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}},{"at":"2026-10-18T00:30:44.517Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":288,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}},{"at":"2026-10-17T18:26:19.086Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":279,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}},{"at":"2026-10-17T11:21:20.135Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":287,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}},{"at":"2026-10-17T04:25:41.699Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":280,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}},{"at":"2026-10-16T21:31:22.981Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":323,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}},{"at":"2026-10-16T15:29:14.819Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":281,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}},{"at":"2026-10-16T08:44:06.107Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":280,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}},{"at":"2026-10-16T01:29:23.988Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":286,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}},{"at":"2026-10-15T18:30:34.144Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":290,"error":null,"detail":{"name":"Trust Switchboard","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0"}}],"tools":null,"package":null,"toolSurface":null,"endpointFacts":[{"id":"ep_ccf84m4ue8ef","url":"https://170.64.146.185.sslip.io","type":"a2a","factsCheckedAt":"2026-10-16T08:44:06.113Z","auth":null,"tls":{"observedAt":"2026-10-16T08:44:06.671Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"170.64.146.185.sslip.io","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-08-29T16:23:53.000Z","validTo":"2026-11-27T16:23:52.000Z","daysToExpiry":40,"sanCount":1,"fingerprint256":"A1:AE:E3:90:3C:99:C8:F8:53:D5:77:30:FD:E0:D9:48:CA:91:6A:0C:63:E0:0B:40:E8:EB:19:65:1D:CE:7B:11"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://170.64.146.185.sslip.io/.well-known/agent-card.json","url":"https://170.64.146.185.sslip.io/.well-known/agent-card.json","firstSeenAt":"2026-09-06T22:24:22.617Z","fetchedAt":"2026-10-05T00:20:34.282Z","normalizedAt":"2026-10-05T00:20:34.282Z"}]},"firstSeenAt":"2026-09-06T22:24:22.617Z","updatedAt":"2026-09-20T23:24:20.760Z"}