@jinn-network/client 0.1.8 → 0.1.9-canary.023faefb

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 (733) hide show
  1. package/CONTRIBUTING.md +2 -2
  2. package/README.md +6 -0
  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 +31 -1
  7. package/dist/adapters/mech/adapter.js +126 -53
  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 +99 -49
  11. package/dist/adapters/mech/contracts.js.map +1 -1
  12. package/dist/adapters/mech/safe-revert.d.ts +4 -0
  13. package/dist/adapters/mech/safe-revert.js +5 -1
  14. package/dist/adapters/mech/safe-revert.js.map +1 -1
  15. package/dist/adapters/mech/safe.js +77 -1
  16. package/dist/adapters/mech/safe.js.map +1 -1
  17. package/dist/adapters/mech/types.d.ts +5 -130
  18. package/dist/adapters/mech/types.js +9 -65
  19. package/dist/adapters/mech/types.js.map +1 -1
  20. package/dist/adapters/mech/verdict-code.js +1 -1
  21. package/dist/adapters/mech/verdict-code.js.map +1 -1
  22. package/dist/api/bootstrap-endpoint.d.ts +19 -3
  23. package/dist/api/bootstrap-endpoint.js +4 -0
  24. package/dist/api/bootstrap-endpoint.js.map +1 -1
  25. package/dist/api/discovery-endpoint.d.ts +1 -0
  26. package/dist/api/discovery-endpoint.js +24 -0
  27. package/dist/api/discovery-endpoint.js.map +1 -1
  28. package/dist/api/fleet-build.d.ts +1 -7
  29. package/dist/api/fleet-build.js +0 -7
  30. package/dist/api/fleet-build.js.map +1 -1
  31. package/dist/api/gather-status.d.ts +26 -17
  32. package/dist/api/gather-status.js +62 -520
  33. package/dist/api/gather-status.js.map +1 -1
  34. package/dist/api/harness-auth-status-endpoint.d.ts +21 -0
  35. package/dist/api/harness-auth-status-endpoint.js +17 -0
  36. package/dist/api/harness-auth-status-endpoint.js.map +1 -0
  37. package/dist/api/launcher-endpoints.js +6 -1
  38. package/dist/api/launcher-endpoints.js.map +1 -1
  39. package/dist/api/launcher-status.d.ts +2 -0
  40. package/dist/api/launcher-status.js.map +1 -1
  41. package/dist/api/launcher-tasks.d.ts +47 -0
  42. package/dist/api/launcher-tasks.js +88 -3
  43. package/dist/api/launcher-tasks.js.map +1 -1
  44. package/dist/api/loop-completion-build.d.ts +79 -0
  45. package/dist/api/loop-completion-build.js +154 -0
  46. package/dist/api/loop-completion-build.js.map +1 -0
  47. package/dist/api/operator-artifacts-endpoint.js +1 -1
  48. package/dist/api/operator-artifacts-endpoint.js.map +1 -1
  49. package/dist/api/portfolio-v0-build.d.ts +2 -1
  50. package/dist/api/portfolio-v0-build.js +5 -7
  51. package/dist/api/portfolio-v0-build.js.map +1 -1
  52. package/dist/api/prediction-v1-build.d.ts +2 -2
  53. package/dist/api/prediction-v1-build.js +5 -7
  54. package/dist/api/prediction-v1-build.js.map +1 -1
  55. package/dist/api/rewards-build.d.ts +8 -1
  56. package/dist/api/rewards-build.js +32 -4
  57. package/dist/api/rewards-build.js.map +1 -1
  58. package/dist/api/rewards-endpoint.d.ts +12 -0
  59. package/dist/api/rewards-endpoint.js +46 -0
  60. package/dist/api/rewards-endpoint.js.map +1 -0
  61. package/dist/api/server.d.ts +6 -16
  62. package/dist/api/server.js +29 -26
  63. package/dist/api/server.js.map +1 -1
  64. package/dist/api/setup-endpoints.d.ts +45 -0
  65. package/dist/api/setup-endpoints.js +271 -52
  66. package/dist/api/setup-endpoints.js.map +1 -1
  67. package/dist/api/solvernets-endpoints.js +4 -1
  68. package/dist/api/solvernets-endpoints.js.map +1 -1
  69. package/dist/api/status-build.d.ts +71 -94
  70. package/dist/api/status-build.js +11 -77
  71. package/dist/api/status-build.js.map +1 -1
  72. package/dist/api/status-rollup-build.d.ts +0 -4
  73. package/dist/api/status-rollup-build.js +0 -4
  74. package/dist/api/status-rollup-build.js.map +1 -1
  75. package/dist/api/stop-hook.d.ts +1 -1
  76. package/dist/api/stop-hook.js +1 -1
  77. package/dist/api/stop-hook.js.map +1 -1
  78. package/dist/api/task-run-routing.d.ts +1 -1
  79. package/dist/api/task-runs-build.d.ts +2 -2
  80. package/dist/api/task-runs-build.js +5 -7
  81. package/dist/api/task-runs-build.js.map +1 -1
  82. package/dist/bin/jinn-distil-mcp.js +813 -0
  83. package/dist/bin/jinn-layer.js +12568 -0
  84. package/dist/build-info.json +4 -4
  85. package/dist/build-meta.json +1 -1
  86. package/dist/captures/distil-export.d.ts +54 -0
  87. package/dist/captures/distil-export.js +135 -0
  88. package/dist/captures/distil-export.js.map +1 -0
  89. package/dist/captures/ingest.d.ts +21 -0
  90. package/dist/captures/ingest.js +144 -0
  91. package/dist/captures/ingest.js.map +1 -0
  92. package/dist/captures/live-publisher.d.ts +9 -0
  93. package/dist/captures/live-publisher.js +5 -3
  94. package/dist/captures/live-publisher.js.map +1 -1
  95. package/dist/captures/publish.d.ts +15 -0
  96. package/dist/captures/publish.js +17 -7
  97. package/dist/captures/publish.js.map +1 -1
  98. package/dist/cli/commands/codedigest-revert-check.js +6 -2
  99. package/dist/cli/commands/codedigest-revert-check.js.map +1 -1
  100. package/dist/cli/commands/doctor.d.ts +3 -0
  101. package/dist/cli/commands/doctor.js +36 -4
  102. package/dist/cli/commands/doctor.js.map +1 -1
  103. package/dist/cli/commands/eval.d.ts +87 -0
  104. package/dist/cli/commands/eval.js +481 -0
  105. package/dist/cli/commands/eval.js.map +1 -0
  106. package/dist/cli/commands/rewards.d.ts +2 -0
  107. package/dist/cli/commands/rewards.js +39 -10
  108. package/dist/cli/commands/rewards.js.map +1 -1
  109. package/dist/cli/commands/solver-nets.js +68 -0
  110. package/dist/cli/commands/solver-nets.js.map +1 -1
  111. package/dist/cli/commands/status.js +0 -1
  112. package/dist/cli/commands/status.js.map +1 -1
  113. package/dist/cli/commands/update.js +8 -0
  114. package/dist/cli/commands/update.js.map +1 -1
  115. package/dist/cli/commands/version.js +4 -0
  116. package/dist/cli/commands/version.js.map +1 -1
  117. package/dist/cli/execution-context.js +2 -1
  118. package/dist/cli/execution-context.js.map +1 -1
  119. package/dist/cli/index.js +2 -0
  120. package/dist/cli/index.js.map +1 -1
  121. package/dist/cli/introspection-context.js +0 -3
  122. package/dist/cli/introspection-context.js.map +1 -1
  123. package/dist/config.d.ts +158 -541
  124. package/dist/config.js +190 -197
  125. package/dist/config.js.map +1 -1
  126. package/dist/contracts/abis.d.ts +100 -0
  127. package/dist/contracts/abis.js +58 -0
  128. package/dist/contracts/abis.js.map +1 -0
  129. package/dist/contracts/addresses.d.ts +36 -0
  130. package/dist/contracts/addresses.js +60 -0
  131. package/dist/contracts/addresses.js.map +1 -0
  132. package/dist/corpus/acquire.d.ts +7 -6
  133. package/dist/corpus/acquire.js +10 -10
  134. package/dist/corpus/acquire.js.map +1 -1
  135. package/dist/corpus/fetch-artifact.d.ts +21 -0
  136. package/dist/corpus/fetch-artifact.js +33 -0
  137. package/dist/corpus/fetch-artifact.js.map +1 -0
  138. package/dist/corpus/index.d.ts +2 -2
  139. package/dist/corpus/onchain-query.d.ts +0 -1
  140. package/dist/corpus/onchain-query.js +2 -5
  141. package/dist/corpus/onchain-query.js.map +1 -1
  142. package/dist/corpus/route-resolver.d.ts +3 -3
  143. package/dist/corpus/route-resolver.js +3 -3
  144. package/dist/daemon/ai-units-gate.d.ts +6 -6
  145. package/dist/daemon/ai-units-gate.js +11 -10
  146. package/dist/daemon/ai-units-gate.js.map +1 -1
  147. package/dist/daemon/balance-topup-loop.js +27 -9
  148. package/dist/daemon/balance-topup-loop.js.map +1 -1
  149. package/dist/daemon/checkpoint-loop.js +2 -2
  150. package/dist/daemon/creator.d.ts +1 -0
  151. package/dist/daemon/creator.js +39 -25
  152. package/dist/daemon/creator.js.map +1 -1
  153. package/dist/daemon/daemon.d.ts +15 -10
  154. package/dist/daemon/daemon.js +95 -41
  155. package/dist/daemon/daemon.js.map +1 -1
  156. package/dist/daemon/delivery-watcher.d.ts +9 -0
  157. package/dist/daemon/delivery-watcher.js +24 -1
  158. package/dist/daemon/delivery-watcher.js.map +1 -1
  159. package/dist/daemon/eviction-loop.d.ts +7 -0
  160. package/dist/daemon/eviction-loop.js +19 -3
  161. package/dist/daemon/eviction-loop.js.map +1 -1
  162. package/dist/daemon/join-applier.d.ts +35 -0
  163. package/dist/daemon/join-applier.js +49 -0
  164. package/dist/daemon/join-applier.js.map +1 -0
  165. package/dist/daemon/loop-heartbeat.d.ts +89 -0
  166. package/dist/daemon/loop-heartbeat.js +75 -0
  167. package/dist/daemon/loop-heartbeat.js.map +1 -0
  168. package/dist/{api/peers.js → daemon/peer-sync.js} +3 -1
  169. package/dist/daemon/peer-sync.js.map +1 -0
  170. package/dist/daemon/reward-claim-loop.js +28 -10
  171. package/dist/daemon/reward-claim-loop.js.map +1 -1
  172. package/dist/daemon/skip-log-dedup.d.ts +1 -1
  173. package/dist/daemon/skip-log-dedup.js +3 -0
  174. package/dist/daemon/skip-log-dedup.js.map +1 -1
  175. package/dist/daemon/spend-cap-gate.d.ts +0 -6
  176. package/dist/daemon/spend-cap-gate.js +1 -8
  177. package/dist/daemon/spend-cap-gate.js.map +1 -1
  178. package/dist/daemon/watchdog-loop.d.ts +84 -0
  179. package/dist/daemon/watchdog-loop.js +91 -0
  180. package/dist/daemon/watchdog-loop.js.map +1 -0
  181. package/dist/dashboard/assets/index-B_5Cb-ZH.js +161 -0
  182. package/dist/dashboard/assets/index-D7rvJRNa.css +1 -0
  183. package/dist/dashboard/index.html +2 -2
  184. package/dist/discovery/http.d.ts +17 -0
  185. package/dist/discovery/http.js +378 -26
  186. package/dist/discovery/http.js.map +1 -1
  187. package/dist/discovery/onchain.js +174 -10
  188. package/dist/discovery/onchain.js.map +1 -1
  189. package/dist/discovery/types.d.ts +149 -0
  190. package/dist/discovery/types.js +40 -0
  191. package/dist/discovery/types.js.map +1 -1
  192. package/dist/discovery/with-fallback.js +24 -0
  193. package/dist/discovery/with-fallback.js.map +1 -1
  194. package/dist/earning/bootstrap-run.d.ts +25 -0
  195. package/dist/earning/bootstrap-run.js +315 -0
  196. package/dist/earning/bootstrap-run.js.map +1 -0
  197. package/dist/earning/bootstrap.d.ts +31 -11
  198. package/dist/earning/bootstrap.js +123 -212
  199. package/dist/earning/bootstrap.js.map +1 -1
  200. package/dist/earning/contracts.d.ts +2 -232
  201. package/dist/earning/contracts.js +16 -205
  202. package/dist/earning/contracts.js.map +1 -1
  203. package/dist/earning/faucet-topup-store.d.ts +41 -0
  204. package/dist/earning/faucet-topup-store.js +89 -0
  205. package/dist/earning/faucet-topup-store.js.map +1 -0
  206. package/dist/earning/faucet.d.ts +1 -1
  207. package/dist/earning/faucet.js +2 -2
  208. package/dist/earning/faucet.js.map +1 -1
  209. package/dist/earning/safe-adapter.js +12 -45
  210. package/dist/earning/safe-adapter.js.map +1 -1
  211. package/dist/earning/steps/context.d.ts +42 -0
  212. package/dist/earning/steps/context.js +4 -0
  213. package/dist/earning/steps/context.js.map +1 -0
  214. package/dist/earning/steps/fleet-identity-register.d.ts +4 -0
  215. package/dist/earning/steps/fleet-identity-register.js +65 -0
  216. package/dist/earning/steps/fleet-identity-register.js.map +1 -0
  217. package/dist/earning/steps/fleet-safe-deploy.d.ts +4 -0
  218. package/dist/earning/steps/fleet-safe-deploy.js +62 -0
  219. package/dist/earning/steps/fleet-safe-deploy.js.map +1 -0
  220. package/dist/earning/steps/fleet-safe-predict.d.ts +4 -0
  221. package/dist/earning/steps/fleet-safe-predict.js +18 -0
  222. package/dist/earning/steps/fleet-safe-predict.js.map +1 -0
  223. package/dist/earning/steps/receipt-parsing.d.ts +12 -0
  224. package/dist/earning/steps/receipt-parsing.js +71 -0
  225. package/dist/earning/steps/receipt-parsing.js.map +1 -0
  226. package/dist/earning/stolas-claim.js +8 -8
  227. package/dist/earning/stolas-claim.js.map +1 -1
  228. package/dist/earning/{jinn-rewards.d.ts → stolas-staking.d.ts} +4 -8
  229. package/dist/earning/{jinn-rewards.js → stolas-staking.js} +6 -10
  230. package/dist/earning/stolas-staking.js.map +1 -0
  231. package/dist/earning/testnet-setup-migration.d.ts +1 -0
  232. package/dist/earning/testnet-setup-migration.js +7 -2
  233. package/dist/earning/testnet-setup-migration.js.map +1 -1
  234. package/dist/earning/types.d.ts +1 -1
  235. package/dist/earning/types.js +1 -1
  236. package/dist/earning/types.js.map +1 -1
  237. package/dist/earning/viem-clients.d.ts +3 -19
  238. package/dist/earning/viem-clients.js +4 -31
  239. package/dist/earning/viem-clients.js.map +1 -1
  240. package/dist/erc8004/addresses.d.ts +6 -5
  241. package/dist/erc8004/addresses.js +7 -5
  242. package/dist/erc8004/addresses.js.map +1 -1
  243. package/dist/erc8004/identity.d.ts +12 -1
  244. package/dist/erc8004/identity.js +31 -0
  245. package/dist/erc8004/identity.js.map +1 -1
  246. package/dist/erc8004/index.d.ts +1 -1
  247. package/dist/erc8004/index.js +1 -1
  248. package/dist/erc8004/index.js.map +1 -1
  249. package/dist/eval/capability-slate.d.ts +54 -0
  250. package/dist/eval/capability-slate.js +116 -0
  251. package/dist/eval/capability-slate.js.map +1 -0
  252. package/dist/eval/capability-stats.d.ts +39 -0
  253. package/dist/eval/capability-stats.js +123 -0
  254. package/dist/eval/capability-stats.js.map +1 -0
  255. package/dist/eval/contested-band.d.ts +18 -0
  256. package/dist/eval/contested-band.js +19 -0
  257. package/dist/eval/contested-band.js.map +1 -0
  258. package/dist/eval/corpus-index.d.ts +21 -0
  259. package/dist/eval/corpus-index.js +55 -0
  260. package/dist/eval/corpus-index.js.map +1 -0
  261. package/dist/eval/disjointness.d.ts +26 -0
  262. package/dist/eval/disjointness.js +67 -0
  263. package/dist/eval/disjointness.js.map +1 -0
  264. package/dist/eval/eval-harness-run.d.ts +63 -0
  265. package/dist/eval/eval-harness-run.js +123 -0
  266. package/dist/eval/eval-harness-run.js.map +1 -0
  267. package/dist/eval/mcnemar-power.d.ts +14 -0
  268. package/dist/eval/mcnemar-power.js +40 -0
  269. package/dist/eval/mcnemar-power.js.map +1 -0
  270. package/dist/eval/orchestrator.d.ts +224 -0
  271. package/dist/eval/orchestrator.js +250 -0
  272. package/dist/eval/orchestrator.js.map +1 -0
  273. package/dist/eval/paired.d.ts +68 -0
  274. package/dist/eval/paired.js +93 -0
  275. package/dist/eval/paired.js.map +1 -0
  276. package/dist/eval/resolve-slate-tasks.d.ts +35 -0
  277. package/dist/eval/resolve-slate-tasks.js +56 -0
  278. package/dist/eval/resolve-slate-tasks.js.map +1 -0
  279. package/dist/eval/screen-discovery.d.ts +22 -0
  280. package/dist/eval/screen-discovery.js +71 -0
  281. package/dist/eval/screen-discovery.js.map +1 -0
  282. package/dist/eval/screen-progress.d.ts +41 -0
  283. package/dist/eval/screen-progress.js +60 -0
  284. package/dist/eval/screen-progress.js.map +1 -0
  285. package/dist/eval/screen-runner.d.ts +30 -0
  286. package/dist/eval/screen-runner.js +289 -0
  287. package/dist/eval/screen-runner.js.map +1 -0
  288. package/dist/eval/screen.d.ts +107 -0
  289. package/dist/eval/screen.js +159 -0
  290. package/dist/eval/screen.js.map +1 -0
  291. package/dist/eval/slope.d.ts +29 -0
  292. package/dist/eval/slope.js +46 -0
  293. package/dist/eval/slope.js.map +1 -0
  294. package/dist/eval/train-sequence.d.ts +35 -0
  295. package/dist/eval/train-sequence.js +59 -0
  296. package/dist/eval/train-sequence.js.map +1 -0
  297. package/dist/eval/wilson.d.ts +45 -0
  298. package/dist/eval/wilson.js +48 -0
  299. package/dist/eval/wilson.js.map +1 -0
  300. package/dist/events/types.d.ts +1 -1
  301. package/dist/events/types.js +1 -1
  302. package/dist/events/types.js.map +1 -1
  303. package/dist/harnesses/auth-source.d.ts +51 -0
  304. package/dist/harnesses/auth-source.js +155 -0
  305. package/dist/harnesses/auth-source.js.map +1 -0
  306. package/dist/harnesses/engine/canonical-json.js +5 -3
  307. package/dist/harnesses/engine/canonical-json.js.map +1 -1
  308. package/dist/harnesses/engine/engine.d.ts +34 -1
  309. package/dist/harnesses/engine/engine.js +91 -11
  310. package/dist/harnesses/engine/engine.js.map +1 -1
  311. package/dist/harnesses/engine/packaging.js +5 -5
  312. package/dist/harnesses/engine/packaging.js.map +1 -1
  313. package/dist/harnesses/engine/persistence.d.ts +19 -61
  314. package/dist/harnesses/engine/persistence.js +28 -0
  315. package/dist/harnesses/engine/persistence.js.map +1 -1
  316. package/dist/harnesses/impls/_evaluator-base.d.ts +48 -0
  317. package/dist/harnesses/impls/_evaluator-base.js +35 -0
  318. package/dist/harnesses/impls/_evaluator-base.js.map +1 -0
  319. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +1 -1
  320. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js +1 -1
  321. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -1
  322. package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +2 -3
  323. package/dist/harnesses/impls/claude-mcp-prediction/index.js +29 -99
  324. package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -1
  325. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +4 -21
  326. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -1
  327. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +2 -0
  328. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +1 -1
  329. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -1
  330. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +30 -79
  331. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -1
  332. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +4 -19
  333. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -1
  334. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +2 -0
  335. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +1 -1
  336. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -1
  337. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.d.ts +39 -0
  338. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js +62 -0
  339. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js.map +1 -0
  340. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.d.ts +40 -0
  341. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js +44 -0
  342. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js.map +1 -0
  343. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.d.ts +56 -0
  344. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js +79 -0
  345. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js.map +1 -0
  346. package/dist/harnesses/impls/hermes-agent/adapter.d.ts +2 -0
  347. package/dist/harnesses/impls/hermes-agent/adapter.js +8 -5
  348. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  349. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +1 -0
  350. package/dist/harnesses/impls/hermes-agent/bootstrap.js +6 -1
  351. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  352. package/dist/harnesses/impls/hermes-agent/harness.d.ts +25 -3
  353. package/dist/harnesses/impls/hermes-agent/harness.js +89 -5
  354. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  355. package/dist/harnesses/impls/index.d.ts +2 -0
  356. package/dist/harnesses/impls/index.js +10 -1
  357. package/dist/harnesses/impls/index.js.map +1 -1
  358. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.d.ts +34 -0
  359. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js +111 -0
  360. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js.map +1 -0
  361. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.d.ts +24 -0
  362. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js +19 -0
  363. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js.map +1 -0
  364. package/dist/harnesses/impls/jinn-repo-evaluator/harness.d.ts +64 -0
  365. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js +125 -0
  366. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js.map +1 -0
  367. package/dist/harnesses/impls/jinn-repo-evaluator/repro.d.ts +32 -0
  368. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js +73 -0
  369. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js.map +1 -0
  370. package/dist/harnesses/impls/learner/adapters/claude-code.js +5 -0
  371. package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
  372. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +11 -1
  373. package/dist/harnesses/impls/learner/adapters/codex-code.js +130 -15
  374. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  375. package/dist/harnesses/impls/learner/harness.d.ts +29 -1
  376. package/dist/harnesses/impls/learner/harness.js +85 -1
  377. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  378. package/dist/harnesses/impls/learner/harvest.d.ts +2 -0
  379. package/dist/harnesses/impls/learner/harvest.js +51 -1
  380. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  381. package/dist/harnesses/impls/learner/plugin-path.js +1 -0
  382. package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
  383. package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +5 -15
  384. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +10 -29
  385. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -1
  386. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +5 -15
  387. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +10 -23
  388. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
  389. package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +5 -15
  390. package/dist/harnesses/impls/prediction-v0-evaluator/index.js +10 -25
  391. package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -1
  392. package/dist/harnesses/impls/stub.d.ts +2 -2
  393. package/dist/harnesses/impls/stub.js +2 -2
  394. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +8 -0
  395. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  396. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +3 -1
  397. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  398. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +2 -2
  399. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +3 -1
  400. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
  401. package/dist/harnesses/readiness-registry.d.ts +16 -0
  402. package/dist/harnesses/readiness-registry.js +28 -6
  403. package/dist/harnesses/readiness-registry.js.map +1 -1
  404. package/dist/harnesses/types.d.ts +26 -0
  405. package/dist/learner/revert-decision.d.ts +16 -1
  406. package/dist/learner/revert-decision.js +38 -18
  407. package/dist/learner/revert-decision.js.map +1 -1
  408. package/dist/learner/revert-stats.d.ts +14 -0
  409. package/dist/learner/revert-stats.js +42 -0
  410. package/dist/learner/revert-stats.js.map +1 -1
  411. package/dist/learner/verification-gate.d.ts +53 -0
  412. package/dist/learner/verification-gate.js +80 -0
  413. package/dist/learner/verification-gate.js.map +1 -0
  414. package/dist/local-provider-url.d.ts +3 -0
  415. package/dist/local-provider-url.js +28 -0
  416. package/dist/local-provider-url.js.map +1 -0
  417. package/dist/main.js +188 -566
  418. package/dist/main.js.map +1 -1
  419. package/dist/mcp/acquire-artifact.d.ts +3 -3
  420. package/dist/mcp/acquire-artifact.js +3 -3
  421. package/dist/mcp/operator-server.js +1 -1
  422. package/dist/mcp/operator-server.js.map +1 -1
  423. package/dist/mcp/server.js +5 -6
  424. package/dist/mcp/server.js.map +1 -1
  425. package/dist/monitoring/net-liveness.d.ts +143 -0
  426. package/dist/monitoring/net-liveness.js +301 -0
  427. package/dist/monitoring/net-liveness.js.map +1 -0
  428. package/dist/observability/emit-event.d.ts +1 -1
  429. package/dist/observability/emit-event.js +0 -4
  430. package/dist/observability/emit-event.js.map +1 -1
  431. package/dist/observability/progress.d.ts +11 -0
  432. package/dist/observability/progress.js +16 -0
  433. package/dist/observability/progress.js.map +1 -0
  434. package/dist/pilot/cost.d.ts +19 -0
  435. package/dist/pilot/cost.js +31 -0
  436. package/dist/pilot/cost.js.map +1 -0
  437. package/dist/pilot/instance.d.ts +20 -0
  438. package/dist/pilot/instance.js +19 -0
  439. package/dist/pilot/instance.js.map +1 -0
  440. package/dist/pilot/repo.d.ts +31 -0
  441. package/dist/pilot/repo.js +42 -0
  442. package/dist/pilot/repo.js.map +1 -0
  443. package/dist/pilot/solve.d.ts +22 -0
  444. package/dist/pilot/solve.js +37 -0
  445. package/dist/pilot/solve.js.map +1 -0
  446. package/dist/pilot/tally.d.ts +35 -0
  447. package/dist/pilot/tally.js +61 -0
  448. package/dist/pilot/tally.js.map +1 -0
  449. package/dist/plugins/learner/.claude-plugin/plugin.json +1 -1
  450. package/dist/plugins/learner/.codex-plugin/plugin.json +1 -1
  451. package/dist/plugins/learner/hooks/session-start +30 -1
  452. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
  453. package/dist/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
  454. package/dist/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
  455. package/dist/plugins/local-trace-distiller/.mcp.json +8 -0
  456. package/dist/plugins/local-trace-distiller/README.md +27 -0
  457. package/dist/plugins/local-trace-distiller/jinn.plugin.json +36 -0
  458. package/dist/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
  459. package/dist/preflight/deployment-readiness.d.ts +127 -0
  460. package/dist/preflight/deployment-readiness.js +308 -0
  461. package/dist/preflight/deployment-readiness.js.map +1 -0
  462. package/dist/preflight/pidfile-liveness.d.ts +7 -1
  463. package/dist/preflight/pidfile-liveness.js +14 -0
  464. package/dist/preflight/pidfile-liveness.js.map +1 -1
  465. package/dist/preflight/rpc-network.d.ts +10 -3
  466. package/dist/preflight/rpc-network.js +46 -13
  467. package/dist/preflight/rpc-network.js.map +1 -1
  468. package/dist/preflight/stable-cwd.d.ts +29 -0
  469. package/dist/preflight/stable-cwd.js +98 -0
  470. package/dist/preflight/stable-cwd.js.map +1 -0
  471. package/dist/rpc/transport.d.ts +43 -5
  472. package/dist/rpc/transport.js +131 -30
  473. package/dist/rpc/transport.js.map +1 -1
  474. package/dist/scripts/swe-rebench-v2-seed-pool.json +2 -1
  475. package/dist/solver-nets/registry.d.ts +19 -0
  476. package/dist/solver-nets/registry.js +95 -66
  477. package/dist/solver-nets/registry.js.map +1 -1
  478. package/dist/solver-types/_jinn-repo-pool.d.ts +27 -0
  479. package/dist/solver-types/_jinn-repo-pool.js +27 -0
  480. package/dist/solver-types/_jinn-repo-pool.js.map +1 -0
  481. package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +76 -0
  482. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +156 -0
  483. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
  484. package/dist/solver-types/_swe-rebench-v2-pool-recovery.d.ts +81 -0
  485. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js +116 -0
  486. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js.map +1 -0
  487. package/dist/solver-types/_swe-rebench-v2-state.d.ts +9 -0
  488. package/dist/solver-types/_swe-rebench-v2-state.js +14 -0
  489. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
  490. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +30 -0
  491. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +40 -0
  492. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  493. package/dist/solver-types/index.js +2 -0
  494. package/dist/solver-types/index.js.map +1 -1
  495. package/dist/solver-types/jinn-repo-admit.d.ts +17 -0
  496. package/dist/solver-types/jinn-repo-admit.js +16 -0
  497. package/dist/solver-types/jinn-repo-admit.js.map +1 -0
  498. package/dist/solver-types/jinn-repo-auto.d.ts +60 -0
  499. package/dist/solver-types/jinn-repo-auto.js +163 -0
  500. package/dist/solver-types/jinn-repo-auto.js.map +1 -0
  501. package/dist/solver-types/jinn-repo-definition.d.ts +15 -0
  502. package/dist/solver-types/jinn-repo-definition.js +34 -0
  503. package/dist/solver-types/jinn-repo-definition.js.map +1 -0
  504. package/dist/solver-types/jinn-repo-extract.d.ts +16 -0
  505. package/dist/solver-types/jinn-repo-extract.js +32 -0
  506. package/dist/solver-types/jinn-repo-extract.js.map +1 -0
  507. package/dist/solver-types/jinn-repo.d.ts +21 -0
  508. package/dist/solver-types/jinn-repo.js +23 -0
  509. package/dist/solver-types/jinn-repo.js.map +1 -0
  510. package/dist/solver-types/learner-loop-test.js +1 -1
  511. package/dist/solver-types/learner-loop-test.js.map +1 -1
  512. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
  513. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.json +19 -0
  514. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.screening-report.json +628 -0
  515. package/dist/solver-types/solver-type.d.ts +8 -0
  516. package/dist/solver-types/swe-rebench-v2.d.ts +2 -0
  517. package/dist/solver-types/swe-rebench-v2.js +115 -10
  518. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  519. package/dist/solvernets/launched-record-dispatcher.d.ts +5 -0
  520. package/dist/solvernets/launched-record-dispatcher.js +14 -1
  521. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  522. package/dist/solvernets/registry-client-erc8004.js +29 -37
  523. package/dist/solvernets/registry-client-erc8004.js.map +1 -1
  524. package/dist/solvernets/registry-client.d.ts +6 -0
  525. package/dist/solvernets/store.d.ts +1 -1
  526. package/dist/solvernets/store.js +8 -3
  527. package/dist/solvernets/store.js.map +1 -1
  528. package/dist/spend/ai-units-config.d.ts +10 -0
  529. package/dist/spend/ai-units-config.js +7 -1
  530. package/dist/spend/ai-units-config.js.map +1 -1
  531. package/dist/spend/ai-units.d.ts +51 -0
  532. package/dist/spend/ai-units.js +73 -0
  533. package/dist/spend/ai-units.js.map +1 -1
  534. package/dist/spend/credential.d.ts +2 -2
  535. package/dist/spend/credential.js +9 -3
  536. package/dist/spend/credential.js.map +1 -1
  537. package/dist/spend/record.js +12 -5
  538. package/dist/spend/record.js.map +1 -1
  539. package/dist/spend/spend-cap.d.ts +10 -0
  540. package/dist/spend/spend-cap.js +13 -0
  541. package/dist/spend/spend-cap.js.map +1 -0
  542. package/dist/spend/usage.js +39 -3
  543. package/dist/spend/usage.js.map +1 -1
  544. package/dist/store/store.d.ts +106 -5
  545. package/dist/store/store.js +194 -8
  546. package/dist/store/store.js.map +1 -1
  547. package/dist/trajectory/emit.d.ts +6 -0
  548. package/dist/trajectory/emit.js +9 -1
  549. package/dist/trajectory/emit.js.map +1 -1
  550. package/dist/trajectory/harness-bundle-schema.d.ts +1 -1
  551. package/dist/trajectory/harness-bundle-schema.js +1 -1
  552. package/dist/trajectory/harness-bundle-schema.js.map +1 -1
  553. package/dist/trajectory/processors/identity-scrub.js +22 -3
  554. package/dist/trajectory/processors/identity-scrub.js.map +1 -1
  555. package/dist/trajectory/schema.d.ts +1 -1
  556. package/dist/trajectory/schema.js +1 -1
  557. package/dist/trajectory/schema.js.map +1 -1
  558. package/dist/trajectory/scrub/build.d.ts +46 -0
  559. package/dist/trajectory/scrub/build.js +76 -0
  560. package/dist/trajectory/scrub/build.js.map +1 -0
  561. package/dist/trajectory/scrub/emit-scrub.d.ts +41 -0
  562. package/dist/trajectory/scrub/emit-scrub.js +88 -0
  563. package/dist/trajectory/scrub/emit-scrub.js.map +1 -0
  564. package/dist/trajectory/scrub/key-policy.d.ts +20 -0
  565. package/dist/trajectory/scrub/key-policy.js +43 -0
  566. package/dist/trajectory/scrub/key-policy.js.map +1 -0
  567. package/dist/trajectory/scrub/layer2.d.ts +23 -0
  568. package/dist/trajectory/scrub/layer2.js +33 -0
  569. package/dist/trajectory/scrub/layer2.js.map +1 -0
  570. package/dist/trajectory/scrub/ml-pii-stage.d.ts +24 -0
  571. package/dist/trajectory/scrub/ml-pii-stage.js +43 -0
  572. package/dist/trajectory/scrub/ml-pii-stage.js.map +1 -0
  573. package/dist/trajectory/scrub/openredaction-stage.d.ts +178 -0
  574. package/dist/trajectory/scrub/openredaction-stage.js +269 -0
  575. package/dist/trajectory/scrub/openredaction-stage.js.map +1 -0
  576. package/dist/trajectory/scrub/pii-build.d.ts +31 -0
  577. package/dist/trajectory/scrub/pii-build.js +64 -0
  578. package/dist/trajectory/scrub/pii-build.js.map +1 -0
  579. package/dist/trajectory/scrub/pipeline.d.ts +37 -0
  580. package/dist/trajectory/scrub/pipeline.js +83 -0
  581. package/dist/trajectory/scrub/pipeline.js.map +1 -0
  582. package/dist/trajectory/scrub/plain-patterns-stage.d.ts +31 -0
  583. package/dist/trajectory/scrub/plain-patterns-stage.js +85 -0
  584. package/dist/trajectory/scrub/plain-patterns-stage.js.map +1 -0
  585. package/dist/trajectory/scrub/secretlint-stage.d.ts +35 -0
  586. package/dist/trajectory/scrub/secretlint-stage.js +250 -0
  587. package/dist/trajectory/scrub/secretlint-stage.js.map +1 -0
  588. package/dist/trajectory/scrub/transformers-detector.d.ts +35 -0
  589. package/dist/trajectory/scrub/transformers-detector.js +68 -0
  590. package/dist/trajectory/scrub/transformers-detector.js.map +1 -0
  591. package/dist/trajectory/scrub/types.d.ts +25 -0
  592. package/dist/trajectory/scrub/types.js +2 -0
  593. package/dist/trajectory/scrub/types.js.map +1 -0
  594. package/dist/trajectory/transcript-parsers/types.d.ts +1 -1
  595. package/dist/trajectory/transcript-parsers/types.js +1 -1
  596. package/dist/trajectory/transcript-parsers/types.js.map +1 -1
  597. package/dist/trajectory/transcript-watcher.d.ts +26 -0
  598. package/dist/trajectory/transcript-watcher.js +33 -0
  599. package/dist/trajectory/transcript-watcher.js.map +1 -1
  600. package/dist/tx-retry.d.ts +12 -0
  601. package/dist/tx-retry.js +41 -12
  602. package/dist/tx-retry.js.map +1 -1
  603. package/dist/types/envelope.d.ts +1 -1
  604. package/dist/types/envelope.js +1 -1
  605. package/dist/types/envelope.js.map +1 -1
  606. package/dist/types/payloads/index.d.ts +1 -1
  607. package/dist/types/payloads/index.js +7 -1
  608. package/dist/types/payloads/index.js.map +1 -1
  609. package/dist/types/payloads/portfolio-v0.d.ts +1 -1
  610. package/dist/types/payloads/portfolio-v0.js +1 -1
  611. package/dist/types/payloads/portfolio-v0.js.map +1 -1
  612. package/dist/types/payloads/prediction-apy-v0.d.ts +1 -1
  613. package/dist/types/payloads/prediction-apy-v0.js +1 -1
  614. package/dist/types/payloads/prediction-apy-v0.js.map +1 -1
  615. package/dist/types/payloads/prediction-v0.d.ts +1 -1
  616. package/dist/types/payloads/prediction-v0.js +1 -1
  617. package/dist/types/payloads/prediction-v0.js.map +1 -1
  618. package/dist/types/portfolio.d.ts +1 -1
  619. package/dist/types/portfolio.js +1 -1
  620. package/dist/types/portfolio.js.map +1 -1
  621. package/dist/types/prediction-apy.d.ts +1 -1
  622. package/dist/types/prediction-apy.js +1 -1
  623. package/dist/types/prediction-apy.js.map +1 -1
  624. package/dist/types/prediction.d.ts +1 -1
  625. package/dist/types/prediction.js +1 -1
  626. package/dist/types/prediction.js.map +1 -1
  627. package/dist/types/session-provenance.d.ts +1 -1
  628. package/dist/types/session-provenance.js +1 -1
  629. package/dist/types/session-provenance.js.map +1 -1
  630. package/dist/types/skill-artifact.d.ts +442 -0
  631. package/dist/types/skill-artifact.js +137 -0
  632. package/dist/types/skill-artifact.js.map +1 -0
  633. package/dist/types/task-document.d.ts +315 -1
  634. package/dist/types/task-document.js +9 -1
  635. package/dist/types/task-document.js.map +1 -1
  636. package/dist/types/task-run-read-model.d.ts +21 -0
  637. package/dist/types/task-run-read-model.js +2 -0
  638. package/dist/types/task-run-read-model.js.map +1 -0
  639. package/dist/types/task-run.d.ts +75 -0
  640. package/dist/types/task-run.js +2 -0
  641. package/dist/types/task-run.js.map +1 -0
  642. package/dist/types/task.d.ts +29 -1
  643. package/dist/types/task.js +1 -1
  644. package/dist/types/task.js.map +1 -1
  645. package/dist/types/window.d.ts +1 -1
  646. package/dist/types/window.js +1 -1
  647. package/dist/types/window.js.map +1 -1
  648. package/dist/util/redact-rpc-urls.d.ts +1 -1
  649. package/dist/util/redact-rpc-urls.js +57 -2
  650. package/dist/util/redact-rpc-urls.js.map +1 -1
  651. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +1 -1
  652. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +1 -1
  653. package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +3 -2
  654. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +49 -0
  655. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.d.ts +44 -0
  656. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.js +25 -0
  657. package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +1 -1
  658. package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +1 -1
  659. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.d.ts +38 -0
  660. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.js +22 -0
  661. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +1 -1
  662. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +1 -1
  663. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +1 -1
  664. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +1 -1
  665. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +109 -2
  666. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +26 -2
  667. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +1 -1
  668. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +1 -1
  669. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.d.ts +4 -0
  670. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.js +2 -0
  671. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +1 -1
  672. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -1
  673. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
  674. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
  675. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +2 -2
  676. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +1 -1
  677. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +1 -1
  678. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +1 -1
  679. package/dist/vendor/@jinn-network/sdk/package.json +9 -1
  680. package/docker-compose.yml +3 -2
  681. package/package.json +43 -28
  682. package/plugins/jinn-repo-runtime/.claude-plugin/plugin.json +5 -0
  683. package/plugins/jinn-repo-runtime/.codex-plugin/plugin.json +39 -0
  684. package/plugins/jinn-repo-runtime/README.md +27 -0
  685. package/plugins/jinn-repo-runtime/hooks/hooks.json +16 -0
  686. package/plugins/jinn-repo-runtime/hooks/session-start +73 -0
  687. package/plugins/jinn-repo-runtime/jinn.plugin.json +11 -0
  688. package/plugins/jinn-repo-runtime/skills/task/SKILL.md +92 -0
  689. package/plugins/learner/.claude-plugin/plugin.json +1 -1
  690. package/plugins/learner/.codex-plugin/plugin.json +1 -1
  691. package/plugins/learner/hooks/session-start +30 -1
  692. package/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
  693. package/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
  694. package/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
  695. package/plugins/local-trace-distiller/.mcp.json +8 -0
  696. package/plugins/local-trace-distiller/README.md +27 -0
  697. package/plugins/local-trace-distiller/jinn.plugin.json +36 -0
  698. package/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
  699. package/plugins/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
  700. package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
  701. package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +0 -55
  702. package/deployments/deployment-jinn-mvi-l1-sepolia.json +0 -55
  703. package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +0 -13
  704. package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +0 -15
  705. package/dist/api/peers.js.map +0 -1
  706. package/dist/daemon/jinn-claim-loop-canonical.d.ts +0 -207
  707. package/dist/daemon/jinn-claim-loop-canonical.js +0 -296
  708. package/dist/daemon/jinn-claim-loop-canonical.js.map +0 -1
  709. package/dist/daemon/jinn-claim-loop-mock.d.ts +0 -61
  710. package/dist/daemon/jinn-claim-loop-mock.js +0 -122
  711. package/dist/daemon/jinn-claim-loop-mock.js.map +0 -1
  712. package/dist/daemon/jinn-claim-loop-wiring.d.ts +0 -33
  713. package/dist/daemon/jinn-claim-loop-wiring.js +0 -40
  714. package/dist/daemon/jinn-claim-loop-wiring.js.map +0 -1
  715. package/dist/daemon/jinn-claim-loop.d.ts +0 -130
  716. package/dist/daemon/jinn-claim-loop.js +0 -328
  717. package/dist/daemon/jinn-claim-loop.js.map +0 -1
  718. package/dist/dashboard/assets/index-CzKxvMcU.css +0 -32
  719. package/dist/dashboard/assets/index-yVemxHot.js +0 -351
  720. package/dist/earning/jinn-rewards.js.map +0 -1
  721. package/dist/scripts/donation-consumption-acceptance.d.ts +0 -85
  722. package/dist/scripts/donation-consumption-acceptance.js +0 -1382
  723. package/dist/scripts/donation-consumption-acceptance.js.map +0 -1
  724. package/dist/x402/acquire.d.ts +0 -17
  725. package/dist/x402/acquire.js +0 -49
  726. package/dist/x402/acquire.js.map +0 -1
  727. package/dist/x402/facilitator.d.ts +0 -11
  728. package/dist/x402/facilitator.js +0 -52
  729. package/dist/x402/facilitator.js.map +0 -1
  730. package/dist/x402/handler.d.ts +0 -27
  731. package/dist/x402/handler.js +0 -236
  732. package/dist/x402/handler.js.map +0 -1
  733. /package/dist/{api/peers.d.ts → daemon/peer-sync.d.ts} +0 -0
