@jinn-network/client 0.1.9 → 0.2.0-canary.0b79cd5d

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 (1344) hide show
  1. package/CONTRIBUTING.md +2 -2
  2. package/README.md +13 -2
  3. package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +3 -3
  4. package/deployments/deployment-stolas-l2-baseSepolia-fast.json +23 -3
  5. package/deployments/deployment-task-coordinator-router-v3-baseSepolia-fast.json +34 -6
  6. package/dist/adapters/mech/adapter.d.ts +32 -0
  7. package/dist/adapters/mech/adapter.js +210 -59
  8. package/dist/adapters/mech/adapter.js.map +1 -1
  9. package/dist/adapters/mech/contracts.d.ts +174 -13
  10. package/dist/adapters/mech/contracts.js +37 -21
  11. package/dist/adapters/mech/contracts.js.map +1 -1
  12. package/dist/adapters/mech/ipfs.d.ts +23 -34
  13. package/dist/adapters/mech/ipfs.js +69 -125
  14. package/dist/adapters/mech/ipfs.js.map +1 -1
  15. package/dist/adapters/mech/safe.js +74 -2
  16. package/dist/adapters/mech/safe.js.map +1 -1
  17. package/dist/adapters/mech/types.d.ts +22 -130
  18. package/dist/adapters/mech/types.js +9 -65
  19. package/dist/adapters/mech/types.js.map +1 -1
  20. package/dist/api/bootstrap-endpoint.d.ts +19 -3
  21. package/dist/api/bootstrap-endpoint.js +4 -0
  22. package/dist/api/bootstrap-endpoint.js.map +1 -1
  23. package/dist/api/gather-status.d.ts +52 -17
  24. package/dist/api/gather-status.js +159 -425
  25. package/dist/api/gather-status.js.map +1 -1
  26. package/dist/api/harness-auth-status-endpoint.d.ts +21 -0
  27. package/dist/api/harness-auth-status-endpoint.js +17 -0
  28. package/dist/api/harness-auth-status-endpoint.js.map +1 -0
  29. package/dist/api/launcher-endpoints.js +6 -1
  30. package/dist/api/launcher-endpoints.js.map +1 -1
  31. package/dist/api/launcher-status.d.ts +3 -0
  32. package/dist/api/launcher-status.js.map +1 -1
  33. package/dist/api/launcher-tasks.d.ts +47 -0
  34. package/dist/api/launcher-tasks.js +88 -3
  35. package/dist/api/launcher-tasks.js.map +1 -1
  36. package/dist/api/loop-completion-build.d.ts +14 -2
  37. package/dist/api/loop-completion-build.js +25 -3
  38. package/dist/api/loop-completion-build.js.map +1 -1
  39. package/dist/api/operator-artifacts-endpoint.js +1 -1
  40. package/dist/api/operator-artifacts-endpoint.js.map +1 -1
  41. package/dist/api/portfolio-v0-build.d.ts +2 -1
  42. package/dist/api/portfolio-v0-build.js +5 -7
  43. package/dist/api/portfolio-v0-build.js.map +1 -1
  44. package/dist/api/prediction-v1-build.d.ts +2 -2
  45. package/dist/api/prediction-v1-build.js +5 -7
  46. package/dist/api/prediction-v1-build.js.map +1 -1
  47. package/dist/api/rewards-build.d.ts +8 -1
  48. package/dist/api/rewards-build.js +32 -4
  49. package/dist/api/rewards-build.js.map +1 -1
  50. package/dist/api/rewards-endpoint.d.ts +12 -0
  51. package/dist/api/rewards-endpoint.js +46 -0
  52. package/dist/api/rewards-endpoint.js.map +1 -0
  53. package/dist/api/run-outcome.d.ts +49 -0
  54. package/dist/api/run-outcome.js +65 -0
  55. package/dist/api/run-outcome.js.map +1 -0
  56. package/dist/api/server.d.ts +6 -16
  57. package/dist/api/server.js +36 -26
  58. package/dist/api/server.js.map +1 -1
  59. package/dist/api/setup-endpoints.d.ts +32 -0
  60. package/dist/api/setup-endpoints.js +285 -32
  61. package/dist/api/setup-endpoints.js.map +1 -1
  62. package/dist/api/solvernets-endpoints.js +1 -1
  63. package/dist/api/solvernets-endpoints.js.map +1 -1
  64. package/dist/api/status-build.d.ts +101 -67
  65. package/dist/api/status-build.js +31 -55
  66. package/dist/api/status-build.js.map +1 -1
  67. package/dist/api/stop-hook.d.ts +1 -1
  68. package/dist/api/stop-hook.js +1 -1
  69. package/dist/api/stop-hook.js.map +1 -1
  70. package/dist/api/task-run-routing.d.ts +1 -1
  71. package/dist/api/task-runs-build.d.ts +21 -2
  72. package/dist/api/task-runs-build.js +27 -7
  73. package/dist/api/task-runs-build.js.map +1 -1
  74. package/dist/build-info.json +4 -4
  75. package/dist/build-meta.json +1 -1
  76. package/dist/captures/ingest.d.ts +21 -0
  77. package/dist/captures/ingest.js +133 -0
  78. package/dist/captures/ingest.js.map +1 -0
  79. package/dist/captures/live-publisher.d.ts +9 -0
  80. package/dist/captures/live-publisher.js +5 -3
  81. package/dist/captures/live-publisher.js.map +1 -1
  82. package/dist/captures/publish.d.ts +25 -0
  83. package/dist/captures/publish.js +19 -7
  84. package/dist/captures/publish.js.map +1 -1
  85. package/dist/cli/commands/backfill-failed-deliveries.d.ts +40 -0
  86. package/dist/cli/commands/backfill-failed-deliveries.js +172 -0
  87. package/dist/cli/commands/backfill-failed-deliveries.js.map +1 -0
  88. package/dist/cli/commands/doctor.js +4 -7
  89. package/dist/cli/commands/doctor.js.map +1 -1
  90. package/dist/cli/commands/eval.d.ts +11 -0
  91. package/dist/cli/commands/eval.js +104 -24
  92. package/dist/cli/commands/eval.js.map +1 -1
  93. package/dist/cli/commands/kill.d.ts +14 -0
  94. package/dist/cli/commands/kill.js +141 -0
  95. package/dist/cli/commands/kill.js.map +1 -0
  96. package/dist/cli/commands/rewards.js +17 -15
  97. package/dist/cli/commands/rewards.js.map +1 -1
  98. package/dist/cli/commands/run.js +18 -4
  99. package/dist/cli/commands/run.js.map +1 -1
  100. package/dist/cli/commands/scrub.d.ts +11 -0
  101. package/dist/cli/commands/scrub.js +164 -0
  102. package/dist/cli/commands/scrub.js.map +1 -0
  103. package/dist/cli/commands/solver-nets.d.ts +6 -0
  104. package/dist/cli/commands/solver-nets.js +161 -6
  105. package/dist/cli/commands/solver-nets.js.map +1 -1
  106. package/dist/cli/commands/solver-plugins.js +2 -2
  107. package/dist/cli/commands/solver-plugins.js.map +1 -1
  108. package/dist/cli/commands/stop.js +97 -21
  109. package/dist/cli/commands/stop.js.map +1 -1
  110. package/dist/cli/commands/update.js +8 -0
  111. package/dist/cli/commands/update.js.map +1 -1
  112. package/dist/cli/commands/version.js +4 -0
  113. package/dist/cli/commands/version.js.map +1 -1
  114. package/dist/cli/execution-context.js +2 -1
  115. package/dist/cli/execution-context.js.map +1 -1
  116. package/dist/cli/index.js +6 -0
  117. package/dist/cli/index.js.map +1 -1
  118. package/dist/cli/introspection-context.js +0 -3
  119. package/dist/cli/introspection-context.js.map +1 -1
  120. package/dist/cli/ui-auto-open-gate.d.ts +22 -0
  121. package/dist/cli/ui-auto-open-gate.js +24 -0
  122. package/dist/cli/ui-auto-open-gate.js.map +1 -0
  123. package/dist/config.d.ts +319 -540
  124. package/dist/config.js +355 -194
  125. package/dist/config.js.map +1 -1
  126. package/dist/conformance/execution-envelope-authenticator.d.ts +2 -0
  127. package/dist/conformance/execution-envelope-authenticator.js +38 -0
  128. package/dist/conformance/execution-envelope-authenticator.js.map +1 -0
  129. package/dist/contracts/abis.d.ts +100 -0
  130. package/dist/contracts/abis.js +58 -0
  131. package/dist/contracts/abis.js.map +1 -0
  132. package/dist/contracts/addresses.d.ts +36 -0
  133. package/dist/contracts/addresses.js +60 -0
  134. package/dist/contracts/addresses.js.map +1 -0
  135. package/dist/corpus/acquire.d.ts +1 -40
  136. package/dist/corpus/acquire.js +1 -212
  137. package/dist/corpus/acquire.js.map +1 -1
  138. package/dist/corpus/cache.d.ts +1 -14
  139. package/dist/corpus/cache.js +1 -17
  140. package/dist/corpus/cache.js.map +1 -1
  141. package/dist/corpus/fetch-artifact.d.ts +1 -0
  142. package/dist/corpus/fetch-artifact.js +2 -0
  143. package/dist/corpus/fetch-artifact.js.map +1 -0
  144. package/dist/corpus/fetch.d.ts +3 -7
  145. package/dist/corpus/fetch.js +9 -22
  146. package/dist/corpus/fetch.js.map +1 -1
  147. package/dist/corpus/index.d.ts +2 -3
  148. package/dist/corpus/index.js +19 -110
  149. package/dist/corpus/index.js.map +1 -1
  150. package/dist/corpus/onchain-query.d.ts +0 -1
  151. package/dist/corpus/onchain-query.js +2 -5
  152. package/dist/corpus/onchain-query.js.map +1 -1
  153. package/dist/corpus/route-resolver.d.ts +1 -16
  154. package/dist/corpus/route-resolver.js +1 -19
  155. package/dist/corpus/route-resolver.js.map +1 -1
  156. package/dist/corpus/types.d.ts +1 -17
  157. package/dist/corpus/types.js +1 -34
  158. package/dist/corpus/types.js.map +1 -1
  159. package/dist/daemon/ai-units-gate.d.ts +7 -7
  160. package/dist/daemon/ai-units-gate.js +8 -5
  161. package/dist/daemon/ai-units-gate.js.map +1 -1
  162. package/dist/daemon/balance-topup-loop.js +27 -9
  163. package/dist/daemon/balance-topup-loop.js.map +1 -1
  164. package/dist/daemon/checkpoint-loop.d.ts +3 -0
  165. package/dist/daemon/checkpoint-loop.js +5 -2
  166. package/dist/daemon/checkpoint-loop.js.map +1 -1
  167. package/dist/daemon/creator.d.ts +3 -1
  168. package/dist/daemon/creator.js +44 -28
  169. package/dist/daemon/creator.js.map +1 -1
  170. package/dist/daemon/daemon.d.ts +33 -12
  171. package/dist/daemon/daemon.js +144 -35
  172. package/dist/daemon/daemon.js.map +1 -1
  173. package/dist/daemon/delivery-watcher.d.ts +11 -1
  174. package/dist/daemon/delivery-watcher.js +29 -4
  175. package/dist/daemon/delivery-watcher.js.map +1 -1
  176. package/dist/daemon/eviction-loop.d.ts +3 -0
  177. package/dist/daemon/eviction-loop.js +7 -4
  178. package/dist/daemon/eviction-loop.js.map +1 -1
  179. package/dist/daemon/harvest-loop.d.ts +74 -0
  180. package/dist/daemon/harvest-loop.js +474 -0
  181. package/dist/daemon/harvest-loop.js.map +1 -0
  182. package/dist/daemon/join-applier.d.ts +40 -0
  183. package/dist/daemon/join-applier.js +52 -0
  184. package/dist/daemon/join-applier.js.map +1 -0
  185. package/dist/daemon/loop-heartbeat.d.ts +99 -0
  186. package/dist/daemon/loop-heartbeat.js +82 -0
  187. package/dist/daemon/loop-heartbeat.js.map +1 -0
  188. package/dist/{api/peers.js → daemon/peer-sync.js} +3 -1
  189. package/dist/daemon/peer-sync.js.map +1 -0
  190. package/dist/daemon/reward-claim-loop.js +28 -10
  191. package/dist/daemon/reward-claim-loop.js.map +1 -1
  192. package/dist/daemon/skip-log-dedup.d.ts +1 -1
  193. package/dist/daemon/skip-log-dedup.js +3 -0
  194. package/dist/daemon/skip-log-dedup.js.map +1 -1
  195. package/dist/daemon/spend-cap-gate.d.ts +0 -6
  196. package/dist/daemon/spend-cap-gate.js +1 -8
  197. package/dist/daemon/spend-cap-gate.js.map +1 -1
  198. package/dist/daemon/watchdog-loop.d.ts +84 -0
  199. package/dist/daemon/watchdog-loop.js +91 -0
  200. package/dist/daemon/watchdog-loop.js.map +1 -0
  201. package/dist/dashboard/assets/index-CawZUjVI.css +1 -0
  202. package/dist/dashboard/assets/index-DgScQzny.js +95 -0
  203. package/dist/dashboard/index.html +2 -2
  204. package/dist/discovery/http.d.ts +10 -0
  205. package/dist/discovery/http.js +178 -335
  206. package/dist/discovery/http.js.map +1 -1
  207. package/dist/discovery/onchain.js +30 -9
  208. package/dist/discovery/onchain.js.map +1 -1
  209. package/dist/discovery/types.d.ts +98 -52
  210. package/dist/discovery/types.js.map +1 -1
  211. package/dist/discovery/with-fallback.js +19 -0
  212. package/dist/discovery/with-fallback.js.map +1 -1
  213. package/dist/earning/bootstrap-run.d.ts +25 -0
  214. package/dist/earning/bootstrap-run.js +315 -0
  215. package/dist/earning/bootstrap-run.js.map +1 -0
  216. package/dist/earning/bootstrap.d.ts +11 -14
  217. package/dist/earning/bootstrap.js +56 -204
  218. package/dist/earning/bootstrap.js.map +1 -1
  219. package/dist/earning/contracts.d.ts +2 -232
  220. package/dist/earning/contracts.js +16 -205
  221. package/dist/earning/contracts.js.map +1 -1
  222. package/dist/earning/faucet-topup-store.d.ts +41 -0
  223. package/dist/earning/faucet-topup-store.js +89 -0
  224. package/dist/earning/faucet-topup-store.js.map +1 -0
  225. package/dist/earning/master-gas.d.ts +10 -0
  226. package/dist/earning/master-gas.js +11 -0
  227. package/dist/earning/master-gas.js.map +1 -0
  228. package/dist/earning/safe-adapter.js +1 -45
  229. package/dist/earning/safe-adapter.js.map +1 -1
  230. package/dist/earning/steps/context.d.ts +42 -0
  231. package/dist/earning/steps/context.js +4 -0
  232. package/dist/earning/steps/context.js.map +1 -0
  233. package/dist/earning/steps/fleet-identity-register.d.ts +4 -0
  234. package/dist/earning/steps/fleet-identity-register.js +65 -0
  235. package/dist/earning/steps/fleet-identity-register.js.map +1 -0
  236. package/dist/earning/steps/fleet-safe-deploy.d.ts +4 -0
  237. package/dist/earning/steps/fleet-safe-deploy.js +62 -0
  238. package/dist/earning/steps/fleet-safe-deploy.js.map +1 -0
  239. package/dist/earning/steps/fleet-safe-predict.d.ts +4 -0
  240. package/dist/earning/steps/fleet-safe-predict.js +18 -0
  241. package/dist/earning/steps/fleet-safe-predict.js.map +1 -0
  242. package/dist/earning/steps/receipt-parsing.d.ts +12 -0
  243. package/dist/earning/steps/receipt-parsing.js +71 -0
  244. package/dist/earning/steps/receipt-parsing.js.map +1 -0
  245. package/dist/earning/stolas-claim.js +8 -8
  246. package/dist/earning/stolas-claim.js.map +1 -1
  247. package/dist/earning/{jinn-rewards.d.ts → stolas-staking.d.ts} +4 -8
  248. package/dist/earning/{jinn-rewards.js → stolas-staking.js} +25 -23
  249. package/dist/earning/stolas-staking.js.map +1 -0
  250. package/dist/earning/testnet-setup-migration.d.ts +1 -0
  251. package/dist/earning/testnet-setup-migration.js +7 -2
  252. package/dist/earning/testnet-setup-migration.js.map +1 -1
  253. package/dist/earning/types.d.ts +9 -9
  254. package/dist/earning/types.js +1 -1
  255. package/dist/earning/types.js.map +1 -1
  256. package/dist/earning/viem-clients.d.ts +3 -19
  257. package/dist/earning/viem-clients.js +4 -31
  258. package/dist/earning/viem-clients.js.map +1 -1
  259. package/dist/earning/wallet.js +1 -1
  260. package/dist/earning/wallet.js.map +1 -1
  261. package/dist/erc8004/abis.d.ts +16 -0
  262. package/dist/erc8004/abis.js +12 -0
  263. package/dist/erc8004/abis.js.map +1 -1
  264. package/dist/erc8004/addresses.d.ts +6 -5
  265. package/dist/erc8004/addresses.js +7 -5
  266. package/dist/erc8004/addresses.js.map +1 -1
  267. package/dist/erc8004/identity.d.ts +54 -1
  268. package/dist/erc8004/identity.js +114 -5
  269. package/dist/erc8004/identity.js.map +1 -1
  270. package/dist/erc8004/index.d.ts +5 -2
  271. package/dist/erc8004/index.js +6 -2
  272. package/dist/erc8004/index.js.map +1 -1
  273. package/dist/erc8004/manifest-consumer.d.ts +32 -0
  274. package/dist/erc8004/manifest-consumer.js +95 -0
  275. package/dist/erc8004/manifest-consumer.js.map +1 -0
  276. package/dist/erc8004/manifest-registry.d.ts +1 -0
  277. package/dist/erc8004/manifest-registry.js +2 -0
  278. package/dist/erc8004/manifest-registry.js.map +1 -0
  279. package/dist/erc8004/merkle.d.ts +1 -0
  280. package/dist/erc8004/merkle.js +2 -0
  281. package/dist/erc8004/merkle.js.map +1 -0
  282. package/dist/erc8004/publisher-safe-resolver.d.ts +32 -0
  283. package/dist/erc8004/publisher-safe-resolver.js +102 -0
  284. package/dist/erc8004/publisher-safe-resolver.js.map +1 -0
  285. package/dist/erc8004/reputation.js +16 -12
  286. package/dist/erc8004/reputation.js.map +1 -1
  287. package/dist/erc8004/validation.js +5 -4
  288. package/dist/erc8004/validation.js.map +1 -1
  289. package/dist/eval/attribution-instrument.d.ts +190 -0
  290. package/dist/eval/attribution-instrument.js +719 -0
  291. package/dist/eval/attribution-instrument.js.map +1 -0
  292. package/dist/eval/attribution-verdict-evidence.d.ts +41 -0
  293. package/dist/eval/attribution-verdict-evidence.js +124 -0
  294. package/dist/eval/attribution-verdict-evidence.js.map +1 -0
  295. package/dist/eval/capability-slate.d.ts +64 -0
  296. package/dist/eval/capability-slate.js +136 -0
  297. package/dist/eval/capability-slate.js.map +1 -0
  298. package/dist/eval/capability-stats.d.ts +39 -0
  299. package/dist/eval/capability-stats.js +123 -0
  300. package/dist/eval/capability-stats.js.map +1 -0
  301. package/dist/eval/contested-band.d.ts +18 -0
  302. package/dist/eval/contested-band.js +19 -0
  303. package/dist/eval/contested-band.js.map +1 -0
  304. package/dist/eval/corpus-index.d.ts +21 -0
  305. package/dist/eval/corpus-index.js +55 -0
  306. package/dist/eval/corpus-index.js.map +1 -0
  307. package/dist/eval/disjointness.d.ts +26 -0
  308. package/dist/eval/disjointness.js +67 -0
  309. package/dist/eval/disjointness.js.map +1 -0
  310. package/dist/eval/mcnemar-power.d.ts +14 -0
  311. package/dist/eval/mcnemar-power.js +40 -0
  312. package/dist/eval/mcnemar-power.js.map +1 -0
  313. package/dist/eval/orchestrator.d.ts +64 -3
  314. package/dist/eval/orchestrator.js +37 -19
  315. package/dist/eval/orchestrator.js.map +1 -1
  316. package/dist/eval/paired.d.ts +2 -68
  317. package/dist/eval/paired.js +2 -92
  318. package/dist/eval/paired.js.map +1 -1
  319. package/dist/eval/resolve-slate-tasks.js +2 -2
  320. package/dist/eval/resolve-slate-tasks.js.map +1 -1
  321. package/dist/eval/screen-discovery.d.ts +5 -8
  322. package/dist/eval/screen-discovery.js +13 -55
  323. package/dist/eval/screen-discovery.js.map +1 -1
  324. package/dist/eval/screen-runner.js +3 -3
  325. package/dist/eval/screen-runner.js.map +1 -1
  326. package/dist/events/types.d.ts +1 -1
  327. package/dist/events/types.js +1 -1
  328. package/dist/events/types.js.map +1 -1
  329. package/dist/harnesses/auth-source.d.ts +51 -0
  330. package/dist/harnesses/auth-source.js +155 -0
  331. package/dist/harnesses/auth-source.js.map +1 -0
  332. package/dist/harnesses/engine/backfill-failed-deliveries.d.ts +59 -0
  333. package/dist/harnesses/engine/backfill-failed-deliveries.js +94 -0
  334. package/dist/harnesses/engine/backfill-failed-deliveries.js.map +1 -0
  335. package/dist/harnesses/engine/canonical-json.d.ts +2 -1
  336. package/dist/harnesses/engine/canonical-json.js +2 -67
  337. package/dist/harnesses/engine/canonical-json.js.map +1 -1
  338. package/dist/harnesses/engine/corpus-knowledge.d.ts +67 -0
  339. package/dist/harnesses/engine/corpus-knowledge.js +194 -0
  340. package/dist/harnesses/engine/corpus-knowledge.js.map +1 -0
  341. package/dist/harnesses/engine/engine.d.ts +97 -6
  342. package/dist/harnesses/engine/engine.js +343 -17
  343. package/dist/harnesses/engine/engine.js.map +1 -1
  344. package/dist/harnesses/engine/envelope-assembly.d.ts +9 -1
  345. package/dist/harnesses/engine/envelope-assembly.js +6 -0
  346. package/dist/harnesses/engine/envelope-assembly.js.map +1 -1
  347. package/dist/harnesses/engine/generator-model.d.ts +36 -0
  348. package/dist/harnesses/engine/generator-model.js +118 -0
  349. package/dist/harnesses/engine/generator-model.js.map +1 -0
  350. package/dist/harnesses/engine/packaging.js +5 -5
  351. package/dist/harnesses/engine/packaging.js.map +1 -1
  352. package/dist/harnesses/engine/persistence.d.ts +37 -62
  353. package/dist/harnesses/engine/persistence.js +66 -0
  354. package/dist/harnesses/engine/persistence.js.map +1 -1
  355. package/dist/harnesses/impls/_evaluator-base.d.ts +48 -0
  356. package/dist/harnesses/impls/_evaluator-base.js +35 -0
  357. package/dist/harnesses/impls/_evaluator-base.js.map +1 -0
  358. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +1 -1
  359. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js +1 -1
  360. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -1
  361. package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +2 -3
  362. package/dist/harnesses/impls/claude-mcp-prediction/index.js +29 -99
  363. package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -1
  364. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +4 -21
  365. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -1
  366. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +2 -0
  367. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +1 -1
  368. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -1
  369. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +30 -79
  370. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -1
  371. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +4 -19
  372. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -1
  373. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +2 -0
  374. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +1 -1
  375. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -1
  376. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.d.ts +39 -0
  377. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js +62 -0
  378. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js.map +1 -0
  379. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.d.ts +40 -0
  380. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js +44 -0
  381. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js.map +1 -0
  382. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.d.ts +56 -0
  383. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js +79 -0
  384. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js.map +1 -0
  385. package/dist/harnesses/impls/hermes-agent/adapter.js +97 -20
  386. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  387. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +6 -0
  388. package/dist/harnesses/impls/hermes-agent/bootstrap.js +7 -2
  389. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  390. package/dist/harnesses/impls/hermes-agent/harness.d.ts +8 -0
  391. package/dist/harnesses/impls/hermes-agent/harness.js +21 -0
  392. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  393. package/dist/harnesses/impls/index.d.ts +9 -0
  394. package/dist/harnesses/impls/index.js +33 -1
  395. package/dist/harnesses/impls/index.js.map +1 -1
  396. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.d.ts +34 -0
  397. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js +111 -0
  398. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js.map +1 -0
  399. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.d.ts +24 -0
  400. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js +19 -0
  401. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js.map +1 -0
  402. package/dist/harnesses/impls/jinn-repo-evaluator/harness.d.ts +97 -0
  403. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js +265 -0
  404. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js.map +1 -0
  405. package/dist/harnesses/impls/jinn-repo-evaluator/live-eval-runner.d.ts +68 -0
  406. package/dist/harnesses/impls/jinn-repo-evaluator/live-eval-runner.js +223 -0
  407. package/dist/harnesses/impls/jinn-repo-evaluator/live-eval-runner.js.map +1 -0
  408. package/dist/harnesses/impls/jinn-repo-evaluator/repro.d.ts +32 -0
  409. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js +73 -0
  410. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js.map +1 -0
  411. package/dist/harnesses/impls/jinn-repo-evaluator/scope-tests.d.ts +62 -0
  412. package/dist/harnesses/impls/jinn-repo-evaluator/scope-tests.js +91 -0
  413. package/dist/harnesses/impls/jinn-repo-evaluator/scope-tests.js.map +1 -0
  414. package/dist/harnesses/impls/learner/adapters/claude-code.js +9 -2
  415. package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
  416. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +11 -1
  417. package/dist/harnesses/impls/learner/adapters/codex-code.js +130 -15
  418. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  419. package/dist/harnesses/impls/learner/harness.d.ts +12 -0
  420. package/dist/harnesses/impls/learner/harness.js +43 -0
  421. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  422. package/dist/harnesses/impls/learner/harvest.js +51 -1
  423. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  424. package/dist/harnesses/impls/learner/types.d.ts +7 -0
  425. package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +5 -15
  426. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +10 -29
  427. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -1
  428. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +5 -15
  429. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +10 -23
  430. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
  431. package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +5 -15
  432. package/dist/harnesses/impls/prediction-v0-evaluator/index.js +10 -25
  433. package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -1
  434. package/dist/harnesses/impls/stub.d.ts +2 -2
  435. package/dist/harnesses/impls/stub.js +2 -2
  436. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +16 -2
  437. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  438. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.d.ts +75 -8
  439. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +593 -38
  440. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  441. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +4 -1
  442. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
  443. package/dist/harnesses/impls/swe-rebench-v2-evaluator/routing-task-row-fetcher.d.ts +37 -0
  444. package/dist/harnesses/impls/swe-rebench-v2-evaluator/routing-task-row-fetcher.js +59 -0
  445. package/dist/harnesses/impls/swe-rebench-v2-evaluator/routing-task-row-fetcher.js.map +1 -0
  446. package/dist/harnesses/impls/swe-rebench-v2-evaluator/upstream-patches/passed-actual.patch +21 -0
  447. package/dist/harnesses/provider-ref.d.ts +29 -0
  448. package/dist/harnesses/provider-ref.js +39 -0
  449. package/dist/harnesses/provider-ref.js.map +1 -0
  450. package/dist/harnesses/readiness-registry.d.ts +16 -0
  451. package/dist/harnesses/readiness-registry.js +28 -6
  452. package/dist/harnesses/readiness-registry.js.map +1 -1
  453. package/dist/harnesses/types.d.ts +13 -0
  454. package/dist/learner/verification-gate.d.ts +53 -0
  455. package/dist/learner/verification-gate.js +80 -0
  456. package/dist/learner/verification-gate.js.map +1 -0
  457. package/dist/lifecycle/process-discovery.d.ts +41 -0
  458. package/dist/lifecycle/process-discovery.js +109 -0
  459. package/dist/lifecycle/process-discovery.js.map +1 -0
  460. package/dist/main.js +362 -581
  461. package/dist/main.js.map +1 -1
  462. package/dist/mcp/acquire-artifact.d.ts +3 -3
  463. package/dist/mcp/acquire-artifact.js +3 -3
  464. package/dist/mcp/operator-server.js +9 -11
  465. package/dist/mcp/operator-server.js.map +1 -1
  466. package/dist/mcp/server.js +5 -6
  467. package/dist/mcp/server.js.map +1 -1
  468. package/dist/monitoring/net-liveness.d.ts +143 -0
  469. package/dist/monitoring/net-liveness.js +301 -0
  470. package/dist/monitoring/net-liveness.js.map +1 -0
  471. package/dist/observability/emit-event.d.ts +1 -1
  472. package/dist/observability/emit-event.js +2 -4
  473. package/dist/observability/emit-event.js.map +1 -1
  474. package/dist/observability/progress.d.ts +11 -0
  475. package/dist/observability/progress.js +16 -0
  476. package/dist/observability/progress.js.map +1 -0
  477. package/dist/pilot/arm-homes.d.ts +39 -0
  478. package/dist/pilot/arm-homes.js +113 -0
  479. package/dist/pilot/arm-homes.js.map +1 -0
  480. package/dist/pilot/cost.d.ts +19 -0
  481. package/dist/pilot/cost.js +31 -0
  482. package/dist/pilot/cost.js.map +1 -0
  483. package/dist/pilot/instance.d.ts +26 -0
  484. package/dist/pilot/instance.js +53 -0
  485. package/dist/pilot/instance.js.map +1 -0
  486. package/dist/pilot/pipeline.d.ts +17 -0
  487. package/dist/pilot/pipeline.js +35 -0
  488. package/dist/pilot/pipeline.js.map +1 -0
  489. package/dist/pilot/repo.d.ts +37 -0
  490. package/dist/pilot/repo.js +65 -0
  491. package/dist/pilot/repo.js.map +1 -0
  492. package/dist/pilot/resume.d.ts +101 -0
  493. package/dist/pilot/resume.js +204 -0
  494. package/dist/pilot/resume.js.map +1 -0
  495. package/dist/pilot/solve.d.ts +23 -0
  496. package/dist/pilot/solve.js +37 -0
  497. package/dist/pilot/solve.js.map +1 -0
  498. package/dist/pilot/tally.d.ts +42 -0
  499. package/dist/pilot/tally.js +100 -0
  500. package/dist/pilot/tally.js.map +1 -0
  501. package/dist/pilot/task-selection.d.ts +27 -0
  502. package/dist/pilot/task-selection.js +112 -0
  503. package/dist/pilot/task-selection.js.map +1 -0
  504. package/dist/plugins/resolvers.js +7 -4
  505. package/dist/plugins/resolvers.js.map +1 -1
  506. package/dist/plugins/types.d.ts +8 -0
  507. package/dist/preflight/deployment-readiness.d.ts +2 -22
  508. package/dist/preflight/deployment-readiness.js +1 -59
  509. package/dist/preflight/deployment-readiness.js.map +1 -1
  510. package/dist/preflight/pidfile-liveness.d.ts +3 -2
  511. package/dist/preflight/pidfile-liveness.js +18 -2
  512. package/dist/preflight/pidfile-liveness.js.map +1 -1
  513. package/dist/preflight/rpc-network.d.ts +10 -3
  514. package/dist/preflight/rpc-network.js +46 -13
  515. package/dist/preflight/rpc-network.js.map +1 -1
  516. package/dist/preflight/stable-cwd.d.ts +29 -0
  517. package/dist/preflight/stable-cwd.js +98 -0
  518. package/dist/preflight/stable-cwd.js.map +1 -0
  519. package/dist/preflight/version-check.d.ts +41 -0
  520. package/dist/preflight/version-check.js +80 -0
  521. package/dist/preflight/version-check.js.map +1 -0
  522. package/dist/rpc/transport.d.ts +7 -5
  523. package/dist/rpc/transport.js +8 -6
  524. package/dist/rpc/transport.js.map +1 -1
  525. package/dist/scripts/swe-rebench-v2-evaluator.bundle.v1.patch +79 -0
  526. package/dist/solver-nets/registry.d.ts +26 -0
  527. package/dist/solver-nets/registry.js +101 -66
  528. package/dist/solver-nets/registry.js.map +1 -1
  529. package/dist/solver-types/_jinn-repo-pool.d.ts +61 -0
  530. package/dist/solver-types/_jinn-repo-pool.js +34 -0
  531. package/dist/solver-types/_jinn-repo-pool.js.map +1 -0
  532. package/dist/solver-types/_jinn-repo-posting-window.d.ts +12 -0
  533. package/dist/solver-types/_jinn-repo-posting-window.js +24 -0
  534. package/dist/solver-types/_jinn-repo-posting-window.js.map +1 -0
  535. package/dist/solver-types/_swe-rebench-v2-commit-echo-git.d.ts +46 -0
  536. package/dist/solver-types/_swe-rebench-v2-commit-echo-git.js +192 -0
  537. package/dist/solver-types/_swe-rebench-v2-commit-echo-git.js.map +1 -0
  538. package/dist/solver-types/_swe-rebench-v2-commit-echo.d.ts +57 -0
  539. package/dist/solver-types/_swe-rebench-v2-commit-echo.js +57 -0
  540. package/dist/solver-types/_swe-rebench-v2-commit-echo.js.map +1 -0
  541. package/dist/solver-types/_swe-rebench-v2-differential-admission.d.ts +395 -0
  542. package/dist/solver-types/_swe-rebench-v2-differential-admission.js +231 -0
  543. package/dist/solver-types/_swe-rebench-v2-differential-admission.js.map +1 -0
  544. package/dist/solver-types/_swe-rebench-v2-empirical-tests.d.ts +47 -0
  545. package/dist/solver-types/_swe-rebench-v2-empirical-tests.js +67 -0
  546. package/dist/solver-types/_swe-rebench-v2-empirical-tests.js.map +1 -0
  547. package/dist/solver-types/_swe-rebench-v2-escrow.d.ts +2 -0
  548. package/dist/solver-types/_swe-rebench-v2-escrow.js +13 -0
  549. package/dist/solver-types/_swe-rebench-v2-escrow.js.map +1 -1
  550. package/dist/solver-types/_swe-rebench-v2-guards.d.ts +44 -0
  551. package/dist/solver-types/_swe-rebench-v2-guards.js +111 -0
  552. package/dist/solver-types/_swe-rebench-v2-guards.js.map +1 -0
  553. package/dist/solver-types/_swe-rebench-v2-harvest-state.d.ts +191 -0
  554. package/dist/solver-types/_swe-rebench-v2-harvest-state.js +349 -0
  555. package/dist/solver-types/_swe-rebench-v2-harvest-state.js.map +1 -0
  556. package/dist/solver-types/_swe-rebench-v2-harvest.d.ts +123 -0
  557. package/dist/solver-types/_swe-rebench-v2-harvest.js +539 -0
  558. package/dist/solver-types/_swe-rebench-v2-harvest.js.map +1 -0
  559. package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +1 -1
  560. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +1 -1
  561. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -1
  562. package/dist/solver-types/_swe-rebench-v2-hunk-echo.d.ts +28 -0
  563. package/dist/solver-types/_swe-rebench-v2-hunk-echo.js +32 -0
  564. package/dist/solver-types/_swe-rebench-v2-hunk-echo.js.map +1 -0
  565. package/dist/solver-types/_swe-rebench-v2-lookup-tripwire.d.ts +16 -0
  566. package/dist/solver-types/_swe-rebench-v2-lookup-tripwire.js +18 -0
  567. package/dist/solver-types/_swe-rebench-v2-lookup-tripwire.js.map +1 -0
  568. package/dist/solver-types/_swe-rebench-v2-mineable-store-port.d.ts +74 -0
  569. package/dist/solver-types/_swe-rebench-v2-mineable-store-port.js +9 -0
  570. package/dist/solver-types/_swe-rebench-v2-mineable-store-port.js.map +1 -0
  571. package/dist/solver-types/_swe-rebench-v2-mineable-store.d.ts +51 -0
  572. package/dist/solver-types/_swe-rebench-v2-mineable-store.js +171 -0
  573. package/dist/solver-types/_swe-rebench-v2-mineable-store.js.map +1 -0
  574. package/dist/solver-types/_swe-rebench-v2-mint-cli.d.ts +82 -0
  575. package/dist/solver-types/_swe-rebench-v2-mint-cli.js +434 -0
  576. package/dist/solver-types/_swe-rebench-v2-mint-cli.js.map +1 -0
  577. package/dist/solver-types/_swe-rebench-v2-minted-environment-verifier.d.ts +25 -0
  578. package/dist/solver-types/_swe-rebench-v2-minted-environment-verifier.js +101 -0
  579. package/dist/solver-types/_swe-rebench-v2-minted-environment-verifier.js.map +1 -0
  580. package/dist/solver-types/_swe-rebench-v2-minted-pool.d.ts +179 -0
  581. package/dist/solver-types/_swe-rebench-v2-minted-pool.js +408 -0
  582. package/dist/solver-types/_swe-rebench-v2-minted-pool.js.map +1 -0
  583. package/dist/solver-types/_swe-rebench-v2-session-echo.d.ts +39 -0
  584. package/dist/solver-types/_swe-rebench-v2-session-echo.js +193 -0
  585. package/dist/solver-types/_swe-rebench-v2-session-echo.js.map +1 -0
  586. package/dist/solver-types/_swe-rebench-v2-substrate.d.ts +11 -0
  587. package/dist/solver-types/_swe-rebench-v2-substrate.js +24 -0
  588. package/dist/solver-types/_swe-rebench-v2-substrate.js.map +1 -1
  589. package/dist/solver-types/_swe-rebench-v2-synthetic-claim.d.ts +9 -0
  590. package/dist/solver-types/_swe-rebench-v2-synthetic-claim.js +16 -0
  591. package/dist/solver-types/_swe-rebench-v2-synthetic-claim.js.map +1 -0
  592. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +180 -1
  593. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +328 -14
  594. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  595. package/dist/solver-types/_swe-rebench-v2-verifier-facts.d.ts +93 -0
  596. package/dist/solver-types/_swe-rebench-v2-verifier-facts.js +583 -0
  597. package/dist/solver-types/_swe-rebench-v2-verifier-facts.js.map +1 -0
  598. package/dist/solver-types/_swe-rebench-v2-yield-report-data.d.ts +5 -0
  599. package/dist/solver-types/_swe-rebench-v2-yield-report-data.js +16 -0
  600. package/dist/solver-types/_swe-rebench-v2-yield-report-data.js.map +1 -0
  601. package/dist/solver-types/_swe-rebench-v2-yield.d.ts +51 -0
  602. package/dist/solver-types/_swe-rebench-v2-yield.js +53 -0
  603. package/dist/solver-types/_swe-rebench-v2-yield.js.map +1 -0
  604. package/dist/solver-types/index.js +2 -0
  605. package/dist/solver-types/index.js.map +1 -1
  606. package/dist/solver-types/jinn-repo-admit.d.ts +17 -0
  607. package/dist/solver-types/jinn-repo-admit.js +16 -0
  608. package/dist/solver-types/jinn-repo-admit.js.map +1 -0
  609. package/dist/solver-types/jinn-repo-auto.d.ts +63 -0
  610. package/dist/solver-types/jinn-repo-auto.js +166 -0
  611. package/dist/solver-types/jinn-repo-auto.js.map +1 -0
  612. package/dist/solver-types/jinn-repo-definition.d.ts +15 -0
  613. package/dist/solver-types/jinn-repo-definition.js +34 -0
  614. package/dist/solver-types/jinn-repo-definition.js.map +1 -0
  615. package/dist/solver-types/jinn-repo-extract.d.ts +16 -0
  616. package/dist/solver-types/jinn-repo-extract.js +33 -0
  617. package/dist/solver-types/jinn-repo-extract.js.map +1 -0
  618. package/dist/solver-types/jinn-repo-live-auto.d.ts +206 -0
  619. package/dist/solver-types/jinn-repo-live-auto.js +351 -0
  620. package/dist/solver-types/jinn-repo-live-auto.js.map +1 -0
  621. package/dist/solver-types/jinn-repo.d.ts +42 -0
  622. package/dist/solver-types/jinn-repo.js +42 -0
  623. package/dist/solver-types/jinn-repo.js.map +1 -0
  624. package/dist/solver-types/learner-loop-test.js +1 -1
  625. package/dist/solver-types/learner-loop-test.js.map +1 -1
  626. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v3.json +34 -0
  627. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v3.quality-screen.json +186 -0
  628. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v3.screening-report.json +488 -0
  629. package/dist/solver-types/solver-type.d.ts +2 -0
  630. package/dist/solver-types/swe-rebench-v2-auto.d.ts +13 -0
  631. package/dist/solver-types/swe-rebench-v2-auto.js +36 -1
  632. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
  633. package/dist/solver-types/swe-rebench-v2.d.ts +3 -0
  634. package/dist/solver-types/swe-rebench-v2.js +73 -27
  635. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  636. package/dist/solvernets/launched-record-dispatcher.d.ts +16 -0
  637. package/dist/solvernets/launched-record-dispatcher.js +30 -1
  638. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  639. package/dist/solvernets/store.d.ts +1 -1
  640. package/dist/solvernets/store.js +1 -1
  641. package/dist/solvernets/store.js.map +1 -1
  642. package/dist/spend/ai-units.d.ts +38 -1
  643. package/dist/spend/ai-units.js +32 -2
  644. package/dist/spend/ai-units.js.map +1 -1
  645. package/dist/spend/credential.d.ts +2 -2
  646. package/dist/spend/credential.js +9 -3
  647. package/dist/spend/credential.js.map +1 -1
  648. package/dist/spend/spend-cap.d.ts +10 -0
  649. package/dist/spend/spend-cap.js +13 -0
  650. package/dist/spend/spend-cap.js.map +1 -0
  651. package/dist/spend/usage.js +39 -3
  652. package/dist/spend/usage.js.map +1 -1
  653. package/dist/store/store.d.ts +73 -1
  654. package/dist/store/store.js +197 -6
  655. package/dist/store/store.js.map +1 -1
  656. package/dist/task-creator/environment/adapters.d.ts +139 -0
  657. package/dist/task-creator/environment/adapters.js +446 -0
  658. package/dist/task-creator/environment/adapters.js.map +1 -0
  659. package/dist/task-creator/environment/build.d.ts +5 -0
  660. package/dist/task-creator/environment/build.js +53 -0
  661. package/dist/task-creator/environment/build.js.map +1 -0
  662. package/dist/task-creator/environment/contracts.d.ts +1338 -0
  663. package/dist/task-creator/environment/contracts.js +207 -0
  664. package/dist/task-creator/environment/contracts.js.map +1 -0
  665. package/dist/task-creator/environment/github.d.ts +25 -0
  666. package/dist/task-creator/environment/github.js +67 -0
  667. package/dist/task-creator/environment/github.js.map +1 -0
  668. package/dist/task-creator/environment/interfaces.d.ts +60 -0
  669. package/dist/task-creator/environment/interfaces.js +3 -0
  670. package/dist/task-creator/environment/interfaces.js.map +1 -0
  671. package/dist/task-creator/environment/jinn-differential-policy.d.ts +22 -0
  672. package/dist/task-creator/environment/jinn-differential-policy.js +73 -0
  673. package/dist/task-creator/environment/jinn-differential-policy.js.map +1 -0
  674. package/dist/task-creator/environment/policy.d.ts +38 -0
  675. package/dist/task-creator/environment/policy.js +51 -0
  676. package/dist/task-creator/environment/policy.js.map +1 -0
  677. package/dist/task-creator/environment/publication.d.ts +39 -0
  678. package/dist/task-creator/environment/publication.js +139 -0
  679. package/dist/task-creator/environment/publication.js.map +1 -0
  680. package/dist/task-creator/environment/publish-cli.d.ts +427 -0
  681. package/dist/task-creator/environment/publish-cli.js +180 -0
  682. package/dist/task-creator/environment/publish-cli.js.map +1 -0
  683. package/dist/task-creator/environment/recipes.d.ts +19 -0
  684. package/dist/task-creator/environment/recipes.js +122 -0
  685. package/dist/task-creator/environment/recipes.js.map +1 -0
  686. package/dist/task-creator/environment/resolver.d.ts +53 -0
  687. package/dist/task-creator/environment/resolver.js +57 -0
  688. package/dist/task-creator/environment/resolver.js.map +1 -0
  689. package/dist/task-creator/proofs/differential-receipt-bound-proof.d.ts +27 -0
  690. package/dist/task-creator/proofs/differential-receipt-bound-proof.js +86 -0
  691. package/dist/task-creator/proofs/differential-receipt-bound-proof.js.map +1 -0
  692. package/dist/task-creator/proofs/ipfs-cid.d.ts +7 -0
  693. package/dist/task-creator/proofs/ipfs-cid.js +98 -0
  694. package/dist/task-creator/proofs/ipfs-cid.js.map +1 -0
  695. package/dist/task-creator/proofs/live-proof.d.ts +99 -0
  696. package/dist/task-creator/proofs/live-proof.js +419 -0
  697. package/dist/task-creator/proofs/live-proof.js.map +1 -0
  698. package/dist/task-creator/proofs/public-repo-fixtures.d.ts +53 -0
  699. package/dist/task-creator/proofs/public-repo-fixtures.js +93 -0
  700. package/dist/task-creator/proofs/public-repo-fixtures.js.map +1 -0
  701. package/dist/task-creator/proofs/vitest-json-fixture.d.ts +40 -0
  702. package/dist/task-creator/proofs/vitest-json-fixture.js +115 -0
  703. package/dist/task-creator/proofs/vitest-json-fixture.js.map +1 -0
  704. package/dist/trajectory/emit.d.ts +6 -0
  705. package/dist/trajectory/emit.js +18 -1
  706. package/dist/trajectory/emit.js.map +1 -1
  707. package/dist/trajectory/harness-bundle-schema.d.ts +3 -3
  708. package/dist/trajectory/harness-bundle-schema.js +1 -1
  709. package/dist/trajectory/harness-bundle-schema.js.map +1 -1
  710. package/dist/trajectory/hash-chain.d.ts +1 -18
  711. package/dist/trajectory/hash-chain.js +1 -22
  712. package/dist/trajectory/hash-chain.js.map +1 -1
  713. package/dist/trajectory/index.d.ts +2 -0
  714. package/dist/trajectory/index.js +2 -0
  715. package/dist/trajectory/index.js.map +1 -1
  716. package/dist/trajectory/processors/identity-scrub.js +22 -3
  717. package/dist/trajectory/processors/identity-scrub.js.map +1 -1
  718. package/dist/trajectory/schema.d.ts +1 -598
  719. package/dist/trajectory/schema.js +1 -102
  720. package/dist/trajectory/schema.js.map +1 -1
  721. package/dist/trajectory/scrub/build.d.ts +1 -0
  722. package/dist/trajectory/scrub/build.js +2 -0
  723. package/dist/trajectory/scrub/build.js.map +1 -0
  724. package/dist/trajectory/scrub/emit-scrub.d.ts +1 -0
  725. package/dist/trajectory/scrub/emit-scrub.js +2 -0
  726. package/dist/trajectory/scrub/emit-scrub.js.map +1 -0
  727. package/dist/trajectory/scrub/key-policy.d.ts +1 -0
  728. package/dist/trajectory/scrub/key-policy.js +2 -0
  729. package/dist/trajectory/scrub/key-policy.js.map +1 -0
  730. package/dist/trajectory/scrub/layer2.d.ts +1 -0
  731. package/dist/trajectory/scrub/layer2.js +2 -0
  732. package/dist/trajectory/scrub/layer2.js.map +1 -0
  733. package/dist/trajectory/scrub/ml-pii-stage.d.ts +1 -0
  734. package/dist/trajectory/scrub/ml-pii-stage.js +2 -0
  735. package/dist/trajectory/scrub/ml-pii-stage.js.map +1 -0
  736. package/dist/trajectory/scrub/pii-build.d.ts +1 -0
  737. package/dist/trajectory/scrub/pii-build.js +2 -0
  738. package/dist/trajectory/scrub/pii-build.js.map +1 -0
  739. package/dist/trajectory/scrub/pipeline.d.ts +1 -0
  740. package/dist/trajectory/scrub/pipeline.js +2 -0
  741. package/dist/trajectory/scrub/pipeline.js.map +1 -0
  742. package/dist/trajectory/scrub/plain-patterns-stage.d.ts +1 -0
  743. package/dist/trajectory/scrub/plain-patterns-stage.js +2 -0
  744. package/dist/trajectory/scrub/plain-patterns-stage.js.map +1 -0
  745. package/dist/trajectory/scrub/secretlint-stage.d.ts +1 -0
  746. package/dist/trajectory/scrub/secretlint-stage.js +2 -0
  747. package/dist/trajectory/scrub/secretlint-stage.js.map +1 -0
  748. package/dist/trajectory/scrub/transformers-detector.d.ts +1 -0
  749. package/dist/trajectory/scrub/transformers-detector.js +2 -0
  750. package/dist/trajectory/scrub/transformers-detector.js.map +1 -0
  751. package/dist/trajectory/scrub/types.d.ts +1 -0
  752. package/dist/trajectory/scrub/types.js +2 -0
  753. package/dist/trajectory/scrub/types.js.map +1 -0
  754. package/dist/trajectory/secret-scrub.d.ts +4 -6
  755. package/dist/trajectory/secret-scrub.js +52 -12
  756. package/dist/trajectory/secret-scrub.js.map +1 -1
  757. package/dist/trajectory/span-profile.js +14 -0
  758. package/dist/trajectory/span-profile.js.map +1 -1
  759. package/dist/trajectory/transcript-parsers/aider-history.d.ts +1 -42
  760. package/dist/trajectory/transcript-parsers/aider-history.js +1 -181
  761. package/dist/trajectory/transcript-parsers/aider-history.js.map +1 -1
  762. package/dist/trajectory/transcript-parsers/claude-code-jsonl.d.ts +1 -37
  763. package/dist/trajectory/transcript-parsers/claude-code-jsonl.js +1 -142
  764. package/dist/trajectory/transcript-parsers/claude-code-jsonl.js.map +1 -1
  765. package/dist/trajectory/transcript-parsers/codex-session.d.ts +1 -42
  766. package/dist/trajectory/transcript-parsers/codex-session.js +1 -235
  767. package/dist/trajectory/transcript-parsers/codex-session.js.map +1 -1
  768. package/dist/trajectory/transcript-parsers/continue-devdata.d.ts +1 -41
  769. package/dist/trajectory/transcript-parsers/continue-devdata.js +1 -190
  770. package/dist/trajectory/transcript-parsers/continue-devdata.js.map +1 -1
  771. package/dist/trajectory/transcript-parsers/cursor-sqlite.d.ts +1 -38
  772. package/dist/trajectory/transcript-parsers/cursor-sqlite.js +1 -118
  773. package/dist/trajectory/transcript-parsers/cursor-sqlite.js.map +1 -1
  774. package/dist/trajectory/transcript-parsers/gemini-session.d.ts +1 -35
  775. package/dist/trajectory/transcript-parsers/gemini-session.js +1 -137
  776. package/dist/trajectory/transcript-parsers/gemini-session.js.map +1 -1
  777. package/dist/trajectory/transcript-parsers/types.d.ts +1 -101
  778. package/dist/trajectory/transcript-parsers/types.js +1 -32
  779. package/dist/trajectory/transcript-parsers/types.js.map +1 -1
  780. package/dist/trajectory/transcript-to-spans/attrs.d.ts +1 -0
  781. package/dist/trajectory/transcript-to-spans/attrs.js +2 -0
  782. package/dist/trajectory/transcript-to-spans/attrs.js.map +1 -0
  783. package/dist/trajectory/transcript-to-spans/claude-code-stream-json.d.ts +1 -0
  784. package/dist/trajectory/transcript-to-spans/claude-code-stream-json.js +2 -0
  785. package/dist/trajectory/transcript-to-spans/claude-code-stream-json.js.map +1 -0
  786. package/dist/trajectory/transcript-to-spans/codex-exec-json.d.ts +1 -0
  787. package/dist/trajectory/transcript-to-spans/codex-exec-json.js +2 -0
  788. package/dist/trajectory/transcript-to-spans/codex-exec-json.js.map +1 -0
  789. package/dist/trajectory/transcript-to-spans/hermes-session-json.d.ts +48 -0
  790. package/dist/trajectory/transcript-to-spans/hermes-session-json.js +193 -0
  791. package/dist/trajectory/transcript-to-spans/hermes-session-json.js.map +1 -0
  792. package/dist/trajectory/transcript-to-spans/index.d.ts +38 -0
  793. package/dist/trajectory/transcript-to-spans/index.js +77 -0
  794. package/dist/trajectory/transcript-to-spans/index.js.map +1 -0
  795. package/dist/trajectory/transcript-to-spans/types.d.ts +16 -0
  796. package/dist/trajectory/transcript-to-spans/types.js +11 -0
  797. package/dist/trajectory/transcript-to-spans/types.js.map +1 -0
  798. package/dist/trajectory/transcript-watcher.d.ts +41 -0
  799. package/dist/trajectory/transcript-watcher.js +34 -0
  800. package/dist/trajectory/transcript-watcher.js.map +1 -1
  801. package/dist/tx-retry.d.ts +18 -0
  802. package/dist/tx-retry.js +52 -12
  803. package/dist/tx-retry.js.map +1 -1
  804. package/dist/types/envelope.d.ts +3 -2785
  805. package/dist/types/envelope.js +3 -160
  806. package/dist/types/envelope.js.map +1 -1
  807. package/dist/types/manifest.d.ts +1 -0
  808. package/dist/types/manifest.js +2 -0
  809. package/dist/types/manifest.js.map +1 -0
  810. package/dist/types/payloads/index.d.ts +1 -1
  811. package/dist/types/payloads/index.js +7 -1
  812. package/dist/types/payloads/index.js.map +1 -1
  813. package/dist/types/payloads/portfolio-v0.d.ts +4 -4
  814. package/dist/types/payloads/portfolio-v0.js +1 -1
  815. package/dist/types/payloads/portfolio-v0.js.map +1 -1
  816. package/dist/types/payloads/prediction-apy-v0.d.ts +4 -4
  817. package/dist/types/payloads/prediction-apy-v0.js +1 -1
  818. package/dist/types/payloads/prediction-apy-v0.js.map +1 -1
  819. package/dist/types/payloads/prediction-v0.d.ts +4 -4
  820. package/dist/types/payloads/prediction-v0.js +1 -1
  821. package/dist/types/payloads/prediction-v0.js.map +1 -1
  822. package/dist/types/portfolio.d.ts +1 -1
  823. package/dist/types/portfolio.js +1 -1
  824. package/dist/types/portfolio.js.map +1 -1
  825. package/dist/types/prediction-apy.d.ts +1 -1
  826. package/dist/types/prediction-apy.js +1 -1
  827. package/dist/types/prediction-apy.js.map +1 -1
  828. package/dist/types/prediction.d.ts +1 -1
  829. package/dist/types/prediction.js +1 -1
  830. package/dist/types/prediction.js.map +1 -1
  831. package/dist/types/session-provenance.d.ts +2 -71
  832. package/dist/types/session-provenance.js +2 -18
  833. package/dist/types/session-provenance.js.map +1 -1
  834. package/dist/types/skill-artifact.d.ts +5 -0
  835. package/dist/types/skill-artifact.js +6 -0
  836. package/dist/types/skill-artifact.js.map +1 -0
  837. package/dist/types/task-document.d.ts +315 -1
  838. package/dist/types/task-document.js +9 -1
  839. package/dist/types/task-document.js.map +1 -1
  840. package/dist/types/task-run-read-model.d.ts +21 -0
  841. package/dist/types/task-run-read-model.js +2 -0
  842. package/dist/types/task-run-read-model.js.map +1 -0
  843. package/dist/types/task-run.d.ts +88 -0
  844. package/dist/types/task-run.js +2 -0
  845. package/dist/types/task-run.js.map +1 -0
  846. package/dist/types/task.d.ts +36 -1
  847. package/dist/types/task.js +1 -1
  848. package/dist/types/task.js.map +1 -1
  849. package/dist/types/window.d.ts +2 -12
  850. package/dist/types/window.js +2 -5
  851. package/dist/types/window.js.map +1 -1
  852. package/dist/util/redact-rpc-urls.d.ts +1 -1
  853. package/dist/util/redact-rpc-urls.js +57 -2
  854. package/dist/util/redact-rpc-urls.js.map +1 -1
  855. package/dist/vendor/@jinn-network/core/dist/canonical-json.d.ts +1 -0
  856. package/dist/vendor/@jinn-network/core/dist/canonical-json.js +67 -0
  857. package/dist/vendor/@jinn-network/core/dist/captured-task.d.ts +140 -0
  858. package/dist/vendor/@jinn-network/core/dist/captured-task.js +122 -0
  859. package/dist/vendor/@jinn-network/core/dist/contribution-store.d.ts +97 -0
  860. package/dist/vendor/@jinn-network/core/dist/contribution-store.js +770 -0
  861. package/dist/vendor/@jinn-network/core/dist/corpus-read/acquire.d.ts +39 -0
  862. package/dist/vendor/@jinn-network/core/dist/corpus-read/acquire.js +212 -0
  863. package/dist/vendor/@jinn-network/core/dist/corpus-read/cache.d.ts +14 -0
  864. package/dist/vendor/@jinn-network/core/dist/corpus-read/cache.js +17 -0
  865. package/dist/vendor/@jinn-network/core/dist/corpus-read/capture-meta.d.ts +16 -0
  866. package/dist/vendor/@jinn-network/core/dist/corpus-read/capture-meta.js +18 -0
  867. package/dist/vendor/@jinn-network/core/dist/corpus-read/create-corpus.d.ts +2 -0
  868. package/dist/vendor/@jinn-network/core/dist/corpus-read/create-corpus.js +97 -0
  869. package/dist/vendor/@jinn-network/core/dist/corpus-read/fetch-artifact.d.ts +21 -0
  870. package/dist/vendor/@jinn-network/core/dist/corpus-read/fetch-artifact.js +32 -0
  871. package/dist/vendor/@jinn-network/core/dist/corpus-read/fetch.d.ts +12 -0
  872. package/dist/vendor/@jinn-network/core/dist/corpus-read/fetch.js +24 -0
  873. package/dist/vendor/@jinn-network/core/dist/corpus-read/http-discovery.d.ts +9 -0
  874. package/dist/vendor/@jinn-network/core/dist/corpus-read/http-discovery.js +128 -0
  875. package/dist/vendor/@jinn-network/core/dist/corpus-read/index.d.ts +10 -0
  876. package/dist/vendor/@jinn-network/core/dist/corpus-read/index.js +10 -0
  877. package/dist/vendor/@jinn-network/core/dist/corpus-read/ipfs.d.ts +14 -0
  878. package/dist/vendor/@jinn-network/core/dist/corpus-read/ipfs.js +81 -0
  879. package/dist/vendor/@jinn-network/core/dist/corpus-read/route-resolver.d.ts +16 -0
  880. package/dist/vendor/@jinn-network/core/dist/corpus-read/route-resolver.js +19 -0
  881. package/dist/vendor/@jinn-network/core/dist/corpus-read/types.d.ts +177 -0
  882. package/dist/vendor/@jinn-network/core/dist/corpus-read/types.js +42 -0
  883. package/dist/vendor/@jinn-network/core/dist/envelope.d.ts +134 -0
  884. package/dist/vendor/@jinn-network/core/dist/envelope.js +162 -0
  885. package/dist/vendor/@jinn-network/core/dist/evidence-adapter.d.ts +26 -0
  886. package/dist/vendor/@jinn-network/core/dist/evidence-adapter.js +321 -0
  887. package/dist/vendor/@jinn-network/core/dist/evidence-filesystem.d.ts +40 -0
  888. package/dist/vendor/@jinn-network/core/dist/evidence-filesystem.js +267 -0
  889. package/dist/vendor/@jinn-network/core/dist/evidence-index.d.ts +117 -0
  890. package/dist/vendor/@jinn-network/core/dist/evidence-index.js +1083 -0
  891. package/dist/vendor/@jinn-network/core/dist/evidence-store-lock.d.ts +2 -0
  892. package/dist/vendor/@jinn-network/core/dist/evidence-store-lock.js +208 -0
  893. package/dist/vendor/@jinn-network/core/dist/execution-envelope.d.ts +3142 -0
  894. package/dist/vendor/@jinn-network/core/dist/execution-envelope.js +203 -0
  895. package/dist/vendor/@jinn-network/core/dist/index.d.ts +12 -0
  896. package/dist/vendor/@jinn-network/core/dist/index.js +12 -0
  897. package/dist/vendor/@jinn-network/core/dist/manifest.d.ts +75 -0
  898. package/dist/vendor/@jinn-network/core/dist/manifest.js +184 -0
  899. package/dist/vendor/@jinn-network/core/dist/paired.d.ts +68 -0
  900. package/dist/vendor/@jinn-network/core/dist/paired.js +92 -0
  901. package/dist/vendor/@jinn-network/core/dist/scrub/apply-dispositions.d.ts +74 -0
  902. package/dist/vendor/@jinn-network/core/dist/scrub/apply-dispositions.js +309 -0
  903. package/dist/vendor/@jinn-network/core/dist/scrub/build.d.ts +75 -0
  904. package/dist/vendor/@jinn-network/core/dist/scrub/build.js +143 -0
  905. package/dist/vendor/@jinn-network/core/dist/scrub/checksummed-instruments-detector.d.ts +13 -0
  906. package/dist/vendor/@jinn-network/core/dist/scrub/checksummed-instruments-detector.js +119 -0
  907. package/dist/vendor/@jinn-network/core/dist/scrub/data/bip39-english.d.ts +2 -0
  908. package/dist/vendor/@jinn-network/core/dist/scrub/data/bip39-english.js +2051 -0
  909. package/dist/vendor/@jinn-network/core/dist/scrub/data/gitleaks-rules.d.ts +56 -0
  910. package/dist/vendor/@jinn-network/core/dist/scrub/data/gitleaks-rules.js +67 -0
  911. package/dist/vendor/@jinn-network/core/dist/scrub/emit-scrub.d.ts +52 -0
  912. package/dist/vendor/@jinn-network/core/dist/scrub/emit-scrub.js +122 -0
  913. package/dist/vendor/@jinn-network/core/dist/scrub/eval/findings-from-scrub.d.ts +18 -0
  914. package/dist/vendor/@jinn-network/core/dist/scrub/eval/findings-from-scrub.js +99 -0
  915. package/dist/vendor/@jinn-network/core/dist/scrub/eval/fixtures.d.ts +14 -0
  916. package/dist/vendor/@jinn-network/core/dist/scrub/eval/fixtures.js +159 -0
  917. package/dist/vendor/@jinn-network/core/dist/scrub/eval/index.d.ts +6 -0
  918. package/dist/vendor/@jinn-network/core/dist/scrub/eval/index.js +6 -0
  919. package/dist/vendor/@jinn-network/core/dist/scrub/eval/local-corpus.d.ts +15 -0
  920. package/dist/vendor/@jinn-network/core/dist/scrub/eval/local-corpus.js +29 -0
  921. package/dist/vendor/@jinn-network/core/dist/scrub/eval/metrics.d.ts +19 -0
  922. package/dist/vendor/@jinn-network/core/dist/scrub/eval/metrics.js +77 -0
  923. package/dist/vendor/@jinn-network/core/dist/scrub/eval/run-bench.d.ts +8 -0
  924. package/dist/vendor/@jinn-network/core/dist/scrub/eval/run-bench.js +125 -0
  925. package/dist/vendor/@jinn-network/core/dist/scrub/eval/types.d.ts +69 -0
  926. package/dist/vendor/@jinn-network/core/dist/scrub/eval/types.js +7 -0
  927. package/dist/vendor/@jinn-network/core/dist/scrub/finding.d.ts +38 -0
  928. package/dist/vendor/@jinn-network/core/dist/scrub/finding.js +7 -0
  929. package/dist/vendor/@jinn-network/core/dist/scrub/git-identity-detector.d.ts +16 -0
  930. package/dist/vendor/@jinn-network/core/dist/scrub/git-identity-detector.js +116 -0
  931. package/dist/vendor/@jinn-network/core/dist/scrub/gitleaks-detector.d.ts +13 -0
  932. package/dist/vendor/@jinn-network/core/dist/scrub/gitleaks-detector.js +45 -0
  933. package/dist/vendor/@jinn-network/core/dist/scrub/gliner-detector.d.ts +65 -0
  934. package/dist/vendor/@jinn-network/core/dist/scrub/gliner-detector.js +129 -0
  935. package/dist/vendor/@jinn-network/core/dist/scrub/index.d.ts +26 -0
  936. package/dist/vendor/@jinn-network/core/dist/scrub/index.js +26 -0
  937. package/dist/vendor/@jinn-network/core/dist/scrub/ip-address-detector.d.ts +12 -0
  938. package/dist/vendor/@jinn-network/core/dist/scrub/ip-address-detector.js +81 -0
  939. package/dist/vendor/@jinn-network/core/dist/scrub/key-policy.d.ts +30 -0
  940. package/dist/vendor/@jinn-network/core/dist/scrub/key-policy.js +72 -0
  941. package/dist/vendor/@jinn-network/core/dist/scrub/known-identity-detector.d.ts +66 -0
  942. package/dist/vendor/@jinn-network/core/dist/scrub/known-identity-detector.js +284 -0
  943. package/dist/vendor/@jinn-network/core/dist/scrub/layer2.d.ts +18 -0
  944. package/dist/vendor/@jinn-network/core/dist/scrub/layer2.js +28 -0
  945. package/dist/vendor/@jinn-network/core/dist/scrub/ml-pii-stage.d.ts +42 -0
  946. package/dist/vendor/@jinn-network/core/dist/scrub/ml-pii-stage.js +119 -0
  947. package/dist/vendor/@jinn-network/core/dist/scrub/pii-build.d.ts +47 -0
  948. package/dist/vendor/@jinn-network/core/dist/scrub/pii-build.js +67 -0
  949. package/dist/vendor/@jinn-network/core/dist/scrub/pipeline.d.ts +77 -0
  950. package/dist/vendor/@jinn-network/core/dist/scrub/pipeline.js +225 -0
  951. package/dist/vendor/@jinn-network/core/dist/scrub/plain-patterns-stage.d.ts +33 -0
  952. package/dist/vendor/@jinn-network/core/dist/scrub/plain-patterns-stage.js +88 -0
  953. package/dist/vendor/@jinn-network/core/dist/scrub/policy.d.ts +28 -0
  954. package/dist/vendor/@jinn-network/core/dist/scrub/policy.js +156 -0
  955. package/dist/vendor/@jinn-network/core/dist/scrub/provenance.d.ts +53 -0
  956. package/dist/vendor/@jinn-network/core/dist/scrub/provenance.js +83 -0
  957. package/dist/vendor/@jinn-network/core/dist/scrub/reject-classes-detector.d.ts +11 -0
  958. package/dist/vendor/@jinn-network/core/dist/scrub/reject-classes-detector.js +195 -0
  959. package/dist/vendor/@jinn-network/core/dist/scrub/reject-publish-error.d.ts +30 -0
  960. package/dist/vendor/@jinn-network/core/dist/scrub/reject-publish-error.js +47 -0
  961. package/dist/vendor/@jinn-network/core/dist/scrub/review-queue.d.ts +90 -0
  962. package/dist/vendor/@jinn-network/core/dist/scrub/review-queue.js +259 -0
  963. package/dist/vendor/@jinn-network/core/dist/scrub/secretlint-stage.d.ts +21 -0
  964. package/dist/vendor/@jinn-network/core/dist/scrub/secretlint-stage.js +264 -0
  965. package/dist/vendor/@jinn-network/core/dist/scrub/transformers-detector.d.ts +41 -0
  966. package/dist/vendor/@jinn-network/core/dist/scrub/transformers-detector.js +77 -0
  967. package/dist/vendor/@jinn-network/core/dist/scrub/types.d.ts +36 -0
  968. package/dist/vendor/@jinn-network/core/dist/scrub/types.js +1 -0
  969. package/dist/vendor/@jinn-network/core/dist/scrub/url-credentials-detector.d.ts +9 -0
  970. package/dist/vendor/@jinn-network/core/dist/scrub/url-credentials-detector.js +66 -0
  971. package/dist/vendor/@jinn-network/core/dist/session-provenance.d.ts +75 -0
  972. package/dist/vendor/@jinn-network/core/dist/session-provenance.js +20 -0
  973. package/dist/vendor/@jinn-network/core/dist/skill-artifact.d.ts +442 -0
  974. package/dist/vendor/@jinn-network/core/dist/skill-artifact.js +136 -0
  975. package/dist/vendor/@jinn-network/core/dist/trajectory/hash-chain.d.ts +18 -0
  976. package/dist/vendor/@jinn-network/core/dist/trajectory/hash-chain.js +47 -0
  977. package/dist/vendor/@jinn-network/core/dist/trajectory/index.d.ts +4 -0
  978. package/dist/vendor/@jinn-network/core/dist/trajectory/index.js +4 -0
  979. package/dist/vendor/@jinn-network/core/dist/trajectory/schema.d.ts +681 -0
  980. package/dist/vendor/@jinn-network/core/dist/trajectory/schema.js +119 -0
  981. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/aider-history.d.ts +42 -0
  982. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/aider-history.js +181 -0
  983. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/claude-code-jsonl.d.ts +37 -0
  984. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/claude-code-jsonl.js +142 -0
  985. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/codex-session.d.ts +42 -0
  986. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/codex-session.js +235 -0
  987. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/continue-devdata.d.ts +41 -0
  988. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/continue-devdata.js +190 -0
  989. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/cursor-sqlite.d.ts +38 -0
  990. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/cursor-sqlite.js +118 -0
  991. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/gemini-session.d.ts +35 -0
  992. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/gemini-session.js +137 -0
  993. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/index.d.ts +7 -0
  994. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/index.js +7 -0
  995. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/types.d.ts +101 -0
  996. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-parsers/types.js +32 -0
  997. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/attrs.d.ts +4 -0
  998. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/attrs.js +30 -0
  999. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/claude-code-stream-json.d.ts +8 -0
  1000. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/claude-code-stream-json.js +162 -0
  1001. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/codex-exec-json.d.ts +8 -0
  1002. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/codex-exec-json.js +253 -0
  1003. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/index.d.ts +4 -0
  1004. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/index.js +4 -0
  1005. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/types.d.ts +18 -0
  1006. package/dist/vendor/@jinn-network/core/dist/trajectory/transcript-to-spans/types.js +1 -0
  1007. package/dist/vendor/@jinn-network/core/dist/window.d.ts +12 -0
  1008. package/dist/vendor/@jinn-network/core/dist/window.js +5 -0
  1009. package/dist/vendor/@jinn-network/core/package.json +38 -0
  1010. package/dist/vendor/@jinn-network/plugin/dist/eligibility.d.ts +12 -0
  1011. package/dist/vendor/@jinn-network/plugin/dist/eligibility.js +12 -0
  1012. package/dist/vendor/@jinn-network/plugin/dist/history.d.ts +35 -0
  1013. package/dist/vendor/@jinn-network/plugin/dist/history.js +140 -0
  1014. package/dist/vendor/@jinn-network/plugin/dist/index.d.ts +32 -0
  1015. package/dist/vendor/@jinn-network/plugin/dist/index.js +15 -0
  1016. package/dist/vendor/@jinn-network/plugin/dist/outcome.d.ts +26 -0
  1017. package/dist/vendor/@jinn-network/plugin/dist/outcome.js +23 -0
  1018. package/dist/vendor/@jinn-network/plugin/dist/pickup.d.ts +110 -0
  1019. package/dist/vendor/@jinn-network/plugin/dist/pickup.js +390 -0
  1020. package/dist/vendor/@jinn-network/plugin/dist/plugin.d.ts +161 -0
  1021. package/dist/vendor/@jinn-network/plugin/dist/plugin.js +675 -0
  1022. package/dist/vendor/@jinn-network/plugin/dist/ports/contribution-port.d.ts +53 -0
  1023. package/dist/vendor/@jinn-network/plugin/dist/ports/contribution-port.js +14 -0
  1024. package/dist/vendor/@jinn-network/plugin/dist/ports/corpus-port.d.ts +68 -0
  1025. package/dist/vendor/@jinn-network/plugin/dist/ports/corpus-port.js +1 -0
  1026. package/dist/vendor/@jinn-network/plugin/dist/ports/evidence-port.d.ts +17 -0
  1027. package/dist/vendor/@jinn-network/plugin/dist/ports/evidence-port.js +1 -0
  1028. package/dist/vendor/@jinn-network/plugin/dist/ports/local-learning-port.d.ts +22 -0
  1029. package/dist/vendor/@jinn-network/plugin/dist/ports/local-learning-port.js +1 -0
  1030. package/dist/vendor/@jinn-network/plugin/dist/ports/skills-port.d.ts +12 -0
  1031. package/dist/vendor/@jinn-network/plugin/dist/ports/skills-port.js +1 -0
  1032. package/dist/vendor/@jinn-network/plugin/dist/schemas/contribution-candidate.d.ts +116 -0
  1033. package/dist/vendor/@jinn-network/plugin/dist/schemas/contribution-candidate.js +63 -0
  1034. package/dist/vendor/@jinn-network/plugin/dist/schemas/eligibility-verdict.d.ts +8 -0
  1035. package/dist/vendor/@jinn-network/plugin/dist/schemas/eligibility-verdict.js +7 -0
  1036. package/dist/vendor/@jinn-network/plugin/dist/schemas/episode.d.ts +432 -0
  1037. package/dist/vendor/@jinn-network/plugin/dist/schemas/episode.js +452 -0
  1038. package/dist/vendor/@jinn-network/plugin/dist/schemas/history-entry.d.ts +40 -0
  1039. package/dist/vendor/@jinn-network/plugin/dist/schemas/history-entry.js +30 -0
  1040. package/dist/vendor/@jinn-network/plugin/dist/schemas/knowledge-hit.d.ts +29 -0
  1041. package/dist/vendor/@jinn-network/plugin/dist/schemas/knowledge-hit.js +31 -0
  1042. package/dist/vendor/@jinn-network/plugin/dist/schemas/knowledge-packet.d.ts +80 -0
  1043. package/dist/vendor/@jinn-network/plugin/dist/schemas/knowledge-packet.js +220 -0
  1044. package/dist/vendor/@jinn-network/plugin/dist/schemas/pickup-config.d.ts +20 -0
  1045. package/dist/vendor/@jinn-network/plugin/dist/schemas/pickup-config.js +34 -0
  1046. package/dist/vendor/@jinn-network/plugin/dist/schemas/session-summary.d.ts +17 -0
  1047. package/dist/vendor/@jinn-network/plugin/dist/schemas/session-summary.js +19 -0
  1048. package/dist/vendor/@jinn-network/plugin/dist/testing/contract-kits.d.ts +12 -0
  1049. package/dist/vendor/@jinn-network/plugin/dist/testing/contract-kits.js +201 -0
  1050. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-contribution.d.ts +93 -0
  1051. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-contribution.js +104 -0
  1052. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-corpus.d.ts +49 -0
  1053. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-corpus.js +58 -0
  1054. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-evidence.d.ts +335 -0
  1055. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-evidence.js +23 -0
  1056. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-local-learning.d.ts +25 -0
  1057. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-local-learning.js +30 -0
  1058. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-skills.d.ts +9 -0
  1059. package/dist/vendor/@jinn-network/plugin/dist/testing/in-memory-skills.js +16 -0
  1060. package/dist/vendor/@jinn-network/plugin/dist/testing.d.ts +6 -0
  1061. package/dist/vendor/@jinn-network/plugin/dist/testing.js +8 -0
  1062. package/dist/vendor/@jinn-network/plugin/dist/visibility.d.ts +7 -0
  1063. package/dist/vendor/@jinn-network/plugin/dist/visibility.js +9 -0
  1064. package/dist/vendor/@jinn-network/plugin/package.json +22 -0
  1065. package/dist/vendor/@jinn-network/sdk/dist/benchmarking.d.ts +1621 -0
  1066. package/dist/vendor/@jinn-network/sdk/dist/benchmarking.js +285 -0
  1067. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +7 -7
  1068. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +1 -1
  1069. package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +3 -2
  1070. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +49 -0
  1071. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.d.ts +214 -0
  1072. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.js +75 -0
  1073. package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +1 -1
  1074. package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +1 -1
  1075. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.d.ts +140 -0
  1076. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.js +52 -0
  1077. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +6 -6
  1078. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +1 -1
  1079. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +9 -9
  1080. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +1 -1
  1081. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +1 -1
  1082. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +1 -1
  1083. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +61 -61
  1084. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +1 -1
  1085. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.d.ts +4 -0
  1086. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.js +2 -0
  1087. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +31 -31
  1088. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -1
  1089. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +34 -6
  1090. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +28 -5
  1091. package/dist/vendor/@jinn-network/sdk/package.json +9 -1
  1092. package/node_modules/@jinn-network/core/dist/canonical-json.d.ts +1 -0
  1093. package/node_modules/@jinn-network/core/dist/canonical-json.js +67 -0
  1094. package/node_modules/@jinn-network/core/dist/captured-task.d.ts +140 -0
  1095. package/node_modules/@jinn-network/core/dist/captured-task.js +122 -0
  1096. package/node_modules/@jinn-network/core/dist/contribution-store.d.ts +97 -0
  1097. package/node_modules/@jinn-network/core/dist/contribution-store.js +770 -0
  1098. package/node_modules/@jinn-network/core/dist/corpus-read/acquire.d.ts +39 -0
  1099. package/node_modules/@jinn-network/core/dist/corpus-read/acquire.js +212 -0
  1100. package/node_modules/@jinn-network/core/dist/corpus-read/cache.d.ts +14 -0
  1101. package/node_modules/@jinn-network/core/dist/corpus-read/cache.js +17 -0
  1102. package/node_modules/@jinn-network/core/dist/corpus-read/capture-meta.d.ts +16 -0
  1103. package/node_modules/@jinn-network/core/dist/corpus-read/capture-meta.js +18 -0
  1104. package/node_modules/@jinn-network/core/dist/corpus-read/create-corpus.d.ts +2 -0
  1105. package/node_modules/@jinn-network/core/dist/corpus-read/create-corpus.js +97 -0
  1106. package/node_modules/@jinn-network/core/dist/corpus-read/fetch-artifact.d.ts +21 -0
  1107. package/node_modules/@jinn-network/core/dist/corpus-read/fetch-artifact.js +32 -0
  1108. package/node_modules/@jinn-network/core/dist/corpus-read/fetch.d.ts +12 -0
  1109. package/node_modules/@jinn-network/core/dist/corpus-read/fetch.js +24 -0
  1110. package/node_modules/@jinn-network/core/dist/corpus-read/http-discovery.d.ts +9 -0
  1111. package/node_modules/@jinn-network/core/dist/corpus-read/http-discovery.js +128 -0
  1112. package/node_modules/@jinn-network/core/dist/corpus-read/index.d.ts +10 -0
  1113. package/node_modules/@jinn-network/core/dist/corpus-read/index.js +10 -0
  1114. package/node_modules/@jinn-network/core/dist/corpus-read/ipfs.d.ts +14 -0
  1115. package/node_modules/@jinn-network/core/dist/corpus-read/ipfs.js +81 -0
  1116. package/node_modules/@jinn-network/core/dist/corpus-read/route-resolver.d.ts +16 -0
  1117. package/node_modules/@jinn-network/core/dist/corpus-read/route-resolver.js +19 -0
  1118. package/node_modules/@jinn-network/core/dist/corpus-read/types.d.ts +177 -0
  1119. package/node_modules/@jinn-network/core/dist/corpus-read/types.js +42 -0
  1120. package/node_modules/@jinn-network/core/dist/envelope.d.ts +134 -0
  1121. package/node_modules/@jinn-network/core/dist/envelope.js +162 -0
  1122. package/node_modules/@jinn-network/core/dist/evidence-adapter.d.ts +26 -0
  1123. package/node_modules/@jinn-network/core/dist/evidence-adapter.js +321 -0
  1124. package/node_modules/@jinn-network/core/dist/evidence-filesystem.d.ts +40 -0
  1125. package/node_modules/@jinn-network/core/dist/evidence-filesystem.js +267 -0
  1126. package/node_modules/@jinn-network/core/dist/evidence-index.d.ts +117 -0
  1127. package/node_modules/@jinn-network/core/dist/evidence-index.js +1083 -0
  1128. package/node_modules/@jinn-network/core/dist/evidence-store-lock.d.ts +2 -0
  1129. package/node_modules/@jinn-network/core/dist/evidence-store-lock.js +208 -0
  1130. package/node_modules/@jinn-network/core/dist/execution-envelope.d.ts +3142 -0
  1131. package/node_modules/@jinn-network/core/dist/execution-envelope.js +203 -0
  1132. package/node_modules/@jinn-network/core/dist/index.d.ts +12 -0
  1133. package/node_modules/@jinn-network/core/dist/index.js +12 -0
  1134. package/node_modules/@jinn-network/core/dist/manifest.d.ts +75 -0
  1135. package/node_modules/@jinn-network/core/dist/manifest.js +184 -0
  1136. package/node_modules/@jinn-network/core/dist/paired.d.ts +68 -0
  1137. package/node_modules/@jinn-network/core/dist/paired.js +92 -0
  1138. package/node_modules/@jinn-network/core/dist/scrub/apply-dispositions.d.ts +74 -0
  1139. package/node_modules/@jinn-network/core/dist/scrub/apply-dispositions.js +309 -0
  1140. package/node_modules/@jinn-network/core/dist/scrub/build.d.ts +75 -0
  1141. package/node_modules/@jinn-network/core/dist/scrub/build.js +143 -0
  1142. package/node_modules/@jinn-network/core/dist/scrub/checksummed-instruments-detector.d.ts +13 -0
  1143. package/node_modules/@jinn-network/core/dist/scrub/checksummed-instruments-detector.js +119 -0
  1144. package/node_modules/@jinn-network/core/dist/scrub/data/bip39-english.d.ts +2 -0
  1145. package/node_modules/@jinn-network/core/dist/scrub/data/bip39-english.js +2051 -0
  1146. package/node_modules/@jinn-network/core/dist/scrub/data/gitleaks-rules.d.ts +56 -0
  1147. package/node_modules/@jinn-network/core/dist/scrub/data/gitleaks-rules.js +67 -0
  1148. package/node_modules/@jinn-network/core/dist/scrub/emit-scrub.d.ts +52 -0
  1149. package/node_modules/@jinn-network/core/dist/scrub/emit-scrub.js +122 -0
  1150. package/node_modules/@jinn-network/core/dist/scrub/eval/findings-from-scrub.d.ts +18 -0
  1151. package/node_modules/@jinn-network/core/dist/scrub/eval/findings-from-scrub.js +99 -0
  1152. package/node_modules/@jinn-network/core/dist/scrub/eval/fixtures.d.ts +14 -0
  1153. package/node_modules/@jinn-network/core/dist/scrub/eval/fixtures.js +159 -0
  1154. package/node_modules/@jinn-network/core/dist/scrub/eval/index.d.ts +6 -0
  1155. package/node_modules/@jinn-network/core/dist/scrub/eval/index.js +6 -0
  1156. package/node_modules/@jinn-network/core/dist/scrub/eval/local-corpus.d.ts +15 -0
  1157. package/node_modules/@jinn-network/core/dist/scrub/eval/local-corpus.js +29 -0
  1158. package/node_modules/@jinn-network/core/dist/scrub/eval/metrics.d.ts +19 -0
  1159. package/node_modules/@jinn-network/core/dist/scrub/eval/metrics.js +77 -0
  1160. package/node_modules/@jinn-network/core/dist/scrub/eval/run-bench.d.ts +8 -0
  1161. package/node_modules/@jinn-network/core/dist/scrub/eval/run-bench.js +125 -0
  1162. package/node_modules/@jinn-network/core/dist/scrub/eval/types.d.ts +69 -0
  1163. package/node_modules/@jinn-network/core/dist/scrub/eval/types.js +7 -0
  1164. package/node_modules/@jinn-network/core/dist/scrub/finding.d.ts +38 -0
  1165. package/node_modules/@jinn-network/core/dist/scrub/finding.js +7 -0
  1166. package/node_modules/@jinn-network/core/dist/scrub/git-identity-detector.d.ts +16 -0
  1167. package/node_modules/@jinn-network/core/dist/scrub/git-identity-detector.js +116 -0
  1168. package/node_modules/@jinn-network/core/dist/scrub/gitleaks-detector.d.ts +13 -0
  1169. package/node_modules/@jinn-network/core/dist/scrub/gitleaks-detector.js +45 -0
  1170. package/node_modules/@jinn-network/core/dist/scrub/gliner-detector.d.ts +65 -0
  1171. package/node_modules/@jinn-network/core/dist/scrub/gliner-detector.js +129 -0
  1172. package/node_modules/@jinn-network/core/dist/scrub/index.d.ts +26 -0
  1173. package/node_modules/@jinn-network/core/dist/scrub/index.js +26 -0
  1174. package/node_modules/@jinn-network/core/dist/scrub/ip-address-detector.d.ts +12 -0
  1175. package/node_modules/@jinn-network/core/dist/scrub/ip-address-detector.js +81 -0
  1176. package/node_modules/@jinn-network/core/dist/scrub/key-policy.d.ts +30 -0
  1177. package/node_modules/@jinn-network/core/dist/scrub/key-policy.js +72 -0
  1178. package/node_modules/@jinn-network/core/dist/scrub/known-identity-detector.d.ts +66 -0
  1179. package/node_modules/@jinn-network/core/dist/scrub/known-identity-detector.js +284 -0
  1180. package/node_modules/@jinn-network/core/dist/scrub/layer2.d.ts +18 -0
  1181. package/node_modules/@jinn-network/core/dist/scrub/layer2.js +28 -0
  1182. package/node_modules/@jinn-network/core/dist/scrub/ml-pii-stage.d.ts +42 -0
  1183. package/node_modules/@jinn-network/core/dist/scrub/ml-pii-stage.js +119 -0
  1184. package/node_modules/@jinn-network/core/dist/scrub/pii-build.d.ts +47 -0
  1185. package/node_modules/@jinn-network/core/dist/scrub/pii-build.js +67 -0
  1186. package/node_modules/@jinn-network/core/dist/scrub/pipeline.d.ts +77 -0
  1187. package/node_modules/@jinn-network/core/dist/scrub/pipeline.js +225 -0
  1188. package/node_modules/@jinn-network/core/dist/scrub/plain-patterns-stage.d.ts +33 -0
  1189. package/node_modules/@jinn-network/core/dist/scrub/plain-patterns-stage.js +88 -0
  1190. package/node_modules/@jinn-network/core/dist/scrub/policy.d.ts +28 -0
  1191. package/node_modules/@jinn-network/core/dist/scrub/policy.js +156 -0
  1192. package/node_modules/@jinn-network/core/dist/scrub/provenance.d.ts +53 -0
  1193. package/node_modules/@jinn-network/core/dist/scrub/provenance.js +83 -0
  1194. package/node_modules/@jinn-network/core/dist/scrub/reject-classes-detector.d.ts +11 -0
  1195. package/node_modules/@jinn-network/core/dist/scrub/reject-classes-detector.js +195 -0
  1196. package/node_modules/@jinn-network/core/dist/scrub/reject-publish-error.d.ts +30 -0
  1197. package/node_modules/@jinn-network/core/dist/scrub/reject-publish-error.js +47 -0
  1198. package/node_modules/@jinn-network/core/dist/scrub/review-queue.d.ts +90 -0
  1199. package/node_modules/@jinn-network/core/dist/scrub/review-queue.js +259 -0
  1200. package/node_modules/@jinn-network/core/dist/scrub/secretlint-stage.d.ts +21 -0
  1201. package/node_modules/@jinn-network/core/dist/scrub/secretlint-stage.js +264 -0
  1202. package/node_modules/@jinn-network/core/dist/scrub/transformers-detector.d.ts +41 -0
  1203. package/node_modules/@jinn-network/core/dist/scrub/transformers-detector.js +77 -0
  1204. package/node_modules/@jinn-network/core/dist/scrub/types.d.ts +36 -0
  1205. package/node_modules/@jinn-network/core/dist/scrub/types.js +1 -0
  1206. package/node_modules/@jinn-network/core/dist/scrub/url-credentials-detector.d.ts +9 -0
  1207. package/node_modules/@jinn-network/core/dist/scrub/url-credentials-detector.js +66 -0
  1208. package/node_modules/@jinn-network/core/dist/session-provenance.d.ts +75 -0
  1209. package/node_modules/@jinn-network/core/dist/session-provenance.js +20 -0
  1210. package/node_modules/@jinn-network/core/dist/skill-artifact.d.ts +442 -0
  1211. package/node_modules/@jinn-network/core/dist/skill-artifact.js +136 -0
  1212. package/node_modules/@jinn-network/core/dist/trajectory/hash-chain.d.ts +18 -0
  1213. package/node_modules/@jinn-network/core/dist/trajectory/hash-chain.js +47 -0
  1214. package/node_modules/@jinn-network/core/dist/trajectory/index.d.ts +4 -0
  1215. package/node_modules/@jinn-network/core/dist/trajectory/index.js +4 -0
  1216. package/node_modules/@jinn-network/core/dist/trajectory/schema.d.ts +681 -0
  1217. package/node_modules/@jinn-network/core/dist/trajectory/schema.js +119 -0
  1218. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/aider-history.d.ts +42 -0
  1219. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/aider-history.js +181 -0
  1220. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/claude-code-jsonl.d.ts +37 -0
  1221. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/claude-code-jsonl.js +142 -0
  1222. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/codex-session.d.ts +42 -0
  1223. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/codex-session.js +235 -0
  1224. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/continue-devdata.d.ts +41 -0
  1225. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/continue-devdata.js +190 -0
  1226. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/cursor-sqlite.d.ts +38 -0
  1227. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/cursor-sqlite.js +118 -0
  1228. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/gemini-session.d.ts +35 -0
  1229. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/gemini-session.js +137 -0
  1230. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/index.d.ts +7 -0
  1231. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/index.js +7 -0
  1232. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/types.d.ts +101 -0
  1233. package/node_modules/@jinn-network/core/dist/trajectory/transcript-parsers/types.js +32 -0
  1234. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/attrs.d.ts +4 -0
  1235. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/attrs.js +30 -0
  1236. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/claude-code-stream-json.d.ts +8 -0
  1237. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/claude-code-stream-json.js +162 -0
  1238. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/codex-exec-json.d.ts +8 -0
  1239. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/codex-exec-json.js +253 -0
  1240. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/index.d.ts +4 -0
  1241. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/index.js +4 -0
  1242. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/types.d.ts +18 -0
  1243. package/node_modules/@jinn-network/core/dist/trajectory/transcript-to-spans/types.js +1 -0
  1244. package/node_modules/@jinn-network/core/dist/window.d.ts +12 -0
  1245. package/node_modules/@jinn-network/core/dist/window.js +5 -0
  1246. package/node_modules/@jinn-network/core/package.json +61 -0
  1247. package/node_modules/@jinn-network/plugin/dist/eligibility.d.ts +12 -0
  1248. package/node_modules/@jinn-network/plugin/dist/eligibility.js +12 -0
  1249. package/node_modules/@jinn-network/plugin/dist/history.d.ts +35 -0
  1250. package/node_modules/@jinn-network/plugin/dist/history.js +140 -0
  1251. package/node_modules/@jinn-network/plugin/dist/index.d.ts +32 -0
  1252. package/node_modules/@jinn-network/plugin/dist/index.js +15 -0
  1253. package/node_modules/@jinn-network/plugin/dist/outcome.d.ts +26 -0
  1254. package/node_modules/@jinn-network/plugin/dist/outcome.js +23 -0
  1255. package/node_modules/@jinn-network/plugin/dist/pickup.d.ts +110 -0
  1256. package/node_modules/@jinn-network/plugin/dist/pickup.js +390 -0
  1257. package/node_modules/@jinn-network/plugin/dist/plugin.d.ts +161 -0
  1258. package/node_modules/@jinn-network/plugin/dist/plugin.js +675 -0
  1259. package/node_modules/@jinn-network/plugin/dist/ports/contribution-port.d.ts +53 -0
  1260. package/node_modules/@jinn-network/plugin/dist/ports/contribution-port.js +14 -0
  1261. package/node_modules/@jinn-network/plugin/dist/ports/corpus-port.d.ts +68 -0
  1262. package/node_modules/@jinn-network/plugin/dist/ports/corpus-port.js +1 -0
  1263. package/node_modules/@jinn-network/plugin/dist/ports/evidence-port.d.ts +17 -0
  1264. package/node_modules/@jinn-network/plugin/dist/ports/evidence-port.js +1 -0
  1265. package/node_modules/@jinn-network/plugin/dist/ports/local-learning-port.d.ts +22 -0
  1266. package/node_modules/@jinn-network/plugin/dist/ports/local-learning-port.js +1 -0
  1267. package/node_modules/@jinn-network/plugin/dist/ports/skills-port.d.ts +12 -0
  1268. package/node_modules/@jinn-network/plugin/dist/ports/skills-port.js +1 -0
  1269. package/node_modules/@jinn-network/plugin/dist/schemas/contribution-candidate.d.ts +116 -0
  1270. package/node_modules/@jinn-network/plugin/dist/schemas/contribution-candidate.js +63 -0
  1271. package/node_modules/@jinn-network/plugin/dist/schemas/eligibility-verdict.d.ts +8 -0
  1272. package/node_modules/@jinn-network/plugin/dist/schemas/eligibility-verdict.js +7 -0
  1273. package/node_modules/@jinn-network/plugin/dist/schemas/episode.d.ts +432 -0
  1274. package/node_modules/@jinn-network/plugin/dist/schemas/episode.js +452 -0
  1275. package/node_modules/@jinn-network/plugin/dist/schemas/history-entry.d.ts +40 -0
  1276. package/node_modules/@jinn-network/plugin/dist/schemas/history-entry.js +30 -0
  1277. package/node_modules/@jinn-network/plugin/dist/schemas/knowledge-hit.d.ts +29 -0
  1278. package/node_modules/@jinn-network/plugin/dist/schemas/knowledge-hit.js +31 -0
  1279. package/node_modules/@jinn-network/plugin/dist/schemas/knowledge-packet.d.ts +80 -0
  1280. package/node_modules/@jinn-network/plugin/dist/schemas/knowledge-packet.js +220 -0
  1281. package/node_modules/@jinn-network/plugin/dist/schemas/pickup-config.d.ts +20 -0
  1282. package/node_modules/@jinn-network/plugin/dist/schemas/pickup-config.js +34 -0
  1283. package/node_modules/@jinn-network/plugin/dist/schemas/session-summary.d.ts +17 -0
  1284. package/node_modules/@jinn-network/plugin/dist/schemas/session-summary.js +19 -0
  1285. package/node_modules/@jinn-network/plugin/dist/testing/contract-kits.d.ts +12 -0
  1286. package/node_modules/@jinn-network/plugin/dist/testing/contract-kits.js +201 -0
  1287. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-contribution.d.ts +93 -0
  1288. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-contribution.js +104 -0
  1289. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-corpus.d.ts +49 -0
  1290. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-corpus.js +58 -0
  1291. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-evidence.d.ts +335 -0
  1292. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-evidence.js +23 -0
  1293. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-local-learning.d.ts +25 -0
  1294. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-local-learning.js +30 -0
  1295. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-skills.d.ts +9 -0
  1296. package/node_modules/@jinn-network/plugin/dist/testing/in-memory-skills.js +16 -0
  1297. package/node_modules/@jinn-network/plugin/dist/testing.d.ts +6 -0
  1298. package/node_modules/@jinn-network/plugin/dist/testing.js +8 -0
  1299. package/node_modules/@jinn-network/plugin/dist/visibility.d.ts +7 -0
  1300. package/node_modules/@jinn-network/plugin/dist/visibility.js +9 -0
  1301. package/node_modules/@jinn-network/plugin/package.json +50 -0
  1302. package/node_modules/@jinn-network/plugin/process-contract.json +8 -0
  1303. package/package.json +61 -19
  1304. package/plugins/jinn-repo-runtime/.claude-plugin/plugin.json +5 -0
  1305. package/plugins/jinn-repo-runtime/.codex-plugin/plugin.json +39 -0
  1306. package/plugins/jinn-repo-runtime/README.md +27 -0
  1307. package/plugins/jinn-repo-runtime/hooks/hooks.json +16 -0
  1308. package/plugins/jinn-repo-runtime/hooks/session-start +73 -0
  1309. package/plugins/jinn-repo-runtime/jinn.plugin.json +11 -0
  1310. package/plugins/jinn-repo-runtime/skills/task/SKILL.md +92 -0
  1311. package/skills/jinn-operator/SKILL.md +29 -15
  1312. package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +0 -55
  1313. package/deployments/deployment-jinn-mvi-l1-sepolia.json +0 -55
  1314. package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +0 -13
  1315. package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +0 -15
  1316. package/dist/api/peers.js.map +0 -1
  1317. package/dist/daemon/jinn-claim-loop-canonical.d.ts +0 -207
  1318. package/dist/daemon/jinn-claim-loop-canonical.js +0 -296
  1319. package/dist/daemon/jinn-claim-loop-canonical.js.map +0 -1
  1320. package/dist/daemon/jinn-claim-loop-mock.d.ts +0 -61
  1321. package/dist/daemon/jinn-claim-loop-mock.js +0 -122
  1322. package/dist/daemon/jinn-claim-loop-mock.js.map +0 -1
  1323. package/dist/daemon/jinn-claim-loop-wiring.d.ts +0 -33
  1324. package/dist/daemon/jinn-claim-loop-wiring.js +0 -40
  1325. package/dist/daemon/jinn-claim-loop-wiring.js.map +0 -1
  1326. package/dist/daemon/jinn-claim-loop.d.ts +0 -130
  1327. package/dist/daemon/jinn-claim-loop.js +0 -328
  1328. package/dist/daemon/jinn-claim-loop.js.map +0 -1
  1329. package/dist/dashboard/assets/index-BVAWkLwY.css +0 -1
  1330. package/dist/dashboard/assets/index-DEPqtGOA.js +0 -167
  1331. package/dist/earning/jinn-rewards.js.map +0 -1
  1332. package/dist/scripts/donation-consumption-acceptance.d.ts +0 -85
  1333. package/dist/scripts/donation-consumption-acceptance.js +0 -1382
  1334. package/dist/scripts/donation-consumption-acceptance.js.map +0 -1
  1335. package/dist/x402/acquire.d.ts +0 -17
  1336. package/dist/x402/acquire.js +0 -49
  1337. package/dist/x402/acquire.js.map +0 -1
  1338. package/dist/x402/facilitator.d.ts +0 -11
  1339. package/dist/x402/facilitator.js +0 -52
  1340. package/dist/x402/facilitator.js.map +0 -1
  1341. package/dist/x402/handler.d.ts +0 -27
  1342. package/dist/x402/handler.js +0 -236
  1343. package/dist/x402/handler.js.map +0 -1
  1344. /package/dist/{api/peers.d.ts → daemon/peer-sync.d.ts} +0 -0
