@jinn-network/client 0.1.7 → 0.1.8-canary.09a3b2f6

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 (438) hide show
  1. package/README.md +67 -1
  2. package/dist/adapters/mech/adapter.d.ts +39 -2
  3. package/dist/adapters/mech/adapter.js +178 -20
  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 +96 -52
  7. package/dist/adapters/mech/contracts.js.map +1 -1
  8. package/dist/adapters/mech/safe-revert.d.ts +4 -0
  9. package/dist/adapters/mech/safe-revert.js +5 -1
  10. package/dist/adapters/mech/safe-revert.js.map +1 -1
  11. package/dist/adapters/mech/safe.d.ts +1 -1
  12. package/dist/adapters/mech/safe.js +10 -4
  13. package/dist/adapters/mech/safe.js.map +1 -1
  14. package/dist/adapters/mech/types.d.ts +6 -1
  15. package/dist/adapters/mech/types.js.map +1 -1
  16. package/dist/agent/operator-claude.js +8 -0
  17. package/dist/agent/operator-claude.js.map +1 -1
  18. package/dist/api/activity-events-endpoint.d.ts +14 -0
  19. package/dist/api/activity-events-endpoint.js +59 -0
  20. package/dist/api/activity-events-endpoint.js.map +1 -0
  21. package/dist/api/bootstrap-endpoint.d.ts +1 -2
  22. package/dist/api/bootstrap-endpoint.js +42 -24
  23. package/dist/api/bootstrap-endpoint.js.map +1 -1
  24. package/dist/api/codex-doctor-endpoint.d.ts +22 -5
  25. package/dist/api/codex-doctor-endpoint.js +136 -17
  26. package/dist/api/codex-doctor-endpoint.js.map +1 -1
  27. package/dist/api/debug-report-endpoint.d.ts +27 -0
  28. package/dist/api/debug-report-endpoint.js +157 -0
  29. package/dist/api/debug-report-endpoint.js.map +1 -0
  30. package/dist/api/discovery-endpoint.d.ts +1 -0
  31. package/dist/api/discovery-endpoint.js +24 -0
  32. package/dist/api/discovery-endpoint.js.map +1 -1
  33. package/dist/api/fleet-build.d.ts +1 -7
  34. package/dist/api/fleet-build.js +0 -7
  35. package/dist/api/fleet-build.js.map +1 -1
  36. package/dist/api/gather-status.d.ts +39 -0
  37. package/dist/api/gather-status.js +181 -84
  38. package/dist/api/gather-status.js.map +1 -1
  39. package/dist/api/hermes-doctor-endpoint.d.ts +15 -7
  40. package/dist/api/hermes-doctor-endpoint.js +56 -19
  41. package/dist/api/hermes-doctor-endpoint.js.map +1 -1
  42. package/dist/api/launcher-status.d.ts +4 -2
  43. package/dist/api/launcher-status.js +11 -10
  44. package/dist/api/launcher-status.js.map +1 -1
  45. package/dist/api/launcher-tasks.d.ts +1 -1
  46. package/dist/api/launcher-tasks.js +12 -8
  47. package/dist/api/launcher-tasks.js.map +1 -1
  48. package/dist/api/loop-completion-build.d.ts +79 -0
  49. package/dist/api/loop-completion-build.js +155 -0
  50. package/dist/api/loop-completion-build.js.map +1 -0
  51. package/dist/api/operator-artifacts-endpoint.js +73 -6
  52. package/dist/api/operator-artifacts-endpoint.js.map +1 -1
  53. package/dist/api/portfolio-v0-build.d.ts +7 -1
  54. package/dist/api/portfolio-v0-build.js +6 -2
  55. package/dist/api/portfolio-v0-build.js.map +1 -1
  56. package/dist/api/prediction-v1-build.d.ts +6 -0
  57. package/dist/api/prediction-v1-build.js +3 -1
  58. package/dist/api/prediction-v1-build.js.map +1 -1
  59. package/dist/api/server.d.ts +17 -0
  60. package/dist/api/server.js +40 -1
  61. package/dist/api/server.js.map +1 -1
  62. package/dist/api/setup-endpoints.d.ts +13 -9
  63. package/dist/api/setup-endpoints.js +50 -173
  64. package/dist/api/setup-endpoints.js.map +1 -1
  65. package/dist/api/solvernets-endpoints.js +33 -63
  66. package/dist/api/solvernets-endpoints.js.map +1 -1
  67. package/dist/api/status-build.d.ts +140 -17
  68. package/dist/api/status-build.js +47 -34
  69. package/dist/api/status-build.js.map +1 -1
  70. package/dist/api/status-harness-rollup.d.ts +35 -0
  71. package/dist/api/status-harness-rollup.js +45 -0
  72. package/dist/api/status-harness-rollup.js.map +1 -0
  73. package/dist/api/status-rollup-build.d.ts +0 -4
  74. package/dist/api/status-rollup-build.js +0 -4
  75. package/dist/api/status-rollup-build.js.map +1 -1
  76. package/dist/api/task-runs-build.d.ts +8 -0
  77. package/dist/api/task-runs-build.js +5 -1
  78. package/dist/api/task-runs-build.js.map +1 -1
  79. package/dist/build-info.json +4 -4
  80. package/dist/build-meta.json +1 -1
  81. package/dist/captures/live-publisher.js +24 -4
  82. package/dist/captures/live-publisher.js.map +1 -1
  83. package/dist/captures/publish.d.ts +1 -1
  84. package/dist/chain-read-errors.d.ts +12 -0
  85. package/dist/chain-read-errors.js +26 -1
  86. package/dist/chain-read-errors.js.map +1 -1
  87. package/dist/cli/commands/codedigest-revert-check.d.ts +33 -0
  88. package/dist/cli/commands/codedigest-revert-check.js +253 -0
  89. package/dist/cli/commands/codedigest-revert-check.js.map +1 -0
  90. package/dist/cli/commands/doctor.d.ts +3 -0
  91. package/dist/cli/commands/doctor.js +35 -0
  92. package/dist/cli/commands/doctor.js.map +1 -1
  93. package/dist/cli/commands/eval.d.ts +76 -0
  94. package/dist/cli/commands/eval.js +401 -0
  95. package/dist/cli/commands/eval.js.map +1 -0
  96. package/dist/cli/commands/rewards.d.ts +2 -0
  97. package/dist/cli/commands/rewards.js +27 -0
  98. package/dist/cli/commands/rewards.js.map +1 -1
  99. package/dist/cli/commands/solver-nets.d.ts +1 -0
  100. package/dist/cli/commands/solver-nets.js +245 -22
  101. package/dist/cli/commands/solver-nets.js.map +1 -1
  102. package/dist/cli/commands/solver-plugins-block.d.ts +33 -0
  103. package/dist/cli/commands/solver-plugins-block.js +118 -0
  104. package/dist/cli/commands/solver-plugins-block.js.map +1 -0
  105. package/dist/cli/commands/solver-plugins-feedback.d.ts +72 -0
  106. package/dist/cli/commands/solver-plugins-feedback.js +262 -0
  107. package/dist/cli/commands/solver-plugins-feedback.js.map +1 -0
  108. package/dist/cli/commands/solver-plugins-read.d.ts +54 -0
  109. package/dist/cli/commands/solver-plugins-read.js +259 -0
  110. package/dist/cli/commands/solver-plugins-read.js.map +1 -0
  111. package/dist/cli/commands/solver-plugins.d.ts +35 -0
  112. package/dist/cli/commands/solver-plugins.js +399 -2
  113. package/dist/cli/commands/solver-plugins.js.map +1 -1
  114. package/dist/cli/commands/status.js +0 -1
  115. package/dist/cli/commands/status.js.map +1 -1
  116. package/dist/cli/commands/tasks.js +15 -2
  117. package/dist/cli/commands/tasks.js.map +1 -1
  118. package/dist/cli/index.js +4 -0
  119. package/dist/cli/index.js.map +1 -1
  120. package/dist/cli/task-native-readiness.d.ts +7 -0
  121. package/dist/cli/task-native-readiness.js +7 -5
  122. package/dist/cli/task-native-readiness.js.map +1 -1
  123. package/dist/config.d.ts +206 -232
  124. package/dist/config.js +289 -107
  125. package/dist/config.js.map +1 -1
  126. package/dist/daemon/ai-units-gate.d.ts +54 -0
  127. package/dist/daemon/ai-units-gate.js +83 -0
  128. package/dist/daemon/ai-units-gate.js.map +1 -0
  129. package/dist/daemon/creator.js +13 -0
  130. package/dist/daemon/creator.js.map +1 -1
  131. package/dist/daemon/daemon.d.ts +10 -0
  132. package/dist/daemon/daemon.js +205 -30
  133. package/dist/daemon/daemon.js.map +1 -1
  134. package/dist/daemon/eviction-loop.d.ts +7 -0
  135. package/dist/daemon/eviction-loop.js +16 -0
  136. package/dist/daemon/eviction-loop.js.map +1 -1
  137. package/dist/daemon/gate-logger.d.ts +9 -0
  138. package/dist/daemon/gate-logger.js +2 -0
  139. package/dist/daemon/gate-logger.js.map +1 -0
  140. package/dist/daemon/jinn-claim-loop.js +22 -4
  141. package/dist/daemon/jinn-claim-loop.js.map +1 -1
  142. package/dist/daemon/readiness-gate.d.ts +1 -4
  143. package/dist/daemon/readiness-gate.js.map +1 -1
  144. package/dist/daemon/spend-cap-gate.d.ts +40 -0
  145. package/dist/daemon/spend-cap-gate.js +46 -0
  146. package/dist/daemon/spend-cap-gate.js.map +1 -0
  147. package/dist/dashboard/assets/index-3quVQqik.js +167 -0
  148. package/dist/dashboard/assets/index-BVAWkLwY.css +1 -0
  149. package/dist/dashboard/index.html +2 -2
  150. package/dist/discovery/http.d.ts +7 -0
  151. package/dist/discovery/http.js +567 -24
  152. package/dist/discovery/http.js.map +1 -1
  153. package/dist/discovery/onchain.js +197 -5
  154. package/dist/discovery/onchain.js.map +1 -1
  155. package/dist/discovery/types.d.ts +235 -0
  156. package/dist/discovery/types.js +40 -0
  157. package/dist/discovery/types.js.map +1 -1
  158. package/dist/discovery/with-fallback.js +41 -0
  159. package/dist/discovery/with-fallback.js.map +1 -1
  160. package/dist/earning/bootstrap.d.ts +31 -3
  161. package/dist/earning/bootstrap.js +94 -22
  162. package/dist/earning/bootstrap.js.map +1 -1
  163. package/dist/earning/faucet.d.ts +1 -1
  164. package/dist/earning/faucet.js +2 -2
  165. package/dist/earning/faucet.js.map +1 -1
  166. package/dist/earning/safe-adapter.js +34 -11
  167. package/dist/earning/safe-adapter.js.map +1 -1
  168. package/dist/earning/types.d.ts +6 -6
  169. package/dist/earning/viem-clients.d.ts +11 -4
  170. package/dist/earning/viem-clients.js +14 -5
  171. package/dist/earning/viem-clients.js.map +1 -1
  172. package/dist/erc8004/identity.d.ts +19 -3
  173. package/dist/erc8004/identity.js +38 -11
  174. package/dist/erc8004/identity.js.map +1 -1
  175. package/dist/erc8004/index.d.ts +1 -1
  176. package/dist/erc8004/index.js.map +1 -1
  177. package/dist/eval/eval-harness-run.d.ts +63 -0
  178. package/dist/eval/eval-harness-run.js +123 -0
  179. package/dist/eval/eval-harness-run.js.map +1 -0
  180. package/dist/eval/orchestrator.d.ts +163 -0
  181. package/dist/eval/orchestrator.js +232 -0
  182. package/dist/eval/orchestrator.js.map +1 -0
  183. package/dist/eval/paired.d.ts +68 -0
  184. package/dist/eval/paired.js +93 -0
  185. package/dist/eval/paired.js.map +1 -0
  186. package/dist/eval/resolve-slate-tasks.d.ts +35 -0
  187. package/dist/eval/resolve-slate-tasks.js +56 -0
  188. package/dist/eval/resolve-slate-tasks.js.map +1 -0
  189. package/dist/eval/screen-discovery.d.ts +22 -0
  190. package/dist/eval/screen-discovery.js +71 -0
  191. package/dist/eval/screen-discovery.js.map +1 -0
  192. package/dist/eval/screen-progress.d.ts +41 -0
  193. package/dist/eval/screen-progress.js +60 -0
  194. package/dist/eval/screen-progress.js.map +1 -0
  195. package/dist/eval/screen-runner.d.ts +30 -0
  196. package/dist/eval/screen-runner.js +289 -0
  197. package/dist/eval/screen-runner.js.map +1 -0
  198. package/dist/eval/screen.d.ts +107 -0
  199. package/dist/eval/screen.js +159 -0
  200. package/dist/eval/screen.js.map +1 -0
  201. package/dist/eval/slope.d.ts +29 -0
  202. package/dist/eval/slope.js +46 -0
  203. package/dist/eval/slope.js.map +1 -0
  204. package/dist/eval/train-sequence.d.ts +35 -0
  205. package/dist/eval/train-sequence.js +59 -0
  206. package/dist/eval/train-sequence.js.map +1 -0
  207. package/dist/eval/wilson.d.ts +45 -0
  208. package/dist/eval/wilson.js +48 -0
  209. package/dist/eval/wilson.js.map +1 -0
  210. package/dist/events/types.d.ts +2 -2
  211. package/dist/harnesses/cost-estimates.d.ts +10 -31
  212. package/dist/harnesses/cost-estimates.js +11 -43
  213. package/dist/harnesses/cost-estimates.js.map +1 -1
  214. package/dist/harnesses/engine/canonical-json.js +5 -3
  215. package/dist/harnesses/engine/canonical-json.js.map +1 -1
  216. package/dist/harnesses/engine/engine.d.ts +37 -4
  217. package/dist/harnesses/engine/engine.js +151 -20
  218. package/dist/harnesses/engine/engine.js.map +1 -1
  219. package/dist/harnesses/engine/persistence.d.ts +38 -4
  220. package/dist/harnesses/engine/persistence.js +71 -6
  221. package/dist/harnesses/engine/persistence.js.map +1 -1
  222. package/dist/harnesses/engine/state.d.ts +9 -0
  223. package/dist/harnesses/engine/state.js +23 -10
  224. package/dist/harnesses/engine/state.js.map +1 -1
  225. package/dist/harnesses/impls/hermes-agent/adapter.d.ts +2 -0
  226. package/dist/harnesses/impls/hermes-agent/adapter.js +8 -5
  227. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  228. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +1 -0
  229. package/dist/harnesses/impls/hermes-agent/bootstrap.js +10 -3
  230. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  231. package/dist/harnesses/impls/hermes-agent/config-builder.d.ts +1 -1
  232. package/dist/harnesses/impls/hermes-agent/config-builder.js +4 -2
  233. package/dist/harnesses/impls/hermes-agent/config-builder.js.map +1 -1
  234. package/dist/harnesses/impls/hermes-agent/harness.d.ts +31 -3
  235. package/dist/harnesses/impls/hermes-agent/harness.js +84 -7
  236. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  237. package/dist/harnesses/impls/hermes-agent/prompt.d.ts +6 -6
  238. package/dist/harnesses/impls/hermes-agent/prompt.js +6 -6
  239. package/dist/harnesses/impls/index.d.ts +2 -0
  240. package/dist/harnesses/impls/index.js +2 -0
  241. package/dist/harnesses/impls/index.js.map +1 -1
  242. package/dist/harnesses/impls/learner/adapters/claude-code.d.ts +17 -0
  243. package/dist/harnesses/impls/learner/adapters/claude-code.js +118 -14
  244. package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
  245. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +9 -0
  246. package/dist/harnesses/impls/learner/adapters/codex-code.js +30 -8
  247. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  248. package/dist/harnesses/impls/learner/harness.d.ts +41 -1
  249. package/dist/harnesses/impls/learner/harness.js +78 -4
  250. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  251. package/dist/harnesses/impls/learner/harvest.d.ts +3 -1
  252. package/dist/harnesses/impls/learner/harvest.js +30 -6
  253. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  254. package/dist/harnesses/impls/learner/plugin-path.js +1 -0
  255. package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
  256. package/dist/harnesses/impls/learner/restoration-patch.d.ts +2 -2
  257. package/dist/harnesses/impls/learner/restoration-patch.js +25 -6
  258. package/dist/harnesses/impls/learner/restoration-patch.js.map +1 -1
  259. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +21 -1
  260. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  261. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +3 -1
  262. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  263. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +74 -5
  264. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +103 -32
  265. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
  266. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +2 -2
  267. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +3 -1
  268. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
  269. package/dist/harnesses/readiness-registry.d.ts +7 -0
  270. package/dist/harnesses/readiness-registry.js +9 -0
  271. package/dist/harnesses/readiness-registry.js.map +1 -1
  272. package/dist/harnesses/types.d.ts +14 -0
  273. package/dist/learner/revert-decision.d.ts +74 -0
  274. package/dist/learner/revert-decision.js +73 -0
  275. package/dist/learner/revert-decision.js.map +1 -0
  276. package/dist/learner/revert-stats.d.ts +38 -0
  277. package/dist/learner/revert-stats.js +86 -0
  278. package/dist/learner/revert-stats.js.map +1 -0
  279. package/dist/local-provider-url.d.ts +3 -0
  280. package/dist/local-provider-url.js +28 -0
  281. package/dist/local-provider-url.js.map +1 -0
  282. package/dist/main.js +199 -104
  283. package/dist/main.js.map +1 -1
  284. package/dist/mcp/get-codedigest-reward.d.ts +13 -0
  285. package/dist/mcp/get-codedigest-reward.js +23 -0
  286. package/dist/mcp/get-codedigest-reward.js.map +1 -0
  287. package/dist/mcp/server.js +23 -0
  288. package/dist/mcp/server.js.map +1 -1
  289. package/dist/observability/debug-report-assemble.d.ts +43 -0
  290. package/dist/observability/debug-report-assemble.js +80 -0
  291. package/dist/observability/debug-report-assemble.js.map +1 -0
  292. package/dist/observability/emit-event.d.ts +9 -2
  293. package/dist/observability/emit-event.js +36 -2
  294. package/dist/observability/emit-event.js.map +1 -1
  295. package/dist/observability/file-logger.d.ts +69 -0
  296. package/dist/observability/file-logger.js +177 -0
  297. package/dist/observability/file-logger.js.map +1 -0
  298. package/dist/observability/redact-secrets.d.ts +65 -0
  299. package/dist/observability/redact-secrets.js +300 -0
  300. package/dist/observability/redact-secrets.js.map +1 -0
  301. package/dist/observability/tar.d.ts +30 -0
  302. package/dist/observability/tar.js +102 -0
  303. package/dist/observability/tar.js.map +1 -0
  304. package/dist/plugins/learner/.claude-plugin/plugin.json +1 -1
  305. package/dist/plugins/learner/.codex-plugin/plugin.json +1 -1
  306. package/dist/plugins/learner/hooks/session-start +30 -1
  307. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +22 -1
  308. package/dist/plugins/learner/skills/learn/promoter-prompt.md +72 -1
  309. package/dist/preflight/deployment-readiness.d.ts +147 -0
  310. package/dist/preflight/deployment-readiness.js +366 -0
  311. package/dist/preflight/deployment-readiness.js.map +1 -0
  312. package/dist/preflight/pidfile-liveness.d.ts +50 -0
  313. package/dist/preflight/pidfile-liveness.js +117 -0
  314. package/dist/preflight/pidfile-liveness.js.map +1 -0
  315. package/dist/preflight/rpc-network.d.ts +40 -0
  316. package/dist/preflight/rpc-network.js +67 -1
  317. package/dist/preflight/rpc-network.js.map +1 -1
  318. package/dist/rpc/transport.d.ts +145 -0
  319. package/dist/rpc/transport.js +319 -0
  320. package/dist/rpc/transport.js.map +1 -0
  321. package/dist/scripts/donation-consumption-acceptance.js +7 -28
  322. package/dist/scripts/donation-consumption-acceptance.js.map +1 -1
  323. package/dist/scripts/swe-rebench-v2-pytest-missing.json +16 -0
  324. package/dist/solver-nets/prediction-operator-ux.d.ts +1 -2
  325. package/dist/solver-nets/prediction-operator-ux.js +56 -53
  326. package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
  327. package/dist/solver-nets/registry.d.ts +19 -1
  328. package/dist/solver-nets/registry.js +37 -24
  329. package/dist/solver-nets/registry.js.map +1 -1
  330. package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +76 -0
  331. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +156 -0
  332. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
  333. package/dist/solver-types/_swe-rebench-v2-pool-recovery.d.ts +81 -0
  334. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js +116 -0
  335. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js.map +1 -0
  336. package/dist/solver-types/_swe-rebench-v2-pool.d.ts +9 -2
  337. package/dist/solver-types/_swe-rebench-v2-pool.js +15 -20
  338. package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -1
  339. package/dist/solver-types/_swe-rebench-v2-state.d.ts +24 -0
  340. package/dist/solver-types/_swe-rebench-v2-state.js +33 -0
  341. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
  342. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +116 -2
  343. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +296 -21
  344. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  345. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
  346. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.json +19 -0
  347. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.screening-report.json +628 -0
  348. package/dist/solver-types/solver-type.d.ts +8 -0
  349. package/dist/solver-types/swe-rebench-v2-auto.d.ts +20 -11
  350. package/dist/solver-types/swe-rebench-v2-auto.js +64 -19
  351. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
  352. package/dist/solver-types/swe-rebench-v2.d.ts +10 -2
  353. package/dist/solver-types/swe-rebench-v2.js +233 -13
  354. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  355. package/dist/solvernets/daemon-init.d.ts +1 -1
  356. package/dist/solvernets/daemon-init.js +19 -4
  357. package/dist/solvernets/daemon-init.js.map +1 -1
  358. package/dist/solvernets/launched-record-dispatcher.d.ts +7 -0
  359. package/dist/solvernets/launched-record-dispatcher.js +10 -4
  360. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  361. package/dist/solvernets/registry-client-erc8004.js +40 -37
  362. package/dist/solvernets/registry-client-erc8004.js.map +1 -1
  363. package/dist/solvernets/registry-client.d.ts +6 -0
  364. package/dist/solvernets/store.d.ts +2 -2
  365. package/dist/solvernets/store.js +7 -2
  366. package/dist/solvernets/store.js.map +1 -1
  367. package/dist/spend/ai-units-config.d.ts +49 -0
  368. package/dist/spend/ai-units-config.js +34 -0
  369. package/dist/spend/ai-units-config.js.map +1 -0
  370. package/dist/spend/ai-units.d.ts +140 -0
  371. package/dist/spend/ai-units.js +229 -0
  372. package/dist/spend/ai-units.js.map +1 -0
  373. package/dist/spend/cost-surface-status.d.ts +12 -0
  374. package/dist/spend/cost-surface-status.js +24 -0
  375. package/dist/spend/cost-surface-status.js.map +1 -0
  376. package/dist/spend/credential.d.ts +39 -0
  377. package/dist/spend/credential.js +71 -0
  378. package/dist/spend/credential.js.map +1 -0
  379. package/dist/spend/daemon-config.d.ts +13 -0
  380. package/dist/spend/daemon-config.js +24 -0
  381. package/dist/spend/daemon-config.js.map +1 -0
  382. package/dist/spend/pricing.d.ts +16 -0
  383. package/dist/spend/pricing.js +26 -0
  384. package/dist/spend/pricing.js.map +1 -0
  385. package/dist/spend/record.d.ts +13 -0
  386. package/dist/spend/record.js +43 -0
  387. package/dist/spend/record.js.map +1 -0
  388. package/dist/spend/usage.d.ts +27 -0
  389. package/dist/spend/usage.js +113 -0
  390. package/dist/spend/usage.js.map +1 -0
  391. package/dist/store/store.d.ts +187 -0
  392. package/dist/store/store.js +467 -4
  393. package/dist/store/store.js.map +1 -1
  394. package/dist/trajectory/transcript-parsers/codex-session.d.ts +12 -6
  395. package/dist/trajectory/transcript-parsers/codex-session.js +114 -13
  396. package/dist/trajectory/transcript-parsers/codex-session.js.map +1 -1
  397. package/dist/trajectory/transcript-parsers/types.d.ts +8 -8
  398. package/dist/trajectory/transcript-session-dirs.d.ts +18 -0
  399. package/dist/trajectory/transcript-session-dirs.js +85 -0
  400. package/dist/trajectory/transcript-session-dirs.js.map +1 -0
  401. package/dist/trajectory/transcript-watcher.d.ts +20 -1
  402. package/dist/trajectory/transcript-watcher.js +108 -32
  403. package/dist/trajectory/transcript-watcher.js.map +1 -1
  404. package/dist/tx-retry.d.ts +25 -0
  405. package/dist/tx-retry.js +95 -7
  406. package/dist/tx-retry.js.map +1 -1
  407. package/dist/types/payloads/portfolio-v0.d.ts +3 -3
  408. package/dist/types/payloads/prediction-apy-v0.d.ts +3 -3
  409. package/dist/types/payloads/prediction-v0.d.ts +12 -12
  410. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +108 -1
  411. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +25 -1
  412. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
  413. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
  414. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +2 -2
  415. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +1 -1
  416. package/dist/vendor/@jinn-network/sdk/package.json +4 -0
  417. package/docker-compose.yml +3 -2
  418. package/package.json +30 -18
  419. package/plugins/learner/.claude-plugin/plugin.json +1 -1
  420. package/plugins/learner/.codex-plugin/plugin.json +1 -1
  421. package/plugins/learner/hooks/session-start +30 -1
  422. package/plugins/learner/skills/learn/consolidator-prompt.md +22 -1
  423. package/plugins/learner/skills/learn/promoter-prompt.md +72 -1
  424. package/plugins/swe-rebench-v2-diffmin/README.md +10 -9
  425. package/plugins/swe-rebench-v2-diffmin/jinn.plugin.json +1 -1
  426. package/plugins/swe-rebench-v2-diffmin/skills/diffmin/SKILL.md +15 -10
  427. package/plugins/swe-rebench-v2-diffmin/skills/test-map/SKILL.md +10 -12
  428. package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +1 -1
  429. package/plugins/swe-rebench-v2-runtime/.codex-plugin/plugin.json +3 -3
  430. package/plugins/swe-rebench-v2-runtime/README.md +6 -6
  431. package/plugins/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
  432. package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
  433. package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +2 -3
  434. package/plugins/swe-rebench-v2-runtime/skills/task/SKILL.md +81 -0
  435. package/dist/dashboard/assets/index-BUlE8F3Y.js +0 -330
  436. package/dist/dashboard/assets/index-blqc7eqq.css +0 -32
  437. package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +0 -29
  438. package/plugins/swe-rebench-v2-runtime/skills/plan/SKILL.md +0 -53
