@jinn-network/client 0.1.7 → 0.1.8-canary.0a152013

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 (361) hide show
  1. package/README.md +67 -1
  2. package/dist/adapters/mech/adapter.d.ts +19 -1
  3. package/dist/adapters/mech/adapter.js +130 -14
  4. package/dist/adapters/mech/adapter.js.map +1 -1
  5. package/dist/adapters/mech/contracts.d.ts +22 -1
  6. package/dist/adapters/mech/contracts.js +34 -24
  7. package/dist/adapters/mech/contracts.js.map +1 -1
  8. package/dist/adapters/mech/safe.d.ts +1 -1
  9. package/dist/adapters/mech/safe.js +5 -3
  10. package/dist/adapters/mech/safe.js.map +1 -1
  11. package/dist/adapters/mech/types.d.ts +6 -1
  12. package/dist/adapters/mech/types.js.map +1 -1
  13. package/dist/agent/operator-claude.js +8 -0
  14. package/dist/agent/operator-claude.js.map +1 -1
  15. package/dist/api/activity-events-endpoint.d.ts +14 -0
  16. package/dist/api/activity-events-endpoint.js +59 -0
  17. package/dist/api/activity-events-endpoint.js.map +1 -0
  18. package/dist/api/bootstrap-endpoint.d.ts +1 -2
  19. package/dist/api/bootstrap-endpoint.js +42 -24
  20. package/dist/api/bootstrap-endpoint.js.map +1 -1
  21. package/dist/api/codex-doctor-endpoint.d.ts +22 -5
  22. package/dist/api/codex-doctor-endpoint.js +136 -17
  23. package/dist/api/codex-doctor-endpoint.js.map +1 -1
  24. package/dist/api/debug-report-endpoint.d.ts +27 -0
  25. package/dist/api/debug-report-endpoint.js +157 -0
  26. package/dist/api/debug-report-endpoint.js.map +1 -0
  27. package/dist/api/discovery-endpoint.d.ts +1 -0
  28. package/dist/api/discovery-endpoint.js +24 -0
  29. package/dist/api/discovery-endpoint.js.map +1 -1
  30. package/dist/api/gather-status.d.ts +33 -0
  31. package/dist/api/gather-status.js +211 -26
  32. package/dist/api/gather-status.js.map +1 -1
  33. package/dist/api/hermes-doctor-endpoint.d.ts +15 -7
  34. package/dist/api/hermes-doctor-endpoint.js +56 -19
  35. package/dist/api/hermes-doctor-endpoint.js.map +1 -1
  36. package/dist/api/launcher-status.d.ts +4 -2
  37. package/dist/api/launcher-status.js +11 -10
  38. package/dist/api/launcher-status.js.map +1 -1
  39. package/dist/api/launcher-tasks.d.ts +1 -1
  40. package/dist/api/launcher-tasks.js +12 -8
  41. package/dist/api/launcher-tasks.js.map +1 -1
  42. package/dist/api/operator-artifacts-endpoint.js +73 -6
  43. package/dist/api/operator-artifacts-endpoint.js.map +1 -1
  44. package/dist/api/portfolio-v0-build.d.ts +7 -1
  45. package/dist/api/portfolio-v0-build.js +6 -2
  46. package/dist/api/portfolio-v0-build.js.map +1 -1
  47. package/dist/api/prediction-v1-build.d.ts +6 -0
  48. package/dist/api/prediction-v1-build.js +3 -1
  49. package/dist/api/prediction-v1-build.js.map +1 -1
  50. package/dist/api/server.d.ts +17 -0
  51. package/dist/api/server.js +40 -1
  52. package/dist/api/server.js.map +1 -1
  53. package/dist/api/setup-endpoints.d.ts +0 -9
  54. package/dist/api/setup-endpoints.js +11 -153
  55. package/dist/api/setup-endpoints.js.map +1 -1
  56. package/dist/api/solvernets-endpoints.js +30 -63
  57. package/dist/api/solvernets-endpoints.js.map +1 -1
  58. package/dist/api/status-build.d.ts +115 -2
  59. package/dist/api/status-build.js +47 -11
  60. package/dist/api/status-build.js.map +1 -1
  61. package/dist/api/status-harness-rollup.d.ts +35 -0
  62. package/dist/api/status-harness-rollup.js +45 -0
  63. package/dist/api/status-harness-rollup.js.map +1 -0
  64. package/dist/api/task-runs-build.d.ts +8 -0
  65. package/dist/api/task-runs-build.js +5 -1
  66. package/dist/api/task-runs-build.js.map +1 -1
  67. package/dist/build-info.json +4 -4
  68. package/dist/build-meta.json +1 -1
  69. package/dist/captures/live-publisher.js +24 -4
  70. package/dist/captures/live-publisher.js.map +1 -1
  71. package/dist/captures/publish.d.ts +1 -1
  72. package/dist/chain-read-errors.d.ts +12 -0
  73. package/dist/chain-read-errors.js +26 -1
  74. package/dist/chain-read-errors.js.map +1 -1
  75. package/dist/cli/commands/codedigest-revert-check.d.ts +33 -0
  76. package/dist/cli/commands/codedigest-revert-check.js +249 -0
  77. package/dist/cli/commands/codedigest-revert-check.js.map +1 -0
  78. package/dist/cli/commands/eval.d.ts +76 -0
  79. package/dist/cli/commands/eval.js +391 -0
  80. package/dist/cli/commands/eval.js.map +1 -0
  81. package/dist/cli/commands/solver-nets.d.ts +1 -0
  82. package/dist/cli/commands/solver-nets.js +177 -22
  83. package/dist/cli/commands/solver-nets.js.map +1 -1
  84. package/dist/cli/commands/solver-plugins-block.d.ts +33 -0
  85. package/dist/cli/commands/solver-plugins-block.js +118 -0
  86. package/dist/cli/commands/solver-plugins-block.js.map +1 -0
  87. package/dist/cli/commands/solver-plugins-feedback.d.ts +72 -0
  88. package/dist/cli/commands/solver-plugins-feedback.js +262 -0
  89. package/dist/cli/commands/solver-plugins-feedback.js.map +1 -0
  90. package/dist/cli/commands/solver-plugins-read.d.ts +54 -0
  91. package/dist/cli/commands/solver-plugins-read.js +259 -0
  92. package/dist/cli/commands/solver-plugins-read.js.map +1 -0
  93. package/dist/cli/commands/solver-plugins.d.ts +35 -0
  94. package/dist/cli/commands/solver-plugins.js +399 -2
  95. package/dist/cli/commands/solver-plugins.js.map +1 -1
  96. package/dist/cli/commands/tasks.js +15 -2
  97. package/dist/cli/commands/tasks.js.map +1 -1
  98. package/dist/cli/index.js +4 -0
  99. package/dist/cli/index.js.map +1 -1
  100. package/dist/cli/task-native-readiness.d.ts +7 -0
  101. package/dist/cli/task-native-readiness.js +7 -5
  102. package/dist/cli/task-native-readiness.js.map +1 -1
  103. package/dist/config.d.ts +199 -232
  104. package/dist/config.js +268 -107
  105. package/dist/config.js.map +1 -1
  106. package/dist/daemon/ai-units-gate.d.ts +54 -0
  107. package/dist/daemon/ai-units-gate.js +82 -0
  108. package/dist/daemon/ai-units-gate.js.map +1 -0
  109. package/dist/daemon/creator.js +13 -0
  110. package/dist/daemon/creator.js.map +1 -1
  111. package/dist/daemon/daemon.d.ts +10 -0
  112. package/dist/daemon/daemon.js +203 -30
  113. package/dist/daemon/daemon.js.map +1 -1
  114. package/dist/daemon/eviction-loop.d.ts +7 -0
  115. package/dist/daemon/eviction-loop.js +16 -0
  116. package/dist/daemon/eviction-loop.js.map +1 -1
  117. package/dist/daemon/gate-logger.d.ts +9 -0
  118. package/dist/daemon/gate-logger.js +2 -0
  119. package/dist/daemon/gate-logger.js.map +1 -0
  120. package/dist/daemon/jinn-claim-loop.js +22 -4
  121. package/dist/daemon/jinn-claim-loop.js.map +1 -1
  122. package/dist/daemon/readiness-gate.d.ts +1 -4
  123. package/dist/daemon/readiness-gate.js.map +1 -1
  124. package/dist/daemon/spend-cap-gate.d.ts +40 -0
  125. package/dist/daemon/spend-cap-gate.js +46 -0
  126. package/dist/daemon/spend-cap-gate.js.map +1 -0
  127. package/dist/dashboard/assets/index-CldYENtT.js +359 -0
  128. package/dist/dashboard/assets/index-CzKxvMcU.css +32 -0
  129. package/dist/dashboard/index.html +2 -2
  130. package/dist/discovery/http.js +411 -2
  131. package/dist/discovery/http.js.map +1 -1
  132. package/dist/discovery/onchain.js +123 -5
  133. package/dist/discovery/onchain.js.map +1 -1
  134. package/dist/discovery/types.d.ts +202 -0
  135. package/dist/discovery/types.js +40 -0
  136. package/dist/discovery/types.js.map +1 -1
  137. package/dist/discovery/with-fallback.js +34 -0
  138. package/dist/discovery/with-fallback.js.map +1 -1
  139. package/dist/earning/bootstrap.d.ts +25 -3
  140. package/dist/earning/bootstrap.js +69 -15
  141. package/dist/earning/bootstrap.js.map +1 -1
  142. package/dist/earning/safe-adapter.js +34 -11
  143. package/dist/earning/safe-adapter.js.map +1 -1
  144. package/dist/earning/types.d.ts +6 -6
  145. package/dist/earning/viem-clients.d.ts +11 -4
  146. package/dist/earning/viem-clients.js +14 -5
  147. package/dist/earning/viem-clients.js.map +1 -1
  148. package/dist/erc8004/identity.d.ts +19 -3
  149. package/dist/erc8004/identity.js +38 -11
  150. package/dist/erc8004/identity.js.map +1 -1
  151. package/dist/erc8004/index.d.ts +1 -1
  152. package/dist/erc8004/index.js.map +1 -1
  153. package/dist/eval/eval-harness-run.d.ts +63 -0
  154. package/dist/eval/eval-harness-run.js +123 -0
  155. package/dist/eval/eval-harness-run.js.map +1 -0
  156. package/dist/eval/orchestrator.d.ts +146 -0
  157. package/dist/eval/orchestrator.js +221 -0
  158. package/dist/eval/orchestrator.js.map +1 -0
  159. package/dist/eval/resolve-slate-tasks.d.ts +35 -0
  160. package/dist/eval/resolve-slate-tasks.js +56 -0
  161. package/dist/eval/resolve-slate-tasks.js.map +1 -0
  162. package/dist/eval/slope.d.ts +29 -0
  163. package/dist/eval/slope.js +46 -0
  164. package/dist/eval/slope.js.map +1 -0
  165. package/dist/eval/train-sequence.d.ts +35 -0
  166. package/dist/eval/train-sequence.js +59 -0
  167. package/dist/eval/train-sequence.js.map +1 -0
  168. package/dist/eval/wilson.d.ts +45 -0
  169. package/dist/eval/wilson.js +48 -0
  170. package/dist/eval/wilson.js.map +1 -0
  171. package/dist/events/types.d.ts +2 -2
  172. package/dist/harnesses/cost-estimates.d.ts +10 -31
  173. package/dist/harnesses/cost-estimates.js +11 -43
  174. package/dist/harnesses/cost-estimates.js.map +1 -1
  175. package/dist/harnesses/engine/canonical-json.js +5 -3
  176. package/dist/harnesses/engine/canonical-json.js.map +1 -1
  177. package/dist/harnesses/engine/engine.d.ts +37 -4
  178. package/dist/harnesses/engine/engine.js +138 -17
  179. package/dist/harnesses/engine/engine.js.map +1 -1
  180. package/dist/harnesses/engine/persistence.d.ts +21 -4
  181. package/dist/harnesses/engine/persistence.js +43 -6
  182. package/dist/harnesses/engine/persistence.js.map +1 -1
  183. package/dist/harnesses/engine/state.d.ts +9 -0
  184. package/dist/harnesses/engine/state.js +23 -10
  185. package/dist/harnesses/engine/state.js.map +1 -1
  186. package/dist/harnesses/impls/hermes-agent/bootstrap.js +4 -2
  187. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  188. package/dist/harnesses/impls/hermes-agent/config-builder.d.ts +1 -1
  189. package/dist/harnesses/impls/hermes-agent/config-builder.js +4 -2
  190. package/dist/harnesses/impls/hermes-agent/config-builder.js.map +1 -1
  191. package/dist/harnesses/impls/hermes-agent/harness.d.ts +14 -0
  192. package/dist/harnesses/impls/hermes-agent/harness.js +16 -2
  193. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  194. package/dist/harnesses/impls/hermes-agent/prompt.d.ts +6 -6
  195. package/dist/harnesses/impls/hermes-agent/prompt.js +6 -6
  196. package/dist/harnesses/impls/learner/adapters/claude-code.d.ts +17 -0
  197. package/dist/harnesses/impls/learner/adapters/claude-code.js +113 -14
  198. package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
  199. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +9 -0
  200. package/dist/harnesses/impls/learner/adapters/codex-code.js +30 -8
  201. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  202. package/dist/harnesses/impls/learner/harness.d.ts +24 -0
  203. package/dist/harnesses/impls/learner/harness.js +33 -4
  204. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  205. package/dist/harnesses/impls/learner/harvest.d.ts +3 -1
  206. package/dist/harnesses/impls/learner/harvest.js +30 -6
  207. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  208. package/dist/harnesses/impls/learner/restoration-patch.d.ts +2 -2
  209. package/dist/harnesses/impls/learner/restoration-patch.js +25 -6
  210. package/dist/harnesses/impls/learner/restoration-patch.js.map +1 -1
  211. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +21 -1
  212. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  213. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +74 -5
  214. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +103 -32
  215. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
  216. package/dist/harnesses/readiness-registry.d.ts +7 -0
  217. package/dist/harnesses/readiness-registry.js +9 -0
  218. package/dist/harnesses/readiness-registry.js.map +1 -1
  219. package/dist/learner/revert-decision.d.ts +59 -0
  220. package/dist/learner/revert-decision.js +53 -0
  221. package/dist/learner/revert-decision.js.map +1 -0
  222. package/dist/learner/revert-stats.d.ts +24 -0
  223. package/dist/learner/revert-stats.js +44 -0
  224. package/dist/learner/revert-stats.js.map +1 -0
  225. package/dist/main.js +178 -104
  226. package/dist/main.js.map +1 -1
  227. package/dist/mcp/get-codedigest-reward.d.ts +13 -0
  228. package/dist/mcp/get-codedigest-reward.js +23 -0
  229. package/dist/mcp/get-codedigest-reward.js.map +1 -0
  230. package/dist/mcp/server.js +23 -0
  231. package/dist/mcp/server.js.map +1 -1
  232. package/dist/observability/debug-report-assemble.d.ts +43 -0
  233. package/dist/observability/debug-report-assemble.js +80 -0
  234. package/dist/observability/debug-report-assemble.js.map +1 -0
  235. package/dist/observability/emit-event.d.ts +9 -2
  236. package/dist/observability/emit-event.js +36 -2
  237. package/dist/observability/emit-event.js.map +1 -1
  238. package/dist/observability/file-logger.d.ts +69 -0
  239. package/dist/observability/file-logger.js +177 -0
  240. package/dist/observability/file-logger.js.map +1 -0
  241. package/dist/observability/redact-secrets.d.ts +65 -0
  242. package/dist/observability/redact-secrets.js +300 -0
  243. package/dist/observability/redact-secrets.js.map +1 -0
  244. package/dist/observability/tar.d.ts +30 -0
  245. package/dist/observability/tar.js +102 -0
  246. package/dist/observability/tar.js.map +1 -0
  247. package/dist/plugins/learner/hooks/session-start +18 -1
  248. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +18 -1
  249. package/dist/plugins/learner/skills/learn/promoter-prompt.md +72 -1
  250. package/dist/preflight/pidfile-liveness.d.ts +50 -0
  251. package/dist/preflight/pidfile-liveness.js +117 -0
  252. package/dist/preflight/pidfile-liveness.js.map +1 -0
  253. package/dist/preflight/rpc-network.d.ts +40 -0
  254. package/dist/preflight/rpc-network.js +67 -1
  255. package/dist/preflight/rpc-network.js.map +1 -1
  256. package/dist/rpc/transport.d.ts +109 -0
  257. package/dist/rpc/transport.js +220 -0
  258. package/dist/rpc/transport.js.map +1 -0
  259. package/dist/scripts/donation-consumption-acceptance.js +7 -28
  260. package/dist/scripts/donation-consumption-acceptance.js.map +1 -1
  261. package/dist/scripts/swe-rebench-v2-pytest-missing.json +16 -0
  262. package/dist/solver-nets/prediction-operator-ux.d.ts +1 -2
  263. package/dist/solver-nets/prediction-operator-ux.js +56 -53
  264. package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
  265. package/dist/solver-nets/registry.d.ts +19 -1
  266. package/dist/solver-nets/registry.js +37 -24
  267. package/dist/solver-nets/registry.js.map +1 -1
  268. package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +64 -0
  269. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +139 -0
  270. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
  271. package/dist/solver-types/_swe-rebench-v2-pool.d.ts +9 -2
  272. package/dist/solver-types/_swe-rebench-v2-pool.js +15 -20
  273. package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -1
  274. package/dist/solver-types/_swe-rebench-v2-state.d.ts +15 -0
  275. package/dist/solver-types/_swe-rebench-v2-state.js +19 -0
  276. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
  277. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +116 -2
  278. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +296 -21
  279. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  280. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
  281. package/dist/solver-types/solver-type.d.ts +8 -0
  282. package/dist/solver-types/swe-rebench-v2-auto.d.ts +20 -11
  283. package/dist/solver-types/swe-rebench-v2-auto.js +64 -19
  284. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
  285. package/dist/solver-types/swe-rebench-v2.d.ts +8 -2
  286. package/dist/solver-types/swe-rebench-v2.js +151 -12
  287. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  288. package/dist/solvernets/daemon-init.d.ts +1 -1
  289. package/dist/solvernets/daemon-init.js +19 -4
  290. package/dist/solvernets/daemon-init.js.map +1 -1
  291. package/dist/solvernets/launched-record-dispatcher.d.ts +4 -0
  292. package/dist/solvernets/launched-record-dispatcher.js +10 -4
  293. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  294. package/dist/solvernets/registry-client-erc8004.js +11 -0
  295. package/dist/solvernets/registry-client-erc8004.js.map +1 -1
  296. package/dist/solvernets/store.d.ts +2 -2
  297. package/dist/solvernets/store.js +7 -2
  298. package/dist/solvernets/store.js.map +1 -1
  299. package/dist/spend/ai-units-config.d.ts +39 -0
  300. package/dist/spend/ai-units-config.js +28 -0
  301. package/dist/spend/ai-units-config.js.map +1 -0
  302. package/dist/spend/ai-units.d.ts +89 -0
  303. package/dist/spend/ai-units.js +156 -0
  304. package/dist/spend/ai-units.js.map +1 -0
  305. package/dist/spend/cost-surface-status.d.ts +12 -0
  306. package/dist/spend/cost-surface-status.js +24 -0
  307. package/dist/spend/cost-surface-status.js.map +1 -0
  308. package/dist/spend/credential.d.ts +39 -0
  309. package/dist/spend/credential.js +71 -0
  310. package/dist/spend/credential.js.map +1 -0
  311. package/dist/spend/daemon-config.d.ts +13 -0
  312. package/dist/spend/daemon-config.js +24 -0
  313. package/dist/spend/daemon-config.js.map +1 -0
  314. package/dist/spend/pricing.d.ts +16 -0
  315. package/dist/spend/pricing.js +26 -0
  316. package/dist/spend/pricing.js.map +1 -0
  317. package/dist/spend/record.d.ts +13 -0
  318. package/dist/spend/record.js +36 -0
  319. package/dist/spend/record.js.map +1 -0
  320. package/dist/spend/usage.d.ts +27 -0
  321. package/dist/spend/usage.js +113 -0
  322. package/dist/spend/usage.js.map +1 -0
  323. package/dist/store/store.d.ts +144 -0
  324. package/dist/store/store.js +396 -4
  325. package/dist/store/store.js.map +1 -1
  326. package/dist/trajectory/transcript-parsers/codex-session.d.ts +12 -6
  327. package/dist/trajectory/transcript-parsers/codex-session.js +114 -13
  328. package/dist/trajectory/transcript-parsers/codex-session.js.map +1 -1
  329. package/dist/trajectory/transcript-parsers/types.d.ts +8 -8
  330. package/dist/trajectory/transcript-session-dirs.d.ts +18 -0
  331. package/dist/trajectory/transcript-session-dirs.js +85 -0
  332. package/dist/trajectory/transcript-session-dirs.js.map +1 -0
  333. package/dist/trajectory/transcript-watcher.d.ts +20 -1
  334. package/dist/trajectory/transcript-watcher.js +108 -32
  335. package/dist/trajectory/transcript-watcher.js.map +1 -1
  336. package/dist/tx-retry.d.ts +25 -0
  337. package/dist/tx-retry.js +95 -7
  338. package/dist/tx-retry.js.map +1 -1
  339. package/dist/types/payloads/portfolio-v0.d.ts +3 -3
  340. package/dist/types/payloads/prediction-apy-v0.d.ts +3 -3
  341. package/dist/types/payloads/prediction-v0.d.ts +12 -12
  342. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
  343. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
  344. package/dist/vendor/@jinn-network/sdk/package.json +4 -0
  345. package/package.json +21 -12
  346. package/plugins/learner/hooks/session-start +18 -1
  347. package/plugins/learner/skills/learn/consolidator-prompt.md +18 -1
  348. package/plugins/learner/skills/learn/promoter-prompt.md +72 -1
  349. package/plugins/swe-rebench-v2-diffmin/README.md +10 -9
  350. package/plugins/swe-rebench-v2-diffmin/jinn.plugin.json +1 -1
  351. package/plugins/swe-rebench-v2-diffmin/skills/diffmin/SKILL.md +15 -10
  352. package/plugins/swe-rebench-v2-diffmin/skills/test-map/SKILL.md +10 -12
  353. package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +1 -1
  354. package/plugins/swe-rebench-v2-runtime/.codex-plugin/plugin.json +3 -3
  355. package/plugins/swe-rebench-v2-runtime/README.md +6 -6
  356. package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +2 -3
  357. package/plugins/swe-rebench-v2-runtime/skills/task/SKILL.md +81 -0
  358. package/dist/dashboard/assets/index-BUlE8F3Y.js +0 -330
  359. package/dist/dashboard/assets/index-blqc7eqq.css +0 -32
  360. package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +0 -29
  361. package/plugins/swe-rebench-v2-runtime/skills/plan/SKILL.md +0 -53
