zorya-classifier 0.0.0-stage → 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 (369) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +13 -0
  3. package/README.md +139 -2
  4. package/dist/app/cli-arguments.d.ts +40 -0
  5. package/dist/app/cli-arguments.js +67 -0
  6. package/dist/app/cli-route.d.ts +3 -0
  7. package/dist/app/cli-route.js +40 -0
  8. package/dist/app/create-classifier.d.ts +33 -0
  9. package/dist/app/create-classifier.js +312 -0
  10. package/dist/app/extraction-files.d.ts +9 -0
  11. package/dist/app/extraction-files.js +28 -0
  12. package/dist/cli.d.ts +2 -0
  13. package/dist/cli.js +77 -0
  14. package/dist/entities/boundary-view.d.ts +29 -0
  15. package/dist/entities/boundary-view.js +1 -0
  16. package/dist/entities/contracts.d.ts +471 -0
  17. package/dist/entities/contracts.js +97 -0
  18. package/dist/entities/cutout-raster.d.ts +7 -0
  19. package/dist/entities/cutout-raster.js +1 -0
  20. package/dist/entities/errors.d.ts +7 -0
  21. package/dist/entities/errors.js +16 -0
  22. package/dist/entities/object-proposals.d.ts +53 -0
  23. package/dist/entities/object-proposals.js +8 -0
  24. package/dist/entities/representation.d.ts +225 -0
  25. package/dist/entities/representation.js +33 -0
  26. package/dist/entities/segmentation-metadata.d.ts +11 -0
  27. package/dist/entities/segmentation-metadata.js +1 -0
  28. package/dist/entities/segmentation-verification.d.ts +30 -0
  29. package/dist/entities/segmentation-verification.js +1 -0
  30. package/dist/entities/segmentation.d.ts +159 -0
  31. package/dist/entities/segmentation.js +5 -0
  32. package/dist/entities/whole-object.d.ts +128 -0
  33. package/dist/entities/whole-object.js +7 -0
  34. package/dist/features/choice-beam-layout.d.ts +18 -0
  35. package/dist/features/choice-beam-layout.js +136 -0
  36. package/dist/features/choice.d.ts +4 -0
  37. package/dist/features/choice.js +83 -0
  38. package/dist/features/prompts.d.ts +8 -0
  39. package/dist/features/prompts.js +56 -0
  40. package/dist/features/segmentation/box-check.d.ts +10 -0
  41. package/dist/features/segmentation/box-check.js +299 -0
  42. package/dist/features/segmentation/mask.d.ts +6 -0
  43. package/dist/features/segmentation/mask.js +89 -0
  44. package/dist/features/segmentation/packed-mask.d.ts +5 -0
  45. package/dist/features/segmentation/packed-mask.js +53 -0
  46. package/dist/features/uniform-grid.d.ts +3 -0
  47. package/dist/features/uniform-grid.js +35 -0
  48. package/dist/index.d.ts +10 -0
  49. package/dist/index.js +2 -0
  50. package/dist/infrastructure/boundary-view.d.ts +2 -0
  51. package/dist/infrastructure/boundary-view.js +263 -0
  52. package/dist/infrastructure/openrouter-common.d.ts +130 -0
  53. package/dist/infrastructure/openrouter-common.js +317 -0
  54. package/dist/infrastructure/openrouter-vision.d.ts +11 -0
  55. package/dist/infrastructure/openrouter-vision.js +17 -0
  56. package/dist/infrastructure/openrouter.d.ts +19 -0
  57. package/dist/infrastructure/openrouter.js +207 -0
  58. package/dist/infrastructure/raster.d.ts +11 -0
  59. package/dist/infrastructure/raster.js +216 -0
  60. package/dist/infrastructure/segmentation/box-presentation.d.ts +2 -0
  61. package/dist/infrastructure/segmentation/box-presentation.js +136 -0
  62. package/dist/infrastructure/segmentation/cutout-raster.d.ts +3 -0
  63. package/dist/infrastructure/segmentation/cutout-raster.js +79 -0
  64. package/dist/infrastructure/segmentation/grabcut/index.d.ts +13 -0
  65. package/dist/infrastructure/segmentation/grabcut/index.js +118 -0
  66. package/dist/infrastructure/segmentation/grabcut/worker-inference.d.ts +47 -0
  67. package/dist/infrastructure/segmentation/grabcut/worker-inference.js +260 -0
  68. package/dist/infrastructure/segmentation/index.d.ts +2 -0
  69. package/dist/infrastructure/segmentation/index.js +2 -0
  70. package/dist/infrastructure/segmentation/mobile-sam/index.d.ts +58 -0
  71. package/dist/infrastructure/segmentation/mobile-sam/index.js +472 -0
  72. package/dist/infrastructure/segmentation/mobile-sam/worker-inference.d.ts +149 -0
  73. package/dist/infrastructure/segmentation/mobile-sam/worker-inference.js +845 -0
  74. package/dist/infrastructure/segmentation/native-child.d.ts +23 -0
  75. package/dist/infrastructure/segmentation/native-child.js +297 -0
  76. package/dist/infrastructure/segmentation/native-protocol.d.ts +923 -0
  77. package/dist/infrastructure/segmentation/native-protocol.js +242 -0
  78. package/dist/infrastructure/segmentation/native-worker.d.ts +1 -0
  79. package/dist/infrastructure/segmentation/native-worker.js +93 -0
  80. package/dist/infrastructure/segmentation/probe-backend.d.ts +1 -0
  81. package/dist/infrastructure/segmentation/probe-backend.js +31 -0
  82. package/dist/infrastructure/segmentation/proposal-presentation.d.ts +3 -0
  83. package/dist/infrastructure/segmentation/proposal-presentation.js +371 -0
  84. package/dist/infrastructure/segmentation/verify-asset.d.ts +4 -0
  85. package/dist/infrastructure/segmentation/verify-asset.js +32 -0
  86. package/dist/infrastructure/text-representation.d.ts +23 -0
  87. package/dist/infrastructure/text-representation.js +226 -0
  88. package/dist/infrastructure/vision-chat.d.ts +64 -0
  89. package/dist/infrastructure/vision-chat.js +318 -0
  90. package/dist/openai-compatible.d.ts +8 -0
  91. package/dist/openai-compatible.js +11 -0
  92. package/dist/openrouter.d.ts +4 -0
  93. package/dist/openrouter.js +2 -0
  94. package/dist/processes/boundary-state.d.ts +12 -0
  95. package/dist/processes/boundary-state.js +196 -0
  96. package/dist/processes/classify.d.ts +3 -0
  97. package/dist/processes/classify.js +39 -0
  98. package/dist/processes/extract-from-region.d.ts +19 -0
  99. package/dist/processes/extract-from-region.js +415 -0
  100. package/dist/processes/extract.d.ts +25 -0
  101. package/dist/processes/extract.js +223 -0
  102. package/dist/processes/locate.d.ts +3 -0
  103. package/dist/processes/locate.js +274 -0
  104. package/dist/processes/proposal-location.d.ts +19 -0
  105. package/dist/processes/proposal-location.js +396 -0
  106. package/dist/processes/whole-object.d.ts +7 -0
  107. package/dist/processes/whole-object.js +272 -0
  108. package/dist/segmentation.d.ts +10 -0
  109. package/dist/segmentation.js +4 -0
  110. package/dist/shared/choice-mass.d.ts +2 -0
  111. package/dist/shared/choice-mass.js +19 -0
  112. package/dist/shared/gate.d.ts +11 -0
  113. package/dist/shared/gate.js +52 -0
  114. package/dist/shared/input-budget.d.ts +7 -0
  115. package/dist/shared/input-budget.js +21 -0
  116. package/dist/shared/scope.d.ts +12 -0
  117. package/dist/shared/scope.js +29 -0
  118. package/docs/0.2.0-plan.md +190 -0
  119. package/docs/README.ru.md +258 -0
  120. package/docs/acceptance.md +144 -0
  121. package/docs/api.md +49 -0
  122. package/docs/architecture.md +45 -0
  123. package/docs/benchmarks.md +63 -0
  124. package/docs/categorical-presence-port.md +26 -0
  125. package/docs/evidence/current-linux-check.json +15 -0
  126. package/docs/evidence/decisions-completion-v1-manifest.json +96 -0
  127. package/docs/evidence/decisions-completion-v1-report.json +1205 -0
  128. package/docs/evidence/decisions-selection-v1-manifest.json +96 -0
  129. package/docs/evidence/decisions-selection-v1-report.json +1457 -0
  130. package/docs/evidence/jev-pricing-2026-10-18.json +69 -0
  131. package/docs/evidence/linux-check.json +20 -0
  132. package/docs/evidence/linux-check.txt +205 -0
  133. package/docs/evidence/live-release-smoke-manifest.json +82 -0
  134. package/docs/evidence/live-release-smoke-provenance.json +9 -0
  135. package/docs/evidence/live-release-smoke-report.json +2136 -0
  136. package/docs/evidence/live-v1-manifest.json +84 -0
  137. package/docs/evidence/live-v1-provenance.json +9 -0
  138. package/docs/evidence/live-v1-report.json +15555 -0
  139. package/docs/evidence/luna-decisions-fine-probe.json +19 -0
  140. package/docs/evidence/luna-decisions-locator-smoke-manifest.json +39 -0
  141. package/docs/evidence/luna-decisions-locator-smoke-report.json +149 -0
  142. package/docs/evidence/pack-check.json +26 -0
  143. package/docs/evidence/protocol-probes.json +61 -0
  144. package/docs/evidence/rejected-vision-selection-v1-qwen-photo-dev-01.json +42 -0
  145. package/docs/evidence/rejected-vision-selection-v1-qwen-photo-dev-17.json +42 -0
  146. package/docs/evidence/rejected-vision-selection-v1-qwen-photo-heldout-09.json +42 -0
  147. package/docs/evidence/rejected-vision-selection-v2-haiku-photo-dev-16.json +42 -0
  148. package/docs/evidence/rejected-vision-selection-v2-haiku-support-heldout-016.json +42 -0
  149. package/docs/evidence/v02/baseline.json +1043 -0
  150. package/docs/evidence/v02/boundary-variants.md +17 -0
  151. package/docs/evidence/v02/box-confirmation-dev40/README.md +15 -0
  152. package/docs/evidence/v02/box-confirmation-dev40/component-refinement.json +246 -0
  153. package/docs/evidence/v02/box-confirmation-dev40/evaluation.json +1663 -0
  154. package/docs/evidence/v02/box-confirmation-dev40/provenance.json +130 -0
  155. package/docs/evidence/v02/box-confirmation-dev40/report.json +127 -0
  156. package/docs/evidence/v02/box-confirmation-dev40-freeze-20261020-v1.json +230 -0
  157. package/docs/evidence/v02/box-confirmation-method-selection-20261020-v1.json +85 -0
  158. package/docs/evidence/v02/box-heldout-cancelled-before-dispatch-20261021-v1.json +32 -0
  159. package/docs/evidence/v02/box-heldout-combined-seal-20261021-v1.json +89 -0
  160. package/docs/evidence/v02/box-heldout-evaluator-truth-seal-20261021-v1.json +61 -0
  161. package/docs/evidence/v02/box-heldout-exclusion-audit-20261020-v1.json +81 -0
  162. package/docs/evidence/v02/box-heldout-map-seal-20261021-v1.json +48 -0
  163. package/docs/evidence/v02/box-heldout-photo-seal-20261020-v1.json +62 -0
  164. package/docs/evidence/v02/box-heldout-run-freeze-20261021-v1.json +61 -0
  165. package/docs/evidence/v02/box-heldout-source-review-20261020-v1.json +134 -0
  166. package/docs/evidence/v02/box-heldout-ui-seal-20261020-v1.json +44 -0
  167. package/docs/evidence/v02/calculator-proof-root-review-20261020-v1.json +63 -0
  168. package/docs/evidence/v02/categorical-dev40-freeze.json +94 -0
  169. package/docs/evidence/v02/categorical-dev40-preserve.json +460 -0
  170. package/docs/evidence/v02/categorical-dev40-target-only.json +460 -0
  171. package/docs/evidence/v02/categorical-heldout-admission-20261020-v3.json +215 -0
  172. package/docs/evidence/v02/categorical-heldout-admission-20261020-v4.json +270 -0
  173. package/docs/evidence/v02/categorical-heldout-dispatch-authorization-20261020-v4.json +79 -0
  174. package/docs/evidence/v02/categorical-heldout-predispatch-20261020-v3.json +57 -0
  175. package/docs/evidence/v02/categorical-heldout-producer-source-map-v4.json +262 -0
  176. package/docs/evidence/v02/categorical-heldout-producer-source-map.json +263 -0
  177. package/docs/evidence/v02/categorical-heldout-run-freeze-20261020-v3.json +35 -0
  178. package/docs/evidence/v02/categorical-heldout-run-freeze-20261020-v4.json +35 -0
  179. package/docs/evidence/v02/categorical-heldout-v4/README.md +35 -0
  180. package/docs/evidence/v02/categorical-heldout-v4/candidate-evaluation.json +2812 -0
  181. package/docs/evidence/v02/categorical-heldout-v4/candidate-physical-receipts.json +15261 -0
  182. package/docs/evidence/v02/categorical-heldout-v4/candidate-provenance.json +131 -0
  183. package/docs/evidence/v02/categorical-heldout-v4/control-evaluation.json +855 -0
  184. package/docs/evidence/v02/categorical-heldout-v4/control-physical-receipts.json +4402 -0
  185. package/docs/evidence/v02/categorical-heldout-v4/control-provenance.json +31 -0
  186. package/docs/evidence/v02/categorical-heldout-v4/mask-normalized-exploratory.json +682 -0
  187. package/docs/evidence/v02/categorical-heldout-v4/paired-qualification.json +21 -0
  188. package/docs/evidence/v02/categorical-heldout-v4/report.json +258 -0
  189. package/docs/evidence/v02/categorical-presence-dev6.json +144 -0
  190. package/docs/evidence/v02/categorical-presence-dev6.md +18 -0
  191. package/docs/evidence/v02/categorical-vision-method-selection.json +90 -0
  192. package/docs/evidence/v02/checked-region-component-v1/README.md +7 -0
  193. package/docs/evidence/v02/checked-region-component-v1/evidence.json +311 -0
  194. package/docs/evidence/v02/checked-region-resource-interrupted-2b0d09f.json +102 -0
  195. package/docs/evidence/v02/checked-region-segmentation-resource-4df544c-receipt.json +167 -0
  196. package/docs/evidence/v02/checked-region-segmentation-resource-4df544c-root-review.json +58 -0
  197. package/docs/evidence/v02/checked-region-segmentation-resource-987ac32-receipt.json +158 -0
  198. package/docs/evidence/v02/ci-012b935.json +17 -0
  199. package/docs/evidence/v02/ci-0c365cb.json +372 -0
  200. package/docs/evidence/v02/ci-185bde8.json +32 -0
  201. package/docs/evidence/v02/ci-24f849f.json +95 -0
  202. package/docs/evidence/v02/ci-25c19cd.json +375 -0
  203. package/docs/evidence/v02/ci-2922caf.json +375 -0
  204. package/docs/evidence/v02/ci-29357d7.json +29 -0
  205. package/docs/evidence/v02/ci-32aa90d.json +24 -0
  206. package/docs/evidence/v02/ci-35e3064.json +376 -0
  207. package/docs/evidence/v02/ci-4331b1b.json +384 -0
  208. package/docs/evidence/v02/ci-43b7426.json +376 -0
  209. package/docs/evidence/v02/ci-450439c.json +373 -0
  210. package/docs/evidence/v02/ci-46283fe.json +29 -0
  211. package/docs/evidence/v02/ci-4c9c09f.json +34 -0
  212. package/docs/evidence/v02/ci-5579646.json +27 -0
  213. package/docs/evidence/v02/ci-6f9cc15.json +127 -0
  214. package/docs/evidence/v02/ci-7c1051f.json +27 -0
  215. package/docs/evidence/v02/ci-9837888.json +34 -0
  216. package/docs/evidence/v02/ci-987ac32.json +29 -0
  217. package/docs/evidence/v02/ci-9d00fe5.json +25 -0
  218. package/docs/evidence/v02/ci-9f85acc.json +127 -0
  219. package/docs/evidence/v02/ci-be275a6.json +201 -0
  220. package/docs/evidence/v02/ci-c107ddf.json +372 -0
  221. package/docs/evidence/v02/ci-c35f67d.json +127 -0
  222. package/docs/evidence/v02/ci-c5eddd8.json +32 -0
  223. package/docs/evidence/v02/ci-d2042e0.json +372 -0
  224. package/docs/evidence/v02/ci-d684259.json +375 -0
  225. package/docs/evidence/v02/ci-e0c190b.json +127 -0
  226. package/docs/evidence/v02/ci-e551253.json +372 -0
  227. package/docs/evidence/v02/ci-f9d4633.json +29 -0
  228. package/docs/evidence/v02/dev1-proposal-evaluation.md +13 -0
  229. package/docs/evidence/v02/dev2-mobile-sam-proposal-oracle.md +21 -0
  230. package/docs/evidence/v02/dev2-proposal-evaluation.md +21 -0
  231. package/docs/evidence/v02/fresh-development.md +16 -0
  232. package/docs/evidence/v02/fresh-native-numeric/artifact-hashes.json +9 -0
  233. package/docs/evidence/v02/fresh-native-numeric/evaluation-root-v1.json +568 -0
  234. package/docs/evidence/v02/fresh-native-numeric/run-manifest.json +342 -0
  235. package/docs/evidence/v02/fresh-native-numeric/summary.json +5654 -0
  236. package/docs/evidence/v02/fresh-native-outline-axis/artifact-hashes.json +9 -0
  237. package/docs/evidence/v02/fresh-native-outline-axis/evaluation-root-v1.json +568 -0
  238. package/docs/evidence/v02/fresh-native-outline-axis/run-manifest.json +378 -0
  239. package/docs/evidence/v02/fresh-native-outline-axis/summary.json +5605 -0
  240. package/docs/evidence/v02/fresh-text/README.md +23 -0
  241. package/docs/evidence/v02/fresh-text/ascii-contours-v1/classify-followup-run-manifest.json +405 -0
  242. package/docs/evidence/v02/fresh-text/ascii-contours-v1/classify-followup-summary.json +1646 -0
  243. package/docs/evidence/v02/fresh-text/ascii-contours-v1/evaluation.json +568 -0
  244. package/docs/evidence/v02/fresh-text/ascii-contours-v1/original-run-manifest.json +404 -0
  245. package/docs/evidence/v02/fresh-text/ascii-contours-v1/original-summary.json +4416 -0
  246. package/docs/evidence/v02/fresh-text/ascii-luma-v1/classify-followup-run-manifest.json +405 -0
  247. package/docs/evidence/v02/fresh-text/ascii-luma-v1/classify-followup-summary.json +1646 -0
  248. package/docs/evidence/v02/fresh-text/ascii-luma-v1/evaluation.json +568 -0
  249. package/docs/evidence/v02/fresh-text/ascii-luma-v1/original-run-manifest.json +404 -0
  250. package/docs/evidence/v02/fresh-text/ascii-luma-v1/original-summary.json +4647 -0
  251. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/classify-followup-run-manifest.json +405 -0
  252. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/classify-followup-summary.json +846 -0
  253. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/evaluation.json +568 -0
  254. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/original-run-manifest.json +404 -0
  255. package/docs/evidence/v02/fresh-text/ascii-svg-layered-v1/original-summary.json +1789 -0
  256. package/docs/evidence/v02/fresh-text/no-image-control/evaluation.json +568 -0
  257. package/docs/evidence/v02/fresh-text/no-image-control/original-run-manifest.json +404 -0
  258. package/docs/evidence/v02/fresh-text/no-image-control/original-summary.json +3953 -0
  259. package/docs/evidence/v02/fresh-text/palette-grid-v1/classify-followup-run-manifest.json +405 -0
  260. package/docs/evidence/v02/fresh-text/palette-grid-v1/classify-followup-summary.json +1646 -0
  261. package/docs/evidence/v02/fresh-text/palette-grid-v1/evaluation.json +568 -0
  262. package/docs/evidence/v02/fresh-text/palette-grid-v1/original-run-manifest.json +404 -0
  263. package/docs/evidence/v02/fresh-text/palette-grid-v1/original-summary.json +3974 -0
  264. package/docs/evidence/v02/fresh-text/pixel-rle-v1/classify-followup-run-manifest.json +405 -0
  265. package/docs/evidence/v02/fresh-text/pixel-rle-v1/classify-followup-summary.json +1646 -0
  266. package/docs/evidence/v02/fresh-text/pixel-rle-v1/evaluation.json +568 -0
  267. package/docs/evidence/v02/fresh-text/pixel-rle-v1/original-run-manifest.json +404 -0
  268. package/docs/evidence/v02/fresh-text/pixel-rle-v1/original-summary.json +4945 -0
  269. package/docs/evidence/v02/fresh-text/report.json +284 -0
  270. package/docs/evidence/v02/fresh-text/svg-contours-v1/classify-followup-run-manifest.json +405 -0
  271. package/docs/evidence/v02/fresh-text/svg-contours-v1/classify-followup-summary.json +846 -0
  272. package/docs/evidence/v02/fresh-text/svg-contours-v1/evaluation.json +568 -0
  273. package/docs/evidence/v02/fresh-text/svg-contours-v1/original-run-manifest.json +404 -0
  274. package/docs/evidence/v02/fresh-text/svg-contours-v1/original-summary.json +2189 -0
  275. package/docs/evidence/v02/heldout-evaluation-20261020.md +37 -0
  276. package/docs/evidence/v02/heldout-input-derivation.md +18 -0
  277. package/docs/evidence/v02/integration-0c365cb.json +90 -0
  278. package/docs/evidence/v02/integration-25c19cd.json +52 -0
  279. package/docs/evidence/v02/integration-35e3064.json +41 -0
  280. package/docs/evidence/v02/integration-4331b1b.json +42 -0
  281. package/docs/evidence/v02/integration-4c9c09f.json +46 -0
  282. package/docs/evidence/v02/integration-8010aad.json +48 -0
  283. package/docs/evidence/v02/integration-c1aa640.json +41 -0
  284. package/docs/evidence/v02/integration-eea1790.json +46 -0
  285. package/docs/evidence/v02/integration-fa82e65.json +42 -0
  286. package/docs/evidence/v02/jpeg-transport-offline.json +268 -0
  287. package/docs/evidence/v02/jpeg-transport-offline.md +7 -0
  288. package/docs/evidence/v02/local-archive-cleanup.json +59 -0
  289. package/docs/evidence/v02/native-base64-after.json +30 -0
  290. package/docs/evidence/v02/native-base64-before.json +32 -0
  291. package/docs/evidence/v02/native-checked-region-windows-46283fe.json +248 -0
  292. package/docs/evidence/v02/native-checked-region-windows-987ac32.json +141 -0
  293. package/docs/evidence/v02/native-grabcut-windows-4c494a3-run2.json +148 -0
  294. package/docs/evidence/v02/native-grabcut-windows-4c494a3-run3.json +148 -0
  295. package/docs/evidence/v02/native-grabcut-windows-4c494a3.json +56 -0
  296. package/docs/evidence/v02/native-proposal-windows-0c365cb.json +148 -0
  297. package/docs/evidence/v02/native-proposal-windows-450439c.json +156 -0
  298. package/docs/evidence/v02/native-proposal-windows-4c9c09f-retry1.json +147 -0
  299. package/docs/evidence/v02/native-proposal-windows-4c9c09f.json +52 -0
  300. package/docs/evidence/v02/native-region-windows-efc9318.json +163 -0
  301. package/docs/evidence/v02/native-windows-eea1790-baseline.json +198 -0
  302. package/docs/evidence/v02/native-windows-eea1790.json +228 -0
  303. package/docs/evidence/v02/ordinary-luna-axis/run-manifest.json +99 -0
  304. package/docs/evidence/v02/ordinary-luna-axis/summary.json +811 -0
  305. package/docs/evidence/v02/owned-temp-cleanup-20261020-v1.json +28 -0
  306. package/docs/evidence/v02/presentation-paired-20261020.json +1438 -0
  307. package/docs/evidence/v02/proposal-resource-soak-261dc23.json +201 -0
  308. package/docs/evidence/v02/proposal-resource-soak-261dc23.md +15 -0
  309. package/docs/evidence/v02/proposal-resource-soak-450439c-receipt.md +13 -0
  310. package/docs/evidence/v02/reconstructed-c03-box.json +41 -0
  311. package/docs/evidence/v02/region-seeded-dev-v1/README.md +17 -0
  312. package/docs/evidence/v02/region-seeded-dev-v1/evaluation.json +260 -0
  313. package/docs/evidence/v02/region-seeded-dev-v2/README.md +15 -0
  314. package/docs/evidence/v02/region-seeded-dev-v2/evaluation.json +232 -0
  315. package/docs/evidence/v02/region-seeded-dev-v3-candidate-only/README.md +9 -0
  316. package/docs/evidence/v02/region-seeded-dev-v3-candidate-only/control-identity-failure.json +22 -0
  317. package/docs/evidence/v02/region-seeded-dev-v3-candidate-only/evaluation.json +160 -0
  318. package/docs/evidence/v02/region-seeded-dev-v3-control-r2/README.md +9 -0
  319. package/docs/evidence/v02/region-seeded-dev-v3-control-r2/attempt-accounting.json +55 -0
  320. package/docs/evidence/v02/region-seeded-dev-v3-control-r2/evaluation.json +136 -0
  321. package/docs/evidence/v02/region-seeded-development-control-r2-freeze-20261021.json +132 -0
  322. package/docs/evidence/v02/region-seeded-development-freeze-20261021-v1.json +167 -0
  323. package/docs/evidence/v02/region-seeded-development-freeze-20261021-v2.json +186 -0
  324. package/docs/evidence/v02/region-seeded-development-freeze-20261021-v3.json +205 -0
  325. package/docs/evidence/v02/region-seeded-heldout-cancelled-before-dispatch-20261021-v2.json +20 -0
  326. package/docs/evidence/v02/region-seeded-heldout-dispatch-authorization-20261021-v3.json +47 -0
  327. package/docs/evidence/v02/region-seeded-heldout-readiness-audit-20261021-v3.json +125 -0
  328. package/docs/evidence/v02/region-seeded-heldout-run-freeze-20261021-v2.json +234 -0
  329. package/docs/evidence/v02/region-seeded-heldout-run-freeze-20261021-v3.json +357 -0
  330. package/docs/evidence/v02/region-seeded-heldout-v3/README.md +19 -0
  331. package/docs/evidence/v02/region-seeded-heldout-v3/evaluation-summary.json +445 -0
  332. package/docs/evidence/v02/region-seeded-method-selection-20261021-v2.json +66 -0
  333. package/docs/evidence/v02/region-seeded-method-selection-20261021-v3.json +120 -0
  334. package/docs/evidence/v02/region-segmentation-resource-0ba4c87-receipt.json +156 -0
  335. package/docs/evidence/v02/resource-soak-linux-8010aad.json +125 -0
  336. package/docs/evidence/v02/screen-v2-terminal-evaluation.md +22 -0
  337. package/docs/evidence/v02/seed-outline/run-manifest.json +59 -0
  338. package/docs/evidence/v02/seed-outline/summary.json +487 -0
  339. package/docs/evidence/v02/seed-unbounded/run-manifest.json +80 -0
  340. package/docs/evidence/v02/seed-unbounded/summary.json +730 -0
  341. package/docs/evidence/v02/segmentation/README.md +21 -0
  342. package/docs/evidence/v02/segmentation/component-comparison-summary.json +240 -0
  343. package/docs/evidence/v02/segmentation/provenance/MOBILE-SAM-LICENSE.txt +201 -0
  344. package/docs/evidence/v02/segmentation/provenance/OPENCV-LICENSE.txt +202 -0
  345. package/docs/evidence/v02/segmentation/provenance/mobile-sam-download-receipt.json +29 -0
  346. package/docs/evidence/v02/segmentation/provenance/mobile-sam-graph-audit.json +214 -0
  347. package/docs/evidence/v02/segmentation/provenance/mobile-sam-model-metadata.json +166 -0
  348. package/docs/evidence/v02/split-choice-noul-dev6.json +72 -0
  349. package/docs/evidence/v02/split-choice-noul-dev6.md +11 -0
  350. package/docs/evidence/v02/supported-vision-screen-20261020.md +65 -0
  351. package/docs/evidence/v02/wesnoth-1.16.11-minimap-projection-source-audit.md +56 -0
  352. package/docs/evidence/v02/wesnoth-proof-root-review-20261020-v1.json +76 -0
  353. package/docs/evidence/vision-cost-reconciliation.json +37 -0
  354. package/docs/evidence/vision-model-summary.json +562 -0
  355. package/docs/evidence/vision-selection-v1-manifest.json +95 -0
  356. package/docs/evidence/vision-selection-v1-report.json +4598 -0
  357. package/docs/evidence/vision-selection-v2-manifest.json +95 -0
  358. package/docs/evidence/vision-selection-v2-report.json +1139 -0
  359. package/docs/evidence/windows-native.json +73 -0
  360. package/docs/evidence/windows-secrets.json +46 -0
  361. package/docs/operations.md +21 -0
  362. package/docs/plan.md +27 -0
  363. package/docs/provenance.json +32 -0
  364. package/docs/publishing.md +30 -0
  365. package/docs/research/text-transport-audit.md +66 -0
  366. package/docs/results.md +69 -0
  367. package/docs/v02-usage.md +162 -0
  368. package/docs/vision-results.md +78 -0
  369. package/package.json +114 -4
