{
  "reviewDate": "2026-09-07",
  "evidenceClass": "source-reviewed",
  "browserNetworkCapture": false,
  "inferenceExecutedForThisReview": false,
  "scope": "Static review of local-file Whisper data flow and model-cache source; related-editor provider adapter used only as a separately versioned external-service comparison.",
  "siteSourceVersion": "September 7 working source; two patch files are uncommitted, so their file hashes, not the repository HEAD, identify them. No claim of byte identity with the currently deployed website.",
  "sources": [
    {
      "id": "whisper-local-file-picker",
      "path": "recovered-netlify-dist/assets/index-cce58688.js",
      "sha256": "c886ae955ae51605d05a580aac6535dfc21f51ca968139f2ee3bb242f852dc25",
      "bytes": 32872,
      "status": "source-reviewed",
      "excerptByteStart": 26794,
      "excerptByteEndExclusive": 26988,
      "excerptSha256": "0ab95937a89c1fdc736fce1e4bce410cb64a27316de17d18340c16558acabe30"
    },
    {
      "id": "whisper-decoded-input-to-worker",
      "path": "scripts/whisper-runtime-patch.mjs",
      "sha256": "5357be059c1db23376db409e785a88821a8cc1961a6873d821bd674f54907a40",
      "bytes": 11365,
      "status": "source-reviewed",
      "excerptStartLine": 135,
      "excerptEndLine": 150,
      "excerptSha256": "d065524f72918a93bcfaea5be4bbcac9ce31b755a5c108d1f3c815d16b41df35"
    },
    {
      "id": "whisper-model-loader",
      "path": "scripts/whisper-runtime-patch.mjs",
      "sha256": "5357be059c1db23376db409e785a88821a8cc1961a6873d821bd674f54907a40",
      "bytes": 11365,
      "status": "source-reviewed",
      "excerptStartLine": 29,
      "excerptEndLine": 46,
      "excerptSha256": "91ba5601b6c16d9e9053f2750ac288cb70ec34527a1f4870b6f373f44f75214b"
    },
    {
      "id": "whisper-inference-and-text-return",
      "path": "scripts/whisper-runtime-patch.mjs",
      "sha256": "5357be059c1db23376db409e785a88821a8cc1961a6873d821bd674f54907a40",
      "bytes": 11365,
      "status": "source-reviewed",
      "excerptStartLine": 67,
      "excerptEndLine": 84,
      "excerptSha256": "81c1e933b21502d3f283ed5b3dbfea30f2f7d47c141199fa7df6f3a43e8d6642"
    },
    {
      "id": "model-cache-service-worker",
      "path": "scripts/model-runtime-cache.sw.js",
      "sha256": "08f3b21c55e9f8fe92f25a31e0d0714c0aa08f374c405a2ef472ffb184d38579",
      "bytes": 1493,
      "status": "source-reviewed",
      "excerptStartLine": 1,
      "excerptEndLine": 42,
      "excerptSha256": "08f3b21c55e9f8fe92f25a31e0d0714c0aa08f374c405a2ef472ffb184d38579"
    },
    {
      "id": "related-editor-provider-handoff",
      "path": "recovered-netlify-dist/resources/evidence/2026-09-07/generation-plugin/upstream/src/plugins/generation/providers/puter/adapter.js",
      "sha256": "993644ba2780b4294ea4df7f0d64a9bdb1242a73e4849ff2d49802db83f075cc",
      "bytes": 6755,
      "status": "source-reviewed",
      "excerptStartLine": 108,
      "excerptEndLine": 123,
      "excerptSha256": "a7b83b559990851b115ec53297075709b8318102d1bde1a84956e830319b06ba",
      "upstreamUrl": "https://github.com/MartinDelophy/ai-video-editor/blob/3684ec4063583c66c80e34e90c655a71d65dad1b/src/plugins/generation/providers/puter/adapter.js#L108"
    },
    {
      "id": "related-editor-video-handoff",
      "path": "recovered-netlify-dist/resources/evidence/2026-09-07/generation-plugin/upstream/src/plugins/generation/providers/puter/adapter.js",
      "sha256": "993644ba2780b4294ea4df7f0d64a9bdb1242a73e4849ff2d49802db83f075cc",
      "bytes": 6755,
      "status": "source-reviewed",
      "excerptStartLine": 141,
      "excerptEndLine": 149,
      "excerptSha256": "ffe907d4b0328af93f4bb7f5527fe46989fe37b2f6c21111dd627b0fa723eb6e",
      "upstreamUrl": "https://github.com/MartinDelophy/ai-video-editor/blob/3684ec4063583c66c80e34e90c655a71d65dad1b/src/plugins/generation/providers/puter/adapter.js#L141"
    }
  ],
  "observations": [
    {
      "id": "local-file",
      "finding": "The recovered Whisper picker returns URL.createObjectURL(files[0]); the patched action reads the media URL, decodes samples, then posts them to the worker.",
      "limits": "Other possible input sources and other scripts require separate review; the source path is not a whole-session Network capture."
    },
    {
      "id": "model-pipeline",
      "finding": "The worker invokes the whisper-tiny pipeline with local_files_only true and a /models/whisper-tiny cache_dir setting; it invokes transcriber(data.src) and sends text back.",
      "limits": "These are pipeline options, not a network prohibition for the page or a full audit of the runtime library."
    },
    {
      "id": "cache-rule",
      "finding": "ai-creator-models-v2 intercepts eligible same-origin GET URLs ending .onnx/.bin/.wasm/.json or starting /models/; Range requests bypass this handler; only successful basic responses are cached.",
      "limits": "The .json rule can match non-model resources. Unhandled requests are not blocked. Actual cache entries and retention after a session were not inspected."
    },
    {
      "id": "external-provider",
      "finding": "The separately pinned editor adapter passes prompt and model to Puter txt2img/txt2vid and then reads output media.",
      "limits": "No remote generation ran. SDK transport details and provider-side retention were not observed."
    }
  ],
  "artifactSha256": {
    "source-snippets.md": "e221d235dbaf7f876efd655d02dd2eaa40d95676af873466bb39c6c16b044d75"
  }
}
