{
  "runAt": "2026-09-24T01:25:52.812Z",
  "environment": {
    "node": "v22.19.0",
    "platform": "darwin",
    "arch": "arm64"
  },
  "protocol": {
    "evidenceType": "local simulated HTTP experiment; not a provider benchmark",
    "networkScope": "127.0.0.1 only; no keys, prompts, customer data or paid API calls",
    "maxAttempts": 3,
    "deadlineMs": 3000,
    "maxRetryDelayMs": 2000,
    "baseDelayMs": 100,
    "jitterMs": 0,
    "repetitions": 3
  },
  "result": "PASS",
  "scenarioRuns": 33,
  "parserCases": 11,
  "modelQualityMeasured": false,
  "providerAvailabilityMeasured": false,
  "tokensMeasured": false,
  "billingMeasured": false,
  "results": [
    {
      "scenario": "429_then_200_retry_after_seconds",
      "repetition": 1,
      "serverRequests": 2,
      "gapsMs": [
        1006
      ],
      "outcome": "success",
      "attempts": 2,
      "elapsedMs": 1012,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "rate_limit_exceeded",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 1000
        },
        {
          "attempt": 2,
          "status": 200,
          "code": null,
          "requestId": "local-2",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "503_then_200_http_date",
      "repetition": 1,
      "serverRequests": 2,
      "gapsMs": [
        1026
      ],
      "outcome": "success",
      "attempts": 2,
      "elapsedMs": 1028,
      "events": [
        {
          "attempt": 1,
          "status": 503,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 1025
        },
        {
          "attempt": 2,
          "status": 200,
          "code": null,
          "requestId": "local-2",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "500_twice_then_200",
      "repetition": 1,
      "serverRequests": 3,
      "gapsMs": [
        102,
        202
      ],
      "outcome": "success",
      "attempts": 3,
      "elapsedMs": 305,
      "events": [
        {
          "attempt": 1,
          "status": 500,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 100
        },
        {
          "attempt": 2,
          "status": 500,
          "code": "server_error",
          "requestId": "local-2",
          "decision": "retry",
          "waitMs": 200
        },
        {
          "attempt": 3,
          "status": 200,
          "code": null,
          "requestId": "local-3",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "500_persistent",
      "repetition": 1,
      "serverRequests": 3,
      "gapsMs": [
        103,
        204
      ],
      "outcome": "attempt_limit",
      "attempts": 3,
      "elapsedMs": 310,
      "events": [
        {
          "attempt": 1,
          "status": 500,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 100
        },
        {
          "attempt": 2,
          "status": 500,
          "code": "server_error",
          "requestId": "local-2",
          "decision": "retry",
          "waitMs": 200
        },
        {
          "attempt": 3,
          "status": 500,
          "code": "server_error",
          "requestId": "local-3",
          "decision": "attempt_limit"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_credit_exhausted",
      "repetition": 1,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "action_required",
      "attempts": 1,
      "elapsedMs": 0,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "credit_balance_exhausted",
          "requestId": "local-1",
          "decision": "action_required"
        }
      ],
      "passed": true
    },
    {
      "scenario": "401_invalid_key",
      "repetition": 1,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "not_retryable",
      "attempts": 1,
      "elapsedMs": 3,
      "events": [
        {
          "attempt": 1,
          "status": 401,
          "code": "invalid_api_key",
          "requestId": "local-1",
          "decision": "stop"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_unknown_code",
      "repetition": 1,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "not_retryable",
      "attempts": 1,
      "elapsedMs": 0,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "unknown_limit",
          "requestId": "local-1",
          "decision": "stop"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_delay_60s",
      "repetition": 1,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "deferred",
      "attempts": 1,
      "elapsedMs": 2,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "rate_limit_exceeded",
          "requestId": "local-1",
          "decision": "defer",
          "requestedDelayMs": 60000
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_beyond_deadline",
      "repetition": 1,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "deferred",
      "attempts": 1,
      "elapsedMs": 1,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "rate_limit_exceeded",
          "requestId": "local-1",
          "decision": "defer",
          "requestedDelayMs": 1000
        }
      ],
      "passed": true
    },
    {
      "scenario": "503_invalid_retry_after",
      "repetition": 1,
      "serverRequests": 2,
      "gapsMs": [
        102
      ],
      "outcome": "success",
      "attempts": 2,
      "elapsedMs": 102,
      "events": [
        {
          "attempt": 1,
          "status": 503,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 100
        },
        {
          "attempt": 2,
          "status": 200,
          "code": null,
          "requestId": "local-2",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "200_body_timeout",
      "repetition": 1,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "result_unknown",
      "attempts": 1,
      "elapsedMs": 81,
      "events": [
        {
          "attempt": 1,
          "decision": "result_unknown",
          "error": "TimeoutError"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_then_200_retry_after_seconds",
      "repetition": 2,
      "serverRequests": 2,
      "gapsMs": [
        1003
      ],
      "outcome": "success",
      "attempts": 2,
      "elapsedMs": 1003,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "rate_limit_exceeded",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 1000
        },
        {
          "attempt": 2,
          "status": 200,
          "code": null,
          "requestId": "local-2",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "503_then_200_http_date",
      "repetition": 2,
      "serverRequests": 2,
      "gapsMs": [
        1191
      ],
      "outcome": "success",
      "attempts": 2,
      "elapsedMs": 1192,
      "events": [
        {
          "attempt": 1,
          "status": 503,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 1189
        },
        {
          "attempt": 2,
          "status": 200,
          "code": null,
          "requestId": "local-2",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "500_twice_then_200",
      "repetition": 2,
      "serverRequests": 3,
      "gapsMs": [
        102,
        202
      ],
      "outcome": "success",
      "attempts": 3,
      "elapsedMs": 305,
      "events": [
        {
          "attempt": 1,
          "status": 500,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 100
        },
        {
          "attempt": 2,
          "status": 500,
          "code": "server_error",
          "requestId": "local-2",
          "decision": "retry",
          "waitMs": 200
        },
        {
          "attempt": 3,
          "status": 200,
          "code": null,
          "requestId": "local-3",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "500_persistent",
      "repetition": 2,
      "serverRequests": 3,
      "gapsMs": [
        102,
        202
      ],
      "outcome": "attempt_limit",
      "attempts": 3,
      "elapsedMs": 304,
      "events": [
        {
          "attempt": 1,
          "status": 500,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 100
        },
        {
          "attempt": 2,
          "status": 500,
          "code": "server_error",
          "requestId": "local-2",
          "decision": "retry",
          "waitMs": 200
        },
        {
          "attempt": 3,
          "status": 500,
          "code": "server_error",
          "requestId": "local-3",
          "decision": "attempt_limit"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_credit_exhausted",
      "repetition": 2,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "action_required",
      "attempts": 1,
      "elapsedMs": 0,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "credit_balance_exhausted",
          "requestId": "local-1",
          "decision": "action_required"
        }
      ],
      "passed": true
    },
    {
      "scenario": "401_invalid_key",
      "repetition": 2,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "not_retryable",
      "attempts": 1,
      "elapsedMs": 0,
      "events": [
        {
          "attempt": 1,
          "status": 401,
          "code": "invalid_api_key",
          "requestId": "local-1",
          "decision": "stop"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_unknown_code",
      "repetition": 2,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "not_retryable",
      "attempts": 1,
      "elapsedMs": 0,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "unknown_limit",
          "requestId": "local-1",
          "decision": "stop"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_delay_60s",
      "repetition": 2,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "deferred",
      "attempts": 1,
      "elapsedMs": 0,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "rate_limit_exceeded",
          "requestId": "local-1",
          "decision": "defer",
          "requestedDelayMs": 60000
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_beyond_deadline",
      "repetition": 2,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "deferred",
      "attempts": 1,
      "elapsedMs": 1,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "rate_limit_exceeded",
          "requestId": "local-1",
          "decision": "defer",
          "requestedDelayMs": 1000
        }
      ],
      "passed": true
    },
    {
      "scenario": "503_invalid_retry_after",
      "repetition": 2,
      "serverRequests": 2,
      "gapsMs": [
        101
      ],
      "outcome": "success",
      "attempts": 2,
      "elapsedMs": 102,
      "events": [
        {
          "attempt": 1,
          "status": 503,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 100
        },
        {
          "attempt": 2,
          "status": 200,
          "code": null,
          "requestId": "local-2",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "200_body_timeout",
      "repetition": 2,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "result_unknown",
      "attempts": 1,
      "elapsedMs": 82,
      "events": [
        {
          "attempt": 1,
          "decision": "result_unknown",
          "error": "TimeoutError"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_then_200_retry_after_seconds",
      "repetition": 3,
      "serverRequests": 2,
      "gapsMs": [
        1002
      ],
      "outcome": "success",
      "attempts": 2,
      "elapsedMs": 1003,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "rate_limit_exceeded",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 1000
        },
        {
          "attempt": 2,
          "status": 200,
          "code": null,
          "requestId": "local-2",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "503_then_200_http_date",
      "repetition": 3,
      "serverRequests": 2,
      "gapsMs": [
        1201
      ],
      "outcome": "success",
      "attempts": 2,
      "elapsedMs": 1203,
      "events": [
        {
          "attempt": 1,
          "status": 503,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 1198
        },
        {
          "attempt": 2,
          "status": 200,
          "code": null,
          "requestId": "local-2",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "500_twice_then_200",
      "repetition": 3,
      "serverRequests": 3,
      "gapsMs": [
        103,
        204
      ],
      "outcome": "success",
      "attempts": 3,
      "elapsedMs": 308,
      "events": [
        {
          "attempt": 1,
          "status": 500,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 100
        },
        {
          "attempt": 2,
          "status": 500,
          "code": "server_error",
          "requestId": "local-2",
          "decision": "retry",
          "waitMs": 200
        },
        {
          "attempt": 3,
          "status": 200,
          "code": null,
          "requestId": "local-3",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "500_persistent",
      "repetition": 3,
      "serverRequests": 3,
      "gapsMs": [
        103,
        206
      ],
      "outcome": "attempt_limit",
      "attempts": 3,
      "elapsedMs": 311,
      "events": [
        {
          "attempt": 1,
          "status": 500,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 100
        },
        {
          "attempt": 2,
          "status": 500,
          "code": "server_error",
          "requestId": "local-2",
          "decision": "retry",
          "waitMs": 200
        },
        {
          "attempt": 3,
          "status": 500,
          "code": "server_error",
          "requestId": "local-3",
          "decision": "attempt_limit"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_credit_exhausted",
      "repetition": 3,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "action_required",
      "attempts": 1,
      "elapsedMs": 1,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "credit_balance_exhausted",
          "requestId": "local-1",
          "decision": "action_required"
        }
      ],
      "passed": true
    },
    {
      "scenario": "401_invalid_key",
      "repetition": 3,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "not_retryable",
      "attempts": 1,
      "elapsedMs": 0,
      "events": [
        {
          "attempt": 1,
          "status": 401,
          "code": "invalid_api_key",
          "requestId": "local-1",
          "decision": "stop"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_unknown_code",
      "repetition": 3,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "not_retryable",
      "attempts": 1,
      "elapsedMs": 0,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "unknown_limit",
          "requestId": "local-1",
          "decision": "stop"
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_delay_60s",
      "repetition": 3,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "deferred",
      "attempts": 1,
      "elapsedMs": 0,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "rate_limit_exceeded",
          "requestId": "local-1",
          "decision": "defer",
          "requestedDelayMs": 60000
        }
      ],
      "passed": true
    },
    {
      "scenario": "429_beyond_deadline",
      "repetition": 3,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "deferred",
      "attempts": 1,
      "elapsedMs": 1,
      "events": [
        {
          "attempt": 1,
          "status": 429,
          "code": "rate_limit_exceeded",
          "requestId": "local-1",
          "decision": "defer",
          "requestedDelayMs": 1000
        }
      ],
      "passed": true
    },
    {
      "scenario": "503_invalid_retry_after",
      "repetition": 3,
      "serverRequests": 2,
      "gapsMs": [
        102
      ],
      "outcome": "success",
      "attempts": 2,
      "elapsedMs": 103,
      "events": [
        {
          "attempt": 1,
          "status": 503,
          "code": "server_error",
          "requestId": "local-1",
          "decision": "retry",
          "waitMs": 100
        },
        {
          "attempt": 2,
          "status": 200,
          "code": null,
          "requestId": "local-2",
          "decision": "success"
        }
      ],
      "passed": true
    },
    {
      "scenario": "200_body_timeout",
      "repetition": 3,
      "serverRequests": 1,
      "gapsMs": [],
      "outcome": "result_unknown",
      "attempts": 1,
      "elapsedMs": 82,
      "events": [
        {
          "attempt": 1,
          "decision": "result_unknown",
          "error": "TimeoutError"
        }
      ],
      "passed": true
    }
  ]
}
