{
  "repository_name": "StreszCzarka---Krypto-AI-news-serwis",
  "canonical_repository_url": "https://github.com/CKportfolio/StreszCzarka---Krypto-AI-news-serwis",
  "generated_at": "2026-09-07T01:30:00Z",
  "snapshot_policy": {
    "version": "evidence-mirror-v1",
    "principle": "Original UTF-8 text only; HTML escaping, line anchors, page/chunk boundaries and metadata are added.",
    "security_scan_limitations": "Heuristic scan; it cannot guarantee detection of every secret or personal-data pattern."
  },
  "files": [
    {
      "path": ".env.example",
      "role": "OTHER",
      "size_bytes": 242,
      "line_count": null,
      "sha256_original_bytes": "0ae31f73d882340d15ee256389af0658f72be8abdd041ba506e5d411a97251d5",
      "html_url": null,
      "html_pages": [],
      "line_anchors_or_ranges": [],
      "chunk_number": null,
      "chunk_numbers": [],
      "status": "EXCLUDED",
      "exclusion_reason": "environment file",
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": ".github/dependabot.yml",
      "role": "CI",
      "size_bytes": 457,
      "line_count": 20,
      "sha256_original_bytes": "e2a234e564370d11f0568954e0cf20b332fcbc59b53efdda59ae55ce3955402e",
      "html_url": "files/by-path/dd4fbda47e51f1e35defb9275a9cd9c212ecde0b870cba89ddaaae65c5f3cd28/index.html",
      "html_pages": [
        {
          "url": "files/by-path/dd4fbda47e51f1e35defb9275a9cd9c212ecde0b870cba89ddaaae65c5f3cd28/index.html",
          "start_line": 1,
          "end_line": 20,
          "anchors": "#L1-#L20"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L20"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": ".github/workflows/ci.yml",
      "role": "CI",
      "size_bytes": 1563,
      "line_count": 64,
      "sha256_original_bytes": "0b1d188dc1d9cbb21d4aed8d22b34947f4b4f8be071992e92eff74417d887f0f",
      "html_url": "files/by-path/b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03f/index.html",
      "html_pages": [
        {
          "url": "files/by-path/b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03f/index.html",
          "start_line": 1,
          "end_line": 64,
          "anchors": "#L1-#L64"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L64"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": ".gitignore",
      "role": "CONFIG",
      "size_bytes": 96,
      "line_count": 7,
      "sha256_original_bytes": "6a631fe6a32cabbcefe97b1a1cd2f0bcbba35a34c68ef8dc020bb715514a9305",
      "html_url": "files/by-path/bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947/index.html",
      "html_pages": [
        {
          "url": "files/by-path/bc37d034bad564583790a46f19d807abfe519c5671395fd494d8cce506c42947/index.html",
          "start_line": 1,
          "end_line": 7,
          "anchors": "#L1-#L7"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L7"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": ".nvmrc",
      "role": "CONFIG",
      "size_bytes": 4,
      "line_count": 1,
      "sha256_original_bytes": "12d3a4efa6646b3ece4782f70033b9785bf0d167b553c43e22579b031cea5c4d",
      "html_url": "files/by-path/2c8effdf840690ccb88c7e21e56148978c6adb2c6926530c58ff0e47a9588b44/index.html",
      "html_pages": [
        {
          "url": "files/by-path/2c8effdf840690ccb88c7e21e56148978c6adb2c6926530c58ff0e47a9588b44/index.html",
          "start_line": 1,
          "end_line": 1,
          "anchors": "#L1-#L1"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L1"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "docker-compose.yml",
      "role": "CONFIG",
      "size_bytes": 1030,
      "line_count": 40,
      "sha256_original_bytes": "2ccbe1583aac6ebf16f299012a0392725409ecf2076eb2bd1baa5f30a34b2e3b",
      "html_url": "files/by-path/e45e45baeda1c1e73482975a664062aa56f20c03dd9d64a827aba57775bed0d3/index.html",
      "html_pages": [
        {
          "url": "files/by-path/e45e45baeda1c1e73482975a664062aa56f20c03dd9d64a827aba57775bed0d3/index.html",
          "start_line": 1,
          "end_line": 40,
          "anchors": "#L1-#L40"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L40"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "docs/SETUP.md",
      "role": "DOCS",
      "size_bytes": 3331,
      "line_count": 133,
      "sha256_original_bytes": "324e0a6540b4f79fce62cf5c5e4ceb531a377bd425afce2566d340f711011b0a",
      "html_url": "files/by-path/22495e73839073b1b84e771b0b9097a8820e466365fd27b123f7fe7edeeb3047/index.html",
      "html_pages": [
        {
          "url": "files/by-path/22495e73839073b1b84e771b0b9097a8820e466365fd27b123f7fe7edeeb3047/index.html",
          "start_line": 1,
          "end_line": 133,
          "anchors": "#L1-#L133"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L133"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "frontend/index.template.html",
      "role": "SOURCE",
      "size_bytes": 4346,
      "line_count": 101,
      "sha256_original_bytes": "de512b712ed2e5bf5b46253818ed4baf24bca3628bb38ca96db5d7c600edf841",
      "html_url": "files/by-path/600f3410d4a3f55a381044c3277e4fff8e97201ee992afc52589bba72a68c972/index.html",
      "html_pages": [
        {
          "url": "files/by-path/600f3410d4a3f55a381044c3277e4fff8e97201ee992afc52589bba72a68c972/index.html",
          "start_line": 1,
          "end_line": 101,
          "anchors": "#L1-#L101"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L101"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "frontend/package.json",
      "role": "CONFIG",
      "size_bytes": 142,
      "line_count": 8,
      "sha256_original_bytes": "9aae5dc80ab55484708f0ac6eca9332c3fe095a1c3b9e5d2e173936da38083bb",
      "html_url": "files/by-path/da6498268e99511d9ba0df3c13e439d10556a812881c9d03955b2ef7c6c1c655/index.html",
      "html_pages": [
        {
          "url": "files/by-path/da6498268e99511d9ba0df3c13e439d10556a812881c9d03955b2ef7c6c1c655/index.html",
          "start_line": 1,
          "end_line": 8,
          "anchors": "#L1-#L8"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L8"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "frontend/replace-env.js",
      "role": "SOURCE",
      "size_bytes": 493,
      "line_count": 16,
      "sha256_original_bytes": "bb6de994ea295cb5642b5280a7443c2c059b0de23e2ec34c0c26de75f2acd516",
      "html_url": "files/by-path/622f89ebcc85b69183fb9f833d60958dedaafcf37b7ca9a00161ac21a19b83d9/index.html",
      "html_pages": [
        {
          "url": "files/by-path/622f89ebcc85b69183fb9f833d60958dedaafcf37b7ca9a00161ac21a19b83d9/index.html",
          "start_line": 1,
          "end_line": 16,
          "anchors": "#L1-#L16"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L16"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "package-lock.json",
      "role": "CONFIG",
      "size_bytes": 219,
      "line_count": 12,
      "sha256_original_bytes": "527b04f8c3666aa6db7d5a0b7d145a8bf681fb288812e2f1bb7cce2da7ffa5e1",
      "html_url": "files/by-path/053150b640a7ce75eff69d1a22cae7f0f94ad64ce9a855db544dda0929316519/index.html",
      "html_pages": [
        {
          "url": "files/by-path/053150b640a7ce75eff69d1a22cae7f0f94ad64ce9a855db544dda0929316519/index.html",
          "start_line": 1,
          "end_line": 12,
          "anchors": "#L1-#L12"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L12"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "package.json",
      "role": "CONFIG",
      "size_bytes": 481,
      "line_count": 13,
      "sha256_original_bytes": "0791f68b760fd7ff2eb6c54c25e0e57f1a79f131e1a260ff6f395094a987b217",
      "html_url": "files/by-path/7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519/index.html",
      "html_pages": [
        {
          "url": "files/by-path/7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519/index.html",
          "start_line": 1,
          "end_line": 13,
          "anchors": "#L1-#L13"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L13"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "README.md",
      "role": "DOCS",
      "size_bytes": 3551,
      "line_count": 81,
      "sha256_original_bytes": "d4c423831c0fc3d30879259016b3e49925ff20a64e5f88ef1080521c8262b39c",
      "html_url": "files/by-path/b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5/index.html",
      "html_pages": [
        {
          "url": "files/by-path/b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5/index.html",
          "start_line": 1,
          "end_line": 81,
          "anchors": "#L1-#L81"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L81"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "scripts/check-syntax.mjs",
      "role": "SOURCE",
      "size_bytes": 883,
      "line_count": 27,
      "sha256_original_bytes": "114b7e8692b7802a55e3f8afa0e6b661f481ab65282886a0e6cfcb3042a4a830",
      "html_url": "files/by-path/ebbaca62151927029644c2855b798fab8af953bb19bf16a37c72c1c812765669/index.html",
      "html_pages": [
        {
          "url": "files/by-path/ebbaca62151927029644c2855b798fab8af953bb19bf16a37c72c1c812765669/index.html",
          "start_line": 1,
          "end_line": 27,
          "anchors": "#L1-#L27"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L27"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "SECURITY.md",
      "role": "DOCS",
      "size_bytes": 1164,
      "line_count": 19,
      "sha256_original_bytes": "53a5e651ac7082b75312a78377473878739574f18ec70120d7b9ce536e22262c",
      "html_url": "files/by-path/f6ed156e4bf5c791680662464b94ea5d753f219ee816b385f67870e2c0d7d4c7/index.html",
      "html_pages": [
        {
          "url": "files/by-path/f6ed156e4bf5c791680662464b94ea5d753f219ee816b385f67870e2c0d7d4c7/index.html",
          "start_line": 1,
          "end_line": 19,
          "anchors": "#L1-#L19"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L19"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/article-extractor/Dockerfile",
      "role": "CONFIG",
      "size_bytes": 231,
      "line_count": 12,
      "sha256_original_bytes": "ef02061d9580c6be5a6c8f41b9ba0aa47d2ae5c89b1ef701bb6fc23688aeb408",
      "html_url": "files/by-path/f8209da05c36c20a9fe57f7ce131c94b4dc157f7fff23b3e0429d2677c8ef4bb/index.html",
      "html_pages": [
        {
          "url": "files/by-path/f8209da05c36c20a9fe57f7ce131c94b4dc157f7fff23b3e0429d2677c8ef4bb/index.html",
          "start_line": 1,
          "end_line": 12,
          "anchors": "#L1-#L12"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L12"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/article-extractor/index.js",
      "role": "SOURCE",
      "size_bytes": 2982,
      "line_count": 99,
      "sha256_original_bytes": "15ad571fe31a629ec1e2e153da4657978bf507e4eae16a25d7197abcaf1d2d0d",
      "html_url": "files/by-path/7265eabcbde2eb45503355a720807e76c48ad2f795bdbd0e814dbd1e0bebcb85/index.html",
      "html_pages": [
        {
          "url": "files/by-path/7265eabcbde2eb45503355a720807e76c48ad2f795bdbd0e814dbd1e0bebcb85/index.html",
          "start_line": 1,
          "end_line": 99,
          "anchors": "#L1-#L99"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L99"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/article-extractor/lib/security.js",
      "role": "DOCS",
      "size_bytes": 1781,
      "line_count": 56,
      "sha256_original_bytes": "d48885363a443df6d8df260a8d136b826d0301de9bf309420bf52b164a2f545e",
      "html_url": "files/by-path/7ba90c901c28a7d7e298177862f948ea042792d0f4f362bb762ee36ffee0c381/index.html",
      "html_pages": [
        {
          "url": "files/by-path/7ba90c901c28a7d7e298177862f948ea042792d0f4f362bb762ee36ffee0c381/index.html",
          "start_line": 1,
          "end_line": 56,
          "anchors": "#L1-#L56"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L56"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/article-extractor/package.json",
      "role": "CONFIG",
      "size_bytes": 370,
      "line_count": 15,
      "sha256_original_bytes": "e2776055a8a32d9d1e043a08515d2c7be4e5a13c9dfaba11ff84e2de240f0b2d",
      "html_url": "files/by-path/f8c88a1a71f0ca7b2835d8299381682d742c825c76cda67ef087619b627033eb/index.html",
      "html_pages": [
        {
          "url": "files/by-path/f8c88a1a71f0ca7b2835d8299381682d742c825c76cda67ef087619b627033eb/index.html",
          "start_line": 1,
          "end_line": 15,
          "anchors": "#L1-#L15"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L15"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/article-extractor/tests/security.test.js",
      "role": "TEST",
      "size_bytes": 2899,
      "line_count": 72,
      "sha256_original_bytes": "6836b8312076a28f2151bfde248ed72108c08d5356418789efa44d2f3b3d8b66",
      "html_url": "files/by-path/1852dbf48c571142bfee509d117c579ff76b24d2fd0a15fed92a7d2f21a52e7e/index.html",
      "html_pages": [
        {
          "url": "files/by-path/1852dbf48c571142bfee509d117c579ff76b24d2fd0a15fed92a7d2f21a52e7e/index.html",
          "start_line": 1,
          "end_line": 72,
          "anchors": "#L1-#L72"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L72"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/storage-api/Dockerfile",
      "role": "CONFIG",
      "size_bytes": 131,
      "line_count": 7,
      "sha256_original_bytes": "cb36f749e391f4fe4181be457d8bdfc0549e0522320d1bd616756fb2bcb5aa71",
      "html_url": "files/by-path/91e5d02088d24c3acea9308de4504357afa0660d295cd1aaf6b0a7cdac2ef382/index.html",
      "html_pages": [
        {
          "url": "files/by-path/91e5d02088d24c3acea9308de4504357afa0660d295cd1aaf6b0a7cdac2ef382/index.html",
          "start_line": 1,
          "end_line": 7,
          "anchors": "#L1-#L7"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L7"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/storage-api/index.js",
      "role": "SOURCE",
      "size_bytes": 6004,
      "line_count": 180,
      "sha256_original_bytes": "d496efe7c79d01563e0614cd169f98fce205ec610c813ccc00e24d9337b88ce7",
      "html_url": "files/by-path/f9dd45ff8d3f755e6bcb4053773defe6d6710e2f66df94d8b7fce64742675c7b/index.html",
      "html_pages": [
        {
          "url": "files/by-path/f9dd45ff8d3f755e6bcb4053773defe6d6710e2f66df94d8b7fce64742675c7b/index.html",
          "start_line": 1,
          "end_line": 180,
          "anchors": "#L1-#L180"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L180"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/storage-api/init.sql",
      "role": "SOURCE",
      "size_bytes": 575,
      "line_count": 22,
      "sha256_original_bytes": "c6875c64b69a3b659fe88cf5f7bddad24133108d816030e4ed9f675d41e72a86",
      "html_url": "files/by-path/88a03c303d2c34f9dc4adc0e48ec2765f901558077c67d557d471406797542e3/index.html",
      "html_pages": [
        {
          "url": "files/by-path/88a03c303d2c34f9dc4adc0e48ec2765f901558077c67d557d471406797542e3/index.html",
          "start_line": 1,
          "end_line": 22,
          "anchors": "#L1-#L22"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L22"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/storage-api/lib/security.js",
      "role": "DOCS",
      "size_bytes": 835,
      "line_count": 25,
      "sha256_original_bytes": "6e25366c8d6c12213903660b9e208071135bbe7e4adcd795302ace0e3907d18a",
      "html_url": "files/by-path/a5768fdd538ffddb73d96310b1f58b00e0da29c860fcb1db9d8107e3fc3b12ea/index.html",
      "html_pages": [
        {
          "url": "files/by-path/a5768fdd538ffddb73d96310b1f58b00e0da29c860fcb1db9d8107e3fc3b12ea/index.html",
          "start_line": 1,
          "end_line": 25,
          "anchors": "#L1-#L25"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L25"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/storage-api/package.json",
      "role": "CONFIG",
      "size_bytes": 364,
      "line_count": 15,
      "sha256_original_bytes": "8335acf4f40a1e6beca9e4d80b7fa294e9ad4377007481ab2e8e9548ec19c252",
      "html_url": "files/by-path/dcc2215a6f30fa00d6095c3a07da7c8d3ab929cde735f733d9b2d945e4ae0eca/index.html",
      "html_pages": [
        {
          "url": "files/by-path/dcc2215a6f30fa00d6095c3a07da7c8d3ab929cde735f733d9b2d945e4ae0eca/index.html",
          "start_line": 1,
          "end_line": 15,
          "anchors": "#L1-#L15"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L15"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/storage-api/public/index.html",
      "role": "SOURCE",
      "size_bytes": 2595,
      "line_count": 57,
      "sha256_original_bytes": "635103e1ec0a9564e66cfedf66802dfbddc379cc5b8b8a69cb3fab7e0374768c",
      "html_url": "files/by-path/c8489224ea691c29da766286ee0664407c2e31dc94b2ca29176641a5fbd972ec/index.html",
      "html_pages": [
        {
          "url": "files/by-path/c8489224ea691c29da766286ee0664407c2e31dc94b2ca29176641a5fbd972ec/index.html",
          "start_line": 1,
          "end_line": 57,
          "anchors": "#L1-#L57"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L57"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "services/storage-api/tests/security.test.js",
      "role": "TEST",
      "size_bytes": 2169,
      "line_count": 56,
      "sha256_original_bytes": "165c5712da15e2aa30c8f3b7455434a3b7a83845c832ec8841d575daf7359e20",
      "html_url": "files/by-path/705eb543d95cb2b2825dfb17bb59e05ec10ab6b05a66897a2c38123920b9ec04/index.html",
      "html_pages": [
        {
          "url": "files/by-path/705eb543d95cb2b2825dfb17bb59e05ec10ab6b05a66897a2c38123920b9ec04/index.html",
          "start_line": 1,
          "end_line": 56,
          "anchors": "#L1-#L56"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L56"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "supabase/schema.sql",
      "role": "CONFIG",
      "size_bytes": 1273,
      "line_count": 43,
      "sha256_original_bytes": "c7903434b6cdf07e538b36f988e085437f35f32e20997246ed222aee907297f2",
      "html_url": "files/by-path/23135fa07bae8f6f00bbf8f64c86b841a74dc3d874772a379cace1aaefe14c26/index.html",
      "html_pages": [
        {
          "url": "files/by-path/23135fa07bae8f6f00bbf8f64c86b841a74dc3d874772a379cace1aaefe14c26/index.html",
          "start_line": 1,
          "end_line": 43,
          "anchors": "#L1-#L43"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L43"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "tests/deployment-contracts.test.mjs",
      "role": "TEST",
      "size_bytes": 932,
      "line_count": 22,
      "sha256_original_bytes": "074750177bc801999742b5d2a58d0f15a70034c317ef981deb6dcb7017759abb",
      "html_url": "files/by-path/035e8e6b2b6937e9b19403b79e93744eef1531415542d2b757d3e86ae1cb5af9/index.html",
      "html_pages": [
        {
          "url": "files/by-path/035e8e6b2b6937e9b19403b79e93744eef1531415542d2b757d3e86ae1cb5af9/index.html",
          "start_line": 1,
          "end_line": 22,
          "anchors": "#L1-#L22"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L22"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "tests/frontend-build.test.mjs",
      "role": "TEST",
      "size_bytes": 1352,
      "line_count": 32,
      "sha256_original_bytes": "05aab26aa7b4ca45ef1a4edd8f50993e412e9b674c2873c634ee9a215c3c1d81",
      "html_url": "files/by-path/854858c556229d12e1d4a0986857c4bfca925c055ba3f457dc8a385176ef6f2f/index.html",
      "html_pages": [
        {
          "url": "files/by-path/854858c556229d12e1d4a0986857c4bfca925c055ba3f457dc8a385176ef6f2f/index.html",
          "start_line": 1,
          "end_line": 32,
          "anchors": "#L1-#L32"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L32"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "tests/workflow-contracts.test.mjs",
      "role": "TEST",
      "size_bytes": 2283,
      "line_count": 52,
      "sha256_original_bytes": "73bd13124f6cf9a55e1f1ef9777bd80862efac843e6977fef3bee679c63d91cf",
      "html_url": "files/by-path/0a783ae826571bc343a5cc4f7b0f3ef4f912c4162ef08c8df1aa6cdfa9f96895/index.html",
      "html_pages": [
        {
          "url": "files/by-path/0a783ae826571bc343a5cc4f7b0f3ef4f912c4162ef08c8df1aa6cdfa9f96895/index.html",
          "start_line": 1,
          "end_line": 52,
          "anchors": "#L1-#L52"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L52"
      ],
      "chunk_number": 1,
      "chunk_numbers": [
        1
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "workflows/01-ingest-coindesk.json",
      "role": "CONFIG",
      "size_bytes": 23167,
      "line_count": 756,
      "sha256_original_bytes": "2609ce427a6e9272339a00944d143d198a9eb3b6a7025027f507f9715f1fc9df",
      "html_url": "files/by-path/a67074803b4389840d9eb4e5e00df6805d47c43eb04ea59417683c282c6c11b2/part-001.html",
      "html_pages": [
        {
          "url": "files/by-path/a67074803b4389840d9eb4e5e00df6805d47c43eb04ea59417683c282c6c11b2/part-001.html",
          "start_line": 1,
          "end_line": 500,
          "anchors": "#L1-#L500"
        },
        {
          "url": "files/by-path/a67074803b4389840d9eb4e5e00df6805d47c43eb04ea59417683c282c6c11b2/part-002.html",
          "start_line": 501,
          "end_line": 756,
          "anchors": "#L501-#L756"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L500",
        "#L501-#L756"
      ],
      "chunk_number": 2,
      "chunk_numbers": [
        2
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "workflows/02-ingest-cointelegraph.json",
      "role": "CONFIG",
      "size_bytes": 24461,
      "line_count": 756,
      "sha256_original_bytes": "74df29db07d23f0713c75accd681337b9078f16f0d5347ab76f289f217714b0b",
      "html_url": "files/by-path/8447baa809f57add7263bcfcf9c832b88e4529b357a3be474798b03d7b7eb420/part-001.html",
      "html_pages": [
        {
          "url": "files/by-path/8447baa809f57add7263bcfcf9c832b88e4529b357a3be474798b03d7b7eb420/part-001.html",
          "start_line": 1,
          "end_line": 500,
          "anchors": "#L1-#L500"
        },
        {
          "url": "files/by-path/8447baa809f57add7263bcfcf9c832b88e4529b357a3be474798b03d7b7eb420/part-002.html",
          "start_line": 501,
          "end_line": 756,
          "anchors": "#L501-#L756"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L500",
        "#L501-#L756"
      ],
      "chunk_number": 2,
      "chunk_numbers": [
        2
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "workflows/03-build-digest.json",
      "role": "CONFIG",
      "size_bytes": 11457,
      "line_count": 336,
      "sha256_original_bytes": "325bb8d0a26938cc45d000eb18fd084c196c79f7a0ce9f54c8ae2e38f4b73386",
      "html_url": "files/by-path/d854843a7bb423566cf5f325f300302c2cfddc69fa52723c21f6a32b4151a35f/index.html",
      "html_pages": [
        {
          "url": "files/by-path/d854843a7bb423566cf5f325f300302c2cfddc69fa52723c21f6a32b4151a35f/index.html",
          "start_line": 1,
          "end_line": 336,
          "anchors": "#L1-#L336"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L336"
      ],
      "chunk_number": 3,
      "chunk_numbers": [
        3
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    },
    {
      "path": "workflows/04-market-dashboard.json",
      "role": "CONFIG",
      "size_bytes": 17831,
      "line_count": 567,
      "sha256_original_bytes": "5b768fa8defc61b2b51a392765df4460696678f4d01c543d436c6626f4f3cc30",
      "html_url": "files/by-path/437090aac81cb7b1815cf7df1ab3f67c3791b2b85a2e70f3faa91de0be11415d/part-001.html",
      "html_pages": [
        {
          "url": "files/by-path/437090aac81cb7b1815cf7df1ab3f67c3791b2b85a2e70f3faa91de0be11415d/part-001.html",
          "start_line": 1,
          "end_line": 500,
          "anchors": "#L1-#L500"
        },
        {
          "url": "files/by-path/437090aac81cb7b1815cf7df1ab3f67c3791b2b85a2e70f3faa91de0be11415d/part-002.html",
          "start_line": 501,
          "end_line": 567,
          "anchors": "#L501-#L567"
        }
      ],
      "line_anchors_or_ranges": [
        "#L1-#L500",
        "#L501-#L567"
      ],
      "chunk_number": 3,
      "chunk_numbers": [
        3
      ],
      "status": "INCLUDED",
      "exclusion_reason": null,
      "security_review": {
        "categories_detected": [],
        "categories_approved_by_owner": []
      }
    }
  ],
  "chunks": [
    {
      "chunk_number": 1,
      "url": "chunks/chunk-001.html",
      "files": [
        {
          "path": ".github/dependabot.yml",
          "start_line": 1,
          "end_line": 20
        },
        {
          "path": ".github/workflows/ci.yml",
          "start_line": 1,
          "end_line": 64
        },
        {
          "path": ".gitignore",
          "start_line": 1,
          "end_line": 7
        },
        {
          "path": ".nvmrc",
          "start_line": 1,
          "end_line": 1
        },
        {
          "path": "docker-compose.yml",
          "start_line": 1,
          "end_line": 40
        },
        {
          "path": "docs/SETUP.md",
          "start_line": 1,
          "end_line": 133
        },
        {
          "path": "frontend/index.template.html",
          "start_line": 1,
          "end_line": 101
        },
        {
          "path": "frontend/package.json",
          "start_line": 1,
          "end_line": 8
        },
        {
          "path": "frontend/replace-env.js",
          "start_line": 1,
          "end_line": 16
        },
        {
          "path": "package-lock.json",
          "start_line": 1,
          "end_line": 12
        },
        {
          "path": "package.json",
          "start_line": 1,
          "end_line": 13
        },
        {
          "path": "README.md",
          "start_line": 1,
          "end_line": 81
        },
        {
          "path": "scripts/check-syntax.mjs",
          "start_line": 1,
          "end_line": 27
        },
        {
          "path": "SECURITY.md",
          "start_line": 1,
          "end_line": 19
        },
        {
          "path": "services/article-extractor/Dockerfile",
          "start_line": 1,
          "end_line": 12
        },
        {
          "path": "services/article-extractor/index.js",
          "start_line": 1,
          "end_line": 99
        },
        {
          "path": "services/article-extractor/lib/security.js",
          "start_line": 1,
          "end_line": 56
        },
        {
          "path": "services/article-extractor/package.json",
          "start_line": 1,
          "end_line": 15
        },
        {
          "path": "services/article-extractor/tests/security.test.js",
          "start_line": 1,
          "end_line": 72
        },
        {
          "path": "services/storage-api/Dockerfile",
          "start_line": 1,
          "end_line": 7
        },
        {
          "path": "services/storage-api/index.js",
          "start_line": 1,
          "end_line": 180
        },
        {
          "path": "services/storage-api/init.sql",
          "start_line": 1,
          "end_line": 22
        },
        {
          "path": "services/storage-api/lib/security.js",
          "start_line": 1,
          "end_line": 25
        },
        {
          "path": "services/storage-api/package.json",
          "start_line": 1,
          "end_line": 15
        },
        {
          "path": "services/storage-api/public/index.html",
          "start_line": 1,
          "end_line": 57
        },
        {
          "path": "services/storage-api/tests/security.test.js",
          "start_line": 1,
          "end_line": 56
        },
        {
          "path": "supabase/schema.sql",
          "start_line": 1,
          "end_line": 43
        },
        {
          "path": "tests/deployment-contracts.test.mjs",
          "start_line": 1,
          "end_line": 22
        },
        {
          "path": "tests/frontend-build.test.mjs",
          "start_line": 1,
          "end_line": 32
        },
        {
          "path": "tests/workflow-contracts.test.mjs",
          "start_line": 1,
          "end_line": 52
        }
      ]
    },
    {
      "chunk_number": 2,
      "url": "chunks/chunk-002.html",
      "files": [
        {
          "path": "workflows/01-ingest-coindesk.json",
          "start_line": 1,
          "end_line": 756
        },
        {
          "path": "workflows/02-ingest-cointelegraph.json",
          "start_line": 1,
          "end_line": 756
        }
      ]
    },
    {
      "chunk_number": 3,
      "url": "chunks/chunk-003.html",
      "files": [
        {
          "path": "workflows/03-build-digest.json",
          "start_line": 1,
          "end_line": 336
        },
        {
          "path": "workflows/04-market-dashboard.json",
          "start_line": 1,
          "end_line": 567
        }
      ]
    }
  ]
}