@@ -0,0 +1,69 @@
1
+ {
2
+ "checkedAt": "2026-10-17T21:31:17.256962+00:00",
3
+ "source": "https://openrouter.ai/api/v1/models/typesafe/jev-1.14/endpoints",
4
+ "response": {
5
+ "data": {
6
+ "id": "typesafe/jev-1.14",
7
+ "name": "TypeSafe: Jev 1.14",
8
+ "created": 1792021417,
9
+ "description": "Jev 1.14 is the latest version of Jev, TypeSafe's structured decision model and the first of its System One models. System One models make fast, structured decisions for software, returning...",
10
+ "architecture": {
11
+ "tokenizer": "Other",
12
+ "instruct_type": null,
13
+ "modality": "text+image->decisions",
14
+ "input_modalities": ["text", "image"],
15
+ "output_modalities": ["decisions"]
16
+ },
17
+ "endpoints": [
18
+ {
19
+ "name": "TypeSafe | typesafe/jev-1.14-20261014",
20
+ "model_id": "typesafe/jev-1.14",
21
+ "model_name": "TypeSafe: Jev 1.14",
22
+ "context_length": 262144,
23
+ "pricing": {
24
+ "prompt": "0.000000042",
25
+ "completion": "0",
26
+ "discount": 0
27
+ },
28
+ "provider_name": "TypeSafe",
29
+ "tag": "typesafe",
30
+ "service_tier": null,
31
+ "quantization": "unknown",
32
+ "max_completion_tokens": 235929,
33
+ "max_prompt_tokens": 262144,
34
+ "supported_parameters": [],
35
+ "supports_tool_choice": {
36
+ "none": true,
37
+ "auto": true,
38
+ "required": true,
39
+ "function": true
40
+ },
41
+ "status": 0,
42
+ "uptime_last_30m": 100,
43
+ "uptime_last_5m": 100,
44
+ "uptime_last_1d": 100,
45
+ "supports_implicit_caching": false,
46
+ "native_tools": {},
47
+ "supports_voice_cloning": false,
48
+ "supports_multiple_audio_references": false,
49
+ "supports_image_reference": false,
50
+ "supports_diarization": false,
51
+ "latency_last_30m": null,
52
+ "throughput_last_30m": null
53
+ }
54
+ ]
55
+ }
56
+ },
57
+ "calculation": {
58
+ "maxPromptTokens": 262144,
59
+ "usdPerInputToken": 4.2e-8,
60
+ "maximumInputUsd": 0.011010048,
61
+ "outputUsdPerToken": 0,
62
+ "reservedPerUnknownUsd": 0.02
63
+ },
64
+ "basis": [
65
+ "https://docs.typesafe.ai/models",
66
+ "https://openrouter.ai/docs/guides/community/multimodal-decisions"
67
+ ],
68
+ "interpretation": "Derived admission envelope: state and all questions share one per-request context; image requests use long context at normal input price. Not a provider-enforced account cap. Pricing checked before this run; future runs must re-check."
69
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "status": "PASS",
3
+ "node": "v24.12.0",
4
+ "platform": "linux",
5
+ "command": "npm run check",
6
+ "checks": [
7
+ "secret worktree scan",
8
+ "typecheck",
9
+ "eslint --max-warnings 0",
10
+ "boundaries",
11
+ "dead-code:ci",
12
+ "160 tests, zero skipped",
13
+ "build"
14
+ ],
15
+ "sourceLogSha256": "652f6d6d3dd911fb39449b4102b83a0fa06c9dffcf0aa1f865508f6d73a421c8",
16
+ "runtimeDistSha256": "62d5a0075e5ccca6627ba81f8ca8be427f499ded7508570171c00520bcf369ca",
17
+ "runtimeDistFileCount": 34,
18
+ "scope": "Offline contract/lifecycle/geometry/provider-wire/secret guard tests, not model accuracy",
19
+ "note": "Native Windows runtime suite contains 142 tests; two later benchmark-only regressions are Linux-tested, and the 16 secret tests were run separately on Windows with one expected POSIX-only skip. Runtime dist remains identical."
20
+ }
@@ -0,0 +1,205 @@
1
+
2
+ > zorya-classifier@0.1.0 check
3
+ > npm run secrets:check && npm run typecheck && npm run lint && npm run boundaries && npm run dead-code:ci && npm test && npm run build
4
+
5
+
6
+ > zorya-classifier@0.1.0 secrets:check
7
+ > node scripts/secrets.mjs --worktree
8
+
9
+ {"status":"PASS","mode":"--worktree","scanned":175,"skippedBinary":0,"totalBytes":1902577}
10
+
11
+ > zorya-classifier@0.1.0 typecheck
12
+ > tsc --noEmit
13
+
14
+
15
+ > zorya-classifier@0.1.0 lint
16
+ > eslint . --max-warnings 0
17
+
18
+
19
+ > zorya-classifier@0.1.0 boundaries
20
+ > node scripts/boundaries.mjs
21
+
22
+ Boundaries and import cycles passed (17 modules)
23
+
24
+ > zorya-classifier@0.1.0 dead-code:ci
25
+ > knip --no-progress
26
+
27
+ Configuration hints (2)
28
+ Remove entry: eslint.config.mjs
29
+ Remove project: eslint.config.mjs
30
+
31
+ > zorya-classifier@0.1.0 test
32
+ > node --import tsx --test --test-concurrency=2 test/*.test.ts
33
+
34
+ ✔ unknown and in-flight costs are summed, and duplicate settlement is rejected (0.66639ms)
35
+ ✔ reported cost overruns halt subsequent admissions and unknown errors retain reservations (0.216476ms)
36
+ ✔ zero-priced fixture requests still respect physical call admission cap (0.125403ms)
37
+ ✔ runner stops before native baseline and next cases after receipt-only evidence loss (72.938405ms)
38
+ ✔ controlled fixture neighbor cannot run under a live evidence label (0.318693ms)
39
+ ✔ classification keeps failures and operational unknown distinct from the semantic unknown class (1.416813ms)
40
+ ✔ all failed classifications produce zero accuracy and F1, not an empty successful denominator (0.260477ms)
41
+ ✔ macro F1 includes a declared class with no examples using zero-division zero (0.144784ms)
42
+ ✔ empty classification runs report null aggregate rates and preserve explicit zero confusion (0.131838ms)
43
+ ✔ class IDs cannot collide with evaluator buckets or object prototypes (0.172446ms)
44
+ ✔ classification rejects missing/duplicate taxonomy and unrecognized labels (0.383222ms)
45
+ ✔ latencies use nearest rank without mutating samples and include the slow failure tail (0.211551ms)
46
+ ✔ localization scores edge hits, any GT instance, distance, negatives and failed attempts separately (12.287563ms)
47
+ ✔ localization uses region center, not any region overlap or enclosing union of GT boxes (0.562178ms)
48
+ ✔ all image corners and right/bottom box boundaries count as closed edges (0.300795ms)
49
+ ✔ empty and all-failed localization runs do not fabricate zero distances or successes (0.172762ms)
50
+ ✔ localization rejects absent verification, missing GT, invalid geometry and invalid failure latency (0.281825ms)
51
+ ✔ native parity compares exact classes, raw probability differences and all-attempt denominator (0.344023ms)
52
+ ✔ unmatched probability keys are unavailable rather than implicitly filled with zeros (0.121188ms)
53
+ ✔ parity preserves empty/failure cases and rejects malformed probability measurements (0.137416ms)
54
+ ✔ prefix ablation resolves recorded labels to canonical source pixels, never generated coordinates (1.903325ms)
55
+ ✔ prefix presence is independent of spatial Choice, and absence at fine union is not global absence (0.503887ms)
56
+ ✔ baseline maxima use stable supplied order for equal probabilities and validate native winner (0.319196ms)
57
+ ✔ live CLI requires three explicit budget/admission flags; offline requires explicit artifact directory (1.438702ms)
58
+ ✔ recording retains failed attempt and unknown-cost reservation without retry or credential logs (12.984346ms)
59
+ ✔ budget rejection is recorded and never dispatches another provider attempt (2.77937ms)
60
+ ✔ late provider result is joined and recorded but cannot become a successful outcome (2.923929ms)
61
+ ✔ fixture response is content-blind and identical captured request baseline retains byte hash (4.717211ms)
62
+ ✔ receipt persistence failure is fatal and retains the primary provider failure and budget (3.218634ms)
63
+ ✔ late timeout plus receipt failure retains an independent terminal evidence marker (2.561243ms)
64
+ ✔ annotated rounded native distribution keeps raw values and stable ties; unannotated mass is rejected (0.180764ms)
65
+ ✔ prefix ablation accepts only explicitly annotated rounded scores without altering canonical geometry (0.211691ms)
66
+ ✔ architecture gate accepts ports and rejects reversed dependencies cross-platform (514.478991ms)
67
+ ✔ architecture gate rejects private, escaped and cyclic imports (743.341483ms)
68
+ ✔ classify validates before dispatch and preserves unknown cost (3.270214ms)
69
+ ✔ categorical maxima below 0.8 are accepted; exact ties use supplied order (0.52572ms)
70
+ ✔ contradictory native choice and missing probability are errors (0.436812ms)
71
+ ✔ one absolute deadline cancels provider and does not retry (15.069897ms)
72
+ ✔ cancelled queued operation never dispatches; physical work retains capacity (1.399111ms)
73
+ ✔ full queue fails with CAPACITY, then returns to idle (2.068873ms)
74
+ ✔ caller bytes are copied before queue awaits, including Buffer views (7.379434ms)
75
+ ✔ image limits and malformed media reject without provider calls (0.624833ms)
76
+ ✔ 1000 operation/dispose cycles leave no owned timeout handles (43.35027ms)
77
+ ✔ already aborted signal dispatches nothing (0.250312ms)
78
+ ✔ full queue rejects before reading or copying another image (2.817333ms)
79
+ ✔ rounded Jev mass needs explicit annotation and preserves raw categorical ties (0.408105ms)
80
+ ✔ leaked global/node intervals are rejected including aliases (18.494244ms)
81
+ ✔ stored interval cleanup and shadowed names are accepted (4.394401ms)
82
+ ✔ full locator has three calls with direct image parts and bounded candidate sets (259.903884ms)
83
+ ✔ global absence is one call, local absence does not claim global absence (256.98777ms)
84
+ ✔ none and presence contradiction remains unknown (236.465311ms)
85
+ ✔ 0.5 independent presence abstains, not a categorical threshold (35.953414ms)
86
+ ✔ ROI bounds checked before provider; tiny ROI reports layout limit (5.144767ms)
87
+ ✔ candidate refinement is opt-in, bounded and never substitutes area (448.485079ms)
88
+ ✔ source grids partition odd and narrow regions without edge gaps (0.554381ms)
89
+ ✔ beam keeps padded source geometry, canonical dedupe and at most196 cells (0.598029ms)
90
+ ✔ presentation preserves aspect ratio with padding and stays in Jev limits (5.677856ms)
91
+ ✔ adapter pins route, provider and no-fallback and preserves unknown metadata (20.146921ms)
92
+ ✔ accepts exact model identity typesafe/jev-1.14 and real zero cost (0.611645ms)
93
+ ✔ accepts exact model identity typesafe/jev-1.14-20261014 and real zero cost (1.03887ms)
94
+ ✔ uses header request ID only when response ID is unknown (0.568007ms)
95
+ ✔ rejects untrusted response metadata model {"model":"typesafe/jev-1.13-20260917"} (1.304323ms)
96
+ ✔ rejects untrusted response metadata model {"model":"typesafe/jev-1.14-untrusted"} (2.103559ms)
97
+ ✔ rejects untrusted response metadata model {"model":"typesafe/jev-1.14-20260230"} (0.431599ms)
98
+ ✔ rejects untrusted response metadata provider {"provider":"other-provider"} (0.378205ms)
99
+ ✔ rejects untrusted response metadata usage {"usage":{"cost":-1}} (0.633889ms)
100
+ ✔ rejects untrusted response metadata unexpected {"unexpected":"secret-token-do-not-return"} (0.386309ms)
101
+ ✔ sends direct top-level png image state unchanged (6.429089ms)
102
+ ✔ sends direct top-level jpeg image state unchanged (2.564998ms)
103
+ ✔ rejects unprepared image dimensions 279x280 (2.041021ms)
104
+ ✔ rejects unprepared image dimensions 280x279 (2.087383ms)
105
+ ✔ rejects unprepared image dimensions 1569x280 (4.474847ms)
106
+ ✔ rejects unprepared image dimensions 280x1569 (3.740591ms)
107
+ ✔ accepts maximum prepared image side (5.396898ms)
108
+ ✔ rejects unsupported image representation https://example.com/private.png (0.265924ms)
109
+ ✔ rejects unsupported image representation data:audio/wav;base64,AAAA (0.195845ms)
110
+ ✔ rejects unsupported image representation data:image/png;base64,AAAA (0.12849ms)
111
+ ✔ rejects unsupported image representation data:image/jpeg;base64,!!!! (0.154082ms)
112
+ ✔ rejects unsupported image representation data:image/jpeg;base64,/9j/= (0.170413ms)
113
+ ✔ rejects nested raw audio and extra request fields before transport (0.400849ms)
114
+ ✔ Choice enforces 2..255 options: 1 (0.271837ms)
115
+ ✔ Choice enforces 2..255 options: 2 (0.322199ms)
116
+ ✔ Choice enforces 2..255 options: 255 (2.553031ms)
117
+ ✔ Choice enforces 2..255 options: 256 (0.473632ms)
118
+ ✔ preserves categorical ties, raw scores and independent confidence (0.330622ms)
119
+ ✔ supports bounded Noul without conflating it with Choice (0.291917ms)
120
+ ✔ rejects mismatched question/answer distribution {} (0.254266ms)
121
+ ✔ rejects mismatched question/answer distribution {"other":{"type":"choice","choice":"a","probabilities":{"a":0.6,"b":0.4}}} (0.285431ms)
122
+ ✔ rejects mismatched question/answer distribution {"target":{"type":"choice","choice":"a","probabilities":{"a":0.6,"b":0.4}},"other":{"type":"choice","choice":"a","probabilities":{"a":0.6,"b":0.4}}} (0.303117ms)
123
+ ✔ rejects mismatched question/answer distribution {"target":{"type":"noul","noul":0.8}} (0.256523ms)
124
+ ✔ rejects mismatched question/answer distribution {"target":{"type":"choice","choice":"c","probabilities":{"a":0.6,"b":0.4}}} (0.219348ms)
125
+ ✔ rejects mismatched question/answer distribution {"target":{"type":"choice","choice":"b","probabilities":{"a":0.6,"b":0.4}}} (0.25795ms)
126
+ ✔ rejects mismatched question/answer distribution {"target":{"type":"choice","choice":"a","probabilities":{"a":1}}} (0.303071ms)
127
+ ✔ rejects mismatched question/answer distribution {"target":{"type":"choice","choice":"a","probabilities":{"a":0.6,"b":0.4,"c":0}}} (0.204174ms)
128
+ ✔ rejects mismatched question/answer distribution {"target":{"type":"choice","choice":"a","probabilities":{"a":1.1,"b":-0.1}}} (0.2671ms)
129
+ ✔ takes immutable request snapshot before any await (0.29756ms)
130
+ ✔ lower request cap rejects before fetch, including encoded JSON overhead (0.152823ms)
131
+ ✔ factory rejects unsafe options {"maxRequestBytes":33554433} (0.137247ms)
132
+ ✔ factory rejects unsafe options {"maxResponseBytes":1048577} (0.069426ms)
133
+ ✔ factory rejects unsafe options {"maxRequestBytes":0} (0.059932ms)
134
+ ✔ factory rejects unsafe options {"maxResponseBytes":-1} (0.061106ms)
135
+ ✔ factory rejects unsafe options {"apiKey":"bad\nkey"} (0.074425ms)
136
+ ✔ factory rejects unsafe options {"endpoint":"https://unapproved.example"} (0.060902ms)
137
+ ✔ HTTP 401 is sanitized, body cancelled, no retry (0.956054ms)
138
+ ✔ HTTP 403 is sanitized, body cancelled, no retry (0.301551ms)
139
+ ✔ HTTP 413 is sanitized, body cancelled, no retry (0.192749ms)
140
+ ✔ HTTP 415 is sanitized, body cancelled, no retry (0.278226ms)
141
+ ✔ HTTP 429 is sanitized, body cancelled, no retry (0.206133ms)
142
+ ✔ HTTP 500 is sanitized, body cancelled, no retry (0.17819ms)
143
+ ✔ HTTP 302 is sanitized, body cancelled, no retry (0.167717ms)
144
+ ✔ declared response cap cancels before reading provider body (0.305711ms)
145
+ ✔ actual streamed response cap works without or with false Content-Length (0.824344ms)
146
+ ✔ malformed successful response is rejected body (1.283253ms)
147
+ ✔ malformed successful response is rejected body (0.166169ms)
148
+ ✔ malformed successful response is rejected empty (0.142321ms)
149
+ ✔ malformed successful response is rejected body (0.127604ms)
150
+ ✔ fetch and stream exceptions cannot leak messages or details, including forged ClassifierError (0.468662ms)
151
+ ✔ pre-aborted signal prevents transport and sanitizes cancellation reason (0.147096ms)
152
+ ✔ retains TIMEOUT code while sanitizing caller reason (0.137947ms)
153
+ ✔ late fetch response after abort is cancelled/released and never returns success (0.320195ms)
154
+ ✔ abort during body read cancels once, joins physical cleanup, releases reader/listener (0.366724ms)
155
+ ✔ cancellation rejection is sanitized and visible without retaining reader (0.249836ms)
156
+ ✔ rejects prototype setter keys rather than silently dropping requested options (0.271893ms)
157
+ ✔ rejects prototype setter keys in provider answer rather than stripping them (0.218322ms)
158
+ ✔ abort racing with body EOF cannot publish successful answer (0.354991ms)
159
+ ✔ copies fragmented reused stream buffers without retaining per-chunk allocations (0.767713ms)
160
+ ✔ complete request byte cap includes criteria, instructions, keys and JSON escaping (0.55933ms)
161
+ ✔ accepts exact serialized request cap and rejects one byte below it (2.757233ms)
162
+ ✔ rejects oversized criteria before allocating full serialized body (120.128368ms)
163
+ ✔ rejects accessors, cycles and overlong collections before schema cloning (0.455123ms)
164
+ ✔ rejects unnormalized choice distribution without renormalizing it (0.34393ms)
165
+ ✔ replays actual Jev 1.14 wire: screen-locator-jev-latency-2026-10-16 (0.786599ms)
166
+ ✔ replays actual Jev 1.14 wire: screen-locator-jev-1-14-2026-10-16 (0.379678ms)
167
+ ✔ non-enumerable declared fields and proxies cannot bypass preflight byte accounting (0.243354ms)
168
+ ✔ owned snapshot never invokes caller array iterator: own-method (0.51811ms)
169
+ ✔ owned snapshot never invokes caller array iterator: own-getter (0.269403ms)
170
+ ✔ owned snapshot never invokes caller array iterator: inherited-getter (0.275344ms)
171
+ ✔ choice mass remains strict without explicit rounding provenance (0.119611ms)
172
+ ✔ explicit rounding validates clipped feasible mass, not a fixed sum tolerance (0.286918ms)
173
+ ✔ adapter annotates only rounded mass and preserves raw native ties (0.484918ms)
174
+ ✔ rounded transport still rejects malformed distribution {"type":"choice","choice":"a","probabilities":{"a":0.505,"b":0.485}} (0.263481ms)
175
+ ✔ rounded transport still rejects malformed distribution {"type":"choice","choice":"b","probabilities":{"a":0.5,"b":0.49}} (0.256775ms)
176
+ ✔ rounded transport still rejects malformed distribution {"type":"choice","choice":"a","probabilities":{"a":0.6,"b":0.4},"probabilityRoundingStep":0.01} (0.24355ms)
177
+ ✔ replays actual 153-option Jev 1.14 rounded response without normalizing scores (1.984932ms)
178
+ ✔ secret filename checks reject private inputs and keep exact example templates (401.591748ms)
179
+ ✔ known provider prefixes, private keys, database credentials and entropy are detected without excerpts (207.454083ms)
180
+ ✔ empty templates and obvious low-entropy samples do not trigger credential heuristics (47.424592ms)
181
+ ✔ staged secret remains rejected when the working file has already been cleaned (102.660539ms)
182
+ ✔ clean staged content is independent of a later working-tree secret (99.823983ms)
183
+ ✔ worktree scan includes untracked files and skips ignored env without opening it (88.844787ms)
184
+ ✔ forced-staged ignored env is rejected by filename, without content findings (55.885702ms)
185
+ ✔ example templates are not a content allowlist (67.146768ms)
186
+ ✔ binary content is explicitly counted, while private binary filenames are rejected (114.119753ms)
187
+ ✔ oversized text fails closed instead of silently omitting the file (50.151687ms)
188
+ ✔ staged symlink blobs are rejected without following a filesystem target (59.643092ms)
189
+ ✔ repository gitignore protects local credentials, caches and releases but not examples or source (91.208128ms)
190
+ ✔ git failures expose only a sanitized rule and no Git diagnostic text (29.01556ms)
191
+ ✔ unquoted environment references are code, while literal quoted credentials remain scanned (71.176543ms)
192
+ ✔ POSIX tracked FIFO replacement cannot block the scanner (56.663819ms)
193
+ ✔ leading BOM in an untracked Git filename cannot alias a clean tracked file (54.265448ms)
194
+ ℹ tests 160
195
+ ℹ suites 0
196
+ ℹ pass 160
197
+ ℹ fail 0
198
+ ℹ cancelled 0
199
+ ℹ skipped 0
200
+ ℹ todo 0
201
+ ℹ duration_ms 3914.369024
202
+
203
+ > zorya-classifier@0.1.0 build
204
+ > tsc -p tsconfig.build.json
205
+
@@ -0,0 +1,82 @@
1
+ {
2
+ "version": 1,
3
+ "startedAt": "2026-10-17T21:54:57.525Z",
4
+ "mode": "live",
5
+ "evidence": "real-provider; route and metadata recorded per call",
6
+ "options": {
7
+ "mode": "live",
8
+ "allowPaid": true,
9
+ "maxCalls": 14,
10
+ "maxCostUsd": 0.1,
11
+ "corpusDirectory": "benchmarks/corpus",
12
+ "outputDirectory": ".run/live-release-smoke",
13
+ "splits": ["dev"],
14
+ "limit": 2
15
+ },
16
+ "node": "v24.12.0",
17
+ "platform": "linux",
18
+ "model": "typesafe/jev-1.14",
19
+ "provider": "typesafe",
20
+ "fallbacks": false,
21
+ "operationTimeoutMs": 45000,
22
+ "retries": 0,
23
+ "maximumPlannedCalls": 14,
24
+ "planned": {
25
+ "photos": 2,
26
+ "texts": 2
27
+ },
28
+ "corpus": {
29
+ "corpus-manifest.json": "00f4459996db0f61a38235adaf512e1bfc52e02e1d599bb590b62a98217e4cdb",
30
+ "photo-manifest.json": "a99f47d4e1c064581c6cc9123b58a5c81b196d15227963bf015041544f713aa3",
31
+ "text/text-manifest.json": "5e74c8c13cd1f1f8a2e2ecc22e90e6c0c83ebf5f9407dfed5b87204d3b8831ac",
32
+ "text/inputs/policy.json": "9db3010c97fa056fbb4a43ea51a5c973bd75b9d21f8d07f2c15d6d176e712b8a",
33
+ "inputs/dev.json": "0c443231956e9578afa43d4bf884cc9741594ae69ac5f957657b9c5a24422bb6",
34
+ "ground-truth/dev.json": "c618e1a950ae89e0c9ced0c2b1ca249ea7adc891f61c0579468c479613ea4b26",
35
+ "text/inputs/dev.json": "e7d2bc07559cba70494d6e4672cc3e1113c070aba8b2694ee45e76ebcbc04fcc",
36
+ "text/ground-truth/dev.json": "4827650b560f20b32b0366dea14947681d29ef9fefb5a059301ba5abf5c031f0"
37
+ },
38
+ "sourceHashes": {
39
+ "src/app/create-classifier.ts": "55bfcf78b8c12c616d1144371541ec4eb1e56a6a4790700b366e41dbdf896491",
40
+ "src/cli.ts": "2a28730b48e07437549421513b9db3a23c1c1fa907831ae02c034db17aee8aec",
41
+ "src/entities/contracts.ts": "d48c488c986a136ddeb0e843c8ba85cf5dab4838f6f49b0e4010d217defe2631",
42
+ "src/entities/errors.ts": "1c92c94c9ed6917953ac5192bfd2d8896cdb6fe13b7d05593573b7f2103330b0",
43
+ "src/features/choice-beam-layout.ts": "91ec1be72e31e19c5e9f1b722b1ad3810e07b78bfe2e8126ae7b00869a433c35",
44
+ "src/features/choice.ts": "307858ff2ee0bc142eef953123ed35b80756a9d4118d306025db4365b4f9b31f",
45
+ "src/features/prompts.ts": "df8090d057e71641b628dcab8b9d2fd59aeb24c4f93af1cd042f8aab5caf57dc",
46
+ "src/features/uniform-grid.ts": "8cee38aee52ba2c4ac2eaed909d5f53cc0e5aa2c04fe87585c66b29573e21c4d",
47
+ "src/index.ts": "1cd73c74a874adf1a4a3b6edb48e230f54c671098b9a3d51bb3a01a0ad2866db",
48
+ "src/infrastructure/openrouter.ts": "b9d4e5686c2c0c3c3463154a4164b0c5e9034582d59abb71e97794ec6a532b86",
49
+ "src/infrastructure/raster.ts": "8217346f671b957540f3c01a7eb3d8ef7d0bfb6a5e18a47c96f0ccb08f4bcb08",
50
+ "src/openrouter.ts": "0fc784e949774d5517aee4c5b019afc0a9c6e488988be28ff1c1a8c272635232",
51
+ "src/processes/classify.ts": "fb2a13aec8f02853f5ba353babf9588cce7aaebecb9f4ae6339a2f40897d736f",
52
+ "src/processes/locate.ts": "bf54bef7a899f0aa422b63da9ff577102dd6fa105ad8aff718b4168fa9f8ea88",
53
+ "src/shared/choice-mass.ts": "7f645998d9cd2688ca425b4765ec0bf7d125e932f085f9e84599b4c3b97743a3",
54
+ "src/shared/gate.ts": "97e4e32749dc9d3a9def6faaea2566b5d0ed831ba4451999740c719fafa8e576",
55
+ "src/shared/scope.ts": "cc557e9fd83a838f5366c64d026859db119491d927dfb3a84ef4320b2f0b0beb",
56
+ "benchmarks/ablations.ts": "d4450a1c962bd96f89af3499fd0d5da52bb20eb2c6fdf8c79d2e6057d0d6325b",
57
+ "benchmarks/budget.ts": "538a7e89ca643d2c26ea7e13a4d213ee019a2df865fac6573c31e9fb1ea63166",
58
+ "benchmarks/corpus.ts": "0af52e2f896e74e8e9ab0937e34862cea5396ac0649f896299631160314848b4",
59
+ "benchmarks/metrics.ts": "8a836b35152afd24c24095669d3ca802fd57eafb452ebbd7e28dbb56853f9e07",
60
+ "benchmarks/overlay.ts": "9eced23935c5428d657df747d0f239c6fc8a61ef2f1582d88a86e08f71ddfbf5",
61
+ "benchmarks/recording.ts": "fd1913f50027c4f78ebb5daddfd9b563455b145e525ddd4dda18b453670358af",
62
+ "benchmarks/run.ts": "5ff28c02fd9bc6dc03aaf5934e7e28300f958696a2fb1fffca44edabf748ebfa",
63
+ "benchmarks/runner.ts": "fd95d5b720e11f4f22bd39e5044b456fcd3c42fffd6b4f308ee98bd99695558f",
64
+ "package.json": "0e7cb54459efb7f326d4d13a6416a08b29eeb626d41f962ce630c86f42c94acd",
65
+ "package-lock.json": "879d16df46b6fd0c95c837b9683422d7ff76d6a3f61790cf62288fcf010d4384",
66
+ "tsconfig.json": "3411e388c49ac70c5c50d0c2d85ee5bcc7270a16e8d3fb4a217c99212a783d0e"
67
+ },
68
+ "limitations": [
69
+ "Public photos may overlap training data; heldout is only held out from local development.",
70
+ "Text fixtures and labels are assistant-authored, not independent human annotations.",
71
+ "Locate returns one region; center-inside-any-box is not all-object recall or segmentation accuracy.",
72
+ "Prefix ablations reuse exact stage answers; they lack third-stage confirmation.",
73
+ "Request preparation and artifact writes are included in measured operation latency.",
74
+ "Known cost plus $0.02 per incomplete or unknown-cost provider invocation is an admission estimate, not a provider-enforced spending limit.",
75
+ "Public DecisionResult contains cost and route metadata; raw HTTP token usage is unavailable.",
76
+ "Photographs do not validate gaming UI, maps, OCR, or temporal tracking."
77
+ ],
78
+ "publicExport": {
79
+ "rawManifestSha256": "456dccfd3af1593d1a420453a5f5a5cbae47506542889156da81c83db3fd4487",
80
+ "removed": "Host-specific absolute output directory replaced by repository-relative path."
81
+ }
82
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "rawReportSha256": "53ded957128475306bbb8ab4c7a5a40d37382ee48cc51fe1df5301bd2c21d439",
3
+ "rawManifestSha256": "456dccfd3af1593d1a420453a5f5a5cbae47506542889156da81c83db3fd4487",
4
+ "status": "complete",
5
+ "physicalHttpCalls": 14,
6
+ "knownCostUsd": 0.004080510000000001,
7
+ "unknownCostCalls": 0,
8
+ "scope": "Final runtime smoke, 2 development photos and 2 development texts; not a quality re-evaluation"
9
+ }