zorya-classifier 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/NOTICE.md +2 -0
  2. package/README.md +18 -6
  3. package/dist/app/cli-arguments.d.ts +40 -0
  4. package/dist/app/cli-arguments.js +67 -0
  5. package/dist/app/create-classifier.d.ts +19 -0
  6. package/dist/app/create-classifier.js +226 -14
  7. package/dist/app/extraction-files.d.ts +9 -0
  8. package/dist/app/extraction-files.js +28 -0
  9. package/dist/cli.js +58 -14
  10. package/dist/entities/boundary-view.d.ts +29 -0
  11. package/dist/entities/boundary-view.js +1 -0
  12. package/dist/entities/contracts.d.ts +77 -1
  13. package/dist/entities/contracts.js +7 -0
  14. package/dist/entities/cutout-raster.d.ts +7 -0
  15. package/dist/entities/cutout-raster.js +1 -0
  16. package/dist/entities/object-proposals.d.ts +53 -0
  17. package/dist/entities/object-proposals.js +8 -0
  18. package/dist/entities/representation.d.ts +225 -0
  19. package/dist/entities/representation.js +33 -0
  20. package/dist/entities/segmentation-metadata.d.ts +11 -0
  21. package/dist/entities/segmentation-metadata.js +1 -0
  22. package/dist/entities/segmentation-verification.d.ts +30 -0
  23. package/dist/entities/segmentation-verification.js +1 -0
  24. package/dist/entities/segmentation.d.ts +159 -0
  25. package/dist/entities/segmentation.js +5 -0
  26. package/dist/entities/whole-object.d.ts +128 -0
  27. package/dist/entities/whole-object.js +7 -0
  28. package/dist/features/choice.d.ts +1 -1
  29. package/dist/features/choice.js +2 -2
  30. package/dist/features/segmentation/box-check.d.ts +10 -0
  31. package/dist/features/segmentation/box-check.js +299 -0
  32. package/dist/features/segmentation/mask.d.ts +6 -0
  33. package/dist/features/segmentation/mask.js +89 -0
  34. package/dist/features/segmentation/packed-mask.d.ts +5 -0
  35. package/dist/features/segmentation/packed-mask.js +53 -0
  36. package/dist/index.d.ts +6 -1
  37. package/dist/infrastructure/boundary-view.d.ts +2 -0
  38. package/dist/infrastructure/boundary-view.js +263 -0
  39. package/dist/infrastructure/openrouter-common.d.ts +8 -8
  40. package/dist/infrastructure/openrouter-vision.d.ts +3 -0
  41. package/dist/infrastructure/openrouter-vision.js +5 -0
  42. package/dist/infrastructure/raster.d.ts +10 -1
  43. package/dist/infrastructure/raster.js +99 -4
  44. package/dist/infrastructure/segmentation/box-presentation.d.ts +2 -0
  45. package/dist/infrastructure/segmentation/box-presentation.js +136 -0
  46. package/dist/infrastructure/segmentation/cutout-raster.d.ts +3 -0
  47. package/dist/infrastructure/segmentation/cutout-raster.js +79 -0
  48. package/dist/infrastructure/segmentation/grabcut/index.d.ts +13 -0
  49. package/dist/infrastructure/segmentation/grabcut/index.js +118 -0
  50. package/dist/infrastructure/segmentation/grabcut/worker-inference.d.ts +47 -0
  51. package/dist/infrastructure/segmentation/grabcut/worker-inference.js +260 -0
  52. package/dist/infrastructure/segmentation/index.d.ts +2 -0
  53. package/dist/infrastructure/segmentation/index.js +2 -0
  54. package/dist/infrastructure/segmentation/mobile-sam/index.d.ts +58 -0
  55. package/dist/infrastructure/segmentation/mobile-sam/index.js +472 -0
  56. package/dist/infrastructure/segmentation/mobile-sam/worker-inference.d.ts +149 -0
  57. package/dist/infrastructure/segmentation/mobile-sam/worker-inference.js +845 -0
  58. package/dist/infrastructure/segmentation/native-child.d.ts +23 -0
  59. package/dist/infrastructure/segmentation/native-child.js +297 -0
  60. package/dist/infrastructure/segmentation/native-protocol.d.ts +923 -0
  61. package/dist/infrastructure/segmentation/native-protocol.js +242 -0
  62. package/dist/infrastructure/segmentation/native-worker.d.ts +1 -0
  63. package/dist/infrastructure/segmentation/native-worker.js +93 -0
  64. package/dist/infrastructure/segmentation/probe-backend.d.ts +1 -0
  65. package/dist/infrastructure/segmentation/probe-backend.js +31 -0
  66. package/dist/infrastructure/segmentation/proposal-presentation.d.ts +3 -0
  67. package/dist/infrastructure/segmentation/proposal-presentation.js +371 -0
  68. package/dist/infrastructure/segmentation/verify-asset.d.ts +4 -0
  69. package/dist/infrastructure/segmentation/verify-asset.js +32 -0
  70. package/dist/infrastructure/text-representation.d.ts +23 -0
  71. package/dist/infrastructure/text-representation.js +226 -0
  72. package/dist/infrastructure/vision-chat.d.ts +1 -1
  73. package/dist/infrastructure/vision-chat.js +13 -4
  74. package/dist/openai-compatible.d.ts +3 -0
  75. package/dist/openai-compatible.js +4 -0
  76. package/dist/openrouter.d.ts +2 -2
  77. package/dist/openrouter.js +1 -1
  78. package/dist/processes/boundary-state.d.ts +12 -0
  79. package/dist/processes/boundary-state.js +196 -0
  80. package/dist/processes/classify.d.ts +2 -1
  81. package/dist/processes/classify.js +21 -3
  82. package/dist/processes/extract-from-region.d.ts +19 -0
  83. package/dist/processes/extract-from-region.js +415 -0
  84. package/dist/processes/extract.d.ts +25 -0
  85. package/dist/processes/extract.js +223 -0
  86. package/dist/processes/locate.d.ts +2 -1
  87. package/dist/processes/locate.js +84 -11
  88. package/dist/processes/proposal-location.d.ts +19 -0
  89. package/dist/processes/proposal-location.js +396 -0
  90. package/dist/processes/whole-object.d.ts +7 -0
  91. package/dist/processes/whole-object.js +272 -0
  92. package/dist/segmentation.d.ts +10 -0
  93. package/dist/segmentation.js +4 -0
  94. package/dist/shared/input-budget.d.ts +7 -0
  95. package/dist/shared/input-budget.js +21 -0
  96. package/docs/0.2.0-plan.md +190 -0
  97. package/docs/README.ru.md +18 -5
  98. package/docs/acceptance.md +116 -3
  99. package/docs/api.md +8 -4
  100. package/docs/architecture.md +20 -7
  101. package/docs/benchmarks.md +10 -0
  102. package/docs/categorical-presence-port.md +26 -0
  103. package/docs/evidence/v02/baseline.json +1043 -0
  104. package/docs/evidence/v02/boundary-variants.md +17 -0
  105. package/docs/evidence/v02/box-confirmation-dev40/README.md +15 -0
  106. package/docs/evidence/v02/box-confirmation-dev40/component-refinement.json +246 -0
  107. package/docs/evidence/v02/box-confirmation-dev40/evaluation.json +1663 -0
  108. package/docs/evidence/v02/box-confirmation-dev40/provenance.json +130 -0
  109. package/docs/evidence/v02/box-confirmation-dev40/report.json +127 -0
  110. package/docs/evidence/v02/box-confirmation-dev40-freeze-20261020-v1.json +230 -0
  111. package/docs/evidence/v02/box-confirmation-method-selection-20261020-v1.json +85 -0
  112. package/docs/evidence/v02/box-heldout-cancelled-before-dispatch-20261021-v1.json +32 -0
  113. package/docs/evidence/v02/box-heldout-combined-seal-20261021-v1.json +89 -0
  114. package/docs/evidence/v02/box-heldout-evaluator-truth-seal-20261021-v1.json +61 -0
  115. package/docs/evidence/v02/box-heldout-exclusion-audit-20261020-v1.json +81 -0
  116. package/docs/evidence/v02/box-heldout-map-seal-20261021-v1.json +48 -0
  117. package/docs/evidence/v02/box-heldout-photo-seal-20261020-v1.json +62 -0
  118. package/docs/evidence/v02/box-heldout-run-freeze-20261021-v1.json +61 -0
  119. package/docs/evidence/v02/box-heldout-source-review-20261020-v1.json +134 -0
  120. package/docs/evidence/v02/box-heldout-ui-seal-20261020-v1.json +44 -0
  121. package/docs/evidence/v02/calculator-proof-root-review-20261020-v1.json +63 -0
  122. package/docs/evidence/v02/categorical-dev40-freeze.json +94 -0
  123. package/docs/evidence/v02/categorical-dev40-preserve.json +460 -0
  124. package/docs/evidence/v02/categorical-dev40-target-only.json +460 -0
  125. package/docs/evidence/v02/categorical-heldout-admission-20261020-v3.json +215 -0
  126. package/docs/evidence/v02/categorical-heldout-admission-20261020-v4.json +270 -0
  127. package/docs/evidence/v02/categorical-heldout-dispatch-authorization-20261020-v4.json +79 -0
  128. package/docs/evidence/v02/categorical-heldout-predispatch-20261020-v3.json +57 -0
  129. package/docs/evidence/v02/categorical-heldout-producer-source-map-v4.json +262 -0
  130. package/docs/evidence/v02/categorical-heldout-producer-source-map.json +263 -0
  131. package/docs/evidence/v02/categorical-heldout-run-freeze-20261020-v3.json +35 -0
  132. package/docs/evidence/v02/categorical-heldout-run-freeze-20261020-v4.json +35 -0
  133. package/docs/evidence/v02/categorical-heldout-v4/README.md +35 -0
  134. package/docs/evidence/v02/categorical-heldout-v4/candidate-evaluation.json +2812 -0
  135. package/docs/evidence/v02/categorical-heldout-v4/candidate-physical-receipts.json +15261 -0
  136. package/docs/evidence/v02/categorical-heldout-v4/candidate-provenance.json +131 -0
  137. package/docs/evidence/v02/categorical-heldout-v4/control-evaluation.json +855 -0
  138. package/docs/evidence/v02/categorical-heldout-v4/control-physical-receipts.json +4402 -0
  139. package/docs/evidence/v02/categorical-heldout-v4/control-provenance.json +31 -0
  140. package/docs/evidence/v02/categorical-heldout-v4/mask-normalized-exploratory.json +682 -0
  141. package/docs/evidence/v02/categorical-heldout-v4/paired-qualification.json +21 -0
  142. package/docs/evidence/v02/categorical-heldout-v4/report.json +258 -0
  143. package/docs/evidence/v02/categorical-presence-dev6.json +144 -0
  144. package/docs/evidence/v02/categorical-presence-dev6.md +18 -0
  145. package/docs/evidence/v02/categorical-vision-method-selection.json +90 -0
  146. package/docs/evidence/v02/checked-region-component-v1/README.md +7 -0
  147. package/docs/evidence/v02/checked-region-component-v1/evidence.json +311 -0
  148. package/docs/evidence/v02/checked-region-resource-interrupted-2b0d09f.json +102 -0
  149. package/docs/evidence/v02/checked-region-segmentation-resource-4df544c-receipt.json +167 -0
  150. package/docs/evidence/v02/checked-region-segmentation-resource-4df544c-root-review.json +58 -0
  151. package/docs/evidence/v02/checked-region-segmentation-resource-987ac32-receipt.json +158 -0
  152. package/docs/evidence/v02/ci-012b935.json +17 -0
  153. package/docs/evidence/v02/ci-0c365cb.json +372 -0
  154. package/docs/evidence/v02/ci-185bde8.json +32 -0
  155. package/docs/evidence/v02/ci-24f849f.json +95 -0
  156. package/docs/evidence/v02/ci-25c19cd.json +375 -0
  157. package/docs/evidence/v02/ci-2922caf.json +375 -0
  158. package/docs/evidence/v02/ci-29357d7.json +29 -0
  159. package/docs/evidence/v02/ci-32aa90d.json +24 -0
  160. package/docs/evidence/v02/ci-35e3064.json +376 -0
  161. package/docs/evidence/v02/ci-4331b1b.json +384 -0
  162. package/docs/evidence/v02/ci-43b7426.json +376 -0
  163. package/docs/evidence/v02/ci-450439c.json +373 -0
  164. package/docs/evidence/v02/ci-46283fe.json +29 -0
  165. package/docs/evidence/v02/ci-4c9c09f.json +34 -0
  166. package/docs/evidence/v02/ci-5579646.json +27 -0
  167. package/docs/evidence/v02/ci-6f9cc15.json +127 -0
  168. package/docs/evidence/v02/ci-7c1051f.json +27 -0
  169. package/docs/evidence/v02/ci-9837888.json +34 -0
  170. package/docs/evidence/v02/ci-987ac32.json +29 -0
  171. package/docs/evidence/v02/ci-9d00fe5.json +25 -0
  172. package/docs/evidence/v02/ci-9f85acc.json +127 -0
  173. package/docs/evidence/v02/ci-be275a6.json +201 -0
  174. package/docs/evidence/v02/ci-c107ddf.json +372 -0
  175. package/docs/evidence/v02/ci-c35f67d.json +127 -0
  176. package/docs/evidence/v02/ci-c5eddd8.json +32 -0
  177. package/docs/evidence/v02/ci-d2042e0.json +372 -0
  178. package/docs/evidence/v02/ci-d684259.json +375 -0
  179. package/docs/evidence/v02/ci-e0c190b.json +127 -0
  180. package/docs/evidence/v02/ci-e551253.json +372 -0
  181. package/docs/evidence/v02/ci-f9d4633.json +29 -0
  182. package/docs/evidence/v02/dev1-proposal-evaluation.md +13 -0
  183. package/docs/evidence/v02/dev2-mobile-sam-proposal-oracle.md +21 -0
  184. package/docs/evidence/v02/dev2-proposal-evaluation.md +21 -0
  185. package/docs/evidence/v02/fresh-development.md +16 -0
  186. package/docs/evidence/v02/fresh-native-numeric/artifact-hashes.json +9 -0
  187. package/docs/evidence/v02/fresh-native-numeric/evaluation-root-v1.json +568 -0
  188. package/docs/evidence/v02/fresh-native-numeric/run-manifest.json +342 -0
  189. package/docs/evidence/v02/fresh-native-numeric/summary.json +5654 -0
  190. package/docs/evidence/v02/fresh-native-outline-axis/artifact-hashes.json +9 -0
  191. package/docs/evidence/v02/fresh-native-outline-axis/evaluation-root-v1.json +568 -0
  192. package/docs/evidence/v02/fresh-native-outline-axis/run-manifest.json +378 -0
  193. package/docs/evidence/v02/fresh-native-outline-axis/summary.json +5605 -0
  194. package/docs/evidence/v02/fresh-text/README.md +23 -0
  195. package/docs/evidence/v02/fresh-text/ascii-contours-v1/classify-followup-run-manifest.json +405 -0
  196. package/docs/evidence/v02/fresh-text/ascii-contours-v1/classify-followup-summary.json +1646 -0
  197. package/docs/evidence/v02/fresh-text/ascii-contours-v1/evaluation.json +568 -0
  198. package/docs/evidence/v02/fresh-text/ascii-contours-v1/original-run-manifest.json +404 -0
  199. package/docs/evidence/v02/fresh-text/ascii-contours-v1/original-summary.json +4416 -0
  200. package/docs/evidence/v02/fresh-text/ascii-luma-v1/classify-followup-run-manifest.json +405 -0
  201. package/docs/evidence/v02/fresh-text/ascii-luma-v1/classify-followup-summary.json +1646 -0
  202. package/docs/evidence/v02/fresh-text/ascii-luma-v1/evaluation.json +568 -0
  203. package/docs/evidence/v02/fresh-text/ascii-luma-v1/original-run-manifest.json +404 -0
  204. package/docs/evidence/v02/fresh-text/ascii-luma-v1/original-summary.json +4647 -0
  205. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/classify-followup-run-manifest.json +405 -0
  206. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/classify-followup-summary.json +846 -0
  207. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/evaluation.json +568 -0
  208. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/original-run-manifest.json +404 -0
  209. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/original-summary.json +1789 -0
  210. package/docs/evidence/v02/fresh-text/no-image-control/evaluation.json +568 -0
  211. package/docs/evidence/v02/fresh-text/no-image-control/original-run-manifest.json +404 -0
  212. package/docs/evidence/v02/fresh-text/no-image-control/original-summary.json +3953 -0
  213. package/docs/evidence/v02/fresh-text/palette-grid-v1/classify-followup-run-manifest.json +405 -0
  214. package/docs/evidence/v02/fresh-text/palette-grid-v1/classify-followup-summary.json +1646 -0
  215. package/docs/evidence/v02/fresh-text/palette-grid-v1/evaluation.json +568 -0
  216. package/docs/evidence/v02/fresh-text/palette-grid-v1/original-run-manifest.json +404 -0
  217. package/docs/evidence/v02/fresh-text/palette-grid-v1/original-summary.json +3974 -0
  218. package/docs/evidence/v02/fresh-text/pixel-rle-v1/classify-followup-run-manifest.json +405 -0
  219. package/docs/evidence/v02/fresh-text/pixel-rle-v1/classify-followup-summary.json +1646 -0
  220. package/docs/evidence/v02/fresh-text/pixel-rle-v1/evaluation.json +568 -0
  221. package/docs/evidence/v02/fresh-text/pixel-rle-v1/original-run-manifest.json +404 -0
  222. package/docs/evidence/v02/fresh-text/pixel-rle-v1/original-summary.json +4945 -0
  223. package/docs/evidence/v02/fresh-text/report.json +284 -0
  224. package/docs/evidence/v02/fresh-text/svg-contours-v1/classify-followup-run-manifest.json +405 -0
  225. package/docs/evidence/v02/fresh-text/svg-contours-v1/classify-followup-summary.json +846 -0
  226. package/docs/evidence/v02/fresh-text/svg-contours-v1/evaluation.json +568 -0
  227. package/docs/evidence/v02/fresh-text/svg-contours-v1/original-run-manifest.json +404 -0
  228. package/docs/evidence/v02/fresh-text/svg-contours-v1/original-summary.json +2189 -0
  229. package/docs/evidence/v02/heldout-evaluation-20261020.md +37 -0
  230. package/docs/evidence/v02/heldout-input-derivation.md +18 -0
  231. package/docs/evidence/v02/integration-0c365cb.json +90 -0
  232. package/docs/evidence/v02/integration-25c19cd.json +52 -0
  233. package/docs/evidence/v02/integration-35e3064.json +41 -0
  234. package/docs/evidence/v02/integration-4331b1b.json +42 -0
  235. package/docs/evidence/v02/integration-4c9c09f.json +46 -0
  236. package/docs/evidence/v02/integration-8010aad.json +48 -0
  237. package/docs/evidence/v02/integration-c1aa640.json +41 -0
  238. package/docs/evidence/v02/integration-eea1790.json +46 -0
  239. package/docs/evidence/v02/integration-fa82e65.json +42 -0
  240. package/docs/evidence/v02/jpeg-transport-offline.json +268 -0
  241. package/docs/evidence/v02/jpeg-transport-offline.md +7 -0
  242. package/docs/evidence/v02/local-archive-cleanup.json +59 -0
  243. package/docs/evidence/v02/native-base64-after.json +30 -0
  244. package/docs/evidence/v02/native-base64-before.json +32 -0
  245. package/docs/evidence/v02/native-checked-region-windows-46283fe.json +248 -0
  246. package/docs/evidence/v02/native-checked-region-windows-987ac32.json +141 -0
  247. package/docs/evidence/v02/native-grabcut-windows-4c494a3-run2.json +148 -0
  248. package/docs/evidence/v02/native-grabcut-windows-4c494a3-run3.json +148 -0
  249. package/docs/evidence/v02/native-grabcut-windows-4c494a3.json +56 -0
  250. package/docs/evidence/v02/native-proposal-windows-0c365cb.json +148 -0
  251. package/docs/evidence/v02/native-proposal-windows-450439c.json +156 -0
  252. package/docs/evidence/v02/native-proposal-windows-4c9c09f-retry1.json +147 -0
  253. package/docs/evidence/v02/native-proposal-windows-4c9c09f.json +52 -0
  254. package/docs/evidence/v02/native-region-windows-efc9318.json +163 -0
  255. package/docs/evidence/v02/native-windows-eea1790-baseline.json +198 -0
  256. package/docs/evidence/v02/native-windows-eea1790.json +228 -0
  257. package/docs/evidence/v02/ordinary-luna-axis/run-manifest.json +99 -0
  258. package/docs/evidence/v02/ordinary-luna-axis/summary.json +811 -0
  259. package/docs/evidence/v02/owned-temp-cleanup-20261020-v1.json +28 -0
  260. package/docs/evidence/v02/presentation-paired-20261020.json +1438 -0
  261. package/docs/evidence/v02/proposal-resource-soak-261dc23.json +201 -0
  262. package/docs/evidence/v02/proposal-resource-soak-261dc23.md +15 -0
  263. package/docs/evidence/v02/proposal-resource-soak-450439c-receipt.md +13 -0
  264. package/docs/evidence/v02/reconstructed-c03-box.json +41 -0
  265. package/docs/evidence/v02/region-seeded-dev-v1/README.md +17 -0
  266. package/docs/evidence/v02/region-seeded-dev-v1/evaluation.json +260 -0
  267. package/docs/evidence/v02/region-seeded-dev-v2/README.md +15 -0
  268. package/docs/evidence/v02/region-seeded-dev-v2/evaluation.json +232 -0
  269. package/docs/evidence/v02/region-seeded-dev-v3-candidate-only/README.md +9 -0
  270. package/docs/evidence/v02/region-seeded-dev-v3-candidate-only/control-identity-failure.json +22 -0
  271. package/docs/evidence/v02/region-seeded-dev-v3-candidate-only/evaluation.json +160 -0
  272. package/docs/evidence/v02/region-seeded-dev-v3-control-r2/README.md +9 -0
  273. package/docs/evidence/v02/region-seeded-dev-v3-control-r2/attempt-accounting.json +55 -0
  274. package/docs/evidence/v02/region-seeded-dev-v3-control-r2/evaluation.json +136 -0
  275. package/docs/evidence/v02/region-seeded-development-control-r2-freeze-20261021.json +132 -0
  276. package/docs/evidence/v02/region-seeded-development-freeze-20261021-v1.json +167 -0
  277. package/docs/evidence/v02/region-seeded-development-freeze-20261021-v2.json +186 -0
  278. package/docs/evidence/v02/region-seeded-development-freeze-20261021-v3.json +205 -0
  279. package/docs/evidence/v02/region-seeded-heldout-cancelled-before-dispatch-20261021-v2.json +20 -0
  280. package/docs/evidence/v02/region-seeded-heldout-dispatch-authorization-20261021-v3.json +47 -0
  281. package/docs/evidence/v02/region-seeded-heldout-readiness-audit-20261021-v3.json +125 -0
  282. package/docs/evidence/v02/region-seeded-heldout-run-freeze-20261021-v2.json +234 -0
  283. package/docs/evidence/v02/region-seeded-heldout-run-freeze-20261021-v3.json +357 -0
  284. package/docs/evidence/v02/region-seeded-heldout-v3/README.md +19 -0
  285. package/docs/evidence/v02/region-seeded-heldout-v3/evaluation-summary.json +445 -0
  286. package/docs/evidence/v02/region-seeded-method-selection-20261021-v2.json +66 -0
  287. package/docs/evidence/v02/region-seeded-method-selection-20261021-v3.json +120 -0
  288. package/docs/evidence/v02/region-segmentation-resource-0ba4c87-receipt.json +156 -0
  289. package/docs/evidence/v02/resource-soak-linux-8010aad.json +125 -0
  290. package/docs/evidence/v02/screen-v2-terminal-evaluation.md +22 -0
  291. package/docs/evidence/v02/seed-outline/run-manifest.json +59 -0
  292. package/docs/evidence/v02/seed-outline/summary.json +487 -0
  293. package/docs/evidence/v02/seed-unbounded/run-manifest.json +80 -0
  294. package/docs/evidence/v02/seed-unbounded/summary.json +730 -0
  295. package/docs/evidence/v02/segmentation/README.md +21 -0
  296. package/docs/evidence/v02/segmentation/component-comparison-summary.json +240 -0
  297. package/docs/evidence/v02/segmentation/provenance/MOBILE-SAM-LICENSE.txt +201 -0
  298. package/docs/evidence/v02/segmentation/provenance/OPENCV-LICENSE.txt +202 -0
  299. package/docs/evidence/v02/segmentation/provenance/mobile-sam-download-receipt.json +29 -0
  300. package/docs/evidence/v02/segmentation/provenance/mobile-sam-graph-audit.json +214 -0
  301. package/docs/evidence/v02/segmentation/provenance/mobile-sam-model-metadata.json +166 -0
  302. package/docs/evidence/v02/split-choice-noul-dev6.json +72 -0
  303. package/docs/evidence/v02/split-choice-noul-dev6.md +11 -0
  304. package/docs/evidence/v02/supported-vision-screen-20261020.md +65 -0
  305. package/docs/evidence/v02/wesnoth-1.16.11-minimap-projection-source-audit.md +56 -0
  306. package/docs/evidence/v02/wesnoth-proof-root-review-20261020-v1.json +76 -0
  307. package/docs/operations.md +6 -0
  308. package/docs/plan.md +2 -0
  309. package/docs/publishing.md +10 -1
  310. package/docs/research/text-transport-audit.md +66 -0
  311. package/docs/v02-usage.md +162 -0
  312. package/docs/vision-results.md +29 -2
  313. package/package.json +30 -5