@@ -6,20 +6,23 @@
6
6
  * Operator setup is automated via {@link SweRebenchV2EvaluatorHarness.onEnable}:
7
7
  * `jinn harnesses enable swe-rebench-v2-evaluator`
8
8
  * - Validates Docker + Python availability.
9
- * - Clones the upstream `SWE-rebench/SWE-rebench-V2` repo into
10
- * `<implStateDir>/upstream` (one-time; idempotent on rerun).
11
- * - Writes a `state.json` marker with `enabled: true`.
9
+ * - Pins the upstream `SWE-rebench/SWE-rebench-V2` checkout at a reviewed commit.
10
+ * - Applies the versioned Jinn report/parser bundle and runs its Python self-test.
11
+ * - Writes a state marker binding commit, bundle digest, and trusted parser metadata.
12
12
  *
13
13
  * `isReady()` reports `ready: false` (with a `nextStep` pointing at the
14
- * enable command) until the marker file is written.
14
+ * enable command) until a current durable marker is written.
15
15
  *
16
16
  * Spec: docs/superpowers/specs/2026-05-06-agent-harness-solvernet-design.md §3.4
17
17
  */
18
18
  import { existsSync, readFileSync } from 'node:fs';
19
19
  import { mkdir, writeFile } from 'node:fs/promises';
