zorya-classifier 0.1.0 → 0.2.1

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 (311) hide show
  1. package/NOTICE.md +2 -0
  2. package/README.md +37 -9
  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 +24 -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 +81 -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 +56 -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 +31 -0
  23. package/dist/entities/segmentation-verification.js +1 -0
  24. package/dist/entities/segmentation.d.ts +164 -0
  25. package/dist/entities/segmentation.js +5 -0
  26. package/dist/entities/whole-object.d.ts +132 -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 +17 -0
  49. package/dist/infrastructure/segmentation/grabcut/index.js +121 -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 +66 -0
  55. package/dist/infrastructure/segmentation/mobile-sam/index.js +478 -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 +43 -14
  98. package/docs/acceptance.md +116 -3
  99. package/docs/api.md +12 -6
  100. package/docs/architecture.md +22 -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/candidate-evaluation.json +2812 -0
  134. package/docs/evidence/v02/categorical-heldout-v4/candidate-physical-receipts.json +15261 -0
  135. package/docs/evidence/v02/categorical-heldout-v4/candidate-provenance.json +131 -0
  136. package/docs/evidence/v02/categorical-heldout-v4/control-evaluation.json +855 -0
  137. package/docs/evidence/v02/categorical-heldout-v4/control-physical-receipts.json +4402 -0
  138. package/docs/evidence/v02/categorical-heldout-v4/control-provenance.json +31 -0
  139. package/docs/evidence/v02/categorical-heldout-v4/mask-normalized-exploratory.json +682 -0
  140. package/docs/evidence/v02/categorical-heldout-v4/paired-qualification.json +21 -0
  141. package/docs/evidence/v02/categorical-heldout-v4/report.json +258 -0
  142. package/docs/evidence/v02/categorical-presence-dev6.json +144 -0
  143. package/docs/evidence/v02/categorical-presence-dev6.md +18 -0
  144. package/docs/evidence/v02/categorical-vision-method-selection.json +90 -0
  145. package/docs/evidence/v02/checked-region-component-v1/README.md +7 -0
  146. package/docs/evidence/v02/checked-region-component-v1/evidence.json +311 -0
  147. package/docs/evidence/v02/checked-region-resource-interrupted-2b0d09f.json +102 -0
  148. package/docs/evidence/v02/checked-region-segmentation-resource-4df544c-receipt.json +167 -0
  149. package/docs/evidence/v02/checked-region-segmentation-resource-4df544c-root-review.json +58 -0
  150. package/docs/evidence/v02/checked-region-segmentation-resource-987ac32-receipt.json +158 -0
  151. package/docs/evidence/v02/ci-012b935.json +17 -0
  152. package/docs/evidence/v02/ci-0c365cb.json +372 -0
  153. package/docs/evidence/v02/ci-185bde8.json +32 -0
  154. package/docs/evidence/v02/ci-24f849f.json +95 -0
  155. package/docs/evidence/v02/ci-25c19cd.json +375 -0
  156. package/docs/evidence/v02/ci-2922caf.json +375 -0
  157. package/docs/evidence/v02/ci-29357d7.json +29 -0
  158. package/docs/evidence/v02/ci-32aa90d.json +24 -0
  159. package/docs/evidence/v02/ci-35e3064.json +376 -0
  160. package/docs/evidence/v02/ci-4331b1b.json +384 -0
  161. package/docs/evidence/v02/ci-43b7426.json +376 -0
  162. package/docs/evidence/v02/ci-450439c.json +373 -0
  163. package/docs/evidence/v02/ci-46283fe.json +29 -0
  164. package/docs/evidence/v02/ci-4c9c09f.json +34 -0
  165. package/docs/evidence/v02/ci-5579646.json +27 -0
  166. package/docs/evidence/v02/ci-6f9cc15.json +127 -0
  167. package/docs/evidence/v02/ci-7c1051f.json +27 -0
  168. package/docs/evidence/v02/ci-9837888.json +34 -0
  169. package/docs/evidence/v02/ci-987ac32.json +29 -0
  170. package/docs/evidence/v02/ci-9d00fe5.json +25 -0
  171. package/docs/evidence/v02/ci-9f85acc.json +127 -0
  172. package/docs/evidence/v02/ci-be275a6.json +201 -0
  173. package/docs/evidence/v02/ci-c107ddf.json +372 -0
  174. package/docs/evidence/v02/ci-c35f67d.json +127 -0
  175. package/docs/evidence/v02/ci-c5eddd8.json +32 -0
  176. package/docs/evidence/v02/ci-d2042e0.json +372 -0
  177. package/docs/evidence/v02/ci-d684259.json +375 -0
  178. package/docs/evidence/v02/ci-e0c190b.json +127 -0
  179. package/docs/evidence/v02/ci-e551253.json +372 -0
  180. package/docs/evidence/v02/ci-f9d4633.json +29 -0
  181. package/docs/evidence/v02/dev1-proposal-evaluation.md +13 -0
  182. package/docs/evidence/v02/dev2-mobile-sam-proposal-oracle.md +21 -0
  183. package/docs/evidence/v02/dev2-proposal-evaluation.md +21 -0
  184. package/docs/evidence/v02/fresh-development.md +16 -0
  185. package/docs/evidence/v02/fresh-native-numeric/artifact-hashes.json +9 -0
  186. package/docs/evidence/v02/fresh-native-numeric/evaluation-root-v1.json +568 -0
  187. package/docs/evidence/v02/fresh-native-numeric/run-manifest.json +342 -0
  188. package/docs/evidence/v02/fresh-native-numeric/summary.json +5654 -0
  189. package/docs/evidence/v02/fresh-native-outline-axis/artifact-hashes.json +9 -0
  190. package/docs/evidence/v02/fresh-native-outline-axis/evaluation-root-v1.json +568 -0
  191. package/docs/evidence/v02/fresh-native-outline-axis/run-manifest.json +378 -0
  192. package/docs/evidence/v02/fresh-native-outline-axis/summary.json +5605 -0
  193. package/docs/evidence/v02/fresh-text/README.md +23 -0
  194. package/docs/evidence/v02/fresh-text/ascii-contours-v1/classify-followup-run-manifest.json +405 -0
  195. package/docs/evidence/v02/fresh-text/ascii-contours-v1/classify-followup-summary.json +1646 -0
  196. package/docs/evidence/v02/fresh-text/ascii-contours-v1/evaluation.json +568 -0
  197. package/docs/evidence/v02/fresh-text/ascii-contours-v1/original-run-manifest.json +404 -0
  198. package/docs/evidence/v02/fresh-text/ascii-contours-v1/original-summary.json +4416 -0
  199. package/docs/evidence/v02/fresh-text/ascii-luma-v1/classify-followup-run-manifest.json +405 -0
  200. package/docs/evidence/v02/fresh-text/ascii-luma-v1/classify-followup-summary.json +1646 -0
  201. package/docs/evidence/v02/fresh-text/ascii-luma-v1/evaluation.json +568 -0
  202. package/docs/evidence/v02/fresh-text/ascii-luma-v1/original-run-manifest.json +404 -0
  203. package/docs/evidence/v02/fresh-text/ascii-luma-v1/original-summary.json +4647 -0
  204. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/classify-followup-run-manifest.json +405 -0
  205. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/classify-followup-summary.json +846 -0
  206. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/evaluation.json +568 -0
  207. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/original-run-manifest.json +404 -0
  208. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/original-summary.json +1789 -0
  209. package/docs/evidence/v02/fresh-text/no-image-control/evaluation.json +568 -0
  210. package/docs/evidence/v02/fresh-text/no-image-control/original-run-manifest.json +404 -0
  211. package/docs/evidence/v02/fresh-text/no-image-control/original-summary.json +3953 -0
  212. package/docs/evidence/v02/fresh-text/palette-grid-v1/classify-followup-run-manifest.json +405 -0
  213. package/docs/evidence/v02/fresh-text/palette-grid-v1/classify-followup-summary.json +1646 -0
  214. package/docs/evidence/v02/fresh-text/palette-grid-v1/evaluation.json +568 -0
  215. package/docs/evidence/v02/fresh-text/palette-grid-v1/original-run-manifest.json +404 -0
  216. package/docs/evidence/v02/fresh-text/palette-grid-v1/original-summary.json +3974 -0
  217. package/docs/evidence/v02/fresh-text/pixel-rle-v1/classify-followup-run-manifest.json +405 -0
  218. package/docs/evidence/v02/fresh-text/pixel-rle-v1/classify-followup-summary.json +1646 -0
  219. package/docs/evidence/v02/fresh-text/pixel-rle-v1/evaluation.json +568 -0
  220. package/docs/evidence/v02/fresh-text/pixel-rle-v1/original-run-manifest.json +404 -0
  221. package/docs/evidence/v02/fresh-text/pixel-rle-v1/original-summary.json +4945 -0
  222. package/docs/evidence/v02/fresh-text/report.json +284 -0
  223. package/docs/evidence/v02/fresh-text/svg-contours-v1/classify-followup-run-manifest.json +405 -0
  224. package/docs/evidence/v02/fresh-text/svg-contours-v1/classify-followup-summary.json +846 -0
  225. package/docs/evidence/v02/fresh-text/svg-contours-v1/evaluation.json +568 -0
  226. package/docs/evidence/v02/fresh-text/svg-contours-v1/original-run-manifest.json +404 -0
  227. package/docs/evidence/v02/fresh-text/svg-contours-v1/original-summary.json +2189 -0
  228. package/docs/evidence/v02/heldout-evaluation-20261020.md +37 -0
  229. package/docs/evidence/v02/heldout-input-derivation.md +18 -0
  230. package/docs/evidence/v02/integration-0c365cb.json +90 -0
  231. package/docs/evidence/v02/integration-25c19cd.json +52 -0
  232. package/docs/evidence/v02/integration-35e3064.json +41 -0
  233. package/docs/evidence/v02/integration-4331b1b.json +42 -0
  234. package/docs/evidence/v02/integration-4c9c09f.json +46 -0
  235. package/docs/evidence/v02/integration-8010aad.json +48 -0
  236. package/docs/evidence/v02/integration-c1aa640.json +41 -0
  237. package/docs/evidence/v02/integration-eea1790.json +46 -0
  238. package/docs/evidence/v02/integration-fa82e65.json +42 -0
  239. package/docs/evidence/v02/jpeg-transport-offline.json +268 -0
  240. package/docs/evidence/v02/jpeg-transport-offline.md +7 -0
  241. package/docs/evidence/v02/local-archive-cleanup.json +59 -0
  242. package/docs/evidence/v02/native-base64-after.json +30 -0
  243. package/docs/evidence/v02/native-base64-before.json +32 -0
  244. package/docs/evidence/v02/native-checked-region-windows-46283fe.json +248 -0
  245. package/docs/evidence/v02/native-checked-region-windows-987ac32.json +141 -0
  246. package/docs/evidence/v02/native-grabcut-windows-4c494a3-run2.json +148 -0
  247. package/docs/evidence/v02/native-grabcut-windows-4c494a3-run3.json +148 -0
  248. package/docs/evidence/v02/native-grabcut-windows-4c494a3.json +56 -0
  249. package/docs/evidence/v02/native-proposal-windows-0c365cb.json +148 -0
  250. package/docs/evidence/v02/native-proposal-windows-450439c.json +156 -0
  251. package/docs/evidence/v02/native-proposal-windows-4c9c09f-retry1.json +147 -0
  252. package/docs/evidence/v02/native-proposal-windows-4c9c09f.json +52 -0
  253. package/docs/evidence/v02/native-region-windows-efc9318.json +163 -0
  254. package/docs/evidence/v02/native-windows-eea1790-baseline.json +198 -0
  255. package/docs/evidence/v02/native-windows-eea1790.json +228 -0
  256. package/docs/evidence/v02/ordinary-luna-axis/run-manifest.json +99 -0
  257. package/docs/evidence/v02/ordinary-luna-axis/summary.json +811 -0
  258. package/docs/evidence/v02/owned-temp-cleanup-20261020-v1.json +28 -0
  259. package/docs/evidence/v02/presentation-paired-20261020.json +1438 -0
  260. package/docs/evidence/v02/proposal-resource-soak-261dc23.json +201 -0
  261. package/docs/evidence/v02/proposal-resource-soak-450439c-receipt.md +13 -0
  262. package/docs/evidence/v02/reconstructed-c03-box.json +41 -0
  263. package/docs/evidence/v02/region-seeded-dev-v1/README.md +17 -0
  264. package/docs/evidence/v02/region-seeded-dev-v1/evaluation.json +260 -0
  265. package/docs/evidence/v02/region-seeded-dev-v2/README.md +15 -0
  266. package/docs/evidence/v02/region-seeded-dev-v2/evaluation.json +232 -0
  267. package/docs/evidence/v02/region-seeded-dev-v3-candidate-only/README.md +9 -0
  268. package/docs/evidence/v02/region-seeded-dev-v3-candidate-only/control-identity-failure.json +22 -0
  269. package/docs/evidence/v02/region-seeded-dev-v3-candidate-only/evaluation.json +160 -0
  270. package/docs/evidence/v02/region-seeded-dev-v3-control-r2/README.md +9 -0
  271. package/docs/evidence/v02/region-seeded-dev-v3-control-r2/attempt-accounting.json +55 -0
  272. package/docs/evidence/v02/region-seeded-dev-v3-control-r2/evaluation.json +136 -0
  273. package/docs/evidence/v02/region-seeded-development-control-r2-freeze-20261021.json +132 -0
  274. package/docs/evidence/v02/region-seeded-development-freeze-20261021-v1.json +167 -0
  275. package/docs/evidence/v02/region-seeded-development-freeze-20261021-v2.json +186 -0
  276. package/docs/evidence/v02/region-seeded-development-freeze-20261021-v3.json +205 -0
  277. package/docs/evidence/v02/region-seeded-heldout-cancelled-before-dispatch-20261021-v2.json +20 -0
  278. package/docs/evidence/v02/region-seeded-heldout-dispatch-authorization-20261021-v3.json +47 -0
  279. package/docs/evidence/v02/region-seeded-heldout-readiness-audit-20261021-v3.json +125 -0
  280. package/docs/evidence/v02/region-seeded-heldout-run-freeze-20261021-v2.json +234 -0
  281. package/docs/evidence/v02/region-seeded-heldout-run-freeze-20261021-v3.json +357 -0
  282. package/docs/evidence/v02/region-seeded-heldout-v3/README.md +19 -0
  283. package/docs/evidence/v02/region-seeded-heldout-v3/evaluation-summary.json +445 -0
  284. package/docs/evidence/v02/region-seeded-method-selection-20261021-v2.json +66 -0
  285. package/docs/evidence/v02/region-seeded-method-selection-20261021-v3.json +120 -0
  286. package/docs/evidence/v02/region-segmentation-resource-0ba4c87-receipt.json +156 -0
  287. package/docs/evidence/v02/resource-soak-linux-8010aad.json +125 -0
  288. package/docs/evidence/v02/screen-v2-terminal-evaluation.md +22 -0
  289. package/docs/evidence/v02/seed-outline/run-manifest.json +59 -0
  290. package/docs/evidence/v02/seed-outline/summary.json +487 -0
  291. package/docs/evidence/v02/seed-unbounded/run-manifest.json +80 -0
  292. package/docs/evidence/v02/seed-unbounded/summary.json +730 -0
  293. package/docs/evidence/v02/segmentation/README.md +21 -0
  294. package/docs/evidence/v02/segmentation/component-comparison-summary.json +240 -0
  295. package/docs/evidence/v02/segmentation/provenance/MOBILE-SAM-LICENSE.txt +201 -0
  296. package/docs/evidence/v02/segmentation/provenance/OPENCV-LICENSE.txt +202 -0
  297. package/docs/evidence/v02/segmentation/provenance/mobile-sam-download-receipt.json +29 -0
  298. package/docs/evidence/v02/segmentation/provenance/mobile-sam-graph-audit.json +214 -0
  299. package/docs/evidence/v02/segmentation/provenance/mobile-sam-model-metadata.json +166 -0
  300. package/docs/evidence/v02/split-choice-noul-dev6.json +72 -0
  301. package/docs/evidence/v02/split-choice-noul-dev6.md +11 -0
  302. package/docs/evidence/v02/supported-vision-screen-20261020.md +65 -0
  303. package/docs/evidence/v02/wesnoth-1.16.11-minimap-projection-source-audit.md +56 -0
  304. package/docs/evidence/v02/wesnoth-proof-root-review-20261020-v1.json +76 -0
  305. package/docs/operations.md +8 -2
  306. package/docs/plan.md +2 -0
  307. package/docs/publishing.md +16 -1
  308. package/docs/research/text-transport-audit.md +66 -0
  309. package/docs/v02-usage.md +164 -0
  310. package/docs/vision-results.md +31 -2
  311. package/package.json +30 -5
