{
  "artifact_type": "controlled_offline_reproduction",
  "source_commit": "71dd3628af0e67554b39afb943359204bae85980",
  "scope": "Production evaluateSpend decision and its formatting/constants, extracted unchanged and transpiled to JavaScript. Not a live API request or purchase.",
  "dependencies": "Node.js built-in assert only; no API keys, database, payment provider or network access.",
  "extraction": "TypeScript AST declaration selection; TypeScript-to-JavaScript transpilation removes type annotations and comments. No decision logic changes.",
  "typescript_version": "5.9.3",
  "extracted_typescript_sha256": "d5a41da09d28836384d70727166963f8ea8e22ec7d0c67e6a2cafa2d45c1385d",
  "extracted_javascript_sha256": "c523086ff8904ab5290ff9b8c9f4e7e63894016749d261eb0f124e3855688f3f",
  "sources": [
    {
      "source_file": "apps/web/lib/credit/config.ts",
      "declaration": "CARDLESS_LINE_CAP_CENTS",
      "source_file_sha256": "c3d54928ffe73d3c606045ac237d99100bf61c671f766be1567cd8dff0fc47e6",
      "declaration_sha256": "302fe6faabf3ffbc097fb2612a4f11b7a84ef48798573995dc5c7e6f18e68edb"
    },
    {
      "source_file": "apps/web/lib/credit/card-copy.ts",
      "declaration": "CARD_PATH",
      "source_file_sha256": "cd6cc94803114c13d47d3037c96e4b9c09dee2fdf858779a728b8e427432e05d",
      "declaration_sha256": "8afd6adac2281aa05c1801911e3316ec2f69b214695bbc0bf80b01c1d6c8595b"
    },
    {
      "source_file": "apps/web/lib/credit/card-copy.ts",
      "declaration": "cardDollars",
      "source_file_sha256": "cd6cc94803114c13d47d3037c96e4b9c09dee2fdf858779a728b8e427432e05d",
      "declaration_sha256": "c8f5c7b73758bd4304ab210de9a9cec38710ea6fe57ae33e693297b929894c93"
    },
    {
      "source_file": "apps/web/lib/credit/card-copy.ts",
      "declaration": "cardRequiredMessage",
      "source_file_sha256": "cd6cc94803114c13d47d3037c96e4b9c09dee2fdf858779a728b8e427432e05d",
      "declaration_sha256": "535a222c7d2b76a9da5bb373ecf0409286df12593ba9143524017f136bdf8a6a"
    },
    {
      "source_file": "apps/web/lib/ledger.ts",
      "declaration": "CREDIT_PACK_CENTS",
      "source_file_sha256": "d0ce3016985fb4643bf2f2b6201ffced820f3e6b8ec1103880e91d7fa8454214",
      "declaration_sha256": "d8b9058a8ae3915778e458f0f301b10a998d02f8eec6f1aec2c79ccbc6ba145e"
    },
    {
      "source_file": "apps/web/lib/ledger.ts",
      "declaration": "evaluateSpend",
      "source_file_sha256": "d0ce3016985fb4643bf2f2b6201ffced820f3e6b8ec1103880e91d7fa8454214",
      "declaration_sha256": "892777b77feb896786a4fc6a6b954a67dc51c237e7d2776310bb43ea1fc4f438"
    }
  ],
  "generated_at": "2026-09-17T00:16:12.909Z",
  "runner_sha256": "12e982eb11d21a7c8391e6cd25e89cd505374e11ba1cb793c740fd2991435b45",
  "dispatcher_tests": {
    "result": {
      "passed": 5,
      "failed": 0,
      "skipped": 15,
      "success": true
    },
    "command": "node node_modules/vitest/vitest.mjs run lib/services/__tests__/dispatch.test.ts lib/services/__tests__/dispatch.result.test.ts -t 'rejects with credits_required|enforces max_cost_cents|does not debit when upstream|returns the job view|balance is irrelevant' --reporter=json --outputFile=dispatch-test-report.json",
    "working_directory": "apps/web",
    "source_files": [
      {
        "source_file": "apps/web/lib/services/dispatch.ts",
        "sha256": "4b265f06927595389fc3a8bb76ef889853ea4408cb83217ede1f03fdbb3ecf6e"
      },
      {
        "source_file": "apps/web/lib/services/__tests__/dispatch.test.ts",
        "sha256": "b0aa31392ddf60353422ffe9d86b8ffe18e5b9dc9c53d0b044f144d911b79582"
      },
      {
        "source_file": "apps/web/lib/services/__tests__/dispatch.result.test.ts",
        "sha256": "5c8cfcc6270e46c20fa6718aeba9412effb7905590974e8363771e33c020c268"
      }
    ]
  },
  "artifacts": [
    {
      "file": "spending-check-demo.mjs",
      "sha256": "12e982eb11d21a7c8391e6cd25e89cd505374e11ba1cb793c740fd2991435b45"
    },
    {
      "file": "spending-check-results.json",
      "sha256": "b8913af120d6cc2637e653e58fd81eee5bfc6ef4bd3b5cf9ee477573bd826c61"
    },
    {
      "file": "dispatch-refusal-test.txt",
      "sha256": "68d486a34cc287805b8b988ecf6fa072ac0455601ecd51e22ac6f88570bbfecd"
    },
    {
      "file": "dispatch-test-results.json",
      "sha256": "48f61e516dbce4def8f7c4c5fb6f7e09c27c914dd39cbfa0e82c5f01f410ad35"
    }
  ]
}