20
- import { spawn } from 'node:child_process';
20
+ import { spawn, spawnSync } from 'node:child_process';
21
+ import { createHash } from 'node:crypto';
21
22
  import { homedir } from 'node:os';
22
- import { join } from 'node:path';
23
+ import { dirname, join, resolve } from 'node:path';
24
+ import { performance } from 'node:perf_hooks';
25
+ import { fileURLToPath } from 'node:url';
23
26
  import { SweRebenchV2TaskSchema, SweRebenchV2SolutionPayloadSchema, } from '../../../vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js';
24
27
  import { REQUIRES_LIVE_DAEMON_READINESS, SkippableError } from '../../types.js';
25
28
  import { SignedEnvelopeSchema, normalizeEnvelopeRole } from '../../../types/envelope.js';
@@ -27,15 +30,138 @@ import { fetchFromIpfs, uploadToIpfs } from '../../../adapters/mech/ipfs.js';
27
30
  import { SweRebenchV2Evaluator } from './index.js';
28
31
  import { PythonEvalRunner, EvalCouldNotGradeError, } from './eval-runner.js';
29
32
  import { HttpHfFetcher } from './hf-fetcher.js';
33
+ import { RoutingTaskRowFetcher, parseMintedPoolArtifact } from './routing-task-row-fetcher.js';
30
34
  import { ValidatedPoolStore, EVAL_SEMANTICS_VERSION, hashVettedPoolArtifact, loadVettedPoolArtifactScorableEntries, parseVettedPoolArtifact, vettedPoolArtifactRefFromEligibility, } from '../../../solver-types/_swe-rebench-v2-validated-pool.js';