@@ -0,0 +1,201 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "kind": "public-numeric-receipt",
4
+ "runId": "proposal-resource-soak-monotonic-261dc23",
5
+ "scope": "Linux CPU resource and native-process lifecycle acceptance for the public locate/extract path; synthetic 256x256 fixture with injected deterministic decision",
6
+ "execution": {
7
+ "mode": "working-tree",
8
+ "sourceRevision": "261dc235f609934b7aa125ace52984d9dd786d83",
9
+ "sourceFileCount": 55,
10
+ "sourceManifestSha256": "0fb0dae63ffd384c5c32dbc9eac98e51e7c7a67a97b75cebf87eae32b09fdc66",
11
+ "sourceManifestUnchanged": true,
12
+ "runtimeArchiveReferenceSha256": "095552d0613c2b2e25b9c412fc29658f96458d5091e34060644e802e320bd872",
13
+ "archiveInstalledByThisRun": false
14
+ },
15
+ "separateInstalledRuntimeParity": {
16
+ "verifiedArchiveSha256": "095552d0613c2b2e25b9c412fc29658f96458d5091e34060644e802e320bd872",
17
+ "runtimeDistFileCount": 106,
18
+ "runtimeDistManifestSha256": "87f6a18d46107ca08b37170db1e9204514dfc72a1dfc3181f59e8ffe76d85c95",
19
+ "installedFileCountIncludingPackageJson": 107,
20
+ "installedManifestSha256": "c886564a772d173fc8b1b9802dc6b42a9dc6261ad09fd7cef5942a8e00a14385",
21
+ "evidence": "native-proposal-windows-0c365cb.json; separate installed-archive Windows acceptance"
22
+ },
23
+ "host": {
24
+ "platform": "Linux WSL2",
25
+ "kernel": "6.6.87.2-microsoft-standard-WSL2",
26
+ "architecture": "x64",
27
+ "cpu": "AMD Ryzen 7 7800X3D, 16 logical CPUs",
28
+ "physicalMemoryBytes": 33185517568,
29
+ "availableMemoryBeforeBytes": 26707755008,
30
+ "availableMemoryAfterBytes": 27247034368,
31
+ "swapTotalBytes": 8589934592,
32
+ "swapFreeBeforeBytes": 8572784640,
33
+ "swapFreeAfterBytes": 8533704704,
34
+ "cgroupMemoryAndSwapLimits": "unavailable",
35
+ "diskAvailableBeforeBytes": 797428555776,
36
+ "diskAvailableAfterBytes": 795662667776,
37
+ "hostSnapshotSha256": {
38
+ "before": "5a118971a69c67bfdc6b4f6dbfa7b49782c67616cb4ae90a9015bf5c67608013",
39
+ "after": "23b6ad6ca965b9dd5269bd9e1868ba22654c11d586afbfeee2dcaa1b00139f8c"
40
+ }
41
+ },
42
+ "timing": {
43
+ "clock": "performance.now monotonic; ISO timestamps are metadata",
44
+ "processStartedAt": "2026-10-20T15:19:32.841Z",
45
+ "warmupStartedAt": "2026-10-20T15:19:43.354Z",
46
+ "measurementStartedAt": "2026-10-20T15:30:39.133Z",
47
+ "busyStartedAt": "2026-10-20T15:31:09.134Z",
48
+ "idleAfterStartedAt": "2026-10-20T17:29:56.677Z",
49
+ "endedAt": "2026-10-20T17:30:29.660Z",
50
+ "requested": {
51
+ "warmupMs": 600000,
52
+ "idleBeforeMs": 30000,
53
+ "busyMs": 6540000,
54
+ "idleAfterMs": 30000,
55
+ "sampleIntervalMs": 5000,
56
+ "forcedGc": false
57
+ },
58
+ "observed": {
59
+ "processMs": 7212628.618,
60
+ "warmupMs": 600070.879,
61
+ "measurementMs": 6602023.775,
62
+ "idleBeforeMs": 30001.239,
63
+ "busyMs": 6541990.617,
64
+ "idleAfterMs": 30001.263
65
+ },
66
+ "accepted": true
67
+ },
68
+ "workload": {
69
+ "sourceFixtureSha256": "5aa35d9962a0da1fb7a4e456dc2fc5e0728486626290274a28b9550214c674dc",
70
+ "providerHttpCalls": 0,
71
+ "operations": 2158,
72
+ "locates": 1079,
73
+ "extracts": 1079,
74
+ "located": 1079,
75
+ "extracted": 1079,
76
+ "unknown": 0,
77
+ "failed": 0,
78
+ "timeouts": 0,
79
+ "seedMisses": 0,
80
+ "coldPerCallDurationMs": {
81
+ "p50": 2993.656,
82
+ "p95": 3344.59,
83
+ "ranking": "not valid; shared-host diagnostic activity overlapped this session"
84
+ },
85
+ "warmupOperationsSeparatelyRecorded": 207
86
+ },
87
+ "sampling": {
88
+ "parentSampleCount": 1324,
89
+ "nominalIntervalMs": 5000,
90
+ "observedGapMs": {
91
+ "median": 5000.363,
92
+ "p95": 5001.467,
93
+ "maximum": 5032.394
94
+ }
95
+ },
96
+ "nativeLifecycle": {
97
+ "childStarts": 2158,
98
+ "childCloses": 2158,
99
+ "childrenStillOwned": [],
100
+ "abortAndJoin": "passed",
101
+ "queueCapacity": 1,
102
+ "queueFulfilled": 3,
103
+ "dispose": "passed",
104
+ "parentLossChildExited": true,
105
+ "localDecisionReject": "PROVIDER",
106
+ "timeout": "TIMEOUT",
107
+ "noProviderHttp": true,
108
+ "measurementWindowOnly": true
109
+ },
110
+ "memory": {
111
+ "units": "bytes",
112
+ "parentPeak": {
113
+ "rss": 472461312,
114
+ "heapTotal": 122073088,
115
+ "heapUsed": 30624760,
116
+ "external": 76743076,
117
+ "arrayBuffers": 60492664
118
+ },
119
+ "idleWindowMedians": {
120
+ "before": {
121
+ "rss": 348393472,
122
+ "heapUsed": 13900424,
123
+ "external": 48993340,
124
+ "arrayBuffers": 1075720
125
+ },
126
+ "after": {
127
+ "rss": 469778432,
128
+ "heapUsed": 17742692,
129
+ "external": 62038477,
130
+ "arrayBuffers": 1084936
131
+ }
132
+ },
133
+ "gateMath": {
134
+ "rss": {
135
+ "formula": "max(20% of idle-before median, 128 MiB)",
136
+ "thresholdBytes": 134217728,
137
+ "observedIncreaseBytes": 121384960,
138
+ "observedIncreaseMiB": 115.76,
139
+ "thresholdMiB": 128,
140
+ "passed": true,
141
+ "reviewNote": "Below 128 MiB; still flagged for review because the median RSS increased."
142
+ },
143
+ "heapUsed": {
144
+ "formula": "max(10% of idle-before median, 16 MiB)",
145
+ "thresholdBytes": 16777216,
146
+ "observedIncreaseBytes": 3842268,
147
+ "passed": true
148
+ },
149
+ "external": {
150
+ "formula": "max(10% of idle-before median, 16 MiB)",
151
+ "thresholdBytes": 16777216,
152
+ "observedIncreaseBytes": 13045137,
153
+ "passed": true
154
+ },
155
+ "arrayBuffers": {
156
+ "formula": "max(10% of idle-before median, 16 MiB)",
157
+ "thresholdBytes": 16777216,
158
+ "observedIncreaseBytes": 9216,
159
+ "passed": true
160
+ }
161
+ }
162
+ },
163
+ "concurrency": {
164
+ "note": "Shared development host. Source checks, builds, provider development requests, native diagnostics and controlled application captures overlapped the broader run. Treat throughput and cold latency as unranked. This receipt contains no fresh heldout inputs or labels."
165
+ },
166
+ "rawArtifactsExcludedFromCommit": [
167
+ {
168
+ "file": ".run/v02/proposal-resource-soak-monotonic-261dc23.json",
169
+ "sha256": "0b25adcde61cc90f5faa696aa7d7ee83d840abfa159044c98c8813fa1d505d30"
170
+ },
171
+ {
172
+ "file": ".run/v02/proposal-resource-soak-monotonic-261dc23-proc-dense.tsv",
173
+ "sha256": "5ed02be50937f7810f1f4daea8b490b67a027654b3e35273f80f4d0615fb579e"
174
+ },
175
+ {
176
+ "file": ".run/v02/proposal-resource-soak-monotonic-261dc23-proc-watch.tsv",
177
+ "sha256": "92fa31bf455ecf17e051064417be7cc513d615daadb6f7eb3cd5e7c87b8a1b88"
178
+ },
179
+ {
180
+ "file": ".run/v02/proposal-resource-soak-monotonic-261dc23.log",
181
+ "sha256": "2fc9376e2bfecb663ee0ac748e4d1de9d8ab38b3afab01b8c9f1482b8ba842c1"
182
+ },
183
+ {
184
+ "file": ".run/v02/host-limits-before-261dc23.json",
185
+ "sha256": "5a118971a69c67bfdc6b4f6dbfa7b49782c67616cb4ae90a9015bf5c67608013"
186
+ },
187
+ {
188
+ "file": ".run/v02/host-limits-after-261dc23.json",
189
+ "sha256": "23b6ad6ca965b9dd5269bd9e1868ba22654c11d586afbfeee2dcaa1b00139f8c"
190
+ },
191
+ {
192
+ "file": ".run/v02/source-manifest-261dc23.json",
193
+ "sha256": "0fb0dae63ffd384c5c32dbc9eac98e51e7c7a67a97b75cebf87eae32b09fdc66"
194
+ }
195
+ ],
196
+ "limitations": [
197
+ "The load used a deterministic synthetic image and injected decision fixture; it does not establish image-localization or segmentation accuracy.",
198
+ "This was a working-tree resource run. The separately verified 106-file distribution archive and 107-file installed manifest are cited above and in the Windows acceptance evidence, not represented as the execution source for this run.",
199
+ "Resource behavior is scoped to the recorded Linux WSL2 environment and model assets."
200
+ ]
201
+ }
@@ -0,0 +1,13 @@
1
+ # Proposal pipeline resource soak receipt
2
+
3
+ This receipt summarizes the 2026-10-20 Linux CPU run of the public MobileSAM object-proposal workflow. It is a resource and lifecycle measurement for that workflow only; it does not qualify the later region-seeded full-source extraction composition.
4
+
5
+ The run used Node v24.12.0 on Linux x64, a synthetic 256×256 image, two ONNX threads, one active native child and two queued jobs, a 600-second warmup, 30-second idle windows, 6,540 seconds of alternating locate/extract work, and five-second samples. Forced garbage collection was disabled and the injected decision port made no provider or HTTP calls. The run naturally completed 3,022 operations: 1,511 locates and 1,511 extractions, all successful. It recorded 3,022 child starts and closes, no remaining owned children, and passed abort-and-join, queue/dispose, and parent-loss checks.
6
+
7
+ Monotonic validation recorded 601,436 ms warmup and 6,600,933 ms measurement (30,000 ms initial idle, 6,540,901 ms busy, and 30,001 ms final idle), for 7,210,991 ms from process start. A separate `/proc` witness observed the same PID and start-tick identity alive at process age 7,210.46 seconds before recording its exit. All 55 pinned source files matched before and after the run.
8
+
9
+ The idle-window median RSS grew from 327.7 MiB to 556.0 MiB, a 228.3 MiB increase. This exceeds the investigation threshold `max(20% of initial RSS, 128 MiB)` (128 MiB here), so the RSS criterion is **under investigation**, not a resource pass. Over the same windows, heap used changed from 13.8 MiB to 19.5 MiB, external memory from 52.7 MiB to 8.6 MiB, and ArrayBuffers from 1.3 MiB to 5.3 MiB. The parent RSS five-minute median climbed from about 378.9 MiB during minutes 15–20 to 493.3 MiB during minutes 20–25, then rose gradually to about 556 MiB near the end. It was flat within the final idle window (556.4 to 556.0 MiB). These counters do not identify the retained RSS category or establish a leak; native allocator or mapped-memory retention remain possibilities. No forced GC or post-run memory reclamation was used to classify it.
10
+
11
+ Host snapshots recorded 16 logical CPUs, 33.19 GB physical memory, 27.20 GB then 27.12 GB available memory, 8 GB swap, and about 794.8 GB then 794.3 GB free disk. The run's five-minute samples and child diagnostics are preserved in the local raw evidence bundle; the final report hash is `78f8598043fd3ccc2408b5418e5c281f0757f6736fe9d4c470d143e279092151`, the dense kernel witness hash is `58da2cecee549517aee6a221eb266ac32cb37a6e1aa9c3f1dad5cc7e8842d619`, and the 55-file source manifest hash is `4faca82eb64787194e6ed402944d03bef1a0451504bd0903b73d035915f65c9d`.
12
+
13
+ The archive SHA recorded by the harness was a reference only; the harness executed the pinned working tree and did not install the archive. The run overlapped other development activity, so its operation timings are not suitable for latency ranking. It is retained as an honest historical baseline and does not stand in for the region-seeded workflow.
@@ -0,0 +1,41 @@
1
+ {
2
+ "schema": "zorya-reconstructed-proposal-box-diagnostic-v1",
3
+ "recordedAt": "2026-10-20T16:12:46.713Z",
4
+ "caseId": "photo-dev-present-01",
5
+ "inputSha256": "71e781adb0c2d47d97e6fd5868e6dbe4de8c1375536e1753f897931ff90575dc",
6
+ "truthSha256": "793e26845deaa2cb56748ef270b8cb02877218d680068573f02e5af92b26af6a",
7
+ "reconstructionSha256": "b2f6909901185ad6e80421d0afdf0b2130225889ceaf64109fb361fff017ab4a",
8
+ "maskSha256": "4a3ff522f1623eb7b9f02f8e56f127755275371597fb76d344177cc4f024d3ed",
9
+ "metricSourceSha256": "c22e5ff58ac13f9c54ce064fe839ca690de6c511384cf3a2546ef3de0d761416",
10
+ "predicted": {
11
+ "left": 130,
12
+ "top": 0,
13
+ "width": 894,
14
+ "height": 767
15
+ },
16
+ "references": [
17
+ {
18
+ "left": 118.4,
19
+ "top": 88.000002048,
20
+ "width": 905.6,
21
+ "height": 679.999997952
22
+ }
23
+ ],
24
+ "boxMetric": {
25
+ "matched": true,
26
+ "instances": [
27
+ {
28
+ "index": 0,
29
+ "iou": 0.8740726848719232,
30
+ "coverage": 0.9857390615212981,
31
+ "matched": true
32
+ }
33
+ ]
34
+ },
35
+ "maskMetric": {
36
+ "status": "not-computed",
37
+ "reason": "This diagnostic admits official box annotations only, not a reference segmentation mask."
38
+ },
39
+ "providerHttpCalls": 0,
40
+ "scope": "Counterfactual component diagnostic only. The original model rejected completeness, returned unknown and saved no accepted mask. The reconstructed mask cannot prove original mask-byte identity or repair original end-to-end accuracy."
41
+ }
@@ -0,0 +1,17 @@
1
+ # Region-seeded DEV v1: failed evaluation
2
+
3
+ This is an exposed development evaluation, not release qualification. The frozen gate failed: the run returned a seed region and mask for one verified-negative case, while the predeclared gate required zero false seed locations and zero false extractions. It also produced only 5 correct mask-derived boxes among 30 positive cases and only 1 passing exact-canvas mask among 7 references. The underlying results and denominators are preserved unchanged in the ignored run artifacts; this checked-in report contains aggregate metadata and hashes only.
4
+
5
+ The candidate used the original three-choice class decision, followed by a full-source MobileSAM seed-point prompt from the located region. It made no extent-search or same-instance confirmation calls. The recorded model route was `openai/gpt-6-luna-decisions`, with CPU MobileSAM. The no-image control used the same classification recipe and verified that all 99 checked requests contained no image parts. Neither model is a library default; both are benchmark-only caller configurations.
6
+
7
+ The 40-case DEV set contained 20 Open Images photographs, 10 controlled Geany UI captures, and 10 controlled Freeciv renderer captures. The UI set uses a known GTK style and an independent application/source-geometry oracle. The map set uses one controlled game family with source-state and renderer checks. These controlled strata do not represent natural user captures or diversity across applications and games. One Freeciv Fighter negative was classified as absent, but the pipeline still returned a seed and mask from unrelated map content; the absence label came from the complete controlled game-state inventory.
8
+
9
+ The seed-region metric is intentionally weaker than localization: any positive-area intersection with a reference box counts only as a coarse search proxy. The candidate found 18 such intersections across 30 positive cases and also found one region on a negative. Whole-object success is measured separately from the mask-derived bounding box using the frozen criterion of IoU at least 0.5 and reference-box coverage at least 0.9. That criterion passed 5/30 positives, with one false location among 10 negatives. All 40 rows remain in the denominator: 7 extraction outcomes were unknown and 8 failed.
10
+
11
+ The seven independent exact-canvas masks were all scored. One reached IoU 0.8; the other six did not. The remaining 35 cases have no reference mask and are unannotated for mask scoring, rather than counted as mask failures or successes.
12
+
13
+ The paired no-image comparison is limited to the 16 positive photo cases and the same coarse seed-box-intersection proxy. Its bootstrap interval does not measure whole-object localization. The separate GrabCut run reused the same 23 already-found seeds, with no new model calls. On the 22 available positive seeds, GrabCut produced 0 passing mask-derived boxes versus MobileSAM's 5 on that same subset; eight positive cases had no seed and stayed unavailable within the 30-positive denominator. Across the seven exact-canvas mask references, GrabCut had 0 IoU passes while MobileSAM had 1. This is component-only evidence, not a new end-to-end candidate or an alternative qualified recipe.
14
+
15
+ A post-hoc rule that suppressed extraction whenever the already-recorded classification said “absent” would remove this run's one negative seed and extraction while preserving the positive cases. That is only a diagnostic over the same recorded outputs. It is not a rerun, does not repair this failed gate, and is not counted as an eligible recipe.
16
+
17
+ The JSON beside this report records the freeze, input/truth, producer, run, evaluator, completion-seal, and derived-report digests. Raw summary file hashes are distinguished from canonical summary digests recorded inside completion seals. All hashes are derived from the corresponding immutable bytes; no private filesystem paths, image pixels, masks, or provider credentials are included.
@@ -0,0 +1,260 @@
1
+ {
2
+ "schema": "region-seeded-dev-v1-public-evidence",
3
+ "status": "failed",
4
+ "releaseQualified": false,
5
+ "freeze": {
6
+ "file": "region-seeded-development-freeze-20261021-v1.json",
7
+ "sha256": "d1e7eead7588985abb5967e043e92b4d6a51b8c81ea31840969888422ae68196",
8
+ "producerSourceSha256": "0d04e8bf03ce0d3f7def1cccee666eaf5f52ad31e0c148611d68f7a5ee744446",
9
+ "frozenGates": {
10
+ "cases": 40,
11
+ "positiveCases": 30,
12
+ "verifiedNegativeCases": 10,
13
+ "falseSeedLocations": 0,
14
+ "falseExtractions": 0,
15
+ "minimumPositiveSeedHits": 1,
16
+ "minimumMaskDerivedBoxMatches": 1,
17
+ "minimumExactCanvasMaskIoU08": 1
18
+ }
19
+ },
20
+ "frozenDevelopmentCorpus": {
21
+ "inputManifests": [
22
+ {
23
+ "stratum": "photo",
24
+ "cases": 20,
25
+ "sha256": "6c9ed29d8586c7887ae0861fc853baf203cb43790df4959390da4b5cc9ac679a"
26
+ },
27
+ {
28
+ "stratum": "controlled-ui",
29
+ "cases": 10,
30
+ "sha256": "6013a54bebba277f6457765cd8ef78e12e2dd5bab4453a752967233ebb429bfc"
31
+ },
32
+ {
33
+ "stratum": "controlled-map",
34
+ "cases": 10,
35
+ "sha256": "b04ba6cac5b39c927281f61e4af7dcc7a5c5c2272a637aa9676ab3009fbd5d15"
36
+ }
37
+ ],
38
+ "truthArrays": [
39
+ {
40
+ "stratum": "photo",
41
+ "sha256": "793e26845deaa2cb56748ef270b8cb02877218d680068573f02e5af92b26af6a"
42
+ },
43
+ {
44
+ "stratum": "controlled-ui",
45
+ "sha256": "c7944190e1cadab695f2688351df10a14132986040dafb72794bb1df4571abfe"
46
+ },
47
+ {
48
+ "stratum": "controlled-map",
49
+ "sha256": "874971d3e9344f7c54207064115257e5c802260d2a996a53f96bb6a68b2afad3"
50
+ }
51
+ ]
52
+ },
53
+ "candidate": {
54
+ "profileId": "native-luna-region-seeded-sam-dev-v1",
55
+ "runId": "v02-region-seeded-dev-2026-10-20T215428247Z-57df1119",
56
+ "variantSha256": "ce4b4a21a3d2f15a66a29740a2098433c4a9ef63d72eb7b6321cda44e078bb1b",
57
+ "manifestSha256": "02338e7a4c84407dc5085f158e353e18950da87489630a9b7b60a88e59068abd",
58
+ "summaryRawSha256": "dc48416d0d189bdd3856c6719d055fbb4c36f426d014cc8a231a1df98a761d6c",
59
+ "completionSha256": "90348f48653e3324bc0c3258501ce3c78d7e2f789364575ad0b0dfa1cc2f590e",
60
+ "summaryCanonicalSha256InCompletionSeal": "4ae5d0ceecbfc277a38815510e2b7e252d1a91b5146bd57d81ad5bc0e58ceaa3",
61
+ "route": "openai/gpt-6-luna-decisions",
62
+ "native": "MobileSAM CPU, seed point from the located region, full source raster",
63
+ "nativeEncoderSha256": "580f5fb648ea1062c0aabc26217aed56921985f03f0cbbd852bba81d760cc749",
64
+ "nativeDecoderSha256": "8976b90a87ba50a6a72217a5ff994f7d25ce16f2229fcc1ed259e1294c622ffe",
65
+ "denominator": 40,
66
+ "strata": {
67
+ "photo": {
68
+ "cases": 20,
69
+ "positive": 16,
70
+ "verifiedNegative": 4,
71
+ "classificationCorrect": 17,
72
+ "classificationAnswered": 20,
73
+ "extractionStatuses": {
74
+ "extracted": 10,
75
+ "failed": 7,
76
+ "unknown": 3
77
+ },
78
+ "seedLocated": 10,
79
+ "positiveSeedBoxIntersections": 10,
80
+ "falseSeedLocations": 0,
81
+ "maskDerivedBoxMatches": 5,
82
+ "falseExtractions": 0
83
+ },
84
+ "controlledUi": {
85
+ "cases": 10,
86
+ "positive": 7,
87
+ "verifiedNegative": 3,
88
+ "classificationCorrect": 8,
89
+ "classificationAnswered": 10,
90
+ "extractionStatuses": {
91
+ "extracted": 5,
92
+ "failed": 1,
93
+ "unknown": 4
94
+ },
95
+ "seedLocated": 5,
96
+ "positiveSeedBoxIntersections": 1,
97
+ "falseSeedLocations": 0,
98
+ "maskDerivedBoxMatches": 0,
99
+ "falseExtractions": 0
100
+ },
101
+ "controlledMap": {
102
+ "cases": 10,
103
+ "positive": 7,
104
+ "verifiedNegative": 3,
105
+ "classificationCorrect": 10,
106
+ "classificationAnswered": 10,
107
+ "extractionStatuses": {
108
+ "extracted": 8,
109
+ "not-found": 2
110
+ },
111
+ "seedLocated": 8,
112
+ "positiveSeedBoxIntersections": 7,
113
+ "falseSeedLocations": 1,
114
+ "maskDerivedBoxMatches": 0,
115
+ "falseExtractions": 1
116
+ }
117
+ },
118
+ "classification": {
119
+ "correct": 35,
120
+ "denominator": 40,
121
+ "accuracy": 0.875,
122
+ "unanswered": 0
123
+ },
124
+ "seedRegionCoarseProxy": {
125
+ "located": 23,
126
+ "positiveAreaIntersectionsWithPositiveReferenceBoxes": 18,
127
+ "locatedOnVerifiedNegatives": 1,
128
+ "falseSeedLocations": 1,
129
+ "falseExtractions": 1,
130
+ "meaning": "A seed-cell intersection is only a coarse region-search proxy, not whole-object localization."
131
+ },
132
+ "maskDerivedWholeObjectBoxes": {
133
+ "positiveMatches": 5,
134
+ "positiveDenominator": 30,
135
+ "boxRule": "IoU >= 0.5 and reference-box coverage >= 0.9",
136
+ "falseLocations": 1,
137
+ "negativeDenominator": 10,
138
+ "unknown": 7,
139
+ "failed": 8
140
+ },
141
+ "independentExactCanvasMasks": {
142
+ "references": 7,
143
+ "scored": 7,
144
+ "iouAtLeast0_8": 1,
145
+ "unavailable": 0,
146
+ "unannotatedCases": 35,
147
+ "perReferenceIoU": [
148
+ 0.7589947292, 0, 0.0002087876, 0.9433618606, 0.5063549934, 0.6049145284, 0.3675930123
149
+ ]
150
+ },
151
+ "physical": {
152
+ "calls": 143,
153
+ "knownCostUsd": 0.0642163,
154
+ "unknownCostCalls": 8,
155
+ "accountedExposureUsd": 0.4642163,
156
+ "inFlightAtSeal": 0,
157
+ "httpStatusCounts": {
158
+ "200": 135,
159
+ "502_PROVIDER": 8
160
+ }
161
+ },
162
+ "independentEvaluation": {
163
+ "evaluatorCommit": "0f614da3d8e8d6465f9a7018be0b02ee28d443cc",
164
+ "evaluatorSha256": "a063d5fc924384e8d28e60cb6270094960369503d990ffe17d96c9d6ac57592f",
165
+ "outputSha256": "a7161ec5dc1a7052dd5465f30fe4db01a52d854c9e2760ab6ae25a5f4465b341"
166
+ }
167
+ },
168
+ "noImageControl": {
169
+ "profileId": "native-luna-region-no-image-control-dev-v1",
170
+ "runId": "v02-region-seeded-dev-2026-10-20T215916312Z-8522cf1f",
171
+ "variantSha256": "e22aae7fa899b50b44f31d31a931e8f7ba7b295f47cff40c9e74131453f3ec69",
172
+ "manifestSha256": "f434f4accdfaa3f1e2402aad7bb0564727991bced1ebdbe76d7172c08ba230ec",
173
+ "summaryRawSha256": "c27b3725764ab5534480f33bca99b538788273232b619ae12cb4ceb5e4c7e4ea",
174
+ "completionSha256": "84da4ca36fd03bc8129e6037f713977949a4efc74a13cd3d5da09a387b37f565",
175
+ "summaryCanonicalSha256InCompletionSeal": "85f78f492c79f439fcec78064d246fbafa0fb8aad83da2cc0886b55afe6a3a22",
176
+ "denominator": 40,
177
+ "classification": {
178
+ "correct": 10,
179
+ "answered": 39,
180
+ "unanswered": 1
181
+ },
182
+ "imageFetchAudit": {
183
+ "checked": 99,
184
+ "imageParts": 0,
185
+ "verifiedImageFree": true
186
+ },
187
+ "seedLocations": 0,
188
+ "physical": {
189
+ "calls": 99,
190
+ "knownCostUsd": 0.0056302,
191
+ "unknownCostCalls": 29,
192
+ "accountedExposureUsd": 1.4556302,
193
+ "inFlightAtSeal": 0,
194
+ "httpStatusCounts": {
195
+ "200": 70,
196
+ "502": 28,
197
+ "503": 1
198
+ }
199
+ },
200
+ "independentEvaluation": {
201
+ "evaluatorCommit": "0f614da3d8e8d6465f9a7018be0b02ee28d443cc",
202
+ "evaluatorSha256": "a063d5fc924384e8d28e60cb6270094960369503d990ffe17d96c9d6ac57592f",
203
+ "outputSha256": "99b302e483ac57917a23f1c98284661f1d36df70b678aec6b2a618bbf11df043"
204
+ }
205
+ },
206
+ "pairedPhotoSeedDiagnostic": {
207
+ "candidate": "region-seeded-sam",
208
+ "control": "no-image-control",
209
+ "population": "16 positive photo cases only",
210
+ "metric": "seed-region intersection with independent target box, not whole-object localization",
211
+ "bootstrap": {
212
+ "iterations": 10000,
213
+ "seed": "0x5a4f5259",
214
+ "confidence": 0.95,
215
+ "difference": 0.625,
216
+ "lower": 0.375,
217
+ "upper": 0.875
218
+ },
219
+ "exactCanvasMaskForegroundSubset": {
220
+ "pairs": 5,
221
+ "difference": 0.8,
222
+ "lower": 0.4,
223
+ "upper": 1
224
+ },
225
+ "outputSha256": "ff3f7e7b3b6b343594c97ff6146071daf1100134461d4034499460c4cb4121ea"
226
+ },
227
+ "grabCutSameSeedComponent": {
228
+ "runId": "region-grabcut-component-20261020T220523055Z-3ef2329a",
229
+ "manifestSha256": "8c7487a04a40615a07fdd998bb99fc56cf16ed72259a9ce45688b6851fd483ce",
230
+ "summarySha256": "910bac83caffbf7ab3192a547d2f0db525de1969292b7cd3d5da09a387b37f565",
231
+ "completionSha256": "c6f446f318fdb42804f4c251ec833a7487cb0c37568e5e0c8343a770695e13a3",
232
+ "componentScriptSha256": "c2c8c664c6a1e85d6af96c35509d125b7dc78e6b3019d7ab8c3919a088a40086",
233
+ "population": "same 23 candidate-found seeds; 22 positive seeds and one verified-negative seed",
234
+ "positiveDenominator": 30,
235
+ "seedUnavailablePositives": 8,
236
+ "sameSeedPositiveCases": 22,
237
+ "maskDerivedBoxMatches": 0,
238
+ "sameSeedMobileSamBoxMatches": 5,
239
+ "falseLocations": 1,
240
+ "independentExactCanvasMasks": {
241
+ "references": 7,
242
+ "grabCutIoUAtLeast0_8": 0,
243
+ "mobileSamIoUAtLeast0_8": 1
244
+ },
245
+ "componentOnly": true,
246
+ "newModelCalls": 0,
247
+ "interpretation": "Same-seed segmentation component comparison only; not an end-to-end alternative profile. Eight positive cases had no seed and remain unavailable in the 30-positive denominator."
248
+ },
249
+ "sourceGroupLimitations": {
250
+ "photos": "Open Images photographs with official annotations; one exposed development cohort, not a new blind test.",
251
+ "ui": "Controlled Geany application captures with a known GTK style and source-geometry oracle; not natural user captures.",
252
+ "map": "Controlled Freeciv renderer captures with source-state and renderer-oracle checks; a single game family, not diverse natural maps."
253
+ },
254
+ "scopeNotes": [
255
+ "The heldout cohort was not read or scored for this report.",
256
+ "This is an exposed DEV evaluation; it does not qualify a release recipe.",
257
+ "A post-hoc gate using the existing classification result would suppress the one negative seed and extraction while retaining positive classifications, but this is not a new run or a pass and does not change any frozen result.",
258
+ "One Freeciv negative-seed error involved the Fighter target. The classifier said absent, but a seed region and mask were still returned; the independent negative was based on the complete controlled game-state inventory."
259
+ ]
260
+ }
@@ -0,0 +1,15 @@
1
+ # Region-seeded DEV v2: frozen development gates passed
2
+
3
+ The v2 candidate passed the development-admission conditions frozen before dispatch: all 40 cases completed, there were zero false seed locations and zero false extractions, and at least one positive seed hit, mask-derived box match, and exact-canvas mask with IoU at least 0.8. This permits consideration for a separate blind evaluation; it does not qualify a release or establish heldout performance. The candidate still matched only 5 of 30 positive whole-object boxes, so localization quality remains limited.
4
+
5
+ The v2 composition reused the existing class decision and allowed the unchanged region locator plus full-source segmenter to run only after a successful “present” classification. An “absent” result skipped localization with `not-found`; a classification failure skipped localization with a recorded failure. The evaluator checked these skips for the frozen `requireClassifiedPresence` policy and required them to carry no seed or extraction work. No extra model query was added.
6
+
7
+ The candidate classified 35/40 cases correctly. The coarse seed-cell metric intersected a reference box on 18/30 positive cases; this metric is only a search proxy and does not mean the whole object was located. The separate mask-derived box metric passed 5/30 positive cases using the frozen IoU >= 0.5 and reference-box coverage >= 0.9 rule. There were no false locations among 10 verified negatives. All 40 rows remain in the denominator, including 7 unknown and 6 failed extraction outcomes.
8
+
9
+ All seven independent exact-canvas mask references were scored. One reached IoU 0.8; six did not. The other 35 cases had no reference mask and remain unannotated for mask scoring. Mask success is not inferred from a matching box.
10
+
11
+ The no-image control answered all 40 classification requests, with 10 correct, and verified zero image parts in all 40 checked provider requests. It returned no seeds or masks. The paired comparison covers only the 16 positive photo cases and the coarse seed-box-intersection metric; it does not compare a candidate mask box with a control seed region.
12
+
13
+ The recorded route was `openai/gpt-6-luna-decisions`, with CPU MobileSAM. The freeze's native asset manifest calls the method `mobile-sam-seed-point-v1`; a legacy runner field retains the label `mobile-sam-seed-region-v1`; the actual segmentation result metadata reports `mobile-sam-seed-point-v1`. These names refer to the same pinned encoder and decoder assets and are preserved here as recorded. Benchmark model routes are caller configurations, not library defaults.
14
+
15
+ The 20 photograph cases use Open Images annotations, 10 UI cases are controlled Geany captures with a known GTK style, and 10 map cases are controlled Freeciv captures from one game family. The controlled strata are not natural user captures and do not represent diverse applications or games. The JSON records the exact freeze, source, input, truth, raw run, completion-seal, and independent-evaluation digests. It contains aggregate metrics only, with no per-case rows, image pixels, masks, or machine-local paths.