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,372 @@
1
+ {
2
+ "conclusion": "success",
3
+ "headSha": "e551253376ff4658696a58a1f78ec7605d8ef670",
4
+ "jobs": [
5
+ {
6
+ "completedAt": "2026-10-20T17:58:21Z",
7
+ "conclusion": "success",
8
+ "databaseId": 118792187410,
9
+ "name": "verify (windows-latest, 22)",
10
+ "startedAt": "2026-10-20T17:55:33Z",
11
+ "status": "completed",
12
+ "steps": [
13
+ {
14
+ "completedAt": "2026-10-20T17:55:37Z",
15
+ "conclusion": "success",
16
+ "name": "Set up job",
17
+ "number": 1,
18
+ "startedAt": "2026-10-20T17:55:35Z",
19
+ "status": "completed"
20
+ },
21
+ {
22
+ "completedAt": "2026-10-20T17:55:45Z",
23
+ "conclusion": "success",
24
+ "name": "Run actions/checkout@v4",
25
+ "number": 2,
26
+ "startedAt": "2026-10-20T17:55:37Z",
27
+ "status": "completed"
28
+ },
29
+ {
30
+ "completedAt": "2026-10-20T17:55:56Z",
31
+ "conclusion": "success",
32
+ "name": "Run actions/setup-node@v4",
33
+ "number": 3,
34
+ "startedAt": "2026-10-20T17:55:45Z",
35
+ "status": "completed"
36
+ },
37
+ {
38
+ "completedAt": "2026-10-20T17:56:10Z",
39
+ "conclusion": "success",
40
+ "name": "Run npm ci --ignore-scripts",
41
+ "number": 4,
42
+ "startedAt": "2026-10-20T17:55:56Z",
43
+ "status": "completed"
44
+ },
45
+ {
46
+ "completedAt": "2026-10-20T17:57:35Z",
47
+ "conclusion": "success",
48
+ "name": "Run npm run check",
49
+ "number": 5,
50
+ "startedAt": "2026-10-20T17:56:10Z",
51
+ "status": "completed"
52
+ },
53
+ {
54
+ "completedAt": "2026-10-20T17:58:08Z",
55
+ "conclusion": "success",
56
+ "name": "Run npm run pack:check",
57
+ "number": 6,
58
+ "startedAt": "2026-10-20T17:57:35Z",
59
+ "status": "completed"
60
+ },
61
+ {
62
+ "completedAt": "2026-10-20T17:58:17Z",
63
+ "conclusion": "success",
64
+ "name": "Run npm run format:check",
65
+ "number": 7,
66
+ "startedAt": "2026-10-20T17:58:08Z",
67
+ "status": "completed"
68
+ },
69
+ {
70
+ "completedAt": "2026-10-20T17:58:17Z",
71
+ "conclusion": "success",
72
+ "name": "Post Run actions/setup-node@v4",
73
+ "number": 13,
74
+ "startedAt": "2026-10-20T17:58:17Z",
75
+ "status": "completed"
76
+ },
77
+ {
78
+ "completedAt": "2026-10-20T17:58:19Z",
79
+ "conclusion": "success",
80
+ "name": "Post Run actions/checkout@v4",
81
+ "number": 14,
82
+ "startedAt": "2026-10-20T17:58:17Z",
83
+ "status": "completed"
84
+ },
85
+ {
86
+ "completedAt": "2026-10-20T17:58:19Z",
87
+ "conclusion": "success",
88
+ "name": "Complete job",
89
+ "number": 15,
90
+ "startedAt": "2026-10-20T17:58:19Z",
91
+ "status": "completed"
92
+ }
93
+ ],
94
+ "url": "https://github.com/zoomplus/zorya-classifier/actions/runs/39470276697/job/118792187410"
95
+ },
96
+ {
97
+ "completedAt": "2026-10-20T17:56:42Z",
98
+ "conclusion": "success",
99
+ "databaseId": 118792187808,
100
+ "name": "verify (ubuntu-latest, 22)",
101
+ "startedAt": "2026-10-20T17:55:33Z",
102
+ "status": "completed",
103
+ "steps": [
104
+ {
105
+ "completedAt": "2026-10-20T17:55:35Z",
106
+ "conclusion": "success",
107
+ "name": "Set up job",
108
+ "number": 1,
109
+ "startedAt": "2026-10-20T17:55:34Z",
110
+ "status": "completed"
111
+ },
112
+ {
113
+ "completedAt": "2026-10-20T17:55:36Z",
114
+ "conclusion": "success",
115
+ "name": "Run actions/checkout@v4",
116
+ "number": 2,
117
+ "startedAt": "2026-10-20T17:55:35Z",
118
+ "status": "completed"
119
+ },
120
+ {
121
+ "completedAt": "2026-10-20T17:55:42Z",
122
+ "conclusion": "success",
123
+ "name": "Run actions/setup-node@v4",
124
+ "number": 3,
125
+ "startedAt": "2026-10-20T17:55:36Z",
126
+ "status": "completed"
127
+ },
128
+ {
129
+ "completedAt": "2026-10-20T17:55:46Z",
130
+ "conclusion": "success",
131
+ "name": "Run npm ci --ignore-scripts",
132
+ "number": 4,
133
+ "startedAt": "2026-10-20T17:55:42Z",
134
+ "status": "completed"
135
+ },
136
+ {
137
+ "completedAt": "2026-10-20T17:56:27Z",
138
+ "conclusion": "success",
139
+ "name": "Run npm run check",
140
+ "number": 5,
141
+ "startedAt": "2026-10-20T17:55:46Z",
142
+ "status": "completed"
143
+ },
144
+ {
145
+ "completedAt": "2026-10-20T17:56:35Z",
146
+ "conclusion": "success",
147
+ "name": "Run npm run pack:check",
148
+ "number": 6,
149
+ "startedAt": "2026-10-20T17:56:27Z",
150
+ "status": "completed"
151
+ },
152
+ {
153
+ "completedAt": "2026-10-20T17:56:39Z",
154
+ "conclusion": "success",
155
+ "name": "Run npm run format:check",
156
+ "number": 7,
157
+ "startedAt": "2026-10-20T17:56:35Z",
158
+ "status": "completed"
159
+ },
160
+ {
161
+ "completedAt": "2026-10-20T17:56:39Z",
162
+ "conclusion": "success",
163
+ "name": "Post Run actions/setup-node@v4",
164
+ "number": 13,
165
+ "startedAt": "2026-10-20T17:56:39Z",
166
+ "status": "completed"
167
+ },
168
+ {
169
+ "completedAt": "2026-10-20T17:56:40Z",
170
+ "conclusion": "success",
171
+ "name": "Post Run actions/checkout@v4",
172
+ "number": 14,
173
+ "startedAt": "2026-10-20T17:56:39Z",
174
+ "status": "completed"
175
+ },
176
+ {
177
+ "completedAt": "2026-10-20T17:56:40Z",
178
+ "conclusion": "success",
179
+ "name": "Complete job",
180
+ "number": 15,
181
+ "startedAt": "2026-10-20T17:56:40Z",
182
+ "status": "completed"
183
+ }
184
+ ],
185
+ "url": "https://github.com/zoomplus/zorya-classifier/actions/runs/39470276697/job/118792187808"
186
+ },
187
+ {
188
+ "completedAt": "2026-10-20T17:57:01Z",
189
+ "conclusion": "success",
190
+ "databaseId": 118792187828,
191
+ "name": "verify (ubuntu-latest, 24)",
192
+ "startedAt": "2026-10-20T17:55:33Z",
193
+ "status": "completed",
194
+ "steps": [
195
+ {
196
+ "completedAt": "2026-10-20T17:55:34Z",
197
+ "conclusion": "success",
198
+ "name": "Set up job",
199
+ "number": 1,
200
+ "startedAt": "2026-10-20T17:55:34Z",
201
+ "status": "completed"
202
+ },
203
+ {
204
+ "completedAt": "2026-10-20T17:55:36Z",
205
+ "conclusion": "success",
206
+ "name": "Run actions/checkout@v4",
207
+ "number": 2,
208
+ "startedAt": "2026-10-20T17:55:35Z",
209
+ "status": "completed"
210
+ },
211
+ {
212
+ "completedAt": "2026-10-20T17:55:38Z",
213
+ "conclusion": "success",
214
+ "name": "Run actions/setup-node@v4",
215
+ "number": 3,
216
+ "startedAt": "2026-10-20T17:55:36Z",
217
+ "status": "completed"
218
+ },
219
+ {
220
+ "completedAt": "2026-10-20T17:55:43Z",
221
+ "conclusion": "success",
222
+ "name": "Run npm ci --ignore-scripts",
223
+ "number": 4,
224
+ "startedAt": "2026-10-20T17:55:38Z",
225
+ "status": "completed"
226
+ },
227
+ {
228
+ "completedAt": "2026-10-20T17:56:42Z",
229
+ "conclusion": "success",
230
+ "name": "Run npm run check",
231
+ "number": 5,
232
+ "startedAt": "2026-10-20T17:55:43Z",
233
+ "status": "completed"
234
+ },
235
+ {
236
+ "completedAt": "2026-10-20T17:56:53Z",
237
+ "conclusion": "success",
238
+ "name": "Run npm run pack:check",
239
+ "number": 6,
240
+ "startedAt": "2026-10-20T17:56:42Z",
241
+ "status": "completed"
242
+ },
243
+ {
244
+ "completedAt": "2026-10-20T17:56:59Z",
245
+ "conclusion": "success",
246
+ "name": "Run npm run format:check",
247
+ "number": 7,
248
+ "startedAt": "2026-10-20T17:56:53Z",
249
+ "status": "completed"
250
+ },
251
+ {
252
+ "completedAt": "2026-10-20T17:56:59Z",
253
+ "conclusion": "success",
254
+ "name": "Post Run actions/setup-node@v4",
255
+ "number": 13,
256
+ "startedAt": "2026-10-20T17:56:59Z",
257
+ "status": "completed"
258
+ },
259
+ {
260
+ "completedAt": "2026-10-20T17:57:00Z",
261
+ "conclusion": "success",
262
+ "name": "Post Run actions/checkout@v4",
263
+ "number": 14,
264
+ "startedAt": "2026-10-20T17:56:59Z",
265
+ "status": "completed"
266
+ },
267
+ {
268
+ "completedAt": "2026-10-20T17:57:00Z",
269
+ "conclusion": "success",
270
+ "name": "Complete job",
271
+ "number": 15,
272
+ "startedAt": "2026-10-20T17:57:00Z",
273
+ "status": "completed"
274
+ }
275
+ ],
276
+ "url": "https://github.com/zoomplus/zorya-classifier/actions/runs/39470276697/job/118792187828"
277
+ },
278
+ {
279
+ "completedAt": "2026-10-20T17:58:20Z",
280
+ "conclusion": "success",
281
+ "databaseId": 118792188135,
282
+ "name": "verify (windows-latest, 24)",
283
+ "startedAt": "2026-10-20T17:55:33Z",
284
+ "status": "completed",
285
+ "steps": [
286
+ {
287
+ "completedAt": "2026-10-20T17:55:35Z",
288
+ "conclusion": "success",
289
+ "name": "Set up job",
290
+ "number": 1,
291
+ "startedAt": "2026-10-20T17:55:34Z",
292
+ "status": "completed"
293
+ },
294
+ {
295
+ "completedAt": "2026-10-20T17:55:41Z",
296
+ "conclusion": "success",
297
+ "name": "Run actions/checkout@v4",
298
+ "number": 2,
299
+ "startedAt": "2026-10-20T17:55:35Z",
300
+ "status": "completed"
301
+ },
302
+ {
303
+ "completedAt": "2026-10-20T17:55:55Z",
304
+ "conclusion": "success",
305
+ "name": "Run actions/setup-node@v4",
306
+ "number": 3,
307
+ "startedAt": "2026-10-20T17:55:41Z",
308
+ "status": "completed"
309
+ },
310
+ {
311
+ "completedAt": "2026-10-20T17:56:07Z",
312
+ "conclusion": "success",
313
+ "name": "Run npm ci --ignore-scripts",
314
+ "number": 4,
315
+ "startedAt": "2026-10-20T17:55:55Z",
316
+ "status": "completed"
317
+ },
318
+ {
319
+ "completedAt": "2026-10-20T17:57:30Z",
320
+ "conclusion": "success",
321
+ "name": "Run npm run check",
322
+ "number": 5,
323
+ "startedAt": "2026-10-20T17:56:07Z",
324
+ "status": "completed"
325
+ },
326
+ {
327
+ "completedAt": "2026-10-20T17:58:08Z",
328
+ "conclusion": "success",
329
+ "name": "Run npm run pack:check",
330
+ "number": 6,
331
+ "startedAt": "2026-10-20T17:57:30Z",
332
+ "status": "completed"
333
+ },
334
+ {
335
+ "completedAt": "2026-10-20T17:58:16Z",
336
+ "conclusion": "success",
337
+ "name": "Run npm run format:check",
338
+ "number": 7,
339
+ "startedAt": "2026-10-20T17:58:08Z",
340
+ "status": "completed"
341
+ },
342
+ {
343
+ "completedAt": "2026-10-20T17:58:16Z",
344
+ "conclusion": "success",
345
+ "name": "Post Run actions/setup-node@v4",
346
+ "number": 13,
347
+ "startedAt": "2026-10-20T17:58:16Z",
348
+ "status": "completed"
349
+ },
350
+ {
351
+ "completedAt": "2026-10-20T17:58:19Z",
352
+ "conclusion": "success",
353
+ "name": "Post Run actions/checkout@v4",
354
+ "number": 14,
355
+ "startedAt": "2026-10-20T17:58:16Z",
356
+ "status": "completed"
357
+ },
358
+ {
359
+ "completedAt": "2026-10-20T17:58:19Z",
360
+ "conclusion": "success",
361
+ "name": "Complete job",
362
+ "number": 15,
363
+ "startedAt": "2026-10-20T17:58:19Z",
364
+ "status": "completed"
365
+ }
366
+ ],
367
+ "url": "https://github.com/zoomplus/zorya-classifier/actions/runs/39470276697/job/118792188135"
368
+ }
369
+ ],
370
+ "status": "completed",
371
+ "url": "https://github.com/zoomplus/zorya-classifier/actions/runs/39470276697"
372
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "status": "passed",
4
+ "sourceCommit": "f9d463308815e17ce3a6cd9cf8e52d534a7cbed8",
5
+ "workflowRun": 39530153666,
6
+ "url": "https://github.com/zoomplus/zorya-classifier/actions/runs/39530153666",
7
+ "conclusion": "success",
8
+ "jobs": [
9
+ {
10
+ "name": "verify (windows-latest, 22)",
11
+ "conclusion": "success"
12
+ },
13
+ {
14
+ "name": "verify (windows-latest, 24)",
15
+ "conclusion": "success"
16
+ },
17
+ {
18
+ "name": "verify (ubuntu-latest, 24)",
19
+ "conclusion": "success"
20
+ },
21
+ {
22
+ "name": "verify (ubuntu-latest, 22)",
23
+ "conclusion": "success"
24
+ }
25
+ ],
26
+ "rawReceiptSha256": "89c60988c6dee3bc87dc5995b9a2bd3f667c49b09dbfa3fe8f0ab5ebd772d832",
27
+ "offlineTests": 565,
28
+ "scope": "Strict source, build, format and installed archive gates on Windows/Linux x Node22/24, including early-resolution/cancel regressions for benchmark idle waits. No live quality or resource qualification."
29
+ }
@@ -0,0 +1,13 @@
1
+ # DEV1 fresh proposal evaluation
2
+
3
+ This report summarizes the frozen DEV1 run for the `native-mobile-sam-proposals-v1` profile. It records aggregate results only; per-case outputs, image bytes, truth rows, and masks remain in the ignored local evidence store.
4
+
5
+ The raw producer summary SHA-256 is `0ca5613d4c2a244377b9f02afaa48c881dde28c1ce2ab3b67acea54a2a9c0ba7`; the run-manifest SHA-256 is `740919de4c27deda9126d7f8c2816e2f10cb039d9ac25c6dd0d27feb555d6712`. The three canonical DEV input-manifest pins are photo `6c9ed29d8586c7887ae0861fc853baf203cb43790df4959390da4b5cc9ac679a`, controlled UI `6013a54bebba277f6457765cd8ef78e12e2dd5bab4453a752967233ebb429bfc`, and controlled map `b04ba6cac5b39c927281f61e4af7dcc7a5c5c2272a637aa9676ab3009fbd5d15`. The corresponding pinned truth hashes are `793e26845deaa2cb56748ef270b8cb02877218d680068573f02e5af92b26af6a`, `c7944190e1cadab695f2688351df10a14132986040dafb72794bb1df4571abfe`, and `874971d3e9344f7c54207064115257e5c802260d2a996a53f96bb6a68b2afad3`.
6
+
7
+ All 40 planned cases were reported. Classification was correct on 35/40. Whole-object localization matched 3/30 positive cases (10%); there were 0 false locations among 10 verified negatives. Across all cases, there were 8 correct outcomes, 8 unknowns, and 21 failures; the other three were two not-found outcomes on positives and one incorrect positive location. In the 20-photo stratum, localization matched 3/16 positives (18.75%) with 0/4 false locations.
8
+
9
+ The run made 154 physical and 154 logical provider calls. Extraction returned 4 extracted, 7 not-found, 8 unknown, and 21 failed outcomes. Failures comprised 11 `INVALID_RESPONSE`, 6 `PROVIDER`, and 4 `TIMEOUT` results. These outcomes remain in the original raw run.
10
+
11
+ Seven official instance masks were available across five annotated photo cases. Three instances from two successfully extracted cases were scored at source resolution against the binary reference masks: one reached IoU 0.8 or higher (best IoU 0.9444); the other two scored 0 and 0.0001863. Four instances in three annotated cases were unavailable because extraction did not complete. The other 35 cases had no reference mask. Mask coverage and mask quality are reported separately from box localization.
12
+
13
+ The 0/10 false-location condition was met, while positive localization and mask coverage were low. This DEV1 report makes no overall development-eligibility claim. The raw producer artifacts and both failed evaluator attempts are retained under the ignored `.run/v02/evaluation-dev-2026-10-20-7d667296*` directories; final derived-summary SHA-256 is `a1db09aa787623fba57dde19b6b951cdbd665546dfee3b59c43471c6e8c5f25c`, evaluation SHA-256 is `fdcf02191ed68bf7e986e3cbf5c221cc5ca41922ab77322c42902f90d559d796`, and provenance SHA-256 is `8e7ee0676d0c0187d621c5721993e94a3748f4c08aa9367cdd79583c7c78d557`.
@@ -0,0 +1,21 @@
1
+ # DEV2 MobileSAM proposal-universe diagnostic
2
+
3
+ This is an offline component diagnostic, not an end-to-end quality result or qualification run. I replayed the first three saved spatial-choice decisions for the five DEV photos that have independent instance-mask annotations, reconstructed each seed using the same frozen spatial-layout functions, and ran only the CPU MobileSAM proposal adapter. It made no HTTP/model calls. All 36 packed masks per seeded case were written and hashed before the independent masks were opened for scoring.
4
+
5
+ Four photos had a positive final seed decision and produced 144 persisted proposal masks. The fifth photo’s final presence response was 0.4, so the original pipeline had no seed and this probe did not invent one. Candidate results were scored against all six reference instances across the four seeded cases:
6
+
7
+ | Case | Seed intersects reference instances | Nine prompt-point hits by instance | Best proposal mask IoU by instance | Original public extraction outcome |
8
+ | -------------------- | ----------------------------------: | ---------------------------------- | ---------------------------------- | ----------------------------------------- |
9
+ | photo-dev-present-06 | 1/1 | 6/9 | 0.810 | timeout after proposal generation |
10
+ | photo-dev-present-08 | 0/2 | 0/9, 0/9 | 0.000, 0.000 | extracted; selected-mask IoU 0.000, 0.000 |
11
+ | photo-dev-present-09 | 1/1 | 9/9 | 0.945 | timeout after proposal generation |
12
+ | photo-dev-present-13 | no seed | — | — | contradictory-evidence before proposals |
13
+ | photo-dev-present-15 | 1/2 | 0/9, 7/9 | 0.606, 0.942 | extent-uncertain after proposals |
14
+
15
+ Three of six reference instances had at least one proposal with mask IoU ≥ 0.8. This shows that useful masks were present in the native candidate set for some seeds, while the two reference instances in photo08 had no seed-rectangle overlap, so those targets had no matching mask. It does not show that a model would select those candidates: proposal aliases were not ranked by this evaluator, and no held-out data was read. The original user-visible pipeline still produced no successful extraction on this five-photo annotated subset: two timeouts, one selected mask with near-zero overlap, one upstream contradictory decision, and one extent-uncertain result.
16
+
17
+ For box diagnostics, the best proposal bounding-box IoUs against each independent instance-mask extent were 0.708; 0.000 and 0.124; 0.957; and 0.741 and 0.962, respectively. The annotation uses the independently supplied mask extent for this component comparison; these figures are not whole-object localization scores.
18
+
19
+ The replay used input manifest SHA `6c9ed29d8586c7887ae0861fc853baf203cb43790df4959390da4b5cc9ac679a`, truth SHA `793e26845deaa2cb56748ef270b8cb02877218d680068573f02e5af92b26af6a`, and the frozen DEV2 proposal run (`run-manifest.json` SHA `9e51ecb89e153a79e145ae171884d82373b0d9fb163266ada330c498d484ffe5`). The replay manifest SHA is `5f3547508feef50664f952b1c7ce9a0eb62088a0fd87def670b76e27fc304d95`; independent candidate-universe score SHA is `c0854f7d0be121ff1bf4487b3db7a5b52913bd00f679890e69595f39c21f7189`; selected-mask check SHA is `f8743f6ba9d5d0c07017448df13c339263d15c786ab0fcdc4dc0740d04b8152a`; and the detailed local provenance record SHA is `bda9356fc023448cece843274c147494834be7471ddcb3262f91dc751f2ce9c9`.
20
+
21
+ All raw candidate masks, metadata and scoring files remain in the ignored local run cache. The diagnostic retains the single-source-family limitation of this DEV subset and is separate from natural-image corpus-diversity claims.
@@ -0,0 +1,21 @@
1
+ # DEV2 fresh proposal evaluation
2
+
3
+ DEV2 is a complete, independently scored 40-case development run for the frozen `native-mobile-sam-proposals-v1` profile. The report contains aggregate outcomes only; per-case outputs, image bytes, truth rows, and mask rasters remain in ignored run directories. This run does not qualify the profile: positive localization and mask coverage are inadequate.
4
+
5
+ The raw producer run is `v02-fresh-native-mobile-sam-proposals-v1-2026-10-20T125410679Z-69e9be19`. Its summary SHA-256 is `5e3d6b9c59a062dea5985fb600bdf4037a1f463a3870ee69fa6730f87136a912`, and its run-manifest SHA-256 is `9e51ecb89e153a79e145ae171884d82373b0d9fb163266ada330c498d484ffe5`. The active DEV input manifests are photo (6c9ed29d8586c7887ae0861fc853baf203cb43790df4959390da4b5cc9ac679a), independent UI (6013a54bebba277f6457765cd8ef78e12e2dd5bab4453a752967233ebb429bfc), and independent map (b04ba6cac5b39c927281f61e4af7dcc7a5c5c2272a637aa9676ab3009fbd5d15); the independently pinned truth files are dev (793e26845deaa2cb56748ef270b8cb02877218d680068573f02e5af92b26af6a), dev-independent-ui (c7944190e1cadab695f2688351df10a14132986040dafb72794bb1df4571abfe), dev-independent-map (874971d3e9344f7c54207064115257e5c802260d2a996a53f96bb6a68b2afad3). The derived summary, evaluator output, and provenance hashes are respectively `aca9506688d189fe420154d37403080dcdb89d3c723c9f741afd17a7a7630590`, `abf393674f518080f915f619f4feadb4fd9f24eb677eb544fbfc869b628d4e80`, and `8551e3b796c08f696980e3862019d5926828df56520c57757585613a1d7d5a46`.
6
+
7
+ All 40 planned cases were reported. Classification was correct on 35/40. Whole-object localization matched 1/30 positive cases (3.33%); there were 0/10 false locations on verified negatives. The complete localization denominator also includes 21 unknowns, 9 failed results, 7 not-found results, and 2 located-but-incorrect boxes. Six of 40 outcomes were correct when verified negative cases are included.
8
+
9
+ | Stratum | Cases | Classification correct | Positive boxes matched | Localization outcomes |
10
+ | ------------------- | ----: | ---------------------: | ---------------------: | -------------------------------------------------- |
11
+ | Photos | 20 | 17/20 | 1/16 (6.25%) | {"unknown":5,"failed":8,"not-found":5,"located":2} |
12
+ | Controlled real UI | 10 | 8/10 | 0/7 | {"unknown":9,"failed":1} |
13
+ | Controlled real map | 10 | 10/10 | 0/7 | {"located":1,"unknown":7,"not-found":2} |
14
+
15
+ The producer returned 21 unknown, 9 failed, 7 not-found, 3 extracted extraction outcomes; failures were 6 `PROVIDER`, 3 `TIMEOUT`. It made 172 physical calls against a 300-call cap. Known cost was $0.0779143; 9 unknown-cost calls reserved a total accounted exposure of $0.2579143 against the $5 cap. Reserved exposure is not an invoice. Latency ranking was marked eligible by the run policy, but these measurements do not change the quality conclusion.
16
+
17
+ For masks, independent truth contains 7 instances across 5 annotated cases. Only 2 instances in 1 extracted case were scoreable; both instance IoUs were below 0.8 (best 0.0001863). 4 annotated cases containing 5 instances lacked a prediction mask, while 35 cases had no reference mask. No case passed the 0.8 mask threshold. This mask metric is separate from box localization.
18
+
19
+ Against DEV1 on the same frozen 40-case source and truth pins, classification stayed at 35/40, while whole-object positives fell from 3/30 to 1/30; photo positives fell from 3/16 to 1/16. Unknown localization outcomes increased from 8 to 21; failures changed from 21 to 9. Mask cases passing IoU 0.8 fell from 1 to 0; DEV1 scored 3 instances in 2 cases, versus 2 instances in 1 case here. DEV1 provenance SHA-256: `8e7ee0676d0c0187d621c5721993e94a3748f4c08aa9367cdd79583c7c78d557`; raw summary SHA-256: `0ca5613d4c2a244377b9f02afaa48c881dde28c1ce2ab3b67acea54a2a9c0ba7`; run-manifest SHA-256: `740919de4c27deda9126d7f8c2816e2f10cb039d9ac25c6dd0d27feb555d6712`.
20
+
21
+ The older no-image-control development report is not a paired comparator: it contains 30 cases, 7/30 correct classifications, 0/23 positive localizations, and 30 unknown localization outcomes, rather than the current pinned 40-case cohort. It is reported only as context and is not used to qualify this profile.
@@ -0,0 +1,16 @@
1
+ # Fresh independent development results
2
+
3
+ These frozen runs use 20 new licensed Open Images photographs and 10 controlled real Geany UI cases with an independent accessibility/pixel oracle. No heldout cases were inspected. The map stratum is separate and was not included in these 30-case runs. Classification and localization are separate requests; classification does not supply localization with a label.
4
+
5
+ | Variant | Classification | Whole photos | Whole UI | False locations | Unknown / failed localization | Physical calls | Known USD / unknown costs |
6
+ | --------------------------------------------------------------------------------- | -------------: | -----------: | -------: | --------------: | ----------------------------: | -------------: | ------------------------: |
7
+ | [Numeric intervals](fresh-native-numeric/evaluation-root-v1.json) | 26/30 | 0/16 | 0/7 | 0/7 | 15 / 6 | 124 | 0.0496704 / 6 |
8
+ | [Outlined seed and axis views](fresh-native-outline-axis/evaluation-root-v1.json) | 26/30 | 1/16 | 0/7 | 0/7 | 14 / 8 | 124 | 0.0585901 / 8 |
9
+
10
+ A whole-object success requires both IoU ≥0.5 and visible reference coverage ≥0.9 for the same independently labeled instance. A returned fragment does not count. Every planned positive remains in the denominator, including unknown, not-found, provider error and timeout. Zero false locations alone does not establish useful localization.
11
+
12
+ Each directory retains the exact producer summary, frozen source/route/prompt manifest, independent evaluation and raw-file SHA256 values. Native routes use Luna Decisions/OpenAI with no retries or fallback. The unknown-cost reservation is USD 0.02 per physical request, giving accounted exposures of USD 0.1696704 and USD 0.2185901 respectively. A reservation is not a provider invoice.
13
+
14
+ Both runs occurred during concurrent development/native work; their timing is diagnostic and excluded from latency ranking. Neither result qualifies a production vision winner. Earlier successful Car examples and failed pilots remain in [the older development report](boundary-variants.md).
15
+
16
+ The next private diagnostic tests whether actual mask candidates can recover an entire object from the existing seed, then lets a closed decision select an actual candidate. Mask coordinates come from pixels. Ground truth is read only by a separate evaluator after durable predictions exist. Oracle-best candidate scores measure available potential, not end-to-end quality or a model selection success.
@@ -0,0 +1,9 @@
1
+ {
2
+ "runId": "v02-fresh-native-numeric-v1-2026-10-20T102835524Z-c381b57e",
3
+ "sha256": {
4
+ "summary.json": "fed95ee229191930c9bafe524b126258bb06a934ef821315d555957181b6dd3f",
5
+ "run-manifest.json": "c955bd54b6140781edbcd2e77a8818805743215b82eb69b5d73e397065ba3fee",
6
+ "evaluation-root-v1.json": "e826e8652ed3551abe5f5702d342315bc4452487f39f4256b1a979591f4fda3e"
7
+ },
8
+ "scope": "fresh DEV 20 licensed photos and 10 independent controlled UI cases; no heldout; concurrent-development latency unranked"
9
+ }