@@ -0,0 +1,249 @@
1
+ import { parseArgs } from 'node:util';
2
+ import { execFileSync } from 'node:child_process';
3
+ import { mkdtempSync, rmSync } from 'node:fs';
4
+ import { tmpdir } from 'node:os';
5
+ import { join } from 'node:path';
6
+ import { emitEnvelope } from '../../errors/envelope.js';
7
+ import { loadConfig } from '../../config.js';
8
+ import { createDiscoveryAPI } from '../../discovery/factory.js';
9
+ import { DiscoveryUnavailableError } from '../../discovery/types.js';
10
+ import { hashImplStateDir } from '../../harnesses/freeze.js';
11
+ import { decideRevert, resolveRevertPolicy, } from '../../learner/revert-decision.js';
12
+ const PRODUCTION_DEPS = {
13
+ buildDiscovery: (configPath) => {
14
+ const config = loadConfig(configPath);
15
+ const chainId = config.network === 'testnet' ? 84532 : 8453;
16
+ // Mirror the daemon's floor wiring (solver-plugins.ts discoveryApiFactory):
17
+ // only rpcUrl + chainId are needed for the http primary; the floor is never
18
+ // routed for getCodeDigestRewards (withFallback propagates the error).
19
+ return createDiscoveryAPI(config.discovery ?? { mode: 'onchain' }, {
20
+ rpcUrl: config.rpcUrl,
21
+ chainId,
22
+ });
23
+ },
24
+ };
25
+ /**
26
+ * A commit sha as it appears in the operator's local `improvePromotionsDir`
27
+ * records: 7-64 hex chars (abbreviated through full git object ids). Rejecting
28
+ * anything else BEFORE handing the value to `git archive` closes the
29
+ * argument-injection class where a leading-dash value (`--output=...`,
30
+ * `--remote=...`) is parsed as a git option instead of a tree-ish (#764 M1).
31
+ */
32
+ const COMMIT_SHA_RE = /^[0-9a-fA-F]{7,64}$/;
33
+ export function isValidCommitSha(sha) {
34
+ return COMMIT_SHA_RE.test(sha);
35
+ }
36
+ /**
37
+ * Hash a commit's tree the way production stamps codeDigest: export the tree
38
+ * with `git archive` (no `.git`) and re-hash with the same deterministic hasher
39
+ * `hashImplStateDir` uses, ignoring `.git`. Returns the `sha256:`-prefixed
40
+ * digest the indexer stores. Keeping this in TS means the Consolidator prompt
41
+ * never reimplements the hasher (the single largest correctness risk, #764).
42
+ */
43
+ export async function codeDigestForCommit(implStateDir, sha) {
44
+ if (!isValidCommitSha(sha)) {
45
+ throw new Error(`commit sha must be 7-64 hex chars (got "${sha}")`);
46
+ }
47
+ const exportDir = mkdtempSync(join(tmpdir(), 'cd-export-'));
48
+ try {
49
+ // `--` is an end-of-options separator: even though `sha` is shape-validated
50
+ // above, this is defense-in-depth so `git archive` can never parse a
51
+ // leading-dash value as an option (#764 M1, git argument-injection class).
52
+ const tar = execFileSync('git', ['archive', '--', sha], { cwd: implStateDir, maxBuffer: 1 << 28 });
53
+ execFileSync('tar', ['-x', '-C', exportDir], { input: tar });
54
+ const hex = await hashImplStateDir(exportDir, { ignoreRelPaths: ['.git'] });
55
+ return `sha256:${hex}`;
56
+ }
57
+ finally {
58
+ rmSync(exportDir, { recursive: true, force: true });
59
+ }
60
+ }
61
+ /**
62
+ * Validate the optional numeric CLI flags (#764 M1). Each is only checked when
63
+ * the operator actually provided it (omitted → policy default applies). Returns
64
+ * the first failure, or `undefined` when all provided flags are in range.
65
+ * - min-samples: finite integer >= 1
66
+ * - window: finite integer >= 1
67
+ * - alpha: finite number in the open interval (0, 1)
68
+ */
69
+ export function validateNumericFlags(flags) {
70
+ const isPositiveInt = (n) => Number.isFinite(n) && Number.isInteger(n) && n >= 1;
71
+ if (flags.minSamples !== undefined) {
72
+ const n = Number(flags.minSamples);
73
+ if (!isPositiveInt(n)) {
74
+ return { field: 'min-samples', message: `--min-samples must be a finite integer >= 1 (got "${flags.minSamples}")` };
75
+ }
76
+ }
77
+ if (flags.window !== undefined) {
78
+ const n = Number(flags.window);
79
+ if (!isPositiveInt(n)) {
80
+ return { field: 'window', message: `--window must be a finite integer >= 1 (got "${flags.window}")` };
81
+ }
82
+ }
83
+ if (flags.alpha !== undefined) {
84
+ const n = Number(flags.alpha);
85
+ if (!Number.isFinite(n) || n <= 0 || n >= 1) {
86
+ return { field: 'alpha', message: `--alpha must be a finite number in (0, 1) (got "${flags.alpha}")` };
87
+ }
88
+ }
89
+ return undefined;
90
+ }
91
+ function toAggregate(codeDigest, rows) {
92
+ const found = rows.find((r) => r.codeDigest === codeDigest);
93
+ if (!found)
94
+ return { codeDigest, attempts: 0, passes: 0, passRate: 0 };
95
+ return { codeDigest, attempts: found.attempts, passes: found.passes, passRate: found.passRate };
96
+ }
97
+ export function createCodedigestRevertCheckCommand(deps = PRODUCTION_DEPS) {
98
+ return {
99
+ name: 'codedigest-revert-check',
100
+ summary: 'Decide whether an Improve commit regressed the pass rate (per-codeDigest, #764)',
101
+ helpText: `Usage:
102
+ jinn codedigest-revert-check --code-digest <sha256:...> --parent-code-digest <sha256:...> [options]
103
+ jinn codedigest-revert-check --impl-state-dir <path> --commit <sha> --parent <sha> [options]
104
+
105
+ Options:
106
+ --operator 0x.. Restrict aggregates to attempts this operator Safe claimed
107
+ --solvernet <cid> Restrict to a SolverNet manifest CID
108
+ --min-samples N Minimum indexed attempts per arm (default 30)
109
+ --alpha A Two-sided significance threshold (default 0.05)
110
+ --window N Recent-attempts window per codeDigest (default 200)
111
+ --json Emit JSON (default)
112
+
113
+ Either pass two codeDigests directly, OR pass --impl-state-dir + --commit + --parent
114
+ to have the command export each commit's tree (git archive, no .git) and hash it
115
+ the way production stamps codeDigest — so the caller never reimplements the hasher.
116
+
117
+ Emits a JSON decision: { withCommit, atParent, delta, pValue, significant, recommendRevert, reason }.
118
+ On indexer outage emits recommendRevert=false reason=discovery_unavailable (the Consolidator then skips reverts).`,
119
+ async run(ctx) {
120
+ let parsed;
121
+ try {
122
+ parsed = parseArgs({
123
+ args: ctx.argv,
124
+ options: {
125
+ 'code-digest': { type: 'string' },
126
+ 'parent-code-digest': { type: 'string' },
127
+ 'impl-state-dir': { type: 'string' },
128
+ commit: { type: 'string' },
129
+ parent: { type: 'string' },
130
+ operator: { type: 'string' },
131
+ solvernet: { type: 'string' },
132
+ 'min-samples': { type: 'string' },
133
+ alpha: { type: 'string' },
134
+ window: { type: 'string' },
135
+ config: { type: 'string' },
136
+ json: { type: 'boolean', default: true },
137
+ },
138
+ allowPositionals: false,
139
+ });
140
+ }
141
+ catch (err) {
142
+ emitEnvelope({
143
+ code: 'invalid_invocation',
144
+ message: err instanceof Error ? err.message : String(err),
145
+ exampleCli: 'jinn codedigest-revert-check --code-digest sha256:.. --parent-code-digest sha256:..',
146
+ details: { field: 'flags' },
147
+ }, { writer: ctx.writer, exit: ctx.exit });
148
+ return;
149
+ }
150
+ // Resolve the two codeDigests — either supplied directly or hashed from
151
+ // an impl-state-dir git history.
152
+ let child = parsed.values['code-digest'];
153
+ let parent = parsed.values['parent-code-digest'];
154
+ const implStateDir = parsed.values['impl-state-dir'];
155
+ const commitSha = parsed.values.commit;
156
+ const parentSha = parsed.values.parent;
157
+ if ((!child || !parent) && implStateDir && commitSha && parentSha) {
158
+ // Validate sha shape before any git invocation. A leading-dash value
159
+ // would be parsed by `git archive` as an option, not a tree-ish
160
+ // (#764 M1 argument-injection). Reject with the command's existing
161
+ // invalid_invocation envelope (exit 11) rather than letting it flow
162
+ // into git.
163
+ const badSha = !isValidCommitSha(commitSha)
164
+ ? { field: 'commit', value: commitSha }
165
+ : !isValidCommitSha(parentSha)
166
+ ? { field: 'parent', value: parentSha }
167
+ : undefined;
168
+ if (badSha) {
169
+ emitEnvelope({
170
+ code: 'invalid_invocation',
171
+ message: `--${badSha.field} sha must be 7-64 hex chars (got "${badSha.value}")`,
172
+ exampleCli: 'jinn codedigest-revert-check --impl-state-dir <path> --commit <sha> --parent <sha>',
173
+ details: { field: badSha.field },
174
+ }, { writer: ctx.writer, exit: ctx.exit });
175
+ return;
176
+ }
177
+ try {
178
+ [child, parent] = await Promise.all([
179
+ codeDigestForCommit(implStateDir, commitSha),
180
+ codeDigestForCommit(implStateDir, parentSha),
181
+ ]);
182
+ }
183
+ catch (err) {
184
+ emitEnvelope({
185
+ code: 'invalid_invocation',
186
+ message: `failed to hash commit trees: ${err instanceof Error ? err.message : String(err)}`,
187
+ exampleCli: 'jinn codedigest-revert-check --impl-state-dir <path> --commit <sha> --parent <sha>',
188
+ details: { field: 'impl-state-dir' },
189
+ }, { writer: ctx.writer, exit: ctx.exit });
190
+ return;
191
+ }
192
+ }
193
+ if (!child || !parent) {
194
+ emitEnvelope({
195
+ code: 'invalid_invocation',
196
+ message: 'provide either --code-digest + --parent-code-digest, or --impl-state-dir + --commit + --parent',
197
+ exampleCli: 'jinn codedigest-revert-check --code-digest sha256:.. --parent-code-digest sha256:..',
198
+ details: { field: 'flags' },
199
+ }, { writer: ctx.writer, exit: ctx.exit });
200
+ return;
201
+ }
202
+ // Validate provided numeric flags. `Number('abc')` is NaN, `--alpha 0`
203
+ // silently disables every revert, `--window 0` is nonsensical — reject
204
+ // out-of-range input with the command's existing invalid_invocation
205
+ // envelope (exit 11) rather than letting a bad value flow into the policy.
206
+ const numErr = validateNumericFlags({
207
+ minSamples: parsed.values['min-samples'],
208
+ window: parsed.values.window,
209
+ alpha: parsed.values.alpha,
210
+ });
211
+ if (numErr) {
212
+ emitEnvelope({
213
+ code: 'invalid_invocation',
214
+ message: numErr.message,
215
+ exampleCli: 'jinn codedigest-revert-check --code-digest sha256:.. --parent-code-digest sha256:.. --alpha 0.05 --window 200 --min-samples 30',
216
+ details: { field: numErr.field },
217
+ }, { writer: ctx.writer, exit: ctx.exit });
218
+ return;
219
+ }
220
+ const policy = resolveRevertPolicy({
221
+ ...(parsed.values['min-samples'] ? { minSamplesPerArm: Number(parsed.values['min-samples']) } : {}),
222
+ ...(parsed.values.alpha ? { alpha: Number(parsed.values.alpha) } : {}),
223
+ ...(parsed.values.window ? { recentAttemptsWindow: Number(parsed.values.window) } : {}),
224
+ });
225
+ const discovery = deps.buildDiscovery(parsed.values.config);
226
+ let rows;
227
+ try {
228
+ rows = await discovery.getCodeDigestRewards({
229
+ codeDigests: [child, parent],
230
+ window: policy.recentAttemptsWindow,
231
+ ...(parsed.values.operator ? { operator: parsed.values.operator } : {}),
232
+ ...(parsed.values.solvernet ? { solverNetManifestCid: parsed.values.solvernet } : {}),
233
+ });
234
+ }
235
+ catch (err) {
236
+ if (err instanceof DiscoveryUnavailableError) {
237
+ ctx.writer.write(JSON.stringify({ recommendRevert: false, reason: 'discovery_unavailable', message: err.message }) + '\n');
238
+ return;
239
+ }
240
+ throw err;
241
+ }
242
+ const decision = decideRevert({ withCommit: toAggregate(child, rows), atParent: toAggregate(parent, rows) }, policy);
243
+ ctx.writer.write(JSON.stringify(decision) + '\n');
244
+ },
245
+ };
246
+ }
247
+ const command = createCodedigestRevertCheckCommand();
248
+ export default command;
249
+ //# sourceMappingURL=codedigest-revert-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codedigest-revert-check.js","sourceRoot":"","sources":["../../../src/cli/commands/codedigest-revert-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * `jinn eval <slate-version> --checkpoint <cid>` — run a held-out slate against
3
+ * a checkpoint in frozen mode and emit a resolved-rate comparison vs the parent
4
+ * checkpoint with a Wilson confidence interval (issue #818).
5
+ *
6
+ * The command is a thin shell over `runEval` (orchestrator.ts): a pure
7
+ * `createEvalCommand(deps)` factory tested directly, plus a default
8
+ * `CommandModule` that wires production deps. The orchestration itself
9
+ * (slate load -> resolve tasks -> runEval) is the injected `runPipeline` seam;
10
+ * the live Docker/IPFS wiring is completed in #819's thin slice.
11
+ *
12
+ * Spec: docs/superpowers/specs/2026-05-06-agent-harness-solvernet-design.md
13
+ */
14
+ import type { CommandModule } from '../command.js';
15
+ import { type HarnessCheckpointManifest } from '../../vendor/@jinn-network/sdk/dist/checkpoint.js';
16
+ import { type EvalRunResult, type RunHarnessOnceForEval } from '../../eval/orchestrator.js';
17
+ import { loadConfig } from '../../config.js';
18
+ import type { RuntimePlugin } from '../../harnesses/types.js';
19
+ import { type ClaudeCodeHarnessAdapterConfig } from '../../harnesses/impls/learner/adapters/claude-code.js';
20
+ export interface RunPipelineArgs {
21
+ checkpointCid: string;
22
+ checkpointManifest: HarnessCheckpointManifest;
23
+ solverType: string;
24
+ slateVersion: string;
25
+ parentCheckpointCid: string;
26
+ /** Config file path (`--config`); production wiring loads dbPath/engine from it. */
27
+ configPath?: string;
28
+ /**
29
+ * Local impl-state directory to run the frozen slate against
30
+ * (`--impl-state-dir`). Defaults to the daemon's
31
+ * `engine.implStateDirRoot/<implName>`. See PRODUCTION_DEPS below.
32
+ */
33
+ implStateDir?: string;
34
+ }
35
+ export interface EvalCommandDeps {
36
+ /** Resolve a checkpoint manifest from its CID (production: IPFS fetch + schema parse). */
37
+ fetchManifest(cid: string): Promise<HarnessCheckpointManifest>;
38
+ /** Load the slate, resolve its tasks, and run the frozen-mode orchestrator. */
39
+ runPipeline(args: RunPipelineArgs): Promise<EvalRunResult>;
40
+ }
41
+ export declare function createEvalCommand(deps: EvalCommandDeps): CommandModule;
42
+ /**
43
+ * Keyless corpus endpoints for the learner adapter's bundled MCP server (record
44
+ * search / artifact inspection). Mirrors `main.ts`'s `corpusEnv` assembly so the
45
+ * eval agent runtime matches the daemon's. Sources every field from
46
+ * `loadConfig()` — there is no bootstrap state in the CLI path, so the identity
47
+ * registry falls back to the chain default for the resolved network.
48
+ */
49
+ export declare function corpusEnvFromConfig(config: ReturnType<typeof loadConfig>): NonNullable<ClaudeCodeHarnessAdapterConfig['corpusEnv']> | undefined;
50
+ /**
51
+ * Resolve the local frozen impl-state directory for the checkpoint. There is
52
+ * no production IPFS round-trip for a checkpoint's `implStateDir` (the
53
+ * checkpoint publish/install verbs are factory-only; the pin/fetch format is a
54
+ * future verification layer — spec §6.4, "Layer 4"). The realistic operator
55
+ * workflow (#824) evaluates the operator's OWN frozen state, which already
56
+ * lives on disk. Mirrors `codedigest-revert-check` (`--impl-state-dir`).
57
+ */
58
+ export declare function resolveLocalImplStateDir(explicit: string | undefined, implName: string, config: ReturnType<typeof loadConfig>): string;
59
+ /**
60
+ * Production `runHarnessOnce` for the eval orchestrator. Delegates to the
61
+ * shared {@link runHarnessForEval} helper, which builds the FULL
62
+ * daemon-equivalent HarnessContext — including `solverPluginRoots` from the
63
+ * SolverNet's `runtimePlugins` — so the agent gets the bundled MCP server
64
+ * (`submit_typed_payload`) and can produce a gradeable patch. The legacy
65
+ * hand-rolled body ran the agent WITHOUT plugins, leaving every task
66
+ * unscorable; this factory closes over the resolved `solverType` +
67
+ * `runtimePlugins` and surfaces the seam the orchestrator already drives.
68
+ */
69
+ export declare function makeEvalRunHarnessOnce(opts: {
70
+ solverType: string;
71
+ runtimePlugins: RuntimePlugin[];
72
+ solverNetName?: string;
73
+ model?: string;
74
+ }): RunHarnessOnceForEval;
75
+ declare const command: CommandModule;
76
+ export default command;