31
- import { computeRowHash, resolveImageDigest, } from '../../../solver-types/_swe-rebench-v2-substrate.js';
35
+ import { computeRowHash, pullDigestQualifiedImage, resolveImageDigest, resolveImagePlatform, } from '../../../solver-types/_swe-rebench-v2-substrate.js';
36
+ import { computeMintedPoolRowV2Hash, isMintedPoolRowV2, parseMintedIpfsDataset, } from '../../../solver-types/_swe-rebench-v2-minted-pool.js';
37
+ import { hashTaskEnvironmentSpecV1, parseTaskEnvironmentSpecV1, verifyEnvironmentAttestationV1, } from '../../../task-creator/environment/contracts.js';
38
+ import { canonicalJson } from '../../engine/canonical-json.js';
39
+ import { hashDifferentialAdmissionReceiptV2, targetRecipeCommandForTestPath, verifyDifferentialAdmissionReceiptV2, } from '../../../solver-types/_swe-rebench-v2-differential-admission.js';
32
40
  import { defaultStateDir as defaultSolverTypeStateDir, loadSweRebenchV2Pool, } from '../../../solver-types/swe-rebench-v2.js';
33
41
  import { PoolCacheStore, loadPoolWithCacheFallback, } from '../../../solver-types/_swe-rebench-v2-pool-cache.js';
