{"id":"ag_7e29zzafxn5x","handle":"perp-gap-api-perp-gap-api","kinds":["status_changed","tool_surface_observed","tool_surface_changed","endpoint_added","ownership_changed","ownership_contested","auth_posture_changed","tls_changed","record_split","split_from"],"count":3,"events":[{"id":"ev_syh7mnkwaewh","kind":"tls_changed","at":"2026-10-17T11:21:10.032Z","endpointId":"ep_wypptkdhqxkk","before":null,"after":{"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"subject":"perpgap.workers.dev","validTo":"2027-01-12T18:26:19.000Z","protocol":"TLSv1.3","chainError":null,"chainValid":true,"hostMatches":true,"fingerprint256":"C1:CA:38:3E:C1:05:29:5E:94:5C:03:5B:89:CB:E1:2F:CC:B7:15:C1:6D:9B:3F:EF:51:02:5F:36:72:FA:16:71"},"observationId":"ob_kn4k9bkby5ax","claimId":null},{"id":"ev_xf5ghtg6h4c7","kind":"status_changed","at":"2026-10-15T12:32:50.882Z","endpointId":null,"before":{"status":"unknown"},"after":{"reason":"Responded {ok} ago.","status":"live","lastOkAt":"2026-10-15T12:31:54.639Z"},"observationId":null,"claimId":null},{"id":"ev_8qrw3s7vys7q","kind":"endpoint_added","at":"2026-10-15T12:23:52.819Z","endpointId":"ep_wypptkdhqxkk","before":null,"after":{"url":"https://perp-gap-api.perpgap.workers.dev","type":"a2a","source":"a2a_card","authHint":"none","newRecord":true},"observationId":null,"claimId":null}]}