Handling AI agent refunds without paying twice: signatures, idempotency and limits in TypeScript

· Dev.to