34
42
  const DEFAULT_IPFS_REGISTRY_URL = 'https://registry.autonolas.tech';
35
43
  const DEFAULT_IPFS_GATEWAY_URL = 'https://gateway.autonolas.tech';
36
44
  const UPSTREAM_REPO_URL = 'https://github.com/SWE-rebench/SWE-rebench-V2.git';
45
+ const UPSTREAM_COMMIT = 'c71902a8cf8d2b725f63d51f199f4d3e56f68d2d';
46
+ const PATCH_BUNDLE_ID = 'jinn.swe-rebench-v2.patch-bundle.v1';
47
+ const PATCH_BUNDLE_VERSION = 'v1';
48
+ const PATCH_BUNDLE_FILE = 'swe-rebench-v2-evaluator.bundle.v1.patch';
49
+ const VITEST_JSON_PARSER = { id: 'vitest-json.v1', version: 'v1' };
37
50
  const STATE_FILE = 'state.json';
38
51
  const ENABLE_CLI = 'jinn harnesses enable swe-rebench-v2-evaluator';
52
+ const DEFAULT_EVAL_COMPUTE_USD_PER_HOUR = 0.2;
53
+ /**
54
+ * Resolve the compute rate (USD/hour) used to meter `evaluator_cost_usd`
55
+ * from wall-clock grade() time (#1828). Env-only: unset → default 0.20;
56
+ * explicit invalid or ≤0 value → 0 with a warning — a misconfigured rate
57
+ * must never throw or block an eval.
58
+ */
59
+ function resolveComputeUsdPerHour() {
60
+ const envRaw = process.env['JINN_EVAL_COMPUTE_USD_PER_HOUR'];
61
+ if (envRaw === undefined)
62
+ return DEFAULT_EVAL_COMPUTE_USD_PER_HOUR;
63
+ const parsed = Number(envRaw);
64
+ if (Number.isFinite(parsed) && parsed > 0)
65
+ return parsed;
66
+ console.warn('[swe-rebench-v2] JINN_EVAL_COMPUTE_USD_PER_HOUR is not a positive number — ' +
67
+ 'recording evaluator_cost_usd=0');
68
+ return 0;
69
+ }
70
+ /**
71
+ * The source tree keeps the bundle in `client/scripts`; the published package
72
+ * copies it to `dist/scripts`. Resolve both layouts so `tsx` development runs
73
+ * and the built CLI apply the identical, versioned patch bytes.
74
+ */
75
+ function patchBundlePath() {
76
+ const here = dirname(fileURLToPath(import.meta.url));
77
+ const candidates = [
78
+ resolve(here, '../../../../scripts', PATCH_BUNDLE_FILE),
79
+ resolve(here, '../../../scripts', PATCH_BUNDLE_FILE),
80
+ ];
81
+ const path = candidates.find(existsSync);
82
+ if (!path) {
83
+ throw new Error(`missing ${PATCH_BUNDLE_FILE}; reinstall @jinn-network/client`);
84
+ }
85
+ return path;
86
+ }
87
+ function patchBundleMetadata(bundlePath) {
88
+ const digest = createHash('sha256').update(readFileSync(bundlePath)).digest('hex');
89
+ return {
90
+ id: PATCH_BUNDLE_ID,
91
+ version: PATCH_BUNDLE_VERSION,
92
+ sha256: `sha256:${digest}`,
93
+ };
94
+ }
95
+ function hasCurrentEnableContract(state) {
96
+ if (!state || state.schemaVersion !== 'swe-rebench-v2-evaluator-state.v2')
97
+ return false;
98
+ if (state.upstream?.repoUrl !== UPSTREAM_REPO_URL || state.upstream?.commit !== UPSTREAM_COMMIT)
99
+ return false;
100
+ if (state.patchBundle?.id !== PATCH_BUNDLE_ID || state.patchBundle.version !== PATCH_BUNDLE_VERSION)
101
+ return false;
102
+ return state.trustedParsers.some((parser) => parser.id === VITEST_JSON_PARSER.id &&
103
+ parser.version === VITEST_JSON_PARSER.version &&
104
+ parser.bundleId === state.patchBundle.id &&
105
+ parser.bundleSha256 === state.patchBundle.sha256);
106
+ }
107
+ function isCurrentEnabledState(state, bundle, upstreamRepoDir) {
108
+ if (!hasCurrentEnableContract(state))
109
+ return false;
110
+ if (state.upstreamRepoDir !== upstreamRepoDir)
111
+ return false;
112
+ if (state.patchBundle.id !== bundle.id ||
113
+ state.patchBundle.version !== bundle.version ||
114
+ state.patchBundle.sha256 !== bundle.sha256)
115
+ return false;
116
+ return state.trustedParsers.some((parser) => parser.bundleId === bundle.id &&
117
+ parser.bundleSha256 === bundle.sha256);
118
+ }
119
+ function sameParser(a, b) {
120
+ return a.id === b.id && a.version === b.version && a.digest === b.digest && a.bundleId === b.bundleId;
121
+ }
122
+ function sameAttestation(a, b) {
123
+ return a.scheme === b.scheme &&
124
+ a.algo === b.algo &&
125
+ a.environmentHash === b.environmentHash &&
126
+ a.operatorSafe.toLowerCase() === b.operatorSafe.toLowerCase() &&
127
+ a.signer.toLowerCase() === b.signer.toLowerCase() &&
128
+ a.signature.toLowerCase() === b.signature.toLowerCase();
129
+ }
130
+ function sameV2AdmissionBinding(a, b) {
131
+ return a.environmentSpecCid === b.environmentSpecCid &&
132
+ a.environmentHash === b.environmentHash &&
133
+ sameParser(a.parser, b.parser) &&
134
+ a.image.reference === b.image.reference &&
135
+ a.image.digest === b.image.digest &&
136
+ a.platform === b.platform;
137
+ }
138
+ function sameDifferentialAdmissionBinding(a, b) {
139
+ return a.admissionPolicyVersion === b.admissionPolicyVersion &&
140
+ a.receiptCid === b.receiptCid &&
141
+ a.receiptHash === b.receiptHash;
142
+ }
143
+ function canonicalCommandHash(command) {
144
+ return `sha256:${createHash('sha256').update(canonicalJson(command)).digest('hex')}`;
145
+ }
146
+ function sha256(value) {
147
+ return `sha256:${createHash('sha256').update(value).digest('hex')}`;
148
+ }
149
+ function sameStringArray(left, right) {
150
+ return left.length === right.length && left.every((value, index) => value === right[index]);
151
+ }
152
+ /** Runs without Docker: it proves the patched final report exposes actual
153
+ * empirical sets and that the checked-in Vitest JSON parser is registered. */
154
+ const EMPIRICAL_SELF_TEST = [
155
+ 'import json',
156
+ 'from scripts.eval import build_report_item',
157
+ 'from lib.agent.log_parsers import NAME_TO_PARSER, TestStatus',
158
+ "item = build_report_item({'instance_id': 'jinn-enable-self-test', 'FAIL_TO_PASS': [], 'PASS_TO_PASS': []}, {'result': {'passed_actual': ['passes'], 'failed_actual': ['fails'], 'passed_match': False, 'exit_code': 1, 'log_path': 'log'}})",
159
+ "assert item['passed_actual'] == ['passes']",
160
+ "assert item['failed_actual'] == ['fails']",
161
+ "parser = NAME_TO_PARSER['vitest-json.v1']",
162
+ "parsed = parser(json.dumps({'testResults': [{'assertionResults': [{'fullName': 'suite passes', 'status': 'passed'}, {'ancestorTitles': ['suite'], 'title': 'fails', 'status': 'failed'}]}]}))",
163
+ "assert parsed == {'suite passes': TestStatus.PASSED.value, 'suite fails': TestStatus.FAILED.value}",
164
+ ].join('\n');
39
165
  export class SweRebenchV2EvaluatorHarness {
40
166
  name = 'swe-rebench-v2-evaluator';
41
167
  version = '1.0.0';
@@ -43,6 +169,7 @@ export class SweRebenchV2EvaluatorHarness {
43
169
  implStateDir;
44
170
  ipfsRegistryUrl;
45
171
  ipfsGatewayUrl;
172
+ stateDir;
46
173
  deps;
47
174
  /** The engine's claim-eligibility check calls `isReady()` per candidate
48
175
  * task per tick (~17 Hz potential). Cache the live `docker info` result
@@ -66,6 +193,7 @@ export class SweRebenchV2EvaluatorHarness {
66
193
  this.implStateDir = opts.implStateDir;
67
194
  this.ipfsRegistryUrl = opts.ipfsRegistryUrl ?? DEFAULT_IPFS_REGISTRY_URL;
68
195
  this.ipfsGatewayUrl = opts.ipfsGatewayUrl ?? process.env['JINN_IPFS_GATEWAY_URL'] ?? DEFAULT_IPFS_GATEWAY_URL;
196
+ this.stateDir = opts.stateDir ?? opts._testDeps?.stateDir;
69
197
  this.deps = opts._testDeps ?? {};
70
198
  }
71
199
  /**
@@ -89,7 +217,11 @@ export class SweRebenchV2EvaluatorHarness {
89
217
  if (this.deps.fetcher)
90
218
  return this.deps.fetcher;
91
219
  if (!this.cachedFetcher) {
92
- this.cachedFetcher = new HttpHfFetcher();
220
+ const fetchArtifact = this.deps.fetchFromIpfs ?? fetchFromIpfs;
221
+ this.cachedFetcher = new RoutingTaskRowFetcher({
222
+ hf: new HttpHfFetcher(),
223
+ fetchMintedArtifact: async (cid) => parseMintedPoolArtifact(await fetchArtifact(this.ipfsGatewayUrl, cid)),
224
+ });
93
225
  }
94
226
  return this.cachedFetcher;
95
227
  }
@@ -189,6 +321,7 @@ export class SweRebenchV2EvaluatorHarness {
189
321
  };
190
322
  }
191
323
  const state = readEnabledState(this.implStateDir);
324
+ const upstreamRepoDir = join(this.implStateDir, 'upstream');
192
325
  if (!state) {
193
326
  return {
194
327
  ready: false,
@@ -199,16 +332,54 @@ export class SweRebenchV2EvaluatorHarness {
199
332
  },
200
333
  };
201
334
  }
202
- if (!existsSync(state.upstreamRepoDir)) {
335
+ if (state.upstreamRepoDir !== upstreamRepoDir) {
203
336
  return {
204
337
  ready: false,
205
- reason: `upstream repo missing at ${state.upstreamRepoDir}`,
338
+ reason: 'swe-rebench-v2 evaluator enable state requires durable bundle repair',
339
+ nextStep: {
340
+ description: `Re-run \`${ENABLE_CLI}\` to restore the managed upstream evaluator checkout.`,
341
+ cli: ENABLE_CLI,
342
+ },
343
+ };
344
+ }
345
+ if (!existsSync(upstreamRepoDir)) {
346
+ return {
347
+ ready: false,
348
+ reason: `upstream repo missing at ${upstreamRepoDir}`,
206
349
  nextStep: {
207
350
  description: `Re-run \`${ENABLE_CLI}\` to re-clone the upstream eval harness.`,
208
351
  cli: ENABLE_CLI,
209
352
  },
210
353
  };
211
354
  }
355
+ // v1 markers are intentionally readable so callers can locate their old
356
+ // checkout, but they do not prove that the required patch bundle and
357
+ // parser are present. Re-enable repairs them before this evaluator may
358
+ // claim more work.
359
+ let bundle;
360
+ try {
361
+ bundle = patchBundleMetadata(patchBundlePath());
362
+ }
363
+ catch (err) {
364
+ return {
365
+ ready: false,
366
+ reason: `cannot load durable evaluator patch bundle: ${err instanceof Error ? err.message : String(err)}`,
367
+ nextStep: {
368
+ description: `Reinstall @jinn-network/client, then re-run \`${ENABLE_CLI}\`.`,
369
+ cli: ENABLE_CLI,
370
+ },
371
+ };
372
+ }
373
+ if (!isCurrentEnabledState(state, bundle, upstreamRepoDir)) {
374
+ return {
375
+ ready: false,
376
+ reason: 'swe-rebench-v2 evaluator enable state requires durable bundle repair',
377
+ nextStep: {
378
+ description: `Re-run \`${ENABLE_CLI}\` to pin and self-test the upstream evaluator bundle.`,
379
+ cli: ENABLE_CLI,
380
+ },
381
+ };
382
+ }
212
383
  // Live Docker probe (TTL-cached): the eval shells out to per-instance
213
384
  // `docker run` images. Docker is validated at `jinn harnesses enable` time,
214
385
  // but it can stop afterwards — re-check periodically so the daemon does
@@ -231,7 +402,7 @@ export class SweRebenchV2EvaluatorHarness {
231
402
  return {
232
403
  description: 'swe-rebench-v2.v1 — code-issue benchmark from the SWE-rebench/SWE-rebench-V2 dataset. ' +
233
404
  'Requires Docker (per-instance images) and Python 3 (upstream eval.py harness). ' +
234
- 'Enable will clone https://github.com/SWE-rebench/SWE-rebench-V2 into the impl state directory.',
405
+ 'Enable pins and self-tests https://github.com/SWE-rebench/SWE-rebench-V2 in the impl state directory.',
235
406
  externalResources: [
236
407
  { name: 'SWE-rebench-V2 (upstream)', url: 'https://github.com/SWE-rebench/SWE-rebench-V2' },
237
408
  { name: 'Docker install', url: 'https://docs.docker.com/get-docker/' },
@@ -245,12 +416,18 @@ export class SweRebenchV2EvaluatorHarness {
245
416
  message: 'implStateDir is not configured. Set JINN_ENGINE_IMPL_STATE_DIR_ROOT (or engine.implStateDirRoot in config) and restart the daemon, then re-run.',
246
417
  };
247
418
  }
248
- const upstreamRepoDir = join(this.implStateDir, 'upstream');
249
- // Idempotent: if already enabled and the repo is present, we're done.
250
419
  const existing = readEnabledState(this.implStateDir);
251
- if (existing && existsSync(existing.upstreamRepoDir)) {
252
- return { status: 'ready', details: { upstreamRepoDir: existing.upstreamRepoDir } };
253
- }
420
+ // Never trust the marker to select a checkout: a stale or corrupt marker
421
+ // must be repairable without allowing `checkout --force` / `reset --hard`
422
+ // to run in another repository.
423
+ //
424
+ // WP1 (#1646): operators who enabled before a given upstream patch shipped
425
+ // must still receive it. next's enable path already re-runs the self-test
426
+ // and `applyUpstreamPatches` unconditionally on every enable (the guarded
427
+ // block below only skips the clone/checkout when the marker is already
428
+ // current), so the patches are re-applied idempotently without a separate
429
+ // already-enabled fast-path early-return.
430
+ const upstreamRepoDir = join(this.implStateDir, 'upstream');
254
431
  const run = this.deps.runCommand ?? runCommand;
255
432
  // Validate Docker (daemon reachable) before doing any disk work.
256
433
  const dockerCheck = await run('docker', ['info']);
@@ -281,33 +458,111 @@ export class SweRebenchV2EvaluatorHarness {
281
458
  },
282
459
  };
283
460
  }
284
- // Clone upstream repo.
285
- await mkdir(this.implStateDir, { recursive: true, mode: 0o755 });
286
- if (!existsSync(upstreamRepoDir)) {
287
- const clone = await run('git', [
288
- 'clone',
289
- '--depth=1',
290
- UPSTREAM_REPO_URL,
291
- upstreamRepoDir,
292
- ]);
293
- if (clone.exitCode !== 0) {
461
+ let bundlePath;
462
+ let bundle;
463
+ try {
464
+ bundlePath = patchBundlePath();
465
+ bundle = patchBundleMetadata(bundlePath);
466
+ }
467
+ catch (err) {
468
+ return {
469
+ status: 'error',
470
+ message: `cannot load durable evaluator patch bundle: ${err instanceof Error ? err.message : String(err)}`,
471
+ };
472
+ }
473
+ // A v2 marker binds the exact commit, patch bytes, and parser registry.
474
+ // Any legacy or stale marker is repaired from a clean checkout. The
475
+ // upstream directory is managed evaluator state, so --force is deliberate:
476
+ // carrying a local manual patch forward would defeat the recorded binding.
477
+ if (!isCurrentEnabledState(existing, bundle, upstreamRepoDir) || !existsSync(upstreamRepoDir)) {
478
+ await mkdir(this.implStateDir, { recursive: true, mode: 0o755 });
479
+ if (!existsSync(upstreamRepoDir)) {
480
+ const clone = await run('git', [
481
+ 'clone',
482
+ '--no-checkout',
483
+ UPSTREAM_REPO_URL,
484
+ upstreamRepoDir,
485
+ ]);
486
+ if (clone.exitCode !== 0) {
487
+ return {
488
+ status: 'error',
489
+ message: `git clone failed (exit ${clone.exitCode}): ${clone.stderr.slice(-500)}`,
490
+ };
491
+ }
492
+ }
493
+ const fetch = await run('git', ['fetch', '--depth=1', 'origin', UPSTREAM_COMMIT], { cwd: upstreamRepoDir });
494
+ if (fetch.exitCode !== 0) {
495
+ return {
496
+ status: 'error',
497
+ message: `git fetch pinned upstream failed (exit ${fetch.exitCode}): ${fetch.stderr.slice(-500)}`,
498
+ };
499
+ }
500
+ const checkout = await run('git', ['checkout', '--detach', '--force', UPSTREAM_COMMIT], { cwd: upstreamRepoDir });
501
+ if (checkout.exitCode !== 0) {
502
+ return {
503
+ status: 'error',
504
+ message: `git checkout pinned upstream failed (exit ${checkout.exitCode}): ${checkout.stderr.slice(-500)}`,
505
+ };
506
+ }
507
+ const reset = await run('git', ['reset', '--hard', UPSTREAM_COMMIT], { cwd: upstreamRepoDir });
508
+ if (reset.exitCode !== 0) {
509
+ return {
510
+ status: 'error',
511
+ message: `git reset pinned upstream failed (exit ${reset.exitCode}): ${reset.stderr.slice(-500)}`,
512
+ };
513
+ }
514
+ const patchCheck = await run('git', ['apply', '--check', bundlePath], { cwd: upstreamRepoDir });
515
+ if (patchCheck.exitCode !== 0) {
294
516
  return {
295
517
  status: 'error',
296
- message: `git clone failed (exit ${clone.exitCode}): ${clone.stderr.slice(-500)}`,
518
+ message: `evaluator patch bundle is incompatible with ${UPSTREAM_COMMIT}: ${patchCheck.stderr.slice(-500)}`,
519
+ };
520
+ }
521
+ const apply = await run('git', ['apply', bundlePath], { cwd: upstreamRepoDir });
522
+ if (apply.exitCode !== 0) {
523
+ return {
524
+ status: 'error',
525
+ message: `evaluator patch bundle failed to apply: ${apply.stderr.slice(-500)}`,
297
526
  };
298
527
  }
299
528
  }
529
+ // Never write the durable marker until both empirical actual-result fields
530
+ // and the trusted Vitest JSON parser work in the patched upstream tree.
531
+ const selfTest = await run('python3', ['-c', EMPIRICAL_SELF_TEST], { cwd: upstreamRepoDir });
532
+ if (selfTest.exitCode !== 0) {
533
+ return {
534
+ status: 'error',
535
+ message: `patched upstream empirical self-test failed (exit ${selfTest.exitCode}): ${selfTest.stderr.slice(-500)}`,
536
+ };
537
+ }
538
+ // Apply Jinn's upstream eval.py patches (idempotent — see applyUpstreamPatches).
539
+ try {
540
+ (this.deps.applyUpstreamPatches ?? applyUpstreamPatches)(upstreamRepoDir);
541
+ }
542
+ catch (err) {
543
+ return {
544
+ status: 'error',
545
+ message: err instanceof Error ? err.message : String(err),
546
+ };
547
+ }
300
548
  // Persist marker.
301
549
  const state = {
302
- schemaVersion: 'swe-rebench-v2-evaluator-state.v1',
550
+ schemaVersion: 'swe-rebench-v2-evaluator-state.v2',
303
551
  enabled: true,
304
552
  enabledAt: new Date().toISOString(),
305
553
  upstreamRepoDir,
554
+ upstream: { repoUrl: UPSTREAM_REPO_URL, commit: UPSTREAM_COMMIT },
555
+ patchBundle: bundle,
556
+ trustedParsers: [{
557
+ ...VITEST_JSON_PARSER,
558
+ bundleId: bundle.id,
559
+ bundleSha256: bundle.sha256,
560
+ }],
306
561
  };
307
562
  await writeFile(join(this.implStateDir, STATE_FILE), JSON.stringify(state, null, 2));
308
563
  return {
309
564
  status: 'ready',
310
- details: { upstreamRepoDir },
565
+ details: { upstreamRepoDir, upstreamCommit: UPSTREAM_COMMIT, patchBundle: bundle.id },
311
566
  };
312
567
  }
313
568
  /**
@@ -391,6 +646,219 @@ export class SweRebenchV2EvaluatorHarness {
391
646
  }
392
647
  return recheckRow;
393
648
  }
649
+ /**
650
+ * Recheck an explicit-environment v2 minted row. Unlike v1 benchmark rows,
651
+ * every grading input is supplied by the immutable IPFS artifact and the
652
+ * signed TaskEnvironmentSpec. Any missing/changed observation is a skip —
653
+ * never a fallback to a local admission record or a binary verdict.
654
+ */
655
+ async recheckMintedV2(task, runtimeTask, fetcher, enabledState) {
656
+ if (!parseMintedIpfsDataset(task.hf_dataset))
657
+ return null;
658
+ if (!(fetcher instanceof RoutingTaskRowFetcher)) {
659
+ throw new SkippableError('minted_pool_router_unavailable', `cannot resolve immutable minted artifact for ${task.instance_id}`);
660
+ }
661
+ let routed;
662
+ try {
663
+ routed = await fetcher.fetchMintedRow({
664
+ hf_dataset: task.hf_dataset,
665
+ instance_id: task.instance_id,
666
+ });
667
+ }
668
+ catch (err) {
669
+ const detail = err instanceof Error ? err.message : String(err);
670
+ throw new SkippableError(/publicRowHash/u.test(detail) ? 'minted_substrate_drift_public_row_hash' : 'minted_pool_artifact_invalid', `cannot load minted artifact for ${task.instance_id}: ${detail}`);
671
+ }
672
+ // v1 is deliberately routed through the historical admission path below.
673
+ if (!routed || routed.artifact.schemaVersion !== 'swe-rebench-v2-minted-pool.v2')
674
+ return null;
675
+ if (routed.artifact.evalSemanticsVersion !== EVAL_SEMANTICS_VERSION) {
676
+ throw new SkippableError('minted_pool_semantics_mismatch', `minted artifact semanticsVersion=${routed.artifact.evalSemanticsVersion} does not match evaluator semanticsVersion=${EVAL_SEMANTICS_VERSION}`);
677
+ }
678
+ if (!isMintedPoolRowV2(routed.row)) {
679
+ throw new SkippableError('minted_pool_artifact_invalid', `v2 artifact row lacks v2 bindings for ${task.instance_id}`);
680
+ }
681
+ const row = routed.row;
682
+ const binding = row.environment;
683
+ if (computeMintedPoolRowV2Hash(row) !== row.publicRowHash) {
684
+ throw new SkippableError('minted_substrate_drift_public_row_hash', `public row hash drift for ${task.instance_id}`);
685
+ }
686
+ if (row.instance_id !== task.instance_id ||
687
+ row.repo !== task.repo ||
688
+ row.base_commit !== task.base_commit ||
689
+ row.language !== task.language) {
690
+ throw new SkippableError('minted_substrate_task_binding_drift', `on-chain task fields do not match v2 minted row for ${task.instance_id}`);
691
+ }
692
+ if (row.image_name !== binding.image.reference || row.install_config.log_parser !== binding.parser.id) {
693
+ throw new SkippableError('minted_substrate_grading_binding_drift', `grading image or parser id does not match v2 environment binding for ${task.instance_id}`);
694
+ }
695
+ const admission = await this.requireMintedV2Admission(task, runtimeTask, row);
696
+ const spec = await this.loadAndVerifyMintedEnvironmentSpec(binding, task, enabledState);
697
+ await this.recheckMintedV2DifferentialAdmission(task, row, admission, spec);
698
+ // The environment contract declares the image which the runner must use;
699
+ // checking the row too prevents a public artifact from redirecting tests to
700
+ // an otherwise valid but unrelated environment image.
701
+ if (spec.execution.image.reference !== row.image_name) {
702
+ throw new SkippableError('minted_substrate_image_reference_drift', `v2 row image does not match published environment spec for ${task.instance_id}`);
703
+ }
704
+ const commandRunner = (this.deps.runCommand ?? runCommand);
705
+ if (!(await pullDigestQualifiedImage(binding.image.reference, commandRunner))) {
706
+ throw new SkippableError('minted_substrate_image_pull_failed', `cannot pull digest-qualified evaluator image for ${task.instance_id}`);
707
+ }
708
+ const currentDigest = await resolveImageDigest(binding.image.reference, commandRunner);
709
+ if (!currentDigest) {
710
+ throw new SkippableError('minted_substrate_image_unavailable', `cannot inspect digest-qualified evaluator image for ${task.instance_id}`);
711
+ }
712
+ if (currentDigest !== binding.image.digest) {
713
+ throw new SkippableError('minted_substrate_drift_image_digest', `evaluator image digest drift for ${task.instance_id}: bound=${binding.image.digest}, current=${currentDigest}`);
714
+ }
715
+ const currentPlatform = await resolveImagePlatform(binding.image.reference, commandRunner);
716
+ if (currentPlatform !== binding.platform) {
717
+ throw new SkippableError('minted_substrate_drift_image_platform', `evaluator image platform unavailable or mismatched for ${task.instance_id}: bound=${binding.platform}`);
718
+ }
719
+ return {
720
+ instance_id: row.instance_id,
721
+ repo: row.repo,
722
+ image_name: row.image_name,
723
+ FAIL_TO_PASS: row.FAIL_TO_PASS,
724
+ PASS_TO_PASS: row.PASS_TO_PASS,
725
+ test_patch: row.test_patch,
726
+ install_config: row.install_config,
727
+ };
728
+ }
729
+ /** A v2 row is gradeable only when the launcher-published vetted pool binds
730
+ * the exact public row and explicit evaluator environment. */
731
+ async requireMintedV2Admission(task, runtimeTask, row) {
732
+ let ref;
733
+ try {
734
+ ref = vettedPoolArtifactRefFromEligibility(runtimeTask.eligibility);
735
+ }
736
+ catch (err) {
737
+ throw new SkippableError('minted_v2_admission_invalid', `invalid vetted-pool ref: ${err instanceof Error ? err.message : String(err)}`);
738
+ }
739
+ if (!ref) {
740
+ throw new SkippableError('minted_v2_admission_missing', `v2 minted row ${task.instance_id} has no vetted-pool admission ref`);
741
+ }
742
+ if (runtimeTask.solverNetManifestCid && ref.manifestCid !== runtimeTask.solverNetManifestCid) {
743
+ throw new SkippableError('minted_v2_admission_invalid', `vetted-pool manifest mismatch for ${task.instance_id}`);
744
+ }
745
+ if (ref.evalSemanticsVersion !== EVAL_SEMANTICS_VERSION) {
746
+ throw new SkippableError('minted_v2_admission_invalid', `vetted-pool semantics mismatch for ${task.instance_id}`);
747
+ }
748
+ const artifact = await this.loadPublishedPoolArtifact(ref.artifactCid);
749
+ if (artifact.evalSemanticsVersion !== ref.evalSemanticsVersion || artifact.artifactHash !== ref.artifactHash) {
750
+ throw new SkippableError('minted_v2_admission_invalid', `vetted-pool artifact binding mismatch for ${task.instance_id}`);
751
+ }
752
+ const entry = artifact.entries.byId.get(task.instance_id);
753
+ if (!entry || entry.rowHashVersion !== 2 || !entry.publicRowHash || !entry.v2Environment) {
754
+ throw new SkippableError('minted_v2_admission_missing', `no v2 scorable admission for ${task.instance_id}`);
755
+ }
756
+ if (entry.publicRowHash !== row.publicRowHash ||
757
+ !sameV2AdmissionBinding(entry.v2Environment, row.environment)) {
758
+ throw new SkippableError('minted_v2_admission_drift', `vetted-pool admission drift for ${task.instance_id}`);
759
+ }
760
+ if (row.differentialAdmission && (!row.fix_commit || entry.v2FixCommit !== row.fix_commit)) {
761
+ throw new SkippableError('minted_v2_differential_fix_commit_drift', `differential fix commit admission drift for ${task.instance_id}`);
762
+ }
763
+ return entry;
764
+ }
765
+ /** Re-derive every receipt command from the signed environment before grade. */
766
+ async recheckMintedV2DifferentialAdmission(task, row, admission, spec) {
767
+ const rowReference = row.differentialAdmission;
768
+ const admissionReference = admission.differentialAdmission;
769
+ // Pre-hardening v2 rows retain their historical contract. New public-repo
770
+ // admissions always include both references, and never fail open if one is
771
+ // stripped or changed after publication.
772
+ if (!rowReference && !admissionReference)
773
+ return;
774
+ if (!rowReference || !admissionReference || !sameDifferentialAdmissionBinding(rowReference, admissionReference)) {
775
+ throw new SkippableError('minted_v2_differential_admission_drift', `differential admission reference drift for ${task.instance_id}`);
776
+ }
777
+ let receipt;
778
+ try {
779
+ const fetchArtifact = this.deps.fetchFromIpfs ?? fetchFromIpfs;
780
+ const raw = await fetchArtifact(this.ipfsGatewayUrl, rowReference.receiptCid);
781
+ receipt = verifyDifferentialAdmissionReceiptV2(raw);
782
+ }
783
+ catch (err) {
784
+ throw new SkippableError('minted_v2_differential_receipt_unavailable', `cannot load or parse differential receipt for ${task.instance_id}: ${err instanceof Error ? err.message : String(err)}`);
785
+ }
786
+ if (hashDifferentialAdmissionReceiptV2(receipt) !== rowReference.receiptHash) {
787
+ throw new SkippableError('minted_v2_differential_receipt_hash_drift', `differential receipt hash drift for ${task.instance_id}`);
788
+ }
789
+ if (receipt.task.fixCommit !== row.fix_commit) {
790
+ throw new SkippableError('minted_v2_differential_fix_commit_drift', `differential receipt fix commit drift for ${task.instance_id}`);
791
+ }
792
+ if (receipt.task.instanceId !== task.instance_id ||
793
+ receipt.task.repo !== task.repo ||
794
+ receipt.task.baseCommit !== task.base_commit ||
795
+ receipt.testPatchHash !== sha256(row.test_patch) ||
796
+ receipt.evalSemanticsVersion !== EVAL_SEMANTICS_VERSION ||
797
+ receipt.environment.environmentHash !== spec.attestation.environmentHash ||
798
+ receipt.environment.image.reference !== spec.execution.image.reference ||
799
+ receipt.environment.image.digest !== spec.execution.image.digest ||
800
+ receipt.environment.platform !== spec.execution.platform ||
801
+ !sameParser(receipt.environment.parser, spec.execution.parser)) {
802
+ throw new SkippableError('minted_v2_differential_context_drift', `differential receipt task/environment/parser/semantics drift for ${task.instance_id}`);
803
+ }
804
+ try {
805
+ for (const path of receipt.testPaths) {
806
+ if (canonicalCommandHash(targetRecipeCommandForTestPath(spec, path.testPath)) !== path.commandHash) {
807
+ throw new Error(`command binding drift for ${path.testPath}`);
808
+ }
809
+ }
810
+ }
811
+ catch (err) {
812
+ throw new SkippableError('minted_v2_differential_command_drift', `differential receipt command drift for ${task.instance_id}: ${err instanceof Error ? err.message : String(err)}`);
813
+ }
814
+ const FAIL_TO_PASS = receipt.testPaths.flatMap((path) => path.FAIL_TO_PASS);
815
+ const PASS_TO_PASS = receipt.testPaths.flatMap((path) => path.PASS_TO_PASS);
816
+ if (!sameStringArray(row.FAIL_TO_PASS, FAIL_TO_PASS) || !sameStringArray(row.PASS_TO_PASS, PASS_TO_PASS)) {
817
+ throw new SkippableError('minted_v2_differential_row_drift', `differential receipt assertions do not match public row for ${task.instance_id}`);
818
+ }
819
+ }
820
+ async loadAndVerifyMintedEnvironmentSpec(binding, task, enabledState) {
821
+ let spec;
822
+ try {
823
+ const fetchArtifact = this.deps.fetchFromIpfs ?? fetchFromIpfs;
824
+ const raw = await fetchArtifact(this.ipfsGatewayUrl, binding.environmentSpecCid);
825
+ spec = parseTaskEnvironmentSpecV1(raw);
826
+ }
827
+ catch (err) {
828
+ throw new SkippableError('minted_environment_spec_unavailable', `cannot load or parse environment spec ${binding.environmentSpecCid}: ${err instanceof Error ? err.message : String(err)}`);
829
+ }
830
+ const environmentHash = hashTaskEnvironmentSpecV1(spec);
831
+ if (environmentHash !== binding.environmentHash || spec.attestation.environmentHash !== binding.environmentHash) {
832
+ throw new SkippableError('minted_substrate_drift_environment_hash', `environment hash drift for ${task.instance_id}`);
833
+ }
834
+ if (!sameAttestation(spec.attestation, binding.attestation)) {
835
+ throw new SkippableError('minted_substrate_drift_attestation', `environment attestation drift for ${task.instance_id}`);
836
+ }
837
+ if (!(await verifyEnvironmentAttestationV1(spec.attestation))) {
838
+ throw new SkippableError('minted_substrate_attestation_invalid', `environment attestation signature is invalid for ${task.instance_id}`);
839
+ }
840
+ if (spec.source.repo !== task.repo ||
841
+ spec.source.baseCommit !== task.base_commit ||
842
+ spec.execution.platform !== binding.platform ||
843
+ spec.execution.image.reference !== binding.image.reference ||
844
+ spec.execution.image.digest !== binding.image.digest ||
845
+ !sameParser(spec.execution.parser, binding.parser)) {
846
+ throw new SkippableError('minted_substrate_environment_binding_drift', `published environment binding drift for ${task.instance_id}`);
847
+ }
848
+ const canonicalRepoUrl = `https://github.com/${task.repo}.git`;
849
+ const canonicalInputRef = `git+${canonicalRepoUrl}#${task.base_commit}`;
850
+ if (spec.source.repoUrl !== canonicalRepoUrl ||
851
+ !spec.inputs.some((input) => input.inputRef === canonicalInputRef)) {
852
+ throw new SkippableError('minted_substrate_source_binding_drift', `published environment source URL/input binding drift for ${task.instance_id}`);
853
+ }
854
+ if (!hasCurrentEnableContract(enabledState) || !enabledState.trustedParsers.some((parser) => parser.id === binding.parser.id &&
855
+ parser.version === binding.parser.version &&
856
+ parser.bundleId === binding.parser.bundleId &&
857
+ parser.bundleSha256 === binding.parser.digest)) {
858
+ throw new SkippableError('minted_substrate_parser_untrusted', `environment parser is not enabled and trusted for ${task.instance_id}`);
859
+ }
860
+ return spec;
861
+ }
394
862
  async loadPublishedPoolRow(task, runtimeTask, fetcher) {
395
863
  let ref;
396
864
  try {
@@ -458,15 +926,20 @@ export class SweRebenchV2EvaluatorHarness {
458
926
  // scorable, and that the HF row + image haven't drifted since admission.
459
927
  // Any mismatch throws SkippableError — never fails open to a misclassified
460
928
  // FAIL verdict. (jinn-mono-fufn Task 9)
461
- const stateDir = this.deps.stateDir ??
462
- process.env['JINN_SWE_REBENCH_V2_STATE_DIR'] ??
463
- defaultSolverTypeStateDir();
929
+ const stateDir = this.stateDir ?? defaultSolverTypeStateDir();
464
930
  const fetcher = this.getFetcher();
465
- const publishedPoolRow = await this.loadPublishedPoolRow(task, ctx.task, fetcher);
466
- const recheckRow = publishedPoolRow ?? await this.recheckSubstrate(task, fetcher, () => this.loadPoolForRecheck(stateDir), stateDir);
931
+ const mintedV2Row = await this.recheckMintedV2(task, ctx.task, fetcher, state);
932
+ const publishedPoolRow = mintedV2Row
933
+ ? null
934
+ : await this.loadPublishedPoolRow(task, ctx.task, fetcher);
935
+ const recheckRow = mintedV2Row ?? publishedPoolRow ?? await this.recheckSubstrate(task, fetcher, () => this.loadPoolForRecheck(stateDir), stateDir);
467
936
  // ── End substrate recheck ─────────────────────────────────────────────────
468
937
  const runner = this.getRunner(state.upstreamRepoDir);
469
938
  const evaluator = new SweRebenchV2Evaluator({ fetcher, runner });
939
+ // Meter real evaluator cost as grade() wall-time × compute rate (#1828).
940
+ // Only the grade() call is timed — not the IPFS upload or the substrate
941
+ // recheck above.
942
+ const gradeStartedAtMs = performance.now();
470
943
  let graded;
471
944
  try {
472
945
  graded = await evaluator.grade({ task, solutionPayload, row: recheckRow });
@@ -481,6 +954,13 @@ export class SweRebenchV2EvaluatorHarness {
481
954
  }
482
955
  throw err;
483
956
  }
957
+ const computedEvaluatorCostUsd = (Math.max(0, performance.now() - gradeStartedAtMs) / 3_600_000) * resolveComputeUsdPerHour();
958
+ let evaluatorCostUsd = computedEvaluatorCostUsd;
959
+ if (!Number.isFinite(computedEvaluatorCostUsd) || computedEvaluatorCostUsd < 0) {
960
+ console.warn('[swe-rebench-v2] evaluator cost computation was not finite and nonnegative — ' +
961
+ 'recording evaluator_cost_usd=0');
962
+ evaluatorCostUsd = 0;
963
+ }
484
964
  // Pin the test log to IPFS so anyone (evaluator dispute, audit, model
485
965
  // training) can fetch it anonymously by CID. The CID is surfaced via the
486
966
  // verdict-artifact's metadata, not the typed Verdict payload — the
@@ -496,7 +976,7 @@ export class SweRebenchV2EvaluatorHarness {
496
976
  schemaVersion: 'swe-rebench-v2-verdict.v2',
497
977
  score: graded.score,
498
978
  passed_match: graded.passed_match,
499
- evaluator_cost_usd: 0,
979
+ evaluator_cost_usd: evaluatorCostUsd,
500
980
  passedCount: graded.passedCount,
501
981
  totalCount: graded.totalCount,
502
982
  };
@@ -564,6 +1044,45 @@ async function runCommand(bin, args, opts = {}) {
564
1044
  });
565
1045
  });
566
1046
  }
1047
+ /**
1048
+ * Upstream `SWE-rebench/SWE-rebench-V2` ships `scripts/eval.py` with a
1049
+ * `build_report_item()` that never surfaces `passed_actual`/`failed_actual`
1050
+ * on the report item it returns, even though it already derives
1051
+ * `passed_actual` internally to compute `from_fail_to_pass`. Jinn's
1052
+ * `PythonEvalRunner` (`eval-runner.ts`) reads exactly those two keys off
1053
+ * each report item to derive empirical F2P/P2P — without this patch they
1054
+ * are always empty, silently breaking empirical mining. See
1055
+ * `docs/handoffs/2026-07-10-task-creator-rung1-plumbing-handoff.md` ("Bugs
1056
+ * fixed during verification" #1) and `upstream-patches/passed-actual.patch`.
1057
+ */
1058
+ const UPSTREAM_PATCHES = ['passed-actual.patch'];
1059
+ /**
1060
+ * Apply Jinn's upstream `eval.py` patches to a freshly-cloned (or
1061
+ * previously-cloned) `SWE-rebench-V2` checkout, idempotently. Each patch is
1062
+ * checked with `git apply --check --reverse` first — if it reverse-applies
1063
+ * cleanly the fix is already present (either from a prior run of this
1064
+ * function, or because upstream has since shipped it natively) and the
1065
+ * patch is skipped rather than re-applied.
1066
+ *
1067
+ * Throws if a patch is neither already applied nor cleanly appliable, so
1068
+ * `onEnable` can surface it as a setup error instead of silently shipping a
1069
+ * harness that can't derive empirical F2P/P2P.
1070
+ */
1071
+ export function applyUpstreamPatches(upstreamRepoDir) {
1072
+ const patchesDir = join(dirname(fileURLToPath(import.meta.url)), 'upstream-patches');
1073
+ for (const patchFile of UPSTREAM_PATCHES) {
1074
+ const patchPath = join(patchesDir, patchFile);
1075
+ const reversed = spawnSync('git', ['apply', '--check', '--reverse', patchPath], {
1076
+ cwd: upstreamRepoDir,
1077
+ });
1078
+ if (reversed.status === 0)
1079
+ continue; // already applied — no-op.
1080
+ const applied = spawnSync('git', ['apply', patchPath], { cwd: upstreamRepoDir });
1081
+ if (applied.status !== 0) {
1082
+ throw new Error(`failed to apply upstream patch ${patchFile} to ${upstreamRepoDir}: ${applied.stderr?.toString() ?? ''}`);
1083
+ }
1084
+ }
1085
+ }
567
1086
  /**
568
1087
  * The default `implStateDir` for the swe-rebench-v2 evaluator. The daemon
569
1088
  * normally injects this via `engine.implStateDirRoot`; consumers (e.g. the
@@ -573,15 +1092,51 @@ async function runCommand(bin, args, opts = {}) {
573
1092
  export function defaultSweRebenchV2EvaluatorImplStateDir() {
574
1093
  return join(process.env['HOME'] ?? homedir(), '.jinn-client', 'engine', 'impl-state', 'swe-rebench-v2-evaluator');
575
1094
  }
1095
+ function isRecord(value) {
1096
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
1097
+ }
1098
+ function isSha256(value) {
1099
+ return typeof value === 'string' && /^sha256:[a-f0-9]{64}$/.test(value);
1100
+ }
1101
+ function isLegacyEnabledState(value) {
1102
+ return isRecord(value) &&
1103
+ value['schemaVersion'] === 'swe-rebench-v2-evaluator-state.v1' &&
1104
+ value['enabled'] === true &&
1105
+ typeof value['enabledAt'] === 'string' &&
1106
+ typeof value['upstreamRepoDir'] === 'string';
1107
+ }
1108
+ function isEnabledState(value) {
1109
+ if (!isRecord(value) ||
1110
+ value['schemaVersion'] !== 'swe-rebench-v2-evaluator-state.v2' ||
1111
+ value['enabled'] !== true ||
1112
+ typeof value['enabledAt'] !== 'string' ||
1113
+ typeof value['upstreamRepoDir'] !== 'string' ||
1114
+ !isRecord(value['upstream']) ||
1115
+ typeof value['upstream']['repoUrl'] !== 'string' ||
1116
+ typeof value['upstream']['commit'] !== 'string' ||
1117
+ !isRecord(value['patchBundle']) ||
1118
+ typeof value['patchBundle']['id'] !== 'string' ||
1119
+ typeof value['patchBundle']['version'] !== 'string' ||
1120
+ !isSha256(value['patchBundle']['sha256']) ||
1121
+ !Array.isArray(value['trustedParsers']))
1122
+ return false;
1123
+ return value['trustedParsers'].every((parser) => isRecord(parser) &&
1124
+ typeof parser['id'] === 'string' &&
1125
+ typeof parser['version'] === 'string' &&
1126
+ typeof parser['bundleId'] === 'string' &&
1127
+ isSha256(parser['bundleSha256']));
1128
+ }
576
1129
  export function readEnabledState(implStateDir) {
577
1130
  const path = join(implStateDir, STATE_FILE);
578
1131
  if (!existsSync(path))
579
1132
  return null;
580
1133
  try {
581
1134
  const raw = JSON.parse(readFileSync(path, 'utf8'));
582
- if (raw.enabled !== true || typeof raw.upstreamRepoDir !== 'string')
583
- return null;
584
- return raw;
1135
+ // Keep structurally-valid v1 state readable so enable can repair it in
1136
+ // place, while refusing every partial or malformed v2 marker.
1137
+ if (isLegacyEnabledState(raw) || isEnabledState(raw))
1138
+ return raw;
1139
+ return null;
585
1140
  }
586
1141
  catch {
587
1142
  return null;