@@ -1,6 +1,9 @@
1
+ import { vettedPoolRefSemanticsMismatch } from '../../../solver-types/_swe-rebench-v2-validated-pool.js';
1
2
  import { HERMES_AGENT_HARNESS } from '../../names.js';
2
3
  import { harvestOutput } from '../learner/harvest.js';
3
4
  import { probeHermesDoctor, probeHermesAuthStatus, probeOpenRouterCredit, DEFAULT_OPENROUTER_CREDIT_FLOOR_USD, } from '../../../api/hermes-doctor-endpoint.js';
5
+ import { isLocalHttpBaseUrl, urlAtBasePath } from '../../../local-provider-url.js';
6
+ const DEFAULT_HERMES_PROVIDER_PROBE_TIMEOUT_MS = 2_000;
4
7
  /**
5
8
  * Hermes Agent harness.
6
9
  *
@@ -20,6 +23,9 @@ export class HermesHarness {
20
23
  adapter;
21
24
  hermesPath;
22
25
  hermesDoctorTimeoutMs;
26
+ hermesBaseUrl;
27
+ hermesProviderProbeTimeoutMs;
28
+ hermesProviderFetch;
23
29
  openrouterCreditFloorUsd;
24
30
  creditProbe;
25
31
  constructor(config) {
@@ -27,6 +33,10 @@ export class HermesHarness {
27
33
  this.version = config.version ?? '0.1.0';
28
34
  this.hermesPath = config.hermesPath;
29
35
  this.hermesDoctorTimeoutMs = config.hermesDoctorTimeoutMs;
36
+ this.hermesBaseUrl = config.hermesBaseUrl;
37
+ this.hermesProviderProbeTimeoutMs =
38
+ config.hermesProviderProbeTimeoutMs ?? DEFAULT_HERMES_PROVIDER_PROBE_TIMEOUT_MS;
39
+ this.hermesProviderFetch = config.hermesProviderFetch ?? fetch;
30
40
  this.openrouterCreditFloorUsd = config.openrouterCreditFloorUsd ?? DEFAULT_OPENROUTER_CREDIT_FLOOR_USD;
31
41
  this.creditProbe = config.creditProbe ?? probeOpenRouterCredit;
32
42
  }
@@ -37,6 +47,9 @@ export class HermesHarness {
37
47
  * - `installed: false` → binary not on PATH → ready=false with install
38
48
  * nextStep so the operator sees an actionable message instead of
39
49
  * N/N failed claims (#330).
50
+ * - `JINN_HERMES_BASE_URL` set → binary exists and the configured local
51
+ * OpenAI-compatible provider answers `/models` → ready=true. This mode
52
+ * deliberately bypasses the OpenRouter-specific auth/credit gates.
40
53
  * - `exitCode !== 0` → binary exists but `hermes doctor` reports a
41
54
  * configuration problem (e.g. provider not signed in) → ready=false
42
55
  * with a nextStep that points at the SPA precheck panel.
@@ -46,9 +59,10 @@ export class HermesHarness {
46
59
  * openrouter` directly. `auth list` reads the credential pool, so it
47
60
  * recognises API-key credentials (the normal `OPENROUTER_API_KEY`
48
61
  * setup) as well as OAuth — unlike `auth status`, which only reflects
49
- * interactive-OAuth-login state. Hermes is OpenRouter-only, so an
50
- * OpenRouter with no usable credential means Hermes has no model
51
- * provider and every claim would burn (#332/#330/#348).
62
+ * interactive-OAuth-login state. In the default Jinn/Hermes path,
63
+ * Hermes uses OpenRouter, so an OpenRouter with no usable credential
64
+ * means Hermes has no model provider and every claim would burn
65
+ * (#332/#330/#348).
52
66
  * - OpenRouter credential is present but credit is exhausted → ready=false.
53
67
  * Production bug, 2026-05-23: `auth list openrouter` reported the
54
68
  * api_key credential as healthy, but every solve attempt for the day
@@ -68,7 +82,7 @@ export class HermesHarness {
68
82
  config.hermesPath = this.hermesPath;
69
83
  if (this.hermesDoctorTimeoutMs !== undefined)
70
84
  config.hermesDoctorTimeoutMs = this.hermesDoctorTimeoutMs;
71
- const result = probeHermesDoctor(config);
85
+ const result = await probeHermesDoctor(config);
72
86
  if (!result.installed) {
73
87
  return {
74
88
  ready: false,
@@ -78,6 +92,18 @@ export class HermesHarness {
78
92
  },
79
93
  };
80
94
  }
95
+ if (this.hermesBaseUrl) {
96
+ if (!isLocalHttpBaseUrl(this.hermesBaseUrl)) {
97
+ return {
98
+ ready: false,
99
+ reason: 'hermes base URL must be local',
100
+ nextStep: {
101
+ description: 'Use a local Hermes provider URL such as http://127.0.0.1:11434/v1 or unset JINN_HERMES_BASE_URL.',
102
+ },
103
+ };
104
+ }
105
+ return this.probeLocalHermesProvider(this.hermesBaseUrl);
106
+ }
81
107
  if (result.exitCode !== 0) {
82
108
  const stderr = result.stderr.trim();
83
109
  const stdout = result.stdout.trim();
@@ -91,9 +117,10 @@ export class HermesHarness {
91
117
  };
92
118
  }
93
119
  // Third gate: `hermes doctor` exits 0 even when every model provider is
94
- // logged out. Hermes is OpenRouter-only, so probe OpenRouter auth
95
- // directly — a logged-out OpenRouter means Hermes cannot run a task.
96
- const auth = probeHermesAuthStatus('openrouter', config);
120
+ // logged out. The default Jinn/Hermes path relies on OpenRouter, so probe
121
+ // OpenRouter auth directly — a logged-out OpenRouter means Hermes cannot
122
+ // run a task.
123
+ const auth = await probeHermesAuthStatus('openrouter', config);
97
124
  if (!auth.authed) {
98
125
  return {
99
126
  ready: false,
@@ -125,12 +152,62 @@ export class HermesHarness {
125
152
  }
126
153
  return { ready: true };
127
154
  }
155
+ async probeLocalHermesProvider(baseUrl) {
156
+ const modelsUrl = urlAtBasePath(baseUrl, 'models');
157
+ const controller = new AbortController();
158
+ const timeout = setTimeout(() => controller.abort(), this.hermesProviderProbeTimeoutMs);
159
+ try {
160
+ const response = await this.hermesProviderFetch(modelsUrl, {
161
+ method: 'GET',
162
+ headers: { Authorization: 'Bearer jinn-local' },
163
+ signal: controller.signal,
164
+ });
165
+ if (response.ok)
166
+ return { ready: true };
167
+ return {
168
+ ready: false,
169
+ reason: `local Hermes provider /models returned HTTP ${response.status}`,
170
+ nextStep: {
171
+ description: 'Start the local OpenAI-compatible provider and verify its /v1/models endpoint responds.',
172
+ },
173
+ };
174
+ }
175
+ catch (err) {
176
+ const detail = err instanceof Error ? err.message : String(err);
177
+ const reason = err instanceof Error && err.name === 'AbortError'
178
+ ? 'local Hermes provider /models probe timed out'
179
+ : `local Hermes provider unavailable${detail ? `: ${detail}` : ''}`;
180
+ return {
181
+ ready: false,
182
+ reason,
183
+ nextStep: {
184
+ description: 'Start the local OpenAI-compatible provider and verify its /v1/models endpoint responds.',
185
+ },
186
+ };
187
+ }
188
+ finally {
189
+ clearTimeout(timeout);
190
+ }
191
+ }
128
192
  supports(spec) {
129
193
  // Hermes currently ships a SWE-rebench v2 task prompt and runtime plugin.
130
194
  // Evaluation is not supported: Hermes has no evaluator-side plugins
131
195
  // (verdict signing, checker contracts).
132
196
  return spec.role !== 'evaluation' && spec.solverType === 'swe-rebench-v2.v1';
133
197
  }
198
+ /**
199
+ * gh #300 — solver-side ghost-task admission (Tier 1, zero-fetch).
200
+ * Reject tasks whose on-chain `vettedPoolRef` announces an
201
+ * `evalSemanticsVersion` no local evaluator could grade. Fails open when the
202
+ * ref is absent (recency floor guards ref-less ghosts). See
203
+ * `spec/2026-05-29-ghost-task-admission-symmetric-gate.md`.
204
+ */
205
+ async canAttempt(task) {
206
+ const mismatch = vettedPoolRefSemanticsMismatch(task.eligibility);
207
+ if (mismatch)
208
+ return { ok: false, reason: mismatch };
209
+ return { ok: true };
210
+ }
134
211
  async run(ctx) {
135
212
  const window = ctx.task.window ?? { startTs: 0, endTs: 0 };
136
213
  await this.adapter.runTask({
@@ -1 +1 @@
1
- {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../../src/harnesses/impls/hermes-agent/harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../../src/harnesses/impls/hermes-agent/harness.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,11 @@ import type { TaskSessionInputs } from '../learner/types.js';
5
5
  * The harness deliberately does NOT bake SolverNet-specific guidance into
6
6
  * this prompt. Per-SolverNet task patterns (repo setup, schema shape,
7
7
  * submission expectations) live in the SolverPlugin's SKILL.md files
8
- * (e.g. `swe-rebench-v2-runtime/skills/orient/SKILL.md` +
9
- * `plan/SKILL.md`). The harness loads those skills via
10
- * `solverPluginRoots` and the agent picks them up at runtime. Adding
11
- * SolverNet branching here would re-create the leak that retired the
12
- * earlier `sweRebenchV2Guidance()` helper every new SolverNet would
13
- * require a code change in every harness's prompt builder.
8
+ * (e.g. `swe-rebench-v2-runtime/skills/task/SKILL.md`). The harness loads
9
+ * those skills via `solverPluginRoots` and the agent picks them up at
10
+ * runtime. Adding SolverNet branching here would re-create the leak that
11
+ * retired the earlier `sweRebenchV2Guidance()` helper every new
12
+ * SolverNet would require a code change in every harness's prompt
13
+ * builder.
14
14
  */
15
15
  export declare function buildInitialPrompt(inputs: TaskSessionInputs): string;
@@ -4,12 +4,12 @@
4
4
  * The harness deliberately does NOT bake SolverNet-specific guidance into
5
5
  * this prompt. Per-SolverNet task patterns (repo setup, schema shape,
6
6
  * submission expectations) live in the SolverPlugin's SKILL.md files
7
- * (e.g. `swe-rebench-v2-runtime/skills/orient/SKILL.md` +
8
- * `plan/SKILL.md`). The harness loads those skills via
9
- * `solverPluginRoots` and the agent picks them up at runtime. Adding
10
- * SolverNet branching here would re-create the leak that retired the
11
- * earlier `sweRebenchV2Guidance()` helper every new SolverNet would
12
- * require a code change in every harness's prompt builder.
7
+ * (e.g. `swe-rebench-v2-runtime/skills/task/SKILL.md`). The harness loads
8
+ * those skills via `solverPluginRoots` and the agent picks them up at
9
+ * runtime. Adding SolverNet branching here would re-create the leak that
10
+ * retired the earlier `sweRebenchV2Guidance()` helper every new
11
+ * SolverNet would require a code change in every harness's prompt
12
+ * builder.
13
13
  */
14
14
  export function buildInitialPrompt(inputs) {
15
15
  return [
@@ -87,6 +87,8 @@ export interface HarnessEnv {
87
87
  hermesModel?: string;
88
88
  /** Hermes provider (e.g. 'anthropic'). */
89
89
  hermesProvider?: string;
90
+ /** Local OpenAI-compatible Hermes base URL. */
91
+ hermesBaseUrl?: string;
90
92
  /** Timeout (ms) for the `hermes doctor` probe in HermesHarness.isReady. */
91
93
  hermesDoctorTimeoutMs?: number;
92
94
  }
@@ -148,6 +148,7 @@ export function buildHarnesses(env) {
148
148
  hermesPath: env.hermesPath,
149
149
  hermesModel: env.hermesModel,
150
150
  hermesProvider: env.hermesProvider,
151
+ hermesBaseUrl: env.hermesBaseUrl,
151
152
  daemonApiUrl: env.daemonApiUrl ?? 'http://127.0.0.1:7331',
152
153
  daemonApiToken: env.daemonApiToken ?? '',
153
154
  storePath: env.storePath,
@@ -156,6 +157,7 @@ export function buildHarnesses(env) {
156
157
  out.push(new HermesHarness({
157
158
  adapter: hermesAdapter,
158
159
  ...(env.hermesPath !== undefined ? { hermesPath: env.hermesPath } : {}),
160
+ ...(env.hermesBaseUrl !== undefined ? { hermesBaseUrl: env.hermesBaseUrl } : {}),
159
161
  ...(env.hermesDoctorTimeoutMs !== undefined ? { hermesDoctorTimeoutMs: env.hermesDoctorTimeoutMs } : {}),
160
162
  }));
161
163
  if (env.disabledNames && env.disabledNames.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/harnesses/impls/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/harnesses/impls/index.ts"],"names":[],"mappings":"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"}
@@ -31,11 +31,26 @@ export interface ClaudeCodeHarnessAdapterConfig {
31
31
  * into this directory before spawning.
32
32
  */
33
33
  pluginInstallDir?: string;
34
+ /**
35
+ * Root of the Jinn client install (the dir containing `dist/`/`src/`).
36
+ * Forwarded to the Network Tools MCP launcher as
37
+ * `JINN_NETWORK_TOOLS_CLIENT_ROOT` so it can resolve the real Jinn MCP
38
+ * server. Defaults to {@link defaultClientRoot} (derived from this
39
+ * module's location). Tests override it.
40
+ */
41
+ clientRoot?: string;
34
42
  /**
35
43
  * Override spawn for testing. When provided, called instead of
36
44
  * node:child_process.spawn so tests can inject a fake child process.
37
45
  */
38
46
  _spawnFn?: typeof spawn;
47
+ /**
48
+ * Override the process-group kill for testing (#883). Called as
49
+ * `(childPid, signal)` and expected to signal the child's whole process
50
+ * group (`process.kill(-childPid, signal)`) so leaked grandchildren are
51
+ * reaped. Injected by tests so they never fire a real signal.
52
+ */
53
+ _killProcessGroup?: (childPid: number, signal: NodeJS.Signals) => void;
39
54
  }
40
55
  /**
41
56
  * Real Claude Code adapter. Spawns the `claude` CLI with the plugin
@@ -56,7 +71,9 @@ export declare class ClaudeCodeHarnessAdapter implements HarnessAdapter {
56
71
  private readonly daemonApiToken;
57
72
  private readonly corpusEnv;
58
73
  private readonly pluginInstallDir;
74
+ private readonly clientRoot;
59
75
  private readonly spawnFn;
76
+ private readonly killProcessGroup;
60
77
  constructor(config?: ClaudeCodeHarnessAdapterConfig);
61
78
  runTask(inputs: TaskSessionInputs, pluginRoot: string): Promise<void>;
62
79
  }
@@ -1,8 +1,32 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { createWriteStream, mkdirSync } from 'node:fs';
3
3
  import { homedir } from 'node:os';
4
- import { join } from 'node:path';
4
+ import { dirname, join, resolve } from 'node:path';
5
5
  import { finished } from 'node:stream/promises';
6
+ import { fileURLToPath } from 'node:url';
7
+ /**
8
+ * Resolve the Jinn client install root from this module's runtime location.
9
+ *
10
+ * The Network Tools plugin (`bundled:network-tools`) is materialized into the
11
+ * operator vendor root (`~/.jinn-client/solver-plugins/network-tools`), so the
12
+ * plugin's own MCP launcher cannot find the client tree via `../..` — that
13
+ * resolves to `~/.jinn-client`, which has no `dist/mcp/server.js` or
14
+ * `src/mcp/server.ts`, and the server process exits non-zero (`status:failed`
15
+ * in the agent's MCP server list). This adapter runs *inside* the client
16
+ * process, so it can hand the launcher the real client root via
17
+ * `JINN_NETWORK_TOOLS_CLIENT_ROOT`.
18
+ *
19
+ * Layout (mirrors `defaultClientRoot` in `codex-code.ts`):
20
+ * - source: `<client>/src/harnesses/impls/learner/adapters/claude-code.ts`
21
+ * - compiled: `<client>/dist/harnesses/impls/learner/adapters/claude-code.js`
22
+ * Five levels up reaches `<client>` in both layouts. The launcher's
23
+ * `firstExistingServer(<client>)` then finds `<client>/dist/mcp/server.js`
24
+ * (built/published) or `<client>/src/mcp/server.ts` (source checkout).
25
+ */
26
+ function defaultClientRoot() {
27
+ const here = dirname(fileURLToPath(import.meta.url));
28
+ return resolve(here, '..', '..', '..', '..', '..');
29
+ }
6
30
  /**
7
31
  * Allowlist of env vars that propagate to the spawned Claude session.
8
32
  * We deliberately limit this to avoid leaking unrelated credentials
@@ -105,7 +129,9 @@ export class ClaudeCodeHarnessAdapter {
105
129
  daemonApiToken;
106
130
  corpusEnv;
107
131
  pluginInstallDir;
132
+ clientRoot;
108
133
  spawnFn;
134
+ killProcessGroup;
109
135
  constructor(config = {}) {
110
136
  this.claudePath = config.claudePath ?? 'claude';
111
137
  this.claudeModel = config.claudeModel;
@@ -114,7 +140,10 @@ export class ClaudeCodeHarnessAdapter {
114
140
  this.daemonApiToken = config.daemonApiToken;
115
141
  this.corpusEnv = config.corpusEnv;
116
142
  this.pluginInstallDir = config.pluginInstallDir ?? join(homedir(), '.claude', 'plugins');
143
+ this.clientRoot = config.clientRoot ?? defaultClientRoot();
117
144
  this.spawnFn = config._spawnFn ?? spawn;
145
+ this.killProcessGroup =
146
+ config._killProcessGroup ?? ((childPid, signal) => { process.kill(-childPid, signal); });
118
147
  }
119
148
  async runTask(inputs, pluginRoot) {
120
149
  // Ensure the plugin install directory exists. The adapter does NOT
@@ -143,9 +172,21 @@ export class ClaudeCodeHarnessAdapter {
143
172
  }
144
173
  const env = buildAgentEnv({
145
174
  IMPL_STATE_DIR: inputs.implStateDir,
175
+ // Mode reaches the SessionStart hook so its steer is mode-aware: in `train`
176
+ // it steers the full learn loop (persist lessons); in `frozen` it must NOT
177
+ // (any implStateDir write trips the freeze-fence → the held-out eval aborts).
178
+ // Default 'train' (the daemon's normal restoration path).
179
+ JINN_HARNESS_MODE: inputs.mode ?? 'train',
146
180
  WORKING_DIR: inputs.workingDir,
147
181
  JINN_WORKING_DIR: inputs.workingDir,
148
182
  JINN_CLAUDE_CODE_LEARNER_PLUGIN_ROOT: pluginRoot,
183
+ // Network Tools' MCP launcher reads this to locate the real Jinn MCP
184
+ // server. The `bundled:network-tools` plugin is materialized into the
185
+ // operator vendor root, detached from the client tree, so its own
186
+ // `../..` resolution fails — without this the jinn-client MCP server
187
+ // exits non-zero and the agent never gets submit_typed_payload.
188
+ // Honor an operator-supplied value if present (e.g. custom install).
189
+ JINN_NETWORK_TOOLS_CLIENT_ROOT: process.env.JINN_NETWORK_TOOLS_CLIENT_ROOT?.trim() || this.clientRoot,
149
190
  DESIRED_STATE_ID: inputs.taskId,
150
191
  DESIRED_STATE_DESCRIPTION: stringField(inputs.taskBody?.description),
151
192
  DESIRED_STATE_CONTEXT: taskContextJson(inputs),
@@ -169,6 +210,11 @@ export class ClaudeCodeHarnessAdapter {
169
210
  stdio: ['ignore', 'pipe', 'pipe'],
170
211
  env,
171
212
  cwd: inputs.workingDir,
213
+ // #883: run claude as its own process-group leader so we can reap the
214
+ // WHOLE group (claude + any tool subprocesses it leaks, e.g. a `while …;
215
+ // do sleep; done` shell). Killing just the claude pid would orphan
216
+ // those grandchildren.
217
+ detached: process.platform !== 'win32',
172
218
  };
173
219
  return new Promise((resolve, reject) => {
174
220
  const logDir = join(inputs.workingDir, '.claude-code');
@@ -189,28 +235,36 @@ export class ClaudeCodeHarnessAdapter {
189
235
  throw stderrErr;
190
236
  };
191
237
  const child = this.spawnFn(this.claudePath, args, spawnOpts);
238
+ // #883: reap the child AND its process group, so a tool subprocess the
239
+ // model leaked (e.g. an unbounded `while …; do sleep; done` shell) dies
240
+ // too. Killing only the claude pid would orphan such a grandchild — and
241
+ // because that live grandchild keeps claude's event loop alive, claude
242
+ // itself would never exit (the observed hang). SIGKILL backstops SIGTERM.
243
+ const reap = (signal) => {
244
+ if (typeof child.pid === 'number') {
245
+ try {
246
+ this.killProcessGroup(child.pid, signal);
247
+ }
248
+ catch { /* group already gone */ }
249
+ }
250
+ try {
251
+ if (!child.killed)
252
+ child.kill(signal);
253
+ }
254
+ catch { /* already dead */ }
255
+ };
192
256
  // If the abort signal already fired before we got here (race), kill
193
257
  // the child immediately. Without this, addEventListener below would
194
258
  // never fire (signals only emit on transition to aborted, not when
195
259
  // already aborted).
196
260
  if (inputs.abort.aborted) {
197
- if (!child.killed)
198
- child.kill('SIGTERM');
261
+ reap('SIGTERM');
199
262
  }
200
- // Window-end abort: kill child, reject.
263
+ // Window-end abort: kill the child group; the exit/result path resolves.
201
264
  const onAbort = () => {
202
- if (!child.killed)
203
- child.kill('SIGTERM');
265
+ reap('SIGTERM');
204
266
  };
205
267
  inputs.abort.addEventListener('abort', onAbort);
206
- let stderr = '';
207
- child.stdout?.on('data', (d) => {
208
- stdoutLog.write(d);
209
- });
210
- child.stderr?.on('data', (d) => {
211
- stderrLog.write(d);
212
- stderr += d.toString();
213
- });
214
268
  let settled = false;
215
269
  const settleAfterLogs = (complete, onLogError = reject) => {
216
270
  if (settled)
@@ -219,6 +273,56 @@ export class ClaudeCodeHarnessAdapter {
219
273
  inputs.abort.removeEventListener('abort', onAbort);
220
274
  closeLogs().then(complete, onLogError);
221
275
  };
276
+ // #883: complete on claude's terminal `result` message, not solely on
277
+ // process exit. claude streams `{"type":"result","subtype":…}` when the
278
+ // session ends; it may then fail to exit (a leaked tool subprocess holds
279
+ // the event loop open). Settling on the result — and reaping the group —
280
+ // means the task never strands in RUNNING waiting for an exit that never
281
+ // comes. The `child.on('exit')` handler below still covers crashes that
282
+ // emit no result; the `settled` guard makes whichever fires first win.
283
+ let stdoutBuf = '';
284
+ const onResult = (subtype) => {
285
+ if (settled)
286
+ return;
287
+ reap('SIGTERM');
288
+ const killTimer = setTimeout(() => reap('SIGKILL'), 2000);
289
+ if (typeof killTimer.unref === 'function')
290
+ killTimer.unref();
291
+ settleAfterLogs(() => {
292
+ if (subtype === undefined || subtype === 'success') {
293
+ resolve();
294
+ }
295
+ else {
296
+ reject(new Error(`claude-code adapter: session ended with result subtype=${String(subtype)}`));
297
+ }
298
+ });
299
+ };
300
+ let stderr = '';
301
+ child.stdout?.on('data', (d) => {
302
+ stdoutLog.write(d);
303
+ if (settled)
304
+ return;
305
+ stdoutBuf += d.toString();
306
+ let nl;
307
+ while ((nl = stdoutBuf.indexOf('\n')) >= 0) {
308
+ const line = stdoutBuf.slice(0, nl).trim();
309
+ stdoutBuf = stdoutBuf.slice(nl + 1);
310
+ if (!line.includes('"type":"result"'))
311
+ continue;
312
+ try {
313
+ const obj = JSON.parse(line);
314
+ if (obj && obj.type === 'result') {
315
+ onResult(obj.subtype);
316
+ return;
317
+ }
318
+ }
319
+ catch { /* partial or non-JSON line; keep scanning */ }
320
+ }
321
+ });
322
+ child.stderr?.on('data', (d) => {
323
+ stderrLog.write(d);
324
+ stderr += d.toString();
325
+ });
222
326
  child.on('exit', (code, signal) => {
223
327
  settleAfterLogs(() => {
224
328
  if (code === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../../../src/harnesses/impls/learner/adapters/claude-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../../../src/harnesses/impls/learner/adapters/claude-code.ts"],"names":[],"mappings":"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"}
@@ -32,5 +32,14 @@ export declare class CodexCodeHarnessAdapter implements HarnessAdapter {
32
32
  private readonly spawnFn;
33
33
  private readonly runSessionStartHook;
34
34
  constructor(config?: CodexCodeHarnessAdapterConfig);
35
+ /**
36
+ * Spawn `codex exec` and stream the prompt to its stdin.
37
+ *
38
+ * Stdin contract (#675): codex >=0.133.0 detects a non-TTY-with-no-data
39
+ * stdin as a fatal config error ("Reading additional input from stdin") and
40
+ * exits with code 1 before reading the positional [PROMPT]. The daemon
41
+ * therefore pipes the prompt through `child.stdin` and closes the stream;
42
+ * the positional-arg invocation used pre-0.133 is no longer supported.
43
+ */
35
44
  runTask(inputs: TaskSessionInputs, pluginRoot: string): Promise<void>;
36
45
  }