@@ -0,0 +1,855 @@
1
+ {
2
+ "runId": "v02-deepseek-no-image-heldout-photo-2026-10-20T184450822Z-eb3ceccc",
3
+ "profileId": "deepseek-flash-no-image-photo-heldout-v1",
4
+ "complete": true,
5
+ "coverage": {
6
+ "planned": 40,
7
+ "reported": 40,
8
+ "missing": [],
9
+ "denominatorPolicy": "all planned cases; missing results fail qualification, not invented API calls"
10
+ },
11
+ "inputs": [
12
+ {
13
+ "sha256": "5d125e853ed93558ab634e406ca90cf931569953279c1630d49dcf239b9baa79",
14
+ "cases": 40
15
+ }
16
+ ],
17
+ "summarySha256": "137327176930f1d86d1e386d051d60ccec89c32436ac381e575b6f0352134307",
18
+ "runManifestSha256": "da21c46353240df05c35a04b63bc18224f7489985ca0709c9e17d8d8a1c9b553",
19
+ "truthSha256": [
20
+ "e0b6b8b977ac31e41e74d1f73044e8638bbfeb8c76fae5732a1207112c7b7caa"
21
+ ],
22
+ "classificationCorrect": 10,
23
+ "localization": {
24
+ "attempted": 40,
25
+ "positives": 30,
26
+ "negatives": 10,
27
+ "matched": 0,
28
+ "localizationRate": 0,
29
+ "falseLocations": 0,
30
+ "falseLocationRate": 0,
31
+ "unknown": 40,
32
+ "failed": 0,
33
+ "correct": 0,
34
+ "rows": [
35
+ {
36
+ "caseId": "photo-heldout-v3-present-01",
37
+ "presence": "present",
38
+ "status": "unknown",
39
+ "correct": false
40
+ },
41
+ {
42
+ "caseId": "photo-heldout-v3-present-02",
43
+ "presence": "present",
44
+ "status": "unknown",
45
+ "correct": false
46
+ },
47
+ {
48
+ "caseId": "photo-heldout-v3-present-03",
49
+ "presence": "present",
50
+ "status": "unknown",
51
+ "correct": false
52
+ },
53
+ {
54
+ "caseId": "photo-heldout-v3-present-04",
55
+ "presence": "present",
56
+ "status": "unknown",
57
+ "correct": false
58
+ },
59
+ {
60
+ "caseId": "photo-heldout-v3-present-05",
61
+ "presence": "present",
62
+ "status": "unknown",
63
+ "correct": false
64
+ },
65
+ {
66
+ "caseId": "photo-heldout-v3-present-06",
67
+ "presence": "present",
68
+ "status": "unknown",
69
+ "correct": false
70
+ },
71
+ {
72
+ "caseId": "photo-heldout-v3-present-07",
73
+ "presence": "present",
74
+ "status": "unknown",
75
+ "correct": false
76
+ },
77
+ {
78
+ "caseId": "photo-heldout-v3-present-08",
79
+ "presence": "present",
80
+ "status": "unknown",
81
+ "correct": false
82
+ },
83
+ {
84
+ "caseId": "photo-heldout-v3-present-09",
85
+ "presence": "present",
86
+ "status": "unknown",
87
+ "correct": false
88
+ },
89
+ {
90
+ "caseId": "photo-heldout-v3-present-10",
91
+ "presence": "present",
92
+ "status": "unknown",
93
+ "correct": false
94
+ },
95
+ {
96
+ "caseId": "photo-heldout-v3-present-11",
97
+ "presence": "present",
98
+ "status": "unknown",
99
+ "correct": false
100
+ },
101
+ {
102
+ "caseId": "photo-heldout-v3-present-12",
103
+ "presence": "present",
104
+ "status": "unknown",
105
+ "correct": false
106
+ },
107
+ {
108
+ "caseId": "photo-heldout-v3-present-13",
109
+ "presence": "present",
110
+ "status": "unknown",
111
+ "correct": false
112
+ },
113
+ {
114
+ "caseId": "photo-heldout-v3-present-14",
115
+ "presence": "present",
116
+ "status": "unknown",
117
+ "correct": false
118
+ },
119
+ {
120
+ "caseId": "photo-heldout-v3-present-15",
121
+ "presence": "present",
122
+ "status": "unknown",
123
+ "correct": false
124
+ },
125
+ {
126
+ "caseId": "photo-heldout-v3-present-16",
127
+ "presence": "present",
128
+ "status": "unknown",
129
+ "correct": false
130
+ },
131
+ {
132
+ "caseId": "photo-heldout-v3-present-17",
133
+ "presence": "present",
134
+ "status": "unknown",
135
+ "correct": false
136
+ },
137
+ {
138
+ "caseId": "photo-heldout-v3-present-18",
139
+ "presence": "present",
140
+ "status": "unknown",
141
+ "correct": false
142
+ },
143
+ {
144
+ "caseId": "photo-heldout-v3-present-19",
145
+ "presence": "present",
146
+ "status": "unknown",
147
+ "correct": false
148
+ },
149
+ {
150
+ "caseId": "photo-heldout-v3-present-20",
151
+ "presence": "present",
152
+ "status": "unknown",
153
+ "correct": false
154
+ },
155
+ {
156
+ "caseId": "photo-heldout-v3-present-21",
157
+ "presence": "present",
158
+ "status": "unknown",
159
+ "correct": false
160
+ },
161
+ {
162
+ "caseId": "photo-heldout-v3-present-22",
163
+ "presence": "present",
164
+ "status": "unknown",
165
+ "correct": false
166
+ },
167
+ {
168
+ "caseId": "photo-heldout-v3-present-23",
169
+ "presence": "present",
170
+ "status": "unknown",
171
+ "correct": false
172
+ },
173
+ {
174
+ "caseId": "photo-heldout-v3-present-24",
175
+ "presence": "present",
176
+ "status": "unknown",
177
+ "correct": false
178
+ },
179
+ {
180
+ "caseId": "photo-heldout-v3-present-25",
181
+ "presence": "present",
182
+ "status": "unknown",
183
+ "correct": false
184
+ },
185
+ {
186
+ "caseId": "photo-heldout-v3-present-26",
187
+ "presence": "present",
188
+ "status": "unknown",
189
+ "correct": false
190
+ },
191
+ {
192
+ "caseId": "photo-heldout-v3-present-27",
193
+ "presence": "present",
194
+ "status": "unknown",
195
+ "correct": false
196
+ },
197
+ {
198
+ "caseId": "photo-heldout-v3-present-28",
199
+ "presence": "present",
200
+ "status": "unknown",
201
+ "correct": false
202
+ },
203
+ {
204
+ "caseId": "photo-heldout-v3-present-29",
205
+ "presence": "present",
206
+ "status": "unknown",
207
+ "correct": false
208
+ },
209
+ {
210
+ "caseId": "photo-heldout-v3-present-30",
211
+ "presence": "present",
212
+ "status": "unknown",
213
+ "correct": false
214
+ },
215
+ {
216
+ "caseId": "photo-heldout-v3-absent-01",
217
+ "presence": "absent",
218
+ "status": "unknown",
219
+ "correct": false
220
+ },
221
+ {
222
+ "caseId": "photo-heldout-v3-absent-02",
223
+ "presence": "absent",
224
+ "status": "unknown",
225
+ "correct": false
226
+ },
227
+ {
228
+ "caseId": "photo-heldout-v3-absent-03",
229
+ "presence": "absent",
230
+ "status": "unknown",
231
+ "correct": false
232
+ },
233
+ {
234
+ "caseId": "photo-heldout-v3-absent-04",
235
+ "presence": "absent",
236
+ "status": "unknown",
237
+ "correct": false
238
+ },
239
+ {
240
+ "caseId": "photo-heldout-v3-absent-05",
241
+ "presence": "absent",
242
+ "status": "unknown",
243
+ "correct": false
244
+ },
245
+ {
246
+ "caseId": "photo-heldout-v3-absent-06",
247
+ "presence": "absent",
248
+ "status": "unknown",
249
+ "correct": false
250
+ },
251
+ {
252
+ "caseId": "photo-heldout-v3-absent-07",
253
+ "presence": "absent",
254
+ "status": "unknown",
255
+ "correct": false
256
+ },
257
+ {
258
+ "caseId": "photo-heldout-v3-absent-08",
259
+ "presence": "absent",
260
+ "status": "unknown",
261
+ "correct": false
262
+ },
263
+ {
264
+ "caseId": "photo-heldout-v3-absent-09",
265
+ "presence": "absent",
266
+ "status": "unknown",
267
+ "correct": false
268
+ },
269
+ {
270
+ "caseId": "photo-heldout-v3-absent-10",
271
+ "presence": "absent",
272
+ "status": "unknown",
273
+ "correct": false
274
+ }
275
+ ]
276
+ },
277
+ "photoLocalization": {
278
+ "attempted": 40,
279
+ "positives": 30,
280
+ "negatives": 10,
281
+ "matched": 0,
282
+ "localizationRate": 0,
283
+ "falseLocations": 0,
284
+ "falseLocationRate": 0,
285
+ "unknown": 40,
286
+ "failed": 0,
287
+ "correct": 0,
288
+ "rows": [
289
+ {
290
+ "caseId": "photo-heldout-v3-present-01",
291
+ "presence": "present",
292
+ "status": "unknown",
293
+ "correct": false
294
+ },
295
+ {
296
+ "caseId": "photo-heldout-v3-present-02",
297
+ "presence": "present",
298
+ "status": "unknown",
299
+ "correct": false
300
+ },
301
+ {
302
+ "caseId": "photo-heldout-v3-present-03",
303
+ "presence": "present",
304
+ "status": "unknown",
305
+ "correct": false
306
+ },
307
+ {
308
+ "caseId": "photo-heldout-v3-present-04",
309
+ "presence": "present",
310
+ "status": "unknown",
311
+ "correct": false
312
+ },
313
+ {
314
+ "caseId": "photo-heldout-v3-present-05",
315
+ "presence": "present",
316
+ "status": "unknown",
317
+ "correct": false
318
+ },
319
+ {
320
+ "caseId": "photo-heldout-v3-present-06",
321
+ "presence": "present",
322
+ "status": "unknown",
323
+ "correct": false
324
+ },
325
+ {
326
+ "caseId": "photo-heldout-v3-present-07",
327
+ "presence": "present",
328
+ "status": "unknown",
329
+ "correct": false
330
+ },
331
+ {
332
+ "caseId": "photo-heldout-v3-present-08",
333
+ "presence": "present",
334
+ "status": "unknown",
335
+ "correct": false
336
+ },
337
+ {
338
+ "caseId": "photo-heldout-v3-present-09",
339
+ "presence": "present",
340
+ "status": "unknown",
341
+ "correct": false
342
+ },
343
+ {
344
+ "caseId": "photo-heldout-v3-present-10",
345
+ "presence": "present",
346
+ "status": "unknown",
347
+ "correct": false
348
+ },
349
+ {
350
+ "caseId": "photo-heldout-v3-present-11",
351
+ "presence": "present",
352
+ "status": "unknown",
353
+ "correct": false
354
+ },
355
+ {
356
+ "caseId": "photo-heldout-v3-present-12",
357
+ "presence": "present",
358
+ "status": "unknown",
359
+ "correct": false
360
+ },
361
+ {
362
+ "caseId": "photo-heldout-v3-present-13",
363
+ "presence": "present",
364
+ "status": "unknown",
365
+ "correct": false
366
+ },
367
+ {
368
+ "caseId": "photo-heldout-v3-present-14",
369
+ "presence": "present",
370
+ "status": "unknown",
371
+ "correct": false
372
+ },
373
+ {
374
+ "caseId": "photo-heldout-v3-present-15",
375
+ "presence": "present",
376
+ "status": "unknown",
377
+ "correct": false
378
+ },
379
+ {
380
+ "caseId": "photo-heldout-v3-present-16",
381
+ "presence": "present",
382
+ "status": "unknown",
383
+ "correct": false
384
+ },
385
+ {
386
+ "caseId": "photo-heldout-v3-present-17",
387
+ "presence": "present",
388
+ "status": "unknown",
389
+ "correct": false
390
+ },
391
+ {
392
+ "caseId": "photo-heldout-v3-present-18",
393
+ "presence": "present",
394
+ "status": "unknown",
395
+ "correct": false
396
+ },
397
+ {
398
+ "caseId": "photo-heldout-v3-present-19",
399
+ "presence": "present",
400
+ "status": "unknown",
401
+ "correct": false
402
+ },
403
+ {
404
+ "caseId": "photo-heldout-v3-present-20",
405
+ "presence": "present",
406
+ "status": "unknown",
407
+ "correct": false
408
+ },
409
+ {
410
+ "caseId": "photo-heldout-v3-present-21",
411
+ "presence": "present",
412
+ "status": "unknown",
413
+ "correct": false
414
+ },
415
+ {
416
+ "caseId": "photo-heldout-v3-present-22",
417
+ "presence": "present",
418
+ "status": "unknown",
419
+ "correct": false
420
+ },
421
+ {
422
+ "caseId": "photo-heldout-v3-present-23",
423
+ "presence": "present",
424
+ "status": "unknown",
425
+ "correct": false
426
+ },
427
+ {
428
+ "caseId": "photo-heldout-v3-present-24",
429
+ "presence": "present",
430
+ "status": "unknown",
431
+ "correct": false
432
+ },
433
+ {
434
+ "caseId": "photo-heldout-v3-present-25",
435
+ "presence": "present",
436
+ "status": "unknown",
437
+ "correct": false
438
+ },
439
+ {
440
+ "caseId": "photo-heldout-v3-present-26",
441
+ "presence": "present",
442
+ "status": "unknown",
443
+ "correct": false
444
+ },
445
+ {
446
+ "caseId": "photo-heldout-v3-present-27",
447
+ "presence": "present",
448
+ "status": "unknown",
449
+ "correct": false
450
+ },
451
+ {
452
+ "caseId": "photo-heldout-v3-present-28",
453
+ "presence": "present",
454
+ "status": "unknown",
455
+ "correct": false
456
+ },
457
+ {
458
+ "caseId": "photo-heldout-v3-present-29",
459
+ "presence": "present",
460
+ "status": "unknown",
461
+ "correct": false
462
+ },
463
+ {
464
+ "caseId": "photo-heldout-v3-present-30",
465
+ "presence": "present",
466
+ "status": "unknown",
467
+ "correct": false
468
+ },
469
+ {
470
+ "caseId": "photo-heldout-v3-absent-01",
471
+ "presence": "absent",
472
+ "status": "unknown",
473
+ "correct": false
474
+ },
475
+ {
476
+ "caseId": "photo-heldout-v3-absent-02",
477
+ "presence": "absent",
478
+ "status": "unknown",
479
+ "correct": false
480
+ },
481
+ {
482
+ "caseId": "photo-heldout-v3-absent-03",
483
+ "presence": "absent",
484
+ "status": "unknown",
485
+ "correct": false
486
+ },
487
+ {
488
+ "caseId": "photo-heldout-v3-absent-04",
489
+ "presence": "absent",
490
+ "status": "unknown",
491
+ "correct": false
492
+ },
493
+ {
494
+ "caseId": "photo-heldout-v3-absent-05",
495
+ "presence": "absent",
496
+ "status": "unknown",
497
+ "correct": false
498
+ },
499
+ {
500
+ "caseId": "photo-heldout-v3-absent-06",
501
+ "presence": "absent",
502
+ "status": "unknown",
503
+ "correct": false
504
+ },
505
+ {
506
+ "caseId": "photo-heldout-v3-absent-07",
507
+ "presence": "absent",
508
+ "status": "unknown",
509
+ "correct": false
510
+ },
511
+ {
512
+ "caseId": "photo-heldout-v3-absent-08",
513
+ "presence": "absent",
514
+ "status": "unknown",
515
+ "correct": false
516
+ },
517
+ {
518
+ "caseId": "photo-heldout-v3-absent-09",
519
+ "presence": "absent",
520
+ "status": "unknown",
521
+ "correct": false
522
+ },
523
+ {
524
+ "caseId": "photo-heldout-v3-absent-10",
525
+ "presence": "absent",
526
+ "status": "unknown",
527
+ "correct": false
528
+ }
529
+ ]
530
+ },
531
+ "rows": [
532
+ {
533
+ "caseId": "photo-heldout-v3-present-01",
534
+ "imageSha256": "28035a1bbae8f5372c7195daa138471de59e1ba3361ae69088767a042b2a1ccb",
535
+ "expectedPresence": "present",
536
+ "sourceStatus": "unknown",
537
+ "classificationCorrect": false,
538
+ "localizationCorrect": false
539
+ },
540
+ {
541
+ "caseId": "photo-heldout-v3-present-02",
542
+ "imageSha256": "598a4aaaf4b724442ab34ebbfe857a946e9c65015fb08b227cddeed203c16ba9",
543
+ "expectedPresence": "present",
544
+ "sourceStatus": "unknown",
545
+ "classificationCorrect": false,
546
+ "localizationCorrect": false
547
+ },
548
+ {
549
+ "caseId": "photo-heldout-v3-present-03",
550
+ "imageSha256": "4055c444e25db4c5f0bdb72e3346b5069fb5abfe5530a6647c85b559b6f733b7",
551
+ "expectedPresence": "present",
552
+ "sourceStatus": "unknown",
553
+ "classificationCorrect": false,
554
+ "localizationCorrect": false
555
+ },
556
+ {
557
+ "caseId": "photo-heldout-v3-present-04",
558
+ "imageSha256": "49ccbbf3fa0a9f1dccd95355a877aa10dd137e7fd9a1189a3ed8f28ad8a849de",
559
+ "expectedPresence": "present",
560
+ "sourceStatus": "unknown",
561
+ "classificationCorrect": false,
562
+ "localizationCorrect": false
563
+ },
564
+ {
565
+ "caseId": "photo-heldout-v3-present-05",
566
+ "imageSha256": "bcdbb7a0a17365a5f20930f718508184b376061ab419aae9bec0e8e7d5706072",
567
+ "expectedPresence": "present",
568
+ "sourceStatus": "unknown",
569
+ "classificationCorrect": false,
570
+ "localizationCorrect": false
571
+ },
572
+ {
573
+ "caseId": "photo-heldout-v3-present-06",
574
+ "imageSha256": "b06a76e0cf88c370d356505441f626484b189d348d4da204338f3e436051b88b",
575
+ "expectedPresence": "present",
576
+ "sourceStatus": "unknown",
577
+ "classificationCorrect": false,
578
+ "localizationCorrect": false
579
+ },
580
+ {
581
+ "caseId": "photo-heldout-v3-present-07",
582
+ "imageSha256": "46d61246073b01215fdcd2855de007a76c990e950dc89055c0e46365d348c4a1",
583
+ "expectedPresence": "present",
584
+ "sourceStatus": "unknown",
585
+ "classificationCorrect": false,
586
+ "localizationCorrect": false
587
+ },
588
+ {
589
+ "caseId": "photo-heldout-v3-present-08",
590
+ "imageSha256": "fecd2e51edfd13401f3670c66caed6289231609f25a4b048076877eeadb3d5e3",
591
+ "expectedPresence": "present",
592
+ "sourceStatus": "unknown",
593
+ "classificationCorrect": false,
594
+ "localizationCorrect": false
595
+ },
596
+ {
597
+ "caseId": "photo-heldout-v3-present-09",
598
+ "imageSha256": "9c47cc619e269370c9d8626f6dd1e468a672f245ae29f6d8f8ba76273bb47fdb",
599
+ "expectedPresence": "present",
600
+ "sourceStatus": "unknown",
601
+ "classificationCorrect": false,
602
+ "localizationCorrect": false
603
+ },
604
+ {
605
+ "caseId": "photo-heldout-v3-present-10",
606
+ "imageSha256": "0da18ff473b80319ac0e9c0c0f51095915facbaf49114fa25781137cbdb954db",
607
+ "expectedPresence": "present",
608
+ "sourceStatus": "unknown",
609
+ "classificationCorrect": false,
610
+ "localizationCorrect": false
611
+ },
612
+ {
613
+ "caseId": "photo-heldout-v3-present-11",
614
+ "imageSha256": "f68cdfc5820f12decb02f62ddfc2c853e5d7b2bfeb072b14842b9842dad0d4e1",
615
+ "expectedPresence": "present",
616
+ "sourceStatus": "unknown",
617
+ "classificationCorrect": false,
618
+ "localizationCorrect": false
619
+ },
620
+ {
621
+ "caseId": "photo-heldout-v3-present-12",
622
+ "imageSha256": "d585c7c75ab7dd5348dd1261d7f6cda2affd98fdfb7be42a0644bf889c408cad",
623
+ "expectedPresence": "present",
624
+ "sourceStatus": "unknown",
625
+ "classificationCorrect": false,
626
+ "localizationCorrect": false
627
+ },
628
+ {
629
+ "caseId": "photo-heldout-v3-present-13",
630
+ "imageSha256": "e8a897b9d12878e0729a0574aa1df3b06186cecd5362afb980eed1210d6bff85",
631
+ "expectedPresence": "present",
632
+ "sourceStatus": "unknown",
633
+ "classificationCorrect": false,
634
+ "localizationCorrect": false
635
+ },
636
+ {
637
+ "caseId": "photo-heldout-v3-present-14",
638
+ "imageSha256": "538f4a21e7a6c23249474e05ecbf82f1955b2c5a1b698f3d6be23787ca97fc70",
639
+ "expectedPresence": "present",
640
+ "sourceStatus": "unknown",
641
+ "classificationCorrect": false,
642
+ "localizationCorrect": false
643
+ },
644
+ {
645
+ "caseId": "photo-heldout-v3-present-15",
646
+ "imageSha256": "b2ef44734531b9602071d47c7dda30ff5e958006e4b51cb0459e8cbbe58a1970",
647
+ "expectedPresence": "present",
648
+ "sourceStatus": "unknown",
649
+ "classificationCorrect": false,
650
+ "localizationCorrect": false
651
+ },
652
+ {
653
+ "caseId": "photo-heldout-v3-present-16",
654
+ "imageSha256": "b05801fcf83726d8431b447ab5e9b967a8dc324156af2b0a673b007a9b70b941",
655
+ "expectedPresence": "present",
656
+ "sourceStatus": "unknown",
657
+ "classificationCorrect": false,
658
+ "localizationCorrect": false
659
+ },
660
+ {
661
+ "caseId": "photo-heldout-v3-present-17",
662
+ "imageSha256": "1b18d27efca3126ba81be73cd8dc1213cd4997b5e4c25b3500ed2eed24a6bf71",
663
+ "expectedPresence": "present",
664
+ "sourceStatus": "unknown",
665
+ "classificationCorrect": false,
666
+ "localizationCorrect": false
667
+ },
668
+ {
669
+ "caseId": "photo-heldout-v3-present-18",
670
+ "imageSha256": "5be9236ed9c39a3e174a395737287efff15dbf4cd2b1aa6eeae98bc159f03a2a",
671
+ "expectedPresence": "present",
672
+ "sourceStatus": "unknown",
673
+ "classificationCorrect": false,
674
+ "localizationCorrect": false
675
+ },
676
+ {
677
+ "caseId": "photo-heldout-v3-present-19",
678
+ "imageSha256": "6400ed4682cd486e37ec0eeb9e64dfb6afec8b351317469b63698476166751d5",
679
+ "expectedPresence": "present",
680
+ "sourceStatus": "unknown",
681
+ "classificationCorrect": false,
682
+ "localizationCorrect": false
683
+ },
684
+ {
685
+ "caseId": "photo-heldout-v3-present-20",
686
+ "imageSha256": "c8f56f5d841e4bfccd3e490be86207807f6f23d3b8f093060a70da867b43e9e7",
687
+ "expectedPresence": "present",
688
+ "sourceStatus": "unknown",
689
+ "classificationCorrect": false,
690
+ "localizationCorrect": false
691
+ },
692
+ {
693
+ "caseId": "photo-heldout-v3-present-21",
694
+ "imageSha256": "f68184cc53b67990345f53572ff5c7d122c6300aca61f4c054f72dca13e3e4ec",
695
+ "expectedPresence": "present",
696
+ "sourceStatus": "unknown",
697
+ "classificationCorrect": false,
698
+ "localizationCorrect": false
699
+ },
700
+ {
701
+ "caseId": "photo-heldout-v3-present-22",
702
+ "imageSha256": "db1050ebc1b2685437528933f860161d9a754a72d2ae4a237e608b94f204e097",
703
+ "expectedPresence": "present",
704
+ "sourceStatus": "unknown",
705
+ "classificationCorrect": false,
706
+ "localizationCorrect": false
707
+ },
708
+ {
709
+ "caseId": "photo-heldout-v3-present-23",
710
+ "imageSha256": "6ca29b47effaa1aad9a6816c2369ce9f672117b8548c61fdd5678926fe1ae575",
711
+ "expectedPresence": "present",
712
+ "sourceStatus": "unknown",
713
+ "classificationCorrect": false,
714
+ "localizationCorrect": false
715
+ },
716
+ {
717
+ "caseId": "photo-heldout-v3-present-24",
718
+ "imageSha256": "e772e44fabb6b99cb50a498d87550b5fa2e4fd73dc6a8a51a2d6c5a38c27864a",
719
+ "expectedPresence": "present",
720
+ "sourceStatus": "unknown",
721
+ "classificationCorrect": false,
722
+ "localizationCorrect": false
723
+ },
724
+ {
725
+ "caseId": "photo-heldout-v3-present-25",
726
+ "imageSha256": "b94a550b9cd01eca7b73feae0c49857694cf4ed8f27e877422fceee27cd36da9",
727
+ "expectedPresence": "present",
728
+ "sourceStatus": "unknown",
729
+ "classificationCorrect": false,
730
+ "localizationCorrect": false
731
+ },
732
+ {
733
+ "caseId": "photo-heldout-v3-present-26",
734
+ "imageSha256": "b482fcb9598e988aab6432ac5d2a95fd83f5e10f04a748c11d42c50d13452344",
735
+ "expectedPresence": "present",
736
+ "sourceStatus": "unknown",
737
+ "classificationCorrect": false,
738
+ "localizationCorrect": false
739
+ },
740
+ {
741
+ "caseId": "photo-heldout-v3-present-27",
742
+ "imageSha256": "d24a581d9f382bcfc79c59b3a88394f62588eb37c13f7bbfb79d17f8c90d7b8b",
743
+ "expectedPresence": "present",
744
+ "sourceStatus": "unknown",
745
+ "classificationCorrect": false,
746
+ "localizationCorrect": false
747
+ },
748
+ {
749
+ "caseId": "photo-heldout-v3-present-28",
750
+ "imageSha256": "aaac18f14a7b217cd291666e62e673941ef88708f71c4bffe918dd68f24343b9",
751
+ "expectedPresence": "present",
752
+ "sourceStatus": "unknown",
753
+ "classificationCorrect": false,
754
+ "localizationCorrect": false
755
+ },
756
+ {
757
+ "caseId": "photo-heldout-v3-present-29",
758
+ "imageSha256": "5ba08874120a965a62473abd47c8e4851712793c43a6b674161236a29068fa9a",
759
+ "expectedPresence": "present",
760
+ "sourceStatus": "unknown",
761
+ "classificationCorrect": false,
762
+ "localizationCorrect": false
763
+ },
764
+ {
765
+ "caseId": "photo-heldout-v3-present-30",
766
+ "imageSha256": "182c1508d1a216179c32bd8ad2b2c362b6eead67acde360d187fa8d242600f4a",
767
+ "expectedPresence": "present",
768
+ "sourceStatus": "unknown",
769
+ "classificationCorrect": false,
770
+ "localizationCorrect": false
771
+ },
772
+ {
773
+ "caseId": "photo-heldout-v3-absent-01",
774
+ "imageSha256": "d12ff909a40b44b2823b88da96717bd095440181413bfbf4be25cb8ed3cb7ee7",
775
+ "expectedPresence": "absent",
776
+ "sourceStatus": "unknown",
777
+ "classificationCorrect": true,
778
+ "localizationCorrect": false
779
+ },
780
+ {
781
+ "caseId": "photo-heldout-v3-absent-02",
782
+ "imageSha256": "74fdafbfdee220cdf94b0f4e8b00a0c6e7bd802c9a2d8d7327fe674f6da4a286",
783
+ "expectedPresence": "absent",
784
+ "sourceStatus": "unknown",
785
+ "classificationCorrect": true,
786
+ "localizationCorrect": false
787
+ },
788
+ {
789
+ "caseId": "photo-heldout-v3-absent-03",
790
+ "imageSha256": "ab6627282229dce5c89c62298741f121335bd2c2672006e1f995581f32afd213",
791
+ "expectedPresence": "absent",
792
+ "sourceStatus": "unknown",
793
+ "classificationCorrect": true,
794
+ "localizationCorrect": false
795
+ },
796
+ {
797
+ "caseId": "photo-heldout-v3-absent-04",
798
+ "imageSha256": "6a09c641f7901f818c48d6a632c313cbdfc221630a434baf8bd1a680e7033333",
799
+ "expectedPresence": "absent",
800
+ "sourceStatus": "unknown",
801
+ "classificationCorrect": true,
802
+ "localizationCorrect": false
803
+ },
804
+ {
805
+ "caseId": "photo-heldout-v3-absent-05",
806
+ "imageSha256": "e466689c4681dde49891a8615dbf4704f04f32ec700fe93c2f765b587d79ce68",
807
+ "expectedPresence": "absent",
808
+ "sourceStatus": "unknown",
809
+ "classificationCorrect": true,
810
+ "localizationCorrect": false
811
+ },
812
+ {
813
+ "caseId": "photo-heldout-v3-absent-06",
814
+ "imageSha256": "8aacd38e7bf23c4b62411473e4d2e0d9b9cd23d7efdc1f3445a4ae8866684045",
815
+ "expectedPresence": "absent",
816
+ "sourceStatus": "unknown",
817
+ "classificationCorrect": true,
818
+ "localizationCorrect": false
819
+ },
820
+ {
821
+ "caseId": "photo-heldout-v3-absent-07",
822
+ "imageSha256": "544f8c7ede24b64859ef77e8eeaedaa027b8ccb2db7e6ffc5b8cce1c5e36f48c",
823
+ "expectedPresence": "absent",
824
+ "sourceStatus": "unknown",
825
+ "classificationCorrect": true,
826
+ "localizationCorrect": false
827
+ },
828
+ {
829
+ "caseId": "photo-heldout-v3-absent-08",
830
+ "imageSha256": "a54046c8d80d2e673b04a1ea54dad63aea97b4d1eb50ec57bb5e548676c31013",
831
+ "expectedPresence": "absent",
832
+ "sourceStatus": "unknown",
833
+ "classificationCorrect": true,
834
+ "localizationCorrect": false
835
+ },
836
+ {
837
+ "caseId": "photo-heldout-v3-absent-09",
838
+ "imageSha256": "9caaabf778547b6946e31b22249b6a3dce758c0e1d9b284ab0f1f2cc88609c99",
839
+ "expectedPresence": "absent",
840
+ "sourceStatus": "unknown",
841
+ "classificationCorrect": true,
842
+ "localizationCorrect": false
843
+ },
844
+ {
845
+ "caseId": "photo-heldout-v3-absent-10",
846
+ "imageSha256": "5c37a019303f1ec6fcbfceae417051a9a10f14bd66d900afd48eb2e21735e27f",
847
+ "expectedPresence": "absent",
848
+ "sourceStatus": "unknown",
849
+ "classificationCorrect": true,
850
+ "localizationCorrect": false
851
+ }
852
+ ],
853
+ "phase": "heldout",
854
+ "sourceQualified": true
855
+ }