@@ -0,0 +1,123 @@
1
+ /** One-sided lower confidence bound for mean(Δ_i), Δ_i = pB - pA, via a
2
+ * bias-corrected bootstrap over tasks (BCa without acceleration; acceleration
3
+ * adds a jackknife pass — see §6.2, deferred as a refinement). */
4
+ export function pairedRateDiffLowerBound(rates, opts) {
5
+ const alpha = opts.alpha ?? 0.05;
6
+ const B = opts.resamples ?? 10_000;
7
+ const n = rates.length;
8
+ if (n === 0)
9
+ throw new Error('pairedRateDiffLowerBound: empty sample');
10
+ const deltas = rates.map((r) => r.pB - r.pA);
11
+ const mean = (xs) => xs.reduce((s, x) => s + x, 0) / xs.length;
12
+ const observed = mean(deltas);
13
+ const means = [];
14
+ for (let b = 0; b < B; b++) {
15
+ let s = 0;
16
+ for (let i = 0; i < n; i++)
17
+ s += deltas[Math.min(n - 1, Math.floor(opts.rng() * n))];
18
+ means.push(s / n);
19
+ }
20
+ means.sort((a, b) => a - b);
21
+ // Bias-correction z0 = Φ⁻¹(fraction of resamples < observed).
22
+ const below = means.filter((m) => m < observed).length;
23
+ const z0 = invNorm(Math.min(Math.max(below / B, 1e-6), 1 - 1e-6));
24
+ const zAlpha = invNorm(alpha); // one-sided lower
25
+ const adj = normCdf(2 * z0 + zAlpha);
26
+ const idx = Math.min(B - 1, Math.max(0, Math.floor(adj * B)));
27
+ return means[idx];
28
+ }
29
+ export function nonInferiorityVerdict(rates, opts) {
30
+ const deltaAbs = opts.deltaAbs ?? 0.05;
31
+ const relativeCap = opts.relativeCap ?? 0.15;
32
+ const lowerBound = pairedRateDiffLowerBound(rates, opts);
33
+ const meanA = rates.reduce((s, r) => s + r.pA, 0) / rates.length;
34
+ const meanB = rates.reduce((s, r) => s + r.pB, 0) / rates.length;
35
+ const absRegression = Math.max(0, meanA - meanB);
36
+ const relativeRegression = opts.stockBaseRate > 0 ? absRegression / opts.stockBaseRate : 0;
37
+ const reasons = [];
38
+ const absOk = lowerBound > -deltaAbs;
39
+ if (!absOk)
40
+ reasons.push(`absolute NI failed: lower bound ${lowerBound.toFixed(3)} ≤ -δ (${-deltaAbs})`);
41
+ const relOk = relativeRegression <= relativeCap;
42
+ if (!relOk)
43
+ reasons.push(`relative guard failed: regression ${(relativeRegression * 100).toFixed(1)}% > cap ${(relativeCap * 100).toFixed(0)}%`);
44
+ return { pass: absOk && relOk, lowerBound, deltaAbs, relativeRegression, reasons };
45
+ }
46
+ // --- normal helpers (kept local; mcnemar-power exports its own for its use) ---
47
+ function normCdf(x) { return 0.5 * (1 + erf(x / Math.SQRT2)); }
48
+ function erf(x) {
49
+ const t = 1 / (1 + 0.3275911 * Math.abs(x));
50
+ const y = 1 - (((((1.061405429 * t - 1.453152027) * t) + 1.421413741) * t - 0.284496736) * t + 0.254829592) * t * Math.exp(-x * x);
51
+ return x >= 0 ? y : -y;
52
+ }
53
+ function invNorm(p) {
54
+ // Beasley-Springer/Moro; adequate for CI index selection.
55
+ const a = [-3.969683028665376e+01, 2.209460984245205e+02, -2.759285104469687e+02, 1.383577518672690e+02, -3.066479806614716e+01, 2.506628277459239e+00];
56
+ const b = [-5.447609879822406e+01, 1.615858368580409e+02, -1.556989798598866e+02, 6.680131188771972e+01, -1.328068155288572e+01];
57
+ const c = [-7.784894002430293e-03, -3.223964580411365e-01, -2.400758277161838e+00, -2.549732539343734e+00, 4.374664141464968e+00, 2.938163982698783e+00];
58
+ const d = [7.784695709041462e-03, 3.224671290700398e-01, 2.445134137142996e+00, 3.754408661907416e+00];
59
+ const pl = 0.02425;
60
+ let q, r;
61
+ if (p < pl) {
62
+ q = Math.sqrt(-2 * Math.log(p));
63
+ return (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
64
+ }
65
+ if (p > 1 - pl) {
66
+ q = Math.sqrt(-2 * Math.log(1 - p));
67
+ return -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
68
+ }
69
+ q = p - 0.5;
70
+ r = q * q;
71
+ return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * q / (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1);
72
+ }
73
+ // --- cost leg (append to capability-stats.ts) ---
74
+ /** One-sided Wilcoxon signed-rank test that the median paired difference < 0,
75
+ * using a normal approximation with a continuity correction. The variance is the
76
+ * UNTIED form sqrt(n(n+1)(2n+1)/24); the tie-correction term (−Σ(t³−t)/48, which
77
+ * only ever *subtracts* variance) is omitted, so the SD used here is if anything
78
+ * too large — that makes the test slightly HARDER to reject (conservative), never
79
+ * wrong-direction. Ranks themselves are still tie-averaged (rankAbs). */
80
+ export function pairedCostVerdict(costDiffs, opts = {}) {
81
+ const minN = opts.minN ?? 10;
82
+ const alpha = opts.alpha ?? 0.05;
83
+ const nonzero = costDiffs.filter((d) => d !== 0);
84
+ if (nonzero.length < minN)
85
+ return { verdict: 'inconclusive', pValue: null, n: nonzero.length };
86
+ const ranks = rankAbs(nonzero.map(Math.abs));
87
+ let wMinus = 0; // sum of ranks for NEGATIVE diffs (corpus cheaper)
88
+ let wPlus = 0;
89
+ nonzero.forEach((d, i) => { if (d < 0)
90
+ wMinus += ranks[i];
91
+ else
92
+ wPlus += ranks[i]; });
93
+ const n = nonzero.length;
94
+ const meanW = (n * (n + 1)) / 4;
95
+ const sdW = Math.sqrt((n * (n + 1) * (2 * n + 1)) / 24); // untied (conservative) form — tie term omitted, see docstring
96
+ // Test statistic: is W+ (evidence AGAINST cheaper) improbably small?
97
+ const z = (wPlus - meanW + 0.5) / sdW;
98
+ const pValue = normCdfLocal(z); // one-sided: P(W+ ≤ observed)
99
+ const verdict = pValue < alpha ? 'lower' : 'not-lower';
100
+ return { verdict, pValue, n };
101
+ }
102
+ function rankAbs(absVals) {
103
+ const idx = absVals.map((v, i) => ({ v, i })).sort((a, b) => a.v - b.v);
104
+ const ranks = new Array(absVals.length);
105
+ let i = 0;
106
+ while (i < idx.length) {
107
+ let j = i;
108
+ while (j + 1 < idx.length && idx[j + 1].v === idx[i].v)
109
+ j++;
110
+ const avg = (i + j + 2) / 2; // average rank (1-based) for ties
111
+ for (let k = i; k <= j; k++)
112
+ ranks[idx[k].i] = avg;
113
+ i = j + 1;
114
+ }
115
+ return ranks;
116
+ }
117
+ function normCdfLocal(x) {
118
+ const t = 1 / (1 + 0.2316419 * Math.abs(x));
119
+ const d = 0.3989423 * Math.exp((-x * x) / 2);
120
+ const p = d * t * (0.3193815 + t * (-0.3565638 + t * (1.781478 + t * (-1.821256 + t * 1.330274))));
121
+ return x >= 0 ? 1 - p : p;
122
+ }
123
+ //# sourceMappingURL=capability-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-stats.js","sourceRoot":"","sources":["../../src/eval/capability-stats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface Band {
2
+ lo: number;
3
+ hi: number;
4
+ }
5
+ export declare function inContestedBand(passRate: number, band: Band): boolean;
6
+ export interface BlindScreenFidelity {
7
+ agentSha: string;
8
+ emptyLoadout: boolean;
9
+ noCorpusTools: boolean;
10
+ /** Hash of the host skill directory at screen time. */
11
+ hostSkillDirHash: string;
12
+ /** The reference hash of an empty skill directory; hostSkillDirHash MUST equal this. */
13
+ emptyHostSkillDirHash: string;
14
+ }
15
+ export declare class BlindScreenViolation extends Error {
16
+ constructor(reason: string);
17
+ }
18
+ export declare function assertBlindScreen(f: BlindScreenFidelity): void;
@@ -0,0 +1,19 @@
1
+ export function inContestedBand(passRate, band) {
2
+ return passRate >= band.lo && passRate <= band.hi;
3
+ }
4
+ export class BlindScreenViolation extends Error {
5
+ constructor(reason) {
6
+ super(`blind-screen fidelity violated: ${reason}`);
7
+ this.name = 'BlindScreenViolation';
8
+ }
9
+ }
10
+ export function assertBlindScreen(f) {
11
+ if (!f.emptyLoadout)
12
+ throw new BlindScreenViolation('screening run did not have an empty skill loadout');
13
+ if (!f.noCorpusTools)
14
+ throw new BlindScreenViolation('screening run had a live corpus tool surface');
15
+ if (f.hostSkillDirHash !== f.emptyHostSkillDirHash) {
16
+ throw new BlindScreenViolation(`host skill dir was not empty (${f.hostSkillDirHash} != ${f.emptyHostSkillDirHash})`);
17
+ }
18
+ }
19
+ //# sourceMappingURL=contested-band.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contested-band.js","sourceRoot":"","sources":["../../src/eval/contested-band.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,IAAU;IAC1D,OAAO,QAAQ,IAAI,IAAI,CAAC,EAAE,IAAI,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC;AACpD,CAAC;AAYD,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,MAAc;QACxB,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAsB;IACtD,IAAI,CAAC,CAAC,CAAC,YAAY;QAAE,MAAM,IAAI,oBAAoB,CAAC,mDAAmD,CAAC,CAAC;IACzG,IAAI,CAAC,CAAC,CAAC,aAAa;QAAE,MAAM,IAAI,oBAAoB,CAAC,8CAA8C,CAAC,CAAC;IACrG,IAAI,CAAC,CAAC,gBAAgB,KAAK,CAAC,CAAC,qBAAqB,EAAE,CAAC;QACnD,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC,gBAAgB,OAAO,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvH,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface CorpusRecord {
2
+ id: string;
3
+ repos: string[];
4
+ instanceIdsReferenced: string[];
5
+ text: string;
6
+ }
7
+ export interface CorpusIndexRecord {
8
+ id: string;
9
+ repos: string[];
10
+ instanceIds: string[];
11
+ sketch: number[];
12
+ }
13
+ export interface CorpusDerivedIndex {
14
+ repos: string[];
15
+ instanceIds: string[];
16
+ records: CorpusIndexRecord[];
17
+ }
18
+ export declare function tokenize(text: string): string[];
19
+ export declare function minhashSketch(tokens: string[], numHashes?: number): number[];
20
+ export declare function buildCorpusIndex(records: CorpusRecord[]): CorpusDerivedIndex;
21
+ export declare function corpusSnapshotCid(index: CorpusDerivedIndex): `sha256:${string}`;
@@ -0,0 +1,55 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { canonicalJson } from '../harnesses/engine/canonical-json.js';
3
+ export function tokenize(text) {
4
+ const m = text.toLowerCase().match(/[a-z0-9_]+/g);
5
+ return m ?? [];
6
+ }
7
+ /** 32-bit FNV-1a — stable, dependency-free, good enough for MinHash bucketing. */
8
+ function fnv1a(s, seed) {
9
+ let h = (2166136261 ^ seed) >>> 0;
10
+ for (let i = 0; i < s.length; i++) {
11
+ h ^= s.charCodeAt(i);
12
+ h = Math.imul(h, 16777619) >>> 0;
13
+ }
14
+ return h >>> 0;
15
+ }
16
+ export function minhashSketch(tokens, numHashes = 64) {
17
+ const uniq = [...new Set(tokens)];
18
+ const out = [];
19
+ for (let k = 0; k < numHashes; k++) {
20
+ let min = 0xffffffff;
21
+ for (const t of uniq) {
22
+ const h = fnv1a(t, k * 0x9e3779b1);
23
+ if (h < min)
24
+ min = h;
25
+ }
26
+ out.push(uniq.length === 0 ? 0 : min);
27
+ }
28
+ return out;
29
+ }
30
+ export function buildCorpusIndex(records) {
31
+ const repos = new Set();
32
+ const instanceIds = new Set();
33
+ const indexed = [];
34
+ for (const r of records) {
35
+ r.repos.forEach((x) => repos.add(x));
36
+ r.instanceIdsReferenced.forEach((x) => instanceIds.add(x));
37
+ indexed.push({
38
+ id: r.id,
39
+ repos: [...r.repos].sort(),
40
+ instanceIds: [...r.instanceIdsReferenced].sort(),
41
+ sketch: minhashSketch(tokenize(r.text)),
42
+ });
43
+ }
44
+ // Deterministic total order: primary by id, tiebreak by canonical content so
45
+ // duplicate ids never make the cid input-order-dependent (spec §4.3).
46
+ indexed.sort((a, b) => a.id.localeCompare(b.id) || JSON.stringify(a).localeCompare(JSON.stringify(b)));
47
+ return { repos: [...repos].sort(), instanceIds: [...instanceIds].sort(), records: indexed };
48
+ }
49
+ export function corpusSnapshotCid(index) {
50
+ // RFC 8785 canonical JSON (key-sorted, cross-language reproducible) so a third
51
+ // party can recompute this Merkle root to re-check the disjointness proof (spec §4.3).
52
+ // Arrays are already fully sorted by buildCorpusIndex; canonicalJson sorts object keys.
53
+ return `sha256:${createHash('sha256').update(canonicalJson(index)).digest('hex')}`;
54
+ }
55
+ //# sourceMappingURL=corpus-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corpus-index.js","sourceRoot":"","sources":["../../src/eval/corpus-index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type CorpusDerivedIndex } from './corpus-index.js';
2
+ export interface SlateTaskForDisjointness {
3
+ instance_id: string;
4
+ repo: string;
5
+ /** Distinctive tokens from the gold patch (changed paths/symbols/PR id). */
6
+ goldPatchTokens: string[];
7
+ }
8
+ export interface AxisCheck {
9
+ verdict: 'pass' | 'fail';
10
+ flaggedPairs: Array<[string, string]>;
11
+ }
12
+ export interface DisjointnessResult {
13
+ instance: AxisCheck;
14
+ repo: AxisCheck;
15
+ lexical: AxisCheck;
16
+ }
17
+ export declare class CorpusContaminationError extends Error {
18
+ readonly result: DisjointnessResult;
19
+ constructor(result: DisjointnessResult);
20
+ }
21
+ export declare function checkCorpusDisjoint(slate: SlateTaskForDisjointness[], index: CorpusDerivedIndex, opts?: {
22
+ lexicalJaccardThreshold?: number;
23
+ }): DisjointnessResult;
24
+ export declare function assertCorpusDisjoint(slate: SlateTaskForDisjointness[], index: CorpusDerivedIndex, opts?: {
25
+ lexicalJaccardThreshold?: number;
26
+ }): DisjointnessResult;
@@ -0,0 +1,67 @@
1
+ import { minhashSketch } from './corpus-index.js';
2
+ export class CorpusContaminationError extends Error {
3
+ result;
4
+ constructor(result) {
5
+ const fails = ['instance', 'repo', 'lexical'].filter((a) => result[a].verdict === 'fail');
6
+ super(`corpus contamination on axes [${fails.join(', ')}]: ${JSON.stringify(fails.flatMap((a) => result[a].flaggedPairs))}`);
7
+ this.result = result;
8
+ this.name = 'CorpusContaminationError';
9
+ }
10
+ }
11
+ /** MinHash Jaccard estimate between two equal-length sketches. An all-zero
12
+ * sketch is corpus-index's empty-token-set sentinel; a set with no tokens has
13
+ * no meaningful overlap, so return 0 rather than letting the sentinel zeros
14
+ * count as matches (which would false-positive a degenerate gold patch or an
15
+ * empty corpus record into a contamination flag). */
16
+ function sketchJaccard(a, b) {
17
+ if (a.length === 0)
18
+ return 0;
19
+ if (a.length !== b.length) {
20
+ throw new Error(`sketchJaccard: sketch length mismatch (${a.length} vs ${b.length})`);
21
+ }
22
+ if (a.every((x) => x === 0) || b.every((x) => x === 0))
23
+ return 0;
24
+ let same = 0;
25
+ for (let i = 0; i < a.length; i++)
26
+ if (a[i] === b[i])
27
+ same++;
28
+ return same / a.length;
29
+ }
30
+ export function checkCorpusDisjoint(slate, index, opts = {}) {
31
+ const threshold = opts.lexicalJaccardThreshold ?? 0.15;
32
+ const corpusRepos = new Set(index.repos);
33
+ const corpusInstances = new Set(index.instanceIds);
34
+ const instance = { verdict: 'pass', flaggedPairs: [] };
35
+ const repo = { verdict: 'pass', flaggedPairs: [] };
36
+ const lexical = { verdict: 'pass', flaggedPairs: [] };
37
+ for (const task of slate) {
38
+ if (corpusInstances.has(task.instance_id)) {
39
+ instance.verdict = 'fail';
40
+ for (const rec of index.records)
41
+ if (rec.instanceIds.includes(task.instance_id))
42
+ instance.flaggedPairs.push([task.instance_id, rec.id]);
43
+ }
44
+ if (corpusRepos.has(task.repo)) {
45
+ repo.verdict = 'fail';
46
+ for (const rec of index.records)
47
+ if (rec.repos.includes(task.repo))
48
+ repo.flaggedPairs.push([task.instance_id, rec.id]);
49
+ }
50
+ const goldSketch = minhashSketch(task.goldPatchTokens);
51
+ for (const rec of index.records) {
52
+ if (sketchJaccard(goldSketch, rec.sketch) >= threshold) {
53
+ lexical.verdict = 'fail';
54
+ lexical.flaggedPairs.push([task.instance_id, rec.id]);
55
+ }
56
+ }
57
+ }
58
+ return { instance, repo, lexical };
59
+ }
60
+ export function assertCorpusDisjoint(slate, index, opts = {}) {
61
+ const result = checkCorpusDisjoint(slate, index, opts);
62
+ if (result.instance.verdict === 'fail' || result.repo.verdict === 'fail' || result.lexical.verdict === 'fail') {
63
+ throw new CorpusContaminationError(result);
64
+ }
65
+ return result;
66
+ }
67
+ //# sourceMappingURL=disjointness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disjointness.js","sourceRoot":"","sources":["../../src/eval/disjointness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Daemon-faithful harness run for `jinn eval` (issue #818) and the #822 e2e.
3
+ *
4
+ * Live testing proved the eval's earlier hand-rolled harness invocation did NOT
5
+ * reproduce the daemon's agent runtime: it ran the agent with NO SolverNet
6
+ * runtime plugins, so the claude-code adapter passed no `--plugin-dir`, the
7
+ * bundled MCP server never loaded, and the agent had no `submit_typed_payload`
8
+ * tool — producing no gradeable patch and rendering every task unscorable. The
9
+ * daemon scores the same tasks because it builds the full HarnessContext with
10
+ * `solverPluginRoots` from the SolverNet's runtime plugins (engine.ts §runImpl).
11
+ *
12
+ * This module is the single source of truth for that daemon-equivalent context.
13
+ * It rebuilds the engine's HarnessContext MINUS persistence/on-chain wiring and
14
+ * runs the harness through the SAME freeze-fence the daemon uses. The CLI uses
15
+ * it now; the #822 e2e delegates to it next.
16
+ */
17
+ import type { Harness, RuntimePlugin } from '../harnesses/types.js';
18
+ import type { Task } from '../types/task.js';
19
+ import { type JoinedSolverNetConfig, type SolverNetTaskRole } from '../solver-nets/registry.js';
20
+ /**
21
+ * Resolve the SolverNet runtime plugins for `solverType`, exactly as the daemon
22
+ * does (`loadSolverNets(...).forSolverType(...)`). These plugins carry the
23
+ * bundled MCP server that provides `submit_typed_payload`; without them the
24
+ * agent cannot emit a gradeable patch.
25
+ *
26
+ * Fails LOUD with an operator-actionable message when there is no joined
27
+ * SolverNet for the solverType, or the matched net has no runtime plugins —
28
+ * mirroring the evaluator's `jinn harnesses enable` precondition.
29
+ */
30
+ export declare function resolveRuntimePluginsForSolverType(solverType: string, joinedSolverNets: Record<string, JoinedSolverNetConfig> | undefined, role?: SolverNetTaskRole): Promise<RuntimePlugin[]>;
31
+ /**
32
+ * Run a harness once for eval, building the FULL daemon-equivalent
33
+ * HarnessContext (plugins + solverPluginRoots) but with no persistence /
34
+ * on-chain wiring. Mirrors `HarnessEngine`'s `runImpl` context assembly
35
+ * (engine.ts §runImpl) and routes through the same freeze-fence.
36
+ *
37
+ * Owns the ephemeral working-dir lifecycle: the returned result references only
38
+ * the patch string + codeDigest (nothing under workingDir), so the dir is safe
39
+ * to reclaim in `finally` — preventing leaked repo clones across a full slate.
40
+ */
41
+ export declare function runHarnessForEval(args: {
42
+ harness: Harness;
43
+ task: Task;
44
+ solverType: string;
45
+ runtimePlugins: RuntimePlugin[];
46
+ implStateDir: string;
47
+ mode: 'frozen' | 'train';
48
+ solverNetName?: string;
49
+ model?: string;
50
+ }): Promise<{
51
+ violation?: {
52
+ taskId: string;
53
+ };
54
+ envelope?: {
55
+ executor: {
56
+ mode: 'train' | 'frozen';
57
+ codeDigest: string;
58
+ };
59
+ };
60
+ solution?: {
61
+ patch: string;
62
+ };
63
+ }>;
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Daemon-faithful harness run for `jinn eval` (issue #818) and the #822 e2e.
3
+ *
4
+ * Live testing proved the eval's earlier hand-rolled harness invocation did NOT
5
+ * reproduce the daemon's agent runtime: it ran the agent with NO SolverNet
6
+ * runtime plugins, so the claude-code adapter passed no `--plugin-dir`, the
7
+ * bundled MCP server never loaded, and the agent had no `submit_typed_payload`
8
+ * tool — producing no gradeable patch and rendering every task unscorable. The
9
+ * daemon scores the same tasks because it builds the full HarnessContext with
10
+ * `solverPluginRoots` from the SolverNet's runtime plugins (engine.ts §runImpl).
11
+ *
12
+ * This module is the single source of truth for that daemon-equivalent context.
13
+ * It rebuilds the engine's HarnessContext MINUS persistence/on-chain wiring and
14
+ * runs the harness through the SAME freeze-fence the daemon uses. The CLI uses
15
+ * it now; the #822 e2e delegates to it next.
16
+ */
17
+ import { mkdtempSync, rmSync } from 'node:fs';
18
+ import { tmpdir } from 'node:os';
19
+ import { join } from 'node:path';
20
+ import { provisionWorkingDir } from '../harnesses/engine/packaging.js';
21
+ import { runHarnessWithFreezeFence } from '../daemon/freeze-fence.js';
22
+ import { TrajectoryCollector } from '../trajectory/index.js';
23
+ import { loadSolverNets, } from '../solver-nets/registry.js';
24
+ /** Wall-clock budget for a single eval harness run (1h) when the task carries no window. */
25
+ const EVAL_RUN_BUDGET_MS = 3_600_000;
26
+ /**
27
+ * Resolve the SolverNet runtime plugins for `solverType`, exactly as the daemon
28
+ * does (`loadSolverNets(...).forSolverType(...)`). These plugins carry the
29
+ * bundled MCP server that provides `submit_typed_payload`; without them the
30
+ * agent cannot emit a gradeable patch.
31
+ *
32
+ * Fails LOUD with an operator-actionable message when there is no joined
33
+ * SolverNet for the solverType, or the matched net has no runtime plugins —
34
+ * mirroring the evaluator's `jinn harnesses enable` precondition.
35
+ */
36
+ export async function resolveRuntimePluginsForSolverType(solverType, joinedSolverNets, role = 'restoration') {
37
+ const registry = await loadSolverNets({ joinedSolverNets });
38
+ const net = registry.forSolverType(solverType, role);
39
+ if (!net) {
40
+ throw new Error(`no SolverNet for solverType ${solverType} (role ${role}): the eval runs the agent with the ` +
41
+ `SAME runtime plugins the daemon would, but this operator has not joined a SolverNet for it. ` +
42
+ `Join the SolverNet and install its plugins (e.g. set joinedSolverNets[<manifestCid>] in your ` +
43
+ `config and run \`jinn harnesses enable\`), then re-run eval.`);
44
+ }
45
+ if (net.runtimePlugins.length === 0) {
46
+ throw new Error(`SolverNet ${net.name} for solverType ${solverType} has no runtime plugins: the agent would run ` +
47
+ `without the bundled MCP server (no submit_typed_payload) and produce no gradeable patch. ` +
48
+ `Install the SolverNet's plugins (\`jinn harnesses enable\`) before running eval.`);
49
+ }
50
+ return net.runtimePlugins;
51
+ }
52
+ /**
53
+ * Run a harness once for eval, building the FULL daemon-equivalent
54
+ * HarnessContext (plugins + solverPluginRoots) but with no persistence /
55
+ * on-chain wiring. Mirrors `HarnessEngine`'s `runImpl` context assembly
56
+ * (engine.ts §runImpl) and routes through the same freeze-fence.
57
+ *
58
+ * Owns the ephemeral working-dir lifecycle: the returned result references only
59
+ * the patch string + codeDigest (nothing under workingDir), so the dir is safe
60
+ * to reclaim in `finally` — preventing leaked repo clones across a full slate.
61
+ */
62
+ export async function runHarnessForEval(args) {
63
+ const { harness, task, solverType, runtimePlugins, implStateDir, mode } = args;
64
+ const defaultEndTs = Date.now() + EVAL_RUN_BUDGET_MS;
65
+ const windowEndTs = task.window?.endTs ?? defaultEndTs;
66
+ // Fresh ephemeral scratch dir — SEPARATE from implStateDir so the harness's
67
+ // repo clone + diff harvest never trips the freeze-fence (which hashes
68
+ // implStateDir only). Provisioned the same way the engine does.
69
+ const workingDir = mkdtempSync(join(tmpdir(), 'jinn-eval-work-'));
70
+ const abort = new AbortController();
71
+ const msUntilEndTs = () => Math.max(0, windowEndTs - Date.now());
72
+ const endTimer = setTimeout(() => abort.abort(), msUntilEndTs());
73
+ // Don't keep the event loop alive on this timer (it's cleared in finally).
74
+ endTimer.unref?.();
75
+ try {
76
+ provisionWorkingDir(workingDir, task);
77
+ // Full daemon-equivalent HarnessContext — mirrors engine.ts §runImpl MINUS
78
+ // persistence/on-chain. The load-bearing fields are runtimePlugins +
79
+ // solverPluginRoots: they carry the bundled MCP server (submit_typed_payload).
80
+ const ctx = {
81
+ task,
82
+ requestId: task.id ?? `eval-${solverType}`,
83
+ taskCid: '',
84
+ solverNet: {
85
+ name: args.solverNetName ?? solverType,
86
+ solverType,
87
+ ...(args.model ? { model: args.model } : {}),
88
+ },
89
+ runtimePlugins,
90
+ solverPluginRoots: runtimePlugins.map((plugin) => plugin.root),
91
+ implStateDir,
92
+ workingDir,
93
+ log: () => {
94
+ /* eval run: quiet harness logs */
95
+ },
96
+ abort: abort.signal,
97
+ msUntilEndTs,
98
+ trajectory: new TrajectoryCollector({ taskCid: '', runId: `eval-${task.id ?? solverType}` }),
99
+ mode,
100
+ };
101
+ const fence = await runHarnessWithFreezeFence(harness, ctx);
102
+ if (!fence.ok) {
103
+ return { violation: { taskId: task.id ?? `eval-${solverType}` } };
104
+ }
105
+ const patch = fence.output.solutionPayload?.patch;
106
+ if (typeof patch !== 'string') {
107
+ throw new Error(`eval harness produced no swe-rebench-v2 patch for task ${task.id ?? solverType} ` +
108
+ `(solutionPayload.patch missing) — the agent ran but emitted no gradeable diff`);
109
+ }
110
+ return {
111
+ envelope: { executor: { mode, codeDigest: `sha256:${fence.codeDigest}` } },
112
+ solution: { patch },
113
+ };
114
+ }
115
+ finally {
116
+ clearTimeout(endTimer);
117
+ // Always reclaim the per-task scratch dir — swe-rebench-v2 clones a real
118
+ // upstream repo here; leaking it across a full slate piles onto the
119
+ // disk-pressure this stack already guards (JINN_EVAL_DISK_FLOOR_GB).
120
+ rmSync(workingDir, { recursive: true, force: true });
121
+ }
122
+ }
123
+ //# sourceMappingURL=eval-harness-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-harness-run.js","sourceRoot":"","sources":["../../src/eval/eval-harness-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** Acklam's rational approximation to the inverse normal CDF (|err| < 1.15e-9). */
2
+ export declare function zFor(p: number): number;
3
+ export interface SampleSizeOpts {
4
+ alpha?: number;
5
+ power?: number;
6
+ }
7
+ /**
8
+ * Connor (1987) total task-PAIRS N for McNemar's test.
9
+ * pb = P(B passes, A fails); pc = P(A passes, B fails).
10
+ */
11
+ export declare function mcnemarSampleSize(pb: number, pc: number, opts?: SampleSizeOpts): {
12
+ pairs: number;
13
+ discordant: number;
14
+ };
@@ -0,0 +1,40 @@
1
+ /** Acklam's rational approximation to the inverse normal CDF (|err| < 1.15e-9). */
2
+ export function zFor(p) {
3
+ if (p <= 0 || p >= 1)
4
+ throw new Error('zFor expects 0 < p < 1');
5
+ const a = [-3.969683028665376e+01, 2.209460984245205e+02, -2.759285104469687e+02, 1.383577518672690e+02, -3.066479806614716e+01, 2.506628277459239e+00];
6
+ const b = [-5.447609879822406e+01, 1.615858368580409e+02, -1.556989798598866e+02, 6.680131188771972e+01, -1.328068155288572e+01];
7
+ const c = [-7.784894002430293e-03, -3.223964580411365e-01, -2.400758277161838e+00, -2.549732539343734e+00, 4.374664141464968e+00, 2.938163982698783e+00];
8
+ const d = [7.784695709041462e-03, 3.224671290700398e-01, 2.445134137142996e+00, 3.754408661907416e+00];
9
+ const pl = 0.02425;
10
+ let q, r;
11
+ if (p < pl) {
12
+ q = Math.sqrt(-2 * Math.log(p));
13
+ return (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
14
+ }
15
+ if (p > 1 - pl) {
16
+ q = Math.sqrt(-2 * Math.log(1 - p));
17
+ return -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
18
+ }
19
+ q = p - 0.5;
20
+ r = q * q;
21
+ return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * q / (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1);
22
+ }
23
+ /**
24
+ * Connor (1987) total task-PAIRS N for McNemar's test.
25
+ * pb = P(B passes, A fails); pc = P(A passes, B fails).
26
+ */
27
+ export function mcnemarSampleSize(pb, pc, opts = {}) {
28
+ const alpha = opts.alpha ?? 0.05;
29
+ const power = opts.power ?? 0.8;
30
+ const diff = pb - pc;
31
+ if (diff <= 0)
32
+ throw new Error('mcnemarSampleSize expects pb > pc (a positive effect)');
33
+ const pd = pb + pc;
34
+ const za = zFor(1 - alpha / 2);
35
+ const zb = zFor(power);
36
+ const m = Math.pow(za * Math.sqrt(pd) + zb * Math.sqrt(pd - diff * diff), 2) / (diff * diff);
37
+ const pairs = m / pd;
38
+ return { pairs: Math.ceil(pairs), discordant: Math.ceil(m) };
39
+ }
40
+ //# sourceMappingURL=mcnemar-power.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcnemar-power.js","sourceRoot":"","sources":["../../src/eval/mcnemar-power.ts"],"names":[],"mappings":"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"}